The Wayback Machine - https://web.archive.org/web/20221028224859/https://baike.sogou.com/kexue/d10079.htm

视频图形阵列

编辑

视频图形阵列(VGA)是一种视频显示控制器的图形标准,最初于1987年在IBM PS/2系列计算机中推出,[1][2] 此前不久,IBM个人计算机引入了CGA和EGA。就广泛意义而言,视频图形阵列这一术语也表示模拟计算机显示标准、15针D-Sub VGA连接器以及VGA硬件的640×480分辨率特性。

VGA是大多数PC克隆制造商所遵循的最后一个由IBM制定的图形标准,使该标准成为几乎所有1990年后的电脑图形硬件都需要具备的“最小公约数”。从官方角度看,IBM的扩展图形阵列(XGA)标准紧随VGA之后发布,但实际上VGA却是被统称为超级VGA的众多扩展程序所取代,它们由克隆制造商开发,之间存在略微差异。

如今,VGA模拟接口适用于分辨率等于或高于1080p的高清视频。虽然VGA的传输带宽分辨率足够高,可以支持更高分辨率的回放,但图像质量可能会因为电缆质量和长度的因素而下降。尽管切换至或自数字输入( 如高清晰度多媒体接口或数字视频接口)时,图像质量下降会变得更加明显,但是究竟有多明显取决于个人视力和显示器。

1 输出能力编辑

VGA支持所有点可寻址图形模式和字母数字文本模式。

1.1 标准图形模式

标准图形模式包括:

  • 640×480,16色或单色( 后者与较低的IBM多色图形阵列标准相匹配 )
  • 640×350或640×200,16色或单色( EGA兼容模式 )
  • 320×200,4或16种颜色
  • 320×200,256色(13h模式)

尽管高分辨率模式最常见于微软Windows系统中的固定调色板,但是640×480/16色模式和320×200/256色模式具备可完全重新定义的调色板,可以从18位(262,144色) RGB表中选择任意一个条目。对于其他颜色模式,默认使用标准EGA或CGA兼容调色板( 包括程序从主64色表中重新定义16色EGA调色板的能力),但如果有需要的话,仍然可以使用VGA特定程序重新定义颜色模式。

1.2 更高的分辨率和其他显示模式

即使是使用标准卡和大多数标准显示器,也可以提高分辨率,以及使用其它显示模式——总的来说,典型的VGA系统可以通过任意组合以下行高和像素宽度来创建显示器:

  • 512-800像素宽度(包括640、704、720、736、768... ),16色或者
  • 256-400像素宽度(包括320、360、384...) ,256色

行高为:

  • 200/350-410( 包括400 )行高,刷新频率为70 Hz
  • 224-256(包括240 )行高或448-512(包括480 )行高,刷新频率为60 Hz
  • 512-600行高,垂直刷新率降低( 降至50 Hz,包括例如528、544、552、560、576行),具体数值取决于各个显示器的兼容性。

(可能出现行高为175-205、刷新频率为70HZ的情况;刷新频率为50至60 Hz时,行高可能为256-300;也会出现水平宽度低于256/512的情况。但这些情况几乎没有实际意义)

例如,可用的高分辨率方形像素模式有16色的768×576和704×528,可用的中低分辨率方形像素模式有256色的320×240。此外,可对256色的“胖像素”模式的分辨率进行扩展,比如达到400×600 (50Hz)和360×480 (60Hz),也可将16色的“瘦像素”模式的分辨率扩展,比如达到736×410。

除非调整监视器以拉伸图像,使其填充屏幕,“窄像素”模式(如256×224)倾向于与某一特定模式(例如320×240)保持相同的像素比。这是因为“窄像素”是通过掩盖较宽的模式而不是改变像素或行定时来实现的。不过,可以使用这些模式降低街机游戏转换或控制台仿真器对存储器的要求,或进行像素寻址计算。

1.3 标准文本模式

标准文本模式:

  • 80×25字符显示器,采用9×16像素字体,16色和单色条件下有效分辨率均为720×400,其中单色与传统的基于MDA的应用程序兼容。[3]
  • 40×25字符显示器,采用同种像素字体,有效分辨率为360×400
  • 16色80×43和80×50 字符显示器(采用8×8像素字体),对应的有效分辨率分别为640×344 (与EGA兼容)和640×400像素。

与基于像素的图形模式一样,从技术角度上看,其它的文本模式也是可以实现的,因为是从字符网格维度来计算VGA分辨率设置概念的。这些文本模式最多约有100×80个单元格,有效面积约为88×64个单元格。但是,由于需要更大的文本显示分辨率时,常见做法是只使用图形模式,也就是使用小字体或成比例的字体,所以很少用到这些模式。有时会用到的文本模式变体是80×30或80×60,此时,使用的字体是8×16或8×8,有效分辨率为640×480,并且没有使用更快的60 Hz刷新频率,而是另外多了5或10行文本和方形字符块(文本模式为80×30时,称为方形半块)。

2 技术相关细节编辑

2.1 电路设计

IBM PS/55的主板中的VGA部分

VGA指“阵列”,而非“适配器”,因为从一开始,VGA就是作为单个芯片(一种专用集成电路,英文简称为ASIC)安装的。这种电路取代了摩托罗拉6845视频地址发生器和覆盖MDA和CGA全长ISA板的几十个分立逻辑芯片。更直接一点说,它取代了EGA板上的五个定制大规模集成电路(包括6845的定制替换)和许多分立逻辑芯片。其单芯片安装方式将VGA直接放置在电脑主板上的难度降到最低,这减少了组件连接的数量,但反过来却增加了视频子系统的可靠性,因为只需要视频存储器、定时晶体和外部RAMDAC就可使VGA运行。[4]因此,第一批IBM PS/2机型在主板上配备了VGA,但所有“第一家族”的IBM个人电脑台式机机型(包括个人电脑、个人电脑/XT和个人电脑AT)都需要在插槽中安装一个显示适配器来连接显示器,二者形成鲜明对比。

VGA与其他标准分辨率相比。

2.2 规格

VGA的初始规格如下(支持无硬件精灵等):

  • 256千字节视频RAM(第一批卡可以订购64千字节或128千字节RAM,代价是部分或全部的高分辨率16色模式不存在。)
  • 16色和256色调色板显示模式。
  • 262/144色全局调色板(经过RAMDAC的红色、绿色和蓝色通道各有6字节,因此每种通道都存在64个可能级别)
  • 25.175 MHz或28.322 MHz的主像素时钟二选一
  • 常用线路的固定速率为31.46875千赫
  • 水平像素最高位800[5]
  • 行高最多为600[5]
  • 刷新率高达70Hz[6]
  • 垂直空白中断(并非所有克隆卡都支持这一点)
  • 平面模式:最多16种颜色(4位平面)
  • 打包像素模式:256种颜色(13h模式)
  • 支持硬件平滑滚动
  • 没有位块传输器,但能够通过“VGA锁存”寄存器进行非常快速的数据传输
  • 支持某些“光栅操作”
  • 桶式移位器
  • 支持分屏
  • 峰-峰值为0.7伏[7]
  • 双端终接阻抗为75欧姆 (18.7毫安,13毫瓦)
  • 除了标准模式之外,还可对VGA进行配置,使其效仿其前身(EGA、CGA和MDA)的许多模式,包括简化过的全局调色板(在VGA调色板中为文本和4色或16色、200行模式选择特定的预设颜色)和更粗糙的文本字体网格。基本输入输出系统级别的兼容性几乎是满的,就连寄存器级别的兼容性也非常高。尽管VGA具备足够的分辨率、颜色、刷新率和存储能力,但它并不与特殊的IBM PCjr或HGC视频模式直接兼容,任何效仿行为都必须通过软件实现。

2.3 信号时序

VGA水平频率的预期标准值正好是NTSC-M视频系统中使用的值的两倍,因为开发VGA时需要为其配备可选的电视输出解决方案或外部VGA-电视转换盒,而这样的设计可以降低难度。该设计是由齐亚·什莱蒙提出的。名义上,VGA水平频率的预期标准值至少是CGA的两倍,CGA本身使用的是广播频率监视器,主要为信号输入更加直接、没有调谐器的电视。因此,VGA水平频率的计算公式为(60÷1001)×525kHz = 4500÷143 kHz≈ 31.4685kHz,实际操作时,采用的是适用于所有基于光栅的计算机图形的一个方法:使用特定的晶体振荡器或像素时钟锁相环频率,采用整数除法得出所有其它水平和垂直频率。在这种情况下,一个25.175兆赫或28.322兆赫的像素时钟,每行分别有800或900个像素,可分别达到31.46875或31.46889千赫(这样算的话,行高为525或449时就能达到59.94赫兹或70.09赫兹);可能会导致轻微的不匹配(7到12ppm),但这完全在回扫同步系统的范围内。事实上,CGA本身就不如VGA稳定(因为进行逐行扫描时,它每次只能扫描262行,而非262.5行,这与NTSC的隔行扫描特性不匹配),石英振荡器的精度有限(且有随温度和电源电压轻微波动的趋势)。这也就意味着卡的实际频率会稍高或稍低,且与标称值的差异很容易超过固有的失配。

所有衍生出的VGA时序(即那些仍然使用主25.175和28.322兆赫晶体的时序,以及名义上有31.469千赫的线路速率)可能会因一个软件发生很大的改变。该软件可以绕过VGA固件接口,直接与VGA硬件进行通信,就像许多基于微软操作系统的游戏一样。但是,只有标准模式,或者至少与其中一个标准模式有几乎完全相同的同步和同步时序的模式,才能与最初的,也就是20世纪80年代末以及90年代初的,VGA监视器配合使用。实际上,由于其它时序可能会损坏这些监视器,因此软件发行商通常会避免使用这些时序。第三方“多同步”阴极射线管监视器通常更加灵活,与“超级EGA”、VGA以及后来使用扩展模式的SVGA显卡同时使用,可以在任意的同步频率和像素时钟速率(在特定的较低或较高范围内,具体数值取决于型号,通常最小值为CGA的 15.7千赫、SVGA的36千赫和XGA的 36千赫,包含MDA/Hercules 的18.4千赫、EGA 的21.8千赫、25千赫中等分辨率” (一种由几台日本国内市场计算机推广的标准)的24.8千赫以及VGA的31.5千赫和VGA)下扩大分辨率和刷新率的范围,设置为标准或接近标准模式的情况下,通常能达到640x400至720 x480(56至72千赫)、752x410、800x560和800x600。

最常见的VGA模式(640×480、60赫兹、非隔行扫描)的水平时序为:[8][9]

参数 数值 单位
像素时钟频率 25.175 兆赫 [10]
水平扫描频率 31.469 千赫
水平像素 640
水平同步信号极性 Negative
每行花费总时间 31.778 µs
前肩(A) 0.636 µs
同步脉冲长度(B) 3.813 µs
后肩(C) 1.907 µs
有效视频(D) 25.422 µs

(水平同步时间+消隐时间= 6.356秒;相当于A的像素宽度为16,B的为96,C的为48,D的为640,一条完整的线的像素宽度为 800)

注意:相同的总体布局只在较低频率条件下适用于垂直时序。

这些时序在高频模式下是相同的,但是所有像素计数都已经相应地乘以9/8,因此,实际上,有效像素为720,每行的像素为900,后肩像素为54。

其垂直时序为:

参数 数值 单位
纵行 480
垂直同步信号极性 否定
垂直扫描频率 59.94 赫兹
每帧花费总时间 16.683 毫秒
前肩(A) 0.318 毫秒
同步脉冲长度(B) 0.064 毫秒
后肩(C) 1.048 毫秒
有效视频(D) 15.253 毫秒

(垂直同步时间+消隐时间=1.43毫秒;相当于A的行频周期为10毫秒,B的为2毫秒,C的为33,D的为480,一个完整帧的为525毫秒)

频率为70Hz时,这些时序会有所改变,这是因为尽管线路速率相同,但帧频并不完全等于“60 Hz”的7/6,尽管525能被7整除,且480/400本身就相当于6:5。相反,频率为70Hz时,帧数总共为449 (而非预期的450),其中后肩增至34行,前肩增至13行,同步脉冲行数不变,仍为2行。而且,有效图像花费的时间占据总扫描周期的89%,而不是91%。不同于频率为60Hz的负脉冲,频率为70时,用正极性VSync脉冲触发监视器,使其以更高的帧扫描速率进行同步(液晶显示器等数字显示器的水平像素密度更高)。

制造商不同,有效周期和前后肩宽度的具体数值可能会略有不同,尤其是水平区域的参数。但这通常不会出现问题,因为前后间只是作为空白视频缓冲器,在有效区域和同步脉冲之间形成一点过扫描空间(在传统的阴极射线管监视器中,这会触发荧光束发生偏转,“回扫”管的上侧或左侧)。因此其它部分正常工作时,前后肩也能在一定范围内安全运转。前后肩之间的关系也可以在一定的范围内发生变动,这使得它们可能具备一些特殊功能,例如将基于软件的图像与某些图形卡对齐(通过调整水平肩和垂直肩之间有效屏幕区域的位置,而不是完全依赖于监视器自身调控产生的调整范围,后者有时达不到令人满意的效果,从而使图像在监视器框架内处于中心位置)。

通常将该缓冲区用于各种定制屏幕模式,以提升有效分辨率,方法是有意缩短前后肩宽度,并改为利用有效像素的空闲扫描时间。在不改变实际同步宽度的条件下(例如,现实情况下,像素宽为800时,同步脉冲会变短,并且空出一片小的边缘区域以防止视觉效果受到明显影响),该技术能够使25和28兆赫模式下的水平像素分别最高达到704和792,并且当刷新率达到标准频率,即60和70时,该技术可使水平像素分别最高达到523和447 (同样,通常需要保持SOME前后肩线路的完整性,因此在通常情况下,最高只能达到410或512;频率为50Hz时,最高达到600而非626)。不过,幸好这些技术的实际限制并不足以溢出典型的256千字节显卡(800×600需占用235千字节,而且理论上,832×624只需占用254千字节)的可用内存容量,因此唯一需要关心的仍然是监视器兼容性。

2.4 选定模式的典型用途

传统做法是将640×400 @ 70 Hz用于引导大多数VGA兼容x86个人计算机的视频模式,[11]这些计算机显示图形引导屏幕(文本模式引导使用的是720×400 @ 70 Hz)。然而,近年来随着开机自检和基本输入输出系统的屏幕像素越来越高,这种做法已经不太常用。并且,通常会根据连接的监视器的参数自动调整分辨率(最低为800x600,而且已经确定能达到1024x768、1280x800、1440x900和1920x1080)。利用EDID数据和矢量或其他可调整大小的图形,以及使用PS/2或USB鼠标检测,而非仅依赖键盘,来改善用户的视觉体验,使其更接近完全启动的操作系统带来的视觉体验。但是,如果检测失败,或者用户没有使用高质量的图形(或者使用键盘快捷键暂时取消,或者通过BIOS设置永久取消),通常会重新启用原来的标准模式。

Windows 2000问世之前,默认的Windows图形模式(通常为16色)一直都使用640×480 @ 60 Hz的模式。[11]尽管现在Windows系统默认使用1024x768的分辨率(另外,当且仅当运行默认通用视频驱动程序和/或无法检测到连接显示器的本机分辨率时使用该分辨率),并且通常禁止将分辨率设置为低于800x600,但是Windows XP和后来的版本仍然可以选择使用该模式,方法是选择使用引导菜单的“低分辨率视频”选项和设置每个应用程序的兼容模式。自本世纪初以来,对这种低质量、普遍兼容的备用方案的需求已经减少,这是因为即使某个物体的分辨率高于原始分辨率, 越来越多的VGA信号标准屏幕或适配器也能显示该物体,而不能做到这一点的标准屏幕或适配器现在最有可能是被发烧友用于专业用途,例如,进行街机机柜游戏电脑的转换,以及使用可穿戴电脑驱动微型投影仪,而不是被毫无戒心的临时用户用作主桌面显示器进行连接。然而,由于640×480 @ 60 Hz模式保留了这种特殊的用途,虽然不再将其设置为默认模式,但是将其作为一种特殊模式使用,用户可以对其进行设置 (除此之外,还有16色或256色模式,而不是现在常用的16/24/32位直接颜色)。

在这个VGA时代,最常用的电脑游戏模式是320×200 @ 70 Hz。该模式的时序与640×400的完全相同,但像素速率是它的一半(在256色模式下,每个像素的位深度加倍),并且每行的像素都显示两次。

实际时序与规定的标准略有不同。例如,对于640×480 @ 60赫兹这种模式,像素频率为25.175兆赫、25.17秒有效视频时间的像素为634,而非预期的640。鉴于频率和线路长度相似,出现不一致的原因可能是印刷错误从未被检测或纠正;在标准时钟(39.722ns/像素)下,正确的标称有效周期应该改为25.422微秒。否则,如果规格数据真实,那么就会出现时间更短的39.328纳秒/25.427兆赫的点时钟。由于主时钟和基本分频器十分流行,且在比较任何权利要求时操作简单,所以,进一步检查其它细节 (例如,检查行周期/频率和刷新率是否正确,以及有效+前/后肩时间和同步脉冲时间加在一起时的总像素或行计数)可以帮助我们更清楚地了解差异出现的位置及其原因。

2.5 连接器

D-子连接器(俗称VGA连接器)

VGA使用的是一个DE-HD15连接器(由于容易与与大多数电脑声卡和一些ATX面板上的较大、密度较低的操纵杆/MIDI连接器相混淆,人们常将其误称为“数据库-15”)。该连接器安装在ISA扩展卡的卡舌上。

VGA BNC连接器

连接VGA设备的另一种方法是使用BNC连接器,即使是在延长的电缆线路上,信号质量也非常高,通常需要使用五个(一组)连接器,分别用于红色、绿色、蓝色、水平同步和垂直同步。可借助BNC通过互联完全屏蔽端-端同轴电缆,因此不会出现串扰或造成外部干扰,而且仅借助简单的信号放大器即可将标准VGA的最远可靠距离(15米)翻倍,达到40-50米。

然而,与15针D-shell相比,BNC连接器相对较大。并且由于15针D-shell只需要接入一个插头,因此需要使用BNC连接器时,需确保每根电缆都连接到正确的插座。尽管核心RGB线着色恰当,但是同步线的颜色不确定,可能是黄色、灰色、白色和黑色中的任何一种。尽管与同步线颜色相关的标准确实存在,但通常不清楚连接点处的正确排列,需要使用排除法。此外,BNC连接器不支持+5V DC和DDC / DDC2信号等额外线路。

如果在没有任何主动放大的情况下,模拟信号超过约50米或30米,电缆电容可能是其中一个原因,因为它能显著降低图像的水平分辨率并导致同步不良。在这些情况下,可以使用“SPI”数字编解码器(通过屏蔽的CAT5网络级电缆连接),或者甚至帧抓取加TCP/IP网络等其他方法来长距离传输图像,即使图像可以作为模拟VGA或编解码器可能支持的各种其他标准继续进行最初和最后几十厘米的传输。

2.6 标准文本模式

BIOS为VGA适配器提供了一些文本模式,包括分辨率为80×25、40×25、80×43或80×50的文本网格。每个单元格可以从16种可用的前景色和8种背景色中分别选择一种。可以选择的这八种背景颜色是没有设置高强度位的颜色。也可以让每个字符闪烁,所有设置为闪烁的字符会一起闪烁。还可以选择不将整个屏幕都设为闪烁,而是将全部16种颜色作为背景。所有这些选项都与IBM引入的CGA适配器上的选项相同。

与EGA一样,VGA的屏幕上最多可以用8种前景色同时显示512个不同的字符,做法是重新指定一个颜色位作为字符数的最高位。80×25模式下的字形通常由9×16像素组成。用户可以通过在卡片上加载自定义字体来定义自己的字符集。由于VGA上的字符宽度只占8位(这点与其所有前身一样),任何两个水平相邻的字形之间通常有一个空白像素列。但是,一般的做法是重复一些字符的最后一列来使其宽增至9位,而不是插入一个空白列,尤其是那些定义水平连接的IBM制表符的字符。这个功能是硬连接到字符数C0hex到DFhex的,在代码页437及其最常见的派生代码中可以找到所有水平连接的字符。具有9×14像素字形的旧MDA硬件上已经使用了这一列重复技巧,但是当VGA加载那些字符数不代表制表符的字体时,不能使用该技巧。[12][13]

2.7 单色模式

VGA适配器通常支持单色和彩色两种模式,尽管单色模式几乎从未使用过,并且通常不支持主数据区文本模式的全套属性(强调、下划线)。几乎所有现代VGA适配器上的黑白文本都是在彩色模式下使用黑色背景上的灰色文本绘制而成的。虽然主要用于文本的VGA单色显示器是在之前售出的,但它们中的大多数将来至少可以与VGA适配器一起在彩色模式下工作。偶尔,现代显示器和视频卡之间的错误连接会导致视频卡的VGA部分检测到的显示器为单色,这会导致BIOS和初始引导序列以灰度的形式显示。通常,一旦视频卡的驱动程序被加载(例如,通过继续引导到操作系统),此检测结果就会被覆盖,监视器也会恢复正常颜色。

2.8 寻址细节

为640×480,16色和320×200,256色(下)的VGA图像。抖动是用来降低颜色限制。

通过计算机实际模式地址空间中0xA0000和0xBFFFF段之间的窗口(A000:0000和B000:FFFF段:偏移符号) 将VGA的视频存储器映射到计算机存储器。这些起始段通常为:

  • 适用于EGA/VGA图形模式的0xA000 (64 KB)
  • 适用于单色文本模式的0xB0000(32 KB)
  • 适用于彩色文本模式和CGA兼容图形模式的0xB8000 (32 KB)

由于不同模式使用不同的地址进行映射,因此可以在同一台机器上安装单色适配器(即MDA或Hercules)和彩色适配器(如VGA、EGA或CGA)。20世纪80年代初,通常用这种做法在单色显示器上以高分辨率文本显示Lotus 1-2-3电子表格,并同时在低分辨率CGA显示器上显示相关图形。过去,许多程序员也将这种设置与单色卡结合使用,来显示调试信息,而此时程序在另一个卡上以图形模式运行。一些调试器,如Borland的涡轮调试器、D86(由艾伦·考克斯开发)以及微软的CodeView 可以在双监x视器模式下工作。涡轮调试器或CodeView 都可以用来调试窗口。也有像ox.sys这样的DOS设备驱动程序,ox.sys在单色显示器上进行串行接口模拟,例如,允许用户从调试版本的窗口接收崩溃消息,而不是使用实际的串行终端。也可以在DOS提示符下使用“模式单色”(MODE MONO)命令将输出重定向到单色显示器。没有单色适配器时,可以将0xb 000–0xb 7ff地址空间作为其他程序的附加内存(例如,通过在config.sys中添加“DEVICE=EMM386.EXE = B000-B7FF” 行时,能够进行“高加载”的程序都可以使用该附加内存。“高加载”是指加载到高内存。)

3 调色板编辑

VGA 256默认调色板

VGA颜色系统向后兼容EGA和CGA适配器,并增加了另一个间接级别来支持8位256色。

CGA能够显示16种固定颜色,EGA通过使用16个调色板寄存器扩展了这一功能,每个寄存器中有一个来自64色调色板的颜色值。筛选EGA调色板的默认值,使它们看起来与CGA颜色相似,但是可以重新映射所有颜色。(注意:这适用于图形和文本模式。)来自EGA调色板条目的信号会驱动EGA输出上的一组六条信号线,其中有两条与一种颜色对应(关和暗对应红色、正常对应绿色、亮对应蓝色)。

VGA通过添加256个颜色寄存器进一步扩展了该操作,每个寄存器3×6位,总共有262个,有144种颜色可供选择。这些颜色寄存器默认设置为匹配64种默认EGA颜色,它们的值驱动DAC,DAC又驱动三条信号线,红色、绿色和蓝色各一条。(因为使用的是模拟信号,理论上,默认VGA电缆可以承载无限数量的颜色值。)

就像EGA使用CGA颜色值来处理调色板条目一样,VGA硬件也不将调色板条目直接用作信号电平,而是用作颜色寄存器的索引。因此,在16色模式下,内存中的颜色值会引用调色板寄存器,而调色板寄存器会选择一个颜色寄存器。例如,EGA调色板上棕色(在CGA: 4(红色)+ 2(绿色))的默认调色板条目包含0x14(深绿色+正常红色)。将相应的VGA颜色寄存器0x14预设为(42、21、0或#aa5500;关导致棕色出现)。

在256色模式下,调色板寄存器会被忽略,数模转换器被设置为将四个2位颜色值(每个平面一个)组合成原始的8位值。中央处理器接口以完全相同的方式组合了4个平面(一种称为“链-4”的特性),因此对于中央处理器而言,像素就是一个打包的8位值。该颜色编号正是使用的颜色寄存器。由于人们仍然认为颜色0...15应该产生CGA颜色,但是没有将颜色寄存器预设为包含EGA调色板,而是在第一批条目中包含16种CGA颜色。其他条目是从黑到白的16个灰度级和9组24个颜色值。其余8个条目是黑色的(见图)。[14]

彩色图形适配器(CGA) 增强型图形适配器(EGA) 视频图形阵列

(VGA)

RGB 例子
0x0 0x0 0,0,0 0,0,0 #000000 黑色
0x1 0x1 0,0,42 0,0,170 #0000AA 蓝色
0x2 0x2 0,42,0 0,170,0 #00AA00 绿色
0x3 0x3 0,42,42 0,170,170 #00AAAA 蓝绿色
0x4 0x4 42,0,0 170,0,0 #AA0000 红色
0x5 0x5 42,0,42 170,0,170 #AA00AA 品红
0x6 0x14 42,21,0 170,85,0 #AA5500 棕色
0x7 0x7 42,42,42 170,170,170 #AAAAAA 灰色
0x8 0x38 21,21,21 85,85,85 #555555 深灰色
0x9 0x39 21,21,63 85,85,255 #5555FF 亮蓝色
0xA 0x3A 21,63,21 85,255,85 #55FF55 鲜绿色
0xB 0x3B 21,63,63 85,255,255 #55FFFF 亮青色
0xC 0x3C 63,21,21 255,85,85 #FF5555 鲜红色
0xD 0X3D 63,21,63 255,85,255 #FF55FF 亮洋红色
0xE 0x3E 63,63,21 255,255,85 #FFFF55 黄色
0xF 0x3F 63,63,63 255,255,255 #FFFFFF 白色

VGA调色板的灰度颜色值
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F
0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F
0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F

4 编程编辑

将256千字节的VGA内存“释放”到四个独立的“平面”上,使VGA的256千字节内存在256色模式下可用。在某些类型的图形操作中,需要权衡额外的复杂性以及性能损失,但在某些情况下,其他操作会变得更快,从而缓和了这一矛盾:

  • 可以加快单色多边形的填充速度,因为只需对硬件进行一次写入即可设置四个像素。
  • 视频适配器可以帮助复制视频RAM区域,这有时比使用相对较慢的中央处理器-可变增益放大器的接口速度要快。
  • 在硬件中使用多个视频页面实现双缓冲、三缓冲或分屏,虽然这在VGA的320×200 16色模式下可行,但在库存13h模式下是不可能实现的。
  • 最特别的是,是可能出现几种任意分辨率更高的显示模式的,可编程上限为16色的800×600(或256色的400×600)以及在任何一种颜色模式中使用水平和垂直像素计数的不寻常组合的其它定制模式。

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”分辨率通常被称为X模式,这是迈克尔·阿布拉什(Michael Abrash)在Dr. Dobb's Journal这一杂志上提出该分辨率时使用的名称。

仅在特殊的选入情况下使用最高分辨率模式,而不将其作为标准模式使用,尤其是在涉及行数比较多的情况下。标准VGA显示器具有固定的行扫描(H-scan)速率——“多同步”显示器在当时非常昂贵——因此必须降低垂直/帧(V-scan)刷新率以适应它们,这使可见闪烁出现的情况更多,从而导致眼睛疲劳。例如,分辨率最高的800×600模式,以匹配的SVGA分辨率为基础(总共628行),将刷新率从60赫兹降低到约50赫兹(而在16色模式下用256kb可达到的理论最高分辨率为832×624,该分辨率模式会将刷新频率降至约48赫兹,仅高于XGA监视器采用双频交错技术来减轻全帧闪烁的频率)。

这些模式与某些显示器完全不兼容,会出现显示问题,例如在过扫描后,图像细节丢失(尤其是在水平方向)、垂直滚动、水平同步质量不佳,甚至图像完全缺失。具体问题取决于所尝试的特定模式。由于这些潜在问题,商业产品中使用的大多数VGA调整仅限于更符合标准的“显示器安全”组合,例如256色的320×240(方形像素,三个视频页面,60 Hz)、320×400(双分辨率,两个视频页面,70 Hz)和360×480(与标准VGA显示器和卡兼容的最高分辨率,一个视频页面,60 Hz)以及16色模式下的双H-rez。

5 硬件制造商编辑

几家公司生产与VGA兼容的图形板模型。[15]

  • ATI(被AMD收购): Graphics Solution Plus、Wonder系列以及Mach系列
  • S3 Graphics:S3 911、911A、924、801、805、805i、928、805p、928p、S3 Vision系列、S3 Trio系列
  • Matrox: MAGIC RGB
  • Plantronics: Colorplus
  • Paradise Systems (已关闭):PEGA 1、PEGA 1a以及PEGA 2a
  • Tseng Labs:ET3000、ET4000以及ET6000
  • Cirrus Logic:C1-GD 400、C1-GD 500和C1-GD 5000系列
  • Trident Microsystems:TVGA 8000系列、TVGA 9000系列、TGUI9000系列
  • IIT
  • NEC
  • Chips and Technologies
  • SiS
  • Tamerack
  • Realtek
  • Oak Technology
  • LSI
  • Hualon
  • Cornerstone Imaging
  • Winbond
  • AMD
  • Western Digital
  • Intergraph
  • Texas Instruments
  • Gemini(已关闭)
  • Genoa(已关闭)

参考文献

  • [1]

    ^Ken Polsson. "Chronology of IBM Personal Computers". Archived from the original on 2015-02-21. Retrieved 2015-01-28..

  • [2]

    ^"What is VGA (Video Graphics Array)?" (in 英语). Retrieved 2018-08-13..

  • [3]

    ^Abrash, Michael. "How 360×480 in 256 color mode works". Graphics Programming Black Book. Archived from the original on 23 April 2012. Retrieved 7 November 2012..

  • [4]

    ^Thompson, Stephen (1988). "VGA ‒ Design choices for a new video subsystem". IBM Systems Journal. IBM. 27 (2): 185‒197. doi:10.1147/sj.272.0185..

  • [5]

    ^PS/2 Video Subsystem Technical Reference Manual 1992.

  • [6]

    ^"VGA Signal timings". Archived from the original on 2016-06-20..

  • [7]

    ^"VGA Electrical FAQ". Archived from the original on 2016-04-29..

  • [8]

    ^"Javier Valcarce VGA timings page". Archived from the original on 2015-01-02..

  • [9]

    ^HP D1194A Super VGA Display & HP D1195A Erognomic Super VGA Display Installation Guide, Hewlett Packard.

  • [10]

    ^Article "Re: VGA specifications ,where ?" posted 19 November 1997 to sci.electronics.design newsgroup by Jeroen Stessen.

  • [11]

    ^"ePanorama.net - Circuits". Archived from the original on 2009-02-27. 090425 epanorama.net.

  • [12]

    ^J. D. Neal (1998). "Hardware Level VGA and SVGA Video Programming Information". FreeVGA Project. Archived from the original on 2010-09-01. Retrieved 2010-11-18..

  • [13]

    ^Innocenti Maresin. "VGA console basics and Linux console-tools, VGA-compatible text screen features and restrictions". Archived from the original on 2012-01-06. Retrieved 2010-11-18..

  • [14]

    ^Uphoff, Matthias (1990). Die Programmierung der EGA/VGA Grafikkarte; ISBN 3-89319-274-3; this whole section was learned from this book.

  • [15]

    ^"The History of the Modern Graphics Processor". techspot.com. Archived from the original on 29 March 2016. Retrieved 6 May 2018..

阅读 147
版本记录
  • 暂无