SKIP宏块检测方法及装置制造方法及图纸

技术编号:9923767 阅读:121 留言:0更新日期:2014-04-16 15:22
本发明专利技术公开了一种SKIP宏块检测方法及装置,属于计算机技术领域。所述方法包括:在运动搜索的过程中获取当前宏块与当前匹配宏块之间的SAD;根检测SAD是否小于当前宏块的量化参数所对应的SAD经验阀值;若小于该量化参数所对应的SAD经验阀值,则停止对当前宏块进行的运动搜索,检测SAD是否小于二次阀值;若小于二次阀值,则判定当前宏块为SKIP宏块。本发明专利技术通过仅一次或少量几次计算出的当前宏块的SAD,当该SAD小于该当前宏块的量化参数所对应的SAD经验阀值且也小于二次阀值时,则可以确定该当前宏块为SKIP宏块;解决了有技术中在确定SKIP宏块时计算量非常大的问题;达到了很大程度上降低计算量的效果。

【技术实现步骤摘要】
SKIP宏块检测方法及装置
本专利技术涉及计算机
,特别涉及一种SKIP宏块检测方法及装置。
技术介绍
在H264编码中,运动搜索占整个编码流程计算量的60%以上,因此提高运动搜索的效率,对编码速度有着重要的意义。而大量的统计表明,一帧图像中无残差的宏块(SKIP宏块)的数量在非场景切换等画面中占有30-80%的比例,因此很有必要提前预判这些SKIP宏块,使其跳过繁琐的运动搜索的流程。现有的检测SKIP宏块的过程如下:首先将当前帧分成16像素*16像素的宏块,选择当前帧上的一个当前宏块,在参考帧内对该当前宏块进行运动搜索,在经多次运动搜索后定位到的若干个匹配宏块中确定出最佳匹配宏块,根据该当前宏块的所在位置以及最佳匹配宏块的所在位置确定该当前宏块的运动矢量(MV),并根据与当前宏块相邻的多个宏块的运动矢量确定该当前宏块的预测矢量(MVP)(比如可以将与当前宏块相邻的多个宏块的运动矢量的加权平均值或中值作为该当前宏块的预测矢量),进而计算得到该当前宏块所对应的运动矢量和预测矢量之间的差值MVD;当MVD为零时,表明该当前宏块为SKIP宏块的几率比较大,此时则对该当前宏块进一步进行DCT(DiscreteCosineTransform,离散余弦变换)变换以得到DCT系数,并对DCT系数进行量化以得到量化系数,当量化系数为0时,则确定该当前宏块为SKIP宏块。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:由于在确定SKIP宏块时必须经过多次搜索才能确定最佳匹配宏块,且根据确定的最佳匹配宏块得到的MVD为零时,还需要进一步进行DCT变换和量化来判断当前宏块是否为SKIP宏块,因此现有的这种确定SKIP宏块的方法计算量非常大。
技术实现思路
为了解决现有技术中在确定SKIP宏块时计算量非常大的问题,本专利技术实施例提供了一种SKIP宏块检测方法及装置。所述技术方案如下:第一方面,提供了一种SKIP宏块检测方法,其特征在于,所述方法包括:对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取所述当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;根据所述当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测所述SAD是否小于所述当前宏块的量化参数所对应的SAD经验阀值;若检测结果为所述SAD小于所述当前宏块的量化参数所对应的SAD经验阀值,则停止对所述当前宏块进行的运动搜索,并检测所述SAD是否小于二次阀值,所述二次阀值由所述当前宏块的量化参数所对应的SAD经验阀值的值确定;若检测结果为所述SAD小于所述二次阀值,则判定所述当前宏块为SKIP宏块。进一步的,在所述对在当前帧上选取的当前宏块进行运动搜索之前,还包括:对于每一个量化参数,确定出预定数量的SKIP宏块;获取每个SKIP宏块的量化参数以及所述SKIP宏块与最佳匹配块之间的SAD;对于每一个量化参数,确定所述量化参数所对应的各个SAD,将所述各个SAD的平均值或中值作为所述量化参数所对应的SAD经验阀值。进一步的,在检测所述SAD是否小于二次阀值之前,还包括:将所述当前宏块的量化参数所对应的SAD经验阀值除以预定除数,得到误差商值;判断所述误差商值是否大于指定阀值;若判断结果为所述误差商值大于所述指定阀值,则将所述指定阀值确定为所述二次阀值;若判断结果为所述误差商值小于所述指定阀值,则将所述误差商值确定为所述二次阀值。进一步的,在所述检测所述SAD是否小于所述当前宏块的量化参数所对应的SAD经验阀值之后,还包括:若检测结果为所述SAD大于所述当前宏块的量化参数所对应的SAD经验阀值,则继续搜索下一个与所述当前宏块匹配的匹配宏块。进一步的,在所述检测所述SAD是否小于二次阀值之后,还包括:若检测结果为所述SAD大于所述二次阀值,则对所述当前宏块进行离散余弦变换和量化;当对所述当前宏块进行离散余弦变换和量化后得到的量化系数为零时,则判定所述当前宏块为SKIP宏块;当对所述当前宏块进行离散余弦变换和量化后得到的量化系数不为零时,则继续搜索下一个与所述当前宏块匹配的匹配宏块。进一步的,所述在运动搜索的过程中获取所述当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD,包括:在运动搜索的过程中,获取所述当前宏块的当前起始搜索点;将所述当前起始搜索点所对应的位于参考帧上的宏块确定为与所述当前宏块匹配的所述当前匹配宏块;根据所述当前宏块上的像素值和所述当前匹配宏块上的像素值计算得到所述SAD。第二方面,提供了一种SKIP宏块检测装置,其特征在于,所述装置包括:第一获取模块,用于对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取所述当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;第一检测模块,用于根据所述当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测所述SAD是否小于所述当前宏块的量化参数所对应的SAD经验阀值;第二检测模块,用于在所述第一检测模块的检测结果为所述SAD小于所述当前宏块的量化参数所对应的SAD经验阀值时,停止对所述当前宏块进行的运动搜索,并检测所述SAD是否小于二次阀值,所述二次阀值由所述当前宏块的量化参数所对应的SAD经验阀值的值确定;第一判定模块,用于在所述第二检测模块的检测结果为所述SAD小于所述二次阀值时,判定所述当前宏块为SKIP宏块。进一步的,所述装置还包括:第一确定模块,用于对于每一个量化参数,确定出预定数量的SKIP宏块;第二获取模块,用于获取每个SKIP宏块的量化参数以及所述SKIP宏块与最佳匹配块之间的SAD;第二确定模块,用于对于每一个量化参数,确定所述量化参数所对应的各个SAD,将所述各个SAD的平均值或中值确定为所述量化参数所对应的SAD经验阀值。进一步的,所述装置还包括:商值获取模块,用于将所述当前宏块的量化参数所对应的SAD经验阀值除以预定除数,得到误差商值;判断模块,用于判断所述误差商值是否大于指定阀值;第三确定模块,用于在所述判断模块的判断结果为所述误差商值大于所述指定阀值时,将所述指定阀值确定为所述二次阀值;第四确定模块,用于在所述判断模块的判断结果为所述误差商值小于所述指定阀值时,将所述误差商值确定为所述二次阀值。进一步的,所述装置还包括:第一搜索模块,用于在所述第一检测模块的检测结果为所述SAD大于所述当前宏块的量化参数所对应的SAD经验阀值时,继续搜索下一个与所述当前宏块匹配的匹配宏块。进一步的,所述装置还包括:量化模块,用于在所述第二检测模块的检测结果为所述SAD大于所述二次阀值时,对所述当前宏块进行离散余弦变换和量化;第二判定模块,用于当对所述当前宏块进行离散余弦变换和量化后得到的量化系数为零时,则判定所述当前宏块为SKIP宏块;第二搜索模块,用于当对所述当前宏块进行离散余弦变换和量化后得到的量化系数不为零时,则继续搜索下一个与所述当前宏块匹配的匹配宏块。进一步的,所述第一获取模块,包括:获取单元,用于在运动搜索的过程中,获取所述当前宏块的当前起始搜索点;确定单元,用于将获取单元获取的所述当前起始搜索点所对应的位于参考帧上的宏块确定为与所述当前宏块匹配的所述当前匹配宏块;计算单元,用于根据所述本文档来自技高网
...
SKIP宏块检测方法及装置

【技术保护点】
一种SKIP宏块检测方法,其特征在于,所述方法包括:对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取所述当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;根据所述当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测所述SAD是否小于所述当前宏块的量化参数所对应的SAD经验阀值;若检测结果为所述SAD小于所述当前宏块的量化参数所对应的SAD经验阀值,则停止对所述当前宏块进行的运动搜索,并检测所述SAD是否小于二次阀值,所述二次阀值由所述当前宏块的量化参数所对应的SAD经验阀值的值确定;若检测结果为所述SAD小于所述二次阀值,则判定所述当前宏块为SKIP宏块。

【技术特征摘要】
1.一种SKIP宏块检测方法,其特征在于,所述方法包括:对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取所述当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;根据所述当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测所述SAD是否小于所述当前宏块的量化参数所对应的SAD经验阀值;若检测结果为所述SAD小于所述当前宏块的量化参数所对应的SAD经验阀值,则停止对所述当前宏块进行的运动搜索,并检测所述SAD是否小于二次阀值,所述二次阀值由所述当前宏块的量化参数所对应的SAD经验阀值的值确定;若检测结果为所述SAD小于所述二次阀值,则判定所述当前宏块为SKIP宏块;其中,在检测所述SAD是否小于二次阀值之前,还包括:将所述当前宏块的量化参数所对应的SAD经验阀值除以预定除数,得到误差商值;判断所述误差商值是否大于指定阀值;若判断结果为所述误差商值大于所述指定阀值,则将所述指定阀值确定为所述二次阀值;若判断结果为所述误差商值小于所述指定阀值,则将所述误差商值确定为所述二次阀值。2.根据权利要求1所述的方法,其特征在于,在所述对在当前帧上选取的当前宏块进行运动搜索之前,还包括:对于每一个量化参数,确定出预定数量的SKIP宏块;获取每个SKIP宏块的量化参数以及所述SKIP宏块与最佳匹配块之间的SAD;对于每一个量化参数,确定所述量化参数所对应的各个SAD,将所述各个SAD的平均值或中值作为所述量化参数所对应的SAD经验阀值。3.根据权利要求1所述的方法,其特征在于,在所述检测所述SAD是否小于所述当前宏块的量化参数所对应的SAD经验阀值之后,还包括:若检测结果为所述SAD大于所述当前宏块的量化参数所对应的SAD经验阀值,则继续搜索下一个与所述当前宏块匹配的匹配宏块。4.根据权利要求1所述的方法,其特征在于,在所述检测所述SAD是否小于二次阀值之后,还包括:若检测结果为所述SAD大于所述二次阀值,则对所述当前宏块进行离散余弦变换和量化;当对所述当前宏块进行离散余弦变换和量化后得到的量化系数为零时,则判定所述当前宏块为SKIP宏块;当对所述当前宏块进行离散余弦变换和量化后得到的量化系数不为零时,则继续搜索下一个与所述当前宏块匹配的匹配宏块。5.根据权利要求1至4中任一所述的方法,其特征在于,所述在运动搜索的过程中获取所述当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD,包括:在运动搜索的过程中,获取所述当前宏块的当前起始搜索点;将所述当前起始搜索点所对应的位于参考帧上的宏块确定为与所述当前宏块匹配的所述当前匹配宏块;根据所述当前宏块上的像素值和所述当前匹配宏块上的像素值计算得到所述SAD。6.一种SKIP宏块检测装置,其特征在于,所述装置包括:第一获取模块,用于对在当前帧...

【专利技术属性】
技术研发人员:张伟
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1