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

《HEVC标准介绍、HEVC帧间预测论文笔记》系列博客,目录见:http://www.cnblogs.com/DwyaneTalk/p/5711333.html

 Journal of Frontiers of Computer Science and Technology,2014,8(5):537-542.

利用CU内所有像素点水平和竖直的梯度绝对值之和Gcu,连同CU内像素平均绝对差值MAD(一阶中心距)一起判断纹理平坦(空域信息);利用当前CU和最佳匹配CU块的绝对差值之和SAD判断当前CU是否为稳定区域(时域信息)。

核心公式:

       

Dx和Dy别表示CU中位于i,j位置的像素点在水平和竖直方向上的梯度,原理就是利用sobel算子进行边缘检测。如下图:左右表格分别是计算偏导数dy和dx的sobel算子卷积模板。

                                  (3)

GCU是当前CU的所有像素点水平和竖直梯度的绝对值的累加。PS:可以进一步进行如下尝试:

1、一般在sobel进行边缘检测时,通过 来融合水平和竖直梯度进行判断;

2、文中只使用了水平和竖直的两种梯度,实际上还可以通过对角线方向的梯度判断图像的纹理信息。

     (4)

MAD是当前CU内像素平均绝对差值,其中M表示当前CU内的所有像素的均值,P(x,y)表示(x,y)位置的像素值。MAD实际上就是一阶中心距,类似于方差(二阶中心距)。

通过比较GCU和MAD与阈值(TH1和TH2)的大小,来判断图像纹理特征,如果GCU和MAD都小于给定的阈值,则认为该CU块是纹理平坦的区域,则可以终止继续更深度地划分CU块。(关于TH1和TH2后续介绍)

    (5)

进行运动搜索和运动估计之后,得到最佳预测块。P(x,y)就是最佳预测块(x,y)处的像素值。SAD用来判断对于某些非纹理平坦区域,是否是运动平稳区域(时域信息)。如果最佳匹配块与当前块的残差(SAD)已经非常小(阈值TH3),说明该区域运动平稳,可以终止继续更深度地划分CU块。

算法流程:如图:算法针对LCU进行优化

S1:计算当前CU(LCU)的MAD和GCU

S2:对LCU进行2Nx2N、2NxN和Nx2N这3种PU模式的运动搜索和运动估计,然后通过率失真优化得到最佳PU决策;

S3:依据MAD和GCU与两个阈值关系判断,如果是纹理平坦区域,则直接终止对LCU的进一步CU子划分;

S4:否则,依据预测模式为2Nx2N时(即PU块与LCU一样大)的SAD与阈值TH3的关系判断,如果是平稳区域,则也直接终止子划分;

S5:如果不能提前终止,则按照正常步骤进行CU尺寸和PU模式决策。

思考:只在LCU层进行加速,是否可以在更深的深度进行加速?

其中3个阈值TH采用静态初始阈值+动态调整的策略:

1、通过在一系列视频序列进行聚类,得到3个最初的阈值;

2、然后通过TH = 0.9*TH + 0.1*newTH进行调整,进行50次调整,其中newTH对应为满足提前终止条件的GCU、MAD和SAD。

实验结果:

         HM10.0、配置为enconde_randomaccess_mian10、TH1~3初值依次10、200000和15000

【HEVC帧间预测论文】P1.3 Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information的更多相关文章

  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.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 ...

  3. 【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 ...

  4. 【HEVC帧间预测论文】P1.9 Coding Tree Depth Estimation for Complexity Reduction of HEVC

    Coding Tree Depth Estimation for Complexity Reduction of HEVC <HEVC标准介绍.HEVC帧间预测论文笔记>系列博客,目录见: ...

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

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

  6. 【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 ...

  7. 【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 ...

  8. 【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帧间预测论文笔记>系列博 ...

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

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

随机推荐

  1. Javascript对象拷贝(clone)

    Javascript对象拷贝(clone),希望大家给点建议​1. [代码]方法代码 function cp(source, target) {    function isBaseType(v) { ...

  2. 两种 NIO 实现:Selector 与 Epoll

    [总结]两种 NIO 实现:Selector 与 Epoll 时间2012-11-17 08:38:42 开源中国新闻原文  http://my.oschina.net/ielts0909/blog/ ...

  3. 深入理解dispatch_sync

    关于GCD的基础知识,之前写过一篇博客,详见GCD基础知识.虽然之前已经梳理过了,但对很多知识点的理解仍然不够透彻…写这篇博客的原因是在阅读AFNetworking代码时遇到一些奇怪的代码. 如下: ...

  4. 【Codeforces 947A】 Primal Sport

    [题目链接] 点击打开链接 [算法] 不难看出,x1的范围是[x2-P(x2)+1,x2],x0的范围是[x1-P(x1)+1,x1] 我们可以先做一遍线性筛,然后暴力就可以了 [代码] #inclu ...

  5. 多线程-threading模块

    #coding:utf-8 import threading from time import sleep,ctime #音乐播放器 def music(func): for i in range(2 ...

  6. 堆、栈的区别 <转载>

    本篇非作者原创,转子链接,仅供学习记录. 一.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值 ...

  7. Android 用Animation-list实现逐帧动画 (转载)

    转自:http://blog.csdn.net/aminfo/article/details/7847761 第一步:先上图片素材,以下素材放到res/drawable目录下: http://blog ...

  8. bzoj 3173: [Tjoi2013]最长上升子序列【dp+线段树】

    我也不知道为什么把题看成以插入点为结尾的最长生生子序列--还WA了好几次 先把这个序列最后的样子求出来,具体就是倒着做,用线段树维护点数,最开始所有点都是1,然后线段树上二分找到当前数的位置,把这个点 ...

  9. bzoj 1049: [HAOI2006]数字序列【dp+二分+瞎搞】

    第一问明显就是用b[i]=a[i]-i来做最长不下降子序列 然后第二问,对于一对f[i]=f[j]+1的(i,j),中间的数一定要改的,并且是等于b[i]或者b[j],我不会证,然后因为是随机数据,所 ...

  10. Springboot 配置 application.yml 连接MySQL数据库

    1.在pom.xml的<dependencies></dependencies>标签中中加入以下依赖 <dependency> <groupId>org ...