VGA

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
VGA
Логотип ВикискладаМедиафайлы на Викискладе

VGA(англ.Video Graphics Array) —компонентныйвидеоинтерфейс, используемый вмониторахивидеоадаптерах.ВыпущенIBMв1987 годудля компьютеровPS/2Model 50 и более старших[1].

Видеоадаптер VGA, в отличие от предыдущих видеоадаптеровIBM(MDA,CGA,EGA), используетаналоговый сигналдля передачи цветовой информации. Переход нааналоговый сигналбыл обусловлен необходимостью сокращения числа проводов в кабеле. Такжеаналоговый сигналдавал возможность использовать VGA-мониторыс последующимивидеоадаптерами,которые могут выводить большее количество цветов[2].

Официальным последователем VGA стал стандартIBMXGA,фактически же он был замещен различными расширениями к 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 мониторы сплошь и рядом были способны показывать режим 800×600 при использовании с более современнойвидеокартой(всё зависело от качества блоковразвёртки монитораи их способности не сорвать генерацию на таких повышенных частотах). В настоящее время (все современныевидеокартысовместимы с VGA сверху вниз) слово «VGA» в обиходе означает именно этот тип подключениямонитора,ныне устаревший, но всё ещё актуальный;
  • 18-битные цветав палитре вместо6-битных,такой богатый набор позволял, например, реализовать ночь, плохую погоду, «заколдованные» режимы и мерцающие цвета в играх одной лишь палитрой (как в игре «Ultima VII»);
  • наличие 256-цветных режимов, стандартный — 320×200, недокументированными (на деле документированными в документациях на аппаратуру VGA, но не включёнными вBIOSи его документацию) ухищрениями можно было получить 320×240 (квадратныепиксели,т. н. «режим VGA-X») и выше;
  • максимальный 16-цветный режим — 640×480 (квадратные пиксели);
  • во всех 200-строчных графических режимах скан-линия повторялась 2 раза, что давало 400 физических строк развёртки монитора, что сильно улучшало качество картинки даже в младших режимах (отсутствие щелей между строк развёртки);
  • высота ячейки знакогенератора — 16 скан-линий, а не 14, как уEGA,что давало те же 400 строк развёртки во всех текстовых режимах (кроме режимов совместимости со знакогенераторомEGA). Таким образом, VGA всегда использовал 400 строкразвёртки,кроме двух старших 16-цветных режимов, где их было 480 и 350. Режим VGA-X также использовал 480 строк;
  • всерегистры(палитры, секвенсера и т. д.) доступны на чтение,EGAимел ряд регистров «только для записи» (например, палитра).

Текстовые режимы

[править|править код]

В стандартныхтекстовых режимахсимволы формируются в ячейке 9×16пикселов,возможно использованиешрифтовдругих размеров: 8-9 пикселов в ширину и 1-32 пиксела в высоту. Размеры самих символов, как правило, меньше, так как часть пространства уходит на создание зазора между символами. Функция для выбора размера шрифта вBIOSотделена от функции выбора видеорежима, что позволяет использовать различные комбинации режимов и шрифтов. Имеется возможность загрузки восьми и одновременного вывода на экран двух различных шрифтов[2][6].

В VGABIOSхранятся следующие виды шрифтов и функции для их загрузки и активации:

  • 8×16 пикселей (стандартный шрифт VGA),
  • 8×14 (для совместимости сEGA),
  • 8×8 (для совместимости сCGA).

Как правило, эти шрифты соответствуют кодовой страницеCP437.Также поддерживается программная загрузка шрифтов, которую можно использовать, например, длярусификации[7].

Доступны следующие стандартные режимы:

  • 40×25 символов, 16 цветов, разрешение 360×400 пикс.;
  • 80×25 символов, 16 цветов, разрешение 720×400 пикс.;
  • 80×25 символов, монохромный, разрешение 720×400 пикс.[4]

Хотя в текстовых режимах VGA одно знакоместо имеет ширину 9 пикселей, в данных знакогенератора определяются только 8 из них (8 бит одного байта на строку); пиксели правой колонки символьной матрицы определяется автоматически: пустыми (для символов в диапазоне 0x00-0xAF и 0xE0-0xFF) или такими же, как пикселы 8-й колонки (длясимволов псевдографикив диапазоне 0xB0-0xDF). Режим повтора 8й колонки мог быть отключен через регистр (через запрос BIOS никак). Так же, через регистры, можно было переключить текстовый режим c 9 колонок на 8 колонок для символа (так же как переключались графические режимы 320/360 точек в строке), что было нужно для некоторых матриц ноутбуков. Стандартные шрифты при этом обычно слипались, и нужно было загружать собственные (в BIOS более узкие шрифты обычно были прописаны вендором, но русские шрифты загружались сторонними программами, например KeyRus).

Используя шрифты меньших размеров, чем стандартный 8×16, можно увеличить количество строк в текстовом режиме. Например, если включить шрифт 8×14, то будет доступно 28 строк. Включение шрифта 8×8 увеличивает количество строк до 50 (аналогичнорежиму EGA 80×43)[8][9].

В текстовых режимах для каждой ячейки с символом можно указатьатрибут,задающий способ отображения символа. Существует два отдельных набора атрибутов — для цветных режимов и для монохромных.

Атрибуты цветных текстовых режимов позволяют выбрать один из 16 цветов символа, один из 8 цветов фона и включить или отключить мерцание (возможность выбора мерцания можно заменить на возможность выбора одного из 16 цветов фона), что совпадает с возможностями CGA.

Атрибуты монохромных режимов совпадают с атрибутами, доступными у MDA, и позволяют включать повышенную яркость символа, подчёркивание, мерцание, инверсию и некоторые их комбинации[2].

Графические режимы

[править|править код]

В отличие от своих предшественников (CGA и EGA) видеоадаптер VGA имел видеорежим с квадратными пикселами (то есть, на экране с соотношением сторон 4:3 соотношение горизонтального и вертикального разрешений было также4:3). У адаптеровCGAиEGAпикселы были вытянуты по вертикали.

Стандартные графические режимы

[править|править код]
  • 320×200 пикс., 4 цвета.
  • 320×200 пикс., 16 цветов.
  • 320×200 пикс., 256 цветов (новый для VGA).
  • 640×200 пикс., 2 цвета.
  • 640×200 пикс., 16 цветов.
  • 640×360 пикс., монохромный.
  • 640×360 пикс., 16 цветов.
  • 640×480 пикс., 2 цвета. При разрешении 640×480 пикселей имеет пропорции1:1(новый для VGA).
  • 640×480 пикс., 16 цветов (новый для VGA)[4].

Нестандартные графические режимы (X-режимы[англ.])

[править|править код]

Перепрограммирование VGA позволяло достичь более высоких разрешений по сравнению со стандартными режимами VGA. Наиболее распространённые режимы таковы:

  • 320×200, 256 цветов, 4 страницы. Ничем внешне не отличающийся от режима 13h (320×200, 256 цветов), этот режим имел четыре видеостраницы объёмом чуть менее 64 кБ каждая. Это позволяло реализоватьдвойнуюи дажетройную буферизацию.
  • 320×240, 256 цветов, 2 страницы. В этом режиме страниц меньше, зато пиксели имеют пропорции 1:1 (квадратные).
  • 360×480, 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 году для обозначения нестандартного режима 320×240 с 256 цветами. Этот режим был открыт (путём изученияIBM-овской документации на аппаратуру VGA, которая в те времена была защищена на правовом уровне и не ходила в виде файлов в публичном доступе, опубликованы были только вызовы VGABIOS,которые не умели включать эти режимы) различными программистами независимо друг от друга, но стал известным благодаря статьямМайкла Абрашав журнале «Dr. Dobb’s Journal»[10].

  1. 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.
  2. 1234 Thompson, StephenVGA-sign choices for a new video subsystem(англ.).IBM Systems Journal(1988). Дата обращения: 15 декабря 2006.Архивировано25 августа 2011 года.
  3. Neal, J. D.VGA Sequencer Operation(англ.).FreeVGA Project(1998). Дата обращения: 23 февраля 2007.Архивировано25 августа 2011 года.
  4. 123Scott, Michaelcomp.sys.ibm.pc.hardware.video FAQ(англ.)(1997). Дата обращения: 23 февраля 2007.Архивировано19 октября 2008 года.
  5. Фролов, Александр; Фролов, Григорий.:Архитектура видеоадаптеров EGA и VGA.Программирование видеоадаптеров CGA, EGA и VGA(1992). Дата обращения: 23 февраля 2007.Архивировано25 августа 2011 года.
  6. Neal, J. D.VGA Text Mode Operation(англ.).FreeVGA Project(1998). Дата обращения: 15 декабря 2006.Архивировано25 августа 2011 года.
  7. Фролов, Александр; Фролов, Григорий.:Приложения.Программирование видеоадаптеров CGA, EGA и VGA(1992). Дата обращения: 23 февраля 2007.Архивировано25 августа 2011 года.
  8. Dnes, WalterNicer console textmodes(англ.).Дата обращения: 11 января 2007.Архивировано7 декабря 2003 года.
  9. Rollins, DanINT 10H 11H: EGA/VGA Character Generator Functions(англ.).Tech Help!(1997). Дата обращения: 11 января 2007.Архивировано25 августа 2011 года.
  10. Abrash, MichaelMode X: 256-Color VGA Magic(англ.).Graphics Programming Black Book(2001). Дата обращения: 30 марта 2007. Архивировано изоригинала30 сентября 2007 года.