论文部分内容阅读
在很多流媒体应用中,音视频需要交织在一起编码、传输和解码,而且这样的应用往往在硬件资源相对有限的DSP (Digital Signal Processing, DSP)芯片上实现。为了在资源有限的DSP芯片上实现高质量的视音频编码,针对美国模拟数字设备公司(Analog Devices Incorporation, ADI)的DSP芯片ADSP-BF561的处理能力,在视频编码器占去DSP芯片98%以上资源的前提下,分析利用剩余的资源进行ADPCM(Adaptive Differential Pulse Code Modulation)音频编码器的可行性。并对ADPCM算法的优化,及其如何与H.264编码算法在该芯片上的集成方案做一些分析。考虑到该芯片具有两个CPU的特性,以及视频编码的算法特点,选择了将复杂度较小的音频编码器放在视频任务较少的一个核来处理的方案。既减小双核之间的通讯开销,同时也满足音频编码所需要的硬件资源。音视频编码不仅要求高的主客观质量,而且要求音视频的并行以保证音视频数据的同步回放。在分析ADSP-BF561的中断机制后,利用其自身提供的中断及回调机制,实现ADPCM算法与H.264算法在ADSP-BF561上的并行处理。考虑到音频数据的特性,先对音频数据进行缓存,然后再对其进行编码。在音视频数据的输入优先级方面,使音频数据的输入优先级高于视频数据,以保证对音频数据的及时缓存。根据编码器的延时要求及设计方案,分析确定每个音频包的最大长度和音频缓冲区的个数。为了减小对视频编码器的影响,还对ADPCM编码算法做了一定的优化,以加快音频数据的处理速度。最后测试了在ADSP-BF561上实现并行处理的音视频编码器。音频编码器能够对语音数据实时编码,产生32kbps的音频数据流;没有因为缓冲区溢出而造成音频数据丢失;延时满足系统要求,声音没有没有抖动现象。值得指出的是,在与视频编码器并行处理的情况下,未对视频编码器产生太多影响。