專利名稱:一種aac音頻編碼的握手協(xié)議方法
技術領域:
本發(fā)明涉及一種握手協(xié)議方法,尤其是一種AAC音頻編碼的握手協(xié)議方法。屬于 通信領域。
背景技術:
AAC (Advanced Audio Coding)標準完成于 1997 年,經(jīng)BBC (British Broadcasting Corporation)和NHK(Japan Broadcasting Corporation)使用并測試表明其對低比特率的 多聲道編碼能提供相當高的聲音質(zhì)量。在相同音質(zhì)情況下,AAC壓縮率比MP3高30%,并且 在立體聲128kbps下,可達到接近⑶的音質(zhì)。在AAC的實際應用中,通常對聲音信號的采樣率和編碼后的碼流速率有一定要 求,而聲音采樣時鐘和輸出碼流時鐘可能是非同源的,輸出碼流速率恒定難以保證;且由于 AAC編碼的壓縮率與輸入有關,在輸入聲音信號變化的情況下,若無相應的調(diào)節(jié)機制,輸出 碼流的速率恒定也難以保證。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種AAC音頻編碼的握手協(xié)議方法,以解決現(xiàn)有技術實際 應用中在特定采樣率下,要求輸出碼流保持速率恒定的問題。本發(fā)明的技術方案概括為語音信號經(jīng)模數(shù)轉(zhuǎn)換芯片(AD)采樣后進入FPGA,被緩 存在FPGA的先入先出的數(shù)據(jù)緩存器(FIFO)中,當FIFO存儲數(shù)據(jù)量大于AAC編碼所需的一 幀數(shù)量,將指示信號1設置為高,否則置為低;DSP若檢測到指示信號1為低,則繼續(xù)檢測, 若檢測到指示信號1為高,則取走一幀數(shù)據(jù),進行編碼;編碼后DSP檢測FPGA端指示信號 2 (FPGA內(nèi)存儲編碼后數(shù)據(jù)的FIFO是否達到半滿),若為高,則向FPGA發(fā)送長幀,若為低,則 向FPGA發(fā)送短幀,通過FIFO緩存和長短幀機制保證AAC編碼輸出碼流速率恒定。本發(fā)明一種AAC音頻編碼的握手協(xié)議方法,其具體步驟如下步驟1 語音信號經(jīng)模數(shù)轉(zhuǎn)換芯片采集后,得到的PCM編碼進入FPGA并存儲在FPGA內(nèi)的 FIFO中,當FIFO內(nèi)存儲的數(shù)據(jù)達到AAC編碼所需一幀的數(shù)量,將該FIFO對應的指示信號置 為高;若FIFO內(nèi)數(shù)據(jù)數(shù)量小于AAC編碼所需的一幀數(shù)量,對應的指示信號被置為低。步驟2 DSP檢測FPGA內(nèi)存儲待編碼數(shù)據(jù)FIFO的指示信號1,指示信號1表征FPGA內(nèi)存儲 編碼后數(shù)據(jù)FIFO的數(shù)據(jù)數(shù)量,若該指示信號為低,則繼續(xù)檢測該信號;若該指示信號為高, 從FIFO中取走一幀數(shù)據(jù),然后DSP對該幀數(shù)據(jù)進行編碼操作。步驟3:編碼完成后,DSP檢測FPGA的指示信號2,指示信號2表征FPGA內(nèi)存儲編碼后數(shù) 據(jù)FIFO的數(shù)據(jù)數(shù)量,若存儲編碼后數(shù)據(jù)FIFO內(nèi)數(shù)據(jù)量大于FIFO容量的一半,則將指示信 號2置為低;否則,將指示信號2置為高。DSP若檢測到指示信號2為高,則向FPGA發(fā)送長
3幀數(shù)據(jù),若檢測到指示信號2為低,則向FPGA發(fā)送短幀數(shù)據(jù)。步驟4:FPGA將存儲在FIFO中的編碼后的數(shù)據(jù)以恒定速率發(fā)送出去,DSP繼續(xù)檢測FPGA 內(nèi)存儲待編碼數(shù)據(jù)FIFO的指示信號。本發(fā)明優(yōu)點及功效在于通過對數(shù)據(jù)流進行緩存,并通過握手機制使用長短幀保 證輸出碼流速率恒定,適用于AAC音頻編碼的要求。
圖1為本發(fā)明的硬件架構圖。圖2為本發(fā)明的DSP的握手流程圖。(五)具體實施方法本發(fā)明的技術方案概括為語音信號經(jīng)模數(shù)轉(zhuǎn)換芯片(AD)采樣后進入FPGA,被緩 存在FPGA的先入先出的數(shù)據(jù)緩存器(FIFO)中,當FIFOl存儲數(shù)據(jù)量大于AAC編碼所需的一 幀數(shù)據(jù),將指示信號1設置為高,否則置為低;DSP若檢測到指示信號1為低,則繼續(xù)檢測, 若檢測到指示信號1為高,則取走一幀數(shù)據(jù),進行編碼;編碼后,DSP檢測FPGA端指示信號 2 (FIF02是否達到半滿),若為高,則向FPGA發(fā)送長幀,若為低,則發(fā)送短幀,通過FIFO緩存 和長短幀機制保證AAC編碼輸出碼流速率恒定。下面結合附圖對本發(fā)明的技術方案作進一步的詳細描述。主要步驟如下步驟1:如圖1所示,連接硬件設備。語音信號經(jīng)AD采集后,得到的PCM(脈沖編碼調(diào)制)編 碼進入FPGA并存儲在FPGA內(nèi)的FIFOl中。其中AD芯片采用TI公司的PCM4204,采樣頻率為 44100Hz,工作在主模式,數(shù)據(jù)格式為I2S ;FPGA采用Altera公司的CycloneEPlC12Q240C8 ; FIFO的深度為1024,寬度為32,存儲的數(shù)據(jù)為16位PCM編碼。當FIFO內(nèi)存儲的數(shù)據(jù)達到 AAC編碼所需一幀數(shù)量,將該FIFO對應的指示信號1置為高;若FIFO內(nèi)數(shù)據(jù)數(shù)量小于AAC 編碼所需一幀數(shù)量,對應的指示信號被置為低。其中,AAC編碼所需一幀數(shù)據(jù)為1024個采 樣點,16位PCM編碼。步驟2 如圖2上半部分所示,DSP檢測FPGA內(nèi)存儲待編碼數(shù)據(jù)FIF01對應的指示信號1, 若該指示信號為低,則繼續(xù)檢測該信號;若該指示信號為高,從FIFO中取走一幀數(shù)據(jù),然后 DSP對該幀數(shù)據(jù)進行編碼操作。DSP采用TI公司的TMS320C6727,通過EMIF 口(DSP的外部 存儲器接口)從FIF01中讀取數(shù)據(jù)。步驟3 如圖2下半部分所示,編碼完成后,DSP檢測FPGA的指示信號2,該信號表征FPGA 內(nèi)存儲編碼后數(shù)據(jù)FIF02的數(shù)據(jù)數(shù)量,若FIF02內(nèi)數(shù)據(jù)量大于FIFO容量的一半,則該信號 置為低;否則,該信號置為高。DSP若檢測到指示信號2為高,則向FPGA發(fā)送長幀編碼后數(shù) 據(jù),若檢測到該指示信號為低,則向FPGA發(fā)送短幀編碼后數(shù)據(jù)。其中FPGA中FIF02的深度 為512,寬度為32位;DSP通過EMIF 口向FIF02中寫入數(shù)據(jù);長幀數(shù)據(jù)長度為372字節(jié),短 幀數(shù)據(jù)長度為360字節(jié)。通過緩沖機制和長短幀機制,保證FIF02內(nèi)始終緩存一定數(shù)量的 數(shù)據(jù),F(xiàn)IF02不會出現(xiàn)空或滿的情況。
步驟4 FPGA將存儲在FIF02中的編碼后的數(shù)據(jù)以恒定速率發(fā)送出去,DSP繼續(xù)檢測FPGA 的指示信號1。其中FPGA發(fā)送編碼后的數(shù)據(jù)的速率為128kbps。由于FIF02中始終緩存一 定數(shù)量的數(shù)據(jù),不會出現(xiàn)空或滿的情況,可保證輸出碼流的速率恒定。說明書附圖中出現(xiàn)的英文縮寫,其含義如下PCM 脈沖編碼調(diào)制;FIFO 先入先出的數(shù)據(jù)緩存器;AD:模數(shù)轉(zhuǎn)化芯片。
權利要求
一種AAC音頻編碼的握手協(xié)議方法,其特征在于,包括下述幾個步驟步驟1語音信號經(jīng)模數(shù)轉(zhuǎn)換芯片采集后,得到的脈沖編碼調(diào)制碼進入FPGA中,存儲在FPGA內(nèi)的先入先出數(shù)據(jù)緩存器中,當先入先出數(shù)據(jù)緩存器內(nèi)存儲的數(shù)據(jù)達到AAC編碼所需的一幀數(shù)量,將該先入先出數(shù)據(jù)緩存器對應的指示信號置為高;若先入先出數(shù)據(jù)緩存器內(nèi)數(shù)據(jù)數(shù)量小于AAC編碼所需的一幀數(shù)量,對應的指示信號被置為低;步驟2DSP檢測FPGA內(nèi)存儲待編碼數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號,若FPGA內(nèi)存儲待編碼數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號為低,則繼續(xù)檢測該信號;若FPGA內(nèi)存儲待編碼數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號為高,從先入先出數(shù)據(jù)緩存器中取走一幀數(shù)據(jù),然后DSP對該幀數(shù)據(jù)進行編碼操作;步驟3若FPGA內(nèi)存儲編碼后數(shù)據(jù)的先入先出數(shù)據(jù)緩存器內(nèi)數(shù)據(jù)量大于容量的一半,則將FPGA內(nèi)存儲編碼后數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號置為低;否則,將FPGA內(nèi)存儲編碼后數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號置為高;DSP檢測FPGA內(nèi)存儲編碼后數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號,若檢測到FPGA內(nèi)存儲編碼后數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號為高,則向FPGA發(fā)送長幀編碼后數(shù)據(jù),若檢測到FPGA內(nèi)存儲編碼后數(shù)據(jù)的先入先出數(shù)據(jù)緩存器的指示信號為低,則向FPGA發(fā)送短幀編碼后數(shù)據(jù);步驟4FPGA將存儲在先入先出數(shù)據(jù)緩存器中的編碼后的數(shù)據(jù)以恒定速率發(fā)送出去,DSP繼續(xù)檢測FPGA內(nèi)存儲待編碼數(shù)據(jù)先入先出數(shù)據(jù)緩存器的指示信號。
2.根據(jù)權利要求1所述方法,其中模數(shù)轉(zhuǎn)換芯片采用TI公司的PCM4204,采樣頻率為 44100Hz,工作在主模式,數(shù)據(jù)格式為I2S ;FPGA采用Altera公司的CycloneEPlC12Q240C8 ; 先入先出數(shù)據(jù)緩存器的深度為1024,寬度為32,存儲數(shù)據(jù)為16位脈沖編碼調(diào)制碼;AAC編 碼所需一幀數(shù)據(jù)為1024個采樣點,16位脈沖編碼調(diào)制碼。
3.根據(jù)權利要求1所述方法,其中DSP采用TI公司的TMS320C6727,通過DSP的外部 存儲器接口從先入先出數(shù)據(jù)緩存器中讀取數(shù)據(jù)。
4.根據(jù)權利要求1所述方法,其中DSP通過EMIF口向先入先出數(shù)據(jù)緩存器中寫入數(shù) 據(jù),F(xiàn)PGA中先入先出數(shù)據(jù)緩存器的深度為512,寬度為32位;長幀數(shù)據(jù)的長度為372字節(jié), 短幀數(shù)據(jù)的長度為360字節(jié)。
5.根據(jù)權利要求1所述方法,其中FPGA發(fā)送編碼后數(shù)據(jù)的速率恒定為128kbps。
全文摘要
本發(fā)明一種AAC音頻編碼的握手協(xié)議方法,可概括為語音信號經(jīng)模數(shù)轉(zhuǎn)換芯片(AD)采樣后進入FPGA,被緩存在FPGA的先入先出的數(shù)據(jù)緩存器(FIFO)中,當FIFO1存儲數(shù)據(jù)量大于AAC編碼所需的一幀數(shù)據(jù),將指示信號1設置為高,否則置為低;DSP若檢測到指示信號1為低,則繼續(xù)檢測,若檢測到指示信號1為高,則取走一幀數(shù)據(jù),進行編碼;編碼后DSP檢測FPGA端指示信號2(FIFO2是否達到半滿),若為高,則向FPGA發(fā)送長幀,若為低,則發(fā)送短幀;通過FIFO緩存和長短幀機制保證AAC編碼輸出碼流速率恒定。
文檔編號G10L19/00GK101930744SQ201010274509
公開日2010年12月29日 申請日期2010年9月7日 優(yōu)先權日2010年9月7日
發(fā)明者姜磊, 毛峽 申請人:北京航空航天大學