一. h.264的编码结构
从编码原理看,H.264/AVC采用的是混合编码方式。从编码层次结构看,H.264/AVC采用的是分块式编码结构,将图像划分为若干宏块,主要编码操作针对宏块进行。宏块向下可以划分为多个更小的块或子块。向上可由若干宏块组成一个条,一帧图像则由数量不等的条组成。若干图像帧就形成了一个图像组(Group OfPicture,GOP),视频序列包含一系列的GOP,如图3.1所示。
宏块划分:根据帧间预测划分,变化小的区域用大尺寸
条划分:在编码中,以条为单位编码的,条和条相互间是独立的。某条的预测不能以其他条中的宏块为参考图像,这样某一条中的预测误差才不会传播到其他条中去。
档次与水平:兼容问题和编码格式
二. HEVC的网络适配和编码方式
为适应网络传输,增加对网络的“友好”性,HEVC 采取了分层处理的方法,分为视频编码层(VCL)和网络提取层(NAL)。
原始视频经过 VCL 层,被编码成视频数据,然后经过NAL层,封装成一个个NAL包以适应不同网络的视频传输。HEVC码流在应用过程中与H264/AV码流的区别就在于NAL层。
2.1 hevc的四叉树划分
HEVC 将一个视频序列分为相继的若干图像组(GOP),每一组由该序列中连续的多帧图像组成。帧是四叉树划分的基本单位,每一帧图像经过四叉树划分,形成覆盖全帧的多个同样尺寸的方形编码树块(CTB)。CTB 还可以划分为更小的编码块(CB)。CB 是实施视频编码算法的基本单位,它还可以划分为预测块(PB)和变换块(TB)。
同一位置的亮度 CTB和两块色度 CTB,再加上相应的语法元素以及所包含的编码单元(CU)形成一编码树单元(CTU)。CTU可以按照四叉树结构分解为若千方形编码单元(CU),同一层次的CU必须是同一尺寸的4个方块,最多可有4 层分解,即 64X64,32X32,16X16和8X8。
每个CU包含一个亮度编码块(CB)、两个色度CB 以及相应的语法元素,如预测模式(内或帧间)、PU划分、RQT语法、从属的 PU和TU信息等。CU 是决定进行内预测还是帧间预测的单元,也就是说,整个 CU 只能是一种预测模式,不是帧内就是帧间。
编码块(CB)还可以进一步划分为一个或多个预测单块(PB)和变换块(TB),同一个CB 可以同时进行两种划分,一种是预测块的划分,另一种是变换块的划分。这两种划分都在这个CB 的几何位置中进行,但两者基本上是不相干,而且划分的方法也不同,尽管划分的结果还是在同一个CB中。
2.1.1 CU中的PU划分
预测单元PU是HEVC进行预测运算的基本单元,只能定义在不再划分的最低层的CU中包括帧内预测和帧间预测两类。CU 决定了本单元包含的所有 PU 的预测方式和划分方式。
一个编码单元 CU可以划分为一个或多个预测单元 PU,CU到PU仅允许一层划分,最小的PU为4X4。划分可以是对称的,也可以是不对称的。
帧内预测中,一个亮度 PU 有一个内亮度预测模式,而相应的两个色度 PU 则共享一个帧内色度预测模式。
在每个PU中,同一个帧内预测模式被用于预测该PU内的每个样点。帧内预测的参考像素来自邻近的已重建的TU样点。
编码器可以选择使用穿越PU界线的残差变换。例如,对多个包含PU界线的PT差联合起来进行变换、量化和熵编码,有助于节省编码比特。
2.1 HEVC中的片和条划分
条:偏线性(I,P,B条)
片:并行控制,空间更紧凑
标签:编码,HEVC,预测,PU,划分,CU,结构 From: https://www.cnblogs.com/jhzj/p/17750729.html