次频带编码

信号处理中,次频带编码(sub-band coding, SBC)是一种转换编码。其作法是把信号分成许多频带(通常使用快速傅里叶变换)后独立编码,通常是将资料做压缩的第一步,可应用于声音、多媒体、影像信号的压缩。

次频带编码常用于包括MP3算法在内的许多常见有损音频压缩算法中。

应用于声音频号

基本理论

次频带编码在声音频号上利用听觉遮蔽(auditory masking)且符合人耳的听觉系统。一般而言,人耳可听到一定频率范围的声音,若在某特定频率的信号强度很大时,人耳对于该特定频率附近的频率辨别率几乎为0,我们称强度很大的信号遮蔽弱的信号。次频带编码的基本概念即是舍去那些被遮蔽的频带,这部分为“有损编码”,与原本的信号不同,但其舍去的信号经过分析后,仍可以不被人耳所辨别。

应用

最常用于数字化编码的方法是脉冲编码调变(pulse-code modulation),这种方法也适用于CD和录音带。数字化转换将原本的连续信号取样后,并用最接近的整数bits表示,及量子化(quantization),但这样的方法会产生取舍误差(rounding error),并在取样域产生截断误差(truncation error)。

为了减少误差,必须要增加每个代表取样的比特数,如此一来便造成过大的比特率(像是CD audio的频道就超过700 kbits/s)。实际上,用过的比特表示并没有考虑人耳的听觉系统的敏感度。其改善的方法是用非线性脉冲编码调变,如µ-law编码,适用听觉感知曲线,其截断误差是与信号能量大小做调变。

其中Sun微系统(Sun Microsystems)的Au file format是广为人知的µ-law编码方式,使用8位µ-law编码可使CD audio的频道减低至350 kbits/s,但效果与原本相比,较为逊色。

次频带编码应用的另一个例子是G.722(第一个用于16KHz采样率的宽带语音编码算法),它利用次频带可适性差分脉冲编码调变(sub-band adaptive differential pulse code modulation, SB-ADPCM),比特率在64 kbits/s。SB-ADPCM将频带切成两次频带,每个次频带再分别用ADPCM。

影像信号

介绍影像之前,先以一个一维信号为例,如图一所示

 
图一

图一中,上图表示两频带的的子带编码及解码,输入信号 ,分别经过两个分析滤波器(analysis filter)  。它们个别的频率响应如下图  。其中 为低通滤波器,所得到的 是信号的低频部分,其输出为原信号大略的特征(approximation); 为高通滤波器,输出所得到的 是信号的细节(detail)。经过降取样(downsampling)来达到压缩的效果。而图一上图的右半部  分别是合成滤波器(synthesis filter),先将  ,升采样(upsampling)后还原原本的信号。

 
图二

接着介绍二维子带编码,如图二所示,二为信号 分经过低通、高通滤波器后对横列降取样,此时会得到两张长度约为原本二分之一的图。再分别对这两张图个别经过低通、高通滤波器后对行方向降取样,可得到四张图。如图三所示


图三从左至右、上至下分别对应到图二的 ,代表粗略次频带(approximation subband)、 ,表示水平的细节、 ,表示垂直方向的细节、 ,表示对角线方向的细节,即是角落(corner)的部分。若针对粗略子带继续经过更多次的低通、高通滤波器,便达到压缩的效果,最广泛的应用就是JPEG2000,其主要的算法小波转换的基本概念即是上面所述。

应用

在20世纪八十年代开始,MPEG(动态影像专家小组)制定了音频和视频的编码标准。例如MP3算法的核心就是次频带编码技术。

次频带编码被用于G.722编解码器,它在64kbit/s的比特率内使用子带自适应差分脉冲编码调制(SB-ADPCM)。在SB-ADPCM技术中,频带被分成两个子带(高频部分和低频部分),每个子带的信号都使用ADPCM进行编码。

参考