Базові технології мультимедіа: графіка

Під графікою у мультимедійних системах розуміють технологію, яка забезпечує можливість створення всіх візуальних елементів мультимедіа. У комп’ютерних системах загалом графіку розглядають як сукупність програмних та апаратних технологій для створення, зміни та відображення у цих системах нерухомих зображень у цифровій формі [110, с. 77].

Придатні до обробки комп’ютерними системами цифрові зображення можуть отримуватися:

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

оцифровуванням нецифрових зображень за допомогою сканера;

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

За способом формування та подання зображень комп’ютерну графіку поділяють на растрову, векторну та фрактальну (див. параграф 1.4). При побудові об’ємних зображень у віртуальному просторі застосовують об’ємну, або 3D-графіку, яка технологічно є комбінацією векторної та растрової графіки.

Растрова графіка. Растрова графіка (bitmap) передбачає розбиття зображення на елементарні фрагменти, що називаються пікселами (pixelpicture element). Растрове зображення задається матрицею пікселів Х´Y, тобто має Х елементів по ширині та Y – по висоті, і моделюється масивом значень пікселів. Ці значення, що зберігаються у пам’яті комп’ютера, називають логічними пікселами, а їх відображення на екрані монітору – фізичними пікселами. Кількість пікселів (точок зображення) на дюйм зображення задає роздільну здатність растрового зображення, яка вимірюється в dpi (dots per inch). При цьому модель зображення, яке відбивається масивом фізичних пікселів, може бути записана логічними пікселами з роздільною здатністю, відмінною від роздільної здатності фізичного зображення. При відтворенні останнього до моделі застосовується процедура масштабування. Якщо відтворенню підлягає не весь зберіганий масив пікселів, то масив логічних пікселів піддають процедурі вирізання. Для відтворення растрового малюнку достатньо двох обчислювальних процедур – масштабування і вирізання.

Для екрану стандартного монітору достатньою роздільною здатністю вважається 72 dpi (хоча сучасні монітори підтримують і набагато більшу роздільну здатність, конкретне значення якої встановлює сам користувач); при виведенні на принтер – 300 dpi, у видавничих системах – не менше 300 dpi.

Колірна роздільна здатність растрової графіки (кількість бітових площин) відбиває кількість бітів, які використовуються для кодування кольору кожного піксела. Кількість бітів, яка використовується для запису коду кольору, називається насиченістю кольору. В монохромних зображеннях (чорно-білі зображення без напівтонів) на кожний піксел відводиться 1 біт; чорно-білі напівтонові зображення з 16 відтінками сірого кольору та 256-кольорові графічні файли використовують по 4 та 8 бітів на піксел. У таких кольорових зображеннях використовують лише 256 кольорів, які утворюються як комбінація відтінків червоного, зеленого та синього кольорів, кожний з яких має своє кодоване позначення (від 0 до 255) у таблиці кольорів, яка називається палітрою. Застосовують також 16-розрядні (High-Colors), 24-розрядниі (True-Colors) та 32-розрядні (True-Colors) кольорові графічні файли, у яких для збереження червоних, зелених і синіх складових кольору відводиться 15 чи 16 бітів (по 5 бітів для кожної складової у RGB555 – 32768 кольорів, по 5 бітів для червоної і синьої та 6 бітів для зеленої складової у RGB565 – 65536 кольорів), 24 біти (по 8 бітів для кожної складової – 16.7 мільйонів кольорів) та 32 біти (по 8 бітів для кожної складової кольору та 8 бітів для альфа-каналу для кожного піксела) відповідно. Альфа-канал визначає рівень прозорості кожного піксела в зображенні: значення 0 означає повністю прозорий піксел, 255 – зовсім не прозорий. Альфа-канал використовується для відображення зображень пошарово, одне над іншим.

Для представлення довільного кольору у комп’ютерній графіці використовують одну з моделей кольорів. Найбільш розповсюдженою є адитивна модель RGB (Red – green – blue), у якій довільний колір отримується змішуванням (накладанням, додаванням) трьох базових кольорів (червоного, зеленого та синього) у певних пропорціях. Для повноцінного відтворення RGB кольору (мільйони реальних кольорів) необхідно 24 біти.

Для більш чіткої передачі кольорів при виведенні зображення на кольорові струменеві принтери застосовують різницеву (субтрактивну) модель CMYK (cyan (блакитний) – magenta (пурпуровий)– yellow (жовтий) – black (чорний)), у якій довільний колір утворюється відніманням кольорів RGB від білого (White) кольору. Оскільки сума трьох основних кольорів дає білий колір, то, відповідно, блакитний можна отримати не лише додаванням синього і зеленого кольорів, але й відніманням червоно кольору від білого; аналогічно пурпуровий та жовтий отримуються відніманням від білого кольору відповідно зеленого та синього кольорів. Для друку кольорових копій зображень, які входять у склад мультимедійної продукції, всі малюнки мають містити лише кольори гами CMYK. Перетворення кольорових значень CMYK у RGB–коди та модифікація кольорів з метою залучення ширшої гами кольорів RGB може здійснюватися відповідним програмним забезпеченням типу Adobe Photoshop.

Для представлення кольору способом, наближеним до його природного сприйняття, використовують тривимірну модель кольору HSV (hue – відтінок, saturation – насиченість, brightness value чи просто brightness – величина яскравості, яскравість), яку деколи позначають HSВ. Ця модель може бути представлена у вигляді циліндру, по периметру перерізу якого розташовані по колу чисті та субтрактивні кольори (відтінки, яким відповідає певна домінуюча довжина хвилі світла) в порядку «червоний – жовтий – зелений – блакитний – синій – пурпуровий» та їх суміші, а по діаметру – насиченість, чи тон кольору: чим ближче до центру, тим насиченість менша і колір ближчий до білого. Значення яскравості визначається інтенсивністю світла і задає те, наскільки колір світлий чи темний. Яскравість у моделі HSV зменшується згори донизу: на осі циліндру білий колір плавно переходить у сірий через різні відтінки сірого. Спрощеним варіантом моделі HSV є специфікація кольору на основі стандартних взірців кольорів, що піддаються точному відтворенню, яка широко використовується у комп’ютерному дизайні та при візуалізації аналітичної інформації.

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

Растрові зображення забезпечують відтворення довільних образів реального світу, проте мають ряд недоліків, основним з яких є великий об’єм та неможливість змінювати масштаб зображення без втрати якості в зв’язку з пікселізацією: при збільшенні зображення відбувається розмноження пікселів, тобто копіювання сусідніх пікселів, а при зменшенні – знищення пікселів. Для зменшення обсягу растрових зображень застосовують технології стиснення даних, які базуються на відстеженні повторів всередині даних зображень з метою пошуку їх еквівалентного представлення, яке займає менший об’єм. Якщо алгоритм стиснення є таким, що дає змогу точно відновити вихідні дані за стиснутою версією файлу, таке стискання називають стисненням без втрат; якщо таке відновлення є неможливим внаслідок вилучення частини інформації для досягнення більшого ступеня стискання, то таке стискання називають стисненням з втратами. Воно найбільш придатне для зображень, які отримуються оцифровуванням аналогових даних, оскільки саме оцифровування вже дає наближене представлення первинного аналогового оригіналу.

Технології стиснення растрових зображень. Найпростішою за алгоритмом стиснення технологією є групове кодування (RLE, Run-Length Encoding), за якого послідовна серія однакових елементів (пікселів) замінюється на два елементи: копію коду кольору та кількість його повторів. Ефективність цього методу стиснення тим більша, чим більша частка областей одного кольору.

Складніші технології стиснення без втрат поділяються на 2 типи – технології кодування змінної довжини (variable-length coding) та технології стиснення зі словником. У технологіях першого типу перекодування даних побудовані на таких алгоритмах, які надають для збереження кольорів коди різної довжини, залежно від частоти застосування кольору: чим частіше зустрічається колір, тим коротший код використовують для його збереження. Найвідомішим методом такого типу є кодування Хафмана (Huffman).

У технологіях стиснення зі словником алгоритм стиснення передбачає формування словника (таблиці), у рядки якої вводяться послідовності байтів, які зустрічаються у вхідних даних; отриманим рядкам різною довжини присвоюють однакові за довжиною коди. Стиснення полягає у заміні послідовностей байтів, які зустрічалися у вхідних даних, на коди рядків словника, які містять ці послідовності. Ефективність технології залежить від вибору рядків, які вводяться у словник: вони мають бути достатньо довгими (набагато довшими за коди рядків, що їх містять) та зустрічатися досить часто. Найрозповсюдженішими технологіями такого типу є LZ77 (покращена платна модифікація – LZW) та LZ78, які відрізняються способом формування словника.

Найвідомішими технологіями стиснення зображення з втратами є технології стандарту JPEG, які передбачають представлення елементів зображення через його частотні компоненти за допомогою дискретногокосинусного перетворення (DCT, Discrete cosine Transform), за допомогою якого для довільного масиву вхідних пікселів розраховується масив коефіцієнтів відповідної мірності, які відбивають амплітуди частотних компонент (косинусні функції різних частот). Переведення зображення у частотну область само по собі не забезпечує стиснення, проте така форма представлення даних легше піддається стисненню з мінімізацією впливу відкинутої інформації, оскільки вилучається інформація про високочастотні компоненти, які незначно впливають на якість зображення. У стисканні JPEG різні частоти квантуються у різну кількість рівнів, причому чим вище частота, тим менше рівнів квантування для неї використовують. Кількість рівнів квантування для представлення кожного частотного коефіцієнту зберігається у матриці квантування. Отриманий масив квантованих коефіцієнтів піддають подальшому стисненню без втрат: нульові значення стискаються методом групового кодування, решта значень – методом Хафмана. Відновлення даних JPEG досягається оберненим косинусним перетворенням даних з частотної області у просторову (у пікселі зображень) після розкриття серій коефіцієнтів та відновлення первинних кодів коефіцієнтів з кодів, отриманих стисненням Хафмана.

Формати растрових графічних файлів. Набір методів та правил, призначених для представлення, зберігання, обробки й розповсюдження поданих у цифровій формі зображень задає формат графічного файлу. Формати растрових зображень (растрові формати) відрізняються між собою колірними моделями кольору, методами стиснення (ущільнення), порядком розташування байтів та бітів, максимально допустимим розміром зображення, шарами різних типів, наявністю каналу прозорості (Alpha – каналу), можливістю здійснювати анімацію, можливістю прогресивного методу відтворення тощо. Використання у різних форматах технологій стиснення зображень ілюструється табл. 10.1.

Розроблений Microsoft формат файлів растрових зображень Windows BitMaP (.bmp) використовується переважно у Windows та підтримується багатьма додатками. Розмір зображення необмежений; формат підтримує RGB модель кольору (256 кольорів, 16 – розрядні та 24 – розрядні кольори) та метод стиснення без втрат RLE. В результаті отримуються файли великих розмірів. Цей формат є зручним для обміну даними між різними додатками Windows, але застосовувати його в мультимедіа недоцільно внаслідок великого розміру отримуваних файлів.

Таблиця 10.1