Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание к лабе #2 / kg_lr02 / Методичка к ЛР #2.doc
Скачиваний:
23
Добавлен:
04.04.2013
Размер:
260.61 Кб
Скачать

Плоскостная организация видеопамяти.

Для 16-цветных режимов (тиках как 0Dh, 0Eh, 10h и 12h) под каждый пиксел необходимо выделить 4 бита видеопамяти (24=16). Однако эти 4 бита выделяются н последовательно в одном байте, а разнесены в 4 разных блока (цветовые плоскости) видеопамяти.

Вся видеопамять карты (обычно для VGA - 256 Кб) делится на 4 равные части, называемые цветовыми плоскостями. Каждому пикселу ставится в соответствие по одному биту в каждой плоскости, причем все эти биты одинаково расположены относительно ее начала. Обычно эти плоскости представляют параллельно расположенными одна над другой, так что каждому пикселу соответствует 4 расположенных друг под другом бита. Все эти плоскости проектируются на один и тот же участок адресного пространства процессора, начиная с адреса А000:0000h.

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

Для работы с пикселом необходимо определить адрес байта в видеопамяти, содержащий данный пиксел, и позицию пиксела внутри байта (поскольку один пиксел отображается на один бит в каждой плоскости, то байт соответствует сразу 8 пикселам).

Поскольку видеопамять под пикселы отводится последовательно слева направо и сверху вниз, то одна строка в 16-цветном режиме соответствует 80 байтам адреса (например, для режимов с разрешением 640 пикселов по горизонтали) и каждым 8 последовательным пикселам, начинающимися с позиции, кратной 8, соответствует один байт. Т.о. смещение байта от начала страницы видеопамяти и номер бита в нем, управляющего пикселом с координатами (x,y), определяется формулами:

  • Смещение байта = 80 * y + (x >> 3), (x>>3 – целое деление на 8)

  • Номер бита в байте = x & 7 (- 3 младших двоичных разряда).

Плоскостная организация видеопамяти используется в режимах 0Dh, 0Eh, 10h и 12h. В этих режимах используются все четыре цветовых слоя. Режимы отличаются лишь разрешающей способностью.

Н иже приводится структура видеопамяти для режимов 0Dh, 0Eh, 10h и 12h.

2.4. Понятие палитры. Организация палитры ega, vga.

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

Палитра позволяет экономить пространство видеопамяти и размер графических файлов.

Палитра — массив, в котором каждому возможному значению пиксела сопоставляется значение цвета (r, g, b), выводимое на экран. Размер палитры и ее организация зависят от типа используемого видеоадаптера.

EGA : Контроллер атрибутов в графических режимах работы видеоадаптера управляет цветом пикселов изображения. Значениям цветовых атрибутов ставится в соответствие определенный цвет. Для этого используется таблица цветовой палитры. Таблица цветовой палитры ставит в соответствие 4 битам, взятым из видеопамяти, 6 битов цветовой информации. Изменяя данные, записанные BIOS’ом в таблицу цветовой палитры, можно менять используемую палитру цветов. Для видеоадаптера EGA эта информация поступает непосредственно на видеовход монитора.

Элементами палитры являются RGB значения цветов. Разрядность регистров палитры EGA — 6. Количество регистров палитры – 16.

Н иже приведена организация палитры EGA.

VGA : Видеоадаптеры VGA и SVGA выполняют более сложные операции по преобразованию цвета. Четыре бита, считанные из цветовых слоев видеопамяти, определяют 1 пиксел. Значения этих битов служат индексами регистров палитры, в которых хранятся индексы цветовых регистров. В результате получаются три 6-битовых значения, представляющих красный, зеленый и синий (R,G,B) компоненты цвета. Эти значения поступают на 3 цифро-аналоговых преобразователя (ЦАП) и уже в аналоговом виде попадают в монитор.

Таким образом, элементами палитры являются индексы цветовых регистров. Разрядность регистров палитры— 8. Количество регистров – 16.

В ыше была описана организация палитры для графических режимов с плоскостной организацией видеопамяти (т.е. кроме режима 13h).

Палитра VGA для режима 13h не используется, поскольку в этом режиме организация видеопамяти является линейной. Таким образом, из видеопамяти читается 8 битов — значение одного пиксела, которое является указателем (индексом) на цветовой регистр. Регистры палитры в этом режиме не используются.

Также как и в режимах с плоскостной организацией видеопамяти, в этом режиме видеоадаптер может отражать 256К оттенков цветов (26+6+6=256К, т.к. на каждую компоненту RGB-разложения цвета приходится по 6 битов).