位置:51电子网 » 技术资料 » 通信网络

嵌入式远程视频采集系统的设计与实现

发布时间:2008/5/29 0:00:00 访问次数:449


多媒体通信技术的发展为信息的获取和传输提供了丰富的手段,视频采集是其中不可缺少的重要组成部分,该系统基于s3c2410的arm9芯片和嵌入式linux操作系统,采用usb摄像头捕捉视频,经mpeg-4算法压缩编码,系统直接与网络相连,用户使用标准的网络浏览器和流媒体播放程序即可查看远程视频影像。

1 硬件系统

系统硬件平台选用北京博创公司的up-netarm2410开发板,该系统基于arm9架构嵌入式芯片s3c2410,稳定工作在202mhz主频,板载64mb sdram 64mb flash,主板资源包括:主usb口、从usb口、10m/100m以太网口,触摸屏、彩色lcd、键盘、8个用户自定义led数码管, a/d,rtc电路,2个串口、1个jtag通用接口,音频模块,支持mpeg4,mp3编解码,3个168pin的扩展插座,32位的数据总线,保留充分扩展空间。

其中标配模块包括:ic卡+ps2模块、ide硬盘+cf卡模块、pcmcia+sd/mmc模块。另外可选配模块有:gps模块,gprs模块,fpga模块,can+ad+da模块、红外模块、蓝牙模块、摄像头模块。

2 软件系统

2.1 内核配置与usb摄像头驱动

假定已经搭建好嵌入式linux的开发环境,下面第一步工作就是usb摄像头的安装与驱动。

首先检查linux kernel中是否已经添加了usb模块的支持,并且加入video4linux支持。

multimedia devices→<m>video for linux

video for linux→[*]v4l information in proc filesystem

在主菜单的usb support下还有各种摄像头的驱动,选中将要使用的摄像头芯片类型。

<>usb ibm (xirlink)c-it camera support<*>usb ov511 camera support<>usb philips cameras

<>usb se401 camera support<>usb stv680(pencam)camera support<>usb 3com homeconnect(akavicam)support

在usb摄像头选购时,优先考虑linux内核公开支持的摄像头芯片,不然要额外编写相应的usb摄像头驱动程序,然后进行编译、安装。在此选用网眼公司的v3000产品,他采用了ov511的芯片。

确定usb摄像头被正常驱动后,下一步就是使用video4linux提供的api函数集来编写视频采集程序。

2.2 基于v4l设计的视频采集模块

在linux下,所有外设都被看成是一种特殊的文件,称为设备文件。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外设之间的接口。他完成设备的初始化和释放、对设备文件的各种操作和中断处理等功能,为应用程序屏蔽了外设硬件的细节,使得应用程序可以像普通文件一样对外设进行操作。

linux系统中的视频子系统video4linux为视频应用程序提供了一套统一的api,视频应用程序通过标准的系统调用即可操作各种不同的视频捕获设备。video4linux向虚拟文件系统注册视频设备文件,应用程序通过操作视频设备文件实现对视频设备的访问。

linux下与video4linux相关设备及用途如表1所示。

这里主要针对设备文件/dev/video进行视频捕捉方面的程序设计。

linux下视频采集流程如图2所示。

其中用到的主要函数有:

camera_open():用来开启视频设备文件,使用前需要首先声明一个video_device类型的设备文件。

camera_get_capability():通过调用ioctl()函数取得设备文件的相关信息,并存放到video_capability结构里。

camera_get_picture():通过调用ioctl()函数取得图像的相关信息,并且存放到video_picture结构里。

camera_close():用来关闭设备文件。

camera_grab_image():用来抓取图像,采用mmap方式,直接将设备文件/dev/video0映射到内存,加速文件i/o操作,还可以使多个线程共享数据。

剩下的还有设备初始化、参数设备等相关函数,不再详述。

2.3 视频压缩编码模块

获取图像数据后,可以直接输出到framebuffer进行显示,由于本系统要将采集到的视频影响通过网络传输出去,所以在传输之前要对原始的图像数据进行压缩编码,在此选用mpeg-4视频编解码方案。和其他标准相比,mpeg-4压缩比更高,节省存储空间,图像质量更好,特别适合在低带宽条件下传输视频,并能保持图像的质量。

mpeg-4中基于对象的视频编码过程可以分为3步进行:

(1)从原始


多媒体通信技术的发展为信息的获取和传输提供了丰富的手段,视频采集是其中不可缺少的重要组成部分,该系统基于s3c2410的arm9芯片和嵌入式linux操作系统,采用usb摄像头捕捉视频,经mpeg-4算法压缩编码,系统直接与网络相连,用户使用标准的网络浏览器和流媒体播放程序即可查看远程视频影像。

1 硬件系统

系统硬件平台选用北京博创公司的up-netarm2410开发板,该系统基于arm9架构嵌入式芯片s3c2410,稳定工作在202mhz主频,板载64mb sdram 64mb flash,主板资源包括:主usb口、从usb口、10m/100m以太网口,触摸屏、彩色lcd、键盘、8个用户自定义led数码管, a/d,rtc电路,2个串口、1个jtag通用接口,音频模块,支持mpeg4,mp3编解码,3个168pin的扩展插座,32位的数据总线,保留充分扩展空间。

其中标配模块包括:ic卡+ps2模块、ide硬盘+cf卡模块、pcmcia+sd/mmc模块。另外可选配模块有:gps模块,gprs模块,fpga模块,can+ad+da模块、红外模块、蓝牙模块、摄像头模块。

2 软件系统

2.1 内核配置与usb摄像头驱动

假定已经搭建好嵌入式linux的开发环境,下面第一步工作就是usb摄像头的安装与驱动。

首先检查linux kernel中是否已经添加了usb模块的支持,并且加入video4linux支持。

multimedia devices→<m>video for linux

video for linux→[*]v4l information in proc filesystem

在主菜单的usb support下还有各种摄像头的驱动,选中将要使用的摄像头芯片类型。

<>usb ibm (xirlink)c-it camera support<*>usb ov511 camera support<>usb philips cameras

<>usb se401 camera support<>usb stv680(pencam)camera support<>usb 3com homeconnect(akavicam)support

在usb摄像头选购时,优先考虑linux内核公开支持的摄像头芯片,不然要额外编写相应的usb摄像头驱动程序,然后进行编译、安装。在此选用网眼公司的v3000产品,他采用了ov511的芯片。

确定usb摄像头被正常驱动后,下一步就是使用video4linux提供的api函数集来编写视频采集程序。

2.2 基于v4l设计的视频采集模块

在linux下,所有外设都被看成是一种特殊的文件,称为设备文件。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外设之间的接口。他完成设备的初始化和释放、对设备文件的各种操作和中断处理等功能,为应用程序屏蔽了外设硬件的细节,使得应用程序可以像普通文件一样对外设进行操作。

linux系统中的视频子系统video4linux为视频应用程序提供了一套统一的api,视频应用程序通过标准的系统调用即可操作各种不同的视频捕获设备。video4linux向虚拟文件系统注册视频设备文件,应用程序通过操作视频设备文件实现对视频设备的访问。

linux下与video4linux相关设备及用途如表1所示。

这里主要针对设备文件/dev/video进行视频捕捉方面的程序设计。

linux下视频采集流程如图2所示。

其中用到的主要函数有:

camera_open():用来开启视频设备文件,使用前需要首先声明一个video_device类型的设备文件。

camera_get_capability():通过调用ioctl()函数取得设备文件的相关信息,并存放到video_capability结构里。

camera_get_picture():通过调用ioctl()函数取得图像的相关信息,并且存放到video_picture结构里。

camera_close():用来关闭设备文件。

camera_grab_image():用来抓取图像,采用mmap方式,直接将设备文件/dev/video0映射到内存,加速文件i/o操作,还可以使多个线程共享数据。

剩下的还有设备初始化、参数设备等相关函数,不再详述。

2.3 视频压缩编码模块

获取图像数据后,可以直接输出到framebuffer进行显示,由于本系统要将采集到的视频影响通过网络传输出去,所以在传输之前要对原始的图像数据进行压缩编码,在此选用mpeg-4视频编解码方案。和其他标准相比,mpeg-4压缩比更高,节省存储空间,图像质量更好,特别适合在低带宽条件下传输视频,并能保持图像的质量。

mpeg-4中基于对象的视频编码过程可以分为3步进行:

(1)从原始

相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!