首页> 中国专利> 减少色序显示系统中的图像人造痕迹

减少色序显示系统中的图像人造痕迹

摘要

用于减少色序显示系统中的人造痕迹的方法、系统和装置,包括计算机程序产品。通过接收帧数据,确定抖动模式,将抖动模式应用于数据,并且显示抖动数据,来显示数字图像的帧。通过接收像素数据,将用于图像的色彩通道的像素数据分组为多个像素数据子组;并且根据使每对用于色彩通道的子组隔开用于另一色彩通道的子组的序列来显示像素,来显示数字图像的帧的每个像素。通过使用相应的多个划分子位来替换像素数据中的父位,其中用于给定父位的所有子位具有合计为父位的权重的划分权重,来生成经修改的像素数据。

著录项

  • 公开/公告号CN101895772A

    专利类型发明专利

  • 公开/公告日2010-11-24

    原文格式PDF

  • 申请/专利权人 视频有限公司;

    申请/专利号CN201010182939.6

  • 发明设计人 石井隆俊;

    申请日2010-05-18

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人金晓

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 01:09:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-11-25

    授权

    授权

  • 2012-07-04

    实质审查的生效 IPC(主分类):H04N9/64 申请日:20100518

    实质审查的生效

  • 2010-11-24

    公开

    公开

说明书

技术领域

本发明涉及投影显示技术。

背景技术

投影显示技术通过投射对应于图像的色彩通道的光来显示图像。常用的投影设备是微镜显示设备,其通过使微镜倾斜以将光投射到显示器(以显示像素)或者使光偏转远离显示器(以不显示像素),由此显示图像的像素。根据脉冲宽度调制方案使用得自图像的位平面数据的数字控制信号来使镜倾斜。使镜打开和关闭的时间量控制用于给定像素和给定色彩的亮度。传统的微镜显示器是色序式的,即,其顺序投射对应于图像的色彩通道(例如,红色、绿色、蓝色)的光。例如,微镜显示设备可以对于红色通道的每个数据位调节镜并且投射红色光,随后对于绿色通道的每个数据位调节镜并且投射绿色光,并且随后对于蓝色通道的每个数据位调节镜并且投射蓝色光。

传统的微镜显示器和其他投影设备可能具有诸如色乱、运动轮廓、静态轮廓和抖动的人造痕迹。色乱最常见地出现在图像中的高对比度的区域中,例如,图像的黑暗和明亮区域之间的边界。当观察者使其眼睛迅速地从左向右横跨显示屏幕移动时,或者当明亮和黑暗区域在显示屏幕上移动时,观察者可能观察到图像中的彩虹阴影。该彩虹是观察者的视网膜处理单独的红、绿和蓝光脉冲的方式的结果。

运动轮廓最常见地出现在具有层次渐变的色彩的物体(例如,人脸)相对于图像的背景移动时,或者出现在观察者的眼睛横跨显示具有层次渐变的色彩的物体的屏幕移动时。屏幕上的运动可能使观察者观察到图像中不存在的更暗或更亮的阴影。该阴影是由根据脉冲宽度调制方案产生的光的图案导致的。

静态轮廓出现在图像中像素的像素数据不具有足以表示图像中色彩渐变中的所有色彩的位宽(即,没有包括足够的位)时。当其出现时,观察者在不应是边缘的位置看到图像中的边缘。传统系统通过向图像的帧序列应用图案抖动序列来减少静态轮廓。然而,例如,由于抖动速度对于给定的屏幕响应时间不够快,或者由于正在抖动的一个或更多个像素的亮度值的可视的差异,因此当应用于图像像素的图案抖动很明显的时候,可能出现抖动。使抖动位宽和其上应用了模式序列的帧的数量增加将减少静态轮廓,但是增加了抖动。

发明内容

本发明描述了与色序显示系统中的子帧之间的抖动和像素数据分组相关的技术。

通常,本发明所描述的主题的一个方面可以被实施为一种用于在显示系统上显示数字图像的帧的方法,包括如下动作:接收用于帧的帧数据;确定用于帧的两个或更多个抖动模式;将每个抖动模式应用于帧数据,得到抖动子帧序列;以及通过顺序显示经抖动的子帧而非帧来显示帧。其他实现方案包括相应的系统、装置、计算机程序产品和计算机存储介质。

这些和其他实现方案可以可选地包括一个或更多个如下特征。确定用于每个帧的抖动模式可以包括,获得与用于帧的帧计数和用于每个经抖动的子帧的子帧计数相对应的抖动模式。每个抖动模式可以是从抖动排序表格生成的一系列时间和空间恒定的抖动模式中的一个。每个经抖动的子帧可以被表示为用于子帧中的每个相应像素以及多个色彩通道中的相应色彩通道的相应像素数据。

顺序显示经抖动的子帧可以包括,针对每个相应像素执行如下步骤:将用于像素和每个相应色彩通道的像素数据分组为像素数据的多个子组,以及根据用于像素数据的子组的序列来显示像素,其中每对用于色彩通道的子组被隔开上述序列中的至少一个用于另一色彩通道的子组。

用于每个相应像素和每个相应色彩通道的像素数据可以包括初始的多个位,每个位具有值和权重,并且将用于每个色彩通道的像素数据分组为像素数据的多个子组可以包括:生成对应于初始的多个位的经修改的多个位,其中初始的多个位中的一个或更多个父位(parentbit)由对应于父位的多个子位替换,其中每个子位具有等于父位的值的值以及与父位的权重成比例的划分权重,并且其中对应于父位的子位的划分权重合计为父位的权重;以及,根据经修改的多个位以及用于经修改的多个位的顺序来显示像素。

色彩查找表格可以用于在确定用于每个子帧的相应抖动模式之前确定用于帧中的像素的色彩值。

通常,本发明的另一方面可以被实施为一种用于在显示系统上显示数字图像的帧的像素的方法,包括如下动作:接收用于像素和多个色彩通道中的每个相应色彩通道的像素数据,其中用于每个像素的数据包括多个位并且其中多个位中的每个位具有权重;将用于每个色彩通道的像素数据分组为像素数据的多个子组;以及根据用于像素数据子组的序列来显示像素,其中每对用于色彩通道的子组被隔开序列中的至少一个用于另一色彩通道的子组。其他实现方案包括相应的系统、装置、计算机程序产品和计算机存储介质。

这些和其他实现方案可以可选地包括一个或更多个如下特征。显示像素可以进一步包括,生成用于帧的子帧的序列,以及根据子帧的序列来显示像素。

通常,本发明所描述的主题的另一方面可以被实施为一种用于在显示系统上显示数字图像的帧的像素的方法,包括如下动作:接收用于像素和色彩通道的像素数据,其中像素数据包括初始的多个位,每个位具有值和权重;生成对应于初始的多个位的经修改的多个位,其中初始的多个位中的一个或更多个父位由对应于父位的多个子位替换,其中每个子位具有等于父位的值的值以及与父位的权重成比例的划分权重,并且其中对应于父位的所有子位的划分权重合计为父位的权重;以及,根据经修改的多个位以及用于经修改的多个位的顺序来显示像素。

这些和其他实现方案可以可选地包括一个或更多个如下特征。该顺序可以通过具有低于第二阈值的权重的至少一个位将具有高于第一阈值的权重的两个位隔开。根据经修改的多个位来显示像素可以包括,生成用于多个色彩通道中的每个色彩通道的用于像素的经修改的多个位;根据用于每个经修改的多个位的顺序将每个经修改的多个位中的位分组为多个位子组,其中每个子组包括一个或更多个位;以及,根据用于位子组的序列来显示像素,其中每对用于色彩通道的子组至少隔开用于序列中的另一色彩通道的子组。

可以实现本发明的特定实施例以便于实现一个或更多个如下优点。可以减少图像中的色乱。可以减少图像中的运动轮廓。可以减少图像中的静态轮廓。可以减少图像中的抖动。可以减少所需用于表示图像的位平面的数量。

在附图和下文的描述中阐述了说明书中描述的本发明的一个或更多个实施例的细节。通过描述、附图和权利要求,本发明的其他特征、方面和优点将变得显而易见。

附图说明

图1示出了减少投影图像中的人造痕迹的示例性显示系统。

图2A~2B示出了显示子帧序列代替显示图像的帧如何能够减少色乱效果的示例。

图3A~3D示出了显示子帧序列代替显示图像的帧如何能够通过平均化运动轮廓人造痕迹而减少运动轮廓的示例。

图4示出了用于红色通道的抖动处理器的详细视图。

图5示出了示例性抖动子处理器。

图6示出了示例性4×4抖动排序表格。

图7示出了可以从抖动排序表格生成的时间和空间恒定抖动模式的示例。

图8示出了针对给定像素生成控制信号的示例性抖动模式生成器。

图9示出了比较器应用的用于确定控制信号的值的示例性逻辑。

图10示出了可以在低位数据和子帧计数均为八位时使用的示例性抖动模式生成器。

图11示出了RAM表格(高位)的两个示例。

图12示出了用于图10中示出的两个乘法器中的每个乘法器的示例性优化。

图13示出了用于图像的每个色彩通道的抖动处理器和来自抖动处理器的输出的示例。

图14示出了具有由子帧标注的数据的示例性帧缓存器。

图15示出了用于通过显示对应于帧的抖动子帧来显示数字图像的帧的示例性方法。

图16示出了对像素数据重新排序和分组以减少色乱效果的示例。

图17示出了根据图16中示出的分组而分组的、来自图8的抖动处理器的输出的示例。

图18示出了在对像素数据分组之前将像素数据的加权位划分为多个位的示例。

图19示出了根据图18中示出的分组对来自红色、绿色和蓝色抖动处理器的输出进行分组的示例。

图20示出了用于将像素数据分组为子组并且对像素数据重新排序的示例性方法。

图21示出了用于划分像素数据位并且对所述位重新排序的示例性方法。

在不同的附图中相同的参考数字和附图标记表示相同的元件。

具体实施方式

图1示出了减少投影图像中的人造痕迹(例如,色乱、运动轮廓、静态轮廓和抖动)的示例性显示系统100。从视频数据源102接收例如广播信号的视频数据。例如,视频数据可以包括对应于Y、Cb和Cr信号的三个八位复合信号。视频数据被处理并且随后被提供给色序显示设备116(例如,微镜显示设备),其显示对应于视频数据的图像。

如下所述,系统100将视频数据转换为由色序显示设备116使用的位平面数据。视频数据由视频解码器104解码。视频解码器104将视频数据转换为包括多个信号的解码的视频数据,一个信号对应于图像的每个色彩通道。例如,解码的视频数据可以包括对应于图像的红色、绿色和蓝色色彩通道的三个八位信号。解码视频数据随后被发送到视频数据处理器106。视频数据处理器处理该解码视频数据并且将各种效果应用于该数据,例如,缩放、色彩管理和梯形畸变效果移除。例如,视频数据处理器的输出可以是红色、绿色和蓝色数据,每个数据具有八至十位的格式。系统随后使用色彩查找表格108来识别图像的每个像素的每个色彩通道的色彩值。例如,色彩查找表格的输出可以是红色、绿色和蓝色数据,每个数据具有十二至十六位的格式。系统随后将色彩查找表格的输出发送到图像处理器118,该图像处理器118包括抖动处理器110、帧缓存器112和脉冲宽度调制器114。抖动处理器110生成用于视频的每个帧以及用于每个色彩通道的两个、三个或更多个抖动子帧的数据。抖动可以例如通过将格式减少到六至八位,从而减少用于色彩通道数据的位数。抖动数据随后被存储在帧缓存器112中并且由脉冲宽度调制器114处理。脉冲宽度调制器接收位平面数据、生成脉冲宽度调制信号(例如,对应于位平面数据),并且向色序显示设备116发送信号。在正常显示帧的时间期间(例如,60赫兹或50赫兹),色序显示设备116顺序显示对应于帧的所有多个抖动子帧。

通过增加抖动模式序列中的子帧的数量来增加抖动速度,由此减少抖动,从而一系列子帧上的抖动可以导致更平滑的图像,而不需要使不同的帧作为序列的一部分也被抖动。显示子帧序列而非它们对应的帧还增加了将色彩投射到屏幕上的频率,并且可以帮助减少色乱效果和运动轮廓。

图2A~2B示出了显示子帧序列而非显示图像的帧如何能够减少色乱效果的示例。

图2A示出了在不使用子帧的情况下显示的图像中的色乱效果的示例。如图2A中所示,顺序投射两个帧,即投射帧A 202,随后投射帧B 204。通过顺序显示红色、绿色和蓝色光来投射每个帧。当在图像的高对比度区域中存在运动时(例如,当图像中的白线相对于黑色背景移动时),观察者的视网膜感知到图像中的高对比度的边缘处(例如,在图像中的白线上)的彩虹阴影206。该彩虹是当投射帧时视网膜处理其接收的红色、绿色和蓝色光的闪光的方式的结果。

图2B示出了如何通过分别显示帧A和帧B 252和254作为子帧序列来减少色乱效果的示例。每个帧作为三个子帧的序列而被投射,并且每个子帧作为红色、绿色和蓝色光的序列而被显示。在子帧期间显示每个色彩的光的时段是不利用子帧显示每个帧时的、图2A中显示该色彩的光的时间长度的三分之一。与处理光的较长闪光的情况相比,观察者的视网膜能够更好地处理红色、绿色和蓝色光的较短的闪光。视网膜使光的波长平均,使得在观察者感知到彩虹之前,观察者在该位置感知到图像中的大的白色部分256。尽管在白色区域边缘可能仍存在小的红色阴影258和小的蓝色阴影260,但是这些阴影比图2A中示出的初始彩虹效果小。

图3A~3D示出了显示子帧序列而非显示图像的帧如何能够通过使运动轮廓人造痕迹平均化而减少运动轮廓的示例。

图3A示出了图像的三个区域,即图像中彼此邻近的区域A302、区域B 304和区域C 306的亮度。区域A和C 302和306均具有亮度等级3,而中间的区域,即区域B 304具有亮度等级4。

图3B示出了其中对区域A、B和C投射光从而使每个区域将具有适当的亮度期间的时间。由使用脉冲宽度调制方案的脉冲宽度调制器来确定时序。在图中阴影表示的时段期间,区域中的每个像素是“打开”的(即,对于该像素投射光)。即使区域A和C 302和306具有仅与其中间的区域(即区域B 304)相差一个亮度等级的亮度,但是脉冲宽度调制器仍以非常不同的方式在这些区域中显示对于像素的光。区域A和C 302和306中的像素在时间0至3中是打开的,在此时间期间区域B 304中的像素是不打开的。区域B 304中的像素在时间3至7期间是打开的,在此时间期间区域A和C 302和306中的像素是不打开的。如图3C中所示,该时序差异可能使观察者看到图像中的运动轮廓人造痕迹。

图3C示出了图像中的运动轮廓人造痕迹的示例。图3C示出了顺序显示的图像的两个帧,即帧A 322和帧B 324。每个帧包括相同的三个区域,即区域A 302、区域B 304和区域C 306,但是帧B 324中的区域已从其在帧A 322中的位置向左移动。随着帧的显示,由于观察者的眼睛从右向左跟踪跨越屏幕,此时观察者将感知到来自帧的沿斜线(即,线336)表示的平面的光,而非在图像是静止的并且区域未在帧之间平移的情况中观察者将看到的来自帧的垂直平面(即,垂直于屏幕)的光。该差异使观察者感知到观察者在静止图像中感知不到的移动图像的现象。在大部分时间,观察者仍将感知区域中的像素的正确值。例如,观察者将感知到区域326和328具有亮度值3,并且区域330具有亮度值4。然而,观察者将看到区域A 302和区域B 304之间的边缘处的黑暗阴影332以及区域B 304和区域C 306之间的边缘处的明亮阴影334。这些阴影是观察者的眼睛感知正在投射的光的方式的结果;例如,在黑暗阴影332处,观察者将感知不到光(亮度值0),并且在明亮阴影334处,观察者将感知到用于区域B和C 304和306的光(亮度值7)。尽管图3C示出了移动的图像和其眼睛跟踪跨越屏幕的观察者,但是在图像是静止的并且在显示图像时观察者使其眼睛从左向右移动跨越屏幕的情况中仍可能出现相同的效果。

图3D示出了使用子帧(例如,图像的帧的三个重复的复制)替换图像的每个帧如何能够减少图像中的运动轮廓人造痕迹的示例。图3D示出了顺序显示的图像的三个子帧,即子帧A 352、子帧B 354和子帧C 356。当观察者的眼睛从右向左跟踪跨越屏幕时,与图3C中示出的没有子帧的情况中感知的阴影相似,观察者仍将看到图像中的小的黑暗阴影(例如,区域A 302和区域B 304之间的黑暗阴影358和360)。然而,由于图3D中的每个子帧的显示时间是图3C中示出的帧的显示时间的一部分,因此(绝对地,并且相对于其周围的阴影)减少了每个阴影的量值,并且因此每个阴影对于观察者的眼睛是不太明显的。换言之,平均化了运动轮廓效果。例如,由于观察者随时间感知对于子帧B和C 354和356投射的光而不感知对于子帧A 352投射的光,因此黑暗阴影358具有值6/3(3/3+3/3+0=6/3)。作为另一示例,由于观察者随时间感知子帧A 352和B 354的对于区域304投射的光,而且感知区域302的对于子帧A投射的光,因此黑暗阴影360具有值11/3(3/3+4/3+4/3=11/3)(例如,所有子帧A、B和C 352、354和356的对于区域304投射的光)。明亮阴影(例如区域304和区域306的边缘处的阴影)具有类似较小的量值。因此,显示多个子帧而非显示图像的帧减少了运动轮廓效果。

图4示出了用于红色色彩通道的抖动处理器402的详细视图。红色抖动处理器402(例如,从色彩查找表格)接收与图像帧的红色通道相对应的像素数据并且接收用于帧的帧计数。帧计数与应用于图像帧的抖动模式序列中的位置相对应。

红色抖动处理器402使用许多个(如,三个)抖动子处理器(抖动子处理器A 410、抖动子处理器B 412和抖动子处理器C 414)来处理当前帧。每个抖动子处理器通过将不同的抖动模式应用于帧的数据从而生成对应于图像帧的抖动子帧。根据得自帧计数的子帧计数生成每个抖动模式。例如,当系统执行视频显示扫描时,红色抖动处理器402顺序处理帧的每个像素。然而,其他处理器是可能的,例如,并行处理帧的所有像素(或像素的子集)的处理器。

红色抖动处理器402包括多个抖动子处理器,对于从给定帧生成的每一个子帧使用一个抖动子处理器。在图4中,针对每个帧生成三个子帧,并且因此红色抖动处理器402包括三个抖动子处理器:抖动子处理器A 410、抖动子处理器B 412和抖动子处理器C 414。每个抖动子处理器获得用于其对应的子帧的抖动模式并且将该抖动模式应用于帧。每个抖动子处理器A~C可以根据抖动排序表格和对应于图像的帧计数的子帧计数以及正在生成用于其的数据的子帧,生成不同的抖动模式。例如,在图4中,通过使帧计数乘以3(子帧的数目)并且取决于正在生成的子帧将0、1或2与结果相加,从而计算用于每个子帧的子帧计数。抖动子处理器A 410生成与抖动排序表格中的用于帧计数乘以3的条目相对应的抖动模式,抖动子处理器B 412生成与抖动排序表格中的用于帧计数乘以3再加1的条目相对应的抖动模式,并且抖动子处理器C 414生成与抖动排序表格中的用于帧计数乘以3再加2的条目相对应的抖动模式。每个抖动子处理器随后将适当的抖动模式应用于帧,获得了三个抖动子帧。

每个抖动子处理器A~C随后输出用于其对应的抖动子帧的像素数据(RDO1、RDO2、RDO3)。

图5示出了示例性抖动子处理器A 410。抖动子处理器A 410接收用于图像的帧的像素和给定色彩通道的多个输入,并且对于与图像帧的抖动子帧相对应的色彩通道生成像素数据。输入可以包括由高位数据504和低位数据506(例如,来自诸如色彩查找表格108的色彩查找表格)组成的红色抖动数据输入(红色DDI)、子帧计数508、水平计数510和垂直计数512。高位数据和低位数据对应于正在处理的帧中的像素的像素数据。高位数据是像素数据的高有效位并且在抖动期间将被保存,而低位数据是将作为抖动的结果而被截去的低有效位。例如,输入数据可以由四位高位数据和四位低位数据组成,在该情况中,输出数据将是四位,或者输入数据可以由八位高位数据和八位低位数据组成,在该情况中,输出将是八位。子帧计数508识别应将哪个抖动模式应用于正在生成的子帧。例如,如上文参照图4描述的,可以计算子帧计数。水平计数510和垂直计数512指定了与在正在应用的抖动模式下正在被处理的当前像素相对应的位置。

加法器514将1加到高位数据504。在一些实现方案中,由于用于表示高位数据的位数,加法器514仅在高位数据值小于最大可能值时将1加到高位数据(例如,15对于4位,31对于5位等)。

抖动子处理器A 410中的乘法器516接收高位数据504和加法器514的输出。乘法器516基于其从抖动模式生成器518接收的控制信号(hi_sel)在两个输入之间进行选择。抖动模式生成器518基于水平计数510、垂直计数512、低位数据506、子帧计数508以及例如图6中示出的抖动排序表格602的抖动排序表格520,生成控制信号。抖动排序表格520可以被包括在抖动模式生成器518中或者与抖动模式生成器518分离。抖动模式生成器518生成与抖动模式中的由水平计数510和垂直计数512限定的位置相对应的值(例如,0或1),该抖动模式与低位数据506、子帧计数508和抖动排序表格520相对应。抖动模式生成器518可以仅生成与模式中的由水平计数510和垂直计数512限定的位置相对应的值。可选地,抖动模式生成器518可以获得完整模式(例如,通过从存储器中调取该模式,或者使用并行处理器生成该模式)并且选择与模式中的由水平计数510和垂直计数512限定的位置相对应的值。

由抖动模式生成器518识别的值(即,控制信号hi_sel)随后被提供给乘法器。如果该值是0,则输出原始高位数据作为抖动数据输出(DDO)522。如果该值是1,则输出从加法器514接收到的信号作为抖动数据输出522。

抖动子处理器的其他实现方案也是可能的。例如,可以从存储器中存储的预定抖动模式的序列中调取抖动模式,诸如图7中示出的序列中的一个模式,而非按照需要生成抖动模式。作为另一示例,尽管图5示出了抖动子处理器的硬件实现方案,但是抖动子处理器可选地可以以软件实现,该软件使处理器(例如,数字信号处理器)执行与硬件执行的动作相似的动作。

图6示出了示例性4×4抖动排序表格602。表格602的单元中的数值指示了如何根据子帧计数和子帧的低位数据生成抖动模式。一般说来,抖动表格的尺寸与低位数据的位数相对应并且被选择为,对于可由低位数据中的位数表示的每个数值在表格中存在一个单元。例如,当低位数据的位数是4(并且因此低位数据可以表示24=16个不同的数值)时,可以使用4×4的表格(具有16个单元);当低位数据的位数是5时,可以使用8×4的表格;当低位数据的位数是6时,可以使用8×8的表格;当低位数据的位数是7时,可以使用16×8的表格;并且当低位数据的位数是8时,可以使用16×16的表格。尽管图6是抖动排序表格602的一个示例,但是也可以使用其他的抖动排序表格。

图7示出了可以根据图6中示出的抖动排序表格602生成的时间和空间恒定的抖动模式的示例。由于在模式序列上,模式中的每个位置将具有相同次数的1和相同次数的0,因此模式被视为在时间和空间上恒定的。根据像素数据的低位数据(LDT)确定每个模式中包括的1和0的数量,低位数据越高,则模式中的1越多。在一些实现方案中,模式中包括的1的数量是由低位数据表示的数量。

例如,当LDT=1时,通过将1置于抖动模式的与抖动排序表格602的单元中的数值相对应的单元中,并且通过将0置于所有其他单元中,从而生成了抖动模式。例如,子帧计数(SFC)0位于表格602的左上角(图6)。因此,对于LDT=1和SFC=0,1位于模式702的左上角并且0位于模式702的所有其他单元中。相似地,对于LDT=1和SFC=1,1位于抖动排序表格602的第二列和第三行,并且因此抖动模式704在第二列且第三行中的单元中具有1以及在所有其他单元中为0。作为另一示例,对于LDT=1和SFC=15,15位于抖动排序表格602的第三列和第二行,并且因此抖动模式706在第三列且第二行中的单元中具有1,以及在所有其他单元中为0。

作为另一示例,当LDT=2时,通过在每个抖动模式中设置两个1(从抖动排序表格602中的位置0和1开始并且两个成对地迭代通过其他位置)从而生成了抖动模式。相似地,当LDT=15时,在抖动模式中设置15个1(从抖动排序表格602中的位置0~14开始并且迭代通过其他位置)。

抖动模式生成器可以在不生成完整模式的情况下生成用于抖动模式中的特定位置的值。例如,如果LDT=1,SFC=0,并且期望模式的左上角(水平计数0、垂直计数0处)的值,则可以通过定位与水平计数0、垂直计数0相对应的抖动排序表格602中的单元,从该单元调取数值(即,数值0),并且基于所调取的数值确定与LDT=1,SFC=0相对应的抖动模式在该位置应具有1还是0,由此生成该值。当LDT=1且SFC=0时,抖动模式在编号为0的位置具有1,并且因此,生成了值1。下文参照图8~12更加详细地描述该技术。

图8示出了针对给定像素生成控制信号hi_sel的示例性抖动模式生成器802。抖动模式生成器802可以按实时像素时钟速度生成控制信号。例如,当低位数据和子帧计数均为4位时,可以使用抖动模式生成器802。

抖动模式生成器802由两个乘法器804、RAM表格806(例如,诸如抖动排序表格602的抖动排序表格)和比较器808组成。两个乘法器804接收低位数据和子帧计数并且计算两个值,即子帧计数与低位数据相乘的值,以及子帧计数加1与低位数据相乘的值。在一些实现方案中,两个乘法器804输出积对2的低位数据的位数次幂取模。例如,如果低位数据是4位,则两个乘法器804可以输出积对16(24)取模。抖动模式生成器802将这两个值连同在RAM表格中的由水平计数和垂直计数指定的位置处存储的值Seq_No一起提供给比较器808。比较器随后使用内部逻辑确定输出1还是0。

图9是示出比较器808应用的用于确定控制信号hi_sel的值的逻辑示例的流程图。比较器执行如图9指示的一系列比较,并且基于比较结果选择0或1。

图10示出了当低位数据和子帧计数均为8位时使用的示例性抖动模式生成器1002。抖动模式生成器1002与抖动模式生成器802相似,不同之处在于抖动模式生成器1002包括两个RAM表格,一个RAM表格对应于水平和垂直计数的低位(RAM表格(高位)1006)并且一个RAM表格对应于水平和垂直计数的高位(RAM表格(低位)1008)。RAM表格(低位)1008可以是例如,上文参照图6描述的抖动排序表格602。RAM表格(高位)1006是类似的抖动排序表格。该系统从RAM表格(低位)1008生成Seq_No的低4位(例如,Seq_No的位3~0)并且从RAM表格(高位)1006生成Seq_No的高4位(例如,Seq_No的位7~4)。单独地对RAM表格(高位)1006和RAM表格(低位)1008寻址允许系统能够仅通过两个4×4抖动排序表格来实现16×16抖动排序表格的效果。

图11示出了RAM表格(高位)的两个示例,即表格1102和表格1104。

返回图10,抖动模式生成器1002将从RAM表格(高位)和RAM表格(低位)调取的值以及来自两个乘法器1004的输出提供给比较器1010,该比较器1010基于输入而输出0或1。例如,比较器1010可以使用图9中的流程图示出的逻辑来确定适当的输出。

图12示出了用于图10中示出的两个乘法器1004中的每个乘法器的示例性优化。使两个8位数值相乘的传统乘法器需要16位的输出。然而,抖动算法仅需要积的低8位。因此,乘法器不必使子帧计数的所有8位与低位数据的所有8位相乘,而是可以进行仅使用输出的8位的乘法。执行LDT×SFC的乘法器使子帧计数的最低有效位(例如,位0)与低位数据的所有位相乘,使子帧计数的下一最低有效位(例如,位1)与低位数据的仅7个最低有效位(即,使低位数据移位1位)相乘,使子帧计数的下一最低有效位(例如,位2)与低位数据的仅6个最低有效位(即,使低位数据移位2位)相乘,等等。如图12中所示,将乘法结果加在一起以获得最终结果,该结果等于子帧计数乘以低位数据对256取模。计算(SFC+1)×LDT的乘法器执行相似的运算,但是使用SFC+1替换子帧计数。

尽管图12示出了用于使两个8位数值相乘的乘法器优化,但是相似的优化可用于使其他尺寸的数值相乘的乘法器,例如上文参照图8描述的,使两个4位数值相乘的两个乘法器804。

图13示出了用于图像的每个色彩通道(红色、绿色和蓝色)的抖动处理器和来自这些抖动处理器的输出的示例。

每个色彩通道具有各自的抖动处理器(即,红色抖动处理器402、绿色抖动处理器1304和蓝色抖动处理器1306)。如上文参照图4描述的,例如,每个抖动处理器接收与用于其各自的通道的像素数据相对应的数据输入,生成多个抖动子帧。每个色彩通道抖动处理器输出用于帧的每个子帧的像素数据(例如,RDO1、RDO2、RDO3、GDO1、GDO2、GDO3和BDO1、BDO2、BDO3)。随后可以通过帧缓存器1308中的子帧对子帧数据进行排序。例如,子帧3的蓝色、绿色和红色输出数据(BDO3、GDO3、RDO3)在帧缓存器1308中被分组在一起,并且子帧1的蓝色、绿色和红色输出数据(BDO1、GDO1、RDO1)在帧缓存器1308中被分组在一起。

图14示出了具有由子帧标注的数据的示例性帧缓存器1402。帧缓存器中的最初三个条目1404对应于第一子帧,帧缓存器中的接下来三个条目1406对应于第二子帧,并且帧缓存器中的最后三个条目1408对应于第三子帧。帧缓存器中的数据被提供给显示设备,该显示设备在一部分时间中显示每个子帧,所述时间是正常显示与这些子帧对应的帧的时间的分数(即,1/子帧数量)。例如,如果通常以60赫兹的频率显示帧,则以180赫兹的频率显示每个子帧,从而对于帧的总体频率保持在60赫兹。

图15示出了用于通过显示与帧相对应的抖动子帧来显示数字图像的帧的示例性方法1500。为了方便,参照执行方法1500的图像处理器来描述示例性方法1500。图像处理器可以是例如,显示系统100、诸如抖动处理器110的显示系统100的子系统、或者另一显示系统。

例如,图像处理器从视频数据源102接收帧的数据(步骤1502)。在一些实现方案中,图像处理器可以使用视频解码器、视频数据处理器和色彩查找表格中的一个或多个来处理帧数据。

图像处理器确定用于帧的两个或更多个抖动模式(步骤1504)。如上文参照图5~12描述的,图像处理器可以例如,通过确定用于帧中的每个像素的抖动模式值来确定抖动模式。在一些实现方案中,抖动模式对应于帧的帧计数和为该帧生成的抖动子帧。在一些实现方案中,从例如如图6中所示的抖动排序表格生成预定的抖动模式。在可选的实现方案中,从存储器中存储的一系列抖动模式(例如图7中示出的模式系列)中选择预定的抖动模式。

图像处理器将每个抖动模式应用于帧,得到了抖动子帧序列(步骤1506)。在一些实现方案中,例如,如上文参照图5描述的,由许多个抖动子处理器应用用于每个像素的抖动模式值,每个抖动子处理器对应于一个抖动子帧。在可选的实现方案中,单个抖动子处理器可以例如,通过顺序地将不同的抖动模式应用于帧,由此生成多个子帧。

图像处理器随后例如,通过将抖动子帧数据存储在帧缓存器中,使用脉冲宽度调制器从帧缓存器生成位平面数据,并且将位平面数据提供给显示设备,从而顺序地显示抖动子帧(步骤1508)。显示抖动子帧的序列取代显示帧。

除了减少运动轮廓和抖动之外,由于使用子帧增加了显示色彩的频率,因此减小了显示任何一种色彩的周期,所以上文参照图1~13描述的子帧抖动可以帮助减少如上文参照图2描述的图像中的色乱。可以通过将像素数据位分组并且将像素数据重新排序以散置与不同色彩通道相对应的像素数据子组,进一步减少显示任何色彩的周期,由此进一步减少了色乱。下文参照图16~21讨论了用于对像素数据重新排序的技术。这些技术可以例如,由不执行子帧抖动的图像处理器用作单独的优化,或者与上文描述的子帧的生成相结合地使用。

图16示出了对像素数据重新排序和分组以减少色乱的示例。一般说来,像素数据是描述用于给定色彩通道和给定像素的亮度值的一系列位。基于这些位的有效性对这些位排序(例如,从最高有效到最低有效或者从最低有效到最高有效)。每个位对应于用于图像帧的不同的位平面。

典型的显示系统依次投射对于给定的色彩通道的与像素数据中的每个像素相对应的光。例如,典型的显示系统根据诸如帧缓存器1602的帧缓存器来显示像素,该帧缓存器存储一起作为用于红色通道的像素数据的三个红色位(RB0、RB1、RB2),存储一起作为用于绿色通道的像素数据的三个绿色位(GB0、GB1、GB2),并且存储一起作为用于蓝色通道的像素数据的三个蓝色位(BB0、BB1、BB2)。系统顺序从帧缓存器调取数据,得到对应于所有红色位的光的显示,随后是对应于所有绿色位的光的显示,并且随后是对应于所有蓝色位的光的显示。

与所有红色位、所有绿色位和所有蓝色位相对应的光的显示通过引发可以由人眼更容易地检测到的红色、绿色和蓝色光的相对长的闪光,从而增加了色乱效果。通过使一个色彩通道的位的显示与另一色彩通道的位的显示分离,例如,通过识别用于像素数据的位的子组(每个子组包括一个或更多个位)并且基于子组而非仅仅色彩通道来对像素数据排序,可以减少该色乱效果。

例如,在图16中,系统将位BB0和BB1分组为子组B1,将位BB2分组为子组B0,将位GB0和GB1分组为子组G1,等等。系统随后将用于每个子组的像素数据一起存储在分组帧缓存器1604中。例如,用于子组1(B1、G1和R1)的像素数据被一起存储在分组帧缓存器1604中。系统随后可以将来自分组帧缓存器的位平面数据提供给显示设备,该显示设备将顺序显示每个色彩通道的像素数据部分。使每种色彩显示较短的时间减少了色乱效果。

可选地,系统可以按照传统的顺序存储数据(例如,如帧缓存器1602中所示)并且按照分组帧缓存器1604中说明的顺序向显示设备提供数据。例如,脉冲宽度调制器可以适当地对数据重新排序。

尽管图16示出了像素数据的示例性分组和重新排序,但是也可以使用其他的数据分组和排序。在一些实现方案中,选择分组以尝试使与每个组相对应的光的显示时间量均衡。

图17示出了根据图16中示出的分组而分组的来自图13的抖动处理器的输出的示例。

与图13中示出的帧缓存器1308相反,图17中的分组帧缓存器1708存储用于每个色彩通道的分组像素数据。例如,系统将用于第一红色子帧RDO1的数据输出分为R11和R10(与图16中示出的示例中的R1和R0相对应的子组),并且系统将用于第三绿色子帧GDO3的数据输出分为G31和G30(与图16中示出的示例中的G1和G0相对应)。基于子帧和子帧中的子组对分组帧缓存器1708中的像素数据排序。尽管图17示出了已按照新的顺序存储在帧缓存器中的数据,但是通过将数据存储在图13中示出的帧缓存器1308中,但是根据分组帧缓存器1708中示出的顺序向显示设备提供数据,可以实现相同的效果。例如,脉冲宽度调制器可以适当地对数据重新排序。

图18示出了在对像素数据分组之前将像素数据的加权位划分为多个位的示例。

一般说来,像素数据位在其对应于加权位平面(例如二进制加权位平面)的情况下被加权。图18中示出的像素数据中的每个位对应于二进制加权位平面序列中的一个位平面,并且具有与位平面的权重相对应的权重。像素数据位0对应于具有权重1的位平面并且因此具有权重1;像素数据位1具有权重2;像素数据位2具有权重4;像素数据位3具有权重8;像素数据位4具有权重16;像素数据位5具有权重32;并且像素数据位6具有权重64。

通过分配给位的权重来限制图16和17中示出的分组具有的色乱的效果。红色、绿色和蓝色光将总是被至少显示与最高有效位的权重相对应的时间段。然而,如果在将位分组之前将这些位划分为多个划分位,则光可以被显示更短的时间段并且可以进一步减少色乱。

如图18中所示,系统可以将像素数据的高有效位(例如,位4~6)划分为子位。例如,像素数据位4被划分为2个子像素数据位(子位4和5)并且像素数据位6被划分为4个子位(子位8~11)。像素数据的低有效位未被划分。尽管图18仅示出了划分高有效位,但是在可选的实现方案中,其他位被划分。在一些实现方案中,位必须具有至少为1的权重以便于被划分。

系统随后例如,通过将子位所对应的父像素数据位的权重除以对于父位的子位的总数,来计算用于每个子位的划分权重。还可以使用用于计算划分权重的其他算法,只要对于给定父位的所有划分位的划分权重合计为父位的未划分权重。

一旦系统已划分像素数据并且确定用于每个划分位的划分权重,则系统对划分像素数据进行分组。可以使用各种分组方法。在一些实现方案中,具有较高权重的位与具有较低权重的位一起分组,以适当地均衡分配给每个组的权重。例如,在图18中,低有效位与高有效位一起分组;具体地,隔开划分位的总数的一半的位被一起分组(例如,划分位0和6被一起分组到组0中,而划分位2和8被一起分组到组2中)。然而,还可以使用其他分组算法,例如,上文参照图16描述的分组。在一些实现方案中,至少一个组由单个位(或者单个划分位)构成。

图19示出了根据上文参照图18描述的分组对来自红色、绿色和蓝色抖动处理器的输出进行分组的示例。

如图19中所示,红色抖动处理器1902、绿色抖动处理器1904和蓝色抖动处理器1906均获取各自的用于给定帧的数据输入,并且生成用于给定帧的数据输出。系统使用上文参照图18描述的算法对来自每个抖动处理器的输出进行划分和分组,并且将每个得到的像素数据子组存储在帧缓存器中的适当的位置。例如,来自红色抖动处理器1902的输出(RDO)被分为六个子组,即R5、R4、R3、R2、R1和R0,并且每个子组与来自绿色抖动处理器1904和蓝色抖动处理器1906的相应的子组输出一起存储在帧缓存器1908中。抖动处理器可以是传统的抖动处理器,或者是如上文描述的多个子帧抖动处理器。使用上文参照图18描述的算法对来自每个抖动处理器的数据输出进行划分和分组。用于每个色彩通道和每个子组的像素数据随后被一起存储在帧缓存器1908中。帧缓存器中的数据用于生成由显示设备使用的位平面数据。

尽管图19示出了已按照新的顺序存储在帧缓存器中的数据,但是通过将数据存储在传统的帧缓存器中并且按照新的顺序访问帧缓存器中的数据的位(包括,每当子位以该顺序出现时,调取用于该子位的划分权重以及用于父位的值),可以实现相同的效果。

图20示出了用于将像素数据分组为子组并且对像素数据重新排序的示例性方法2000。为了简便,将参照执行方法2000的系统来描述示例性方法2000。该系统可以是例如,显示系统100或者另一显示系统。

系统接收用于图像的像素和色彩通道的像素数据(步骤2002)。如上文参照图17和19描述的,例如,可以从对应于每个色彩通道的抖动处理器接收像素数据。像素数据可以具有各种数量的位,例如,4、5或6个位。

系统将用于每个色彩通道的像素数据分组为像素数据子组(步骤2004)。每个子组包括像素数据的一个或更多个位。可以使用各种分组技术,例如,上文参照图16描述的算法。在一些实现方案中,在对像素数据的相应位分组之前,例如,如上文参照图18描述的,通过对这些位进行划分,生成用于多个位的新的顺序并且根据该新的顺序对位进行分组,从而对像素数据位进行划分。

系统根据用于像素数据子组的序列来显示像素(步骤2006)。例如,如上文参照图16描述的,该序列使用于每个给定色彩通道的每对子组隔开用于另一色彩通道的至少一个子组。例如,如上文参照图17和19描述的,该序列可以基于其子组对色彩通道的子组进行分组。

系统通过从分组像素数据的序列生成位平面数据并且将该位平面数据提供给显示设备来显示像素。在一些实现方案中,系统通过从其中位已被分组的帧缓存器顺序调取像素数据来显示像素。在可选的实现方案中,系统通过按照由子组和序列确定的顺序从传统的帧缓存器调取像素数据来显示像素。例如,脉冲宽度调制器可以适当地对数据重新排序。

图21示出了用于划分像素数据位并且对位重新排序的示例性方法2100。为了简便,将参照执行方法2100的系统来描述示例性方法2100。该系统可以是例如,显示系统100或者另一显示系统。

系统接收用于像素和色彩通道的像素数据(步骤2102)。像素数据包括初始位集合,其中每个位具有值(例如,1或0)和权重。如上文参照图17和19描述的,例如,可以从对应于每个色彩通道的抖动处理器接收像素数据。

系统生成了经修改的多个位(步骤2104)。例如,如上文参照图18描述的,经修改的多个位对应于初始位集合,其中一些父位被子位替换。

系统随后根据经修改的多个位和顺序来显示像素(步骤2106)。例如,如上文参照图18描述的,通过将具有较高权重的位和具有较低权重的位一起分组,该顺序可以使经修改的多个位中的权重高于第一阈值的两个位隔开权重低于第二阈值的至少一个位(例如,可以使具有较高权重的位隔开具有较低权重的至少一个位)。例如,在图18中,在由分组像素数据指示的顺序中,子位6和7被子位1隔开。子位6和7均具有权重16并且子位1具有权重1。因此,该顺序使具有高于第一阈值(阈值15)的权重的两个位被具有低于第二阈值(阈值2)的位隔开。作为另一示例,顺序相似地使子位6和11(具有高于阈值15的权重)被子位1(具有低于阈值2的权重)以及该顺序中的若干个其他位隔开。系统可以例如,经验地选择第一阈值和第二阈值。第一和第二阈值可以是相同的数值,或者可以是不同的数值。顺序还可以包括用于其他色彩通道的位并且例如,如上文参照图19描述的,可以将来自不同色彩通道的位设置为在该顺序中彼此邻接。在一些实现方案中,通过按照顺序将经修改的多个位存储在帧缓存器中,利用脉冲宽度调制器顺序处理帧缓存器中的位,并且将得到的位平面提供给显示设备,系统由此根据经修改的多个位和顺序来显示像素。在可选的实现方案中,随着显示设备需要经修改的多个位,系统将未经修改的像素数据存储在帧缓存器中,并且根据顺序访问所存储的像素数据,因此生成经修改的多个位。例如,脉冲宽度调制器可以适当地对数据重新排序。

本发明的实施例以及说明书中描述的操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本发明中公开的结构及其结构性等同物,或者通过一个或更多个它们的组合来实现。本发明的实施例可以被实现为在计算机存储介质上编码的一个或更多个计算机程序,即计算机程序指令的一个或更多个模块,用于由数据处理装置执行或者控制数据处理装置的操作。计算机存储介质可以是计算机可读存储器件、计算机可读存储基质、随机或串行存取存储器阵列或器件、或者它们的一个或更多个组合,或者可以包括在它们中。而且,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是被编码为人工生成的传播信号的计算机程序指令的源或目标。计算机存储介质还可以是一个或更多个分立的物理部件或介质(例如,多个CD、盘或者其他存储器件)或者包括在其中。

说明书中描述的操作可被实现为由数据处理装置针对存储在一个或更多个计算机可读存储器件上或者从其他源接收的数据执行的操作。

术语“数据处理装置”涵盖所有类别的用于处理数据的装置、设备和机器,包括例如,可编程处理器、数字信号处理器、计算机、芯片上系统、或者多个前述各项或其组合。该装置可以包括专用的逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件之外,该装置还包括创建用于所讨论的计算机程序的执行环境的代码,例如,构成处理器固件、协议堆栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者一个或更多个它们的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。

计算机程序(还被称为程序、软件、软件应用程序、脚本或代码)可被编写为任何形式的编程语言,包括编译或解释语言、声明性或过程性语言,并且可以部署为任何形式,包括作为单独的程序或者作为模块、部件、子程序、对象或者适用于计算环境中的其他单元。计算机程序可以,但非必需,对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文件中的一个或更多个脚本)的文件的部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或更多个模块、子程序或代码部分的文件)中。计算机程序可被部署为在一个计算机上或者在位于一个地点或者分布跨越多个地点并通过通信网络互连的多个计算机上执行。

说明书中描述的过程和逻辑流程可以由执行一个或更多个计算机程序的一个或更多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。这些过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。

适用于执行计算机程序的处理器包括例如,通用和专用微处理器,以及任何类别的数字计算机的任何一个或更多个处理器,包括例如,数字信号处理器。通常,处理器将从只读存储器或随机存取存储器或此两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或更多个存储器器件。通常,计算机还将包括用于存储数据的一个或更多个大容量存储器件,例如,磁盘、磁光盘或光盘,或者操作耦合以从这些大容量存储器件接收数据或者向其传输数据,或者兼有这两种方式。然而,计算机不需要具有这些器件。而且,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收机、或者便携式存储设备(例如,通用串行总线(USB)闪速驱动器)等。适用于存储计算机程序指令和数据的器件包括所有形式的非易失性存储器、介质和存储器器件,包括例如,半导体存储器器件,例如,EPROM、EEPROM和闪速存储器器件;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或者并入专用逻辑电路。

尽管说明书包含许多具体的实现方案细节,但是它们不应被解释为对本发明的范围或者要求保护的范围的限制,而是应被解释为本发明的特定实施例所特有的特征的描述。在说明书中在分立实施例的背景下描述的某些特征也可被组合实现在单个实施例中。相反地,单个实施例的背景下描述的各种特征也可以分立地或者以任何适当的子组合在多个实施例中实现。而且,尽管上文可以将特征描述为在某些组合中发挥作用并且甚至在最初时如此要求保护,但是来自要求保护的组合的一个或更多个特征可以在一些情况中从该组合中排除,并且要求保护的组合可以指向子组合或者子组合的变化。

相似地,尽管在附图中以特定顺序示出了操作,但是这不应被理解为这些操作需要按所示出的特定顺序或者连续的顺序执行,或者需要执行所有所示出的操作以实现所期望的结果。在某些环境中,多任务和并行处理可以是有利的。而且,上文描述的实施例中的各种系统部件的分隔不应被解释为在所有实施例中均需要该分隔,并且应当理解,所描述的程序部件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。

因此,已描述了本发明的特定实施例。其他实施例在所附权利要求的范围内。在一些情况中,权利要求中叙述的动作可以按不同的顺序执行并且仍实现所期望的结果。此外,附图中示出的过程不一定需要所示出的特定顺序或者连续的顺序以实现所期望的结果。在某些实现方案中,多任务和并行处理可以是有利的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号