Меню
Главная
Случайная статья
Настройки
|
VGA (англ. Video Graphics Array) — компонентный видеоинтерфейс, используемый в мониторах и видеоадаптерах. Выпущен IBM в 1987 году для компьютеров PS/2 Model 50 и более старших[1].
Видеоадаптер VGA, в отличие от предыдущих видеоадаптеров IBM (MDA, CGA, EGA), использует аналоговый сигнал для передачи цветовой информации. Переход на аналоговый сигнал был обусловлен необходимостью сокращения числа проводов в кабеле. Также аналоговый сигнал давал возможность использовать VGA-мониторы с последующими видеоадаптерами, которые могут выводить большее количество цветов[2].
Официальным последователем VGA стал стандарт IBM XGA, фактически же он был замещен различными расширениями к VGA, известными как «Super VGA» (SVGA).
Термин VGA также используется для обозначения 15-контактного разъёма VGA для передачи аналоговых видеосигналов при различных разрешениях.
VGA отключен в UEFI системах.
Содержание
Архитектура видеоадаптера VGA
VGA (так же, как и EGA) состоит из следующих основных подсистем (словом «секвенсер» называли[кто?] набор регистров управления доступом к плоскостям видеопамяти):
- Графический контроллер (Graphics Controller), посредством которого происходит обмен данными между центральным процессором и видеопамятью. Имеет возможность выполнять битовые операции над передаваемыми данными.
- Видеопамять (Display Memory), в которой размещаются данные, отображаемые на экране монитора. 256 кБ DRAM разделены на четыре цветовых слоя по 64 кБ.
- Последовательный преобразователь (Serializer или Sequencer) — преобразует данные из видеопамяти в поток битов, передаваемый контроллеру атрибутов[3].
- Контроллер атрибутов (Attribute Controller) — с помощью палитры преобразует входные данные в цветовые значения.
- Синхронизатор (Sequencer) — управляет временными параметрами видеоадаптера и переключением цветовых слоёв.
- Контроллер ЭЛТ (CRT Controller) — генерирует сигналы синхронизации для ЭЛТ[4][5].
В отличие от CGA и EGA, основные подсистемы располагаются в одной микросхеме, что позволяет уменьшить размер видеоадаптера (EGA тоже был реализован в одном чипе, по крайней мере его тайваньские неоригинальные клоны). В компьютерах PS/2 видеоадаптер VGA интегрирован в материнскую плату[2].
Отличия от EGA
VGA полностью аналогичен EGA (включая плоскостную видеопамять в 16-цветных режимах и секвенсор для доступа процессора к ней), за исключением нижеследующего:
- иной разъем и кабель к монитору (и иные мониторы), аналоговый, а не 2 бита на цвет. Этот разъем и кабель не менялись около 15 лет (до появления цифровых пакетно-ориентированных технологий DVI, HDMI и DisplayPort, пришедших из мира бытовой видеотехники) и использовались далее в куда более высоких разрешениях. Даже стандартные VGA мониторы сплошь и рядом были способны показывать режим 800600 при использовании с более современной видеокартой (всё зависело от качества блоков развёртки монитора и их способности не сорвать генерацию на таких повышенных частотах). В настоящее время (все современные видеокарты совместимы с VGA сверху вниз) слово «VGA» в обиходе означает именно этот тип подключения монитора, ныне устаревший, но всё ещё актуальный;
- 18-битные цвета в палитре вместо 6-битных, такой богатый набор позволял, например, реализовать ночь, плохую погоду, «заколдованные» режимы и мерцающие цвета в играх одной лишь палитрой (как в игре «Ultima VII»);
- наличие 256-цветных режимов, стандартный — 320200, недокументированными (на деле документированными в документациях на аппаратуру VGA, но не включёнными в BIOS и его документацию) ухищрениями можно было получить 320240 (квадратные пиксели, т. н. «режим VGA-X») и выше;
- максимальный 16-цветный режим — 640480 (квадратные пиксели);
- во всех 200-строчных графических режимах скан-линия повторялась 2 раза, что давало 400 физических строк развёртки монитора, что сильно улучшало качество картинки даже в младших режимах (отсутствие щелей между строк развёртки);
- высота ячейки знакогенератора — 16 скан-линий, а не 14, как у EGA, что давало те же 400 строк развёртки во всех текстовых режимах (кроме режимов совместимости со знакогенератором EGA). Таким образом, VGA всегда использовал 400 строк развёртки, кроме двух старших 16-цветных режимов, где их было 480 и 350. Режим VGA-X также использовал 480 строк;
- все регистры (палитры, секвенсера и т. д.) доступны на чтение, EGA имел ряд регистров «только для записи» (например, палитра).
Текстовые режимы
В стандартных текстовых режимах символы формируются в ячейке 916 пикселов, возможно использование шрифтов других размеров: 8-9 пикселов в ширину и 1-32 пиксела в высоту. Размеры самих символов, как правило, меньше, так как часть пространства уходит на создание зазора между символами. Функция для выбора размера шрифта в BIOS отделена от функции выбора видеорежима, что позволяет использовать различные комбинации режимов и шрифтов. Имеется возможность загрузки восьми и одновременного вывода на экран двух различных шрифтов[2][6].
В VGA BIOS хранятся следующие виды шрифтов и функции для их загрузки и активации:
- 816 пикселей (стандартный шрифт VGA),
- 814 (для совместимости с EGA),
- 88 (для совместимости с CGA).
Как правило, эти шрифты соответствуют кодовой странице CP437. Также поддерживается программная загрузка шрифтов, которую можно использовать, например, для русификации[7].
Доступны следующие стандартные режимы:
- 4025 символов, 16 цветов, разрешение 360400 пикс.;
- 8025 символов, 16 цветов, разрешение 720400 пикс.;
- 8025 символов, монохромный, разрешение 720400 пикс.[4]
Хотя в текстовых режимах VGA одно знакоместо имеет ширину 9 пикселей, в данных знакогенератора определяются только 8 из них (8 бит одного байта на строку); пиксели правой колонки символьной матрицы определяется автоматически: пустыми (для символов в диапазоне 0x00-0xAF и 0xE0-0xFF) или такими же, как пикселы 8-й колонки (для символов псевдографики в диапазоне 0xB0-0xDF). Режим повтора 8й колонки мог быть отключен через регистр (через запрос BIOS никак). Так же, через регистры, можно было переключить текстовый режим c 9 колонок на 8 колонок для символа (так же как переключались графические режимы 320/360 точек в строке), что было нужно для некоторых матриц ноутбуков. Стандартные шрифты при этом обычно слипались, и нужно было загружать собственные (в BIOS более узкие шрифты обычно были прописаны вендором, но русские шрифты загружались сторонними программами, например KeyRus).
Используя шрифты меньших размеров, чем стандартный 816, можно увеличить количество строк в текстовом режиме. Например, если включить шрифт 814, то будет доступно 28 строк. Включение шрифта 88 увеличивает количество строк до 50 (аналогично режиму EGA 8043)[8][9].
В текстовых режимах для каждой ячейки с символом можно указать атрибут, задающий способ отображения символа. Существует два отдельных набора атрибутов — для цветных режимов и для монохромных.
Атрибуты цветных текстовых режимов позволяют выбрать один из 16 цветов символа, один из 8 цветов фона и включить или отключить мерцание (возможность выбора мерцания можно заменить на возможность выбора одного из 16 цветов фона), что совпадает с возможностями CGA.
Атрибуты монохромных режимов совпадают с атрибутами, доступными у MDA, и позволяют включать повышенную яркость символа, подчёркивание, мерцание, инверсию и некоторые их комбинации[2].
Графические режимы
В отличие от своих предшественников (CGA и EGA) видеоадаптер VGA имел видеорежим с квадратными пикселами (то есть, на экране с соотношением сторон 4:3 соотношение горизонтального и вертикального разрешений было также 4:3). У адаптеров CGA и EGA пикселы были вытянуты по вертикали.
Стандартные графические режимы- 320200 пикс., 4 цвета.
- 320200 пикс., 16 цветов.
- 320200 пикс., 256 цветов (новый для VGA).
- 640200 пикс., 2 цвета.
- 640200 пикс., 16 цветов.
- 640360 пикс., монохромный.
- 640360 пикс., 16 цветов.
- 640480 пикс., 2 цвета. При разрешении 640480 пикселей имеет пропорции 1:1 (новый для VGA).
- 640480 пикс., 16 цветов (новый для VGA)[4].
Нестандартные графические режимы (X-режимы[англ.])
Перепрограммирование VGA позволяло достичь более высоких разрешений по сравнению со стандартными режимами VGA. Наиболее распространённые режимы таковы:
- 320200, 256 цветов, 4 страницы. Ничем внешне не отличающийся от режима 13h (320200, 256 цветов), этот режим имел четыре видеостраницы объёмом чуть менее 64 кБ каждая. Это позволяло реализовать двойную и даже тройную буферизацию.
- 320240, 256 цветов, 2 страницы. В этом режиме страниц меньше, зато пиксели имеют пропорции 1:1 (квадратные).
- 360480, 256 цветов, 1 страница. Наибольшее разрешение на 256 цветах, которое позволяет VGA.
Во всех этих режимах используется плоскостная организация видеопамяти, концептуально похожая на используемую в 16-цветных режимах, но использующая для формирования цвета по 2 бита из каждой плоскости, а не по 1 — то есть биты 0-1 байта 0 в плоскости 0 давали биты 0-1 цвета пиксела 0, те же биты в плоскости 1 — биты 2-3 цвета, и т. д. Следующие биты того же байта давали цвета следующих пикселов, то есть 4 расположенные «один параллельно другому» по одному адресу байта в 4 плоскостях задавали цвет 4 пикселов.
Такая организация видеопамяти позволяла использовать всю видеопамять карты, а не только плоскость 0 в 64К, для формирования 256-цветного изображения, что давало возможность использования высоких разрешений или многих видеостраниц.
Для работы с такой памятью использовался тот же секвенсер, что и в 16-цветных режимах.
Зато из-за особенностей контроллера видеопамяти копирование данных в видеопамять происходит вчетверо быстрее, чем в режиме 13h[англ.] (это сильно зависит от конкретного машинного кода, исполняющего копирование, и конкретного сценария рисования, а именно заливки сплошным цветом, в общем случае плоскостная видеопамять куда медленнее обычной, и именно потому в SVGA от неё отказались полностью).
Термин «X-режим» (англ. Mode X) был придуман Майклом Абрашем в 1991 году для обозначения нестандартного режима 320240 с 256 цветами. Этот режим был открыт (путём изучения IBM-овской документации на аппаратуру VGA, которая в те времена была защищена на правовом уровне и не ходила в виде файлов в публичном доступе, опубликованы были только вызовы VGA BIOS, которые не умели включать эти режимы) различными программистами независимо друг от друга, но стал известным благодаря статьям Майкла Абраша в журнале «Dr. Dobb’s Journal»[10].
См. также
Примечания
- Wilton, Richard. IBM Video Hardware and Firmware // Programmer's Guide to PC and Ps/2 Video Systems. — Microsoft Press, 1987. — С. 544. — ISBN 1-55615-103-9.
- 1 2 3 4
Thompson, Stephen. VGA-sign choices for a new video subsystem (англ.). IBM Systems Journal (1988). Дата обращения: 15 декабря 2006. Архивировано 25 августа 2011 года.
- Neal, J. D. VGA Sequencer Operation (англ.). FreeVGA Project (1998). Дата обращения: 23 февраля 2007. Архивировано 25 августа 2011 года.
- 1 2 3 Scott, Michael. comp.sys.ibm.pc.hardware.video FAQ (англ.) (1997). Дата обращения: 23 февраля 2007. Архивировано 19 октября 2008 года.
- Фролов, Александр; Фролов, Григорий.: . Архитектура видеоадаптеров EGA и VGA (неопр.). Программирование видеоадаптеров CGA, EGA и VGA (1992). Дата обращения: 23 февраля 2007. Архивировано 25 августа 2011 года.
-
Neal, J. D. VGA Text Mode Operation (англ.). FreeVGA Project (1998). Дата обращения: 15 декабря 2006. Архивировано 25 августа 2011 года.
- Фролов, Александр; Фролов, Григорий.: . Приложения (неопр.). Программирование видеоадаптеров CGA, EGA и VGA (1992). Дата обращения: 23 февраля 2007. Архивировано 25 августа 2011 года.
-
Dnes, Walter. Nicer console textmodes (англ.). Дата обращения: 11 января 2007. Архивировано 7 декабря 2003 года.
-
Rollins, Dan. INT 10H 11H: EGA/VGA Character Generator Functions (англ.). Tech Help! (1997). Дата обращения: 11 января 2007. Архивировано 25 августа 2011 года.
- Abrash, Michael. Mode X: 256-Color VGA Magic (англ.). Graphics Programming Black Book (2001). Дата обращения: 30 марта 2007. Архивировано из оригинала 30 сентября 2007 года.
Ссылки
|
|