CN103533355B - 一种hevc快速编码方法 - Google Patents

一种hevc快速编码方法 Download PDF

Info

Publication number
CN103533355B
CN103533355B CN201310470508.3A CN201310470508A CN103533355B CN 103533355 B CN103533355 B CN 103533355B CN 201310470508 A CN201310470508 A CN 201310470508A CN 103533355 B CN103533355 B CN 103533355B
Authority
CN
China
Prior art keywords
coding unit
maximum coding
current
unit
value
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
Application number
CN201310470508.3A
Other languages
English (en)
Other versions
CN103533355A (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.)
Ningbo University
Original Assignee
Ningbo University
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 Ningbo University filed Critical Ningbo University
Priority to CN201310470508.3A priority Critical patent/CN103533355B/zh
Publication of CN103533355A publication Critical patent/CN103533355A/zh
Application granted granted Critical
Publication of CN103533355B publication Critical patent/CN103533355B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种HEVC快速编码方法,其通过对预测最大编码单元进行四叉树结构类型分析,快速获取表示当前的最大编码单元的深度遍历区间的类型值,在获取该类型值的过程中由于当前的最大编码单元与相邻已编码的最大编码单元以及前向参考帧和后向参考帧中坐标位置相同的最大编码单元之间具有很大的相关性,因此利用预测最大编码单元的深度遍历区间的类型值来获取当前的最大编码单元的深度遍历区间的类型值,从而避免了当前的最大编码单元分割过程中许多不必要的深度遍历,在保证视频质量和码率不变的前提下,有效地降低了编码的计算复杂度。

Description

一种HEVC快速编码方法
技术领域
本发明涉及一种视频编解码技术,尤其是涉及一种HEVC快速编码方法。
背景技术
随着网络技术和终端处理能力的不断发展,人们对视频压缩的要求越来越高,以满足远程监控、移动流媒体、便携摄像、医学成像等新领域的应用。视频编码联合专家组(Joint Collaborative Team on Video Coding,JCT-VC)正致力于研究新一代高效视频编码标准(High Efficiency Video Coding,HEVC),其核心目标是在H.264/AVC highprofile的基础上,将压缩效率提高一倍。由于HEVC在编码结构上采用了超大尺寸四叉树结构的编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)和变换单元(TransformUnit,TU),因此显著地提高了压缩效率,但同时也带来了编码复杂度的增加。
HEVC测试模型(HEVC Test Model,HM)采用递归的方式对最大编码单元(LargestCU,LCU)进行四叉树结构划分。如图1所示,HM中一个LCU最终分割形式的确定,需要采用递归的方式对CU深度值(depth)进行0到3的全遍历,总共需要1+4+4×4+4×4×4=85次CU尺寸选择的率失真优化(Rate-distortion Optimization,RDO)计算,再加上每个CU还要进行各种PU预测和模式选择的率失真代价计算,这使得编码计算复杂度非常大。Li等人提出了一种自适应CU深度遍历(Adaptive CU Depth Range,ACUDR)方法,其主要通过空域相关性来预测当前LCU的CU深度值,而大多数的LCU还是要遍历3个CU深度值以上,因此该方法节省的时间是相当有限的。Shen等人采用时空域联合预测的方式,通过相邻LCU的CU深度值加权方式预测当前LCU的CU深度值,从而确定其相应的深度遍历区间,这种方法虽然很大程度上减少了遍历范围,但是并未考虑到视频内容及其序列的差异性,导致预测得到的深度遍历区间仍然存在相当大的改善空间。
发明内容
本发明所要解决的技术问题是提供一种在保证视频质量的前提下,能够有效地降低编码复杂度的HEVC快速编码方法。
本发明解决上述技术问题所采用的技术方案为:一种HEVC快速编码方法,其特征在于包括以下步骤:
①将高清视频中当前待处理的帧定义为当前帧;
②将当前帧中当前待编码的最大编码单元定义为当前最大编码单元;
③根据当前帧在高清视频中的位置及当前最大编码单元在当前帧中的位置,确定当前最大编码单元的所有预测最大编码单元,将由当前最大编码单元的所有预测最大编码单元构成的集合定义为当前最大编码单元的预测集合,并记为Ω,其中,Ω为空集或Ω中所包含的最大编码单元为L、LT、T、COL1和COL2中的至少一个,COL1表示当前帧的前向参考帧中与当前最大编码单元的坐标位置相同的最大编码单元,COL2表示当前帧的后向参考帧中与当前最大编码单元的坐标位置相同的最大编码单元,L表示当前最大编码单元的左边相邻最大编码单元,LT表示当前最大编码单元的左上边相邻最大编码单元,T表示当前最大编码单元的上边相邻最大编码单元;
④令DRpred表示当前最大编码单元的深度遍历区间的类型值,然后确立DRpred与当前最大编码单元的深度遍历区间的一一对应关系,其中,DRpred为整数,且0≤DRpred≤5;
⑤判断Ω是否等于全集U={COL1,COL2,L,LT,T},如果是,则执行步骤⑥,否则,直接确定DRpred的值,然后执行步骤⑦;
⑥对Ω中的每个最大编码单元进行四叉树结构类型分析,确定Ω中的每个最大编码单元的深度遍历区间的类型值,然后根据Ω中的每个最大编码单元的深度遍历区间的类型值,获取DRpred的值,再执行步骤⑦;
⑦根据DRpred的值,确定当前最大编码单元的深度遍历区间,然后根据当前最大编码单元的深度遍历区间对当前最大编码单元进行遍历编码,在遍历编码过程中,对当前最大编码单元进行编码单元早期裁剪,具体过程为:
⑦-1、将当前最大编码单元的深度遍历区间内当前待处理的编码单元定义为当前编码单元,将当前编码单元所在的层定义为当前层;
⑦-2、根据当前编码单元的深度值及当前编码单元在当前层中的位置,判定当前编码单元的下一层所有编码单元是否可以进行早期裁剪,具体过程为:
如果当前编码单元的深度值为0,则判定对当前编码单元的下一层所有编码单元不进行早期裁剪,然后执行步骤⑦-4;
如果当前编码单元的深度值为1或2,则当当前编码单元为当前层中的第1个或第2个或第3个编码单元时,判定对当前编码单元的下一层所有编码单元不进行早期裁剪,然后执行步骤⑦-4;而当当前编码单元为当前层中的第4个编码单元时,判断当前编码单元的深度值是否小于当前最大编码单元的深度遍历区间的最大值,如果是,则判定当前编码单元的下一层所有编码单元可以进行早期裁剪,然后执行步骤⑦-3,否则,不作处理,然后执行步骤⑦-5;
如果当前编码单元的深度值为3,则不作处理,然后执行步骤⑦-5;
⑦-3、比较当前编码单元的上一层编码单元的率失真代价,与当前层中的四个编码单元的率失真代价之和加上设定的判定阈值后得到的值,如果前者小于后者,则确定对当前编码单元的下一层编码单元进行早期裁剪,然后执行步骤⑦-5,如果前者大于或等于后者,则确定对当前编码单元的下一层编码单元不进行早期裁剪,然后执行步骤⑦-4;
⑦-4、判断当前编码单元的深度值是否小于当前最大编码单元的深度遍历区间的最大值,如果是,则将当前编码单元进一步分割为4个大小相同的下一层编码单元,然后将该下一层编码单元中当前待处理的编码单元作为当前编码单元,并将当前编码单元所在的层作为当前层,再返回步骤⑦-2继续执行,否则,直接执行步骤⑦-5;
⑦-5、当前编码单元编码过程结束,然后判断当前最大编码单元的深度遍历区间内的所有编码单元是否均处理完毕,如果是,则当前最大编码单元编码过程结束,然后执行步骤⑧,否则,再判断当前层中的四个编码单元是否均处理完毕,如果当前层中的四个编码单元均处理完毕,则将当前层的上一层编码单元中下一个待处理的编码单元作为当前编码单元,并将当前编码单元所在的层作为当前层,然后返回步骤⑦-2继续执行,如果当前层中的四个编码单元未处理完毕,则将当前层中下一个待处理的编码单元作为当前编码单元,然后返回步骤⑦-2继续执行;
⑧将当前帧中下一个待编码的最大编码单元作为当前最大编码单元,然后返回步骤③继续执行,直至当前帧中的所有最大编码单元均编码完毕;
⑨将高清视频中下一帧待处理的帧作为当前帧,然后返回步骤②继续执行,直至高清视频中的所有帧均处理完毕,至此完成了高清视频的快速编码。
所述的步骤③中当前最大编码单元的预测集合Ω的确定过程为:
如果当前帧为高清视频中的I帧图像组中的第1帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω为空集;当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={L,LT,T};
如果当前帧为高清视频中的非I帧图像组中的第1帧或者最后1帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω={COL1,COL2};当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={COL1,COL2,L,LT,T};
如果当前帧为高清视频中的非I帧图像组中的第2帧至第7帧中的任一帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω={COL1,COL2};当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={COL1,COL2,L,LT,T}。
所述的步骤④中DRpred与当前最大编码单元的深度遍历区间的一一对应关系为:当DRpred=0时,当前最大编码单元的深度遍历区间为[0,1];当DRpred=1时,当前最大编码单元的深度遍历区间为[0,2];当DRpred=2时,当前最大编码单元的深度遍历区间为[1,2];当DRpred=3时,当前最大编码单元的深度遍历区间为[1,3];当DRpred=4时,当前最大编码单元的深度遍历区间为[2,3];当DRpred=5时,当前最大编码单元的深度遍历区间为[0,3]。
所述的步骤⑤中直接确定的DRpred的值为5;所述的步骤⑥的具体过程为:
⑥-1、计算Ω中的每个最大编码单元在给定的基准深度值分别为0、1、2、3时的绝对深度误差和,将Ω中的第j个最大编码单元在给定的基准深度值为d时的绝对深度误差和记为 其中,1≤j≤5,depthi表示Ω中的第j个最大编码单元中的第i个尺寸大小为4×4的基本存储单元的深度值,depthi的取值范围为[0,3],d的值为0或1或2或3,符号“||”为取绝对值符号;
⑥-2、将Ω中当前待处理的第j个最大编码单元定义为当前单元;
⑥-3、按值从小到大的顺序,对当前单元在给定的基准深度值分别为0、1、2、3时的绝对深度误差和进行排序,然后选择值最小的两个绝对深度误差和作为当前单元的两个候选项,当排序后第2个和第3个绝对深度误差和的值相同时,则选择d值小的绝对深度误差和作为当前单元的其中一个候选项;
⑥-4、如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为0;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为2;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为3;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为4;其中,对应表示Ω中的第j个最大编码单元在给定的基准深度值为0、1、2、3时的绝对深度误差和;
⑥-5、令j=j+1,将Ω中下一个待处理的最大编码单元作为当前单元,然后返回步骤⑥-3继续执行,直至Ω中的五个最大编码单元均处理完毕,得到Ω中的每个最大编码单元的深度遍历区间的类型值,其中,j=j+1中的“=”为赋值符号;
⑥-6、构建一个类型值候选列表,并将该类型值候选列表初始化为[1,5,5,5,5,5,3];
⑥-7、用Ω中的五个最大编码单元的深度遍历区间的类型值替代类型值候选列表中中间的五个值,得到新的类型值候选列表,然后按值从小到大的顺序对新的类型值候选列表中的七个类型值进行排序,再取排序后的类型值候选列表中的中值作为DRpred的值。
所述的步骤⑦-3中当当前编码单元的深度值为1时,设定的判定阈值取值为65;当当前编码单元的深度值为2时,设定的判定阈值取值为8。
与现有技术相比,本发明的优点在于:通过对预测最大编码单元进行四叉树结构类型分析,快速获取表示当前的最大编码单元的深度遍历区间的类型值,在获取该类型值的过程中由于当前的最大编码单元与相邻已编码的最大编码单元以及前向参考帧和后向参考帧中坐标位置相同的最大编码单元之间具有很大的相关性,因此利用预测最大编码单元的深度遍历区间的类型值来获取当前的最大编码单元的深度遍历区间的类型值,从而避免了当前的最大编码单元分割过程中许多不必要的深度遍历,同时,在当前的最大编码单元的深度遍历区间内,对当前的最大编码单元进行编码单元早期裁剪,减少了编码单元的不必要分割过程,最终使得本发明方法在保证视频质量和码率不变的前提下,有效地降低了编码的计算复杂度。
附图说明
图1为HEVC测试模型中一个最大编码单元的分割和裁剪过程示意图;
图2为本发明方法的总体实现框图;
图3为最大编码单元的时空域相关性示意图;
图4为本发明方法中一个最大编码单元的分割和早期裁剪过程示意图;
图5为利用本发明方法相较于利用HM9.0原始编码方法对表1所列的各测试序列进行编码的时间节约百分比情况图;
图6a为利用本发明方法和HM9.0原始编码方法分别对Traffic测试序列进行编码的率失真性能曲线对比图;
图6b为利用本发明方法和HM9.0原始编码方法分别对Vidyo1测试序列进行编码的率失真性能曲线对比图;
图6c为利用本发明方法和HM9.0原始编码方法分别对Johnny测试序列进行编码的率失真性能曲线对比图;
图6d为利用本发明方法和HM9.0原始编码方法分别对Kimono1测试序列进行编码的率失真性能曲线对比图;
图7a为利用HM9.0原始编码方法在QP=32的条件下对KristenAndSara测试序列的第10帧(1280×720)进行编码后的四叉树分割结果示意图;
图7b为利用本发明方法在QP=32的条件下对KristenAndSara测试序列的第10帧(1280×720)进行编码后的四叉树分割结果示意图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种HEVC快速编码方法,其总体实现框图如图2所示,其包括以下步骤:
①将高清视频中当前待处理的帧定义为当前帧。
在高清视频中,主要包括两种图像组(GOP,Group of Pictures):I帧(Intraframe)图像组和非I帧图像组,I帧图像组仅包含1帧I帧图像,非I帧图像组均包含8帧非I帧图像,从第1帧(第1个I帧图像组)开始,每32帧出现一个I帧图像组,即两个相邻I帧图像组中间包含4个非I帧图像组。
②将当前帧中当前待编码的最大编码单元定义为当前最大编码单元。
③根据当前帧在高清视频中的位置及当前最大编码单元在当前帧中的位置,确定当前最大编码单元的所有预测最大编码单元,将由当前最大编码单元的所有预测最大编码单元构成的集合定义为当前最大编码单元的预测集合,并记为Ω,其中,Ω为空集或Ω中所包含的最大编码单元为L、LT、T、COL1和COL2中的至少一个,COL1表示当前帧的前向参考帧中与当前最大编码单元的坐标位置相同的最大编码单元,COL2表示当前帧的后向参考帧中与当前最大编码单元的坐标位置相同的最大编码单元,L表示当前最大编码单元的左边相邻最大编码单元,即L为当前帧中紧邻当前最大编码单元的左边的最大编码单元,LT表示当前最大编码单元的左上边相邻最大编码单元,即LT为当前帧中紧邻L的上边的最大编码单元,T表示当前最大编码单元的上边相邻最大编码单元,即T为当前帧中紧邻当前最大编码单元的上边的最大编码单元。图3给出了当前最大编码单元C与L、LT、T、COL1和COL2的位置关系。
在此具体实施例中,步骤③中当前最大编码单元的预测集合Ω的确定过程为:
如果当前帧为高清视频中的I帧图像组中的第1帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω为空集;当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={L,LT,T}。
如果当前帧为高清视频中的非I帧图像组中的第1帧或者最后1帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω={COL1,COL2};当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={COL1,COL2,L,LT,T}。在此,针对上述情况下的当前帧,只存在已编码的前向参考帧,不存在已编码的后向参考帧,此时COL2和COL1完全一致,因此在此仍采用COL1。
如果当前帧为高清视频中的非I帧图像组中的第2帧至第7帧中的任一帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω={COL1,COL2};当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={COL1,COL2,L,LT,T}。
④令DRpred表示当前最大编码单元的深度遍历区间的类型值,然后确立DRpred与当前最大编码单元的深度遍历区间的一一对应关系,其中,DRpred为整数,且0≤DRpred≤5。
在此具体实施例中,步骤④中DRpred与当前最大编码单元的深度遍历区间的一一对应关系为:当DRpred=0时,当前最大编码单元的深度遍历区间为[0,1];当DRpred=1时,当前最大编码单元的深度遍历区间为[0,2];当DRpred=2时,当前最大编码单元的深度遍历区间为[1,2];当DRpred=3时,当前最大编码单元的深度遍历区间为[1,3];当DRpred=4时,当前最大编码单元的深度遍历区间为[2,3];当DRpred=5时,当前最大编码单元的深度遍历区间为[0,3]。
⑤判断Ω是否等于全集U={COL1,COL2,L,LT,T},如果是,则执行步骤⑥,否则,直接确定DRpred的值,然后执行步骤⑦。
在此具体实施例中,步骤⑤中直接确定的DRpred的值为5。
⑥对Ω中的每个最大编码单元进行四叉树结构类型分析,确定Ω中的每个最大编码单元的深度遍历区间的类型值,然后根据Ω中的每个最大编码单元的深度遍历区间的类型值,获取DRpred的值,再执行步骤⑦。在此,由于视频图像在时空域上具有一定的相关性,当前最大编码单元与相邻已编码的最大编码单元以及当前帧的前向参考帧和后向参考帧中坐标位置相同的最大编码单元之间具有很大的相关性,因此利用Ω中的每个最大编码单元的深度遍历区间的类型值来获取DRpred的值。
在此具体实施例中,步骤⑥的具体过程为:
⑥-1、计算Ω中的每个最大编码单元在给定的基准深度值分别为0、1、2、3时的绝对深度误差和,将Ω中的第j个最大编码单元在给定的基准深度值为d时的绝对深度误差和记为 其中,1≤j≤5,depthi表示Ω中的第j个最大编码单元中的第i个尺寸大小为4×4的基本存储单元的深度值,depthi的取值范围为[0,3],d的值为0或1或2或3,符号“||”为取绝对值符号。
⑥-2、将Ω中当前待处理的第j个最大编码单元定义为当前单元。
⑥-3、按值从小到大的顺序,对当前单元在给定的基准深度值分别为0、1、2、3时的绝对深度误差和进行排序,然后选择值最小的两个绝对深度误差和作为当前单元的两个候选项,当排序后第2个和第3个绝对深度误差和的值相同时,则选择d值小的绝对深度误差和作为当前单元的其中一个候选项。
⑥-4、如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为0;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为2;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为3;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为4;其中,对应表示Ω中的第j个最大编码单元在给定的基准深度值为0、1、2、3时的绝对深度误差和。
⑥-5、令j=j+1,将Ω中下一个待处理的最大编码单元作为当前单元,然后返回步骤⑥-3继续执行,直至Ω中的五个最大编码单元均处理完毕,得到Ω中的每个最大编码单元的深度遍历区间的类型值,其中,j=j+1中的“=”为赋值符号。
⑥-6、构建一个类型值候选列表,并将该类型值候选列表初始化为[1,5,5,5,5,5,3]。
⑥-7、用Ω中的五个最大编码单元的深度遍历区间的类型值替代类型值候选列表中中间的五个值,得到新的类型值候选列表,然后按值从小到大的顺序对新的类型值候选列表中的七个类型值进行排序,再取排序后的类型值候选列表中的中值作为DRpred的值。
⑦根据DRpred的值,确定当前最大编码单元的深度遍历区间,然后根据当前最大编码单元的深度遍历区间对当前最大编码单元进行遍历编码,在遍历编码过程中,对当前最大编码单元进行编码单元早期裁剪(一个最大编码单元本身存在分割过程和裁剪过程,而本发明方法进行早期裁剪,可以减少编码单元的进一步分割过程,从而可以减少编码复杂度),如图4所示,具体过程为:
⑦-1、将当前最大编码单元的深度遍历区间内当前待处理的编码单元定义为当前编码单元,将当前编码单元所在的层定义为当前层。
⑦-2、对当前编码单元进行各种预测模式的预测编码,从而获得当前编码单元的率失真代价,然后根据当前编码单元的深度值及当前编码单元在当前层中的位置,判定当前编码单元的下一层所有编码单元是否可以进行早期裁剪,具体过程为:
如果当前编码单元的深度值为0,则判定对当前编码单元的下一层所有编码单元不进行早期裁剪,然后执行步骤⑦-4。
如果当前编码单元的深度值为1或2,则当当前编码单元为当前层中的第1个或第2个或第3个编码单元时,判定对当前编码单元的下一层所有编码单元不进行早期裁剪,然后执行步骤⑦-4;而当当前编码单元为当前层中的第4个编码单元时(如图4中的CU1,3和CU1,0,3),判断当前编码单元的深度值是否小于当前最大编码单元的深度遍历区间的最大值,如果是,则判定当前编码单元的下一层所有编码单元可以进行早期裁剪,然后执行步骤⑦-3,否则,不作处理,然后执行步骤⑦-5。
如果当前编码单元的深度值为3,则不作处理,然后执行步骤⑦-5。
⑦-3、比较当前编码单元的上一层编码单元的率失真代价,与当前层中的四个编码单元的率失真代价之和加上设定的判定阈值后得到的值,如果前者小于后者,则说明当前编码单元的上一层编码单元比其分割成四个下一层编码单元更优,因此当前编码单元没有必要进行进一步分割,可以提前对当前编码单元进行早期裁剪,确定对当前编码单元的下一层编码单元进行早期裁剪,然后执行步骤⑦-5,如果前者大于或等于后者,则确定对当前编码单元的下一层编码单元不进行早期裁剪,然后执行步骤⑦-4。
在此具体实施例中,步骤⑦-3中当当前编码单元的深度值为1时,设定的判定阈值取值为65;当当前编码单元的深度值为2时,设定的判定阈值取值为8。在此,设定的判定阈值是通过大量实验获得的。
⑦-4、判断当前编码单元的深度值是否小于当前最大编码单元的深度遍历区间的最大值,如果是,则将当前编码单元进一步分割为4个大小相同的下一层编码单元,然后将该下一层编码单元中当前待处理的编码单元作为当前编码单元,并将当前编码单元所在的层作为当前层,再返回步骤⑦-2继续执行,否则,直接执行步骤⑦-5。在此,当前层中的编码单元的深度值为下一层编码单元的深度值减1。
⑦-5、当前编码单元编码过程结束,然后判断当前最大编码单元的深度遍历区间内的所有编码单元是否均处理完毕,如果是,则当前最大编码单元编码过程结束,然后执行步骤⑧,否则,再判断当前层中的四个编码单元是否均处理完毕,如果当前层中的四个编码单元均处理完毕,则将当前层的上一层编码单元中下一个待处理的编码单元作为当前编码单元,并将当前编码单元所在的层作为当前层,然后返回步骤⑦-2继续执行,如果当前层中的四个编码单元未处理完毕,则将当前层中下一个待处理的编码单元作为当前编码单元,然后返回步骤⑦-2继续执行。在此,编码过程结束是指当前编码单元完成了各种预测模式的选择,同时不会再进一步分割为下一层的四个编码单元或者下一层的四个编码单元编码过程已结束,当前编码单元才真正结束编码过程。
⑧将当前帧中下一个待编码的最大编码单元作为当前最大编码单元,然后返回步骤③继续执行,直至当前帧中的所有最大编码单元均编码完毕。
⑨将高清视频中下一帧待处理的帧作为当前帧,然后返回步骤②继续执行,直至高清视频中的所有帧均处理完毕,至此完成了高清视频的快速编码。
以下为对本发明方法进行测试,以说明本发明方法的有效性和可行性。
本发明方法测试主要在HEVC测试模型HM9.0上进行。测试平台的硬件配置为:Intel(R)Core(TM)i7-2600CPU,主频3.40GHz,内存16.0GB;操作***为Windows7,64位;开发工具为Microsoft Visual Studio2008。测试模型HM9.0的主要编码参数为:高效率配置,随机访问模式,编码帧数为100帧,量化参数QP(Quantization Parameters)分别为22、27、32和37,I帧图像组GOP(Group of Pictures)的长度为1,非I帧图像组的长度为8,I帧周期长度IntraPeriod(Period of I-Frame)为32。采用BD-PSNR(delta peaksignal-to-noise rate)和BDBR(delta bit rate)表示平均峰值信噪比PSNR和码率的变化幅度,ΔT(%)用来表示编码时间变化的百分比,其中,Tpro、THM分别为HM9.0方法和本发明方法所用的编码时间。
表1给出了测试所用的测试序列,表2给出了利用本发明方法对表1所列的各测试序列进行快速编码的编码码率性能情况。与HM9.0原始编码方法相比,本发明方法在随机访问模式下编码时间减少了39.60%~47.28%,BDBR只增加了约1.88%,BD-PSNR只降低了0.05dB。总体来说,本发明方法的视频质量和HM9.0原始编码方法基本保持一致的情况下,平均可以减少43.76%的编码时间,有效地降低了编码复杂度。
图5给出了利用本发明方法相较于利用HM9.0原始编码方法对表1所列的各测试序列进行编码的时间节约百分比情况。从图5中可以看出,随着编码量化参数QP的增大,编码时间进一步减少,这主要是由于量化越粗分块越大造成的。编码时间节约百分比平均达40%以上,因此,编码复杂度降低比较明显。
图6a给出了利用本发明方法和HM9.0原始编码方法分别对Traffic测试序列进行编码的率失真性能曲线对比图,图6b给出了利用本发明方法和HM9.0原始编码方法分别对Vidyo1测试序列进行编码的率失真性能曲线对比图,图6c给出了利用本发明方法和HM9.0原始编码方法分别对Johnny测试序列进行编码的率失真性能曲线对比图,图6d给出了利用本发明方法和HM9.0原始编码方法分别对Kimono1测试序列进行编码的率失真性能曲线对比图。从图6a至图6d中可以看出,利用本发明方法对测试序列进行编码的率失真性能曲线和利用HM9.0原始编码方法对测试序列进行编码的率失真性能曲线基本上重合,因此,两种编码方法的视频质量保持不变。
图7a给出了利用HM9.0原始编码方法在QP=32的条件下对KristenAndSara测试序列的第10帧进行编码后的四叉树分割结果示意图,图7b给出了利用本发明方法在QP=32的条件下对KristenAndSara测试序列的第10帧进行编码后的四叉树分割结果示意图。图7a和图7b中白色方框代表二者的不匹配之处,从图7a和图7b中可以看出,白色方框区域在整个图像中占少数,且分割深度相近,因此,整体率失真性能保持相对稳定。
表1测试序列
序列名称 分辨率 帧数 帧率 比特深度
Traffic 2560×1600 150 30fps 8
Kimono1 1920×1080 240 24fps 8
ParkScene 1920×1080 240 24fps 8
Cactus 1920×1080 500 50fps 8
BQTerrace 1920×1080 600 60fps 8
Johnny 1280×720 600 60fps 8
KristenAndSara 1280×720 600 60fps 8
Vidyo1 1280×720 600 60fps 8
表2利用本发明方法对表1所列的各测试序列进行快速编码的编码码率性能
测试序列 BDBR/% BD-PSNR/dB ΔT/%
Traffic 2.39 -0.08 -43.99
Kimono1 0.95 -0.03 -45.50
ParkScene 2.10 -0.06 -39.60
Cactus 2.07 -0.04 -40.56
BQTerrace 0.86 -0.02 -40.92
Johnny 2.35 -0.05 -47.28
KristenAndSara 2.76 -0.10 -46.70
Vidyo1 1.55 -0.05 -45.51
平均 1.88 -0.05 -43.76

Claims (4)

1.一种HEVC快速编码方法,其特征在于包括以下步骤:
①将高清视频中当前待处理的帧定义为当前帧;
②将当前帧中当前待编码的最大编码单元定义为当前最大编码单元;
③根据当前帧在高清视频中的位置及当前最大编码单元在当前帧中的位置,确定当前最大编码单元的所有预测最大编码单元,将由当前最大编码单元的所有预测最大编码单元构成的集合定义为当前最大编码单元的预测集合,并记为Ω,其中,Ω为空集或Ω中所包含的最大编码单元为L、LT、T、COL1和COL2中的至少一个,COL1表示当前帧的前向参考帧中与当前最大编码单元的坐标位置相同的最大编码单元,COL2表示当前帧的后向参考帧中与当前最大编码单元的坐标位置相同的最大编码单元,L表示当前最大编码单元的左边相邻最大编码单元,LT表示当前最大编码单元的左上边相邻最大编码单元,T表示当前最大编码单元的上边相邻最大编码单元;
④令DRpred表示当前最大编码单元的深度遍历区间的类型值,然后确立DRpred与当前最大编码单元的深度遍历区间的一一对应关系,其中,DRpred为整数,且0≤DRpred≤5;
⑤判断Ω是否等于全集U={COL1,COL2,L,LT,T},如果是,则执行步骤⑥,否则,直接确定DRpred的值为5,然后执行步骤⑦;
⑥对Ω中的每个最大编码单元进行四叉树结构类型分析,确定Ω中的每个最大编码单元的深度遍历区间的类型值,然后根据Ω中的每个最大编码单元的深度遍历区间的类型值,获取DRpred的值,再执行步骤⑦;
所述的步骤⑥的具体过程为:
⑥-1、计算Ω中的每个最大编码单元在给定的基准深度值分别为0、1、2、3时的绝对深度误差和,将Ω中的第j个最大编码单元在给定的基准深度值为d时的绝对深度误差和记为 其中,1≤j≤5,depthi表示Ω中的第j个最大编码单元中的第i个尺寸大小为4×4的基本存储单元的深度值,depthi的取值范围为[0,3],d的值为0或1或2或3,符号“||”为取绝对值符号;
⑥-2、将Ω中当前待处理的第j个最大编码单元定义为当前单元;
⑥-3、按值从小到大的顺序,对当前单元在给定的基准深度值分别为0、1、2、3时的绝对深度误差和进行排序,然后选择值最小的两个绝对深度误差和作为当前单元的两个候选项,当排序后第2个和第3个绝对深度误差和的值相同时,则选择d值小的绝对深度误差和作为当前单元的其中一个候选项;
⑥-4、如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为0;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为2;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为3;如果当前单元的两个候选项分别为且满足则确定当前单元的深度遍历区间的类型值为4;其中,对应表示Ω中的第j个最大编码单元在给定的基准深度值为0、1、2、3时的绝对深度误差和;
⑥-5、令j=j+1,将Ω中下一个待处理的最大编码单元作为当前单元,然后返回步骤⑥-3继续执行,直至Ω中的五个最大编码单元均处理完毕,得到Ω中的每个最大编码单元的深度遍历区间的类型值,其中,j=j+1中的“=”为赋值符号;
⑥-6、构建一个类型值候选列表,并将该类型值候选列表初始化为[1,5,5,5,5,5,3];
⑥-7、用Ω中的五个最大编码单元的深度遍历区间的类型值替代类型值候选列表中中间的五个值,得到新的类型值候选列表,然后按值从小到大的顺序对新的类型值候选列表中的七个类型值进行排序,再取排序后的类型值候选列表中的中值作为DRpred的值;
⑦根据DRpred的值,确定当前最大编码单元的深度遍历区间,然后根据当前最大编码单元的深度遍历区间对当前最大编码单元进行遍历编码,在遍历编码过程中,对当前最大编码单元进行编码单元早期裁剪,具体过程为:
⑦-1、将当前最大编码单元的深度遍历区间内当前待处理的编码单元定义为当前编码单元,将当前编码单元所在的层定义为当前层;
⑦-2、根据当前编码单元的深度值及当前编码单元在当前层中的位置,判定当前编码单元的下一层所有编码单元是否可以进行早期裁剪,具体过程为:
如果当前编码单元的深度值为0,则判定对当前编码单元的下一层所有编码单元不进行早期裁剪,然后执行步骤⑦-4;
如果当前编码单元的深度值为1或2,则当当前编码单元为当前层中的第1个或第2个或第3个编码单元时,判定对当前编码单元的下一层所有编码单元不进行早期裁剪,然后执行步骤⑦-4;而当当前编码单元为当前层中的第4个编码单元时,判断当前编码单元的深度值是否小于当前最大编码单元的深度遍历区间的最大值,如果是,则判定当前编码单元的下一层所有编码单元可以进行早期裁剪,然后执行步骤⑦-3,否则,不作处理,然后执行步骤⑦-5;
如果当前编码单元的深度值为3,则不作处理,然后执行步骤⑦-5;
⑦-3、比较当前编码单元的上一层编码单元的率失真代价,与当前层中的四个编码单元的率失真代价之和加上设定的判定阈值后得到的值,如果前者小于后者,则确定对当前编码单元的下一层编码单元进行早期裁剪,然后执行步骤⑦-5,如果前者大于或等于后者,则确定对当前编码单元的下一层编码单元不进行早期裁剪,然后执行步骤⑦-4;
⑦-4、判断当前编码单元的深度值是否小于当前最大编码单元的深度遍历区间的最大值,如果是,则将当前编码单元进一步分割为4个大小相同的下一层编码单元,然后将该下一层编码单元中当前待处理的编码单元作为当前编码单元,并将当前编码单元所在的层作为当前层,再返回步骤⑦-2继续执行,否则,直接执行步骤⑦-5;
⑦-5、当前编码单元编码过程结束,然后判断当前最大编码单元的深度遍历区间内的所有编码单元是否均处理完毕,如果是,则当前最大编码单元编码过程结束,然后执行步骤⑧,否则,再判断当前层中的四个编码单元是否均处理完毕,如果当前层中的四个编码单元均处理完毕,则将当前层的上一层编码单元中下一个待处理的编码单元作为当前编码单元,并将当前编码单元所在的层作为当前层,然后返回步骤⑦-2继续执行,如果当前层中的四个编码单元未处理完毕,则将当前层中下一个待处理的编码单元作为当前编码单元,然后返回步骤⑦-2继续执行;
⑧将当前帧中下一个待编码的最大编码单元作为当前最大编码单元,然后返回步骤③继续执行,直至当前帧中的所有最大编码单元均编码完毕;
⑨将高清视频中下一帧待处理的帧作为当前帧,然后返回步骤②继续执行,直至高清视频中的所有帧均处理完毕,至此完成了高清视频的快速编码。
2.根据权利要求1所述的一种HEVC快速编码方法,其特征在于所述的步骤③中当前最大编码单元的预测集合Ω的确定过程为:
如果当前帧为高清视频中的I帧图像组中的第1帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω为空集;当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={L,LT,T};
如果当前帧为高清视频中的非I帧图像组中的第1帧或者最后1帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω={COL1,COL2};当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={COL1,COL2,L,LT,T};
如果当前帧为高清视频中的非I帧图像组中的第2帧至第7帧中的任一帧,则当当前最大编码单元为当前帧中的第1个最大编码单元时,Ω={COL1,COL2};当当前最大编码单元为当前帧的第1列中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,T};当当前最大编码单元为当前帧的第1行中除第1个最大编码单元外的其余最大编码单元时,Ω={COL1,COL2,L};当当前最大编码单元为当前帧中除第1列和第1行外的其余最大编码单元时,Ω={COL1,COL2,L,LT,T}。
3.根据权利要求1或2所述的一种HEVC快速编码方法,其特征在于所述的步骤④中DRpred与当前最大编码单元的深度遍历区间的一一对应关系为:当DRpred=0时,当前最大编码单元的深度遍历区间为[0,1];当DRpred=1时,当前最大编码单元的深度遍历区间为[0,2];当DRpred=2时,当前最大编码单元的深度遍历区间为[1,2];当DRpred=3时,当前最大编码单元的深度遍历区间为[1,3];当DRpred=4时,当前最大编码单元的深度遍历区间为[2,3];当DRpred=5时,当前最大编码单元的深度遍历区间为[0,3]。
4.根据权利要求1所述的一种HEVC快速编码方法,其特征在于所述的步骤⑦-3中当当前编码单元的深度值为1时,设定的判定阈值取值为65;当当前编码单元的深度值为2时,设定的判定阈值取值为8。
CN201310470508.3A 2013-10-10 2013-10-10 一种hevc快速编码方法 Expired - Fee Related CN103533355B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310470508.3A CN103533355B (zh) 2013-10-10 2013-10-10 一种hevc快速编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310470508.3A CN103533355B (zh) 2013-10-10 2013-10-10 一种hevc快速编码方法

Publications (2)

Publication Number Publication Date
CN103533355A CN103533355A (zh) 2014-01-22
CN103533355B true CN103533355B (zh) 2016-08-17

Family

ID=49934970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310470508.3A Expired - Fee Related CN103533355B (zh) 2013-10-10 2013-10-10 一种hevc快速编码方法

Country Status (1)

Country Link
CN (1) CN103533355B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813178B (zh) * 2014-01-28 2017-01-25 浙江大学 一种基于编码单元深度时空相关性的快速hevc编码方法
CN105530518B (zh) * 2014-09-30 2019-04-26 联想(北京)有限公司 一种视频编码、解码方法及装置
CN104506860A (zh) * 2014-12-16 2015-04-08 上海国茂数字技术有限公司 视频编码的参考图像选择方法及***
CN104602000B (zh) * 2014-12-30 2018-02-23 北京奇艺世纪科技有限公司 一种编码单元的分割方法和装置
CN104853191B (zh) * 2015-05-06 2017-09-05 宁波大学 一种hevc的快速编码方法
CN105141954B (zh) * 2015-08-19 2018-03-13 浙江工业大学 一种hevc帧间编码快速模式选择方法
CN105847798A (zh) * 2016-03-30 2016-08-10 乐视控股(北京)有限公司 一种用于视频编码的快速编码单元划分方法及装置
CN107295336B (zh) * 2017-06-21 2019-10-29 鄂尔多斯应用技术学院 基于图像相关性的自适应快速编码单元划分方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013032576A2 (en) * 2011-06-30 2013-03-07 General Instrument Corporation Quantization parameter derivation from qp predictor
CN102984521A (zh) * 2012-12-12 2013-03-20 四川大学 基于时域相关性的高性能视频编码帧间模式判决方法
CN103338371A (zh) * 2013-06-07 2013-10-02 东华理工大学 一种快速高效率视频编码帧内模式判决方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013032576A2 (en) * 2011-06-30 2013-03-07 General Instrument Corporation Quantization parameter derivation from qp predictor
CN102984521A (zh) * 2012-12-12 2013-03-20 四川大学 基于时域相关性的高性能视频编码帧间模式判决方法
CN103338371A (zh) * 2013-06-07 2013-10-02 东华理工大学 一种快速高效率视频编码帧内模式判决方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Adaptive CU Depth Range;Xiang Li,Jicheng An,et al.;《Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,Document: JCTVC-E090,5th Meeting: Geneva, CH》;20110323;1-6 *
An Effective CU Size Decision Method for HEVC Encoders;Liquan Shen,Zhi Liu,et al.;《IEEE TANSACTIONS ON MULTIMEDIA》;20130228;第15卷(第2期);1-6 *
Content Based Hierarchical Fast Coding Unit Decision AlgorithmFor HEVC;Jie Leng,Lei Sun,et al.;《2011 INTERNATIONAL CONFERENCE ON MULTIMEDIA AND SIGNAL PROCESSING》;20110515;1-4 *
Fast coding unit depth decision algorithm for interframe coding in HEVC;Yongfei Zhang,Haibo Wang,and Zhe Li;《2013 DATA COMPRESSION CONFERENCE》;20130322;1-10 *
Fast CU Splitting and Pruning for Suboptimal CU partitioning in HEVC inra coding;Seunghyun Cho and Munchurl Kim.;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》;20130225;第23卷(第9期);1-10 *

Also Published As

Publication number Publication date
CN103533355A (zh) 2014-01-22

Similar Documents

Publication Publication Date Title
CN103533355B (zh) 一种hevc快速编码方法
CN103873861B (zh) 一种用于hevc的编码模式选择方法
CN103220528B (zh) 通过使用大型变换单元编码和解码图像的方法和设备
CN104581165B (zh) 用于对视频进行解码的方法和设备
CN103339938B (zh) 执行视频译码的运动向量预测
CN102792692B (zh) 通过使用去块滤波对视频进行编码的方法和设备以及通过使用去块滤波对视频进行解码的方法和设备
CN104581181B (zh) 一种基于备选模式列表优化的帧内编码方法
CN104853191B (zh) 一种hevc的快速编码方法
CN101964906B (zh) 基于纹理特性的快速帧内预测方法和装置
CN102415097B (zh) 失真加权
US20140161193A1 (en) Video encoding method and apparatus and video decoding method and apparatus, based on hierarchical coded block pattern information
CN104243997B (zh) 一种质量可分级hevc视频编码方法
CN103067704B (zh) 一种基于编码单元层次提前跳过的视频编码方法和***
CN106686379A (zh) 对视频进行解码的方法
KR20150059141A (ko) 인트라 예측을 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
CN107277506B (zh) 基于自适应运动矢量精度的运动矢量精度选择方法及装置
CN105491385A (zh) 一种hevc帧内编码单元划分的快速决策方法
CN104811696B (zh) 一种视频数据的编码方法和装置
KR20110112178A (ko) 변환 인덱스를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법 및 그 장치
CN104639940B (zh) 一种快速hevc帧内预测模式选择方法
KR20130004548A (ko) 단일화된 참조가능성 확인 과정을 통해 인트라 예측을 수반하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR20110010324A (ko) 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
CN104883565A (zh) 一种高效视频编码的帧内预测模式决策方法及装置
CN105959699A (zh) 一种基于运动估计和时空域相关性的快速帧间预测方法
CN103596003B (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: 20160817