ISSN 2225-7551

В.В. Гордієнко, канд. техн. наук

А.М. Близнюк, магістрант

Модуль апаратного кодування зображень

Стаття присвячена апаратній реалізації алгоритму стиснення зображень JPEG на базі програмованої логіки. Розроблено модель, яка описує алгоритм. Проведено дослідження впливу параметрів моделі на якість стиснутого зображення. Отримано опис модуля кодування на мові VHDL, який більш оптимальний, ніж аналоги з точки зору кількості ресурсів, які займає модуль на мікросхемі.

Вступ

Реалізація великої кількості сучасних задач має потребу в елементній базі, яка повинна відповідати таким вимогам, як висока швидкість обробки даних, компактність і низьке енергоспоживання. Основними ринками для таких пристроїв є телекомунікації, ринок споживацьких електронних пристроїв і автомобільна електроніка [1].

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

Кодери і декодери зображень в основному реалізуються на базі спеціалізованого сигнального процесора у вигляді програмного алгоритму, який достатньо сильно завантажує процесор. Більшу ефективність дає застосовування апаратних прискорювачів. Під поняттям «апаратний прискорювач» мається на увазі вузькоспеціалізоване апаратне рішення для реалізації одиничної функції з метою досягнення максимальної швидкості реалізації алгоритму і компактності схемотехніки. Використання програмованих логічних інтегральних схем (ПЛІС) для реалізації прискорювача поєднує в собі відразу дві переваги: збільшення швидкості обробки за рахунок апаратної реалізації і гнучкість системи з точки зору внесення змін і налаштування алгоритму, оскільки ПЛІС достатньо легко можна переконфігурувати.

Реалізація програмних алгоритмів у вигляді апаратних прискорювачів на базі ПЛІС – перспективний напрямок у сфері цифрової обробки сигналів і телекомунікацій, що підтверджується стрімким розвитком процесорів з архітектурою «система на кристалі» (СнК) на ринку вбудовуваних систем.

Одним з найбільш популярних форматів стиснення зображень є JPEG, який отримав свою назву від групи його розробників Joint Photographic Experts Group. Специфікація алгоритму і рекомендації для його реалізації приведені в стандарті ISO 10918-1 [2].

У сегменті ринку систем цифрової обробки присутні модулі кодування зображень у формат JPEG. Вони представлені у вигляді спеціалізованих мікросхем або програмних модулів на мові опису апаратури (HDL), які входять у склад спеціалізованих бібліотек або реалізовані у вигляді окремих блоків. Переважна більшість таких модулів - платні або доступні в обмеженій функціональності.

Розробки з даної тематики ведуться, але інформація про них закрита або обмежена в доступі. Тому є потреба у власних розробках для подальших досліджень і використання в більш складних системах обробки візуальної інформації.

Метою роботи є розробка апаратного модуля кодування в формат JPEG з оптимізацією модуля за швидкодією та об’ємом, якій модуль займає на ПЛІС.

Моделювання алгоритму

Моделювання направлене на реалізацію алгоритму на функціональному рівні. Це дає можливість розібрати алгоритм на рівні деталізації, достатньому для реалізації апаратного модуля.

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

На основі отриманої моделі були проведені дослідження впливу параметрів моделі на якість стиснутого зображення. Найбільший вклад у стиснення вносять процеси квантування і кодування.

Кодування впливає тільки на ступінь стиснення інформації, оскільки стиснення відбувається за рахунок заміни байтів кодами із спеціальних таблиць і ніяким чином не впливає на кількість інформації в потоці даних. Оцінити вплив зміни таблиць кодів досить складно, тому що вони спираються на статистичні дані. Таблиці можна тільки порівняти між собою, і то для різних зображень можуть вийти різні результати.

Квантування досягає стиснення за рахунок видалення менш значимої інформації з потоку даних. Для цього на масив даних 8х8 накладають маску – таблицю квантування, яка містить числа, на які необхідно поділити відповідні коефіцієнти масиву даних.

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

Для спрощення аналізу результатів введено параметр К, який можна легко знайти з формули:

       ,                                                        (1)

де   QK – матриця квантування, яка відповідає значенню К;

       QE – еталонна матриця.

Для K>1 значення коефіцієнтів збільшується, отже кількість інформації в масиві даних після квантування зменшується. При K<1 – навпаки. Випадок K=1 відповідає структурі вихідної моделі.

Дослідження проведені для компонента Y, який містить інформацію про яскравість. Даний вибір обумовлений тим, що яскравість є найбільш важливою характеристикою для людського сприйняття.

В якості критеріїв якості стиснутого зображення були взяті ступень стиснення S і пікове відношення сигнал/шум PSNR.

Ступінь стиснення S – це відносна величина, яка дає можливість оцінити, у скільки разів розмір вихідного зображення більше ніж стиснутого. Розраховується за формулою:

   ,                                                                   (2)

де   SIZEK – розмір стиснутого зображення для досліду зі значенням К;

       SIZEE – розмір вихідного бітового поля зображення, яке дорівнює добутку кількості пікселів на 3 (у байтах).

Пікове відношення сигнал/шум PSNR – величина, яка визначає візуальну якість. PSNR і якість зображення прямо пропорційні. Розраховується на основі середньоквадратичного відхилення (MSE).

Для більшої точності оцінки якості під час розрахунку MSE і PSNR враховуються особливості системи людського сприйняття (HVS). Це виражено у таблиці корегуючих факторів TC [3].

Враховуючи HVS, MSE розраховується за формулою:

                         ,                               (3)

де    – коефіцієнти дискретного косинусного перетворення (ДКП) блоку 8*8, з координатами першого елемента i та j;

        – коефіцієнти ДКП відповідного вікна оригінального зображення;

       I, J – розміри зображення.

Відповідно значення PSNR, яке враховує HVS, має вигляд:

                                               .                                                     (4)

Даний критерій показує більш високий ступінь кореляції з оцінками спостерігачів у суб’єктивних тестах і є переважним при виборі об’єктивного критерію якості, близького до суб’єктивної оцінки [3].

У дослідженнях застосовувались 4 зображення різних типів. Перше – чорно-біле, друге – класичне тестове зображення з плавними кольоровими переходами, третє містить багато дрібних деталей, а в четвертому присутні високочастотні елементи (різкі переходи яскравості і кольору).

Спираючись на отримані результати досліджень, були побудовані залежності MSE і PSNR в залежності від параметра K (рис. 1).

Згідно дослідженням [3] при PSNR>35дБ можна вважати, що якість відновленого зображення відмінна; при PSNR<25дБ – низька якість. Виходячи з цих критеріїв, можна констатувати, що використання еталонної таблиці квантування (К=1) забезпечує відмінну якість відтвореного зображення для різних типів зображення. Навіть при збільшенні коефіцієнтів таблиці в 2 рази відмінна якість зображень зберігається.

Залежності для всіх чотирьох зображень практично не відрізняються як характером залежності, так і чисельними значеннями PSNR (рис. 1). Виходячи з цього факту, можна зробити висновок, що вплив квантування на візуальну якість зображення не змінюється зі зміною типу зображення. Це дає можливість застосовувати модель для широкого кола задач з різними типами зображень.

З графіків також видно (рис. 1), що при зростанні значення параметра К зростає ступінь стиснення зображення. Це можна пояснити тим, що із зростанням К зростають коефіцієнти таблиці квантування і, отже, зменшується кількість інформації в масиві даних. При невеликих значеннях параметра К вже досяжні значення степені стиснення в десятки разів, що є достатнім для більшості задач. Це і робить формат стиснення JPEG популярним у багатьох сферах діяльності людини.

Залежності степені стиснення S для всіх чотирьох зображень мають однаковий характер зміни залежно від параметра К і практично перекриваються одна з другою. Це свідчить про те, що ступінь стиснення зображення при фіксованому значені параметра К не змінюється під час обробки різних типів зображень, а незначні відмінності обумовлені використанням таблиць кодів Хаффмана для середньостатистичних зображень. Тому для чорно-білого зображення (рис. 1 а), де інформація про колір відсутня, можна досягнути більших значень степені стиснення, а для зображень з великою кількістю високочастотних елементів (рис. 1 г) ці значення нижчі, ніж у інших. Найбільший коефіцієнт стиснення при умові відмінної якості можна отримати для другого типу зображень (рис. 1 б), тому що таблиці кодів Хаффмана орієнтовані на кольорові зображення з плавними переходами.

Описание: pt1_fig3+++        Описание: pt2_fig3+++

Описание: pt3_fig3+++      Описание: pt4_fig3+++

1 – залежність PSNR від параметра K, 2 – залежність S від параметра K

Рис.1. Результати досліджень для першого (а), другого (б), третього (в) і четвертого (г) типів зображень

Наклавши дві залежності (рис. 1), можна знайти діапазон оптимальних значень параметра К для потрібної степені стиснення і якості зображення. Очевидно, що відмінну якість зображення можна отримати при К<3. Це справедливо для всіх чотирьох типів зображення. При цьому можливі значення степені стиснення даних S до 45 раз, що в повній мірі достатньо для більшості задач.

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

Реалізація модуля кодування

Загальна структура модуля (рис. 2) багато в чому схожа зі структурною схемою моделі алгоритму. Новими блоками є вхідний буфер даних (ВБД) і блок управління (БУ).

Система побудована за принципом послідовної обробки потоку даних. У ВБД записується мінімальний блок інформації, який необхідний для реалізації процесу кодування.

Дані з БВД у блоці перетворення кольорового простору (ПКП) перетворюються з простору RGB у простір YCbCr. Перетворення відбувається за один такт, тому немає потреби в тактуванні. На виході блоку маємо три вектори, які відповідають трьом компонентам простору YCbCr.

 

Описание: рис2

Рис. 2. Загальна структура апаратного модуля

Блок дискретизації даних (ДД) приводить компоненти Cb, Cr до середнього значення за схемою 4:2:0 і формує єдиний потік даних Y00Y01Y10Y11Cb00Cr00. До переходу в наступний блок старший біт вектора інвертується – реалізація зміщення на 127.

Потік даних піддається двовимірному ДКП для переходу в частотну область. Це необхідно для можливості оперування високочастотними і низькочастотними компонентами зображення.

Потік коефіцієнтів ДКП у блоці квантування і зигзаг обходу (БКЗ) піддається квантуванню для зменшення кількості інформації і сортуванню відповідно до порядку зигзаг обходу. Результуючий потік потрапляє в блок кодування даних (БКД), де спочатку виконується кодування довгих послідовностей, а потім отриманий потік кодується за алгоритмом Хаффмана.

Кодований потік накопичується в буфері даних у блоці БКД і по мірі його заповнення у вигляді байтів поступає в блок формування файлу зображення по формату JPEG (БФФ). У блоці БФФ потік кодованих даних доповнюється структурними роздільниками (маркерами) і допоміжною інформацією. Файл у вигляді потоку байтів поступає на вихід блоку разом з сигналом достовірності даних valid.

Модуль суміщує в собі опис на мові HDL, написаний вручну и генерований з моделей Simulink за допомогою інструменту Simulink HDL Coder. Такий підхід дозволяє максимально прискорити розробку пристрою і спростити налагодження на пізніх етапах проектування.

У результаті роботи був отриманий модуль апаратного кодування зображень у форматі JPEG. Параметри модуля приведені разом з параметрами аналогів для порівняння (табл. 1). Кількість використаних логічних елементів (LE, ALUT) приблизна, оскільки воно залежить від настройок компілятора. З таблиці видно, що отриманий модуль використовує менше ресурсів спеціалізованої мікросхеми, ніж його аналоги від компанії CAST та Інтернет-ресурсу OpenCores. Хоча аналогів два, але достовірно порівняти можна лише з аналогом від компанії CAST, тому що інформація про нього приведена для того ж сімейства мікросхем, що і для розробленого модуля. Розроблений модуль займає на мікросхемі на 23% менше логічних елементів, ніж аналог. Такий ефект досягнуто за рахунок зміни протоколу зв’язку з модулем кодування і використання менш ресурсо­ємних архітектур для окремих блоків модуля, наприклад, ДКП [4].

Таблиця 1

Порівняння параметрів модуля з аналогами

Модуль

Мікросхема

Логіка

Пам'ять

Інше

Розробка

Cyclone III

4500 LE

5 M4K

CAST

5858 LE

7 M9K

18 DSP 9 bit

OpenCores

Stratix II

6135 ALUT

55 M9K

4 DSP 9 bit

 

 

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

Висновки

Показана доцільність використання апаратних модулів для реалізації алгоритмів обробки потоків даних на базі ПЛІС.

Отримана модель алгоритму кодування зображень в JPEG з параметрами, які забезпечують гарну якість і ступінь стиснення зображення.

Сформульована методика проектування модулів за допомогою автоматичного генерування опису на мові HDL в пакеті MATLAB.

Розроблений апаратний модуль у вигляді опису на мові HDL для реалізації на базі ПЛІС, який оптимізований по об’єму зайнятих ресурсів на мікросхемі.

Список використаних джерел

  1. Кольский Н. SoC-процессоры как гибкая альтернатива ASIC и процессорам общего назначения / Кольский Н. // Chip News Украина. – 2010. – №7. – С. 20-25.
  2. ITU. T.81: Information Technology – Digital Compression and Coding of Continuous-Tone Still Image – Requirements and Guidelines, 1993.
  3. Илюшкина Н. Применение новых критериев оценки качества изображения после сжатия с потерями / Илюшкина Н., Чобану М. // Современная электроника. – 2007. – №3. – С. 66-69.
  4. Loeffler C., Ligtenberg A., Moschytz G. S. Practical fast 1-D DCT algorithms with 11 multiplications// IEEE Transaction on Consumer Electronics. – 1989. – P. 988-991.