📄 rtp_rfc3984_h264_over_rtp_cn.txt
字号:
对于映射其他的nal_unit_types到NRI值,以下的例子可以使用并且在某些环境有效[13].其它的映射也可以,依赖于应用以及使用的H.264/AVC Annex A profile.
注释: 在某些profile中数据分区不可用,即 , 在Main或Baseline profiles. 因此, nal单元类型2, 3,4 只出现在视频流符合数据分区被允许的profile情况下,不会出现在符合MAIN/Baseline profile的流中。
Table 2. 编码片和主编码参考图像数据分区的编码片的NRI值的例子
NAL Unit Type Content of NAL unit NRI (binary)
----------------------------------------------------------------
1 non-IDR coded slice 10
2 Coded slice data partition A 10
3 Coded slice data partition B 01
4 Coded slice data partition C 01
注释: 像以前提起的, 非参考图像NRI值是00.
H.264编码器应该设置冗余编码参考图像的编码片和编码片分区NAL单元的NRI值为01 (二进制格式).
对于NAL单元类型24~29的NRI的定义在本文5.7,5.8给出。
对于nal_unit_type范围在13到23的NAL单元的NRI值没有推荐的值,因为这些值保留给ITU-T,ISO/IEC. 对于nal_unit_type为0或30,31的NAL单元的NRI值也没有推荐的值,因为这些值的语义本文没有指定。
5.4. 打包方式
本文指定三种打包方式:
o 单NAL单元方式
o 非交错方式
o 交错方式
单NAL单元方式目标是常规的系统,该系统兼容ITU-T H.241 [15] (12.1). 非交错方式目标是常规系统,可以不符合ITU-T H.241建议.在非交错方式, NAL单元按照NAL单元解码顺序传送。交错模式目标是不要求非常低端到端延迟的系统。
交错方式允许传送NAL单元不按照NAL单元解码顺序。
使用的打包方式可以通过OPTIONAL packetization-mode MIME参数的值指定或外部手段。使用的打包方式控制那个NAL单元类型在RTP荷载中允许。表3 总结对每个打包方式允许的NAL单元类型。有些NAL单元类型值(在表3中指示为没有定义)保留为将来扩展. 那些类型的NAL单元不应该被发送者发送,接受者必须忽略他们。例如:1-23, 相关的包类型"NAL unit",允许出现在 "单NAL单元方式" 和"非交错方式", 不允许在"交错方式".
打包方式在第六节更详细解释。
表 3. 每个打包方式允许的NAL单元类型总结(yes = 允许, no = 不允许, ig = 忽略)
Type Packet Single NAL Non-Interleaved Interleaved
Unit Mode Mode Mode
-------------------------------------------------------------
0 undefined ig ig ig
1-23 NAL unit yes yes no
24 STAP-A no yes no
25 STAP-B no no yes
26 MTAP16 no no yes
27 MTAP24 no no yes
28 FU-A no yes yes
29 FU-B no no yes
30-31 undefined ig ig ig
5.5. 解码顺序号(DON)
在交错打包方式, NAL单元的传输顺序允许和NAL单元的解码顺序不同。解码顺序号(DON)是荷载结构中的一个域或一个获得变量指示NAL单元的解码顺序。 不按解码顺序传输的例子和原理以及DON的使用见13节。
传输和解码顺序的耦合由OPTIONAL sprop-interleaving-depth MIME参数控制,见下。当OPTIONAL sprop-interleaving-depth MIME 参数的值等于0 (明确或缺省) 或者外部手段不允许传输NAL单元顺序不同于他们的解码顺序, NAL单元的传输顺序必须和他们的解码顺序一致。当OPTIONAL sprop-interleaving-depth MIME参数的值大于0或者传输NAL单元与解码序号不一致通过外部手段被允许时,
o 在MTAP16/MTAP24中的NAL单元顺序不要求是NAL单元的解码顺序
o 在两个连续包中的STAP-B, MTAP,FU解嵌套产生的NAL单元序号不要求是NAL单元解码序号。
用于单NAL单元包 STAP-A和FU-A的RTP荷载结构不包含DON. STAP-B,FU-B结构包含DON, MTAP结构允许推导DON象5.7.2指定的一样.
注释:档FU-A出现在交错方式,后边总跟一个FU-B, 他设置自己的DON.
注释: 一个传输器想封装单个NAL单元每个包并且传输包不按照他们的解码顺序,可以使用STAP-B包类型。
在单个NAL单元打包方式, NAL单元的传输顺序,由RTP顺序号确定, 必须和他们的NAL单元解码序号一致。在非交错打包方式中, 在单NAL单元包,STAP-A,FU-A中NAL单元的传输顺序必须和他们的NAL单元解码顺序一致.在一个STAP中的NAL单元必须按照他们的NAL单元解码顺序出现。因此,解码顺序首先由STAP隐含顺序提供, 第二通过RTP序号提供(对于STAPs, FUs, 单个NAL unit包之间的)。
对于运送在STAP-B, MTAP以及FU-B开始的一些列分片单元中的NAL单元的DON值的信令在5.7.1, 5.7.2, 指定5.8。传输顺序中的NAL单元的第一个DON值可以设置成任何值,DON值的范围是0到65535。到达最大值后, DON的值回绕到0.
包含在STAP-B, MTAP,或FU-B开始的一系列分片单元中的两个NAL单元的解码顺序按照如下确定:
DON(i)是索引为i传输顺序的解码顺序号. 函数don_diff(m,n)定义如下:
If DON(m) == DON(n), don_diff(m,n) = 0
If (DON(m) < DON(n) and DON(n) - DON(m) < 32768),
don_diff(m,n) = DON(n) - DON(m)
If (DON(m) > DON(n) and DON(m) - DON(n) >= 32768),
don_diff(m,n) = 65536 - DON(m) + DON(n)
If (DON(m) < DON(n) and DON(n) - DON(m) >= 32768),
don_diff(m,n) = - (DON(m) + 65536 - DON(n))
If (DON(m) > DON(n) and DON(m) - DON(n) < 32768),
don_diff(m,n) = - (DON(m) - DON(n))
don_diff(m,n)正值指示具有传输顺序n的NAL单元解码顺序跟在具有传输顺序m的NAL单元后面。 don_diff(m,n)等于0指示NAL单元解码顺序号可以按照任何NAL单元优先。don_diff(m,n)的负值指示索引为n的NAL单元解码序号先于索引为m的NAL单元。
DON相关域的值(DON, DONB, and DOND; 5.7)必须使得上面指定的DON的值确定的解码器顺序号符合NAL单元解码序号。如果两个NAL解码单元顺序的NAL单元交换,新的顺序号不符合NAL单元解码顺序,NAL单元不可以有相同的DON值. 如果在一个NAL单元流中两个连续NAL单元的序号交换并且新的序号仍符合NAL单元解码顺序号,NAL解码单元可以有相同的DON值。例如:当使用的视频编码profile允许任意分片顺序, 一个编码图像的所有编码片的NAL单元可以有相同的DON值。因此,相同DON值的 NAL单元可以按照任何顺序解码,有不同DON值的NAL单元应该按照上面指定的顺序传递给解码器。当两个连续的NAL单元解码顺序的NAL单元有不同的DON值, 第二个NAL单元的DON应该是第一个NAL单元的DON值加1。
解包过程恢复NAL单元解码的例子在第7部分给出。
注: 接收者不应该预测两个解码顺序号连续的NAL的DON值的绝对差等于1,甚至在没有错误的传输过程。没有要求增加1,就像关联DON的值到NAL单元的时间一样, 不可能知道所有NAL单元是否分发给接收者。例如:一个网关可以不转发非引用的编码的NAL片或SEI NAL 单元,当需要转发的网络带宽不足时。;另外的例子:现场广播被预先编码的内容不时的打断,如广告。预先编码的第一个内帧图像事先传送使得接收端准备可用。当传送第一个内帧时,发送者不能精确知道在解码顺序后的第一个内帧前,有多少NAL单元被编码。因此, 预编码片断的第一个内帧的DON值不得不估算,当他们传送时,因此DON中可能产生空隙。
5.6. 单个NAL单元包
定义在此的单个NAL单元包必须只包含一个类型定义在[1]中的NAL单元。这意味聚合包和分片单元不可以用在单个NAL单元包中。一个封装单个NAL单元包到RTP的NAL单元流的RTP序号必须符合NAL单元的解码顺序。单个NAL单元包的结构显示在图2。
注: NAL单元的第一字节和RTP荷载头第一个字节重合。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|F|NRI| type | |
+-+-+-+-+-+-+-+-+ |
| |
| Bytes 2..n of a Single NAL unit |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :...OPTIONAL RTP padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2. 单个NAL单元包的RTP荷载格式。
5.7. 聚合包
聚合包是本荷载规范的NAL单元聚合安排。本计划的引入是反映两个主要目标网络差异巨大的MTU:有线IP网络(MTU 通常被以太网的MTU限制; 大约1500 字节), 基于无线通信系统的IP或非IP (ITU-T H.324/M)网络,它的优先传输最大单元是254或更少。为了阻止连个世界媒体的转换以及避免不必要的打包负担,引入聚合单元安排。
本规范定义了两类聚合包:
o 单时间聚合包(STAP): 聚合相同NALU时间的NAL单元。两类STAP被定义, 一类不包括DON (STAP-A)另一类包括DON (STAP-B).
o 多时间聚合包(MTAP): 聚合具有差异NALU时间的NAL单元. 两个MTAP被定义, 差别在 NAL单元时戳位移长度不同。
词语NALU-时间被定义成如果NAL单元被传输他自己的RTP包中时RTP的时戳。
运送在一个聚合包中的每个NAL单元封装在一个聚合单元中。参见下面四个不同聚合单元和他们的特性。
聚合包的RTP荷载格式的结构见图3。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|F|NRI| type | |
+-+-+-+-+-+-+-+-+ |
| |
| one or more aggregation units |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :...OPTIONAL RTP padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图 3. 聚合包的RTP荷载格式。
MTAPs,STAPs公用以下打包规则:RTP时戳必须设置为被聚合NAL单元中最早NALU时间。NAL单元类型的类型域必须被设置成适当的值,像表4描述的一样.如果聚合NAL单元的F位是0,F位必须清除,否则,则必须被设置。 NRI的值必须是运送在聚合包中NAL单元的最大值。
表 4. STAPs和MTAPs的类型域
Type Packet 时戳位移域长度(位) DON相关的域(DON, DONB, DOND)是否存在
--------------------------------------------------------
24 STAP-A 0 no
25 STAP-B 0 yes
26 MTAP16 16 yes
27 MTAP24 24 yes
RTP头的marker位设置为聚合包中最后NAL单元如果单独封装在RTP传输中对应Marker位的值。
聚合包的荷载由一个或多个聚合单元组成。见5.7.1,5.7.2四个不同类型的聚合单元。一个包聚合包可以运送必要多的聚合单元; 但是, 聚合包中整个数据显然必须适合于一个IP包,并且大小应该选择使得结果的IP包比MTU小。一个聚合包不可以包含5.8中指定的分片单元。聚合包不可以嵌套;即,一个聚合包包含另一个聚合包。
5.7.1. 单时间聚合包
单时刻聚合包(STAP)应该用于当聚合在一起的NAL单元共享相同的NALU时刻。STAP-A荷载不包括DON,至少包含一个单时刻聚合单元见图4. STAP-B荷载包含一个16位的无符号解码顺序号(DON) (网络字节序)紧跟至少一个单时刻聚合单元。见图5.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: |
+-+-+-+-+-+-+-+-+ |
| |
| single-time aggregation units |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图 4. STAP-A荷载格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: decoding order number (DON) | |
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -