Нет, друзья Proteus и Booster, проблема была в том, как записать битовые цепочки (коды Хаффмана) в область памяти одна за другой. Пример: 1001 - 4 бита 1011 - 4 бита 1010 - 4 бита 1000 - 4 бита 00 - 2 бита 010 - 3 бита Требовалось записать их так: 100110111010100000010, т.е. одна за другой! Но проблема уже решена! Лучше подскажите где можно достать доходчивую доку по арифметическому кодированию!
MAPTbIH Фтопку Хаффмана и Арифметическое кодирование. Арифметик можно применять тока как дополнение к более серьезным алгоритмам на втором, третьем этапах. В качестве идеального пре-алгоритма для твоих задач могу посоветовать BWT+LZ78 или BWT+Distance Coder. Я с помощью этих методов WinRAR уделывал ))))
IceFire Ну это не супер достижение. WinRar архиватор общего назначения, и конечно не всегда оптимально сжимает. Всякому алгоритму свои файлы. LZ алгоритмы конечно хорошие и в принципе могут дать очень большую степень сжатия, но для них нужно большое кол-во повторяющихся последовательностей. А Хаффмана и Арифм. работают с фиксированными по размеру элементами, и какой размер элементов даст лучшее сжатие ещё конечно вопрос. Тот же галимый RLE, может намного лучше сжать чем арифм. но ведь врядли кто скажет что этот алгоритм лучше Хаффмана. З.Ы. Не понял что за фигня с аттачами? Второй день не работает.
IceFire Мозгу моему всё тяжелее и тяжелее от количества прочитанной литературы, но усвоено только около 30%. Как же это всё сложно! Мне пока непонятно, что такое BWT и многое другое. Буду читать медленно, вслух от начала и до конца литературу с сайта compression.ru. Выхода иного больше я не вижу...
MAPTbIH Я вот не дошел до конца...может - ты дойдешь... В моем случае было написано ядро протектора/упраковщика, далее я начал писать алгоритм сжатия секций...но на полпути спекся...