УДК 004.021:004.043
А. П. Поддубный, М. А. Холуев, Н. С. Галактионов
ИСПОЛЬЗОВАНИЕ ФАЙЛА В КАЧЕСТВЕ ИЗБЫТОЧНОГО СЛОВАРЯ ДЛЯ ПРЕПРОЦЕССИНГА ДАННЫХ НА ОСНОВЕ СЛОВАРНЫХ МЕТОДОВ СЖАТИЯ
Аннотация. Освещаются методы словарного сжатия данных, их характеристики и особенности реализации. Приводится классификация словарных методов сжатия данных. Изложен алгоритм сжатия данных, который предполагает использование файла как избыточного словаря для сжатия данных; приведена таблица свойств методов при работе с препроцессором, который работает на основе данного алгоритма.
Ключевые слова: архивация данных, сжатие без потерь, словарный метод.
Abstract. In article methods of dictionary compression of the data, their characteristics and feature of realization. Article contains classification of dictionary methods of compression of the data. Article also contains algorithm of compression of the data which assumes using file as the dictionary of surplus for compression of the data. Article also contains the table of properties of methods witch works with a preprocessor, which works on the basis of the given algorithm.
Keywords: archiving of the data, impression lost-free, dictionary method.
Введение
Информатизация общества является одним из важнейших направлений нашего времени. Не найдется ни одной области человеческой деятельности, которая в той или иной степени не была бы связана с процессом получения, обработки и хранения информации.
Хранение и обработка информации на сегодня являются основополагающими в любой области, так или иначе связанной со сферой информационных технологий.
Увеличение информационных потоков повлияло на развитие науки, занимающейся сжатием данных. Главная проблема, которую она призвана решать, связана с представлением информации таким образом, чтобы соответствующий ей объем данных был минимален.
1. Использование словаря в словарных методах сжатия
На сегодня уже существуют эффективные методы сжатия информации и определены основные тенденции дальнейшего развития в этой сфере. Обычно процесс сжатия представляет собой два действия: препроцессинг и кодинг.
К основным методам препроцессинга относят:
- использование словарей;
- словарь «-графов.
Идея преобразования данных с помощью словаря заключается в замене каких-то блоков данных на коды из словаря. Часто указывается просто номер блока в словаре. Метод словарной замены является самым старым и известным среди техник предварительного преобразования текстов, да и любых данных вообще. Сама словарная замена может приводить как к сжатию представления информации, так и к его расширению. Главное, чтобы при этом
достигалась цель преобразования - изменение структуры данных, позволяющее повысить эффективность последующего сжатия.
Выделяют несколько стратегий построения словаря:
- статическая, т.е. словарь строится заранее и полностью известен как препроцессору, так и постпроцессору;
- полуадаптивная, когда словарь выбирается из нескольких заранее сконструированных и известных препроцессору и постпроцессору словарей или достраивается, при этом один из имеющихся словарей берется за основу;
- адаптивная, т.е. целиком создаваемая специально для сжимаемого файла (блока) данных на основании его анализа.
При сжатии текстов в качестве блоков обычно используются [1]:
- целые слова;
- последовательности из двух символов (биграфы);
- пары букв, фонетически эквивалентных одному звуку;
- пары букв «согласная - гласная» или «гласная - согласная»;
- последовательности из п символов (п-графы).
Как правило, существует огромное количество последовательностей, которые в принципе могут стать словарными блоками данных, поэтому необходимо применять какие-то критерии отбора для добавления блоков в словарь. Обычно в словарь добавляются [1]:
- последовательности, чаще всего встречающиеся в сжимаемом тексте или в текстах определенного класса;
- одни из самых часто используемых последовательностей, удовлетворяющие некоторым ограничениям;
- слова, без которых едва ли сможет получиться связный текст: предлоги, местоимения, союзы, артикли и т. п.
Стратегия «Словарь п-графов» получила наибольшее распространение в современных архиваторах. Идея заключается в использовании статического словаря, состоящего из последовательностей символов длиной от двух до небольшого числа п (обычно 4-5). В большинстве случаев размер словаря равен примерно 100 таким фразам. К достоинствам данного типа словаря можно отнести:
- малый размер;
- обеспечение существенного прироста степени сжатия текстов;
- простоту реализации.
Небольшой размер словаря обусловлен двумя причинами:
- это упрощает кодирование блоков данных словаря;
- дальнейшее увеличение размера словаря улучшает сжатие лишь незначительно (справедливо для BWT и в меньшей степени для Ь2) либо даже вредит в большинстве случаев (справедливо для РРМ).
Недостатком словаря данного типа является отсутствие формализованного алгоритма построения. Как показали эксперименты [1], добавление в словарь самых часто используемых последовательностей символов небольшой длины действительно улучшает сжатие, но такой подход не приводит к получению оптимального состава словаря. Поэтому построение словаря делается в полуавтоматическом режиме, когда для заданного кодера и заданного набора данных эмпирически определяется целесообразность внесения или удаления из словаря той или иной фразы, исходя из изменения коэффициента сжатия тестового набора.
2. Использование избыточного словаря для препроцессинга данных
Стандартная предварительная обработка данных выполняется до их сжатия как такового и призвана улучшить коэффициент сжатия. Схема кодирования в этом случае имеет вид, показанный на рис. 1 [2].
Рис. 1. Стандартная схема кодирования данных
Основная идея заключается в том, что возможно использовать принцип дополнительного словарного сжатия применительно для сильно избыточных данных, таких как видеофрагменты или аудиотреки. То есть сжатие осуществляется с помощью словаря по основной технологии словарного блочного кодирования, но в качестве словаря выступает статический файл, имеющий те же статистические особенности, что и сжимаемый (например, сжатие видеофайла, записанного в формате ау1, с помощью другого файла ау1). При этом допускается, что словарь избыточен, и сжатие будет занимать продолжительное время, но появляется возможность повысить степень сжатия на препроцессинге информации. Данный способ позволит использовать многопроходной процессинг информации. Также стоит упомянуть, что степень сжатия на следующей итерации находится в прямой зависимости от степени сжатия на предыдущей итерации.
При сжатии на каждой итерации препроцессинга достигается уменьшение объема примерно от 0,1 до 10 %. Количество эффективных итераций зависит от типа сжимаемых данных. Последующая обработка тоже сильно зависит от результатов препроцессинга и типа сжимаемых данных.
Идея использования заведомо избыточного словаря данных позволяет получить больший процент сжатия, чем при процессинге стандартными словарными и несловарными методами обработки. Однако использование избыточного словаря обязывает хранить файл, с помощью которого сжали информацию, для его разархивации, что сужает область применения данного способа сжатия.
Идея разработанного алгоритма заключается в том, что сжатие осуществляется посредством дополнительного файла, который и будет являться избыточным словарем для первого. В общем виде необходимы два однотипных файла. Первый файл (сжимаемые данные) с именем /Ие1 и второй файл (служебный), названый ёШюпагуШе. При этом /г1е1 при препроцессинге делится на N равных частей объемом S байт (рис. 2).
При каждом шаге работы программы сравнение идет только с одним блоком файла/г!е1. Файл ЛШопагуШе при этом сканируется полностью (рис. 3).
При нахождении совпадения внутри блока совпавший участок меняется на служебный блок (рис. 4). Из рис. 4 видно, что замена может производиться только при S < 8ь.
На рис. 4 показан самый лучший вариант, когда блок в /Ие1 идентичен найденному блоку в ЛШопагуШе.
1 2 3
N
Рис. 2. Структура сжимаемого файла
Рис. 3. Процедура сканирования файла на предмет совпадений
Рис. 4. Процедура замены блока при совпадении: В - служебный блок; - длина служебного блока
После того как совпавший блок заменен на служебный, остальные (Ы - 1) блоки сдвигаются к началу файла на величину (Б - Бь), в том числе и остаток.
В случае, когда совпавшие блоки не были найдены, блок из А1е1 сохраняется без изменений и осуществляется поиск совпадений со следующим блоком.
Данный разработанный алгоритм можно использовать со всеми кодерами, такими как РРМ^ Ь277 и BWT, которые должны увеличить степень компрессии на финальном этапе сжатия данных.
К отрицательным особенностям алгоритма можно отнести скорость сжатия - при данной реализации препроцессинг может занять времени до 10 раз больше при каждой итерации, чем последующая обработка кодером, а также то, что для распаковки файла /г1е1 потребуется файл ЛШопагуШе.
Положительными сторонами алгоритма являются степень компрессии некоторых плохосжимаемых типов данных по отношению к другим препроцессорам и даже к некоторым кодерам.
Для того чтобы улучшить характеристики архивирующей системы, можно использовать в соответствии с вышеупомянутой схемой и в качестве кодеров такие, которые используют методы РРМ, BWT и Ь277.
В табл. 1 приведены основные особенности использования универсальных алгоритмов вместе с препроцессором. Из табл. 1 видно, что степень сжатия повысилась, однако некоторые комбинации стали недопустимы ввиду низкой скорости сжимаемой информации или больших затрат на сжатие.
Таблица 1
Свойства методов при работе с препроцессором
Параметр Метод Однородные данные (текст) Однородные данные (исходные тексты программ) Неоднородные данные Данные с малой избыточностью (предварительно сжатые файлы)
1 2 3 4 5 6
Степень сжатия РРМ Высокая Высокая Высокая Средняя
BWT Близкая к РРМ Близкая к РРМ - -
ьг77 Средняя Высокая Близкая к РРМ -
Скорость кодирования BWT Средняя Низкая Средняя Низкая
РРМ - Если не использовать моделирование - средняя Низкая -
ьг77 Средняя, а при малом словаре -высокая Низкая, при малом словаре -средняя Средняя Средняя
Скорость декодиро- вания ьг77 Примерно в 10 раз выше скорости кодирования; разница еще больше на избыточных данных
РРМ Обычно на 5-10 % медленнее кодирования
BWT В 2-4 раза выше скорости кодирования
Окончание табл. 1
1 2 3 4 5 6
Требуемый объем памяти при сжатии BWT Постоянен при сжатии данных любого типа
РРМ Варьируется в широких пределах в зависимости от сложности моделирования и порядка модели; вырастает для неоднородных данных; в зависимости от структуры хранения контекстной информации может увеличиваться для малоизбыточных данных
ьг77 Пропорционален размеру словаря
Требуемый объем памяти при разжатии ьг77 Минимален
РРМ Максимальный; если процесс моделирования симметричен, то примерно равен расходу памяти при сжатии
BWT Средний
Для того чтобы получить максимально эффективную модель, можно использовать нестандартные схемы сжатия. К одной из таких схем можно отнести схему, показанную на рис. 5.
Рис. 5. Синтезированная схема для архивации данных
Особенность данной схемы заключается в том, что кодер на первом этапе выполняет роль «препрепроцессора» и позволяет получить данные, «удобные для сжатия» для препроцессора. Данная схема будет эффективно работать, если использовать преобразование BWT на первом этапе. Эффективность достигается за счет того, что после преобразования BWT данные будут упорядочены и позволят повысить степень сжатия, однако это может привести к значительным потерям во времени. В качестве оконечного кодера можно использовать как РРМ, так и Ь277 в зависимости от типа сжимаемых данных. Так как разработанный алгоритм взаимодействует с двумя файлами, то для большей результативности сжатия стадию «препрепроцессинга» должны пройти оба файла (рис. 6).
Недостатком данного подхода является избыточность преобразований над файлом, что делает работу архивирующей системы еще более медленной. Однако обработанные с помощью преобразования BWT при препрепроцес-синге данные будут более упорядочены и степень сжатия при дальнейших операциях увеличится.
Также возможны реализации архивирующих систем смешанного типа. Примером данной системы может стать система, которая на первом этапе кодирует информацию с потерей, после чего обрабатывается на разработанном препроцессоре, а затем заново кодируется кодером без потерь информации.
Даная система будет иметь преимущество при создании больших видеотек и в Интернете.
Рис. 6. Синтезированная схема архивации для двух файлов Заключение
В работе предложен и разработан новый подход к архивации данных на основе словарных методов сжатия с использованием избыточного словаря, в качестве которого применяется сторонний файл.
Идея использования заведомо избыточного словаря данных позволяет получить больший процент сжатия некоторых плохосжимаемых видов данных, чем при процессинге стандартными словарными и не словарными методами обработки. Однако использование избыточного словаря обязывает хранить файл, с помощью которого сжали информацию, для его разархивации, что сужает область применения данного способа сжатия.
Список литературы
1. Ватолин, Д. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео / Д. Ватолин, А. Ратушняк, М. Смирнов, В. Юкин. - М. : Диалог-МИФИ, 2003. - 384 с.
2. Кадач, А. В. Эффективные алгоритмы неискажающего сжатия текстовой информации : дис. ... канд. физ.-мат. наук / Кадач А. В. ; Ин-т систем информатики им. А. П. Ершова. - М., 1997. - 187 с.
Поддубный Александр Петрович аспирант, Российский государственный университет инновационных технологий и предпринимательства
Poddubny Alexander Petrovich Postgraduate student, Russian State University of innovative technologies and entrepreneurship
E-mail: [email protected]
Холуев Максим Александрович инженер, ОАО «НПП «Рубин»; аспирант, Российский государственный университет инновационных технологий и предпринимательства
E-mail: [email protected]
Галактионов Николай Сергеевич инженер, ОАО «НПП «Рубин»; аспирант, Российский государственный университет инновационных технологий и предпринимательства
E-mail: [email protected]
Kholuev Maxim Alexandrovich Engineer, research and production enterprise “Rubin”; postgraduate student, Russian State University of innovative technologies and entrepreneurship
Galaktionov Nikolay Sergeevich
Engineer, research and production enterprise “Rubin”; postgraduate student, Russian State University of innovative technologies and entrepreneurship
УДК 004.82 : 004.4'2 Поддубный, А. П.
Использование файла в качестве избыточного словаря для препро-цессинга данных на основе словарных методов сжатия I А. П. Поддубный, М. А. Холуев, Н. С. Галактионов II Известия высших учебных заведений. Поволжский регион. Технические науки. - 2010. - № 4 (16). - С. 47-54.