HEVC学习之一编码框架
接触H265时间不是很长,看了一些东西,但是一直没有时间静下心来整理。H265的学习主要是参考万帅、杨付正的《新一代高效视频编码 H265/HEVC 原理、标准与实现》移书,这本书对H265有详细易懂的讲解,作为入门教材真心觉得不错。这里会先把前期看的东西记录下来,后续会不断的补充。HEVC学习系列的文章也算是对自己学习H265做的笔记吧。
H265/HEVC仍旧沿用了H264的混合编码框架,但是在变换、量化、熵编码、帧内预测、帧间预测以及环路滤波等模块中都引入了新的编码技术。H265/HEVC的编码框架如图:

在编码流程上依次为 分块---->预测---->变换---->量化---->熵编码
1. 帧内预测
主要是去除图像空间相关性。与H264相比,H265/HEVC支持更多的帧内预测模式,H264亮度4X4块支持9种方向,8X8块支持9种方向,16X16支持4中方向,色度支持4种方向;H265/HEVC所有尺寸编码块,亮度支持多达35种预测方向,测度也支持5种预测方向。
2. 帧间预测
主要是去除图像的时间相关性。与H264相同,H265/HEVC可以采用单向和双向的参考图像来进行预测,也有类似H264的B帧结构。但是H265在H264的基础上增加了插值的抽头系数个数,改变抽头系数值以及增加运动矢量预测值得候选个数,最终减少预测残差。H265增加了运动矢量预测值候选的个数,而相应的H264预测值则只有一个。
3. 变换量化
主要是对参差数据进行变换量化,从而去除频域相关性,对数据进行有损压缩。变换编码将图像从时域信号变换至频域,能量集中在低频区域。原理上两者是属于相互独立的过程,但是在H265/HEVC中两个过程结合在一起了,减少了计算复杂度。
4. 样点自适应补偿
简称SAO,处于去方块滤波之后,通过解析去方块滤波后图像的统计特性,为像素增加相应的偏移值,一定程度上可以消弱振铃效应。位于Deblock之后,做法是通过对重建图像的分类,对每一类图像像素值加减一个偏移。
除了上面提到的采样点自适应补偿、不同角度的帧内预测模式H265/HEVC还有很多新的技术,包括基于四叉树的灵活块分割结构(RQT)、内部位深度扩展(IBDI).
HEVC学习之一编码框架的更多相关文章
- [源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知
[源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 目录 [源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 0 ...
- Java并发包源码学习之AQS框架(四)AbstractQueuedSynchronizer源码分析
经过前面几篇文章的铺垫,今天我们终于要看看AQS的庐山真面目了,建议第一次看AbstractQueuedSynchronizer 类源码的朋友可以先看下我前面几篇文章: <Java并发包源码学习 ...
- Java并发包源码学习之AQS框架(三)LockSupport和interrupt
接着上一篇文章今天我们来介绍下LockSupport和Java中线程的中断(interrupt). 其实除了LockSupport,Java之初就有Object对象的wait和notify方法可以实现 ...
- Java并发包源码学习之AQS框架(一)概述
AQS其实就是java.util.concurrent.locks.AbstractQueuedSynchronizer这个类. 阅读Java的并发包源码你会发现这个类是整个java.util.con ...
- Yaf零基础学习总结2-Yaf框架的安装
接着上一篇文章<Yaf零基础学习总结1-Yaf框架简介>我们对Yaf框架有那么一个大概的了解了,但是对于程序员来说,那些文字都是表面的,他们最想的就是开始敲代码了.当然这也是学习Yaf框架 ...
- golang学习之beego框架配合easyui实现增删改查及图片上传
golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...
- (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
- java web 学习笔记 编码问题总结
java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...
- 对比深度学习十大框架:TensorFlow 并非最好?
http://www.oschina.net/news/80593/deep-learning-frameworks-a-review-before-finishing-2016 TensorFlow ...
随机推荐
- UE4 不能显示中文 解决办法
UE4 4.11.2 方法步骤: 1.在内容浏览器新建一个字体文件如图: 2.打开刚刚创建的那个字体文件: 选择Offline,会有一个弹出框点击 “是” 接下来就选择你要用到的字体 红色矩形框出的文 ...
- C# 获取 oracle 存储过程的 返回值1
/// <summary> /// 返回对应表的模拟自增字段值 /// </summary> /// <param name="tablename"& ...
- 工作记事 unknownHost
使用xutils框架 下带图片(文件)事解析时在urlconnection 执行connect操作的时候抛出 UnknownHostException 而浏览器中能够正常访问该地址.这是由于该u ...
- Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example:Given binary tr ...
- javascript函数一共可分为五类: ·常规函数 ·数组函数 ·日期函数 ·数学函数 ·字符串函数
javascript函数一共可分为五类: ·常规函数 ·数组函数 ·日期函数 ·数学函数 ·字符串函数 1.常规函数 javascript常规函数包括以下9个 ...
- 编写中断例程7ch:计算word型数据的平方
实现计算一个word型数据的平方. 这是安装程序. assume cs:code code segment start: mov ax, cs mov ds, ax mov si, offset sq ...
- 【P1825】表达式整除
又自己写出来了好开心OvO 原题: 24点这个游戏好多人都玩过,就是给你4个数,添加相应的运算符,是否可以得到结果是24.小x在玩了很多遍这个游戏之后,想把这个游戏给改变一下.给你n个整数,在n个整数 ...
- OSX unable to write 'random state'
openssl ca -gencrl -config ./config/openssl.cnf -out ./CA/crl/cacrl.pem -passin pass:'password' unab ...
- 分析案例:应用服务无响应,任务管理器中发现大量w3wp僵尸进程----等待异构系统WebService返回值
问题描述: 某二次开发的项目反馈,不定期出现应用服务器无响应的情况,登录服务器发现任务管理器中有大量的w3wp僵尸进程. 分析过程: 针对同一进程每隔15秒抓取dump,连续抓取3个,对比 ...
- 批处理定时重启print打印服务,解决打印机异常队列堆积
公司有台打印机,由于是公用的,经常出现一个较大的文档卡在队列里面,导致队列后面的打印无法被执行,人工去清理岂不是太费事了,下面分享一个批处理文件 @echo off echo 计划任务开始执行 3 e ...