当前位置:文档之家› H.264在网络视频监控系统中的应用研究

H.264在网络视频监控系统中的应用研究

课程设计论文

论文题目: H.264在网络视频监控中的应用研究

课程名称 H.264视频编码原理及应用

学院信息工程学院

专业班级应用电子技术(3)班

学号 3111002652

姓名黄增冰

联系方式 135********

任课教师郝禄国

2015 年 1 月 9 日

H.264在网络视频监控中的应用研究(一)H.264简介

H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC 动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC)而明确的说明它两方面的开发者。

H264标准各主要部分有Access Unit delimiter(访问单元分割符),SEI(附加增强信息),primary coded picture(基本图像编码),Redundant Coded Picture(冗余图像编码)。还有Instantaneous Decoding Refresh(IDR,即时解码刷新)、Hypothetical Reference Decoder(HRD,假想参考解码)、Hypothetical Stream Scheduler(HSS,假想码流调度器)。

H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1。低码率(Low Bit Rate)对H.264的高的压缩比起到了重要的作用,和MPEG-2和MPEG-4 ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。

H.264标准的主要特点如下:

1.更高的编码效率:同H.263等标准的特率效率相比,能够平均节省大于50%的码率。

2.高质量的视频画面:H.264能够在低码率情况下提供高质量的视频图像,在较低带宽上提供高质量的图像传输是H.264的应用亮点。

3.提高网络适应能力:H.264可以工作在实时通信应用(如视频会议)低延时模式下,也可以工作在没有延时的视频存储或视频流服务器中。

4.采用混合编码结构:同H.263相同,H.264也使用采用DCT变换编码加DPCM的差分编码的混合编码结构,还增加了如多模式运动估计、帧内预测、多帧预测、基于内容的变长编码、4x4二维整数变换等新的编码方式,提高了编码效率。

5.H.264的编码选项较少:在H.263中编码时往往需要设置相当多选项,增加了编码的难度,而H.264做到了力求简洁的“回归基本”,降低了编码时复杂度。

6.H.264可以应用在不同场合:H.264可以根据不同的环境使用不同的传输和播放速率,并且提供了丰富的错误处理工具,可以很好的控制或消除丢包和误码。

7.错误恢复功能:H.264提供了解决网络传输包丢失的问题的工具,适用于在高误码率传输的无线网络中传输视频数据。

8.较高的复杂度:264性能的改进是以增加复杂性为代价而获得的。据估计,H.264编码的计算复杂度大约相当于H.263的3倍,解码复杂度大约相当于H.263的2倍。

(二)H.264系统架构

2.1 H.264系统架构概述

H.264 分为 VCL(Video Code Layer,视频编码层)和 NAL(Network Abstraction Layer,网络抽象层)两层结构其编码器的基本结构如图 1 所示。与先前的一些编码标准相比,H.264 标准继承了 H.263 和 MPEG 1/ 2/ 4 视频标准协议的优点,但在结构上并没有变化,只是在各个主要的功能模块内部使用了一些先进的技术,提高了编码效率。其主要表现在:编码不再是基于8×8 的块进行,而是在 4×4大小的块上,进行残差的变换编码;所采用的变换编码方式也不再是离散余弦变换(Discrete Cosine Transform,DCT),而是一种整数变换编码;采用了编码效率更高的上下文自适应二进制算术编码(Context-based Adaptive Binary ArithmetiCoding,CABAC),同时与之相应的量化过程也有区别。

在 VCL 和 NAL 之间定义了一个基于分组方式的接口,打包和相应的信令属于 NAL 的一部分。这样,高编码效率和网络友好性的任务分别由 VCL 和 NAL 来完成。 VCL 层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样,H.264 没有把前处理和后处理等功能包括在草案中,这样可以增加标准的灵活性。 NAL 负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如,NAL 支持视频在电路交换信道上的传输格式,支持视频在 Internet 上利用 RTP、UDP、IP 传输的格式。NAL 包括自己的头部信息、段结构信息和实际载荷信息,即上层的VCL数据。

H.264获得高性能的同时,也增加了编码器的复杂度。优化H.264的目的就是要找出其中耗时最多,效率最低的部分,对其进行优化改进,以达到实用[15]。本文在X264中对编码的关键模块进行了测试,实验采用6个典型的标准测试序列:CIF格式的foreman、football、Stefan和QCIF格式的akiyo、carphone、foreman,30帧/秒,共90帧。编码主要参数为:搜索范围16,量化28,参考帧数5,帧结构PBBPBB……。测试结果如表2所示。

图2

在通常情况下,视频序列连续两帧之间的内容相差不大,甚至有很大一部分是完全相同的,相邻帧间有较强的相关性。通过运动估计和补偿可以消除这种时域相关性,使编码器输出的比特率大为降低。

2.2运动估量的概述

一般而言,运动估计越准确,则补偿的残差图像越小,编码效率也就越高,在相同码率下的解码视频就具有更好的图像质量。但是,运动估计的计算复杂度也占据了编码器的大部分时间,为了保证视频编解码的实时性,运动估计应当具有尽可能低的计算复杂度。因此如何提高运动估计算法的性能,提高其效率,使得运动估计更快速和精确一直受到学术界的研究。

总的来说,运动估计包括两个部分:整数像素运动估计和由整数像素进行插值得到的最优点的分数像素运动估计。分数像素运动估计一般采用全搜索法,1/2像素精度的搜索点数为8个,1/4像素精度的搜索点数为16个。因此,分数像素运动估计的计算复杂度非常重要。分数像素的引入,提高了运动估计的精度,输出图像的质量也有所改善,但运动估计复杂度大幅度增加。因此减少分数像素运动估计的计算量就变得十分必要。

(三) H.264的视频监控

3.1 设计总体方案

通过上面对H.264的基本结构理解,采用迄今为止最先进的H.264视频压缩标准视频文件,为基于嵌入式的多媒体应用搭建一个应用的基础平台。基于此设计思想,提出系统的总体设计框架如图3所示

图3

服务器端以RISC通用处理器为核心,由SDRAM、FLASH等存储器件和各种通信接口构成嵌入式硬件平台。通过 USBHOST接口接入摄像头外设,以捕获视频原始数据。同时设有RS232、JTAG、LAN等用于开发调试的接口。选用免费、开源的Linux操作系统以实现基本控制和网络连接功能;采用H.264对采集的视频进行压缩编码,采用UDP协议实现视频的网络传输。客户端采用H.264解码后用Directshow技术播放接收到的视频。

3.2 视频编码方案

由于视频采集和硬件平台搭建不在本范围的课程设计之内,主要是实现H.264的码。

H.264比H.263节约50%左右的码率,所以它有更好的IP、更高的压缩比和无线网络信道的适应性。H.264具有较强的抗误码特性,可适应丢包率高、干扰严重的信道中的视频传输。

H.264支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。在数字视频通信和存储领域H.264得到越来越广泛的应用。

鉴于H.264的以上优点,我们采用H264实现视频的编解码。H.264标准包含了三大开源编码器,它们分别是JM、X264、T264。

JM:特点:实现了H.264标准规定的所有特性,但其程序结构冗长,在引入各种新特性以提高编码性能时,却忽视了编码复杂度,其编码复杂度极高,实用性不强。

X264:特点:注重实用。和JM相比,在不明显降低编码性能的前提下,努力降低编码的计算复杂度,故X264摈弃了JM中一些对编码效率贡献微小但计算复杂度极高的特性。

T264:特点:和X264的出发点相似,并吸收了JM、X264、XVID的部分优点。为了选

择更佳的编码器,我们利用自己的电脑对上述三大开源编码器做了如下测试:

(1)测试环境:window7 ,4GRAM,CPU:inter2.3G

(2)编码器版本:

1)M: JM86。选用不同分辨率 qcif 和cif,所有测试序列帧率都采用30fps。

2)X264: x264-060330版本。

3)T264: 0.14版本。

(3)编码选项:

由于X264和T264是基于基本档次的,所以JM采用baseline profile。T264采用fast mode。量化步长依次选择为:24、28、32、36。

由于我们测试的是编码器本身综合编码效率的优劣,因此在Intel处理器Windows操作系统上的测试结果同样适用于ARM处理器Linux操作系统中,即:如果在Windows 7上编码器的编码效率从高到低的测试结果依次为:X264>T264>JM86,则在utu2440开发板中的测试结果同样有X264编码效率优于T264及T264优于JM86。而在Windows xp 上测试速度更快、更方便,所以选用在Windows 7 上测试,以节约开发时间。当编码器选用JM86,测试输入文件采用foreman_qcif.yuv,量化步长QP=24时。实验输出结果如图4:

实验分析:

1)PSNR: 相同输入格式下三个编码器的表现相差很小。不同输入格式下JM86 的y、u、v 差异稍大,X264和T264差异很小,尤其是y分量差异很小,最大差异为2.07db。

2)码率: Cif序列的码率是qcif序列的三倍多,qp越大倍数减少。

3)编码速度: 在同一视频序列下x264是jm86的90-300多倍,t264是x264的 1.6倍左右,对同一个编码器qcif编码速度是cif的4倍左右,而在t264下,其倍数达4.5倍左右,说明t264对低分辨率序列的编码比较有效。

4)分辨率提高n倍,为了得到相近的编码质量,输出码率和所用的编码时间也要增加近n 倍。

实验结论:

1)X264

X264和JM86相比,其编码性能和JM86相当或更好的情况下,其编码速度可以提高90-300倍。这体现了X264编码非常有效。

2)T264

T264和JM86相比,编码速度有了更大的提高,但其编码性能下降很大,除了传输带宽比较大或延时要求极其苛刻等这些特殊场合,T264(fast mode)的意义不大。

3) T264high

T264high在编码性能不如X264,而且编码速度也不如X264。总之,JM86编码效率不如T264,T264的编码效率不如X264。

基于以上结论本文采用实效性更强的X264作为编码器。

3.3 视频传输方案

视频传输可以选择TCP与UDP。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的运输层通信协议,通常由IETF的RFC 793说明。在简化的计算机网络OSI模型中,它完成运输层所指定的功能。

在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端

实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);假如发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

TCP协议一般不直接用来传送视频数据本身,但是对于视频传输中传输中的控制信息而言,TCP是最合适的。

UDP (User Datagram Protocol)是无连接的用户数据报协议,它由RFC768标准定义。是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是 IP 协议与上层协议的接口。UDP 协议适用端口分别运行在同一台设备上的多个应用程序。与TCP类似,UDP为每个来自上层的数据块加上一个UDP报头,形成UDP 消息段,与TCP相比,UDP的报头要简单得多,其中校验和是用于检查传输中是否出现错误。与 TCP 不同,UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单,UDP 头包含很少的字节,比 TCP 负载消耗少。 UDP 适用于不需要 TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。 UDP 是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。

对视频数据的传输而言(对时延敏感,但可以容忍一定的错误),UDP比TCP更为合适。尽管TCP是一个很成功的协议,但是无法满足视频传输的需要。TCP的大量确认应答使视频数据不得不因为等待应答而放弃,造成不必要的延时和更大范围的数据丢失。相比较而言,UDP只要网络流量足够,视频数据就可以源源不断的到达接收者。因此,在IP网络上传送视频数据,往往采用UDP协议,而不是TCP协议

本系统选用UDP作为传输协议。

(4)实验总结

(1)从整个系统来说,是很大的一个项目,在本次设计中,本人最主要是针对在H.264的视频编码上的一些算法测试处理,对于其他方面是一笔带过。从中自己学会了如何去学习H.264,没接触时,觉得H.264是非常让人害怕的,一旦认真学习又会觉得没那么难。

(2)H.264以高算法复杂度换取优异的编码性能,因此直接移植到嵌入式系统中,编码花费的时间较长,加上网络上的传输影响,监控效果并不理想。所以对编码器中耗时较多的分数像素运动进行了算法优化。最后根据系统资源配置和ARM处理器的特性,结合H.264视频编码的运算量大和存储访问任务繁重的特点,在程序上、算法上、存储器的访问方式上等对ARM开发平台进行了优化,从而提高编码器的执行效率,为最终实现实时编码奠定了基础。

参考文献

[1]杨牟刚.基于嵌入式Linux的网络视频监控系统设计与实现[D].桂林电子科技大学硕士论文:2008:1-12.

[2] 罗星. H.264视频采集编码系统在PXA255平台上的实现与优化[D]. 中国优秀硕士学位论文全文数据库:江苏大学硕士论文,2009:1-3.

[3] 张建江.基于嵌入式Linux的H.264视频接收系统设计[D].中国优秀硕士学位论文全文数据库:西安电子科技大学硕士论文,2008:1-25.

[4] 何华丽.基于H264的多平台视频监控系统的研究与实现[D].中国优秀硕士学位论文全文数据库:北京邮电大学硕士学位论文,2009: 1-8.

相关主题
相关文档 最新文档