图像是自然生物或人造物理的观测系统对世界的记录,是以物理为载体,以介质来记录信息的一种形式。图像信息是人类认识世界的重要知识来源。据学者统计,人类所得的信息有80%以上是来自眼睛摄取的图像。而事实上,这种静态的图像已无法满足人们对视频信息的要求。随着人们对视频数据的要求越来越高,高清晰、实时性视频数据量越来越大,视频的实时处理难度也在逐渐增大。
按系统的处理器不同嵌入式视频采集系统大致可分为三类:(1)基于专用视频图像芯片的视频采集系统;(2)基于PC的视频采集系统;(3)基于DSP的视频采集系统。
基于专用视频图像芯片的视频采集系统其处理单元为专用图像芯片,该图像芯片决定系统的功能,其应用主要针对某一类产品(如数码摄像机),所以具有一定的局限性。而基于PC机的视频采集系统为普遍的就是基于视频采集卡获取数字化视频信息,通过运行相应的PC程序实现视频的采集、显示与存储,但是目前基于PC的算法程序通常处理时间较长,很难实现实时的图像处理应用。
相比基于专用视频图像芯片和基于PC的视频采集系统而言,嵌入式视频采集系统可完成视频的实时采集、传输以及各种视频压缩算法和图像处理算法的实现,根据不同的应用,可以编制不同的图像处理程序,所以具有更大的灵活性,并且设计与实现简单,硬件设计一般采用基于DSP的视频采集系统,即"CCD+视频信号处理芯片+CPLD/FPGA/EPLD +DSP"的模式实现。其中,视频信号处理芯片进行信号的A/D转换,CPLD或EPLD或FPGA用于视频采样控制,DSP对采集的数据进行处理。嵌入式视频图像采集系统主要包括硬件设计、软件设计和操作系统3个部分。
CPLD(ComplexProgrammableLogicDevice)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过电缆("在系统"编程)将代码传送到目标芯片中,实现设计的数字系统。
1 嵌入式视频采集系统的硬件设计
1.1 视频采集系统的基本构成
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
基于DSP的视频采集系统要求对视频信号具备采集、实时显示,对图像的处理和分析功能。因此,一个视频采集系统通常可由如下五部分构成:视频图像的采集、视频图像的显示输出、各种同步逻辑控制、视频图像的分析和处理、视频数据的存储。因此,对于视频采集系统的基本构成。
1.2基于DSP的视频采集系统
基于TMS320DM642与TVP5150[2]构成的视频采集系统,TMS320DM642可以直接和视频编解码器接口,该系统可同时完成四路视频图像的实时采集、传输以及各种视频压缩算法和图像处理算法的实现,根据不同的应用,可以编制不同的图像处理程序。TMS320DM642有自己的图像处理库函数,可以实现各类图像处理算法。因此,该系统具有更大的灵活性与通用性。
1.2.1 TMS320DM642简介
tms320dm642是TI公司C6000系列DSP总的定点DSP,其是C6416型高性能数字信号处理器,具有极强的处理性能,高度的灵活性和可编程性,同时外围集成了非常完整的音频、视频和网络通信等设备及接口,特别适用于机器视觉、医学成像、网络视频监控、数字广播以及基于数字视频/图像处理的消费类电子产品等高速DSP应用领域。笔者针对市场客户的需求,设计并实现了一款以TVP5150为视频输入解码器,以PCM1801为音频输入采集电路,以TMS320DM642型DSP为处理器的多路视频采集兼压缩处理PCI板卡,并将其应用于构建高稳定性、高鲁棒性和多媒体数字监控系统,取得了较好的社会效益和经济效益。
TMS320DM642采用第二代高性能、先进的超长指令字veloci T1.2结构的DSP核及增强的并行机制,当工作在720M赫兹的时钟频率下,其处理性能可达5760MI/s,使得该款DSP成为数字媒体解决方案的产品,它不仅拥有高速控制器的操作灵活性,而且具有阵列处理器的数字处理能力,TMS320DM642的外围集成了非常完整的音频、视频和网络通信接口。
1.2.2 视频A/D采样电路-TVP5150
系统中,TVP5150是由TI公司推出的一款高性能视频解码器,可将NTSC、PAL视频信号转换成数字色差信号(YUV4:2:2),支持两个复合视频或一个S端子输入。输出格式为ITU-R BT.656,并支持Macrovision?复制保护以及的VBI功能。不仅如此,TVP5150还具备了封装小(32脚的TQFP)、功耗小的特点(<150mW)。因此,它非常适用于便携、批量大、高质量和高性能的视频产品。TVP5150可接受2路复合视频信号(CVBS)输入和1路超级视频信号(S-Video即Super-Video,Y/C)输入。该芯片包含一个扩展端口(X-端口)用于数字视频(双向半双工),它可直接连接倒MPEG或视频电话进行编解码。TVP5150的图像端口(I-端口)支持8位或16位的输出数据并带辅助参考数据可直接与VGA控制器接口。TVP5150提供I2C总线接口,其传输速率为400kbits/s,通过它可以完成芯片的初始化以及设置修改等操作。TVP5150作为I2C总线的从设备,多可配置为2个不同的从设备地址,一条I2C总线只能同时访问2个TVP5150配置口,所以DM642可以连接4个TVP5150,进行4路视频输入。
1.2.3 视频D/A电路-SAA7121
系统中视频D/A由视频编码器SAA7121[4]完成。SAA7121支持PAL与NTSC格式的视频编码,其输入支持BT.656格式的数字视频。SAA7121有1路复合视频(CVBS)输出和1路超级视频(S-Video,Y/C)输出,其系统像素时钟频率为13.5MHz,它可以直接接收MPEG解码数据和采用4:2:2格式每行720有效像素的CCIR兼容YUV数据,其内部包含同步/时钟产生器和数模转换器两部分电路。SAA7121同样需要通过I2C总线进行初始化和设置修改等操作。
可看出,VP0既要做视频输入口,也要支持视频输出口,即VP0可以工作在Capture与Display两种作模式。但这两种工作模式不能同时使用作模式不能同时使用。当VP0作为8-位的BT.656视频采集口时,仅需视频数据流串行时钟和采集使能控制信号,串行数据流串行时钟由TVP5150的SCLK,采集使能控制信号则由TVP5150的INTREQ/GPCL/VBLK引脚配置为通用输出引脚来控制,此时SAA7121H不起作用。当VP0作为8-位的BT.656显示口时,SAA7121需要HSYNC(行同步信号)、VSYNC(场同步信号)、LLC(27MHz的行锁存号)控制。
1.2.4 系统原理
系统其主要功能是完成视频图像的采集、处理、存储和传输。系统的视频输入可以是NTSC、PAL和SECAM制式的任何一种,或者采用S端子输入。TVP5150完成视频信号的A/D转换,为后续处理提供数字视频数据,同时它还分离出行、场同步信号并输出系统时钟供视频D/A芯片和FIFO使用。TVP5150的输出格式包括4:2:2、4:1:1、4:2:0和4:1:0等四种YUV格式输出,数据输出格式是通过I2C总线编程来选择的,TVP5150的内部寄存器初始化也通过I2C串行接口来完成。对于不同的输入制式、不同的采集要求和不同的处理要求,其帧缓存要求是不相同的,如对于PAL-D制ITU-R BT.601视频输入,采样后按4:2:2格式输出,一帧数据为720×576×2=0.83Mbyte,若缓存三帧图像,则需要3Mbyte空间的采集帧缓存,若按4:1:1格式输出,则只需2Mbyte的帧缓存。系统可选择8M×32-bit的SDRAM在系统中即作为采集帧缓存和处理后的数据帧缓存,也可作程序的存储器使用。系统提供串行接口,可与外部设备进行通信和传输图像数据。其中Xilinx Xc2s300 FPGA[5]实现以下四点功能:
(1) 完成系统中视频采集和输出部分的同步信号和消隐信号的控制,其中主要包括TVP5150和SAA7121的行同步信号、场同步信号、消隐信号;
(2) 将部分逻辑单元设计为FIFO作数据缓存,完成外接FIFO的同步读写控制,承担TVP5150与DSP的数据传送工作;
(3) 作PCI总线控制器,完成TMS320DM642与计算机的数据通信工作以及从计算机加载各种图像处理算法;
(4) 对TVP5150输出的数字图像进行预处理,其中主要包括图像数据的色度空间转换如YUV到RGB的转换,数据格式转换如将4:2:2转换为4:2:0;
(5) 作数据总线接口,实现数据的驱动传输等功能。
TMS320DM642在系统中是各类算法实现的器件,根据不同的应用场合,可以编制不同的算法处理程序,使得该系统具有了很强的灵活性与通用性。值得强调的一点是为了便于操作系统中的其它外设,在该系统中,TMS320DM642的外部存储器接口控制寄存器必须配置为优先使用外部存储器模式。
2 嵌入式视频图像采集系统的软件设计
一个完整的嵌入式系统由4部分来组成。
底层是硬件系统,是嵌入式处理器(嵌入芯片),通常这样构成的系统又被称为是SOC(System on Chip)系统。在硬件系统的上面是BSP(板级支持包),包括各种必要的对底层硬件系统的屏蔽,引导上层操作系统在硬件系统上的正确运行。操作系统正确运行之后还需要开发各种设备驱动程序,目的是给用户的应用程序开发提供对底层设备的屏蔽,提供一个统一的用户开发接口(API)。
BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS.
嵌入式操作系统相关技术已经成熟,由于Linux[6]具有源码开放、开发工具丰富、技术支持广泛等特点,视频图像采集系统选用嵌入式Linux操作系统(Embedded Linux Operation System)。Linux中的中断管理包括中断号的申请和释放、中断屏蔽和中断服务、中断向量分配等,时钟和设备驱动程序。
驱动程序是利用操作系统提供的接口,完成对底层硬件的操作。驱动程序的开发,是在操作系统提供的接口基础上编写对底层硬件的操作和控制程序,然后加入到操作系统的内核。用户对某一个设备的访问,首先是将用户的各种操作传递给操作系统,然后由操作系统调用设备的驱动程序,完成对硬件的各种数据传输,所以驱动程序必须要告诉操作系统该硬件的各种操作程序的入口地址。特别对于Linux下的驱动程序开发,经过调试通过的驱动程序可以编译为一个模块动态地装载入操作系统内核或者从操作系统内核中删除,因此驱动程序在Linux中是可以作为内核的一部分来编写。
对于用户程序开发,与通用PC上面开发应用程序类似。但是在嵌入式应用中,应用程序一般是作为文件系统的一部分加入到操作系统的内核,然后重新编译内核,生成一个可以执行的二进制压缩映像文件加载到系统的存储空间。加载的加入了用户应用程序的操作系统一般还必须固化,烧到系统的Flash中。在系统运行时,根据操作系统的INIT函数转到用户程序执行。
3 结 论
基于DSP的视频采集系统,由于可以灵活的修改其图像处理算法,它的应用主要面向用户的特定需求和对实时性有较高要求的场合。随着技术的发展和日益增强的需要,图像的实时传输和网络服务将是不可避免的,同时嵌入式系统是基于计算机技术且更加强调体积、功耗、成本、便携化应用等综合因素的精简计算机系统,将二者结合在一起而构成的完整传输系统将具有不可比拟的优越性。因此完全有理由相信在嵌入式系统的基础上构建视频图像采集、处理及传输系统具有广阔的市场前景。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。