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.

TDA2EG: Display size scale issue

Part Number: TDA2EG

Hi

     I am working on the display example pdk_01_08_00_16\packages\ti\drv\vps\examples\dss\displayDss.

     My hardware configuration is like this:

    1 An custom board based on TDA2EX, which uses an MAX9275 serializer (support up to 720P) to display the video data through VOUT1;

    2 An LCD based on MAX9276 to deserialize and display the video data.

    The input data is "pdk_01_08_00_16\packages\ti\drv\vps\docs\test_inputs\dss_input_files\display_yuyv422_prog_packed_1920_1080.tigf", which is 1080P

    And in the DisplayDss_main.h, i change the related parameters to " standard FVID2_STD_720P_60","inWidth 1280", "inHeight 720".

    The display result is as follows: 

     

     And the correct result should be:

    

     So, we can see that the display result on my LCD is just about 2/3 of the correct result. 

     The input data is 1080P, but my output configuration is 720P as my serializer can only support up to 720P. I think this may be the reason of above abnormal display.

     So i think i need to scale the input from 1080P to 720P firstly, then i can display it correctly.

     I want to ask that how should i to do the scale? with VPE?

Thanks

xuanbo

  • And there is a scaler unit in the video pipeline, which can be also used to upsampling and downsampling picture.
    So can this solution meet my requirement? And which one is easier?
  • Hi Xuanbo,

    It will be easier to use the DSS scaler present in video pipeline. You need to set scEnable to TRUE.
    Search for scEnable in the same example to see how it is used.
    Hope this works.

    Regards,
    Rishabh
  • Hi xuanbo,

    First the input image itself is 1920x1080 and when you use it for 720p display, display example picks up 1280x720 top-left portion of the input image and displays it since your input width and height are set to 1280x720.
    If you want to display full image, then you need to set inWidth and inHeight to 1920x1080 and enable the scalar as Rishabh mentioned.

    Rgds,
    Brijesh
  • Hi Brijesh

    Yes, i found that my display result is only 1280x720 top-left portion of the input image which is 1920*1080. So i think i need to scale it.
    If the InWidth and inHeight need to be set to 1920x1080, how about the standard params? FVID2_STD_720P_60 or FVID2_STD_1080P_60?
    Actually, i have tried a lot of combinations of these params, and it is still not work...

    Thanks
    xuanbo
  • xuanbo,

    No, please don't change standard.

    Please change size as shown below.
    dssPrms.inFmt.width = 1280
    dssPrms.inFmt.height = 720
    dssPrms.tarWidth = 1920
    dssPrms.tarHeight = 1080

    Rgds,
    Brijesh
  • Minor correction. It should be other way

    dssPrms.inFmt.width = 1920
    dssPrms.inFmt.height = 1080
    dssPrms.tarWidth = 1280
    dssPrms.tarHeight = 720

    In fact the DSS application already supports this without any modification in the app code - all are exposed in the test params. Instead of setting the in width/height as below

            {
                /* inWidth */
                DISP_APP_USE_LCD_WIDTH,
            },
            {
                /* inHeight */
                DISP_APP_USE_LCD_HEIGHT,
            },

    Set to

            {
                /* inWidth */
                1920,
            },
            {
                /* inHeight */
                1080
            },

  • Hi Sivaraj

    Thank you for your suggestion. And i also thank Brijesh and Rishabh for their good suggestions.
    Now it is worked, and the full image has been displayed in my LCD perfectly.
    I have tried to change the dssPrms as you said before i posted this question, but with standard FVID2_STD_1080P_60. And it didn't work. I think the standard parameter is the problem.

    So, i have some conceptual problems need to be clear:
    inWidth/Height: Input buffer resolution in pixels; So if the input video data is 1080P, here should be 1920*1080; This is also the input size of video pipeline;
    dispWidth/Height: which is decided by "FVID2_STD_720P_60" param? If the standard param is FVID2_STD_720P_60, then dispWidth/Height is 1280*720. And if the standard param is FVID2_STD_1080P_60, then dispWidth/Height is 1920*1080. This param should be matched with display device or serializer i used?
    tarWidth/Height: what does this pair of params mean for? I just know that this is the output size of video pipeline, and if they are different with inWidth/Height, the scaler will work. But what does these mean in physical terms?

    Thanks
    xuanbo
  • Hi xuanbo,

    There is an overlay manager, which gets input from multiple video pipelines and outputs video frame equal to display size. Lets say if your display 1080p, overlay manager outputs 1920x1080 frame size. Now the input to your overlay manager can be of smaller size than actual display frame and then there is a scalar in the video pipeline. so essentially, there are three frame sizes, input frame size, scalar output frame size and finally display frame size. tarWidth/tarHeight refers to the frame size input to the overlay manager. Or the otherway scalar output frame size.

    Rgds,
    Brijesh
  • Hi Brijesh

         Thank you for your explanation.

         I have another question about pipeline scalar:

         As i know, the graphic pipeline does not support scale. For the usecase "csi2_cal_sv_standalone", if the display device support 1080P, the correct display should be like this:

        But for my display device, which support up to 720P, i made the scale for the video1 pipeline by the method above. The display result is like this:

      

        From the result, i think the data come from video1 pipeline has been scaled correctly to adapt to my LCD.

        But the graphic elements such as Jeep image and text are not scaled as graphic pipeline does not support scale.

        Although i can modify the GrpxSrcLink_drawSurroundViewStandaloneLayout ( grpxSrcLink_svStandalone_layout.c ) to move the graphic elements postiion, but i think it is not a good way. For example, Jeep image's position can be changed, but Jeep image's size can not be changed.(As you see ,the current Jeep image is a little too large for my LCD)

       So, what should i do to adapt the display result to my LCD perfectly?

    Thanks

    xuanbo

  • Hi Xuanbo,

    I see that you have started a new thread for this new question e2e.ti.com/.../671588
    I will close this thread.

    Regards,
    Rishabh
  • Hi xuanbo,

    Unfortunately, we dont have grpx scalar. May be you could offline scalar graphics image using some PC tools and then can use it.

    Rgds,

    Brijesh

  • Hi Brijesh

    OK, i got it.
    I also have another thread about draw graphics image "e2e.ti.com/.../671324"
    So could you kindly see this thread and give me some suggestions?

    Thanks
    xuanbo