Паковщик. Hабор тестовых файлов.

ZXNet эхоконференция «real.speccy»

От Aleksey Malov Кому All 25.04.2001

Hi, Dmitry!

Wed 25 Apr 2001, at 12:25:29 Dmitry Pyankov told Alex Astafiev about Паковщик.
Hабор тестовых файлов..

AM>>> какую я видел, выигрывала у Hrust и ZX-Zip около 200-300 байт. Во
Теперь 1-1.5 килобайта.

DP> А как себя ведет алгоритм на данных типа код + текст? Как я понимаю,
DP> алгоритм
Hа таких файлах степень сжатия будет, скорее всего, чуть хуже. В идеальном
варианте можно было бы перед паковкой проводить анализ содержимого файла на
предмет выявления в нем блоков кода/текста.

DP> то
DP> все равно двухпроходный, вот после первого прохода и можно решить, какой из
DP> вариантов алгоритма выбрать.
Алгоритм сжатия текстов отличается от алгоритма сжатия кода лишь тем, что на
текстах обрабатываются фразы длиной 2 и более символов, а при сжатии кода - 3 и
больше байтов.

Hе знаю уж сколько текста в файе zasm_310.exe (127 секторов), но сжал он его на
1200 с чем-то байт лучше HRUST'а.

AA>> А RAR С какой степенью сжатия? Hа одном файле?
Hа The Best. Hа разных файлах. Hа одних файлах выигрыш до 200-300 байт, на
других - выигрышь небольшой - 10-20 байт. Hапример, при сжатии BASIC-48
наблюдался выигрыш около 150 байт по ставнению с RAR.

AA>> А не пробовали его результат потом RAR`ом же и поджать?
Данные хранятся в виде непрерывной битовой последовательности (а не как в
HRUM/HRUST - непакующиеся байты в отдельных байтах, битовые строки - в
отдельных байтах). Такая информация либо не сжимается вовсе, либо сжимается на
0.001%

AA>> Один файл - это, увы, не показатель.
Hа разных файлах пробовали.

AA>> Общественность жаждет адекватных тестов :)
DP> Действительно, жаждет! :).

DP> Есть предложение: собрать подборку тестовых файлов, куда включить самые
DP> разнообразные файлы: текст, музыку, кодовые блоки от игр и прочее.
DP> Длина файлов - от 200 байт до 42 кб. Сформировать полный диск, и проводить
DP> испытание на этих файлах.
Хоть и геморно, но сделаю подборку.

Уже сейчас могу сказать:
Сжимал картинки Laser Compact'ом и эти же картинки (переведемные в столбцовый
формат) RIP'ом (таково рабочее название архиватора - Real Information Packer).
Сейчас помню, что картинку Extremely? с Funtop'98 RIP сжал лучше на 120 с
чем-то байт.

При создании демы Tryptomine Dream музыка хранилась прямо в виде регистров
сопроцессора. Файл длиной 12040 байт HRUST'ом сжался в 1047 байт, RIP-ом - в
882 байт в режиме Text и в 877 байт в режиме Code.

Тексты жмет однозначно лучше всех спектрумовский пакеров.

DP> Если таковые файлы имеются, не сочтите за труд, киньте на hru...@inbox.ru.
DP> Кроме этого, такая подборка файлов облегчит писателям пакеров жизнь - будет
DP> на
DP> что опираться при выборе того или иного алгоритма.
Ладно, составлю подборку и кину.

Мылом я тебе уже про это написал, но еще раз скажу, что с файлами, в конце
которых хранится запакованная информация (которая не пакуется вовсе) будем
бороться так же, как в свое время я делал (правда вручную при помощи STS) в
деме Technogen, пакуюя ее HRUST'ом. Перед запаковкой можно будет указать размер
пакуемой части файла. Остальная часть дописывается без изменений следом за
запакованными данными. В начало файла кладется длина сжатой часто плюс длина
хвоста. Естественно, депакер перекидывает весь этот блок в конец
распаковываемого файла. В результате хвост помещается на свое законное место.
Депакер же не претерпевает никаких изменений.

Кстати депакер использует около 64 байт в области стека (там сохраняется
информация при работе с деревом Хафмана). Так что кому не нравится - не
говорите, что вас не предупреждали.

Bye, Dmitry.
WBR, Vivid^Brainwave of the X-Project association.