计算机 · 2021年7月11日 0

h264与h265标准

h264编码

https://blog.csdn.net/crystalshaw/category_9281311.html

基本概念:

  1. slice h264编码可以将一幅图片分割成若干和Slice,Slice承载固定个数个宏块。将一幅图片分割成若干Slice的目的是,为限制误码的扩散和传输。在H264编码协议中定义,当前帧的当前Slice片内宏块不允许参考其他Slice的宏块。
  2. 宏块

为什么h265比h264拥有更高的压缩率

https://tieba.baidu.com/p/6684608012?see_lz=1

x265将图像划分为“树编码单元=coding tree units= CTU”,而不是像x264那样的16×16的宏块。根据不同的编码设置,树编码块的尺寸可以被设置为64×64或32×32或16×16。大量的研究都表明更大的树编码块可以提供更高的压缩效率,但是也意味着压制速度会变得巨慢无比。每个树编码块可以被递归分割,利用四叉树结构,分割为32×32、16×16、8×8的子区域,下图就是一个64×64树编码块的分区示例。每个图像进一步被区分为特殊的树编码块组,称之为切割(Slices)和拼贴(Tiles)。编码树单元是x265的基本编码单位,如同H.264的宏块。编码树单元可向下分成编码单元=Coding Unit=CU)、预测单元=Prediction Unit=PU)及转换单元=Transform Unit=TU。

  • 更大的”宏块”,h265支持64×64,而h264最大只能支持16×16,”宏块”更大,压缩效率越好;
  • 四叉树的编码方式;
  • 预测单元更多;

总之看下该贴的原文吧 。

h264的几个不常用特性/扩展

https://blog.csdn.net/FPGATOM/article/details/109256006

  1. intra-refresh 帧内刷新技术
  2. 长参考帧编码技术(Long-Term Reference, LTR) https://software.intel.com/content/www/us/en/develop/articles/improve-encoding-efficiency-and-video-quality-with-adaptive-ltr.html
  3. SVC,只有思科的openh264编码器实现了SVC

帧内刷新技术

https://blog.csdn.net/dxpqxb/article/details/114373606

除了第一帧为I帧,后面的全是P帧。后面的每个P帧内部都有一个帧内刷新条,帧内刷新条使用帧内预测进行编码,相当于该帧内刷新条可以独立进行解码。

  1. 使用IPPP…IPPP…这种方式编码时,每个I帧数据量大,P帧数据量少,码率抖动大,而且每个I帧必须传输完解码器端才能进行解码,导致播放延时大。而使用帧内刷新技术后,不再存在这样的I帧,只有体积大一点的P帧,因此码率更平稳,延迟更低。
  2. 虽然只有1个I帧,但是每个P帧内部都有一个帧内刷新条,所以随着时间推移,可以获取所有需要参考的帧内刷新条,从而恢复解码错误。

LTR

https://software.intel.com/content/www/us/en/develop/articles/improve-encoding-efficiency-and-video-quality-with-adaptive-ltr.html

SVC

三种分级方法:

  1. 时域分级
  2. 空间分级
  3. 质量分级