This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Question about problem that color levels fall in the DM816x

Hi,

I'm using DM816x vpss Video driver, but when input the 1920x1080 YUV420(NV12) 100% color bar

from the decoder to the scaler, color levels fall after the  Display Controller. 

I show the YUV value before and after  Display Controller below. 

I want to mach the  YUV value before and after  Display Controller.

                        white green red blue black
      Y U V Y U V Y U V Y U V Y U V
before Display Controller 235 128 128 144 54 34 82 90 240 41 240 109 16 128 128
after Display Controller 216 128 128 136 61 49 72 96 222 38 226 113 16 128 128

So, I use vpss driver user guide as reference and check the settings of vpss driver and change nodes

from vcompmux:dvo2 to hdcompmux:dvo2.

After change nodes, problem that color levels fall became a little better, but YUV value before

and after  Display Controller do not match. 

I show the YUV value before and after  Display Controller when change nodes

from vcompmux:dvo2 to hdcompmux:dvo2 below.

      white green red blue black
      Y U V Y U V Y U V Y U V Y U V
before Display Controller 235 128 128 144 54 34 82 90 240 41 240 109 16 128 128
after Display Controller 234 127 128 147 55 42 77 93  230 40 235 112 16 127 127

After that I found that hdcomp has Following some CSC mode and change this mode

by changing source of dctrl.c.

But, in case of the default mode(VPS_CSC_MODE_HDTV_GRAPHICS_Y2R) , YUV value before

and after  Display Controller was the most close.

enum vps_cscmode {
VPS_CSC_MODE_SDTV_VIDEO_R2Y = 0,
/**< Select coefficient for SDTV Video */
VPS_CSC_MODE_SDTV_VIDEO_Y2R,
/**< Select coefficient for SDTV Video */
VPS_CSC_MODE_SDTV_GRAPHICS_R2Y,
/**< Select coefficient for SDTV Graphics */
VPS_CSC_MODE_SDTV_GRAPHICS_Y2R,
/**< Select coefficient for SDTV Graphics */
VPS_CSC_MODE_HDTV_VIDEO_R2Y,
/**< Select coefficient for HDTV Video */
VPS_CSC_MODE_HDTV_VIDEO_Y2R,
/**< Select coefficient for HDTV Video */
VPS_CSC_MODE_HDTV_GRAPHICS_R2Y,
/**< Select coefficient for HDTV Graphics */
VPS_CSC_MODE_HDTV_GRAPHICS_Y2R,
/**< Select coefficient for HDTV Graphics */
VPS_CSC_MODE_MAX,
/**< Should be the last value of this enumeration.
Will be used by driver for validating the input parameters. */
VPS_CSC_MODE_NONE = 0xFFFFu
/**< Used when coefficients are provided */
};

Also, I tried to change the Following parameters of the CPROC in vcomp in user settings,

but can not match  YUV value before and after Display Controller.

struct vps_cprocciecamcfg {
u32 multcoeff[VPS_CPROC_NUM_COEFF][VPS_CPROC_NUM_COEFF];
/**< Multiplication coefficients in the format
A0, B0, C0 in the first row,
A1, B1, C1 in the second row,
and A2, B2, C2 in the third row. */
u32 s, t, a, cz;

u32 gy, gub, guy, gvg, vgr;
} ;

struct vps_cprocuciecamcfg {
u32 multcoeff[VPS_CPROC_NUM_COEFF][VPS_CPROC_NUM_COEFF];
/**< Multiplication coefficients in the format
A0, B0, C0 in the first row,
A1, B1, C1 in the second row,
and A2, B2, C2 in the third row. */
u32 a, cz, s, x0;
} ;

So,Could you tell me CPROC of parameters, such as YUV value before and after Display Controller match,

or, something else a solution?

Thanks,

fumiya tanaka

  • Hello,

    What is the software release that you are using here?

    Best Regards,
    Margarita
  • Margarita,

    I'm using EZSDK 5.05.02.00.
    But version only HDVPSS is EZSDK 5.05.01.04.
    I must use EZSDK 5.05.01.04 because when I use EZSDK 5.05.02.00,
    fall out only one of the fields of 1080I60 data.

    Best Regards,
    fumiya tanaka
  • Hello,

    Are you seeing the same issue With EZSDK 5.05.02 with hdvpss_01_00_01_44?

    BR
    Margarita

  • Margarita,

    I'm seeing the same issue with EZSDK 5.05.02 with hdvpss_01_00_01_44.
    But YUV value after Display Controller was different.
    I shows the YUV value after Display in the case of EZSDK 5.05.02 below(vcompmux).

                            white green red blue black
          Y U V Y U V Y U V Y U V Y U V
    before Display Controller 235 128 128 144 54 34 82 90 240 41 240 109 16 128 128
    after Display Controller
    5.05.01.04
    216 128 128 136 61 49 72 96 222 38 226 113 16 128 128
    after Display Controller
    5.05.02.00
    216 128 128 162 53 40 69 105 222 42 223 118 28 128 128





    Best Regards,
    fumiya tanaka

  • Hi,

    I was able to solve this problem by myself.
    I changed nodes from vcompmux:dvo2 to hdcompmux:dvo2 and
    the hdcomp CSC mode from HDTV_GRARHICS_Y2R(FULL) to
    HDTV_VIDEO_Y2R(LIMITED) and hdvenc CSC mode from HDTV_GRAPHICS_R2Y (FULL)
    to HDTV_VIDEO_R2Y(LIMITED).
    Then, YUV value before and after the Display Controller is match.

    I think it was caused by while I was using the LIMITED YUV DATA(Y:16~235 U,V:16~240),
    CSC mode was FULL(YUV: 0~255).

    Margarita, Thank you for reply to my question.


    Best Regards,
    fumiya tanaka
  • Hi Fumiya
    I have a pink tint in a write-back video capture due to the above issue. Could you please provide me a patch or file location