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.

H264HP decoder for 1080P60

Hi,   

     My customer want to implement the 1080P60 decoder with C66x H.264HP library. When evaluate it (MCSDK video drop 2_2_0_38), found the 4-core mode should support 1080P30 with realtime, but NOT 1080P60. Do we have a 8-core build for 1080P60?

    When we try 1080P30 decoder test with the PCIe_h264hpdec_demo, it is failed. 720P60 can pass the test. Any limitation for this of sv04 DSP build? Anyone tried 1080P30 decoder with this demo?

Best Regards.

    Marvin

  • Hi Marvin,

    About your first question, we don't have a H264 HP dec 8-core for 1080P60

    About your second question, some bugs have been recently fixed, please see below thread  (eng lib attached at the end of the thread).

    http://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/t/288756.aspx?pi199455=6 

    I will double check internally about SV04 HP 4-core decoder test and let you know. On the other hand, If it is possible, please send us the clip so we can check it.

    thank you,

    Paula   

  • Hi Marvin, I did a sanity check on our MCSDK video drop39, I encoded airshow1080p, 5 frames with our H.264 HP encoder (in SV04) and then using H.264 HP dec (in SV04) I decode without issues for 1, 2 and 4 cores.

    If you can send us the problematic clip it would be helpful.

    thank you,

    Paula

  • Paula,

       Thanks. Attached please find the test clips and configuraiton/error log..

    3554.H264HP_Dec_test_failed.zip

    Marvin

  • Marvin, I was able to decode the clip using 4-cores  configuration

    Please use below codecParams, main change highlighted in red:

    static_param0   = 44       # size
    static_param1   = 1088     # maxHeight
    static_param2   = 1920     # maxWidth
    static_param3   = 60       # maxFrameRate
    static_param4   = 50000000 # maxBitRate
    static_param5   = 1        # dataEndianness
    static_param6   = 1        # forceChromaFormat
    static_param7   = 0        # mcViddecParams: to be filled in by code
    static_param8   = 1        # displayDelay
    static_param9   = 0        # inputStreamFormat
    static_param10  = 0        # coreTeamMapping: to be filled in by code

    dynamic_param0   = 28    # size
    dynamic_param1   = 0     # decodeHeader
    dynamic_param2   = 0     # displayWidth
    dynamic_param3   = 0     # frameSkipMode
    dynamic_param4   = 0     # frameOrder
    dynamic_param5   = 0     # newFrameFlag
    dynamic_param6   = 0     # mbDataFlag

    Let me know if you still face issues, I tested your clip with latest MCSDK video drop39, however drop38 and drop39 uses the same H.264 HP decoder version, so it should be the same.

    thank you,

    Paula

  • Hi Marvin, did you have a chance to test it? did it work for you?

    thanks,

    Paula

  • Paula,

       Yes, I have tried this, it can work.

    Best Regards.

        Marvin

  • Marvin, we profiled previously shared clip on the standalone setup and found that it decodes 30 frames with < 1000 MIPS, So 4-core decoder should decode 30fps easily.

    Using MCSDK video MIPS you can check this as well. The equation from MIPS per core to FPS is:

    FPS = CPU clock HZ/MIPS avg

    Using MCSDK video drop40 and CPU clock = 1250 MHz, the results for attached clip are:

    [1401819250.025682974] (DEBUG)
        MIPS: Decode:
            min: 672800
            avg: 23815271
            max: 55778668

    [1401819250.025729684] (DEBUG)
        MIPS: Process:
            min: 12035456
            avg: 38505143
            max: 67264692

    Applying the equation to Decode Avg and Process Avg I got:

    Decoder Avg FPS ~=52.5

    Process Avg FPS ~=32.5

    I will check internally why using calc_fps (2> /dev/null | grep calc_fps) in the scripts reports a lower value

    Thank you,

    Paula