CN103188496B - 基于运动矢量分布预测的快速运动估计视频编码方法 - Google Patents
基于运动矢量分布预测的快速运动估计视频编码方法 Download PDFInfo
- Publication number
- CN103188496B CN103188496B CN201310098216.1A CN201310098216A CN103188496B CN 103188496 B CN103188496 B CN 103188496B CN 201310098216 A CN201310098216 A CN 201310098216A CN 103188496 B CN103188496 B CN 103188496B
- Authority
- CN
- China
- Prior art keywords
- motion vector
- search
- motion
- current macro
- prediction
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明属于视频压缩编码领域,公开了一种基于运动矢量分布预测的快速运动估计视频编码方法。该方法首先从原始视频数据中提取当前宏块的亮度信息,针对整像素运动矢量分布特征搜索设计简洁的运动估计搜索模板,合理分配搜索点数。然后对运动矢量分布进行预测,根据预测结果自适应地选择在搜索模板相应区域内小范围搜索。在运动估计搜索过程中对运动矢量是否为0进行判断,作为跳过模板搜索的判据。本发明方法与视频编码标准H.264中采用的运动估计搜索算法及其它改进算法相比较,能有效地加速运动估计搜索过程,减少运动估计耗时,严格控制了码率增加,保证了较好的重构图像质量,实现了快速运动估计编码。
Description
技术领域
本发明属于视频压缩编码领域,涉及一种基于运动矢量分布预测的视频快速运动估计编码方法。
背景技术
在2003年由国际电信联盟(ITU-T)和国际标准化组织(ISO/IEC)联合颁布提出了新一代视频编码标准H.264/AVC。H.264优异的压缩性能和视频质量使得它在现实生活中被广泛应用,包括数字电视广播、多媒体短信、网络视频流媒体传递和视频实时通信等等。相比于之前的编码标准,H.264在以下几个方面进行了改进:采用1/4像素精度运动估计;支持16×16、16×8、8×l6、8×8、8×4、4×8、4×4共7种尺寸块的预测方式;支持多帧参考;采用4×4整数变换代替8×8的DCT变换;可选2种熵编码方式:基于上下文自适应变长编码(contextAdaptiveVariableLengthCoding,简称CAVLC)和基于上下文自适应二进制算术编码(ContextAdaptiveBinaryArithmeticCoding,简称CABAC);采用率失真优化技术,编码过程中综合考虑编码性能和码率并进行权衡。虽然H.264在编码性能方面有了很大的改善,但却是以牺牲编码复杂度为代价换取的。H.264的高复杂度计算使得编码耗时长,严重影响了其实时性能,所以对于提升H.264编码速度方面的研究至关重要。
相关研究表明,H.264编码耗时大多来自于帧间预测编码,其中运动估计(MotionEstimation,简称ME)过程占了编码总时间的60%—80%,是增加运算复杂度和影响编码性能的关键部分。近年来,研究者们一直致力于对运动估计过程进行优化,在保证编码性能的同时,尽量缩短运动估计时间。
H.264中对于运动估计采用块匹配运动估计算法,其原理如图1所示。首先将视频一帧分割成若干的M×N块,假设块中所有像素都做相同的平移运动。设前一帧搜索区为(M+2Wx,N+2Wy),当前帧块与前一帧块的位移为d(i,j),在搜索区中如果能找到与当前帧块匹配的前一帧块,该d(i,j)即为所需要的运动矢量MV(Motionvector)。在块匹配方法中,通常采用绝对差值和SAD(SumofAbsoluteDifference)作为相关函数来衡量当前块与预测块之间的相关程度,SAD值越小,则表示相关性越强,二者越匹配。
在现有的块匹配运动估计算法中,搜索精度最高的是全搜索算法(FS)。由于FS算法计算复杂度过高,不利于实时应用,为此研究人员相继提出了三步法(TSS)、四步法(FSS)和六边形法(HEXBS)等新的搜索算法,但它们依旧存在搜索点数多,易陷入局部最优的不足。随着研究的深入,针对时空相关性和人眼视觉特性所提出的新算法有了很大发展,典型的有非对称十字多层六边形搜索算法(Unsymmetrical-CrossMulti-HexagonSearch,简称UMHexagonS)。相比于全搜索算法,该算法能降低90%的运动估计时间,峰值信噪比平均下降小于0.05dB,且能维持码率基本不变。
申请号为CN201010140709.3的专利公开了一种基于宏块运动矢量特征分类的快速运动估计视频编码方法,称为NUMHexagonS(New-UMHexagonS)算法,其运动估计搜索方案如图2所示。该算法针对UMHexagonS算法有了很大改进,但仍然存在未能充分利用运动矢量分布特征进行搜索策略制定、对于大型搜索模板搜索区域划分不够精细和忽略了运动矢量为0时的搜索特点等不足。
发明内容
针对现有技术中存在的上述问题,本发明提出了一种新的运动估计搜索算法,在保持低码率和高质量的前提下,通过减少运动估计过程中搜索点数达到缩短视频编码时间,提高编码效率目的。
本发明采用的技术方案为:基于运动矢量分布预测的快速运动估计视频编码方法,针对大范围搜索模板存在搜索点数浪费的缺点,对非对称十字形搜索模板和非均匀六边形网格搜索模板进行了重新设计,并在非对称十字形搜索和非均匀六边形网格搜索之前分别进行运动矢量分布预测,自适应地选择相应的搜索区域,在搜索期间判断运动矢量是否为0,加入提前终止准则,进而实现对帧间宏块的快速运动估计视频编码,其特征在于具体包括下述步骤:
步骤一,从当前视频帧中提取当前被预测宏块的亮度信息作为编码对象;
步骤二,确定双重运动估计搜索模板,进行搜索点数分配,方法如下:
(1)非对称十字形搜索模板:由4个搜索区域组成,垂直上下分别分配4个搜索点数,水平左右分别分配8个搜索点数;
(2)非均匀六边形网格搜索模板:由4层和8个方向共同构成32个搜索区域,每个区域进行非均匀点数分配,随着搜索半径的增加,搜索范围的扩大,由内至外分配搜索点数递增,在水平方向±45°区域内共有搜索点数62个,在垂直方向±45°区域内共有搜索点数22个;
步骤三,确定高准确的初始搜索点:由拉格朗日率失真优化(RDO-RateDistortionOptimization)函数作为运动估计判决依据,选择率失真意义上最佳匹配预测块和最优运动矢量,使得运动矢量和残差编码的比特分配最小。利用拉格朗日率失真准则选择最优运动矢量问题可描述为:
Jmotion(mv,ref|λmotion)=SAD[s,r(ref,mv)]+λmotion[R(mv-pred)+R(ref)]
其中,Jmotion为当前预测的运动矢量的率失真代价值s为当前宏块像素值,mv为当前运动矢量,pred为预测运动矢量,ref为参考帧,r(ref,mv)为参考宏块的像素值,R是运动矢量进行差分编码消耗的比特数,包括运动矢量与其预测值的差值编码比特数和参考帧的编码比特数;λmotion为拉格朗日乘子,SAD(SumofAbsoluteDifference)为当前块与参考块像素间的绝对误差和:
其中,B1和B2分别表示块的水平像素和垂直像素,根据不同的帧间预测模式,其取值可为16,8,4;s(x,y)为当前宏块像素值;r(x,y)为参考宏块的像素值,mx和my分别表示水平和垂直方向的位移量。
利用拉格朗日率失真准则选择最优模式的问题可表述为:
Jmode(s,c,MODE|λmode)=SSD(s,c,MODE|QP)+λmode×R(s,c,MODE|QP)(1)
其中,MODE表示当前宏块的一种帧间编码模式;Jmode(s,c,MODE|λmode)表示MODE模式下的率失真代价值s为原始的视频信号;c为采用MODE模式编码后的重构视频信号;λmode为拉格朗日乘子;R(s,c,MODE|QP)是与MODE和量化参数有关的包括宏块头信息、运动矢量和所有DCT块信息的总的二进制位数,它是通过对块进行实际的编码后获得的,所以其运算量较大;QP是编码量化步长;SSD(s,c,MODE|QP)(SumofSquareDifference)为原始信号与重构信号之间的平方差之和,即:
其中,B1和B2分别表示块的水平像素和垂直像素,其取值可为16,8,4;SY(x,y)为源宏块亮度信息的取值;CY(x,y,MODE|QP)表示重建宏块的亮度信息的取值;SU,SV和CU,CV分别表示相应的色差信息的取值。
具体包括以下步骤:
(1)采用多种预测方式进行起始点预测:
1)进行空间域的中值预测MVpred_space:利用相邻宏块间的相关性,当前预测宏块的运动矢量由已知的周围邻块的运动矢量预测得到;
2)进行多尺寸块划分的上层块预测MVpred_uplayer:利用帧间运动估计宏块划分特征,当前预测宏块运动矢量从7个模式的分级搜索顺序求出同位置、上一级和大一倍尺寸块的运动矢量;
3)进行时间域的参考帧运动矢量预测MVpred_ref:利用当前宏块在不同参考帧中的运动矢量具有相关性,当前宏块运动矢量由之前参考帧中当前块的运动矢量按一定比例预测得到。
(2)将这三种运动矢量预测模式所指向点的率失真代价值分别记为space_predmincost,uplayer_predmincost和ref_predmincost。将具有最小率失真代价值的运动矢量指向点作为起始搜索点,本步骤的最佳匹配点作为下一步要预测运动矢量的终点。
步骤四,判断运动矢量是否为0:
上一步中得到当前宏块最佳匹配点的运动矢量记为(MVx,MVy),若MVx=0且MVy=0,则视为此时运动矢量为0,跳过步骤五,直接进行步骤八。
步骤五,对当前宏块进行运动矢量方向预测:根据下一步非对称十字形搜索模板特点将当前预测宏块运动矢量分为四个方向,即水平正方向、水平负方向、垂直正方向和垂直负方向。当前预测宏块运动矢量分布方向预测步骤如下:
(1)根据当前宏块运动矢量位置计算方向参数:
当前宏块运动矢量坐标(MVx,MVy),运动矢量方向用其方向向量MV=(MVx,MVy)表示。计算的值。
(2)判断当前预测宏块运动矢量方向:
当k<1时,根据MVx状态进行判断:当MVx>0时判定当前宏块运动矢量方向为水平正方向,当MVx<0时判定当前宏块运动矢量方向为水平负方向;
当k>1或MVx=0时,根据MVy状态进行判断:当MVy>0时判定当前宏块运动矢量方向为垂直正方向,当MVy<0时判定当前宏块运动矢量方向为垂直负方向;
步骤六,进行非对称十字形搜索:垂直搜索范围是水平搜索范围的一半,相邻搜索点之间步长为两个像素。根据第五步中当前宏块运动矢量方向预测结果自适应地选择搜索方向:判定为水平正方向时,搜索初始点水平正方向上的8个搜索点;判定为水平负方向时,搜索初始点水平负方向上的8个搜索点;判定为垂直正方向时,搜索初始点垂直正方向上的4个搜索点;判定为垂直负方向时,搜索初始点垂直负方向上的4个搜索点。本步骤中确定的最佳匹配点将作为下一步要预测运动矢量的终点。
步骤七,判断当前宏块运动矢量大小:将当前预测宏块运动矢量大小分为运动矢量较大、运动矢量中等和运动矢量较小三个级别。当前预测宏块运动矢量大小的判断方法如下:
(1)根据初始搜索点的预测方式确定predmincost和RDmincost的值:
若在步骤三中采用时间预测方式,则:predmincost=ref_predmincost;
若在步骤三中采用空间预测方式,则:predmincost=space_predmincost;
若在步骤三中采用上层块预测方式,则:predmincost=uplayer_predmincost;
RDmincost为由公式(1)中计算当前预测宏块在MODE模式下的最小率失真代价值。
(2)计算预测运动矢量参数:
预测运动矢量下限阈值为:
(1+γ)predmincost
预测运动矢量上限阈值为:
(1+δ)predmincost
预测运动矢量因子为:
其中,Bsize[blocktype]表示当前预测宏块的大小,其取值可为16,8,4,
α1[blocktype]=[-0.23,-0.23,-0.23,-0.25,-0.27,-0.27,-0.28]
α2[blocktype]=[-2.39,-2.40,-2.40,-2.41,-2.45,-2.45,-2.48]
(3)判断当前预测宏块运动矢量大小:
当RDmincost≤(1+γ)predmincost,即最小率失真代价值小于预测运动矢量下限阈值时,判定当前宏块运动矢量较小,即运动程度平缓;
当(1+γ)predmincost<RDmincost<(1+δ)predmincost,即最小率失真代价值介于预测运动矢量下限阈值和运动矢量上限阈值之间时,判定当前宏块运动矢量中等,即运动程度中等;
当RDmincost≥(1+δ)predmincost,即最小率失真代价值大于预测运动矢量上限阈值时,判定当前宏块运动矢量较大,即运动程度较剧烈。
步骤八,选择性地进行5×5像素全搜索:根据步骤七中预测当前宏块运动矢量大小结果选择性地进行5×5像素全搜索。只在运动矢量较小时或运动矢量为0时才以当前预测点为中心,在其周围4×4区域内进行5×5个搜索点数的全搜索;否则不进行5×5全搜索,直接进入步骤九。
步骤九,对当前宏块再次判断运动矢量是否为0,并进行运动矢量方向预测和运动矢量大小预测:对步骤八中的最佳匹配点进行再次预测,其中判断运动矢量是否为0和运动矢量大小预测方法与上述步骤四和步骤七相同。若运动矢量为0,则跳过步骤十,直接进行步骤十一;若运动矢量不为0,则通过运动矢量方向预测和运动矢量大小预测得到当前宏块运动矢量分布预测结果。根据下一步非均匀多层六边形网格搜索模板特点将当前预测宏块运动矢量分为八个方向:
(-22.5°,22.5°],(157.5°,202.5°],(22.5°,67.5°],(-157.5°,-112.5°],
(67.5°,112.5°],(-112.5°,-67.5°],(112.5°,157.5°],(-67.5°,-22.5°];
运动矢量方向预测的方法如下:
(1)根据当前宏块运动矢量位置计算方向参数:同步骤五(1),计算得到运动矢量方向参数k的值。
(2)判断当前预测宏块运动矢量分布方向:
当k<0.25时,根据MVx取值进行判断:当MVx>0时判定当前宏块运动矢量方向为(-22.5°,22.5°],当MVx<0时判定当前宏块运动矢量方向为(157.5°,202.5°];
当k>1.5或MVx=0时,根据MVy取值进行判断:当MVy>0时判定当前宏块运动矢量方向为(67.5°,112.5°],当MVy<0时判定当前宏块运动矢量方向为(-112.5°,-67.5°];
当0.25≤k≤1.5时,根据MVx和MVy取值进行判断:当MVx>0且MVy>0时判定当前宏块运动矢量方向为(22.5°,67.5°],当MVx<0且MVy<0时判定当前宏块运动矢量方向为(-157.5°,-112.5°],当MVx<0且MVy>0时判定当前宏块运动矢量方向为(112.5°,157.5°],当MVx>0且MVy<0时判定当前宏块运动矢量方向为(-67.5°,-22.5°]。
步骤十,进行非均匀多层六边形网格搜索:根据步骤九中当前宏块运动矢量分布预测结果自适应地选择运动估计搜索区域:由运动矢量大小和运动矢量方向确定运动矢量在非均匀多层六边形网格搜索模板32个区域中的位置。所在区域内根据运动矢量分布特征分配1~6个搜索点,将搜索到的最佳匹配点作为步骤十一的初始搜索中心点。
步骤十一,拓展对称六边形搜索:先以2个像素精度为步长进行对称六边形搜索,将最佳匹配点作为起始点再以1个像素精度为步长进行菱形搜索,最终的最佳匹配点即为当前宏块整数像素运动估计搜索的最佳匹配点;
步骤十二,输出运动估计编码信息,包括运动估计时间(TotalMEtime)、码率(Bit-rate)、峰值信噪比(Y-PSNR),以评价编码算法质量。
本发明在保留原UMHexagonS算法和NUMHexagonS算法的优势基础上进行了模板重新设计、运动矢量分布预测和判断运动矢量是否为0来选择是否跳过模板搜索三种技术的结合。整个运动估计搜索主流程如图6所示,其中运动矢量方向预测子流程如图5所示。本发明的运动估计搜索算法既保证了运动搜索的准确性,又大幅度提高了运动估计编码的实时性能。
本发明的益效果:与目前H.264中采用的UMHexagonS算法相比较,本发明在保证了编码视频质量前提下,严格控制了码率增加和视频质量下降,有效地减少了运动估计搜索点数,很好的改善了运动估计耗时这一缺点。
附图说明
图1为块匹配运动估计示意图;
图2为NUMHexagonS非对称十字多层六边形搜索算法示意图;
图3为本发明的非对称十字形搜索模板;
图4为本发明的非均匀六边形网格搜索模板;
图5为本发明的运动矢量方向预测子流程图;
图6为本发明的运动估计搜索主流程图;
图7为本发明的运动估计算法与其他算法相比较的率失真曲线(HARBOUR);
图8为本发明的运动估计算法与其他算法相比较的率失真曲线(ICE)。
具体实施方式
下面结合附图和实施例对本发明做更详细的说明。
为了检验本发明提出方法的有效性,选择了不同特点的测试序列,如运动较为剧烈的视频序列ICE;运动较为平缓的视频序列HARBOUR;具有较多细节平滑运动的视频序列MOBILE。并从运动估计编码时间、压缩码率和峰值信噪比这三个性能与H.264/AVC标准的参考软件JM18.4中的UMHexagonS算法进行比较。实验条件配置如下:在4G内存,3.4GHz主频的计算机上运行;编码100帧,帧率30f/s,码流结构为IPPP,量化系数QP设为40,熵编码为CAVLC,5个参考帧。
由于本方法是针对视频序列中的亮度分量来完成的,在实际使用中先读取一段YUV格式的视频序列,提取其亮度分量信息值,编码器调用本发明设计的帧间宏块快速运动估计模块来完成具体的视频压缩编码。
本发明的方法主流程图如图6所示,在计算机中完成以下步骤:
第一步,根据编码器配置文件encoder.cfg读入YUV格式的视频序列,按照配置文件中的参数配置编码器。
第二步,从原始YUV格式的视频文件中读取出视频序列的亮度分量值,按顺序取出需要编码宏块的亮度分量值。
第三步,确定初始搜索点:对当前预测宏块做中值预测MVpred_space,上层块预测MVpred_uplayer和时间预测MVpred_ref。
中值预测MVpred_space利用了相邻宏块间的相关性,当前预测宏块的运动矢量可以由已知的周围林快的运动矢量预测得到。
上层块预测MVpred_uplayer利用了帧间运动估计宏块划分特征,当前预测宏块运动矢量从6个模式的分级搜索顺序求出同位置、上一级和大一倍尺寸块的运动矢量。
时间预测MVpred_ref利用当前宏块在不同参考帧中的运动矢量具有相关性,当前宏块运动矢量由之前参考帧中当前块的运动矢量按一定比例预测得到。
类似运动矢量MV,相应的SAD值也具有很强的相关性。将这三种运动矢量预测模式所指向点的率失真代价值分别记为space_predmincost,uplayer_predmincost和ref_predmincost,将具有最小率失真代价值的运动矢量指向点作为起始搜索点,本步骤的最佳匹配点将作为下一步要预测运动矢量的终点。
第四步,判断运动矢量是否为0:上一步中得到当前宏块最佳匹配点的运动矢量记为(MVx,MVy),若MVx=0且MVy=0,则视为此时运动矢量为0,跳过第五步,以当前最佳匹配点为起始搜索点直接进行第八步。
第五步,对当前宏块进行运动矢量方向预测:根据下一步非对称十字形搜索模板特点将当前预测宏块运动矢量分为四个方向,即水平正方向、水平负方向、垂直正方向和垂直负方向。当前宏块运动矢量坐标(MVx,MVy),计算的值。利用步骤五(2)中的准则来判断当前宏块运动矢量方向。
第六步,非对称十字形搜索:根据当前宏块运动矢量分布方向预测结果自适应的选择搜索方向:判定为水平正方向时搜索初始点水平正方向上的8个搜索点,判定为水平负方向时搜索初始点水平负方向上的8个搜索点,判定为垂直正方向时搜索初始点垂直正方向上的4个搜索点,判定为垂直正方向时搜索初始点垂直正方向上的4个搜索点。非对称十字形搜索模板如图3所示。在本实施过程中,搜索窗口大小为32×16,相邻搜索点之间步长为2个像素,即若判定在水平方向上搜索需要8个候选搜索点,在垂直方向上搜索需要4个候选搜索点。对候选搜索点分别计算其运动矢量的率失真代价值,从中选取率失真代价值最小的点作为本步骤的最佳匹配点,将作为下一步要预测运动矢量的终点。
第七步,对当前宏块进行运动矢量大小预测:将当前预测宏块运动矢量大小分为运动矢量较大、运动矢量中等和运动矢量较小三个级别。当前预测宏块运动矢量大小预测方法如下:
根据步骤七(1)确定predmincost和RDmincost的值,根据步骤七(3)判断当前预测宏块的运动矢量大小,在步骤七(2)中定义了预测运动矢量参数γ,δ,α1,α2和预测运动矢量上下限阈值。
第八步,选择性的进行5×5像素全搜索:在第七步中已经判断出当前宏块运动矢量大小后,只在当前宏块运动矢量较小时或运动矢量为0时才以当前预测点为中心,在其周围4×4区域内进行5×5个搜索点数的全搜索;当运动矢量大小为中等或较大时不进行5×5全搜索,直接进入第九步。
第九步,对当前宏块再次判断运动矢量是否为0,并进行运动矢量分布方向预测和运动矢量大小预测:对第八步中的最佳匹配点进行再次预测,其中判断运动矢量是否为0和运动矢量大小预测方法与上述第四步和第七步相同。若预测结果运动矢量为0,则跳过第十步,直接进行第十一步。若运动矢量不为0,则通过运动矢量方向预测和运动矢量大小预测得到当前宏块运动矢量分布预测结果。本步骤中运动矢量分布方向预测方法如下:
根据步骤五(1)计算得到运动矢量方向参数k的值。根据步骤九(2)进行当前宏块运动矢量分布方向判断。
第十步,非均匀多层六边形网格搜索:根据步骤九中当前宏块运动矢量分布预测结果自适应地选择运动估计搜索区域:由运动矢量大小和运动矢量方向确定运动矢量在非均匀多层六边形网格搜索模板32个区域中的位置。非均匀多层六边形网格搜索模板如图4所示,搜索区域内根据运动矢量分布特征分配了1~6个搜索点。将本步骤中搜索到的最佳匹配点作为步骤11的初始搜索中心点。
第十一步,拓展对称六边形搜索:先以2个像素精度为步长进行对称六边形搜索,将最佳匹配点作为起始点再以1个像素精度为步长进行菱形搜索,最终的最佳匹配点即为当前宏块整数像素运动估计搜索的最佳匹配点。
第十二步,结束运动估计搜索,保存输出运动估计编码信息,包括运动估计时间、码率、峰值信噪比,以评价编码算法质量。
实验结果如表1所示。从表1可以看出,本发明的方法与H.264/AVC标准的参考软件JM18.4中的UMHexagonS算法相比较,峰值信噪比略有降低,平均降低0.05%,视频质量在人类视觉范围内略有下降;严格控制码率,平均增加0.35%,保持了原标准算法高压缩比的优势;有效地缩短了运动估计编码时间,平均节省21.71%的运动估计编码时间。图7和图8分别表示代表运动平缓的视频序列(HARBOUR)和代表运动剧烈的视频序列(ICE)在不同量化步长(QP)情况下,本发明运动估计算法与UMHexagonS算法率失真曲线比较结果。通过表1和图7、8表明本发明很好地改善了运动估计编码实时性能,且保持了H.264低码率高视频质量的优势。本发明算法优化效果明显而且稳定,有效降低了运动估计算法体系结构的复杂性。
表1本发明运动估计算法与JM18.4中UMHexagonS算法运动估计编码性能比较
Claims (5)
1.一种基于运动矢量分布预测的视频快速运动估计编码方法,其特征在于该方法根据当前宏块运动矢量分布预测自适应地选择模板搜索区域,在大范围模板搜索之前对运动矢量是否为0进行预测,加入提前终止准则,进而实现对帧间宏块的快速运动估计视频编码,具体包括以下步骤:
步骤一,从当前视频帧中提取当前被预测宏块的亮度信息作为编码对象;
步骤二,确定双重运动估计搜索模板,进行搜索点数分配;
步骤三,确定高准确的初始搜索点:
由拉格朗日率失真优化(RDO-RateDistortionOptimization)函数作为运动估计判决依据,选择率失真意义上最佳匹配预测块和最优运动矢量,使得运动矢量和残差编码的比特分配最小;利用拉格朗日率失真准则选择最优运动矢量问题可描述为:
Jmotion(mv,ref|λmotion)=SAD[s,r(ref,mv)]+λmotion[R(mv-pred)+R(ref)]
其中,Jmotion为当前预测的运动矢量的率失真代价值s为当前宏块像素值,mv为当前运动矢量,pred为预测运动矢量,ref为参考帧,r(ref,mv)为参考宏块的像素值,R是运动矢量进行差分编码消耗的比特数,包括运动矢量与其预测值的差值编码比特数和参考帧的编码比特数;λmotion为拉格朗日乘子,SAD(SumofAbsoluteDifference)为当前块与参考块像素间的绝对误差和:
其中,B1和B2分别表示块的水平像素和垂直像素,根据不同的帧间预测模式,其取值可为16,8,4;s(x,y)为当前宏块像素值;r(x,y)为参考宏块的像素值,mx和my分别表示水平和垂直方向的位移量;
利用拉格朗日率失真准则选择最优模式的问题可表述为:
Jmode(s,c,MODE|λmode)=SSD(s,c,MODE|QP)+λmode×R(s,c,MODE|QP)(1)
其中,MODE表示当前宏块的一种帧间编码模式,Jmode(s,c,MODE|λmode)表示MODE模式下的率失真代价值s为原始的视频信号,c为采用MODE模式编码后的重构视频信号,λmode为拉格朗日乘子,R(s,c,MODE|QP)是与MODE和量化参数有关的包括宏块头信息、运动矢量和所有DCT块信息的总的二进制位数,QP是编码量化步长,SSD(s,c,MODE|QP)(SumofSquareDifference)为原始信号与重构信号之间的平方差之和,即:
其中,B1和B2分别表示块的水平像素和垂直像素,其取值可为16,8,4;SY(x,y)为源宏块亮度信息的取值,CY(x,y,MODE|QP)表示重建宏块的亮度信息的取值,SU,SV和CU,CV分别表示相应的色差信息的取值;
具体包括以下步骤:
(1)采用多种预测方式进行起始点预测:
1)进行空间域的中值预测MVpred_space:利用相邻宏块间的相关性,当前预测宏块的运动矢量由已知的周围邻块的运动矢量预测得到;
2)进行多尺寸块划分的上层块预测MVpred_uplayer:利用帧间运动估计宏块划分特征,当前预测宏块运动矢量从7个模式的分级搜索顺序求出同位置、上一级和大一倍尺寸块的运动矢量;
3)进行时间域的参考帧运动矢量预测MVpred_ref:利用当前宏块在不同参考帧中的运动矢量具有相关性,当前宏块运动矢量由之前参考帧中当前块的运动矢量按一定比例预测得到;
(2)将上述三种运动矢量预测模式所指向点的率失真代价值分别记为space_predmincost,uplayer_predmincost和ref_predmincost,将具有最小率失真代价值的运动矢量指向点作为起始搜索点,本步骤的最佳匹配点作为下一步要预测运动矢量的终点;
步骤四,判断运动矢量是否为0:
上一步中得到当前宏块最佳匹配点的运动矢量记为(MVx,MVy),若MVx=0且MVy=0,则视为此时运动矢量为0,跳过步骤五,直接进行步骤八;
步骤五,预测当前宏块进行运动矢量方向:根据下一步非对称十字形搜索模板特点将当前预测宏块运动矢量分为四个方向,即水平正方向、水平负方向、垂直正方向和垂直负方向;
步骤六,进行非对称十字形搜索:垂直搜索范围是水平搜索范围的一半,相邻搜索点之间步长为两个像素;根据第五步中当前宏块运动矢量方向预测结果自适应地选择搜索方向:判定为水平正方向时,搜索初始点水平正方向上的8个搜索点;判定为水平负方向时,搜索初始点水平负方向上的8个搜索点;判定为垂直正方向时,搜索初始点垂直正方向上的4个搜索点;判定为垂直负方向时,搜索初始点垂直负方向上的4个搜索点;本步骤中确定的最佳匹配点将作为下一步要预测运动矢量的终点;
步骤七,将当前预测宏块运动矢量大小分为运动矢量较大、运动矢量中等和运动矢量较小三个级别,判断当前宏块运动矢量大小;
步骤八,选择性地进行5×5像素全搜索:根据步骤七中预测当前宏块运动矢量大小结果选择性地进行5×5像素全搜索;只在运动矢量较小时或运动矢量为0时才以当前预测点为中心,在其周围4×4区域内进行5×5个搜索点数的全搜索;否则不进行5×5全搜索,直接进入步骤九;
步骤九,对当前宏块再次判断运动矢量是否为0,并进行运动矢量方向预测和运动矢量大小预测:对步骤八中的最佳匹配点进行再次预测,其中判断运动矢量是否为0和运动矢量大小预测方法与上述步骤四和步骤七相同;若运动矢量为0,则跳过步骤十,直接进行步骤十一;若运动矢量不为0,则通过运动矢量方向预测和运动矢量大小预测得到当前宏块运动矢量分布预测结果;根据下一步非均匀多层六边形网格搜索模板特点将当前预测宏块运动矢量分为八个方向:
(-22.5°,22.5°],(157.5°,202.5°],(22.5°,67.5°],(-157.5°,-112.5°],
(67.5°,112.5°],(-112.5°,-67.5°],(112.5°,157.5°],(-67.5°,-22.5°];
步骤十,进行非均匀多层六边形网格搜索:根据步骤九中当前宏块运动矢量分布预测结果自适应地选择运动估计搜索区域:由运动矢量大小和运动矢量方向确定运动矢量在非均匀多层六边形网格搜索模板32个区域中的位置;所在区域内根据运动矢量分布特征分配1~6个搜索点,将搜索到的最佳匹配点作为步骤十一的初始搜索中心点;
步骤十一,拓展对称六边形搜索:先以2个像素精度为步长进行对称六边形搜索,将最佳匹配点作为起始点再以1个像素精度为步长进行菱形搜索,最终的最佳匹配点即为当前宏块整数像素运动估计搜索的最佳匹配点;
步骤十二,输出运动估计编码信息,包括运动估计时间(TotalMEtime)、码率(Bit-rate)、峰值信噪比(Y-PSNR),以评价编码算法质量。
2.根据权利要求1所述的基于运动矢量分布预测的视频快速运动估计编码方法,其特征在于,步骤二确定运动估计模板分配搜索点数的方法如下:
(1)非对称十字形搜索模板:由4个搜索区域组成,垂直上下分别分配4个搜索点数,水平左右分别分配8个搜索点数;
(2)非均匀六边形网格搜索模板:由4层和8个方向共同构成32个搜索区域,每个区域进行非均匀点数分配,随着搜索半径的增加,搜索范围的扩大,由内至外分配搜索点数递增,在水平方向±45°区域内共有搜索点数62个,在垂直方向±45°区域内共有搜索点数22个。
3.根据权利要求1所述的基于运动矢量分布预测的视频快速运动估计编码方法,其特征在于,步骤五预测当前宏块进行运动矢量方向的方法包括以下步骤:
(1)根据当前宏块运动矢量位置计算方向参数:
当前宏块运动矢量坐标(MVx,MVy),运动矢量方向用其方向向量MV=(MVx,MVy)表示,计算的值;
(2)判断当前预测宏块运动矢量方向:
当k<1时,根据MVx状态进行判断:当MVx>0时判定当前宏块运动矢量方向为水平正方向,当MVx<0时判定当前宏块运动矢量方向为水平负方向;
当k>1或MVx=0时,根据MVy状态进行判断:当MVy>0时判定当前宏块运动矢量方向为垂直正方向,当MVy<0时判定当前宏块运动矢量方向为垂直负方向。
4.根据权利要求1所述的基于运动矢量分布预测的视频快速运动估计编码方法,其特征在于,步骤七判断当前宏块运动矢量大小的方法如下:
(1)根据初始搜索点的预测方式确定predmincost和RDmincost的值:
若在步骤三中采用时间预测方式,则:predmincost=ref_predmincost;
若在步骤三中采用空间预测方式,则:predmincost=space_predmincost;
若在步骤三中采用上层块预测方式,则:predmincost=uplayer_predmincost;
RDmincost为由公式(1)中计算当前预测宏块在MODE模式下的最小率失真代价值;
(2)计算预测运动矢量参数:
预测运动矢量下限阈值为:
(1+γ)predmincost
预测运动矢量上限阈值为:
(1+δ)predmincost
预测运动矢量因子为:
其中,Bsize[blocktype]表示当前预测宏块的大小,其取值可为16,8,4,
α1[blocktype]=[-0.23,-0.23,-0.23,-0.25,-0.27,-0.27,-0.28]
α2[blocktype]=[-2.39,-2.40,-2.40,-2.41,-2.45,-2.45,-2.48]
(3)判断当前预测宏块运动矢量大小:
当RDmincost≤(1+γ)predmincost,即最小率失真代价值小于预测运动矢量下限阈值时,判定当前宏块运动矢量较小,即运动程度平缓;
当(1+γ)predmincost<RDmincost<(1+δ)predmincost,即最小率失真代价值介于预测运动矢量下限阈值和运动矢量上限阈值之间时,判定当前宏块运动矢量中等,即运动程度中等;
当RDmincost≥(1+δ)predmincost,即最小率失真代价值大于预测运动矢量上限阈值时,判定当前宏块运动矢量较大,即运动程度较剧烈。
5.根据权利要求1所述的基于运动矢量分布预测的视频快速运动估计编码方法,其特征在于,步骤九预测运动矢量方向的方法如下:
(1)根据当前宏块运动矢量位置计算方向参数:预测当前宏块进行运动矢量方向,首先根据当前宏块运动矢量位置计算方向参数,计算得到运动矢量方向参数k的值;
(2)判断当前预测宏块运动矢量分布方向:
当k<0.25时,根据MVx取值进行判断:当MVx>0时,判定当前宏块运动矢量方向为(-22.5°,22.5°];当MVx<0时,判定当前宏块运动矢量方向为(157.5°,202.5°];
当k>1.5或MVx=0时,根据MVy取值进行判断:当MVy>0时,判定当前宏块运动矢量方向为(67.5°,112.5°];当MVy<0时,判定当前宏块运动矢量方向为(-112.5°,-67.5°];
当0.25≤k≤1.5时,根据MVx和MVy取值进行判断:当MVx>0且MVy>0时,判定当前宏块运动矢量方向为(22.5°,67.5°];当MVx<0且MVy<0时,判定当前宏块运动矢量方向为(-157.5°,-112.5°];当MVx<0且MVy>0时判定当前宏块运动矢量方向为(112.5°,157.5°];当MVx>0且MVy<0时,判定当前宏块运动矢量方向为(-67.5°,-22.5°]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310098216.1A CN103188496B (zh) | 2013-03-26 | 2013-03-26 | 基于运动矢量分布预测的快速运动估计视频编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310098216.1A CN103188496B (zh) | 2013-03-26 | 2013-03-26 | 基于运动矢量分布预测的快速运动估计视频编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103188496A CN103188496A (zh) | 2013-07-03 |
CN103188496B true CN103188496B (zh) | 2016-03-09 |
Family
ID=48679426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310098216.1A Expired - Fee Related CN103188496B (zh) | 2013-03-26 | 2013-03-26 | 基于运动矢量分布预测的快速运动估计视频编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103188496B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3189660B1 (en) * | 2014-09-30 | 2023-07-12 | HFI Innovation Inc. | Method of adaptive motion vector resolution for video coding |
CN104301724B (zh) | 2014-10-17 | 2017-12-01 | 华为技术有限公司 | 视频处理方法、编码设备和解码设备 |
US20170272775A1 (en) * | 2015-11-19 | 2017-09-21 | Hua Zhong University Of Science Technology | Optimization of interframe prediction algorithms based on heterogeneous computing |
CN105959699B (zh) * | 2016-05-06 | 2019-02-26 | 西安电子科技大学 | 一种基于运动估计和时空域相关性的快速帧间预测方法 |
CN106878727A (zh) * | 2016-12-31 | 2017-06-20 | 深圳市共进电子股份有限公司 | 视频数据处理方法及装置 |
CN107483936B (zh) * | 2017-08-01 | 2019-09-06 | 清华大学深圳研究生院 | 一种基于宏像素的光场视频帧间预测方法 |
CN109951707B (zh) * | 2017-12-21 | 2021-04-02 | 北京金山云网络技术有限公司 | 一种目标运动矢量选择方法、装置、电子设备及介质 |
CN115250350B (zh) * | 2018-09-03 | 2024-04-09 | 华为技术有限公司 | 运动矢量的获取方法、装置、计算机设备及存储介质 |
CN109618153A (zh) * | 2019-01-17 | 2019-04-12 | 杨郭英 | 视频编码数据处理机构 |
CN110740322A (zh) * | 2019-10-23 | 2020-01-31 | 李思恒 | 视频编码方法及装置、存储介质、视频编码设备 |
CN113115038B (zh) * | 2021-04-16 | 2022-03-29 | 维沃移动通信有限公司 | 运动估计方法、装置、电子设备及可读存储介质 |
CN113965753B (zh) * | 2021-12-20 | 2022-05-17 | 康达洲际医疗器械有限公司 | 一种基于码率控制的帧间图像运动估计方法与*** |
CN117412065B (zh) * | 2023-12-15 | 2024-03-08 | 福州时芯科技有限公司 | 螺旋搜索算法的一种优化方案 |
CN117640939A (zh) * | 2024-01-25 | 2024-03-01 | 宁波康达凯能医疗科技有限公司 | 一种用于帧间图像的运动估计搜索方式判别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1871115A1 (en) * | 2006-06-21 | 2007-12-26 | Samsung Electronics Co., Ltd. | Motion estimation method and apparatus for fast motion estimation |
CN101621694A (zh) * | 2009-07-29 | 2010-01-06 | 深圳市九洲电器有限公司 | 一种运动估计方法、***及显示终端 |
CN101815218A (zh) * | 2010-04-02 | 2010-08-25 | 北京工业大学 | 基于宏块特征的快速运动估计视频编码方法 |
CN102186070A (zh) * | 2011-04-20 | 2011-09-14 | 北京工业大学 | 分层结构预判的快速视频编码方法 |
-
2013
- 2013-03-26 CN CN201310098216.1A patent/CN103188496B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1871115A1 (en) * | 2006-06-21 | 2007-12-26 | Samsung Electronics Co., Ltd. | Motion estimation method and apparatus for fast motion estimation |
CN101621694A (zh) * | 2009-07-29 | 2010-01-06 | 深圳市九洲电器有限公司 | 一种运动估计方法、***及显示终端 |
CN101815218A (zh) * | 2010-04-02 | 2010-08-25 | 北京工业大学 | 基于宏块特征的快速运动估计视频编码方法 |
CN102186070A (zh) * | 2011-04-20 | 2011-09-14 | 北京工业大学 | 分层结构预判的快速视频编码方法 |
Non-Patent Citations (4)
Title |
---|
A Self-Adaptive And Fast Motion Estimation Search Method For H.264/Avc;Pengyu Liu 等;《Intelligent Information Hiding and Multimedia Signal Processing (IIH-MSP)》;20101017;第651-654页 * |
An Effective Motion Estimation Scheme for H.264/AVC;Pengyu Liu 等;《IIH-MSP "08 Proceedings of the 2008 International Conference on Intelligent Information Hiding and Multimedia Signal Processing》;20080815;第797-801页 * |
基于UMHexagenS快速运动估计算法优化;卢政 等;《电视技术》;20110402;第35卷(第7期);第139-146页 * |
基于UMHexagonS的快速运动估计编码算法研究;刘鹏宇 等;《电路与***学报》;20121031;第17卷(第5期);第29-31页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103188496A (zh) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103188496B (zh) | 基于运动矢量分布预测的快速运动估计视频编码方法 | |
CN103561263B (zh) | 基于运动矢量约束和加权运动矢量的运动补偿预测方法 | |
CN101815218B (zh) | 基于宏块特征的快速运动估计视频编码方法 | |
CN102484719B (zh) | 对视频编码的方法和设备及对视频解码的方法和设备 | |
CN102763411B (zh) | 对视频编码的方法和设备以及对视频解码的方法和设备 | |
CN102984521B (zh) | 基于时域相关性的高性能视频编码帧间模式判决方法 | |
CN102648631B (zh) | 用于编码/解码高分辨率图像的方法和设备 | |
TWI468019B (zh) | 解碼影像的方法 | |
CN103634606B (zh) | 视频编码方法和装置 | |
CN102740077B (zh) | 基于h.264/avc标准的帧内预测模式选择方法 | |
CN105959699B (zh) | 一种基于运动估计和时空域相关性的快速帧间预测方法 | |
CN101640802A (zh) | 基于宏块特征和统计特性的视频帧间压缩编码方法 | |
CN102238391A (zh) | 一种预测编码方法、装置 | |
CN102647598B (zh) | 基于极大极小mv差值的h.264帧间模式优化方法 | |
CN101022555B (zh) | 帧间预测编码的模式快速选择方法 | |
CN101888546B (zh) | 一种运动估计的方法及装置 | |
CN103238334A (zh) | 图像帧内预测方法和设备 | |
CN101014129B (zh) | 一种视频数据压缩方法 | |
CN102186081B (zh) | 一种基于梯度向量的h.264帧内模式选择方法 | |
CN103248895A (zh) | 一种用于hevc帧内编码的快速模式估计方法 | |
CN110365975A (zh) | 一种avs2视频编解码标准优化方案 | |
CN105187826A (zh) | 针对高效率视频编码标准的快速帧内模式判决方法 | |
CN104702959B (zh) | 一种视频编码的帧内预测方法及*** | |
CN102196272A (zh) | 一种p帧编码方法及装置 | |
CN101883275B (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 | ||
C53 | Correction of patent of invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Liu Pengyu Inventor after: Gao Yuan Inventor after: Jia Kebin Inventor before: Gao Yuan Inventor before: Liu Pengyu Inventor before: Jia Kebin |
|
COR | Change of bibliographic data |
Free format text: CORRECT: INVENTOR; FROM: GAO YUAN LIU PENGYU JIA KEBIN TO: LIU PENGYU GAO YUAN JIA KEBIN |
|
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: 20160309 |
|
CF01 | Termination of patent right due to non-payment of annual fee |