Постановка задачі кодування


Вступ

Література.

Час – 2 год.

1. К.Шеннон. Работы по теории информации и кибернетике. Издательство иностранной литературы, Москва, 1963.

2. Стариченко Б. Е.Теоретические основы информатики: Учебное пособие для вузов. - 2-е изд. перераб. и доп. - М.: Горячая линия - Телеком, 2003. - 312 с.; ил.

3. Яглом A.M., Яглом И.М. Вероятность и информация. М.: Наука, 1973. 511 с.

 

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

Цель кодирования источника сообщений – наиболее экономное представление сообщений, т.е. отображение их словами по возможности меньшей длины.

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

Введем ряд с определений.

Будем считать, что источник представляет информацию в форме дискретного сообщения, используя для этого алфавит, который в дальнейшем условимся называть первичным. Далее это сообщение попадает в устройство, преобразующее и представляющее его в другом алфавите - этот алфавит назовем вторичным.

Код –

(1) правило, описывающее соответствие знаков или их сочетаний первичного алфавита знакам или их сочетаниям вторичного алфавита.

(2) набор знаков вторичного алфавита, используемый для представления знаков или их сочетаний первичного алфавита.

Кодирование - перевод информации, представленной сообщением в первичном алфавите, в последовательность кодов.

Декодирование - операция, обратная кодированию, т.е. восстановление информации в первичном алфавите по полученной последовательности кодов.

Кодер - устройство, обеспечивающее выполнение операции кодирования.

Декодер - устройство, производящее декодирование.

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

 

Примером обратимого кодирования является представление знаков в телеграфном коде и их восстановление после передачи.

Примером кодирования необратимого может служить перевод с одного естественного языка на другой - обратный перевод, вообще говоря, не восстанавливает исходного текста. Безусловно, для практических задач, связанных со знаковым представлением информации, возможность восстановления информации по ее коду является необходимым условием применения кода, поэтому в дальнейшем изложении ограничим себя рассмотрением только обратимого кодирования.

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

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

Пусть

· первичный алфавит состоит из знаков со средней информацией на знак , а

· вторичный алфавит ‑ из знаков со средней информацией на знак .

Пусть также исходное сообщение, представленное в первичном алфавите, содержит знаков, а закодированное сообщение - знаков. Если исходное сообщение содержит информации, а закодированное - , то условие обратимости кодирования, т.е. неисчезновения информации при кодировании, очевидно, может быть записано следующим образом:

,

смысл которого в том, что операция обратимого кодирования может увеличить количество информации в сообщении, но не может его уменьшить. Представим неравенство иначе:

 

Отношение , очевидно, характеризует среднее число знаков вторичного алфавита, которое приходится использовать для кодирования одного знака первичного алфавита ‑ будем называть его длиной кода или длиной кодовой цепочки и обозначим . Следовательно

 

Обычно и , откуда , т.е. один знак первичного алфавита представляется несколькими знаками вторичного. Поскольку способов построения кодов при фиксированных алфавитах существует множество, возникает проблема выбора (или построения) наилучшего варианта ‑ будем называть его оптимальным кодом.

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

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

Как следует из (1), минимально возможным значением средней длины кода будет:

 

Данное выражение следует воспринимать как соотношение оценочного характера, устанавливающее нижний предел длины кода, однако, из него неясно, в какой степени в реальных схемах кодирования возможно приближение к . По этой причине для теории кодирования и теории связи важнейшее значение имеют две теоремы, доказанные Шенноном. Первая - ее мы сейчас рассмотрим - затрагивает ситуацию с кодированием при отсутствии помех, искажающих сообщение. Вторая теорема относится к реальным линиям связи с помехами и будет обсуждаться позже.

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

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

Приведенное утверждение является теоремой и, следовательно, должно доказываться. Мы опустим его, адресовав интересующихся именно доказательной стороной к книге А. М. Яглома и И. М. Яглома [3, с.212-217]. Для нас важно, что теорема открывает принципиальную возможность оптимального кодирования, т.е. построения кода со средней длиной . Однако необходимо сознавать, что из самой теоремы никоим образом не следует, как такое кодирование осуществить практически - для этого должны привлекаться какие-то дополнительные соображения, что и станет предметом нашего последующего обсуждения.

Из (2) видно, что имеются два пути сокращения :

· уменьшение числителя ‑ это возможно, если при кодировании учесть различие частот появления разных знаков в сообщении, корреляции двухбуквенные, трехбуквенные и т.п. ( );

· увеличение знаменателя ‑ для этого необходимо применить такой способ кодирования, при котором появление знаков вторичного алфавита было бы равновероятным, т.е. .

В частной ситуации, рассмотренной подробно К. Шенноном, при кодировании сообщения в первичном алфавите учитывается различная вероятность появления знаков (то, что ранее мы назвали «первым приближением»), однако, их корреляции не отслеживаются ‑ источники подобных сообщений называются источниками без памяти. Если при этом обеспечена равная вероятность появления знаков вторичного алфавита, то, как следует из (2), для минимальной средней длины кода оказывается справедливым соотношение:

 

В качестве меры превышения над можно ввести относительную избыточность кода :

 

Данная величина показывает, насколько операция кодирования увеличила длину исходного сообщения.

Очевидно, при . Следовательно, решение проблемы оптимизации кода состоит в нахождении таких схем кодирования, которые обеспечили бы приближение средней длины кода к значению , равному отношению средних информации на знак первичного и вторичного алфавитов.

Легко показать, что чем меньше , тем ближе к , т.е. возникает меньше информации, связанной с кодированием, более выгодным оказывается код и более эффективной операция кодирования.

Используя понятие избыточности кода, можно построить иную формулировку теоремы Шеннона: