本申请主张2005年4月4日提交的、发明名称为“INPROVED METHODSAND SYSTEMS FOR BY-PASSING SUBPIXEL RENDERING IN DISPLAYSYSTEMS”的美国临时申请60/668,578以及2006年3月29日提交的、发明名称为“PRE-SUBPIXEL RENDERED IMAGE PROCESSING IN DISPLAYSYSTEMS”的美国临时申请60/743,940的优先权,这里通过参考而引入其整体。
以下权利共有的申请与本申请有关,这里通过参考而引入:(1)美国专利申请第60/668,510号,名称为“EFFICIENT MEMORY STRUCTURE FORDISPLAY SYSTEM WITH NOVEL SUBPIXEL STRUCTURES”;(2)美国专利申请第60/668,511号,名称为“SYSTEMS AND METHODS FOR IMPLEMTINGLOW-COST GAMUT MAPPING ALGORITHMS”;以及(3)美国专利申请第60/668,512号,名称为“SYSTEMS AND METHODS FOR IMPLEMTINGIMPROVED GAMUT MAPPING ALGORITHMS”。
具体实施方式
图1是为电子显示器10执行图像数据集69的子像素着色的显示器系统150的框图,该电子显示器10采用如上述参考的公开专利申请中揭示的那些的子像素布局,包括,例如,‘992和‘575申请中的。电子设备80可产生图像数据集69,或者它可以从其它源接收图像数据集,或者电子设备80可以从存储器81中提取图像数据集69。电子设备80的例子包括计算机、电视接收机、视频播放器、数字蜂窝电话,或其它可以输出并播放图像的类似电子设备。存储器81的例子包括任何的磁带、随机存取存储器(RAM),只读存储器(ROM),光盘(CD),数字视频光盘(DVD),灵活磁盘(“软盘”),硬磁驱动器(硬盘),或其它任何合适的存储介质。
继续参考图1,图像数据集69通过数据通道83发送到子像素着色(SPR)单元70。子像素着色(SPR)单元70包括适于执行上述美国公开申请中的多个(例如‘058和‘906申请)中描述的子像素着色技术的硬件和/或软件的结合。
SPR单元70执行的子像素着色操作的结果是图像数据集72,其通过数据通道85发送到电子显示器10来在上面产生结果图像。对于其中和电子显示器10一起包括SPR单元70的显示器系统150,数据通道85包括在显示器10的电子部件中。显示器系统150的其它实现可提供数据通道85的其它配置。例如,数据通道85可能包括计算机和平板显示器监视器之间的数字视频接口(DVI)发送器/接收器对,将也包括平板显示器中的电子电路。数据通道85的还有的其它配置包括计算机和平板显示器监视器之间的模拟发送器/接收器对,其也可包括平板显示器中的电子部件。模拟系统通常用于驱动模拟阴极射线管监视器(CRT)。最近,液晶显示器监视器已经使用模-数(D/A)转换器来允许它接收和播放模拟信号。
图2描述了作为图1的图像数据集72的例子的、根据子像素着色单元70的一个实施例产生的图像数据集220。图像数据集72的其它例子在上述多个美国专利公开申请中提到。图2表明用于在具有子像素布局的显示器10上着色红色、绿色和蓝色子像素的数据值,在图2中作为R,G和B显示。注意图2表明以对应于显示器10上特定的子像素布局(图未示)的样本次序放置的R,G和B子像素数据值,这允许直接分配到显示器10的列驱动器。通常,显示器10将通常要求R,G和B子像素数据值按照对应于它的子像素布局的样本次序放置。然而,如同在‘297申请中提到到的,可以排列图像数据集220的R,G和B子像素数据值的样本次序,使得方便输入到其它处理,例如压缩操作,然后恢复到特定显示器需要的列驱动器样本次序。
继续参考图2,在对应于由作为在限定的区域内的三元组代表的(其中每个三元组表示显示的一色彩)传统红、绿和蓝(RGB)数据值组成的原始数据集(未示出)的位置,示出了R,G和B子像素数据值。在图像数据集220中,相比原始数据集有“丢失点”。例如,可解释为代表图像中一“像素”的限定区域230,包括表示“红色”(以R表示)和“蓝色”(以B表示)的数据值,但是缺少“绿色”的数据值。原因是显示器系统100中采用的子像素着色技术通常产生少于输入图像数据集69中包含的二进制比特的图像数据集。
图3是显示器系统330的框图,该系统也为采用子像素布局的电子显示器10执行图像数据集69的子像素着色。图像数据集69通过数据通道83发送至子像素着色(SPR)单元70。如参考图1所描述的,子像素着色(SPR)单元70包括适用于执行上述多个美国公开申请中描述的子像素着色技术的硬件和/或软件的组合。SPR单元70执行的子像素着色操作的结果是图像数据集340。图像数据集340可和图3所示的显示器系统150的SPR单元70产生的图像数据集72类似或相同,但是和显示器系统150不同,图像数据集340存储在存储器单元350,用于通过数据通道85发送至电子显示器10来在上面产生结果图像。替代地,将图像数据集340提供给发送单元360,通过数据通道85发送。存储器单元350或者发送单元360可与SPR单元70包括在一起,或者可以是分离的组件。数据通道85和电子显示器10在图中由虚线表示,以表示这些组件不是显示器系统330的必不可少的组成部分。为了讨论方便,图像数据集340称为“预子像素着色图像”。预子像素着色(P-SPR)图像数据是由子像素着色操作处理过并在显示之前存储或发送的图像数据。
美国专利申请公开2004/0196297 A1,标题为“IMAGE DATA SET WITHEMBEDDED PRE-SUBPIXEL RENDERED IMAGE”(后文中以‘297申请表示)公布于2004年10月7日,揭示了产生和显示预子像素着色图像的各种图像处理技术。预子像素着色图像可直接发送至能够显示子像素着色图像的显示器,例如图1或3所示的显示器10。也可存储预子像素着色图像用于以后向显示器发送和输出。存储和发送预子像素着色图像的一个优点在于由于不包括SPR单元,可以使显示器设备的价格降低。例如,其中多个应用于分布式系统中的多个设备可从单个源处接收经过预子像素着色的图像。从上述讨论可得知另一优点,其中预子像素着色数据比原始输入数据集包含的二进制比特要少。从而预子像素着色数据集将需要较少的存储器来存储和较少的带宽来发送。
‘297申请进一步揭示了将预子像素着色图像嵌入到图像数据集和将预子像素着色图像从图像数据集提取出来的不同的技术。例如,在图4的框图中,输入图像数据集69可输入到功能单元,即图4中的预子像素着色单元440,其能够产生输入图像数据集69的一部分的预子像素着色图像460并且能够将预子像素着色图像460嵌入到图像数据集450中。
图13B描述了图像数据集1300,其是图4的图像数据集450的一个例子,包括预子像素着色图像1320。可认为图像数据集1300包括两个图像数据子集:预子像素着色图像1320、和输入图像数据集1300中未包含预子像素着色图像数据的剩余部分。可认为预子像素着色图像1320包括两个数据集:一个数据集包括色彩值,由图中作为R,G和B的示例表示,当在显示器上着色时就会产生由预子像素着色图像1320表示的图像。
包括在预子像素着色图像1320中的第二数据集包括用于标记预子像素着色图像1320的标记码。在图13B中,标记码是一组数据值“65”、“27”和“207”,这些数据值共同代表了的色键(color key),用于标记R,G和B数据值的范围以确定图像数据集1300中哪些数据值是预子像素着色图像的一部分。如‘297申请中讨论的那样,如果输出图像要在不具有检测包括预子像素着色图像1320的输入图像数据集1300的那部分的能力的显示器上着色,可以选择色键以避免或最小化输出图像的任何失真。‘297申请中的讨论提到可能有其它的技术用于标记R,G和B数据值的范围以确定它们是预子像素着色图像的一部分,并且将这些技术确定为类似于本领域内称之为“水印(watermarking)”的图像处理技术。
通常,预子像素着色图像1320和/或组成传统图像数据集的图像数据集1300的剩余部分,可在其中嵌入子像素着色系统和/或算法能够辨认或解码的标记码,也称为“水印”。当子像素着色系统检测到水印的存在时,它知道图像的子集是可提取并且不需要进一步的处理来显示的预子像素着色图像。上述水印可利用信息隐藏领域中用于隐藏图像数据集中的数据的技术,从而当着色图像数据集时,数据修改对人来说是不可感知的,但隐藏数据能够被机器解码。
图像数据集1300中的剩余数据由作为传统R,G和B数据三元组(图中未用下划线而将其与预子像素着色数据区别开来)表示的、可以代表图1的输入图像数据集69的色彩值组成。当将例如图像数据集1300的图像数据集提供给图1的显示器系统150时,包括预子像素着色图像1320的图像数据集1300的那部分一旦确定出来,则不需由SPR单元70处理并可直接用于在电子显示器10上显示或者提供给其它处理单元。‘297申请进一步揭示了用于在例如图像数据集1300的、包括预子像素着色图像的输入图像数据集中检测图像数据的不同技术。
图5描述了包括子像素着色操作的显示器系统100的功能组件。通过显示器系统100的数据流由带箭头的加粗线表示。为了下述讨论的方便,用于在包括输入伽马操作102、GMA操作104、行缓存器106、SPR操作108和输出伽马操作110的系统100中所示的RGB输入数据的数据通道,在下文中称为“SPR数据通道”。接下来将会依次简要描述这些已知操作的每个。该显示器系统实施例的其它信息可在上述几个参考的公开专利申请中找到。参阅,例如,美国专利公开号No.2005/0083352。在这些相关申请中的一些,SPR数据通道称为“色域管道”或者“伽马管道”。
输入电路向系统100提供RGB输入数据或其它输入数据格式。RGB输入数据接下来可输入到输入伽马操作102。操作102的输出继续前进到色域映射操作104(图5中标记为GMA)。通常色域映射操作104接收图像数据并在输入数据上执行任何必须或期望的色域映射操作。例如,如果图像处理系统输入RGB输入数据以在RGBW显示器面板上着色,为了使用显示器的白色(W)基色,就会需要映射操作。这一操作在其中输入数据以输出色彩空间中的不同基色数量从一个色彩空间进入到另一色彩空间的任一通用多基色显示器系统中可能也是需要的。此外,可以使用GMA处理其中可以认为输入色彩数据在输出显示空间中的“色域外”的情况。如果显示器系统不执行该色域映射转换,就省略GMA操作104。
继续参考图5,色域映射操作104输出的中间图像数据存储在行缓存器106中。行缓存器106提供图像数据给子像素着色操作(SPR)108,用于在需要数据时进一步处理。例如,执行区域重抽样方案(如上述某些专利申请中揭示的方案)的SPR通常可以采用围绕讨论中的给定的图像数据点的3×3图像数据矩阵以进行区域重抽样。从而三个数据行输入到SPR108,用于执行可能包括邻域滤波步骤的子像素着色操作。SPR操作108之后,图像数据在从系统输出到显示器之前,可进行输出伽马操作110。
注意当将例如图13B所示图像数据集1300的图像数据集提供给图5所示的显示器系统100时,就会以和输入RGB数据同样的方式处理包括预子像素着色图像1320的图像数据集1300的那部分,使用预子像素着色图像数据的优势没有实现。实际上,如果以和输入RGB数据同样的方式处理预子像素着色图像1320,就会出现图像失真。为了实现使用预子像素着色图像数据的优点,该数据一旦确认就直接用于显示或可以提供给其它处理单元,也可旁路绕开由SPR和/或GMA进行的操作。
此外,在‘297申请中揭示的用于检测嵌入在图像数据集中的预子像素着色图像的实施例中,注意到包括以出现在传统RGB数据和预子像素着色图像数据边界的色键来标记的预子像素着色图像数据的像素,对于处理传统RGB色彩数据进行子像素着色的SPR操作可产生无效的色彩值。‘297申请揭示了以交替变换的(例如,偶/奇)标记的输入像素对来交换或者互换特定色彩值的技术。在某些应用中,通过对于就在标记的预子像素着色图像区域外的像素去除特殊检测或恢复的需求,这种“互换”会使得SPR硬件更易于设计。
图6描述了互换操作。图6描述了包括预子像素着色图像620的输入图像数据集600的一部分,图中只显示了620的一部分。预子像素着色图像620包括色彩值R,G和B,以黑体和下划线标记来显示,以将预子像素着色数据从要在显示之前输入到子像素着色操作的输入图像数据区别开。色键(65,27,207)是已用于标记作为预子像素着色的一部分的色彩数据值的标记码。色彩数据值可通过它们在图像数据集中的行和列的位置来提及。为了讨论的方便,指定图像数据集从图像左上方位置(0,0)处开始。在预子像素着色数据区域620,可以看到在预子像素着色图像620中的偶数行630中,“R”数据值602和参考号606指示的色键值“65”交替变化,而在奇数行640中参考号610的指示的色键值“65”和“R”数据值614交替变化。图6也描述了在偶数行630中由参考号604指示的色键值“27”和“G”数据值608交替变化,并且在奇数行640中“G”数据值612和参考号616指示的色键“27”交替变化。
继续参考图6,在预子像素着色图像数据620的偶数行630中,互换操作将“R”数据值602和参考号606指示的色键值“65”互换,将参考号604指示的色键值“27”和“G”数据值608互换。在预子像素着色图像数据620的奇数行640内,互换操作将参考号610指示的色键值“65”和“R”数据值614互换,调换与参考号616指示的色键值“27”交替变换的“G”数据值612。数据互换操作的结果是具有再次子像素着色图像数据720的图像数据集700。
‘297申请也讨论了可能适于预子像素着色的图像类型的例子。一个这样的例子涉及不同字体字符的成像。预子像素着色技术可用于产生包括特定字体的字符的“理想化”或者轮廓形式的高分辨率表示的图像数据集。这些预着色图像数据集可存储和嵌入在输入图像数据集中以根据需要使用。读者可参考‘297申请了解这一处理更详细的信息。
这一详细描述的剩余部分现在转到涉及预子像素着色的三个通常区域的讨论。这些中的第一个涉及处理嵌入到输入图像数据集中的预子像素着色图像数据的显示器系统的实施。第二点讨论涉及在不同情况下标记预子像素着色图像数据的适当色键的实施例,以及检测图像数据集中预子像素着色部分的其它方法。第三点讨论集中在预着色字符字形的处理。设计用于处理显示器系统100的预子像素着色图像数据的单独的数据通道(例如,旁路绕开机制)会考虑如何处理输入RGB数据,例如RGB数据处理的顺序,以及SPR操作108可能引入的时延。例如,要进行子像素着色的RGB数据值可能需要通过一系列行缓存器并且直到几个行时间之后才会出来。在有的系统,如果标记为已经经过预子像素着色的像素要旁路绕开SPR操作108,必须确认它们并在这个时间段存储起来,从而能够和在SPR操作108中进行预子像素着色的输入数据一起到达最后的显示操作。
处理预子像素着色图像用于显示
图7描述了采用嵌入到传统RGB图像数据的预子像素着色图像数据的检测的显示器系统的实施例。显示器系统200将带有以可检测的码标记的嵌入预子像素着色图像数据的传统RGB数据作为输入图像数据,该可检测的码区分经过预子像素着色的输入图像数据的部分或区域。在图7到图10中,为了简便起见,称预子像素着色图像数据为“P-SPR”数据。该实施例中P-SPR数据使用例如图6所示的数据互换技术;具有P-SPR数据的RGB输入以参考号201S标记,以表示P-SPR数据包括互换的数据;其它实施例显示以参考号201标记的具有P-SPR数据的RGB输入,以表示P-SPR数据不包括互换的数据。例如,在图13B,14B,15B和16B任一个中,示出了以色键数据标记的,并且包括交换或互换的数据值的,适用于输入到显示器系统200的P-SPR数据的例子,或者如图17A,18B,19B和20B任一个中的预子像素着色数据的部分中所示。
图7中的系统200描述了用于具有P-SPR数据201 S的RGB输入的SPR数据通道,其包括输入伽马操作102、GMA操作104、行缓存器106、SPR操作108和输出伽马操作110。系统200也描述了用于输入数据201S的第二数据通道,其包括确认代表可不需输入至SPR操作108就可直接显示的预子像素着色图像数据的输入数据201S的色彩数据值的P-SPR检测操作202S。
图7中,P-SPR检测操作以参考号202S标记,用于表示该操作能够检测包括互换的数据的P-SPR数据;该本说明书中别处的其它实施例显示以参考号202标记的P-SPR检测操作,以表示该P-SPR数据不包括互换的数据并且P-SPR检测操作不需检测这个。P-SPR检测操作202S检查输入图像色彩数据值来检测用于标记代表预子像素着色图像数据的输入数据201S的那部分的色键或其它码。对于图像位置中的每个输入色彩值,P-SPR检测操作202S设置P-SPR检测标志的值,来指示该位置处是否存在预子像素着色图像数据。
可设计P-SPR检测操作202S来检测标记P-SPR数据范围和位置的特定色键。也可设计P-SPR检测操作202S来从相关显示寄存器处接收色键数据值,来提供从不同的源接收P-SPR数据的灵活性。例如,下文将会更详尽地描述,可根据色彩数据的比特深度,最佳地选择色键数据值来标记P-SPR数据,如下文表1中显示并参考它进行讨论的那样,在该情况中表1中的数据值可装载到相关的显示寄存器供P-SPR检测操作202S使用。P-SPR检测操作202S的操作的例子将在下文更详细地描述。
继续参考图7,经过P-SPR检测操作202S检测P-SPR数据位置的、具有嵌入P-SPR数据201S的RGB输入数据在图7中标记为P-SPR数据207。由于行缓存器106引入的输入数据201S中存在时延,P-SPR数据207和P-SPR检测标志205必须延迟相似的时间量。该延迟通过在行延迟缓存器206中缓存P-SPR数据207来实现,同时沿着SPR数据通道前进的输入RGB和P-SPR数据201 S完成处理。在和来自SPR数据通道的子像素着色图像数据一起输出之前,P-SPR数据207输入到色彩互换操作204,其中当预子像素着色数据初始地嵌入到输入数据201S时和色键值互换的预子像素着色色彩值被交换到它们在数据流中原先的位置,来确保输出正确的色彩值到输出显示器上的每个像素位置。
作为操作204的输出的互换的数据,和P-SPR使能信号209一起,以及SPR数据通道产生的数据,输入到图7中标注为“MUX”208的选择操作208。P-SPR使能信号209起到开关的作用,来打开或关闭P-SPR检测,来进一步增加显示器的操作的灵活性。在这时候,可代表传统RGB数据和P-SPR数据两者的输入数据201S已沿着SPR数据通道行进,并且只有从该通道中形成的传统RGB数据才包括用于显示或者进一步处理的正确色彩数据值。当P-SPR使能信号209为“开”时,选择操作208根据P-SPR检测标志205的值,为每个输出像素位置,在来自于SPR数据通道的图像数据和来自于模块204的预子像素着色数据之间之间选择,来产生用于图像的显示或者用于将输出数据203的呈递到进一步的处理操作的SPR输出数据203。
图7所示的实施例表明预子像素着色数据的处理不包括输入伽马102和输出伽马108的操作,因为只有要在SPR模块中进行子像素着色的数据才包括那些处理步骤。然而,本领域技术人员会认识到可以修改图7所示的数据通道,来发送输入数据201的P-SPR部分通过输入伽马102和输出伽马108操作。图7所示的实施例也描述了包括用于将输入RGB数据转换为在RGBW色彩空间中确定的数据加上单独的亮度或发光度(L)数据的GMA操作104的显示器系统。注意,在某些上下文中,亮度也可以参考为Y值。与此转换以及这里描述的显示系统中使用的亮度的计算有关更多信息可以在美国专利申请No.2005/0083352中发现。需要理解到色域外色彩的色彩空间转换或者改变只通过示例进行描述,在不执行该色域映射转换的显示器系统中,可以省略GMA操作104。
图8描述了采用嵌入到传统RGB图像数据中的预子像素着色图像数据的检测的显示器系统的另一实施例。显示器系统300将具有以可检测的码标记的嵌入预子像素着色图像数据的传统RGB数据作为输入图像数据,该可检测的码区分经过预子像素着色的输入图像数据的部分或区域。
图8所示显示器系统的特征是它接收其中嵌入的预子像素着色色彩数据不包括色键数据互换的输入色彩数据。这就意味着输入色彩数据的源产生者不需提供“互换的”数据。从而可用‘297申请中讨论和描述的色键数据标记预子像素着色图像数据,或者如图13A或17B中的P-SPR图像部分1324所描绘的,其描绘了以没有数据互换的色键值,或者以任何其它合适的方式标记的P-SPR数据。图7和8中的实施例的不同之处在于(1)图8中实施例的预子像素着色数据不需要如图6所示技术的输入数据201中的数据互换;这通过以参考号201标记RGB和P-SPR数据,以参考号202标记P-SPR检测操作,来将这些元件从图7中的相似元件区别开而显示在图中;(2)色彩数据和色键互换在偶/奇互换模块203和303中完成;以及(3)图8提供了允许RGB和P-SPR数据201共享SPR行缓存器304的、检测预子像素着色图像数据的实施。为了实现共享SPR行缓存器304,必须标记从GMA操作104输出的色彩值或者表示从P-SPR检测操作202输出的预子像素着色图像数据的色彩值,来区分不同的数据集。图8描述了其中标记由P-SPR检测操作202输出的预子像素着色图像数据的实施。
图8所示的显示器系统300描述了和图7所示显示器系统200相同的SPR数据通道,但是增加了图8中以在将沿着SPR数据通道前进的输入数据存储到行缓存器304中之前的“MUX1”表示的选择操作302。输入伽马操作102和色域映射操作104对于沿该通道行进的P-SPR输入数据产生具有无效的色彩值的中间色彩数据,因此这些数据不需要存储。选择操作302通过在从GMA操作104输出的RGB分量数据和沿着第二P-SPR数据通道处理的P-SPR数据207之间选择,起到确保要由SPR操作108处理的有效色彩数据存储在行缓存器304中。RGB输入和沿着P-SPR数据通道进行处理的P-SPR数据207首先由P-SPR检测操作202处理,来检测用于标记代表预子像素着色图像数据的输入数据201的那部分的色键或其它码。对于图像位置中的每个输入色彩值,P-SPR检测操作202设置P-SPR检测标志205的值,来指示该位置处是否存在预子像素着色图像数据,并且产生P-SPR数据207。
继续参考图8,P-SPR数据207继续行进到色彩互换操作303来执行上面和图6一起描述的数据交换操作。如上所述,嵌入在输入RGB和P-SPR数据201内的P-SPR数据不包括用于标记目的的色键数据值的任何互换。然而,上面也提到,位于RGB输入数据边界的P-SPR数据中的色键数据值会有害地影响到对于那些边界RGB数据的SPR操作108的输出,上面和图6一起描述以及‘297申请中的互换操作防止了这些不良的影响。从而图8的显示器系统300设计用于在数据存储到行缓存器304中并且继而输入到SPR操作108之前执行数据互换操作。通过色彩互换操作303的P-SPR数据207和P-SPR检测标志205一起,以及沿着SPR数据通道通过GMA操作104的数据,输入到选择操作302。选择操作302根据P-SPR检测标志205的值选择GMA输出色彩值或P-SPR色彩值以在行缓存器304中存储,其中每个P-SPR色彩值和在SPR缓存器304的行延迟缓存器中的P-SPR检测标志205一起存储。
继续参考图8,行缓存器输出包括P-SPR检测标志205的数据沿着SPR和P-SPR两个数据通道行进,完成这两种类型数据的处理。行缓存器304向SPR操作1 08提供色彩数据值用于子像素着色,从SPR操作108输出的子像素着色数据继续通过输出伽马操作110。行缓存器304也向在P-SPR数据通道上的色彩互换操作204提供色彩数据值。色彩互换操作204将色彩互换操作303中的发生的色键值的数据互换逆转,以准备用于正确地输出到显示器的P-SPR数据。来自输出伽马操作110和来自色彩互换操作204的数据前进到图8中以“MUX2”表示的选择操作306。当P-SPR使能信号209指示P-SPR功能可用时,选择操作306根据P-SPR检测标志205的值在输出伽马色彩值和P-SPR色彩值之间选择,来产生SPR输出数据203。
如上面参考图7中描述的实施例所提到的,可以修改图8中描述的数据通道来同样地发送输入数据201的P-SPR部分通过输入伽马102和输出伽马108操作。也需了解可以修改图8中描述的数据通道来在不执行到色域外色彩的色彩空间转换或改变的显示器系统中省略GMA操作104。
图9描述了显示器系统400,其提供了检测和处理预子像素着色图像数据的另一实施。如上所述,GMA操作104将输入RGB数据转换为RGBW或者其它色彩空间中表示的色彩数据。GMA操作104也可对每个输入RGB三元组产生单独的亮度或发光度的值,并且将该亮度值L传送给SPR操作108。亮度值L以特定数量n比特的数据表示。当n-1比特的数据分辨率满足SPR操作108并且产生的图像对于显示器的观察者是知觉上可以接受的——即当使用n-1比特亮度数据时输出图像质量在视觉上就如同使用n比特亮度数据那样可以接受时——显示器系统400使用亮度值L的一个比特存储P-SPR检测标志205,并不需要特定内存存储P-SPR检测标志205。
图9所示的显示器系统400的数据通道描述了对图8所示的显示器系统300的实施中数据通道的修改,并且处理具有嵌入P-SPR数据201的、其中P-SPR数据没有发生数据互换的输入RGB。特别地,显示器系统400提供用于使用亮度值L的一个比特,为已由P-SPR检测操作202确认为预子像素着色图像数据的色彩数据值承载P-SPR检测标志205的电路和处理。图9中标注为MUX1的选择操作302,基于标志预子像素着色图像色彩数据的P-SPR检测标志205,选择GMA输出色彩值或预子像素着色色彩值存储到行缓存器404中。
每个MUX1 302的输出色彩的亮度值408沿着单独数据通道403行进,从而亮度数据408的一个比特(图9中描述为数据比特406或者比特0)和P-SPR检测标志205一起,输入到指定为图9中的MUX3的选择操作402。如果在显示器400中预子像素着色处理由P-SPR使能信号209使能,在将比特406存储到行缓存器404之前,MUX3 402将使用比特406标记由P-SPR检测操作202检测到的作为预子像素着色图像数据207的一部分的那些色彩数据值。如果禁止预子像素着色数据处理,数据比特406不受改变地通过MUX3 402并且亮度值L保持完全精度。用这种方式使用亮度值L的一个比特就不需要图8所示的显示器系统300中的一比特行延迟缓存器。
继续参考图9,包括承载P-SPR检测标志比特数据的亮度比特406的行缓存器输出数据沿着SPR和P-SPR两个数据通道行进,完成两种类型数据的处理。行缓存器404向SPR操作108提供RGBW色彩数据值和L数据值用于子像素着色,从SPR操作108输出的子像素着色数据继续通过输出伽马操作110。行缓存器404也向在P-SPR数据通道上的色彩互换操作204提供RGBW色彩数据值。色彩互换操作204将色彩互换操作303中发生的色键值的数据互换逆转,准备用于正确输出到显示器的P-SPR数据。从输出伽马操作110和从色彩互换操作204输出的数据前进到图9中以“MUX2”表示的选择操作306。当P-SPR使能信号209指示P-SPR功能可用时,选择操作306根据承载P-SPR检测标志数据的亮度比特406的值,在输出伽马色彩值和P-SPR色彩值之间选择,来产生SPR输出数据203。
图9使用对沿着数据通道403的、作为到行缓存器404的输入“亮度数据(9∶0)”和“比特(9∶1)”的引用,说明使用10比特代表亮度值L。将认识到指示所用比特数量——或者在说明书中或者在附图中——只是通过举例的方式来提供,并且意图不是将实施限制到任一特定数据集或者任一数据通道上的特定带宽。不同行缓存器比特多少的所有情况都可以包括在显示器系统400的实施中。例如行缓存器通道可能是12比特宽并且,在这样一个实施例中,亮度值L将减小到11比特,其中1比特用于P-SPR检测标志。
现在讨论沿着标准SPR数据通道进行具有嵌入预子像素着色图像数据的传统RGB图像数据的处理的显示器系统的实施。在一个这样的实施中,预子像素着色图像数据的处理由对子像素着色(SPR)操作108的下述修改来进行。在这些实施中,色彩数据值没有和嵌入子像素着色图像数据的色键数据值互换,因此结合的RGB和嵌入子像素着色图像数据采用例如图6的图像数据600所示的输入图像数据的形式。
图10描述了显示器系统1000,其包括对图5所示显示器系统100的SPR数据通道的修改,来处理具有嵌入预子像素着色(P-SPR)数据201的输入RGB数据。如上面描述的实施例中那样,P-SPR检测操作202检查输入图像色彩数据值,来检测用于标记代表预子像素着色图像数据的输入数据201的那部分的色键或其它代码,并且对于每个图像位置,设置P-SPR检测标志205的值,来指示预子像素着色图像数据是否存在。如也在上面的实施例中描述的那样,硬件可能需要在通过P-SPR检测操作202之后将输入RGB值延迟几个(例如3个)输入像素行时钟,以使得RGB值和它们的检测标志比特同步;该延迟由行缓存器304中包括的行延迟缓存器完成。和上述实施例不同,P-SPR检测操作202不显示输出到色彩互换操作的P-SPR数据,因为该过程在该实施例中不是必须的。
在显示器系统1000中,所有的输入色彩值,包括P-SPR数据值都通过输入伽马操作102转换。在显示器系统1000的一个替代的实施例中(图未示),P-SPR数据值排除在输入和输出伽马模块之外,不对P-SPR数据值应用伽马操作。这允许P-SPR数据的设计者选择图像的伽马。如同在显示器1000中描述的那样,通过输入伽马模块102和输出伽马模块110处理P-SPR数据,允许显示器的设计者对于显示器系统本身的特定伽马校正P-SPR数据。可配置显示器系统1000来包括开关以使能任一实施例。
继续参考图10,GMA操作104将RGB数据转换为RGBW多基色格式(W=白色)。也为每个像素计算亮度值L。在也处理P-SPR数据的显示器中,GMA操作不是必须的,并可能从P-SPR输入产生错误值。因此,显示器系统1000展现了P-SPR输入值沿着数据线1004排除在GMA模块之外,并且包括选择操作302和行缓存器304,该选择操作302和行缓存器304以上面参考图8的显示器系统300所描述的方式工作,来根据标志205的值选择R,G和B的哪些数据值要传送给行缓存器304。
行缓存器304中存储的RGBW和L数据接下来可用于子像素着色处理。如上所述,在显示器系统1000中,预子像素着色数据和在输出前要进行子像素着色的输入RGB数据沿着单独的数据通道行进。因此,SPR操作必需能够以这种方式包容P-SPR数据:(1)该方式不改变P-SPR数据的值(2)该方式确保SPR操作中只有有效的色彩值输入到滤波操作。
为了理解图10所示SPR模块1020的操作,首先简要讨论诸如图5到9所示的SPR模块108的传统SPR模块的操作。子像素着色的关键的处理是采样或者滤波操作,该操作通常要求,但不是必须,从RGB数据的三行输入9个色彩值。在软件实施中,可由一或多个中间帧缓存器完成。输入数据按照到达顺序读入帧缓存器,然后SPR滤波操作随机访问帧缓存器以获取必要的值。在SPR处理的传统硬件实施中,从存储在行缓存器304中的RGB数据的三行输入9个值,来进行SPR计算。注意到在有的实施中,行缓存器只需一次存储两行和第三行的一小部分。
图11A是描述了行缓存器和传统SPR模块的内部的简化的框图。在图11A中,行缓存器实现为移位寄存器,每行的最后几个锁存器分离开,从而它们能够包括到3×3的乘法器1160中。最后三个像素的色彩值循环通过行缓存器304,在图11A中以三行矩形表示的9个锁存器的组1110中,以下一个SPR操作必需的次序出现。注意参考号1110用意是将9个锁存器称为一个组。也注意中央锁存器1112标记为C并在下文中进一步描述。
图11A是SPR模块内部的简单的示图,因为只显示了9个锁存器的一个组1110。在传统SPR模块中,存在用于显示器的每个基色(例如RGBW)的单独的一组9个锁存器1110和用于亮度值L的一组9个锁存器1110。基色色彩值和L每个可以是12比特宽。P-SPR检测标志205通常是1比特宽,并且也存储在每组基色值后面的行缓存器304中。对于每个基色色彩,有一个单独的3×3乘法器组1160,潜在的单独的3×3滤波器系数组1150,并且如果有特别的滤波操作,这些中的每个可能需要还有另一个3×3乘法器和滤波器系数组。对每组3×3乘法器有一个加法单元1170。
注意到在替代实施中,使用小的随机访问存储器和指示下一位置以存储或取出值的指针,代替图11A所示的行缓存器304和9个锁存器组1110,或者代替软件实施中将会用到的完全随机访问方法。该替代实施比使用软件实施的完全随机访问中间帧缓存器要复杂,但是需要较少的存储器和较少的门来实施。关于子像素着色的其它信息可在例如上面参考的标题为“Methods andSystems for Sub-Pixel Rendering with Gamma Adjustment”的‘058申请中找到。
图11B描述了存储单个红色基色值RW的一个单独锁存器1111,与单个滤波器系数1150和单个乘法器1160的操作,显示了通向加法单元1170,合在一起称为锁存操作1190。注意多达8个的相似的乘法器也连接至加法单元1170。实际上,因为滤波器系数1150中的一些通常具有零值,从而可以从SPR模块设计中完全去除,因此少于如图11B中所示例子中的9个总的锁存器/乘法器。当存储在锁存器1110的数据值为12比特宽,且滤波器系数为8比特定点二进制数值,乘法1160的结果为20比特且必须减少到12比特,例如,通过将结果移位8个比特,如同指示“>>8”所示。将输出减少到12比特还可通过取整、通过不将后8位比特发送到输出,或者通过设计乘法器以不产生这些低位比特来实现。在有的实施中,滤波器系数是事先知道的,可特别设计乘法器1160来产生比完全的12×8比特乘法器的门电路少的结果。例如如果系数是0.5,那么系数、乘法器和移位器可由单独的右移来代替。
图12描述了如何修改图11B所示的锁存操作1190来在SPR操作1020(图10)内包容P-SPR数据的处理,而不需用于P-SPR数据的单独的数据通道。图12描述了存储单个红色基色值RW的单独锁存器1111,与单个滤波器系数1150和单个乘法器1160,显示了通向加法单元1170。将锁存器1112标记为“C”表示它存储用于该SPR操作中所采样的中心像素的RW值。单个锁存器1111标记为“E”表示存储的RW值是属于存储在锁存器1112的RW值的附近或边缘的输入像素的红色数据值。需要包括四种特别的情况:(1)中心像素C或边界像素E都不是P-SPR数据的一部分;(2)中心像素C和边界像素E都是P-SPR数据的一部分;(3)中心像素C是P-SPR数据的一部分,但边界像素E不是;以及(4)边界像素E是P-SPR数据的一部分,但中心像素C不是。这是因为如果是到滤波操作的输入的边界像素的任一个存在于P-SPR图像区域内部,如果由如图11A和图11B描述的传统SPR模块处理,滤波操作就会得到错误的结果。
继续参考图12,存储在锁存器1112的中心像素的RW值行进通过乘法器操作1160和加法单元1170,并输入到图中标记为“最后MUX”的最后的选择操作1240。同时,存储在锁存器1112的中心像素RW的值也输入到最后选择操作1240,如图12的数据线1220所示,旁路绕开乘法器1160和加法单元1170。最后选择操作1240根据P-SPR标志205的值,在原始RW值或乘法器1160和加法单元1170计算的色彩数据值之间选择。当P-SPR标志205为“开”时(例如值为“1”),中心像素的原始RW值是图像P-SPR部分的一部分,且应选择为用于输出,而不选择计算的SPR色彩数据值。当P-SPR标志205为“关”时(例如值为“0”),原始RW值不是图像P-SPR部分的一部分,应选择加法单元1170输出的计算的SPR色彩数据值用于输出。
存储在锁存器1110中的边界像素是否包括在P-SPR图像数据中会以下述方式影响最后MUX1240中所选的用于输出的值。以选择操作1210的形式的特别处理加入在标记为“E”的锁存器1111和它的乘法器1160之间数据通道上,用于测试每个边缘像素是否是图像的P-SPR区域的一部分,并且,如果是,就将数据值从SPR处理通道(乘法器和加法单元通道)移除。存储在中心锁存器1112的RW值沿着数据线1214和存储在锁存器1111中的边界像素RW值一起输入到选择操作1210。
选择操作1210根据边缘像素RW值的P-SPR标志205的值在中心RW值或者边界RW值之间选择。当边缘像素RW值的P-SPR标志205为“关”时(例如值为“0”),边缘像素RW值不是图像的P-SPR部分的一部分,并且应该行进到乘法器1160和加法单元1170。然而,当P-SPR标志205为“开”时(例如值为“1”),边缘像素RW值是图像的P-SPR部分的一部分,不应行进到作为SPR操作的一部分的乘法器1160和加法单元1170。在这种情况下,选择操作1210选择中心RW值。这防止了当中心RW值不是P-SPR图像数据的一部分并且应该进行子像素着色时,边缘像素的P-SPR值对于中心RW值产生错误的滤波结果。当确定中心像素和边缘像素都是P-SPR数据时,无效的中心值锁存到边缘像素的乘法器,产生错误的滤波结果,但是最后选择操作1240会忽略该错误滤波结果,并且仍然可以产生正确输出。那么可见图12所示的SPR操作1020的实施例对于所有的上述四种情况产生正确的滤波(SPR)结果;即,当中心和边缘像素都在P-SPR区域外时,当中心和边缘像素都在P-SPR区域内时,当采样区域内的任何边缘像素在P-SPR区域内时。
尽管结合特定功能单元、操作或者硬件描述了上述实施例,但说明书意图不是限定特定的实施,这些功能单元和操作可利用硬件和/或软件的任何组合,包括诸如一个或多个的存储器设备或电路的部件或模块来具体实现。例如,可编程的门阵列或类似的电路可配置为来具体实现这种功能块。在其它的例子中,运行存储器内的程序的微处理器也能够实现这种功能块。
预子像素着色数据标记指导和实施例
如上所述,预子像素着色图像数据可由子像素着色系统和/或算法能够识别或解码的数字信号或码标记。通常码都是以重复的样式加入或嵌入到P-SPR图像数据中。有几个因素会影响到特定码的选择。如‘297申请中讨论的那样,使用的标记码可代表色彩值,此处称为色键。尽管合适的色键可以是任何预定的色彩值,某些实际的考虑会影响色键选择。色键可以是统计上不太可能的颜色,在如果输出图像要在不能检测预子像素着色图像数据的显示器系统上着色的情况下,选择它们来避免或最小化输出图像的任何失真。可以选择色键值,使得它们的二进制值的最高位是相同的,来允许色键经过简单的比特截位而仍能被检测出来。例如,几个图中所示的色键(红=65,绿=27,蓝=207)是统计上不大可能的颜色,但是可能尤其适合在24比特色彩系统(每种颜色8比特)中使用。因为色彩值(65,27,207)表示了类似于视频或电影处理中使用的一种颜色的蓝色,该颜色也可描述为“蓝屏”。
也可能使用多个色键值,特别地对于红色和蓝色,来标记P-SPR图像数据。第二(或多个)色彩集会增加色键形式的复杂性,从而增加了它的鲁棒性并且减少错误有效检测的可能性。这些第二数值在色彩上和第一色键值相似,使得它们产生了不大可能的颜色,但是如同在最低比特深度上隔开几步那样取值,使得抖动样式不会导致错误有效检测。下面的表1中列举了适合用于标记P-SPR图像数据的一些示例色键值。然而,需要理解图中使用的和表1提供的色键都只是出于描述的目的,许多其它这种色键和标记码都可用于标记P-SPR数据。
表1:示例P-SPR图像数据标记值
| 比特深度 |
红色值 |
绿色值 |
蓝色值 |
第二红色 |
第二蓝色 |
| 16比特(5-6-5) |
01000=8 |
000110=6 |
11001=25 |
01010=10 |
11101=29 |
| 18比特(每色6比特) |
010000=16 |
000110=6 |
110011=51 |
010101=21 |
111010=58 |
| 24比特(每色8比特) |
01000001=65 |
00011011=27 |
11001111=207 |
01010101=85 |
11101010=234 |
| 30比特(每色10比特) |
0100000101=261 |
0001101101=109 |
1100111101=829 |
0101010101=341 |
1110101001=937 |
色键或其它标记码叠加在预子像素着色数据之上或者和其交织在一起。通常,可根据任一合适的标记形式完成预子像素着色数据值内的标记码的映射,并且能够适当地编程P-SPR检测操作202,来使用建立的标记形式将预子像素着色色彩数据值从标记码中解码。然而,通用的P-SPR检测操作202的设计和实施将从建立来指导用来以数字信号或码标记P-SPR数据的处理的原理或规则中受益。标记P-SPR数据的某些原理的例子包括下列。在这里后面的讨论中,指定图像输入值从图像的左上方像素(0,0)处开始,使得像素的第一行和列每个指定为“零”行和列,因此是偶数行和列,第二行和列每个指定为行和列一(1),因此是奇数行和列。
·出现在零行的标记值应该出现为在P-SPR像素第二行(奇行)中偏移一个像素,构成下文所谓的“相位偏移”。在图6中,以示例的方式注意到奇行640内参考号616指定的标记值“207”的位置比起偶行630内参考号604指定的标记值“207”的位置有一个像素的偏移。相似的偏移位置形式可以在图13B,14B和15B中描述的标记P-SPR图像数据集的任一个中,以及在使用两个标记码的图16B,17A和17B,18B,19B和20B中描述的标记形式中看到。
·标记值应该以n像素宽,m像素高的重复的形式出现在,其中n通常是偶数个输入像素,m通常是偶数个行。例如,图13B,14B和15B描述了色键值和P-SPR数据的2个像素宽的重复形式,而图16B,17A和17B,18B,19B和20B描述了色键值和P-SPR数据的4个像素宽的重复形式。在上述图中m是2,但是其它的实施也是可能的。
·如果n像素宽偶/奇形式从图像的左上方的像素(0,0)开始逐片覆盖整个显示器,标记值只应该出现在它们应该在的位置。n像素宽形式和偶行与奇行之间的相位偏移有助于防止错误有效检测。
·图像的P-SPR部分应在偶输入像素上开始,应包括最少四个像素,并且应为偶数个像素宽。此处包括P-SPR图像数据部分的图描述了在偶像素开始并具有偶数像素的P-SPR图像数据以反映这些指导。
·标记的P-SPR图像数据区域没有垂直的限制:它们能够在任何行上开始,也可以是任何数量的行高。对于P-SPR操作202的目的,P-SPR图像数据区域可小到一行上的四个输入像素。
·建议P-SPR图像区域开始并结束于屏幕的空白区域,例如文字行之间和单词之间。只要能够满足像素开始和计数指导,将水印区域结束于突然的不连续处,例如图像的边界,也是合理的。
色键标记码值在P-SPR色彩数据值内的放置受显示器特定子像素布局的影响。在图13到20中描述了子像素布局的几个实施例以及标记P-SPR数据的适当标记形式的例子。注意到在这些图中,预子像素着色图像色彩值以黑体和下划线示出(例如R,G B和W),来将预子像素着色数据从在显示前要输入到预子像素着色操作的输入图像数据中区分出来。也注意到这些图中的预子像素着色图像数据内的标记码的位置也符合上面所列指导,但是要了解其它标记码指导和放置适合实施对预子像素着色图像数据的标记。
图13A描述了包括重复子像素组500的第一示例子像素布局1380。子像素组500是2行具有红色子像素502、蓝色子像素504和绿色子像素506的3子像素形式。注意在所有描述子像素布局的图中,相同的影线形式代表由垂直影线表示的红色,由水平影线表示的蓝色,由斜影线表示的绿色的相同的颜色分配。没有影线来表示的子像素,例如图14A中的子像素508,表示白色、灰色或其它颜色,例如黄色。图13B是包括预子像素着色图像数据1320的图像数据1300的示例集,预子像素着色图像数据1320以包容子像素布局1380的方式布置并且包括其中嵌入的色键。由于子像素布局1380包括红/绿棋盘图案,指定红色色彩数据值从图象左上方的像素(0,0)处开始,如图13B中的像素1330所指定的,并且嵌入的P-SPR图像数据值应满足同样的颜色指派。
继续参考图13A,八像素子集1322描述了在以标记码标记之前,如何根据子像素布局1380的子像素布局部分1390,安排预子像素着色图像数据。八像素子集1324描述了如何以色键(65,27,207)的形式的标记码标记预子像素着色图像数据;八像素子集1324中没有交换色彩值。八像素子集1320描述了如何可以在预子像素着色图像数据中互换或交换八像素子集1324中的特定数据值和色键值。在这种情况下,因为子像素布局1380具有R/G棋盘图案布局,在每个水平像素对中,R值已和色键值“65”交换,G值已和色键值“27”互换。由于在上文中结合图6以及图7,8和9中的不同显示器系统的实施例说明的理由,互换数据对于处理P-SPR数据的显示器系统的某些实施可能是有用的。
除了将R和G值与它们各自的色键值互换,在某些情况下将B值与其色键值互换也是有用的。例如,简单地将偶列和奇列数据之间所有的值互换对于进行子像素着色可能是有用的。或者将一些色彩值与它们各自的色键值互换对于提高不处理预子像素着色图像数据的显示器上的图像显示是有用的。图13B描述了行1328的B值和色键值“207”互换,使得有效的B值和有效的G值出现在同一像素中,这可在当图像显示在不处理预子像素着色图像数据的显示器上时改善图像色彩。同样,也在该例中,B值和色键值“207”的互换符合上述的指导,即出现在零行1327的标记值表现出由P-SPR像素的第二(例如奇)行1328偏移一个像素。图13B描述了嵌入在显示之前要进行子像素着色的输入图像数据内的预子像素着色数据1320。
图14A描述了显示重复子像素组1400的第二子像素布局,其包括第四基色子像素508。图14B是包括适用于图14A所示子像素布局的嵌入预子像素着色图像数据的图像数据集的示意图,该嵌入预子像素着色图像数据由适当的色键的实施例标记,且红色和绿色值交换或者互换。特别地,用以色键(65,27,207)形式的标记码标记了预子像素着色图像数据。因为子像素布局1400有R/G棋盘图案布局,在每个水平像素对中,R值已和色键值“65”交换,G值已和色键值“27”互换。最后,奇行中的进一步的交换描述了和色键值“207”互换的W值。
图15A描述了包括和上述描述不同的绿到红和蓝的比例的第三子像素布局,并且包括红/蓝棋盘图案。它进一步包括将一个像素映射到一个绿色子像素的绿色子像素的正方形网格。图15B描述了包括以适合该子像素布局的色键标记的嵌入预子像素着色图像数据1520的图像数据集1510的示意图。特别地,和先前一样,红色代码是“65”,蓝色代码是“207”,但是每个绿色值都是有效的预子像素着色色彩值。由于该子像素布局具有红/蓝棋盘图案,指定红色数据值从图像左上方的像素(0,0)开始,如同由像素1530所指定的,并且假定预子像素着色数据1520以同样的方式和红色(R)一起开始。在该子像素布局中,没有标记的P-SPR数据在零行的原始顺序是(RG空)(空G B),其中“空”表示丢失值,在第一行是(空GB)(RG空)。红和蓝数据值显示为和各自的色键值互换。然而,对于图15A的子像素布局,不必互换绿色值。
图16A描述了包括八(8)子像素重复组802的第四子像素布局,该八(8)子像素重复组802包括棋盘图案形式的红-绿和蓝-白子像素对。在该子像素布局可描述为具有蓝-白子像素对的同时,如上所述,没有影线表示的子像素表示白、灰或其它颜色,例如黄。图16B是包括以适合该子像素布局的色键标记的嵌入预子像素着色图像数据的图像数据集的示意图。特别地,红色代码是“65”,每个绿色彩值都是有效的预子像素着色值,并且两个蓝色代码(207,234)在标记形式中使用。图16A的子像素布局假定红色数据值从图像左上方的像素(0,0)开始。图16B描述了具有互换值的标记的预子像素着色图像数据。在这种情况下,所有的四个值红、绿、蓝和白都可互换。
图17A和17B描述了可用于标记和图16A所示子像素布局一起使用的预子像素着色图像数据的两个替代的标记码。特别地,在图17A所示的重复组1710中,两个红色代码(65,85)用于标记形式。在图17B中,在该标记形式中使用两个红色代码(65,85)和两个蓝色代码(207,234),其中没有数据值互换。该形式的结果是将每组RGBW值存储到两个RGB像素中,周围是标记(例如色键)值。注意到在交替变化的像素中存储了W值代替G值。如果图17B所示重复形式从左上方的像素(0,0)开始逐片覆盖整个显示器,色键值可以只出现在它们应该在的位置。4像素宽形式和偶奇行之间的相位偏移有助于防止错误的积极检测。
图16A所示的子像素布局有可在显示器面板上实施的几种变化。图18到20描述了变化的例子以及预子像素着色数据值和标记码的适当布局的例子。图18A描述了图16A的子像素布局的第一变化,包括代替图16A中红-绿和蓝-白棋盘图案的棋盘图案形式的白-蓝和绿-红子像素对;图18A的子像素布局使得镜像的情况有效。图18B描述了由两个红色色键值(65和85)和两个蓝色色键值(207和234)标记的并且具有互换值的预子像素着色图像数据。在该情况中交换了所有四个值,红色,绿色,蓝色和白色。
图19A描述了图16A的子像素布局的第二变化,包括代替图16A中红-绿和蓝-白棋盘图案的棋盘图案形式的绿-红和白-蓝子像素对;有效地,图19A的子像素布局通过将图16A的子像素布局旋转180°而得到。图19B描述了由两个红色色键值(65和85)和两个蓝色色键值(207,234)标记的并且具有互换值的合适的预子像素着色图像数据配置。在该情况中交换了所有四个值,红色,绿色,蓝色和白色。
图20A描述了图16A的子像素布局的第三变化,包括代替图16A中红-绿和蓝-白棋盘图案的棋盘图案形式的蓝-白和红-绿子像素对;图20B描述了具有合适的预子像素着色图像数据的布局的八像素重复组2010,其中预子像素着色图像数据由两个红色关键值(65和85)和两个蓝色关键值(207,234)标记的并且具有互换值。在这种情况下,交换了所有四个值,红色、绿色、蓝色和白色。
如上所述,P-SPR检测操作202的功能是检查输入图像色彩数据值,以检测用于标记代表预子像素着色(P-SPR)图像数据的输入数据201那部分的色键或其它代码,并且对于每个图像位置,设置P-SPR检测标志205的值,以指示预子像素着色图像数据是否存在。在P-SPR数据由两个色键标记的情况下,例如在图20B的八像素重复组2010中所示的那样,输入图像数据包括RGBW色彩值的某些组合的三元组,输入P-SPR数据也包括嵌入的红色色键标记值(65和85)和蓝色色键标记值(207,234)。
检测P-SPR数据的一项技术可包括将输入图像数据指定为开始于第一偶行和偶像素处的像素(0,0)的位置,并且期望P-SPR数据按照上述指导来定位:即,开始于输入图像数据偶行偶像素位置,来包括重复组中的两行像素,并且将色键值置于奇行中和偶行有相位偏移处。图20B描述了有偶/奇行和像素列分配的重复组2010。
下面的表2为检测图20B中所示R和B标记码的存在的简单行检测器提供了伪码。下标“c”表示正在经受测试的列,并且,在每次测试中,“ELSE”条件读取到“ELSE P-SPR FLAG=OFF”,从表2中略去。
表2:P-SPR检测器的伪码实施例
|
|
偶行 |
奇行 |
| 第一偶像素 |
If(BC=207 and RC+1=85 andBC+2=234)OR(BC-2=234 andRC-1=65 and BC=207)Then P-SPR FLAG=“ON” |
If(RC=85 and BC+1=234 andRC+2=65)OR(RC-2=65 andBC-1=207 and RC=85)Then P-SPR FLAG=“ON” |
| 第一奇像素 |
If(RC=85 and BC+1=234 andRC+2=65)OR(RC-2=65 and BC-1=207 |
If(BC=234 and RC+1=65 andBC+2=207)OR(BC-2=207 and |
|
|
and RC=85)Then P-SPR FLAG=“ON” |
RC-1=85 and BC=234)Then P-SPR FLAG=“ON” |
| 第二偶像素 |
If(BC=234 and RC+1=65 andBC+2=207)OR(BC-2=207 andRC-1=85 and BC=234)Then P-SPR FLAG=“ON” |
If(RC=65 and BC+1=207 andRC+2=85)OR(RC-2=85 andBC-1=234 and RC=65)Then P-SPR FLAG=“ON” |
| 第二奇像素 |
If(RC=65 and BC+1=207 andRC+2=85)OR(RC-2=85 and BC-1=234and RC=65)Then P-SPR FLAG=“ON” |
If(BC=207 and RC+1=85 andBC+2=234)OR(BC-2=234 andRC-1=65 and BC=207)Then P-SPR FLAG=“ON” |
可见可以使用对于图20B所示的模型对图17A和17B,18B和19B任一个中的标记的P-SPR图像数据重复组实施表2中描述的行检测器的变化。
预子像素着色和增强的字体着色
诸如这里所描述的用于标记和检测预子像素着色图像的有效的技术支持这种图像的更广泛和有利的使用。将图像的预子像素着色部分,称为P-SPR图像子集嵌入到输入图像数据文件的能力加强了图像到图像之间倾向于不可变或固定的图像子集的高质量着色。这些固定的图像子集可预先使用特殊技术进行预子像素着色,该技术否则的话可能不能或是不容易使用特定子像素着色引擎来可实现,然后存储起来留作后用和/或发送到将P-SPR图像子集嵌入到输入图像数据的操作。固定图像子集的例子包括许多图形符号,例如标识、图标、表意文字和以特定字体着色的字形。下述讨论提出了实施增强的预子像素着色字体的显示的技术,但是需要了解这些技术可应用于任何会从在它作为其中一部分的图像数据的剩余部分之前进行预子像素着色以直接显示而得益的图像子集。
用户观看高质量的显示文本和灰度抗混叠字体的需求将扩展为以新的角色执行功能的各种尺寸的电子设备。例如,随着更多的文字显示发生在小并且低成本的系统上,例如蜂窝电话,用户将期望看到显示比常用的一比特每像素的固定大小字体更高质量的文本。随着蜂窝电话和其它显示器设备处理器增加内存和处理能力,使用轮廓字体产生用于显示的文本趋向于在这种设备上变得更为普通。在本讨论中,术语“字体”表示特定大小(通常以点衡量)、一个粗度(例如,细、书本、粗、黑)、一个方向或角度(例如罗马字体、意大利字体、斜体)的完全字样。在印刷样式中术语“字样”由相应的一套字形(例如,字符)设计组成。字样通常包括字母表字母,数字和标点符号,也可包括或包含表意符号和符号。“轮廓字体”是定义为一组直线和曲线的而和位图字体不同的字体。通常轮廓字体字符可缩放为任意大小,并且另外比位图字体转换起来更加容易,而且可获得更有吸引力的结果。将字符以特定方式转换为轮廓字体的结果通常作为位图存储在字体缓冲存储器中,以避免如果需要再次绘制字符时的重复计算。此处使用的“字形”指的是图形符号图像的实现的实例,例如一种字体的字符或符号。
使用预子像素着色图像数据的字体着色技术的几个实施例是可能的。在字体着色技术的第一实施例中,字体中的每个字符都是使用高质量算法预先着色的。例如上面图7,8,9和10任一个中示例说明和描述的GMA,SPR和输出伽马操作在这个时间都已经完成。将结果字形以或者根据上述任一标记码实施例,或者根据另一合适的标记处理的标记码标记为预子像素着色(P-SPR)图像。标记的P-SPR作为可使用将比特阵列从存储器中拷贝到显示器屏幕的公知的“位图传送(blitting)”或“位图动画(bitblt)”技术直接显示到显示器屏幕上的位图来存储。
在该字体着色技术的一个变化中,字体中的字符在字体设计工作站上按照固定的大小产生,然后使用上述高质量算法着色并且作为预子像素着色字形存储。在该字体着色技术的另一个变化中,当使用轮廓字体时,字体着色引擎可以以预子像素着色形式缓存字形。在每个这些变化中,可以以带有或不带有将它们标记为预子像素着色图像的标记码来存储预子像素着色字形。不带有标记码来存储预子像素着色字形,并在预子像素着色字形嵌入到它将要在其中显示的图像中时将标记码加到预子像素着色字形中,可能会带来下述的优点。
如上所述,标记(即加标记码到)P-SPR图像数据的操作通常遵从原理和指导,以方便例如图7,8,9和10任一中描述的P-SPR检测操作202的P-SPR检测操作检测标记码。一个这种指导说明P-SPR图像子集应开始于偶输入像素并且应该为偶数个像素宽。此外,出现在图像输入数据偶行的标记码值通常表现为由第二(例如奇)行P-SPR像素偏移一个像素,构成相位偏移。从而,标记码指导建议可能希望在偶逻辑像素列和行开始标记的预子像素着色图像,在偶和奇行使用不同的标记码,或者包括偶数个像素。
此外,特定子像素布局会影响一种字体的字形的着色自由程度。例如图13A,14A,15A,16A,18A,19A和20A中描述的那些以及上面通过参考引用的权利共有的专利申请的多个中揭示的那些子像素布局,包括可产生每个都映射到单个RGB输入像素的逻辑像素的子像素重复组。可设计字体字形开始于子像素布局中的任一逻辑像素位置。也可设计字体字符对准在子像素分辨率上而不是整个逻辑像素。在这种情况下,可能需要和特定布局的子像素重复组中的子像素数量一样多的字体中每个字形的不同再现(rendition),并且将需要存储这些预子像素着色字形再现。对于要求不同大小和字样的字体的多文本的应用,子像素布局的选择会影响显示器的存储器需求。
通过示例的方式,检查包括图16A所示子像素重复组802的显示器。该布局包括8个子像素;然而可能需要将子像素分组为每个映射到单独的RGB输入像素的四个四分之一体810,812,814和816。有两个子像素的每个四分之一体810称为“逻辑像素”。从而,当显示字体字形时,有其中字形可以开始的4个不同的逻辑像素位置。如果字体字符设计为对准子像素分辨率而不是整个逻辑像素,那么字体中每个字形可能有8个不同的再现。如同表现的那样,由于子像素着色(SPR)滤波器对所有4个RGBW基色可能实质上相同,图16A所示的子像素重复组尤其适用于着色字体。该对称性带来的结果是对于任一8子像素开始位置预着色的字体字形可以实质上相同。当它们都相同时,存储多个副本就不必要了,可以实现成本的显著节省。然而,需要了解,对于图16A所示子像素重复组802的参考仅是通过示例的方式进行的。此处讨论的着色增强字体字形的技术可应用于可以构成显示器的许多可能的子像素重复组的任一个的情况。
标记的预子像素着色字体字形可根据这些指导产生,以包容P-SPR检测操作202的设计。然而在显示器上着色文本图像需要比该指导所允许的还要多的文本放置中的灵活性。可以着色预着色字体字形来以几个不同的相位开始,并且每个这种相位可以有不同的标记码形式。预着色字体字形可以开始于任一逻辑像素,不论是偶还是奇,并且可以是奇数个逻辑像素宽。需要方法和技术以对于字形显示提供额外的自由度。
图21A-21D描述了一些字形对准的可能性。图21A描述了当它将要在其中显示的图像中的字体字形的偶/奇开始对准和标记处理的偶/奇对准相匹配的情况。在这种情况下,当字体字符是预子像素着色的并且以标记码标记的时候,结果字形符合于标记指导并且可嵌入到它将根据P-SPR检测操作的期望来显示的输入图像数据流中。图21B描述了当预子像素着色字形的标记码开始于偶逻辑像素列边界,并且字形落在奇列边界上的情况。在这种情况下,可能期望以数据的额外开始列1301存储字形的副本。图21C描述了当标记码和字形开始位置落在不同的列开始对准,并且可能期望具有数据的额外的行1302的字体字形的副本。图21D描述了开始对准会需要水平和垂直的额外行的情况。可能期望将每个字体字形以所有的4种对准在存储器内存储四次。字体显示软件会决定将哪种情况应用于字形的每个实例,并且将其传给简单的硬件或软件“位图动画”代码来将其放置到显示器上。
图22描述了其中P-SPR检测操作预计有偶数个逻辑像素但字体字符是奇数个逻辑像素宽的情况。字形中会包括额外的数据列1401,来使得位图动画代码的工作变得简单。图22也描述了这些位于字形之后(或者字形之前,如图21A-D所示)的额外数据列如何在字形之间引入额外的看上去是随机的间距。这会损害着色高质量字体。解决该问题的一个方案可以是不存储称为插入和流出字节的该额外数据列或行,并且要求字体位图动画代码中的额外的指令来将这些字节插入文本的每个字或行之前或之后,以达到正确的对准。另一解决方案包括将每个预子像素着色字体字形不带有标记码地只存储一次。在该实施例中,字体存储较少,但因为它在到显示器的途径中增加了标记码,位图动画代码必需更复杂。
增强的字体着色系统必需提供比白色背景上的黑色文本更好的灵活性。现代图形处理器具有有“位图动画”模式,能够以前景和背景色彩替代黑色和白色文本的1和0比特,得到以在任何背景色彩之上的任何前景色彩显示字形,和在代替固定的背景色彩的背景图像之上以覆盖模式显示字形的能力。
图23所示的一个实施例将提供混合操作1500,在显示器设备中可实现为字体显示(例如位图动画)代码的一部分。由字形1501代表的预子像素着色字体字形将作为预着色密度图存储。在密度图中,每个像素不是作为色彩存储而是代表前景色彩1508和背景色彩1507之间的混合比例。亮度值通常存储为8比特值,其中255代表不透明前景色彩,0代表不透明背景色彩。其它的比特规格和值表示也是可能的。0到255之间的值用于计算不透明前景色彩和不透明背景色彩之间的色彩。
继续参考图23,混合代码操作1502接收信号来将前景和背景色彩结合起来。在一个实施例中,可通过每个子像素两个16比特的整数相乘来实现,从而以有限的处理器在设备上快速处理。特定的输入色彩数据值可以指定为信号的一部分,或者,混合代码操作1502可以以“覆盖”模式操作,这将在以下更详细的描述。期望在线性色彩空间执行混合代码操作1502,从而假定前景和背景色彩在线性色彩空间确定。混合后,线性色彩值在输出伽马操作1503中进行伽马校正。在图中称为“水印码”的标记码操作1504,将标记码加到数据上,在将像素发送到可根据图7,8,9和10的任一显示器系统实现的显示器硬件1505之前,考虑偶/奇字形对准。
在大多数情况下,前景字体色彩是全黑或全亮色彩,在线性色彩空间确定这些颜色需要简单的计算。输入伽马曲线应用于在全暗黑和全亮色彩之间确定的前景字体或背景色彩,以产生它们的线性色彩空间值。该计算在每次前景或背景色彩改变时都执行一次,并存储到模块1507和1508用于多次使用。前景和背景色彩也需要在输出显示器的色彩空间内确定。如果输出显示器是具有RGBW或者RGB加上其它基色的多基色显示器,在将它们存储到模块1507和1508之前,在前景和背景色彩上执行色域映射操作(GMA)。从而,在软件实施中,覆盖/前景/背景代码操作1506可包括在图7,8,9和10的任一显示器系统的SPR数据通道中的操作102和104中通常包含的GMA和输入伽马功能。
替代地,覆盖/前景/背景代码操作1506可使用硬件支持来实施GMA功能,这将GMA计算负担从设备的处理器处移除。硬件帮助的简单形式可以从在图8和9中描述的显示器系统中使用可选帧缓存器308,或者通过在图10描述的显示器系统的输出级增加可读的帧缓存器来得到。在该实施中,图23中的覆盖/前景/背景代码操作1506将前景色小块没有标记码地写入帧缓存器中,例如,写在屏幕外区域或者将要覆盖的图像区域中。上面作为SPR数据通道提及的将在每个前景色彩上执行GMA操作,将其转换为显示器的色彩空间(例如RGBW或者其它多基色)。然后覆盖/前景/背景代码操作1506从可选帧缓存器读取转换的色彩。该实施避免了在模块1506的软件中重复GMA操作104。
如果字体着色系统包括以“覆盖”模式在现有图像之上绘制字形的功能,覆盖/前景/背景代码操作1506必需包括从要在显示器设备上显示的目标输出图像中的目标图像区域产生背景色彩值的功能。在一个实施中,操作1506通过从产生目标输出图像的输入源图像取回输入源图像数据子集,确定来自目标输出图像中目的图像区域的背景色彩值。输入源图像数据子集对应于目标输出图像中的目的图像区域。覆盖/前景/背景代码操作1506通过GMA操作104和子像素着色操作108在硬件中执行操作来处理输入源图像数据子集,从而产生发送到背景色彩模块1507的输入背景色彩值。在第二,替代实施中,这些预子像素着色背景色彩可直接从图8和9所示显示器系统中的可选帧缓存器308中读取。
混合操作1500特别适合低成本设备,例如蜂窝电话或个人数字助理(PDA),用于从存储为预子像素着色的密度图字形的固定规格字体着色字形。该技术允许这种设备以计算量最小的增加引入高质量字体。在能够支持着色可变规格字体的系统中,系统的字体着色操作通常将着色字体字形缓存为密度字形。当修改和/或增强该类型的字体着色系统,以在缓存器中产生预子像素着色字体字形时,应用于固定规格字体的混合操作1500的上述讨论也应用从缓存器着色可变规格字体字形。
将认识到上述方法论和实施能够应用于位于图像显示设备(例如蜂窝电话)上的字体着色引擎。商业可用的字体着色库的例子包括Bitstream Inc.的Font Fusion(注册)或者MERL的Saffron(注册)等。轮廓字体引擎通常将单个字形着色到缓存器内以提高它们的总吞吐量。如果字符来自于上述预先计算的字体或者是来自于在字体着色引擎的缓存器内动态产生的字形,上面概述的步骤实质上是相同的。
尽管已经参考示范实施例描述了本发明,本领域的技术人员将可以理解在不偏离本发明的范围可以进行各种修改并且可以用等价物替换其中的元件。此外,在不偏离其中的基本范围下,可以进行很多修改来适用特定的条件或者材料到教导中。因此,此处揭示的其中一些指出实现这些实施例的最佳模式的特定实施例、实施和技术意图不是限制所附权利要求的范围。