H266/VVC标准的编码结构介绍
概述
CVS:
H266的编码码流包含一个或多个编码视频序列(Coded Video Swquence,CVS),每个CVS以帧内随机接入点(Intra Random Access Point, IRAP)或逐渐解码刷新(Gradual Decoding Refresh, GDR)图像开始。CVS是时域独立可解码的基本单元。
CLVS:
编码视频序列层,当编码码流只包含一层时,CVS与CLVS一致。
AU:
访问单元
PU:
图像单元,不同于H265里的预测单元PU,在H266中的每个PU为一幅图像,包含一个或多个片Slice。CVS、AU、PU的关系如下。
Slice:
在H266中一图图像可以被分割成一片或多片Slice,目的是压缩数据的高效存储、传输,每个Slice对应一个单独的NAL单元。可以分成三类:
类型 | 解释 |
---|---|
I Slice | 该Slice内所有CU都使用帧内预测 |
P Slice | 在I Slice的基础上,该Slice内CU可以使用帧内预测、帧间预测,只使用图像参考列表list0 |
B Slice | 在P Slice的基础上,B Slice可以使用图像参考列表list0和list1 |
Tile:
一幅图像可以划分若干个Tile,即从水平方向和垂直方向将一幅分割成若个矩形区域,一个矩形区域就是一个Tile,每个Tile包含整数个CTU,可以独立解码。划分Tile的主要目的是在增强并行处理能力的同时又不引入新的错误扩散。如下图的Tile划分。
CTU:
H266使用树形编码单元CTU作为编码的基本单位,一幅图像被分成一个CTU序列,对于三通道图像,CTU由一个亮度CTB和两个对应的色度CTB构成。亮度最大允许尺寸128x128,色度块的最大尺寸64x64。
CU:
每个按照二叉树、三叉树、四叉树递归划分为不同尺寸的矩形编码单元CU。不同于H265,有CU\PU\TU的划分,H266是预测、变换、编码均以CU为基本单位。Slice、CTU、CU的关系如下:
在H266中,CU可以是正方形或矩形,一个CTU可能只包含一个CU,也可能被划分多个CU。如下图利用了多类型树将一个CTU递归划分为多个CU的例子。
参数集
非编码数据的参数集作为non-VLCU进行传输,这为传递关键数据提供了高鲁棒机制。
VPS:
视频参数集,VPS主要用于承载视频分级信息,表达PU间的依赖关系,支持可分级视频编码或多视点视频编码。
信息 |
---|
每个PU的子层标识,子层间的相互依赖关系 |
标识输出层集合 |
会话所需的有关操作点的关键信息,如档次、级别 |
SPS:
序列参数集,SPS包含CVS的共用编码参数,一旦被CVS引用,该CVS中所有编码图像都是用该参数集的编码参数,SPS通过被PPS引用而作用与编码图像,一个CVS中所有被使用的PPS必须引用同一个SPS。
信息 |
---|
编码格式的信息 |
编码参数信息 |
与参考图像相关的信息 |
档次、层和级相关参数 |
时域分级信息 |
可视化可用信息VUI |
其他信息 |
PPS:
图像参数集,每幅图像包含一个或多个 Slice,在 H266中除了PPS,还使用了PH、APS来表示图像的共同编码参数,可被图像内所有Slice使用。PPS中存在一些与SPS中相同的参数,PPS会覆盖SPS中的取值。主要包含:
信息 |
---|
编码工具的可用性标志 |
量化过程相关语法元素 |
Tile相关语法元素 |
去方块滤波相关语法元素 |
Slice头中的控制信息 |
编码一幅图像时可以共用的其他信息 |
PH:
图像头,作用与PPS相似,PH承载频繁变换的编码参数信息,如IRAP /GDR图像标识、Slice类型允许、图像序列、去方块滤波、SAO参数等。
APS:
自适应参数集,主要包含的信息具有大量数据,如传递自适应环路滤波参数ALF、参数映射与色度缩放参数LMCS、量化矩阵参数。
DCI:
解码能力信息。
SEI:
附加增强信息。
档次、层、级别
Profile:
档次主要规定了编码器可采用哪些编码工具或算法。H266/VVC标准规定了6种档次。
档次 | 解释 |
---|---|
Main10 | 10bit、4:2:0或单色采样格式 |
Main4:4:4 10 | 10bit,4:4:4、4:2:2、4:2:0或单色采样格式 |
Main 10 Still Picture 和Main 4:4:4 10 Still Picture | 与对应的Main10档次共享同一个档次ID,但比特流限制为只能包含一副编码图像 |
Multilayer Main 10 和Multilayer Main 10 4:4:4 | 支持多层编码 |
Tier:
H266/VVC规定了2个层Tier,两个层分别是Main Tier(general_tier_flag=0
)、High Tier(general_tier_flag=1
)。
Level:
H266/VVC规定了13个级别,支持从SQCIF 到8K多种分辨率的图像。图像的宽和高受到该级别定义参数MaxLumaPs的限制,还约束了水平方向和垂直方向Tile的最大数量,以及每秒Tile的最大数量。
参考
JVET提案系统:
http://phenix.int-evry.fr/jvet/
JVET输出文档:
https://www.itu.int/wftp3/av-arch/jvet-site/
JEM代码:
https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/
VTM代码:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM
书籍:
新一代通用视频编码H266/VVC:原理、标准与实现[万帅 霍俊彦 马彦卓 杨付正/著]
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!