IP電話實(shí)時通信的實(shí)現(xiàn)課程設(shè)計(jì)_第1頁
IP電話實(shí)時通信的實(shí)現(xiàn)課程設(shè)計(jì)_第2頁
IP電話實(shí)時通信的實(shí)現(xiàn)課程設(shè)計(jì)_第3頁
IP電話實(shí)時通信的實(shí)現(xiàn)課程設(shè)計(jì)_第4頁
IP電話實(shí)時通信的實(shí)現(xiàn)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 JISHOUUNIVERSITY專業(yè)課課程論文題題 目:目:IP 電話實(shí)時通信的實(shí)現(xiàn)作作 者:者:學(xué)學(xué) 號:號:所屬學(xué)院:所屬學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)年級:專業(yè)年級:09 級計(jì)科 3 班總總 評評 分:分:完成時間:完成時間:吉首大學(xué)信息科學(xué)與工程學(xué)院吉首大學(xué)信息科學(xué)與工程學(xué)院 IP 電話實(shí)時通信的實(shí)現(xiàn)(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首 416000)摘 要隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,最近幾年,IP 電話技術(shù)突飛猛進(jìn),已從當(dāng)初 PC 到 PC 的機(jī)連接方式發(fā)展到 IP 電話網(wǎng)關(guān)方式,通過 IP 電話網(wǎng)關(guān)可以將 PBX 與因特網(wǎng)連接起來,從而實(shí)現(xiàn)普通話機(jī)通過因特網(wǎng)進(jìn)行通信。因此,IP 電

2、話網(wǎng)關(guān)是近年來計(jì)算機(jī)和通信領(lǐng)域中研究的一個熱點(diǎn)。IP 電話網(wǎng)關(guān)的一個最主要性能指標(biāo)是它的處理密度(即能同時算是的話路數(shù))。而 IP 電話網(wǎng)關(guān)的處理密度主要取決于它所使用的語音編解碼器處理一幀數(shù)據(jù)的延遲大小。目前,IP 電話所遵循的標(biāo)準(zhǔn)是 H.323,而 H.323 標(biāo)準(zhǔn)首選語音編碼器是 ITU-T G.729.A。ITU-T G.729.A 是用于語音和其它聲音信號的壓縮編解碼算法建議,它是 G.729 的簡化版本,編碼速率為 8Kbps,并且有很高的語音質(zhì)量。關(guān)鍵詞:ITU-T G.729.A IP 電話 編碼器Implementation of real-time communicatio

3、n IP telephoneWuxin(College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000)Abstract With the continuous development of network technology, in recent years, IP phone technology make a spurt of progress, from the original PC to PC machine connection to IP phone gateway, v

4、ia the IP telephone gateway can be PBX connected with the Internet, thereby realizing the Putonghua machine via the Internet in communication. Therefore, IP telephone gateway is in recent years in the field of computer and communications research hot spot. The IP telephony gateway to one of the most

5、 important performance index is its treatment of the density ( which can also be word number ). While the IP telephone gateway processing density depends mainly on the speech codec processing data of a frame delay size. At present, IP telephone follow the standard is H.323, and the H.323 standard IT

6、U-T G.729.A speech coder is preferred. ITU-T G.729.A is used for voice and other sound signal compression coding and decoding algorithm is proposed, which is a simplified version of G.729, coding rate of 8Kbps, and has a very high voice Quality. Key words:ITU-T G.729.A IP phone encoder目 錄第一章引言 .11.1

7、 課題背景及意義.11.2 課題研究現(xiàn)狀.11.3 研究內(nèi)容.21.4 論文組織方式.2第二章G.729 編解碼器實(shí)現(xiàn)的關(guān)鍵技術(shù) .32.1 G.729 協(xié)議編解碼算法介紹.32.1.1G.729 編碼算法介紹 .32.2 G.729 編解碼器的實(shí)現(xiàn)關(guān)鍵技術(shù).52.2.1 ITU-T G.729.A 編解碼器實(shí)現(xiàn)的硬件平臺 .52.2.2 ITU-T G.729.A 軟件模塊的設(shè)計(jì) .52.2.3 ITU-T G.729.A 標(biāo)準(zhǔn)在 TMS320C6201 上實(shí)現(xiàn)的關(guān)鍵技術(shù) .6第三章需求分析.73.1 功能需求.73.2 性能要求.8第四章概要設(shè)計(jì).84.1 體系結(jié)構(gòu)設(shè)計(jì).94.2 數(shù)據(jù)結(jié)構(gòu)

8、設(shè)計(jì).9第五章詳細(xì)設(shè)計(jì).115.1 系統(tǒng)功能模塊設(shè)計(jì).115.1.1 音頻輸入輸出的實(shí)現(xiàn).125.1.2 數(shù)據(jù)的壓縮與排序.145.1.3 傳送和接收.165.2 用戶界面設(shè)計(jì).17第六章測試及實(shí)現(xiàn)結(jié)果分析.19結(jié)束語.19參考文獻(xiàn).20IP 電話實(shí)時通信的實(shí)現(xiàn)第一章 引言1第一章第一章引言引言1.1 課題背景及意義IP(Internet Protocol)電話是一種數(shù)字電話,是技術(shù)創(chuàng)新的一種通信服務(wù)業(yè)務(wù)。它把語音、壓縮編碼、打包分組、分配路由、存儲交換、解包解壓等交換處理在IP網(wǎng)或互聯(lián)網(wǎng)上實(shí)現(xiàn)語音通信。它促進(jìn)了網(wǎng)絡(luò)資源利用,降低語音業(yè)務(wù)成本。因此在全球范圍內(nèi)得到了迅速的發(fā)展, 。IP電話的產(chǎn)

9、生Internet商業(yè)化以后,在全世界,特別是發(fā)達(dá)國家迅速發(fā)展起來。在一些國家(如美國)本地電話Internet接入采用包月制,不限時限量,因此Internet是近乎免費(fèi)的(Free)的,人們都希望能通過這近乎免費(fèi)的網(wǎng)絡(luò)進(jìn)行傳統(tǒng)的電話和傳真服務(wù)。1995年2月以色列VocalTec公司研制出可以通過Internet網(wǎng)打長途電話的軟件產(chǎn)品Internet Phone。用戶只要在多媒體PC機(jī)上安裝該軟件,就可以通過Internet網(wǎng)和任何地方安裝同樣軟件的聯(lián)機(jī)用戶進(jìn)行通話。這項(xiàng)技術(shù)上的突破引起全世界的矚目,其背后的無限商機(jī)也使許多公司進(jìn)行此項(xiàng)技術(shù)的研究,從而使IP電話技術(shù)得到迅速發(fā)展,人們把這種在

10、Internet上實(shí)現(xiàn)電話業(yè)務(wù)稱為Internet電話,應(yīng)該說是IP電話的雛形。經(jīng)過五年的發(fā)展,IP電話成為信息技術(shù)進(jìn)步帶來的一項(xiàng)新型電話業(yè)務(wù)在全世界開展,并對傳統(tǒng)電話業(yè)務(wù)形成越來越大的威脅。IP電話從當(dāng)初的PC到PC發(fā)展到今天的PC到PC、PC電話、電話到電話等多種業(yè)務(wù)形式,但不論是現(xiàn)在還是將來,IP電話可以說是當(dāng)今世界上發(fā)展最快、普及最快的一門應(yīng)用服務(wù)技術(shù)之一,也是計(jì)算機(jī)網(wǎng)絡(luò)界關(guān)注的熱點(diǎn)之一。1.2 課題研究現(xiàn)狀H.323是IP電話所遵循的標(biāo)準(zhǔn),而H.323標(biāo)準(zhǔn)首選語音編碼器是ITU-T G.729.A。ITU-T G.729.A標(biāo)準(zhǔn)采用一種稱為共軛結(jié)構(gòu)代數(shù)碼本激勵線性預(yù)測(Conjuga

11、te Structure Algebraic-Code-Excited Linear-Prediction,CS-ACELP)算法來對語音信號進(jìn)行編碼。在開始編碼之前,先要對輸入的模擬信號進(jìn)行電話帶濾波,然后以8kHz頻率對其進(jìn)行采樣,再將其轉(zhuǎn)換為16位線性PCM碼,作為編碼器的輸入。編碼器處理語音的單位是幀,1幀為10毫秒語音,包括80個聲音樣本(采樣頻率為8kHz)。編碼器對每一幀語音信號進(jìn)行分析,抽取出其中的CPLD模型的參數(shù)(線性預(yù)測濾器參數(shù)),自適應(yīng)和固定碼本索引和IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)2增益),對這些參數(shù)進(jìn)行編碼和傳送。但是該編碼器算法復(fù)雜,一幀語音處理延遲較大,

12、很大程度上影響了IP電話網(wǎng)關(guān)處理密度。 1.3 研究內(nèi)容G.729 協(xié)議使用的算法是共軛結(jié)構(gòu)的算術(shù)碼本激勵線性預(yù)測(CS-ACELP),它基于CELP 編碼模型。由于 G.729 編解碼器具有很高的語音質(zhì)量和很低的延時,被廣泛地應(yīng)用在數(shù)據(jù)通信的各個領(lǐng)域,如 IP phone 和 H.323 網(wǎng)上多媒體通信系統(tǒng)等20 世紀(jì) 90 年代以來,以 Internet 為代表的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)發(fā)展突飛猛進(jìn),促進(jìn)了計(jì)算機(jī)網(wǎng)絡(luò)在社會各個領(lǐng)域的廣泛應(yīng)用,而針對 G.729 的研究和優(yōu)化一直從未停息。例如:為了提高 IP 電話網(wǎng)關(guān)的處理密度,在實(shí)現(xiàn) ITU-T G.729.A 語音編解碼器時,采用了目前性能最好的

13、 DSP,即 TMS320C6201;針對 TMS320C6201 并行性和流水等特點(diǎn),歸納出了一系列減少編解碼器處理延遲的優(yōu)化方法本文是基于 G.729.A 協(xié)議,采用 C+語言實(shí)現(xiàn)實(shí)時通信,并未針對 G.729.A 協(xié)議進(jìn)行有話改進(jìn),因?yàn)楸救思夹g(shù),只是領(lǐng)域達(dá)不到那么高的層次,在結(jié)果中會對本人基于G.729.A 實(shí)現(xiàn)的實(shí)時通信和從網(wǎng)絡(luò)上找到的基于 TMS1.4 論文組織方式 首先,本論文從目前 IP 電話的產(chǎn)生開始,詳細(xì)研究了本課題的背景以及意義,由于目前我國的通信分別掌控的移動,聯(lián)通,電信三大巨頭手中,而通信費(fèi)用一直是國人所普遍關(guān)注的話題,雖然目前位置,通信費(fèi)用有所改善,但依舊是一個令人無

14、奈的地方,所以本人想就這個現(xiàn)狀,深入了解 IP 電話的實(shí)現(xiàn)原理,實(shí)現(xiàn)機(jī)制,能夠在未來開發(fā)屬于自己的網(wǎng)絡(luò)電話,做到真正的零費(fèi)用。其次,在對本論文的背景有所了解的情況下,對本課題所必須的 ITU-T G.729.A 編解碼器實(shí)現(xiàn)的關(guān)鍵技術(shù)進(jìn)行了介紹,主要是 G.729.A 協(xié)議編解碼算法介紹,G.729.A 編解碼器的實(shí)現(xiàn)。最后,在對所必須得基礎(chǔ)知識有所了解的情況下,按照各模塊的功能,分別詳細(xì)介紹了各個功能的實(shí)現(xiàn)過程。第二章第二章G.729G.729 編解碼器實(shí)現(xiàn)的關(guān)鍵技術(shù)編解碼器實(shí)現(xiàn)的關(guān)鍵技術(shù)IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)32.1 G.729 協(xié)議編解碼算法介紹 2.1.1G.729

15、編碼算法介紹電話線路上的模擬語音信號,經(jīng)話路帶寬濾波(符合 ITU-T G.712 建議)后,被 8kHz采樣,量化成 16bit 線性 PCM 數(shù)字信號輸入到編碼器。該編碼器是基于線性預(yù)測分析合成技術(shù),盡量減少實(shí)際語音與合成語音之間經(jīng)聽覺加權(quán)后差分信號的能量為準(zhǔn)則來進(jìn)行編碼的。編碼器的結(jié)構(gòu)主要部分有:線性預(yù)測分析和 LPC 系數(shù)的量化;開環(huán)基音周期估計(jì);自適應(yīng)碼本搜索;固定碼本搜索;碼本增益量化。下面分別描述這五部分的主要技術(shù)。線性預(yù)測分析與 LPC 系數(shù)的量化首先對信號進(jìn)行加線性預(yù)測分析窗,分析窗由兩部分組成。第一部分是半個漢明窗,第二部分是四分之一個余弦信號。將加窗后的語音信號通過 Le

16、vinsonDurbin 算法獲得線性預(yù)測濾波器系數(shù) ai i=1.10。由于線譜對參數(shù)比線性預(yù)測系數(shù)具有更好的內(nèi)插特性和量化特性,G.729 將 LPC 參數(shù)轉(zhuǎn)換成相應(yīng)的線譜對參數(shù),最后對線譜對參數(shù)進(jìn)行量化。開環(huán)基音分析為了減少自適應(yīng)碼本搜索的復(fù)雜度,需要計(jì)算開環(huán)基音 Top,使自適應(yīng)碼本搜索在開環(huán)基音值附近進(jìn)行?;糁档姆秶?18145 個樣本點(diǎn)之間。自適應(yīng)碼本搜索G.729 對每個子幀進(jìn)行閉環(huán)基音搜索,它通過最小化原始語音信號和重構(gòu)語音信號的加權(quán)均方誤差來進(jìn)行閉環(huán)基音搜索。對子幀的閉環(huán)基音 T1 的搜索是局限在開環(huán)基音 Top的一個小范圍內(nèi),對子幀的閉環(huán)基音 T2 的搜索是局限在閉環(huán)基

17、音的一個小范圍內(nèi)。這樣可以減少基音搜索的復(fù)雜度。固定碼本搜索IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)4G.729 固定碼本矢量含有四個非脈沖,每個脈沖的幅度要可以是+1 或-1。通過最小化加權(quán)語音信號和加權(quán)重構(gòu)語音信號的均方誤差來進(jìn)行固定碼本的搜索。增益量化G.729.A 對自適應(yīng)碼本增益和固定碼本增益采用二級共軛結(jié)構(gòu)碼本進(jìn)行矢量量化。在碼本搜索時,采用預(yù)搜索策略,使得運(yùn)算量只為全搜索算法的 1/4。 2.1.2 G.729解碼算法介紹G.729 的解碼也是按幀進(jìn)行的,主要是對符合 G.729 協(xié)議的碼流進(jìn)行解碼,得到相應(yīng)的參數(shù),根據(jù)語音產(chǎn)生的機(jī)理,合成語音。解碼的方框圖如圖所示,其主要部分為

18、:參數(shù)解碼;后濾波處理。G.729 解碼過程如下。參數(shù)解碼首先解碼得到線譜對參數(shù),并將線譜對參數(shù)轉(zhuǎn)換為線性預(yù)測系數(shù)。然后解碼出基音周期,獲得自適應(yīng)碼本矢量 V(n)。解碼出固定碼本矢量的四個脈沖的位置和符號,計(jì)算出固定碼本矢量 c(n)。解碼出固定本預(yù)測增益 gc和固定碼本增益,接著得到激勵信號,n=039。最后將激勵信號u(n)輸入到線性預(yù)測合成濾波器中,計(jì)算出重構(gòu)語音。后濾波處理后濾波處理主要是自適應(yīng)后濾波。自適應(yīng)后置濾波器是由三個濾波器級連而成:長時后置濾波器 Hp(z),短時后置濾波器 Hf(z),頻譜傾斜補(bǔ)償濾波器 Ht(z),后面接著進(jìn)行一個自適應(yīng)增益控制過程。后置 濾波器的系數(shù)每

19、一個子幀更新一次。后置濾波能夠有效地改善合成出的語音質(zhì)量。2.2 G.729 編解碼器的實(shí)現(xiàn)關(guān)鍵技術(shù) 2.2.1 ITU-T G.729.A 編解碼器實(shí)現(xiàn)的硬件平臺 ITU-T G.729.A 編解碼器實(shí)現(xiàn)平臺是筆者開發(fā)的一種集成式 IP 電話網(wǎng)關(guān)。這種集成式IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)5IP 電話網(wǎng)關(guān)的設(shè)計(jì)思想是以 PC 機(jī)為基礎(chǔ),集成了市場通用板卡,如 LSI/C6200DSP 資源卡、Dialogic 的語音卡和網(wǎng)關(guān)等,并以這些板卡為硬件平臺,按照相關(guān)協(xié)議,開發(fā)出一套IP 網(wǎng)關(guān)軟件。集成式 IP 電話網(wǎng)關(guān)的硬件基本結(jié)構(gòu)如圖 3 所示。其中 G.729.A 編解碼器是由LSI/

20、C6200 資源卡上的 TMS320C6201 DSP 來實(shí)現(xiàn)。TMS320C6201 DSP 是美國 TEXAS INSTRUMENT 公司生產(chǎn)的目前處理速度最快的定點(diǎn)數(shù)字信號處理器,TMS320C6201 DSP 采用 VLIW(Very Long Instruction Word)體系結(jié)構(gòu),其工作頻率最高可達(dá) 200MHz,內(nèi)部有 1600MIPS4。另外,TMS320C6201 DSP 分別提供了 64KB 的內(nèi)部程序 RAM 和數(shù)據(jù) RAM,片外存儲器可擴(kuò)展到 4GB,可連接SDRAM、SBSRAM 和 Flash Memory。TMS320C6201 DSP 還提供了豐富的外圍電路

21、接口,如:Scbus 語音總線、MVIP 語音總線、HOST 接口以及 JTAG 口等。 2.2.2 ITU-T G.729.A 軟件模塊的設(shè)計(jì) G.729.A 編解碼器運(yùn)行的硬件平臺是 TMS320C6201DSP,支持 SPOX。SPOX 是一種功能很強(qiáng)的實(shí)時操作系統(tǒng)。在 SPOX 操作系統(tǒng)的調(diào)度下,可對多路語音進(jìn)行適時的語音壓縮和解碼。G.729.A 編解碼器件主要由調(diào)度及命令解釋模塊、G.729.A 數(shù)據(jù)壓縮與解壓縮模塊和接口模塊三部分組成。 (1)調(diào)度及命令解釋模塊 該模塊主要用于解釋 HOST 發(fā)來的各種命令,如發(fā)送或接收編解碼數(shù)據(jù),查詢編解碼狀態(tài)以及啟動、停止編解碼操作等,該模塊

22、不直接與 HOST 打交道,而是以 SPOX 提供的服務(wù)方式,通過接口功能模塊間接地實(shí)現(xiàn)與 HOST 之間數(shù)據(jù)交換。同時在 SPOX 的支持下,完成對多路語音編解碼的適時調(diào)度。 (2)G.729.A 數(shù)據(jù)壓縮與解壓縮模塊 該模塊是 ITU-T G.729.A 編解碼器的核心模塊,在很大程序上影響編解碼的性能。該模塊實(shí)現(xiàn)了 ITU-T G.729.A 全部功能。該部分已單獨(dú)形成一個 TMS320C6201 函數(shù)庫,可與其他任何部分連接。 (3)接口模塊IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)6 該模塊主要實(shí)現(xiàn) TMS320C6201 與 HOST 以及與語音卡之間的數(shù)據(jù)交換,因此該模塊分成兩部分

23、。一部分主要負(fù)責(zé) TMS320C6201 DSP 與語音卡之間的數(shù)據(jù)傳輸,它負(fù)責(zé)不斷地將語音卡采取的語音數(shù)據(jù)通過語音總線(如 SCbus) ,采取等時通信方式送入到LSI/PCI6200 資源卡 RAM 中,或者是將編解碼器解碼后的數(shù)據(jù)經(jīng) SCbus 總線送給語音卡。另一部分主要負(fù)責(zé) TMS320C6201 DSP 與 HOST 之間的數(shù)據(jù)交換,一方面要將壓縮后的語音信號由 PCI 總線送往 HOST;另一方面將 HOST 解包的碼流分類后讀入編解碼器。編解碼器與 HOST 之間的數(shù)據(jù)交換采用中斷方式進(jìn)行同步。 2.2.3 ITU-T G.729.A 標(biāo)準(zhǔn)在 TMS320C6201 上實(shí)現(xiàn)的關(guān)

24、鍵技術(shù) 處理密度是衡量 IP 電話網(wǎng)關(guān)性能好壞的一個重要指標(biāo)。而一個 IP 電話網(wǎng)你在硬件平臺確定的情況下,其處理密度主要取決于它所采用的編解碼器的語音編碼處理延遲,即代碼的執(zhí)行速度。如何提高 G.729.A 語音編碼的執(zhí)行速度是 G.729.A 編解碼器實(shí)現(xiàn)的關(guān)鍵技術(shù)問題之一。這此,歸納出一系列編程技巧和優(yōu)優(yōu)方法,較好地解決了這一難題。 (1)G.729.A 標(biāo)準(zhǔn)中規(guī)定的算法都是基本算法。因此,在實(shí)現(xiàn)時,可以用快速算法。例如,相關(guān)系數(shù)的計(jì)算,在 G.729.A 標(biāo)準(zhǔn)中使用一種最基本的計(jì)算方法,如果采用快速的傅里葉變換技術(shù)或采用分解因子的計(jì)算方法,就可以加快計(jì)算速度。 (2)算法中有很多 FI

25、R 和 IIR 運(yùn)算,如:共振峰濾波器、聽覺加權(quán)濾波器、聯(lián)合濾波器等,在設(shè)計(jì)這些濾波器時,使用較大數(shù)組來放濾波器的系數(shù)。這樣,每計(jì)算一次輸出,不需系數(shù)更新移位,從而可以減少內(nèi)存操作次數(shù),因此可以通過犧牲存儲器空間來提高代碼的執(zhí)行速度。如:共振峰濾波器是十階濾波器,常規(guī)的實(shí)現(xiàn)方法是設(shè)置一個長度為 10 元素的一維數(shù)組來保存最近的 10 個共振峰樣本點(diǎn)。濾波器每輸出一個樣本點(diǎn),該數(shù)組就需更新一次。對于一個子幀 40 個樣本點(diǎn),就需進(jìn)行 40 次更新操作。如設(shè)置長度為 70 元素的一組數(shù)組,就可以免去更新操作。可以很大程度地操作代碼的運(yùn)行速度。 (3)多使用指針,盡量減少變量之間的反復(fù)拷貝操作。 (

26、4)用查詢靜態(tài)表的方法來代替動態(tài)的計(jì)算,從而減少計(jì)算延遲。例如,在設(shè)計(jì) cos()函數(shù)時,程序在初始化時就生成一個 512 項(xiàng)的 cos()函數(shù)表。當(dāng)需要計(jì)算 cos()函數(shù)值時,可以采用查表方式來代替動態(tài)計(jì)算。 (5)內(nèi)存單元的合理分配。TMS320C6201 DS 的片內(nèi)存儲器有 64KB 數(shù)據(jù)存儲器。由于 TMS320C6201 從片內(nèi)存儲器讀入一個字比從片外存儲器讀入一個字快 14 倍,因此在編程時,盡量將經(jīng)常使用的數(shù)據(jù)分配在片內(nèi)存儲器中。 (6)G.729.A 在 TMS320C6201 上定點(diǎn)實(shí)現(xiàn)時,數(shù)據(jù)精度也是一個關(guān)鍵問題。在定點(diǎn)信號處理芯片上實(shí)現(xiàn)某些浮點(diǎn)算法時,可以采取定點(diǎn)數(shù)來

27、表示浮點(diǎn)數(shù),這樣可以加快運(yùn)行速度,但可能導(dǎo)致運(yùn)算精度不夠。解決的方法是在精度要求比較高的地方,可以將計(jì)算的中間變量用 32 位表示,甚至用 40 位表示。 (7)充分利用 TMS320C6201 的編譯器和優(yōu)化工具來優(yōu)化 C 和線性匯編代碼,并合理地選擇優(yōu)化參數(shù)。有關(guān)速度的優(yōu)化參數(shù)是:-o3、-pm、-mt、mi 等。并盡量用TMS320C6201 的線性匯編或匯編語音來實(shí)現(xiàn) G.729.A 編解碼器的算法。 (8)充分利用 TMS320C6201 的特點(diǎn)來編寫代碼。如流水功能,8 個功能單元并行操作功能,32 位字讀寫功能以及 Intrinsics 的使用等,例如:對多重循環(huán),如最內(nèi)層循環(huán)次

28、數(shù)少而較簡單,可把最內(nèi)層循環(huán)展開,以便外循環(huán)做流水線;對一些簡單循環(huán)而前后沒有因果IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)7關(guān)系,合并這些循環(huán)也有利于做流水線。第三章第三章需求分析需求分析3.1 功能需求隨著個人計(jì)算機(jī)和互聯(lián)網(wǎng)的普及,越來越多的人開始使用網(wǎng)絡(luò)這個媒介來發(fā)送,接收信息,計(jì)算機(jī)網(wǎng)絡(luò)給人們生產(chǎn)和生活帶來了巨大的便利,網(wǎng)絡(luò)語音通信 IP 電話應(yīng)運(yùn)而生,主要分為三種:電話到電話,PC 到電話,PC 到 PC,本功能選取 PC 到電話為實(shí)現(xiàn)方案,即:實(shí)現(xiàn) PC 到電話的網(wǎng)絡(luò)語音通信。 系統(tǒng)用例圖:能夠?qū)崿F(xiàn)公用交換電話網(wǎng)絡(luò)(PSIN)中的普通電話相互通話(需要網(wǎng)絡(luò)環(huán)境配合)或與其他的兼容 I

29、P 電話或應(yīng)用程序通信。3.2 性能要求(1)撥打電話:要求用話機(jī)撥打電話,用下列任意一種方式呼叫提起話筒或按免提鍵,撥號盤上直接呼出按電話簿鍵選擇號碼呼出按 Redial 鍵選擇呼出最近一次已撥打號碼呼出(2)接聽電話IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)8響鈴,顯示號碼或者 IP 地址提起話筒或者免提鍵接聽可以拒絕接聽(3)靜音或者保留通話過程中按相應(yīng)鍵IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)9第四章第四章概要設(shè)計(jì)概要設(shè)計(jì)4.1 體系結(jié)構(gòu)設(shè)計(jì)一個成功 IP 電話的實(shí)現(xiàn)是個復(fù)雜的過程,我只針對 G.729 實(shí)現(xiàn)通信,其主要的體系結(jié)構(gòu)如下圖: 其中用了一個 tcp 連接,表示雙方連通沒有,用

30、 udp 發(fā)送語音數(shù)據(jù),發(fā)送端表明了發(fā)送順序,接收端重排了順序。4.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)1. TCP包結(jié)構(gòu)TCP協(xié)議是網(wǎng)絡(luò)中應(yīng)用最為廣泛的協(xié)議,許多的應(yīng)用層協(xié)議都是在建立在TCP協(xié)議之上的。TCP首部的各字段如圖4.2所示4。IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)10圖 4.2 TCP 數(shù)據(jù)在 IP 數(shù)據(jù)報(bào)中的封裝TCP協(xié)議頭部信息如下:(1)源端口:發(fā)送端TCP端口號;(2)目的端口:接收端TCP端口號;(3)序號:指出段中數(shù)據(jù)在發(fā)送端數(shù)據(jù)流中的位置;(4)確認(rèn)號:指出本機(jī)希望下一個接收的字節(jié)的序號;(5)頭標(biāo)長度:以32bit為單位的段頭標(biāo)長度,是針對變長的“選項(xiàng)”域設(shè)計(jì)的;(6)碼位:指出

31、段的目的與內(nèi)容,不同的各碼位置位有不同的含義;(7)窗口:用于通告接收端接收緩沖區(qū)的大小;(8)校驗(yàn)和:這是可選域,置0表示未選,全1表示校驗(yàn)和為伍;(9)緊急指針:當(dāng)碼位的URG置位時,指出緊急指針的序號。 2. UDP 包結(jié)構(gòu)UDP協(xié)議是英文User Datagram Protocol的縮寫,即用戶數(shù)據(jù)報(bào)協(xié)議,主要用來支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天,UDP仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。

32、UDP數(shù)據(jù)報(bào)各域的意義與TCP段中相應(yīng)的域相同。只有校驗(yàn)和有些不同,除UDP數(shù)據(jù)報(bào)本身外,它還覆蓋一個附加的“偽頭標(biāo)”。這個偽頭標(biāo)來自于IP報(bào)頭,包括:源IP地址、信宿IP地址、協(xié)議類型、UDP長度及填充域。UDP首部的各字段圖4.3所示。IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)11圖 4.3 UDP 首部UDP協(xié)議頭部信息如下:(1)源端口:發(fā)送端UDP端口號;(2)目的端口:接收端UDP端口號;(3)頭標(biāo)校驗(yàn)和:用于保證頭標(biāo)數(shù)據(jù)的完整性。第五章第五章詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)5.1 系統(tǒng)功能模塊設(shè)計(jì)通過前面的敘述可以知道,這款軟件唯一的功能就是基于網(wǎng)絡(luò)實(shí)現(xiàn)語音通信。本系統(tǒng)包括三個基本模塊,音頻的輸入

33、輸出,接收與發(fā)送,數(shù)據(jù)壓縮與排序而這三個模塊整合起來就是網(wǎng)關(guān)。網(wǎng)關(guān)是通過 IP 網(wǎng)絡(luò)提供 PC-to-Phone、Phone-to-PC、Phone-to-Phone 語音通信的關(guān)鍵設(shè)備,是 IP 網(wǎng)絡(luò)和 PSTN/ISDN/PBX 網(wǎng)絡(luò)之間的接口設(shè)備,應(yīng)具有下列功能: a 具有 IP 網(wǎng)絡(luò)接口和與 PSTN/ISDN/PBX 交換機(jī)互聯(lián)的接口; b 完成實(shí)時語音壓縮,將 64kbit/s 的語音信號壓縮成低碼率語音信號; c 完成尋址和呼叫控制。下面我給出借口的部分代碼:連接和啟動的借口:IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)125.1.1 音頻輸入輸出的實(shí)現(xiàn)下面給出其主要過程:音頻的輸入

34、描述封裝 wavein api 只使用了 pcm 方式 只使用 函數(shù)回調(diào)方式所有的設(shè)置屬性的函數(shù)只應(yīng)在錄音前使用,否者會在下次錄音時才生效應(yīng)該重載 virtual void GetData(char *pBuffer,int iLen); 注意對于 StartRecord 中的 PerPareBuffer() OpenRecord()是乎應(yīng)該同時調(diào)用,要么就都不調(diào)用,其原因好象是 waveInAddBuffer 之后必須 使用 saveInStart否則好象不能關(guān)閉設(shè)備局域網(wǎng)抓包軟件的設(shè)計(jì)與實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)13SIZE_AUDIO_FRAME 是 160 倍數(shù)SIZE_AUDIO_PACK

35、ED 是 對應(yīng)的輸出 為 SIZE_AUDIO_FRAME / 160 * 10關(guān)閉的時候注意,在 closerecord 后有可能線程中還有數(shù)據(jù)到來,導(dǎo)致關(guān)閉不正確,所以關(guān)閉的時候 sleep(1000),詳細(xì)原因我也不太清楚 依賴性 Winmm.lib 主要代碼中的方法:如線程創(chuàng)建音頻的輸出: 描述封裝 waveout api只使用了 pcm 方式 注意PLAY_DELAY 10 /播放時候的延遲,大于它,說明有 PLAY_DELAY 個包沒有播放完成,后面的包不應(yīng)再播放IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)14 依賴性 Winmm.lib 主要代碼中的方法:如線程創(chuàng)建5.1.2 數(shù)據(jù)的

36、壓縮與排序依據(jù)流程圖我們可知,在數(shù)據(jù)壓縮之后會有發(fā)送,經(jīng)過一系列轉(zhuǎn)化后另一方接收,最后是排序。這里我把壓縮和排序放在一起音頻壓縮:部分代碼局域網(wǎng)抓包軟件的設(shè)計(jì)與實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)15排序數(shù)據(jù):部分代碼IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)165.1.3 傳送和接收 1音頻的傳送 在壓縮之后進(jìn)入發(fā)送接收 發(fā)送的客服端: 部分代碼局域網(wǎng)抓包軟件的設(shè)計(jì)與實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)17IP 電話實(shí)時通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)185.2 用戶界面設(shè)計(jì)用戶界面第一行為對方 IP 地址,發(fā)送按鈕第二行連接按鈕,斷開按鈕,接收按鈕第三行為信息提示,如圖所示:局域網(wǎng)抓包軟件的設(shè)計(jì)與實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)19第六章第六章測試及實(shí)現(xiàn)結(jié)果分析測試及實(shí)現(xiàn)結(jié)果分析采用二種測試工具對 G.729.A 編解碼器的處理延遲作了測試。第一種測試工具是 C6X Simulator(TMS320C6201 的仿真軟件),測試條件是假設(shè)所有代碼裝在 TMS320C6201 片同的程序存儲器中;因此,稱之為 Non cache 測試模式。另外一種測試方式是采用 TI 公司的C6X 的 EVM 卡(評估卡),測試條件是將 TMS320C6201 片內(nèi) 64KB RAM 作為 Cache 使用;因此稱之為 cache 模式。二種測試模式的測試結(jié)果如下所示。測試項(xiàng)目C6 仿真器(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論