图1所示为终端之间进行通信协商的示意图,以第一终端与第二终端之间的语音通信为例,高速移动的第一终端在需要与第二终端进行数据通信时,根据第一终端所支持的语音编码速率,与第二终端协商一个编码速率,再基于协商的编码速率建立语音通信。
例如,终端中的自适应可变速率多模式宽带语音编
解码器(Adaptive Multi-Rate-Wideband speech codec,AMR-WB)有9种速率:6.6kbps,8.85kbps,12.65kbps,14.25kbps,15.85kbps,18.25kbps,19.85kbps,23.05kbps,23.85kbps,终端进行协商时通常采用23.85kbps的编码速率。终端的编码 速率越高,所产生的语音数据量越大,由此在相同的通信网络中,编码速率越高的终端的通信质量越好。
但在高速移动中的终端所处的通信网络的信号覆盖能力通常较差,造成过高的编码速率所产生的大数据量无法及时传输到第二终端,使得第二终端所接收到的数据出现异常,如部分数据丢失或部分数据误传等,造成语音通信中的卡顿或杂音,影响通信质量。
图2所示为本申请实施例中以高
铁上终端的数据通信为例,所提供的一种编码速率的调整方法的实现流程图,本实施例应用在图1所示的第一终端或第二终端上,用以解决在高速移动的终端的数据通信质量较差的技术问题,图2中,终端在准备进行数据通信时,执行以下步骤:
S201:判断是否处于高速移动的状态,如果终端处于高速移动的状态,执行S202,如果终端没有处于高速移动的状态,执行S203。
以处于高速运行的高铁中的终端进行数据通信为例,终端可以利用多种方式判断是否处于高速移动的状态,以判断出终端是否处于乘坐高铁的状态:
例如:终端利用终端所在的通信网络系统所反馈的系统消息中的字段highspeedflag的内容来判断所述终端是否处于高速移动的状态,字段highspeedflag用以指示终端的移动状态,例如在字段highspeedflag为ture时,表明终端处于高速移动的状态,即处于高铁专网的乘车状态。
判断出终端是否处于乘坐高铁的状态的方式还可以为:终端利用内部的感测器中枢(sensor hub)所采集到的信息来判断终端是否处于高速移动的状态。例如,终端首先利用sensor hub来采集各种
传感器如
加速度传感器、
陀螺仪及气压计等所采集到的传感参数,如加速度、倾斜度及气压等,在整合这些传感参数之后,通过例如分类器、
决策树等通用
算法结合具体实现来获得终端的状态,例如,静止、走路、跑步、
骑车、乘车等,从而可以确定是否处于高速移动状态,即处于高铁专网的乘车状态。
其中,只有在S201中,判断出终端当前处于高速移动的状态后,才需要进一步执行S202,判断终端的移动速率是否超过速率阈值,而如果终端没有在高速移动的状态,则无需进行具体的移动速率的判断。
S202:判断移动速率是否超过预设的速率阈值,如果移动速率超过速率阈值,执行S204,如果移动速率没有超过速率阈值,执行S203。
本实施例中,终端可以利用GPS及Sensor hub来获得终端的移动速率,之后终端再根据所获得的移动速率,判定终端的移动速率是否超过速率阈值。
或者,终端可以在它自己的
调制解调器MODEM处于链接状态下利用相应的算法计算获得终端的移动速率,之后,终端再判断移动速率是否超过速率阈值。
其中的MODEM处于链接状态是指终端处于数据传输状态,如通话状态或短消息传输状态等,区别于MODEM处于非链接状态,MODEM处于非链接状态是指终端处于待机状态。
这里的速率阈值例如可以为每小时200公里。
S203:基于当前的第一编码速率进行数据通信。
S204:调整终端当前的第一编码速率为预设的第二编码速率,执行S205。
S205:基于调整后的第二编码速率进行数据通信。
这里的第二编码速率小于第一编码速率,可以根据历史数据或经验数据确定,且第二编码速率与第一编码速率均为终端的编码解码器所能支持的编码速率。
例如,以终端中的编码解码器为AMR-WB为例,第一编码速率为23.05kbps,本实施例中,终端在判断出处于高速移动的状态,且车速超过200km/h时,此时降低终端的编码速率到12.65kbps或者14.25kbps等。
也就是说,本实施例中,终端在进行数据通信之前,如果在发现终端处于高速移动的乘车状态时,可以降低终端的编码速率,使得终端基于调整后的编码速率进行数据通信,这样,由于较低的编码速率不至于产生较大量的数据量,进而即使在网络信号覆盖能力较差的通信网络中,终端仍然能够及时将数据传输到对方,避免出现数据丢失或传错等异常情况,例如,避免造成如语音通信中的卡顿和杂音等,由此来提高数据通信的通信质量,实现本实施例目的。
图3所示,为本实施例中另一种编码速率的调整方法的实现流程图,在终端判断出移动速率超过速率阈值时,还可以通过判断终端在通信中的
角色的不同,来调整相应的通信方式,实现改善通信质量的目的,图1中的终端通过执行图3中的以下步骤实现编码速率的调整:
S301:判断移动速率是否超过速率阈值,如果移动速率超过速率阈值,执行S302,如果移动速率没有超过速率阈值,执行S303。
本实施例中,终端判断移动速率是否超过速率阈值的实现可以参考图2中相关步骤内容,此处不再详述。
S302:判断是否为数据通信的发起方,如果终端是发起方,执行S304,如果终端不是发起方,执行S305。
在数据通信中,有以下通信特性:终端如果是主叫方,可以选择合适的通信制式进行数据通信,而终端如果是被叫方,则终端的通信制式会在终端接收到数据通信
请求时根据其当前所处的通信网络确定,且无法进行更改或切换。因此,本实施例中,终端首先判断该终端是数据通信的发起方还是接收方。
以语音通信为例,终端判断自己是语音通信中的主叫方还是被叫方。
S303:基于当前的第一编码速率进行数据通信。
S304:判断终端所在通信网络的网络信号值是否小于预设的信号阈值,如果网络信号值小于信号阈值,执行S306,如果网络信号值不小于信号阈值,执行S305。
这里的网络信号值是指能够表征通信网络的网络通信能力的参数值,如通信网络中的数据传输速率值或通信网络中的信号强度值,等等。例如,在网络信号值低于预设的信号阈值时,表明此时通信网络的数据传输速率较低。
S305:调整终端当前的第一编码速率为预设的第二编码速率,执行S307。
S306:切换终端的通信制式,执行S308。
本实施例中可以通过双模单待无线语音呼叫连续性(Single Radio Voice Call Continuity,SRVCC)的方式进行通信制式的切换。
S307:基于调整后的第二编码速率进行数据通信。
S308:以切换后的通信制式,使用第一编码速率进行数据通信。
基于前文中的通信特性,以终端初始所处的通信网络为4G网络为例,本实施例中,终端在判断出它的移动速率超过速率阈值时,可以通过判断终端在通信中所扮演的角色是主叫方还是被叫方,来调整通信方式,从而改善通信质量。
例如,终端在它当前所处的4G网络的网络信号值低于信号阈值时,也就是数据传输速率相对较低的时候,可以选择将终端的通信制式切换到2G或3G模式后再进行数据通信,以改善数据通信的通信质量;
或者,结合本实施例前文中实现,终端还可以在它当前所处的4G网络的网络信号值不低于信号阈值时,也就是数据传输速率相对较高的时候(这里的相对较高,是指相对网络信号值低于信号阈值的情况),只需降低终端的编码速率即可,仍然可以使用当前的通信制式,进而改善通信质量。
本实施例中,终端在所处的通信网络的网络通信能相对较好时,可以不直接进行通信制式的切换,而是在一定程度上降低编码速率,减少需要进行传输的数据量,在终端处于高速移动的状态进行数据通信时,能够及时的进行数据传输,达到改善通信质量的目的。
由此,相对于现有技术中通过切换通信制式达到改善通信质量的目的的实现方案,本实施例中,通过降低编码速率的方式达到改善通信质量的目的,丰富改善通信质量的解决方案,满足用户对通信质量的需求。
图2或图3中,终端在它的移动速率超过速率阈值时,调整进行数据通信时所使用的编码速率到一个预设的较低的第二编码速率,达到改善通信质量的目的。
而在实际实现中,这个第二编码速率可能存在不准确的情况,如编码速率仍然比较高或者编码速率调整过低等,因此,需要对第二编码速率进行校正。
为实现对第二编码速率的校正,图4所示为本申请实施例提供的另一种编码速率的调整方法的流程图,本方法适用于图1所示的任一终端,终 端通过执行图4所示步骤,实现对第二编码速率的校正,图4中可以包括有以下步骤:
S401:在终端使用第二编码速率进行数据通信并且结束之后,获得使用第二编码速率进行数据通信的误码率。
S402:判断误码率是否大于预设的第一误码阈值,如果误码率大于第一误码阈值,执行S403,如果误码率不大于第一误码阈值,执行S404。
S403:判断第二编码速率是否为终端所支持的最小的编码速率,如果第二编码速率为终端所支持的最小的编码速率,执行S405,如果第二编码速率不是终端所支持的最小的编码速率,执行S406。
S404:判断误码率是否小于预设的第二误码阈值,第二误码阈值小于第一误码阈值,如果误码率小于第二误码阈值,执行S407,如果误码率不小于第二误码阈值,执行S405。
本文中所提到的误码率也可以理解为误码比例,即出现错误或丢失的码的数量与码的总数量之间的比例。
S405:保持第二编码速率不变,作为终端下一次进行数据通信的编码速率,执行S409。
S406:降低第二编码速率,得到终端下一次进行数据通信的编码速率,执行S409。
这里的降低第二编码速率,可以为降低到终端所支持的编码速率中低于当前的第二编码速率至少一个速率档的速率,这里的速率档可以理解为终端所支持的编码速率等级,每个编码速率等级作为一个速率档。
以终端的编码解码器AMR-WB为例,终端支持以下编码速率:6.6kbps,8.85kbps,12.65kbps,14.25kbps,15.85kbps,18.25kbps,19.85kbps,23.05kbps,23.85kbps。
在一种实现中,终端降低第二编码速率可以为降低编码速率到当前编码速率的低一个速率档的编码速率:
如终端当前的第二编码速率为12.65kbps,若误码率大于第一误码阈值,则终端降低第二编码速率为8.85kbps;或者,终端当前的第二编码速率为19.85kbps,若误码率大于第一误码阈值,则终端降低第二编码速率为 18.25kbps。
在另一种实现中,终端降低第二编码速率可以为降低编码速率为当前编码速率的低两个速率档的编码速率:
如终端当前的第二编码速率为23.05kbps,若误码率大于第一误码阈值,则终端降低第二编码速率为18.25kbps;或者,终端当前的第二编码速率为6.6kbps,此时编码速率为终端所支持的最小的编码速率,即使误码率仍然大于第一误码阈值,终端也不再对第二编码速率进行降低处理。
S407:判断第二编码速率是否为终端所支持的最大的编码速率,如果第二编码速率为终端所支持的最大的编码速率,执行S405,如果第二编码速率不是终端所支持的最大的编码速率,执行S408。
需要说明的是,在实际应用中,如果本次终端的移动速率超过速率阈值,且上一次数据通信中终端的移动速率也超过速率阈值,那么上一次数据通信中终端的编码速率通常是被降低到一定程度的编码速率,通常不会是终端所支持的最大编码速率,因此,本实施例在实际应用中,可以省略S407,而是在S404判断出误码率小于第二误码阈值时,执行S408。
S408:升高第二编码速率,得到终端下一次进行数据通信的编码速率,执行S409。
这里的升高第二编码速率,可以为升高到终端所支持的编码速率中高于当前的第二编码速率至少一个速率档的速率。
在一种实现中,终端升高第二编码速率可以为升高编码速率到当前编码速率的高一个速率档的编码速率:
如终端当前的第二编码速率为12.65kbps,若误码率小于第二误码阈值,则终端升高第二编码速率为14.25kbps;或者,终端当前的第二编码速率为19.85kbps,若误码率小于第二误码阈值,则升高第二编码速率为23.05kbps。
在另一种实现中,终端升高第二编码速率可以为升高编码速率为当前编码速率的高两个速率档的编码速率:
如终端当前的第二编码速率为23.05kbps,在误码率小于第二误码阈值时,而23.05kbps的高一档的编码速率已经是终端所支持的最大编码速率 了,则终端直接升高第二编码速率为终端所支持的最高编码速率,即23.85kbps;或者,终端当前的第二编码速率为23.85kbps,此时编码速率为终端所支持的最大的编码速率,则不再对第二编码速率进行升高处理。
S409:判断移动速率是否超过速率阈值,如果终端的移动速率超过速率阈值,执行S410,如果终端的移动速率没有超过速率阈值,执行S411。
这里终端判断移动速率是否超过速率阈值,是在终端即将进行数据通信时所执行的步骤,也就是说,终端在每次进行数据通信之前的都会对其当前移动速率是否超过速率阈值进行判断。
S410:使用经过处理后的第二编码速率作为本次进行数据通信的编码速率进行数据通信,如S405、S406或S408处理后的编码速率。
S411:使用第一编码速率进行数据通信。
第一误码阈值及第二误码阈值可以根据通信质量需求进行设置。例如,第一误码阈值可以设置为5%,第二误码阈值可以设置为1%,误码率大于5%时,表征终端的编码速率偏低,误码率小于1%时,表征终端的编码速率偏高,由此相应调整编码速率。
需要说明的是,图4所示流程为调整终端的编码速率为第二编码速率后,进行了数据通信,基于此次数据通信对终端编码速率进行校正,并将校正后的第二编码速率用做下一次数据通信的实现流程,这种方案适用于终端每次进行数据通信之前对编码速率进行校正的场景中。
也就是说,终端在每次进行数据通信之前的都会对其当前移动速率是否超过速率阈值进行判断,在终端判断出其当前移动速率超过速率阈值时,会使用第二编码速率进行数据通信,这里的第二编码速率是经过校正处理的第二编码速率,而这里的校正方案取决于终端最近一次在移动速率超过速率阈值的数据通信的误码率。
例如,将终端使用第二编码速率进行数据通信作为终端的第1次数据通信,在第1次数据通信结束之后,使用图4所示的方案,对最近一次在移动速率超过速率阈值的数据通信所使用的第二编码速率根据误码率进行校正,具体为,终端获得在第1次数据通信中的误码率,如果误码率大于第一误码阈值,终端降低第1次数据通信使用的编码速率一个速率档,得 到所述第2次数据通信的编码速率,而如果误码率小于低于第一误码阈值的第二误码阈值,终端则升高第1次数据通信使用的编码速率,得到第2次数据通信的编码速率。
而在需要进行第2次的数据通信之前,终端首先判断它自己的移动速率是否超过速率阈值,如果终端的移动速率超过速率阈值,终端则直接用前文中所得到的第2次数据通信的编码速率进行第2次数据通信,如果终端的移动速率没有超过速率阈值,终端则还是继续使用最原始的第一编码速率进行第2次数据通信,若终端再次出现移动速率超过速率阈值的情况,则可以结合图2或图3所示的方案再次实现对终端进行数据通信所使用的编码速率的调整,调整时的编码速率使用上述第2次数据通信的编码速率;在第2次数据通信结束之后,使用图4所示的方案,对最近一次在移动速率超过速率阈值的数据通信所使用的第二编码速率根据误码率进行矫正,具体为终端获得它在第2次数据通信中的误码率,如果误码率大于第一误码阈值,终端降低第2次数据通信使用的编码速率一个速率档,得到所述第3次数据通信的编码速率,而如果误码率小于第二误码阈值,终端则升高第2次数据通信使用的编码速率,得到第3次数据通信的编码速率。
以此类推,在每次数据通信结束之后,终端根据数据通信的误码率来校准编码速率,并用作下一次移动速率超过速率阈值时的数据通信所使用的编码速率,由此,调整终端在移动速率超过阈值的移动中进行数据通信时的最合适的编码速率,使得误码率保持在第一误码阈值及第二误码阈值之间,进而改善终端在移动速率超过阈值的移动中进行数据通信时的通信质量。
图5为图1中终端的结构示意图,图5中的终端可以包括以下结构:
总线501,用以连接终端中的各个部件。
通信
接口502及天线503,天线503通过
通信接口502连接在总线501上。
存储器504,连接在总线501上,用于存储应用程序及应用程序运行所产生的数据。
处理器505,用于执行应用程序,以实现功能:判断终端的移动速率 是否超过预设的速率阈值,如果终端的移动速率超过速率阈值,调整终端第一编码速率为第二编码速率,第二编码速率根据所述终端上一次数据通信中使用的编码速率确定,天线503使用第二编码速率进行数据通信。
图5所示为终端的一种实现结构,终端中各个结构的实现功能可以参考前文中实现,此处不再详述。
本
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。