软件工程专业的学生,如果将来想从事音频编解码,应该咋提升自己

一个字干货。直接去下源码加itu等官方文档去学习。最直接有效的方案。
■网友
楼主你是学习音频编解码还是语音编解码呢?如果是打算学习语音编解码,这个在通信行业和VOIP当中使用,可以学习一下ITU和3GPP里面的标准编解码算法。ITU的网站是:国际电联:致力于连通世界在这个网站,你可以学习G.711,G.722,G.729这三个常见的语音编解码器。在3GPP这个标准组织,你可以学习AMR,AMR-WB已经最近新出现的EVS。http://www.3gpp.org/另外,还可以学习ILBC这个编解码,这个在谷歌的webrtc当中有源代码,在IETF有标准说明文档。最后,楼主还可以学习一下opus,这个也是比较新的编解码,未来应该会使用的越来越多。Opus Codec如果是和音乐相关的编解码器,参考mpeg组织的文档,结合开源代码进行学习。需要学习的编解码器有mp3和AAC。另外,也可以学习一下flac这个无损编解码器。mp3的开源代码可以参考lame,aac可以参考faac。另外,楼主如果你只是学习了C语言,把上面我提到的那些编解码器的代码跑起来,应该是可以做到的,不过如果想把代码看懂,估计会比较困难的。语音编解码和音频编解码算法,里面有很多和信号处理相关的算法。语音编解码里面,需要掌握celp模型,需要搞明白适量量化等等。音频编解码里面,你需要搞心理声学模型,huffman编码等等一系列信号处理的算法。需要把信号与系统,数字信号处理,语音信号处理等知识学扎实,对搞明白这些编解码很有帮助。想了想,还是再补充一段吧。上面提到的算法,都已经是非常成熟的标准了,实际工作工程中,几乎不可能要去从标准到代码再实现一次。很多时候,是在关注如何使用。比如,由于这些算法比较复杂,运算量比较大,所以很多时候,都需要将这些算法进行优化,降低算法开销。


    推荐阅读