书城计算机网络多媒体技术
15865500000009

第9章 多媒体数据压缩编码技术(2)

3.2.1PCM脉冲编码调制

PCM(PulseCodeModulation)脉冲编码调制是对输入波形音频信号进行采样,量化成为数字信号的过程。PCM编码可以分为均匀量化和非均匀量化两种。

1.均匀量化

均匀量化PCM编码的过程是先对音频波形进行采样,然后量化为数字信号。

1)采样

这是离散模拟信号。

2)量化

设n位均匀量化,则量化单位

其中xm为信号的最大幅度。考虑四舍五入,则量化误差为q/2。量化误差使信号恢复时带有附加的噪声。

设量化单位为0.1V,则量化误差为0.05V。若信号电平为5V,则相对误差为1%;若信号电平为0.5V,则相对误差为10%。

可见,同样的量化单位,小信号和大信号的相对量化误差是不同的。因此,希望小信号时量化单位小,大信号时可以让量化单位取大一些,这就是非均匀量化。

2.非均匀量化--压缩与扩张

在PCM编码中,量化误差与编码位数是一对矛盾,人们总是希望,在一定的编码位数下尽可能减少量化误差。均匀量化的PCM编码是不能做到这一点的。

在话音或音频信号中,一般小信号出现的机会要比大信号多,且人耳对大信号不甚敏感,呈对数特性。采用非均匀量化编码的实质在于减少表示采样的位数,从而达到数据压缩的目的。

其基本思路就是:当输入信号幅度小时,采用较小的量化间隔;当输入信号幅度大时,采用较大的量化间隔。这样就可以做到,在一定的精度下,用更少的二进制码位来表示采样值。这种对小信号扩展、大信号压缩的特性用下式表示:

式中:x--输入电压与A/D变换器满刻度电压之比,为-1~1的值;

sgn(x)--x的极性;

μ--压扩参数,其取值范围为100~500。

该压扩规则的特性如图32所示,通常将此曲线叫做μ律压扩特性。在实际应用中,可规定某个μ值,采用数段折线来逼近图32所示的压扩特性。这样就大大地简化了计算并能够保证一定的精度。

例如,当选择μ等于255时,压扩特性用8段折线来代替,这就是A律13折线压扩特性。当用8位二进制数表示一个采样时,可以得到满意的音频质量。这8位二进制中,最高位表示符号位,中间3位用来表示折线线段,最后4位用来表示数值,其格式如图33所示。

在译码恢复数据时,根据符号和折线线段即可通过预先做好的表,查表恢复原始数据。

A律13折线压扩特性的编码过程如下:设x轴、y轴分别表示压扩特性的输入、输出信号的取值区,最大信号为±Vm。

(1)x轴的量化

x轴(0~Vm)不均匀分为8段(段落码3位),每次以1/2分段,每段均匀划分为16等分,每个等分就是1个量化间隔,这样,在0~Vm范围内,就有16×8个量化等级。在每个量化等级内,又均匀划分成16个等分。这样,输入信号小的,量化间隔也小;反之,大信号的量化间隔就大。

最小的量化间隔

Vmin=Vm128×16=Vm2048

最大的量化间隔

Vmax=Vm2×16=Vm32

(2)y轴的量化

将0~Vm均匀划分为8等分(与x轴8段对应),每段均匀划分为16等分(与x轴每段对应)。这样,y轴0~Vm均匀分为8×16个量化间隔,每个量化间隔为。

将x轴和y轴相应段交点连起来,就构成8段折线,第1段与第2段的斜率是一样的,实际只是7段,负方向也是7段,但中间2段是一样的斜率(对称),所以形成13折线的压扩特性如图34所示。图中只画出正信号特性的一部分(7段)。

由A律压扩特性可看出,输入与输出关系的斜率不同,实际就是编码器对信号的放大倍数不同,即小信号放大倍数大,大信号放大倍数小。

3.PCM与数字通信

CCITT制定了脉冲编码调制(PCM)标准,通常用于电话和专用电话网中。

设电话(话音)频宽为300Hz~3.4kHz,最高上限频率fm=3.4kHz,按采样定理要求,采样频率fs≥2fm,则fs≥2fm=6.8kHz,取fs=8000Hz。若每次量化8位,则数据速率为64kbps。采用时分复用多路通信,有两种标准,一种是24路时分复用,一种是32路时分复用。

1)贝尔T1载波系统标准

贝尔T1载波系统是24路话音信道时分复用标准。24路话音信道每帧划分24个时隙,每个时隙传输1路采样量化后的数字信号(8位),每帧附加1位帧同步位。因此,数据传输速率为。

(8×24+1)×8000=1.544Mbps

2)CCITTPCM脉码调制系统标准

CCITTPCM脉码调制系统是32路信道时分复用标准,其中30路为话音信道复用。因此,信道上的数据速率为8×32×8000=2.048Mbps。

无论上述24路复用或32路复用,PCM复用的程度都称为基群(或一次群),还可以组成二次群、三次群,它们复用的路数分别是基群路数的4倍和16倍。

4.差分脉冲编码调制(DPCM)

上面提到的PCM编码中存在着大量冗余信息,这是因为音频信号相邻近样本间的相关性很强。若采取某种措施,便可以去掉那些冗余的信息,差分脉冲编码调制(DiffrentionPCM,DPCM)是常用的一种方法。

差分脉冲编码调制的中心思想是对信号的差值而不是对信号本身进行编码,这个差值是信号值与预测值的差。

预测值可由过去的采样值进行预测,其计算公式如下:

式中,ai为预测系数。因此,利用若干个前面的采样值可以预测当前值。当前值与预测值的差为。

差分脉冲编码调制就是将上述每个样点的差值量化编码,而后用于存储或传送。由于相邻采样点有较大的相关性,预测值常接近真实值,故差值一般都比较小,从而可以用较少的数据位来表示。这样就减少了数据量(或传送速率)。

在接收端或数据回放时,可用类似的过程重建原始数据。差分脉冲编码调制系统的方框图如图35所示。

由图35可见,只要求出预测值,则实现这种方法并不困难。而要得到预测值,关键的问题是确定预测系数ai。如何求ai呢?我们定义ai就是使估值的均方差最小的ai。估值的均方差可由下式决定:

Ey0-y^02=Ey0-a1y1+a2y2+…+aNyN2

为了使求得的均方差最小,需对式中ai求导数并使方程等于0。最后解联立方程可以求出a1,a2,…,aN。

此处不再详细地说明预测系数ai如何求,只是强调预测系数与输入信号特性有关,也就是与采样点同其前面采样点的相关性有关。只要预测系数确定,问题便可迎刃而解。通常一阶预测系数a1取0.8~1之间的某个值。

5.增量调制(DM)

增量调制是一种比较简单且有数据压缩功能的波形编码方法,其工作原理很易理解,而且是一种常用的音频信号压缩方法。

增量调制的系统结构框图如图36所示。在编码端,过去的采样值经保持器可得预测值。输入的模拟音频信号与预测值在比较器上相减,从而得到差值。差值的极性可以为正也可以为负。若为正,则编码输出为1;若为负,则编码输出为0。这样,在增量调制的输出端可以得到一串1位编码的DM码。

增量调制编码过程示意如图37所示,纵坐标表示输入的模拟电压,横坐标表示随时间增加而顺序产生的DM码。图中虚线表示输入的音频模拟信号。

从图37中可以看到,当输入信号变化比较快时,编码器输出无法跟上信号的变化。从而会使重建的模拟信号发生畸变,这就是所谓的“斜率过载”。还可以看到,当输入模拟信号的变化速度超过了经积分器输出的预测信号的最大变化速度时,就会发生斜率过载。增加采样速率,可以改善斜率过载的情况,但采样速率的增加又会使数据压缩的效率降低。

从图37中还能够发现另一个问题,那就是,当输入信号不变化时,预测信号和输入信号的差会十分接近,这时编码器的输出是0和1交替出现,这种现象就叫做增量调制的散粒噪声。为了减少散粒噪声,就希望输出编码1位所表示的模拟电压(又叫做量化阶)小一些。但是,减小量化阶会使在固定采样速率下产生更严重的斜率过载。为了解决这些矛盾,人们研究出了自适应增量调制(ADM)和自适应差分脉冲码调制(ADPCM)。3.2.2自适应脉冲编码调制。

1.自适应差分脉冲编码调制(ADPCM)

为了进一步提高编码的性能,人们将自适应量化器和自适应预测器结合在一起用于DPCM之中,从而实现了自适应差分脉冲编码调制,其简化的框图如图38所示。自适应量化器首先检测差分信号的变化率和差分信号的幅度大小,而后决定量化的量化阶距;自适应预测器能够更好地跟踪语音信号的变化。因此,将两种技术组合起来使用能提高系统性能。

从图38中可以看到,在图38(a)所示的编码器框图中,实际上也包含着图38(b)所示的译码器电路框图,两者的算法是一样的。

不管是利用压扩特性(非线性)PCM还是自适应差分脉冲编码调制(ADPCM),如何实现它们,都是许多使用者所关心的。如今,用小规模集成电路和分立元件设计这些编码器的设计思想是不可取的。比较恰当的方法是如下所述。

1)采用现有的专用集成电路

目前,已有许多专用集成电路可以比较方便地实现上面提及的编码。有的集成电路简单,功能差一些;有的结构复杂,功能强一些。利用这样的专用集成电路,实际上是利用了现成的成果,使用者只是使用而已。

2)利用DSP

利用DSP来采集和处理音频信号十分方便,因此,应用广泛。在这种应用中,不管是哪种PCM编码,都可以在DSP系统中配上专门的硬件电路来实现。另一方面,估算一下编码的时间,看是否满足编码所需处理时间的要求,若可以满足要求,不妨采用软件方案。这种方法实现容易,节省硬件而且灵活易修改。

3)采用专用集成电路(ASIC)设计技术

ASIC技术是近几年来蓬勃发展起来的集成电路技术。当某一电子部件,例如ADPCM编码器和译码器采用某些新的算法研制成功后,可以将此电子部件的逻辑图(或印制电路板)交专门的工厂,将其制成专用集成电路,甚至集成电路的引脚也可由设计者来规定。这种用ASIC技术设计出来的集成电路保密性好,可靠性高,大批量生产时造价也比较低。因此,这也是一种很有前途的方法。

2.自适应增量调制(ADM)

上面已经提到,为减少斜率过载,希望增大量化阶;为减少散粒噪声,又希望减小量化阶。于是,人们就想,若是能使DM的量化阶适应信号变化的要求,就必然会既降低了斜率过载又能减小散粒噪声的影响。也就是说,当发现信号变化快时,增大量化阶;当发现信号变化缓慢时,减小量化阶。这就是自适应增量调制的基本出发点。

在自适应DM中,常用的规则有两种。

一种是控制可变因子M,使量化阶在一定的极限范围内变化。对于每一个新的采样,其量化阶为其前面数值的M倍,而M的值则由输入信号的变化率来决定。如果出现连续的相同的码,则说明有发生过载的危险,这时就要加大M。当出现0,1交替时,说明信号变化很慢,会产生散粒噪声,这时就要减小M值。控制可变因子M的典型规则可用下式表示:

M=2,y(k)=y(k-1)12,y(k)≠y(k-1)另一类使用较多的自适应增量调制称为连续可变斜率增量(CVSD)调制。其工作原理如下:如果调制器(CVSD)连续输出三个相同的码,则量化阶加上一个大的增量,因为,三个连续相同的码表示有过载发生;反之,则给量化阶增加一个小的增量。

CVSD的自适应规则为

(k)=β(k-1)+P,y(k)=y(k-1)=y(k-2)β(k-1)+Q,其他式中,β可在0~1之间取值。可以看到,调节β的大小,可以调节增量调制适应输入信号变化时间的长短。P和Q为增量,而且P要大于或等于Q。

以上简单介绍了增量调制的基本工作原理。可以看出,这种数据压缩方法是很简单的,实现起来也比较容易。为实现增量调制,可以考虑以下方法:利用硬件电路芯片连接构成增量调制编码器和对增量调制输出信号进行译码,重建原始音频信号。这些硬件电路芯片无非是比较器、D触发器等线性和数字信号芯片,实现起来是不困难的。但是,目前上述方法已不为技术人员所选用。

还有一些厂商为用户生产了专用的语音处理器,并将增量调制、解调功能集成在处理器内部,这就更加增加了处理器的功能。例如,东芝公司的T6668就是这样的芯片,语音专用处理器种类很多,采用的压缩方法也各不一样。

除了上面所提到的利用硬件来实现增量调制和解调之外,目前在音频信号处理上,经常采用数字信号处理器(DSP),国内流行的如德州仪器的TMS320系列,该处理器速度高、功能强,因此,利用软件实现增量调制和解调应当是很方便的。

3.3其他音频压缩编码方法

3.3.1子带编码

子带编码的出发点在于:无论是音频信号还是视频或其他信号,均具有比较宽的频带。在频带中不同频率段上的分量对信号的质量影响是不一样的。一般来说,低频段的分量对信号质量的影响大而高频段影响要小一些。

基于上述因素,可以设想,首先用一组带通滤波器将输入的音频信号分成若干个连续的频段,这些频段称为子带;而后,再分别对这些子带中的音频分量进行采集和编码;最后,再将各子带的编码信号组织到一起,进行存储或送到信道上传送。

在信道的接收端(或在回放时)得到各子带编码的混合信号后,首先将各子带的编码取出来,对它们分别进行译码,产生各子带的音频分量,最后,再将各子带的音频分量组合在一起,恢复原始的音频信号。

子带编码的原理框图如图39所示。从图中可以看到上述的基本原理。子带编码能够实现较高的比特压缩比,而且具有较高的质量,因此,得到了比较广泛的应用。这种编码常常与其他一些编码混合使用,以实现混合编码。

3.3.2矢量量化

矢量量化是近年来发展起来的一种新的编码方法。这是一种有损的编码方案,其主要思想是先将输入的语音信号按一定方式分组,再把这些分组数据看成一个矢量,对它进行量化。这区别于直接对一个数据的标量作量化的方法。