Программирование видеоадаптеров.
© Александр Фролов, Григорий Фролов
Том 21, М.: Диалог-МИФИ, 1993.
1.Видеоподсистема компьютера
Видеоподсистема любого компьютера состоит из двух основных частей - видеоадаптера и монитора, подключаемого к видеоадаптеру.
Видеоадаптер может быть оформлен в виде отдельной платы, вставляемой в слот расширения компьютера, или может быть расположен непосредственно на системной плате компьютера.
Видеоадаптер включает в себя видеопамять, в которой хранится изображение, отображаемое на экране монитора, постоянное запоминающее устройство, в котором записаны наборы шрифтов, отображаемые видеоадаптером в текстовых и графических режимах, а также функции BIOS для работы с видеоадаптером. Кроме того, видеоадаптер содержит сложное управляющее устройство, обеспечивающее обмен данными с компьютером, формирование изображения и выполняющее некоторые другие действия.
Видеоадаптеры могут работать в различных текстовых и графических режимах, различающихся разрешением, количеством отображаемых цветов и некоторыми другими характеристиками.
Сам видеоадаптер не отображает данные. Для этого к видеоадаптеру необходимо подключить монитор. Изображение, создаваемое компьютером, формируется видеоадаптером и передается на монитор для предоставления ее конечному пользователю.
Существует несколько основных способов формирования изображения на экране монитора. Наиболее распространены так называемые мониторы с электронно-лучевыми трубками (ЭЛТ). Вы наверняка знакомы с электронно-лучевыми трубками. Они используются практически во всех бытовых телевизионных приемниках.
Применение ЭЛТ в блокнотных и переносных компьютерах невозможно вследствие ее большого размера и большой потребляемой мощности. Поэтому для них используют жидкокристаллические и газоразрядные панели. В настоящее время разработаны и выпускаются компьютеры с цветными жидкокристаллическими экранами, не уступающие по качеству многим мониторам с электронно-лучевыми трубками.
Сейчас существует огромное количество всевозможных видеоадаптеров, начиная от простейших монохромных, не поддерживающих графические режимы, и кончая современными видеоадаптерами со специальными графическими процессорами, воспроизводящими порядка 16,7 миллионов различных цветов и подключаемых для повышения быстродействия непосредственно к локальной шине процессора.
Можно выделить несколько наиболее общих типов или подмножеств видеоадаптеров. Деление проводится по основным характеристикам видеоадаптеров, таким как поддержка текстовых и графических режимов, максимальное количество одновременно отображаемых цветов, максимальная разрешающая способность, наличие специализированных схем управления - акселераторов или графических сопроцессоров, а также по способу подключения к компьютеру и монитору.
Большинство видеоадаптеров может работать как в текстовых, так и в графических режимах. Возможность отображения графической информации отсутствует только у самого первого видеоадаптера фирмы IBM - MDA. Он использовался вместе с монохромным монитором. Сегодня видеоадаптер MDA и монохромный монитор стали большой редкостью. Они не отвечают потребностям современных пользователей.
Отсутствие возможности отображения графической информации ограничивало сферу использования компьютеров и вскоре небольшая фирма Hercules Computer Technology, Inc. выпустила монохромный видеоадаптер Hercules, который уже мог выводить графику и обеспечивал большую разрешающую способность. Также как и адаптер MDA, видеоадаптер Hercules можно было подключить к монохромному монитору.
Вскоре появился и первый видеоадаптер, позволяющий отображать не только монохромную, но и цветную информацию, как в текстовом, так и в графическом режиме. Этим видеоадаптером стал адаптер CGA. С его помощью компьютер мог выводить 16-цветную текстовую и 4-цветную графическую информацию. Однако он имел очень низкую разрешающую способность - 320х200 пикселов (пиксел - элементарный элемент изображения, точка). В результате такой низкой разрешающей способности изображение на экране представляло собой совокупность видимых точек и быстро утомляло глаза пользователя.
Видеоадаптер CGA можно использовать с композитными мониторами (обычными цветными или черно-белыми бытовыми телевизорами), а также со специальными цифровыми цветными мониторами.
Затем прогресс пошел по пути увеличения разрешающей способности и количества одновременно отображаемых цветов. Были созданы видеоадаптеры EGA и VGA. Видеоадаптер EGA уже мог отображать 16-цветную графическую информацию с разрешением 640х350 пикселов, а VGA - даже с разрешением 800х600 пикселов. Кроме того, в видеоадаптере VGA появился графический режим с разрешением 320х200 пикселов при возможности одновременного отображения 256 различных цветов.
С видеоадаптером EGA можно было использовать либо цветной монитор, либо улучшенный цветной монитор. К видеоадаптерам VGA нужно подключать специальные многочастотные аналоговые мониторы.
Однако с появлением операционной системы Windows требования к видеоподсистеме компьютера многократно возросли. Ни видеоадаптер EGA, ни видеоадаптер VGA не обеспечивают необходимой разрешающей способности и количества одновременно отображаемых цветов. Поэтому многие фирмы приступили к выпуску собственных расширенных версий видеоадаптера VGA. Они получили общее название SVGA (Super VGA). Видеоадаптеры SVGA не являются устоявшимся стандартом, наподобие EGA и VGA. Различные фирмы выпускают адаптеры SVGA, имеющие различные возможности. При этом они не всегда совместимы друг с другом.
Появились видеоадаптеры SVGA, которые работают в режимах High Color и True Color. В режиме High Color видеоадаптер может одновременно отображать на экране 32768 или 65536 различных цветов. Режим True Color еще более многоцветный. В этом режиме видеоадаптер может одновременно отображать более чем 16,7 миллионов различных цветов. Качество изображения, достигаемое такими видеоадаптерами (при условии использования с ними соответствующих мониторов), почти не уступает качеству цветных слайдов.
Способность видеоадаптера отображать большое количество цветов с высоким разрешением тесно связана с объемом его видеопамяти. Чем больше объем видеопамяти адаптера, тем больше цветов он сможет отобразить и тем выше будет разрешающая способность.
Видеопамять адаптера CGA имела объем всего 16 Кбайт. На современных адаптерах устанавливают как минимум 256 Кбайт памяти. Такого объема видеопамяти достаточно для отображения 16 различных цветов при разрешении 800х600 пикселов. Режимы с большим разрешением или с большим количеством цветов недоступны.
Из следующей таблицы вы можете определить минимальный объем видеопамяти в Кбайтах, необходимый для данного разрешения и количества цветов:
Количество |
Разрешение |
цветов |
640х480 |
800х600 |
1024х768 |
1280х1024 |
1600х1200 |
16 |
150 |
235 |
384 |
640 |
938 |
256 |
300 |
469 |
768 |
1280 |
1875 |
65.536 |
600 |
938 |
1536 |
2560 |
3750 |
16777216 |
900 |
1407 |
2304 |
3840 |
5625 |
Например, в режиме видеоадаптера, когда он одновременно отображает 16,7 миллионов цветов при разрешении 1024х768 пикселов, объем видеопамяти должен составлять 2304 Кбайт. Когда вы будете приобретать новый видеоадаптер, следите, чтобы он имел достаточный для вас объем видеопамяти.
Выпускаются адаптеры с видеопамятью двух типов - DRAM (динамическая оперативная память) и VRAM (специальная видеопамять). Различие между DRAM и VRAM состоит в том, что к памяти VRAM могут одновременно и независимо получить доступ два устройства. Поэтому VRAM иногда называют двух портовой памятью.
Видеоадаптеры, в которых установлена память VRAM обладают большей производительностью, по сравнению с видеоадаптерами, имеющими память DRAM. Однако стоимость таких видеоадаптеров значительно выше.
Для компьютерных систем, критичных к быстродействию видеоподсистемы, выпускаются специальные видеоадаптеры с графическими сопроцессорами. Такие видеоадаптеры могут брать на себя часть вычислительной работы, связанной с построением изображения. Например, они могут самостоятельно построить окружность, определенную ее центром и радиусом, могут аппаратно выполнять перемещение областей изображений на экране.
Для облегчения использования графических сопроцессоров вместе с ними поставляются драйверы к различным операционным системам и отдельным программам. Большинство видеоадаптеров продаются с драйверами для операционных систем Windows и OS/2, а также с драйверами для системы автоматизированного проектирования AutoCAD. Таким образом, в большинстве случаев у вас нет необходимости самим программировать графические сопроцессоры.
Частным случаем видеоадаптеров с графическими сопроцессорами являются графические акселераторы. Они специально предназначены для повышения производительности видеоподсистемы компьютера при работе в среде Windows (а также Windows NT, OS/2). Ориентация таких видеоадаптеров на Windows состоит в том, что они могут выполнять характерные для Windows операции с изображениями на аппаратном уровне. Например, они могут аппаратно реализовывать указатель (курсор) мыши размером 64х64 пиксела, могут аппаратно выполнять перемещение окон по экрану и т. д. Во всех этих случаях акселератор Windows, выполняет работу, которую при использовании обычных видеоадаптеров VGA и SVGA, делал центральный процессор компьютера.
Еще раз подчеркнем, что в отличие от более универсальных графических сопроцессоров, акселератор Windows ориентирован исключительно на использование совместно с Windows. Производительность графического акселератора Windows при использовании его с программами MS-DOS может быть даже ниже, чем у видеоадаптеров SVGA. Если вы предполагаете использовать компьютер для выполнения программ в среде Windows, вам крайне желательно приобрести графический акселератор Windows.
Чтобы увеличить производительность работы видеоадаптеров, на новых моделях видеоадаптеров устанавливают 64-разрядные графические сопроцессоры. Они значительно превосходят старые 16 и 32-разрядные модели адаптеров. Примером видеоадаптера с 64-разрядным графическим сопроцессором может служить плата Diamond Stealth 64.
Практически все платы графического акселератора и графические сопроцессоры могут работать в режимах High Color и True Color. Однако при таких объемах изображения, которые хранит видеопамять в режимах High Color и True Color, количество информации, передаваемое из оперативной памяти компьютера в видеопамять адаптера становится просто огромно. В этом случае замедление в отображении становиться видимым даже при использовании видеоадаптером прямого доступа к оперативной памяти компьютера.
Узким местом становиться системная шина компьютера. Пропускная способность системных шин компьютера EISA и ISA не превышает 10 Мбайт/с. Все современные видеоадаптеры подключаются к локальной шине процессора. Такой способ подключения видеоадаптера обеспечивает высокую скорость обмена информацией между оперативной памятью компьютера и центральным процессором с одной стороны и видеоадаптером с другой. Высокая скорость обмена информацией между компьютером и видеоадаптером, в свою очередь, гарантирует высокую производительность видеоподсистемы компьютера. Сегодня выпускаются видеоадаптеры, предназначенные для подключения к локальным шинам VLB и PCI.
|