Изменения

Перейти к: навигация, поиск

Гамма-, дельта- и омега-код Элиаса

4 байта убрано, 22:51, 12 декабря 2014
Коды без памяти
Простейшими кодами, на основе которых может выполняться сжатие данных, являются '''коды без памяти''' (англ. ''code without memory''). В коде без памяти каждый символ в кодируемом векторе данных заменяется кодовым словом из префиксного множества двоичных последовательностей или слов.
Примерами кодов без памяти являются [[Алгоритм Хаффмана|кодирование Хаффмана]] и кодирование Шеннона - Фано.
=== Достоинства кодов без памяти ===
Эти коды являются однозначно декодируемыми, в них никакое кодовое слово не является префиксом какого-то другого кодового слова. Это очень упрощает декодирование, поэтому часто именно им отдается предпочтение. Так же таким способом кодирования удается получить более короткие коды, чем с помощью кода фиксированной длины. И что немаловажно, декодировать сообщение можно по мере поступления, не получая его целиком.
=== Недостатки кодов без памяти ===
Коды Хаффмана и Шеннона - Фано являются оптимальными, но все же имеют ряд недостатков. Во-первых, при кодировании методами Хаффмана или Шеннона используются вероятности появления символов алфавита в тексте. То есть для построения кода нам нужно обладать этой информацией. Для того, чтобы декодер мог расшифровать файл таблицу частот, которой пользовался кодер, следует записать в сжатый файл. Следовательно, длина сжатого сообщения увеличивается на длину таблицы частот, которая должна посылаться впереди данных, что может не оправдать сжатия. Во-вторых, необходимость наличия полной частотной статистики перед началом собственно кодирования требует двух проходов по сообщению: одного для построения модели сообщения (таблицы частот и Н-дерева), другого для собственно кодирования.
=== Универсальное кодирование ===
577
правок

Навигация