首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 一种HEVC中P、B帧快速运动估计方法

一种HEVC中P、B快速运动估计方法

阅读:110发布:2020-05-11

专利汇可以提供一种HEVC中P、B快速运动估计方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种HEVC中P、B 帧 快速 运动估计 方法。它具体包括如下步骤:(1)在当前CU的Merge&Skip_2Nx2N编码过程中,计算该MV的SATD值;(2)为当前CU的每个子CU建立一个已搜MV队列,用于记录下MV及对应的子CU的SATD值;(3)在当前CU的其他帧间预测单元的分 像素 搜索过程中,对每一个搜索MV,先判断该MV是否存在于当前CU和子CU的已搜MV队列中:如果存在,则利用记录下来的SATD值得到该MV的SATD值;如果不存在,则需要为该MV插值滤波生成预测图像,然后计算MV的SATD值;(4)当前CU编码结束,进行子CU的编码,其他几级子CU的编码方法与子CU的编码方法相同。本发明的有益效果是:降低运动估计的复杂度,保证压缩效率没有损失,编码时间节省10%以上,编码 质量 没有损失。,下面是一种HEVC中P、B快速运动估计方法专利的具体信息内容。

1.一种HEVC中P、B快速运动估计方法,其特征是,当前的编码单元CU采用四叉树递归划分成四个一级子编码单元CU,一级子编码单元CU同样采用四叉树递归划分成四个二级子编码单元CU,以此类推,具体包括如下步骤:
(1)在当前编码单元CU的Merge&Skip_2Nx2N编码过程中,给定候选运动矢量MV,插值滤波获取预测图像后,计算该运动矢量MV的SATD值;
(2)以此同时,为当前编码单元CU的每个一级子编码单元CU建立一个已搜运动矢量MV队列,用于记录下运动矢量MV及对应的一级子编码单元CU的SATD值;
(3)在当前编码单元CU的其他帧间预测单元的分像素搜索过程中,对每一个搜索运动矢量MV,先判断该运动矢量MV是否存在于一级子编码单元CU的已搜运动矢量MV队列中:如果存在,则利用记录下来的SATD值得到该运动矢量MV的SATD值;如果不存在,则需要为该运动矢量MV插值滤波生成预测图像,然后计算运动矢量MV的SATD值;
(4)当前编码单元CU编码结束,进行一级子编码单元CU的编码,其他几级子编码单元的编码方法与一级子编码单元CU的编码方法相同;一级子编码单元CU的编码方法如下:
(a)在一级子编码单元CU的Merge&Skip_2Nx2N编码过程中,获取候选运动矢量MV后,首先从该一级子编码单元CU的已搜运动矢量MV队列中检索候选运动矢量MV,如果存在,直接获取SATD值;如果不存在,则进行运动补偿得到预测图像,然后计算SATD值;
(b)在一级子编码单元CU的其他帧间预测单元分像素搜索过程中,运动估计方法与步骤(3)相同。
2.根据权利要求1所述的一种HEVC中P、B帧快速运动估计方法,其特征是,在步骤(1)中,所述Merge&Skip_2Nx2N选取相邻编码单元的运动矢量MV作为当前编码单元CU的候选运动矢量MV,从候选运动矢量MV中选出最优。
3.根据权利要求1或2所述的一种HEVC中P、B帧快速运动估计方法,其特征是,在步骤(1)中,计算该运动矢量MV的SATD值是通过分别计算四个一级子编码单元CU的SATD值最后求和得到的,四个一级子编码单元CU的SATD值分别为SATD_subcu0、SATD_subcu1、SATD_subcu2和SATD_subcu3,求和公式表达为SATD=SATD_subcu0+SATD_subcu1+SATD_subcu2+SATD_subcu3。
4.根据权利要求1所述的一种HEVC中P、B帧快速运动估计方法,其特征是,在步骤(3)中,如果不存在,则需要为该运动矢量MV插值滤波生成预测图像,然后计算运动矢量MV的SATD值,而该SATD值是分别计算四个一级子编码单元CU的SATD值然后求和的结果,同时运动矢量MV及对应的一级子编码单元CU的SATD值追加到一级子编码单元CU的已搜运动矢量MV队列末尾。
5.根据权利要求1所述的一种HEVC中P、B帧快速运动估计方法,其特征是,在步骤(4)的步骤(a)中,如果不存在,则进行运动补偿得到预测图像,然后计算SATD值,而该SATD值是分别计算一级子编码单元CU的四个二级子编码单元CU的SATD值求和得到,同时为一级子编码单元CU的二级子编码单元CU记录运动矢量MV和对应的SATD值追加到二级子编码单元CU的已搜运动矢量MV队列末尾。

说明书全文

一种HEVC中P、B快速运动估计方法

技术领域

[0001] 本发明涉及视频编码相关技术领域,尤其是指一种HEVC中P、B帧快速运动估计方法。

背景技术

[0002] HEVC作为目前最新一代的视频编码标准,比H264压缩效率提升了一倍。HEVC提出了编码单元(Coding Unit,CU)和预测单元(Prediction Unit,PU)的编码框架。编码单元CU可从最大的64x64到最小的8x8,而且编码单元CU可以采用四叉树递归划分成四个子编码单元CU,编码单元CU内又可以分割成不同的预测单元(PU)。HEVC的预测单元包括帧间预测单元(Merge&Skip_2Nx2N,Inter_2Nx2N,Inter_2NxN,Inter_Nx2N,Inter_2NxnU,Inter_2NxnD,Inter_nLx2N,Inter_nRx2N等)和帧内预测单(Intra_2Nx2N,Intra_NxN等)。I帧只能采用帧内预测单元,P、B帧则可以采用所有预测单元。可以看到,HEVC的编码相比H264更灵活,块的种类更多,编码器可以根据实际场景选择压缩效率最高的编码单元和预测单元,提高压缩效率。
[0003] HEVC采用率失真优化(RDO)来选择最好的编码单元和预测单元。所谓率失真优化即根据编码失真和编码比特数计算编码代价J,公式表示为J=D+lambda*R,其中D为编码失真,R为编码比特数,lambda是拉格朗日系数,与QP相关(QP指的是编码当中的量化参数)。编码代价越小,压缩率越高。HEVC的参考软件HM中编码单元的选择过程如下:先计算当前CU的编码代价J_UnSplit,然后将当前CU递归划成四个子CU,分别计算四个子CU的最小编码代价,将四个子CU的最小编码代价累加得到当前CU采用划分方式的编码代价J_Split。如果J_UnSplit小于等于J_Split,则当前CU采用非划分方式编码,反之,当前CU采用划分方式编码。在编码单元内部要进行预测单元的选择,其中帧间预测单元的选择过程如下:给定一种帧间预测单元后,首先进行运动估计(Merge&Skip_2Nx2N不需要运动估计)和运动补偿得到预测图像,然后将原始图像与预测图像的差值图像进行变化量化,反量化反变换得到重建图像,计算编码失真和编码比特数及预测单元的编码代价,最后与当前CU的其他预测单元的编码代价进行比较,选择最优的预测单元。
[0004] 视频编码中的运动估计是对当前块在参考帧中寻找最优匹配块。当前块与参考帧中的匹配块的位移称为运动矢量(Motion Vector,MV)。运动估计过程一般包括整像素搜索和分像素搜索,其中HEVC分像素搜索精度可以达到1/4像素。整像素搜索中,MV的X、Y分量都是相邻整像素点距离的倍数,通过计算预测块与当前块的SADCost判决预测效果,SADCost=SAD+mv_bits*motion_lambda(其中:SAD(Sum of Absolute Difference)是指绝对误差和,mv_bits指的是编码MV的比特数,motion_lambda是拉格朗日系数)。HM中整像素搜索方法包括全局搜索和TZ快速搜索两种方法:全局搜索对搜索范围内所有候选块进行匹配,找到最优块。这种方法搜索效果最好,计算量最大。而TZ快速搜索方法可以大大减少搜索的MV个数,节省计算量;分像素搜索又包含了半像素搜索和四分之一像素搜索,分像素搜索中MV的X、Y分量的精度为两个相邻整像素点距离的1/4,通过计算预测块与当前块的SATDCost来判决预测效果,SATDCost=SATD+mv_bits*motion_lambda(其中:SATD(Sum of Absolute Transformed Difference)是指哈达玛变换后的绝对值之和,mv_bits指的是编码MV的比特数,motion_lambda是拉格朗日系数)。需要注意的是分像素搜索中预测图像是对整像素图像采用插值滤波算法计算得到,HEVC中使用8抽头滤波器计算半像素预测图像,7抽头滤波器计算四分之一像素预测图像,由此可见插值滤波算法计算量很大。根据SATD的计算公式可以看到,大块的SATD值是由小块的SATD值累加得到的。

发明内容

[0005] 本发明是为了克服现有技术中存在上述的不足,提供了一种降低了运动估计的复杂度同时保证压缩效率没有损失的HEVC中P、B帧快速运动估计方法。
[0006] 为了实现上述目的,本发明采用以下技术方案:
[0007] 一种HEVC中P、B帧快速运动估计方法,当前的编码单元CU采用四叉树递归划分成四个一级子编码单元CU,一级子编码单元CU同样采用四叉树递归划分成四个二级子编码单元CU,以此类推,具体包括如下步骤:
[0008] (1)在当前编码单元CU的Merge&Skip_2Nx2N编码过程中,给定候选运动矢量MV,插值滤波获取预测图像后,计算该运动矢量MV的SATD值;
[0009] (2)以此同时,为当前编码单元CU的每个一级子编码单元CU建立一个已搜运动矢量MV队列,用于记录下运动矢量MV及对应的一级子编码单元CU的SATD值;
[0010] (3)在当前编码单元CU的其他帧间预测单元的分像素搜索过程中,对每一个搜索运动矢量MV,先判断该运动矢量MV是否存在于当前编码单元CU和一级子编码单元CU的已搜运动矢量MV队列中:如果存在,则利用记录下来的SATD值得到该运动矢量MV的SATD值;如果不存在,则需要为该运动矢量MV插值滤波生成预测图像,然后计算运动矢量MV的SATD值;
[0011] (4)当前编码单元CU编码结束,进行一级子编码单元CU的编码,其他几级子编码单元的编码方法与一级子编码单元CU的编码方法相同;一级子编码单元CU的编码方法如下:
[0012] (a)在一级子编码单元CU的Merge&Skip_2Nx2N编码过程中,获取候选运动矢量MV后,首先从该一级子编码单元CU的已搜运动矢量MV队列中检索候选运动矢量MV,如果存在,直接获取SATD值;如果不存在,则进行运动补偿得到预测图像,然后计算SATD值;
[0013] (b)在一级子编码单元CU的其他帧间预测单元分像素搜索过程中,运动估计方法与步骤(3)相同。
[0014] 在HEVC参考软件HM中,编码代价的计算是从大编码单元CU到小编码单元CU逐级递归,因此运动估计也是先在大编码单元CU上进行,然后在四个子编码单元CU上进行,而且HM中大编码单元CU的运动估计和子编码单元CU的运动估计过程是相互独立没有关系的。但事实上由于子编码单元CU与大编码单元CU是被包含关系,大编码单元CU的运动搜索路径可能与子编码单元CU的运动搜索路径存在部分重合,因此编码单元CU运动估计的中间计算结果有可能给子编码单元CU使用。通过实验统计发现:(1)、子编码单元CU的Merge&Skip_2Nx2N模式的候选运动矢量MV有较大概率与当前编码单元CU相同;(2)、子编码单元CU运动估计中搜到的分像素运动矢量MV有一定概率与当前编码单元CU运动估计搜索过的运动矢量MV相同;(3)、当前编码单元CU运动估计搜到的运动矢量MV有可能被包含在Merge&Skip_2Nx2N的候选运动矢量MV中。根据本方法的操作,利用大块的运动估计结果加速子块的运动估计过程,可以减少一部分分像素插值滤波计算和SATD值计算,降低了运动估计的复杂度,同时可以保证压缩效率没有损失,因此可以应用到实际的HEVC编码器的优化中。将本方法应用到HEVC的参考软件HM中,对于LowDelay和RandomAccess的配置,编码时间节省10%以上,而且编码质量没有损失。
[0015] 作为优选,在步骤(1)中,所述Merge&Skip_2Nx2N选取相邻编码单元的运动矢量MV作为当前编码单元CU的候选运动矢量MV,从候选运动矢量MV中选出最优。
[0016] 作为优选,在步骤(1)中,计算该运动矢量MV的SATD值是通过分别计算四个一级子编码单元CU的SATD值最后求和得到的,四个一级子编码单元CU的SATD值分别为SATD_subcu0、SATD_subcu1、SATD_subcu2和SATD_subcu3,求和公式表达为SATD=SATD_subcu0+SATD_subcu1+SATD_subcu2+SATD_subcu3。
[0017] 作为优选,在步骤(3)中,如果不存在,则需要为该运动矢量MV插值滤波生成预测图像,然后计算运动矢量MV的SATD值,而该SATD值是分别计算四个一级子编码单元CU的SATD值然后求和的结果,同时运动矢量MV及对应的一级子编码单元CU的SATD值追加到一级子编码单元CU的已搜运动矢量MV队列末尾。
[0018] 作为优选,在步骤(4)的步骤(a)中,如果不存在,则进行运动补偿得到预测图像,然后计算SATD值,而该SATD值是分别计算一级子编码单元CU的四个二级子编码单元CU的SATD值求和得到,同时为一级子编码单元CU的二级子编码单元CU记录运动矢量MV和对应的SATD值追加到二级子编码单元CU的已搜运动矢量MV队列末尾。
[0019] 本发明的有益效果是:利用大块的运动估计结果加速子块的运动估计过程,可以减少一部分分像素插值滤波计算和SATD值计算,降低了运动估计的复杂度,同时可以保证压缩效率没有损失,因此可以应用到实际的HEVC编码器的优化中,编码时间节省10%以上,而且编码质量没有损失。

具体实施方式

[0020] 下面结合具体实施方式对本发明做进一步的描述。
[0021] 一种HEVC中P、B帧快速运动估计方法,当前的编码单元CU采用四叉树递归划分成四个一级子编码单元CU,一级子编码单元CU同样采用四叉树递归划分成四个二级子编码单元CU,以此类推,具体包括如下步骤:
[0022] (1)在当前编码单元CU的Merge&Skip_2Nx2N编码过程中,给定候选运动矢量MV,插值滤波获取预测图像后,计算该运动矢量MV的SATD值;所述Merge&Skip_2Nx2N选取相邻编码单元的运动矢量MV作为当前编码单元CU的候选运动矢量MV,从候选运动矢量MV中选出最优;计算该运动矢量MV的SATD值是通过分别计算四个一级子编码单元CU的SATD值最后求和得到的,四个一级子编码单元CU的SATD值分别为SATD_subcu0、SATD_subcu1、SATD_subcu2和SATD_subcu3,求和公式表达为SATD=SATD_subcu0+SATD_subcu1+SATD_subcu2+SATD_subcu3;
[0023] (2)以此同时,为当前编码单元CU的每个一级子编码单元CU建立一个已搜运动矢量MV队列,用于记录下运动矢量MV及对应的一级子编码单元CU的SATD值;
[0024] (3)在当前编码单元CU的其他帧间预测单元的分像素搜索过程中,对每一个搜索运动矢量MV,先判断该运动矢量MV是否存在于当前编码单元CU和一级子编码单元CU的已搜运动矢量MV队列中:如果存在,则利用记录下来的SATD值得到该运动矢量MV的SATD值;如果不存在,则需要为该运动矢量MV插值滤波生成预测图像,然后计算运动矢量MV的SATD值,而该SATD值是分别计算四个一级子编码单元CU的SATD值然后求和的结果,同时运动矢量MV及对应的一级子编码单元CU的SATD值追加到一级子编码单元CU的已搜运动矢量MV队列末尾;
[0025] (4)当前编码单元CU编码结束,进行一级子编码单元CU的编码,其他几级子编码单元的编码方法与一级子编码单元CU的编码方法相同;一级子编码单元CU的编码方法如下:
[0026] (a)在一级子编码单元CU的Merge&Skip_2Nx2N编码过程中,获取候选运动矢量MV后,首先从该一级子编码单元CU的已搜运动矢量MV队列中检索候选运动矢量MV,如果存在,直接获取SATD值;如果不存在,则进行运动补偿得到预测图像,然后计算SATD值,而该SATD值是分别计算一级子编码单元CU的四个二级子编码单元CU的SATD值求和得到,同时为一级子编码单元CU的二级子编码单元CU记录运动矢量MV和对应的SATD值追加到二级子编码单元CU的已搜运动矢量MV队列末尾;
[0027] (b)在一级子编码单元CU的其他帧间预测单元分像素搜索过程中,运动估计方法与步骤(3)相同。
[0028] 实例:
[0029] 对64x64编码单元CU进行Merge&Skip_2Nx2N编码,为4个32x32建立已搜运动矢量MV队列,在候选运动矢量MV运动补偿得到预测图像后,计算四个32x32子块的SATD值,在32x32的已搜运动矢量MV队列中记录运动矢量MV及对应的SATD值。然后对64x64进行Inter_
2Nx2N编码,在分像素搜索计算运动矢量MV的SATDCost过程中,先从子块已搜运动矢量MV队列中查找该运动矢量MV,如果找到,则直接获取SATD值进行累加;如果没找到,则需要运动补偿,计算SATD值,而这里的SATD值也是计算四个32x32子块的SATD值然后累加,同时需要将该运动矢量MV及SATD值保存到四个32x32块的已搜运动矢量MV队列中。后续的Inter_Nx2N和Inter_2NxN的操作与Inter_2Nx2N一致。
[0030] 对32x32编码单元CU进行Merge&Skip_2Nx2N编码,从32x32编码单元CU的已搜运动矢量MV队列中查找候选运动矢量MV,如果找到,则直接得到SATD值,如果没找到,则需要为该候选运动矢量MV进行运动补偿和计算SATD值,SATD值通过计算4个16x16块的SATD值累加得到,同时运动矢量MV和SATD值要保存到16x16编码单元CU的已搜运动矢量MV队列中。然后对32x32编码单元CU进行Inter_2Nx2N编码,在分像素搜索计算运动矢量MV的SATDCost过程中,先从32x32编码单元CU的已搜运动矢量MV队列及16x16子编码单元CU的已搜运动矢量MV队列中查找运动矢量MV,如果找到,则直接获取到SATD值,计算SATDCost;如果没找到,需要为该运动矢量MV进行运动补偿,计算SATD值,SATD值通过计算4个16x16块的SATD值累加得到,同时将运动矢量MV和SATD值保存到16x16块的已搜运动矢量MV队列中。后续的Inter_Nx2N和Inter_2NxN的操作与Inter_2Nx2N一致。对8x8、16x16的编码与32x32的编码过程是一致的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈