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

上传人:b****5 文档编号:3627430 上传时间:2022-11-24 格式:DOCX 页数:16 大小:27.29KB
下载 相关 举报
基于fpga的视频图像分割技术系统设计.docx_第1页
第1页 / 共16页
基于fpga的视频图像分割技术系统设计.docx_第2页
第2页 / 共16页
基于fpga的视频图像分割技术系统设计.docx_第3页
第3页 / 共16页
基于fpga的视频图像分割技术系统设计.docx_第4页
第4页 / 共16页
基于fpga的视频图像分割技术系统设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《基于fpga的视频图像分割技术系统设计.docx》由会员分享,可在线阅读,更多相关《基于fpga的视频图像分割技术系统设计.docx(16页珍藏版)》请在冰豆网上搜索。

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

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

毕业论文:

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

摘要

随着多媒体技术的发展,视频图像得到了广泛应用.而视频分割技术更是为视频理解、视频编码等领域广泛应用.所谓视频分割就是把视频中重要的或人们感兴趣的物体或对象(videoobject,vo)与背景分割开来,或者说就是要划出分别具有一致属性的一个个区域,同时区分背景区域和前景区域.早期的多画面分割器设计使用了很多的模拟器件,这时的电路开发周期长,产品的调试,修改升级比较困难,成本较高。

在这里采用fpga芯片,完成图像的处理和硬件电路各个部分工作的协调,从而提高系统的集成度和性能。

本论文首先根据视频信号的处理过程和典型视频图像处理系统的构成提出了基于fpga的视频图像处理系统总体框图,主要由视频信号输入模块,视频信号处理模块和视频信号输出模块3个部分组成。

然后分别具体介绍每个模块的结构功能:

视频输入模块采用视频解码芯片ad9983a将采集的多路模拟视频信号转换成8位rgb数字信号送到fpga,实现高分辨率视频图像的采集;视频处理模块主要由lattice公司的ecp2m系列lfe2m20se芯片完成,根据需要对输入的数字视频信号进行处理,完成视频信号的分割与合成;视频输出模块将fpga处理后的信号经过ch7301视频编码芯片驱动输出到显示器。

图像分割算法繁多,运动图像的分割可先分解为一帧帧图像,然后利用时-空图像的灰度和梯度信息进行分割。

本文利用mailab,实现了简单背景下一帧图像的分割。

 

 

 

关键词:

现场可编程逻辑门阵列;视频信号;图像分割与合成

 

abstract

anddrivetheoutputtoamonitor.

 

目录

摘要2

abstract3

引言5

第一章视频图像处理的整体设计7

1.1视频信号概述7

1.2视频图像分割处理系统设计12

第二章具体电路设计分析13

2.1视频源13

2.2视频输入模块16

2.2.1模数转换器ad998316

2.2.2存取视频数据20

2.3视频处理模块26

2.3.1主控fpga26

2.3.2flash30

2.3.3clk时钟电路34

2.4输出模块35

2.4.1ch730135

2.4.2dvi42

2.5电源模块43

2.5.1芯片5438643

2.5.2spx293044

2.5.3ld1117降压器44

2.6整个电路原理图46

第三章视频分割原理48

3.1采集视频信号48

3.2阈值分割算法48

3.2.1图像二值化48

3.2.2双峰法49

3.2.3最大方差自动取阈值(自适应二值化)49

3.3边缘检测51

3.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信号高电平表示为奇数场,低电平表示偶数场。

href信号表示一行有效的图像数据,一行图像数据包括720个像素。

1.2视频图像分割处理系统设计

系统结构如图1.3所示,从系统结构图可以看出,系统主要包括视频信号输入模块,视频信号处理模块和视频信号输出模块等3个部分组成。

各个模块主要功能为:

视频输入模块将采集的多路视频信号转换成数字信号送到fpga;视频处理模块主要由fpga完成,根据需要对输入的数字视频信号进行处理;视频输出模块将fpga处理后的信号输出到显示器。

 

实际电路板如下图所示:

 

第二章具体电路设计分析

2.1视频源

本电路由两个vga接口输入模拟视频信号,vga接口是一种d型接口,上面共有15针空,分成三排,每排五个。

vga接口是显卡上应用最为广泛的接口类型,

多数的显卡都带有此种接口。

接口实物图及引脚定义如表1所示:

 

管脚定义

1红基色red

2绿基色green

3蓝基色blue

4地址码idbit(也有部分是res,或者为id2显示器标示位2)

5自测试(一般为gnd)

6红地

7绿地

8蓝地

9保留

10数字地

11地址码(id0显示器标示位0)

12地址码(id1显示器标示位1)

13行同步

14场同步

15地址码(id3显示器标示位3)

模式场扫描时序

刷新速率像素时间场周期同步脉冲后肩有效时间前肩

pix

periodsync

pulseback

porchactive

timefront

porth

opqrs

hzususlinuslinuslinuslinuslin

640*480600.0396831666752563295230153654842869

640*480720.0321031388952080369426129274841877

720*400700.035352142864496421018321285440435011

720*350700.0353521428644964218145711263354114536

800*600560.027902178576255725712017257604--1

800*600600.0251321666762810645572116030604--1

800*600720.020052138896661256438211259660473035

640*480750.0317461333352551276230122924842299

640*480660.0334031515252587310683713968484291

 

模式行扫描时序

 

分辨率刷新

速率像素

时间行周期同步脉冲后肩有效时间前沿

abcde

hzususpixuspixuspixuspixuspix

640*480600.03968331.758003.81961.7864525.6356460.51613

640*480720.03210326.718321.28404.01312520.7386460.67421

720*400700.03535231.829003.821081.8035125.6667260.53015

720*350700.03535231.829003.821081.8035125.6667260.53015

800*600560.02790228.5710242.01723.48812522.4898060.58621

800*600600.02513226.5410563.221282.1368520.2568060.93037

800*600720.02005220.8510402.421201.2236116.1628061.06353

640*480750.03174625.408003.05961.4294520.5086460.41313

640*480660.03340328.868642.14643.1069321.5786462.03861

下面选一种最常用的vga(640×480,60hz)图像格式的信号时序来分析解释:

(1)场扫描(又称为“垂直扫描”)周期

(2)行扫描(又称为“水平扫描”)周期

(3)复合消隐信号

复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域它是低电平。

2.2视频输入模块

2.2.1模数转换器ad9983

2.2.1.1主用芯片简介

ad9983(以下简称ad,如图2.1)为美国analogdevices公司生产的3路8位模数转换器件,最大转换率达170ms/s(百万次采样/每秒),多用于捕获个人计算机或

工作站的rgb信号。

近年来,在视频信号处理领域得到广泛的应用。

ad内含60个寄存器00h-3ch,用来对ad进行初始化和控制。

针对不同的应用环境,这些寄

图2.1ad9983

存器需写入相应的值,才能使ad正常工作。

ad的初始化是其工程应用的前提。

ad初始化过程依靠ad9983的sda(pin66)和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.212c总线时钟产生图

假设fpga时钟为125mhz,i2c总线时钟为200khz,m为8,则工作时钟为1.6mhz,再考虑到d触发器相当于2分频,则

n=125mhz/(200khz×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

slaveaddressack-ssubaddressack-sdata(nbytes)ack-spause

图2.3ad9983初始化写入数据的时序

其中:

start为开始信号;slaveaddress为从地址;ack-s为从器件发出的应答信号;subaddress为子地址;data(nbytes)为要写的各数据;pause为停止信号。

当n=1时,表示要传一个数据;当n>1时,表示要传多个数据,同时将完成片内子地址的自动增加,实现对地址连续的寄存器的写操作,程序流程图如图2.4:

 

 

需要注意的是,为了避免由于器件工作异常而引起的死循环,设置一个超时计数器,当等待时间超过超时计数器设置的数值,则跳初始状态,重新对ad9983进行设置。

2.2.2存取视频数据

ddrsdram器件是硅片存储器资源,现在最经常用于各种系统,包括从消费

产品到视频系统的各类应用。

ddrsdram器件的频率高达200mhz或ddr400,dram可以使用器件或模块的配置。

本设计利用hynix公司的h5du2562gtr芯片存取数据,这是一款256mb的ddrram。

内部结构为16m×16,工作电压为2.5v,16位数据宽度采用400mil66pintsop-ii封装。

hy5ps121621bfp实物图如下图2.5所示。

图2.5ddr示意图

 

1、ddr控制器命令

表1所示为控制器发出的命令。

这些命令通过使用下列控制信号传输到存储器:

•行地址选择(ras)

•列地址选择(cas)

•时钟使能(cke)(器件配置后始终置为高)

•芯片选择(cs)(器件运行期间始终置为低)

1加载模式寄存器lll

2自动刷新llh

3预充电lhl

4选择组激活行lhh

5写命令hll

6读命令hlh

7空操作hhh

注:

地址信号a10在预充电所有组期间设定为高,在单个组预充电期间设定为低。

表1、ddrsdram命令

2、命令功能

读命令:

读命令用于发起对活动行的突发式读访问。

ba0和ba1上的值选择组地址,而a0-ai上提供的地址输入选择起始列位置。

读突发结束后,只要还未预充电,此行仍可用于后面的访问。

图3.6所示为一个附加延迟为零的读命令示例。

因此,在该示例中,读延迟与cas延迟相同,在ddr400规范中为三个时钟周期。

 

图3.6【9】ddr读命令波形

命令功能模式寄存器(moderegister)

模式寄存器用于定义ddrsdram特定的运行模式,包括突发长度(burstlength)、突发类型、cas延迟(caslatency)和运行模式的选择,如图3.7所示。

组地址(bankaddress)ba1和ba0用于选择模式寄存器。

图3.7显示了组地址位配置。

模式寄存器控制范围之外的功能由扩展模式寄存器控制。

这些附加功能是用于ddrsdram接口的dll使能/禁能和输出驱动强度,如图3.8所示。

ba1ba2a12a11a10a9a8a7a6a5a4a3a2a1a0

000dll0caslatencybtburstlength

a2a1a0burstlength

0012

0104

0118

othersreserved

 

 

a6a5a4caslatency

0102

0113(ddr400)

1102.5

othersreserved

 

a8dll

0normaloperation

1reset

ba1ba2moderegister

00moderegister(mr)

01extendedmremr1

 

图3.7ddr400模式寄存器定义

ba1ba0e12e11e10e9e8e7e6e5e4e3e2e1e0

010dsdll

e0dll

0enable

1disabled

 

e1drivestrength

0normal

1reduced

 

图3.8扩展模式寄存器

初始化顺序[9]

此控制器状态机使用的初始化顺序遵循ddrsdram规范。

配置顺序分为两步:

第一步由硬件在上电时处理;第二步由fpga存储器控制器设计处理。

图3.9所示为针对初始化而发出的命令顺序。

 

写命令:

写命令用于发起对活动行的突发式访问。

ba0和ba1上的值选择组地址,而地址输入a0、ai的值选择活动行内的起始列位置。

写延迟的值等于一个时钟周期。

图3.10所示为一个写延迟为1的写突发。

写命令和dqs信号的第一个上升沿之间的时间间隔由写延迟确定。

图3.10【9】ddr写命令波形

3、具体信号分析

(1)差分时钟(参见上文“ddrsdram读操作时序图”)是ddr的一个必要设计,但ck#的作用,并不能理解为第二个触发时钟,而是起到触发时钟校准的作用。

由于数据是在ck的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输,这就要求ck的上下沿间距要有精确的控制。

但因为温度、电阻性能的改变等原因,ck上下沿间距可能发生变化,此时与其反相的ck#就起到纠正的作用(ck上升快下降慢,ck#则是上升慢下降快)。

而由于上下沿触发的原因,也使cl=1.5和2.5成为可能,并容易实现。

(2)数据选取脉冲(dqs)

dqs是ddrsdram中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。

每一颗芯片都有一个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信号,484fpbgabank3、bank4、bank5可提供7个dqs信号,所以采用这三个模块控制ddr的存取操作,并为此三个模块供给2.5v电压。

6、7模块做普通io口使用,连接ad以及输出驱动芯片。

第8模块及第5模块部分引脚为配置引脚,具体说明如表2。

lfe2-xxxe-xxxxxxx号x

设备系列

ecp2(latticeecp2fpga)级

逻辑能力c=商业

6=6klutsi=工业

12=12kluts包装

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1