編碼器說明
輸入聲音頻號經過乙個多相濾波器組,變換到多個子帶。同時經過「心理聲學模型」計算以頻率為自變數的雜訊掩蔽閾值。量化和編碼部分用信掩比smr決定分配給子帶訊號的量化位數,使量化雜訊<掩蔽域值。最後通過資料幀包裝將量化的子帶樣本和其它資料按照規定的幀格式組裝成位元資料流。
多相濾波器組,用來分割子帶
量化和編碼
比例因子的取值和編碼
對各個子帶每12個樣點進行一次比例因子計算。先定出12個樣點中絕對值的最大值。查比例因子表中比這個最大值大的最小值作為比例因子。用6位元表示。
第2層的一幀對應36個子帶樣值,是第1層的三倍,原則上要傳三個比例因子。為了降低比例因子的傳輸碼率, 採用了利用人耳時域掩蔽特性的編碼策略。
每幀中每個子帶的三個比例因子被一起考慮,劃分成特定的幾種模式。根據這些模式,1個、2個或3個比例因子和比例因子選擇資訊(每子帶2位元)一起被傳送。如果乙個比例因子和下乙個只有很小的差別,就只傳送大的乙個,這種情況對於穩態訊號經常出現。
使用這一演算法後,和第1層相比,第2層傳輸的比例因子平均減少了2個,即傳輸碼率由22.5kb/s降低到了7.5kb/s。
位元分配及編碼
在調整到固定的位元速率之前,先確定可用於樣值編碼的有效位元數,這個數值取決於比例因子、比例因子選擇資訊、位元分配資訊,以及輔助資料所需位元數。
位元分配的過程:
對每個子帶計算掩蔽-雜訊比mnr,是訊雜比snr – 信掩比smr,即:mnr = snr – smr
使整個一幀和每個子帶的總雜訊-掩蔽比最小。這是乙個迴圈過程,每一次迴圈使獲益最大的子帶的量化級別增加一級,當然所用位元數不能超過一幀所能提供的最大數目。
第1層一幀用4位元給每個子帶的位元分配資訊編碼;而第2層只在低頻段用4位元,高頻段則用2位元。
子帶樣值的量化和編碼
輸入以12個樣本為一組,每組樣本經過時間-頻率變換之後進行一次位元分配並記錄乙個比例因子(scale factor)。
位元分配資訊告訴解碼器每個樣本由幾位表示,比例因子用6位元表示,解碼器使用這個6位元的比例因子乘逆量化器的每個輸出樣本值,以恢復被量化的子帶值。比例因子的作用是充分利用量化器的量化範圍, 通過位元分配和比例因子相配合,可以表示動態範圍超過120db的樣本 。
第2層中,量化級別的數目隨子帶的不同而不同,但量化等級仍然覆蓋了3~65535的範圍,同時子帶不被分配給位元的概率增加了,沒有分配給位元的子帶就不被量化。低頻段的量化等級有15級,中頻段7級,高頻段只有3級。
資料幀包裝
幀頭crc
位元分配
scfsi
比例因子
樣值輔助資料
層i每幀含384個樣本資料。每幀由32個子帶分別輸出的12個樣本值組成。
以48khz取樣,一幀長為32×12×20.83µs =8ms。
層ii每幀包含1152個樣本。低、中、高頻段對位元分配不同,分別用4、3、2位元。位元流中增加了乙個位元因子選擇資訊域,解碼器根據這個域的資訊可知道是否需要以及如何共享比例因子。
輸出音訊的取樣率和目標位元速率
選擇某個資料幀,輸出該幀所分配的位元數、該幀的比例因子、該幀的位元分配結果
//add by xhy
file *output_txt;
char temp[100] = "info.txt"; 為儲存資料幀資訊的檔案
//end
...int main (int argc, char **argv)
#ifdef newencode
...#else
scale_factor_calc (*sb_sample, scalar, nch, frame.sblimit);
pick_scale (scalar, &frame, max_sc);
//add by xhy
int sb, gr, ch;
if (framenum == 100) //選擇第100個資料幀
資料壓縮 實驗六 MPEG音訊編碼實驗
下圖為mpeg音訊編碼layerii流程圖 32個子帶濾波器組 通過子帶分析濾波器組使訊號具有高的時間解析度,確保在短暫衝擊訊號情況下,編碼的聲音頻號具有足夠高的質量。將pcm樣本變換到32個子帶的頻域訊號 如果輸入的取樣頻率為48khz 那麼子帶的頻率寬度為48 2 32 0.75hz 該多相濾波...
資料壓縮實驗六 MPEG音訊編碼
mpeg 1 audio layerii編碼器原理 對各個子帶每12個樣點進行一次比例因子計算。先定出12個 樣點中絕對值的最大值。查比例因子表中比這個最大值大的 最小值作為比例因子。用6位元表示。第2層的一幀對應36個子帶樣值,是第1層的三倍,原 則上要傳三個比例因子。為了降低比例因子的傳輸碼率,...
資料壓縮 MPEG音訊編碼
一.實驗原理 2.mpeg 1音訊編碼器框架圖 多相濾波器組 polyphasefilter bank 將pcm 樣本變換到 32個子帶的頻域訊號 如果輸入的取樣頻率為 48khz 那麼子帶的頻率寬度為 48 2 32 0.75hz 心理聲學模型 psychoacousticmodel 計算訊號中不...