《基于Android平台的视频监控系统的设计研究.pdf》由会员分享,可在线阅读,更多相关《基于Android平台的视频监控系统的设计研究.pdf(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、论文题目:基于Android平台的视频监控系统的设计研究 专 业:通信与信息系统 硕 士 生:郭永清 (签名)_ 指导教师:孙 弋 (签名)_ 摘 要 随着流媒体技术、无线网络技术以及视频压缩技术的不断进步,视频监控系统的应用日益广泛和深入,监控的规模和范围也不断扩大。基于嵌入式移动终端设备和无线网络的远程视频监控已经成为监控研究领域的热点。本文通过对视频监控系统现状及发展趋势的分析,结合理论技术的发展及监控系统性能的需求,提出了一种基于Android平台的视频监控系统设计方案,实现了监控系统的视频采集、视频压缩编码、视频网络传输及实时显示功能。整个系统开发的软件平台选用基于Linux内核的开
2、源手机操作系统Android,鉴于其良好的可开发性和移植性,该系统已经开始向工业级进军;硬件平台采用具有硬件加速功能且支持H.264视频编解码的高性能S3C6410处理器。本论文介绍了监控系统所涉及关键技术的理论知识,在此基础上提出了基于Android 平台的视频监控系统的总体设计方案,完成了监控系统各模块的设计和软件实现。该系统由视频采集端(摄像头)、视频服务器以及监控客户端构成,主要模块包括:视频数据采集模块、视频编码模块、视频实时传输模块、客户端显示模块。本监控系统的视频编码模块采用了最新的低码率视频压缩标准H.264,将H.264算法在集成芯片DSP上实现,不仅减小了信道传输容量而且提
3、高了图像质量和编码性能,达到了系统实时性、可靠性的要求;视频实时传输模块采用流媒体技术以及 Socket 网络编程,实现了基于RTP 协议的端到端的传输功能;客户端显示模块采用 VLC 多媒体播放器,实现了视频的实时显示播放。最后通过对本文进行总结,提出了后续的开发方案和计划。关 键 词:视频监控;Android;H.264 算法;RTP 传输协议 研究类型:应用研究 Subject :Design and Reasearch of Video Montioring System Based on Android Specialty :Communication and Information
4、 System Name :Guo Yongqing (Signature)Instructor :Sun Yi (Signature)ABSTRACT With the rapid development of streaming media technology,wireless communication technology and video compression technology,the video monitoring system is applied more widely and deeply,the scale and cope of the monitor is
5、expanding.Remote video surveillance based on embedded mobile terminal devices and wireless network has become a hot field of research.This article through the present situation and the development analysis of the video monitoring system,combined with the development of the theory and technology,and
6、the requirements performance of the video monitoring system,put forward one kind of design scheme based on the Android video monitoring system.Realized the video capture,video compression,video network transmission and the real-time display function of the monitoring system.The selection software pl
7、atform of the whole system based on the opening phone operating system Android with the Linux kernel,the system has begun to enter the industrial level because of the good development and portability,the hardware platform based on S3C6410 processor of high performance which has the hardware accelera
8、tion function and H.264 video decoder.This paper introduced the key technique theory knowledge of the monitoring system,raised the design scheme of the video monitoring system based on the Android platform,completed the module design and the implementation of the software.The system consists of the
9、video collection terminal(camera),video server and client.,the main module include the video gather module,the video coding module,the real-time transporting module,the client display module.The monitoring system uses the new low bit rate video compression standard H.264,which integrated in DSP not
10、only reduces the transmission capacity but also improve the image quality and coding efficiency,achieve the real-time,reliability requirements of the monitoring system,in the real-time transporting module,Socket program and realization of RTP protocol are fully discussed,in the real time video displ
11、ay module uses the VLC multimedia player.In the last,it summarizes and comes up with the subsequent development programs and plans.Key words :Video monitoring;Android;H.264 algorithm;The RTP transport protocol Thesis :Application Research 目 录 I 目 录 1 绪论.1 1.1 选题的背景及意义.1 1.2 监控系统现状及发展趋势.1 1.2.1 监控系统现
12、状.1 1.2.2 监控系统发展趋势.2 1.3 本论文所做的工作及文章结构安排.3 2 视频监控系统的相关技术.5 2.1 Android 平台.5 2.1.1 Android 系统简介.5 2.1.2 Android 的优点.5 2.1.3 Android 系统结构.6 2.2 H.264 标准简介.8 2.2.1 H.264 编码标准基本概念.8 2.2.2 H.264 标准的优点.9 2.3 H.264 标准结构.9 2.3.1 H.264 档次和级别.9 2.3.2 H.264 标准分层结构.10 2.4 H.264 标准关键模块.11 2.4.1 帧内预测.11 2.4.2 帧间预
13、测.12 2.4.3 变换与量化.13 2.4.4 熵编码.14 2.5 网络传输协议.15 2.5.1 网络传输协议标准.15 2.5.2 RTP 相关概念.16 2.5.3 RTP 数据包格式.17 2.5.4 RTP 设计原则及工作原理.18 2.6 VLC 播放器介绍.19 2.7 本章小结.20 3 视频监控系统设计方案.21 3.1 监控系统总体概述.21 3.2 监控系统设计方案.22 目 录 II 3.2.1 监控系统硬件设计方案.22 3.2.2 嵌入式操作系统选择方案.23 3.2.3 应用软件设计方案.23 3.2.3 视频数据采集和压缩编码方案.24 3.2.4 视频网
14、络传输方案.25 3.3 本章小结.26 4 视频监控系统软件实现.27 4.1Android 系统实现.27 4.1.1 Android 平台搭建.27 4.1.2 Android 应用程序结构.29 4.2 视频采集模块实现.31 4.2.1 USB 驱动移植模块实现.31 4.2.2 视频数据采集实现.32 4.2.3 视频预览界面实现.34 4.3 视频编码模块实现.36 4.3.1H.264 基本流结构.36 4.3.2 H.264 编码.37 4.3.3 X264 编码实现.37 4.3.4 JNI 技术实现.39 4.4 视频网络传输模块实现.40 4.4.1 流媒体传输系统.4
15、0 4.4.2 RTP 传输实现.41 4.4.3 Socket 网络通信模块实现.43 4.5 视频显示模块实现.45 4.6 本章小结.47 5 视频监控系统测试.48 5.1 测试目的.48 5.2 测试内容.48 5.3 测试结果.48 5.4 本章小结.49 6 结论与展望.50 致 谢.52 参考文献.531 绪论 1 1 绪论 本章主要概括介绍了论文的研究背景及意义、视频监控系统现状及发展趋势、基于 Android 系统的研究现状以及论文的内容安排。1.1 选题的背景及意义 随着Internet和网络技术的日益发展,人们对安全保障的要求不断提高,传统的以文字和图片为主的内容服务已
16、不能满足用户的需求,视频和音频的多媒体内容服务即将成为主流,这是互联网技术发展的必然趋势。通过采取嵌入式技术,不仅实现了视频监控系统的体积微小化、安装简便化、配置灵活化、另外还降低了成本。由于将视频压缩和网络功能集中到了体积较小的嵌入式设备内,通过网络对视频监控设备进行远程监控,即可获取监控视频。目前,网络视频监控已经不再是企业级客户的应用,视频监控应用将逐渐向平民化方向发展,利用视频监控的数据为大众服务,如数字化矿工系统、交通导航、旅游景点人流及景点查看等。网络视频监控系统采用现有的网络系统,由嵌入式的视频服务器和视频终端组成。嵌入式系统凭借其以应用为中心和系统可裁剪等优点在工业领域中有着广
17、泛的应用。Android作为系统式基于Java的嵌入式操作系统,运行在Linux内核之上,系统小巧而且拥有全特征。此系统凭借其应用程序良好的开放性和平台可移植性发展迅速,如将其应用在工业领域势必会极大推动工业生产效率。因此,本课题提出一种基于Android平台的网络视频监控系统方案,不仅为人们的生活带来极大的便利,而且具有良好的发展前景。1.2 监控系统现状及发展趋势 1.2.1 监控系统现状 网络视频监控系统经历了数字控制的模拟视频监控和数字视频监控两个阶段。模拟视频监控不仅系统性能稳定、技术发展成熟,而且在工业领域中得到了广泛的应用,尤其是在大、中型网络视频监控工程中的应用特别广泛;后者是
18、新近崛起的以流媒体技术、网络技术及图像视频压缩为核心的新型网络视频监控系统,该监控系统有效解决了模拟系统存在的部分弊端,但仍需进一步改善和提高。目前,国内外市场的视频监控系统正处在数控模拟系统与数字系统混合应用并逐渐向数字系统过渡的阶段。西安科技大学硕士学位论文 2(1)模拟视频监控系统,也可以称为第一代视频监控系统,出现于 20 世纪 90 年代初期,主要由摄像机、视频矩阵、监视器、录像机等组成。该监控系统以模拟方式采用同轴电缆进行传输,传输距离不能太远,而且信号质量不高,主要用于扩展能力有限的小范围内监控系统,一般只能在控制中心进行查看,并且系统的成本高。(2)20 世纪 90 年代中期,
19、随着视频压缩编码技术的不断发展产生了基于 PC 机的第二代视频监控系统。在远端视频监控现场,通过若干个摄像头、各种检测、报警探头以及数据处理设备,首先将摄像头采集到的模拟视频信号转化成数字信号,再利用专用压缩卡对数字信号进行压缩处理,通过各自的数据传输通道,与多媒体监控终端 PC 机连接,监控终端的 PC 机对视频数据进行解压后,就能够显示远端的图像。基于 PC 的视频监控系统与传统的模拟视频监控系统相比,具有图像质量高、应用灵活性好、传输距离远、数据的保存成本低等特点,并且数字化的视频数据可以通过各种方式被连接在网络计算机上共享。因此,基于 PC 的视频监控系统自出现后被广泛应用,但是该系统
20、也存在很多不足,稳定性较差、结构相对复杂、体积较大、可扩展性差。(3)到了 20 世纪 90 年代末特别是近几年来,由于网络带宽、计算机处理能力和存储内存等的迅速提高,以及各种实时视频信息处理技术的出现,加速了第三代视频监控系统,即基于嵌入式技术的网络视频监控系统的出现。基于嵌入式技术的网络视频监控系统将嵌入式技术引入到视频技术中,可以很好地解决基于 PC 的视频监控系统中存在的问题。基于嵌入式技术的网络视频监控系统的主要工作原理是:采用嵌入式实时操作系统,将摄像机传送来的视频信号数字化后由高效压缩芯片压缩,通过内部总线传送到内置的服务器。与基于 PC 的视频监控系统相比,基于嵌入式技术的视频
21、监控系统具有体积小,安装方便,备置灵活,成本低,稳定性高等特点。因此,基于嵌入式技术的网络化视频监控系统必将有良好的应用与发展前景。1.2.2 监控系统发展趋势(1)视频监控系统的发展方向 随着视频监控系统的逐渐发展,监控前端一体化、视频数字化、监控网络化、系统集成化成为视频监控系统公认的发展方向,而数字化是网络化的前提,网络化则又是系统集成化的基础,所以,视频监控系统发展的最大两个特点就是数字化和网络化。1 绪论 3(2)监控系统数字化 监控系统数字化是 21 世纪的显著特征,是以信息技术为核心的电子技术发展的必然。视频监控系统的数字化是将系统中信息流(包括视频、音频、控制等)从模拟状态转为
22、数字状态,从根本上改变视频监控系统信息采集、数据处理、传输、系统控制等方式和结构形式。信息流的数字化、编码压缩、协议的开放化,使视频监控系统与安防系统中其它各子系统间实现无缝连接,并在统一的操作平台上实现管理和控制,这也是系统集成化的含义。(3)监控系统网络化 视频监控系统的网络化意味着系统的结构将由集总式向集散式系统过渡。集散式系统采用多层分级的结构形式,具有微内核技术的实时多任务、多用户、分布式操作系统以实现抢先任务调度算法的快速响应。组成集散式监控系统的硬件和软件采用标准化、模块化和系列化的设计,系统设备的配置具有通用性强、开放性好、系统组态灵活、控制功能完善、数据处理方便、人机界面友好
23、以及系统安装、调试和维修简单,系统运行互为热备份,容错可靠等优点。系统的网络化打破了布控区域和设备扩展的地域和数量界限。系统网络化将使整个网络系统硬件和软件资源的共享以及任务和负载的共享变为可能,这也是系统集成的一个重要概念。1.3 本论文所做的工作及文章结构安排 本课题主要实现的是基于 Android 平台的视频监控系统的设计与研究,该系统集中运用了嵌入式技术、视频编码技术、网络传输技术等诸多方面的知识。在初步了解嵌入式系统理论知识的基础上,对 Android 操作系统作了较为深入的学习,根据芯片的技术参数以及平台的硬件指标,对 Android 系统在 S3C6410平台上进行移植,并在 P
24、C 的 Windows 操作系统平台下对 Android 应用程序进行设计。监控系统采用 S3C6410 开发板作为系统的硬件开发平台,指定 H.264为视频压缩编码算法、Socket 网络通信和 RTP 传输协议实现网络通信,使用VLC 多媒体播放器实现实时播放功能。作者的主要工作包括以下几点:(1)完成了整个系统的需求分析和总体设计工作,包括系统功能模块以及软硬件工作划分。系统的应用软件功能模块主要有界面模块、视频数据采集模块、视频编码模块、视频实时传输模块、VLC 多媒体播放器播放模块。(2)针对本系统视频编码模块,在熟悉整个 H.264 编码原理及算法的基础上,采用 X264 编码器,
25、实现了高编码效率、高质量视频画面的 H.264 标准视频压缩编码;针对视频实时传输模块,经过分析 RTP 设计原则及工作原理,西安科技大学硕士学位论文 4 重点实现了基于 RTP 协议的实时端到端的视频传输功能;视频显示模块通过学习 VLC 多媒体播放器的基本功能,实现了视频信息的实时播放。(3)根据对监控系统的总体设计和应用逻辑的分析,搭建了 Android 软件开发平台,编写了系统应用软件程序,实现了实时视频监控功能。最后,给出该监控系统的测试目的、内容和结果。本论文分为六章,论文的章节内容安排如下:第一章 绪论。提出了课题的研究背景及意义,介绍了视频监控系统现状及发展趋势,说明了本文进行
26、了的主要工作及论文的组织安排。第二章 视频监控相关技术。以 Android 操作系统为平台,主要从视频数据采集技术、视频编码标准、RTP 传输协议等系统所涉及到的关键技术和标准进行阐述,并对系统开发过程中所用到的一些专用技术进行了介绍。第三章 视频监控系统总体设计。描述了系统的总体结构和功能,主要对基于 Android 平台的视频监控系统的系统网络框架结构和需求进行了分析,在此基础上,给出了系统的总体设计。选择并制定处理器选型方案,设计系统硬件外围电路模块。第四章 视频监控系统各模块的实现介绍。主要包括 Android 系统的环境搭建、视频采集模块的实现、视频编码模块实现、视频网络传输模块实现
27、以及视频监控现实模块的具体实现。第五章 阐述视频监控系统的测试目的及内容,并得出测试结果。第六章 总结与展望。对本文的工作进行总结与展望并提出了后续的开发设计思想和方案。2 视频监控系统的关键技术 5 2 视频监控系统的相关技术 通过对视频监控系统现状及发展趋势的讨论分析,现代网络监控系统在实时性、稳定性、处理速度以及价格等方面相比传统的监控系统有着突出的优势,监控所采用的技术也越来越先进。本章主要从视频监控系统的开发平台、网络传输理论、视频信息处理理论等方面对系统所涉及到的关键技术和标准进行阐述。2.1 Android 平台 2.1.1 Android 系统简介 Android 是 Goog
28、le 于 2007 年 11 月发布的基于 Linux2.6 内核之上的开源手机操作系统,主要使用于便携设备,系统小巧而且拥有全特征。该平台由操作系统、中间件、用户界面和应用软件组成。Android 操作系统运行在开放的 Linux 内核之上,利用 Java 编程语言实现上层应用程序的开发,其应用程序可以调用该平台中任何的核心功能。Android 特性包括多媒体支持、加速 3D 图形引擎(基于硬件支持),SQLite 支持的数据库以及 Google提供的综合网络浏览器等。Android SDK 与其它 SDK 相比,不仅具有开放性,而且提供了各种新的 API,增加了受支持的应用程序类型。开源免
29、费的 Android SDK 使开发者可以定制自己的操作系统以达到控制终端业务的目的,为开发者提供了更多的便利。2.1.2 Android 的优点 与其他手机操作系统相比,Android 具有以下四大优点:(1)开放性 Android 与其它操作系统相比最大的特点在于其开放性。开放性包括两方面:其一,Android 以开源 Linux 内核为基础,源代码开放、应用开发人才资源丰富;其二,Android 对第三方软件开发的开放,极大的促进该系统第三方软件的开发。(2)可移植性 Android 系统具有良好的源代码可移植性和兼容性。Android 应用程序框架完全使用 Java 编程语言,不仅编程
30、简单且而可以实现跨平台运行。(3)应用程序间平等且无界限 西安科技大学硕士学位论文 6 系统的核心应用和第三方应用都是完全平等的,开发人员可以把 Web 上的数据与本地结合起来,应用程序也可以通过声明供其他应用程序使用。(4)无缝结合的 Google 应用 Google 为 Android 应用开发提供具有高效、简洁、节省资源的运行环境 Dalvik虚拟机;完美免费的开放软件 Google maps 也深受人们青睐,同时 Google 服务还包括浏览器、邮件、语音等。2.1.3 Android 系统结构 Android 作为终端操作系统,其软件层次自上而下分为:应用程序、应用程序框架、各种库和
31、 Android 运行环境、基于 Linux 内核的操作系统,其系统结构如图 2.1所示。图 2.1 Android 系统结构(1)应用程序(Application):Android 将一系列核心应用程序包(如图 2.2 所示)一起发布,所有的应用程序都使用 JAVA 语言编写,主要应用在用户界面设计方面。图 2.2 应用程序层结构(2)应用程序框架(Application Framework):Android 应用程序框架(如图 2.3所示)保证了应用程序间平等和无界限开发等特性。2 视频监控系统的关键技术 7 图 2.3 应用程序框架结构(3)系统库:Android 包含供系统各个组件使用
32、的 C/C+集合的库(如图 2.4 所示),该库通过 Android 应用程序框架为开发者提供服务。图 2.4 系统库构成(4)运行环境:Android 的运行环境由 Dalvik Java 虚拟机和基础的 Java 类库组成。每个 Android 应用程序运行在自己的进程中,所有的类经由 Java 编译器编译后,通过 SDK 中的“dx”工具转化成“.dex”格式由 Dalvik 虚拟机运行。运行环境结构如图 2.5 所示。图2.5 运行环境结构(5)Linux内核:Android系统内核(如图2.6所示)采用Linux2.6以上版本,是硬件和软件之间的抽象层,主要用于保障进程管理、安全性、
33、内存管理和驱动模型等。西安科技大学硕士学位论文 8 图2.6 系统内核结构 2.2 H.264 标准简介 H.264是由ITU-T视频编码专家组和ISO/IEC动态图像专家组联合制定的高度压缩的数字视频编解码标准。H.264标准采用跟以往标准相似的基于块的混合编码的思想,但是在具体实现上有所区别,可以获得比H.263+和MPEG4更好的压缩特性;采用“网络友好”的语法和结构,增强了对各种不同网络的适应性,有利于对无码和丢包的处理;应用目标范围广,可以满足不同速率、不同传输以及不同存储场合的需求。2.2.1 H.264 编码标准基本概念(1)编码图像和帧 H.264标准的一个视频序列由一系列的视
34、频编码图像组成。一幅编码图像既可以表示一个完整的帧,也可以表示一个单独的场。一帧视频是由一个包含偶数行的顶场和一个包含奇数行的底场交错放置而形成的。H.264标准中的帧包括三种类型:I帧(帧内编码帧)、P帧(帧间预测编码帧)和B帧(双向预测编码帧)。I帧是自带全部信息的独立帧,无需参考其它图像便可以独立的进行解码,视频序列始终都是以I帧开始的。P帧需要参考前面的I帧或P帧的不同部分才能进行编码。B帧需要同时以前面的帧和后面的帧作为参考帧进行解码。(2)视频流格式 H.264编码器支持YUV格式的视频流,其中Y代表亮度信号,U、V代表色差信号,Y、U、V 之间是相互独立的。YUV采样格式有YCb
35、Cr4:2:0、YCbCr4:2:2、YCbCr4:1:1和YCbCr4:4:4,H.264编码器编码的YUV视频流格式是YCbCr4:2:0。(3)编码片 H.264编码片共有5种类型,分别为I片、P片、B片、还有SP片和SI片。其中SP(切换P)片包含P和/或I宏块,用于不同的编码流之间的切换。扩展档次中包含了一种特2 视频监控系统的关键技术 9 殊类型的编码宏块,叫做SI宏块,SI也是扩展档次中进行切换的必备功能。2.2.2 H.264 标准的优点 H.264标准的主要目标是在相同的带宽下提供更加优秀的图象质量。其最大的优势是具有很高的数据压缩比率,在具有高压缩比率的同时还拥有高质量流畅
36、的图像。与当前的其它压缩标准相比,H.264标准具有如下优点:(1)高压缩比,低码率。H.264采用的压缩编码技术有效的节省了信道带宽、存储容量及用户的下载时间和数据流量收费。(2)图像质量好。H.264能够提供连续、流畅的高质量图像。(3)容错能力强。H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。(4)网络适应性强。H.264中增加了网络适应层,使得H.264的文件能容易地在不同网络上传输。(5)应用范围广。H.264提供了四个不同档次的Profile,在实际应用中可根据时延要求选择不同的档次。2.3 H.264 标准结构 2.3.1 H.264 档次和级别 H.26
37、4作为视频压缩编解码标准,为了适应不同场合的不同应用,规定了不同的档次。其每个档次规定了不同的语法元素和句法,适合于不同的应用场合。H.264总共有四个不同功能的档次,每个档次设定不同的参数(如采样速率、编码比特率、图像尺寸等),得到编码器不同性能的级别。(1)基本档次:利用 I 片和 P 片支持帧内预测编码和帧间预测编码,支持利用基于上下文的自适应的变长编码进行熵编码。主要用于可视电话、会议电视、无线通信等实时视频通信。(2)主要档次:采用加权预测的帧内编码和 B 片的帧间编码,支持利用基于上下文的自适应算数编码,支持隔行视频。主要用于数字广播电视与数字视频存储等。(3)扩展档次:SP 片和
38、 SI 片支持码流之间的切换,改进误码性能(数据分割)、但是不支持隔行视频和自适应算数编码。(4)高级档次:视频联合小组于 2004 年增加了高端档次,用于支持高精度拓展,西安科技大学硕士学位论文 10 该拓展支持更高的像素精度。2.3.2 H.264 标准分层结构 H.264的压缩系统(如图2.7所示),包括视频编码层(VCL)和网络提取层(NAL)两部分。VCL和NAL分别完成高效率编码和网络友好性的任务。VCL包括视频数据的压缩编码和解码,主要有运动补偿、变换编码、熵编码等压缩单元。NAL从VCL获得数据,包括头信息、段结构信息和实际载荷,并将视频数据进行封装打包后使其在网络中进行传送,
39、NAL层的引入大大提高了H.264适应复杂信道的能力。图 2.7 H.264 结构(1)视频编码层(VCL)视频编码层主要用于实现视频数据的压缩编码和解码,通常采用变换编码以及空间和时间预测的混合编码。每一帧视频数据划分为片、宏块、子块、块,这样的划分使得编码结构化、简单化。其层次结构如图 2.8 所示:图 2.8 VCL 结构(2)网络提取层(NAL)VCL 的数据只有封装到 NAL 单元中才可以进行传输和存储。NAL 封装的数据由视频编码数据和控制数据两部分构成,该层负责对视频数据进行封装打包并使其在网络中进行传送。NAL 单元格式如图 2.9 所示,NAL 头中包含了数据载荷类型,RBS
40、P 中存储了视频图像的相关信息,是 NAL 的基本传输单元。2 视频监控系统的关键技术 11 图 2.9 NAL 结构 封装于网络抽象单元的数据称之为原始字节序列载荷RBSP,是NAL的基本传输单元。其中,RBSP又分为视频编码数据和控制数据。其基本结构是:在原始的编码数据后面填加结尾比特,一个bit“1”若干比特“0”,以保证字节对齐。2.4 H.264 标准关键模块 H.264标准的关键模块主要包括:预测编码、变换与量化、熵编码等。H.264编码器在总体结构上与以往的编码器并没有太大的差别,但是在局部的编码策略上,H.264引入了新算法与特性,从而增强了压缩能力,也提高了对传输错误的抵抗力
41、。H.264标准区别于其他标准的主要技术有:(1)运动补偿块采用可变形式提高了编码率,块的大小可以从 1616,168,816,88,84,48,44 中任意选择。(2)运动矢量的精确度可达 1/4 或 1/8 像素,与整数精度的空间预测编码相比,可以提高大于 20%的编码效率。(3)采用多参考帧进行帧间预测,比单独参考帧方法可以节省 5%-10%的传输码率,并且有利于码流的错误恢复。(4)采用 44 像素块的整数变换,反变换过程中没有匹配错误问题。(5)采用基于 44 块边界的去块效应滤波器,消除块效应,从而提高了图像的质量。(6)采用三种不同的熵编码方式更有效的节省码率。2.4.1 帧内预
42、测 H.264的预测编码部分包括帧内和帧间预测两种方式,提供了多种预测模式的选择以提高编码质量。帧内预测是在空间域进行预测编码的,运用相邻块的像素对当前块进行预测,通过去除图像的空间冗余,获得更高的压缩比。帧内预测模式中,预测块是基于当前帧内完成编码和重构的块构造出的。亮度采样有9种构造44预测块以及4种构造1616预测块的预测模式。(1)44 亮度帧内预测模式 Intra_44模式分别对每个44亮度块单独进行预测,对图像部分区域的细节具有较好的描述。44亮度帧内预测模式,首先将一个宏块按照空间位置划分成16个44西安科技大学硕士学位论文 12 快,以44为单位进行预测,对于每个44块有9种预
43、测模式,其中模式0,1,3,4,5,6,7,8为8种方向的预测模式,另外一种是直流DC模式。(2)1616亮度帧内预测模式 Intra_1616模式对整个1616的亮度块进行预测,更适合于图像中平滑区域的编码。使用Intra_1616模式时,宏块中的所有亮度成分都被预测,支持4种预测模式,分别是:预测模式0(垂直预测),模式1(水平预测),模式2(直流预测),模式3(平面预测)。与Intra_44预测模式相似,只不过Intra_44预测模式是用每个边上的4个相邻点来预测44的块,而Intra_1616则是通过每个边上的16个相邻点来预测1616的块。(3)88色度块帧内预测模式 按照4:2:0
44、采样的视频序列,与一个1616亮度宏块相对应的色度块大小是88。由于人类的视觉系统对于色度变化不像对于亮度那么慢,所以色度信息相比亮度信息的重要性要差些。因此可以采用粗略的方式预测色度信息。H.264规定的帧内色度预测是基于88块的预测方式,对色度的两个分量U和V结合起来统一进行预测。2.4.2 帧间预测 帧间预测编码通过运动估计和补偿对连续帧中的时间冗余进行处理。H.264的运动估计和补偿不仅支持以往视频编码标准中的大部分关键特性,而且还灵活地添加了更多的其他功能,除了支持P帧、B帧以外,H.264还支持一种新的流间传送帧SP帧。只要码流中包含有SP帧,则可以在具有内容类似但码率和码流不同的
45、编码帧之间进行快速的切换,同时还支持随机接入和快速回放的模式。H.264的运动估计及补偿有以下4个特性。(1)不同大小和形状的宏块分割 对于每一个1616像素宏块的运动补偿可以采用不同的大小和形状,H.264支持7种运动补偿的模式。其中小块模式的运动补偿提高了运动详细信息的处理性能,减少了方块效应,提高了图像的质量。(2)高精度的亚像素运动补偿 H.263采用的是半像素精度的运动估计,而H.264则通常采用1/4或者1/8像素精度的运动估值。在要求相同精度的情况下,H.264使用1/4或者1/8像素精度的运动估计后的残差要比H.263采用半像素精度运动估计后的残差小很多。这样在相同精度下,H.
46、264在帧间编码中所需的码率也就更小。(3)多帧预测 2 视频监控系统的关键技术 13 H.264提供可选的多帧预测功能,在帧间编码时,可选5个不同的参考帧,提供更好的纠错性能,这样可以改善视频图像的质量。这一特性主要应用于以下场合:周期性的运动、平移运动、在两个不同的场景之间来回变换摄像机的镜头。(4)去块滤波器 H.264定义的自适应去除块效应的滤波器,可以处理预测环路中的水平和垂直块边缘,大大减少了方块效应。2.4.3 变换与量化 在变换方面,H.264使用了基于44像素块的类似于DCT的变换,但是如果直接采用DCT的定义进行变换,会带来两个问题:一个是需要进行浮点数操作,从而造成系统设
47、计上的复杂性;另一个是由于变换核都是无理数,而有限精度的浮点数不可能精确地表示无理数,再加上浮点数的运算可能会引入误差,这就使得在具体实现时会导致编解码的不一致。为了克服这些问题,H.264采用以整数为基础的空间变换,使得变换操作仅用整数加减和移位操作就可以完成,这样既降低了设计的复杂度,又避免了编解码不一致的问题。在H.264的量化部分,没有采用与以往相同标准的固定量化步距的策略,而是采用了可变的量化步距。量化参数QP(Quantization Parameter)增加1,量化步距增加12%,这样如果量化参数QP增加6,量化步距则加倍,其中量化参数共有53个可选值。显然,H.264更广泛的量
48、化水平,使得精确量化成为可能,提高了码率控制能力。H.264编码器的变换与量化过程如图2.10所示:图2.10 H.264变换与量化流程 图中输入为预测残差,输出为准备进行熵编码的数据,共有五类。为了更大程度的利用空间冗余,对于Intra_1616帧内预测模式,H.264在对1616的Iuma分量的16个44块进行DCT变换后,将每个44块的DC系数提取出来,组成44的Iuma DC块,西安科技大学硕士学位论文 14 对其再进行44的哈达玛(Hadamard)变换。同样,对88 chroma分量的4个44块进行DCT变换后,也将每个44快的DC系数提取出来,组成22的chroma DC块,对其
49、进行22的Hadamard变换。H.264的变换和量化优点:(1)变换的单位是44块,而不是往常的88块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换计算量化比较小,而且在运动物体边缘处的衔接误差也大为减小;(2)采用整数变换,所有操作均可用整数运算完成,不会丢失精度;(3)变换核是没有乘法运算的,即仅需要加法和移位操作即可完成,运算简单;(4)伸缩乘集成于量化中,减少了所需的乘法次数,缩短了量化时间,提高了量化效率;(5)在编码器和解码器中允许相同精度的变换和反变换,便于使用简单的定点运算方式。也就是说,这里没有“反变换误差”。2.4.4 熵编码 熵编码作为视频压缩编码处理
50、的最后一步,在H.264中采用了两种不同的熵编码方法:通用可变长编码(UVLC)和基于文本的自适应二进制算术编码(CABAC)。在H.263、MPEG等压缩编码标准中,根据要编码的数据类型如变换系数、运动矢量等,采用不同的VLC码表。H.264中的UVLC码表提供了一个简单的方法,不论符号表述什么类型的数据,都使用统一变字长编码表。其优点是简单方便;缺点是单一的码表是从概率统计分布模型得出的,没有考虑编码符号间的相关性,在中高码率时编码的效果不是很好。因此,H.264中还提供了可供选择的CABAC方法。算术编码使编码和解码两边都能使用所有句法元素(变换系数、运动矢量)的概率模型。为了提高算术编