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.

DM8168 解码码率



大家好,

         DM8168做解码,配置解码器创建参数时,需要配置码率,我将targetBitRate设置为4Mb/s,当前端摄像头传过来的码流码率偏低时(比如512kb/s),解码后会出现丢帧的情况,怎么能将解码码率设置成自适应?或者有没有命令可以动态的配置解码码率。         

for (i = 0; i < chn; i++) {
decPrm.chCreateParams[i].format = IVIDEO_H264HP;
decPrm.chCreateParams[i].profile = IH264VDEC_PROFILE_ANY;
decPrm.chCreateParams[i].targetMaxWidth = chainsCtrl.chCfg[i].outWidth;
decPrm.chCreateParams[i].targetMaxHeight = chainsCtrl.chCfg[i].outHeight;
decPrm.chCreateParams[i].fieldMergeDecodeEnable = FALSE;
decPrm.chCreateParams[i].algCreateStatus = DEC_LINK_ALG_CREATE_STATUS_CREATE;
decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate = chainsCtrl.chCfg[i].encFrameRate;
decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate = chainsCtrl.chCfg[i].bitRate;
decPrm.chCreateParams[i].numBufPerCh = 16;
decPrm.chCreateParams[i].displayDelay = 5;
//decPrm.chCreateParams[i].tilerEnable = TRUE;
}
decPrm.inQueParams.prevLinkId = chainsCfg.ipcBitsInVideoId;
decPrm.inQueParams.prevLinkQueId = 0;
decPrm.outQueParams.nextLink = chainsCfg.ipcOutVideoId;

         

  • 你好;

             decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate 是一个无效值,可以不需要配置;

             在 mcfw/src_bios6/links_m3video/iva_dec/decLink_common.c 中把值赋给了maxBitRate

        pChObj->algObj.algCreateParams.maxBitRate =
            pObj->createArgs.chCreateParams[chId].defaultDynamicParams.
            targetBitRate;

            pChObj->algObj.algCreateParams.maxBitRate, 这个值在解码配置中可以不需要关心

  • 关于pChObj->algObj.algCreateParams.maxBitRate

    在 H264_Decoder_HDVICP2_UserGuide.pdf 中可以查到;

  • 你好,

          我实际测试的时候改变它的值,对显示的效果是有实际的影响的。

          像我前面说的,当前端视频源传进来的码流码率比较低的时候,将targetBitRate设为4M,图像就会卡顿,而且会有拖影,设为1M时就没有这种情况,但这个时候图像的清晰度会降低很多。在enc link里是有命令可以对码率和帧率进行动态配置的,但是在de clink里没看到相应的命令,是不是dec link不支持动态调整码率?

  • OYE,

    我同意ternence的说法,解码里面是否设置码流应该是没有关系的。

    你能否尝试在本地解码不同码率的码流,看看是否有类似的问题?

  • 这个值是配置一个最大的码率, 跟当前的解码码率没有关系?

    当前解码码率是根据送给解码器的视频流码率来决定的?

  • OYE 说:

    当前解码码率是根据送给解码器的视频流码率来决定的?

    是的