基于Blackfin 531 DSP的数码伴侣系统设计
2010-01-16尹朦
尹 朦
(首都经济贸易大学外语系,北京 100070)
基于Blackfin 531 DSP的数码伴侣系统设计
尹 朦
(首都经济贸易大学外语系,北京 100070)
文章基于Black fin 531 DSP设计了一个嵌入式系统,该系统为方便数码相机用户而设计,能够读取SD卡中的图片,并能够在电视机上边播放音乐边显示图片;介绍了数码伴侣系统的硬件和软件设计,并重点讨论了系统的性能优化,该文中提出的优化方法可使数码伴侣系统在嵌入式系统硬件资源有限的情况下,提高系统的性能并使之能够高效地运行。
嵌入式系统;数字信号处理器;系统优化
0 引 言
随着社会的发展,数码相机已经越来越普及。数码相机拍摄的照片是JPEG格式的数字图片,具有保存方便、便于复制等优点,但数码照片的欣赏却不是很方便。如果能够在电视上显示数码照片,则可以让一家人在客厅内观看欣赏。基于这个想法,本文设计开发了数码伴侣系统,它可以读取SD卡中的数码照片,解码成原始的UYVY格式,然后通过专门的视频编码芯片转化为PAL制模拟信号,传输给电视将图像直接显示在屏幕上。在欣赏相片的同时,还可以播放音乐。它还提供了一个友好的GUI,让用户可以通过遥控器操纵菜单,控制数码伴侣的运行。
本系统基于 ADI公司的 Blackfin 531 DSP开发,采用基于操作系统的设计方法,并做了大量优化,提高了性能。
1 硬件设计
数码伴侣硬件系统采用模块化设计,分为6个模块,其硬件模块如图1所示。
(1)核心模块。采用ADI公司的Black fin 531处理器,该Black fin处理器基于MSA,将一个32位RISC型指令集和双16位乘法累加(MAC)信号处理功能与通用型微控制器所具有的易用性组合在一起,极大地简化了硬件和软件的设计[1]。该处理器的内核工作频率最高可达400 MHz,内核中包含2个 16位 MAC、2个 40位ALU及4个8位ALU,专门用于视频信号的处理;并且该处理器集成了许多片上外设,包括硬件UART 、SPI接口 、PPI接口 、同步串口、看门狗电路和16个GPIO接口等[2]。
(2)存储模块。包括Flash和SDRAM,Flash存放操作系统内核和应用程序;用SAMSUNG K 4S561632H-UC75作SDRAM,容量为32 M。
(3)输入模块。包括SD卡接口及相关外围电路,本系统从SD卡中读入JPEG格式图片和MP3音乐。
(4)输出编码模块。包括图像编码电路和音频编码电路,图像编码电路采用SAA 7121芯片。该芯片采用 I2C总线控制,2根控制线SCL和SDA,分别和Black fin 531的PF1和 PF0引脚相连[3];音频编码电路采用WM 8731芯片,该芯片采用I2C总线控制,2根控制线SCLK和SDIN分别和Black fin 531的PF1和 PF0连接[4]。
(5)用户控制模块。包括红外接收电路,本系统红外信号解码由软件完成,SM 0038的信号输出线与Bkackfin 531的PF9引脚连接。
(6)调试模块。包括JTAG电路和串口电路,本系统采用M ax3232作为电平转换芯片,把Blackfin 531的UART信号转化为符合RS232标准的串口信号,连接到PC机上。
图1 数码伴侣硬件模块
2 软件设计
2.1 软件总体结构
数码伴侣是一个多任务的系统,本系统采用基于操作系统的设计方法。数码伴侣软件分为3个部分:BootLoader、操作系统和应用程序。
(1)BootLoader。它是在操作系统内核运行之前运行的一段小程序,通过它可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境[5],本系统的BootLoader采用 uBoot。
(2)操作系统。采用uClinux,它是针对控制领域的嵌入式Linux操作系统,适合不具备内存管理单元(MMU)的微处理器/微控制器[6]。
uClinux可以方便地移植到Black fin处理器上,系统对外围设备的控制由驱动程序完成。
(3)上层应用程序。主要完成图片显示、音频播放和用户控制3个功能。应用程序通过驱动程序访问相应的硬件设备,软件总体结构如图2所示。
图2 软件总体结构
2.2 应用程序设计
应用程序处于整体软件结构的顶层,实现与用户交互的功能。数码伴侣的上层应用程序实现的主要任务如下:交互界面显示、图像显示、音频解码播放及获取用户控制命令等。
针对该系统的特定功能需求,首先构建基于FrameBuffer的简单GUI,主要包括用户接口模块、GU I基本图形模块和输入抽象模块。
(1)用户接口模块。该模块为上层应用程序开发人员提供简单、易用的API接口函数,主要包括图形处理函数、图片处理函数、字体处理函数、遥控器事件处理函数和声音处理函数等[7]。
(2)GUI基本图形模块。该模块建立在底层图形设备之上,直接与图形硬件接触,为用户接口模块提供图形处理。
(3)输入抽象模块。该模块中的输入设备有遥控器、键盘、鼠标及触摸屏等。针对数码伴侣系统,输入抽象层主要实现接收、处理用户输入的遥控器事件。
应用程序的流程首先为显示用户界面,然后等待用户输入信息,即遥控器事件,系统根据输入事件处理对应的功能。
图片浏览是通过函数对FrameBuffer直接绘图实现,所以图片具有快速的显示速度。音乐欣赏功能主要基于uClinux代码包自带的MP3音乐播放程序MP3player的源代码来实现。文件操作功能主要是实现查看多媒体文件信息、修改文件名及删除文件等操作。系统设置功能主要实现修改系统的参数,如设置连续播放的时间间隔等。
3 性能优化
由于嵌入式处理器性能有限,本系统需要进行一系列性能优化,主要优化方法包括解码流程优化、多缓冲、多线程优化和汇编优化。
3.1 解码流程优化
图像格式转化过程,如图3所示[8]。
图3 图像格式转化过程
多媒体领域中,通常使用 YUV颜色空间来表示颜色,如果要在屏幕上显示一副M PEG解压之后的图片,则需要进行 YUV颜色空间到 RGB颜色空间的转换[9]。RGB格式的图片被写入FrameBuffer的写入缓冲区。而SAA 7121芯片接收的数字图片格式是UYVY,这就需要驱动程序再将 RGB格式的缓冲区进行转化,得到UYVY格式的数字信号,传输给SAA 7121芯片,这个解码过程如图3a所示。
从图3a中可以看出,把图片转化为RGB格式是多余的,本系统对图像解码过程做了优化。JPEG解码库对JPG图片的解码,省去了 YUV到RGB格式的转化。而FrameBuffer则提供了YUV格式的屏幕缓冲区,上层应用程序直接把YUV格式的图片写入该缓冲区,FrameBuffer驱动只做YUV到UYVY的转换,优化后的解码过程如图3b所示。
3.2 多层次缓冲设计
采用多缓存的技术缩短了系统的运行时间,显著提高了系统性能,应用程序建立多个图片缓存区,缓存解码后的 YUV格式图片。Frame-Buffer驱动建立3个屏幕缓存,缓存UYVY格式的屏幕图像,多缓冲结构如图4所示。
图4 多层次缓冲设计
3.3 多线程设计
当用户连续欣赏图片的时候,系统大部分时间处于等待用户输入的状态。如果在系统等待用户输入的时候,预测下一张图片,并提前解码,载入内存,这样可大大提高系统响应速度,本文采用多线程的程序设计方法。
应用程序包括主线程和图片处理线程,应用程序多线程工作流程如图5所示。
图5 多线程程序流程图
3.4 汇编优化
汇编优化是利用Black fin提供的视频编解码指令或利用并行指令来提高程序执行效率。
在PC机环境下对JPEG解码库进行了性能测试,发现 JPEG解码运算耗时较多的函数有ycc-rgb-convert(36.13%),jpeg-idct-islow(16.77%)。经过分析,jpeg-idct-islow可以利用Blackfin的指令并行化方法进行优化,具体使用到的并行化方法有:
(1)1个32位的A LU/MAC指令和2个16位指令并行化。
(2)1个32位ALU/MAC指令和1个16位指令并行化。
(3)空指令和2个16位指令并行化。
经过测试,汇编优化后的jpeg-idct-islow相比优化前性能提高约4.8倍。
本文对数码伴侣系统的性能进行了测试,系统显示SD卡中的JPEG图片,用户通过遥控器按键控制系统运行,顺序浏览图片。JPEG图片的大小为720×576,和PAL制电视显示分辨率相同。
通过改变遥控器按键的频率,测试在不同的按键间隔时间下从按键到图片显示完毕所用的时间。按键间隔时间为从上一幅图片显示完毕到下次按键的间隔时间,结果见表1所列。
表1 不同按键间隔的响应时间s
从表1可以看出,在按键间隔大于10 s时,相应时间为0.3 s,非常快。这是由于后台进程预先完成了解码工作,并将图片缓存在FrameBffer驱动申请的UYVY缓存空间中。当按键间隔为1 s时,响应时间为 2.2 s,相对较慢,这是因为JPEG格式的图片在显示之前需要解码和格式转换。一般用户欣赏图片时速度会较慢,这样图片可以提前得到解码,从而使响应速度得到提高。本系统很好地利用了这一点,提高了用户体验。
4 结束语
本文基于Black fin 531 DSP设计了一个数码伴侣系统,给数码相机使用者带来了新的体验。数码伴侣是一个嵌入式系统,本文讨论了在硬件资源有限的嵌入式平台上怎样优化软件,提高性能。随着软硬件技术的发展,嵌入式技术必将得到越来越广泛地应用。
[1] 陈 峰.基于Blackfin DSP的数字图像处理[M].北京:电子工业出版社,2009:28.
[2] 曹小秋.ADI Blackfin系列DSP处理器实验指导书[M].北京:电子工业出版社,2008:46.
[3] 马 兰.精通Visual C++视频/音频编解码技术[M].北京:人民邮电出版社,2008:100-105.
[4] 何立民.嵌入式系统的定义与发展历史[J].单片机与嵌入式系统应用,2004,(1):126-132.
[5] 詹荣开.嵌入式系统Boot Loader技术内幕 [EB/OL].[2003-12-01].http://www.ibm.com/developerw orks/cn/linux/l-btloader/index.h tm l.
[6] 李 岩,容盘祥.基于S3C44BOX嵌入式uClinux系统原理及应用[M].北京:清华大学出版社,2005:102.
[7] 刘 淼.嵌入式系统接口设计与 Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006:112-118.
[8] 程 颖,王 锐.SA A7111A芯片在视频图像处理FPGA设计中的应用[J].合肥工业大学学报:自然科学版,2007,30(11):1399-1403.
[9] 卢 锋.中文版Prem iere Pro CS3实用教程[M].北京:清华大学出版社,2008:153-156.
Design of digital companion system based on Black fin 531 DSP
YIN M eng
(Foreign Language Dept.,Capital University of Econom ics and Business,Beijing 100070,China)
This paper proposesan em bedded system based on Black fin 531 DSP.The system is designed for the convenience of digital camera users.It can read the photos from SD card and playm usic on top side of the TV image show.This paper introduces the hardware and software design of the system,and focuses on the performance optimization of the system.It is shown that the optimization method p roposed in the paper imp roves the performance o f the system and enab les it to efficiently run in embedded systems w ith limited computing resources.
em bedded system;digital signal p rocessor(DSP);system op tim ization
TP399
A
1003-5060(2010)11-1652-04
10.3969/j.issn.1003-5060.2010.11.013
2009-10-29;
2010-04-05
尹 朦(1980-),女,安徽宿州人,首都经济贸易大学助理工程师.
(责任编辑 张秋娟)