新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于IP网络的实时视频采集系统

基于IP网络的实时视频采集系统

作者: 时间:2011-08-25 来源:网络 收藏
2.1.2 图形界面的编译与安装

本文引用地址:https://www.eepw.com.cn/article/150298.htm

  Sitsang板使用的是Qt/Embedded的图形界面,Qt/Embedded的编译主要分为三个步骤:

  ①编译Qt/X11,Qt/X11是运行在IBM兼容PC中标准Linux这上的,这主要为Qt/Embedded及其应用程序提供图形编译环境及仿真运行环境;

  ②编译Qt/Embedded,Qt/Embedded为在嵌入式Linux平台上运行的图形界面及应用程序提供一系列的函数库;

  ③编译Qtopia,通过使用Qt/X11提供的编译工具以及Qt/Embedded提供的函数库,编译出最终嵌入式Linux平台的图形界面系统及该环境下的应用程序。

  2.1.3 文件系统的安装

  在嵌入式平台上用作非易失存储的设备一般是Flash,因而在嵌入式平台上除了广泛使用的ext2文件系统外,还经常使用jffs2文件系统。作为日志型文件系统,jffs2直接写到非易失存储器上,而不使用如ext2的缓冲机制,这样在随时断电的情况下够保护用户的资料。直接使用mkfs.jffs2生成Sitsang板上的jffs2文件系统。

  2.2 嵌入式Linux模块的设计

  在嵌入式Linux的内核定制和编译阶段,已经加入了对Video4Linux模块以及OV511设备的支持,所以运行在Linux下的图像程序,可以通过Video4Linux模块提供的编译接口(API)从OV511设备中获取图像帧。

  ①加载USB及OV511设备驱动模块,同时加载Video4Linux模块。分别使用命令:modprobe usbcor、modprobe usb-uhci、modprobe vodeodev和modprobe ov511。加载后将生成设备文件/dev/video0,为了和Video4Linux模块相协调,使用ln-s/dev/video0/dev/video为Video4Linux模块的默认视频设备voideo与物理视频设备video0建立连接。

  ②使用Video4Linux模块提供的API进行视频程序的设计。Video4Linux模块的视频采集接口设备为/dev/video,采集程序打开此接口设备并扫描 它以寻找自己所需要的数据。

  这里将简要介绍一下Video4Linux模块提供的主要API函数:VIDICGCAP函数以数据结构video_capability返回视频采集设备的性能参数;VIDIOCSFBUF函数使用数据结构video_buffer设备采集设备的帧缓存参数,如果设备不支持帧缓存则此调用无效;VIDIOCGWIN函数使用数据结构video_window来设备采集窗口参数,使用参数1调用VIDIOCCAPTURE则开始视频信号采集,使用参数0则结束采集;VDIOCGCHAN函数用来查询不同的采集通道(包括音频信道),使用数据结构video_channel返回通道属性;VIDIOCSPICT函数使用数据结构video_picture来获取和设置采集图像帧的属性,比较重要的是图像帧的调色板参数;read函数读取采集通道中效的下一帧图像,所读取的图像格式和尺寸由前面介绍的VIDIOCSPICT函数和VIDIOCGWIN函数决定,这些API函数以及数据结构定义在头文件 中。

  整个视频采集模块的工作流程见图3。

  

  2.3 视频图像压缩模块的设计

  由视频采集模块获取的视频图像需要在以太网上传输,为了提高传输效率从而提高视频图像质量,则需要将原始的视频图像进行压缩编码。本系统采用先进的MPEG-4标准对视频图像进行压缩编码,在几种开放源代码的MPEG-4编码软件中,选择xvidcore作为本系统中视频图像压缩模块中的核心算法。xvid是一个高效的而且具有可移植性的编码软件,目前版本为xvidcore-1.0.1。xvid支持Simple Profile和Advanced Profile,支持I/PFrames、B-Frames、Interlacing和GMC,以钻石和方块模式来进行PMVFast和EPZS运行估计,是目前比较流行的MPEG-4编码软件。

  对xvidcore-1.0.1进行交叉编译比较简单,有以下主要步骤。

  ①解压缩xvidcore源代码:tar-zxvf xvidcore-1.0.1.tar;

  ②设置环境变量:export xvidcore=the path of xvidcore;cd $xvidcore/build/generic;

  ③生成makefile:./configure-host=localhostbuild=arm-linux-gcc;

  ④编译源代码:make;make install;

  ⑤将交叉编译生成的库文件libxvidcore.so.*拷贝到交叉编译器工作目录的lib子目录中,该库文件为系统的其它模块提供了编程接口。



评论


相关推荐

技术专区

关闭