Skip to content

conformance

Dimitri Podborski edited this page Nov 1, 2021 · 1 revision

Initial list of tests for conformance verification

Must pass (SHALLs)

  1. ftyp.compatible_brands SHALL include 'av01'
  2. At least one track SHALL include 'av01' sample entry
  3. VisualSampleEntry.width (and height) SHALL be the same as signaled in Sequence Header OBU (max_frame_width_minus_1, max_frame_height_minus_1)
    1. If Sequence Header OBU is in AV1CodecConfigurationRecord verify width/height
    2. In every RAP sample check for Sequence Header OBU and verify width/height
  4. iterate all frame_header_obu's in all samples and compute MaxRenderWidth and MaxRenderHeight. Then, iterate all Sequence header OBUs (sample etnry and samples) and compare with max_frame_width_minus_1 and max_frame_width_minus_1. If any of the values differ, make sure that the PixelAspectRatioBox box is included in the sample entry and it's contents hSpacing / vSpacing are as defined in Section 2.2.4.
  5. 'av1C' SHALL be present in each 'av01' sample entry
  6. AV1CodecConfigurationRecord.marker = 1
  7. AV1CodecConfigurationRecord.version = 1
  8. AV1CodecConfigurationRecord.seq_profile is the same as in every sequence_header_obu.seq_profile within configOBUs or in samples associated with this sample entry
  9. AV1CodecConfigurationRecord.seq_level_idx_0 is the same as in every sequence_header_obu.seq_level_idx[ 0 ] within configOBUs or in samples associated with this sample entry
  10. AV1CodecConfigurationRecord.seq_tier_0 is the same as in every sequence_header_obu.seq_tier_0[ 0 ] within configOBUs or in samples associated with this sample entry
  11. Iterate all Sequence header OBUs (in sample entry and associated samples) and look if sequence_header_obu.color_config.twelve_bit is not present. If not present, make sure that AV1CodecConfigurationRecord.twelve_bit = 0
  12. Iterate all Sequence header OBUs (in sample entry and associated samples) and look if subsampling_x, subsampling_y, and chroma_sample_position fields are not present. If not present, make sure that the corresponding entries in AV1CodecConfigurationRecord are set to 0.
  13. AV1CodecConfigurationRecord.initial_presentation_delay_minus_one TBD
  14. AV1CodecConfigurationRecord.configOBUs search for Sequence Header OBU and if present:
    1. make sure that it's the first OBU in the array
    2. make sure that only one Sequence Header OBU is included in the array
    3. make sure that all values in this AV1CodecConfigurationRecord match the values in this Sequence Header OBU. (high_bitdepth, twelve_bit, monochrome, chroma_subsampling_x/y, chroma_sample_position)
  15. AV1CodecConfigurationRecord.configOBUs iterate all OBUs and make sure that each OBU has obu_has_size_field enabled.
  16. If colr box with colour_type set to nclx is present in the sample entry, make sure that the associated values match in the Sequence Header OBUs (config record and samples).
  17. Sample format:
    1. TU TBD
    2. Each OBU (except the last) has obu_has_size_field = 1
    3. Make sure that no OBUs with OBU_TILE_LIST are present
    4. If sync sample make sure that show_frame flag is set to 1 and it contains a Sequence Header OBU before the first Frame Header OBU.
  18. Make sure no ctts box is present.
  19. If sdtp box is present, make sure that is_leading is set to 0 or 2 only.

Warnings (SHOULDs)

  1. ftyp.compatible_brands SHOULD include structural brands form Annex E of ISOBMFF (e.g. iso6)
  2. TrackHeaderBox.width (and height) SHOULD be equal to MaxRenderWidth and MaxRenderHeight (refer to 4. in SHALL requirements).
  3. Warn if AV1CodecConfigurationRecord.high_bitdepth is not the same as in every sequence_header_obu.color_config.high_bitdepth within samples associated with this sample entry. (Ralated to 14.3 in SHALL requirements)
  4. Warn if AV1CodecConfigurationRecord.twelve_bit is not the same as in every sequence_header_obu.color_config.twelve_bit within samples associated with this sample entry. (Ralated to 14.3 in SHALL requirements)
  5. Warn if AV1CodecConfigurationRecord.monochrome field is not the same as in every sequence_header_obu.color_config.mono_chrome flag within samples associated with this sample entry. (Ralated to 14.3 in SHALL requirements)
  6. Warn if AV1CodecConfigurationRecord.chroma_subsampling_x, y field is not the same as in every sequence_header_obu.color_config.subsampling_x, y flag within samples associated with this sample entry. (Ralated to 14.3 in SHALL requirements)
  7. Warn if AV1CodecConfigurationRecord.chroma_sample_position field is not the same as in every sequence_header_obu.color_config.chroma_sample_position flag within samples associated with this sample entry. (Ralated to 14.3 in SHALL requirements)
  8. Warn if timing_info_present_flag is set to 1 in any Sequence Header OBUs (config record or samples)
  9. Warn if no colr box with colour_type set to nclx is present in the sample entry
  10. Warn if no clap box is present in the sample entry
  11. HDR TBD
Clone this wiki locally