Кодирование

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

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

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

(1),

где энтропия источника. Равенство в формуле может не достигаться. Однако при любых существует метод кодирования (метод Шеннона – Фано), для которого

(2).

Метод состоит в том, что сообщения располагаются в порядке убывания вероятностей и полученный ряд делится на две части с суммарными вероятностями, по возможности близкими друг к другу. В качестве первого двоичного знака принимают в 1-й части и – во 2-й. Таким же образом делят пополам каждую из частей и выбирают второй двоичный знак и т. д., пока не придут к частям, содержащим только по одному сообщению.

Пример 1. Пусть и , , . Применение метода иллюстрируется таблицей:

Кодовое
обозначение

В данном случае

,

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

Задача о сжатии записи сообщений в данном алфавите (т. е. задача об уменьшении избыточности) может быть решена на основе метода Шеннона – Фано. Если сообщения представлены последовательностями длины букв из -буквенного алфавита, то их средняя длина после кодирования всегда удовлетворяет неравенству

,

где – энтропия источника на букву. Кроме того, при сколь угодно малом можно добиться выполнения при всех достаточно больших неравенства

(3).

С этой целью используют кодирование блоками: по данному выбирают достаточно большое натуральное число и делят каждое сообщение на равные части – блоки, содержащие по букв. Затем эти блоки кодируют методом Шеннона – Фано в тот же алфавит. Тогда при достаточно больших будет выполнено неравенство . Справедливость этого утверждения легче всего понять, рассматривая случай, когда источником является последовательность независимых символов и , появляющихся соответственно с вероятностями и , . Энтропия на блок равна -кратной энтропии на одну букву, т. е. равна . Кодовое обозначение блока требует в среднем не более двоичных знаков. Поэтому для сообщения, состоящего из букв,

,

что при достаточно больших и приводит к неравенству . При таком кодировании энтропия на букву приближается к своему максимальному значению – единице, а избыточность – к нулю.

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

См. также Криптография, теорема Шеннона.

Литература

  • Хэмминг Р. В. Теория кодирования и теория информации / пер. с англ. С. И. Гельфанда. – Москва : Радио и связь, 1983.
  • Ромащенко А. Е. Заметки по теории кодирования / А. Ромащенко, А. Румянцев, А. Шень. – Москва : Издательство Московского центра непрерывного математического образования, 2017.
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru