2 MP3編解碼原理
2.1 MP3音頻壓縮標準概述
MP3全稱是動態影像專家壓縮標準音頻層面3(Moving Picture Experts Group Audio Layer III)。是當今較流行的一種數字音頻編碼和有損壓縮格式,它設計用來大幅度地降低音頻數據量,而對于大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。它是在1991年由位于德國埃爾朗根的研究組織Fraunhofer-Gesellschaft的一組工程師發明和標準化的。
簡單地說,MP3就是一種音頻壓縮技術,由于這種壓縮方式的全稱叫MPEG?Audio Layer3,所以人們把它簡稱為MP3。MP3是利用 MPEG Audio Layer 3 的技術,將音樂以1:10 甚至 1:12 的壓縮率,壓縮成容量較小的file,換句話說,能夠在音質丟失很小的情況下把文件壓縮到更小的程度。而且還非常好的保持了原來的音質。正是因為MP3體積小,音質高的特點使得MP3格式幾乎成為網上音樂的代名詞。每分鐘音樂的MP3格式只有1MB左右大小,這樣每首歌的大小只有3-4兆字節。使用MP3播放器對MP3文件進行實時的解壓縮(解碼),這樣,高品質的MP3音樂就播放出來了。?
MP3是一個數據壓縮格式。它丟棄掉脈沖編碼調制(PCM)音頻數據中對人類聽覺不重要的數據,從而達到了小得多的文件大小。
MP3是一種基于頻域的子帶編碼,其基本流程如圖2-1所示:
圖2-1 MP3壓縮算法流程框圖【1】
原始的模擬信號經過AD采樣器后,轉化為PCM樣本,作為MP3編碼器的數據輸入源。整個MP3編碼是基于頻域的編碼,因此必須將原始的PCM做時頻轉換。由于我們不可能將整個時域上的信號通過一次付立葉變換轉換到頻域上(音頻信號是時變的),因此只能在時域上逐段進行,于是我們將PCM樣本分塊進行處理。對單聲道MPEG-1而言,一幀包含2個gr, MP3編碼則是以gr為基本單元的。首先576個PCM樣本經過多相分析濾波器組(Polyphase Analysis Filterbank),轉換成32個等頻寬的子帶信號(Subband Signal),然后通過改良離散余弦變換(Modified Discrete CosineTransform,MDCT),將子帶時域信號轉化為頻線值,每個子帶18條,一共576條頻線。在此過程中,會用到第二心理聲學模型提供的窗口類型。對于快變信號做三次連續短窗(12點)的MDCT,以提高信號的時域分辨率和控制前回音;對于慢變信號做一次長窗(36點)的MDCT,以提高信號的頻域分辨率。[1]
同時,第二心理聲學模型根據左右聲道的相關性計算決定用M/S(Middle/Side)還是用L/R(Left/Right)編碼方式。然后根據第二心理聲學模型提供的PE(perceptual entropy)值分配每幀編碼比特數,對頻線值進行量化;再將量化結果進行反量化計算量化噪聲,看其是否在掩敝曲線以下;否則反復調整比例因子(scalefactor),對量化結果重新量化,直到量化噪聲達到最優,退出量化循環,對量化結果進行哈夫曼編碼。最后按照MPEG標準規定的數據流格式輸出。