2.3 音频信号压缩编码
随着人们对音质要求的增加,信号频率范围逐渐增加,要求描述信号的数据量也就随之增加,从而带来处理这些数据的时间和传输、存储这些数据的容量增加,因此多媒体音频压缩技术是多媒体技术实用化的关键之一。
根据解压后数据是否有失真,可以将音频压缩分为无损压缩(无失真压缩)和有损压缩(有失真压缩)。无损压缩编码建立在香农信息论基础之上,以经典集合论为工具,用概率统计模型来描述信源。其压缩思想基于数据统计,因此只能去除数据冗余,属于低层压缩编码。无损压缩的压缩效率低,但是可以无失真地重现原始数据。
音频信息编码技术主要可分为3类,即波形编码、参数编码、混合编码。
(1)波形编码。这种方法主要基于语音波形预测,它力图使重建的语音波形保持原有的波形状态。常用的波形编码技术有增量调制(DM)、自适应差分脉冲编码调制(ADPCM)、子带编码(SBC)和矢量量化编码(VQ)等。波形编码的特点是在高码率的条件下获得高质量的音频信号,适用于高保真度语音和音乐信号的压缩技术。如PCM(Pulse Code Modulation,脉冲编码调制)编码是一种最通用的无压缩编码,特点是保真度高,解码速度快,但编码后的数据量大。CD-DA就采用这种编码方式。又如ADPCM编码是一种有损压缩,它丢掉了部分信息。由于人耳对声音的不敏感性,适当的有损压缩对视听播放效果影响不大。ADPCM记录的量化值不是每个采样点的幅值,而是该点的幅值与前一个采样点幅值之差。这样,每个采样点的量化位就不需要16bit,由此可减少信号的容量。可选的幅度差的量化比特位为8bit、4bit和2bit。SB16的ADPCM编码采用4bit量化位,对CD音质信号压缩,其压缩比为1:4,压缩后基本上分辨不出失真。
它的优点是编码方法简单、易于实现、适应能力强、语音质量好等,缺点是压缩比相对来说较低,需要较高的编码速率。
(2)参数编码:参数编码的方法是将音频信号以某种模型表示,再抽出合适的模型参数和参考激励信号进行编码;声音重放时,根据这些参数重建。显然,参数编码压缩比很高,但计算量大。它主要用于在窄带信道上提供4.8kbit/s以下的低速语音通信和一些对延时要求较宽的应用场合(如卫星通信等)。最常用的参数编码法为线性预测(LPC)编码。
(3)混合编码:这种方法克服了原有波形编码与参数编码的弱点,并且结合波形编码的高质量和参数编码的低数据率,取得了比较好的效果。混合编码是指同时使用两种或两种以上的编码方法进行编码的过程。由于每种编码方法都有自己的优势和不足,若用两种或两种以上的编码方法进行编码,可以优势互补,克服各自的不足,从而达到高效数据压缩的目的。常用的混合编码包括多脉冲线性预测MP-LPC,矢量和激励线性预测VSELP,码本激励线性预测CELP,短延时码本激励线性预测编码LD-CELP,以及规则码激励长时预测RPE-LTP等。
2.3.1 编码方法
根据不同的应用,可以选用不同的压缩编码算法,常用的音频编码压缩算法有以下几种。
1. 增量调制
增量调制(DM)是一种比较简单且有数据压缩功能的波形编码方法。在编码端,由前一个输入信号的编码值经解码器解码,可得到下一个信号的预测值。输入的模拟音频信号与预测值在比较器上相减,从而得到差值。差值的极性可以是正也可以是负。若为正,则编码输出为1;若为负,则编码输出为0。这样,在增量调制的输出端可以得到一串1位编码的DM码。增量调制编码的系统结构如图2.7所示。
图2.7 增量调制编码的系统结构
图2.8给出了增量调制编码的过程。图中,纵坐标表示输入的模拟电压,横坐标表示随时间增加而顺序产生的DM码。图中虚线表示输入的音频模拟信号。从图2.8可以看到,当输入信号变化比较快时,编码器的输出无法跟上信号的变化,使重建的模拟信号发生畸变,这就是所谓的“斜率过载”。可以看出,当输入模拟信号的变化速度超过经解码器输出的预测信号的最大变化速度时,就会发生斜率过载。增加采样速度,可以避免斜率过载的发生。但采样速度的增加又会使数据的压缩效率降低。
图2.8 增量调制编码的过程
从图2.8还能发现另一个问题:当输入信号没有变化时,预测信号和输入信号的差会十分接近,这时,编码器的输出是0和1交替出现的,这现象被称为增量调制的“散粒噪声”。为了减少散粒噪声,人们希望使输出编码1位所表示的模拟电压∆(又叫量化阶距)小一些,但是,减少量化阶距∆,在固定采样速度下将产生更严重的斜率过载。为了解决这些矛盾,人们研究出自适应增量调制(ADM)方法。
2. 自适应增量调制(ADM)
从前面分析可以看出,为减少斜率过载,希望增加阶距;为减少散粒噪声,又希望减少阶距。于是人们就想,若使DM的量化阶距∆适应信号变化的要求,必须既降低斜率过载又减小散粒噪声的影响。也就是说,当发现信号变化快时,增加阶距;当发现信号变化缓慢时,减少阶距。这就是自适应增量调制的基本出发点。
在ADM中,常用的规则有两种。一种是控制可变因子M,使量化阶距在一定范围内变化。对每一个新的采样,其量化阶距为其前面数值的M倍。M的值由输入信号的变化率来决定。如果出现连续相同的编码,则说明有发生过载的危险,这时就要加大M。当0、1信号交替出现时,说明信号变化很慢,会产生颗粒噪声,这时就要减小M值。其典型的规则为:
另一种使用较多的自适应增量调制是可变斜率增量调制。其工作原理如下:如果调制器连续输出3个相同的码,则量化阶距加上一个大的增量,也就是说,3个连续相同的码表示有过载发生。反之,量化阶距增加一个小的增量。
可变斜率增量的自适应规则为:
式中,β可在0~1之间取值;P和Q为增量,而且P要大于等于Q。
可以看到,β的大小可以通过调节增量调制来适应输入信号变化所需时间的长短。
3. 脉冲编码调制PCM
PCM编码是对连续语音信号进行空间采样、幅度量化及用适当码字将其编码的总称。PCM是一种最通用的无压缩编码,其特点是保真度高,解码速度快,但编码后的数据量大。CD-DA就采用这种编码方式。PCM可以按量化方式的不同分为均匀量化PCM、非均匀量化PCM和自适应量化PCM等几种。
如果采用相等的量化间隔对采样得到的信号做量化,那么这种量化就是均匀量化。均匀量化就是采用相同的“等分尺”来度量采样得到的幅度,也被称为线性量化。均匀量化PCM就是直接对声音信号做A/D转换,在处理过程中没有利用声音信号的任何特性,也没有进行压缩。该方法将输入的声音信号的幅度范围分成N=2B等份(B为量化位数),所以落入同一等份数的采样值都编码成相同的二进制码。只要采样频率足够大,量化位数也适当,便能获得较高的声音信号数字化效果。为了满足听觉上的效果,均匀量化PCM必须使用较多的量化位数。这样所记录和产生的音乐,可以达到最接近原声的效果。当然提高采样频率及分辨率后,数据存储空间将会增大。但是对音频信号而言,大多数情况下信号幅度都很小,出现大幅度信号的概率很小,然而为了适应这种很少出现的大信号,在均匀量化时不得不增加二进制码位。对大量的小信号来说,如此多的码位是一种浪费。因此,均匀量化PCM效率不高,有必要进行改进。
改进PCM编码技术的一个方法是采用非均匀量化,这种非均匀量化PCM,就是前面所说的µ律压扩算法,即让量化级高度随信号幅度而变化。信号幅度小,则缩小量化级高度,信号幅度大时,则增大量化级高度。这样就可以在满足精度要求的情况下用较少的位数实现编码。在声音数据还原时,采用相同的规则。其实质在于减少表示采样的位数,从而达到数据压缩的目的。这种对小信号扩展,大信号压缩的特性可以用式(2-3)表示。另一种常用的压扩特性为A律13折线,它实际上是将µ律压扩特性曲线以13段直线代替而成的。对于A律[式(2-4)、式(2-5)]13折线,一个信号样值的编码由两部分构成,即段落码(信号属于13折线中的哪一段)和段内码。
4. 差分脉冲编码调制DPCM
在非均匀PCM编码中,存在着大量的冗余信息。这是因为信号邻近样本间的相关性很强,若采用某种措施,便可以去掉那些冗余的信息,差分脉冲编码调制(DPCM)是常用的一种方法。
差分脉冲编码调制的中心思想是对信号的差值而不是对信号本身进行编码。这个差值是指信号值与预测值的差值。预测值可以由过去的采样值进行预测,其计算公式如下所示:
式中,ai为预测系数。
因此,利用若干个前面的采样值可以预测当前值。当前值与预测值的差为:
差分脉冲编码调制就是将上述每个样点的差值量化编码,而后用于存储或传递。由于相邻采样点有较大的相关性,预测值常接近于真实值,故差值一般都比较小,从而使用较少的数据位来表示,这样就减少了数据量。在接收端或数据回放时,可用类似的过程重建原始数据。DPCM系统方框图如图2.9所示。
图2.9 DPCM系统框图
5. 自适应差分脉冲编码调制PCM
为了进一步提高编码的性能,人们将自适应量化器和自适应预测器结合在一起用于DPCM之中,从而实现了自适应差分脉冲编码ADPCM(Adaptive Differential Pulse Code Modulation),其简化框图如图2.10所示。ADPCM是一种有损压缩编码,记录的量化值不是每个采样点的幅值,而是该点的幅值与前一个采样点幅值之差。这样,每个采样点的量化位就不需要16bit,由此可以减少信号的容量。可选的幅度差的量化比特位为8bit、4bit和2bit。
图2.10 ADPCM简化框图
采用PCM编码、ADPCM编码等生成的数字音频数据,都是以WAV的文件格式存储的。
6. 子带编码
声音信号对人耳的听觉贡献与信号频率有关,如人耳对1kHz附近频率成分尤其敏感。根据这种特点,可以设想将输入信号用某种方法划分成不同频段上的子信号,然后区别对待,根据各子信号的特性,分别编码。例如对语音信号中能量较大、对听觉有重要影响的部分(如500~800Hz频段内的信号)分配较多的码字,对次要信号(如话带中大于3kHz的信号)则分配较少的码字。各子信号分别编码后的码字在接收方被分别解码,最后再合成出解码语音。因此,可以设想,首先用一组带通滤波器,将输入的音频信号分成若干个连续的频段,并将这些频段称为子带。然后再分别对这些子带中的音频分量进行采样和编码。最后将各子带的编码信号组织到一起,进行存储或送到信道上传送。在信道的接收端(或在回放时)得到各子带编码的混合信号,将各子带的编码取出来,对它们分别进行解码,产生各子带的音频分量,再将各子带的音频分量组合在一起,恢复原始的音频信号。子带编码的原理框图如图2.11所示。
图2.11 子带编码的原理框图
7. 变换域编码
在子带编码中,划分子带的方法是通过带通滤波器来完成的。另外一种方法就是通过变换域编码方法,将输入信号直接转换到频域,然后在频域划分各频段,根据不同的频段能量大小分配码字,然后编码,接收端解码后再用相应的反变换转换成时域信号。
事实上,只有采用离散傅里叶变换(FFT)或离散余弦变换(DCT),变换后的各系数才真正代表频率分量。由于DCT接近最佳变换,因而语音变换域编码基本上都采用DCT,在这个意义上可以称语音变换域编码为频域编码。
在语音子带编码中,常用的子带数目为2~4,宽带音频编码也只不过用32个子带。语音的变换域编码,其变换系数或称频率分量数目要大得多,通常取在123~256范围内。变换域编码将连续8个输入语音样点块,经线性变换后再进行量化处理,因此变换域编码也被称为块编码。
8. 感知编码
感知编码(Perceptual Audio Coding)主要是利用人耳听觉的心理声学特性(主要是频谱掩蔽特性和时间掩蔽特性)。凡是人耳感知不到的成分都可以丢弃,而对可感觉到的部分进行编码时,只要其不超过人类的听阈阈值,就可以允许有较大的量化失真。
根据人类听觉系统的心理声学模型,存在听觉阈值电平,低于这个电平的声音信号就可以被去掉,而不影响音质,并且听觉阈值的大小和声音频率有关,大多数人对2~5kHz的声音最敏感。一个人是否能听到声音取决于声音的频率,以及声音的幅度是否高于这种频率下的听觉阈值,而听觉阈值以外的电平可以被去除,以压缩数据。
心理声学模型中的另一个重要概念是掩蔽效应,即一种频率的声音的存在会阻碍听觉系统感受到另一种频率的声音。前者被称为掩蔽声音(Masking Tone),后者被称为被掩蔽声音(Masked Tone)。掩蔽具体又分成频域掩蔽和时域掩蔽。所谓频域掩蔽,是指掩蔽声与被掩蔽声同时作用时发生掩蔽效应,即较强的声音信号可以掩蔽临近频段中同时发声的较弱的信号。这种特性被称为频域掩蔽或同时掩蔽(Simultaneous Masking)。在时间上相邻的声音之间也有掩蔽现象,并且被称为时域掩蔽。所谓时域掩蔽,是指掩蔽效应发生在掩蔽声与被掩蔽声不同时出现时,又被称为异时掩蔽。时域掩蔽又分为超前掩蔽(Premasking)和滞后掩蔽(Postmasking),如果掩蔽声音出现之前的一段时间内发生掩蔽效应,则被称为导前掩蔽;否则被称为滞后掩蔽。产生时域掩蔽的主要原因是人的大脑处理信息需要花费一定的时间。一般来说,超前掩蔽很短,只有5~20 ms,而滞后掩蔽可以持续50~200 ms。异时掩蔽会随着时间的推移很快衰减,是一种弱掩蔽效应。
感知编码器首先分析输入信号的频率和振幅,然后将其与人的听觉感知模型进行比较。编码器用这个模型去除音频信号中人耳感觉不到或者被掩蔽的部分。尽管这个方法是有损的,人耳却无法觉察编码信号质量的下降。感知编码器可以将一个声道的比特速率从768kbit/s降至128kbit/s,将字长从16 bit/取样减少至平均2.67 bit/取样,数据量减少了约83%。
2.3.2 音频数据的标准
从数据通信的角度看,音频编码标准主要有3种:一是在电话传输系统中应用的电话质量的音频压缩编码技术标准[如PCM(ITU G.711)、ADPCM(ITU G.721)等],可满足电话级的语音质量要求;二是在窄带综合服务数据网传送中应用的调幅广播质量的音频压缩编码技术标准(如G.722),可提供调幅广播级的语音质量要求;三是在电视传输系统、视频点播系统中应用的音频编码标准(如MPEG音频标准),可提供立体声声音质量。
1. 电话质量的音频压缩编码技术标准
电话质量语音信号频率规定在300~3400Hz,采用标准的脉冲编码调制(PCM),当采样频率为8kHz,进行8bit量化时,所得数据速率为64kbit/s,即一个数字话路。
(1)G.711
G.711标准是1972年CCITT(现称为ITU-T)制定的PCM语音标准,采样频率为8kHz,每个样本值用8位二进制编码,因此输出的数据率为64kbit/s。采用非线性量化µ律或A律,将样本精度为13位的PCM按A律压扩编码,14位的PCM按µ律压扩编码转换为8位编码,其质量相当于12bit线性量化的音质。
(2)G.721
G.721标准是ITU-T于1984年制定的,主要目的是用于64kbit/s的A律和µ律PCM与32kbit/s的ADPCM之间的转换。它基于ADPCM技术,采样频率为8kHz,每个样本与预测值的差值用4位编码,其编码速率为32kbit/s。这一技术是对信号和它的预测值的差分信号进行量化,同时再根据邻近差分信号的特性自适应改变量化参数,从而提高压缩比,又能保持一定信号质量。因此,ADPCM能对中等电话质量要求的信号进行高效编码,而且可以在调幅广播和交互式激光唱盘音频信号压缩中应用。
(3)G.728
G.728标准是一个追求低比特率的标准,其速率为16kbit/s,其质量与32kbit/s的G.721标准基本相当。它使用了LD-CELP(低延时码本激励线性预测)算法。
G.728标准是低速率(56~128kbit/s)ISDN可视电话的推荐语音编码器,可实现低延时,对随机比特差错有相当强的承受能力,超出任何语音编码器。
(4)G.729
G.729是这一系列目前的最新标准,因为其低码率特性,通常用于VoIP(Voice over Internet Protocol),大致有6.4 kbit/s、8kbit/s、11.8 kbit/s 3种码率适应不同的网速。它主要采用激励线性预测CS-ACELP算法。
2. 调幅广播质量的音频压缩编码技术标准
调幅广播质量音频信号的频率在50~7000Hz。CCITT在1988年制定了G.722标准。G.722标准采用16kHz采样,14bit量化,信号数据速率为224kbit/s,采用子带编码方法,将输入音频信号经滤波器分成高子带和低子带两个部分,分别进行ADPCM编码,再混合形成输出码流,224kbit/s可以被压缩成64kbit/s,最后进行数据插入(最高插入速率达16kbit/s),因此利用G.722标准可以在窄带综合服务数据网N-ISDN中的一个B信道上传送调幅广播质量的音频信号。
3. 高保真度立体声音频压缩编码技术标准
高保真立体声音频信号频率范围是50~20000Hz,采用44.1kHz采样频率,16bit量化进行数字化转换,其数据速率每声道达705kbit/s。
一般语音信号的动态范围和频响比较小,采用8kHz取样,每样值用8bit表示,现在的语音压缩技术可把码率从原来的64kbit/s压缩到4kbit/s左右。但多媒体通信中的声音比语音复杂得多,它的动态范围可达100dB,频响范围可达20~20000Hz。因此,声音数字化后的信息量也非常大,例如把6声道环绕立体声数字化,按每声道取样频率48kHz,每样值18bit表示,则数字化后的数据码率为6×48×103×18÷106 =5.184(Mbit/s),即使是两声道立体声,数字化后码率也达到1.5Mbit/s左右,而电视图像信号数字压缩后,码率为1.5~10Mbit/s,因此,相对而言,声音未经数字压缩的码率就太高了,为了更有效地利用宝贵的信道资源,必须对声音进行数字压缩编码。
由于有必要确定一套通用的视频和声音编码方案,ISO/IEC标准组织成立了ISO/IES JTC1/SC29/WG11,即运动图像专家组(MPEG,Moving Picture Experts Group)。该小组致力于制定运动图像(视频)及音频的压缩、处理和播放标准。它开发出了一系列标准,如MPEG-1、MPEG-2,MPEG-4、MPEG-7和MPEG-21等。
“低于1.5Mbit/s的用于数字存储媒体的活动图像和相关声音之国际标准ISO/IEC”(MPEG-1)于1992年11月被制定完成。其中ISO11172.3作为“MPEG音频”标准,成为国际上公认的高保真立体声音频压缩标准,一般被称为“MPEG-1音频”。MPEG-1音频第一和第二层次编码是将输入音频信号进行采样频率为48kHz、44.1kHz、32kHz的采样,经滤波器组分为32个子带,同时利用人耳屏蔽效应,根据音频信号的性质计算各频率分量的人耳屏蔽门限,选择各子带的量化参数,获得较高的压缩比。MPEG第三层次是在上述处理后再引入辅助子带,非均匀量化和熵编码技术,再进一步提高压缩比。MPEG音频压缩技术的数据速率为每声道32~448kbit/s,适合于CD-DA光盘应用。
MPEG-2也定义了音频标准,由两部分组成,即MPEG-2音频(Audio,ISO/IEC 13818-3)和MPEG-2 AAC(先进的音频编码,ISO/IEC 13818-3)。MPEG-2音频编码标准是对MPEG-1后向兼容的、支持2~5声道的后继版本。主要考虑到高质量的5+1声道、低比特率和后向兼容性,以保证现存的两声道解码器能从5+1个多声道信号中解出相应的立体声。MPEG-2 AAC除后向兼容MPEG-1音频外,还有非后向兼容的音频标准。
MPEG-4 Audio标准(ISO/IEC 14496-3)可集成从话音到高质量的多通道声音,从自然声音到合成声音,编码方法还包括:参数编码,码激励线性预测(CELP)编码,时间/频率(T/F)编码,结构化声音(SA)编码,文语转换(TTS)的合成声音,以及MIDI合成声音等。
MPEG-7 Audio标准提供了音频描述工具。
杜比实验室的AC-3编码(Audio Coding - 3)发布于1994年,是一种有损音频编码格式。起源于为高清晰度电视HDTV提供高质量声音,AC-3系统被要求具有5.1声道来替代已经使用了很久的4-2-4矩阵模拟声音系统;同时为了可靠地记录数字声音数据,并且不干扰原有的图像和模拟声音。AC-3在1993年被美国HDTV大联盟及ACATS采用,国际电信联盟ITU-R也采纳了5.1声道的方案。AC-3系统在设计时考虑了感知编码和心理声学模型,大幅删除了在理论上认为多余的细节信号,在实际使用中提供32~640kbit/s之间的可调数据率,其中影院内通常用640kbit/s。
杜比AC-4是杜比实验室2015年发布的最新音频编码,提供了对从5.1声道到增强型7.1.4声道的支持,增加了多语言支持,提供全景声的沉浸式体验,并且其码率降低到AC-3编码的50%。杜比AC-4的核心要素已被欧洲电信标准化协会(European Telecommunications Standard Institute)定义为TS 103190标准,并被数字视频广播(DVB)项目在TS 101154标准中采纳。