块效应去除方法及去块效应滤波器与流程

文档序号:12789938阅读:459来源:国知局
块效应去除方法及去块效应滤波器与流程

本申请实施例涉及图像处理技术领域,更具体的涉及块效应去除方法及去块效应滤波器。



背景技术:

去块效应滤波器是现代视频编码器的核心模块,它作用于解码视频的变换块边界,用于消除或减弱因为独立块变换造成的边界效应。现代视频编码标准如H.264、H.265、AVS(Audio Video coding Standard,信源编码标准)、VPx系列等都内置有去块效应滤波器。去块效应滤波器分为两个部分,第一个是决定滤波强度,第二步是对变换块边界执行相应强度的滤波。现代视频编码标准都规定了两种不同的滤波方法,一种强滤波,一种弱滤波。下面以现代视频编码标准H.265为例,对现有技术中的去块效应滤波器的滤波计算方法进行说明,如图1所示,假设图像中一待去块效应的边界两侧的相邻像素为:p0~p3,q0~q3。假设p0~p3和q0~q3为待滤波像素;p’0~p’3和q’0~q’3为相应的完成滤波的去块效应像素。

强滤波过程包括的滤波计算函数如下:

p′0=Clip3(p0-2*tcp0+2*tc,(p2+2*p0+2*q0+q1+4)>>3)

p′1=Clip3(p1-2*tc,p1+2*tc,(p2+p1+p0+q0+2)>>2)

p′2=Clip3(p2-2*tc,p2+2*tc,(2*p3+3*p2+p1+p0+q0+4)>>3)

q′0=Clip3(q0-2*tc,q0+2*tc,(p1+2*p0+2*q0+2*q1+q2+4)>>3)

q′1=Clip3(q1-2*tc,q1+2*tc,(p0+q0+q1+q2+2)>>2)

q′2=Clip3(q2-2*tc,q2+2*tc,(p0+q0+q1+3*q2+2*q3+4)>>3)

p′3=p3

q′3=q3

其中,tc大于0。在计算上述滤波计算函数的过程中,首先计算6个目标公式,

具体为:然后,再计算滤波计算函数中的在计算上述6个目标公式的过程中,需要执行16次unpack操作,将p0~p3和q0~q3变为16位精度;再分别执行两次计算函数:s0=p0+q0;sl=p2+p1;sr=q2+q1;s3=p2+p3;s4=q2+q3;s5=p1+q1;s6=s5+s0;sp1=s0+sl;sq1=s0+sr;p2x=((s3<<1)+sp1+4)>>3;q2x=((s4<<1)+sq1+4)>>3;p0x=(sp1+s6+4)>>3;q0x=(sq1+s6+4)>>3;p1x=(sp1+2)>>2;q1x=(sq1+2)>>2

执行一次上述过程需要27次移位或加法操作,执行两次则需要54次操作。计算出上述6个目标公式后,将p0x;p1x;p2x;q0x;q1x;q1x;p3;q3分别执行pack操作(unpack的反操作),即8次pack操作。在执行以下6个简化公式之前总共进行了78次操作。然后再执行以下6个简化公式,以便计算出滤波后的像素值:

p'0=Clip3(p0-2*tc,p0+2*tc,p0x);p1'=Clip3(p1-2*tc,p1+2*tc,p1x);

p'2=Clip3(p2-2*tc,p2+2*tc,p2x);q'0=Clip3(q0-2*tc,q0+2*tc,q0x)

q1'=Clip3(q1-2*tc,q1+2*tc,q1x);q'2=Clip3(q2-2*tc,q2+2*tc,q2x)

弱滤波的过程如下:

弱滤波涉及左右两侧各两个像素,分别为p0~p1和q0~q1;弱滤波的滤波计算函数包括:Δ=(9*(q0-p0)-3*(q1-p1)+8)>>4;然后依据Δ计算出p’0~p’1和q’0~q’1。在计算上述滤波计算函数时,由于(q0-p0)与(q1-p1)的计算结果动态范围是[-255,255],而9*(q0-p0)和3*(q1-p1)的动态范围在8位精度以上,所以需要进行unpack操作,先计算出简化公式:9*(q0-p0)和3*(q1-p1)后,再执行pack操作,最后计算出Δ。

综上,无论是强滤波还是弱滤波,滤波计算函数的计算都比较复杂。



技术实现要素:

有鉴于此,本发明提供了一种块效应去除方法及去块效应滤波器,以克服现有技术中计算操作次数较多,计算复杂的问题。

为实现上述目的,本发明提供如下技术方案:

一种块效应去除方法,包括:

从目标滤波计算函数中确定目标公式,所述目标滤波计算函数用于计算图像中待滤波像素相应的去块效应像素;

依据八位精度的所述待滤波像素,调用预先设置的所述目标公式相应的计算函数,获得所述目标公式的八位精度的目标函数值;

其中,所述计算函数中包括右移操作,所述目标函数值中八位数据中的低N位数据与所述目标公式的真实值的低N位数据相同,其中,N=8-最大值,所述最大值为所述右移操作中向右移的最大位数,所述目标公式的真实值是指以十六位精度的所述待滤波像素,调用所述目标公式相应的计算函数,获得的所述目标公式的真实值;

依据八位精度的所述待滤波像素,计算出所述目标公式的上限值;

依据所述目标函数值与所述上限值计算出所述目标公式的真实值;

依据所述目标公式的真实值,获取所述目标滤波计算函数的值。

其中,所述从目标滤波计算函数中确定目标公式包括:

确定目标滤波方法,所述目标滤波方法为强滤波方法或弱滤波方法;

从预先设置的各滤波方法相应的滤波计算函数中,确定出所述目标滤波方法对应的目标滤波计算函数;

从所述目标滤波计算函数中,确定出所述目标公式。

其中,当所述目标滤波计算函数与强滤波方法相应时,所述依据八位精度的所述待滤波像素,计算出所述目标公式的上限值包括:

获取强滤波方法相应的所述目标公式的上限函数;

将八位精度的所述待滤波像素带入所述上限函数,获得所述目标公式的上限值,所述待滤波像素包括p0,p1,p2,p3,q0,q1,q2,q3

所述上限函数包括:

r0=(p0+q0+1)>>1;rl=(p2+p1+1)>>1;rr=(q2+q1+1)>>1;r3=(p2+p3+1)>>1;

r4=(q2+q3+1)>>1;r5=(p1+q1+1)>>1;r6=(r5+r0+1)>>1;rp1=(r0+rl+1)>>1;

rq1=(r0+rr+1)>>1;rp2=(r3+rp1+1)>>1;rq2=(r4+rq1+1)>>1;rp0=(rp1+r6+1)>>1;

rq0=(rq1+r6+1)>>1

其中,p0,p1,p2,p3分别为图像中目标边界右侧4个像素,q0,q1,q2,q3为所述目标边界左侧4个像素;rp0,rp1,rp2分别为p0,p1,p2相应的目标公式的上限值;rq0,rq1,rq2分别为q0,q1,q2相应的目标公式的上限值。

其中,所述计算函数为:

其中,q0x,q1x,q2x分别为q0,q1,q2相应的目标公式的目标函数值,p0x,p1x,p2x分别为p0,p1,p2相应的目标公式的目标函数值;

所述依据所述目标函数值与所述上限值计算出所述目标公式的真实值包括:

调用预先设置的真实值获取函数,获得所述目标公式的真实值,其中所述真实值获取函数包括:

p0y=f(rp0,p0x);p1y=f(rp1,p1x);p2y=f(rp2,p2x);

q0y=f(rq0,q0x);q1y=f(rq1,q1x);q2y=f(rq2,q2x);

其中,f(x,y)=x-(A&(x-y)),其中,A为八位数据,且A的八位数据由高位向低位方向,第一位至第三位数据均为零,第七位和第八位数据均为1;其中,p0y,p1y,p2y分别为p0,p1,p2相应的目标公式的真实值;q0y,q1y,q2y分别为q0,q1,q2相应的目标公式的真实值。

其中,当所述目标滤波计算函数与弱滤波方法相应时,所述目标滤波计算函数包括:

Δ=(9*(q0-p0)-3*(q1-p1)+8)>>4

=(9*(q0+p00-256+1)+3*(p1+q11-256+1)+8)>>4

=((9*(q0+p00)+3*(p1+q11)+4)>>4)-191

=Δ1-191

其中,Δ1为所述目标公式;

所述依据八位精度的所述待滤波像素,计算出所述目标公式的上限值包括:

获取弱滤波方法相应的所述目标公式的上限函数;

将八位精度的所述待滤波像素带入所述上限函数,获得所述目标公式的上限值,所述待滤波像素包括p0,p1,p2,p3,q0,q1,q2,q3

所述上限函数包括:

a=(q0+p00+1)>>1;b=(p1+q11+1)>>1;c=(a+b+1)>>1;

d=(c+b+1)>>1;e=(d+0+1)>>1;Δ2=Clip3(0,255,a+e);

其中,p0,p1,p2,p3分别为图像中目标边界右侧4个像素,q0,q1,q2,q3为所述目标边界左侧4个像素;p00=255-p0;q11=255-q1;Δ2为所述上限值。

其中,所述依据八位精度的所述待滤波像素,调用预先设置的所述目标公式相应的计算函数,获得所述目标公式的目标函数值包括:

所述计算函数为:

f=q0+p00;g=p1+q11;h=(f<<3)+f;j=(g<<1)+g;k=(h+j+4)>>4;

将八位精度的所述待滤波像素带入所述计算函数,获得所述目标公式的目标函数值K;

所述依据所述目标函数值与所述上限值计算出所述目标公式的真实值包括:

依据预先设置的真实值获取函数Δ1=Δ2-(B&(Δ2-k)),获得所述目标公式的真实值,其中,B为八位数据,且B的八位数据由高位向低位方向,第一位至第四位数据均为零,第七位和第八位数据均为1,Δ1为所述目标公式的真实值。

一种去块效应滤波器,包括:

确定模块,用于从目标滤波计算函数中确定目标公式,所述目标公式的计算精度大于八位精度,所述目标滤波计算函数用于计算图像中待滤波像素相应的去块效应像素;

第一获取模块,用于依据八位精度的所述待滤波像素,调用预先设置的所述目标公式相应的计算函数,获得所述目标公式的目标函数值,所述目标函数值的低N位的数据与所述目标滤波计算函数的真实值的低N数据相同,其中,N=8-最大值,所述最大值为所述计算函数中向右移位的最大值;

第一计算模块,用于依据八位精度的所述待滤波像素,计算出所述目标公式的上限值;

第二计算模块,用于依据所述目标函数值与所述上限值计算出所述目标公式的真实值;

第二获取模块,用于依据所述目标公式的真实值,获取所述目标滤波计算函数的值。

其中,所述确定模块包括:

第一确定单元,用于确定目标滤波方法,所述目标滤波方法为强滤波方法或弱滤波方法;

第二确定单元,用于从预先设置的各滤波方法相应的滤波计算函数中,确定出所述目标滤波方法对应的目标滤波计算函数;

第三确定单元,用于从所述目标滤波计算函数中,确定出所述目标公式。

其中,当所述目标滤波计算函数与强滤波方法相应时,所述第一计算模块包括:

第一获取单元,用于获取强滤波方法相应的所述目标公式的上限函数;

第二获取单元,用于将八位精度的所述待滤波像素带入所述上限函数,获得所述目标公式的上限值,所述待滤波像素包括p0,p1,p2,p3,q0,q1,q2,q3

所述上限函数包括:

r0=(p0+q0+1)>>1;rl=(p2+p1+1)>>1;rr=(q2+q1+1)>>1;r3=(p2+p3+1)>>1;

r4=(q2+q3+1)>>1;r5=(p1+q1+1)>>1;r6=(r5+r0+1)>>1;rp1=(r0+rl+1)>>1;

rq1=(r0+rr+1)>>1;rp2=(r3+rp1+1)>>1;rq2=(r4+rq1+1)>>1;rp0=(rp1+r6+1)>>1;

rq0=(rq1+r6+1)>>1

其中,p0,p1,p2,p3分别为图像中目标边界右侧4个像素,q0,q1,q2,q3为所述目标边界左侧4个像素;rp0,rp1,rp2分别为p0,p1,p2相应的目标公式的上限值;rq0,rq1,rq2分别为q0,q1,q2相应的目标公式的上限值。

其中,所述计算函数为:

其中,q0x,q1x,q2x分别为q0,q1,q2相应的目标公式的目标函数值,p0x,p1x,p2x分别为p0,p1,p2相应的目标公式的目标函数值;

所述第二计算模块包括:

第三获取单元,用于调用预先设置的真实值获取函数,获得所述目标公式的真实值,其中所述真实值获取函数包括:

p0y=f(rp0,p0x);p1y=f(rp1,p1x);p2y=f(rp2,p2x);

q0y=f(rq0,q0x);q1y=f(rq1,q1x);q2y=f(rq2,q2x);

其中,f(x,y)=x-(A&(x-y)),其中,A为八位数据,且A的八位数据由高位向低位方向,第一位至第三位数据均为零,第七位和第八位数据均为1;其中,p0y,p1y,p2y分别为p0,p1,p2相应的目标公式的真实值;q0y,q1y,q2y分别为q0,q1,q2相应的目标公式的真实值。

经由上述的技术方案可知,与现有技术相比,本发明实施例提供了一种块效应去除方法,将计算精度大于八位精度的目标公式,使用八位精度计算,所以计算出的目标公式的结果只有低N位数据有效,即与目标公式的真实值的低N数据相同。为了得到目标滤波计算函数的真实值,还需要计算出目标公式的上限值,再依据所述目标函数值与所述上限值计算出所述目标公式的真实值;依据所述目标公式的真实值,获取所述目标滤波计算函数的值。与现有技术中使用16位精度计算相比,降低了计算复杂程度,且由于使用8位精度所以无需进行unpack操作和pack操作,降低了操作次数,从而使得块效应去除方法计算简便。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有技术中图像中待去块效应的边界两侧的相邻像素的布局示意图;

图2为现有技术中unpack操作的示意图;

图3为本申请实施例提供的块效应去除方法的流程示意图;

图4为本申请实施例提供的一种块效应去除方法中从目标滤波计算函数中确定目标公式的一种实现方式的方法流程示意图;

图5为本申请实施例提供的一种去块效应滤波器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有技术中,强滤波过程包括的滤波计算函数中6个目标公式的计算精度大于8位,所以这8个像素是16个字节,以图1为例,图1中相邻的8个像素都需要进行unpack操作。

假设一像素为Y7Y6Y5Y4Y3Y2Y1Y0,另一像素为X7X6X5X4X3X2X1X0,则将这两个数据进行unpack操作,即为将两个像素的相对应的两位两两交叉,如图2中示出的Y3X3Y2X2Y1X1Y0X0。若Y7Y6Y5Y4Y3Y2Y1Y0均为0,则unpack过程就是将X7X6X5X4X3X2X1X0由16位无符号数变为32位无符号数。

由于8个像素是16个字节,所以每个像素需要进行2次unpack操作,总共16次unpack操作。

然后将unpack操作得到的16位精度的像素带入计算函数:s0=p0+q0;sl=p2+p1;sr=q2+q1;s3=p2+p3;s4=q2+q3;s5=p1+q1;s6=s5+s0;sp1=s0+sl;sq1=s0+sr;p2x=((s3<<1)+sp1+4)>>3;q2x=((s4<<1)+sq1+4)>>3;p0x=(sp1+s6+4)>>3;q0x=(sq1+s6+4)>>3;p1x=(sp1+2)>>2;q1x=(sq1+2)>>2

执行一次上述过程需要27次移位或加法操作,由于8个像素均为16位精度,因此需要执行两次上述操作,总共54次操作。

在计算出6个目标公式的值后,将p0x;p1x;p2x;q0x;q1x;q1x;p3;q3分别执行pack操作(unpack的反操作),即8次pack操作,总共是78次操作。

弱滤波的滤波计算函数包括:Δ=(9*(q0-p0)-3*(q1-p1)+8)>>4,由于(q0-p0)与(q1-p1)的计算结果动态范围是[-255,255],而9*(q0-p0)和3*(q1-p1)的动态范围在8位精度以上,所以需要对进行8次unpack操作以及4次pack操作,操作繁琐。

为此本申请实施例提供了一种操作次数较少的块效应去除方法。

请参阅图3,为本申请实施例提供的块效应去除方法的流程示意图,该方法包括:

步骤S301:从目标滤波计算函数中确定目标公式,所述目标滤波计算函数用于计算图像中待滤波像素相应的去块效应像素。

当滤波方法为强滤波方法时,目标滤波计算函数包括:

目标公式为:

其中,(p2+2*p0+2*q0+q1+4)>>3为像素p0的目标公式;(p2+p1+p0+q0+2)>>2为像素p1的目标公式;(2*p3+3*p2+p1+p0+q0+4)>>3为像素p2的目标公式;(p1+2*p0+2*q0+2*q1+q2+4)>>3为像素q0的目标公式;(p0+q0+q1+q2+2)>>2为像素q1的目标公式;p0+q0+q1+3*q2+2*q3+4)>>3为像素q2的目标公式。

当滤波方法为弱滤波方法时,目标滤波计算函数包括:

Δ=(9*(q0-p0)-3*(q1-p1)+8)>>4

=(9*(q0+p00-256+1)+3*(p1+q11-256+1)+8)>>4

=((9*(q0+p00)+3*(p1+q11)+4)>>4)-191

=Δ1-191

其中,Δ1=((9*(q0+p00)+3*(p1+q11)+4)>>4)为目标公式。

因为Δ的值需要在-tc到tc范围内,例如HEVC(High Efficiency Video Coding)中tc最大值为24,所以Δ1=((9*(q0+p00)+3*(p1+q11)+4)>>4)只需要保持在范围0-255即可,不需要更高精度,所以可以用8位精度计算。

步骤S302:依据八位精度的所述待滤波像素,调用预先设置的所述目标公式相应的计算函数,获得所述目标公式的八位精度的目标函数值。

其中,所述计算函数中包括右移操作,所述目标函数值中八位数据中的低N位数据与所述目标公式的真实值的低N位数据相同,其中,N=8-最大值,所述最大值为所述右移操作中向右移的最大位数,所述目标公式的真实值是指以十六位精度的所述待滤波像素,调用所述目标公式相应的计算函数,获得的所述目标公式的真实值。

当滤波方法为强滤波方法时,目标公式相应的计算函数包括:

s0=p0+q0;sl=p2+p1;sr=q2+q1;s3=p2+p3;s4=q2+q3;s5=p1+q1

s6=s5+s0;sp1=s0+sl;sq1=s0+sr;p2x=((s3<<1)+sp1+4)>>3;

q2x=((s4<<1)+sq1+4)>>3;p0x=(sp1+s6+4)>>3;

q0x=(sq1+s6+4)>>3;p1x=(sp1+2)>>2;q1x=(sq1+2)>>2

其中,q0x,q1x,q2x分别为q0,q1,q2相应的目标公式的目标函数值,p0x,p1x,p2x分别为p0,p1,p2相应的目标公式的目标函数值。

其中,都包括右移操作,且向右移的最大位数为3,所以N=8-3=5。

当滤波方法为弱滤波方法时,目标公式相应的计算函数包括:

f=q0+p00;g=p1+q11;h=(f<<3)+f;j=(g<<1)+g;k=(h+j+4)>>4。

其中,k=(h+j+4)>>4包括右移操作,且向右移的最大位数为4,所以N=8-4=4。

对于八位数据而言,从左向右,即从高位向低位,假设八位数据为11111010,则高4位为1111,低4位为1010,低5位为11010。

步骤S303:依据八位精度的所述待滤波像素,计算出所述目标公式的上限值。

当滤波方法为强滤波方法时,N为5,依据八位精度的所述待滤波像素,计算出所述目标公式的上限值包括:

获取强滤波方法相应的目标公式的上限函数;

将八位精度的所述待滤波像素带入所述上限函数,获得所述目标公式的上限值,所述待滤波像素包括p0,p1,p2,p3,q0,q1,q2,q3

所述上限函数包括:

r0=(p0+q0+1)>>1;rl=(p2+p1+1)>>1;rr=(q2+q1+1)>>1;r3=(p2+p3+1)>>1;

r4=(q2+q3+1)>>1;r5=(p1+q1+1)>>1;r6=(r5+r0+1)>>1;rp1=(r0+rl+1)>>1;

rq1=(r0+rr+1)>>1;rp2=(r3+rp1+1)>>1;rq2=(r4+rq1+1)>>1;rp0=(rp1+r6+1)>>1;

rq0=(rq1+r6+1)>>1

其中,p0,p1,p2,p3分别为图像中目标边界右侧4个像素,q0,q1,q2,q3为所述目标边界左侧4个像素;rp0,rp1,rp2分别为p0,p1,p2相应的目标公式的上限值;rq0,rq1,rq2分别为q0,q1,q2相应的目标公式的上限值。

当滤波方法为强滤波方法时,依据八位精度的所述待滤波像素,计算出所述目标公式的上限值包括:

获取弱滤波方法相应的所述目标公式Δ1的上限函数;

将八位精度的所述待滤波像素带入所述上限函数,获得所述目标公式的上限值,所述待滤波像素包括p0,p1,p2,p3,q0,q1,q2,q3

所述上限函数包括:

a=(q0+p00+1)>>1;b=(p1+q11+1)>>1;c=(a+b+1)>>1;

d=(c+b+1)>>1;e=(d+0+1)>>1;Δ2=Clip3(0,255,a+e);

其中,p0,p1,p2,p3分别为图像中目标边界右侧4个像素,q0,q1,q2,q3为所述目标边界左侧4个像素;p00=255-p0;q11=255-q1;Δ2为所述上限值。

步骤S304:依据所述目标函数值与所述上限值计算出所述目标公式的真实值。

当滤波方法为强滤波方法时,依据所述目标函数值与所述上限值计算出所述目标公式的真实值包括:

调用预先设置的真实值获取函数,获得所述目标公式的真实值,其中所述真实值获取函数包括:

p0y=f(rp0,p0x);p1y=f(rp1,p1x);p2y=f(rp2,p2x);

q0y=f(rq0,q0x);q1y=f(rq1,q1x);q2y=f(rq2,q2x);

其中,f(x,y)=x-(A&(x-y)),其中,A为八位数据,且A的八位数据由高位向低位方向,第一位至第三位数据均为零,第七位和第八位数据均为1;其中,p0y,p1y,p2y分别为p0,p1,p2相应的目标公式的真实值;q0y,q1y,q2y分别为q0,q1,q2相应的目标公式的真实值。

A为000XX11,其中X表示为0或1,例如A为7,第一位至第三位即为高三位数据均为0,第7位和第八位数据即为低2位数据都为1。

当滤波方法为弱滤波方法时,依据所述目标函数值与所述上限值计算出所述目标公式的真实值包括:

依据预先设置的真实值获取函数Δ1=Δ2-(B&(Δ2-k)),获得所述目标公式的真实值,其中,B的八位数据由高位向低位方向,第一位至第四位数据均为零,第七位和第八位数据均为1,Δ1为所述目标公式的真实值。

B为0000XX11,其中X表示为0或1,例如B可以为15,第一位至第四位即为高四位数据均为0,第7位和第八位数据即为低2位数据都为1。

步骤S305:依据所述目标公式的真实值,获取所述目标滤波计算函数的值。

当滤波方法为强滤波方法时,可以依据如下公式计算出目标滤波计算函数的真实值:

p'0=Clip3(p0-2*tc,p0+2*tc,p0x);p1'=Clip3(p1-2*tc,p1+2*tc,p1x);

p'2=Clip3(p2-2*tc,p2+2*tc,p2x);q'0=Clip3(q0-2*tc,q0+2*tc,q0x)

q1'=Clip3(q1-2*tc,q1+2*tc,q1x);q'2=Clip3(q2-2*tc,q2+2*tc,q2x)

当滤波方法为若滤波方法时,可以依据如下公式计算出目标滤波计算函数的真实值:Δ=Δ1-191。

对于强滤波而言,在执行步骤S305之前需要以8位精度计算6个目标公式的目标函数值,总共27次加法或移位操作;计算6个目标公式的上限值总共13次操作;获得目标公式的真实值总共18次加法或逻辑操作;总共58次操作,与现有技术中,强滤波方法需要78次操作而言,节省了20次操作,节约了约25%,且节省的都是unpack操作和pack操作。且unpack操作和pack操作比普通的加法或逻辑运算更慢,因此本申请实施例提供的块效应去除方法速度更快。

对于弱滤波而言,在执行步骤S305之前,需要以8位精度计算1个目标公式的目标函数值、目标公式的上限值、目标公式的真实值,总共18次加法、移位或逻辑运算。且节省了8次unpack操作以及4次pack操作,节省了大量运算。

综上,本发明实施例提供的一种块效应去除方法,将计算精度大于八位精度的目标公式,使用八位精度计算,所以计算出的目标公式的结果只有低N位数据有效,即与目标公式的真实值的低N数据相同。为了得到目标滤波计算函数的真实值,还需要计算出目标公式的上限值,再依据所述目标函数值与所述上限值计算出所述目标公式的真实值;依据所述目标公式的真实值,获取所述目标滤波计算函数的值。与现有技术中使用16位精度计算相比,降低了计算复杂程度,且由于使用8位精度所以无需进行unpack操作和pack操作,降低了操作次数,从而使得块效应去除方法计算简便。

如图4所示,为本申请实施例提供的一种块效应去除方法中从目标滤波计算函数中确定目标公式的一种实现方式的方法流程示意图,该方法包括:

步骤S401:确定目标滤波方法,所述目标滤波方法为强滤波方法或弱滤波方法。

步骤S402:从预先设置的各滤波方法相应的滤波计算函数中,确定出所述目标滤波方法对应的目标滤波计算函数。

步骤S403:从所述目标滤波计算函数中,确定出所述目标公式。

本申请实施例还提供了一种与块效应去除方法相应的去块效应滤波器,下面对去块效应滤波器进行介绍。去块效应滤波器中各模块和各单元的详细介绍可以参见块效应去除方法中相应步骤的描述,这里不再赘述。

如图5所示,为本申请实施例提供的一种去块效应滤波器的结构示意图。该去块效应滤波器包括:确定模块51、第一获取模块52、第一计算模块53、第二计算模块54以及第二获取模块55,其中:

确定模块51,用于从目标滤波计算函数中确定目标公式,所述目标滤波计算函数用于计算图像中待滤波像素相应的去块效应像素;

第一获取模块52,用于依据八位精度的所述待滤波像素,调用预先设置的所述目标公式相应的计算函数,获得所述目标公式的八位精度的目标函数值,

其中,所述计算函数中包括右移操作,所述目标函数值中八位数据中的低N位数据与所述目标公式的真实值的低N位数据相同,其中,N=8-最大值,所述最大值为所述右移操作中向右移的最大位数,所述目标公式的真实值是指以十六位精度的所述待滤波像素,调用所述目标公式相应的计算函数,获得的所述目标公式的真实值;

第一计算模块53,用于依据八位精度的所述待滤波像素,计算出所述目标公式的上限值;

第二计算模块54,用于依据所述目标函数值与所述上限值计算出所述目标公式的真实值;

第二获取模块55,用于依据所述目标公式的真实值,获取所述目标滤波计算函数的值。

可选的,所述确定模块包括:

第一确定单元,用于确定目标滤波方法,所述目标滤波方法为强滤波方法或弱滤波方法;

第二确定单元,用于从预先设置的各滤波方法相应的滤波计算函数中,确定出所述目标滤波方法对应的目标滤波计算函数;

第三确定单元,用于从所述目标滤波计算函数中,确定出所述目标公式。

可选的,当所述目标滤波计算函数与强滤波方法相应时,所述第一计算模块包括:

第一获取单元,用于获取强滤波方法相应的所述目标公式的上限函数;

第二获取单元,用于将八位精度的所述待滤波像素带入所述上限函数,获得所述目标公式的上限值,所述待滤波像素包括p0,p1,p2,p3,q0,q1,q2,q3

所述上限函数包括:

r0=(p0+q0+1)>>1;rl=(p2+p1+1)>>1;rr=(q2+q1+1)>>1;r3=(p2+p3+1)>>1;

r4=(q2+q3+1)>>1;r5=(p1+q1+1)>>1;r6=(r5+r0+1)>>1;rp1=(r0+rl+1)>>1;

rq1=(r0+rr+1)>>1;rp2=(r3+rp1+1)>>1;rq2=(r4+rq1+1)>>1;rp0=(rp1+r6+1)>>1;

rq0=(rq1+r6+1)>>1

其中,p0,p1,p2,p3分别为图像中目标边界右侧4个像素,q0,q1,q2,q3为所述目标边界左侧4个像素;rp0,rp1,rp2分别为p0,p1,p2相应的目标公式的上限值;rq0,rq1,rq2分别为q0,q1,q2相应的目标公式的上限值。

可选的,当所述目标滤波计算函数与强滤波方法相应时,所述计算函数为:

其中,q0x,q1x,q2x分别为q0,q1,q2相应的目标公式的目标函数值,p0x,p1x,p2x分别为p0,p1,p2相应的目标公式的目标函数值;

所述第二计算模块包括:

第三获取单元,用于调用预先设置的真实值获取函数,获得所述目标公式的真实值,其中所述真实值获取函数包括:

p0y=f(rp0,p0x);p1y=f(rp1,p1x);p2y=f(rp2,p2x);

q0y=f(rq0,q0x);q1y=f(rq1,q1x);q2y=f(rq2,q2x);

其中,f(x,y)=x-(A&(x-y)),其中,A为八位数据,且A的八位数据由高位向低位方向,第一位至第三位数据均为零,第七位和第八位数据均为1;其中,p0y,p1y,p2y分别为p0,p1,p2相应的目标公式的真实值;q0y,q1y,q2y分别为q0,q1,q2相应的目标公式的真实值。

可选的,当所述目标滤波计算函数与弱滤波方法相应时,所述目标滤波计算函数包括:

Δ=(9*(q0-p0)-3*(q1-p1)+8)>>4

=(9*(q0+p00-256+1)+3*(p1+q11-256+1)+8)>>4

=((9*(q0+p00)+3*(p1+q11)+4)>>4)-191

=Δ1-191

其中,Δ1为所述目标公式;

所述第一计算模块包括:

第四获取单元,用于获取弱滤波方法相应的所述目标公式的上限函数;

第五获取单元,用于将八位精度的所述待滤波像素带入所述上限函数,获得所述目标公式的上限值,所述待滤波像素包括p0,p1,p2,p3,q0,q1,q2,q3

所述上限函数包括:

a=(q0+p00+1)>>1;b=(p1+q11+1)>>1;c=(a+b+1)>>1;

d=(c+b+1)>>1;e=(d+0+1)>>1;Δ2=Clip3(0,255,a+e);

其中,p0,p1,p2,p3分别为图像中目标边界右侧4个像素,q0,q1,q2,q3为所述目标边界左侧4个像素;p00=255-p0;q11=255-q1;Δ2为所述上限值。

可选的,当所述目标滤波计算函数与弱滤波方法相应时,所述第一获取模块包括:

所述计算函数为:

f=q0+p00;g=p1+q11;h=(f<<3)+f;j=(g<<1)+g;k=(h+j+4)>>4;

第六获取单元,用于将八位精度的所述待滤波像素带入所述计算函数,获得所述目标公式的目标函数值K;

所述第二计算模块包括:

第七获取单元,用于依据预先设置的真实值获取函数Δ1=Δ2-(B&(Δ2-k)),获得所述目标公式的真实值,其中,B为八位数据,且B的八位数据由高位向低位方向,第一位至第四位数据均为零,第七位和第八位数据均为1,Δ1为所述目标公式的真实值。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1