Научная статья на тему 'Модифицированный кодер стандарта JPEG с контролем битрейта'

Модифицированный кодер стандарта JPEG с контролем битрейта Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
234
76
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СТАНДАРТ JPEG / АЛГОРИТМЫ КОНТРОЛЯ БИТРЕЙТА / ARM СИСТЕМА НА КРИСТАЛЛЕ I.MX233 / ARM SOC I.MX233 / JPEG CODER / BITRATE CONTROL ALGORITHMS

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

Предложена и реализована модификация кодера стандарта JPEG для полутоновых изображений с возможностью контроля размера сжатого изображения, которая отличается простотой программной реализации, невысокой вычислительной сложностью и, как следствие, малым временем сжатия. Проведены исследования кодера: а) на способность соблюдать заданный коэффициент сжатия (битрейт) на эталонном наборе полутоновых изображений; б) на время сжатия произвольных полутоновых изображений, полученных с Web-камеры, при реализации на SoC i.MX233. Результаты исследований показали, что кодер соблюдает заданный битрейт с приемлемой точностью (отклонение не более 10%) и обладает малым временем сжатия.

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

Modified JPEG encoder with bit-rate control

Proposed a modification of the standard JPEG encoder for compressing gray-scale images with bit rate control. Encoder has a simple program implementation, low computational complexity and, as a consequence, low compression time. Several studies were conducted on the encoder: a) the ability to comply with a given compression ratio (bit rate) on the reference set of images; b) the compression time of arbitrary gray-scale images from Web-camera on the SoC i.MX233. The results of the studies showed that the encoder keeps a specified bit rate with acceptable accuracy (error less than 10%) and has a low compression time.

Текст научной работы на тему «Модифицированный кодер стандарта JPEG с контролем битрейта»

Осокин Александр Николаевич

Кафедра вычислительной техники Национального исследовательского Томского политехнического университета

Доцент

Кандидат технических наук, доцент Osokin Alexandr Nikolaevich

Department of Computer Engineering at National Research Tomsk Polytechnic University

Associate Professors E-Mail: [email protected]

Сидоров Дмитрий Владимирович

ОАО «Томское пиво» Кандидат технических наук, инженер-электроник Sidorov Dmitriy Vladimirovich OAO «Tomskoe pivo» Engineer E-Mail: [email protected]

05.13.05 Элементы и устройства вычислительной техники и систем управления

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

Modified JPEG encoder with bit-rate control

Аннотация: Предложена и реализована модификация кодера стандарта JPEG для полутоновых изображений с возможностью контроля размера сжатого изображения, которая отличается простотой программной реализации, невысокой вычислительной сложностью и, как следствие, малым временем сжатия. Проведены исследования кодера: а) на способность соблюдать заданный коэффициент сжатия (битрейт) на эталонном наборе полутоновых изображений; б) на время сжатия произвольных полутоновых изображений, полученных с Web-камеры, при реализации на SoC i.MX233. Результаты исследований показали, что кодер соблюдает заданный битрейт с приемлемой точностью (отклонение не более 10%) и обладает малым временем сжатия.

Abstract: Proposed a modification of the standard JPEG encoder for compressing gray-scale images with bit rate control. Encoder has a simple program implementation, low computational complexity and, as a consequence, low compression time. Several studies were conducted on the encoder: a) the ability to comply with a given compression ratio (bit rate) on the reference set of images; b) the compression time of arbitrary gray-scale images from Web-camera on the SoC

i.MX233. The results of the studies showed that the encoder keeps a specified bit rate with acceptable accuracy (error less than 10%) and has a low compression time.

Ключевые слова: Стандарт JPEG; алгоритмы контроля битрейта; ARM система на кристалле i.MX233.

Keywords: JPEG coder; bitrate control algorithms; ARM SoC i.MX233.

Введение

В связи с появлением и продвижением стандарта JPEG2000, который предусматривает возможность контроля битрейта сжатых изображений, а также с развитием и внедрением новых стандартов связи, обеспечивающих большую пропускную способность, тема разработки алгоритмов контроля битрейта для кодера стандарта JPEG практически перестала освещаться как в зарубежной, так и в отечественной литературе [1,2,4,8,20]. Однако существует ряд прикладных задач, при решении которых использование современных алгоритмов/стандартов сжатия изображений (например, JPEG2000 вместо широко распространенного JPEG) либо невозможно, либо сопряжено с рядом трудностей: патентные ограничения, недостаточная вычислительная мощность аппаратуры, совместимость с ПО существующих систем управления/контроля, отсутствие квалифицированных кадров в области цифровой обработки сигналов, недостаточная ширина каналов передачи данных и т. д. Решением такой задачи может служить модифицированный и реализованный авторами нересурсоемкий кодер JPEG с функцией контроля битрейта, для которого декодером может быть любая реализация JPEG в пределах стандарта.

Алгоритмы контроля битрейта для кодера 1РЕО

Теоретическая база для разработки алгоритмов контроля битрейта при сжатии с потерями изображений и видео была заложена достаточно давно и основана на формуле отношения битовых затрат на передачу или хранение сигнала к величине вносимых в него искажений или ошибок [3]. На практике, в отношении кодера стандарта JPEG, данная модель часто сводилась к простой аппроксимации кривой отношения затрат к ошибке по нескольким точкам [10]. На основании полученной кривой выбирался тот вариант сжатия изображения, который при требуемом коэффициенте сжатия или битрейте давал наилучшее качество распакованного изображения. Очевидно, что данный алгоритм обеспечивает хорошие результаты, но обладает высокой вычислительной сложностью и, как следствие, малопригоден.

Более современные алгоритмы, основанные на минимизации функции Лагранжа [1,2] (функция представляет собой взвешенную сумму ошибки и затрат), обычно позволяют сократить количество сжатий одного и того же изображения до 2...5 раз, но они все еще обладают достаточной вычислительной сложностью. Последний предложенный в работах [4,5,8,20] алгоритм, решающий данную проблему и признанный исследователями одним из лучших [8], основан на предположении о том, что существует линейная зависимость между количеством нулей, образовавшихся в ходе квантования коэффициентов после дискретного косинусного преобразования (ДКП), и размером сжатого изображения. Алгоритм позволяет, по сравнению со всеми раннее упомянутыми алгоритмами, значительно упростить процедуру поиска необходимых параметров сжатия (коэффициента квантования): исключить

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

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

Исходя из сказанного, была сформулирована следующая цель работы - разработать модификацию кодера JPEG c возможностью контроля битрейта, которая бы основывалась на аналогичных принципах, изложенных в работе [10], но отличалась простотой программной

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

Описание предложенной модификации кодера 1РЕО

Основываясь на работах [10,8,20,10] и с учётом предъявленных ранее требований к алгоритму (простота программной реализации, малая ресурсоёмкость, менее двух полных сжатий изображения, простота интеграции в стандартную схему кодера JPEG) было сформулировано предположение о существовании близкой к линейной зависимости между количеством бит, необходимых для представления всего сжатого изображения и количеством бит, необходимых для представления заданного количества сжатых ДКП-блоков изображения. Другими словами, во время поиска необходимого коэффициента квантования (качества) Q при JPEG-сжатии, например методом дихотомии на отрезке ^ е [5,100), можно ограничиться перекодированием (сжатием) небольшого предварительно заданного количества ДКП-блоков, тем самым значимо снизив время поиска и вычислительную сложность.

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

сжата только часть ДКП-блоков; 8 - это максимально возможное количество шагов в методе дихотомии во время поиска нужного коэффициента квантования на интервале Qn е[5,95]),

отсюда процент перекодируемых ДКП-блоков должен быть в интервале п е (0, 12,5) и, в-

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

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

Начало.

Шаг 1. Задать битрейт (коэффициент сжатия) K.

Шаг 2. Согласно стандарту JPEG произвести ДКП, например, при помощи ЫпБСТ (быстрая реализация ДКП) [7].

Шаг 3. Из общего числа ДКП-блоков равномерно выбрать п% блоков, которые затем проквантовать с высоким качеством Q1 е[90,95] (используется стандартная рекомендованная

таблица квантования) и сжать с помощью статических таблиц Хаффмана (используются рекомендованные в стандарте таблицы) [14].

Шаг 4. Используя подсчитанное в ходе выполнения Шага 3 количество бит, которое необходимо для представления п% сжатых блоков, линейно вычислить предполагаемый конечный размер сжатого изображения; если полученный размер меньше необходимого при заданном битрейте K, то осуществляется переход на Шаг 7, иначе Шаг 5.

Шаг 5. Используя заданный битрейт K линейно вычислить необходимое количество бит для представления п% сжатых ДКП-блоков (далее обозначено как S).

Шаг 6. Методом дихотомии произвести поиск необходимого коэффициента

удовлетворяться неравенство

(дробная часть показывает, что была

квантования (качества) из интервала Qn е [5, Q), обеспечивающего при сжатии заданных n% ДКП-блоков размер, близкий к вычисленному на Шаге 5 размеру S, поиск производить до тех пор, пока \Qn - Qn4| > 2, а при сжатии ДКП-блоков использовать стандартные таблицу квантования и статические таблицы Хаффмана [19].

Шаг 7. На основании найденного коэффициента квантования Qn (коэффициент всегда берется с левого конца отрезка) происходит квантование и сжатие всего изображения с применением динамических таблиц Хаффмана.

Конец.

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

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

Предложенный кодер был реализован для системы на кристалле (SoC) ARM i.MX233

[18] на базе платы-прототипа Prospero C100 от фирмы Siqube [14]. Подобные SoC широко и успешно используются в промышленной автоматике, системах с программируемыми логическими контроллерами и человеко-машинных интерфейсах, т. к. обеспечивают одно из лучших соотношений производительность/энергопотребление [17,21].

В промышленных системах автоматизации и управления с развитым человекомашинным интерфейсом наиболее распространены SoC с частотами ядра от 200 до 800 МГц. Связано это в первую очередь с возможностью этих SoC поддерживать ОС высокого уровня, таких как Windows CE/RT, Linux и обеспечивать полноценный графический интерфейс взаимодействия с пользователем, что позволяет значительно упростить и сократить цикл разработки программного обеспечения.

Одной из таких систем на кристалле является выбранный авторами i.MX233 от Freescale. Среди аналогичных решений от других производителей, например, семейство ARM9 Sitara от Texas Instruments [13], SPEAr3xx от STMicroelectronics [20], LPC31xx и LPC32xx от NXP [15], SAM9X и SAM9M от Atmel [16], i.MX233 обладает богатым набором периферийных устройств и внешних портов, одним из лучших соотношений цена/производительность, достаточной производительностью для решения широкого круга задач (частота ядра до 454 МГ ц), высокой энергоэффективностью (потребляемая мощность до

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

Модифицированный кодер реализован на языке C++ в виде клиент-серверного приложения (фоновой службы) для ОС Linux, которое считывает изображения с Web-камеры, сжимает их и передает клиенту через последовательный интерфейс RS-232 согласно следующему алгоритму:

Начало.

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

2. Сервер (фоновая служба) считывает исходное изображения с Web-камеры и сжимает его с заданным клиентом коэффициентом сжатия.

3. По окончании сжатия сервер помещает изображение в ОЗУ (если в ОЗУ было

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

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

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

Конец.

Исследование модифицированного кодера JPEG

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

Исходные данные для исследования:

• стандартный, широкоиспользуемый и хорошо зарекомендовавший себя набор изображений «Calgary Corpus Gray Set 2» для оценки возможностей алгоритма по соблюдению заданного битрейта; набор состоит из 12 полутоновых изображений размером 512*512 пикселей (глубина 8 бит на пиксель) [12];

• произвольные полутоновые изображения (глубина 8 бит на пиксель), полученные с Web-камеры, размером 640х480 пикселей;

• коэффициент сжатия K е [4,30], шаг 1;

• максимальная ширина интервала коэффициента квантования Q е [4,90], шаг 1;

• количество кодируемых ДКП-блоков n = 7,5% .

Минимальные и максимальные значения параметров K, Q и n были определены исходя из следующих соображений. Максимальное значение коэффициента сжатия K ограничено 30ю, т. к. при дальнейшем его увеличении качество распакованных изображений набора становится неприемлемым. Диапазон значений коэффициента Q также ограничен соображением визуального качества распакованного изображения. Процент сжимаемых ДКП-блоков был предварительно подобран эмпирическим путем. Замеры времени сжатия производились путем усреднения чистого времени сжатия одного и того же изображения за 500 итераций. Исходное и сжатые изображения в ходе измерений хранились в ОЗУ DDR I объемом 64 Мб и частотой шины 200 МГ ц. Средство измерения времени - интегрированные в SoC часы реального времени с погрешность порядка 1 мс.

Часть результатов исследования по контролю битрейта сжатых изображений приведена в табл. №1 (показаны результаты для изображения «barb_1.bmp»). Полные результаты исследования для всех изображений набора доступны в работе [11]. Следует заметить, что определение качества распакованного изображения, например, по метрике PSNR, SSIM [9], не имеет смысла, т. к. кодер полностью соответствует стандарту JPEG: используется

рекомендованная в стандарте таблица квантования и не происходит отбрасывание каких-либо ДКП-коэффициентов.

Таблица №1

Результаты исследования алгоритма по контролю битрейта для изображения «barb_1.bmp» из набора «Calgary Corpus Gray Set 2»

K Изменение б Количество

размера, байт/% сжатий

4 -1590/-2,43 88 1,52

5 -928/-1,77 82 1,52

6 -1043/-2,39 75 1,52

7 -804/-2,15 67 1,37

8 -557/-1,70 58 1,44

9 -541/-1,86 49 1,59

10 399/1,52 44 1,52

11 382/1,60 38 1,52

12 -450/-2,06 32 1,52

13 -234/-1,16 29 1,52

14 252/1,35 27 1,52

15 -623/-3,56 23 1,52

16 -652/-3,98 21 1,52

17 312/2,02 21 1,52

18 -633/-4,35 18 1,52

19 133/0,96 18 1,52

20 -517/-3,94 16 1,52

21 107/0,86 16 1,52

22 675/5,67 16 1,52

23 -1577/-10,84 12 1,52

24 -1102/-10,09 12 1,52

25 -665/-6,34 12 1,52

26 -262/-2,60 12 1,52

27 111/1,14 12 1,52

28 -893/-9,54 10 1,52

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

29 -570/-6,31 10 1,52

30 -269/-3,08 10 1,52

Результаты измерений на время сжатия приведены в табл. №2. Время сжатия предложенного алгоритма сравнивалось с наиболее распространенной свободной реализацией стандарта 1РЕО - суре§ (реализация не предоставляет возможность контролировать битрейт)

[19] . Предложенный кодер и с]ре§ компилировались одним и тем же компилятором с одинаковыми ключами оптимизации. Параметры сжатия с]ре§ были подобраны так, чтобы основные этапы сжатия совпадали с аналогичными в предложенном кодере, т. е. использовалось ЬтБСТ и оптимизированные таблицы Хаффмана.

Таблица №2.

Результаты исследования кодера на время сжатия на SoC i.MX233

К б Время сжатия модифицированного кодера (мс) Время сжатия ЧРеё реализации (мс)

4 86 205 285

5 80 204 284

6 76 205 286

7 66 202 285

8 57 200 282

9 46 201 283

10 42 205 284

11 39 202 281

12 31 200 280

13 28 204 282

14 25 204 282

15 23 202 283

16 21 202 282

17 20 201 282

18 18 201 281

19 17 200 281

20 16 201 281

21 16 202 281

22 14 201 282

23 12 200 281

24 12 201 280

25 11 202 280

26 10 200 280

27 10 201 280

28 10 200 280

29 9 200 280

30 9 200 280

Среднее время 201 281

Согласно полученным в ходе исследования кодера результатам можно сделать следующие выводы: во-первых, обеспечивается приемлемая погрешность по контролю битрейта, в среднем отклонение меньше 10%; во-вторых, благодаря невысокой вычислительной сложности алгоритма контроля битрейта (количество обработанных пикселей не более чем в полтора раза превышает количество исходных) кодер обеспечивает не худшее время сжатия, чем распространенная свободная реализация с]ре§, в-третьих, не происходит модификаций стандартной схемы сжатия алгоритма 1РЕО и декодером может выступать любая реализация 1РЕО в пределах стандарта и в-четвертых, благодаря малому времени сжатия, можно снизить загрузку процессорного блока SoC.

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

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

Заключение

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

2. Проведено исследование кодера на наборе полутоновых изображений Calgary

Corpus Gray Set 2, которое показало, что он обеспечивает приемлемую погрешность, в среднем менее 10%, контроля битрейта сжатого изображения и не уступает современным аналогам по данному показателю.

3. Проведено исследование кодера на SoC i.MX233 под управлением ОС Linux на

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

ЛИТЕРАТУРА

1. Морозов В. В. R-D проблема и эффективность систем сжатия изображения // Автоматика. Автоматизация. Электротехнические комплексы и системы. - 2006.

- Т. 2. - № 18. - С. 8-12.

2. Умняшкин С. В. Схема RD-оптимизированной компрессии для обработки

видеоданных в реальном масштабе времени // Известия вузов. Сер. Электроника, 2002. - № 2. - С. 60-65.

3. Berger T. Rate Distortion Theory. Englewood Cliffs. - N.J.: Prentice-Hall, 1971. -311 p.

4. He Z., Mitra S.K. A linear source model and a unified rate control algorithm for DCT video coding // IEEE Trans. on Circuit and System for Video Tech. - 2002. - V. 12. -№ 11. - P. 970-982.

5. He Z., Mitra S. K. Optimum bit allocation and accurate rate control for video coding via p-domain source modeling // IEEE Trans. on Circuit and System for Video Tech.

- 2002. - V. 12. - № 10. - P. 840-849.

6. ITU-CCITT Recommendation T.81 Information technology. - Digital compression and coding of continuous-tone still images. - ISO/IEC 10918-1. - 1992. - 182 p.

7. Liang J. Fast Multiplierless approximations of DCT with the lifting scheme // IEEE Trans. on Signal Processing. - 2001. - V. 49. - № 12. - P. 3032-3044.

8. Nguyen R.D. Rate control and bit allocation for JPEG transcoding: Master’s thesis. -Cambridge: Massachusetts Institute of Technology, 2007. - 51 p.

9. Wang Z., Bovik A.C. Modern image quality assessment. - N.Y.: Morgan & Claypool, 2006. - 157 p.

10. Wu S. W., Gersho A. Rate-constrained picture-adaptive quantization for JPEG

baseline coders // IEEE Intern. Conf. on Acoustic, Speech and Signal Processing. -1993. - V. 5. - P. 390-392.

11. Модификация JPEG сжатия. 2012. URL: http://jpg.vt.tpu.ru (дата обращения:

10.03.2012).

12. Набор изображений Calgary Corpus Gray Set 2. 2002. URL: http://cdb.paradice-insight.us/?corpus=10 (дата обращения: 16.03.2011).

13. Обзор платформ цифровых сигнальных процессоров и микропроцессоров на базе ядра ARM компании Texas Instruments. 2012. URL: http://www.ti.com/ ww/ru/sitara_whatsnew.html (дата обращения 10.12.2012).

14. ООО «ЭК-Мобайл» Prospero C100. 2012. URL: http://www.ec-

mobile.ru/47prospero/ (дата обращения: 4.03.2012).

15. ARM9. NXP Semiconductors. 2012. URL: http://www.nxp.com/products

/microcontrollers/arm9/#products (дата обращения 24.12.2012).

16. ARM based microcontrollers. 2013. URL: http://www.atmel.com/products

/microcontrollers/arm/default.aspx (дата обращения: В.03.2013).

17. ARM - The Architecture For The Digital World. 2012. URL: http://www.arm.com (дата обращения: 13.10.2012).

1В. i.MX233 Product Summary Page. 2012. http://www.freescale.com/webapp

/sps/site/prod_summary.jsp?code=i.MX233 (дата обращения: 27.12.2012).

19. Independent JPEG Group. 2013. URL: http://www.ijg.org (дата обращения:

13.05.2013).

20. SPEAr Embedded Microprocessors - STMicroelectronics. 2012. URL: http://www.st. com/internet/mcu/subclass/1156.jsp (дата обращения: 12.12.2012).

21. System-on-chip technology comes of age. 2012. URL: - http://www.eetimes.com/ design/power-management-design/4397940/System-on-Chip-technology-comes-of-age (дата обращения: 12.10.2012).

Рецензент: Сонькин Михаил Аркадьевич, директор, д.т.н., ООО «Инком».

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