Архітектура
За вивід графічної інформації на дисплей у ПК відповідає спеціальний набір мікросхем, поміщається звичайно на окрему плату, що називається відеоплатою або відеокартою. Основним завданням є перетворення образа екрана, що перебуває в пам'яті, т.зв. кадрового буфера (англ. frame buffer), у набір сигналів, зрозумілих дисплею. Для підключення дисплеїв до комп'ютерів використовуються стандарти, що встановлюють логічні й фізичні параметри з'єднання. У цей час два найпоширеніших з них - це аналоговий VGA і цифровий DVI. Перший використовується для підключення як аналогових по суті дисплеїв на ЕЛТ, так і цифрових рк-дисплеїв (аналого-цифрове перетворення в цьому випадку відбувається в самому дисплеї), другий - винятково для Рк-Дисплеїв.
На відеокарті присутня відеопам'ять, характерною рисою якої є те, що вона двухпортова - приєднана як до шини, по якій передаються дані від центрального процесора, так і до мікросхеми, відповідальної за вивід на дисплей, і вони можуть одночасно звертатися до неї. У дешевих пристроях як відеопам'ять використовується частина основної пам'яті, що значно сповільнює обробку даних на відеокарті. Обсяг пам'яті повинен бути достатнім для зберігання даних кадрового буфера, а бажано ще й вторинного буфера (англ. back buffer), якщо використовується технологія подвійний буферизації. Справа в тому, що якщо міняти значення пікселей прямо в момент виводу їх на екран, то при високій частоті відновлення можуть виникати артефакти, пов'язані з тим, що на екран виводиться ще не відбудоване до кінця зображення. Щоб цього уникнути, при подвійний буферизації під час виводу зображення з області відеопам'яті, що призначена кадровим буфером (називаним у цьому випадку також первинним буфером (англ. front buffer)), зображення наступного кадру будується у вторинному буфері, а при показі наступного кадру ці області пам'яті міняються ролями. Ця технологія використовується для показу динамічних зображень, таких як гри. Додаткова відеопам'ять також прискорює обробку графіки, дозволяючи тримати додаткові графічні елементи, які відображаються в кадровому буфері за допомогою блітинга (про це див. нижче).
Доступ до відеопам'яті з боку процесора може бути організований подвійно - або відеопам'ять, як частина адрес, включається в адресний простір процесора, або для копіювання даних між основною й відеопам'яттю контролеру на відеокарті посилає спеціальна команда й копіювання відбувається за допомогою DMA (від англ. Direct Memory Access - мікросхема, що дозволяє здійснювати передачу даних в/з оперативної пам'яті периферійним пристроям без участі центрального процесора).
Мікросхема, відповідальна за вивід на дисплей, постійно сканує відеопам'ять, перетворить її у форму, що відповідає інтерфейсу дисплея, і формує вихідний сигнал, переданий по кабелі на дисплей (див. мал. 2.6). Якщо відеоплата оснащена аналоговим виходом, то в неї повинен бути убудований цифро-аналоговий перетворювач, називаний RAMDAC - Random Access Memory Digital to Analog Converter. Тому що інформація про пікселях передається послідовно, те RAMDAC повинен мати досить високу тактову частоту, щоб дозволяти виводити зображення високого дозволу з достатньою частотою відновлення. Наприклад, зображення 1600×1200 для виводу із частотою 75 Гц вимагає частоти RAMDAC рівної 1600×1200×75 = 144 Мгц. Частота роботи RAMDAC є важливою характеристикою відеокарти.
Рис. 2.6. Архітектура відеопідсистеми ПК.
Рис. 2.7. Приклад зображення спрайтов.
Також на відеоплаті втримується графічний процесор, здатний швидко виконувати основні операції по роботі із зображеннями у відеопам'яті, які можуть бути розділені на кілька класів.
- Робота із прямокутними блоками. Ця мікросхема називається бліттер, тому що основна операція яку вона робить - це BitBlt (Bit Block Transfer), тобто копіювання прямокутного блоку зображення в інше зображення з можливим застосуванням побітових логічних операцій (И, АБО, ЩО ВИКЛЮЧАЄ АБО). Це часто використовувана операція для приміщення об'єктів довільної форми, т.зв. спрайтів, на зображення. Приклад того, як це можна зробити за допомогою двох BitBlt операцій див. на мал. 2.7 (для розуміння необхідно врахувати, що піксели чорного кольору складаються з одних 0 бітов, а білого - з одних 1 бітов). Також відеокарта може підтримувати операцію StretchBlt, - це те ж саме, що й BitBlt, але з розтяганням по осях.
- Растеризація примітивно дозволяє робити растеризацію найпростіших об'єктів, таких як відрізки, окружності, еліпси, прямокутники, багатокутники. Також може підтримуватися заливання одноколірних зон іншим кольором або по шаблоні. При цьому може використовуватися й апаратний антиаліасинг. Ці алгоритми докладно розглянуті в даній книзі. До цієї групи також можна віднести апаратну підтримку відображеннякурсору.
- Підтримка виводу символів. Цей блок відповідає за вивід символів на екран певним шрифтом. Іноді шрифт можна варіювати або завантажувати з основної пам'яті свій. Даний блок активно використовується, коли відеокарта перебуває в текстовому режимі, коли дисплей логічно ділиться на певну кількість прямокутних осередків, найчастіше 80×25, у кожну з яких може бути поміщений один символ з обмеженого піднабору ASCII9).Вид кожного із цих символів визначається в спеціальній таблиці відеокарти, що може бути змінена. У цей час цей режим використовується при завантаженні ПК, а також при роботі в режимі термінала (частіше використовується в ОС Linux), див. мал. 2.8.
- Апаратне прискорення відео й фільтрація зображення. Кодування й декодування відео - дуже ресурсномістка операція, пов'язана з обробкою більших обсягів даних. Деякі відеокарти здатні апаратно декодувати відеопотік, тобто послідовність стислих відеоданих, що відповідає певному формату. Найчастіше це стандарт MPEG-210яким закодовані фільми на DVD11).У сучасних відеокартах також починає з'являтися підтримка Телебачення високої чіткості (англ. HDTV - High Definition Television). Також можливо й апаратне масштабування відео. Апаратне відображення відео в частині екрана зветься оверлея (англ. overlay). Деякі відеокарти також можуть апаратно робити фільтрацію зображень, а також здійснювати гамма-корекцію (див. розділ 2.3).
Практично всі сучасні відеокарти містять також процесор обробки тривимірної графіки, але ця тема виходить за рамки даної книги.
Додатково на тій же платі часто виведені стандартні рознімання для підключення телевізорів і відеотехніки (т.зв. TV In/Out) і встановлені мікросхемы первинної обробки цієї інформації, зокрема, YUV/RGB перетворення.
Деякі сучасні відеокарти дозволяють підключати відразу кілька дисплеїв одночасно.
Дата добавления: 2015-04-03; просмотров: 699;