AR1688软件开发进度缓慢。我们花了4个星期时间从0.06挪到0.07版本,并且iLBC在0.07版本中还不能稳定工作,反而在这个版本中加入了ADPCM G.726 32k编码算法。在PA1688上我们从来没有支持过G.726因为我们从来都不觉得它重要。其实在AR1688上我们也不觉得G.726重要。我们开发它是因为iLBC上出了很多没有预料到的问题,我们需要一个简单点的算法测试AR1688的DSP。目前G.711、GSM 6.10、ADPCM G.726 32k和一个基于LMS的回声抵消算法都已经在AR1688上稳定工作了,我们也通过这些算法发现了至少3个DSP指令上的问题:
1. af = reg + const指令给出的结果不对,也不会正确设置标志位
2. m寄存器跟循环缓冲区一起用的时候不能为负值
3. cntr会被马上压到counter堆栈中,而不是跟标准的ADSP21xx那样等到"do"指令执行以后才入栈
希望所有的坏消息告一段落,我们能够很快发布iLBC编码算法。好消息是,绝大多数用户都反应AR1688语音质量明显好于PA1688。在我们内部测试中,不仅质量更好,并且有更低的硬件延时,稳定性也好很多。
|