1MB显存的显示卡为什么不能设置为真彩色

Author: 何宗琦 Date: 1997-01-01

#3  广西梧州重型机械工业公司王文平问:我的显示卡为S3 Trio 64+,1MB显存。在Windows 3.2下不能设置成640×480×16.7M色,但是却能够设置成800×600×64K色。根据我的计算,640×480×16.7M色只需要900KB显存,而800×600×64K色要937.5KB,这如何解释?请专家予以指导。
  答:显示分辨率与颜色和显存容量的关系可用以下公式计算:
  显存容量=纵向分辨率×横向分辨率×每像素字节数
  表现16.7M色需要24位,即3字节,根据该公式计算所需要的显示内存为:
  480×640×3=921600B=900KB
  表现64K色需要16位,即2字节,根据该公式计算所需要的显示内存为:
  600×800×2=960000B=937.5KB
  你的计算是完全正确的,但是,这只是理论上的计算。虽然24位(3字节)即可生成16.7M色,但是24位不是2的方幂,所以24位方式并不能直接生成,而是由16+8位来构成的,因此24位方式的速度较慢。为了解决这个问题,目前的真彩卡一般都采用32位(4字节)来生成16.7M色。这样一来, 在480×640分辨率下设置成16.7M色时所需要的显示内存容量应该计算为:
  480×640×4=1228800=1.2MB
  此外,这里计算出来的容量仅仅是像素点的颜色数据所需要的显示内存容量,实际上,还需要有一定的系统开销。例如:在很多加速卡上都提供了“位图高速缓存”功能,以便提高性能,但是它要求有一定容量的存储器来支持,因此实际要求的显示内存容量比1.2MB还要大,而你的显示内存只有1MB,当然就不够使用了。而64K色的情况下只用了937.5KB,剩下的部分还可作为高速缓存使用(仍然太小),因此是可以设置成功的。