8.1. Media Type Registration (媒体类型注册)
8.1. Media Type Registration (媒体类型注册)
ITU-T H.264 | ISO/IEC 14496-10 编解码器的媒体子类型 (media subtype) 已从 IETF 树中分配.
媒体类型名称 (Media Type name): video
媒体子类型名称 (Media subtype name): H264
必需参数 (Required parameters): 无
可选 (OPTIONAL) 参数:
profile-level-id: 对 [1] 中规定的序列参数集 (sequence parameter set) NAL 单元 (NAL unit) 中以下三个字节的 base16 [7] (十六进制) 表示: 1) profile_idc, 2) 本文称为 profile-iop 的一个字节, 由 constraint_set0_flag, constraint_set1_flag, constraint_set2_flag, constraint_set3_flag, constraint_set4_flag, constraint_set5_flag 以及 reserved_zero_2bits 按位重要性顺序组成, 从最高有效位开始, 以及 3) level_idc. 注意, [1] 要求 reserved_zero_2bits 必须等于 0, 但 ITU-T 或 ISO/IEC 将来可能为其规定其他值.
profile-level-id 参数指示默认子档次 (sub-profile), 即可能已用于生成码流或接收方所支持的编码工具子集, 以及码流或接收方所支持的默认级别 (level).
默认子档次由 profile_idc 字节以及 profile-iop 字节中的若干字段共同指示. 根据 profile-iop 字节中各字段取值, 默认子档次可以是一个档次所支持的编码工具集合, 或多个档次的编码工具公共子集, 如 [1] 的 7.4.2.1.1 节所述. 默认级别由 level_idc 字节指示, 并且当 profile_idc 等于 66, 77 或 88 (Baseline, Main 或 Extended profile) 且 level_idc 等于 11 时, 还由 profile-iop 字节的第 4 位 (constraint_set3_flag) 指示. 当 profile_idc 等于 66, 77 或 88 (Baseline, Main 或 Extended profile), level_idc 等于 11, 且 profile-iop 字节的第 4 位 (constraint_set3_flag) 等于 1 时, 默认级别为 Level 1b.
表 5 列出 [1] 附录 A 中定义的所有档次, 并对每个档次给出可表示同一子档次的 profile_idc 与 profile-iop 的可能组合.
表 5. 表示与某一档次所支持的全部编码工具相对应的同一子档次的 profile_idc 与 profile-iop 组合. 下文中, x 可为 0 或 1, 档次名称缩写如下. CB: Constrained Baseline profile, B: Baseline profile, M: Main profile, E: Extended profile, H: High profile, H10: High 10 profile, H42: High 4:2:2 profile, H44: High 4:4:4 Predictive profile, H10I: High 10 Intra profile, H42I: High 4:2:2 Intra profile, H44I: High 4:4:4 Intra profile, 以及 C44I: CAVLC 4:4:4 Intra profile.
| Profile | profile_idc (十六进制) | profile-iop (二进制) |
|---|---|---|
| CB | 42 (B) | x1xx0000 |
| same as | 4D (M) | 1xxx0000 |
| same as | 58 (E) | 11xx0000 |
| B | 42 (B) | x0xx0000 |
| same as | 58 (E) | 10xx0000 |
| M | 4D (M) | 0x0x0000 |
| E | 58 | 00xx0000 |
| H | 64 | 00000000 |
| H10 | 6E | 00000000 |
| H42 | 7A | 00000000 |
| H44 | F4 | 00000000 |
| H10I | 6E | 00010000 |
| H42I | 7A | 00010000 |
| H44I | F4 | 00010000 |
| C44I | 2C | 00010000 |
例如, 上表中 profile_idc 等于 58 (Extended) 且 profile-iop 等于 11xx0000 时, 与 profile_idc 等于 42 (Baseline) 且 profile-iop 等于 x1xx0000 所对应的子档次相同. 注意, profile_idc 与 profile-iop 的其他组合 (未列于表 5) 也可能表示等价于多个档次的编码工具公共子集的子档次. 还要注意, 符合某一档次的解码器也许能够解码符合其他档次的码流.
若使用 profile-level-id 参数指示 NAL 单元流 (NAL unit stream) 的属性, 则表示: 为解码该码流, 解码器必须支持的编码工具最小子集即默认子档次, 解码器必须支持的最低级别即默认级别.
若将 profile-level-id 参数用于能力交换 (capability exchange) 或会话建立, 则表示编解码器对接收与发送均支持的编码工具子集等于默认子档次. 若未出现 max-recv-level, 则 profile-level-id 中的默认级别指示编解码器希望支持的最高级别. 若出现 max-recv-level, 则其指示编解码器对接收所支持的最高级别. 对接收或发送而言, 低于所支持最高级别的所有级别也必须支持.
资料性说明: 能力交换与会话建立过程应提供手段, 分别列出各所支持子档次的能力. 例如, 可采用 SDP Offer/Answer 模型的一次选 N 编解码器选择过程 (见 [8] 第 10.2 节). 一次选 N 编解码器选择过程也可用于提供表示同一子档次的
profile_idc与profile-iop的不同组合. 当表示同一子档次的profile_idc与profile-iop组合很多时, 使用该过程可能导致 SDP 消息相当大. 因此, 接收方应理解表示同一子档次的不同等价profile_idc与profile-iop组合, 并准备好接受使用任一等价组合的提议.
若未出现 profile-level-id, 必须推断为 Baseline profile, Level 1, 无附加约束.
max-recv-level: 当接收方支持的最高级别高于默认级别 (profile-level-id 所指示的级别) 时, 可以使用此参数指示接收方支持的最高级别. max-recv-level 的值为 base16 (十六进制) 表示的两个字节, 位于 [1] 规定的序列参数集 NAL 单元中语法元素 profile_idc 之后: profile-iop (定义同上) 与 level_idc. 若 max-recv-level 的 level_idc 字节等于 11 且 max-recv-level 的 profile-iop 字节第 4 位等于 1, 或 max-recv-level 的 level_idc 字节等于 9 且 max-recv-level 的 profile-iop 字节第 4 位等于 0, 则接收方支持的最高级别为 Level 1b. 否则, 接收方支持的最高级别等于 max-recv-level 的 level_idc 字节除以 10.
若接收方支持的最高级别不高于默认级别, 绝对不能出现 max-recv-level.
max-mbps, max-smbps, max-fs, max-cpb, max-dpb, max-br: 这些参数可以用于信令接收方实现的能力. 这些参数绝对不能用于任何其他目的. profile-level-id 参数或 max-recv-level 参数中所传达的最高级别必须使得接收方完全有能力支持. max-mbps, max-smbps, max-fs, max-cpb, max-dpb, max-br 可以用于指示接收方扩展所信令最高级别所需能力之外的能力, 如下所述.
当集合 (max-mbps, max-smbps, max-fs, max-cpb, max-dpb, max-br) 中有多个参数同时出现时, 接收方必须同时支持所信令的全部能力. 例如, 若同时出现 max-mbps 与 max-br, 则表示支持在所信令最高级别基础上同时扩展帧率与比特率. 即接收方能够解码宏块处理速率最高为 max-mbps (含), 比特率最高为 max-br (含), 编码图像缓冲区 (coded picture buffer) 大小按下文 max-br 参数语义推导, 且其他属性符合 profile-level-id 或 max-recv-level 中所信令的最高级别的 NAL 单元流.
若接收方能支持级别 A 的全部属性, 则 profile-level-id 或 max-recv-level 中所信令的最高级别必须为级别 A (即绝对不能低于级别 A). 换言之, 接收方绝对不能信令 max-mbps, max-fs, max-cpb, max-dpb, max-br 的取值, 使得这些取值合在一起满足比 profile-level-id 或 max-recv-level 中所信令最高级别更高的级别要求.
资料性说明: 当使用可选媒体类型参数信令 NAL 单元流属性时, 不出现
max-mbps,max-smbps,max-fs,max-cpb,max-dpb,max-br, 且profile-level-id的取值必须始终使 NAL 单元流完全符合所规定的档次与级别.
max-mbps: max-mbps 的值为整数, 表示最大宏块处理速率, 单位为每秒宏块数. max-mbps 参数表示接收方能够解码高于 profile-level-id 或 max-recv-level 所传达的最高级别所要求的视频速率.
当信令 max-mbps 时, 接收方必须能够解码符合所信令最高级别的 NAL 单元流, 但 [1] 表 A-1 中针对所信令最高级别的 MaxMBPS 值以 max-mbps 的值替换. max-mbps 的值必须大于或等于 [1] 表 A-1 中针对最高级别给出的 MaxMBPS 值. 发送方可以利用这一信息, 以高于所信令最高级别所示的图像速率发送给定尺寸的图像.
max-smbps: max-smbps 的值为整数, 表示最大静态宏块处理速率, 单位为每秒静态宏块数, 在假设所有宏块均为静态宏块的假想条件下. 当信令 max-smbps 时, [1] 表 A-1 中的 MaxMBPS 值应替换为以下计算结果:
-
若信令了
max-mbps参数, 将变量 MaxMacroblocksPerSecond 设为max-mbps的值. 否则, 将 MaxMacroblocksPerSecond 设为profile-level-id或max-recv-level所传达的所信令最高级别在 [1] 表 A-1 中的 MaxMBPS 值. -
将变量 P_non-static 设为图像 n 中非静态宏块的比例.
-
将变量 P_static 设为图像 n 中静态宏块的比例.
-
编码器应将 [1] 表 A-1 中的 MaxMBPS 值视为等于:
MaxMacroblocksPerSecond * max-smbps / (P_non-static * max-smbps + P_static * MaxMacroblocksPerSecond)
编码器应为每幅图像重新计算该值. max-smbps 的值必须大于或等于显式作为 max-mbps 参数值给出的 MaxMBPS, 或隐含于 [1] 表 A-1 中针对所信令最高级别的 MaxMBPS. 发送方可以利用这一信息, 以高于所信令最高级别所示的图像速率发送给定尺寸的图像.
max-fs: max-fs 的值为整数, 表示最大帧尺寸, 以宏块为单位. max-fs 参数表示接收方能够解码大于 profile-level-id 或 max-recv-level 所传达的最高级别所要求的图像尺寸. 当信令 max-fs 时, 接收方必须能够解码符合所信令最高级别的 NAL 单元流, 但 [1] 表 A-1 中针对所信令最高级别的 MaxFS 值以 max-fs 的值替换. max-fs 的值必须大于或等于 [1] 表 A-1 中针对最高级别给出的 MaxFS 值. 发送方可以利用这一信息, 以低于所信令最高级别所示的比例发送更大图像.
max-cpb: max-cpb 的值为整数, 表示最大编码图像缓冲区大小, 对 VCL HRD 参数以 1000 比特为单位, 对 NAL HRD 参数以 1200 比特为单位. 注意, 此参数不使用 cpbBrVclFactor 与 cpbBrNALFactor 的单位 (见 [1] 表 A-1). max-cpb 参数表示接收方具有多于 profile-level-id 或 max-recv-level 所传达的最高级别所要求的最小编码图像缓冲区内存. 当信令 max-cpb 时, 接收方必须能够解码符合所信令最高级别的 NAL 单元流, 但 [1] 表 A-1 中针对所信令最高级别的 MaxCPB 值以 max-cpb 的值替换 (在需要时考虑 cpbBrVclFactor 与 cpbBrNALFactor). max-cpb 的值 (在需要时考虑 cpbBrVclFactor 与 cpbBrNALFactor 之后) 必须大于或等于 [1] 表 A-1 中针对最高级别给出的 MaxCPB 值. 发送方可以利用这一信息构造比特率变化大于 [1] 表 A-1 中 MaxCPB 值所能达到的编码视频码流.
资料性说明: 编码图像缓冲区用于假想参考解码器 (hypothetical reference decoder, Annex C of H.264). 建议在 H.264 编码器中使用假想参考解码器以验证所产生的码流符合标准并控制输出比特率. 因此, 编码图像缓冲区在概念上独立于接收方中任何其他潜在缓冲区, 包括去交织 (de-interleaving) 与去抖动 (de-jitter) 缓冲区. 解码器不必按 H.264 附录 C 所规定实现编码图像缓冲区; 只要能够解码符合标准的码流, 符合标准的解码器可以采用任意缓冲安排. 因此, 实践中视频解码器的输入缓冲区可以与接收方的去交织及去抖动缓冲区集成.
max-dpb: max-dpb 的值为整数, 表示最大解码图像缓冲区 (decoded picture buffer) 大小, 以 8/3 个宏块为单位. max-dpb 参数表示接收方具有多于 profile-level-id 或 max-recv-level 所传达的最高级别所要求的最小解码图像缓冲区内存. 当信令 max-dpb 时, 接收方必须能够解码符合所信令最高级别的 NAL 单元流, 但 [1] 表 A-1 中针对所信令最高级别的 MaxDpbMbs 值以 max-dpb * 3 / 8 替换. 因此, 信令 max-dpb 的接收方必须能够在解码图像缓冲区中存储以下数量的解码帧、互补场对 (complementary field pairs) 以及非成对场 (non-paired fields):
Min(max-dpb * 3 / 8 / ( PicWidthInMbs * FrameHeightInMbs), 16)
其中 PicWidthInMbs 与 FrameHeightInMbs 定义见 [1].
max-dpb 的值必须大于或等于 MaxDpbMbs * 3 / 8, 其中 MaxDpbMbs 取自 [1] 表 A-1 中针对最高级别的值. 发送方可以利用这一信息构造压缩性能更好的编码视频码流.
资料性说明: 增加此参数主要是为了与 ITU-T Recommendation H.245 中的类似码点配合, 以利于信令网关设计. 解码图像缓冲区存储重建样值. 解码图像缓冲区的大小与 RTP 中使用的缓冲区 (尤其是去交织与去抖动缓冲区) 之间没有关系.
资料性说明: 在本文档所废止的 RFC 3984 中, 此参数的单位为 1024 字节. 本文档将其单位改为 8/3 宏块. 原因是 RFC 3984 引用的 2003 版 H.264 规范与本文档引用的 2010 版 H.264 规范之间的变更, 特别是 H.264 规范表 A-1 因增加先前不支持的色度格式与位深而产生的变更. 此参数语义的变更保持与 RFC 3984 的向后兼容, 并支持 2010 版 H.264 规范中定义的所有档次.
max-br: max-br 的值为整数, 表示最大视频比特率, 对 VCL HRD 参数以每秒 1000 比特为单位, 对 NAL HRD 参数以每秒 1200 比特为单位. 注意, 此参数不使用 cpbBrVclFactor 与 cpbBrNALFactor 的单位 (见 [1] 表 A-1).
max-br 参数表示接收方的视频解码器能够解码高于 profile-level-id 或 max-recv-level 所传达的最高级别所要求的比特率的视频.
当信令 max-br 时, 接收方的视频编解码器必须能够解码符合所信令最高级别的 NAL 单元流, 但对最高级别所规定限值有以下例外:
-
max-br的值 (在需要时考虑cpbBrVclFactor与cpbBrNALFactor) 替换 [1] 表 A-1 中针对最高级别的 MaxBR 值. -
当未出现
max-cpb参数时, 以下公式结果替换 [1] 表 A-1 中的 MaxCPB 值: (所信令级别的 MaxCPB) * max-br / (所信令最高级别的 MaxBR).
例如, 若接收方信令 Main profile Level 1.2 能力且 max-br 等于 1550, 则表示 VCL HRD 参数的最大视频比特率为 1550 kbits/sec, NAL HRD 参数的最大视频比特率为 1860 kbits/sec, CPB 大小为 4036458 比特 (1550000 / 384000 * 1000 * 1000).
max-br 的值 (在需要时考虑 cpbBrVclFactor 与 cpbBrNALFactor) 必须大于或等于 [1] 表 A-1 中针对所信令最高级别给出的 MaxBR 值.
发送方可以利用这一信息发送 H.264 附录 A 级别定义所允许的更高比特率视频, 以改善视频质量.
资料性说明: 增加此参数主要是为了与 ITU-T Recommendation H.245 中的类似码点配合, 以利于信令网关设计. 不能从该参数的值假定网络在任意时刻都能处理此类比特率. 特别是, 不能据此得出在拥塞控制约束下所信令比特率可行的结论.
redundant-pic-cap: 此参数信令接收方实现的能力. 等于 0 时, 表示接收方不尝试使用冗余编码图像 (redundant coded pictures) 来纠正错误解码的主编码图像 (primary coded pictures). 等于 0 时, 接收方不能使用冗余条带 (redundant slices); 因此发送方应避免发送冗余条带以节省带宽. 等于 1 时, 接收方能够解码任意覆盖主解码图像中损坏区域 (至少部分) 的此类冗余条带, 因此发送方可以发送冗余条带. 当参数未出现时, redundant-pic-cap 必须使用值 0. 出现时, redundant-pic-cap 的值必须为 0 或 1.
当同一信令中同时出现 profile-level-id 与 redundant-pic-cap, 且 profile-level-id 所指档次不允许使用冗余编码图像 (例如 Main profile) 时, redundant-pic-cap 的值必须等于 0. 当接收方指示 redundant-pic-cap 等于 0 时, 接收码流不应包含冗余编码图像.
资料性说明: 即使
redundant-pic-cap等于 0, 只要解码器支持允许冗余编码图像的档次 (Baseline, Extended), 解码器仍可忽略冗余编解码图像.
资料性说明: 即使
redundant-pic-cap等于 1, 接收方仍可选择其他错误隐藏 (error concealment) 策略来替代或补充冗余条带的解码.
sprop-parameter-sets: 此参数可以用于传送任意序列与图像参数集 NAL 单元 (本文称为初始参数集 NAL 单元, initial parameter set NAL units), 这些 NAL 单元可置于 NAL 单元流中、按解码顺序位于任何其他 NAL 单元之前. 该参数绝对不能用于在任何能力交换过程中指示编解码器能力. 参数值为逗号分隔 (,) 的 base64 [7] 表示列表, 对应 [1] 第 7.3.2.1 与 7.3.2.2 节规定的参数集 NAL 单元. 注意, 参数集 NAL 单元的字节数通常少于 10, 但图像参数集 NAL 单元可包含数百字节.
资料性说明: 当在 SDP Offer/Answer 模型中提供多种载荷类型且各自带有
sprop-parameter-sets时, 接收方不能假定这些参数集不使用冲突的存储位置 (即相同的参数集标识取值). 因此, 接收方应缓冲所有sprop-parameter-sets, 并将其提供给解码某一载荷类型的解码器实例.
sprop-parameter-sets 必须仅包含符合 profile-level-id 的参数集, 即任一参数集所指示的编码工具子集必须等于默认子档次, 且任一参数集所指示的级别必须等于默认级别.
sprop-level-parameter-sets: 此参数可以用于传送任意序列与图像参数集 NAL 单元 (本文称为初始参数集 NAL 单元), 这些 NAL 单元可置于 NAL 单元流中、按解码顺序位于任何其他 NAL 单元之前, 且与一个或多个不同于默认级别的级别关联. 该参数绝对不能用于在任何能力交换过程中指示编解码器能力.
sprop-level-parameter-sets 参数包含一个或多个不同于默认级别的级别的参数集. 与同一级别关联的所有参数集成簇, 并以三字节字段为前缀, 该三字节语法与 profile-level-id 相同. 这使接收方能够安装某一级别的参数集并丢弃其余. 该三字节字段名为 PLId, 与同一级别关联的所有参数集名为 PSL, 语法与 sprop-parameter-sets 相同. 每个级别的参数集表示为 PLId:PSL 形式, 即 PLId 后接冒号 (:) 与该级别初始参数集 NAL 单元的 base64 [7] 表示. 各对 PLId:PSL 之间也以冒号分隔. 注意, PSL 可包含该级别的多个参数集, 以逗号 (,) 分隔.
每个 PLId 字段所指示的编码工具子集必须等于默认子级别, 且每个 PLId 字段所指示的级别必须不同于默认级别. 每个 PSL 中包含的每个序列参数集 (sequence parameter set) 从 profile_idc 到 level_idc (含) 的三个字节必须等于前面的 PLId.
资料性说明: 此参数允许在 SDP Offer/Answer 中高效地进行级别降级或升级, 并同时带外传送参数集.
use-level-src-parameter-sets: 此参数可以用于指示接收方能力. 取值可以为 0 或 1. 当参数未出现时, 必须推断为 0. 值 0 表示接收方不理解 sprop-level-parameter-sets 参数, 不理解 [9] 第 6.3 节规定的 fmtp 源属性 (source attribute), 会在出现时忽略 sprop-level-parameter-sets, 并会忽略通过 fmtp 源属性传送的 sprop-parameter-sets. 值 1 表示接收方理解 sprop-level-parameter-sets 参数, 理解 [9] 第 6.3 节规定的 fmtp 源属性, 并能够使用包含在 sprop-level-parameter-sets 中或通过 fmtp 源属性传送的 sprop-parameter-sets 中的参数集.
资料性说明: RFC 3984 接收方不理解
sprop-level-parameter-sets,use-level-src-parameter-sets, 或 [9] 第 6.3 节规定的fmtp源属性. 因此, 在 SDP Offer/Answer 中, 作为应答方的 RFC 3984 接收方将简单地忽略提议中出现的sprop-level-parameter-sets以及通过fmtp源属性传送的sprop-parameter-sets, 如 [9] 第 6.3 节所述. 假设所提供载荷类型以低于默认级别的级别被接受. 若所提供载荷类型包含sprop-level-parameter-sets或通过fmtp源属性包含sprop-parameter-sets, 且提议方发现应答方未在应答中包含use-level-src-parameter-sets等于 1, 则提议方知道需要带内 (in-band) 传送参数集.
in-band-parameter-sets: 此参数可以用于指示接收方能力. 取值可以为 0 或 1. 值 1 表示接收方丢弃 sprop-parameter-sets 与 sprop-level-parameter-sets 中的带外参数集; 因此发送方必须带内传送所有参数集. 值 0 表示接收方使用包含在 sprop-parameter-sets 和/或 sprop-level-parameter-sets 中的带外参数集. 但在此情况下, 发送方仍可以选择带内发送参数集. 当 in-band-parameter-sets 等于 1 时, use-level-src-parameter-sets 绝对不能出现或必须等于 0. 当参数未出现时, 未规定此接收方能力, 因此发送方可以仅发送带外参数集, 可以仅发送带内参数集, 或可以同时发送两者.
level-asymmetry-allowed: 此参数可以用于 SDP Offer/Answer, 指示是否允许级别不对称 (level asymmetry), 即在提议方到应答方方向发送的媒体编码级别与应答方到提议方方向的级别不同. 取值可以为 0 或 1. 当参数未出现时, 必须推断为 0. 提议与应答中均为 1 表示允许级别不对称. 提议或应答中任一为 0 表示不允许级别不对称.
若 level-asymmetry-allowed 在提议或应答中等于 0 (或未出现), 则不允许级别不对称. 此情况下, 从提议方到应答方方向使用的级别必须与相反方向使用的级别相同.
packetization-mode: 此参数信令 RTP 载荷类型的属性或接收方实现的能力. 只能指示单一配置点; 因此, 当声明支持多种 packetization-mode 的能力时, 必须使用多个配置点 (RTP 载荷类型).
当 packetization-mode 等于 0 或未出现时, 必须使用单 NAL 模式 (single NAL mode). 此模式用于采用 ITU-T Recommendation H.241 [3] 的标准 (见第 12.1 节). 当 packetization-mode 等于 1 时, 必须使用非交织模式 (non-interleaved mode). 当 packetization-mode 等于 2 时, 必须使用交织模式 (interleaved mode). packetization-mode 的值必须为 0 到 2 (含) 范围内的整数.
sprop-interleaving-depth: 当 packetization-mode 未出现或等于 0 或 1 时, 绝对不能出现此参数. 当 packetization-mode 等于 2 时, 必须出现此参数.
此参数信令 RTP 分组流的属性. 它规定在传输顺序上位于任意 VCL NAL 单元之前、且在解码顺序上位于该 VCL NAL 单元之后的 VCL NAL 单元的最大数量. 因此, 当用于 NAL 单元解码顺序恢复的缓冲区大小至少为 sprop-interleaving-depth + 1 个 VCL NAL 单元时, 保证接收方能够重建 NAL 单元解码顺序.
sprop-interleaving-depth 的值必须为 0 到 32767 (含) 范围内的整数.
sprop-deint-buf-req: 当 packetization-mode 未出现或等于 0 或 1 时, 绝对不能出现. 当 packetization-mode 等于 2 时, 必须出现.
sprop-deint-buf-req 信令 RTP 分组流的去交织缓冲区所需大小. 参数值必须大于或等于第 7.2 节规定的此类去交织缓冲区所需的最大占用 (以字节为单位). 当去交织缓冲区大小至少为 sprop-deint-buf-req 字节时, 保证接收方能够将交织的 NAL 单元去交织为 NAL 单元解码顺序.
sprop-deint-buf-req 的值必须为 0 到 4294967295 (含) 范围内的整数.
资料性说明:
sprop-deint-buf-req仅指示去交织缓冲区所需大小. 当可能出现网络抖动时, 还必须配置适当大小的抖动缓冲区.
deint-buf-cap: 此参数信令接收方实现的能力, 表示接收方可用于重建 NAL 单元解码顺序的去交织缓冲区空间量, 以字节为单位. 接收方能够处理任意 sprop-deint-buf-req 参数值小于或等于此参数的码流.
若参数未出现, 则 deint-buf-cap 必须使用值 0. deint-buf-cap 的值必须为 0 到 4294967295 (含) 范围内的整数.
资料性说明:
deint-buf-cap仅指示接收方去交织缓冲区的最大可能大小. 当可能出现网络抖动时, 还必须配置适当大小的抖动缓冲区.
sprop-init-buf-time: 此参数可以用于信令 RTP 分组流的属性. 若 packetization-mode 等于 0 或 1, 绝对不能出现.
该参数信令接收方在开始解码以从传输顺序恢复 NAL 单元解码顺序之前必须等待的初始缓冲时间. 该参数为 (NAL 单元的解码时间 - NAL 单元的传输时间) 的最大值, 假设传输可靠且瞬时, 传输与解码使用同一时间线, 且在首个分组到达时开始解码.
指定 sprop-init-buf-time 值的示例见下. 某 NAL 单元流按以下交织顺序发送, 数值对应解码时间, 传输顺序从左到右:
0 2 1 3 5 4 6 8 7 ...
假设 NAL 单元以恒定速率传输, 传输时间为:
0 1 2 3 4 5 6 7 8 ...
逐列用传输时间减去解码时间得到以下序列:
0 -1 1 0 -1 1 0 -1 1 ...
因此, 以 NAL 单元传输时间间隔计, 本例中 sprop-init-buf-time 的值为 1. 参数编码为 90 kHz 时钟时钟滴答 (clock ticks) 的非负 base10 整数表示. 若参数未出现, 则未定义初始缓冲时间值. 否则, sprop-init-buf-time 的值必须为 0 到 4294967295 (含) 范围内的整数.
除所信令的 sprop-init-buf-time 外, 接收方还应考虑传输时延抖动缓冲, 包括对混音器、翻译器、网关、代理、流量整形器及其他网元引起的时延抖动的缓冲.
sprop-max-don-diff: 此参数可以用于信令 RTP 分组流的属性. 绝对不能用于信令发送方、接收方或编解码器能力. 若 packetization-mode 等于 0 或 1, 绝对不能出现. sprop-max-don-diff 为 0 到 32767 (含) 范围内的整数. 若未出现 sprop-max-don-diff, 则参数值未规定. sprop-max-don-diff 按下式计算:
sprop-max-don-diff = max{AbsDON(i) - AbsDON(j)}, for any i and any j>i,
where i and j indicate the index of the NAL unit in the transmission order and AbsDON denotes a decoding order number of the NAL unit that does not wrap around to 0 after 65535. In other words, AbsDON is calculated as follows: let m and n be consecutive NAL units in transmission order. For the very first NAL unit in transmission order (whose index is 0), AbsDON(0) = DON(0). For other NAL units, AbsDON is calculated as follows:
If DON(m) == DON(n), AbsDON(n) = AbsDON(m)
If (DON(m) < DON(n) and DON(n) - DON(m) < 32768), AbsDON(n) = AbsDON(m) + DON(n) - DON(m)
If (DON(m) > DON(n) and DON(m) - DON(n) >= 32768), AbsDON(n) = AbsDON(m) + 65536 - DON(m) + DON(n)
If (DON(m) < DON(n) and DON(n) - DON(m) >= 32768), AbsDON(n) = AbsDON(m) - (DON(m) + 65536 - DON(n))
If (DON(m) > DON(n) and DON(m) - DON(n) < 32768), AbsDON(n) = AbsDON(m) - (DON(m) - DON(n))
where DON(i) is the decoding order number of the NAL unit having index i in the transmission order. The decoding order number is specified in Section 5.5.
资料性说明: 接收方可使用
sprop-max-don-diff触发将接收缓冲区中哪些 NAL 单元递交给解码器.
max-rcmd-nalu-size: 此参数可以用于信令接收方能力. 绝对不能用于其他目的. 参数值表示接收方能够有效处理的最大 NALU 大小, 以字节为单位. 参数值为建议值, 而非严格上界. 发送方可以创建更大的 NALU, 但须意识到处理这些 NALU 的成本可能高于符合该限制的 NALU.
max-rcmd-nalu-size 的值必须为 0 到 4294967295 (含) 范围内的整数. 若未指定此参数, 则对 NALU 大小无已知限制. 发送方仍须考虑发送方与接收方之间的可用 MTU 大小, 并应为此运行 MTU 发现 (MTU discovery).
此参数的动机包括, 例如, IP 到 H.223 视频电话网关, 其中小于 H.223 传输数据单元的 NALU 更高效. 网关可能终结 IP; 因此, MTU 发现通常无法在网关之外生效.
资料性说明: 将此参数设为低于必要值可能产生负面影响.
sar-understood: 此参数可以用于指示接收方能力, 不作他用. 参数表示接收方理解的 aspect_ratio_idc ([1] 中规定) 在小于 255 的前提下的最大值. [1] 表 E-1 将 aspect_ratio_idc 等于 0 规定为 "unspecified"; 1 到 16 (含) 为具体样本宽高比 (Sample Aspect Ratios, SARs); 17 到 254 (含) 为 "reserved"; 255 为 Extended SAR, 此时显式信令 SAR 宽度与高度. 因此, 符合 [1] 的解码器的接收方理解 1 到 16 (含) 的 aspect_ratio_idc 以及等于 255 的 aspect_ratio_idc, 即接收方确切知道 SAR 是什么. 对此类接收方, sar-understood 的值为 16. 将来若扩展 [1] 表 E-1, 例如规定 aspect_ratio_idc 等于 17 的 SAR, 则对理解该扩展的解码器的接收方, sar-understood 的值为 17. 对符合 [1] 2003 版的解码器的接收方, sar-understood 的值为 13, 因为其中最小的保留 aspect_ratio_idc 为 14.
当未出现 sar-understood 时, 必须推断为 13.
sar-supported: 此参数可以用于指示接收方能力, 不作他用. 参数值为 1 到 sar-understood (含) 范围内的整数, 或等于 255. sar-supported 等于小于 255 的 N 表示接收方无几何失真地支持 [1] 表 E-1 中与 H.264 aspect_ratio_idc 值 1 到 N (含) 对应的所有 SAR. sar-supported 等于 255 表示接收方无几何失真地支持所有可用两个 16 位整数值作为分子与分母表示的样本宽高比, 即可用 H.264 aspect_ratio_idc 值 255 (Extended_SAR, 见 [1] 表 E-1) 表示的那些 SAR.
符合 H.264 的编码器不应发送 aspect_ratio_idc 等于 0, 或大于 sar-understood 且小于 255 的 aspect_ratio_idc. 符合 H.264 的编码器应发送接收方能够无几何失真显示的 aspect_ratio_idc. 但是, 符合 H.264 的编码器可以选择使用任意 SAR 发送图像.
注意, 当存在时, 码流的实际样本宽高比或扩展样本宽高比在序列参数集的视频可用性信息 (Video Usability Information, VUI) 部分中传送.
编码考虑 (Encoding considerations): 此类型仅针对通过 RTP (RFC 3550) 传输而定义.
安全考虑 (Security considerations): 见 RFC 6184 第 9 节.
公开规范 (Public specification): 请参阅 RFC 6184 及其第 17 节.
附加信息 (Additional information): 无
文件扩展名 (File extensions): 无
Macintosh 文件类型代码 (Macintosh file type code): 无
对象标识符或 OID (Object identifier or OID): 无
进一步信息联系人及电子邮件 (Person & email address to contact for further information): Ye-Kui Wang, [email protected]
预期用途 (Intended usage): COMMON
作者 (Author): Ye-Kui Wang, [email protected]
变更控制者 (Change controller): IETF Audio/Video Transport 工作组, 由 IESG 委派.