x265帧预测大小分析

代码如下:

double RateControl::predictSize(Predictor *p, double q, double var)

{

return (p->coeff * var + p->offset) / (q * p->count);

}

根据x264码率控制理论

假定q不变,位率与复杂度成正比,复杂度不变,位率与q成反比,右边coeff是一个常数系数。

x265有如下代码:

double new_coeff = X265_MAX((bits * q - old_offset) / var, p->coeffMin );

假设offset=0,则有

那么有了以上公式,如何衡量公式的准确性和误差:

 

offset就是衡量上面公式的误差,通过迭代法就可以分别求offset,coeff,bits,可以修正公式的误差值:

预测每帧大小代码(p->coeff * var + p->offset) / (q * p->count);转化公式为

coeff,offset除count,就变成平均coeff,offset,左边通过已编码帧加权平均bits与当前帧的var(satd)和q来缩放到当前的bits,右边是一个偏置项(类似机器学习),表示预测当前帧的大小与实际编码大小的累计加权平均偏移。

参考资料:

https://www.programmersought.com/article/4981940959/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值