毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于PXA270的视频监控系统 第4页

更新时间:2014-6-28:  来源:毕业论文

基于PXA270的视频监控系统 第4页
同时为了使系统可以适应在不同环境下的视频监控要求,必须提供对动态侦测参数进行修改的功能,令系统可以针对不同的监控要求进行性能上的调整。
3  系统图像处理机制
3.1图像数据捕获流程
系统在进行图像处理之前,必须获取摄像头捕获的图像数据。这个过程由摄像头驱动和按照V4L规范开发的系统图像捕获类完成。
3.1.1 OV511+摄像头原理
    USB摄像头的工作原理为:景物通过镜头生成的光学图像投射到图像传感器上,传感器进行光电转换后产生相应的电信号,之后再经过A/D转换后变为相应的数字信号,最后送到处理芯片中进行存储和加工处理,最后通过USB接口发送到主机。下图为OV511+芯片的结构图。OV511+包括一个数字摄像头接口,DRAM接口和一个USB设备控制器。Ov511包含两个端点,一个用于传输控制信息,一个用于传输视频数据。

图3-1  OV511结构框图

在启动摄像头设备后,可以获取16位RGB格式的图像。
3.1.2 V4L规范
    在Linux下,所有外设都被看成是一种特殊的文件,称为设备文件。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外设之间的接口。他完成设备的初始化和释放、对设备文件的各种操作和中断处理等功能,为应用程序屏蔽了外设硬件的细节,使得应用程序可以像普通文件一样对外设进行操作。
摄像头属于视频类设备。在目前的Linux核心中,视频部分的标准是Video For Linux(简称V4L)。这个标准定义了一套涵盖了视频、音频流捕捉及处理的接口,使得应用程序可以以这个接口为标准方便地和各种不同硬件接口的媒体设备进行设备交换,USB摄像头也属于它支持的范围。
在Linux下视屏设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头文件一般是/dev/v4l/video。在进行数据交换之前我们首先要对捕获的图像属性、视频窗口、还有采集的偏移、区域、间隔等进行设置。
3.1.3 V4L的主要数据结构
video_capability
包含设备的基本信息,包含的成员:
name[32]; 设备名称
type; 是否能capture,彩色还是黑白,是否 能裁剪等等;值如VID_TYPE_CAPTURE 等
channels; 信号源个数
audios; 音频设备数目
maxwidth; 支持视频显示的宽度上限
maxheight; 视频显示的高度上限
minwidth;支持视频显示的宽度下限
minheight;支持视频显示的宽度下限
video_picture
设备采集的图象的各种属性,在应用程序中使用VIDIOCSPICT ioctl 来改变设备的此种属性。包含的成员:
brightness 亮度 0~65535
hue 色调
colour 颜色(彩色模式)
contrast 对比度
whiteness 白色度(灰度级模式)
depth 捕获深度(配合显示缓冲区的颜色深度)
palette 调色板信息
video_channel
关于各个信号源的属性,每种video4linux 视频或者音频设备可以从一个或者多个信号源捕获数据。调用的
ioctl 接口是VDIOCGCHAN。调用前必须设置信号源的各个信道域。
包含的成员:
channel 信号源的标号
name 信号源名称
tuners 数目
flags 属性
type 输入类型
norm 制式
video_mbuf
利用mmap 进行映射的帧的信息。系统调用syscall 时会从设备返回下一个可用的影像。而调用者首先要设置
获取图像的大小和格式。通过调用ioctl 接口 VDIOCGCHAN 实现。注意并不是所有的设备都支持此种操作:
size 帧大小
frames 最多支持的帧数
offsets[VIDEO_MAX_FRAME] 每帧相对基址的偏移。
这些结构体对接下来的数据交换、内存映射等提供了依据。
3.1.4 V4L的设备操作流程
像一般的Linux设备操作一样,可以使用open函数打开设备,并使用I/O控制命令对摄像头的设备信息进行获取和修改,然后就可以通过内存映射或直接读设备的方法获取数据。
图3-2为在V4L规范下对视频设备的调用流程图
图3-2  V4L调用流程图

3.1.5 V4L在系统中的应用
本系统使用的是通过映射得到视频驱动的数据缓冲,然后直接对其映射后的缓冲进行读操作。还有另外一种方法是直接读设备,即调用read函数。
图像采集程序的编写基于linux内核中提供的Video4Linux 接口。Video4Linux是2.2.0版本之后linux内核提供给网络摄像头、视频采集卡、电视卡等设备软件开发的接口标准。这个标准为内核、驱动、应用程序提供一个API进行交流。目前的最新Video4Linux版本为V4L2。
    对于时间敏感而对数据的正确性要求不高的图像采集应用,USB总线定义了ISOC传输模式,USB摄像头应当使用这种传输方式。为了尽可能快地得到图像数据,应当在URB中指定USB_ISO_ASAP标志:urb->transfer_flags=USB_ISO_ASAP。
    Linux系统中任何USB传输都通过URB实现。为提高速度,可以考虑扩大URB的缓冲,也可以建立两个URB,在等待一个URB被回收时,也就是图像正在被传感器采集时,处理、初始化另一个URB,并在回收后立刻将其发出。两个URB交替使用,大大减少了额外时间。
    Linux系统通过read,write等来实现对硬件的操作,它们通过copy_to_user()、copy_from_user()等函数在内核和用户内存空间中互相拷贝。但是对于视频采集这类需要大量高速传输数据的应用来说,这种方法耗费的硬件资源过大,通过内存映射的方法可以使这一问题得到有效解决。首先使用vmalloc()申请足够大的核态内存,将其作为图像数据缓冲空间,两个URB带回的图像数据在这里暂存;然后使用remap_page_range()函数将其逐页映射到用户空间中。户态的图像采集处理程序使用mmap()函数,直接读写内核图像缓冲内存,大大减少额外开销。另外,为了进一步提高帧速率,本文采用双帧缓冲方式进行图像采集。
3.3图像的接收、显示、处理方法
本系统由摄像头采集得到的图像为16位的RGB图像,图像格式为5-6-5。可以直接进行像素操作。
3.3.1 RGB颜色模式
利用红(Red)、绿(Green)和蓝(Blue)三种基本颜色进行颜色加法,可以配制出绝大部分肉眼能看到的颜色。彩色电视机的显像管,以及计算机的显示器都是以这种方式来混合出各种不同的颜色效果的。
QT的RGB色彩类qRgb实质上是一个unsinged int类型,这个32位变量的末24位存储着最高24位的RGB色彩信息,前8位保存的是像素点的alpha值。这三个颜色通道分别为:红色通道、绿色通道和蓝色通道。其中每个通道最高使用8位颜色信息,该信息是由从0到255的亮度值来表示的。这三个通道通过组合,可以产生1670余万种不同的颜色。由于用户可以从不同通道对RGB图像进行处理,从而增强了图像的可编辑性。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页

基于PXA270的视频监控系统 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。