APP下载

基于FPGA的多路视频合成与去噪设计

2014-06-06蓝晓柯

计算机工程 2014年9期
关键词:视频流中值实时性

胡 胜,陈 朋,蓝晓柯

(浙江工业大学信息工程学院,杭州310023)

基于FPGA的多路视频合成与去噪设计

胡 胜,陈 朋,蓝晓柯

(浙江工业大学信息工程学院,杭州310023)

在嵌入式视频处理领域,针对视频实时性要求高的特点,提出一种基于现场可编程门阵列(FPGA)的多路视频合成和去噪方法,包含四路视频合成一路视频的具体实现方案,以及对合成后的一路视频进行中值滤波的去噪算法,使用DDR2 SDRAM作为视频的帧缓存,设计中值滤波算法的硬件结构和逻辑结构。系统设计采用Verilog语言进行描述,并在Xilinx的FPGA上进行逻辑综合和硬件测试。实验结果表明,该方法利用FPGA实现了硬件并行和流水线技术,可保证视频的实时处理。

现场可编程门阵列;Verilog语言;多路视频合成;去噪;中值滤波;实时性

1 概述

在嵌入式视频处理领域,一般选用DSP作为处理器,DSP只对某些固定的运算提供了硬件优化,其体系还是串行指令执行系统,但是视频的数据量大且实时性要求高,如果把视频的一些预处理了也放在DSP上实现,视频处理的实时性很难得到保证。FPGA适合做数据量大、算法结构简单的运算,不适合做复杂的运算[1],视频预处理的特点是数据量大算法简单,因此用FPGA做视频预处理很合适。如果用FPGA完成视频的预处理,然后传给DSP完成视频编解码或者视频图像检测等工作,不仅保证了整个视频处理的实时性,也增加了系统的灵活性[2-3]。近年来,随着FPGA的广泛应用、成本的下降以及内部资源的增加,特别FPGA能在设计上实现硬件并行和流水线技术[4],出现用FPGA来独立设计较复杂的视频处理系统[5-6]。本文选用 FPGA做多路视频的预处理,在FPGA上将四路CIF视频合成为一路D1视频,并对合成后的一路D1视频进行中值滤波去噪处理,整个处理过程可保证视频处理的实时性。

2 硬件平台

系统的硬件结构如图 1所示,主要用到TVP5158,FPGA和DDR2 SDRAM等器件。TVP5158是TI公司的多通道视频解码芯片,一片TVP5158可以采集四路NTSC/PAL的模拟视频,每个通道含有10 bit的高速A/D转化器,把模拟视频转化为数字视频;TVP5158输出的数字视频图像支持8 bit ITU-R BT.656和16 bit 4:2:2 YCbCr格式,并且输出的分辨率是可配置为D1、Half-D1以及CIF。FPGA采用Xilinx公司的Spartan-6系列的xc6slx9-2ftg256芯片, Spartan-6是专门针对成本和功率敏感的市场。xc6slx9-2ftg256提供的资源包括:32个 18 Kb的BRAM(Block RAM)、2个时钟管理单元、存储控制器MCB(Memory Controller Block)等[7]。

图1 系统硬件结构

本文系统把四路 PAL的模拟视频接入到TVP5158,通过I2C总线配置TVP5158,配置它的输出分辨率为CIF(288×360),并以BT.656视频图像数据协议输出给FPGA。FPGA对TVP5158输出的四路CIF视频进行采集并合成一路D1(576×720)视频,然后对合成后视频进行去噪处理,最后FPGA再以BT.656格式输出D1视频,用于显示或者后端处理。

3 视频去噪算法

视频图像往往会在获取、传输和存储等过程中引入噪声,这些噪声破坏了图像原有的信息,影响图像的质量和清晰度,进而影响视频图像的后续处理(如边缘检测、图像分割、特征提取、模式识别等)的效果或准确性[8]。常用的去噪算法有均值滤波和中值滤波,以及在它们基础上改进的算法,中值滤波在尽可能地保护信号原有特征的同时滤除掉噪声[9-10],因而被广泛应用。

中值滤波的基本原理是把数字图像中每一像素点的值设置为该点某邻域窗口内所有像素点值的中值,因为噪声的特点,窗口内的中值一般不是噪声点,从而达到抑制噪声的目的。Gonzalo和Michael提出一种的“Max/Median中值滤波”算法[11]。

设am,n为图像在(m,n)处的像素值,Z是一个(2N+1)×(2N+1)的滤波窗口:

由式(1)得到以am,n为中心的4个子窗口的中值,然后再由式(2)对4个中值取最大值,作为窗口的滤波值。

文献[12]对上面的算法进行了改进:

先由式(3)得到Z1,Z2,am,n和Z3,Z4,am,n的中值,然后再由式(4)得到滤波的值。

如式(2)所示的算法保留了信号的几何特性,结合图像所有一维的特性来做二维估计,保留二维图像的一维特性,但是它本质上不是对称的,对噪声比较密集的区域性能不是很好。如式(4)所示的算法在保持前一种算法的优点同时,解决了它的不足之处。本文在FPGA上对改进算法进行了实现,设计算法实现的逻辑结构,完成了对合成后的一路D1视频的去噪处理。

4 FPGA的硬件实现

TVP5158解码的四路CIF视频流以一种超级帧的格式输出,超级帧的格式如图2所示,这种超级帧符合4:2:2 YCbCr的BT.656数据图像协议,视频的垂直同步信号和水平同步信号由内嵌的EAV(End Active Video)和SAV(Start Active Video)数据区分开来,解码以后的四路CIF视频的有效数据包含在超级帧的有效数据区(v_sync=0且h_sync=0的区域)。FPGA对超级帧的进行采集,提取四路CIF视频的有效视频数据并合成为一路D1视频数据,然后对合成后的一路D1视频进行中值滤波处理,最后对合成的D1视频添加同步所需的EAV数据、SAV数据和消隐数据后输出。FPGA的整个逻辑设计如图3所示,虚线框1完成四路CIF视频合成一路D1视频的操作,虚线框2完成一路D1视频的中值滤波处理并按BT656协议输出。

图2 超级帧的格式

图3 FPGA的逻辑设计

4.1 四路CIF视频的合成

FPGA接收TVP5158输出的超级帧,如图3的虚线框1所示,经过输入检测模块、FIFO1、超级帧检测模块和视频读写控制逻辑把四路CIF视频合成为一路D1视频。DDR2 SDRAM作为一路D1视频的帧缓存,在DDR2 SDRAM中开辟2个帧缓存空间,每块的空间大小应大于或等于合成后的一路D1有效视频数据1 440 Byte×576 Byte,一块缓存空间处于写状态时,另一块处于读状态,两块缓存空间交替处于读写状态。DDR2控制器有2个用户端口,一个端口用来写,另一个端口用来读,2个端口以轮询的方式与一片DDR2 SDRAM的进行交互,由于DDR2 SDRAM芯片的工作频率远远高于DDR2控制器用户端口的工作频率,从而视频的读写操作几乎可以同时地进行。

4.1.1 输入检测模块

输入FPGA进行合成的视频流是以帧为单位,因此,在系统上电或复位后,只有输入检测模块检测到一个超级帧的第一行的EAV(FF 00 00 B6)时,才把TVP5158输入的视频流缓存到FIFO1中,输入检测模块工作的流程如图4所示,只有当FPGA工作在S4状态的时候,FIFO1才打开写使能,缓存TVP5158的输入的视频数据。FIFO1是一个异步的FIFO,完成视频流从8 bit到32 bit的转化,是为了与DDR2控制器的最小用户数据接口32 bit相符合,这样可以提高DDR2控制器工作的效率。

图4 输入模块的工作流程

4.1.2 超级帧检测模块

超级帧检测模块从FIFO1中读取32 bit视频流,根据BT.656数据图像协议,采集视频流中的EAV和SAV,解析出超级帧的有效数据区(图2中v_sync=0且h_sync=0的区域)。从图2中可知,有效数据区是1 252行,而四路CIF视频的有效行总数是288×4,因此超级帧的有效数据区还有一些行并不是有效行,通过超级帧有效数据区中8 Byte的Start Code可以判断出来是否是有效行,并且可以得到Start Code后720 Byte有效数据来自的通道数(channel)、场数(fieldid)、行数(fline)。

4.1.3 视频读写控制模块

视频读写控制模块对前面检测出来的有效行视频,根据这行 CIF视频的channel、fieldid以及fline计算出它在D1视频中的位置,D1视频在DDR2 SDRAM的存放格式有场和帧2种格式。以场格式存放时,计算公式如式(5)所示,以帧格斯存放时,计算公式如式(6)所示。

其中,式(5)和式(6)中的ch0_addr,ch1_addr,ch2_addr,ch3_addr分别为4个通道的一行CIF视频的有效数据在DDR2 SDRM帧缓存中存放的开始地址;frame_startaddr是DDR2 SDRAM的2块缓存空间的其中一个首地址,每当接收完一个超级帧时,frame_startaddr的值变换一次;X是一行D1视频的有效数据的字节数1 440;Y是D1视频的有效行数576。

当采集完一个超级帧的数据时,写缓存空间中已经存放了合成好的一帧D1有效视频数据,写缓存空间将变成读缓存空间,原来的读缓存空间变成写缓存空间。然后从读缓存空间的开始地址依次读出D1的有效视频数据,用作后续的去噪处理。

4.2 中值滤波

FPGA已经对TVP5158输出的四路CIF视频合成为了一路D1视频,现在对合成后的一路D1的视频进行中值滤波,来去除掉视频图像中的噪声,以便于后续的输出或进一步处理。

FPGA实现的中值滤波整体的逻辑电路结构如图3的虚线框2所示,合成后的一路D1有效视频数据进入到异步FIFO2,FIFO2完成视频流从32 bit到16 bit的转化,使得中值滤波以像素点为单位对进行滤波,异步FIFO3完成视频流从16 bit到8 bit的转化,视频输出模块添加SAV、EAV以及消隐数据,使其以符合BT.656协议输出D1的视频流。中值滤波模块包括3个主要的部分:滤波窗口的设计、图像边缘检测以及滤波算法的实现。

4.2.1 滤波窗口的设计

FPGA要实现中值滤波,最关键的一步是如何得到滤波窗口。图5左图是3×3滤波窗口的实现方法,D32,D31,D22,D21,D12和D11都是寄存器,做一个时钟周期的延时,Line_buf1和Line_buf2是用作行缓存,缓存数据大小是717个像素,这样就能够得到如图5右图所示的滤波窗口,这个滤波窗口水平移动是以列为单位,当窗口到达图像最右边时,窗口跳到最左边同时向下移动一行。

图5 3×3滤波窗口的FPGA实现

4.2.2 图像边缘检测

从图5右图可以知道一帧图像的第一行、最后一行、第一列和最后一列是没有3×3的滤波窗口,因此,本文把它们当作边缘处理,对边缘的像素点保留原始像素值。对输入FIFO3的数据维持D1视频的一帧图像的行列计数,D1视频的一帧图像是720×576个像素点,图6是边缘检测的流程。

图6 图像边缘检测流程

行计数i和列计数j是从0开始计数的,当i= 575且j=719时,一帧图像已经输入到FIFO3中,然后对i和j复位为0。

4.2.3 滤波算法的实现

本文用到的中值滤波算法是Nieminen和Neuvo提出的改进的算法,窗口大小是3×3,图7是滤波算法实现的结构。C是一个三输入的比较器,经过3个时钟周期能够得到3个输入值的中值,D3是一个延时3个周期的延时模块。整个滤波算法由3级比较电路构成,第1级电路可以得到Z1,Z2,Z3,Z4的值,第2级比较电路得到Y1,Y2的值,第3级电路得到最后的滤波值;由于视频数据是连续的,必须保证视频数据操作时的同步性,因此在第一级和第二级电路之间加入了延时模块,对R22做3个周期的延时,这样就可以保证视频的流水线操作,进而保证视频实时性。同样,在第2级和第3极电路之间也加入3周期的延时模块。

图7 滤波算法实现的结构

5 实验结果

本文的所有模块用 Verilog语言描述,然后Xilinx的ISE13.4工具对设计模块进行综合、映射、布局和布线后,最后将生成的FPGA烧写文件下载到xc6slx9-2ftg256中,得到如图8所示的结果,其中四路CIF视频合成为了一路D1视频,并且合成后一路D1视频经过了中值滤波去噪处理。这个系统占用FPGA的主要资源如表1所示,FPGA的总功耗是0.689 W。本设计以较少的资源和较低的功耗完成了多路视频的预处理,且视频的实时性也完全得到了保证。

图8 本文方法实验结果

表1 系统占用FPGA的资源利用情况

6 结束语

本文利用FPGA在设计上可实现硬件并行和流水线技术,提出一种在FPGA上实现四路CIF视频合成为一路D1视频的设计方法,对合成的一路D1视频进行中值滤波去噪。中值滤波采用文献[12]提出的改进算法,本文给出了该算法在FPGA上实现的逻辑结构,实现的滤波算法只有6个时钟周期的延时。实验结果表明,该方法利用FPGA实现了硬件并行和流水线技术,从而保证了视频的实时处理,没有出现丢帧的现象。在保证视频处理的实时性情况下,对中值滤波算法进行改进,加入阈值比较或者自适应处理,是今后研究的内容。

[1] 沈淦松,叶玉堂,刘 霖,等.FPGA软硬件协同处理实时图像处理系统[J].光电工程,2012,39(10): 143-150.

[2] 李 波,葛宝珊,李 炜,等.基于通用DSP的多模式视频编码器[J].计算机学报,2004,27(12): 1648-1656.

[3] 樊兆宾,史忠科,杨 珺.基于视频的车辆检测系统设计[J].计算机工程,2008,34(6):255-257.

[4] Iakovidou C,Vonikakis V, Andreadis I. FPGA Implementation of a Real-time Biologically Inspired Image Enhancement Algorithm[J].Journal of Real-time Image Processing,2008,3(4):269-287.

[5] 周文晖,杜 歆,叶秀清,等.基于 FPGA的双目立体视觉系统[J].中国图象图形学报,2005,10(9): 1166-1170.

[6] 冯伟昌,林玉池,何 冬,等.基于 FPGA的双通道实时图像处理系统[J].传感技术学报,2010,23(8): 1118-1122.

[7] 王春平,张晓华,赵 翔.Xilinx可编程逻辑器件设计与开发(基础篇)[M].北京:人民邮电出版社,2011.

[8] Hu Y,JiH.ResearchonImageMedianFiltering Algorithm and Its FPGA Implementation[C]//Proc.of Global Congress on Intelligent Systems.Xiamen,China: [s.n.],2009:226-230.

[9] Gundam M,Charalampidis D.Median Filter on FPGAs [C]//Proc.of the 44th IEEE Southeastern Symposium on System Theory.Jacksonville,USA:IEEE Systems Theory Press,2012:83-87.

[10] Fahmy S A,Cheung P Y K,Luk W.High-throughput One-dimensional Median and Weighted Median Filters on FPGA[J].IET Computers&Digital Techniques, 2009,3(4):384-394.

[11] Arce G R,McLoughlin M.Theoretical Analysis of the Max/Median Filter[J].IEEE Transactions on Acoustics,Speech,and Signal Processing,1987,35(1): 60-69.

[12] Nieminen A,Neuvo Y.Comments on Theoretical Analysis of the Max/median Filter[J].IEEE Transactions on Acoustics,Speech,and Signal Processing,1988,36(5): 826-827.

编辑 索书志

Design of Multi-channel Video Compositing and De-noising Based on FPGA

HU Sheng,CHEN Peng,LAN Xiao-ke
(College of Information Engineering,Zhejiang University of Technology,Hangzhou 310023,China)

In the field of embedded video processing,due to the critical real-time requirement of the video,this paper proposes an FPGA-based multi-channel video compositing and de-noising method.This paper contains concrete realization scheme that four-channel video is combined to one-channel video and de-noising algorithm of median filtering to onechannel video.The video is buffered by DDR2 SDRAM,and the hardware structure and logic structure of median filtering algorithm are demonstrated.The Verilog language is used to describe the overall system design,and a logic synthesis and hardware test is implemented on Xilinx FPGA.Experimental results show that the design uses the FPGA's hardware parallelism and pipeline technology,and the performance of real-time processing for the video is entirely achieved.

Field Programmable Gate Array(FPGA);Verilog language;multi-channel video compositing;de-noising; median filtering;real-time

1000-3428(2014)09-0295-05

A

TP391

10.3969/j.issn.1000-3428.2014.09.059

国家自然科学基金资助项目(61303139)。

胡 胜(1988-),男,硕士研究生,主研方向:嵌入式多媒体技术;陈 朋,副教授、博士;蓝晓柯,硕士研究生。

2013-09-09

2013-10-14E-mail:husheng.happy1@163.com

猜你喜欢

视频流中值实时性
边缘实时视频流分析系统配置动态调整算法研究
基于规则实时性的端云动态分配方法研究
基于视频流传输中的拥塞控制研究
Lagrange中值定理的巧妙应用
基于虚拟局域网的智能变电站通信网络实时性仿真
铁路货场智能大门集装箱全景图像采集方法研究
微分中值定理教法研讨
航空电子AFDX与AVB传输实时性抗干扰对比
美国视频流市场首现饱和征兆
后中值波电流脉冲MIG焊工艺