(021-52045911 / 13918425509)

弱电行业百科大全

简单了解一下H.264视频编码

自20世纪80年代以来,国际标准化组织/国际电工委员会制定的MPEG-x和国际电联-T制定的H.26x两大系列国际视频编码标准的推出,迎来了视频通信和存储应用的新时代。从H.261视频编码方案到H.262/3、MPEG-1/2/4等等,它们都有一个共同的目标,即以尽可能低的码率(或存储容量)获得尽可能好的图像质量此外,随着市场对图像传输需求的不断增加,如何适应不同信道的传输特性的问题变得越来越明显。因此,IEC国际电工委员会和国际电联电信两大国际标准化组织联合制定了新的视频标准H.264来解决这些问题

h.261是最早的视频编码方案。其目的是标准化视频会议中的视频编码技术和综合业务数字网上的视频电话应用。它使用的算法结合了可以减少时间冗余的帧间预测的混合编码方法和可以减少空间冗余的DCT变换。和输出码率当p值较小时,只能传输低清晰度的图像,适用于面对面的电视和电话。当p值较大(例如p>6)时,可以传输具有更好清晰度的视频会议图像。H.263建议采用低比特率图像压缩标准,这在技术上是H.261的改进和扩展,支持比特率低于64千比特/秒的应用但本质上,h.263以及后来的h.263+和h.263++已经发展成为支持全码率应用的方案。从支持多种图像格式的事实可以看出,支持亚QCIF、QCIF、CIF、4CIF甚至16CIF等格式。

H.264视频编码算法

MPEG-1标准的码率约为1.2兆比特/秒,可提供30帧CIF(352×288)质量图像。它是为视频存储和光盘播放而设计的MPEG-1标准视频编码部分的基本算法与H.261/H.263相似,还采用了运动补偿帧间预测、2D离散余弦变换、VLC游程编码等措施。此外,还引入了帧内帧(1)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,以进一步提高编码效率。MPEG-2标准以MPEG-1为基础,在提高图像分辨率和与数字电视的兼容性方面做了一些改进。例如,它的运动矢量精度是半个像素。在编码操作中(如运动估计和离散余弦变换),区分“帧”和“场”。介绍了编码可伸缩性技术,如空间可伸缩性、时间可伸缩性和信噪比可伸缩性近年来引入的MPEG-4标准引入了基于音视频对象的编码,大大提高了视频通信的交互能力和编码效率。MPEG-4还采用了一些新技术,如形状编码、自适应离散余弦变换、任意形状视频对象编码等然而,MPEG-4的基本视频编码器仍然属于一种类似于H.263的混合编码器

总之,H.261提案是视频编码的经典作品。h263是它的发展,并将在实践中逐步取代它。它主要用于通信。然而,h263的众多选项经常让用户不知所措。MPEG系列标准已经从存储介质的应用发展到传输介质的应用。其核心视频编码的基本框架与H.261是一致的。MPEG-4引人注目的“基于对象的编码”由于技术障碍仍然难以广泛应用因此,在此基础上开发的新视频编码方案H.264克服了两者的不足,引入了混合编码框架下的新编码方法,提高了编码效率,面向实际应用同时,它是由两大国际标准化组织联合制定的,其应用前景不言而喻

h264是国际电联VCEG(视频编码专家组)联合视频组(JVT:联合视频组)和国际标准化组织/国际电工委员会MPEG(运动图像编码专家组)开发的一种新的数字视频编码标准。它不仅是国际电信联盟的h264,也是国际标准化组织/国际电工委员会的MPEG-4的第10部分征求意见稿于1998年1月开始,初稿于1999年9月完成,测试模型TML-8于2001年5月制定,2002年6月第五次JVT会议通过了h.264FCD董事会它于2003年3月正式发行。和以前的标准一样,

h264也是DPCM加变换编码的混合编码模式然而,它采用了“回归基础”的简单设计,并且不需要许多选项来获得比H.263++它增强了对各种信道的适应性,并采用了“网络友好”的结构和语法,这有利于错误代码和分组丢失的处理。应用目标范围广,可满足不同速率、不同分辨率和不同传输(存储)场合的要求。它的基本系统是开放的,使用它不需要版权。

技术上,H.264标准有很多闪光点,如统一的VLC符号编码、高精度、多模式位移估计、基于4x4块的整数变换、分层编码语法等。这些措施使得H.264算法具有很高的编码效率,在相同的重建图像质量下,可以比H.263节省约50%的码率。H.264的码流结构具有很强的网络适应性,增加了错误恢复能力,能够很好地适应IP和无线网络的应用h.264的主要技术亮点如下:

(1)分层设计

h.264的算法在概念上可以分为两层:视频编码层(VCL)负责高效的视频内容表示,网络抽象层(nal)负责以网络所需的适当方式打包和传输数据VCL和NAL之间定义了基于数据包的接口。数据包和相应的信令是NAL的一部分这样,高编码效率和网络友好性的任务分别由VCL和NAL完成

VCL层包括基于块的运动补偿混合编码和一些新特征像以前的视频编码标准一样,H.264在草案中不包括预处理和后处理功能,这可以增加标准的灵活性。

nal负责使用底层网络的分段格式封装数据,包括成帧、逻辑信道信令、定时信息或序列结束信号的利用等。例如,NAL支持电路交换信道上的视频传输格式,以及使用网络传输协议(RTP/UDP/IP)的互联网上的视频传输格式。NAL包括它自己的报头信息、段结构信息和实际有效载荷信息,即上层的VCL数据(如果使用数据分段技术,数据可能由几个部分组成)

(2)高精度多模式运动估计

h264支持1/4或1/8像素精度的运动矢量6抽头滤波器可用于以1/4像素精度降低高频噪声,更复杂的8抽头滤波器可用于1/8像素精度的运动矢量。当执行运动估计时,编码器还可以选择“增强的”插值滤波器来改善预测效果在H.264的运动预测中,根据图2,宏块可以被分成不同的子块,形成7种不同的块大小模式这种灵活而详细的多模式划分更适合图像中实际运动对象的形状,并大大提高了运动估计的精度。这样,每个宏块中可以包括1、2、4、8或16个运动矢量

在H.264中,编码器被允许使用一个以上的先前帧进行运动估计,这就是所谓的多帧参考技术。例如,刚刚编码的2帧或3帧参考帧,编码器将选择能够对每个目标宏块给出更好预测的帧,并指示哪个帧用于对每个宏块的预测

(3)4×4块

h264的整数变换与以前的标准相似。残差通过基于块的变换进行编码,但是该变换是整数运算而不是实数运算,其过程基本上类似于离散余弦变换这种方法的优点是编码器和解码器允许相同的精度变换和逆变换,使用简单的定点操作方式方便。换句话说,没有“逆变换误差”转换单位为4×4块,而不是过去常用的8×8块。随着变换块尺寸的减小,运动物体的分割更加精确,不仅变换计算比更小,而且运动物体边缘的连接误差也大大减小。为了小尺寸块变换方法不在图像中较大区域的平滑区域中的块之间产生灰度差,帧内宏块亮度数据的16个4×4块(每个小块一个,总共16个)的DC系数可以经历第二个4×4块变换,色度数据的4个4×4块(每个小块一个,总共4个)的DC系数可以经历2×2块变换

h264为了提高码率控制能力,量化步长的变化被控制在大约12.5%,而不是恒定增加。在逆量化过程中处理变换系数幅度的归一化,以降低计算复杂度。为了强调颜色的保真度,色度系数采用较小的量化步长。

(4)统一的VLC·

h·264熵编码有两种方法。一种是对所有要编码的符号采用统一的VLC(UVLC:通用VLC),另一种是采用内容自适应二进制算术编码(cabac:上下文自适应二进制算术编码)CABAC是可选的,其编码性能略好于UVLC,但其计算复杂度也很高。UVLC使用无限长的码字集,设计结构非常规则,不同的对象可以用相同的码表编码。这种方法可以容易地生成码字,并且解码器可以容易地识别该字的前缀。当发生位错误时,UVLC可以快速获得重新同步

图3显示了代码字的语法这里,x0,x1,x2,...是INFO位,是0或1图4列出了前9个码字例如,数字4包含INFO01,它针对快速重新同步进行了优化,以防止出错。

(5)帧内预测

在先前的H.26x系列和MPEG-x系列标准中,采用帧间预测在H.264中,当编码帧内图像时,帧内预测是可用的对于每个4x4块(除了边缘块的特殊处理),每个像素可以通过17个最接近的先前编码像素的不同加权和(一些权重可以是0),即该像素所在的块的左上角的17个像素来预测显然,这种帧内预测不是在时间上执行的,而是在空间域中执行的,这可以消除相邻块之间的空间冗余并实现更有效的压缩。

如图4,a,b,...4x4块中的p是要预测的16个像素点,而a、b,...,p是编码像素例如,点m的值可以由(j+2k+l+2)/4或(A+B+C+D+I+J+K+L)/8等来预测根据所选择的预测参考点,有9种不同的亮度模式,但只有1种模式用于色度的帧内预测

(6)对于IP和无线环境,

草案h264包括用于消除错误的工具,以便于在错误代码和容易丢包的环境中传输压缩视频,例如移动信道或IP信道中传输的鲁棒性

为了抵抗传输误差,H.264视频流中的时间同步可以通过采用帧内图像刷新来完成,空间同步由切片结构编码来支持同时,为了便于误码后的再同步,在图像的视频数据中还提供了一定的再同步点。此外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式时不仅考虑编码效率,还考虑传输信道特性

除了利用量化步长的变化来适应信道码率之外,在H.264中,数据分割的方法经常被用来应对信道码率的变化。一般来说,数据分段的概念是在编码器中生成具有不同优先级的视频数据,以支持网络中的服务质量例如,采用基于语法的数据分区,根据数据的重要性将每一帧数据分成几个部分,从而允许在缓冲区溢出时丢弃不太重要的信息。也可以采用类似的时间数据分割方法,该方法通过使用P帧和B帧中的多个参考帧来完成

在无线通信应用中,我们可以通过改变每帧的量化精度或空间/时间分辨率来支持无线信道中较大的比特率变化。然而,在多播的情况下,不可能要求编码器响应变化的比特率。因此,与MPEG-4中采用的精细分级可伸缩性方法不同(效率相对较低),H.264使用流交换速度帧代替分级编码

h264性能测试

tml-8是h264的测试模式,用于比较和测试h264的视频编码效率。测试结果提供的PSNR已经清楚地表明,H.264的结果比mpeg-4(ASP:高级简单概要文件)和h.263++(HLP:高延迟概要文件)的性能具有明显的优势,如图5所示

h264的PSNR明显优于MPEG-4和h263++(HLP)。在6种速率的比较试验中,h264的PSNR比MPEG-4高2dB,比h263++(HLP)高3dB六种测试速率及其相关条件是:32kb/s速率、10f/s帧速率和QCIF格式。64kbit/s速率、15f/s帧速率和QCIF格式;128千比特/秒速率、15f/秒帧速率和到岸价格格式;256kbit/s速率、15f/s帧速率和QCIF格式;512千比特/秒速率、30f/秒帧速率和到岸价格格式;1024千比特/秒速率、30f/秒帧速率和到岸价格格式


相关业务