Код

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Кодирование[править | править вики-текст]

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

Кодовые деревья[править | править вики-текст]

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

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

Префиксный код[править | править вики-текст]

Префиксным называется код, не имеющий ни одного кодового слова, которое было бы префиксом (началом) любого другого кодового слова данного кода. Любой префиксный код является разделимым (то есть любую последовательность кодовых слов всегда можно однозначно разделить на отдельные из них).[1] Примерами префиксных кодов являются коды Шеннона, Шеннона-Фано и Хаффмана.

Примеры[править | править вики-текст]

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

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

Литература[править | править вики-текст]

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Габидулин, Э. М., Пилипчук, Н. И. 3.3. Префиксный код. // Лекции по теории информации. — М.: МФТИ, 2007. — С. 43—49. — 214 с. — ISBN 5-7417-0197-3.