С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Не исключено, что ниббловый метод - это как раз не устаревший метод, который я потом выкинул, а наоборот дополнительный метод, который написал в депакере, а в пакере еще не поддержал.
Суть этого метода, что, если на отрезке данных присутствует постоянная составляющая, вокруг которой колеблятся данные в диапазоне 0..15, то каждый такой байт кодируется всего 4 битами. В коде такое встретить сложно, а вот во всевозможных блоках данных, таблицах - вполне. Таким образом подобный участок данных сжимается сразу в два раза (плюс байт на константу постоянки), чем если б он был просто переброшен методом простого копирования.
Скорость распаковки этого метода вполне высока - 48.5 тактов на байт, что тоже лишь в 2.3 раза медленнее LDIR.
Последний раз редактировалось Titus; 19.09.2013 в 11:49.
Для релиза Dizzy Extended Edition пришлось поднять исходники моего старого компрессора, обсуждаемого в этой ветке. Напомню, я его написал в 1995 году специально для Great Codemasters Collection. Цель тогда была добиться максимальной скорости распаковки и приемлемого качества упаковки.
Так как упаковщик был написан на Спектруме, и имел ограничения по длине упаковываемого файла (исходный плюс упакованный файлы не должны были превышать 48Кб), пришлось побыстрому набросать на Си упаковщик. При этом удалось улучшить качество упаковки, и даже немного оптимизировать распаковщик.
Выкладываю чисто для тестов, потому что вполне возможно, что упаковщик где-то сыроват, т.к. написан на скорую руку. Но для проверки упакованный файл внутри распаковывается и сравнивается с оригиналом. Если будет расхождение, то он напишет об ошибке. Исходный файл ограничен 64Кб (это естественно для Спектрума).
Использовать в консольном окне, скормив ему имя файла для упаковки.
Black Cat / Era CG (24.02.2021), drbars (24.02.2021), Evgeny Muchkin (24.02.2021), Oleg N. Cher (24.02.2021), SoftLight (24.02.2021), Urguk (06.09.2021), Verm-V (24.02.2021)
С исторической точки зрения интересно, но если без скидок, то сейчас LZSA(1) чемпион в лиге быстрых распаковщиков (и он сжимает сильнее и есть более компактный распаковщик). У lzsa нет упаковщика для z80, возможно эта ниша для ProTurboCruncher.
lzsa_win32_1.3.6.zip и lzsa_win64_1.3.6.zip - это архивы с exeшниками
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)