VGA

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

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

Стандартом-последователем VGA официально считается стандарт IBM XGA. По факту, он был замещен различными расширениями к VGA. Эти расширения получили название SVGA.

Кроме того, понятие VGA зачастую используется и в качестве обозначения разрешения 640×480, вне зависимости от аппаратного обеспечения по выводу изображения. Впрочем, это не совсем правильно (так, режим 640х480 с 16-, 24- и 32-битной глубиной цвета не имеет поддержки адаптером VGA, но при этом он может быть сформирован на мониторе, поддерживающем адаптеры VGA. Это возможно реализовать благодаря SVGA-адаптерам. Кроме того, данный термин применяется для обозначения 15-контактного D-subminiature разъема VGA, который предназначен для передачи аналоговых видеосигналов с разными разрешениями.

Архитектура VGA

Как и его собрат EGA, интерфейс VGA включает в себя следующие подсистемы, они выступают в роли главных:

  • Графический контроллер. Он обеспечивает обмен данными, осуществляющийся между центральным процессором и видео-памятью. Также может выполнять битовые операции над передаваемыми данными.
  • Видеопамять. В ней размещаются данные, которые отображаются на мониторе. 256 кБ DRAM разделились на четыре цветовых слоя: по 64 кБ.
  • Последовательный преобразователь. Осуществляет функцию преобразования данных из видеопамяти в поток битов, который передается непосредственно контроллеру.
  • Контроллер атрибутов. Преобразует входные данные в цветовые значения, используя палитру.
  • Синхронизатор. Берет на себя контроль над временны́ми параметрами видеоадаптера, а также осуществляет переключение цветовых слоев.
  • Контроллер ЭЛТ (CRT). Производит генерацию сигналов синхронизации для ЭЛТ.

EGA, в отличие от CGA, а также его главные подсистемы, располагается в единой микросхеме, что, в свою очередь, позволяет уменьшить размер видеоадаптера. В ПК с интерфейсом PS/2 VGA-адаптер вмонтирован непосредственно в материнскую плату.

В чем отличие VGA от EGA?

VGA аналогичен EGA, учитывая плоскостную видеопамять в 16-цветных режимах и секвенсор для доступа процессора к ней. Однако, имеются и исключения, отличающие два этих стандарта:

  • Разные разъем с кабелем для подключения к монитору, а также, совершенно разные мониторы. Этот разъем и кабель не менялись более 15 лет, вплоть до выхода в свет цифровых пакетно-ориентированных технологий DVI, HDMI и DisplayPort, пришедших из мира бытовой видеотехники. Разъем с кабелем использовались после в более высоких разрешениях. Даже стандартный VGA-монитор мог показывать режим 800x600 при использовании с более современной видеокартой, в данном случае, все зависело от качества блоков развертки монитора и их способности не сорвать генерацию на таких повышенных частотах. Сегодня все современные видеокарты совместимы с VGA сверху вниз. Термин "VGA" в обиходе обозначает именно тип подключения монитора - устаревший, но до сих пор, тем не менее, актуальный.
  • Палитра включает в себя 18-битные цвета вместо 6-битных. Это, в свою очередь, позволяло, к примеру, реализовать плохую погоду или мерцающие цвета в играх, используя одну лишь палитру.
  • 256-цветные режимы, стандартный - 320x200. Неофициально можно было добиться разрешения 320x240 ("режим Х") и выше.
  • Максимальный 16-цветный режим - 640x480 (квадратные пиксели)
  • Все 200-строчные графические режимы включали в себя сканлинию, которая повторялась дважды, что давало 400 физических строк развертки монитора, а это, в свою очередь, существенно повышало качество картинки даже в более младших режимах, поскольку щели между строками развертки отсутствовали.
  • высота ячейки знакогенератора - 16 сканлиний. У EGA - 14. Это преимущество дает те же 400 строк развертки во всех текстовых режимах (кроме режимов совместимости со знакогенератором EGA). Так, VGA всегда использует 400 строк развертки, кроме двух старших 16-цветных режимов (там их 480 и 350). Режим Х также использует 480 строк.
  • В VGA все регистры доступны на чтение, EGA же имеет ряд регистров, предназначенных "только для записи".

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

Символы в стандартном тестовом режиме формируются в ячейке 9×16 пикселов, впрочем, допускается использование шрифтов и других размеров: 8—9 пикселов в ширину и 1—32 пиксела в высоту. Обычно, размеры самих символов меньше, поскольку часть пространства уходит на создание зазора между символами. Функция по выбору размера шрифта в BIOS отделена от функции по выбору видеорежима, это позволяет использовать различные комбинации режимов со шрифтами. Допускается загрузка восьми и одновременный вывод на монитор двух различных шрифтов.

VGA BIOS содержит следующие виды шрифтов, а также функции для их загрузки/активации:

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

Обычно, данные шрифты соответствуют кодовой странице CP437. Также имеется поддержка программной загрузки шрифтов. Это позволяет использовать ее, к примеру, для русификации.

Стандартные режимы:

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

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

Для каждой ячейки с символом в текстовом режиме можно указать атрибут, задающий вариант отображения этого символа. Существует два отдельных набора атрибутов: для цветных режимов и для монохромных. Атрибуты цветных режимов позволяют выбрать один из 16-ти цветов символа, один из 8-ми цветов фона и включить или отключить мерцание, что совпадает с возможностями CGA. Атрибуты монохромных режимов совпадают с атрибутами, доступными у MDA (в частности, позволяют активировать повышенную яркость символа, подчеркивание, мерцание, инверсию и некоторые их комбинации).

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

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

Стандартные режимы

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


Нестандартные режимы (X-режимы)

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

  • 320×200, 256 цветов, 4 страницы. Ничем внешне не отличается от режима 13h (320×200, 256 цветов), режим имеет четыре видеостраницы, что позволяет реализовать двойную и даже тройную буферизацию.
  • 320×240, 256 цветов, 2 страницы. В данном режиме страниц меньше, но квадратные пиксели.
  • 360×480, 256 цветов, 1 страница. Максимальное разрешение на 256 цветах, возможное для реализации в рамках VGA.

Все вышеперечисленные режимы используют плоскостную организацию видеопамяти, похожую на используемую в 16-цветных режимах. Однако она использует для формирования цвета по 2 бита из каждой плоскости, а не по одному. Такая организация видеопамяти позволяет задействовать всю видеопамять карты, а не только плоскость 0 в 64К, для формирования 256-цветной картинки. А это, в свою очередь, дает возможность использования высоких разрешений/многих страниц. Для работы с этой памятью используется тот же секвенсер, что и в 16-цветных режимах.

Однако, ввиду особенностей контроллера видеопамяти, процесс копирования данных в видеопамять происходит вчетверо быстрее, чем в режиме 13h.

Термин «X-режим» (Mode X) был введен Майклом Абрашем в 1991 году. Он применялся для обозначения нестандартного режима 320×240 с 256 цветами. Данный режим был открыт, путем изучения закрытой документации компании IBM, различными программистами независимо друг от друга. Термин получил известность благодаря статьям Майкла Абраша в журнале «Dr. Dobb’s Journal».

#