HEVC (H.265) WebCodecs 登録

W3C グループノート草案,

この文書の詳細
このバージョン:
https://www.w3.org/TR/2026/DNOTE-webcodecs-hevc-codec-registration-20260608/
最新公開バージョン:
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 LLC)
参加:
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標準および草案索引にある。

この仕様に関するフィードバックおよびコメントを歓迎する。 この仕様に関する議論には、 GitHub Issuesが推奨される。 あるいは、コメントを Media Working Group のメーリングリスト public-media-wg@w3.orgアーカイブ)へ送ることもできる。 この草案は、ワーキンググループでまだ議論される予定の未解決の課題の一部を示している。 それらの課題が妥当かどうかを含め、その結果についてはまだ決定されていない。

この文書は、Media Working Groupにより、 Note トラックを用いた Group Note Draft として公開された。

Group Note Draft は、 W3Cまたはその会員によって承認されたものではない。

これは草案文書であり、いつでも他の文書によって更新、置換、または廃止される可能性がある。 この文書を進行中の作業以外のものとして引用することは適切ではない。

W3C 特許ポリシーは、この文書に対していかなるライセンス要件またはコミットメントも課さない。

この文書は、2025年8月18日 W3C Process Documentに従う。

1. 完全修飾されたコーデック文字列

コーデック文字列は、 "hev1." または "hvc1." の接頭辞で始まり、 [iso14496-15]の Section E.3 で説明される、 ドットで区切られた4つのフィールドの接尾辞を持つ。

2. EncodedVideoChunk データ

EncodedVideoChunk [[internal data]] は、[ITU-T-REC-H.265] section 7.4.2.4 で定義されるアクセスユニットであることが期待される。

注: アクセスユニットは、ちょうど1つのベースレイヤ符号化ピクチャを含む。

ビットストリームがhevc 形式である場合、 [[internal data]] は、[iso14496-15] section 8.3.2 で定義される正規形式であると仮定される。

ビットストリームがannexb 形式である場合、 [[internal data]] は、[ITU-T-REC-H.265] Annex B で定義される Annex B 形式であると仮定される。

注: [[internal data]] は本質的にバイト境界に整列されているため、 実装はバイトアラインメントを復元する必要はない。

3. VideoDecoderConfig description

description が存在する場合、それは[iso14496-15]の section 8.3.3.1 で定義される HEVCDecoderConfigurationRecordであると仮定され、ビットストリームはhevc 形式であると仮定される。

注: この形式は .MP4 ファイルで一般的に使用され、その場合プレイヤーは通常、 メディアデータにランダムアクセスできる。

description が存在しない場合、ビットストリームは annexb 形式であると仮定される。

注: "annexb" 形式は、 [ITU-T-REC-H.265]の Annex 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]の Annex B により詳しく説明されている。この形式はライブストリーミング用途で一般的に使用され、 パラメータセットデータを定期的に含めることで、ユーザーはストリームの途中から 容易に開始できる。

hevc
パラメータセットはビットストリームに含まれず、代わりに [[output callback]] を通じて、 description として EncodedVideoChunkMetadata.decoderConfig の中に出力される。

注: この形式は、[iso14496-15]の section 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、nullable
フレームごとの量子化器値を設定する。 [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. RFC において要件レベルを示すために用いるキーワード. 1997年3月. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[WEBCODECS]
Paul Adenot; Eugene Zemtsov. WebCodecs. 2026年5月5日. 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 情報技術 — オーディオビジュアルオブジェクトの符号化 — 第15部: ISO ベースメディアファイル形式におけるネットワーク抽象化層 (NAL) ユニット 構造化ビデオの搬送. 2024年10月. URL: https://www.iso.org/standard/89118.html
[ITU-T-REC-H.265]
H.265 : 高効率ビデオ符号化. 2021年8月. URL: https://www.itu.int/rec/T-REC-H.265
[WEBCODECS-CODEC-REGISTRY]
Paul Adenot; Eugene Zemtsov. WebCodecs コーデック レジストリ. 2026年2月12日. 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;
};