Coding Tree Depth Estimation for Complexity Reduction of HEVC
《HEVC标准介绍、HEVC帧间预测论文笔记》系列博客,目录见:http://www.cnblogs.com/DwyaneTalk/p/5711333.html
2013 Data Compress Conference
 
核心思想:
        在P1.8论文(将frame分为Fu和Fc,对于Fc帧中CTU的最大深度进行限定,最大深度的值根据Fu帧对应位置的CTU的深度得到)的基础上继续优化,采用改进的策略(根据码率、目标计算复杂度和预测计算复杂度)更新Nc的值,采用更复杂有效的策略(时域+空域选择CTU深度)确定Fc帧中CTU的最大深度。
        本论文改进的目的是:在P1.8中,由于仅仅通过时域信息限制Fc帧中CTU的深度来控制计算复杂度,这就导致当目标计算复杂度较小时(如60%),编码的率失真性能不是很好,所以通过新的策略放宽Fc帧中CTU最大深度的限制,通过降低Nc的最大值限制(最大为FR/2,使得更早按照max_depth_allowed-1进行CTU编码)。
思路分析:参见P1.8。
算法介绍:
        总体思想:如下图(和P1.8类似)
                与P1.8的不同之处在于,该算法中在视频序列的开始部分,会有连续M帧全部是Fu帧,M的值最小为5。而且,在视频序列中,如果出现预测计算复杂度小于目标计算复杂度,就会编码5个连续的Fu帧,然后重新估计目标复杂度和预测复杂度。
        具体步骤:

        变量含义:
                Fu:unconstrained frame,无限制帧,按照标准流程编码;Fc:constrained frame,限制帧,最大的CTU深度有限制,是编码的加速帧。
                EMC:估计最大编码计算复杂度,相当于不进行任何加速、限制情况下的编码复杂度;
                ETC:目标编码计算复杂度,可以根据用户定义、设备CPU资源、电池电量等进行判定,相当于论文中的60%、80%;
                PC:预测当前编码进行下,所有帧都编码完成时,所需要的编码复杂度;
                MTDM^k和MTDM^k-1:分别记录当前帧中已编码CTU和前一帧中所有CTU的实际编码深度;
                CMTDM:记录了根据时域运动补偿,得到的当前帧在前一帧中运动补偿CTU的实际编码深度;
                max_depth_allowed:实际一个CTU的最大编码深度。
                Nc和frame rate如P1.8。
        左边展示了算法的整体流程,右边展示了算法编码一帧的流程。整体流程包括:
                S1、连续编码5帧Fu帧;
                S2、计算EMC、ETC和PC的值;
                S3、如果PC<ETC,跳到S1,否则继续;
                S4、调整Nc的值,编码一个Fu帧;
                S5、连续编码Nc个Fc帧,每编码一帧后,更新DMTCM矩阵;
                S6、从新计算PC,并返回到S3。
        编码一帧流程,包括编码一帧内的每个CTU,对于编码一个CTU(i,j位置处),流程包括:
                S1、如果是Fu帧:按照标准流程编码;否则:max_depth_allowed=max{MTDM^k(i-1,j),MTDM^k(i,j-1),MTDM^k(i-1,j-1),MTDM^k-1(i,j),CMTDM^k(i,j)}//分别为当前CTU当前帧左、上、左上CTU的实际深度,前一帧对应位置CTU实际深度和运动补偿估计得到的深度;
                S2、根据max_depth_allowed编码一个CTU,并将实际编码深度存储到MTDM(i,j)中;
                S3、所有CTU编码完成后,更新MTDM^k和MTDM^k-1。
        相关变量计算:
                

如上公式:计算EMC和MTC时,CFi是连续5帧Fu帧中第i帧的计算复杂度,N是视频序列中的帧数,CT是目标计算复杂度的比例。

                如上公式:计算估计计算复杂度时,根据刚刚编码的Nc帧FC帧和一帧Fu帧,按照线性关系估计所有帧编码完成需要的计算复杂度,其中NE是当前已编码完成的帧,CFi是所有已编码的帧中第i帧的计算复杂度。

如上公式:更新Nc值时,通过差值调整的策略,alpha是beta的函数,二者关系有上面梯度折线确定,beta = (ETC-PC)/ETC。

                如上,展示了CMTDM的预测过程,假设图像CTU区域块运动恒定,编码k-1帧Fk-1时,CTU^k-1(o,p)的最大PU(也就是CTU)划分对应的运动矢量为MV^k-1(o,p),对应参考块为参考帧Fr中的CTU^r(o+m,p+n),所以:MV^k-1(o,p)=(m,n)。
                在假设CTU运动恒定条件下,可以判断CTU^k-1(o,p)在Fk-2中的对应块为CTU^r(o+m1,p+n1),其中(m1,n1)=(m,n)/r,同样可以判断CTU^k-1(o,p)在Fk中的对应块为CTU^r(o-m1,p-n1)。假设(o-m1,p-n1)=(i,j),那么记录CMTDM^k(i,j)为CTU^k-1(o,p)的实际编码深度。
实验展示:
        实验条件:HM8.2,Low Delay, VTune Amplifier XE2011 software profiler进行计算复杂度检测,6个不同实验序列,60%~100%共5个目标复杂度。
        

上图展示了,算法在控制目标计算复杂度的性能。如图展示,可以看出对于6个序列,目标计算复杂度(虚线)和实际运行的计算复杂度(6条实线)差距不大。

        上表展示的是算法在保证控制实际运行计算复杂度的前提下,编码的码率和PSNR性能。

【HEVC帧间预测论文】P1.9 Coding Tree Depth Estimation for Complexity Reduction of HEVC的更多相关文章

  1. 【HEVC帧间预测论文】P1.7 Content Based Hierarchical Fast Coding Unit Decision Algorithm

    Content Based Hierarchical Fast Coding Unit Decision Algorithm For HEVC <HEVC标准介绍.HEVC帧间预测论文笔记> ...

  2. 【HEVC帧间预测论文】P1.5 Fast Coding Unit Size Selection for HEVC based on Bayesian Decision Rule

    Fast Coding Unit Size Selection for HEVC based on Bayesian Decision Rule <HEVC标准介绍.HEVC帧间预测论文笔记&g ...

  3. 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin

    参考:An Efficient Inter Mode Decision Approach for H.264 Video Coding <HEVC标准介绍.HEVC帧间预测论文笔记>系列博 ...

  4. 【HEVC帧间预测论文】P1.8 Complexity Control of High Efficiency Video Encoders for Power-Constrained Devices

    参考:Complexity Control of High Efficiency Video Encoders for Power-Constrained Devices <HEVC标准介绍.H ...

  5. 【HEVC帧间预测论文】P1.6 A Fast HEVC Inter CU Selection Method Based on Pyramid Motion Divergence

    A Fast HEVC Inter CU Selection Method Based on Pyramid Motion Divergence <HEVC标准介绍.HEVC帧间预测论文笔记&g ...

  6. 【HEVC帧间预测论文】P1.4 Motion Vectors Merging: Low Complexity Prediction Unit Decision

    Motion Vectors Merging: Low Complexity Prediction Unit Decision Heuristic for the inter-Prediction o ...

  7. 【HEVC帧间预测论文】P1.3 Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information

    基于图形信息的HEVC帧间预测快速算法/Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information <H ...

  8. 【HEVC帧间预测论文】P1.1 基于运动特征的HEVC快速帧间预测算法

    基于运动特征的 HEVC 快速帧间预测算法/Fast Inter-Frame Prediction Algorithm for HEVC Based on Motion Features <HE ...

  9. H.264学习笔记3——帧间预测

    帧间预测主要包括运动估计(运动搜索方法.运动估计准则.亚像素插值和运动矢量估计)和运动补偿. 对于H.264,是对16x16的亮度块和8x8的色度块进行帧间预测编码. A.树状结构分块 H.264的宏 ...

随机推荐

  1. SPFA 最短路 带负权边的---- 粗了解

    SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算. 算法大致流程是用一个队列来进行维护. 初始时将源加入队列 ...

  2. Windows Mysql启动出现1069错误 “由于登录失败而无法启动服务” 的处理方法

    问题现象 windows下mysql服务无法启动,报1069错误. 问题原因 如果Mysql启动用户的密码或者权限错误,会导致Windows服务器Mysql启动时出现"由于登录失败而无法启动 ...

  3. Python3中使用PyMongo的方法详解

    前言 本文主要给大家介绍的是关于在Python3使用PyMongo的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍: MongoDB存储 在这里我们来看一下Python3下Mongo ...

  4. bzoj 4987 Tree —— 树形DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4987 其实就是在树上找有 k 个点的连通块(路径上的点都选是最优的),之间的边都走了两遍,只 ...

  5. bzoj2660最多的方案——数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2660 首先,多种方案的出现是因为一个较大的斐波那契数可以变成两个较小的: 用一个01串来表示 ...

  6. USACO 奶牛排队

    题目:给出一个只含有1,2,3的数字序列,问最少交换多少次才能将之变为递增数列. 解: 注意到只有1,2,3,我们只要将1,3交换到自己的应在位置上那么排序就已经完成了. 需要交换的有几种,记$a(x ...

  7. django基础知识

    一.django的安装 1. pip3 install django 2. 把安装路径加到环境变量里以便以后启动admin相关命令,在windows系统中---我的电脑---属性----高级系统设置- ...

  8. C++开发工程师面试题库 100~150道

    101. 编写strcat函数(6分) 已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc); 其中strDest 是目的字符串 ...

  9. Educational Codeforces Round 21 D - Array Division (前缀和+二分)

    传送门 题意 将n个数划分为两块,最多改变一个数的位置, 问能否使两块和相等 分析 因为我们最多只能移动一个数x,那么要么将该数往前移动,要么往后移动,一开始处理不需要移动的情况 那么遍历sum[i] ...

  10. hdoj1176【DP】

    DP基础吧.A掉还是挺爽的.就是考虑在两端只能是从前一秒的内部一米或原来的点来进行,但是在5秒以内可到达点是逐渐外扩的,并不是[0,10],所以就特殊考虑了一下.后面两端是0和10,中间的点可以从上一 ...