WAV格式中常見的壓縮編碼


WAV格式中常見的壓縮編碼(compression code)

WAV為微軟公司(Microsoft)開發的一種聲音文件格式,它符合RIFF(Resource Interchange File Format)文件規范,用於保存Windows平台的音頻信息資源,被Windows平台及其應用程序所廣泛支持,該格式也支持MSADPCM,CCITT A LAW等多種壓縮運算法,支持多種音頻數字,取樣頻率和聲道。標准格式化的WAV文件采樣頻率為44100Hz,采樣比特為16bit,因此標准的(這里說標准,只是一種廣泛采用的波形音頻方案)WAV文件和CD音頻格式一樣,也是44.1KHz的取樣頻率,16位量化數字,在聲音文件質量和CD音頻相差無幾。

 下面由useiee詳細介紹一下WAV格式文件常見的10種壓縮碼形式(Compression Code)。[1]

 1. PCM/uncompressed
  Pulse Code Modulation,脈碼調制信號。是模擬音頻信號經模數轉換(A/D變換)直接形成的二進制序列,該文件沒有附加的文件頭和文件結束標志。Windows的Convert工具可以把PCM音頻格式的文件轉換成Microsoft的WAV格式的文件。
  PCM脈碼調制數字音頻格式是70年代末發展起來的,80年代初由飛利浦和索尼公司共同推出。PCM的音頻格式也被DVD-A所采用,它支持立體聲和5.1環繞聲,1999年由DVD討論會發布和推出的。
  PCM的采樣精度從14bit發展到16bit、18bit、20bit直到24bit;采樣頻率從44.1kHz發展到192kHz。到目前為止PCM這種單純依賴提高采樣規格的技術,其可改進的地方已經越來越來小。只是簡單的增加PCM比特率和采樣率,不能從底層改善它的根本問題。

 2. Microsoft ADPCM
  Adaptive Differential Pulse Code Modulation,自適應差分脈碼調制信號。是一種數據壓縮算法,該算法利用了語音信號樣點間的相關性,並針對語音信號的非平穩特點,使用了自適應預測和自適應量化。即對不同水平的差分序列,用一個相應參數delta作為平穩化參數去除差分序列的幅值,使得差分編碼自動的適應數據間大幅度的跳躍。
  Microsoft ADPCM是微軟標准的WAV格式文件采用ADPCM編碼的文件,區分於IMA ADPCM文件。MS-ADPCM編碼是分塊的,每塊有塊頭信息和編碼數據。對單聲道信號,每塊由7個字節組成,byte0是塊預測器predictor,byte1-2是初始delta,byte3-4和byte5-6分別是兩個采樣。[2]
  
 3. ITU G.711 a-law [3]
  G.711標准也是PCM碼的一種。是國際電報聯盟(International Telegraph Union, ITU)訂定出來的一套語音壓縮標准,主要用於電話。它主要用脈沖編碼調制對音頻采樣,采樣率為8kHz。它利用一個 64kbit/s 未壓縮通道傳輸語音訊號。起壓縮率為1:2,即把16位數據壓縮成8位。G.711是主流的波形聲音編解碼器。
  G.711 標准下主要有兩種壓縮算法。一種是?μ-law algorithm (又稱μ-law),主要運用於北美和日本;另一種就是a-law algorithm,主要運用於歐洲和世界其他地區。其中,a-law是特別設計用來方便計算機處理的。

 4. ITU G.711 µ-law
  G.711標准下的另一種壓縮算法,主要運用於北美和日本,美國電話格式(CCITT G.711)就采用這種算法。

 5. IMA ADPCM
  IMA是ADPCM中使用較多的一種算法。該算法中對量化步長的調整使用了簡單的查表方法,對於一個輸入的PCM值X(n),將其與前一時刻的X(n-1)預測值做差值得到d(n),然后根據當前的量化步長對d(n)進行編碼,再用此sample點的編碼值調整量化步長,同時還要得到當前sample點的預測值供下一sample點編碼使用。通過此算法可將樣點編碼成4bit的碼流,一個符號位和三個幅度位。該算法較簡單,通過查表簡化了運算。編碼后采用WAV文件格式,對編碼后的數據流進行了包裝,由文件頭和數據碼流組成,文件頭和標准WAV格式文件一樣,指出了音頻數據所采用格式、采樣率、比特率、塊長度、比特數及聲道數等信息。數據碼流以塊為單位,塊頭指出了該塊起始的預測值和index值,碼流中每byte的高四位和低四位分別對應一個PCM。當前該算法以其簡單實用的特點廣泛應用到數字音樂盒和數字錄音筆中。

 6. ITU G.723 ADPCM (Yamaha)
  G.723是ITU在1996年制訂成型的一種多媒體語音編解碼標准。其典型應用包括VoIP服務、H.324視頻電話、無線電話、數字衛星系統、數電倍增設備(DCME)、公共交換電話網(PSTN)、ISDN及各種多媒體語音信息產品。G.723標准傳輸碼率有5.3kbit/s和6.3kbit/s兩種,在編程過程中可隨時切換。該標准主要包含了編碼算法和解碼算法。原理是:從采集的語音信號中解析出聲道模型參數,構造一個合成濾波器,采用合適的激勵源激勵,編碼傳輸的參數主要是激勵源與合成濾波器的參數。5.3kbit/s的編碼器采用代數碼線預測激勵(ACELP);6.3kb/s的編碼器則采用多脈沖最大似然量化(MP-MLQ)激勵。根據傳輸編碼參數,可重構激勵源與合成濾波器進行解碼,還原出來的數字語音信號經D/A轉換器轉換成模擬語音信號。
  G.723算法對語音信號有很好的編解碼效果,同時也可處理音樂和其它聲音信號,典型輸入是64kb/s(8k×8)或128kbit/s(8k×16)的A-law或µ-law的PCM采樣語音信號。每次處理一幀語音信號,每幀240個采樣點(30ms)。在5.3kbit/s的碼率下,每幀語音被壓縮成20個字節傳輸;在6.3kbit/s的碼率下,每幀語音被壓縮成24個字節傳輸。

 7. GSM 6.10 [4]
  是我們熟知的全球移動通訊系統(Global System for Mobile communications)定義的一種音頻編解碼標准。廣泛應用於無線通信設備如手機、無線通訊終端中。音頻信號被壓縮至介於5.6kbit/s和13kbit/s之間,這兩種碼率被分別叫做半率(Half Rate)和全率(Full Rate),最初大部分只有這兩種碼率的編碼。編碼基於線性預測編碼算法(Linear Predictive Coding, LPC)。GSM 6.10除了在比特率上有很出色的表現外,這種編碼的音頻信號在空氣信道中傳輸有着高保真度,因此廣泛使用在無線通信設備的語音信號中。
  在1997年,GSM進一步開發出了一種增強型全率編解碼器(Enhanced Full Rate, EFR),這種編碼碼流比特率為12.2kbit/s。

 8. ITU G.721 ADPCM [5]
  G.721是ITU-T定義的一組標准協議組G.7xx其中之一,指的是32kbit/s的自適應差分脈沖編碼調制(ADPCM)。除去上面介紹的三種,此協議組的其他碼流標准如下:
  G.722 ―― 64 kb/s 下的 7 kHz 音頻編碼
  G.722.1 ――帶有低幀損耗的具有免提操作的系統在24kbit/s和32kbit/s上的編碼 
  G.722.2 ――利用自適應多頻率寬帶(AMR-WB)以16kbit/s多頻率語音編碼
  G.726 ―― 40, 32, 24, 16kbit/s自適應差分脈沖編碼調制(ADPCM)
  G.727 ―― 5, 4, 3和2bit/s嵌入式自適應差分脈沖編碼調制(ADPCM)
  G.728 ――利用低延遲代碼線性預測以16 bit/s 進行語音編碼
  G.729 ――利用共扼結構-代數激勵編碼線性預測(CS-ACELP)以8bit/s進行語音編碼

 9. MPEG
  Moving Pictures Experts Group,動態圖像專家組。MPEG是世界上最為著名的一種音視頻壓縮標准之一。MPEG標准主要有以下五個,MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21等。該專家組建於1988年,專門負責為CD建立視頻和音頻標准,而成員都是為視頻、音頻及系統領域的技術專家。及后,他們成功將聲音和影像的記錄脫離了傳統的模擬方式,建立了ISO/IEC1172壓縮編碼標准,並制定出MPEG-格式,令視聽傳播方面進入了數碼化時代。因此,大家現時泛指的MPEG-X版本,就是由ISO(International Organization for Standardization)所制定而發布的視頻、音頻、數據的壓縮標准。
  MPEG標准的視頻壓縮編碼技術主要利用了具有運動補償的幀間壓縮編碼技術以減小時間冗余度,利用DCT技術以減小圖像的空間冗余度,利用熵編碼則在信息表示方面減小了統計冗余度。這幾種技術的綜合運用,大大增強了壓縮性能。
  我們熟知的MP3格式的音頻文件,就是MPEG-1 layer3的縮寫。

 10. Experimental
  稱為實驗性音頻。專門用來作音頻信號處理的研究開發工作,主要包括優化壓縮算法提高壓縮效率的工作。這種類型的壓縮碼流基本不被主流解碼器支持,只在一些音頻專家和發燒友的實驗室里能夠流暢的播放出來。

 Compression code信息在WAV文件字段的第21、22個byte,通過十六進制查看器我們可以看到一個WAV文件的壓縮碼類型。對應關系如下表:

Code    Description 
0 (0x0000) Unknown 
1 (0x0001) PCM/uncompressed 
2 (0x0002) Microsoft ADPCM 
6 (0x0006) ITU G.711 a-law 
7 (0x0007) ITU G.711 µ-law 
17 (0x0011) IMA ADPCM 
20 (0x0016) ITU G.723 ADPCM (Yamaha) 
49 (0x0031) GSM 6.10 
64 (0x0040) ITU G.721 ADPCM 
80 (0x0050) MPEG 
65,536 (0xFFFF) Experimental

參考資料:
[1]. Microsoft WAV datasheet
[2]. Microsoft ADPCM wiki
http://wiki.multimedia.cx/index.php?title=Microsoft_ADPCM
[3]. ITU reference literature
[4]. http://www.wikipedia.org/
[5]. http://baike.baidu.com/
[6]. Microsoft ADPCM編碼解碼算法實現
http://topic.csdn.net/u/20080407/15/aa98f445-9376-42a4-9d18-8181b206c6f0.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM