CN111181700A - 数据传输方法、装置、电子设备及存储介质 - Google Patents
数据传输方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111181700A CN111181700A CN202010014770.7A CN202010014770A CN111181700A CN 111181700 A CN111181700 A CN 111181700A CN 202010014770 A CN202010014770 A CN 202010014770A CN 111181700 A CN111181700 A CN 111181700A
- Authority
- CN
- China
- Prior art keywords
- target data
- data
- receiving end
- retransmission
- redundant packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请实施例公开了一种数据传输方法、装置、电子设备及存储介质,涉及通信技术领域。该方法应用于数据传输系统的接收端,数据传输系统还包括发送端,该方法包括:接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定;对目标数据进行解码,得到解码结果;当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错;当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。本申请可以增强数据在传输过程中的抗干扰能力。
Description
技术领域
本申请涉及通信技术领域,更具体地,涉及一种数据传输方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的快速发展,像音频、视频等数据在设备之间的传输速度越来越快。
然而,目前的音、视频传输过程中,会因为传输中的网络拥堵、无线信道的高误码率和不稳定性以网络结构的不同等等原因,造成传输信息的差错、丢包等现象。
发明内容
鉴于上述问题,本申请提出了一种数据传输方法、装置、电子设备及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种数据传输方法,应用于数据传输系统的接收端,数据传输系统还包括发送端,该方法包括:接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定;对目标数据进行解码,得到解码结果;当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错;当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。
第二方面,本申请实施例提供了一种数据传输方法,应用于数据传输系统的发送端,数据传输系统还包括接收端,该方法包括:获取初始数据和初始数据对应接收端的往返时延和重传超时时间;对初始数据进行RS编码得到目标数据,且根据往返时延确定目标数据的冗余包;将目标数据和冗余包发送给接收端,以指示接收端对目标数据进行解码,并指示接收端在解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错,当解码结果存在错误码,且错误码不满足预设条件时,反馈重传指令;基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
第三方面,本申请实施例提供了一种数据传输装置,应用于数据传输系统的接收端,数据传输系统还包括发送端,该装置包括:接收模块、解码模块、纠错模块以及反馈模块。其中,接收模块用于接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定。解码模块用于对目标数据进行解码,得到解码结果。纠错模块用于当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错。反馈模块用于当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。
第四方面,本申请实施例提供了一种数据传输装置,应用于数据传输系统的发送端,数据传输系统还包括接收端,该装置包括:获取模块、编码模块、发送模块以及重传模块。其中,获取模块用于获取初始数据和初始数据对应接收端的往返时延和重传超时时间。编码模块用于对初始数据进行RS编码得到目标数据,且根据往返时延确定目标数据的冗余包。发送模块用于将目标数据和冗余包发送给接收端,以指示接收端对目标数据进行解码,并指示接收端在解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错,当解码结果存在错误码,且错误码不满足预设条件时,反馈重传指令。重传模块用于基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
第五方面,本申请实施例提供了一种数据传输系统,该系统包括发送端和接收端。其中,发送端用于获取初始数据和初始数据对应接收端的往返时延和重传超时时间。发送端用于对初始数据进行RS编码得到目标数据,且根据往返时延确定目标数据的冗余包。发送端用于将目标数据和冗余包发送给接收端。接收端用于对目标数据进行解码,并在解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错,当解码结果存在错误码,且错误码不满足预设条件时,反馈重传指令。发射端用于基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
第六方面,本申请实施例提供了一种电子设备,包括一个或多个处理器、存储器、以及一个或多个程序,其中一个或多个程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行上述的数据传输方法。
第七方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述的数据传输方法。
本申请实施例提供的数据传输方法、装置、电子设备及存储介质,通过在接收端接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定;对目标数据进行解码,得到解码结果;当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错;当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。从而在目标数据中错误码满足能够纠错的条件时,能够自动通过冗余包对目标数据进行纠错,避免了接收的目标数据出错时,直接由发送端重传数据的繁琐和低效。另外,通过在目标数据中的错误码不满足能够纠错的条件时,由发送端重新向接收端发送目标数据,并且由重传超时时间确保稳定重传,保证了数据传输的可靠性和稳定性。整体而言,提高了数据传输的准确性和效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的应用环境示意图。
图2示出了根据本申请一个实施例的数据传输方法流程图。
图3示出了根据本申请另一个实施例的数据传输方法流程图。
图4示出了根据本申请又一个实施例的数据传输方法流程图。
图5示出了根据本申请再一个实施例的数据传输方法流程图。
图6示出了根据本申请另一个实施例的数据传输系统的结构框图。
图7示出了根据本申请一个实施例的数据传输系统工作时的时序状态图。
图8示出了本申请一个实施例提供的数据传输装置的功能模块图。
图9示出了本申请另一个实施例提供的数据传输装置的功能模块图。
图10示出了本申请实施例提供的电子设备的结构框图。
图11是本申请实施例的用于保存或者携带实现根据本申请实施例的数据传输方法的程序代码的存储介质。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
随着通信技术的发展,通过网络传输数据信息已成为人们进行信息交流的重要方式。由于传输数据量的日益增大,数据的传输质量无法得到保证。例如,在无线信号传输过程中存在感干扰和衰落,接收端的接收到的数据和发送端发出的数据往往会出现不一致的情况,从而降低了数据传输的准确性。
发明人发现,通过对传输的数字信号采用纠错、检错技术,可以大大提高数据传输的可靠性,增强数据在传输过程中抵抗各种干扰的能力。例如通过信道纠错编码分为线性分组码或者卷积码进行数据的纠错。其中,卷积码的编码器将k个信息码元编为n个码元时,这n个码元不仅与当前段的k个信息有关,而且与前面的(m-1)段信息有关(m为编码的约束长度),因此基于卷积码的纠错方式适合以串型的传输模式。而分组码的编码和解码时,本组的n-k个校验元和其他组信息没有关系,只和本组的k个信息元有关系,因此基于分组码的纠错方式更适合实际直播过程中基于私有用户数据报协议(userdatagram protocol,UDP)。
然而,发明人在实际研究中发现,通过对数据编码和解码而使用纠错、检错技术,能够检出和纠正的错误码有限,当错误码的数量过多时,则无法使用,从而无法较好地保证数据传输的质量。
因此,针对于上述问题,发明人提出了本申请实施例中的数据传输方法、装置、电子设备及存储介质,可以通过将RS自动纠错编码和数据重传相结合,当接收端接收到的目标数据满足RS纠错条件时,直接对目标数据进行RS纠错,当目标数据不满足RS纠错条件时,转而向发送端发送重传指令以指示发送端重传数据,不仅保证了数据传输的稳定性和准确性,而且提升了数据传输的效率。
下面对本申请实施例提供的数据传输方法的应用环境进行介绍。
请参阅图1,图1示出了一种数据传输系统,该数据传输系统可以包括至少一个发送端1和至少一个接收端2。发送端1可以和接收端2无线通信,可选地,一个发送端1可以对应一个接收端2,也可以对应多个接收端2。
可选地,发送端1和接收端2可以是具有联网功能的电子设备,电子设备包括但不限于:智能手机、平板电脑、个人电脑、路由器、服务器等。
请参阅图2,图2示出了本申请一个实施例提供的数据传输方法流程图。
其中,该数据传输方法可以应用于上述数据传输系统的发送端,该方法包括:
S110,获取初始数据和初始数据对应接收端的往返时延和重传超时时间。
其中,初始数据可以是视频数据、音频数据等等。作为一种方式,发送端获取初始数据的方式,可以是从发送端的本地存储中直接调用。作为一种方式,发送端获取初始数据的方式,也可以发送端是向与发送端通信的云端服务器发送请求,根据请求从云端服务器获取视频数据、音频数据等。作为另一种方式,发送端获取初始数据的方式,还可以是发送端通过其自带的摄像头或者麦克风采集当前周边环境的图像或音频以生成视频数据、音频数据等,例如用户通过智能手机、个人电脑等进行视频直播等。
在一些实施方式中,获取初始数据对应接收端的往返时延(Round-TripTime,RTT)和重传超时时间(以下可称RTO)的方式可以是,发送端先向接收端发送初始数据,根据接收端反馈的确认字符(Acknowledgecharacter,ACK)计算出初始数据的RTT和RTO。作为一种示例,例如,发送端记录下发送初始数据的时刻T1,当接收端接收到初始数据口,反馈发送端的ACK的时刻为T2,则RTT=T2-T1。当计算RTO时,可以通过如下计算方法:
其中,可以设置RTT的初始值为R,对于初始数据中的第一个数据包的RTO可以通过如下方法计算:
SRTT=RTT=R;
RTTVAR=SRTT/2=R/2;
RTO=SRTT+max(G,k*RTTVAR);
其中,SRTT为平滑往返时延,RTTVAR为往返时延的方差。
其中,对于初始数据中的第二个数据包的RTO可以通过如下方法计算:
SRTT2=a*SRTT1+(1-a)*RTT2;
if(|RTT2-SRTT1|>1/4RTTVAR1);
{
RTTVAR2=31/32RTTVAR1+1/8(|RTT2-SRTT1|)
}
else if(|RTT2-SRTT1|<=1/4RTTVAR1);
{
RTTVAR=3/4RTTVAR1+|RTT2-SRTT1|
}
RTO=SRTT2*1/8+RTTVAR2;
其中,RTT2为初始数据中的第二个数据包的往返时延,SRTT1为第一个数据包的平滑往返时延,SRTT2为第二个数据包的平滑往返时延,RTTVAR1为第一个数据包的往返时延方差,RTTVAR2为第二个数据包的往返时延迟方差,a为用于根据第一个数据包的平滑往返时延和第二个数据包的往返时延计算第二个数据包的平滑往返时延的权值,其中a的值可以自行调节。
S120,对初始数据进行RS编码得到目标数据,且根据往返时延确定目标数据的冗余包。
其中,得到的目标数据为数字信号。
需要说明的是,对初始数据进行RS(Reed-solomon)编码为里德-所罗门码,又称里所码,是一种前向错误更正的信道编码,对由校正过采样数据所产生的有效多项式。
其中,在编码过程首先在初始数据的多个点上对这些多项式求冗余,得到多个点对应的冗余包。当接收端正确地收到足够的点对应的冗余包时,就可以根据冗余包恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰有损。
作为一种示例,在对初始数据编码时,可以通过如下方式实现:
首先,根据伽罗华域的本原元素x,生成多项式g(x)=x8+x4+x3+x2+1,在发射端的内存中建立伽罗华域的对数表gf_log和反对数表乘法表gf_exp;
如果1<=i<255,且(x<<1&0x100)为0时,有gf_exp[i]=x,gf_log[x]=i;
(x<<1&0x100)为1时,gf_exp[i]=x^0x11d,gf_log[x]=i;
如果512>i>=255时,有gf_exp[i]=gf_exp[i-255];
在伽罗华域的对数表和反对数表查找对应伽罗华域内的值,在内存中生成乘法表gf_mul,生成的gf_mul如下:
gf_mul[x,y]=gf_exp[gf_log[x]+gf_log[y]]。
然后,在对初始数据执行编码时,可以通过生成矩阵和初始数据的数据包矩阵进行矩阵乘法运算,通过查找罗华域内的乘法表gf_mul即可得到冗余包数据,即初始数据的多个点对应的冗余包。可选地,在对初始数据进行RS(n,k)编码时,可以使用系统码,从而可以提高数据提取时的效率。可选地,生成矩阵可以采用运算简单且可逆的柯西矩阵(如n*k的矩阵)。其中,n为RS编码的块长度,k为RS编码的消息长度。
其中,RS编码器冗余包个数,可以根据往返时延设置,具体地,往返时延越长,设置的冗余包个数可以越多。
S130,将目标数据和冗余包发送给接收端,以指示接收端对目标数据进行解码,并指示接收端在解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错,当解码结果存在错误码,且错误码不满足预设条件时,反馈重传指令。
在一些实施方式中,由于通过RS编码的冗余包对错误码进行纠错时,纠错的错误码数量有限。因此可以通过设置错误码的数量阈值来确定错误码是否满足预设条件,当错误码的数量没有超过数量阈值时,则可以确定错误码满足预设条件,当错误码的数量超过数量阈值时,则可以确定错误码不满足预设条件。
作为一种示例,例如发送端将目标数据和冗余包发送给接收端,当接收端接收到目标数据后对目标数据进行解码,如果解码结果中存在错误码,且错误码的数量为5个时,假设数量阈值为3个时,则确定错误码的不满足预设条件,此时,利用RS编码的冗余包已经无法对所有错误码进行纠错,因此可以向发送端发送重传指令,以让发送端再次将目标数据发送给接收端。如果错误码的数量为2个时,则可以利用RS编码的冗余包直接对错误码进行纠错。
在一些实施方式中,利用RS编码的冗余包对错误码进行纠错时,可以先确定错误码的位置,再通过与错误码相邻位置的冗余包对错误码进行恢复,作为一种示例,例如目标数据包括依次排列的数据包1、数据包2、数据包3,其中,数据包3出现了数据丢失或者数据错误,接下来,可以通过冗余包对数据包4和数据包5的位置进行补充,从而可以根据数据包1、数据包2、数据包4和数据包5对应RS编码中的多项式找回数据包3,并对其进行恢复,以达到对错误码的纠错目的。
S140,基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
其中,重传指令用于指示发送端针对当前的目标数据,进行再一次发送。
作为一种示例,可以在发送端配置一个定时器,定时器的设定值为重传超时时间RTO,当发送端接收到重传指令后的重新发送目标数据,当重传超时时间内没有接收到接收端返回的ACK报文时,则重新发送数据,直到发送成功为止。例如,定时器设定的重传超时时间为250us,当发送端重发目标数据后的250us内接收到接收端返回的ACK报文时,则可以确定发送成功,不必再次发送。当发送端重发目标数据后的250us内没有接收到接收端返回的ACK报文时,则重新发送目标数据,若在本次发送后的250us内仍没有接收到接收端返回的ACK报文,则继续重发目标数据,直到发送成功,即发送后的250us内接收端返回的ACK报文。
在本实施例中,通过在接收端接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定,具体地冗余包的数量通过往返时延确定,从而可以达到最大化传输冗余包的作用,然后对目标数据进行解码,得到解码结果。当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错。当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。从而在目标数据中错误码满足能够纠错的条件时,能够自动通过冗余包对目标数据进行纠错,避免了接收的目标数据出错时,直接由发送端重传数据的繁琐和低效。另外,通过在目标数据中的错误码不满足能够纠错的条件时,由发送端重新向接收端发送目标数据,并且由重传超时时间确保稳定重传,保证了数据传输的可靠性和稳定性。整体而言,提高了数据传输的准确性和效率。
请参阅图3,图3示出了本申请另一个实施例提供的数据传输方法流程图,该数据传输方法可以应用于上述数据传输系统的发送端,该方法可以包括:
S210,获取初始数据和初始数据对应接收端的往返时延和重传超时时间。
其中,S210的具体实施方式可以参考S110,故不在此赘述。
S220,对初始数据进行量化、压缩和RS编码得到多个数据包。
在一些实施方式中,可以先对初始数据进行量化,以将初始数据转换为数字信号,其次,对转换得到的数据信号进行压缩编码后得到多个数据包。
S230,将多个数据包进行分割或打包处理,得到目标数据,且根据往返时延确定目标数据的冗余包。
在一些实施方式中,当某个数据包的太大时,可以将该数据包进行分割,以将以得到多个大小均匀的数据包。当多个数据包太小时,可以将这个多个比较小的数据包进行打包,从而形成一个大的数据包。从而使得最终得到的目标数据包括多个大小均匀的数据包,达到方便传输,提升传输效率的作用。
可选地,可以对分割或打包处理后的多个数据包进行编号,例如,按照数字递增的顺序为每个数据包进行编号,例如编号后多个数据包的编号为1、2、3、4、…。又例如编号后多个数据包的编号可以为2、4、6、8…。
S240,将目标数据和冗余包发送给接收端,以指示接收端对目标数据进行解码,并指示接收端在解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错,当解码结果存在错误码,且错误码不满足预设条件时,反馈重传指令。
其中,S240的具体实施方式可以参考S130,故不在此赘述。
S250,判断目标数据的当前重传次数是否超过预设重传次数。
作为一种示例,假设预设重传次数(也可以成最大重传次数)为5次。
S260,当目标数据的当前重传次数不超过预设重传次数时,基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
作为一种示例,例如,对于同一个目标数据,发送端已经对其重发了4次。则当前重传次数不超过预设重传次数,可以继续基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
可选地,当目标数据的当前重传次数超过预设重传次数时,则发送端不再向接收端重传目标数据。
作为一种示例,例如,对于同一个目标数据,发送端已经对其重发了6次。则当前重传次数超过预设重传次数,可以停止向接收端重新发送目标数据。
在一些实施方式中,当发送端向接收端发送目标数据时,可以根据目标数据的数据包帧率确定数据包的发送间隔时间,例如在已知帧率的情况下,可以通过固定帧数时间法计算出发送间隔时间。然后根据发送间隔时间逐个发送包无需等待前一个包接收到服务器端的ACK再发送下一个包,并在发送点启动一个定时器,定时器的设定值为重传超时时间RTO。如果超过重传超时时间RTO时还没有收到接收端的ACK协议或者重传超时时间内收到服务器端的否定应答(Negative Acknowledgement,NACK)协议,并且没有超出最大重传次数时,只选择重新发送此数据包,而不是发送此包之后的所有数据包。
在本实施方式中,通过根据目标数据的数据包对应帧率确定数据包的发送间隔时间可以提升数据传输的效率和质量。
考虑到网络层的最大传输单元有限制,在本实施例中,通过对初始数据进行量化、压缩和RS编码得到多个数据包,再将多个数据包进行分割或打包处理,得到目标数据,从而使目标数据包括多个大小均匀的数据包,可以有效提升目标数据的传输效率。另外,在本实施例中,通过判断目标数据的当前重传次数是否超过预设重传次数,当目标数据的当前重传次数不超过预设重传次数时,基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端,避免了发送端的长时间的无效重传,节省了发送端功耗。
请参阅图4,图4示出了本申请又一个实施例提供的数据传输方法流程图,该方法可以应用于上述数据传输系统的接收端,该方法可以包括:
S310,接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定。
在一些实施方式中,接收端接收发送端发送的目标数据和目标数据对应的冗余包,其中,发送端获取目标数据和冗余包的具体实施方式可以参考S110和S120。
S320,对目标数据进行解码,得到解码结果。
其中,接收端可以配置RS码解码器,通过RS码解码器对目标数据进行解码,以得到解码结果。
S330,当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错。
其中,通过冗余包对目标数据进行纠错的具体实施方式可以参考S130。
S340,当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。
在本实施例中,通过将RS自动纠错编码和数据重传相结合,当接收端接收到的目标数据满足RS纠错条件时,直接对目标数据进行RS纠错,当目标数据不满足RS纠错条件时,转而向发送端发送重传指令以指示发送端重传数据,不仅保证了数据传输的稳定性和准确性,而且提升了数据传输的效率。
请参阅图5,图5示出了本申请再一个实施例提供的数据传输方法流程图,该方法可以应用于上述数据传输系统的接收端,该方法可以包括:
S410,接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定。
S420,对目标数据进行解码,得到解码结果。
S430,判断解码结果中是否存在错误码。
在一些实施方式中,可以原先对目标数据中的数据包进行标记(如编号等),当接收端接收到目标数据后,对其每个数据包位置的标记进行检查,当有标记出现丢失或者位置错误则可以确定解码结果中是否存在错误码。
S440,当解码结果不存在错误码时,将冗余包从接收端删除。
S450,当存在错误码时,判断错误码的数量是否小于(n-k)。
S460,当错误码的数量小于(n-k)时,通过冗余包对目标数据进行纠错,其中,(n-k)为针对目标数据进行RS编码得到的奇偶校验长度。
S470,当错误码的数量不小于(n-k)时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。
考虑到通常基于RS编码的纠错最多只能对(n-k)个错误码进行纠错,在本实施例中,当存在错误码时,判断错误码的数量是否小于(n-k),当错误码的数量小于(n-k)时,通过冗余包对目标数据进行纠错可以保证接收端每次能够对最大数量的错误码进行纠错,从而提升了纠错效率。另外,在本实施例中,通过在解码结果不存在错误码时,将冗余包从接收端删除,可以减缓接收端的数据存储压力,特别是当接收端为正在接收直播视频的电子设备时,可以有效提高视频播放的流畅性。
请参阅图6,其示出了本申请实施例提供的数据传输系统500,该系统500包括发送端510和接收端520。该系统500工作时的时序状态如图7所示,其中:
发送端510用于获取初始数据和初始数据对应接收端520的往返时延和重传超时时间。
发送端510用于对初始数据进行RS编码得到目标数据,且根据往返时延确定目标数据的冗余包。
发送端510用于将目标数据和冗余包发送给接收端520。
接收端520用于对目标数据进行解码,并在解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错,当解码结果存在错误码,且错误码不满足预设条件时,反馈重传指令。
发射端用于基于接收端520反馈的重传指令和重传超时时间将目标数据重传到接收端520。
请参阅图8,其示出了本申请一种实施例提供的数据传输装置600,应用于数据传输系统的接收端,数据传输系统还包括发送端,该装置600包括:接收模块610、解码模块620、纠错模块630以及反馈模块640。其中:
接收模块610,用于接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定。
解码模块620,用于对目标数据进行解码,得到解码结果。
纠错模块630,用于当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错。
反馈模块640,用于当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。
进一步的,该数据传输装置600还包括条件判断模块,用于当解码结果中的错误码的数量小于(n-k)时,确定错误码满足预设条件,其中,(n-k)为针对目标数据进行RS编码得到的奇偶校验长度。
进一步的,该数据传输装置600还包括删除模块,用于当解码结果不存在错误码时,将冗余包从接收端删除。
请参阅图9,其示出了本申请另一种实施例提供的数据传输装置700,该装置700应用于数据传输系统的发送端,数据传输系统还包括接收端,装置700包括:获取模块710、编码模块720、发送模块730以及重传模块710。其中:
获取模块710,用于获取初始数据和初始数据对应接收端的往返时延和重传超时时间。
编码模块720,用于对初始数据进行RS编码得到目标数据,且根据往返时延确定目标数据的冗余包。
发送模块730,用于将目标数据和冗余包发送给接收端,以指示接收端对目标数据进行解码,并指示接收端在解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错,当解码结果存在错误码,且错误码不满足预设条件时,反馈重传指令。
重传模块710,用于基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
进一步的,编码模块720包括:
压缩和编码单元,用于对初始数据进行量化、压缩和RS编码得到多个数据包。
预处理单元,用于将多个数据包进行分割或打包处理,得到目标数据。
进一步的,重传模块710包括:
重传次数判断单元,用于判断目标数据的当前重传次数是否超过预设重传次数。
重传单元,用于当目标数据的当前重传次数不超过预设重传次数时,基于接收端反馈的重传指令和重传超时时间将目标数据重传到接收端。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置700和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置700或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图10,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备800可以是前述实施例中能够运行程序的电子设备800。本申请中的电子设备800可以包括一个或多个如下部件:处理器810、存储器820、以及一个或多个程序,其中一个或多个程序可以被存储在存储器820中并被配置为由一个或多个处理器810执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器810可以包括一个或者多个处理核。处理器810利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器820内的指令、程序、代码集或指令集,以及调用存储在存储器820内的数据,执行电子设备的各种功能和处理数据。可选地,处理器810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器810可集成中央处理器810(CentralProcessing Unit,CPU)、图像处理器810(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块通信芯片进行实现。
存储器820可以包括随机存储器820(Random Access Memory,RAM),也可以包括只读存储器820(Read-Only Memory)。存储器820可用于存储指令、程序、代码、代码集或指令集。存储器820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质900中存储有程序代码910,程序代码910可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质900可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质具有执行上述方法中的任何方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的数据传输方法、装置、电子设备及存储介质,通过在接收端接收发送端发送的目标数据和目标数据对应的冗余包,目标数据基于发送端对初始数据进行RS编码得到,冗余包基于初始数据对应接收端的往返时延确定,然后对目标数据进行解码,得到解码结果。当解码结果存在错误码,且错误码满足预设条件时,通过冗余包对目标数据进行纠错。当解码结果存在错误码,且错误码不满足预设条件时,向发送端反馈重传指令,以指示发送端基于重传超时时间将目标数据重传到接收端,重传超时时间基于往返时延获得。从而在目标数据中错误码满足能够纠错的条件时,能够自动通过冗余包对目标数据进行纠错,避免了接收的目标数据出错时,直接由发送端重传数据的繁琐和低效。另外,通过在目标数据中的错误码不满足能够纠错的条件时,由发送端重新向接收端发送目标数据,并且由重传超时时间确保稳定重传,保证了数据传输的可靠性和稳定性。整体而言,本申请的方法提高了数据传输的准确性和效率特。特别适用于视频直播,在直播过程中,当网络条件差的情况下该方法可以自动触发,从而实现平衡弱网环境下开播的音画质量、流畅度的作用。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种数据传输方法,应用于数据传输系统的接收端,所述数据传输系统还包括发送端,所述方法包括:
接收所述发送端发送的目标数据和所述目标数据对应的冗余包,所述目标数据基于所述发送端对初始数据进行RS编码得到,所述冗余包基于所述初始数据对应所述接收端的往返时延确定;
对所述目标数据进行解码,得到解码结果;
当解码结果存在错误码,且所述错误码满足预设条件时,通过所述冗余包对所述目标数据进行纠错;
当解码结果存在错误码,且所述错误码不满足预设条件时,向所述发送端反馈重传指令,以指示所述发送端基于重传超时时间将所述目标数据重传到所述接收端,所述重传超时时间基于所述往返时延获得。
2.根据权利要求1所述的方法,其特征在于,在所述通过所述冗余包对所述目标数据进行纠错之前,还包括:
当解码结果中的错误码的数量小于(n-k)时,确定所述错误码满足预设条件,其中,(n-k)为针对所述目标数据进行RS编码得到的奇偶校验长度。
3.根据权利要求1所述的方法,其特征在于,在所述对所述目标数据进行解码,得到解码结果之后,还包括:
当解码结果不存在错误码时,将所述冗余包从所述接收端删除。
4.一种数据传输方法,其特征在于,应用于数据传输系统的发送端,所述数据传输系统还包括接收端,所述方法包括:
获取初始数据和所述初始数据对应所述接收端的往返时延和重传超时时间;
对所述初始数据进行RS编码得到目标数据,且根据所述往返时延确定所述目标数据的冗余包;
将所述目标数据和所述冗余包发送给接收端,以指示所述接收端对所述目标数据进行解码,并指示所述接收端在解码结果存在错误码,且所述错误码满足预设条件时,通过所述冗余包对所述目标数据进行纠错,当解码结果存在错误码,且所述错误码不满足预设条件时,反馈重传指令;
基于所述接收端反馈的重传指令和所述重传超时时间将所述目标数据重传到所述接收端。
5.根据权利要求4所述的方法,其特征在于,所述对所述初始数据进行RS编码得到目标数据,包括:
对所述初始数据进行量化、压缩和RS编码得到多个数据包;
将所述多个数据包进行分割或打包处理,得到所述目标数据。
6.根据权利要求4或5所述的方法,其特征在于,所述基于所述接收端反馈的重传指令和所述重传超时时间将所述目标数据重传到所述接收端,包括:
判断所述目标数据的当前重传次数是否超过预设重传次数;
当所述目标数据的当前重传次数不超过预设重传次数时,基于所述接收端反馈的重传指令和所述重传超时时间将所述目标数据重传到所述接收端。
7.一种数据传输装置,其特征在于,应用于数据传输系统的接收端,所述数据传输系统还包括发送端,所述装置包括:
接收模块,用于接收所述发送端发送的目标数据和所述目标数据对应的冗余包,所述目标数据基于所述发送端对初始数据进行RS编码得到,所述冗余包基于所述初始数据对应所述接收端的往返时延确定;
解码模块,用于对所述目标数据进行解码,得到解码结果;
纠错模块,用于当解码结果存在错误码,且所述错误码满足预设条件时,通过所述冗余包对所述目标数据进行纠错;
反馈模块,用于当解码结果存在错误码,且所述错误码不满足预设条件时,向所述发送端反馈重传指令,以指示所述发送端基于重传超时时间将所述目标数据重传到所述接收端,所述重传超时时间基于所述往返时延获得。
8.一种数据传输装置,其特征在于,应用于数据传输系统的发送端,所述数据传输系统还包括接收端,所述装置包括:
获取模块,用于获取初始数据和所述初始数据对应所述接收端的往返时延和重传超时时间;
编码模块,用于对所述初始数据进行RS编码得到目标数据,且根据所述往返时延确定所述目标数据的冗余包;
发送模块,用于将所述目标数据和所述冗余包发送给接收端,以指示所述接收端对所述目标数据进行解码,并指示所述接收端在解码结果存在错误码,且所述错误码满足预设条件时,通过所述冗余包对所述目标数据进行纠错,当解码结果存在错误码,且所述错误码不满足预设条件时,反馈重传指令;
重传模块,用于基于所述接收端反馈的重传指令和所述重传超时时间将所述目标数据重传到所述接收端。
9.一种数据传输系统,其特征在于,所述系统包括发送端和接收端;
发送端用于获取初始数据和所述初始数据对应所述接收端的往返时延和重传超时时间;
发送端用于对所述初始数据进行RS编码得到目标数据,且根据所述往返时延确定所述目标数据的冗余包;
发送端用于将所述目标数据和所述冗余包发送给接收端;
接收端用于对所述目标数据进行解码,并在解码结果存在错误码,且所述错误码满足预设条件时,通过所述冗余包对所述目标数据进行纠错,当解码结果存在错误码,且所述错误码不满足预设条件时,反馈重传指令;
发射端用于基于所述接收端反馈的重传指令和所述重传超时时间将所述目标数据重传到所述接收端。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-3任一项所述的方法,或者如权利要求4-6任一项所述的方法。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-3任一项所述的方法,或者如权利要求4-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010014770.7A CN111181700A (zh) | 2020-01-07 | 2020-01-07 | 数据传输方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010014770.7A CN111181700A (zh) | 2020-01-07 | 2020-01-07 | 数据传输方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111181700A true CN111181700A (zh) | 2020-05-19 |
Family
ID=70656195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010014770.7A Pending CN111181700A (zh) | 2020-01-07 | 2020-01-07 | 数据传输方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111181700A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113346982A (zh) * | 2021-05-31 | 2021-09-03 | 合肥中感微电子有限公司 | 数据传输方法、发送方法、接收方法及装置 |
WO2022001892A1 (zh) * | 2020-06-29 | 2022-01-06 | 华为技术有限公司 | 重传方法及通信装置 |
CN113936669A (zh) * | 2020-06-28 | 2022-01-14 | 腾讯科技(深圳)有限公司 | 数据传输方法、系统、装置、计算机可读存储介质及设备 |
CN114978427A (zh) * | 2022-05-19 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、程序产品、计算机设备和介质 |
CN116114190A (zh) * | 2020-09-18 | 2023-05-12 | 华为技术有限公司 | 数据传输方法、通信装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119183A (zh) * | 2007-09-06 | 2008-02-06 | 上海华为技术有限公司 | 重传控制方法及传输设备 |
CN101222305A (zh) * | 2007-01-09 | 2008-07-16 | 华为技术有限公司 | 一种重传数据的方法、系统及装置 |
US20100313093A1 (en) * | 2009-06-04 | 2010-12-09 | Canon Kabushiki Kaisha | Error-correction data generation apparatus and generation method |
US20110314351A1 (en) * | 2010-06-18 | 2011-12-22 | Fujitsu Limited | Data transfer device, method, and program |
CN107257270A (zh) * | 2017-05-31 | 2017-10-17 | 张超 | 基于混合自动重传请求的数据传输方法及系统 |
CN107276722A (zh) * | 2017-06-21 | 2017-10-20 | 北京奇艺世纪科技有限公司 | 一种基于udp的数据传输方法和系统 |
-
2020
- 2020-01-07 CN CN202010014770.7A patent/CN111181700A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222305A (zh) * | 2007-01-09 | 2008-07-16 | 华为技术有限公司 | 一种重传数据的方法、系统及装置 |
CN101119183A (zh) * | 2007-09-06 | 2008-02-06 | 上海华为技术有限公司 | 重传控制方法及传输设备 |
US20100313093A1 (en) * | 2009-06-04 | 2010-12-09 | Canon Kabushiki Kaisha | Error-correction data generation apparatus and generation method |
US20110314351A1 (en) * | 2010-06-18 | 2011-12-22 | Fujitsu Limited | Data transfer device, method, and program |
CN107257270A (zh) * | 2017-05-31 | 2017-10-17 | 张超 | 基于混合自动重传请求的数据传输方法及系统 |
CN107276722A (zh) * | 2017-06-21 | 2017-10-20 | 北京奇艺世纪科技有限公司 | 一种基于udp的数据传输方法和系统 |
Non-Patent Citations (2)
Title |
---|
SOMAYYEH JAFARALI JASSBI: "Redundant Multi-Level one-hot Residue Number System based error correction codes", 《2010 EAST-WEST DESIGN & TEST SYMPOSIUM (EWDTS)》 * |
田波: "基于丢包率预测的视频传输纠错算法", 《网络与通信技术》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113936669A (zh) * | 2020-06-28 | 2022-01-14 | 腾讯科技(深圳)有限公司 | 数据传输方法、系统、装置、计算机可读存储介质及设备 |
WO2022001892A1 (zh) * | 2020-06-29 | 2022-01-06 | 华为技术有限公司 | 重传方法及通信装置 |
CN116114190A (zh) * | 2020-09-18 | 2023-05-12 | 华为技术有限公司 | 数据传输方法、通信装置及存储介质 |
CN113346982A (zh) * | 2021-05-31 | 2021-09-03 | 合肥中感微电子有限公司 | 数据传输方法、发送方法、接收方法及装置 |
CN113346982B (zh) * | 2021-05-31 | 2023-10-20 | 合肥中感微电子有限公司 | 数据传输方法、发送方法、接收方法及装置 |
CN114978427A (zh) * | 2022-05-19 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、程序产品、计算机设备和介质 |
CN114978427B (zh) * | 2022-05-19 | 2024-04-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、程序产品、计算机设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181700A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
JP4002183B2 (ja) | パケット・チャネルを介するマルチメディア通信のための方法 | |
CN109729439B (zh) | 实时视频传输方法 | |
TWI501579B (zh) | 使用透過單播系統接收之增量冗餘以在廣播系統中接收資料的接收器與接收方法 | |
CN110943800B (zh) | 数据包的发送方法、装置及系统、存储介质、电子装置 | |
JP3798387B2 (ja) | Fec符号化方式に基づいた可変長パケット送信方法及び受信方法 | |
CN107257270B (zh) | 基于混合自动重传请求的数据传输方法及系统 | |
KR100939951B1 (ko) | 인 밴드 에러 패턴을 사용한 에러 복원 | |
US7584404B2 (en) | Method and apparatus for multimedia communication over packet channels | |
CN112350803B (zh) | 数据包的传输方法、装置、系统、电子设备及存储介质 | |
WO2021209037A1 (zh) | 数据恢复方法及装置 | |
US20140119459A1 (en) | Enhanced video decoding with application layer forward error correction | |
JPWO2015072005A1 (ja) | 通信装置及びシステム及び方法 | |
US9350484B2 (en) | Transport accelerator implementing selective utilization of redundant encoded content data functionality | |
KR102002939B1 (ko) | 주문형 파일 복구 방법 및 시스템 | |
CN111371887B (zh) | 物联网日志传输方法、客户端、服务端、设备及存储介质 | |
CN110545161B (zh) | 一种具有冗余的多媒体数据实时传输方法 | |
CN112804028B (zh) | 一种数据包的传输方法、设备及存储介质 | |
JP2006304138A (ja) | 選択再送型通信装置 | |
WO2021164405A1 (zh) | 数据编解码方法、相关设备及系统 | |
CN115550459A (zh) | 语音数据的发送和接收方法以及相关设备 | |
CN113037437A (zh) | 数据传输方法及装置 | |
Abilov et al. | Data Transmission Model with Lost Fragments Recovery Based on Application Layer ARQ | |
WO2008043315A1 (fr) | Procédé et système d'application à la transmission de données de la technologie de code de correction d'erreurs | |
JP2008092213A (ja) | 受信機、パケット再送方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20200519 Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. Contract record no.: X2021440000031 Denomination of invention: Data transmission method, device, electronic equipment and storage medium License type: Common License Record date: 20210125 |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200519 |