2

У меня есть много данных, которые мне не нужно «получать сразу», и мне было интересно, есть ли какое-либо программное обеспечение для сжатия, которое я мог бы использовать, которое могло бы сжать его до меньшего размера, чем в настоящее время я получаю с 7zip , Сжатие гигабайта данных занимает ~ 10 минут (оптимизация по размеру файла) и намного меньше для распаковки. Предполагая, что я могу потратить часы на сжатие + извлечение, есть ли способ получить сжатые файлы еще меньше?

До сих пор я еще не видел никаких программ сжатия с помощью графического процессора, кто-нибудь видел что-нибудь плавающее вокруг?

5 ответов5

3

http://en.wikipedia.org/wiki/Data_compression

Это на самом деле зависит от того, что вы сжимаете, и если вам нужно сжатие без потерь или нет.

Проверять, выписываться:

http://www.maximumcompression.com/

Это веб-сайт с тестами для различных программ сжатия данных, тестированием их в различных условиях и оценкой различных параметров (скорость сжатия / распаковки / соотношение).

2

Лучший ответ на этот вопрос - почти наверняка семейство алгоритмов PAQ , разработанных Мэттом Махони. Он использовал его, чтобы выиграть несколько файлов со сжатием данных, и когда я последний раз проверял, он все еще содержал некоторые из своих записей. Сжатие занимает очень много времени и может потребовать огромных объемов оперативной памяти, но я видел, что это значительно сокращает даже файлы, которые уже были сильно сжаты (например, существующие архивы).

Вы можете получить самую последнюю версию и все основные предыдущие версии (некоторые с разными областями внимания, такими как простота использования или параллельная работа) утилиты командной строки здесь: http://mattmahoney.net/dc/zpaq.html

Есть и другие реализации, которые вы можете предпочесть. Если вам нужен графический интерфейс, для PeaZip есть плагин "дополнительные форматы", который включает PAQ: http://peazip.sourceforge.net/peazip-add-ons.html

lrzip - это утилита командной строки, оптимизированная для больших файлов (в диапазоне ГБ). Он использует алгоритм сокращения избыточности на большие расстояния, за которым следует второй алгоритм, выбранный пользователем, который может включать в себя версию алгоритма PAQ (или различные более быстрые алгоритмы, если они вам нужны). Он также имеет другие интересные функции, в том числе возможность использовать виртуальную память для сжатия файлов, размер которых превышает объем физической памяти вашей системы, за счет резкого замедления.

Помимо использования мощного алгоритма сжатия, вы можете уменьшить размер вашего окончательного архива, предварительно обработав файлы другими инструментами. Вы можете конвертировать некоторые файлы из изначально раздутых форматов в более компактные или лишать их метаданных. Используя такую утилиту, как dar (хотя большинство людей здесь предпочитают более старый tar), вы можете комбинировать большое количество файлов, чтобы сделать сжатие более эффективным, и контролировать количество метаданных файловой системы (например, разрешений Unix), которые программы, такие как 7zip, безусловно добавляют в свои архивы. , Любой из этих методов предполагает, что вы готовы посвятить больше личного времени помимо машинных ресурсов.

РЕДАКТИРОВАТЬ: я обнаружил, что tar и dar не позволяют контролировать метаданные, и при этом dar не заменяет набор функций tar как подразумевает его миссия. Однако они оба поддерживают разреженные файлы, и dar может сделать сжатие более эффективным, если используется опция записи заголовков файлов только в индекс (обычно dar записывает заголовки tar стиля в дополнение к индексу).

Что касается сжатия GPU, то я этого не видел. Это может быть нежизнеспособным, если сжатие больше зависит от оперативной памяти, чем от количества ядер, например Litecoin.

Все перечисленные здесь программы бесплатны, с открытым исходным кодом и (за возможным исключением lrzip) доступны для всех основных операционных систем.

1

Одна программа, которая иногда может улучшить степень сжатия: cromfs

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

1

Джефф Этвуд, наш бесстрашный лидер, может многое сказать о сжатии файлов.

Что бы ни стоило, настройка 7-Zip Ultra для сжатия 7z, вероятно, является наилучшей, которую вы получите при сжатии файлов нескольких типов.

0

Вы можете попробовать 7zip со следующими ультра настройками:

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql

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