TI中文支持网
TI专业的中文技术问题搜集分享网站

为什么TI8148的h264编码码率总是超过设置的参数?

Hi all,

       测试TI8148(DVRRDK4.0)编码效率的时候发现,实际传输的码率最大值普遍超过设置的码率,

低码率下平均值也经常超过设置的码率参数。编码方式使用的H264 HP profile。

而且设置动态码率(VBR)和静态码率(CBR)参数也是同样的效果,好像这个参数不起作用。

下图是我们测试的部分结果,可以看出来特别是设置为低码率的时候,码率控制的很不好,有时会超出很多。

我们设置码率和控制方式的函数使用如下:

/* 设置码率
*/
int Venc_setVideoBitRate(int chId,int BitRate)
{

	VENC_CHN_DYNAMIC_PARAM_S params;
	memset(&params, 0, sizeof(params));
	params.targetBitRate = BitRate * 1000;
	Venc_setDynamicParam(chId, 0, &params, VENC_BITRATE);
	return 0;
}

/*设置码率控制(VBR、CBR)
*/
int Venc_setRateControlAlgo(int chId,int value)
{	
	VENC_CHN_DYNAMIC_PARAM_S params;
	memset(&params, 0, sizeof(params));
	params.rcAlg = value;
	Venc_setDynamicParam(chId,0,&params,VENC_RCALG);
	return 0;
}

我们希望当设置成CBR的时候,码率能始终控制在设置的范围之下。而不是经常超出设置的范围

希望能够提供一些帮助,多谢!

bolin chen:

回复 Eason Wang:

Eason ,

           通过增大qpMaxI和qpMinI的值,改善了码流的控制,但是在码率设置为256kbps时有时候还是会超出设定的值,

是不是还有其他方式来控制码流的大小呢?多谢

赞(0)
未经允许不得转载:TI中文支持网 » 为什么TI8148的h264编码码率总是超过设置的参数?
分享到: 更多 (0)