收藏 分销(赏)

基于fpga的视频图像分割技术—系统设计.doc

上传人:快乐****生活 文档编号:2488395 上传时间:2024-05-30 格式:DOC 页数:15 大小:19.10KB 下载积分:8 金币
下载 相关 举报
基于fpga的视频图像分割技术—系统设计.doc_第1页
第1页 / 共15页
基于fpga的视频图像分割技术—系统设计.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
毕业论文:基于fpga的视频图像分割技术—系统设计 摘 要 随着多媒体技术的发展 ,视频图像得到了广泛应用. 而视频分割技术更是为视频理解、视频编码等领域广泛应用. 所谓视频分割就是把视频中重要的或人们感兴趣的物体或对象 (video object, vo)与背景分割开来 ,或者说就是要划出分别具有一致属性的一个个区域 ,同时区分背景区域和前景区域.早期的多画面分割器设计使用了很多的模拟器件,这时的电路开发周期长,产品的调试,修改升级比较困难,成本较高。在这里采用fpga芯片,完成图像的处理和硬件电路各个部分工作的协调,从而提高系统的集成度和性能。 本论文首先根据视频信号的处理过程和典型视频图像处理系统的构成提出了基于fpga的视频图像处理系统总体框图,主要由视频信号输入模块,视频信号处理模块和视频信号输出模块3个部分组成。然后分别具体介绍每个模块的结构功能:视频输入模块采用视频解码芯片ad9983a将采集的多路模拟视频信号转换成8位rgb数字信号送到fpga,实现高分辨率视频图像的采集;视频处理模块主要由lattice公司的 ecp2m系列lfe2m20se芯片完成,根据需要对输入的数字视频信号进行处理,完成视频信号的分割与合成;视频输出模块将 fpga 处理后的信号经过ch7301视频编码芯片驱动输出到显示器。 图像分割算法繁多,运动图像的分割可先分解为一帧帧图像,然后利用时-空图像的灰度和梯度信息进行分割。本文利用mailab,实现了简单背景下一帧图像的分割。 关键词:现场可编程逻辑门阵列;视频信号;图像分割与合成 abstract and drive the output to a monitor. 目录 摘要 2 abstract 3 引言 5 第一章 视频图像处理的整体设计 7 1. 1视频信号概述 7 1. 2视频图像分割处理系统设计 12 第二章 具体电路设计分析 13 2. 1视频源 13 3. 2视频输入模块 16 2.2.1 模数转换器ad9983 16 2.2.2 存取视频数据 20 4. 3视频处理模块 26 2.3.1 主控fpga 26 2.3.2 flash 30 2.3.3 clk时钟电路 34 2.4 输出模块 35 2.4.1ch7301 35 2.4.2 dvi 42 5. 5电源模块 43 2.5.1 芯片54386 43 2.5.2 spx2930 44 2.5.3 ld1117降压器 44 6. 6整个电路原理图 46 第三章 视频分割原理 48 7. 1采集视频信号 48 3.2 阈值分割算法 48 3.2.1 图像二值化 48 3.2.2 双峰法 49 3.2.3 最大方差自动取阈值(自适应二值化) 49 3.3 边缘检测 51 8. 4运动图像分割 52 3.4.1差分法 53 3.4.2基于块的运动分析 54 结语 57 参考文献 58 致谢 59 附录 60 英语文献翻译 62 引言 随着生活水平的提高,大量多媒体设备进入人们的日常生活。如何方便快捷、成本低廉地从视频中提取感兴趣的画面,是许多人经常面对的问题。。像素越小,单位面积上的像素数目就越多,由 其构成的图像就越清晰。电视系统中把构成一幅图像的各像素传送一遍称为进行了一个帧处理,或称为传送了一帧。将组成一帧图像的像素,按顺序转换成电信号的过程称为扫描。在pal制中,图像扫描是隔行的,即一帧图像分两次扫描, 扫描到的两幅图像分别称作奇数场和偶数场。视频图像信号的处理过程就是拍摄视频信号的逆过程。摄像头输出的是标准pal制电视信号。摄像头通过光电转换实现图像到视频信号的转换,也就是扫描的过程。摄像头每扫描一行图像,加入一个行脉冲,每扫描完一场图像加入一个场同步信号。同时为了保证扫描逆程光栅不显示,应加入和同步信号同周期的消隐信号。对视频信号进行处理,需要先进行a/d转换、行/场同步信号的分离等步骤。采用专用的视频信号进行转换,然后再启用工具处理数字图像信号并得到需要的结果。最后将结果用适当的方式进行传输。 视频信号处理流程如下图1.2所示。 图1.2 视频信号处理基本流程 pal制电视信号转化为数字视频信号后,控制信号有三个:场参考电压信号vref,行参考电压信号href,奇偶场信号odd。vref高电平表示有效图像信号。odd信号高电平表示为奇数场,低电平表示偶数场。h ref信号表示一行有效的图像数据,一行图像数据包括720个像素。 1.2视频图像分割处理系统设计 系统结构如图1.3所示,从系统结构图可以看出,系统主要包括视频信号输入模块,视频信号处理模块和视频信号输出模块等3个部分组成。各个模块主要功能为:视频输入模块将采集的多路视频信号转换成数字信号送到fpga;视频处理模块主要由fpga完成,根据需要对输入的数字视频信号进行处理;视频输出模块将fpga处理后的信号输出到显示器。 实际电路板如下图所示: 第二章 具体电路设计分析 9. 1视频源 本电路由两个vga接口输入模拟视频信号,vga接口是一种d型接口,上面共有15针空,分成三排,每排五个。vga接口是显卡上应用最为广泛的接口类型, 多数的显卡都带有此种接口。接口实物图及引脚定义如表1所示: 管脚 定义 1. 红基色red 2. 绿基色green 3. 蓝基色blue 4. 地址码id bit(也有部分是res,或者为id2显示器标示位2) 5. 自测试(一般为gnd) 6. 红地 7. 绿地 8. 蓝地 9. 保留 10. 数字地 11. 地址码(id0显示器标示位0) 12. 地址码(id1显示器标示位1) 13. 行同步 14. 场同步 15. 地址码(id3显示器标示位3) 模式 场扫描时序 刷新速率 像素时间 场周期 同步脉冲 后肩 有效时间 前肩 pix period sync pulse back porch active time front porth o p q r s hz us us lin us lin us lin us lin us lin 640*480 60 0.039683 16667 525 63 2 952 30 15365 484 286 9 640*480 72 0.032103 13889 520 80 3 694 26 12927 484 187 7 720*400 70 0.035352 14286 449 64 2 1018 32 12854 404 350 11 720*350 70 0.035352 14286 449 64 2 1814 57 11263 354 1145 36 800*600 56 0.027902 17857 625 57 2 571 20 17257 604 - -1 800*600 60 0.025132 16667 628 106 4 557 21 16030 604 - -1 800*600 72 0.020052 13889 666 125 6 438 21 12596 604 730 35 640*480 75 0.031746 13333 525 51 2 762 30 12292 484 229 9 640*480 66 0.033403 15152 525 87 3 1068 37 13968 484 29 1 模式 行扫描时序 分辨率 刷新 速率 像素 时间 行周期 同步脉冲 后肩 有效时间 前沿 a b c d e hz us us pix us pix us pix us pix us pix 640*480 60 0.039683 31.75 800 3.81 96 1.786 45 25.635 646 0.516 13 640*480 72 0.032103 26.71 832 1.28 40 4.013 125 20.738 646 0.674 21 720*400 70 0.035352 31.82 900 3.82 108 1.803 51 25.666 726 0.530 15 720*350 70 0.035352 31.82 900 3.82 108 1.803 51 25.666 726 0.530 15 800*600 56 0.027902 28.57 1024 2.01 72 3.488 125 22.489 806 0.586 21 800*600 60 0.025132 26.54 1056 3.22 128 2.136 85 20.256 806 0.930 37 800*600 72 0.020052 20.85 1040 2.42 120 1.223 61 16.162 806 1.063 53 640*480 75 0.031746 25.40 800 3.05 96 1.429 45 20.508 646 0.413 13 640*480 66 0.033403 28.86 864 2.14 64 3.106 93 21.578 646 2.038 61 下面选一种最常用的vga(640×480,60 hz)图像格式的信号时序来分析解释: (1)场扫描(又称为“垂直扫描” )周期 (2)行扫描(又称为“水平扫描”)周期 (3)复合消隐信号 复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域它是低电平。 16. 2视频输入模块 2.2.1 模数转换器ad9983 2.2.1.1主用芯片简介 ad9983(以下简称ad,如图2.1)为美国analog devices公司生产的3路8位模数转换器件,最大转换率达170ms/s(百万次采样/每秒),多用于捕获个人计算机或 工作站的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总线时序,实现对外围器件的读、写操作。 2.2.1.2 、i2c总线传输协议简介 i2c是philips公司推出的芯片间串行传输总线,以两根连线(sda和scl)即可实现完善的全双工同步数据传送,具有规范完整、结构独立和使用简单等特点。i2c总线的时钟线scl和数据线sda均为双向传输线。数据线上每传输一位数据都要求时钟线上有1个时钟脉冲与其相对应。 i2c总线数据传送包括三种重要的时序状态起始信号、终止信号和应答信号: 起始信号:在时钟线保持高电平期间,数据线出现由高电平向低电平变化时启动i2c总线; 终止信号:在时钟线保持高电平期间,数据线出现由低电平向高电平变化时停止i2c总线; 应答信号:i2c总线数据传送时,每传送一个字节数据后都必须有应答信号,应答信号在第9个时钟位上出现,接收器输出低电平为应答信号(a),输出高电平则为非应答信号(/a)。 2.2.1.3、ad进行初始化 采用单片机msp430f135对ad进行初始化,必须解决以下几个问题:首先是产生i2c总线的时钟信号;其次是实现i2c总线的开始信号、停止信号、位传输信号和判断应答信号;再次是要确定ad9983a不同寄存器的设置数据。 1、i2c总线时钟的产生 一般情况下,fpga的时钟频率较高,常为几十mhz,而i2c总线的时钟频率为几百khz,用图2.2的方式可借助于fpga的时钟获得i2c总线的时钟。需要说明的是,图中工作时钟的频率应为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 khz×8×2) = 391 2、关键信号的产生和传输 根据前面对i2c总线开始信号的讨论,利用8个工作时钟产生一个i2c总线信号,很容易设计出i2c总线的开始信号。即规定:第1个脉冲上升沿到第3个脉冲上升沿之间,scl为低、sda为高;第3个脉冲上升沿到第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内部的每个寄存器的每一位写入相应的数值,ad9983a其中每个寄存器都有一个子地址。在对多个连续的寄存器进行操作时,寄存器地址有自动加1功能,所以确定第1个子地址后,可以不考虑地址的变化,顺序写入各寄存器的数值即可实现寄存器的连续设置。另外,在对ad9983a初始化时,还需要确定从地址,而从地址由硬件连接图决定,当芯片引脚a0(pin22)信号是低电平时,表示ad9983a的写地址为4ch。芯片的各个寄存器的意义可以参考附录ad9983a的文档资料。 2.2.1.4、ad9983初始化的实现 ad9983的工作模式、输入端口选择、色彩控制等图像采集的控制参数都是由其内部的寄存器决定,fpga可通过ad9983的i2c总线接口对其内部寄存器进行读写操作,具体的写时序如图3.3所示[11]。 start slave address ack-s subaddress ack-s data(n bytes) ack-s pause 图2.3 ad9983初始化写入数据的时序 其中:start为开始信号;slave address为从地址;ack-s为从器件发出的应答信号;subaddress为子地址;data(n bytes)为要写的各数据;pause为停止信号。当n=1时,表示要传一个数据;当n>1时,表示要传多个数据,同时将完成片内子地址的自动增加,实现对地址连续的寄存器的写操作,程序流程图如图2.4: 需要注意的是,为了避免由于器件工作异常而引起的死循环,设置一个超时计数器,当等待时间超过超时计数器设置的数值,则跳初始状态,重新对ad9983进行设置。 2.2.2存取视频数据 ddr sdram器件是硅片存储器资源,现在最经常用于各种系统,包括从消费 产品到视频系统的各类应用。ddr sdram器件的频率高达200 mhz或ddr400,dram 可以使用器件或模块的配置。 本设计利用hynix公司的h5du2562gtr芯片存取数据,这是一款256mb的ddr ram。内部结构为16 m×16,工作电压为2.5v,16位数据宽度采用400mil66pin tsop-ii封装。hy5ps121621bfp实物图如下图2.5所示。 图2.5 ddr示意图 1、ddr 控制器命令 表 1 所示为控制器发出的命令。这些命令通过使用下列控制信号传输到存储器: •行地址选择 (ras) •列地址选择 (cas) •时钟使能 (cke) (器件配置后始终置为高) •芯片选择 (cs) (器件运行期间始终置为低) 1. 加载模式寄存器 l l l 2. 自动刷新 l l h 3. 预充电 l h l 4. 选择组激活行 l h h 5. 写命令 h l l 6. 读命令 h l h 7. 空操作 h h h 注:地址信号a10在预充电所有组期间设定为高,在单个组预充电期间设定为低。 表1、ddr sdram 命令 2、命令功能 读命令:读命令用于发起对活动行的突发式读访问。ba0 和 ba1上的值选择组地址,而 a0 - ai 上提供的地址输入选择起始列位置。读突发结束后,只要还未预充电,此行仍可用于后面的访问。 图3.6所示为一个附加延迟为零的读命令示例。因此,在该示例中,读延迟与 cas 延迟相同,在 ddr400 规范中为三个时钟周期。 图3.6【9】 ddr读命令波形 命令功能模式寄存器 (mode register) 模式寄存器用于定义 ddr sdram 特定的运行模式,包括突发长度(burst length)、突发类型、cas 延迟 (cas latency) 和运行模式的选择,如图3.7所示。 组地址 (bank address) ba1 和 ba0 用于选择模式寄存器。图3.7显示了组地址位配置。 模式寄存器控制范围之外的功能由扩展模式寄存器控制。这些附加功能是用于 ddr sdram 接口的 dll 使能/禁能和输出驱动强度,如图 3.8所示。 ba1 ba2 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 0 0 0 dll 0 cas latency bt burst length a2 a1 a0 burst length 0 0 1 2 0 1 0 4 0 1 1 8 others reserved a6 a5 a4 cas latency 0 1 0 2 0 1 1 3(ddr400) 1. 1 0 2.5 others reserved a8 dll 0 normal operation 1. reset ba1 ba2 mode register 0 0 mode register(mr) 0 1 extended mr emr1 图3.7 ddr400 模式寄存器定义 ba1 ba0 e12 e11 e10 e9 e8 e7 e6 e5 e4 e3 e2 e1 e0 0 1 0 ds dll e0 dll 0 enable 1. disabled e1 drive strength 0 normal 1. reduced 图3.8 扩展模式寄存器 初始化顺序[9] 此控制器状态机使用的初始化顺序遵循ddr sdram规范。配置顺序分为两步:第一步由硬件在上电时处理;第二步由fpga存储器控制器设计处理。图3.9所示为针对初始化而发出的命令顺序。 写命令:写命令用于发起对活动行的突发式访问。ba0 和ba1上的值选择组地址,而地址输入a0 、ai 的值选择活动行内的起始列位置。写延迟的值等于一个时钟周期。图3.10所示为一个写延迟为 1 的写突发。写命令和 dqs 信号的第一个上升沿之间的时间间隔由写延迟确定。 图3.10【9】 ddr写命令波形 3、具体信号分析 (1) 差分时钟(参见上文“ddr sdram读操作时序图”)是 ddr 的一个必要设计,但ck#的作用,并不能理解为第二个触发时钟,而是起到触发时钟校准的作用。由于数据是在 ck 的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输, 这就要求 ck 的上下沿间距要有精确的控制。但因为温度、电阻性能的改变等原因,ck 上下沿间距可能发生变化,此时与其反相的 ck#就起到纠正的作用(ck 上升快下降慢,ck#则是上升慢下降快) 。而由于上下沿触发的原因,也使 cl=1.5 和 2.5 成为可能,并容易实现。 (2)数据选取脉冲(dqs) dqs 是 ddr sdram 中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个 dqs 信号线,它是双向的,在写入时它用来传送由控制器发来的 dqs 信号,读取时,则由芯片生成 dqs向控制器发送。完全可以说,它就是数据的同步信号。在读取时,dqs与数据信号同时生成(也是在 ck与ck#的交叉点) 。而 ddr 内存中的 cl 也就是从 cas 发出到 dqs 生成的间隔, 数据真正出现在数据 i/o 总线上相对于 dqs触发的时间间隔被称为 tac。tac 是指上文结构图中灰色部分的数据输出时间,由于预取的原因,实际的数据传出可能会提前于 dqs 发生(数据提前于 dqs 传出) 。由于是并行传输,ddr 内存对 tac 也有一定的要求, 对于 ddr266,tac的允许范围是±0.75ns,对于ddr333,则是±0.7ns,有关它们的时序图示见前文,其中 cl 里包含了一段 dqs 的导入期。 dqs 在读取时与数据同步传输,那么接收时也是以dqs的上下沿为准吗?不, 如果以dqs的上下沿区分数据周期的危险很大。由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各 i/o 端口的出现时间可能有快有慢,会与 dqs 有一定的间隔,这也就是为什么要有一个 tac 规定的原因。而在接收方,一切必须保证同步接收,不能有 tac 之类的偏差。这样在写入时,芯片不再自己生成 dqs,而以发送方传来的 dqs 为基准,并相应延后一定的时间,在 dqs 的中部为数据周期的选取分割点(在读取时分割点就是上下沿),从这里分隔开两个传输周期。这样做的好处是,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步, 在 dqs 上下沿时都处于保持周期中, 此时数据接收触发的准确性无疑是最高的。[9] 在写入时,以 dqs 的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的接收触发仍为 dqs 的上/下沿 。 2. 3视频处理模块 2.3.1主控fpga 本模块中lattice公司生产的 ecp2m系列lfe2m20se-5fn484c芯片为主控芯片,负责读取视频数据,并进行处理。根据下图可知该芯片内有20k个luts,具有加密功能,1.2v电压供电,484-ball无铅fpbga封装商业芯片。 本设计使用三片ddr需有6个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=144pintqfp 35=35kluts q208=208pinpqfp 50=50kluts f256=256ball fpbga 70=70kluts f484=484ball fpbga 加密 f672=484ball fpbga s=安全系列 f900=900ball fpbga 空白=标准系列(无加密) fn484=484ball无铅 fpbga 电源电压 e=1.2v 速度 5=最慢 6 7=最快 图2.11 latticeecp2零件编号说明 pin name i/0 type pin type node used inint bi-directional open drain, done bi-directional open drain, active drive dedicated all cclk input or output dedicated all dout/cson output dual-purpose parallel,serial,spi d0/spifastn input or output dual-purpose parallel,spi,spim d[1:6] parallel d[7]/spid0 parallel,spi,spim 表2 其中tdi、tdo、tck、tms为jtag引脚。当被用作为用户i/o引脚的时候,jtag引脚电平必须保持稳定,在配置之前和配置过程中。jtag引脚稳定性可以预防意外的装载jtag指令。 cfg[2:0]在inint上升沿被采样,用来选择配置模式。本设计中将cfg[2:0]接地,使其工作在spi模式。目录 第一章项目基本情况 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 第七章项目建设目标 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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服