技术文章
基于FPGA的视频图像画面分割器的设计
 

早期的多画面分割器设计使用了很多的模拟器件,这时的电路开发周期长,产品的调试,修改升级比较困难。成本较高。在这里采用FPGA芯片,完成图像的处理和电路各个部分工作的协调。从而提高系统的集成度和性能。

1 系统工作原理

系统结构如图1所示,从系统结构图可以看出,系统主要包括视频信号输入模块,视频信号处理模块和视频信号输出模块等3个部分组成。各个模块主要功能为:视频输入模块将采集的多路视频信号转换成数字信号送到FPGA;视频处理模块主要有FPGA完成,根据需要对输入的数字视频信号进行处理;视频输出模块将FPGA处理后的信号转换成模拟信号输出到显示器。 2硬件电路设计

本设计是将多路视频信号最终实现在一个显示器显示的装置。硬件部分主要分为3个部分进行设计,第一部分是视频数据的采集,并转换成数字信号;第二部分是FPGA接收的多路视频信号,根据需要进行信号抽取和合成。还要通过模拟I2C接口对视频编解码芯片进行配置。第三部分是将合成的信号D/A转换后送显示器输出。其中视频采集部分主要由摄像头和视频解码芯片SAA7113组成。视频输出部分由视频编码芯片SAA7121组成。

 

2.1视频解码模块

该部分电路的主要功能是将输入的模拟视频信号转换成数字视频信号供FPGA器件处理,本设计选用的芯片是2片飞利浦的SAA7113H芯片,可实现4画面分割。SAA7113是Philips公司的一种高集成度视频解码芯片,他支持隔行扫描和PAL BGHI,PALN,PALM,NTSCM,NTSC N,NTSC4.43NTSC-Japan和SECAM多种数据输入格式,可通过其I2C接口对芯片内部电路进行控制该芯片具有如下特点:

支持4路模拟输入,内置信号源选择器;有2个模拟预处理通道;内置2个模拟抗混叠滤波器;2个片内9位视频A/D转换器;行/场同步信号自动检测;多种数据输出格式。

经过芯片处理过的模拟信号以CCIR656标准[1]YUV4∶2∶2格式的形式输出送往FPGA处理。视频解码电路图[2]如图2所示。

 

2.2 FPGA器件及PROM

FPGA[3]芯片作为系统的核心处理芯片。经过SAA7113H模数转换后的信号输入到FPAG在数字领域对信号进行处理。根据画面分割的要求,FPGA对多路视频信号进行抽取,然后将抽取的信号存储到存储器SRAM中,然后把提取的各路视频数据合成一帧数据。并模拟I2C接口对视频编解码芯片进行初始化配置。本设计采用Spartan3系列中的XC3S400PQ208型号。这款芯片采用90 nm工艺,系统门数(System Gates)40万门,等效逻辑单元(Equivalent Logic Cells)8064,分布式RAM容量(Distributed RAM Bits)56 kb,块RAM容量(Block RAMBits)288 kb,专用乘法器(Dedicated Multipliers)5个,数字时钟管理单元(DCM)4个,最大的用户I/O数(MaximumUser I/Os)141个。工作频率高达200 MHz,足以完成设计需要。

PROM主要负责向FPGA加载程序,因为FPGA内部的SRAM掉电时不能保存自身配置。本设计选用Xilinx公司用于Spartan3系列的专用PROM芯片XCF02S。FPGA的编程数据存储在PROM中。

2.3 SRAM

SRAM主要用于输出的暂存图像数据,由于视频数据量比较大,虽然FPGA为高速器件但是由于视频数据量比较大,视频数据的处理会造成视频延迟。造成显示器的视频画面的不连贯。本设计采用ISSI公司的IS61LV25616的SRAM。

 

2.4视频编码模块

SAA7121是视频编码芯片,主要功能是把标准YCbCr(CCIR 656)或者MPEG格式数据编码成复合视频输入信号(CVBS)或分离视频信号S-VIDEO。SAA7121支持NTSC-M,PALB/G和子标准,并具有Y,C和CVBS三个信号的数模转换器。基本编码函数由副载波生成、彩色调制和同步信号内插组成。SAA7121提供有I2C总线接口,可按主动方式或从动方式工作。视频编码电路如图3所示。

 

3 软件设计

对于不同路数的画面分割要求,软件编程复杂程度是不同的,但是编程的思想都是相同的。都是将需要实现的视频信号提取出来,然后再按照视频显示格式的要求重新合成新的一帧数据送视频编码模块,最终使得多路视频图像在一个显示器上显示出来。 下面以最简单的一种情况为例来说明视频合成的原理。输入视频信号为1路视频信号,要提取的也就是l帧数据的有效部分。而其他的数据部分,帧合成的时候插入。需要插入的数据包括:定时基准信号和消隐信号。程序流程图如图4所示。

3.1 有效视频信号提取模块

在有效视频选择模块,对经过SAA7113H芯片A/D转换成8位数据送FPGA,对其中的有效数据检测,通过检测每行的SAV信号,来判断那些是有效行数据,然后将有效行SAV后的1440个字节数据的行有效视频数据提取出来。

 

3.2帧合成模块

帧合成也就是根据画面分割要求按照帧格式重新组合成一帧数据。对于每一行数据,先判断是否有效行。对场消隐行,整行数据都再生插入;有效视频行,插入SAV,EAV和行消隐数据。再生的数据和存储器中的有效数据分时的输出到SAA7121视频编码芯片,然后输出到显示器。

3.3仿真结果

如图5所示为实现一帧视频数据抽取和合成Model-sim仿真[4]图,其中clock为系统时钟,reset为系统复位信号,ad_clock,ad_data,是经过SAA7113输出的8位数据。addr_r,sram_addr,wrt_sram_addr,分别是读写存储器地址,和经过分时选择后的存储器操作地址。sram_data是存储器数据,da_clock和da_data分别是送SAA7121的时钟和数据。从仿真波形可以看出对存储器读写时序是正确的。

 

4 结 语

多路画面分割器的原理都是一样的,只是要增加视频信号的路数,硬件上要多加A/D转换器和摄像头。软件方面,就要根据画面分割要求,要对多路视频信号进行抽取,然后合成一帧数据,再经过D/A转换器输出。视频路数越多则软件就更复杂一些。

 
 
 
    网站导航 |友情链接 | 招聘英才 | 联系我们 | 汇款方式 | 在线支付
公司地址:浙江省杭州市信义坊商街225号  邮政编码:310014
E-mail:tech@freefpga.com 服务MSN:freefpga@hotmail.com 电话(传真):0571-85084089
FPGA开发板技术支持群:7277386
Copyright © 杭州自由电子科技有限公司 2006 freefpga.com All Rights Reserved 备案序号:浙ICP备06026335号