您的位置:首页 > 运维架构

FPGA+DSP视频监控

2015-08-05 09:27 211 查看
一、基于嵌入式linux的视频监控系统设计与实现:

在ARM为微处理器平台上,移植嵌入式linux操作系统,并完成视频采集、压缩、传输和控制等任务,在此基础上,借助linux下的开源软件,构建整个视频监控系统。

S3C2410作为主处理器 (1.USE摄像头作为视频采集设备),用(2.ffmpeg库对视频流数据进行MPEG-4压缩),并且通过(3.以太网传输),远端用户可以监视。同时又物体闯入监控区域,设备将通过(4.短息的形式)向用户发出报警。

以S3C2410处理器为核心的视频监控系统的硬件和软件方案。随后详细分析了嵌入式linux系统的设计与实现,其中涉及到了(1.Bootloader),(2.Linux内核)和(3.文件系统),并讨论了(4.嵌入式Linux下的USB摄像头设备驱动),然后实现了嵌入式视频监控系统软件部分包括视频采集模块,运动检测模块,实时视频监控模块等。

二、基于ARM+FPGA的视频监控系统设计

以ARM9为主控制器,(1.FPGA为协处理器),构造ARM与FPGA间的高速数据传输通道和(2.基于Linux的轻量级的图形驱动),完成实时视频采集和显示。实验结果表明,设计能流畅播放(3.PAL/NTSC两种制式视频信号),具有良好的扩展型、稳定性和较快的响应速度。

模型:SAA7111A->EP1C6Q240C8(上加SRAM缓存)->AT91RM9200

为了让EP1C6Q240C8(FPGA)和AT91RM9200(ARM)能够很好的数据传输,采用的方案是FPGA连接在BANK4上进行高速数据传输,同时对于FPGA,另外连接一个SRAM作为数据缓存。所以AT91RM9200只需要从BANK4的基地址读取数据即可。

***********

注意:这篇论文与下一篇采用DSP使用CPLD控制器的方案的不用,这篇使用的是FPGA加Verilog语
言,相同点是都使用了双SRAM的缓存结构方式!!!!

***********

CCD电荷耦合元件,也可以称为图像传感器,也称图像控制器。单CCD要进行的是亮度和色度的转换,后来有了3CCD。

TWI(I2C)接口,相当于I2C接口。

三、SAA7113H和DSP接口设计中的应用(原题:SAA7113H在视频采集接口设计中的应用)

内容:采用SAA7113H的视频采集接口设计方案:利用DSP的多功能I/O口由软件虚拟IIC总线,实现DSP对SAA7113H的初始化等控制;通过(***可编程器件CPLD,设计视频采集控制器以及帧存控制器***),实现了视频输入信号采集存储与图像后续的并行操作。

*************

可编程器件CPLD,设计视频采集控制器以及帧存控制器?

解释:由上面的论文部分可知,我们可以知道CPLD这个陌生概念的作用是用来设计一个控制器,实现图像数据的存储和传输的同步性,从而实现高速的有效数据传送。

*************

*************

*** 什么是CPLD? 什么是FPGA? ******

CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

(一)它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

(二)以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

*************

补充:

1.SAA7113H在上电后,芯片不是立即采集模拟视频信号进行A/D转换处理,输出数字信号,它必须 由前端处理器(DSP 或 PC)通过IIC串行总线对其内部寄存器进行初始化设置后,才能正常工作

2.SAA71131A有256个内部寄存器(00~FFH),02H是用来设置模拟输入处理的工作模式

06H~13、15~17H是解码部分的工作方式配置寄
存器,进行同步信号控制和 BCS控制和输出数据控制

12H是用来设置RTS0、RTS1的功能。

11H~13H是输出控制寄存器;

1FH是只读解码状态寄存器。报告解码中的各
个信息。

40H~60H、60H~62H是行/场图像控制、状态
寄存器、用于设置VPO的数据 格式等

内部寄存器14H、18H~1EH、20H~3FH及63H
~FFH保留使用。

输出数据格式:SAA7113H输出数据总线宽度为8位,输出的是格式为标准ITU656 Y:U:V(4:2:2) 的视频数据。

***************

问题来了:视频数据Y:U:V(4:2:2)是什么意思?

什么叫656和601?

ITU-R BT 601:

16位数据传输;21芯;Y、U、V信号同时传输。

ITU-R BT 656:

9芯,不需要同步信号;8位数据传输;串行视频传输;传输速率是601的2倍;先传Y,后传UV 。

其实PAL和NTSC只是(并且仅仅是)颜色系统(Color System),【只负责对视频信号(复合视 频信号CVBS)的【色彩空间和色彩解码】】,换个角度说,也就是和电视线无关。(SECAM也一 样)说到这要引申一下:

B,G,N,M,K,I,他们是信号发送的方式,决定了视频载波频率fs和声音载波频率fp之间的距 离,有的人叫他声音系统(Sound System),其实我以前也这么叫,但实际上应该是广播系统 (Broadcast System)他同时也制定了相应的电视线。

PAL和NTSC又是怎么回事呢?比如我国,采用的PAL制的彩色系统,用的是D,K的广播方式,全称应 该为PAL-D,K,这样就决定了我国的电视信号有626条线。又比如美国采用NTSC制的彩色系统,广 播方式为M,则为NTSC-M,有525条电视线。

分量编码就是【彩色全电视信号在转换成数字形式】之前,先被分离成【亮度信号和色差信号】 ,然后对它们分别进行【编码】。分量信号(Y、B -- Y、R -- Y)被分别编码后,再合成数字信 号。

***************

***********

总结:意思是先将4路的CVBS信号给分离成亮度信号和色差信号后,进行编码,通过VPO的8线 (颜色系统)PAL-N,K模式进行发送。

***********

***********

Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别?????

YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U- Y-V次序输出的

RGB: 传统的红绿蓝格式,比如RGB565,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B。G多 一位,原因是人眼对绿色比较敏感。

RAW RGB: sensor的每一像素对应一个彩色滤光片,滤光片按Bayer pattern分布。将每一个像素 的数据直接输出,即RAW RGB data

JPEG: 有些sensor,特别是低分辨率的,其自带JPEG engine,可以直接输出压缩后的jpg格式的 数据。

************

************

注意:这里的输出信号SAA7113H输出是Y/B/Y/R/Y信号,而OV7670输出的是RGB和JPEG信号!!!

************

*************

4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),是DVD、数字电视、HDTV 以及其 它消费类视频设备的最常用格式

*************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: