CN112751644B - 数据传输方法、装置及系统、电子设备 - Google Patents

数据传输方法、装置及系统、电子设备 Download PDF

Info

Publication number
CN112751644B
CN112751644B CN201911037372.0A CN201911037372A CN112751644B CN 112751644 B CN112751644 B CN 112751644B CN 201911037372 A CN201911037372 A CN 201911037372A CN 112751644 B CN112751644 B CN 112751644B
Authority
CN
China
Prior art keywords
data
packets
data transmission
encoded
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.)
Active
Application number
CN201911037372.0A
Other languages
English (en)
Other versions
CN112751644A (zh
Inventor
梁俊斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911037372.0A priority Critical patent/CN112751644B/zh
Publication of CN112751644A publication Critical patent/CN112751644A/zh
Application granted granted Critical
Publication of CN112751644B publication Critical patent/CN112751644B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0033Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0036Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

提供了一种数据传输方法、装置及系统、电子设备。该数据传输方法包括:将第一数据包划分为第一数量的子数据包;基于数据编码冗余度对第一数量的子数据包进行编码,以获得第二数量的编码数据包,其中第二数量大于第一数量;通过第三数量的数据传输链路,传输第二数量的编码数据包。通过该方法能够降低传输的数据所占用的带宽并改进传输质量。

Description

数据传输方法、装置及系统、电子设备
技术领域
本公开涉及数据传输技术领域,更具体地涉及一种数据传输方法、装置及系统、以及电子设备。
背景技术
随着通信技术的不断发展,网络中传输的数据的量也在大幅增长。目前,正在研究数据传输技术以降低传输的数据所占用的带宽并改进传输质量。
发明内容
根据本公开的一个方面,提供一种数据传输方法。该数据传输方法包括:将第一数据包划分为第一数量的子数据包;基于数据编码冗余度对第一数量的子数据包进行编码,以获得第二数量的编码数据包,其中第二数量大于第一数量;通过第三数量的数据传输链路,传输第二数量的编码数据包。
根据本公开的另一个方面,提供一种数据传输方法。该数据传输方法包括:通过第三数量的数据传输链路接收第六数量的编码数据包,其中,所述第六数量的编码数据包是第二数量的编码数据包中的至少一部分,并且其中,第二数量的编码数据包是由发送端通过将第一数据包划分为第一数量的子数据包并基于数据编码冗余度对第一数量的子数据包进行编码而获得的。
根据本公开的另一个方面,提供一种数据传输装置。该数据传输装置包括:划分模块,被配置为将第一数据包划分为第一数量的子数据包;编码模块,被配置为基于数据编码冗余度对第一数量的子数据包进行编码以获得第二数量的编码数据包,其中第二数量大于第一数量;以及传输模块:被配置为通过第三数量的数据传输链路,传输第二数量的编码数据包。
根据本公开的另一个方面,提供一种数据传输装置。该数据传输装置包括:接收模块,被配置为通过第三数量的数据传输链路接收第六数量的编码数据包,其中,第六数量的编码数据包是第二数量的编码数据包中的至少一部分,并且其中,第二数量的编码数据包是由发送端通过将第一数据包划分为第一数量的子数据包并基于数据编码冗余度对第一数量的子数据包进行编码而获得的。
根据本公开的另一个方面,提供一种数据传输系统。该数据传输系统包括:如上包括划分模块和编码模块的数据传输装置;以及如上包括接收模块的数据传输装置。
根据本公开的另一个方面,提供一种电子设备。该电子设备包括:一个或多个处理器;和存储器,用于存储一个或多个计算机程序。当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的数据传输方法。
根据本公开的另一个方面,提供一种计算机可读存储介质,其上存储有一个或多个计算机程序。当一个或多个计算机程序被处理器执行时实现如上所述的数据传输方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对本公开实施例的附图作简单地介绍。明显地,下面描述的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了单路径数据传输方式的示意图;
图2示出了多路径数据传输方式的示意图;
图3示出了根据本公开的一些实施例的数据传输方法的原理的示意图;
图4示出了根据本公开的一些实施例的数据传输方法的流程图;
图5示出了根据本公开的一些实施例的数据传输方法的流程图;
图6示出了根据本公开的一些实施例的数据传输方法的流程图;
图7示出了根据本公开的一些实施例的数据传输方法的流程图;
图8示出了根据本公开的一些实施例的数据传输方法的流程图;
图9示出了根据本公开的一些实施例的数据传输方法的流程图;
图10示出了根据本公开的一些实施例的数据传输方法的流程图;
图11示出了根据本公开的一些实施例的数据传输装置的框图;
图12示出了根据本公开的一些实施例的数据传输装置的框图;
图13示出了根据本公开的一些实施例的数据传输系统的框图;以及
图14示出了根据本公开的一些实施例的电子设备的框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
这里用于描述本发明的实施例的术语并非旨在限制和/或限定本发明的范围。
例如,除非另外定义,本公开使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
应该理解的是,本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。除非上下文另外清楚地指出,否则单数形式“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。
将进一步理解的是,术语“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
数据(诸如音频数据、图像数据或视频数据等)的传输方式可以包括单路径数据传输方式和多路径数据传输方式。
图1示出了单路径数据传输方式的示意图。
参考图1,以原始录音的原始音频信号作为原始数据信号为例来描述单路径数据传输方式。首先,发送端对原始数据信号(例如,诸如原始录音的原始音频信号)进行信源编码,例如,通过对原始音频信号进行语音压缩编码得到压缩语音数据包。接着,通过对压缩语音数据包进行信道编码(例如,前向纠错(Forward Error Correction,FEC)编码)生成编码语音数据包。然后,将经过信道编码后获得的编码语音数据包通过单个数据传输链路发送到接收端。
相应地,在接收端处,对接收到的编码语音数据包进行信道解码(例如,FEC解码)和信源解码(例如,语音解码),从而获得原始数据信号(例如,诸如原始录音的原始音频信号)。由于数据传输过程中可能存在网络丢包,在丢包数量在特定的范围内时可以通过FEC解码完全恢复丢失的压缩语音数据包,从而可以经过语音解码后获得原始音频信号。然而,一般地,FEC编码的数据编码冗余度是基于接收端处的丢包率与数据编码冗余度的映射表来确定的。具体地,丢包率越大则数据编码冗余度越高,例如,20%的丢包率可以对应于100%的数据编码冗余度,而40%的丢包率可以对应于200%的数据编码冗余度等。另外,丢包率受到数据传输链路的质量的影响。
由此,单路径数据传输方式的数据传输的可靠性取决于发送端与接收端之间的数据传输链路的质量。如果数据传输链路的质量较高,即丢包率较低,则可以通过诸如FEC编解码的前向纠错技术来完全恢复丢失的数据包。如果数据传输链路的质量较低,即丢包率较高,则可能无法完全恢复丢失的数据包。例如,在通过包括诸如路由器的无线局域网(Wireless Local Area Network,WLAN)进行通信的情况下,当路由器出现大量数据包堆积导致网络拥塞时有可能会出现连续的数据包丢失。另外,由于进行FEC解码要求在接收端收到足够多的数据,而等待数据包的过程会导致额外的时延,导致通信时延增加。例如,在发送端与接收端之间进行语音通话的情况下,等待数据包的过程会导致额外的时延,导致通话时延增加。另外,在一些情况下,FEC编码的数据编码冗余度是基于数据编码冗余度与丢包率之间的映射表来确定的,然而与成功完成FEC解码所需的数据编码冗余度不一定相符。
需要说明,在本公开的各种实施例中,术语“发送端”可以指要将诸如音频信号或视频信号的原始数据信号发送到另一设备的设备,而术语“接收端”可以指要从另一设备接收诸如音频信号或视频信号的原始数据信号的设备。在本公开的各种实施例中,发送端和接收端之间的数据传输链路(或数据传输路径)可以是在发送端与接收端之间通信最初建立时确定的,或者可以是在发送端与接收端之间的通信过程中确定的。在本公开的各种实施例中,发送端和接收端之间可以通过包括有线通信(诸如电力线通信、光纤通信等)或无线通信(诸如移动通信、微波通信、蓝牙通信、红外通信、近场通信(Near FieldCommunication,NFC)、Wi-Fi通信等)等的各种通信技术进行通信。
图2示出了多路径数据传输方式的示意图。
参考图2,仍以原始录音的原始音频信号作为原始数据信号为例来描述多路径数据传输方式。多路径数据传输方式是将经过信源编码(例如,诸如原始录音的原始音频信号)获得的压缩数据包进行复制得到相同的多个压缩数据包,然后通过多个数据传输链路传输。接收端分别通过多个数据传输链路接收多个压缩数据包,然后分别对各个压缩数据包进行信源解码(例如,语音解码),从而获得原始数据信号(例如,诸如原始录音的原始音频信号)。理想情况下,即在接收端处无网络丢包的情况下,接收端将接收到其数量与数据传输链路的数量相同的数据包。因此,即使出现网络丢包,只要多个数据传输链路中的至少一个数据传输链路成功将数据包发送到接收端(即,对于该数据传输链路没有发生网络丢包),则接收端就能通过信源解码(例如,语音解码)获得原始数据信号(例如,诸如原始录音的原始音频信号)。
由于多路径数据传输方式是同时发送重复的多个压缩数据包,因为多个数据传输链路同时出现丢包的概率远低于单个数据传输链路出现丢包的概率,因此能够有效的降低网络丢包对通信质量的影响。然而,同时发送多个压缩数据包会导致网络带宽的增加。另外,由于上述多路径数据传输方式没有有效的检测各个数据传输链路的质量,因此无法确保所选择的用于传输的数据传输路径的质量都是可用和相对可靠的。
本公开的一些实施例提供了一种数据传输方法、装置及系统、电子设备以及计算机可读存储介质,以在进行数据传输时降低传输的数据所占用的带宽并改进传输质量。应了解,根据本公开实施例的数据传输方法、装置及系统可以应用于音频或视频数据的传输,尤其可以应用于实时音视频传输,例如语音通话、视频通话、音视频直播或广播等业务场景。
图3示出了根据本公开的一些实施例的数据传输方法的原理的示意图。
参考图3,仍以原始录音的原始音频信号作为原始数据信号为例来描述根据本公开的一些实施例的数据传输方法的原理。首先,发送端对原始数据信号(例如,诸如原始录音的原始音频信号)进行信源编码,例如,通过对原始音频信号进行语音压缩编码得到压缩语音数据包。然后,对压缩语音数据包进行分块,即,将压缩语音数据包划分成多个子数据包。接下来,对多个子数据包进行信道编码(例如,前向纠错(Forward Error Correction,FEC)编码)生成编码的子数据包(编码的子数据包在下文中被称为编码数据包)。然后,通过多个数据传输链路传输多个编码的子数据包。
相应地,在接收端处,对接收到的多个编码的子数据包进行信道解码(例如,FEC解码)和信源解码(例如,语音解码),从而获得原始数据信号(例如,诸如原始录音的原始音频信号)。
本公开的实施例通过将原始数据包进行分块并且对分块得到的子数据包进行基于数据编码冗余度的编码,然后在每个数据传输路径中传输分配到其中的一部分子数据包。由于基于数据编码冗余度的编码能有效解决在某些数据传输路径中的丢包问题,所以不需要向所有数据传输路径分发完整的数据包,因此数据传输所占用的带宽较小。
图4示出了根据本公开的一些实施例的数据传输方法的流程图。
参考图4,首先,在步骤S401,将第一数据包划分为第一数量的子数据包。
例如,第一数据包可以是通过对原始数据信号(例如,音频信号或视频信号)进行信源编码(例如,音频或视频编码)获得的压缩数据包。例如,数据包可以被包括在数据帧中。再例如,数据包可以包括在一个或多个音频帧、或者一个或多个视频帧中。
在一些实施方式中,在步骤S401中,可以将第一数据包划分为大小相等的多个子数据包,子数据包的数量为第一数量。在一些情况下,当存在其大小小于其他子数据包的大小的子数据包时,可以对该子数据包进行补零处理,以使得各个子数据包的大小相等。
在一些示例中,第一数量可以是数据传输链路当中可用于传输的数据传输链路的数量,或者大于数据传输链路的数量(数据传输链路的数量在下文中被称为第三数量)。
接下来,在步骤S403中,基于数据编码冗余度对第一数量的子数据包进行编码,以获得第二数量的编码数据包。第二数量可以大于第一数量。
在一些实施方式中,可以使用纠错编码(error correcting coding)基于数据编码冗余度对第一数量的子数据包进行编码。例如,纠错编码可以通过诸如自动请求重发(Automatic Repeat reQuest,ARQ)、FEC或混合纠错(Hybrid Error Correction,HEC)的各种方式来实现。例如,纠错编码的类型可以包括诸如汉明(Hamming)编码、循环冗余校验(Cyclic Redundancy Check,CRC)编码、BCH编码和RS(Reed-Solomon)编码等。下面将以RS编码为例说明基于数据编码冗余度对第一数量的子数据包进行编码的一种示例。
例如,假设要被编码的子数据包的数量为3个(即第一数量为3),分别是第一子数据包、第二子数据包、第三子数据包,并且假设RS编码的数据编码冗余度为2/3,即冗余包的数量为2,并且编码后获得的编码数据包的数量为5(即第二数量为5)。为了便于解释,假设各个子数据包内有3位数据,即第一子数据包内的数据为(x1,y1,z1),第二子数据包内的数据为(x2,y2,z2),第三子数据包内的数据为(x3,y3,z3),分别将这三个子数据包的第一位数据提取出来组成一行三列的行向量a1为(x1,x2,x3),分别将这三个子数据包的第二位数据提取出来组成行向量a2为(y1,y2,y3),并且分别将这三个子数据包的第三位数据提取出来组成行向量a3为(z1,z2,z3)。为了生成数据编码冗余度为2/3的数据包,需要构建一个三行五列的矩阵A,其中矩阵A的列数5为子数据包的数量与冗余包的数量的和。矩阵A的行与行之间线性无关。例如,矩阵A可以为如下所示的范德蒙(Vandermonde)矩阵:
Figure BDA0002251896900000071
将a1、a2、a3分别乘以矩阵A,即进行以下的矩阵乘法操作:
Figure BDA0002251896900000072
Figure BDA0002251896900000073
Figure BDA0002251896900000074
Figure BDA0002251896900000075
Figure BDA0002251896900000076
Figure BDA0002251896900000077
可以得到三个一行五列的行向量:b1=(x′1,x′2,x′3,x′4,x′5),b2=(y′1,y′2,y′3,y′4,y′5),b3=(z′1,z′2,z′3,z′4,z′5)。将三个行向量各自的第一位数据取出组成第一编码数据包:(x′1,y′1,z′1)。以同样的方式可以生成第二编码数据包:(x′2,y′2,z′2)、第三编码数据包:(x′3,y′3,z′3)、第四编码数据包:(x′4,y′4,z′4)、第五编码数据包:(x′5,y′5,z′5),从而获得第二数量(即,5个)的编码数据包,其中第二数量大于第一数量。由于矩阵A的行与行之间线性无关,上述5个方程只需任取3个就可解方程,即接收端只需要接收到任意3个编码数据包就可以获得原始子数据包。
虽然以上描述了基于数据编码冗余度对第一数量的子数据包进行编码的一种示例,然而本公开不限于此,可以采用各种编码方法来基于数据编码冗余度对第一数量的子数据包进行编码,以获得第二数量的编码数据包,其中第二数量大于第一数量。
然后,步骤S405,通过第三数量的数据传输链路,传输第二数量的编码数据包。
在一些实施方式中,每个数据传输链路要传输的编码数据包的数量可以是预定值。可替换地,每个数据传输链路要传输的编码数据包的数量可以根据预定规则确定。例如,可以通过第三数量来均分第二数量来获得每个数据传输链路要传输的编码数据包的数量。例如,每个数据传输链路要传输的编码数据包的数量可以是通过将第二数量除以第三数量而获得的值。
在一些实施方式中,每个数据传输链路要传输的编码数据包的数量可以是要在单位时间内传输的编码数据包的数量。
在一些实施方式中,可以采用之后将描述的基于反馈的方式来确定每个数据传输链路要传输的编码数据包的数量。
本公开的实施例通过将原始数据包进行分块并且对分块得到的子数据包进行基于数据编码冗余度的编码,然后在每个数据传输路径中传输分配到其中的一部分子数据包。由于基于数据编码冗余度的编码能有效解决在某些数据传输路径中的丢包问题,所以不需要向所有数据传输路径分发完整的数据包,因此数据传输所占用的带宽较小。
图4所示的方法可以用于发送端的操作。下面将结合图5描述可以用于接收端的操作的与图4所示的方法相对应的方法。
图5示出了根据本公开的一些实施例的数据传输方法的流程图。
参考图5,首先,在步骤S501,通过第三数量的数据传输链路接收第六数量的编码数据包,其中,第六数量的编码数据包是发送端发送的第二数量的编码数据包中的至少一部分,第二数量的编码数据包是由发送端通过将第一数据包划分为第一数量的子数据包并基于数据编码冗余度对第一数量的子数据包进行编码而获得的。
接下来,在步骤S503,对接收到的第六数量的编码数据包进行解码以获得子数据包。例如,在发送端采用FEC编码对第一数量的子数据包进行编码来获得第二数量的编码数据包的情况下,可以采用FEC解码来从接收到的编码数据包中恢复第一数量的子数据包。
以上描述了根据本公开的一些实施例的基于数据包分块机制的数据传输方法。一般地,编码的数据编码冗余度影响数据传输的可靠性和网络带宽的利用率。过大的数据编码冗余度会导致网络带宽的利用率低,甚至容易导致阻塞网络,而过小的数据编码冗余度则不利于在存在突发的网络丢包情况下的丢包的恢复。下面将结合图6和图7描述根据本公开的一些实施例的包括数据编码冗余度控制的数据传输方法。
图6示出了根据本公开的一些实施例的数据传输方法的流程图。
参考图6,首先,在步骤S601,将第一数据包划分为第一数量的子数据包。
接下来,在步骤S603,基于数据编码冗余度对第一数量的子数据包进行编码,以获得第二数量的编码数据包,其中第二数量大于第一数量。
然后,在步骤S605,通过第三数量的数据传输链路,传输第二数量的编码数据包。
例如,步骤S601、步骤S603和步骤S605的各种实施方式可以分别参考图4中描述的步骤S401、步骤S403和步骤S405,这里省略对其的进一步描述。
接下来,在步骤S607,获得更新的数据编码冗余度,更新的数据编码冗余度是基于接收端对所述第二数量的编码数据包的接收情况而确定的。
在一些实施方式中,步骤S607可以包括从接收端接收与接收情况有关的第一反馈信息并且基于第一反馈信息确定更新的数据编码冗余度。例如,第一反馈信息可以包括指示对第二数量的编码数据包的接收情况的第一指示信息。例如,第一指示信息可以包括指示接收端在预定时间段内接收到的编码数据包的数量的信息。例如,预定时间段可以被确定为从接收到第一个编码数据包开始经过的时间。例如,接收端对所有数据传输链路传输来的编码数据包进行检测,从检测到属于当前数据帧的第一个编码数据包的到达时刻开始的预定时间段内统计总共接收到的属于该数据帧的编码数据包的数量。例如,可以根据需要设置预定时间段。例如,可以根据传输业务的实时性要求来设置预定时间段。例如,对于诸如基于互联网协议(Internet Protocol,IP)的语音(Voice over IP,VoIP)的通话业务,因为其实时性较高,所以可以设置较小的预定时间段,例如60ms。例如,对于广播或者直播类业务,因为其对实时性要求较低,因此可以设置较大的预定时间段。
在一些示例中,基于第一指示信息确定更新的数据编码冗余度可以包括:在接收端在预定时间段内接收到的编码数据包的数量小于第一数量的情况下,增加数据编码冗余度以获得更新的数据编码冗余度。通过增加数据编码冗余度,确保在接收端可以恢复第一数量的子数据包。
在一些示例中,基于第一指示信息确定更新的数据编码冗余度可以包括:在接收端在预定时间段内接收到的编码数据包的数量大于第一数量与预定阈值比例的乘积的情况下,减少所述数据编码冗余度以获得更新的数据编码冗余度。例如,预定阈值比例可以是大于或等于2的值。例如,在接收端在预定时间段内接收到的编码数据包的数量大于第一数量的两倍时,可以认为在接收端在预定时间段内接收到的编码数据包的数量远大于第一数量,表示当前的数据编码冗余度已经远大于解码的要求,因此可以适当减少数据编码冗余度。
在一些示例中,在接收端在预定时间段内接收到的编码数据包的数量是对在预定时间段内接收到的编码数据包的实际数量进行滤波处理后获得的值。在一些情况下,由于数据传输链路是不稳定的,因此在每个数据帧中统计的编码数据包的数量会存在一定的波动,所以可能需要对统计的编码数据包的数量进行滤波处理。滤波处理的方法可以包括低通滤波、中值滤波、高斯滤波或卡尔曼滤波等。下面简单描述一种对在每个数据帧中统计的编码数据包的数量进行滤波的方法。假设统计的编码数据包的数量为SumN,统计的编码数据包的数量的平滑值为SumN_flt,如果SumN大于SumN_flt,则将SumN_flt更新为SumN,否则将SumN_flt更新为(fac·SumN_flt+(1-fac)·SumN),其中fac是取值范围为0~1的平滑系数,例如,fac可以为0.93。
在一些实施方式中,更新的数据编码冗余度被确定为
Figure BDA0002251896900000101
和预定最小数据编码冗余度中的较大者。例如,可以通过式(1)表示更新的数据编码冗余度:
Figure BDA0002251896900000102
式(1)中a为预定安全系数,K为第一数量,SumN为在预定时间段内接收端接收到的编码数据包的数量,R为当前的数据编码冗余度,Rmin为预定最小数据编码冗余度,并且R′为更新的数据编码冗余度。可替换地,在对SumN进行滤波处理的情况下,更新的数据编码冗余度被确定为
Figure BDA0002251896900000103
和预定最小数据编码冗余度中的较大者。例如,可以通过式(2)表示更新的数据编码冗余度:
Figure BDA0002251896900000111
式(2)中a为预定安全系数,K为第一数量,SumN_flt为对SumN进行滤波处理后获得的值。在一些示例中,预定最小数据编码冗余度可以根据需要进行设置。例如,预定最小数据编码冗余度可以被设置为
Figure BDA0002251896900000112
在一些实施方式中,步骤S607可以包括从接收端接收与接收情况有关的第一反馈信息,其中第一反馈信息包括更新的数据编码冗余度,其中更新的数据编码冗余度是基于接收端对第二数量的编码数据包的接收情况而确定的。例如,更新的数据编码冗余度是基于接收端在预定时间段内接收到的编码数据包的数量来确定的。在这种情况下,可以直接从接收端接收更新的数据编码冗余度,而不接收指示对第二数量的编码数据包的接收情况的第一指示信息。也就是说,可以由接收端基于对第二数量的编码数据包的接收情况来确定更新的数据编码冗余度。在这种情况下,接收端可以根据在预定时间段内接收到的编码数据包的数量来确定更新的数据编码冗余度。
接下来,对于第一数据包之后的传输,在步骤S609,将第二数据包划分为第四数量的子数据包,第二数据包是与第一数据包相邻的待传输数据包。
在一些实施方式中,在步骤S609中,可以采用与步骤S601中相同或不同的方法来对第二数据包进行划分,以获得第四数量的子数据包。例如,步骤S609中获得的子数据包的数量可以与步骤S601中获得的子数据包的数量相同或不同。也就是说,第四数量可以与第一数量相同或不同。
在一些实施方式中,第一数据包包括在第一数据帧中,第二数据包包括在紧接在该第一数据帧之后的第二数据帧中。
然后,在步骤S611,基于更新的数据编码冗余度,对第二数据包所划分的第四数量的子数据包进行编码,获得第五数量的编码数据包。
例如,步骤S611中对子数据包进行编码的方法可以参考步骤S403中的描述,这里不再赘述。
在一些实施方式中,第五数量可以与第二数量不同。例如,第五数量可以小于第二数量。例如,第五数量可以大于第二数量。
在一些实施方式中,第五数量可以与第二数量相同。
在一些实施方式中,在第四数量与第一数量相同的情况下,第五数量可以与第二数量相同或不同。
最后,在步骤S613,通过第三数量的数据传输链路,传输第五数量的编码数据包。
例如,步骤S613中对编码数据包进行传输的方法可以参考步骤S405中的描述,这里不再赘述。
本公开的一些实施例可以根据接收端的接收情况的反馈控制数据编码冗余度,能够确保更合适的编码的数据编码冗余度,从而在保证数据传输的可靠性的同时提升网络带宽的利用率。
图6所示的方法可以用于发送端的操作。下面将结合图7描述可以用于接收端的操作的与图6所示的方法相对应的方法。
图7示出了根据本公开的一些实施例的数据传输方法的流程图。
参考图7,首先,在步骤S701,通过第三数量的数据传输链路从发送端接收第六数量的编码数据包,其中,第六数量的编码数据包是第二数量的编码数据包中的至少一部分,第二数量的编码数据包是由发送端通过将第一数据包划分为第一数量的子数据包并基于数据编码冗余度对第一数量的子数据包进行编码而获得的。
接下来,在步骤S703,基于第六数量和第二数量确定对第二数量的编码数据包的接收情况,并发送与接收情况有关的第一反馈信息。
在一些实施方式中,第一反馈信息可以包括指示对第二数量的编码数据包的接收情况的第一指示信息。例如,第一指示信息可以包括指示接收端在预定时间段内接收到的编码数据包的数量的信息。例如,预定时间段可以被确定为从接收到第一个编码数据包开始经过的时间。例如,接收端可以对所有数据传输链路传输来的编码数据包进行检测,从检测到属于当前数据帧的第一个编码数据包的到达时刻开始的预定时间段内统计总共接收到的属于该数据帧的编码数据包的数量。例如,可以根据需要设置预定时间段。例如,可以根据传输业务的实时性要求来设置预定时间段。
在一些示例中,在接收端在预定时间段内接收到的编码数据包的数量是对在预定时间段内接收到的编码数据包的实际数量进行滤波处理后获得的值。在一些情况下,由于数据传输链路是不稳定的,因此在每个数据帧中统计的编码数据包的数量会存在一定的波动,所以可能需要对统计的编码数据包的数量进行滤波处理。滤波处理的方法可以包括低通滤波、中值滤波、高斯滤波或卡尔曼滤波等。
在一些实施方式中,第一反馈信息可以包括更新的数据编码冗余度,其中更新的数据编码冗余度是基于接收端对第二数量的编码数据包的接收情况而确定的。例如,更新的数据编码冗余度是基于接收端在预定时间段内接收到的编码数据包的数量来确定的。在这种情况下,可以直接向发送端发送更新的数据编码冗余度,而不发送指示对第二数量的编码数据包的接收情况的第一指示信息。也就是说,可以由接收端基于对第二数量的编码数据包的接收情况来确定更新的数据编码冗余度。在这种情况下,接收端可以根据在预定时间段内接收到的编码数据包的数量来确定更新的数据编码冗余度。
例如,关于基于第一指示信息确定更新的数据编码冗余度的实施方式可以参考之前的描述,这里不再赘述。
在一些实施方式中,接收端可以在完成属于当前数据帧的编码数据包的接收后发送该第一反馈信息。
本公开的一些实施例可以根据接收端的接收情况的反馈控制数据编码冗余度,能够确保更合适的编码的数据编码冗余度,从而在保证数据传输的可靠性的同时提升网络带宽的利用率。
以上描述了根据本公开的一些实施例的包括数据编码冗余度控制的数据传输方法。一般地,由于各个数据传输路径的丢包率和时延抖动存在差异,并且各个数据传输路径的链路质量随着时间变化,因此有必要对各个数据传输路径传输的编码数据包的数量进行调节。下面将结合图8和图9描述根据本公开的一些实施例的包括数据包分发控制的数据传输方法。
图8示出了根据本公开的一些实施例的数据传输方法。
参考图8,首先,在步骤S801,将第一数据包划分为第一数量的子数据包。
接下来,在步骤S803,基于数据编码冗余度对第一数量的子数据包进行编码,以获得第二数量的编码数据包,其中第二数量大于第一数量。
接下来,在步骤S805,通过第三数量的数据传输链路,传输第二数量的编码数据包。
例如,步骤S801、步骤S803和步骤S805的各种实施方式可以分别参考图3中描述的步骤S401、步骤S403和步骤S405,这里省略对其的进一步描述。
接下来,在步骤S807,对于每个数据传输链路,获得要传输的编码数据包的更新的编码数据包数量,其中,更新的编码数据包数量是基于每个数据传输链路的链路质量来确定的。
在一些实施方式中,链路质量与链路丢包率和链路时延抖动中的至少一个有关。
在一些示例中,链路丢包率可以通过在预定时间间隔内接收端实际接收到的编码数据包的数量和接收端应当接收到的编码数据包的数量来表示。例如,可以通过下面的式(3)计算链路丢包率:
Ch_Lossrate=1–Ch_Recv/Ch_Need, 式(3)
上式中,Ch_Lossrate表示链路丢包率,Ch_Recv表示在预定时间间隔内接收端实际接收到的编码数据包的数量,并且Ch_Need表示在预定时间间隔内接收端应当接收到的编码数据包的数量。例如,在预定时间间隔内接收端应当接收到的编码数据包的数量可以与发送端处在相应的时间段内实际传输的编码数据包的数量相对应。也就是说,在预定时间间隔内接收端应当接收到的编码数据包的数量可以是在理想情况下(即,不存在丢包的情况下)应当接收到的编码数据包的数量。例如,预定时间间隔可以根据需要进行设置。
在一些示例中,链路时延抖动指示数据传输链路的时延变化。例如,假设相邻的四个编码数据包:数据包D1、数据包D2、数据包D3、数据包D4到达接收端的时刻分别为T1、T2、T3和T4,则相应的两个相邻的编码数据包的时延抖动分别为T2-T1、T3-T2、T4-T3。例如,可以基于相邻的编码数据包的到达接收端的时间的差来计算链路时延抖动值。例如,可以利用下面的式(4)计算数据传输链路的链路时延抖动值:
Figure BDA0002251896900000141
式(4)中,Ch_Jitter′为计算的链路时延抖动值,Ch_Jitter为数据传输链路的链路时延抖动值的历史值,Tn和Tn-1分别为任意两个相邻的编码数据包到达接收端的时刻,b和c为预设的平滑系数,其中b<c。例如,b可以为0.7,c可以为0.9。需要说明,以上计算数据传输链路的链路时延抖动值的方法仅是一种示例,还可以采用已知的其它方法来计算链路时延抖动值。
在一些示例中,链路质量可以根据链路丢包率和链路时延抖动中的至少一个来确定。例如,链路质量可以根据链路丢包率和链路时延抖动两者来确定。例如,可以根据以下的式(5)来计算数据传输链路的链路质量的值:
Figure BDA0002251896900000151
式(5)中,Ch_Q为数据传输链路的链路质量,q为权重系数,Ch_Lossrate为数据传输链路的链路丢包率,Ch_Jitter′为数据传输链路的链路时延抖动值,JMax为允许的最大时延抖动值。例如,q可以为0.5。例如,可以分别根据式(3)和式(4)来计算链路丢包率和链路时延抖动值。需要说明,以上计算数据传输链路的链路质量的方法仅是一种示例,还可以采用已知的其它方法来计算链路质量。
在一些实施方式中,步骤S807可以包括从接收端接收与对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量有关的第二反馈信息,并基于第二反馈信息确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量。
在一些示例中,第二反馈信息可以包括指示每个数据传输链路的链路质量的第二指示信息。例如,在链路质量与链路丢包率和链路时延抖动中的至少一个有关的情况下,第二指示信息可以包括指示链路丢包率的信息、指示链路时延抖动的信息、或指示链路质量的信息中的至少一个。例如,链路丢包率、链路时延抖动和链路质量的计算方法可以参考之前的描述。
在一些示例中,可以基于以下方法来确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量:对于链路丢包率更小的数据传输链路,分配更大数量的子数据包,并且对于链路丢包率更大的数据传输链路,分配更小数量的子数据包。
在一些示例中,可以基于以下方法来确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量:对于时延抖动更小的数据传输链路,分配更大数量的子数据包,并且对于时延抖动更大的数据传输链路,分配更小数量的子数据包。
在一些示例中,可以基于以下方法来确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量:对于链路质量的值更大的数据传输链路,分配更大数量的子数据包,并且对于链路质量的值更小的数据传输链路,分配更小数量的子数据包。
例如,可以根据下面的式(6)和式(7)计算对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量:
Ch_Send(i)=K′·Ch_Prob(i) 式(6),
Figure BDA0002251896900000161
式(6)和(7)中,K′为要传输的编码数据包的总数量,i和j为数据传输链路的编号,ChN为数据传输链路的总数量,Ch_Send(i)为第i数据传输链路的要传输的编码数据包的更新的编码数据包数量,Ch_Q(i)为第i数据传输链路的链路质量的值,Ch_Q(j)为第j数据传输链路的链路质量的值。例如,可以根据式(5)来计算Ch_Q(·)。
在一些实施方式中,第二反馈信息可以包括对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量,其中,对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量是基于数据传输链路的链路质量来确定的。在这种情况下,接收端向发送端反馈对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量,而不反馈第二指示信息。也就是说,可以由接收端基于数据传输链路的链路质量来确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量,并向发送端反馈。
在一些实施方式中,每个数据传输链路要传输的编码数据包的数量可以是对于每个数据传输链路的、要在单位时间内传输的编码数据包的更新的编码数据包数量。
接下来,在步骤S809,将第二数据包划分为第四数量的子数据包,第二数据包是与第一数据包相邻的待传输数据包。
然后,在步骤S811,基于数据编码冗余度,对第二数据包所划分的第四数量的子数据包进行编码,获得第五数量的编码数据包。
最后,在步骤S813,通过第三数量的数据传输链路,传输第五数量的编码数据包。
在一些实施方式中,可以基于在步骤S807中获得的对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量,在第三数量的数据传输链路上传输第二数量的编码数据包。也就是说,可以根据步骤S807确定分配到相应数据传输链路的编码数据包的数量。
通过以上数据包分发控制方法,可以基于各个数据传输链路的链路质量动态控制各个数据传输链路传输的编码数据包的数量,从而能够更好的利用网络资源并提升数据传输效率。
图8所示的方法可以用于发送端的操作。下面将结合图9描述可以用于接收端的操作的与图8所示的方法相对应的方法。
图9示出了根据本公开的一些实施例的数据传输方法的流程图。
参考图9,首先,在步骤S901,通过第三数量的数据传输链路从发送端接收第六数量的编码数据包,其中,第六数量的编码数据包是第二数量的编码数据包中的至少一部分,第二数量的编码数据包是由发送端通过将第一数据包划分为第一数量的子数据包并基于数据编码冗余度对第一数量的子数据包进行编码而获得的。
接下来,在步骤S903,向发送端发送与对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量有关的第二反馈信息,其中,更新的编码数据包数量是基于每个数据传输链路的链路质量来确定的。
在一些实施方式中,链路质量与链路丢包率和链路时延抖动中的至少一个有关。链路丢包率、链路时延抖动和链路质量的计算方法可以参考之前的描述,这里不再赘述。
在一些实施方式中,第二反馈信息可以包括指示每个数据传输链路的链路质量的第二指示信息。例如,在链路质量与链路丢包率和链路时延抖动中的至少一个有关的情况下,第二指示信息可以包括指示链路丢包率的信息、指示链路时延抖动的信息、或指示链路质量的信息中的至少一个。例如,链路丢包率、链路时延抖动和链路质量的计算方法可以参考之前的描述。在这种情况下,由发送端根据第二反馈信息确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量。
在一些实施方式中,第二反馈信息可以包括对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量,其中,对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量是基于数据传输链路的链路质量来确定的。在这种情况下,接收端向发送端反馈对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量,而不反馈第二指示信息。也就是说,可以由接收端基于数据传输链路的链路质量来确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量,并向发送端反馈。基于数据传输链路的链路质量来确定对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量的方法可以参考之前的描述,这里不再赘述。
在一些实施方式中,接收端可以在完成属于当前数据帧的编码数据包的接收后发送第二反馈信息。
通过以上数据包分发控制方法,可以基于各个数据传输链路的链路质量动态控制各个数据传输链路传输的编码数据包的数量,从而能够更好的利用网络资源并提升数据传输效率。
虽然以上单独地描述了包括数据编码冗余度控制的数据传输方法以及包括数据包分发控制的数据传输方法,然而本领域技术人员应当理解,可以同时应用数据编码冗余度控制和数据包分发控制。下面将结合图9描述根据本公开的实施例的包括数据编码冗余度控制和数据包分发控制的数据传输方法的一种示例。
图10描述了根据本公开的实施例的数据传输方法的流程图。
参考图10,步骤S1001、S1002、S1003、S1006、S1008、S1009和S1010可以为发送端处的操作,并且步骤S1004、S1005和S1007可以为接收端处的操作。
在步骤S1001,发送端将第一数据包划分为第一数量的子数据包。
在步骤S1002,发送端基于数据编码冗余度对第一数量的子数据包进行编码,以获得第二数量的编码数据包,其中第二数量大于第一数量。
在步骤S1003,发送端通过第三数量的数据传输链路,传输第二数量的编码数据包。在步骤S1004,接收端通过第三数量的数据传输链路接收第六数量的编码数据包,第六数量的编码数据包是第二数量的编码数据包中的至少一部分。
在步骤1005,接收端基于第二数量和第六数量确定对第二数量的编码数据包的接收情况,并向发送端发送与接收情况有关的第一反馈信息。
在步骤S1006,发送端基于第一反馈信息获得更新的数据编码冗余度。
在步骤1007,接收端向发送端发送与对于每个数据传输链路的、要传输的编码数据包的更新的编码数据包数量有关的第二反馈信息,其中,更新的编码数据包数量是基于每个数据传输链路的链路质量来确定的。
在步骤S1008,对于每个数据传输链路,发送端基于第二反馈信息获得要传输的编码数据包的更新的编码数据包数量。
在步骤S1009,发送端基于更新的数据编码冗余度,对第二数据包所划分的第四数量的子数据包进行编码,获得第五数量的编码数据包。
在步骤S1010,基于步骤S1008,通过第三数量的数据传输链路传输第五数量的编码数据包。
以上各个步骤的实施方式可以参考之前的描述。例如,步骤S1001~S1004的各种实施方式可以参考图4-5的描述,步骤S1005~S1010的各种实施方式可以参考图6-9的描述。
图10的实施例应用了数据编码冗余度控制和数据包分发控制两者,因此一方面可以确保更合适的编码的数据编码冗余度,从而在保证数据传输的可靠性的同时提升网络带宽的利用率,另一方面可以基于各个数据传输链路的链路质量动态控制各个数据传输链路传输的编码数据包的数量,从而能够更好的利用网络资源并提升数据传输效率。
以上描述了根据本公开的各种实施例的数据传输方法。应当理解,附图中的流程图和框图图示了根据本公开的各种实施例的方法、装置、系统和计算机可读存储介质的可能实现的体系架构、功能和操作。例如,流程图或框图中的每个框可以表示包括用于实现指定的逻辑功能的至少一个可执行指令的模块、段或代码部分。还应该注意的是,在一些替代实施方式中,方框中提到的功能可以不按照附图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。还将注意到,框图和/或流程图的每个框以及框图和/或流程图中的框的组合可以由执行指定功能或动作的基于专用硬件的系统、或专用硬件和计算机指令的组合来实现。
图11示出了根据本公开的一些实施例的数据传输装置的框图。
参考图11,根据本公开的一些实施例的数据传输装置110可以包括划分模块1101、编码模块1102和传输模块1103。
划分模块1101可以被配置为将第一数据包划分为第一数量的子数据包。
编码模块1102可以被配置为基于数据编码冗余度对第一数量的子数据包进行编码以获得第二数量的编码数据包,其中第二数量大于第一数量。
传输模块可以被配置为通过第三数量的数据传输链路,传输第二数量的编码数据包1103。
在一些实施方式中,数据传输装置110还可以包括用于执行图3-9中任一个所述的实施例中的一个或多个操作的附加模块。
图12示出了根据本公开的一些实施例的数据传输装置的框图。
参考图12,根据本公开的一些实施例的数据传输装置120可以包括接收模块1201和解码模式1202。
接收模块1201可以被配置为通过第三数量的数据传输链路从发送端接收第六数量的编码数据包,其中,第六数量的编码数据包是第二数量的编码数据包中的至少一部分,第二数量的编码数据包是由发送端通过将第一数据包划分为第一数量的子数据包并基于数据编码冗余度对第一数量的子数据包进行编码而获得的。
解码模块1202可以被配置为对接收到的第六数量的编码数据包进行解码以获得子数据包。
在一些实施方式中,数据传输装置120还可以包括被配置为执行如图3-9中任一个所述的实施例中的一个或多个操作的附加模块。
图13示出了根据本公开的一些实施例的数据传输系统的框图。
参考图13,根据本公开的一些实施例的数据传输系统130可以包括用作发送端的数据传输装置110和用作接收端的数据传输装置120。
图14示出了根据本公开的一些实施例的电子设备的框图。
参考图14,电子设备140可以包括一个或多个处理器1401和存储器1402。存储器1402可以用于存储一个或多个计算机程序。
处理器1401可以包括各种处理电路,诸如但不限于专用处理器、中央处理单元、应用处理器或通信处理器中的一种或更多种。处理器1401可以对电子设备140的至少一个其他组件执行控制、和/或执行与通信相关的操作或数据处理。
存储器1402可以包括易失性和/或非易失性存储器。
在一些实施方式中,当一个或多个计算机程序被一个或多个处理器1401执行时,使得一个或多个处理器1401实现如图3、5、7和9中任一个所描述的实施例的数据传输方法。例如,在这些情况下,电子设备130可以用作发送端。
在一些实施方式中,当一个或多个计算机程序被一个或多个处理器1401执行时,使得一个或多个处理器1401实现如图4、6、8和9中任一个所描述的实施例的数据传输方法。例如,在这些情况下,电子设备140可以用作接收端。
例如,本公开的实施例中的电子设备140可以包括诸如智能电话、平板个人计算机(PC)、服务器、移动电话、视频电话、电子书阅读器、台式PC、膝上型计算机、上网本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、移动医疗设备、照相机或可穿戴设备(例如头戴式设备(HMD)、电子衣服、电子手环、电子项链、电子饰品、电子纹身或智能手表)等。
如本文所使用的,术语“模块”可以包括在硬件、软件或固件和/或其任何组合中配置的单元,并且可以与其他术语(例如逻辑、逻辑块、部件或电路)互换使用。模块可以是单个整体部件或执行一个或更多个功能的最小单元或部件。该模块可以机械地或电子地实现,并且可以包括但不限于已知的或将要被开发的执行某些操作的专用处理器、CPU、专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)或可编程逻辑器件。
根据本公开的实施例,设备(例如,模块或其功能)或方法(例如,操作或步骤)的至少一部分可以被实现为例如以程序模块的形式存储在计算机可读存储介质(例如,存储器1302)中的指令。当由处理器(例如,处理器1301)执行该指令时,该指令可以使处理器能够执行相应的功能。计算机可读介质可以包括例如硬盘、软盘、磁介质、光学记录介质、DVD、磁光介质。该指令可以包括由编译器创建的代码或者可由解释器执行的代码。根据本公开的各种实施例的模块或编程模块可以包括上述组件中的至少一个或更多个,可以省略其中的一些,或者还包括其他附加的组件。由根据本公开的各种实施例的模块、编程模块或其他组件执行的操作可以顺序地、并行地、重复地或启发地执行,或者至少一些操作可以以不同的顺序被执行或被省略,或者可以添加其他操作。
以上所述仅是本发明的示范性实施方式,而非用于限制本发明的保护范围,本发明的保护范围由所附的权利要求确定。

Claims (15)

1.一种数据传输方法,包括:
将第一数据包划分为第一数量的子数据包;
基于数据编码冗余度,确定第二数量,其中所述第二数量大于所述第一数量;
从所述第一数量的子数据包中的每个子数据包中分别提取部分数据,以重新组成第一数量的数据集合;
对所述第一数量的数据集合中的每个数据集合进行编码,以获得第二数量的编码数据包;
通过第三数量的数据传输链路,传输所述第二数量的编码数据包,其中,每条数据传输链路上传输的每个编码数据包均不相同。
2.如权利要求1所述的数据传输方法,在传输所述第二数量的编码数据包之后,还包括:
获得更新的数据编码冗余度,所述更新的数据编码冗余度是基于接收端对所述第二数量的编码数据包的接收情况而确定的;
将第二数据包划分为第四数量的子数据包,所述第二数据包是与所述第一数据包相邻的待传输数据包;
基于更新的数据编码冗余度,对第二数据包所划分的所述第四数量的子数据包进行编码,获得第五数量的编码数据包;
通过所述第三数量的数据传输链路,传输所述第五数量的编码数据包。
3.根据权利要求2所述的方法,其中,所述获得更新的数据编码冗余度包括:
从所述接收端接收指示所述接收端在预定时间段内接收到的编码数据包的数量的第一指示信息;以及
基于所述第一指示信息确定所述更新的数据编码冗余度。
4.根据权利要求2所述的方法,其中,所述更新的数据编码冗余度被确定为
Figure FDA0003848947270000011
和预定最小数据编码冗余度中的较大者,其中a为预定安全系数,K为所述第一数量,SumN为在预定时间段内所述接收端接收到的编码数据包的数量,并且R为当前的数据编码冗余度。
5.根据权利要求1所述的方法,在传输所述第二数量的编码数据包之后,还包括:
对于每个数据传输链路,获得要传输的编码数据包的更新的编码数据包数量,其中,更新的编码数据包数量是基于每个数据传输链路的链路质量来确定的,其中所述链路质量与链路丢包率和链路时延抖动中的至少一个有关。
6.根据权利要求1所述的方法,其中,所述第一数据包为音频数据包或视频数据包,并且
其中,所述编码包括纠错编码,所述纠错编码包括汉明编码、循环冗余校验编码、BCH编码和RS编码中的至少一个。
7.一种数据传输方法,包括:
通过第三数量的数据传输链路接收第六数量的编码数据包,其中,所述第六数量的编码数据包中的每个编码数据包互不相同;
对所述第六数量的编码数据包进行解码,以得到子数据包;
其中,所述第六数量的编码数据包是第二数量的编码数据包中的至少一部分,并且
其中,所述第二数量的编码数据包是由发送端通过将第一数据包划分为第一数量的子数据包并从所述第一数量的子数据包中的每个子数据包中分别提取部分数据以重新组成第一数量的数据集合,并对所述第一数量的数据集合中的每个数据集合进行编码而获得的;
其中,所述第二数量是基于数据编码冗余度确定的,所述第二数量大于所述第一数量。
8.根据权利要求7所述的方法,还包括:
基于所述第六数量和所述第二数量确定对所述第二数量的编码数据包的接收情况;以及
向发送端发送与所述接收情况有关的第一反馈信息,
其中,发送端基于第一反馈信息对所述数据编码冗余度进行更新。
9.根据权利要求8所述的方法,其中,所述第一反馈信息包括指示在预定时间段内接收到的编码数据包的数量的第一指示信息。
10.根据权利要求7所述的方法,还包括:
发送包括每个数据传输链路的链路质量的第二反馈信息,
其中,所述链路质量与链路丢包率和链路时延抖动中的至少一个有关,并且
其中,对于每个数据传输链路,要由发送端传输的编码数据包的更新的编码数据包数量是基于所述第二反馈信息来确定的。
11.一种数据传输装置,包括:
划分模块,被配置为将第一数据包划分为第一数量的子数据包;
编码模块,被配置为基于数据编码冗余度,确定第二数量,其中所述第二数量大于所述第一数量;
从所述第一数量的子数据包中的每个子数据包中分别提取部分数据,以重新组成第一数量的数据集合;
对所述第一数量的数据集合中的每个数据集合进行编码,以获得第二数量的编码数据包;以及
传输模块:被配置为通过第三数量的数据传输链路,传输所述第二数量的编码数据包,其中,每条数据传输链路上传输的每个编码数据包均不相同。
12.一种数据传输装置,包括:
接收模块,被配置为通过第三数量的数据传输链路接收第六数量的编码数据包,其中,所述第六数量的编码数据包中的每个编码数据包互不相同,
解码模块,被配置为对所述第六数量的编码数据包进行解码,以得到子数据包;
其中,所述第六数量的编码数据包是第二数量的编码数据包中的至少一部分,并且
其中,所述第二数量的编码数据包是通过将第一数据包划分为第一数量的子数据包并从所述第一数量的子数据包中的每个子数据包中分别提取部分数据以重新组成第一数量的数据集合,并对所述第一数量的数据集合中的每个数据集合进行编码而获得的;
其中,所述第二数量是基于数据编码冗余度确定的,所述第二数量大于所述第一数量。
13.一种数据传输系统,包括:
如权利要求11所述的数据传输装置,用作发送端;和
如权利要求12所述的数据传输装置,用作接收端。
14.一种电子设备,包括:
一个或多个处理器;和
存储器,用于存储一个或多个计算机程序,
其中,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的数据传输方法,或者
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求7至10中任一项所述的数据传输方法。
15.一种计算机可读存储介质,其上存储有一个或多个计算机程序,
其中,当所述一个或多个计算机程序被处理器执行时实现如权利要求1至6中任一项所述的数据传输方法,或者
当所述一个或多个计算机程序被处理器执行时实现如权利要求7至10中任一项所述的数据传输方法。
CN201911037372.0A 2019-10-29 2019-10-29 数据传输方法、装置及系统、电子设备 Active CN112751644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911037372.0A CN112751644B (zh) 2019-10-29 2019-10-29 数据传输方法、装置及系统、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911037372.0A CN112751644B (zh) 2019-10-29 2019-10-29 数据传输方法、装置及系统、电子设备

Publications (2)

Publication Number Publication Date
CN112751644A CN112751644A (zh) 2021-05-04
CN112751644B true CN112751644B (zh) 2022-10-28

Family

ID=75640924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911037372.0A Active CN112751644B (zh) 2019-10-29 2019-10-29 数据传输方法、装置及系统、电子设备

Country Status (1)

Country Link
CN (1) CN112751644B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190080A (zh) * 2021-04-02 2022-10-14 维沃移动通信有限公司 拥塞控制方法、装置及通信设备
CN114115748B (zh) * 2021-12-06 2022-06-14 广州市和理信通信息科技有限公司 基于大数据信息安全的智能管理方法及大数据信息系统
CN114553622A (zh) * 2022-02-08 2022-05-27 珠海格力电器股份有限公司 语音数据传输方法、装置及语音终端设备
CN117081973B (zh) * 2023-10-13 2024-02-02 腾讯科技(深圳)有限公司 数据包传输方法、装置、设备、介质和计算机程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108964849A (zh) * 2018-07-03 2018-12-07 深圳睿云网络人工智能技术有限公司 数据传输方法、电子设备及存储介质
CN110087140A (zh) * 2018-01-26 2019-08-02 腾讯科技(深圳)有限公司 一种传输流媒体数据的方法、装置、介质及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5397700B2 (ja) * 2010-04-09 2014-01-22 ソニー株式会社 情報処理装置および方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110087140A (zh) * 2018-01-26 2019-08-02 腾讯科技(深圳)有限公司 一种传输流媒体数据的方法、装置、介质及设备
CN108964849A (zh) * 2018-07-03 2018-12-07 深圳睿云网络人工智能技术有限公司 数据传输方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN112751644A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
CN112751644B (zh) 数据传输方法、装置及系统、电子设备
US20200412483A1 (en) Xor forward error correction for isolated and burst losses over a software-defined-wide area network
CN111149316B (zh) 用于优化多路径数据传输的负载的系统和方法
US10361810B2 (en) Data packet transmission/reception apparatus and method
EP1116335B1 (en) Lost packet recovery method for packet transmission protocols
AU781130B2 (en) Group chain reaction encoder with variable number of associated input data for each output group code
EP2719103B1 (en) Adaptive generation of correction data units
CN103023813B (zh) 抖动缓冲器
CN111800218B (zh) 一种数据流的传输方法和设备
US11424861B2 (en) System and technique for sliding window network coding-based packet generation
EP1900134A1 (en) Method and system for optimizing forward error correction of multimedia streaming over wireless networks
KR20150049052A (ko) 데이터 전송 장치 및 방법
US8819513B2 (en) Lost real-time media packet recovery
US20190007060A1 (en) Correction data
MX2014013560A (es) Aparato y metodo de transmision y recepcion de paquete en sistema de radiofusion y comunicacion.
KR20150045346A (ko) 이동 통신 시스템에서 멀티미디어 데이터 송수신 방법 및 장치
JP7408152B2 (ja) メディア内容に基づく自己適応システムコードfec符号化および復号化方法、装置、システムおよび媒体
US20130339824A1 (en) Correction Data
US20140029630A1 (en) Fractional threshold encoding and aggregation
US20130198582A1 (en) Supercharged codes
EP3794755B1 (en) Multipath coding apparatus and related techniques
US10797726B2 (en) Network data prediction method, network data processing device and network data processing method
CN109005011B (zh) 一种用于水声网络的数据传输方法、系统及可读存储介质
KR20170075127A (ko) 패킷손실 복구처리를 위한 경량화된 채널코딩 방법
Al Sebae et al. On modelling network coded ARQ-based channels

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40044535

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant