1.1.1 存储器设计
存储器接口通信控制器(TC)管理的存储器可分为片外和片内两种。而TC又有两个独立的访问片外的存储器接口:
(1)快速片外存储器接口(EMIFF):与片外SDRAM相连的快速同步接口。在EMIFF接口上,挂载SDRAM用于运行LINUX操作系统。
(2)慢速片外存储器接口(EMIFS):与片外FLASH、SRAM等存储器相连的异步接口。在EMIFS接口上,分别挂载SRAM和FLASH。
1.1.2 板上CPLD和FPGA设计
(1)CPLD。本系统选用XILINX的95144XL-TQ144作为整个系统的配置。它负责系统上电后,对OMAP5910进行复位,对整个板级的器件进行配置,并作地址译码,以给存储器分配存储空间。
(2)FPGA。本系统扩展FPGA主要是为了扩展CF卡和以太网。
CF卡有多种连接方式,本设计选择TRUE IDE方式,在FPGA中映射出CF卡内部相应的寄存器。这样,通过控制FPGA内部的寄存器产生相应的时序,写入CF卡的内部控制器,完成相应的操作。
以太网选用AX88796L芯片,它具有标准的ISA接口和10Mbps/100Mbps的速度,通过FPGA进行控制,完全能满足实际的需求。
1.1.3 音视频及人机接口设计
(1)LCD显示。OMAP 5910内部集成了一个TFT LCD控制器,有标准的LCD控制信号。LCD电源控制、背光开关控制、亮度控制、触摸屏信号等将由此系统中的CPLD供给。此设计的集成板选择的是NEC LCD:NL2432DR22-12B。
(2)键盘。出于人机交互的需求,本系统扩展了3×4的键盘。
(3)音频接口。本系统采用OMAP与TLV320AIC23外部音频解码器完成音频系统的设计。通过OMAP的两根I/O线模仿I2C时序来配置音频芯片,而McBSP1接口用作OMAP对音频芯片传输数据。
1.1.4 扩展接口设计
(1)存储卡接口设计。多媒体播放机需要大数据量的存储设备,此设计选用SD卡。OMAP 5910内部集成了SD卡控制器,通过对OMAP 5910 SD卡控制器编程,就能完成对SD卡的控制。
(2)USB接口设计。OMAP 5910内部集成了USB Host和USB Function的控制器和接口,方便了USB接口的扩展。外接PDIUSBP11APW USB收发器,将OMAP 5910 USB控制器的信号转换成USB总线的信号。
1.2 系统软件设计
软件系统主要包括MP3、MPEG4解码算法,以及使用两个解码算法模块的媒体播放机程序框架。
1.2.1 MP3音频解码算法
MP3算法是根据人体心理声学模型,利用人耳的掩蔽效应,去除音频信号中低于绝对听阈和掩蔽域的信号,并根据掩蔽域对剩余信号进行动态量化,结合子带编码、变换编码以及哈夫曼编码等技术,达到大幅缩减音频文件的大小,同时保证音质的目的。
MP3音频解码算法是根据ISO/IEC 11172-3标准编写的,并针对TI DSP55x进行部分优化。
1.2.2 MPEG4视频解码算法
MPEG4算法基于对象编码,同时更加注重多媒体系统的交互性与灵活性。基于对象编码使得对视频对象的操控成为可能。MPEG4的一个特点是采用新的、高效的压缩算法使压缩比提高,它可以在速率相对较小的情况下,获得高质量的画面效果。线性MPEG4视频没有对象交互的内容,仅仅包含需要解码的视频流。
MPEG4解码算法依照ISO/IEC 14496-2编写,其中计算过程集中在IDCT、运动补偿和VOP重建,优化的重点也放在这三个过程。针对TIDSP55x的特点,具体优化方案如下:
(1)使用TI提供的图像视频处理库IMGLIB提高算法性能:获得了IDCT、运动补偿等算法实现的最高性能。
(2)减少片外存储器的读写:由于DSP对片外存储器的读写速度相对较慢,因此需要在内外部存储器间建立DMA通道,由外部存储器存放解码帧数据,再由DMA通道把待解码宏块传送到内部存储器进行高速处理。
(3)优化代码组织:在编写代码时,注意循环展开、循环分布以及循环交换等优化技术,并且针对相应处理器选择了最优的数据类型,使代码效率达到最高。
1.2.3 媒体播放机软件设计
媒体播放机软件设计鉴于OMAP独特的双核结构分成MPU端和DSP端两大部分。播放机程序就是运行在LINUX操作系统下的一个带有图形界面的应用程序。该应用程序通过调用DSP设备的驱动程序,使得MPU与DSP双方配合完成整个播放功能。图2为媒体播放机总体框图。
(1)MPU端软件设计
作为MPU的ARM核的任务为:建立底层操作系统和上层与用户交互的GUI,完成AVI文件数据读取解析以及控制DSP核音视频解码。因此,可将MPU端软件工作分为以下几部分。
①LINUX嵌入式操作系统的移植、设备驱动的编写和移植;
②基于FLTK应用程序图形用户界面的设计。FLTK是一套小型化的多平台GUI快速开发工具包,它在LINUX平台上的移植非常简便。使用FLTK开发的播放机图形用户界面如图3所示。
③AVI文件读取解析。在用户选择某一AVI文件后,将文件打开,读取文件的属性信息、索引信息及音视频待解码数据等,播放完毕后关闭文件。
④DSP音视频解码的控制。应用程序通过DSP设备驱动,启动DSP核,开辟与DSP端交互的数据缓冲区,建立使用MAILBOX进行的通信机制。实现了对DSP端解码进程的控制。
(2)DSP端软件设计
在处理器的DSP端,主要负责的工作是对音视频数据的解码,并最终完成播放。这部分主要完成的工作是采用DSP/BIOS和Reference Frameworks 5对音视频解码播放进程进行有效组织并完成的同步机制。其中包含的主要模块为:视频解码进程、音频解码进程、视频播放进程、音频播放进程、音视频同步控制等。
1.3 系统关键设计总结
(1)基于TI OMAP5910的移动媒体播放机硬件平台采用6层PCB设计,模块完整,可扩展性强。
(2)参照TI TMS320 DSP ALGORITHMS STANDARD(XDAIS)设计了MP3及MPEG4解码算法。
(3)为TI的OMAP5910处理器移植了嵌入式Linux操作系统及相关驱动程序。
(4)设计了基于双核OMAP5910平台的媒体播放机软件系统。该系统中的控制型任务由MPU完成,运算型的工作由DSP处理,从而最大限度地发挥了处理器性能。另外,系统有效组织了存储器、DMA通道等资源,并对程序代码应用DSP/BIOS和RF5也进行了组织,使系统的实时性和可靠性得到了保证。
2 测试与结论
播放机的整体性能选用了四个较有代表性的AVI媒体文件来测试。测试结果如表1所示。
从测试结果看出,对于测试文件1(176×144 128kbps)来说,音视频可以流畅播放,满足欣赏要求。当视频尺寸加大时,由于运算量的加大,导致视频流畅度(帧率)下降,同时影响到MP3的实时播放。对同样视频尺寸的文件,在加大MP3速率时,MP3解码速度下降,同样影响了视频流畅度。另外,音视频同步效果欠佳。
总体来说,媒体播放机工作正常,CPU占用率略高。视频解码器性能不是太好,对于画面尺寸较大的文件难以实现实时播放。因此,进一步对解码模块进行更细致优化非常必要。
参考文献
[1] 陈 喆,张福洪.开放式多媒体应用平台研究[J].杭州电子工业学院学报,2002,3:41-44.
[2] International Standard.Information technology coding of moving pictures and associated audio information:Audio,1993.ISO/IEC 11172-3.
[3] International Standard.Information technology coding of audio-visual objects:Visual,1998.ISO/IEC 14496-2.
[4] 钟玉啄,王 琪,贺玉文.基于对象的多媒体数据压缩编码国际标准MPEG-4及其校验模型[M].北京:科学出版社,2000.