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.

How to adjust HDMI output to fit orignal source in 8148?

Dear all,

        We found the HDMI output is not the same with original source.  We know we can set register 0x46c00524(VID_ACEN) to adjust HDMI output.  But the original source can not meet the measured signal.  For example, when we set this register to 0x0,  the source gray color range from 0~17 is measured to 1, range from 235~255 is measured to 254.  When set this register to 0x2, the source gray color(range from 0~17 is measured to 16, range from 235~255 is measured to 234.  Could we let the HDMI output signal be the same with the original signal?  And any other registers can be set to do this?  Thanks a lot.

Sincerely,

James

  • You will also need to make sure that the VENC configuration matches the expected range for the HDMI core.

    This clamping that you are seeing looks like the VENC is range expanding, possibly with the color space converter.

    How are you generating your 'source'? Are you placing known values in the frame buffer or are you using the complete capture-display path?

    To analyze exactly what is going on I suggest placing known values directly in the frame buffer initially as a test.

    Next, can you create a mapping table where you cycle through input values from 0 to 255 and list what output value you get? This will help me understand if this is a scaling issue or a clipping issue or both.

    I am not on the software team so I don't know how software configures the path, but there is a lot of flexibility in each stage and each stage needs to be aligned with the others.

    Someone from the software team may be able to directly answer. Hopefully they will chip in :)

    BR,

    Steve

  • Dear Steve,

         The method we measure is as below.  We generated a jpg file which gray scale is 0~255. The link structure is

    dec-> swMs -> display.  (Use dec to decode jpeg file) Then we measured the HDMI output signal.  Below is the result.  From source 57 ~ 194 is not measured.

    source measured signal
    register set 0
    measure signal
    register set 2
    0 1 16
    1 1 16
    2 1 16
    3 1 16
    4 1 16
    5 1 16
    6 1 16
    7 1 16
    8 1 16
    9 1 16
    10 1 16
    11 1 16
    12 1 16
    13 1 16
    14 1 16
    15 1 16
    16 1 16
    17 1 16
    18 2 17
    19 3 18
    20 4 19
    21 5 20
    22 7 22
    23 8 22
    24 9 23
    25 10 24
    26 11 25
    27 12 26
    28 14 28
    29 15 28
    30 16 29
    31 17 30
    32 18 31
    33 19 32
    34 21 34
    35 22 34
    36 23 35
    37 24 36
    38 25 37
    39 26 38
    40 28 40
    41 29 40
    42 30 41
    43 31 42
    44 32 43
    45 33 44
    46 35 46
    47 36 46
    48 37 47
    49 38 48
    50 39 49
    51 40 50
    52 42 52
    53 43 52
    54 44 53
    55 45 54
    56 46 55
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194 207 193
    195 208 194
    196 209 195
    197 210 196
    198 211 197
    199 213 198
    200 214 199
    201 215 200
    202 216 201
    203 217 202
    204 218 203
    205 220 204
    206 221 205
    207 222 206
    208 223 207
    209 224 208
    210 225 209
    211 227 210
    212 228 211
    213 229 212
    214 230 213
    215 231 214
    216 232 215
    217 234 216
    218 235 217
    219 236 218
    220 237 219
    221 238 220
    222 239 221
    223 241 222
    224 242 223
    225 243 224
    226 244 225
    227 245 226
    228 246 227
    229 248 228
    230 249 229
    231 250 230
    232 251 231
    233 252 232
    234 253 233
    235 254 234
    236 254 234
    237 254 234
    238 254 234
    239 254 234
    240 254 234
    241 254 234
    242 254 234
    243 254 234
    244 254 234
    245 254 234
    246 254 234
    247 254 234
    248 254 234
    249 254 234
    250 254 234
    251 254 234
    252 254 234
    253 254 234
    254 254 234
    255 254 234

     We want to HDMI output signal is just as the same with the orignal source (jpg file).  Especially for color signal.  Please give us some suggections how to achieve it.  Thank you very much.

    Sincerely,

    James

  • Hi James,

     

    On HDMI output,  VENC CSC is bypassed since its input and output formats are same ie RGB888. But there is an CSC in the Video pipeline to convert from the YUV444 to RGB888, may be this CSC requires change to output in full range RGB. There are API on M3 to change the CSC coefficients, but i am not sure if it is available on A8. Could you tell me which framework you are using?

     

    Rgds,

    Brijesh

  • Dear Brijesh,

        We use DVR RDK v3.0 GA.  Could you tell me how to change the CSC coefficients?  Thanks a lot.

    Sincerely,

    James

     

  • Hi James,

     

    There is a component called display controller on M3 driver. This component controls all VENCs and these CSCs. One of the create time parameters for display controller is pointer to the CSC configuration. You could pass CSC configuration that you require or you could use one of the predefined CSC configuration. There are different CSC configuration pointers for different CSCs in the path. Please select the one dependin on the display path you are using.

    You could get more details about create time parameters in M3 drivers user guide.

     

    Rgds,

    Brijesh

  • Using Encode -> Decode -> SWMS -> Display could change the samples at different places and issue need not be with the display.

     

    1. First as Brijesh mentioned use fbdev to display RGB 888 and check there is no issue.

    2. Create pipeline as ipcFramesOut (A8) -> ipcFramesIn (M3VPSS) -> displayLink - This bypasses possible decode quantization and scaler modifications and directly feeds frames to display.

    If you see issue with (2) then go in for CSC tuning as suggested by Brijesh.

  • Dear Badri,

    After I survey "High-Definition Video Processing Subsystem (HDVPSS) Technical Reference Manual, I found HD_VENC may affect output result.  But in Fig. "109 HD VENC Block Diagram" in this document, I have questions. If BYPS_CS set 1, the DVO will bypass the signal? Because BYPS_CS is used to select CSC Bypass Mux.  And the bypass output seems no path to DVO.  So DVO must come from CSC result(no bypass)?  If BYPS_CS set 1, then no CSC is done?  I have some confusion about this.  Please give me the correct information so I can do further experiments.  Thanks a lot.

    Sincerely,

    James

  • Dear Badri,

          Fig. 109 is as below for quick reference:1057.Fig109.pdf

    Thank you very much.

    Sincerely,

    James

  • CSC will be bypassed even for the DVO outputs when BYS_SC is set to one. In fact, there is a way to get the input of CSC to the DVO.

     

    Regards,

    Brijesh