手机VoIP系统中动态比特率的实现方法、装置及系统的制作方法

文档序号:7554406阅读:137来源:国知局
专利名称:手机VoIP系统中动态比特率的实现方法、装置及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种手机VoIP系统中动态比特率的实现方法、装置及系统。
背景技术
VBR (Variable Bit Rate,动态比特率),就是编码时输出的比特率是非固定的,它最早出现于音频编码软件在编码时根据音频数据的复杂程度即时确定使用何种比特率。采用动态比特率的音频编码软件在编码时会对音频数据进行检测,如在低音段,音频数据的复杂程度较低,用较低的比特进行编码,在高音段,音频数据的复杂程度较高,用较高的比特率进行编码。与传统的静态比特率相比,动态比特率既能保证语音的质量,又能控制输出文件的大小。在移动通讯系统中,考虑到各种接入网络的网络带宽差别较大,如常见的WIFI(Wireless Fidelity,无线保真)网络其带宽通常达IMbps或更高,而普通的GPRS网络带宽则只有几十kbps ;因此,有必要在手机VoIP (Voice OverInternet Protocol,因特网上传输语音的协议)系统中引入动态比特率,以根据所处网络的网络状况即时确定使用何种编码比特率。

发明内容
本发明的主要目的在于公开一种手机VoIP系统中动态比特率的实现方法、装置及系统,以在手机VoIP系统中引入动态比特率。为达上述目的,本发明实施例公开一种手机VoIP系统中动态比特率的实现方法,应用于服务器侧,包括:以会话为单位,确定该会话当前的网络通道能力;判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整。在客户端,手机VoIP系统中动态比特率的实现方法包括:接收服务器下发的携带编码比特率或编码等级的消息;根据该消息动态调整自身的编码比特率。本发明还公开一种服务器,用于处理手机VoIP业务,包括:网络通道能力确定模块,用于以会话为单位,确定该会话当前的网络通道能力;以及编码控制模块,用于根据所述网络通道能力确定模块的结果判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整。本发明还公开一种客户端,包括:
接收模块,用于接收服务器下发的携带编码比特率或编码等级的消息;动态码率执行模块,用于根据上述接收模块所接收的该消息动态调整自身的编码比特率。本发明还公开一种手机VoIP系统,包括:服务器,用于以会话为单位,确定该会话当前的网络通道能力;判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整;以及客户端,用于接收服务器下发的携带编码比特率或编码等级的消息,根据该消息动态调整自身的编码比特率。本发明实施例在手机VoIP系统中引入动态比特率,不是根据音频数据的复杂程度,而是根据所处网络的网络状况即时确定使用何种编码比特率。使得:网络通道能力较高时,系统使用较高的比特率进行编码,提供高质量的语音通话;网络通道能力较低时,系统使用较低的比特率进行编码,降低语音的质量,确保通话的低时延和流畅性。


图1是本发明实施例公开的手机VoIP系统框架图;图2是图1中动态比特率的实现方法流程图;图3是本发明实施例公开的服务器的框架图;图4是本发明实施例公开的客户端的框架图。
具体实施例方式下面结合说明书附图对本发明的具体实现方式做一详细描述。实施例一本实施例公开一种手机VoIP系统中动态比特率的实现方法。如图1所示,该手机VoIP系统包括客户端I及服务器2。服务器,用于以会话为单位,确定该会话当前的网络通道能力;判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整;以及客户端,用于接收服务器下发的携带编码比特率或编码等级的消息,根据该消息动态调整自身的编码比特率。该动态比特率的实现方法,如图2所示,包括以下步骤SI 步骤S4。步骤S1、服务器以会话为单位,确定该会话当前的网络通道能力。本实施例中,网络通道的能力主要的考核指标是指网络延时。在其他实施例中,其考核指标也可以单独或综合考虑网络类型、信号强弱等因素中的一种或任意组合。该步骤由服务器确定网络通道能力。这主要有以下几点原因:1、简化客户端的处理,2、便于以后对网络通道能力算法进行优化,因为升级服务器比升级客户端更方便,3、客户端只能检测自身的网络延时,而对界定整个会话的网络通道能力需要综合考虑参与该会话的所有客户端的网络情况。上述步骤SI中,确定该会话当前的网络通道能力包括但不限于下述步骤Sll 步骤 S12。步骤S11、测量该会话中服务器与客户端之间的单段通道的网络延时,进而得出该会话单段的网络通道能力;或者从接收的客户端所发送的携带有该客户端通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来所确定的网络通道能力的信息中获取该会话单段的网络通道能力;以及步骤S12、综合其与参与该会话的所有客户端之间的网络通道能力确定该会话当前的网络通道能力。步骤S2、服务器判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整。在该步骤中,如果服务器预先存储有网络通道能力与编码比特率的映射表,可优选直接通过查表将调整的编码比特率下发给客户端供其执行下述步骤S3及步骤S4。反之,如果网络通道能力与编码比特率的映射表存储在客户端,则服务器则可直接将编码等级下发给客户端,由于编码等级和网络等级通常都是一一对应的,所以下发编码等级也等同于下发整个会话的网络通道能力等级。为便于公众广泛理解本实施例的技术方案,关于上述步骤SI和步骤S2,举例详述如下:服务器计算客户端10秒内的平均延时,根据延时情况将网络划分为四个等级,平均网络延时小于180ms(millisecond,毫秒)为第一级,平均网络延时大于180ms小于300ms为第二级,平均网络延时大于300ms小于400ms为第三级,平均网络延时大于400ms为第四级。对网络分级需要考虑所有通话参与者的网络情况,因为参与通话的各成员网络状况可能不同,例如3G网络用户A与2G网络用户B通话,服务器收到A和B客户端发来的心跳检测消息,假设A和B平均网络延时分别为120ms和350ms,则A的网络等级为第一级,而B的网络等级为第三级。A与B的网络等级不同,采用的编码速率也不同,A网络状况较好,采用较高的比特率进行编码,可能会超出B网络的负荷。因此客户端编码时不仅要考虑自身网络的带宽情况,还要考虑接收方网络的接收能力,如上例中的情况,服务器应该将A和B网络等级都判为第三级,则A采用的编码速率不会超出B网络的负荷。在多方通话中,服务器应该比较参与通话的所有客户端的网络状况,将网络状况最差的网络等级判定为所有客户端的网络等级,这样所有客户端将采用网络最差的客户端能够承受的比特率进行编码。服务器对客户端网络判定等级后,通过心跳检测响应发送给客户端。步骤S3、客户端接收服务器下发的携带编码比特率或编码等级的消息。步骤S4、客户端根据步骤S3所收到的消息动态调整自身的编码比特率。具体操作时,如果网络通道能力发生变化,可以在下一帧编码时先将原来的编码器关掉,再以新的编码比特率创建编码器进行编码。该步骤S4中,有两种方法可以改变编码器的编码比特率:改变采样频率或对语音进行不同程度的压缩。也可以采用二者结合的方法调整编码速率,编码速率范围为8 30kbps (Bits Per Second,每秒字节数)。若服务器将网络划分为四个等级,不同的等级采用不同的编码速率,因而编码速率可以对应地选择四个典型值:30kbps、24kbps、16kbps和8kbps,分别作为四种网络等级所使用的编码速率。例如当检测到网络状态很好,则采用30kbps的编码速率,提供最优的语音质量,而如果网络状态很差,则采用8kbps的编码速率,降低语音质量,减小网络负荷,保证通话的低时延和流畅。需要补充说明的是:在服务器配置文件中可以配置客户端采用的编码速率的初始值,由于通话接通之前网络状况未知,对编码速率进行折中选择,采用16kbps。在通话接通后的最初5秒,服务器收到的心跳检测次数小于5次,暂不计算平均网络延时,直接将网络判定为第一级,但同时需指示客户暂不切换编码速率。前面提到的3个临界值180ms、300ms、400ms,是在各种网络情况下经过反复测试得出的经验值。例如在平均延时为150ms的网络下,采用30kbps编码速率进行编码的语音主观感受优于采用其它编码速率,在平均延时200ms的网络下,米用24kbps编码速率进行编码的语首主观感受:最优,而在平均网络延时介于150ms和200ms之间的网络,采用30kbps和24kbps编码速率进行编码主观感受差不多,则将临界值设为180ms较为合理。如果后续进一步的测试发现临界值设置得并不准确,比如平均延时350ms时测得采用8kbps编码速率进行编码的语音主观感受最优,则可以通过配置文件重新配置临界值进行调整。需要补充说明的是,客户端还可以主动测量其与服务器之间的网络延时,或者通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来确定其与服务器之间单段的网络通道能力;然后将所述单段的网络通道能力信息传送给服务器供其执行上述步骤SI I。综上,本实施例在手机VoIP系统中引入动态比特率,不是根据音频数据的复杂程度,而是根据所处网络的网络状况即时确定使用何种编码比特率。从而使得:网络通道能力较高时,系统使用较高的比特率进行编码,提供高质量的语音通话;网络通道能力较低时,系统使用较低的比特率进行编码,降低语音的质量,确保通话的低时延和流畅性。实施例二与上述实施例一对应的,本实施例还提供一种手机VoIP系统中动态比特率的装置。该装置包括服务器和客户端。该服务器的框图如图3所示,包括网络通道能力确定模块21和编码控制模块22。其中:网络通道能力确定模块,用于以会话为单位,确定该会话当前的网络通道能力。编码控制模块,用于根据所述网络通道能力确定模块的结果判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整。可选的,如图3所示,上述网络通道能力确定模块包括下述的单段网络通道能力获取单元211和综合界定单元212。各单元的功能分述如下:单段网络通道能力获取单元,用于测量该会话中服务器与客户端之间的单段通道的网络延时,进而得出该会话单段的网络通道能力;或者从接收的客户端所发送的携带有该客户端通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来所确定的网络通道能力的信息中获取该会话单段的网络通道能力。综合界定单元,用于通过单段网络通道能力获取单元综合其与参与该会话的所有客户端之间的网络通道能力确定该会话当前的网络通道能力。
如图4所示,与服务器相配合的客户端包括:接收模块11,用于接收服务器下发的携带编码比特率或编码等级的消息;动态码率执行模块12,用于根据上述接收模块所接收的该消息动态调整自身的编码比特率。可选的,上述客户端还包括:检测模块(图中未示出),用于测量其与服务器之间的网络延时,或者通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来确定其与服务器之间单段的网络通道能力;以及发送模块(图中未示出),用于将所述检测模块确定的单段的网络通道能力信息传送给服务器。综上,本发明实施例公开的手机VoIP系统中动态比特率的实现方法、装置及系统,通过在手机VoIP系统中引入动态比特率,不是根据音频数据的复杂程度,而是根据所处网络的网络状况即时确定使用何种编码比特率。使得:网络通道能力较高时,系统使用较高的比特率进行编码,提供高质量的语音通话;网络通道能力较低时,系统使用较低的比特率进行编码,降低语音的质量,确保通话的低时延和流畅性。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种手机VoIP系统中动态比特率的实现方法,应用于服务器侧,其特征在于,包括: 以会话为单位,确定该会话当前的网络通道能力; 判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调難iF.0
2.根据权利要求1所述的手机VoIP系统中动态比特率的实现方法,其特征在于,所述确定该会话当前的网络通道能力包括: 测量该会话中服务器与客户端之间的单段通道的网络延时,进而得出该会话单段的网络通道能力;或者从接收的客户端所发送的携带有该客户端通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来所确定的网络通道能力的信息中获取该会话单段的网络通道能力;以及 综合其与参与该会话的所有客户 端之间的网络通道能力确定该会话当前的网络通道能力。
3.—种手机VoIP系统中动态比特率的实现方法,应用于客户端,其特征在于,包括: 接收服务器下发的携带编码比特率或编码等级的消息; 根据该消息动态调整自身的编码比特率。
4.根据权利要求3所述的手机VoIP系统中动态比特率的实现方法,其特征在于,还包括: 测量其与服务器之间的网络延时,或者通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来确定其与服务器之间单段的网络通道能力;将所述单段的网络通道能力信息传送给服务器。
5.一种服务器,用于处理手机VoIP业务,其特征在于,包括: 网络通道能力确定模块,用于以会话为单位,确定该会话当前的网络通道能力;以及编码控制模块,用于根据所述网络通道能力确定模块的结果判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整。
6.根据权利要求5所述的服务器,其特征在于,所述网络通道能力确定模块包括: 单段网络通道能力获取单元,用于测量该会话中服务器与客户端之间的单段通道的网络延时,进而得出该会话单段的网络通道能力;或者从接收的客户端所发送的携带有该客户端通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来所确定的网络通道能力的信息中获取该会话单段的网络通道能力;以及 综合界定单元,用于通过单段网络通道能力获取单元综合其与参与该会话的所有客户端之间的网络通道能力确定该会话当前的网络通道能力。
7.一种客户端,其特征在于,包括: 接收模块,用于接收服务器下发的携带编码比特率或编码等级的消息; 动态码率执行模块,用于根据上述接收模块所接收的该消息动态调整自身的编码比特率。
8.根据权利要求7所述的客户端,其特征在于,所述客户端还包括: 检测模块,用于测量其与服务器之间的网络延时,或者通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来确定其与服务器之间单段的网络通道能力; 发送模块,用于将所述检测模块确定的单段的网络通道能力信息传送给服务器。
9.一种手机VoIP系统,其特征在于,包括: 服务器,用于以会话为单位,确定该会话当前的网络通道能力;判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整;以及 客户端,用于接收服务器下发的携带编码比特率或编码等级的消息,根据该消息动态调整自身的编码比特率。
10.根据权利要求9所述的手机VoIP系统,其特征在于, 所述客户端,还用于测量其与服务器之间的网络延时,或者通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来确定其与服务器之间单段的网络通道能力;并将所述单段的网络通道能力信息传送给服务器; 所述服务器,还用于测量该会话中服务器与客户端之间的单段通道的网络延时,进而得出该会话单段的网络通道能力;或者从接收的客户端所发送的携带有该客户端通过计算发送完一定长度的数据包所需要的时间和/或查看接收缓存队列中数据包的个数来所确定的网络通道能力的信息中获取该会话单段的网络通道能力;然后综合其与参与该会话的所有客户端之间的网络通道能力确定该会话当前的网络通道能力。
全文摘要
本发明公开一种手机VoIP系统中动态比特率的实现方法、装置及系统,以在手机VoIP系统中引入动态比特率。该手机VoIP系统包括服务器,用于以会话为单位,确定该会话当前的网络通道能力;判断该会话中的网络通道能力是否发生变换,如果是,相应调整编码比特率或编码等级,并实时将变换后的编码比特率或编码等级下发给该会话中的所有客户端供其做相应调整;所述客户端用于接收服务器下发的携带编码比特率或编码等级的消息,根据该消息动态调整自身的编码比特率。
文档编号H04M7/00GK103152497SQ20131010820
公开日2013年6月12日 申请日期2013年3月29日 优先权日2013年3月29日
发明者蒋鸿伟, 黄国宏, 潘年华, 李晓鹏, 周平 申请人:贵阳朗玛信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1