Автор работы: Пользователь скрыл имя, 10 Декабря 2012 в 17:48, курсовая работа
Видеоподсистема любого компьютера состоит из двух частей - видеоадаптера, вставляемого в разъем расширения на системной плате и дисплея, подключаемого к видеоадаптеру. Видеоадаптер может быть оформлен в виде отдельной платы, вставляемой в слот расширения компьютера, или может быть расположен непосредственно на системной плате компьютера. Видеоадаптеры могут работать в различных текстовых и графических режимах, различающихся разрешением, количеством отображаемых цветов и некоторыми другими характеристиками.
ВВЕДЕНИЕ 3
1. ВИДЕОАДАПТЕРЫ 4
1.1. Принципы построения изображения 7
1.2. Архитектура видеоадаптеров EGA и VGA 16
1.3. Характеристики видеоадаптеров 18
1.4. Цифровой интерфейс 23
2. РЕЖИМЫ РАБОТЫ ВИДЕОАДАПТЕРА 25
2.1. Глубина цвета и разрешения 30
2.2. Стандартные видеорежимы EGA и VGA 32
2.3. Видеорежимы VESA 33
3. ГРАФИЧЕСКИЕ УСКОРИТЕЛИ 39
3.1. Графические процессоры и их функции 45
3.2. Графический конвейер 48
ЗАКЛЮЧЕНИЕ 50
Список литературы 53
Приложение 54
Разрешение |
Количество цветов |
Объем видеопамяти |
||
640x480 |
256 |
512 Кбайт |
||
800x600 800x600 800x600 |
256 65536 16777216 |
1 Мбайт 1 Мбайт 2 Мбайт |
||
1024x768 |
256 |
1 Мбайт |
||
1024x768 1024x768 1280x1024 |
65536 16777216 256 |
2 Мбайт 4 Мбайт 2 Мбайт |
||
1280x1024 |
65536 |
4 Мбайт |
||
1280x1024 |
16777216 |
8 Мбайт |
2.2 Стандартные видеорежимы EGA и VGA
VGA (англ. Video Graphics Array) - стандарт мониторов и видеоадаптеров. Выпущен IBM в 1987 году для компьютеров PS/2 Model 50 и более старших. VGA являлся последним стандартом, которому следовало большинство производителей видеоадаптеров.
Видеоадаптер VGA подключается как к цветному, так и к монохромному монитору, при этом доступны все стандартные видеорежимы. Частота обновления экрана во всех стандартных режимах, кроме 640×480, — 70 Гц, в режиме 640×480 — 60 Гц. Видеоадаптер имеет возможность одновременно выводить на экран 256 различных цветов, каждый из которых может принимать одно из 262 144 различных значений (по 6 битов на красный, зелёный и синий компоненты). Объём видеопамяти VGA — 256 кБ.Видеоадаптер VGA, в отличие от предыдущих видеоадаптеров IBM (MDA, CGA, EGA), использует аналоговый сигнал для передачи цветовой информации. Переход на аналоговый сигнал был обусловлен необходимостью сокращения числа проводов в кабеле. Также аналоговый сигнал давал возможность использовать VGA-мониторы с последующими видеоадаптерами, которые могут выводить большее количество цветов. Официальным последователем VGA стал стандарт IBM XGA, фактически же он был замещен различными расширениями к VGA, известными как SVGA.Термин VGA также часто используется для обозначения разрешения 640×480 независимо от аппаратного обеспечения для вывода изображения, хотя это не совсем верно. Также этот термин используется для обозначения 15-контактного D-Subminiature разъёма VGA для передачи аналоговых видеосигналов при различных разрешениях.
2.3. Видеорежимы VESA
Почти все работающие компьютеры поддерживают VESA 1.2 на уровне видео BIOS и имеют не меньше 1 Мбайта видеопамяти, а практически все продаваемые - VESA 2.0 (иногда применяется аббревиатура VBE - VESA BIOS Extension) имеют видеопамять 2-4 Мбайт. Если же программа использует графический режим с числом цветов менее 256 и пространственным разрешением до 640x480, то она будет восприниматься, мягко говоря, как несколько устаревшая. Да и обидно использовать всего 60-150 Кбайт видеопамяти из как минимум 1 Мбайта.
Однако характер различных вопросов, обсуждаемых в эхоконференциях компьютерной сети Fidonet, показывает, что многие начинающие программисты, с одной стороны, испытывают потребность в использовании всех графических возможностей современных компьютеров, а с другой - либо вообще не знают о существовании стандарта VESA, либо представляют себе его лишь в общих чертах. Это нередко вызывает досадные ошибки при программировании, а иногда даже приводит к неверным выводам о неработоспособности конкретного "железа". И хотя сегодня эта тема утратила новизну, информация о VESA сейчас даже нужнее, чем раньше.
Сам стандарт разрабатывался таким образом, чтобы на момент утверждения для любой существующей или еще разрабатывающейся видеоплаты можно было написать загружаемый VESA-драйвер. Иными словами, в стандарте изначально допускалось применение различных способов организации видеопамяти и доступа к ней. Основная цель VESA - предоставить прикладной программе возможность получать всю необходимую информацию и минимальный набор сервисных функций для установки различных видеорежимов и работы с ними. Но при этом нельзя было слишком сильно ограничивать разработчиков в способах совершенствования аппаратуры. Следствием этого стала некоторая тяжеловесность принятых информационных блоков.
При разработке своих компьютеров фирма IBM основывалась на том, что в целях совместимости все функции управления экраном должны выполняться через прерывания, а практический опыт и программирования, и практики производства аппаратуры привел к появлению своих правил, допускающих прямое программирование экранных операций, например рисование точки, тем более что поточечный вывод графики через прерывания оказался недопустимо медленным для большинства приложений. Вследствие этого VESA стандартизировала именно прямой доступ к видеопамяти, установив, что поддержка старых функций BIOS не обязательна для новых видеорежимов.
Первые 13h номеров видеорежимов были
заданы де-факто стандартом VGA, и
диапазон 14h-7Fh использовался фирмами-
Биты с 9-го по 14-й резервировались стандартом VESA 1.2 для дальнейших расширений, которые не заставили себя долго ждать. Уже в версии 2.0 для управления LFB (Linear/Flat Frame Buffer - кадровый буфер с линейной/прямой адресацией) был отведен 14-й бит. Список рекомендованных видеорежимов приведен в таблице, однако следует заметить, что производители видео плат не обязаны полностью следовать ему. Номера поддерживаемых видеорежимов можно определить с помощью информационных функций VESA. Кроме того, по версии 2.0 уже не требуется обязательно соблюдать указанные номера видеорежимов.
Таблица Стандартные видеорежимы VESA 1.2 | ||||
Номер режима |
Тип |
Разрешение |
Число цветов |
Число бит на цвет |
100h |
Графический |
640x400 |
256 |
- |
101h |
Графический |
640x480 |
256 |
- |
102h |
Графический |
800x600 |
16 |
- |
103h |
Графический |
800x600 |
256 |
- |
104h |
Графический |
1024x768 |
16 |
- |
105h |
Графический |
1024x768 |
256 |
- |
106h |
Графический |
1280x1024 |
16 |
- |
107h |
Графический |
1280x1024 |
256 |
- |
108h |
Текстовый |
80x60 |
16 |
- |
109h |
Текстовый |
132x25 |
16 |
- |
10Ah |
Текстовый |
132x43 |
16 |
- |
10Bh |
Текстовый |
132x50 |
16 |
- |
10Ch |
Текстовый |
132x60 |
16 |
- |
10Dh |
Графический |
320x200 |
32K |
(1:5:5:5) |
10Eh |
Графический |
320x200 |
64K |
(5:6:5) |
10Fh |
Графический |
320x200 |
16.8M |
(8:8:8) |
110h |
Графический |
640x480 |
32K |
(1:5:5:5) |
111h |
Графический |
640x480 |
64K |
(5:6:5) |
112h |
Графический |
640x480 |
16.8M |
(8:8:8) |
113h |
Графический |
800x600 |
32K |
(1:5:5:5) |
114h |
Графический |
800x600 |
64K |
(5:6:5) |
115h |
Графический |
800x600 |
16.8M |
(8:8:8) |
116h |
Графический |
1024x768 |
32K |
(1:5:5:5) |
117h |
Графический |
1024x768 |
64K |
(5:6:5) |
118h |
Графический |
1024x768 |
16.8M |
(8:8:8) |
119h |
Графический |
1280x1024 |
32K |
(1:5:5:5) |
11Ah |
Графический |
1280x1024 |
64K |
(5:6:5) |
11Bh |
Графический |
1280x1024 |
16.8M |
(8:8:8) |
Перед описанием функций VESA необходимо разъяснить некоторые термины. Поскольку объем видеопамяти существенно превосходит размер окна, выделяемого в адресном пространстве видеоадаптеру, его необходимо переключать на различные участки видеопамяти (обычно говорят: "переключать банки видеопамяти"). При этом минимальное расстояние между двумя адресами в видеопамяти, которые могут отображаться на один и тот же адрес в окне, называется granularity (от английского granulate - дробить). Размер окна (или банка) должен быть большим или равным granularity. Если мы разделим абсолютный адрес в видеопамяти на granularity, то частным будет номер банка, а остатком - смещение относительно начала окна.
Похожий механизм адресации реализован в процессорах семейства х86, в которых размер одного сегмента (банка) равен 64 Кбайт, но можно изменять его положение в памяти, варьируя содержимое сегментного регистра, т. е. номер банка. Таким образом, granularity для сегментированного адреса процессора равно 16 байт.
Стандарт предполагает, что видеоадаптер имеет одно или два окна. Введение двух окон позволило копировать информацию из одного какого-либо места видеопамяти в любое другое без использования буфера оперативной памяти. При этом либо окнам отводятся различные диапазоны адресного пространства, либо они накладываются друг на друга, совмещая одно и то же адресное пространство. В последнем случае одно окно доступно только для записи, а другое - только для чтения. Однако практически все видеоадаптеры считывают данные из видеопамяти в несколько раз (нередко и в десятки раз) медленнее, чем записывают в нее, поэтому пересылать данные из одной области видеопамяти в другую или считывать их без крайней необходимости нецелесообразно. Следовательно, для реального программирования достаточно одного доступного для записи окна даже в том случае, когда видеоадаптер реально поддерживает два.
Все функции VESA доступны через 4Fh функцию 10h прерывания (в регистр AH помещается число 4Fh, а в регистр AL - номер функции). В регистр AX при этом возвращается статус завершения функции, а в AL - 4Fh (обратите внимание, при вызове 4Fh помещается в AH, а вернуться оно должно в AL, если это не так, то стандарт не поддерживается). При успешном завершении функции в AH возвращается ноль, а при неудачном - код ошибки.
В версии 1.2 предусмотрено девять функций (с номерами от 0 до 8), а в версии 2.0 добавлено еще две. Мы рассмотрим только первые девять, поскольку они поддерживаются обеими версиями стандарта.
Функция 0 возвращает информацию о версии VESA и производителе видеоплаты. Перед ее вызовом необходимо выделить в нижней памяти буфер длиной 256 байт. В версии 2.0 функция позволяет получить некоторую дополнительную информацию, если в первые четыре байта выделенного буфера предварительно записать 4-байтную сигнатуру "VBE2". При этом размер буфера должен составлять 512 байт.
3. ГРАФИЧЕСКИЕ АКСЕЛЕРАТОРЫ
Графические акселераторы (ускорители) - специализированные графические сопроцессоры, увеличивающие эффективность видеосистемы. Их применение освобождает центральный процессор от большого объёма операций с видеоданными, так как акселераторы самостоятельно вычисляют, какие пиксели отображать на экране и каковы их цвета. Изображение, которое мы видим на экране монитора, представляет собой выводимое специальным цифроаналоговым преобразователем RAMDAC (Random Access Memory Digital to Analog Converter) и устройством развертки содержимое видеопамяти.
Это содержимое может изменяться
как центральным процессором, так и графическим
процессором видеокарты— ускорителем
двухмерной графики (синонимы:2D-ускоритель,2D-
В свое время для повышения
Современные2D-ускорители имеют 64- или128-разрядную шину данных, причем для эффективного использования возможностей этой шины на видеокарте должно быть установлено2 или 4 Мбайт видеопамяти соответственно, иначе данные будут передаваться по вдвое более узкой шине с соответствующей потерей в быстродействии.
Можно сказать, что к настоящему моменту 2D-ускорители достигли совершенства. Все они работают столь быстро, что несмотря на то, что их производительность на специальных тестах может отличаться от модели к модели на 10-15%,пользователь,скорее всего, не заметит этого различия. Поэтому при выборе 2D-ускорителя следует обратить внимание на другие факторы: качество изображения, наличие дополнительных функций, качество и функциональность драйверов, поддерживаемые частоты кадровой развертки, совместимость с VESA (для любителей DOS-игр) и т. п. Микросхемы2D-ускорителей в настоящее время производят ATI, Cirrus Logic, Chips&Technologies, Matrox, Number Nine, S3, Trident, Tseng Labs и другие компании.