[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