跳到主要内容

8. 元数据信息

中文导读: 本节对应 RFC 9924 的 8. 元数据信息 部分, 对应文档标题为 RFC 9924 - Advanced Professional Video. 下方若包含英文 RFC 原文, 注册表名称, 字段名, 算法名, 对象标识符, 媒体类型, 邮箱地址, URL, 代码, ABNF, ASN.1, YANG, JSON, XML, 测试向量或参考文献条目, 均按规范原样保留, 因为这些内容需要与 RFC 文本, IANA 注册表, 实现代码或验证工具逐字一致. 中文段落用于说明本节的作用, 阅读重点和实现含义, 不改变任何协议语义或注册值.

本页包含机器可读或接近机器可读的规范材料. 对 ASN.1, YANG, JSON Schema, XML Schema, 伪代码, 注册模板, 常量表和算法标识符, 翻译时必须保留关键字, 类型名, OID, namespace, 枚举值, 字段名和语法结构. 实现者应把这些块视为生成代码, 配置模型, 验证输入或一致性测试的依据.

8.1. Metadata Payload

syntax code                                                   | type
--------------------------------------------------------------|-----
metadata_payload(payloadType, payloadSize){ |
if(payloadType == 4){ |
metadata_itu_t_t35(payloadSize) |
} |
else if(payloadType == 5){ |
metadata_mdcv(payloadSize) |
} |
else if(payloadType == 6){ |
metadata_cll(payloadSize) |
} |
else if(payloadType == 10){ |
metadata_filler(payloadSize) |
} |
else if(payloadType == 170){ |
metadata_user_defined(payloadSize) |
} |
else{ |
metadata_undefined(payloadSize) |
} |
byte_alignment() |
} |

图 28: metadata_payload() syntax code

每种 metadata 的语法和语义在第 8.2 节中定义.

8.2. Metadata 语法和语义列表

8.2.1. Filler Metadata

syntax code                                                   | type
--------------------------------------------------------------|-----
metadata_filler(payloadSize){ |
for(i = 0; i < payloadSize; i++){ |
ff_byte | f(8)
} |
} |

ff_byte : 是一个等于 0xFF 的 byte.

8.2.2. Recommendation ITU-T T.35 Metadata

此 metadata 包含按 [ITUT-T35] 所规定方式注册的信息.

syntax code                                                   | type
--------------------------------------------------------------|-----
metadata_itu_t_t35(payloadSize){ |
itu_t_t35_country_code | b(8)
readSize = payloadSize - 1 |
|
if(itu_t_t35_country_code == 0xFF){ |
itu_t_t35_country_code_extension | b(8)
readSize-- |
} |
|
for(i = 0; i < readSize; i++){ |
itu_t_t35_payload[i] | b(8)
} |
} |

图 29: metadata_itu_t_t35() syntax code

itu_t_t35_country_code : 必须是一个 byte, 其语义为 [ITUT-T35] 附录 A 中规定的 country code.

itu_t_t35_country_code_extension : 必须是一个 byte, 其语义为 [ITUT-T35] 附录 B 中规定的 country code.

itu_t_t35_payload[i] : 必须是一个 byte, 其语义为按 [ITUT-T35] 所规定方式注册的数据.

[ITUT-T35] 中规定的 terminal provider code 和 terminal provider oriented code 必须包含在 itu_t_t35_payload 的最开始一个或多个 byte 中. itu_t_t35_payload 数据中的任何剩余 byte 必须是具有由 [ITUT-T35] country code 和 terminal provider code 所标识实体规定的语法和语义的数据. 注意, 预计使用此类 payload 承载的任何 metadata 都已按 [ITUT-T35] 规定, 通过 national administrator, Alliance for Telecommunications Industry Solutions (ATIS) 或 ITU-T Telecommunication Standardization Bureau (TSB) 注册.

8.2.3. Mastering Display Color Volume Metadata

syntax code                                                   | type
--------------------------------------------------------------|-----
metadata_mdcv(payloadSize){ |
for(i = 0; i < 3; i++){ |
primary_chromaticity_x[i] | u(16)
primary_chromaticity_y[i] | u(16)
} |
white_point_chromaticity_x | u(16)
white_point_chromaticity_y | u(16)
max_mastering_luminance | u(32)
min_mastering_luminance | u(32)
} |

图 30: metadata_mdcv() syntax code

primary_chromaticity_x[i] : 以 [ISO11664-1] 中规定的 CIE 1931 表示 mastering display 的 X chromaticity coordinate 的 0.16 fixed-point format, 其中 i = 0, 1, 2 分别指定 Red, Green, Blue.

primary_chromaticity_y[i] : 以 [ISO11664-1] 中规定的 CIE 1931 表示 mastering display 的 Y chromaticity coordinate 的 0.16 fixed-point format, 其中 i = 0, 1, 2 分别指定 Red, Green, Blue.

white_point_chromaticity_x : 以 [ISO11664-1] 中规定的 CIE 1931 表示 mastering display 的 white point X chromaticity coordinate 的 0.16 fixed-point format.

white_point_chromaticity_y : 以 [ISO11664-1] 中规定的 CIE 1931 表示 mastering display 的 white point Y chromaticity coordinate 的 0.16 fixed-point format.

max_mastering_luminance : 是 maximum display mastering luminance 的 24.8 fixed-point format, 以 candelas per square meter 表示.

min_mastering_luminance : 是 minimum display mastering luminance 的 18.14 fixed-point format, 以 candelas per square meter 表示.

8.2.4. Content Light-Level Information Metadata

syntax code                                                   | type
--------------------------------------------------------------|-----
metadata_cll(payloadSize){ |
max_cll | u(16)
max_fall | u(16)
} |

图 31: metadata_cll() syntax code

max_cll : 指定 [CTA-861.3] 附录 A 中规定的 maximum content light level information.

max_fall : 指定 [CTA-861.3] 附录 A 中规定的 maximum frame-average light level information.

8.2.5. User-Defined Metadata

此 metadata 包含由 [RFC9562] 中规定的 universal unique identifier 所标识的用户数据, 其内容不在本文档中规定.

syntax code                                                 | type
------------------------------------------------------------|-----
metadata_user_defined(payloadSize){ |
uuid | u(128)
for(i = 0; i < (payloadSize - 16); i++) |
user_defined_data_payload[i] | b(8)
} |

图 32: metadata_user_defined() syntax code

uuid : 必须是一个 128-bit 值, 按 [RFC9562] 中规定的程序作为生成的 Universally Unique Identifier (UUID) 指定.

user_defined_data_payload[i] : 必须是一个 byte, 具有 UUID generator 所指定的用户定义语法和语义.

8.2.6. Undefined Metadata

syntax code                                                   | type
--------------------------------------------------------------|-----
metadata_undefined(payloadSize){ |
for(i = 0; i < payloadSize; i++){ |
undefined_metadata_payload_byte[i] | b(8)
} |
} |

图 33: metadata_undefined() syntax code

undefined_metadata_payload_byte[i] : 是保留供将来使用的 byte.