Closed jeanlf closed 1 year ago
If it's not clear, we should clarify it. Let's take examples.
If a luminance value is 1 cd/m^2:
mdcv
box), whether it's a min or a max does not matter, it would be coded in units of 0.0001, so the actual coded value would be 10000, i.e. 0x00002710 in the 32bit field. SmDm
box defined for VP9)), the value is coded using a 24.8 fixed point representation for a max luminance and 18.14 fixed point representation for a min luminance. So as a max value 1cd/m^2 would be coded as 0x00000100 and as a min value it would be 0x00004000.So the coded value is not the same but the actual value (in cd/m^2) is the same. I think that's why the spec uses "match" and not "equal".
The same applies for chromaticity values. The MPEG specifications uses 0.00002 increments and limits the value to the range 0 to 50000. The AOM specification uses a 0.16 fixed-point representation. So a CIE value of 0.6900 would be coded in MPEG-space as 0.6900/0.00002 = 34500, i.e. 0x86C4, while in AOM-space it would be coded 0.6900*65536 = 45,219.84 ~= 0xB0A4.
I think 'match' is misleading here, as it could be interpreted as 'equal', especially since there are several occurrences of 'shall match' in this text for which the meaning is 'equal'
I think it is useful to add a note/warning about the different units and encodings used in the AV1 HDR MDCV metadata OBU and the HEVC mastering display colour volume SEI message.
Also, it seems that certain fractional values cannot be represented exactly in either format. For example, consider a luminance value of 1.1 cd/m^2. This luminance value can be coded exactly in the SEI message but cannot be coded exactly in the MDCV OBU. So it is not clear what it means for values to "match" or be "equal".
The group agrees to add a note, to clarify the precision aspect and highlight that coded values are not the same as in an SEI message.
The groups agrees to update the word "match" to "equal (except for precision issues, see note below)". And also to remove the extraneous "of".
Cyril: The extraneous "of" was a fixed issue (https://github.com/AOMediaCodec/av1-isobmff/issues/124). Dimitri removed it in https://github.com/AOMediaCodec/av1-isobmff/commit/83e2dccd00a6f40744275539244759c324f60331.
Cyril: After reading this issue again,I realized that it's not good to change "match" to "equal", because that's exactly what jeanlf found confusing (see the second comment of jeanlf).
One solution is to change "values" to "actual values" or "decoded values" (as opposed to coded values).
The spec says:
For mdcv, this is not very clear. Does this mean that the values shall be exactly the same values as in the METADATA_TYPE_HDR_MDCV OBU, or shall be rewritten into the binary representation of the corresponding HEVC/VVC SEIs ?