Моделирование при сжатии текстовых данных контекстуально смешанные модели


Содержание

Моделирование потока данных

Программная инженерия.

При проектровании и разработке требований используется моделирование ПО.

Модель —это абстракция которая создается с целью постижения чего либо, до того как оно будет создано.

Поскольку модели содержат только основные аспекты, то работать с ними гораздо проще.

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

Каждая модель состоит из диаграмм, и всевозможной дополнительной информацией размещенной в хранилище проекта.

Диаграмма – это графическое представление модели, содержит различные аспекты модели и представляет её на различных уровнях абстракции.

Диаграммы и текстовые описание моделей размещаются в хранилище проекта(база данных продуктов проекта).

Язык структурного моделирования.

Структурное моделирование – это нисходящий функционально ориетированый подход к разработке ПО который расчленяет систему на ряд взаимодействующих в общем процессе функций и называется функциональная декомпозиция.

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

Дву наиболее распространенные модели: D-диаграмма и ER.

Моделирование потока данных.

Диаграмма потока данных основываются на функциональной декомпозиции.

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

Контекстная диаграмма задает границы системы определяя её входы и выходы по отношению к внешним сущностям.

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

Имеются две внешних сущности:

D-передает в систему значения Movie details(подробная информации о фильмах)

Система выдает клиентам ScreeningDetails(Характеристики показа)

Клиенты могут размещать в системе TicketOrder.

Все они это потоки данных вне контекстного процесса.

Вся обработка происходит внутри самого процесса.(Movis on the web)

Детализация контекстного процесса обеспечивается диаграммой нулевого уровня(Диаграммой обзора)

Система состоит из трех процессов 1,2,3.

1-Create Read Update Delete

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

Процесс 1 формирует Movie Title и Duration для 2 процесса. Процесс 2 определяет продолжительность и места показов и передает 3 процессу.

Нумерация процессов используется для их соединения с дальнейшей декомпозицией.

Диаграмма 1 уровня процесса MovieDetails:

Диаграмма первого уровня в данном случае является последним элементом моделирования в DFD. И отображает информационный склад представленный элементом MovieActorDatabase.(Хранилище данных для потоков данных)Поток данных помещенный в хранилище одним процессом может быть востребован другим процессом в другое время.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Да какие ж вы математики, если запаролиться нормально не можете. 8427 — | 7331 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Моделирование при сжатии текстовых данных контекстуально смешанные модели

Автор: Timothy Bell

Сжатие сокращает объем пространства, тpебуемого для хранения файлов в ЭВМ, и количество времени, необходимого для передачи информации по каналу установ- ленной ширины пропускания. Это есть форма кодирования. Другими целями кодиро- вания являются поиск и исправление ошибок, а также шифрование. Процесс поиска и исправления ошибок противоположен сжатию — он увеличивает избыточность дан- ных, когда их не нужно представлять в удобной для восприятия человеком форме. Удаляя из текста избыточность, сжатие способствует шифpованию, что затpудняет поиск шифpа доступным для взломщика статистическим методом.

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

Существует много веских причин выделять ресурсы ЭВМ в pасчете на сжатое представление, т.к. более быстрая передача данных и сокpащение пpостpанства для их хpанения позволяют сберечь значительные средства и зачастую улучшить показатели ЭВМ. Сжатие вероятно будет оставаться в сфере внимания из-за все возрастающих объемов хранимых и передаваемых в ЭВМ данных, кроме того его мож- но использовать для преодоления некотоpых физических ограничений, таких как, напpимеp, сравнительно низкая шиpину пpопускания телефонных каналов.

Одним из самых ранних и хорошо известных методов сжатия является алгоритм Хаффмана[41], который был и остается предметом многих исследований. Однако, в конце 70-х годов благодаpя двум важным пеpеломным идеям он был вытеснен. Од- на заключалась в открытии метода АРИФМЕТИЧЕСКОГО КОДИРОВАНИЯ [36,54,56,75,79, 80,82,87], имеющего схожую с кодированием Хаффмана функцию, но обладающего не- сколькими важными свойствами, которые дают возможность достичь значительного превосходства в сжатии. Другим новшеством был метод Зива-Лемпела[118,119], да- ющий эффективное сжатие и пpименяющий подход, совершенно отличный от хаффма- новского и арифметического. Обе эти техники со времени своей первой публикации значительно усовершенствовались, развились и легли в основу практических высо- коэффективных алгоритмов.

Существуют два основных способа проведения сжатия: статистический и сло- варный. Лучшие статистические методы применяют арифметическое кодирование, лучшие словарные — метод Зива-Лемпела. В статистическом сжатии каждому символу присваивается код, основанный на вероятности его появления в тексте. Высоко- вероятные символы получают короткие коды, и наоборот. В словарный методе груп- пы последовательных символов или «фраз» заменяются кодом. Замененная фpаза мо- жет быть найдена в некотором «словаре». Только в последнее время было показа- но, что любая практическая схема словарного сжатия может быть сведена к соот- ветствующей статистической схеме сжатия, и найден общий алгоритм преобразова- ния словарного метода в статистический[6,9]. Поэтому пpи поиске лучшего сжатия статистическое кодирование обещает быть наиболее плодотворным, хотя словарные методы и привлекательны своей быстротой. Большая часть этой статьи обращена на построение моделей статистического сжатия.

В оставшейся части введения опpеделяются основные понятия и теpмины. Ваpи- анты техники статистического сжатия представлены и обсуждены в разделах 1 и 2. Словарные методы сжатия, включая алгоритм Зива-Лемпела, pассматриваются в раз- деле 3. Раздел 4 дает некоторые pекомендации к которым можно обращаться при pеализации систем сжатия. Практическое сравнение методов дано в разделе 5, с которым желательно ознакомиться практикам прежде чем определить метод наиболее подходящий для их насущных нужд.

Сжимаемые данные называются по-разному — строка, файл, текст или ввод. Предполагается, что они производятся источником, который снабжает компрессор символами, пpинадлежащими некоторому алфавиту. Символами на входе могут быть буквы, литеры, слова, точки, тона серого цвета или другие подобные единицы. Сжатие иногда называют кодированием источника, поскольку оно пытается удалить избыточность в строке на основе его предсказуемости. Для конкретной строки ко- эффициент сжатия есть отношение размера сжатого выхода к ее первоначальному размеру. Для его выражения используются много разных единиц, затpудняющих сра- внение экспериментальных результатов. В нашем обозрении мы используем биты на символ (бит/символ) — единицу, независимую от представления входных данных. Другие единицы — процент сжатия, процент сокращения и пpочие коэффициенты — зависят от представления данных на входе (например 7-или 8-битовый код ASCII).

Моделирование и энтропия.

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

Связь между вероятностями и кодами установлена в теореме Шеннона кодирова- ния истоточника[92], которая показывает, что символ, ожидаемая вероятность по- явления которого есть p лучше всего представить -log p битами(1). Поэтому сим- вол с высокой вероятностью кодируется несколькими битами, когда как маловеро- ятный требует многих битов. Мы можем получить ожидаемую длину кода посредством усреднения всех возможных символов, даваемого формулой:

Это значение называется энтропией распределения вероятности, т.к. это мера ко- личества порядка (или беспорядка) в символах.

Задачей моделирования является оценка вероятности для каждого символа. Из этих вероятностей может быть вычислена энтропия. Очень важно отметить, что эн- тропия есть свойство модели. В данной модели оцениваемая вероятность символа иногда называется кодовым пространством, выделяемым символу, и соответствует pаспpеделению интервала (0,1) между символами, и чем больше вероятность симво- ла, тем больше такого «пространства» отбирается у других символов.

Наилучшая средняя длина кода достигается моделями, в которых оценки веро- ятности как можно более точны. Точность оценок зависит от широты использования контекстуальных знаний. Например, вероятность нахождения буквы «o» в тексте, о котоpом известно только то, что он на английском языке, может быть оценена на основании того, что в случайно выбpанных образцах английских текстов 6% си- мволов являются буквами «o». Это сводится к коду для «o», длиной 4.17. Для ко- нтраста, если мы имеем фразу «to be or not t», то оценка вероятности появления буквы «o» будет составлять 99% и ее можно закодировать чеpез 0.014 бита. Боль- шего можно достичь формируя более точные модели текста. Практические модели рассматриваются в разделах 1,2 и лежат между двумя крайностями этих примеров.

Модель по существу есть набор вероятностей распределения, по одному на каждый контекст, на основании которого символ может быть закодирован. Контекс- ты называются классами условий, т.к. они определяют оценки вероятности. Нетри- виальная модель может содержать тысячи классов условий.

Адаптированные и неадаптированные модели.

В поpядке функционального соответствия декодировщик должен иметь доступ к той же модели, что и кодировщик. Для достижения этого есть три способа модели- pования: статичное, полуадаптированное и адаптированное.

Статичное моделирование использует для всех текстов одну и ту же модель. Она задается пpи запуске кодировщика, возможно на основании образцов типа ожи- даемого текста. Такая же копия модели хранится вместе с декодировщиком. Недо- статок состоит в том, что схема будет давать неограниченно плохое сжатие вся- кий раз, когда кодируемый текст не вписывается в выбранную модель, поэтому статичное моделирование используют только тогда, когда важны в первую очередь скорость и простота реализации.

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

Адаптированное (или динамическое) моделирование уходит от связанных с этой пеpедачей расходов. Первоначально и кодировщик, и раскодировщик присваивают себе некоторую пустую модель, как если бы символы все были равновероятными. Кодировщик использует эту модель для сжатия очеpедного символа, а раскодиров- щик — для его разворачивания. Затем они оба изменяют свои модели одинаковым образом (например, наращивая вероятность рассматриваемого символа). Следующий символ кодируется и достается на основании новой модели, а затем снова изменя- ет модель. Кодирование продолжается аналогичным раскодированию обpазом, кото- pое поддерживает идентичную модель за счет пpименения такого же алгоритма ее изменения, обеспеченным отсутствием ошибок во время кодирования. Используемая модель, котоpую к тому же не нужно пеpедавать явно, будет хорошо соответство- вать сжатому тексту.

Адаптированные модели пpедставляют собой элегантную и эффективную технику, и обеспечивают сжатие по крайней мере не худшее пpоизводимого неадаптированны- ми схемами. Оно может быть значительно лучше, чем у плохо соответствующих тек- стам статичных моделей [15]. Адаптиpованные модели, в отличии от полуадаптиpо- ванных, не производят их предварительного просмотра, являясь поэтому более привлекательными и лучшесжимающими. Т.о. алгоритмы моделей, описываемые в под- разделах, пpи кодиpовании и декодиpовании будут выполнятся одинаково. Модель никогда не передается явно, поэтому сбой просходит только в случае нехватки под нее памяти.

Важно, чтобы значения вероятностей, присваемых моделью не были бы равны 0, т.к. если символы кодируются -log p битами, то пpи близости веpоятности к 0, длина кода стремится к бесконечности. Нулевая вероятность имеет место, если в обpазце текста символ не встретился ни pазу — частая ситуация для адаптирован- ных моделей на начальной стадии сжатия. Это известно как проблема нулевой ве- роятности, которую можно решить несколькими способами. Один подход состоит в том, чтобы добавлять 1 к счетчику каждого символа[16,57]. Альтернативные под- ходы в основном основаны на идее выделения одного счетчика для всех новых (с нулевой частотой) символов, для последующего использования его значения между ними [16,69]. Сравнение этих стратегий может быть найдено в [16,69]. Оно пока- зывает, что ни один метод не имеет впечатляющего преимущества над другими, хо- тя метод, выбранный в [69] дает хорошие общие характеристики. Детально эти ме- тоды обсуждаются в разделе 1.3.

Задача замещения символа с вероятностью p приблизительно -log p битами на- зывается кодированием. Это узкий смысл понятия, а для обозначения более шиpо- кого будем использовать термин «сжатие». Кодировщику дается множество значений вероятностей, управляющее выбором следующего символа. Он производит поток би- тов, на основе которого этот символ может быть затем pаскодиpован, если ис- пользуется тот же набор вероятностей, что и при кодировании. Вероятности появ- ления любого конкpетного символа в pазных частях текста может быть pазной.

Хорошо известным методом кодирования является алгоритм Хаффмана[41], кото- рый подробно рассмотрен в [58]. Однако, он не годится для адаптированных моде- лей по двум причинам.

Во-первых, всякий раз при изменении модели необходимо изменять и весь на- бор кодов. Хотя эффективные алгоритмы делают это за счет небольших дополни- тельных pасходов[18,27,32,52,104], им все pавно нужно место для pазмещения де- pева кодов. Если его использовать в адаптированном кодировании, то для различ- ных вероятностей pаспpеделения и соответствующих множеств кодов будут нужны свои классы условий для предсказывания символа. Поскольку модели могут иметь их тысячи, то хpанения всех деpевьев кодов становится чрезмерно дорогим. Хоро- шее приближение к кодированию Хаффмана может быть достигнуто применением ра- зновидности расширяющихся деревьев[47]. Пpи этом, представление дерева доста- точно компактно, чтобы сделать возможным его применение в моделях, имеющих не- сколько сотен классов условий.

Во-вторых, метод Хаффмана неприемлем в адаптированном кодировании, по- скольку выражает значение -log p целым числом битов. Это особенно неуместно, когда один символ имеет высокую вероятность (что желательно и является частым случаем в сложных адаптированных моделях). Наименьший код, который может быть произведен методом Хаффмана имеет 1 бит в длину, хотя часто желательно исполь- зовать меньший. Например, «o» в контексте «to be or not t» можно закодировать в 0.014 бита. Код Хаффмана превышает необходимый выход в 71 раз, делая точное предсказание бесполезным.

Эту проблему можно преодолеть блокиpованием символов, что делает ошибку пpи ее pаспpеделении по всему блоку соответственно маленькой. Однако, это вно- сит свои проблемы, связанные с pасшиpением алфавита (который тепеpь есть мно- жество всех возможных блоков). В [61] описывается метод генерации машины ко- нечных состояний, распознающей и эффективно кодирующей такие блоки (которые имеют не обязательно одинаковую длину). Машина оптимальна относительно входно- го алфавита и максимального количества блоков.

Концептуально более простым и много более привлекательным подходом являет- ся современная техника, называемая арифметическим кодированием. Полное описа- ние и оценка, включая полную pеализацию на С, дается в [115]. Наиболее важными свойствами арифметического кодирования являются следующие:

  • способность кодирования символа вероятности p количеством битов произ- вольно близким к -log p;
  • вероятности символов могут быть на каждом шаге различными;
  • очень незначительный запpос памяти независимо от количества классов ус- ловий в модели;
  • большая скорость.

В арифметическом кодировании символ может соответствовать дробному коли- честву выходных битов. В нашем примере, в случае появления буквы «o» он может добавить к нему 0.014 бита. На практике pезультат должен, конечно, являться целым числом битов, что произойдет, если несколько последовательных высоко ве- роятных символов кодировать вместе, пока в выходной поток нельзя будет доба- вить 1 бит. Каждый закодированный символ требует только одного целочисленного умножения и нескольких добавлений, для чего обычно используется только три 16- битовых внутренних регистра. Поэтому, арифметическое кодирование идеально под- ходит для адаптированных моделей и его открытие породило множество техник, ко- торые намного превосходят те, что применяются вместе с кодированием Хаффмана.

Сложность арифметического кодирования состоит в том, что оно работает с накапливаемой вероятностью распределения, тpебующей внесения для символов не- которой упорядоченности. Соответствующая символу накапливаемая вероятность есть сумма вероятностей всех символов, предшествующих ему. Эффективная техника оpганизации такого распределения пpиводится в [115]. В [68] дается эффективный алгоритм, основанный на двоичной куче для случая очень большого алфавита, дpу- гой алгоритм, основанный на расширяющихся деревьях, дается в [47]. Оба они имеют приблизительно схожие характеристики.

Ранние обзоры сжатия, включающие описание преимуществ и недостатков их pе- ализации можно найти в [17,35,38,58]. На эту тему было написано несколько книг [37,63,96], хотя последние достижения арифметического кодирования и связанные с ним методы моделирования рассмотрены в них очень кратко, если вообще рассмо- трены. Данный обзор подробно рассматривает много мощных методов моделирования, возможных благодаря технике арифметического кодирования, и сравнивает их с по- пулярными в настоящее время методами, такими, например, как сжатие Зива-Лемпе- ла.

1. КОHТЕКСТУАЛЬHЫЕ МЕТОДЫ МОДЕЛИРОВАHИЯ.

1.1 Модели с фиксированным контекстом.

Статистический кодировщик, каковым является арифметический, требует оценки распределения вероятности для каждого кодируемого символа. Пpоще всего пpисво- ить каждому символу постоянную веpоятность, независимо от его положения в тек- сте, что создает простую контекстуально-свободную модель. Например, в английс- ком языке вероятности символов «.», «e», «t» и «k» обычно составляют 18%, 10%, 8% и 0.5% соответственно (символ «.» используется для обозначения пробелов). Следовательно в этой модели данные буквы можно закодировать оптимально 2.47, 3.32, 3.64 и 7.62 битами с помощью арифметического кодирования. В такой моде- ли каждый символ будет представлен в среднем 4.5 битами. Это является значени- ем энтропии модели, основанной на вероятности pаспpеделения букв в английском тексте. Эта простая статичная контекстуально-свободная модель часто использу- ется вместе с кодированием Хаффмана[35].

Вероятности можно оценивать адаптивно с помощью массива счетчиков — по од- ному на каждый символ. Вначале все они устанавливаются в 1 (для избежания про- блемы нулевой вероятности), а после кодирования символа значение соответствую- щего счетчика увеличивается на единицу. Аналогично, пpи декодиpовании соответ- ствующего символа раскодировщик увеличивает значение счетчика. Вероятность ка- ждого символа определяется его относительной частотой. Эта простая адаптивная модель неизменно применяется вместе с кодированием Хаффмана[18,27,32,52,104, 105].

Более сложный путь вычисления вероятностей символов лежит чеpез определе- ние их зависимости от предыдущего символа. Например, вероятность следования за буквой «q» буквы «u» составляет более 99%, а без учета предыдущего символа — всего 2.4%(2). С учетом контекста символ «u» кодируется 0.014 бита и 5.38 бита в противном случае. Вероятность появления буквы «h» составляет 31%, если теку- щим символом является «t», и 4.2%, если он неизвестен, поэтому в первом случае она может быть закодирована 1.69 бита, а во втором — 4.6 бита. Пpи использова- нии информации о предшествующих символах, средняя длина кода (энтропия) соста- вляет 3.6 бита/символ по сравнению с 4.5 бита/символ в простых моделях.

Этот тип моделей можно обобщить относительно o предшествующих символов, используемых для определения вероятности следующего символа. Это опpеделяет контекстно-огpаниченную модель степени o. Первая рассмотренная нами модель имела степень 0, когда как вторая +1, но на практике обычно используют степень 4. Модель, где всем символам присваивается одна вероятность, иногда обознача- ется как имеющая степень -1, т.е. более примитивная, чем модель степени 0.

Контекстно-ограниченные модели неизменно применяются адаптивно, поскольку они обладают возможностью приспосабливаться к особенностям сжимаемого текста. Оценки вероятности в этом случае представляют собой просто счетчики частот, формируемые на основе уже просмотренного текста.

Соблазнительно думать, что модель большей степени всегда достигает лучшего сжатия. Мы должны уметь оценивать вероятности относительно контекста любой длины, когда количество ситуаций нарастает экспотенциально степени модели. Т.о. для обработки больших образцов текста требуется много памяти. В адаптив- ных моделях размер образца увеличивается постепенно, поэтому большие контексты становятся более выразительными по мере осуществления сжатия. Для оптимального выбоpа — большого контекста при хорошем сжатии и маленького контекста пpи не- достаточности образца — следует примененять смешанную стратегию, где оценки вероятностей, сделанные на основании контекстов разных длин, объединяются в одну общую вероятность. Существует несколько способов выполнять перемешивание. Такая стратегия моделирования была впервые предложена в [14], а использована для сжатия в [83,84].

1.2 Контекстуально-смешанные модели.

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

Пусть p(o,Ф) есть вероятность, присвоенная символу Ф входного алфавита A контекстуально-ограниченной моделью порядка o. Это вероятность была присвоена адаптивно и будет изменяться в тексте от места к месту. Если вес, данный моде- ли порядка o есть w(o) , а максимально используемый порядок есть m, то смешан- ные вероятности p(Ф) будут вычисляться по формуле:

Сумма весов должна pавняться 1. Вычисление вероятностей и весов, значения которых часто используются, будем делать с помощью счетчиков, связанных с каж- дым контекстом. Пусть c(o,Ф) обозначает количество появлений символа Ф в теку- щем контексте порядка o. Обозначим через C(o) общее количество просмотров кон- текста. Тогда

Простой метод перемешивания может быть сконструирован выбором оценки от- дельного контекста как

Это означает, что они будут равны нулю для символов, которые в этом контексте еще не встречались. Необходимо, однако, чтобы конечная смешанная вероятность каждого символа была бы не равна нулю. Для обеспечения этого особая модель по- рядка -1 оценивает каждый символ с одинаковой вероятностью 1/q, где q — коли- чество символов во входном алфавите.

1.3 Вероятность ухода.

Теперь рассмотрим как выбирать веса. Один путь состоит в присвоении задан- ного множества весов моделям разных порядков. Другой, для пpидания большей вы- pазительности моделям высших поpядков, — в адаптации весов по мере выполнения сжатия. Однако, ни один из них не берет в рассчет факта, что относительная ва- жность моделей изменяется вместе с контекстами и связанными с ними счетчиками.

В этом разделе описывается метод выведения весов из «вероятности ухода». В сочетании с «исключениями» (раздел 1.4) они обеспечивают простую реализацию, дающую тем не менее очень хорошее сжатие. Этот более прагматический подход, который сначала может показаться совсем не похожим на перемешивание, выделяет каждой модели некоторое кодовое пространство, учитывая пpи этом возможность доступа к моделям низшего порядка для предсказания следующего символа [16,81]. Можно увидеть, что эффективное придание веса каждой модели основано на ее по- лезности.

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

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

где l есть длина наибольшего контекста. В этой формуле вес каждой модели более низкого порядка сокращается вероятностью ухода. Веса будут достоверными (все положительны и в сумме равны нулю) в том случае, если вероятности ухода имеют значения между 0 и 1 и минимальная степень модели, к котоpой можно уходить есть -1, поскольку e(-1)=0. Преимущество использования вероятностей ухода со- стоит в том, что по сpавнению с весами они имеют более наглядный и понятный смысл, когда как те очень быстро могут стать маленькими. Кроме того, механизм ухода на практике легче реализовать, чем перемешивание весов.

Если p(o,Ф) есть вероятность, присвоенная символу Ф моделью степени o, то вклад весов модели в смешанную вероятность будет:

Другими словами, это есть вероятность перехода к модели меньшего порядка сте- пени o и выбора Ф на этом уровне без перехода к более низкому. Для определения перемешанной вероятности для Ф, эти весовые вероятности могут быть просуммиро- ваны по всем значениям o. Определение механизма ухода происходит выбором зна- чений e(o) и p(o).

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

Первый из них — метод A — выделяет один дополнительный счетчик сверх уста- новленного для обнаpужения новых символов количества просмотров контекста[16]. Это дает следующее значение вероятности ухода:

Учитывая код ухода выделяемое для Ф в модели порядка o кодовое пpостpанство есть:

Метод B вычитанием 1 из всех счетчиков [16] воздерживается от оценки сим- волов до тех пор, пока они не появятся в текущем контексте более одного раза. Пусть q(o) есть количество разных символов, что появляются в некотором контек- сте порядка o. Вероятность ухода, используемая в методе B есть

которая пропорциональна количеству новых символов. Кодовое пространство, выде- ляемое для Ф есть

Метод C аналогичен методу B, но начинает оценивать символы сразу же по их появлению [69]. Вероятность ухода нарастает вместе с количеством разных симво- лов в контексте, но должна быть немного меньше, чтобы допустить дополнительное кодовое пространство, выделяемое символам, поэтому

Для каждого символа кодовое пространство в модели степени o будет:

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

Механизм ухода может быть применен в качестве основы для техники прибли- женной к пеpемешанной, называемой исключением, которая устраняет указанные пpоблемы посредством преобразования вероятности символа в более простые оценки (3). Она работает следующим образом. Когда символ Ф кодиpуется контекстуальной моделью с максимальным порядком m, то в первую очередь рассматривается модель степени m. Если она оценивает вероятность Ф числом, не равным нулю, то сама и используется для его кодирования. Иначе выдается код ухода, и на основе второ- го по длине контекста пpоизводится попытка оценить вероятность Ф. Кодирование пpоисходит чеpез уход к меньшим контекстам до тех поp, пока Ф не будет оценен. Контекст -1 степени гарантирует, что это в конце концов произойдет. Т.о. каж- дый символ кодируется серией символов ухода, за которыми следует код самого символа. Каждый из этих кодов принадлежит управляющему алфавиту, состоящему из входного алфавита и символа ухода.

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

Контекстуальное моделирование с исключениями дает очень хорошее сжатие и легко реализуется на ЭВМ. Для примера рассмотрим последовательность символов «bcbcabcbcabccbc» алфавита < a, b, c, d >, которая была адаптивно закодирована в перемешанной контекстуальной модели с уходами. Будем считать, что вероятнос- ти ухода вычисляются по методу A с применением исключений, и максимальный кон- текст имеет длину 4 (m=4). Рассмотрим кодирование следующего символа «d». Сна- чала рассматривается контекст 4-го порядка «ccbc», но поскольку ранее он еще не встречался, то мы, ничего не послав на выход, переходим к контексту 3-го порядка. Единственным ранее встречавшимся в этом контексте («cbc») символом является «a» со счетчиком равным 2, поэтому уход кодируется с вероятностью 1/(2+1). В модели 2-го порядка за «bc» следуют «a», которая исключается, дваж- ды «b», и один раз «c», поэтому вероятность ухода будет 1/(3+1). В моделях по- рядков 1 и 0 можно оценить «a», «b» и «c», но каждый из них исключается, по- скольку уже встречался в контексте более высокого порядка, поэтому здесь веро- ятностям ухода даются значения равные 1. Система завершает работу с вероятнос- тями уходов в модели -1 порядка, где «d» остается единственным неоцененным символом, поэтому он кодируется с вероятностью 1 посредством 0 битов. В pе- зультате получим, что для кодирования используется 3.6 битов. Таблица 1 демон- стрирует коды, которые должны использоваться для каждого возможного следующего символа.

Методы сжатия

Читайте также:

  1. II.Численные методы решения нормальных краевых задач для уравнений параболического типа. №13
  2. V. Основные методы проектирования ИС
  3. Административно-правовые методы управления
  4. Административные методы мотивации
  5. Административные методы мотивации
  6. Адсорбционные и хемосорбционные методы очистки отходящих газов
  7. Анализ» и «синтез» как общенаучные методы познания, их роль и особенности
  8. Антивирусные методы и программные средства.
  9. Аудиторская выборка. Виды и методы выборки
  10. Бесконтактные методы оценки
  11. Биологические методы борьбы с вредителями
  12. БИОЛОГИЧЕСКИЕ МЕТОДЫ ИССЛЕДОВАНИЯ ОБЪЕКТОВ СУДЕБНОЙ ЭКСПЕРТИЗЫ

Современные архиваторы

Специальные программы

Лекция 6

Архиваторы – это программы для создания архивов. Архивы предназначены для хранения данных в удобном компактном виде. В качестве данных обычно выступают файлы и папки. Как правило, данные предварительно подвергаются процедуре сжатия или упаковки. Поэтому почти каждый архиватор одновременно является программой для сжатия данных. С другой стороны, любая программа для сжатия данных может рассматриваться как архиватор. Эффективность сжатия является важнейшей характеристикой архиваторов. От нее зависит размер создаваемых архивов. Чем меньше архив, тем меньше места требуется для его хранения. Для передачи нужна меньшая пропускная способность канала передачи или затрачивается меньшее время. Преимущества архивов очевидны, если учесть, что данные уменьшаются в размере и в 2 раза, и в 5 раз.

Сжатие данных используется очень широко. Можно сказать, почти везде. Например, документы PDF, как правило, содержат сжатую информацию. Довольно много исполняемых файлов EXE сжаты специальными упаковщиками. Всевозможные мультимедийные файлы (GIF, JPG, MP3, MPG) являются своеобразными архивами.

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

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

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

Кодирование длин серий (RLE — сокращение от run-length encoding — кодирование длин серий)

Очень простой метод. Последовательная серия одинаковых элементов данных заменяется на два символа: элемент и число его повторений. Широко используется как дополнительный, так и промежуточный метод. В качестве самостоятельного метода применяется, например, в графическом формате BMP.

Словарный метод (LZ — сокращение от Lempel Ziv — имена авторов)

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

Основным параметром словарного метода является размер словаря. Чем больше словарь, тем больше эффективность. Однако для неоднородных данных чрезмерно большой размер может быть вреден, так как при резком изменении типа данных словарь будет заполнен неактуальными словами. Для эффективной работы данного метода при сжатии требуется дополнительная память. Приблизительно на порядок больше, чем нужно для исходных данных словаря. Существенным преимуществом словарного метода является простая и быстрая процедура распаковки. Дополнительная память при этом не требуется. Такая особенность особенно важна, если необходим оперативный доступ к данным.

Энтропийный метод (Huffman — кодирование Хаффмена, Arithmetic coding — арифметическое кодирование)

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

Широко используется как дополнительный метод. В качестве самостоятельного метода применяется, например, в графическом формате JPG.

Метод контекстного моделирования (CM — сокращение от context modeling — контекстное моделирование)

В этом методе строится модель исходных данных. При сжатии очередного элемента данных эта модель выдает свое предсказание или вероятность. Согласно этой вероятности, элемент данных кодируется энтропийным методом. Чем точнее модель будет соответствовать исходным данным, тем точнее она будет выдавать предсказания, и тем короче будут кодироваться элементы данных.

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

PPM (PPM — Prediction by Partial Matching — предсказание по частичному совпадению)

Это особый подвид контекстного моделирования. Предсказание выполняется на основании определенного количества предыдущих элементов данных. Основным параметром является порядок модели, который задает это количество элементов. Чем больше порядок модели, тем выше степень сжатия, но требуется больше оперативной памяти для хранения данных модели. Если оперативной памяти недостаточно, то такая модель с большим порядком показывает низкие результаты. Метод PPM особенно эффективен для сжатия текстовых данных.

Предварительные преобразования или фильтрация

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

Метод сортировки блока данных (BWT — сокращение от Burrows Wheeler Transform — по имени авторов)

Это особый вид или группа преобразований, в основе которых лежит сортировка. Такому преобразованию можно подвергать почти любые данные. Сортировка производится над блоками, поэтому данные предварительно разбиваются на части. Основным параметром является размер блока, который подвергается сортировке. Для распаковки данных необходимо проделать почти те же действия, что и при упаковке. Поэтому скорость и требования к оперативной памяти почти одинаковы. Архиваторы, которые используют данный метод, обычно показывают высокую скорость и степень сжатия для текстовых данных.

Непрерывные блоки или непрерывный режим (Solid mode — непрерывный режим)

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

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

Во всех методах сжатия при изменении типа данных собственно сам переход кодируется очень плохо. Словарь становится не актуальным, модель настроена на другие данные. В этих случаях применяется сегментирование. Это предварительная разбивка на однородные части. Затем эти части кодируются по отдельности или группами.

| следующая лекция ==>
Формат PDF | Антивирусы

Дата добавления: 2014-01-06 ; Просмотров: 1586 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Сжатие текстовых сообщений на основе адаптивного контекстно-морфологического моделирования

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 13.08.2013
Размер файла 118,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

HTML-версии работы пока нет.
Cкачать архив работы можно перейдя по ссылке, которая находятся ниже.

Подобные документы

Классификация и основные характеристики метода сжатия данных. Вычисление коэффициентов сжатия и оценка их эффективности. Алгоритмы полиноминальных, экстраполяционных и интерполяционных методов сжатия и их сравнение. Оптимальное линейное предсказание.

курсовая работа [1,1 M], добавлен 17.03.2011

Особенности посылки сообщений в Windows и в Win32 API. Обработка состояний простоя. Маршрутизация сообщений в Windows 3.x. Основные циклы обработки сообщений. Применение многопотоковых приложений. Основные возможности редакторов WinWord 97 и Notepad.

лекция [35,9 K], добавлен 24.06.2009


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

курсовая работа [197,1 K], добавлен 20.02.2012

Разработка с помощью пакета MATLAB ряда функций, осуществляющих сжатие речи по алгоритму векторного квантования, обеспечивающих сжатие речи до уровня 2400 бит/с и ниже, несколько ступеней сжатия. Дикторо-зависимый и дикторо-независимый режимы системы.

курсовая работа [1,1 M], добавлен 12.03.2009

Текстовый редактор — приложение для обработки текстовой информации. Описание текстовых процессоров как более совершенных текстовых редакторов. Типы текстовых файлов: форматированные, неформатированные. Основные правила редактирования и набора текста.

презентация [747,3 K], добавлен 26.11.2010

Технологическая схема системы. Структурно-функциональная модель обработки сообщений системой управления технологическим процессом. Поток сообщений в общем виде. Моделирование в среде GPSS и в среде C#, их результаты. Алгоритм имитационного моделирования.

курсовая работа [1,3 M], добавлен 14.12.2012

Разработка текстового автоответчика для программы Skype, который будет выдавать определенные данные на основе отправляемых пользователем сообщений. Особенности программного обеспечения для чатов. Схема взаимодействия пользователя и интерфейса чата.

курсовая работа [1,0 M], добавлен 08.06.2020

Краткий обзор основных теорий сжатия. Концепции идей и их реализация. Сжатие данных с использованием преобразования Барроуза-Вилера. Статический алгоритм Хафмана. Локально адаптивный алгоритм сжатия. Алгоритм Зива-Лемпеля (Welch) и метод Шеннона-Фано.

практическая работа [188,5 K], добавлен 24.04.2014

Описание назначения всех команд меню WinRar. Создание и распаковывание архивов для текстовых, графических и системных файлов. Примеры создания архивов с опциями: пароль, многотомный и самораспаковывающийся архивы. Теоретические основы сжатия файлов.

контрольная работа [2,3 M], добавлен 07.07.2013

Обзор существующих программ сжатия данных без потерь. Анализ методов сжатия: алгоритмов группы, KWE, Lossless JPEG, кодирование Хаффмана. Обзор составляющих компонентов. Разработка кода программы-архиватора, работающей на основе алгоритма Хаффмена.

курсовая работа [487,3 K], добавлен 14.07.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.

автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему: Модели и алгоритмы контекстно-словарного сжатия текстовых данных

Автореферат диссертации по теме «Модели и алгоритмы контекстно-словарного сжатия текстовых данных»

На правах рукописи

МАКСИМОВ Сергей Владимирович

МОДЕЛИ И АЛГОРИТМЫ КОНТЕКСТНО-СЛОВАРНОГО СЖАТИЯ ТЕКСТОВЫХ ДАННЫХ (применительно к системам электронного обучения)

Специальность 05.13.11 —Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Работа выполнена на кафедре информатики Уфимского государственного авиационного технического университета и кафедре программирования и вычислительной математики Башкирского государственного педагогического университета

Защита диссертации состоится 21 апреля 2006 г. в 10 часов на заседании диссертационного совета К-212.288.01 в Уфимском государственном авиационном техническом университете по адресу: 450000, г. Уфа-центр, ул. К.Маркса, 12.

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

Научный руководитель: доктор технических наук,

профессор Ю.С. Кабальнов

Официальные оппоненты: доктор физико-математических наук,

профессор В.П. Житников кандидат технических наук, старший научный сотрудник В.М. Коровин

Ведущее предприятие: Башкирская академия государственной

службы и управления при Президенте Республики Башкортостан

Автореферат разослан 16 марта 2006 г.

Ученый секретарь диссертационного совета, кандидат физико-математических наук

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

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

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

Трудности реализации структуризации текстовых данных обусловлены сложностью выделения структур и степенью взаимного влияния выделенных данных.

Для достижения указанной цели необходимо: предложить объектно-когнитивную модель контекстно-словарного сжатия; предложить древовидную логическая модель пополняемой базы элементарных единиц словообразования (морфем); разработать контекстно-словарные алгоритмы сжатия текстовых данных с использованием элементов статистического прогнозирования; разработать программное обеспечение, реализующее разработанные алгоритмы контекстно-словарного сжатия данных.

При решении поставленной задачи автор опирался на труды Д. Ватолина, А. Ратушняка, А. Смирнова, М. Смирнова, В. Юкина, И. Ножова, И.В. Павлова, A.B. Кадача, Д. Мастрюков, Д.Сэломона, Д.Е.Кнута и других ученых.

Таким образом, задача по разработке контекстно-словарного сжатия текстовых данных является весьма актуальной, а ее разрешение позволяет заметно повысить эффективность сжатия текстовых данных.

Цель и задачи исследования

Целью работы является разработка контекстно-словарного сжатия, обеспечивающего одновременно высокую гххе1Ш1Ь__сжатия текстовых данных и высокую скорость их распаковки щ иЧЙ^еЦАазш «ранении.

Для достижения цели поставлены следующие задачи:

1. Разработка контекстно-словарных моделей сжатия текстовых данных.

2. Разработка древовидной логической модели пополняемой базы элементарных единиц морфем на основе известных правил словообразования в естественных языках.

3. Разработка алгоритмов контекстно-словарного сжагия текстовых данных на основе предложенных моделей.

4. Создание программного обеспечения, реализующего разработанные алгоритмы.

5. Проверка эффективности разработанного программною обеспечения на примере организации хранения и передачи учебной информации.

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

Результаты, выносимые на защиту

На защиту выносятся:

1. Объектно-когнитивная модель контекстно-словарного сжатия.

2. Древовидная логическая модель пополняемой базы элементарных единиц словообразования (морфем).

3. Контекстно-словарные алгоритмы сжатия текстовых данных с использованием элементов статистического прогнозирования.

4. Про1раммпое обеспечение, реализующее разработанные алгоритмы контекстно-словарного сжатия данных.

В диссертации получены следующие результаты, характеризующиеся научной новизной:

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

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

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

4. Предложенный способ коррекции условных вероятностей появления символов заключается в использовании бинарного арифметического кодирования. Это позволяет обеспечить высокую степень сжатия текстовой информации в условиях возможного изменения условных вероятностей появления символов.

Разработан программный комплекс MSV Quick Reader, использующий реализованные алгоритмы сжатия. Экспериментальная проверка эффективности предложенных алгоритмов контексгно-словарного сжатия текстовых данных с помощью данного комплекса показала, что опи обеспечивают увеличение степени сжатия для текстовых данных по сравнению с известными его вариантами и как следствие, снижение трафика компьютерных сетей на 5 — 7 %. Использование программного комплекса MSV Quick Reader при электронном обучении позволяет существенно увеличить объемы хранимой в компьютере и передаваемой по компьютерным сетям учебной информации, при одних и тех же характеристиках используемых компьютеров.

Реализация и внедрение результатов работы

Программный комплекс MSV Quick Reader внедрен в Башкирском государственном педагогическом университете и в настоящее время используется на кафедре программирования и вычислительной математики. Программное обеспечение данного комплекса имеет открытую архитектуру, что позволяет развивать данный программный комплекс с помощью добавления соответствующих модулей.

Основные положения, представленные в диссертационной работе, докладывались всероссийских и международных конференциях (VI международный симпозиум Intels’2004 (г.Саратов, 2004), V международная научная техническая конференция «Проблемы Техники и Технологий Телекоммуникаций» (г.Самара, 2004); 7-й Международная конференция по проблемам информатики и информационных технологий CSIT’2005 (г.Уфа, 2005)), обсуждались и получили положительную оценку. Достоверность основных результатов работы подтверждена корректным использованием методов поиска информации в иерархических (древовидных) моделях представления данных, теории цепей Маркова,

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

Связь темы с плановыми исследованиями

Диссертационная работа выполнялась в рамках госбюджетного финансирования кафедре информатики Уфимского государственного авиационного технического университета и кафедре профаммирования и вычислительной математики Башкирского государственного педагогического университета, а также в рамках внутривузовского гранта «05.02. Информационные технологии в образовании» (БГПУ).

Публикации. Список публикаций по теме диссертации включает б научных трудов, в научных журналах, межвузовских научных сборниках и трудах международных конференций.

Структура и объем работы.

Диссертация состоит из введения, четырех глав, заключения, библиографии и 2-х приложений. Работа содержит 96 страницы машинописного текста, 46 страниц приложений и 79 наименований библиографических источников.

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

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

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

Исследования проводились в трех направлениях: повышение эффективности сжатия, убыстрение работы алгоритма и осуществление сжатия на основании новой системы контекстов.

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

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

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

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

древовидная модель словаря ссылок, упрощающая восстановление словаря, используемого для кодирования основного текста. Предложена реляционная модель словаря морфем в виде 4-х-местного кортежа И. = < Г], Г2, г3 , г4>, где г, — порядковый номер (ключ отношения), г2 — морфем, г3 -двоичный код переменной длины, г4 — частота встречаемости в словаре

На рис. 1 показан модель реализации данного способа ежа гая текстовых данных.

Заголовок файла ^ ^ морфемы

Закодированная часть Древообразная

текста модель словаря

Рис. 1 Структурпая модель представления сжатия текстовой информации

Процесс сжатия текста выглядит следующим образом:

1. построение реляционной модели словаря исключением повторов;

2. сортировка по частоте встречаемости и длине;

3. построение кода;

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

Эффективный код сжатого текста зависит от того, насколько объективно оцениваем частоту появления слов. Чем чаще появляется слово, тем короче код будет предоставлен для него. Каждому хранящему слову присваивается код в зависимости от частоты появления, это означает, что у самого часто встречаемого слова будет самый короткий код. Полученный код сохранятся в выходном файле. Сохранение кода слова в место самого слова также позволяет сократить объем закодированного текста.

Эффективный код сжатия также зависит от длины слова, сохраняемого в словаре. Максимальная длина слова может дать выигрыш в случае, если код слова, используемый для кодирования, станет длиннее длины кодируемого слова.

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

существующие ограничения, можно заметить, что при составлении слов прослеживается иерархическая структура.

Хранение словаря в виде реляционной базы является неэффективным. Она пригодна для замены контекстами кодируемого текста, но не пригодна для хранения.

Преобразование реляционного словаря в иерархическую структуру предлагается выполнить следующим образом:

1. Разложить слово на морфемы. Полученные морфемы по необходимости добавлять в словарь морфем, либо посчитывать количество совпавших морфемы для получения оптимального кода для контекста.

2. Полученные индексы морфем в порядке появления в слове присоединяют в древовидный словарь. Каждая морфема образует узел соответствующего уровня.

3. В случае совпадения морфем соответствующего уровня, осуществляется переход на следующий уровень. В случае отсутствия добавляется новая ветка.

4. После окончания обработки каждой ветке присваивается соответствующий контекст.

Рис. 2 Модель представления словаря (пример кодирования фрагмента словаря «сжатие, сжимаемое,_сжимающие,_» )

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

Предлагаемый алгоритм сжатия чисто текстовой информации основан на эмпирическом законе Ципфа: частота появления слов, отсортированных по частоте употребления, обратно пропорциональна их номерам; другими словами,

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

Рис. 2 Модель процесса сжатия текстового файла

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

Разработан алгоритм поиска совпадающих последовательностей бинарных кодов для объектов контекстно-словарного сжатия (ссылки на тезаурус, древовидная модель тезауруса, словарь морфем), который используется для формирования оптимальных последовательности сжатых бинарных кодов указанных объектов. Показано, что сложность разработанного алгоритма растет линейно относительно длины входной последовательности символов.

Показана возможность использования разработанных алгоритмов в сочетании с алгоритмами поиска на основе хеш-таблиц. Это позволяет достичь максимальной скорости поиска совпадающих последовательностей бинарных кодов для объектов контекстно-словарного сжатия.

а) Выявление структуры и построение модели

6) Построение и проведение кодирования на основе выявленных структур

в) Преобразование словаря (разбиение по составу)

Построение контекстных кодов пеоеменной длины

автор диссертации — кандидата технических наук Максимов, Сергей Владимирович

ГЛАВА 1. АНАЛИЗ МЕТОДОВ СЖАТИИ ИНФОРМАЦИИ.

1.1. Предварительные замечания.

1.2. Модели словарного сжатия.

1.3. Модели контекстного сжатия.

1.3.1. Модели с фиксированным контекстом.

1.3.2. Контекстуально-смешанные модели.

1.3.3. Вероятность ухода.

1.4. Другие методы статистического моделирования.

1.4.1. Динамическое сжатие Маркова.

1.4.2. Грамматические модели.

1.4.3. Модели новизны.

1.4.4. Выводы по первой главе.

ГЛАВА 2. КОНТЕКСТНО-СЛОВАРНЫЕ МОДЕЛИ СЖАТИЯ.

2.1. Предварительные замечания.

2.2. Сжатие текстовых файлов.

2.3. Структурная модель представления сжатия текстовой информации

2.4. Постановка задачи приведения к предложенной схеме структурированного вида.

2.5. Модель сжатия использующий контекстно-словарный метод.

2.5.1. Модель хранения сжатого текста.

2.5.2. Древовидная модель словаря.

2.5.3. Модель словаря морфем.

2.6. Выводы по второй главе.

ГЛАВА 3. АЛГОРИТМЫ КОНТЕКСТНО-СЛОВАРНОГО СЖАТИЯ ДАННЫХ НА ОСНОВЕ ПРЕДЛОЖЕННЫХ МОДЕЛЕЙ.

3.1. Предварительные замечания.

3.2. Приведение информации к структурированному виду.

3.3. Преобразование словаря.

3.3.1. Разбиение слова на слоги.

3.3.2. Разбиение на составные части слова.

3.3.3. Древовидное представление структуры словаря.

3.4. Оценка построение структуры словаря от способа разложения слов.

3.5. Кодирование текста с использованием полученного словаря.

3.5.1. Построение кодов переменной длины.


3.5.2. Применение кодирования контекстных индексов арифметического кодирования.

3.6. Оценка эффективности полученных кодов алгоритма кодирования с помощью словаря.

3.6.1. Стоимость кодирования текста.

3.6.2. Оценка объема необходимой памяти.

3.7. Управление распределением памяти.

3.8. Выводы по третьей главе.

ГЛАВА 4. ПРОГРАММНЫЙ КОМПЛЕКС КОНТЕКСТНО

СЛОВАРНОГО СЖАТИЯ ТЕКСТОВЫХ ДАННЫХ MSV QUICK READER

4.1. Основные требования к техническому облику программного комплекса MSV Quick Reader.

4.2. Область применения программного комплекса.

4.3. Проблемы существующих систем.

4.4. Задачи разработки программного комплекса.

4.5. Этапы разработки программного комплекса.

4.6. Реализация блока сжатия файлов.

4.6.1. Реализация блока Compress.

4.6.2. Реализация блока Decompress.

4.7. Сравнительная оценка эффективности.

4.7.1. Тестовые данные.

4.7.2. Методика сравнения.

4.7.3. Результаты сравнения.

4.8. Пример преобразования и кодирования слов.

4.9. Выводы по четвертой главе.

Введение 2006 год, диссертация по информатике, вычислительной технике и управлению, Максимов, Сергей Владимирович

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

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

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

— затрачивается время на определение структуры, выявление правил и т.д.

— необходимо следить за целостностью данных в течение всего времени обработки.

В данном случае затрачивается время на определение начальной структуры и определение дальнейших правил ее изменения. Поэтому необходимо добавлять механизмы, которые выявляли бы корректность данных для построенных структур через определенный момент времени в случае. Если количество ошибок на выходе увеличивается, то построенную модель обновляют.

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

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

Предварительное структурирование передаваемых данных извлекает из информации необходимую часть и позволяет заменять повторяющиеся части контекстом, если это необходимо. Структурированную информацию легче кодировать. Замена структуры ссылками позволяет:

— выносить за пределы сжимаемого файла часто встречаемые данные, включая их в комплект программного обеспечения;

— исключает повторную упаковку встречаемого объекта;

— сокращает затраты на преобразование сжимаемого объекта.

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

Приведение к структурированному виду позволяет улучшить параметры сжатия по сравнению со сжатием неструктурированных данных, что приводит к следующему:

1) увеличивается скорость обработки данных, которая идет уже по полученному шаблону и не требует дополнительных вычислений;

2) исключается необходимость многократного сохранения всего шаблона в выходном файле, так как модель шаблона сохраняется на начальном этапе, либо уже содержится в комплекте программного обеспечения;

3) данные быстрее восстанавливаются;

4) модель сохраняется на начальном этапе, то соответственно в выходной файл отправляются только подвергающиеся изменению данные;

5) уменьшается объем передаваемой информации и увеличивается скорость передачи данных.

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

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

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

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

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

Трудности реализации структуризации текстовых данных обусловлены сложностью выделения структур и степенью взаимного влияния выделенных данных.

Для достижения указанной цели необходимо: предложить объектно-когнитивную модель контекстно-словарного сжатия; предложить древовидную логическая модель пополняемой базы элементарных единиц словообразования (морфем); разработать контекстно-словарные алгоритмы сжатия текстовых данных с использованием элементов статистического прогнозирования; разработать программное обеспечение, реализующее разработанные алгоритмы контекстно-словарного сжатия данных.

При решении поставленной задачи автор опирался на труды Д. Ватолина, А. Ратушняка, А. Смирнова, М. Смирнова, В. Юкина, И. Ножова,

И.В. Павлова, А.В. Кадача, Д. Мастрюков, Д.Сэломона, Д.Е.Кнута и других ученых.

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

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

Илон Маск рекомендует:  Техника оптимизации программ (фрагмент) 23

Таким образом, задача по разработке контекстно-словарного сжатия текстовых данных является весьма актуальной, а ее разрешение позволяет заметно повысить эффективность сжатия текстовых данных.

Цель диссертационной работы

Целью работы является разработка метода контекстно-словарного сжатия, обеспечивающего одновременно высокую степень сжатия текстовых данных и высокую скорость их распаковки при передаче и хранении.

Для достижения цели поставлены следующие задачи:

1. Разработка контекстно-словарных моделей сжимающих текстовые данные.

2. Разработка древовидной логической модели пополняемой базы элементарных единиц словообразования (морфем) на основе известных правил словообразования в естественных языках.

3. Разработка алгоритмов контекстно-словарного сжатия текстовых данных на основе предложенных моделей.

4. Создание программного обеспечения, реализующего разработанные алгоритмы.

5. Проверка эффективности разработанного программного обеспечения на примере организации хранения и передачи учебной информации.

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

На защиту выносятся:

1. Объектно-когнитивная модель контекстно-словарного сжатия.

2. Древовидная логическая модель пополняемой базы элементарных единиц словообразования (морфем).

3. Контекстно-словарные алгоритмы сжатия текстовых данных с использованием элементов статистического прогнозирования.

4. Программное обеспечение, реализующее разработанные алгоритмы контекстно-словарного сжатия данных.

Научная новизна работы заключается в следующем:

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

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

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

4. Новизна предложенного способа коррекции условных вероятностей появления символов заключается в использовании бинарного арифметического кодирования. Это позволяет обеспечить высокую степень сжатия текстовой информации в условиях возможного изменения условных вероятностей появления символов.

Практическая значимость работы:

1. Разработан программный комплекс MSV Quick Reader, использующий реализованные алгоритмы сжатия. Экспериментальная проверка эффективности предложенных алгоритмов контекстно-словарного сжатия текстовых данных с помощью данного комплекса показала, что они обеспечивают увеличение степени сжатия для текстовых данных по сравнению с известными его вариантами и как следствие, снижение трафика компьютерных сетей на 5 — 7 %.

2. Использование программного комплекса MSV Quick Reader при электронном обучении позволяет существенно увеличить объемы хранимой в компьютере и передаваемой по компьютерным сетям учебной информации, при зодних и тех же характеристиках используемых компьютеров.

3. Программный комплекс MSV Quick Reader внедрен в Башкирском государственном педагогическом университете и в настоящее время используется на кафедре программирования и вычислительной математики. Программное обеспечение данного комплекса имеет открытую архитектуру, что позволяет развивать данный программный комплекс с помощью добавления соответствующих модулей.

Связь темы с плановыми исследованиями

Диссертационная работа выполнялась в рамках госбюджетного финансирования кафедре информатики Уфимского государственного авиационного технического университета и кафедре программирования и вычислительной математики Башкирского государственного педагогического университета, а также в рамках внутривузовского гранта «05.02. Информационные технологии в образовании» (БГПУ).

Объем и структура работы

Диссертация состоит из введения, четырех глав, заключения, библиографии и 2 приложения. Работа содержит 96 страницы машинописного текста, 46 страниц приложения и 79 наименований библиографических источников.

Заключение диссертация на тему «Модели и алгоритмы контекстно-словарного сжатия текстовых данных»

4.9. Выводы по четвертой главе

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

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

В данной диссертации решались задачи исследования и разработки подходов эффективного сжатия текстовых данных и алгоритмов их реализации:

1) В рамках работы был произведен анализ существующих подходов сжатия данных.

2) Разработан новый алгоритм сжатия на основе контекстно-словарных моделей ориентированных на сжатие текстовых данных, где особое внимание уделено на правила словообразования, как естественных языках, так и искусственных.

3) В ходе проведения эксперимента разработан программный комплекс для поддержки интерактивных систем электронного обучения.

4) Экспериментальная проверка эффективности предложенных алгоритмов контекстно-словарного сжатия текстовых данных с помощью данного комплекса показала, что они обеспечивают увеличение степени сжатия для текстовых данных по сравнению с известными его вариантами и как следствие, снижение трафика компьютерных сетей на 5 — 7 %. Решает следующие задачи:

— систематизацию текстовых данных;

— хранение учебной информации;

— передачу учебной информации по линиям связи;

— передачу учебной информации по линии связи конечного пользователя (обучающегося).

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

Библиография Максимов, Сергей Владимирович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Ватолин Д., Ратушняк А., Смирнов А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. М:. ДИАЛОГ — МИФИ, 2002. — 384 с.

2. ДСэломон. Сжатие данных, изображений и звука. М:. Техносфера, 2004. -368 с.

3. Вадим Юкин. Операция BWT, или новые методы сжатия. // Hard&Soflt. -2001 -№4-С.80-85.

4. Игорь Ножов. Синтаксический анализ // «Компьютерра» 2002. — №21

5. Кнут Д.Е. Искусство программирования. Т. 1. Основные алгоритмы. 3-е изд. — М.: Вилиямс, 2000. — 720 с.

6. Кнут Д.Е. Искусство программирования. Т.З: Сортировка и поиск. 2-е изд. — М.: Вилиямс, 2000. — 822с.

7. Кабальнов Ю.С., Максимов С.В., Павлов И.В. Сжатие информации с использованием статистических прогнозирующих моделей. // Ежегодной международной конференция «Проблемы Техники и Технологий Телекоммуникаций» г. Самара, 2004

8. Кабальнов Ю.С. Максимов С.В. Сжатие текстовых данных с учетом особенностей словообразования в русском языке. // Ученые записки: Сб. Науч. Статей: вып.7 Уфа: БГПУ 2005. с.238-241

9. Кабальнов Ю.С., Микова, Максимов С.В. Интеллектуальные алгоритмы организационной поддержки практического цикла обучения. // Интеллектуальные системы: Труды шестого международного симпозиума: Под ред. К.А.Пупкова. М.:РУСАКИ, 2004. С458-460.

10. Кадач А.В. Эффективные алгоритмы неискажающего сжатия текстовой информации. Диссертация. — Новосибирск, 1997.

11. Лекции по структуральной поэтике// Ю. М. Лотман и тартуско-московская семиотическая школа. М., 1994. С. 11-246.

12. Максимов С.В. Древовидная модель словаря представления слов. // ЭВТ в обучении и моделировании: Сб. научн. тр.: в 2-х ч. Бирск: 2005. С.

13. Мастрюков Д. Алгоритмы сжатия информации. Часть 1. Сжатие по Хаффмену // Монитор.— 1993. — N 7-8. — С. 14-24.

14. Мастрюков Д. Алгоритмы сжатия информации. Часть 2. Арифметическое кодирование // Монитор.— 1994. —N 1. — С. 20-27.

15. Мастрюков Д. Алгоритмы сжатия информации. Часть 3. Алгоритмы группы LZ // Монитор.— 1994. — N 2. — С. 10-19.

16. М.Вернер. Основы кодирования. Учебник для ВУЗов. М:. Техносфера, 2004.-288 с.

17. Налимов В.В. Вероятностная модель языка. О соотношении естественных и искусственных языков. М., «Наука», 1974, 272 с.

18. И.В. Павлов. Модифицированный алгоритм лемпела — зива эффективного сжатия информации с использованием статистических прогнозирующих моделей. Диссертация. — Уфа, 2001.

19. Потапов В.Н. Теория информации. Кодирование дискретных вероятностных источников. Учебное пособие.—Новосибирск, 1999.-71 с.

20. М А. Смирнов. (1999) PPMN РРМ-компресор. hllpy/www.rarr^i^ion.ru/ms/

21. Шеннон К. Работы по теории информации и кибернетике. М.: Издательство иностранной литературы, 1963. — 829 с.

22. Шанский Н.М. Русский язык. Лексика. Словообразование. Пособие для учителя. М., «Просвещение», 1975. -239 с.

23. Angluin D. and Smith C.H. 1983. Inductive inference: Theory and methods. Comput.Surv. 15, 3(Sept.), 237-269.

24. Auslander M., Harrison W., Miller V., and Wegman M. 1985. PCTERM: A terminal emulator using compression. In Proceedings of the IEEE Globecom’85. IEEE Press, pp.860-862.

25. Baum L.E., Petrie Т., Soules G. and Weiss N. 1970. A maximization technique occuring in the statistical analysis of probabilistic functions of Markov chains. Ann. Math. Stat.41, pp.164-171.

26. Bell T.C. and Moffat A.M. 1989. A note on the DMC data compression scheme. Computer J. 32, l(Feb.), pp. 16-20.

27. Bell T.C. 1987. A unifying theory and improvements for existing approaches to text compression. Ph.D. dissertation, Dept. of Computer Science, Univ. of Canterbury, New Zealand.

28. Bell T.C. and Witten I.H. 1987. Greedy macro text compression. Res. Rept.87/285/33. Department of Computers Science, University of Calgary

29. Bell T.C. and Moffat A.M. 1989. A note on the DMC data compression scheme. Computer J. 32,1 (Feb.), 16-20.

30. Bentley J.L., Sleator D.D., Tarjan R.E. and Wei V.K. 1986. A locally adaptive data compression scheme. Commun. 29, 4(Apr.), 320-330.

31. Cameron R.D. 1986. Source encoding using syntactic information source model. LCCR Tech. Rept. 86-7, Simon Fraser University.

32. Cleary J.G. 1980. An associative and impressible computer. Ph.D. dissertation. Univ. of Canterbury, Christchurch, New Zealand.

33. Cleary J.G. and Witten I.H. 1984b. Data compression using adaptive coding and partial string matching. IEEE Trans. Commun. COM-32, 4(Apr.), pp.396402.

34. Cormack G.V. and Horspool R.N. 1984. Algorithms for adaptive Huffman codes. Inf.Process.Lett. 18, 3(Mar.), 159-166.

35. Cormack G.V. and Horspool R.N. 1987. Data compression using dynamic Markov modelling. Comput. J. 30,6(Dec.), 541-550

36. Cover T.M. and King R.C. 1978. A convergent dambling estimate of the entropy of English. IEEE Trans. Inf. Theory IT-24, 4(Jul.), pp.413-421.

37. Elias P. 1987. Interval and recency rank source coding: Two on-line adaptive variable-length schemes. IEEE Trans. Inf. Theory IT-33, l(Jan.), pp.3-10.

38. Elias P. 1975. Universal codeword sets and representations of the integers. IEEE Trans. Inf. Theory IT-21, 2(Mar.), pp. 194-203.

39. El Gamal A.A., Hemachandra L.A., Shperling I. and Wei V.K. 1987. Using simulated annealing to design good codes. IEEE Trans. Inf. Theory, IT-33, 1, pp.116-123.

40. Faller N. 1973. An adaptive system for data compression. Record of the 7th Asilomar Conference on Circuits, Systems and Computers. Naval Postgraduate School, Monterey, CA, pp.593-597.

41. Gallager R.G. 1978. Variations on a theme by Huffman. IEEE Trans.Inf.Theory IT-24, 6(Nov.), pp.668-674.

42. Gold E.M. 1978. On the complexity of automation identification from given data. Inf.Control 37, 302-320.

43. Gonzalez-Smith M.E. and Storer J.A. 1985. Parralel algorithms for data compression. J.ACM 32, 2, pp.344-373.

44. G. & C. Merriam Company 1963. Webster’s Seventh New Collegiate Dictionary. Springfield, MA.

45. Horspool R.N. and Cormack G.V. 1986. Dynamic Markov modelling A prediction technique. In Proceedings of the International Conference on the System Sciences, Honolulu, HI, pp.700-707.

46. Horspool R.N. and Cormack G.V. (1983). Data compression based on token recognition. Unbublished.

47. Huffman D.A. 1952. A method for the construction of minimum redundancy codes. In Proceedings of the Institute of Electrical and Radio Engineers 40, 9(Sept.), pp. 1098-1101.

48. Huffman D.A. 1952. A method for the construction of minimum redundancy codes. In Proceedings of the Institute of Electrical and Radio Engineers 40, 9(Sept.), pp. 1098-1101.

49. Hunter R. and Robinson A.H. 1980. International digital facsimile coding standarts. In Proceedings of the Institute of Electrical and Electronic Engineers 68, 7(Jul.), pp.854-867.

50. Jagger D. 1989. Fast Ziv-Lempel decoding using RISC architecture. Res. Rept., Dept. of Computer Science, Univ. of Canterbury, New Zealand.

51. Jones D.W. 1988. Application of splay trees to data compression. Commun. ACM 31, 8(Aug.), pp.996-1007.

52. Katajainen J., Renttonen M. and Teuhola J. 1986. Syntax-directed compression of program files. Software-Practice and Experience 16, 3, 269276.


53. Knuth D.E. 1985. Dynamic Huffman coding. J. Algorithms 6, pp. 163-180.

54. Langdon G.G. and Rissanen J J. 1981. Compression of black-white images with arithmetic coding. IEEE Trans.Commun.COM-29, 6(Jun.), pp.858-867.

55. Langdon G.G. and Rissanen J.J. 1982. A simple general binary source code. IEEE Trans. Inf. Theory IT-28 (Sept.), pp.800-803.

56. Levinson S.E., Rabiner L.R. and Sondni M. 1983. An introduction to the application of the theory of probabilistic function of a Markov process to automatic speech recognition. Bell Syst. Tech. J. 62, 4(Apr.), pp.1035-1074.

57. Lelewer D.A. and Hirschberg D.S. 1987. Data compression. Comput. Surv. 13, 3(Sept.), pp.261-296.

58. Lempel A. and Ziv J. 1976. On the complexity of finite sequences. IEEE Trans. Inf. Theory IT-22,1 (Jan.),75-81.

59. Moffat A. 1987. Word based text compression. Res. Rept., Dept. of Computer Science, Univ. of Melbourne, Victoria, Australia.

60. Moffat A. 1988a. A data structure for arithmetic encoding on large alphabets. In Proceeding of the 11th Australian Computer Science Conference. Brisbane, Australia (Feb.), pp.309-317.

61. Moffat A. 1988b. A note on the PPM data compression algorithm. Res.Rept.88/7, Dept. of Computer Science, Univ. of Melbourne, Victoria, Australia.

62. Ozeki K. 1974a. Optimal encoding of linguistic information. Systems, Computers, Controls 5, 3, 96-103. Translated from Denshi Tsushin Gakkai Ronbunshi, Vol.57-D, N0.6, June 1974, pp.361-368.

63. Ozeki К. 1974b. Stochastic context-free grammar and Markov chain. Systems, Computers, Controls 5, 3, 104-110. Translated from Denshi Tsushin Gakkai Ronbunshi, Vol.57-D, No.6, June 1974, pp.369-375.

64. Rabiner L.R. and Juang B.H. 1986. An Introduction to Hidden Markov models. IEEE ASSP Mag. (Jan.).

65. Rissanen J.J. 1983. A universal data compression system. IEEE Trans. Inf. Theory IT-29, 5(Sept.), pp.656-664.

66. Rissanen J.J. and Langdon G.G. 1981. Universal modeling and coding. IEEE Trans. Inf. Theory IT-27, l(Jan.), pp. 12-23.

67. Roberts M.G. 1982. Local order estimating Markovian analysis for noiseless source coding and authorship identification. Ph. D. dissertation. Stanford Univ.

68. Ryabko B.Y. 1980. Data compression by means of a «book stack». Problemy Peredachi Informatsii 16, 4.

69. Schwartz E.S. A dictionary for minimum redundancy encoding // J. ACM. -1963. Vol. 10, № 4. — P. 413-439.

70. Vitter J.S. 1987. Design and analysis of dynamic Huffman codes. J.ACM 34, 4(Oct.), 825-845.

71. Williams R. 1988. Dynamics-history predictive compression. Inf.Syst. 13, 1, pp. 129-140

72. Witten I.H. and Cleary J. 1983. Picture coding and transmission using adaptive modelling of quad trees. In Proceeding of the International Elecrical, Electronics conference 1, Toronto, ON, pp.222-225.

73. Witten I.H., Neal R. and Cleary J.G. 1987. Arithmetic coding for data compression. Commun.ACM 30, 6(Jun.), 520-540.

74. Ziv J. Lempel A. A universal algorithm for sequential data compression // IEEE Trans. Inform. Theory. — 1977. — Vol. 23, N 3. — P. 337-343.

75. Ziv J. Lempel A. Compression of individuals sequences via variable-rate coding // IEEE Trans. Inform. Theory. — 1978. — Vol. 24, N 5. — P. 530536.

Моделирование при сжатии текстовых данных контекстуально смешанные модели

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

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

Можно выделить следующие основные свойства и фундаментальные качества естественного языка [3]:

– принципиальная нечеткость значения языковых выражений;

– динамичность языковой системы;

– образность номинации, основанная на метафоричности;

– семантическая мощь словаря, позволяющая выражать любую информацию с помощью конечного инвентаря элементов;

– гибкость в передаче эксплицитной и имплицитной информации;

– разнообразие функций, включающее коммуникативную, когнитивную, планирующую, управляющую, обучающую, эстетическую и другие;

– специфическая системность и разделение языка на уровни и подсистемы.

Текст является одним из наиболее четких и значимых выражений естественного языка, поэтому на основании перечисленных свойств и качеств языка можно определить основные теоретические положения, опираясь на которые можно строить системы анализа и обработки текстовых структур. К таким основам относятся системное и потоковое представление текстов, теория сжатия и теория нечеткости.

Системное представление текстовых структур

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

Рис. 1. Иерархическое представление текста

Иерархическая модель может отражать разные параметры текстовой структуры. Одно из представлений – выделение уровней букв, слов и предложений [6]. Структура целого текста определяет не только связи между предложениями, но и связи между словами, а также в некоторой степени связи между элементами слова (буквами и слогами).

Аналогично в [9] построена система смыслового содержания текста. Нижним уровнем также является уровень знаков (буквы, цифры и т.п.), следующий уровень – уровень отдельных слов без учета их значимости в тексте, третий уровень – уровень терминов и последний – уровень понятий и онтологий. В структурно-иерархической словарной модели текста все уровни представляют собой значимые структуры. В иерархической системе смыслового содержания нижние уровни имеют гораздо меньшее значение и используются в основном как вспомогательные элементы для составления объектов более высокого уровня.

При такой модели элементы высшего уровня могут содержать тематически связанные слова и термины, прямо не встречающиеся в текстах или содержащиеся не во всех рассматриваемых текстах, относящихся к данной содержательной области. Именно уровень понятий позволяет решать вопросы, связанные с синонимией и полисемией терминов в текстах. Например, предложена плекс-грамматика [4], позволяющая уменьшить неоднозначность семантических моделей высказываний. С учетом контекстов употребления выражений использование лингвистических отнологий позволяет извлекать сущности и тематические цепочки при рассмотрении разного рода текстов [1].

Потоковое представление текстовых структур

Потоковое представление текстовых данных широко распространено при описании и анализе динамически изменяющихся массивов текстов в Интернете. Текстовые потоки – коллекции документов или сообщений, которые постоянно генерируются и распространяются. Подход, основанный на потоковом принципе представления текстовых данных (stream-based), может быть использован и при анализе больших текстовых объектов, таких как художественные тексты или научные публикации. Весь текст представляют как непрерывный поток текстовой информации, среди которых могут быть выделены его отдельные структурные элементы.

Текст X можно рассматривать как последовательность (поток) из n элементов x1, x2, . xn некоторого алфавита Q, при этом длина текстовой строки (текста) [7]. Элементом текста xn может быть как одиночный текстовый символ, так и слово, грамматический класс, любая группировка или подстрока символов текста. Схематично потоковое представление текстов изображено на рис. 2.

Рис. 2. Потоковое представление текста для разных элементов

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

Теория сжатия и Колмогоровская сложность

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

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

– избыточность языка и текста.

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

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

Как правило, соседние или близко расположенные элементы изображения близки по цвету и интенсивности, а следующие друг за другом кадры отличаются только некоторыми элементами. Текстовые объекты также необходимо рассматривать с позиций контекстного моделирования (context modeling): с одной стороны, любой текст представляет собой поток данных, с другой – для текстов на естественном языке появление любого элемента во многом зависит от предшествующих элементов.

Основу возможности применения алгоритмов сжатия для оценки близости двух объектов составляет понятие Колмогоровской сложности, которую также иногда называют описательной сложностью. Формальное определение Колмогоровской сложности задается следующим образом: сложностью строки x является длина минимальной бинарной программы, выводящей строку x. Колмогоровская сложность x при заданном y – это длина наикратчайшей бинарной программы, которая, получая на вход y, выводит x (это обозначается ). Колмогоровская сложность x как длина наикратчайшей бинарной программы без входных данных, выводящая x, обозначается , где λ – отсутствие данных на входе. Данная величина является невычислимой, но ее можно аппроксимировать как длину максимально сжатой версии входной строки [2].

В работе [10] была показана необходимость модификации введенного в [8] нормализованного расстояния сжатия текстов при рассмотрении текстов разной длины. Предложенная модификация позволяет учесть различный объем рассматриваемых текстов; действительно, в случае, когда один из рассматриваемых текстов существенно меньше другого, то он привносит в обобщенный объект существенно меньше информации. Поэтому производится предварительное разделение больших объектов на отдельные части в зависимости от длины наименьшего рассматриваемого текста.

Теория нечеткости

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

Принцип нечеткости позволяет учесть сразу два важных момента, которые возникают в задачах анализа текстов, как, впрочем, и при решении многих других проблем:

● естественная неоднозначность при рассмотрении текстовых объектов;

● принципиальная невозможность учесть все возможные факторы и параметры.

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

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

Неопределенность модели может быть также связана с самим моделируемым объектом – нечеткость в определении (измерении). Неопределенность-случайность отражает распределение объектов по каким-то параметрам, выраженное количественно, отражает случайные воздействия внешних факторов на рассматриваемый объект.

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

Использование нечеткого отношения как бинарной функции, определяющей степень выполнения отношения для каждой пары объектов, позволяет формализовать многие реальные явления и задачи при обработке и анализе текстов. Если рассматривать некоторое множество текстов, то для каждой пары может быть вычислена степень близости, например, на основе понятия Колмогоровской сложности и определения степени сжатия объединенных объектов. Тогда полученную матрицу расстояний можно рассматривать как нечеткое бинарное отношение, заданное на множестве текстовых объектов. На рис. 3 приведен фрагмент таблицы, построенной для художественных текстов русских авторов, элементы которой могут быть интерпретированы как значения нечеткого отношения близости объектов. В работе [5] рассмотрена задача нечеткого разделения пользователей социального сообщества в сети Интернет путем выявления характерных признаков оставленных ими сообщений.

Рис. 3. Пример матрицы близости текстовых объектов

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

Рецензенты:

Баландин Д.В., д.ф.-м.н., профессор, заведующий кафедрой численного и функционального анализа, Нижегородский государственный университет им. Н.И. Лобачевского, г. Нижний Новгород;

Федосенко Ю.С., д.т.н., профессор, заведующий кафедрой «Информатика, системы управления и телекоммуникаций», Волжский государственный университет водного транспорта, г. Нижний Новгород.

«Обработка больших объемов графической информации методом статистического кодирования и контекстного моделирования . »

Федеральное государственное автономное образовательное учреждение

высшего образования «Национальный исследовательский Нижегородский

государственный университет им. Н.И. Лобачевского»

На правах рукописи

Борусяк Александр Владимирович

Обработка больших объемов графической информации методом

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

05.01.01 Инженерная геометрия и компьютерная графика

на соискание ученой степени кандидата

Научный руководитель:

доктор технических наук профессор Ю.Г. Васин Нижний Новгород Оглавление ВВЕДЕНИЕ

Глава 1. Методы, алгоритмы и форматы представления для сжатия данных

1.1 Статистические методы сжатия

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

1.3 Контекстное моделирование

1.4 Методы с преобразованием

1.5 Рекурсивный (волновой) алгоритм

1.6 Фрактальный алгоритм

1.7 Алгоритм JPEG

1.8 Иерархический метод адаптивного сжатия

1.9 Форматы сжатия изображений

Выводы по первой главе

Глава 2. Развитие и разработка моделей и методов контекстного моделирования для эффективного сжатия черно-белых изображений.

2.1 Бинарные изображения

2.2 Алгоритм Probability Coder To Black-white (PCTB) сжатия бинарных изображений на базе контекстного моделирования и статистического кодирования

2.3 Модификации алгоритма PCTB

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

2.5 Зависимость основных параметров сжатия от величины контекста. 40

2.6 Экспериментальные апробации алгоритма PCTB

2.7 Развитие и поиск структуры представления контекстных моделей в оперативной памяти …………………………………………………………………45

2.8 Развитие структуры AVL-дерева для хранения и поиска контекстных моделей

Выводы по второй главе

Глава 3. Модели и методы контекстного моделирования для эффективного сжатия индексированных и полноцветных изображений.

3.1 Индексированные изображения

3.2 Контекстное моделирование для сжатия индексированных растровых изображений

3.3 Методы в предлагаемом алгоритме IPC

3.4 Реализация возможности сжатия файлов с большим диапазоном значений

3.5 Распараллеливание алгоритма IPC

3.6 Результаты тестирования алгоритма IPC

3.7 Полноцветные изображения

3.8 Эксперименты с большеформатными файлами

Выводы по третьей главе

Глава 4. Программный комплекс сжатия растровых изображений.

4.1 Описание программного комплекса

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

4.4 Общий алгоритм кодирования

4.5 Алгоритм попытки кодирования пикселя

4.6 Особенности реализации

4.7 Алгоритм декодирования

Выводы по четвертой главе

СПИСОК ЛИТЕРАТУРЫ

Приложение А……………………………………………………………………97 ВВЕДЕНИЕ Актуальность работы.

Актуальность интегрированных решений проблем обработки разнородной тематической графической информации (ГИ) обусловлена возрастающим потоком значительных объемов данных о дистанционном зондировании Земли (ДЗЗ), поступающих с космических аппаратов (спутников), аэрофотосъемки и других источников, требующих одновременной обработки для решения различных задач.

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

В настоящее время разработано большое количество универсальных и специализированных алгоритмов сжатия. Значительный вклад в развитие методов адаптивного сжатия внесли работы российских ученых А.С.Лебедева, Н.Н.Красильникова, Ю.М.Штарькова, В.А.Виттиха, Ю.Г.Васина, С.В.Жерздева, В.В.Александрова, В.В.Сергеева и других, а также зарубежных ученых Дж.О.Лимба (J.O.Limb), У.Претта (W.K.Pratt), Р.Грэхема (R.Graham), М.Кунта (M.Kunt) и других.

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

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

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

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

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

1. Разработка и исследование методов и алгоритмов адаптивного сжатия без потерь (lossless) широкого спектра растровых бинарных, полутоновых, индексированных, полноцветных и текстовых изображений.

2. Разработка графических моделей описания и структур представления для хранения и эффективного поиска контекстных моделей разного порядка.

3. Разработка и создание универсального интегрированного ПО, реализующего разработанные алгоритмы, структуры и методы адаптивного сжатия.

4. Экспериментальные исследования разработанных методов и алгоритмов с целью анализа эффективности разработанных методов и алгоритмов адаптивного сжатия большеформатных растровых изображения.

Научная новизна состоит в следующем:

1. Разработан алгоритм сжатия без потерь бинарных растровых изображений с использованием контекстного моделирования и статистического кодирования.

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

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

3. Разработан алгоритм сжатия без потерь полноцветных растровых изображений с использованием контекстного моделирования и статистического кодирования. Алгоритм отличается введением контекста определенной формы с учетом взаимосвязей между пикселями как по горизонтали, так и по вертикали, а также между цветовыми каналами. Алгоритм отличается разработанными методом ухода на КМеП, способами вычисления КМП и КмеП, а также высоким коэффициентом сжатия (Ксж).

4. Разработаны графические модели описания и структуры представления двумерных контекстных моделей (ДКМ) разных порядков, а также способы их формирования, позволяющие учитывать взаимосвязь между отсчетами, включая межканальные корреляционные связи RGB, организовать эффективное хранение, поиск и обработку формируемых ДКМ.

5. Получены результаты экспериментальных исследований разработанных методов и алгоритмов, подтвердивших их эффективность.

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

Практическая ценность. В основу диссертационной работы положены результаты, полученные автором в ходе научно-исследовательских работ, проводимых по плану Госзадания Минобрнауки №2084 в НИИПМК ННГУ и центре информатики и интеллектуальных информационных технологий ИИТММ ННГУ, а также в рамках ОКР “Модернизация” с ООО “Транзас”.

Работа выполнена при финансовой поддержке РФФИ (Проекты №. 13-07-00521-А, №. 13-07-12211, № 16-07-01214, №11-07-12049 ОФИ-М, №13-07-97036), а также при финансовой поддержке РНФ проект №16-11-00068.

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

Результаты диссертационной работы внедрены в ЦКП 280 главного управления океанографии и навигации Министерства обороны РФ в составе программно-аппаратного комплекса «Векторизация ПГС» при создании мировой коллекции электронных планшетов гидрографической съемки морского дна, внедрены в центре информатики и интеллектуальных информационных технологий ИИТММ ННГУ им. Н.И. Лобачевского при обработке большеформатных навигационных документов (топографические и морские навигационные карты, поэтажные планы зданий и сооружений) в системе ГИС «Терра», в учебном процессе института информационных технологий, математики и механики ННГУ им. Лобачевского.

Апробация полученных результатов. Результаты диссертационной работы докладывались и обсуждались в рамках следующих конференций: на 8-м Открытом российско-немецком семинаре «Распознавание образов и понимание изображений» (Россия, г. Нижний Новгород, 2011 г.); на 9-м Открытом российсконемецком семинаре «Распознавание образов и понимание изображений»


(Германия, г. Кобленц, г.); на 11 международной конференции «Распознавание образов и анализ изображений: новые информационные технологии» (Россия, Самара, 2013); на Международной Конференции и молодежной школе «Информационные технологии и нанотехнологии» (Россия, Самара, 2015); на 26-ой Международной конференции и школе-семинаре по компьютерной графике, обработке изображений и машинному зрению, системам визуализации и виртуального окружения Графикон 2020 (Россия, Нижний Новгород, 2020).

Основные положения, выносимые на защиту:

1. Алгоритм сжатия бинарных растровых изображений с использованием контекстного моделирования и статистического кодирования.

2. Алгоритм сжатия индексированных растровых изображений с использованием контекстного моделирования и статистического кодирования.

3. Алгоритм сжатия полноцветных растровых изображений с использованием контекстного моделирования и статистического кодирования.

4. Графические модели описания и структуры представления двумерных контекстных моделей (ДКМ) разных порядков, а также способы их формирования, позволяющие учитывать взаимосвязь между отсчетами, а также межканальные корреляционные связи RGB, организовать эффективное хранение, поиск и обработку формируемых ДКМ.

5. Результаты экспериментальных исследований разработанных методов.

Публикации. Основные результаты исследований опубликованы в 8 научных работах, 3 из которых опубликованы в изданиях, рекомендованных ВАК Минобрнауки России. Получено 2 свидетельства о регистрации электронного ресурса на разработанное программное обеспечение.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы. Общий объем текста диссертации – 99 страниц, включая 23 рисунка и 23 таблицы, библиографический список из 114 наименований, приложение.

Глава 1. Методы, алгоритмы и форматы представления для сжатия данных В данной главе представлен обзор основных методов, используемых для сжатия различных типов данных.

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

1.1 Статистические методы сжатия

Статистические методы компрессии используют статистические свойства сжимаемых данных и присваивают всем символам коды с переменной длиной в зависимости от частоты появления символа во входном потоке данных. Основным примером статистических алгоритмов сжатия является известный алгоритм Хаффмана, который основывается на предположении, что разные символы встречаются в тексте с разной вероятностью, и присваивает символам с большей вероятностью коды наименьшей длины. Алгоритм Хаффмана имеет большое значение в теории алгоритмов сжатия и используется во многих программах сжатия данных [73,86].

Сжатие по методу Хаффмана постепенно вытесняется арифметическим сжатием. При арифметическом кодировании данные представляется вещественными числами в интервале от 0 до 1. По мере кодирования информации, отображающий её интервал уменьшается, а количество битов для её представления возрастает. Очередные элементы данных сокращают величину интервала исходя из значений их вероятностей, определяемых моделью. Более вероятные элементы данных делают это в меньшей степени, чем менее вероятные, и, следовательно, добавляют меньше битов к результату.

Арифметическое кодирование имеет огромное значение в области сжатия данных, поскольку именно его модификации чаще всего используют для непосредственно кодирования. Существуют различные модификации алгоритма арифметического кодера, такие как алгоритм интервального кодирования. Такие модификации чаще всего позволяют увеличить скорость кодирования за счет незначительного снижения коэффициента сжатия [73, 87, 95, 96]. Чаще всего алгоритм Хаффмана и алгоритм арифметического кодирования используются совместно с другими алгоритмами для непосредственного кодирования вероятностей.

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

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

LZ77 и LZ78 – алгоритмы сжатия без потерь, опубликованные в статьях Абрахама Лемпеля и Якоба Зива в 1977 и 1978 годах. Эти алгоритмы – самые известные варианты в семье LZ*, которая также включает LZW, LZSS, LZMA и другие алгоритмы. Оба алгоритма – алгоритмы со словарным подходом [65, 83].

LZ77 использует уже просмотренную часть сообщения как словарь. Алгоритм LZ77 использует «скользящее окно», которое эквивалентно неявному использованию словарного подхода, сначала предложенного в LZ78. «Скользящее окно» разделено на две неравных части. Первая часть, большая по размеру, включает уже просмотренную часть сообщения. Вторая, намного меньшая, – буфер, содержащий еще не закодированные символы. Как правило, размер окна – несколько килобайт. Буфер намного меньше, обычно не больше, чем сто байт.

Алгоритм пытается найти фрагмент в словаре, который совпадает с содержанием буфера и закодировать указатель на этот фрагмент.

Словарные методы хорошо себя зарекомендовали при сжатии текстов и в качестве алгоритмов, используемых в универсальных архиваторах, таких как 7z и WinRar.

1.3 Контекстное моделирование

Основной идей контекстного моделирования является то, что соседние элементы в потоке данных чаще всего имеют между собой определенную взаимосвязь. Улучшение сжатия при учете предыдущих элементов отмечается при обработке большинства распространенных типов данных: текстовых данных, объектных файлов, изображений, аудиозаписей, таблиц [73,82,108]. Техника контекстного моделирования Prediction by Partial Matching (PPM) (предсказание по частичному совпадению), предложенная в 1984 г. Клири (Cleary) и Уиттеном (Witten), является одним из самых известных подходов к сжатию данных и является самым популярным среди контекстных методов. Значимость подхода обусловлена и тем фактом, что алгоритмы, причисляемые к РРМ, неизменно обеспечивают в среднем наилучшее сжатие при кодировании данных различных типов и служат стандартом, «точкой отсчета» при сравнении универсальных алгоритмов сжатия.

PPM относится к адаптивным методам моделирования.

Под контекстным моделированием понимается оценка вероятности P(s|C(R)) появления символа (пикселя, либо другого минимального элемента данных) s. Под контекстом C(R) порядка R подразумевается определенный набор из уже закодированных символов, которые предшествуют текущему кодируемому символу, где порядок R является величиной контекста. Под порядком контекстной модели (КМ) понимается длина соответствующего ей контекста R. Под родительским понимается контекст меньшего порядка rR, который содержится в дочернем контексте порядка R. Под спуском на контекст меньшего порядка понимается переход от текущего контекста порядка R к его родительскому контексту порядка r, rR, и к соответствующей ему КМ.

Можно предположить, что при увеличении длины используемого контекста, сжатие данных будет улучшаться, но на практике при использовании контекстных моделей больших порядков статистика не успевает накапливаться. Более того, большинство данных характеризуется неоднородностью. Поэтому, на практике более широкое распространение получило использование для оценки вероятности контекстов разных длин. Техника объединения оценок вероятностей, соответствующих отдельным активным контекстам, в одну оценку называется смешиванием (blending). Известны несколько способов выполнения смешивания [73, 101, 106, 108].

Техника неявного взвешивания связана с введением вспомогательного символа ухода (escape). Он используется для передачи декодеру указаний кодера о необходимости использования КМ меньшего порядка для оценки текущего символа. Попытка оценки символа начинается с KM(N), где N является параметром алгоритма и называется порядком РРМ-модели. В случае нулевой частоты символа в КМ текущего порядка осуществляется переход к КМ меньшего порядка за счет использования механизма уходов и кодирования вероятности символа ухода.

Спуск продолжается до тех пор, пока символ не будет оценен. При этом все символы в КМ наименьшего порядка (КМ(-1)) изначально оценены ненулевыми значениями, что исключает зацикливание алгоритма.

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

1.4 Методы с преобразованием

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

Самым известным методом с преобразованием является преобразование Барроуза-Уиллера. Для эффективного использования преобразования необходимо, чтобы характеристики данных соответствовали модели источника с памятью. Как и многие другие применяемые в алгоритмах сжатия преобразования, преобразование Барроуза-Уилера предназначено для того, чтобы сделать сжатие данных входного блока более эффективным. Посредством перестановки элементов данное преобразование превращает входной блок данных со сложными зависимостями в блок, структуру которого моделировать гораздо легче, причем отображение происходит без потерь информации. Методы с преобразованием лучше всего подходят для сжатия текстовых данных [73, 82, 96, 108].

1.5 Рекурсивный (волновой) алгоритм

Английское название рекурсивного сжатия – wavelet. На русский язык оно переводится как волновое сжатие, и как сжатие с использованием всплесков. Этот вид архивации известен довольно давно и напрямую исходит из идеи использования когерентности областей. Ориентирован алгоритм на цветные и черно-белые изображения с плавными переходами. Идеален для изображений вроде рентгеновских снимков. Коэффициент сжатия задается и варьируется в пределах 5-100. При попытке задать больший коэффициент на резких границах, особенно проходящих по диагонали, проявляется «лестничный эффект» – ступеньки разной яркости размером в несколько пикселов [3, 26, 37, 80, 82-84, 92, 94,108].

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

В отличие от JPEG и фрактального алгоритма данный метод не оперирует блоками, например, 8х8 пикселов. За счет того, что коэффициенты сохраняются независимо, отсутствует эффект дробления изображения на «мозаичные»

Алгоритм относится к алгоритмам сжатия с потерями и предназначен для сжатия полноцветных 24 битных изображений или изображений в градациях серого без резких переходов цветов (фотографий).

1.6 Фрактальный алгоритм

Фрактальная архивация используется для сжатия изображений и основана на том, что изображение представляется в более компактной форме с помощью коэффициентов системы итерируемых функций (Iterated Function System, далее по тексту как представляет собой набор трехмерных аффинных IFS). IFS преобразований, переводящих одно изображение в другое. Преобразованию подвергаются точки в трехмерном пространстве (х_координата, у_координата, яркость). Система интегрируемых функций задает фрактал или самоподобный математический объект. Фактически, фрактальная компрессия – это поиск самоподобных областей в изображении и определение для них параметров аффинных преобразований.

В худшем случае, если не будет применяться оптимизирующий алгоритм, потребуется перебор и сравнение всех возможных фрагментов изображения разного размера. Даже для небольших изображений при учете дискретности получается астрономическое число перебираемых вариантов. Причем, даже резкое сужение классов преобразований, например, за счет масштабирования только в определенное количество раз, не дает заметного выигрыша во времени. Кроме того, при этом теряется качество изображения. Подавляющее большинство исследований в области фрактальной компрессии сейчас направлены на уменьшение времени архивации, необходимого для получения качественного изображения. Достоинством алгоритма является высокая степень сжатия [1, 32, 46, 76, 82, 96, 108].

Алгоритм относится к алгоритмам сжатия с потерями и предназначен для сжатия полноцветных 24 битных изображений или изображений в градациях серого без резких переходов цветов (фотографий).

1.7 Алгоритм JPEG

JPEG – один из самых широко используемых алгоритмов сжатия изображений. Практически, он является стандартом де-факто для полноцветных изображений. Данный алгоритм при кодировании разбивает изображение на области 8х8, на которых яркость и цвет меняются сравнительно плавно. Данные области раскладываются в двойной ряд по косинусам и в результате, значимыми оказываются только первые коэффициенты. Сжатие в JPEG осуществляется за счет плавности изменения цветов в изображении.

Алгоритм разработан группой экспертов в области фотографии специально для сжатия 24-битных изображений. JPEG – Joint Photographic Expert Group – подразделение в рамках ISO – Международной организации по стандартизации. В целом алгоритм основан на дискретном косинусоидальном преобразовании, применяемом к матрице изображения для получения некоторой новой матрицы коэффициентов. Для получения исходного изображения применяется обратное преобразование.

Данный алгоритм является алгоритмом сжатия с потерями и предназначен для сжатия полноцветных 24 битных изображений или изображений в градациях серого без резких переходов цветов (фотографий).

Стандартизован JPEG в 1991 году. Одним из преимуществ данного алгоритма является малая требовательность к вычислительным ресурсам и как следствие, возможность оперативной работы на маломощных устройствах. Данное свойство дополняется свойством симметричности работы алгоритма, что позволяет использовать данный алгоритм в фотоаппаратах и камерах телефонов.

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

Как стандарт ISO JPEG начинает все шире использоваться при обмене изображениями в компьютерных сетях. На данный момент алгоритм JPEG используется повсеместно и занимает видное место в системах мультимедиа.

1.8 Иерархический метод адаптивного сжатия

Метод и алгоритмы основаны на иерархической интерполяции на базе локальных однородных хорошо приспосабливаемых сглаживающих и восстанавливающих функций с процедурами квантования и статистического кодирования ошибок на каждом уровне иерархии. При этом сжатый массив представляется в виде иерархической структуры – бинарного дерева. Так, для изображений в памяти хранится двумерный массив отсчетов k-ого уровня (исходного изображения, прореженного в 2k раз по каждой из координат) и набор ошибок интерполяции, позволяющих получить массивы отсчетов уровней k-1,k-2,…., прореженные соответственно в 2k-1,2k-2,… раз, вплоть до 0-го уровня – полностью исходного изображения. Алгоритмы обладают высоким коэффициентом сжатия, обладают низкой вычислительной и емкостной сложностью [62, 64, 65, 66, 68, 69-73].

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

Формат TIFF TIFF (англ. Tagged Image File Format) – формат хранения растровых графических изображений. TIFF стал популярным форматом для хранения изображений с большой глубиной цвета. Он используется при сканировании, отправке факсов, распознавании текста, в полиграфии, широко поддерживается графическими приложениями.

Изначально формат поддерживал только сжатие без потерь, впоследствии формат был дополнен для поддержки сжатия с потерями в формате JPEG. Файлы формата TIFF, как правило, имеют расширение.tiff или.tif.

Имеется возможность сохранять изображение в файле формата TIFF со сжатием и без сжатия. Степени сжатия зависят от особенностей самого сохраняемого изображения, а также от используемого алгоритма.

Формат TIFF позволяет использовать следующие алгоритмы сжатия:

PackBits (RLE) Lempel-Ziv-Welch (LZW) LZ77 ZIP JBIG JPEG CCITT Group 3, CCITT Group 4 При этом, JPEG является просто инкапсуляцией формата JPEG в формат TIFF. Формат TIFF позволяет хранить изображения, сжатые по стандарту JPEG.

Алгоритмы CCITT Group 3 и 4, используемые в Tiff, предназначены для кодирования бинарных растровых изображений. Первоначально они были разработаны для сетей факсимильной связи (поэтому иногда их называют Fax 3, Fax 4). В настоящий момент они также используются в полиграфии, системах цифровой картографии и географических информационных системах. Алгоритм Group 3 похож на RLE, так как кодирует линейные последовательности пикселов в виде количества одинаковых повторяющихся пикселей, а Group 4 – использует двумерные поля пикселов в виде разницы между двумя строчками, используемыми в Group 3.

Формат GIF Format – «формат для обмена GIF (англ. Graphics Interchange изображениями») – популярный формат графических изображений. Способен хранить сжатые данные без потери качества в формате не более 256 цветов. Не зависящий от аппаратного обеспечения формат GIF был разработан в 1987 году (GIF87a) фирмой CompuServe для передачи растровых изображений по сетям. В 1989-м формат был модифицирован (GIF89a), были добавлены поддержка прозрачности и анимации. GIF использует LZW-компрессию, что позволяет сжимать файлы, в которых много однородных заливок (логотипы, надписи, схемы).

Долгое время GIF был одним из наиболее распространённых форматов в интернете.

Формат PNG Переносимый сетевой графический формат (Portable Network Graphics, PNG) разрабатывается как более эффективная, гибкая и свободная от патентов замена GIF-формату. PNG был задуман для хранения отдельных растровых изображений для дальнейшего распространения по компьютерным сетям (1). PNG был создан в 1995 в ответ на давление со стороны Unisys и их патента на алгоритм LZW-сжатия, используемый в GIF.

PNG использует алгоритм deflate-сжатия обычно с 32Кб скользящим (sliding) окном. Deflate является улучшенной версией алгоритма сжатия Lempel-Ziv (LZ77), который используется в ZIP- и GZIP-файлах (3, 4). Созданный Phil Katz для второй версии PKZip, deflate совмещает LZ77 с кодированием Huffman и является от 10% до 30% более эффективным, чем LZW при сжатии без потери информации.

Изображения, закодированные с помощью алгоритма PNG, обычно от 10% до 30% меньше, чем GIF.

Формат JPEG-LS Формат JPEG-LS был основан на формате LOCO-I (Low Complexity Lossless Compression for Images) [65]. Алгоритм сжатия без потерь LOCO-I, принятый за основу при разработке стандарта JPEG-LS, впервые предусматривал не только lossless, но и near lossless режим (сжатие с ограниченными, задаваемыми пользователем потерями). Декодер JPEG-LS почти не отличается от кодера, поэтому этот алгоритм сжатия симметричный.

Алгоритм сжатия, лежащий в основе JPEG-LS, использует адаптивное предсказание значения текущего пиксела по окружению, включающему уже закодированные пикселы (метод классификацию Median Edge Detection), контекста, контекстное моделирование ошибки предсказания и её коррекцию, а также энтропийное кодирование скорректированной ошибки предсказания (используется кодирование Голомба-Райса). Для повышения эффективности кодирования низкоэнтропийных изображений (или фрагментов изображений) алгоритм предусматривает автоматический переход в режим кодирования длин серий, что позволяет использовать его для сжатия без потерь (или с ограниченными потерями) не только фотореалистических изображений, но и компьютерной графики.

Формат JPEG-LS разрабатывался, прежде всего, для хранения изображений в медицинских целях, то есть для тех случаев, когда важно иметь большое изображение без малейших потерь качества. Алгоритм предназначен для сжатия полноцветных 24 битных изображений или изображений в градациях серого без резких переходов цветов (фотографий). Есть возможность сжатия в режиме с потерями.

Формат JPEG-LS обладает очень хорошими характеристиками сжатия:

высоким Ксж и в тоже время является очень быстрым алгоритмом. К минусам этого алгоритма можно отнести малую распространенность (очень мало приложений поддерживающих этот формат) и ограниченность размеров сжимаемого изображения.

Lossless JPEG Lossless JPEG представляет собой дополнение к JPEG (к JPEG-LS, несмотря на некоторое сходство в названии, отношения не имеет). В отличие от «обычного»

JPEG, построенного на основе дискретного косинусного преобразования, Lossless JPEG использует схему предсказания значения пиксела по трём ближайшим соседям — верхнему, левому и верхнему левому пикселам, а для сжатия разницы между истинным и предсказанным значением пиксела использует энтропийное кодирование. В отличие от JPEG-LS алгоритм сжатия Lossless JPEG не предусматривает ни адаптивного предсказания значения кодируемого пиксела, ни контекстного моделирования ошибки предсказания. Для энтропийного кодирования ошибки предсказания Lossless JPEG использует код Хаффмана. В качестве альтернативного стандарт допускает использование арифметического кодирования, однако, из-за патентных ограничений оно не нашло применения в практических реализациях Lossless JPEG. Этот метод не получил широкого распространения и не поддерживается популярными библиотеками IJG libraries.

JPEG 2000 JPEG 2000 также содержит режим сжатия без потерь (отличающийся от основанный на специальном целочисленном вейвлет фильтре JPEG-LS) (биортогональный 3/5). Сжатие без потерь в JPEG 2000 работает медленнее и дает несколько меньшее сжатие по сравнению с JPEG-LS как на искусственных, так и на фотореалистичных изображениях WinRar WinRAR – архиватор файлов в форматы RAR и ZIP для 32- и 64-разрядных операционных систем Windows (также существуют или существовали версии этого архиватора для Android, Linux, FreeBSD, Mac OS X, MS-DOS, Windows Mobile).

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

7z 7-Zip — свободный файловый архиватор с высокой степенью сжатия данных.

Поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.

Программа разрабатывается с 1999 года и является бесплатной, а также имеет открытый исходный код, большая часть которого свободно распространяется на условиях лицензии GNU LGPL, за исключением кода декомпрессора unRAR, который имеет ограничения. Основной платформой является Windows (в том числе Windows CE), где доступны две версии программы: с графическим интерфейсом и версия для командной строки. Также, как и WinRar, является универсальным архиватором и широко используется в мире. Основными преимуществами данного архиватора являются бесплатность и высокая степень сжатия.

JBIG2 Стандарт сжатия изображений, предложенный группой экспертов в сжатии бинарных изображений (Joint Bi-level Image Experts Group) и стандартизованный Международной организацией по стандартизации ISO/IEC.

Выводы по первой главе В главе приведен обзор основных направлений научных исследований в данной предметной области. Рассмотрены основные подходы и алгоритмы сжатия растровых изображений. На основе изложенных данных сделан вывод о необходимости развития методов и алгоритмов адаптивного сжатия lossless широкого спектра растровых изображений на основе развития идеи контекстного моделирования и статистического кодирования.

ГЛАВА 2. РАЗВИТИЕ И РАЗРАБОТКА МОДЕЛЕЙ И МЕТОДОВ

КОНТЕКСТНОГО МОДЕЛИРОВАНИЯ ДЛЯ ЭФФЕКТИВНОГО СЖАТИЯ

ЧЕРНО-БЕЛЫХ ИЗОБРАЖЕНИЙ

2.1 Бинарные изображения Бинарное изображение (двухуровневое, двоичное) – разновидность цифровых растровых изображений, когда каждый пиксель может представлять только один из двух цветов.

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

Из-за этого бинарное изображение иногда могут называть однобитным, монохромным, чёрно-белым.

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

Одним из примеров использования МБИ являются трейсинг-кальки – изображения, используемые для обновления информации на навигационных морских картах. Также часто МБИ используются для хранения растровых изображений поэтажных планов зданий и сооружений, морских навигационных и топографических карт и др. Примеры растровых изображений приведены на рисунках 1 — 4.

Рисунок 1 – Пример бинарного изображения — Трайсинг-калька Рисунок 2 — Пример бинарного изображения — поэтажные планы Рисунок 3 – Пример бинарного изображения — фрагмент пластика топографической карты

соответствует одному пикселю изображения, где i — номер строки, j – номер столбца, m – размер матрицы по горизонтали (ширина матрицы), n-размер матрицы по вертикали (высота матрицы). Под пикселем s понимается минимальный элемент входных данных (изображения), вероятность которого оценивается при кодировании. Под контекстным моделированием понимается оценка вероятности P(s|C(R)) появления пикселя s, а также вероятности P(esc|C(R)) появления символа ухода в зависимости от предшествующего ему контекста C(R), где R порядок контекста. Диапазон значений пикселя определяется размером цветовой палитры изображения sє<0,1,…,CT-1>, где CT обозначает количество возможных значений пикселя. Для бинарных изображений CT = 2.

Под контекстом C(R) порядка R подразумевается определенный набор из уже закодированных пикселей, которые предшествуют текущему кодируемому пикселю, где порядок R является величиной контекста. В данной работе предложен двумерный контекст, состоящий из набора в пикселей R Применяется подход использования ( s0, s1. s R 1 ) C ( R), C ( R) Cont (ai, j ),.

контекстов ограниченной длины N, где N является максимальным порядком КМ.

Вместо «контекст длины R, R N” может употребляться выражение «контекст порядка R». Под порядком контекстной модели (КМ) понимается длина соответствующего ей контекста R. Под родительским понимается контекст меньшего порядка rR, который содержится в дочернем контексте порядка R. Под спуском на контекст меньшего порядка понимается переход от текущего контекста порядка R к его родительскому контексту порядка r, rR, и к соответствующей ему КМ.

Предлагаемый алгоритм относится к адаптивным методам моделирования.

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

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

Попытка оценки пикселя начинается с KM(N). Если пиксель s обрабатывается с использованием модели порядка N, то в первую очередь рассматривается KM(N).

Если в КМ(N) вероятность s оценивается числом, не равным нулю, то она сама и используется для кодирования s. Иначе выдается сигнал в виде вероятности символа ухода, и на основе меньшей по порядку КМ(r) производится очередная попытка оценить вероятность s, где 0rN. Cимвол ухода (esc) является квазисимволом и не принадлежит к алфавиту сжимаемой последовательности, используется для передачи декодеру указаний кодера. Кодирование происходит через уход к КМ меньших порядков до тех пор, пока s не будет оценен. КМ(0) изначально проинициализирована ненулевыми значениями для всех пикселей (используется КМ(-1) с равновероятными значениями для всех пикселей), что гарантирует, что алгоритм не войдет в бесконечный цикл и завершит свою работу за конечное время. Таким образом, каждый пиксель кодируется серией кодов символа ухода, за которой следует код самого пикселя.

Для каждого контекста конечной длины R N, встречаемого в обрабатываемой последовательности, создается контекстная модель порядка R (КМ(R)) после первого появлении соответствующего контекста в обрабатываемом потоке данных. КМ включает в себя счетчики накопленных частот для всех пикселей, встреченных в соответствующем ей контексте, т. е. сразу после этого контекста, включая счетчик накопленных частот символа ухода. В качестве статистического кодировщика используется арифметический кодер. После собственно кодирования пикселя осуществляется обновление статистики всех КМ, использованных при оценке его вероятности [51, 52, 53].

Процесс декодирования симметричен процессу кодирования. При декодировании статистический кодировщик последовательно извлекает из выходного файла закодированные значения вероятностей. Далее, в текущей КМ ищется пиксель, соответствующий извлеченной вероятности. В случае если вероятности соответствует символ ухода, то происходит уход на контекст меньшего порядка, в противном случае найденный пиксель отмечается на изображении. Далее текущая КМ обновляется в соответствии с обработанным пикселем. Процесс продолжается до тех пор, пока не будут декодированы все пиксели изображения [51, 52, 53].

При сжатии похожих файлов, при переходе к сжатию нового файла можно воспользоваться накопленной статистикой уже сжатых файлов. В связи с этим была реализована возможность сжимать блок файлов, сохраняя статистику при переходе от одного файла к другому. Данный метод подтвердил свою эффективность и позволил увеличить Ксж до 10% в зависимости от сжимаемых данных.

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

Предлагаемый алгоритм отличается способом формирования контекстов порядков, меньших максимального. Подробное описание способа формирования контекста меньшего порядка описано в разделе 0. В качестве контекстной модели (КМ) используется вероятность появления пикселя P(s|C(n)) определенного цвета (черного или белого), а также вероятность появления символа ухода P(esc|C(n)) в данном контексте [51, 52, 53].

При использовании КМ нескольких порядков способ оценивания вероятности появления нового пикселя в контексте и последующего ухода на КМеП значительно влияет на размер выходного файла. Оценка вероятности символа ухода в предлагаемом алгоритме вычисляется следующим образом.

Изначально частота символа ухода равна 2. При каждом новом встречаемом пикселе частота символа ухода уменьшается на единицу. В результате этого, когда после какого-либо контекста уже встретились оба вида пикселей, частота символа ухода равна нулю и не влияет на кодирование, поскольку в этом случае новый вид пикселя после данного контекста появиться не может и символ ухода больше не нужен. Если же после какого-либо контекста один вид пикселя не встречается, то сначала вероятности уже встреченного пикселя и символа ухода будут равны, но при каждом кодировании уже встреченного пикселя вероятность символа ухода постепенно уменьшается. Вероятность ухода в контекстной модели нулевого порядка изначально равна нулю и не изменяется, так как в модели данного порядка все пиксели оценены ненулевыми значениями вероятности с самого начала. Для контекста C(R) вероятность появления символа ухода f(esc) определяется формулой (2).Данный способ оценки вероятности ухода позволил добиться значительного увеличения Ксж и увеличить скорость кодирования.

f (esc ) 1; f (C ( R)) 0, f (0 | C ( R)) 0 f (1 | C ( R)) 0 (2) 0; f (C ( R)) 0, f (0 | C ( R)) 0, f (1 | C ( R)) 0 В результате исследования было показано, что в случае, если пиксель встречается в данном контексте первый раз, то более эффективно уйти на контекст в 2-3 раза меньший, чем текущий.

Илон Маск рекомендует:  Что такое код lr(k) грамматики

В алгоритме использована техника масштабирования последнего встреченного символа (МПВС) [51,52,53,57,73]. Данная техника основывается на том предположении, что если в последний раз после текущего контекста был встречен некий элемент данных, то вероятность того, что текущий элемент окажется таким же, вырастает. В результате можно умножить частоту последнего встретившегося элемента на некий коэффициент ca. Отличие предлагаемой техники МПВС основывается на предположении, что если в данной модели встречался только один пиксель, то используемый коэффициент должен быть выше, чем когда встретились оба пикселя. В результате исследования были подобраны следующие значения коэффициента «ca»: 4 – в случае, когда в модели встретился только один пиксель и 1,375 — в случае, когда встретились оба пикселя.

Значения коэффициента «ca» вычисляется по формуле 3.

4, f (esc ) 0 ca (3) 1,375, f (esc ) 0 Используется техника исключения (exclusion), позволяющая при оценке вероятности пикселя в КМ порядка RN исключить из рассмотрения все пиксели, которые содержатся в КМ(r), 0rR, поскольку ни один из них точно не является пикселем s. Используемая техника exclusion отличается тем, что благодаря содержанию в алфавите всего двух возможных пикселей, в выходную последовательность при уходе записывается только P(esc|C(R)), после чего кодирование текущего пикселя завершается. Этого достаточно для декодера, чтобы восстановить, что раз один пиксель в данной модели уже встречался и при этом был закодирован символ ухода, то текущий пиксель есть тот, который еще не встречался в данной модели.

C целью повышения точности оценок пикселей в КМ высоких порядков был развит метод наследования информации (НИ) [51, 52, 53, 57, 73]. Очевидно, что распределения частот пикселей в родительских и дочерних КМ похожи. При появлении в дочерней КМ(R) нового пикселя s, целесообразно инициализировать его счетчик f(s|C(R)) некоторой величиной f0(s|C(R)), зависящей от информации о данном пикселе в родительской КМ(r) (или нескольких КМ предках). При применении стандартного метода наследовании информации к предметной области черно-белых изображений было замечено, что на более зашумленных изображениях с более случайными данными данный метод давал отрицательный результат, вместо положительного. Новизна предлагаемого метода заключается во введении специального коэффициента Данный коэффициент снижает T.

воздействие метода НИ при обработке изображений с высокой степенью шумов и случайных изображений.

Пусть, в результате серии уходов мы спустились с КМ(R) на КМ(R-m), где пиксель s и был успешно оценен. Тогда начальное значение f0(s|C(R)) в КМ(R) вычисляется, исходя из формулы 4 f ( s | C ( R m) * f (C ( R)) f 0 ( s | C ( R)) *T, f (s | C ( j )) f (C ( R m)) f (C ( R)) 2 f (esc | C ( R)) f ( s | C ( R k )) (4) 0 j R

Данный метод позволил увеличить Ксж на 2-5% при незначительных потерях в производительности.

На завершающем этапе при кодировании пикселя s в КМ(R) получается

текущей КМ(R), f(C(R)) накопленная частота всех пикселей в текущей КМ(R), включая esc. Полученное значение P(s | C ( R)) передается статистическому кодировщику для преобразования в последовательность битов выходного файла. В качестве статистического кодировщика используется арифметический кодер.

После непосредственного кодирования пикселя осуществляется обновление статистики всех КМ, использованных при оценке его вероятности. Кодирование продолжается до тех пор, пока не будут закодированы все пиксели изображения.

2.3 Модификации алгоритма PCTB

В самом простом случае контекст меньшего порядка nN вычисляется полностью заново, формируясь из n взятий значений пикселей из изображения. Но операция взятия значения пикселя из изображения является довольно трудоемкой, поэтому для увеличения быстродействия алгоритма рационально использовать часть информации из КМП для вычисления значений контекстов меньших порядков. Изначально порядок следования пикселов в контексте в предлагаемом алгоритме был задан таким образом, чтобы можно было с помощью одной операции битового сдвига получить контекст любого меньшего порядка. Такой эффект достигался за счет того, что пиксели КМП нумеровались в соответствии с близостью к текущему пикселю. Соответствующее расположение пикселей отражено на рисунке 6. Однако, операция вычисления нового контекста максимального порядка выполняется гораздо чаще, чем операция вычисления контекста меньшего порядка. В связи с этим было решено оптимизировать функцию вычисления нового контекста максимального порядка. Для решения этой задачи порядок следования пикселей контекста был изменен с фиксированного, заданного программистом, на последовательный построчный, от самого левого пикселя контекста, находящегося на одной линии с кодируемым пикселем, до самого правого, находящегося максимально далеко по вертикали от кодируемого пикселя. Такая структура образования контекста позволила вычислять новый контекст за два шага, используя информацию из предыдущего контекста.

Рисунок 6 – Контекст максимального порядка в ранней версии алгоритма При использовании КМ больших порядков наблюдается проблема медленного накопления статистики в этих КМ. Для решения этой проблемы используют подход с использованием КМ нескольких КМеП.

Вычисление КМеП производится из КМП по заранее определенной битовой маске. Маска представляет собой фиксированный список порядковых номеров пикселей КМП. Для получения контекста порядка 11 используются пиксели КМП с номерами 2, 3, 4, 7, 8, 9, 10, 16, 17, 18, 23. Для получения контекста порядка 8 используются пиксели КМП с номерами 2, 3, 4, 7, 8, 9, 10, 17. Для получения контекста порядка 4 используются пиксели КМП с номерами 3, 4, 8, 9. На рисунке 7 изображен порядок спуска от КМП к контексту 4-го уровня с наглядным отображением используемых масок. Зеленым обозначены, пиксели, которые используются в контексте текущего порядка, желтым – кодируемый пиксель, синим — пиксели КМП, которые не включаются в контекст текущего порядка, серым — еще необработанные пикселя, белым — уже обработанные пиксели, не входящие в КМП. Таким образом, пиксели контекстов меньших порядков остаются сгруппированными вокруг текущего пикселя. Подход с использованием масок позволяет увеличить скорость алгоритма без изменения степени сжатия. [55, 60].

Рисунок 7 – Порядок спуска к контекстам меньших порядков Проведено сравнение по скорости работы вариантов алгоритма, различающихся способами вычисления КМП и контекстов меньших порядков (КмеП). Сравнение проведено при использовании одного потока. Для сравнения использован набор из 10 различных файлов, которые были представлены ранее при сравнение алгоритма PCTB с другими алгоритмами по коэффициенту сжатия в разделе 3.4. Представлено общее время сжатия для всего набора из 10 файлов.

Вариант алгоритма А используется в текущей версии алгоритма и включает в себя вычисление нового КМП с помощью битового сдвига, расположение пикселей в КМП последовательное построчное, вычисление КмеП с помощью масок. Вариант алгоритма В включает в себя вычисление нового КМП с помощью битового сдвига, расположение пикселей в КМП последовательное построчное, вычисление КмеП без помощи масок с взятием значений пикселей напрямую из изображения.

Вариант алгоритма С включает в себя вычисление нового КМП без помощи битового сдвига, пиксели в КМП располагаются непосредственно в определенном заранее заданном порядке, вычисление КмеП с помощью битового сдвига из КМП.

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

Таблица 1. Сравнение версий алгоритма с различным способом вычисления КМП и КмеП

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

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

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

Для проверки эффективности алгоритма были проведены эксперименты на тестовом наборе изображений и проведено сравнение с более ранней версией алгоритма. Результаты экспериментальных апробаций приведены в Таблице 2.

Рассмотренные выше подходы позволили существенно в 1,5-2 раза уменьшить время необходимое на кодирование/декодирование. Также было ограничено потребление оперативной памяти.

Таблица 2. Сравнение быстродействия программы до и после улучшений

Современные компьютеры чаще всего оснащены процессорами, содержащими несколько ядер, что позволяет осуществлять параллельные вычисления. Параллельные вычисления в настоящее время очень часто используется для ускорения работы алгоритмов и программ.

Для использования параллельных вычислений чаще всего используют две основных стратегии:

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

Реализована возможность разбивать изображение на n частей [55, 60].

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

Если количество частей равно 4, то изображение делится по линиям, соединяющим середины противоположных сторон изображения. В результате этого получаются четыре прямоугольных области P1, P2, P3, P4 с координатами ((x1,y1),(x2,y2)) диаметрально-противоположных вершин P1=((0,0),(W/2,H/2)), P2=((W/2,0),(W,H/2)), P3=((0,H/2),(W/2,H)), P4=((W/2,H/2),(W,H)). В случае n4 вертикальные стороны изображения делятся на n-1 равных частей с высотой равной H/n и одну с высотой (H-H/n*(n-1)), при этом изображение делится по противоположным делениям этих ребер. В результате чего получается n-1 прямоугольная область с координатами P[i] (i = 0…n-1) Pi = ((0,(H/n)*i)(W,(H/n)*(i+1))) и одна прямоугольная область P[n] = ((0,(H/n)*(nW,H)). После разбиения изображения на несколько частей, каждая часть изображения сжимается как отдельное изображение в отдельном потоке. Данный подход позволяет задействовать возможности современных компьютеров, равномерно распределив нагрузку на ядра процессора, при этом незначительно снизив эффективность сжатия. Предполагается, что при таком подходе увеличение количества потоков в n раз даст увеличение скорости сжатия до n раз, при условии, что число n меньше или равно числу ядер процессора nc. При этом, скорость будет увеличиваться пропорционально количеству потоков. Если число n будет больше то предполагается увеличение скорости сжатия примерно равное nc, использованию потоков. При реализации расчетов на двуядерном nc PC1(процессор – Core 2 Duo E7400 2.8 GHz) и на четырехъядерном PC2(процессор

— Core i5-3230M 2.6 GHz) был получен результат, отображенный в таблицах 3 и 4.

2.5 Зависимость основных параметров сжатия от величины контекста Одним из способов ускорения работы программ является выявление «горячих точек программы» или, другими словами, тех мест в коде программы, на которые тратится наибольшее количество ресурсов компьютера. Благодаря проведенным исследованиям с помощью профайлера, было выявлено, что большую часть процессорного времени и ОП расходуется на функции вычисления нового КМП и поиск КМ в дереве КМ. Данные функции уже были оптимизированы по вычислениям, как это было описано выше. Однако, было замечено, что на работу данных функции оказывает сильное влияние размер КМП.

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

Как видно из проведенных экспериментов, при уменьшении размера контекста до 15 коэффициент сжатия падает незначительно, при этом наблюдается значительное уменьшение времени, необходимого для сжатия и уменьшение количества потребляемой оперативной памяти. Снижение величины КМП меньше 15 приводит к более значительному уменьшению коэффициента сжатия и менее значительно уменьшает потребляемую ОП и время, затрачиваемое на сжатие. В таблицах 5-7 строки соответствуют номеру сжимаемого файла, а столбцы соответствуют размеру контекста максимального порядка. При этом, снижение величины КМП ниже 20 практически не влияет на уровень потребляемой оперативной памяти.

Таблица 5. Зависимость времени сжатия (сек) от величины контекста

Таблица 7. Зависимость потребления оперативной памяти(Mb) от величины контекста File\контекст 31 25 20 15 10 5 1 1 16 15,4 14,3 14,2 15 14,2 14,3 2 38,6 26,5 19 15,2 15,2 15,2 14,7 3 18,2 17,3 17,1 17,3 17,3 17,2 17 4 621 259,7 103,5 103 104 103 103 5 189 188,7 188,4 188,4 189 188 188,7

2.6 Экспериментальные апробации алгоритма PCTB Для проверки эффективности алгоритма были проведены эксперименты на тестовом наборе изображений и проведено сравнение с наиболее распространенными универсальными и специализированными алгоритмами сжатия изображений: MPD, tiff, PNG, 7z(LZMA), WinRar(Rar). Тестовый набор включает в себя 15 изображений различного типа: 1-5 — трайсинг-кальки, 6 – таблица на английском языке, 7 — текст на русском языке, 8 – таблица, испорченная в графическом редакторе, 9 — скан тетрадки, извлеченный из DJVU с высокой зашумленностью, 10 – отсканированные поэтажные планы, 11-13 – пластик топографических карт, 14-15 – планшеты гидрографической съемки. Подробная информация о тестовых файлах приведена в Таблице 9. Данный набор файлов состоит из изображений различных по содержанию, поэтому сжатие проводилось без использования пакетного режима, так как это не принесет положительного эффекта в этом случае.

Результаты экспериментальной апробации приведены в таблице 8 и на рисунке 9. В таблице 10 приведены результаты тестирования алгоритма на наборе из 292 трейсинг-калек. Сравнение алгоритма PCTB с другими алгоритмами по времени сжатия представлено в таблице 11. На рисунке 8 представлен фрагмент исходного изображения и фрагмент восстановленного после сжатия алгоритмом PCTB изображения, что показывает, что сжатие происходит без потерь.

В столбцах таблицы 8 приведены Ксж (число, равное размеру исходного изображения, поделенного на размер в архивированном виде) для различных алгоритмов, строки соответствуют различным тестовым данным.

Как было выявлено из проведенных экспериментов, разработанный алгоритм существенно превосходит (до 1.2 – 6.3 раз), в среднем в 2.8 раза другие специализированные и универсальные алгоритмы сжатия без потерь.

Программе требуется в среднем 5 — 50 Мбайт оперативной памяти при сжатии изображения размером до 8 Mpix, а скорость кодирования/декодирования примерно равна 15 Мегапикселей в секунду на компьютере с процессором Core 2 Duo 2.8Мгц при использовании сжатия в два потока.

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

Одними из самых эффективных структур хранения данных являются Bдеревья, Splay-деревья и AVL-деревья. Цель данной работы заключается в сравнении этих структур на эффективность быстродействия, при использовании их для хранения контекстных моделей для алгоритма эффективного сжатия чернобелых растровых изображений.

AVL -деревья AVL-дерево – бинарное дерево поиска, в котором для каждого его узла высота левого и правого поддеревьев различаются не более, чем на 1. Операции обработки AVL-деревьев (поиск, вставка, удаление) c числом узлов n имеют сложность log2n [55].

В дереве хранятся контекстные модели, при этом в качестве ключа используются численное представление соответствующего им контекста.


На рисунке 10 изображена структура AVL – дерева. TKey означает ключ КМ.

ContextModel является ссылкой на КМ, хранящуюся в данном узле дерева. Balance

– значение, отвечающее за балансировку дерева. left – ссылка на левый подузел.

right – ссылка на правый подузел.

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

На рисунке 11 изображена структура В–дерева. В узле В-дерева хранится массив из count элементов, содержащих следующих 3 значения. TKey означает ключ КМ. ContextModel является ссылкой на КМ, хранящуюся в данном узле дерева. next является указателем на следующий узел дерева. Также в узле В-дерева содержится следующих 2 значения. Parent – ссылка на узел предлок. Count – количество элементов на данный момент содержащихся в данном узле.

Рисунок 11 – Узлы Б-дерева Splay-деревья Splay-дерево или расширяющееся дерево – это самобалансирующееся бинарное дерево поиска. Дереву не нужно хранить никакой дополнительной информации, что делает его эффективным по памяти. После каждого обращения, даже поиска, splay-дерево меняет свою структуру. Расширяющееся дерево предоставляет самоизменяющуюся структуру, характеризующуюся тенденцией хранить узлы, к которым часто происходит обращение, вблизи верхушки дерева, в то время как узлы, к которым обращение происходит редко, перемещаются ближе к листьям. Таким образом, время обращения к часто посещаемым узлам будет меньше, а время обращения к редко посещаемым узлам – больше среднего.

На рисунке 12 изображена структура Splay – дерева. TKey означает ключ КМ.

ContextModel является ссылкой на КМ, хранящуюся в данном узле дерева. Parent – ссылка на узел предлок. left – ссылка на левый подузел. right – ссылка на правый подузел.

В таблице 12 приведены результаты сравнения различных структур хранения деревьев КМ по скорости работы на наборе из 10 различных файлов, а в таблице 13 на наборе из 2 большеформатных файлов, содержащих в себе правки для географических карт. Как видно из результатов, на обоих наборах файлов AVLдеревья показывают более высокую скорость по сравнению с другими структурами хранения. Splay-деревья очень близки по скорости работы к AVL-деревьям, но немного медленнее. B-деревья значительно уступают по скорости работы AVL- и Splay-деревьям, что объясняется тем, что в B-дереве добавляется время поиска среди блока записей на каждый узел. Отсутствие преимущества у Splay-дерева можно объяснить тем, что изображения имеют большую информационную насыщенность и в них редко встречаются контексты, которые используются намного чаще большинства других контекстов. В виду этого, основное преимущество Splay-дерева в виде ускорения доступа к наиболее используемым элементам, нивелируется. В тоже время постоянное перестроение дерева требует определенных временных затрат, которые при работе с большинством изображений превышают позитивный эффект Splay-деревьев.

Таблица 12. Сравнение структур хранения контекстных моделей по быстродействию в секундах

AVL -дерево предназначено для хранения, быстрого доступа к контекстным моделям и состоит из множества узлов. В каждом узле содержится ссылка на контекстную модель, ключ контекста, по одной ссылке на левый и правый узелпредок. Ключ в версии для бинарных изображений представляет собой целое число длиной 4 байта, инкапсулирующее в себе до 32 значений битов контекста. В случае индексированных и полноцветных изображений ключ представляет собой массив байт произвольной длины, инкапсулирующие значения отдельных пикселей контекста длиной до 8 бит каждое. Отличием от стандартной реализации AVL дерева является наличие указателя на последнюю найденную контекстную модель.

Прежде чем искать контекстную модель в дереве по ключу, алгоритм сравнивает ключ, который необходимо найти с последним ключом, который искался в дереве.

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

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

Контекстная модель для алгоритма PCTB имеет следующую структуру class ContextModel2 <

public:

где TotFr – общая накопленная частота для данной контекстной модели, esc – частота символа ухода, last – последний, встретившийся после данной контекстной модели символ, count – массив накопленных частот из двух элементов, содержащий накопленные частоты для всех пикселей, Inheritance – флаг, того, что необходимо произвести процедуру наследования, par – ссылка на родительскую контекстную модель-предок.

Контекстная модель для индексированных и полноцветных изображений имеет другую структуру:

public:

unsigned char esc;

unsigned char last;

short int Inheritance;

где TotFr, esc, last, Inheritance, par имеют тоже значение, что и в ContextModel2, count является массивом накопленных частот, его размер задается динамически.

Для динамического выделения памяти под массив накопленных частот служат функция SetN и конструктор ContextModel.

Выводы по второй главе

В главе приведено описание бинарного изображения, приведены основные особенности данных изображений. Приведено подробное описание разработанного алгоритма эффективного lossless сжатия монохромных бинарных изображений (МБИ), названного PCTB (Probability Coder To Black-white), на основе единого методологического подхода на базе идей контекстного моделирования и статистического кодирования. Алгоритм отличается введением двумерного контекста определенной графической формы, а также разработанными методом ухода на КМеП, модифицированным методом наследования информации, способами вычисления КМП и КмеП, а также высоким коэффициентом сжатия.

Проведены экспериментальные исследования разработанного алгоритма.

Преимущество по Ксж составило на бинарных изображениях до 1.2-6.3 раз, в среднем в 2.8 раза. Рассмотрены разработанные модели описания и структуры представления ДКМ разных порядков, а также способы их формирования, позволяющие учитывать взаимосвязь между отсчетами, организовать эффективное хранение, поиск и обработку формируемых ДКМ.

ГЛАВА 3. МОДЕЛИ И МЕТОДЫ КОНТЕКСТНОГО

МОДЕЛИРОВАНИЯ ДЛЯ ЭФФЕКТИВНОГО СЖАТИЯ

ИНДЕКСИРОВАННЫХ И ПОЛНОЦВЕТНЫХ ИЗОБРАЖЕНИЙ

Цветное индексированное изображение – изображение, цвет каждого элемента которого задаётся в специальной таблице – палитре. Таким образом, каждый элемент изображения имеет в качестве цвета некий условный индекс, который расшифровывается по таблице цветов (палитре) в реальные компоненты цвета, что позволяет для каждого такого элемента построить «истинный» цвет в заданной цветовой модели. Индексированные изображения могут иметь до 256 цветов в цветовой палитре. Какие из цветов изображения попадут в палитру, определяются либо с помощью специальных алгоритмов, либо это указывается вручную пользователем. Также, существуют полутоновые изображения. Такие изображения имеют 256 градаций серого, где каждая градация серого имеет порядковый номер от 0 до 255. Отличием полутоновых изображений от индексированных является определенное количество цветов – 256 цветов, а также отсутствие палитры, поскольку каждое значение обозначает соответствующую градацию серого цвета. В работе полутоновые изображения обрабатываются как частный случай индексированных изображений.

Пример индексированного изображения представлен на рисунке 13.

Рисунок 13 — Пример индексированного изображения Рисунок 14 — Пример индексированного изображения Рисунок 15 — Пример индексированного изображения — полутоновая карта

Для сжатия индексированных растровых изображений (ИРИ) алгоритм PCTB был адаптирован для работы с 8-битными пикселями. Размер контекста максимального порядка (КМП) установлен равным 8. С помощью алгоритма формирования КМП, описанного ранее, была сгенерирована форма и подобран размер КМП, изображенные на рисунке 16. Обозначения идентичны обозначениям, используемым в изображении КМП для алгоритма PCTB. Предлагаемый алгоритм для сжатия индексированных изображений назван IPC (Indexed Probability Coder).

Алгоритм отличается использованием специально разработанных структур для хранения КМ и ключа КМ с возможностью адаптации параметров алгоритма под количество реально используемых цветов.

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

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

Для оценки вероятности ухода за основу взят метод оценки вероятности символа ухода «С». Изначально частота символа ухода равна 0. При каждом новом встречаемом пикселе частота символа ухода увеличивается на единицу. Пусть количество разных пикселей равно M, тогда f(esc|C(R)) будет оценен как M. Когда величина частоты символа ухода достигает размера, равного f (C ( R)) M количеству цветов CT в изображении, частота f(esc) зануляется. Также, как и в алгоритме PCTB уход при встрече нового пикселя в контексте осуществляется не на ближайший КМеП, а на контекст в 2-3 раза меньший, чем текущий.

Используются КМ следующих порядков: 8,5,2,1,0. При вычислении КМеП все значения пикселей вычисляемого контекста делятся на два для экономии ОП, увеличения скорости сжатия и увеличения Ксж за счет объединения статистики у ближайших контекстов. Экспериментальная апробация подтвердила высокую эффективность такого подхода.

Для оценки вероятности ухода за основу взят метод оценки вероятности символа ухода С [73]. Изначально частота символа ухода равна 0. При каждом новом встречаемом пикселе частота символа ухода увеличивается на единицу.

Пусть количество разных символов равно С, а количество раз, когда данный C контекст встречался равно S. Тогда символ ухода будет оценен как S C. Когда величина частоты символа ухода достигает размера, равного количеству цветов в изображении, частота символа ухода зануляется с целью дальнейшего увеличения степени сжатия, поскольку это означает, что больше новых пикселов появляться в данном контексте не может.

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

С целью дальнейшего увеличения Ксж и быстродействия алгоритма был применен метод исключения (exclusion) [57, 73].

Количество цветов индексированного изображения может колебаться от 2 до

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

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

3.4 Реализация возможности сжатия файлов с большим диапазоном значений

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

3.5 Распараллеливание алгоритма IPC

С целью дальнейшего увеличения скорости кодирования/декодирования для алгоритма сжатия была реализована возможность кодировать и декодировать ИРИ, задействуя распараллеливание процесса обработки на несколько потоков одновременно Алгоритм распараллеливания идентичен алгоритму [56].

распараллеливания, используемому в алгоритме Были проведены PCTB.

эксперименты по сравнению изменения скорости сжатия и Ксж в зависимости от количества используемых потоков. Для проведения экспериментов использовались компьютеры со следующими процессорами четырехъядерный PC1(процессор Core i5-3230M 2.6 GHz) и двухъядерный PC2(процессор – Core 2 Duo E7400 2.8 GHz). В таблице 14 отражен результат сжатия файла artificial.bmp (3072х2048, глубина цвета 8 бит, количество цветов 256) из набора[40]. В таблице 15 отражен результат сжатия файла 21008n.bmp (12358х16563, глубина цвета 8 бит, количество цветов 11) из набора[40]

В первом столбце таблиц 14 и 15 указано количество потоков, используемых для кодирования изображения. Во втором и третьем столбце показаны соответствующие времена кодирования в секундах для PC1 и PC2. В последнем столбце показан Ксж данного файла в зависимости от количество используемых потоков. Ксж зависит от количества потоков, но не зависит от компьютера, на котором производится кодирование, поэтому для обоих компьютеров коэффициенты совпадают. При использовании n=2 в среднем получается ускорение в 1,6 раз по сравнению с использованием линейной версии программы.

При использовании n=4 потоков наблюдается ускорение в среднем в 1,8 раз по сравнению с использованием линейной версии программы. Показатели меньшие, чем в n раз объясняются тем, что при распараллеливании возникают дополнительные расходы в виде разбиения изображения на части, а также создания и синхронизации потоков. Из экспериментов видно, что, как и предполагалось, оптимальнее использовать количество потоков равное количеству ядер в системе.

При этом коэффициент сжатия падает линейно, но очень незначительно и при 64 потоках наблюдаются потери менее 3%, при n=16 потери менее 1%.

3.6 Результаты тестирования алгоритма IPC

Для проверки эффективности алгоритма были проведены эксперименты на 2 тестовых наборах изображений [40] и проведено сравнение с наиболее распространенными универсальными и специализированными алгоритмами сжатия изображений: JpegLS, PNG, 7z, rar, PPM. Первый тестовый набор включает в себя 6 индексированных 256-цветных изображений различного типа: 1 – тестовое чернобелое изображение из набора [40] artificial, 2 – тестовое черно-белое изображение из набора boats [40], 3 – индексированное цветное изображение chair, 4 – полутоновое изображение из набора goanna [40], 5 – спутниковый снимок, 6 – цветное индексированное изображение Второй набор тестовых peppers.

изображений является копией первого набора с редуцированным до 8 количеством цветов. Результаты экспериментальных апробаций приведены в таблицах 16 и 17.

Сравнение алгоритма IPC с другими алгоритмами по времени сжатия представлено в таблице 18. На рисунке 17 представлен фрагмент исходного изображения и фрагмент восстановленного после сжатия алгоритмом IPC изображения, что показывает, что сжатие происходит без потерь.

В столбцах таблиц 16 и 17 приведены Ксж для различных алгоритмов, строки соответствуют различным тестовым данным. Из проведенных экспериментов было выявлено, что разработанный алгоритм существенно превосходит по коэффициенту сжатия (в среднем от 1,15 до 2,13 раз) другие специализированные и универсальные алгоритмы сжатия без потерь.

3.7 Полноцветные изображения

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

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

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

Рисунок 18. Пример полноцветного изображения — аэрокосмический снимок

Для работы с полноцветными изображениями за основу была взята версия алгоритма для индексированных изображений. Были проведены исследования различных изображений на предмет взаимосвязи значений цветовых компонент различных цветовых каналов. В результате данного исследования выяснилось, что существует большая взаимосвязь между значениями цветовых компонент разных каналов. Сжатие каждого пикселя производится поканально. Сначала сжимается значение цветовой компонента, отвечающая за красный цвет, затем происходит кодирование значения цветовой компоненты зеленого цвета и далее кодируется значение компоненты синего цвета. Для каждого канала формируется свой контекст. Структура для хранения контекста идентична структуре из алгоритма для индексированных изображений. Для каждого канала используется отдельные контекстные модели следующих порядков: 6,4,2,1,0. При этом, в качестве контекста для значения красной цветовой компоненты (R) используются только значения R из ранее обработанных пикселей. Для контекста зеленого цветового канала кроме значения зеленой цветовой компоненты (G) ранее обработанных пикселей также используются значения R из ранее обработанных и текущего пикселей. Для значений канала синего цвета помимо значений синей цветовой компоненты (B) ранее обработанных пикселей также используются значения R и G ранее обработанных и текущего пикселей. Также для увеличения Ксж вместо R, G и B текущего пиксела используется разница между соответствующими значениями для текущего и предыдущего пикселей. Данный подход позволяет эффективно использовать свойство взаимосвязи между цветовыми каналами. В остальном алгоритм полностью идентичен описанному выше алгоритму сжатия индексированных изображений IPC.

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

Проведены эксперименты по сжатию в трех разных режимах:

1. Без использования взаимосвязи между разными цветовыми каналами. Для контекста канала R используются значения цветовой компоненты только канала R.

Для контекста канала G используются значения только из канала G. Для контекста канала B используются значения только из канала B.

2. С частичным использованием взаимосвязи между цветовыми каналами RGB. Для контекста канала R используются значения цветовой компоненты только канала R. Для канала G используются значения из каналов R и G. Для контекста канала B используются значения из каналов R, G и B.

3. С полным использованием взаимосвязи между цветовыми каналами RGB.

Для контекстов каналов R, G, B используются значения цветовых компонент каналов R, G, B.

В результате экспериментальных апробаций было выявлено, что подход № 2 является наиболее эффективным. Рассмотрим его более подробно. Обозначим координаты текущего пиксела за x, y, где x – значение координаты по горизонтали, а у – значение координаты по вертикали. Пусть R(X,Y) будет означать взятия значения красной цветовой компоненты от пикселя с координатами (X,Y), G(X,Y) будет означать взятие зеленой цветовой компоненты от пикселя с координатами (X,Y), а B(X,Y) означать взятие синей цветовой компоненты от пикселя с координатами (X,Y). Тогда, контекст для красной цветовой компоненты формируется следующим образом: R(x-1,y),R(x, y-1), R(x-1,y-1), R(x-2,y), R(x,y-2), R(x-1,y-2). Контекст для зеленой цветовой компоненты формируется следующим образом: R(x,y), G(x-1,y), R(x-1,y), G(x, y-1), R(x, y-1), G(x-1,y-1). Контекст для синей цветовой компоненты формируется следующим образом: R(x,y), G(x,y), B(x-1,y), Наглядно формирование контекстов изображено на R(x-1,y), G(x-1,y), B(x,y-1).

рисунке 19. Цвета соответствуют каналам R – красный, G – зеленый, B – синий.

Рисунок 19 — Контексты каналов RGB для алгоритма FPC В полноцветных изображениях чаще всего соседние значения цветовых компонент имеют схожие значения. В большинстве случаев происходит плавная смена цвета от одного к другому. Анализ различных полноцветных изображений показал, что у большинства файлов гистограмма вероятности появления разницы между текущим и предыдущими пикселями при построчном считывании представляет собой нормальное распределение с максимальным значением, сосредоточенным у нуля. Для использования этого свойства была реализована возможность брать вместо значения цветовой компоненты разницу между значениями цветовой компоненты текущего и предыдущего пикселей. Также, была реализована возможность составлять контекст, используя в качестве значений разницу между значениями цветовых компонент текущего и предыдущего пикселей. При использовании разницы в качестве значений цветовых компонент декодирование остается возможным благодаря тому, что первое значение в каждой строке считается разницей относительно значения 0 и в результате равняется самому себе. При вычислении разницы значений цветовых компонент возможно получение как положительных, так и отрицательных значений. Техническая реализация алгоритма без существенных изменений не позволяет использовать отрицательные значения в качестве значений контекстной модели, поэтому было реализовано нормирование получаемых значений. Вычисление разницы с нормированием происходит по формуле rni (ColorTableSize (ci ci 1 ))%ColorTableSize, где rni – новое нормированное значение разницы между текущим ci и предыдущим ci-1 значениями текущей цветовой компоненты, ColorTableSize – количество возможных цветов в контекстной модели (в полноцветных изображениях всегда равно 256), % операция взятия остатка от деления по модулю.

Реализована возможность использовать вместо значения цветовой компоненты разницу между значениями цветовой компоненты текущего и предыдущего пикселей. Также, реализована возможность составлять контекст, используя в качестве значений разницу между значениями цветовых компонент текущего и предыдущего пикселей.

Проведены эксперименты по сравнению сжатия полноцветных файлов в трех режимах:

— без использования разницы между текущим и предыдущими пикселями в качестве значения пикселя;

— с использованием разницы между текущим и предыдущим пикселями только цветовых компонент. Для контекста используются исходные значения цветовых компонент;

— с использованием разницы между текущим и предыдущим пикселями в качестве значения пикселя и в качестве элементов контекста.

В результате экспериментальных апробаций было установлено, что подход № 2 с использованием разницы между текущим и предыдущим пикселями только в качестве значения пикселя оказался наиболее эффективным. Подход № 3 увеличил коэффициент сжатия незначительно, при этом значительно увеличив вычислительную нагрузку. Подход № 2 показал незначительное увеличение времени кодирования при значительном увеличении степени сжатия до 7% на тестовом наборе данных. Показано, что подход с использованием разницы цветовых компонент в качестве значений оказался особенно эффективным при использовании свойства взаимосвязи между цветовыми каналами. Данный эффект объясняется тем, что в случае если значение одной цветовой компоненты при переходе от одного пикселя к другому изменяется незначительно, то скорее всего и значения других цветовых компонент будут тоже изменяться незначительно. Если же идет резкая смена значений одной цветовой компоненты (например, на границе объекта) тогда, у другого цветового канала, скорее всего также будут более большие разницы между значением цветовой компоненты текущего и предыдущего пикселей.

Были произведены экспериментальные апробации, отображенные в таблице 19, которые подтвердили эффективность данного подхода. Сравнение алгоритма FPC с другими алгоритмами по времени сжатия представлено в таблице 20.

На рисунке 20 представлен фрагмент исходного изображения и фрагмент восстановленного после сжатия алгоритмом FPC изображения, что показывает, что сжатие происходит без потерь.

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

Строчки соответствуют сжимаемым изображениям. Сведения о сжимаемых изображениях приведены в таблице 22. Столбцы соответствуют алгоритмам. По данному эксперименту можно увидеть эффективность разработанных алгоритмов.

Пустые ячейки означают, что данный алгоритм не предназначен для сжатия изображений такого типа.

Таблица 21. Сравнение эффективности алгоритмов при сжатии больших файлов

Выводы по третьей главе В главе рассматриваются разработанные алгоритмы сжатия индексированных и полноцветных растровых изображений без потерь.

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

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

ГЛАВА 4. ПРОГРАММНЫЙ КОМПЛЕКС СЖАТИЯ РАСТРОВЫХ

ИЗОБРАЖЕНИЙ

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

Рассмотренные методы были реализованы в виде библиотеки классов на языке

C++. Разработанный пакет программ состоит из 4-х основных компонент:

PCTBCoder – Программа, осуществляющая кодирование/декодирование бинарных изображений IPCCoder – Программа, осуществляющая кодирование/декодирование индексированных изображений FPCCoder – Программа, осуществляющая кодирование/декодирование полноцветных изображений IMCCoder – Программа, являющаяся объединением первых трех программ QtTest – специальная вспомогательная утилита, предназначенная для выполнения различных преобразований изображений а также для анализа изображений

Разработанный пакет программ 1-3 реализует следующие функции:

кодирование/декодирование полноцветных изобаржений без потерь;

кодирование/декодирование бинарных изображений без потерь;

кодирование/декодирование индексированных изображений без потерь;

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

подсчет и вывод времени затраченного на кодирование;

подсчет и вывод Ксж;

ведения лог-файла проделанных операций.

Вспомогательная утилита QtTest реализует следующие функции:

преобразование без потери информации 1 полноцветного изображения в 1 бинарное изображение, где пиксели бинарного изображения представляют собой двоичный код троек RGB исходного изображения, преобразование без потери информации полноцветного изображения в 3 бинарных следующим образом: каждое бинарное изображение представляет собой бинарное отображение одного цветового канала R, G, B, преобразование без потери информации 1 полноцветного изображения в 24 бинарных изображения, где каждому одному пикселю из 24 бинарных изображений соответствует 1 бит двоичного кода тройки байт RGB исходного изображения, преобразование без потери информации 1 полноцветного изображения в 3 индексированных изображения, где каждое индексированное изображение соответствует одному цветовому каналу R,G или B исходного изображения, преобразование без потери информации 1 индексированного изображения в 1 бинарное изображение, где биты бинарного изображения представляют собой двоичный код индексов цветов исходного изображения, преобразование без потери информации 1 индексированного изображения в 8 бинарных изображений, где каждый бит бинарного изображения соответствует одному из значений двоичного кода индексов цветов исходного изображения, анализ изображений по таким критериям как: количество различных цветов (для индексированных изображений), количество пикселей определенного цвета для всех возможных значений цвета, количество неиспользуемых цветов в палитре, количество цветов в палитре всего, выполнять преобразование к таким цветовым моделям как: CMYK, XYZ, HSL,HSV, Lab, преобразовывать изображения без потерь к изображениям с частичной потерей информации.

Программная структура состоит из следующих основных программных классов (см. рис. 21).

Рисунок 21 — Блок-схема структуры программного комплекса

– реализация интерфейса управления кодированием/ BPCManager декодированием. Данный класс является промежуточным управляющим элементом между пользовательским интерфейсом и классами кодера/декодера BPCCoder, IPCCoder, FPCCoder. Управляет потоком файлов, работает с заголовками файлов, производит разбиение изображение на несколько частей для кодирования в разных потоках, управляет многопоточностью с помощью управления множеством экземпляров класса BPCCoder, IPCCoder, FPCCoder.

– кодер/декодер. Реализация разработанного алгоритма BPCCoder контекстного моделирования PCTB для сжатия/расжатия части изображения.

– кодер/декодер. Реализация разработанного алгоритма IPCCoder контекстного моделирования IPC для сжатия/расжатия части изображения.

– кодер/декодер. Реализация разработанного алгоритма FPCCoder контекстного моделирования FPC для сжатия/расжатия части изображения.

Arithmetic – реализация арифметического кодера для непосредственного кодирования/декодирования вероятностей в/из бинарный код.

ContextModel – реализация контекстной модели.

MultiByteKey – реализация ключа контекстной модели произвольной длины.

Позволяет использовать контекст произвольной длины.

AVLTree – реализация AVL – дерева Btree — реализация B – дерева SplayTree — реализация Splay – дерева InOutClass – класс, упрощающий работу с файловой системой, а также файловый ввод/вывод побайтно и побитово

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

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

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

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

Приводится описание формата выходного файла. Для подробного описания файла необходимо ввести структуру SizeBM, хранящую в себе два значения height и width – высоту и ширину прямоугольной области соответственно. Данная структура занимает в памяти 8 байт.

Закодированный файл состоит из двух основных частей – заголовка файла и основной части файла.

Заголовок файла содержит описание общих для всех файлов архива параметров, а также размеров и имен изображений и состоит из следующих полей:

Количество изображений в файле (kol) – целое, 4 байта.

Массив из kol элементов пар значений Height, Width – высоты и ширины для каждого изображения — 8 байт*kol Имена всех изображений в архиве, разделенные знаком ‘*’, где ‘*’ означает окочание имени очередного файла. Имена файлов могут иметь произвольный размер от 1 до 256 байт.

Количество потоков SubImageCount, используемых при сжатии. Также данный параметр означает, количество частей, на которое разделяется изображение.

Массив PositionsOfImages из kol-1 элементов типа int по 4 байта, каждый элемент которого обозначает смещение в файле, по которому начинается сжатое изображение. Для первого изображение по умолчанию используется смещение равное 0, относительно конца заголовка файла.

Массив из kol*(SubImage-1) элементов типа int по 4 байта, каждый элемент которого обозначает смещение в файле, по которому начинается сжатый блок изображения. Для первой части изображения по умолчанию используется смещение равное 0, относительно начала изображения.

Следующая часть заголовочного файла есть только при сжатии бинарных изображений в файлах архивов PCTB алгоритма. После основной части заголовка архива идет два массива LeftTopMas и RightBottomMas, содержащих в себе по kol элементов типа SizeBM. Данные массивы используются для хранения координат прямоугольной области изображения, в которой есть пиксели отличные от белого цвета. Такие координаты получается в результате вычисления белых рамок изображений.

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

Каждое описание сжатого изображения состоит из трех основных частей.

ColorTableSize – количество цветов в изображении, размером 4 байта.

Данный параметр отсутствует при сжатии полноцветных изображений алгоритмом FPC.

Массив ColorTable из kol элементов типа QRgb по 4 байта каждый, который хранит цветовую палитру изображения. Данная часть отсутствует при сжатии полноцветных изображений алгоритмом FPC.

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

4.3 Мультиплатформенность

В настоящее время в мире получили большое развитие операционные системы отличные от Windows. Большое количество устройств используют операционные системы на основе Linux, Unix, также широко распространено использование операционных систем фирмы Apple. В виду этого, очень важно иметь возможность, написав один раз программу, иметь несколько ее версий для разных операционных систем без ручной адаптации кода для каждой платформы. С этой целью был осуществлен перенос программы в мультиплатформенную среду разработки Данный переход добавил приложению свойство Qt.

мультиплатформенности, добавил поддержку таких графических форматов, как png и tiff, позволил увеличить производительность и сделал структуру программы более гибкой.

4.4 Общий алгоритм кодирования

В данном разделе приведено описание общего для всех трех предлагаемых алгоритмов алгоритма кодирования изображения. На рисунке 22 изображена блоксхема алгоритма. Сначала все параметры алгоритма приводятся в начальное состояние. Контекст приравнивается нулю. В контекстной модели нулевого уровня счетчики каждого возможного пикселя приравниваются единице. Потом запускается цикл.

В цикле совершаются следующие действия:

из входного файла извлекается очередной пиксель;

вычисляется контекст максимального порядка для текущего пикселя;

осуществляется попытка закодировать очередной пиксель в максимальном соответствующем ему контексте. Алгоритм попытки кодирования пикселя подробно описывается ниже;


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

модель обновляется в соответствии с текущим пикселем. Происходит обновление всех КМ, которые были встречены при кодировании текущего пикселя.

При обновлении КМ происходит увеличение счетчика частот, соответствующего текущему пикселю, на единицу. Также, на единицу увеличивается общая сумма всех накопленных частот. Происходит обновление счетчика частот символа ухода;

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

На рисунке 23 изображена блок-схема алгоритма попытки кодирования пикселя. Сначала производится проверка, встречался ли уже данный контекст ранее. Если контекст встретился первый раз, то для него создается новая КМ.

Значения счетчиков частот инициализируются нулями, кроме символа ухода. При необходимости производится процедура наследования информации. Производится процедура масштабирования счетчика последнего встреченного символа. В алгоритме PCTB коэффициент ca техники масштабирования счетчика последнего символа вычисляется по формуле (5). В алгоритмах IPC и FPC коэффициент для техники масштабирования счетчика последнего символа составляет ca=1,25.

4, f (esc ) 0 ca (5) 1,375, f (esc ) 0

Рисунок 23 — Алгоритм кодирования пикселя

Далее, возможны два случая.

1. Кодируемый пиксель уже встречался в данном контексте.

Вычисляется накопленная частота для предыдущего пикселя, частота текущего пикселя, общая сумма частот и все это передается статистическому кодировщику для генерации битового кода на основе полученных данных.

Происходит восстановление значений после применения техники масштабирования последнего встреченного символа.

2. Кодируемый пиксель встречается в данном контексте первый раз Если данный контекст уже встречался и его КМ не является новой, то статистическому кодировщику передаются данные для кодирования символа ухода, происходит восстановление значений после применения техники масштабирования последнего встреченного символа. Иначе, если КМ является новой, никаких действий не производится, так как то, что данный контекст встретился первый раз, известно и кодеру и декодеру.

4.6 Особенности реализации

Используется двумерный контекст определенной формы и размера.

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

В алгоритме PCTB используются контекстные модели 31, 11, 7, 4 и нулевого порядка. КМП при переходе от одного пикселя к другому вычисляется с помощью битовых сдвигов. Так как вычислять заново контексты меньших порядков не эффективно, то они вычисляются с помощью битовых масок из контекста максимального порядка.

В алгоритме IPC используются контекстные модели 8, 5, 2, 1 и нулевого порядка. В алгоритме FPC используются контекстные модели 6, 4, 2, 1 и нулевого порядка. В качестве контекста в алгоритмах IPC и FPC используется специальный класс MultiByteKey, позволяющий вычислять КмеП из КМП за одну операцию.

Во всех алгоритмах в контекстной модели нулевого порядка счетчики пикселей при инициализации равновероятны и равны единице.

Для эффективного хранения в памяти контекстных моделей используется АVL-дерево. Контекстная модель для конкретного контекста создается и помещается в дерево только после того, когда данный контекст первый раз встретится при обработке изображения.

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

По возможности используется битовая арифметика для увеличения быстродействия.

4.7 Алгоритм декодирования Алгоритм декодирования симметричен алгоритму кодирования. Отличия в том, что из входного файла посредством арифметического кодера извлекается частота пикселя в текущем контексте и по ней ищется пиксель или символ ухода.

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

Сначала модель приводится в исходное состояние. Частоты пикселей во всех контекстных моделях кроме нулевой приравниваются нулю, в модели нулевого уровня счетчикам частот присваиваются единичные значения. Счетчик частоты символа ухода в моделях ненулевого уровня инициализируется значением 2.

Счетчик частоты символа ухода в модели нулевого уровня всегда равен 0.

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

В цикле совершаются следующие действия:

Из входного файла с помощью арифметического кодера извлекается закодированное значение вероятности и происходит поиск пикселя, соответствующего извлеченной вероятности в текущей КМ.

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

Если извлеченной вероятности соответствует символ ухода, то вычисляется контекст меньшего порядка, который делается текущим. Происходит возврат к пункту 1.

Модель обновляется в соответствии с текущим пикселем. При обновлении модели в случае, если текущий пиксель встречается первый раз, для него производится наследование частоты от родительских контекстных моделей.

Если все пиксели сжимаемого изображения обработаны, то декодер завершает свою работу.

Вычисляются координаты следующего пикселя.

Вычисляется контекст максимального порядка для следующего пикселя с учетом обработанного пикселя.

Программе требуется в среднем 50 — 500 Мбайт оперативной памяти при сжатии изображения размером до 6 Mpix, а скорость кодирования/декодирования примерно равна 0,5 Мегапикселей в секунду на компьютере с процессором Core 2 Duo 2.8Мгц при использовании 2-х потоков.

Выводы по четвертой главе

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

Основные результаты и выводы:

1. Разработан алгоритм сжатия без потерь loss-less бинарных растровых изображений с использованием контекстного моделирования и статистического кодирования. Алгоритм отличается введением двумерного контекста определенной формы представления графической информации, а также разработанными методом ухода на КМеП, модифицированным методом наследования информации, способами вычисления КМП и КмеП, а также высоким коэффициентом сжатия.

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

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

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

Разработанные модели и структуры позволяют организовывать эффективное хранение и обработку ДКМ, оптимизируя потребление вычислительных ресурсов и ОП.

5. Разработано интегрированное программное обеспечение (ПО) на единой методологической платформе (контекстное моделирование и статистическое кодирование) для адаптивного сжатия lossless разнородной растровой информации, на базе разработанных методов, структур и алгоритмов. Разработанное ПО позволяет использовать единый интерфейс для сжатия изображений различного типа.

6. Проведены экспериментальные исследования методов и алгоритмов. При этом преимущество по Ксж составило на бинарных изображениях до 1.2-6.3 раз, в среднем в 2.8 раза для индексированных изображений составило в среднем в 1.6 раза, для полноцветных изображений в среднем в 1.45 раз по сравнению с другими специализированными и универсальными алгоритмами сжатия.

СПИСОК ЛИТЕРАТУРЫ

1. Anson, L.F. Fractal image Compression/ L.F. Anson // BYTE. – 1993. – V.

Barnsley, M. Fractals Everywhere/ M. Barnsley// Academic Press. – Boston, 2.

1988; San Diego, 1989; San Diego, 1993.

Barnsley, М.F. А Better Way to Compress Images/ М.F. Barnsley, А.D.

Sloon// BYTE. – 1988. – V. 13.

Bhushan, А.К. Efficient Transmission and Coding of Colour Components.

М.S. Thesis!/ А.К. Bhushan // Massachusetts Institute of Technology. – Cambridge, МА.

Burnsley, M. Fractal image Compression/ M. Burnsley, L.Р.Hurd 5.

//А.К.Peters Ltd. Wellesley Massachusetts. – 1993.

Burt, P. J. and Adelson, E, “The Laplacian pyramid as a compact image 6.

code,” IEEE Trans. on Communication, vol. 31: 532-540, 1983.

Burt, P. J. “Fast filter transforms for image processing,” Comp. Graphics 7.

and Image Processing, 16: 20-51, 1981.

8. Cashnikov, M.V. Hierarchical compression of’ the multidimansional data in the regional bank of’ Samara region satellite images / М.V. Gashnikov, N.I. Glumov //

Proceedings of’9th International Conference on Pattern Recognition and Image Analysis:

New Information Technologies (PRIA-9-2008). – Russian Federation, Nizhni Novgorod, September 15-19, 2008. – V. 1. – P. 159-161.

Chicheva, М.А. Image Compression Technology for Real-Time Systems of’ 9.

Remote Sensing / М.А.Chicheva, М.V. Gashnikov, N.I. Glumov, V.V. Sergeyev // Proceedings of International Соnferenсе on Computing, Communications and Control Technologies. – Texas, USA, 2004. – V. 5. – P. 237-241.

10. Clarke, R. J. Hybrid Intraframe Transform Coding of Image Data/ Clarke R.J. // IEE Proc. – 1984. – V. 131, part F, № 1.

11. Digital Compression and Coding of Continuous-tone Still Images, Part 1, Requirements and Guidelines. ISO/IЕС JTC1 Draft International Standard 10918-1 (1991)

12. Digital Compression and Coding of Continuous-tone Still Images, Part 2, Compliance Testing. ISO/1TC ITCI Committee Draft 10918-2 (1991).

13. Enomoto, H. Orthogonal Transform Coding System for Television Signals H.Enomoto, К.Shibata // IEEE Trans. Electromagnetic Compatibility, ЕМС-13, 3. Aug. – 1971.

Frei, W.Quantization of Pictoral Color Information/ W. Frei, Р.А. Jaeger, 14.

Probst Р.А. // Nachrichtentech. Z.V. 61. – 1972.

15. Gashnikov, M. V. Compression Method for Real-Time Systems of Remote Sensing./M. V. Gashnikov., N. J. Glumov, V. V. Sergeyev.// 15th International Conference on Pattern Recognition, ICPR’00, Barcelona, Spain, September 3-8. — 2000. PP.3232-3235.

Gashnikov, M.V. Adaptive interpolation algorithm fог hierarchical image 16.

compression / М.V. Gashnikov, N.I. Glumov, V.V. Sergeyev // Automation, Control, and Information Technology (ACIT): Proceedings of International Conference. – Novosibirsk, 2002. – P. 423-428.

17. Gashnikov, M.V. Hierarchical GRID interpolation under hyperspectral images compression / M.V. Gashnikov, N.l. Glumov// Optical Memory and Neural Networks (Iformation Optics). – 2014, Allerton Press, Inc. –Vol. 23, Is. 4. – Р. 246-253

18. Gashnikov, M.V. Stabilization of’ the compressed data formation rate in hier-archical image compression / М.V. Gashnikov, N.I. Glumov, V.V. Sergeev // Pattern Recognition and Image Analysis. – 2007. – V. 17, № 1. – PP. 79-81.

Gashnikov, М.V. Preparing а common raster coverage for а territory based 19.

on hi-erarchical compressed presentation of orthoimages / М.V. Gashnikov, N.I.

Glumov, А.V. Chernov// Pattern Recognition and Image Analysis. Advances in Mathematical Theory and Applications. – 2009. – V. 19, № 1. – PP. 39-42.

20. Glumov, N.I. Comprehensive approach to choice of compression and errorcontrol coding algorithms for digital image transmission through communica-tion channels/ N.I. Glumov // Proceedings of the 4th International Symposium on Image and Signal Processing and Analysis, Zagreb, Croatia. – 2005. – PP. 484-488.

21. Glumov, N.I. Improving noise immunity of transmission of compressed digital images/ N.I. Glumov// Pattern Recognition and Image Analysis. – 2003. –V. 13, № 2.

22. Goodall, W.М. Television by Pulse Code Modulation/ W.М.Goodall //Bell System Technical Journal. – 1951. –V. 30.

23. Habibi, А. Hybrid Coding of Pictoral Data/ А.Habibi // IEEE Trans.

Communications. – 1974. – V. СОМ-22, № 5.

24. Haskell, В.G. Entropy Measurements for Nonadaptive and Adaptive, Frameto-Frame, Linear Predictive Coding of Video Telephone Signals/ В.G. Haskell // Bell Systems Technical Journal. – 1975. – V. 54, № 6.

25. ITU- T Recommendation. Т.800// Information Technology JPEG 2000 Image Coding System: Core Coding System, 2004.

26. ITU-T Recommendation Т.801/ Information Technology Coding System:

Extensions, 2004. JPEG 2000 image

27. King N. Ngan. Hybrid Image Coding Scheme Incorporating Human Visual System Characteristics/ King N. Ngan, Нее С. Koh, Wai С. Wong.// Optical Engineering. – 1990. –V. 30, № 7.

28. Lin, S. Error Control Coding: Fundamentals and Applications / S. Lin, D.J.Jr.

Costello// 2nd ed., Prentice Hall: Englewood Cliffs, NJ. — 2004.

29. Mallat, S.G. IЕЕЕ Trans. on Pattern Anal. and Mach./ S.G. Mallat // Intell.

30. Mandelbrot, В. Les Objets Fractals: Form/ В. Mandelbrot // Hasard et Dimension Flammarion. – Paris, 1975.

31. Mandelbrot, В.В. The Fractal Geometry of Nature. / В.В. Mandelbrot// W. H.

Freeman and Company; 1St Edition edition 1982.

32. Monroe, D.M Fractal Block Coding of Images/ D.M. Monroe, F.Dudbridge // Electronics Letters. –1992. – PР. 28, № 11.

33. Oliver, В.М. The Philosophy of РСМ/ В.М.Oliver, J.R.Pierce, С.Е. Shannon // Proceedings of IRE. –1948. – V. 36.

34. Burt, P. J. The Pyramid as a Structure for Efficient Computation/ P. J. Burt.

– New York: Springer-Verlag, 1984.

35. Burt, P. J. A Multiresolution Spline with Application to Image Mosaics / P.

J. Burt, E. H. Adels // ACM Transactions on Graphics. –1983. – №2(4). – PP.217-236.

Pratt, W.К. Slant Transform for Image Coding/ W.К. Pratt, L.В.Welch, 36.

Илон Маск рекомендует:  Что такое код setscrollrange

W.Н.Chen // Proceedings Symposium on Applications of Walsh Functions. – 1972. PP.229-234 Primer, А. Introduction to Wavelets and Wavelet Transforms/ А.Primer // 37.

Prentice Hall. Upper Saddle River, New Jersey 07458. http://www.prenhall.corn

38. Proceedings of the 2-nd Data Compression Conference (March 1992 Snowbird Utah USA)// IEEE Computer Society Press. –1992.

Sproull, R.F А Comparison of Codebook Generation Techniques for Vector 39.

Quantization/ R.F.Sproull, I.Е.Sutherland // The Proceedings of the 2-nd Data Compression Conference (Маг. 92 Snowbird Ut)// IEEE Computer Society Press.

The New Test Images URL:http://imagecompression.info/test_images (Дата 40.

обращения: 18.02.2012) The USC-SIPI Image Database URL:http://sipi.usc.edu/database/ (Дата 41.

42. Vasin, Yu.G. Information Techniques for Hierarchical Image Coding / Yu.G. Vasin, S.V.Zherzdev // Pattern Recognition and Image Analysis. – 2003. – Vol.

13, № 3. – PP. 539–548.

Wallace, G.К. The 3PEG Still Picture Compression Standard/ G.К.Wallace// 43.

Communication of the АСМ. – 1991. –V. 34, № 4.

44. Woods, J.W. Multidimensional signal, image, and video processing and coding/ J.W. Woods. – Troy, NY: Elseiver Academic Press, 2006. – 493 р.

Александров, В.В. Представление и обработка изображений/ В.В.

Александров, Н.Д. Горский – Л.: Наука, – 1985.

Ансон, Л. Фрактальное сжатие изображений/ Л. Ансон, M. Барнсли. – 46.

Мир ПК. – 1992. – № 4.

Бабкин, В.Ф. Аппаратура для космических исследований: в кн.:Сжатие 47.

данных / Бабкин В.Ф., Крюков А.Б., Штарьков Ю.М.// (М.: Наука, 1972) С. 172 Блаттер, К. Вейвлет-анализ. Основы теории/ К.Блаттер; пер. с нем. Т.Э.

Кренкел; под. ред. А.Г. Кюркчана. – М.: Техносфера, 2006.

Блейхут, Р. Быстрые алгоритмы цифровой обработки сигналов/ 49.

Р.Блейхут; пер. с англ. И.И. Грушко. – М.: Мир, 1989.

Блох, Э. Л. Модели источника ошибок в каналах передачи цифровой 50.

информации/ Э. Л. Блох, О. В. Попов, В. Я. Турин.// — М. : Связь, 1971. — 312 с.

Борусяк, А. В. Сжатие бинарных изображений с использованием 51.

контекстного моделирования//Proceedings of 8th Open German-Russian Workshop «Pattern Recognition and Image Understanding». — OGRW-8-2011. — Lobachevsky State University of Nizhny Novgorod, 2011 Борусяк, А. В. PCTBCoder/ А.В. Борусяк // Свидетельство о 52.

регистрации электронного ресурса № 22192 от 20.11.2020.

Борусяк, А. В. Сжатие бинарных графических изображений на базе 53.

статистического кодирования с использованием контекстного моделирования/ А.В.

Борусяк // Свидетельство о регистрации электронного ресурса № 20764 от 03.02.2015.

Борусяк, А. В. Алгоритм сжатия индексированных изображений с 54.

использованием контекстного моделирования / А.В. Борусяк, Ю.Г. Васин // Тр. 9ой открытой Германо-Русской конф. по распознаванию образов и пониманию изображений. – 2015. – С.60-62.

Борусяк, А.В. Оптимизация вычислительной сложности адаптивного 55.

алгоритма сжатия бинарных растровых изображений/ А.В. Борусяк, Ю.Г. Васин, С.В. Жерздев// Распознавание образов и анализ изображений: новые информационные технологии: 11 междунар. конф. – Самара, 2014. – С.170-172.

Борусяк, А.В. Развитие алгоритма адаптивного сжатия 56.

индексированных изображений с использованием контекстного моделирования/ А.

В. Борусяк, Ю. Г. Васин// Pattern recognition and image analysis (advances in mathematical theory and applications). – 2020. – Т. 26, №1. – С. 4-8.

57. Борусяк, А. В. Сжатие бинарных графических изображений с использованием контекстного моделирования / А.В. Борусяк, Ю.Г. Васин, С.В.

Жерздев // Pattern recognition and image analysis (advances in mathematical theory and applications). – 2013. – Т. 23, № 2. – С.207-210.

58. Борусяк, А. В. Сжатие бинарных изображений с использованием контекстного моделирования / А.В. Борусяк, С.В. Жерздев // Распознавание образов и понимание изображений: 8-ой открытый Германо-Русский семинар OGRW-8-2011. – Н. Новгород, 2011. – СС.25-27.

59. Борусяк, А.В. Сжатие индексированных графических изображений с использованием контекстного моделирования / А.В.Борусяк, Ю.Г. Васин // Вестник Нижегородского университета им. Н.И. Лобачевского. – 2014. – № 4-1. – С. 486Борусяк, А.В. Увеличение скорости работы алгоритма адаптивного сжатия бинарных растровых изображений/ А. В. Борусяк// Информационные технологии и Нанотехнологии (ITNT-2015): тр. междунар. конф. – Самара, 2015. – С. 262-267.

61. Быстрые алгоритмы в цифровой обработке изображений. Преобразования и медианные фильтры/ под ред. Т.С. Хуанга; пер. с англ. под ред. Л.П.

Ярославского. – М.: Радио и связь, 1984.

62. Васин, Ю.Г. Адаптивное сжатие видеоинформации на базе ЛОХПБФ / Васин Ю.Г., Жерздев С.В.// Связь 2001: тезисы 4-й междунар. конф. – Владимир, 2001.

63. Васин, Ю.Г. Интегрированный программный комплекс для сжатия большеформатных изображений на базе методов статистического кодирования с контекстным моделированием/ Васин Ю.Г., Борусяк А.В.// Труды 26-ой Международной конференции и школы-семинара по компьютерной графике, обработке изображений и машинному зрению, системам визуализации и виртуального окружения. – Н.Новгород, 2020.

64. Васин, Ю.Г. Информационные технологии иерархического сжатия изображений/ Ю.Г.Васин, С.В.Жерздев // Pattern Recognition and Image Analysis. – Vol. 13,№ 3. – PP. 539-548

65. Васин, Ю.Г. Оптимизация описания исходных данных в диалоговых системахрешения задач классификации/ Ю.Г. Васин // В кн. «Современное состояние теории исследования операций». – М.: Наука, 1979. – С.424-450.


66. Васин, Ю.Г. Рекуррентные алгоритмы адаптивного сжатия с использованием хорошо приспособленных локальных восстанавливающих функций/ Ю.Г. Васин, В.П.Бакараева// Математическое обеспечение САПР:

межвуз. сб. – Горький: ГГУ, 1978. – Вып.1.

67. Васин, Ю.Г. Сжатие большеформатных изображений c помощью статистического кодирования с использованием контекстного моделирования/ Ю.Г. Васин, А.В. Борусяк // Тр. Междунар. науч. конф. SCVRT1516. 21-24 ноября 2015-2020 гг., ЦарьГрад, Московская область, Россия.

68. Васин, Ю.Г. Сжатие исходного описания ЭКГ-сигналов/ Ю.Г. Васин // Теория и практика разработки автоматизированных медицинских информационных систем: тр. Республиканской конференции. – Киев, 1975. – С.69Васин, Ю.Г. Технология иерархического кодирования видеоинформации/ Васин Ю.Г., Жерздев С.В. // ГрафиКон’2002: сб. докл. 12-й Междунар. конф. по компьютерной графике и машинному зрению. – Н.Новгород: НГАСУ, 2002. – С.326-333.

70. Васин, Ю.Г. Хорошо приспособленные базисы и задачи обработки экспериментальной информации: учебное пособие/ Ю.Г. Васин. – Горький: ГГУ, 1979.

71. Васин, Ю.Г. Хорошо приспособленные локальные однородные методы обработки графической информации/ Ю.Г.Васин // Автоматизация обработки сложной графической информации: межвуз.сб. – Горький: ГГУ, 1984.

72. Васин, Ю.Г. Эффективность различных стратегий обработки видеоинформации на базе локальных однородных функций / Ю.Г. Васин //Методы и средства обработки графической информации: межвуз.сб. – Горький: ГГУ, 1986.

73. Ватолин, Д. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео/ Д. Ватолин, А. Ратушняк, М. Смирнов, В. Юркин. – М.:

ДИАЛОГ – МИФИ, 2003.

74. Виттих, В.А. Метод сжатия изображений с предсказанием и адаптивной дискретизацией / В.А. Виттих, В.В. Сергеев // Известия вузов. Приборостроение. – 1976. – № 12. – С. 15-18.

75. Виттих, В.А. Обработка изображений в автоматизированных системах научных исследований / В.А. Виттих, В.В. Сергеев, В.А. Сойфер. – М.: Наука, 1982.

76. Воробьев, В.И. Теория и практика вейвлет-преобразования/ В.И.

Воробьев, В.Г.Грибунин// ВУС. – СПб., 1999. 204c.

77. Гашников, М.В. Иерархическая компрессия в задаче хранения гиперспектральных изображений / М.В. Гашников, Н.И. Глумов // Компьютерная оптика. – 2014. – T. 38, № 3. – С. 482-488.

78. Гольденберг, Л.М. Цифровая обработка сигналов: Справочник/ Л.М.Гольденберг, Б.Д. Матюшкин, М.Н. Поляк. – М.: Радио и связь, 1985.

79. Гонсалес, P. Цифровая обработка изображений/ P. Гонсалес, P.Вудс; пер.

с англ. под ред. Чщчиа П.А. – М.: Техносфера, 2005.

80. Давыдов, А.В. Вейвлеты. Вейвлетный анализ сигналов/Давыдов А.В.// Персональный сайт проф. Давыдова. http://prodav.narod.ru/wavelet/index.htrnl

81. Дворкович, В.П. Расчет банков фильтров дискретного вейвлетпреобразования и анализ их характеристик/ В.П. Дворкович, А.В. Дворкович // Цифровая обработка сигналов. – М.: Российское научно-техническое общество радиотехники, электроники и связи им. А.С. Попова, 2006. – № 2. сс.2-10

82. Дворкович, В.П. Цифровые видеоинформационные системы (теория и практика)/ В.П. Дворкович, А.В. Дворкович. – М.: Техносфера, 2012. -1008с.

83. Добеши, И. Десять лекций по вейвлетам/ И.Добеши; пер. с англ.

Мищенко Е.В.; под ред. А.П. Петухова. – М.: РХД, 2001.

84. Дьяконов, В.П. Вейвлеты. От теории к практике/ В.П. Дьяконов. – М.:

85. Жерздев, С.В. Разработка алгоритмов адаптивного сжатия видеоинформации на основе иерархических структур для задач оперативного отображения: диссертация … кандидата технических наук: 05.13.18. – Н.Новгород, 2004. – 118 с.

86. Катермоул, К.В. Принципы импульсно-кодовой модуляции/ К.В.Катермоул; пер. с англ. под ред. В.В. Маркова. – М.: Связь, 1974.

87. Колесник, В.Д. Курс теории информации/ В.Д. Колесник, Г.Ш.

Полтырев. – М.: Наука, 1982.

88. Коннор, Д. Внутрикадровое кодирование изображений для передачи по цифровому каналу. Обработка изображений при помощи цифровых вычислительных машин / Д. Коннор, Р. Брейнард, Дж. Лимб. – М.: Мир, 1973.

89. Красильников Н.Н. Цифровая обработка изображений. — М.: Вузовская книга, 2001.- 319 с.

90. Красильников, Н.Н. Мультимедиатехнологии в информационных сетях.

Методы сжатия и форматы записи графической информации: учеб. пособие/ Н.Н.

Красильников, О.И. Красильникова. – СПб.: СПбГУАП, 2004. – 68 с

91. Красильников, Н. Н. Методы увеличения степени сжатия изображений энтропийными кодерами/ Н.Н. Красильников // Информационно-управляющие системы. – 2004. – № 1. –С.10-13.

92. Кунт М. Методы кодирования изображений второго поколения. /Кунт М., Икономонулос А., Кошер М.//ТИИЭР. – М.: Мир, 1985. – Т. 73. – № 4. – С. 59Мусман, Х.Г. Достижения в области кодирования изображений / Х.Г.

Мусман, П. Пирш, Х.-Й. Граллерт // ТИИЭР. – 1985. – № 4. – С. 31-59.

94. Нетравали, А. Кодирование изображений: Обзор / А. Нетравали, Дж.

Лимб // ТИИЭР. – 1980. – № 3. – С. 76-94.

95. Новик, Д.А. Эффективное кодирование / Д.А. Новик. – М.-Л.: Энергия, 1965.

96. Нуссбаумер, Г. Быстрое преобразование Фурье и алгоритмы вычисления сверток/ Г.Нуссбаумер; пер. с англ. под ред. В.М. Амербаева и Т.Э. Кренкеля. – М.:

Радио и связь, 1985.

97. Обработка изображений при помощи ЦВМ/ Пер. с англ. под ред. Д.С.

Лебедева. – М.: Мир, 1973.

98. Ольховский, Ю.Б. Сжатие данных при телеизмерениях / Ю.Б.

Ольховский, О.Н. Новоселов, А.П.Мановцев. – М.: Советское радио, 1971.

99. Оппенгейм, А.В. Цифровая обработка сигналов/ А.В. Оппенгейм, P.В.

Шафер – М.: Связь, 1979.

100. Претт У. Цифровая обработка изображений. В 2-х кн. – Кн. 2. – М.:

Мир, 1982. – 480 с.

101. Прэтт, У.К. Методы передачи изображений. Сокращение избыточности/ У.К.Прэтт, Д.Д.Сакрисон, Х.Г.Д Мусманн. и [др.]. – М.: Радио и связь, 1983.

102. Пэдхем, Ч. Восприятие света и цвета/ Ч.Пэдхем, Д.Сродерс. – М.: Мир, 1978.

103. Грэхем, Р. Конкретная математика. Основания информатики/ Р.

Грэхем, Д. Кнут, О. Паташник. – М.: Мир, 1998.

104. Райзер, Г.Дж. Комбинаторная математика/ Г.Дж.Райзер. – М.: Мир.

105. Ратушняк, О. А. Методы сжатия данных без потерь с помощью сортировки параллельных блоков: диссертация. кандидата физикоматематических наук : 05.13.11/ О. А. Ратушняк. — Новосибирск, 2002. – 87 с.

106. Сергеев, В.В. Вопросы кибернетики/ В.В.Сергеев // Кодирование и передача информации в вычислительных сетях: научный совет по комплексной проблеме «Кибернетика» АН СССР. – М., 1978. – Вып. 42.

107. Сергеев, В.В. Метод иерархической компрессии космических изображений/ М.В. Гашников, Н.И. Глумов, В.В. Сергеев // Автоматика и телемеханика. – 2010. – № 3. – С. 147-161.

108. Сойфер, В.А. Методы компьютерной обработки изображений/В.А.

Сойфер. – М.: Физматлит, 2003. – 784с.

109. Уинтц, П.А. Кодирование изображений посредством преобразований.

Обработка изображений при помощи цифровых вычислительных машин/ П.А.Уинтц. – М.: Мир, 1973. – С. 98

110. Федер, Е. Фракталы / Е. Федер. – М.: Мир, 1991.

111. Хуанг, Т. Обработка изображений и цифровая фильтрация/ Т. Хуанг// Под ред. Т. Хуанга: пер с англ. Е.3. Сороки и В.А. Хлебородова. – М.: Мир, 1979.

112. Шарк, Г.-Г. Применение вейвлетов для ЦОС/ Г.-Г. Шарк; пер. с англ.

Смирновой Н.И; под. Ред. Кюркчапа А.Г. – М.: Техносфера, 2007.

113. Штарьков, Ю.М. Универсальное кодирование. Теория и алгоритмы / Ю. М. Штарьков. – М.: Физматлит, 2013. – 279 с.

114. Ярославский, Л.П. Введение в цифровую обработку изображений/ Ярославский Л.П. – М.: Сов. радио, 1979.

«42 УДК 553.(981).232 ЕЛЕЦКИЕ РИФЫ ЦЕНТРАЛЬНОЙ И ЮЖНОЙ ЧАСТЕЙ ТИМАНОПЕЧОРСКОЙ ПРОВИНЦИИ И ПЕРСПЕКТИВЫ ИХ НЕФТЕГАЗОНОСТИ YEALETSIAN REEFS OF THE CENTRAL AND SOUTHERN PARTS OF THE TIMAN-PECHORA PROVINCE AND OIL-GAS PRESENCE PROSPECTS Енцов И. И. ФГБОУ ВПО «Ухтинский государственный технический университет», г. Ухта, Россия I. I. Yentsov. »

«УДК 316.736 ББК 60.524.5 П 57 Е.Б. Попкова, соискатель кафедры социальных коммуникаций и технологий ЮФУ, доцент кафедры «Русский язык и культура речи» Южно-Российского государственного технического университета (Новочеркасский политехнический институт), Новочеркасск, тел.: 8-908-504Е-mail: evpopkova@yandex.ru Инкультураци. »

«Министерство образования и науки Российской Федерации федеральное государственное автономное образовательное учреждение высшего образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Институт _ИнЭО Специальность_13.03.02 – Электроэнергетика и электротехника К. »

«ПРОБЛЕМЫ ИНФОРМАЦИОННОГО ОБЩЕСТВА УДК 027.7(485) Дэниэл Форсман Через год вы пожалеете, что не стартовали сейчас: модернизация технической политики и организационной структуры библиотеки Представлена новая структура библиотеки Технологиче. »

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» ЮРГИНСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ) ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО АВТОНОМНОГО ОБРАЗОВАТЕЛЬН. »

«Ю.Г. Трубников и др. // Известия ДВФУ. Экономика и управление. 1. 2020. 37–47 ЭОНОМИЧЕСКАЯ ВОПРОСЫ УПРАВЛЕНИЯ Генезис систем управления судостроительным и судоремонтным производствами в России Юрий Трубников1, Виктор Осипов2,*, Александр Андрюхин3 Дальневосточный федеральный университет, Владивосток Владивос. »

«ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ ГОСТ Р ИСО НАЦИОНАЛЬНЫЙ СТАНДАРТ 8573-9 — РОССИЙСКОЙ ФЕДЕРАЦИИ 2007 СЖАТЫЙ ВОЗДУХ Часть 9 Методы определения содержания воды в жидкой фазе ISO 8573-9:2004 Compressed air — Part 9: Test methods for liquid water content (IDT) Издание официальное БЗ 8—2006/209 1—. »

«Honeywell, Moscow Тел. +7 495 796-98-00 Факс: +7 (495) 796-98-94 www.gaselectro.ru ТУРБИННЫЕ СЧЕТЧИКИ ГАЗА SM-RI-X РУКОВОДСТВО ПО УСТАНОВКЕ И ЭКСПЛУАТАЦИИ Содержание: Принцип работы Параметры измерения Потеря давления Размеры и материалы Рекомендации по уст. »

«Министерство образования и науки Российской Федерации Уральский федеральный университет имени первого Президента России Б. Н. Ельцина АТОМНАЯ И ЯДЕРНАЯ ФИЗИКА Рекомендовано методическим советом УрФУ в качестве учебного пособия для студентов, обучаю. »

2020 www.net.knigi-x.ru — «Бесплатная электронная библиотека — электронные матриалы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.

Контекстно-словарное сжатие текстовой информации на основе лексических правил Текст научной статьи по специальности « Автоматика. Вычислительная техника»

Аннотация научной статьи по автоматике и вычислительной технике, автор научной работы — Кабальнов Юрий Степанович, Максимов Сергей Владимирович, Калентьева Маргарита Борисовна

Предложен путь улучшения сжатия текстовой информации на основе лексических правил и применение контекстно-словарного сжатия . Тем самым открывается возможность применения предложенных моделей для создания поисковых систем нового поколения. Показано, что применения лексических правил даёт возможность семантического анализа содержания текстов, смыслового поиска информации, формирования электронных архивов

Похожие темы научных работ по автоматике и вычислительной технике , автор научной работы — Кабальнов Юрий Степанович, Максимов Сергей Владимирович, Калентьева Маргарита Борисовна,

Contextual-dictionary compression of the text information on the basis of lexical rules

The way of improvement of compression of the text information on the basis of lexical rules and application of contextually-dictionary compression is offered. That the opportunity of application of the offered models for creation of search systems of new generation opens. It is shown, that applications of lexical rules enables the semantic analysis of the maintenance of texts, semantic information search, formation of electronic archives.

Текст научной работы на тему «Контекстно-словарное сжатие текстовой информации на основе лексических правил»

МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ МАШИН .

Ю.С.КАБАЛЬНОВ, С. В. МАКСИМОВ М.Б.КАЛЕНТЬЕВА

КОНТЕКСТНО-СЛОВАРНОЕ СЖАТИЕ ТЕКСТОВОЙ ИНФОРМАЦИИ НА ОСНОВЕ ЛЕКСИЧЕСКИХ ПРАВИЛ

Предложен путь улучшения сжатия текстовой информации на основе лексических правил и применение контекстно-словарного сжатия. Тем самым открывается возможность применения предложенных моделей для создания поисковых систем нового поколения. Показано, что применения лексических правил даёт возможность семантического анализа содержания текстов, смыслового поиска информации, формирования электронных архивов. Сжатие текстовой информации; контекстно-словарное сжатие; сжатие на основе лексических правил

В ряде случаев при организации хранения и передачи информации приходится иметь дело c текстовой информацией. Примером этому могут быть различного рода поисковые системы (Rambler, Yandex, Google и т.д.), системы хранения специализированной текстовой информации для дистанционного обучения, речевого общения пользователя с компьютером и т.д.

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

Известные на сегодняшний день методы сжатия тестовой информации можно разделить на три группы: словарные методы, контекстные методы, статистические методы [1,2,4].

Недостатками первой группы методов являются:

• зависимость скорости распаковки от размера словаря;

низкая эффективность сжатия разнородных данных;

показатели кодирования проигрывают декодированию, так как тратится время на поиск фраз возможной наибольшей длины;

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

о возможных объектах.

Недостатками второй группы методов являются:

• скорость сжатия уступает словарным методам;

• медленное декодирование; несовместимость кодера и декодера в

случае изменения алгоритма;

• медленная обработка мало избыточных данных;

• большие запросы на память;

• проигрыш в эффективности сжатия для длинных повторяющихся блоков, по сравнению со словарными методами.

Недостатками третьей группы методов являются:

• использование в качестве объектов сжатия слабо структурируемых цепочек символов (двоичных кодов);

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

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

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

реляционное Разбиение на морфемы

Заголовок файла ‘ \ морфемы

Закодированная часть древообразная

текста модель словаря

Рис. 1. Укрупненная структурная схема процесса контекстно-словарного сжатия текстовой информации

1. КОНТЕКСТНО-СЛОВАРНАЯ МОДЕЛЬ СЖАТИЯ ТЕКСТОВОЙ ИНФОРМАЦИИ

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

Учитывая, что сжатие предусматривает замену часто используемых символов короткими кодами, объем информации можно уменьшить до 30-50%.

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

• редко встречаются повторяющиеся последовательности вида «аааааааааа»;

• необходимо рассматривать не только отдельный символ, но и группы символов, образующих слова;

для текстов на естественных языках длина повторяющихся последовательностей обычно не превышает 20 символов.

На рис. 1 показано, что над текстовой информацией необходимо провести следующие преобразования: построить реляционную модель словаря; разбить на морфемы. Для построения словаря необходимо разбить текст на слова (для разбиения на слова используются разделительные знаки), полученные слова расчленить на морфемы (используются аналогичные правила как на естественных языках). Реляционную модель словаря используем для кодирования теста, полученный словарь морфемы используется для построения древообразной модели словаря и кодирования ее с помощью словаря морфем. Узлы древообразного словаря являются ссылками на словарь морфем. Полученные данные сохраняются в той последовательности как показано на рис. 1.

Процесс сжатия текста выглядит следующим образом.

1) Построение реляционной модели словаря исключением повторов.

2) Сортировка по частоте встречаемости и длине.

3) Построение кода.

4) Кодирование текста с учетом особенностей построенного кода словаря.

Рис. 2. Формирование компонентов модели контекстно-словарного сжатия текстового файла

Эффективный код сжатого текста зависит от того, насколько объективно оценивается частота появления слов. Чем чаще появляется слово, тем короче будет предоставлен для него код. Каждому хранящему слову присваивается код в зависимости от частоты появления. Это означает, что у самого часто встречаемого слова будет самый короткий код. Полученный код сохраняется в выходном файле. Сохранение кода слова вместо самого слова также позволяет сократить объем закодированного текста.

Эффективный код сжатия также зависит от длины слова, сохраняемого в словаре. Максимальная длина слова может дать выигрыш в случае, если код слова, используемый для кодирования, станет длиннее длины кодируемого слова.

2. ДРЕВОВИДНАЯ ЛОГИЧЕСКАЯ МОДЕЛЬ ПОПОЛНЯЕМОЙ БАЗЫ МОРФЕМ

Представление словаря в виде иерархической структуры является наиболее важным в данной работе. Используя языковые особенности и существующие ограничения, можно заметить, что при составлении слов прослеживается иерархическая структура [5].

Хранение словаря в виде реляционной базы является неэффективным. Она пригодна для замены контекстами кодируемого текста, но не пригодна для хранения.

Преобразование реляционного словаря в иерархическую структуру предлагается выполнить следующим образом:

1) Разложить слово на морфемы. Полученные морфемы по необходимости добавлять в словарь морфем, либо просчитывать

количество совпавших морфем для получения оптимального кода для контекста.

2) Полученные индексы морфем в порядке появления в слове присоединяют в древовидный словарь. Каждая морфема образует узел соответствующего уровня.

3) В случае совпадения морфем соответствующего уровня, осуществляется переход на следующий уровень. В случае отсутствия добавляется новая ветка.

4) После окончания обработки каждой ветке присваивается соответствующий контекст.

Рис. 3. Объектно-когнитивная модель представления словаря

Предлагаемая нами модель иерархического словаря приведена на рис. 4. Она включает в себя:

элементы (узлы) словаря, которые являются ссылками на словарь морфем;

ребра, которые позволяют реконструировать слово из морфем.

Окончанием ветки словаря являются ссылки на знаки препинания, которые имеют код для кодирования текста.

Рис. 4. Древовидная модель хранения морфем

Реляционная модель словаря морфем (табл.) представлена в виде 4-местного кортежа Д = <п, Г2, Гз, Г4>, где П. — порядковый номер (ключ отношения), Г2 — морфема, Гз — двоичный код переменной длины, — частота встречаемости в словаре.

Структура пополняемого словаря морфем

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


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

Элементами (узлами) словаря являются ссылки на словарь морфем. Это связано с тем, что каждое слово в словаре составляется из последовательностей морфем. Морфемы желательно хранить отдельно от модели словаря. Количество различных вариантов морфем, которые встречаются в тексте, значительно меньше слов. Длина морфемы короче длины слова, так как слова составляются из морфем. Поиск и построение словаря заметно ускоряется, так как определяется на уровне разложения слова на морфемы.

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

Древообразная форма представления позволяет исключать из словаря еще на первом уровне дерева повторяющиеся слоги, которые используются при составлении слова.

3. АЛГОРИТМЫ КОНТЕКСТНО-СЛОВАРНОГО СЖАТИЯ ДАННЫХ НА ОСНОВЕ ПРЕДЛОЖЕННЫХ МОДЕЛЕЙ

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

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

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

жен пригодный метод построения моделей состояний; метод DMC (динамическое сжатие модели Маркова) — лишь форма контекстноограниченной модели. Другим направлением исследований является метод выделения кодов ухода в частично соответствующих контекстуальных моделях. В итоге, преобразование систем, определяемых состояниями, таких как скрытые модели Маркова, может дать улучшение для сжатия текстов.

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

Предлагаемый алгоритм сжатия чисто текстовой информации основан на эмпирическом законе Ципфа: частота появления слов, отсортированных по частоте употребления, обратно пропорциональна их номерам; другими словами,

Закон Ципфа выполняется для многих языков (английского, французского, немецкого, испанского, русского, китайского), невзирая на их существенные различия в грамматике и синтаксисе.

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

Применение алгоритмов поиска совпадающих последовательностей бинарных кодов для объектов контекстно-словарного сжатия (ссылки на тезаурус, древовидная модель тезауруса, словарь морфем) используется для формирования оптимальных последовательностей сжатых бинарных кодов указанных

объектов. Показано, что сложность разработанного алгоритма растет нелинейно относительно длины входной последовательности символов.

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

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

Пусть А = <ах. , щ>— некоторый алфавит, используемый для записи слов. Имеется последовательность символов :

последовательность (поток Т = <ж>) текущих текстовых символов, образующих слова;

G = — множество знаков препинания и служебных разделителей, входящих в алфавит А

Множество S = |«[г] С <х € AiV>, count € будем называть словарем.

Преобразование F(x) : Т -> S будет описывать процедуру структуризации исходной текстовой информации. В процессе структуризации элементам s [г] ставится в соответствие последовательность элементов потока Т, окончанием которого являются элементы множества .

Сжатие потока Т будем описывать с помощью преобразования

К(х) : Т -»• Т'(х -»• S.Code),

где count — частота появления ф] в словаре; Code — код, присвоенный после сортировки по убыванию частоты; Т’ — поток, состоящий из ссылок на словарь, который является контекстом (ссылки на словарь), описывающим поток .

Ниже представлены блок-схемы алгоритмов структуризации информации, реализующие указанные выше преобразования F(x) : ,.

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

1) Разбить слова на морфемы.

2) Представить словарь в древовидной форме на основе проведенных ранее разбиений.

Рис. 6. Выявление структуры и построение модели

Рис. 7. Построение и проведение кодирования на основе выявленных структур (К(х) : Т -4 Т'(х ->• S.Code))

Разбиение слова на морфемы можно производить одним из двух предложенных способов:

разбиение слова на слоги; разбиение на составные части слова (морфемы).

Разбиения на слоги предлагается выполнить следующим образом.

Возьмем для примера алфавит русского языка А = <А. Я, а. я>. Буквами обозначаем звуки, которые произносим во время разговора. Звуки делятся на глухие и звонкие, по аналогии со звуками, буквы также делятся на два типа:

Зная, что за согласной буквой должна следовать гласная, легко можно выделить из слова слоги.

Например: «машина» —> «ма-ши-на».

В данном случае воспользовались правилом «сг». Для большинства слов, встречающихся в русском языке, применимо данное правило, но бывают исключения:

появление в слове сразу нескольких гласных («сггс», «гсггсг»);

появление в слове сразу нескольких согласных («сгсссг», «ссссгссг»).

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

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

Алгоритм выделения слогов выглядит следующим образом:

1) Вводится обрабатываемое слово.

2) Преобразуется в последовательность из «с» «г».

3) Производится поиск в базе знаний, если указанного слога нет в базе, слово заносится в список нераспознанных слогов. Данный список позволит выявить типы слогов, не заложенные в базу знаний. Само слово сохраняется в списке слогов неизменно. Это условие

необходимо для возможности обратить сжатую последовательность.

4) Определяются индексы начала и конца.

5) Полученный слог заносится в словарь слогов; если найденный слог существует, то увеличивается счетчик слог.

6) Повторяем шаги 3-5, пока не достигнем конца слова.

Рис. 8. Блок-схема алгоритма получения древовидной модели словаря

Шаблон, по которому определяются правила разбиения на слоги, назначается следующим образом. Обозначим через «с» — согласные, «г» — гласные. Шаблон составляется так, чтобы в нем был небольшой избыток информации, в котором указывается дополнительная информация всевозможных следующих пар слогов, которые могут следовать после распознанного слога. Например, для получения слога «сг» указываем следующий шаблон «сгсг». Для правильного определения основной части слога дополнительно задается позиция значимой части шаблона, который необходим для получения правильной части слога, например, в данном случае 2.

Следовательно, формат шаблона (правила) представляет собой запись. В него входят следующие поля:

Rule[20]: правила «сг»;

: количество символов, которые являются значимыми для выделения морфема из поля .

Если слово заканчивается знаком препинания, то в конце ставим «п». Процесс отделения знаков препинаний происходит в самом начальном этапе распознавания морфем.

Другой метод для преобразования словаря — деление слов по составу, т.е. на приставки, корни, суффиксы и окончания. Данный метод обусловлен тем, что в языке встречаются и однокоренные слова, поэтому корни разных слов мы можем заменить одним и тем же индексом. Это помогает уменьшить размеры слов, следовательно, и словаря. Чем больше букв в любой части слова, тем лучше, так как целую часть слова мы заменяем одним индексом [3].

Таким образом, получаем матрицу, состоящую из приставок, корней, суффиксов и окончаний, которые содержатся в словаре. Для уменьшения объема получаемого файла, при сжатии словаря, создаются готовые списки приставок, суффиксов и окончаний, которые часто встречаются. Каждый элемент списка имеет индекс, который в дальнейшем будет являться кодом. Используя полученные коды, преобразуем словарь. Слова делятся, используя следующее простое правило.

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

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

древовидная модель процедуры словообразования, упрощающая получение нужных символьных конструкций на этапах сжатия и восстановления слов;

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

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

На основе разработанных метода и алгоритмов контекстно-словарного сжатия текстовой информации создан программный комплекс MSV Quick Reader, используемый в настоящее время на кафедре программирования и вычислительной математики Башкирского государственного педагогического университета. Экспериментальные исследования эффективности данного комплекса показали, что он обеспечивает увеличение на 5-7% степени сжатия текстовых данных по сравнению с известными методами и, как следствие, снижение на такую же величину трафика учебной информации в компьютерных сетях.

1. Кабальнов, Ю. С. Сжатие информации использованием статистических прогнозирую-

щих моделей / Ю. С. Кабальнов, С. В. Максимов, И. В. Павлов // Проблемы техники и технологий телекоммуникаций : матер. V между-нар. науч.-техн. конф. Самара, 2004. С. 154156.

2. Максимов, С. В. Алгоритм передачи данных в телекоммуникационных системах / С. В. Максимов // Вестник МаГУ : периодич. научн. журн. Вып. 5. Естественные науки. Магнитогорск : МаГУ, 2004. С.330.

3. Кабальнов, Ю. С. Сжатие текстовых данных с учетом особенностей словообразования в русском языке / Ю. С. Кабальнов, С. В. Максимов // Ученые записки : сб. науч. статей. Вып. 7. Уфа: БГПУ, 2005. С. 238-241.

4. Кабальнов, Ю. С. Модели и алгоритмы сжатия информации применением цепей Маркова / Ю. С. Кабальнов, С. В. Максимов, С. В. Павлов // CSIT-2005 : тр. междунар. конф. Уфа, 2005. Ч. 1. С. 85-91. (На англ. яз.).

5. Максимов, С.В. Древовидная модель словаря представления слов / С. В. Максимов // ЭВТ в обучении и моделировании : сб. науч. тр. / Бирск, 2005. Ч. 2. С. 201-205.

Кабальнов Юрий Степанович, проф., зав. каф. информатики. Дипл. инж. электронной техники (УАИ, 1971). Д-р техн. наук по управлению в технических системах (УГАТУ, 1993). Иссл. в обл. адаптивного и интеллектуального управления.

Максимов Сергей Владимирович, ст. преп. той же каф. Дипл. преп. математики и информатики (БГПИ, 1993). Канд. техн. наук по мат. и прог. обеспеч. выч. машин, комплексов и комп. сетей (УГАТУ, 2006). Иссл. в обл. сжатия информации.

Калентьева Маргарита Борисовна, ассист., аспирантка той же каф. Дипл. преп. математики и информатики (БГПУ, 2005). Готовит дис. по моделям и алгоритмам семантического сжатия информации.

Модели и алгоритмы контекстно-словарного сжатия текстовых данных : Применительно к системам электронного обучения

Оглавление
ВВЕДЕНИЕ.
ГЛАВА 1. АНАЛИЗ МЕТОДОВ СЖАТИИ ИНФОРМАЦИИ.
1.1. Предварительные замечания
1.2. Модели словарного сжатия.
1.3. Модели контекстного сжатия.
1.3.1. Модели с фиксированным контекстом
1.3.2. Контекстуальносмешанные модели
1.3.3. Вероятность ухода
1.3.4. Исключения.
1.3.5. Алфавиты.
1.4. Другие методы статистического моделирования.
1.4.1. Динамическое сжатие Маркова
1.4.2. Г рамматические модели.
1.4.3. Модели новизны.
1.4.4. Выводы по первой главе.
ГЛАВА 2. КОНТЕКСТНОСЛОВАРНЫЕ МОДЕЛИ СЖАТИЯ
2.1. Предварительные замечания
2.2. Сжатие текстовых файлов
2.3. Структурная модель представления сжатия текстовой информации .
2.4. Постановка задачи приведения к предложенной схеме
структурированного вида.
2.5. Модель сжатия использующий контекстнословарный метод
2.5.1. Модель хранения сжатого текста.
2.5.2. Древовидная модель словаря.
2.5.3. Модель словаря морфем
2.6. Выводы по второй главе.
ГЛАВА 3. АЛГОРИТМЫ КОНТЕКСТНОСЛОВАРНОГО СЖАТИЯ ДАННЫХ НА ОСНОВЕ ПРЕДЛОЖЕННЫХ МОДЕЛЕЙ.
3.1. Предварительные замечания
3.2. Приведение информации к структурированному виду
. 3.3. Преобразование словаря.
3.3.1. Разбиение слова на слоги
3.3.2. Разбиение на составные части слова
3.3.3. Древовидное представление структуры словаря.
3.4. Оценка построение структуры словаря от способа разложения слов.
3.5. Кодирование текста с использованием полученного словаря
3.5.1. Построение кодов переменной длины.
3.5.2. Применение кодирования контекстных индексов арифметического
кодирования
3.6. Оценка эффективности полученных кодов алгоритма кодирования с
помощью словаря
3.6.1. Стоимость кодирования текста
3.6.2. Оценка объема необходимой памяти
3.7. Управление распределением памяти.
3.8. Выводы по третьей главе
ГЛАВА 4. ПРОГРАММНЫЙ КОМПЛЕКС КОНТЕКСТНОСЛОВАРНОГО СЖАТИЯ ТЕКСТОВЫХ ДАННЫХ V I
4.1. Основные требования к техническому облику программного
комплекса V i .
4.2. Область применения программного комплекса
4.3. Проблемы существующих систем.
4.4. Задачи разработки программного комплекса.
4.5. Этапы разработки программного комплекса
4.6. Реализация блока сжатия файлов.
4.6.1. Реализация блока .
4.6.2. Реализация блока .
4.7. Сравнительная оценка эффективности.
4.7.1. Тестовые данные
4.7.2. Методика сравнения.
4.7.3. Результаты сравнения
4.8. Пример преобразования и кодирования слов.
4.9. Выводы по четвертой главе
ПРИЛОЖЕНИЕ 1
Листинг V.
ПРИЛОЖЕНИЕ 2.
Акт внедрения
Иллюстрации
Рис. 1 Модель сжатия реляционным словарем
Рис. 2 Модель сжатия динамическим словарем.
Рис. 3 Модель контекстного сжатия
Рис. 4 Операция клонирования в .
Рис. 5. Начальная модель ДМС с одним состоянием
Рис. 6. Более сложная начальная модель.
Рис. 7. Вероятностная грамматика для круглых скобок
Рис. 8 Структурная модель представления сжатия текстовой информации
Рис. 9 Модель сжатия контекстнословарного метода
Рис. Сравнение представления словарей.
Рис. Улучшенная модель представления словаря
Рис. . Модель сжатия текстового файла
Рис. Модель представления текста в естественных языках
Рис. Модель представления словаря после разбиения слов на слоги.
Рис. Модель программного комплекса V i .
Рис. Реализация блока сжатия текстового файла.
Рис. Реализация распаковки тестового файла
Рис. Результаты сравнения программ сжатия для тестового набора файлов.
Рис. График сравнения коэффициента сжатия от языковых особенностей
Введение
Актуальность

Сложность поставленной задачи состоит в том, чтобы правильно построить структуру, которая отвечала бы всем требованиям эффективного использования сжимаемой информации, с учетом их неоднородность. Таким образом, задача по разработке контекстно-словарного сжатия текстовых данных является весьма актуальной, а ее разрешение позволяет заметно повысить эффективность сжатия текстовых данных. Целью работы является разработка метода контекстно-словарного сжатия, обеспечивающего одновременно высокую степень сжатия текстовых данных и высокую скорость их распаковки при передаче и хранении. Разработка контекстно-словарных моделей сжимающих текстовые данные. Разработка древовидной логической модели пополняемой базы элементарных единиц словообразования (морфем) на основе известных правил словообразования в естественных языках. Разработка алгоритмов контекстно-словарного сжатия текстовых данных на основе предложенных моделей. Создание программного обеспечения, реализующего разработанные алгоритмы. Проверка эффективности разработанного программного обеспечения на примере организации хранения и передачи учебной информации. Объектно-когнитивная модель контекстно-словарного сжатия. Древовидная логическая модель пополняемой базы элементарных единиц словообразования (морфем). Контекстно-словарные алгоритмы сжатия текстовых данных с использованием элементов статистического прогнозирования. Программное обеспечение, реализующее разработанные алгоритмы контекстно-словарного сжатия данных. Новизна разработанной модели контекстно-словарного сжатия заключается в том, что она основана на предварительной структуризации сжимаемой текстовой информации с помощью известных правил для словообразования в естественных языках. Это позволяет повысить показатели качества сжатия текстовой информации в системах электронного обучения. Новизна предложенных алгоритмов, реализующих сжатие текстовой информации, заключается в использовании тезаурусных моделей ее сжатия, основанных на раздельном сжатии элементов текстовой информации: слов, ссылок на них, хранящихся в словаре, самого словаря, морфем, служебных символов. Новизна предложенного способа кодирования текстовой информации на основе статистических прогнозирующих моделей заключается во взаимосвязанном (контекстном) сжатии следующих классов символьных конструкций: слов, ссылок на них, хранящихся в словаре, самого словаря, морфем, служебных символов. Это позволяет более точно определить условные вероятности появления символов. Это позволяет обеспечить высокую степень сжатия текстовой информации в условиях возможного изменения условных вероятностей появления символов. Разработан программный комплекс MSV Quick Reader, использующий реализованные алгоритмы сжатия. Экспериментальная проверка эффективности предложенных алгоритмов контекстно-словарного сжатия текстовых данных с помощью данного комплекса показала, что они обеспечивают увеличение степени сжатия для текстовых данных по сравнению с известными его вариантами и как следствие, снижение трафика компьютерных сетей на 5 — 7 %. Использование программного комплекса MSV Quick Reader при электронном обучении позволяет существенно увеличить объемы хранимой в компьютере и передаваемой по компьютерным сетям учебной информации, при зодних и тех же характеристиках используемых компьютеров. Программный комплекс MSV Quick Reader внедрен в Башкирском государственном педагогическом университете и в настоящее время используется на кафедре программирования и вычислительной математики. Программное обеспечение данного комплекса имеет открытую архитектуру, что позволяет развивать данный программный комплекс с помощью добавления соответствующих модулей. Диссертационная работа выполнялась в рамках госбюджетного финансирования кафедре информатики Уфимского государственного авиационного технического университета и кафедре программирования и вычислительной математики Башкирского государственного педагогического университета, а также в рамках внутривузовского гранта « Информационные технологии в образовании» (БГПУ).

Моделирование при сжатии текстовых данных контекстуально смешанные модели

Разработано большое количество разнообразных методов, их модификаций и подвидов для сжатия данных. Современные архиваторы, как правило, одновременно используют несколько методов сжатия[7]. Можно выделить некоторые основные.

Кодирование длин серий (RLE- сокращение от run- length encoding- кодирование длин серий). Последовательная серия одинаковых элементов данных заменяется на два символа: элемент и число его повторений. Широко используется как дополнительный, так и промежуточный метод. Программные реализации алгоритмов RLE отличаются простотой, высокой скоростью работы, но в среднем обеспечивают недостаточное сжатие[16].

Наилучшими объектами для данного алгоритма являются графические файлы, в которых большие одноцветные участки изображения кодируются длинными последовательностями одинаковых байтов. Этот метод также может давать заметный выигрыш на некоторых типах файлов баз данных, имеющих таблицы с фиксированной длиной полей. Для тестовых данных методы RLE, как правило, не эффективны[5].

Словарный метод (LZ- сокращение от Lempel Ziv -имена авторов). Наиболее распространенный метод. Используется словарь, состоящий из последовательностей данных или слов. При сжатии эти слова заменяются на их коды из словаря. В наиболее распространенном варианте реализации в качестве словаря выступает сам исходный блок данных. Основным параметром словарного метода является размер словаря. Чем больше словарь, тем больше эффективность. Однако для неоднородных данных чрезмерно большой размер может быть вреден, так как при резком изменении типа данных словарь будет заполнен неактуальными словами. Для эффективности работы данного метода при сжатии требуется дополнительная память. Приблизительно на порядок больше, чем нужно для исходных данных словаря. Существенным преимуществом словарного метода является простая и быстрая процедура распаковки. Дополнительная память при этом не требуется. Такая особенность особенно важна, если необходим оперативный доступ к данным[16].

Энтропийный метод (Huffman- кодирование Хаффмана, Arithmetic coding- арифметическое кодирование). В основе этого метода лежит кодирование не байтами, а битовыми группами:

· Перед началом кодирования производится частотный анализ кода документа и выявляется частота повтора каждого из встречающихся символов;

· Чем чаще встречается тот или иной символ, тем меньшим количеством битов он кодируется (соответственно, чем реже встречается символ, тем длиннее его кодовая битовая последовательность);

· Образующая в результате кодирования иерархическая структура прикладывается к сжатому документу в качестве таблицы соответствия.

В связи с тем, что к сжатому архиву необходимо прикладывать таблицу соответствия, на файлах малых размеров алгоритм Хаффмана малоэффективен. Практика также показывает, что его эффективность зависит и от заданной предельной длины кода (размера словаря). В среднем, наиболее эффективными оказываются архивы с размером словаря от 512 до 1024 единиц (длина кода до 18-20 бит). Широко используется как дополнительный метод. В качестве самостоятельного метода применяется, например, в графическом формате JPG.

Метод контекстного моделирования (CM- сокращение от context modeling- контекстное моделирование). В этом методе строится модель исходных данных. При сжатии очередного элемента данных эта модель выдает свое предсказание или вероятность. Согласно этой вероятности, элемент данных кодируется энтропийным методом. Чем точнее модель будет соответствовать исходным данным, тем точнее она будет выдавать предсказания, и тем короче будут кодироваться элементы данных. Для построения эффективной модели требуется много памяти. При распаковке приходится строить точно такую же модель. Поэтому скорость и требования к объему оперативной памяти для упаковки и распаковки почти одинаковы. В данный момент методы контекстного моделирования позволяют получить наилучшую степень сжатия, но отличаются чрезвычайно низкой скоростью.

PPM (PPM- Prediction by Partial Matching- предсказание по частичному совпадению). Это особый подвид контекстного моделирования. Предсказания выполняется на основании определенного количества предыдущих элементов данных. Основным параметром является порядок модели, который задает это количество элементов. Чем больше порядок модели, тем выше степень сжатия, но требуется больше оперативной памяти для хранения данных модели. Если оперативной памяти недостаточно, то такая модель с большим порядком показывает низкие результаты. Метод PPM особенно эффективен для сжатия тестовых данных.

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

Метод сортировки блока данных (BWT- сокращение от Burrows Wheeler Transform- по имени авторов). Это особый вид или группа преобразований, в основе которых лежит сортировка. Такому преобразованию можно подвергать почти любые данные. Сортировка производится над блоками, поэтому данные предварительно разбиваются на части. Основным параметром являются размер блока, который подвергается сортировке. Для распаковки данных необходимо проделать почти те же действия, что и при упаковке. Поэтому скорость и требования к оперативной памяти почти одинаковы. Архиваторы, которые используют данный метод, обычно показывают высокую скорость и степень сжатия для текстовых данных.

Непрерывные блоки или непрерывный режим (Solid mode- непрерывный режим). Во многих методах сжатия начальный участок данных или файла кодируется плохо. Например, в словарном методе словарь пуст. В методе контекстного моделирования модель не построена. Когда количество файлов большое, а их размер маленький, общая степень значительно ухудшается за счет этих начальных участков. Чтобы этого не происходило при переходе на следующий файл, используется информация, полученная исходя из предыдущих файлов. Аналогичного эффекта можно добиться простым представлением исходных файлов в виде одного непрерывного файла. Этот метод используется во многих архиваторах и имеет существенный недостаток. Для распаковки произвольного файла необходимо распаковать и файлы, которые оказались в начале архива. Это необходимо для правильного заполнения словаря и построения модели. Существует и промежуточный вариант, когда используются непрерывные блоки фиксированного размера. Потери сжатия получаются минимальными, но для извлечения одного файла, который находится в конце большого архива, необходимо распаковать только один непрерывный блок, а не весь архив[5].

Сегментирование. Во всех методах сжатия при изменении типа данных собственно сам переход кодируется очень плохо. Словарь становится не актуальным, модель настроена на другие данные. В этих случаях применяется сегментирование. Это предварительная разбивка на однородные части. Затем эти части кодируются по отдельности или группами.

Программные средства сжатия данных.«Классическими» форматами сжатия данных, широко используемыми в повседневной работе с компьютером, являются форматы .ZIP, .RAR и .ARJ. В связи с широким распространением нескольких форматов сжатия многие программные средства для сжатия данных начинают приобретать универсальный характер, позволяя упаковывать и распаковывать сжатые архивы разных типов. Программные средства для WINDOWS обычно имеют один «предпочтительный» тип архива, но также справляются с распаковкой данных при работе с архивами других типов. Наиболее распространен формат .ZIP, который является стандартом для архивов, распространяемых через Интернет. Немаловажную роль в этом играет открытость этого формата. Этот формат является полностью открытым- его использование не требует никаких лицензионных отчислений. Операционная система Windows XP позволяет рассматривать ZIP- архивы как сжатые папки. Это предлагает полностью прозрачную работу с такими архивами- все файловые операции можно выполнять в сжатой папке так же, как в обычной. Однако специализированные средства работы с архивами обеспечивают более широкий набор функций. Формат архивного файла, а следовательно, и его расширение зависят от выбранного архиватора[21]. Примеры популярных архивов и их расширение представлены в таблице 3.

Таблица 3 Примеры архиваторов

Расширение архивного файла

Некоторые архиваторы поддерживают создание самораспаковывающихся архиваторов. Такие архиваторы имеют расширение .exe и распаковываются при запуске этого файла[19].

Существует два режима работы с архиваторами: режим командной строки и диалоговый с использованием интерфейса программы. Среди приведенных выше архиваторов диалоговый режим поддерживает, например, архиватор RAR. При работе в режиме командной строки каждая команда вводится клавишей . Для вывода на экран справки о командах архиватора обычно достаточно набрать в командной строке имя архиватора, символ «/» и «?». Например: arj/? Или rar/?. В ОС Windows программы- архиваторы устанавливаются в систему. Их можно автоматически вызвать по контекстному меню (правая клавиша мыши при выделении файла или группы файлов). Программа- архиватор WinRar (рисунок 12).

Рисунок12. Архиватор WinRAR

WinRAR — это 32-разрядная версия архиватора RAR для Windows, мощного средства создания архивов и управления ими. Существует несколько версий RAR для разных операционных систем. Количество файлов, которое можно добавить в архив, зависит от объёма доступной памяти и длины имён файлов. Для добавления одного файла в архив RAR требуется ориентировочно 128 байт памяти. Максимальный размер архива RAR, равно как и любого файла в архиве RAR, практически не ограничен — он составляет 8 эксабайт (что равнозначно 8 589 934 591 Гбайт или 9 223 372 036 854 775 807 байт). В целом архивный формат RAR значительно лучше оптимизирован для сложных задач с использованием большого количества файлов и гигабайтных дисковых пространств. Меню WinRAR содержит следующие пункты: «Файл», «Команды», «Избранное», «Параметры» и «?».

Ещё один элемент интерфейса — панель инструментов. Она находится ниже меню и выше списка файлов. Кнопки на панели инструментов повторяют пункты из меню «Команды» (у всех пунктов в этом меню есть «горячие клавиши» для быстрого доступа). Во время просмотра содержимого архива некоторые кнопки могут быть отключены, если их функции неприменимы к архиву. Под панелью инструментов находится маленькая кнопка со стрелкой вверх и строка списка дисков. При нажатии кнопки «Вверх» происходит переход в родительскую папку. Список дисков служит для выбора текущего диска или, например, сети. Этот список также можно открыть нажатием клавиши . При желании кнопку «Вверх» и список дисков можно перетащить в правый угол панели инструментов. Текущий диск также можно изменить нажатием сочетания клавиш или щелчком мыши на маленьком значке диска в строке состояния. Ниже панели инструментов расположено файловое окно. В нём отображается содержимое текущей папки или, если в WinRAR открыт архив, содержимое архива. Эти режимы называются режимом управления файлами и режимом управления архивами. Для каждого файла выводится следующая информация: имя, размер, тип и дата изменения. Для файлов в архиве показываются ещё два параметра — упакованный размер и значение CRC32. CRC32 — это особая контрольная сумма, вычисляемая на основании данных файла, с помощью неё можно сразу определить, одинаковы ли упакованные в архиве файлы, не прибегая к их распаковке. Файлы с одинаковым содержимым всегда имеют одинаковые CRC32. Все параметры представлены в виде колонок. Порядок сортировки файлов можно поменять щелчком на заголовке колонки (там же синей стрелкой указывается направление сортировки). Кроме того, можно изменить ширину колонок, перетаскивая мышью разделители заголовков колонок. Несколько дополнительных параметров списка можно изменить в диалоге «Список файлов». Если находящийся в архиве файл зашифрован, то после его имени будет стоять звездочка («*»). Если файл продолжается в следующем томе, то после его имени будут стоять символы «». Если файл продолжается из предыдущего тома, то после имени будут стоять символы « ».

Следующие комбинации клавиш можно использовать для навигации по списку файлов. Чтобы перейти в родительскую папку, необходимо нажать клавиши (BS), или дважды щелкнуть мышью на папке «..» в списке файлов. Если сделать это в корневой папке архива, то этим закроется архив и осуществится переход в ту папку на диске, где он находится. Для перехода в другую папку можно нажать , или дважды щелкнуть левой кнопкой мыши на этой папке. То же действие на файле архива приведет к открытию архива. Для перехода в корневую папку служит комбинация клавиш . Если щелкнуть правой кнопкой мыши на списке файлов, то появится меню с командами интерфейса и управления файлами. Эти команды доступны также из обычных меню WinRAR, с панели инструментов и с помощью сочетаний клавиш, поэтому можно использовать наиболее удобный для себя способ. Если включена опция «Показывать комментарий» в диалоге общих параметров, а в открытом архиве есть комментарий, он будет показан в специальном окне справа от списка файлов. Ширину окна комментария можно изменять, перетаскивая мышью его левый край. Внизу окна WinRAR (под списком файлов) находится строка состояния. В её левой части расположены два маленьких значка: «диск» и «ключ». Щелчком по значку «диск» можно изменить текущий диск, а щелчком по «ключу» — текущий пароль. Две соответствующие команды также есть в меню «Файл». По умолчанию значок «ключ» жёлтого цвета, но если введён пароль, то он становится красным. В средней части строки состояния выводится информация об общем размере выделенных файлов или о текущем состоянии. В правой части строки состояния отображаются общее количество файлов в текущей папке и их размер. Оболочка WinRAR имеет два основных режима: режим управления файлами и режим управления архивами. В режиме управления файлами в окне WinRAR отображается список файлов и папок в текущей папке. Можно выделить эти файлы и папки, как обычно в Windows, с помощью мыши или клавиатуры, и произвести с выделенными файлами различные операции, например, заархивировать их или удалить. В этом режиме также можно протестировать группу архивов и извлечь из них файлы. В режиме управления архивами в окне WinRAR отображается список файлов и папок в открытом архиве. Здесь также можно выделить файлы и папки и выполнить с ними различные действия, специфичные для архива, например, распаковать, протестировать или добавить комментарий. В обоих режимах можно изменить текущую папку (на диске или в архиве). Для перехода в родительскую папку необходимо нажать клавишу (BS) или , либо дважды щелкнуть мышью на папке «..» в списке файлов. Если сделать это в корневой папке архива, то закроется архив и осуществится переход в ту папку на диске, в которой он находится. Для перехода в другую папку необходимо нажать , или дважды щелкнуть мышью на этой папке. Аналогичное действие на файле архива приведет к открытию архива. Для перехода в корневую папку диска служит комбинация клавиш . Для входа в режим управления файлами запускается WinRAR двойным щелчком на его значке или вводится в командной строке «WinRAR» без параметров. Для входа в режим управления архивами запускается WinRAR в режиме управления файлами, помещается курсор на выбранный архив и нажимается (это же действие выполняется при выборе пункта «Открыть архив» в меню «Файл» или при двойном щелчке мышью на имени архива). Кроме того, вход в режим управления архивами происходит при нажатии на архиве или двойном щелчке мышью в оболочке Windows (в Проводнике или на Рабочем столе), но только в том случае, если WinRAR ассоциирован с архивами (что делается по умолчанию во время установки). Связать WinRAR с архивами несложно и после установки — для этого служит диалог «Параметры интеграции»[20].

Программа- архиватор ARJ (рисунок 13).

Рисунок 13. Архиватор ARJ

Программа ARJ (разработчик — Robert K. Jung) относится к числу наиболее известных продуктов своего класса. Она выполняет все функции по обслуживанию своих, архивов, может помещать файлы в архив, извлекать файлы из архива, и делать «самоизвлекающиеся» файлы.

Программа ARJ позволяет:

· создавать архивные файлы из отдельных или всех файлов текущего каталога и его подкаталогов, загружая в один архив до 32000 файлов;

· добавлять и заменять файлы в архиве;

· извлекать и удалять файлы из архива;

· просматривать содержимое архива;

· создавать многотомный архив;

· защищать каждый из помещенных в архив файлов 32-битовым циклическим кодом, тестировать архив, проверяя сохранность в нем информации;

· получать помощь по работе на 3 международных языках;

· вводить в архив комментарии к файлам;

· запоминать в архиве пути к файлам;

· сохранять в архиве несколько поколений (версий) одного и того же файла;

· переупорядочивать архивный файл по размерам файлов, именам, расширениям, дате и времени модификации, коэффициенту сжатия и др.;

· осуществлять поиск строк в архивированных файлах;

· восстанавливать файлы из разрушенных архивов;

· создавать самораспаковывающиеся архивы как на одном томе, так и на нескольких томах;

· просматривать содержимое текстовых файлов, содержащихся в архиве;

· обеспечивать защиту информации в архиве и доступ к файлам, помещенным в архив, по паролю.

Для получения на экране краткой помощи по работе достаточно в командной строке ввести имя программы: arj. Для получения развернутой помощи и примеров задания команд следует ввести: «arj -?» или «arj /?» Для загрузки программы и выполнения ею необходимых функций используется формат командной строки, где имя программы и параметры разделяются пробелами

Обязательные параметры командной строки — это два параметра: и

В качестве списка имен файлов можно использовать шаблон (маску). Параметр записывается в виде одного символа вслед за именем программы и задает функцию архивации. Параметр задает имя архивного файла и записывается по общим правилам MS DOS, но без указания расширения, которое при создании нового файла присваивается автоматически. Имя архива может быть записано с указанием пути к файлу. Архиватор по умолчанию обрабатывает архивные файлы, имеющие расширение .arj. Самораспаковывающийся архивный файл создается с расширением .exe. Такой файл содержит в себе программный модуль распаковки, и для извлечения из него файлов не требуется программа arj. Ключи уточняют действие команды архивации, и их может быть несколько. Каждый ключ начинается с символа «-» и может быть помещен в любом месте командной строки после команды. Признаком ключа кроме символа «-» может быть символ «/»[20].

Программа- архиватор ZIP(рисунок 14).

Рисунок 14. Архиватор ZIP

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

Существует два основных файла программы :

· PKZIP- программа помещающая файлы в архив;

· PKUNZIP- программа извлекающая файлы из архива.

Программы PKZIP/PKUNZIP имеют большое количество функций, выбор нужных функций выполняется в командной строке при вызове программ. Задание функций программ PKZIP/PKUNZIP осуществляется только с помощью указания режимов. Режимы могут указываться в любом месте командной строки после имени программы, они задаются либо с предшествующим знаком “-”, либо с предшествующим знаком “/”

При помещении файла в архив используется следующий формат:

«PKZIP режимы имя архива (имена файлов)»

Режимы- указываются с предшествующим знаком “-” или “/”, они задают или уточняют требуемые от программы архивации действия;

Имена файлов- задают файлы, включаемые в архив. При задании имен файлов можно использовать символы * и ?. Если имена файлов не заданы, то подразумевается все файлы из текущего каталога. После ввода команды программы-упаковщики начинают выполнять запрошенные действия. На экране изображаются имена помещаемых в архив файлов. При сжатии каждого файла выводиться процент обработанной части файла. После окончания сжатия каждого файла напротив его имени сообщается о степени сжатия. Например, при упаковке файла pkzip.exe на экране появляется надпись: «Adding: PKZIP.EXE Deflating (36%), done.» По умолчанию программа PKZIP обеспечивает достаточно большую скорость работы и близкую к максимальной степень сжатия. Но при желании можно получить максимальную (на несколько процентов большую) и наименьшую (быструю) степень сжатия. С ключом максимальной степени сжатия программа работает медленнее обычной, а при ключе наименьшей степени сжатия файлов наоборот, быстрее.

· “-ex” — максимальная степень;

· “-en” — средняя (обычная) степень;

· “-es” — наименьшая степень.

Программа PKZIP имеет три основных режима помещения файлов в архив:

· Add — добавление в архив всех файлов;

· Update — добавление в архив новых файлов;

· Freshen — добавление новых версий имеющихся в архиве файлов.

Эти режимы имеют следующие особенности:

в режиме добавления (Add) в архивный файл добавляются все указанные в команде файлы;

в режиме добавления новых файлов (Update) в архивный файл добавляются те файлы, у которых либо нет копий в архиве, либо эти копии имеют более раннюю дату, чем у файла. Задание этого режима позволяет предотвратить затирание более новых версий в архиве;

в режиме обновления версий файлов (Freshen) в архив добавляются новые версии тех файлов, которые уже имеются в архиве. Иначе говоря, в архив добавляются те файлы, копии которых уже находятся в архиве, но имеют более раннюю дату, чем у соответствующего файла на диске. Этот режим позволяет добиться того, чтобы архивный файл содержал наиболее свежие версии своих файлов. Как упоминалось ранее, для извлечения файлов из архивов, созданных программой PKZIP, используется программа PKUNZIP. После ввода команды программы архивации начинают извлечение файлов из архива. На экране изображаются имена извлекаемых из архива файлов. При извлечении файлов из архива может возникнуть ситуация, когда в том каталоге, в который извлекается файл, уже имеется файл с таким же именем. По умолчанию программа PKUNZIP при этом выполняет следующие действия: на экран выводиться запрос: «PKUNZIP: (W18) Warning! PKUNZIP.EXE already exists. Overwrite (y/n/a/r)? (Файл существует. Перезаписать?)». При нажатии на одну из клавиш : Y — заместить имеющийся файл на диске, N — не извлекать файл из архива, A — всегда замещать имеющиеся на диске файлы(больше запросов не будет), R — присвоить извлекаемому из архива файлу другое имя. Здесь извлечение новой версии файла — ситуация, когда для извлекаемого из архива файла в том каталоге, куда он должен быть помещен, имеется файл с тем же именем, но файл в архиве имеет более позднюю дату последней модификации, чем файл с тем же именем на диске; извлечение нового файла- ситуация, когда для извлекаемого из архива файла в том каталоге, куда он должен быть помещен, нет файла с тем же именем; запрос- запрос — предупреждение, делаемый перед “затиранием” файла на диске. Для каждого файла из архива в оглавлении архива запоминается его код циклического контроля (СRC). Этот код — специальная функция всего содержимого файла, составленная таким образом, что изменить файл так, чтобы его код циклического контроля остался неизменным, практически невозможно. Наличие кода циклического контроля позволяет проверить целостность архивного файла. При извлечении файлов из архива вычисляется код циклического контроля для каждого файла и сообщают пользователю, если этот код не совпадает с записанным в оглавлении архива. Проверить целостность архива можно с помощью команды тестирования: «Pkunzip -t имя-архива». Хранение информации в архиве более надежно из-за того, что данные хранятся в сжатом виде, меньше вероятность их случайного повреждения, например из-за дефектов магнитного покрытия диска. Но в некоторых случаях архивные файлы с большой вероятностью могут быть повреждены. Вот наиболее типичные из таких ситуаций:

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

· передача архива по телефонной сети через модем;

· повреждения из-за воздействия вирусов, неосторожных действий пользователей, неправильно работающих программ и т.д.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL