H266/VVC网络适配层概述
视频编码标准的分层结构
视频数据分层的必要性:
网络类型的多样性、不同的应用场景对视频有不同的需求。
编码标准的分层结构:
为了适应不同网络和应用需求,视频编码数据根据其内容特性被分成若干NAL单元(NAL Unit,NALU),并对NALU的内容特性进行标识。网络只需要根据NALU及其标识就可以优化视频传输性能,不再需要亲自分析视频数据的内容特性。如下图就是典型的分层结构。
H266中NAL的作用机制:
原始图像经过编码(VCL)后,每幅图像变成难以理解的码流片段,每个码流片段内的数据不再具有类似像素表示的形式。NAL根据压缩视频码流的内容特性将其划分成多个数据段,对每个数据段进行分装并对内容特性进行标识,就生成了NALU,将内容特性信息存放在NALU头信息中。
网络适配层单元
NALU的组成:
NALU头 和NALU载荷(原始字节序列载荷,Raw Byte Sequence Payload,RBSP)
H266的NALU头:
长度为固定两字节,反应NALU的内容特征。语法结构如下表。
语法元素 | 编码方式 | 解释 |
---|---|---|
nal_umit_header(){ | – | – |
forbidden_zero_bit | f(1) | 值设置为0 |
nuh_reserved_zero_bit | u(1) | 值设置为0,1预留待未来使用 |
nuh_layer_id | u(6) | 表示NALU对应的层标识号,取值范围0~55,该值在一幅编码图像内的所有VCL NALU应该相同 |
nal_unit_type | u(5) | 表示NALU的类型,即NAL单元中包含的RBSP语法结构的类型,共5比特,分为VCL和non-VCL两类,取值0~31 |
nuh_temporal_id_plus1 | u(3) | NALU所在的时域层的标识号 |
} | – |
H266的NALU类型:
H266的NALU载荷:
RBSP的长度为整数字节,承载视频编码后的比特流片段。
在视频编码过程中输出包含不同内容的压缩数据比特流片段,这些比特流片段称为SODB(String of Data Bits
),SODB为最高有效位在左的存储形式,即字节内的比特按照从左到右、从高到低 的顺序排列,在SODB后添加RBSP尾(rbsp_trailing_bits
)就生成了RBSP,RBSP尾由称为RBSP停止比特的一比特1和其后的零比特或多比特0组成。
RBSP 即整数化的SODB。
RBSP冲突避免处理:
RBSP不能直接作为NALU的载荷,因为在字节流应用环境中0x000001为NALU的起始码,0x000000为结束码。因此,为了避免NALU载荷中的字节流片段与NALU的都起始码、结束码冲突,需要对RBSP字节流进行冲突避免处理。
视频比特流中的NALU
H266使用了图像单元(PU)和接入单元(AU)的概念,每个AU包含同一时刻的一个或多个PU,每个PU包含且仅包含一幅完整图像的编码数据,每个图像编码数据包含一个或多个Slice NALU,即VCL NALU。此外一个PU还可以包含non-VCL NALU,比如各种参数集、SEI等。
AU的顺序及其与CVS的关系:
一个比特流包含一个或多个编码视频序列(CVS),从时间维度看,一个CVS包含一个或多个AU,从层级维度看,一个CVS包含一个或多个编码层视频序列(CLVS)。
PU的顺序及其与AU的关系:
一个AU包含一个或多个按照nuh_layer_id
升序排列的PU。在一个AU中最多可以包含一个AU界定符(AU Delimiter, AUD)NALU。当AU中存在AUD NALU时,其应该为AU的第一个NALU,同时也是AU内第一个PU的第一个NALU。
编码图像和NALU的顺序及其与PU的关系:
一个PU由零个或一个PH NALU和一幅编码图像组成,编码图像包含一个或多个VCL NALU和零个或多个其他non-VCL NALU。
网络适配层单元的应用
NALU是压缩视频数据的基本单元,也是后续视频传输的基本单元。
字节流应用:
要求对NALU的边界进行标识以保证解码端可以对NALU进行识别。在每个NALU前面插入3字节的起始码start_code_prefix_one_3bytes
,其对应的值为0x000001。其语法结构如下。
分组流应用:
视频分组流是网络传输的一种有效方式,当视频NALU作为网络分组的载荷在网络中传输时,不同的网络分组因承载不同特性的NALU而具有不同的重要性,网络可以根据分组重要性优化视频流的服务质量。基于RTP/UDP/IP的实时业务采用典型的分组流传输方式。
RTP分组由RTP头和RTP载荷前后两部分组成,其RTP头的结构如下图。
RTP分组的类型有单NALU分组(一个分组只承载一个NALU)、聚合分组(一个分组承载多个NALU)、分片分组(一个分组只承载一个NALU的一部分)。
参考
JVET输出文档:
https://www.itu.int/wftp3/av-arch/jvet-site/
书籍:
新一代通用视频编码H266/VVC:原理、标准与实现[万帅 霍俊彦 马彦卓 杨付正/著]
备注
本系列博客主要是对《新一代通用视频编码H266/VVC:原理、标准与实现》
的学习笔记。
相关文章:
H266/VVC网络适配层概述
视频编码标准的分层结构 视频数据分层的必要性:网络类型的多样性、不同的应用场景对视频有不同的需求。 编码标准的分层结构:为了适应不同网络和应用需求,视频编码数据根据其内容特性被分成若干NAL单元(NAL Unit,NALU…...
new FormData 同时发送表单 json 以及文件二进制流
需要新增时同时发送表单 json 以及对应的文件即可使用以下方法传参 let formDataParams new FormData(); 首先通过 new FormData() 创建你需要最后发送的表单 接着将你的对象 json 存储,注意使用 new Blob 创建大表单转换成 json 格式。以…...
计算机环境安全
操作系统安全----比如windows,linux 安全标识--实体唯一性 windows---主体:账户,计算机,服务 安全标识符SID-Security Identifier 普通用户SID是1000,管理用SID是500 linux---主体:用户,用户组…...
Activiti7工作流引擎:多租户
一:多租户 表示每个租户之间数据隔离互不影响,互不可见。通常一个租户表示一个系统应用(类似于appid的作用)或者一家公司。 通过数据库级别进行隔离,每个租户对应一个数据库;通过表记录级别进行隔离&…...
Postman实现压力测试
从事软件开发对于压力测试并不陌生,常见的一些压测软件有Apache JMeter LoadRunner Gatling Tsung 等,这些都是一些比较专业的测试软件,对于我的工作来说一般情况下用不到这么专业的测试,有时候需要对一些接口进行压力测试又不想再安装新软件,那么可以使用Postman来实现对…...
爬虫工具(tkinter+scrapy+pyinstaller)
需求介绍输入:关键字文件,每一行数据为一爬取单元。若一行存在多个and关系的关键字 ,则用|隔开处理:爬取访问6个网站的推送,获取推送内容的标题,发布时间,来源,正文第一段࿰…...
MySQL常用sql语句记录
1,创建用户及赋权 -- 创建用户 CREATE USER usernamelocalhost IDENTIFIED BY password;-- 赋予所有权限 GRANT ALL PRIVILEGES ON database_name.* TO usernamelocalhost;-- 赋予特定表的某些权限 GRANT SELECT, INSERT ON table_name TO usernamelocalhost;-- 更…...
2024.1.4力扣每日一题——被列覆盖的最多行数
2024.1.4 题目来源我的题解方法一 回溯位运算优化 题目来源 力扣每日一题;题序:2397 我的题解 方法一 回溯位运算优化 这道题一看就会想到使用回溯法,但是采用回溯法后如何判断有多少行被覆盖,直接计算矩阵时间复杂度较高&…...
Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (一)
本实践教程将教你如何使用 Elasticsearch 构建完整的搜索解决方案。 在本教程中你将学习: 如何对数据集执行全文关键字搜索(可选使用过滤器)如何使用机器学习模型生成、存储和搜索密集向量嵌入如何使用 ELSER 模型生成和搜索稀疏向量如何使用…...
第五讲_css元素显示模式
css元素显示模式 1. 元素的显示模式1.1 块元素1.2 行内元素1.3 行内块元素 2. 元素根据显示模式分类3. 修改元素的显示模式 1. 元素的显示模式 1.1 块元素 块元素的特性: 在页面中独占一行,从上到下排列。默认宽度,撑满父元素。默认高度&a…...
Shell脚本入门实战:探索自动化任务与实用场景
引言 Shell脚本作为一种强大的自动化工具,在现代操作系统中具有广泛的应用。无论是简单的文件操作,还是复杂的系统管理,Shell脚本都能提供高效、快速的解决方案。在本文中,我们将探索Shell脚本的基础知识,并通过实战场…...
【AI视野·今日Sound 声学论文速览 第四十二期】Fri, 5 Jan 2024
AI视野今日CS.Sound 声学论文速览 Fri, 5 Jan 2024 Totally 10 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers PosCUDA: Position based Convolution for Unlearnable Audio Datasets Authors Vignesh Gokul, Shlomo Dubnov深度学习模型需要大量干净的…...
Java中如何使用SQLite数据库
目录 SQLite简介SQLite优势安装 SQLite基本使用Java使用SQLite Springboot使用SQLite1.添加依赖2.配置数据库3.创建实体类 4.创建Repository接口5.创建控制器6.运行应用程序 SQLite简介 SQLite 是一个开源的嵌入式关系数据库,实现了自给自足的、无服务器的、配置无…...
kettle的基本介绍和使用
1、 kettle概述 1.1 什么是kettle Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。 1.2 Kettle核心知识点 1.2.1 Kettle工程存储方式 以XML形式存储以资源库方式存储…...
数据结构第2章 栈和队列
名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 0、思维导图栈和队列1、栈1)特点2࿰…...
Axure鲜花商城网站原型图,网上花店订花O2O本地生活电商平台
作品概况 页面数量:共 30 页 兼容软件:仅支持Axure RP 9/10,非程序软件无源代码 应用领域:鲜花网、花店网站、本地生活电商 作品特色 本作品为「鲜花购物商城」网站模板,高保真高交互,属于O2O本地生活电…...
【docker】centos 使用 Nexus Repository 搭建私有仓库
Nexus Repository 是一种流行的软件仓库管理工具,它可以帮助您搭建私有仓库,以便在内部网络或私有云环境中存储、管理和分发各种软件包和组件。 它常被用于搭建Maven的镜像仓库。本文演示如何用Nexus Repository搭建docker 私有仓库。 使用Nexus Repos…...
RabbitMQ(八)消息的序列化
目录 一、为什么需要消息序列化?二、常用的消息序列化方式1)Java原生序列化(默认)2)JSON格式3)Protobuf 格式4)Avro 格式5)MessagePack 格式 三、总结 RabbitMQ 是一个强大的消息中间…...
23款奔驰GLC260L升级原厂540全景影像 安装效果分享
嗨 今天给大家介绍一台奔驰GLC260L升级原厂360全景影像 新款GLC升级原厂360全景影像 也只需要安装前面 左右三个摄像头 后面的那个还是正常用的,不过不一样的是 升级完成之后会有多了个功能 那就是新款透明底盘,星骏汇小许Xjh15863 左右两边只需要更换后…...
【CSS】文字描边的三种实现方式
目录 1. 可行的几种方式1.1. text-shadow 描边代码优缺点 1.2. text-stroke 描边实现优缺点 1.3. svg 描边实现优缺点 总结 1. 可行的几种方式 text-shadow–webkit-text-strokesvg 1.1. text-shadow 描边 MDN text-shadow 代码 <div class"text stroke">…...
【事务】事务传播级别
Spring事务定义了7种传播机制: PROPAGATION_REQUIRED:默认的Spring事物传播级别,若当前存在事务,则加入该事务,若不存在事务,则新建一个事务。 PAOPAGATION_REQUIRE_NEW:若当前没有事务&#x…...
Android WiFi 连接
Android WiFi 连接 1、设置中WiFi显示2、WiFi 连接流程2.1 获取PrimaryClientModeManager2.2 ClientModeImpl状态机ConnectableState2.3 ISupplicantStaNetworkCallback 回调监听 3、 简要时序图4、原生低层驱动5、关键日志 1、设置中WiFi显示 Android WiFi基础概览 packages/a…...
PLC与上位机PN通讯时,如何防止连接失败?
连接西门子PLC时失败,或者连接不上PLC,你可能需要做以下几点设置才可以。 一般来说每个PLC都有自己的IP地址,如果你的地址与PLC的地址冲突也就是地址重复是连接不上PLC的,如果地址没有冲突,但是不是在一个网段上也会导…...
LDD学习笔记 -- Linux错误码
LDD学习笔记 -- Linux错误码 EACCES(Permission Denied) 13EEXIST(File Exits) 17EINVAL(Invalid Argument) 22ENOENT(No Such File or Directory)ENOMEM(Out of Memory)EIO(Input/Output Error) 5ENOSPC(No space Left on Device)ENOTTY(Not a Typewrite)EPIPE(Broken Pipe)EI…...
华为交换机入门(六):VLAN的配置
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接互通,从而将广播报文限制在一个VLAN内。 VLAN 主要用来解决如何…...
登录验证
目录 会话技术 Cookie Session JWT JWT生成 JWT校验 会话技术 会话 打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求与响应 会话跟踪 一种维护浏览器的方法 服务器需要…...
利用Podman构建基于Fission env/builder的镜像
镜像准备 构建Dockerfile fission的基础环境包括两种:env 以及 builder。如果仅基于code构建function(i.e., 只创建deployachive),仅构建env即可;但如果需要构建sourcearchive,则需要同时创建env和builde…...
php加减乘除函数
目录 第一部分:简单示例 1、加法 2、减法 3、乘法 4、除法 第二部分:官方文档 1、加法 2、减法 3、乘法 4、除法 第一部分:简单示例 1、加法 $result bcadd(1.2, 1.4, 2); echo $result;//2.60 2、减法 $result bcsub(1.6, 1.…...
Go语言学习记录——用正则表达式(regexp包)来校验参数
前言 最近坐毕设ing,简单的一个管理系统。 其中对于用户注册、登录功能,需要进行一些参数校验。 因为之前使用过,因此这里计划使用正则表达式进行校验。但是之前的使用也仅限于使用,因此这次专门进行一次学习,并做此记…...
公司办公电脑文件防泄密系统
电脑文件防泄密系统是一种用于保护企业机密文件的软件系统,它采用一系列的安全技术手段,如数据加密、访问控制、审计跟踪等,来确保企业机密文件不被非法获取、窃取或泄漏。这种系统通常适用于企业、政府机构等需要对重要文件进行保密的机构。…...
网站建设及代运营合同/营销做得好的品牌
xp下由于自己把控制面板--区域和语言选项--区域选项中的“中文”改为了“英文/美国”,所以以中文名字命名的.chm文件就打开了,改为英文名字后正常打开参考:解决XP不能打开CHM文件2006-07-27 13:50如果你的Windows XP不能打开chm格式的文件&am…...
商标注册在哪个部门申请/网站功能优化
一、概述 推荐系统旨在预测用户可能喜欢什么,尤其是当有很多选择时。他们可以明确地向用户提供这些推荐,或者他们可能会在幕后工作,在不给用户选择的情况下选择要显示的内容。 无论哪种方式,“为什么”都很清楚:它们对某些类型的企业至关重要,因为它们可以让用户接触到他…...
股权变更要在工商局网站做吗/优化关键词排名工具
原文 我想在一个for循环中fork_join或者fork_join_none语句实现多线程, 假如我使用经典的方法: for(int index=0;index<14;index++)beginautomatic int idx=index;forkbegin`uvm_do_on(sequence_inst,p_sequencer...
订阅号怎么做微网站/网站seo专员招聘
联想一下,我们不可能只传输一类数据。通常,我们会一边上网,一遍聊QQ,一边听音乐。这么多数据怎么管理?这就要求我们要用到第4层的协议。 第4层协议就是用来区分不同程序,不同服务的网络通信。在TCP/IP中&am…...
如何构建企业网站/地推团队如何收费
python 中的for…else ,while…else和try…else 1. for…else 当且仅当for语句完全执行完后才执行else语句 如果for语句被break中断,则不执行else语句 for i in range(0,5):print(i)if i 3: break else:print("执行else")此时for语句被break中断&…...
用阳寿做交易的网站/百度官方客服平台
缺陷提交 怎么提交缺陷?测试过程中都要注意什么? 第一 缺陷截图 理由: 缺陷可能难以重现,而在你再次验证该缺陷前你并不知道这点,所以养成先对缺陷截图的习惯,这样不管啥时候,你都可以对相关人员…...