CN103731669B - Skip宏块检测方法及装置 - Google Patents

Skip宏块检测方法及装置 Download PDF

Info

Publication number
CN103731669B
CN103731669B CN201310747317.7A CN201310747317A CN103731669B CN 103731669 B CN103731669 B CN 103731669B CN 201310747317 A CN201310747317 A CN 201310747317A CN 103731669 B CN103731669 B CN 103731669B
Authority
CN
China
Prior art keywords
sad
macro block
macro
threshold values
quantization parameter
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
Application number
CN201310747317.7A
Other languages
English (en)
Other versions
CN103731669A (zh
Inventor
张伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201310747317.7A priority Critical patent/CN103731669B/zh
Publication of CN103731669A publication Critical patent/CN103731669A/zh
Application granted granted Critical
Publication of CN103731669B publication Critical patent/CN103731669B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

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

Description

SKIP宏块检测方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种SKIP宏块检测方法及装置。
背景技术
在H264编码中,运动搜索占整个编码流程计算量的60%以上,因此提高运动搜索的效率,对编码速度有着重要的意义。而大量的统计表明,一帧图像中无残差的宏块(SKIP宏块)的数量在非场景切换等画面中占有30-80%的比例,因此很有必要提前预判这些SKIP宏块,使其跳过繁琐的运动搜索的流程。
现有的检测SKIP宏块的过程如下:首先将当前帧分成16像素*16像素的宏块,选择当前帧上的一个当前宏块,在参考帧内对该当前宏块进行运动搜索,在经多次运动搜索后定位到的若干个匹配宏块中确定出最佳匹配宏块,根据该当前宏块的所在位置以及最佳匹配宏块的所在位置确定该当前宏块的运动矢量(MV),并根据与当前宏块相邻的多个宏块的运动矢量确定该当前宏块的预测矢量(MVP)(比如可以将与当前宏块相邻的多个宏块的运动矢量的加权平均值或中值作为该当前宏块的预测矢量),进而计算得到该当前宏块所对应的运动矢量和预测矢量之间的差值MVD;当MVD为零时,表明该当前宏块为SKIP宏块的几率比较大,此时则对该当前宏块进一步进行DCT(Discrete Cosine Transform,离散余弦变换)变换以得到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宏块;
第二搜索模块,用于当对所述当前宏块进行离散余弦变换和量化后得到的量化系数不为零时,则继续搜索下一个与所述当前宏块匹配的匹配宏块。
进一步的,所述第一获取模块,包括:
获取单元,用于在运动搜索的过程中,获取所述当前宏块的当前起始搜索点;
确定单元,用于将获取单元获取的所述当前起始搜索点所对应的位于参考帧上的宏块确定为与所述当前宏块匹配的所述当前匹配宏块;
计算单元,用于根据所述当前宏块上的像素值和所述当前匹配宏块上的像素值计算得到所述SAD。
本发明实施例提供的技术方案带来的有益效果是:
通过仅一次或少量几次计算出的当前宏块的SAD,当该SAD小于该当前宏块的量化参数所对应的SAD经验阀值且也小于二次阀值时,则可以确定该当前宏块为SKIP宏块;解决了现有技术中在确定SKIP宏块时计算量非常大的问题;由于可能仅需要一次SAD的计算以及二次阀值的判断就可以判别出当前宏块是否为SKIP宏块,因此在检测SKIP宏块的过程中,达到了降低计算量的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例中提供的SKIP宏块检测方法的方法流程图;
图2A是本发明另一个实施例中提供的SKIP宏块检测方法的方法流程图;
图2B是本发明部分实施例中提供的获取当前宏块与搜索到的当前匹配宏块之间的SAD过程的流程图;
图2C是本发明部分实施例中提供的获取量化参数与SAD经验阀值的过程的流程图;
图2D是本发明部分实施例中提供的由SAD经验阀值所确定的两个判定范围的示意图;
图3是本发明一个实施例中提供的SKIP宏块检测装置的结构示意图;
图4是本发明另一个实施例中提供的SKIP宏块检测装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
通常来讲,SKIP宏块为无像素残差、无运动矢量残差(即MVD=0)的宏块,尤其在静止的场景或运动背景不变的情况下,SKIP宏块所占的比例非常大,而在编码的过程中,为了能够较大程度上降低码率,如果得知宏块为SKIP宏块,则不需要对SKIP宏块进行DCT变换或量化处理,而仅对SKIP宏块进行标记,在解码时,直接根据该标记从参考帧中复制相应的宏块即可。由此可知,对SKIP宏块的判断在实现提高编码效果以及降低码率时是非常重要的,本发明则提供一种可以快速判定SKIP宏块的方法,具体请参见图1、图2A至图2D中的描述。
请参见图1所示,其示出了本发明一个实施例中提供的SKIP宏块检测方法的方法流程图。该SKIP宏块检测方法可以包括:
101,对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;
102,根据当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测SAD是否小于当前宏块的量化参数所对应的SAD经验阀值;
103,若检测结果为SAD小于当前宏块的量化参数所对应的SAD经验阀值,则停止对当前宏块进行的运动搜索,并检测SAD是否小于二次阀值,二次阀值由当前宏块的量化参数所对应的SAD经验阀值的值确定;
104,若检测结果为SAD小于二次阀值,则判定当前宏块为SKIP宏块。
综上所述,本发明实施例中提供的SKIP宏块检测方法,通过仅一次或少量几次计算出的当前宏块的SAD,当该SAD小于该当前宏块的量化参数所对应的SAD经验阀值且也小于二次阀值时,则可以确定该当前宏块为SKIP宏块;解决了有技术中在确定SKIP宏块时计算量非常大的问题;由于可能仅需要一次SAD的计算以及二次阀值的判断就可以判别出当前宏块是否为SKIP宏块,因此在检测SKIP宏块的过程中,达到了降低计算量的效果。
请参见图2A所示,其示出了本发明另一个实施例中提供的SKIP宏块检测方法的方法流程图。该SKIP宏块检测方法可以包括:
201,对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;
对当前帧上选取的当前宏块进行运动搜索时,可以在参考帧上查找到一个与该当前宏块匹配的最佳匹配宏块,在查找到最佳匹配宏块的过程中通常需要多次定位搜索点,每次定位的搜索点均对应一个宏块,这些宏块均可以被认定为该当前宏块的匹配宏块,而最后定位的搜索点所对应的宏块则为当前宏块所对应的最佳匹配宏块。
在实际确定宏块是否为SKIP宏块时,为了减少计算量,在运动搜索的过程中,当第一次获取到当前宏块的匹配宏块时,则计算当前宏块与该匹配宏块之间的SAD,这样先根据SAD进行初步判断。在实际应用中,获取当前宏块与匹配宏块之间的SAD的步骤请参见图2B所示。
图2B为本发明部分实施例中提供的获取当前宏块与搜索到的当前匹配宏块之间的SAD过程的流程图,该过程具体可以包括:
201a,在运动搜索的过程中,获取当前宏块的当前起始搜索点;
在进行运动搜索时,首先确定当前宏块的起始搜索点,即当前起始搜索点。
201b,将当前起始搜索点所对应的位于参考帧上的宏块确定为与当前宏块匹配的当前匹配宏块;
201c,根据当前宏块上的像素值和当前匹配宏块上的像素值计算得到SAD。
SAD(Sum of Absolute Difference)即两个宏块之间的像素绝对误差和,计算两个宏块之间的SAD的过程通常可以包括:分别对应选取两个宏块在同一位置处像素的像素值,将同一位置的两个像素值相减后取绝对值,将所有的绝对值相加得到两个宏块的像素绝对误差和。举例来讲,如果该宏块为16像素*16像素的宏块,则得到的当前匹配宏块也应当为16像素*16像素的宏块,将当前宏块与当前匹配宏块上的同一位置处的像素值相减,得到16*16个相减后的差值,将所有差值取绝对值,将取绝对值之后的值相加,得到SAD。
为了便于对获取SAD的说明,以下选取简单的4像素*4像素的宏块进行举例说明,其中当前宏块的4*4的像素矩阵为:
36 105 68 97 46 136 76 110 67 96 186 82 56 113 157 78
对应的当前匹配宏块的4*4的像素矩阵为:
47 125 79 120 38 102 83 101 59 63 208 69 63 123 136 87
则将相同位置对应的像素值相减得到的差值矩阵为:
- 11 - 20 - 9 - 23 8 34 - 7 9 8 33 - 22 13 - 7 - 10 21 - 9
将差值矩阵中的每个差值取绝对值,得到矩阵为:
11 20 9 23 8 34 7 9 8 33 22 13 7 10 21 9
将该矩阵中的所有数值相加,得到SAD的值为:244。
以上仅是进行了一个简单的示意性举例,在实际应用中,在判断SKIP宏块时,当前宏块通常是16像素*16像素的宏块,此时则根据上述相同的计算思路获取当前宏块与当前匹配宏块之间的SAD值。
202,根据当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测SAD是否小于当前宏块的量化参数所对应的SAD经验阀值;
通常在编码的过程中,编码器中的码率控制器或码率控制器单元可以为每个宏块确定一个量化参数。
在实际应用中,可以通过大量的已经判定好的SKIP宏块以及这些宏块的量化参数、SAD进行统计,得到每个量化参数所对应的SAD经验阀值,具体的实现可以通过图2C中所描述的过程获得。
请参见图2C所示,其示出了本发明部分实施例中提供的获取量化参数与SAD经验阀值的过程的流程图。该过程可以包括:
202a,对于每一个量化参数,确定出预定数量的SKIP宏块;
由于量化参数通常可以取值为0-51,为了能够保证任何宏块所对应的SAD均可以通过该宏块的量化参数所对应的SAD经验阀值进行初步判断,因此在选择SKIP宏块时,选取的SKIP宏块的量化参数必须覆盖所有量化参数。也就是说,为了保证所有的量化参数均有对应的SAD经验阀值,在选取大量SKIP宏块时,通常会选取对应于所有量化参数的SKIP宏块,且对应于每个量化参数的SKIP宏块的数量也通常相等,比如选取10000个量化参数为1的SKIP宏块,选取10000个量化参数为2的SKIP宏块,选取10000个量化参数为3的SKIP宏块,依此类推。当然,在实际应用中,对应于每个量化参数的SKIP宏块的数量也可以不完全相等,但每个量化参数的SKIP宏块的数量差别不大。
这里预定数量通常会取得比较大,比如数千、数万,甚至上亿等,且预定数量越大,最后根据SAD经验阀值确定的SKIP宏块的准确度也就越高。
这些确定出的SKIP宏块通常是根据现有的方法确定的,比如确定宏块的MVD为零之后,再对该宏块进行DCT变换和量化,得到的量化系数为0时,将该宏块确定为SKIP宏块。
202b,获取每个SKIP宏块的量化参数以及SKIP宏块与最佳匹配块之间的SAD;
由于不同的SKIP宏块的量化参数可能不同,且每个SKIP宏块的SAD也可能不同,此时则需要通过大量统计找到量化参数与SAD之间的规律。
202c,对于每一个量化参数,确定量化参数所对应的各个SAD,将各个SAD的平均值或中值作为量化参数所对应的SAD经验阀值。
对于同一个量化参数来讲,不同的SKIP宏块均对应于自己的SAD,因此当选取的SKIP宏块比较多时,一个量化参数会对应大量的SAD,此时则通常对这些SAD取平均值或中值,并将获取的平均值和中值作为该量化参数所对应的SAD经验阀值。
举例来讲,当一个量化参数所对应的5个SAD分别为:210、460、375、265、579时,则这些SAD的平均值为:(210+460+375+265+579)/5=377.8,在实际应用中,为了减少存储的比特数,可以对获取的平均值四舍五入后取整,即378;对应的,在取这些SAD的中值时,可以对这些SAD排序:210、265、375、460、579,然后选取中间的值375作为中值。需要补充说明的是,当排列后的SAD的个数为奇数时,选取中间的值作为中值;当排列后的SAD的个数为偶数时,可以选择中间两个值中的一个值作为中值。
需要说明的是,这里仅是进行了一个简单的示意性举例,在实际应用中,当选取的预定数量非常多时,每个量化参数所对应的SAD也会非常多,此时对这些SAD取平均值或者取中值,通常得到的平均值和中值的差别并不太大。
在另一种可能的实现方式中,由于在统计时一个量化参数会对应大量的SAD,此时还可以从这些SAD选取一个最小的SAD,将大于该最小的SAD一定阈值的值作为该量化参数所对应的SAD经验阀值,这里的阈值可以根据实际情况设置。举例来讲,当一个量化参数所对应的6个SAD分别为:356、580、435、373、265、245,阈值设定为100时,则选取最小的SAD为245,最后得到的SAD经验阀值为:245+100=345。
根据大量实验总结出的量化参数与SAD经验阀值的对应关系(也可称为量化参数的SAD经验阀值列表)为:
其中,QP为量化参数,skip_cost[60]为统计得到的60个与量化参数对应的SAD经验阀值。每一个量化参数对应一个SAD经验阀值,比如,当QP为20时,对应的SAD经验阀值为720,当QP为35时,对应的SAD经验阀值为2030。
值得注意的是,这里通过大量的SKIP宏块确定出的每个量化参数与SAD经验阀值的对应关系可以在后期检测SKIP宏块的过程中重复使用,也即在检测当前宏块是否为SKIP宏块时,可以直接使用上述统计出的量化参数的SAD经验阀值列表。
203,若检测结果为SAD小于当前宏块的量化参数所对应的SAD经验阀值,则停止对当前宏块进行的运动搜索;
若检测结果为SAD小于当前宏块的量化参数所对应的SAD经验阀值,则表明该当前宏块为SKIP宏块的几率比较大,此时则停止对当前宏块的运动搜索,即停止继续搜索下一个与该当前宏块匹配的匹配宏块。
为了能够更正确的判断SKIP宏块,这里选择将判断的条件范围缩小,即将目前得到的SAD与一个比SAD经验阀值更小的值进行比较,这里将更小的值称为二次阀值。获取二次阀值的过程可以参见如下步骤204至207。
204,将当前宏块的量化参数所对应的SAD经验阀值除以预定除数,得到误差商值;
205,判断误差商值是否大于指定阀值;
206,若判断结果为误差商值大于指定阀值,则将指定阀值确定为二次阀值;
以预定除数为2、指定阀值为800为例,当(skip_cost[QP]/2)>800时,第二阀值即为800。
207,若判断结果为误差商值小于指定阀值,则将误差商值确定为二次阀值;
仍以预定除数为2、指定阀值为800为例,当(skip_cost[QP]/2)<800时,第二阀值即为skip_cost[QP]/2,也即将门限值缩小了一半。
需要说明的是,这里的预定除数以及指定阀值可以根据实际情况进行设定,由于预定除数以及指定阀值可以作为确定二次阀值的因素,当二次阀值确定的范围过小,且当前宏块的SAD落在该二次阀值确定的范围,则表明该当前宏块为SKIP宏块的可能性越大,也就是说二次阀值确定的范围越小,对于SKIP宏块的判定越准确;但由于二次阀值确定的范围缩小,就会导致SAD经验阀值确定的范围以内二次阀值确定的范围以外的范围无法用来判定当前宏块是否为SKIP宏块,因此还需要后续的对该当前宏块进行DCT变化和量化才能判断,也就是说二次阀值确定的范围越大,计算量也就越大。而通过大量统计表明,当预定除数选为2,且指定阀值选为800时,在保证对SKIP宏块的判定准确度的情况下尽可能的降低了计算量。
208,检测SAD是否小于二次阀值;
209,若检测结果为SAD小于二次阀值,则判定当前宏块为SKIP宏块;
举例来讲,请参见图2D所示,其示出了本发明部分实施例中提供的由SAD经验阀值所确定的两个判定范围的示意图,其中将小于某一量化参数所对应的SAD经验阀值的SAD所组成的集合确定为第一判定范围,将小于由该SAD经验阀值确定的二次阀值的SAD所组成的集合确定为第二判定范围,由上面的判断可知,若当前宏块的SAD位于第一判定范围时,则可以进一步判断该当前宏块的SAD是否位于第二判定范围,如果当前宏块的SAD位于第二判定范围,则可以直接判定该当前宏块为SKIP宏块;若当前宏块位于第一判定范围时,则可以进一步判断该当前宏块的SAD是否位于第二判定范围,如果当前宏块的SAD不位于第二判定范围时,则执行步骤210进一步判定。
210,若检测结果为SAD大于二次阀值,则对当前宏块进行离散余弦变换和量化;
211,当对当前宏块进行离散余弦变换和量化后得到的量化系数为零时,则判定当前宏块为SKIP宏块;
212,当对当前宏块进行离散余弦变换和量化后得到的量化系数不为零时,则继续搜索下一个与当前宏块匹配的匹配宏块;
213,若检测结果为SAD大于当前宏块的量化参数所对应的SAD经验阀值,则继续搜索下一个与当前宏块匹配的匹配宏块。
仍旧参见图2D所示,若检测结果为SAD大于当前宏块的量化参数所对应的SAD经验阀值,也即当前宏块的SAD不位于第一判定范围,则继续搜索下一个与当前宏块匹配的匹配宏块。
由上可知,在运动搜索的过程中,第一次获取匹配宏块之后,如果该匹配宏块与当前宏块的SAD小于该当前宏块的量化参数所对应的SAD经验阀值,且又小于二次阀值,则可以直接判定该当前宏块为SKIP宏块,而不需要繁琐的DCT变换和量化,大大降低了计算量,且即使不能根据第一次获取匹配宏块确定当前宏块为SKIP宏块,通常仅需要少量的几步搜索就可以确定,在减少搜索步骤的同时也极大的降低了计算量。
综上所述,本发明实施例中提供的SKIP宏块检测方法,通过仅一次或少量几次计算出的当前宏块的SAD,当该SAD小于该当前宏块的量化参数所对应的SAD经验阀值且也小于二次阀值时,则可以确定该当前宏块为SKIP宏块;解决了有技术中在确定SKIP宏块时计算量非常大的问题;由于可能仅需要一次SAD的计算以及二次阀值的判断就可以判别出当前宏块是否为SKIP宏块,因此在检测SKIP宏块的过程中,达到了降低计算量的效果。
以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。
请参见图3所示,其示出了本发明一个实施例中提供的SKIP宏块检测装置的结构示意图。该SKIP宏块检测装置可以包括:第一获取模块302、第一检测模块304、第二检测模块306和第一判定模块308。
第一获取模块302,可以用于对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;
第一检测模块304,可以用于根据当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测SAD是否小于当前宏块的量化参数所对应的SAD经验阀值;
第二检测模块306,可以用于在第一检测模块304的检测结果为SAD小于当前宏块的量化参数所对应的SAD经验阀值时,停止对当前宏块进行的运动搜索,并检测SAD是否小于二次阀值,二次阀值由当前宏块的量化参数所对应的SAD经验阀值的值确定;
第一判定模块308,可以用于在第二检测模块306的检测结果为SAD小于二次阀值时,判定当前宏块为SKIP宏块。
综上所述,本发明实施例中提供的SKIP宏块检测装置,通过仅一次或少量几次计算出的当前宏块的SAD,当该SAD小于该当前宏块的量化参数所对应的SAD经验阀值且也小于二次阀值时,则可以确定该当前宏块为SKIP宏块;解决了有技术中在确定SKIP宏块时计算量非常大的问题;由于可能仅需要一次SAD的计算以及二次阀值的判断就可以判别出当前宏块是否为SKIP宏块,因此在检测SKIP宏块的过程中,达到了降低计算量的效果。
请参见图4所示,其示出了本发明一个实施例中提供的SKIP宏块检测装置的结构示意图。该SKIP宏块检测装置可以包括:第一获取模块402、第一检测模块404、第二检测模块406和第一判定模块408。
第一获取模块402,可以用于对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;
第一检测模块404,可以用于根据当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测SAD是否小于当前宏块的量化参数所对应的SAD经验阀值;
第二检测模块406,可以用于在第一检测模块404的检测结果为SAD小于当前宏块的量化参数所对应的SAD经验阀值时,停止对当前宏块进行的运动搜索,并检测SAD是否小于二次阀值,二次阀值由当前宏块的量化参数所对应的SAD经验阀值的值确定;
第一判定模块408,可以用于在第二检测模块406的检测结果为SAD小于二次阀值时,判定当前宏块为SKIP宏块。
在图4所示实施例中的第一种可能的实现方式中,该SKIP宏块检测装置还可以包括:第一确定模块410、第二获取模块412和第二确定模块414。
第一确定模块410,可以用于对于每一个量化参数,确定出预定数量的SKIP宏块;
第二获取模块412,可以用于获取每个SKIP宏块的量化参数以及SKIP宏块与最佳匹配块之间的SAD;
第二确定模块414,可以用于对于每一个量化参数,确定量化参数所对应的各个SAD,将各个SAD的平均值或中值确定为量化参数所对应的SAD经验阀值。
在图4所示实施例中的第二种可能的实现方式中,该SKIP宏块检测装置还可以包括:商值获取模块416、判断模块418、第三确定模块420和第四确定模块422。
商值获取模块416,可以用于将当前宏块的量化参数所对应的SAD经验阀值除以预定除数,得到误差商值;
判断模块418,可以用于判断商值获取模块416获取到的误差商值是否大于指定阀值;
第三确定模块420,可以用于在判断模块418的判断结果为误差商值大于指定阀值时,将指定阀值确定为二次阀值;
第四确定模块422,可以用于在判断模块418的判断结果为误差商值小于指定阀值时,将误差商值确定为二次阀值。
在图4所示实施例中的第三种可能的实现方式中,该SKIP宏块检测装置还可以包括:搜索模块424。
搜索模块424,可以用于在第一检测模块404的检测结果为SAD大于当前宏块的量化参数所对应的SAD经验阀值时,继续搜索下一个与当前宏块匹配的匹配宏块。
在图4所示实施例中的第四种可能的实现方式中,该SKIP宏块检测装置还可以包括:量化模块426和第二判定模块428。
量化模块426,可以用于在第二检测模块406的检测结果为SAD大于二次阀值时,对当前宏块进行离散余弦变换和量化;
第二判定模块428,可以用于当对当前宏块进行离散余弦变换和量化后得到的量化系数为零时,则判定当前宏块为SKIP宏块;
搜索模块424,还可以用于当对当前宏块进行离散余弦变换和量化后得到的量化系数不为零时,则继续搜索下一个与当前宏块匹配的匹配宏块。
在图4所示实施例中的第五种可能的实现方式中,该第一获取模块402可以包括:获取单元402a、确定单元402b和计算单元402c。
获取单元402a,可以用于在运动搜索的过程中,获取当前宏块的当前起始搜索点;
确定单元402b,可以用于将获取单元402a获取的当前起始搜索点所对应的位于参考帧上的宏块确定为与当前宏块匹配的当前匹配宏块;
计算单元402c,可以用于根据当前宏块上的像素值和当前匹配宏块上的像素值计算得到SAD。
综上所述,本发明实施例中提供的SKIP宏块检测装置,通过仅一次或少量几次计算出的当前宏块的SAD,当该SAD小于该当前宏块的量化参数所对应的SAD经验阀值且也小于二次阀值时,则可以确定该当前宏块为SKIP宏块;解决了有技术中在确定SKIP宏块时计算量非常大的问题;由于可能仅需要一次SAD的计算以及二次阀值的判断就可以判别出当前宏块是否为SKIP宏块,因此在检测SKIP宏块的过程中,达到了降低计算量的效果。
需要说明的是:上述实施例中提供的SKIP宏块检测装置在对SKIP宏块进行快速检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将编码器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的SKIP宏块检测装置与SKIP宏块检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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宏块检测装置,其特征在于,所述装置包括:
第一获取模块,用于对在当前帧上选取的当前宏块进行运动搜索,在运动搜索的过程中获取所述当前宏块与搜索到的当前匹配宏块之间的像素绝对误差和SAD;
第一检测模块,用于根据所述当前宏块所对应的量化参数以及不同量化参数与不同SAD经验阀值之间的对应关系,检测所述SAD是否小于所述当前宏块的量化参数所对应的SAD经验阀值;
第二检测模块,用于在所述第一检测模块的检测结果为所述SAD小于所述当前宏块的量化参数所对应的SAD经验阀值时,停止对所述当前宏块进行的运动搜索,并检测所述SAD是否小于二次阀值,所述二次阀值由所述当前宏块的量化参数所对应的SAD经验阀值的值确定;
第一判定模块,用于在所述第二检测模块的检测结果为所述SAD小于所述二次阀值时,判定所述当前宏块为SKIP宏块;
其中,所述装置还包括:
商值获取模块,用于将所述当前宏块的量化参数所对应的SAD经验阀值除以预定除数,得到误差商值;
判断模块,用于判断所述误差商值是否大于指定阀值;
第三确定模块,用于在所述判断模块的判断结果为所述误差商值大于所述指定阀值时,将所述指定阀值确定为所述二次阀值;
第四确定模块,用于在所述判断模块的判断结果为所述误差商值小于所述指定阀值时,将所述误差商值确定为所述二次阀值。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于对于每一个量化参数,确定出预定数量的SKIP宏块;
第二获取模块,用于获取每个SKIP宏块的量化参数以及所述SKIP宏块与最佳匹配块之间的SAD;
第二确定模块,用于对于每一个量化参数,确定所述量化参数所对应的各个SAD,将所述各个SAD的平均值或中值确定为所述量化参数所对应的SAD经验阀值。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
搜索模块,用于在所述第一检测模块的检测结果为所述SAD大于所述当前宏块的量化参数所对应的SAD经验阀值时,继续搜索下一个与所述当前宏块匹配的匹配宏块。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
量化模块,用于在所述第二检测模块的检测结果为所述SAD大于所述二次阀值时,对所述当前宏块进行离散余弦变换和量化;
第二判定模块,用于当对所述当前宏块进行离散余弦变换和量化后得到的量化系数为零时,则判定所述当前宏块为SKIP宏块;
搜索模块,还用于当对所述当前宏块进行离散余弦变换和量化后得到的量化系数不为零时,则继续搜索下一个与所述当前宏块匹配的匹配宏块。
10.根据权利要求6至9中任一所述的装置,其特征在于,所述第一获取模块,包括:
获取单元,用于在运动搜索的过程中,获取所述当前宏块的当前起始搜索点;
确定单元,用于将获取单元获取的所述当前起始搜索点所对应的位于参考帧上的宏块确定为与所述当前宏块匹配的所述当前匹配宏块;
计算单元,用于根据所述当前宏块上的像素值和所述当前匹配宏块上的像素值计算得到所述SAD。
CN201310747317.7A 2013-12-30 2013-12-30 Skip宏块检测方法及装置 Active CN103731669B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310747317.7A CN103731669B (zh) 2013-12-30 2013-12-30 Skip宏块检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310747317.7A CN103731669B (zh) 2013-12-30 2013-12-30 Skip宏块检测方法及装置

Publications (2)

Publication Number Publication Date
CN103731669A CN103731669A (zh) 2014-04-16
CN103731669B true CN103731669B (zh) 2017-02-08

Family

ID=50455571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310747317.7A Active CN103731669B (zh) 2013-12-30 2013-12-30 Skip宏块检测方法及装置

Country Status (1)

Country Link
CN (1) CN103731669B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106954082A (zh) * 2016-01-07 2017-07-14 中兴通讯股份有限公司 视频编解码方法、编解码装置及系统
CN105828084B (zh) * 2016-03-30 2021-04-13 腾讯科技(深圳)有限公司 Hevc帧间编码处理方法和装置
CN110267047B (zh) * 2019-06-28 2021-06-29 苏州浪潮智能科技有限公司 视频帧间运动估计方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192148B1 (en) * 1998-11-05 2001-02-20 Winbond Electronics Corp. Method for determining to skip macroblocks in encoding video
CN1751522A (zh) * 2002-12-18 2006-03-22 罗伯特·戈登大学 利用对选定宏块的跳过移动估计进行的视频编码
CN101056408A (zh) * 2006-04-13 2007-10-17 汤姆森许可贸易公司 用于确定视频编码中跳跃模式的阈值的方法和装置
CN101742332A (zh) * 2009-12-28 2010-06-16 深圳市融创天下科技发展有限公司 基于门限的P_skip块提前终止判断方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192148B1 (en) * 1998-11-05 2001-02-20 Winbond Electronics Corp. Method for determining to skip macroblocks in encoding video
CN1751522A (zh) * 2002-12-18 2006-03-22 罗伯特·戈登大学 利用对选定宏块的跳过移动估计进行的视频编码
CN101056408A (zh) * 2006-04-13 2007-10-17 汤姆森许可贸易公司 用于确定视频编码中跳跃模式的阈值的方法和装置
CN101742332A (zh) * 2009-12-28 2010-06-16 深圳市融创天下科技发展有限公司 基于门限的P_skip块提前终止判断方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《H.264/AVC 中基于全零块的预测模式选择》;周韬等;《计算机工程》;20091231;第35卷(第24期);第232-238页 *

Also Published As

Publication number Publication date
CN103731669A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN101026761B (zh) 一种具有最小误差的快速变尺寸块匹配的运动估计方法
CN101072342B (zh) 一种场景切换的检测方法及其检测系统
CN105791872B (zh) Hevc视频编解码中执行帧内预测的图像处理装置及方法
CN102656886B (zh) 知晓对象的视频编码策略
CN103731669B (zh) Skip宏块检测方法及装置
EP1835763B1 (en) Video coding apparatus and method
CN101394566B (zh) 一种十字菱形运动估计搜索方法
CN101699865A (zh) 一种块运动自适应的亚像素快速搜索方法
CN1835594A (zh) 在计算机上执行运动矢量检测处理的检测方法以及装置
CN107087200A (zh) 针对高效率视频编码标准的跳过编码模式提前判决方法
CN108833917A (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN101883286A (zh) 运动估计中的校准方法及装置、运动估计方法及装置
CN101754022A (zh) 低复杂度的运动估计方法
CN109495746A (zh) 一种基于运动矢量调整的视频编码方法
CN110166775A (zh) 帧内预测方法、编码器及存储装置
CN101102504B (zh) 一种结合视频编码器的混合运动检测方法
CN105282557B (zh) 一种预测运动矢量的h.264快速运动估计方法
CN112261413B (zh) 视频编码方法、编码装置、电子设备和存储介质
Ramasubbu et al. A bit stream feature-based energy estimator for HEVC software encoding
CN108737836A (zh) 一种帧间预测编码方法、装置及电子设备
TWI450591B (zh) 視訊處理晶片組及其中移動評估的資料讀取之方法
CN101365133B (zh) 一种dct域插值舍入误差补偿方法
CN108012151B (zh) 一种基于贝叶斯分类的自适应运动矢量精度快速选择方法与装置
CN101895675A (zh) 一种移动侦测方法和装置
Heithausen et al. Temporal Prediction of Motion Parameters with Interchangeable Motion Models

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140416

Assignee: All kinds of fruits garden, Guangzhou network technology company limited

Assignor: Guangzhou Huaduo Network Technology Co., Ltd.

Contract record no.: 2015990000266

Denomination of invention: Method and device for detecting SKIP macro block

License type: Common License

Record date: 20150511

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
CB02 Change of applicant information

Address after: 511446 Guangzhou City, Guangdong Province, Panyu District, South Village, Huambo Business District Wanda Plaza, block B1, floor 28

Applicant after: Guangzhou Huaduo Network Technology Co., Ltd.

Address before: 510655, Guangzhou, Whampoa Avenue, No. 2, creative industrial park, building 3-08,

Applicant before: Guangzhou Huaduo Network Technology Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant