CN102724504B - 视频编码滤波方法及装置 - Google Patents
视频编码滤波方法及装置 Download PDFInfo
- Publication number
- CN102724504B CN102724504B CN201210195774.5A CN201210195774A CN102724504B CN 102724504 B CN102724504 B CN 102724504B CN 201210195774 A CN201210195774 A CN 201210195774A CN 102724504 B CN102724504 B CN 102724504B
- Authority
- CN
- China
- Prior art keywords
- macro block
- current frame
- frame image
- pix
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例提供一种视频编码滤波方法及装置,该视频编码滤波方法包括:对当前帧图像进行整像素运动估计,获得所述当前帧图像的宏块的运动矢量;根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性;若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。本发明实施例提供的视频编码滤波方法及装置,避免了载入前一帧原始图像带来的计算复杂提高和带宽占用问题,提高了滤波效果。
Description
技术领域
本发明实施例涉及视频处理技术,尤其涉及一种视频编码滤波方法及装置。
背景技术
视频图像数据有极强的相关性,即存在大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息,压缩编码技术就是将数据中的冗余信息去掉。
在去时域冗余信息过程中,通常需要对视频图像数据进行基于运动补偿的时域滤波处理,该处理过程具体可以为:假设当前图像和前一帧图像进行运动补偿时域滤波的系数为alpha(x,y),其中(x,y)表示像素点在图像中的位置,当前图像中像素点的像素值为curr(x,y),前一帧图像中像素点的像素值为prev(x,y)。则对图像中每个像素滤波后的值为:pix_value(x,y)=alpha(x,y)×prev(x+mvx,y+mvy)+(1-alpha(x,y))×curr(x,y),其中(mvx,mvy)分别为运动矢量的水平分量和垂直分量。上述基于运动补偿的时域滤波在噪声方面有着很好抑制作用,但是由于其需要至少两帧数据进行混合滤波,需要在对当前帧图像编码处理时载入前一帧原始图像,带来了计算复杂提高、带宽占用大等问题。
发明内容
本发明实施例提供一种视频编码滤波方法及装置,以避免带宽占用,提高滤波效果。
本发明实施例提供一种视频编码滤波方法,包括:
对当前帧图像进行整像素运动估计,获得所述当前帧图像的宏块的运动矢量;
根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性;
若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。
本发明实施例提供一种视频编码滤波装置,包括:
获取单元,用于对当前帧图像进行整像素运动估计,获得所述当前帧图像的宏块的运动矢量;
判断单元,用于根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性;
滤波处理单元,用于若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。
由上述技术方案可知,本发明实施例提供的视频编码滤波方法及装置,对当前帧图像进行整像素运动估计,获得当前帧图像的宏块的运动矢量,根据当前帧图像的宏块的运动矢量,判断前帧图像的宏块的运动的真实性,若当前帧图像的宏块的运动的真实性为真,则将当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。。由于在混合滤波处理过程中,将当前宏块与前一帧编码图像中对应的前一帧宏块进行混合滤波处理,该前一帧编码图像为编码过程中生成的,避免了载入前一帧原始图像带来的计算复杂提高和带宽占用问题,提高了滤波效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的视频编码滤波方法流程图;
图2为本发明实施例提供的一种视频编码滤波装置结构示意图;
图3为本发明实施例提供的另一种视频编码滤波装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的视频编码滤波方法流程图。如图1所示,本实施例提供的视频编码滤波方法具体可以应用于视频编码过程中对图像经过整像素运动估计后的时域滤波处理过程,可以通过视频编码滤波装置来执行,该视频编码滤波装置可以采用软和/或硬件的方式来实现,该视频编码滤波装置可以集成在视频编码器中,也可以单独设置,不以本实施例为限。
在实际应用中,视频编码过程具体可以包括整像素速运动估计、时域滤波、分数像素运动估计、变换编码、量化编码和熵编码等处理过程,对视频图像数据的第一帧图像的编码过程,可以不进行时域滤波处理,得到第一帧编码图像。对于第二帧图像来说,该第一帧编码图像即为前一帧编码图像。从第二帧开始后的其他帧图像的时域滤波处理过程均可以采用本实施例提供的视频编码滤波方法。
本实施例提供的视频编码滤波方法具体包括:
步骤10、对当前帧图像进行整像素运动估计,获得所述当前帧图像的宏块的运动矢量;
具体地,在编码过程中,运动估计通常都是以宏块为单位进行的,宏块的划分可以根据实际需要采用多种标准,如4×4、8×8、16×16或4×8等,一帧图像对应多个宏块。当前帧图像经过整像素运动估计处理后,可以得到每个宏块各自对应的运动矢量。经过整像素运动估计处理过程具体符合H.264视频编解码标准。
步骤20、根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性;
步骤30、若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。
当然,当前帧图像中包括多个宏块,在进行混合滤波处理时,将当前帧图像中的每一个宏块与前一帧编码图像的相对应的宏块进行混合滤波处理。前一帧编码图像即为经过整像素运动估计后的前一帧图像。
在对经过整像素运动估计处理后的当前帧图像的滤波处理,也以宏块为单位进行,此时,宏块的划分可以采用与整像素运动估计处理中相同的标准,也可以比整像素运动估计处理中的宏块小,以获得对应的运动矢量。当前宏块为当前正在处理的宏块,可以对当前宏块的运动矢量的可靠性进行判断,以确定该当前宏块的运动的真实性。可以获取预测运动矢量,该预测运动矢量具体为视频编码过程中的预测运动矢量,即视频编码协议中的mvp,将预测运动矢量与当前宏块的运动矢量进行匹配,若二者相等,则说明当前宏块的运动为真实的,若二者不相等,则说明当前宏块的运动为不真实的。对于运动不真实的宏块进行旁路处理,即不改变当前宏块图像数据。
对于真实运动的当前宏块,则将当前宏块与前一帧编码图像中与该当前宏块对应的前一帧宏块进行混合滤波处理,生成混合滤波处理后的宏块,该当前宏块对应的前一帧宏块具体为根据运动矢量从前一帧编码图像中获得的的宏块。当该当前帧图像的所有当前宏块都经过混合滤波处理后,生成的新的图像就为混合滤波处理后的当前帧图像。
本实施例提供的视频编码滤波方法,对当前帧图像进行整像素运动估计,获得当前帧图像的宏块的运动矢量,根据当前帧图像的宏块的运动矢量,判断前帧图像的宏块的运动的真实性,若当前帧图像的宏块的运动的真实性为真,则将当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。。由于在混合滤波处理过程中,将当前宏块与前一帧编码图像中对应的前一帧宏块进行混合滤波处理,该前一帧编码图像为编码过程中生成的,避免了载入前一帧原始图像带来的计算复杂提高和带宽占用问题,提高了滤波效果。
在本实施例中,步骤20,根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性,具体可以包括如下步骤:
获取所述当前帧图像的宏块的预测运动矢量,若所述当前帧图像的宏块的运动矢量与所述预测运动矢量相等,则所述当前帧图像的宏块的运动的真实性为真。
若当前宏块的运动矢量与预测运动矢量相等,则生成用以指示所述当前宏块的运动为真实的判断结果,该当前宏块被表征为真实运动。由于预测运动矢量为编码过程中产生的已有运动信息,可以降低运动真实性判断的复杂度。
在本实施例中,步骤30,若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,具体可以包括如下步骤:
若所述当前帧图像的宏块的运动的真实性为真当前帧图像的宏块,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度小于第二预设值,则将所述当前帧图像的宏块和所述前一帧编码图像的宏块进行自适应混合滤波处理。
真实运动的当前宏块,其运动状态可以分为静止和非静止两种,且每个当前宏块的纹理不同。可以根据当前宏块的运动状态和纹理不同,对当前宏块采用不同的混合滤波方式。
根据前一帧宏块计算当前宏块的帧间复杂度,计算当前宏块的帧内复杂度,若当前宏块的运动矢量为0,且帧间复杂度小于第一预设值,则说明该当前宏块的运动状态为静止的,若帧内复杂度小于第二预设值,则说明该静止的当前宏块的纹理较为平坦,则将当前宏块和前一帧宏块进行自适应混合滤波处理。第一预设阈值和第二预设阈值均可以根据滤波效果需要进行设置。
优选地,在本实施例中,上述步骤中的,将所述当前宏块和所述前一帧宏块进行自适应混合滤波处理,生成混合滤波处理后的当前宏块,具体可以包括如下步骤:
应用以下公式计算所述混合滤波处理后的当前宏块的像素点的像素值:
delta(i,j)=|cur_pix(i,j)-per_pix(i+mvx,j+mvy)|;
wt(i,j)=(delta(i,j)+1)/2;
m(i,j)=(1<<(log2Q-1))+wt(i,j);
n(i,j)=(1<<(log2Q-1))-wt(i,j);
new_pix(i,j)=
(m(i,j)×cur_pix(i,j)+n(i,j)×pre_pix(i+mvx,j+mvy)+(1<<(log2Q-1)))>>log2Q;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前宏块的运动矢量,log2Q为第三预设值,且log2Q>0,new_pix(i,j)表示所述滤波处理后的当前宏块的i行j列的像素点的像素值。
在本实施例中,步骤30,若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,具体可以包括如下步骤:
若所述当前帧图像的宏块的运动的真实性为真当前帧图像的宏块,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度不小于第二预设值,或者,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(g×cur_pix(i,j)+h×pre_pix(i+mvx,j+mvy))/(g+h);
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,g和h均为整数,且g和h的和为2的幂次方,new_pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
根据前一帧宏块计算当前宏块的帧间复杂度,计算当前宏块的帧内复杂度,若所述当前宏块的运动矢量为0,且帧间复杂度小于第一预设值,则说明该当前宏块的运动状态为静止的,帧内复杂度不小于第二预设值,则说明该静止的当前宏块的纹理较为复杂,或者,若当前宏块的运动矢量不为0,说明该当前宏块的运动状态为非静止的,帧内复杂度小于第二预设值,说明该非静止的当前宏块的纹理比较平坦,则对上述当前宏块和前一帧宏块采用上述中等强度滤波处理。
在本实施例中,步骤30,若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,包括:
若所述当前帧图像的宏块的运动的真实性为真当前帧图像的宏块,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度不小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(cur_pix(i,j)+pre_pix(i+mvx,j+mvy)+1)/2;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,new_pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
计算当前宏块的帧内复杂度,若当前宏块的运动矢量不为0,说明该当前块的运动状态为非静止的,帧内复杂度不小于第二预设值,说明该非静止的运动状态的问题较为复杂,则对当前宏块和上一帧宏块采用上述高强度滤波处理。
优选地,上述任意实施例中,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,具体可以包括如下步骤:
应用以下公式计算所述当前帧图像的宏块的帧间复杂度:
Diffb(i,j)=cur_pix(i,j)-pre_pix(i+mvx,j+mvy);
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,sadp表示所述帧间复杂度。
优选地,在上述任意实施例中,计算所述当前帧图像的宏块的帧内复杂度,具体包括如下步骤:
应用以下公式计算所述当前帧图像的宏块的帧内复杂度:
Diffa(i,j)=cur_pix(i,j)-mean;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,a表示所述当前帧图像的宏块的像素行数,b表示所述当前帧图像的宏块的像素列数,sadi表示所述帧内复杂度。
进一步地,在本实施例中,步骤20中的,生成混合滤波处理后的当前帧图像之后,具体还可以包括如下步骤:
将所述混合滤波处理后的当前帧图像进行分数像素运动估计处理。
图2为本发明实施例提供的一种视频编码滤波装置结构示意图。如图2所示,本实施例提供的视频编码滤波装置具体可以实现本发明任意实施例提供的视频编码滤波方法的各个步骤,此不再赘述。本实施例提供的视频编码滤波装置具体包括获取单元11、判断单元12和滤波处理单元13。获取单元11用于对当前帧图像进行整像素运动估计,获得所述当前帧图像的宏块的运动矢量。判断单元12用于根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性。滤波处理单元13用于若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。
本实施例提供的视频编码滤波装置,获取单元11对当前帧图像进行整像素运动估计,获得当前帧图像的宏块的运动矢量,判断单元12根据当前帧图像的宏块的运动矢量,判断前帧图像的宏块的运动的真实性,若当前帧图像的宏块的运动的真实性为真,则滤波处理单元13将当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像。。由于在混合滤波处理过程中,将当前宏块与前一帧编码图像中对应的前一帧宏块进行混合滤波处理,该前一帧编码图像为编码过程中生成的,避免了载入前一帧原始图像带来的计算复杂提高和带宽占用问题,提高了滤波效果。
图3为本发明实施例提供的另一种视频编码滤波装置结构示意图。如图3所示,在本实施例中,所述判断单元12还用于获取所述当前帧图像的宏块的预测运动矢量,若所述当前帧图像的宏块的运动矢量与所述预测运动矢量相等,则所述当前帧图像的宏块的运动的真实性为真。若当前宏块的运动矢量与预测运动矢量相等,则可以生成用以指示所述当前宏块的运动为真实的判断结果,该当前宏块被表征为真实运动。由于预测运动矢量为编码过程中产生的已有运动信息,可以降低运动真实性判断的复杂度。
在本实施例中,所述滤波处理单元13还用于若所述当前帧图像的宏块的运动的真实性为,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度小于第二预设值,则将所述当前帧图像的宏块和所述前一帧编码图像的宏块进行自适应混合滤波处理,生成混合滤波处理后的当前帧图像的宏块。真实运动的当前宏块,其运动状态可以分为静止和非静止两种,且每个当前宏块的纹理不同。可以根据当前宏块的运动状态和纹理不同,对当前宏块采用不同的混合滤波方式,以提高混合滤波的针对性。
优选地,在本实施例中,所述滤波处理单元13还用于应用以下公式计算所述混合滤波处理后的当前帧图像的宏块的像素点的像素值:
delta(i,j)=|cur_pix(i,j)-per_pix(i+mvx,j+mvy)|;
wt(i,j)=(delta(i,j)+1)/2;
m(i,j)=(1<<(log2Q-1))+wt(i,j);
n(i,j)=(1<<(log2Q-1))-wt(i,j);
new_pix(i,j)=
(m(i,j)×cur_pix(i,j)+n(i,j)×pre_pix(i+mvx,j+mvy)+(1<<(log2Q-1)))>>log2Q;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,log2Q为第三预设值,且log2Q>0,new_pix(i,j)表示所述滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
在本实施例中,所述滤波处理单元13还可以用于若所述当前帧图像的宏块的运动的真实性为真,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度不小于第二预设值,或者,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(g×cur_pix(i,j)+h×pre_pix(i+mvx,j+mvy))/(g+h);
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,g和h均为整数,且g和h的和为2的幂次方,new_pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
当前宏块的运动状态为静止的,且该静止的当前宏块的纹理较为复杂,或者,该当前宏块的运动状态为非静止的,且该非静止的当前宏块的纹理比较平坦,则对上述当前宏块和前一帧宏块采用上述中等强度滤波处理。
在本实施例中,所述滤波处理单元13还可以用于若所述当前帧图像的宏块的运动的真实性为真,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度不小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(cur_pix(i,j)+pre_pix(i+mvx,j+mvy)+1)/2;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,new pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
当前块的运动状态为非静止的,且该非静止的运动状态的问题较为复杂,则对当前宏块和上一帧宏块采用上述高强度滤波处理。
优选地,在本实施例中,所述滤波处理单元13还用于应用以下公式计算所述当前帧图像的宏块的帧间复杂度:
Diffb(i,j)=cur_pix(i,j)-pre_pix(i+mvx,j+mvy);
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,sadp表示所述帧间复杂度。
优选地,在本实施例中,所述滤波处理单元13还用于应用以下公式计算所述当前帧图像的宏块的帧内复杂度:
Diffa(i,j)=cur_pix(i,j)-mean;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,a表示所述当前帧图像的宏块的像素行数,b表示所述当前帧图像的宏块的像素列数,sadi表示所述帧内复杂度。
进一步地,该视频编码滤波装置还可以包括分数像素运动估计单元14,分数像素运动估计单元14用于将所述混合滤波处理后的当前帧图像进行分数像素运动估计处理。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种视频编码滤波方法,其特征在于,包括:
对当前帧图像进行整像素运动估计,获得所述当前帧图像的宏块的运动矢量;
根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性;
若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像;
根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性,包括:
获取所述当前帧图像的宏块的预测运动矢量,若所述当前帧图像的宏块的运动矢量与所述预测运动矢量相等,则所述当前帧图像的宏块的运动的真实性为真。
2.根据权利要求1所述的视频编码滤波方法,其特征在于,若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,包括:
若所述当前帧图像的宏块的运动的真实性为真,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度小于第二预设值,则将所述当前帧图像的宏块和所述前一帧编码图像的宏块进行自适应混合滤波处理。
3.根据权利要求1所述的视频编码滤波方法,其特征在于,若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,包括:
若所述当前帧图像的宏块的运动的真实性为真,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度不小于第二预设值,或者,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(g×cur_pix(i,j)+h×pre_pix(i+mvx,j+mvy))/(g+h);
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,g和h均为整数,且g和h的和为2的幂次方,new_pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
4.根据权利要求1所述的视频编码滤波方法,其特征在于,若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,包括:
若所述当前帧图像的宏块的运动的真实性为真,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度不小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(cur_pix(i,j)+pre_pix(i+mvx,j+mvy)+1)/2;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,new_pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
5.根据权利要求2或3所述的视频编码滤波方法,其特征在于,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,包括:
应用以下公式计算所述当前帧图像的宏块的帧间复杂度:
Diff(i,j)=cur_pix(i,j)-pre_pix(i+mvx,j+mvy);
其中,i,j表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,sadp表示所述帧间复杂度。
6.根据权利要求2-4任一所述的视频编码滤波方法,其特征在于,计算所述当前帧图像的宏块的帧内复杂度,包括:
应用以下公式计算所述当前帧图像的宏块的帧内复杂度:
Diff(i,j)=cur_pix(i,j)-mean;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,a表示所述当前帧图像的宏块的像素行数,b表示所述当前帧图像的宏块的像素列数,sadi表示所述帧内复杂度。
7.根据权利要求2所述的视频编码滤波方法,其特征在于,将所述当前帧图像的宏块和所述前一帧编码图像的宏块进行自适应混合滤波处理,生成混合滤波处理后的当前帧图像的宏块,包括:
应用以下公式计算所述混合滤波处理后的当前帧图像的宏块的像素点的像素值:
delta(i,j)=|cur_pix(i,j)-pre_pix(i+mvx,j+mvy)|;
wt(i,j)=(delta(i,j)+1)/2;
m(i,j)=(1<<(log2Q-1))+wt(i,j);
n(i,j)=(1<<(log2Q-1))-wt(i,j);
new_pix(i,j)=
(m(i,j)×cur_pix(i,j)+n(i,j)×pre_pix(i+mvx,j+mvy)+(1<<(log2Q-1)))>>log2Q;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,log2Q为第三预设值,且log2Q>0,new_pix(i,j)表示所述滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
8.根据权利要求1所述的视频编码滤波方法,其特征在于,生成混合滤波处理后的当前帧图像之后,还包括:
将所述混合滤波处理后的当前帧图像进行分数像素运动估计处理。
9.一种视频编码滤波装置,其特征在于,包括:
获取单元,用于对当前帧图像进行整像素运动估计,获得所述当前帧图像的宏块的运动矢量;
判断单元,用于根据所述当前帧图像的宏块的运动矢量,判断所述前帧图像的宏块的运动的真实性;
滤波处理单元,用于若所述当前帧图像的宏块的运动的真实性为真,则将所述当前帧图像的宏块与前一帧编码图像的宏块进行混合滤波处理,以生成混合滤波处理后的当前帧图像;
所述判断单元还用于获取所述当前帧图像的宏块的预测运动矢量,若所述当前帧图像的宏块的运动矢量与所述预测运动矢量相等,则所述当前帧图像的宏块的运动的真实性为真。
10.根据权利要求9所述的视频编码滤波装置,其特征在于,所述滤波处理单元还用于若所述当前帧图像的宏块的运动的真实性为真,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度小于第二预设值,则将所述当前帧图像的宏块和所述前一帧编码图像的宏块进行自适应混合滤波处理。
11.根据权利要求9所述的视频编码滤波装置,其特征在于,所述滤波处理单元还用于若所述当前帧图像的宏块的运动的真实性为真,根据所述前一帧编码图像的宏块计算所述当前帧图像的宏块的帧间复杂度,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量为0,且所述帧间复杂度小于第一预设值,所述帧内复杂度不小于第二预设值,或者,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(g×cur_pix(i,j)+h×pre_pix(i+mvx,j+mvy))/(g+h);
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,g和h均为整数,且g和h的和为2的幂次方,new_pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
12.根据权利要求9所述的视频编码滤波装置,其特征在于,所述滤波处理单元还用于若所述当前帧图像的宏块的运动的真实性为真,计算所述当前帧图像的宏块的帧内复杂度,若所述当前帧图像的宏块的运动矢量不为0,且所述帧内复杂度不小于第二预设值,则应用以下公式计算进行所述混合滤波处理:
new_pix(i,j)=(cur_pix(i,j)+pre_pix(i+mvx,j+mvy)+1)/2;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,new_pix(i,j)表示所述混合滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
13.根据权利要求10或11所述的视频编码滤波装置,其特征在于,所述滤波处理单元还用于应用以下公式计算所述当前帧图像的宏块的帧间复杂度:
Diff(i,j)=cur_pix(i,j)-pre_pix(i+mvx,j+mvy);
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,sadp表示所述帧间复杂度。
14.根据权利要求10-12任一所述的视频编码滤波装置,其特征在于,所述滤波处理单元还用于应用以下公式计算所述当前帧图像的宏块的帧内复杂度:
Diff(i,j)=cur_pix(i,j)-mean;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,a表示所述当前帧图像的宏块的像素行数,b表示所述当前帧图像的宏块的像素列数,sadi表示所述帧内复杂度。
15.根据权利要求10所述的视频编码滤波装置,其特征在于,所述滤波处理单元还用于应用以下公式计算所述混合滤波处理后的当前帧图像的宏块的像素点的像素值:
delta(i,j)=|cur_pix(i,j)-pre_pix(i+mvx,j+mvy)|;
wt(i,j)=(delta(i,j)+1)/2;
m(i,j)=(1<<(log2Q-1))+wt(i,j);
n(i,j)=(1<<(log2Q-1))-wt(i,j);
new_pix(i,j)=
(m(i,j)×cur_pix(i,j)+n(i,j)×pre_pix(i+mvx,j+mvy)+(1<<(log2Q-1)))>>log2Q;
其中,i表示像素点在宏块中所在的行,j表示像素点在宏块中所在的列,cur_pix(i,j)表示所述当前帧图像的宏块的i行j列的像素点的像素值,pre_pix(i+mvx,j+mvy)表示所述前一帧编码图像的宏块的i行j列的像素点的预测像素值,(mvx,mvy)表示所述当前帧图像的宏块的运动矢量,log2Q为第三预设值,且log2Q>0,new_pix(i,j)表示所述滤波处理后的当前帧图像的宏块的i行j列的像素点的像素值。
16.根据权利要求10所述的视频编码滤波装置,其特征在于,还包括:
分数像素运动估计单元,用于将所述混合滤波处理后的当前帧图像进行分数像素运动估计处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210195774.5A CN102724504B (zh) | 2012-06-14 | 2012-06-14 | 视频编码滤波方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210195774.5A CN102724504B (zh) | 2012-06-14 | 2012-06-14 | 视频编码滤波方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102724504A CN102724504A (zh) | 2012-10-10 |
CN102724504B true CN102724504B (zh) | 2015-01-07 |
Family
ID=46950149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210195774.5A Active CN102724504B (zh) | 2012-06-14 | 2012-06-14 | 视频编码滤波方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724504B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970541B (zh) * | 2012-11-22 | 2015-05-27 | 深圳市海思半导体有限公司 | 图像滤波方法及装置 |
CN104244004B (zh) | 2014-09-30 | 2017-10-10 | 华为技术有限公司 | 低功耗编码方法及装置 |
CN113012061A (zh) * | 2021-02-20 | 2021-06-22 | 百果园技术(新加坡)有限公司 | 降噪处理方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127906A (zh) * | 1995-01-26 | 1996-07-31 | 大宇电子株式会社 | 运动矢量检测设备 |
CN1761286A (zh) * | 2005-11-03 | 2006-04-19 | 上海交通大学 | 用边缘检测、运动检测和中值滤波去除蚊式噪声的方法 |
CN101444094A (zh) * | 2006-05-12 | 2009-05-27 | 索尼德国有限责任公司 | 用于对输入图像序列的先前和后继图像插值的方法 |
CN101662631A (zh) * | 2008-08-26 | 2010-03-03 | 索尼株式会社 | 帧内插装置和帧内插方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100092101A1 (en) * | 2008-10-09 | 2010-04-15 | Chin-Chuan Liang | Methods and apparatus for enhancing image quality of motion compensated interpolation |
-
2012
- 2012-06-14 CN CN201210195774.5A patent/CN102724504B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127906A (zh) * | 1995-01-26 | 1996-07-31 | 大宇电子株式会社 | 运动矢量检测设备 |
CN1761286A (zh) * | 2005-11-03 | 2006-04-19 | 上海交通大学 | 用边缘检测、运动检测和中值滤波去除蚊式噪声的方法 |
CN101444094A (zh) * | 2006-05-12 | 2009-05-27 | 索尼德国有限责任公司 | 用于对输入图像序列的先前和后继图像插值的方法 |
CN101662631A (zh) * | 2008-08-26 | 2010-03-03 | 索尼株式会社 | 帧内插装置和帧内插方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102724504A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20230098117A (ko) | 영상 부호화 및 복호화 장치 및 그 방법 | |
TWI690196B (zh) | 360度虛擬現實視訊的環路濾波方法和裝置 | |
US20110002390A1 (en) | Methods and systems for motion vector derivation at a video decoder | |
US20100329347A1 (en) | Method and apparatus for encoding and decoding video signal using motion compensation based on affine transformation | |
US8711941B2 (en) | Motion estimation for a video transcoder | |
CN102420988B (zh) | 一种利用视觉特性的多视点视频编码系统 | |
KR20220112864A (ko) | 양방향 광 흐름을 위한 비트-폭 제어를 위한 방법 및 디바이스 | |
CN101710993A (zh) | 基于块的自适应超分辨率视频处理方法及系统 | |
CN106170093B (zh) | 一种帧内预测性能提升编码方法 | |
US20150271527A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, and programs therefor | |
US20110141349A1 (en) | Reducing and correcting motion estimation artifacts during video frame rate conversion | |
US20190289329A1 (en) | Apparatus and a method for 3d video coding | |
JP2009021963A (ja) | 映像処理装置、映像処理方法、及びプログラム | |
CN102724504B (zh) | 视频编码滤波方法及装置 | |
CN104918047B (zh) | 一种双向运动估计的排除方法和装置 | |
CN104506871A (zh) | 一种基于hevc的3d视频快速编码方法 | |
EP1802127B1 (en) | Method for performing motion estimation | |
US20120218443A1 (en) | Decoder-derived geometric transformations for motion compensated inter prediction | |
USRE47004E1 (en) | Moving image coding device and method | |
CN111212198B (zh) | 一种视频去噪的方法和设备 | |
CN111903132B (zh) | 图像处理装置和方法 | |
JP5913929B2 (ja) | 動画像符号化装置及びその制御方法、コンピュータプログラム | |
JP2010273110A (ja) | 画像符号化装置および画像符号化方法 | |
KR100943068B1 (ko) | 곡선 보간을 이용한 에러복원방법 | |
JP2015091126A (ja) | 画像及びビデオの視知覚変換コーディング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |