IP电话实时通信的实现课程设计.docx

上传人:b****8 文档编号:9140127 上传时间:2023-02-03 格式:DOCX 页数:20 大小:771.10KB
下载 相关 举报
IP电话实时通信的实现课程设计.docx_第1页
第1页 / 共20页
IP电话实时通信的实现课程设计.docx_第2页
第2页 / 共20页
IP电话实时通信的实现课程设计.docx_第3页
第3页 / 共20页
IP电话实时通信的实现课程设计.docx_第4页
第4页 / 共20页
IP电话实时通信的实现课程设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

IP电话实时通信的实现课程设计.docx

《IP电话实时通信的实现课程设计.docx》由会员分享,可在线阅读,更多相关《IP电话实时通信的实现课程设计.docx(20页珍藏版)》请在冰豆网上搜索。

IP电话实时通信的实现课程设计.docx

IP电话实时通信的实现课程设计

《网络通信程序设计》

--课程设计报告

 

题目:

IP电话网络通信的设计实现

专业:

计算机科学与技术

班级:

0312404姓名:

孙慧华高志杰

学号:

031240420031240306

指导老师:

贺刚

 

2017年6月6日

 

目录

第一章引言3

1.1课题背景及意义3

1.2课题研究现状3

1.3研究内容4

1.4论文组织方式5

第二章需求分析6

2.1功能需求6

2.2性能要求7

第三章概要设计8

3.1体系结构设计8

3.2数据结构设计10

第四章详细设计11

4.1系统功能模块设计11

4.1.1音频输入输出的实现14

4.1.2数据的压缩与排序16

4.1.3传送和接收17

4.2用户界面设计18

第五章测试及实现结果分析19

总结及展望20

第一章引言

1.1课题背景及意义

IP(InternetProtocol)电话是一种数字电话,是技术创新的一种通信服务业务。

它把语音、压缩编码、打包分组、分配路由、存储交换、解包解压等交换处理在IP网或互联网上实现语音通信。

它促进了网络资源利用,降低语音业务成本。

因此在全球范围内得到了迅速的发展,。

IP电话的产生Internet商业化以后,在全世界,特别是发达国家迅速发展起来。

在一些国家(如美国)本地电话Internet接入采用包月制,不限时限量,因此Internet是近乎免费的(Free)的,人们都希望能通过这近乎免费的网络进行传统的电话和传真服务。

1995年2月以色列VocalTec公司研制出可以通过Internet网打长途电话的软件产品"InternetPhone"。

  用户只要在多媒体PC机上安装该软件,就可以通过Internet网和任何地方安装同样软件的联机用户进行通话。

这项技术上的突破引起全世界的瞩目,其背后的无限商机也使许多公司进行此项技术的研究,从而使IP电话技术得到迅速发展,人们把这种在Internet上实现电话业务称为Internet电话,应该说是IP电话的雏形。

  经过五年的发展,IP电话成为信息技术进步带来的一项新型电话业务在全世界开展,并对传统电话业务形成越来越大的威胁。

IP电话从当初的PC到PC发展到今天的PC到PC、PC电话、电话到电话等多种业务形式,但不论是现在还是将来,IP电话可以说是当今世界上发展最快、普及最快的一门应用服务技术之一,也是计算机网络界关注的热点之一。

1.2课题研究现状

H.323是IP电话所遵循的标准,而H.323标准首选语音编码器是ITU-TG.729.A。

ITU-TG.729.A标准采用一种称为"共轭结构代数码本激励线性预测"(ConjugateStructureAlgebraic-Code-ExcitedLinear-Prediction,CS-ACELP)算法来对语音信号进行编码。

在开始编码之前,先要对输入的模拟信号进行电话带滤波,然后以8kHz频率对其进行采样,再将其转换为16位线性PCM码,作为编码器的输入。

编码器处理语音的单位是帧,1帧为10毫秒语音,包括80个声音样本(采样频率为8kHz)。

编码器对每一帧语音信号进行分析,抽取出其中的CPLD模型的参数(线性预测滤器参数),自适应和固定码本索引和增益),对这些参数进行编码和传送。

但是该编码器算法复杂,一帧语音处理延迟较大,很大程度上影响了IP电话网关处理密度。

1.3研究内容

20世纪90年代以来,以Internet为代表的计算机网络技术发展突飞猛进,促进了计算机网络在社会各个领域的广泛应用,而针对G.729的研究和优化一直从未停息。

例如:

为了提高IP电话网关的处理密度,在实现ITU-TG.729.A语音编解码器时,采用了目前性能最好的DSP,即TMS320C6201;针对TMS320C6201并行性和流水等特点,归纳出了一系列减少编解码器处理延迟的优化方法

本文是基于G.729.A协议,采用C++语言实现实时通信,并未针对G.729.A协议进行有话改进,因为本人技术,只是领域达不到那么高的层次,在结果中会对本人基于G.729.A实现的实时通信和从网络上找到的基于TMS

1.4论文组织方式

首先,本论文从目前IP电话的产生开始,详细研究了本课题的背景以及意义,由于目前我国的通信分别掌控的移动,联通,电信三大巨头手中,而通信费用一直是国人所普遍关注的话题,虽然目前位置,通信费用有所改善,但依旧是一个令人无奈的地方,所以本人想就这个现状,深入了解IP电话的实现原理,实现机制,能够在未来开发属于自己的网络电话,做到真正的零费用。

其次,在对本论文的背景有所了解的情况下,对本课题所必须的ITU-TG.729.A编解码器实现的关键技术进行了介绍,主要是G.729.A协议编解码算法介绍,G.729.A编解码器的实现。

最后,在对所必须得基础知识有所了解的情况下,按照各模块的功能,分别详细介绍了各个功能的实现过程。

第二章需求分析

2.1功能需求

随着个人计算机和互联网的普及,越来越多的人开始使用网络这个媒介来发送,接收信息,计算机网络给人们生产和生活带来了巨大的便利,网络语音通信IP电话应运而生,主要分为三种:

电话到电话,PC到电话,PC到PC,本功能选取PC到电话为实现方案,即:

实现PC到电话的网络语音通信。

系统用例图:

能够实现公用交换电话网络(PSIN)中的普通电话相互通话(需要网络环境配合)或与其他的兼容IP电话或应用程序通信。

2.2性能要求

(1)拨打电话:

要求用话机拨打电话,用下列任意一种方式呼叫

●提起话筒或按免提键,拨号盘上直接呼出

●按电话簿键选择号码呼出

●按Redial键选择呼出最近一次已拨打号码呼出

(2)接听电话

●响铃,显示号码或者IP地址

●提起话筒或者免提键接听

●可以拒绝接听

(3)静音或者保留

●通话过程中按相应键

第三章概要设计

3.1体系结构设计

一个成功IP电话的实现是个复杂的过程,我只针对G.729实现通信,其主要的体系结构如下图:

其中用了一个tcp连接,表示双方连通没有,用udp发送语音数据,发送端表明了发送顺序,接收端重排了顺序。

3.2数据结构设计

1.TCP包结构

TCP协议是网络中应用最为广泛的协议,许多的应用层协议都是在建立在TCP协议之上的。

TCP首部的各字段如图4.2所示[4]。

图4.2TCP数据在IP数据报中的封装

TCP协议头部信息如下:

(1)源端口:

发送端TCP端口号;

(2)目的端口:

接收端TCP端口号;

(3)序号:

指出段中数据在发送端数据流中的位置;

(4)确认号:

指出本机希望下一个接收的字节的序号;

(5)头标长度:

以32bit为单位的段头标长度,是针对变长的“选项”域设计的;

(6)码位:

指出段的目的与内容,不同的各码位置位有不同的含义;

(7)窗口:

用于通告接收端接收缓冲区的大小;

(8)校验和:

这是可选域,置0表示未选,全1表示校验和为伍;

(9)紧急指针:

当码位的URG置位时,指出紧急指针的序号。

2.UDP包结构

UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。

包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。

UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。

UDP数据报各域的意义与TCP段中相应的域相同。

只有校验和有些不同,除UDP数据报本身外,它还覆盖一个附加的“伪头标”。

这个伪头标来自于IP报头,包括:

源IP地址、信宿IP地址、协议类型、UDP长度及填充域。

UDP首部的各字段图4.3所示。

图4.3UDP首部

UDP协议头部信息如下:

(1)源端口:

发送端UDP端口号;

(2)目的端口:

接收端UDP端口号;

(3)头标校验和:

用于保证头标数据的完整性。

第四章详细设计

4.1系统功能模块设计

通过前面的叙述可以知道,这款软件唯一的功能就是基于网络实现语音通信。

本系统包括三个基本模块,音频的输入输出,接收与发送,数据压缩与排序

而这三个模块整合起来就是网关。

网关是通过IP网络提供PC-to-Phone、Phone-to-PC、Phone-to-Phone语音通信的关键设备,是IP网络和 PSTN/ISDN/PBX网络之间的接口设备,应具有下列功能:

 

a 具有IP网络接口和与PSTN/ISDN/PBX交换机互联的接口; 

b 完成实时语音压缩,将64kbit/s的语音信号压缩成低码率语音信号; 

c 完成寻址和呼叫控制。

下面我给出借口的部分代码:

连接和启动的借口:

4.1.1音频输入输出的实现

下面给出其主要过程:

音频的输入

[描述]

封装waveinapi

只使用了pcm方式

只使用函数回调方式

所有的设置属性的函数只应在录音前使用,否者会在下次录音时才生效

应该重载virtualvoidGetData(char*pBuffer,intiLen);

[注意]

对于StartRecord中的PerPareBuffer()OpenRecord()是乎应该同时调用,

要么就都不调用,其原因好象是waveInAddBuffer之后必须使用saveInStart

否则好象不能关闭设备

SIZE_AUDIO_FRAME是160倍数

SIZE_AUDIO_PACKED是对应的输出为SIZE_AUDIO_FRAME/160*10

关闭的时候注意,在closerecord后有可能线程中还有数据到来,导致关闭不正确,所以关闭的时候sleep(1000),详细原因我也不太清楚

[依赖性]Winmm.lib

主要代码中的方法:

如线程创建

音频的输出:

[描述]

封装waveoutapi

只使用了pcm方式

[注意]

PLAY_DELAY10//播放时候的延迟,大于它,说明有PLAY_DELAY个包没有播放完成,后面的包不应再播放

[依赖性]Winmm.lib

主要代码中的方法:

如线程创建

4.1.2数据的压缩与排序

依据流程图我们可知,在数据压缩之后会有发送,经过一系列转化后另一方接收,最后是排序。

这里我把压缩和排序放在一起

音频压缩:

部分代码

排序数据:

部分代码

 

4.1.3传送和接收

1.音频的传送

在压缩之后进入发送接收

发送的客服端:

部分代码

 

4.2用户界面设计

用户界面第一行为对方IP地址,发送按钮

第二行连接按钮,断开按钮,接收按钮

第三行为信息提示,如图所示:

第五章测试及实现结果分析

采用二种测试工具对G.729.A编解码器的处理延迟作了测试。

第一种测试工具是C6XSimulator(TMS320C6201的仿真软件),测试条件是假设所有代码装在TMS320C6201片同的程序存储器中;因此,称之为Noncache测试模式。

另外一种测试方式是采用TI公司的C6X的EVM卡(评估卡),测试条件是将TMS320C6201片内64KBRAM作为Cache使用;因此称之为cache模式。

二种测试模式的测试结果如下所示。

测试项目

C6仿真器(非缓冲模式)

C6评估板(非缓冲模式)

编码(每帧)

86720cycles

91650cycles

解码(每帧)

34120cycles

37310cycles

从表可以看出,如果TMS320C6201工作在频率为200MHz,即每Cycles的周期为0.5毫秒,可以算出G.729.A编码一帧(30毫秒)的延迟时间是0.43~0.46毫秒。

因此说,单片TMS320C6201可以同时处理大约20路G.729.A编码(当前国际最高水平是22路);而且,编解码的结果都严格地通过了G.729.A提供的测试矢量的测试,实际播放音质也很好。

ITU-TG.729.A语音信号压缩编解码技术集成了众多低速率语音编解码的优点,大大提高了低速率编解码的语音质量,但算法较复杂。

而TMS320C6201DSP是目前最快的定点数字信号处理器,如果在编写程序时,能充分利用上述关键技术,就可以充分发挥TMS320C6201的功能,大大减少G.729.A编解码的处理延迟,并能保持良好的语音品质。

将该编解码应用在该IP电话网关中,在很大程度上提高了IP电话网关处理密度,改善了IP电话网关的性能。

因此说,本文实现的G.729.A编解码器有很大的应用价值。

总结及展望

IP电话的实现最为重要的音频的发送和接收处理,这其中包括音频的编解码,音频质量优化等等,对于G.729.A协议的研究从未停止过,许多的人为了改进算法奋斗终生,但是G.729.A的算法本身就很复杂,优化改进的事情我无从下手,所以我还是基于在原本的G.729.A协议上进行实时通信的开发,但算法依然不是我设计的,算法的知识和代码都是参考网络。

总之在这次编程的过程中,本人查阅了大量的书籍资料,也包括网络上的实例代码等。

由于时间和技术等多方面因素,代码不是优化的但收获颇多。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1