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.

Why the bitrate of encoded is the same when rate control of H.264 is VBR or CBR and How to set the VBR/CBR mode on DM8168?

Hi all,

(1), issue

Our video encoder use DM816x and DVRRDK.

I set one of the encoder channel to work on vbr mode and one of the encoder channel to work on cbr mode. and my setup parameter see as "(2) my setup parameter"

but it seem that the two channel have the same bitrate.

when hold still, and  the two channel's the bitrate is about 2Mbps

when move, and the two channel's bitrate up to about 3.5Mbps

when move and do not stop, but after a while , the two channel's bitrate down to 2Mbps

(2), my setup parameter

EncLink_ChCreateParams: 

         rateControlPreset =  IVIDEO_USER_DEFINED;

         maxBitRate  = (4 * 1000 * 1000);

         targetBitRate =  (2 * 1000 * 1000);

EncLink_ChRcAlgParams:  rcAlgo = 0; //for CBR  and  rcAlgo = 1; //for VBR

EncLink_ChCVBRDurationParams:  vbrDuration = 8;

EncLink_ChCVBRSensitivityParams:  vbrSensitivity = 0;

(3), Platform

DVRRDK:   DVRRDK_02.00.00.23

SOC:  DM8168/DM8165

OS: Linux

(4), my question

Why the bitrate of the two video channels are the same, or my setup parameter is not right?

How can I know which mode does the encoded work on, vbr or cbr?

 

Can someone help me?

thanks,

With best regards,

Focus

  • Hi Focus,

    Please dont use maxBitrate, as in the current use case scenario, it is not going to help. You can set maxBitRate is '-1'.

    Ideally in CBR case scenario, bit rate should not shoot up more than 2 Mbps ( targetBitRate). In VBR bit rate can shoot up for short period, but overall bit rate will be still 2Mbps. So CBR is kind of restrict rate control algorithm compared to VBR.

    As per your description it seems that there is some problem in CBR.

    Please try (or make sure)following setting in CBR.

    HRD buffer size = 2*T

    initialBufferLevel = 2*T

    skipDistributionWindowLength = 0

    numSkipInDistributionWindow =0

    Regards

    Deepak Poddar