当前位置:首页 > 消费电子 > 消费电子
[导读]摘要:V4L是Linux针对视频设备的应用程序接口,V4L2为其升级版本,它修复了第一版的很多设计缺陷。然而它提供的常规读写函数并不能满足大数据量的高速传输,所以将缓存技术引入到视频采集领域可以提高系统的吞吐量。

摘要:V4L是Linux针对视频设备的应用程序接口,V4L2为其升级版本,它修复了第一版的很多设计缺陷。然而它提供的常规读写函数并不能满足大数据量的高速传输,所以将缓存技术引入到视频采集领域可以提高系统的吞吐量。提出了一种双帧内存映射视频采集机制,由于不需要做数据拷贝动作,减少了读/写时限,因而可以提高视频采集性能。实验结果表明,采用双帧内存映射机制在视频采集时速度快,效率高,达到了预期的实验效果。
关键词:V4L2;Linux;视频采集;内存映射

0 引言
    V4L(video for linux)是由Alan Cox开发的针对视频设备的应用程序接口(API),开始出现是在Linux 2.1.x版本内核中,可以实现图像采集、AM/FM广播和图像编解码等功能。然而,由于它在扩展性和灵活性上的缺陷,渐渐被Bill Dirks设计出的V4L的升级版本V4L2所替代,V4L2开始是在Linux 2.5.x版本内核中集成的,在对视频设备数据的读/写中,应用程序可以通过read/write方法或者内存映射来获得位于内核空间的图像数据。 read/write方法是将数据在内核空间和用户空间之间进行拷贝,而内存映射使应用程序可以直接访问设备内存,减少了从内核态到用户态的数据拷贝,因而可以显著提高系统的吞吐量,下面讨论视频采集中缓存机制的应用和实现。

1 V4L2的视频采集框架
    V4L2采用了分层架构,应用程序接口为上层,而下层则是视频设备的驱动程序,一般研究领域都是编写上层的应用程序,通过编程接口来控制视频设备完成相应的操作和功能。利用V4L2开发的视频采集程序具有设备无关性,任何支持V4L2的视频采集设备都可以移植此类程序,因而也提高了视频采集程序的可移植性。
    当视频设备连接到主机后,驱动程序会首先注册一个主设备号为81的字符设备,它是硬件惟一的身份标识。驱动程序利用主设备号来识别硬件,而系统内核则是利用主设备号让设备与对应的驱动程序相结合,同时加载驱动程序的成员函数、次设备号以及其他相关信息,使设备可以正常工作。使用表1中的函数可以访问 V4L2设备,也可以在应用程序中直接调用。具体功能如表1所示。


    其中,ioctl函数的功能非常强大,它可以管理设备的I/O通道,设置视频的制式和帧格式,还提供查询当前设备属性的功能,主要的ioctl命令如表2所示。


    这些函数原型一般定义在include/linux/videodev2.h或者videodev.h中。
    视频采集的具体过程描述如下:
    (1)打开设备。通过open()函数打开设备文件,返回文件描述符。
    (2)初始化设备。首先通过VIDIOC_QUERYCAP查询设备属性,判断该设备是否为一个合法的视频采集设备,并确定其支持的功能有哪些;然后通过 VIDIOC_S_FMT设置图像的格式,例如图像的大小等;通过VIDIOC_REQBUFS和malloc()分别在内核空间和用户空间分配内存缓冲区;最后通过mmap()函数进行内存映射。
    (3)图像采集循环。首先通过VIDIOC_QBUF将空缓冲区移入待处理队列,准备接收图像数据;然后通过VIDIOC_QBUF将满缓冲区移出已处理队列,进行图像的显示和处理;最后通过VIDIOC_STREAMON和VIDIOC_STREAMOFF启动和停止采集。
    (4)关闭设备。通过close()函数关闭设备文件。

2 双帧缓存数据传输
    在视频采集中,首先在内核空间建立2个图像缓冲区,不断将采集到的图像存放到缓冲区中。当应用程序需要图像时,驱动程序并不做拷贝操作,而是建立内核缓冲区到用户空间的映射,也就是利用mmap()函数,存取其返回的指针,相当于存取内核中的图像缓冲区。由于不需要做额外的复制操作,效率大大提高了,图像采集流程如图1所示。


    具体说明如下:
    (1)程序首先使用VIDIOC_REQBUFS向驱动程序请求图像缓冲区,v412_requestbuffers结构体包含了所要求缓冲区的类型及数量,但驱动程序有权决定最后返回的数量,因此程序仍需要使用系统返回的缓冲区数量,在这里程序返回2个缓冲区。
    (2)由于缓冲区数量有2个,调用2次mmap()建立起用户空间和内核空间缓冲区的对应关系,然后读取mmap()所返回的指针就相当于读取图像缓冲区。
    (3)此时驱动程序仍然不能对图像缓冲区做读取,调用2次VIDIOC_QBUF ioctl将缓冲区加入到驱动程序内部的采集序列,之后采集的图像就会被储存到这些缓冲区内。
    (4)调用VIDIOC_STREAM ioctl后,驱动程序开始采集图像,并将图像放置到缓冲区内。
    (5)虽然缓冲区内已经存放有图像了,但直接去读取某个缓冲区还是需要非常小心的,因为缓冲区仍然在驱动程序的图像采集序列中,有可能读取到一半,驱动程序又使用该缓冲区储存新的图像,而图1中的(5)是最后调用VIDIOC_STREAMOFF,以停止图像采集,此时驱动程序会自动将所有缓冲区从图像采集序列中移除,所以不需要手动调用VIDIOC_DQBUF,接着使用munmap()清除所有的存储区映射导致图像前后不一致。因此要在读取缓冲区前,先调用VIDIOC_DQBUG ioctl,通知驱动程序不要使用此缓冲区,在这个阶段中,通常是以如图2所示的顺序来读取每个缓冲区的。



3 实验结果
    当视频采集程序编制完成后需要以模块形式插入内核,再通过make modules对模块进行编译,未采用双帧缓存技术的视频采集帧速为6 f/s,应用本实验的方法可以达到8.3 f/s,视频采集结果截图如图3所示:



4 结语
    视频采集是目前远程教学、远程诊断、视频监控和视频会议等技术的基础。在实时性要求越来越高,工作性能越来越突出的今天,采用双帧缓存映射机制可以在数据采集方面实现高速化,满足一般性应用要求,但是,使用内存映射现在还存在2个限制:一是面向流的设备不能使用内存映射,如串口;二是映射区域的起始地址和大小都必须是PAGE_SIZE的整数倍,即内存映射是以PAGE_SIZE为单位进行操作的。这些都是后期研究中需要解决的问题。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

北京2022年10月19日 /美通社/ -- 作为一种软硬一体化的基础设施架构,超融合具备易运维、易部署等优势,在多种行业与场景中得到了广泛应用。在金融、医疗等行业的部署中,面向数据库等场景的超融合一体机面临着...

关键字: VME SMART IO AI

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

消费电子

95875 篇文章

关注

发布文章

编辑精选

技术子站

关闭