HEVC (H.265) WebCodecs 注册

W3C 小组草案注释

有关本文档的更多详细信息
此版本:
https://www.w3.org/TR/2025/DNOTE-webcodecs-hevc-codec-registration-20250514/
最新发布版本:
https://www.w3.org/TR/webcodecs-hevc-codec-registration/
编辑草案:
https://w3c.github.io/webcodecs/hevc_codec_registration.html
先前版本:
历史:
https://www.w3.org/standards/history/webcodecs-hevc-codec-registration/
反馈:
GitHub
编辑:
Paul Adenot (Mozilla)
Eugene Zemtsov (Google LLC)
前任编辑:
Bernard Aboba (Microsoft Corporation)
Chris Cunningham (Google Inc.)
参与:
Git 仓库。
提交问题。
版本历史:
https://github.com/w3c/webcodecs/commits

摘要

此注册已录入 [webcodecs-codec-registry]。 它描述了 HEVC (H.265) 的:(1) 完全限定的编解码器字符串, (2) 编解码器特有的 EncodedVideoChunk [[internal data]] 字节,(3) VideoDecoderConfig.description 字节, (4) EncodedVideoChunk [[type]] 的值, 以及 (5) 对 VideoEncoderConfig 的编解码器特有扩展

此注册无意包含任何关于某种 编解码器格式是否受知识产权主张约束的信息。如果实现者和 作者打算实现或使用特定的编解码器格式,建议他们在此事项上寻求 适当的法律顾问。WebCodecs 的实现者不被要求支持 HEVC / H.265 编解码器。

此注册是非规范性的。

本文档的状态

本节描述了本文档在发布时的状态。当前 W3C 出版物列表以及本 技术报告的最新修订版可在 W3C 标准和草案索引中找到,地址为 https://www.w3.org/TR/。

欢迎对此规范提供反馈和评论。对本规范的讨论首选使用 GitHub Issues。或者,你也可以将评论发送到 媒体工作组的邮件列表 public-media-wg@w3.org归档)。 本草案突出显示了一些仍有待工作组讨论的待处理问题。 关于这些问题的结果,包括它们是否有效,尚未作出决定。

本文档由 媒体工作组作为 小组草案注释发布,并使用 注释 轨道

小组草案注释不被 W3C 或其成员认可。

这是一个草案文档,可能随时被其他文档更新、替换或废弃。 除作为进行中的工作之外,引用本文档是不合适的。

W3C 专利政策不对 本文档附带任何许可要求或承诺。

本文档受 2023 年 11 月 03 日 W3C 流程文档约束。

1. 完全限定的编解码器字符串

编解码器字符串以前缀 "hev1." 或 "hvc1." 开始,并带有 四个以点分隔的字段作为后缀,如 [iso14496-15] 第 E.3 节所述。

2. EncodedVideoChunk 数据

EncodedVideoChunk[[internal data]] 预期为 [ITU-T-REC-H.265] 第 7.4.2.4 节中定义的访问单元。

注: 一个访问单元恰好包含一个基础层 编码图像。

如果比特流采用 hevc 格式,则假定 [[internal data]] 采用规范格式,如 [iso14496-15] 第 8.3.2 节所定义。

如果比特流采用 annexb 格式,则假定 [[internal data]] 采用 Annex B 格式, 如 [ITU-T-REC-H.265] 附录 B 所定义。

注: 由于 [[internal data]] 本质上是字节对齐的, 实现不需要恢复字节对齐。

3. VideoDecoderConfig description

如果存在 description, 则假定它是一个 HEVCDecoderConfigurationRecord,如 [iso14496-15] 第 8.3.3.1 节所定义,并且假定比特流采用 hevc 格式。

注: 此格式通常用于 .MP4 文件,其中 播放器通常 可以随机访问媒体数据。

如果不存在 description, 则假定比特流 采用 annexb 格式。

注: "annexb" 格式由 [ITU-T-REC-H.265] 附录 B 更详细地描述。此格式通常用于直播应用,其中 周期性地包含 VPS、SPS 和 PPS 数据,可以让用户轻松地 从流的中间开始。

4. EncodedVideoChunk type

如果某个 EncodedVideoChunk[[type]]key, 且比特流采用 hevc 格式,则该 EncodedVideoChunk 预期 包含一个基础层主要编码图像,该图像是即时解码 刷新(IDR)、干净随机访问(CRA)或断链访问(BLA)图像。

注: 如果比特流采用 hevc 格式,则解码所必需的参数集 包含在 VideoDecoderConfig.description 中。

如果某个 EncodedVideoChunk[[type]]key, 且比特流采用 annexb 格式,则该 EncodedVideoChunk 预期 同时包含一个基础层编码图像,该图像是即时 解码刷新(IDR)、干净随机访问(CRA)或断链访问(BLA) 图像,以及解码该 EncodedVideoChunk 中所有视频数据 NAL 单元所必需的所有参数集。

5. VideoEncoderConfig 扩展

partial dictionary VideoEncoderConfig {
  HevcEncoderConfig hevc;
};

hevc, 类型为 HevcEncoderConfig
包含 HEVC (H.265) 编解码器的编解码器特有配置选项。

5.1. HevcEncoderConfig

dictionary HevcEncoderConfig {
  HevcBitstreamFormat format = "hevc";
};

format, 类型为 HevcBitstreamFormat,默认值为 "hevc"
配置输出 EncodedVideoChunk 的格式。 参见 HevcBitstreamFormat

5.2. HevcBitstreamFormat

enum HevcBitstreamFormat {
  "annexb",
  "hevc",
};

HevcBitstreamFormat 决定 HEVC 参数集所在的位置,以及 打包比特流的机制。

annexb
参数集会周期性地包含在整个比特流中。

注: 此格式由 [ITU-T-REC-H.265] 附录 B 更详细地描述。此格式通常用于直播应用, 其中周期性地包含参数集数据,可以让用户轻松地 从流的中间开始。

hevc
参数集不会包含在比特流中,而是通过 [[output callback]] 作为 description 发出到 EncodedVideoChunkMetadata.decoderConfig

注: 此格式由 [iso14496-15] 第 8.3 节更详细地描述。此格式通常用于 .MP4 文件,其中 播放器通常可以随机访问媒体数据。

6. VideoEncoderEncodeOptions 扩展

partial dictionary VideoEncoderEncodeOptions {
  VideoEncoderEncodeOptionsForHevc hevc;
};

hevc, 类型为 VideoEncoderEncodeOptionsForHevc
包含 [ITU-T-REC-H.265] 编解码器的编解码器特有编码选项。

6.1. VideoEncoderEncodeOptionsForHevc

dictionary VideoEncoderEncodeOptionsForHevc {
  unsigned short? quantizer;
};

quantizer, 类型为 unsigned short,可为空
设置逐帧量化器值。 在 [ITU-T-REC-H.265] 中,量化器阈值可以 在 0 到 51 之间变化。

7. 隐私考量

请参阅 隐私 考量一节,该节位于 [WEBCODECS] 中。

8. 安全考量

请参阅 安全 考量一节,该节位于 [WEBCODECS] 中。

一致性

文档 约定

一致性要求使用 描述性断言 和 RFC 2119 术语的组合来表达。 关键字 “MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、 “MAY” 和 “OPTIONAL” 在本文档的规范性部分中 应按 RFC 2119 中的描述解释。 但是,为了可读性, 这些词在本规范中并不会全部以大写字母出现。

本规范的所有文本都是规范性的, 但明确标记为非规范性的章节、示例和注释除外。[RFC2119]

本规范中的示例用 “for example” 一词引入, 或通过 class="example" 与规范性文本分开, 如下所示:

这是一个资料性示例的例子。

资料性注释以 “Note” 一词开头, 并通过 class="note" 与规范性文本分开, 如下所示:

Note,这是一个资料性注释。

索引

由本 规范定义的术语

由 引用定义的术语

参考文献

规范性参考文献

[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. 1997 年 3 月. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[WEBCODECS]
Paul Adenot; Eugene Zemtsov. WebCodecs. 2025 年 4 月 17 日. WD. URL: https://www.w3.org/TR/webcodecs/
[WEBIDL]
Edgar Chen; Timothy Gu. Web IDL Standard. Living Standard. URL: https://webidl.spec.whatwg.org/

资料性参考文献

[ISO14496-15]
ISO/IEC 14496-15:2024 Information technology — Coding of audio-visual objects — Part 15: Carriage of network abstraction layer (NAL) unit structured video in the ISO base media file format. 2024 年 10 月. URL: https://www.iso.org/standard/89118.html
[ITU-T-REC-H.265]
H.265 : High efficiency video coding. 2021 年 8 月 . URL: https://www.itu.int/rec/T-REC-H.265
[WEBCODECS-CODEC-REGISTRY]
Paul Adenot; Bernard Aboba. WebCodecs Codec Registry. 2024 年 9 月 9 日. DRY. URL: https://www.w3.org/TR/webcodecs-codec-registry/

IDL 索引

partial dictionary VideoEncoderConfig {
  HevcEncoderConfig hevc;
};


dictionary HevcEncoderConfig {
  HevcBitstreamFormat format = "hevc";
};


enum HevcBitstreamFormat {
  "annexb",
  "hevc",
};


partial dictionary VideoEncoderEncodeOptions {
  VideoEncoderEncodeOptionsForHevc hevc;
};


dictionary VideoEncoderEncodeOptionsForHevc {
  unsigned short? quantizer;
};