[FFmpeg-trac] #11182(swscale:closed): yuvtestsrc and yuv444p->rgba->yuv444p conversion result in huge difference

FFmpeg trac at avcodec.org
Sun Sep 15 22:27:28 EEST 2024


#11182: yuvtestsrc and yuv444p->rgba->yuv444p conversion result in huge difference
-------------------------------------+-------------------------------------
             Reporter:  Andrew-R     |                    Owner:  (none)
                 Type:  defect       |                   Status:  closed
             Priority:  normal       |                Component:  swscale
              Version:  unspecified  |               Resolution:  invalid
             Keywords:  colorspace   |               Blocked By:
  color_primaries                    |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by Balling):

 I already see one mistake in mozilla calculator, they use Precision that
 is 5. It needs to be only 4 for ycbcr to rgb, but Precision of rgb to
 ycbcr matrix must be increased if you are working with 14 bits or 12 bits
 per channel. See: "The decoding matrix for BT.2020-NCL is this with 14
 decimal places" here https://en.wikipedia.org/wiki/YCbCr

 Let us check some stuff with that calculator. First of all there is a rule
 that when you convert 8 bit YCbCr to 10 bit YCbCr you just multiply by 4,
 even if this is suboptimal that was how ITU defined it. That means that
 235 is just multiplied by 4 and you get 940 and that is the same value.
 Indeed, both 8 bit value of 235, 128, 128 and 940, 512, 512 decode to
 perfect values 255, 255, 255 and 1023, 1023, 1023, both of them are
 reference white. Very cute. Same for 64, 512, 512 is perfect 0, 0, 0.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11182#comment:49>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list