2016-11-14 9 views
1

Я рассматриваю, какой уровень сжатия zlib использовать, и мне интересно узнать о разных скоростях сжатия для разных уровней сжатия, которые могут быть указаны в командах zlib. zlib manual имеет следующие константы для задания уровня сжатия:Коэффициенты сжатия для разных уровней сжатия zlib

#define Z_NO_COMPRESSION   0 
#define Z_BEST_SPEED    1 
#define Z_BEST_COMPRESSION  9 
#define Z_DEFAULT_COMPRESSION (-1) 

Очевидно, что чем меньше число означает меньшую задержку для сжатия и сдувания при стоимости менее сжатого файла, в то время как более высокое число способствует лучшей компрессии на стоимость более высокой задержки.

Мой вопрос: Какие коэффициенты сжатия можно ожидать для разных уровней сжатия? Это zlib web page говорит, Более типичные коэффициенты сжатия zlib находятся в порядке от 2: 1 до 5: 1 в контексте максимального сжатия, но существуют ли также коэффициенты сжатия и диапазоны для других коэффициентов сжатия?

+0

Это зависит от данных, которые вы сжимаете. Мой опыт заключается в том, что такие данные, как JSON, сокращаются до 10%, используя сжатие вообще, в то время как данные, подобные видео H.264, вообще не приносят пользы. – mm759

+0

Я знаю, что это зависит от данных, но для данной части данных я бы предположил, что вы все же можете сказать, что «уровень 7 сжимает данные на x меньше уровня 8» и т. Д. Другими словами, если вы можете дайте общий диапазон для максимального уровня сжатия, мне любопытно слышать, могут ли диапазоны задаваться другим уровням сжатия. – DIMMSum

ответ

2

На ваш вопрос нет ответа, который не зависит от данных. Вы не можете прогнозировать ни коэффициенты сжатия, ни отношения коэффициентов сжатия только от соответствующих уровней сжатия. Уровни отражают, насколько сложно компрессор ищет соответствующие строки в предыдущих 32 КБ данных. Это все.

+0

Это главная причина, по которой «pngcrush» существует. Единственный способ узнать «лучшее» сжатие потока данных PNG - это выполнить испытания с использованием грубой силы со многими комбинациями уровня и стратегии сжатия zlib, фильтрации PNG и еще чего-то. –