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.

use "allowFrameSkip=1" and "enablePartialFrameSkip=1" to bound bitrate

Dear Experts,

We are using DM8148/DVR_RDK 3.5/REL. 500.V.H264AVC.E.IVAHD.02.00.04.01,
and get problems to bound encoded stream bitrate.

Some parameters "allowFrameSkip=1" and "enablePartialFrameSkip=1" could be used to bound bitrate.
We want to clarify "allowFrameSkip=1" and "enablePartialFrameSkip=1" parameters.

---

About "allowFrameSkip=1", in H264_Encoder_HDVICP2_UserGuide.pdf Table 4-7,
< allowFrameSkip--Not supported – don’t care >.

Is "allowFrameSkip=1" workable? Do we need to enable it?
What's the expected behavior if we enable it? (Skip partial macroblocks in a frame? skip some P frames?)

---

About "enablePartialFrameSkip=1", in Section 4.2.2.2  IH264ENC_RateControlParams,
< enablePartialFrameSkip Input  Control flag to enable partial frame skip. Only useful with CBR rate control mode >.

We try to enable "allowFrameSkip=1" and "enablePartialFrameSkip=1" in VBR mode,it seems still work. Bitrate is bounded. But picture quality is bad if video content is high active.

Is "enablePartialFrameSkip=1" only workable in CBR mode?
Why can we get bounded behavior in VBR mode if we set "allowFrameSkip=1" and "enablePartialFrameSkip=1"?
What's the expected behavior if we enable it? (Skip partial macroblocks in a frame? skip some P frames?)

---

How to set "allowFrameSkip=1" and "enablePartialFrameSkip=1" correctly to bound bitrate?

---

Thx ~

HB

  • Hi HB,

    The parameter allowFrameSkip is not supported by the encoder and hence any value set to the parameter does not make any difference.

    The parameter enablePartialFrameSkip when set (=1), helps skipping part of a frame (by forcing MBs to be skip MBs), in order to meet the target bit rate. 

    If for VBR, the quality is not good for the given target bit rate when high activity occurs in the frame, you can also try CVBR/HF-VBR. For more information please refer the User Guide:  Appendix N - Rate Control - High Fidelity Variable Bitrate.

    .

    Best Regards,

    Nandu.

  • Dear Nandu,

    In user-guide document,

    < enablePartialFrameSkip Input  Control flag to enable partial frame skip. Only useful with CBR rate control mode >

    Does this mean "enablePartialFrameSkip" only workable for CBR mode?

    We use VBR mode with enablePartitalFrameSkip=1, but we still can see partial frame skip in high activity content.

    by the way, in here : 

     http://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/p/329364/1149761.aspx#1149761 

    We saw

    videoStaticParams.h264EncStaticParams.rateControlParams.allowFrameSkip = 1;

    videoDynamicParams.h264EncDynamicParams.rateControlParams.allowFrameSkip = 1;

    Does DM8168 support allowFrameSkip? DM8148 don't support that?

    thx ~

    HB

  • Hi HB,

    The support for partial frame skip is present for both CBR and VBR (Though earlier it was only CBR. Excuse the statement in User Guide!).

    In VBR mode, enablePartitalFrameSkip can be made 1 in cases where there is a strict requirement in peak bit rate.

     

    Now regarding the link you just shared, the lines you have copied are part of the query and not the reply. 

    hb chen said:

    videoStaticParams.h264EncStaticParams.rateControlParams.allowFrameSkip = 1;

    videoDynamicParams.h264EncDynamicParams.rateControlParams.allowFrameSkip = 1;


    H.264 Encoder on IVA-HD does NOT support allowFrameSkip.

    .

    Best Regards,

    Nandu.

  • Dear Nandu,

    I want to confirm the behavior of partial frame skip.

    When we enable partial frame skip at low bitrate and apply high active video content, partial frame skip will wok.

    Based on our observation, after encoded, the upper size of video will be updated to next frame, but the lower size of video seems to be still (old/previous) frame. Is this correct behavior??

    Could you plz describe the algorithm of  "partial frame skip". What's the result looks like?

    thx ~

    HB

  • Hi HB, 

    The behavior you have observed is correct.

    Whenever the codec decides to do a partial frame skip, it will have the frame encoded normally till this point and the rest of the frame will have all the macroblocks as skip macroblocks which means the data will be just copied from the reference frame at the decoder level.


    For example, say Frame 10 has reference frame as Frame 9,and at Frame 10 the encoder decides to do a partial frame skip after encoding 10 rows. So in this case, up to 10 rows, the encoding will be normal and the rest will be declared as skip. At decoder side, decoding happens for the first 10 rows and rest being skip, the data will be copied from its reference frame, ie, Frame 9. 

    Hope this was helpful.

    .

    Best Regards,

    Nandu.