加载中…
个人资料
我为卿狂
我为卿狂
  • 博客等级:
  • 博客积分:0
  • 博客访问:19,919
  • 关注人气:12
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

计算机图形显示原理(第四节上)

(2011-11-07 10:45:55)
标签:

杂谈

分类: 系统开发

第四节 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的分辨率进行任意设置,但这项工作比较复杂而且无法保证兼容性。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有