购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 编解码基础

前面介绍的网络视频的主要特点之一就是网络视频信息流量巨大,为实现系统服务高效、快捷传输以及系统用户端的优质呈现,需要采用编解码技术对音频流、视频流进行压缩处理,达到网络视频应用需求。

音频、视频编解码技术是多媒体计算机、多媒体数据库、多媒体通信、数字电视和交互式系统中的关键技术,它使原来不适合网络传输的大文件转化成适宜网络传输的小文件,统称为编解码技术。

编解码技术伴随着计算机技术和通信技术而发展。编码的本质就是针对各种信息,根据其特点采用一定的方案,将其转化成能够被计算机识别的1和0的字符串组合,接收端再根据一定的规则还原成原始的信息。编解码方案多种多样,其原则是在降低码流带宽的同时确保音频、视频的质量。

3.1.1 数据压缩

所谓媒体数据包括视频数据、音频数据、文本数据等。视频数据包括图像数据和图形数据;而图像数据又包括静止图像数据和运动图像数据,图形数据包括单幅图形和动画。音频数据是指语音数据、音乐数据、声音数据。文本数据主要是指文字和字符进行编码而得到的数据。

根据数据来源,可以把媒体数据分为三类:一类是对现实世界的模拟信号进行数字化后得到的数据(简称为数字化数据,如声音、图像);另一类则是对文字和字符进行编码而得到的数据(简称为文本数据);第三类是计算机依照某种规则生成的数据(简称为计算机生成数据)。在这三种数据中,数字化数据对多媒体技术的形成起着极其重要的作用。

但是,一些重要的信号如声音、音乐电视、电影,数字化后需要每秒更多的比特数去存储或传输,这样就造成了高成本。如表3-1所示,列出了几种重要信源信号的原始数据速率(未经压缩)。当然,许多数据看起来很大,但这些数据只有在具备相应存储能力或通信线路传输能力的情况下才有意义。目前,普通电话线路调制解调速率为28.8Kbps,在用于声音信号的传输比特率为8Kbps的地区,这样未经压缩的96Kbps就需要将电话的声音信号带宽拓宽12倍;CD-ROM的容量大约是650MB,双层双面DVD的容量大约有17GB,这样,对于未压缩的电视信号,CD-ROM仅可存储23.5s,DVD光盘仅可存储大约15min节目。

表3-1 未压缩信源的比特率

如果表3-1中的数据变得更大,我们将用什么的方法来改进保持数字化传输和存储的优点呢?答案就是压缩。

媒体数据压缩的目的就是为了最有效地利用有限资源。我们所面对的有限资源包括存储器资源、信道资源、计算资源等。压缩是将信源信号有效的数字化表示。就是说,我们用尽可能少的比特数来表示源信号并能将其还原。因此,压缩的任务就是保持信源信号在可以接受的前提下,把需要的比特数减到最小程度,以此减少存储、处理和传输的成本。

3.1.2 数据冗余性

数据之所以能够压缩是因为基本原始信源的数据存在着很大的冗余度。一般来说,媒体数据中存在以下种类的数据冗余。

1.空间冗余

空间冗余是图像数据中经常存在的一种冗余。在同一幅图像中,规则物体和规则背景(所谓规则是指表面颜色分布是有序的而不是完全杂乱无章的)的表面物理特征具有相关性,这些相关性的光成像结构在数字化图像中就表现为空间冗余。

2.时间冗余

时间冗余是序列图像(电视图像、动画)和语音数据中所经常包含的冗余。图像序列中的两幅相邻的图像,后一幅图像与前一幅图像之间有较大的相关性,这反映为时间冗余。同理,在语音中,由于人在说话时发音的音频是一个连续的渐变过程,而不是一个完全在时间上独立的过程,因而存在时间冗余。

3.结构冗余

有些图像从大的区域上看存在着非常强的纹理结构,如布纹图像和草席图像,我们说它们在结构上存在冗余。

4.知识冗余

对图像的理解与某些基础知识有很大的相关性。例如,人脸的图像有固定的结构,嘴的上方有鼻子,鼻子的上方有眼睛,鼻子位于正面图像的中线上等。这类规律性的结构可由经验知识和背景知识得到,我们称此类冗余为知识冗余。

5.认知(视觉/听觉)冗余

人类视觉系统对于图像的任何变化,并不是都能感知的。例如,对于图像的编码和解码处理时,由于压缩或量化中断,引入了噪声而使图像发生了一些变化,如果这些变化不能为视觉所感知,则仍认为图像足够好。事实上人类视觉系统一般的分辨能力约为26灰度等级,而一般图像量化采用28灰度等级,这类冗余我们称为视觉冗余。对于听觉,也存在类似的冗余。

数据压缩就是去掉信号数据的冗余性。数据压缩常常又称为数据信源编码,或简称为数据编码。与此对应,数据压缩的逆过程称为数据解压缩,也称为数据信源解码,或简称为数据解码。

注: 严格地说数据编码包括信源编码和信道编码。信源编码是指为了表示和(或)压缩从信号源产生出来的信号而进行的编码,主要解决有效性问题。信道编码是为了使处理过的信号在传输过程中(通信,即从“这里”传输到“那里”;或存储,即从“现在”传输到“将来”)不出错或少出错,即使出了错也能自动检错或尽量纠错而进行的编码,主要解决可靠性问题。我们在这里主要指的是信源编码。

3.1.3 数据压缩过程

数据压缩的典型操作包括预准备、处理、量化和编码等过程,如图3-1所示,给出了它们的操作序列。数据可以是静止图像、视频和音频数据等。

图3-1 数据压缩的主要步骤

1.预准备

预准备包括模数转换和生成适当的数据表达信息。一幅图像分割成8像素×8像素的块,每一像素以固定的数据位表达。

2.处理

处理是使用复杂算法压缩的第一个步骤。从时域到频域的变换可以用离散余弦变换(Discrete Cosine Transform,DCT)。在活动视频压缩中,对帧间每个8×8块采用运动矢量编码。

3.量化

量化过程是对上一步骤产生的结果进行处理,该过程定义了从实数到整数的映射方法。这一处理过程导致精度降低。这也如同应用于音频数据的μ律和A律一样,在变换域中,相关系数视它们的重要性而区别处理。例如,每一相关系数可以采用不同的数据位来进行量化。

4.熵编码

熵编码通常是最后一步。它对序列数据流进行无损压缩。例如,数据流中一零值序列可以通过定义零值本身和后面的重复个数来进行压缩。

“处理”和“量化”可以在反馈环中交互地重复多次。压缩后的视频构成一数据流,其中图像起点和压缩技术的标识说明成为数据流的一部分,纠错码也可以加在数据流中。

解压缩是压缩的逆过程,特定的编码器和解码器以不同的方法构成。在对称应用(如对话应用)中,编码和解码代价应基本相同;在非对称应用中,解码过程比编码过程耗费的代价要小,这种技术用于以下情形:

(1)压缩的过程仅一次,采样的时间不限;

(2)解压缩经常被用到,并需要迅速完成。

例如,一个音频—视频电子教材仅需要生成一次,但它可以被许多学生使用。因此,它需要多次被解码。在这种情况中,实时解码成为基本要求,而编码则不需要实时完成。这种非对称处理可以用来提高多媒体的质量。

3.1.4 压缩评价和分类

1.技术评价

评价一种数据压缩技术的好坏,主要从压缩性能、图像质量、压缩解压速度三个重要的指标来衡量。此外,还要考虑压缩算法所需的软件和硬件。

(1)压缩性能。压缩性能通常用压缩比来定义,即压缩过程中输入数据量和输出数据量之比,压缩比越大,压缩性能越好。

(2)图像质量。这取决于压缩采用的方法,如果采用无损压缩,不必担心图像质量,如果采用有损压缩,则解压后图像恢复效果要好,要尽可能地恢复原始数据。

(3)压缩解压速度。实现压缩的算法要简单,压缩、解压速度快,尽可能地做到实时压缩、解压。

对于数据压缩技术的发展,有两方面因素影响较大:一是技术的使用目的,二是数据模型。

就使用目的而言,可以有面向存储的技术和面向传输的技术。面向存储的技术对于算法的计算复杂性不太计较,但对压缩能力却非常看重,因为编码过程并不要求实时性;对于面向传输的技术,则编解码算法实现的实时性和成本却是非常敏感的问题,因为如果为了达到实时性而使成本太高的话,将无法得到应用。因此,在实际应用中,经常需要我们在压缩算法的压缩能力、实现复杂性与成本等方面进行平衡与折中。

数据模型的选择和参数优化对于压缩算法的进步也十分关键。经验一再证明,同样的算法对于不同的数据压缩效果是不同的,因为被压缩对象本身的数据模型不同。因此,把数据模型作为算法中的一部分考虑是非常合理的。

数据压缩技术按照数据来源的不同,可以通过使用不同的数据模型和算法组合得到最有效的压缩效果。

2.技术分类

信息理论认为:若信源编码的熵大于信源的实际熵,该信源中一定存在冗余度。去掉冗余不会减少信息量,仍可原样恢复数据;但若减少了熵,数据则不能完全恢复。不过在允许的范围内损失一定的熵,数据可以近似地恢复。根据压缩过程中是否减少了熵,目前常用的压缩编码方法可以分为两大类:一类是无损压缩编码法(Lossless Compression Coding),也称冗余压缩法或熵编码法;另一类是有损压缩编码法(Loss Compression Coding),也称为熵压缩法,如图3-2所示。

图3-2 常用压缩编码方法分类

无损压缩编码法去掉或减少了数据中的冗余,但这些冗余值是可以重新插入到数据中的,因此,这种压缩是可逆的,也称为无失真压缩。为了去除数据中的冗余度,常常要考虑信源的统计特性,或建立信源的统计模型,因此许多适用的冗余度压缩技术均可归结于统计编码方法。此外,统计编码技术在各种熵压缩方法中也经常会用到。统计编码方法有霍夫曼编码、算术编码、行程编码等。冗余压缩法由于不会产生失真,因此多用于文本、数据以及应用软件的压缩,它能保证完全地恢复原始数据。但这种方法压缩比较低,如LZ编码、行程编码、霍夫曼编码的压缩比一般在2:1~5:1之间。

有损压缩编码法压缩了熵,会减少信息量。因为熵定义为平均信息量,而损失的信息是不能再恢复的,因此这种压缩法是不可逆的。熵压缩主要有两大类:特征抽取和量化。特征抽取的编码方法如基于模型的编码、分形编码等。对于实际应用而言,量化是更为通用的熵压缩技术,包括特征提取、零记忆量化、预测编码、直接映射、变换编码等,其中预测编码和变换编码是最常见的实用压缩编码方法。熵压缩法由于允许一定程度的失真,可用于对图像、声音、动态视频等数据的压缩。如采用混合编码的JPEG、MPEG等标准,它对自然景物的灰度图像,一般可压缩几倍到几十倍,而对于自然景物的彩色图像,压缩比将达到几十倍甚至上百倍;采用自适应差分脉冲编码调制的声音数据,压缩比通常能做到4:1~8:1;动态视频数据的压缩比最为可观,采用混合编码的多媒体系统,压缩比通常可达100:1~400:1。

根据编码后产生的码词长度是否相等,数据编码又可分为定长码和变长码两类。定长码即采用相同的位数对数据进行编码。大多数存储数字信息的编码系统都采用定长码。例如,我们常用的ASCII码就是定长码,其码长为1字节。汉字国标码也是定长码,其码长为2字节。变长码即采用不相同的位数对数据进行编码,以节省存储空间。例如,不同的字符或汉字出现的概率是不同的,有的字符出现的概率非常高,有的则非常低。根据统计,英文字母中“E”的使用概率约为13%,而字母“Z”的使用概率则为0.08%。又如,大多数图像常含有单色的大面积图块,而且某些颜色比其他颜色出现更频繁。为了节省空间,在对数据进行编码时,就有可能对那些经常出现的数据指定较少的位数表示,而那些不常出现的数据指定较多的位数表示。这样从总的效果看,节省了存储空间。用这种方法得到的代码,其码的位数,也即码长就是不固定的,故称为变长码。香农—范诺编码、霍夫曼编码都是变长码。

3.1.5 压缩编码研究史

1843年莫尔斯发明的电报码成为最原始的变长码数据压缩实例。1938年里夫斯(Reeves)、1946年德劳雷恩(E. m. Delorain)以及贝尔公司的卡特勒(C. C. Cutler)分别发明了脉冲编码调制(Pulse Code Modulation,PCM)、增量调制(Delta Modulation,∆M)以及差分脉冲编码调制(Differential PCM,DPCM)。

1948年香农在其经典论文“通信的数学原理”中首次提到信息率——失真函数概念,1959年又进一步确立了失真率理论,从而奠定了信源编码的理论基础。

1952年霍夫曼给出最优变长码的构造方法。同年贝尔实验室的奥利弗(B. M. Oliver)等人开始研究线性预测编码理论;1958年格雷哈姆(Graham)用计算机模拟法研究图像的DPCM编码方法;1966年奥尼尔(J. B. O’Neal)对比分析了DPCM和PCM,对电视信号传输进行了理论分析和计算机模拟,并提出了用于电视的实验数据,1969年进行了线性预测的实验。

20世纪60年代,科学家们也开始探索比预测编码效率更高的编码方法。人们首先讨论了包括KL变换、傅立叶变换等正交变换。1968年安德鲁斯(H. C. Andrews)等人采用二维离散傅立叶变换(2D-DFT)提出了变换编码。此后相继出现了沃尔什—哈达玛(Walsh-Hadamard)变换、斜变换、K-L变换、离散余弦变换(DCT)等。

1976年美国贝尔系统的克劳切(R. E. Crochjiere)等人引入了语音的子带编码,1985年奥尼尔(S.D. O’Neil)将子带编码推广到对图像的编码。

1983年瑞典的Forchheimer和Fahlander提出了基于模型图像编码(Model-Based Coding),在1988—1996年对极低码速率的视频编码进行了深入的研究工作。

1986年Meyer在理论上证明了一维小波函数的存在,创造性地构造出具有一定衰减特性的小波函数。1987年Mallat提出了多尺度分析的思想及多分辨率分析的概念,成功地统一了在此之前各种具体小波的构造方法,提出了相应的快速小波算法——Mallat算法,并把它有效地应用于图像分解和重构;1989年,小波变换开始用于多分辨率图像描述。

几乎同时,另外一些科学家探讨了使用分数维理论进行数据压缩。1988年美国M. F.Barnsley提出了分形压缩方法,1992年A. Jacquin完善了分形编码压缩方法。

1988年在图像压缩编码的发展历史中是极为重要的一年,确定了H.261和JPEG两个建议的原理框架,为之后相继出台的MPEG系列和H.260系列标准奠定了基础。 90KZsmmWL6BbcJRwMhUnAbim+bgu4XpUIM0ukqXSKZMPvQDqjwMYxifkad7UjEhN

点击中间区域
呼出菜单
上一章
目录
下一章
×