21世纪是数码时代,数字类消费产品的需求量正在进行着惊人的增长。在这些产品中,视频类产品的比重相当的大,在人们的日常生活中越来越普及。在这些产品中,无论是数码摄像机,还是具有摄像功能的手机,其最核心的部分便是音视频处理器,选择什么样的处理器,决定着此类产品的成本,性能,市场前景。
在本设计中,笔者选取了TI公司的TMS320DM270(DM270)作为核心的处理芯片。
可行性分析
为了使消费者获得质量更高的数字视频和影像内容,面向像素数为300万至500万像素的数码相机、数码摄像机及便携式多媒体产品。德州仪器(TI)推出了基于DSP的数字媒体处理器DM270,它是基于多处理器架构之上,集成DSP C5409和32位RISC处理器ARM7TDMI的双核结构,其中ARM7TDMI来处理非成像功能,用作整个系统的主控制器,DSP处理音视频编码,同时还集成了专门用于执行DCT、反向DCT以及众多其它处理运算中的运动估计与补偿的图像处理引擎(iMX),以及可变长编解码器(VLCD)。
而且TI还提供了一系列音视频芯片,可与DM270进行无缝连接。TVP5040,TVP5145可以用作视频A/D转换器,AIC23可用作音频A/D。
DM270还有专门的MMC/SD控制器,进行外部MMC/SD卡的扩展功能,为大容量数据的存储提供了方便,以及OSD(on screen display)模块,可以直接外接显示设备(LCD、TV)。
基于DM270的数码摄像机基本系统框架如图1所示。
图1 本方案系统框架图
方案设计
从图1可以看出,整个系统前端主要是由视频输入模块,音频输入模块,以及处理器DM270组成。后端则可以接入存储设备及显示设备(LCD,TV)。
视频模块
视频输入模块结构如图3所示,由前端的CCD模块进行数据的采集,进入CPU后通过预处理,再进行视频数据的压缩保存。
图3视频回放数据流
图4 McBSP与AIC23的接口
视频采集和输入
在DM270中有一个CCD可编程控制接口,可以方便的把标准的CCD(CMOS)数据接入到系统内部,而且为CCD图像传感器提供了必要的时序逻辑,对逐行和隔行扫描CCD或CMOS图像传感器给予很好的支持,能支持高达4096*4096像素。在笔者开发的系统中采用 OV7620的CMOS摄像头,输出YUV数据直接进入系统。芯片内部还有硬件的3A模块来自动调节镜头的聚焦。另外,DM270中有预览引擎 (preview engine),可对CCD数据的图像进行增强,自动白平衡和各种尺寸的缩放。这样大大减少了CPU对数据的初级处理压力。
视频压缩
DM270支持VGA分辨率下的MPEG4 30fps实时编解码,而且支持多种视频压缩标准,如JPEG,motion-JPEG,H.263等。可以为数码摄像机提供多种拍摄模式。
如前所述,DM270内部还具有图像协处理器iMX,可以高速进行DCT、运动估计 (补偿)、插值运算。VLCD模块完成码流编码。在笔者开发的平台里可以做到VGA的MPEG4每秒24帧、H.263每秒30帧的实时压缩编码及解码后通过LCD显示。
此外,除了视频图像外,还可以实现数码拍照的功能,进行JPEG图片的拍摄。在笔者开发的平台中可以实现2048*1536的JPEG图片。
视频输出显示
数码摄像机必须具备回现功能,而DM270带有OSD控制器,其后端有VENC(video encode)和D/A转换模块,产生NTSC或PAL格式的视频信号输出给外部显示设备。DM270将压缩的MPGE4数据或JPEG图片,解码后的 YUV数据通过OSD实现回现功能。其数据流如图3所示。
OSD模块具有4个图像层(两个YUV的video层和两个位图层),可以方便的实现图层的层叠混合。可以利用OSD的位图层0显示各种操作菜单,作为图形界面让用户调节系统参数。
音频模块
从图1可以看出,音频数据直接输入到DM270中的DSP进行处理。
音频采集与输入
DM270内部的DSP是5409,有两个多通道缓冲串行口(McBSP)模块,用于音频的采集接口。在笔者开发的平台中,音频采样和转换采用的是AIC23芯片。TLV320AIC23是TI推出的一款高性能的立体声音频CODEC,内置二级输出放大器,支持MIC和LINE IN两种输入方式(2选1),并且可以对输入输出进行可编程的增益调节。 AIC2模数及数模转换都高度集成在芯片内部,而且采用先进的Sigma-delta过采样技术,可在8~96kHz频率范围内提供 16bit,20bit,24bit和32bit的采样。输入输出信噪比可以分别达到90dB和100dB。为数码摄像机的声音录放音质,提供了保证。而且AIC23与DSP内部的McBSP可以进行无缝连接。其接口如图2。
图2视频输入模块结构图
音频压缩,解码
在DM270中DSP的运算能力强大,可以实现多种语音压缩编码、解码。下面的表格是几种语音编码方式的比较。
由表格可以看出,在保证高音质的情况下,G.711和G.726的算法复杂度相对简单,这样可以减少DSP的数据处理压力,使DSP有更多的资源进行视频数据的处理。而且G.711数据可以被QuickTime格式的影音文件支持,这样可以增加数码摄像机文件支持格式。G.726为可变码率编码,数码摄像机用户可以根据存储空间来选择。
在笔者开发的平台上,分别实现了G.711与G.726算法及QuickTime文件的录放功能。
系统软件设计
在笔者开发的系统中,因为DM270的ARM核为ARM7TDMI,没有内存管理单元(MMU),所以采用uClinux作为嵌入式操作系统同标准的Linux相比,uClinux最大的特点在于不具有MMU,因此很适合那些没有MMU的处理器。由于uClinux的内核是由Linux根据所要运行的CPU裁减、修改而来。它保持了原有Linux系统的主要优点,如稳定性好,出色的文件系统支持,完善的应用程序开发,升级方便。
该方案的软件平台架构如图5。
图5 软件架构图
在用户应用程序中主要完成三种功能:录像功能,拍照功能,以及录像及照片的回放功能。
并且可以实现三种功能的实时的相互切换。如图6所示。
图6 系统用户程序功能切换
在该方案软件系统中还移植了U-boot进行系统引导与加载,提高了整个系统的运行效率。
为产品系统的升级服务提供了良好的支持。
结语
本系统已经在中国农业大学信息与电气工程学院得到实现,可以进行MPEG4、motion-JPEG录像,JPEG拍照,以及QuickTime格式的录制;并实现了上述录像,拍照在LCD及电视机上的回放功能。实践证明,这种高性能,基于DSP及ARM双核技术的解决方案,使得产品开发应用变得更加容易,而且使用的系统软件可以随时升级,可以按照用户的要求进行定制,甚至做到DIY,为产品的尽快进入市场奠定了基础。