1、毕业论文:基于fpga的视频图像分割技术系统设计摘 要随着多媒体技术的发展 ,视频图像得到了广泛应用. 而视频分割技术更是为视频理解、视频编码等领域广泛应用. 所谓视频分割就是把视频中重要的或人们感兴趣的物体或对象 (video object, vo)与背景分割开来 ,或者说就是要划出分别具有一致属性的一个个区域 ,同时区分背景区域和前景区域.早期的多画面分割器设计使用了很多的模拟器件,这时的电路开发周期长,产品的调试,修改升级比较困难,成本较高。在这里采用fpga芯片,完成图像的处理和硬件电路各个部分工作的协调,从而提高系统的集成度和性能。本论文首先根据视频信号的处理过程和典型视频图像处理系
2、统的构成提出了基于fpga的视频图像处理系统总体框图,主要由视频信号输入模块,视频信号处理模块和视频信号输出模块3个部分组成。然后分别具体介绍每个模块的结构功能:视频输入模块采用视频解码芯片ad9983a将采集的多路模拟视频信号转换成8位rgb数字信号送到fpga,实现高分辨率视频图像的采集;视频处理模块主要由lattice公司的 ecp2m系列lfe2m20se芯片完成,根据需要对输入的数字视频信号进行处理,完成视频信号的分割与合成;视频输出模块将 fpga 处理后的信号经过ch7301视频编码芯片驱动输出到显示器。图像分割算法繁多,运动图像的分割可先分解为一帧帧图像,然后利用时-空图像的灰
3、度和梯度信息进行分割。本文利用mailab,实现了简单背景下一帧图像的分割。关键词:现场可编程逻辑门阵列;视频信号;图像分割与合成abstractand drive the output to a monitor.目录摘要2abstract3引言5第一章 视频图像处理的整体设计71. 1视频信号概述71. 2视频图像分割处理系统设计12第二章 具体电路设计分析132. 1视频源133. 2视频输入模块162.2.1 模数转换器ad9983162.2.2 存取视频数据204. 3视频处理模块262.3.1 主控fpga262.3.2 flash302.3.3 clk时钟电路342.4 输出模块3
4、52.4.1ch7301352.4.2 dvi425. 5电源模块432.5.1 芯片54386432.5.2 spx2930442.5.3 ld1117降压器446. 6整个电路原理图46第三章 视频分割原理487. 1采集视频信号483.2 阈值分割算法483.2.1 图像二值化483.2.2 双峰法493.2.3 最大方差自动取阈值(自适应二值化)493.3 边缘检测518. 4运动图像分割523.4.1差分法533.4.2基于块的运动分析54结语57参考文献58致谢59附录60英语文献翻译62引言随着生活水平的提高,大量多媒体设备进入人们的日常生活。如何方便快捷、成本低廉地从视频中提取
5、感兴趣的画面,是许多人经常面对的问题。像素越小,单位面积上的像素数目就越多,由其构成的图像就越清晰。电视系统中把构成一幅图像的各像素传送一遍称为进行了一个帧处理,或称为传送了一帧。将组成一帧图像的像素,按顺序转换成电信号的过程称为扫描。在pal制中,图像扫描是隔行的,即一帧图像分两次扫描,扫描到的两幅图像分别称作奇数场和偶数场。视频图像信号的处理过程就是拍摄视频信号的逆过程。摄像头输出的是标准pal制电视信号。摄像头通过光电转换实现图像到视频信号的转换,也就是扫描的过程。摄像头每扫描一行图像,加入一个行脉冲,每扫描完一场图像加入一个场同步信号。同时为了保证扫描逆程光栅不显示,应加入和同步信号同
6、周期的消隐信号。对视频信号进行处理,需要先进行a/d转换、行/场同步信号的分离等步骤。采用专用的视频信号进行转换,然后再启用工具处理数字图像信号并得到需要的结果。最后将结果用适当的方式进行传输。视频信号处理流程如下图12所示。图1.2 视频信号处理基本流程pal制电视信号转化为数字视频信号后,控制信号有三个:场参考电压信号vref,行参考电压信号href,奇偶场信号odd。vref高电平表示有效图像信号。odd信号高电平表示为奇数场,低电平表示偶数场。h ref信号表示一行有效的图像数据,一行图像数据包括720个像素。12视频图像分割处理系统设计系统结构如图1.3所示,从系统结构图可以看出,系
7、统主要包括视频信号输入模块,视频信号处理模块和视频信号输出模块等3个部分组成。各个模块主要功能为:视频输入模块将采集的多路视频信号转换成数字信号送到fpga;视频处理模块主要由fpga完成,根据需要对输入的数字视频信号进行处理;视频输出模块将fpga处理后的信号输出到显示器。实际电路板如下图所示:第二章 具体电路设计分析9. 1视频源本电路由两个vga接口输入模拟视频信号,vga接口是一种d型接口,上面共有15针空,分成三排,每排五个。vga接口是显卡上应用最为广泛的接口类型,多数的显卡都带有此种接口。接口实物图及引脚定义如表1所示:管脚 定义1. 红基色red2. 绿基色green3. 蓝基
8、色blue4. 地址码id bit(也有部分是res,或者为id2显示器标示位2)5. 自测试(一般为gnd)6. 红地7. 绿地8. 蓝地9. 保留10. 数字地11. 地址码(id0显示器标示位0)12. 地址码(id1显示器标示位1)13. 行同步14. 场同步15. 地址码(id3显示器标示位3)模式 场扫描时序刷新速率像素时间场周期同步脉冲后肩有效时间前肩pixperiodsyncpulsebackporchactivetimefrontporthopqrshzususlinuslinuslinuslinuslin640*480600.039683166675256329523015
9、3654842869640*480720.0321031388952080369426129274841877720*400700.035352142864496421018321285440435011720*350700.0353521428644964218145711263354114536800*600560.027902178576255725712017257604-1800*600600.0251321666762810645572116030604-1800*600720.020052138896661256438211259660473035640*480750.03174
10、61333352551276230122924842299640*480660.0334031515252587310683713968484291模式行扫描时序分辨率刷新速率像素时间行周期同步脉冲后肩有效时间前沿 a b c d ehzus uspix uspix uspixuspixuspix640*480600.03968331.758003.81961.7864525.6356460.51613640*480720.03210326.718321.28404.01312520.7386460.67421720*400700.03535231.829003.821081.8035125.
11、6667260.53015720*350700.03535231.829003.821081.8035125.6667260.53015800*600560.02790228.5710242.01723.48812522.4898060.58621800*600600.02513226.5410563.221282.1368520.2568060.93037800*600720.02005220.8510402.421201.2236116.1628061.06353640*480750.03174625.408003.05961.4294520.5086460.41313640*480660
12、.03340328.868642.14643.1069321.5786462.03861下面选一种最常用的vga(640480,60 hz)图像格式的信号时序来分析解释:(1)场扫描(又称为“垂直扫描” )周期(2)行扫描(又称为“水平扫描”)周期(3)复合消隐信号复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域它是低电平。16. 2视频输入模块2.2.1 模数转换器ad99832.2.1.1主用芯片简介ad9983(以下简称ad,如图2.1)为美国analog devices公司生产的3路8位模数转换器件,最大转换率达170ms/s(百万次采样/每
13、秒),多用于捕获个人计算机或工作站的rgb信号。近年来,在视频信号处理领域得到广泛的应用。ad内含60个寄存器00h-3ch,用来对ad进行初始化和控制。针对不同的应用环境,这些寄图2.1 ad9983存器需写入相应的值,才能使ad正常工作。ad的初始化是其工程应用的前提。ad初始化过程依靠ad9983的sda(pin 66)和scl(pin67)引脚进行,时序符合i2c总线的时序标准。我们可直接采用带有i2c总线接口的单片机对ad进行初始化,但是目前带有i2c总线接口的单片机数量较少并且价格普遍较高。对于不带i2c总线接口的单片机,我们可以采用模拟i2c总线技术使用其普通i/o口来模拟i2c
14、总线时序,实现对外围器件的读、写操作。2.2.1.2 、i2c总线传输协议简介i2c是philips公司推出的芯片间串行传输总线,以两根连线(sda和scl)即可实现完善的全双工同步数据传送,具有规范完整、结构独立和使用简单等特点。i2c总线的时钟线scl和数据线sda均为双向传输线。数据线上每传输一位数据都要求时钟线上有1个时钟脉冲与其相对应。i2c总线数据传送包括三种重要的时序状态起始信号、终止信号和应答信号:起始信号:在时钟线保持高电平期间,数据线出现由高电平向低电平变化时启动i2c总线;终止信号:在时钟线保持高电平期间,数据线出现由低电平向高电平变化时停止i2c总线;应答信号:i2c总
15、线数据传送时,每传送一个字节数据后都必须有应答信号,应答信号在第9个时钟位上出现,接收器输出低电平为应答信号(a),输出高电平则为非应答信号(/a)。2.2.1.3、ad进行初始化采用单片机msp430f135对ad进行初始化,必须解决以下几个问题:首先是产生i2c总线的时钟信号;其次是实现i2c总线的开始信号、停止信号、位传输信号和判断应答信号;再次是要确定ad9983a不同寄存器的设置数据。1、i2c总线时钟的产生一般情况下,fpga的时钟频率较高,常为几十mhz,而i2c总线的时钟频率为几百khz,用图2.2的方式可借助于fpga的时钟获得i2c总线的时钟。需要说明的是,图中工作时钟的频
16、率应为i2c总线时钟频率的m倍。这是因为系统中的任何一个i2c总线上的信号都是用m个工作时钟的周期来完成,而d触发器则是为了确保工作时钟的占空比为50而设计的。【11】图2.2 12c总线时钟产生图假设fpga时钟为125mhz,i2c总线时钟为200 khz,m为8,则工作时钟为1.6 mhz,再考虑到d触发器相当于2分频,则n= 125mhz/(200 khz82) = 3912、关键信号的产生和传输根据前面对i2c总线开始信号的讨论,利用8个工作时钟产生一个i2c总线信号,很容易设计出i2c总线的开始信号。即规定:第1个脉冲上升沿到第3个脉冲上升沿之间,scl为低、sda为高;第3个脉冲
17、上升沿到第5个脉冲上升沿之间,scl为高、sda为高;第5个脉冲上升沿到第7个脉冲上升沿之间,scl为高、sda为低;第7个脉冲上升沿到第9个脉冲上升沿之间,scl为低、sda为低。这样经过8个脉冲周期,就可产生一个开始信号。【11】停止信号也很容易照此设计,在此不再累赘。而对于数据bit位的传输,根据i2c总线规范要求,在数据位的传输过程中,sda信号在scl信号为高电平期间不容许发生跳变,可用scl高电平期间的前、后各1个脉冲来作为数据的建立时间和保持时间。由此得到如图6所示的数据bit的传输设计。3、 ad9983a寄存器的设置对ad9983a进行初始化本质上是对ad9983a内部的每个
18、寄存器的每一位写入相应的数值,ad9983a其中每个寄存器都有一个子地址。在对多个连续的寄存器进行操作时,寄存器地址有自动加1功能,所以确定第1个子地址后,可以不考虑地址的变化,顺序写入各寄存器的数值即可实现寄存器的连续设置。另外,在对ad9983a初始化时,还需要确定从地址,而从地址由硬件连接图决定,当芯片引脚a0(pin22)信号是低电平时,表示ad9983a的写地址为4ch。芯片的各个寄存器的意义可以参考附录ad9983a的文档资料。2.2.1.4、ad9983初始化的实现ad9983的工作模式、输入端口选择、色彩控制等图像采集的控制参数都是由其内部的寄存器决定,fpga可通过ad998
19、3的i2c总线接口对其内部寄存器进行读写操作,具体的写时序如图3.3所示11。startslave addressack-ssubaddressack-sdata(n bytes)ack-spause图2.3 ad9983初始化写入数据的时序其中:start为开始信号;slave address为从地址;ack-s为从器件发出的应答信号;subaddress为子地址;data(n bytes)为要写的各数据;pause为停止信号。当n=1时,表示要传一个数据;当n1时,表示要传多个数据,同时将完成片内子地址的自动增加,实现对地址连续的寄存器的写操作,程序流程图如图2.4:需要注意的是,为了避免
20、由于器件工作异常而引起的死循环,设置一个超时计数器,当等待时间超过超时计数器设置的数值,则跳初始状态,重新对ad9983进行设置。2.2.2存取视频数据ddr sdram器件是硅片存储器资源,现在最经常用于各种系统,包括从消费产品到视频系统的各类应用。ddr sdram器件的频率高达200 mhz或ddr400,dram 可以使用器件或模块的配置。 本设计利用hynix公司的h5du2562gtr芯片存取数据,这是一款256mb的ddr ram。内部结构为16 m16,工作电压为2.5v,16位数据宽度采用400mil66pin tsop-ii封装。hy5ps121621bfp实物图如下图2.
21、5所示。图2.5 ddr示意图1、ddr 控制器命令表 1 所示为控制器发出的命令。这些命令通过使用下列控制信号传输到存储器:•行地址选择 (ras)•列地址选择 (cas)•时钟使能 (cke) (器件配置后始终置为高)•芯片选择 (cs) (器件运行期间始终置为低)1. 加载模式寄存器 l l l2. 自动刷新 l l h3. 预充电 l h l4. 选择组激活行 l h h5. 写命令 h l l6. 读命令 h l h7. 空操作 h h h注:地址信号a10在预充电所有组期间设定为高,在单个组预充电期间设定为低。表1、ddr sdram
22、 命令2、命令功能读命令:读命令用于发起对活动行的突发式读访问。ba0 和 ba1上的值选择组地址,而 a0 - ai 上提供的地址输入选择起始列位置。读突发结束后,只要还未预充电,此行仍可用于后面的访问。 图3.6所示为一个附加延迟为零的读命令示例。因此,在该示例中,读延迟与 cas 延迟相同,在 ddr400 规范中为三个时钟周期。图3.6【9】 ddr读命令波形命令功能模式寄存器 (mode register)模式寄存器用于定义 ddr sdram 特定的运行模式,包括突发长度(burst length)、突发类型、cas 延迟 (cas latency) 和运行模式的选择,如图3.7所
23、示。组地址 (bank address) ba1 和 ba0 用于选择模式寄存器。图3.7显示了组地址位配置。模式寄存器控制范围之外的功能由扩展模式寄存器控制。这些附加功能是用于 ddr sdram 接口的 dll 使能/禁能和输出驱动强度,如图 3.8所示。ba1ba2a12a11a10a9a8a7a6a5a4a3a2a1a000 0dll0cas latencybtburst lengtha2 a1 a0burst length0 0 1 20 1 0 40 1 1 8others reserveda6 a5 a4cas latency0 1 0 20 1 1 3(ddr400)1. 1
24、0 2.5others reserveda8dll0normal operation1. resetba1 ba2mode register0 0mode register(mr)0 1extended mr emr1图3.7 ddr400 模式寄存器定义ba1ba0e12e11e10e9e8e7e6e5e4e3e2e1e001 0dsdlle0dll0enable1. disablede1drive strength0normal1. reduced图3.8 扩展模式寄存器初始化顺序9此控制器状态机使用的初始化顺序遵循ddr sdram规范。配置顺序分为两步:第一步由硬件在上电时处理;第二步
25、由fpga存储器控制器设计处理。图3.9所示为针对初始化而发出的命令顺序。写命令:写命令用于发起对活动行的突发式访问。ba0 和ba1上的值选择组地址,而地址输入a0 、ai 的值选择活动行内的起始列位置。写延迟的值等于一个时钟周期。图3.10所示为一个写延迟为 1 的写突发。写命令和 dqs 信号的第一个上升沿之间的时间间隔由写延迟确定。图3.10【9】 ddr写命令波形3、具体信号分析(1) 差分时钟(参见上文“ddr sdram读操作时序图”)是 ddr 的一个必要设计,但ck#的作用,并不能理解为第二个触发时钟,而是起到触发时钟校准的作用。由于数据是在 ck 的上下沿触发,造成传输周期
26、缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输, 这就要求 ck 的上下沿间距要有精确的控制。但因为温度、电阻性能的改变等原因,ck 上下沿间距可能发生变化,此时与其反相的 ck#就起到纠正的作用(ck 上升快下降慢,ck#则是上升慢下降快) 。而由于上下沿触发的原因,也使 cl=1.5 和 2.5 成为可能,并容易实现。(2)数据选取脉冲(dqs)dqs 是 ddr sdram 中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个 dqs 信号线,它是双向的,在写入时它用来传送由控制器发来的 dqs 信号,读取时,
27、则由芯片生成 dqs向控制器发送。完全可以说,它就是数据的同步信号。在读取时,dqs与数据信号同时生成(也是在 ck与ck#的交叉点) 。而 ddr 内存中的 cl 也就是从 cas 发出到 dqs 生成的间隔, 数据真正出现在数据 i/o 总线上相对于 dqs触发的时间间隔被称为 tac。tac 是指上文结构图中灰色部分的数据输出时间,由于预取的原因,实际的数据传出可能会提前于 dqs 发生(数据提前于 dqs 传出) 。由于是并行传输,ddr 内存对 tac 也有一定的要求, 对于 ddr266,tac的允许范围是0.75ns,对于ddr333,则是0.7ns,有关它们的时序图示见前文,其
28、中 cl 里包含了一段 dqs 的导入期。dqs 在读取时与数据同步传输,那么接收时也是以dqs的上下沿为准吗?不, 如果以dqs的上下沿区分数据周期的危险很大。由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各 i/o 端口的出现时间可能有快有慢,会与 dqs 有一定的间隔,这也就是为什么要有一个 tac 规定的原因。而在接收方,一切必须保证同步接收,不能有 tac 之类的偏差。这样在写入时,芯片不再自己生成 dqs,而以发送方传来的 dqs 为基准,并相应延后一定的时间,在 dqs 的中部为数据周期的选取分割点(在读取时分割点就是上下沿),从这里分隔开两个
29、传输周期。这样做的好处是,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步, 在 dqs 上下沿时都处于保持周期中, 此时数据接收触发的准确性无疑是最高的。9在写入时,以 dqs 的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的接收触发仍为 dqs 的上/下沿 。2. 3视频处理模块2.3.1主控fpga本模块中lattice公司生产的 ecp2m系列lfe2m20se-5fn484c芯片为主控芯片,负责读取视频数据,并进行处理。根据下图可知该芯片内有20k个luts,具有加密功能,1.2v电压供电,484-ball无铅fpbga封装商业芯片。本设计使用三片ddr需有6个
30、dqs信号,484fpbga bank3、bank4、bank5可提供7个dqs信号,所以采用这三个模块控制ddr的存取操作,并为此三个模块供给2.5v电压。6、7模块做普通io口使用,连接ad以及输出驱动芯片。第8模块及第5模块部分引脚为配置引脚,具体说明如表2。lfe2 - xx x e - x xxxxxx号x设备系列ecp2(latticeecp2 fpga) 级逻辑能力 c=商业6=6kluts i=工业12=12kluts 包装20=20kluts t144=144pintqfp35=35kluts q208=208pinpqfp50=50kluts f256=256ball fp
31、bga70=70kluts f484=484ball fpbga加密 f672=484ball fpbgas=安全系列 f900=900ball fpbga空白=标准系列(无加密) fn484=484ball无铅 fpbga电源电压e=1.2v 速度5=最慢67=最快图2.11 latticeecp2零件编号说明pin name i/0 type pin typenode usedinintbi-directional open drain,donebi-directional open drain,active drivededicatedallcclkinput or outputdedi
32、catedalldout/csonoutputdual-purposeparallel,serial,spid0/spifastninput or outputdual-purposeparallel,spi,spimd1:6paralleld7/spid0parallel,spi,spim表2其中tdi、tdo、tck、tms为jtag引脚。当被用作为用户i/o引脚的时候,jtag引脚电平必须保持稳定,在配置之前和配置过程中。jtag引脚稳定性可以预防意外的装载jtag指令。cfg2:0在inint上升沿被采样,用来选择配置模式。本设计中将cfg2:0接地,使其工作在spi模式。目录第一章项
33、目基本情况3一、项目情况说明3二、可行性研究的依据5第二章项目建设的必要性与可行性8一、项目建设背景8二、项目建设的必要性9三、项目建设的可行性14第三章市场供求分析及预测17一、项目区生猪养殖和养殖粪污的利用现状17二、禽畜粪污产量、沼气及沼肥产量调查与分析18三、项目产品市场前景分析20第四章项目承担单位的基本情况21一、养殖场概况21二、资产状况21三、经营状况21第五章项目地点选择分析23一、选址原则23二、项目选点23三、项目区建设条件24第六章工艺技术方案分析27一、污水处理模式的选择27二、处理工艺的选择29三、项目工艺流程31四、主要技术参数35五、主要设备选型39第七章项目建
34、设目标40一、项目建设目标40二、项目建设规模40第八章项目建设内容42一、建安工程42二、仪器设备46第九章投资估算和资金筹措48一、投资估算的范围48二、投资估算的依据48三、投资估算49四、资金使用计划54五、资金筹措54第十章建设期限和实施进度安排55一、项目建设期限55二、项目实施进度安排55第十一章土地、规划和环保57一、土地与规划57二、环境保护57三、安全防护60第十二章项目组织管理与运行63一、项目建设组织管理63二、项目建成后运行管理66三、项目运行费用67第十三章效益分析与风险评价69一、经济效益分析69二、项目风险评价72三、生态效益75四、社会效益76五、附表77第十四章招标方案78一、编制依据78二、招标范围78三、招标方式78四、招标组织形式79有关证明材料及附件81