專利名稱:一種基于單芯片的多通道多語音編解碼器的調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及語音信號處理,具體涉及一種基于單芯片的多通道多語音編解碼器的調(diào)度方法。
背景技術(shù):
基于互聯(lián)網(wǎng)協(xié)議語音通訊Vocie overIP,簡稱VoIP,是建立在互聯(lián)網(wǎng)協(xié)議IP技術(shù)上的分組化、數(shù)字化語音傳輸技術(shù)。數(shù)字信號處理芯片DSP具有高處理能力、獨(dú)立存儲(chǔ)控制和低成本的特性,適合于執(zhí)行VOIP語音處理系統(tǒng)中的語音信號處理功能,其應(yīng)用大大推動(dòng)了VoIP技術(shù)的發(fā)展和推廣。
語音編解碼器內(nèi)置在DSP芯片中作為VoIP技術(shù)的一個(gè)核心,編解碼質(zhì)量、占用帶寬、處理能力等直接關(guān)系VoIP性能實(shí)現(xiàn)。ITU-T發(fā)布的一系列應(yīng)用于VoIP的語音壓縮編解碼標(biāo)準(zhǔn)G711、G723、G728、G729等,這些語音編碼算法都采用逐幀處理的方式,每收到包括多個(gè)樣點(diǎn)的一幀語音進(jìn)行一次編碼,利用線形預(yù)測和矢量量化等技術(shù)去除語音信號之間的短期相關(guān)性和長期相關(guān)性,盡可能地降低語音編碼速率。VoIP媒體網(wǎng)關(guān)設(shè)備中通常需要支持上述多語音編解碼器選擇。
基于單DSP芯片平臺的VOIP語音處理系統(tǒng)多通道語音處理中,各通道之間一般來說采用通道輪詢架構(gòu)設(shè)計(jì)在一定時(shí)間片內(nèi)循環(huán)檢測各通道的狀態(tài),進(jìn)行語音編解碼處理;所述時(shí)間片由VOIP語音處理系統(tǒng)的架構(gòu)決定,通常依賴選用語音編解碼器的數(shù)據(jù)幀長特性。典型多通道語音處理流程,如圖1所示,包括步驟110)處理時(shí)間到;120)從Channel_1開始對當(dāng)前Channel_Num通道語音信號處理;130)判斷所有Channel處理完畢?是進(jìn)入步驟150;否進(jìn)入步驟140);140)Channel_Num++,返回步驟120);150)等待下一處理時(shí)間開始。該流程就是DSP芯片程序?qū)崟r(shí)循環(huán)處理所有有效語音通道。同時(shí),多通道控制也可以通過多DSP芯片完成,但需要增加硬件;另外,VOIP語音處理系統(tǒng)中其他語音信號處理部分大都基于語音編解碼器的幀長單位,比如網(wǎng)絡(luò)組包解包處理的網(wǎng)絡(luò)模塊也基于語音編解碼器的輸入和輸出,因此整個(gè)DSP芯片的多通道調(diào)度處理是建立在語音編解碼器的調(diào)度處理特性之上。
按目前VOIP語音處理系統(tǒng)通道輪詢架構(gòu),當(dāng)其語音編解碼器類型唯一,各通道處理的數(shù)據(jù)幀長也是一致,所有通道處理時(shí)間同步,DSP芯片平臺可根據(jù)所有語音信號處理負(fù)荷決定VOIP語音處理系統(tǒng)實(shí)現(xiàn)的最大通道數(shù)。當(dāng)各通道的語音編解碼器不同時(shí),由于語音編解碼器的處理幀長不同,且不同語音編解碼器算法的復(fù)雜程度相差較大,目標(biāo)實(shí)現(xiàn)VOIP語音處理系統(tǒng)最大通道數(shù)時(shí),通常通道輪詢會(huì)導(dǎo)致DSP處理能力瓶頸,具體如圖2所示為例,細(xì)線和粗線框分別調(diào)用G711和G723語音編解碼器,G711數(shù)據(jù)幀長10ms,G723幀長30ms,VOIP語音處理系統(tǒng)開啟6個(gè)有效通道,t0~t6相鄰時(shí)刻時(shí)間間隔為10ms周期,即時(shí)間片1,t0~t1時(shí)間間隔內(nèi),通道1/3/4的10ms幀長輸入數(shù)據(jù)有效,進(jìn)行G711編解碼;通道2/5/6因數(shù)據(jù)無效不進(jìn)行G723編解碼,通道1/3/4輪詢語音信號處理;時(shí)間間隔內(nèi)t1~t2、t3~t4和t4~t5的處理相同。
2,t2~t3和t5~t6時(shí)間間隔內(nèi),此時(shí)所有通道的幀數(shù)據(jù)都有效,通道1/3/4數(shù)據(jù)為10ms幀長,通道2/5/6數(shù)據(jù)為30ms幀長,通道1~6輪詢語音信號處理。
3,若DSP芯片程序能在t2~t3時(shí)間間隔內(nèi)完成所有通道的語音處理,則該VOIP語音處理系統(tǒng)實(shí)時(shí)性能夠保證。因語音編解碼器類型不同,各通道的處理運(yùn)算量并不相同,G723實(shí)現(xiàn)需要的每秒百萬指令周期MIPS,需要DSP芯片處理能力單位遠(yuǎn)遠(yuǎn)大于G711,當(dāng)DSP芯片需要實(shí)現(xiàn)通道數(shù)增加一定量時(shí),就會(huì)出現(xiàn)在t3或t6時(shí)刻到來時(shí),當(dāng)前幀所有通道語音信號處理不能完成的現(xiàn)象。
在t2~t3和t5~t6時(shí)間間隔內(nèi)沒有完成所有通道處理,對于DSP而言就是當(dāng)前時(shí)間片內(nèi)的運(yùn)算能力瓶頸,如圖3所示,其中高出虛線的斜線塊為當(dāng)前時(shí)間片內(nèi)的運(yùn)算能力瓶頸,目前采用以下方法解決(一)t3時(shí)刻后繼續(xù)未完成通道的語音信號處理,結(jié)果帶來下一時(shí)間片語音處理延遲,如圖3所示,t3時(shí)刻開始應(yīng)執(zhí)行下一次輪詢開始通道1的G711編解碼而被迫延時(shí)至低于虛線的斜線塊之后。若DSP處理負(fù)荷不嚴(yán)重時(shí),當(dāng)前時(shí)間片的延遲可在后續(xù)時(shí)間片處理得到釋放,比如該具體實(shí)施例中G711編解碼占用運(yùn)算量低。但,嚴(yán)重時(shí)可出現(xiàn)t3~t4時(shí)間間隔內(nèi),1/3/4通道沒有及時(shí)處理,導(dǎo)致t3~t4時(shí)間間隔內(nèi)的輸入語音幀數(shù)據(jù)被沖洗,出現(xiàn)丟包現(xiàn)象,長時(shí)出現(xiàn)這種延時(shí)累積效應(yīng)可導(dǎo)致VOIP語音處理系統(tǒng)出錯(cuò)。通常避免該問題方法是根據(jù)語音信號處理的最大負(fù)荷來定義通道密度,保證最壞情形下VoIP語音處理系統(tǒng)的實(shí)時(shí)處理,比如該具體實(shí)施例中最大負(fù)荷是G723編解碼器。
(二)t3時(shí)刻上一時(shí)間片未完成通道的語音處理失效,保證下一時(shí)間片的通道輪詢,而損失當(dāng)前時(shí)間片未處理通道信號數(shù)據(jù)。應(yīng)用該方法,可根據(jù)時(shí)間片內(nèi)所有通道處理占用的判斷,實(shí)時(shí)動(dòng)態(tài)增加和減少通道密度,但無法或無法一次實(shí)現(xiàn)最大通道密度。
除通道輪詢架構(gòu)方式之外,另一種多通道的不同處理幀長可采用多任務(wù)方式,依賴每個(gè)通道的信號處理建立獨(dú)立的任務(wù),短幀長比如G711的10ms通道任務(wù)具有高優(yōu)先級別,長幀長比如G723的30ms低優(yōu)先級別。由VoIP語音處理系統(tǒng)通過不同任務(wù)的搶占和釋放實(shí)現(xiàn)語音處理的實(shí)時(shí)性,但同時(shí)多任務(wù)形式的語音信號處理雖然可解決多通道輪詢帶來的語音瓶頸或語音幀丟失,但通道開啟關(guān)閉需實(shí)時(shí)建立和取消任務(wù),任務(wù)頻繁開啟和取消以及多個(gè)任務(wù)的頻繁切換會(huì)導(dǎo)致DSP芯片運(yùn)算負(fù)荷的增加,同時(shí)DSP平臺要求提供實(shí)時(shí)操作系統(tǒng)RTOS支持。隨著通道密度的增加VOIP語音處理系統(tǒng)復(fù)雜性同樣增加,同樣帶來運(yùn)算負(fù)荷的瓶頸,特別是強(qiáng)調(diào)在一塊DSP芯片上實(shí)現(xiàn)高通道密度VOIP語音處理系統(tǒng)時(shí),以每個(gè)通道建立任務(wù)不具有實(shí)現(xiàn)意義。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問題是提供一種基于單芯片的多通道多語音編解碼器的調(diào)度方法,無需實(shí)時(shí)監(jiān)測DSP芯片運(yùn)算負(fù)荷,最大實(shí)現(xiàn)VoIP語音處理系統(tǒng)通道密度,解決傳統(tǒng)語音編解碼器調(diào)度中帶來的運(yùn)算能力瓶頸和計(jì)算復(fù)雜程度。
本發(fā)明的上述技術(shù)問題這樣解決,提供一種基于單芯片的多通道多語音編解碼器的調(diào)度方法,在每一時(shí)間片內(nèi)按順序詢問每一通道,包括以下步驟1.1)根據(jù)各語音編解碼器處理幀長的最大公約數(shù)確定時(shí)間片時(shí)間;1.2)計(jì)算各語音編解碼器同步循環(huán)周期相對于所述時(shí)間片的循環(huán)計(jì)數(shù)周期P;1.3)針對每一語音編解碼器在其循環(huán)計(jì)數(shù)周期P的各時(shí)隙平均分配調(diào)用該語音編解碼器的所有通道n。
按照本發(fā)明提供的調(diào)度方法,所述所有通道n是對應(yīng)循環(huán)計(jì)數(shù)周期P的倍數(shù),其循環(huán)計(jì)數(shù)周期的每一時(shí)隙分配n/P個(gè)通道。
按照本發(fā)明提供的調(diào)度方法,所述所有通道n不是對應(yīng)循環(huán)計(jì)數(shù)周期P的倍數(shù),其循環(huán)計(jì)數(shù)周期P的每一時(shí)隙分配小于或大于n/P的最接近整數(shù)個(gè)通道,該循環(huán)計(jì)數(shù)周期P總共分配n個(gè)通道。
按照本發(fā)明提供的調(diào)度方法,所述分配是將循環(huán)計(jì)數(shù)周期P分為連續(xù)的二部分,一部分分配小于n/P的最接近整數(shù)個(gè)通道,另一部分分配大于n/P的最接近整數(shù)個(gè)通道,該循環(huán)計(jì)數(shù)周期P總共分配n個(gè)通道。
按照本發(fā)明提供的調(diào)度方法,該循環(huán)計(jì)數(shù)周期P所有時(shí)隙總共分配調(diào)用該語音編解碼器的n個(gè)通道,其中任一通道在一個(gè)循環(huán)計(jì)數(shù)周期P內(nèi)僅占用一個(gè)時(shí)隙。
按照本發(fā)明提供的調(diào)度方法,所述時(shí)隙對應(yīng)所述時(shí)間片,所述同步循環(huán)周期是對應(yīng)語音編解碼器的處理幀長,所述循環(huán)計(jì)數(shù)周期P等于所述處理幀長除以所述時(shí)間片。
按照本發(fā)明提供的調(diào)度方法,所述語音編解碼器是二種或二種以上,包括但不限制于在VoIP系統(tǒng)中常見的G711、G723、G728、G729、G722和G726語音編解碼中的一種或多種。
按照本發(fā)明提供的調(diào)度方法,所述語音編解碼器是二種或二種以上,包括但不限制于其他語音系統(tǒng)的編解碼器,如GSM-AMR/GSM-EFR/EVRC等。
按照本發(fā)明提供的調(diào)度方法,使用該調(diào)度方法打開新通道時(shí),根據(jù)其調(diào)用的語音編解碼器選擇對應(yīng)循環(huán)計(jì)數(shù)周期P,并在其內(nèi)選擇啟用通道數(shù)最少的時(shí)隙進(jìn)行分配,分配開啟后將對應(yīng)語音編解碼器的該時(shí)隙啟用通道數(shù)加一。
按照本發(fā)明提供的調(diào)度方法,所述通道數(shù)最少的時(shí)隙可以是多個(gè),任選其中之一進(jìn)行分配,分配開啟后將對應(yīng)語音編解碼器的該時(shí)隙啟用通道數(shù)加一。
按照本發(fā)明提供的調(diào)度方法,使用該調(diào)度方法關(guān)閉通道時(shí),根據(jù)該通道調(diào)用的語音編解碼器和開啟時(shí)隙將對應(yīng)語音編解碼器的該時(shí)隙啟用通道數(shù)減一。
按照本發(fā)明提供的調(diào)度方法,該調(diào)度方法應(yīng)用在以一定時(shí)長為處理單位的多通道多語音編解碼器結(jié)構(gòu)的系統(tǒng)中。
按照本發(fā)明提供的調(diào)度方法,所述系統(tǒng)包括但不限制于VOIP語音處理系統(tǒng)或媒體網(wǎng)關(guān)、無線語音編解碼處理系統(tǒng)中。
按照本發(fā)明提供的調(diào)度方法,所述芯片是DSP芯片,該調(diào)度方法主要應(yīng)用在基于DSP芯片平臺上實(shí)現(xiàn)的VoIP語音處理系統(tǒng)中。
本發(fā)明提供的基于單芯片的多通道多語音編解碼器的調(diào)度方法,在單DSP芯片處理平臺上針對支持多語音編解碼器及多通道的VoIP語音處理系統(tǒng),對每一語音編解碼器在其循環(huán)計(jì)數(shù)周期P的各時(shí)隙平均分配調(diào)用該語音編解碼器的所有通道,這樣將各通道運(yùn)行平均分配到VoIP語音處理系統(tǒng)定義時(shí)間片內(nèi),最大實(shí)現(xiàn)VoIP語音處理系統(tǒng)通道密度,能夠?qū)τ谌我庹Z音編解碼器組合實(shí)現(xiàn),無需實(shí)時(shí)監(jiān)測DSP芯片運(yùn)算負(fù)荷,解決了傳統(tǒng)語音編解碼器調(diào)度中帶來的運(yùn)算能力瓶頸和復(fù)雜程度,較現(xiàn)有技術(shù),有如下優(yōu)點(diǎn)①優(yōu)化多通道多語音編解碼器的調(diào)度方案,解決單一輪詢通道帶來運(yùn)算瓶頸或多任務(wù)VoIP語音處理系統(tǒng)帶來的實(shí)現(xiàn)復(fù)雜度,提高通道實(shí)現(xiàn)密度。
②DSP芯片獨(dú)立分配策略,無需上層主機(jī)或CPU控制干預(yù),通道循環(huán)計(jì)數(shù)周期分配算法簡單有效,提高運(yùn)算效率。
③減少算法處理帶來的語音延遲。原通道輪詢時(shí)間片內(nèi)依次處理所有通道,對于每一通道而言,總的算法處理延時(shí)為前面所有通道處理占用時(shí)間加上本通道處理延時(shí),通道號越高,延遲越大。在相同實(shí)現(xiàn)總通道數(shù)的條件下,本發(fā)明通過平均各通道占用時(shí)間片。因此在一時(shí)間片內(nèi),需求處理通道數(shù)降低,也即降低各通道的算法處理帶來的語音延遲。
下面結(jié)合附圖和具體實(shí)施例進(jìn)一步對本發(fā)明進(jìn)行詳細(xì)說明。
圖1是目前典型語音編解碼器調(diào)度處理流程示意圖。
圖2是以語音編解碼器G711和G723為例的典型處理時(shí)序和通道調(diào)用對應(yīng)示意圖。
圖3是DSP芯片運(yùn)行圖2對應(yīng)時(shí)序處理中運(yùn)算能力瓶頸示意圖。
圖4是本發(fā)明提供的多語音編解碼器調(diào)度的時(shí)序和通道對應(yīng)示意圖。
圖5是本發(fā)明對于通道循環(huán)周期分配的算法流程示意圖。
圖6是本發(fā)明具體實(shí)施例中通道輪詢處理流程示意圖。
具體實(shí)施例方式
首先,說明本發(fā)明的核心思想在DSP芯片總處理能力保證下,以處理幀長保證實(shí)時(shí)處理各通道數(shù)據(jù)的基礎(chǔ)上,通過對應(yīng)同步循環(huán)周期中每個(gè)時(shí)間片內(nèi)各語音編解碼器分配通道數(shù)的平均或最可能平均來實(shí)現(xiàn)DSP運(yùn)行負(fù)荷的均衡,同步循環(huán)周期等于對應(yīng)語音編解碼器處理幀長。本發(fā)明在以一定時(shí)長處理為單位的多通道多語音編解碼器結(jié)構(gòu)各種語音處理系統(tǒng)中都具有可實(shí)現(xiàn)性。
第二步,說明本發(fā)明的出發(fā)點(diǎn)采用通道輪詢調(diào)度方法的程序架構(gòu)清晰,而多任務(wù)調(diào)度方法成功解決通道輪詢帶來的運(yùn)算負(fù)荷瓶頸。本發(fā)明解決方法正是結(jié)合兩種方法的各自優(yōu)點(diǎn),即沿用通道簡單輪詢調(diào)度結(jié)構(gòu),又保證時(shí)間片內(nèi)即時(shí)間片內(nèi)各通道運(yùn)算實(shí)時(shí)完成,提高VoIP語音處理系統(tǒng)處理性能。語音編解碼器之間不同處理幀長和不同運(yùn)算負(fù)荷是引起時(shí)間片即時(shí)間片內(nèi)運(yùn)算瓶頸的直接原因。本發(fā)明的具體辦法是如VoIP語音處理系統(tǒng)中需求實(shí)現(xiàn)m種語音編解碼器,其中各語音編解碼器運(yùn)算幀長分別為L1,L2......Lm,計(jì)算各處理幀長的最大公約數(shù)T作為程序時(shí)間片,對常用語音編解碼器類型而言公約數(shù)T為5ms或10ms。各語音編解碼器處理幀長占用的時(shí)間片倍數(shù)P為循環(huán)計(jì)數(shù)周期,例入語音編解碼器處理幀長30ms,時(shí)間片10ms,則循環(huán)計(jì)數(shù)周期P=3,即每3個(gè)時(shí)間片,也是使用該語音編解碼器各通道的同步循環(huán)周期,調(diào)用一次對應(yīng)語音編解碼器處理該通道傳輸過來的數(shù)據(jù),保證實(shí)時(shí)處理該通道數(shù)據(jù)幀。設(shè)VoIP語音處理系統(tǒng)中一類型語音編解碼器的所有開啟通道數(shù)n,在保證對于任一通道的處理時(shí)間間隔等于對應(yīng)語音編解碼器處理幀長的基礎(chǔ)上將n個(gè)通道盡量平均分配到同步循環(huán)周期中每個(gè)時(shí)間片中調(diào)用,即每個(gè)時(shí)間片中應(yīng)該調(diào)用該語音編解碼器的通道數(shù)為n/P,當(dāng)n/P不是整數(shù)時(shí),此時(shí)同步循環(huán)周期中每個(gè)時(shí)間片的具體該語音編解碼器的通道數(shù)是不同的,是大于或小于n/P的最接近整數(shù),可以采用依次對同步循環(huán)周期中第一時(shí)間片分配INT(n/P), 第二時(shí)間片分配INT((n-INT(n/P))/(P-1))......。在DSP芯片總的處理能力保證下,通過同步循環(huán)周期中每個(gè)的時(shí)間片內(nèi)各語音編解碼器分配通道數(shù)的平均或最可能平均來實(shí)現(xiàn)DSP芯片運(yùn)行負(fù)荷的均衡。
第三步,說明本發(fā)明VoIP語音處理系統(tǒng),由以下模塊組成(一)時(shí)間片長決策模塊根據(jù)VoIP語音處理系統(tǒng)要實(shí)現(xiàn)各語音編解碼器處理幀長決定時(shí)間片及對應(yīng)語音編解碼器的循環(huán)計(jì)數(shù)周期,保證對通道的實(shí)時(shí)處理,進(jìn)一步為平均分配提供基準(zhǔn)。
(二)通道調(diào)用循環(huán)計(jì)數(shù)周期分配模塊語音通道開啟后判斷當(dāng)前配置語音編解碼器類型及相應(yīng)幀長,分配該通道調(diào)用在循環(huán)計(jì)數(shù)周期內(nèi)的具體時(shí)隙。
一個(gè)具體語音編解碼器分配實(shí)現(xiàn)如下,定義CHANNELNUM為VoIP語音處理系統(tǒng)最大實(shí)現(xiàn)通道密度,P為該語音編解碼器的循環(huán)計(jì)數(shù)周期,包括以下步驟1)定義語音編解碼器處理時(shí)隙start_frame[CHANNELNUM],用于記錄每個(gè)通道語音處理的時(shí)間片應(yīng)占用的時(shí)隙;計(jì)數(shù)器變量frame_1、frame_2......frame_P為循環(huán)周期1、2、3.....P個(gè)時(shí)隙中分配到的通道數(shù)。
2)初始化frame_1、frame_2......frame_P變量值為0。
3)實(shí)時(shí)開啟通道后,比較找出frame_1、frame_2......frame_P最小值,最小的值表示對應(yīng)時(shí)隙內(nèi)分配的調(diào)用通道數(shù)最少,返回該時(shí)間片斷值j,計(jì)數(shù)器frame_j加1。當(dāng)有大于1個(gè)相等最小值時(shí),選擇其中任一時(shí)隙值,同時(shí)該計(jì)數(shù)器加1。
4)分配當(dāng)前通道在循環(huán)計(jì)數(shù)周期中的處理時(shí)隙start_frame[]=j(luò)。
(三)通道輪詢調(diào)度同步模塊通道輪詢時(shí)判斷以P為周期大小的當(dāng)前時(shí)間片的循環(huán)計(jì)數(shù)是否與上步驟中分配的通道處理時(shí)隙start_frame[]一致,若一致,則表明當(dāng)前時(shí)間片應(yīng)執(zhí)行該通道的語音處理;否則跳過繼續(xù)下一通道號的處理。
(四)通道分配周期關(guān)閉模塊通道實(shí)時(shí)關(guān)閉后更新該通道分配占用時(shí)隙,frame_j計(jì)數(shù)器減1。
最后,以本發(fā)明在三個(gè)語音編解碼器CodecA、CodecB、CodecC多通道VoIP語音處理系統(tǒng)的具體應(yīng)用詳細(xì)說明本發(fā)明語音編解碼器CodecA、CodecB、CodecC的處理幀長假定分別為10ms、20ms、30ms,三個(gè)語音編解碼器處理幀長最大公約數(shù)為10ms,即VoIP語音處理系統(tǒng)時(shí)間片為10ms,取同步循環(huán)周期為3個(gè)時(shí)間片,有frame_1、frame_2和frame_3三個(gè)時(shí)隙。語音編解碼器CodecA、CodecB、CodecC的循環(huán)計(jì)數(shù)周期分別為1、2和3。語音編解碼器CodecA的循環(huán)計(jì)數(shù)周期為1,表示每個(gè)時(shí)間片中使用語音編解碼器CodecA的所有通道都需調(diào)用處理。
假定已開啟配置語音編解碼器CodecC的通道總數(shù)為13,根據(jù)時(shí)隙分配原理,此時(shí)按平均分配原則同步循環(huán)周期三個(gè)時(shí)隙分配給語音編解碼器CodecC的通道數(shù)量分別為frameC_1=4,frameC_2=4,frameC_3=5。
當(dāng)前VoIP語音處理系統(tǒng)要求打開一個(gè)新通道n配置語音編解碼器CodeC,如圖5所示,此時(shí)通道具體時(shí)隙配置過程包括以下步驟510)通道開啟;520)判斷語音編解碼器類型為CodecC,循環(huán)計(jì)數(shù)周期P=3;530)找出CodecC均分時(shí)間片中有效開啟通道數(shù)最小時(shí)隙,此時(shí)frameC_1=frameC_2<frameC_3,最小時(shí)隙通道計(jì)數(shù)為frameC_2;
540)通道計(jì)數(shù)frameC_2++,frameC_2=5,返回時(shí)隙2;550)將返回時(shí)隙2分配給當(dāng)前通道啟動(dòng)時(shí)隙start_frame[n]=2;560)當(dāng)前通道其他初始化程序。
進(jìn)一步,通道調(diào)用的一個(gè)時(shí)間片內(nèi)主處理流程,具體如圖6所示,包括以下步驟610)當(dāng)前時(shí)間片開始,設(shè)置Channel_Num=1即從通道一開始輪詢;620)判斷當(dāng)前Channel_Num通道語音編解碼器類型,讀取當(dāng)前通道時(shí)隙分配start_frame[];讀取當(dāng)前同步循環(huán)周期的時(shí)隙global_timeCount,對于CodecC而言,global_timeCount的循環(huán)周期為3;630)判斷start_frame[]=global_timeCount,即通道啟動(dòng)時(shí)隙分配值與當(dāng)前同步循環(huán)周期時(shí)隙相同,進(jìn)入步驟640);否則跳到步驟650);640)對該Channel_Num通道相關(guān)語音信號進(jìn)行處理;650)Channel_Num++,即通道號加1;660)判斷是否所有通道循環(huán)處理完畢,如果是進(jìn)入步驟670),否則返回步驟620);670)global_timeCoun++,即同步循環(huán)周期的時(shí)隙global_timeCount加1;680)判斷循環(huán)周期時(shí)隙是否一個(gè)周期結(jié)束,如果否,直接進(jìn)入步驟690);如果是,進(jìn)入步驟691);691)重置初始時(shí)隙global_timeCount=1,進(jìn)入步驟690)690)等待下一時(shí)間片的開始,重復(fù)步驟610)~690)。
進(jìn)一步,當(dāng)VoIP語音處理系統(tǒng)關(guān)閉通道號n時(shí),程序返回該通道輪詢起始時(shí)隙2,并將該時(shí)隙累計(jì)通道計(jì)數(shù)器frameC_2減1,即frameC_2=frameC_2-1,實(shí)時(shí)更新通道配置的改變,而后利用該新配置開啟新通道實(shí)現(xiàn)負(fù)擔(dān)均衡。
發(fā)明人通過在應(yīng)用VoIP語音處理系統(tǒng)進(jìn)行實(shí)際性能驗(yàn)證和效果對比分析,進(jìn)一步證明本發(fā)明結(jié)果確實(shí)可靠可行。
權(quán)利要求
1.一種基于單芯片的多通道多語音編解碼器的調(diào)度方法,在每一時(shí)間片內(nèi)按順序詢問每一通道,其特征在于,包括以下步驟1.1)根據(jù)各語音編解碼器處理幀長的最大公約數(shù)確定時(shí)間片時(shí)間;1.2)計(jì)算各語音編解碼器同步循環(huán)周期相對于所述時(shí)間片的循環(huán)計(jì)數(shù)周期P;1.3)針對每個(gè)語音編解碼器把調(diào)用該語音編解碼器的n個(gè)所有通道均衡分配在該語音編解碼器循環(huán)計(jì)數(shù)周期P的各時(shí)隙。
2.根據(jù)權(quán)利要求1所述調(diào)度方法,其特征在于,每一所述時(shí)隙分配n/P整數(shù)個(gè)或最接近n/P整數(shù)個(gè)所述通道。
3.根據(jù)權(quán)利要求1或2所述調(diào)度方法,其特征在于,該循環(huán)計(jì)數(shù)周期P所有時(shí)隙總共分配所述n個(gè)通道,其中任一通道在一個(gè)循環(huán)計(jì)數(shù)周期P內(nèi)僅占用一個(gè)時(shí)隙。
4.根據(jù)權(quán)利要求1所述調(diào)度方法,其特征在于,所述時(shí)隙對應(yīng)所述時(shí)間片,所述同步循環(huán)周期是對應(yīng)語音編解碼器的處理幀長,所述循環(huán)計(jì)數(shù)周期P等于所述處理幀長除以所述時(shí)間片。
5.根據(jù)權(quán)利要求1所述調(diào)度方法,其特征在于,所述語音編解碼器是二種或二種以上,包括G711、G723、G728、G729、G722、G726、GSM-AM、GSM-EFR和EVRC語音編解碼中的一種或多種。
6.根據(jù)權(quán)利要求1所述調(diào)度方法,其特征在于,使用該調(diào)度方法打開新通道時(shí),根據(jù)其調(diào)用的語音編解碼器選擇對應(yīng)循環(huán)計(jì)數(shù)周期P,并在其內(nèi)選擇啟用通道數(shù)最少的時(shí)隙進(jìn)行分配,分配開啟后將對應(yīng)語音編解碼器的該時(shí)隙啟用通道數(shù)加一。
7.根據(jù)權(quán)利要求6所述調(diào)度方法,其特征在于,所述通道數(shù)最少的時(shí)隙可以是多個(gè),任選其中之一進(jìn)行分配,分配開啟后將對應(yīng)語音編解碼器的該時(shí)隙啟用通道數(shù)加一。
8.根據(jù)權(quán)利要求1所述調(diào)度方法,其特征在于,使用該調(diào)度方法關(guān)閉通道時(shí),根據(jù)該通道調(diào)用的語音編解碼器和開啟時(shí)隙將對應(yīng)語音編解碼器的該時(shí)隙啟用通道數(shù)減一。
9.根據(jù)權(quán)利要求1所述調(diào)度方法,其特征在于,該調(diào)度方法應(yīng)用在以一定時(shí)長為處理單位的多通道多語音編解碼器結(jié)構(gòu)的系統(tǒng)中。
10.根據(jù)權(quán)利要求9所述調(diào)度方法,其特征在于,所述系統(tǒng)是VOIP語音處理系統(tǒng)或媒體網(wǎng)關(guān)、無線語音編解碼處理系統(tǒng)中。
全文摘要
本發(fā)明涉及一種基于單芯片的多通道多語音編解碼器的調(diào)度方法,在每一時(shí)間片內(nèi)按順序詢問每一通道,包括根據(jù)各語音編解碼器處理幀長的最大公約數(shù)確定時(shí)間片時(shí)間;計(jì)算各語音編解碼器同步循環(huán)周期相對于所述時(shí)間片的循環(huán)計(jì)數(shù)周期P;針對每一語音編解碼器在其循環(huán)計(jì)數(shù)周期P的各時(shí)隙平均分配調(diào)用該語音編解碼器的所有通道。這種方法在循環(huán)計(jì)數(shù)周期P的各時(shí)隙平均分配對應(yīng)通道,將各對應(yīng)通道平均分配到時(shí)間片內(nèi),最大實(shí)現(xiàn)VoIP語音處理系統(tǒng)通道密度,能夠?qū)τ谌我庹Z音編解碼器組合進(jìn)行實(shí)現(xiàn),無需實(shí)時(shí)監(jiān)測DSP芯片運(yùn)算負(fù)荷,解決了傳統(tǒng)語音編解碼器調(diào)度中帶來的運(yùn)算能力瓶頸和復(fù)雜程度。
文檔編號G10L19/14GK1971710SQ20061016196
公開日2007年5月30日 申請日期2006年12月8日 優(yōu)先權(quán)日2006年12月8日
發(fā)明者馬俊, 王欣, 王侃, 趙心宇 申請人:中興通訊股份有限公司