With the rapid development of embedded systems, various applications of multimediatechnology appear on mobile devices, most of which are using ARM processor. But thecalculation of audio decoding is large and the capacity of ARM processor is limited. It isimportant to optimize the audio decoder.ARM Cortex-A8is the first application processor introduced by ARM Company, whichis based on architecture ARMv7. It brings NEON media processing engine, which deals withaudio, video and graphics specifically. AAC is an advanced audio coding algorithm, whichhas high compression ratio, high-quality, multi-sampling rate and multi-channels. In the caseof the same quality the bitrate of AAC is lower than other audio coding standards, such asMP3, AC3. Now AAC becomes more widely used in the Internet, mobile multimedia andother areas. Optimization of AAC decoder on the Cortex-A8is prospective to some degree.The process of AAC decoding, the key modules of the decoder and NEON mediaengine are analyzed. By testing the LC-AAC decoder, it could be seen that the timeconsuming modules are Huffman decoding, inverse quantization and filter bank. For theHuffman decoding, efficient decoding of escape coded code words in an audio bitstream isstudied using concurrent execution in ARM core and NEON. The inverse quantization isarchived in the use of the algorithm which combines look-up table and linear interpolationwith correction function. For the filter bank, the instruction set of NEON is used to optimizethe algorithm of IMDCT. Having Comparis the changes of the overall performance and thekey modules’ performance after optimization on iPhone3Gs, it is shown that after using theNEON assembly code, the overall performance improves70%. |