[FFmpeg-devel] [PATCH 1/4] avutil/pix{desc, fmt}: add new matrix coefficients from H.273 v3
Jan Ekström
jeebjp at gmail.com
Fri Mar 29 20:32:37 EET 2024
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.
Jan
More information about the ffmpeg-devel
mailing list