[FFmpeg-devel] [PATCH 1/4] avutil/pix{desc, fmt}: add new matrix coefficients from H.273 v3

Jan Ekström jeebjp at gmail.com
Mon Apr 1 14:34:33 EEST 2024


On Fri, Mar 29, 2024 at 8:32 PM Jan Ekström <jeebjp at gmail.com> wrote:
>
> On Fri, Mar 29, 2024 at 2:33 AM Jan Ekström <jeebjp at gmail.com> wrote:
> >
> > * SMPTE ST 2128 IPT-C2 defines the coefficients utilized in DoVi
> >   Profile 5. Profile 5 can thus now be represented in VUI as
> >   {AVCOL_RANGE_JPEG, AVCOL_PRI_BT2020, AVCOL_TRC_SMPTE2084,
> >    AVCOL_SPC_IPT_C2, AVCHROMA_LOC_LEFT} (although other chroma
> >   sample locations are allowed). AVCOL_TRC_SMPTE2084 should in
> >   this case be interpreted as 'PQ with reshaping'.
> > * YCgCo-Re and YCgCo-Ro define the bitexact YCgCo-R, where the
> >   number of bits added to a source RGB bit depth is 2 (i.e., even)
> >   and 1 (i.e., odd), respectively.
> > ---
> >  doc/APIchanges      | 4 ++++
> >  libavutil/pixdesc.c | 3 +++
> >  libavutil/pixfmt.h  | 3 +++
> >  libavutil/version.h | 2 +-
> >  4 files changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/doc/APIchanges b/doc/APIchanges
> > index aa102b4925..296d87d8fb 100644
> > --- a/doc/APIchanges
> > +++ b/doc/APIchanges
> > @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
> >
> >  API changes, most recent first:
> >
> > +2024-03-27 - xxxxxxxxxx - lavu 59.11.100 - pixfmt.h
> > +  Add AVCOL_SPC_IPT_C2, AVCOL_SPC_YCGCO_RE and AVCOL_SPC_YCGCO_RO
> > +  to map new matrix coefficients defined by H.273 v3.
> > +
> >  2024-03-27 - xxxxxxxxxx - lavu 59.10.100 - frame.h
> >    Add AVSideDataDescriptor, enum AVSideDataProps, and
> >    av_frame_side_data_desc().
> > diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> > index 9c708520b1..1c0bcf2232 100644
> > --- a/libavutil/pixdesc.c
> > +++ b/libavutil/pixdesc.c
> > @@ -2854,6 +2854,9 @@ static const char * const color_space_names[] = {
> >      [AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc",
> >      [AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c",
> >      [AVCOL_SPC_ICTCP] = "ictcp",
> > +    [AVCOL_SPC_IPT_C2] = "ipt-c2",
> > +    [AVCOL_SPC_YCGCO_RE] = "ycgco-re",
> > +    [AVCOL_SPC_YCGCO_RO] = "ycgco-ro",
> >  };
> >
> >  static const char * const chroma_location_names[] = {
> > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> > index 4aa20e4e58..430118d3e1 100644
> > --- a/libavutil/pixfmt.h
> > +++ b/libavutil/pixfmt.h
> > @@ -623,6 +623,9 @@ enum AVColorSpace {
> >      AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
> >      AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
> >      AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
> > +    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128
> > +    AVCOL_SPC_YCGCO_RE    = 16, ///< YCgCo-R, even addition of bits
> > +    AVCOL_SPC_YCGCO_RO    = 17, ///< YCgCo-R, odd addition of bits
> >      AVCOL_SPC_NB                ///< Not part of ABI
> >  };
>
> To aid in review as for whatever reason the 2023-09 H.273 v3 is not
> yet publicly available (even though H.274 is from the same September
> period), you can first of all see the summary in
> https://www.itu.int/itu-t/workprog/wp_item.aspx?isn=18689 .
>
> The latest related drafts from JVET-Experts
> (https://jvet-experts.org/doc_end_user/all_meeting.php being the
> index) are:
> - CICP/H.273: JVET-AD1003 v2 from
> https://jvet-experts.org/doc_end_user/current_document.php?id=12970
> - H.265: JVET-AF1006 from
> https://jvet-experts.org/doc_end_user/current_document.php?id=13584
> - H.264: JVET-AE1016 from
> https://jvet-experts.org/doc_end_user/current_document.php?id=13269
>
> Given that H.273 v3 got registered for AAP on 2023-07-21 and that the
> H.265 text is clearly from after the last call period of 2023-09-01 to
> 2023-09-28, I would consider them all matching being a pretty good
> indicator that the value 15 got utilized for IPT-C2, and 16+17 for
> YCgCo-R.

Ping for this set.

Jan


More information about the ffmpeg-devel mailing list