Closed wantehchang closed 2 years ago
@kornelski Please review. Thanks!
Thanks.
I'm not planning to support chroma subsampling of color channels ever. If I remember correctly, this chroma setting was only a workaround for lack of monochrome encoding.
I see. I guess older versions of rav1e could not encode monochrome (YUV 4:0:0) images. The current version of rav1e encodes alpha images as monochrome correctly.
The current cavif-rs code uses only ChromaSampling::Cs444
and ChromaSampling::Cs400
. If it will stay this way, we can simply set chroma_sample_position
to ChromaSamplePosition::Unknown
unconditionally. Would you like me to do that?
Yes, please
The chroma_sample_position syntax element is only used for YUV 4:2:0 in the AV1 bitstream. So set chroma_sample_position to ChromaSamplePosition::Unknown for all other YUV formats, including monochrome (YUV 4:0:0).
Note: For still images, the most common chroma sample position in practice is the "center" position. Unfortunately the AV1 specification does not have a value for the "center" chroma sample position. See https://github.com/AOMediaCodec/av1-avif/issues/88 and https://github.com/AOMediaCodec/av1-spec/pull/308. This pull request preserves the ChromaSamplePosition::Colocated value that is currently used, but it is likely to be incorrect when YUV 4:2:0 is supported.