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

下載本文檔

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

文檔簡(jiǎn)介

1、 JISHOUUNIVERSITY專業(yè)課課程論文題題 目:目:IP 電話實(shí)時(shí)通信的實(shí)現(xiàn)作作 者:者:學(xué)學(xué) 號(hào):號(hào):所屬學(xué)院:所屬學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)年級(jí):專業(yè)年級(jí):09 級(jí)計(jì)科 3 班總總 評(píng)評(píng) 分:分:完成時(shí)間:完成時(shí)間:吉首大學(xué)信息科學(xué)與工程學(xué)院吉首大學(xué)信息科學(xué)與工程學(xué)院 IP 電話實(shí)時(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)方式,通過(guò) IP 電話網(wǎng)關(guān)可以將 PBX 與因特網(wǎng)連接起來(lái),從而實(shí)現(xiàn)普通話機(jī)通過(guò)因特網(wǎng)進(jìn)行通信。因此,IP 電

2、話網(wǎng)關(guān)是近年來(lái)計(jì)算機(jī)和通信領(lǐng)域中研究的一個(gè)熱點(diǎn)。IP 電話網(wǎng)關(guān)的一個(gè)最主要性能指標(biāo)是它的處理密度(即能同時(shí)算是的話路數(shù))。而 IP 電話網(wǎng)關(guān)的處理密度主要取決于它所使用的語(yǔ)音編解碼器處理一幀數(shù)據(jù)的延遲大小。目前,IP 電話所遵循的標(biāo)準(zhǔn)是 H.323,而 H.323 標(biāo)準(zhǔn)首選語(yǔ)音編碼器是 ITU-T G.729.A。ITU-T G.729.A 是用于語(yǔ)音和其它聲音信號(hào)的壓縮編解碼算法建議,它是 G.729 的簡(jiǎn)化版本,編碼速率為 8Kbps,并且有很高的語(yǔ)音質(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 研究?jī)?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)的硬件平臺(tái) .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第六章測(cè)試及實(shí)現(xiàn)結(jié)果分析.19結(jié)束語(yǔ).19參考文獻(xiàn).20IP 電話實(shí)時(shí)通信的實(shí)現(xiàn)第一章 引言1第一章第一章引言引言1.1 課題背景及意義IP(Internet Protocol)電話是一種數(shù)字電話,是技術(shù)創(chuàng)新的一種通信服務(wù)業(yè)務(wù)。它把語(yǔ)音、壓縮編碼、打包分組、分配路由、存儲(chǔ)交換、解包解壓等交換處理在IP網(wǎng)或互聯(lián)網(wǎng)上實(shí)現(xiàn)語(yǔ)音通信。它促進(jìn)了網(wǎng)絡(luò)資源利用,降低語(yǔ)音業(yè)務(wù)成本。因此在全球范圍內(nèi)得到了迅速的發(fā)展, 。IP電話的產(chǎn)

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

10、Internet上實(shí)現(xiàn)電話業(yè)務(wù)稱為Internet電話,應(yīng)該說(shuō)是IP電話的雛形。經(jīng)過(guò)五年的發(fā)展,IP電話成為信息技術(shù)進(jìn)步帶來(lái)的一項(xiàng)新型電話業(yè)務(wù)在全世界開展,并對(duì)傳統(tǒng)電話業(yè)務(wù)形成越來(lái)越大的威脅。IP電話從當(dāng)初的PC到PC發(fā)展到今天的PC到PC、PC電話、電話到電話等多種業(yè)務(wù)形式,但不論是現(xiàn)在還是將來(lái),IP電話可以說(shuō)是當(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)首選語(yǔ)音編碼器是ITU-T G.729.A。ITU-T G.729.A標(biāo)準(zhǔn)采用一種稱為共軛結(jié)構(gòu)代數(shù)碼本激勵(lì)線性預(yù)測(cè)(Conjuga

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

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

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

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

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

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

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

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

19、一個(gè)子幀更新一次。后置濾波能夠有效地改善合成出的語(yǔ)音質(zhì)量。2.2 G.729 編解碼器的實(shí)現(xiàn)關(guān)鍵技術(shù) 2.2.1 ITU-T G.729.A 編解碼器實(shí)現(xiàn)的硬件平臺(tái) ITU-T G.729.A 編解碼器實(shí)現(xiàn)平臺(tái)是筆者開發(fā)的一種集成式 IP 電話網(wǎng)關(guān)。這種集成式IP 電話實(shí)時(shí)通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)5IP 電話網(wǎng)關(guān)的設(shè)計(jì)思想是以 PC 機(jī)為基礎(chǔ),集成了市場(chǎng)通用板卡,如 LSI/C6200DSP 資源卡、Dialogic 的語(yǔ)音卡和網(wǎng)關(guān)等,并以這些板卡為硬件平臺(tái),按照相關(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 來(lái)實(shí)現(xiàn)。TMS320C6201 DSP 是美國(guó) TEXAS INSTRUMENT 公司生產(chǎn)的目前處理速度最快的定點(diǎn)數(shù)字信號(hào)處理器,TMS320C6201 DSP 采用 VLIW(Very Long Instruction Word)體系結(jié)構(gòu),其工作頻率最高可達(dá) 200MHz,內(nèi)部有 1600MIPS4。另外,TMS320C6201 DSP 分別提供了 64KB 的內(nèi)部程序 RAM 和數(shù)據(jù) RAM,片外存儲(chǔ)器可擴(kuò)展到 4GB,可連接SDRAM、SBSRAM 和 Flash Memory。TMS320C6201 DSP 還提供了豐富的外圍電路

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

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

23、。一部分主要負(fù)責(zé) TMS320C6201 DSP 與語(yǔ)音卡之間的數(shù)據(jù)傳輸,它負(fù)責(zé)不斷地將語(yǔ)音卡采取的語(yǔ)音數(shù)據(jù)通過(guò)語(yǔ)音總線(如 SCbus) ,采取等時(shí)通信方式送入到LSI/PCI6200 資源卡 RAM 中,或者是將編解碼器解碼后的數(shù)據(jù)經(jīng) SCbus 總線送給語(yǔ)音卡。另一部分主要負(fù)責(zé) TMS320C6201 DSP 與 HOST 之間的數(shù)據(jù)交換,一方面要將壓縮后的語(yǔ)音信號(hào)由 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)性能好壞的一個(gè)重要指標(biāo)。而一個(gè) IP 電話網(wǎng)你在硬件平臺(tái)確定的情況下,其處理密度主要取決于它所采用的編解碼器的語(yǔ)音編碼處理延遲,即代碼的執(zhí)行速度。如何提高 G.729.A 語(yǔ)音編碼的執(zhí)行速度是 G.729.A 編解碼器實(shí)現(xiàn)的關(guān)鍵技術(shù)問(wèn)題之一。這此,歸納出一系列編程技巧和優(yōu)優(yōu)方法,較好地解決了這一難題。 (1)G.729.A 標(biāo)準(zhǔn)中規(guī)定的算法都是基本算法。因此,在實(shí)現(xiàn)時(shí),可以用快速算法。例如,相關(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ù)組來(lái)放濾波器的系數(shù)。這樣,每計(jì)算一次輸出,不需系數(shù)更新移位,從而可以減少內(nèi)存操作次數(shù),因此可以通過(guò)犧牲存儲(chǔ)器空間來(lái)提高代碼的執(zhí)行速度。如:共振峰濾波器是十階濾波器,常規(guī)的實(shí)現(xiàn)方法是設(shè)置一個(gè)長(zhǎng)度為 10 元素的一維數(shù)組來(lái)保存最近的 10 個(gè)共振峰樣本點(diǎn)。濾波器每輸出一個(gè)樣本點(diǎn),該數(shù)組就需更新一次。對(duì)于一個(gè)子幀 40 個(gè)樣本點(diǎn),就需進(jìn)行 40 次更新操作。如設(shè)置長(zhǎng)度為 70 元素的一組數(shù)組,就可以免去更新操作。可以很大程度地操作代碼的運(yùn)行速度。 (3)多使用指針,盡量減少變量之間的反復(fù)拷貝操作。 (

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

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

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

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

30、 udp 發(fā)送語(yǔ)音數(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í)通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)10圖 4.2 TCP 數(shù)據(jù)在 IP 數(shù)據(jù)報(bào)中的封裝TCP協(xié)議頭部信息如下:(1)源端口:發(fā)送端TCP端口號(hào);(2)目的端口:接收端TCP端口號(hào);(3)序號(hào):指出段中數(shù)據(jù)在發(fā)送端數(shù)據(jù)流中的位置;(4)確認(rèn)號(hào):指出本機(jī)希望下一個(gè)接收的字節(jié)的序號(hào);(5)頭標(biāo)長(zhǎng)度:以32bit為單位的段頭標(biāo)長(zhǎng)度,是針對(duì)變長(zhǎng)的“選項(xiàng)”域設(shè)計(jì)的;(6)碼位:指出

31、段的目的與內(nèi)容,不同的各碼位置位有不同的含義;(7)窗口:用于通告接收端接收緩沖區(qū)的大?。唬?)校驗(yàn)和:這是可選域,置0表示未選,全1表示校驗(yàn)和為伍;(9)緊急指針:當(dāng)碼位的URG置位時(shí),指出緊急指針的序號(hào)。 2. UDP 包結(jié)構(gòu)UDP協(xié)議是英文User Datagram Protocol的縮寫,即用戶數(shù)據(jù)報(bào)協(xié)議,主要用來(lái)支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問(wèn)世至今已經(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)本身外,它還覆蓋一個(gè)附加的“偽頭標(biāo)”。這個(gè)偽頭標(biāo)來(lái)自于IP報(bào)頭,包括:源IP地址、信宿IP地址、協(xié)議類型、UDP長(zhǎng)度及填充域。UDP首部的各字段圖4.3所示。IP 電話實(shí)時(shí)通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)11圖 4.3 UDP 首部UDP協(xié)議頭部信息如下:(1)源端口:發(fā)送端UDP端口號(hào);(2)目的端口:接收端UDP端口號(hào);(3)頭標(biāo)校驗(yàn)和:用于保證頭標(biāo)數(shù)據(jù)的完整性。第五章第五章詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)5.1 系統(tǒng)功能模塊設(shè)計(jì)通過(guò)前面的敘述可以知道,這款軟件唯一的功能就是基于網(wǎng)絡(luò)實(shí)現(xiàn)語(yǔ)音通信。本系統(tǒng)包括三個(gè)基本模塊,音頻的輸入

33、輸出,接收與發(fā)送,數(shù)據(jù)壓縮與排序而這三個(gè)模塊整合起來(lái)就是網(wǎng)關(guān)。網(wǎng)關(guān)是通過(guò) IP 網(wǎng)絡(luò)提供 PC-to-Phone、Phone-to-PC、Phone-to-Phone 語(yǔ)音通信的關(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í)時(shí)語(yǔ)音壓縮,將 64kbit/s 的語(yǔ)音信號(hào)壓縮成低碼率語(yǔ)音信號(hào); c 完成尋址和呼叫控制。下面我給出借口的部分代碼:連接和啟動(dòng)的借口:IP 電話實(shí)時(shí)通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)125.1.1 音頻輸入輸出的實(shí)現(xiàn)下面給出其主要過(guò)程:音頻的輸入

34、描述封裝 wavein api 只使用了 pcm 方式 只使用 函數(shù)回調(diào)方式所有的設(shè)置屬性的函數(shù)只應(yīng)在錄音前使用,否者會(huì)在下次錄音時(shí)才生效應(yīng)該重載 virtual void GetData(char *pBuffer,int iLen); 注意對(duì)于 StartRecord 中的 PerPareBuffer() OpenRecord()是乎應(yīng)該同時(shí)調(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 是 對(duì)應(yīng)的輸出 為 SIZE_AUDIO_FRAME / 160 * 10關(guān)閉的時(shí)候注意,在 closerecord 后有可能線程中還有數(shù)據(jù)到來(lái),導(dǎo)致關(guān)閉不正確,所以關(guān)閉的時(shí)候 sleep(1000),詳細(xì)原因我也不太清楚 依賴性 Winmm.lib 主要代碼中的方法:如線程創(chuàng)建音頻的輸出: 描述封裝 waveout api只使用了 pcm 方式 注意PLAY_DELAY 10 /播放時(shí)候的延遲,大于它,說(shuō)明有 PLAY_DELAY 個(gè)包沒(méi)有播放完成,后面的包不應(yīng)再播放IP 電話實(shí)時(shí)通信的實(shí)現(xiàn)第五章 詳細(xì)設(shè)計(jì)14 依賴性 Winmm.lib 主要代碼中的方法:如線程創(chuàng)建5.1.2 數(shù)據(jù)的

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論