資料壓縮實驗六 MPEG音訊編碼

2021-08-03 14:41:24 字數 1638 閱讀 7282

mpeg-1 audio layerii編碼器原理

對各個子帶每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位元。 

m2aenc.c

file *output_txt;

char temp[50] = "frame_info.txt";

output_txt = fopen(temp, "w");

if (output_txt == null)

printf("creating output txt file failed.\n");

......

scale_factor_calc (*sb_sample, scalar, nch, frame.sblimit);

pick_scale (scalar, &frame, max_sc);

//add by susu

int sb,gr,ch;

if (framenum == 200)

fprintf(output_txt, "\n");}}

}//end

......

transmission_pattern (scalar, scfsi, &frame);

main_bit_allocation (smr, scfsi, bit_alloc, &adb, &frame, &glopts);

//add by susu

if (framenum == 200)}}

//end

實驗結果

資料壓縮 實驗六 MPEG音訊編碼實驗

下圖為mpeg音訊編碼layerii流程圖 32個子帶濾波器組 通過子帶分析濾波器組使訊號具有高的時間解析度,確保在短暫衝擊訊號情況下,編碼的聲音頻號具有足夠高的質量。將pcm樣本變換到32個子帶的頻域訊號 如果輸入的取樣頻率為48khz 那麼子帶的頻率寬度為48 2 32 0.75hz 該多相濾波...

資料壓縮 MPEG音訊編碼

一.實驗原理 2.mpeg 1音訊編碼器框架圖 多相濾波器組 polyphasefilter bank 將pcm 樣本變換到 32個子帶的頻域訊號 如果輸入的取樣頻率為 48khz 那麼子帶的頻率寬度為 48 2 32 0.75hz 心理聲學模型 psychoacousticmodel 計算訊號中不...

資料壓縮試驗 MPEG音訊編碼

框架圖 計算訊號中不可聽覺感知的部分 計算雜訊遮蔽效應 mpeg 1定義了兩種模型。心理聲學模型1 計算複雜度低,但對假設使用者聽不到的部分壓縮太嚴重 心理聲學模型2 1.將樣本變換到頻域 32個等分的子帶訊號並不能精確地反映人耳的聽覺特性。引入fft補償頻率解析度不足的問題。模型1 採用512 l...