6.14-video4linux模块应用实验.pptVIP

  • 2
  • 0
  • 约7.53千字
  • 约 19页
  • 2018-05-30 发布于河南
  • 举报
6.14-video4linux模块应用实验

3.实验内容 4.实验预习要求 5.实验原理 5.实验原理 5.实验原理 5.实验原理 5.实验原理 5.实验原理 5.实验原理 6.实验步骤 6.实验步骤 6.实验步骤 7.实验参考程序 7.实验参考程序 7.实验参考程序 7.实验参考程序 8.思考题 * MagicARM2410教学实验开发平台 广州致远电子有限公司 * 1.实验目的 (1) 掌握配置和编译链接Linxu系统的视频内核video4linux的方法。 (2) 掌握video4linux常用API函数的使用方法。 video4linux模块应用实验 硬件: PC机 1台 MagicARM2410教学实验开发平台 1台 USB摄像头(OV511芯片组) 1个 软件: RedHat Linux 9.0操作系统 Windows 98/2000/XP操作系统(可选) 嵌入式Linux开发环境 2.实验设备 (1) 配置和编译链接Linxu系统的视频内核video4linux。 (2) 配置和编译链接OV511芯片组USB摄像头驱动。 (3) 使用video4linux的API函数获取USB摄像头的基本信息,并打印到终端。 (1) 熟悉嵌入式Linux应用程序的编写及其编译调试的方法。 (2) 熟悉nfs文件系统的使用。 (3) Linux系统内核自带的USB设备驱动模块的配置及编译链接。 video4linux(V4L)是Linux的影像串流系统与嵌入式影像系统的基础。Linux在TV、多媒体上的应用是目前相当热门的研究领域,而其中最关键的技术则是Linux的video4linux。 video4linux是Linux kernel里支持影像设备的一组APIs,配合适当的视频采集卡与视频采集卡驱动程序,video4linux可以让我们实现影像采集、AM/FM无线广播、影像CODEC、频道切换等功能;而目前最主要则是应用在影像串流系统与嵌入式影像系统里,其应用范围相当广泛,例如:远距离教学系统、远距离诊断系统、视频会议等。 video4linux分为2层式架构,最上层为video4linux驱动程序本身,最下层架构则是影像设备的驱动程序。本实验中则是使用V4L的最上层驱动程序,即V4L本般所提供给程序开发人员的APIs。 Video4Linux下的图像采集编程: 在图像采集设备驱动安装后,只需要再编写一个对视频流采集的应用程序就可以了采集视频图像。Video4Linux应用程序中常用的数据结构如下: struct?voide_capability?grab_cap; video_capability包含摄像头的基本信息,例如设备名称、支持的最大最小分辨率、信号源信息等,分别对应着结构体中成员变量name[32]、maxwidth、maxheight、minwidth、minheight、channels(信号源个数)、type等; struct?video_picture?grab_pic; voide_picture包含设备采集图像的各种属性,如brightness(亮度)、hue(色调)、contrast(对比度)、whiteness(色度)、depth(深度)等; struct?video_mmap?grab_buf; video_mmap用于内存映射; struct?video_mbuf?grab_vm; video_mbuf利用mmap进行映射的帧信息,实际上是输入到摄像头存储器缓冲中的帧信息,包括size(帧的大小)、frames(最多支持的帧数)、offsets(每帧相对基址的偏移)。 程序中用到的主要系统调用函数有:open( /dev/video0, int?flags )、close( fd )、mmap( void?*start , size_t?length, int?prot, int?flags, int?fd, off_t?offset )、munmap( void?*start, size_tlength ) 和ioctl( int?fd, int?cmd, … )。 前面提到Linux系统中把设备看成设备文件,在用户空间可以通过标准的I/O系统调用函数操作设备文件,从而达到与设备通信交互的目的。当然,在设备驱动中要提供对这些函数的相应支持。这里说明一下ioctl(int?fd,int?cmd,…)函数,它在用户程序中用来控制I/O通道,其中,fd代表设备文件描述符,cmd代表用户程序

文档评论(0)

1亿VIP精品文档

相关文档