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种档次。

档次解释
Main1010bit、4:2:0或单色采样格式
Main4:4:4 1010bit,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:原理、标准与实现[万帅 霍俊彦 马彦卓 杨付正/著]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

结构型设计模式(二)装饰器模式 适配器模式

装饰器模式 Decorator 1、什么是装饰器模式 装饰器模式允许通过将对象放入特殊的包装对象中来为原始对象添加新的行为。这种模式是一种结构型模式,因为它通过改变结构来改变被装饰对象的行为。它涉及到一组装饰器类,这些类用来包装具体组件。 2、为什…

HTML5面试题

HTML5面试题 什么是HTML5?它与HTML4有何不同之处? HTML5是HTML的第五个主要版本,它引入了许多新的语义化元素、API和功能,以改进网页的结构、样式、交互和多媒体体验。 HTML5与HTML4的不同之处包括: 引入了一系列新的语…

亚马逊云科技发布企业生成式AI助手Amazon Q,助力企业迈向智能化时代

(声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道) 一、前言 随着人工智能技术的快速发展和广泛应用,我们…

使用OpenSSL生成PKCS#12格式的证书和私钥

要使用OpenSSL生成PKCS12格式的证书和私钥,可以按照以下步骤进行操作: 1. 安装OpenSSL 首先,确保已在计算机上安装了OpenSSL。可以从OpenSSL官方网站(https://www.openssl.org/)下载并安装适用于您的操作系统的版本。…

04_Web框架之Django一

Web框架之Django一 学习目标和内容 1、能够描述Django的作用 2、能够使用Django创建应用 3、能够使用GET和POST请求方式进行传参 4、能够使用Django的函数式方法定义视图 5、能够进行Django的配置文件修改 6、能够基本使用Django的路由定义 一、Django相关介绍 1、什么是Djan…

ArrayList vs. LinkedList: Java集合框架的比较与应用

目录 1. ArrayList简介 2. LinkedList简介 3. 内部实现方式 3.1 ArrayList的内部实现 3.2 LinkedList的内部实现 4. 时间复杂度比较 4.1 插入和删除操作 4.2 随机访问操作 5. 内存消耗 5.1 ArrayList的内存消耗 5.2 LinkedList的内存消耗 6. 适用场景 6.1 ArrayLi…

C#数据结构

C#数据结构 常见结构 1、集合 2、线性结构 3、树形结构 4、图形结构 Array/ArrayList/List 特点:内存上连续存储,节约空间,可以索引访问,读取快,增删慢 using System; namespace ArrayApplication {class MyAr…

Python:Jupyter

Jupyter是一个开源的交互式计算环境,由Fernando Perez和Brian Granger于2014年创立。它提供了一种方便的方式来展示、共享和探索数据,并且可以与多种编程语言和数据格式进行交互。Jupyter的历史可以追溯到2001年,当时Fernando Perez正在使用P…

将mjpg格式数转化成opencv Mat格式

该博客可以解决如下两个问题: 1、将mjpg格式数据转化成opencv Mat格式 2、v4l2_buffer 格式获取的mjpg格式数据转换成Mat格式。 要将 MJPEG 格式的数据转换为 OpenCV 的 Mat 格式,您可以使用 imdecode 函数。imdecode 函数可以将图像数据解码为 Mat 对象…

基于SSM的图书馆预约座位系统的设计与实现(部署+源码+LW)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SSM的图书馆预约座位…

js数组方法笔记

1.push() 在数组最后一位添加一个或多个元素,返回值为新的数组长度 var arr [1, 2, "c"];var rel arr.push("A", "B");console.log(arr); // [1, 2, "c", "A", "B"]console.log(rel); // 5 (数组长…

为什么选择计算机?大数据时代学习计算机的价值探讨

还记得当初自己为什么选择计算机? 计算机是在90年代兴起的专业,那时候的年轻人有驾照、懂外语、懂计算机是很时髦的事情! 当初你问我为什么选择计算机,我笑着回答:“因为我梦想成为神奇的码农!我想像编织魔法一样编写程序,创造出炫酷的虚拟世界!”谁知道,我刚入门的…

如何安装docker

安装Docker的步骤取决于您使用的操作系统。以下是常见操作系统上安装Docker的基本步骤: 对于Linux: 更新软件包索引: sudo apt-get update安装允许apt通过HTTPS使用仓库的包: sudo apt-get install apt-transport-https ca-certificates cur…

OpenCV开发:MacOS源码编译opencv,生成支持java、python、c++各版本依赖库

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它为开发者提供了丰富的工具和函数,用于处理图像和视频数据,以及执行各种计算机视觉任务。 以下是 OpenCV 的一些主要特点和功能&#xff…

Java实现订单超时未支付自动取消的8种方法总结

Java实现订单超时未支付自动取消的8种方法总结 定时轮询 数据库定时轮询方式,实现思路比较简单。启动一个定时任务,每隔一定时间扫描订单表,查询到超时订单就取消。优点:实现简单。缺点:轮询时间间隔不好确定&#x…

解决spa页面首屏加载慢的方式笔记

1.减少入口文件的体积 路由懒加载:在需要的时候进行加载,按需加载 前提:进行懒加载的子模块需要是一个单独的文件,所以要实现懒加载,就得先将进行懒加载的子模块(子组件)分离出来 vue router 支…

微服务Redis-Session共享登录状态

一、背景 随着项目越来越大,需要将多个服务拆分成微服务,使代码看起来不要过于臃肿,庞大。微服务之间通常采取feign交互,为了保证不同微服务之间增加授权校验,需要增加Spring Security登录验证,为了多个服务…

关于MSSQL存储过程的功能和用法

MSSQL存储过程是一种在Microsoft SQL Server数据库中存储和执行SQL代码的数据库对象。它可以用于数据处理和计算、数据库管理、事务处理以及实现安全性等多种功能。 以下是MSSQL存储过程的主要功能和用法: 数据处理和计算:可以使用MSSQL存储过程进行数…

#投屏,数据传输,局域网,远程,视频分享方式

步骤: 打开蓝牙配对连接 手机与电脑: 手机主动连接不上。电脑却可以连接手机。 连接上了,手机却不能向电脑传输文件,电脑可以向手机传输文件。 手机不能发送文件,很奇怪。但是电脑却可以向手机发送文件。 而且新老…

常用网安渗透工具及命令(扫目录、解密爆破、漏洞信息搜索)

目录 dirsearch: dirmap: 输入目标 文件读取 ciphey(很强的一个自动解密工具): john(破解密码): whatweb指纹识别: searchsploit: 例1: 例2: 例3&…