- •Теория информации Учебное пособие
- •Введение
- •1. Информационные характеристики источников сообщений
- •Энтропия как мера неопределенности физической системы
- •1.2 Энтропия сложной системы
- •Сложение энтропии независимых систем
- •Условная энтропия
- •1.3. Количественные аспекты информации
- •1.4. Количество информации, как мера снятой неопределенности
- •1.5. Объем информации
- •1.6. Взаимная информация
- •Упражнения
- •Решение
- •Лабораторная работа Свойства энтропии
- •2. Неопределенность непрерывных случайных величин
- •2.1. Энтропия непрерывной случайной величины х
- •2.2. Количество информации для непрерывных систем
- •2.3. Принцип экстремума энтропии и экстремальные распределения
- •Подставим (2.9) в (2.6)
- •При взятии интеграла учтем, что имеется соответствующий табличный интеграл
- •Сравнительная оценка сообщений, передаваемых по нормальному закону и равновероятному закону распределений
- •2.4. Епсилон энтропия (ε-энтропия )
- •3. Передача информации по каналам связи
- •3.1. Источники сообщений
- •3.2. Избыточность информации
- •3.3. Передача информации по каналу связи. Пропускная способность канала
- •Матрица для нахождения условной вероятности
- •Матрица условных вероятностей имеет вид
- •3.4. Пропускная способность непрерывных каналов связи
- •Скорость передачи информации будет равняться
- •Тогда , (3.8) где p мощность сигнала, а n мощность помехи
- •3.5. Согласование скорости выдачи информации, выдаваемой источником, с пропускной способностью канала связи
- •3.6. Согласование оконечных устройств с каналами связи
- •Упражнения
- •Лабораторная работа
- •4. Кодирование информации
- •4.1. Префиксные коды
- •Коды 1,2,3 не обладают свойством префикса, а код 4 обладает.
- •4.2. Основные теоремы кодирования
- •4.3. Оптимальное кодирование
- •4.4. Код Шеннона – Фано
- •Средняя длина полученного кода будет равна
- •4.5. Блочное кодирование
- •4.6. Код Хаффмана
- •4.7. Совмещенный способ построения кода Хаффмана Совмещенный способ построения кода Хаффмана представляет объединение двух процессов: обычного алгоритма построения и метода дерева.
- •Лабораторная работа
- •5. Сжатие информации
- •5.1. Основные понятия
- •5.2. Методы сжатия без потерь
- •Кодирование длин серий (rle - кодирование)
- •Коды Фибоначчи
- •Методы энтропийного сжатия
- •Метод арифметического сжатия
- •Методы контекстного моделирования
- •Словарные методы сжатия
- •5.3. Методы сжатия с потерями
- •6. Помехоустойчивое кодирование
- •6.1 Коды с обнаружением ошибок
- •Код с проверкой на четность.
- •Код Грея записывается следующим образом
- •Обратный переход из кода Грея в двоичный код
- •6.2. Корректирующие коды
- •6.3. Код Хемминга
- •Проверяем ее
- •6.4. Техническая реализация кода Хэмминга
- •6.5 Циклические коды
- •Декодирование циклических кодов
- •Аппаратурная реализация циклических кодов.
- •Пусть на вход подается комбинация 1101001
- •Теперь пусть на вход подается комбинация с ошибкой 1100001
- •Упражнения
- •Лабораторная работа
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Задание 7
- •Задание 8
- •Задание 9
- •Задание 10
- •Задание 11
- •Задание 12
- •Задание 13
- •Задание 14
- •Задание 15
- •Задание 16
- •Задание 17
- •Задание 18
- •Задание 19
- •Задание 20
- •Список литературы
- •Оглавление
Методы энтропийного сжатия
Одним из наиболее часто используемых методов энтропийного сжатия относится метод Хаффмена, который заключается в последовательном выполнении следующих действий:
определить список кодируемых символов и их частоты;
отсортировать список символов по убыванию частот;
если в списке только два символа, то перейти к п. 5, иначе – к п. 4.
заменить два последних символа на один новый символ (составной символ), частота которого равна сумме их частот и перейти к п. 2;
присвоить первому символу в списке код 0, а второму – код 1;
найти первый от начала списка составной символ (см. п. 4) и заменить его на те два символа, из которых он был образован. При этом первому из восстановленных символов присвоить код составного символа с приписанным справа 0, а второму – код составного символа с приписанной справа 1;
повторить п. 6 до тех пор пока не будет восстановлен исходный список символов, такой же как после выполнения п. 1.
Пример 5.5. Выполнить сжатие с помощью метода Хаффмена последовательности символов
aacabcccbbcabcabcacccda.
Построить список символов исходной последовательности и их частот:
Символ
c
a
b
d
Частота
10
7
5
1
Заменить символы b и d (два символа с наименьшими частотами) на символ s’ с частотой 6 (сумма частот символов b и d). Отсортировать полученный список символов:
Символ
c
a
s’
Частота
10
7
6
Заменить символы a и s’ на символ s’’ с частотой 13. Отсортировать полученный список символов:
Символ
s’’
c
Частота
13
10
Присвоить символу s’’ код 0, а символу c – код 1.
Заменить символ s’’ на символы a и s’. Присвоить символу a код 00, а символу s’ – код 01.
Заменить символ s’ на символы b и d. Присвоить символу b код 010, а символу d – код 011.
Таким образом, получены следующие коды для символов исходной последовательности:
Символ |
a |
b |
c |
d |
Код |
00 |
010 |
1 |
011 |
Длина последовательности кодов равна
7 2 бита + 5 3 бита + 10 1 бит + 1 3 бита = 42 бита.
Если каждый символ исходной последовательности имеет длину 1 байт (8 бит), то длина исходной последовательности равна 23 8 бит = 184 бита, а коэффициент сжатия имеет значение 42 бит / 184 бита 0.228. Необходимо отметить, что энтропия исходной последовательности равна 1.72 бита. Эта величина близка средней длине кода, равной 1.82 бита. Именно поэтому метод Хаффмена относится к энтропийным методам сжатия.
На практике часто используется адаптивный вариант метода Хаффмена, при реализации которого частоты символов уточняются по мере сжатия. В отличие от первоначального алгоритма здесь требуется всего один проход по исходному файлу. Для этого вводится дополнительный символ ESC, который при декодировании показывает, что за ним следует несжатый символ. Символ ESC всегда имеет частоту 1 и размещается в конце списка. Приведем следующий алгоритм адаптивного сжатия по методу Хаффмена.
Создать список, состоящий только из одного символа ESC с частотой 1.
Прочитать символ последовательности. Если символ отсутствует в списке, то перейти к п. 3, иначе – к п. 4.
Присвоить код символу ESC, выдать этот код, выдать прочитанный символ, добавить его в конец списка перед символом ESC с частотой 1 и перейти к п. 2.
Присвоить код прочитанному символу, выдать этот код, увеличить на 1 частоту символа, переместить символ на место в списке, соответствующее новому значению частоты.
Пример 5.6. Выполнить сжатие последовательности символов
abacab
с помощью адаптивного варианта метода Хаффмена.
Создать список из одного символа ESC с частотой 1.
Список:
Символ |
ESC |
Частота |
1 |
Прочитать символ a. Так как этот символ отсутствует в списке, то выдать код символа ESC – 0 и символ a. Включить символ a в список с частотой 1 перед символом ESC.
Список:
Символ |
a |
ESC |
Частота |
1 |
1 |
Прочитать символ b. Так как этот символ отсутствует в списке, то выдать код символа ESC – 1 и символ b. Включить символ b в список с частотой 1 перед символом ESC.
Список:
Символ |
a |
b |
ESC |
Частота |
1 |
1 |
1 |
Прочитать символ a. Этот символ имеется в списке, поэтому его можно закодировать как 1. Частота символа a увеличивается на 1.
Список:
Символ |
a |
b |
ESC |
Частота |
2 |
1 |
1 |
Прочитать символ c. Так как этот символ отсутствует в списке, то выдать код символа ESC – 11 и символ c. Включить символ c в список с частотой 1 перед символом ESC.
Список:
Символ |
a |
b |
c |
ESC |
Частота |
2 |
1 |
1 |
1 |
Прочитать символ a. Этот символ имеется в списке, поэтому его можно закодировать как 1. Частота символа a увеличивается на 1.
Список:
Символ |
a |
b |
c |
ESC |
Частота |
3 |
1 |
1 |
1 |
Прочитать символ b. Этот символ имеется в списке, поэтому его можно закодировать как 10. Частота символа b увеличивается на 1.
Список:
Символ |
a |
b |
c |
ESC |
Частота |
3 |
2 |
1 |
1 |
Таким образом, после выполнения сжатия получается следующая последовательность кодов:
0 a 1 b 1 11 c 1 10.
Кроме метода Хаффмена к энтропийным методам относится также метод Шеннона – Фано. Однако в настоящее время он используется гораздо реже по сравнению с методом Хаффмена.
