Планарність (комп'ютерна графіка)
Планарність у комп'ютерній графіці — це метод впорядкування піксельних даних у декілька бітових площин в оперативній пам'яті. Кожний біт у бітовій площині пов'язаний з одним пікселем на екрані. На відміну від графіки Chunky[en], High color[en] або Truecolour, всі дані для окремого пікселя не знаходяться в окремому конкретному місці в оперативній пам'яті, а розташовані на бітових площинах, з яких складається дісплей.
Ця схема виникла при створенні комп'ютерної графіки, коли пам'ять чипів не могла постачати інформацію достатньо швидко, щоб можна було створити зображення на екрані телевізора або монітора з великим відеобуфером[1]. Якщо розділити дані на кілька площин, тоді кожна площина може зберігатись на окремому чипі пам'яті. Потім ці чипи можуть бути прочитані паралельно з меншою швидкістю, що дозволяє невибагливому апаратному забезпеченню відображати графіку. З цієї причини вдосконалений графічний адаптер ранніх версій комп'ютерів IBM PC використовував площинне розташування в кольорових графічних режимах. Пізніше, коли була представлено відеоадаптер VGA, він мав непланарний режим[en], який жертвує ефективністю пам'яті заради зручнішого доступу[2].
На Chunky[en]-дисплеї з 4 бітами на піксель і палітрою RGBI[en] кожен байт представляє два пікселі з 16 різними кольорами, доступними для кожного пікселя. Чотири послідовних пікселя зберігаються в двох послідовних байтах наступним чином:
Байтовий індекс | 0 | 1 | ||
---|---|---|---|---|
Байтове значення (десяткове) | 1 | 35 | ||
Байтове значення (шістнадцяткове) | 0x01 | 0x23 | ||
Значення (в двійковій системі) | 0000 | 0001 | 0010 | 0011 |
Значення (в десятковій системі) | 0 | 1 | 2 | 3 |
Наслідковий піксель | Чорний | Синій | Зелений | Ціановий |
Наприклад, у стислому форматі зберігання пікселів, кожен байт дорівнює одному пікселю. Три пікселя в рядку зберігалися б в наступним чином, з доступними 256 кольорами:
Індекс байту | 0 | 1 | 2 |
---|---|---|---|
Значення (в двійковій системі) | 00000000 | 00000001 | 00000010 |
Значення (в десятковій системі) | 0 | 1 | 2 |
Наслідковий піксель | Чорний | Синій | Зелений |
Для прикладу, при планарній структурі даних можна використовувати 2 бітові площини, що забезпечує 4-кольоровий дисплей. Вісім пікселів будуть зберігатися в пам'яті у вигляді 2 байтів, які не розташовані поруч:
Індекс байту | 0 | |||||||
---|---|---|---|---|---|---|---|---|
Індекс біту | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Площина 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Площина 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
Наслідковий піксель | 1 | 0 | 0 | 2 | 0 | 0 | 3 | 0 |
Значення байту | 146 |
Додавання третьої площини зробить доступними 23=8 кольорів. Там, де потрібно менше, ніж 256 кольорів, площинна графіка займає найменше місця в ОЗП, у порівнянні з 8-бітним стислим форматом зберігання пікселів, тому, що немає невикористаних бітів в заданому байті.
Недоліком площинної графіки є те, що потрібно більше адресних циклів ОЗП для прокрутки та анімацій, хоча ці операції пожуть бути прискорені за допомогою спеціалізованих апаратних засобів, таких як чипи блітеру, які використовуються в Amiga, і деяких пізніших версіях комп'ютерів Atari ST.
Планарні розташування пропонують ефективність простору та часу над упакованими аранжуваннями на розрядній глибині, яка не має ступеня 2. Як приклад, розглянемо 3 глибину кольору, дозволяючи 8 кольорів. З площинним розташуванням для цього просто потрібні 3 площини. З упакованими механізмами підтримка рівно 3 глибини кольору вимагатиме або дозволу пікселям перетинати межі байтів (що спричиняє витрати часу через ускладнення з адресацією та розпаковуванням пікселів), або заповнення (нести витрати на простір, оскільки кожен байт зберігатиме 2 пікселі та матиме 2 невикористаних біта); історично це одна з причин (хоча не обов'язково основна) — у упакованих пікселях використовується бітова глибина, яка рівномірно вписується в байти.
Площинні розташування дозволяють швидше перемикати глибину розрядів: площини додаються або відкидаються і (якщо кольори індексовані) палітра розширена або урізана. Отже, підтримка більшої глибини розрядів може бути додана, майже не впливаючи на старе програмне забезпечення. Простота перемикання по бітовій глибині також дозволяє легко використовувати разом елементи різної глибини розрядів.
Недоліком планарного розташування є те, що для прокручування та анімації потрібно більше циклів адреси оперативної пам'яті.
- ↑ Rogers, David F. (1985). Procedural Elements for Computer Graphics. McGraw-Hill. с. 13. ISBN 0-07-053534-5.
- ↑ VGA Hardware - OSDev Wiki. wiki.osdev.org. Процитовано 14 червня 2021.