具有伽玛调整及自适应滤波的子像素着色方法及系统转让专利

申请号 : CN02815553.X

文献号 : CN1539129B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肯迪斯·海伦·布朗·艾略特保罗·希金斯汤姆斯·洛伊德·克瑞迪里

申请人 : 三星电子株式会社

摘要 :

本发明公开了一组具有伽玛调整的子像素着色的方法及系统。该伽玛调整能使子像素排列的亮度与人眼亮度通道的非线性伽玛响应相匹配,而色度则能与人眼色度通道的线性响应相匹配。该伽玛校正能让算法不依赖于显示装置的实际伽玛而独立运行。本发明所公开的带有伽玛调整的子像素着色技术可对显示装置的伽玛进行优化,以改善其反应时间、点转换平衡度、以及对比度等,因为子像素着色算法的伽玛校正及补偿提供了子像素着色期间所需的伽玛值。这些技术可附加于任何指定的伽玛传递曲线。包含一组像素、每个像素具有一组颜色子像素的显示器的处理数据包括接收像素数据。一旦接收到像素数据,显示器的数据处理将使像素数据转换成子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据。接着,显示器的数据处理还包括如果条件存在则校正子像素着色数据,以及输出子像素着色数据。

权利要求 :

1.一种对包含一组像素、而每个像素又具有一组颜色子像素的显示器进行数据处理的方法,该方法包括:接收像素数据;

应用伽马调整将像素数据转换成子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据;以及输出子像素着色数据,

其中所述应用伽马调整包括:

对像素数据执行伽马校正以产生伽马校正数据;

将伽马校正数据转换为子像素着色数据。

2.如权利要求1所述的方法,其中所述应用伽马调整在子像素着色数据的颜色平衡中提供了线性度。

3.如权利要求2所述的方法,其中所述应用伽马调整进一步提供了与子像素着色数据有关的明亮度非线性计算。

4.如权利要求3所述的方法,其中所述伽马校正执行的函数为g-1(x)=xγ。

5.如权利要求1所述的方法,其中所述伽马调整的伽马值对所有空间频率均采用同一选定水平,该选定水平对应于某一空间频率期望的对比率。

6.如权利要求1所述的方法,其中所述应用伽马调整包括基于像素数据计算局部平均。

7.如权利要求6所述的方法,其中所述应用伽马调整进一步包括对局部平均执行伽马校正,以产生伽马校正局部平均,以及将乘以像素数据的该伽马校正局部平均转换为子像素着色数据。

8.如权利要求7所述的方法,其中所述伽马校正执行的函数为g-1(x)=xγ-1。

9.如权利要求1所述的方法,其中所述伽马调整的伽马值随空间频率的增大而增大。

10.如权利要求1所述的方法,其中所述应用伽马调整包括:对像素数据执行欧米伽校正以产生欧米伽校正数据;以及基于欧米伽校正数据计算欧米伽校正局部平均。

11.如权利要求10所述的方法,其中所述欧米伽校正执行的函数为w(x)=x1/w。

12.如权利要求10所述的方法,其中所述应用伽马调整进一步包括:对欧米伽校正局部平均执行伽马校正以产生伽马一欧米伽校正局部平均;以及将乘以像素数据的伽马-欧米伽校正局部平均转换为子像素着色数据。

13.如权利要求12所述的方法,其中所述伽马校正执行的函数为g-1w-1(x)=(xw)γ-1。

14.一种为一个可以用三色子像元显示子像素着色数据的显示器转换图像采样数据的方法,该方法包括:接收包含多个第一数据值的采样数据,其中每个第一数据值均代表图像中每种颜色的每个数据点;

对所述采样数据中的每个第一数据值执行伽马校正,以生成伽马校正数据;以及基于伽马校正数据计算含有多个第二数据值的子像素着色数据,其中每个第二数据值均对应于显示器上每种颜色的每个子像元。

15.如权利要求14所述的方法,其中所述子像素着色数据的计算包括显示器上子像素排列的计算,其中该显示器至少在水平轴和垂直轴中的一个轴上含有交替的红色和绿色子像元。

16.如权利要求14所述的方法,其中所述子像素着色数据的计算包括:查询含有多个系数项的一个滤波核;

将所述每个第一数据值的伽马校正数据乘以该滤波核中的每个对应的系数项;以及将每个相乘的项相加以生成所述每个第二数据值。

17.如权利要求14所述的方法,其中所述伽马校正补偿了人眼对亮度的响应函数。

18.如权利要求14所述的方法,其中进一步包括:对子像素着色数据执行后伽马校正,该后伽马校正补偿了显示器配备的伽马函数;以及将后伽马校正子像素着色数据输出到显示器。

19.如权利要求14所述的方法,其中所述伽马校正执行的函数为g-1(x)=xγ。

20.如权利要求14所述的方法,其中进一步包括:为所述每种颜色的各个数据点确定采样数据中的隐含采样区域;以及确定对应于每种颜色的各个子像元的重采样区域,其中子像素着色数据的计算要用到滤波核中的多个系数项,这些系数项的每一项各自代表一个重叠百分比,即某一个给定的重采样区重叠于各个隐含的采样区的部分占该给定重采样区的百分比。

21.一种为一个可以用三色子像元显示子像素着色数据的显示器转换图像采样数据的方法,该方法包括:接收包含多个第一数据值的采样数据,其中每个第一数据值各自代表图像中每种颜色的各个数据点;

在采样数据中生成所述每个第一数据值的伽马调整数据值;以及基于伽马调整数据值与第一数据值的乘积计算含有多个第二数据值的子像素着色数据,其中每个第二数据值各自对应于显示器上每种颜色的各个子像元。

22.如权利要求21所述的方法,其中所述子像素着色数据的计算包括显示器上子像素排列的计算,该显示器至少在水平轴和垂直轴中的一个轴上含有交替的红色和绿色子像元。

23.如权利要求21所述的方法,其中所述生成伽马调整数据值包括:基于采样数据计算所述每个第一数据值的局部平均;以及对局部平均执行伽马调整。

24.如权利要求23所述的方法,其中所述伽马调整执行的函数为g-1(x)=xγ-1。

25.如权利要求23所述的方法,其中所述第一数据值包含多个边缘项和一个中心项,而计算局部平均包括:利用中心项计算各个边缘项的第一平均;

基于第一平均计算中心项的第二平均。

26.如权利要求23所述的方法,其中所述第一数据值包含多个边缘项和一个中心项,而计算局部平均包括利用中心项计算各个边缘项的平均,其中生成伽马调整数据进一步包括:利用边缘项的伽马调整平均生成中心项的伽马调整局部平均。

27.如权利要求21所述的方法,其中所述子像素着色数据的计算包括:查询含有多个系数项的一个滤波核;

将所述每个第一数据值的伽马调整数据值乘以滤波核中对应的各个系数项以及该第一数据值;以及将每个相乘的项相加以生成所述每个第二数据值。

28.如权利要求21所述的方法,其中所述伽马调整数据值与第一数据值的乘积补偿了人眼对亮度的响应函数。

29.如权利要求21所述的方法,其中进一步包括:对子像素着色数据执行后伽马校正,该后伽马校正补偿了显示器配备的伽马函数;以及将后伽马校正子像素着色数据输出到显示器。

30.如权利要求21所述的方法,其中进一步包括:为所述每种颜色的各个数据点确定采样数据中的隐含采样区域;以及确定对应于每种颜色的各个子像元的重采样区域,其中子像素着色数据的计算要用到滤波核中的多个系数项,这些系数项的每一项各自代表一个重叠百分比,即某一个给定的重采样区重叠于各个隐含的采样区的部分占该给定重采样区的百分比。

31.如权利要求30所述的方法,其中所述第一数据值包含一组边角项、一组除边角项之外的边缘项以及一个中心项,而计算子像素着色数据包括:对于每个边角项使用比重叠百分比所显示的值更小的数作为对应项的第一数据值;以及对于中心项使用比重叠百分比所显示的值更大的数作为对应项的第一数据值。

32.如权利要求21所述的方法,其中所述第一数据值包含一组边角项、一组除边角项之外的边缘项以及一个中心项,而计算子像素着色数据包括:弱化边角项的作用;以及

强化中心项的作用以平衡所述的弱化处理。

33.如权利要求32所述的方法,其中所述乘积使用边缘项和中心项在第一颜色中的第一数据值,而弱化处理和强化处理则使用边角项和中心项在第二颜色中的第一数据值。

34.如权利要求21所述的方法,其中所述生成伽马调整数据值包括:基于采样数据计算所述每个第一数据值的欧米伽调整局部平均;以及对欧米伽调整局部平均执行伽马调整。

35.如权利要求34所述的方法,其中所述欧米伽调整局部平均的计算包括:对所述采样数据中的每个第一数据值执行欧米伽调整;以及基于欧米伽调整采样数据确定所述每个第一数据值的局部平均。

36.如权利要求35所述的方法,其中所述欧米伽调整为人眼对亮度的响应函数的一个近似。

37.如权利要求34所述的方法,其中所述伽马调整执行的函数为g-1w-1(x)=(w-1(x))γ-1,这里的w-1(x)为w(x)=x1/w的逆函数。

38.如权利要求34所述的方法,其中所述第一数据值包含一组边缘项和一个中心项,而欧米伽调整局部平均的计算包括:利用此中心项计算各个边缘项的第一欧米伽调整平均;

基于第一欧米伽调整平均计算中心项的第二欧米伽调整平均。

39.如权利要求34所述的方法,其中所述第一数据值包含一组边缘项和一个中心项,而计算欧米伽调整局部平均包括利用中心项计算各个边缘项的欧米伽调整平均,其中生成伽马调整数据值进一步包括:利用边缘项的伽马调整及欧米伽调整平均生成中心项的伽马调整局部平均。

40.如权利要求21所述的方法,其中所述生成伽马调整数据值包括:对第一数据值执行欧米伽调整;以及

执行逆欧米伽调整以生成伽马调整数据值,这样,当图像的空间频率变高时,欧米伽调整和逆欧米伽调整对伽马调整数据值的影响将变大。

41.一种为一个包含一组像素、每个像素具有一组颜色子像素的显示器处理数据的系统,该系统包括:一个用于接收像素数据的接收模块;以及

一个用于将像素数据转换成子像素着色数据并在转换中应用伽马调整的处理模块,该转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中所述应用伽马调整包括:

对像素数据执行伽马校正以产生伽马校正数据;

将伽马校正数据转换为子像素着色数据。

42.如权利要求41所述的系统,其中所述处理模块用于在子像素着色数据的颜色平衡中提供线性度。

43.如权利要求42所述的系统,其中所述处理模块用于提供与子像素着色数据有关的亮度的非线性计算。

44.如权利要求41所述的系统,其中所述处理模块用于对像素数据执行伽马调整,以产生伽马校正数据,并将此伽马校正数据转换成子像素着色数据。

45.如权利要求44所述的系统,其中所述处理模块用于使用函数g-1(x)=xγ进行伽马校正。

46.如权利要求41所述的系统,其中所述处理模块用于为所有空间频率的伽马调整维持一个处于选定水平上的伽马值,该选定水平对应于某一空间频率期望的对比率。

47.如权利要求41所述的系统,其中所述处理模块用于基于像素数据计算局部平均。

48.如权利要求47所述的系统,其中所述处理模块用于对局部平均执行伽马校正,以产生伽马校正局部平均,且此处理模块还用于将乘以像素数据的伽马校正局部平均转换成子像素着色数据。

49.如权利要求48所述的系统,其中所述处理模块用于使用函数g-1(x)=xγ-1进行伽马校正。

50.如权利要求41所述的系统,其中所述伽马调整的伽马值随空间频率的增大而增大。

51.如权利要求41所述的系统,其中处理模块用于对像素数据执行欧米伽校正以产生欧米伽校正数据,以及基于欧米伽校正数据计算欧米伽校正局部平均。

52.如权利要求51所述的系统,其中所述处理模块用于使用函数w(x)=x1/w进行欧米伽校正。

53.如权利要求51所述的系统,其中所述处理模块用于对欧米伽校正局部平均执行伽马校正,以产生伽马-欧米伽校正局部平均,以及将乘以像素数据的伽马—欧米伽校正局部平均转换成子像素着色数据。

54.如权利要求53所述的系统,其中所述处理模块用于使用函数g-1w-1(x)=(xw)γ-1进行伽马校正。

55.一种计算系统,该系统包括:

一个含有多个像素的显示器,其中至少有一个像素包含有至少在水平轴和垂直轴的一个轴上具有交替的红色和绿色子像素的子像素排列;以及一个与显示器连接的控制器,此控制器用于处理像素数据,应用伽马校正将像素数据转换成子像素着色数据,以及将子像素着色数据输出到显示器上,其中,转换处理为子像素排列生成子像素着色数据,其中所述应用伽马调整包括:

对像素数据执行伽马校正以产生伽马校正数据;

将伽马校正数据转换为子像素着色数据。

56.一种显示器用的控制器,该控制器包括:

一个接收单元,用于接收像素数据;以及

一个处理单元,用于对像素数据到子像素着色数据的转换实施伽马调整,以及将子像素着色数据输出到显示器上,其中,转换处理为子像素排列生成子像素着色数据,其中所述应用伽马调整包括:

对像素数据执行伽马校正以产生伽马校正数据;

将伽马校正数据转换为子像素着色数据。

57.一种为一个可以利用三色子像元显示子像素着色数据的显示器转换图像采样数据的系统,该系统包括:接收包含多个第一数据值的采样数据的组件,其中每个第一数据值各自代表图像中每种颜色的各个数据点;

对所述采样数据中的每个第一数据值执行伽马校正,以生成伽马校正数据的组件;以及基于伽马校正数据计算含有多个第二数据值的子像素着色数据的组件,其中每个第二数据值均对应于显示器上每种颜色的每个子像元。

58.一种为一个可以利用三色子像元显示子像素着色数据的显示器转换图像采样数据的系统,该系统包括:接收包含多个第一数据值的采样数据的组件,其中每个第一数据值各自代表图像中每种颜色的各个数据点;

为采样数据中的所述每个第一数据值生成伽马调整数据值的组件;以及基于伽马调整数据值与第一数据值的乘积计算含有多个第二数据值的子像素着色数据的组件,其中每个第二数据值各自对应于显示器上每种颜色的各个子像元。

59.一种为一个包含一组像素、每个像素具有一组颜色子像素的显示器处理数据的方法,该方法包括:接收像素数据;

如果满足条件,则对像素数据执行伽马校正以产生伽马校正数据,所述条件包含至少有白点中心、白点边缘、黑点中心、黑点边缘、白色对角线中心下方、白色对角线中心上方、白色对角边缘、黑色对角线中心下方、黑色对角线中心上方、黑色对角边缘、垂直黑色侧边、水平黑色侧边、垂直白线侧边、水平白线侧边以及中心白线中的一种;

将伽马校正数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据;以及输出子像素着色数据。

60.如权利要求59所述的方法,其中所述校正子像素着色数据进一步包括至少应用一次伽马校正、将子像素着色数据的各个数设定为一个常数、以及对子像素着色数据应用数学函数。

61.如权利要求59所述的方法,其中所述白色包括大于第一阈值的子像素强度。

62.如权利要求61所述的方法,其中所述第一阈值为90%。

63.如权利要求59所述的方法,其中所述黑色包括小于第二阈值的子像素强度。

64.如权利要求63所述的方法,其中所述第二阈值为10%。

65.如权利要求59所述的方法,其中所述条件为至少在像素数据和子像素着色数据之一中检测到。

66.如权利要求59所述的方法,其中所述将像素数据转换成子像素着色数据进一步包括应用颜色平衡滤波。

67.如权利要求59所述的方法,其中所述像素数据和子像素着色数据至少其中之一包含一个m×n的矩阵,这里的m和n为大于1的整数。

68.如权利要求59所述的方法,其中一种颜色接一种颜色地对条件进行测试。

69.如权利要求59所述的方法,其中所述输出子像素着色数据进一步包括向显示器输出子像素着色数据。

70.如权利要求59所述的方法,其中一种颜色接一种颜色地对条件进行测试。

71.如权利要求59所述的方法,其中基于红色子像素和绿色子像素至少其中之一的相关信息对蓝色子像素进行校正。

72.一种为一个包含一组像素、每个像素具有一组颜色子像素的显示器处理数据的系统,该系统包括:一个接收组件,用于接收像素数据;

一个校正组件,在满足条件时对像素数据执行伽马校正以产生伽马校正数据,所述条件包含至少有白点中心、白点边缘、黑点中心、黑点边缘、白色中下对角线、白色中上对角线、白色对角边缘、黑色对角线中心下方、黑色对角线中心上方、黑色对角边缘、垂直黑色侧边、水平黑色侧边、垂直白线侧边、水平白线侧边以及中心白线中的一种;

一个转换组件,用于将伽马校正数据转换为子像素着色数据,该转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据;以及一个输出组件,用于输出子像素着色数据。

73.如权利要求72所述的系统,其中所述用于校正子像素着色数据的组件进一步配置成至少应用一次伽马校正、将子像素着色数据的量设定为一个常数、以及对子像素着色数据应用数学函数。

74.如权利要求72所述的系统,其中所述白色包含大于第一阈值的子像素强度。

75.如权利要求74所述的系统,其中所述第一阈值为90%。

76.如权利要求72所述的系统,其中所述黑色包含小于第二阈值的子像素强度。

77.如权利要求76所述的系统,其中所述第二阈值为10%。

78.如权利要求72所述的系统,其中在像素数据中对所述条件进行检测。

79.如权利要求72所述的系统,其中所述用于将像素数据转换成子像素着色数据的组件进一步具备可用于施加颜色平衡滤波的功能。

80.如权利要求72所述的系统,其中所述像素数据和子像素着色数据中至少其中之一包含一个mxn的矩阵,这里的m和n为大于1的整数。

81.如权利要求72所述的系统,其中一种颜色接一种颜色地对所述条件进行测试。

82.如权利要求72所述的系统,其中所述用于输出子像素着色数据的组件进一步具备用于向显示器输出子像素着色数据的功能。

83.如权利要求72所述的系统,其中在一种颜色接一种颜色地对所述条件进行测试。

84.如权利要求72所述的系统,其中基于红色子像素和绿色子像素中的至少其中之一的相关信息对蓝色子像素进行校正。

说明书 :

技术领域

本发明一般而言是与显示器领域有关,具体而言,是与具有伽玛调整及自适应滤波的子像素着色方法及系统有关。

背景技术

目前用于平板显示器的彩色单平面成像矩阵的最新工艺采用的是RGB三色点组或单色垂直彩条,如图1先前技术所示。该系统通过三种颜色的分隔放置以及相等的空间频率加权充分利用了Von Bezold混色效应(在此会进一步解释)中有利的一面。但是,这些平板与人类视觉的匹配较差。
目前已研究出可提高先前技术的面板的图像质量的图形着色技术。Benzschawel等人在编号为No.5,341,153的美国专利中公开了如何将较大尺寸的图像缩小到较小的平板上的方法。依此方法,Benzschawel等人公开了如何利用如今在业内熟知的“子像素着色”技术来提高图像质量的方法。最近以来,Hill等人在编号为No.6,188,385的美国专利中公开了如何利用非常类似于子像素着色技术的技术,通过一次一个字符地减少文字的虚像以提高文字质量的方法。
以上的先前技术对人类视觉的工作方式并未给予足够的重视。这些先前技术中,由显示装置重构的图像与人类视觉的匹配较差。
这些显示器在图像采样、生成及存储中所用的主要模型为RGB像素(或三色像元)模型,其中红色、绿色及蓝色的数值位于一个空间分辨率相等的正交网格上,并且互相重合。使用此图像格式的结果之一是其与实际的图像重构平板(在距离间隔、非重合、颜色发光体方面)及人类视觉的匹配较差。这样实际上会在图像中造成信息的冗余或浪费。
Martinez-Uriegas等人在编号为No.5,398,066的美国专利中,以及Peters等人在编号为No.5,541,653的美国专利中公开了一种将图像由RGB像素格式转换并存储为另一种格式的技术,该格式非常类似于Bayer等人在编号为No.3,971,065的美国专利中所公开的图像格式,其用于照相机成像装置的颜色滤光片阵列。Martinez-Uriegas等人的格式的优点在于其可用类似于人类视觉的空间采样频率来采集并存储单独的颜色分量数据。但是,Martinez-Uriegas等人的格式的第一缺点在于其与实际的颜色显示器平板的匹配并不佳。为此原因,Martinez-Uriegas等人还公开了如何将图像转换回RGB像素格式的方法。Martinez-Uriegas等人的格式的另一个缺点在于有一个颜色分量(在此情况下为红色)并不是均匀采样。由于阵列中有丢失的采样,因此在显示时会降低图像的构造准确度。
眼睛中的全颜色感觉是由称之为“锥体”的三类颜色感光神经细胞产生的。此三类感光细胞分别敏感于不同波长的可见光:长、中及短(分别对应于“红”、“绿”及“蓝”)。此三种波长的感光细胞的相对密度彼此明显不同。红色感光细胞比绿色感光细胞稍多。与红色感光细胞或绿色感光细胞相比,蓝色感光细胞非常少。除了颜色感光细胞外,还有一种称之为“杆体”的对相对波长不敏感的感光细胞,其主要提供单色的夜视觉。
人类视觉系统对眼睛所检测到的信息进行处理的感觉通道包括:亮度、色度及运动。运动对于成像系统设计者而言只有闪烁阈值是重要的。亮度通道只接受来自红色及绿色感光细胞的输入,因此是“色盲”的。亮度通道以这样的方式处理信息,可以增强边缘的对比度。色度通道没有边缘对比度增强作用。由于亮度通道使用并增强了每一个红色及绿色感光细胞,因此亮度通道的分辨率比色度通道的分辨率高数倍。蓝色感光细胞对亮度感觉的贡献可忽略不计。因此,对于大多数仔细观察的观众而言,由低八度的蓝色分辨率所造成的误差几乎无法注意到,就像完全没有一样,正如Xerox及NASA,Ames Research Center的实验所证实的那样(参见R.Martin,J.Gine,J.Madmer,Detectability of Reduced Blue Pixel Count in Projection Displays,SID Digest1993)。
颜色感觉受到一种称之为“同化”作用或Von Bezold混色效应的影响。这就是为什么显示器上分开的像素(或子像素或发光体)可以感觉为混合色的原因。混色效应发生于视场中的某一给定角距离范围内。由于蓝色感光细胞相对稀少,因此,对于蓝色感光细胞而言,出现混色的角距离要比红色或绿色的要大。此距离对蓝色而言约为0.25°,而对于红色或绿色而言约为0.12°。在12英寸的观察距离处,0.25°相当于显示器上的50mils(1,270μ)。因此,如果蓝色子像素间距小于混色间距的一半(625μ),颜色便能混合且不会损失图像质量。
子像素着色的最简单的实现方式是利用亮度通道所接收到亮度近似相等的像素作为子像素来处理。这样使得子像素可当作采样图像的重构点来对待,而不是当作”真实”像素的一部分的组合式子像素来对待。通过利用子像素着色,可以提高空间采样,从而降低相位误差。
如果忽略图像的颜色,则每个子像素可当作单色像素处理,而且彼此相等。但是,由于颜色几乎总是重要的(要不然人们为什么要使用彩色显示器?),因此给定图像的颜色平衡在任何地方都很重要。因此,子像素着色算法必须保持颜色平衡,以确保图像亮度分量中的高空间频率信息得到着色,并且不与颜色子像素混叠,以防引入颜色误差。Benzchawel等人在编号为No.5,341,153的美国专利中,以及Hil等人在编号为No.6,168,385的美国专利中所采用的方法与通用的抗混叠技术类似,其对高分辨率虚像的每个独立颜色分量应用偏移抽取滤波器。这样可以确保亮度信息在各自的颜色通道内不相互混叠。
如果子像素排列对子像素着色而言为最佳排列,子像素着色将增加空间寻址能力以降低相位误差,并增加两轴的调制传递函数(MTF)的高空间频率分辨率。
检查图1中的传统RGB彩条显示器,子像素着色只适用于水平轴。蓝色子像素不为人眼亮度通道所感觉,因此在子像素着色中不起作用。在子像素着色中,由于只有红色及绿色像素有用,因此寻址能力的有效提高在水平轴上为二重性。垂直的黑线及白线在每一行上必须含有两个主要的子像素(例如每条黑线或白线的红色或绿色)。这一数量与非子像素着色图像中所用的数量相同。MTF反映的是同时显示某一给定数量的线条及空间的能力,子像素着色不会增强MTF的能力。因此传统的RGB彩条子像素排列(如图1所示)对子像素着色而言并未达到最优化。
业已证明,先前技术的三色像元排列对人类视觉及子像素着色通用技术匹配较差。同样,先前技术的图像格式及转换方法于人类视觉及实际颜色发光装置的匹配较差。
子像素着色的另一复杂性在于处理人眼及显示装置(如阴极射线管(CRT)装置或液晶显示器(LCD))的亮度的非线性响应(例如,伽玛曲线)。但是,对子像素着色进行伽玛补偿并非一个简单的过程。也就是说,这对子像素着色图像提供高的对比度和正确的颜色平衡非常关键。而且,先前技术的子像素着色系统并未充分提供伽玛的精确控制以获得高的图像质量。
此外,子像素着色的另一复杂性在于处理色差,尤其是处理对角线和单一像素的色差。但是,对子像素着色进行颜色补偿并非一个简单的过程。也就是说,这对子像素着色图像提供高的对比度和正确的颜色平衡非常关键。而且,先前技术的子像素着色系统并未充分提供色差的精确控制以获得高的图像质量。

发明内容

本发明公开了一种为显示器处理数据的方法。显示器包含一组像素、每个像素含有一组颜色子像素。在接收到像素数据后,应用伽玛调整将像素数据转换成子像素着色数据。此转换为一个子像素排列生成子像素着色数据。该子像素排列至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素。子像素着色数据最后输出到显示器。
本发明公开了一种含有多个像素的显示器系统。这些像素具有至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列。该系统还包括与显示器连接并可处理像素数据的控制器。该控制器还可应用伽玛调整将像素数据转换成子像素着色数据。该转换为一个子像素排列生成子像素着色数据。该控制器将子像素着色数据输出到显示器上。
本发明提供了一种具有自适应滤波的子像素着色方法及系统,其可以避免与所述先前技术的子像素着色系统及方法有关的问题。
一方面,一种为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的方法包括:接收像素数据;将像素数据转换成子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据;如果符合某一条件则校正子像素着色数据;以及输出子像素着色数据。
另一方面,一种为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的系统包括:一个接收组件,用于接收像素数据;一个转换组件,用于将像素数据转换成子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据;一个校正组件,用于在符合某一条件时校正子像素着色数据;以及一个输出组件,用于输出子像素着色数据。
另一方面,一种计算机可读取介质,用于存储一组为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的指令,执行该指令所运行的任务包括:接收像素数据;将像素数据转换成子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据;如果符合某一条件则校正子像素着色数据;以及输出子像素着色数据。
另一方面,一种为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的方法可以包括:接收像素数据;将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中如果并未检测到黑色水平线、黑色垂直线、白色水平线、白色垂直线、黑色边缘及白色边缘中的至少一种,则在将像素数据转换成子像素着色数据的处理中使用第一颜色平衡滤波器,而如果被转换的像素数据的第一颜色子像素的强度与被转换的像素数据的第二颜色子像素的强度不相等,则在将在像素数据转换成子像素着色数据的处理中使用第二颜色平衡滤波器;以及输出子像素着色数据。
另一方面,一种为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的系统可能包括:一个接收组件,用于接收像素数据;一个转换组件,用于将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中如果并未检测到黑色水平线、黑色垂直线、白色水平线、白色垂直线、黑色边缘及白色边缘中的至少一种,则在将像素数据转换成子像素着色数据的处理中使用第一颜色平衡滤波器,而如果被转换的像素数据的第一颜色子像素的强度与被转换的像素数据的第二颜色子像素的强度不相等,则在将在像素数据转换成子像素着色数据的处理中使用第二颜色平衡滤波器;以及一个输出组件,用于输出子像素着色数据。
在另一方面,一种计算机可读取介质,用于存储一组为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的指令,执行该指令所运行的任务包括:接收像素数据;将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中如果并未检测到黑色水平线、黑色垂直线、白色水平线、白色垂直线、黑色边缘及白色边缘中的至少一种,则在将像素数据转换成子像素着色数据的处理中使用第一颜色平衡滤波器,而如果被转换的像素数据的第一颜色子像素的强度与被转换的像素数据的第二颜色子像素的强度不相等,则在将在像素数据转换成子像素着色数据的处理中使用第二颜色平衡滤波器;以及输出子像素着色数据。
前述的一般说明及下述的详细说明均为示范性的,在权利要求中将对本发明作进一步解释。

附图说明

结合在说明书中并构成本说明书的一部分的附图用于举例说明本发明,并与本说明一起解释本发明的基本原理。在这些图中:
图1所示为用于显示器装置的单平面阵列的一种三色像元的先前技术RGB彩条排列;
图2所示为图1的先前技术RGB彩条排列的有效子像素着色采样点;
图3、图4及图5所示为图1中先前技术RGB彩条排列的采样点的每个颜色平面的有效子像素着色采样区;
图6A所示为用于显示器装置的单平面阵列的一种三色像元排列;
图6B所示为用于显示器装置的单平面阵列的另一种三色像元排列;
图7所示为图6及图27的排列的有效子像素着色采样点;
图8及图9所示为图6及图27的排列的蓝色平面采样点的另一种有效子像素着色采样区;
图10所示为用于显示器装置的单平面阵列的另一种三色像元排列;
图11所示为图10所示的排列的有效子像素着色采样点;
图12所示为图10所示的排列的蓝色平面采样点的有效子像素着色采样区;
图13及图14所示为图6及图10所示的排列的红色及绿色平面的有效子像素着色采样区;
图15所示为先前技术像素数据格式的采样点及其有效采样区的一种阵列,在此数据格式中,红色、绿色和蓝色的值均位于一个空间分辨率相等的网格上,并且互相重合;
图16所示为与图11中的子像素着色采样点重叠的图15先前技术中的采样点的阵列,其中图15中的采样点位于一个空间分辨率相同的网格上,并且与图11中的红色和绿色“检验板”阵列重合;
图17所示为与图12中的蓝色平面采样区重叠的图15先前技术中的采样点及其有效采样区的阵列,其中图15先前技术中的采样点位于一个空间分辨率相同的网格上,并且与图11中的红色和绿色“检验板”阵列重合;
图18所示为与图13中的红色平面采样区重叠的图15先前技术中的采样点及其有效采样区的阵列,其中图15先前技术中的采样点位于一个空间分辨率相同的网格上,并且与图11中的红色和绿色“检验板”阵列重合;
图19及图20所示为与图8中的蓝色平面采样区重叠的图15先前技术中的采样点及其有效采样区的阵列,其中图15先前技术中的采样点位于一个空间分辨率相同的网格上,并且与图7中的红色和绿色“检验板”阵列重合;
图21所示为先前技术像素数据格式的采样点及其有效采样区的一种阵列,在此数据格式中,红色、绿色和蓝色的值位于一个空间分辨率相等的网格上,并且互相重合;
图22所示为与图13中的红色平面采样区重叠的图21先前技术中的采样点及其有效采样区的阵列,其中图21先前技术中的采样点并不在一个空间分辨率相同的网格上,并且与图11中的红色和绿色“检验板”阵列重合;
图23所示为与图12中的蓝色平面采样区重叠的图21先前技术中的采样点及其有效采样区的阵列,其中图21先前技术中的采样点并不在一个空间分辨率相同的网格上,也不与图11中的红色和绿色“检验板”阵列重合;
图24所示为与图8中的蓝色平面采样区重叠的图21先前技术中的采样点及其有效采样区的阵列,其中图21先前技术中的采样点并不在一个空间分辨率相同的网格上,也不与图7中的红色和绿色“检验板”阵列重合;
图25所示为与图13的红色平面采样区重叠的图3的红色平面的有效采样区;
图26所示为与图8的蓝色平面采样区重叠的图5的蓝色平面的有效采样区;
图27所示为用于显示器装置的单平面阵列的另一种三色像元排列;
图28、图29及图30所示为图27的装置的各面板上的蓝色、绿色及红色发光体的排列;
图31所示为特殊情况下与图15的输入采样排列70的顶部重叠的图11的输出采样排列200,其中缩放比例为一个输入像素对应两个输出子像素(一个红色子像素及一个绿色子像素),输出子像素交叉;
图32所示为将650×480的VGA格式图像转换为共有800×600个红色及绿色子像素的PenTile矩阵的单个重复单元202;
图33所示为重复单元大小为奇数时的三色像元的系数的对称性;
图34所示为当重复单元大小为偶数时的一个实例;
图35所示为图33中由重叠于六个周围输入像素采样区248的着色区域248所限定的子像素218;
图36所示为来自图33的子像素232及其重叠于五个采样区252的着色区域252;
图37所示为来自图33的子像素234及其重叠于采样区256的着色区域254;
图38所示为来自图33的子像素228及其重叠于采样区260的着色区域258;
图39所示为来自图33的子像素236及其重叠于采样区264的着色区域262;
图40所示为用于生成蓝色滤波核的正方形采样区;
图41所示为与正方形采样区276有关的图8的六角形采样区123;
图42A所示为图18的示范性隐含采样区及红色或绿色子像素的重采样区,而图42B所示为显示装置上的三色子像素的一个示范性排列;
图43所示为示范性输入正弦波;
图44所示为当对图43的输入图像实施不带伽玛调整的子像素着色时所输出的一个示范性曲线图;
图45所示为使用不带伽玛调整的子像素着色时可能出现的说明色差的一个示范性曲线图;
图46所示为一种在子像素着色前应用预调整伽玛的方法300的流程图;
图47所示为当对图43的输入图像实施伽玛调整的子像素着色时所输出的一个示范性曲线图;
图48所示为计算图42A的隐含采样区的局部平均的一个框图;
图49所示为一种伽玛调整子像素着色方法350的流程图;
图50所示为当对图43的输入图像实施带有欧米伽函数的伽玛调整的子像素着色时所输出的一个示范性曲线图;
图51所示为一种带有欧米伽函数的伽玛调整子像素着色方法350的流程图;
图52A及52B所示为一种在子像素着色前应用预调整伽玛的图46的实现方法的示范性系统;
图53A及53B所示为一种伽玛调整子像素着色的图49的实现方法的示范性系统;
图54A及54B所示为一种伽玛调整子像素着色的图51的实现方法的示范性系统;
图55至图60所示为可供图52A、53A及54A的处理单元使用的示范性电路;
图61所示为一种在子像素着色期间为边缘定时输入黑色像素的方法的流程图;
图62至图66所示为几种可提高显示器上图像的彩色分辨率的系统的示范性框图;
图67至70所示为一种可快速完成数学计算的函数求值器的示范性实施例;
图71所示为一种用软件实现具有伽玛预调整的子像素着色的方法的流程图;
图72所示为一种示范性计算机系统750的内部框图,其用于实现图46、49及51的方法、及(或)图71的软件处理过程;
图73A至73E所示为依照本发明的一个实施例为包含像素的显示器处理数据的示范性方法的流程图;
图74A至图74W所示为一组示范性数据集,用于表示与本发明的一个实施例相符的像素数据或子像素着色数据;
图75所示为依照本发明的另一个实施例为包含像素的显示器处理数据的示范性方法的流程图;
图76所示为用于图75的示范性方法的一个示范性子程序的流程图,该方法依照本发明的一个实施例为包含像素的显示器处理数据;
图77A所示为与本发明的一个实施例相符的一个示范性红色居中的像素数据集;
图77B所示为与本发明的一个实施例相符的一个示范性绿色居中的像素数据集;
图78所示为与本发明的一个实施例相符的一个示范性红色居中的阵列;
图79所示为与本发明的一个实施例相符的含有单个像素宽线条的一个示范性红色居中的阵列;
图80所示为与本发明的一个实施例相符的含有一条垂直或水平边缘的一个示范性红色居中的阵列;
图81所示为与本发明的一个实施例相符的一个示范性红色居中的测试阵列;
图82所示为与本发明的一个实施例相符的一个示范性标准颜色平衡滤波器;
图83所示为与本发明的一个实施例相符的一个示范性测试阵列;
图84所示为与本发明的一个实施例相符的一个示范性非颜色平衡滤波器;
图85及图86所示为与本发明的一个实施例相符的一个示范性测试矩阵;

具体实施方式

现在对附图所示的本发明的实现和实施例进行详细的说明。在尽可能的情况下,全部附图及下列说明将使用相同的参考号代表相同或类似的部分。
采集一幅现实世界的图像,并储存在存储器中。利用某些已知的数据排列,创建此储存图像。利用具有改进彩色显示分辨率的阵列,可以将此储存图像着色到显示器上。该阵列由多个三色像元组成,其中每个三色像元至少含有一个蓝色发光体(或子像素)、一个红色发光体、以及一个绿色发光体,这些发光体照亮时可在人眼中混合生成所有的其它颜色。
为了确定每个发光体的值,首先必须采用滤波核的形式生成转换方程。该滤波核的生成由原始数据集采样区和目标显示采样区的相对面积重叠决定。重叠部分的比率决定了滤波核阵列中所用的系数值。
为了将储存图像着色到显示装置上,必须在每个三色像元中确定出重建点。每个重建点的中心还将用作重建储存图像的采样点的数据源。同样,图像数据的采样点也需要确定。每个采样点均位于发光体的中心(例如,红色发光体的中心)。在将重建点放到发光体中心的过程中,将形成一个与重建点中心等距的界线网格,从而形成采样区(其中心即为采样点)。此形成的网格将生成一个重叠图案。此重叠图案所用的形状包括,但不限于,正方形、长方形、三角形、六角形、八角形、菱形、交错的正方形、交错的长方形、交错的三角形、交错的菱形、Penrose瓦面形、斜方形、变形的斜方形,和线条形等,以及包含前述形状中的至少一种的各种组合形状。
图像数据和目标显示的采样点及采样区确定后,二者是重叠的。重叠的部分将生成子区域,其中子区域中的输出采样区将与数个输出采样区重叠。通过观测或计算,可以确定出输入输出的面积比,并将其作为滤波核中的系数加以储存,此系数的值用于将输入值加权成输出值,以此确定每个发光体的合适的值。
根据本发明的一般原理,一种为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的系统可以包括:一个接收组件,用于接收像素数据;一个转换组件,用于将像素数据转换成子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据;一个校正组件,用于在符合某一条件时校正子像素着色数据;以及一个输出组件,用于输出子像素着色数据。
此外,根据本发明的一般原理,一种为一个包含一组像素、每个像素含有一组颜色子像素的显示器处理数据的系统可能包括:一个接收组件,用于接收像素数据;一个转换组件,用于将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中如果并未检测到黑色水平线、黑色垂直线、白色水平线、白色垂直线、黑色边缘及白色边缘中的至少一种,则在将像素数据转换成子像素着色数据的处理中使用第一颜色平衡滤波器,而如果被转换的像素数据的第一颜色子像素的强度与被转换的像素数据的第二颜色子像素的强度不相等,则在将在像素数据转换成子像素着色数据的处理中使用第二颜色平衡滤波器;以及一个输出组件,用于输出子像素着色数据。
这些接收像素数据的组件、将像素数据转换成子像素着色数据的组件、校正子像素着色数据的组件以及输出子像素着色数据的组件可含有一组元器件,这样的元器件可配置于、运用于或连接于移动电话、个人电脑、手持计算装置、多处理器系统、基于微处理器的或可编程的用户电子装置、微机、大型计算机、个人数字助理(PDA)、传真机、电话机、寻呼机、便携式计算机、电视机、高清晰度电视机、或任何可以接收、发射或利用信息的其它装置中。这些接收像素数据的组件、将像素数据转换成子像素着色数据的组件、校正子像素着色数据的组件以及输出子像素着色数据的组件可含有一组元器件,这样的元器件可配置于、运用于或连接于许多不违背本发明的范围和精神的其它装置或系统中。
如果使用足够高的缩放比例,本发明所公开的子像素排列和着色方法可提供比先前技术的显示器更好的图像质量,即用信息可寻址能力和重建图像调制传输函数(MTF)表示的量。
此外,本发明还公开了一组具有伽马调整的子像素着色的方法和系统。这些方法和系统可为一个含有由颜色子像素组成的像素的显示器处理数据。特别是,可以接收数据,以及在从接收像素数据到子像素着色数据的转换中应用伽马调整。此转换可为一种子像素排列生成子像素着色数据。该子像素排列在水平轴和垂直轴的至少一个轴上含有交替的红色和绿色子像素,或者任何其它排列。还可将子像素着色数据输出到显示器上。
由于人眼不能分辨绝对的亮度值,因此,为了获得更高质量的图像,需要提高图像的亮度对比度,尤其是在较高的空间频率处。如后面的详细说明所述,通过在子像素着色中使用伽马调整,可以提高显示器子像素排列的亮度对比率。因此,通过提高该对比率,可以获得质量更高的图像。对于某一给定的子像素排列,可以对伽马调整进行精确地控制。
图1所示为一种单平面阵列显示器用的三色像元的先前技术RGB彩条排列,而图2所示则为图1中先前技术RGB彩条排列的有效子像素着色采样点。图3、图4及图5所示为图1中先前技术RGB彩条排列的采样点的每个颜色平面的有效子像素着色采样区。图1-5将在这里作进一步的讨论。
图6a所示为对应于一个实施例的几个三色像元的一种排列20。三色像元21为正方形,其放置于一个X、Y坐标系的原点,并含有一个蓝色发光体22、两个红色发光体24以及两个绿色发光体26。蓝色发光体22(与X轴垂直)放置于坐标系的原点,并且延伸至第一、第二、第三及第四象限。红色发光体24放置于第二和第四象限未被蓝色发光体占据的部分。绿色发光体26放置于第一和第三象限未被蓝色发光体占据的部分。蓝色发光体22为长方形,其侧边与坐标系的X轴及Y轴平行,而红色发光体24和绿色发光体26的反方向发光体对通常为正方形。
该阵列在面板上重复排列则形成了一个带有所需矩阵分辨率的装置。重复的三色像元形成了一个“检验板”,该“检验板”具有交替的红色发光体24和绿色发光体26,而蓝色发光体22则均匀分布于该装置上,不过其分辨率只有红色发光体24和绿色发光体26的分辨率的一半。蓝色发光体每隔一列即相互交错,或偏移其长度的一半,如发光体28所示。为了适应这样的排列以及边缘影响的原因,边缘处的部分蓝色发光体只能为原尺寸一半的蓝色发光体28。
图6b所示为一个三色像元排列的另一个实施例。图6b是在阵列行中水平对齐的四个三色像元的一个排列114。每个三色像元可为正方形或长方形,而且具有包含三个单元面积多边形的两行,这样每个发光体将各自占据一个单元面积多边形。位于第一、第二、第三和第四个三色像元的第一像素行中心处的分别是蓝色发光体130a、130b、130c和130d。位于第一、第二、第三和第四个三色像元的第二像素行中心处的分别是蓝色发光体132a、132b、132c和132d。红色发光体120a、120b、120c和120d分别位于第一像素行上的第一、第二、第三和第四个三色像元的蓝色发光体130a、130b、130c和130d的左侧。绿色发光体122a、122b、122c和122d分别位于第二像素行上的第一、第二、第三和第四个三色像元的蓝色发光体132a、132b、132c和132d的左侧。绿色发光体124a、124b、124c和124d分别位于第一像素行上的第一、第二、第三和第四个三色像元的蓝色发光体130a、130b、130c和130d的右侧。红色发光体126a、126b、126c和126d分别位于第二像素行上的第一、第二、第三和第四个三色像元的蓝色发光体132a、132b、132c和132d的右侧。为了减小暗蓝色彩条的可见度,蓝色发光体的宽度可能需要减小。
图7所示为图6和图27所示排列的有效子像素着色采样点的一个排列,而图8和图9所示为图6和图27所示排列的蓝色平面采样点23的另一种有效子像素着色采样区123、124的排列30、31。图7、图8和图9将在这里作进一步的讨论。
图10所示为三色像元39的一种排列38的另一种说明性实施例。该三色像元39由一个正方形中的一个蓝色发光体32、两个绿色发光体34、以及两个绿色发光体36组成。该三色像元39为正方形,且中心位于一个X、Y坐标系的原点。蓝色发光体32的中心为正方形的原点,并且延伸到X、Y坐标系的第一、第二、第三和第四象限。一对红色发光体34位于一组相对的象限(即第二和第四象限)内,而一对绿色发光体36则位于另一组相对的象限(即第一和第三象限)内,并且占据该象限中未被蓝色发光体32占据的部分。如图10所示,蓝色发光体32为菱形状,其对角分别与坐标系的X轴和Y轴对齐,而相对的红色发光体对34和绿色光源对36一般为正方形,其截角朝里的边角形成了与蓝色发光体32的侧边平行的边缘。
该阵列在面板上重复排列则完成了一个带有所需矩阵分辨率的装置。重复的三色像元形成了一个“检验板”,该“检验板”具有交替的红色发光体34和绿色发光体36,而蓝色发光体32则均匀分布于该装置上,不过其分辨率只有红色发光体34和绿色发光体36的分辨率的一半。红色发光体34a和34b将在这里进一步讨论。
三色像元阵列的一个好处是可以提供更高的颜色显示分辨率。这是因为只有红色和绿色发光体对亮度通道的高分辨率感觉贡献显著。因此,减少蓝色发光体的数量,并用部分红色和绿色发光体代替蓝色发光体,则可改善其分辨率,使其更匹配于人类视觉。
将红色和绿色发光体在垂直轴上分半可以增大空间寻址性,这是对先前技术中传统的垂直信号彩条的一种改进。一种交替的红色和绿色发光体“检验板”可以在水平轴和垂直轴上获得更高的空间频率分辨率。
为了将第一数据格式的图像重建到第二数据格式的显示器上,需要通过隔离每个发光体几何中心处的重构点以及生成采样网格来定义采样区。图11所示为图10中三色像元排列38的一种有效重建点排列40。这些重建点(如图11中的33、35和37)分别以三色像元39中各发光体(如图10中的32、35和36)的几何位置为中心。红色重建点35和绿色重建点37在显示器上形成了一个红色和绿色的“检验板”。蓝色重建点33在显示器上均匀分布,不过其分辨率只有红色重建点35和绿色重建点37的一半。对于子像素着色,三色重建点应视为采样点处理,并用以构造各颜色平面的有效采样区,该处理可单独进行。图12所示为图11中重建阵列的蓝色平面42的有效蓝色采样点46(对应于图11中的蓝色重构点33)和采样区44。对于一个正方形的重构点网格,边界周长最小的是正方形网格。
图13所示为对应于图11中的红色重构点35和图7中的红色重构点25的有效红色采样点51,以及红色平面48的有效采样区50、52、53和54。采样点51形成了一个于显示器边界成45°的正方形网格阵列。这样,在采样网格的中央阵列内,采样区形成了一个正方形网格。由于存在“边缘效应”,即正方形网格会与显示器的边界重叠,所以可对网格的形状加以调整,使得每个采样区(如54)保持相同的面积,并使边界周长达到最小。观察这些采样区可以发现,采样区50和采样区52具有相同的面积,不过,采样区54的面积稍大,而边角处的采样区53的面积则稍小。这种情况确实会带来误差,其中采样区53内的变化数据将是过表示的,而采样区54内的变化数据则是欠表示的。不过,在含有数十万个甚至是数百万个发光体的显示器中,这样的误差在图像的边角处是极小的,而且是感觉不出的。
图14所示为对应于图11中的绿色重构点37和图7中的绿色重构点27的有效绿色采样点57,以及绿色平面60的有效采样区55、56、58和59。观察图14可以发现,它与图13实际上是相似的,它具有同样的采样区关系,不过旋转了180°。
通过将图形数据单元或向量转换成偏置的颜色采样平面,并且将先前技术的采样技术与采样点及采样区结合起来,图形软件可直接利用这发光体及其所得到的采样点和采样区的排列生成高质量的图像。完整的图形显示系统,如便携式电子设备、膝上或台式电脑以及电视/视频系统等,将得益于平板显示器及这些数据格式的使用。可以利用的显示器类型包括,但不限于,液晶显示器、负离子显示器、等离子体面板显示器、电致发光(EL)显示器、电泳显示器、场致发射阴极显示器、离散发光二极管显示器、有机放光二极管(OLED)显示器、投影仪、阴极射线管(CRT)显示器等,以及包含前述显示器中至少一种的组合。但是,许多安装的图形基元和图形软件使用的是传统的数据采样格式,这种格式原本基于将CRT作为重构显示器来使用。
图15所示为先前技术像素数据格式70的采样点74及其有效采样区72的一种阵列,在此数据格式中,红色、绿色和蓝色的值均位于一个空间分辨率相等的网格上,并且互相重合。在先前技术的显示系统中,简单利用来自图1所示的先前技术RGB彩条面板上的各颜色平面的数据,即能将这样的数据形式重建到一个平板显示器上。在图1中,每个颜色子像素的分辨率与采样点的分辨率是相同的,因此可以忽略每个颜色子像素的实际重建点位置而将位于同一行中的三个子像素视为单个组合式及混合式多颜色像素来处理。在工艺上,通常将此称为显示器的“自然模式”。这样会浪费了子像素的位置信息,尤其是红色和绿色子像素的位置信息。
相反,本申请所引入的RGB数据是被当作相互重叠的三个平面来处理的。为了转换RGB格式的数据,需要对每个平面分别处理。为了将原始的前期技术格式数据的信息显示到本申请的更有效的子像素排列上,需要通过重采样对数据格式进行转换。数据重采样所采用的方式为:每个采样点的输出是输入数据的一个加权函数。如下所述,根据各数据采样的空间频率,加权函数在各输出采样点处可以是相同的,也可以是不同的。
图16所示为与图11中的子像素着色采样点33、35和37重叠的图15中的采样点的排列76,其中图15中的采样点74位于一个空间分辨率相同的网格上,并且与图11中的红色(红色重构点35)和绿色(绿色重构点37)“检验板”阵列重合。
图17所示为与图12中的蓝色平面采样点46重叠的图15的采样点74及其有效采样区72的排列78,其中图15的采样点74位于一个空间分辨率相同的网格上,并且与图11中的红色(红色重构点35)和绿色(绿色重构点37)“检验板”阵列重合。图17将在此做进一步讨论。
图18所示为与图13中的红色平面采样点35及红色采样区50、52、53和54重叠的图15的采样点74及其有效采样区72的阵列80,其中图15的采样点74位于一个空间分辨率相同的网格上,并且与图11中的红色(红色重构点35)和绿色(绿色重构点37)“检验板”阵列重合。正方形采样区52的内部阵列完全覆盖了重合的原始采样点74及其采样区82,并且延伸覆盖了位于采样区52内的每个周围采样点84的四分之一。为了确定算法,需要记录输出采样区50、52、53或54在输入采样区72上的覆盖或重叠部分的比例,然后乘以对应采样点74的值,并加到输出采样区35上。在图18中,正方形采样区52中由中心的或重合的输入采样区84所填充部分的面积是该正方形采样区52的一半。因此,对应采样点74的值应乘以二分之一(或0.5)。通过观察可以发现,正方形采样区52中由不重合的各周围输入采样区84所填充部分的面积各为八分之一(或0.125)。因此,对应的四个采样点74的值应乘以八分之一(或0.125)。将这些值加到前面的值(如乘以0.5)上,便可求出给定采样点35的最终输出值。
对于边缘采样点35及其五边形采样区50,重合的输入采样区82如所述情况一样被完全覆盖,不过只有三个周围输入采样区84、86和92是重叠的。重叠采样区84的面积为输出采样区50的八分之一。沿着边缘的相邻输入采样区86和92的面积各为输出面积的十六之三(3/16=0.1875)。如前所述,将来自重叠采样区72的输入值74的加权值加上,以给出采样点35的值。
边角或“接近”边角的区域应视为相同。由于边角区域53及“接近”边角区域54所覆盖的图像面积不同于中心区域52及边缘区域50的面积,所以输入采样区86、88、90、92、94、96及98的加权也不同于前述输入采样区82、84、86及92的比率。对于稍小的边角输入采样区53,重合的输入采样区94覆盖了输出采样区53的七分之四(或约为0.5714)。相邻的输入采样区96覆盖了输出采样区53的十四分之三(或约为0.2143)。对于“接近”边角的输入采样区54,重合的输入采样区90覆盖了输出采样区54的十七分之八(或约为0.4706)。向内相邻的输入采样区98覆盖了输出采样区54的十七分之二(或约为0.1176)。边缘相邻的输入采样区92覆盖了输出采样区54的十七分之三(或约为0.1765)。边角输入采样区88覆盖了输出采样区54的十七分之四(或约为0.2353)。如前所述,将来自重叠采样区72的输入值74的加权值加上,以给出采样点35的值。
绿色平面的重采样使用类似的方式计算,不过输入采样阵列应旋转180°。
为了换一种方式叙述,红色采样点35和绿色采样点37的值Vout的计算如下:中心区域:
Vout(CxRy)=0.5_Vin(CxRy)+0.125_Vin(Cx-1Ry)+0.125_Vin(CxRy+1)+0.125_Vin(Cx+1Ry)+0.125Vin(CxRy-1)
下边缘:
Vout(CxRy)=0.5_Vin(CxRy)+0.1875_Vin(Cx-1Ry)+0.1875_Vin(CxRy+1)+    0.125_Vin(Cx+1Ry)
上边缘:
Vout(CxR1)=0.5_Vin(CxR1)+0.1875_Vin(Cx-1R1)+0.125_Vin(CxR2)+0.1875_Vin(Cx+1R1)
右边缘:
Vout(CxRy)=0.5_Vin(CxRy)+0.125_Vin(Cx-1Ry)+0.1875_Vin(CxRy+1)+0.1875_Vin(CxRy-1)
左边缘:
Vout(C1Ry)=0.5_Vin(C1Ry)+0.1875Vin(C1Ry+1)+0.125_Vin(C2Ry)+0.1875_Vin(C1Ry-1)
右上角:
Vout(CxRy)=0.5714_Vin(CxRy)+0.2143_Vin(Cx-1Ry)+0.2143_Vin(CxRy+1)左上角:
Vout(C1R1)=0.5714_Vin(C1R1)+0.2143_Vin(C1R2)+0.2143_Vin(C2R1)
左下角:
Vout(CxRy)=0.5714_Vin(CxRy)+0.2143_Vin(Cx+1Ry)+0.2143_Vin(CxRy-1)
右下角:
Vout(CxRy)=0.5714_Vin(CxRy)+0.2143_Vin(Cx-1Ry)+0.2143_Vin(CxRy-1)
上边缘,接近左角:
Vout(C2R1)=0.4706_Vin(C2R1)+0.2353_Vin(C1R1)+0.1176_Vin(C2R2)+0.1765Vin(C3R1)
左边缘,接近上角:
Vout(C1R2)=0.4706_Vin(C1R2)+0.1765Vin(C1R3)+0.1176_Vin(C2R2)+0.2353_Vin(C1R1)
左边缘,接近下角:
Vout(C1Ry)=0.4706_Vin(C1Ry)+0.2353_Vin(C1Ry+1)+0.1176_Vin(C2Ry)+0.1765_Vin(C1Ry-1)
下边缘,接近左角:
Vout(C2Ry)=0.4706_Vin(C2Ry)+0.2353_Vin(C1Ry)+0.1765_Vin(C3Ry)+0.1176_Vin(C2Ry-1)+0.125_Vin(CxRy-1)
下边缘,接近右角:
Vout(CxRy)=0.4706_Vin(CxRy)+0.1765_Vin(Cx-1Ry)+0.2353_Vin(Cx+1Ry)+0.1176_Vin(CxRy-1)
右边缘,接近下角:
Vout(CxRy)=0.4706_Vin(CxRy)+0.1176_Vin(Cx-1Ry)+0.2353_Vin(CxRy+1)+0.1765_Vin(CxRy-1)
右边缘,接近上角:
Vout(CxR2)=0.4706_Vin(CxR2)+0.1176_Vin(Cx-1R2)+0.1765_Vin(CxR3)+0.2353_Vin(CxR1)
上边缘,接近右角:
Vout(CxR1)=0.4706_Vin(CxR1)+0.1765_Vin(Cx-1R1)+0.1176_Vin(CxR2)+0.2353_Vin(Cx+1R1)
其中Vin为CxRy处的子像素颜色的色度值(Cx代表红色子像素34和绿色子像素36的第x列,而Ry代表红色子像素34和绿色子像素36的第y行,因此,CxRy代表的是显示器面板上按照惯例从左上角数起的第x列和第y行处的红色子像素34或绿色子像素36)。
值得注意的是,所述各方程中的加权系数的总和为1。虽然用以计算整个图像转换的方程有17个,但是由于图像对称性,只需用到4组系数。这样可以降低算法实现的复杂度。
如前所述,图17所示为与图12中的蓝色平面采样点46重叠的图15的采样点74及其有效采样区72的排列78,其中图15的采样点74位于一个空间分辨率相同的网格上,并且与图11中的红色(红色重构点35)和绿色(绿色重构点37)“检验板”阵列重合。图12中的蓝色采样点46允许通过观察来确定蓝色采样区。在此情况下,蓝色采样区44现在是一个蓝色重采样区,其只是原始数据采样点74的周围蓝色值的算术平均,计算为重采样图像的采样点46的值。
采样点46的蓝色输出值Vout计算如下:
Vout(Cx+_Ry+)=0.25_Vin(CxRy)+0.25_Vin(CxRy+1)+0.25Vin(Cx+1Ry)+0.25_Vin(Cx+1Ry+1)
其中Vin为周围输入采样点74的色度值,如果按照惯例从左上角数起的,Cx代表的是采样点74的第x列,而Ry代表的是采样点74的第y行。
在蓝色子像素的计算中,X和Y的数值必须为奇数,这是因为每对红色和绿色子像素只有一个蓝色子像素。同样,加权系数的总和等于1。
红色采样点35的中心区方程的加权系数对大部分重建图像都有影响,其对中心重采样区52的作用可看作一个二进制移位除法的过程,其中0.5为“右移”一比特,0.25为“右移”两比特,而0.125则为“右移”三比特。因此,此算法非常简单快速,仅涉及简单的移位除法及加法。为了获得最高的精度和速度,周围像素的加法应该先完成,接着完成一个三比特的右移,然后加上经过左移一比特的中心值。但是,后面几个用于边缘及边角的红色和绿色采样区计算的方程将涉及更复杂的乘法。在较小的显示器上(如只有少数几个像素的显示器),为了确保质量良好的图像显示,可能需要一个更为复杂的方程。对于较大的图像或显示器,边缘和边角的微小误差无关紧要,因此可以进行简化。出于简化目的,可在图像的边缘引入“丢失的”输入数据采样点(这样的输入采样点74可以设定为与重合的输入采样点74相等),所述红色和绿色平面的第一方程即可用于边缘和边角。另外,此“丢失的”数值也可设定为黑色。此算法可容易地在软件、固件或硬件中实现。
图19及图20所示为与图8及图9中的蓝色平面采样点23重叠的图15的采样点74及其有效采样区72的另两种排列100、102,其中图15的采样点74位于一个空间分辨率相同的网格上,并且与图7中的红色和绿色“检验板”阵列重合。
图8所示为一种有效子像素着色采样区123,对于如图7所示的图6a中发光体排列的蓝色平面采样点23,该采样区具有最小的边界周长。
系数的计算方法推导过程与前述相似。计算输出采样区123重叠于图19的各输入采样区72的重叠比率,并用作转换方程或滤波核中的系数。在以下转换方程中给这些系数乘以采样值74:
Vout(Cx+_Ry+)=0.015625_Vin(Cx-1Ry)+0.234375_Vin(CxRy)+0.234375_Vin(Cx+1Ry)+0.015625_Vin(Cx+2Ry)+
0.015625_Vin(Cx-1Ry+-1)+0.234375_Vin(CxRy+1)+0.234375_Vin(Cx+1Ry+1)+0.015625_Vin(Cx+2Ry+1)
技术娴熟的业内人士可以找到快速执行这些计算的方法。例如,系数0.015625等效于右移6比特。如果图15的采样点74位于一个空间分辨率相同的网格上,并且与图11中的红色(红色重构点25)和绿色(绿色重构点27)“检验板”阵列重合,则此最小边界条件区将会带来额外的计算负担,并将数据扩展到6个采样点74上。
图9的另一种有效输出采样区124阵列31可以用于某些应用或场合。例如,如果图15的采样点74位于一个空间分辨率相同的网格上,并且与图11中的红色(红色重构点25)和绿色(绿色重构点27)“检验板”阵列重合,或者输入采样区74和输出采样区的关系如图20所示,则计算将更简单。在偶数行中,蓝色输出采样点23的计算公式与上面推倒的图17的公式相同。在奇数行中,图20的计算公式如下:
Vout(Cx+_Ry_)=0.25__Vin(CxRy)+0.25_Vin(Cx+1Ry)+0.25_Vin(CxRy-1)+0.25_Vin(Cx+1Ry-1)
通常,对于图19和图20,以上的计算适用于中心采样区124的一般情况。如上所述,在边缘处的计算需要对与偏离屏幕边缘的采样点74的值有关的公式或假设进行修改。
现在转到图21,这里举例了先前技术像素数据格式的采样点122及其有效采样区120的一种阵列104。图21所示为位于一个空间分辨率相等的网格上、并且互相重合的红色、绿色及蓝色的值,不过,这里的图像大小与图15所示的图像大小不同。
图22所示为与图13中的红色平面采样区50、52、53和54重叠的图21的采样点122及其有效采样区120的一种阵列106。图21的采样点122不在该空间分辨率相同的网格上,也不与图7或图11中的红色(红色重构点25、35)和绿色(绿色重构点27、37)“检验板”阵列重合。
在图22的阵列中,各输出采样点35的计算不能只用单个简化的转换方程。不过,根据覆盖的成比例面积对用于生成各个计算值的方法进行归一化是可能的,也是可行的。如果对于某一给定的输入输出图像比率,尤其是那些在行业内作为通用标准的比率,所述情况是真实的,那么将存在最小公分母比,这将使图像变换成为一个重复单元图案。由于具有对称性,如前面所证明的那样,利用输入与输出的重合,还可进一步降低计算的复杂度。当重复三色采样点122与对称性结合时,还能使单一系数集的数量进一步降低到更易于处理的水平。
例如,被称之为“VGA”(其曾代表的是视频图形适配器,但现在一般代表的是640×480)的商用标准显示器彩色图像格式就有640列和480行。此格式需要进行重采样或缩小,以便显示到图10所示的排列平板上,该平板在横向上有400个红色子像素34和400个绿色子像素36(横向一共800个子像素),而在垂向上则共有600个子像素35和36。这将造成输入像素到输出子像素比为4∶5。各红色子像素34和各绿色子像素36的变换方程可用图22的输入采样区120对输出采样区52的重叠比来计算。除了全部单个输出采样点35的变换方程似乎不同外,此过程与图18的变换方程的推导是类似的。幸运的是,如果计算了所有这些变换方程,就会出现一种样式。在每一行上会一遍遍重复相同的五个变换方程,而在每一列上则会重复另一种样式的五个变换方程。结果,对于像素—子像素比为4∶5的情况,只需5×5或25组独立的方程就足够了。这就将单值计算降低为25组系数。在这些系数中,还可找出其它的对称样式,进而将系数集的总数降到只有6组独立的集合。对于图6a的排列20,相同的方法将会生成同样的一组系数。
下面给出了如何利用所述几何方法计算这些系数的一个例子。图32所示为来自上面将650×480的VGA格式图像转换为共有800×600个红色和绿色子像素的PenTile矩阵的实例的一个5×5的重复单元202。由实线206构成界线的各个正方形子像素204表示的是必须有一组系数需要计算的红色或绿色子像素的位置。由于不具有后面即将详细讨论的图32中的对称性,因此有25组系数需要计算。
图33所示为系数中的对称性。如果将这些系数写成工业用的滤波核的通用矩阵形式,子像素216的滤波核将是子像素218的滤波核的左右翻转的一个镜像。这对位于对称线220右侧的所有子像素来说都是成立的,即每个子像素的滤波核都是其反向子像素的滤波核的镜像。另外,子像素222的滤波核将是子像素218的子像素的上下翻转的一个镜像。这对位于对称线224下方的所有其它滤波核而言也是成立的,即每个都是其反向子像素滤波核的镜像。最后,子像素226的滤波核将是子像素228的对角翻转的一个镜像。这对位于对称线230右上方的所有子像素而言都是成立的,它们的滤波核都是对角反向子像素滤波核的对角镜像。最后,对角线上的滤波核都是内部对角线对称,在对称线230的对角反向侧上具有相同的系数值。在此将进一步提供一个完整的滤波核组的实例以说明在滤波核中的所有这些对称性。需要计算的滤波核只是那些带阴影的部分,即子像素218、228、232、234、236及238。在重复单元大小为5实例中,需要计算的滤波器的最小数目只为6。余下的滤波核可通过此6个已计算好的滤波器在不同轴上的翻转来确定。只要重复单元的大小为奇数,则计算滤波器的最小数目的公式为:
Nfilts = P + 1 2 · ( 1 + P + 1 2 ) 2
其中P为重复单元的奇数宽和高,Nfilts为所需滤波器的最小数目。
图34所示为重复单元为偶数时的一个实例。需要计算的滤波核只是那些带阴影的部分,即子像素240、242及244。在此重复单元大小为4的实例中,只需计算3个滤波器。只要重复单元的大小为奇数,则计算滤波器的最小数目的通用公式为:
Neven = P 2 · ( 1 + P 2 ) 2
其中P为重复单元的偶数宽和高,Neven为所需滤波器的最小数目。
回到图32,中心子像素204的着色边界208包围了一个与四个原始像素区212重叠的区域210。这些重叠区域的每一个都是相等的,而且它们的系数和必须为1,所以每个都为1/4或者说0.25。这些就是图33中子像素238的习俗,而此例中的2×2滤波核将为:
  1/4 1/4 1/4 1/4
图33中子像素218的系数在图35中推导。此子像素218由一个与5个外围输入像素采样区248重叠的着色区域246限定。尽管此子像素位于重复单元的左上角,但为了计算起见,假设总有另一个重复单元通过边缘与附加的采样区248重叠。这些计算对一般情况而言是完整的,但在显示器边缘将以不同于前述方法的方法来处理。由于着色区域246在水平和垂直方向上均跨过三个采样区248,因此要容纳所有的系数需要一个3×3的滤波核。这些系数按前述方法计算:测量着色区域246重叠于每个输入采样区的部分的面积,然后除以着色区域246的总面积。着色区域246与左上角、右上角、左下角或右下角的采样区248完全不重叠,因此它们的系数为零。着色区域246以着色区域246总面积的1/8重叠于中上及左中采样区248,所以它们的系数为1/8。着色区域246以最大的面积比例重叠于中心采样区248,该比例为11/16。最后,着色区域246以最小的面积比例1/32重叠于右中及中下采样区248。将所有这些系数依顺序放置,即可得到下面的系数滤波核:
  0 1/8 0 1/8 11/16 1/32 0 1/32 0
图33中的子像素232及其重叠于五个采样区252的着色区域250示于图36。如前所述,计算着色区域250重叠于各个采样区250的部分的面积,然后除以着色区域250的总面积。在此例中,为容纳所有的系数,只需一个3×2的滤波核就足够了,但为了一致起见,将使用一个3×3的滤波核。图36的滤波核将为:
  1/64 17/64 0 7/64 37/64 2/64 0 0 0
图33中的子像素234及其重叠于采样区256的着色区域254示于图37。其例的系数计算可得到下面的滤波核:
  4/64 14/64 0 14/64 32/64 0 0 0 0
图33中的子像素228及其重叠于采样区260的着色区域258示于图38。此例的系数计算可得到下面的滤波核:
  4/64 27/64 1/64 4/64 27/64 1/64 0 0 0
最后,图33中的子像素236及其重叠于采样区264的着色区域262示于图39。此例的系数计算可得到下面的滤波核:
  4/64 27/64 1/64 4/64 27/64 1/64 0 0 0
由此可推断出像素—子像素比为4∶5的实例所需的所有计算的最少数目。余下的所有25组系数集可由所述六个滤波核在不同轴上翻转来构造,如图33所述。
出于缩放目的,滤波核之和必须等于1,否则会影响到输出图像的亮度。这对于所述所有六个滤波核均成立。但是,如果滤波核实际都采用这种形式,则系数值将均为分数,并需要浮点运算。在工业中常将所有系数乘以某一数值以将其全转换成整数。然后便可以用整数算法将输入采样值乘以滤波核的系数,只要稍后将总和除以相同的数值即可。检查上面的滤波核可以发现,用于与所有系数相乘的最好的数值是64。这样可以得到图35中子像素218的滤波核:
  0 8 0 4 44 2 0 2 0
(除以64)
为了便于计算,此例中的所有其它滤波核都可以作类似的修改以转换成整数。当除数为2的乘方时尤为方便,在本例中即为如此。除数为2的乘方的除法可以通过将结果向右移位的方法在软件或硬件中快速完成。在此例中,向右移位6比特即为除以64。
例如,被称之为“XGA”(其曾代表的是扩展图形适配器,但现在一般代表的是1024×768)的商用标准显示器彩色图像格式就有1024列和768行。此格式可经缩放显示到图10中含有1600×1200个红色发光体34和绿色发光体36(加上800×600个蓝色发光体32)的排列38上。此配置的缩放比或重采样比为13∶25,这将产生625组单值系数集。利用系数中的对称性,可以将这一数目减小到可以更为合理的91组。但是,即使这样较少数目的滤波器用手算的话也是很繁琐的,如上所述。相反,如果利用机器(如计算机),计算机程序(一种机器可读取的介质)可以自动完成这一任务,并快速生成这些系数集。实际上,此程序只需使用一次便能生成任何给定比率的滤波核表格。然后,将此表格用在缩放/着色软件中,或烧入可实现缩放及子像素着色的硬件的ROM(只读存储器)中。
滤波器生成程序必须完成的第一步是计算缩放比率及重复单元的大小。通过将输入像素点数和输出子像素点数除以它们的GCD(最大公分母)可以完成这一步。用一个较小的双嵌套循环也能完成这一步。外循环用一系列质数对这两个数进行测试。此循环将反复运行,直到测试的质数与这两种像素点数中较小的一个的平方根一样为止。实际上,对于典型的屏幕大小,将永远不需要测试大于41的质数。相反,由于此算法是要事先“离线”生成滤波核,因此外循环可以简单执行由2到某个不合理大数之间的所有数字,可以是质数及非质数。这样也许会浪费CPU时间(因为要进行的测试次数比所需要的更多),不过此代码对某一特定的输入输出屏幕大小组合只需运行一次。
内循环用当前的质数对这两个像素点数进行测试。如果两个点数都能被该质数整除,则让它们都除以此质数,然后继续内循环,直到这两个数量中有一个不能被质数整除为止。当外循环结束时,剩下的小数目即为已被GCD整除的结果。这两个数目将为两个像素点数的“缩放比”。
部分典型值:
320∶640变为1∶2
384∶480变为4∶5
512∶640变为4∶5
480∶768变为5∶8
640∶1024变为5∶8
这些比率将称为像素—子像素比,或P∶S比,其中P为比率中的输入像素分子,而S则为子像素分母。重复单元在横向或纵向上所需的滤波器数量为比率中的S。所需的滤波核总数为水平及垂直S数值的乘积。在几乎所有源自VGA的公用屏幕大小中,水平及垂直重复样式的大小将变为相同,而所需的滤波器数量将为S2。根据所述表格,要缩放到一个1024×768的PenTile矩阵上的一幅640×480的图像的P∶S比为5∶8,因此需要8×8或64个不同的滤波核(在考虑对称性之前)。
理论上,一个滤波核中所用的分数值之和应为1。实际上,如上面提到的那样,滤波核通常计算为整数值,并在以后应用一个除数将总数归一化到1。开始即尽可能精确地计算加权值非常重要,因此着色区域可以在一个大得足以确保所有计算均为整数的坐标系中计算。经验表明,用于图像缩放情况的正确的坐标系应该是一个输入像素的大小与横跨一个重复单元的输出子像素数目相等的坐标系,此坐标系可使得输出像素的大小等于横跨一个输入单元的输入像素数量。这直观上是计数问题,而且似乎是一个倒计数问题。例如,在P∶S比为4∶5的512个输入像素到640个输出子像素的缩放实例中,可以在图纸上将输入像素划分为5×5个正方形,而其顶部的输出像素则为4×4个正方形。这是可同时绘出两种像素并保持所有数目为整数的最小比例。在此坐标系中,输出子像素上方居中的菱形着色区域的面积总等于一个输出像素的面积的两倍,或为2*P2。这就是可用作滤波器加权值的分母的最小整数值。
不幸的是,由于菱形横跨了数个输入像素,其可以被切割成三角形。三角形的面积为宽乘高再除以2,而这样会再一次引入非整数值。对面积计算两次可以解决这一问题,因此计算面积的程序应乘以2。这使得最小的有用整数滤波器分母应等于4*P2。
接下来有必要确定每个滤波核必须有多大。在所述用手完成的实例中,有些滤波核为2×2,有些为3×2,其它的则为3×3。输入输出像素的相对尺寸,以及菱形着色区域如何相互交叉,即决定了所需要的滤波核的最大尺寸。当对每个输入像素横跨两个以上输出子像素(例如100∶201或1∶3)的原始数据中的图像进行缩放时,2×2的滤波核是可能的。这将需要较少的硬件即可实现。此外,此图像质量要优于先前技术的缩放结果,因为结果得到的图像记录了所包含目标像素的“垂直度”,进而尽可能最佳地保持了由许多平板显示器的锐利边缘所表示的空间频率。这些空间频率可由字体及图标设计者用来提高它们的清晰度,从而消除技术中熟知的奈奎斯特(Nyquist)极限的限制。先前技术的缩放算法不是利用插值将缩放空间频率限制到奈奎斯特极限上,就是保持图像的清晰度,但会产生令人不快的相位误差。
当按比例缩小时,输入像素要比输出子像素多。对于任何大于1∶1(例如101∶100或2∶1)的比例因子,滤波器的大小将变为4×4或者更大。要说服硬件制造商加入更多的行缓冲器以实现这样的功能是很困难的。但是,如果(比例因子)限制在1∶1和1∶2的范围内,其好处是滤波核的大小将维持在一个固定的3×3的大小上。幸运地是,大部分必须用硬件实现的情况都落在此范围内,因此编写程序以简单地生成3×3的滤波核的合理的。在某些特殊情况下,如上面用手完成的实例,部分滤波核可能小于3×3。在其它特殊情况下,尽管理论上滤波核的大小应为3×3,但结果得到的每个滤波器可能只有2×2。不过,一般情况的滤波核越容易计算,带有固定滤波核大小的硬件就越容易实现。
最后,滤波核加权值的计算现在已变成了一个简单的任务,即计算相交于重复单元中各独立(非对称)位置处的输出菱形的3×3输入像素的面积(乘以2)。这是工业中熟知的一种非常直截了当的“着色”任务。对于每个滤波核,需要计算3×3或9个系数。为了计算各个系数,需要生成菱形着色区域的一个向量描述。利用工业中熟知的多边形裁剪法沿着输入像素区域的边缘对此形状进行裁剪。最后,计算裁剪多边形的面积(乘以2)。计算的到的面积即为该滤波核的对应单元的系数。此程序的一个输出实例如下所示:
源像素分辨率1024
目标子像素分辨率1280
缩放比率为4∶5
滤波器数值都除以256
所需要的最少滤波器(有对称性):6
此处生成的滤波器数(有对称性):25
  0  32  032 176 80  8   0 4  28  068 148 00  8   0 16  16  0108 108 04   4   0 28  4  0148 68 08   0  0 0 32  08 176 820 8   0 4  68  028 148 80  0   0 16 56  056 128 00  0   0 36 36 092 92 00  0  0 56 16  0128 56 00   0  0 0 68  48 148 280 0   0 16 108 416 108 40  0   0 36 92 036 92 00  0  0 64 64 064 64 00  0  0 92 36 092 36 00  0  0 4 108 164 108 160 0   0 28 148 84  68  00  0   0 56 128 016  56 00   0  0  92 92 036 36 00  0  0 128 56  056  16  00   0   0 8 148 280  68 40  0  0
  0  32  032 176 80  8   0 4  28  068 148 00  8   0 16  16  0108 108 04   4   0 28  4  0148 68 08   0  0 0 32  08 176 820 8   0 0  8   032 176 80  32  0 0  8   068 148 04  28  0 4   4   0108 108 016  16  0 8   0  0148 68 028  4  0 0 8   08 176 320 32  0
在上面的输出实例中,此例所需的所有25个滤波核都需要计算,没有考虑其对称性。检查这些系数,直观上可以证明在这些重复单元中的滤波核中存在水平、垂直及对角线等对称性。如前所述,图像的边缘及边角可特别处理,或者通过在“丢失的”输入数据采样中填入其它采样数据的均值、贡献最大的单个采样值、或者黑色来近似。如本技术中所熟知的那样,每一组系数各用于一个滤波核。保持对位置及对称算子的跟踪是软件或硬件设计人员的任务之一,这里所用的模量匹配技术也是本技术中熟知的。生成系数的任务很简单,即利用业内熟知的方法为对应输出采样点35的每个采样值计算输入采样区120与输出采样区52的比例重叠面积。
图23所示为与图12中的蓝色平面采样区44重叠的图21的采样点122及其有效采样区120的一种阵列108,其中图21的采样点122不在该空间分辨率相同的网格上,也不与图11中的红色和绿色“检验板”阵列重合。生成转换方程的计算方法如前所述进行。首先,确定三色像元的重复阵列的大小,接着确定单值系数的最少数量,然后依据每个对应输出采样点46的输入采样区120与输出采样区44的比例重叠面积确定这些系数的值。将这些值加入到转换方程中。重复三色像元的阵列及计算得到的系数数量与所确定的红色及绿色平面的数量相同。
图24所示为与图8中的蓝色平面采样区123重叠的图21的采样点及其有效采样区的一种阵列110,其中图21的采样点122不在该空间分辨率相同的网格上,也不与图11中的红色(红色重构点35)和绿色(绿色重构点37)“检验板”阵列重合。生成转换方程的计算方法如前所述进行。首先,确定三色像元的重复阵列的大小,接着确定单值系数的最少数量,然后依据每个对应输出采样点23的输入采样区120与输出采样区123的比例重叠面积确定这些系数的值。将这些值加入到转换方程中。
前述已研究了CRT的RGB格式。传统的RGB平板显示器排列10含有排列在一个三色像元8中的红色4、绿色6及蓝色2发光体,如先前技术图1所示。为了将具有对应于此排列的格式的图像投射到图6a或图10中所示的三色像元上,必须确定重建点。这些红色、绿色及蓝色重建点的布置如图2给出的排列12所示。红色、绿色及蓝色重建点并不相互重合,而是有一定的水平偏移。根据Benzschawel等人在编号为5,341,153的美国专利中以及后来Hill等人在编号为6,188,385的美国专利中所公开的先前技术,这些位置将被用作采样点3、5和7以及采样区,如先前技术图3中所示的红色平面14、先前技术图4中所示的蓝色平面16以及先前技术图5中所示的绿色平面18。
根据这里公开的方法,利用图3、图4及图5给出的先前技术排列可以生成转换方程的计算值。所述方法可以用来计算前述先前技术排列的每个输出采样点的转换方程或滤波核的系数。图25所示为与图13的红色平面采样区52重叠的图3的红色平面的有效采样区125,其中图25中红色发光体35的排列与图6a及图10中的排列具有相同的像素级(重复单元)分辨率。生成转换方程的计算方法如前所述进行。首先,确定三色像元的重复阵列的大小,接着通过计算对称性确定单值系数的最少数量(在此例中为2),然后依据每个对应输出采样点35的输入采样区125与输出采样区52的比例重叠面积确定这些系数的值。将这些值加入到转换方程中。绿色平面的重采样(如图4所示)的计算采用类似的方式进行,不过输入采样阵列应旋转180°,且绿色输入采样区127也应加以偏置。图26所示为与图8的蓝色平面采样区123重叠的先前技术图4的蓝色平面的有效采样区127。
图40所示为与图32中的红色及绿色实例对应的蓝色实例。图40中的采样区266为正方形,而非红色及绿色实例中的菱形。原始像素边界272的数量相同,但蓝色输出像素边界274更少一些。系数的计算如前所述:测量每个输入采样区被着色区域266所覆盖部分的面积,然后除以着色区域266的总面积。在此例中,蓝色采样区266与四个原始像素区268等面积重叠,因此得到四个系数都为1/4的一个2×2的滤波核。其它八个蓝色输出像素区270,以及它们与原始像素区268的几何交叉示于图40。最后所得到的滤波器的对称关系可在每个输出像素区270的原始像素边界274的对称排列中观察到。
在更复杂的情况下,可以用计算机程序来生成蓝色滤波核。可以看出,此程序与生成了红色及绿色滤波核的程序非常类似。图11中的蓝色子像素采样点33的间距为红色采样点35及绿色采样点37的两倍,因此建议蓝色着色区域应为两倍宽。但是,红色及绿色的着色区域为菱形,因此其宽度为采样点间距的两倍。这使得红色、绿色及蓝色的着色区域具有相同的宽度和高度,这样可以得到一些方便的数字;蓝色滤波核的大小应与红色及绿色滤波核的大小相同。此外,蓝色重复单元的大小通常也与红色及绿色的重复单元的大小相同。由于蓝色子像素采样点37的间距为两倍,因此P:S(像素—子像素)比应加倍。例如,红色比率为2:3时蓝色比率应为4:3。但是,重复单元大小的是由比率中的S的数值决定的,而S并未受到加倍的影响。但是,如果分母刚好能够被2整除,则可以做进一步的优化。在此情况下,蓝色的两种数量可以除以另一个2的乘方。例如,如果红色及绿色的P:S比为3:4,则蓝色的比率将为6:4,此比率可化简为3:2。这意味着在这些(偶数)情况下,蓝色重复单元的大小可以减半,而所需的滤波核总数将为红色及绿色滤波核总数的四分之一。相反地,为了算法或硬件设计的简化,可以让蓝色重复单元的大小等于红色及绿色重复单元的大小。最后得到的滤波核集合将翻番(实际上是翻四倍),但其作用与红色及绿色滤波核集合的作用相同。
因此,利用红色及绿色滤波核程序来生成蓝色滤波核所需要的修改只是使P∶S比的分子加倍,并将着色区域由菱形改为正方形。
现在考虑图6a中的排列20及图9中的蓝色采样区124。这一点与蓝色采样区124为正方形的前述实例类似。但是,由于每隔一列即向下或向上交错半个高度,因此计算较为复杂。乍看起来,重复单元的大小在水平上应该加倍。不过,可以利用以下方法生成正确的滤波核:
1)生成滤波核的重复单元集合,如同蓝色采样点并未交错,如上所述。给重复单元滤波器表格的列和行标上以零开始、并以重复单元的个数减去1的数字结束。
2)在输出图像的偶数列上,重复单元中的滤波器是正确的。输出Y坐标对重复单元大小的模选择了将要用到的滤波核集合中的哪一行,而X坐标对重复单元大小的模则选择了将要用到的列,并告知将要使用此Y选定行中的哪一个滤波器。
3)在输出图像的奇数列上,求模前(对重复单元大小)先从Y坐标中减去1。
X坐标按偶数列一样处理。这将为图9中的交错情况挑选出正确的滤波核。
在某些情况下,可能允许先执行求模计算,并将滤波核表格预先交错。不幸的是,这种情况只有在重复单元的列数为偶数的情况下才可行。如果重复单元的列数为奇数,求模算法会在一半时间内选择偶数列,而在另一半时间内选择奇数列。因此,到底要交错的哪一列的计算必须在使用表格的时刻才进行,而不能预先进行。
最后,考虑图6a中的排列20及图8中的蓝色采样区123。这与前述情况基本类似,除了六角形采样区会带来额外的复杂度外。考虑这些六角形的第一步是如何正确地提取它们,或者说,如何用计算机程序生成它们的向量列表。为了达到最准确,这些六角形必须为面积最小的六角形,但不是等边的六角形。利用图41可以轻易地完成几何证明,即图8中的这些六角形采样区123在两侧各比正方形采样区276宽1/8。此外,六角形采样区123的顶边及底边在两端各比正方形采样区276的顶边及底边窄1/8。最后,六角形采样区123与正方形采样区276等高。
这些六角形采样区123的滤波核可以用与所述相同的几何方法生成,其中对红色及绿色要用菱形,或对蓝色要用正方形。着色区域为简单的六角形,测量这些六角形与周围的输入像素的重叠面积。不幸的是,当使用稍宽的六角形采样区123时,即使缩放比率仍保持在1∶1和1∶2之间,滤波核的大小有时候也会超过3×3的滤波器。分析表明,如果缩放比率在1∶1到4∶5之间,滤波核的大小将为4×3。如果缩放比率在4∶5到1∶2之间,滤波核的大小将保持为3×3(请注意,由于六角形采样区123与正方形采样区276等高,所以滤波核的垂直大小保持相同。)
由于为一个更宽的滤波核设计硬件并不象构建一个用以处理更高的滤波核的硬件那样困难,因此对基于硬件的子像素着色/缩放系统而言,制造4×3滤波器的要求并非不切实际。不过,另一种方案是可能的。当缩放比例为1∶1到4∶5之间时,采用图9的正方形采样区124,结果将得到3×3的滤波器。当缩放比例为4∶5到1∶2之间时,采用图8的更准确的六角形采样区123,结果也只需3×3的滤波器。这样,硬件将保持更简单,制造也更便宜。硬件只需为一种滤波核大小制造,需要修改部分的只是用来制造这些滤波器的算法。
和图9的正方形采样区一样,图8的六角形采样区每隔一列也是交错的。分析表明,所述图9的滤波核选择方法对图8的六角形采样区同样可行。基本上,这意味着滤波核的系数可以按六角形并未交错的情况计算,即使它们通常是交错的。这使得计算更加容易,并能防止滤波核表格成倍增大。
在图32至图39的菱形着色区域的情况下,为了便于计算,面积计算是在一个设计上能使所有面积均为整数的坐标系上进行的。这样有时会得到庞大的总面积,而滤波核在使用中必须除以庞大的数值。有时候这样会造成滤波核并非2的乘方,从而使得硬件设计更加困难。在图41的情况下,六角形着色区域123的额外宽度将使得有必要给滤波核系数乘以更大的数值以使其都为整数。在所有这些情况下,更好的作法应是寻找一种方法以限制滤波核系数的除数的大小。为了使硬件更易于设计,选择一个为2的乘方的数作为除数更为有利。例如,如果所有滤波核被设计成被256除,则此除法运算可通过8比特的右移运算来实现。选择256还能保证所有的滤波核系数都为8比特数,这样的数更适于标准的“字节宽”的只读存储器(ROM)。因此,下面的方法可用来生成除数为某一期望数值的滤波核。由于首选的除数为256,此数将被用于下面的方法中。
1)利用浮点算法为滤波器系数计算面积。由于此运算是在事先离线完成的,这样并不会增加用来生成表格的硬件成本。
2)将每个系数除以已知的着色区域总面积,然后乘以256。如果所有运算都用浮点数完成,将使得滤波器总和为256,但要构造整数表格,还需要更多的步骤。
3)进行二进制搜索以找出在转换为整数时能使滤波器总和等于266的舍入点(在0.0及1.0之间)。二进制搜索是业内熟知的一种通用算法。如果搜索成功,则已完成。二进制搜索可能无法收敛,这一点可通过测试某个过量的循环次数来检测。
4)如果二进制搜索失败,则在滤波核中找出一个合理的大系数,然后加上或减去一个小数值以强迫滤波器之和等于256。
5)检查只有单个值256的特殊情况的滤波器。此值对于最大可能数值为255的8比特字节表格并不符合。在此特殊情况下,将此单值设为255(256-1)并给周围系数中的一个加上1以保证滤波器之和仍为256。
图31所示为特殊情况下与图15的输入采样排列70的顶部重叠的图11的输出采样排列40,其中缩放比例为一个输入像素对应两个输出子像素。在此配置200中,如果原始数据未经子像素着色,三色像元39中的红色发光体对35将视为组合对待,其中在三色像元39中心处有一个代表重建点33。同样,三色像元39中的两个绿色发光体37将视为位于三色像元39中心处的单个重构点33对待。蓝色发光体33已经在中心处了。这样,这五个发光体可视为由它们重建的RGB数据格式的采样点处理,并且视为所有三种颜色平面均位于中心。此模式可视为子像素的此类配置的“自然模式”。
利用重采样,通过子像素着色,可将经过子像素着色的图像着色到含有子像素的不同排列的其它子像素显示器上,这样可以保持许多经过改进的原有图像质量。根据具体的实施例,有必要生成一个从子像素着色图像到在这里所公开的一种排列的转换。参考图1、2、3、4、5、25及26,上面提到的方法仍然可行,即计算图25所示的目标显示器排列的每个输出采样点35相对于图3中向右移位的红色输入采样5的转换滤波器的系数。蓝色发光体根据所述说明处理,即计算目标显示器排列的每个输出采样点相对于图4中移位的蓝色输入采样7的转换滤波器的系数。
在输入数据已经过子像素着色的绿色平面的情况中,如图5所示,由于绿色数据仍然居中,所以无需对非子像素着色的情况作任何修改。
当使用子像素着色文字的应用程序含有并排的非子像素着色的图形及照片时,更为有利的是检测子像素着色过程并转到所述的另一种空间采样滤波器上。但是,对于该缩放比例,还需要转回到非子像素着色区域的常规空间采样滤波器上,这在前面也有说明。要构造这样的检测器,首先必须了解子像素着色文字看起来象什么,其可检测的特征是什么,以及其与非子像素着色图像的区别是什么等等。首先,位于黑色及白色子像素着色字体边缘的像素将不会是局部的中性色:即R≠G。但是,在数个像素上,该颜色将为中性:即就非子像素着色的图像或文字,这两个条件是不会同时发生的。因此,我们有了自己的检测器,即在数个像素上检验局部的R≠G和
由于RGB彩条面板上的子像素着色处理是一维的,即沿着水平轴一行接一行地进行,所以检验也是一维的。以下所示为这样的一个检验:
如果Rx≠Gx且
如果

如果
则应用子像素着色输入的另一种空间滤波器
否则应用常规的空间滤波器
对于文字为彩色的情况,红色和绿色分量之间将存在一种形式为Rx=aGx的关系,其中“a”为常数。对于黑白文字,“a”的值为1。该检验可以扩展到检测颜色及黑白文字上:
如果Rx≠Gx且
如果

如果
则应用子像素着色输入的另一种空间滤波器
否则应用常规的空间滤波器
Rx及Gx表示的是位于“x”像素列坐标处的红色及绿色分量的值。
为了测定是否足够接近,可能还需要一个阈值检验。此阈值可调整到最佳结果。为了得到最佳结果,还可以调整项式的长度以及检验的跨度,不过一般都应遵守所述的形式。
图27所示为与另一个实施例相应的、用于显示器装置中三种平面内的一个阵列的三色像元的一种排列。图28所示为用于图27的装置的一个阵列的蓝色发光体像元的排列。图29所示为用于图27的装置的一个阵列的绿色发光体像元的排列。图30所示为用于图27的装置的一个阵列的红色发光体像元的排列。这种排列及布局对基于使用三种面板的投影机的显示器而言非常有用,其中每个面板分别对应于红色、绿色及蓝色,它们一起将各自的图像投影到一个屏幕上。此发光体排列及形状与图6a所示的排列的采样区,即图8、图13及图14极其相似。因此,这里所公开的用于图6a的排列的图形生成、转换方程计算以及数据格式等对图27的三平板排列也适用。
对于上面接近于2∶3以及更高的缩放比例,PenTileTM子像素矩阵排列用的子像素着色重采样数据集合在表现结果图像方面更加有效。如果要存储和(或)传送的图像预计要显示到一个PenTileTM显示器上,而且缩放比例为2∶3或者更高,更方便的作法是在存储和(或)传送之前先进行重采样,以保存在存储器的存储空间和(或)带宽上。这种经过重采样的图像称为“预着色”。因此,此预着色处理可用作一种有效的无损压缩算法。
本发明的优点是:可以接受大部分存储图像,并将其预着色到任何实用的颜色子像素排列上。
本发明的更多优点是:它以实例的方式公开了图46、图49以及图51的方法,即利用上面的子像素着色技术提供了伽玛补偿或调整功能。这三种利用子像素着色提供伽玛调整的方法可在显示器上获得正确的图像颜色平衡。通过提高输出对比率,图49及图51的方法还能进一步提高输出的亮度。特别地,图46举例了一种在子像素着色前应用预调整伽玛的方法;图49举例了一种伽玛调整子像素着色方法:而图51则举例了一种带欧米伽功能的伽玛调整子像素着色方法。这些方法的优点将在下文讨论。
图46、图49以及图51的方法可用硬件、固件或软件实现,详细说明如图52A至图72所述。例如,附录中的示范代码便可用来实现在此所公开的方法。由于人眼不能分辨绝对的亮度值,因此,需要提高图像的亮度对比率,尤其是在较高的空间频率处。通过提高对比率,可获得质量更高的图像,并可消除色差,正如下面的详细说明那样。
可提高对比率的方法可通过伽玛调整子像素着色及带有欧米伽功能的伽玛调整子像素着色的作用证明,即位于模量传输函数(MTF)上奈奎斯特极限处的最大/最小(MAX/MIN)值点,这些将在图43、图44、图47及图50中详细说明。特别地,这里所述的伽玛调整子像素着色技术可将MTF的MAX/MIN点的趋势往下偏移,以为输出图像提供较高的对比度,尤其是在较高的空间频率处,同时保持正确的颜色平衡。
子像素在显示器上的排列,例如图6、图10及图42B所述,其在水平轴、或垂直轴、或两个轴上具有交替的红色(R)或绿色(G)子像素。在此所述的伽玛调整也可应用于使用子像素着色功能的其它类型的显示器也就是说,在此所述的技术可应用于使用图1所示RGB彩条格式的显示器。
图43所示为输入图像的一个正弦波,该正弦波具有相等的幅度,以及递增的空间频率。当对图43的输入图像实施不带伽玛调整的子像素着色时,输出的一个示范性曲线图如图44所示。此输出曲线图(“输出能量”)表明输出能量的幅度随着空间频率的增加而减小。
如图44所示,50%的MTF值表明奈奎斯特极限处的输出幅度为原始输入图像或信号幅度的一般。MTF值可由输出的能量幅度除以输入的能量幅度来计算:(MAXout-MINout)/(MAXin-MINin)。奈奎斯特极限指的是输入信号的采样频率(f)应至少大于信号可重建频率(f/2)的两倍。换言之,奈奎斯特极限是确保输入信号可以重建的空间频率的最高点。Sparrow极限则为MTF=0处的空间频率。因此,奈奎斯特极限处的测量值,例如对比率,可用来测定图像的质量。
图44的输出能量在奈奎斯特极限处的对比率可通过将输出的MAX亮能级除以输出的MIN暗能级来计算。如图44所示,MAX亮能级为最大输出能级的75%,而MIN暗能级则为最大输出能级的25%。这样,对比率可由这些MAX/MIN值确定,即对比率为75%/25%=3。因此,在对比率=3及高空间频率处,显示器上与图44的输出曲线对应的输出将表现为明暗交替的条形,因此条形的边缘将具有较低的清晰度和对比度。这样,在高空间频率处,输入图像的黑条将被显示为暗灰条,而输入图像的白条则将被显示为亮灰条
利用图49及图51的方法,通过将MTF的MAX及MIN点向下移动,即能提高对比率。简言之,图49的伽玛调整子像素着色方法的奈奎斯特极限MTF示于图47。如图47所示,MTF可以沿着一条平直的趋势线向下移动,与图44的MTF相比,MAX值变为65%,而MIN值则变为为12.5%。因此图47的奈奎斯特极限对比率为63%/12.5%=5(近似值)。因此对比率由3提高到了5。
利用图51的带欧米伽功能的伽玛调整方法还可进一步提高此奈奎斯特极限对比率。如图50所示,MTF可以进一步沿着一条下斜的趋势线向下移动,与图47的MTF相比,MAX值变为54.7%,而MIN值则变为4.7%。因此奈奎斯特极限对比率为54.7%/4.7%=11.6(近似值)。这样,对比率将由5提高到了11.6,从而可以显示更高质量的图像。
图45所示为使用不带伽玛调整的子像素着色时可能出现的说明色差的一个示范性曲线图。为了详细说明“伽玛”效应对着色子像素的颜色的影响,在此给出了人眼亮度响应的一个简单论述。如前所述,人眼对亮度变化的感受是按照百分比变化量而不是绝对辐射能量值来感受的。亮度(L)与能量(E)的具有L=E1/γ的关系。当亮度增大时,可感知的亮度增量需要一个更大的绝对辐射能量增量。因此,对于在显示器上感觉相同的亮度增量,各增量在对数上应比后者更高。L与E之间的这种关系称之为“伽玛曲线”,并表示为g(x)=x1/γ。一个大约为2.2的伽玛值(γ)可代表人眼的对数要求。
传统的显示器可通过执行如图45中所示的显示器伽玛函数来补偿人眼的所述要求。但是,子像素着色过程需要一个线性的亮度间距。就是说,一个子像素(如绿色子像素或红色子像素)的亮度输出应具有一个落在一条虚线的值。因此,当含有较高空间频率的子像素着色图像被显示到一个没有整合伽玛调整功能的显示器上时,由于子像素的亮度值并不平衡,因此会产生色差。
特别地,如图45所示,红色及绿色子像素无法不到这样的线性关系。尤其是,可将绿色子像素设定为可提供50%的亮度,其在显示器上可代表一个白点逻辑像素。但是,绿色子像素的亮度输出却落在显示器函数上的25%处而不是50%处。此外,此白点周围的四个子像素(例如,红色子像素)的亮度可设定为每个均可提供12.5%的亮度,但会落在显示器函数上的1.6%处而不是12.5处。此白点像素及其周围像素的亮度百分数之和应等于100%。因此,为了具有正确的颜色平衡,周围子像素中也要求有线性的关系。但是,此四个周围子像素的亮度仅为1.6%×4=6.4%,其远小于中心子像素所需的25%。因此,在此例中,中心颜色要高于周围颜色,从而引起色差,即结果是彩色点而不是白点。在更复杂的图像中,由非线性显示器引起的色差会造成在对角线方向上含有高空间频率的部分的误差。
为了使子像素着色位于正确的线性空间上,以下图46、图49以及图51的方法在线性子像素着色数据上应用了一种变换(伽玛校正或调整)。如下面的详细说明,下列方法为可着色子像素提供正确的颜色平衡。图49及图51的方法还能进一步提高着色子像素数据的对比度。
为了解释起见,下列方法均使用像素—子像素比(P∶S)为1∶1的最高分辨率来说明。也就是说,对于一个像素对一个子像素的分辨率,应使用一个含有3×3个系数项的滤波核。不过,其它P∶S比也能实现,例如,通过使用适当数量的3×3滤波核。例如,在P∶S为4∶5的情况下,可以使用所述的25个滤波核。
在一个像素对一个子像素的着色中,如图42A所示,红色或绿色子像素的重采样区282的输出值(Vout)可用九个隐含的采样区280的输入值(Vin)来计算。此外,为了解释起见,下列方法可使用图42B所示的子像素排列来说明。不过,对于其它子像素排列,例如图6及图10,利用下述红色及绿色子像素的计算及公式,以及对蓝色子像素的计算及公式进行适当的修改,下列方法也能实现。
图46所示为一种在子像素着色前应用预调整伽玛的方法300的流程图。首先,接收如图42A所示的九个隐含采样区280的输入采样数据(Vin)(步骤302)。
接下来,将每个Vin值输入到由函数g-1(x)=xγ定义的计算中(步骤304)。此计算称之为“预调整伽玛”,并可通过访问预调整伽玛查询表(LUT)来完成。g-1(x)函数为人眼响应函数的逆函数。因此,当由眼睛感受时,经过预调整伽玛的子像素着色数据可与人眼响应函数相匹配,从而得到利用g-1(x)函数的原始图像。
预调整伽玛完成后,利用前述的子像素着色技术进行子像素着色(步骤306)。如前面的详细说明,在子像素着色的这一步,给对应于滤波核系数项Ck中的各项乘以步骤304得到值,并将所有相乘的项相加。这些系数项Ck取自一个滤波核系数表(步骤308)
例如,红色及绿色子像素可在步骤306中计算如下:
Vout(CxRy)=0.5×g-1(Vin(CxRy))+0.125×g-1(Vin(Cx-1Ry))+
0.125×g-1(Vin(Cx+1Ry))+0.125×g-1(Vin(CxRy-1))+0.125×g-1(Vin(CxRy+1))
经过步骤306及308后,子像素着色数据将接受某一给定显示器伽玛函数的后伽玛校正(步骤310)。显示器伽玛函数可表示为f(x),并可代表一个典型的非1伽玛函数,例如液晶显示器(LCD)。为了达到子像素着色的线性度,可用后伽玛校正函数f-1(x)来确定并抵消显示器伽玛函数,此后伽玛校正函数可通过计算f(x)的逆函数来生产。后伽玛校正可以使子像素着色数据不受显示器的干扰而抵达人眼。此后,将后伽马校正子像素着色数据输出到显示器(步骤312)。在子像素着色前应用预调整伽玛的图46的所述方法在所有空间频率上均能提供正确的颜色平衡。图46的方法至少在低空间频率上还能提供正确的亮度水平。
但是,在高空间频率处,要利用图46的方法获得正确的着色子像素亮度值仍有问题。特别地,在高空间频率处,子像素着色需要线性的计算并依赖于它们的平均亮度,因此亮度值将不同于预期的伽玛调整值。对于除了在零及100%处的值之外的其它所有值,由于正确值将低于此线性的计算值,所以会造成线性计算的亮度值过高。这会造成黑色背景上的白色文字过亮且太白,而白色背景上的黑色文字则过虚、褪色或偏白。
如上所述,对于图46的方法,通过在线性子像素着色前应用g-1(x)=xγ的预调整伽玛步骤,可以实现线性的颜色平衡。通过理想非线性亮度计算的实现,可在高空间频率处实现图像质量的进一步提高,如下所述。
为了获得正确的亮度值,可利用图45及图51的方法实现子像素着色的进一步提高,此方法会造成奈奎斯特极限处的MTF的MAX点和MIN点向下移动,从而进一步改善高空间频率处的对比率。特别是,下列方法允许进行非线性计算,同时又能保持线性颜色平衡。
图49所示为一种伽玛调整子像素着色方法350的流程图。此方法350可应用或加入伽玛校正以提供非线性亮度计算而不引起色差。图47所示为图49的伽玛调整子像素着色的一个典型输出信号,该信号的平均能量为一条位于25%(对应于50%的亮度)处的平直趋势线,此趋势线由图44中的50%(对应于73%的亮度)趋势线向下移动得到。
对于图49的伽玛调整子像素着色方法350,可参考图48引入“局部平均(α)”的概念。所谓局部平均的概念指的是一个子像素的亮度应与其周围的子像素相平衡。对于边缘项(Vin(Cx-1Ry-1)、Vin(CxRy-1)、Vin(Cx+1Ry-1)、Vin(Cx-1Ry)、Vin(Cx+1Ry)、Vin(Cx-1Ry+1)、Vin(CxRy+1)、Vin(Cx+1Ry+1)),局部平均定义为该边缘项与中心项(Vin(CxRy))的平均。对于中心项,局部平均定义为该中心项与其周围的所有边缘项的平均,其中各项均由滤波核的对应系数项进行加权。例如,(Vin(Cx-1Ry)+Vin(CxRy))÷2为Vin(Cx-1Ry)的局部平均,而(Vin(Cx-1Ry)+Vin(CxRy+1)+Vin(Cx+1Ry)+Vin(CxRy-1)+4×Vin(CxRy))÷8则为中心项的局部平均,其中滤波核为:
  0 0.125 0 0.125 0.5 0.125 0 0.125 0
参考图49,首先,接收如图42A所示的九个隐含采样区280的输入采样数据Vin(第352步)。接着,利用各边缘项Vin及中心项Vin计算八个边缘项的各个局部平均(α)(步骤354)。在这些局部平均的基础上,利用预伽玛查询表(LUT)执行形如g-1(α)=αγ-1的“预伽玛”校正(步骤356)。预伽玛校正函数为g-1(x)=xγ-1。需要注意的是,这里所用的是xγ-1而不是xγ,因为伽玛调整子像素着色会在后面的步骤366及步骤368中乘以x(在此例中为Vin)。每个边缘项的预伽玛校正结果均被乘以一个对应的系数项Ck,其取自滤波核系数表360(步骤358)。
对于中心项,至少有两种计算法可以用来确定g-1(α)。对于第一种计算法(1),中心项的局部平均(α)可由基于中心项局部平均的g-1(α)来计算,如上所述。对于第二种计算法(2),中心项的伽玛校正局部平均(“GA”)可由步骤358所得到的周围边缘项的结果来计算。图49的方法350用的是计算法(2)。当各边缘项对中心项局部平均的贡献不同时,例如后面即将叙述的同颜色锐化的情况,中心项的“GA”将由步骤358的结果而不是步骤356的结果来计算。
中心项的“GA”还应乘以一个对应的系数项Ck,其取自一个滤波核系数表(步骤364)。两种计算法(1)和(2)如下所示:
(1)g-1((Vin(Cx-1Ry)+Vin(CxRy+1)+Vin(Cx+1Ry)+Vin(CxRy-1)+4×Vin(CxRy))÷8)
(2)((g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy+1)+Vin(CxRy))÷2)+
g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy-1)+Vin(CxRy))÷2))÷4)
来自图358的Ckg-1(α)值,以及利用第二种计算法(2)在步骤364中得到的Ck局部平均(“GA”)值,都应乘以一个Vin的对应项(步骤366及步骤368)。然后,计算所有相乘项的总和(步骤370)以生成输出子像素着色数据Vout。然后,对Vout应用后伽玛校正,并且显示到象是其上。(步骤372及步骤374)。
为了利用计算法(1)计算Vout,红色及绿色子像素的随后计算为:
Vout(CxRy)=Vin(CxRy)×0.5×g-1((Vin(Cx-1Ry)+Vin(CxRy+1)+Vin(Cx+1Ry)+
Vin(CxRy-1)+4×Vin(CxRy))÷8)+Vin(Cx-1Ry)×0.125×g-1((Vin(Cx-1Ry)+
Vin(CxRy))÷2)+Vin(CxRy+1)×0.125×g-1((Vin(CxRy+1)+Vin(CxRy))÷2)+
Vin(Cx+1Ry)×0.125×g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+Vin(CxRy-1)×
0.125×g-1((Vin(CxRy-1)+Vin(CxRy))÷2)
计算法(2)计算中心项的局部平均所用的方法与周围项的方法相同。这样可以抵消掉由于使用第一种计算法(1)而引入的色差。
对红色及绿色子像素使用第二种计算法(2)的步骤370的输出为:
Vout(CxRy)=Vin(CxRy)×0.5×((g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy+1)+
Vin(CxRy))÷2)+g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy-1)+
Vin(CxRy))÷2))÷4)+Vin(Cx-1Ry)×0.125×g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)
+Vin(CxRy+1)×0.125×g-1((Vin(CxRy+1)+Vin(CxRy))÷2)+Vin(Cx+1Ry)×
0.125×g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+Vin(CxRy-1)×0.125×
g-1((Vin(CxRy-1)+Vin(CxRy))÷2)
第二种计算法(2)的所述公式在数学及代数上所得的结果与伽玛值设定为2.0的第一种计算法(1)的结果相同。但是,对于其它的伽玛设定值,两种计算法可能有所不同,其中第二种计算法(2)可在任何伽玛设定值上提供正确的颜色着色。
第一种计算法(1)的蓝色子像素的伽玛调整子像素着色公式如下所示:
Vout(Cx+1/2Ry)=+Vin(CxRy)×0.5×g-1((4×Vin(CxRy)+Vin(Cx-1Ry)+Vin(CxRy+1)+
Vin(Cx+1Ry)+Vin(CxRy-1))÷8)+Vin(Cx+1Ry)×0.5×g-1((4×Vin(Cx+1Ry)
+Vin(CxRy)+Vin(Cx+1Ry-1)+Vin(Cx+1Ry+1)+Vin(Cx+2Ry))÷8)
使用一个4×3滤波器的第二种计算法(2)的蓝色子像素着色公式如下所示:
Vout(Cx+1/2Ry)=+Vin(CxRy)×0.5×((g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy+1)
+Vin(CxRy))÷2)+g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy-1)
+Vin(CxRy))÷2))÷4)+Vin(Cx+1Ry)×0.5×((g-1((Vin(Cx+1Ry)+
Vin(CxRy))÷2)+g-1((Vin(Cx+1Ry+1)+Vin(Cx+1Ry))÷2)+
g-1((Vin(Cx+2Ry)+Vin(Cx+1Ry))÷2)+g-1((Vin(Cx+1Ry-1)+Vin(Cx+1Ry))
÷2))÷4)
使用一个3×3滤波器作为近似的第二种计算法(2)的蓝色子像素着色公式如下所示:
Vout(Cx+1/2Ry)=+Vin(CxRy)×0.5×((g-1((Vin(CxRy+1)+Vin(CxRy))÷2)+
g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy-1)+Vin(CxRy))÷2))
÷3)+Vin(Cx+1Ry)×0.5×((g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+
g-1((Vin(Cx+1Ry+1)+Vin(Cx+1Ry))÷2)+g-1((Vin(Cx+1Ry-1)+Vin(Cx+1Ry))
÷2))÷3)
伽玛调整子像素着色方法350即使在更高的空间频率上也能提供正确的颜色平衡及正确的亮度。对于滤波核中的每一项,非线性亮度的计算可由一个形如Vout=Vin×Ck×α的函数来完成。如果令α=Vin及Ck=1,此函数将返回一个与Vin的伽玛调整值相等的值,如果伽玛值被设定为2。为了提供返回值已调整到伽玛为2.2或一些其它期望值的函数,可在所述公式中利用一个形如Vout=∑Vin×Ck×g-1(α)的函数。此函数还能在所有的空间频率上保持期望的伽玛。
[0230]如图47所示,利用伽玛调整子像素着色算法的图像在所有空间频率上可得到更高的对比度及正确的亮度。利用伽玛调整子像素着色方法350的另一个好处是:由查询表提供的伽玛可基于任何期望的函数。像这样,还能实现一种称之为“sRGB”标准的显示器伽玛。此标准在黑色附近有一个线性区,以代替在靠近黑色时斜率接近于零的指数曲线,减小所需的比特数,并降低噪声灵敏度。利用如下所示的“一个像素对一个子像素”的缩放模式的滤波核,图49所示的伽玛调整子像素着色算法还能实现高斯差分(DOG)锐化以锐化文字的图像:
  -0.0625 0.125 -0.0625 0.125 0.75 0.125 -0.0625 0.125 -0.0625
对于DOG锐化,第二种计算法(2)的公式如下所示:
Vout(CxRy)=Vin(CxRy)×0.75×((2×g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)+2×
g-1((Vin(CxRy+1)+Vin(CxRy))÷2)+2×g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)
+2×g-1((Vin(CxRy-i)+Vin(CxRy))÷2)+g-1((Vin(Cx-1Ry+1)+Vin(CxRy))÷2)
+g-1((Vin(Cx+1Ry+1)+Vin(CxRy))÷2)+g-1((Vin(Cx+1Ry-1)+Vin(CxRy))÷2)
+g-1((Vin(Cx-1Ry-1)+Vin(CxRy))÷2))÷12)+Vin(Cx-1Ry)×0.125×
g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)+Vin(CxRy+1)×0.125×g-1((Vin(CxRy+1)+
Vin(CxRy))÷2)+Vin(Cx+1Ry)×0.125×g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)
+Vin(CxRy-1)×0.125×g-1((Vin(CxRy-1)+Vin(CxRy))÷2)-Vin(Cx-1Ry+1)×
0.0625×g-1((Vin(Cx-1Ry+1)+Vin(CxRy))÷2)-Vin(Cx+1Ry+1)×0.0625×
g-1((Vin(Cx+1Ry+1)+Vin(CxRy))÷2)-Vin(Cx+1Ry-1)×0.0625×
g-1((Vin(Cx+1Ry-1)+Vin(CxRy))÷2)-Vin(Cx-1Ry-1)×0.0625×g-1((Vin(Cx-1
Ry-1)+Vin(CxRy))÷2)
相对于对角线项,次对角线平均项的系数为2的原因是在滤波核中二者的比率为0.125∶0.0625=2。这样可以保持各项对局部平均的贡献均相等。
此DOG锐化可预防由垂直及水平笔画的像素边缘所引入的空间频率基频的奇数谐频。以上所示的DOG锐化滤波器能将取自边角的同色能量置于中心处,因此,当用人眼感知时,DOG锐化数据将变成更小的聚焦点。此类锐化也称为同色锐化。
锐化的量可通过改变中间及边角的滤波核系数来调整。中间的系数可在0.5到0.75之间变化,而边角的系数则可在零至-0.0625之间变化,不过总和应等于1。在所述的典型滤波核中,从四个边角各取出0.0625,并将这些的和加到中心项上,所以中心项由0.5增大为0.75。
一般而言,具有锐化的滤波核可表示如下:
  C11-x C21 C31-x C12 C22+4x C32 C13-x C23 C33-x
其中(-x)称为边角锐化系数;(+4x)称为中心锐化系数;而(C11、C12、…、C33)则称为着色系数。
为了进一步提高图像质量,包括四个边角及中心在内的锐化系数可使用相反的颜色输入图像值。此类锐化称为反色锐化,因为锐化系数所用输入图像值的颜色是着色系数的相反色。反色锐化可降低锐化饱和颜色线条或文字的趋势,而使其看起来为点状。尽管锐化所用的颜色是反色而不是同色,但无论亮度或色度的总能量均未改变,而且颜色仍保持相同。这是因为尽管锐化系数造成反色能量朝中心处移动,但仍能平衡到零(-x-x+4x-x-x=0)。
在使用反色锐化的情况下,先前的公式可通过从着色项中分离出锐化项来简化。由于锐化项不影响图像的亮度或色度,而只影响能量的分布,因此对使用相反色的锐化系数的伽玛校正可以省略。因此,下面的公式可以用来取代前面的公式:
Vout(CxRy)=Vin(CxRy)×0.5×((g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy+1)+
Vin(CxRy))÷2)+g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy-1)+
Vin(CxRy))÷2))÷4)+Vin(Cx-1Ry)×0.125×g-1((Vin(Cx-1Ry)+Vin(CxRy))
÷2)+Vin(CxRy+1)×0.125×g-1((Vin(CxRy+1)+Vin(CxRy))÷2)+
Vin(Cx+1Ry)×0.125×g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+Vin(CxRy-1)×
0.125×g-1((Vin(CxRy-1)+Vin(CxRy))÷2)
(其中以上的Vin为全红或全绿值)
+Vin(CxRy)×0.125
-Vin(Cx-1Ry+1)×0.03125
-Vin(Cx+1Ry+1)×0.03125
-Vin(Cx+1Ry-1)×0.03125
-Vin(Cx-1Ry-1)×0.03125
(其中以上的Vin分别为全绿或全红,并且与上部分选择的Vin相反。)
同色锐化与反色锐化的混合式可表示如下:
Vout(CxRy)=Vin(CxRy)×0.5×((g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy+1)+
               Vin(CxRy))÷2)+g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)+g-1((Vin(CxRy-1)+
               Vin(CxRy))÷2))÷4)
+Vin(Cx-1Ry)×0.125×g-1((Vin(Cx-1Ry)+Vin(CxRy))÷2)
+Vin(CxRy+1)×0.125×g-1((Vin(CxRy+1)+Vin(CxRy))÷2)
+Vin(Cx+1Ry)×0.125×g-1((Vin(Cx+1Ry)+Vin(CxRy))÷2)
+Vin(CxRy-1)×0.125×g-1((Vin(CxRy-1)+Vin(CxRy))÷2)
+Vin(CxRy)×0.0625
-Vin(Cx-1Ry+1)×0.015625
-Vin(Cx+1Ry+1)×0.015625
-Vin(Cx+1Ry-1)×0.015625
-Vin(Cx-1Ry-1)×0.015625
(其中所述的Vin为全红或全绿值)
+Vin(CxRy)×0.0625
-Vin(Cx-1Ry+1)×0.015625
-Vin(Cx+1Ry+1)×0.015625
-Vin(Cx+1Ry-1)×0.015625
-Vin(Cx-1Ry-1)×0.015625
(其中以上的Vin分别为全绿或全红,并且与上部分选择的Vin相反。)
在这些使用反色锐化的简化公式中,各系数项均为具有伽玛调整的同色锐化的系数项的一半。换言之,中心锐化项变为0.25的一半,等于0.125;而边角锐化项变为0.0625的一半,等于0.03125。这是因为,没有伽玛调整,锐化的影响更大。
只有红色及绿色通道可受益于锐化,因为人眼不能感知蓝色细节。因此,在此实施例中,并未进行蓝色锐化。
图51所示的带有一个欧米伽函数的伽玛调整子像素着色方法可以控制伽玛值而不引入色差。
简单而言,图50给出了响应于图43的输入信号的带有欧米伽函数的伽玛调整子像素着色的典型输出信号。根据不具有欧米伽校正的伽玛调整子像素着色,所有空间频率的着色伽玛值都增大,因此高空间频率的对比率也增大,如图47所示。当伽玛值进一步增大时,细节(如白色背景上的黑色文字)的对比度也进一步增大。但是,增大所有空间频率的伽玛值会产生无法接受的照片及视频图像。
图51的具有欧米伽校正的伽玛调整子像素着色方法可以有选择性地增大伽玛值。也就是说,增大高空间频率处的伽玛值,而让零空间频率处的伽玛值仍留在其最佳的点上。结果,由伽玛调整着色引起的向下偏移的输出信号波形均值将随着空间频率的升高而进一步向下偏移,如图50所示。假设ω=0.5,则零频处的平均能量为25%(对应于50%亮度),而奈奎斯特极限频率处的平均能量则减小到9.5%(对应于35%亮度)。
图51所示为一种包括一系列步骤的伽玛调整子像素着色方法400。基本上,欧米伽函数w(x)=x1/ω(步骤404)都在接收输入数据之后、对数据求局部平均之前(步骤400)插入。由步骤406输出的欧米伽校正局部平均(β)还需经过“预伽玛”校正(步骤408)中的逆欧米伽函数w-1(x)=xω的处理。因此,步骤408被称为“带欧米伽的预伽玛”校正,而g-1w-1的计算由g-1(w-1(β))=(βω)γ-1完成,例如,通过查询LUT形式的带欧米伽的预伽玛表格。
函数w(x)为类伽玛函数的逆函数,而w-1(x)则为具有相同欧米伽值的类伽玛函数。之所以选择“欧米伽”这一术语,是因为其在电子领域常用于表示以弧度为单位的频率。此函数对较高空间频率的影响程度比对较低空间频率的影响程度更大。也就是说,欧米伽函数及逆欧米伽函数不改变较低频率处的输出值,但对较高频率处的输出值影响较大。
如果由“V1”及“V2”表示的两个局部输入值为两个局部值,局部平均(α)及欧米伽校正局部平均(β)为:
(V1+V2)/2=α;而(w(V1)+w(V2))/2=β。
当V1=V2时,β=w(α)。
因此,在低空间频率处,g-1w-1(β))=g-1w-1(w(α))=g-1(α)。
但是,在高空间频率处(V1≠V2),g-1w-1(β)≠g-1(α)。
在最高可空间频率及对比度处,g-1w-1(β))≈g-1w-1(α)。
换言之,带欧米伽的伽玛调整子像素着色使用的是形如Vout=∑Vin×Ck×g-1w-1((w(V1)+w(V2))/2))的函数,其中g-1(x)=xγ-1、w(x)=x1/w、而w-1(x)=xw。使用此函数的结果是低空间频率用伽玛值g-1来着色,而高空间频率则用伽玛值g-1w-1来有效地着色。当欧米伽值设定小于1时,一个更高的空间频率会得到更高的有效伽玛值,此伽玛值会落在位于黑白之间的较高对比度上。
图51中的“带欧米伽的预伽玛”步骤之后运算与图49中的运算类似。每个边缘项的带欧米伽的预伽玛校正结果均被乘以一个对应的系数项Ck,其取自滤波核系数表412(步骤410)。对于中心项,至少有两种方法可以用来计算对应于g-1(w-1(β))的值。第一种方法采用与边缘项的计算方法相同的方法来计算,而第二种方法则通过累加步骤408的结果来完成图51中步骤414的计算。当各边缘项对中心项局部平均具有不同的贡献时,步骤414的计算可以利用步骤410而不是步骤408的结果,以作为边缘项计算中的边缘系数。
来自步骤414的中心项的带欧米伽的伽玛校正局部平均(GOA)也要乘以一个对应的系数Ck(步骤416)。来自步骤410的值,以及利用第二种计算法(2)在步骤416中得到值,都应乘以一个对应的Vin项(步骤418及步骤420)。然后,计算所有相乘项的总和(步骤422)以输出子像素着色数据Vout。然后,对Vout应用后伽玛校正,并且输出到显示器上(步骤424及步骤426)。
使用第二种计算法(2)在步骤422中得到的红色及绿色子像素的输出为:
Vout(CxRy)=Vin(CxRy)×0.5×((g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)+
g-1w-1((w(Vin(CxRy+1))+W(Vin(CxRy)))÷2)+g-1w-1((w(Vin(Cx+1Ry))+
w(Vin(CxRy)))÷2)+g-1w-1((w(Vin(CxRy-1))+w(Vin(CxRy)))÷2))÷4)
+Vin(Cx-1Ry)×0.125×g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)
+Vin(CxRy+1)×0.125×g-1w-1((w(Vin(CxRy+1))+w(Vin(CxRy)))÷2)
+Vin(Cx+1Ry)×0.125×g-1w-1((w(Vin(Cx+1Ry))+w(Vin(CxRy)))÷2)
+Vin(CxRy-1)×0.125×g-1w-1((w(Vin(CxRy-1))+w(Vin(CxRy)))÷2)
红色及绿色子像素的另一种典型公式如下所示,其利用所述的简化方法通过含有边角锐化系数(x)的反色锐化对前面的公式进行了改进:
Vout(CxRy)=Vin(CxRy)×0.5×((g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)+
g-1w-1((w(Vin(CxRy+1))+w(Vin(CxRy)))÷2)+g-1w-1((w(Vin(Cx+1Ry))+
w(Vin(CxRy)))÷2)+g-1w-1((w(Vin(CxRy-1))+w(Vin(CxRy)))÷2))÷4)
+Vin(Cx-1Ry)×0.125×g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)
+Vin(CxRy+1)×0.125×g-1w-1((w(Vin(CxRy+1))+w(Vin(CxRy)))÷2)
+Vin(Cx+1Ry)×0.125×g-1w-1((w(Vin(Cx+1Ry))+w(Vin(CxRy)))÷2)
+Vin(CxRy-1)×0.125×g-1w-1((w(Vin(CxRy-1))+w(Vin(CxRy)))÷2)
+Vin(CxRy)×4x
-Vin(Cx-1Ry+1)×x
-Vin(Cx+1Ry+1)×x
-Vin(Cx+1Ry-1)×x
-Vin(Cx-1Ry-1)×x
蓝色子像素的带欧米伽函数的伽玛调整子像素着色公式为:
Vout(Cx+1/2Ry)=+Vin(CxRy)×0.5×((g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)+
g-1((w(Vin(CxRy+1))+w(Vin(CxRy)))÷2)+g-1w-1((w(Vin(Cx+1Ry))+
w(Vin(CxRy)))÷2)+g-1((w(Vin(CxRy-1))+w(Vin(CxRy))÷2))÷4)+
Vin(Cx+1Ry)×0.5×((g-1w-1((w(Vin(Cx+1Ry))+w(Vin(CxRy)))÷2)+
g-1((w(Vin(Cx+1Ry+1))+w(Vin(Cx+1Ry)))÷2)+g-1w-1((w(Vin(Cx+2Ry))
+w(Vin(Cx+1Ry)))÷2)+g-1((w(Vin(Cx+1Ry-1))+w(Vin(Cx+1Ry))÷2))
÷4)
对于超自然的缩放(即缩放比率为1∶2或者更高),具有反色锐化功能的红色及绿色子像素的欧米伽-伽马调整子像素着色的通用公式为:
Vout(CcRr)=Vin(CxRy)×c22×((g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)+
g-1w-1((w(Vin(CxRy+1))+w(Vin(CxRy)))÷2)+g-1w-1((w(Vin(Cx+1Ry))+
w(Vin(CxRy)))÷2)+g-1w-1((w(Vin(CxRy-1))+w(Vin(CxRy)))÷2))÷4)
+Vin(Cx-1Ry)×c12×g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)
+Vin(CxRy+1)×c23×g-1w-1((w(Vin(CxRy+1))+w(Vin(CxRy)))÷2)
+Vin(Cx+1Ry)×c32×g-1w-1((w(Vin(Cx+1Ry))+w(Vin(CxRy)))÷2)
+Vin(CxRy-1)×c21×g-1w-1((w(Vin(CxRy-1))+w(Vin(CxRy)))÷2)
+Vin(Cx-1Ry+1)×c13×g-1w-1((w(Vin(Cx-1Ry+1))+w(Vin(CxRy)))÷2)
+Vin(Cx+1Ry+1)×c33×g-1w-1((w(Vin(Cx+1Ry+1))+w(Vin(CxRy)))÷2)
+Vin(Cx+1Ry-1)×c31×g-1w-1((w(Vin(Cx+1Ry-1))+w(Vin(CxRy)))÷2)
+Vin(Cx-1Ry-1)×c11×g-1w-1((w(Vin(Cx-1Ry-1))+w(Vin(CxRy)))÷2)
+Vin(Cxky)×4x
-Vin(Cx-1Ry+1)×x
-Vin(Cx+1Ry+1)×x
-Vin(Cx+1Ry-1)×x
-Vin(Cx-1Ry-1)×x
蓝色子像素对应的通用公式为:
Vout(Cc+1/2Rr)=
+Vin(CxRy)×c22×R
+Vin(Cx+1Ry)×c32×R
+Vin(Cx-1Ry)×c12×R
+Vin(CxRy-1)×c21×R
+Vin(Cx+1Ry-1)×c31×R
+Vin(Cx-1Ry-1)×c11×R
其中R=((g-1w-1((w(Vin(Cx-1Ry))+w(Vin(CxRy)))÷2)
+g-1((w(Vin(CxRy+1))+w(Vin(CxRy)))÷2)
+g-1w-1((w-1(Vin(Cx+1Ry))+w(Vin(CxRy)))÷2)
+g-1((w(Vin(CxRy-1))+w(Vin(CxRy)))÷2)
+((g-1w-1(w(Vin(Cx+1Ry))+w(Vin(CxRy)))÷2)
+g-1((w(Vin(Cx+1Ry+1))+w(Vin(Cx+1Ry)))÷2)
+g-1w-1((w(Vin(Cx+2Ry))+w(Vin(Cx+1Ry)))÷2)
+g-1((w(Vin(Cx+1Ry-1))+w(Vin(Cx+1Ry)))÷2))÷2))÷8)
图46、图49及图51的所述方法可由下面所述的典型系统来实现。用于实现图46中子像素着色前的预调整伽玛的各步骤的一个系统实例如图52A及52B所示。此示范性系统可在一个使用薄膜三极管(TFT)有源矩阵液晶显示器(AMLCD)的平板上显示图像。所述技术的实现也可使用其它类型的显示装置,其中包括阴极射线管(CRT)显示器。
参考图52A,此系统包括一个与含有子像素处理单元500的子像素着色模块504相连接的个人计算机(PC)501。PC501可以包括图71的计算系统750的各个组件。图52A中的子像素着色模块504与图52B中用以控制显示器面板输出的计时控制器(TCON)506相连。可用作PC501的其它类型的装置包括便携式电脑、手持计算器、个人数字助理(PDA)、或者其它含有显示器的类似装置。子像素着色模块504可以实现所述的缩放子像素着色技术,并利用图46中所述的伽玛调整技术输出子像素着色数据。
为了给显示器输出提供图像数据,PC501可以包含一个图形控制器和适配卡,例如视频图形适配器(VGA)。可用的其它类型的VGA包括UXGA及XGA控制器。子像素着色模块504可以是一块独立的现场可编程门阵列(FPGA)卡或板,其程序可以完成图46所述的各步骤。另外,子像素处理单元500可包括一个位于PC501的图形卡控制器内部的特定用途集成电路(ASIC),其用于在子像素着色之前完成预调整伽玛。在另一个实例中,子像素着色模块504可以是位于显示器面板的TCON506内部的一块FPGA或ASIC。此外,为了在显示器上输出图像,子像素着色模块504可以在连接于PC501及TCON506之间的一个或多个装置或单元的内部实现。
子像素着色模块504还含有一个数字可视接口(DVI)输入端508,以及一个低压差分信号(LVDS)输出端526。子像素着色模块504可通过DVI输入端508接收输入图像数据,例如以标准的RGB像素格式,并在子像素着色之前完成图像数据的预调整伽玛。子像素着色模块504还能通过LVDS输出端526将子像素着色数据发送到TCON506。对于诸如AMLCD显示装置之类的显示装置,LVDS输出端526可以是一个面板界面。依此方式,显示器可以与带有DVI输出端的任何类型的图形控制器或卡相连。
子像素着色模块504还包括一个与PC501通信的接口509。接口509可以是一个12C接口,此接口允许PC501控制或下载子像素着色模块504所用的伽玛值或系数表的更新资料,以及访问扩展显示识别信息(EDIT)单元510中的信息。依此方式,伽玛值机系数值可调整到任何想要的值。EDID信息的实例包括与显示器及其性能有关的基本信息,例如最大图像尺寸、颜色特性、预置定时频率范围极限、或其它类似信息等。例如在开机时,PC501可读取EDID单元510中的信息以确定与其连接的显示器的类型,以及如何往显示器发送图像数据的方法。
现在将叙述子像素处理单元500的运算,该运算在子像素着色模块504的内部进行,从而实现图46的所有步骤。出于解释起见,子像素处理单元500应包括处理单元512到524,这些单元可在一个大规模FPGA中实现,该FPGA含有许多逻辑组件或电路,以及用以存储伽玛表和(或)系数表的存储装置。用来存储这些表格的存储装置实例包括只读存储器(ROM)、随机访问存储器(RAM)、或其它类似存储器。
首先,PC501通过DVI504向子像素着色模块504发送一幅输入图像数据Vin(例如,标准RGB格式的像素数据)。在其它实例中,PC501可以发送前述的子像素格式的输入图像数据Vin。PC501发送Vin所用的方式主要基于EDID单元510中的信息。在一个例子中,由PC501内部的图形控制器向子像素着色单元500发送红色、绿色及蓝色子像素数据。输入锁存及自动检测单元512可检测由DVI508所接收的图像数据,并锁存该像素数据。定时缓冲及控制单元514可在子像素处理单元500内部提供缓冲逻辑电路以缓冲像素数据。这里,在单元514中,定时信号可发送到输出同步生成单元528中,以允许输入信号Vin的接收与输出信号Vout的发送可以同步。
预处理伽玛处理单元516可处理来自定时缓冲及控制单元514的图像数据,以完成图46中的步骤304,该步骤计算输入图像数据Vin的g-1(x)=xγ,其中该函数在某一给定的γ处的值可从一个预处理伽玛表中获得。已经施加预处理伽玛的图像数据将存储在行缓冲器单元518的行缓冲器内。在一个实例中,可以用三个行缓冲器来存储三行输入图像数据,如图55所示。存储及处理图像数据的另一个例子如图56至图60所示。
存储在行缓冲器单元518中的图像数据在3×3数据采样单元519中进行采样。在此,用于子像素着色处理的包括中心值在内的九个值将在寄存器或锁存器中进行采样。系数处理单元530将完成步骤308,而乘法器+加法器单元520则完成步骤306,在此单元中,九个采样值中的每一个g-1(x)值均乘以存储在系数表531中的一个滤波核系数值,然后将这些相乘项加起来以得到子像素着色的输出图像数据Vout。
后伽玛处理单元522对Vout完成图46的步骤310,其中要用到显示器的后伽玛校正。也就是说,后伽玛处理单元522利用查询后伽玛表得到的函数f(x)来计算显示器的f-1(Vout)。输出锁存器524可以锁存来自后伽玛处理单元522的数据,而LVDS输出端526则将来自输出锁存器524的输出图像数据发送到TCON506中。输出同步生成单元528可以控制单元516、518、519、520、530以及520的运算时序,以控制输出数据Vout在什么时候向TCON506发送。
参考图52B,TCON506包含一个输入锁存器532以从LVDS输出端524接收输出数据。来自LVDS输出端526的输出数据可含有8比特的图像数据块。例如,TCON506可以接收基于所述子像素排列的子像素数据。在一个实例中,TCON506可以接收8比特的列数据,其中奇数行(例如RBGRBGRBG)在偶数行(GBRGBRGBR)的前面。8到6比特抖动单元534可将8比特数据转换为需要6比特数据格式的显示所需的6比特数据,此格式对于许多LCD而言很具有代表性。这样,在图52B的实例中,显示器将使用这种6比特格式。单元534通过数据总线537将输出数据发送至显示器。TCON506包含一个参考电压及视频通信(VCOM)电压单元536。单元536提供来自DC/DC转换器538的参考电压,此电压由列驱动控制器539A及行驱动控制器539B用于有选择地接通位于显示器面板内部的列三极管和行三极管。在一个实例中,显示器为一个平板显示器,该显示器包含一个由数行及数列子像素组成的矩阵,其对应的三极管由一个行驱动器及一个列驱动器所驱动。这些子像素可以含有所述的子像素排列。
用于实现图49中伽玛调整子像素着色的各步骤的一个系统实例如图53A及53B所示。此系统实例与图52A及52B的系统类似,不同的是子像素处理单元500在进行伽玛调整子像素着色时至少要用到延迟逻辑单元521、局部平均处理单元540以及预伽玛处理单元542,而省略了预处理伽玛处理单元516。现在对图53A的子像素处理单元500的处理单元的运算加以解释。
参考图53A,PC501通过DVI508向子像素着色模块504发送输入图像数据Vin(例如,标准RGB格式的像素数据)。在另一个实例中,PC501可以发送前述的子像素格式的输入图像数据Vin。输入锁存器及自动检测单元512可检测由DVI508所接收的图像数据,并锁存该像素数据。定时缓冲及控制单元514可在子像素处理单元500内部提供缓冲逻辑电路以缓冲像素数据。这里,在单元514中,定时信号可发送到输出同步生成单元528中,以允许输入信号Vin的接收与输出信号Vout的发送可以同步。
在定时及控制单元514中缓冲的图像数据Vin可存储在行缓冲器单元518的行缓冲器内。行缓冲器单元518可以用相同于图52A中的方式来存储图像数据。存储在行缓冲器单元518中的输入数据将在3×3数据采样单元519中进行采样,其过程可以按照图52A中的相同方法进行。在此,用于伽玛调整子像素着色处理的包括中心值在内的九个值将在寄存器或锁存器中进行采样。接着,图49的局部平均处理单元540将完成步骤354,在此每个边缘项的局部平均(α)可通过中心项来计算。
在这些局部平均的基础上,利用预伽玛查询表(LUT),预伽玛处理单元542可以完成图49的步骤356,即形如g-1(α)=αγ-1的“预伽玛”校正的计算。此LUT可以包含在此单元中,或者从子像素着色模块504中读取。延迟逻辑单元521可以对送往乘法器+加法器单元520的Vin进行延迟,直到所有的局部平均及预伽玛计算完成为止。系数处理单元530及加法器+乘法器单元520可以利用图49中的所述系数表531来完成步骤358、360、362、364、366、368及370。特别的是,来自图358的Ckg-1(α)值,以及利用图49中的第二种计算法(2)在步骤364中得到的Ck局部平均(“GA”)值,都应乘以一个对应的Vin项(步骤366及步骤368)。单元520计算所有相乘项的总和(步骤370)以生成输出子像素着色数据Vout。
后伽马处理单元522及输出锁存器524以相同于图52A的相同方式将输出图像数据发送到TCON506。图53A中的输出同步生成单元528可以控制单元518、521,520、520、530以及520的运算时序,以控制输出数据在什么时候向TCON506发送。图53B的TCON506以相同于图52B的相同方式工作,不同的是此输出数据是利用图49的方法得到的。
用于实现图51中带有欧米伽函数的伽玛调整子像素着色的各步骤的一个系统实例如图54A及54B所示。此系统实例与图53A及53B的系统类似,不同的是子像素处理单元500在进行带有欧米伽函数的伽玛调整子像素着色时至少要用到欧米伽处理单元544及预伽玛(带欧米伽)处理模块545。现在对图54A的子像素处理单元500的处理单元的运算加以解释。
参考图54A,处理单元512、514、518及519将按照图53A中的相同处理单元的相同方式来进行。欧米伽函数处理单元544完成图51的步骤404,其中应用于来自3×3数据采样单元519的输入图像数据的欧米伽函数为w(x)=x1/ω。局部平均处理单元540将完成步骤406,其中每个边缘项的欧米伽校正局部平均(β)可通过中心项来计算。预伽玛(带欧米伽)处理单元545将完成步骤408,其中来自局部平均处理单元540的输出将接受g-1w-1的计算,此计算利用带欧米伽的预伽玛LUT按g-1(w-1(β))=(βω)γ-1进行“带欧米伽的预伽玛”校正。
图54A的处理单元520、521、530、522及524将以相同于图53A中的相同方式进行,不同的是每个边缘项的带欧米伽的预伽玛校正结果将乘以对应的系数项Ck。图54A中的输出同步生成单元528可以控制单元518、519、521、520、530以及522的运算时序,以控制显示用的输出数据在什么时候向TCON506发送。图54B的TCON500以相同于图53B的相同方式工作,不同之处在于此输出数据是利用图51的方法得到的。
图52A-52B、53A-53B及54A-54B中的以上实例可以进行其它改变。例如,以上实例的所有部分可以在单个模块中实现,并有选择性地控制需要执行哪一类处理。例如,这样的模块可以配上开关,或者设置成可接收命令或指令以有选择性地执行图46、49及51的方法。
图55至图60所示为可供图52A、53A及54A中所述典型系统内部的处理模块使用典型电路。所述的子像素着色方法需要大量的计算,其涉及到滤波器系数值与像素值的乘积,其中要将大量的相乘项加起来。下面的实施例公开了可有效完成此类计算的电路。
参考图55,图中给出了一个可用于(图52A、53A及54A的)行缓冲器单元518、3×3数据采样单元519、系数处理单元530以及乘法器+加法器单元520的电路实例,此实例电路可完成所述的子像素着色功能。
在此例中,行缓冲器518包含行缓冲器554、556及558,它们连在一起以存储输入数据(Vin)。输入数据或像素值可存储在这些行缓冲器中,以允许3×3数据采样单元内部的锁存器L1至L9能对9个像素值进行采样。通过将9个像素值存储在锁存器L1至L9内,此9个像素值可在单个时钟周期内处理完毕。例如,9个乘法器M1至M9可以用系数表531中适当的系数值(滤波器值)乘以锁存器L1至L9中的像素值,以实现所述的子像素着色功能。在另一个实施例中,乘法器可用只读存储器(ROM)来代替,而像素值及滤波器系数值可用来生成检索相乘项的地址。如图55所示,可以执行多重乘法,并以一个有效的方式相加,以实现子像素着色功能。
56举例了一个可用于(图52A、53A及54A的)行缓冲器单元518、3×3数据采样单元519、系数处理单元530以及乘法器+加法器单元520的电路实例,其利用两个总和缓冲器来完成子像素着色功能。
如图56所示,三个锁存器L1值L3可以存储像素值,这些值将被送入九个乘法器M1至M9中。乘法器M1至M3给来自锁存器L1至L3的像素值乘上系数表531中适当的系数值,并将得到的结果输送到加法器564,其计算这些结果的总和,并将此总和存储在总和缓冲器560中。乘法器M4至M6给来自锁存器L4至L6的像素值乘上系数表531中适当的系数值,并将得到的结果输送到加法器566,其计算这些来自M4至M6的结果以及总和缓冲器560的输出的总和,并将此总和存储在总和缓冲器562中。乘法器M7至M9给来自锁存器L7至L9的像素值乘上系数表531中适当的系数值,并将得到的结果输送到加法器568中,其计算这些来自M7至M9的结果以及总和缓冲器562的输出的总和,以计算输出值Vout。
图56的此实例用到了可存储16比特数值的两个部分总和缓冲器560及562。通过利用两个总和缓冲器,与三个总和缓冲器的实例相比,图56的此实例的改进之处在于所用的缓存更少了。
图57所示为一个电路实例,其可由图52A、53A及54A的处理单元使用,以实现与红色及绿色像素有关的子像素着色功能。特别是,在有关红色及绿色像素的子像素着色期间,此实例可以用于P:S比分辨率为1:1的情况。此1:1的情况可提供简单的子像素着色计算。在此实例中,包含在滤波核中的所有值为0、1或2的乘方,如上所示,其可以降低所需乘法器的数量,如下所述。
  0 1 0 1 4 1 0 1 0
参考图57,所示九个像素延迟寄存器R1至R9用于存储像素数据。寄存器R1至R3送进行缓冲器1(570),而行缓冲器1(570)的输出则送进寄存器R4。寄存器R4至R7送进行缓冲器2(572)。行缓冲器2(572)的输出送进寄存器R7,而R7则送进寄存器R8及R9。。加法器575把来自R2及R4的值加起来。加法器576把来自R6及R8的值加起来。加法器578把来自加法器575及576的输出的值加起来。加法器579将来自加法器578的输出以及桶形移位器573的输出的值加起来,其中桶形移位器573可实现对来自R5的值乘以4的运算。加法器579的输出送进可实现除8运算的桶形移位器574。
由于1∶1的滤波核在4个位置上含有零值(如上所述),对于子像素着色,有4个像素延迟寄存器是不需要的;又由于有4个位置的值为1,因此对其求和无需乘法,如图57所示。
图58所示为一个电路实例,其可由图52A、53A及54A的处理单元使用,以实现P∶S比为1∶1的蓝色像素的子像素着色功能。对于蓝色像素,只需要2×2的滤波核,因此必要电路并不复杂。
参考图58,所示九个像素延迟寄存器R1至R9用于接收输入像素值。寄存器R1至R3送进行缓冲器1(580),而行缓冲器1(580)的输出则送进寄存器R4。寄存器R4至R7送进行缓冲器2(582)。行缓冲器2(582)的输出送进寄存器R7,而R7则送进寄存器R8及R9。加法器581将寄存器R4、R5、R7及R8中的值加起来。该加法器的输出送进可实现除4运算的桶形移位器575。由于蓝色子像素只涉及四个寄存器中的值,而这些值要移过像素延迟移位寄存器R1至R9,并在四个不同的红色/绿色输出像素时钟周期内出现,因此,蓝色像素计算可在处理中提前完成。
图59所示为一个电路实例,其可由图52A、53A及54A的处理单元使用,以利用两个总和缓冲器实现P∶S比为1∶1的红色及绿色像素的子像素着色功能。通过利用总和缓冲器,可以简化必要电路。参考图59,所示九个像素延迟寄存器R1至R3用于接收输入像素值。寄存器R1送进加法器591。寄存器R2送进总和缓冲器1(583)、桶形移位器590以及加法器592。寄存器R3送进加法器591。总和缓冲器1(583)的输出送进加法器591。加法器591将来自寄存器R1及R3的值,以及对R2的值乘以2的桶形移位器590的值加起来。加法器591的输出送进总和缓冲器2(594),而此总和缓冲器再将其输出送进加法器592,并让其在此加法器中与R1中的值相加以生成输出。
图60所示为一个电路实例,其可由图52A、53A及54A的处理单元使用,以利用一个总和缓冲器实现P∶S比为1∶1的蓝色像素的子像素着色功能。通过利用一个总和缓冲器,可以进一步简化蓝色像素的必要电路。参考图60,所示九个像素延迟寄存器R1至R2用于接收输入像素值。寄存器R1及R2送进加法器593及594。加法器593将来自R1及R2的值加起来,并将输出保存在总和缓冲器1(585)中。总和缓冲器1(585)的输出送进加法器594。加法器594将来自R1、R2以及总和缓冲器1(585)的值加起来以生成输出。
图61所示为一种方法600的流程图,其用于在子像素着色处理期间定时输入显示器边缘处的黑色像素。所述的子像素着色计算需要一个3×3的滤波器值矩阵,以应用于一个3×3的像素值矩阵。但是,对于在显示器边缘处含有像素的图像,在边缘像素附近可能不存在周围像素,以为此3×3的像素值矩阵提供像素值。下列方法可以处理如何确定边缘像素的周围像素值问题。下列方法假设图像在显示器边缘处的所有像素均为像素值为零的黑色,此方法可用图52A、53A及54A的输入锁存器及自动检测单元512、定时缓冲器及控制单元514以及行缓冲器单元518来实现。
首先,在垂直回扫期间,在定时输入第一扫描行之前,行缓冲器被初始化为黑色像素的零(步骤602)。第一扫描行可保存在一个行缓冲器中。接着,在定时输入第二扫描行时,输出一个扫描行(步骤604)。此步骤可在第一扫描行(包括来自“顶部之外”的黑色像素的一个扫描行)计算完成时进行。然后,在定时输入每个扫描行中的第一像素之前,为一个(黑色)像素定时输入一个额外的零(步骤606)。接着,在定时输入第二实际像素时,开始输出像素(步骤608)。此步骤可在第一像素的计算完成时进行。
在定时输入一个扫描行的最后一个实际像素后,为一个(黑色)像素定时输入另一个零(步骤610)。对于此方法,所述的行缓冲器或总和缓冲器可配置成可存储两个额外像素值的形式,以存储所述的黑色像素。此两个黑色像素可在水平回扫期间定时输入。然后,在最后的扫描行已经定时输入后,为所述步骤得到的所有零(黑色)像素定时输入一个额外的扫描行。当最后的扫描行计算已经完成时,此输出即可使用。这些步骤可以在垂直回扫期间完成。
这样,以上方法可在子像素着色期间为涉及到边缘像素的3×3像素值矩阵提供像素值。
图62至图66所示为一些系统的实例框图,其用于提高显示器上图像的颜色分辨率。当前用以提高颜色分辨率的图像系统的局限性如申请号为60/311,138的美国临时专利所述,其题名为《改进的伽玛表》,申请日期为2001年8月8日。简单而言,提高颜色分辨率代价高昂,且实现困难。也就是说,例如要完成一次滤波处理,加权的总和要除以一个常数,以使得滤波器结果的总体效应等于1。此除法计算的除数(如上所述)可为2的乘方,因此除法运算可通过向右移位、或简单地舍弃最低有效位来完成。对于这种处理,最低有效位通常被舍弃、移位或分离,而且不被使用。但是,这些数位可以用来提高颜色分辨率,如下所述。
参考图62,所示为一种系统的一个实例框图,该系统利用宽位数模转换器(DAC)或LVDS来完成子像素着色处理,因此可提高颜色分辨率。在此例中,并未提供伽玛校正,而子像素着色功能将产生11比特的结果。VGA存储器613用于存储8比特格式的图像数据。子像素着色单元接收来自VGA存储器613的图像数据,并对图像数据完成子像素着色功能(如上所述),以产生11比特格式的结果。在一个实例中,子像素着色模块614可代表图52A、53A及54A的子像素着色处理模块504。
如果系统设定为要处理11比特数据,子像素着色单元614可将子像素着色期间除法运算产生的额外比特位发送给宽位DAC或LVDS单元615处理。输入数据可保持8比特数据格式,其允许现有的图像、软件及驱动器无需更改即能提高颜色质量。显示器616可设定成能接收11比特格式的图像数据的形式,以为8比特格式的图像数据提供额外的颜色信息(即对比度)。
参考图63,所示为一种系统的一个实例框图,该系统利用含有多进输入(11比特)及少出输出(8比特)的宽位伽玛表或查找表(LUT)来完成子像素着色处理。VGA存储器617用于存储8比特格式的图像数据。子像素着色单元618接收来自VGA存储器617的图像数据,并对该图像数据完成子像素着色功能(如上所述),其中利用从宽位伽玛表619得到的伽玛值来完成伽玛校正。伽玛表619可含有一个11比特输入及一个8比特输出。在一个实例中,子像素处理单元618可与图62种的单元614相同。
单元618可完成所述的子像素着色功能,其利用来自伽玛表619的11比特宽位伽玛LUT来施加伽玛调整。该额外的数位可存储在宽位伽玛LUT种,其可含有高于256的附加记录。单元619的伽玛LUT可含有用于CRT DAC或LVDS LCD的一个6比特输出,以在显示器621上显示8比特格式的图像数据。通过利用宽位伽玛LUT,可以避免遗漏输出值。
参考图64,所示为一种系统的一个实例框图,该系统利用宽输入宽输出的伽玛表或伽玛LUT来提供子像素着色功能。VGA存储器623用于存储8比特格式的图像数据。子像素着色单元624接收来自VGA存储器623的图像数据,并对该图像数据完成子像素着色功能(如上所述),其中利用从伽玛表626得到的伽玛值来完成伽玛校正。伽玛表626可含有一个11比特输入及一个14比特输出。在一个实例中,子像素处理单元524可与图63种的单元618相同。
单元624可完成所述的子像素着色功能,其利用来自含有一个14比特输出的伽玛表619的11比特宽位伽玛LUT来施加伽玛调整。单元627处的宽位DAC或LVDS可接收14比特格式的输出,并将此输出数据输出到显示器628,其可设定成可接受14比特格式的数据。单元626的宽位伽玛LUT可含有比原始输入数据更多的输出比特(即少入多出,或FIMO LUT)。在此例中,通过利用这种LUT,可以获得比原始源图像的有效颜色更多的输出颜色。
参考图65,所示为一种系统的一个实例框图,该系统利用与图64相同类型的伽玛表以及空间-时间抖动单元632来提供子像素着色功能。VGA存储器629用于存储8比特格式的图像数据。子像素着色单元630接收来自VGA存储器629的图像数据,并对该图像数据完成子像素着色功能(如上所述),其中利用从伽玛表631得到的伽玛值来完成伽玛校正。伽玛表631可含有一个11比特输入及一个14比特输出。在一个实例中,子像素处理单元640可与图64中的单元624相同。
单元630可完成所述的子像素着色功能,其利用来自含有一个14比特输出的伽玛表631的11比特宽位伽玛LUT来施加伽玛调整。空间一时间抖动单元632接收14比特数据,并将8比特数据输出到LCD显示器634的8比特LCD LVDS上。因此,可以使用现有的LVDS驱动器或LCD显示器,而无需花费重新设计LVDS驱动器、定时控制器或LCD面板等,其可提供比图63的示范性系统更多的好处。
参考图66,所示为一种系统的一个实例框图,该系统利用预补偿查找表(LUT)来完成子像素着色处理,以补偿输出显示器的非线性伽玛响应,从而提高图像质量。VGA存储器635用于存储8比特格式的图像数据。预补偿查找表单元636可存储逆伽玛校正表中的值,这些值可以针对VGA存储器635中的图像数据来补偿输出显示器的伽玛响应曲线。校正表格中的伽玛值可提供26比特的值,以为某个伽玛(例如3.3)提供必要的伽玛校正值。子像素着色处理单元637可利用表636中的伽玛值来提供如上所述的预补偿。
以此方式,示范性系统是在与输出显示器相同的“颜色空间”中应用子像素着色,而不是在VGA存储器635中所存储的输入图像的颜色空间中。子像素处理单元637可将处理数据发送到伽玛输出生产单元638中,以完成如上所述的后伽玛校正。此单元可接收29比特的输入数据,并输出14比特的数据。空间-时间抖动单元639可对接收自伽玛输出生成单元638的数据进行转换,以供8比特LVDS单元640用来向显示器641上输出图像。
图67至69所示为一种函数求值器的示范性实施例,其用来快速完成诸如生成伽玛输出值之类的数学计算。下列实施例可从大量输入值中生成少量伽玛输出值。计算可以用单调递增函数,如平方根、幂曲线以及三角函数等。这在生成伽玛校正曲线中尤为有用。
下列实施例可使用二元搜索运算,其包含使用小参数表的多级运算。例如,二元搜索的每一级都可以在输出值中获得多一位的精度。依此方式,对于一个8比特的输出伽玛校正函数,可以使用八级运算。级的数量可根据伽玛校正函数的数据格式大小而定。每一级均可对不同的输入值并行完成,因此,下列实施例可以使用串行管线来在每个时钟周期上接收新的输入值。
函数求值器的级如图69及70所示。图67所示为函数求值器的一个级的内部组件。每一级都含有类似的结构。参考图67,该级接收三个输入值,其中包括一个8比特输入值、一个4比特近似值以及一个时钟信号。其中8比特输入值送入比较器656及输入锁存器652中。4比特近似值送入近似锁存器658中。时钟信号则连接到比较器21、输入锁存器652、单位结果锁存器660、近似锁存器658、以及参数存储器654中。参数存储器可包括Ram或ROM,用于存储参数值,例如图68所示的参数值。出于示范目的,这些参数对应于函数sqrt(x)。8比特输入值及4比特近似值都是示范性的,并可具有其它比特格式。例如,输入值可以是24比特的值,而近似值可以是8比特的值。
现在说明该级的运算。在时钟信号的上升沿,近似值用来在参数存储器654中查找一个参数值。由比较器656对来自参数存储器654的输出及8比特输入值进行比较,并生成将被送入结果锁存器660的结果比特。在一个实例中,如果输入值大于等于参数值,则结果比特为1;而如果输入值小于参数值,则结果比特为0。在时钟信号的后沿,输入值、结果比特、以及近似值分别锁存到锁存器652、660、658中,以为下一级保持这些值。参考图68,该参数表为计算8比特数值的平方根的函数,其可存储在参数存储器654中。该函数可以是任意类型的伽玛校正函数,而结果数值可以是四舍五入的。
图69所示为用以实现函数求值器的一个四级(第1级—第4级)实施例。每一级可含有图67的相同的组件,以及具有相同的结构。例如,每级均可包含用于存储图68的表格的参数存储器,这样该级管线将实现一个平方根函数。现在说明函数求值器的运算。一个8比特输入值被提供给第1级,在连续的时钟周期内,各数值将由第1级一直流到第4级,并最后到达输出端。也就是说,对于每个时钟,都要结算每个8比特值的平方根,而输出则在第4级之后提供。
在一个实例中,第1级的近似值可初始化为1,000(二进制值),而第1级的结果比特将输出正确的最大有效比特(MSB)的值,该值将作为第2级的MSB送入。此时,每级的近似锁存器将让此MSB通过,直到其到达输出端。依类似的方式,第2级在输入端将第二MSB设为1,并生成输出的第二MSB。第3级将第三MSB设为1,并生成输出的第三MSB。第4级将最后的近似比特设为1,并生成结果输出的最后比特。在图69的实例中,第1-4级可以完全相同以简化制造。
可以对各级进行其它变动。例如,在第1级中,因为所有的输入近似比特均设为已知的固定值,为了避免内部组件的无效利用,参数存储器可以用含有中间值的单个锁存器来代替。第2级在输入近似值中只含有一个未知的比特,因此只需要两个锁存器,用于容纳来自参数RAM的中间值及最后值之间的一半的值。第3级只考虑四个值,而第4级只考虑八个值。这意味着四个相同的参数RAM是不必要的。相反,如果每一级均设计成只含有其所需的最少数量的参数RAM,则所需的存储数量只为一份参数RAM的量。不幸的是,由于每一级在每个时钟周期上都要为不同的输入值查找参数表,因此每一级均需要一个含有各自的地址码的独立的RAM。(这对于第1级而言非常简单,因为其有一个值需要“查找”。)
图70所示为图69的各级如何对一个函数求值器来优化。例如,可以省掉第1级中多余的输出锁存器,而且近似锁存器也可从第1级中省掉。因此,第1级可以使用与比较器665相连的单位锁存器672以及锁存器669。在第2级中,只需要近似锁存器674的一个比特,而在第3级中只需要近似锁存器676及677的两个比特。照此继续,直到第4级,在此所有的比特中只有一个比特需要计算,因此需要三个锁存器680、681及682。在某些情况下,最低有效比特(LSB)是不必要的。对此结构的其它变动包括删掉第4级的输入值锁存器683,因为其并未与其它级相连。
图71所示为所述方法的一种示范性软件实现700的流程图。可以用计算机系统(例如图72的计算机系统750)来完成此软件实现。
参考图70,首先,Windows应用程序702生成要显示的一幅图像。Windows图形设备接口(GDI)704将此图像数据(Vin)发送给显示器以供输出。子像素着色及伽玛校正应用程序708将计划直接输入Windows设备数据接口(DDI)706的输入图像数据Vin中途截断。此应用程序可执行如后面的附录所示的指令。Windows DDI706将接收到的图像数据通过VGA控制器714存入帧缓冲器716中,而VGA控制器714再将存储的图像数据通过DVI电缆输出给显示器718。
应用程序708由Windows GDI704调用来中途拦截图形数据,指引系统将常规图像数据着色到系统存储缓冲器710而不是到图形适配器的帧缓冲器716。应用程序708然后将这些常规图像数据转换成子像素着色数据。子像素着色数据则被写入其它系统存储缓冲器712中,然后由图形卡对数据进行格式化,并通过DVI电缆传输给显示器。应用程序708可将颜色以PenTileTM的子像素顺序预先排列。Windows DDI706接收来自系统存储器缓冲器712的子像素着色数据,并对所接收的数据进行处理,就像数据是来自Windows GDI704一样。
图72是一种示范性计算机系统750的内部框图,该系统可用于实现图45、49及51的方法、及(或)图71的软件实现700。计算机系统750包含数个组件,其均通过系统总线760相互连接。系统总线760的一个实例是双向系统总线,其含有32条数据及地址线,用于访问存储器785以及在各组件间传输数据。此外,可以用多路复用数据/地址线来代替独立的数据线及地址线。存储器765的实例包括随机访问存储器(RAM)、只读存储器(ROM)、视频存储器、快闪存储器、或其它适用的存储器装置等。计算机系统750中可以包含其它的存储装置,例如固定及活动介质(包括磁性、光学、或磁性光学存储介质等)。
计算机系统可通过网络接口785与其它计算系统通信。网络接口785的实例包括以太网或拨号电话连接。计算机系统200还可通过输入输出(I/O)装置770接收输入数据。I/O装置770的实例包括键盘、点击装置、或其它适用输入装置等。I/O装置770也可以是外部存储装置或计算系统或子系统等。
计算机系统750包含一个中央处理器(CPU)755,其实例包括由Intel公司生产的奔腾系列微处理器。不过,其它相配的微处理器、微型、迷你型或大型处理器也可用于计算机系统750。根据存储于存储器765中的程序,利用也是存储于存储器765中的伽玛及(或)系数表,CPU755可配置成可实现所述方法的形式。
存储器765可以存储用于程序实现的指令或代码,其促成计算机系统750完成图46、49及51的方法,以及图71的软件实现。此外,计算机系统750还包含一个显示器接口780,用于往向显示器输出由图46、49及51的方法生成的子像素着色数据。
这样,此处已经叙述了一组带伽马调整的子像素着色的方法和系统。此处所述的伽玛调整的具体实施例能使子像素排列的亮度与人眼亮度通道的非线性伽玛响应相匹配,而色度则能与人眼色度通道的线性响应相匹配。具体实施例中的伽玛校正能让算法独立于显示装置的实际伽玛而运行。就带有伽玛调整的具体实施例而言,在此所述的子像素着色技术可为显示装置的伽玛进行优化,以改善反应时间、点转换平衡度、以及对比度等,因为子像素着色算法的伽玛校正及补偿提供了子像素着色期间所需的伽玛值。这些技术的具体实施例可附加于任何指定的伽玛传递曲线。
图73A所示为一个流程图,其给出了一种示范性方法7300所涉及的一般阶段,该方法可为一个含有一组像素、每个像素含有颜色子像素的显示器处理数据,其与本发明的一个实施例一致。示范性方法7300开始于开始单元7305,并继续进行到阶段7310,在此接收像素数据。例如像素数据可以由一个m×n的矩阵组成,其中m及n均为大于1的整数。通常,像素数据包含以上图2至图43所述的或所用的像素数据。
由接收像素数据的步骤7310开始,示范性方法7300继续进行到步骤7320,在此对数据采样以检测某些条件。对像素数据进行采样后,示范性7300向前进入判断单元7330,在此判定是否存在某一条件。例如,如图74A所示,该条件可以是在子像素数据内含有白点中心7402、白点边缘7404、7406、7408、7410、黑点中心7412、黑点边缘7414、7416、7418、7420、白色对角中心下斜7422、白色对角中心上斜7424、白色对角边缘7426、7428、7430、7432、黑色对角中心下斜7434、黑色对角中心上斜7436、黑色对角边缘7438、7440、7442、7444、水平垂直黑色侧边7446、7448、7450、7452,、垂直水平白色侧边7454、7456、7458、7460、中心白线7462、7464、及中心黑线7466、7468。以上条件是示范性的,其它代表正确的条件也可使用。
图74A的数据集7402至7468中的每一个各代表的是像素数据。如图74A所示,每种颜色的每个数据集均由一个3×3的矩阵组成。不过,数据集也可以由任意m×n的矩阵组成,其中m及n均为大于1的整数。数据集的1和0可代表数据集中子像素的强度。其中1可代表大于第一阈值的强度级,而0可代表低于第二阈值的强度级。例如,第一阈值可为某一给定子像素的最大允许强度的90%,而第二阈值可为某一给定子像素的最小允许强度的10%。例如,如图74A的数据集7422所示,如果所有对角线子像素的强度均为最大值的90%或更大,而数据集中的所有其它像素的强度均为最小值的10%或更小,则可检测到一条白色对角线。以上阈值是示范性的,也可使用其它很多阈值。
例如,条件的测试可用下面的两部分测试来完成。第一部分是沿着3×3数据集的中心检查对角线。第二部分是测试偏移的对角线。图74B给出了测试的情况。图74B的第一行给出了沿着中心的对角白线;第二行给出了偏移的对角白线。第三行及第四行用于黑线。要完成的测试可包含下列的第一测试:
IF(r1c1=1and r2c2=1and r3c3=1and其余=0)
THEN(检测到对角线)
IF(检测到对角线)
THEN(子像素着色该数据并进行伽玛)
ELSE(子像素着色该数据)
对于对角线检测,总共需要进行12次测试,而任何为TRUE(真)的值将促使进行校正。为了适用于“几乎白色”线或“几乎黑色”线的情况,可对这些测试进行修改以代替含有预定的最小值及最大值的测试:
IF(rlc1>max and r2c2>max and rlc2例如,其中的最大值可为240,而最小值可为16(对于8比特数据)。一个电子表格植入程序如下所示,其中3×3数据位于单元U9:W11内:
=IF(OR(AND(U9>max,V9max,
W10max),AND(U9W9>max,U10max,W10max,V11AND(U9max,W9max,V10U11U10>max,V10max,W11AND(U9max,W9max,
U11U10max,U11max,W11AND(U9max,W9>max,U10>max,V10max,
U11>max,V11>max,W11max,V9>max,W9U10>max,V10max,U11max,W11>max),
AND(U9>max,V9max,U10max,W10>max,
U11>max,V11>max,W11>max),AND(U9>max,V9>max,W9>max,
U10max,W10>max,U11>max,V11max),
AND(U9>max,V9max,U10>max,V10>max,W10U11>max,V11>max,W11>max),AND(U9>max,V9>max,W9>max,
U10>max,V10>max,W10max,V11max)),
SUMPRODUCT(Simplefilter,U9:W11)^(1/Gamma-out),
SUMPRODUCT(Simplefilter,U9:W11)
该算法可利用电子表格来实现模块化,其黑色线的典型结果如图74C至74G所示,74C所示为输入数据,74D所示为具有自适应滤波器的SPR的输出,74E所示为具有自适应滤波器的LCD强度(对比度较低,但颜色是平衡的),74F所示为不具有自适应滤波器以及没有伽玛校正的SPR的输出,而图74G所示为没有任何滤波器及伽玛校正的LCD强度(对比度较高,但颜色有误差,红色调制=78,绿色调制=47+47=94)。就图74E而言,颜色平衡度由红色调制与其相邻的两个绿色调制的比较来计算,在此例中,红色=50,绿色=25+25=50。对于白色线,可以得到类似的结果。
一种增强型算法可包含一种可以保持图像对比度及颜色平衡度的方法,其利用不同的方法来调整SPR滤波器的输出值。如上所述,SPR数据可使用伽玛查找表或函数来改变。这确实可以修正色差,但会降低对比度。对于这些特殊的对角线情况,我们可以计算要输出的值,同时达到颜色平衡及提高对比度。例如,利用下列映射:
黑线:
IF(SPR data=0.5)THEN output=0.25
IF(SPR data=0.75)THEN output=0.75
白线:
IF(SPR data=0.5)THEN output=0.75
IF(SPR data=0.25)THEN output=0.50
图74H所示为位于红色像素中心的黑线的子像素着色输出,其利用了自适应滤波器以及对角线的新的输出值。图74I所示为具有改善的对比度及接近于颜色平衡(红色=95,绿色=47+47=94)的LCD强度。通过应用更精确的对角线赋值,还能获得更准确的颜色平衡。图74J所示为位于红色像素中心的白线的子像素着色输出,其利用了自适应滤波器以及对角线的新的输出值,而图74K所示为接近于颜色平衡(红色=53,绿色=27+27=54)的LCD强度。[0329]此增强型算法的更多好处是其峰值亮度与垂直线或水平线完全相同,而且色差为零。这一点可以提高文字质量。图74L所示为一条黑色垂直线的输入,图74M所示为其子像素着色输出,而图74N所示为其LCD强度。在此垂直线的情况下,最小亮度为4.7%,而颜色是平衡的。对于对角黑线,通过选择正确的映射,最小亮度可为4.7%。靠近最小值的像素设为53%,以平衡颜色。因此,黑色对角线看起来略宽。
图74O所示为一条白色垂直线的输入,图74P所示为其子像素着色输出,而图74Q所示为其LCD强度(由LCD的伽玛修正)。对于白线,峰值亮度为53%,其具有1%“侧边”。对角白线设为53%的亮度,但为了平衡颜色,“侧边”设为27%。因此同样,该线看起来略宽。在任意情况下,可以调整算法的预置值,以权衡色差及亮度轮廓。
如果在判断单元7330判定到有条件存在,示范性方法7300将继续到阶段7340,在此对子像素数据进行校正。例如,此校正可包含一个过程,用于校正在像素数据中所造成的任何色差,或完成子像素自爱惜那数据的转换处理。子像素着色数据转换处理可包括将像素数据转换成子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据。例如,将像素数据转换成子像素着色数据进一步包含应用颜色平衡滤波器。通常,将像素数据转换成子像素着色数据可包含以上图2至图43所述的或所用的处理及方法。特别是,校正子像素着色数据可包括应用伽马调整、将子像素着色数据的量设定为一个常数、或者对子像素着色数据应用数学函数。以上校正方法是示范性的,此外还有很多不同的方法可对数据进行校正,其中包括色差校正。
此外,校正子像素着色数据可以包括利用颜色基准对颜色应用一个非锐化的滤波器。例如,如果检测到输入数据中包含如图74R所示的垂直线,应用图74T的滤波器,可以得到图74S所示的输出,其中滤波器将绿色像素的能量扩散到了临近的列中。这样的扩散可以改善单一像素宽的线条的外观。在此情况下,图74U的滤波器用于红色。可调整图74T中的值7490及中心值7491以增大或减小扩散。但是,如果应用图82的滤波器,将可得到如图74V所示的输出。在此情况下,红色及绿色使用同样的滤波器。锐化/非锐化滤波器的通用形式如图74W所示,其中“a”可为正数或负数。“a”为正值将使能量扩散到邻近的行或列,负值则将使能量集中在线上(“锐化”)。
但是,如果在判断单元7330判定到没有条件存在,或者来自对数据进行校正的阶段7340,示范性方法7300将继续到阶段7350,在此对数据进行子像素着色并输出。例如,可将子像素着色数据输出到显示器上。此显示器可运用于或配置于移动电话、个人电脑、手持计算器、多处理器系统、基于微处理器的或可编程的用户电子装置、微机、大型计算机、个人数字助理(PDA)、传真机、电话机、寻呼机、便携式计算机、电视机、高清晰度电视机、或任何可以接收、发射或利用信息的其它装置中。此显示器可以含有一组元器件,该元器件可配置于、运用于或连接于许多不违背本发明的范围和精神的其它装置或系统中。一旦子像素着色数据在阶段7350中输出,示范性方法7300将在阶段7360处结束。
图73B至73E所示为一个流程图,其分别给出了示范性方法7366、7367、7369及7371所涉及的一般阶段,这些方法可为一个含有一组像素、每个像素含有颜色子像素的显示器处理数据,其与本发明的一个实施例一致。方法7366、7367、7369及7371中的各种方法基本相同,其不同之处仅在阶段7384后的阶段中。示范性方法7365开始于阶段7375,其中3×3数据7372在此载入。例如,接收像素数据。
从阶段7375开始,方法7365前进到阶段7376,在此用阈值检测是否为高。例如由接收像素数据组成的数据集可以由一个m×n的矩阵组成,其中m及n均为大于1的整数,在此例中,m及n皆等于3。数据集的1和0可代表数据集中子像素的强度。其中1可代表大于第一阈值的强度级,而0可代表低于第二阈值的强度级。例如,第一阈值可为某一给定子像素的最大允许强度的90%,而第二阈值可为某一给定子像素的最小允许强度的10%。例如,如图74A的数据集7422所示,如果所有对角线子像素的强度均为最大值的90%或更大,而数据集中的所有其它像素的强度均为最小值的10%或更小,则可检测以暗场为背景的一条亮色对角线。以上阈值是示范性的,也可使用其它很多阈值。阈值10%及90%常用来检测文字,例如,其通常为以白色为背景的黑字。
在方法7365中,“高”(或1)在数据中检测,并在阶段7377存储在高寄存器中。同样,在阶段7378及7379,分别对“低”(或0)进行检测,并存储在低寄存器中。图73B的寄存器7373所示为示范性高寄存器或低寄存器的方向。例如,元素a-i可为“1”或“0”,其取决于对应的3×3数据7372中的输入数据及阈值水平。低寄存器的内容在阶段7380被倒置,并在阶段7381与高寄存器的内容相比较。如果两个寄存器的内容不相同,方法7365将前进到阶段7382,在此进行无调整的子像素着色,例如伽玛等于1。但是,在此阶段的子像素着色处理可包含应用着色过程中的滤波器、函数或常数。
但是,如果在阶段7381判定为两个寄存器的内容相同,方法7365将进行到阶段7383,在此像素数据将与多个掩模比较。为此目的,在此方法中,其仅已判定出像素数据中是否只含有高和低的数据,而不含有高和低之间的数据。通过阶段7383中此数据与掩模的比较,其可判定出像素数据中包含的高和低是否形成某一确定图案。例如,大多数掩模可对应于能够检测出如图74A所示的数据集7402至7468的图案。同样,对应于图74A的数据集的可检测图案的实例是示范性的,也可以检测其它图案。
一旦在阶段7384发现有与预期检测图像相匹配的结果,方法7365将继续到7385,在此,例如,其将在子像素着色处理中应用伽玛调整。此外,除了伽玛调整之外的其它调整也可在子像素着色处理中应用。此处的其它调整包括将数据元素设为某一常数值(如图73C的阶段7386所示)、对像素数据元素应用数学函数(如图73D的阶段7387所示)、或对像素数据元素应用锐化滤波器(如图73E的阶段7388所示)等。图73E的阶段7388的锐化处理可应用于所有的子像素或一种颜色接一种颜色的基础。例如,只有绿色子像素可以锐化,或者只有红色及绿色子像素可以锐化。如果在阶段7384,阶段7383的所有可用掩模均比较完后,仍未发现有匹配的结果,则方法7365将前进到阶段7382。
图75所示为一个流程图,其给出了一种示范性方法7500所涉及的一般阶段,该方法是方法7300的另一种实施例,其可为一个含有一组像素、每个像素含有颜色子像素的显示器处理数据,其与本发明的一个实施例一致。与本发明的一个示范性实施例一致的示范性方法7500的各阶段的实现将在图76中有更详细的说明。示范性方法7500开始于开始单元7505,并继续进行到阶段7510,在此接收像素数据。例如,像素数据可以由一个m×n的矩阵组成,其中m及n均为大于1的整数。通常,像素数据包含以上图2至图43所述的或所用的像素数据。
由接收像素数据的阶段7510开始,示范性方法7500继续进行到示范性子程序7520,在此将像素数据转换成子像素着色数据。示范性子程序7520的阶段如图76所示,并在后面有更详细的说明。
像素数据在范性子程序7520中被转换成子像素着色数据之后,示范性方法7500前进到阶段7530,在此输出子像素着色数据。例如,可将子像素着色数据输出到显示器上。此显示器可运用于或配置于移动电话、个人电脑、手持计算器、多处理器系统、基于微处理器的或可编程的用户电子装置、微机、大型计算机、个人数字助理(PDA)、传真机、电话机、寻呼机、便携式计算机、电视机、高清晰度电视机、或任何可以接收、发射或利用信息的其它装置中。此显示器可以含有一组元器件,该元器件可配置于、运用于或连接于许多不违背本发明的范围和精神的其它装置或系统中。一旦子像素着色数据在阶段7530中输出,示范性方法7500将在阶段7540处结束。
图76所述为来自图75的示范性子程序7520,其用于将像素数据转换成子像素着色数据。示范性子程序7520开始于开始单元7605,并前进至判定单元7610,在此判定在像素数据中是否可以检测到黑色水平线、黑色垂直线、白色水平线、白色垂直线、黑色边缘及白色边缘中的至少一种。例如,在将像素数据转换成子像素着色数据过程中,颜色平衡滤波器的应用可能会使文字看起来模糊不清。这是因为滤波器会去掉奈奎斯特极限之上的空间频率,并使奈奎斯特极限的调制深度降低一半。但是,对于确定的可检测像素图案,颜色平衡滤波器的应用并非必要。例如,此类可检测像素图案可包含垂直或水平的黑色及白色的线或边缘。在此情况下,其需要在每个子像素上测试颜色平衡,并只在需要时才应用颜色平衡滤波器。
图77A及图77B各给出了子像素的一个块,其用于对中心处为预期颜色的子像素进行测试。其需要一组方程来测试颜色,特别地,例如,比较红色及绿色子像素的值。该值可进行加权,因为一条直线将在中心的任意一侧生成两种颜色中的一种,其中此两种颜色互为相反色。同样,相同的不平衡也出现在边缘处。为了生成所述条件的一个测试,可以测定加权阵列中所包括的每个子像素的加权。例如,考虑图77A所示的红色居中的矩阵,但是,下列分析同样适用于图77B的绿色居中的矩阵。
由于对称性,图78的每个Rd的加权皆相同,然而,所有G的加权也都相同,但并非必要彼此相等。由于此对称性,九个未知数减少到了三个,因此,只需要三个联立方程。
根据单个子像素宽线条可平衡的条件,图79的矩阵具有两个绿色子像素为关闭、中心红色子像素为关闭、以及周围子像素为开启的形式。由此可得到下列公式:
2G+Rc=2G+4Rd Thus Rc=4Rd
根据垂直边缘或水平边缘可平衡的条件,可以形成图80的矩阵,并得到下列方程:
2Rd+G=2Rd+3G+Rc
G=3G+Rc
-2G=Rc
-2G=Rc=4Rd
设加权Rd=1,可知Rc=4且G=-2.。将此值放入图77A的测试阵列,可形成图81的阵列。
在将像素数据转换为子像素着色数据之前,如果像素数据的中心像素具有给定的颜色平衡,则测试该中心像素,或用其与图81的阵列的值比较,以确定滤波器是否或如何调整该子像素值。如果阵列的值不为零,则可应用标准的颜色平衡滤波器。如果阵列的值为零,则不需应用颜色平衡滤波器。
如果在判定单元7610判定为像素数据中未检测到黑色水平线、黑色垂直线、白色水平线、白色垂直线、黑色边缘及白色边缘中的至少一种,示范性子程序7520将继续进入阶段7615,并在此将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中包括应用第一颜色平衡滤波器。例如,图82中所示滤波器即可用作第一颜色平衡滤波器。
如果在判定单元7610判定为像素数据中检测到黑色水平线、黑色垂直线、白色水平线、白色垂直线、黑色边缘及白色边缘中的至少一种,示范性子程序7520将继续进入判定单元7620,并在此判定被转换的像素数据的第一颜色子像素的强度与被转换的像素数据的第二颜色子像素的强度是否不等。
例如,如图83所示,标有”x”标记的每个像素都要测试红色对绿色的平衡,如果R≠G,则应用如图82所示的标准滤波器。
以上方法可能需要测试颜色的存在,因为它无法检测有两个滤波器的混合造成的某些颜色不平衡。然而,由于做成多路通道,可对颜色图像进行颜色平衡测试,直到无法找出颜色不平衡为止。·与简单查找显示为一个灰度值的非零值不同,也可以判定颜色平衡是否为中心像素及其四个正交的邻近值所期望的值。如果颜色平衡并非此五个值中的任何一个所期望的值,则应用如图82所示的标准滤波器。由此可生成边缘检测器,实际上为一个5×5的多重测试。
就边缘检测器而言,如果存在一个开放边角,也可能错误地检测为一个边缘。这也会引起色差问题。进一步观察边缘检测器到底在做什么,可看出可能会用到行及列之和均为零的矩阵。进一步的检查会发现,对于相同数值被使用两次的矩阵,可能会出现错误的检测。因此,可以使用具有唯一数值的矩阵。这样的矩阵可能有很多,其中之一如图85所示。边缘监测器矩阵的大小可以扩展到任意大小,其中之一的5×5矩阵如图86所示。此类边缘监测器共用了矩阵的列及行的总和皆为零、以及通过逻辑扩展,整个矩阵总和也为零的特性。
对于真正的黑白文字,以上的滤波器测试仅需判定乘以数据的矩阵是否总和为零。但是,对于灰度级图形及照片,与其判定乘以数据的矩阵总和是否为零,倒不如判定其是否足够接近于零。在此情况下,可以利用某一阈值。这样,即使出现少量的变动,灰度级照片或图形也允许尖锐边缘。
如果在判定单元7620判定被转换的像素数据的第一颜色子像素的强度与被转换的像素数据的第二颜色子像素的强度不相等,示范性子程序7520将继续到阶段7625,在此将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中包括应用第二颜色平衡滤波器。例如,图82中所示滤波器即可用作第二颜色平衡滤波器。
但是,如果在判定单元7620判定被转换的像素数据的第一颜色子像素的强度与被转换的像素数据的第二颜色子像素的强度相等,示范性子程序7520将继续到阶段7630,在此将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据。例如,如图84所示的不带颜色平衡的滤波器可与阶段7630相关的转换一起联合使用。
从阶段7615,在此将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中包括应用第一颜色平衡滤波器,或从阶段7625,在此将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,其中包括应用第二颜色平衡滤波器,或从阶段7630,在此将像素数据转换为子像素着色数据,此转换为至少在水平轴和垂直轴的一个轴上含有交替的红色和绿色子像素的子像素排列生成子像素着色数据,示范性子程序7520将继续到阶段7635,并且返回图75的判定单元7530。
可以知道,符合本发明的实施例的系统可由来自专用硬件或通用计算机系统的整体或部分,或者它们的任意组合形式来构造。这种系统的任何部分均可由适当的程序来控制。任何程序可以常规的方式整体或部分地包含或存储在系统中,或者以常规的方式整体或部分地通过网络或其它传递信息的机制提供给系统。此外,可以知道,系统可由操作者利用操作者输入元件(未给出)提供信息的方法来操作及(或)控制,其中这些单元可以常规的方式与系统直接连接、可通过网络或其它传输信息的机制向系统传输信息。
前述说明仅限于本发明的特殊实施例。不过,显然,可对本发明进行多种变动及修正,以获得本发明的部分或全部好处。附加的权利要求的目的就是要保护这些发明,而其变动及修正皆应符合本发明的真实精神及范围。
根据在此所公开的发明的规范及实际的考虑因素,本发明的其它实施例对于那些技艺娴熟的业内人士而言是显而易见的。这里的规范及实例只作为示范目的,而本发明的真实范围及精神请参见后面的权利要求。
以下是示范性的C代码,其可用来实现在此所公开的方法。不过,以下代码也可翻译成其它适当的任何可执行编程语言,以实现在此所公开的技术。此外,以下代码受版权保护,版权所有人保留此处所包含的所有版权。
                                   //*************
                                  //子像素着色程序
static long BlueSum=0;//来自红色及绿色的总和,保存为蓝色
unsigned char CalcSubP(BITMAPINFOHEADER*ib,intx,inty,intox,intoy)
{
long sum=0,cent,inner=0,edge,term;
long wcent,bwcent,wedge;          //欧米伽校正的像素值
int           i,j;
                      //来自子像素地址的颜色分量
in      tcolor=((ox&1)^(oy&1))?GREEN:RED;
unsigned short*pre=color==RED?precomp:precomp+256;
unsigned short*wgm=color==RED?wtable:wtable+256;
//指向滤波器的指针
unsigned char   *myf=flits+(((ox%S)+
(oy%S)*S))*RGXsize*RGYsize;
unsigned longc   coef;//储存中心系数
//利用蓝色总和递归欧米伽代码
//提取该中央输入像素并保持它一段时间
cent=PIX(x+1,y+1,color);
wcent=wgm[cent]>>8; //仅使用8比特的欧米伽
bwcent=wtable[512+PIX(x+1,y+1,BLUE)]>>8;//查询蓝色欧米伽中央值
   inner=0;
                //计算所有项
   for(j=0;j   {
      for(i=0;i      {
switch((i<<4)j)    //对于所有特定的情况将坐标在一起
{
case0×00:    //边角像素项
case0×20:
case0×02:
case0×22:
    edge=PIX(x+i,y+j,color);   //输入像素永远为8位
    wedge=wgm[edge]>>8;     //在查询欧米伽之后
                        //其为16,退回8,现在其为8位
//边角像素及中心像素仍为9位
    term=(wedge+wcent)/2;
    //在该预运算表中检视该平均,使其为16位
        term=pre[term];
    //乘以该滤波器系数,必须使结果为24位
    //但是,我们使用乘法器的第一排来给出一16位结果
    //内部除以256(或不计算低8位)
        term=(term*(unsigned long)(*myf++))>>8;
    //然后在乘法器的第二排中,我们乘以该伽玛校正项
    //与该未伽玛校正的输入值此可有效地加1
    //到该伽玛项的指数
        term=(term*edge)>>8;
    //因为该项乘以
    //系数而求和为1,此总和永远可匹配于16位
        sum+=term;
        break;
    case0×10:     //正交边缘像素项
    case0×01:
    case0×21:
    case0×12:
                 edge=PIX(x+i,y+j,BLUE);//得到相同的蓝色像素
                 wedge=wtable[512+edge]>>8;//将其执行该蓝色欧米伽
                                          //表
                 term=(wedge+bwcent)/2;//平均化,其中央蓝色项
                 term=precomp[512+term];//然后在GinvWinv表中查询
//表
                 BlueSum+=tern;//求和,并稍后储存给蓝色计算用
                 edge=PIX(x+i,y+j,color);//输入像素永远为8位
                 wedge=wgm[edge]>>8;//在欧米伽中查询之后,其为16
//退回8,现在其为8位
              //一边缘像素及该中央像素的平均仍为9位
                  term=(wedge+wcent)/2;
          //在该预先运算表中查询该平均,使其为16位
                 term=pre[term];
          //这些边缘项系求和来计算该中央项
              //此将必须为一18位数目,来保持这些求和为4
                  inner+=term;
              //求和该边缘来在稍后计算该中央项
              //乘以该滤波器系数,其必须使该结果为24位
              //但是,我们使用乘法器的第一库来得到一16位的结果
              //内部除以256(或不计算该低的8位)
                  term=(term*(unsignedlong)(*myf++))>>8;
              //然后在乘法器的第二库中,我们乘以该伽玛校正项
              //与该未伽玛校正的输入值此可有效地加1
              //到该伽玛项的指数
                  term=(term*edge)>>8;
              //因为该项乘以
              //系数求和到1,此总和可永远符合在16位
                  sum+=term;
                  break;
           case0×11://中央像素
               ccoef=(long)(*myf++);//仅取用该中央系数来在稍后
               中断;
            }
        }
    }
    inner>>=2;//该4个内项的总和除以4来得到该16位平均
    inner=(inner*ccoef)>>8;//然后其乘以该中央系数
    sum+=(inner*cent)>>8;//最后乘以该中央值,完成该滤波器的外部总和
if(sharpen)
{
    if(color==RED)//切换到该交叉颜色
        color=GREEN;
   else
        color=RED;
                //现在锐化永远为非伽玛校正的数值所完成
            //所以,除了不考虑精度,我们可大致保持
            //因为我们将数目由8位变为11位
            //在除以该锐化系数(1/8及1/32)
            //中央*256来得到16位,然后乘以1/8
      sum+=PIX(x+1,y+1,color)*32;
               //角落项为*256,然后/32,得到*8
      sum=PIX(x,y+2,color)*8;
      sum=PIX(x+2,y+2,color)*8;
      sum=PIX(x+2,y,color)*8;
      sum=max(x,y,color)*8;
      sum=max(0,sum);//锐化可造成负数
      sum=min(sum,ginmask);//或大于8位的数目
}
    if(color==RED)
        sum=gama[sum];//使用该11位数目来查询输出伽玛
    else
        sum=gamat[sum+goutdiv];//红色使用一可能不同的表格
    return((unsignedchar)(sum));//传回子像素值
}
        //计算该蓝色数值的程序
unsigned char BlueFilter(BITMAPINFOHEADER*ib,intx,inty,intox,intoy)
{
    long    sum=0;
    long    tem1,tem2;//诊断变量
    unsigned char        *myf;
    int         i,j;   //循环计数器
    myf=bfilts+(((ox%S)+(oy%S)*S))*BlueXsize*BlueYsize;
    BlueSum>>=3;//采取所有那些蓝色总和的平均
                     //此使得蓝色总和再次为16位数目
    for(j=0;j    {
        for(i=0;i        {
            tem1=PIX(x+i,y+j,BLUE);//提出该蓝色像素
            tem2=(tem1**myf++)>>8;//8*16=16乘以系数
            tem1=(tem2*BlueSum)>>8;//相同于递归总和值
            sum+=tem1;
        }
    }
    BlueSum=0;//将其初始化来进行下一个蓝色
    sum=(sum*goutdiv)/(ginmask+1);
    sum=gamat[sum+goutdiv*2];
    return((unsignedchar)(sum));//传回蓝色超级像素值