Кодирование Шеннона-Фано-Элиаса
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2016 г. ) |
В теории информации кодирование Шеннона-Фано-Элиаса является предшественником арифметического кодирования , в котором вероятности используются для определения кодовых слов. [ 1 ] Он назван в честь Клода Шеннона , Роберта Фано и Питера Элиаса .
Описание алгоритма
[ редактировать ]Учитывая дискретную случайную величину X значений , упорядоченных подлежащих кодированию, пусть быть вероятностью для любого x в X . Определить функцию
Алгоритм:
- Для каждого x в X ,
- Пусть Z — двоичное разложение .
- Выберите длину кодирования x , , чтобы быть целым числом
- Выберите кодировку x , , будь первым наиболее значимые биты после десятичной точки Z .
Пример
[ редактировать ]Пусть X = { A , B , C , D } с вероятностями p = {1/3, 1/4, 1/6, 1/4}.
- Для А
- В двоичном формате Z ( A ) = 0,001 0101010 ...
- код ( А ) 001
- Для Б
- В двоичном формате Z ( B ) = 0,011 10101010101...
- код ( B ) - 011
- Для С
- В двоичном формате Z ( C ) = 0. 1010 10101010...
- код ( C ) - 1010
- Для Д
- В двоичном формате Z(D) = 0,111 .
- код ( D ) 111
Алгоритмический анализ
[ редактировать ]Префиксный код
[ редактировать ]Кодирование Шеннона-Фано-Элиаса создает двоичный префиксный код , позволяющий осуществлять прямое декодирование.
Пусть bcode( x ) будет рациональным числом, образованным добавлением десятичной точки перед двоичным кодом. Например, если code( C ) = 1010, то bcode( C ) = 0,1010. Для всех x , если не существует y такого, что
тогда все коды образуют префиксный код.
Сравнивая F с CDF X . , это свойство можно продемонстрировать графически для кодирования Шеннона-Фано-Элиаса
По определению L отсюда следует, что
А поскольку биты после L ( y ) отсекаются от F ( y ) для формирования кода ( y ), отсюда следует, что
таким образом, bcode( y ) должен быть не меньше CDF( x ).
Таким образом, приведенный выше график показывает, что , поэтому свойство префикса сохраняется.
Длина кода
[ редактировать ]Средняя длина кода
.
Таким образом, для H ( X ) энтропия случайной величины X ,
Шеннон Фано Элиас кодирует от 1 до 2 дополнительных битов на символ из X , чем энтропия, поэтому на практике код не используется.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ ТМ Кавер и Джой А. Томас (2006). Элементы теории информации (2-е изд.). Джон Уайли и сыновья. стр. 127–128. ISBN 978-0-471-24195-9 .