裁剪像素值的方法和系统转让专利

申请号 : CN200510007196.8

文献号 : CN1655626B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 布赖恩·斯科勒

申请人 : 美国博通公司

摘要 :

一种方法和系统,包括检测第一色彩空间的像素何时超出第二色彩空间像素的范围,约束像素的范围,在保持原色彩的同时,不改变其亮度。该方法能够将第一色彩空间像素的范围约束在一个包含完整的第二色彩空间的子空间内,且保持像素的亮度不变。通常该第一色彩空间的像素变换到第二色彩空间时,具有不正确的亮度的“非法”值。用于定义子空间的参数是可编程的。所述第一色彩空间可以是YCrCb色彩空间,所述第二色彩空间可以是RGB色彩空间。

权利要求 :

1.一种将第一色彩空间的像素约束在第二色彩空间范围内的方法,其中,所述像素具有色彩和亮度,其特征在于,所述方法包括:检测第一色彩空间的像素何时超出第二色彩空间像素的范围,其中所述检测包括利用一组参数,在第一色彩空间内定义一个子空间;确定像素是在子空间外还是在子空间内,其中子空间接近第二色彩空间的范围;

将第一色彩空间的像素约束在第二色彩空间范围内;其中:

当像素在子空间内时,保持像素不变,其中,当映射到第二色彩空间时,子空间内的像素的亮度和色彩不出现视觉上的偏离;

当像素在子空间外时,将所述像素挤压成子空间的新像素,其中,新像素的亮度和色彩在视觉上不偏离第一色彩空间像素的亮度和色彩;其中,当子空间内的新像素映射到第二色彩空间时,亮度和色彩不出现视觉上的偏离。

2.如权利要求1所述的方法,其特征在于,所述参数是可编程的。

3.如权利要求1或2所述的方法,其特征在于,所述第一色彩空间是YCrCb色彩空间。

4.如权利要求1或2所述的方法,其特征在于,所述第二色彩空间是RGB色彩空间。

5.一种将第一色彩空间的像素约束在第二色彩空间范围内的系统,其中,所述像素具有亮度和色彩,其特征在于,所述系统包括:用于检测第一色彩空间的像素何时超出第二色彩空间像素的范围的检测模块,其中所述检测包括利用一组参数,在第一色彩空间内定义一个子空间;确定像素是在子空间外还是在子空间内,其中子空间接近第二色彩空间的范围;及用于将第一色彩空间的像素约束在第二色彩空间范围内的约束模块;其中:当像素在子空间内时,保持像素不变,其中,当映射到第二色彩空间时,子空间内的像素的亮度和色彩不出现视觉上的偏离;

当像素在子空间外时,将所述像素挤压成子空间的新像素,其中,新像素的亮度和色彩在视觉上不偏离第一色彩空间像素的亮度和色彩;其中,当子空间内的新像素映射到第二色彩空间时,亮度和色彩不出现视觉上的偏离。

6.如权利要求5所述的系统,其特征在于,所述参数是可编程的。

7.如权利要求5或6所述的系统,其特征在于,所述第一色彩空间是YCrCb色彩空间。

8.如权利要求5或6所述的系统,其特征在于,所述第二色彩空间是RGB色彩空间。

说明书 :

裁剪像素值的方法和系统

技术领域

[0001] 本发明涉及视频信号的处理,更具体地说,本发明涉及对色彩进行适当裁剪的方法和系统。

背景技术

[0002] 在视频图像处理中,传输的视频图像几乎总是用三维色彩空间表示的。视频图像可以用YCrCb表征,其中,Y表示亮度分量、Cr和Cb表示色度或色彩分量。视频图像还可以用RGB色彩空间表示,其中,R表示红色成分、G表示绿色成分、B表示蓝色成分。大多数视频图像处理采用YCrCb色彩空间,而大多数电视显示采用RGB色彩空间。因此,当电视接收到用YCrCb色彩空间传输的视频图像时,需要将其转换成RGB色彩空间。然而,YCrCb色彩空间比RGB色彩空间大。如果用立方体表示YCrCb和RGB色彩空间,RGB立方体可以全部包含在(落入)YCrCb立方体中。在YCrCb色彩空间内、但在RGB色彩空间外的色彩称为“范围外”色彩,人眼感觉不到它的存在。现有的视频图像处理会产生“范围外”色彩。解决这种问题,即将“范围外”色彩空间转换到范围内色彩空间的一种方法是“裁剪”RGB色彩空间之外的“范围外”的色彩。
[0003] 图1所示为有效的RGB立方体投影到(Cr,Y)平面的示意图。对于给定的Y值,许多Cr值是“范围外”的。而且,当Y值在[0,16]或[235,255]范围内,Cr=0时,在YCrCb色彩空间,Y值大于235的像素呈现白色,Y值 小于16的像素呈现黑色。如果将RGB范围外的像素按标准矩阵变换方式变换到RGB色彩空间,像素值将超出[0,255]的标准的RGB色彩范围。举例来说,YCrCb=[16,0,0]的“范围外”值变换成RGB=[-,154,-]。如果仅仅将负值裁剪到0,会使色彩变成亮绿色。而(Y=16)应当为黑色。将像素从YCrCb 色彩空间变换到RGB色彩空间过程中存在的问题是,由YCrCb表示的色彩可能不会落入RGB立方体内,这就需要做出决定:期望电视采用RGB模式显示什么样的图像。
[0004] 将YCrCb=[16,0,0]变换成RGB=[-,154,-]之后,可以容易地裁剪掉负值,然而,正绿色的值大大增加。裁剪负值,不能保持原像素的亮度,而可能使输出增加正亮度。这样,亮度为16的像素,其色彩很接近黑色,当裁剪到RGB立方体时,其色彩比原色彩要亮一些。同样,在RGB立方体外、亮度235线以上区域内的像素应当是白色的,但是当将其裁剪到RGB立方体时,该像素变得不再是白色而偏离了白色。该白色像素可能变成淡绿色、淡红色、淡灰色,而不是白色。裁剪使得电视屏幕上显示的物体周围出现明显与原物不同的假象,特别是在黑色和白色区域周围有其它色彩渗入。
[0005] 当裁剪造成的误差较小时,其可以起到适当的作用。然而,当裁剪引起较大误差时,例如,当像素落入黑色和白色区域,其Y值分别在16以下和235以上时,就会产生问题。由于许多视频设备直接输出YCrCb信号,期望能有一种不必经历复杂的过程(将YCrCb像素值变换到RGB色彩空间、进行裁剪、再变换回YCrCb色彩空间),即可将YCrCb值限制在标准范围内的方法。另外,对于偏移较小的情形,简单地将“范围外”的值裁剪回RGB色彩空间是可以接受的,但是,对于远“范围外”信号,可能引起色彩明显失真。人眼对亮度的敏感度要比对色调的敏感度高,而对色饱和度的敏感度最低。因此,最有利 的方法是保持亮度、牺牲色饱和度。
[0006] 尽管可以精确地限定色彩空间的色饱和度,数学上的精确方法包括同等变换,但对于低成本应用而言,其高昂的成本是不可接受的。由于色调上的微小偏移和变化对图像质量的影响不大,所以希望能以较低的成本、合理的质量,寻找一种色彩接近的解决方案。 [0007] 通过将现有技术与本发明的方法和系统进行比较,对于本领域的技术人员而言,现有技术的其它限制和缺点是显而易见的。

发明内容

[0008] 本发明包括将第一色彩空间的像素约束在第二色彩空间范围内的方法和系统,其中,像素具有亮度和色彩,且受(被)约束的像素保持亮度不变。所述方法可以包括:检测第一色彩空间的像素何时超出第二色彩空间像素的范围,并将第一色彩空间的像素约束在第二色彩空间范围内。检测第一色彩空间的像素何时超出第二色彩空间像素的范围这一步骤,可以包括:利用一组参数,在第一色彩空间内定义一个子空间,以及确定像素是在子空间外还是在子空间内,其中,子空间接近第二色彩空间的范围。定义子空间的这组参数可以是可编程的。
[0009] 当像素在子空间内时,所述方法可以包括:保持像素不变,其中,当映射到第二色彩空间时,子空间内的像素的亮度和色彩不出现视觉上的偏离。
[0010] 只要像素在子空间外时,将所述像素挤压成子空间的新像素,其中,新像素的亮度和色彩在视觉上不偏离第一色彩空间原像素的亮度和色彩;其中,当子空间内的新像素映射到第二色彩空间时,亮度和色彩不出现视觉上的偏离。
[0011] 所述系统包括至少一个处理器,该处理器能够实现所述方法:保持第一色彩空间的像素不超出第二色彩空间像素的范围,其中,像素具有亮度和色彩,且受(被)约束的像素保持亮度不变。
[0012] 一方面,本发明提供了一种将第一色彩空间的像素约束在第二色彩空间范围内的方法,其中,所述像素具有色彩和亮度,所述方法包括:
[0013] 检测第一色彩空间的像素何时超出第二色彩空间像素的范围,其中所述检测包括利用一组参数,在第一色彩空间内定义一个子空间;确定像素是在子空间外还是在子空间内,其中子空间接近第二色彩空间的范围;
[0014] 将第一色彩空间的像素约束在第二色彩空间范围内;其中:
[0015] 当第一色彩空间的像素约束在第二色彩空间范围内;当像素在子空间内时,保持像素不变,其中,当映射到第二色彩空间时,子空间内的像素的亮度和色彩不出现视觉上的偏离;
[0016] 当像素在子空间外时,将所述像素挤压成子空间的新像素,其中,新像素的亮度和色彩在视觉上不偏离第一色彩空间像素的亮度和色彩;其中,当子空间内的新像素映射到第二色彩空间时,亮度和色彩不出现视觉上的偏离。
[0017] 作为优选,这组参数是可编程的。
[0018] 作为优选,第一色彩空间是YCrCb色彩空间。
[0019] 作为优选,第二色彩空间是RGB色彩空间。
[0020] 另一方面,本发明提供了一种将第一色彩空间的像素约束在第二色彩空间范围内的系统,其中,所述像素具有亮度和色彩,所述系统包括:
[0021] 检测装置,用于检测第一色彩空间的像素何时超出第二色彩空间像素的 范围,其中所述检测包括利用一组参数,在第一色彩空间内定义一个子空间;确定像素是在子空间外还是在子空间内,其中,子空间接近第二色彩空间的范围;及
[0022] 约束装置,用于将第一色彩空间的像素约束在第二色彩空间范围内;其中: [0023] 当像素在子空间内时,保持像素不变,其中,当映射到第二色彩空间时,子空间内的像素的亮度和色彩不出现视觉上的偏离;
[0024] 当像素在子空间外时,将所述像素挤压成子空间的新像素,其中,新像素的亮度和色彩在视觉上不偏离第一色彩空间像素的亮度和色彩;其中,当子空间内的新像素映射到第二色彩空间时,亮度和色彩不出现视觉上的偏离。
[0025] 作为优选,这组参数是可编程的。
[0026] 作为优选,第一色彩空间是YCrCb色彩空间。
[0027] 作为优选,第二色彩空间是RGB色彩空间。
[0028] 再一方面,本发明提供了一种可机读存储器,其中存储有计算机程序,该程序至少包含一段将第一色彩空间的像素约束在第二色彩空间范围内的程序编码,其中,所述像素具有亮度和色彩,所述程序编码能够使机器执行以下步骤:检测第一色彩空间的像素何时超出第二色彩空间像素的范围;将第一色彩空间的像素约束在第二色彩空间范围内;其中,保持受约束像素的亮度。
[0029] 作为优选,用于约束像素的程序编码包括:利用一组参数,在第一色彩空间内定义一个子空间的程序编码;确定像素是在子空间外还是在子空间内的程序编码,其中,子空间接近第二色彩空间的范围。
[0030] 作为优选,用于约束像素的程序编码还包括,当像素在子空间内时,保持像素不变的程序编码,其中,当映射到第二色彩空间时,子空间内的像素的亮度和色彩不出现视觉上的偏离。
[0031] 作为优选,用于约束像素的程序编码还包括,当像素在子空间外时,将所述像素挤压成子空间的新像素的程序编码,其中,新像素的亮度和色彩在视觉上不偏离第一色彩空间原像素的亮度和色彩;其中,当子空间内的新像素映射到第二色彩空间时,亮度和色彩不出现视觉上的偏离。
[0032] 以下结合附图,通过具体实施例,对本发明做进一步详细说明。 附图说明
[0033] 图1所示为有效的RGB立方体投影到(Cr,Y)平面的示意图;
[0034] 图2所示为本发明设有色彩裁剪电路的典型视频网络系统的一种实施例的示意图;
[0035] 图3所示为本发明RGB色彩立方体投影到YCrCb色彩空间的Y-Cr平面的一种实施例的示意框图;
[0036] 图4所示为本发明RGB色彩立方体投影到YCrCb色彩空间的Y-Cb平面的一种实施例示意框图。

具体实施方式

[0037] 本发明涉及视频信号的处理。特别是,本发明的实施例涉及对色彩进行适当裁剪的方法和系统,通过检测YCrCb色彩空间的像素何时超出RGB色彩空间的范围,保持YCrCb色彩空间像素的亮度,将像素约束在RGB色彩空间的有效范围内。虽然以下是以YCrCb色彩空间和RGB色彩空间为实施例对本发明进行讨论,但可以理解的是,本发明也可以应用到其它的色彩空间,例如:YIQ、YPrPb、YUV等。
[0038] 图2所示为本发明设有色彩裁剪电路的典型视频网络系统的一种实施例的示意图。该色彩裁剪电路可以设置在复合电路(comp)方框101中。图中:
[0039] M表示MPEG馈线,接收4:2:0、4:2:2数据,提供4:2:2数据;
[0040] V表示视频馈线,接收4:2:2数据,提供4:2:2数据;
[0041] C表示捕捉模块,接收4:2:2数据;
[0042] G表示图形馈线,接收ARGB、CLUT或4:4:4数据,提供AYUV4444数据; [0043] Comp表示复合电路;
[0044] MAD32表示采用反向3:2下拉处理进行动态自适应解交错。
[0045] 图3所示为本发明实施例RGB色彩立方体投影到YCrCb色彩空间的Y-Cr平面的示意框图。RGB立方体可以投影到(Cr,Y)平面303,此处,Cr值可以限定在指定的区域S 305上,从而有效地将YCrCb色彩空间裁剪到RGB色彩空间。该指定的区域S 305可由斜线C、D、E、F和点H、J界定。
[0046] 图4所示为本发明实施例RGB色彩立方体投影到YCrCb色彩空间Y-Cb平面的示意框图。RGB立方体也可以采用与投影到(Cr,Y)平面303相同的方式,投影到(Cb,Y)平面403,这里,Cb轴与(Cr,Y)平面303相垂直。Cb值可以限定在指定的区域405上,但是其斜线和点不同。结果,整个RGB立方体301可以包含在以斜线C、D、E、F和点H、J,及(Cb,Y)平面内的斜线和点所确定的YCrCb空间内。在本发明的另一种实施例中,不同的色彩空间可以有不同的投影,可以由不同的斜线和点来逼近。
[0047] 一个像素可能具有RGB色彩空间301内的(YCrCb)值,该像素值是有效的,并且不会因从一个色彩空间变换到另一色彩空间而受到影响。然而,另一像素可能具有RGB色彩空间301外的(YCrCb)值。如果一个像素在标准 的RGB立方体之外,可能需要以保持亮度的方式对像素进行矫正。因此,如果像素是白色或黑色,这种矫正可以保证分别保持白色或黑色。区域S(Cr为305,Cb为405)可以仅仅是近似实际RGB范围(301)。本发明的实施例中,对区域S仅进行部分矫正。这种近似的矫正可能是不精确的,但它可以足够相近,以使色彩差异在视觉上感觉不到。这种近似产生的误差即使在黑色和白色区域(Y值在16以下或235以上的区域)也可能是很小的,而实际上该区域的误差应当是最明显的。 [0048] 以下公式推导和计算中的参数来源于如ITU Rec.601规定的标准清晰度(SD)电视参数。本发明实施例中的这些参数可用于视频行业中的各类色彩空间,是可编程操作的。 [0049] 根据本发明的实施例,将YCrCb色彩空间的像素约束在RGB色彩空间,可以按以下方式计算:
[0050] Let Y′=(Y-16),Cb′=(Cb-128),Cr′=(Cr-128)
[0051] R=1.164Y′+1.596Cb′
[0052] G=1.164Y′-0.813Cb′-0.391Cr′
[0053] B=1.164Y′+2.018Cr′
[0054] Y′=0.257*R+0.504*G+0.098*B
[0055] 通过阻止R、G、B负值的裁剪,可以避免负裁剪。一旦R<0,就意味着1.596V’<-1.164Y’。因而,其规律可以是,为了避免R负值被裁剪,应当满足Cb’:Cb’(?)>-10164/1.1596Y’=-0.729Y’。
[0056] 为了避免B负值被裁剪,Cr’应当满足以下关系:
[0057] Cr’>-1.164/2.018Y’=-0.577Y’。
[0058] 如果K=2Cb’+Cr’,可以近似地得到G=1.164Y’-0.4K。在本实施例中,其 规律是,为了避免G负值被裁剪,并大于零,应当满足K<2.91Y’。
[0059] 由于矫正绿色裁剪和保持色度可能比较困难,Cr和Cb值可以单独测量。G=1.164Y’-0.813Cb’-0.391Cr’>0。由于Cb’>-0.729Y’,因此1.164Y’+0.813(0.729)Y’-0.391Cr’>0,且Cr’>4.493Y’。同样,1.164Y’-0.813V’+0.391(0.577)Y’>0,且Cr’>1.709Y’。
[0060] 正裁剪可以按以下调整:
[0061] 使Y*=219-Y’→Y’=219-Y*。
[0062] 任 何 以“255 = 1.164Y’+...” 开 头 的 等 式 可 以 改 写 成“0 =* * *1.1643638(219-Y)-255+...”,或“0=1.164Y+...”。通过求解方程1.164Y+1.596Cb’*
<0,R值可以约束在不超过255。因此得出,如果Cb’<0.729Y,R值将被约束在255内。
相同类型的方程式可以应用于其它所有正裁剪。
[0063] 在本发明的另一实施例中,高清晰度(HD)电视参数,如ITU 709所定义,可以按下式计算:
[0064] R=1.164Y′+1.793Cb′
[0065] G=1.164Y′-0.534Cb′-0.213Cr′
[0066] B=1.164Y′+2.115Cr′
[0067] Y′=0.183*R+0.614*G+0.062*B
[0068] Cb′>-1.164/1.793Y′=-0.649Y′
[0069] Cr′>-1.164/2.115Y′=-0.550Y′
[0070] 1.164Y′-0.534Cb′-0.213Cr′>0
[0071] Cr’>(1.164Y′+0.534*0.649Y′)/0.213=7.09Y′
[0072] Cb’>(1.164Y′+0.213*0.550Y′)/0.534=2.40Y′
[0073] 根据本发明实施例,色彩裁剪模块是自适应的,以便在任何时间采用/取消裁剪,而不引起所显示图像的不连续。可以将正裁剪和负裁剪分离开。另外,(Cr,Y)平面内的斜线C、D、E、F和点H、J,以及(Cb,Y)平面内的类似的斜线和点是可编程的。 [0074] YCrCb到RGB色彩裁剪可以通过伪编码实现,需要一个乘法用于Cr,一个乘法用于Cb和加法器。乘法器的系数是10位。伪编码可以如下:
[0075] 有效裁剪 (y,u,v){
[0076] ty=MAX(*y,16)-16;//注意y的有用范围为16-235
[0077] tyx=219.0-ty;
[0078] if(tyx<0.0){tyx=0.0;}
[0079] tu=u-128;
[0080] tv=u-128;
[0081] ty+=0.5;
[0082] tyx+=0.5;
[0083] //clip U
[0084] if(tu>0){
[0085] if(ty<25){//“25”是图2中的点“J”
[0086] if(tu>(4.5*ty)) {tu=4.5*ty;}//斜线A [0087] }
[0088] else{
[0089] if(tu>(0.58*tyx))(tu=0.58*tyx;}//斜线B [0090] }
[0091] }
[0092] else{
[0093] if(tyx<25){
[0094] if(-tu>(4.5*tyx))(tu=-4.5*tyx;}
[0095] }
[0096] else{
[0097] if(-tu>(0.58*ty)){tu =-0.58*ty;}
[0098] }
[0099] }
[0100] //裁剪V与裁剪U相似,只是系数不同
[0101] {...}
[0102] u=tu+128;
[0103] v=tv+128;
[0104] }
[0105] 本发明可以通过硬件、软件,或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现所述方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行所述程序控制计算机系统,使其按所述方法运行。在计算机系统中,利用处理器和存储单元来实现所述方法。 [0106] 本发明还可以通过计算机程序产品进行实施,所述程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,通过运行,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、编码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后,a)转换成其它语言、编码或符号;b)以不同的格式再现,实现特定功能。 [0107] 本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。