я про этот метод https://neerc.ifmo.ru/wiki/index.php?title=Арифметическое_кодирование 1. Не подскажите как сохраняют дробные числа в заархивированом файле? 2. Как я понял для этого метода пользуются длинной арифметикой а не FPU ? это так ? 3. Как я понял этот метод довольно новый ... а есть ли исходники его реализациии? Всем спасибо!
Оно как любой алгоритм сжатия существует в виде общей концепции. Что и как хранится зависит от конкретной реализации. Область применения пожалуй только сжатие текстов. Причем чем нетипичней текст, чем сильней в нем отличаются частоты появления символов от среднестатистических, тем хуже будет сжиматься. "Длина кода конкретного символа зависит от частоты встречаемости этого символа в тексте", то есть для хранения выхлопа кодирование, применяемое в fpu с полями фиксированной длины, не годится. Короче узкоспециализированное баловство для сжатия текстов.
f13nd! А почему вы сказали что этот метод преимушественно для текстовых файлов? А какие методы сохранения чисел переменной длинны вобще бывают?
Потому что выраженное распределение символов по частотам характерно для текстов. Если эта самая энтропийность заложена в основе принципа алгоритма, то область его применения - тексты. Причем с фиксированной кодовой таблицей, что минус юникод и минус практический смысл. Стандарт индустрии 7zip например выбирает кодер lzma для текстовых файлов. Несмотря на то, сколько человечество навыдумывало перспективных методов сжатия текстов. Либо кодировать количество разрядов в отдельном поле (как в библиотеке nn_ для rsa), либо использовать запрещенные состояния (например запрещены четыре нуля подряд и за тремя нулями обязательно должна следовать единица, которая отбрасывается при декодировании. таким образом четыре нуля подряд - конец поля).