压缩算法优化

>>dsp移植

一个是算法层。用替代算法调整,使得丧失一定的性能下能大幅度的提高计算速度。比如修改运动搜索等。

一个是组织结构层。分数据结构和代码结构。一个简单的道理,如果有一个函数每个宏块都需要调用。但是当该宏块该函数调用后。其他函数的调用。冲掉了PM的的一级甚至二级CACHE内的代码。则下一次宏块调用必须要从外部MEMORY提取,这就是数据等代码,危害很大。而同样的道理。比如有个计算需要用到MV的信息。而MV的信息是分开存储到每个宏块的记录结构中。那么对相临的MV的操作,CACHE内很难击中相临宏块的MV。另,对于imgpel如果是INT边界对齐,那么提取imgpel时,可以按int直接提取4个数据后再处理,这比取4次8位的要快。

一个是代码层。利用空间换速度。比如4X4的简单计算,就扩展代码等等。利用?:修改if else。有些编译器和硬件对执行?:与if else的效率是不一样的。

一个是汇编层。主要针对并行计算或CPU特定资源的利用。一般不需要写汇编。而是告诉编译器指定位置如何特殊编译就可。

就我的认为,与其在汇编代码上做文章,花这个时间,做什么都能或得更好的效率提升。毕竟现在各个大公司的编译器都做的不错。

 >>运动估计

1. 以pmv为起始点做小菱形搜索;
2. 以(0,0)为起始点做小菱形搜索;
3. 如果是16x16以前一帧相同位置MB的mv作为起始点做小菱形搜索;如果不是16x16以前面做过的16x16搜索到的  mv_uplayer做起始点做小菱形搜索;
4. 以当前最好位置做小菱形搜索;
5. 提前退出判断;
6. 在x,y轴上分别振荡搜索,y轴搜索范围是x轴的一半;
7. 提前退出判断;
8. 以当前最好位置为起点 螺旋搜索;
9. 提前退出判断;
10. 以当前最好位置为起点 大六边形搜索;
11. 提前退出判断;
12. 以当前最好位置为起点 小六边形搜索;
13. 小菱形搜索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值