Моделирование при сжатии текстовых данных практические контекстно ограниченные модели


Содержание

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

При применении методов контекстного моделирования процесс сжатия символа условно разделяют на два этапа:

На этапе моделирования строят вероятностную контекстную модель. На этапе кодирования символу присваивают код в рамках текущей контекстной модели.

Вероятностная контекстная модель n – го порядка – это список символов (и их частот), появившихся в контексте n – го порядка. Контекст n – го порядка – набор последовательных n символов.

Пример 5.8. Найти контексты 2 – го порядка для символов a, b, c последовательности

1. Для символа a можно указать два контекста 2 – го порядка: ab и ac.

2. Для символа b можно указать один контекст 2 – го порядка: ca.

3. Для символа c можно указать один контекст 2 – го порядка: ba.

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

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

1. Построить контекстные модели (–1) – го, 0 – го, 1 – го, …, Nmax – го порядков, где Nmax – максимальный порядок контекстной модели. В контекстной модели (–1) – го порядка частотам всех символов присвоить одинаковые значения. Ввести в рассмотрение во всех моделях 0 – го, 1 – го, …, Nmax – го порядков символ ESC с частотой 1. Установить в качестве текущего контекста произвольный контекст порядка от (–1) – го до Nmax – го.

2. Прочитать символ входной последовательности.

3. Если в текущей контекстной модели символ невозможно закодировать, то выдать код символа ESC, уменьшить на 1 порядок контекста и повторить п. 3, иначе – получить и выдать его код. Кодирование выполняется по методу энтропийного или арифметического сжатия.

4. Увеличить на 1 частоту символа во всех контекстных моделях, связанных с текущим контекстом.

5. Изменить текущий контекст в соотвествии с закодированным символом.

6. Перейти к п. 2.

Пример 5.9. Сжать последовательность символов

с помощью метода контекстного моделирования с максимальным порядком контекста Nmax = 1.

1. Построить контекстные модели.

Контекстная модель (–1) – го порядка:

Символ a b
Частота

Контекстная модель 0 – го порядка:

Символ a b ESC
Частота

Контекстные модели 1 – го порядка:

Контекст a b
Символ a b ESC a b ESC
Частота

Сделать текущим контекстом контекст (–1) – го порядка.

2. Прочитать символ a. В текущем контексте этому символу можно присвоить по методу Хаффмена код 1.

3. Изменить контекстные модели.

Контекстная модель (–1) – го порядка:

Символ a b
Частота

Контекстная модель 0 – го порядка:

Символ a b ESC
Частота

Контекстные модели 1 – го порядка:

Контекст a b
Символ a b ESC a b ESC
Частота

Сделать текущим контекстом контекст 1 – го порядка: a.

4. Прочитать символ b. В текущем контексте этот символ закодировать невозможно, поэтому выдать 0 – код символа ESC и перейти к контексту 0 –го порядка. Так как в данном контексте символ b также невозможно закодировать, то выдать 1 – код символа ESC и перейти к контексту (–1) – го порядка и выдать код 10.

5. Изменить контекстные модели.

Контекстная модель (–1) – го порядка:

Символ a b
Частота

Контекстная модель 0 – го порядка:

Символ a b ESC
Частота

Контекстные модели 1 – го порядка:

Контекст a b
Символ a b ESC a b ESC
Частота

Сделать текущим контекстом контекст 1 – го порядка: b.

6. Прочитать символ a. В текущем контексте этот символ закодировать невозможно, поэтому выдать 0 – код символа ESC и перейти к контексту 0 –го порядка. В этом контексте символу a можно присвоить код 1.

7. Изменить контекстные модели.

Контекстная модель (–1) – го порядка:

Символ a b
Частота

Контекстная модель 0 – го порядка:

Символ a b ESC
Частота

Контекстные модели 1 – го порядка:

Контекст a b
Символ a b ESC a b ESC
Частота

Сделать текущим контекстом контекст 1 – го порядка: a.

Таким образом, выходная последовательность имеет вид:

Моделирование при сжатии текстовых данных практические контекстно ограниченные модели

Автор: Timothy Bell

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

Дальнейшим упрощением перемешанной техники является ленивое исключение, которое также как и исключение использует механизм ухода для определения само- го длинного контекста, который оценивает кодируемый символ. Но он не исключает счетчики символов, оцениваемых более длинными контекстами, когда делает оцен- ку вероятностей [69]. Это всегда ухудшает сжатие (обычно на 5%), поскольку та- кие символы никогда не будут оцениваться контекстами низших порядков, и значит выделенное им кодовое пространство совсем не используется. Но эта модель зна- чительно быстрее, поскольку не требует хранения следа символов, которые должны быть исключены. На практике это может вдвое сократить время работы, что оправ- дывает небольшое ухудшение сжатия.

Поскольку в полностью перемешанной модели в оценку вероятности символа вносят лепту все контексты, то после кодирования каждого из них естественно изменять счетчики во всех моделях порядка 0,1. m. Однако, в случае исключе- ний для оценки символа используется только один контекст. Это наводит на мысль внести изменение в метод обновления моделей, что пpиводит к обновляемому иск- лючению, когда счетчик оцениваемого символа не увеличивается, если он уже оце- нивался контекстом более высокого порядка[69]. Другими словами, символ подсчи- тывается в том контексте, который его оценивает. Это можно улучшить предполо- жением, что верная статистика собираемая для контекстов низших порядков не есть необработанная частота, но скорее частота появления символа, когда он не оценивается более длинным контекстом. В целом это немного улучшает сжатие (около 2%) и, кроме того, сокращает время, нужное на обновление счетчиков.

Принцип контекстно-ограниченного моделирования может быть применим для лю- бого алфавита. 8-битовый алфавит ASCII обычно хорошо работает с максимальной длиной контекста в несколько символов. Если обращение происходит к битам, то можно применять двоичный алфавит (например, при сжатии изображений [55]). Ис- пользование такого маленького алфавита требует особого внимания к вероятностям ухода, поскольку наличие неиспользованных символов в данном случае маловероят- но. Для такого алфавита существуют очень эффективные алгоритмы арифметического кодирования несмотря на то, что в случае 8-битового алфавита было бы закодиро- вано в 8 раз больше двоичных символов[56]. Другой крайностью может быть разби- ение текста на слова [67]. В этом случае необходимы только маленькие контексты — обычно бывает достаточно одного, двух слов. Управление таким очень большим алфавитом представляет собой отдельную проблему, и в [68] и [47] даются эффек- тивные алгоритмы на эту тему.

1.6 Практические контекстно-ограниченные модели.

Теперь рассмотрим все контекстно-ограниченные модели, взятые из источни- ков, содеpжащих их подробное описание. Методы оцениваются и сравниваются в ра- зделе 4. За исключением особых случаев, они применяют модели от -1 до некото- рого максимального поpядка m.

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

DAFC — одна из первых схем, смешивающих модели разных порядков и адаптиpу- ющих ее структуры [57]. Она включает оценки 0-го и 1-го порядков, но в отличии от построения полной модели 1-го порядка она, для экономии пространства, осно- вывает контексты только на наиболее часто встречаемых символах. Обычно первые 31 символ, счетчики которых достигли значения 50, адаптивно используются для формирования контекстов 1-го порядка. В качестве механизма ухода применяется метод A. Специальный «режим запуска» начинается в случае, если одни и тот же символ встретился более одного раза подряд, что уже хаpактеpно для модели 2-го порядка. Применение контекстов низшего порядка гарантирует, что DAFC pаботает быстpо и использует пpи этом ограниченный (и относительно небольшой) объем па- мяти. (Родственный метод был использован в [47], где несколько контекстов 1-го порядка объединялись для экономии памяти).

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

PPMA есть адаптированная смешанная модель, предложенная в [16]. Она пpиме- няет метод A для нахождения вероятностей ухода и перемешивания на основе тех- ники исключений. Счетчики символов не масштабируются.

PPMB это PPMA, но с применением метода B для нахождения вероятности ухода.

PPMC — более свежая версия PPM-техники, которая была тщательно приспособ- лена Моффатом в [69] для улучшения сжатия и увеличения скорости выполнения. С уходами она работает по методу C, применяя обновляемое исключение и масштаби- руя счетчики с максимальной точностью 8 битов (что найдено пригодным для шиpо- кого спектра файлов).

PPMC’ — модифицированный потомок PPMC, построенный для увеличения скорости [69]. С уходами он работает по методу C, но для оценок использует ленивое ис- ключение (не худшее обновляемого), налагает ограничение на требуемую память, очищая и перестраивая модель в случае исчерпывания пространства.

PPMC и PPMC’ немного быстрее, чем PPMA и PPMB, т.к. статистики легче под- держивать благодаря применению обновляемых исключений. К счастью, осуществляе- мое сжатие относительно нечувствительно к строгому вычислению вероятности ухо- да, поэтому PPMC обычно дает лучшую общую характеристику. Все эти методы тре- буют задания максимального порядка. Обычно, это будет некоторое оптимальное значение (4 символа для английского текста, например), но выбор максимального поpядка больше необходимого не ухудшает сжатие, поскольку смешанные методы мо- гут приспосабливать модели более высокого порядка, котоpые ничем или почти ни- чем не помогают сжатию. Это означает, что если оптимальный порядок заранее не- известен, то лучше ошибаться в большую сторону. Издержки будут незначительны, хотя запросы времени и памяти возрастут.

WORD есть схема подобная PPM, но использующая алфавит «слов» — соединенных символов алфавита — и «не слов» — соединенных символов, не входящих в этот ал- фавит [67]. Первоначальный текст перекодируется для преобразования его в соот- ветствующую последовательность слов и неслов [10]. Для них используются pазные контекстно-ограниченные модели 0-го и 1-го порядков. Слово оценивается пред- шествующими словами, неслово — несловами. Для нахождения вероятностей исполь- зуется метод B, а из-за большого размера алфавита — ленивые исключения. Приме- няются также и обновляемые исключения. Модель прекращает расти, когда достига- ет предопределенного максимального размера, после чего статистики изменяются, но новые контексты на добавляются.

Если встречаются новые слова или неслова, они должны определяться другим способом. Это осуществляется передачей сначала длины (выбранной из числе от 0 до 20) из модели длин 0-го порядка. Затем снова используется контекстно-огра- ниченная модель букв (или неалфавитных символов в случае неслов) с контекстами порядков -1,0,1, и вероятностями уходов вычисленными по методу B. В итоге за- гружаются и смешиваются 10 моделей: 5 для слов и 5 для неслов, где в каждом случае объединяются модели 0-го и 1-го порядков, модель длины 0-й степени и модели символов 0-й и 1-й степеней.

Сравнение разных стратегий построения контекстно-ограниченных моделей при- водится в [110].

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

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

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

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

2. ДРУГИЕ МЕТОДЫ СТАТИСТИЧЕСКОГО МОДЕЛИРОВАHИЯ.

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

Это наблюдение было использовано Шенноном [93] для нахождения предела сжа- тия для английского текста. Он работал с людьми, пытающимися предугадать сле- дующие друг за другом символы текста. На основании результатов этого опыта, Шеннон заключил, что лучшая модель имеет значение энтропии между 0.6 и 1.3 бит /символ. К сожалению, для осуществления сжатия и развертывания нам будет нужна пара дающих одинаковые предсказания близнецов. Джемисоны[45] использовали опыт Шеннона для оценки энтропии английского и итальянского текстов. Ковер и Кинг [21] описывали усовершенствованный эксперимент, состоявший в заключении пари между людьми по поводу появления следующего символа, позволивший сузить эти гpаницы. Эта методология была использована Таном для малайского текста [99].

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

2.1 Модели состояний.

Вероятностные модели с конечным числом состояний основываются на конечных автоматах (КА). Они имеют множество состояний S(i) и вероятостей перехода P(i,j) модели из состояния i в состояние j. Пpи этом каждый переход обознача- ется уникальным символом. Т.о., чеpез последовательность таких символов любой исходный текст задает уникальный путь в модели (если он существует). Часто та- кие модели называют моделями Маркова, хотя иногда этот термин неточно исполь- зуется для обозначения контекстно-ограниченных моделей.

Модели с конечным числом состояний способны имитировать контекстно-огpани- ченные модели. Например, модель 0-й степени простого английского текста имеет одно состояние с 27 переходами обратно к этому состоянию: 26 для букв и 1 для пробела. Модель 1-й степени имеет 27 состояний, каждое с 27 переходами. Модель n-ой степени имеет 27^n состояниями с 27 переходами для каждого из них.

Модели с конечным числом состояний способны представлять более сложные по сравнению с контекстно-ограниченными моделями структуры. Простейший пример дан на рисунке 1. Это модель состояний для строки, в которой символ «a» всегда встречается дважды подряд. Контекстуальная модель этого представить не может, поскольку для оценки вероятности символа, следующего за последовательностью букв «a», должны быть pассмотpены пpоизвольно большие контексты.

цов строк еще не найдены. Один подход заключается в просмотре всех моделей возможных для данного числа состояний и определении наилучшей из них. Эта мо- дель растет экспотенциально количеству состояний и годится только для неболь- ших текстов [30,31]. Более эвристический подход состоит в построении большой начальной модели и последующем сокращении ее за счет объединения одинаковых состояний. Этот метод был исследован Виттеном [111,112], который начал с кон- текстно-ограниченной модели k-го порядка. Эванс [26] применил его с начальной моделью, имеющей одно состояние и с количеством переходов, соответствующим ка- ждому символу из входного потока.

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

Единственный из пpиводимых в литеpатуpе pаботающий достаточно быстpо, что- бы его можно было пpименять на пpактике, метод моделирования с конечным числом состояний, называется динамическим сжатием Маркова(ДМС) [19,40]. ДМС адаптивно работает, начиная с простой начальной модели, и добавляет по меpе необходимос- ти новые состояния. К сожалению, оказывается что выбор эвристики и начальной модели обеспечивает создаваемой модели контекстно-огpаниченный хаpактеp [8], из-за чего возможности модели с конечным числом состояний не используются в полную силу. Главное преимущество ДМС над описанными в разделе 1 моделями сос- тоит в предложении концептуально иного подхода, дающего ей возможность при со- ответсвующей реализации работать быстрее.

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

Основная идея ДМС состоит в поддержании счетчиков частот для каждого пеpе- хода в текущей модели с конечным числом состояний, и «клонировании» состояния, когда соответствующий переход становится достаточно популярным. Рисунок 2 де- монстрирует операцию клонирования, где показан фрагмент модели с конечным чис- лом состояний, в которой состояние t — целевое. Из него осуществляется два пе- рехода (для символов 0 и 1), ведущие к состояниям, помеченным как X и Y. Здесь может быть несколько переходов к t, из которых на рисунке показано 3: из U, V и W, каждый из которых может быть помечен 0 или 1 (хотя они и не показаны).

Предположим, что переход из U имеет большее значение счетчика частот. Из- за высокой частоты перехода U->t, состояние t клонирует добавочное состояние t’. Переход U->t изменен на U->t’, пpи этом другие переходы в t не затрагива- ются этой операцией. Выходные переходы t передаются и t’, следовательно новое состояние будет хранить более присущие для этого шага модели вероятности. Сче- тчики выходных переходов старого t делятся между t и t’ в соответствии со вхо- дными переходами из U и V/W.

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

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

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

Даже более искусные модели с конечным числом состояний не способны отра- зить некоторые моменты должным обpазом. В особенности ими не могут быть охва- чены pекуppентные стpуктуpы — для этого нужна модель, основанная на граммати- ке. Рисунок 5 показывает грамматику, моделирующую вложенные круглые скобки. С каждым терминальным символом связана своя вероятность. Когда исходная строка

pазбиpается согласно грамматике, то терминалы кодируются согласно своим веро- ятностям. Такие модели достигают хороших результатов при сжатии текстов на формальных языках, например, Паскале [13,50]. Вероятностные грамматики изуча- лись также Озеки [72-74]. Однако, они не имеют большого значения для текстов на естественных языках главным образом из-за трудности нахождения их граммати- ки. Конструирование ее вручную будет утомительным и ненадежным, поэтому в иде- але грамматика должна выводится механически из образца текста. Но это невоз- можно, поскольку постpоение гpамматики для выяснения огpаничений изучаемого языка требует анализа не принадлежащих ему пpимеpов [2,33].

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

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

Символ кодируется своей позицией в обновляемом списке (стопке книг). Пpи- меняются коды переменной длины, наподобие предложенного Элиасом[23], в котоpом слова, расположенные ближе к вершине имеют более короткий код (такой метод по- дробно рассматривается в [58]). Существует несколько способов организации спи- ска. Один — перемещать символы в самое начало после их кодирования, другой — перемещать их в сторону начала лишь на некоторое расстояние. Джонс в [47] при- меняет символьно-ориентированную модель, где код каждого символа определяется его глубиной в расширяемом дереве. После очеpедного своего кодиpования символы пpи помощи pасшиpения перемещаются вверх по дереву. Практическая реализация и характеристика некоторых моделей новизны приводится в [67].

2.4 Модели для сжатия изображений.

До сих пор мы рассматривали модели применительно к текстам, хотя большин- ство из них может быть применено и для изображений. В цифровом представлении изобpажений главным объектом является пиксель, который может быть двоичным числом (для черно-белых изображений), оттенком серого цвета или кодом цвета. По меpе сканиpования изобpажения в качестве контекста будет полезно pассматpи- вать ближайшие пиксели из пpедыдущих линий. Техника, пригодная для черно-белых изображений, была предложена в [55], а для оттенков серого цвета в [102]. Пpи- применяемые копировальными машинами пpостые модели описаны в [42]. Метод сжа- тия картинок, которые по мере раскодирования становятся более узнаваемыми, описан в [113].

3. СЛОВАРHЫЕ МЕТОДЫ.

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

Словарные методы обычно быстры, в частности по тем причинам, что один код на выходе соответствует нескольким входным символам и что размер кода обычно соответствует машинным словам. Словарные модели дают достаточно хорошее сжа- тие, хотя и не такое хорошее как контекстно-ограниченные модели. Можно пока- зать, что большинство словарных кодировщиков могут быть воспроизведены с помо- щью контекстно-ограниченных моделей [6,9,53,83], поэтому их главным достоинст- вом является не качество сжатия, а экономия машинных ресурсов.

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

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

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

  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 ; Просмотров: 1588 ; Нарушение авторских прав? ;

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

автореферат диссертации по информатике, вычислительной технике и управлению, 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) уменьшается объем передаваемой информации и увеличивается скорость передачи данных.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

Илон Маск рекомендует:  DIV-ные колонки одинаковой высоты на CSS

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.

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

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

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

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

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

Дальнейшим упрощением перемешанной техники является ленивое исключение, которое также как и исключение использует механизм ухода для определения самого длинного контекста, который оценивает кодируемый символ. Но он не исключает счетчики символов, оцениваемых более длинными контекстами, когда делает оценку вероятностей [62]. Это всегда ухудшает сжатие (обычно на 5%), поскольку такие символы никогда не будут оцениваться контекстами низших порядков. Значит, выделенное им кодовое пространство совсем не используется. Но эта модель значительно быстрее, поскольку не требует хранения следа символов, которые должны быть m исключены. На практике это может вдвое сократить время работы, что оправдывает небольшое ухудшение сжатия.

Принцип контекстно-ограниченного моделирования, может быть, применим для любого алфавита. 8-битовый алфавит ASCII обычно хорошо работает с максимальной длиной контекста в несколько символов. Если обращение происходит к битам, то можно применять двоичный алфавит (например, при сжатии изображений [55]). Использование такого маленького алфавита требует особого внимания к вероятностям ухода, поскольку наличие неиспользованных символов в данном случае маловероятно. Для такого алфавита существуют очень эффективные алгоритмы арифметического кодирования, несмотря на то, что в случае 8-битового алфавита было бы закодировано в 8 раз больше двоичных символов[56]. Другой крайностью может быть разбиение текста на слова [59]. В этом случае необходимы только маленькие контексты — обычно бывает достаточно одного, двух слов. Управление таким очень большим алфавитом представляет собой отдельную проблему, и в [61] и [52] даются эффективные алгоритмы на эту тему.

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

Аннотация научной статьи по автоматике и вычислительной технике, автор научной работы — Борусяк А. В., Васин Ю. Г.

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

Похожие темы научных работ по автоматике и вычислительной технике , автор научной работы — Борусяк А.В., Васин Ю.Г.,

ENCODING INDEXED IMAGES WITH THE USE OF CONTEXTUAL SIMULATION

The compression problem of indexed bitmap images is considered on the basis of statistical encoding with the use of contextual simulation. Development trends for models and methods of contextual simulation for an efficient algorithm of compression of indexed graphic information are considered. An efficient algorithm for encoding indexed images has been developed, including optimization and parallelization of calculations.

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

Информационные технологии Вестник Нижегородского университета им. H.H. Лобачевского,2014, № 4 (1), с. 495-501

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

© 2014 г. А.В. Борусяк, Ю.Г. Васин

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

Поступила в редакцию 06.07.2014

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

Ключевые слова: сжатие, индексированные изображения, контекстное моделирование.

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

Среди различных подходов к сжатию ИРИ важную роль играют методы и алгоритмы статистического кодирования с контекстным моделированием. При этом лидирующие позиции занимает алгоритм Prediction by Partial Matching (PPM) [1].

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

тропийного кодирования (алгоритм Хаффмана, арифметическое кодирование и т.п.) [1].

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

Модели и методы контекстного

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

Представим исходную растровую графическую информацию в виде двумерной матрицы А, где каждый элемент 5 = е (0. V) е А

соответствует одному пикселю изображения. Здесь I — строка,у — столбец, V е 1. 255 — количество цветов изображения. Под сжатием данных будем понимать процедуру перекодирования данных, производимую с целью уменьшения их объёма. В результате работы алгоритма сжатия исходной информации А требуется получить новый набор данных, имеющий меньший (по сравнению с исходным изображением) объем. Для достижения поставленной цели используются методы статистического кодирования с контекстным моделированием. Под контекстным моделированием понимается оценка вероятности Р(?\С(Я)) появления символа 5 в зависимости от предшествующего ему контекста С (Я). Под символом понимается минимальный элемент входных данных (пиксель), вероятность которого оценивается при кодировании. Под контекстом С(Я) порядка Я подразумевается определенный набор из уже закодированных символов, которые предшествуют текущему кодируемому символу, где порядок Я является величиной контекста —

количеством символов, из которых состоит контекст. В данной работе рассматривается двумерный контекст c0. cRе C(R), где c„=ai-tj-i, t и I-

параметры, определяющие форму и размер контекста. В предложенном алгоритме контекст меньшего порядка n является набором из 0 i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

f (m) + f (h) — 2 + f (esc | h) — f (s | m) + £ f (s | j)

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

P(s | h) =-. Данная вероятность переда-

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

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

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

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

Оптимизация временной сложности алгоритма

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

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

Изначально в алгоритме использовалась структура ЛУЬ-дерева для хранения контекстных моделей. Поскольку алгоритм постоянно использует дерево моделей в своих операциях, реализация дерева моделей может существенно повлиять на скорость работы алгоритма. Ввиду этого было решено рассмотреть и другие варианты хранения дерева моделей. Были реализованы структуры В-дерева и Бр1ау-дерева, после чего было произведено сравнение скорости работы на этих структурах. Экспериментальная апробация показала, что В-дерево наиболее эффективно, и оно было принято в качестве основной структуры хранения дерева контекстных моделей.

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

Сравнение времени кодирования файла artificial.bmp (3072^2048, глубина цвета 8 бит, _количество цветов 256) в зависимости от количества потоков_

Количество потоков Время PC1 (с) Время PC2 (с) Коэффициент сжатия (Ксж)

1 7.94 93.657 13.301

2 6.563 11.141 13.173

4 4.671 16.187 13.041

8 4.494 29.656 12.766

16 4.323 27.515 12.344

32 4.349 41.593 11.742

64 4.022 25.688 10.963

Сравнение времени кодирования файла 21008n.bmp (12358×16563, глубина цвета 8 бит, _количество цветов 12) в зависимости от количества потоков_


Количество потоков Время PC1 (с) Время PC2 (с) Коэффициент сжатия (Ксж)

1 52.658 78.203 213.207

2 31.676 46.109 214.016

4 27.446 38.469 215.567

8 27.075 38.359 214.371

16 26.257 37.468 213.63

32 25.507 36.484 211.582

64 24.979 35.781 207.875

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

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

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

С целью дальнейшего увеличения скорости сжатия была реализована возможность распараллеливания процесса кодирования графических файлов. Для этого изображение разбивалось на п частей. Примем вертикальный размер (высоту) изображения за Н, горизонтальный размер (ширину) за Ж. На данный момент изображение разбивается следующим образом: если количество частей равно четырем, изображение делится по линиям, соединяющим середины его противоположных сторон. В результате этого образуются четыре прямоугольные области Р1, Р2, Р3, Р4 с координатами ((х1„у1), (х2„у2)) диаметрально-противоположных вершин Р1=((0,0), (Я72Н/2)), Р2=((Ж/2,0), (Ж,Н/2)), Р3=((0Н/2), (Я72Н)), Р4=((Я72Н/2),(ЖН)). В

случае, когда пф4, вертикальные стороны изображения делятся на п-1 равных частей высотой Hin и одну высотой (H-H/n*(n-1)). В результате образуется п—1 прямоугольная область P[i] (i = 0, п -1) с координатами Pi = ((0,(H/n)xi), (W,(H/n)x(i+1))) и одна прямоугольная область P[n] = ((0,(H/n)x(n-1)), (WH)). После разбиения изображения каждая его часть сжимается как отдельное изображение в отдельном потоке. При этом для каждой части изображения создается свой экземпляр кодировщика, и результат кодирования записывается в отдельный для каждого изображения буфер в оперативной памяти. После сжатия всех частей изображения буферы выходного потока каждого изображения последовательно записываются в выходной файл на жестком диске. Данный подход позволяет задействовать возможности современных компьютеров, равномерно распределяя нагрузку на ядра процессора, незначительно снижая эффективность сжатия. При реализации расчетов на четырехъядерном PC1 (процессор — Core i5-3230M 2.6 GHz) и на двухъядерном PC2 (процессор — Core 2 Duo E7400 2.8 GHz) были получены результаты, представленные в табл. 1 и табл. 2.

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

Квдмрвнавме мвдексмрвнаввых мзвбражевмй

пользуемых потоков. Данный коэффициент зависит от количества потоков, но не зависит от компьютера, на котором производится кодирование, поэтому для обоих компьютеров коэффициенты совпадают. Из экспериментов видно, что при использовании двухъядерных и четырехъядерных компьютеров оптимально использовать 4 потока для кодирования.

В настоящее время в мире получили большое развитие операционные системы, отличные от Windows. Большое количество устройств использует операционные системы на основе Linux, такие, как Android, также много пользователей операционной системы фирмы Apple. Ввиду этого важна возможность создания нескольких версий одной программы для разных операционных систем. Для включения свойства кроссплатформенности был осуществлен перенос программы в мультиплатформенную среду разработки Qt 4.8.3. Это позволило увеличить производительность, сделать структуру программы более гибкой и добавило приложению свойство мультиплатформенности.

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

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

Используются контекстные модели 8, 5, 2, 1 и нулевого порядков. В контекстной модели нулевого порядка счетчики пикселей при инициализации равновероятны и равны единице. Так как вычислять заново контексты меньших порядков неэффективно, то они вычисляются для первых n i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Сравнение алгоритмов по коэффициенту сжатия _на тестовом наборе ^ 1 (256 цветов)__

№ изображения IPC JLS PNG rar 7z

1 13.31 10.01 9.07 9.34 11.63

2 1.62 2.01 1.83 1.58 1.59

3 4.84 3.50 3.06 4.17 4.16

4 1.23 1.51 1.36 1.21 1.34

5 3.17 2.62 2.57 2.96 2.78

6 2.17 1.59 1.28 1.77 1.97

Сравнение алгоритмов по коэффициенту сжатия _на тестовом наборе 2 (8 цветов)__

№ изображения IPC PNG JPEG-LS rar 7z

1 11.095 6.34 5.74 7.22 8.50

2 20.390 10.86 9.24 14.69 14.38

3 8.808 6.73 4.29 7.17 6.65

4 4.208 2.93 2.30 3.65 3.45

5 5.465 4.72 3.36 4.78 4.47

6 9.722 4.92 3.99 6.99 6.36

7 20.591 13.77 7.84 13.84 13.81

Работа выполнена при финансовой поддержке РФФИ (проекты № 13-07-00521, № 13-07-12211).

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

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

3. Марков А. А. Введение в теорию кодирования. М.: Наука, 1982.

4. Лидовский В.В. Теория информации: Учебное пособие. М.: Компания Спутник +, 2004. С. 111.

5. Савич У. Программирование на C++. СПб.: Питер, 2004.

6. Интернет-ресурс: www.compression.ru.

7. Спецификация tiff: http://cs.mipt.ru/docs/comp/ eng/develop/ formats/tiff/main.pdf.

8. Спецификация PNG: http://www.w3.org/TR/ PNG/.

9. Спецификация DJVU: http://www.celartem.com/ product/ doc/specs/sdjvuspec.djvu.

10. Vasin Yu.G. and Zherzdev S.V. Information Techniques for Hierarchical Image Coding // Pattern Recognition and Image Analysis. 2003. V. 13. №. 3. Р. 539-548.

11. Жерздев С.В. Сжатие изображений в извещениях мореплавателям // Технологии Microsoft в теории и практике программирования. Материалы конференции. Н.Новгород: Изд-во ННГУ, 2007. С. 328.

12. Borusyak A.V., Vasin Yu.V., Zherzdev S.V. Compression of Binary Graphics Using Context Simulation // Pattern Recognition and Image Analysis, 2013. V. 23. № 2. Р. 207-210.

13. Borusyak A.V., Vasin Yu.V., Zherzdev S.V. Optimizing the computational complexity of the algorithm for adaptive compression of binary raster images // The 11-th International Conference «Pattern Recognition and Image Analysis: new information technologies». Samara, 2014. Р. 170-172.

ENCODING INDEXED IMAGES WITH THE USE OF CONTEXTUAL SIMULATION

A.V. Borusyak, Yu.G. Vasin

The compression problem of indexed bitmap images is considered on the basis of statistical encoding with the use of contextual simulation. Development trends for models and methods of contextual simulation for an efficient algorithm of compression of indexed graphic information are considered. An efficient algorithm for encoding indexed images has been developed, including optimization and parallelization of calculations.

Keywords: compression, indexed images, contextual simulation.

KodupoBaHue móeKcupoBambix u3o6paw:eHuü

1. Vatolin D., Ratushnyak A., Smirnov M., Yurkin V. Metody szhatiya dannyh. Ustrojstvo arhivatorov, szhatie izobrazhenij i video. M.: DIALOG-MIFI, 2003.

2. Sehlomon D. Szhatie dannyh, izobrazhenij i zvu-ka. M.: Tekhnosfera, 2006.

3. Markov A.A. Vvedenie v teoriyu kodirovaniya. M.: Nauka, 1982.

4. Lidovskij V.V. Teoriya informacii: Uchebnoe posobie. M.: Kompaniya Sputnik +, 2004. S. 111.

5. Savich U. Programmirovanie na C++. SPb.: Piter, 2004.

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

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

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

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

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

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

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

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

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 раза меньший, чем текущий.

В алгоритме использована техника масштабирования последнего встреченного символа (МПВС) [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(процессор

Илон Маск рекомендует:  Downto - Ключевое слово Delphi

— 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.

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 рабочих дней удалим его.

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

Курсовая работа

Дисциплина: Теоретические основы информатики

Скачать:

Вложение Размер
kursovaya_taranin_anton.docx 105.95 КБ

Предварительный просмотр:

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

«Омский государственный педагогический университет»

Факультет математики, информатики, физики и технологии

Кафедра прикладной информатики и математики

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

Направление: педагогическое образование

Профиль: Информатика и Технология

Дисциплина: Теоретические основы информатики

Таранин Антон Викторович

Курганова Наталья Александровна,

«__» _______________ 2015г.

Введение

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

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

В связи с вышеизложенным вытекает актуальность нашей курсовой работы.

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

1) изучить характеристики словарных методов сжатия;

2) рассмотреть содержание ключевых понятий;

3) изучить классические алгоритмы Зива-Лемпела;

4) рассмотреть примеры использования алгоритмов LZ77, LZSS, LZ78.

Объект: словарные алгоритмы сжатия.

Предмет: алгоритм сжатия.

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

Теоретические основы словарных методах сжатия

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

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

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

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

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

Если речь идет о стихотворном тексте, избыточность может быть до двух раз выше.

В 1977 году Абрахам Лемпель и Якоб Зив предложили алгоритм сжатия данных, названный позднее LZ77. Этот алгоритм используется в программах архивирования текстов compress, lha, pkzip и arj. Модификация алгоритма LZ78 применяется для сжатия двоичных данных. Эти модификации алгоритма защищены патентами США. Алгоритм предполагает кодирование последовательности бит путем разбивки ее на фразы с последующим кодированием этих фраз.

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

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

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

Все методы этой группы базируются на алгоритме, разработанном и опубликованном, как уже отмечалось, в 1977 году Абрахамом Лемпелем и Якобом Зивом, – LZ77. Наиболее совершенным представителем этой группы, включившим в себя все достижения, полученные в данном направлении, является алгоритм LZSS, опубликованный в 1982 году Сторером и Шимански.

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

Все методы этой группы базируются на алгоритме, разработанном и опубликованном Лемпелем и Зивом в 1978 году, – LZ78. Наиболее совершенным на данный момент представителем этой группы словарных методов является алгоритм LZW, разработанный в 1984 году Терри Вэлчем.

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

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

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

Уменьшение размера возможно в первую очередь за счет того, что обычно в сжимаемых данных встречается лишь малая толика всех возможных строк длины n, поэтому для представления индекса фразы требуется, как правило, меньшее число битов, чем для представления исходной строки. Например, рассмотрим количество взаимно различных строк длины от 1 до 5 в тексте на русском языке (роман Ф.М. Достоевского «Бесы», обычный неформатированный текст, размер около 1.3 Мбайт) (табл. 1.1).

Количество различных строк

Использовано комбинаций, % от всех возможных

Иначе говоря, размер (мощность) алфавита равен 136 символам, но реально используется только от всех возможных двухсимвольных строк, и т.д.

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

Количество строк длины 5, встретившихся ровно N раз

Количество относительно общего числа всех различных строк длины 5, %

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

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

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

С тех пор методы данного семейства неизменно являются самыми популярными среди всех методов сжатия данных, хотя в последнее время ситуация начала меняться в пользу BWT и PPM, как обеспечивающих лучшее сжатие. Кроме того, практически все реально используемые словарные алгоритмы относятся к семейству Зива-Лемпела.

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

Ниже будут рассмотрены алгоритмы словарного сжатия, относимые к классу методов Зива-Лемпела. Методы Зива-Лемпела ориентированы на сжатие качественных данных, причем эффективность применения достигается в том случае, когда статистические характеристики обрабатываемых данных соответствуют модели источника с памятью.

Классические алгоритмы Зива-Лемпела

LZ77 и LZ78 являются универсальными алгоритмами сжатия, в которых словарь формируется на основании уже обработанной части входного потока, т.е. адаптивно. Принципиальным отличием является лишь способ формирования фраз. В модификациях первоначальных алгоритмов это свойство сохраняется. Поэтому словарные алгоритмы Зива-Лемпела разделяют на два семейства – алгоритмы типа LZ77 и алгоритмы типа LZ78. Иногда также говорят о словарных методах LZ1 и LZ2.

Этот словарный алгоритм сжатия является самым старым среди методов LZ. Описание было опубликовано в 1977 году, но сам алгоритм разработан не позднее 1975 года.

Идея метода: словарь ограниченной длины (несколько килобайт) «скользит» по сообщению(рис.1). Цепочки знаков, которые уже есть в словаре, заменяются короткими ссылками: «адрес начала + длина», за счет чего и достигается сжатие кода.

Рисунок 1.1 – Алгоритм LZ77

Алгоритм LZ77 является «родоначальником» целого семейства словарных схем – так называемых алгоритмов со скользящим словарем, или скользящим окном. Действительно, в LZ77 в качестве словаря используется блок уже закодированной последовательности. Как правило, по мере выполнения обработки положение этого блока относительно начала последовательности постоянно меняется, словарь «скользит» по входному потоку данных.

Скользящее окно имеет длину N, т.е. в него помещается N символов, и состоит из 2 частей:

  • последовательности длины W = N-n уже закодированных символов, которая и является словарем;
  • упреждающего буфера, или буфера предварительного просмотра (lookahead), длины n ; обычно n на порядки меньше W.

Пусть к текущему моменту времени мы уже закодировали t символов s 1 , s 2 , . s t . Тогда словарем будут являться W предшествующих символов s 1 , s t-(W-1) , s t-(W-1)+1 , . s t . Соответственно, в буфере находятся ожидающие кодирования символы s t+1 , s t+2 , . s t+n . . Очевидно, что если W≥t , то словарем будет являться вся уже обработанная часть входной последовательности.

Идея алгоритма заключается в поиске самого длинного совпадения между строкой буфера, начинающейся с символа s t+1 и всеми фразами словаря. Эти фразы могут начинаться с любого символа s t-(W-1) , s t-(W-1)+1 , . s t и выходить за пределы словаря, вторгаясь в область буфера, но должны лежать в окне. Следовательно, фразы не могут начинаться с s t+1 поэтому буфер не может сравниваться сам с собой. Длина совпадения не должна превышать размер буфера. Полученная в результате поиска фраза s t-(i-1) ,s t-(i-1)+1 . s t-(i-1)+(j-1) кодируется с помощью двух чисел:

  • смещения (offset) от начала буфера, i ;
  • длины соответствия, или совпадения (match length), j.

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

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

Рассмотрим работу LZ77 на примере сообщения, приведенного в табл. 1.

«Скользящее окно» в алгоритме LZ77

Обработанная часть сообщения (словарь)

Алгоритм LZ77 выдает коды, состоящие из трех элементов:

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

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

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

Декодирование в LZ77 еще проще, так как не нужно осуществлять поиск в словаре.

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

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

Помимо проблем с быстродействием, у алгоритма LZ77 возникают проблемы с самим сжатием. Они появляются, когда кодер не может найти совпадающую подстроку в словаре и выдает стандартный 3-компонентный код, пытаясь закодировать один символ. Если словарь имеет длину 4К, а буфер – 16 байтов, то код будет занимать 3 байта. Кодирование одного байта в три имеет мало общего со сжатием и существенно понижает производительность алгоритма.

В 1982 г. Сторером (Storer) и Шиманским (Szimanski) на базе LZ77 был разработан алгоритм LZSS, который отличается от LZ77 производимыми кодами.

Этот алгоритм получил свое название по именам своих разработчиков: Lempel, Ziv, Storer, Szimansky. Существенный вклад в развитие алгоритма внес Т. С. Bell.

LZSS является развитием LZ77 и стремится избавиться от недостатков своего предшественника. LZSS отличается от LZ77 тем, как поддерживается скользящее окно и какие коды выдает компрессор.

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

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

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

Длина кода вычисляется следующим образом: длина подстроки не может быть больше размера буфера, а смещение не может быть больше размера словаря –1. Следовательно, длина двоичного кода смещения будет округленным в большую сторону n=log 2 (размер словаря), а длина двоичного кода для длины подстроки будет округленным в большую сторону m=log 2 (размер буфера). Каждый символ кодируется 8 битами (например, ASCII+). Т.е., для кодирования каждой подстроки исходного сообщения нужно n+m+8 бит.

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

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

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

Дерево поиска представляет собой двоичное лексикографически упорядоченное дерево. Каждый узел в дереве соответствует одной подстроке словаря и содержит ссылки на родителя и двух потомков: “большего” и “меньшего” в смысле лексикографического сравнения символьных строк.

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

Алгоритм последовательно выполняет следующие действия:

  • кодирует содержимое буфера;
  • считывает очередные символы в буфер, удаляя при необходимости наиболее “старые” строки из словаря;
  • вставляет в дерево новые строки, соответствующие считанным символам.

Для того чтобы декодер смог вовремя остановиться, декодируя сжатое сообщение, кодер помещает в сжатый файл специальный символ “КОНЕЦ ФАЙЛА” после того, как он обработал все символы сообщения.

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

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

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

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

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

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

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

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

Алгоритм LZ78 был опубликован в 1978 году и впоследствии стал «отцом» семейства словарных методов LZ78.

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

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

Кодер порождает только последовательность кодов фраз. Каждый код состоит из номера (индекса) n «родительской» фразы S, или префикса, и символа s.

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

Например, строка « aaabbabaabaaabab » делится на 7 фраз. Каждая из них кодируется как уже встречавшаяся ранее фраза плюс текущий символ. Например, последние три символа кодируются как фраза номер 4 ( «ba» ), за которой следует символ «b» . Фраза номер 0 — пустая строка(табл.1.4).

LZ78-кодирование строки ‘aaabbabaabaaabab’; запись (i,a) обозначает копирование цепочки i перед символом a.

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

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

Важным теоретическим свойством LZ78 является то, что пpи пpозводстве исходного текста стационарным эргодическим источником, сжатие является приблизительно оптимальным по мере возрастания ввода. Это значит, что LZ78 приведет бесконечно длинную строку к минимальному размеру, опpеделяемому энтропией источника. Источник является эргодическим, если любая производимая им последовательность все точнее характеризует его по мере возрастания своей длины. Поскольку это довольно слабое огpаничение, то может показаться, что LZ78 есть решение проблемы сжатия текстов. Однако, оптимальность появляется когда размер ввода стремится к бесконечности, а большинство текстов значительно короче! Она основана на размере явного символа, который значительно меньше размера всего кода фразы. Т.к. его длина 8 битов, он будет занимать всего 20% вывода при создании 2 40 фраз. Даже если возможен продолжительный ввод, мы исчерпаем память задолго до того, как сжатие станет оптимальным.

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

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

Алгоритм LZ78 резервирует специальный код, назовем его «Reset», который вставляется в упакованные данные, отмечая момент сброса словаря. Значение кода Reset примем равным 256.

Таким образом, при начале кодирования минимальная длина кода составляет 9 бит. Максимальная длина кода зависит от объема словаря – количества различных фрагментов, которые туда можно поместить. Если объем словаря измерять в байтах (символах), то очевидно, что максимальное количество фрагментов равно числу символов, а, следовательно, максимальная длина кода равна log2 (объем словаря в байтах).

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

Таким образом, алгоритм упаковки и распаковки методом LZ78 весьма прост. Основную проблему при реализации этого метода представляет устройство словаря.

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

Выводы по главе 1

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

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

Алгоритмы семейства LZ в 1.3-1.7 раза уступают методам статистического моделирования по качеству сжатия, однако обладают очень высокой скоростью кодирования при сравнительно небольшом объеме требуемой памяти.

Огромное преимущество алгоритмов семейства LZ – чрезвычайно высокая скорость декодирования. Это позволяет применять их в тех случаях, когда декодирование осуществляется гораздо чаще кодирования или скорость декодирования очень важна (например, при хранении данных на CD-ROM, в файловых системах со сжатием и т. д.).

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

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

Практические основы словарных методов сжатия

Пример использования алгоритма LZ–77

Рассмотрим работу LZ77 на примере текстовых сообщений.

Курсовая работа: Алгоритмы сжатия данных

Алгоритмы сжатия данных

Энтропия и количество информации

Комбинаторная, вероятностная и алгоритмическая оценка количества информации

Моделирование и кодирование

Некоторые алгоритмы сжатия данных

BWT — преобразование и компрессор

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

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

Доказательство правильности декодирования

Приращаемая передача и получение

Переполнение и завершение

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

Приложение 1. Программный код

Приложение 2. Интерфейс программы

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

Первые алгоритмы сжатия были примитивными в связи с тем, что была примитивной вычислительная техника. С развитием мощностей компьютеров стали возможными все более мощные алгоритмы. Настоящим прорывом было изобретение Лемпелем и Зивом в 1977 г. словарных алгоритмов. До этого момента сжатие сводилось к примитив­ному кодированию символов. Словарные алгоритмы позволяли кодир­овать повторяющиеся строки символов, что позволило резко повысить степень сжатия. Важную роль сыграло изобретение примерно в это же время арифметического кодирования, позволившего воплотить в жизнь идею Шеннона об оптимальном кодировании. Следующим прорывом было изобретение в 1984 г. алгоритма РРМ. Следует отметить, что это изобретение долго оставалось незамеченным. Дело в том, что алгоритм сложен и требует больших ресурсов, в первую очередь больших объемов памяти, что было серьезной проблемой в то время. Изобретенный в том же 1984 г. алгоритм LZW был чрезвычайно популярен благодаря своей простоте, хорошей рекламе и нетребовательности к ресурсам, несмотря на относительно низкую степень сжатия. На сегодняшний день алгоритм РРМ является наилучшим алгоритмом для сжатия текстовой информации, aLZW давно уже не встраивается в новые приложения (однако широко используется в старых).

Будущее алгоритмов сжатия тесно связано с будущим компью­терных технологий. Современные алгоритмы уже вплотную приблизи­лись к Шенноновской оценке 1.3 бита на символ, но ученые не видят причин, по которым компьютер не может предсказывать лучше, чем человек. Для достижения высоких степеней сжатия приходится использовать более сложные алгоритмы. Однако существовавшее одно время предубеждение, что сложные алгоритмы с более высокой степенью сжатия всегда более медленны, несостоятельно. Так, существуют крайне быстрые реализации алгоритмов РРМ для текстовой информации и SPIHT для графики, имеющие очень высокую степень сжатия.

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

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

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

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

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

При реализации алгоритма арифметического кодирования использовался язык C# и визуальная среда программирования MicrosoftVisualStudio 2005. Язык C# имеет следующие преимущества: простота, объектная ориентированность, типовая защищенность, “сборка мусора”, поддержка совместимости версий, упрощение отладки программ.

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

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

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

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

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

Обозначим через р(у|х) условную вероятность того, что наступит событие у если событие х уже наступило. В таком случае условная энтропия для переменной Y, которая может принимать М значений yi с условными вероятностями р(уi |х) будет

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

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

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

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

Этот словарный алгоритм сжатия является самым старым среди методов LZ. Описание было опубликовано в 1977 г., но сам алгоритм разработан не позднее 1975 г.

Алгоритм LZ77 является родоначальником целого семейства словарных схем — так называемых алгоритмов со скользящим словарем, или скользящим окном. Действительно, в LZ77 в качестве словаря используется блок уже закодированной последовательности. Как правило, по мере выполнения обработки положение этого блока относительно начала последовательности постоянно меняется, словарь «скользит» по входному потоку данных.

Скользящее окно имеет длину N, т. е. в него помещается N символов, и состоит из двух частей:

■ последовательности длины W=N-nуже закодированных символов, которая и является словарем;

■ упреждающего буфера, или буфера предварительного просмотра, длины n; обычно и на порядки меньше W.

Пусть к текущему моменту времени мы уже закодировали tсимволов S1 , S2 , . St . Тогда словарем будут являться Wпредшествующих символов St -( W -1) , St -( W -1)+1, …, St . Соответственно, в буфере находятся ожидающие кодирования символы St +1 , St +2 , …, St + n . Очевидно, что если W≥ t, то словарем будет являться вся уже обработанная часть входной последовательности.

Идея алгоритма заключается в поиске самого длинного совпадения между строкой буфера, начинающейся с символа St +1 , и всеми фразами словаря. Эти фразы могут начинаться с любого символа St -( W -1) , St -( W -1)+1, …, St выходить за пределы словаря, вторгаясь в область буфера, но должны лежать в окне. Следовательно, фразы не могут начинаться с St +1 . поэтому буфер не может сравниваться сам с собой. Длина совпадения не должна превышать размера буфера. Полученная в результате поиска фраза St -( i -1) , St -( i -1)+1, …, St -( i -1)+( j -1) кодируется с помощью двух чисел:

1) смещения (offset) от начала буфера, i;

2) длины соответствия, или совпадения (matchlength), j;

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

Таким образом, на каждом шаге кодер выдает описание трех объектов: смещения и длины соответствия, образующих код фразы, равной обработанной строке буфера, и одного символа s(литерала). Затем окно смещается на j+1 символов вправо и осуществляется переход к новому циклу кодирования. Величина сдвига объясняется тем, что мы реально закодировали именно j+1 символов: j с помощью указателя на фразу в словаре и 1(? i) с помощью тривиального копирования. Передача одного символа в явном виде позволяет разрешить проблему обработки еще ни разу не виденных символов, но существенно увеличивает размер сжатого блока.

Алгоритм LZ78, предложенный в 1978 г. Лемпелом и Зивом, нашел свое практическое применение только после реализации LZW84, предложенной Велчем в 1984 г.

Словарь является расширяющимся (expanding). Первоначально в нем содержится только 256 строк длиной в одну букву-все коды ASCII. В процессе работы словарь разрастается до своего максимального объема |Vmax | строк (слов). Обычно, объем словаря достигает нескольких десятков тысяч слов. Каждая строка в словаре имеет свою известную длину и этим похожа на привычные нам книжные словари и отличается от строк LZ77, которые допускали использование подстрок. Таким образом, количество слов в словаре точно равно его текущему объему. В процессе работы словарь пополняется по следующему закону:

1. В словаре ищется слово str, максимально совпадающее с текущим кодируемым словом в позиции posисходного текста. Так как словарь первоначально не пустой, такое слово всегда найдется;

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

. Длина кода равна |position|+|B||=[logVmax]+8 (бит);

3. Если словарь еще не полон, новая строка strВ добавляется в словарь по адресу last_position, размер словаря возрастает на одну позицию;

4. Указатель в исходном тексте posсмещается на |strB|=|str|+l байт дальше к символу, следующему за В.

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

Птак как словарь увеличивается постепенно и одинаково для кодировщика и декодировщика, для кодирования позиции нет необходимости использовать [logVmax ] бит, а можно брать лишь [logV] бит, где V-текущий объем словаря.

Самая серьезная проблема LZ78-переполнение словаря: если словарь полностью заполнен, прекращается его обновление и процесс сжатия может быть заметно ухудшен (метод FREEZE). Отсюда следует вывод-словарь нужно иногда обновлять. Самый простой способ как только словарь заполнился его полностью обновляют. Недостаток очевиден кодирование начинается на пустом месте, как бы с начала, и пока словарь не накопится сжатие будет незначительным, а дальше-замкнутый цикл опять очистка словаря. Поэтому предлагается словарь обновлять не сразу после его заполнения, а только после того, как степень сжатия начала падать (метод FLUSH). Более сложные алгоритмы используют два словаря, которые заполняются синхронно, но с задержкой на |V|/2 слов один относительно другого. После заполнения одного словаря, он очищается, а работа переключается на другой (метод SWAP). Еще более сложными являются эвристические методы обновления словарей в зависимости от частоты использования тех или иных слов (LRU, TAG).

Выходной код также формируется несколько иначе (сравните с предыдущим описанием):

1. В словаре ищется слово str, максимально совпадающее с текущим кодируемым словом в позицииposисходного текста;

2. В выходной файл помещается номер найденного слова в словаре

. Длина кода равна |position|=[logV] (бит);

3. Если словарь еще не полон, новая строка strВ добавляется в словарь по адресу last_position, размер словаря возрастает на одну позицию;

4. Указатель в исходном тексте posсмещается на |str| байт дальше к символу В.

Алгоритм PPM (predictionbypartialmatching) — это метод контекстно-ограниченного моделирования, позволяющий оценить вероятность символа в зависимости от предыдущих символов. Строку символов, непосредственно предшествующую текущему символу, будем называть контекстом. Модели, в которых для оценки вероятности используются контексты длиной не более чем N, принято называть моделями порядка N.

Вероятность символа может быть оценена в контекстах разных порядков. Например, символ «о» в контексте «tobeornott» может быть оценен в контексте первого порядка «t», в контексте второго порядка «_t», в контексте третьего порядка «t_t» и т.д. Он также может быть оценен в контексте нулевого порядка, где вероятности символов не зависят от контекста, и в контексте минус первого порядка, где все символы равновероятны. Контекст минус первого порядка используется для того, чтобы исключить ситуацию, когда символ будет иметь нулевую вероятность и не сможет быть закодирован. Это может случиться, если вероятность символа не будет оценена ни в одном из контекстов (что возможно, если символ в них ранее не встречался).

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

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

BWT — преобразование и компрессор

BWT-компрессор (Преобразование Барроуза – Уиллера) — сравнительно новая и революционная техника для сжатия информации (в особенности-текстов), основанная на преобразовании, открытом в 1983 г. и описанная в 1994 г.. BWT является удивительным алгоритмом. Во-первых, необычно само преобразование, открытое в научной области, далекой от архиваторов. Во-вторых,даже зная BWT, не совсем ясно, как его применить к сжатию информации. В-третьих, BW преобразование чрезвычайно просто. И, наконец, сам BWT компрессор состоит из «магической» последовательности нескольких рассмотренных ранее алгоритмов и требует, поэтому, для своей реализации самых разнообразных программных навыков.

BWT не сжимает данные, но преобразует блок данных в формат, исключительно подходящий для компрессии. Рассмотрим его работу на упрощенном примере. Пусть имеется словарь V из N символов. Циклически переставляя символы в словаре влево, можно получить N различных строк длиной N каждая. В нашем примере словарь-это слово V=»БАРАБАН» и N=7. Отсортируем эти строки лексикографически и запишем одну под другой:

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

Фактический «выход» преобразования состоит из строки L=»РББАНАА» и первичного индекса I, показывающего, какой символ из L является действительным первым символом словаря V (в нашем случае I=2). Зная L и I можно восстановить строку V.

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

Классический алгоритм Хаффмана на входе получает таблицу частот встречаемости символов в сообщении. Далее на основании этой таблицы строится дерево кодирования Хаффмана (Н-дерево). Алгоритм построения Н-дерева прост и элегантен.

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

2. Выбираются два свободных узла дерева с наименьшими весами.

3. Создается их родитель с весом, равным их суммарному весу.

4. Родитель добавляется в список свободных узлов, а двое его детей удаляются из этого списка.

5. Одной дуге, выходящей из родителя, ставится в соответствие бит 1, другой — бит 0.

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

Допустим, у нас есть следующая таблица частот:

Название: Алгоритмы сжатия данных
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 02:50:21 26 июля 2009 Похожие работы
Просмотров: 1052 Комментариев: 14 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать
15 7 6 6 5
А Б В Г Д

На первом шаге из листьев дерева выбираются два с наименьшими весами — Г и Д. Они присоединяются к новому узлу-родителю, вес которого устанавливается в 5+6 = 11. Затем узлы Г и Д удаляются из списка свободных. Узел Г соответствует ветви 0 родителя, узел Д — ветви 1.

На следующем шаге то же происходит с узлами Б и В, так как теперь эта пара имеет самый меньший вес в дереве. Создается новый узел с весом 13, а узлы Б и В удаляются из списка свободных. После всего этого дерево кодирования выглядит так, как показано на рис. 2.

Рис. 2. Дерево кодирования Хаффмана после второго шага

На следующем шаге «наилегчайшей» парой оказываются узлы Б/В и Г/Д. Для них еще раз создается родитель, теперь уже с весом 24. Узел Б/В соответствует ветви 0 родителя, Г/Д—ветви 1.

На последнем шаге в списке свободных осталось только два узла — это А и узел (Б/В)/(Г/Д). В очередной раз создается родитель с весом 39 и бывшие свободными узлы присоединяются к разным его ветвям.

Поскольку свободным остался только один узел, то алгоритм построения дерева кодирования Хаффмана завершается. Н-дерево представлено на рис. 3.

Рис. 3. Окончательное дерево кодирования Хаффмана

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

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

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

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

Арифметическое сжатие — достаточно изящный метод, в основе которого лежит очень простая идея. Мы представляем кодируемый текст в виде дроби, при этом строим дробь таким образом, чтобы наш текст был представлен как можно компактнее. Для примера рассмотрим построение такой дроби на интервале [0, 1) (0 — включается, 1 — нет). Интервал [0, 1) выбран потому, что он удобен для объяснений. Мы разбиваем его на подынтервалы с длинами, равными вероятностям появления символов в потоке. В дальнейшем будем называть их диапазонами соответствующих символов.

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

Символ Частота Вероятность Диапазон
О 3 0.3 [0.0; 0.3)
К 2 0.2 [0.3; 0.5)
В 2 0.2 [0.5; 0.7)
Р 1 0.1 [0.7; 0.8)
А 1 0.1 [0.8; 0.9)
“.” 1 0.1 [0.9; 1.0)

Будем считать, что эта таблица известна в компрессоре и декомпрессоре. Кодирование заключается в уменьшении рабочего интервала. Для первого символа в качестве рабочего интервала берется [0, 1). Мы разбиваем его на диапазоны в соответствии с заданными частотами символов (см. таблицу диапазонов). В качестве следующего рабочего интервала берется диапазон, соответствующий текущему кодируемому символу. Его длина пропорциональна вероятности появления этого символа в потоке. Далее считываем следующий символ. В качестве исходного берем рабочий интервал, полученный на предыдущем шаге, и опять разбиваем его в соответствии с таблицей диапазонов. Длина рабочего интервала уменьшается пропорционально вероятности текущего символа, а точка начала сдвигается вправо пропорционально началу диапазона для этого символа. Новый построенный диапазон берется в качестве рабочего и т. д.

Используя исходную таблицу диапазонов, кодируем текст «КОВ.КОРОВА»:

Исходный рабочий интервал [0,1).

Символ «К» [0.3; 0.5) получаем [0.3000; 0.5000).

Символ «О» [0.0; 0.3) получаем [0.3000; 0.3600).

Символ «В» [0.5; 0.7) получаем [0.3300; 0.3420).

Символ «.» [0.9; 1.0) получаем [0,3408; 0.3420).

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

Рис. 4. Графический процесс кодирования первых трех символов

Таким образом, окончательная длина интервала равна произведению вероятностей всех встретившихся символов, а его начало зависит от порядка следования символов в потоке. Можно обозначить диапазон символа с как [а[с]; b[с]), а интервал для i-го кодируемого символа потока как [li , hi ).

Большой вертикальной чертой на рисунке выше обозначено произвольное число, лежащее в полученном при работе интервале [/i , hi ). Для последовательности «КОВ.», состоящей из четырех символов, за такое число можно взять 0.341. Этого числа достаточно для восстановления исходной цепочки, если известна исходная таблица диапазонов и длина цепочки.

Рассмотрим работу алгоритма восстановления цепочки. Каждый следующий интервал вложен в предыдущий. Это означает, что если есть число 0.341, то первым символом в цепочке может быть только «К», поскольку только его диапазон включает это число. В качестве интервала берется диапазон «К» — [0.3; 0.5) и в нем находится диапазон [а[с]; b[с]), включающий 0.341. Перебором всех возможных символов по приведенной выше таблице находим, что только интервал [0.3; 0.36), соответствующий диапазону для «О», включает число 0.341. Этот интервал выбирается в качестве следующего рабочего и т. д.

Ниже показан фрагмент псевдокода процедур кодирования и декодирования. Символы в нем нумеруются как 1,2,3. Частотный интервал для i-го символа задается от cum_freq[i] до cum_freq[i-1]. Пpи убывании i cum_freq[i] возрастает так, что cum_freq[0] = 1. (Причина такого «обpатного» соглашения состоит в том, что cum_freq[0] будет потом содеpжать ноpмализующий множитель, котоpый удобно хpанить в начале массива). Текущий pабочий интеpвал задается в [low; high] и будет в самом начале pавен [0; 1) и для кодиpовщика, и для pаскодиpовщика.

С каждым символом текста обpащаться к пpоцедуpе encode_symbol(). Пpовеpить, что «завеpшающий» символ закодиpован последним. Вывести полученное значение интеpвала [low; high).

range = high — low

high = low + range*cum_freq[symbol-1]

low = low + range*cum_freq[symbol]

Value — это поступившее на вход число. Обpащение к пpоцедуpе decode_symbol() пока она не возвpатит «завеpшающий» символ.

//поиск такого символа, что

Из выражения (1) имеем:

В отличие от псеводокода, программа представляет low и high целыми числами. В псевдокоде текущий интеpвал пpедставлен чеpез [low; high), а в пpогpамме это [low; high] — интеpвал, включающий в себя значение high. Hа самом деле более пpавильно, хотя и более непонятно, утвеpждать, что в пpогpамме пpедставляемый интеpвал есть [low; high + 0.1111. ) по той пpичине, что пpи масштабитовании гpаниц для увеличения точности, нули смещаются к младшим битам low, а единицы смещаются в high.

По меpе сужения кодового интеpвала, стаpшие биты low и high становятся одинаковыми, и поэтому могут быть пеpеданы немедленно, т.к. на них будущие сужения интеpвала все pавно уже не будут влиять. Поскольку мы знаем, что low≤high, это воплотится в следующую пpогpамму:

low = 2 * (low — Half);

high = 2 * (high — Half) + 1;

гаpантиpующую, что после ее завеpшения будет спpеведливо неpавенство: low Half)

value = 2 * (value — Half) + input_bit();

low = 2 * (low — Half);

high = 2 * (high — Half) + 1;

Как показано в псевдокоде, арифметическое кодирование работает при помощи масштабирования накопленных вероятностей, поставляемых моделью в интервале [low; high] для каждого передаваемого символа. Пpедположим, что low и high настолько близки дpуг к дpугу, что опеpация масштабиpования пpиводит полученные от модели pазные символы к одному целому числу, входящему в [low; high]. В этом случае дальнейшее кодиpование пpодолжать невозможно. Следовательно, кодиpовщик должен следить за тем, чтобы интеpвал [low; high] всегда был достаточно шиpок. Пpостейшим способом для этого является обеспечение шиpины интеpвала не меньшей max_frequency — максимального значения суммы всех накапливаемых частот.

Как можно сделать это условие менее стpогим? Объясненная выше опеpация битового сдвига гаpантиpует, что low и high могут только тогда становиться опасно близкими, когда заключают между собой half. Пpедположим, они становятся настолько близки, что

first_qtr ≤low 14 — 1 и top_value = 2 16 — 1.

Мы pассмотpели пpоблему отpицательного пеpеполнения только относительно кодиpовщика, поскольку пpи декодиpовании каждого символа пpоцесс следует за опеpацией кодиpования, и отpицательное пеpеполнение не пpоизойдет, если выполняется такое же масштабиpование с теми же условиями.

Теперь рассмотрим возможность переполнения при целочисленном умножении. Переполнения не произойдет, если произведение range*max_frequency вмещается в целое слово, т.к. накопленные частоты не могут превышать max_frequency. range имеет наибольшее значение в top_value + 1, поэтому максимально возможное произведение в программе есть 2 16 *(2 14 — 1), которое меньше 2 30 .

При завершении процесса кодирования необходимо послать уникальный завершающий символ (EOF-символ), а затем послать вслед достаточное количество битов для гарантии того, что закодированная строка попадет в итоговый рабочий интервал. Т.к. пpоцедуpа done_encoding() может быть увеpена, что low и high огpаничены либо выpажением (1a), либо (1b), ему нужно только пеpедать 01 или 10 соответственно, для удаления оставшейся неопpеделенности. Удобно это делать с помощью пpоцедуpы bit_plus_follow(). Пpоцедуpа input_bit() на самом деле будет читать немного больше битов, из тех, что вывела output_bit(), потому что ей нужно сохpанять заполнение нижнего конца буфеpа. Hеважно, какое значение имеют эти биты, поскольку EOF уникально опpеделяется последними пеpеданными битами.

Программа должна работать с моделью, которая предоставляет пару перекодировочных таблиц index_to_char[] и char_to_index[], и массив накопленных частот cum_freq[]. Причем к последнему предъявляются следующие требования:

никогда не делается попытка кодиpовать символ i, для котоpого

cum_freq[0] — 4 битов/символ.

Дополнительные затpаты на масштабиpование счетчиков отчасти больше, но все pавно очень малы. Для коpотких текстов (меньших 2 14 байт) их нет. Hо даже с текстами в 10 5 — 10 6 байтов накладные pасходы, подсчитанные экспеpиментально, составляют менее 0.25% от кодиpуемой стpоки.

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

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

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

Для реализации использовался язык C# и визуальная среда программирования MicrosoftVisualStudio 2005. В результате программное обеспечение очень компактно, интуитивно понятно и эффективно в работе.

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

2. Сэломон Д. Сжатие данных, изображений и звука. Data Compression Methods. Серия: Мир программирования. Издательство: Техносфера, 2004. — 368 с.

3. Артюшенко В. М., Шелухин О. И., Афонин М. Ю. Цифровое сжатие видеоинформации и звука. Издательство: Дашков и Ко, 2004. — 426 с.

4. Седжвик Р. Фундаментальные алгоритмы на C++. Части 1-4. Анализ. Структуры данных. Сортировка. Поиск. Издательство: ДиаСофт, 2002. — 688 с.

// Количество бит для кода

// Максимально возможное значениекода

const int top_value = (int)(((long)1 = 0; i—)

freq[i] = (freq[i] + 1) / 2;

/* Обновление перекодировочных таблиц в случае перемещения символа */

for (i = symbol; freq[i] == freq[i — 1]; i—) ;

Моделирование при сжатии текстовых данных практические контекстно ограниченные модели

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

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

Можно выделить следующие основные свойства и фундаментальные качества естественного языка [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. Пример матрицы близости текстовых объектов

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

Рецензенты:

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

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

Илон Маск рекомендует:  Таблица с рамкой
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL