欢迎来到天天文库
浏览记录
ID:27902976
大小:107.50 KB
页数:8页
时间:2018-12-06
《如何采用DSP+FPGA嵌入式系统实时视频采集系统设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、如何采用DSP+FPGA嵌入式系统实时视频采集系统设计 0引言 图像是自然生物或人造物理的观测系统对世界的记录,是以物理为载体,以介质来记录信息的一种形式。图像信息是人类认识世界的重要知识。据学者统计,人类所得的信息有80%以上是来自眼睛摄取的图像。而事实上,这种静态的图像已无法满足人们对视频信息的要求。随着人们对视频数据的要求越来越高,高清晰、实时性视频数据量越来越大,视频的实时处理难度也在逐渐增大。本文给出了一款基于DSP+FPGA的嵌入式实时视频采集系统的设计方法,该系统可以广泛应用于关系公共安全的场所,如银行、机场、车站、商场等。 1实时视频采集系统结构
2、常见的视频采集系统主要有两种:一种是基于单处理器(单片机、ARM等)的视频采集卡,特点是结构简单,易于实现,缺点是无法实时地对视频数据完成处理,需要使用外部处理器来完成特定的视频处理算法,因而成本高,升级维护难度大;另一种是基于主从处理器(ARM+DSP,FPGA+DSP等)的嵌入式视频采集卡,特点是系统高度集成,易于维护升级,可以满足视频采集的需求,同时可以完成特定的视频算法,成本较低。因此,本文给出了一种基于DSP+FPGA的嵌入式视频采集系统设计方案。其系统结构框图如图1所示。 2系统硬件设计 本系统的设计思路是通过模拟的视频摄像头来获取视频信号,然后采用模
3、数转换芯片SAA7111A将模拟的PAL制式视频信号转换为YUV4:2:2的数字视频信号。设计使用FPGA芯片EP1C6Q240C8作为协处理器,来完成视频信号的缓存和视频帧的合成,通过双RAM的乒乓结构来实现视频帧的完整性,并在完成视频数据的预处理后,将视频数据传入到DSP中,完成特定的视频处理算法(如压缩等),最后对处理完的视频数据进行传输和存储。同时,主处理器DSP还负责对视频采集芯片进行初始化配置。其系统硬件结构如图2所示。 2.1视频采集模块 设计一个视频采集系统的重要环节,通常是将外部的光信号转换成电信号,然后通过专用的视频转换芯片,来将模拟的视频信号
4、转换为数字视频信号。本设计采用的是模拟CMOS摄像头和Philips公司的高性能视频模数转换集成电路芯片SAA7111A。 SAA7111A是Philips公司的一款高性能视频输入处理芯片。它共有四路模拟视频信号输入端,可以输入4路CVBS或2路S视频(Y/C)信号,也可以编程选择四路视频输入中的一路或者两路组成不同的工作模式;可实现行同步、场同步信号的自动监测、分离,或场频50Hz或60Hz自动检测,并可在PAL制和INTSC制之间自动切换,同时能对不同输入制式的亮度信号、色差信号进行处理,实现亮度、色度和饱和度的片内实时控制;SAA7111A中的I2C总线接口可以对
5、片内寄存器进行设置。它有32个控制寄存器,其中的22个可编程;该器件的输出为16位V.PO总线,输出格式有12位YUV4:1:1、16位YUV4:2:2、8位CCIR-656、16位565RGB和24位的888RGB;输出信号可提供采样时钟、行同步、场同步等多种同步信号。 SAA7111A可将PAL制式的模拟视信号频转化为YUV4:2:2的16位数字视频数据,大小为625×720×16bit,其中25行用作场回扫,因此,每帧的有效数据有576×720×16bit。 2.2视频前端处理模块 数字化后的视频数据量一般都十分巨大。为了保证视频数据的完整性和实时
6、性,系统专门设计了视频的前端处理模块。其主要功能是完成视频数据的缓存,视频帧的合成,乒乓操作以及与DSP的通信。由于FPGA内部能反复编程,可以使系统简化,减小板卡面积,易于维护,升级方便,因此,本文采用了ALTERA的EP1C6Q240C8来完成视频前端处理功能。 由于该视频转换芯片没有提供地址信号,所以需要在FPGA内部设计一个地址产生器,以使数据可以对应的存储起来。SAA7111A提供有4个重要信号:LLC(参考时钟信号)、HREF(水平参考信号)、VREF(垂直参考信号)、RTSO(奇偶场信号)。 由于PAL制式具有隔行扫描特性,因此,采集的视频数据可被分为奇
7、偶场。因为视频图像处理是针对完整的视频帧,所以需要将奇偶场的视频数据进行合成。其实现方法是奇偶两部分合成一帧数据,即:偶场地址=基地址O+偏移地址;奇场地址=基地址E+偏移地址。帧合成操作示意图如图3所示。 为了保证视频采集系统的实时性,该系统使用双RAM的乒乓机构。乒乓操作在FPGA时序设计中的使用十分广泛,是一种典型的以面积换速度的设计思想。这种结构是将输入数据流通过输入数据选择单元等时地将数据流分配到两个数据缓冲区。在第1个缓冲周期,将输入的数据流缓存到数据缓冲模块1上;在第2个缓冲周期,则通过输入数据选择单元的切
此文档下载收益归作者所有