- •Введение
- •1. Предмет информатики
- •1.1 Роль информации в современном обществе
- •1.2 Информационные барьеры в истории человечества
- •1.3 Предметная область информатики
- •2. Теория информации
- •2.1 Исходные понятия теории информации
- •2.2 Формы представления информации
- •2.3 Преобразование сообщений
- •3. Понятие информации в теории Шеннона
- •3.1 Понятие энтропии
- •3.2 Условная энтропия
- •3.3 Статистическое определение информации
- •3.4 Энтропия и информация
- •3.5 Информация и алфавит
- •4. Кодирование символьной информации
- •4.1 Постановка задачи кодирования. Первая теорема Шеннона
- •4.2 Алфавитное неравномерное двоичное кодирование сигналами равной длительности
- •4.2.1 Неравномерный код с разделителем
- •4.2.2 Префиксное неравномерное кодирование
- •4.3 Равномерное алфавитное двоичное кодирование. Байтовый код
- •4.4 Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •4.5 Блочное двоичное кодирование
- •5. Кодирование и представление чисел в компьютере
- •5.1 Системы счисления
- •5.2 Перевод чисел из одной системы счисления в другую
- •5.3 Перевод чисел между системами счисления с основанием 2k
- •5.4 Формы представления вещественных чисел
- •5.5 Кодирование целых чисел в компьютере
- •5.5.1 Кодирование в компьютере целых чисел без знака
- •5.5.2 Кодирование в компьютере целых чисел со знаком
- •5.6 Кодирование в компьютере вещественных чисел
- •5.7 Двоично-десятичные коды
- •5.7.1 Код (8421) – код прямого замещения
- •6. Обработка чисел в компьютере
- •6.1 Выполнение операций сложения
- •6.2 Сложение нормализованных чисел
- •6.3 Выполнение операции умножения
- •6.3.1 Общий алгоритм умножения
- •6.3.2 Особенности умножения в форме с плавающей запятой
- •6.4 Деление чисел
- •7. Кодирование графической и звуковой информации
- •7.1 Представление изображений
- •7.2 Представление звука
- •Список литературы
- •Родина Наталья Васильевна Информатика
- •Часть 1
- •107846, Москва, ул.Стромынка, 20
4.2 Алфавитное неравномерное двоичное кодирование сигналами равной длительности
Как следует из названия, в способах кодирования, относящихся к этой группе, знаки первичного алфавита кодируются комбинациями символов двоичного алфавита (0,1), причем длина кодов и, соответственно, длительность передачи отдельного кода могут различаться. Длительности элементарных сигналов при этом одинаковы (0 = 1 = ).
Очевидно, для передачи информации, в среднем приходящейся на знак первичного алфавита, необходимо время К(А,2) .
Таким образом, задачу оптимизации неравномерного кодирования можно сформулировать так:
построить такую схему кодирования, в которой суммарная длительность кодов при передаче (или суммарное число кодов при их хранении) данного сообщения была бы наименьшей.
За счет чего возможна такая оптимизация? Очевидно, суммарная длительность сообщения будет меньше, если применить следующий подход: тем знакам первичного алфавита, которые встречаются в сообщении чаще, присвоить меньшие по длине коды, а тем, относительная частота которых меньше – коды более длинные.
Параллельно должна решаться проблема различимости кодов. Представим, что на выходе кодера получена следующая последовательность сигналов «0010001000011101010111000011» .
Каким образом она может быть декодирована? Если бы код был равномерным, приемное устройство просто считывало бы заданное (фиксированное) число элементарных сигналов и интерпретировало их в соответствии с кодовой таблицей.
При использовании неравномерного кодирования возможны 2 подхода к обеспечению различимости кодов:
используется специальная комбинация элементарных сигналов, которая интерпретируется декодером как разделитель знаков;
применяются префиксные коды.
4.2.1 Неравномерный код с разделителем
Условимся, например, что разделителем отдельных кодов букв будет последовательность 00 (признак конца знака), а разделителем слов – 000 (признак конца слова – пробел).
Довольно очевидными являются следующие правила построения кодов:
код признака конца знака может быть включен в код буквы, поскольку не существует отдельно (то есть коды всех букв будут заканчиваться на 00);
коды букв не должны содержать 2-х и более нулей подряд в середине (иначе они будут восприниматься как конец знака);
код буквы всегда должен начинаться с 1;
разделителю слов 000 всегда предшествует признак конца знака; при этом реализуется последовательность 00000 (то есть, если в конце кода встречается комбинация …000 или …0000, они не воспринимаются как разделитель слов, следовательно, коды букв могут оканчиваться на 0 или 00 до признака конца знака).
В соответствии с перечисленными правилами построим кодовую таблицу для букв русского алфавита (таблица 4.1), основываясь на приведенных ранее в таблице 3.1 вероятностях появления отдельных букв.
Таблица 4.1 Неравномерный код с разделителем
Буква |
Код |
Частота Pi103 |
Буква |
Код |
Частота Pi103 |
пробел |
000 |
174 |
я |
1011000 |
18 |
о |
100 |
90 |
ы |
1100100 |
16 |
е |
1000 |
72 |
з |
1101000 |
16 |
а |
1100 |
62 |
ь, ъ |
1101100 |
14 |
и |
10000 |
62 |
б |
1110000 |
14 |
т |
10100 |
53 |
г |
1110100 |
13 |
н |
11000 |
53 |
ч |
1111000 |
12 |
с |
11100 |
45 |
й |
1111100 |
10 |
р |
101000 |
40 |
х |
10101000 |
9 |
в |
101100 |
38 |
ж |
10101100 |
7 |
л |
110000 |
35 |
ю |
10110000 |
6 |
к |
110100 |
28 |
ш |
10110100 |
6 |
м |
111000 |
26 |
ц |
10111000 |
4 |
д |
111100 |
25 |
щ |
10111100 |
3 |
п |
1010000 |
23 |
э |
11010000 |
3 |
у |
1010100 |
21 |
ф |
11010100 |
2 |
Средняя длина кода К(ru, 2) = .
Поскольку для русского языка I1r = 4,356 бит, избыточность данного кода составляет
Q(ru, 2) = - 1 = 0,14.
Это означает, что при данном способе кодирования будет передаваться приблизительно на 14 % больше информации, чем содержит исходное сообщение.
Аналогичные вычисления для английского языка К(en, 2) = 4,716, что при I1(e) = 4,036 бит приводит к избыточности кода Q(еn, 2) = 0,168.
Пример 1. Провести кодирование неравномерным кодом с разделителем сообщения, предполагая, что набор символов и частоты их появления определяются текстом сообщения.
Сообщение «МАМА МЫЛА РАМУ»
Построим таблицу повторений символов.
Символ |
Число повторений |
Вероятность |
код |
пробел |
2 |
2/14 |
000 |
М |
4 |
4/14 |
100 |
А |
4 |
4/14 |
1000 |
Р |
1 |
1/14 |
1100 |
Ы |
1 |
1/14 |
10000 |
У |
1 |
1/14 |
10100 |
Л |
1 |
1/14 |
11000 |
Средняя длина кода:
3 + 3 + 4 + 4 + 5 + 5+ 5 = = 3.79.
Среднее количество информации на знак этого первичного алфавита
I = = 2,518.
Избыточность кода = (50%).