您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

一种用CPLD实现视频信号运动检测的方法

时间:2007-1-20栏目:电子通信论文

 摘要:介绍了一种采用CPLD外加SRAM存储芯片,对ITU601格式数字视频信号进行运动检测的方法。在此基础上,给出了一个实现这种检测方法的例子。在这个例子中,用Philips公司的视频处理芯片SAA7113的输出信号作为数字视频源,用Lattice公司的CPLD芯片LC4128V对视频信号进行运动检测。

    关键词:运动检测 CPLD 数字视频信号

在数字录像、数字监控等领域内,人们通常只对场景内存在的物体运动感兴趣。在这种情况下,需要对输入的视频信号进行预处理,识别场景中是否存在物体运动,也就是进行运动检测,然后再决定是否做进一步的处理,例如录像、报警等。对于录像系统,通过运动检测,能够避免不必要的数字录像,有效地减少系统所需存储空间;同时可以加快检索速度,提高资料有效性。对于监控系统,运动检测是一种监视场景信息的有效手段。

很多数字视频信号处理系统通常会选用DSP芯片作为主处理芯片。由于DSP对数字信号的处理是通过编程实现各种算法的,只通过软件就可以方便地加入某些功能,因此没有必要添加额外的硬件来完成运动检测。但是有很多系统,由于各种原因需要选用其它芯片来完成视频信号的处理,例如华邦的W9968x系列芯片,由硬件完成信号的处理,其算法已经被固化在芯片的内部电路中,不能随意更改。这一类芯片功能比较单一,但速度快、价格便宜,通常可以作为某些系统的专用芯片。对于这种情况,就需要考虑用另外的方法来实现运动检测。本文介绍的用CPLD进行运动检测的方法就是针对这一类情况的。该方法是通过附加一片CPLD芯片和一片SRAM芯片构成一个低成本的运动检测模块的。

1 运动检测原理

运动检测的实现方法有硬件实现的也有软件实现的,但基本思想大同小异,都是对相隔一定时间的两帧视频数据进行抽样,并对抽样数据进行比较,如果比较结果显示这两帧数据存在比较大的差异,那么就认为数据输入场景中存在物体的运动,反之就认为没有运动存在。
(范文先生网www.fwsir.com收集整理)
    本文介绍的用CPLD实现运动检测的方法也是基于这种思想,但和一般的实现方法有所不同,其实现方法有一定的特色。

通常情况下,在实现上述思想的过程中,需要两个缓存区分别存放两帧抽样数据,然后对这两帧数据进行比较并对比较结果进行统计,最后得出比较结果。这样做需要较大的SRAM作为缓存,而且往往需要单片机或者DSP对CPLD进行控制,并将其作为两帧数据的比较器。这样,运动检测模块的独立性会受到限制,而且CPLD的功能只是一个抽样控制器。

本文提出的方法只对一帧抽样数据进行缓存,在对第二帧数据进行抽样时读取第一帧中与此刻抽样的数据相对应的缓存数据,并将两者进行比较,用一个计数器记录比较结果,如果差值超过阈值,计数器加一,否则不加。当这个计数值超过某一个规定数值的时候,就认为输入视频数据中存在着物体运动。这样做的好处是需要的缓存区较小,而且CPLD可以单独对数据进行处理,提高运动检测模块的独立性,运动检测模块可以单独调试。

2 用CPLD实现运动检测

下面通过实例说明用CPLD实现运动检测的过程,并给出部分VHDL程序。在这个实例中,模拟视频信号从CCD摄像头输入,经过SAA7113芯片预处理后,输出数字视频信号。该信号分作两路:一路输入到CPLD进行运动检测,另一路则输入到芯片W99682,对信号进行JPEG压缩等进一步处理。

示例中用到的CPLD是Lattice公司的LC4128V-75T100C,它具有128个宏单元、7.5ns的延时。SRAM芯片是ISSI公司的63LV1024,其容量为128K×8bit,具有10ns的延时。CPLD检测到运动后,通过中断,要求W99682对信号做进一步处理。其系统结构图如图1(省略了部分与运动检测无关的元件)所示。

2.1 SAA7113的输出信号

SAA7113是Philips公司推出的一款功能强大的视频信号预处理芯片,最基本的功能是模/数转换,输出的数字视频信号符合ITU601标准。ITU601是长宽比为43和169的数字电视信号标准,它对数字电视信号的各项参数进行了详细的描述和规范。在我国,通常采用的都是422采样格式、PAL制式、长宽比为43的数字电视信号。SAA7113的输出信号就是指这一格式的信号。这种格式信号的主要特征是:

(1)有三个正交分量:亮度分量Y、色度分量Cb和Cr。

[1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页