УДК 621.391
Р. Н. БОГАТОВ
Омский государственный технический у шверситет
ИСПОЛЬЗОВАНИЕ ФИКСИРОВАННО УДАЛЁННЫХ КОНТЕКСТОВ ДЛЯ ПОВЫШЕНИЯ СТЕПЕНИ СЖАТИЯ ДАННЫХ
В статье рассматриваются основные тенденции современных технологий неиска-жающего сжатия данных. Аргументируется, что наилучшие результаты достигаются с помощью мультимодельных методов стохастически о контекстного моделирования. Предлагается новый метод хранения и использования статистики по частному виду разреженных контекстов — фиксированно удалённым контекстам, который позволяет существенно повысить степень сжатия методов контекстного моделирования.
Степень сжатия данных (отношение объёма исходных данных к объёму их сжатого представления) является одной из ключевых характеристик методов неискажающего сжатия данных. Возможность достижения высокой степени сжатия определяется адекватностью используемой модели источника данных. Существенным также является наличие достаточных ресурсов памяти и времени. Тем не менее выбор модели является определяющим. Более подходящая модель обеспечивает более высокую степень сжатия, используя то же или меньшее количество ресурсов.
Рассмотрим результаты сжатия самого большого тестового файла из набора В. Бергманса — fp.log (протокола посещаемости сайта объёмом 20 Мб). На рис. 1 представлена диаграмма степени сжатия этого файла при помощи 142 известных компрессоров и архиваторов, доступных на 26 ноября 2005 г. [ 1 ].
Узор столбца диаграммы указывает, к какому из четырёх семейств относится использованный метод сжатия: словарным методам (LZ), методам на основе преобразования Барроуза-Уиллора (BWT), методам контекстного моделирования с неявным взвешиванием на основе РРМ или контекстного моделирования с явным взвешиванием (СМ). Однотонная серая окраска столбца диаграммы означает, что метод сжатия неизвестен. Выносками отмечены четыре наилучших степени сжатия, достигнутые представителями каждого из семейств.
Распределение результатов по семействам позволяет сделать следующие наблюдения:
- распределение результатов внутри каждого из семейств находится в сильной зависимост и от даты реализации: более новые реализации методов одного семейства находятся правее более старых, т.е. обеспечивают более высокую степень сжатия;
Рис. 1. Диаграмма степени сжатия файла fp.log
— большинство LZ-методов сгруппированы н левой части диаграммы (в области меньших степеней сжатия); наилучший результат LZ-семейства уступает большинству представителей других трёх семейств;
— BWT-методы обеспечивают степень сжатия в среднем более высокую, чем у LZ-методов, но существенно уступают методам контекстного моделирования;
— методы контекстного моделирования (РММ, СМ) позволяют достичь наибольшей известной степени сжатия; при этом распределение этих результатов в отличие от прочих позволяет предполагать возможность достижения большей степени сжатия с помощью методов контекстного моделирования;
— среди методов контекстного моделирования в среднем более эффективными являются методы явного смешивания (т.е. не использующие PPM), а наилучшие результаты среди РРМ-методов достигаются при помощи PPMII, частично использующего явное смешивание.
Указанные свойства результирующей диаграммы степеней сжатия верны также и для других тестовых файлов [1], и тем более выражены, чем большая достигается степень сжатия. Это объясняется тем, что все перечисленные семейства методов в своей основе предполагают у источника данных наличие марковских свойств.
Неспособность LZ и BWT-методов к существенному повышению степени сжатия по сравнению с методами контекстного моделирования объясняется тем, что архитектура методов контекстного моделирования оперирует с вероятностями и позволяет использовать несколько моделей источника одновременно с адаптивным смешиванием прогнозов по каждой модели. В данном случае, например, при сжатии файла fp.log существенный вклад вносит различная статистика по разреженным контекстам (см. далее), которая не учитывается в LZ и BWT-методах. Первые два десятка лучших результатов на fp.log достигнуты с помощью стохастических м ультимо дельных методов сжатия.
Эти и другие практические результаты позволяют заключить, что на сегодняшний день наибольшая степень универсального неискажающего сжатия типичных данных достигается с помощью:
— методов стохастического контекстного моделирования;
— мультимодельного подхода с адаптивным смешиванием прогнозов;
— использования методов вторичной оценки вероятностей (англ. second symbol estimation, SSE) [2-3].
Одной из эффективных контекстных моделей является модель разреженных контекстов (англ. sparse contexts). Разреженный контекст представляет собой некоторый шаблон, содержащий опорные символы и пустоты, место которых могут занимать любые символы. Например, после обработки строки кок_колол_колокол текущими разреженными
контекстами будут являться о", ко", к", к'л, о'", ик", i/o", о".\, о'ол и другие более длинные шаблоны, которые встречались ранее с различными символами вместо Классические (неразреженные) контексты для удобства будем называть сплошными. Поскольку экспоненциальный характер роста объёмов статистики не позволяет учитывать все встречающиеся комбинации разреженных контекстов, современные архиваторы используют
только определённые, экспериментально подобранные шаблоны разреженных контекстов и другие упрощения.
В настоящей работе для повышения степени сжатия данных предлагается использовать разреженные контексты определённого вида — фиксировано удалённые контексты (далее — fd-контекс-ты, от англ. fixed distance contexts), Это такие разреженные контексты, у которых все опорные символы сгруппированы слева, а фиксированное количество пустот — справа. Например, текущими fd-контекстами после обработки строки кок_колол_ко-локол будут являться о', ко*, к", о*", ок" и более длинные — всего 26 текущих fd-контекстов, самый длинный из которых — к...............
Для хранения полной статистики по разреженным контекстам (fd-контекстам, в частности) предлагается использовать модифицированное суффиксное дерево. Под полной статистикой по контексту понимается информация (счётчики и другие параметры) обо всех символах, встречаемых в этом контексте. Добавим в структуру узла дополнительную ветвь перехода, соответствующую пустой позиции ', входящей в состав разреженного контекста. Тем самым объединяем дерево разреженных контекстов с деревом сплошных контекстов в совпадающих частях начальных опорных символов. Базовый алгоритм Е. Юкконена [4| для построения суффиксного дерева при этом изменяется следующим образом. При обработке одного активного узла, вне зависимости от наличествующих в нём ветвей перехода и значения текущего символа, дополнительно выполняются следующие действия:
— если позволяет ограничивающее условие, то регистрируется новый активный узел для следующей итерации, находящийся по ветви перехода, соответствующей пустой позиции ' разреженного контекста;
— при преобразовании листа во внутренний узел, если позволяет ограничивающее условие, дополнительно создаётся новый узел, связанный с текущим родительским активным узлом ветвью перехода, соответствующей пустой позиции ' разреженного контекста.
В результате последнего действия каждый внутренний узел суффиксного дерева, представляющий контекст любого вида длины строго меньшей, чем максимальная глубина разреженных контекстов, будет иметь непустую ветвь перехода, соответствующую пустой позиции ' разреженного контекста. Ограничивающим условием может являться ограничение длины разреженного контекста, ограничение на определённые виды шаблонов (например, fd-контексты) и др. Нетрудно доказать, что в случае ограничения максимальной длины fd-контекстов затраты времени и памяти на построение суффиксного дерева остаются линейными по отношению к объёму обработанных данных.
Что касается использования статистики по разреженным контекстам для повышения эффективности контекстного моделирования и прогнозирования, то никаких публикаций о подобных исследованиях не удаётся найти, а на практике реализуются самые упрощённые схемы. Как правило, статистика по разреженным контекстам хранится отдельно от суффиксного дерева, и запоминается только последний встретившийся в данном разреженном контексте символ без каких-либо счётчиков. Далее при вторичной оценке прогноза
Модель сплошных контекстов
Модель фиксированно удалённых I контекстов
дих. р, и др. параметры
I Вторичная оценка ! дих. вер-ти
1 я™- р',Л
I и др. параметры
Вторичная оценка коэфф. смеш.
Вторичная оценка дих. вер-ти
____I-
г
Р,
Смешивание прогнозов
X ■ р, + (1 - X.) ■ р,га
Поэтапно-дихотомическое | кодирование |
Рис. 2. Общая схема смешивания прогнозов моделей вН|рру0.5В19
основной модели в ББЕ-контексте используется двоичный флаг того, совпадает ли текущее оцениваемое значение символа с этим единственным прогнозом по разреженному контексту. Т.е. модель разреженных контекстов является вспомогательной и не стохастической. Далее, на примере Гс1-контекстов будет показано, как полная статистика но разреженным контекстам может быть использована для организации отдельной модели разреженных контекстов, обеспечивающей собственный стохастический прогноз.
Для эффективного использования прогнозов по М-контекстам требуются новые методы смешивания — как статистики по Гс1-контекстам между собой, так и полученного прогноза по Гё-контекстам с прогнозами других моделей. Для получения первичной смешанной оценки по Гс1-контекстам может быть использован метод полного смешивания Е.Д. Шелвина, реализованный в компрессоре РРМУ для смешивания статистики по сплошным контекстам [2, 5). Вторичная оценка полученного прогноза
должна использовать параметры, дифференцирующие "благоприятность" ситуации для прогнозирования моделью Гс1-контекстон. Таким же свойством должен обладать и метод смешивания прогноза по Гй-контекстам с прогнозами других моде ей.
Обобщённая схема предлагаемого метода смешивания представлена ла рис. 2 Используется поэтапно-дихотомическое кодирование, при котором каждое возможное значение кодируемого символа оцениваем.,! отдельно, после чего на каждом этапе кодеру, у а двоичный исход: найдено искомое значение и,.и пег |0] ■ Очерёдность перебора возможных значений (-.-.и. ранг символа) определяется модель!') сплошных коктекстов. Прогнозы модело:! сразу представлены в виде дихо томических вероятностей, которые проходят раздельные вторичные оценки. СЧема не отражает -юго факта, что на вход вторичных оценок поступают не одни и те же параметры моделей (что не позволяет объединить статис ■ ику по вторичным оценкам).
Благодаря отдельной вторичной оценке прогноза по [(^-контекстам появляется возможность использовать такой эффективный дифференцирующий параметр как шаблон Гс1-контекста (двоичную маску опорных символов и пустот). Дифференцирование статистики по шаблонам контекстов означает, что удачным прогнозам по контекстам определённого шаблона в будущем будет присваиваться больший вес. Это может быть реализовано, например, посредством включения в БЬЕ-контекст индекса шаблона того Гб-контекста, который внёс наибольший вклад в текущее значение дихотомической вероятности.
Смешивание двух полученных прогнозов, прошедших вторичную оценку, реализуется с помощью их линейной свёртки с весовыми коэффициентами X и (1 - X), где 0<Х<1. Параметр X, который назовём коэффициентом смешивания, может иметь смысл оценки вероя тности того, что прогноз но сплошным контекстам окажется более верным (т.е. будет больше прогноза по 1с1-контекстам для значения кодируемого символа и будет меньше прогноза по Гс1-коитекстам для других обрабатываемых значений). Подме-
Максимальная глубина Ш-контекстов
Рис. 3. Уменьшение размера архива за счёт использования га-контекстов (максимальная глубина сплошных контекстов равна 64)
шивание прогноза по fd-контексгам даже при постоянном значении X способно существенно повысить эффективность модели сплошных контекстов [7]. Для адаптивного смешивания прогнозов (с подстраивающимся X) предлагается использовать вторичную оценку коэффициента смешивания. Перерасчёт вторичной оценки производится апо-стериорно с учётом того, какой из прогнозов оказался точнее. В качестве начального значения к для любого SSE-контекста может быть взято 1/2, означающее равенство моделей.
Описанные методы хранения и использования статистики по fd-контекстам были реализованы автором в виде экспериментального компрессора Hipp vO.5819. На рис. 3 продемонстрирован эффект от использования fd-контекстов на примере сжатия тринадцати файлов различных типов из трёх наиболее известных тестовых наборов: Calgary Corpus, Canterbury Corpus и набора В. Бергманса [1].
На графике представлена разница между размерами архивов без использования и с использованием fd-контекстов в отношении к размеру исходного файла (например, файл део размером 102400 байт был сжат без использования fd-контекстов до 54909 байт; с использованием fd-кон-текстов глубиной до 4 символов — до 48594 байт; разница в размерах архивов по отношению к исходному размеру составила 6,2%). Показаны результаты при ограничении максимальной глубины fd-контекстов значениями {0,4,8, 12}; максимальная глубина сплошных контекстов постоянна (равна 64). Наибольший эффект от привлечения fd-контекстов наблюдается на нетекстовых файлах део, mso97.dll, obj2 и kennedy.xls, характеризующихся наличием табличных структур или исполняемого микропроцессорного кода. На текстовых файлах использование fd-контекстов в среднем несколько ухудшает степень сжатия (файлыbookl, paper2, progl, trans); не ухудшает только в тех случаях, когда текстовые данные содержат конструкции, удачно прогнозируемые fd-контекстами (файлы bib, news, world95.txt). Видимый эффект заметного увеличения степени сжатия на некоторых типах файлов при малых изменениях степени сжатия на других типах носит качественный характер (не является свойством только использованного тестового набора). Данное обстоятельство позволяет использовать предложенный метод сжатия с использованием fd-контекстов не только в основе специализированных методов сжатия определённых типов данных, но также как и универсальный метод сжатия.
Результаты двухфакторного эксперимента по сжатию файлов kennedy.xls, obj2 и pic представлены на рисунках 4-6 в виде интерполированных зависимостей степени сжатия (Ratio), времени (Time) и использованной памяти (Used memory) от максимальной глубины fd-контекстов (fd-MaxOrder) и глубины сплошных контекстов (MaxOrder).
На графиках степени сжатия файлов kennedy.xls и obj2 видно, что пользы от добавления даже неглубоких fd-контекстов больше, чем от произвольного увеличения глубины сплошных контексгов. Такая картина типична для тех типов файлов, для которых использование fd-контекстов увеличивает степень сжатия. Это объясняется также тем, что внутренняя структура этих файлов, хорошо предсказываемая на основе fd-контекстов, крайне плохо предсказывается на основе классических сплошных контекстов, из-за чего эффект от использования fd-контекстов становится наиболее заметен.
На однородных файлах с "благоприятной" для fd-контекстов структурой функция роста степени сжатия при увеличении максимальной глубины fd-контекстов неизбежно имеет экстремум, обусловленный, во-первых, использованием структур фиксированной длины (на переходах между которыми fd-контексты проявляют свою наибольшую ценность) и, во-вторых, грубой схемой смешивания, вносящей собственную избыточность при большом количестве смешиваемых прогнозов (что наблюдалось ещё на примере РРМ; см., например, [2]).
Компрессор Hipp v0.5819 также тестировался при сжатии больших объёмов производственных данных, а именно архивировании закрытой бухгалтерской базы данных с исходными документами ЗАО «Регион-продукт» (г. Омск) за 2004 год, представляющей собой модифицированную конфигурацию «Бухгалтерский учёт 4.4 »для программного пакета «1С':Предприятие 7.7» общим объёмом 207 Мб и несколько годовых отчётов в виде электронных таблиц Microsoft Excel общим объёмом 17 Мб — всего 730 файлов 21 типа общим объёмом 225 Мб. Для сравнения те же исходные данные были сжаты рядом других известных компрессоров, характеризующихся высокой степенью сжатия в тестах В. Бергманса [1 ]. Втаблице 1 приведены полученные степени сжатия при раздельной обработке файлов каждого типа; в заглавии столбцов указаны версии и ключи запуска компрессоров; приведена общая степень сжатия всего пакета данных, а также общее время сжатия и расходы памяти. Максимальное значение степени сжатия по строке выделено полужирным шрифтом. Столбцы следуют в порядке возрастания общей степени сжатия. Тесты проводились под управлением ОС Windows ХР Professional на PC Pentium 4 (2400 МГц), Gigabyte GA-8IG1000 (Intel 865G; 533 МГц), DIMM 512 Мб (DDR400), HDD Seagate 80Gb (ATA100).
Компрессор Hipp представлен в двух столбцах таблицы: без использования и с использованием fd-контекстов. В первом случае (параметры /о60 / do256) использовано классическое контекстное моделирование с полным смешиванием статистики по сплошным кон текстам глубиной до 60 символов, и работа Hipp почти полностью аналогична компрессору Шелвина PPMY за исключением SSE и авторской реализации суффиксного дерева с объединением детерминированных узлов (ОДУ) и двойным ограничением глубины (параметр /do). РРМУявляет-ся предшественником компрессора Шелвина ASH (см. таблицу), который достигает несколько большей общей степени сжатия благодаря масштабированию статистики (уменьшение веса старой статистики в пользу более новой) и существенно переработанным принципам смешивания. Но при этом Hipp благодаря ОДУ использует на порядок меньше памяти, чем ASH. Все компрессоры, находящиеся правее ASH, используют статистику по разреженным контекстам и другие дополнительные приёмы для повышения степени сжатия. Использование fd-контекстов позволяет Hipp существенно увеличить степень сжатия всех представленных типов данных (глубина fd-контекстов задана параметром /so), из которых наиболее "благоприятными" для Hip оказались cdx и xls-файлы (составляющие почти четверть входных данных), что объясняется их табличной структурой. О качестве этого результата говорит также тот факт, что по сжатию dbf-файлов (составляющих 46,6% всего объёма), Hipp занимает пятое место, но это не мешает ему оставаться на третьем месте по общей степени
Рис. 4. График степени сжатия, времени сжатия и испзльэованьой памяти при сжатии файла kennedy.Js
MaxOrder is
Рис. 5. График степени сжатия, времени сжатия и использованной памяти при сжатии файла оЬ]2
Рис. 6. График степени сжатия, времени сжатия и использованной памяти при сжатии файла pic
сжатия. Использование технологии явного и полного смешивания требует больших затрат времени, и поэтому общее время сжатия Hipp v0.5819 на порядок превосходит самое большое время сжатия среди компрессоров PPMonstr, ЕРМ, Slim! и Durilca.
Следует особо отметить, что в Hipp v0.5819 использованы неоптимизированные SSE-массивы объёмом 22,5 Мб, четырёхбайтовые счётчики (в RAR и PPMonstr, например, используются однобайтовые) и другие избыточные структуры в составе узла суффиксного дерева; кроме этого не производится масштабирование статистики и обрезки суффиксного дерева. №рртакже не использует никаких вспомогательных технологий, таких как декомпозиция входных данных, фильтры, интерлив и др. [3J, При всём этом только использование модели по fd-контекстам позволяет достичь степени сжатия, сравнимой с результатами современных .лидирующих универсальных компрессоров, оптимизированных Для работы с данными таких типов. В частности, если обычные словарные и контекстные методы без использования разреженных контекстов позволяют сжимать cdx-файлы в три-четыре раза, то использование fd-контекстов позволяет сжимать cdx-файлы в шесть-восемь раз — т.е. увеличить эффективность сжатия вдвое. На диаграмме сжатия файла fp.log (рисунок 1) Hipp занимает 11 место, а по совокупной степени сжатия файлов В. Бергманса - 10 место (на
момент появления Hipp в тестах Бергманса 26 ноября 2005 г.) среди всех известных компрессоров и архиваторов.
Эксперименты с фиксировано удалёнными контекстами подтверждают гипотезу о том, что для достижения большей степени сжатия данных при универсальном неискажающем сжатии предпочтение следует отдать методам мультимодельного стохастического контекстного моделирования. Предложенные н этой статье методы хранения полной статистики по fd-контекстам, построения прогноза по fd-контекстам и вторичной оценки коэффициента смешивания моделей даже в простейшей реализации позволяют добиться существенного увеличения степени сжатия. Описанные методы также позволяют использовать любые другие виды разреженных контекстов, что может послужить к дальнейшему увеличению степени сжатия.
Библиографический список
1. Maximum Compression: lossless data compression software benchmarks and comparisons (Electronic resource] / [Werner Bergmans). — Access mode: http://www.maximurncompres-sion.com/
2. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео / Ватолин Д., Ратушняк А., Смирнов М. ЮкинВ. - М.: ДИАЛОГ-МИФИ, 2002. - 384 с.
о е
Таблица 1
Степень сжатия лидирующих компрессоров
Тип данных RAR 3.40 -Ш.5 — mc 63:1281 + Hipp 0.5819 /обО /do256 ASH 04а /о65 /s255 PPMonsIr Vdl.l -o64 EPM r9 c064 Hipp 0.5819 /o60/sol6 Slim! 0.23(1 -06 4 Dimlcn0 4b -o64 Доля данного типа файлов. %
с111 3,17 2,69 2,80 2,99 3,20 3,04 3,26 3,37 0,1
тй 4,10 4,24 4,24 4,50 4,55 4,48 4,65 4.65 9,8
ег1 4.58 4,86 4,69 5,03 S.06 5,00 5,12 5,10 7,7
cdx 3,78 4.09 4.39 5,80 6.10 6,97 6.33 6.69 16,3
прочие 8,87 9,65 10,10 10,40 10,77 9,90 11,09 10,98 0,3
Х|£ 10,36 11,57 11,98 13,83 14,35 15,93 16,20 15,41 7,9
т1д 13.93 17,76 19.53 20,78 21,25 21,24 23,15 21.82 10.7
тх1 17,11 18,28 18,68 20,94 22,93 21,27 24,32 23,69 0,4
аъг 19,03 22,77 23,90 26,81 26,90 26,30 29,30 31,45 46,6
26,29 37,13 35,02 39,83 41,71 36,47 40,69 43,00 0,3
Общая степень сжатия 8,03 8,85 9,17 10,61 10,86 11.21 11,37 11,62 100.0
Общее время сжатия, с 256 4938 5301 776 1457 30407 2724 1189 —
Память
(среднее), н/д 46 94 47 63 236 н/д н/д -
Мб
Память
(максим), -160 62 404 193 242 904 -940 -940 -
Мб
3. Всё о сжатии : сайт по сбору и публикации материалов в области сжатия данных [Электронный ресурс) / Д. Ватолин и др.; Лаборатория компьютерной графики при ВГИК. МГУ. -Электрон, дан. — Режим доступа: hllp://www.compression.ru/.
4. Ukkonen Е. Construction Suffix Trees On-line in Linear Time (Text) // Algorithms, Software, Architecture. J.v. Leeuwen (Ed.), Information Processing 92. - Vol. I. - PP. 484-492.
5. PPM210 Demo v2.02 (3c) Encoder (Electronic resource] / Eugene Shelwien. - Electronic programs and data in RAR-archive. -Access mode: http://compression.ru/sh/ppmy_3c.rar. -04.05.2002.
6. Богатов, P.H. Поэтапно-дихотомическое кодирование символа [Текст] / P.H. Богатов // Наука. Техника. Инновации: материалы докл. Всеросс. науч. конф. молодых ученых в 6-ти частях [2-5 дек. 2004 г.). - Новосибирск: Изд-во НГТУ. 2004. -4 1,- С. 151-152.
7. Использование удалённых контекстов при сжатии данных [Текст] / Р.Н. Богатов // Военная техника, вооружение и технологии двойного применения: материалы III Междунар. технология, конгресса (Омск, 7-10 июня 2005 г.) : в 2 ч. — Омск: Ом ГУ, 2005. - Ч. И!"- С. 8- 10.
БОГАТОВ Роман Николаевич, старший преподаватель, кафедра «Автоматизированные системы обработки информации и управления».
Дата поступления статьи в редакцию: 24.08.06 г. © Богатов Р.Н.
Книжная полка
Гордеев А.В. Операционные системы: учебник для вузов. - 2-е изд. - СПб.: Питер, 2006. - 415 с.
В учебнике излагаются основные понятия операционных систем, принципы их построения и функционирования. Помимо рассмотрения таких обязательных тем, как управление задачами и ресурсами в операционных системах, организация параллельных взаимодействующих вычислений и связанных с этим проблем, приводятся сведения об особенностях архитектур современных операционных систем, используемых на персональных компьютерах.
Допущено Министерством образования Российской Федерации в качестве учебника для студентов высших учебных заведений, обучающихся по направлению подготовки бакалавров и магистров «Информатика и вычислительная техника» и направлению подготовки дипломированных специалистов «Информатика и вычислительная техника».