
抖动是一种非常有用的方法,用于使用只能显示几种颜色的设备来显示色彩信息丰富的图像. 近年来,抖动技术受到越来越多的关注,它可以更好地解决色彩压缩和压缩后色彩失真的问题. 在这里,我们介绍了两种抖动方法(拜耳抖动和WING抖动),它们可以在屏幕上显示图像并获得更好的效果.
1. 拜耳抖动
Bayer抖动是有序抖动方法之一. 有序抖动的基本原理如下:
假设V为输出像素值,C为输入像素值,d(x,y)为m×m矩阵,则抖动过程可用以下公式表示
当C(x,y)> d(x,y)时,V(x,y)= 1; C(x,y)≤d(x,y)时为0

其中d(x,y)称为抖动矩阵,
d(x,y)= M [y mod m] [x mod m]
以下矩阵是抖动矩阵的一种形式,这种抖动方法称为拜耳抖动
0 32 8 40 2 34 10 42
48 16 56 24 50 18 58 26

12 44 4 36 14 46 6 38
60 28 52 20 62 30 54 22
3 35 11 43 1 33 9 41
51 19 59 2 749 17 57 25
15 47 7 39 13 45 5 37

63 31 55 23 61 29 53 21
2. WinG抖动
WinG是为Windows 3,l抖动算法,Windows 95和Windows NT设计的优化的高性能图形库,并在386以上的处理器上运行. 程序员可以将内存中与设备无关的位图直接复制到屏幕上,并提供抖动API,使用标准的Microsoft抖动调色板来支持真实色彩的模拟.
抖动调色板是点对点调色板. 仔细选择和优化其中包含的颜色,以便8位设备通过抖动模拟真实颜色. WinG图形库提供了两个支持抖动的API: WinG Create Halftone Palette和WinG Create Halftone Brush以实现仿真.
抖动调色板为应用程序提供了将24位图像抖动到8位设备上的框架. 256种颜色的抖动调色板包含20种静态颜色和一系列灰度值.

鉴于24位RGB颜色,可以根据以下公式计算抖动调色板中最接近的颜色索引值
半色调索引=(红色/ 51)+(绿色/ 51)* 6 +(蓝色/ 51)* 36;
HalftoneColorIndex = aWinGHalftoneTranslantion [HalftoneIndex];
AwinGhalftoneTranslation向量可以在HALTONE源程序中找到.
通过对从24位彩色到8位彩色的各种算法的分析和实验,可以看出,无论是统计算法,中值分割算法,固定调色板算法还是抖动算法,都有的优点和缺点. 当面对需要转换为彩色显示模式的图像时抖动算法,我们应该区别对待,并从这几种算法中选择合适的算法,以获得更好的效果.
通常来说,抖动算法的效果更好. 近年来,抖动算法受到了广泛的关注. 在某些游戏软件中,几乎所有抖动算法都适用于将24位图像转换为8位彩像. 转换降低了存储成本并大大提高了显示效率,从而使某些原本只能在DOS下运行的游戏已移植到WINDOWS. 这大大提高了游戏质量.
对于统计算法,它适用于颜色较少的图像,但不适用于颜色较多的图像. 对于色彩丰富的图像,可以使用固定的调色板算法.
简而言之,在对图像执行颜色压缩转换时,应综合考虑各种因素,例如颜色分布,转换过程的运行速度以及其他因素,以获得最佳效果.
最后修改时间为2006-07-30 10:54阅读(?)编辑
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-196848-1.html
发财的人当然不是常人
联想不思进取
他要的就是你这句话