专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VOIP

voip中的h323跟sip

发布时间:2011-07-03 07:01:49 文章来源:www.iduyao.cn 采编人员:星星草
voip中的h323和sip

Voip中的h323和sip

目录

1 voip及h323,sip协议简介... 1

1.1 voip. 1

1.2 h323. 1

1.3 sip. 2

2 h323,sip的voip系统架构及比较... 2

2.1 h323架构... 2

2.2 sip架构... 4

2.3 h323和sip架构voip系统比较... 4

3 h323,sip的voip会话过程比较... 5

3.1 h323呼叫... 5

3.2 sip呼叫... 10

4 语音视频协议... 20

5 运营商封ip,封udp. 20

6 udp穿透... 20

 

 

1 voip及h323,sip协议简介

1.1 voip

Voip:voice over ip 通过ip协议传输声音,语音数字通讯

1.2 h323

 

H323是由国际电信联盟电信标准局(ITU-T)颁发的一套标准,它定义了一套在计算机网络中实现音频和视频通信的协议。

现在常用的网络会议软件和网络电话软件采用的是国际电信联盟(ITU-T)制定的H.323协议族,

主要特色协议

H225呼叫信令

H245多媒体控制协议

 

H.323标准定义了一个在基于分组的网络上进行灵活的,实时的,可交互的多媒体通信协议集。

H323计算机能在包交换网络(网际网和内部网)和电路交换网络上传输音频,视频和数据。

H.323网络包括终端,落地网关,网守(可级联) 和计费服务器RTS

 

1.3 sip

  SIP(SessionInitiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。

使用 SIP,服务提供商可以随意选择标准组件。不论媒体内容和参与方数量,用户都可以查找和联系对方。SIP 对会话进行协商,以便所有参与方都能够就会话功能达成一致以及进行修改。它甚至可以添加、删除或转移用户。

  SIP它既不是会话描述协议,也不提供会议控制功能。为了描述消息内容的负载情况和特点,SIP 使用 Internet 的会话描述协议 (SDP) 来描述终端设备的特点。SIP 自身也不提供服务质量 (QoS),它与负责语音质量的资源预留协议(RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。

  SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP如同电子邮件客户机一样重用MIME 类型描述,因此与会话相关的应用程序可以自动启动。

SIP 服务提供商可以建立包含语音、视频和聊天内容的全新媒体。如果使用 MGCP、H.323 或 SS7 标准,则提供商必须等待可以支持这种新媒体的协议新版本。而如果使用 SIP,尽管网关和设备可能无法识别该媒体,但在两个大陆上设有分支机构的公司可以实现媒体传输。

迄今为止,3G 界已经选择 SIP 作为下一代移动网络的会话控制机制。Microsoft 已经选择 SIP 作为其实时通信策略并在 Microsoft XP、Pocket PC 和 MSN Messenger 中进行了部署。

google 发布世界上首个开源的Html5 sip 客户端

  HTML5 SIP客户端是一款开源的,完全利用JavaScript编写的集社交(FaceBook,Twitter,Google+),在线游戏,电子商务等应用于一体。无扩展,无插件或是必备的网关,视频堆栈技术依赖于WebRTC。如同主页里的Demo视频演示,你可以轻松实现Chrome和IOS/Android移动设备之间的实时视频/音频通话。

 

2 h323,sip的voip系统架构及比较

2.1 h323架构

 

呼叫信令(Q931---H225.0)

作用:端点间建立和拆除呼叫  按H225.0建议修改后的Q.931消息

常用消息:

激活             必须       由被叫发送,表示被叫已经准备就绪

呼叫处理中    可选       被叫或GK在发送连接消息前发出的临时响应,被叫使用GK时必选

进行中           可选       由被叫端点在连接消息前发出

初始化           必选       建立呼叫使用的初始化消息

初始化响应    可选

完全释放       必选       结束一个呼叫

用户信息       可选       发送附加的呼叫建立消息

通知              可选       想用户呈送消息

状态              可选       对状态询问消息或不知名消息给予响应

状态询问       可选       发往端点用来询问当前呼叫张太,可与RAS状态消息结合使用

设施(Q.932)            用来完成呼叫重定向或起碇一个附加服务

 

H245 多媒体控制协议

H245的控制通道和逻辑通道

H245使用逻辑通道来对媒体流进行处理,一条逻辑通道就是两端点间的单向媒体通道,它可对某一特定的媒体提供支持,每一逻辑通道都由发送方制定一个号码。

由于逻辑通道是单向的,所以双方参与的会话存在两条逻辑信道。

H245控制通道用来传输H245消息的一特殊的逻辑通道(信道号为0),只要端点没有退出呼叫,则可认为是永远开着。

负责能力交换【有哪些视频能力,有哪些音频能力】

两种能力接收能力(能接收和处理的格式)和发送能力(能发送的媒体格式)

端点用“终端能力设置”(请求消息,要求应答的)来指明它的能力,用系列号来表示媒体的处理,并且发送和接收是分开的。

终端能力设置应答(应答消息,返回与终端能力设置请求相匹配的序号)

终端能力设置拒绝(应答消息,指明拒绝的原因)

“发送终端能力设置”(命令消息),不需要给予响应,但接收到此的端点随后要发送一个终端能力设置消息(用于通信中断后)

2.2 sip架构

 

【查 ser 和 asterisk的功能】

SIP 网络元素

 

用户代理:一个软件程序被安装在一个用户的终端或一个 IP 电话发起和终止电话呼叫,添加数据和视频通信。有两个逻辑部分在用户代理中:用户代理服务器(UAS)和用户代理客户机(UAC)。UAC 发送请求和接收响应。UAS 接收请求和发送响应。

 

代理服务器:根据被邀请者的模型执行一个会话邀请的路由安排。有两种基本类型的 SIP 代理服务器在那里-无状态和有状态。无状态服务器是简单的信息转发器。有状态代理,在接受一个请求的条件下,创建一个状态和保持这个状态直到事务完成。

转发服务器:接收一个请求和发送回包括一个特定用户当前位置列表的一条响应,通过查看这条请求在由一个注册者创建的目的地数据库的意向接收器。

注册器服务器:一个注册器是接收注册请求和放置这些通过那些请求接收到的信息在那些闲置区域的服务。

2.3 h323和sip架构voip系统比较

 

 

  作为目前IP电话系统的两套协议,H.323与SIP存在相似点,也有不同之处。

 

  (1)相似点

 

  SIP的UA等价于一个H.323的终端,SIP服务器则等价于H.323的网守,而SIP类似于H.323的RAS和Q.931协议。此外,H.323和SIP的功能和业务非常相似。

 

  (2)不同点

 

  H.323和SIP主要的不同在于呼叫信令和控制采取不同的方式,SIP是面向字节的,易于扩展,容易实现,但安全性差;而H.323是面向比特的,复杂不容易扩展。对于补充业务,H.323更为严格。

 

  (3)SIP的优势

 

  SIP容易扩展面向字符,而且容易实现,是下一代网络的主要协议。

 

 

3 h323,sip的voip会话过程比较

3.1 h323呼叫

H323呼叫流程

呼入

1>快启流程

2>慢启流程

呼出

1>    快启

2>    慢启

H323实体

 

被动释放

快启释放

慢启释放

 

主动释放

1>    快启释放

2>    慢启释放

h.323架构下的gk注册/呼叫处理/能力交换过程  CNG网关向网守注册流程

   1) CNG网关发出GRQ,寻找注册网守的IP地址(也可以通过静态配置得网守的IP地址)。

   2) 可以接受H.225注册的网守返回GCF,否则返回GRJ。

   3) CNG网关向找到的网守发送注册请求消息RRQ,其中包含H.225信息.H.225必须定期发送RRQ消息,以表明其注册有效。

   4) 注册成功则网守返回RCF,否则返回RRJ。

   5) CNG网关发送H.225状态报告消息给业务控制。

   6) CNG网关完成初始的寻找、注册过程,等待用户呼入信息。

  业务呼叫流程

  当CNG网关向网守完成注册以后,CNG网关 进入"可使用"即READY 状态,可以接受和处理用户呼叫。把呼入和呼出一起描述。

  0) 初始化完成状态,本地H225完成寻找、注册过程,等待用户呼入信息。

   1) 本地H255接收业务控制发送用户卡号、密码以及主叫号码信息。

   2) 本地H255通过RAS呼叫信令传输地址向注册网守发送ARQ进行用户认证。

   3) 如认证成功则注册网守返回ACF,其中包括用户的最大通话时长信息,转5。

   4) 如认证失败则注册网守返回ARJ,其中包括失败的原因。转6。

   5) 本地H255给业务控制发送认证确认消息,其中包括用户的最大通话时长信息,转7。

   6) 本地H255给业务控制发送认证失败消息,其中包括失败的原因,转0。

   7) 本地H255接收业务控制发送的被叫号码信息。

   8) 本地H255通过RAS呼叫信令传输地址向注册网守发送ARQ对默认的被叫号码进行地址解析,转10。

   9) 被叫为22#时本地H255通过RAS呼叫信令传输地址向注册网守发送ARQ传输新密码加密。转11。

   10) 返回地址解析后的信息,主要包括呼叫模式(直接或转发)及相应的目的呼叫信令传输地址信息,转13。

   11) 注册网守对新密码的修改成功或失败的信息。

   12) 本地H255给业务控制发送新密码的修改成功或失败的信息,转7。

   13) 本地H255向远端H255发送Q.931消息设置,其中包括被叫号码、被叫网关地址信息,主叫信息等。对快速呼叫有快速启动域。

   14) 远端H255回送Q.931消息呼叫处理,包括H255通道地址信息。

   15) 远端H255通过RAS呼叫信令传输地址向注册网守发送ARQ对被叫用户进行认证。

   16) 如认证成功则注册网守返回ACF给远端H255,转19。

   17) 如认证失败则注册网守返回ACF给远端H255,转30。

   18) 远端H255向远端业务控制发送呼叫建立请求消息。

   19) 远端业务控制向远端H255发送被叫振铃响应消息。若为请求失败(如遇忙)消息,发送Q.931消息 Release Complete, 本地H255发送被叫状态消息给本地业务控制,转7。

   20) 远端H255向本地H255发送Q.931消息警告,可能包含H255通道地址信息。

   21) 本地H255向本地业务控制发送消息,以给用户产生回铃音。

   22) 远端业务控制向远端H255发送被叫摘机消息。

   23) 远端H255向本地H255发送Q.931消息连接,如必要,远端业务控制开始计费。

   24) 本地H255向本地业务控制发送消息,以便接通主叫用户,此时本地业务控制开始计费

   如果此时快速呼叫条件成立,则转27。

   25)  H245进行能力交换。

   26) 打开逻辑通道。

   27) 用户通话,直到用户挂机。如果主叫挂机则转36。

   28) 远端业务控制发送以挂机消息给远端H255。

   29) 关闭逻辑通道,互相发送结束指令。

30)远端H255向本地H255发送Q.931消息Release Complete。

31)本地H255向本地业务控制发送被叫挂机消息。

32 )远端H255通过RAS呼叫信令传输地址向注册CNG网关 发送DRQ消息,包括计费消息。

33)注册CNG网关 返回DCF信息给远端H255。转0。

34)本地H255通过RAS呼叫信令传输地址向注册CNG网关 发送DRQ消息,包括计费消息。

35)注册CNG网关 返回DCF信息给本地H255。(H255需要发送消息给业务控制以表明被叫已经挂机。

36)本地业务控制发送主叫挂机消息给本地H255。

37)类似过程29-35。

38)一次呼叫过程结束。

3.2 sip呼叫

SIP呼叫流程

1> 创建呼叫

呼入

ü  SIP实体是一远端实体(可能是SIP UAC 也可能是SIPPROXY)。

ü  红色部分可以没有,有呼叫决定,一般被叫不是本地用户,最好起用该流程。

ü  由于SIP是通过SDP交互媒体流信息,为了简化内部处理,上层不用理解SDP,所以需要增加一个媒体通道信息单元,采用AG 承载H323的语音通道IE,即

/* 音频逻辑通道单元结构定义 */

typedef struct tag_ST_Q931_IE_AUDIO_CHANNEL

{

    _U16    usIEName;      /* 参见EN_Q931_IE_TYPE定义*/

    _U16    usIELength;    /* 信息单元长度,(从usLength以后开始)*/

    _U32    ulConnectID;   /* 应用层连接标识 */

    _U32    ulChannelID;   /* 适配层通道标识 */

    _U32    ulRtpIp;       /* RTP流IP地址*/

    _U32    ulRtcpIp;      /* RTCPIP地址 */

    _U16    ulRtpPort;     /* RTP流端口号 */

    _U16    ulRtcpPort;   /* RTCP端口号 */

    _U8     ucRtpType; /* RTP流端类型*/

    _U8     ucRtpPt;       /* RTP流PT值 */

    _U8     ucSecRtpType;  /* 冗余RTP流端类型:参见*/

    _U8     ucMaxFrame;    /* 最大帧数目 */

    _U8     ucIsSilence;   /* 静音标志 */

    _U8     ucOprType;     /* 通道操作类型*/

    _U8     ucResv[3];    /* 保留 */

}ST_Q931_IE_AUDIO_CHANNEL;

呼出

??

2> 释放呼叫

主动释放

被动释放

 

 

SIP和UAM/TAM是UX2000的模块,SIP实体是对接设备

以上流程中红色部分根据流程给出的特殊处理,兰色部分可以要也可以不要。

 

让我们具体分析一次典型的SIP呼叫。在这个场景中,用户A想呼叫用户B。图2说明了这次呼叫:



图2. 一次典型的SIP呼叫

  下面对所有的消息进行了解释:

 

 

1. User Agent A发送一个SIP请求INVITE给User Agent B,表达User A想跟User B进行谈话的愿望。这个请求包含语音流协议的细节。payload中使用会话描述协议(Session Description Protocol,SDP)就是为此目的。SDP消息包含一个清单,其内容为User A支持的所有介质编码。(这些编码使用RTP进行传输。)

INVITE
sip:UAB@example.com
SIP/2.0
Via: SIP/2.0/UDP 10.20.30.40:5060
From: UserA <sip:UAA@example.com>;tag=589304
To: UserB <sip:UAB@example.com>
Call-ID: 8204589102@example.com
CSeq: 1 INVITE
Contact: <sip:UserA@10.20.30.40>
Content-Type: application/sdp
Content-Length: 141
 
v=0
o=UserA 2890844526 2890844526 IN IP4 10.20.30.40
s=Session SDP
c=IN IP4 10.20.30.40
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000

2. User Agent B读取该请求,然后告诉User Agent A它已经收到请求。

SIP/2.0
100 Trying
From: UserA <sip:UAA@example.com>;tag=589304
To: UserB <sip:UAB@example.com>
Call-ID: 8204589102@example.com
CSeq: 1 INVITE
Content-Length: 0

3.当电话响铃时,User Agent B发送临时消息(响铃)给User Agent A,这样它就不会超时和放弃。

SIP/2.0
180 Ringing
From: UserA <sip:UAA@example.com>;tag=589304
To: UserB <sip:UAB@example.com>;tag=314159
Call-ID: 8204589102@example.com
CSeq: 1 INVITE
Content Length: 0

4.最终,User B决定接受呼叫。此时,User Agent B发送一个OK响应给User Agent A。在响应的payload中,还有另一条SDP消息。它包含一组两个用户代理都支持的介质编码。此时,双方正式处于呼叫中。使用200类型的响应可以接受所有类型的SIP请求。

SIP/2.0
200 OK
From: UserA <sip:UAA@example.com>;tag=589304
To: UserB <sip:UAB@example.com>;tag=314159
Call-ID: 8204589102@example.com
CSeq: 1 INVITE
Contact: <sip:UserB@10.20.30.41>
Content-Type: application/sdp
Content-Length: 140
 
v=0
o=UserB 2890844527 2890844527 IN IP4 10.20.30.41
s=Session SDP
c=IN IP4 10.20.30.41
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000

5. User Agent A最后使用一条ACK消息进行确认。对于这种请求类型来说,没有重试和响应消息,即使消息丢失。ACK只在INVITE消息中使用。

ACK
sip:UAB@example.com SIP/2.0
Via: SIP/2.0/UDP 10.20.30.41:5060
Route: <sip:UserB@10.20.30.41>
From: UserA <sip:UAA@example.com>;tag=589304
To: UserB <sip:UAB@example.com>;tag=314159
Call-ID: 8204589102@example.com
CSeq: 1 ACK
Content-Length: 0

6..两个用户代理现在使用最后一条SDP消息中选定的方法进行连接。

RTP使用PCMU/8000编码对在端口49170 & 3456上双向传输的音频数据进行打包。

7.在通信会话结束时,其中一个用户挂断。此时,这个用户的用户代理发送一个新的请求BYE。这条消息可以由任一方发送。

BYE
sip:UAB@example.com SIP/2.0
Via: SIP/2.0/UDP 10.20.30.41:5060
To: UserB <sip:UAB@example.com>;tag=314159
From: UserA <sip:UAA@example.com>;tag=589304
Call-ID: 8204589102@example.com
CSeq: 1 BYE
Content-Length: 0

8.另一用户的用户代理接受该请求,然后使用一条OK消息作为应答。呼叫连接至此断开。

SIP/2.0
200 OK
To: UserB <sip:UAB@example.com>;tag=314159
From: UserA <sip:UAA@example.com>;tag=589304
Call-ID: 8204589102@example.com
CSeq: 1 BYE
Content-Length: 0

  SIP消息的第一行包含消息的类型和所使用的SIP版本(2.0)。在请求中,这一行还包含一个叫做SIP URI的地址。这代表消息的目的地。
这个例子说明了如何使用请求消息INVITE、ACK和BYE,以及200 OK响应消息。SIP中还存在许多其他消息。下面给出一些请求:

消息

用法

INVITE

呼叫一个用户代理,传送一次呼叫。

ACK

确认呼叫。

BYE

终止呼叫。

CANCEL

终止还未OK的呼叫。

REGISTER

提供一项注册服务,带有一个联系地址和可以用来代替的别名。例如,在前面的例子中,地址sip:UAA@example.com就是sip:UserA@10.20.30.40的别名。然后,注册服务器example.com就可以把呼叫转发给地址10.20.30.40。

OPTIONS

询问一个用户代理的“能力”(例如,该用户代理能够识别的消息和编码)。

  现在给出一些经常使用的响应消息:

消息

用法

100 Trying

消息已收到,但是最终用户代理尚未进行处理。请等待。

180 Ringing

最终用户代理已经收到消息,正在提示用户。请等待。

200 OK

最终用户已经接受消息。

301 Moved Permanently & 302 Moved Temporarily

用户代理的地址已经改变,新的永久或临时地址位于Contact字段中。

400 Bad Request

普通错误消息。客户端不能识别消息。

401 Unauthorized & 407 Proxy Authentication Required

请使用证书重试。

404 Not Found

要联系的用户不存在或尚未注册。

408 Request Timeout

另一方没有响应。这意味着SIP消息永远不会OK。所有重试都将被丢弃。这并不意味着电话响太长时间(电话可以永远响铃)。

  消息使用类似的头字段类型。下面给出其中的一些:

头字段

用法

From

SIP请求的发送者。

To

SIP请求的接受者。这通常与SIP URI相同(可以是一个“别名”或一个实际地址)。

Contact

用户代理的实际地址。

Call-ID

这并不是呼叫者的电话号码。它惟一地代表两个用户代理之间的完整呼叫或对话。所有相关的SIP消息都使用同一个Call-ID。例如,当一个用户代理收到一条BYE消息,根据Call-ID,它就知道要挂断哪次呼叫。

CSeq

消息的顺序编号。这在一次对话或一个Call-ID中是惟一的。这用于区别新的消息和“重试消息”。当一条初始消息没有及时OK时,重试就会进行,并会定时发送。

Content-Type

消息内payload的MIME类型。

Content-Length

payload的大小,以字节为单位。信封和payload之间由一空行隔开。

 

 

3.3 比较

1.h323 呼叫指令集合复杂,可扩展性较差。Sip呼叫指令简单,可扩展性强.

 

 

4 语音视频协议

4.1 语音协议 G711 G721 G7231

一、数字化音频原理:声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线。通常人耳可以听到的频率在20Hz到20KHz的声波称为为可听声,低于20Hz的成为次声,高于20KHz的为超声,多媒体技术中只研究可听声部分。

可听声中,话音信号的频段在80Hz到3400Hz之间,音乐信号的频段在20Hz-20kHz之间,语音(话音)和音乐是多媒体技术重点处理的对象。

由于模拟声音在时间上是连续的,麦克风采集的声音信号还需要经过数字化处理后才能由计算机处理。通常我们采用PCM编码(脉冲代码调制编码),即通过采样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。

1、采样

采样,就是每隔一段时间间隔读一次声音的幅度。单位时间内采样的次数称为采样频率。显然采样频率越高,所得到的离散幅值的数据点就越逼近于连续的模拟音频信号曲线,同时采样的数据量也越大。

为了保证数字化的音频能够准确(可逆)地还原成模拟音频进行输出,采样定理要求:采样频率必须大于等于模拟信号频谱中的最高频率的2倍。

常用的音频采样率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz。

例如:话音信号频率在0.3~3.4kHz范围内,用8kHz的抽样频率(fs),就可获得能取代原来连续话音信号的抽样信号,而一般CD采集采样频率为44.1kHz。

 

2、量化

量化,就是把采样得到的声音信号幅度转换成数字值,用于表示信号强度。

量化精度:用多少个二进位来表示每一个采样值,也称为量化位数。声音信号的量化位数一般是 4,6,8,12或16 bits 。

 

由采样频率和量化精度可以知道,相对自然界的信号,音频编码最多只能做到无限接近,在计算机应用中,能够达到最高保真水平的就是PCM编码,通常PCM约定俗成了无损编码。

 

3、编码

一个采样率为44.1kHz,量化精度为16bit,双声道的PCM编码输出,它的数据速率则为 44.1K×16×2 =1411.2 Kbps,存储一秒钟需要176.4KB的空间,1分钟则约为10.34M,因此,为了降低传输或存储的费用,就必须对数字音频信号进行编码压缩。

到目前为止,音频信号经压缩后的数码率降低到32至256kbit/s,语音可以低至8kbit/s以下。

对数字音频信息的编码进行压缩的目的是在不影响人们使用的情况下使数字音频信息的数据量最少。通常用如下6个属性来衡量:

     —比特率;

—信号的带宽。

     —主观/客观的语音质量;

     —延迟;

 

 

 

—计算复杂度和对存储器的要求;

 

 

—对于通道误码的灵敏度;

 

 

为使编码后的音频信息可以被广泛地使用,在进行音频信息编码时需要采用标准的算法。传统会议电视设备主要采用ITU-T推荐的G.711、G.722、G.728和AAC_LD等音频标准。

二、常用音频协议简介:1、

ITU-T G.728

 

1992年ITU-T发布的电话声音信号编码方式推荐标准。采用LD-CELP编码方式,采样率为8KHz,以16kb/秒的速度传送声音信号,传送延迟时间极短,仅有0.625 ms 的算法编码延迟。

2、

ITU-T G.711

标准公布于1972年,其语音信号编码是非均匀量化PCM。语音的采样率为8KHz,每个样值采用8bit量化,输出的数据率为64kbps。这种窄带编码支持对300到 3,400赫兹的音频进行压缩。但虽然压缩质量不错,但是消耗的带宽相对较大,主要用于数字PBX/ISDN上的数字式电话。

3、

ITU-T G.722

ITU-T G.722标准是第一个用于 16 KHZ 采样率的标准化宽带语音编码算法,1984年被CCITT定义为标准,而且现今还在使用。.G.722 编解码器在 16 kHz 频率上接收 16 位数据(带宽从 50 Hz 至 7 kHz),并将其压缩为 64、56 与 48 Kbit/s,其总延迟约 3 ms,能够提供更好的通话质量。

G.722的优点是延时和传输位误差率非常低,且没有任何的专利技术,费用低廉。因此G.722在无线通信系统,VoIP生产商,个人通信服务,视频会议应用等广泛应用。

4、

G.722.1

G.722.1基于 Polycom 的第三代 Siren 7 压缩技术,1999年被ITU-T批准为G.722.1标准。G.722.1采用16 KHZ 采样频率,16 位数据量化,支持从 50 Hz 至 7 kHz频率范围的音频采样,并将其压缩为 32 与 24 Kbit/s。它采用20 ms封帧,提供40ms的算法延迟。

G722.1可实现比 G.722 编解码器更低的比特率以及更大的压缩。目标是以大约一半的比特率实现与 G.722 大致相当的质量。这种编码使用许可需要获得Polycom公司的授权。

5、

G722.1 Annex C

G722.1 Annex C基于 Polycom 的Siren 14 压缩技术, 采用32kHz采样频率,支持从 50 Hz至 14 kHz频率范围的音频采样,并将其压缩为 24、32或48 kbps。采用20ms封帧,提供40毫秒演算延迟。

2005年中,国际电信联盟(ITU)批准PolycomSiren 14™

技术为14 kHz超宽带音频编码新标准。同时进入作为ITU-T建议的G.722.1 Annex C。

G722.1 Annex C具有低运算能力,低带宽的优点。适于处理语音、音乐与自然界声音。

6、

AAC-LD

AAC(Advanced Audio Coding,高级音频编码)是由Fraunhofer研究院(MP3格式的创造者)、杜比(DOLBY)试验室和ATT(美国电话电报公司)共同研发出的一种音频压缩格式,是MPEG-2规范的一部分,并在1997年3月成为国际标准。随着MPEG-4标准在2000年成型后,MPEG2 AAC也被作为核心编码技术,并增加了一些新的编码特性,又叫MPEG-4 AAC。

MPEG-4 AAC家族目前共有九种编码规格,AAC-LD(Low Delay,低延迟规格)是用在低码率下编码。它支持8K~48K采样率的,可以64Kbps的码率输出接近 CD 音质的音频,并支持多声音通道,AAC-LD 算法延迟仅为 20ms。

AAC因为其模块化设计,功能更为强大。本身的框架结构能够被不断的新的东西填充,这就使得不同发展方面的内核相互融合,彼此吸收精华成为可能。

 

7、

各种音频协议的主要参数对比:

 

采样频率

支持音频带宽

输出码率

最低算法延迟

 

G711

8KHz

300 Hz ~ 3,400 Hz

64 Kbps

<1ms

 

G722

16kHz

50 Hz ~ 7 kHz

64 Kbps

3ms

 

G722.1

16kHz

50 Hz ~7 kHz

24、32 Kbps

40ms

 

G722.1 C

32kHz

50 Hz~14 kHz

24、32、48Kbps

40ms

 

AAC-LD

48kHz

20 Hz-20kHz

48~64 Kbps

20ms

 

 

4.2 视频协议H261 H263 H264

H.261 视频编码标准

 

H.261 是ITU-T 为在综合业务数字网(ISDN)上开展双向声像业务(可视电话、视频会议)而制定的,速率为64kb/s的整数倍。H.261 只对CIF 和QCIF 两种图像格式进行处理,每帧图像分成图像层、宏块组(GOB)层、宏块(MB)层、块(Block)层来处理。

 

H.261 是最早的运动图像压缩标准,它详细制定了视频编码的各个部分,包括运动补偿的帧间预测、DCT 变换、量化、熵编码,以及与固定速率的信道相适配的速率控制等部分。

 

H.262 视频编码标准(又称MPEG-2)

 

由MPEG-1 扩充而来,支持隔行扫描。使用十分广泛,几乎用于所有的数字电视系统,适合标清和高清电视,适合各种媒体传输,包括卫星、有线、地面等,都能有效地传输。

 

H.263 视频编码标准

 

H.263 是最早用于低码率视频编码的ITU-T 标准,是ITU-T 为低于64kb/s 的窄带通信信道制定的视频编码标准。它是在H.261 基础上发展起来的,其标准输入图像格式可以是S-QCIF、QCIF、CIF、4CIF 或者16CIF 的彩色4∶2∶0 亚取样图像。H.263 与H.261 相比采用了半象素的运动补偿,并增加了4 种有效的压缩编码模式。随后出现的第二版(H.263+)及H.263++增加了许多选项,使其具有更广泛的适用性。

 

H.264 视频编码标准

 

H.264 是由ISO/IEC 与ITU-T 组成的联合视频组(JVT)制定的新一代视频压缩编码标准。1996 年制定H.263标准后,ITU-T 的视频编码专家组(VCEG)开始了两个方面的研究:一个是短期研究计划,在H.263 基础上增加选项(之后产生了H.263+与H.263++);另一个是长期研究计划,制定一种新标准以支持低码率的视频通信。长期研究计划产生了H.26L 标准草案,其目标是研制出新的压缩标准,与以前的任何标准相比,效率要提高一倍,同时具有简单、直观的视频编码技术,网络友好的视频描述,适合交互和非交互式应用(广播、存储、流煤体)。

 

2001 年,ISO 的MPEG 组织认识到H.26L 潜在的优势,随后ISO 与ITU 开始组建包括来自ISO/IEC MPEG与ITU-T VCEG 的联合视频组(JVT),JVT 的主要任务就是将H.26L 草案发展为一个国际性标准。于是,在ISO/IEC中该标准命名为AVC(Advanced Video Coding),作为MPEG-4 标准的第10 个选项;在ITU-T 中正式命名为H.264标准。该标准在2003 年3 月正式获得批准。

 

H.264 视频编码标准特性

 

H.264 的主要优点包括:

 

1. 在相同的重建图像质量下,H.264 比H.263+和MPEG-4(SP)减小50%码率。

 

2. 对信道时延的适应性较强,既可工作于低时延模式以满足实时业务,如会议电视等;又可工作于无时延限制的场合,如视频存储等。

 

3. 提高网络适应性,采用“网络友好”的结构和语法,加强对误码和丢包的处理,提高解码器的差错恢复能力。

 

4. 在编/解码器中采用复杂度可分级设计,在图像质量和编码处理之间可分级,以适应不同复杂度的应用。

 

相对于先期的视频压缩标准,H.264引入了很多先进的技术,包括4×4 整数变换、空域内的帧内预测、1/4 象素精度的运动估计、多参考帧与多种大小块的帧间预测技术等。新技术带来了较高的压缩比,同时大大提高了算法的复杂度。

 

4×4 整数变换

 

以前的标准,如H.263 或MPEG-4,都是采用8x8 的DCT 变换。H.26L 中建议的整数变换实际上接近于4×4的DCT 变换,整数的引入降低了算法的复杂度,也避免了反变换的失配问题,4×4 的块可以减小块效应。而H.264的4×4 整数变换进一步降低了算法的复杂度,相比H.26L 中建议的整数变换,对于9b 输入残差数据,由以前的32b 降为现在的16b 运算,而且整个变换无乘法,只需加法和一些移位运算。新的变换对编码的性能几乎没有影响,而且实际编码略好一些。

 

基于空域的帧内预测技术

 

视频编码是通过去除图像的空间与时间相关性来达到压缩的目的。空间相关性通过有效的变换来去除,如DCT变换、H.264 的整数变换;时间相关性则通过帧间预测来去除。这里所说的变换去除空间相关性,仅仅局限在所变换的块内,如8×8 或者4×4,并没有块与块之间的处理。H.263+与MPEG-4 引入了帧内预测技术,在变换域中根据相临块对当前块的某些系数做预测。H.264则是在空域中,利用当前块的相临象素直接对每个系数做预测,更有效地去除相临块之间的相关性,极大地提高了帧内编码的效率。

 

H.264 基本部分的帧内预测包括9 种4×4 亮度块的预测、4 种16×16 亮度块的预测和4 种色度块的预测。

 

运动估计

 

H.264 的运动估计具有3 个新的特点:1/4 象素精度的运动估计;7 种大小不同的块进行匹配;前向与后向多参考帧。

 

H.264 在帧间编码中,一个宏块(16×16)可以被分为16×8、8×16、8×8 的块,而8×8 的块被称为子宏块,又可以分为8×4、4×8、4×4 的块。总体而言,共有7 种大小不同的块做运动估计,以找出最匹配的类型。与以往标准的P 帧、B 帧不同,H.264 采用了前向与后向多个参考帧的预测。半象素精度的运动估计比整象素运动估计有效地提高了压缩比,而1/4 象素精度的运动估计可带来更好的压缩效果。

 

编码器中运用多种大小不同的块进行运动估计,可节省15%以上的比特率(相对于16×16 的块)。运用1/4 象素精度的运动估计,可以节省20%的码率(相对于整象素预测)。多参考帧预测方面,假设为5个参考帧预测,相对于一个参考帧,可降低5%~10%的码率。以上百分比都是统计数据,不同视频因其细节特征与运动情况而有所差异。

 

去块效应滤波器

 

H.264 标准引入了去块效应滤波器,对块的边界进行滤波,滤波强度与块的编码模式、运动矢量及块的系数有关。去块效应滤波器在提高压缩效率的同时,改善了图像的主观效果。

5 运营商封ip,封udp

5.1 封ip的处理

1)客户端设置多网守,如果都取不到,尝试下载新的网守配置

2)网守经常改变ip,并修改网守配置文件

 

5.2 封udp的处理

1)进入协议栈 ip层代码

2)对所有经过socket的数据包,加一个key字串做异或

3)客户端服务端均如此处理

 

6 udp穿透

1. 
Ca
位于 NATa,并注册到server1
Cb
位于 NATb,并注册到server1
2.


Ca 通过udp 连接 Server1 ,请求链接到B server1得到Ca NATa 信息

3.

穿透服务器Server1 Ca NATa Cb

4.

Cb 通过udp 连接 Server1 【得到Cb NATa 信息
5.

Server1 Ca udp NATa Cb
Server1
Cb udp NATb Ca
 

6.CaCb都尽量多得到对方信息,如果是p2p的话,每个客户端都尽量得到列表中其他客户端的信息

7.ca 直接向 cbNatBudp

 Cb  直接向 ca NatAudp

8.如果不用这个方式则需要做服务器转发,语音视频流对server1造成巨大压力

 

 

 

 

 

 

 

 

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: