次頻帶編碼
在訊號處理中,次頻帶編碼(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 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进行编码。
參考
- sub-band coding tutorial https://web.archive.org/web/20070613152917/http://www.otolith.com/otolith/olt/sbc.html
- Rafael C. Gonzalez, Richard E. Woods, "Digital Image Processing", 2nd 2002, ISBN 0-20-118075-8