Video Graphics Array ( VGA ) — это контроллер видеодисплея и сопутствующий ему фактический графический стандарт, впервые представленный в линейке компьютеров IBM PS/2 в 1987 году, [1] [2] [3] который стал повсеместным в отрасли, совместимой с IBM PC, в течение трех лет. [4] Теперь этот термин может относиться к стандарту компьютерного дисплея , 15- контактному разъему D-subminiature VGA или разрешению 640 × 480, характерному для оборудования VGA. [5]
VGA был последним графическим стандартом IBM, которому соответствовало большинство производителей IBM PC-совместимых компьютеров, что сделало его наименьшим общим знаменателем , который можно было бы реализовать практически во всем графическом оборудовании ПК после 1990 года. [6]
VGA был адаптирован во множество расширенных форм третьими лицами, в совокупности известных как Super VGA [ 7], затем уступил место специальным графическим процессорам , которые, в дополнение к своим фирменным интерфейсам и возможностям, продолжают реализовывать общие графические режимы и интерфейсы VGA по сей день.
Стандарт аналогового интерфейса VGA был расширен для поддержки разрешений до 2048 × 1536 для общего использования, а специализированные приложения еще больше его улучшили. [ указать ] [8]
Цветовая палитра оперативной памяти (RAM) и соответствующий ей цифро-аналоговый преобразователь (DAC) были интегрированы в один чип (RAMDAC ) , а контроллер электронно-лучевой трубки ( CRTC ) был интегрирован в основной чип VGA, что исключило несколько других чипов в предыдущих графических адаптерах, поэтому VGA дополнительно требовалось только внешнее видеоОЗУ и кристаллы синхронизации . [9] [10]
Это небольшое количество деталей позволило IBM включить VGA непосредственно на материнскую плату PS/2, в отличие от предыдущих моделей IBM PC – PC , PC/XT и PC AT – которым требовался отдельный видеоадаптер, установленный в слот для подключения монитора. Термин «массив» вместо «адаптер» в названии обозначал, что это было не полностью независимое устройство расширения, а отдельный компонент, который можно было интегрировать в систему. [11]
В отличие от графических адаптеров, которые предшествовали ему ( MDA , CGA , EGA и множество сторонних опций), изначально IBM не выпускала дискретную карту VGA. Первой коммерческой реализацией VGA был встроенный компонент IBM PS/2, в котором он сопровождался 256 КБ видеопамяти и новым разъемом DE-15, заменившим DE-9, используемый предыдущими графическими адаптерами. Позже IBM выпустила автономный IBM PS/2 Display Adapter , который использовал VGA, но мог быть добавлен к машинам, в которых он не был встроен. [12] [11]
VGA поддерживает все графические режимы, поддерживаемые картами MDA, CGA и EGA, а также несколько новых режимов.
Режимы 640 × 480 16 цветов и 320 × 200 256 цветов имели полностью переопределяемые палитры, причем каждая запись выбиралась из 18-битной (262 144 цвета) гаммы. [15] [16] [17] [18]
В других режимах по умолчанию использовались стандартные палитры и инструкции, совместимые с EGA или CGA, но при этом допускалась возможность переназначения палитры с помощью специфичных для VGA команд.
Разрешение 640 × 480 (при 256 цветах вместо 16) изначально использовалось IBM в графике PGC (для которой VGA не обеспечивает обратной совместимости), но не получило широкого распространения, пока не был представлен VGA. Поскольку VGA начали клонировать в больших количествах производители, которые добавляли все больше возможностей, его 640 × 480 , 16-цветный режим стал фактически наименьшим общим знаменателем графических карт. К середине 1990-х годов графический режим 640 × 480 × 16, использующий спецификации памяти и регистров VGA, ожидался такими операционными системами, как Windows 95 и OS/2 Warp 3.0 , которые не поддерживали более низкие разрешения или битовую глубину, или поддержку других схем памяти или регистров без дополнительных драйверов. Вплоть до 2000-х годов, даже после того, как стандарт VESA для графических карт стал обычным явлением, графический режим «VGA» оставался опцией совместимости для операционных систем ПК.
Могут быть реализованы нестандартные режимы отображения с горизонтальным разрешением:
И высоты:
Например, режимы высокого разрешения с квадратными пикселями доступны при 768 × 576 или 704 × 528 в 16 цветах, или средне-низкое разрешение при 320 × 240 с 256 цветами. В качестве альтернативы, расширенное разрешение доступно с «толстыми» пикселями и 256 цветами, используя, например, 400 × 600 (50 Гц) или 360 × 480 (60 Гц), и «тонкими» пикселями, 16 цветами и частотой обновления 70 Гц, например, в режиме 736 × 410 .
«Узкие» режимы, такие как 256 × 224 , как правило, сохраняют то же соотношение пикселей, что и, например, в режиме 320 × 240 , если только монитор не настроен на растягивание изображения до заполнения экрана, поскольку они получаются просто путем маскирования более широкого режима, а не изменения таймингов пикселей или строк, но могут быть полезны для снижения требований к памяти и расчетов адресации пикселей для конверсий аркадных игр или эмуляторов консолей.
В версии Pinball Fantasies для ПК есть возможность использовать нестандартные режимы «высокого разрешения», такие как 640 × 350 , что позволяет отображать большую часть стола для пинбола на экране. [19]
VGA также реализует несколько текстовых режимов:
Как и в случае с пиксельными графическими режимами, при правильном программировании VGA возможны дополнительные текстовые режимы с общим максимальным размером около 100 × 80 ячеек и активной областью, охватывающей около 88 × 64 ячеек.
Иногда встречается вариант 80 × 30 или 80 × 60 с использованием шрифта 8 × 16 или 8 × 8 и эффективного дисплея 640 × 480 пикселей, в котором вместо мерцающего режима 60 Гц отображаются дополнительные 5 или 10 строк текста и квадратных блоков символов (или, при 80 × 30 , квадратных полублоков).
В отличие от предшествующих карт, которые использовали двоичные сигналы TTL для взаимодействия с монитором (а также композитные в случае CGA), VGA представила видеоинтерфейс, использующий чистые аналоговые сигналы RGB с диапазоном 0,7 вольт от пика до пика максимум. В сочетании с 18-битным RAMDAC (6 бит на канал RGB) это создавало цветовую гамму из 262 144 цветов. [15] [16] [17] [18]
Ниже приведены оригинальные характеристики VGA:
Предполагаемое стандартное значение для горизонтальной частоты режима VGA 640 × 480 ровно в два раза больше значения, используемого в видеосистеме NTSC-M , поскольку это значительно упростило предложение дополнительных решений TV-out или внешних конвертеров VGA-to-TV во время разработки VGA. Оно также, по крайней мере, номинально в два раза больше, чем у CGA, который также поддерживал композитные мониторы .
Все производные тайминги VGA (т. е. те, которые используют основные кристаллы 25,175 и 28,322 МГц и, в меньшей степени, номинальную частоту линии 31,469 кГц) могут быть изменены программным обеспечением, которое обходит интерфейс прошивки VGA и напрямую взаимодействует с оборудованием VGA, как это делали многие игры на базе MS-DOS. Однако только стандартные режимы или режимы, которые, по крайней мере, используют почти точно такие же тайминги H-sync и V-sync, как один из стандартных режимов, могут работать с оригинальными мониторами VGA конца 1980-х и начала 1990-х годов. Использование других таймингов может фактически повредить такие мониторы, и поэтому издатели программного обеспечения обычно избегали этого.
«Мультисинхронные» ЭЛТ-мониторы сторонних производителей были более гибкими и в сочетании с графическими картами «super EGA», VGA и позднее SVGA, использующими расширенные режимы, могли отображать гораздо более широкий диапазон разрешений и частот обновления при произвольных частотах синхронизации и тактовой частоте пикселей.
Для наиболее распространенного режима VGA ( 640 × 480 , 60 Гц, нечересстрочная развертка ) горизонтальные тайминги можно найти в руководстве по установке дисплея HP Super VGA и в других местах. [24] [25]
640 × 400 при 70 Гц — это традиционный видеорежим, используемый для загрузки VGA-совместимых персональных компьютеров x86 [26] , которые показывают графический загрузочный экран, в то время как загрузка в текстовом режиме использует 720 × 400 при 70 Гц.
Однако в последние годы эта традиция была нарушена, поскольку экраны POST и BIOS перешли на более высокие разрешения, используя данные EDID для сопоставления разрешения с подключенным монитором. [ необходима цитата ]
640 × 480 при 60 Гц — графический режим Windows по умолчанию (обычно с 16 цветами) [26] вплоть до Windows 2000. Он остаётся опцией в XP и более поздних версиях [ необходима ссылка ] через опцию «видео с низким разрешением» в меню загрузки и настройки режима совместимости для каждого приложения, несмотря на то, что в более новых версиях Windows по умолчанию установлено разрешение 1024 × 768 и, как правило, не допускается установка разрешения ниже 800 × 600 .
Необходимость в таком низкокачественном, универсально совместимом резервном решении уменьшилась с начала тысячелетия, поскольку экраны или адаптеры стандарта VGA-сигнала, неспособные отображать что-либо, выходящее за рамки исходного разрешения, стали все более редкими. [ уточнить ]
Режим 320 × 200 при частоте 70 Гц был наиболее распространенным режимом для компьютерных игр начала 1990-х годов, при этом удвоение пикселей и строк выполнялось на аппаратном уровне для представления на мониторе сигнала 640 × 400 при частоте 70 Гц.
Загрузочное изображение Windows 95/98/Me LOGO.SYS имело разрешение 320 × 400, отображаемое с удвоением пикселей для представления сигнала 640 × 400 при 70 Гц на мониторе. Сигнал 400 строк был таким же, как стандартный текстовый режим 80 × 25 , что означало, что нажатие Escдля возврата в текстовый режим не изменяло частоту видеосигнала, и, таким образом, монитору не приходилось выполнять повторную синхронизацию (которая в противном случае могла бы занять несколько секунд). [ необходима цитата ]
Стандартный интерфейс монитора VGA представляет собой 15- контактный миниатюрный разъем D в корпусе «E», называемый также «DE-15», «HD-15» и ошибочно «DB-15(HD)».
Все разъемы VGA передают аналоговые видеосигналы RGBHV (красный, зеленый, синий, горизонтальная синхронизация , вертикальная синхронизация ). Современные разъемы также включают в себя контакты VESA DDC для идентификации подключенных устройств отображения.
Поскольку VGA использует низковольтные аналоговые сигналы, ухудшение сигнала становится фактором с некачественными или слишком длинными кабелями. Решения включают экранированные кабели, кабели, которые включают отдельный внутренний коаксиальный кабель для каждого цветового сигнала, и «разорванные» кабели, использующие отдельный коаксиальный кабель с разъемом BNC для каждого цветового сигнала.
BNC-кабели для развязки обычно используют пять разъемов, по одному для красного, зеленого, синего, горизонтальной синхронизации и вертикальной синхронизации, и не включают другие сигнальные линии интерфейса VGA. С BNC коаксиальные провода полностью экранированы от начала до конца и через межсоединение, так что практически нет перекрестных помех и может возникнуть очень мало внешних помех. Использование видеокабелей BNC RGB предшествовало VGA на других рынках и в других отраслях.
Цветовая система VGA использует палитры на основе регистров для сопоставления цветов с различной глубиной цвета в 18-битной выходной гамме. Она обратно совместима с адаптерами EGA и CGA, но поддерживает дополнительную глубину цвета для палитры в этих режимах.
Например, в 16-цветных режимах EGA VGA предлагает 16 регистров палитры, а в 256-цветных режимах — 256 регистров. [27] Каждый регистр палитры содержит 3×6-битное значение RGB, выбирая цвет из 18-битной гаммы ЦАП .
Эти регистры цветов инициализируются значениями по умолчанию, которые IBM ожидает наиболее полезными для каждого режима. Например, режимы EGA 16 цветов инициализируются палитрой CGA 16 цветов по умолчанию, а режим 256 цветов инициализируется палитрой, состоящей из 16 цветов CGA, 16 оттенков серого и затем 216 цветов, выбранных IBM для соответствия ожидаемым вариантам использования. [28] [29] После инициализации их можно переопределить в любое время без изменения содержимого видеопамяти, что позволяет циклически менять палитру .
В 256-цветных режимах ЦАП настроен на объединение четырех 2-битных цветовых значений, по одному из каждой плоскости, в 8-битное значение, представляющее индекс в 256-цветной палитре. Интерфейс ЦП объединяет 4 плоскости таким же образом, эта функция называется «цепь-4», так что каждый пиксель представляется ЦП как упакованное 8-битное значение, представляющее индекс палитры. [30]
Видеопамять VGA отображается на память ПК через окно в диапазоне между сегментами 0xA0000 и 0xBFFFF в адресном пространстве реального режима ПК (A000:0000 и B000:FFFF в нотации сегмент:смещение). Обычно эти начальные сегменты следующие:
Типичная карта VGA также оснащена следующим сегментом ввода-вывода с сопоставлением портов:
Благодаря использованию различных сопоставлений адресов для разных режимов на одном компьютере можно установить монохромный адаптер (например, MDA или Hercules ) и цветной адаптер, такой как VGA, EGA или CGA .
В начале 1980-х годов это обычно использовалось для отображения электронных таблиц Lotus 1-2-3 в тексте с высоким разрешением на монохромном дисплее и соответствующей графики на дисплее CGA с низким разрешением одновременно. Многие программисты также использовали такую установку, когда монохромная карта отображала отладочную информацию, в то время как программа работала в графическом режиме на другой карте. Несколько отладчиков, таких как Borland's Turbo Debugger , D86 и Microsoft's CodeView, могли работать в конфигурации с двумя мониторами. Для отладки Windows можно было использовать как Turbo Debugger, так и CodeView.
Существовали также драйверы устройств, такие как ox.sys
, которые реализовывали имитацию последовательного интерфейса на монохромном дисплее и, например, позволяли пользователю получать сообщения о сбоях из отладочных версий Windows без использования реального последовательного терминала.
Также можно использовать команду "MODE MONO" в командной строке, чтобы перенаправить вывод на монохромный дисплей. При отсутствии монохромного адаптера можно было использовать адресное пространство 0xB000–0xB7FF в качестве дополнительной памяти для других программ.
Графическая карта PCI / PCIe с поддержкой VGA может предоставлять устаревшие регистры VGA в своем пространстве конфигурации PCI , которые могут быть переназначены BIOS или операционной системой . [31]
"Развязывание" 256 КБ памяти VGA в четыре отдельных "плоскости" делает 256 КБ ОЗУ VGA доступными в 256-цветных режимах. Существует компромисс в виде дополнительной сложности и потери производительности в некоторых типах графических операций, но это смягчается тем, что другие операции становятся быстрее в определенных ситуациях:
Такое программное обеспечение, как Fractint , Xlib и ColoRIX, также поддерживало измененные 256-цветные режимы на стандартных адаптерах, используя свободно комбинируемые ширины 256, 320 и 360 пикселей и высоты 200, 240 и 256 (или 400, 480 и 512) строк, расширяясь еще дальше до 384 или 400 пиксельных столбцов и 576 или 600 (или 288, 300). Однако 320 × 240 было самым известным и наиболее часто используемым, поскольку оно предлагало стандартное разрешение в 40 столбцов и соотношение сторон 4:3 с квадратными пикселями. « Разрешение 320 × 240 × 8" обычно называлось Mode X , название, которое использовал Майкл Абраш , когда он представил разрешение в журнале доктора Добба .
Режимы с самым высоким разрешением использовались только в особых, опциональных случаях, а не как стандартные, особенно там, где было задействовано большое количество строк. Стандартные мониторы VGA имели фиксированную частоту строчной развертки (H-сканирование) — «мультисинхронные» мониторы были в то время дорогой редкостью — и поэтому частоту обновления по вертикали/кадру (V-сканирование) приходилось уменьшать, чтобы приспособиться к ним, что увеличивало видимое мерцание и, следовательно, нагрузку на глаза . Например, режим с самым высоким разрешением 800 × 600 , в противном случае основанный на соответствующем разрешении SVGA (с 628 общими строками), уменьшал частоту обновления с 60 Гц до примерно 50 Гц (а 832 × 624 , теоретическое максимальное разрешение, достижимое с 256 КБ при 16 цветах, уменьшило бы ее примерно до 48 Гц, что едва ли выше частоты, с которой мониторы XGA использовали технику двухчастотной чересстрочной развертки для смягчения мерцания полного кадра).
Эти режимы также были совершенно несовместимы с некоторыми мониторами, что приводило к проблемам с отображением, таким как исчезновение деталей изображения в области сканирования (особенно в горизонтальном измерении), вертикальный скачок, плохая горизонтальная синхронизация или даже полное отсутствие изображения в зависимости от конкретного выбранного режима. Из-за этих потенциальных проблем большинство настроек VGA, используемых в коммерческих продуктах, были ограничены более соответствующими стандартам, «безопасными для монитора» комбинациями, такими как 320 × 240 (квадратные пиксели, три видеостраницы, 60 Гц), 320 × 400 (двойное разрешение, две видеостраницы, 70 Гц) и 360 × 480 (максимальное разрешение, совместимое как со стандартными мониторами VGA, так и с картами, одна видеостраница, 60 Гц) в 256 цветах или удвоение горизонтального разрешения в 16-цветном режиме.
Несколько компаний выпустили модели графических плат, совместимые с VGA. [32]
Super VGA (SVGA) — стандарт отображения, разработанный в 1988 году, когда NEC Home Electronics объявила о создании Ассоциации стандартов видеоэлектроники (VESA). Разработка SVGA велась под руководством NEC , а также других членов VESA, включая ATI Technologies и Western Digital . SVGA обеспечивал графические разрешения отображения до 800 × 600 пикселей , что на 36% больше максимального разрешения VGA в 640 × 480 пикселей. [33]
Extended Graphics Array (XGA) — стандарт дисплеев, представленный IBM в 1990 году. Позднее он стал наиболее распространённым названием разрешения дисплея 1024 × 768 пикселей .
самолетах говорят, что DC3 и 737 — самые популярные самолеты из когда-либо построенных, а 737, в частности, самый продаваемый самолет из когда-либо созданных. То же самое можно сказать и о вездесущем VGA и его старшем брате XGA. VGA, который до сих пор можно найти в современных графических процессорах и центральных процессорах, заложил основу для стандарта видео и стандарта прикладного программирования.
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь )