一種基於faad2main模式的多路音頻實時解碼軟體設計方法
2023-04-28 12:40:21 2
專利名稱:一種基於faad2 main模式的多路音頻實時解碼軟體設計方法
技術領域:
本發明涉及一種基於FAAD2 MAIN模式的多路音頻實時解碼軟體設計方法,該軟體 設計方法可以使得FAAD2解碼器能夠進行多路音頻解碼,屬於通信領域。
背景技術:
先進音頻編碼(Advanced Audio Coding,簡稱AAC)是在MP3基礎上發展起來的新 一代感知音頻壓縮編解碼技術,該技術綜合了多種主流音頻編解碼技術的優點,具有信號 壓縮比高,重建音質好,編解碼過程高度模塊化和聲道配置靈活等特點。FAAC是目前最好的 開源AAC編碼器,其編碼質量已經完全能和商業性質的編碼器相媲美了,FAAD2是其對應的 AAC解碼器。FAAD2解碼器支持單路64通道音頻解碼,不支持多路音頻解碼,但在實際應用中, 經常需要AAC解碼器能夠處理來自不同傳輸鏈路的多路音頻。
發明內容
為了實現FAAD2支持多路音頻解碼,本發明提供了 一種基於FAAD2 MAIN模式的多 路音頻實時解碼軟體設計方法。該軟體設計方法主要包括多路音頻接收機制模塊,包含多 路接收傳輸緩衝區,其中每路接收傳輸緩衝區能夠存儲2幀的AAC碼流,防止數據溢出並保 證AAC解碼器正確接收多路音頻數據;多路濾波器組預留緩衝區,其中每路預留緩衝區存 儲上一幀解碼數據IMDCT後的PCM數據,並利用當前鏈路濾波器組預留緩衝區中的PCM數 據和當前解碼數據IMDCT後的PCM數據進行時域疊加,進而得到輸出音頻數據;多路音頻發 送機制模塊,包含多路發送傳輸緩衝區,其中每路發送傳輸緩衝區存儲1幀輸出音頻數據, 能夠保證AAC解碼器正確發送多路輸出音頻數據。具體步驟如下步驟一多路接收傳輸緩衝區主動地從多路數據鏈路中獲取AAC碼流,多路音頻接 收機制模塊依據準則將當前鏈路接收傳輸緩衝區中的前一幀AAC碼流存入當前解碼緩衝 區;步驟二無噪聲解碼、反量化及頻譜處理;步驟三IMDCT變換,結合當前鏈路濾波器組預留緩衝區中的數據獲得輸出音頻數 據;步驟四將當前解碼數據IMDCT後的PCM數據存入對應的濾波器組預留緩衝區,覆 蓋原有數據;步驟五多路音頻發送機制模塊負責將輸出音頻發送到對應的數據鏈路中。其中,所述的步驟一中當某路或某幾路接收傳輸緩衝區的數據滿一幀時,多路音 頻接收機制模塊依據準則將當前鏈路接收傳輸緩衝區中的前一幀AAC碼流存入當前解碼 緩衝區,準則指將多路接收傳輸緩衝區進行編號,依次處理各接收傳輸緩衝區中的數據,如 果某接收傳輸緩衝區中的數據未得到更新,則此次跳過對該接收傳輸緩衝區的處理,繼續處理下一個接收傳輸緩衝區。其中,所述的步驟二中無噪聲解碼、反量化及頻譜處理是FAAD2中的軟體模塊, 本發明未對其進行任何修改。其中,所述的步驟三中多路濾波器組預留緩衝區,其中每路預留緩衝區存儲上一 幀解碼數據IMDCT後的PCM數據,利用當前鏈路濾波器組預留緩衝區中的PCM數據和當前 解碼數據IMDCT後的PCM數據進行時域疊加,進而得到輸出音頻數據。其中,所述的步驟四中多路濾波器組預留緩衝區初始數據為全零。其中,所述的步驟五中輸出音頻數據存入對應的發送傳輸緩衝區後,立即觸發多 路音頻發送機制模,將輸出音頻數據發送到對應的數據鏈路中。本發明的原理在開源FAAD2解碼器的基礎上,通過設置多路音頻接收機制模塊、 多路濾波器組預留緩衝區及多路音頻發送機制模塊來實現多路AAC解碼。本發明與現有技術相比的優點在於1、FAAD2實現多路音頻解碼;2、FAAD2程序修改量小;3、多路音頻接收發送機制模塊能夠正確地接收、發送多路音頻數據,魯棒性高。
圖1是本發明提出的多路音頻實時解碼軟體設計方法的整體流程圖;圖2是本發明提出的多路音頻接收機制流程圖;圖3是本發明提出的多路接收傳輸緩衝區指定序號示意圖;圖4是本發明圖的濾波器組預留緩衝區切換示意圖;圖5是本發明提出的多路音頻發送機制流程圖。
具體實施例方式下面結合附圖,對本發明的技術方案做進一步說明。本發明提供了一種基於FAAD2 MAIN模式的多路音頻實時解碼軟體設計方法。該軟 件設計方法主要包括多路音頻接收機制模塊,包含多路接收傳輸緩衝區,其中每路接收傳 輸緩衝區能夠存儲2幀的AAC碼流,防止數據溢出同時保證AAC解碼器正確接收多路音頻 數據;多路濾波器組預留緩衝區,其中每路預留緩衝區存儲上一幀解碼數據IMDCT後的PCM 數據,並利用當前鏈路濾波器組預留緩衝區中的PCM數據和當前解碼數據IMDCT後的PCM 數據進行時域疊加,進而得到輸出音頻數據;多路音頻發送機制模塊,包含多路發送傳輸緩 衝區,其中每路發送傳輸緩衝區存儲1幀輸出音頻數據,能夠保證AAC解碼器正確發送多路 輸出音頻數據。參見附圖1,多路接收傳輸緩衝區接收來自不同傳輸鏈路中的多路AAC碼流 (101);然後,多路音頻接收機制模塊依據準則將當前鏈路接收傳輸緩衝區中的前一幀AAC 碼流存入當前解碼緩衝區(102);接著,進行無噪聲解碼、反量化及頻譜處理(103);根據 chain(當前處理的鏈路)值使用指針對當前鏈路濾波器組預留緩衝區進行切換(104);利 用當前鏈路濾波器組預留緩衝區的PCM數據和當前解碼數據IMDCT後的PCM數據進行時域 疊加,進而得到輸出音頻數據,再將當前解碼數據IMDCT後的PCM數據存入對應的濾波器組預留緩衝區,覆蓋原有數據(105);最後,多路音頻發送機制模塊負責將輸出音頻發送到對 應的數據鏈路中(106)。101是本發明提出的多路音頻接收機制模塊,是多路音頻實時解碼軟體設計方法 的核心模塊。參見附圖2,對多路接收傳輸緩衝區進行編號及初始化(201),編號指依次指 定接收傳輸緩衝區的序號(301),初始化指各接收傳輸緩衝區指初始值全為零,且chain =1 ;接著,各接收傳輸緩衝區接收數據,直至某路或某幾路緩衝區中的數據滿一幀(202); 然後查詢AAC解碼器是否空閒(203);如果AAC解碼器當前狀態為忙,則返回到202,如果 AAC解碼器當前狀態為空閒,則檢測chain鏈路接收傳輸緩衝區(204);其數據是否滿一幀 (205);如不滿一幀,則chain++(206),並返回到204 ;如滿一幀,將當前chain鏈路接收傳 輸緩衝區數據存入當前解碼緩衝區。本發明的多路音頻接收機制模塊的核心思想是優先處 理chain鏈路接收傳輸緩衝區,如chain鏈路接收傳輸緩衝區未準備就緒,則處理下一鏈 路接收傳輸緩衝區,如此在突發狀態下,能夠避免因多路音頻接收機制模塊一直等待chain 鏈路數據,進而造成不能及時處理其它鏈路數據的情況。104中當前濾波器組預留緩衝區的切換是通過指針的形式完成切換(401)。106是本發明提出的多路音頻發送機制模塊,是多路音頻實時解碼軟體設計方法 的核心模塊。參見附圖5,對多路發送傳輸緩衝區進行編號及初始化(501),編號指依次指 定發送傳輸緩衝區的序號,初始化指各發送傳輸緩衝區初始值全為零;接著,多路音頻發送 機制模塊檢測AAC解碼器是否完成解碼(502);如未完成,則繼續檢測,直至完成,如完成, 則將解碼後的輸出音頻數據從chain鏈路發送傳輸緩衝區發送到對應的數據傳輸鏈路中。說明書附圖中出現的英文縮寫,其含義如下IMDCT 改進型離散餘弦反變換;chain 當前處理鏈路;PCM:脈衝編碼調製。
權利要求
一種基於FAAD2 MAIN模式的多路音頻實時解碼軟體設計方法,其特徵在於該方法具體包括以下步驟(1)多路接收傳輸緩衝區主動地從多路數據鏈路中獲取AAC碼流,多路音頻接收機制模塊依據準則將當前鏈路接收傳輸緩衝區中的前一幀AAC碼流存入當前解碼緩衝區;(2)無噪聲解碼、反量化及頻譜處理;(3)IMDCT變換,結合當前鏈路濾波器組預留緩衝區中的數據獲得輸出音頻數據;(4)將當前解碼數據IMDCT後的PCM數據存入對應的濾波器組預留緩衝區,覆蓋原有數據;(5)多路音頻發送機制模塊負責將輸出音頻發送到對應的數據鏈路中。
2.根據權利要求1所述的一種基於FAAD2MAIN模式的多路音頻實時解碼軟體設計方 法,其特徵在於所述的步驟(1)中當某路或某幾路接收傳輸緩衝區的數據滿一幀時,多 路音頻接收機制模塊依據準則將當前鏈路接收傳輸緩衝區中的前一幀AAC碼流存入當前 解碼緩衝區,準則指將多路接收傳輸緩衝區進行編號,依次處理各接收傳輸緩衝區中的數 據,如果某接收傳輸緩衝區中的數據未得到更新,則此次跳過對該接收傳輸緩衝區的處理, 繼續處理下一個接收傳輸緩衝區。
3.根據權利要求1所述的一種基於FAAD2MAIN模式的多路音頻實時解碼軟體設計方 法,其特徵在於所述的步驟(2)中無噪聲解碼、反量化及頻譜處理是FAAD2中的軟體模 塊,本發明未對其進行任何修改。
4.根據權利要求1所述的一種基於FAAD2MAIN模式的多路音頻實時解碼軟體設計方 法,其特徵在於所述的步驟(3)中多路濾波器組預留緩衝區,其中每路預留緩衝區存儲 上一幀解碼數據IMDCT後的PCM數據,利用當前鏈路濾波器組預留緩衝區中的PCM數據和 當前解碼數據IMDCT後的PCM數據進行時域疊加,進而得到輸出音頻數據。
5.根據權利要求1所述的一種基於FAAD2MAIN模式的多路音頻實時解碼軟體設計方 法,其特徵在於所述的步驟(4)中多路濾波器組預留緩衝區初始數據為全零。
6.根據權利要求1所述的一種基於FAAD2MAIN模式的多路音頻實時解碼軟體設計方 法,其特徵在於所述的步驟(5)中輸出音頻數據存入對應的發送傳輸緩衝區後,立即觸 發多路音頻發送機制模,將輸出音頻數據發送到對應的數據鏈路中。
全文摘要
本發明提供了一種基於FAAD2MAIN模式的多路音頻實時解碼軟體設計方法。該軟體設計方法主要包括多路音頻接收機制模塊,包含多路接收傳輸緩衝區,其中每路接收傳輸緩衝區能夠存儲2幀的AAC碼流,防止數據溢出並保證AAC解碼器正確接收多路音頻數據;多路濾波器組預留緩衝區,其中每路預留緩衝區存儲上一幀解碼數據IMDCT後的PCM數據,並利用當前鏈路濾波器組預留緩衝區中的PCM數據和當前解碼數據IMDCT後的PCM數據進行時域疊加,進而得到輸出音頻數據;多路音頻發送機制模塊,包含多路發送傳輸緩衝區,其中每路發送傳輸緩衝區存儲1幀輸出音頻數據,能夠保證AAC解碼器正確發送多路輸出音頻數據。
文檔編號G10L19/00GK101968959SQ20101028771
公開日2011年2月9日 申請日期2010年9月19日 優先權日2010年9月19日
發明者毛峽, 邵偉國 申請人:北京航空航天大學