




已阅读5页,还剩61页未读, 继续免费阅读
Android手机端远程监控系统的设计与实现优秀毕业论文.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
android 手机端网络摄像头监控系统的设计与实现 申请上海交通大学工程硕士学位论文 android 手机端手机端远程远程监控系统的设计与实现监控系统的设计与实现 学校代码 10248 作者姓名 吴晶 学号 1090379190 第一导师 戚正伟 第二导师 金邦飞 学科专业 软件工程 答辩日期 2012 年 5 月 16 日 上海交通大学软件学院 2012 年5 月 android 手机端网络摄像头监控系统的设计与实现 a dissertation submitted to shanghai jiao tong university for master degree of engineering application software design for webcam monitor system in android mobile platform university code 10248 author wu jing student id 1090379190 mentor 1 qi zhen wei mentor 2 jin bang fei field software engineering date of oral defense school of software shanghai jiaotong university may 2012 android 手机端网络摄像头监控系统的设计与实现 上海交通大学上海交通大学 学位论文原创性声明学位论文原创性声明 本人郑重声明 所呈交的学位论文 是本人在导师的指导下 独立 进行研究工作所取得的成果 除文中已经注明引用的内容外 本论文不 包含任何其他个人或集体已经发表或撰写过的作品成果 对本文的研究 做出重要贡献的个人和集体 均已在文中以明确方式标明 本人完全意 识到本声明的法律结果由本人承担 学位论文作者签名 日期 年月日 android 手机端网络摄像头监控系统的设计与实现 上海交通大学上海交通大学 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留 使用学位论文的规定 同 意学校保留并向国家有关部门或机构送交论文的复印件和电子版 允许 论文被查阅和借阅 本人授权上海交通大学可以将本学位论文的全部或 部分内容编入有关数据库进行检索 可以采用影印 缩印或扫描等复制 手段保存和汇编本学位论文 保密保密 在年解密后适用本授权书 本学位论文属于 不保密不保密 请在以上方框内打 学位论文作者签名 指导教师签名 日期 年月日日期 年月日 android 手机端网络摄像头监控系统的设计与实现 i androidandroid 手机端手机端远程远程监控系统的设计与实现监控系统的设计与实现 摘摘 要要 由于原本在 windows 平台上的用户提出希望能够在移动设备上实时查看监控影像 的强烈需求 且目前 android 手机平台上网络监控实时影像播放软件由于没有合适的文 件解析器而稀缺 因此决定开发本款软件 到目前为止 专业的监控摄像头通常支持采用 mjpeg mpeg 4 或者 h 264 格式来 封装影像数据并进行发送 mjpeg 格式的数据都是采用了 http hypertext transfer protocol 协议进行传输 当摄像头采用 mpeg 4 格式或是 h 264 格式封装视频数据时 通常采用 rtp real time transport protocol 协议进行传输 本文设计开发一款能够在 装载了 android 系统的手机上实时播放远程监控摄像头所拍摄影像的应用软件 本软件使用 java 语言实现了对摄像头通过 http 协议和单播的 rtp 协议发送的 流数据的接收 使用 http 协议获取到 mjpeg 流数据后 编写了解析的函数 将 mjpeg 流数据拆分成单张的 jpeg 图像数据 然后使用 android 自带的 jpeg 解码库进行了解 码 虽然监控摄像头使用的编码格式都是相对使用较为广泛的视频标准 但是由于实时 的视频流数据都是一边获取一边发送的 因此没有文件的长度值 这点与存储在磁盘上 的视频文件不同 由此造成播放 mpeg 4 和 h 264 的流数据时在文件解析的部分就无法 成功 导致无法正常播放 本软件使用 c 语言封装了对 mpeg 4 数据流的解析以及解码 库的调用接口 使用 java 语言实现了针对摄像头发送的 h 264 格式的 ts transport stream 流的解析工作 从视音频混合的 ts 流中剥离出视频数据并解析成 h 264 格式 解码所需的 nal network abstraction layer 单元后通过 jni java native interface 送入解码库进行解码 目前大部分的手机不能直接对摄像头捕获的实时视频流进行解码 的原因就在于没有对应的文件解析器 监控图像的播放还需要确保图像数据的正确性以及在时间上的实时性 这两者之间 存在着相互影响的因素 对于这个准确性的控制本文采用丢帧管理机制来完成 由于网 络传输环境复杂 会发生数据包丢失的情况 数据包的丢失将会导致图像解码发生错误 一旦检测发现这种情况 就需要将与之相关的数据一同丢弃 由于监控影像还需要确保 显示图像与摄像头捕获图像之间的时间差不能太大 由于设备的软件或者硬件的性能以 及网络传输能力的限制导致不得不丢弃某些来不及处理的数据 本文设计使用三个位于 android 手机端网络摄像头监控系统的设计与实现 ii 不同线程的缓冲区对主动丢帧和被动丢帧的情况采取控制 防止由于丢帧产生的解码错 误 此外 还结合了手势识别和多点触摸的功能实现了从手机端控制远端摄像头动作的 功能 由于不同厂家设计的摄像头的 api application programming interface 不同 会 造成开发出的应用程序的兼容性差 无法形成产品 本软件采用定义外部标准配置文件 来解决这一问题 关键词 android 网络传输 流媒体 视频编解码 丢帧管理 android 手机端网络摄像头监控系统的设计与实现 iii application software design for webcam monitor system inapplication software design for webcam monitor system in anandroid mobile platformdroid mobile platform abstract since the users have the strong demand use the mobile to be able to watch the real time monitoring that is used to be on the windows platform in another hand there is scarcely any real time network monitor playing software with good performance on android mobile platform as there is no proper file parser so i decided to fill the blank so far the professional surveillance camera usually supports using mjpeg mpeg 4 or h 264 standard to compress image data and send mjpeg format data are based on http protocol for transmission it used to transmit data by rtp protocol when the camera compress video data by mpeg 4 standard or h 264 standard this paper designs an application which could play real time video send by network camera the application runs on the mobile phone which use android platform this software uses java code to implement the receiver of image data that camera transmitted by following the http protocol and unicast rtp protocol the software uses http protocol to get mjpeg flow data and analysis the flow data in java layer then it splits the flow data into lots of single jpeg image data and decode the jpeg image data one by one with android own decoding library video codec of the use of surveillance cameras are relatively more widely used video standard however due to real time video streaming data to send by side to side the length of the file cannot be calculated it is different with video files which stored in the disk so that the mpeg 4 stream and h 264 stream cannot playback because file parser error the interface that parser mpeg 4 stream of data and call decoding library is coded by c the ts stream parser of h 264 which used for camera is coded by java and the software use java to split the mixing data into the audio data and the video data which parsed into android 手机端网络摄像头监控系统的设计与实现 iv nal unit then decode the nal unit data by jni decoding libraries now most of the mobile phone can t directly display the real time streaming video that the camera caught because it was no corresponding file parser playback monitoring image need to ensure the correctness of the image data and ensure the real time in time but the correctness of the image data and the real time in time are mutual restraint in this paper it would be use frame dropping manager to achieve it as the network transmission environment complex it will lost packet packet loss will lead to image decode error if found this issue it needs to discarded the related data together plus it need to ensure that the delta t between display image with cameras capture image not be too big so it has to discard some data when the software or hardware could not process it in time in this paper it design three buffer in different threads to control it for avoid the decode error which caused by frame dropping in addition this software use multi touch and gesture recognition to implement the function of control network camera action by mobile phone the different manufacturer designs the different api it will cause the application s compatibility is poor and cannot be a product in this paper define external standard configuration files to solve this problem keywordsandroid transport stream video codec frame dropping manager android 手机端网络摄像头监控系统的设计与实现 v 目目录录 1绪 论 1 1 1android 系统的市场现状及发展 1 1 2android 手机端远程监控应用的市场前景 2 1 3技术可行性 2 1 4研发流程 3 2技术准备 4 2 1android 系统的软件架构 4 2 1 1应用程序层 4 2 1 2应用程序框架层 5 2 1 3系统运行库层 5 2 1 4linux 内核层 6 2 2图像与视频编码格式 6 2 2 1bmp 6 2 2 2jpeg 7 2 2 3mjpeg 7 2 2 4mpeg 4 7 2 2 5h 264 8 2 2 6结论 8 2 3网络流式传输协议 9 2 3 1http 9 2 3 2rtp 10 2 3 3rtcp 10 2 3 4rtsp 10 3android 手机端网络监控系统的设计 11 3 1远端摄像头配置信息的获取 11 3 2流媒体影像网络数据包的获取与分析 11 3 2 1获取摄像头发送的网络数据包 12 3 2 2数据包的解析 14 3 3多媒体编解码技术 16 3 3 1多媒体编解码处理结构 16 3 3 2静态图像编码技术 19 android 手机端网络摄像头监控系统的设计与实现 vi 3 3 3动态图像编码原理 20 3 3 4多媒体解码技术 22 3 3 5mjpeg 格式 android 平台解码 23 3 3 6mpeg 4 在 android 平台上的解码 24 3 3 7h 264 格式在 android 平台上的解码 28 3 4数据准确性控制 31 3 4 1被动丢帧管理 31 3 4 2主动丢帧控制 33 3 4 3小结 35 3 5手机控制远端摄像头的动作 35 3 5 1控制摄像头的转动方向 35 3 5 2摄像头景深控制 35 3 6多个厂家不同品牌型号摄像头的兼容问题 36 4系统实现与功能测试验证 37 4 1监控画面截图 38 4 2外网摄像头连接测试 41 4 3htc dream g1 43 4 4htc nexus one 44 4 5samsung galaxy nexus 45 4 6对比 46 5总结与改进 48 参考文献 50 致 谢 52 攻读学位期间发表的学术论文目录 53 android 手机端网络摄像头监控系统的设计与实现 1 1 1绪绪 论论 2010 年之后 国内的手机行业呈现井喷的态势 随着智能手机的普及和 3g 网络的出现 it 业正式跨入了移动互联网的时代 从前 智能手机平台主要由 得到市场和手机用户们广泛认可的 symbian 系统占据主导地位 其余由有着完美 人机交互体验称号的苹果和微软公司的 windows mobile 系统 经典的 linux 以 及专注于商务领域的 palm 几分天下 然而根据调研公司 canalys 在 2011 年初的 统计 google 公司于 2007 年年末刚刚公布的 android 操作系统 1 不仅相较 2009 年同期以惊人发展速度成长了 615 还超越许多人认为历久不衰的 symbian 系 统 成为全球第一的智能手机平台 2011 年 android 系统就不止应用于智能手 机 也在平板电脑市场急速扩张 并且已经开始进入数字电视领域 在智能手机 和平板电脑市场 android 系统拥有很强的竞争力 据市场调查公司 comscore 公布的数据显示 2012 年 1 月份 android 系统在智能手机领域市场占有率达到了 48 6 另外一家市场分析机构 idc 的报告显示 2011 年第四季度平板电脑领域 android 系统的市场份额为 44 6 ipad 为 54 7 预测 2015 年 android 平板电 脑将完成对 ipad 的超越 1 11 1androidandroid 系统的市场现状及发展系统的市场现状及发展 在手机平台领域 palm os 主要用于 pda 等专业设备上 但是目前却已逐 渐失去市场占有率 symbian 拥有定制灵活的特性 这点比较受到手机制造商 和网路营运商的欢迎 相较而言 在这方面 windows ce 就比较欠缺了 但是这 些定制灵活性使得整合 symbian 手机更加困难 windows mobile 系统由于源自 windows桌面系统 因此无论是界面设计还是功能应用都几乎和pc机如出一辙 虽然在理论上 linux 系统有着最为开源的特性 给开发者发挥的空间最大 但从 近几年的发展来看 linux 系统的市场占有率一直无法与其他几家相抗衡 由苹 果公司为 iphone 开发的 iphone os 操作系统 拥有相当出色的用户体验 但该公 司的 iphone 产品过于单一 与登陆几乎全美所有移动运营商专卖店的多款 android 智能手机相比 苹果 iphone 显然并不具有市场优势 而 android 的系统内核是基于网络性能超强的 linux 因此其网络性能较其 他系统有很大优势 硬件平台的适应面也更为广阔 2 除此之外 google 还赋予 了 android 丰富的 java 接口 使得其更易于进行二次开发 3 目前 android android 手机端网络摄像头监控系统的设计与实现 2 系统正以及其强劲的势头迅速占领着手机的平台市场 1 21 2androidandroid 手机端远程监控应用的市场前景手机端远程监控应用的市场前景 目前 在 android 手机终端上对于网络监控系统的普遍应用是利用手机上装 有的摄像头硬件 再配合 wi fi 无线网络 使手机成为网络监控系统中的一个可 移动的网络摄像头 事实上 在需要专业监控的工程领域 用户是希望能够减少 人力成本 因此通常会使用专业的监控摄像头而不是使用手机作为影像捕获端 相对的 在任意时刻都能够查看到监视画面 却是大多数使用监控系统的客 户的需求 那么 利用拥有播放视频的功能 能够使用无线网络传递数据 并且 通常随身携带的智能手机作为监控影像的显示端也就拥有了广阔的潜在市场 由于目前普及的 android 平台系统 2 2 3 0 上没有包含对于实时视频流 的解析器 而且当前在使用的监控摄像头大部分都不支持手机访问模式 因此当 前大多数用户无法通过手机直接查看实时的监控影像 即便用户使用了 android4 0 以上版本的手机 也只有当连接的摄像头本身支持手机模式的情况 下 才能够通过手机查看监控的影像 相对于 android 系统占领市场的强势表现而言 其诞生的时间过于短暂 使 得 android 上的应用软件及其缺乏 另外 之前 windows 平台上的用户提出希 望能够在移动设备上实时查看监控影像的强烈需求 这与目前 android 手机平台 上网络监控实时影像播放软件的稀缺形成鲜明对比 可见开发这样一款软件 市 场前景良好 1 31 3技术可行性技术可行性 由于已经开发了基于 windows 平台的同类产品 基础功能需求确立以及摄 像头的数据准备工作和开发资料的搜集分析工作已经完成 程序编写方面也可以 进行借鉴 但是 android 系统是基于 linux 的 并且需要使用 java 语言来处理 对 api 接口的调用 与 windows 系统有着本质的区别 要将这套系统从 windows 平台移植到 android 平台 不仅需要熟悉 c c 和 java 语言 linux 系统编 译机制和编译脚本 更需要熟悉 android 系统的运作方式 api 接口 以及它的 优势和限制 4 开发在手机上运行的android应用程序 需要考虑手机硬件性能的支持情况 尤其是像播放视频这类需要消耗大量内存和系统运算的功能 对硬件设备的依赖 就更加明显 目前手机硬件速度的提升明显快于软件的研发速度 就如同几年前 android 手机端网络摄像头监控系统的设计与实现 3 市场上还没有 android 手机一样 虽然早期的手机可能无法满足实时视频播放的 要求 但是目前市面上销售的绝大部分手机的硬件性能完全可以符合视频播放的 要求了 通过手机播放远端摄像头的实时监控画面 还需要涉及到网络传输的问题 之前开发的基于 windows 平台的产品 是设计使用日本的普通家用宽带网络或 者是专用光纤传输图像数据信号 因此并未特别针对数据信号的传输速度做优 化 但是手机的网络信号传输性能明显无法与普通的家用网络相提并论 数据信 号的实时性同步处理就显得尤为重要 即便如此 这款软件也必须在拥有良好的 网络通讯性能的情况下才能够发挥出应有的表现 1 41 4研发流程研发流程 要开发这款运行于 android 手机平台的网络摄像头监控系统首先需要了解 android 系统的架构组成 理解在 android 系统中数据流转的方式和过程 对需 要用到的编程语言有所准备 本款系统的最终目的是在手机端显示解码后的视频 图像 因此需要熟悉相关的视频编码与图像的格式 主要是摄像头使用的 mjpeg mpeg 4 和 h 264 格式 软件需要通过网络获取远端摄像头发送的数据 只有预先了解了相关的网络协议才能够准确地获取到正确的数据 以上内容在本 文的第 2 章进行了介绍 本款android手机端网络监控系统需要实现通过网络获取远端摄像头发送的 实时监控图像并显示在搭载了 android 平台的手机终端上 并且可以通过触控手 机屏幕对远端摄像头的动作进行控制 首先要做的是从远端摄像头获取到相关配 置信息后 根据配置信息接收摄像头发送的网络数据包 并进行解析重组成完整 的流媒体数据 得到流媒体数据后就可以根据相关的流媒体标准对数据进行解析 和解码 然后将解码后的图像显示到手机屏幕上 其中要注意的是需要特别对监 控图像的实时性和准确性进行控制 以确保显示的监控图像与摄像头端发送的图 像的一致性和同步性 详细的设计方案在本文的第 3 章进行了详细的叙述 关于 本款监控软件对于多个厂家不同品牌型号的摄像头的兼容性问题 本文在第 3 章的最后一个小节也给出了解决的方案 一款软件的形成不仅仅需要理论上的设计更需要经受实践的检验 在本文的 第 4 章使用图片 列表和图表总结了使用 3 款搭载了不同 android 版本的手机在 两种不同网络环境下的测试结果 至此软件的初始版本的研发基本结束 在本文的第 5 章总结了本软件实现的功能和使用的技术 并提出了软件将来 改进的方向 以便逐步完善 android 手机端网络摄像头监控系统的设计与实现 4 2 2技术准备技术准备 2 12 1androidandroid 系统的软件架构系统的软件架构 从图 2 1 的 android 系统架构图可以很清晰地看出 android 的系统架构和 其操作系统一样 采用了软件堆层 software stack 又名软件叠层 的架构 分 为四个层 从高到低分别是应用程序层 应用程序框架层 系统运行库层和 linux 核心层 其中最底层的 linux 内核只提供了基本的功能 android 另外提供了 sdk software develop kit 软件开发包 以及上层封装好的 java 接口 api application programming interface 应用程序编程接口 软件开发商和个人 用户都可以使用这些开放的接口和开发包自行开发需要的应用软件 5 图 2 1 android 系统架构 fig 2 1 android system architecture 2 1 12 1 1应用程序层应用程序层 顾名思义 是放置应用程序的层 android 平台发布的时候会带有部分必要 的核心应用程序 如短信 地图 浏览器 联系人管理程序等 这部分的应用程 android 手机端网络摄像头监控系统的设计与实现 5 序以及开发者想要实现的各种应用 都是在这一层上实现 在这一层上开发应用 程序 主要通过编写 java 语言来调用 android 的 api 接口来实现 如果是相对 复杂或者是对系统开销较大的运算等 也会使用 c 来编写 然后利用 java 语言的 jni java native interface java 本地调用 机制来进行调用 6 2 1 22 1 2应用程序框架层应用程序框架层 这一层包含了核心应用程序所使用的 api 框架 不同于 window 平台上的应 用程序的概念 android 采用了无边界程序设计的理念 它更多的是强调提供组 件 而不是一个个完整的应用的概念 这种设计理念突出请求和服务 突出组件 个体 弱化边界 使得应用开发者看到的是一个个组件个体 这些组件个体可以 根据所需直接拿来拼装成一个新的应用 7 又由于组件是自由独立的个体 使得 一个应用程序可以直接请求使用其他应用的组件 同时也使用户可以方便地替换 组件 这种设计使得组件的重用性能得到了很好的发挥 2 1 32 1 3系统运行库层系统运行库层 android 的系统运行库层包括了 android 程序库和 android 运行库两个部分 android 程序库是一些 c c 库 这些库通过 android 应用程序框架为开发者提 供服务 android 运行库是指 android 所包括的一个核心库 这个核心库提供了 java 编程语言核心库的大多数功能 8 android 程序库又被称作为硬件抽象层 这个层实际上就是对 linux 内核驱 动程序的封装 它向上提供接口 并且屏蔽低层的实现细节 也就是说 android 把对硬件的支持分成了两层 一层放在用户空间 一层放在内核空间 其中 硬 件抽象层运行在用户空间 而 linux 内核驱动程序则运行在内核空间 从技术实 现的角度来说 其实完全可以把硬件抽象层和内核驱动整合在一起放在内核空 间 但是由于 linux 内核源代码版权遵循 gnu 通用公共许可协议 gnu license 使用了遵循这种许可协议的代码 在发布产品时 也必须公布源代 码 那么如果把对硬件支持的所有代码都放在 linux 驱动层 那就意味着发布的 时候也需要把驱动程序的源代码一起公开 而公开驱动程序的源代码就意味着把 硬件的相关参数和实现都公开了 如今智能手机市场的竞争如此激烈 对于手机 生产厂商来说 公布硬件的相关参数和实现无疑会造成非常巨大的损害 如果 android 采用了这种将对硬件的支持逻辑都放在内核空间的方式 大多数的手机 生产厂商都会对这个新系统产生抵触的心理 失去了硬件支持的系统 那就变成 android 手机端网络摄像头监控系统的设计与实现 6 了一纸空谈 所以从商业的角度出发 android 增加了这个硬件抽象层 这样它 的源代码版权就可以选择遵循无须发布源代码的 apache license 9 而不是 gnu license apache license 同样鼓励代码共享和尊重原作者的著作权 同样允许进 行代码修改再发布 只需要在延伸的代码中 修改和有源代码衍生的代码中 写 明原来代码中的协议 商标 专利声明等信息 遵循 apache license 就可以兼顾 平台的开放性以及硬件厂商的利益 因此 android 才会想到把对硬件的支持分 成硬件抽象层和内核驱动层 内核驱动层只是提供简单的访问硬件的逻辑 至于 具体从硬件中读到了什么或者写了什么到硬件中去 则都放到了硬件抽象层中 如此一来 android 放在内核空间的驱动程序对硬件的支持就是不完整的 这也 是为什么说 android 是一个开放系统而不是开源系统的原因 2 1 42 1 4linuxlinux 内核层内核层 android 的核心系统服务是基于 linux 2 6 内核 10 同时 linux 内核也作为 硬件和软件栈之间的抽象层 它是一个增强的 linux 内核版本 除了修改部分 bug 外 它还提供了用于支持 android 平台的设备驱动 并且由于拆分出了硬件 抽象层 android 被 linux 的主版本树排除在外 因此可以说 linux 是 android 的本质 但 android 并不完全是 linux 2 22 2图像与视频编码格式图像与视频编码格式 视频影像是由一系列连续的静态图像组合而成 11 根据人眼的影像迟滞原 理将这一系列连续的静态图像以一定的速率进行播放 就形成了动态的视频影 像 因此 不同的视频影像格式是建立在对静态图像的处理方式不同的基础之上 的 2 2 12 2 1bmpbmp bmp 是一种与硬件设备无关的图像文件格式 它采用位映射的存储方式将 图像完整地进行储存 这种存储方式没有对图像进行压缩 因此 除了图像的位 深可以在存储前进行选择以外 储存下来的图像不会有任何的损失 这样也意味 着生成的图像文件将会相当庞大 但也由于 bmp 的这种特性 通常会将压缩过 的图像文件转换成 bmp 的格式之后直接根据其中的位图数据信息将颜色绘制到 显示设备上 从而得到显示出来的图像 android 手机端网络摄像头监控系统的设计与实现 7 2 2 22 2 2jpegjpeg jpeg 是一种支持 8 位和 24 位色彩的针对静态图像的压缩位图格式 由于他 的压缩比可以自由进行设置 因此比较适合在网络上传输 是非常流行的图形文 件格式 但它是一种有损压缩格式 虽然能够将图像压缩在很小的储存空间 但 图像中重复或被判定不重要的资料会被丢弃 一旦将压缩比设置得稍大些 还原 出来的图像上的锯齿就会很明显 因此在对还原图像的清晰度有较高要求的场 合 jpeg 格式通常就不会被列入选择的范围了 2 2 32 2 3mjpegmjpeg mjpeg 就是运动静止图像压缩技术 它被广泛地应用于非线性编辑领域 它实际上是把运动的视频序列作为连续的静止图像来处理 类似于电影胶片的处 理方式 mjpeg 实际上只是对于视频序列中的每一个单张图片进行 jpeg 的编 码压缩处理 然后添加上头尾信息直接存储 这种压缩方式单独完整地压缩每一 帧 使得在编辑过程中可随机存储每一帧 但也由于没有进行帧与帧之间的压缩 所占的存储空间相对较大 12 而且这种压缩方式并不是一个完全统一的压缩标 准 不同厂家的编解码器和存储方式并不相同 因此 mjpeg 格式现在的应用并 不广泛 但是由于其单独完整压缩每一帧的特性 在视频监控领域 mjpeg 格 式是摄像头必须支持的基本格式 2 2 42 2 4mpegmpeg 4 4 mpeg 格式是一系列由动态图像专家组所制定的视频格式标准 其中 mpeg 4 是 1998 年 10 月通过的一种基于内容的多媒体数据压缩编码国际标准 13 它与传统视频编码标准的最大不同在于第一次提出了基于对象的视频编码 新概念 它不再使用宏区块做图像分析 而是以图像上的个体作为变化记录点 因此使用 mpeg 4 编码 即使是在图像变化速度很快 码率不足时 也不会出 现方块画面 mpeg 4 视频算法的核心是支持基于内容 content based 的编码和解码功 能 也就是支持对场景中使用分割算法抽取的单独的物理对象进行编码和解码 这对于视频编码技术的发展方向及广泛应用都具有特别重要的意义 为了实现预 想的内容及交互等功能 mpeg 4 标准引进了一个叫做 视频对象面 video object plane 简写为 vop 的概念 14 它假设每帧图像被分割成许多任意形状 的对象 每个对象都有可能覆盖描述场景中感兴趣的物理对象或者内容 然后 android 手机端网络摄像头监控系统的设计与实现 8 mpeg 4 标准单独对 vop 的形状 运动和纹理信息进行编码和传送 这就构成 了一个单独的视频对象层 video object layer 简写为 vol 此外 mpeg 4 还会将标识每个 vol 的信息也包含在编码后的数据流中 这些信息中也包括各 种 vol 的视频图像在接收端应该如何进行重新组合的信息 以便接收端能够重 构出完整的原始图像序列 基于这种结构设计 客户端就可以对每个 vop 进行 单独解码 从而提供了管理视频序列的灵活性 这种格式目前主要应用于网络上的视频 音频流 包括语音的传送 视频电 话 以及电视广播 2 2 52 2 5h 264h 264 h 264 是 mpeg 4 标准所定义的新格式 也称作 mpeg 4 的第十部分 是 由 itu t 视频编码专家组 vceg 和 iso iec 动态图像专家组 mpeg 联 合组成的联合视频组 jvt joint video team 提出的高度压缩数字视频编解码 器标准 15 它具有预测编码 逐行和隔行视频编码 图像分割为宏块和更小部 分以及时域冗余削减的特征 它比 h 263 拥有更高的编码效率 同时能够在较低 的带宽上提供高质量的图像传输 它还能够根据不同的环境使用不同的传输和播 放速率 并且提供了错误处理工具 可以很好地控制或消除丢包以及误码 这一 系列的特性使得 h 264 格式正在成为专业监控摄像头领域的下一个新宠 摄像头处于低光照的环境中时 捕获的图像质量会受到环境中干扰因素很大 的影响 容易出现较多的噪点 在通常情况下 由于视频压缩算法的效率与图像 在时间上的相关性有关 这种随机产生的噪点就会令视频的压缩效率大大降低 甚至可能造成编码后的码流成倍上升 而 h 264 则通过采用两种处理方法来降低 这种情况对压缩算法的影响 它先采用了高级图像预处理的方法 减少低光照的 环境下噪点的产生 再运用实时滤波技术将信号中的干扰在进行压缩动作之前就 已经先被剔除 这样就能够在保证了数据压缩比的同时使得压缩还原后的图像质 量得到了很大的提高 2 2 62 2 6结论结论 以上介绍的这些图像与视频编码格式是当前监控摄像头生产厂商通常选择 使用的图像数据封装格式 它们之间的区别对比请参见表 2 1 android 手机端网络摄像头监控系统的设计与实现 9 表 2 1 图像与视频编码格式对比 table 2 1 comparison of image and video codec format 格式 对比项 bmpjpegmjpegmpeg 4h 264 静态图 视 频格式 静态图像静态图像视频格式视频格式视频格式 压缩方式无损自 定 义 压 缩比 帧内压缩 帧 间 不 压 缩 面向对象 帧 内 帧 间 分别压缩 帧 间 预 测 压缩 清晰度最清晰压 缩 比 高 时 锯 齿 明 显 压 缩 比 高 时 锯 齿 明 显 单 个 画 面 清 晰 度 较 高 动 作 连 贯 性 上 的 清 晰度较高 占用空间大可 根 据 压 缩比调节 大较小小 摄 像 头 使 用 单张截屏所 有 机 型 都支持 大 部 分 机 型支持 最 新 部 分 机型支持 2 32 3网络网络流式传输协议流式传输协议 任何需要在网络上进行传输的数据都要依照特定的规则进行封装 然后才能 进行传输 这种封装的方式称作传输协议 2 3 12 3 1httphttp 超文本传输协议 是最常见的网络传输协议 是客户端和服务器端之间进行 交互的一种标准 它采用了请求 响应的模型 客户端向服务器发送一个请求信 息 在这个请求信息的头部包含了请求的方法 url uniform universal resource locator 的缩写 协议版本 以及请求修饰符 客户信息和内容等 服务器收 到请求后将会以一个状态行作为响应 响应的内容包括消息协议的版本 成功或 者错误编码加上服务器信息 实体元信息以及可能的实体内容 16 通常所说的 http 消息包括客户机向服务器的请求消息和服务器向客户机的响应消息 android 手机端网络摄像头监控系统的设计与实现 10 2 3 22 3 2rtprtp 实时传输协议 用于网络上针对多媒体数据流的传输 rtp 协议为数据提供 了具有实时特征的端对端的传送服务 17 例如使用组播或单播网络服务的交互 式音 视频或者模拟数据 rtp 也可以与其他适合的底层网络或传输协议一起使 用 如果底层网络提供组播方式 那么 rtp 可以使用该组播表传输数据到多个 目的地 2 3 32 3 3rtcprtcp 实时传输控制协议 可以利用它实现使用客户端对服务器上的音 视频流进 行播放 录制等操作请求 该协议通过 rtsp 协议实现了在客户端应用程序中对 流式多媒体内容的播放 录制等操作 rtp 和 rtcp 一起提供流量控制和拥塞控 制服务 2 3 42 3 4rtsprtsp 实时流协议 建立并控制一个或几个时间同步的连续流媒体 比如音频和视 频 虽然有可能发生连续媒体流与控制流的交叉 但由于 rtsp 本身并不发送 连续流 rtsp 仅仅充当多媒体服务器的网络远程控制 rtsp 还提供了一个可 扩展的框架 用以实现实时数据的受控 按需传送 rtsp 用于控制多个数据发 送会话 提供了选择发送通道 如 udp tcp 等 的方式 并且提供了选择基 于 rtp 的发送机制的方法 android 手机端网络摄像头监控系统的设计与实现 11 3 3androidandroid 手机端网络监控系统的设计手机端网络监控系统的设计 3 13 1远端摄像头配置信息的获取远端摄像头配置信息的获取 由于监控摄像头传输的数据格式并没有一个统一的标准 因此如果要获取并 解析摄像头传输的数据以及进一步控制摄像头的动作 就必须要知道摄像头内部 的一些命令及其相关的参数等信息 这些信息可以通过查阅每个摄像头对应的开 发文档来得到 这些开发文档可以直接在摄像头生产商的官方网站获取 是公开 的文档 不同型号的摄像头所支持的数据传输格式各不相同 到目前为止 专业的监 控摄像头通常支持采用 mjpeg mpeg 4 或者 h 264 格式来封装影像数据并进 行发送 摄像头设计时根据针对的市场领域的不同 通常只支持这三种格式中的 一种或两种 但是即使能够对这三种格式都支持的机型 例如测试使用的松下 bl c210 型号 也不能够在同一种配置的情况下同时支持这三种格式的传输 而 是采用了配置切换的方式 用户如果要获取mpeg 4格式或者h 264格式的数据 需要对摄像头本身进行配置 一种配置信息只能支持 mpeg 4 或者 h 264 格式 两者不可兼得 这就给应用软件的开发带来了麻烦 在需要获取摄像头影像数据 的应用软件方面 如果希望获取 h 264 的数据 但是摄像头方面当时的配置为 mpeg 4 的格式 那就无法获取正确的数据 并且这种情况摄像头方面并不会对 应用程序返回信息告知是配置错误 因此一旦发生这种状况 在应用软件方面很 难利用出错信息对软件的行为做出正确的判断和响应 那么 是否可以在远端对 摄像头的配置信息直接进行修改 使摄像头能够根据软件的期望进行动作呢 摄 像头的确提供了对其进行远端设置的接口 但是由于专业监控摄像头使用时 通 常需要支持多个客户机器对其采集的数据进行访问 尤其是手机上的应用更不能 对其他客户机的应用产生影响 如果一旦对摄像头的配置进行了设置 那么所有 其他原本能够正常获取摄像头数据的客户机器都会因此而出现错误 因此 在设 计从手机上获取摄像头监控影像的功能时 需要在请求摄像头发送数据之前就先 获取摄像头当前的配置信息 用以判断哪些格式是当前摄像头配置允许使用的 获取摄像头当前配置信息的接口也可以从官方的开发文档中查到 3 23 2流媒体影像网络数据包的获取与分析流媒体影像网络数据包的获取与分析 摄像头捕获的影像数据需要通过网络传输到手机上才能进行显示 大部分的 android 手机端网络摄像头监控系统的设计与实现 12 摄像头 特别是较为早期生产的摄像头 通常并不会特别针对手机进行图像的 处理和发送 但是庞大的视频图像数据对于手机的网络和硬件处理器都是一个巨 大的挑战 幸好摄像头大多支持多种分辨率的数据发送 因此在获取影像数据之 前 先根据官方开发文档所提供的信息 请求适合手机的分辨率显得尤为重要 如果没有注意这一点 不论之后的网络传输处理或是视频解码部分如何进行优 化 都将会发现视频图像的响应异常缓慢 也有个别型号的摄像头不支持在请求 图像信息时附带分辨率参数 这种需要在摄像头端预先配置分辨率的机型 显然 不适合使用手机进行连接 更改分辨率将会对其他需要连接的客户设备造成影 响 如果不将分辨率修改到合适手机的大小 在使用手机进行连接的时候 手机 使用的网络首先需要负担大量的数据传输任务 可能在这个传输的阶段就已经造 成拥塞和延迟 在手机接收到数据之后 还需要对图像进行缩放变换以便适应手 机屏幕的大小 原始图像越大 缩放变换所需要的空间和时间的开销也就越大 画面的延迟和停顿都会非常明显 最终显示在手机上的播放效果将无法满足客户 观看的要求 因此这一类的摄像头将不列入手机版监控摄像头播放控制软件的支 持列表 3 2 13 2 1获取摄像头发送的网络数据包获取摄像头发送的网络数据包 摄像头用来发送视频图像的网络传输协议总共有四种 http r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国美术史试题及答案
- 2025年飞行执照测试题及答案
- DB65T 4777.2-2024 社区视频信息结构化处理系统 第2部分:接口协议要求
- 幼资面试题库及答案
- 高速防护栏施工劳务合同(3篇)
- 2025公务员英雄面试题及答案
- 2025公务员天灾面试题及答案
- 餐饮连锁厨师团队合作协议
- 影像专业面试题目及答案
- 2025年中医基础理论试题及答案
- 油脂脂肪酸组成的测定内标法58课件
- 光存储技术革新-洞察及研究
- 浙江科技大学《高等数学Ⅱ》2025-2026学年期末试卷(A卷)
- 电影鉴赏教学课件
- 跨境贸易背景下非遗工艺产业的机遇与挑战
- (高清版)DB11∕T 2456-2025 消防安全管理人员能力评价规范
- 2025至2030苯基吡唑类杀虫剂行业市场发展分析及发展前景报告
- 老年病贫血护理
- 第五单元晚清时期的内忧外患与救亡图存(单元复习课件)-高一历史(中外历史纲要上册)
- 眼科常见疾病及其用药
- 2025年农村饮水安全项目社会稳定风险监测与评估报告
评论
0/150
提交评论