5.7. Aggregation Packets (聚合包)
5.7. Aggregation Packets (聚合包)
聚合包是本负载规范中的 NAL 单元聚合方案。引入该方案是为了反映两类主要目标网络的 MTU 差异悬殊: 有线 IP 网络 (MTU 常受以太网 MTU 限制, 约 1500 字节) 与基于 IP 或非 IP (例如 ITU-T H.324/M) 的无线通信系统 (首选传输单元大小为 254 字节或更小)。为避免两类环境之间的媒体转码及不期望的分包开销, 引入 NAL 单元聚合方案。
本规范定义两类聚合包:
- 单时刻聚合包 (Single-time aggregation packet, STAP): 聚合具有相同 NALU-time 的 NAL 单元。定义两种 STAP, 一种不含 DON (STAP-A), 另一种含 DON (STAP-B)。
- 多时刻聚合包 (Multi-time aggregation packet, MTAP): 聚合 NALU-time 可能不同的 NAL 单元。定义两种 MTAP, 以 NAL 单元时间戳偏移长度区分。
待承载于聚合包中的每个 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 负载格式
MTAP 与 STAP 共用以下分包规则:
- RTP 时间戳必须 (MUST) 设为待聚合的所有 NAL 单元之 NALU-time 中最早者。
- NAL 单元类型八位组中的类型字段必须 (MUST) 设为表 4 所示适当值。
- 若所有被聚合 NAL 单元的 F 位均为零, 则 F 位必须 (MUST) 清零; 否则必须 (MUST) 置位。
- NRI 的值必须 (MUST) 为聚合包中所载各 NAL 单元的 NRI 之最大者。
表 4. STAP 与 MTAP 的类型字段
| 类型 | 包 | 时间戳偏移字段长度 (比特) | 是否存在 DON 相关字段 (DON, DONB, DOND) |
|---|---|---|---|
| 24 | STAP-A | 0 | 否 |
| 25 | STAP-B | 0 | 是 |
| 26 | MTAP16 | 16 | 是 |
| 27 | MTAP24 | 24 | 是 |
RTP 头中的标记位设为: 若聚合包中最后一个 NAL 单元单独用 RTP 包传输时其标记位应有的值。
聚合包的负载由一个或多个聚合单元组成。四种聚合单元类型见第 5.7.1 与 5.7.2 节。聚合包可承载任意多个聚合单元; 但聚合包中数据总量显然必须 (MUST) 能装入 IP 包, 且大小应该 (SHOULD) 使所得 IP 包小于 MTU。聚合包必须 (MUST NOT) 包含第 5.8 节规定的分片单元。聚合包必须 (MUST NOT) 嵌套, 即聚合包内必须 (MUST NOT) 再含另一聚合包。