Open bradh opened 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.
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?
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.
"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.
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 be1pic
, 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 fileftyp
(as well as1pic
for each associatedbrnd
, if any)?