简论H.266与H.265、AV1、H.264对比

  • Post author:
  • Post category:其他


来源:H系列有MPEG和VCEG推出 ,VPX系列由谷歌推出,H.265有更高的图像质量,而AV1对于流媒体来说更加可靠且完全免费。H.265更大的预测模型实现了边缘可视化,而VP9实施更严格的编码规则,似乎可以让流媒体更加连贯和可靠。其中,H.265其压缩效率比H.264提升50%,VP9略逊于H.265,H.266编码性能最高,AV1比VP9同等质量下减少30%比特率。

目录:


压缩性能比较


0.码流结构


1.头信息


2.编解码框架差异


3.块划分结构


4.帧内预测


5.帧间预测


6.变换


7.熵编码


8.滤波


9.加速技术


10.其他技术


0.码流结构:

H.264:

NAL层(Network Abstraction Layer):网络抽象层,主要用于网络传输。按照一定格式,对视频编码层输出的数据进行打包和封装,并提供包头(header)等信息,以在不同速率的网络上传输或进行存储


VCL层(Video Coding Layer):视频编码层,主要用于数据编码, NAL提供围绕VCL的一层保护。在H.265/HEVC中,NAL单元根据是否装载视频编码数据被分为VCLU(Video Coding Layer NAL Unit)和non-VCLU


1.头信息

H265一个图像序列的组成:VPS+SPS+PPS+SEI+一个I帧+若干个P帧。VPS、SPS、PPS、SEI、一个I帧、一个P帧都可以称

为一个NALU。转自

H265_程序员阿周的博客-CSDN博客_h265 sei


2..编解码框架差异

H.265仍然采用混合编解码,编解码结构与H.264基本一致

H.265经典框架:

HEVC Encoder


3.块划分结构:

H.264是16×16(子块的大小可以是 8X16、 16X8、 8X8、 4X8、 8X4、 4X4非常的灵活)的宏块,

VP9可以以64×32或4×8的块来采样,支持使用 64×64 ,支持将帧分割为具有特定相似性的区域;相比H.265, VP9 支持水平或垂直细分

H.265是采用CU (CodingUnit)、PU(PredictionUnit)和TU(TransformUnit)的递归结构,四叉树划分(预测块亮度64×64-8×8,色度32X32-4X4,变换块32×32->4×4),同时H.265增加了非对称划分模式;具体的分割过程通过两个变量来标记:分割深度(Depth)和分割标记符(Split_flag),H.265/HEVC标准突破了之前标准对预测块、变换块大小关系的限制。由于其PU和TU直接由CU划分得到,因此二者大小没有确定的关系。一个PU可能包含多个TU,一个TU也可能跨越多个PU.

H.266在此基础上除了四叉树划分,增加了三叉树和二叉树划分。

思考:是否可以不规则形划分呢?比如三角形、圆形、椭圆、六边形等等。


4.帧内预测:

H.264中4×4和8×8块包含9种预测模式,16×16块包含4种预测模式;

VP9有10种帧内预测模式;

H.265有33种帧内角度预测模式+DC(上、左取平均)+planer;与H.264/AVC相比,H.265/HEVC增加使用了左下方块的边界像素作为当前块的参考;

H.266有65种帧内亮度角度预测模式,实际上有65+10+10=85种,根据宽高比再选;增加ISP(对块的进一步划分技术);PDPC技术,结合了未滤波的参考像素和滤波后的参考像素,增加MIP模式;CCLM模式;

注:Planar 模式适用于像素值缓慢变化的区域,它使用水平和垂直方向的两个线性滤波器,并将二者 的平均值作为当前块像素的预测值。DC 模式适用于大面积平坦区域,当前块预测值可由其左侧和上方 参考像素的平均值得到。角度模式主要用于视频内容中不同方向的纹理。


5.帧间预测:

帧类型结构:H.265用了HIERACLE-B结构

mv精度:H.265是
\frac{1}{4}
像素精度(色度
\frac{1}{8}
),并使用了更多的临近像素点进行亚像素精度插值。预测模式:SKIP,DIRECT,MERGE(5个候选MV),AMVP(2个候选MV)。

H.266提高到
\frac{1}{16}
的像素精度;

VP9 帧间预测使用 ⅛ 像素进行运动补偿,有作为参考帧的不可显示帧,不可显示帧上有平均得来的双向预测。

参考列表:

H.265用两个参考列表,每一个都拥有16个参照项,但是唯一图片的最大数量是8。

H.266中merger模式有6个candidate,相对于H.265增加了TMVP , HMVP改变,


6.变换

H.264整数DCT 4X4 8X8;哈达玛变换

VP9 和HEVC都支持4×4-32×32的变换块大小。 DCT 在帧内编码宏块中,垂直和水平变换路径中的一者或两者会是 DST

HEVC 4X4 DST; Transform_skip模式:transform_skip_flag,该模式对文本桌面视频有较好效果; RQT 技术基于四叉树的自适应变换技术;没有哈达玛变换

HEVC 内部比特深度增加:为了保证中间预测、变换以及量化过程中的内部比特精度,以达到更好的压缩性能

HEVC仅采纳了4点DST7用于帧内预测残差的变换,对于其它尺寸和帧间预测残差仍然采用DCT2;

H.266有不可分离的二次变换lfnst;对预测残差采用多候选变换的方案MTS(Multiple Transform Selection)能够更好地适应预测残差动态变化的统计特性,并且显著地进一步提高变换增益。针对帧间变换技术,子块变换技术(Sub-block Transform,SBT)


7.熵编码:

H.264采用整数离散余弦变换(DCT),CABAC压缩(无损,CABAC也是给高频数据短码,给低频数据长码。同时还会根据上下文相关性进行压缩),两个I帧之间是一个图像序列GOP。

VP9 支持四种变换大小:32×32、16×16、8×8 和 4×4。这些变换与其他大多数编码一样,是 DCT 的近似整数。在帧内编码宏块中,垂直和水平变换路径中的一者或两者会是 DST(离散正弦变换)。

HEVC的熵编码使用了两种算术编码:CABAC和CAVLC。CAVLC主要用于编码SEI、参数集、片头等,剩下的所有数据和语法元素均使用CABAC来编码。

H.265:zigzag扫描:ACS 技术,垂直扫描,水平扫描,对角扫描。

Z扫描


8.滤波:

H.265增加了SAO

H.266中增加了ALF, 亮度7×7,色度5×5

VP9 每块可以选择三种不同的子像素插值滤波器:

正常的第 8 像素/平滑的第 8 像素,可以进行平滑或模糊预测/锐利的第 8 像素, 可以进行锐利预测


9.加速技术

H.265增加了Tile以及WPP等并行工具集以提高编码速度

Tile将图像分割为矩形区域 一个Tile块为基本的并行单元,可以同时存在某些Slice中包含多个Tile和某些Tile中包含多个Slice的情况。

WPP:   全称为wavefront  parallel process,以LCU行为基本的编码单位。

以一行LCU块为基本的并行单元,每一行LCU为一个子码流


10.其他

VP9对运动矢量的第 8 像素精度、三种可切换的子像素插值滤波器、参考运动矢量、熵编码、环路滤波、ADST、DCT 等进行优化

H.264  Level:对视频的描述,Level越高,视频的码率、分辨率、fps越高

H.266:色度联合编码JCCR

HEVC IBDI 技术



版权声明:本文为maryhaocoolcool原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。