Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТІ_л15-16.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
458.24 Кб
Скачать

15.2. Алгоритм диференціального кодування

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

Наступний простий приклад [Шульг.] показує, яку перевагу може дати диференціальне кодування у порівнянні з простим кодуванням без пам'яті, тобто кодуванням відліків незалежно один від другого рівномірним кодом.

Приклад 15.5. Нехай десять послідовних пікселів 8-бітового (256-рівневого) цифрового зображення мають такі рівні:

144 147 150 146 141 142 138 143 145 142

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

144 3 3 -4 -5 1 -4 5 2 -3

Для кодування першого числа послідовності потрібно 8 біт, а усі решта числа можна закодувати 4-бітовими словами (один знаковий біт і 3 біти на кодування модуля числа).

Отже, у результаті кодування отримаємо кодове слово довжиною біт. Це є майже удвічі коротше, ніж при прямому кодуванні кожного відліку рівномірним 8-бітовим кодом ( біт).

При декодуванні послідовність легко відновлюється з різницевої послідовності простим сумуванням (дискретним інтегруванням)

144 +3 +3 -4 -5 +1 -4 +5 +2 -3

144 147 150 146 141 142 138 143 145 142

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

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

Лекція 16.

16.1. Кольорові простори

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

Існують три найбільш популярні кольорові моделі – це RGB (яка використовується в комп'ютерній графіці), YIQ, YUV або YCbCr (які використовуються у відео системах), а також CMYK (яка використовується у кольоровому друці). Усі кольорові простори можуть бути отримані з RGB простору.

RGB

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

Рис.1. Куб RGB кольорів

Кольорові ЕПТ – електроннопроменеві трубки та рідкокристалічні дисплеї відображають RGB зображення, окремо підсвічуючи червоні, зелені і блакитні компоненти кожного пікселя. Якщо дивитися на екран з відстані звичайного глядача, то різні компоненти зливаються у єдиний ''правильний колір''.

RGB простір підходить для комп'ютерної графіки, оскільки там, для формування кольору, використовуються саме ці три компоненти. Однак, RGB не зовсім є ефективним, коли мова йде про реальні зображення. Справа у тому, що для збереження кольору зображень, необхідно знати і зберігати усі три компоненти RGB і втрата однієї з них сильно спотворить візуально якість зображення. Також при обробці зображень в RGB просторі не завжди буває зручно змінювати тільки яскравість або контрастність окремого пікселя, оскільки в цьому випадку необхідно буде прочитати усі три значення компонент RGB, перерахувати їх для потрібної яскравості та записати назад. З цієї та з інших причин багато стандартів відео використовують яскравість та два кольороворізницевих сигнали як кольорову модель, що відрізняється від RGB. Найбільш відомими серед таких кольорових просторів є YIQ, YUV та YCbCr. Незважаючи на те, що усі вони зв'язані між собою, все ж таки є деякі відмінності

YCbCr

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

Буква Y у таких кольорових просторах позначає компоненту яскравості, яка обчислюється як зважене усереднення компонент R, G і B за такою формулою

,

де позначає відповідний ваговий множник. Інші кольорові компоненти по суті визначаються у вигляді різниці між яскравістю Y та компонентами R, G і B:

,

,

.

При цьому отримуються чотири компоненти нового простору замість трьох в RGB. Однак число є постійним, тому тільки дві з трьох хроматичних компонент необхідно зберігати, а третю обчислювати на їх основі. Частіше всього у якості двох кольорових компонент використовують та . Переваги простору YCbCr у порівнянні з RGB полягають у тому, що та можна представляти з меншою роздільною здатністю, ніж Y, оскільки око людини менш чутливе до кольору ніж до його яскравості. Це дозволяє скоротити об'єм інформації, яка потрібна для представлення хроматичних компонент, без помітного погіршення якості передачі колірних відтінків зображення. Такий підхід до перетворення кольорового простору дає додатковий ефект при стисканні зображень. При цьому, алгоритми стиснення спочатку перетворюють вихідний кольоровий простір RGB у YCbCr стискають інформацію, а потім при відновленні, знову перетворюють зображення у кольоровий простів RGB, оскільки він використовується в ЕОМ. При цьому формули для прямого та оберненого перетворень мають вигляд:

Пряме перетворення

Обернене перетворення

Рекомендація ITU-T (міжнародний стандарт у телекомунікації) пропонує наступні коефіцієнти

, .

Використовуючи ці значення в даних рівняннях, отримуємо широко розповсюджені формули:

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

Самий очевидний формат – це так званий формат 4:4:4, який цілковиту точність у передачі хроматичних компонент, тобто на кожні 4 світлових відліків передаються по 4 відліки компонент та (рис.2а).

а) b)

Рис.2. Розташування хроматичних компонент

Інший формат 4:2:2 ( ) передбачає, що на кожні 4 відліки компоненти припадає по два відліки хроматичних компонент, розташування яких зображено на рис. 2b. Такий формат використовується для високоякісного кольорового відео і використовується у стандартах та .

Найбільш популярний формат;4:2:0 ( ). У ньому кожна компонента та має один відлік на 4 відліки (рис. 3 a),b)). Причому відліки компонент та , як правило, обчислюються двома способами. У першому випадку виконується інтерполяція за найближчими 4-ма відліками компонент та для формування одного відліку для них (рис. 3а). Такий підхід застосовується у стандартах та , . У іншому випадку виконується інтерполяція за двома вертикальними відліками (рис.3b) і застосовується у стандарті .

а) b)

Рис.3. Зображення формату 4:2:0

Завдяки економному зображенню кольорових сцен, формат 4:2:0 широко використовується у багатьох додатках, таких як відео конференції, цифрове телебачення, DVD. Оскільки хроматичні компоненти відбираються у 4 рази рідше ніж компонента яскравості, то простір 4:2:0 займає у 2 рази менше відліків у порівнянні з форматом відео 4:4:4 .

16.2. Алгоритм стискання JPEG

Алгоритм розроблений групою експертів в області фотографії (Joint Photographic Expetr Group) спеціально для стискання 24-бітових та півтонових зображень у 1991 році. Цей алгоритм дуже добре працює (обробляє) зображення з неперервними тонами, у яких близькі пік селі звичайно мають подібні кольори. Зазвичай око не в змозі помітити якоїсь різниці при стисканні цим методом у 10 або 20 разів.

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

Розглянемо роботу алгоритму більш детально. Припустимо, що стискається повне кольорове 24-бітове зображення. У цьому випадку отримуємо такі етапи роботи.

Крок 1. Переводимо зображення з простору у простір за допомогою наступного виразу:

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

,

який, по суті, є простором :

.

Крок 2. Розбиваємо вихідне зображення на матриці 8х8. Формуємо з кожної три робочі матриці ДКП – по 8 біт окремо для кожної компоненти. При великих степенях стискання блок 8х8 розкладається на компоненти у форматі 4:2:0, тобто компоненти для та беруться через точку по стрічках і стовпцях.

Крок 3. Застосовуємо ДКП до блоків зображення 8х8 пікселів. Формально пряме ДКП для блока 8х8 можна записати у вигляді

,

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

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

.

Тут -- результат ДКП, для обчислення якого потрібно

операцій множення та майже стільки ж операцій додавання, що суттєво єменше прямого обчислення за формулою, наведеною вище. Наприклад, для перетворення зображення розміром пікселів потрібно арифметичних операцій. Враховуючи 3 компоненти яскравості, отримуємо значення арифметичних операцій. Кількість множень і додавань можна ще більше скоротити, якщо скористатися алгоритмом швидкого перетворення Фур'є. У результаті для перетворення одного блоку 8х8 потрібно буде зробити 54 множень, 468 додавань та бітових зсувів.

У результаті ДКП отримуємо матрицю , у якій коефіцієнти у лівому куті відповідають низькочастотній складовій зображення, а у правому нижньому – високочастотній.

Крок 4. Квантування. На цьому кроці відбувається відкидання частини інформації. Тут кожне число з матриці ділиться на спеціальне число з ''таблиці квантування'', а результат округляється до найближчого цілого:

.

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

Яскравість Колір

Рекомендовані таблиці квантування

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

З квантуванням пов'язані і специфічні ефекти алгоритму. При великих значеннях кроку квантування втрати можуть бути настільки великими, зображення розпадеться на квадрати однотонні 8х8. у свою чергу втрати у високих частотах можуть проявитися у так званому ''ефекті Гібса'', коли навкруг контурів з різким переходом кольору утворюється хвилеподібний ''німб''.

Крок 5. Переводимо матрицю 8х8 у 64-елементний вектор за допомогою ''зигзаг'' сканування (рис.4)

Рис.4. ''Зигзаг'' сканування

У результаті на початку вектора, як правило, будуть записуватися ненульові коефіцієнти, а в кінці утворюватися ланцюжки з нулів.

Крок 6. Перетворюємо вектор за допомогою модифікованого алгоритму RLE , на виході якого отримуємо пари типу (пропустити число), де ''пропустити'' є лічильником нулів, які пропускаються, в ''число'' – значення, яке необхідно поставити у наступну комірку. Наприклад, вектор 1118 3 0 0 0 -2 0 0 0 0 1 … буде згорнений в пари (0.1118) (0.3) (3.-2) (4.1) … .

Потрібно відзначити, що перше число перетвореної компоненти , по суті, дорівнює середній яскравості блоку 8х8 і носить назву DC-коефіцієнта. Аналогічно для усіх блоків зображення. Ця обставина наводить на думку, що коефіцієнти DC можна ефективно стиснути, якщо запам'ятати не їх абсолютні значення, а відносні у вигляді різниці між DC коефіцієнтом поточного блоку і DC коефіцієнтом попереднього блоку, а перший коефіцієнт запам'ятати так як він є. При цьому впорядкування коефіцієнтів DC можна зробити, наприклад так (рис.5). Решта коефіцієнтів, які називаються AC-коефіцієнтами, зберігаються без змін.

Рис.5. Схема впорядкування DC-коефіцієнтів

Крок 7. Згортаємо отримані пари за допомогою нерівномірних кодів Хафмана зфіксованою таблицею. Причому для DC і АС коефіцієнтів використовуються різні коди, тобто різні таблиці з кодами Хафмана.

Рис.6. Структурна схема алгоритму

Процес відтворення зображення у цьому алгоритмі повністю є симетричним. Метод дозволяє стискати зображення у 10-15 разів без помітних візуальних втрат.

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

Отже, можемо зробити такі висновки

Суттєвими позитивними сторонами алгоритму є:

1.Задається ступінь стискання.

2. Вихідне кольорове зображення може мати 24 біти на точку.

Негативними сторонами алгоритму є:

1. При збільшенні степеня стискання зображення розпадається на окремі квадрати 8х8. це пов'язано з тим, що відбуваються великі втрати в низьких частотах при квантуванні, і відтворити вихідні дані стає неможливим.

2. Проявляється ефект Гібса – ореоли по границях різких переходів кольорів.

18

Теорія інформації—Лекція 15-16

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]