Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.pdf
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
2.2 Mб
Скачать

II.АППАРАТНЫЕ УСТРОЙСТВА КОМПЬЮТЕРНОЙ ГРАФИКИ

2.1.Устройства видеовывода

2.1.1. Видеоадаптеры

2.1.1.1. История видеосистем персональных компьютеров

Важная черта архитектурыIBM персонального компьютера: контроллер видеосистемы всегда был расположен на системной шине, что давало возможность быстро вести обмен данными между оперативной памятью и видеопамятью. Иная архитектура, характерная для «больших компьютеров», предполагала наличие промежуточного интерфейса ввода-вывода, что ограничивало быстродействие и функциональные возможности отображающих устройств. Дисплеи всегда предполагались растровыми.

Первый компьютер IBM PC (1981 г.) был оснащён видеоадаптером

MDA:

официальное название – Monochrome Display Adapter;

режимы – монохромный текстовый (25 строк по 80 символов), размер символа 7х9 пикселей;

интерфейс с монитором – цифровой, частота обновления 50 Гц;

Видеоадаптер HGC (1982 г.).

официальное название – Hercules Graphic Card;

режимы – MDA + монохромный графический (720х348)

интерфейс с монитором – цифровой;

Видеоадаптер CGA.

официальное название – Color Graphic Adapter, память 16 Кбайт;

режимы – 16-цветный текстовый (размер символа 7х7 пикселей) и 2 графических режима (монохромный 640х200 и 4-цветный 320х200);

интерфейс с монитором – цифровой, частота обновления 60 Гц, совместим со стандартом NTSC;

Видеоадаптер EGA (1984 г.).

официальное название – Enhanced Graphic Adapter;

режимы – цветные текстовые (размер символа 7х9 пикселей) и графические режимы (CGA + 16-цветный 640х350). Палитра 64 цвета;

интерфейс с монитором – цифровой, частота обновления 60 Гц, увеличена горизонтальная частота сканирования, в связи с чем более не поддерживается совместимость с NTSC;

10

Видеоадаптер, разработанный для компьютеров PS/2 – MCGA (1987 г.).

официальное название – Multi-Color Graphics Array;

режим – цветные текстовые (EGA) и графические (CGA + графический режимы с разрешением640х480 и 256-цветный 320х200). Палитра 256 К (262144) цветов;

интерфейс с монитором – аналогово-цифровой.

Видеоадаптер VGA (с конца 80-х является стандартом видеоадаптера для IBM PC).

официальное название – Video Graphic Array (термин изначально относился к СБИС, вобравшей в себя множество функции, ранее реализуемых в адаптере EGA несколькими микросхемами), память 256 Кбайт;

режимы – всего 17: цветные текстовые (предельное разрешение 720х400 пикселей) и графические (предельные 640х480х16 цветов и 320х200х256 цветов) Палитра 256 K цветов;

совместимость – MDA, CGA, EGA;

интерфейс с монитором– аналогово-цифровой, максимальная частота обновления 70 Гц, автоматическое определение цветного/монохромного монитора. На рисунке 1 приведена общая схема устройстваVGA видеоадаптера. ЦАП (RAMDAC) преобразует 8 битов цифровой цветовой информации из микросхемы VGA в аналоговые сигналы, используемые мониторами.

Рисунок 1 – Общая схема устройства VGA

Используемый тип цифро-аналогового преобразователя обеспечивает просмотр таблицы цветов, на вход которой поступает8-битовый сигнал, а на выходе генерируется аналоговый сигнал с6-битовым разрешением по яркости для каждого из базовых цветов(красный, синий, зеленый), что дает возможность отображения 256К цветов. VGA управляет аналоговыми цветовыми сиг-

11

налами с дискретностью в 11.1 мВ. В видео–BIOS записаны экранные шрифты, служебные таблицы и т.п.

2.1.1.2. Устройство видеоадаптера VGA

Будем называть видеобуфером или видеопамятью (VRAM) память, непосредственно находящуюся на плате видеоадаптера и управляемую видеоконтроллером. Эта память логически может быть поделена на несколько(обычно четыре) цветовые плоскости.

Видеобуфер по определённым правилам, устанавливаемым в основном BIOS и операционной системой, полностью или частично отображается в заданное адресное пространство оперативной памяти компьютера для хранения и оперативного изменения отображаемого на мониторе экранного образа. Эту область памяти будем называть отображаемой. Эта область логически поделена на видеостраницы (одну или несколько), одна из которых являетсяактивной, т.е. графические данные, находящиеся на ней, отображаются на экране монитора.

Рассмотрим отображаемое пространство видеопамяти в адресном -про странстве ОЗУ компьютера, находящегося под управлением MS DOS (рис.2) и работающего с VGA видеокартой в различных графических режимах(режим 13h – 320х200х256 цветов и 0Eh – 640x200x16 цветов). Видеопамять отображается в оперативную память с адресаA0000h и имеет размер 64 КБайт. Размер видеостраницы зависит от разрешения экрана и количества цветов, приходящихся на один пиксель изображения4.

В области памяти, находящейся за отображаемой и также отведённой для видеоинформации (начиная с адреса С0000-С7FFFh) обычно переписано содержимое BIOS видеокарты.

По умолчанию в отображаемой памяти левому верхнему углу экрана в графическом режиме соответствует адресA0000h, в текстовом режиме – адрес B8000h (цветные текстовые режимы) или B0000h (монохромные текстовые режимы).

4 Зачем нужны видеостраницы? При перерисовке движущейся графики прямо в отображаемой памяти без промежуточной прорисовки на невидимых страницах изображение выглядит подмигивающим и колышущимся. Это последствия изменения памяти, которая одновременно модифицируется действиями процессора и циклически отображается на экране. Устройство видеопамяти VGA позволяет избежать этой проблемы путем создания теневых видеостраниц. Достоинство переключения страниц – это возможность, не вызывая на экране нежелательных эффектов, модифицировать одну страницу, пока отображается другая. Как только закончилось формирование процессором теневой страницы, ее делают активной, установив на нее начальный адрес отображения. Область же, бывшая активной, теперь может быть перерисована и затем снова отображена.

12

Рисунок 2 – Отображаемое пространство видеопамяти в адресном пространстве ОЗУ компьютера, находящегося под управлением MS DOS

Но как соответствует байты информации в этом адресном пространстве и растровое изображение, формируемое на экране монитора?

а) Графические режимы. VGA-адаптер может в зависимости от выбранного режима поддерживать две основные организации памяти: линейную и пло-

скостную.

При линейной организации каждый байт видеопамяти используетсядля хранения, например, информации о цвете одного пикселя изображения. Байты последовательно отображается в адреса памяти адресного пространства ОЗУ процессора. То есть, экран представляет собой двумерный байтовый массив. Один из таких режимов работы VGA имеет код 13h, 320×200 пикселей.

Таким образом, на одной строке изображения умещается320 байт, минимальный размер видеостраницы, необходимой для заполнения экрана, составляет 320*200=64000 байт. Палитра в этом режиме состоит из 256 цветов.

Однако, используется и другой способ организации памяти– плоскостной. В этом режиме памятьVGA (256 Кбайт) организована как четыре64килобайтные плоскости. Каждая плоскость – это линейный битовый образ, т.е. каждый байт плоскости отвечает за8 рядом лежащих пикселей (1 пиксель – 1 бит), следующий байт этой же плоскости контролирует следующие8 пикселей, и т. д. Все четыре битовые плоскости адресуются как один сегмент памяти с начальным адресом A000:0000. То есть, как показано на рисунке 3.

13

Рисунок 3 – Организация битовых плоскостей Данные плоскости отображаются одна поверх другой, и занимают в опе-

ративной памяти одно и то же место, при этом доступ к плоскостям и отображение плоскостей контролируется программированием регистров маски плоскостей (MMR – map mask register) графического адаптера. Поэтому, если записать байт по адресу A000:0000, то это вовсе не означает, что посланный байт в действительности запишется, хотя бы в одну из этих плоскостей.

Основное достоинство плоских режимов– высокое быстродействие, но алгоритмы формирования изображения здесь гораздо сложнее, чем в линейных. Пример режима с плоскостным способом организации памяти – 12h.

Этот режим поддерживает разрешение 640 х 480 пикселей. При этом для отображения экрана достаточно на каждой плоскости использовать38400 байт памяти.

Каждая плоскость отвечает за определенную компоненту цвета пикселя (что и определило их широко распространенное название– цветовые плоскости). При этом, очевидно, число одновременно возможных цветов = 16, так как цвет пикселя определяется комбинацией битов на одинаковых позициях этих четырех плоскостей (цвета выбираются из 16-цветной палитры). При этом в 64 Кбайта отображаемой памяти укладывается полностью всего одна видеостраница (остаётся неиспользованным 27135 байт).

Логическая ширина экрана в памяти VGA при работе с битовыми плоскостями не обязательно совпадает c физической. Программист может сам опреде-

14

лить размер логического экрана, вплоть до 4080 пикселей, и использовать физический экран как окно в определенном им логическом экране. Боле того, экран VGA может иметь любую логическую высоту – пока не кончится память. Такие логические экраны удобно использовать в программах САПР.

b)Текстовые режимы. Здесь также создаётся видеостраница, которая в этом случае имеет гораздо меньшие размеры. За каждый символ изображения отвечает два байта: первый хранит ASCII-код символа, второй содержит атрибуты цвета (биты 0-3 – цвет символа, 4-6 –цвет фона, 7 – флаг мерцания). При этом в первом цветовом слое размещаютсяASCII-коды отображаемых символов, во втором – атрибуты символов, в третьем – знакогенератор.

c)Регистры и программирование VGA. VGA имеет шесть основных групп регистров: регистры общего назначения, регистры синхронизации, контроллера ЭЛТ, графического контроллера, контроллера атрибутов и цвета(см. Таблица

1).

Впервой группе регистров каждый регистр имеет свой собственный адрес

восновном адресном пространстве ввода-вывода. Во всех остальных группах используется индексная адресная схема. Она такова: в основном адресном пространстве доступны только два порта ввода-вывода. Первый порт – индексный, второй – порт данных.

Достаточно большому количеству регистровVGA в каждой группе присвоены соответствующие индексы. Поэтому для того, чтобы обратиться к соответствующему регистру, нужно записать его индекс в индексный порт, а затем прочитать (или записать) данные в порт данных. В каждой группе регистров используется свой индексный порт и порт данных.

Для большинства графических приложений (и прежде всего игровых программ) использование режима, который сочетал бы в себе достоинства линейного (быстрое перемещение фрагментов изображения и использование нескольких видеостраниц) и плоскостного (256 цветов и удобство программирования), является чрезвычайно важным. Один из широко известных недокументированных режимов для VGA носит название "режим X" (на основе режима 13h) и обладает следующими свойствами: 256 цветов, разрешение 320×240 пиксел (при этом нет искажений изображения на экране), три отображаемых страницы, возможность быстрого копирования аппаратными средствами VGA.

15

 

 

 

 

 

 

 

 

 

 

 

Таблица 1

Название

Диапазон ад-

 

Количество

 

Основное назначение

 

 

 

группы

ресов или

 

регистров в

 

 

 

 

 

 

 

 

регистров

отдельные

 

группе

 

 

 

 

 

 

 

 

 

 

адреса портов

 

 

 

 

 

 

 

 

 

 

 

 

ввода/вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

 

3

 

 

 

4

 

 

 

 

 

Регистры

-об03ССh, 03С2h,

 

4, каждый регистр

Определяют

состояние

видеокарты

 

щего

назначе-

03CAh,

 

 

имеет свой

 

и обеспечивают корректный доступ

 

ния

 

03DAh, 03C2h,

 

собственный

к другим группам регистров

 

 

 

 

 

03DAh

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистры

 

индексный

 

5, доступны

через

Регистры управляют

временными

 

синхронизации

порт

03С4h,

индексы

 

параметрами видеоадаптера и раз-

 

(sequencer)

порт

данных

 

решением (запрещением) доступа к

 

 

 

03С5h

 

 

 

 

отдельным цветовым плоскостям.

 

 

 

 

 

 

 

 

Регистры

кон-

индексный

 

25, доступны

Данные регистры управляют сигна-

 

троллера

ЭЛТпорт 03D4h,

 

через индексы

лами

синхронизации,

определяют

 

(CRT-

 

порт

данных

 

форму

курсора, а

также

формат

 

Controller)

03D5h

 

 

 

 

данных на экране. Назначение и

 

 

 

 

 

 

 

 

формат ряда регистров у разных

 

 

 

 

 

 

 

фирм-производителей может раз-

 

 

 

 

 

 

 

личаться.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистры

 

индексный

 

9, доступны

через

В основном

поддерживает

обмен

графического

порт

03СEh,

индексы

 

данными между процессором и ви-

контроллера

порт

данных

 

деопамятью.

Используются

 

при

(Graphics

 

03СFh

 

 

 

 

программировании

различных

ре-

Controller)

 

 

 

 

 

жимов записи графических данных,

 

 

 

 

 

 

 

чтения и перемещения данных.

 

 

 

 

 

 

 

 

 

 

Регистры

кон-

индексный

 

21,доступны через

Управление

цветовыми характери-

троллера

атри-

порт

и

портиндексы

 

стиками изображений. Программи-

бутов

 

данных 03С0h

 

 

 

руется

16-цветная

палитра,

цвето-

 

 

 

 

 

 

 

вые режимы и панорамирование.

 

 

 

 

 

 

 

 

 

 

 

Регистры цвета

03С6h-03C9h

 

5, три из

которыхПрограммирование палитры

 

 

 

 

 

 

 

 

обеспечивают

VGA, т.е. доступ на чтение и запись

 

 

 

 

 

доступ к байтовой

таблицы цветов для RAMDAC.

 

 

 

 

 

 

 

таблице цветов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В режиме X каждый пиксель занимает байт видеопамяти, но эти байты расположены не последовательно друг за другом, а отображаются в четыре цветовые плоскости (рисунок 4). То есть, пиксель с экранными координатами (0,0)

16