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.

Glass to Glass latency of DM8168 1080P cap-enc-dec-display

Hi,

We would like to know glass to glass latency of DM8168 for 1080P capture-encode-decode-display. We used VC demo from ezsdk_5_11 to measure latency and we get around 180 msec latency. We also tried with VS card in DVR RDK and we get around 200 msec latency for cap-enc-dec-disp.

TI's press releases claim 50 msec latency at following link.

http://newscenter.ti.com/Blogs/newsroom/archive/2010/03/18/new-dm8168-davinci-video-soc-from-texas-instruments-offers-best-in-class-embedded-video-performance-for-video-surveillance-and-video-communications-365010.aspx

---> For video communications applications, ability to simultaneously support three channels of 1080p at 60 frames per second (fps) and reduce glass-to-glass latency below 50 milliseconds (ms) by eliminating off-chip inefficiencies with codec latency of less than 1 ms

Can someone let me know which demo we should use to get around 50 msec latency ? How you measured this latency figure ? We use timer clip as video source to measure latency numbers and we never get this number below 170 msec.

Or let me know what is the definition of glass-to-glass latency in above statement.

Thanks,

Sweta

  • Hi,

    Your understanding of glass to glass latency is correct. Latency figures what you are seeing  are present figures. Work is under progress to get the end to end glass latency under 50ms, This requires slice based operations of capture, encode, and decode drivers which is under development. We will have released figures once we complete slice operations as mentioned above.

     

    Regards,

    Hardik Shah

  • Hi Hardik,

    Thanks for clarification.

    Can you please let us know by when can we expect this release with slice based implementation ?

    Would this support be available in ezsdk only ? Or the same will be implemented in RDK releases as well ?

    Regards,

    Sweta

  • Hi,

    This will be available for ezsdk primarily for video conferencing type of use case. This wont be available for Video survelliance use case. Dates are yet to be published.

     

    Regards,

    Hardik shah

  • Ok. Thanks for the details, Hardik.

    Regards,
    Sweta

  • Sweta,

    For latency measurement, you need to take out TV/camera delay . You can do so by connecting camera to TV and meauring that. different TV/monitors have different delays.

    Also are you using notify_always mode ? We have measured ~120 ms for capture-enc-dec-sc-display in SNT based 5.03 ezsdk. This is time between, a buffers provided to capture to same buffer coming out of display.

    Regards

    Vimal

  • Hi,

    I am measuring time delay of several OMX chains.
    and i get the following results:

    CAP422->display 100msec

    CAP-DEI->dis 200msec

    Can you please explain how to use notify_always mode?

    Thanks,
    Gabi 

  • Hi guys, 

    I'm trying to create an OMX chain to capture and display as you mentioned before, this in order to measure the latency in live preview mode. I've trying to create a chain using just the Camera and display components however I haven't gotten good results, since it seems that the desicaler element is always needed connected to the encoder (using capture_dei_encode.oms as reference), otherwise the chain stops, could you provide your omtb script to do CAP422->display? thus we could test the latency and check if we get the same results?

    Thanks in advance for your help,

    -David

  • Sorry, my mistake, I was able to create a live preview script, here it is, it could be useful for someone:

    omx api init
    omx setp 0 vfcc compname OMX.TI.VPSSM3.VFCC
    omx setp 0 tvp compname OMX.TI.VPSSM3.CTRL.TVP
    omx setp 0 dc insmod_hdmi disable
    #I/P Port or O/P Port Params for VFCC
    omx setp 0 vfcc numoutbuf 6
    omx setp 0 vfcc frame_width 1920
    omx setp 0 vfcc frame_height 1080
    omx setp 0 vfcc op_chromat_format 422YUYV
    omx setp 0 vfcc outbufalign 0
    omx setp 0 vfcc outbuf_contig disable
    omx setp 0 vfcc outbufsize 6220800
    omx setp 0 vfcc data_opmode driver
    omx setp 0 vfcc outbuf allocate
    omx setp 0 vfcc outbufsize_flag disable
    omx setp 0 vfcc numoutbuf 6
    omx setp 0 vfcc outbuf_contig disable
    omx setp 0 vfdc frame_width 1920
    omx setp 0 vfdc frame_height 1080
    omx setp 0 vfdc ip_chromat_format 422YUYV
    omx setp 0 vfdc numinbuf 6
    omx setp 0 vfdc inbufalign 0
    omx setp 0 vfdc inbuf_contig disable
    omx setp 0 vfdc inbufsize 6220800
    omx setp 0 vfdc inbuf use
    omx setp 0 vfdc graphics_flag disable
    omx setp 0 vfdc mosaic_window_config vs
    omx setp 0 dc insmod_hdmi disable
    omx api gethandle tvp 0 0
    omx api gethandle vfcc 0 0
    omx api gethandle vfdc 0 0
    omx api gethandle dc 0 0
    #SET ALL THE PARAMS FOR TVP
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortID eHwPortId vip1_porta
    omx api setparam tvp 0 0 0 OMX_TI_IndexParamVFCCHwPortID
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eCaptMode sc_non_mux
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eVifMode 16_bit
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eInColorFormat 422YUYV
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eScanType progressive
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties nMaxWidth 1920
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties nMaxHeight 1080
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties nMaxChnlsPerHwPort 1
    omx api setparam tvp 0 0 0 OMX_TI_IndexParamVFCCHwPortProperties
    omx setp 0 tvp OMX_TI_IndexParamCTRLVidDecInfo videoStandard 1080P60
    omx setp 0 tvp OMX_TI_IndexParamCTRLVidDecInfo videoDecoderId tvp7002
    omx setp 0 tvp OMX_TI_IndexParamCTRLVidDecInfo videoSystemId auto_detect
    omx api setparam tvp 0 0 0 OMX_TI_IndexParamCTRLVidDecInfo
    #************************************************************
    #SET ALL THE PARAMS FOR VFCC
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortID eHwPortId vip1_porta
    omx api setparam vfcc 0 0 0 OMX_TI_IndexParamVFCCHwPortID
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eCaptMode sc_non_mux
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eVifMode 16_bit
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eInColorFormat 422YUYV
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eScanType progressive
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties nMaxWidth 1920
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties nMaxHeight 1080
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties nMaxChnlsPerHwPort 1
    omx api setparam vfcc 0 0 0 OMX_TI_IndexParamVFCCHwPortProperties
    omx setp 0 vfcc OMX_TI_IndexParamBuffMemType eBufMemoryType default
    omx api setparam vfcc 0 0 0 OMX_TI_IndexParamBuffMemType
    omx setp 0 vfcc OMX_IndexParamCompBufferSupplier eBufferSupplier unspecified
    #omx api setparam vfcc 0 0 0 OMX_IndexParamCompBufferSupplier
    omx setp 0 vfcc OMX_TI_IndexConfigVFCCFrameSkip frameSkipMask 0
    #omx api setconfig vfcc 0 0 0 OMX_TI_IndexConfigVFCCFrameSkip
    omx setp 0 vfcc OMX_IndexParamVideoInit nPorts 16
    omx setp 0 vfcc OMX_IndexParamVideoInit nStartPortNumber 0
    #omx api setparam vfcc 0 0 0 OMX_IndexParamVideoInit
    omx setp 0 vfdc OMX_TI_IndexParamVFDCDriverInstId nDrvInstID 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCDriverInstId eDispVencMode 1080p60
    omx api setparam vfdc 0 0 0 OMX_TI_IndexParamVFDCDriverInstId
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winStartX 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winStartY 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winWidth 1920
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winHeight 1080
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout pitch.VFDC_YUV_INT_ADDR_IDX 3840
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout pitch.VFDC_YUV_SP_Y_ADDR_IDX 3840
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout pitch.VFDC_YUV_SP_CBCR_ADDR_IDX 3840
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout dataFormat 422I_YUYV
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout bpp bits16
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout priority 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout nLayoutId 0
    omx setp 0 vfdc mosaicNumRows 1
    omx setp 0 vfdc mosaicNumCols 1
    omx setp 0 vfdc mosaicDispWindowWidth 1920
    omx setp 0 vfdc mosaicDispWindowHeight 1080
    omx api setparam vfdc 0 0 0 OMX_TI_IndexParamVFDCCreateMosaicLayout
    omx setp 0 vfdc OMX_TI_IndexConfigVFDCMosaicPort2WinMap nLayoutId 0
    omx api setconfig vfdc 0 0 0 OMX_TI_IndexConfigVFDCMosaicPort2WinMap 1 0
    omx setp 0 vfdc OMX_TI_IndexParamBuffMemType eBufMemoryType default
    omx setp 0 vfdc OMX_IndexParamCompBufferSupplier eBufferSupplier unspecified
    omx setp 0 vfdc OMX_IndexParamVideoInit nPorts 1
    omx setp 0 vfdc OMX_IndexParamVideoInit nStartPortNumber 0
    omx api getparam vfdc 0 0 0 OMX_IndexParamPortDefinition
    omx setp 0 vfdc OMX_IndexParamPortDefinition video.nStride 3840
    omx api setparam vfdc 0 0 0 OMX_IndexParamPortDefinition
    #************************************************************
    #SET ALL THE PARAMS FOR DC#0
    omx setp 0 dc OMX_TI_IndexParamVFDCDriverInstId nDrvInstID 0
    omx setp 0 dc OMX_TI_IndexParamVFDCDriverInstId eDispVencMode 1080p60
    omx api setparam dc 0 0 0 OMX_TI_IndexParamVFDCDriverInstId
    omx api sendcommand port vfcc 0 enable 0
    omx api sendcommand port vfcc 0 waitforsem 0
    omx api sendcommand port vfdc 0 enable 0
    omx api sendcommand port vfdc 0 waitforsem 0
    omx api connect vfcc 0 0 vfdc 0 0
    omx api sendcommand state vfcc 0 idle
    omx api sendcommand state vfcc 0 waitforsem
    omx api sendcommand state tvp 0 idle
    omx api sendcommand state tvp 0 waitforsem
    omx api sendcommand state dc 0 idle
    omx api sendcommand state dc 0 waitforsem
    omx api sendcommand state vfdc 0 idle
    omx api sendcommand state vfdc 0 waitforsem
    omx api sendcommand state dc 0 exec
    omx api sendcommand state dc 0 waitforsem
    omx api sendcommand state vfdc 0 exec
    omx api sendcommand state vfdc 0 waitforsem
    omx api sendcommand state vfcc 0 exec
    omx api sendcommand state vfcc 0 waitforsem
    omx api sendcommand state tvp 0 exec
    omx api sendcommand state tvp 0 waitforsem
    sleep 10000
    omx api sendcommand state vfcc 0 idle
    omx api sendcommand state vfcc 0 waitforsem
    omx api sendcommand state tvp 0 idle
    omx api sendcommand state tvp 0 waitforsem
    omx api sendcommand state dc 0 idle
    omx api sendcommand state dc 0 waitforsem
    omx api sendcommand state vfdc 0 idle
    omx api sendcommand state vfdc 0 waitforsem
    omx api sendcommand state vfcc 0 loaded
    omx api sendcommand state vfcc 0 waitforsem
    omx api sendcommand state tvp 0 loaded
    omx api sendcommand state tvp 0 waitforsem
    omx api sendcommand state dc 0 loaded
    omx api sendcommand state dc 0 waitforsem
    omx api sendcommand state vfdc 0 loaded
    omx api sendcommand state vfdc 0 waitforsem
    omx api freehandle vfcc 0
    omx api freehandle tvp 0
    omx api freehandle dc 0
    omx api freehandle vfdc 0
    I will measure the latency and I will let you know our results,
    
    
    -David

     

  • What is the status of the slice supported version of the EZSDK?

  • Hi,

    Slice based processing is not supported in EZSDK.

    Regards

    Vimal

  • Thanks for the reply.

    I realize that, but at one time, it was announced that TI would be adding support for slice based processing to the EZSDK.  Has TI abandoned this effort or is it just delayed?  If abandoned, how is TI going to support the 50ms glass to glass latency that they originally claimed was possible with the DM81xx SOCs.

    Jerry

  • Jerry,

    Are you looking for a low latency solution in EZSDK? Its possible to implement this. 

  • Yes, I am looking for a low latency version of the EZSDK; one that supports slices, intra-refresh, and a constant bit-rate for H.264.

  • Jerry,

    We've lot of experience in Low latency solutions on Davinci platforms. Do mail me @ renjith.thomas@pathpartnertech.com and we can discuss this offline.

  • Hi Thomas,

    I am interested to know about Low latency and glass to glass latency solutions on DM8168 platform.

    Please share me the details.

    He-Man

  • He-Man,

    Could you please send me an email. I can connect you with the low-latency team here.