APP下载

智能手机视频监控系统的设计与实现

2018-03-03吴雅琴鲁张依婵张红娜王威朱刘凯郑天昊

物联网技术 2018年2期
关键词:Android平台云存储

吴雅琴+鲁张依婵+张红娜+王威+朱刘凯+郑天昊

摘 要:近年来,随着移动通信网络的飞速发展,智能手机的功能日益强大,移动视频监控为视频监控提供了一个重要的研究方向。将智能手机作为监控客户端,可为人们随时随地根据需求进行实时监控提供一个十分便捷的操作平台。文中设计了一种以摄像头为视频采集端,以混合编码技术为视频压缩编码,以智能手机为移动视频客户端的视频监控系统,实现了监控视频的实时传输,并保证在客户端流畅播放。

关键词:Android平台;混合编码技术;云存储;移动视频监控

中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2018)02-00-03

0 引 言

随着互联网技术的迅速发展,传统的监控系统已无法满足人们对准确性、适用性和方便性的要求。同时,智能手机更新换代,处理能力日益变强,成为了人们日常生活中不可或缺的一部分。为满足人们对监控区域进行随时随地实时监控的需要,本文研究设计了一种智能手机视频监控系统,将手机端作为视频监控客户端,結合混合编码技术,实现了对监控区域的实时监控与监控视频的存储。

1 移动视频监控系统的设计

本文设计的视频监控系统、移动视频客户端均基于Android系统,有效结合了混合编码技术与云存储技术[1],可在客户端随时随地观看锁定的摄像视频,若视频图像发生异常,能在第一时间报告给锁定的主人,主人可通过App远程控制摄像头。

2 移动视频系统的关键技术

2.1 混合编码技术

为了使高质量通信成为可能,并尽可能减少数据损失,故使用主流的视频编解码标准H.264。视频编码的目的在于减少表示数据的比特。由于视频图像数据的相关性强,在帧内以及帧间具有大量空域和时域冗余信息,因此可以通过去除这些冗余信息来实现对视频数据的压缩[2]。其中,在数据压缩方面最受欢迎的是基于统计特性的运动补偿+变换编码的混合编码框架。国内外通用的视频压缩标准均基于此框架,如广泛使用的MPEG系列及H.26X系列标准。

MPEG-4不仅针对在一定比特率下的视频编码,更注重多媒体系统的交互性和灵活性。主要应用于视频电话、视像电子邮件等,其传输速度要求较低,为4 800~6 400 bit/s,分辨率为176×144。利用较窄的宽带,通过帧重建技术压缩和传输数据,力求以最少的数据获得最佳的图像质量[3]。

H.264技术具有比MPEG-4更为高效的编码效率,比后者节约50%的码率。可提供连续且流畅的高质量图像,并且在较低码率的情况下依旧能提供较高质量的视频图像[4]。

就单张图像来说,MPEG-4对视频数据的处理更优秀;而就整体视频传输来说,H.264更胜一筹。

预测编码:建立一个模型,通过数据的相关性,利用之前的样本对下一个新样本值进行预测,并将预测值和实际值的残差值编码传输到接收端,同时在接收端建立一个相同的模型,按此模型进行解码操作。

运动估计:从当前帧中提取视频序列的运动趋势和走向过程。

一个完整的编码过程基本可以概括为视频源通过滤波器得到波形图,量化得到初始的完整码流,通过帧间、帧内编码和熵编码技术得到最终压缩后的码流。

视频编解码部分采用JM编解码器。在实验中,视频源将收集到的视频数据改变格式后输入到JM编码器的工作目录中,在Visual Studio 2013平台上运行。通过编码器采样获取预测数据,并与实际值相减得到残差,使用帧内、帧间技术对残差进行量化操作/变换,对编码语法元素进行熵编码,然后在编码器的工作目录下得到压缩后的码流。

当码流传输到接收端后,同样会被输入到解码器的工作目录中,通过一系列相反的操作后得到压缩前的视频数据。

2.2 客户端实现

2.2.1 平台选择和开发语言

服务器端采用Windows操作系统与Java语言;客户端包括Android操作系统,Java语言,Android编程。

Java是一门面向对象编程的语言,较好地实现了面向对象编程理论,同时也是一种不受限于特定平台的语言,具有可移植性[5]。此外,Java还具有稳健、安全、高性能等特征,是一种功能丰富的开发语言。

2.2.2 客户端UI设计

用户界面(UI)是系统和用户之间进行交互与信息交换的重要媒介,使得用户能够方便、有效地操作硬件以达成双向交互,完成工作。

本文采用Android Studio进行Android编程。Android Studio具有非常丰富的可视化编程功能,可以在编程的同时看到其被应用在不同尺寸屏幕中的情况。Android操作系统的用户界面都以View与ViewGroup为基础。View是用户界面的基本组成单元,ViewGroup是其子类, ViewGroup的子类称为“Layout(布局)”。View与ViewGroup在布局中的层次结构如图1所示。

Android编程中有多种布局方式,分别为线性布局(LinerLayout),相对布局(RelativeLayout),帧布局(FrameLayout),绝对布局(AbsoluteLayout)等。本文编程主要用到线性布局(LinearLayout),该布局有horizontal和vertical两个方向。Android Studio在创建布局方式上分为两种:其一,在XML配置文件中声明布局方式;其二,在应用程序中直接通过代码实例化布局及其组件。

2.2.3 视频的播放显示

对于获取的视频文件首先要经过解码,之后再通过Android客户端播放。Android操作系统提供的VideoView和MediaPlayer可播放视频[6]。

MediaPlayer在播放视频时需要自己准备显示视频的组件、播放时的控制按钮等。首先创建一个MediaPlayer对象,再通过setDataSource()设置数据源,可以是文件、文件路径或URL。调用MediaPlayer.setDisplay(holder)设置 SurfaceHolder,surfaceHolder可以通过surfaceview的getHolder()获得,调用MediaPlayer.prepare()准备、调用MediaPlayer.start()播放视频。endprint

VideoView是Android提供的較为好用的播放视频组件,不仅内建了显示视频的功能,还可以直接加入MediaController对象作为播放控制接口。VideoView提供的setVideoURI()可以设置视频的URI,start()可以开始播放视频,pause()可以暂停播放视频,stopPlayback()可以停止播放视频。VideoView视频播放框架如图2所示。

从图2可以看出,VideoView组件进行视频播放的过程可以分为三步:

(1)Java Framework层。应用程序进入VideoView,再经过Surface;

(2)Native Framework层。先到SurfaceFlinger,然后借助PVPlayer到OverlayHal;

(3)Driver层。利用Main framebuffer和Video Plane进行播放。

2.3 视频数据的存储

在视频监控系统中,对已经采集的视频数据进行妥善存储,便于之后回调查看。目前可行的存储方式有SD卡存储与云存储。云存储是一个以数据和管理为核心的云计算系统[2]。相对于传统的SD卡存储,云存储的优势较为明显,随着系统数据量的增加,没有性能上的瓶颈。使用ownCloud可以在私有服务器上搭建私有云存储服务器节点,由中心管理服务器信息管理模块统一管理[7],以优化整个服务器系统的运作。

使用ownCloud时,需在云存储服务器节点上创建并配置Apache环境、PHP环境、MySQL环境等。由于ownCloud通过抽象层访问数据库,因此支持Oracle、MySQL、SQLite等数据库。服务子节点环境搭建完成后,可以选择连接到本地存储作为存储服务器提供点,在修改了ownCloud的存储路径配置后,ownCloud的存储文件动作就会立刻发生在该存储器上。使用ownCloud建立私有服务器可以更好地保证数据的安全性。

2.4 软硬件连接

客户端分为安卓端和iOS端,根据对场景的认知,对安卓App客户端进行了深层次的研究。安卓系统采用软件栈形式管理系统的功能层次结构,主要分为5层,由高到低分别是应用程序层、应用程序架构层、C++/C本地库、Android运行时库、Linux内核驱动层。

安卓客户端开发四大组件的运用贯穿整个应用软件的开发过程,其以组件的形式封装各抽象功能模块,使得应用与系统中其余软件的书库交互变得更为敏捷。

基于海思Hi3518E能够实现多种码流和多选分辨率及JPEG图片抓拍,支持图像3D去噪、图像增强、边缘增强等预处理功能,利于监控系统的运行。

本文针对Windows系统进行开发,依赖于其两大功能:一是完成与硬件的交互;二是为在微处理器上运行的应用程序提供可执行的环境。着重进行设备驱动程序的封装对摄像头端硬件资源的访问。针对客户端软件进行的需求分析,大致有以下三个步骤:

(1)网络摄像头要有一个设备的入网操作,并且该操作简单易行,稳定可靠。

(2)连接设备后,需要获取音频、视频数据。此步骤是对图像、网络传输、显示等技术提出的一项挑战。

(3)将移动智能手机作为移动客户端软件的载体。

使用由含有多帧环形缓存结构、DMA控制器、异步FIFO及从控制接口的软硬件接口来连接软件App和硬件摄像头,实现了从原始同步视频信号输入缓存到内存中再由VGA接口显示的预览链路,完成了视频压缩链路,实现了从原始同步视频转换成YUV三通道分量[2]。

3 结 语

本系统使用摄像头作为移动视频采集端,采用混合编码技术,并以智能手机作为移动视频客户端进行远程视频实时监控。在4G/5G时代以及智能手机不断更新换代的情况下,本监控系统将会拥有广阔的应用前景[8]。

参考文献

[1] 陈通.云存储手机视频监控系统设计[D].北京:北京工业大学,2016.

[2] 贾克斌,刘鹏宇,吕卓逸,等.基于H.264的视频编码处理技术与应用[M].北京:科学出版社,2013.

[3] 陈靖,刘京,曹喜信.深入理解视频编解码技术——基于H.264标准及参考模型[M].中国.北京航空航天大学出版社,2012.

[4] 柳春,廉东本.H.264编解码算法在视频会议中的应用[J].计算机系统应用,2015,24(4):144-147.

[5] 常志沛.基于Android的智能手机视频监控系统的设计与实现[D].大连:大连海事大学,2011.

[6] 杨飞.基于Android的家用移动视频监控系统的研究与实现[D].广州:广东工业大学,2013.

[7] 林炳炎,郑茜颖,程树英.基于Android的智能视频监控系统[J].电视技术,2017,41(4): 78-83.

[8] 孟庆博.基于Android平台视频实时监控系统的设计与实现[D].长春:吉林大学,2016.

[9] 田甜.基于云存储的Android手机视频监控系统应用设计[D].北京:北京工业大学,2015.

[10] 赵云洋.软硬件接口设计实现及其在视频系统中应用[D].西安:西安电子科技大学,2015.endprint

猜你喜欢

Android平台云存储
基于Android平台软件开发技术研究
浅析龙岩烟草业务数据与监控数据中的云存储与大数据