标题:
基于FPGA的视频图像分割技术设计与应用
[打印本页]
作者:
pengpengpang
时间:
2014-6-16 20:22
标题:
基于FPGA的视频图像分割技术设计与应用
数字硬盘录像机(DVR,digital video recorder)是一种性价比很高的视频监控解决方案,具有对图像/语音进行长时间录像、录音、远程监控和控制的功能,集合录像机、画面分割器、云台镜头控制、报警控制、网络传输等功能于一身,是目前市面上视频监控系统的首选产品。在DVR系统中,需要在一个现实设备上同时显示多个监控画面,这样可大大节省资源并便于工作人员监视,本文研究的内容就是这种图像分割技术在FPGA上的实现。
FPGA(field programmable gate array,现场可编程逻辑门阵列)是20世纪80年代由美国Xilinx公司首先推出的,它具有性能高、规模大、可重复编程、开发投资小等优点,在现代电子产品设计中应用广泛。FPGA具有极高并行度的信号处理引擎,提供高性能的信号处理能力【lJ。在本设计中,就是要利用FPGA的高速性能对多路视频信号(16路)进行处理,从而简化硬件结构,提升DSP性能,使单片DSP实现16路CIF图像实时编解码成为可能。
1 图像分割与合成
1.1视频标准
FPGA处理的视频数据由专用解码芯片Tw2815输出,符合ITU.RBT.656标准。ITU.RBT.656标准是在国际电信联盟无线电通信部门656.4号建议书中提出,全称是工作在ITU.RBT.601建议(部分A)的4:2:2级别上的525行和625行电视系统中数字分量视频信号的接口。实施这样的标准是为了在525行和625行两者间提供一种世界范围兼容的数字化方法。数据信号编码成8比特二进制信息形式,格式如图1所示。
由图1可知ITU.RB T.656并行接口除了传输4:2:2的YCbCr视频数据流外,还有行、列同步控制信号。一帧数据由525行(NTSC制式)或625行(PAL制式)、每行1728个字节的数据块组成。每行数据中,有4个字节的EAV和SAV信号,前3个字节是前导数据,最后一个字节中包含本行数据信息。EAV/SAv包含了关于同步的所有信息。
1.2分割与合成原理
视频图像合成基于像素域,即将多路压缩的源视频编码数据进行解码,将解码后的YUv(或RGB)数据按照一定线性规则进行排列,合并成一路ⅥⅣ(或RGB)数据,再将合并后的视频数据进行编码12J。ITU.RBT.656标准YCbC,(4:2:2)格式中4:2:2的含义为Y信号与Cb、C,信号的数量比为4:2:2,即在有效视频数据区域,每4个字节为一个宏像素点,其中包含2个Y信号,1个Cb信号和1个Cr信号。
要实现4画面及16画面显示功能,就是要以宏像素为单位对原画面像素按照1/4(或1/16)的比例进行抽取,如图2所示(以PAL制式一帧数据为例)。
通过上面的方法可以得到各视频通道1/4(或1/16)画面数据接下来的任务是将画面合成并传输给DSP做编码处理。通过实验得到:对于TMS320DM6467芯片的VPIF(视频设备接口)来说,只要输入视频数据有效数据行内从EAV到SAV之间的字节数为一定值(可由DSP内部寄存器设置),且行数满足对应制式要求,DSP就能将其识别为一帧有效数据。这样就能得到图3所示的第一种画面合成方法。这种方法虽然可行,但是可以看到,在有效数据区中每一行都由多个通道数据组成,在从内存读取数据时通道切换频繁。会给编码和调试带来困难。
通过实验得到另一个结论:在DSP内部是用DMA来搬运视频数据到显示bu仃er的相应位置。对于数据量相对较大的“数据块”来说,DMA所耗费的系统性能是非常接近的。由此,笔者设计出第2种换面合成方式,如图4所示。这样做可以简化逻辑设计,节约FPGA资源,提高项目开发速度。
2 系统设计
2.1硬件设计部分
图5是FPGA相关部分硬件框图,可以看到,16路视频数据由4片TW2815芯片输入到FPGA,经过分割合成处理后送入DSP。由于视频数据速度高、数据量大,所以采用两片DDR SDRAM进行缓存。主时钟为133 MHz,配置电路采用从串和JTAG模式,前者用于系统运行时由MCU进行配置,后者用于系统调试。FPGA芯片选用Xilinx公司Spaaen3ADSP系列
XC3SD3400A芯片。系统由ATX电源供电,内部各电平由电源芯片产生。内存为两片HY5DU561622ETP型DDR SDRAM。
2.2软件功能架构
图6为软件设计功能框图,它由多个功能模块组成。各模块功能如下:
①INPUT DEMUX:接收视频数据,根据视频解码芯片的工作模式将信号分解成ITU-RBT.656数据送入下级模块。
②VII)IN:检测SAV、EAV信号,提取有效视频数据(DI、CIF、QCIF),然后放入FIFO中暂存。
③WRITE DMA:按照设计中对内存的划分,将不同通道的有效数据写入设定的内存空间。
④READ DMA:按照一定的格式读取内存空间中的数据。
⑤MEM ARB:仲裁对内存的读写操作,协调读写模块工作。
⑥DDR SDRAM Controller:用Xilinx内存接口生成器(MIG)生成,实现FPGA与DDR接口
⑦VID OUT:在输出视频数据中添加通道号等辅助信息,便于DSP识别。
⑧12C_SLAVE:模拟12c从模块工作方式,外部MCU通过该接口对内部寄存器进行配置,以实现不同功能。
整个系统基于同步逻辑设计,使用Verilog HDL语言进行代码编写,仿真使用ModelSim,图7是其中典型一次写突发过程模块的仿真波形。
3 测试与验证
测试与验证主要使用ChipScop Pro在线调试工具。ChipScop Pro是Xilinx公司的片内调试工具(in-silicon debug),用于在线观察和分析FPGA内部信号,将逻辑分析仪、总线分析器等直接插入用户设计中,可以查看任何内部信号和节点。实时信号由JTAG口输入PC机,通过CllipScop Pro逻辑分析器进行分析。图8是用ChipScop Pro工具获取的FPGA运行时内部一次写突发过程中各相关信号的波形情况。
通过在线调试,解决硬件、软件方面存在的问题,最终实现画面分割月合成功能。图9为最终16路QCIF画面合成效果图。
4 结束语
数字化、智能化、自动化和网络化是未来监控系统发展的方向,而FPGA内部资源丰富,可以单芯片满足多通道数据分割处理,用于大规模多画面的矩阵式监控系统,有广阔的发展前景。
来源:钱伟康,王力,谢明
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0