Какова максимальная степень сжатия gzip?

То, что самый большой размер является gzip (скажите, что 10 КБ ради примера) может быть распаковано к?

51
задан 02.01.2013, 04:02

4 ответа

Это очень зависит от сжимаемых данных. Быстрый тест с файлом на 1 ГБ, полным нулей, дает сжатый размер ~120Kb, таким образом, Ваш файл 10 КБ мог потенциально расшириться в ~85Mbytes.

Если данные имеют низкое дублирование для начала, например, архив содержит файлы изображений в формате, который сжат исходно (gif, jpg, png...), то gzip может добавить не дальнейшее сжатие вообще. Для двоичных файлов как исполняемые файлы программы Вы могли бы видеть до 2:1 сжатие, для простого текста, HTML или других разметок 3:1 или 4:1, или больше не маловероятно. Вы могли бы видеть 10:1 в некоторых случаях, но ~8700:1, замеченный с файлом, заполненным отдельным символом, является чем-то, что Вы не собираетесь видеть внешние столь же искусственные обстоятельства.

Можно проверить, с каким количеством данные следовали бы из распаковки gzip файла, на самом деле не пишущий его несжатое содержание в диск, gunzip -c file.gz | wc --bytes - это распакует файл, но не сохранит результаты, вместо этого передавая их wc который будет считать число байтов, поскольку они передают, затем отбрасывают их. Если сжатое содержание является файлом tar, содержащим много много маленьких файлов, Вы могли бы найти, что заметно больше дискового пространства требуется, чтобы распаковывать полный архив, но при большинстве обстоятельств, количество, возвращенное из передачи по каналу gunzip вывод через wc будет столь точным, как Вам нужно.

91
ответ дан 07.12.2019, 08:27

Обычно Вы не получаете больше чем 95%-е сжатие (так, чтобы 10 КБ gzipped данные распаковали бы к ~200kB), но существуют специально обработанные файлы, которые расширяются экспоненциально. Искать 42.zip, это распаковывает к немногим петабайтам (бессмысленных) данных.

10
ответ дан 07.12.2019, 08:27

Степень сжатия любого алгоритма сжатия будет функцией сжимаемых данных (помимо длины тех данных).

Вот анализ в MaximumCompression,
Посмотрите на один из образцов как,

Сводка нескольких оценочных испытаний сжатия файла

File type : Multiple file types (46 in total)  
# of files to compress in this test : 510  
Total File Size (bytes) : 316.355.757 
Average File Size (bytes) : 620,305
Largest File (bytes) : 18,403,071
Smallest File (bytes) : 3,554
6
ответ дан 07.12.2019, 08:27

Огромный файл, содержащий только один символ, сожмется очень хорошо.

4
ответ дан 07.12.2019, 08:27

Теги

Похожие вопросы