УДК 681.3
И. В. Огнев, А. И. Огнев, А. Г. Горьков
МЕТОД ФРАГМЕНТАРНОГО СЖАТИЯ БИТОВЫХ ПЛОСКОСТЕЙ, ПРЕОБРАЗОВАННЫХ В КОДЫ ГРЕЯ
Аннотация. Актуальность и цели. Задача сжатия информации является одной из центральных задач современных информационных технологий. С ростом качества изображений и видеоданных все острее встает вопрос о их сжатии без потерь. Необходимо разработать эффективный алгоритм сжатия видеоданных без потерь, так как большинство существующих на данный момент алгоритмов недостаточно эффективны. Предложен перспективный подход к сжатию видео без потерь - фрагментарный метод сжатия видеопотока, основанный на представлении видеопотока в виде последовательности закодированных элементов из заранее сформированной базы элементарных изображений. Результаты. Предложенный в работе метод фрагментарного сжатия позволяет добиться высоких уровней сжатия видеоданных без потерь. Разбиение исходного видеопотока на битовые плоскости позволяет исследовать ранее недоступные конфигурации окон сканирования, а предварительное преобразование изображения в коды Грея приводит к существенному уменьшению как размера базы элементов, так и ее энтропии. Вывод. Результаты исследования подтверждают высокую эффективность предложенного метода фрагментарного сжатия.
Ключевые слова: фрагментарное сжатие видеопотока, база элементов видеопотока, битовые плоскости, сжатие без потерь.
I. V. Ognev, A. I. Ognev, A. G. Gor'kov
METHOD OF FRAGMENTARY COMPRESSION OF BIT PLANES, TRNASFORMED INTO GRAY CODES
Abstract. Background. The task of data compression is one of the central problems of modern information technologies. With the increase in image and video quality the problem of its lossless compression has become a topical one. It is necessary to develop an efficient algorithm of lossless video data compression. Most of the existing algorithms are not effective enough. The author suggest a promising approach to lossless video compression - fragmentary video compression method based on the concept of the video stream encoded as a sequence of elements of the pre-formed base of elementary images. Results. Suggested in this work fragmentary compression method allows to achieve high levels of lossless video data compression . Partition of the source video stream into bit planes allows investigating previously inaccessible window configuration scanning, and prior image transformation to Gray codes leads to a significant decrease either in the size of the database elements, or in its entropy. Conclusion. The results confirm high efficiency of the suggested fragmentary compression method.
Key words: fragmentary video compression, base elements of video stream, bit plane, lossless compression.
Введение
Разработка методов, алгоритмов и аппаратных сред сжатия видеоизображений является одним из важнейших направлений развития современных
информационных технологий. Сжатие видео позволяет уменьшить объем данных, необходимый для передачи видео или его хранения.
На сегодня разработаны довольно эффективные методики сжатия видео с потерями. Для многих приложений возникающие потери и артефакты (блочность, замыливание и т.д.) незначительны, но существует широкий круг задач, в которых потери недопустимы. К задачам, где потери недопустимы, можно отнести системы видеонаблюдения, научные видеоданные, архивные записи (например, записи выборов).
На текущий момент существуют способы сжатия видео без потерь (кодеки CorePNG, FFV1, Huffyuv, MSU Lossless Video Codec и другие), но обеспечиваемая ими степень сжатия и время их работы пока недостаточны для их широкого внедрения.
В данной статье рассматривается перспективный подход к сжатию видео без потерь - фрагментарный метод сжатия видеопотока, основанный на представлении видеопотока в виде последовательности закодированных элементов из заранее сформированной базы. Помимо непосредственного описания метода рассмотрены две оптимизации, повышающие его эффективность: представление исходного видеопотока в виде набора битовых видеопотоков, и предварительное кодирование информации о яркости в кодах Грея.
Работа делится на три смысловых блока:
- описание метода фрагментарного сжатия видеопотока;
- применение метода фрагментарного сжатия к видеопотоку, разделенному на битовые плоскости;
- оценка эффективности предварительного преобразования информации в коды Грея.
1. Описание метода фрагментарного сжатия
1.1. Основные определения
При описании самого метода и оценки его эффективности будут использоваться следующие термины.
Пиксель - минимальная единица изображения. Значение пиксела соответствует яркости изображения в одной точке экрана. Количество бит, отводимое для кодирования яркости, называется глубиной цвета (яркости) и обозначается в дальнейшем bpp . В случае работы с цветными видеопотоками
для кодирования одного пиксела изображения используется несколько числовых значений, каждое из которых соответствует определенному цветовому каналу.
Кадр - набор всех видимых пикселей в конкретный момент времени. Количество строк пикселей в кадре называется высотой кадра и обозначается в дальнейшем Ni. Аналогично, количество столбцов пикселей в кадре называется шириной кадра и обозначается N . Таким образом, кадр может быть представлен в виде матрицы чисел [NixN2].
Видеопоток (фильм) - последовательность кадров, упорядоченная по времени. Длиной видеопотока будем называть количество кадров в нем и обозначать M - общее число кадров в фильме.
Окно сканирования - прямоугольная область кадра высотой « и шириной «2 пикселей.
Фрагмент - цифровое представление окна сканирования. Для хранения фрагмента проще всего использовать битовую строку длиной к = «1 ■ «2 ■ Ьрр бит.
Логическая разность фрагментов - результат побитового применения операции исключающего ИЛИ к двум фрагментам, полученным в соответствующих окнах соседних кадров. Логическая разность фрагментов, как и сам фрагмент, представляется в виде двоичной строки длиной к = « ■ «2 ■ Ьрр бит.
Арифметическая разность фрагментов - результат попиксельного вычитания яркостей в соответствующих окнах соседних кадров, представленный в виде битовой строки. Арифметическая разность фрагментов, в отличие от фрагментов и их логических разностей, представляется в виде двоичной строки длиной к = «1 ■ «2 ■ Ьрр + « ■ «2 бит.
Элемент - элементарная часть изображения, представленная в виде битовой строки. В зависимости от используемого варианта алгоритма элементом может быть как сам фрагмент, так и вычисленная на его основе разность (арифметическая или логическая).
Объем фильма - общее количество элементов в кодируемом фильме. Объем фильма обозначается Ыф и вычисляется по следующей формуле:
■ м
Ыф =—------ ----•
«1 ■ «2
Частота элемента - отношение количества появлений конкретного элемента в кодируемом фильме к объему всего кодируемого фильма.
База элементов - набор всех присутствующих в видеопотоке элементов и их частот. Мощность базы элементов обозначается N .
Код элемента - специальным образом построенный двоичный код. Каждому элементу базы элементов ставится в соответствие уникальный код.
1.2. Основная идея метода фрагментарного сжатия
Основная идея метода фрагментарного сжатия заключается в представлении кодируемого видеопотока в виде базы реально встречавшихся элементов и последовательности кодов элементов длины Ыф .
Так как реальные видеопотоки по сути представляют собой набор осмысленных изображений, медленно меняющихся во времени, следует ожидать существенной корреляции как между соседними окнами одного кадра, так и между соответствующими окнами на соседних кадрах. В случае истинности исходных предположений можно ожидать следующих эффектов:
1) небольшой мощности базы (N) относительно мощности множества
всех возможных значений фрагментов (2к) даже при достаточно большом объеме фильма;
2) значительной неравномерности частот появлений различных элементов.
Проведенные эксперименты показывают, что для большинства окон
Ыб —3 Нб
—б ^ 10 и —^ < 0,3 . Таким образом, основную идею метода фрагментар-
2к к
ного сжатия можно переформулировать следующим образом: видеопоток представляется в виде хорошо сжимаемой последовательности элементов из некоторого словаря - базы элементов.
Особенностью метода является тот факт, что метод позволяет осуществлять сжатие видеопотока как без потерь, так и с потерями. Причем в случае сжатия с потерями возможна как предварительная обработка сжимаемого видеопотока, так и постобработка, заключающаяся в анализе сформированной базы элементов [1, 2].
Метод фрагментарного сжатия можно представить в виде последовательности трех крупных шагов:
1) формирование базы элементов;
2) построение коротких кодов для элементов базы;
3) формирование сжатого видеопотока.
1.3. Формирование базы элементов
Формирование базы элементов - наиболее сложный в плане реализации этап метода фрагментарного сжатия. Для формирования базы элементов необходимо каждый кадр просканировать окном и для каждого полученного элемента необходимо или добавить его в базу (если он встретился впервые), или пересчитать частоту элемента (в случае, если он встречался ранее).
Основные проблемы при формировании базы элементов заключаются в существенном расходе вычислительных ресурсов ЭВМ (в первую очередь памяти). Поэтому крайне важно использовать эффективные алгоритмы формирования базы [3].
1.4. Построение коротких кодов для элементов базы
Сформированная на предыдущем этапе база элементов представляет собой массив из Ыб битовых строк длиной к бит (элементы). Для каждой строки также хранится частота ее появления в исходном видеопотоке.
Эта информация - исходные данные для всех энтропийных алгоритмов сжатия (дерево Хаффмана, арифметическое кодирование и т.д.). Метод фрагментарного сжатия подразумевает использование префиксных кодов для формирования сжатого видеопотока. Для построения коротких кодов элементов авторы используют предложенный ими ранее метод построения префиксных кодов с помощью дерева секущих функций. В этом методе короткие коды элементов строятся по содержанию самих элементов.
В готовящейся к печати работе Огнева А. И. доказано, что средняя длина таких кодов не превышает величины Нб ■ 1,049 . В серии проведенных экспериментов энтропия базы никогда не превышала 20, т.е. средняя длина кодов секущих для реальных фильмов укладывается в те же априорные оценки избыточности (Нб +1), что и коды Хаффмана. При этом кодирование с помощью секущих функций вычислительно существенно проще, чем кодирование с помощью алгоритма Хаффмана. Учитывая размеры кодируемых баз эле-7 9
ментов (Ыб ~ 10 —10 ), это преимущество является весьма существенным.
1.5. Формирование сжатого видеопотока и оценка степени сжатия
В сжатом видеопотоке элементы заменяются полученными на предыдущем шаге кодами. Эксперименты показывают, что длина полученных кодов меньше длины (к) битовой строки, кодирующей элемент. Процесс воспроизведения сжатого видеопотока сводится к прямому декодированию кодов (это возможно, потому что полученные коды обладают свойством пре-фиксности), для которого необходимо иметь информацию о соответствии кодов и элементов базы.
В работе [2] было предложено для передачи базы передавать сам элемент и его частоту. В процессе декодирования необходимо заново построить кодовое дерево по фиксированому алгоритму. Такая концепция подразумевает, помимо передачи непосредственно элементов, дополнительную передачу 64 бит на каждый элемент базы (для кодирования частоты).
Горьков А. Г. предложил способ записи дерева, в листьях которого записана база элементов. При этом, помимо передачи самой базы, достаточно передать два дополнительных бита на каждый элемент базы, т.е. общий объем передаваемой базы составит (к + 2) • Nд .
Договоримся о порядке обхода дерева, например, будем использовать обход в ширину. Если встречается узел дерева, то передается бит 0, если в процессе обхода был обнаружен лист, то передается бит 1 и соответствующий элемент базы. В итоге на каждый элемент базы передается всего 2 лишних бита. Указанное представление обратимо: т.е. для каждой строки, построенной описанным способом, можно построить исходное кодовое дерево. Помимо очевидной экономии памяти, описанный способ передачи избавляет от необходимости строить кодовое дерево при декодировании, тем самым значительно повышая его скорость. На рис. 1 показано представление двоичного дерева в виде двоичной строки с помощью описанного метода.
Рис. 1. Эффективное кодирование двоичного дерева
Таким образом, предлагаемая в работе схема передачи видеопотока состоит из двух частей: кодовое дерево, соответствующее сформированной базе, и цепочка кодов элементов.
Для того чтобы оценить степень сжатия, обозначим среднюю длину кодов как /ср, тогда объем сжатой передачи равен
Усж — Nб (к + 2) + /СрNф
Объем несжатого фильма при этом равен
Уф — Nф к .
Степенью сжатия назовем величину
СЯ — Усж — • к + 2 +1ср
Уф Nф к к '
Обратную величину будем называть коэффициентом сжатия:
СС — — —--------1--------— .
СЯ Ng к + 2 + 1ср
Nф к к
Очевидно, что степень сжатия зависит только от следующих параметров: N1, N2, М, Ьрр, «1, «2. Все рассматриваемые параметры можно разделить на две группы: параметры видеопотока и параметры метода. К первой группе относятся размер и конфигурация кадра (N1, N2, N1 • N2), глубина яркости (Ьрр) и продолжительность фильма (М). Ко второй группе относятся конфигурация и размер окна сканирования («1, «2, «1 • «2 ). Изменение любого из этих параметров неизбежно приводит к изменению состава, объема (N6) и частотных характеристик базы элементов.
В серии экспериментов было показано, что при увеличении площади
окна и фиксированной глубине цвета —— растет так сильно, что доля кодового дерева в передаче становится доминирующей и неизбежно ведет к уменьшению коэффициента сжатия. Обойти эту проблему можно двумя способами:
1. Эксперименты показали, что при фиксированном размере окна увеличение продолжительности сжимаемого фильма приводит к уменьшению
величины ----- (^ растет значительно медленнее Nф). Отсюда следует, что
гораздо выгоднее собирать базу элементов и кодировать ее для максимально длинных видеопотоков (например, сразу для всего сезона сериала).
2. Второй способ заключается в разделении исходного видеопотока на Ьрр двоичных видеопотоков. Метод разложения на битовые плоскости [4]
заключается в разделении одного изображения с 2Ьрр уровнями яркости на Ьрр бинарных изображений. При этом /-е изображение получается путем выделения / -х битов из каждого пикселя исходного изображения. Если применить такое разложение ко всем кадрам видеопотока, то получится Ьрр двоичных видеопотоков, каждый пиксель которых имеет всего два значения яркости. Это приводит к тому, что вместо одной базы с максимальным разме-
ром 2к для передачи видеопотока используется Ьрр баз с максимальным
к
размером 2Ьрр.
2. Алгоритм фрагментарного сжатия битовых плоскостей
Для того чтобы сократить долю базы в передаче, каждый из Ьрр двоичных видеопотоков кодируется методом фрагментарного сжатия независимо. При этом для каждого бинарного видеопотока могут быть выбраны свои оптимальные параметры: размеры и конфигурации окна. Степень сжатия, получаемую при кодировании битовых плоскостей, можно легко оценить как среднее арифметическое степеней сжатия двоичных видеопотоков (это становится очевидным, если заметить, что размеры всех бинарных видеопотоков одинаковы).
На рис. 2 показано разложение исходного кадра на битовые плоскости.
БП i БП 2 БП 3 БП 4
Рис. 2. Разложение кадра на битовые плоскости
Эксперименты показывают, что размеры и частотные характеристики баз бинарных видеопотоков для различных битовых плоскостей существенно отличаются. Была проведена серия экспериментов, в которых видеопотоки, полученные путем выделения битовых плоскостей, кодировались алгоритмом фрагментарного сжатия. Ниже приведена табл. 1, показывающая степень сжатия без потерь для каждой из восьми битовых плоскостей для окон 3^2, 4x2, 2^5, 4x3; 3x5; 4x5; 4x6; 6x5 (элементом выступает логическая разность). Для каждого окна также подсчитана средняя степень сжатия (АУО), т.е. степень сжатия исходного видеопотока. Видно, что старшие битовые плоскости сжимаются существенно лучше младших. Это объясняется тем, что старшие битовые плоскости практически полностью состоят из нулевых бит, а младшие сильно зашумлены (см. рис. 2).
Таблица 1
Зависимость степени сжатия от конфигурации окна и битовой плоскости
Плоскость 1 2 3 4 5 6 7 8 AVG
Окна
3x2 G,84 G,79 G,67 G,52 G,4G G,3G G,24 G,19 G,49
4x2 G,81 G,76 G,64 G,5G G,37 G,27 G,2G G,14 G,46
2x5 G,8G G,75 G,64 G,49 G,36 G,25 G,18 G,12 G,45
4x3 G,78 G,74 G,62 G,48 G,34 G,24 G,16 G,1G G,43
3x5 G,78 G,74 G,62 G,47 G,34 G,23 G,15 G,G9 G,43
4x5 G,76 G,72 G,6G G,46 G,32 G,21 G, 13 G,G7 G,41
4x6 G,78 G,74 G,62 G,48 G,34 G,22 G, 13 G,G7 G,42
6x5 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG G, 13 G,G6 G,77
Оптим. G,76 G,72 G,6G G,46 G,32 G,21 6,13 G,G6 G,41
Отсюда можно сделать вывод, что различные битовые плоскости должны сжиматься с различными параметрами окна, это позволит резко улучшить степень сжатия по сравнению с общими базами. Например, для каждой из битовых плоскостей можно выбирать свою оптимальную конфигурацию окна сканирования. Из табл. 1 получаем табл. 2 оптимальных конфигураций окна для различных битовых плоскостей.
Таблица 2
Зависимость оптимальной конфигурации окна от номера битовой плоскости
Битовая плоскость Оптимальная конфигурация окна
1, 2, 3, 4, 5, 6 4x5
7 4x6
8 6x5
Показанные в работе степени сжатия для битовых плоскостей вовсе не являются предельными. Они могут быть значительно улучшены применением к однобитовым видеопотокам индивидуальных дополнительных методов сжатия. Один из способов повышения степени сжатия при кодировании битовых плоскостей рассмотрен далее.
3. Использование кодов Грея для повышения степени сжатия
Ранее уже было показано, что младшие битовые плоскости сильно зашумлены. Шум является случайным плохо сжимаемым сигналом. Это приводит к плохой сжимаемости всего видеопотока в младших плоскостях. Бороться с этим можно, пытаясь выделить из видеопотоков осмысленный сигнал. Одним из способов добиться этого является преобразование яркости пикселов в коды Грея.
Довольно очевидным недостатком алгоритма кодирования битовых плоскостей является эффект многократного переноса разрядов при незначительном изменении яркости. Например, при изменении яркости со 127 на 128 произойдет изменение значений всех двоичных разрядов (0111111 ^ 10000000), что вызовет изменение всех битовых плоскостей.
Чтобы снизить негативные последствия от многократных переносов, на практике часто используются специальные коды, например коды Грея, в которых два соседних элемента различаются только в одном разряде. Для перевода числа в код Грея необходимо выполнить операцию побитового исключающего ИЛИ с этим же числом, сдвинутым на один бит вправо. Обратное преобразование из кода Грея можно осуществить, выполняя побитовую операцию исключающего ИЛИ для всех сдвигов исходного числа, не равных нулю.
Легко убедиться, что после преобразования в код Грея при смене яркости со 127 на 128 меняется только один двоичный разряд (табл. 3).
Таблица 3
Пример кодирования кодами Грея
Уровень яркости Двоичный код Код Грея
127 01111111 01000000
128 10000000 11000000
Битовые плоскости, полученные с помощью кода Грея, более монотонны и в общем случае лучше поддаются сжатию. В табл. 4 показаны некоторые битовые плоскости, полученные из исходного изображения и изображения, преобразованного в коды Грея. Преобразование яркости в коды Грея позволяет существенно улучшить степень сжатия метода фрагментарного кодирования видеопотока.
Таблица 4
Сравнение битовых плоскостей исходного изображения и изображения в кодах Грея
Битовая плоскость Исходное изображение Изображение в кодах Грея
1 2 3
1 2 -1
Окончание табл. 4
I
З
4
На рис. 3 показан прирост коэффициента сжатия для логических разностей, а на рис. 4 показан прирост коэффициента сжатия для фрагментов. Из приведенных графиков очевидно, что использование предварительного кодирования с помощью кодов Грея позволяет добиться существенного улучшения сжатия во всех битовых плоскостях, а значит, и общей степени сжатия.
Логические разности
30.0000
25.0000 § 20,0000 $ 15,0000 ° 10,0000
5,0000 И
о,™™ ■■ ■■ ■ ■! I II II
12345678 А\/6
Битовая плоскость
■ Натуральные коды ■ Коды Грея
Рис. 3. Прирост коэффициента сжатия для логических разностей
Заключение
В работе представлен предложенный авторами метод фрагментарного сжатия видеопотока.
Фрагменты
14.0000
12.0000 10,0000
б 8,0000 6,0000
-е-
4.0000
2.0000 0,0000
■ Натуральные коды ■ Коды Грея
Рис. 4. Прирост коэффициента сжатия для фрагментов
Предложен способ совместного использования метода фрагментарного сжатия видеопотока и метода кодирования битовых плоскостей. Для каждой битовой плоскости сделан и обоснован выбор оптимальной конфигурации окна сканирования.
Исследована и показана эффективность предварительного преобразования яркостей пиксела в коды Грея и последующее применение метода фрагментарного сжатия битовых плоскостей видеопотока.
Показана высокая эффективность данного метода для повышения эффективности сжатия.
Список литературы
1. Огнев, И. В. Предварительная обработка кадров видеопотока для алгоритма фрагментарного сжатия видеопотока / И. В. Огнев, А. И. Огнев, А. Г. Горьков // Информационные средства и технологии : материалы междунар. науч.-техн. конф. (Москва, 19-21 ноября 2013 г.). - М., 2013. - С. 47-52.
2. Огнев, И. В. Оптимизация конфигурации окна сканирования в фрагментарном методе сжатия видеопотока без потерь / И. В. Огнев, А. И. Огнев, А. Г. Горьков // Информационные средства и технологии : материалы междунар. науч.-техн. конф. (Москва, 20-22 ноября 2012). - М., 2012. - С. 78-85.
3. Огнев, И. В. Алгоритм формирования базы данных для фрагментарного метода сжатия видеопотока без потерь / И. В. Огнев, А. И. Огнев, А. Г. Горьков // Информационные средства и технологии : материалы междунар. науч.-техн. конф. (Москва, 20-22 ноября 2012). - М., 2012. - С. 67-77.
4. Гонсалес, Р. Цифровая обработка изображений / Р. Гонсалес, Р. Вудс. - М. : Техносфера, 2005.
References
1. Ognev I. V., Ognev A. I., Gorkov A. G. Informatsionnye sredstva i tekhnologii: mate-rialy mezhdunar. nauch.-tekhn. konf. (Moskva, 19-21 noyabrya 2013 g.) [Information means and technologies: proceedings of the International scientific and technical conference (Moscow, 19-21 November 2013)]. Moscow, 2013, pp. 47-52.
2. Ognev I. V., Ognev A. I., Gor'kov A. G. Informatsionnye sredstva i tekhnologii: mate-rialy mezhdunar. nauch.-tekhn. konf. (Moskva, 20-22 noyabrya 2012) [Information means and technologies: proceedings of the International scientific and technical conference (Moscow, 20-22 November 2012)]. Moscow, 2012, pp. 78-85.
3. Ognev I. V., Ognev A. I., Gor'kov A. G. Informatsionnye sredstva i tekhnologii: mate-rialy mezhdunar. nauch.-tekhn. konf. (Moskva, 20-22 noyabrya 2012) [Information means and technologies: proceedings of the International scientific and technical conference (Moscow, 20-22 November 2012)]. Moscow, 2012, pp. 67-77.
4. Gonsales R., Vuds R. Tsifrovaya obrabotka izobrazheniy [Digital image processing]. Moscow: Tekhnosfera, 2005.
Огнев Иван Васильевич
доктор технических наук, профессор, кафедра вычислительной техники, Национальный исследовательский университет «Московский энергетический институт» (Россия, г. Москва, ул. Красноказарменная, 14)
E-mail: OgnevIV@mpei.ru
Огнев Артем Иванович генеральный директор научнопроизводственного общества «МедИнформ» (Россия, Московская область, Раменский р-н, 57/3)
E-mail: OgnevIV@mpei.ru
Горьков Алексей Геннадьевич аспирант, Национальный исследовательский университет «Московский энергетический институт» (Россия, г. Москва, ул. Красноказарменная, 14)
E-mail: gorkoff@gmail.com
Ognev Ivan Vasil'evich Doctor of engineering sciences, professor, sub-department of computing technology, National Research University "Moscow Power Engineering University"
(14 Krasnokazarmennaya street, Moscow, Russia)
Ognev Artem Ivanovich General Director of SPA "Medinform" (57/3, Ramenskoe district, Moscow region, Russia)
Gor'kov Aleksey Gennad'evich Postgraduate student, National Research University "Moscow Power Engineering Institute" (14 Krasnokazarmennaya street, Moscow, Russia)
УДК 681.3 Огнев, И. В.
Метод фрагментарного сжатия битовых плоскостей, преобразованных в коды Грея / И. В. Огнев, А. И. Огнев, А. Г. Горьков // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2013. -№ 4 (28). - С. 74-85.