專利名稱:Ip手機(jī)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于移動(dòng)通信技術(shù)領(lǐng)域,更具體地說(shuō)是涉及撥打語(yǔ)音IP電話的手機(jī)。
背景技術(shù):
目前在手機(jī)撥打語(yǔ)音IP電話即VoIP實(shí)現(xiàn)方案中,將語(yǔ)音通過(guò)分組數(shù)據(jù)網(wǎng)絡(luò)進(jìn)行傳輸,使得線路的利用率提高,并且能夠降低手機(jī)用戶的通信費(fèi)用。但是現(xiàn)在語(yǔ)音IP電話通話存在很明顯的缺點(diǎn),首先IP數(shù)據(jù)包的傳輸是面向非連接的,數(shù)據(jù)通信的屬性是突發(fā)的,數(shù)據(jù)流量是變化的,這會(huì)給語(yǔ)音數(shù)據(jù)的傳輸帶來(lái)一定的延時(shí)和幀丟失,其次變長(zhǎng)的IP數(shù)據(jù)包還會(huì)引入抖動(dòng)。
抖動(dòng)是指IP包傳輸時(shí)間的長(zhǎng)短變化。當(dāng)網(wǎng)絡(luò)上的話音延時(shí)即聲音采樣、數(shù)字化、壓縮、傳輸延時(shí)的總共時(shí)間超過(guò)300ms時(shí),通話雙方一般就只能傾向選擇采用半雙工的通話方式,一方說(shuō)完后另一方再說(shuō)。另一方面,如果傳輸網(wǎng)絡(luò)抖動(dòng)較嚴(yán)重,那么有的話音包因傳輸時(shí)間太長(zhǎng),到達(dá)手機(jī)后因遲到數(shù)據(jù)被丟棄,會(huì)產(chǎn)生話音的斷續(xù)及部份失真,嚴(yán)重影響通話音質(zhì)。
所以在語(yǔ)音IP電話的目前實(shí)現(xiàn)方案中,主要存在的問(wèn)題是時(shí)延、抖動(dòng)和數(shù)據(jù)包丟失。而對(duì)話音業(yè)務(wù)來(lái)說(shuō),比較嚴(yán)重的隨機(jī)性延遲、抖動(dòng)、幀丟失等引起的通話質(zhì)量低劣絕對(duì)不能被用戶所容忍。
發(fā)明內(nèi)容
本發(fā)明的目的,就在于消除或減小VoIP的抖動(dòng)和幀丟失問(wèn)題給用戶帶來(lái)的語(yǔ)音通話質(zhì)量低的影響,提供給用戶一個(gè)語(yǔ)音通話質(zhì)量高的IP手機(jī)。
為實(shí)現(xiàn)上述目的,本發(fā)明的IP手機(jī),包括射頻發(fā)送單元,射頻接收單元,語(yǔ)音編解碼器,聲碼器,微處理器和存儲(chǔ)器。
用于把2-20個(gè)語(yǔ)音幀放在一個(gè)IP數(shù)據(jù)包中通過(guò)中央處理芯片和射頻發(fā)送單元傳輸?shù)穆暣a器;用于通過(guò)射頻接收單元、微處理器接收到IP數(shù)據(jù)包后,建立并存儲(chǔ)語(yǔ)音RTP數(shù)據(jù)的存儲(chǔ)器緩沖區(qū);用于讀取數(shù)據(jù)緩沖區(qū)的RTP語(yǔ)音數(shù)據(jù),把IP數(shù)據(jù)包分成2-20個(gè)語(yǔ)音幀,每隔一定時(shí)間播放一幀的聲碼器。
聲碼器把3個(gè)每20ms一幀的語(yǔ)音幀放在一個(gè)IP數(shù)據(jù)包中進(jìn)行傳輸,語(yǔ)音解碼器的存儲(chǔ)器中建立5個(gè)RTP數(shù)據(jù)的緩沖區(qū)。
語(yǔ)音解碼器把接收到來(lái)的新的語(yǔ)音幀的序列號(hào)同存儲(chǔ)器緩沖區(qū)中的數(shù)據(jù)幀序列號(hào)進(jìn)行比較,將該幀插到序列號(hào)比該幀大與序列號(hào)比該幀小的兩幀之間,如果比較判斷新的語(yǔ)音幀的序列號(hào)比緩沖區(qū)中所有幀的最小序列號(hào)還要小,則丟棄該幀。
對(duì)于丟幀的處理,如果聲碼器需要的播放順序序列號(hào)對(duì)應(yīng)幀不存在時(shí),聲碼器播放NULL空幀,并把下一個(gè)要播放的幀的序列號(hào)加1。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述。
圖1為本發(fā)明的硬件設(shè)備連接框圖;圖2為本發(fā)明的RTP數(shù)據(jù)處理示意圖;圖3為本發(fā)明的插入語(yǔ)音幀示意圖;圖4為本發(fā)明的丟幀處理示意圖。
具體實(shí)施例方式
在手機(jī)發(fā)送端,先由聲碼器每隔20ms產(chǎn)生一個(gè)原始語(yǔ)音幀,然后將n個(gè)(n>=2)20ms語(yǔ)音幀進(jìn)行RTP/UDP/IP/PPP包封裝,最后通過(guò)微處理器、射頻發(fā)送單元將該語(yǔ)音IP包發(fā)送到空中接口;在手機(jī)接收端,在語(yǔ)音解碼器的存儲(chǔ)器中建立RTP數(shù)據(jù)的緩沖buffer,該緩沖buffer的大小,可以取2以及比2大的自然數(shù),具體數(shù)值取決于語(yǔ)音延遲、抖動(dòng)等各種參數(shù)。該緩沖區(qū)用于存放RTP數(shù)據(jù)包。由射頻接收單元從空中接口接收到數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行PPP/IP/UDP解包,然后語(yǔ)音解碼器將該RTP語(yǔ)音幀的序列號(hào)同存儲(chǔ)器緩沖區(qū)中的RTP語(yǔ)音幀序列號(hào)進(jìn)行比較,將該幀插到序列號(hào)比該幀大和序列號(hào)比該幀小的兩幀之間,如果新的RTP語(yǔ)音幀的序列號(hào)比緩沖區(qū)中所有RTP幀的最小序列號(hào)還要小,則丟棄該幀。最后,聲碼器每隔(20*n)ms從RTP緩沖buffer中讀取出一個(gè)RTP語(yǔ)音幀,將該RTP幀分解成n個(gè)原始語(yǔ)音幀,每隔20ms播放一個(gè)原始語(yǔ)音幀。如果聲碼器不能從RTP緩沖buffer中讀取出數(shù)據(jù),或者聲碼器需要播放的順序序列號(hào)所對(duì)應(yīng)的幀不存在時(shí),就播放NULL空幀,并把下一個(gè)要播放的幀的序列號(hào)加1。
如圖1所示,聲音經(jīng)過(guò)麥克,A/D轉(zhuǎn)換,編碼進(jìn)入聲碼器,聲碼器每隔20ms產(chǎn)生一個(gè)原始語(yǔ)音幀,然后將n個(gè)(n>=2)語(yǔ)音幀進(jìn)行RTP/UDP/IP/PPP包封裝,通過(guò)ARM微處理器,射頻發(fā)送單元將該語(yǔ)音IP包發(fā)送到空中無(wú)線接口;接收信號(hào)時(shí),射頻接收單元從空中接口接收到數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行PPP/IP/UDP解包,解碼器存儲(chǔ)器中建立RTP數(shù)據(jù)的緩沖buffer,聲碼器讀取RTP語(yǔ)音幀,經(jīng)CODEC解碼、D/A轉(zhuǎn)換通過(guò)聽(tīng)筒、耳機(jī)或揚(yáng)聲器播放語(yǔ)音。聲碼器采用QDSP2000,手機(jī)主芯片采用高通MSM5100。
實(shí)施例1,采用把3個(gè)20ms語(yǔ)音幀放在一個(gè)RTP包中傳輸,緩沖buffer長(zhǎng)度為5的方式來(lái)說(shuō)明本發(fā)明。
在CDMA移動(dòng)手機(jī)終端,語(yǔ)音幀是以20ms為周期進(jìn)行發(fā)送和接收的。聲碼器(vocoder)每隔20ms,就會(huì)產(chǎn)生一個(gè)語(yǔ)音幀并發(fā)送,同時(shí)播放一個(gè)接收到的語(yǔ)音幀。由于IP網(wǎng)絡(luò)數(shù)據(jù)到達(dá)時(shí)間的不確定性,在20ms有可能到來(lái)幾幀,也可能一幀也不會(huì)到來(lái)。所以對(duì)語(yǔ)音幀的處理采用兩個(gè)進(jìn)程同時(shí)進(jìn)行的方式來(lái)完成,如圖2所示,一個(gè)進(jìn)程為底層協(xié)議RTP/UDP/IP/PPP,當(dāng)空中接口有數(shù)據(jù)到來(lái)時(shí),底層協(xié)議從空中接口接收到數(shù)據(jù)包,將該數(shù)據(jù)包進(jìn)行解包處理,將解出來(lái)的RTP語(yǔ)音包放到RTP緩沖buffer中;另一個(gè)進(jìn)程為聲碼器,聲碼器從RTP緩沖buffer中取出語(yǔ)音幀進(jìn)行播放。我們將這種兩個(gè)進(jìn)程同時(shí)進(jìn)行對(duì)語(yǔ)音幀處理的方式簡(jiǎn)單的稱為RTP推,聲碼器拉的處理方式。這種處理方式可以保證播放語(yǔ)音數(shù)據(jù)的實(shí)時(shí)性,并且便于處理數(shù)據(jù)抖動(dòng)和丟幀情況。
對(duì)于數(shù)據(jù)抖動(dòng)和丟幀的情況,我們采用在RTP協(xié)議建立緩沖區(qū)buffer,并且采用RTP推、聲碼器拉的方式來(lái)處理。抖動(dòng)主要是因?yàn)椴煌腎P包在網(wǎng)絡(luò)上傳送所需的時(shí)間不同,從而導(dǎo)致到達(dá)目的端的先后順序不一致導(dǎo)致的??梢圆扇煞矫娲胧﹣?lái)減小抖動(dòng)。
一方面由于CDMA聲碼器的周期是20ms,所以不同的語(yǔ)音數(shù)據(jù)在傳輸時(shí),很容易就會(huì)相差20ms,從而造成抖動(dòng)、丟幀的發(fā)生。我們將聲碼器的3幀語(yǔ)音數(shù)據(jù)放在一個(gè)IP數(shù)據(jù)包中傳輸,這樣前后兩個(gè)IP包相差60ms,可以大大減少抖動(dòng)的次數(shù)。當(dāng)IP包到達(dá)對(duì)方手機(jī)后,再將該IP數(shù)據(jù)包進(jìn)行解包,分成3幀,每隔20ms播放一幀。
另一方面在數(shù)據(jù)的接收端,我們采用緩沖buffer,給延遲幀一個(gè)緩沖時(shí)間。緩沖buffer的大小,決定了能夠處理抖動(dòng)的最大時(shí)間。緩沖buffer越大,處理抖動(dòng)的能力越強(qiáng),但是,緩沖buffer變大,相應(yīng)的語(yǔ)音延遲也會(huì)相應(yīng)的變大。所以該緩沖buffer的大小,需要根據(jù)用戶對(duì)延遲、抖動(dòng)容忍的程度來(lái)取一個(gè)最好的折衷值。具體的實(shí)現(xiàn)方法為將最先到來(lái)的5幀語(yǔ)音幀放到緩沖buffer中,暫時(shí)不播放。當(dāng)?shù)?幀到來(lái)的時(shí)候,播放緩沖buffer里的第一幀。每次將到來(lái)的新的數(shù)據(jù)幀的序列號(hào)(seq)同緩沖buffer中的數(shù)據(jù)幀序列號(hào)進(jìn)行比較,將該幀插到比它序列號(hào)大的幀與比它序列號(hào)小的兩個(gè)幀之間。
如圖3所示,存儲(chǔ)器緩沖buffer中有n、n+1、n+2、n+4、n+5共5幀數(shù)據(jù)幀,當(dāng)語(yǔ)音解碼器接收到新的一個(gè)數(shù)據(jù)幀n+3,將新的數(shù)據(jù)幀n+3與緩沖buffer中存放的5幀數(shù)據(jù)幀進(jìn)行序列號(hào)比較,比較判斷后把n+3這幀數(shù)據(jù)插入到n+2與n+4數(shù)據(jù)幀之間,聲碼器播放第n幀數(shù)據(jù)。
對(duì)于丟幀的處理丟幀主要是因?yàn)閿?shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中,由于網(wǎng)絡(luò)的問(wèn)題而導(dǎo)致所需的數(shù)據(jù)幀丟失,或是沒(méi)有在要求的時(shí)間內(nèi)到達(dá)。如果數(shù)據(jù)幀在聲碼器需要播放前仍然沒(méi)有到達(dá),則認(rèn)為該幀為丟失幀。
處理丟幀的情況時(shí),如果我們僅采用聲碼器拉的方式,則會(huì)出現(xiàn)問(wèn)題。因?yàn)闉榱颂幚矶秳?dòng),我們?cè)诰彌_buffer中始終存放5幀,以對(duì)數(shù)據(jù)幀進(jìn)行排序。如果某一幀丟失,而聲碼器還是從緩沖buffer中取走下一幀播放,則緩沖buffer中只剩下4幀,如果這種情況出現(xiàn)幾次后,緩沖buffer中將一幀也沒(méi)有了。這樣就不能再很好的進(jìn)行抖動(dòng)的處理了。
具體的處理丟幀的步驟如圖4所示序列號(hào)n,(n+1)的幀已經(jīng)播放結(jié)束,接下來(lái)應(yīng)該播放序列號(hào)為(n+2)的幀。在當(dāng)前的20ms內(nèi),并沒(méi)有從空中接口收到語(yǔ)音幀,即圖上顯示的NULL空幀,并且緩沖buffer中只有序列號(hào)為(n+3)、(n+4)、(n+5)、(n+6)的幀,沒(méi)有序列號(hào)為(n+2)的幀。此時(shí)聲碼器應(yīng)該放棄從緩沖buffer中取數(shù)據(jù)播放,而是播放一個(gè)NULL幀。并且將下一次要播放的幀的序列號(hào)加1。
經(jīng)過(guò)上述對(duì)語(yǔ)音幀的處理,在最大程度上減小了由于數(shù)據(jù)幀抖動(dòng)和丟幀所帶來(lái)的影響。消除了通話過(guò)程中出現(xiàn)的停頓、話音模糊的現(xiàn)象,保證了用戶通話的連續(xù)性和清晰性。
權(quán)利要求
1.一種IP手機(jī),包括射頻發(fā)送單元,射頻接收單元,語(yǔ)音編解碼器,聲碼器,微處理器和存儲(chǔ)器,其特征在于用于把2-20個(gè)語(yǔ)音幀放在一個(gè)IP數(shù)據(jù)包中通過(guò)微處理器和射頻發(fā)送單元傳輸?shù)穆暣a器;用于通過(guò)射頻接收單元、微處理器接收到IP數(shù)據(jù)包后,建立并存儲(chǔ)語(yǔ)音RTP數(shù)據(jù)的存儲(chǔ)器緩沖區(qū);用于讀取數(shù)據(jù)緩沖區(qū)的RTP語(yǔ)音數(shù)據(jù),把IP數(shù)據(jù)包分成2-20個(gè)語(yǔ)音幀,每隔一定時(shí)間播放一幀的聲碼器。
2.根據(jù)權(quán)利要求1所述的IP手機(jī),其特征在于把3個(gè)每20ms一幀的語(yǔ)音幀放在一個(gè)IP數(shù)據(jù)包中進(jìn)行傳輸?shù)穆暣a器。
3.根據(jù)權(quán)利要求1所述的IP手機(jī),其特征在于語(yǔ)音解碼器的存儲(chǔ)器中建立5個(gè)RTP數(shù)據(jù)的緩沖區(qū)。
4.根據(jù)權(quán)利要求1至3任何一項(xiàng)所述的IP手機(jī),其特征在于語(yǔ)音解碼器把接收到來(lái)的新的語(yǔ)音幀的序列號(hào)同存儲(chǔ)器緩沖區(qū)中的數(shù)據(jù)幀序列號(hào)進(jìn)行比較,將該幀插到序列號(hào)比該幀大與序列號(hào)比該幀小的兩幀之間,如果比較判斷新的語(yǔ)音幀的序列號(hào)比緩沖區(qū)中所有幀的最小序列號(hào)還要小,則丟棄該幀。
5.根據(jù)權(quán)利要求4所述的IP手機(jī),其特征在于聲碼器需要的播放順序序列號(hào)對(duì)應(yīng)幀不存在時(shí),播放NULL空幀,并把下一個(gè)要播放的幀的序列號(hào)加1。
全文摘要
本發(fā)明公開(kāi)了一種提高IP語(yǔ)音通話質(zhì)量的IP手機(jī),包括射頻發(fā)送單元,射頻接收單元,語(yǔ)音編解碼器,聲碼器,微處理器和存儲(chǔ)器,用于把n個(gè)語(yǔ)音幀放在一個(gè)IP數(shù)據(jù)包中通過(guò)微處理器和射頻發(fā)送單元傳輸?shù)穆暣a器,用于通過(guò)射頻接收單元、微處理器接收到IP數(shù)據(jù)包后,建立并存儲(chǔ)語(yǔ)音RTP數(shù)據(jù)的存儲(chǔ)器緩沖區(qū),用于讀取數(shù)據(jù)緩沖區(qū)的RTP語(yǔ)音數(shù)據(jù),把IP數(shù)據(jù)包分成n個(gè)語(yǔ)音幀,每隔20ms播放一幀的聲碼器,本發(fā)明減小了由于數(shù)據(jù)幀抖動(dòng)和丟幀所帶來(lái)的影響,保證了用戶通話的連續(xù)性和清晰性。
文檔編號(hào)H04B1/38GK1555185SQ20031011455
公開(kāi)日2004年12月15日 申請(qǐng)日期2003年12月25日 優(yōu)先權(quán)日2003年12月25日
發(fā)明者萬(wàn)初旭, 周春松, 陳驗(yàn)方, 朱平洋, 曲喜維 申請(qǐng)人:海信集團(tuán)有限公司, 青島海信通信有限公司