[转] 解码优化

http://ffmpeg.blogbus.com/logs/517509.html

传统的视频解码程序一般都是将宏块解码的输出结果,送到一个buffer中,然后统一将这一块内存区的内容送入到显存中,供播放使用。

这样的话,对于嵌入式应用就会带来两个问题。1.就是中间经过了buffer,多了一遍内存拷贝的动作。2.就是到一帧解码结束后,这个buffer中的大部分数据都已经不在cache中了,会带来比较大的cache miss。

所以,改进的方法就是宏块解码的结果直接送到输出显存,这时候宏块的数据都是在cache里的。对于destination则,可以用cache allocate (如果可cache的话,)加快拷贝速度。

 

http://ffmpeg.blogbus.com/logs/436638.html

就是在视频的dct域变换压缩中,经过dct转换后,数据大部分集中在左上角。所以数据的特性在行上就是,一个数后面跟7个0这种情况。所以在做idct逆运算的时候,可以很好的利用这个特性。

就是:下面用data[0]....data[7]做示范
short data[64];
short a;
int   b,c,d;
a=data[1];b=((int *)data)[1];c=((int *)data)[2];d=((int *)data)[3];
if(a|b|c|d){
正常的idct运算}
else{
 coef[0]=coef[1]....coef[6]=coef[7]=data[0]/8;
}

好像是这样的,效果很不错,实践证明的...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值