视频图形阵列(Video Graphics Array,VGA)是一种使用模拟信号进行视频传输的标准协议[2],它最初由IBM于1987年推出[1],成为当时个人计算机(Personal Computer,PC)领域的主流显示标准,并逐渐演化为现代计算机图形显示的基础[3][4]。
VGA接口通过15个针脚的D-sub连接器将图像信号从计算机图形卡传输到显示器[5][6],它支持多种分辨率和色彩模式,具有广泛的兼容性和可扩展性[7]。VGA标准最常见的分辨率是640×480像素,这也是VGA的工业标准[4],但它也支持其他分辨率,如SXGA(1280×1024)、WXGA(1280×768)等显示标准[4][8]。
这些分辨率是通过水平同步信号、垂直同步信号和时钟频率来定义的,遵循VGA时序标准[9]。VGA支持多种色彩模式,包括4位色、8位伪彩色、16位高彩色和24位真彩色等[7],这些色彩模式决定了每个像素可以表示的颜色数量和精度,影响图像的色彩深度和质量[10][11]。
尽管VGA标准已经存在了几十年,但它仍然被广泛应用于一些老旧的计算机系统和显示设备[2]。然而随着显示技术的进步,数字接口标准(如HDMI、DisplayPort)逐渐取代了VGA,它们可以提供更高的分辨率、更好的图像质量和更方便的连接方式[12][13][14]。
起源
视频图形阵列(VGA)是国际商用机器公司(International Business Machines Corporation,IBM)在1987年随个人计算机系统PS/2机型一起推出的一种视频传输标准[1],是一种使用模拟信号进行视频传输的标准协议[2]。VGA标准兼容了MDA标准,CGA标准和EGA标准的全部功能,此外还增加了一些新的视频显示功能,包括640×480的2色显示(方式11H)、640×480的16色显示(方式12H)和320×200的256色显示(方式13H)[15]。
改进创新
在现代视频技术中,VGA标准曾是基准,但在其推出之前,某些非IBM公司推出的第三代产品比VGA标准的性能更好,迫使IBM改进VGA的基本性能,这导致了VESA标准(Super VGA标准)的诞生。随着PC机视频功能的不断扩大,Super VGA标准也在不断发展,比1989年最初提出时有很大扩展,超越了原始VGA标准,成为PC视频的主要标准,但本质上Super VGA标准仍然是一种扩展的VGA标准[3][4]。在VGA发展到增强型VGA时,IBM还为PS/2机设计了XGA和8514视频模式,其中8514是VGA的附属标准,后来进入非IBM市场,为PC机所使用[3]。



标准化
随着CPU处理器性能的提升,后来推出了SXGA(1280×1024)、WXGA(1280×768)、WSXGA(1600×1024)、WUXGA(1920×1200)、WQXGA(2560×1600)等显示标准。虽然不同类型的显示器工作原理以及显示方式可能不一样,但是它们的控制方式和控制信号结构是相似的,面对众多的显示标准,视频电子标准协会发布了统一的VGA时序参考标准[4][8]。
分辨率为640×480是VGA的工业标准,虽然各种分辨率有不同名称,但通常都把它们归为"VGA模式"。这些不同分辨率的视频信号均可以通过VGA接口传输,因此VGA接口是一种通用视频接口[4]。VGA由于具有分辨率高、显示速率快、颜色丰富等优点,在显示技术领域得到了广泛的应用[1]。
现状
VGA接口体积较大,不利于便携设备的集成,且传输的模拟信号易受外界干扰,产生信号畸变,为了解决 VGA 接口的诸多问题,视频接口标准开始了一次革新,在VGA接口之后,首先推出的是数字视频接口标准(Digital Visual Interface,DVI)[16]。1999年,数字显示工作组(Digital Display Working Group,DDWG)发布了DVI 1.0规范[17]。但由于DVI存在种种缺陷,已经不能更好地满足整个行业的发展需要,促使了高清多媒体接口标准(High Definition Multimedia Interface,HDMI)的诞生[16]。



日立、松下等7家公司共同组建的HDMI组织于2002年12月9日正式发布了HDMI标准 1.0版[12][13],HDMI接口具有体积小、带宽高、兼容性好等特点[17]。在其之后,又出现一种功能更强、带宽更大的新型接口——显示接口(DisplayPort,DP),2006年5月,视频电子标准组织(VESA)正式发布了 DisplayPort 1.0标准,这是一种针对所有显示设备开放标准,具有高带宽、高度可扩展性、内容保护技术更可靠等特点[14]。随着HDMI和DP标准的盛行,VGA已经逐渐退出历史舞台[12][13],但仍然被应用于一些老旧的计算机系统和显示设备[2]。

结构特征
VGA接口即计算机采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,是显示器上应用最为广泛的接口类型[5][6]。VGA接口中以针式引出信号线的称为公头,以孔式引出信号线的称为母头。通常,计算机和VGA显示器上都有母头接口,使用两端都是公头的VGA连接线可以将它们连接在一起,两者传输图像时,使用的是VGA图像传输标准[2]。

引脚定义
VGA接口传输红、绿、蓝的模拟信号以及水平和垂直的同步信号。标准VGA接口共有15个,其中实际使用的信号只有5个。这其中,HS(HSYNC)是行同步信号,VS(VSYNC)是场同步信号,以及VGAR、VGAG和VGAB是三原色信号(红、绿、蓝),用于传输颜色信息的接口都是模拟信号[5]。
| 引脚 | 定 义 | 引脚 | 定 义 |
|---|---|---|---|
| 1 | 红基色(RED) | 9 | 保留(各厂家定义不同) |
| 2 | 绿基色(GREEN) | 10 | 数字地(GND) |
| 3 | 蓝基色(BLUE) | 11 | 地址码0(ID BIT0) |
| 4 | 地址码2(ID BIT2) | 12 | 地址码1(ID BIT1) |
| 5 | 自测试(各厂家定义不同) | 13 | 行同步(HSYNC) |
| 6 | 红色地(RGND) | 14 | 场同步(VSYNC) |
| 7 | 绿色地(GGND) | 15 | 地址码3(IDBIT3) |
| 8 | 蓝色地(BGND) | - | - |
色彩显示
VGA的色彩系统(色彩表示方式)继承了EGA和CGA的转换能力,但在其基础上加以扩展。CGA支持显示16种颜色,EGA则扩展至64种颜色色版选出的16色模式(红绿蓝各2位),VGA进一步扩展至256种颜色,但为了兼容性,每次只使用256种之中的64种。此外,VGA允许快速切换四个完整的EGA色板存储装置,以实现多彩效果。VGA改进了EGA的颜色使用规则,允许将256色EGA色板的颜色随意分配。总之,VGA设计允许显示理论上无限多种颜色,兼容EGA和CGA,以模拟信号形式呈现[9]。



扫描规律
VGA显示器显示图像,并不是直接让图像在显示器上显示出来,而是采用扫描的方式,将构成图像的像素点在行同步信号和场同步信号的同步作用下,按照从上到下、由左到右的顺序扫描到显示屏上[2]。显示屏常用的扫描方式有两种:隔行扫描和逐行扫描,其中VGA的扫描方式为逐行扫描。逐行扫描就是每一行扫描完之后,开始逐点扫描下一行,没有间隔[19]。

其具体扫描规律为:在行和场同步信号的同步作用下,扫描坐标从左上角的第一个像素点开始,逐个像素向右扫描,直至扫描到第一行最后一个数据,然后进行图像消隐,完成后,扫描坐标自第一行行尾转移到第二行行首。这一过程重复多次,直至扫描到最后一行行尾,完成一帧图像扫描,进行图像消隐,然后跳回左上角开始下一帧扫描。每个像素点在扫描中被赋予特定颜色信息,使每个像素点显示对应的色彩信息,当一顿图像扫描结束后,开始下一帧图像的扫描。当扫描速度足够快时,由于存在人眼暂留效应,因此能创建完整的图像而不是闪烁的像素点[2]。
相关概念
VGA时序标准是指视频图像在VGA显示系统中的时序规范。它定义了图像信号的各种时序参数,包括水平同步信号、垂直同步信号、行频率、场频率等,以确保正确的图像显示。VGA扫描完一行所需要的时间为水平扫描时间,水平扫描时间的倒数成为行频;完成一帧(全屏)扫描所需要的时间为垂直扫描时间,垂直扫描时间的倒数成为场频,即刷新一次显示屏的频率[19]。在CRT显示中,为避免电子束扫描线的回归线产生的信号称为消隐信号,用于控制电子束的移动以避免破坏屏幕画面,有行消隐信号和场消隐信号两种,其存在的时间称为行消隐期和场消隐期[9]。
在行扫描完成后,需要信号对下一行的数据进行同步,所以称为行同步信号,同理,每完成一顿画面的扫描需要信号对下一帧的数据进行同步,这就是场同步信号。用来产生基准频率信号叫做时钟信号,在显示系统中用于同步VGA接口的时序操作,其频率取决于显示分辨率和刷新率的需求[9]。
根据视频电子标准协会(VESA)的标准定义,行时序和场时序都必须包含同步脉冲、显示后沿、显示时序段和显示前沿四个部分。同时VGA工业标准显示模式对其进行了进步的规范:行同步信号、场同步信号都必须为负极性,也就是说同步脉冲要求必须是负脉冲[9]。
时序分析
从时序图中可以看出,行扫描和场扫描都包括四个主要阶段:同步、消隐(前消隐和后消隐)、以及扫描阶段。同步阶段的目的是防止连续叠加、滞后或超前扫描;消隐阶段主要是为了老式阴极射线管显示而设计,以避免回扫描线干扰正常显示;扫描阶段就是对显示器上的实际像素单元进行显示操作[19]。
行扫描周期由a、b、c、d四部分组成,其中行同步是最先进行的,然后才开始数据扫描,具体如下:

| 序号 | 步骤 | 名称 | 描述 |
|---|---|---|---|
| 1 | H_SYNC | 行同步时期 | 进行行扫描地址的复位 |
| 2 | H_BACK | 行消隐后肩 | 扫描地址转移后稳定等待/准备期 |
| 3 | H_DISP | 行显示时期 | 行地址扫描/显示期,此时数据有效 |
| 4 | H_FRONT | 行消隐前肩 | 扫描地址转移的准备 |
| 5 | H_TQTAL | 行扫描总时间 | 一行扫描的总时间(5个过程) |
场扫描时序与行扫描时序相似,但场扫描周期由多个行扫描周期组成,每个场扫描都有自己的时序,包括场消隐前肩、场同步时期、场消隐后肩和场总显示时间。在场消隐期间,H_SYNC时序保持不变,但数据输入被屏蔽。尽管显示器具有不同的分辨率,但扫描时序保持一致[19][20]。场扫描周期也由a、b、c、d四部分组成,首先进行行同步操作,然后才开始数据扫描,具体如下:

| 序号 | 步骤 | 名称 | 描述 |
|---|---|---|---|
| 1 | V_SYNC | 场同步时期 | 进行场扫描地址的复位 |
| 2 | V_BACK | 场消隐后肩 | 扫描地址转移后稳定等待/准备期 |
| 3 | V_DISP | 场显示时期 | 场地址扫描/显示期,此时数据有效 |
| 4 | V_FRONT | 场消隐前肩 | 扫描地址转移的准备 |
| 5 | V_TQTAL | 场扫描总时间 | 一场扫描的总时间(5个过程) |
时序标准表
在VGA 接口协议中,不同的显示模式因为有不同的分辨率或不同的刷新频率,所以其时序也不相同。对于每种显示模式的时序,VGA 都有严格的工业标准,下表所示即为Xilinx公司制定的VGA时序标准[21]。
| 显示模式 | 时钟信号 /MHz | 水平参数(单位:像素) | 垂直参数(单位:行) | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 有效区城 | 前肩脉冲 | 同步脉冲 | 后肩脉冲 | 有效区城 | 前肩脉冲 | 同步脉冲 | 后肩脉冲 | ||
| 640× 480,60 Hz | 25 | 640 | 16 | 96 | 48 | 480 | 10 | 2 | 33 |
| 640× 480,72 Hz | 31 | 640 | 24 | 40 | 128 | 480 | 9 | 3 | 28 |
| 640×480,75 Hz | 31 | 640 | 16 | 96 | 48 | 480 | 11 | 2 | 32 |
| 640×480,85 Hz | 36 | 640 | 42 | 48 | 112 | 480 | 1 | 3 | 25 |
| 800×600,56 Hz | 38 | 800 | 42 | 128 | 128 | 600 | 1 | 4 | 14 |
| 800×600,60 Hz | 40 | 800 | 40 | 128 | 88 | 600 | 1 | 4 | 23 |
| 800×600,72 Hz | 50 | 800 | 56 | 120 | 64 | 600 | 37 | 6 | 23 |
| 800×600,75 Hz | 49 | 800 | 16 | 80 | 160 | 600 | 1 | 2 | 21 |
| 800×600,85 Hz | 56 | 800 | 32 | 64 | 152 | 600 | 1 | 3 | 27 |
| 1024×768,60 Hz | 65 | 1024 | 24 | 136 | 160 | 768 | 3 | 6 | 29 |
| 1024×768,70 Hz | 75 | 1024 | 24 | 136 | 144 | 768 | 3 | 6 | 29 |
| 1024×768,75 Hz | 78 | 1024 | 16 | 96 | 176 | 768 | 1 | 3 | 28 |
| 1024×768,85 Hz | 94 | 1024 | 48 | 96 | 208 | 768 | 1 | 3 | 36 |
显示模式
标准VGA图形系统提供多种显示模式,包括文本模式和图形模式,其中后者涵盖了8位色模式至32位色模式等不同色彩深度[22],VGA图形控制器必须在其中一种模式下运行[7][23]。
文本模式也称为字符模式,其使用字符作为基本单元,一屏所能显示字符的行数和列数及字符属性的表示方法即构成了一种文本显示模式,文本模式显示字符速度快但无法呈现图形[7]。
图形模式以像素点为基本单元,具有特定分辨率和色彩方式,一定的像素分辨率以及一定的色彩表示方式即构成了一种图形显示模式。VGA图形模式分为CGA、EGA兼容图形模式;标准VGA图形模式;VGA扩展图形模式,后两种统称VGA图形模式。 VGA支持多种分辨率和多种色彩方式,两相组合,形成了丰富多样的VGA图形显示模式[7]。
分类及特点
VGA有两种色彩表示方式,间接方式和直接方式。其中,间接方式是用索引值来确定各个像素点的颜色,然后用色彩查找表来确定每个索引值所对应的真实颜色值,索引值占用较少的数据位,而用较长的数据位来定义色彩查找表中的真实颜色值;而直接方式是指颜色数据不经过色彩查找表而直接用来定义颜色,直接使用红绿蓝三基色的亮度值来直接确定每个像素点的颜色[24][25]。
VGA采用模拟方式处理色彩,而主机和显示卡使用数字方式表示和处理色彩,为了实现更丰富、细腻的色彩显示,此时,VGA采用间接色彩表示方式,以减少显示存储器的容量。随着显示速度的提高、存储器价格的下降以及应用需求的提高,VGA引入了直接色彩模式,相较于间接色彩模式,直接色彩模式消除了同屏颜色数的限制,简化了软件的色彩操作方式,并且可以呈现更加细腻的色彩效果[24][25]。
颜色信息存储技术
VGA中常用的存储颜色信息技术有压缩像素法和颜色平面法。在压缩像素方式下,一个像素的所有颜色信息被压缩为一个存储数据的字节,对于仅有几种颜色的系统,每个压缩像素可能只占据一个字节的一部分,对于复杂的系统,则可能需要多个字节来表示一个像素的颜色信息。在颜色平面方式下,显示存储器被划分成几个相互独立的内存平面,每个平面控制一种颜色成分,比如红、绿、蓝。因此,每个像素在每个平面上都占据一位来表示其颜色信息[7]。
色彩模式(颜色数据格式)
在VGA显示系统中,存在不同的色彩模式和表示方式,以下常用的VGA色彩模式:
4位色模式:每个像素使用4位数据来定义,采用压缩像素法和间接色彩模式。在属性控制器中,通过查找表和寄存器的设置,形成8位色彩数据,总共可以表示256种色彩,形成最终的18位数据,由红绿蓝各6位组成[7]。8位伪彩色模式:每个像素使用8位数据来定义,也采用压缩像素法和间接色彩模式。这8位数据直接在调色板寄存器中形成最终的24位数据,不经过属性控制器,可以表示256种色彩[7]。16位高彩色模式:每个像素使用16位数据来定义,采用压缩像素法和直接色彩模式。16位数据直接形成最终的色彩数据,不经过和属性控制器调色板寄存器,其中,位11-15定义蓝色,位5-10定义绿色,位0-位4定义红色[7]。24位真彩色模式:每个像素使用24位数据来定义,采用直接色彩模式。24位数据直接形成最终的色彩数据,也不经过和属性控制器调色板寄存器,从高到低依次是红绿蓝,各8位数据[7]。
24位的直接色彩模式被称为真彩色模式,因为这种模式已经达到了阴极射线管(Cathode Ray Tube,CRT)显示器的表现极限,人的视觉已经无法从屏幕上分辨出相邻两种颜色的差异,进一步增加表示色彩的位数已经没有意义。某些计算机图形系统中存在一种32位的色彩表示方式,但在这种方式中,用来描述颜色值的仍然只有24位,剩下的8位用于描述三维图像处理中的透明度等属性[10][11]。标准VGA还包括4色和2色模式,但这些模式很少被使用,并且不被VESA标准支持[7]。
| 色彩模式 | 表示方式 | 数据位 | 同屏颜色数 | 最大颜色数 | 基色分量亮度级 | |
|---|---|---|---|---|---|---|
| 16 色 | 间接色彩 | 4 | 16 | 262144(256K) | 64 | |
| 256 色 | 间接色彩 | 8 | 256 | 262144(256K) | 64 | |
| 8 位-黑白 | 直接色彩 | 8 | 1 | 1 | 256 | |
| 8 位-伪彩色 | 间接色彩 | 8 | 256 | 1677216(16M) | 256 | |
| 15 位-高彩色 | 直接色彩 | 15 | 不限 | 32768(32K) | 32 | |
| 16 位-高彩色 | 直接色彩 | 16 | 不限 | 65536(64K) | 32或64 | |
| 24 位-真彩色 | 直接色彩 | 24 | 不限 | 1677216(16M) | 256 | |
| 32 位-真彩色 | 直接色彩 | 32 | 不限 | 1677216(16M) | 256 | |
参考资料 25
- 参考 1
- 参考 2
- 参考 3
- 参考 4
- 参考 5
- 参考 6
- 参考 7
- 参考 8
- 参考 9
- 参考 10
- 参考 11
- 参考 12
- 参考 13
- 参考 14
- 参考 15
- 参考 16
- 参考 17
- 参考 18
- 参考 19
- 参考 20
- 参考 21
- 参考 22
- 参考 23
- 参考 24
- 参考 25