HEVC的编码结构
一. 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 把一张图像划分为多个 CTU 。CTU 的尺寸可以是 64x64, 32x32, 或 16x16 。具体的尺寸根据 HEVC 码流头部的信息确定。对于一张图像,CTU的尺寸是固定的。对于一帧图像,编码器会按照从左到右,从上到下的顺序扫描每个 CTU ,并对每个 CTU 进行编码。
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差联合起来进行变换、量化和熵编码,有助于节省编码比特。
总结一下HEVC的分块编码结构:忽略相关的语法元素,一顿图像可以划分为若干方形CTU,尺寸为64X64、32X32或16X16,1个CTU包含一个亮度CTB和2个对应的色度CTB:1个CTU可根据四叉树原则划分为若干CU,尺寸为64X64~8X8,1个CU包含个亮度CB和2个对应的色度CB。CU是HEVC的基本编码单元是HEVC编码树的“树叶”即最低编码层。预测单元PU和变换单元TU 是在编码单元CU的基础上再进行划分而得。1个CU可以一次划分成1个或多个PU,同时可按照四叉树原则经1层或多层划分为多个TU,CU是“变换树”的“树根”TU是它的“树叶”每个PU包括1个亮度预测块(PB)和2个对应的色度预测块(PB)。每个TU也如此,包括1个亮度变换块(TB)和2个对应的色度变换块(TB)。CU中的PU和TU的划分是相对独立的,但在内模式中要求TB 的尺寸小于PB。
2.1 HEVC中的片和条划分
条:偏线性(I,P,B条)
片:并行控制,空间更紧凑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY