VP9 WebCodecs 등록

W3C 그룹 초안 노트,

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2025/DNOTE-webcodecs-vp9-codec-registration-20250514/
최신 공개 버전:
https://www.w3.org/TR/webcodecs-vp9-codec-registration/
편집자 초안:
https://w3c.github.io/webcodecs/vp9_codec_registration.html
이전 버전:
이력:
https://www.w3.org/standards/history/webcodecs-vp9-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]에 입력됩니다. 이는 VP9에 대해 (1) 완전히 한정된 코덱 문자열, (2) 코덱별 EncodedVideoChunk [[internal data]] 바이트, (3) VideoDecoderConfig.description 바이트, (4) EncodedVideoChunk [[type]]의 값, 그리고 (5) VideoEncoderEncodeOptions에 대한 코덱별 확장을 설명합니다.

이 등록은 코덱 형식이 지식재산권 주장에 의해 제한되는지 여부에 관한 어떠한 정보도 포함하려는 것이 아닙니다. 구현자와 저자는 특정 코덱 형식을 구현하거나 사용하려는 경우 이 문제에 관해 적절한 법률 자문을 구하는 것이 권고됩니다. WebCodecs 구현자는 VP9 코덱을 지원할 필요가 없습니다.

이 등록은 비규범적입니다.

이 문서의 상태

이 섹션은 이 문서가 공개된 시점의 상태를 설명합니다. 현재 W3C 공개 문서 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인 https://www.w3.org/TR/에서 찾을 수 있습니다.

이 명세에 대한 피드백과 의견을 환영합니다. 이 명세에 관한 논의에는 GitHub Issues를 사용하는 것이 좋습니다. 또는 Media Working Group의 메일링 리스트인 public-media-wg@w3.org (아카이브)로 의견을 보낼 수 있습니다. 이 초안은 아직 워킹 그룹에서 논의해야 할 일부 보류 중인 이슈를 강조 표시합니다. 이러한 이슈가 유효한지 여부를 포함하여 그 결과에 관해서는 아직 어떠한 결정도 내려지지 않았습니다.

이 문서는 Media Working GroupNote track을 사용하여 Group Draft Note로 공개했습니다.

Group Draft Note는 W3C나 그 회원의 승인을 받은 것이 아닙니다.

이 문서는 초안 문서이며 언제든지 다른 문서로 갱신, 대체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업 이외의 것으로 인용하는 것은 부적절합니다.

W3C 특허 정책은 이 문서에 대해 어떠한 라이선스 요구사항이나 약속도 부과하지 않습니다.

이 문서는 2023년 11월 03일 W3C Process Document의 지배를 받습니다.

1. 완전히 한정된 코덱 문자열

코덱 문자열은 접두사 "vp09."로 시작하고, 그 뒤에 [VP9-ISOBMFF]의 "Codecs Parameter String" 섹션에 설명된 가변 길이 접미사가 옵니다.

2. EncodedVideoChunk 데이터

EncodedVideoChunk [[internal data]][VP9]의 섹션 6에 설명된 프레임일 것으로 기대됩니다.

3. VideoDecoderConfig 설명

description은 이 코덱에 사용되지 않습니다.

4. EncodedVideoChunk 타입

EncodedVideoChunk[[type]]key이면, 해당 EncodedVideoChunk[VP9]의 섹션 7.2에 정의된 대로 frame_typeKEY_FRAME인 프레임을 포함할 것으로 기대됩니다.

5. VideoEncoderEncodeOptions 확장

partial dictionary VideoEncoderEncodeOptions {
  VideoEncoderEncodeOptionsForVp9 vp9;
};

vp9, 타입은 VideoEncoderEncodeOptionsForVp9
[VP9] 코덱에 대한 코덱별 인코드 옵션을 포함합니다.

5.1. VideoEncoderEncodeOptionsForVp9

dictionary VideoEncoderEncodeOptionsForVp9 {
  unsigned short? quantizer;
};

quantizer, 타입은 unsigned short, nullable
프레임별 quantizer 값을 설정합니다. [VP9]에서 quantizer 임계값은 0부터 63까지 달라질 수 있습니다

6. 개인정보 보호 고려사항

개인정보 보호 고려사항 섹션을 [WEBCODECS]에서 참조하십시오.

7. 보안 고려사항

보안 고려사항 섹션을 [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/

참고 참조

[VP9]
VP9 Bitstream & Decoding Process Specification. URL: https://storage.googleapis.com/downloads.webmproject.org/docs/vp9/vp9-bitstream-specification-v0.6-20160331-draft.pdf
[VP9-ISOBMFF]
VP Codec ISO Media File Format Binding. URL: https://github.com/webmproject/vp9-dash/blob/master/VPCodecISOMediaFileFormatBinding.md
[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 VideoEncoderEncodeOptions {
  VideoEncoderEncodeOptionsForVp9 vp9;
};


dictionary VideoEncoderEncodeOptionsForVp9 {
  unsigned short? quantizer;
};