CN101820547A - 帧间模式选择方法 - Google Patents
帧间模式选择方法 Download PDFInfo
- Publication number
- CN101820547A CN101820547A CN 200910118334 CN200910118334A CN101820547A CN 101820547 A CN101820547 A CN 101820547A CN 200910118334 CN200910118334 CN 200910118334 CN 200910118334 A CN200910118334 A CN 200910118334A CN 101820547 A CN101820547 A CN 101820547A
- Authority
- CN
- China
- Prior art keywords
- motion vector
- subdivision
- reference frame
- adjacent piece
- frame index
- 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.)
- Pending
Links
Images
Abstract
一种帧间模式选择方法,包括:根据相邻块的运动矢量,获得大尺寸剖分模式的运动矢量预测值,确定搜索起始点,计算所有剖分模式的代价函数,确定所选取的剖分模式,以及进行分数阶段的运动估计,获得所述最佳剖分模式的分数像素运动矢量,当前块上邻块的参考帧索引和运动矢量采用其最终用于编码的精确结果,当前块左邻块的参考帧索引和运动矢量采用其整数运动估计阶段计算结果。本发明通过在整数像素运动估计过程中对于左邻块采用整数像素运动估计阶段得到的运动矢量来计算代价函数,获得最佳剖分模式,从而进一步获得对应的分数像素运动矢量以及当前宏块的最佳帧间预测模式,减少了相邻宏块之间的依赖,提高了流水线的处理速度和编码效率。
Description
技术领域
本发明涉及信息处理的视频编码技术,特别是H.264视频编码的帧间模式选择方法。
背景技术
H.264是由ITU-T视频编码专家组和ISO/IEC动态图像专家组联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这种编码技术也被称为AVC,即高级视频编码。H.264标准包含一系列新的特征,例如支持多参考帧、最大16x16至最小4x4的可变尺寸块以及1/4像素精度的运动估计。在相同的重建图像质量下,H.264标准可比H.263标准节约50%左右的码率。
在H.264标准中,对整数和分数样本的预测,采用1/4像素或者1/8像素的运动估计,也就是说,其真正的运动矢量位移可能是以1/4或者1/8像素为基本单位的。具体来说,H.264通过6阶FIR滤波器对整数像素运动预测参考值进行内插,获得1/2像素运动预测参考值,然后,通过线性内插获得1/4像素运动预测参考值。两个纵向或横向的1/2像素或整数像素运动预测参考值形成1/4像素运动预测参考值,这些1/4像素运动预测参考值在相邻取样间被内插值替换,剩余的1/4像素由处于对角位置的一对1/2像素线性地内插进行替换。由于亮度部分的1/4像素运动矢量对应到色度部分就是1/8像素的运动矢量,因此需要对色度信号进行1/8像素的内插运算。在每一个色度宏块中,在整数像素的1/8间隔,以内插值的形式产生1/8像素色度样本。
1/4像素精度的运动估计提高了运动矢量的精度,从而减小了帧间估计误差,提高了压缩比,但是同时,计算十分复杂且计算量巨大,据估计,H.264编码的计算复杂度大约相当于H.263的3倍。
通过软件实现编码的过程中,对于帧间模式选择,通常遍历所有可能的模式,计算对应的代价函数,获得具有最小值代价函数对应的运动矢量。但是,如果需要达到实时的效果,通过软件实现不仅对计算机主频的要求很高,并且功耗很大,而这些对于小型手持设备等需要实时进行视频编码的应用设备而言,太过奢侈,也无法实现。因此,常采用硬件代替软件,实现编码的过程。硬件实现具有并行处理、处理速度快并且功耗低等显著优点。
目前硬件编码通常是采用流水线方式实现的,在其实现过程中,编码过程被分为若干个阶段。参考图1,101阶段至104阶段分别为在流水线编码的帧间模式选择过程中,对一个宏块的四个运算操作阶段,其中,101阶段进行码率控制、去块效应以及流编码,102阶段进行整数像素的运动估计,103阶段进行分数像素的运动估计,104阶段进行运动补偿、变换和量化。对于同一个宏块依次进行上述四个阶段的运算,每个阶段的运算依赖于前一阶段的运算结果或运算过程中所获得的中间结果。
由于在流水线实现的过程中,每个阶段的运算依赖于前一阶段的运算结果或运算过程中所获得的中间结果,导致当前宏块的编码模式的预测以及运动矢量的计算依赖于前一宏块,因此,流水线的实现速度受到很大的限制,并且占用大量存储和带宽。
发明内容
本发明解决的技术问题是帧间模式选择的流水线实现中,当前宏块的帧间编码模式和运动矢量的代价函数计算所需要的预测运动矢量,依赖于前一宏块,从而导致流水线堵塞。
为解决上述技术问题,本发明提供一种帧间模式选择方法,包括:根据相邻块的运动矢量,获得大尺寸剖分模式的运动矢量预测值,其中,当前宏块的上邻块的参考帧索引和运动矢量采用其最终用于编码的精确结果,当前宏块的左邻块的参考帧索引和运动矢量采用其整数运动估计阶段计算结果;根据所述大尺寸剖分模式的运动矢量预测值,确定搜索起始点;计算所有剖分模式的代价函数,确定所选取的剖分模式;根据所获得的剖分模式,插值周边的分数像素;进行分数阶段的运动估计,获得所述最佳剖分模式的分数像素运动矢量。
可选的,所述大尺寸剖分模式包括16x16剖分、16x8剖分以及8x16剖分。
可选的,对于16x16剖分,所述根据相邻块信息,获得大尺寸剖分模式的运动矢量预测值包括:通过右上邻块是否在图像的有效范围内判断所述右上邻块是否为有效块,当所述右上邻块在图像的有效范围时,比较所述有效块与左邻块、上邻块、当前剖分的参考帧索引是否相同,根据参考帧索引相同的个数,计算当前剖分的运动矢量预测值;当所述右上邻块不在图像的有效范围内时,以左上邻块取代右上邻块作为有效块,比较所述有效块与左邻块、上邻块和当前剖分的参考帧索引是否相同,根据参考帧索引相同的个数,计算当前剖分运动矢量预测值;所述左邻块的参考帧索引为其在整数运动估计阶段的计算结果,所述上邻块和有效块的参考帧索引为其最终用于编码的精确结果。
可选的,所述根据相同的个数计算当前剖分运动矢量预测值包括:如果所述相同的个数大于1,以有效块、左邻块、上邻块运动矢量的中值作为当前宏块的运动矢量预测值;如果所述相同的个数为1,以和当前宏块有相同参考帧索引的对应块的运动矢量作为当前宏块的运动矢量预测值;如果左邻块在图像的有效范围内并且上邻块不在图像的有效范围内,那么以左邻块的运动矢量作为当前宏块的运动矢量预测值;否则也以有效块、左邻块、上邻块运动矢量的中值作为当前宏块的运动矢量预测值;所述左邻块的运动矢量为其在整数运动估计阶段的计算结果,所述剖分的上邻块和有效块的运动矢量为其最终用于编码的精确结果。
可选的,对于宏块上半部分的16x8剖分,所述根据相邻块信息,获得大尺寸剖分模式的运动矢量预测值包括:比较所述宏块上邻块的参考帧索引和所述宏块的参考帧索引是否相同,如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引相同,以所述宏块上邻块的运动矢量为所述剖分的运动矢量预测值;如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引不同,以所述宏块的运动矢量预测值为所述剖分的运动矢量预测值;所述左邻块的运动矢量和参考帧索引为其在整数运动估计阶段的计算结果,上邻块的参考帧索引为其最终用于编码的精确结果。
可选的,对于宏块下半部分的16x8剖分,所述运动矢量预测值包括为所述宏块左邻块的整数像素运动矢量。
可选的,对于宏块左半部分的8x16剖分,所述运动矢量预测值包括为所述宏块左邻块的整数像素运动矢量。
可选的,对于宏块右半部分的8x16剖分,所述根据相邻块信息,获得大尺寸剖分模式的运动矢量预测值包括:比较所述宏块上邻块的参考帧索引和所述宏块的参考帧索引是否相同,如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引相同,以所述宏块上邻块的运动矢量为所述剖分的运动矢量预测值;如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引不同,以所述宏块的运动矢量预测值为所述剖分的运动矢量预测值;所述左邻块的运动矢量和参考帧索引为其在整数运动估计阶段的计算结果,上邻块的参考帧索引为其最终用于编码的精确结果。
可选的,所述根据大尺寸剖分模式的运动矢量预测值,确定起始搜索点,包括:根据16x16剖分的运动矢量预测值确定起始搜索点。
可选的,所述根据16x16剖分的运动矢量预测值确定起始搜索点,包括:将距离16x16剖分运动矢量预测值最近的整数位置作为起始搜索点。
可选的,所述计算所有剖分模式的代价函数,确定所选取的剖分模式,包括:设定其它剖分模式的偏向值;对每一种剖分模式进行运动估计,并根据所述偏向值,计算其代价函数,以所获得的代价函数中具有最小值的为所述选取的剖分模式。
可选的,所述对每一种剖分模式进行运动估计包括:对于每一个搜索点,计算代价函数;确定搜索方向,获得下一个搜索点,进行代价函数的计算,直至搜索完成。
可选的,所述计算所有剖分模式的代价函数,确定所选取的剖分模式,包括:在搜索起始点,计算所有剖分模式的匹配误差,获得并保存匹配结果;确定搜索方向,获得下一个搜索点;在每一个非起始点的搜索点,计算所有剖分模式的匹配误差,并更新所述保存的匹配结果;搜索完成后,根据所述匹配结果,计算所有剖分模式的代价函数;根据各剖分模式的代价函数,确定所选取的剖分模式。
与现有技术相比,本发明通过在整数像素运动估计过程中利用左邻块整数像素阶段的结果计算代价函数,获得最佳剖分模式,根据最佳剖分模式对应的运动预测参考值,插值其周边的分数像素,进行分数阶段的运动估计,获得所述最佳剖分模式的分数像素运动矢量,从而获得当前宏块的最佳预测模式,减少了相邻宏块之间的依赖,提高了流水线的处理速度和编码效率。
附图说明
图1是视频编码流水线处理过程的示意图;
图2是本发明帧间模式选择方法实施方式的流程示意图;
图3是本发明帧间模式选择方法实施方式中当前宏块与相邻块位置关系的结构示意图;
图4是本发明帧间模式选择方法实施方式中16x8上半剖分和相邻块位置示意图;
图5是本发明帧间模式选择方法实施方式中16x8下半剖分和相邻块位置示意图;
图6是本发明帧间模式选择方法实施方式中8x16左半剖分和相邻块位置示意图;
图7是本发明帧间模式选择方法实施方式中8x16右半剖分和相邻块位置示意图;
图8是图2中步骤S3一种具体实施方式的流程示意图;
图9是图2中步骤S3另一种具体实施方式的流程示意图;
图10是图9中步骤S31具体实施方式的流程示意图。
具体实施方式
由于H.264仅对运动矢量残差,即实际运动矢量与运动矢量预测值的差值,进行编码,而运动矢量预测值需要通过相邻块信息计算得到的,因此视频编码的硬件流水线实现中,前后两个相邻宏块存在较强的依赖关系。具体来说,参考图1,对于帧间模式估计,在t时刻,当进行(x+1)宏块整数像素的运动估计时,需要应用到x宏块最终用于编码的运动矢量精确值,但是此时,x宏块只完成了整数像素阶段的运动估计,仅获得其整数像素的运动矢量,也就是说,由于整数像素阶段对最终用于编码的精确结果的依赖关系,使得当前宏块的计算需要等待前一宏块确定其最终编码方式之后才能开始。这种依赖关系将影响流水线,造成流水线的堵塞。
本发明实施方式采用当前宏块左邻块整数像素运动估计阶段的结果来代替该左邻块最终用于编码的精确结果对当前宏块进行整数像素运动估计,得到当前宏块的运动矢量预测值,并计算代价函数,获得最佳剖分模式,根据最佳剖分模式对应的运动预测参考值,插值其周边的分数像素,进行分数像素的运动估计,获得所述最佳剖分模式的分数像素运动矢量。
下面首先结合附图和实施例,对本发明实施方式进行详细的说明。
参考图2,本发明实施方式提供一种帧间模式选择方法,包括:步骤S1,根据相邻块的运动矢量,获得大尺寸剖分模式的运动矢量预测值,其中,当前宏块的上邻块的参考帧索引和运动矢量采用其最终用于编码的精确结果,当前宏块的左邻块的参考帧索引和运动矢量采用其整数运动估计阶段计算结果;步骤S2,根据所述大尺寸剖分模式的运动矢量预测值,确定搜索起始点;步骤S3,计算所有剖分模式的代价函数,确定所选取的剖分模式;步骤S4,根据所获得的剖分模式,插值周边的分数像素;步骤S5,进行分数阶段的运动估计,获得所述最佳剖分模式的分数像素运动矢量。
参考图3,E为当前宏块,A、B、C和D分别为E的左、上、右上和左上相应模式的相邻块。由于进行编码时,总是按照从左往右和从上往下的顺序编码,所述根据相邻块信息估计大尺寸剖分模式的运动矢量预测值,可仅根据当前块左边或上边的相邻块进行估计。
相邻块可能引用相同的参考帧,也可能引用不同的参考帧。块的参考帧索引用于标识该块所引用的参考帧。具体来说,当相邻块的参考帧索引为-2时,表示该块不在图像的有效范围内;当相邻块的参考帧索引为-1时,表示该块为INTRA块;当相邻块的参考帧索引为0时,表示该块以最近的一个前向重建帧为参考;当相邻块的参考帧索引为其它值时,表示该块以其它重建帧为参考。因此,通过比较当前块和相邻块的参考帧索引,可确定两者是否引用同一帧图像作参考。
其中,所述大尺寸剖分模式可包括16x16剖分、16x8剖分以及8x16剖分。
具体来说,对于16x16剖分,判断C块是否在图像的有效范围内:当C块在图像的有效范围时,分别比较A块,B块,C块和宏块E的参考帧索引是否相同,根据相同参考帧索引的个数N进行判断:如果N>1,以A块、B块、C块运动矢量的中值作为宏块E的运动矢量预测值;如果N=1,以和宏块E有相同参考帧索引的对应块的运动矢量作为宏块E的运动矢量预测值;如果A块在图像的有效范围内并且B块不在图像的有效范围内,那么以A块的运动矢量作为宏块E的运动矢量预测值;否则也以A块、B块、C块运动矢量的中值作为宏块E的运动矢量预测值。当C块不在图像的有效范围内时,以D块取代C块进行上述判断。其中,上述A块的运动矢量和参考帧索引为其在整数运动估计阶段所得到的,B块和C块的参考帧索引为其最终用于编码的精确值。
对于16x8剖分,16x8剖分可为宏块的上半部分或宏块的下半部分。参考图4,当16x8剖分为宏块E的上半部分501时,比较B1块的参考帧索引和宏块E的参考帧索引是否相同:当B1块的参考帧索引和宏块E的参考帧索引相同时,以B1块的运动矢量为该16x8剖分501的运动矢量预测值,反之,当B1块的参考帧索引和宏块E的参考帧索引不同时,以所述16x16剖分的运动矢量预测值为该16x8剖分501的运动矢量预测值。参考图5,当16x8剖分为宏块E的下半部分601时,以A2块的运动矢量作为该16x8剖分601的运动矢量预测值。其中,上述A1、A2块的运动矢量和参考帧索引为其在整数运动估计阶段所得到的,B1块的参考帧索引为其最终用于编码的精确值。
对于8x16剖分,8x16剖分可为宏块的左半部分或宏块的右半部分。参考图6,当该8x16剖分为宏块E的左半部分701时,以A3块的运动矢量作为该8x16剖分701的运动矢量预测值。参考图7,当该8x16剖分为宏块E的左半部分801时,比较B4块的参考帧索引和宏块E的参考帧索引是否相同:当B4块的参考帧索引和宏块E的参考帧索引相同时,以B4块的运动矢量为该8x16剖分的运动矢量预测值,反之,当B4块的参考帧索引和宏块E的参考帧索引不同时,则以所述16x16剖分的运动矢量预测值为该8x16剖分801的运动矢量预测值。其中,上述A3块的运动矢量和参考帧索引为其在整数运动估计阶段所得到的,B4块的参考帧索引为其最终用于编码的精确值。
步骤S2可包括:根据16x16剖分的运动矢量预测值确定搜索起始点。具体来说,可包括:将距离16x16剖分运动矢量预测值最近的整数位置作为搜索起始点。
确定搜索点后,执行步骤S3。
在不同的实施方式中,用于衡量匹配准确度的代价函数ME COST可具有不同的表达形式,用以表示在某剖分模式下,根据匹配原则计算当前块的编码代价。其中,绝对差之和SAD(Sums of absolute difference)是一种常用的匹配原则,用于表示在某剖分模式下,当前块与匹配块的绝对误差之和。具体来说,即当前待编码宏块的亮度分量和参考帧中对应亮度块的所有对应位置像素差的绝对值之和。
在步骤S3的一种具体实施方式中,代价函数为绝对差之和与偏向值的和,即ME_COST=SAD+BIAS。参考图8,可包括:步骤S21,设定其它剖分模式的偏向值BIAS;步骤S22,对每一种剖分模式进行运动估计,并根据所述偏向值,计算其代价函数,以所获得的代价函数中具有最小值的剖分模式为所述选取的剖分模式。
具体来说,步骤S21中,对于不同剖分模式,所述设定的偏向值各不相同。一般来说,8x8剖分模式、8x4剖分模式和4x8剖分模式的偏向值之间存在这样的关系:BIAS8×8>BIAS8×4以及BIAS8×8>BIAS4×8;8x4剖分模式、4x8剖分模式和4x4剖分模式的偏向值之间存在这样的关系:BIAS4×8>BIAS4×4以及BIAS8×4>BIAS4×4。
步骤S22中,对于一种剖分模式,可包括:对于每一个搜索点,计算代价函数ME_COST;确定搜索方向,获得下一个搜索点,进行代价函数的计算,直至搜索完成。
以16x16剖分模式为例,首先,计算其在搜索起始点的代价函数;确定下一个搜索点,再次计算其在该搜索点的代价函数,并与在搜索起始点所获得的代价函数进行比较,保存其较小的一个;再确定下一个搜索点,重复该过程,直至搜索结束,获得16x16剖分模式具有最小值的代价函数。
对每一种剖分模式都进行同样的运动估计过程,也就是说,步骤S22搜索完成之后,将获得19种剖分模式,所对应的最小的代价函数,将这些代价函数进行比较,最小的代价函数所对应得剖分模式为所选取的剖分模式。其中,19种剖分模式,包括:16x16、16x8、8x16三种大的剖分模式,以及四个各包括8x8、8x4、4x8和4x4四种剖分模式的8x8剖分模式,也就是16个小的剖分模式。
在步骤S3的另一种实施方式中,还可将SAD与运动矢量代价函数,即MV COST,的和值作为代价函数ME COST。其中,运动矢量代价函数定义为:MV_COST=λ[R(|MVx-PMVx|)+R(|MVy-PMVy|)];MV为运动矢量;PMV为运动矢量预测值;λ是仅与宏块量化参数QP相关的数,QP与码流和画质相关,当QP值越小时,对应画质越好,码流也越大,同时λ也越大;R是格伦布(即Exp_Golomb)编码的码长。
参考图9,具体可包括:步骤S31,在搜索起始点,计算所有剖分模式的匹配误差,获得并保存匹配结果;步骤S32,确定搜索方向,获得下一个搜索点;步骤S33,在每一个非起始点的搜索点,计算所有剖分模式的匹配误差,并更新所述保存的匹配结果;重复步骤S32和步骤S33,直到搜索完成;步骤S34,搜索完成后,根据所述匹配结果,计算所有剖分模式的代价函数;步骤S35,根据各剖分模式的代价函数,确定所选取的剖分模式。
其中,所述匹配误差包括大尺寸剖分模式的代价函数,以及其它剖分模式的绝对差之和及对应的运动矢量,在搜索过程中,只将具有最小代价函数值的大尺寸剖分模式所对应搜索点的代价函数、或者具有最小绝对差之和的其它剖分模式所对应搜索点的绝对差之和及运动矢量保存在匹配结果中,并随着搜索过程,对所述匹配结果进行更新。
其中,参考图10,步骤S31可包括:步骤S301,计算各种剖分模式的SAD;步骤S302,计算大尺寸剖分模式的运动矢量代价函数和其它剖分模式的运动矢量;步骤S303,根据所述大尺寸剖分模式的运动矢量代价函数和SAD,计算所述大尺寸剖分模式的代价函数;步骤S304,以所述大尺寸剖分模式的代价函数、其它剖分模式的SAD以及对应的运动矢量,即5个大尺寸模式的ME_COST、其它36个SAD以及对应的运动矢量,作为匹配结果,进行保存。
具体来说,步骤S301,可包括:首先,计算并保存16个4x4子块的SAD。接着,根据4x4子块的SAD计算8x4子块和4x8子块的SAD,也就是说,对应于各种剖分模式,总共得到41个SAD。
步骤S302具体来说,根据步骤S1所获得的所述运动矢量预测值,分别计算所述大尺寸剖分模式的运动矢量代价函数;对于其它剖分模式,只计算其对应的运动矢量。
接下来,执行步骤S32,确定搜索方向,继续搜索。所述确定搜索方向可包括,基于步骤S31得到的16x16剖分模式的代价函数,对下一个搜索点进行确定。具体来说,以16x16剖分模式的代价函数最小的点,来确定下一个搜索点。具体的确定方法可以是三步法,菱形法或别的方法。搜索结束的条件与具体搜索算法有关。
确定下一个搜索点之后,执行步骤S33。其中,对于非搜索起始点,首先,计算各种剖分模式的SAD,然后,计算大尺寸剖分模式的运动矢量代价函数和其它剖分模式的运动矢量,接着,根据所述大尺寸剖分模式的运动矢量代价函数和SAD,计算所述大尺寸剖分模式的代价函数。接着对所述保存的匹配结果进行保存。具体来说可包括:对于每一个非起始点,每获得其大尺寸剖分模式的代价函数、其它剖分模式的绝对值之和以及对应的运动矢量之后,将所述大尺寸剖分模式的代价函数、其它剖分模式的绝对值之和与步骤S31中在搜索起始点所获得的所述匹配结果,根据对应的剖分模式分别进行比较。对于每个剖分模式,无论比较的是代价函数或者SAD,选取其中较小的一个进行保存,并将相应的运动矢量替换原来所保存的运动矢量后予以保存。也就是说,每次更新后所得到的所述匹配结果中,将包括各种剖分模式的最佳匹配点,对应于最好的代价函数、SAD以及对应的运动矢量。
当搜索完成之后,所述匹配结果中保存了每种剖分模式最佳点的代价函数或者SAD及对应的运动矢量,在步骤S34中,对各剖分模式的运动矢量预测值重新进行计算,并重新计算各剖分模式的代价函数以获得更准确的结果。
在重新计算各剖分模式的运动矢量预测值时,对16x16剖分、16x8剖分及8x16剖分左半部分,可采用步骤S1中所获得的结果。
对8x16剖分右半部分,参考图7,当8x16剖分为宏块E的右半部分801时,比较B4块的参考帧索引和宏块E的参考帧索引是否相同:当B4块的参考帧索引和宏块E的参考帧索引相同时,以B4块的运动矢量为该8x16剖分801的运动矢量预测值,反之,当B4块的参考帧索引和宏块E的参考帧索引不同时,则比较C4块和宏块E的参考帧索引是否相同;C4块和宏块E的参考帧索引相同时,以A4块、B4块和C4块的运动矢量中值作为该8x16剖分801的运动矢量预测值,C4块和宏块E的参考帧索引不同时,以宏块E左半部分8x16剖分的运动矢量为该8x16剖分801运动矢量预测值。其中,上述A4块以及宏块E左半部分8x16剖分的运动矢量分别为其在整数运动估计阶段所得到的,B4块和C4块的参考帧索引和运动矢量为其最终用于编码的精确值。
对于8x8、8x4、4x8和4x4剖分,分别进行下列步骤,以获得当前块的运动矢量预测值:判断右上邻块是否在图像的有效范围内:如果在,分别比较左边邻块、上边邻块、左上邻块和当前块的参考帧索引是否相同,根据相同的个数N进行判断:如果N>1,以左边邻块、上边邻块、左上邻块运动矢量的中值作为当前块的运动矢量预测值;如果N=1,以和当前块有相同参考帧索引的对应块的运动矢量作为当前块的运动矢量预测值;如果左边邻块在图像的有效范围内并且上边邻块不在图像的有效范围内,那么以左边邻块的运动矢量作为当前块的运动矢量预测值;否则也以左边邻块、上边邻块、左上邻块运动矢量的中值作为当前块的运动矢量预测值。当左上邻块不在图像的有效范围内时,以右上邻块取代左上邻块进行上述判断。其中,位于左边相邻宏块内的相邻块,采用其在整数运动估计阶段所得到的运动矢量和参考帧索引,对于上边邻块、左上邻块和右上邻块,采用其最终用于编码的参考帧索引和运动矢量的精确值。
获得各剖分模式的代价函数之后,执行步骤S35,根据各剖分模式的代价函数,确定代价函数具有最小值的为所选取的剖分模式。
经过上述步骤,通过整数像素运动估计阶段获得所选取的剖分模式。然后进行分数像素运动估计阶段。
步骤S4,根据整数运动估计阶段所获得的剖分模式所对应的运动预测参考值,插值周边的分数像素。其中,所述运动预测参考值为所获得的运动矢量对应的像素预测参考值。具体来说,可通过6阶FIR滤波器对整数像素运动预测参考值进行内插,获得1/2像素运动预测参考值,然后,通过线性内插获得1/4像素运动预测参考值。其中,两个纵向或横向的1/2像素或整数像素运动预测参考值形成1/4像素运动预测参考值,这些1/4像素运动预测参考值在相邻取样间被内插值替换,剩余的1/4像素由处于对角位置的一对1/2像素线性地内插进行替换。接着,执行步骤S5,进行分数阶段运动估计,获得所述最佳剖分模式的分数像素运动矢量。
上述步骤中分数像素运动估计阶段所进行的计算以及计算方法的具体实施方式并不对本发明的实施造成限制。
相较于现有技术,本发明上述各实施方式,在帧间模式选择中,通过以相邻块的整数像素运动估计阶段的运动矢量作为大尺寸剖分模式的运动矢量预测值,以及在计算代价函数的过程中,根据整数像素运动估计所确定的模式和运动矢量来确定8x8、8x4、4x8、4x4各剖分模式的运动矢量预测值,从而对当前宏块进行处理时,不需要利用前一宏块的编码精确结果,进而有效地减少了相邻宏块之间的依赖,使得流水线的处理速度得到提高,也进一步提高了编码效率。
此外,在本发明具体实施方式中,通过比较每个搜索点大尺寸剖分模式的代价函数和其它模式的SAD,分别对每个剖分模式较好的搜索点的信息进行保存,例如对应的代价函数和/或SAD及运动矢量,并在搜索完成后,重新计算代价函数,确定选择的模式,从而大大减少了运算量,节约了运算时间,提高了编码效率。
虽然本发明已通过较佳实施方式说明如上,但这些较佳实施方式并非用以限定本发明。本领域的技术人员,在不脱离本发明的精神和范围内,应有能力对这些较佳实施方式做出各种改正和补充,因此,本发明的保护范围以权利要求书的范围为准。
Claims (13)
1.一种帧间模式选择方法,其特征在于,包括:
根据当前宏块相邻块的运动矢量,获得大尺寸剖分模式的运动矢量预测值,其中,当前宏块上邻块的参考帧索引和运动矢量采用其最终用于编码的精确结果,当前宏块左邻块的参考帧索引和运动矢量采用其整数运动估计阶段获得的计算结果;
根据所述大尺寸剖分模式的运动矢量预测值,确定搜索起始点;
计算所有剖分模式的代价函数,确定所选取的剖分模式;
根据所获得的剖分模式,插值周边的分数像素;
进行分数阶段的运动估计,获得所述最佳剖分模式的分数像素运动矢量。
2.如权利要求1所述的帧间模式选择方法,其特征在于,包括:所述大尺寸剖分模式包括16x16剖分、16x8剖分以及8x16剖分。
3.如权利要求2所述的帧间模式选择方法,其特征在于,对于16x16剖分,所述根据相邻块信息,获得大尺寸剖分模式的运动矢量预测值包括:
通过右上邻块是否在图像的有效范围内判断所述右上邻块是否为有效块,当所述右上邻块在图像的有效范围时,比较所述有效块与左邻块、上邻块、当前剖分的参考帧索引是否相同,根据参考帧索引相同的个数,计算当前剖分的运动矢量预测值;当所述右上邻块不在图像的有效范围内时,以左上邻块取代右上邻块作为有效块,比较所述有效块与左邻块、上邻块和当前剖分的参考帧索引是否相同,根据参考帧索引相同的个数,计算当前剖分运动矢量预测值;
所述左邻块的参考帧索引为其在整数运动估计阶段的计算结果,所述上邻块和有效块的参考帧索引为其最终用于编码的精确结果。
4.如权利要求3所述的帧间模式选择方法,其特征在于,所述根据相同的个数计算当前剖分运动矢量预测值包括:
如果所述相同的个数大于1,以有效块、左邻块、上邻块运动矢量的中值作为当前宏块的运动矢量预测值;
如果所述相同的个数为1,以和当前宏块有相同参考帧索引的对应块的运动矢量作为当前宏块的运动矢量预测值;如果左邻块在图像的有效范围内并且上邻块不在图像的有效范围内,那么以左邻块的运动矢量作为当前宏块的运动矢量预测值;否则也以有效块、左邻块、上邻块运动矢量的中值作为当前宏块的运动矢量预测值;
所述左邻块的运动矢量为其在整数运动估计阶段的计算结果,所述剖分的上邻块和有效块的运动矢量为其最终用于编码的精确结果。
5.如权利要求2所述的帧间模式选择方法,其特征在于,对于宏块上半部分的16x8剖分,所述根据相邻块信息,获得大尺寸剖分模式的运动矢量预测值包括:比较所述宏块上邻块的参考帧索引和所述宏块的参考帧索引是否相同,如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引相同,以所述宏块上邻块的运动矢量为所述剖分的运动矢量预测值;如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引不同,以所述宏块的运动矢量预测值为所述剖分的运动矢量预测值;
所述左邻块的运动矢量和参考帧索引为其在整数运动估计阶段的计算结果,上邻块的参考帧索引为其最终用于编码的精确结果。
6.如权利要求2所述的帧间模式选择方法,其特征在于,对于宏块下半部分的16x8剖分,所述运动矢量预测值包括为所述宏块左邻块的整数像素运动矢量。
7.如权利要求2所述的帧间模式选择方法,其特征在于,对于宏块左半部分的8x16剖分,所述运动矢量预测值包括为所述宏块左邻块的整数像素运动矢量。
8.如权利要求2所述的帧间模式选择方法,其特征在于,对于宏块右半部分的8x16剖分,所述根据相邻块信息,获得大尺寸剖分模式的运动矢量预测值包括:比较所述宏块上邻块的参考帧索引和所述宏块的参考帧索引是否相同,如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引相同,以所述宏块上邻块的运动矢量为所述剖分的运动矢量预测值;如果所述宏块上邻块的参考帧索引和所述宏块的参考帧索引不同,以所述宏块的运动矢量预测值为所述剖分的运动矢量预测值;
所述左邻块的运动矢量和参考帧索引为其在整数运动估计阶段的计算结果,上邻块的参考帧索引为其最终用于编码的精确结果。
9.如权利要求1所述的帧间模式选择方法,其特征在于,所述根据大尺寸剖分模式的运动矢量预测值,确定起始搜索点,包括:根据16x16剖分的运动矢量预测值确定起始搜索点。
10.如权利要求4所述的帧间模式选择方法,其特征在于,所述根据16x16剖分的运动矢量预测值确定起始搜索点,包括:将距离16x16剖分运动矢量预测值最近的整数位置作为起始搜索点。
11.如权利要求1所述的帧间模式选择方法,其特征在于,所述计算所有剖分模式的代价函数,确定所选取的剖分模式,包括:
设定其它剖分模式的偏向值;
对每一种剖分模式进行运动估计,并根据所述偏向值,计算其代价函数,以所获得的代价函数中具有最小值的为所述选取的剖分模式。
12.如权利要求11所述的帧间模式选择方法,其特征在于,所述对每一种剖分模式进行运动估计包括:对于每一个搜索点,计算代价函数;确定搜索方向,获得下一个搜索点,进行代价函数的计算,直至搜索完成。
13.如权利要求1所述的帧间模式选择方法,其特征在于,所述计算所有剖分模式的代价函数,确定所选取的剖分模式,包括:
在搜索起始点,计算所有剖分模式的匹配误差,获得并保存匹配结果;
确定搜索方向,获得下一个搜索点;
在每一个非起始点的搜索点,计算所有剖分模式的匹配误差,并更新所述保存的匹配结果;
搜索完成后,根据所述匹配结果,计算所有剖分模式的代价函数;
根据各剖分模式的代价函数,确定所选取的剖分模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910118334 CN101820547A (zh) | 2009-02-27 | 2009-02-27 | 帧间模式选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910118334 CN101820547A (zh) | 2009-02-27 | 2009-02-27 | 帧间模式选择方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101820547A true CN101820547A (zh) | 2010-09-01 |
Family
ID=42655454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910118334 Pending CN101820547A (zh) | 2009-02-27 | 2009-02-27 | 帧间模式选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101820547A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075756A (zh) * | 2011-01-27 | 2011-05-25 | 北京视博云科技有限公司 | 视频多帧预测编解码方法和装置 |
CN104427345A (zh) * | 2013-09-11 | 2015-03-18 | 华为技术有限公司 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
WO2017124298A1 (zh) * | 2016-01-19 | 2017-07-27 | 北京大学深圳研究生院 | 视频编码、解码方法及其帧间预测方法、装置和系统 |
CN108174222A (zh) * | 2011-06-28 | 2018-06-15 | Lg电子株式会社 | 设置运动矢量列表的方法及使用其的装置 |
CN109587501A (zh) * | 2017-09-28 | 2019-04-05 | 腾讯科技(深圳)有限公司 | 进行运动估计的方法、装置及存储介质 |
WO2019183989A1 (zh) * | 2018-03-29 | 2019-10-03 | 华为技术有限公司 | 帧间预测的方法和装置 |
CN112312131A (zh) * | 2020-12-31 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 一种帧间预测方法、装置、设备及计算机可读存储介质 |
CN114554199A (zh) * | 2014-09-30 | 2022-05-27 | 寰发股份有限公司 | 用于视频编码的自适应运动向量分辨率的方法 |
-
2009
- 2009-02-27 CN CN 200910118334 patent/CN101820547A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075756B (zh) * | 2011-01-27 | 2012-10-24 | 北京视博云科技有限公司 | 视频多帧预测编解码方法和装置 |
CN102075756A (zh) * | 2011-01-27 | 2011-05-25 | 北京视博云科技有限公司 | 视频多帧预测编解码方法和装置 |
CN108174222B (zh) * | 2011-06-28 | 2022-04-05 | Lg电子株式会社 | 设置运动矢量列表的方法及使用其的装置 |
CN108174222A (zh) * | 2011-06-28 | 2018-06-15 | Lg电子株式会社 | 设置运动矢量列表的方法及使用其的装置 |
US11743488B2 (en) | 2011-06-28 | 2023-08-29 | Lg Electronics Inc. | Method for setting motion vector list and apparatus using same |
US11128886B2 (en) | 2011-06-28 | 2021-09-21 | Lg Electronics Inc. | Method for setting motion vector list and apparatus using same |
CN104427345A (zh) * | 2013-09-11 | 2015-03-18 | 华为技术有限公司 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
CN114554199B (zh) * | 2014-09-30 | 2023-11-10 | 寰发股份有限公司 | 用于视频编码的自适应运动向量分辨率的方法 |
CN114554199A (zh) * | 2014-09-30 | 2022-05-27 | 寰发股份有限公司 | 用于视频编码的自适应运动向量分辨率的方法 |
WO2017124298A1 (zh) * | 2016-01-19 | 2017-07-27 | 北京大学深圳研究生院 | 视频编码、解码方法及其帧间预测方法、装置和系统 |
CN109587501B (zh) * | 2017-09-28 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 进行运动估计的方法、装置及存储介质 |
CN109587501A (zh) * | 2017-09-28 | 2019-04-05 | 腾讯科技(深圳)有限公司 | 进行运动估计的方法、装置及存储介质 |
US11412210B2 (en) | 2018-03-29 | 2022-08-09 | Huawei Technologies Co., Ltd. | Inter prediction method and apparatus for video coding |
WO2019183989A1 (zh) * | 2018-03-29 | 2019-10-03 | 华为技术有限公司 | 帧间预测的方法和装置 |
CN112312131B (zh) * | 2020-12-31 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种帧间预测方法、装置、设备及计算机可读存储介质 |
CN112312131A (zh) * | 2020-12-31 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 一种帧间预测方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101820547A (zh) | 帧间模式选择方法 | |
CN103248895B (zh) | 一种用于hevc帧内编码的快速模式估计方法 | |
CN100566411C (zh) | 消除块效应的方法、介质和滤波器 | |
JP2009510845A5 (zh) | ||
CN102301716B (zh) | 解码代表画面序列的流的方法,编码画面序列的方法以及编码的数据结构 | |
CN100473168C (zh) | 视频编码的运动矢量空间预测方法 | |
CN101170688B (zh) | 一种宏块模式的快速选择方法 | |
CN102413323B (zh) | 一种基于h.264的视频压缩方法 | |
RU2573747C2 (ru) | Способ и устройство кодирования видео, способ и устройство декодирования видео и программы для них | |
CN102984521A (zh) | 基于时域相关性的高性能视频编码帧间模式判决方法 | |
CN102077598A (zh) | 用于视频编码器中的计算有效的帧内模式预测的设备和方法 | |
CN107846593B (zh) | 一种率失真优化方法及装置 | |
CN102740077A (zh) | 基于h.264/avc标准的帧内预测模式选择方法 | |
CN102077599A (zh) | 用于视频编码器中的高质量帧内模式预测的设备和方法 | |
CN102932642A (zh) | 一种帧间编码快速模式选择方法 | |
CN103384327A (zh) | 基于自适应阈值的avs快速模式选择算法 | |
TW201311010A (zh) | 影像編碼方法、裝置、影像解碼方法、裝置及其程式 | |
CN110519591A (zh) | 一种基于多用途编码中帧内编码的预测模式快速选择方法 | |
CN104333755B (zh) | HEVC中B帧的基于SKIP/Merge RD Cost的CU提前终止方法 | |
CN104702959B (zh) | 一种视频编码的帧内预测方法及系统 | |
CN101527854A (zh) | 帧间模式选择方法 | |
CN101179731A (zh) | 获得基于块的运动估计中的运动向量 | |
CN109479142A (zh) | 用于对图像信号进行编码/解码的方法和设备 | |
CN102801982B (zh) | 一种应用于视频压缩且基于块积分的快速运动估计方法 | |
CN102075751A (zh) | 一种基于宏块运动状态的h264快速模式选择方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100901 |