Видимий спектр електромагнітного випромінювання включає величезну множину кольорів, які здатне розрізняти людське око. Колірний обхват (Color Gamut) – діапазон кольорів, що розрізнюється людиною, або відтворений вивідним пристроєм (незалежно від механізму отримання кольору – віддзеркалення або випромінювання).
У кожній колірній моделі для опису вихідних колірних компонент обрані певні фізичні складові видимого спектру. Через їх відмінності діапазони відтворюваних цими моделями кольорів не збігаються.
Найбільш широке колірне охоплення демонструє модель Lab, яка дозволяє синтезувати всі кольори моделей RGB і CMYK, так як її колірний обхват перекриває колірні діапазони моделей RGB і CMYK, у яких колірні охоплення не збігаються.
У моделі RGB колірний обхват включає в себе підмножину кольорів, яка може бути відтворена на екрані телевізора або монітора (випромінюючого червоне, зелене і синє світло). Чистий блакитний колір і чистий жовтий не можуть бути точно виведені на екрані.
Найвужчим колірним охопленням характеризується модель CMYK. Вона відтворює тільки ті кольори, які можуть бути отримані за допомогою чотирьох фарбового друку. У професійних графічних пакетах для екранних кольорів, що лежать поза колірного охоплення моделі CMYK, пропонується для порівняння CMYK-аналог.
Всі описані моделі, крім CMY і CMYK, є адитивними, так як в них закладено принцип суперпозиції трьох адитивних компонент. Моделі RGB, CMY, YIQ і Lab взаємно конвертуються за допомогою відповідних афінних перетворень (див. п. 5 ), наприклад, RGB в YIQ:
Перетворення між просторами RGB і HSV або HLS і навпаки виконуються безпосередньо за допомогою геометричних співвідношень між кубом та відповідними конусами. Наведемо формули, що зв'язують простори RGB і HSV.
Перехід з HSV в RGB:
Афінні колірні перетворення зберігають в зображеннях безперервність колірних переходів. При геометричних перетвореннях (з конуса в куб і навпаки) на зображенні в колірних переходах може з'явитися розрив.
Нагадуємо, що пікселі – це вузли правильної сітки (растра). Розрізняють фізичні та логічні пікселі.
Фізичні пікселі – реальні точки растра, які відображаються на пристрої виведення, або найменші фізичні елементи поверхні відображення, які можна обробити програмним або апаратним способом.
Логічні пікселі задаються тільки місцем розташування на растрі (реальних розмірів не мають) і відповідають тій ділянці пам'яті, в якій записані дані про колір фізичного пікселя з такими ж координатами растра. Ці піксельні дані залежать від застосовуваної колірної моделі, і в них записаний результат прямого кодування кольору (крім прямого кодування застосовується непряме завдання кольору за допомогою палітри, яке буде розглянуто нижче).
Для кожного пікселя вони можуть мати розмір від одного біта до трьох байт і більше. Записані в файл зображення піксельні дані можуть бути організовані одним із двох способів: у вигляді рядків розгортки або у вигляді площин. Перш ніж перейти до схем організації даних, покажемо на прикладі, в чому полягає подання даних у вигляді рядків розгортки і в площинному вигляді.
Приклад. Нехай 24-бітове зображення складається з двох рядків і трьох стовпців і задане в колірній моделі RGB. Схема такого зображення на поверхні пристрою виведення наведена на рисунку 3.10.
Дані про колір кожного пікселя цього зображення записані шістьма 3- байтовими значеннями. Кожен байт виділений під один первинний колір моделі. У першому байті записано значення червоного кольору, у другому – зеленого, в третьому – синього: (06,55,64), (03,04,05), (12,35,00), (76,50,11), (24,80,93), (34,12,26). Подання графічного файлу такого зображення у вигляді рядків розгортки і в 3-х площинному вигляді показано на рис. 3.11.
Запис у файл зображення піксельних даних у вигляді рядків розгорнення (тип а) може бути організований трьома способами: у вигляді безперервних даних, смуг і фрагментів.
Безперервні дані – метод організації даних, при якому всі дані зображення записуються у файл безперервно. Смуги розділяють зображення на кілька фрагментів, кожен з яких має ту ж ширину, що і оригінал. Вони сприяють буферизації даних зображення при їх обробці на комп'ютерах з обмеженою пам'яттю.
Фрагменти відповідають прямокутній області зображення і можуть мати будь-яку ширину.
На практиці піксельні дані фрагмента мають об'єм від 4 до 64 Кб, а їх висота і ширина кратна 16. Фрагментація дозволяє застосовувати на одному зображенні різні схеми стиснення, а також виводити частини великих зображень, так як розкодування фрагментів може проводитися незалежно один від одного.
Другий (тип б) спосіб організації піксельних даних у вигляді колірних площин.
Однобітові піксельні дані задають двокольорове зображення. Такі зображення, як креслення або текст, зберігаються в однобітовому вигляді.
Однобітовими пристроями відображення є монохромні монітори і чорно-білі принтери.
Дані більше одного біта на піксель задають багатокольорове або півтоноване з кількістю 2n кольорів або рівнів тону зображення (n – кількість бітів на піксель). Кількість бітів інформації, яка задає колір пікселя на поверхні відображення, називається бітовою глибиною зображення.
Інформація про бітову глибину визначається або за піксельними даними, якщо в форматі графічного файлу використано пряме кодування, або по палітрі, зазначеній в його форматі, тобто за кількістю біт, необхідних для завдання індексу будь-якого елементу палітри.
Палітра або колірна таблиця – масив колірних величин. При її використанні колір пікселя вказується побічно своїм індексом в палітрі. Об'єм пам'яті для зберігання палітри:
Крім економії пам'яті, застосування палітри дозволяє миттєво змінювати кольори в зображенні (змінюючи відповідні номери колірних елементів в палітрі або змінюючи кодування самих елементів).
За кількістю колірних складових елементів виділяються:
одноканальні палітри – для будь-якого елементу палітри передбачено один і той же кольоровій компонент;
багатоканальні палітри – для будь-якого елементу передбачені два і більше колірних компонента.
За способом організації даних, які задають палітру, виділяються:
піксельно-орієнтовані палітри – зберігають всі дані про коліри пікселів у вигляді послідовності бітів в будь-якому елементі масиву;
площинно-орієнтовані палітри – це величини, відповідні кожному кольору, зберігаються окремо, утворюючи різні колірні канали.
Одноканальні і багатоканальні палітри можуть бути як піксельно-, так і плоскостно-орієнтованими:
одноканальна піксельно-орієнтована палітра – під кожен одноканальний елемент виділений один піксель;
багатоканальна піксельно-орієнтована палітра – під кожен елемент виділено також одне піксельне значення, але кожен піксель містить два (або більше) колірних канали;
одноканальна плоскостно-орієнтована палітра – під кожен елемент (індекс) виділяється один піксель, а під кожен біт пікселя –- одна площина;
багатоканальна плоскостно-орієнтована палітра – під кожен індекс: виділяється один піксель, в якому колірні канали рознесені по площинах.
Зі збільшенням кількості кольорів у зображенні або його бітової глибини для зберігання палітри потрібний більший обсяг пам'яті. Для зображень з більш ніж 256 кольорами застосовують формати з кодуванням кольору безпосередньо в піксельних даних без формування індексних палітр.
Пристрої виведення відображають truecolor або істинні кольори, якщо вони відображають 24-бітові зображення, у яких можливе число кольорів досягає 224 = 16777216; пристрої hicolor відображають 16- або 15-бітові зображення з можливим числом кольорів 216 = 65536 або 215 = 32768.
Для режиму hicolor можуть бути використані фіксовані палітри (в цьому випадку, хоча піксельні дані закодовані в непрямому вигляді двобайтовими записами, відпадає необхідність докладати до зображення таблицю кольорів, яка містить 65536 трибайтових рядка).
Фіксація палітри використана також в Web-графіці для введення безпечної палітри. Через обмеження на швидкість передачі даних в Internet для оформлення Web-сторінок не використовують графіку більше 8-бітової глибини, для якої і зафіксована палітра, що жорстко визначає індекси для кодування 216 кольорів, так звана безпечна палітра. У зв'язку з тим, що не всі підключені до мережі комп'ютери (а не тільки з IBM PC) можуть відтворювати 256 кольорів, у безпечній палітрі тільки 216 елементів. На цю палітру заздалегідь налаштовані найбільш популярні браузери.