Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Дисциплины:
2022-10-29 | 29 |
5.00
из
|
Заказать работу |
|
|
Многие современные видеоадаптеры применяют давно известный прием, ранее использовавшийся для подключения к компьютеру дополнительной памяти. Центральный процессор получает доступ к видеопамяти через небольшое окно. Это окно может иметь небольшой размер - до 64 Кбайт и располагаться в адресном пространстве процессора. Обычно окно занимает адресное пространство A000:0000h - A000:FFFFh, то есть расположено также как и для стандартных цветных режимов видеоадаптеров EGA, VGA и SVGA. Процессор компьютера может перемещать это окно по всей видеопамяти адаптера получая доступ к разным ее участкам.
Таким образом, процессор может одновременно получить доступ только к части видеопамяти. Чтобы обратиться к другому участку видеопамяти, необходимо переместить окно доступа. Обычно для этого достаточно записать в определенный регистр видеоадаптера SVGA положение окна относительно начала видеопамяти.
Доступ к видеопамяти через небольшое окно создает определенные трудности для программного обеспечения. Теперь чтобы отобразить на экране монитора пиксел вы должны не только вычислить положение соответствующей ячейки видеопамяти, но также определить смещение для окна доступа.
Одновременно усложняются процедуры, отображающие на экране линии и другие геометрические фигуры. Возможно, что выводимое на экран изображение не помещается в одно окно. Процедура должна будет соответственно перемещать окно по видеопамяти.
Усложняются процедуры копирования изображения из одной позиции экрана в другую. Они должны учитывать, что при копировании может понадобиться перемещать окно доступа к видеопамяти.
Чтобы немного помочь программистам в решении этих и многих других задач, некоторые реализации видеоадаптеров SVGA отводят для доступа к видеопамяти не одно, а два окна. Обычно они обозначаются как окно A и окно B. В некоторых моделях видеоадаптеров через одно окно можно только записывать данные в видеопамять, а через другое только читать из видеопамяти.
|
Больше цветов больше бит
Многие режимы видеоадаптера SVGA позволяют одновременно отображать на экране больше чем 256 различных цветов. Естественно что для этого каждый пиксел должен быть представлен большим количеством бит.
Количество различных цветов | Количество бит для кодировки пиксела |
256 | 8 |
32768 | 15 |
65536 | 16 |
16777216 | 24 |
4294967296 | 32 |
Рассмотрим 256-цветный режим видеоадаптера VGA. Каждый пиксел экрана представлен 8 битами данных видеопамяти. Видеоадаптер VGA содержит таблицу цветов (набор из 256 регистров ЦАП), которые согласно значениям, записанным в ней преобразует 8 битные данные видеопамяти в три 6-битных сигнала. Эти три сигнала поступают на три ЦАП и вырабатывающие красную, зеленую и синюю компоненты, определяющие цвет пиксела. Благодаря применению таблицы цветов вы можете выбрать для одновременного отображения на экране монитора любые 256 цветов из 262144 возможных.
Видеоадаптеры SVGA для каждого пиксела используют больше чем 8 бит. Обычно пиксел определяется 15, 16 или 24 битами. Естественно, что в этом случае использование таблицы цветов адаптера VGA затруднено. Например, для режима 65536 цветов (16 бит на пиксел) требуется увеличить размер таблицы цветов до 65536 18-битных регистров. Если адаптер SVGA кодирует пиксел 24 битами, то придется увеличивать размерность таблицы цветов с 18 до 24 или выше.
Поэтому в большинстве режимов SVGA реализована схема прямого кодирования цвета (Direct Color Mode). Биты, определяющие пиксел, группируются на три основные группы, непосредственно определяющие красную, зеленую и синюю компоненты цвета. Данные из этих трех групп передаются на три ЦАП и формируют видеосигнал. Таблица цветов не используется.
|
В некоторых режимах SVGA существует дополнительная, четвертая группа бит, также соответствующая каждому пикселу. Как правило, четвертая группа бит не используется. Некоторые модели видеоадаптеров могут использовать ее по своему усмотрению.
Например, на видеоадаптере Diamond Stealth 64, в режиме 110h, соответствующему спецификации VESA, для кодирования одного пиксела отводится два байта (рис. 7.1). Они разделены на четыре группы. Три из них имеют размер 5 бит и отвечают за красный, зеленый и синий компоненты цвета пиксела. Четвертая группа, резервная, состоит из одного бита. На рисунке 7.1 резервная группа отмечена символом 'X'.
Рисунок 7.1 Формат видеопамяти, 15 бит на пиксел
Таким образом, в режиме 110h видеоадаптер может отображать пикселы 25+5+5 = 32768-и различных цветов.
В режиме 111h на каждый пиксел также как и в режиме 110h отводится 2 байта, однако они имеют другой формат (рис. 7.2). Резервное поле отсутствует. За счет этого увеличен размер поля, управляющего зеленым компонентом цвета пиксела. Поэтому, в данном режиме видеоадаптер может отображать пикселы 25+6+5 = 65536-и различных цветов.
Рисунок 7.2 Формат видеопамяти, 16 бит на пиксел и резервное поле
Чтобы видеоадаптер мог одновременно отображать на экране 16777216 различных цветов, необходимо, чтобы для кодирования каждого пиксела отводилось 24 бита. Обычно видеоадаптеры используют для этого два различных формата кодирования пиксела (рис. 7.3 и 7.4)
Рисунок 7.3 Формат видеопамяти, 24 бит на пиксел
В режимах 112h, 115 и 118h на один пиксел отводится 4 байта (рис. 7.4). Они разделены на четыре группы по 8 бит в каждой. Три группы отвечают за красный, зеленый и синий компоненты цвета пиксела. Четвертая группа резервная. Такой формат позволяет одновременно отображать на экране монитора пикселы 28+8+8 = 16777216 различных цветов.
Рисунок 7.4 Формат видеопамяти, 24 бит на пиксел и резервное поле
Интересно отметить, что даже в режиме 118h, имеющем разрешение 1024x768 пикселов, на экране отображается 786432 пиксела. То есть меньше, чем количество цветов, которое видеоадаптер может одновременно отобразить на экране монитора.
Стандарт VESA
Стандарт VESA описывает расширение прерывания BIOS номер 10h (VESA BIOS Extention - VBE), отвечающего за управление видеоадаптерами. Поддержка VBE обычно включается производителями видеоадаптеров в ПЗУ самого адаптера или поставляется в виде отдельной резидентной программы. Во втором случае перед использованием функций VBE необходимо загрузить данную резидентную программу в оперативную память компьютера. Ниже мы полностью опишем функции VBE версии 1.2 и опишем некоторые функции VBE версии 2.0.
|
Перед вызовом функций VBE следует записать в регистр AH значение 4Fh. Если ваша реализация VBE поддерживает данную функцию, то в регистре AL возвращается значение 4Fh. Если функция не реализована, тогда в регистре AL возвращается значение, отличное от 4Fh.
Результат выполнения функции записывается в регистр AH. В случае успешного завершения функции в регистре AH возвращается нулевое значение. Если в регистре AH записано значение 1h, значит функция завершилась с ошибкой. И, наконец, если в регистре AH возвращается значение 2h, значит аппаратура видеоадаптера не поддерживает данную функцию.
Возможна ситуация, когда VBE может выполнить запрашиваемую функцию, а аппаратура видеоадаптера - нет. В этом случае после завершения функции регистр AH содержит значение 4Fh, а регистр AH - 2h.
Получить информацию о реализации VBE и видеоадаптере
Функция позволяет получить различную информацию о возможностях VBE и видеоадаптера. Вы должны использовать данную функцию, чтобы определить, наличие VBE и его версию. Формат вызова функции отличается для VBE версии 2.0 и VBE более ранних версий.
В следующей таблице представлен формат вызова функции для VBE версии 1.2 и более ранних версий:
На входе: | AH | 4Fh |
AL | 00h | |
ES:DI | Указатель на буфер размером 256 байт (формат буфера см. ниже). В этот буфер записывается различная информация о видеоадаптере SVGA и реализации VBE | |
На выходе: | AL | 4Fh |
AH | 0, в случае успешного завершения, 1 в случае ошибки | |
Примечание: | Значения остальных регистров сохраняются |
Теперь приведем расширенный формат этой же функции соответствующий VBE версии 2.0:
На входе: | AH | 4Fh |
AL | 00h | |
ES:DI | Указатель на буфер размером 512 байт (формат буфера см. ниже). Первые четыре байта буфера должны содержать строку "VBE2". В буфер записывается различная информация о видеоадаптере SVGA и реализации VBE | |
На выходе: | AL | 4Fh |
AH | 0, в случае успешного завершения, 1 в случае ошибки | |
Примечание: | Значения остальных регистров сохраняются |
|
В следующей таблице представлен формат буфера, содержащего информацию об адаптере SVGA и реализации VBE. В таблице мы объединили разные версии VBE.
Смещение | Размер | Описание |
00h | 4 байта | В случае успешного завершения в это поле записывается строка 'VESA' |
04h | Слово | Номер версии VBE. Старший байт содержит старшую часть номера версии, младший байт - младшую часть номера версии |
06h | Двойное слово | Дальний указатель на строку, закрытую нулем. В строке содержится информация, определяемая производителем. Как правило, она служит для описания видеоадаптера и реализации VBE |
0Ah | Двойное слово | Возможности видеоадаптера. В реализации VBE версии 1.2 задействуется только бит D0. Бит D0 содержит единицу, если ЦАП видеоадаптера может работать с данными переменной длинны. В противном случае ЦАП может использовать для представления каждой компоненты цвета (RGB-красный, зеленый, синий) только 6 бит. Бит D1 (VBE 2.0) содержит единицу, если видеоадаптер не полностью совместим с VGA. Бит D2 (VBE 2.0) содержит единицу, если BIOS не поддерживает другие функции VBE |
0Eh | Двойное слово | Дальний указатель на список режимов, поддерживаемых функциями VBE. Список состоит из 16-битовых величин, являющихся номерами режимов и заканчивается числом 0FFFFh |
Следующие поля таблицы поддерживаются только VBE версии 1.2 | ||
12h | Слово | Объем памяти видеоадаптера, представленный в блоках размером по 64 Кбайт |
Следующие поля таблицы поддерживаются только VBE версии 2.0 | ||
14h | Слово | Дополнительный номер версии VBE (номер пересмотренной версии) |
16h | Двойное слово | Дальний указатель на строку, закрытую нулем. В строке содержится имя фирмы разработчика |
1Ah | Двойное слово | Дальний указатель на строку, закрытую нулем. В строке содержится название видеоадаптера |
1Eh | Двойное слово | Дальний указатель на строку, закрытую нулем. В строке содержится дополнительный номер версии видеоадаптера |
22h | 222 байт | Не используется |
100h | 256 байт | Информация фирмы разработчика |
Получить информацию о режиме видеоадаптера
Функция позволяет определить различные характеристики любого режима видеоадаптера, отвечающего стандарту VESA. Программа должна подготовить буфер и передать указатель на него функции. В случае успешного завершения в буфер будут записаны характеристики режима.
На входе: | AH | 4Fh |
AL | 01h | |
CX | Номер режима | |
ES:DI | Указатель на буфер размером 256 байт (см. ниже) для таблицы описания режима | |
На выходе: | AL | 4Fh |
AH | Результат: 0, в случае успешного завершения, 1 в случае ошибки |
|
Формат таблицы описания режима представлен ниже:
Смещение | Размер | Описание |
00h | Слово | Атрибуты режима: D0 режим поддерживается D1 доступна дополнительная информация D2 поддерживаются функции BIOS D3 1 - цветной режим, 0 - монохромный режим D4 1 - графический режим, 0 - текстовый режим |
02h | Байт | Атрибуты окна A D0 доступно (поддерживается) D1 окно доступно для чтения D2 окно доступно для записи D3-D7 не используется |
03h | Байт | Атрибуты окна B (см. атрибуты окна A) |
04h | Слово | Шаг позиционирования окна в Кбайтах |
06h | Слово | Размер окна в Кбайтах |
08h | Слово | Начало сегмента окна A |
0Ah | Слово | Начало сегмента окна B |
0Ch | Двойное слово | Указатель на функцию перемещения (позиционирования) окна |
10h | Слово | Количество байт на линию сканирования. Не является обязательным для режимов VESA |
Следующие поля таблицы поддерживаются только VBE версии 1.2 | ||
12h | Слово | Разрешение по горизонтали в пикселах |
14h | Слово | Разрешение по вертикали в пикселах |
16h | Байт | Ширина символа в пикселах |
17h | Байт | Высота символа в пикселах |
18h | Байт | Количество слоев видеопамяти |
19h | Байт | Количество бит на пиксел |
1Ah | Байт | Количество банков памяти |
1Bh | Байт | Тип модели памяти |
1Ch | Байт | Размер банка памяти в Кбайтах |
1Dh | Байт | Количество страниц видеопамяти, доступных в данном режиме минус один |
1E | Байт | Зарезервировано |
1Fh | Байт | Количество бит, представляющих красную компоненту цвета пикселов |
20h | Байт | Положение младшего бита поля, представляющего красную компоненту цвета пикселов |
21h | Байт | Количество бит, представляющих зеленую компоненту цвета пикселов |
22h | Байт | Положение младшего бита поля, представляющего зеленую компоненту цвета пикселов |
23h | Байт | Количество бит, представляющих синюю компоненту цвета пикселов |
24h | Байт | Положение младшего бита поля, представляющего синюю компоненту цвета пикселов |
25h | Байт | Количество бит, представляющих запасное поле цвета пикселов |
26h | Байт | Положение младшего бита запасного поля, предоставляющего цвет пикселов |
27h | Байт | D0 равен единице, если в данном режиме видеоадаптера вы можете программировать регистры ЦАП; D1 равен единице, если в данном режиме видеоадаптера каждое значение пиксела представлено 4 полями (красное, зеленое, синее, дополнительное) и дополнительное поле можно использовать. Если бит равен нулю, тогда дополнительное поле зарезервировано и не используется; D2-D7 зарезервировано |
Следующие поля таблицы поддерживаются только VBE версии 2.0 | ||
28h | Двойное слово | Поле содержит физический 32-разрядный адрес начала видеобуфера для использования его в защищенном режиме |
2Сh | Двойное слово | Смещение от начала видеобуфера области памяти неиспользуемой для отображения изображения на экране монитора |
30h | Слово | Размер области памяти, неиспользуемой для отображения изображения |
32h | 206 байт | Зарезервировано |
6. 11.1. ВВЕДЕНИЕ
Данная глава посвящена новой, быстро развивающейся области растровой графики. Прогресс растровой графики основан на достижениях в микроэлектронике: в настоящее время процессоры и память большого объема с произвольной выборкой создаются на небольших кремниевых кристаллах (чипах). В системе генерации изображения, которая выполняет преобразование примитивов вывода (таких, как отрезки, литеры, многоугольники и т. д.) из векторной формы в растровую, используются процессор и небольшое число чипов памяти. Существенно больше чипов памяти требуется для буфера регенерации, с помощью которого изображение построчно выводится на экран графического устройства. В гл. 1 приведены некоторые основные сведения о развитии растровой графики, в гл. 3 описана общая структура типичного растрового дисплея. В первой части данной главы представлено несколько алгоритмов развертки векторного изображения в растровое, а во второй части рассмотрены средства, которые целесообразно включить в пакет графических подпрограмм для растровой графики. В гл. 12 детально рассмотрено аппаратное обеспечение растровой графики.
Алгоритмы развертки, применяемые при построении растрового изображения, вызываются очень часто (как правило, сотни или даже тысячи раз) при каждом создании или модификации изображения. Поэтому алгоритмы должны не только порождать визуально приемлемые образы, но также делать это как можно быстрее. В самом деле, •скорость или качество изображения — основной компромисс при выборе алгоритмов развертки: одни алгоритмы быстры, но генерируют неровные (с зазубринами) ребра, другие более медленны, но порождают более гладкие ребра. Независимо от способа выбора компромиссного решения предпочтение отдается быстродействию. Поэтому в алгоритмах используются пошаговые методы, в результате чего минимизируется число вычислений (особенно умножений и делений), производимых во время каждой итерации. Дополнительного увеличения скорости можно добиться за счет применения параллельных процессоров, одновременно выполняющих преобразование примитивов вывода из векторной формы в растровую для многовходового буфера регенерации.
ПРЕОБРАЗОВАНИЕ ОТРЕЗКОВ
|
|
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!