Closed leo-barnes closed 3 months ago
I'd theoretically advocate for such a property, but does it really make things easier in practice? If the property is optional (as proposed in 2.), all codecs have to include code to parse the configuration or coded payload of all supported compression formats anyways. Thus, decoding might be a tiny bit faster if the property is there, but the logic gets more complex and ambiguities might arise. Furthermore, we might limit what is possible with a future compression format. (For example, if a future codec finds a better subsampling pattern, we also have to change the specification of the subsampling property).
I think the information is already there in hvcC
or av1C
and it is good to have this specific for each codec. It is trivial to extract the information from there and convert it into some canonical form. If information is missing, e.g. the chroma pixel position in hvcC
, this could be added by extending hvcC
in a new box version.
Noting that ISO/IEC 23001-17 (Uncompressed Video and Images) defines a cloc
box:
I'd theoretically advocate for such a property, but does it really make things easier in practice? If the property is optional (as proposed in 2.), all codecs have to include code to parse the configuration or coded payload of all supported compression formats anyways. Thus, decoding might be a tiny bit faster if the property is there, but the logic gets more complex and ambiguities might arise. Furthermore, we might limit what is possible with a future compression format. (For example, if a future codec finds a better subsampling pattern, we also have to change the specification of the subsampling property).
I think the information is already there in hvcC or av1C and it is good to have this specific for each codec. It is trivial to extract the information from there and convert it into some canonical form. If information is missing, e.g. the chroma pixel position in hvcC, this could be added by extending hvcC in a new box version.
These are all good points for existing codecs. For future codecs I would very much like to see a move away from specifying codec agnostic things in the codec config (or even coded payload) when possible though. It could then be mandated that the new box is required for those new codecs.
AVIF does this for example by not having CICP in the codec config since that can be specified with codec agnostic boxes at the container level. On the other hand, the AV1 codec config is basically fully redundant since the full information is stored inside the coded payload as well which is not ideal.
My main goal here is that for future codecs I would like to minimize the number of cases where a parser that does not want to decode a file needs to actually be able to parse the codec config/payload.
This will be handled by the proposed update to the pixi
property in the latest amendment draft. Closing.
There currently is no item property box to signal subsampling. Parsers that want to understand the subsampling of an encoded payload are therefore required to parse the codec config or in some cases the payload itself. We have
ispe
andpixi
andcolr
, but nothing for subsampling.Things to take into account:
colr
box and when/if it should override the coded payload, I think we the text for an item property like this should say that itshall match the subsampling specified in the coded payload
.