MPEGGroup / FileFormat

MPEG file format discussions
20 stars 0 forks source link

Semantics of "one picture" in HEIF #76

Open bradh opened 1 year ago

bradh commented 1 year ago

The 1pic brand as defined in ISO/IEC 23008-12:2022 is "coded image item(s) that only contain one picture and that picture is intra coded".

What does "picture" mean in the context of HEIF? Does it mean the same as picture in AVC or HEIF (i.e. YCbCr field)? Can it have an attached image (e.g. aux image, thumbnail, mask)?

Is a grid considered to be 1pic, or does the presence of two or more image items within the grid represent two different pictures?

Does this test only apply at the image item level? For example, if I have two or more non-hidden image items that are both YCbCr intra-coded, is that still 1pic for the file ftyp (as well as 1pic for each associated brnd, if any)?

cconcolato commented 1 year ago

Thanks for raising the issue.

What does "picture" mean in the context of HEIF? Does it mean the same as picture in AVC or HEIF (i.e. YCbCr field)?

I agree the spec is ambiguous. We need to:

Can it have an attached image (e.g. aux image, thumbnail, mask)?

Yes. The brand only talks about how coded images are coded.

Is a grid considered to be 1pic?

A grid item is not a coded image item.

does the presence of two or more image items within the grid represent two different pictures?

I think the notion behind 1pic is that the coded image does not contain multiple pictures like (multiview, layered, interlaced, ...). A grid usually points to multiple image items. If one of the items corresponds to one such multi-picture item, then the file cannot use the 1pic brand. Some items may have a brand property that says 1pic though.

Does this test only apply at the image item level?

The test applies at the item level to decide what to put in the corresponding BrandProperty, if any. The test applies at the file level for the ftyp box. (There are other, edge cases: track level meta box and items for the ttyp box).

For example, if I have two or more non-hidden image items that are both YCbCr intra-coded, is that still 1pic for the file ftyp (as well as 1pic for each associated brnd, if any)?

Yes.

bradh commented 1 year ago

Thanks for the response.

It might help to add (possibly informative) text about what a consumer is supposed to infer from this brand.

The interlaced case is interesting, given how 14496-10 defines a picture (i.e. potentially with top and bottom fields).

Also, does 1pic potentially apply to JPEG 2000 or something else that is not 14496-15 coded (e.g. 23001-17 uncompressed)? What would be the tests in that case?

cconcolato commented 1 year ago

Sorry for the confusion about interlaced. I'm actually not sure when a coded image could contain multiple pictures. For the record, the HEVC/VVC definition of a picture is:

picture: An array of luma samples in monochrome format or an array of luma samples and two corresponding arrays of chroma samples in 4:2:0, 4:2:2, and 4:4:4 colour format. NOTE – A picture may be either a frame or a field. However, in one CVS, either all pictures are frames or all pictures are fields.

Also, does 1pic potentially apply to JPEG 2000 or something else that is not 14496-15 coded (e.g. 23001-17 uncompressed)?

I don't think it should.

mhannuksela commented 4 days ago

"coded picture" is a term that is defined at least in HEVC and VVC. "coded image" is defined in HEIF but it has a broader meaning than "coded picture" in HEVC and VVC and may contain many coded pictures of different scalability layers. I'd propose to clarify the '1pic' brand as follows.

Add at the beginning of 10.2.5.1 (definition of '1pic'):

This brand may be used when the item type of a coded image item allows multiple coded pictures within the same coded image item, such as coded pictures representing different spatial scalability layers of the same picture, but the coded image item actually contains only one coded picture that is intra coded. This brand implies no semantics or reader requirements, when the item type of a coded image item does not allow multiple coded pictures in the same coded image item.

In 10.2.5.1, add the bolded clarifications:

This brand enables file players to identify and decode HEIF files containing coded image items that only contain one coded picture and that coded picture is intra coded.

In 10.2.5.2, add the bolded clarifications:

A file having the '1pic' brand in the compatible_brands array of the FileTypeBox shall contain coded image items that only contain one coded picture and that coded picture is intra coded.