跳到主要内容

5.7.2. Multi-Time Aggregation Packets (MTAPs) (多时刻聚合包)

5.7.2. Multi-Time Aggregation Packets (MTAPs) (多时刻聚合包)

MTAP 的 NAL 单元负载由 16 位无符号解码顺序号基 DONB (网络字节序) 与一个或多个多时刻聚合单元组成, 见图 9。DONB 必须 (MUST) 取值为 MTAP 所含 NAL 单元在 NAL 单元解码顺序中第一个单元的 DON。

说明性注: 解码顺序中的第一个 NAL 单元未必是 MTAP 中封装顺序的第一个。

 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 base | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| multi-time aggregation units |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 9. MTAP 的 NAL 单元负载格式

本规范定义两种不同的多时刻聚合单元。二者均由后续 NAL 单元的 16 位无符号大小信息 (网络字节序), 8 位无符号解码顺序号差 DOND, 以及该 NAL 单元的 n 位时间戳偏移 TS offset (网络字节序) 组成, 其中 n 可为 16 或 24。MTAP16 与 MTAP24 之间的选择取决于应用: 时间戳偏移越大, MTAP 越灵活, 开销也越高。

MTAP16 与 MTAP24 的多时刻聚合单元结构分别见图 10 与图 11。聚合单元在包内的起止位置不要求位于 32 位字边界。多时刻聚合单元所含 NAL 单元的 DON 等于 (DONB + DOND) % 65536, % 为取模。本备忘录不规定 MTAP 内 NAL 单元的排列顺序, 但多数情况下应该 (SHOULD) 使用 NAL 单元解码顺序。

时间戳偏移字段必须 (MUST) 按下式设置: 若 NALU-time 大于或等于包的 RTP 时间戳, 则偏移等于 (该 NAL 单元的 NALU-time - 包的 RTP 时间戳)。若 NALU-time 小于包的 RTP 时间戳, 则偏移等于 NALU-time + (2^32 - 包的 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: NAL unit size | DOND | TS offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TS offset | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NAL unit |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 10. MTAP16 的多时刻聚合单元

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: NAL unit size | DOND | TS offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TS offset | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| NAL unit |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 11. MTAP24 的多时刻聚合单元

对 MTAP 中 "最早" 的多时刻聚合单元, 时间戳偏移必须 (MUST) 为零。故 MTAP 自身的 RTP 时间戳与最早 NALU-time 相同。

说明性注: "最早" 的多时刻聚合单元是指: 若各聚合单元中的 NAL 单元用单 NAL 单元包封装, 则其在扩展 RTP 时间戳意义下具有最小值者。扩展时间戳具有超过 32 位, 可计数时间戳字段回绕, 从而在回绕时仍能判定最小值。该 "最早" 聚合单元未必是 MTAP 中封装顺序的第一个。"最早" NAL 单元也未必是解码顺序中的第一个。

图 12 给出含 MTAP16 的 RTP 包示例, 内含两个多时刻聚合单元, 标为 1 与 2。

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RTP Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MTAP16 NAL HDR | decoding order number base | NALU 1 Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NALU 1 Size | NALU 1 DOND | NALU 1 TS offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NALU 1 HDR | NALU 1 DATA |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
: :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | NALU 2 SIZE | NALU 2 DOND |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NALU 2 TS offset | NALU 2 HDR | NALU 2 DATA |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
: :
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :...OPTIONAL RTP padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 12. 含两个多时刻聚合单元的 MTAP16 的 RTP 包示例

图 13 给出含 MTAP24 的 RTP 包示例, 两个多时刻聚合单元标为 1 与 2。

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RTP Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MTAP24 NAL HDR | decoding order number base | NALU 1 Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NALU 1 Size | NALU 1 DOND | NALU 1 TS offs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|NALU 1 TS offs | NALU 1 HDR | NALU 1 DATA |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
: :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | NALU 2 SIZE | NALU 2 DOND |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NALU 2 TS offset | NALU 2 HDR |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NALU 2 DATA |
: :
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :...OPTIONAL RTP padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 13. 含两个多时刻聚合单元的 MTAP24 的 RTP 包示例