Burrows-Wheeler Transform
+
Move To Front
+
Arithmetic coding
История архиватора (сначала это был просто компрессор) началась в августе 2003 г. с версии 1.01.
Изначально он был написан на Delphi 6, работал ужасно медленно да и сжатие оставляло желать лучшего.
С переходом на C/C++ архиватор стал неплохо справляться со своими прямыми обязанностями:-)
Описание:
Экспериментальный архиватор собственной разработки:-)
(пока только консольная версия для Windows).
Работает архиватор по следующей схеме:
- Набор фильтров.
- Преобразование Барроуза-Уилера (BWT).
- Усовершенствованный метод «перемещения стопки книг» (MTF) или «отсортированных обратных частот».
- 1-2 кодирование.
- Арифметическое кодирование с использованием структурной модели Петера Фенвика.
Это ещё не всё! Архиватор имеет несколько методов предварительной обработки данных различного типа, для улучшения сжатия:
- Препроцессинг текстовых данных: используется специальное кодирование символов конца строки (СКС) и преобразование заглавных букв в строчные.
- Два варианта препроцессинга 32-х битных таблиц для сжатия исполнымых файлов и документов Microsoft Office.
- Преобразование относительных адресов в абсолютные (call/jmp конвертирование) для улучшения сжатия исполнимых файлов.
- Дельта-кодирование подходит для PCM WAVE файлов и 24-х битной графики (BitMap, Targa).
- LZP препроцессинг увеличивает скорость BWT и улучшает сжатие некоторых данных, но существенно замедляет распаковку.
- Кодирование длин повторов (RLE).
Поведение архиватора на различных тестовых наборах вы можете найти на www.maximumcompression.com
Планы:
- Написать путёвое BWT.
- Увеличить степень сжатия.
- Добавить возможность создания непрерывных архивов.
История версий:
1.35 beta (19/06/2008)
- Улучшены некоторые MTF модели, что немного улучшило сжатие почти на все типах данных.
- Добавлен новый ключ '-mx': улучшает сжатие некоторых файлов, но замедляет распаковку (реализовано SIF;-)
- Добавлена простая реализация SIF (Sorted Inversion Frequencies) - улучшает сжатие мультимедийных данных, текстов и исполнимых файлов, но, как уже было отмечено выше, замедляет декомпрессию.
- Добавлен новый ключ -w: отключет препроцессинг WAVE файлов для сравнения степени сжатия (с другими архиваторами).
- Замечание: данная версия несовместима с предыдущей!
1.34 beta (15/05/2008)
- Улучшено сжатие PE-исполнимых файлов: добавлен ключ '-ax' - жмёт обычно лучше, но всегда медленнее:-)
- Добавлен набор новых фильтров для сжатия WAVE-файлов (от 1ch*8bit до 6ch*32bit!)
- Мелкие исправления и дополнения.
- Замечание: данная версия несовместима с предыдущей!
1.33 beta (19/08/2006)
- Ключ -mx добавлен по умолчанию.
- Улучшено сжатие DLL (секция '.reloc').
- Мелкие исправления и дополнения.
- Замечание: данная версия несовместима с предыдущей!
1.32 beta (26/02/2006)
- Добавлен новый ключ -tx[-]: Препроцессинг текстовых данных (английские тексты и русские в ANSI-кодировке).
- Исправлена серьезная ошибка: упаковка с ключом -x<filename|@filelist> приводила к краху программы.
- Увеличилась степень сжатия для плохо сжимаемых данных (JPEG, MPEG и т.д.).
- Мелкие исправления и дополнения.
1.31 beta (22/09/2005)
- Добавлен новый ключ -ae: Адаптивный размер блока только для PE-исполнимых файлов. Решил выделить эту возможность в отдельный ключ, так как сегментация PE-исполнимых файлов происходит намного быстрее чем файлов других типов.
- Добавлен новый ключ -x<filename|@filelist>: исключить файлы из операции сжатия. Я думаю, в следующей версии использование этого ключа будет возможно с другими операциями.
- Увеличилась степень сжатия.
- Мелкие исправления и дополнения.
1.30 beta (05/09/2005)
- Программа не нуждается в библиотеке libmmd.dll.
- Исправлен редкий глюк при упаковке с ключом -a.
- Устранена утечка памяти при распаковке.
- Мелкие исправления и дополнения.
1.29 beta (31/08/2005)
- Теперь ключ -a работает на файлах любого типа!
- Исправлен страшный глюк: архиватор отказывался от рекурсивного поиска файлов в подкаталогах.
- Небольшие исправления и дополнения.
- Данная версия полностью поддерживает архивы версии 1.28 beta.
1.28 beta (28/08/2005)
- Исправлена ошибка, возникновение которой возможно при сжатии с максимальным размером блока (ключ -m16m).
- Немного увеличена скорость сжатия/распаковки.
- Несколько возросла степень сжатия, особенно исполнимых файлов.
- Добавлен новый ключ -mx: максимальное сжатие. Влияет на параметры LZ препроцессинга и позволяет немного улучшить компрессию.
- Оптимизация: уменьшен размер файла.
- Замечание: данная версия несовместима с предыдущей!
1.27 beta (28/06/2005)
- Первая версия, распространяемая в глобальной сети.
Скачать:
bma_1.35beta.rar (51 кБ)
bma_1.34beta.rar (46 кБ)
bma_1.33beta.rar (36 кБ)
bma_1.32beta.rar (36 кБ)
bma_1.31beta.rar (26 кБ)
bma_1.30beta.rar (25 кБ)
bma_1.29beta.rar (24 кБ)
bma_1.28beta.rar (22 кБ)
bma_1.27beta.rar (21 кБ)
|