Научная статья на тему 'Гибридный алгоритм сжатия дискретно-тоновой графики'

Гибридный алгоритм сжатия дискретно-тоновой графики Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
245
83
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БЫСТРЫЕ АЛГОРИТМЫ СЖАТИЯ / СЖАТИЕ БЕЗ ПОТЕРЬ / ДИСКРЕТНО-ТОНОВАЯ ГРАФИКА / FAST COMPRESSION ALGORITHMS / INFORMATION LOSSLESS COMPRESSION / DISCRETE-TONE GRAPHICS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дружинин Денис Вячеславович

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

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

Hybrid compression algorithm for discrete-tone graphics processing

A hybrid algorithm for fast information lossless compression of discrete-tone images is presented. The algorithm is a combination of two algorithms: special RLE implementation, which can detect vertical and horizontal redundancy, and shift algorithm, which belongs to dictionary techniques. The shift algorithm replaces three bytes, which encode pixel color, by one byte reference to pixel with the same color, which was found earlier. Presented RLE implementation can detect three region types of pixels with the same color: vertical, horizontal lines and rectangles. Two combinations of hybrid algorithm with the known compression algorithms LZO and zlib (used on the second stage of compression) are researched. Results of practical comparison of combined algorithms among themselves and with other known algorithms are presented. As demonstrated by testing, combined algorithm, based on hybrid algorithm and zlib, gives an ability to significantly increase discrete-tone images compression ratio with an acceptable time cost.

Текст научной работы на тему «Гибридный алгоритм сжатия дискретно-тоновой графики»

№7 ПРИЛОЖЕНИЕ Сентябрь 2014

Секция 7

ПРИКЛАДНАЯ ТЕОРИЯ КОДИРОВАНИЯ

УДК 004.627 : 004.932.2

ГИБРИДНЫЙ АЛГОРИТМ СЖАТИЯ ДИСКРЕТНО-ТОНОВОЙ ГРАФИКИ

Д. В. Дружинин

Представлен гибридный алгоритм — быстрый алгоритм сжатия без потерь информации, предназначенный для обработки изображений с резкими цветовыми переходами (дискретно-тоновых изображений). Гибридный алгоритм является соединением двух алгоритмов: специальной реализации ИЬЕ, способной выявлять как вертикальную, так и горизонтальную избыточность, и сдвигового алгоритма, который относится к семейству словарных методов сжатия. Сдвиговый алгоритм осуществляет замену трёх байтов, кодирующих цвет пикселя, на однобайтовую ссылку на пиксель с таким же цветом, встречавшимся ранее. Представленная реализация ИЬЕ способна выявлять области пикселей одного цвета трёх типов: вертикальные, горизонтальные линии и прямоугольники. Рассмотрены комбинированные алгоритмы, предполагающие последовательное выполнение гибридного алгоритма и некоторых известных алгоритмов сжатия. При этом каждый из результирующих наборов данных гибридного алгоритма обладает специфическим типом избыточности и поэтому сжимается по отдельности на втором этапе выполнения комбинированного алгоритма. Проводится практическое сравнение комбинированных алгоритмов между собой, а также с известными алгоритмами. Как показало тестирование, комбинированный алгоритм, основанный на гибридном алгоритме и zlib, позволяет значительно увеличить степень сжатия дискретно-тоновых изображений при приемлемых временных затратах.

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

В соответствии с классификацией, приведённой в [1], выделяют, в частности, следующие классы изображений:

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

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

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

Последняя версия гибридного алгоритма, о которой в этой работе идёт речь, подробно описана в [2]. Гибридный алгоритм является соединением двух алгоритмов: КЬЕ и сдвигового.

НЬБ. В качестве составной части гибридного алгоритма используется специально разработанная реализация КЬЕ, способная выявлять области пикселей одного цвета трёх типов: вертикальные, горизонтальные линии и прямоугольники. На каждом шаге происходит подсчёт количества подряд идущих одинаковых пикселей в трёх направлениях: вправо от текущего пикселя, вниз от текущего пикселя, а также в прямоугольнике, левым верхним углом которого является текущий пиксель. Затем для кодирования выбирается то направление, в котором было найдено максимальное количество одинаковых пикселей.

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

При этом возможна следующая ситуация: пиксель р[г\ уже был закодирован ранее, попав в вертикальную или прямоугольную группу пикселей одинакового цвета. Пусть текущий пиксель — это р[г — 1\. Допустим также, что пиксель р[г + 1\ имеет такой же цвет, как р[г — 1\. В этом случае р[г — 1\ и р[г + 1\ могут быть закодированы как горизонтальная группа пикселей.

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

Гибридный алгоритм. На каждом шаге алгоритма кодирование выполняется в две стадии:

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

2. Выполняется часть алгоритма, основанная на КЬЕ. На этой стадии определяется, можно ли выявить группу пикселей одного цвета.

На выходе гибридного алгоритма получается 3 массива:

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

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

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

3. Массив пикселей. Будем называть этот массив остаточным изображением. Это те пиксели исходного изображения, которые не были заменены в ходе кодирования гибридным алгоритмом некоторыми служебными данными. Как правило, статистическая избыточность в этом массиве невысока. Зато в этих данных присутствует некоторая пространственная избыточность. Часто в остаточном изображении можно увидеть группы подряд идущих пикселей по вертикали или горизонтали близких цветов. Такой тип пространственной избыточности характерен для остаточного изображения, так как гибридный алгоритм не может его устранить.

Каждый из результирующих наборов данных гибридного алгоритма обладает специфическим типом избыточности и поэтому сжимается по отдельности на втором этапе выполнения комбинированного алгоритма. Создано два комбинированных алгоритма, использующих гибридный алгоритм на первом этапе сжатия. При тестировании комбинированный алгоритм, использущий на втором этапе библиотеку zlib [3], продемонстрировал более высокую степень сжатия. В тестировании принимали участие реализации 14 алгоритмов, некоторые из них с различными настройками. Тестирование проводилось на двух наборах данных: изображениях с преобладанием текста и с преобладанием деловой графики. Комбинированный алгоритм, основанный на гибридном алгоритме и zlib, обеспечил наивысшую степень сжатия на обоих тестовых наборах данных, превзойдя по этому показателю следующий за ним zlib с уровнем сжатия 9 на 9,5 % при сжатии изображений с преобладанием деловой графики и на 4 % — изображений с преобладанием текста. При этом комбинированный алгоритм, использующий на втором этапе zlib, производит сжатие быстрее, чем zlib уровня 9, в обоих случаях.

ЛИТЕРАТУРА

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

2. Дружинин Д. В. Комбинированный алгоритм сжатия ключевых кадров экранного видео // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2011. №3(16). С. 67-77.

3. гИЬ [Электронный ресурс]. http://zlib.net

УДК 519.212.2

ВЕРОЯТНОСТНЫЕ ХАРАКТЕРИСТИКИ ВЕСОВЫХ СПЕКТРОВ СЛУЧАЙНЫХ ЛИНЕЙНЫХ ПОДКОДОВ НАД 0¥(р)

А. М. Зубков, В. И. Круглов

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

Ключевые слова: линейные коды, случайные подкоды, весовой спектр, слово минимального веса.

i Надоели баннеры? Вы всегда можете отключить рекламу.