- •Теория информации Учебное пособие
- •Введение
- •1. Информационные характеристики источников сообщений
- •Энтропия как мера неопределенности физической системы
- •1.2 Энтропия сложной системы
- •Сложение энтропии независимых систем
- •Условная энтропия
- •1.3. Количественные аспекты информации
- •1.5. Объем информации
- •1.4. Количество информации, как мера снятой неопределенности
- •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
- •Список литературы
- •Оглавление
Словарные методы сжатия
Алгоритмы, использующие методы словарного сжатия, заменяют подстроки кодируемой последовательности символов ссылками в словарь на идентичные подстроки.
Рассмотрим метод LZ77, который является одним из наиболее распространенных словарных методов сжатия.
Выделить область памяти под буфер.
Выделить область памяти под словарь.
Заполнить буфер символами исходной последовательности
Определить максимальную часть буфера (L символов от начала буфера), совпадающих с частью словаря (L символов с позиции P в словаре).
Выдать тройку <L, P, S>, где S – (L + 1) – ый символ в буфере.
Переместить L + 1 символ из начала буфера (с удалением их в буфере) в конец словаря.
Переместить на освободившиеся позиции в начале буфера оставшиеся символы и дополнить его символами исходной последовательности.
Повторять пп. 4 – 7 до тех пор, пока буфер не станет пуст после выполнения п. 7.
Приведенный алгоритм является общим описанием метода. Его более конкретную реализацию рассмотрим на следующем примере.
Пример 5.10. Сжать методом LZ77 последовательность
aaaabaabbb.
Пусть буфер имеет длину 4 символа, а словарь – 8 символов.
Выделить память под буфер и словарь.
Буфер: пуст, словарь: пуст, последовательность: aaaabaabbb.
Заполнить буфер.
Буфер: aaaa, словарь: пуст, последовательность: baabbb.
Найти максимальную часть буфера от его начала, совпадающую с частью словаря. Так как словарь пуст, то длина найденной части равна 0.
Выдать тройку <0, 0, a>.
Изменить буфер, словарь и последовательность.
Буфер: aaab, словарь: a, последовательность: aabbb.
Найти максимальную часть буфера от его начала, совпадающую с частью словаря. Данная часть имеет длину 1.
Выдать тройку <1, 1, a>.
Изменить буфер, словарь и последовательность.
Буфер: abaa, словарь: aaa, последовательность: bbb.
Найти максимальную часть буфера от его начала, совпадающую с частью словаря. Данная часть имеет длину 1.
Выдать тройку <1, 1, b>.
Изменить буфер, словарь и последовательность.
Буфер: aabb, словарь: aaaab, последовательность: b.
Найти максимальную часть буфера от его начала, совпадающую с частью словаря. Данная часть имеет длину 3.
Выдать тройку <3, 3, b>.
Изменить буфер, словарь и последовательность.
Буфер: b, словарь: aaabaabb, последовательность: пуста.
Найти максимальную часть буфера от его начала, совпадающую с частью словаря. Данная часть имеет длину 1.
Выдать тройку <1, 4, U>, где U – признак отсутствия символа.
Изменить буфер, словарь и последовательность.
Буфер: пуст, словарь: aabaabbb, последовательность: пуста.
Так как буфер пуст, то процесс сжатия закончен.
Таким образом, на выходе получена следующая последовательность троек:
<0, 0, a>, <1, 1, a>, <1, 1, b>, <3, 3, b>, <1, 4, U>.
5.3. Методы сжатия с потерями
Методы сжатия с потерями широко применяются при преобразовании аналоговой информации в цифровую форму. Например, часто используется следующий метод (рациональная выборка), который основывается на аппроксимации сигнала определенным аналитическим выражением. Предварительно сигнал подвергается равномерной дискретизации, а затем полученная дискретная последовательность фильтруется по заданному алгоритму. Обычно фильтрация заключается в нахождении выборок, амплитуды которых отличаются от значений, полученных с помощью аппроксимации, на величину ошибки, которая больше допустимой. Эти выборки считаются информативными и подлежат передаче или хранению, а остальные исключаются как несущественные. Полученная отфильтрованная последовательность выборок сжимается каким – нибудь методом без потерь.
Пример 5.11. Дана последовательность выборок
10.1, 12.5, 12.3, 12.7, 13.1, 12.9.
Выполнить сжатие последовательности с ошибкой не более 0.5.
Будем в качестве значения аппроксимирующей зависимости использовать значение предыдущей выборки. Если текущая выборка отличается от нее на величину ошибки, то дальнейшие сравнения производятся с ее значением.
Прочитать значение 10.1. Зафиксировать это значение для последующих сравнений и передать его на выход значение.
Прочитать значение 12.5. Так как оно отличается от 10.1 на величину, превышающую 0.5, то зафиксировать его для последующих сравнений и передать на выход.
Прочитать значение 12.3. Это значение отличается от 12.5 менее, чем на величину 0.5. Поэтому на выход передается опять предыдущее значение.
Прочитать значение 12.7. Оно отличается от 12.5 менее, чем на величину 0.5. На выход передается значение 12.5.
Прочитать значение 13.1. Оно отличается от 12.5 на величину, превышающую 0.5. Поэтому это значение передается на выход и фиксируется для последующих сравнений.
Прочитать значение 12.9. Это значение отличается от 13.1 на величину, не превышающее 0.5. Поэтому на выход передается значение 13.1
Таким образом, на выходе сформирована следующая последовательность:
10.1, 12.5, 12.5, 12.5, 13.1, 13.1.
После применения метода RLE получается: <10.1, 1>, <12.5, 3>, <13.1, 2>.
Вопросы
5.1. Выполните классификацию методов сжатия по возможности адаптации к сжимаемым данным, симметричности операций кодирования и декодирования данных, допустимости искажений информации.
5.2. Опишите алгоритм RLE – кодирования.
5.3. Опишите алгоритм сжатия данных с представлением целых чисел. Приведите пример адаптивного варианта такого сжатия.
5.4. Опишите алгоритм энтропийного сжатия по Хаффмену. Приведите адаптивный вариант сжатия с использованием метода кодирования Шеннона-Фано.
5.5. Опишите арифметический метод сжатия.
5.6. Почему метод контекстного моделирования является более эффективным для длинных последовательностей символов, чем методы Хаффмена и арифметического сжатия?
5.7. Опишите метод словарного сжатия. Приведите пример его использования.
5.8. Приведите вариант сжатия с потерями информации.
Упражнения
5.1. Найдите коэффициент сжатия арифметическим методом последовательности ASCII – символов (т.е. каждый символ имеет длину 8 бит), которая имеет вид: abaaa.
5.2. Выполните сжатие последовательности символов из п. 5.1 методом RLE.
5.3. Приведите коды Фибоначчи для чисел 131, 148, 87, 17, 33.
5.4. Приведите последовательность кодов Хаффмена после выполнения адаптивного сжатия последовательности ASCII – символов, которая имеет вид: abaaabbb.
5.5. Выполните сжатие последовательности символов из п. 5.4 методом LZ77. Придумайте способ сокращения числа полей в кодовой тройке <длина, позиция, символ>.
5.6. Найти последовательность кодов при контекстном моделировании последовательности символов из п. 5.4. Считать, что максимальный порядок контекстной модели равен 2. При кодировании использовать метод Хаффмена.
5.7. Сжать последовательность выборок, полученных при первичном преобразовании в информационно – измерительной системе. Допускается сжатие с потерями информации с максимальной ошибкой 0.4. Последовательность выборок имеет вид: 10.1, 12.5, 11.9, 11.5, 11.7, 12, 12.1, 11.8, 11.4, 11.2, 10.9.
