AOMediaCodec / av1-spec

AV1 Bitstream & Decoding Process Specification
https://aomedia.org/
Other
335 stars 69 forks source link

AV2 request: Please move color_config() to the beginning of the sequence header OBU #319

Open wantehchang opened 3 years ago

wantehchang commented 3 years ago

It is often necessary to extract several pieces of information in the sequence header OBU, such as max frame width, max frame height, bit depth, and YUV format, without decoding the bitstream. Except for max frame width and max frame height, all of these are specified in the color_config() structure. Since color_config() is placed at the end of the AV1 sequence header OBU and it is not possible to parse color_config() backwards, we must parse the entire AV1 sequence header OBU to extract the info in color_config().

I propose that we fix this issue in the high-level syntax of the AV2 bitstream. Since color_config() only depends on seq_profile, which is the very first syntax element in the sequence header OBU, in AV2 we should move color_config() and the syntax elements related to max frame width and max frame height to the beginning of the sequence header OBU, immediately following seq_profile.

kodawah commented 3 years ago

this could be part of an overall simplification of the sequence header 👍

wantehchang commented 3 months ago

I wrote an AVM merge request to implement this proposal: https://gitlab.com/AOMediaCodec/avm/-/merge_requests/1183

The Codec WG input document number for this proposal is CWG-E103.