3.2.2压缩:缩小比特率
数字化会产生相当高的数据率,数据量很大。应用ITU-R BT601-5标准的4∶3电视视频信号的比特率是270Mb/s,每小时的视频就有121.5GB。为了缩小比特率,从而降低带宽及存储的要求,要采用压缩技术。压缩通过去除比特流中的冗余数据来减少比特数。减少媒体中的某些属性,接收器(如人的感官)是很难察觉到这些信息的缺失的。无损压缩和有损压缩是可以区别出来的。对于无损压缩,解压后的数据和原始数据完全一致;而对于有损压缩,解压后的数据流和原始数据不一样,因为某些信息被删除或者近似化了。
压缩技术可以分为熵编码、源编码和混合编码方案。熵编码是一种无损压缩技术,而且不使用任何特殊媒体或者流式特性。在熵编码中,数据被认为只是一系列的比特。游程编码替代了实际的编码模式,它用跟随在码后的标记(只需要一次)和其出现的次数代替了序列。因为游程编码模式有一个最小步长,因此只有重复次数超过最小步长要求的部分才会被编码。很明显,此时只有重复超过3个字母的码适合用游程编码法。其他的熵编码形式有向量法、模式置换法、霍夫曼编码法和算术编码法。
源编码法(和熵编码法相反)利用了人类感官的特性(如眼睛和耳朵)。与原始信号相比,源编码法压缩质量有所下降,因此这种方法是有信息丢失的,但却可以保持较高的压缩率。例如,在全部声音内容中,删除人耳无法听到的部分音频信号,或者对视频信号中的色彩信号(而不是亮度信号)进行二次抽样(这源自于人类视觉对明暗程度比对色彩更加敏感)。更具体的例子是插值和转换编码(把数据转换到另外一种更适合压缩的数学域)。
大多数压缩标准采用混合编码技术,例如,结合熵编码和源编码的JPEG、H.261、MPEG-1、MPEG-2和MPEG-4等。根据不同的标准和目的要采用不同的压缩技术。
对于连续媒体,压缩方案有时候也利用连续数据流中的空间冗余信息和发生在相邻信息单元中的临时关系。在这种情况下,不是整个对象被编码,而是来自帧之前或之后的表示相同信息单元的相关信息被编码(即对象上存在变化和差别的相关信息单元才被编码)。例如对于视频来说,有些帧并不是完整的帧,只有这个帧和其他1~2个帧的不同处被编码。因此,为了完全解码这样的帧,所有与其相关的帧都要被计算在内,而且要预先解码。MPEG标准就应用了这种技术(见3.3.2)。
3.3视频
视频是内容管理系统的重要组成部分,系统需要处理、存储和管理不同的数字视频格式。存储和通信的需求对系统的底层和基础结构的要求非常严格。视频也要频繁地交换到其他第三方系统上,此时互用性具有重要的作用。此外,低码率的视频可用来浏览资料并查证系统中可用的内容。要仔细地选择这些格式以便在给定的技术和资金条件下更好地表示视频的质量。因此,了解视频编码和压缩的基本原理以及主要的视频格式是很重要的。
这一节将介绍主要视频格式的基本原理。视频制作中最主要的格式是基于MPEG或者DV编码的。内容管理系统中采用的大量的视频格式都基于这2种标准。
3.3.1视频编码:基础和原理
视频图像是用像素(图片元素)表示的,它们是图片中的最小单元。图像比例给出了图片的宽度与高度的比例,一般宽高比是4∶3。因此,垂直分辨率等于图像高度之内能够显示的像素数,水平宽度能显示的像素数等于垂直分辨率乘以图像比例。NTSC制式中有525行、700列。
彩色影像由红、绿、蓝3种信号(RGB)组成。这3种信号通常分别显示,它们混合在一起就定义了色彩。在传输信号的过程中采用了另外一种由1个亮度信号和2个色度信号(YUV)表示的方法。YUV编码并不分离色彩,而是将亮度(Y)从彩色信号(U和V)中分离出来,这是根据人类的感官对亮度比对色度更加敏感的原理。因此亮度信息更加重要,而且能用更高的带宽编码。这种组件编码带宽的不同通常表示为亮度信号和色度信号之间的比率。
对于连续移动的图像,如果帧频在每秒15帧以上,人类眼睛是无法区分单个帧的,这种特征被应用于表示运动图像。欧洲PAL制式标准使用25Hz的复制率(每秒25帧),而美国NTSC制式标准则使用29.97Hz(每秒29.97帧)。为了使移动画面没有闪烁,刷新率要在50Hz以上。如果采取控制闪烁的措施也可以使用更低的刷新率。例如,电视画面可以分成两半,每半都有相应的扫描线。两半画面用替换的方法交替传送信号。每半画面以2倍的速率被扫描(50Hz或59.94Hz)。
为了用计算机处理视频或者用计算机网络来传输,图像要从模拟制转为数字制。最基本的步骤是抽样、量化和编码。对于视频,灰度(或彩色)级在这个过程中被抽样到一个M×N的点阵数组内。接下来,连续的值根据点阵数组映射到表示量化区间的离散值(如分成256个区间)。
视频编码是处理画面不同色彩成分编码的过程。对编码来说有2种可选方案:抽样和编码整个模拟视频信号(如复合编码);或者对亮度和色度信号分别编码(如组件编码)。前者将所有信号都转换到数字域;而后者,则是对亮度和色度信号分别数字化。为了使不同的信号同时被转换,可以使用多路转换技术。
因为可以对亮度和色度信号单独抽样,对于更为重要的亮度信号可以用更高的抽样率(如13.5MHz),而2个色度信号只需要用亮度信号抽样率的一半来抽样(6.75MHz)即可。这种亮度抽样率为2个色度值抽样率的2倍的抽样方法被称为4∶2∶2抽样。
在8比特量化和亮度抽样值每行864、色度抽样值每行432的情况下,除去空白区间间隔后的累加率为261Mb/s。为了减少数字化视频的初始比特率,某些格式采用不同的抽样频率和每行抽样率,这样会在压缩前就已经影响到数字化视频的质量。
3.3.2基于MPEG的格式
ISO/IEC JTC1/SC29/WG11中的运动图像专家组(Moving Pictures Expert Group, MPEG)自1988年以来一直在发展关于视频编码的标准。相关的视频标准有MPEG-1、MPEG-2和MPEG-4。不同的标准制定的时间不同,针对的应用范围也不同。但是它们有很多共同的基本原理,属于同一个格式家族。
3.3.2.1MPEG-1
MPEG-1标准创建的最初目的是定义一种适合数字化存储技术的格式(如CD)。该标准由3个主要部分组成:MPEG视频、MPEG音频(见3.4.2)和MPEG系统(定义如何多路复用和同步音频和视频)。MEPG-1音视频数据流定义的编码的平均带宽是:视频编码部分1.1Mb/s,音频编码部分128kb/s(支持立体声)。因为MPEG-1的原始应用领域是用于存储媒体,所选择的压缩方案更适合于不对称压缩过程。在这种情况下,压缩能力比解压更强。
与大多数压缩方案不同的是MPEG-1标准并不指定编码器,而是定义MPEG-1视频和音频比特流的语法和语义,因此也就指定了MPEG-1流的形式。只要是MPEG-1对应的解码器就能够解码这样的比特流。
MPEG-1中的抽样和量化
MPEG-1中压缩的起始点是一个用所谓宏块作为基本组件的YUV图像。一个宏块被分为16×16的亮度抽样数组(分为4个8×8模块),和2个8×8的Cb和Cr色度抽样数组。然后这些8×8的块由二维的图像域转换为采用离散余弦变换(Discrete Cosine Transformation, DCT)的频率域。该过程的结果是图像中的每一个块都产生一组64 DCT系数。这种在该系数组的左上角表示的灰度和色彩值被称为DC系数,其他值则被称为AC系数。
接下来将量化应用于DCT系数中,在这一过程中实际数值被映射到整数值上。不同的量化步骤和值反映出使用的DC和AC系数的相关性。有一种量化步骤设DC值为8,并设2所乘得的31个量化步长的偶数值,从2到62,为AC的值。量化值取值范围从-255到255。人们使用一个普通的亮度和色度值的量化表。关于MPEG-1量化的更多信息可以参考Hung(1993)。
量化之后,MPEG-1采用了熵编码的方式来减少初始比特率。MPEG-1也定义了各种游程水平的可变编码。
MPEG-1帧类型
为了实现高压缩率,MPEG-1不仅将单帧信息进行压缩,而且也会参考前一帧和后一帧的编码信息,这种方法被称为帧间编码。此时要考虑2个互斥的要求:一方面,要保证最大程度的压缩,此时大块的信息仅被编码一次,同时也关联到其他帧;另一方面,应该能够随机访问一个视频流,流中的帧只有在不涉及其他帧的信息的时候才可以被随机访问。
在MPEG-1中,定义了4种不同类型的帧,可以根据它们与其他编码帧的相关程度来区分。在MPEG-1流中,这些类型的帧的组合影响压缩率和MPEG-1的流能够被随机访问的间隔时间。该4种帧类型是I、P、B、和D。
·I帧(帧内编码图像)是在视频序列中,图像编码不参考任何其他的帧。I帧的压缩与联合图片专家组(Joint Photographic Experts Group, JPEG)的压缩方案类似。
·P帧(预测编码图像)需要之前的I帧或者P帧信息。为了解码该P帧,它之前的I帧或P帧需要提前解码。帧内的参考区基于宏块。运动补偿预测根据先前相关帧来预测当前帧变化的区域。运动矢量表示了特定宏块从其在相关帧中的原始位置运动到当前P帧内特定位置的趋势。
·B帧(双向预测编码图像)需要先前的和之后的I帧和(或)P帧的信息。一千B帧表示的是与其相关帧的不同之处,它不能被用作其他图像的参考。应用运动补偿的插值法来寻找与前一帧和后一帧(I或P帧)匹配的宏块。
·D帧(DC编码图像)是为快进和快退功能定义的帧。D帧是内编码的(如I帧),但只有DC参数被编码。D帧也不被用作参考帧。
MPEG-1的帧间编码说明画面的很大区域从一帧到另一帧不发生变化。因此在之前和之后的宏块中已经编码的信息只需要被引用,而不需要再次编码。B帧可以实现最高程度的压缩。P帧压缩率也比帧内编码的I帧要高。
一个视频流中的不同帧类型的数量和出现频率取决于图片组(Group of Pictures, GoP)。GoP定义了2个I帧中间P帧和B帧的数量和顺序。为了达到高压缩率,大多数图片应该是B帧。然而,随机访问每个单帧却需要只有I帧的流。因此需要权衡压缩率和随机访问视频流的能力。I帧的数量也影响到视频流的错误恢复能力。如果一个I帧损坏或者缺失,则视频流中的所有接下来的P帧和B帧都不能被正常解码。实践证明,一组顺序为IBBPBBPBBI...的画面组是适合的,因为在这个顺序中的每9个帧中(每330毫秒)就有一个可随机访问的帧。
人们定义了2个不同的标准交换格式(Standard Interchange Formats, SIF)(根据PAL和NTSC命名)。为了和MPEG-1标准兼容,人们规定了其中必须要支持的一个最少参数集合,称为限制参数集(Constrain Parameter Set, CPS)。
3.3.2.2MPEG-2
MPEG-1被定义为一种适合数字化资源存储技术的格式。由于它规定了一个最大数据率(1.5Mb/s),在现有技术条件下对于给定的质量不会有显著的提高。因此MPGE-1不适合于高质量的应用要求。为了满足媒体制作和电视的高质量视频的要求,人们定义了MPEG-2。MPEG-2标准是ISO/IEC、ITU-TS、ITU-RS、EBU和SMPTE联合制定的结果。
MPEG-2标准的目的是为音视频信息在很大的分辨率和比特率的范围内提供有效的编码。根据ITU-R 601考虑到更高画面分辨率的要求,MPEG-2规定了最高100Mb/s的数据率。MPEG-2标准甚至考虑了HDTV。此外,它提供了适合交互多媒体服务的特性,如交互电视的随机访问、技巧模式(如快进、快退和慢放等)和多轨音频等。MPEG-2考虑的另一个问题是通过有损耗的信道传输视频。
MPEG-2和MPEG-1标准有同样的基本编码原理。压缩源是数码视频流(如先前的数码流)。与MPEG-1一样,MPEG-2也只定义视频流的语法和解码语义,而不是编码过程。同MPEG-1中定义的一样,有4种不同的画面帧(I、P、B、和D帧)。压缩过程中画面被分解为8×8的宏块,每个块用DTC来变换、量化和之字形扫描,还有运动评价和补偿。熵编码的步骤采用可变的游程编码。因此MPEG-1标准中的所有基本技术也用在MPEG-2中。
然而和MPEG-1不同的是,MPEG-2也支持隔行扫描的视频压缩。这是由MPGE-2的2种不同的画面模式——场画面(场单独被编码)和帧画面(每个隔行扫描的场组成一帧,被划分为宏块,然后被编码)来实现的。在该情况下,MPEG-2也为之字形扫描出现的非最佳情况提供了一种替换扫描模式。当邻近的扫描线来自于不同的场时,可以造成运动画面场景上的不连续。