基于Android的3G手机网络摄像机客户端软件设计

发布者:tetsika最新更新时间:2012-05-07 来源: eefocus关键字:MJPEG  网络摄像机  Android 手机看文章 扫描二维码
随时随地手机看文章
1 系统硬件组成与网络架构

摄像机硬件核心采用三星公司推出的基于ARM9架构的S3C2440A芯片,该处理器主频达到400 MHz可以满足实时压缩,MJPEG视频流可以达到320×240分辨率25 fps的性能要求。外围搭配64 MB SDRAM、256 MBNAND Flash,网络功能由DM9000以太网MAC控制芯片负责,摄像头模块由USB控制器控制,系统供电由3片LM71117组成,分别输出3.3 V、1.8 V、1.25 V电压,辅助外围接口构成摄像机硬件结构。S3C2440A系统硬件框图如图1所示。

网络摄像机是互联网上的TCP/IP设备,系统网络拓扑图如图2所示。其中在家庭区域内根据安防的特点在大门走廊、客厅内、阳台区域分别布置摄像机,再由网线连接到路由器,配置路由器参数映射每个摄像机独立端口与IP地址,即完成Internet接入。远端由固定位置的PC机,移动位置的3G笔记本和随身携带的3G Android手机组成,PC机可以通过WEB浏览器访问与控制网络摄像机,Android手机通过客户端实现实时访问。 


2 系统软件设计

2.1 网络摄像机软件设计

搭建摄像机需要Linux系统环境,首先移植Bootloader,对Linux 2.6.32内核进行裁剪,加载Linux UVC(USB video device class)驱动及相关驱动,将编译好的Linux系统镜像烧写到ARM板Nand Flash中,对Bootloader没置启动引导地址,即完成软件运行环境搭建。

分析网络摄像机性能需求与拓展性,须满足下列条件:

◆视频监控实时性;
◆支持多客户端同时连接;
◆图像识别算法或预留接口;
◆功能模块化满足后期开发可扩展。
因此,采用多线程架构与互斥锁机制来保证实时性、模块化的思想设计代码结构。软件程序主流程如图3所示。


其中主要实现如下功能。

①初始化Linux V4L2接口,必须按照V4L2标准结构初始化结构体,其中包括struct v412_capability cap;struct v412_format fmt;struct v412_buffer buf;struct v412_requestbuffers rb;struct v412_streamparm setfps。此外将视频设备名、视频宽度、视频高度、帧率、视频格式和抓取方法传递给函数init_videoIn(struct vdIn*vd,char*device,int width,intheight,int fps,int format,int grabmethod)实现初始化。值得注意的是众多USB camera并不支持JPEG格式视频流直接抓取,针对YUYV格式抓取却有广泛支持。后期进行图像识别算法操作时直接分析YUYV原始图像数据,将节省JPEG压缩数据转换为原始图像数据的大量运算开销,因此采用YUYV抓取模式。[page]

②创建核心图像处理线程。在该线程内实现:抓取功能。

◆UVC设备单帧抓取,uvcGrab(struct vdIn*vd)函数实现单帧YUYV格式的原始图像拷贝到内存,采用高效的mmap内存映射方法读取;

◆JPEG核心算法实现,JPEG压缩算法占用大量CPU时间,下一小节将详细讨论。

③创建套接字接口。为实现多用户同时连接网络摄像机,必须采用socket服务线程,每当有新用户连接同时产生一个新线程与之对应,实现多用户端同步监控。

④搭建基于Web浏览器访问方式的Web主页。嵌入式设备资源有限,轻量级的Web Server主要有:Boa、Httpd、Thttpd等。本设计选用开源的Boa、交叉编译Boa源码配置boa.conf文件,配置系统etc自启动shell加入Boa程序,将编写HTML页面文件放入系统中对应的www目录后即可正常工作。

2.2 MJPEG压缩算法研究与实现

MJPEG(Motion Joint Photographic Experts Group)视频编码格式,把运动的视频序列作为连续的静止图像来处理,这种压缩方式单独完整地压缩每一帧,编辑过程中可随机存储每一帧,可进行精确到帧的编辑。MJPEG单帧压缩算法为JPEG(Joint Photographic Experts Group)。人眼视觉生理特性决定眼睛对构成图像的不同频率成分具有不同的敏感度。JPEG压缩是有损压缩,但损失的部分是人类视觉不容易察觉到的部分,利用眼睛对色彩域中的高频信息部分不敏感的特点,节省大量需要处理的数据信息。一帧原始图像数据对其进行JPEG算法编码过程分两大部分:

①空间冗余度,去除视觉上的多余信息;
②结构(静态)冗余度,去除数据本身的多余信息。

JPEG编码中主要涉及包括:DCT、zigzag编码、量化、RLE编码、范式Huffman编码、DC(直流分量)的编码。JPEG编码流程如图4所示。

DCT(Discrete Cosine Transform)变换,又称离散余弦变换是可逆的、离散的正交变换。它将原始图像色彩空问域转换为频谱域。由于相邻两点像素色彩很多是接近的,压缩这些不需要的数据必须利用图像信号的频谱特性。JPEG压缩原理的理论依据是图像信号频谱线大都分布在0~6 MHz范围内,而且一幅图像内大多数为低频频谱线,而高频的谱线只占图像比例很低的图像边缘或者细微纹理细节的信号时才出现。根据这一特性,在做数字图像处理时对包含信息量大的低频谱区域分配较多的比特数,相反的对于包含信息量低的高频谱区域分配较少的比特数,达到图像压缩的目的,而图像质量并没有肉眼可察觉的降低。除了DCT变换,常用的变化算法还有:Walsh-Hadamard沃尔什哈达玛变换、哈尔变换、傅氏变换等。

DCT变换公式为: 

当u=v≠0时C(u)=1,C(v)=1。f(i,j)经过DCT变换之后,F(0,0)是直流系数,其他参数时为交流系数。经过DCT变换后一幅图像的DCT系数块集中在8×8矩阵的左上方,这里直流DC系数幅度最大,这一矩阵区域集中了图像的大部分低频频谱分量,离矩阵左上角越远的高频频谱几乎不含图像信息。变换过程本身虽然并不产生压缩作用,但是变换后的频率系数却非常有利于码率压缩。

量化是对DCT系数的一个优化过程,利用了肉眼的高频不敏感特性对数据进行大幅压缩。整个过程是简易的把频率域的每个成份除以对应的常数,并对结果四舍五入取整,整个流程的目的是减少非零的系数以及增加零值系数数目。量化是有损运算,是图像质量下降的主要因素。对于人眼对亮度与色差的敏感性不一致,分别使用亮度量化表与色度量化表。对量化后的数据采用zigzag蛇形编码,这是因为交流分量中含有大量的零值,zigzag编码可以产生更多连续的零值,对下一步使用行程编码非常有利。

行程编码(Run Length Coding)是一种根据相同数据连续重复多次的情况简化表示的算法。例如,5555333333999按照行程编码表示为(5,4)(3,6)(9,3)可以对数据,尤其是大量的零值压缩数据长度。

编码后的数据还须通过Huffman编码来压缩,Huffman编码的最大特点是使出现频率较高的数字小于8位,而出现频率低的数字大于8位,这使得数据大幅压缩。

到此数据的压缩过程结束,对压缩后的数据按照JPEG文件格式要求进行保存,加上文件开始标记Start Of Image=FFD8,文件结束标记End Of Image =FFD9,量化表标记Deftne Quanttzation Table=FFDB,霍夫曼编码表标记Ddfine Huffman Table=FFC4,帧开始标记Star Of Frame=FFC0等标记,再加上图片识别信息字节标记就最终形成完整的可用于传输或存储的JPEG帧图像,通过套接字接口不间断地发送JPEG图像即形成MJPEG视频流。

为提高CPU效率,减少进程间切换产生的开销,将压缩算法函数集成到单一线程里。JPEG核心压缩编码函数MCUcode实现如下:

其中Y1、Y2、Y3、Y4对应水平排列的4像素亮度值,CB、CR是水平排列以2像素为1单位像素的色度值。[page]

3 Android客户端设计

Android是Google公司推出的针对移动设备的操作系统,底层采用Linux内核,应用程序采用类Java语言编写,并运行于类JVM虚拟机的Dalvik虚拟机之上。该系统具有开放源码免费授权的优势,功能完善和成熟,已获得厂商的广泛支持和大量市场份额。eclipse IDE开发环境友善,因此选用Android系统作为物联网摄像机客户端开发平台。

Android程序一般由多个Activity、Intent、Content Provider、Service等程序框架组成,其中最基础的是Activity活动类,该类相当于软件运行时的一个页面,在页面之上可添加各种控件,如button按键、ImageView图片、Text boxes、Lists列表等。除此以外还负责监听系统事件,负责启动其他的Activity类。在多个Activity类之间跳转就需要用到Intent类,Intent类有两个重要部分:动作和动作对应的数据。常用的动作有MAIN、VIEW、PICK、EDIT等,动作数据则以URI形式表示。通过Intent类还能传递参数,作用类似链条串起Activity类,Activity类跳转图如图5所示。

解析视频流须先由网络获取数据流,实现的方法代码如下:

需要注意的是,在AndroidManifest.xml文件中需加上语句,表示程序拥有网络的完整访问权限。获取每帧数据后继承AndroidSDK中提供的viewr.SurfaceView类与graphic s.Canvas类,将收到的完整帧图像按队列顺序不间断地显示在视窗框架类中,对人眼视觉帧率超过5 fps时即有视频效果,到25 fps即是电影流畅度。对丁定点定位监控,经过测试出于节省带宽费用考虑设定5 fps即能满足基本需求,10 fps是较为合理参数。将编译后应用程序安装到手机中,Android实时监控截图如图6所示。


结语

本文描述了网络摄像机的软件设计与MJPEG算法原理,结合Android移动技术,开发了整套系统;并实际应用于验证系统,取得了良好结果。期望在后续工作中涉足图像识别算法、物体追踪算法、人体行为侦测算法等图像领域,使网络摄像机变得更智能。

关键字:MJPEG  网络摄像机  Android 引用地址:基于Android的3G手机网络摄像机客户端软件设计

上一篇:基于ARM的GIS煤矿安全实时监测系统设计
下一篇:基于ARM9和嵌入式Linux的电力负荷终端系统设计

推荐阅读最新更新时间:2024-03-16 12:58

iPhone 7发布了 可是我更想买安卓手机了
    iPhone 7、iPhone 7 Plus终于正式登场,有关于iPhone 7已经持续了将近一年的爆料终于尘埃落定:4.7/5.5寸两款型号、加强版摄像头(支持4K/30fps录像)、双摄像头(5.5寸)、更宽色域屏幕、 压感Home键、五种配色(新增亮黑色/黑色)、16nm A10四核处理器、32/128/256GB存储容量、IP67级别防水、3.5毫米耳机接口取消……   iPhone对于苹果来说真的是太重要的,以至于苹果在设计新一代iPhone时万分的谨慎,甚至可以说是保守,而iPhone 7依然延续了这样的风格,其外观设计变化不是特别大,只是作了进一步的调整优化。外媒纷纷表达了对新一代iPhone的不乐观情绪,今日
[手机便携]
谷歌高管:愿携手RIM打造物理键盘Android手机
    谷歌高管:愿携手RIM打造物理键盘Android手机   新浪科技讯 北京时间6月29日晚间消息,谷歌(微博)Android用户体验主管马蒂亚斯·杜阿尔特(Matias Duarte)周四在接受媒体采访时表示,他仍然希望Android手机能有物理键盘,并渴望携手RIM打造这样一款手机。   目前市面上有门类繁多的Android手机,但其中大多数不再有物理键盘,而是配备虚拟键盘。杜阿尔特在采访中说:“我仍然是物理键盘的忠实拥趸。我过去参与开发的许多产品都具有物理键盘。我认为它们现在仍有一席之地——这一切取决于设备的选择和类型。”   在加盟谷歌以前,杜阿尔特曾在Palm负责软件设计,并参与开发了Palm Pre设备,这款设备
[手机便携]
2016亚太区智能手机市场将翻番,Android大幅超越Apple
    Ovum欧文在最新的预测报告中指出,2016年时的亚太区智能手机市场规模将会是现在的两倍,达到出货量2亿台的境界。以全球来说,届时智能手机出货量将达到6亿5300万台,其中30%的出货量源自亚太市场。独立电信分析师发现,Android将会带动市场成长,而且将会成为主导市场的平台,戏剧化的大幅超越Apple,多出它20%的市场份额。     Ovum欧文预测亚太区的智能手机在2010年到2016年之间,将以年复合增长率12.5%的速度成长,而且会占领将近32%的亚太区手机市场。     Ovum首席分析师Adam Leach表示:“智能手机市场未来五年将出现显著的成长,再次于广大的手机市场中大放异彩。我们会看到智能手机软件平台
[手机便携]
追击Android,Windows 8将掀硬件规格战
    Windows 8尚未正式登场,已牵动产业链往更高规格的硬体设计进行布局。微软(Microsoft)以Windows 8反攻行动市场的意图犹如司马昭之心,为追上Android阵营不断有“机王”推陈出新的脚步,Windows 8一开始即针对硬体效能、功耗及萤幕解析度设下高规格门槛,引发一连串晶片、面板及储存方案升级效应。   拓墣产业研究所半导体研究中心副理陈兰兰提到,未来NFC与Wi-Fi Direct也将逐步成为平板装置的标配,催生更多应用加值服务。 拓墣产业研究所半导体研究中心副理陈兰兰表示,Android、Windows互争地盘,为整个电子产业注入两股活水,带来新的发展契机。尤其微软亟欲扳回在行动市场上的劣势,并继续
[手机便携]
都是安卓系统+骁龙845,中国游戏手机如何逆袭?
去年的10月份,京东携手全产业链合作伙伴在京举行“京东游戏手机产业联盟暨游戏手机标准发布会”,正式推出了业界期盼已久的游戏手机标准。此次发布会明确了游戏手机的定义,即游戏手机是京东手机细分品类之一,能够满足主流手游电竞级体验的运行需求,并且在用户体验上有针对性优化或设计的智能手机产品。 游戏手机的发展   其实游戏手机的概念由来已久,譬如早期在2003年诺基亚公司推出的一款个性手机诺基亚3300,突破其原有手机的样式,以游戏操纵方便为模板而设计,该机为世界上最早出现的非智能游戏手机。随后,诺基亚推出的N-Gage系列,开创了一条崭新的道路,对于当时方兴未艾的移动游戏产业,N-Gage的推出算得上一个大胆尝试,对移动游戏的未来具
[手机便携]
全新诺基亚6今日发布:骁龙630+原生安卓
今天全新诺基亚6即将登场,赶在发布前,有关该机的信息悉数被曝光。   数码博主@笨笨搞机带来了全新诺基亚6的更多细节,如图所示,全新诺基亚并没有采用时下流行的全面屏设计,而是传统16:9屏幕,尺寸为5.5英寸。   整机采用了6000系铝合金机身、隐藏式U型天线设计,金属中框、摄像头环形圈以及指纹识别都进行了高亮处理,颜值出众。   配置方面,它配备了康宁大猩猩玻璃,搭载高通骁龙630八核处理器,最高配备4GB LPDDR4X内存+64GB存储,拥有前置800万+后置1600万像素摄像头,运行原生安卓系统。   价格方面,该机4+32GB版售价1499元,4+64GB版售价1699元。以上价格和上一代诺基亚6一致,因此1499
[手机便携]
安卓给跪了 苹果Face ID居然大受用户好评
集微网消息,(罗明/文)在一票子安卓机们都处在滑动解锁时代的时候,苹果在iPhone5s率先给手机加上了指纹识别,经过了一两年的时间,安卓机们才跟上苹果的步伐,清一色的用上了指纹识别,本以为可以歇歇喘口气的时候,没想到苹果又整出个Face ID刷脸解锁,安卓机们这回则是搬凳子看戏。   图片来源网络 网上有段子这样说: 1.抢劫更方便了,直接把你的头按在摄像头前就可以了,不取也得取 2.以后姑娘们逛街得素颜了,毕竟化了妆都一样,刷不了就尴尬了   图片来源:搜狐 3.以后睡觉得带蒙面巾,不然媳妇趁我睡着把购物车清空了怎么办? 4.刚被打了,想打电话报警,然后识别不了怎么办?   图片来源:微博 段子虽然有些夸张,但是足够显
[手机便携]
Google:过去一年全球推出逾600款Android新手机
     过去一年全球推出超过600款Android手机,程式安装数量已突破650亿。Android生态发展方面,已有12个品牌推出Android Wear智慧手表,且有逾100种车型及改装市场采用Android Auto。 Google在本周举行的Google I/O会议上透露,过去一年来,全球手机制造商总计推出了超过600款的Android手机,且这一年的Android程式安装数量已突破650亿。 Android平台称霸全球智慧型手机市场,根据Gartner去年第四季的调查,Android于智慧型手机市场的占有率为80.7%,排名第二的苹果iOS则是17.7%。 其他有关Android生态圈的数据还包括:目
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved