On Thu, May 09, 2019 at 02:54:19PM +0000, Shankar, Uma wrote: > > > >-----Original Message----- > >From: Ville Syrjälä [mailto:ville.syrj...@linux.intel.com] > >Sent: Tuesday, May 7, 2019 9:08 PM > >To: Shankar, Uma <uma.shan...@intel.com> > >Cc: Sharma, Shashank <shashank.sha...@intel.com>; intel- > >g...@lists.freedesktop.org > >Subject: Re: [Intel-gfx] [PATCH] drm/i915/icl: Handle YCbCr to RGB > >conversion for > >BT2020 case > > > >On Tue, May 07, 2019 at 02:35:15PM +0000, Shankar, Uma wrote: > >> > >> > >> >-----Original Message----- > >> >From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On > >> >Behalf Of Ville Syrjälä > >> >Sent: Tuesday, May 7, 2019 7:37 PM > >> >To: Sharma, Shashank <shashank.sha...@intel.com> > >> >Cc: intel-gfx@lists.freedesktop.org > >> >Subject: Re: [Intel-gfx] [PATCH] drm/i915/icl: Handle YCbCr to RGB > >> >conversion for > >> >BT2020 case > >> > > >> >On Tue, May 07, 2019 at 06:32:57PM +0530, Shashank Sharma wrote: > >> >> From: Uma Shankar <uma.shan...@intel.com> > >> >> > >> >> Currently input csc for YCbCR to RGB conversion handles only > >> >> BT601 and Bt709. Extending it to support BT2020 as well. > >> >> > >> >> Signed-off-by: Uma Shankar <uma.shan...@intel.com> > >> >> Signed-off-by: Shashank Sharma <shashank.sha...@intel.com> > >> >> --- > >> >> drivers/gpu/drm/i915/intel_sprite.c | 24 ++++++++++++++++++++++++ > >> >> 1 file changed, 24 insertions(+) > >> >> > >> >> diff --git a/drivers/gpu/drm/i915/intel_sprite.c > >> >> b/drivers/gpu/drm/i915/intel_sprite.c > >> >> index 44aaeac1b2ed..2536e757bec2 100644 > >> >> --- a/drivers/gpu/drm/i915/intel_sprite.c > >> >> +++ b/drivers/gpu/drm/i915/intel_sprite.c > >> >> @@ -433,6 +433,18 @@ icl_program_input_csc(struct intel_plane *plane, > >> >> 0x9EF8, 0x7800, 0xABF8, > >> >> 0x0, 0x7800, 0x7ED8, > >> >> }, > >> >> + /* > >> >> + * BT.2020 full range YCbCr -> full range RGB > >> >> + * The matrix required is : > >> >> + * [1.000, 0.000, 1.474, > >> >> + * 1.000, -0.1645, -0.5713, > >> >> + * 1.000, 1.8814, 0.0000] > >> >> + */ > >> >> + [DRM_COLOR_YCBCR_BT2020] = { > >> >> + 0x7BC8, 0x7800, 0x0, > >> >> + 0x8928, 0x7800, 0xAA88, > >> >> + 0x0, 0x7800, 0x7F10, > >> >> + }, > >> >> }; > >> >> > >> >> /* Matrix for Limited Range to Full Range Conversion */ @@ > >> >> -461,6 > >> >> +473,18 @@ icl_program_input_csc(struct intel_plane *plane, > >> >> 0x8888, 0x7918, 0xADA8, > >> >> 0x0, 0x7918, 0x6870, > >> >> }, > >> >> + /* > >> >> + * BT.2020 Limited range YCbCr -> full range RGB > >> >> + * The matrix required is : > >> >> + * [1.164, 0.000, 1.717, > >> >> + * 1.138, -0.1873, -0.6504, > >> >> + * 1.1380, 2.1417, 0.0000] > >> > > >> >Where are those 1.138 coming from? > >> > >> Hi Ville, > >> This is the original YCBCR to RGB BT2020 matrix: > >> { > >> 1.00000000000, 0.00000000000, 1.47460000000, > >> 1.00000000000, -0.16455312684, -0.57135312684, > >> 1.00000000000, 1.88140000000, 0.00000000000 }; > >> > >> We have to convert Limited Range YCbCr to Full Range RGB. Hence we need to > >apply a scale factor: > >> yscalefactor = 219.0 * normalizingfactor; cbcrscalefactor = 224.0 * > >> normalizingfactor; > >> > >> /* Scale factors are inverted for LR to FR conversion */ > >> yscalefactor = 1.0 / yscalefactor; cbcrscalefactor = 1.0 / > >> cbcrscalefactor; > >> > >> This yields the above results. > > > >Those are the coefficients for Y, so they should still be the same for all > >three output > >channels. > > > >igt_color_encoding gives me: > >|1.1644, 0.0000, 1.6787,| > >|1.1644,-0.1873,-0.6504,| > >|1.1644, 2.1418, 0.0000,| > > Ok, I used the igt_color_encoding method and able to get values what you got. > Will update the matrix. Thanks Ville. > > >Looks like we're also misprogramming the Y pre-offset for the full range > >YCbCr case. > For full range, I am getting same values as programmed above. Looks ok, can > you double check.
The matrix itself looks OK (some minor rounding differences perhaps, but nothing major). But the Y preoffset should be zero for full range YCbCr. -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx