CN101404774B - 运动搜索中宏块划分模式的选择方法 - Google Patents
运动搜索中宏块划分模式的选择方法 Download PDFInfo
- Publication number
- CN101404774B CN101404774B CN 200810305538 CN200810305538A CN101404774B CN 101404774 B CN101404774 B CN 101404774B CN 200810305538 CN200810305538 CN 200810305538 CN 200810305538 A CN200810305538 A CN 200810305538A CN 101404774 B CN101404774 B CN 101404774B
- Authority
- CN
- China
- Prior art keywords
- mode
- block
- piece
- macro
- motion search
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明属于视频编码技术,具体涉及一种H.264的帧间分数级运动搜索方法。本发明所要解决的技术问题是,提供一种运动搜索中能快速划分宏块的宏块划分模式的选择方法。运动搜索中宏块划分模式的选择方法,采用阈值对划分后的块的SAD值进行判断,从而判定当前模式下块的匹配度,如划分的块在当前模式下匹配度较高,则对该块不再进行其它模式的划分,以减少宏块划分模式的选择量;如划分的块在当前模式下匹配度较低,为了保证帧间预测精度,则对该块进行其它模式的划分。本发明能有效地减少宏块划分选择模式的选择量和块的运动搜索次数,从而提高编码器算法速度。
Description
技术领域
本发明属于视频编码技术,具体涉及一种H.264的帧间分数级运动搜索方法。
背景技术
H.264/AVC是由联合视频工作组(Joint Video Team,JVT)制定的。该标准为广播、存储设备、对话服务以及无线网络等方面的视频技术提供了技术支持,该标准和以往的标准相比,例如:H.263、H.263+、H.263++和MPEG-4,在视频编码效率上取得了很大的提高,在相同视频质量下,H.264不仅比H.263和MPEG-4节约了50%的码率,而且对网络传输具有更好的支持功能。H.264/AVC采用了许多新的技术,包括多模式的帧内预测、FMO(灵活模块次序)、1/4像素精度的运动估计和运动补偿、多参考帧技术、环路滤波技术等。这些新的技术不仅使得H.264具有了更好的视频压缩性能,而且让视频标准能更广泛地、更灵活地应用于不同的网络环境。
视频源由视频图像序列构成,视频序列被划分为不同的GOP(视频图像组),在视频图像组里,可以由三种不同的视频图像帧构成,分别为I帧、P帧和B帧。I帧为帧内预测帧,其视频图像通过本帧内的图像信息进行压缩编码,这种模式的编码效率往往不高。P帧为帧间预测帧,其采用了帧间运动补偿技术,即通过前面已编码帧的信息来预测当前帧。B帧为双向帧间预测帧,它可以利用前面已编码帧或者后续帧,或者同时使用前面和后续重建帧的信息来进行帧间预测。P帧和B帧相比I帧,只需要很少的编码比特来存储图像信息,这些信息主要是帧间预测的残差。
帧间预测通过运动补偿预测对视频源进行压缩编码。当前帧中的宏块通过在参考帧中寻找匹配的宏块进行预测,其当前帧中的宏块位置与参考帧中的宏块位置差为运动向量。帧间预测的关键部分就在于如何寻找匹配块,即运动搜索。运动搜索精确度影响着视频压缩的效率和重建的质量,在H.264中采用了1/4像素精度的运动搜索方法和多种宏块划分模式进行运动搜索。而在H.264中需要遍历宏块的每种划分模式,这样需要大量的计算量。H.264之所以进行不同宏块划分模式的运动搜索,目的是为了尽可能减少运动搜索的残差与编码运动向量比特数。宏块划分成的块越小,运动搜索能够更加精确地匹配到参考帧中的图像,其帧间预测的残差就可以越少。但是宏块划分成的块越多,其所需要传输的运动向量越多。因此宏块的最佳划分模式应该由残差的多少(由绝对误差和(sum of absolute difference,SAD)决定)和编码运动向量的编码比特数共同决定。由于宏块划分的模式种类很多,对于16×16的宏块可划分为16×16、8×16、16×8和8×8四种模式,如图1所示,进一步的,每个8×8的块还可以划分为8×8、8×4、4×8和4×4四种模式,如图2所示。现有技术在运动搜索中,选择最优的宏块划分模式需要遍历的宏块划分的各种模式(16×16宏块有第一模式16×16、第二模式8×16、第三模式16×8、第四模式8×8;8×8宏块有第一模式8×8、第二模式4×8、第三模式8×4和第四模式4×4),得到每种划分模式下运动搜索的运动向量和残差(绝对误差和),计算出其匹配误差函数,找出宏块在各划分模式下具有最小的匹配误差函数的模式作为该宏块的划分模式。这需要大量的计算量,影响了视频编码的速度,尤其是在实时通信时,这种搜索方法很难满足实际需要。
每个块的匹配误差函数计算公式如下:
其中SAD(绝对误差和)的计算公式如下:
发明内容
本发明所要解决的技术问题是,提供一种运动搜索中能快速划分宏块的宏块划分模式的选择方法。
本发明为解决上述技术问题所采用的技术方案是,运动搜索中宏块划分模式的选择方法,包括以下步骤:
a、以第一模式作为当前宏块划分模式,对宏块进行第一次运动搜索,得到第一模式块对应的残差矩阵与运动向量,计算从第一模式块划分得到的4个第四模式块的SAD值;
b、选出所述4个第四模式块中具有最大SAD的第四模式块,将该第四模式块对应的SAD值分别与其水平相邻和垂直相邻的第四模式块的SAD值相加;判断与水平相邻的第四模式块的SAD值相加的值是否大于与垂直相邻的第四模式块的SAD值相加的值,如是,则将第二模式作为当前宏块划分模式,第二次运动搜索以第二模式来划分宏块;如否,则将第三模式作为当前宏块划分模式,第二次运动搜索以第三模式来划分宏块;
c、计算当前宏块划分模式下,分别将划分得到的2个第二模式块或第三模式块的SAD值与第一阈值比较,逐一判断当前宏块划分模式下的第二模式块或第三模式块的SAD值是否大于第一阈值,如是,对大于第一阈值的第二模式块或第三模式块进行第二次运动搜索,得到该第二模式块或第三模式块对应的残差矩阵与运动向量;如否,以第一次运动搜索得到的残差矩阵与运动向量作为第二模式块或第三模式块对应得到的残差矩阵与运动向量;
d、根据第二次运动搜索得到的残差矩阵,计算第二模式块或第三模式块划分得到的第四模式块的SAD值;
e、逐一判断各第四模式块的SAD值是否大于第二阈值,如是,以第四模式来划分宏块,对大于第二阈值的第四模式块进行第三次运动搜索,得到该第四模式块对应的残差矩阵与运动向量;如否,以上一次运动搜索得到的残差矩阵与运动向量作为第四模式块对应的残差矩阵与运动向量;
f、统计宏块在第一模式、第二模式与第四模式,或者第一模式、第三模式与第四模式下对应的残差矩阵与运动向量,并计算出各个模式的匹配误差函数,以最小的匹配误差函数对应的宏块划分模式作为当前宏块的划分模式。
步骤e中,所述上一次运动搜索具体为,当该第四模式块所在的第二模式块或第三模式块在步骤c中的SAD值与第一阈值判断中,对应的第二模式块或第三模式块的SAD值大于第一阈值,那么该第四模式块对应的上一次运动搜索为第二次运动搜索;否则,该第四模式块对应的上一次运动搜索为第一次运动搜索。
残差矩阵为当前宏块减去参考帧中最匹配块的差值,SAD值体现了残差的大小,SAD值越大表明当前宏块与参考帧的匹配度越低,本发明中,采用阈值对划分后的块的SAD值进行判断,从而判定当前模式下块的匹配度,如划分的块在当前模式下匹配度较高,则对该块不再进行其它模式的划分,以减少宏块划分模式的选择量;如划分的块在当前模式下匹配度较低,为了保证帧间预测精度,则对该块进行其它模式的划分。
所述宏块为16×16块或8×8块;当宏块为16×16块时,对应的第一模式块为16×16块,第二模式为8×16块,第三模式块为16×8,第四模式块为8×8;所述宏块为8×8块时,对应的第一模式块为8×8块,第二模式为4×8块,第三模式块为8×4,第四模式块为4×4。
本发明的有益效果是,有效地减少宏块划分选择模式的选择量和块的运动搜索次数,从而提高编码器算法速度。
附图说明
图1为16×16宏块划分模式;
图2为8×8宏块划分模式;
图3为16×16宏块中划分块的SAD值表示;
图4为8×8宏块中划分块的SAD值表示。
具体实施方式
以对16×16宏块划分模式选择的方法为例,先进行16×16宏块划分模式选择,再对8×8宏块的划分模式进行选择,最终的宏块划分模式的确定根据不同划分模式下的匹配误差函数决定。
本发明的具体实施步骤如下:
I.进行16×16宏块的划分模式选择,各划分块的SAD值如图3所示:
1)采用16×16的模式(第一模式)进行运动搜索;
2)根据运动搜索,得到16×16块对应的残差矩阵与运动向量,并计算4个8×8块(第四模式块)的SAD值;这4个8×8块的SAD值分别为SAD41、SAD42、SAD43和SAD44,它们的大小关系为SAD41>SAD42>SAD43>SAD44;
3)找出4个8×8块中具有最大SAD值的块(SAD41),将其SAD41分别于水平相邻8×8块和垂直相邻8×8块的SAD值(水平相邻8×8块的SAD值为SAD42,垂直相邻8×8块的SAD值为SAD43)相加,由于(SAD41+SAD42)大于(SAD41+SAD43),则采用8×16块(第二模式块)作为当前宏块划分模式;SAD41值与SAD42相加得到SAD21;
4)计算在第二模式下另一个8×16块的SAD值,SAD43值与SAD44相加得到SAD22,分别判断这两个块的SAD值(SAD21、SAD22)是否大于8×16划分模式的阈值(TSAD23,第一阈值),SAD21大于TSAD23,则SAD21对应的8×16块需要进行一次新的运动搜索(将8×16模式作为当前宏块划分模式),并得到该8×16块对应的残差矩阵与运动向量;SAD22小于TSAD23,SAD22对应的8×16块则不需要进行新的运动搜索,该8×16块的运动向量及残差矩阵仍采用16×16块运动搜索得到的结果;
5)根据步骤4)对SAD21对应的8×16块进行的新的运动搜索,得到其2个8×8块(第四模式块)的SAD值(SAD41′、SAD42′),SAD41′>SAD43>SAD42′>SAD44;
6)判断SAD41′、SAD42′、SAD43和SAD44是否大于8×8划分模式的阈值(TSAD4,第二阈值),其中,SAD41′>SAD43>TSAD4>SAD42′>SAD44;SAD41′和SAD43大于TSAD4,则SAD41′和SAD43对应的8×8块需要进行一次新的运动搜索(将8×8模式作为当前8×16块块划分模式),并得到该8×8块对应的残差矩阵与运动向量;SAD42′和SAD44小于TSAD4,则不需要进行新的运动搜索,SAD42′对应8×8块的运动向量及残差矩阵仍采用8×16块运动搜索得到的结果,而SAD44对应8×8块的运动向量及残差矩阵仍采用16×16块运动搜索得到的结果;
II.进行该宏块内每个8×8块的划分模式选择,各划分块的SAD值如图4所示:
1)得到的每个8×8块(第一模式块)的残差矩阵与运动向量,并计算其每个8×8块中的4个4×4块(第四模式块)的SAD值(SAD71、SAD72、SAD73和SAD74),SAD71>SAD74>SAD72>SAD73;
2)找出4个4×4块中具有最大SAD值的块(SAD71),将其SAD71分别于水平相邻和垂直相邻4×4块的SAD值(SAD72、SAD73)相加,比较这两个相加得到的SAD值,找出最大的一个SAD及其4×4块组合模式(4×8(第二模式)或8×4(第三模式)的宏块划分模式),(SAD71+SAD73)大于(SAD71+SAD72),表明应采用8×4块的宏块划分模式;SAD71值与SAD73相加得到SAD51;
3)计算在这种宏块划分模式下另一个块的SAD值,SAD74与SAD72相加得到SAD52;分别判断这SAD51、SAD52是否大于该块划分模式的阈值(TSAD56,第一阈值);SAD51>TSAD56>SAD52;SAD51对应的8×4块需要进行一次新的运动搜索(将8×4模式作为当前8×8块块划分模式),并得到该8×4块对应的残差矩阵与运动向量;SAD52对应的8×4块不需要进行新的运动搜索,该块的运动向量及残差矩阵仍采用8×8块的运动搜索得到的结果;
4)根据SAD51对应的8×4块得到其中2个4×4块的SAD值(SAD71′、SAD73′);SAD71′>SAD74>SAD72>SAD73′;
5)判断SAD71′、SAD72、SAD73′和SAD74是否大于4×4宏块划分模式的阈值(TSAD7,第二阈值),SAD71′>TSAD7>SAD74>SAD72>SAD73′,SAD71′大于TSAD7,则SAD71′对应的4×4块需要进行一次新的运动搜索(将4×4模式作为当前8×4块的划分模式),并得到该4×4块对应的残差矩阵与运动向量;SAD72、SAD73′和SAD74小于TSAD7,它们对应的4×4块不需要进行新的运动搜索,其SAD73′对应块的运动向量及残差矩阵仍采用8×4块的运动搜索得到的结果,而SAD72和SAD74对应块的运动向量及残差矩阵仍采用8×8块的运动搜索得到的结果;
III.根据第I和II步得到的结果,统计出宏块每种划分模式下运动搜索的运动向量和残差,计算出其匹配误差函数,找出宏块在各种划分模式下具有最小的匹配误差函数的模式作为该宏块的划分模式。
在算法实现过程中,阈值的设置影响了算法的速度和帧间预测的精度。往往阈值设置越低,帧间预测的精度越高,但是需要遍历的宏块划分模式的数量越多,同时在不同模式下需要进行运动搜索块的数量也越多,其编码器速度越慢,反之帧间预测的精度越低,但是需要遍历的宏块划分模式的数量越少,同时在不同模式下需要进行运动搜索块的数量也越少,其编码器速度越快。一般而言,其阈值的设定不宜太低,这样做的目的是在一些块的SAD已经很小的情况下,再对其块进行进一步划分和运动搜索来达到降低SAD的可能性不大,即使能有所降低,其降低的程度也会很小,但是却需要更多的运动向量编码比特,这些情况下块的进一步划分很难成为最优的划分模式。
Claims (1)
1.运动搜索中宏块划分模式的选择方法,其特征在于,包括以下步骤:
a、以第一模式作为当前宏块划分模式,对宏块进行第一次运动搜索,得到第一模式块对应的残差矩阵与运动向量,计算从第一模式块划分得到的4个第四模式块的SAD值;
b、选出所述4个第四模式块中具有最大SAD值的第四模式块,将该第四模式块对应的SAD值分别与其水平相邻和垂直相邻的第四模式块的SAD值相加;判断与水平相邻的第四模式块的SAD值相加的值是否大于与垂直相邻的第四模式块的SAD值相加的值,如是,则将第二模式作为当前宏块划分模式,第二次运动搜索以第二模式来划分宏块;如否,则将第三模式作为当前宏块划分模式,第二次运动搜索以第三模式来划分宏块;
c、计算当前宏块划分模式下,分别将划分得到的2个第二模式块或第三模式块的SAD值与第一阈值比较,逐一判断当前宏块划分模式下的第二模式块或第三模式块的SAD值是否大于第一阈值,如是,对大于第一阈值的第二模式块或第三模式块进行第二次运动搜索,得到该第二模式块或第三模式块对应的残差矩阵与运动向量;如否,以第一次运动搜索得到的残差矩阵与运动向量作为第二模式块或第三模式块对应得到的残差矩阵与运动向量;
d、根据第二次运动搜索得到的残差矩阵,计算第二模式块或第三模式块划分得到的第四模式块的SAD值;
e、逐一判断各第四模式块的SAD值是否大于第二阈值,如是,以第四模式来划分宏块,对大于第二阈值的第四模式块进行第三次运动搜索,得到该第四模式块对应的残差矩阵与运动向量;如否,以上一次运动搜索得到的残差矩阵与运动向量作为第四模式块对应的残差矩阵与运动向量;
f、统计宏块在第一模式、第二模式与第四模式,或者第一模式、第三模式与第四模式下对应的残差矩阵与运动向量,并计算出各个模式的匹配误差函数,以最小的匹配误差函数对应的宏块划分模式作为当前宏块的划分模式;
所述宏块为16×16块或8×8块;当所述宏块为16×16块,对应的第一模式块为16×16块,第二模式为8×16块,第三模式块为16×8,第四模式块为8×8;当所述宏块为8×8块时,对应的第一模式块为8×8块,第二模式为4×8块,第三模式块为8×4,第四模式块为4×4;
步骤e中,所述上一次运动搜索具体为,当该第四模式块所在的第二模式块或第三模式块在步骤c中的SAD值与第一阈值判断中,对应的第二模式块或第三模式块的SAD值大于第一阈值,那么该第四模式块对应的上一次运动搜索为第二次运动搜索;否则,该第四模式块对应的上一次运动搜索为第一次运动搜索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810305538 CN101404774B (zh) | 2008-11-13 | 2008-11-13 | 运动搜索中宏块划分模式的选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810305538 CN101404774B (zh) | 2008-11-13 | 2008-11-13 | 运动搜索中宏块划分模式的选择方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101404774A CN101404774A (zh) | 2009-04-08 |
CN101404774B true CN101404774B (zh) | 2010-06-23 |
Family
ID=40538622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810305538 Expired - Fee Related CN101404774B (zh) | 2008-11-13 | 2008-11-13 | 运动搜索中宏块划分模式的选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101404774B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101605262B (zh) * | 2009-07-09 | 2011-11-09 | 杭州士兰微电子股份有限公司 | 可变块尺寸运动预测方法和装置 |
KR101483750B1 (ko) | 2009-07-24 | 2015-01-19 | 삼성전자주식회사 | 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치 |
CN101715125B (zh) * | 2009-09-11 | 2011-09-28 | 中山大学 | 一种用于h.264视频编码的联合分数点运动估计和插值方法 |
CN102577389A (zh) * | 2009-10-16 | 2012-07-11 | 夏普株式会社 | 运动图像编码装置和运动图像解码装置 |
WO2011088593A1 (en) * | 2010-01-25 | 2011-07-28 | Thomson Licensing | Method and device for encoding of an image block and method and device for decoding of an image block |
BR122020007669B1 (pt) | 2010-04-13 | 2022-07-12 | Ge Video Compression, Llc | Codificação de uma amostragem espacial de um sinal de informação bidimensional usando subdivisão |
PL2559246T3 (pl) | 2010-04-13 | 2017-02-28 | Ge Video Compression Llc | Łączenie obszarów próbek |
KR102388012B1 (ko) * | 2010-04-13 | 2022-04-18 | 지이 비디오 컴프레션, 엘엘씨 | 샘플 배열 멀티트리 세부분할에서 계승 |
KR101874272B1 (ko) | 2010-04-13 | 2018-07-03 | 지이 비디오 컴프레션, 엘엘씨 | 평면 간 예측 |
CN102843556B (zh) * | 2011-06-20 | 2015-04-15 | 富士通株式会社 | 视频编码方法和*** |
CN102630016A (zh) * | 2012-04-09 | 2012-08-08 | 复旦大学 | 一种适用于整数运动估计的深度流水线硬件架构 |
CN104104966B (zh) * | 2013-04-08 | 2017-11-24 | 华为技术有限公司 | 视频块的划分方法和装置 |
WO2015123806A1 (en) * | 2014-02-18 | 2015-08-27 | Mediatek Singapore Pte. Ltd. | Methods for depth based block partitioning |
CN111698504B (zh) * | 2019-03-11 | 2022-05-20 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
CN116600134B (zh) * | 2023-05-04 | 2024-06-14 | 光线云(杭州)科技有限公司 | 一种适配图形引擎的并行视频压缩方法和装置 |
-
2008
- 2008-11-13 CN CN 200810305538 patent/CN101404774B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101404774A (zh) | 2009-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101404774B (zh) | 运动搜索中宏块划分模式的选择方法 | |
CN103339938B (zh) | 执行视频译码的运动向量预测 | |
CN104869406B (zh) | 对视频编码的方法和设备以及对视频解码的方法和设备 | |
CN103188496B (zh) | 基于运动矢量分布预测的快速运动估计视频编码方法 | |
CN106686378B (zh) | 对图像进行解码的方法和设备 | |
CN100551075C (zh) | 一种低复杂度的帧内预测模式选择方法 | |
CN101610413B (zh) | 一种视频的编码/解码方法及装置 | |
CN102934443B (zh) | 用于对视频进行编码和解码的方法和设备 | |
CN102025995B (zh) | 一种可伸缩视频编码的空间增强层快速模式选择方法 | |
CN101448159B (zh) | 一种基于率失真代价和模式频率的快速帧间模式选择方法 | |
CN101375593A (zh) | 处理多视图视频 | |
CN102668561A (zh) | 用于视频编码的方法和设备 | |
CN101022555B (zh) | 帧间预测编码的模式快速选择方法 | |
CN104980761A (zh) | 用于对运动矢量进行编码和解码的方法和设备 | |
CN103067704B (zh) | 一种基于编码单元层次提前跳过的视频编码方法和*** | |
CN102100059B (zh) | 用于运动估计迭代搜索的简单下一搜索位置选择 | |
CN110365982A (zh) | 一种多用途编码中帧内编码的多变换选择加速方法 | |
CN106331700A (zh) | 参考图像编码和解码的方法、编码设备和解码设备 | |
CN101883275B (zh) | 视频编码方法 | |
CN101945277B (zh) | 处理多视图视频 | |
CN101179729A (zh) | 一种基于帧间模式统计分类的h.264宏块模式选择方法 | |
CN101600111B (zh) | 一种实现自适应插值滤波二次编码的搜索方法 | |
CN100592797C (zh) | 快速运动估计方法 | |
CN101527854A (zh) | 帧间模式选择方法 | |
CN101931739A (zh) | 绝对误差总和值估算***及方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100623 Termination date: 20161113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |