專利名稱:一種ambe-2000聲碼器編碼數(shù)據(jù)碼流控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體涉及一種AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法, 其控制方法可以保證在聲碼器編碼輸出速率與外部器件讀取速率不精確吻合時(shí),外部器件 讀取的數(shù)據(jù)碼流不會(huì)造成解碼器解碼錯(cuò)誤。
背景技術(shù):
AMBE-2000 聲碼器是 DVSI 公司研發(fā)的一款采用 AMBE (Advanced Multi-Band Excitation,高級(jí)多帶激勵(lì))算法的高性能、低功耗、全雙工可變比特率的語音壓縮芯片。 該芯片壓縮率可在2. Okbps-9. 6kbps之間自由調(diào)節(jié),且具有前向糾錯(cuò)(FEC)、語音激活檢測(cè) (VAD)、雙音多頻信號(hào)檢測(cè)(DTMF)和回音消除等功能。AMBE-2000聲碼器由編碼器和解碼器獨(dú)立的兩部分構(gòu)成。編碼器接收8kHz采樣率 (可以是16位線性,8位A律或8位y律)的語音數(shù)據(jù)實(shí)現(xiàn)片內(nèi)語音編碼,并以指定碼率 輸出。解碼器接收編碼器輸出的碼流解碼成語音信號(hào),編碼器和解碼器的接口時(shí)序是完全 異步的。在常規(guī)設(shè)計(jì)中,外部器件在讀取AMBE-2000聲碼器編碼數(shù)據(jù)時(shí),其處理時(shí)鐘應(yīng)該 與AMBE-2000聲碼器編碼輸出速率完全一致,否則當(dāng)外部器件讀取時(shí)鐘大于AMBE-2000聲 碼器編碼輸出速率時(shí),AMBE-2000聲碼器編碼器的FIFO (First In First Out,先入先出數(shù) 據(jù)緩存器)會(huì)被讀空,導(dǎo)致外部器件無法繼續(xù)讀取連續(xù)的數(shù)據(jù)碼流;當(dāng)外部器件讀取時(shí)鐘 小于AMBE-2000聲碼器編碼輸出速率時(shí),AMBE-2000聲碼器編碼器的FIFO會(huì)被寫滿,此時(shí) AMBE-2000聲碼器會(huì)自動(dòng)丟棄未讀出的數(shù)據(jù)幀。由于AMBE-2000聲碼器的編碼數(shù)據(jù)碼流格式并未公開,當(dāng)外部器件讀取速率與聲 碼器編碼輸出速率不精確吻合時(shí),無法在數(shù)據(jù)碼流結(jié)構(gòu)上對(duì)數(shù)據(jù)進(jìn)行增減以保證數(shù)據(jù)碼流 的連續(xù)性。盲目的數(shù)據(jù)碼流刪減操作會(huì)導(dǎo)致AMBE-2000聲碼器解碼器失去同步,造成聲音 幾百毫秒的中斷。本發(fā)明提出一種AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法,能夠保證處 理后的數(shù)據(jù)碼流不會(huì)導(dǎo)致AMBE-2000聲碼器解碼器失去同步,解碼器輸出的聲音信號(hào)大約 有20毫秒的 音,對(duì)聲音整體質(zhì)量影響不大。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法, 其控制方法可以保證在聲碼器編碼輸出速率與外部器件讀取速率不精確吻合時(shí),外部器件 讀取的數(shù)據(jù)碼流不會(huì)造成解碼器解碼錯(cuò)誤。AMBE-2000聲碼器在工作時(shí),每隔大約20毫秒會(huì)在EPR (Encoder Packet Ready) 管腳輸出一個(gè)由高變低的電平變化,以指示編碼器編碼完成,此時(shí),外部器件可以按照 AMBE-2000聲碼器的數(shù)據(jù)讀取時(shí)序讀出數(shù)據(jù)。在有格式模式下,編碼器每20毫秒輸出一幀數(shù)據(jù),包含24個(gè)Word,每個(gè)Word包含 16比特?cái)?shù)據(jù)。其中前12個(gè)Word為幀頭信息,后12個(gè)Word為編碼數(shù)據(jù)。
在無格式模式下,編碼器每20毫秒輸出一幀數(shù)據(jù),包含N個(gè)Word,每個(gè)Word包 含16比特?cái)?shù)據(jù)。其中N = BPS*0.02/BPW,BPS表示預(yù)設(shè)定的編碼器輸出碼率,范圍是 2. Ok-9. 6k,BPW表示預(yù)設(shè)定的每個(gè)Word包含的有效比特?cái)?shù),取值為1_4。根據(jù)本發(fā)明的一個(gè)方面,提供了一種AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法, 包括下列步驟1)系統(tǒng)復(fù)位后,外部器件等待AMBE-2000聲碼器ETO信號(hào)的下降沿;2)當(dāng)信號(hào)下降沿來臨時(shí),表示AMBE-2000聲碼器的一幀數(shù)據(jù)已經(jīng)編碼完畢,外 部器件按照數(shù)據(jù)讀取時(shí)序?qū)?shù)據(jù)存入數(shù)據(jù)緩沖區(qū),當(dāng)該幀數(shù)據(jù)即將讀取完畢,外部器件繼 續(xù)檢測(cè)AMBE-2000聲碼器EH 信號(hào)的下降沿;3)重復(fù)步驟2)所述方法繼續(xù)讀取后續(xù)編碼幀并存入數(shù)據(jù)緩沖區(qū);在上述方法中,所述步驟2)還包括21)當(dāng)外部器件讀取時(shí)鐘大于AMBE-2000聲碼器編碼輸出速率時(shí),在讀完一幀編 碼數(shù)據(jù)后,AMBE-2000聲碼器并沒有給出EH 信號(hào)的下降沿,指示下一幀數(shù)據(jù)已經(jīng)編碼完 成,導(dǎo)致外部器件無法繼續(xù)讀取連續(xù)的數(shù)據(jù)碼流,此時(shí)外部器件自動(dòng)生成一組完整幀長(zhǎng)度 的0作為數(shù)據(jù)填充幀按照外部器件讀取時(shí)鐘速率存入緩沖區(qū),在此期間,若信號(hào)的下降 沿來臨,則在填充幀存儲(chǔ)完畢后繼續(xù)讀取AMBE-2000聲碼器編碼數(shù)據(jù);22)當(dāng)外部器件讀取時(shí)鐘小于AMBE-2000聲碼器編碼輸出速率時(shí),AMBE-2000聲碼 器在每幀編碼結(jié)束后仍然會(huì)給出Era信號(hào)的下降沿,外部器件只需嚴(yán)格按照一個(gè)Era信號(hào) 的下降沿讀取一個(gè)數(shù)據(jù)幀的流程執(zhí)行即可,若AMBE-2000聲碼器編碼器數(shù)據(jù)積壓導(dǎo)致FIFO 被寫滿,AMBE-2000聲碼器會(huì)自動(dòng)丟棄未讀出的數(shù)據(jù)幀;在上述方法中,所述步驟1)中外部器件為Xilinx公司的Spartan 3 FPGA ;在上述方法中,所述步驟2)中數(shù)據(jù)讀取時(shí)序?yàn)锳MBE-2000用戶手冊(cè)提及的標(biāo)準(zhǔn)讀 取時(shí)序;在上述方法中,所述步驟2)中數(shù)據(jù)緩沖區(qū)為FIFO,深度為1024,寬度為1比特;在上述方法中,所述步驟21)中完整幀長(zhǎng)度計(jì)算方法如下在有格式模式下,一幀數(shù)據(jù)包含24個(gè)Word,每個(gè)Word包含16比特?cái)?shù)據(jù),共24*16 =384比特;在無格式模式下,一幀數(shù)據(jù)包含N個(gè)Word,每個(gè)Word包含16比特?cái)?shù)據(jù),其中 N = BPS*0. 02/BPff,BPS表示預(yù)設(shè)定的編碼器輸出碼率,范圍是2. Ok-9. 6k,BPW表示預(yù)設(shè)定 的每個(gè)Word包含的有效比特?cái)?shù),取值為1-4。本發(fā)明提供的一種AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法,可以保證在聲碼器 編碼輸出速率與外部器件讀取速率不精確吻合時(shí),外部器件讀取的數(shù)據(jù)碼流不會(huì)造成解碼 器解碼錯(cuò)誤,解碼器輸出的聲音信號(hào)大約有20毫秒的啞音,對(duì)聲音整體質(zhì)量影響不大。
圖1AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法整體框圖;圖2AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)根據(jù)本發(fā)明一個(gè)實(shí)施例的AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法進(jìn)一步詳細(xì)說明。本發(fā)明提供一 種AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法,其整體框圖參見附圖1,包括下列步驟1)系 統(tǒng)復(fù)位后,外部器件等待AMBE-2000聲碼器EH 信號(hào)的下降沿;2)當(dāng)ETO信號(hào)下降沿來臨 時(shí),外部器件按照數(shù)據(jù)讀取時(shí)序?qū)?shù)據(jù)存入數(shù)據(jù)緩沖區(qū),當(dāng)該幀數(shù)據(jù)即將讀取完畢,外部器 件繼續(xù)檢測(cè)AMBE-2000聲碼器EH 信號(hào)的下降沿;3)當(dāng)聲碼器編碼輸出速率與外部器件讀 取速率不精確吻合時(shí),采用填充幀的方法保證數(shù)據(jù)碼流的連續(xù)性。應(yīng)當(dāng)理解,此處所描述的 具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本實(shí)施例中AMBE-2000聲碼器工作模式為無格式,編碼器輸出碼率為8kbps,每個(gè) Word包含有效比特?cái)?shù)為1 ;外部器件為Xilinx公司的Spartan 3FPGA,片上開啟一塊深度 1024,寬度1比特的FIFO,F(xiàn)PGA采用AMBE-2000用戶手冊(cè)提及的標(biāo)準(zhǔn)電路與AMBE-2000聲 碼器相連接,完成初始化配置。該系統(tǒng)工作流程圖參見附圖2。系統(tǒng)上電復(fù)位后,F(xiàn)PGA檢測(cè)AMBE-2000聲碼器ETO信號(hào)的下降沿。當(dāng)EH 信號(hào)下降沿來臨時(shí),F(xiàn)PGA進(jìn)入讀狀態(tài),以8k的時(shí)鐘將編碼數(shù)據(jù)讀出并存入 片上的FIFO,與此同時(shí),F(xiàn)PGA繼續(xù)檢測(cè)AMBE-2000聲碼器ETO信號(hào)的下降沿,當(dāng)FPGA跳出 該幀讀狀態(tài)后,繼續(xù)進(jìn)行下一幀的讀取。當(dāng)FPGA的8k時(shí)鐘大于AMBE-2000聲碼器的編碼輸出速率時(shí),在讀完一幀編 碼數(shù)據(jù)后,AMBE-2000聲碼器并沒有給出下一幀EH 信號(hào)的下降沿,此時(shí)FPGA自動(dòng)生成 8k*0. 02/1 = 160個(gè)0作為數(shù)據(jù)填充幀以8k的速率存入FIFO,在此期間,若FPGA檢測(cè)到 EPR信號(hào)的下降沿,則在填充幀存儲(chǔ)完畢后繼續(xù)讀取AMBE-2000聲碼器編碼數(shù)據(jù)。當(dāng)外部器件讀取時(shí)鐘小于AMBE-2000聲碼器編碼輸出速率時(shí),AMBE-2000聲碼器 在每幀編碼結(jié)束后仍然會(huì)給出Era信號(hào)的下降沿,F(xiàn)PGA只需嚴(yán)格按照一個(gè)Era信號(hào)的下降 沿讀取一個(gè)數(shù)據(jù)幀的流程執(zhí)行即可,若AMBE-2000聲碼器編碼器數(shù)據(jù)積壓導(dǎo)致FIFO被寫 滿,AMBE-2000聲碼器會(huì)自動(dòng)丟棄未讀出的數(shù)據(jù)幀。將該數(shù)據(jù)碼流送至AMBE-2000聲碼器解碼器進(jìn)行解碼時(shí),數(shù)據(jù)填充幀的160個(gè)0 不會(huì)造成解碼器失去同步,僅僅會(huì)產(chǎn)生一個(gè)20毫秒的啞音,對(duì)語音信號(hào)質(zhì)量影響不大。應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情 況下,能夠?qū)ι鲜鲈敿?xì)描述的本發(fā)明做出各種修改和改進(jìn)。因此,要求保護(hù)的技術(shù)方案的范 圍不受所給出的任何特定示范教導(dǎo)和限制。
權(quán)利要求
一種AMBE 2000聲碼器編碼數(shù)據(jù)碼流控制方法,包括下列步驟1)系統(tǒng)復(fù)位后,外部器件等待AMBE 2000聲碼器EPR信號(hào)的下降沿;2)當(dāng)EPR信號(hào)下降沿來臨時(shí),表示AMBE 2000聲碼器的一幀數(shù)據(jù)已經(jīng)編碼完畢,外部器件按照數(shù)據(jù)讀取時(shí)序?qū)?shù)據(jù)存入數(shù)據(jù)緩沖區(qū),當(dāng)該幀數(shù)據(jù)即將讀取完畢,外部器件繼續(xù)檢測(cè)AMBE 2000聲碼器EPR信號(hào)的下降沿;3)重復(fù)步驟2)所述方法繼續(xù)讀取后續(xù)編碼幀并存入數(shù)據(jù)緩沖區(qū)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2)還包括21)當(dāng)外部器件讀取時(shí)鐘大于AMBE-2000聲碼器編碼輸出速率時(shí),在讀完一幀編碼數(shù) 據(jù)后,AMBE-2000聲碼器并沒有給出EH 信號(hào)的下降沿,指示下一幀數(shù)據(jù)已經(jīng)編碼完成,導(dǎo) 致外部器件無法繼續(xù)讀取連續(xù)的數(shù)據(jù)碼流,此時(shí)外部器件自動(dòng)生成一組完整幀長(zhǎng)度的0作 為數(shù)據(jù)填充幀按照外部器件讀取時(shí)鐘速率存入緩沖區(qū),在此期間,若Era信號(hào)的下降沿來 臨,則在填充幀存儲(chǔ)完畢后繼續(xù)讀取AMBE-2000聲碼器編碼數(shù)據(jù);22)當(dāng)外部器件讀取時(shí)鐘小于AMBE-2000聲碼器編碼輸出速率時(shí),AMBE-2000聲碼器在 每幀編碼結(jié)束后仍然會(huì)給出Era信號(hào)的下降沿,外部器件只需嚴(yán)格按照一個(gè)Era信號(hào)的下 降沿讀取一個(gè)數(shù)據(jù)幀的流程執(zhí)行即可,若AMBE-2000聲碼器編碼器數(shù)據(jù)積壓導(dǎo)致FIFO被寫 滿,AMBE-2000聲碼器會(huì)自動(dòng)丟棄未讀出的數(shù)據(jù)幀。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2)中外部器件為Xilinx公司的 Spartan 3FPGA。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2)中數(shù)據(jù)緩沖區(qū)為FIFO,深度 為1024,寬度為1比特。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟21)中完整幀長(zhǎng)度計(jì)算方法如下在有格式模式下,一幀數(shù)據(jù)包含24個(gè)Word,每個(gè)Word包含16比特?cái)?shù)據(jù),共24*16 = 384比特;在無格式模式下,一幀數(shù)據(jù)包含N個(gè)Word,每個(gè)Word包含16比特?cái)?shù)據(jù),其中N = BPS*0. 02/BPff,BPS表示預(yù)設(shè)定的編碼器輸出碼率,范圍是2. Ok-9. 6k,BPW表示預(yù)設(shè)定的每 個(gè)Word包含的有效比特?cái)?shù),取值為1-4。
全文摘要
本發(fā)明提供一種AMBE-2000聲碼器編碼數(shù)據(jù)碼流控制方法,包括下列步驟1)系統(tǒng)復(fù)位后,外部器件等待AMBE-2000聲碼器EPR信號(hào)的下降沿;2)當(dāng)EPR信號(hào)下降沿來臨時(shí),外部器件按照數(shù)據(jù)讀取時(shí)序?qū)?shù)據(jù)存入數(shù)據(jù)緩沖區(qū),當(dāng)該幀數(shù)據(jù)即將讀取完畢,外部器件繼續(xù)檢測(cè)AMBE-2000聲碼器EPR信號(hào)的下降沿;3)當(dāng)聲碼器編碼輸出速率與外部器件讀取速率不精確吻合時(shí),采用填充幀的方法保證數(shù)據(jù)碼流的連續(xù)性;根據(jù)本發(fā)明可保證處理后的數(shù)據(jù)碼流不會(huì)導(dǎo)致AMBE-2000聲碼器解碼器失去同步,解碼器輸出的聲音信號(hào)大約有20毫秒的啞音,對(duì)聲音整體質(zhì)量影響不大。
文檔編號(hào)G10L19/00GK101944363SQ201010288579
公開日2011年1月12日 申請(qǐng)日期2010年9月21日 優(yōu)先權(quán)日2010年9月21日
發(fā)明者易寒飛, 毛峽 申請(qǐng)人:北京航空航天大學(xué)