HEVC视频编解码标准简介

  系列文章目录

   HEVC视频编解码标准简介

【x264编码器】章节1——x264编码流程及基于x264的编码器demo

【x264编码器】章节2——x264的lookahead流程分析

【x264编码器】章节3——x264的码率控制

【x264编码器】章节4——x264的帧内预测流程

【x264编码器】章节5——x264的帧间预测流程

【x264编码器】章节6——x264的变换量化

【x265编码器】章节1——lookahead模块分析

【x265编码器】章节2——编码流程及基于x265的编码器demo

【x265编码器】章节3——帧内预测流程

【x265编码器】章节4——帧间预测流程

【x265编码器】章节5——x265帧间运动估计流程

【x265编码器】章节6——x265的码率控制

【x265编码器】章节7——滤波模块

【x265编码器】章节8——变换量化模块


1.概要

HEVC(即h.265)编码框架跟h.264一脉相承,除了多了一个SAO滤波模块,其他框架都没有变化,都是在这个基础提出了新算法,做了优化。

2.HEVC整体框架流程

 其中与h.264标准在框架上不同的点是:

1.h.265会多一个SAO滤波模块;

2.h.264使用最大16x16的宏块作为编码单元,而h.265有CU(编码单元)、PU(预测单元)、TU(变换单元),其中CU支持4x4、8x8、16x16、32x32和64x64不同的尺寸;PU最大不超过CU尺寸;TU支持4x4、8x8、16x16和32x32;

3.帧内预测模块

h.264:原先只支持4x4和16x16亮度块划分,分别有9种预测模式和4种预测模式,后来因为新增了8x8的DCT,要求新增了8x8的亮度块划分,它的模式跟4x4的一样;另外色度块只支持8x8,即不划分直接预测,模式跟16x16的亮度块一样。

h.265:亮度块支持4x4、8x8、16x16、32x32和64x64划分,帧内预测模式支持35种。

帧内预测流程:

1.参考像素填充:如NxN大小的CU块,参考像素为左侧N个+左上角1个+上边N个=2N+1,如果实际可用像素不满足2N+1个,则需要根据填充规则直接进行填充;

2.参考像素平滑滤波:a.4x4不需要滤波;b.8x8只需对三个对角方向进行滤波,即模式2、18和34;c.16x16除了水平方向附近9、10和11,以及垂直方向25、26和27,不需要滤波外,其他27个角度都要;32x32除了水平模式10和垂直模式26外,其余31个角度模式都要滤波,且32x32块具有两种平滑滤波:常规平滑滤波和强平滑滤波。

3.计算预测值

4.帧间预测模式

h.265对比h.264优化的点有三个:

1.支持非对称的划分;

2.采用了更加合理的子像素插值算法,进一步提高帧内运动估计和运动补偿的准确度;h.264:1/2内插使用了6抽头滤波器,1/4内插则采用两端整数点和半像素点进行平均处理;h.265:1/2内插采用了8抽头,1/4采用了7抽头;

3.新增了merge模式;

帧间预测流程:

1.运动估计,得到运动矢量;

2.运动补偿;

3.运动参数的编码,有三种方式skip、merge和inter(也叫AMVP);

merge模式流程:

1.构建参考mvp候选表(5个),5个空余候选中最多选出4个,2个时域候选最多选出1个,不足则补0,凑齐5个候选;

2.选取最优的mvp;

3.确定参考块;

4.求预测残差;

5.编码残差和mvp索引;

skip模式:

skip是特殊的merge模式,即2Nx2N的编码块(CBF)为0的merge模式,实际上是不需要传输预测残差的merge模式。

inter模式(AMVP)流程:

1.构建候选表(2个);

2.选取最优的mvp;

3.在该mvp为起点,进行运动估计得到最优mv;

4.以该mv确定参考块;

5.计算预测残差,参考块-当前块=预测残差

6.mvp-mv求得运动向量残差;

7.编码;

inter和merge模式的不同点:1.候选个数不同;2.inter模式得到mvp后,还需要以这个为起点,继续进行运动估计得到最优mv;

5.变换量化

h.265相对h.264有以下的优化:

变换:

1.尺寸支持4x4、8x8、16x16和32x32;

2.支持4x4的离散正弦变换;

量化:

1.支持加权量化系数;

2.也支持自定义的量化矩阵;

备注:

1.量化参数和量化步长:Q^{_{step}} =2^{(QP-4)/6)}

2.率失真优化的编码模式选择,拉格朗日乘子:\lambda _{mode}=0.85*2^{(QP-12)/3}

3.率失真优化的运动估计,拉格朗日乘子:\lambda{_{motion}}=\sqrt{\lambda _{mode}}=0.85*2^{(QP-12)/6}

4.率失真代价函数:cost=D + \lambda *R

6.DBF去块滤波和SAO

DBF是仅用于块边界处的像素值,而SAO是针对满足条件的所有像素;

编码块效应产生的原因:基于块的编码方式,同时由于变换量化过程中,量化是一个有损的过程,所以导致块效应出现;

SAO是为了解决振铃效应,产生的原因是:跳变信号经过系统输出后产生失真的吉布斯现象;

DBF流程:

1.根据编码参数和边界强度(BS)判断目标边界是否需要进行滤波;

2.判断进行普通滤波还是强滤波;

3.具体的滤波处理;

滤波是基于8x8进行,滤波的顺序:亮度垂直边界、亮度水平边界、色度垂直边界、色度水平边界;

边界强度是0-2,2为最强,两边中只要有帧内模式,则BS=2;BS>0时,就要进行滤波,其中普通滤波每次处理3个像素,强滤波每边处理3个像素;

h.264:去方块滤波的强度为5个等级;

h.265:去方块滤波的强度仅有3个等级;

SAO:

SAO的滤波类型有两种,边缘补偿EO和带补偿BO;

BO流程:

1.对像素0-255进行32等分;

2.统计各个带的平均值;

3.计算得到预测图像与原始图像偏差值最大的4个连续的带,并计算偏差值;

4.编码传输BO模式并附加这4个补偿值;

EO流程:

1.确认像素梯度方向,从水平、垂直、135度、45度中确定一个方向,整个CTU都认为是该模式;

2.在给定EO模式情况下,计算CTU中所有点和周围两个点的关系,从谷值、峰值、凹拐点、凸拐点其他这五种中确认一种;

3.编码传输CTU的4个补偿值;

7.熵编码

h.265基本上延用了h.264的CABAC(基于上下文的自适应二进制算法编码)方法,改变的地方不多。主要特点如下:

1.采用二进制算法编码,将所有的语法元素转化为二进制符号串,消除了乘法运算操作,降低了计算复杂度,提高了编码效率;

2.依据信息熵理论,符号概率分布相差越大,则其变长编码的效率越高,二进制化其实是人为改变了符号分布概率,所以针对不同的编码参数信息用不同的上下文模型,进一步提高编码效率;

8.参考资料

《H.265/HEVC视频编码新标准及其拓展》朱秀昌、刘峰、胡栋编著

点赞、收藏,会是我继续写作的动力!赠人玫瑰,手有余香。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
播放此视频需要新的编解码hevc,即高效视频编码(HEVC)。HEVC是一种现代的视频编码标准,它能够显著提高视频的压缩率和质量。由于视频文件的大小日益增长,传统的编码器已经无法满足需求,因此需要使用HEVC编解码器来播放更高分辨率和更高质量的视频HEVC的优点之一是它能够以较低的比特率实现更好的视频质量。与以前的编码标准相比,HEVC可以将文件大小减小约50%,而不会牺牲视频质量。这意味着我们可以在较小的文件大小下存储更多的视频内容,并通过网络更快地传输视频。 另一个HEVC的优点是它支持更高分辨率的视频。传统编解码器通常受限于较低的分辨率,而HEVC可以轻松地处理高分辨率视频,如4K和8K。这意味着我们可以享受更清晰、更细腻的图像细节。 然而,要播放使用HEVC编码的视频,我们需要确保设备和播放环境支持它。大多数新一代的电视、智能手机、电脑和流媒体设备已经内置了HEVC编解码器,因此它们可以直接播放HEVC视频。但是,一些旧款设备可能需要通过软件升级或安装额外的编解码器来支持HEVC。 总之,HEVC是一种先进的视频编码标准,它可以提供更高效的视频压缩和更好的质量。如果您遇到了需要新的编解码HEVC才能播放的视频,请确保您的设备和播放环境支持HEVC,以获得更好的观看体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值