发明内容
针对上述针对RGB数据进行坏点补偿的不足,本发明的主要目的在于提供一种更为快速有效的坏点补偿方法。
考虑到人眼对亮度更为敏感,以及YUV格式数据将亮度信号从图像信号中分离出来的特点,本发明提出一种针对YUV数据实现坏点补偿的方法,具体步骤如下:
a)获取图像当前像素的YUV分量,及其邻近区域内至少四个像素的YUV分量;
b)利用所述当前像素与邻近各像素YUV值的差别,判断当前像素是否为坏点,如果是坏点,进入步骤c)进行坏点补偿,否则,结束当前像素的处理;
c)利用邻近区域像素的YUV值对当前像素的像素值进行坏点补偿。
获取当前像素的YUV分量时,对每个像素的Y分量都进行处理,对U、V分量则是在水平或垂直方向上每间隔若干个像素处理一个U、V分量。
每间隔一个像素处理一个U、V分量,并选取与所处理的像素在水平和垂直方向上相隔一个像素的四个像素,对该像素的U、V分量进行坏点补偿处理。
可以选取与当前像素在水平和垂直方向上相隔一个像素的四个像素,来对当前像素的Y分量进行坏点补偿处理。
也可以选取与当前像素在水平和垂直方向上距离最近的四个像素,来对当前像素的Y分量进行坏点补偿处理。
所述的判断当前像素是否为坏点的方法具体为:
计算所述像素的YUV分量在水平和垂直方向上的梯度值;
将所述两个梯度值与预先设定的坏点判定阈值相比较,如果两梯度值都大于坏点判定阈值,则认为当前像素为坏点,进入步骤c),否则结束当前像素的处理,进入对下一像素的处理。
所述的坏点判定阈值包括三个:亮度分量Y的坏点判定阈值、色度分量U和V的坏点判定阈值,且亮度分量Y的坏点判定阈值小于色度分量U和V的坏点判定阈值。
所述U、V分量的坏点判定阈值相等。
所述的对当前像素进行坏点补偿的方法具体为:比较两梯度值,取梯度值较小方向的两个像素,计算其YUV分量均值,用该均值代替当前像素值。
本发明针对原有方法的不足,由原来针对RGB信号进行坏点补偿,改为针对YUV数据进行坏点补偿,这样有效利用了人眼对Y分量更敏感的特点,增强了坏点补偿的效果;进一步地,不是对每个像素的U、V分量都进行坏点补偿运算,而是隔点选取U、V数据进行坏点补偿运算,相当于减少了U、V分量的数据量,因此该方法能够大大减少计算量,同时也能对坏点进行有效补偿,提高图像质量。本发明公开的方法可以广泛应用于摄像头、数码相机等数码成像设备的图像数据处理模块中。
具体实施方式
本发明的核心思想为:利用人眼对亮度更为敏感,结合YUV格式数据将亮度与色度分别表示的特点,针对YUV数据进行坏点补偿。进一步地,还可以对U、V分量进行隔点处理,因此大大减少了计算量,提高了图像质量。
如图3所示,对YUV格式数据进行坏点补偿的步骤包括:
步骤一,获取当前像素的YUV分量,及其邻近区域内至少四个像素的YUV分量;
步骤二,利用当前像素与邻近区域像素的YUV值的差别,判断当前像素是否为坏点,若是,则进入步骤三对其进行坏点补偿,否则结束对当前像素的处理;
步骤三,利用邻近区域像素的YUV值对当前像素的像素值进行坏点补偿,结束对当前像素的处理。
下面结合附图4说明一个较佳的坏点补偿实施例的具体步骤。
步骤401,获取当前像素及其邻近区域内四个像素的YUV分量。
在技术背景中已经说明,YUV数据有多种格式,但是无论是哪种压缩格式,都可以将经过压缩的U、V分量分配到各个像素中,还原成为每个像素都含有Y、U、V分量的图像数据。因此在下述的坏点补偿实施例中,不考虑各个具体的数据格式,而是将每个像素都包含有YUV各分量的数据作为待处理的原始数据,来进行本发明方法的说明。
YUV数据原始的数据结构示意图如图2a所示,其中每一个像素都含有Y、U、V分量。
我们所要处理的像素值可以用亮度和色度两个通道的数据结构图来表示。如图2b所示,对Y通道的数据,处理每个像素时都对Y分量进行处理。而对于U、V分量,因为人眼对色度分量相对不敏感,所以采取隔点处理的方法,即不是对每个像素的U、V分量都进行处理,而是每隔若干像素点处理一个U、V分量。如图2c所示,在本实施例中,采取隔一点处理一个U、V分量,即在处理第n-1列时,对于U、V分量,选择对V分量进行处理,而处理第n列时,则选择对U分量进行处理。因此,对第n-1列的像素,只处理其像素值中的Y、V分量;而第n列的像素,只处理像素值中的Y、U分量,其它列像素选择处理的像素值同理可知。以下所述像素的YUV值因对各个像素处理时所选分量的不同而不同,若选择处理像素值中的Y、U分量,则YUV值实际指Y、U值;若选择处理像素值中的Y、V分量,则YUV值实际指Y、V值。
在此基础上再进行邻近区域像素的选取。
如图2b和2c所示,当前像素Pm,n中需要处理的像素值为Y、U分量,本实施例在选取邻近区域像素时,对Y和U分量都选择与该像素在水平和垂直方向上相隔一个像素的四个含有Y和U分量的像素Pm-2,n、Pm+2,n、Pm,n-2、Pm,n+2来对当前像素Pm,n进行坏点补偿的处理。
邻近区域像素的选取也可采取其它方式,如对当前像素中的Y分量,可选取在水平和垂直方向上与其距离最近的四个像素中的Y分量对其进行坏点补偿处理,但是这时Y分量邻近区域的像素与U分量邻近区域的像素不同,就必须采用不同的计算公式对Y和U进行坏点补偿,这样会导致计算方法的复杂化;对于U分量,若选取距离当前像素最近的四个像素,则没有充分利用人眼对亮度比对色度更敏感的特点,数据量较大。因此很少采用上述方式来选择邻近像素,而是在处理Y和U分量时选择相同的邻近像素,这样可使计算方法更简单,计算得到的两个方向的梯度值,更有可比性。
步骤402,计算水平和垂直方向上的YUV值的二阶梯度DH(m,n)和DV(m,n),具体为:Y分量:
水平方向,DY-H(m,n)=|(Pm,n-Pm,n-2)+(Pm,n-Pm,n+2)|=|-Pm,n-2+2Pm,n-Pm,n+2|,
垂直方向,DY-V(m,n)=|(Pm,n-Pm-2,n)+(Pm,n-Pm+2,n)|=|-Pm-2,n+2Pm,n-Pm+2,n|;
U、V分量的二阶梯度值DU-H(m,n),DU-V(m,n),DV-H(m,n)DV-V(m,n)可参照上述Y分量二阶梯度的计算式得到。
本实施例中的当前像素只需处理Y、U分量,因此只计算Y、U分量的二阶梯度即可。
步骤403,DH(m,n)和DV(m,n)是否都大于坏点判定阈值?
所述的坏点判定阈值为三个,其中亮度分量Y的坏点判定阈值为TY,色度分量U和V的坏点判定阈值为TU和TV,TY<TU且TY<TV。在实际使用中,用户可根据对图像质量的不同要求,自行调整各个阈值的大小。
所述Y、U、V各分量的二阶梯度值与各自的坏点判定阈值相比较,比较过程具体为:
DY-H(m,n)和DY-V(m,n)是否都大于TY?
若判断结果为是,则需要对Y分量进行坏点补偿;
DU-H(m,n)、DU-V(m,n)是否都大于TU?
若判断结果为是,则需要对U分量进行坏点补偿;
DV-H(m,n)和DV-V(m,n)是否都大于TV?
若判断结果为是,则需要对V分量进行坏点补偿。
若上述Y、U、V各个分量的二阶梯度与其相应的坏点判定阈值相比,进行坏点判断,其判断结果中有是,则进入步骤404;若结果均为否,结束对当前像素的处理。
在本实施例中,令TV=TU,可简化计算过程。本实施例中只需分别令Y、U的二阶梯度值与其相应的坏点判定阈值相比较。假设需要对Y分量进行坏点补偿,则对Y分量的处理进入步骤404,同时结束对U分量的处理。
步骤404,DH(m,n)≥DV(m,n)?
若判断结果为是,即说明水平方向的像素值突变程度较大,需要用垂直方向的两个像素的像素值来对当前像素的像素值进行修正。
具体为:对于Y分量,判断DY-H(m,n)是否大于等于DY-V(m,n),若结果为是,则进入步骤405;否则进入步骤406。
对于U、V分量的处理,与上述对Y分量的处理方法相同。
本实施例在上述步骤403中假设Y分量需要坏点补偿,所以需判断Y分量的二阶梯度DY-H(m,n)是否大于等于DY-V(m,n),若结果为是,则进入步骤405;否则进入步骤406。
假设Y分量水平方向的二阶梯度DY-H(m,n)大于DY-V(m,n),进入步骤405。
步骤405,用垂直方向上两个像素的像素均值代替当前像素值。
即:分别用Pm-2,n、Pm+2,n两个像素中的YUV值的均值(Ym-2,n+Ym+2,n)/2、(Um-2,n+Um+2,n)/2或(Vm-2,n+Vm+2,n)/2来代替当前像素Pm,n中的Ym,n、Um,n或Vm,n,结束当前像素的处理。
在本实施例中,需用Pm-2,n、Pm+2,n两个像素中Y值的均值(Ym-2,n+Ym+2,n)/2代替当前像素Pm,n中的Ym,n。
步骤406,用水平方向上两个像素的像素均值代替当前像素值。
即:用Pm,n-2、Pm,n+2两个像素中的YUV值的均值(Ym,n-2+Ym,n+2)/2、(Um,n-2+Um,n+2)/2或(Vm,n-2+Vm,n+2)/2来代替当前像素Pm,n中的Ym,n、Um,n或Vm,n,结束当前像素的处理。
除此之外,在对Y分量进行坏点补偿时,也可选取距离当前像素最近的水平和垂直方向上的四个像素对当前像素的Y分量进行坏点补偿处理。而U、V分量除了上述实施例中所述的U和V相邻出现的情况之外,也可选择U和V分量出现在同一像素内,在这种情况下,需获取邻近区域至少四个像素中的U和V分量对当前像素中的U和V分量进行坏点补偿。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。