0

When I go through the details of High dynamic range feature, I have come across ICtCp color format (Rec.2020). Is this similar to YCbCr? What is the exact difference between YCbCr and ICtCp? Can I pass ICtCp buffer to video encoder (H264/avc or H265/hevc) directly?

stackuser
  • 629
  • 8
  • 19

2 Answers2

1

YCbCr and ICtCP are all luma/chroma color space. The difference between them is the chroma channels. HDR has been included in H.265. x265 only supported raw YUV or Y4M but you can have a try.

Wang
  • 145
  • 5
  • Thanks a lot Wang, I understand that there is a difference in YUV and ICtCp w.r.t. chroma data. H.265 can accept ICtCp directly. What about H264? do we need to convert from ICtCp to YUV before feeding to H264? – stackuser Nov 01 '19 at 18:25
0

You can feed it, but only with zscale, not with old but more precise for old YCbCr swscale.

See commands here: https://github.com/sekrit-twc/zimg/issues/138

ffmpeg -v debug -f rawvideo -pix_fmt rgb48le -s:v 192x108 -i SCD_192x108.rgb48.rgb -vf format=gbrp16le,zscale=rangein=full:range=full:npl=10000:matrixin=input:transferin=smpte2084:primariesin=2020:matrix=ictcp:transfer=smpte2084:primaries=2020,format=yuv444p16le -f rawvideo FFMPEG_ICTCP_SCD_192x108.rgb48.plr.ffmpeg.yuv