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.

DM816x VPSS capture resolutions

Other Parts Discussed in Thread: TVP7002

Hi,

      I am using DM816x with EZSDK 5.05.02.00, we are planning to capture several resolutions using the VIP0, looking into the documentation and other posts I found that the VPSS driver can capture until 1920x1200 with the correct reduce VESA blanking, however, it is not mentioned a list of resolutions supported in that range, we are planning to support:

640 x 480   60 Hz 25.175 MHz
800 x 600   60 Hz 40.000 MHz
848 x 480   60 Hz 33.750 MHz
1024 x 768 60 Hz 65.000 MHz
1280 x 768 60 Hz 68.250 MHz
1280 x 800 60 Hz 71.000 MHz
1280 x 960 60 Hz 108.000 MHz
1280 x 1024 60 Hz 108.000 MHz
1360 x 768   60 Hz 85.500 MHz
1400 x 1050 60 Hz 101.000 MHz
1440 x 900   60 Hz 88.750 MHz
1600 x 900   60 Hz 97.750 MHz
1600 x 1200 60 Hz 162.000 MHz
1680 x 1050 60 Hz 119.000 MHz
1920 x 1080 60 Hz 148.500 MHz
1920 x 1200 60 Hz 154.000 MHz

Do you know if these resolutions are supported by the VPSS driver? I know that V4L2 will need to be extended to support these resolutions.

Thanks for your help,

-David

  • Hello David,

    Per TVP7002 documentation

    http://www.ti.com/lit/ds/symlink/tvp7002.pdf

    Supports Component Video Standards

    480i, 576i,480p,576p,720p,1080i,and 1080p

    David Soto - RidgeRun said:
    Do you know if these resolutions are supported by the VPSS driver?

    If we are asking for capture, most of them are not tested on our side with OMX.

    You could check in the overlay package the ctrl component tvp folder.

    Best Regards,

    Margarita

  • Here are the supported VPSS timings (from hdmi.c)

    struct video_timings all_timings_direct[VIDEO_TIMINGS_NB] = {
        {640, 480, 25200, 96, 16, 48, 2, 10, 33},
        {1280, 720, 74250, 40, 440, 220, 5, 5, 20},
        {1280, 720, 74250, 40, 110, 220, 5, 5, 20},
        {720, 480, 27027, 62, 16, 60, 6, 9, 30},
        {2880, 576, 108000, 256, 48, 272, 5, 5, 39},
        {1440, 240, 27027, 124, 38, 114, 3, 4, 15},
        {1440, 288, 27000, 126, 24, 138, 3, 2, 19},
        {1920, 540, 74250, 44, 528, 148, 5, 2, 15},
        {1920, 540, 74250, 44, 88, 148, 5, 2, 15},
        {1920, 1080, 148500, 44, 88, 148, 5, 4, 36},
        {720, 576, 27000, 64, 12, 68, 5, 5, 39},
        {1440, 576, 54000, 128, 24, 136, 5, 5, 39},
        {1920, 1080, 148500, 44, 528, 148, 5, 4, 36},
        {2880, 480, 108108, 248, 64, 240, 6, 9, 30},
        {1920, 1080, 74250, 44, 638, 148, 5, 4, 36},
        /*Vesa frome here*/
        {640, 480, 25175, 96, 16, 48, 2 , 11, 31},
        {800, 600, 40000, 128, 40, 88, 4 , 1, 23},
        {848, 480, 33750, 112, 16, 112, 8 , 6, 23},
        {1280, 768, 79500, 128, 64, 192, 7 , 3, 20},
        {1280, 800, 83500, 128, 72, 200, 6 , 3, 22},
        {1360, 768, 85500, 112, 64, 256, 6 , 3, 18},
        {1280, 960, 108000, 112, 96, 312, 3 , 1, 36},
        {1280, 1024, 108000, 112, 48, 248, 3 , 1, 38},
        {1024, 768, 65000, 136, 24, 160, 6, 3, 29},
        {1400, 1050, 121750, 144, 88, 232, 4, 3, 32},
        {1440, 900, 106500, 152, 80, 232, 6, 3, 25},
        {1680, 1050, 146250, 176 , 104, 280, 6, 3, 30},
        {1366, 768, 85500, 143, 70, 213, 3, 3, 24},
        {1920, 1080, 148500, 44, 88, 80, 5, 4, 36},
        {1280, 768, 68250, 32, 48, 80, 7, 3, 12},
        {1400, 1050, 101000, 32, 48, 80, 4, 3, 23},
        {1680, 1050, 119000, 32, 48, 80, 6, 3, 21},
        {1280, 800, 79500, 32, 48, 80, 6, 3, 14},
        {1280, 720, 74250, 40, 110, 220, 5, 5, 20} };

    struct video_timings {
        /* Unit: pixels */
        __u16 x_res;
        /* Unit: pixels */
        __u16 y_res;
        /* Unit: KHz */
        __u32 pixel_clock;
        /* Unit: pixel clocks */
        __u16 hsw;    /* Horizontal synchronization pulse width */
        /* Unit: pixel clocks */
        __u16 hfp;    /* Horizontal front porch */
        /* Unit: pixel clocks */
        __u16 hbp;    /* Horizontal back porch */
        /* Unit: line clocks */
        __u16 vsw;    /* Vertical synchronization pulse width */
        /* Unit: line clocks */
        __u16 vfp;    /* Vertical front porch */
        /* Unit: line clocks */
        __u16 vbp;    /* Vertical back porch */
    };

    Hope that helps. It's HDMI which isn't identical to VPSS but if it's supported by HDMI it will certainly be supported by the VPSS.

    Ralph

  • Hi _Ralph_ and Margarita,

      In case of the TVP7002 present in the EVM I think that wouldn't be a problem since we would be using a hardware that doesn't have the TVP and instead an FPGA could be used to feed the video signals.

      In case of the file hdmi.c, _Ralph_ is right, those are the resolutions supported on the display side but I wonder if the capture part of the VPSS has been validated with the vesa resolutions that we are trying to support. Maybe OMX is not ready to use all them but I think V4L2 would be more flexible to access all the VPSS driver functions through the FVID2 API.

     So it would be nice to hear if someone has tried those resolutions or some of them, I have tried 1080p, 480i, 720p and I have read that 1920x1200 is also possible but not idea about the other ones.

    Thanks,

    -David

     

  • Capture has no resolution specific configuration. VIP will capture frame based on synch codes subject to maximum clock of 165 Mhz.Input can be any resolution (subject to VPDMA max resolution limitation).It is applications responsibility to allocate correctly sized output buffers and set correct value for VIP maxWidth and maxHeight.

  • Thanks for your answer Badri,

    -David