Цитата Сообщение от Hrumer
2lvd: интересно было бы посмотреть на таблицу результатов.
Ща ещё чуть-чуть причешу код - и будет релиз =) там и таблицы рекламные будут, и файлы тестовые даже =) Если не заломает меня...

Следующим этапом, видимо, будет рассмотрение других кодов - просто для эксперимента.
Мне уже скорее всего влом будет =)
У тебя какие именно коды используются? (долго смотреть в распаковщике)
типа вот такого:
Код:
Формат пакованного файла:

первый байт копируется в выход
второй - ид¬т в биты

биты в байте битов - со старшего.
Если нужен бит, а его уже нет (все 8 кончились) - то новый байт выбирается
из потока. Оттуда же выбираются и байты, обозначенные <byte> - но только
после выборки всех битов ссылки.

В формате ссылок: <byte> - байт, который выбирается из потока

1<byte> - копировать <byte> в выход.
000abc - копировать 1 старый байт по смещению FFF8+[abc] от текущей позиции в выходе
         (abc==000 - смещение FFF8, abc==111 - FFFF)
001<byte> - копировать 2 байта по смещению FF00+<byte> (-1..-256)
0100<byte> - копировать 3 байта по смещению FF00+<byte>
0101abcd<byte> - копировать 3 байта по смещению (F[abcd]-1)*256+<byte> (-257..-4352)

более длинные ссылки удобно представить в виде 3 частей:

префикс: 011

длина ссылки:
1a -> 4+[a]
01ab -> 6+[ab]
001abc -> 10+[abc]
0001abcd -> 18+[abcd]
00001abcde -> 34+[abcde]
000001abcdef -> 66+[abcdef]
0000001abcdefg -> 130+[abcdefg] (тут длина не более 255!)

смещение:
0<byte> - FF00+<byte> назад (-1..-256)
1abcd<byte> - (F[abcd]-1)*256+<byte> (-257..-4352)


Метка конца потока:

011000000001


примеры:

000111 - повторить последний байт
001<byte=FF> - повторить последний байт дважды (смещение=-1, длина 2) - совмещение LZ и RLE!!!!!

011 001101 10000<byte=0> - ссылка длиной %101+10 = 15 байт со смещением -4352