新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > QNX 下嵌入式视频监控系统研究

QNX 下嵌入式视频监控系统研究

作者:时间:2012-12-07来源:网络收藏

3 系统软件设计
3.1 视频处理流程
视频处理流程如图6所示。监控系统软件设计的核心部分是视频信号的采集、编码等处理,主要由Capture thread、Video thread、Stream writerthread来实现。Capture thread主要完成采集设备的初始化,使它工作在合适的状态,从采集设备获取原始视频数据放到缓冲区,为Video thread编码作准备。Video thread对Capture thread放到缓冲区中的原始图像数据进行编码,得到H.264码流。Stream writer thread的主要工作是把H.264码流写入循环缓冲区。放在循环流缓冲区的码流可以根据用户的需求进行进一步的处理,本系统主要将H.264码流存储到SD卡中。

本文引用地址:http://www.eepw.com.cn/article/148216.htm

f.JPG


3.2 视频采集设计
这里主要介绍系统对于USB接口摄像头的处理方法,其驱动程序中需要提供I/O操作接口函数open()、read()、write()、close(),对中断的处理,内存映射功能以对I/O通道的控制借口函数ioctl()等,并把他们定义在struct file_operations中。视频采集系统软件流程如图7所示。

g.JPG


软件的主要函数如下:
Camera_open():用来开启视频设备,使用前需要首先声明一个camera_device类型的设备文件。
h.JPG
i.JPG
camera_get_capability():通过调用ioctl()函数取得设备文件的相关信息,并存放到camera_capability结构里。
camera_get_picture():通过调用ioctl()函数取得图像相关信息,并存放到camera_picture结构里。
camera_capture():用来抓取图像,采用mmap方式,直接将设备文件/dev/videoO映射到内存,加速文件I/O操作,共享内存通信。
camera_timer:设定一个定时器,用于控制视频设备采集图像的时隙。
picture_save():保存采集的图片。
picture_num():对保存的图片计数,设定一个最大值,每当该计数器达到最大值时,调用删除图片函数picture_del(),一次性将已发送的几张图片删除。
camera_close():用来关闭视频设备。

结语
对于视频处理来说,采用+OMAP处理器的解决方案是个不错的选择。由于算法实现需要大流量的计算,使用开发平台,利用的DSP芯片来完成,可以较好地提高编解码的速率;同时,实时操作系统的编程接口符合POSIX标准,可移植性较强,可支持多种视频格式编解码。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭