(1)MAI:是一个流媒体的架构,用于对多媒体的管理。MAI由视频解码的元素库构成,包括用于多媒体文件的读取解析、解复用、解码等工作的元素库。MAI Engine会接收由输入设备输入的媒体信息,根据多媒体文件的类型连接MAI相应的解码算法文件处理该媒体流,并将其输出到视频或音频设备。MAIEngine对媒体流的控制主要包括以下几个方面:
①预览媒体流以确定格式;
②载入并连接所需的各独立元素用于对媒体流的解码等工作;
③处理播放的命令:如暂停、播放、定位等;
④整理播放进度以及错误信息并向应用程序报告。
(2)播放器应用层:包括:播放器应用程序,MAIEngine的引擎函数,MAI针对各种格式的多媒体文件的元素库。
(3)音视频解码:播放器软件解码程序的流图如图4所示。在多媒体文件解码过程中,首先播放器应用程序分别调用播放文件函数:Player_PlayFile()和引擎函数MAIengine_QuerySupport()进行对多媒体文件的读取和多媒体文件类型的检测,支持此过程完成的库函数是Libmaifilereader.so。接下来,播放器应用程序调用引擎函数MAIengine AutoConnect(),该函数会根据多媒体文件的类型调用库文件对多媒体文件进行解复用,支持解复用的库文件包括Libmaimpeg2demux.so和Lib-maimpeg4demux.so等;再根据解复用后的音视频格式调用库文件进行音视频的解码,播放器可解码的音频格式有MP3,OGG,WAV等,可解码的视频格式有MPEG1,MPEG2,MPEG4等;支持解码的库函数主要包括Lib-maimp3dec.so,Libmaimpeg2dec.so等;解码后分别通过调用库文件Libmaiaudrend.so和Libmaividrend.so对音视频数据进行渲染。至此,音频数据便可送至扬声器输出,视频数据送至MAE进行硬件解码。
(4)MAE:是一种能解码的基于块的视频格式的硬件加速单元,它主要负责对上层软件解码出来的可变长度编码进行解码。在AlchemyTM AU1200TM proces-sor承担了视频解码、缩放、颜色空间转换和过滤功能的片上硬件。通过在硬件上完成大部分的视频解码任务,因此省掉了外部DSP电路,MAE把MIPS32TM处理器核解放出来去执行用户交互,音频处理和其他任务。同时,因为处理器上运行的软件将不同长度的解码信息传递给MAE。MAE硬件上被分为前端和后端,各自执行特定的任务。MAE的前端独立执行最为复杂和繁重的解码任务,包括反向量化,反向余弦转换,运动补偿等。MAE后端执行一次性地水平和垂直缩放,可编程颜色空间处理,和过滤功能。当不执行视频解码时,MAE后端功能可以被其他数据源使用如处理从片上摄像头接口模块来的CMOS/CCD或NTSC/PAL数据。
(5)外设驱动:AU1200将上层软件解析出来的视频宏块数据写回给DDR存储器;然后通过DMA控制MAE从DDR存储器取出视频宏块数据,将其解压缩成RGB数字信号,并将RGB数字信号再写回到DDR存储器,然后由LCD控制器从DDR存储器中取出该数据输人输出到数/模转换器ADV 7123,经ADV 7123转换为R,G,B三原色信号和行、场同步信号,信号通过VGA接口输到显示设备中,至此,便完成了视频的播放。
4 结 语
无线车载多媒体终端系统是目前研究的热点之一,这里提供了一种基于AU1200的嵌入式车载终端播放器的设计实现方案,具有功耗低,软硬件解码,省略外部DSP电路,通过Wi-Fi网络进行数据的无线下载,节目源的更新,且功能模块化,便于升级等,具有较大的实用价值。