发明内容
基于此,有必要针对传统的基站与终端之间,Volte语音数据传输过程中容易丢包,导致Volte通话质量差的问题,提供一种Volte保障传输的方法、装置及系统。
为了实现上述目的,本发明实施例提供了一种Volte保障传输的方法,包括以下步骤:
接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到;
在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;
在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
在其中一个实施例中,接收发送设备传输的各封装数据包和各封装冗余包的步骤之前,包括步骤:
获取发送设备传输的上行数据包;
检测上行数据包的QCI值,并将QCI值为1的上行数据包确认为封装数据包或封装冗余包。
在其中一个实施例中,接收发送设备传输的各封装数据包和各封装冗余包的步骤之后,包括步骤:
检测各封装数据包的SN值,并缓存SN值满足同一报文组条件的各封装数据包;
检测各封装冗余包的SN值,并缓存SN值满足同一报文组条件的各封装冗余包。
在其中一个实施例中,满足同一报文组条件的封装数据包为SN值与报文组容量的商相等的各封装数据包;
满足同一报文组条件的封装冗余包为SN值与报文组容量的商相等的各封装冗余包。
在其中一个实施例中,在封装数据包的丢包数量大于零且小于或等于冗余占比数量时,确认各封装数据包满足丢包解码条件;
在封装数据包的丢包数量等于零或大于冗余占比数量时,确认各封装数据包不满足丢包解码条件。
另一方面,本发明实施例还提供了一种Volte保障传输的方法,包括以下步骤:
接收Volte语音数据报文;
备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备;
直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
在其中一个实施例中,冗余包的数量为冗余占比数量;冗余占比数量为报文组容量减去预设数据包占比数量得到;
接收Volte语音数据报文的步骤之前包括:
获取PDCP层传输的下行数据包;
检测下行数据包的QCI值,并将QCI值为1的下行数据包确认为Volte语音数据报文。
在其中一个实施例中,检测下行数据包的QCI值的步骤之后包括:
将QCI值大于1的下行数据包传输给接收设备。
在其中一个实施例中,备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文的步骤之前包括:
依据SN递增规则,对获取到的Volte语音数据报文的SN进行赋值,得到SN值;
依据SN递增规则,对获取到的Volte语音数据报文的SN进行赋值,得到SN值的步骤中:
若上一赋值时刻得到的SN值等于SN取值范围的最大值,则将当前赋值时刻得到的SN值置零。
在其中一个实施例中,在Volte语音数据报文的SN值除于报文组容量得到的余数小于预设数据包占比数量时,确认Volte语音数据报文的SN值不满足编码触发条件;
在Volte语音数据报文的SN值除于报文组容量的得到余数等于预设数据包占比数量,确认Volte语音数据报文的SN值满足编码触发条件。
另一方面,本发明实施例还提供了一种Volte保障传输的装置,包括:
接收设备数据接收单元,用于接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到;
接收设备解码处理单元,用于在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;
接收设备非解码处理单元,用于在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
另一方面,本发明实施例还提供了一种Volte保障传输的装置,包括:
发送设备报文获取单元,用于接收Volte语音数据报文;
发送设备数据包处理单元,用于备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备;
发送设备编码处理单元,用于直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
另一方面,本发明实施例还提供了一种Volte保障传输的系统,包括发送设备以及连接发送设备的接收设备:
接收设备用于执行上述的Volte保障传输的方法的步骤:
接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到;
在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;
在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
发送设备用于执行上述的Volte保障传输的方法的步骤:
接收Volte语音数据报文;
备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备;
直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
在其中一个实施例中,发送设备为用户终端,接收设备为接入网设备;
或
发送设备为接入网设备,接收设备为用户终端。
另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述Volte保障传输的方法的步骤。
上述技术方案中的一个技术方案具有如下优点和有益效果:
接收设备可接收发送设备传输的各封装数据包和各封装冗余包,并可对各封装数据包是否满足丢包解码条件进行判断;接收设备可在封装数据包满足同一报文组条件,通过FEC解码恢复产生丢包的封装数据包;进而可得到恢复丢包后的封装数据包,并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。接收设备可在各封装数据包不满足丢包解码条件时,无需通过FEC解码过程,直接将并剩余的各个封装数据包依次拆除RLC头部,得到Volte语音数据报文。本申请实现在无线侧传输质量欠佳的网络中,提高报文无线网络传输保障,增强了Volte语音数据传输过程中的抗丢包性,进而提升了Volte通话质量。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的首选实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
传统的基于UM模式下的RLC(Radio Link Control,无线链路层控制协议)实体数据传输中,不具备保障机制,Volte数据在无线传输中一旦丢失,即在UM模式下的RLC实体端到端传输中无法挽回所丢报文。目前通常通过人为地优化无线传输参数、提升无线质量或改善调度等,用于缓解丢包事件的发生,但一旦发生丢包,仍然是不可挽回性的事件。
而本申请提供的一种Volte保障传输的方法,通过在接收设备与发送设备中,对Volte数据报文进行FEC编解码。通过FEC编码过程,将数据包与冗余包传输,提高报文无线网络传输保障;通过FEC解码过程,对丢失报文在一定程度上尝试恢复,提高Volte用户通话质量。通过在UM(Unacknowledged Mode,非确认)模式中引入一定程度保障机制,可缓解Volte在UM模式丢包的被动局面,同时能够节省了人为地增加传输带宽的成本,更加充分地利用既有无线网络传输带宽资源。
本申请提供的Volte保障传输的方法,可以应用于如图1所示的应用环境中。其中,接收设备102与发送设备104进行通信;其中,接收设备102包括接收RLC实体,发送设备104包括发送RLC实体;接收设备102可以是用户终端,发送设备104可以是接入网设备;或接收设备102可以是接入网设备,发送设备104可以是用户终端。接入网设备可以用独立的基站或者是多个基站组成的基站集群来实现;用户设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
在一个实施例中,如图2所示,提供了一种接收设备侧的Volte保障传输的方法,以该方法应用于图1中的接收设备102为例进行说明,包括以下步骤:
步骤S210,接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC(Forward ErrorCorrection,前向纠错)编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到。
其中,封装数据包指的是对Volte语音数据报文添加RLC头部后得到的数据包;封装冗余包指的是对冗余包添加RLC头部后得到的。
具体地,接收设备可接收发送设备传输的各封装数据包和各封装冗余包。
进一步的,接收设备可包含UM模式下的接收RLC实体。可通过UM模式下的接收RLC实体接收各封装数据包和各封装冗余包。
需要说明的是,发送设备可用来对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理,得到封装数据包。发送设备还可用来对SN值不满足编码触发条件的Volte语音数据报文进行备份处理,得到备份报文;并在接收到SN值满足编码触发条件的Volte语音数据报文时、对备份报文进行FEC编码处理,得到冗余包;进而可对冗余包进行添加RLC头部处理,得到封装冗余包。
步骤S220,在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
其中,FEC解码指的是通过在传输码列中解除冗余纠错码的解码方式。
具体地,接收设备在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包,实现对丢包数据的恢复。进而接收设备可对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文,提高了报文无线网络传输保障。
步骤S230,在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
具体地,接收设备在各封装数据包不满足丢包解码条件时,例如各封装数据包未产生丢包时,则无需进行FEC编码处理过程,可直接将对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。又如,各封装数据包产生丢包的个数超过了预设范围,则无需进行FEC编码处理过程,可直接将对剩余未产生丢包的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。进而在无线侧传输质量欠佳的网络中,折中Volte数据传输的可靠性与实时性,节省运营商传输成本,提高了带宽效率。
上述的Volte保障传输的方法中,通过FEC解码以及SN值传输标记,对存在丢包的Volte语音数据报文进行数据恢复,提高报文无线网络传输保障。实现在无线侧传输质量欠佳的网络中,提高报文无线网络传输保障,增强了Volte语音数据传输过程中的抗丢包性,进而提升了Volte通话质量。
在一个实施例中,如图3所示,提供了一种接收设备侧的Volte保障传输的方法,以该方法应用于图1中的接收设备102为例进行说明,包括以下步骤:
步骤S310,获取发送设备传输的上行数据包。
其中,上行数据包可以是语音数据包,也可以是非语音数据包。
步骤S320,检测上行数据包的QCI(QoS Class Identifier,标度值)值,并将QCI值为1的上行数据包确认为封装数据包或封装冗余包。
其中,QCI值可用于指定访问节点内定义的控制承载级分组转发方式,不同的QCI值,则对应的数据类型不同;QCI值为1的上行数据包即为封装数据包或封装冗余包。
步骤S330,接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN(Serial Number,系列号)值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到。
步骤S340,在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
步骤S350,在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
其中,上述步骤S330、步骤S340和步骤S350的具体内容过程可参考上文内容,此处不再赘述。
具体而言,接收设备可接受发送传输的上行数据包,接收设备可通过MAC层向UM模式下的第二RLC实体传输的上行数据包,并通过第二RLC实体将获取到下行数据包进行QCI值检测,判断QCI值为1的上行数据包(各封装数据包)的SN值是否满足丢包解码条件。接收设备在各封装数据包满足丢包解码条件时,通过FEC解码恢复产生丢包的封装数据包;进而可得到恢复丢包后的封装数据包的封装数据包,并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。接收设备可在各封装数据包不满足丢包解码条件时,无需通过FEC解码过程,直接将并剩余的各个封装数据包依次拆除RLC头部,得到各Volte语音数据报文。实现在无线侧传输质量欠佳的网络中,提高报文无线网络传输保障,增强了Volte语音数据传输过程中的抗丢包性,进而提升了Volte通话质量。
在一个具体的实施例中,接收设备中的接收RLC实体可将得到的各Volte语音数据报文传输给PDCP(Packet Data Convergence Protocol,分组数据汇聚协议)层。其中,PDCP层指的是接收设备的PDCP层。
在一个具体的实施例中,检测上行数据包的QCI值的步骤之后包括:
将QCI值大于1的上行数据包传输给PDCP层。
其中,QCI值大于1的上行数据包指的是非语音数据包。
具体地,接收RLC实体还可将QCI值大于1的下行数据包确认为非语音报文,并将该QCI值大于1的上行数据包直接传输给接收设备的PDCP层,实现在保障端与端之间的语音数据传输,同时不妨碍非语音数据的传输。
在一个实施例中,接收发送设备传输的各封装数据包和各封装冗余包的步骤之后,包括步骤:
检测各封装数据包的SN值,并缓存SN值满足同一报文组条件的各封装数据包;
检测各封装冗余包的SN值,并缓存SN值满足同一报文组条件的各封装冗余包。
具体地,接收设备可检测接收到的封装数据包的SN值,并对SN值满足同一报文组条件的各封装数据包进行缓存;接收设备可检测接收到的封装冗余包的SN值,并对SN值满足同一报文组条件的各封装冗余包进行缓存,进而能够对满足同一报文组条件的各封装数据包和各封装冗余包进行相应处理。通过依据SN值传输标记,可对存在丢包的Volte语音数据报文进行数据恢复处理,提高报文无线网络传输保障。
在一个具体的实施例中,满足同一报文组条件的封装数据包为SN值与报文组容量的商相等的各封装数据包;满足同一报文组条件的封装冗余包为SN值与报文组容量的商相等的各封装冗余包。
例如,接收设备对获取的封装数据包的SN值进行判断,并将SN值与预设报文组容量的商相等的封装数据包进行缓存;接收设备对获取的封装冗余包的SN值进行判断,并将SN值与预设报文组容量的商相等的封装冗余包进行缓存,进而可得到满足同一报文组调节的一组报文(包括各封装数据包和各封装冗余包)。
在一个具体的实施例中,在封装数据包的丢包数量大于零且小于或等于冗余占比数量时,确认各封装数据包满足丢包解码条件;在封装数据包的丢包数量等于零或大于冗余占比数量时,确认各封装数据包不满足丢包解码条件。
其中,接收设备可在封装数据包的丢包数量大于零、且小于或等于冗余包占比数量时,可对封装数据包进行FEC解码处理,得到恢复丢包后的封装数据包,实现对丢包数据的恢复。进而接收设备可对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文,提高了报文无线网络传输保障。接收设备可在在封装数据包的丢包数量等于零或大于冗余包占比数量时,则无需进行FEC编码处理过程,可直接将对剩余未产生丢包的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。进而在无线侧传输质量欠佳的网络中,折中Volte数据传输的可靠性与实时性,节省运营商传输成本,提高了带宽效率。
例如,预设报文组容量为8,数据包与冗余包的占比为5:3,接收设备的接收RLC实体可对同一报文组中SN除于8的余数小于5的封装数据包进行丢包检测;若检测到丢包,则通过FEC解码进行相应的丢包恢复出来;若检测到未丢包,则可直接将各封装数据包依次传输给接收设备的PDCP层。进而保障在一定丢包的程度下,能够恢复所丢失的报文,实现对Volte语音数据报文的传输保障。
在一个实施例中,如图4所示,提供了一种接收设备侧的Volte保障传输的方法,以该方法应用于图1中的接收设备102为例进行说明,包括以下步骤:
步骤S410,接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到。
步骤S420,在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
步骤S430,清空各封装冗余包。
步骤S440,在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
其中,上述步骤S410、步骤S420和步骤S440的具体内容过程可参考上文内容,此处不再赘述。
具体地,接收设备可以以一个报文组容量为一个传输周期,在对封装数据包进行FEC解码,得到恢复丢包后的封装数据包后,可清空各个封装冗余包,无需将冗余包传输给接收设备的PDCP层,进而能够节省了额外增加带宽的成本,提高了带宽的使用效率。
上述的Volte保障传输的方法中,通过FEC解码以及SN值传输标记,对存在丢包的Volte语音数据报文进行数据恢复,提高报文无线网络传输保障,增强了Volte语音数据传输过程中的抗丢包性,进而提升了Volte通话质量。
在一个实施例中,如图5所示,提供了一种发送设备侧的Volte保障传输的方法,以该方法应用于图1中的发送设备104为例进行说明,包括以下步骤:
步骤S510,接收Volte语音数据报文。
其中,Volte语音数据报文指的是基于Volte的语音数据报文;UM模式下的发送RLC实体的SN可通过RRC(Radio Resource Control,无线资源控制)配置得到;Volte语音数据报文的SN值是通过对Volte语音数据报文排序得到的;SN值可以是整数,SN值的取值范围根据配置的位宽长度决定。例如配置的SN的位宽为10bit,则SN值的取值范围为[0,1023]。
具体地,发送设备可包含PDCP层和UM模式下的发送RLC实体。发送设备通过发送RLC实体接收PDCP层传输的Volte语音数据报文。
步骤S520,备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备。
其中,接收设备中的发送RLC实体可判断Volte语音数据报文的SN值是否满足编码触发条件;并根据判断结果,在Volte语音数据报文的SN值不满足编码触发条件时,备份Volte语音数据报文,得到备份报文。并对SN值不满足编码触发条件的Volte语音数据报文添加RLC头部(如将RLC头部添加到Volte语音数据报文的前端),得到封装数据包,进而可将得到的封装数据包传输给接收设备。
步骤S530,直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
具体地,发送设备的发送RLC实体可根据判断结果,在Volte语音数据报文的SN值满足编码触发条件时,对缓存的Volte语音数据报文进行编码,进而可得到冗余包;并可分别对冗余包添加RLC头部,得到各封装冗余包,进而依次将各封装冗余包传输给接收设备。
上述的Volte保障传输的方法中,通过FEC编码以及SN值传输标记,无需引入额外头部开销,将语音数据包与冗余包一起传输,提高报文无线网络传输保障,增强了Volte语音数据传输过程中的抗丢包性,进而提升了Volte通话质量。
在一个具体的实施例中,冗余包的数量为冗余占比数量;冗余占比数量为报文组容量减去预设数据包占比数量得到。
其中,报文组容量可根据预先系统设定得到;例如,报文组容量为8,即8个报文组成一组报文组。冗余包占比数量指的是报文组中包括的冗余包的数量;预设数据包占比数量指的是报文组中包括的数据包的数量;例如,报文组容量为8,数据包占比数量为5时,则冗余包占比数量为3。
在一个实施例中,如图6所示,提供了一种发送设备侧的Volte保障传输的方法,以该方法应用于图1中的发送设备104为例进行说明,包括以下步骤:
步骤S610,获取PDCP层传输的下行数据包;
其中,PDCP层指的是发送设备的PDCP层。下行数据包可以是语音数据包,也可以是非语音数据包。
步骤S620,检测下行数据包的QCI值,并将QCI值为1的下行数据包确认为Volte语音数据报文。
其中,QCI值可用于指定访问节点内定义的控制承载级分组转发方式,不同的QCI值,则对应的数据类型不同;QCI值为1的下行数据包即为Volte语音数据报文。
步骤S630,接收Volte语音数据报文。
步骤S640,备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备。
步骤S650,直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
其中,上述步骤S630、步骤S640和步骤S650的具体内容过程可参考上文内容,此处不再赘述。
具体而言,发送RLC实体可接收PDCP层传输的下行数据包,并将获取到下行数据包进行QCI值检测。第一RLC实体可判断QCI值为1的下行数据包(即Volte语音数据报文)的SN值是否满足编码触发条件,并根据判断结果,通过FEC编码对Volte语音数据报文进行相应处理,得到数量为冗余占比数量的冗余包,并将添加了RLC头部的冗余包传输给接收设备。通过FEC编码以及SN值传输标记,无需引入额外头部开销,将语音数据包与冗余包一起传输,实现在无线侧传输质量欠佳的网络中,提高报文无线网络传输保障,增强了Volte语音数据传输过程中的抗丢包性,进而提升了Volte通话质量。
在一个具体的实施例中,检测下行数据包的QCI值的步骤之后包括:
将QCI值大于1的下行数据包传输给接收设备。
其中,QCI值大于1的上行数据包指的是非语音数据包。
具体地,第一设备还可将QCI值大于1的下行数据包确认为非语音报文,并将该QCI值大于1的上行数据包直接传输给接收设备,实现在保障端与端之间的语音数据传输,同时不妨碍非语音数据的传输。
在一个具体的实施例中,备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文的步骤之前包括:
依据SN递增规则,对获取到的Volte语音数据报文的SN进行赋值,得到SN值。
其中,SN递增规则可以是SN自增加一的方式进行递增(例如SN++)。
具体地,发送设备可依据SN递增规则,对获取到的Volte语音数据报文的SN进行赋值,进而可得到相应的SN值,通过对获取到的Volte语音数据报文进行SN值设置,进而能够对Volte语音数据报文进行传输标记,无需引入额外头部开销,即可在无线侧传输质量欠佳的网络中,提升Volte用户通话质量,折中Volte数据传输的可靠性与实时性,节省运营商传输成本以及提高了带宽效率。
在一个具体的实施例中,依据SN递增规则,对获取到的Volte语音数据报文的SN进行赋值,得到SN值的步骤中:
若上一赋值时刻得到的SN值等于SN取值范围的最大值,则将当前赋值时刻得到的SN值置零。
其中,上一赋值时刻指的是上一次对获取到的Volte语音数据报文的SN进行赋值的时刻;当前赋值时刻指的是当前对获取到的Volte语音数据报文进行SN赋值的时刻。
具体地,发送设备对获取到的Volte语音数据报文的SN进行赋值之前,可判断上一赋值时刻得到的SN值是否等于SN取值范围的最大值;若上一赋值时刻得到的SN值等于SN取值范围的最大值,则对当前获取到的Volte语音数据报文的SN赋值为零,实现当SN在预设的取值范围内依据递增规则轮询递增,防止SN赋值溢出。
例如,预设的SN取值范围为[0,1023],在上一赋值时刻得到的SN值等于1023时,则将当前赋值时刻得到的SN值置零。
在一个实施例中,在Volte语音数据报文的SN值除于报文组容量得到的余数小于预设数据包占比数量时,确认Volte语音数据报文的SN值不满足编码触发条件。在Volte语音数据报文的SN值除于报文组容量的得到余数等于预设数据包占比数量,确认Volte语音数据报文的SN值满足编码触发条件。
其中,SN值与预设报文组容量的余数指的是SN值除于预设报文组容量的余数;例如,预设报文组容量为8,SN值为3,则SN值与预设报文组容量的余数为3。
具体地,发送设备在Volte语音数据报文的SN值进行编码触发条件判断,在SN值与预设报文组容量的余数小于数据包占比数量时,备份获取到的Volte语音数据报文,得到备份报文;并对该Volte语音数据报文添加RLC头部,得到封装数据包;将封装数据包传输给接收设备。发送设备在SN值与预设报文组容量的余数等于数据包占比数量时,对备份得到的备份报文进行FEC编码,得到数量为冗余包占比数量的冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备。通过FEC编码以及SN值传输标记,无需引入额外头部开销,将语音数据包与冗余包一起传输,提高报文无线网络传输保障,增强了Volte语音数据传输过程中的抗丢包性,进而提升了Volte通话质量。
需要说明的是,基于SN的递增规则,备份得到的备份报文的SN值满足SN值除于报文组容量的商相等,即备份报文属于同一报文组的报文。
在一个实施例中,如图7所示,提供了一种发送设备侧的Volte保障传输的方法,以该方法应用于图1中的发送设备104为例进行说明,包括以下步骤:
步骤S710,接收Volte语音数据报文。
步骤S720,备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备。
步骤S730,直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
步骤S740,清空备份报文。
其中,上述步骤S710、步骤S720和步骤S740的具体内容过程可参考上文内容,此处不再赘述。
具体地,发送设备可以以一个报文组容量为一个传输周期,依据SN值依次将数量为数据包数量的封装数据包传输给接收设备后,清空备份得到备份报文,防止当前备份的备份报文影响下一个传输周期的传输处理,提升了Volte语音数据的传输保障机制。
在一个具体的实施例中,依次将各封装冗余包传输给接收设备的步骤包括:
依据SN递增规则,分别对各封装冗余包的SN进行赋值;依次将各SN赋值后的封装冗余包传输给接收设备。
例如,发送设备的发送RLC实体通过FEC编码得到3个冗余包,则可依据SN递增规则,分别对3个冗余包的SN进行赋值;并可依据SN值由小至大,依次将各SN赋值后的封装冗余包传输给接收设备。
上述的Volte保障传输的方法中,发送设备可对Volte语音数据报文进行FEC编码,得到一定个数的冗余包,并将Volte语音数据报文和冗余包传输至接收设备,从而保障在一定丢包的程度下,可恢复所丢失的报文。实现在无线侧传输质量欠佳的网络中,提升Volte用户通话质量,折中Volte数据传输的可靠性与实时性,节省运营商传输成本、提高带宽效率。
需要说明的是,上述实施例中采用的8个报文组成一组报文组,其中,依据SN值,前5个为Volte语音数据包,后3个为冗余包。然而,在本实施例的基础上,改变报文组大小或改变冗余比,比如Volte语音数据包个数:冗余包个数为4:4或6:2等等,基于本申请的技术方案均能够实现,在此不再赘述。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种接收设备侧的Volte保障传输的装置,包括:
接收设备数据接收单元810,用于接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到。
接收设备解码处理单元820,用于在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
接收设备非解码处理单元830,用于在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
在一个实施例中,如图9所示,提供了一种发送设备侧的Volte保障传输的装置,包括:
发送设备报文获取单元910,用于接收Volte语音数据报文。
发送设备数据包处理单元920,用于备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备。
发送设备编码处理单元930,用于直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
关于Volte保障传输的装置的具体限定可以参见上文中对于Volte保障传输的方法的限定,在此不再赘述。上述Volte保障传输的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于Volte保障传输的系统中的处理器中,也可以以软件形式存储于Volte保障传输的系统中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图10所示,提供了一种Volte保障传输的系统,包括接收设备110以及连接接收设备110的发送设备120。
例如,接收设备为用户终端,发送设备为接入网设备;又如接收设备为接入网设备,发送设备为用户终端。其中,接收设备可包含基于UM模式下的接收RLC实体,发送设备还可包括基于UM模式下的发送RLC实体。
接收设备110用于执行上述的Volte保障传输的方法的步骤:
接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到;
在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;
在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
接收设备120用于执行上述的Volte保障传输的方法的步骤:
接收Volte语音数据报文;
备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备;
直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
上述的Volte保障传输的系统中,通过FEC编码过程,将数据包与冗余包依据SN值传输,提高报文无线网络传输保障;通过FEC解码过程,对丢失报文在一定程度上尝试恢复,提升Volte用户通话质量。通过对Volte数据报文进行FEC编解码处理以及SN的传输标记,节省了人为地增加传输带宽的成本,更加充分地利用既有无线网络传输带宽资源。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收发送设备传输的各封装数据包和各封装冗余包;封装数据包由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行添加RLC头部处理后得到;封装冗余包由发送设备对冗余包经进行添加RLC头部处理后得到;冗余包由发送设备在接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码处理后得到;备份报文由发送设备对SN值不满足编码触发条件的Volte语音数据报文进行备份处理后得到;
在各封装数据包满足丢包解码条件时,基于封装冗余包对封装数据包进行FEC解码,得到恢复丢包后的封装数据包;并对恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;
在各封装数据包不满足丢包解码条件时,对各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
计算机程序被处理器执行时实现以下步骤:
接收Volte语音数据报文;
备份SN值不满足编码触发条件的Volte语音数据报文,得到备份报文;并对SN值不满足编码触发条件的Volte语音数据报文、添加RLC头部,得到封装数据包,且将封装数据包传输给接收设备;
直至接收到SN值满足编码触发条件的Volte语音数据报文时,对备份报文进行FEC编码,得到冗余包;分别对各冗余包添加RLC头部,得到各封装冗余包;并依次将各封装冗余包传输给接收设备;封装冗余包用于指示接收设备对满足丢包解码条件的封装数据包进行FEC解码,并对得到的恢复丢包后的封装数据包依次拆除RLC头部,得到各Volte语音数据报文;还用于指示接收设备对不满足丢包解码条件的各封装数据包依次拆除RLC头部,得到各Volte语音数据报文。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各除法运算方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。