Beschreibung
В рамках семинара будут рассматриваться следующие виды кодирование: . Кодирование Шеннона-Фано. Кодирование
Хаффмена. Арифметическое кодирование.
Оптимальное кодирование Шеннона.
В кодировании Шеннона символы располагаются в порядке от
наиболее вероятных к наименее вероятным. Оптимальное кодирование Шеннона-Фано Код строится следующим образом. Кодируемые знаки выписывают в таблицу в порядке убывания их вероятностей в сообщениях. Затем их разделяют на две группы так, чтобы значения сумм вероятностей в каждой группе были близкими. Все знаки одной из групп в соответствующем разряде кодируются, например, единицей, тогда знаки второй группы кодируются нулем. Каждую полученную в процессе деления группу подвергают вышеописанной операции до тех пор, пока в результате очередного деления в каждой группе не останется по одному знаку.
Кодируемые знаки, также как при использовании метода
Шеннона-Фано, располагают в порядке убывания их вероятностей. Далее на каждом этапе две последние позиции списка заменяются одной и ей приписывают вероятность, равную сумме вероятностей заменяемых позиций. После этого производится пересортировка списка по убыванию вероятностей, с сохранением информации о том, какие именно знаки объединялись на каждом этапе. Процесс продолжается до тех пор, пока не останется единственная позиция с вероятностью, равной 1.
Арифметическое кодирование (англ. Arithmetic coding) —
алгоритм сжатия информации без потерь, который при кодировании ставит в соответствие тексту вещественное число из отрезка. Данный метод, как и алгоритм Хаффмана, является энтропийным, т.е. длина кода конкретного символа зависит от частоты встречаемости этого символа в тексте. Арифметическое кодирование показывает более высокие результаты сжатия, чем алгоритм Хаффмана, для данных с неравномерными распределениями вероятностей кодируемых символов.