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

When can sub-items share codec configuration? #194

Open leo-barnes opened 1 year ago

leo-barnes commented 1 year ago

When creating a HEIC, you can be guaranteed that any items that share the same codec config can reuse the same decode sessions since the HEVC codec config box basically contains all details needed to configure the decoder.

This is not true for the AV1 codec config box. Some crucial details missing that I've noticed so far:

  1. Dimensions (present with ispe)
  2. Full-range/video-range (present with nclx)
  3. Multi-layering details

MIAF tries to enforce that all tiles in a grid should be able to use the same decoder setup. IIRC it does this by saying that the codec config, color info and bit-depth needs to be shared by all tiles. But for AV1, I don't see anything that would disallow one of the tiles being a multi-layer stream, while the other tiles are single-layer streams. Maybe we don't care?

Xredmi commented 1 year ago

When creating a HEIC, you can be guaranteed that any items that share the same codec config can reuse the same decode sessions since the HEVC codec config box basically contains all details needed to configure the decoder.

This is not true for the AV1 codec config box. Some crucial details missing that I've noticed so far:

  1. Dimensions (present with ispe)
  2. Full-range/video-range (present with nclx)
  3. Multi-layering details

MIAF tries to enforce that all tiles in a grid should be able to use the same decoder setup. IIRC it does this by saying that the codec config, color info and bit-depth needs to be shared by all tiles. But for AV1, I don't see anything that would disallow one of the tiles being a multi-layer stream, while the other tiles are single-layer streams. Maybe we don't care?