您好,欢迎访问三七文档
1、H.264简介H.264是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,JointVideoTeam)提出的高度压缩数字视频编解码器标准,也可以称它为MPEG-4第十部分。与现有的其他标准相比,它具有以下优点:低码率:和MPEG2和MPEG4ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。高质量的图像:H.264能提供连续、流畅的高质量图像(DVD质量)。容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。网络适应性强:H.264提供了网络抽象层,使得H.264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等)。而这其中最大的优势是它具有很高的数据压缩比率——在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。2、视频压缩编码的基本原理2.1、视频信息和视频信号信息,作为人类社会的三大支柱(物质、能量、信息)之一。是客观世界中最本质的客观规律描述和分析,是人类可用的重要资源。利用人的视觉获取的信息称为视频信息,它具有很强的直观性、确定性、高效性和广泛性等优点。但同时视频信息的表现形式——视频信号,包含着大量的信息,它的内容可以是静止或活动的,可以是彩色或黑白,有时变化多、细节多,有时变化十分平坦。一般而言,视频信号信息量大,传输网络所需要的带宽相对较宽。例如:一路可视电话或会议电视信号,由于其活动内容较少,所需带宽较窄,但要达到良好质量,不压缩约需若干Mbps;又如,一路高清晰度电视信号(HDTV),由于其信息量相当巨大,不压缩需1Gbps。由此可见,视频信息虽然具有直观性、确定性、高效性等优越性能,但要传送包含视频信息的信号却需要较高的网络带宽。这就是为获得视频信息所需付出的代价。2.2、视频压缩的必要性视频信息要进行传输,就需要将其转化为视频信号,通常为视频的电信号,这种信号通过网络传送至终端用户,并在屏幕上显示。由前面所说的可知,视频信号包含的信息量大,要直接对其进行传输的话,需要很大的带宽,就像一辆庞大的货车只有在宽阔的马路上才能行驶一样。同时,要将视频信号进行直接存储,也需要很大的存储空间。单纯用扩大传输信道带宽、扩大存储容量的方法来解决这个问题是不现实的。但是,数据压缩却是个行之有效的方法,通过数据压缩手段把信息的数据量压下来,以更小的数据量传输和存储,既提高了通信信道的传输效率,又紧缩节约了存储空间。2.3、视频压缩的可能性视频压缩不仅是必要的,同时也是可能的。因为在视频数据中存在着极强的相关性,也就是说存在着很大的冗余度。冗余数据造成比特浪费,消除这些冗余可以节约码字,也就是达到了数据压缩的目的。在一般的图像和视频数据中,主要存在以下几种形式的冗余:(1)空间冗余这是静态图像存在的最主要的一种数据冗余。一幅图像记录了画面上可见景物的颜色。同一景物表面上各采样点的颜色之间往往存在着空间连贯性,但是基于离散像素采样来表示物体颜色的方式通常没有利用景物表面颜色的这种空间连贯性,从而产生了空间冗余。规则物体和规则背景的表面物理特性都具有相关性,也就是说某些区域中所有点的光强和色彩以及饱和度都是相同的,因此数据有很大的空间冗余。(2)时间冗余这是序列图像表示中经常包含的冗余。序列图像(如电视图像和运动图像)一般为位于时间轴区间内的一组连续画面,其中的相邻帧往往包含相同的背景和运动物体,只不过运动物体所在的空间位置略有不同,所以后一帧的数据与前一帧的数据有许多共同的地方。变化的只是其中某些地方,这就形成了时间冗余。(3)符号冗余符号冗余也称编码表示冗余,又称信息熵冗余。信息熵指一组数据携带的平均信息量。这里的信息量是指从N个不相等可能事件中选出一个事件所需要的信息度量,即在N个事件中辨识一个特定事件的过程中需要提问的最少次数(=log2N比特)。将信息源所有可能事件的信息量进行平均,得到的信息平均量称为信息熵。(4)结构冗余数字化图像中的物体表面纹理等结构往往存在着冗余,这种冗余称为结构冗余。当一幅图有很强的结构特性,纹理和影像色调等与物体表面结构有一定的规则时,其结构冗余很大。有些图像的纹理区,像素值存在明显的分布模式,例如,方格状的地板图案等。(已知分布模式,可以通过某一过程生成图像。)(5)知识冗余由图像的记录方式与人对图像的知识差异所产生的冗余称为知识冗余。人对许多图像的理解与某些基础知识有很大的相关性。例如,人脸的图像有固定的结构,比如说嘴的上方有鼻子,鼻子的上方有眼睛等等,这类规律性的结构可由先验知识和背景知识得到。但计算机存储图像时还得把一个个像素信息存入,这就是知识冗余。根据已有知识,对某些图像中所包含的物体,可以构造其基本模型,并创建对应各种特征的图像库,进而图像的存储只需要保存一些特征参数,从而可以大大减少数据量。知识冗余是模型编码主要利用的特性。(6)视觉冗余事实表明,人类的视觉系统对于图像的敏感性是非均匀和非线性的,它并不能感知图像的所有变化。然而,在记录原始图像数据时,通常假定视觉系统是线性的和均匀的,对视觉敏感和不敏感的部分同等对待,从而就产生了比理想编码更多的数据。当某些变化不能被视觉所感知,则忽略这些变化,我们仍认为图像是完好的。人类视觉系统的一般分辨能力估计为26灰度等级,而一般图像的量化采用28灰度等级,这样的冗余称为视觉冗余。通过对人类视觉进行大量实验,发现了以下的视觉非均匀特性:a、视觉系统对图像的亮度和色彩度的敏感性相差很大。b、随着亮度的增加,视觉系统对量化误差的敏感度降低。这是由于人眼的辨别能力与物体周围的背景亮度成反比。由此说明:在高亮度区,灰度值的量化可以更粗糙一些。c、人眼的视觉系统把图像的边缘和非边缘区域分开来处理,这是将图像分成非边缘区域和边缘区域分别进行编码的主要依据。d、人类的视觉系统总是把视网膜上的图像分解成若干个空间有向的频率通道后再进一步处理。上述各种形式的冗余中,前三种冗余:空间冗余、时间冗余、符号冗余统称为统计冗余,因为它们都取决于图像数据本身的统计特性。第一代视频编码技术是基于数据统计的、去除视频数据冗余为目的的压缩编码技术。MPEG-1、MPEG-2、H.261,H.263标准属于第一代视频编码技术。第一代视频编码技术并未考虑到信息接受者的主观特性、视频信息的具体含义和重要程度,只是力图去除数据冗余,是一种低层次的编码技术。第二代视频编码技术真正代表了视频压缩编码的方向,是一种是基于内容的编码方式。它所关心的是如何去除视频内容的冗余,认为人眼是视频信号的最终接收者,在进行视频编码时应充分考虑人眼视觉特性的影响,去除视觉冗余。MPEG-4标准就采用了基于内容的第二代视频编码技术(也有基于块的混合编码)。上述的知识冗余、结构冗余和视觉冗余都是第二代编码技术的依据。压缩编码的理论基础是信息论。从信息论的角度来看,压缩就是去除数据中的冗余。即保留不确定的信息,去除确定的信息(即可推知的信息),用一种更接近信息本质的描述来代替原有冗余的描述。2.4、视频压缩的要求图像/视频压缩编码的目的,是在保证重建图像质量一定的前提下,以尽量少的比特数来表征图像/视频信息。具体来说,就是要满足下面两个要求:必须压缩在一定的带宽内,即视频编码器应具有足够的压缩比;视频信号压缩之后,应保持一定的视频质量。这个视频质量有两个标准:一个为主观质量,由人从视觉上进行评定;一个为客观质量,通常用信噪比(S/N)表示。如果不问质量,一味地压缩,虽然压缩比很高,但压缩后严重失真,显然达不到要求;反之,如只讲质量,压缩比太小,也不符合要求。当然,在以上两个要求下,视频编码器的实现应力求简单、易实现、成本低、可靠性高,这也是基本的要求。2.5、视频压缩的方法(1)按解码重建图像和原始图像是否相同分类,分为无失真编码和限失真编码。a、无失真编码又称信息保持编码、熵编码。熵指的是具体数据所含的平均信息量,定义为在不丢失信息的前提下描述该信息内容所需的最小比特数。熵编码是纯粹基于信号统计特性的一种编码方法,它利用图像信源概率分布的不均匀性,通过变长编码来减少信源数据冗余,解码后的重建图像和压缩编码前的原始图像完全相同,没有失真。b、限失真编码又称非信息保持编码、熵压缩编码,解码重建图像和原始图像有一定差别,但是这些失真被控制在一定限度内。(2)按压缩编码算法的原理分类,分为基于图像统计特性、基于人眼视觉特性、基于内容(对象)和基于模型等方法。a、基于图像统计特性的编码方法中,有预测编码、变换编码、霍夫曼编码、算术编码、游程编码等。b、基于人眼视觉特性和基于内容的编码方法中,有亚采样、子带编码、多分辨率编码、矢量量化、形状编码、纹理编码等。c、基于模型的编码方法中,有模型基编码、语义编码等。在实际编码中,常常同时利用图像的统计特性和人眼视觉特性才能有效的编码。(3)按待编码图像的不同属性分类。以图像的光学特征来分,有单色、彩色、多光谱图像的压缩编码;以灰度等级来分,有二值图像与灰度图像的压缩编码;若以动静来分,有静止图像和运动图像序列的压缩编码。在实际的应用中,往往采用混合编码方法来达到最佳的压缩效果。3、H.264的编解码H.264视频编码标准适用于不同网络之间的视频传输,其主要原因是引入了分层结构,即将图像压缩系统分成网络提取层(NAL:NetworkAbstractionLayer)和视频编码层(VCL:VideoCodingLayer),从而实现了压缩编码与网络传输的分离,使编码层能够移植到不同的网络结构中。这样不但使得H.264对目前现存的各种网络又很强的网络友好性,而且使它对未来的网络具有很强的适应性。如下图1所示:VCL编码器VCL解码器NAL解码器NAL编码器H.320H.324/MH.323MPEG-2系统RTP/IP视频编码层网络抽象层NAL编码接口NAL解码接口NAL-VCL接口传输层图1、H.264分层结构视频编码层(VCL:VideoCodingLayer)负责高效的视频内容表示,网络提取层(NAL:NetworkAbstractionLayer)负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。VCL层是H.264的核心部分,其主要工作是对视频数据进行编码、解码,其编码输出的是VCL数据,在传输和储存之前被映射到NAL单元。NAL层在外围,它根据视频信号传输的媒介把VCL的内容封装起来,为视频编码信息提供文件头信息,安排格式以方便网络传输和介质存储,是网络等对于视频编码层是透明的。NAL的基本单位是NALU,而VCL层自上而下包括序列、图像组、图像、条带组、条带、宏块组、宏块和块,如图2所示。划分条带主要是为了适应不同传输网络的最大传输单元长度,分组是为了使数据独立于其他分组,从而实现特定的目的,比如防止误差扩散保证图像质量等。图2、VCL层图像编码结构NAL定义了数据封装的格式和统一的网络接口,数据打包在网络提取层单元中,有利于数据在网络中传输。对于面向比特流和面向数据报的传输,采用统一的数据格式,即单个字节的包头信息和多个字节是数据,如图3所示。包头信息包含存储标志和类型标志,其中存储标志用于指示当前数据属于不属于参考的帧,从而便于服务器根据网络的拥塞情况进行丢弃,类型标志用于指示图像的数据类型。图3、H.264传输的流码结构3.1、H.264编码H.264的编码原理如图4所示,编码器包含两个方向的码流分支:从左到右的前向码流分支微编码过程,从右到左的反向码流分支为重建过程。图4、H.264的编码原理框架编码器采用的是变换和预测的混合编码法。输入的帧或场Fn以宏块为单位被编码器处理。首先,按帧内或帧间预测编码的方法进行处理。如果采用帧内预测编码,其预测值
本文标题:H264简介
链接地址:https://www.777doc.com/doc-2875388 .html