Интернет магазин китайских планшетных компьютеров



Компьютеры - Сжатие без потерь - Сжатие и комбинаторика

22 января 2011


Оглавление:
1. Сжатие без потерь
2. Сжатие и комбинаторика
3. Техника сжатия без потерь
4. Методы сжатия без потерь
5. Примеры форматов и их реализаций



Легко доказывается теорема.

Для любого N > 0 нет алгоритма сжатия без потерь, который:

  1. Любой файл длиной не более N байт или оставляет той же длины, или уменьшает.
  2. Существует файл длиной не более N, который уменьшается хотя бы на один байт.

Доказательство. Не ограничивая общности, можно предположить, что уменьшился файл A длины ровно N. Обозначим алфавит как Σ. Рассмотрим множество \Sigma^0 \cup \Sigma^1 \cup \ldots \cup \Sigma^{N-1} \cup \{ A \}. В этом множестве 256^0 + 256^1 + \ldots + 256^{N-1} + 1 исходных файлов, в то время как сжатых не более чем 256^0 + 256^1 + \ldots + 256^{N-1}. Поэтому функция декомпрессии неоднозначна, противоречие. Теорема доказана.

Впрочем, данная теорема нисколько не бросает тень на сжатие без потерь. Дело в том, что любой алгоритм сжатия можно модифицировать так, чтобы он увеличивал размер не более чем на 1 бит — так что несжимаемые фрагменты не приведут к бесконтрольному «раздуванию» архива. «Реальных» же файлов длины N намного меньше, чем 256 — например, маловероятно, чтобы буквосочетание «щы» встретилось в осмысленном тексте, а в оцифрованном звуке уровень не может за один сэмпл прыгнуть от 0 до 100 %. К тому же за счёт специализации алгоритмов на некоторый тип данных удаётся добиться высокой степени сжатия: так, применяющиеся в архиваторах универсальные алгоритмы сжимают звук примерно на треть, в то время как FLAC — в 2,5 раза. Большинство специализированных алгоритмов малопригодны для файлов «чужих» типов: например, звуковые данные плохо сжимаются алгоритмом, рассчитанным на тексты.



Просмотров: 4600


<<< Сжатие аудиоданных
Сжатие данных с потерями >>>