(一)概述
音頻數據一般都具有較高的采樣率,經過壓縮的原始數據才具有實用價值,否則不僅要占用大量存儲空間而且在播放或進行網絡傳輸時效率也是非常低下的,所以音頻數字壓縮編碼在多媒體應用中有著廣泛而又重要的用途。
音頻的編碼壓縮方式有許多種,這些不同的壓縮方式有著不同的數據壓縮比和還原音質,具體的編碼格式和算法更是大相徑庭。多數協議都比較復雜,普通程序難以實現其加、解壓算法,而為多媒體提供了較強支持的Windows 98操作系統引入了ACM和VCM技術,用來管理系統中存在的所有的音頻和視頻編、解碼器(Coder-Decoder,即CODECs,用來實現音頻、視頻數據編解碼的驅動程序)。可以通過它們提供的編程接口調用系統中存在的現成的編解碼器來實現音頻數據的加、解壓。本文所要介紹的就是ACM音頻壓縮接口的編程方法,所使用的編程工具為Microsoft Visual C++ 6.0。
盡管一個CODEC在理論上能夠用于壓縮、解壓縮任一種數據流,但還是設計有各種各樣的CODECs 以實現更高的壓縮比、更高的保真度或實時壓縮性能來壓縮某種特定的數據類型。例如,把獲取很高的視頻壓縮數據壓縮率的最好方法應用到音頻數據時未必就能得到相同的效果。
壓縮音頻數據的主要原理是降低存儲某一聲音序列所需的數據量。少的數據量就意味著聲音所占有的空間更少,就能夠以更快的速度通過MODEM在網絡上傳遞。如果數據以Windows系統所支持的某種通用格式壓縮的話,就可不經手工解壓縮而直接播放--系 統將使用它自己的CODECs解壓縮數據并播放。Windows 98本身附帶有幾種標準的CODECs,如DSP Group,Inc. TrueSpeech CODEC等。因此我們寫的任何應用于 Windows 98下的程序都可應用這些CODEC,具體系統中都存在有哪些CODECs可以在控制面版的"多媒體"選項的"設備"標簽頁中查到。
CODEC 支持從源音頻格式到目標格式的轉換,而在實際應用中, 可能某種CODEC 不支持直接將源音頻格式轉換成目標格式,比如我們通過麥克風向多媒體計算機錄入了一些頻率為11025Hz、8位數據、單聲道的PCM數據,如果選用系統的TrueSpeech CODEC進行處理,就會引起失敗,因為這種CODEC只能處理頻率為8KHz,16位單聲道的數據。所以轉換時要采取兩步轉換法,即先將源格式轉換成一種中間格式,再將此中間格式轉換成目標格式,因為線性PCM 編碼最為簡單,且為絕大多數CODEC 所支持,所以一般中間格式都選為線性PCM 格式的一種,比如就可以先將原始數據轉換成TrueSpeech CODEC所支持的中間PCM格式,然后再將其通過TrueSpeech CODEC轉換成最終的壓縮格式;
浙公網安備 33010602011771號