MP3解碼原理

來源:互聯網
上載者:User

原文地址:http://www.eefocus.com/jjbearustc/blog/07-09/3525_b7189.html#articletop

PCM訊號進行MP3壓縮時,以1152個PCM採樣值為單位,封裝成具有固定長度的MP3資料幀,幀是MP3檔案的最小組成單位。在解碼時,利用資料幀裡的資訊就可以恢複出1152個PCM採樣值。這1152個採樣值被分為2個粒度組,每個粒度組包含576個採樣值。一個MP3資料幀分為5個部分:幀頭、CRC校正值、邊資訊、主要資料、附加資料

1       資料流的同步以及幀頭資訊的讀取。MP3資料流的同步以幀為單位,每一幀的幀頭都包含同步資訊。這個同步資訊是連續的12位元的‘1’組成。MP3音頻解碼過程中的第一步就是使解碼器與輸入資料流同步。在啟動解碼器後,可以通過搜尋資料流中的12位元長的同步字來完成。在取得同步以後跟著的資料就是幀頭資訊,包括採樣率、填充位、位元速率等資訊。

2       主要資料的讀取。在MP3編碼過程中使用了位元池技術,所以當前幀的主要資料不一定全部都在當前幀中,在解碼過程中,必須結合主要資料開始指標的值來確定主要資料的開始位置。主要資料包含的資料有縮放因子、哈夫曼資料及附加資料。這些欄位在主要資料中有固定的格式。

3        哈夫曼解碼和反量化。在MP3編碼過程中,根據心理聲學模型的輸出,對離散餘弦變換的輸出樣本以粒度為單位進行的量化和分配,再對量化的結果進行哈夫曼編碼。量化和編碼主要是通過迴圈迭代完成的,迴圈模組分為三層來描述,最高層為幀迴圈,它調用外層迭代迴圈,而外層迭代迴圈又調用內層迭代迴圈。但在解碼過程中,哈夫曼解碼和反量化過程是分開實現的。每個粒度組的頻率線都是用不同的哈夫曼表來進行編碼的,因此在解碼過程中,需要採用不同的解碼方法。反量化頻譜過程就是基於所得到的哈夫曼解碼資料,根據逆量化全縮放公式和幀邊資訊,對於不同的窗類型採用不同的公式以恢複576個頻率線的真實值。

4       立體聲處理

5       重排序和反混疊。反量化過程中得出的頻譜值不是按相同順序排列的。在編碼的MDCT過程中,對於長窗產生的頻譜值先按子帶然後按頻率排列;對於短窗,產生的頻譜值按子帶、窗、頻率的順序排列。為了提供哈夫曼編碼效率,短窗中的資料被重新排列,按照子帶、頻率、窗的順序排列。解碼時,重排序及時將短窗中的頻譜值重新排列。同樣,在編碼的MDCT過程中,為了得到更好的頻域特性,對長窗對應每個子帶進行了去混疊處理,為了得到正確的音頻訊號,在解碼時必須對長窗對應的子帶進行混疊重建。

6       逆向離散餘弦變換。逆向離散餘弦變換主要是使用逆向離散餘弦變換的公式,對反量化得出的訊號進行變換。逆向離散餘弦變換的計算十分複雜,為了提高效率,可以對計算做一些最佳化。

7       頻率反轉和子帶合成。頻率反轉是對逆向離散餘弦變換的輸出值中的奇數號子帶(0到31號子帶中的1,3,5,...,31)中的奇數號樣本值(每個子帶中的0到17號樣本值的1,3,5,...,17號樣本值)進行反相處理,用來補償編碼時為提高離散餘弦變換效率而進行的頻率反轉。子帶合成濾波器將32個頻寬相等的子帶中的頻域訊號反變換成時域訊號。子帶合成是逆向離散餘弦變換後的一個通道中32個子帶的樣值,經過一系列的計算還原出32個PCM數字音頻訊號的過程。子帶合成過程先將32個子帶樣值進行逆向離散餘弦變換,產生64個中間值,將這64個中間值轉入到一個長為1024點的類似先進先出FIFO的緩衝,再在這1024個值中抽取一半,構成一個512個值的向量,再進行加窗運算,最後將加窗結果進行疊加產生32個時域輸出。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.