AMRWB优化
经过1个月时间的优化,AMR-WB解码性能总体提高了近10倍。
1. 从ITU官方网站下载代码,在ADS1.2上调试通过。对于测试码流为23.85kbps的向量tst_m8.cod,在ARM926EJS平台上,性能
为105MIPS,156MCPS。
2. 根据profile的测试结果,占时间最大的是那些基本算术运算的操作。用ARMv5的内联汇编替换掉以后,性能大概为52MIPS,
70MCPS。
3. 这时占时间的函数
Filt_7k |
Syn_filt_32 |
Filt_6k_7k |
Pred_lt4 |
Syn_filt |
Oversamp_16k |
这几个函数都需要自己写汇编,只有汇编才能体现优化思路,C的优化很有限。这几个函数的汇编优化完以后,性能就在17MIPS,
20MCPS左右了。
4.现在占时间的函数就变成下面的样子了:
decoder |
Serial_parm |
Syn_filt_32 |
HP400_12k8 |
HP50_12k8 |
这几个函数,主要是C的优化。把这些优化完,性能大概13MIPS,16.5MCPS。