APP下载

嵌入式视频采集系统的实现方法研究

2017-06-03何青

科学与财富 2017年15期
关键词:白盒黑盒应用程序

何青

(中国计量大学 浙江杭州 310018)

摘要:本文将主要介绍嵌入式视频采集系统的实现方法,并在论述各系统主要特点的基础上,指出嵌入式视频采集系统的发展方向。

关键词:嵌入式系统;视频采集;

一、引言

伴随世界范围内计算机技术和多媒体网络通讯技术的蓬勃发展,作为视频系统的重要组成部分之一,嵌入式视频采集和视频信号处理已经成为我国计算机领域的研究热点问题。这也主要是因为在远程教学系统、远距离诊断系统、视频会议系统等场合中,对视频采集速度、图像质量、传输方式等都有更好的要求。

二、视频采集系统概述

所谓视频采集(Video Capture)就是把模拟视频信号转换为数字视频信号的过程,具体实现就是通过专用的模拟、数字转换设备,将诸如摄像机、电视机等设备输出的模拟视频信号转换为二进制数字信号,并将其保存下来。这里所说的转换设备一般指的就是视频采集卡,目前这种卡的级别有家用和专业两钟。一般家用采集卡只能进行简单的视频采集,没有专门的硬件级的视频压缩功能,部分家用家用级的视频采集卡具有比较初步的硬件级压缩功能。而对于专业级的视频采集卡,除了视频采集功能外,可以实现对视频的硬件级压缩和编辑。

视频采集系统可以为各种图像处理算法提供待处理的原始数字图像和算法验证平台,随着人们对视频图像需求的激增和各种图像和视频新的压缩标准相继提出,如 H.263、H.264、MPEG2、MPEG4 和 JPEG2000 等,对高性能视频采集系统的研究将成为一个热点。按系统的处理器不同,嵌入式视频采集系统大致可分为三类:第一类是基于专用视频图像芯片的视频采集系统;第二类是基于 PC 的视频采集系统;第三类是基于 DSP(Digital Signal Processing)的视频采集系统。

三、嵌入式视频采集程序的设计与实现

嵌入式系统的应用随着多媒体网络技术等的迅速发展已经变得越来越广泛,与人们的日常生活息息相关。通过摄像设备可以轻松实现远程视频监控,进行视频电话交谈,开展远程视频会议等。而这些功能的实现关键就是嵌入式视频的采集与处理。本章主要研究针对 USB 摄像头的驱动及视频采集的设计与实现。

1.设备的初始化

这里主要是生成设备节点同时,还生成 V4L 的设备文件夹(dev/videox),主要是在系统识别了 USB 摄像头后,通过系统对 V4L 和 USB 设备的驱动的支持实现的。对设备文件的操作实现 USB 摄像头的控制,最终视频采集程序采集即可通过调用 V4LAPIs 来实现。

2.视频采集信息在液晶屏上的显示实现

(1)视频捕获接口设计

此步骤的关键是将摄像头采集到的图像信息传送到液晶屏上,并显示出来,这一步是在摄像头驱动程序加载之后实现的。若要显示摄像头采集到的图像信息,这里需要一个应用程序来实现。那么这个程序如何来编写的,本文将给出具体的方法。在嵌入式 Linux 中,所有连接开发板上的设备,例如 USB 摄像头,都是被看做一种特殊文件来处理的,这些文件就叫做外设文件。因为内核和外设之间的接口是外设驱动程序,而内核和应用程序之间的接口则是系统调用的。应用程序可以像普通文件一样对外设进行操作,包括完成对设备文件的中断处理功能及各种操作,包括外围设备的初始化和释放。由于 VidcoforLinux(V4L)标准是摄像头所遵循的标准,它定义了一套统一的 API 接口,应用程序、内核、驱动都以这个接口为标准进行交流。这种设备包括 USB 摄像头,属于目前的 V4L标准所涵盖的音视频捕捉及处理等内容。所以,通过标准的系统调用,视频应用程序即可操作视频捕捉外设。

(2)视频图像的捕获

本文对视频采集程序的开发使用的是 V4L,目前音视频等相关领域的应用程序都可以使用 V4L 来进行设计和实现。什么试 V4L 呢?可以将 V4L 是看做一套专门 Linux 下所提供的设备驱动程序文件的 API,它不仅可以用于音频应用程序的开发,还可以用于开发视频(Video)应用程序。根据本文的研究内容,这里仅仅阐述有关视频相关应用程序开发内容。通过 USB 接口,将摄像头接入开发板上的 USB 接口,在程序中一般情况下视频设备文件存放在/dev/videox 中,对摄像头的操作就是对文件 video0 进行讀的操作。图像数据的具体的捕获过程是:首先打开设备文件,接着查询和确认设备性能,同时对所捕获的图像的宽和高、设置色深等进行设置,然后进行内存映射的建立,开始读取图像数据、最后关闭设备。在视频采集的实现过程中,为了实现与设备交互和通信,所以把设备看成设备文件。

3.系统测试

(1)嵌入式系统测试技术

系统测试中必须要考虑的问题是实践和硬件影响的问题,这是在嵌入式系统测试技术中的首要问题。对于硬件来说,测试中只要使用专门测试仪器就可以对其进行测试,对软件方面的测试,即嵌入式软件的测试则就需要设计不同的方法和粗略来对其进行测试,测试过程中也需要相关工具和技术的支持。使用专门途径对软件进行测试的技术有很多,有不同的分类,这种专门的测试技术指的是运用这些途径所提供的能够更加有效的特定技术。确认测试和第三方的验证属于一般的软件测试技术,第三方验证测试诸如功能测试或黑盒测试,另外还有回归测试,即基于代码的测试,也叫白盒测试。其他的测试方法还有维护中的修改或升级测试(回归测试)等。当前,基于部件开发和面向对象编程是大部分实时嵌入式软件的特点,这对目标机的交叉开发方式、时空和宿主机以及可能的分布运行环境等,这在测试技术的选择方面带来了一定挑战或问题。

(2)白盒测试和黑盒测试

通常所说的结构测试或者逻辑驱动测试就叫白盒测试,它的英文叫做 White Box Testing。一般来说软件的开发都需要有相关的规格和说明,那么白盒测试是通过测试来检测产品是否符合所规定或设计的要求。也就是说白盒测试是按照程序内部的结构进行测试的。在测试中,这种方法相当于把测试对象看作一个打开的盒子,在进行测试时,测试人员只要依据软件内部逻辑来进行测试和验证,所有就把这种测试称为白盒测试。

这种测试不需要了解程序的内部结构,根据软件的用途和外部特征查找软件缺陷是这种测试方法的特征。测试中只从使用者的角度出发进行测试,对程序代码无依赖,只检测其功能、目标及要求是否达到,从这是黑盒测试的最大优点。在测试中,黑盒测试和白盒测试互为补充,一些问题白盒测试发现不了可以通过黑盒测试发现,白盒测试又可发现黑盒测试无法发现的问题。所以两种测试方法是密切相关的。在进行嵌入式软件测试时,一般要根据软件设计的目标、性能等需求去判断软件是否达到了这些需求或规范,需求规格说明的质量会直接影响到测试结果,也就是把系统的预期用途作为重要依据。极限测试是嵌入式软件测试的一个重要方面。嵌入式软件的失效过程要平衡在测试的使用环境中是被通常要求的,所以,除了要检查软件工作过程外,在进行黑盒测过程中还要检查软件的失效过程。最后为了保证正确的测试,还需要检验软硬件之间的接口。

四、结束语

综上可见,作为视频监控系统的输入源,其视频采集的性能的好坏将在很大程度上影响整个视频监控系统的质量。通过本文的研究,能够最终解决当前一般视频采集中所出现的诸多问题,对于科学设计和建设嵌入式系统及日常开展教育教学工作都有着积极的意义。

参考文献:

[1] 黄力.覃纪武.嵌入式 Linux 的现状与前景研究[J].电脑知识与技术.2005 (15):69-71.

[2] 贾智平.张瑞华.嵌入式系统原理与接口技术[M].北京:清华大学出版社.2005:231-240.

猜你喜欢

白盒黑盒应用程序
一种基于局部平均有限差分的黑盒对抗攻击方法
面向未来网络的白盒交换机体系综述
DWB-AES:基于AES 的动态白盒实现方法
删除Win10中自带的应用程序
网络“黑”“白”之争
谷歌禁止加密货币应用程序
基于EEPROM数据读写的智能电能表白盒测试方法