基于Intel Xscale和嵌入式Linux的视频模块设计

发布者:心境恬淡最新更新时间:2012-04-06 来源: 计算机工程与设计 关键字:嵌入式系统  Linux  MiniGui  通用串行总线 手机看文章 扫描二维码
随时随地手机看文章
1 引言

随着计算机进入后PC时代、多媒体技术和无线通信技术的发展,融合通信、计算和多媒体功能的各类多媒体终端(如PDA)应用正在成为开发应用的新亮点,视频则是这类应用中不可缺少的重要组成部分。多媒体终端,作为嵌入式系统,大多数应用场合是对速度、功耗、体积有严格要求的车载、移动通信、手持式设备等,那么如何设计一个体积小、实时处理能力强、功耗低、可移植性强的视频模块以满足嵌入式系统设计对速度、功耗和空间的要求和应用开发的需求就成为一个很有意义的课题。

基于XScale 技术的新型处理器PXA255 是英特尔公司推出的为无线通信设备带来更高性能和更低能耗的微处理器产品,为多媒体手机、掌上电脑、车载信息通讯系统及其它无线互联网产品提供了强大动力。本文介绍了基于PXA255 处理器和嵌入式Linux 操作系统的无线多媒体移动终端的视频模块的设计与开发,该视频模块具有实时采集、压缩、解压、显示、拍摄和存储图像等功能,经过压缩的视频信号还可以通过 Internet 进行传输。由于采用了模块化设计,该视频模块还可以很。容易的移植到别的多媒体终端应用中。

2 硬件设计

硬件设计时,视频模块的主体部分采用外置形式,与终端平台的接口采用目前广泛采用的USB 接口,视频模块的硬件原理框图如图1 所示。采用这样的硬件结构,是基于以下的考虑。①较高的传输速度,尤其是USB 总线对实时传输的良好支持可以满足图像实时性的要求。②“即插即用”操作,终端平台可以对摄像头进行自动检测和配置,节省了系统功耗。③摄像头采用外置形式,节约了系统的硬件空间,现成USB总线的固件或芯片包含低级并行/串行转换、误差校验和数据流控制算法等功能,可以简化系统设计工作。④基于USB总线的可扩展性,可方便的进行系统功能扩展,符合嵌入式系统接口串行、高速的发展方向。⑤可移植性,采用了模块化设计和USB 总线进行传输,可以很容易的移植到带有USB 接口的别的嵌入式系统中。


由于数字摄像头所采集到的图像数据是没有经过压缩处理的,数据量非常大,不符合USB 总线实时传输的要求。因此在经过USB总线传输以前必须使用视频压缩芯片对采集到的视频数据进行压缩,该类芯片的特点是将某一标准的压缩算法固化在其中, 具有开发成本低、开发周期短、运算速度快等优点,符合图像传输实时性的要求。经过对各种专用视频压缩芯片的选择,采用了OmniVision公司推出的 OV518高性能摄像机到USB 接口芯片,该芯片降低了产品的成本,极大地简化了单片CMOS图像传感器和USB的接口,可以很容易地构成基于USB的视频子系统。[page]

OV518 最大视频传输速度的设计,使得系统能够以更加实时的方式获取大量的视频信息。片内高性能专用压缩引擎可以达到7:1 的压缩比,保证了从图像传感器到终端平台的快速图像传输。对于QVGA图像格式,OV518的压缩引擎支持高达30 帧/秒的传输速度,减少了低带宽应用中通常会出现的图像跳动现象。OV518还具有优秀的静态图像捕捉功能,使用起来和数码相机一样方便。其内部结构如图 1 中USB 连接桥部分所示。由于PXA255 的USB 接口只有从控制器,只能作为一个从设备使用,我们采用Philips公司的ISP1160为PXA255扩展了两个USB主接口。ISP1160是专门用以在嵌入式系统或便携式设备中实现USB 协议的芯片,支持所有的传输类型:控制、中断、批量及同步。该芯片还提供了节能工作模式以减少功耗,每个下行端口都有独立的过流检测输入引脚和电源供电开关控制输出引脚,使系统电源的管理更加灵活。ISP1160与CPU的接口,是专为RISC 的CPU设计的,极大的简化了设计工作,可以不加修改的移植到别的嵌入式系统应用中。总之,整个视频模块硬件设计体现了嵌入式系统设计对体积,速度和功耗的要求,既保持了很高的处理速度和很小的集成空间,又降低了系统的功耗。

3 软件设计

3.1 软件平台
微处理器PXA255 功能强大,系统资源十分丰富,十分需要一个功能强大的操作系统来管理这些资源,经过对各种嵌入式操作系统的比较,嵌入式Linux的诸多优点非常适合于作为该终端的操作系统:开放的源码,可移植性强,强大的网络功能和对USB 总线及Video设备的良好支持。终端平台采用图形用户界面,出于嵌入式系统对实时性和对GUI 的占用资源少、高性能、高可靠性及可配置的考虑,我们选择了MiniGUI图形用户界面支持系统。

3.2 视频模块软件的基本结构
视频模块软件的设计采取了模块化的设计方法,根据视频模块设计的特点和多媒体终端视频功能的需求,整个视频模块软件有4 个功能模块组成:USB 模块、摄像头驱动模块、解码模块、视频应用模块,完成了采集、解码、本地显示、本地用户控制和网络传输等功能,其基本结构如图2 所示。为了提高图像采集的实时性和系统性能,在各个模块的设计过程中,根据Linux 操作系统的特点和采用的解压缩算法的特征,我们对程序和算法进行了优化、简化,以加快计算速度,提高效率。以下将对各个模块的功能和实现进行介绍。


3.2.1 USB 模块
该模块包括USB 总线驱动程序(USBD)和主控制器驱动(HCD)。USBD 主要处理USB 协议中与硬件无关的部分,对协议规定的USB 总线以及USB 设备共有的操作和性质提供支持。HCD 负责对ISP1160 进行抽象和对USB 的低级支持,ISP1160 的寄存器编程来驱动ISP1160,为上层的USB 总线驱动提供软件接口来控制ISP1160。图3 给出了USB 模块的软件功能结构图。Linux 操作系统提供有稳定的USB 总线驱动程序,我们只需要编写HCD 程序。在HCD 的设计中,我们结合ISP1160 专为嵌入式设备设计的特性对实时传输和非实时传输进行不同的调度,增强了对USB 总线实时传输的支持;结合Linux对软中断的良好支持,采用底半部机制(bottom half)提高中断处理的实时性。通过这两项措施有效的提高了视频数据传输的稳定性和速度,降低了对系统资源的消耗。


3.2.2 摄像头驱动模块
该模块为摄像头的USB类型驱动(ClassDriver),其主要功能是对视频应用模块提供符合Linux 的视频捕获标准V4L2(Video for Linux Two)的接口,通过USB 模快接收图像数据。V4L2 是Linux 平台上处理和访问视频设备的最新的标准应用程序接口,通过该接口,模块对视频应用模块提供QVGA(320*240)和VGA(640*480)两种采集模式的切换,视频图像参数的调整,彩色和黑白视频流和静止图像的采集功能。该驱动采用多个帧缓冲存储空间,并使这些帧存轮流处于接收数据和存储数据状态,当收到图像帧事件发生时,将会触发相应的机制,实现了图像帧的异步接收,异步接收机制提高了程序的运行效率。除了实现V4L2 标准常规的read 接口外,还重点实现了mmap(Map device memory into application address space)接口,通过该接口,可以把内核空间的设备内存地址空间映射到用户空间的地址空间,减少了图像数据拷贝的次数,提高了图像采集的实时性。 [page]

3.2.3 解码模块
由于图像经过了压缩引擎的压缩,在本地终端进行实时显示之前必须经过解码模块的解码,如果视频流通过网络进行传输,在本地终端视频流则不必经过该模块,但是远程应用仍然需要该模块。目前图像压缩技术主要采用余弦变换(DCT),小波变换(Wavelet)和子带编码等技术,其中余弦变换具有快速算法,易于用软硬件实现,且压缩性能接近统计最佳,目前被广泛采用,这也是压缩引擎采用的算法。余弦变换用于数字图像压缩编码时,一般采用二维变换,先将整幅图像分成 8×8 或16×16 宏块,以宏块为单位进行二维变换,再对每一宏块的变换域系数用Zig - Zag 方式进行Huffman 变长编码或算术编码。在图像接收端作相反的处理,即先恢复各宏块的变换域系数,再经余弦反变换即可恢复图像数据,其解码原理和主要步骤如图4 所示。

该模块是提高实时性的关键所在,为提高实时性,我们对代码进行了有效的优化,主要措施有:针对Xscale微处理器的特点,合理安排程序流程,尽量做到并行处理,提高程序运行效率;采用适合整数运算的快速反余弦变换算法,变换中只用加法和移位,减少了乘法运算量,提高了运算效率;采用基于查表的快速 Huffman 解码算法,以减少运算量,提高计算速度。通过这些措施既减少了内存的开销,也加快了解码的速度,取得了满意的效果。

3.2.4 视频应用模块
视频应用模块包括两部分:本地应用子模块完成视频图像的实时显示,本地用户控制和图像的存储等功能;网络传输子模块完成基于RTP 的压缩后的视频流数据传输,远程控制等功能。借助于Linux 操作系统对多线程机制的良好支持,主线程专门负责消息的响应,使程序能够即时响应用户通过鼠标或键盘输入的命令或其他事件,辅助线程用于完成图像的实时显示、存储和网络传输等其他比较费时的工作,这样就不至于影响主线程的运行,保证在做图像解码显示和数据传输的同时,能够即时响应用户的输入。不同的线程完成不同的任务,提高了程序的模块化,便于维护和扩展,充分利用了系统资源,有利于提高应用程序的实时性。由于对视频输出设备,RGB空间格式更加直接高效,而解码模快的输出为YUV颜色空间子格式,所以在视频图像的回显之前必须进行颜色空间的转换。该模块图形界面的实现是通过调用MiniGUI 提供的API 函数来实现的,MiniGUI 提供了比较丰富的类Win32API 函数,给我们开发图形界面带来了很大的方便。

4 视频模块性能及测试效果

视频模块经过终端测试,性能结果如表1 所示。通过结果可以看出,采集的经过压缩的视频图像帧速和经过网络传输后基于PC显示的帧速都达到了理想水平,但视频图像在终端上显示时,由于嵌入式系统处理能力较PC 机弱,解码模块和显示模块虽然经过了优化,但仍然占有一定的时间,使速度下降了很多。但该速度相对于嵌入式系统来说,也达到了实用的地步,并且不影响终端基于网络的视频应用,随着嵌入式微处理器处理能力的逐渐增强,这个问题也一定能得到很好的解决。比如,集成英特尔无线MMX 技术的处理速度更快的英特尔PXA27x 处理器家族新增了一系列新技术以提供额外的性能来支持高级视频。

终端视频模块采集的图像经过压缩、解压缩后具有较高的质量,基于PC 和终端显示并未见明显区别,图像效果及用户界面窗口如图5 所示。

5 结论
本文针对基于Intel Xscale 和嵌入式Linux 的多媒体终端对视频应用的需求,从实时性、功耗和体积等着手,提供了一种多媒体终端图像实时连续采集、显示管理和网络传输的方案,并且在实际中得到了验证。由于采用了模块化设计和设计的灵活性,只需稍加修改就还可以很容易的移植到别的嵌入式系统多媒体应用中。我们可以在该终端平台上方便地进行一些基于视频模块的网络应用开发,我们认为有价值的进一步开发与研究方向包括: 作为嵌入式视频网络接入终端满足不同方面的需要,例如远程数字监控系统, 交互式医疗,交互式可视多媒体远程教学、网络电台、视频点播等。较PC机实现的系统有具有体积小、成本低和稳定性高的特点,开发具有自主知识产权的手持式多媒体视频网络终端系统。当今世界已经进入了Internet 时代, 嵌入式系统接入Internet 已成为网络接入重要的基础信息设施。因此, 具有视频模块的嵌入式系统在交互式多媒体、嵌入式系统、消费电子产品等领域具有很强的应用背景和市场前景。 
关键字:嵌入式系统  Linux  MiniGui  通用串行总线 引用地址:基于Intel Xscale和嵌入式Linux的视频模块设计

上一篇:基于PC/104平台嵌入式Linux系统核心定制方法
下一篇:xWorks嵌入式系统下视频监控系统通信的研究

推荐阅读最新更新时间:2024-05-02 21:59

嵌入式系统的远程参数测量的设计
嵌入式系统由于性价比高开发周期短等优点目前得到了迅猛发展,各类基于 ARM 处理器的应用开发更是如火如荼。这里介绍基于 ARM9 嵌入式芯片 S3C2410 构建的测量监控系统,该系统设计方案先进,集成度较高,在实践中得到了广泛的应用。 2. 嵌入式 ARM9 S3C2410X 简介 S3C2410X 是三星公司提供的基于 ARM920T 内核的 32 位 RISC 处理器,它的低功耗、低价格、高性能设计特别适合于手持设备和通用嵌入式应用场合,为降低整个系统的成本,它提供了丰富的内部设备,包括分开的 16KB 指令 Cache 和 16KB 数据 Cache,MMU 虚拟存储器管理,24bbp 模式下最大 16M 色 TFT
[单片机]
<font color='red'>嵌入式系统</font>的远程参数测量的设计
基于ARM9芯片的S3C2440和Linux操作系统设计SPI驱动程序
  在嵌入式开发过程中,许多系统通常使用串口驱动来满足通信要求,但在实际应用中,使用SPI通信方式会更加高效和快捷[2]。SPI接口是一种高速、高效的串行接口技术,因而SPI设备在数据通信应用中十分方便[3]。本文基于ARM9芯片的S3C2440和Linux操作系统,设计了一种SPI驱动程序,该驱动程序功能可靠灵活、易于移植,可应用于多种嵌入式平台,实现ARM与设备之间的通信。   1 硬件说明   1.1 S3C2440开发平台   采用三星公司的SoC芯片S3C2440[4]作为核心处理器,主频为400 MHz,并与64 MB SDRAM和64 MB NAND Flash共同组成核心部分。此外,该平台也为用户提供了大量的通
[单片机]
基于ARM9芯片的S3C2440和<font color='red'>Linux</font>操作系统设计SPI驱动程序
中芯国际应用130纳米技术量产USB图像芯片
    中芯国际 集成电路制造有限公司(“中芯国际”,纽约证券交所:SMI,香港联合交易所:0981) ,今天宣布由 DisplayLink 设计及中芯国际生产的一系列 USB 图像芯片的成功量产。该芯片系列使用中芯国际130纳米技术。     新产品 DL-125, DL-165 和 DL-195,使连接额外的显示器变得轻而易举,使用 USB2.0连接口的储存装置站,显示器,迷你显示器,投影机以及适配器。新的芯片以及软件解决方案提供更高度整合的 USB 图像芯片,支持更高高清图像分辨率,相对于较早 DisplayLink 的 DL-100系列产品,新产品的软硬件升级让整体视频回放及操作更流畅。     “由于中芯国际的全方位服务
[嵌入式]
iOS新增USB限制模式但一个配件就可能“破解”
   新浪手机讯 7月10日上午消息,苹果今日正式推送iOS 11.4.1,带来了一个USB限制模式,防止黑客利用破解工具进行iPhone密码破解。   新推送的iOS 11.4.1中新增的USB限制模式,目的是为了防止第三方公司通过USB方式破解iPhone并获取其中数据。   在iOS设备锁屏1小时之后,用户无法访问任何类型的第三方软件,仅能通过Lightning接口充电,这样就可以将此前的“GrayKey灰钥匙”等密码破解工具拒之门外,第三方无法成功破解手机。   然而,网络安全公司ElcomSoft的研究人员又发现了一个新漏洞,只要你将USB配件插入iPhone的Lightning接口就可以重置倒计时1小时,无论手机过去
[手机便携]
通过光纤传输USB信号的电路设计
本文涉及光纤通信接口电路,特别涉及一种通过光纤传输USB(通用串行总线)信号的电路。 本文的电路将USB(通用串行总线)信号D+、D-的三种状态转换为发射激光的三种强度全亮、半亮、暗,并且通过光纤传输到对方激光接收器再通过相应电路恢复D+、D-的三种状态。激光接收器电路的输出信号之一触发单稳延时电路来控制D+、D-与激光发射电路、激光接收电路的通与断。 由于目前计算机的USB信号使用电缆传输,所以通信距离难以延长,一般不超过30米。本文的方案克服了现有电缆传输USB信号距离短的缺点,从而提供一种通过光纤传输USB信号的电路,使USB的通信距离增加到几十千米。 1 实现原理 本方案是一种通过光纤传输USB信号的电路,成对使用,通
[嵌入式]
Linux开发环境的建立步骤
传统的嵌入式开发环境需要单片机的仿真器,包括C语言、汇编语言、调试工具等的集成开发环境IDE、实时操作系统等。 由于Flash技术的发展,仿真器已可以省去。随着BDM调试工具的标准化,BDM调试工具会变得越来越简单、越来越通用。 软件方面,Linux下的自由软件GNU gcc可以完成几乎所有知名CPU以及DSP的交叉C编译和调试,故IDE可以省去。 操作系统方面,uClinux、RTLinux、μC/OS等源码开放的、免费的嵌入式操作系统也都性能稳定可靠。 因此,全部使用自由软件开发嵌入式应用无疑是一种不错的选择。我们在32位MCU ColdFire上实现了上述全部开发过程。这一过程原则上也适合其它几乎所有的32位
[工业控制]
uCOS II嵌入式系统在C8051F060上的应用
随着集成电路的高速发展和CMOS工艺水平的不断提高,系统级芯片SOC已经开始成为设计的主流。C8051F060单片机由美国Cygnal公司设计并制造,是一款完全集成的混合信号片上系统SOC,具有与MCS51内核及指令集完全相同的微控制器。在传统的单片机开发工作中,经常遇到程序跑飞或是陷入死循环,尤其是其中牵扯到复杂的计算,只有耗费大量时间来慢慢分析。如果在系统中嵌入uCOS II实时操作系统,将使得调试程序变得简单,并大大增强系统的稳定性和可靠性。 1 uCOS II系统在C8051F060上的应用 要应用uCOS II系统,首先要做的就是在C8051F060上移植该系统;其次,在运行稳定正常的系统上进行开发。另外,还需要一个
[单片机]
USB接口在串行通信中的应用
    摘要: 介绍USB接口在串行通信中的应用,讨论USB接口同RS-232接口的转换以及USB接口modem的简化设计,并给出了实际中的产品样图。     关键词: USB RS-232 通讯类 UniModem 1 USB接口简介 USB即通用串行总线,可以实现热插拔,采用菊花链结构,最多可以同时连接127台设备,由总线提供电源,并有检错、纠错功能以保证数据正确传输。     USB在PC机上应用时,PC机的操作系统需要支持USB协议,此时PC机上的软件包括两部分:USB初始化软件和运行部分。
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved