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:原理、标准与实现[万帅 霍俊彦 马彦卓 杨付正/著]

相关推荐
REDcker4 天前
WebCodecs VideoDecoder 的 hardwareAcceleration 使用
前端·音视频·实时音视频·直播·webcodecs·videodecoder
YYDataV数据可视化4 天前
【P2P音视频通信系统】之 WebRTC Android平台 aar 下载
webrtc·实时音视频
TSINGSEE5 天前
画面模糊、花屏、遮挡?EasyGBS视频质量诊断让监控故障主动上报
音视频·视频编解码·画面冻结·花屏检测·画面抖动·蓝屏检测·偏色检测
YYDataV数据可视化5 天前
【P2P音视频通信系统】之TURN 服务详解
音视频·webrtc·实时音视频·ai编程
TSINGSEE5 天前
EasyGBS视频质量诊断:告别人工盯屏,AI智能巡检如何“主动”发现11种画质异常?
人工智能·音视频·实时音视频·视频质量诊断·画面冻结·画面抖动·偏色检测
TSINGSEE5 天前
融合与重构:从EasyDSS一站式视频云平台看流媒体技术如何重塑企业交互边界
重构·音视频·视频编解码·智能摘要·智能字幕
willhuo5 天前
纯C#实现了RTSP摄像头拉流并转存MP4文件
开发语言·c#·视频编解码
zymill5 天前
hysAnalyser和flvAnalyser对比
音视频·实时音视频·视频编解码·h.264·智能电视·视频分析·mpeg-2
YYDataV数据可视化6 天前
WebRTC ICE 候选类型详解:对等反射候选者(Peer Reflexive Candidate)
webrtc·实时音视频·ai编程
YYDataV数据可视化6 天前
【音视频通话系统】架构详解
音视频·webrtc·实时音视频