AOMediaCodec / av1-avif

AV1 Image File Format Specification - ISO-BMFF/HEIF derivative
https://aomediacodec.github.io/av1-avif/
BSD 2-Clause "Simplified" License
450 stars 40 forks source link

Link-U/fox.profile2.10bpc.yuv422.avif has incorrect `av1C` #196

Open leo-barnes opened 1 year ago

leo-barnes commented 1 year ago

The Link-U/fox.profile2.10bpc.yuv422.avif example file has an incorrect av1C box.

Here's the info in the av1C:

        seq_profile: 2 (4:2:0/4:2:2/4:4:4)
        seq_level: 5
        tier: 0
        high_bitdepth: 1
        twelve_bit: 0
          resolved bit depth: 10
        monochrome: 0
        chroma_subsampling_x: 0
        chroma_subsampling_y: 0
        chroma_sample_position: 0 (CSP_UNKNOWN)
        initial_presentation_delay_present: 0

Here's the info in the Sequence Header OBU (which is included as an optional config OBU in the av1C:

            seq_profile: 2
            high_bitdepth: 1
            twelve_bit: 0
            (=> BitDepth: 10)
            mono_chrome: 0
            (=> NumPlanes: 3)
            color_description_present_flag: 0
            (=> Color info unspecified)
            color_range: 0
            (=> subsampling_x = 1)
            (=> subsampling_y = 0)
            separate_uv_delta_q: 0
            film_grain_params_present: 0

So the av1C says 4:4:4, while the Sequence Header OBU says 4:2:2.

leo-barnes commented 1 year ago

We should probably go through the rest of the test files to make sure they are correct. The Microsoft files have bad clap for example (think we already have an open issue for that).

rbouqueau commented 1 year ago

Hi, I've just received a github notification and I've checked the files you mention with the ComplianceWarden, out of curiosity. These errors are indeed reported:

$ bin/cw.exe avif testFiles/Link-U/fox.profile2.10bpc.yuv422.avif
+--------------------------------------+
|           avif validation            |
+--------------------------------------+

Specification description: AVIF v1.0.0, 19 February 2019
https://aomediacodec.github.io/av1-avif/

[avif][Rule #5] Warning: Sequence Header OBUs should not be present in the AV1CodecConfigurationBox
[avif][Rule #7] Error: [ItemId=1] The values of the AV1CodecConfigurationBox shall match
the Sequence Header OBU in the AV1 Image Item Data:
        AV1CodecConfigurationBox:
                seq_profile=2
                seq_level_idx_0=5
                seq_tier_0=0
                high_bitdepth=1
                twelve_bit=0
                mono_chrome=0
                chroma_subsampling_x=0
                chroma_subsampling_y=0
                chroma_sample_position=0
        Sequence Header OBU in the AV1 Image Item Data:
                seq_profile=2
                seq_level_idx_0=5
                seq_tier_0=0
                high_bitdepth=1
                twelve_bit=0
                mono_chrome=0
                chroma_subsampling_x=1
                chroma_subsampling_y=0
                chroma_sample_position=0

========================================
[avif] 1 error(s), 1 warning(s).
========================================

===== Involved rules descriptions:

[avif][Rule #5] Section 2.1
Sequence Header OBUs should not be present in the AV1CodecConfigurationBox.

[avif][Rule #7] Section 2.2.1
The values of the fields in the AV1CodecConfigurationBox shall match those of the
Sequence Header OBU in the AV1 Image Item Data.

+--------------------------------------+
|           miaf validation            |
+--------------------------------------+

Specification description: MIAF (Multi-Image Application Format)
MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019

========================================
[miaf] No errors.
========================================

+--------------------------------------+
|           heif validation            |
+--------------------------------------+

Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310

========================================
[heif] No errors.
========================================

+--------------------------------------+
|          isobmff validation          |
+--------------------------------------+

Specification description: ISO Base Media File Format
MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4)

========================================
[isobmff] No errors.
========================================

and

$ bin/cw.exe avif testFiles/Microsoft/Chimera_8bit_cropped_480x256.avif
+--------------------------------------+
|           avif validation            |
+--------------------------------------+

Specification description: AVIF v1.0.0, 19 February 2019
https://aomediacodec.github.io/av1-avif/

[avif][Rule #3] Warning: [ItemId=1] still_picture flag set to 0
[avif][Rule #4] Warning: [ItemId=1] reduced_still_picture_header flag set to 0
[avif][Rule #5] Warning: Sequence Header OBUs should not be present in the AV1CodecConfigurationBox

========================================
[avif] 0 error(s), 3 warning(s).
========================================

===== Involved rules descriptions:

[avif][Rule #3] Section 2.1
The AV1 Image Item Data should have its still_picture flag set to 1.

[avif][Rule #4] Section 2.1
The AV1 Image Item Data should have its reduced_still_picture_header flag set to 1.

[avif][Rule #5] Section 2.1
Sequence Header OBUs should not be present in the AV1CodecConfigurationBox.

+--------------------------------------+
|           miaf validation            |
+--------------------------------------+

Specification description: MIAF (Multi-Image Application Format)
MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019

[miaf][Rule #40] Error: [ItemId=1] YUV 4:2:0: the horizontal cropped offset shall be an even number. Found 1/2
[miaf][Rule #40] Error: [ItemId=1] YUV 4:2:0: the vertival cropped offset shall be an even number. Found 1/2

========================================
[miaf] 2 error(s), 0 warning(s).
========================================

===== Involved rules descriptions:

[miaf][Rule #40] Section 7.3.6.7
Clean aperture:- when the image is 4:2:2 the horizontal cropped offset and width shall be
  even numbers and the vertical values shall be integers
- when the image is 4:2:0 both the horizontal and vertical cropped offsets and
widths shall be even numbers

+--------------------------------------+
|           heif validation            |
+--------------------------------------+

Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310

========================================
[heif] No errors.
========================================

+--------------------------------------+
|          isobmff validation          |
+--------------------------------------+

Specification description: ISO Base Media File Format
MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4)

========================================
[isobmff] No errors.
========================================
Xredmi commented 1 year ago

The Link-U/fox.profile2.10bpc.yuv422.avif example file has an incorrect av1C box.

Here's the info in the av1C:

        seq_profile: 2 (4:2:0/4:2:2/4:4:4)
        seq_level: 5
        tier: 0
        high_bitdepth: 1
        twelve_bit: 0
          resolved bit depth: 10
        monochrome: 0
        chroma_subsampling_x: 0
        chroma_subsampling_y: 0
        chroma_sample_position: 0 (CSP_UNKNOWN)
        initial_presentation_delay_present: 0

Here's the info in the Sequence Header OBU (which is included as an optional config OBU in the av1C:

            seq_profile: 2
            high_bitdepth: 1
            twelve_bit: 0
            (=> BitDepth: 10)
            mono_chrome: 0
            (=> NumPlanes: 3)
            color_description_present_flag: 0
            (=> Color info unspecified)
            color_range: 0
            (=> subsampling_x = 1)
            (=> subsampling_y = 0)
            separate_uv_delta_q: 0
            film_grain_params_present: 0

So the av1C says 4:4:4, while the Sequence Header OBU says 4:2:2.