Московский государственный университет имени М.В.Ломоносова
Опубликован: 23.04.2007 | Доступ: свободный | Студентов: 3275 / 437 | Оценка: 4.18 / 3.71 | Длительность: 17:54:00
ISBN: 978-5-9556-0098-7
Специальности: Программист
Лекция 2:

Современные аппаратные средства растровой графики

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

2.4. Архитектура графической подсистемы ПК

Архитектура

За вывод графической информации на дисплей в ПК отвечает специальный набор микросхем, обычно помещаемый на отдельную плату, которая называется видеоплатой или видеокартой. Основной задачей является преобразование образа экрана, находящегося в памяти, т.н. кадрового буфера (англ. frame buffer), в набор сигналов, понятных дисплею. Для подключения дисплеев к компьютерам используются стандарты, устанавливающие логические и физические параметры соединения. В настоящее время два самых распространенных из них - это аналоговый VGA и цифровой DVI. Первый используется для подключения как аналоговых по сути дисплеев на ЭЛТ, так и цифровыхЖК-дисплеев (аналого-цифровое преобразование в этом случае происходит в самом дисплее), второй - исключительно для ЖК-дисплеев.

На видеокарте присутствует видеопамять, характерной особенностью которой является то, что она двухпортовая - подсоединена как к шине, по которой передаются данные от центрального процессора, так и к микросхеме, отвечающей за вывод на дисплей, и они могут одновременно обращаться к ней. В дешевых устройствах в качестве видеопамяти используется часть основной памяти, что значительно замедляет обработку данных на видеокарте. Объем памяти должен быть достаточным для хранения данных кадрового буфера, а желательно еще и вторичного буфера (англ. back buffer), если используется технология двойной буферизации. Дело в том, что если менять значения пикселей прямо в момент вывода их на экран, то при высокой частоте обновления могут возникать артефакты, связанные с тем, что на экран выводится еще не отрисованное до конца изображение. Чтобы этого избежать, при двойной буферизации во время вывода изображения из области видеопамяти, которая назначена кадровым буфером (называемым в этом случае также первичным буфером (англ. front buffer)), изображение следующего кадра строится во вторичном буфере, а при показе следующего кадра эти области памяти меняются ролями. Эта технология используется для показа динамичных изображений, таких как игры. Дополнительная видеопамять также ускоряет обработку графики, позволяя держать дополнительные графические элементы, которые отображаются в кадровом буфере с помощью блиттинга (об этом см. ниже).

Доступ к видеопамяти со стороны процессора может быть организован двояко - либо видеопамять, как часть адресов, включается в адресное пространство процессора, либо для копирования данных между основной и видеопамятью контроллеру на видеокарте посылается специальная команда и копирование происходит с помощью DMA (от англ. Direct Memory Access - микросхема, позволяющая осуществлять передачу данных в/из оперативной памяти периферийным устройствам без участия центрального процессора).

Микросхема, отвечающая за вывод на дисплей, постоянно сканирует видеопамять, преобразует ее в форму, соответствующую интерфейсу дисплея, и формирует выходной сигнал, передаваемый по кабелю на дисплей (см. рис. 2.6). Если видеоплата оснащена аналоговым выходом, то в нее должен быть встроен цифро-аналоговый преобразователь, называемый RAMDAC - Random Access Memory Digital to Analog Converter. Так как информация о пикселях передается последовательно, то RAMDAC должен обладать достаточно высокой тактовой частотой, чтобы позволять выводить изображения высокого разрешения с достаточной частотой обновления. Например, изображение 1600x1200 для вывода с частотой 75 Гц требует частоты RAMDAC равной 1600x1200x75 = 144 МГц. Частота работы RAMDAC является важной характеристикой видеокарты.

Архитектура видеоподсистемы ПК.

Рис. 2.6. Архитектура видеоподсистемы ПК.
Пример отрисовки спрайтов.

Рис. 2.7. Пример отрисовки спрайтов.

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

  • Работа с прямоугольными блоками. Эта микросхема называется блиттер, потому что основная операция которую она производит - это BitBlt (Bit Block Transfer), то есть копирование прямоугольного блока изображения в другое изображение с возможным применением побитовых логических операций ( И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ ). Это часто используемая операция для помещения объектов произвольной формы, т.н. спрайтов, на изображение. Пример того, как это можно сделать с помощью двух BitBlt операций см. на рис. 2.7 (для понимания необходимо учесть, что пиксели черного цвета состоят из одних 0 битов, а белого - из одних 1 битов). Также видеокарта может поддерживать операцию StretchBlt, - это то же самое, что и BitBlt, но с растяжением по осям.
  • Растеризация примитивов позволяет производить растеризацию простейших объектов, таких как отрезки, окружности, эллипсы, прямоугольники, многоугольники. Также может поддерживаться заливка одноцветных зон другим цветом или по шаблону. При этом может использоваться и аппаратный антиалиасинг. Эти алгоритмы подробно рассмотрены в данной книге. К этой группе также можно отнести аппаратную поддержку отрисовки курсора.
  • Поддержка вывода символов. Этот блок отвечает за вывод символов на экран определенным шрифтом. Иногда шрифт можно варьировать или загружать из основной памяти свой. Данный блок активно используется, когда видеокарта находится в текстовом режиме, когда дисплей логически делится на определенное количество прямоугольных ячеек, чаще всего 80x25, в каждую из которых может быть помещен один символ из ограниченного поднабора ASCII9American Standard Code for Information Interchange - распространенная 8-битная кодировка символов . Вид каждого из этих символов определяется в специальной таблице видеокарты, которая может быть изменена. В настоящее время этот режим используется при загрузке ПК, а также при работе в режиме терминала (чаще используется в ОС Linux), см. рис. 2.8.
  • Аппаратное ускорение видео и фильтрация изображения. Кодирование и декодирование видео - очень ресурсоемкая операция, связанная с обработкой больших объемов данных. Некоторые видеокарты способны аппаратно декодировать видеопоток, т.е. последовательность сжатых видеоданных, которая соответствует определенному формату. Чаще всего это стандарт MPEG-210сокр. от Motion Picture Experts Group - группа исседователей, разработавшая данный стандарт , которым закодированы фильмы на DVD11Digital Video Disc - самый распространенный стандарт цифрового видео . В современных видеокартах также начинает появляться поддержка Телевидения высокой четкости (англ. HDTV - High Definition Television). Также возможно и аппаратное масштабирование видео. Аппаратное отображение видео в части экрана носит название оверлея (англ. overlay). Некоторые видеокарты также могут аппаратно производить фильтрацию изображений ( "Фильтрация изображений" ), а также осуществлять гамма-коррекцию ( "Современные аппаратные средства растровой графики" ).

Практически все современные видеокарты содержат также процессор обработки трехмерной графики, но эта тема выходит за рамки данной книги.

Дополнительно на той же плате часто выведены стандартные разъемы для подключения телевизоров и видеотехники (т.н. TV In/Out) и установлены микросхемы первичной обработки этой информации, в частности, YUV/RGB преобразования.

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

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >