2

Поэтому я только что скачал MySQL для Windows 64bit, размер которого 211,9 МБ, но когда я его распаковал, теперь он равен 1.05 ГБ. Как они это делают? Их архив не был ни поврежден, ни поврежден.

До (Сжатый):

После: (без сжатия):

Я был просто поражен, я думал, что это невозможно. Архив информации от WinRar:

4 ответа4

7

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

4

Deflate - один из наиболее часто используемых алгоритмов сжатия. Он ищет шаблоны данных и сохраняет их в словаре. Чем более "повторяющийся" файл, тем больше он может быть сжат. Очень хорошее объяснение алгоритма можно найти здесь.

2

Разные файлы могут быть сжаты до разных размеров.
Например, если вы сжимаете растровые или текстовые файлы, вы получите высокие результаты.
Это также зависит от программы сжатия и метода ее сжатия (просто используйте 7Zip вместо WinRAR, и вы увидите, что он сжимается намного лучше).

Недавно я нашел KGB Archiver, который, вероятно, является лучшим инструментом с высокой степенью сжатия на сегодняшний день.
Я не мог поверить, что файл размером ~ 1 ГБ можно сжать до нескольких МБ, но он может это сделать !!
Так что 19% сжатый архив кажется ничем по сравнению с ним;)
Он использует алгоритм PAQ6, поэтому для его сжатия требуется много процессора и оперативной памяти.
Теперь это проект с открытым исходным кодом, расположенный в SourceForge. Вы можете скачать его здесь.

1

Ваш вопрос вдохновил меня на некоторые исследования и немного узнал о работах по сжатию.

Как они это делают? В основном, много эпической математики, но одним из основных методов является кодирование Хаффмана

Файл делится на куски, эти куски сортируются в дерево, причем наиболее распространенным блокам присваиваются кратчайшие имена местоположений в дереве. Почтовый индекс создается из описания дерева, за которым следует список адресов в дереве, необходимых для восстановления файла. Иногда используется предварительно вычисленное дерево, что устраняет необходимость совместного использования дерева. Чем более повторяющаяся программа, тем меньше дерево и тем лучше сжатие. Это намного больше, чем это, хотя это сложно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .