
- •Сжатие информации
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятие
- •Сжатие по Хаффмену
- •Сжатие по Хаффмену
- •Сжатие по Хаффмену
- •Адаптивное сжатие по Хаффмену с равномерной моделью
- •Адаптивное сжатие по Хаффмену с символом ESC
- •Восстановление данных, сжатых адаптивным методом Хаффмена
- •Пример сжатия по Хаффмену
- •Пример сжатия по Хаффмену
- •Пример сжатия по Хаффмену
- •Пример сжатия по Хаффмену
- •Пример сжатия по Хаффмену
- •Арифметическое кодирование
- •Арифметическое кодирование
- •Арифметическое кодирование
- •Пример арифметического кодирования
- •Пример арифметического кодирования
- •Пример арифметического кодирования
- •Словарные методы
- •Словарный метод LZ77
- •Словарный метод LZ77
- •Пример сжатия методом LZ77
- •Пример сжатия методом LZ77
- •Словарный метод LZ78
- •Пример сжатия методом LZ78
- •Пример сжатия методом LZ78
- •Словарные методы
- •Кодирование длин серий
- •Кодирование длин серий
- •Контекстное моделирование
- •Контекстное моделирование
- •Метод PPM
- •Сжатие на основе преобразования
- •Преобразование Барроуза-Уилера
- •Преобразование Барроуза-Уилера
- •Преобразование Барроуза-Уилера
- •Преобразование стопки книг
- •Преобразование стопки книг
- •Интервальное кодирование
- •Сжатие с потерями
- •Сжатие с потерями
- •Сжатие с потерями
- •Преобразование Карунена - Лоэва
- •Преобразование Карунена - Лоэва
- •Преобразование Карунена - Лоэва
- •Преобразование Карунена - Лоэва
- •Преобразование Карунена - Лоэва
- •Сжатие непрерывной информации
- •Сжатие непрерывной информации
- •Сжатие непрерывной информации
- •Сжатие звуковой информации
- •Сжатие звуковой информации
- •Сжатие звуковой информации
- •Сжатие речи
- •Сжатие речи
Контекстное моделирование
Оценку вероятности появления символов на выходе источника информации можно получать на основе контекстов только некоторого строго определенного порядка. В этом случае говорят, что используется контекстная модель соответствующего порядка. Такой метод малоэффективен по причине того, что реальные информационные источники, как правило, не обладают постоянной памятью.
Другой подход – при определении вероятностей появления символов учитывать модели разных порядков, т.е. производить так называемое смешивание моделей.
Метод PPM
В методе PPM вероятность появления символа оценивается в текущем контексте какого-то одного порядка, то есть в некоторой конкретной контекстной модели.
Первоначально для оценки вероятности появления символа берется контекст некоторого заранее определенного достаточно большого порядка (выбирается некая конкретная контекстная модель). Если кодируемый символ ранее в таком контексте не встречался, то вероятность его появления не может быть оценена с использованием выбранной модели. В этом случае кодер генерирует код служебного символа перехода ESC, сигнализирующего о невозможности использования рассматриваемой модели и необходимости перехода к другой модели. После этого осуществляется попытка оценить вероятность появления кодируемого символа с помощью модели следующего по убыванию порядка (возможен переход и на модель более низкого порядка). Если использование новой модели также не позволяет получить вероятностную оценку, кодер снова генерирует код служебного символа перехода и снова рассматривается модель меньшего порядка и т. д. Для гарантии завершения описанного процесса вводится дополнительная модель 1-го порядка, с одинаковой вероятностью оценивающая появление всех символов информационного алфавита (т.е. символ будет оценен, даже если он ранее вообще не встречался).
Рассмотренная схема называется схемой контекстного спуска.
Сжатие на основе преобразования
Методы сжатия на основе преобразований выполняются в два этапа – на первом происходит преобразование данных в новую форму, а на втором производится сжатие результатов преобразования.
Преобразование данных позволяет выделить зависимости между символами сжимаемого сообщения и тем самым более полно учесть их при кодировании с помощью статистических методов.
Преобразование Барроуза-Уилера
Преобразование Барроуза-Уилера BWT (Burrows-Wheeler Transformation) выполняется для блоков данных и заключается в следующем.
Пусть имеется блок символов (строка) S1S2….SN–1SN длины N. Поместим данный блок в буфер такого же размера.
Теперь последовательно выполним циклический сдвиг буфера на один символ влево:
S1S2….SN–1SN S2S3….SNS1.
Повторим эту операцию до тех пор, пока не получится N строк
– одна исходная и N – 1 результатов циклического сдвига. При этом будем условно считать, что все N строк размещаются в некотором массиве.
Отсортируем полученный массив строк в лексикографическом порядке и сформируем из последних символов каждой строки новую строку, которая вместе с индексом исходной строки и есть результат преобразования.
Преобразование Барроуза-Уилера
Преобразование BWT обратимо, т.е. по его результату можно восстановить исходный блок символов.
Обратимость преобразования обуславливается тем, что все обрабатываемые строки, получены из единственной исходной строки.
Если отсортировать символы результата, то получим первые символы всех строк отсортированного массива.
Если теперь выполнить циклический сдвиг влево и сортировку по двум символам, то получим по два первых символа в каждой строке.
Процесс можно продолжить до восстановления всего массива строк.
Исходная строка определяется ее индексом в этом массиве.
Преобразование Барроуза-Уилера
Применение преобразования BWT предполагает, что обрабатываемая информация порождается источником с памятью. Символы в такой информации зависят от контекстов, в которых они появляются. Отсюда, в частности, следует, что вероятность совпадения символов, имеющих частично совпадающие контексты, достаточно велика. Преобразование BWT позволяет группировать символы исходного информационного блока по схожести их контекстов. Результат преобразования обладает свойством локальной идентичности, которое заключается в том, что с уменьшением расстояния между позициями повышается вероятность совпадения символов, находящихся на этих позициях. Это, в свою очередь, позволяет осуществить эффективное кодирование результата преобразования с помощью какого-нибудь локально адаптивного статистического метода.
Преобразование стопки книг
Преобразование стопки книг или MTF (Move To Front) заключается в замещении символа номером его позиции в таблице, содержащей символы информационного алфавита. Символы замещаются последовательно, начиная с начала или с конца строки сообщения. Замещение сопровождается перестройкой таблицы, производимой следующим образом: замещенный символ перемещается на первую позицию в таблице, а все символы, находившиеся в момент замещения на позициях с номерами, меньшими номера позиции замещаемого символа, сдвигаются на одну позицию в направлении от начала таблицы. Таким образом, если какой-то символ недавно выступал в качестве замещаемого символа, то он будет находиться близко к началу таблицы.
Преобразование стопки книг
Результатом преобразования является последовательность номером символов в таблице.
Маленькие номера будут встречаться в данной последовательности значительно чаще, чем большие.
Такое перераспределение позволяет получить более эффективное сжатие.
Интервальное кодирование
Вместо символа S исходного сообщения кодируется длина интервала (количество символов) между предыдущим и текущим вхождениями данного символа. При этом считается, что первому символу сообщения предшествуют все символы алфавита в заранее определенном порядке.
Сжатие с потерями
По значениям (выборкам), полученным на предыдущих шагах, определяются коэффициенты полинома заданного порядка, например, методом наименьших квадратов. С помощью полученных коэффициентов предсказывается очередное значение. Предсказанное значение сравнивается с фактическим значением и, если разница между ними не превышает допустимую погрешность, то в качестве текущего значения выбирается предсказанное, иначе – фактическое. Во втором случае коэффициенты полинома обычно пересчитываются. При этом могут использоваться не все полученные значения, а только их часть, выбранная на основе некоторого критерия. Часто используются предсказатели нулевого порядка – предсказанным значением является предыдущее значение.