视频压缩算法的相关知识
视频压缩的基本原理,一些常见压缩算法的概念
视频压缩算法的相关知识
视频压缩基本概念
视频压缩算法的相关知识
MPEG-1
MPEG 视频压缩编码后包括三种元素:I帧(I-frames)、P帧(P-frames)和B帧(B-frames)。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换DCT( Discrete Cosine Transform )的压缩技术,这样的算法与JPEG压缩算法相似。採用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。
在保证图像质量的前提下实现高压缩的压缩算法,仅靠帧内压缩是不能实现的,MPEG採用了帧间和帧内相结合的压缩算法。 P帧法是一种前向预測算法,它考虑相邻帧之间的同样信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是依据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。採取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。
然而,仅仅有採用B帧压缩才干达到200:1的高压缩。B帧法是双向预測的帧间压缩算法。当把一帧压缩成B帧时,它依据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。B帧数据仅仅有I帧数据的百分之十五、P帧数据的百分之五十下面。
MPEG 标准採用相似4:2:2的採用格式,压缩后亮度信号的分辨率为352×240,两个色度信号分辨率均为176×120,这两种不同分辨率信息的帧率都是每秒30帧。其编码的基本方法是在单位时间内,首先採集并压缩第一帧的图像为I帧。然后对于其后的各帧,在对单帧图像进行有效压缩的基础上,仅仅存储其相对于前后帧发生变化的部分。帧间压缩的过程中也常间隔採用帧内压缩法,因为帧内(关键帧)的压缩不基于前一帧,一般每隔15帧设一关键帧,这样能够降低相关前一帧压缩的误差积累。MPEG编码器首先要决定压缩当前帧为I帧或P帧或B帧,然后採用对应的算法对其进行压缩。一个视频序列经MPEG全编码压缩后可能的格式为:IBBPBBPBBPBBPBBIBBPBBPBBPBBPBBI......
压缩成B帧或P帧要比压缩成I帧须要多得多的计算处理时间。有的编码器不具备B帧甚至P帧的压缩功能,显然其压缩效果不会非常好。
MPEG-2
MPEG 组织在1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性。MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的具体规定,编码码率从每秒3兆比特~100兆比特,标准的正式规范在ISO/IEC13818中。MPEG-2不是MPEG-1的简单升级,MPEG-2在系统和传送方面作了更加具体的规定和进一步的完好。MPEG-2特别适用于广播级的数字电视的编码和传送,被认定为SDTV和 HDTV的编码标准。MPEG-2还专门规定了多路节目的复分接方式。MPEG-2标准眼下分为9个部分,统称为ISO/IEC13818国际标准。
MPEG -2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。一帧图像内的不论什么一个场景都是由若干像素点构成的,因此一个像素通常与它周围的某些像素在亮度和色度上存在一定的关系,这样的关系叫作空间相关性;一个节目中的一个情节经常由若干帧连续图像组成的图像序列构成,一个图像序列中前后帧图像间也存在一定的关系,这样的关系叫作时间相关性。这两种相关性使得图像中存在大量的冗余信息。假设我们能将这些冗余信息去除,仅仅保留少量非相关信息进行传输,就能够大大节省传输频带。而接收机利用这些非相关信息,依照一定的解码算法,能够在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。
MPEG-2的编码图像被分为三类,分别称为I帧,P帧和B帧。
I帧图像採用帧内编码方式,即仅仅利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧使用帧内压缩,不使用运动补偿,因为I帧不依赖其它帧,所以是随机存取的入点,同一时候是解码的基准帧。I帧主要用于接收机的初始化和信道的获取,以及节目的切换和插入,I帧图像的压缩倍数相对较低。I帧图像是周期性出如今图像序列中的,出现频率可由编码器选择。
P帧和B帧图像採用帧间编码方式,即同一时候利用了空间和时间上的相关性。P帧图像仅仅採用前向时间预測,能够提高压缩效率和图像质量。P帧图像中能够包括帧内编码的部分,即P帧中的每个宏块能够是前向预測,也能够是帧内编码。B帧图像採用双向时间预測,能够大大提高压缩倍数。值得注意的是,因为B帧图像採用了未来帧作为參考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。
P 帧和B帧图像採用帧间编码方式,即同一时候利用了空间和时间上的相关性。P帧图像仅仅採用前向时间预測,能够提高压缩效率和图像质量。P帧图像中能够包括帧内编码的部分,即P帧中的每个宏块能够是前向预測,也能够是帧内编码。B帧图像採用双向时间预測,能够大大提高压缩倍数。值得注意的是,因为B帧图像採用了未来帧作为參考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。
MPEG-2的编码码流分为六个层次。为更好地表示编码数据,MPEG-2用句法规定了一个层次性结构。它分为六层,自上到下各自是:图像序列层、图像组(GOP)、图像、宏块条、宏块、块。
MPEG-4
MPEG -4于1998年11月发布, MPEG-4是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4标准力求做到两个目标:低比特率下的多媒体通信;是多工业的多媒体通信的综合。为此,MPEG-4引入了AV对象(Audio/Visual Objects),使得很多其它的交互操作成为可能:
"AV对象"能够是一个孤立的人,也能够是这个人的语音或一段背景音乐等。它具有高效编码、高效存储与传播及可交互操作的特性。
MPEG -4对AV对象的操作主要有:採用AV对象来表示听觉、视觉或者视听组合内容;组合已有的AV对象来生成复合的AV对象,并由此生成AV场景;对AV对象的数据灵活地多路合成与同步,以便选择合适的网络来传输这些AV对象数据;同意接收端的用户在AV场景中对AV对象进行交互操作等。
MPEG-4标准则由6个主要部分构成:
① DMIF(The Dellivery Multimedia Integration Framework)
DMIF 即多媒体传送总体框架,它主要解决交互网络中、广播环境下以及磁盘应用中多媒体应用的操作问题。 通过传输多路合成比特信息来建立client和server端的交互和传输。 通过DMIF,MPEG4能够建立起具有特殊品质服务(QoS)的信道和面向每个基本流的带宽。
② 数据平面
MPEG4中的数据平面能够分为两部分:传输关系部分和媒体关系部分。
为了使基本流和AV对象在同一场景中出现,MPEG4引用了对象描写叙述(OD)和流图桌面(SMT) 的概念。OD 传输与特殊AV对象相关的基本流的信息流图。桌面把每个流与一个CAT(Channel Assosiation Tag)相连,CAT可实现该流的顺利传输。
③ 缓冲区管理和实时识别
MPEG4定义了一个系统解码模式(SDM),该解码模式描写叙述了一种理想的处理比特流句法语义的解码装置,它要求特殊的缓冲区和实时模式。通过有效地管理,能够更好地利用有限的缓冲区空间。
④ 音频编码
MPEG4的优越之处在于--它不仅支持自然声音,并且支持合成声音。MPEG4的音频部分将音频的合成编码和自然声音的编码相结合,并支持音频的对象特征。
⑤ 视频编码
与音频编码相似,MPEG4也支持对自然和合成的视觉对象的编码。 合成的视觉对象包括2D、3D 动画和人面部表情动画等。
⑥ 场景描写叙述
MPEG4 提供了一系列工具,用于组成场景中的一组对象。一些必要的合成信息就组成了场景描写叙述,这些场景描写叙述以二进制格式BIFS(Binary Format for Scene description)表示,BIFS与AV对象一同传输、编码。场景描写叙述主要用于描写叙述各AV对象在一具体AV场景坐标下,怎样组织与同步等问题。同一时候还有AV对象与AV场景的知识产权保护等问题。MPEG4为我们提供了丰富的AV场景。
与MPEG-1和MPEG-2相比,MPEG-4更适于交互AV服务以及远程监控,它的设计目标使其具有更广的适应性和可扩展性: MPEG-4传输速率在4800-64000bps之间,分辨率为176×144,能够利用非常窄的带宽通过帧重建技术压缩和数据传输,从而能以最少的数据获得最佳的图像质量。因此,它将在数字电视、动态图像、互联网、实时多媒体监控、移动多媒体通信、Internet/Intranet上的视频流与可视游戏、DVD上的交互多媒体应用等方面大显身手。
H.264
H.264 是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份開始草案征集,1999年9月,完毕第一个草案,2001年5月制定了其測试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。眼下该标准还在开发之中,预计明年上半年可正式通过。
H.264和曾经的标准一样,也是 DPCM加变换编码的混合编码模式。但它採用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,採用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。
H.264的算法在概念上能够分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。 H.264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来降低高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动预计时,编码器还可选择“增强”内插滤波器来提高预測的效果。H.264中熵编码有两种方法,一种是对全部的待编码的符号採用统一的VLC(UVLC :Universal VLC),还有一种是採用内容自适应的二进制算术编码。H.264 草案中包括了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。
在技术上,H.264 标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移预计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H.264算法具有非常的高编码效率,在同样的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,添加了差错恢复能力,能够非常好地适应IP和无线网络的应用。
H.264具有广阔的应用前景,比如实时视频通信、因特网视频传输、视频流媒体服务、异构网上的多点通信、压缩视频存储、视频数据库等。H.264优越性能的获得不是没有代价的,其代价是计算复杂度的大大添加,据预计,编码的计算复杂度大约相当于H.263的3 倍,解码复杂度大约相当于H.263的2倍。
H.264建议的技术特点能够归纳为三个方面,一是注重有用,採用成熟的技术,追求更高的编码效率,简洁的表现形式;二是注重对移动和IP网络的适应,採用分层技术,从形式上将编码和信道隔离开来,实质上是在源编码器算法中很多其它地考虑到信道的特点;三是在混合编码器的基本框架下,对其主要关键部件都做了重大改进,如多模式运动预计、帧内预測、多帧预測、统一VLC、4×4二维整数变换等。
迄今为止,H.264尚未最后定稿,但因其更高的压缩比,更好的信道适应性,必将在数字视频的通信或存储领域得到越来越广泛的应用,其发展潜力不可限量。