Видеоконтроллеры

 

Видеоконтроллер {видеоадаптер) является внутрисистемным устройством, преобразующим данные в сигнал, отображаемый монитором, и непосредственно управляющим монитором и выводом информации на его экран. Видеоконтроллер содержит графический контроллер, растровую оперативную память (видеопамять, хранящую воспроизводимую на экране информацию), микросхемы ПЗУ, а для аналоговых мониторов — и цифроаналоговый преобразователь (ЦАП).

Контроллер (специализированный процессор) формирует управляющие сигналы для монитора и управляет выводом закодированного изображения из видеопамяти, регенерацией ее содержимого, взаимодействием с центральным процессором. Контроллер с аппаратной поддержкой некоторых функций, позволяющей освободить центральный процессор от выполнения части типовых операций, называется акселератором (ускорителем). Акселераторы эффективны при работе со сложной графикой: многооконным интерфейсом, трехмерной графикой и т. п. Основными компонентами специализированного процессора являются: SVGA-ядро, ядро 20-ускорителя, ядро ЗО-ускорителя, видеоядро, контроллер памяти, интерфейс системной шины, интерфейс внешнего порта ввода-вывода. Аппаратно большая часть этих компонентов реализуется на одном кристалле (видеочипсете) видеоконтроллера.

Поясним некоторые компоненты:

□ 2D-ускоритель — устройство, осуществляющее обработку графики в двух координатах на одной плоскости;

□ 3D-ускоритель — устройство, осуществляющее формирование и обработку трехмерных изображений. В процессе формирования 3D-изображения аппаратный 3D-ускоритель взаимодействует со специализированным программным обеспечением. Таким программным обеспечением, существенно облегчающим работу 3D-ускорителя, являются интерфейсы API: Direct X, Open GL, Open ML. Эти интерфейсы поддерживаются большинством современных видеочипсетов.

В чипсете GeForce3 впервые стали использоваться небольшие программки — шейдеры, которые прикладные программы посылают на видеоконтроллер. Если последний распознает их, то обеспечивается возможность обрабатывать трехмерные изображения с гораздо большей точностью.

Процесс построения трехмерных компьютерных изображений (часто называемый конвейером) имеет несколько этапов:

1. Определение состояния объектов.

2. Определение соответствующих текущему состоянию геометрических трехмерных моделей.

3. Разбиение этих моделей на простые элементы — графические примитивы, в качестве которых чаще всего используют треугольники. Треугольники в качестве примитива весьма удобны: для их размещения в пространстве достаточно указать координаты всего трех углов; эти же координаты полностью определяют положение и всей плоскости в трехмерном пространстве (именно на этом этапе подключается аппаратный 3D-ускоритель).

4. Преобразование параметров примитивов в целочисленные значения, с которыми работают аппаратные компоненты.

5. Закраска примитивов (формирование текстур) и финальная обработка.

Текстура — это поверхность среза трехмерного объекта, фрагмент изображения, заносимый в примитив или на весь графический слой. Текстуры хранятся в буфере видеопамяти и путем прямой адресации могут оперативно выводиться на отображение в мониторе.

Основные аппаратные элементы 3D-ускорителя: геометрический процессор, механизм установки и механизм закраски примитивов. Характеристиками ускорителей являются максимальная пропускная способность (треугольников в секунду), максимальная производительность закраски (точек в секунду), скорость (кадров в секунду).

Важная характеристика — емкость видеопамяти, она определяет количество хранимых в памяти пикселов и их атрибутов. Видеоконтроллер должен обеспечить естественное качественное изображение на экране монитора, что возможно при большом числе воспроизводимых цветовых оттенков, высокой разрешающей способности и высокой скорости вывода изображения на экран.

Под разрешающей способностью здесь (так же, как и для мониторов) понимается то количество выводимых на экран монитора пикселов, которое может обеспечить видеоконтроллер. При разрешении 1024 х 768 на экран должно выводиться 786432 пиксела, а при разрешении 2048 х 1536 — 3 145728 пикселов. Для каждого пиксела должна храниться и его характеристика — атрибут.

Количество воспроизводимых цветовых оттенков (глубина цвета) зависит от числа двоичных разрядов, используемых для представления атрибута каждого пиксела. Выделение 4 бит информации на пиксел (контроллеры CGA) позволяло отображать 24 = 16 цветов, 8 бит (контроллеры EGA и VGA) — 28 = 256 цветов, 16 бит (стандарт High Color), 24 и 25 бит (стандарт TrueColor в контроллерах SVGA), соответственно, 216 = 65536, 224 = 16777216 и 225 = = 33554432 цветов. В стандарте TrueColor в отображении каждого пиксела обычно участвуют 32 бита, из них 24 или 25 нужны для характеристики цветового оттенка, а остальные — для служебной информации.

Необходимую емкость видеопамяти для работы с двухмерной графикой можно приблизительно сосчитать, умножив количество байтов атрибута на количество пикселов, выводимых на экран. Например, в стандарте TrueColor при разрешающей способности монитора 1024 х 768 пикселов емкость видеопамяти должна быть не менее 2,5 Мбайт, а при разрешении 2048 х 1536 — не менее 9,5 Мбайт.

При работе со сложными графическими программами, такими, например, как Photoshop, AutoCad, ImageReadSy, 3D Мах и др., ввиду необходимости отображения стереоструктур, слоев и примитивов, их формирующих, необходимая емкость видеопамяти может достигать 128 Мбайт и более (в атрибут каждого пиксела включается кроме его координат X и Y на плоскости значение его третьей координаты Z (глубины). В сложных графических системах требуется большая разрядность Z-буфера (до 32 бит), иначе бывает трудно различить близко расположенные по глубине точки изображения. Кроме того, для ускорения последовательной выборки текстур из памяти иногда создается два буфера. Пока на экран выводится содержимое из одного буфера, ведется расчет размещения текстур для другого буфера. Затем буферы меняются местами. Это позволяет придать движущемуся по экрану изображению большую плавность, но требует двухкратного увеличения объема видеопамяти. Поэтому для ЗD-графики иногда необходима видеопамять до 256 Мбайт. Правда, есть возможность размещать текстуры и в оперативной памяти ЭВМ, но это дополнительно существенно загружает центральный процессор и, несмотря на современные скоростные интерфейсы (PCI Express 16x, например), замедляет работу видеосистемы и ухудшает качество изображения.

В текстовых режимах работы требуется существенно меньшая видеопамять.

Скорость вывода изображения на экран зависит от скорости обмена данными видеопамяти со специализированным процессором, цифроаналоговым преобразователем и центральным процессором.

Для увеличения скорости обмена данными используются:

□ увеличение разрядности и тактовой частоты внутренней шины видеоконтроллера (вплоть до 256 разрядов и 600 МГц);

□ новейшие быстродействующие типы оперативной памяти. В качестве видеопамяти в контроллерах могут применяться различные типы памяти DRAM, как универсальные: SDRAM, DRDRAM, DDR1 и DDR2 SDRAM, - так и особо быстрые специализированные: SGRAM (синхронная графическая), VRAM и WRAM (двухпортовые типы видеопамяти, в памяти WRAM для ввода и вывода информации применяются разнотипные порты), 3D RAM (трехмерная) и т. д.

Скорость обмена данными с центральным процессором определяется пропускной способностью шины, через которую осуществляется обмен. В современных компьютерах используются скоростные интерфейсные шины AGP и PCI Express.

Поскольку в CRT-мониторы чаще всего необходимо подавать аналоговый видеосигнал, для преобразования цифровых данных, хранимых в видеопамяти, в аналоговую форму в видеоконтроллере предусмотрен цифроаналоговый преобразователь RAMDAC (Digital Analog Converter for RAM). Он отвечает за формирование окончательного изображения на мониторе. RAMDAC преобразует результирующий цифровой поток данных, поступающих от видеопамяти, в уровни интенсивности, подаваемые на соответствующие электронные пушки ЭЛТ-монитора — красную, зеленую и синюю. Помимо цифроаналоговых преобразователей для каждого цветового канала (красного, зеленого, синего), RAMDAC имеет встроенную память для хранения данных о цветовой палитре и т. д. Такие характеристики RAMDAC, как его частота и разрядность, также непосредственно определяют качество изображения.

От частоты ЦАП зависит, какое максимальное разрешение и при какой частоте кадровой развертки монитора сможет поддерживать видеоконтроллер. Разрядность определяет, сколько цветов может поддерживать видеоконтроллер. Наиболее широко распространено 8-битовое представление характеристики пиксела на каждый цветовой канал монитора (суммарная разрядность 24).

В видеоконтроллере имеются микросхемы ПЗУ двух типов:

□ содержащие видео-BIOS — базовую систему ввода-вывода, используемую центральным процессором для первоначального запуска видеоконтроллера;

□ содержащие сменные матрицы знаков, выводимых на экран монитора.

Многие видеокарты имеют электрически перепрограммируемые ПЗУ (EEPROM, Flash ROM), допускающие перезапись информации пользователем под управлением специального драйвера, часто поставляемого вместе с видеоадаптером. Таким образом можно обновлять и видео-BIOS, и экранные шрифты.

Основные характеристики видеоконтроллера:

□ режимы работы (текстовый и графический);

□ воспроизведение цветов (монохромный и цветной);

□ число цветов или число полутонов (в монохромном);

□ разрешающая способность (число адресуемых на экране монитора пикселов по горизонтали и вертикали);

□ емкость и число страниц в буферной памяти (число страниц — это число запоминаемых графических текстур или текстовых экранов, любой из которых путем прямой адресации может быть выведен на отображение в мониторе);

□ размер матрицы символа (количество пикселов в строке и столбце матрицы, формирующей символ на экране монитора);

□ разрядность шины данных, определяющая скорость обмена данными с системной шиной, и т. д.

Общепринятый стандарт формируют следующие видеоконтроллеры:

□ Hercules — монохромный графический адаптер;

□ MDA — монохромный дисплейный адаптер (Monochrome Display Adapter);

□ MGA — монохромный графический адаптер (Monochrome Graphics Adapter);

□ CGA — цветной графический адаптер (Color Graphics Adapter);

□ EGA — улучшенный графический адаптер (Enhanced Graphics Adapter);

□ VGA — видеографический адаптер (Video Graphics Adapter), часто его называют видеографической матрицей (Video Graphics Array);

□ SVGA — улучшенный видеографический адаптер (Super VGA);

□ PGA — профессиональный графический адаптер (Professional GA).

В настоящее время выпускаются и практически используются только видеоконтроллеры типа SVGA и существенно реже PGA.

Для плоских мониторов используются контроллеры типа SXGA (цифровая модификация SVGA) и DVI (Digital Video Interface).

Современные SVGA- и SXGA-видеоконтроллеры поддерживают разрешение до 2048 х 1536, число цветовых оттенков около 33 млн (32-разрядные) и имеют объем видеопамяти 128-256 Мбайт.

Сборщиками эффективных видеоконтроллеров в своих картах используются в основном чипсеты компаний nVidia (карты GeForce) и ATI (карты Radeon). Значительно меньшее распространение получили чипсеты фирм Matrox, SIS, Intel и др.

Видеоконтроллер устанавливается на материнской плате, как видеокарта, в свободный разъем AGP или PCI. Некоторые видеокарты имеют вход для подключения телевизионной антенны (TV in) и тюнер, то есть позволяют через ПК просматривать телепередачи, видеофильмы с видеомагнитофона и видеокамеры; ряд видеокарт имеют разъем для подключения телевизора (TV out), для просмотра видео.

В табл. 12.7 показаны основные характеристики популярных видеочипсетов.

В апреле 2004 года компания nVidia официально объявила о выпуске нового поколения высокопроизводительных видеочипсетов GeForce 6. В этих чипсетах реализована суперскалярная 16-конвейерная архитектура, что позволило не менее чем вдвое увеличить их производительность по сравнению с чипсетами предыдущего поколения. В GeForce 6 впервые реализована поддержка нового интерфейса фирмы Microsoft API DirectX 9 Shader Model 3.0, что позволяет добиться очень высокого качества отображения самых сложных визуальных эффектов.

Новые видеочипсеты имеют программируемую подсистему обработки видео, что обеспечивает еще более качественное изображение. В 2004 году новое поколение представлено двумя видеочипсетами: GeForce 6 6800 и GeForce 6 6800 Ultra.

Таблица 12.7. Основные характеристики некоторых видеочипсетов

Модель Частота ядра, МГц Частота памяти, МГц Скорость обмена с памятью, Гбайт/с
GeForce2 MX 400 5,8
GeForce2 FX 5200 6,4
GeForce2 FX 5900
GeForce2 FX 5900 Ultra
GeForce4 MX 460 8,8
GeForce4 FX 5600 8,8
GeForce4 FX 5600 Ultra 11,2
Radeon 9100 8,6
Radeon 9600 9,0
Radeon 9600 Pro 9,6
Radeon 9800 20,3
Radeon 9800 Pro 22,4

Первый из них используется в видеоконтроллере с памятью GDDR1 128 Мбайт, второй — с новейшей высокоскоростной памятью GDDR3 256 и 512 Мбайт.

В видеоконтроллерах для мониторов на плоских панелях вместо аналоговых интерфейсов SVGA используются специальные скоростные цифровые интерфейсы.

Хронологически первый интерфейс P&D (Plug and Display) был достаточно дорогим, и сейчас в цифровых видеокартах чаще всего используется его упрощенный вариант — интерфейс DFP (Digital Flat Panel). Он обеспечивает пиковую скорость передачи около 2 Гбит/с и поддерживает разрешение мониторов до 1280 х 1024 пикселов при частоте кадровой развертки 60 Гц.

В 2002 году разработан новый интерфейс DVI (Digital Visual Interface). Его начальная версия поддерживает разрешение 1920 х 1080 пикселов, но интенсивно ведется его доработка, поскольку уже появились мониторы на плоских панелях с более высоким разрешением (например мониторы фирмы NEC с разрешением 2048 х 1536).

Интерфейс DVI весьма перспективен, поскольку:

□ обеспечивает надежную передачу данных; в связи с этим возможно существенное увеличение длины соединительных кабелей без потери качества изображения;

□ может работать с дисплеями как цифровыми, так и аналоговыми;

□ поддерживает спецификацию Plug&Play;

□ упрощает архитектуру видеоконтроллера: сейчас уже позволяет для аналоговых мониторов перенести RAMAC в сам монитор; в перспективе позволит удалить из видеоконтроллера всю его аналоговую часть.

Вполне возможно, что через несколько лет стандарт SVGA полностью уступит свое место стандарту DVI.