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.

numTemporalLayer issue

Hi TI's experts,

I am using H.264 to encode the video and the codec version is REL.500.V.H264AVC.E.IVAHD.02.00.08.00.

If I set numTemporalLayer=4, when the motion of the image is more bigger or noise is more larger, the layerId=0 is ok, but the layerId=1, 2, 3 will keep to output old image.

But, if  I set numTemporalLayer=1, everything will work well. Do you have any idea about this issue ?

thanks.

8156.7z

  • Hi Jack,

                 Can you let me know few details for this scenario ?

    1). Resolution

    2). Target Bitrate

    3). Bitrate achieved for numtemplayer = 1 & numtemplayer = 4

    4). RC type

    5). Partial frame skip enabled/disabled

    Regards

    Gajanan

     

  • Hi Gajanan,

    I have posted the stream on the attached file.

    1). Resolution
    the resolution of the attached file is 1024x768, but this situation will in any resolution.

    2). Target Bitrate
    the target bitrate is 256kbps, but even if I set the bitrate as 2Mbps, it still has the same result.

    3). Bitrate achieved for numtemplayer = 1 & numtemplayer = 4
    bitrate is ok for numtemplayer = 1 & numtemplayer = 4

    4). RC type
    IVIDEO_LOW_DELAY

    5). Partial frame skip enabled/disabled
    partial frame skip is disabled, but allow frame skip is enabled.

    thanks.
  • Hi Jack,

            This is the expected behaviour due to combination of scene change, referencing pattern and skip frames.

    1). In the Hierarchical coding, higher layer will refer to lower layers.

    a). If higher layer is frame skip then it will show the same contents of lower layer.

    b). If base layer is skip then it will show the content of previous base layer.

    Please refer the User Guide Appendix I for Hierarchical coding pattern.

    2).  In Ideal cases for hierarchical coding,scene change should not come in enhancement layers. If comes it will consumes more bits due to its referencing structure. e.g 

     In case of numtemplayer = 1, if scene changes comes then bits will shoot up only one frame, but with numtemplayer = 4, if scene changes comes then in worst case bit shoot cab be for 4 frames. 

    Solutions - 

    A). If scene change is more then avoid hierarchical coding.  or

    B). Disable the allow frame skip or

    C).Avoid scene at enhancement layers. 

    Regards

    Gajanan

  • Hi Gajanan,

    Thanks for your quickly reply.
    I disable allow frame skip, but the result is the same.
    Do you have other idea if I need this function for my application ?
    thanks.
  • Hi Jack,

    The other possible solution to this is - 

    D). Increase the bit-rate or 

    E). Change from CBR to VBR.

    Regards

    Gajanan

  • Hi Gajanan,

    I increased the bps, but it only improved, not fixed the issue.

    I also need CBR for my application.

    You said another solution is "Avoid scene at enhancement layers".

    Could you tell me more detail about it and how to do it ?

    thanks.

  • Hi Jack,

               To avoid the scene change at enhancement layers, application has to run an alogorithm to detect the scene change. 

    If its detected as scene change then application can make that frame as ForceIDR frame & signal it to Codec.

    Codec will break the gop structure and new gop structure will start with scene change frame as base layer and later frames in new gop.

    Note - Currently scene change detection algorithm may not available in default application.

    Regards

    Gajanan

  • Hi Gajanan,

    I can't use DSP to do scene change since it is used for other application and it is almost full loading.
    I disable frame skip, but the bps will over setting.
    I set GOP=4, the bps seems good, but the image quality becomes poor.
    Can we know when or which layer will occur frame skip ?
    or can we force higher layers don't skip frame ?
    Do you have a workaround to avoid this issue ?
    thanks.
  • Hi Jack,

            

    Jack 123 said:
    Can we know when or which layer will occur frame skip ?
    Mostly the next frame after the scene change frame will be skip because scene change frame consumes lots of bits
    Jack 123 said:
    or can we force higher layers don't skip frame ?
    The problem is with base layers as frame skip & not higher layers. There is no workaround for this.
    Ideally, with too many scene changes scenario should not be used with Hierarchical coding.
    Regards
    Gajanan
  • Hi Gajanan,

    Thanks for your help.