компрессия данных - > метод арифметического кодирования

Тема в разделе "WASM.BEGINNERS", создана пользователем _evil, 14 янв 2025.

  1. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    66
    я про этот метод https://neerc.ifmo.ru/wiki/index.php?title=Арифметическое_кодирование
    1. Не подскажите как сохраняют дробные числа в заархивированом файле?
    2. Как я понял для этого метода пользуются длинной арифметикой а не FPU ? это так ?
    3. Как я понял этот метод довольно новый ... а есть ли исходники его реализациии?
    Всем спасибо!
     
  2. MaKsIm

    MaKsIm Active Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    120
    Как это нету. По вашей же ссылки есть примеры на Python. Они чем вас не устраивают?
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.007
    Оно как любой алгоритм сжатия существует в виде общей концепции. Что и как хранится зависит от конкретной реализации. Область применения пожалуй только сжатие текстов. Причем чем нетипичней текст, чем сильней в нем отличаются частоты появления символов от среднестатистических, тем хуже будет сжиматься. "Длина кода конкретного символа зависит от частоты встречаемости этого символа в тексте", то есть для хранения выхлопа кодирование, применяемое в fpu с полями фиксированной длины, не годится. Короче узкоспециализированное баловство для сжатия текстов.
     
    Mikl___ нравится это.
  4. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    66
    f13nd! А почему вы сказали что этот метод преимушественно для текстовых файлов?

    А какие методы сохранения чисел переменной длинны вобще бывают?
     
  5. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.007
    Потому что выраженное распределение символов по частотам характерно для текстов. Если эта самая энтропийность заложена в основе принципа алгоритма, то область его применения - тексты. Причем с фиксированной кодовой таблицей, что минус юникод и минус практический смысл. Стандарт индустрии 7zip например выбирает кодер lzma для текстовых файлов. Несмотря на то, сколько человечество навыдумывало перспективных методов сжатия текстов.
    Либо кодировать количество разрядов в отдельном поле (как в библиотеке nn_ для rsa), либо использовать запрещенные состояния (например запрещены четыре нуля подряд и за тремя нулями обязательно должна следовать единица, которая отбрасывается при декодировании. таким образом четыре нуля подряд - конец поля).