Использование методов сжатия данных без потерь информации в условиях жестких ограничений на ресурсы устройства-декодера

УДК 621.391

ИСПОЛЬЗОВАНИЕ МЕТОДОВ СЖАТИЯ ДАННЫХ БЕЗ ПОТЕРЬ ИНФОРМАЦИИ В УСЛОВИЯХ ЖЕСТКИХ ОГРАНИЧЕНИЙ НА РЕСУРСЫ УСТРОЙСТВА-ДЕКОДЕРА

Л. А. Осипов,

доктор техн. наук, профессор М. А. Смирнов,

аспирант

Санкт-Петербургский государственный университет аэрокосмического приборостроения

Рассматривается задача эффективного сжатия данных при жестких ограничениях на ресурсы декодера, в первую очередь по памяти. Сравнивается эффективность различных методов при адаптивном и статическом подходах. Для сравниваемых программ показывается взаимосвязь достигаемого коэффициента сжатия, скорости декодирования и требуемого для декодирования объема памяти (ОЗУ или ПЗУ). Основное внимание уделяется экономному кодированию текста на естественном языке.

The paper concerns the problem of effective data compression under the severe restrictions on decoder’s resources, most of all memory consumption. The effectiveness of various methods is compared in adaptive and static modes. The relation between compression ratio, decoding speed and memory consumption (RAM or ROM) for decoding is shown for compared programs. The problem of text compression is specifically attended.

Введение

В настоящее время большое распространение получили мобильные вычислительные устройства и различная встраиваемая техника. Часто мобильное устройство взаимодействует с некоторым стационарным в рамках модели «клиент—сервер». Например, так может строиться работа электронных записных книжек, использующихся в качестве терминала для работы с удаленной базой данных. При этом серверу передаются главным образом запросы, а клиенту— требуемые данные, т. е. обмен асимметричен, и основная нагрузка ложится на канал связи от сервера к клиенту. Поэтому при организации информационного взаимодействия между мобильным и стационарным устройствами часто возникает проблема эффективного использования канала связи. Экономное кодирование пересылаемых сообщений (сжатие данных) может существенно увеличить реальную пропускную способность канала. Но применение сжатия данных затрудняется тем, что для мобильных или управляемых встраиваемых устройств характерно наличие сравнительно малых вычислительных ресурсов. Декоди-

рование должно требовать небольших затрат оперативной памяти и процессорного времени. При этом требования к алгоритму кодирования (сжатия) значительно менее жесткие.

Необходимо признать, что вопрос эффективности алгоритма с точки зрения используемого объема памяти (ОЗУ и/или ПЗУ) и скорости кодирования/декодирования нередко остается за рамками публикаций. Часто сравнение методов и алгоритмов производится только по коэффициенту (степени) сжатия К.

Проблема экономного декодирования кодов Хаффмана освещена в литературе сравнительно подробно. Среди разработанных алгоритмов наиболее эффективным по критериям размера используемой при декодировании памяти V и скорости декодирования является, по-видимому, способ декодирования канонического кода Хаффмана. Различные модификации этого алгоритма рассматриваются, например, в работах [4, 5].

В работах [6, 7] описываются варианты алгоритмов с РРМ-моделированием низких порядков (порядок О < 3), но не показана зависимость достигаемого значения К от V. Также практически отсутствует

сравнение по скорости кодирования/декодирования. Простые экономные схемы контекстного моделирования описаны в работах [8, 9], но при этом, опять же, не дается развернутого сравнения по значениям скорости V и К. В работе [10] рассматриваются способы ускорения РРМ-сжатия за счет увеличения К. Предложено кодировать не символ, а его позицию в ранжированном списке символов, встреченных в контексте, а также использовать более быстрые, чем арифметическое сжатие, но менее эффективные по критерию К способы кодирования. Вопросу зависимости К {V) особого внимания не уделяется.

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

Сравниваемые методы сжатия данных

При сравнении использовались методы сжатия на основе предсказания по частичному совпадению (РРМ), на основе преобразования Барроуза—Уилера (В\А/Т), словарные методы семейств 1_ 7П1 и 1_ г78. При этом для статистического кодирования применялось арифметическое сжатие данных методов, интересующийся читатель может обратиться к работе [1].

Пусть кодируется последовательность Б = {б/}141 длины А/, составленная из символов конечного алфавита Л, 5/6 А - (а-1, Э2.з^А). Мощность/4 будет

обозначаться какА/д, А/^=| А|. Конечная последовательность И/д = .. 5|, Б/ е А, называется словом в

алфавите Л (/ — длина слова). Процесс кодирования заключается в отображении отдельных слов \Л/д, составляющих 5, на множество слов \Л/В в кодовом алфавите В, или кодовых слов. Совокупность всех кодовых слов {И/е} образует код. Если для всех \Л/В длина / одинакова, то код называется равномерным, а / определяет длину кода. Иначе под длиной кода понимается средняя длина кодовых слов на основании вероятности их использования. При посимвольном кодировании все \Л/А имеют / = 1; соответствующий код {И/е} часто называют неблочным.

Если исходные данные Б могут быть однозначно восстановлены по массиву соответствующих \Л/В, то отображение \А/д И/е не приводит к потере информации, т. е. является безущербным, без потерь.

Эффективность сжатия как характеристика сокращения размера представления информации относительно исходного будет определяться коэффициентом сжатия К. С учетом сложившейся традиции К будет измеряться в «битах на байт« (бит/ байт). В этом случае показывается, с помощью ка-

кого количества битов в среднем представляется

1 байт исходных (несжатых) данных. Например, К = 4 бит/байт соответствует сжатию в 2 раза. Чем значение К меньше, тем сжатие сильнее, «лучше».

Пусть осуществляется посимвольное кодирование Э/е А = (а-1, Э2, з^А), и 5/представляются с

помощью равномерного кода. Тогда длина такого кода / = Под2 А/Л"1 битов.

В табл. 1 представлены оценки затрат памяти

V при декодировании для различных методов. При расчете значений в байтах принималось, что исходные в/ представляются 1 байтом, т. е. / = 8 битов, и ссылка на ячейку памяти (массива) занимает

2 байта. Это, в частности, предполагает, что ссылка на отдельный 5,- занимает 2 байта. Ограничение размера различаемого фрагмента в до 216 элементов представляется разумным для интересующей задачи.

Приведем некоторые пояснения к табл. 1:

1. Оценка не включает расходы по хранению декодированной Б. При необходимости такого учета следует добавить N  I во всех случаях, исключая [_г77.

2. Для \-ZVJ выражение Л/ (Под2 /V] + /) соответствует варианту хранения N фраз. Можно дать верхнюю оценку размера словаря как (А/ - 1 + Л/Л) х х (Г 1од2 (/V - 1 + Л/д)1 + /), поскольку в наихудшем случае к имеющимся по определению в словаре Д/д фразам при обработке 5 длиной N может добавиться N - 1 фраз.

3. Каноническое кодирование по Хаффману отличается тем, что, во-первых, кодовые слова \А/В меньшей ДЛИНЫ численно меньше И/е большей длины, и, во-вторых, И/е равной длины численно возрастают в алфавитном порядке соответствующих им символов алфавита ау- е А [4].

4. Выбор разрядности счетчика частот при арифметическом сжатии зависит от Л/д и предполагаемой функции распределения частотауе А. Чем меньше разрядность, тем, в общем случае, грубее оценка и соответственно хуже сжатие. Как правило, при побайтовой обработке используются 16-раз-рядные счетчики или, реже, 8-разрядные.

Описание программных реализаций сравниваемых методов

Сравнение эффективности разных методов производилось в двух режимах — адаптивном и статическом. В первом случае обработка адаптивна, и соответствующие структуры данных должны находиться в ОЗУ. Во втором случае модель (словарь) фиксирована и заранее задана, поэтому структуры данных могут размещаться в ПЗУ. Задача оптимизации алгоритмов и реализаций по скорости явным образом не ставилась и не решалась.

РРМ. Использовалась авторская реализация РРМ. Во всех случаях применялся априорный способ оценки вероятности ухода по методу О [1]. Применялись различные РРМ-модели. Пусть СМ1- — контекстная модель порядка/. < О, соответствующая некоторому контексту С1- длины /.. Пара-

Таблица 1. Оценки затрат памяти V при декодировании для различных методов

Структура данных V, бит Наиболее вероятное значение V, байт

Сжатие при использовании В\Л/Т

1. Блок, полученный при преобразовании N • / N

2. Массив для определения первого столбца отсортированной матрицы мА  1 "а

3. Вектор обратного преобразования N • Г1од2 /VI 2 N

4. Массив для декодирования «стопки книг». Структуру можно совместить с (2) Nа • 1 -

Итого ЗЛУ + л/л

12.77-код

1. Собственно декодированный фрагмент N • / N

Итого N

ІІУ\І-код

1. Словарь. Структура словаря: ссылка на родительскую фразу; последний символ фразы = N • (Г1од2 ЛЛ+ /) зл/

2. Стек для формирования слова (слово формируется справа налево,т. е. последний определяется в первую очередь), ^-тах — максимальная длина фразы ^тах 1 ^тах

Итого ¿тах

Кодирование по Хаффману

1. Ьаэе[/] — число нелистовых элементов на уровне /; /_тах — максимальная длина кодового слова в битах ¡^092^]-¿-тах ^тах

2. а/р/7[/] — алфавит, упорядоченный по длине кодового слова и его числовому значению мА • / "а

3. оЩ/] — индекс массива а/р/?[1] такой, что а/р/7[о/Уз[/]] — первый листовой узел (символ) на уровне / ^тах ^ ^тах

Итого МА+ 21тах

Арифметическое сжатие

Набор счетчиков частот для каждого в,- Л/л • Г1од2 Л/1 2МЛ

Итого 2Ма

метр О — максимальный порядок контекстных моделей, определяющий порядок РРМ-модели источника данных. РРМ 2-0 обозначена модель, состоящая только из набора СМ2 и одной СМ°. Аналогично РРМ 3-0 включает совокупность СМ3 и одну СМ°. Обозначения РРМ 2-1-0 и РРМ 3-1-0 расшифровываются сходным образом.

Были рассмотрены два варианта организации структур данных для РРМ, именуемые далее как (А), (В). Для обоих вариантов поиск контекстной модели для Б/ выполнялся с использованием хеширования. В случае (А) контекстная модель СМ1- всегда соответствует ровно одному контексту С1-, в случае (В) — набору похожих С1, где «похожесть» задается хеш-функцией. Для (А) значению хеш-функции может соответствовать хеш-цепочка контекстных моделей СМ1-, для (В) хеш-цепочка вырождается в одну контекстную модель.

Для варианта (А) использовались структуры:

1) «контекст» (экземпляр создается для встреченного контекста СМ1-), имеет поля:

— эпигп — число различных символов, встреченных в контексте, 1 байт;

— вр^ — указатель на массив описаний символов, встреченных в контексте, 2 байт;

— cnext — указатель на следующий «контекст» в хеш-цепочке, 2 байт;

— сп1:[] — собственно контекст как массив символов, байт;

2) описание символа (экземпляр создается для символа, встреченного в контексте С^):

— эут — собственно символ б,-, 1 байт;

— 1гед — число появлений б,- в соответствующем контексте С1, 1 байт.

В целях экономии памяти использовались 8-битовые счетчики. Если СМ^ содержала 1 символ, то он описывался непосредственно в поле 5р1т структуры «контекст».

Для варианта (В) нет необходимости в полях cnext и сп1:[] структуры «контекст». Поэтому количество памяти, доступной для хранения описаний контекстов и описаний символов, больше. Это мо-

жет компенсировать возможное снижение точности оценки, обусловленное использованием одной CML для более чем одного контекста.

Во всех случаях требуется хеш-таблица, в ячейках которой записываются ссылки на хеш-цепочки контекстных моделей, имеющих одинаковое хеш-значение контекста. Для адаптивного режима требуются также структуры менеджеров контекстов и символов. Они должны обеспечивать выделение памяти при создании новых контекстных моделей (описаний символов) и сборку «мусора» при удалении. Структура менеджера должна включать, по крайней мере, массив (цепочку) указателей на свободные блоки памяти с указанием их размера. Поэтому каждый элемент структуры данных менеджера имел поля:

— ptr — ссылка на свободный блок памяти, 2 байт;

— size — размер свободного блока памяти, 2 байт.

Для обеспечения сборки мусора неиспользуемые элементы «контекст« помечались нулевым значением snum и sptr. Неиспользуемые описания символа — нулевым значением freq. При исчерпании памяти устранялись редко используемые CML и описания символов. При этом в качестве счетчика частоты употребления CML применялись старшие биты поля cnext.

Для статического режима менеджеры не нужны. Не требуется и поле sptr, поскольку число встреченных в контексте символов известно и их описание может быть присоединено непосредственно к экземпляру структуры «контекст».

Собственно кодирование выполнялось с помощью интервального кодера (разновидности арифметического кодера) [1]. Для предотвращения переполнения разрядной сетки все счетчики CML делились на два при достижении максимально допустимой суммы значений всех счетчиков и при достижении счетчика некоторого символа значения 28.

LZW. Использовалась авторская реализация LZW. Фразы кодировались равномерно, длина кода определялась текущим размером словаря. При достижении заданного максимального размера словарь очищался. Для декодирования использовался массив элементов с полями:

— parent — ссылка на родительскую фразу (родительский элемент), 2 байт;

— sym — последний символ фразы, 1 байт.

Максимальная длина фразы ¿.тах = 128, что

определило размер стека для декодирования. Поэтому для декодирования требовалось примерно ЗА/ + 128 байт, где N — размер словаря во фразах.

LZ77. Применялась авторская реализация так называемого метода LZari, при котором кодовые слова LZ экономно представляются с помощью арифметического сжатия. Использовалась типовая схема, при которой длины совпадения len и литералы Sj кодировались адаптивно в одном алфавите. Старшие биты pos кодировались адаптивно, младшие — статически, равномерным кодом. Максимальная len = 256.

В статическом режиме использовались заранее построенные таблицы частот для старших битов pos и для алфавита len и s,-.

Сжатие с использованием BWT. Применялась авторская модификация программы bzip2, позволившая гибко задавать размер блока для преобразования. В bzi р2 для экономного представления результата преобразования используется кодирование «стопка книг« и кодирование по Хаффману. Следует заметить, что реализация кода Хаффмана в bzi р2 не рассчитана на блок малой длины, что должно было систематически исказить оценки К.

Возможна такая модификация bzi р2, что для декодирования будет требоваться примерно ЗА/ + + 2Na байт. Приведенные ниже экспериментальные результаты основываются на этом. Соответствующая программа помечена как bzi р2*.

Словарное сжатие Diet. Для статического сжатия текстов был разработан словарный алгоритм, именуемый ниже Diet. Фиксированный словарь Diet состоит из упорядоченных по частоте употребления слов, выделенных из опорного текста. При ограничениях на V в словарь вносятся такие слова, использование которых в качестве фраз, как ожидается, даст наименьший L • WA, не найденные в словаре, кодируются посимвольно с помощью арифметического кодера. Найденные WA арифметически кодируются через номер в словаре, при этом старшие биты номера кодируются исходя из их частоты появления. Младшие биты номера кодируются как равновероятные. Предварительно выполняется обратимое устранение заглавных букв (см. ниже). Самые частые символы-разделители — пробелы — кодируются только при необходимости. По умолчанию считается, что перед словом стоит пробел.

Обратимые преобразования текстовых данных. Известно несколько обратимых преобразований (способов препроцессинга), позволяющих существенно улучшить сжатие текстовых данных.

1. Замена по фиксированному словарю часто встречающихся последовательностей символов. Если некоторый фрагмент последовательности S совпадает с фразой словаря, то он заменяется кодовым словом фразы. Для английского языка использовался словарь, предложенный в работе [1]. Он содержит 45 двухбуквенных фраз, 25 трехбуквенных и 16 четырехбуквенных. Для хранения такого словаря и собственно декодирования требуется примерно 300 байт. В качестве кодовых слов применялись незадействованные в ASCII байтовые значения.

2. Устранение заглавных букв. Если слово WA, рассматриваемое как последовательностьS/, ограниченная некоторыми символами-разделителями (пробел, знаки препинания и т. п.), начинается с заглавной буквы ау, то

WA -» <флаг><строчная ау><остаток WA>.

3. Модификация символов-разделителей. Перед символом-разделителем добавляется пробел, что позволяет улучшить сжатие при использовании РРМ и, иногда, BWT.

Результаты исследований

при использовании адаптивного подхода

Отметим, что, безусловно, все приводимые сравнительные результаты целесообразно рассматривать как довольно грубую оценку: во-первых, характеристики существенно зависят от типа обрабатываемых данных; во-вторых, возможна модификация каждого алгоритма и реализации, позволяющая достичь лучших характеристик, и нет оснований считать, что в рамках проведенных экспериментов все методы «были в равных условиях»; в-третьих, равенство по использованию V было приблизительным.

Сравнение проводилось на наборе файлов, традиционно используемых для сравнения программ сжатия данных без потерь. Тест был сформирован из файлов классического тестового набора Calgary Compression Corpus1 и альтернативного набора VYTEST2. Описания файлов приведены в табл. 2.

При проведении экспериментов не учитывались затраты на хранение декодированной S. При необходимости этого надо учесть соответствующую поправку для всех реализаций, исключая LZari. Интегральный коэффициент сжатия К в зависимости от объема V ОЗУ, доступного при декодировании, приведен для всего теста в табл. 3. К рассчитывался как обычное среднее значение коэффициентов К для отдельных файлов. К не указан для тестов, не проводившихся в силу их очевидной избыточности. Для сравнения приведены результаты для ар-

1 http://links.uwaterloo.ca/calgary.corpus.html

2 http://www.compression.ru/ybs/

хиватора РК71Р версии 2.04д, запускавшегося в режиме максимального сжатия (опция «-ех»), В Р№\Р реализован метод 12.И с блочной адаптацией кода Хаффмана, что обеспечивает высокую скорость декодирования. Возможна модификация декодера РКг1Р, требующая немногим более 32 кбайт ОЗУ.

Из табл. 3 видно, что при V> 16 кбайт преимущество по критерию К имеют реализации РРМ. Максимум достигается для РРМ 3-1-0 (А). Следует отметить, что вариант реализации (А) стабильно обеспечивает лучшее сжатие, чем вариант (В). При V~ 8 кбайт и, очевидно, менее доминирует \JZan, что можно было предположить заранее. В табл. 4 приведено сравнительное время декодирования Гдек всего набора, при этом время декодирования для РКиыг1Р (декодер для РК71Р) принято за 1. Как следовало ожидать, декодирование для РРМ в разы медленнее, чем для словарных методов.

В табл. 5 приведена детальная статистика для

V = 64 кбайт. 1Лап имеет преимущество над РРМ только на высокоизбыточных файлах. С увеличением V отставание может быть устранено за счет использования РРМ-модели большего порядка О.

На рис. 1 показана зависимость К от объема обработанных данных для Ьоок1. При небольшом размере текста разница между К для Ьгф2*,РРМ 3-1-0 (А) и РРМ 2-1-0 (А) несущественная и составляет менее 10 %.

На примере Ьоок1 были рассмотрены варианты схем сжатия с использованием обратимых преобразований текстовых данных. В табл. 6 приведены значения К для вариантов без препроцессинга (далее «БП»). Значения К , полученные при устранении заглавных букв и словарной замене (пре-

Таблица 2. Описание тестового набора

Название Размер, байт Описание

bib 111261 Библиографический список в формате UNIX «refer», ASCII.

bookl 768771 Художественная книга на английском языке: Т. Hardy «Far from the madding crowd», неформатированный текст ASCII.

b00k2 610856 Техническая книга на английском языке: I. Witten «Principles of computer speech», формат UNIX «troff», ASCII.

fileware 427520 Руководство пользователя на английском языке к набору утилит Fileware версии 3.0, формат Microsoft Word; содержит разнородные данные.

os2 594821 конфигурационный файл для операционной системы OS/2,содержит разнородные данные.

paper2 82199 Техническая статья на английском языке: I. Witten «Computer (in)security», формат UNIX «troff», ASCII.

paper4 13286 Техническая статья на английском языке: John G. Cleary «Programming byexample revisited», формат UNIX «troff», ASCII.

progc 39611 Программа на языке С, ASCII.

progp 49379 Программа на языке Паскаль, ASCII.

stand 1639139 Художественная книга на русском языке: С. кинг «Армагеддон», форматированный текст ASCII.

trans 93695 Расшифровка терминальной сессии, формат редактора «EMACS», ASCII.

wcc386 536624 Исполнимый файл Watcom версии 10.0 (компилятор с языка С).

Таблица 3. Зависимость К(V) для тестового набора

V, кбайт РРМ 3-0

8 3,29 3,40 3,55 3,20 3,89 4,28 3,13

16 3,29 3,38 2,91 3,13 3,19 3,03 3,46 4,05 3,01

32 3,05 3,20 2,75 3,00 3,14 2,94 3,11 3,90 2,93 2,74

64 2,84 3,08 2,61 2,98 3,10 2,93 2,87 3,77 2,89

128 2,55 2,93 2,68 2,87

Таблица 4. Зависимость Тдек(V) для тестового набора

1/, кбайт РРМ 3-0

8 26,3 16,5 16,0 14,8 3,89 3,0 2,6

16 16,3 14,0 11,5 11,3 9,0 10,0 3,46 2,7 1,7

32 13,8 11,0 9,8 8,5 8,5 7,5 3,11 2,5 1,6 1,00

64 12,0 10,3 8,3 8,5 9,0 6,8 2,87 2,2 1,5

128 8,0 6,8 2,68 1,5

ш Таблица 5. Значения К для отдельных файлов при V = 64 кбайт

Файл PPM 3-0

bib 2,47 2,66 2,17 2,70 2,76 2,63 2,65 3,47 2,53 2,53

bookl 2,75 2,86 2,61 2,95 2,96 2,93 3,24 3,68 3,17 3,25

book2 2,50 2,77 2,37 2,88 2,94 2,87 2,86 3,56 2,69 2,70

fileware 2,87 3,58 2,65 2,97 3,44 2,91 2,69 4,16 2,67 2,36

os2 2,49 2,81 2,35 2,61 2,75 2,57 1,92 2,91 1,83 1,60

paper2 2,64 2,79 2,47 2,88 2,89 2,85 2,87 3,45 2,94 2,88

paper4 3,17 3,29 2,93 3,27 3,29 3,19 3,12 4,06 3,59 3,31

progc 2,82 3,00 2,55 2,93 3,01 2,85 2,72 3,78 3,00 2,69

progp 2,08 2,32 1,87 2,33 2,38 2,26 2,03 3,05 2,08 1,81

stand 3,09 3,20 2,86 3,13 3,17 3,12 3,41 3,90 3,26 3,36

tr-ens 2,04 2,32 1,83 2,37 2,49 2,32 2,12 3,23 1,76 1,66

wcc386 5,12 5,36 4,70 4,77 5,08 4,61 4,79 5,94 5,19 4,67

К 2,84 3,08 2,61 2,98 3,10 2,93 2,87 3,77 2,89 2,74

^дек 13,8 7,0 9,5 5,8 5,5 5,5 4,9 3,8 2,9 1,0

Объем обработанных данных, кбайт

Рис. 1. Изменение К по мере обработки bookl при V - 64 кбайт:

-С----РРМ 3-1-0(А); -о-------РРМ 2-1 -0(A); -т--------bziр2; -о-

LZari; ------LZW

процессинг 1, далее «П1»), представлены в табл. 7, полученные при устранении заглавных букв, словарной замене и модификации символов-разделителей (препроцессинг 2, далее «П2») — в табл. 8.

В табл. 9 показана зависимость Тдек[V) для Ьоок1 без препроцессинга. Табл. 10 иллюстрирует изменение 7дек {V) при использовании препроцессинга.

Использование препроцессинга в среднем существенно улучшает сжатие для всех алгоритмов. Наибольший эффект достигается для РРМ 2 10 — в ряде случаев отмечено уменьшение значения К на 25 %. Но в рамках рассмотренных алгоритмов РРМ и диапазона изменения V применение препроцессинга, как правило, замедляет декодирование в 1,1-1,9 раза.

Таблица 6. Значения К (V) для bookl без препроцессинга

V, кбайт РРМ 3-0

8 3,46 3,41 3,28 4,20 4,34 3,62

16 3,50 3,13 3,07 3,04 3,81 4,09 3,44

32 3,11 2,85 2,95 2,94 3,49 3,88 3,29 3,25

64 2,75 2,61 2,95 2,93 3,24 3,68 3,17

128 2,49 2,93 3,02 3,08

я Таблица 7. Значения К (V) для bookl при препроцессинге 1

V, кбайт РРМ 3-0

8 3,34 3,47 3,27 4,14 4,18 3,59

16 3,65 3,24 3,17 3,01 3,73 3,93 3,45

32 3,42 3,06 2,80 2,68 3,38 3,71 3,29 3,04

64 3,11 2,77 2,55 2,51 3,10 3,50 3,14

128 2,52 2,38 2,89 3,02

Таблица 8. Значения К (V) для bookl при препроцессинге 2

V, кбайт РРМ 3-0

8 3,29 3,43 3,19 4,25 4,28 3,59

16 3,56 3,11 3,03 2,92 3,79 4,01 3,43

32 3,29 2,92 2,71 2,65 3,41 3,77 3,27 3,12

64 2,92 2,64 2,49 2,48 3,13 3,57 3,13

128 2,41 2,43 2,91 3,02

я Таблица 9. Значения Тдек (V) для bookl без препроцессинга

V, кбайт РРМ 3-0

8 41,0 23,8 30,0 5,2 4,8 3,8

16 31,3 21,0 11,0 12,5 5,5 4,7 3,3

32 21,0 12,0 6,3 6,8 5,7 4,2 3,1 1,0

64 13,8 9,5 5,8 6,3 5,8 3,8 2,9

128 9,0 6,0 6,0 2,4

Таблица 10. Значения Тдек (V) для bookl при препроцессинге

V, кбайт РРМ 3-1 -0

БП П1 П2 БП П1 П2

8 41,0 37,3 39,0 30,0 33,3 32,8

16 21,0 20,8 21,8 12,5 20,0 18,3

32 12,0 14,8 14,8 6,8 13,0 11,0 1,0

64 9,5 11,5 11,5 6,3 9,5 7,8

128 9,0 11,3 11,3 6,0 7,5 6,8

Результаты исследований при использовании статического подхода

Статический режим предполагает хранение и использование фиксированной модели (словаря). Это специфическая задача, которая, по-видимому, должна решаться с максимальным учетом специфики данных, имеющихся ресурсов, особенностей аппаратного и, возможно, программного обеспечения. Поэтому здесь приводятся результаты, полученные на примере сжатия только текстового файла bookl. Сжатие на основе обычного BWT в статическом режиме невозможно, метод LZW не рассматривался в силу сравнительно плохих характеристик. Во всех случаях первые 512 кбайт исходного файла использовались для создания и настройки модели (словаря), которая затем применялась без адаптации при сжатии оставшейся части файла размером 751 - 512 = 239 кбайт. Результаты исследований для вариантов без препроцессинга приведены в табл. 11, с препроцессингом — в табл. 12 (для Diet препроцессинг не имеет смысла, поэтому вариант не рассматривался).

Алгоритмы РРМ 2-1 -0 и РРМ 3-1-0 обеспечивают лучшее сжатие. При использовании препроцессин-

га любого типа сжатие, как правило, улучшается (соответствует уменьшению значения К). В табл. 13 показано, как при этом изменяется значение Гдек (V). 1 принято Гдек при использовании

PKUNZIP. Видно, что, как и при адаптивном подходе, значение 7"дек при использовании препроцессинга может увеличиваться на десятки процентов.

Следует отметить, что в реализации Diet словарь представлялся в исходном виде, без сжатия. За счет компактного представления словаря возможно уменьшение значения К для Diet при V = = const. Скорость при этом, вероятнее всего, уменьшится, так как потребуется декодировать фразы словаря при каждой словарной подстановке.

Выводы

При адаптивном сжатии в случае наличия до 16 кбайт ОЗУ в общем случае целесообразно применять алгоритм типа 1_277. При большем значении V возможны варианты, и выбор зависит от типа данных и требований к 7дек. Если нет очень жестких ограничений по 7"дек и обрабатываются текстовые данные, целесообразно использовать алгоритм

Таблица 11. Значения К (V) в статическом режиме без препроцессинга

V, кбайт РРМ З-О(А) РРМ 3-1 -0(A) РРМ 2-0(А) РРМ 2-1-0(A) LZari Diet

8 3,44 3,46 3,34 3,59 3,39

16 3,47 3,17 3,03 2,99 3,40 3,17

32 3,04 2,98 2,92 2,91 3,24 3,00

64 2,65 2,61 2,91 2,90 3,10 2,85

128 2,41 2,90 2,99 2,73

я Таблица 12. Значения К (V) в статическом режиме с препроцессингом

V, кбайт РРМ З-О(А) РРМ 3 1 -0(A) РРМ 2-0(А) РРМ 2-1-0(A) LZari

П1 П2 П1 (12 П1 П2 П1 П2 П1 П2

8 3,61 3,33 3,47 3,43 3,25 3,19 3,58 3,58

16 3,66 3,59 3,14 2,97 3,10 3,00 2,94 2,88 3,42 3,40

32 3,38 3,24 2,92 2,78 2,88 2,77 2,67 2,64 3,25 3,23

64 2,97 2,80 2,62 2,53 2,53 2,44 2,51 2,44 3,08 3,07

128 2,35 2,27 2,31 2,38 2,93 2,93

я Таблица 13. Значения Тдек (V) в статическом режиме

V, кбайт РРМ 3-1 -0(A) РРМ 2-1-0(A) LZari Diet

БП П1 П2 БП П1 П2 БП П1 П2 БП

8 8,5 7,7 8,1 6,2 6,9 6,8 3,5 3,7 3,7 3,9

16 9,1 9,0 9,4 5,4 8,6 7,9 2,9 3,2 3,2 3,1

32 7,5 9,2 9,2 4,2 7,8 6,8 2,7 2,9 2,9 2,8

64 5,9 7,2 7,2 3,9 5,9 5,3 2,4 2,6 2,7 2,5

128 5,5 7,0 7,0 4,4 5,5 5,1 2,0 2,2 2,3 2,1

сжатия на основе контекстного моделирования типа РРМ. При объеме V< 64 кбайт разумно применять модель с длинами контекстов 2, 1, О (РРМ 2-1-0), при I/ > 64 имеет смысл рассмотреть РРМ 3-1-0 или даже более сложные схемы. Разница в значениях коэффициента сжатия К для алгоритмов типа \JZ77 и РРМ может составлять при этом 25 % и более.

При статическом подходе, предполагающем хранение модели источника данных (словаря) в ПЗУ и минимальное использование ОЗУ, наблюдается в целом сходная картина в случае сжатия текстовых данных. В случае жестких ограничений на Гдек и доступный объем ПЗУ V следует применять словарные алгоритмы. В противном случае целесообразно про-

Литература

1. Ватолин Д., Ратушняк А., Смирнов М., Юкин В.

Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. — М.: ДИАЛОГ-МИФИ, 2002. — 384 с.

2. Gallager R. G. Variations on a theme by Huffman // IEEE Transactions on Information Theory. — 24(6): 668-674. — Nov. 1978.

3. Burrows М., Wheeler D. J. A Block-sorting Lossless Data Compression Algorithm // SRC Research Report 124, Digital Systems Research Center, Palo Alto. — May 1994.

4. Moffat A., Turpin A. On the Implementation of Minimum Redundancy Prefix Codes // IEEE Trans-actions on Communications. — 45(10): 1200-1207. — Oct. 1997.

5. Hirschberg D., Lelewer D. Efficient decoding of prefix codes // Communications of the ACM. — 33(4):449-459. — 1990.

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

Как при адаптивном, так и при статическом подходе использование специальных обратимых преобразований совместно с основным алгоритмом сжатия может существенно улучшить сжатие текстовых данных — отмечается уменьшение значения К на 5-25 %. Но, как правило, это замедляет декодирование в 1,1-1,9 раза.

6. Lelewer D. A., Hirschberg D. S. Streamlining Context Models for Data Compression // Proceedings of IEEE Data Compression Conference, Snowbird, Utah. — Apr. 1991. — P. 313-322.

7. Lelewer D. A., Hirschberg D. S. An Order-2 Context Model for Data Compression With Reduced Time and Space Requirements // Technical Report N 90-33, Department of Information and Computer Science.— University of California, Irvine, 1990.

8. Langdon G., Rissanen J. A Double-Adaptive File Compression Algorithm. IEEE Transactions on Communications. — 31(11 ):1253-1255. — Nov. 1983.

9. Bell T., Witten I., Cleary J. Modeling for Text Compression // ACM Computing Surveys. — 21(4):557-591. — Dec. 1989.

10. Howard P. G. The design and analysis of efficient lossless data compression systems // PhD thesis.— Brown University, Providence, Rhode Island, 1993.

Н. Н. Красильников, О. И. Красильникова

Мультимедиатехнологии в информационных системах. Методы сжатия и форматы записи графической информации: Учеб. пособие / СПб.: СПбГУАП, 2004. - 68 с.: ил. 1БВМ 5-8088-00104-4

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

Учебное пособие предназначено для студентов старших курсов, изучающих мультимедиатехнологии в рамках технических специальностей.

I МУЛЬТИМЕДИАТЕХНОЛОГИИ

j; в информационных

i СИСТЕМАХ

МЕТОДЫ СЖАТИЯ И ФОРМАТЫ ЗАПИСИ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ