ADPCM 的定义和实例程序到处都有,不多解释。
ADPCM 的编码能把一个16位的字压缩成一个4位,体积缩小了4倍。解码时再还原回去。 在解码和编码过程中 是有2个结构变量关联前后值: 量化编码和步长。
假如我们用8K的采样率,16位的AD转换来采集数据。
ADPCM的编码 需要在125US内完成。
假如一个指令4个脉冲周期,一个8M的晶振 ,大约是0.5US 一个指令。 如果再加速,用上4倍PLL, 达到32MHZ, 0.125US一个指令。 也就是说1000个指令。
如果双向语音,所有的编码和解码 都要在这个1000个指令中完成,貌似很紧张。
况且芯片也不会只进行编码和解码2个工作,还得照顾其他的外围设备。
用8位来进行ADPCM 这么个简单的编解码 是很费劲的。
惭愧的是多年没有用汇编的习惯了,不能精确的知道指令多少的数值。如果用C, 除了用定时器来计算这段函数的时间,其余的方式也不了解。一个字太麻烦了。
leejun_708981951 2014-8-6 11:58
用户377235 2014-7-31 09:44
你好 请教你一些问题!不知道你联系方法?我的Q1440381837