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 H.264 latency

Would you be aware of the latency spec for the H.264 encode on the Davinci Digital media Processor.

(TMS320DM816x)
-Tom-
  • Tom,

    Did you get your answer elsewhere? If you found the answer you wanted, please post it here.

    Regards,
    RandyP

  • RandyP,

    I did not get an answer.

    -Tom-

  • Tom,

    I would have thought that this info would be in the codec datasheet, but I don't see any latency numbers.  The DM8168 codec DS is still in draft version, so maybe that is coming later.  I'll see if can get some info from the product team.

    Regards.

  • How to compute Latency Number for a given Codec

    The video codecs having low latency support on HDVICP2.0 can provide latency in the range of ~2 ms.

    Below steps explains how to compute latency number of a codec on HDVICP2.0

    • Refer the Data sheet of the codec - it mentions the HDVICP2.0 MHz for given frame rate and resolution
    • Let’s take an example- for DM8168 (533 MHz of HDVICP 2.0) if a data sheet says that to encode a content of 1920x1080 @ 30 fps it needs peak 250 MHz
    • It means that the latency of this solution for the given configuration is ((250/30) / 533) second =~ 15.6 ms
    • So the latency can be computed as FrameLatency = ((Peak MHz / HDVICP Frequency)/Frame Rate) second. It is the latency of the codec assuming no sub frame level interactions
    • Now for the codecs which has Low Latency support – the latency can be further reduced. Lets understand with an example of video encoders
    • Video encoders can take uncompressed data with a minimum unit of 1 MB row (16 lines) and can provide compressed bit-stream out with a minimum unit of 1 slice (compressed unit used for packets).

    Now based upon what is the slice rate - one can compute the latency at which compressed data will be available at encoder output

    Example - assume each frame has 20 slices then each slice is available at the output of the encoder at (FrameLatency / 20 + 0.3 ms intial overhead) time interval =~ 2 ms

    So you should be able to compute the latency for you application based upon slice rate

  • 1)       Could you please tell me how you got the 250Mhz?

    2)       The DM8168 does not come with 533-MHz version. I looked at the ordering page (page 308 of datasheet): ‘0’ at the end of part number means 667-MHz DSP. If I use the ‘2’ (1.2 GHz ARM, 1.0 Ghz DSP), should I plug in the number 1000 in the equation? I know my frame rate is 30.

  • 250 MHz are an example number it comes from the data sheet of particular codec for which you are measuring the latency. The signficance of this is that how much MHz (out of 533) are required for 30 fps.

    Thanks,
    With Regards,
    Pramod

  • Pramod,

    With that said, since the encode/decode function is in the HDVIPC of the DM81x8 device, would that 'number' be located in the current documentation? We would like to calculate the latency of the DM8168/DM8148 devices.

    -Tom-

  • I think we should talk about latency of xyz codec on DM8168/DM8148 isntead of latency of DM8168/DM8148
    Now the information - which I referred 250 MHz - (or any X MHZ) should come from the particular xyz codec data sheet for which you are measuring the latency.

    The codec data sheet can be find at below link
    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/HDVICP2/index_FDS.html

  • Pramod,

    From the H.264 data sheet I found the following under 'Table 2';

    Measured on DM816x REV-A2 EVM having Cortex-A8 @ 1Ghz, HDVICP2 @ 533Mhz, Media Controller @ 250 MHZ, L3 interconnect
    @ 500 MHZ and DDR2 @ 400 MHZ and there could be a variation of around 1-2% in the numbers.

    Is this the source of the numbers you provided in the example above?

    -Tom-

  • NO - the actual number in the table are the source of data.

    Example Table 2 of H264 decoder says below data

    Shields_i1920x1080_30fps_14mbps.264 - Interlaced, I, P and B Fields 160.5 224.62

    So for this sequence it takes 224.62 peak MHz for 30 fps... In that case replace the 250 MHz in my earlier example with 224.62

    Thanks,
    With Regards,
    Pramod