视频图形阵列(英语:Video Graphics Array,简称VGA)是IBM于1987年提出的一个使用模拟信号的电脑显示标准。这个标准已对于现今的个人电脑市场已经十分过时。即使如此,VGA仍然是最多制造商所共同支持的一个标准,个人电脑在加载自己的独特驱动程序之前,都必须支持VGA的标准。例如,微软Windows系列产品的开机画面仍然使用VGA显示模式,这也说明其分辨率和载色数的不足。
VGA这个术语常常不论其图形设备,而直接用于指称640×480的分辨率。VGA设备可以同时存储4个完整的EGA色版,并且它们之间可以快速转换,在画面上看起来就像是实时的变色。
在色版上,VGA除了扩充为256色的EGA式色版外,这256种颜色是可以改变的。可以通过 VGA DAC,任意的指定为任何一种颜色。这就程度上改变了原本EGA的色版规则。因为在CGA上,只有16种无法改的色彩。在EGA上虽然仍只能显示16种色彩,但这16种色彩其实是从64彩色盘中挑选出的。EGA分配给每个色频(RGB)两个比特,22=4种变化,43个色频=64种色彩。而VGA在指定色版颜色时,一个颜色频道有6个bit,红、绿、蓝各有64种不同的变化,因此总共有 262,144 种颜色。在这其中的任何 256 种颜色可以被选为色版颜色(而这 256 种的任何 16 种可以用来显示 CGA 模式的色彩)。
这个方法最终仍然使了VGA模式在显示EGA和CGA模式时,能够使用前所未有的色彩,因为VGA是使用模拟的方式来绘出EGA和CGA画面。提供一个色版转换的例子:要把文字模式的字符颜色设置为暗红色,暗红色就必须是 CGA 16 色集合中的一种颜色(譬如说,取代 CGA 默认的 7 号灰色),这个 7 号位置将被指定为 EGA 色版中的 42 号,然后 VGA DAC 将 EGA #42 指定为暗红色。则画面上的原本的 CGA 七号灰色,都会变成暗红色。这个技巧在 256 色的 VGA DOS 游戏中,常常被用来表示加载游戏的淡入淡出画面。
总结来说,CGA 和 EGA 同时只能显示 16 种色彩,不过 EGA 有更多色盘可用。而 VGA 不但兼容于 CGA 或 EGA 模式,更可以使用 Mode 13h 模式一次显示 256 色版中的所有色彩,而这 256 种颜色是从 262,144 种颜色(18-bit)中挑出的。
视频图形阵列(VGA) | ||
类型 | 模拟的电脑视频连接接口 | |
产品历史 | ||
设计者 | IBM | |
设计年代 | 1987 | |
制造年代 | 1987年至今 | |
规格 | ||
外接 | yes | |
图像信号 | 模拟RGB视频 (-3 db at 400 MHz) | |
数据信号 | R,G,B | |
脚位数量 | 15 | |
脚位配置 | ||
引脚1 | “红” | Red |
引脚2 | “绿” | Green |
引脚3 | “蓝” | Blue |
引脚4 | ID Bit | |
引脚5 | N/C | |
引脚6 | “红”接地端 | R.GND |
引脚7 | “绿”接地端 | G.GND |
引脚8 | “蓝”接地端 | B.GND |
引脚9 | 无针脚(保留) | No.Pin |
引脚10 | 接地端 | GND |
引脚11 | ID Bit | |
引脚12 | ID Bit | |
引脚13 | 水平同步 | H Sync |
引脚14 | 垂直同步 | V Sync |
引脚15 | N/C |
VGA所使用的显存,通过一个窗口对应于PC的主存,它们的真实地址为0xA000和0xC000之间的存储器。典型地来说地址的开始点是:
0xA000 使用于 EGA/VGA 图型模式(4 KB)
0xB000 单色文字模式(2 KB)
0xB800 彩色文字模式和 CGA 兼容模式(2 KB)
由于使用的区段皆不相同,在同一部机器上设备一个单色显卡(MDA)和另一个彩色显卡(VGA、EGA或CGA)是不冲突的。在 1980 年代初,这种典型的搭配方式用于 Lotus 1-2-3 试算表上,一部高解析单色屏幕用来显示文字,而另一部低解析的 CGA 屏幕用来显示图表。许多程序员也用这种配置来开发软件,一部屏幕显示 debug 细节,另一部屏幕则显示真正的软件运行画面。许多商业的除错软件都支持这种配置,例如 Borland 的 Turbo Debugger、由 Alan J. Cox 开发的 D86、微软的 CodeView 等,Turbo Debugger 和 CodeView 可以甚至可拿来 debug 微软的 Windows 软件。也有 DOS 驱动程序如ox.sys模拟一个终端机来接受 Windows 的 debug 信息,而不用真正接上另一个终端机。在 DOS 底下使用“单色模式”指令,使其输出转向单色也是可能的。另外,假如电脑上并无单色显卡,那么可以使用 EMM386.EXE 程序让其他程序可以使用 B000-B7FF 这一段存储器。(于 config.sys 文件中加入 "DEVICE=EMM386.EXE I=B000-B7FF")
一个未被纪录但十分广泛使用的技术称作 Mode X(由 Michael Abrash 导入),使程序员能够使用在 Mode 13h 之下无法做到的分辨率。他将 256 KiB 连续的显存“解开”并分成四个层次,因此在 256 色模式时全部 256 KiB 的存储器都可以使用。技术上这将使得处理变得更复杂,并且性能降低。但在一些特殊情况下,性能损失的情况可以被弥补:
单色的多边形填色增快,因为一次写入可以设置四个像素。
VGA 可以用来协助显存之间的拷贝,有些时候会比使用 8088 或 80286 等慢速 CPU 更快。
提供更高的分辨率:16 色可使用 704×528、736×552、768×576、甚至 800×600。诸如 Xlib(1990 年代早期的 C 图形库)和 ColoRIX(256 色的图形程序)支持 256 色下的各种分辨率调和:直行 256、320 和 360 个像素,以及水平行 200、240、256、400 和 480 个像素的组合(上限的 640×400 几乎用掉 256 KiB 中每一个 byte)。不过,320×240仍然是最常被使用的,因它为典型的4:3比例,为方形像素。
multiple video pages 让程序员能够使用双重缓冲(所有的 16 色模式都可),这在 Mode 13h 无法办到。
有时候,显示屏必须降低更新频率来满足这些模式,这会造成眼睛的疲劳这样的低分辨率虽然在PC市场早已淡出,但在Pocket PC和PDA市场,它正逐渐成为标准。它也常被用来指称15针的D型接头,这种接头仍然用来传输各式各样分辨率的模拟信号。
VGA曾经被IBM官方宣布使用XGA标准所取代,但在历史上,它其实是被其他的OEM制造商用所谓的SVGA标准所取代。
VGA中的A指的是“阵列(array)”而非“转换器(adapter)”,因为它从一开始就被设计为一个单一的集成芯片,用来取代Motorola 6845和数十个离散的逻辑芯片组合而成的ISA母版,这种设计是之前的MDA、CGA和EGA所使用的。VGA的这个特性允许它轻易的植入PC的主板之中,只需要额外的显存、振荡器和一个RAMDAC,就具备显示功能。IBM的PS/2电脑系列就是采用将VGA放置于主板上的设计。
VGA的规格表如下:
256 KiB 的 Video RAM
16 色和 256 色模式
总共 262144 种颜色的色版(红、绿、蓝三色各 6 bit,总共 (26)3种)
选择性的 25.2 MHz 或 28.3 MHz 处理频率
最多 720 个水平像素
最多 480 条线
最高 70 Hz 的更新频率
Vertical Blanking interrupt(不是所有卡都支持)
平面模式:最多 16 色(4 bit 皮肤)
Packed-pixel 模式:256 色(Mode 13h)
顺畅滚动画面的能力
Some "Raster Ops" support
Barrel shifter
支持分区画面
VGA支持可单独操控像素的APA(All Points Addressable)模式,也支持字母与数字的文字模式。标准的图形模式如下:
640×480×16色
640×350×16色
320×200×16色
320×200×256色(Mode 13h)
它也支持用模拟的方式画出向下兼容的分辨率:EGA、CGA和MDA。
标准的VGA文字模式使用 80×25 或 40×25 个字母或数字组成的平面。每个字符的块状区域可以选择16种前景色和8种背景色;8种背景色来自bit容量较低的集合(以今天的标准来说,例如 ffffff 或者是 000000)。而字符本身也可设置是否闪烁,而字符的闪烁动作都是同时的。画面的闪烁功能和选择背景颜色的功能是可交换的,换句话说两者只能择一。以上这些选项和IBM先前生产的 CGA 转换器是相同的。
VGA虽然支持黑白和彩色的文字模式,但黑白模式很少使用。大多的VGA在显示黑白模式时使用彩色模式,即是将灰色字画在黑色背景上。而使用VGA的单色显示屏也能很好的支持这样的彩色模式。现代显示屏和显卡若连接不当,偶尔会导致显卡的VGA部份侦测显示屏为单色的,而这将使BIOS开机显示为黑白模式。通常在加载操作系统和适当的驱动程序以后,显卡的设置被覆盖,显示屏就会变回彩色。
在彩色的文字模式中,每个字符其实由两个byte代表。较低的一个byte用来显示字符,而较高的byte就用来代表彩色、闪烁等等属性。这种成对的byte模式是从CGA就一直传续下来的。
VGA的色彩系统可以向前兼容于EGA和CGA转换器,而它在其上又新增了一种设置。CGA可以显示16种色彩,EGA则将其扩充成从64种颜色色版选出的16色模式(即红绿蓝各2 bits)。VGA则更将其扩充成256种颜色色版,但为了向前兼容,一次只能选择256种之中的64种(例如第一个64种颜色集合、第二个…)。所以一个。它们也不兼容于较老旧的显示屏,将造成诸如 overscan、闪烁、垂直滚动、缺乏水平同步等等缺点。因为如此,多数的商业软件使用的 VGA 调适都限制在显示屏的“安全界线”之下,例如 320×400(双倍分辨率,2 video pages)、320×240(方形像素,3 video pages)和 360x480(最高的兼容分辨率,1 video page)。
工业机器视觉应用中,还有许多的VGA接口的工业相机,主要用于一些直接由人眼观察的视觉项目中。因为只需要一个显示器、相机、镜头成像观察,不需要电脑、处理器等,因此通常设计成VGA接口,可以直接连接显示器进行观察。
VGA接口的相机,通常因为显示器的分辨率比较低,因此相机本身的分辨率也比较低,一般只能在130万左右,高的可以达到200万的的宽屏模式(1920*1080P),低端的则只有30万像素左右。