概述
第四节 VGA显示卡原理
一、VGA的结构VGA显示卡的主要组成如下图所示:
各组成部分及各部分的基本功能如下。
显示存储器(Display Memory)
VGA的显示存储器是一种动态随机存储器(DRAM或VRAM),显示存储器以一定的数据格式完整地保存着当前所要显示的一整屏图象,主机的CPU通过向显示存储器写入数据来实现图象显示,显示卡则根据存储器中所存储的数据来控制显示器进行图象显示。
图形控制器(Graphics Controller)
图形控制器位于CPU和显示存储器之间的数据通道上,在CPU读写显示存储器时,图形控制器是透明的。图形控制器提供了对写入存储器的数据进行逻辑操作、移位操作,对读出数据进行比较的功能,通过对图形控制器编程即可获得对这些功能的硬件支持,加快图形操作速度。
CRT控制器(CRT
Controller)
CRT控制器产生时序信号,以对显示器的光栅扫描及屏幕刷新进行同步控制,它控制着显示器的分辨率、各种扫描频率及扫描过程的时序,同时它还控制着光标状态、屏幕与显示存储器的映射关系。
CRT控制器的时序状态一般是通过BIOS来设置,直接编程来修改它的时序状态是比较困难的。通过对CRT控制器编程,可改变屏幕与显示存储器的映射关系,由此可用硬件实现滚动、漫游、屏幕分割、多显示页等特殊功能。
数据串行发生器(serialize)
数据串行发生器从显示存储器中读取图象数据,并将所读出的数据串行化,发送给属性控制器或数模转换器。
属性控制器(Attribute Controller)
属性控制器主要在16色模式下起作用,它有一个16色对256色的颜色查找表,通过该表将4位的颜色值转换为8位的颜色值,然后将这8位的颜色值传送给数模转换器。在256色模式下属性控制器将被忽略。
VGA的属性控制器继承于EGA,在EGA上其颜色查找表为16色对64。在VGA上属性控制器实际上并无存在的必要。
数模转换器(DAC)
数模转换器有一个8位对18位的颜色查找表,它将来自属性控制器或数据串行发生器的8位颜色值转换为18位的颜色值,这18位颜色值被分成3个6位,分别用来表示红绿蓝三色的亮度,最后,这三个6位值被转换为三个模拟信号值发送给显示器,以控制三个电子束的强弱。
在真彩色和高彩色模式下,红绿蓝三色的亮度值直接来自数据串行发生器,这时颜色查找表将不起作用。
通过编程可修改属性控制器和数模转换器中的色彩查找表,从而可以在一个很宽的范围内对16色和256色模式下的颜色值进行设置。
定序器(Sequencer)
定序器产生点和字符的时钟,控制整个适配器上所有功能的时序。定序器还用于确定字符发生器的位置,仲裁CPU及适配器对显示存储器的访问,屏蔽CPU对某一位面的修改。
二、VGA显示模式VGA在任一时刻都必须工作在某一显示模式之下,它的显示模式分为字符模式和图形模式两大类。
字符模式也称文本模式,在字符模式下,最基本的操作单元为字符,一屏所能显示字符的行数和列数及字符属性的表示方法即构成了一种具体的字符显示模式。VGA标准的字符显示模式为80列、25行、16色。字符模式具有极快的显示速度,但它不能显示图形。在图形模式下,最基本的操作单元为单个象素点,一定的象素分辨率及一定的色彩表示方式即构成了一种图形显示模式。VGA的图形模式分为三类:CGA、EGA兼容图形模式;标准VGA图形模式;VGA扩展图形模式。后两种模式统称为VGA图形模式。本书将只介绍VGA图形模式的编程技术,而不涉及对字符模式和CGA、EGA兼容图形模式的介绍。
VGA可以支持多种分辨率及多种色彩表示方式,多种分辨率与多种色彩表示方式相组合即形成了非常丰富的VGA图形显示模式。三、色彩表示方式VGA显示器及显示器与显示卡的接口都采用模拟方式来处理色彩,因此它们都具有无限的色彩显示和传输能力。但主机和显示卡只能用数字方式来表示和处理色
彩,在用数字方式表示色彩时,如果要获得更丰富更细腻的色彩就需要增加表示色彩的数据位数,这就需要更大容量的显示存储器,相应的也就需要有更高的处理速
度,而同时分辨率的提高也对显示存储器的容量提出了很高的要求。为了尽量降低对显示存储器容量的需求,在VGA上采用了一种间接色彩表示方式:用一个索引值来确定各个象素点的颜色,而不是直接用红绿蓝三基色的亮度值来确定每个象素点的颜色,然后用一个色彩查找表来确定每个索引值所对应的真实颜色值。索引值占用较少的数据位,而用较长的数据位来定义色彩查找表中的真实颜色值,这样既能减少显示存储器的容量,又能获得丰富细腻的色彩显示能力,但这时在同一屏图象中所显示的不同颜色的数量要受到索引值取值范围的限制。VGA的颜色查找表采用18位数据来定义一个真实颜色,红绿蓝三种基色各占6位,每种基色可有64级亮度,总共可组合出262144(256K)种颜色。
VGA的颜色索引值采用了4位和8位两种数据长度:4位数据可有16种不同的取值,其对应于VGA的16色模式,这时一屏只能显示16种不同的颜色;8位
数据可有256种不同的取值,其对应于VGA的256色模式,这时一屏可显示256种不同的颜色。这种采用间接色彩表示方式的图形模式称为间接色彩模式,
较早的VGA都只具有这种间接色彩模式。
随着显示速度的提高、存储器价格的下降及应用要求的提高,在VGA上又出现了直接用红绿蓝三基色的亮度值来确定每个象素点颜色的直接色彩模式,在直接色彩模式中用16位或24位来定义一个象素的颜色,16位的模式称为高彩色模式,24位的模式称为真彩色模式。在高彩色模式中,每个基色占5位或6位数据、有32级或64级亮度,总共有32768(32K)种或65536(64K)种颜色;在真彩色模式中,每个基色占8位数据、有256级亮度,总共有16777216(16M)种颜色。与间接色彩模式相比,直接色彩模式完全消除了同屏颜色数的限制,简化了软件的色彩操作方式,并可以获得更加细腻的色彩。
24位的直接色彩模式之所以被称为真彩色模式,是因为这种模式事实上已达到了CRT显示器色彩表现能力的极限,在这种模式下人的视觉已无法从屏幕上分别出
相邻两种颜色的差别,这时进一步增大表示色彩的位数已不再有意义。在某些计算机图形系统中存在着一种32位的色彩表示方式,但在这种表示方式中,用来描述
颜色值的仍然只有24位,剩下的8位被用来描述三维图象处理中所需的一些属性。
表1-1列出了VGA所支持的各种色彩模式及它们的有关特性。在某些VGA上还有4色和2色模式,但这些模式很少被使用,且不被VESA标准支持。
表1-l
VGA色彩模式
色彩模式
数据位
同屏颜色数
最大颜色数
亮度级
表示方式
16色
4
16
262144(256K)
64
间接色彩
256色
8
256
262144(256K)
64
间接色彩
15位高彩色
15
215(不限)
32768(32K)
32
直接色彩
16位高彩色
16
216(不限)
65536(64K)
32或64
直接色彩
24位真彩色
24
224(不限)
16777216(16M)
256
直接色彩
对直接色彩模式有时也用数据位数或最大颜色数来表示,如15位高彩色有时也被称为15位色或32色,24位真彩色有时被称为24位色或16M色。四、分辨率显示器所显示的分辨率由显示卡来控制,VGA可以在一个很大的范围内支持多种分辨率,表1-2列出了VGA所支持的各种分辨率及有关特性。
表1-2
VGA的分辨率
分辨率
整屏象素数
宽高比
水平修正率
垂直修正率
320×200
64000
1.6
1.2
0.833
512×480
245760
1.067
0.8
1.25
640×400
25600
1.6
1.2
0.833
640×480
307200
1.333(4:3)
1
1
800×600
480000
1.333(4:3)
1
1
1024×768
786432
1.333(4:3)
1
1
1280×1024
1310720
1.25
0.9375
1.067
1600×1200
1920000
1.333(4:3)
1
1
2048×2048
4194304
1.0
0.75
1.333
在选择分辨率时,分辨率的宽高比是一个需要考虑的因素,它指水平象素数与垂直象素数之比。在软件中通常是以象素为单位对图形的尺寸进行控制,这时如果分辨率的宽高比与屏幕的宽高比1.333(即4比3)不一致,所显示的图形就会发生变形,如圆变成椭圆,正方形变成长方形,水平修正率是在分辨率的宽高比与屏幕不一致时,用来对图形的水平尺寸进行变换的系数,它等于分辨率宽高比除以屏幕宽高比。垂直修正率是水平修正率的倒数,它用来对图形的垂直尺寸进行变换,对一幅图形只需从一个方向进行修正。对图形的修正总会降低软件的作图速度,并且会使软件变得复杂,因此在软件中应尽量采用那些宽高比与屏幕一致的分辨率,即水平修正率和垂直修正率部为1的分辨率。表2-2所列出的只是VGA上常见的一些分辨率,在某些VGA上还提供了其它一些不常用的分辨率。事实上通过直接对VGA的CRT控制器编程,就可以在显示存储器容量及扫描频率所允许的范围内对VGA的分辨率进行任意设置,但这项工作比较复杂而且无法保证兼容性。
最后
以上就是傲娇黄豆为你收集整理的计算机属性原理,计算机图形显示原理(第四节上)的全部内容,希望文章能够帮你解决计算机属性原理,计算机图形显示原理(第四节上)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复