Основные определения и положения
Если бы задача кодирования источника не сопровождалась никакими оговорками, ее решение носило бы тривиальный характер. Действительно, выбрав k из условия Операция кодирования может осуществляться в одном из двух вариантов. При первом из них все слова имеют одинаковую длину (число символов). Такой код называется равномерным (или фиксированной длины). Если же допускаются слова разной длины, код называется неравномерным (или переменной длины). Ясно, что вариант неравномерного кодирования является более общим, так как охватывает как частность и равномерные коды.
2.2. Префиксные коды. Неравенство Крафта. Средняя длина кодового слова.
Остановимся первоначально на алгоритме экономного неравномерного кодирования источника. Идея экономии числа символов при неравномерном кодировании состоит в том, что более вероятным сообщениям присваиваются короткие кодовые слова, а менее вероятным – длинные. Результатом подобной стратегии является уменьшение числа символов, затрачиваемых в среднем на каждое сообщение. Заметим, однако, что в отличии от равномерного кодирования неравномерному присуща проблема однозначной идентификации начала слов в случаях, когда источник генерирует сообщения последовательно во времени, т.е. одно за другим, как это и имеет место в абсолютном большинстве реальных систем. Поясним это простым примером. Пример 2.2.1. Пусть имеется некоторый дискретный источник X, генерирующий за одно использование одно из При первом способе появление комбинации 00111111 возможно как результат кодирования различных последовательностей сообщений: Простейшим путем преодоления этого затруднения является введение специального разделительного символа, который в технической литературе называют «запятой». Коды, содержащие такой специальный символ, называют «кодами с запятой». Понятно, что введение запятой означает добавление еще одного символа в кодовый алфавит, так что Пример однозначно декодируемого неравномерного кода без запятой дает последний столбец табл. 2.1. Так, последовательность кодовых символов 0011010111110 может быть воспринята только как результат кодирования последовательности сообщений Неопределенность начала слов в последнем примере устраняется тем, что никакое кодовое слово не начинается с комбинации (префикса), совпадающей с другим словом. Определение 2.2.1. Коды, в которых ни одно слово не является префиксом другого, называются префиксными кодами. С другой стороны, среди однозначно декодируемых кодов особый интерес представляют мгновенно декодируемые. Последнее означает, что любое кодовое может быть декодировано сразу, как только появился его последний символ. Префиксные коды являются примером мгновенно декодируемых кодов. Необходимое и достаточное условие существования префиксных кодов формулируется следующей теоремой.
|