Код

Код — правило (алгоритм) сопоставления каждому конкретному сообщению строго определённой комбинации символов (или сигналов). Кодом также называется отдельная комбинация таких символов. Для различия этих терминов, код в последнем значении ещё называется кодовым словом.

Содержание

Кодирование

Процесс преобразования сообщения в комбинацию символов в соответствии с кодом называется кодированием, процесс восстановления сообщения из комбинации символов называется декодированием.

Алфавиты

Множество символов, при помощи которых записываются исходные сообщения, называется первичным алфавитом, количество его элементов обозначается m1. Множество символов, из которых могут состоять кодовые слова, называется вторичным алфавитом, количество элементов этого множества обозначается m2.

Длина кодовых слов

Коды, которые представляют сообщения различным количеством символов, называются неравномерными, или некомплектными, соответственно коды, в которых кодовые слова имеют фиксированную длину, называются равномерными, или комплектными

Кодовые деревья

Для наглядного описания кодов используются кодовые деревья. Если число узлов на каждом его уровне содержит m_2^l узлов, где l — номер уровня (корень дерева находится на нулевом уровне), оно называется полным. Очевидно, величина m_2^{l_{max}}, называемая объёмом дерева, характеризует максимальное число кодовых комбинаций, которое можно построть при помощи данного дерева.

В теории построения трансляторов, такое дерево описывает множество всех возможных цепочек-выводов из формальной грамматики.

Префиксное свойство

Префиксным называется код, не имеющий комбинации, которая была бы префиксом (начальной частью произвольной длины) любой другой комбинации того же кода. Это даёт возможность при нефиксированной длине кодовых слов записывать сообщения из них состоящие без дополнительных разделителей, то есть любую последовательность кодовых слов всегда можно однозначно разделить на отдельные слова.

На этом принципе строятся также предиктивные синтаксические анализаторы, которые по началу синтаксической структуры (по префиксу кодового слова) могут однозначно определить данную структуру (данное слово) и включить соответствующий обработчик. Это позволяет обрабатывать синтаксические структуры без откатов.

Примеры

Равномерное кодирование: для алфавита с m1 символами используются кодовые слова с длиной n=up(log_{m_2}m_1), где up - округление до большего целого. В этом случае неиспользованными остаются log_{m_2}m_1-n кодовых слов, а остальным проставляются в соответствие символы первичного алфавита. Код Бодо имеет фиксированную длину 5 символов.

Префиксные коды: Код Шеннона-Фано — первый алгоритм неравномерного кодирования. Код Хаффмана — известный метод построения оптимального неравномерного кода (ОНК) с использованием деревьев. Арифметическое кодирование — обобщение кода Хаффмана.

Литература

Цымбал В.П. Теория информации и кодирование. — К.:Выща Школа, 1977. — 288 с.

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home