发广告的网站/全球搜索引擎网站

发广告的网站,全球搜索引擎网站,cdr做网站流程,在哪能学到网站建设一、引言 RTP封装H.264时,RTP对NALU Header的nal_unit_type附加了扩展含义。 由《音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介》可以知道,nal_unit…

一、引言

RTP封装H.264时,RTP对NALU Header的nal_unit_type附加了扩展含义。

由《音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介》可以知道,nal_unit_type表示NALU的类型,在H.264官方文档《T-REC-H.264-202108-I!!PDF-E.pdf》第65页定义为:

二、NAL Unit Type

在RTP封包中,nal_unit_type被附加了扩展含义。根据《RFC 6184》第13页:

可以看到值为1 - 23的nal_unit_type为原H.264中规定的类型,24 - 31为RTP扩展的类型。扩展的类型包括STAP-A、STAP-B、MTAP16、MTAP24、FU-A、FU-B。

三、Decoding Order Number (DON)

根据《RFC 6184》第17页,在interleaved packetization mode(交错分组模式)中,允许NAL单元的传输顺序与NAL单元的解码顺序不同。Decoding Order Number(解码顺序号 ,DON)是有效载荷结构或派生变量中的一个字段,表示NAL单元的解码顺序。传输和解码顺序的耦合由可选的sprop-interleaving-depth媒体类型参数控制,具体如下:

当可选的sprop-interleaving-depth媒体类型参数的值等于 0(显式或默认值)时,NAL单元的传输顺序必须与 NAL 单元的解码顺序一致;当可选的sprop-interleaving-depth媒体类型参数的值大于0 时:MTAP16和MTAP24中NAL单元的顺序不需要是NAL单元解码顺序,通过在两个连续数据包中去包STAP-B、MTAP和FU生成的NAL单元的顺序不需要是NAL单元解码顺序:

四、Single-time aggregation packet(STAP)

根据《RFC 6184》第22页,当 NAL单元聚合在一起且共享相同的NALU时间时,应使用单时聚合数据包(STAP,Single-time aggregation packet

(一)STAP-A

STAP-A(STAP type A)的有效载荷不包括DON,至少由一个single-time aggregation units(单时聚合单元)组成。如下图所示

single-time aggregation units(单时聚合单元)由 16 位无符号大小信息(按网络字节顺序排列)组成,以字节为单位表示后面NAL单元的大小(不包括这两个八位位组,但包括 NAL单元的NAL 单元类型八位位组),后面是NAL单元本身,包括其 NAL 单元类型字节。单时聚合单元在 RTP 有效载荷内按字节对齐,但不一定按 32 位字边界对齐。下图显示了单时聚合单元的结构:

下图展示了一个包含 STAP-A 的 RTP 数据包示例。STAP 包含两个单时聚合单元,在图中分别标为1和2:

(二)STAP-B

STAP-B(STAP type B)的有效载荷包括一个16位无符号解码顺序号 (DON)(按网络字节顺序排列)和至少一个single-time aggregation units(单时聚合单元):

DON 字段按传输顺序指定 STAP-B 中第一个 NAL 单元的DON值。对于 STAP-B 中按出现顺序连续出现的每个 NAL 单元,DON 值 =(STAP-B中前一个NAL单元的DON 值 + 1)% 65536,其中“%”表示模乘运算。

下图展示了一个包含 STAP-B 的 RTP 数据包示例。STAP 包含两个单时聚合单元,在图中分别标为 1 和 2:

五、Multi-Time Aggregation Packet(MTAP)

MTAP(Multi-Time Aggregation Packet,多时聚合包) 的NAL单元有效载荷包括一个16位无符号解码顺序号基 (DONB)(按网络字节顺序排列)和一个或多个多时间聚合单元,如下图所示。DONB必须包含MTAP NAL单元解码顺序中第一个NAL单元的DON值。说明:NAL 单元解码顺序中的第一个 NAL 单元不一定是 MTAP 中 NAL 单元封装顺序中的第一个 NAL 单元:

《RFC 6184》定义了两种不同的多时间聚合单元。它们都由以下 NAL 单元的 16 位无符号大小信息(按网络字节顺序)、8 位无符号解码顺序号差值(DOND)和该 NAL 单元的 n 位时间戳偏移(TS 偏移)(按网络字节顺序)组成,其中 n 可以是 16 位或 24 位。不同 MTAP 类型(MTAP16 和 MTAP24)之间的选择取决于应用:时间戳偏移越大,MTAP 的灵活性越高,但开销也越大。

MTAP16的多时间聚合单元结构如下图所示:

MTAP24的多时间聚合单元结构如下图所示:

数据包内聚合单元的起始或终止位置不要求在 32 位字边界上。多时间聚合单元中包含的 NAL 单元的 DON 等于 (DONB + DOND) % 65536,其中 % 表示取模运算。本备忘录未说明 MTAP 中的 NAL 单元如何排序,但在大多数情况下,应使用 NAL 单元解码顺序。

时间戳偏移字段必须设置为等于以下公式的值:如果 NALU 时间大于或等于数据包的 RTP 时间戳,则时间戳偏移 = (NAL 单元的 NALU 时间 - 数据包的 RTP 时间戳)。
 如果 NALU 时间小于数据包的 RTP 时间戳,则时间戳偏移等于 NALU 时间 + (2^32 - 数据包的 RTP 时间戳)。

对于 MTAP 中的 “最早 ”多时间聚合单元,时间戳偏移必须为零。因此,MTAP 本身的 RTP 时间戳与最早的 NALU 时间相同。

参考说明:“最早 ”的多时间聚合单元是指如果聚合单元中包含的 NAL 单元封装在单个 NAL 单元数据包中,在 MTAP 的所有聚合单元中具有最小扩展 RTP 时间戳的单元。扩展时间戳是一种时间戳,它的位数超过 32 位,并能计算时间戳字段的缠绕,因此能确定时间戳缠绕时的最小值。这种 “最早 ”的聚合单元可能不是 MTAP 中聚合单元封装顺序中的第一个。最早 "的 NAL 单元也不必与 NAL 单元解码顺序中的第一个 NAL 单元相同。

下图展示了一个包含 MTAP16 类型的多时间聚合数据包的 RTP 数据包示例,该数据包包含两个多时间聚合单元,在图中标注为 1 和 2:

下图展示了一个包含 MTAP24 类型的多时间聚合数据包的 RTP 数据包示例,该数据包包含两个多时间聚合单元,在图中标注为 1 和 2:

六、Fragmentation Units (FUs)

根据《RFC 6184》第29页,这种有效载荷类型允许将一个 NAL 单元分割成多个 RTP 数据包。在应用层而不是依靠低层分片(如 IP)这样做有以下优点:

该有效载荷格式能够在 IPv4 网络上传输大于 64 kbytes 的 NAL 单元,而这些 NAL 单元可能存在于预先录制的视频中,尤其是高清格式中(每幅图像的切片数有限制,这导致每幅图像的 NAL 单元数有限制,从而可能产生较大的 NAL 单元)。

分片机制允许对单个 NAL 单元进行分片,并前向纠错。

片段只针对单个 NAL 单元,而不针对任何聚合数据包。一个 NAL 单元的片段由该 NAL 单元的整数个连续八位位组组成。NAL 单元的每个八位字节必须恰好是该 NAL 单元的一个片段的一部分。
 同一 NAL 单元的片段必须以升序 RTP 序列号连续发送(在第一个片段和最后一个片段之间不发送同一 RTP 数据包流中的其他 RTP 数据包)。同样,一个 NAL 单元必须按 RTP 序列号顺序重新组装。

当一个 NAL 单元被分片并在分片单元 (FUs) 内传送时,它被称为分片 NAL 单元。STAP 和 MTAP 不得分片。FU 不得嵌套;也就是说,一个 FU 不得包含另一个 FU。

携带 FU 的 RTP 数据包的 RTP 时间戳被设置为分片 NAL 单元的 NALU 时间。
下图显示了 FU-A 的 RTP 有效载荷格式。FU-A 由一个八位位组的碎片单元指示符(FU indicator)、一个八位位组的碎片单元报头(FU header)和一个碎片单元(fragmentation unit  payload)有效载荷组成:

下图显示了 FU-B 的 RTP 有效载荷格式。FU-B 由一个八位位组的片段单元指示符(FU indicator)、一个八位位组的片段单元头(FU header)、一个解码顺序号(DON)(按网络字节顺序)和一个片段单元有效载荷(FU payload)组成。换句话说,FU-B 的结构与 FU-A 的结构相同,只是多了一个 DON 字段:

在interleaved packetization mode(交错分组模式)中,NAL 单元类型 FU-B 必须用于分片 NAL 单元的第一个分片单元。在任何其他情况下都不得使用 NAL 单元类型 FU-B。换句话说,在交错分组模式下,每个被分片的 NALU 的第一个分片都是 FU-B,然后是一个或多个 FU-A 分片。
 FU 指示符八位位组的格式如下:

FU 指示符八位位组类型字段 28 和 29 的值分别标识 FU-A 和 FU-B。NRI 字段的值必须根据分片 NAL 单元中 NRI 字段的值设置。
 FU 头的格式如下:

其中:

S:占1位。当设置为 1 时,起始位表示分片 NAL 单元的起始位置。当下面的 FU 有效载荷不是片段 NAL 单元有效载荷的开始时,开始位设为 0。

E:占1位。当设置为 1 时,End 位表示分片 NAL 单元的结束,即有效载荷的最后一个字节也是分片 NAL 单元的最后一个字节。当后续 FU 有效载荷不是片段 NAL 单元的最后一个片段时,End 位被置 0。

R:占1位。保留位必须等于 0,且必须被接收器忽略。

Type:占5位。下图中定义的 NAL 单元有效载荷类型:


 说明:FU-Bs 中的 DON 字段允许网关将 NAL 单元分片到 FU-Bs,而无需按照 NAL 单元解码顺序组织传入的 NAL 单元。

片段 NAL 单元不得在一个 FU 中传输;也就是说,在同一个 FU 标头中,开始位和结束位不得同时置 1。
 FU 有效载荷由片段 NAL 单元有效载荷的片段组成,这样,如果连续 FU 的片段单元有效载荷按顺序连接起来,就可以重建片段 NAL 单元的有效载荷。碎片 NAL 单元的 NAL 单元类型八位位组不包含在碎片单元有效载荷中,而是在碎片单元 FU 指示符八位位组的 F 和 NRI 字段以及 FU 标头的类型字段中传达碎片 NAL 单元的 NAL 单元类型八位位组信息。FU 有效载荷可以有任意数量的八位位组,也可以是空的。

说明:空 FU 允许在几乎无损的环境中减少某类发送方的延迟。这些发送方的特点是,他们在 NALU 完全生成之前,也就是在知道 NALU 大小之前,就将 NALU 片段打包。如果不允许使用零长度的 NALU 片段,发送者就必须在发送当前片段之前生成至少一个比特的下一个片段数据。由于 H.264 的特点,有时几个宏块占用的比特为零,这种情况并不可取,而且会增加延迟。不过,在使用零长度 NALU 片段(可能)时,应仔细权衡因传输时使用额外数据包而增加的至少部分 NALU 丢失风险。

 如果一个分片单元丢失,接收方应按照传输顺序丢弃与同一分片 NAL 单元相对应的所有后续分片单元。端点或 MANE 中的接收方可将 NAL 单元的前 n 1 个片段聚合为一个(不完整的)NAL 单元,即使未收到该 NAL 单元的 n 个片段。在这种情况下,NAL 单元的 forbidden_zero_bit 必须设为 1,以表示语法违规。

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

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

相关文章

学习记录:初次学习使用transformers进行大模型微调

初次使用transformers进行大模型微调 环境: 电脑配置: 笔记本电脑:I5(6核12线程) 16G RTX3070(8G显存) 需要自行解决科学上网 Python环境: python版本:3.8.8 大模型&#xff1a…

【Java学习】Object类与接口

面向对象系列五 一、引用 1.自调传自与this类型 2.类变量引用 3.重写时的发生 二、Object类 1.toString 2.equals 3.hashCode 4.clone 三、排序规则接口 1.Comparable 2.Comparator 一、引用 1.自调传自与this类型 似复刻变量调用里面的非静态方法时,都…

OpenEuler学习笔记(三十五):搭建代码托管服务器

以下是主流的代码托管软件分类及推荐,涵盖自托管和云端方案,您可根据团队规模、功能需求及资源情况选择: 一、自托管代码托管平台(可私有部署) 1. GitLab 简介: 功能全面的 DevOps 平台,支持代码托管、C…

Transformer 架构 理解

大家读完觉得有帮助记得关注和点赞!!! Transformer 架构:encoder/decoder 内部细节。 的介绍,说明 Transformer 架构相比当时主流的 RNN/CNN 架构的创新之处: 在 transformer 之前,最先进的架构…

事务的4个特性和4个隔离级别

事务的4个特性和4个隔离级别 1. 什么是事务2. 事务的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔离性 3. 事务的创建4. 事务并发时出现的问题4.1 DIRTY READ 脏读4.2 NON - REPEATABLR READ 不可重复读4.3 PHANTOM READ 幻读 5. 事务的隔离级别5.1 READ UNCOMMITTED 读未提交…

LeetCode热题100- 字符串解码【JavaScript讲解】

古语有云:“事以密成,语以泄败”! 关于字符串解码: 题目:题解:js代码:代码中遇到的方法:repeat方法:为什么这里不用this.strstack.push(result)? 题目&#x…

水利工程安全包括哪几个方面

水利工程安全培训的内容主要包括以下几个方面: 基础知识和技能培训 : 法律法规 :学习水利工程相关的安全生产法律法规,了解安全生产标准及规范。 事故案例 :通过分析事故案例,了解事故原因和教训&#x…

浅谈新能源汽车充电桩建设问题分析及解决方案

摘要: 在全球倡导低碳减排的大背景下,新能源成为热门行业在全球范围内得以开展。汽车尾气排放会在一定程度上加重温室效应,并且化石能源的日渐紧缺也迫切对新能源汽车发展提出新要求。现阶段的新能源汽车以电力汽车为主,与燃油汽…

05-1基于vs2022的c语言笔记——运算符

目录 前言 5.运算符和表达式 5-1-1 加减乘除运算符 1.把变量进行加减乘除运算 2.把常量进行加减乘除运算 3.对于比较大的数(往数轴正方向或者负方向),要注意占位符的选取 4.浮点数的加减乘除 5-1-2取余/取模运算符 1.基本规则 2.c语…

0—QT ui界面一览

2025.2.26,感谢gpt4 1.控件盒子 1. Layouts(布局) 布局控件用于组织界面上的控件,确保它们的位置和排列方式合理。 Vertical Layout(垂直布局) :将控件按垂直方向排列。 建议:适…

Apache Doris 索引的全面剖析与使用指南

搞大数据开发的都知道,想要在海量数据里快速查数据,就像在星图里找一颗特定的星星,贼费劲。不过别慌,数据库索引就是咱们的 “定位神器”,能让查询效率直接起飞!就拿 Apache Doris 这个超火的分析型数据库来…

从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)?

本文首发:从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)? 阿里云百炼和火山引擎都推出了免费的 DeepSeek 模型体验额度,今天我和大家一起搭建一个本地的专属 AI 助手。  阿里云百炼为 …

cpp中的继承

一、继承概念 在cpp中,封装、继承、多态是面向对象的三大特性。这里的继承就是允许已经存在的类(也就是基类)的基础上创建新类(派生类或者子类),从而实现代码的复用。 如上图所示,Person是基类&…

【QT】QLinearGradient 线性渐变类简单使用教程

目录 0.简介 1)qtDesigner中 2)实际执行 1.功能详述 3.举一反三的样式 0.简介 QLinearGradient 是 Qt 框架中的一个类,用于定义线性渐变效果(通过样式表设置)。它可以用来填充形状、背景或其他图形元素&#xff0…

网络安全学习-常见web漏洞的渗xxx透以及防护方法

渗XX透测试 弱口令漏洞 漏洞描述 目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。 渗XX透测试 如果不存在验证码,则直接使用相对应的弱口令字典使用burpsuite 进行爆破如果存在验证…

网络安全 机器学习算法 计算机网络安全机制

(一)网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型: 自主访问控制强制访问控制 访问控制措施: 入…

2025网络安全等级测评报告,信息安全风险评估报告(Word模板)

一、概述 1.1工作方法 1.2评估依据 1.3评估范围 1.4评估方法 1.5基本信息 二、资产分析 2.1 信息资产识别概述 2.2 信息资产识别 三、评估说明 3.1无线网络安全检查项目评估 3.2无线网络与系统安全评估 3.3 ip管理与补丁管理 3.4防火墙 四、威胁细类分析 4.1威胁…

Ubuntu22.04系统安装Anaconda、CUDA和CUDNN

之前一直在Windows系统下使用Anaconda和CUDA加速,最近需要复现一个算法,文档里面有Linux系统conda构建环境的教程。 本篇博文参考博文,记录自己安装的过程,便于以后需要。 目录 1.Anaconda1.1 安装包下载1.2 安装软件1.3 更新cond…

微信小程序调用火山方舟(字节跳动火山引擎)中的DeepSeek大模型

一、注册火山引擎账号,创建API Key和model(接入点ID) 1.注册并登陆火山引擎账号,网址为:https://console.volcengine.com/ 2.根据登陆后的页面提示进行实名认证,实名认证后才能创建API Keyt和创建接入点。…

蓝桥杯之日期题

文章目录 1.蓝桥杯必备知识点2. 题型13.需求2 1.蓝桥杯必备知识点 蓝桥杯是一个面向全国高校计算机相关专业学生的学科竞赛,涵盖多个赛道,常见的有软件类(如 C/C 程序设计、Java 软件开发、Python 程序设计)和电子类(…