專利名稱:一種基于faac lc模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于FAAC LC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法,該軟件設(shè) 計(jì)方法可以使得FAAC編碼器能夠進(jìn)行多路音頻編碼,屬于通信領(lǐng)域。
背景技術(shù):
先進(jìn)音頻編碼(Advanced Audio Coding,簡(jiǎn)稱AAC)是在MP3基礎(chǔ)上發(fā)展起來(lái)的新 一代感知音頻壓縮編解碼技術(shù),該技術(shù)綜合了多種主流音頻編解碼技術(shù)的優(yōu)點(diǎn),具有信號(hào) 壓縮比高,重建音質(zhì)好,編解碼過(guò)程高度模塊化和聲道配置靈活等特點(diǎn)。FAAC是目前最好的 開(kāi)源AAC編碼器,其編碼質(zhì)量完全能和商業(yè)性質(zhì)的編碼器相媲美。FAAC編碼器支持單路64通道音頻編碼,不支持多路音頻編碼,但在實(shí)際應(yīng)用中, 經(jīng)常需要AAC編碼器能夠處理來(lái)自不同傳輸鏈路的多路音頻。
發(fā)明內(nèi)容
為了實(shí)現(xiàn)FAAC支持多路音頻編碼,本發(fā)明提供了一種基于FAAC LC模式的多路音 頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法。該軟件設(shè)計(jì)方法主要包括多路音頻接收機(jī)制模塊,包含多路接 收傳輸緩沖區(qū),其中每路接收傳輸緩沖區(qū)能夠存儲(chǔ)2幀未編碼的PCM數(shù)據(jù),能夠防止接收數(shù) 據(jù)溢出,同時(shí)保證AAC編碼器正確接收多路音頻數(shù)據(jù);多路預(yù)存接收緩沖區(qū),其中每路預(yù)存 接收緩沖區(qū)用于存儲(chǔ)該鏈路需要預(yù)存的3幀數(shù)據(jù)及當(dāng)前編碼數(shù)據(jù);多路窗型判定預(yù)留緩沖 區(qū),其中每路預(yù)留緩沖區(qū)用于存儲(chǔ)上一幀編碼數(shù)據(jù),利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀 編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行窗型判定;多路濾波器組預(yù)留緩沖區(qū),其中每路預(yù)留緩沖區(qū) 用于存儲(chǔ)上一幀編碼數(shù)據(jù),利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù) 進(jìn)行MDCT變換;多路音頻發(fā)送機(jī)制模塊,包含多路發(fā)送傳輸緩沖區(qū),其中每路發(fā)送傳輸緩 沖區(qū)存儲(chǔ)1幀編碼后的AAC碼流,能夠保證AAC編碼器正確發(fā)送多路音頻數(shù)據(jù)。具體步驟 如下步驟一多路接收傳輸緩沖區(qū)主動(dòng)地從多路數(shù)據(jù)鏈路中獲取未編碼的PCM數(shù)據(jù),多 路音頻接收機(jī)制模塊負(fù)責(zé)將接收到的數(shù)據(jù)正確地存入對(duì)應(yīng)的預(yù)存接收緩沖區(qū);步驟二依據(jù)準(zhǔn)則將預(yù)存接收緩沖區(qū)切換為當(dāng)前編碼預(yù)存接收緩沖區(qū);步驟三利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行窗型 判定;步驟四將當(dāng)前編碼數(shù)據(jù)存入對(duì)應(yīng)的窗型判定預(yù)留緩沖區(qū),覆蓋原有數(shù)據(jù);步驟五進(jìn)行窗型切換,抑制預(yù)回聲;步驟六利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行 MDCT ;步驟七將當(dāng)前編碼數(shù)據(jù)存入對(duì)應(yīng)的濾波器組預(yù)留緩沖區(qū),覆蓋原有數(shù)據(jù);步驟八AAC LC模式可選模塊及量化編碼,生成AAC碼流;步驟九AAC碼流存入對(duì)應(yīng)的發(fā)送傳輸緩沖區(qū),多路音頻發(fā)送機(jī)制模塊負(fù)責(zé)將AAC
3碼流發(fā)送到對(duì)應(yīng)的數(shù)據(jù)鏈路中。其中,所述的步驟一中當(dāng)某路或某幾路接收傳輸緩沖區(qū)的數(shù)據(jù)滿一幀時(shí),多路音 頻接收機(jī)制模塊將數(shù)據(jù)存入對(duì)應(yīng)的預(yù)存接收緩沖區(qū)。其中,所述的步驟二中準(zhǔn)則指將多路預(yù)存接收緩沖區(qū)進(jìn)行編號(hào),依次將預(yù)存接收 緩沖區(qū)切換為當(dāng)前編碼預(yù)存接收緩沖區(qū),如果某預(yù)存接收緩沖區(qū)中的數(shù)據(jù)不滿4幀或未得 到更新,則此次跳過(guò)對(duì)該預(yù)存接收緩沖區(qū)的處理,繼續(xù)處理下一個(gè)預(yù)存接收緩沖區(qū)。其中,所述的步驟三中FAAC采用基于信號(hào)各短塊能量變化率和高頻比變換率的 窗型判定算法,需要預(yù)留上一幀的編碼數(shù)據(jù)。其中,所述的步驟四中窗型判定預(yù)留緩沖區(qū)初始數(shù)據(jù)為全零。其中,所述的步驟六中為消除時(shí)域混疊,需要預(yù)留上一幀的編碼數(shù)據(jù)。其中,所述的步驟七中濾波器組預(yù)留緩沖區(qū)初始數(shù)據(jù)為全零。本發(fā)明的原理在開(kāi)源FAAC編碼器的基礎(chǔ)上,通過(guò)設(shè)置多路音頻接收機(jī)制模塊、 多路預(yù)存接收緩沖區(qū)、多路窗型判定預(yù)留緩沖區(qū)、多路濾波器組預(yù)留緩沖區(qū)及多路音頻發(fā) 送機(jī)制模塊來(lái)實(shí)現(xiàn)多路AAC編碼。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于1、FAAC實(shí)現(xiàn)多路音頻編碼;2、FAAC程序修改量??;3、多路音頻接收發(fā)送機(jī)制模塊能夠正確地接收、發(fā)送多路音頻數(shù)據(jù),魯棒性高。
圖1是本發(fā)明提出的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法的整體流程圖;圖2是本發(fā)明提出的多路音頻接收機(jī)制流程圖;圖3是本發(fā)明提出的多路接收傳輸緩沖區(qū)指定序號(hào)示意圖;圖4是本發(fā)明圖的當(dāng)前編碼預(yù)存接收緩沖區(qū)切換示意圖;圖5是本發(fā)明圖的窗型判定預(yù)留緩沖區(qū)切換示意圖;圖6是本發(fā)明圖的濾波器組預(yù)留緩沖區(qū)切換示意圖;圖7是本發(fā)明提出的多路音頻發(fā)送機(jī)制流程圖。
具體實(shí)施例方式下面結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步說(shuō)明。本發(fā)明提供了一種基于FAAC LC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法。該軟件 設(shè)計(jì)方法主要包括多路音頻接收機(jī)制模塊,包含多路接收傳輸緩沖區(qū),其中每路接收傳輸 緩沖區(qū)能夠存儲(chǔ)2幀未編碼的PCM數(shù)據(jù),能夠防止接收數(shù)據(jù)溢出,同時(shí)保證AAC編碼器正確 接收多路音頻數(shù)據(jù);多路預(yù)存接收緩沖區(qū),其中每路預(yù)存接收緩沖區(qū)用于存儲(chǔ)該鏈路需要 預(yù)存的3幀數(shù)據(jù)及當(dāng)前編碼數(shù)據(jù);多路窗型判定預(yù)留緩沖區(qū),其中每路預(yù)留緩沖區(qū)用于存 儲(chǔ)上一幀編碼數(shù)據(jù),利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行窗 型判定;多路濾波器組預(yù)留緩沖區(qū),其中每路預(yù)留緩沖區(qū)用于存儲(chǔ)上一幀編碼數(shù)據(jù),利用當(dāng) 前鏈路預(yù)留緩沖區(qū)中的上一幀編 數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行MDCT變換;多路音頻發(fā)送機(jī) 制模塊,包含多路發(fā)送傳輸緩沖區(qū),其中每路發(fā)送傳輸緩沖區(qū)存儲(chǔ)1幀編碼后的AAC碼流,能夠保證AAC編碼器正確發(fā)送多路音頻數(shù)據(jù)。參見(jiàn)附圖1,多路接收傳輸緩沖區(qū)接收來(lái)自不同傳輸鏈路中的多路未編碼PCM數(shù) 據(jù)(101);然后多路音頻接收機(jī)制模塊將接收到的PCM數(shù)據(jù)存入對(duì)應(yīng)的預(yù)存接收緩沖區(qū) (102);接著根據(jù)chain(當(dāng)前處理的鏈路)值使用指針對(duì)當(dāng)前編碼預(yù)存接收緩沖區(qū)進(jìn)行切 換(103);在進(jìn)行窗型判定之前,先根據(jù)chain值使用指針對(duì)當(dāng)前窗型判定預(yù)留緩沖區(qū)進(jìn)行 切換(104);之后利用當(dāng)前編碼數(shù)據(jù)與當(dāng)前鏈路窗型判定預(yù)留緩沖區(qū)中的數(shù)據(jù)進(jìn)行窗型 判定(105);切換窗型,達(dá)到抑制預(yù)回聲的目的(106);根據(jù)chain值使用指針對(duì)當(dāng)前濾波 器組預(yù)留緩沖區(qū)進(jìn)行切換(107);進(jìn)而利用當(dāng)前編碼數(shù)據(jù)與當(dāng)前鏈路濾波器組預(yù)留緩沖區(qū) 中的數(shù)據(jù)進(jìn)行MDCT (108);完成AAC可選模塊及量化編碼,生成AAC碼流(109);最后AAC碼 流存入對(duì)應(yīng)的發(fā)送傳輸緩沖區(qū),多路音頻發(fā)送機(jī)制模塊負(fù)責(zé)將AAC碼流發(fā)送到對(duì)應(yīng)的數(shù)據(jù) 鏈路中(110)。101是本發(fā)明提出的多路音頻接收機(jī)制模塊,是多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法 的核心模塊。參見(jiàn)附圖2,對(duì)多路接收傳輸緩沖區(qū)進(jìn)行編號(hào)及初始化(201),編號(hào)指依次指 定接收傳輸緩沖區(qū)的序號(hào)(301),初始化指各接收傳輸緩沖區(qū)初始值全為零,且chain = 1 ; 之后各接收傳輸緩沖區(qū)接收數(shù)據(jù),直至某路或某幾路緩沖區(qū)中的數(shù)據(jù)滿一幀(202);然后 查詢AAC編碼器是否空閑(203);如果AAC編碼器當(dāng)前狀態(tài)為忙,則返回到202,如果AAC編 碼器當(dāng)前狀態(tài)為空閑,則檢測(cè)chain鏈路接收傳輸緩沖區(qū)(204);其數(shù)據(jù)是否滿一幀(205); 如不滿一幀則chain++(206),并返回到204 ;如滿一幀,則將chain鏈路傳輸緩沖區(qū)的數(shù)據(jù) 存入對(duì)應(yīng)的chain鏈路預(yù)存接收緩沖區(qū)。本發(fā)明的多路音頻接收機(jī)制模塊的核心思想是 優(yōu)先處理chain鏈路接收傳輸緩沖區(qū),如chain鏈路接收傳輸緩沖區(qū)未準(zhǔn)備就緒,則處理下 一鏈路接收傳輸緩沖區(qū),如此在突發(fā)狀態(tài)下,能夠避免因多路音頻接收機(jī)制模塊一直等待 chain鏈路數(shù)據(jù),進(jìn)而造成不能及時(shí)處理其它鏈路數(shù)據(jù)的情況。103中的當(dāng)前編碼預(yù)存接收緩沖區(qū)切換是通過(guò)指針的形式完成切換(401),105中 當(dāng)前窗型判定預(yù)留緩沖區(qū)的切換是通過(guò)指針的形式完成切換(501),108中當(dāng)前濾波器組 預(yù)留緩沖區(qū)的切換是通過(guò)指針的形式完成切換(601)。110是本發(fā)明提出的多路音頻發(fā)送機(jī)制模塊,是多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法 的核心模塊。參見(jiàn)附圖7,對(duì)多路發(fā)送傳輸緩沖區(qū)進(jìn)行編號(hào)及初始化(701),編號(hào)指依次指 定發(fā)送傳輸緩沖區(qū)的序號(hào),初始化指各發(fā)送傳輸緩沖區(qū)初始值全為零;之后多路音頻發(fā)送 機(jī)制模塊檢測(cè)AAC編碼器是否完成編碼(702);如未完成,則繼續(xù)檢測(cè),直至完成,如完成, 則將編碼后的AAC碼流從chain鏈路發(fā)送傳輸緩沖區(qū)發(fā)送至對(duì)應(yīng)的數(shù)據(jù)傳輸鏈路中。說(shuō)明書(shū)附圖中出現(xiàn)的英文縮寫(xiě),其含義如下MDCT 改進(jìn)型離散余弦變換;chain 當(dāng)前處理鏈路。
權(quán)利要求
一種基于FAAC LC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法,其特征在于該方法具體包括以下步驟(1)多路接收傳輸緩沖區(qū)主動(dòng)地從多路數(shù)據(jù)鏈路中獲取未編碼的PCM數(shù)據(jù),多路音頻接收機(jī)制模塊負(fù)責(zé)將接收到的數(shù)據(jù)正確地存入對(duì)應(yīng)的預(yù)存接收緩沖區(qū);(2)依據(jù)準(zhǔn)則將預(yù)存接收緩沖區(qū)切換為當(dāng)前編碼預(yù)存接收緩沖區(qū);(3)利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行窗型判定;(4)將當(dāng)前編碼數(shù)據(jù)存入對(duì)應(yīng)的窗型判定預(yù)留緩沖區(qū),覆蓋原有數(shù)據(jù);(5)進(jìn)行窗型切換,抑制預(yù)回聲;(6)利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行MDCT;(7)將當(dāng)前編碼數(shù)據(jù)存入對(duì)應(yīng)的濾波器組預(yù)留緩沖區(qū),覆蓋原有數(shù)據(jù);(8)AAC LC模式可選模塊及量化編碼,生成AAC碼流;(9)AAC碼流存入對(duì)應(yīng)的發(fā)送傳輸緩沖區(qū),多路音頻發(fā)送機(jī)制模塊負(fù)責(zé)將AAC碼流發(fā)送到對(duì)應(yīng)的數(shù)據(jù)鏈路中。
2.根據(jù)權(quán)利要求1所述的一種基于FAACLC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法, 其特征在于所述的步驟(1)中當(dāng)某路或某幾路接收傳輸緩沖區(qū)的數(shù)據(jù)滿一幀時(shí),多路音 頻接收機(jī)制模塊將數(shù)據(jù)存入對(duì)應(yīng)的預(yù)存接收緩沖區(qū)。
3.根據(jù)權(quán)利要求1所述的一種基于FAACLC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法, 其特征在于所述的步驟(2)中準(zhǔn)則指將多路預(yù)存接收緩沖區(qū)進(jìn)行編號(hào),依次將預(yù)存接收 緩沖區(qū)切換為當(dāng)前編碼預(yù)存接收緩沖區(qū),如果某預(yù)存接收緩沖區(qū)中的數(shù)據(jù)不滿4幀或未得 到更新,則此次跳過(guò)對(duì)該預(yù)存接收緩沖區(qū)的處理,繼續(xù)處理下一個(gè)預(yù)存接收緩沖區(qū)。
4.根據(jù)權(quán)利要求1所述的一種基于FAACLC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法, 其特征在于所述的步驟(3)中FAAC采用基于信號(hào)各短塊能量變化率和高頻比變換率的 窗型判定算法,需要預(yù)留上一幀的編碼數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的一種基于FAACLC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法, 其特征在于所述的步驟(4)中窗型判定預(yù)留緩沖區(qū)初始數(shù)據(jù)為全零。
6.根據(jù)權(quán)利要求1所述的一種基于FAACLC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法, 其特征在于所述的步驟(6)中為消除時(shí)域混疊,需要預(yù)留上一幀的編碼數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的一種基于FAACLC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法, 其特征在于所述的步驟(7)中濾波器組預(yù)留緩沖區(qū)初始數(shù)據(jù)為全零。
全文摘要
本發(fā)明提供了一種基于FAAC LC模式的多路音頻實(shí)時(shí)編碼軟件設(shè)計(jì)方法。該軟件設(shè)計(jì)方法主要包括多路音頻接收機(jī)制模塊,包含多路接收傳輸緩沖區(qū),其中每路接收傳輸緩沖區(qū)能夠存儲(chǔ)2幀未編碼的PCM數(shù)據(jù),能夠防止接收數(shù)據(jù)溢出,同時(shí)保證AAC編碼器正確接收多路音頻數(shù)據(jù);多路預(yù)存接收緩沖區(qū),其中每路預(yù)存接收緩沖區(qū)用于存儲(chǔ)該鏈路需要預(yù)存的3幀數(shù)據(jù)及當(dāng)前編碼數(shù)據(jù);多路窗型判定預(yù)留緩沖區(qū),其中每路預(yù)留緩沖區(qū)用于存儲(chǔ)上一幀編碼數(shù)據(jù),利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行窗型判定;多路濾波器組預(yù)留緩沖區(qū),其中每路預(yù)留緩沖區(qū)用于存儲(chǔ)上一幀編碼數(shù)據(jù),利用當(dāng)前鏈路預(yù)留緩沖區(qū)中的上一幀編碼數(shù)據(jù)和當(dāng)前編碼數(shù)據(jù)進(jìn)行MDCT變換;多路音頻發(fā)送機(jī)制模塊,包含多路發(fā)送傳輸緩沖區(qū),其中每路發(fā)送傳輸緩沖區(qū)存儲(chǔ)1幀編碼后的AAC碼流,能夠保證AAC編碼器正確發(fā)送多路音頻數(shù)據(jù)。
文檔編號(hào)G10L19/00GK101968961SQ20101028773
公開(kāi)日2011年2月9日 申請(qǐng)日期2010年9月19日 優(yōu)先權(quán)日2010年9月19日
發(fā)明者毛峽, 邵偉國(guó) 申請(qǐng)人:北京航空航天大學(xué)