CN102986156B - 编码方法及设备、解码方法及设备、编解码系统 - Google Patents

编码方法及设备、解码方法及设备、编解码系统 Download PDF

Info

Publication number
CN102986156B
CN102986156B CN201180000617.8A CN201180000617A CN102986156B CN 102986156 B CN102986156 B CN 102986156B CN 201180000617 A CN201180000617 A CN 201180000617A CN 102986156 B CN102986156 B CN 102986156B
Authority
CN
China
Prior art keywords
data
data packet
decoding
coding
encoding
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
CN201180000617.8A
Other languages
English (en)
Other versions
CN102986156A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102986156A publication Critical patent/CN102986156A/zh
Application granted granted Critical
Publication of CN102986156B publication Critical patent/CN102986156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/009Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location arrangements specific to transmitters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一种编码方法及设备。其中,编码方法包括:1)编码设备获取待发送的数据分组(101);2)编码设备根据获取到的数据分组以及数据分组对应的编码系数生成数据组合(102);3)编码设备向解码设备发送包含所述数据组合以及所述编码系数的数据包(103)。本发明还提供了一种解码方法及设备、编解码系统。

Description

编码方法及设备、解码方法及设备、编解码系统
技术领域
本发明涉及通信领域,尤其涉及一种编码方法及设备、解码方法及设备、编解码系统。
背景技术
自动重传请求(ARQ,AutomaticRepeatreQuest)协议通过确认和超时两个机制在不可靠服务的基础上实现可靠的信息传输,其包括停止等待ARQ协议和连续ARQ协议。
停止等待ARQ协议中,发送方发送一个数据分组后便等待接收方的确认,收到确认后继续发送数据分组。如果发送方经过一段时间(由超时计时器控制)仍然没有收到确认(ACK),则重发此数据分组。
连续ARQ协议中,发送方在发送完一个数据分组之后不是停下来等待ACK,而是可以连续再发若干个数据分组。如果这时收到了收方发来的ACK,那么还可以接着发送数据分组(数据分组发送个数受发送窗口大小限制),由于减少了等待时间,所以可以在一定程度上提高信道利用率。
现有技术中的停止等待ARQ协议中,发送方需要花费大量的时间等待接收方反馈的ACK,从而降低了信道利用率。
连续ARQ协议虽然减少了发送方的等待时间,但是一旦某个数据分组P丢失或延迟,则需要重传该数据分组P,而且由于接收方只能按顺序接收,所以对于发送方已经发送的位于数据分组P之后的数据分组而言,即使接收方已经成功接收到了这些数据分组,也必须丢弃,而由发送方重新发送,因此发送方往往需要花费大量时间来重传数据分组,从而降低了系统的有效吞吐量。
发明内容
本发明实施例提供了一种编码方法及设备、解码方法及设备、编解码系统,能够提高信道利用率以及系统有效吞吐量。
本发明实施例提供的编码方法,包括:1)编码设备获取待发送的数据分组;2)编码设备根据获取到的数据分组以及数据分组对应的编码系数生成数据组合;3)编码设备向解码设备发送包含所述数据组合以及所述编码系数的数据包。
本发明实施例提供的解码方法,包括:解码设备接收编码设备发送的数据包,所述数据包包含数据组合以及编码系数;解码设备从所述数据包中提取各数据分组的编码系数;当满足预置的解码条件时,解码设备根据提取得到的编码系数对所述数据组合进行解码。
本发明实施例提供的编码设备,包括:获取单元,用于获取待发送的数据分组;编码单元,用于根据获取到的数据分组以及数据分组对应的编码系数生成数据组合;发送单元,用于向解码设备发送包含所述数据组合以及所述编码系数的数据包。
本发明实施例提供的解码设备,包括:数据接收单元,用于接收编码设备发送的数据包,所述数据包包含数据组合以及编码系数;提取单元,用于从所述数据包中提取各数据分组的编码系数;解码单元,用于当满足预置的解码条件时,根据提取得到的编码系数对所述数据组合进行解码。
本发明实施例提供的编解码系统,包括:编码设备,用于获取待发送的数据分组,根据获取到的数据分组以及数据分组对应的编码系数生成数据组合,并向解码设备发送包含所述数据组合以及所述编码系数的数据包;解码设备,用于接收编码设备发送的数据包,所述数据包包含数据组合以及编码系数,从所述数据包中提取各数据分组的编码系数,当满足预置的解码条件时,根据提取得到的编码系数对所述数据组合进行解码。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,编码设备向解码设备发送的是包含数据组合以及编码系数的数据包,而该数据组合是由数据分组以及编码系数生成的,该数据包则可以相当于一个含有未知数的方程,由于有多少个线性无关的方程就可以解出多少个未知数,所以当某一个数据包丢失时,编码设备可以继续发送其他的数据包,而无需重传该丢失的数据包,因此编码设备不需要花费大量时间来重传数据分组,从而能够提高系统的有效吞吐量。
附图说明
图1为本发明编码方法一个实施例示意图;
图2为本发明编码方法另一实施例示意图;
图3为本发明解码方法一个实施例示意图;
图4为本发明解码方法另一实施例示意图;
图5为本发明编解码过程马尔科夫链示意图;
图6为本发明编码设备一个实施例示意图;
图7为本发明编码设备另一实施例示意图;
图8为本发明解码设备一个实施例示意图;
图9为本发明解码设备另一实施例示意图;
图10为本发明编解码系统一个实施例示意图。
具体实施方式
本发明实施例提供了一种编码方法及设备、解码方法及设备、编解码系统,能够提高信道利用率以及系统有效吞吐量。
请参阅图1,本发明编码方法一个实施例包括:
101、编码设备获取待发送的数据分组;
当数据源有数据需要发送时,编码设备可以从数据源获取到待发送到数据分组。
本实施例中,该数据分组为数据源对数据进行标识的单位,例如可以为一个传输控制协议(TCP,TransportControlProtocol)报文。
数据源待发送的数据会被划分为若干个数据分组,这些数据分组顺序的被送达至编码设备进行编码发送,所以编码设备可以不断的从数据源接收到待发送的数据分组。
102、编码设备根据获取到的数据分组以及数据分组对应的编码系数生成数据组合;
编码设备从数据源获取到待发送的数据分组之后,可以获取预置的编码系数,或者可以为各数据分组分别分配编码系数,随后根据这些数据分组以及数据分组对应的编码系数生成数据组合。
本实施例中,该数据组合可以看作是每个数据分组与其对应的编码系数相乘之后,再将各个乘积求和得到的数据。
103、编码设备向解码设备发送包含数据组合以及编码系数的数据包。
当编码设备得到数据组合之后,可以将包含该数据组合以及各数据分组的编码系数的数据包发送至解码设备进行解码。
本实施例中,编码设备向解码设备发送的是包含数据组合以及编码系数的数据包,而该数据组合是由数据分组以及编码系数生成的,该数据包则可以相当于一个含有未知数的方程,由于有多少个线性无关的方程就可以解出多少个未知数,所以当某一个数据包丢失时,编码设备可以继续发送其他的数据包,而无需重传该丢失的数据包,因此编码设备不需要花费大量时间来重传数据分组,从而能够提高系统的有效吞吐量。
为便于理解,下面以一具体实例对本发明编码方法进行详细描述,请参阅图2,本发明编码方法另一实施例包括:
201、编码设备获取待发送的数据分组;
当数据源有数据需要发送时,编码设备可以从数据源获取到待发送到数据分组。
本实施例中,该数据分组为数据源对数据进行标识的单位,例如可以为一个TCP报文,此处仅以TCP报文为例进行说明,可以理解的是,在实际应用中,还可以是其他类似的网络传输协议的报文,具体此处不作限定。
数据源待发送的数据会被划分为若干个数据分组,这些数据分组顺序的被送达至编码设备进行编码发送,所以编码设备可以不断的从数据源接收到待发送的数据分组。
202、编码设备将获取到的数据分组存入编码缓冲区;
每当编码设备接收到数据分组时,编码设备可以判断该数据分组是用于传输数据的分组,还是用于进行链路控制的分组,若确定是进行链路控制的分组,则可以直接发送至解码设备,并结束流程。
若编码设备确定是用于传输数据的分组,则编码设备可以判断编码缓冲区中是否已经存在该数据分组,若不存在,则将该数据分组存入编码缓冲区中,若已存在,则无需再存入编码缓冲区。
需要说明的是,本实施例中,编码设备判断数据分组类型的过程为可选过程,在实际应用中,编码设备也可以不进行判断,而直接将获取到的数据分组存入编码缓冲区中。
203、编码设备为编码缓冲区中的各数据分组分配编码系数;
编码设备可以按照随机算法为编码缓冲区中的各数据分组分配编码系数,该随机算法可以用Rand()函数实现,编码系数的取值范围可以取得足够大,以使得生成的数据组合绝大多数均为线性无关的数据组合,例如该编码系数的取值范围可以为1~256。
204、编码设备根据编码系数对编码缓冲区中的数据分组进行合并得到数据组合;
当编码设备为编码缓冲区中的各数据分组分配编码系数之后,可以根据编码系数对编码缓冲区中的数据分组进行合并得到数据组合,具体的数据组合可以为:∑αmpm
其中,pm表示数据包m,αm表示数据包m对应的编码系数。
205、编码设备将编码系数作为编码头,将数据组合作为有效载荷,生成数据包;
本实施例中,编码设备可以将步骤204得到的数据组合作为有效载荷,将步骤203分配的编码系数作为编码头,生成数据包,则该数据包中包含有数据组合以及编码系数。
206、编码设备向解码设备发送数据包;
编码设备生成数据包之后,可以向解码设备发送该数据包,具体可以通过互联网协议(IP,InternetProtocol)层,或者是其他类似的网络层向解码设备发送该数据包,具体过程此处不作限定。
207、编码设备判断是否达到预置的条件,若是,则执行步骤208,若否,则重复执行步骤202;
本实施例中,该预置的条件可以是上述步骤202至206的执行次数达到冗余参数的向下取整数值,或是达到冗余参数+1,或是冗余参数+2,或是冗余参数-1等,具体情况此处不作限定,只要使得该预置的条件与冗余参数相关即可,本实施例中仅以执行次数达到冗余参数的向下取整数值为例进行说明。
该冗余参数与预置的数据成功接收概率成反比,本实施例中可以为倒数关系。
该数据成功接收概率可以依靠统计和预测得到,在刚开始传输数据包的时候一般设为1,然后根据收到的确认消息(ACK)动态进行更新得到。
当上述步骤202至206的执行次数达到冗余参数的向下取整数值时,则可以执行步骤208,若未达到,则重复执行上述步骤202至206。
本实施例中,编码设备可以根据数据包的往返时间(RTT,RoundTripTime)确定分组丢失率,并根据该分组丢失率对冗余参数进行调整,具体的:
编码设备发送数据包之后可以确定该数据包的RTT,即接收到对该数据包的回应消息的时刻减去发送该数据包的时刻,在编码设备发送数据包的过程中可以跟踪RTT的变化,当RTT变大时,则表示网络可能发生了延迟或堵塞,编码设备可以按照RTT变化的幅度,线性的调整分组丢失率,例如RTT增加了10%时,则分组丢失率可以增加1%,RTT增加了20%时,则分组丢失率可以增加2%,诸如此类。
当分组丢失率提高时,编码设备增加冗余参数的数值,当分组丢失率降低时,编码设备降低冗余参数的数值,例如:
分组丢失率低于10%时,分组丢失率每提高2%,冗余参数的数值可以加1;
分组丢失率在10%~30%时,分组丢失率每提高1%,冗余参数的数值可以加2;
分组丢失率在30%~60%时,分组丢失率每提高1%,冗余参数的数值可以加4;
诸如此类,具体数值此处仅为一个例子,在实际应用中可以根据不同情况进行变化,此处不作限定。
在上述步骤执行过程中,编码设备可能会接收到解码设备发送的ACK,该ACK用于表示特定数据分组已被解码设备处理完毕,则编码设备可以从编码缓冲区中删除该特定数据分组。
本实施例中,该特定数据分组可以是当前的编码缓冲区中编号最小的数据分组。
需要说明的是,由于编码设备可以从数据源获取到新的数据分组,而且当编码设备从解码设备接收到ACK之后可以从编码缓冲区中删除特定的数据分组,所以编码缓冲区中的数据分组是实时动态变化的,每次执行步骤202至206时,编码设备所处理的数据分组可能都会有所不同,但处理方式类似,具体此处不再赘述。
208、结束流程。
当满足预置的条件时,若所有的待发送的数据分组均被处理完成后,则编码缓冲区为空,此时可以结束流程,若编码缓冲区不为空,则还可以继续执行步骤202至步骤207,具体过程此处不再赘述。
本实施例中,编码设备向解码设备发送的是包含数据组合以及编码系数的数据包,而该数据组合是由数据分组以及编码系数生成的,该数据包则可以相当于一个含有未知数的方程,由于有多少个线性无关的方程就可以解出多少个未知数,所以当某一个数据包丢失时,编码设备可以继续发送其他的数据包,而无需重传该丢失的数据包,因此编码设备不需要花费大量时间来重传数据分组,从而能够提高系统的有效吞吐量。
上面从编码设备的角度对本发明编码方法进行了描述,下面从解码设备的角度对本发明解码方法进行描述,请参阅图3,本发明解码方法一个实施例包括:
301、解码设备接收编码设备发送的数据包;
本实施例中,编码设备对编码缓冲区中的数据分组进行编码得到数据包之后,可以向解码设备发送该数据包,则解码设备可以接收编码设备发送的数据包,该数据包中包含有数据组合以及编码系数。
其中,编码系数可以位于数据包的编码头部分,数据组合可以位于数据包的有效载荷部分。
302、解码设备从数据包中提取各数据分组的编码系数;
解码设备接收到数据包之后,可以从编码头中提取出各数据分组的编码系数。
303、当满足预置的解码条件时,解码设备根据提取得到的编码系数对数据组合进行解码。
当编码设备接收到足够的数据包时,则可以根据提取得到的编码系数对数据组合进行解码,从而解码出各数据分组。
本实施例中,编码设备向解码设备发送的是包含数据组合以及编码系数的数据包,而该数据组合是由数据分组以及编码系数生成的,该数据包则可以相当于一个含有未知数的方程,由于有多少个线性无关的方程就可以解出多少个未知数,所以当某一个数据包丢失时,编码设备可以继续发送其他的数据包,而无需重传该丢失的数据包,因此编码设备不需要花费大量时间来重传数据分组,从而能够提高系统的有效吞吐量。
为便于理解,下面以一具体实例对本发明解码方法进行详细描述,请参阅图4,本发明解码方法另一实施例包括:
401、解码设备接收编码设备发送的数据包;
本实施例中的步骤401与前述图3所示实施例中的步骤301所描述的内容类似,具体此处不再赘述。
402、解码设备从数据包中提取各数据分组的编码系数;
解码设备接收到数据包之后,可以从编码头中提取出各数据分组的编码系数。
403、当解码设备接收到第i个数据组合时,解码设备确定第n个数据分组处理完毕;
本实施例中,为便于理解,此处定义“解码设备对某个数据分组处理完毕”的概念:解码设备每成功接收到一个线性无关的数据组合,则会将引起数据组合中一个数据分组被处理完毕,尽管此时解码设备并没有收到这个数据分组本身,但其已具备计算数据组合的能力。
也就是说,由于有多少个线性无关的方程就可以解出多少个未知数,而每个数据组合又可以看作是一个方程,所以解码设备每成功接收到一个线性无关的数据组合,就可以使得一个数据分组被处理完毕,因此,当解码设备接收到第i个数据组合时,解码设备确定第n个数据分组处理完毕,其中,n为接收到的i个数据组合中,线性无关的数据组合的数目。
例如,由于数据分组是顺序发送的,所以当解码设备接收到第一个数据组合时,则可以确定数据分组1已经被处理完毕,当解码设备接收到第二个数据组合时,若该第二个数据组合与第一个数据组合线性无关,则可以确定数据分组2已经被处理完毕,以此类推。
404、解码设备向编码设备发送确认消息;
当解码设备每确定一个数据分组被处理完毕之后,解码设备可以向编码设备发送ACK,该ACK用于表示该数据分组已经被处理完毕,从而使得编码设备可以从编码缓冲区中删除该数据分组。
405、解码设备将数据组合作为有效载荷存入解码缓冲区中;
解码设备可以将数据组合作为有效载荷存入解码缓冲区中。
406、解码设备根据提取得到的编码系数,按照高斯消元法对该解码缓冲区中的有效载荷进行解码。
本实施例中,当满足预置的解码条件时,解码设备可以根据提取得到的编码系数,按照高斯消元法对该解码缓冲区中的有效载荷进行解码。
需要说明的是,本实施例中,当解码设备接收到的数据组合中,线性无关的数据组合的数目大于或等于接收到的数据组合中不同的数据分组的数目时,则解码设备确定满足预置的解码条件。
由于有多少个线性无关的方程就可以解出多少个未知数,所以当解码设备接收到的数据组合中,线性无关的数据组合的数目大于或等于接收到的数据组合中不同的数据分组的数目时,则表示解码设备获取到的线性无关的方程的数目已经大于或等于未知数的数目,则解码设备可以根据提取得到的编码系数,按照高斯消元法对该解码缓冲区中的有效载荷进行解码,从而得到各数据分组。
本实施例中,线性无关的数据组合的数目与数据组合中不同的数据分组的数目之间的关系还可以通过定义“节点知识”和“虚拟队列”来表示。
其中,节点知识就是一个节点(可以看作是解码设备)所能计算的收到所有原始数据分组的数据组合的集合,同时这些数据组合的编码系数向量所形成的向量空间称作该节点的知识空间。
虚拟队列的个数等于接收方(也可以看作是解码设备)的个数,第j条虚拟队列的长度被定义为发送方(也可以看作是编码设备)知识空间的维数和第j个接收方知识空间的维数之差。
本实施例中,编码设备向解码设备发送的是包含数据组合以及编码系数的数据包,而该数据组合是由数据分组以及编码系数生成的,该数据包则可以相当于一个含有未知数的方程,由于有多少个线性无关的方程就可以解出多少个未知数,所以当某一个数据包丢失时,编码设备可以继续发送其他的数据包,而无需重传该丢失的数据包,因此编码设备不需要花费大量时间来重传数据分组,从而能够提高系统的有效吞吐量。
下面从编码设备以及解码设备交互的角度进行说明,具体的:
编码设备从数据源收到数据分组并将数据分组保存在一个代表编码窗口的编码缓冲区中,直到收到解码设备的确认。
编码设备在编码缓冲区中生成并发送数据分组的数据组合,该数据组合的编码系数通过编码头来传输。
对于编码缓冲区中的数据分组,将进行R次随机线性组合(R是冗余参数,R可以为成功接收概率的倒数,其可能不是整数,故在运算时可以将其向下取整),并发送。
由于R决定了数据组合的发送次数,如果R太小,将不足以掩盖数据分组的丢失,会出现大量的超时从而导致吞吐量低下;如果R太大,发送速率会受到编码自身速率的限制,也会降低吞吐量,而且发送太多的线性组合也会阻塞网络,所以,本实施例中的R可以利用RTT的估计值,通过分组丢失率来进行动态的调整。
当解码设备收到一个数据组合时,解码设备可以从编码头中检索出编码系数向量,将其添加到知识空间的基矩阵中,当虚拟队列的长度为零,即编码设备的知识空间的维数和解码设备的知识空间的维数之差为零时,便可解码得到所有的数据分组。
解码设备进行解码时可以使用高斯消元法,一旦解码完成,解码设备可以将这些数据分组按原始顺序传给目的端。此外,解码设备还可以维持一个存储未解码的数据组合的解码缓冲区。解码设备每收到一个新的线性无关的数据组合时,其会通知编码设备删除编码缓冲区中编号最小的一个数据分组,直到编码设备的编码缓冲区中不再有待发送的数据分组。
上述编码设备的编码过程的具体算法可以表述如下:
1)将NUM设置为0,其中NUM为循环次数;
2)如果接收到TCP数据分组,则执行步骤3);否则,等待;
3)若该TCP数据分组是一个用于链接管理的分组,则将其转发给IP层进行发送,然后返回步骤2);
4)如果该TCP数据分组没有在编码缓冲区中,则把其加入编码缓冲区中;
5)NUM=NUM+R;其中,R为冗余参数;
6)重复执行如下步骤6.1)至6.4)N次,其中N为NUM向下取整值;
6.1)为编码缓冲区中的各数据分组生成对应的编码系数;
6.2)根据编码系数在编码缓冲区中生成一个数据组合;
6.3)将包含编码系数的编码头与编码缓冲区中的数据组合进行合并得到数据包;
6.4)将数据包传递给IP层进行发送;
7)将NUM设置为NUM的小数部分;
8)返回步骤2)。
9)接收来自解码设备的ACK,从编码缓冲区中删除已确认的数据分组,并把该ACK转发给数据源。
上述解码设备的解码过程的具体算法可以表述如下:
1)如果接收到数据包,则执行步骤3),如果接收到ACK,则执行步骤2),如果未接收到数据,则等待;
2)若该ACK是一个用于链接管理的分组,则将其转发给IP层进行发送,并返回步骤1);
3)删除数据包的编码头,并检索编码向量;
4)将该编码向量作为新的一行添加到编码系数矩阵中;
5)将有效载荷添加到解码缓冲区中,对解码缓冲区中的内容采用高斯消元法进行解码,若有任何数据分组在运算过程中被解码,则将其转发给目的端,并从解码缓冲区中删除该数据分组。
6)生成一个新的ACK,并发送至编码设备。
为便于理解,下面以一列表的方式对数据编解码过程进行描述,请参阅下述表1:
表1
从上述表1中可以看出:
时间1:编码设备接收到了数据分组P1,编码缓冲区中的数据分组为P1,编码设备直接发送该数据分组P1,由于传输失败,解码设备未能收到任何数据;
时间2:编码设备又接收到了数据分组P2,编码缓冲区中的数据分组为P1,P2,编码设备为P1分配编码系数X2,为P2分配编码系数Y2,则生成数据组合编码设备向解码设备发送该数据组合以及编码系数X2,Y2,解码设备成功接收到了这些信息,则向编码设备发出ACK,表示编号最小的数据分组(即P1)被处理完毕,此时解码设备接收到了一个线性无关的数据组合,但该数据组合中包含两个数据分组,则无法进行解码;
时间3:编码设备又接收到了数据分组P3,由于编码设备还从解码设备接收到了ACK,则编码设备从编码缓冲区中删除P1,则编码缓冲区中还剩下P2,P3,编码设备为P2分配编码系数Y3,为P3分配编码系数Z3,则生成数据组合编码设备向解码设备发送该数据组合以及编码系数Y3,Z3,解码设备成功接收到了这些信息,则向编码设备发出ACK,表示编号最小的数据分组(即P2)被处理完毕,此时解码设备接收到了一个线性无关的数据组合,但该数据组合中包含两个数据分组,则无法进行解码;
时间4:编码设备没有接收到新的数据分组,由于编码设备从解码设备接收到了ACK,则编码设备从编码缓冲区中删除P2,则编码缓冲区中还剩下P3,编码设备直接发送该数据分组P3,解码设备成功接收到了这些信息,则向编码设备发出ACK,表示编号最小的数据分组(即P3)被处理完毕,此时解码设备共接收到了3个线性无关的数据组合,且有3个数据分组,则此时虚拟队列长度为0,解码设备可以进行解码得到3个数据分组P1,P2以及P3。
请参阅图5,图5为时间t结束时第j个虚拟队列长度的马尔科夫链,如果ρ<1,其稳定状态分布为:πk=(1-α)αk,k≥0。
其中,μ为每个接收者无差错地接收分组的概率,λ为伯努利过程的参数。
因此,任一虚拟队列稳定状态时的期望长度为:
lim t → ∞ E [ Q j ( t ) ] = Σ j = 0 ∞ j π j = ( 1 - μ ) · ρ ( 1 - ρ ) .
当有多个解码设备时,每个虚拟队列长度是指编码设备的知识空间维数与该解码设备的知识空间维数之差,所以对于前述所提到的“数据分组被处理完毕即丢弃”的方式,物理队列长度为虚拟队列长度之和,该物理队列长度即可看作是编码设备的编码缓冲区中的数据分组的数目,故物理队列长度期望(即物理队列长度的平均值)为
通过上述的分析可以看出,数据分组被解码设备处理完毕后,编码设备即可从编码缓冲区中删除该数据分组,而现有技术中,编码设备必须等待解码设备对某数据分组解码完成后,才能从编码缓冲区中删除该分组,所以本实施例中的方案能够有效的减少编码缓冲区中的数据分组的数目。
上面对本发明编码方法以及解码方法进行了描述,下面从设备的角度对本发明的编码设备以及解码设备进行描述:
请参阅图6,本发明编码设备一个实施例包括:
获取单元601,用于获取待发送的数据分组;
编码单元602,用于根据获取到的数据分组以及数据分组对应的编码系数生成数据组合;
发送单元603,用于向解码设备发送包含所述数据组合以及所述编码系数的数据包。
下面以一个具体实例对本发明编码设备进行详细描述,请参阅图7,本发明编码设备另一实施例包括:
获取单元701,用于获取待发送的数据分组;
编码单元702,用于根据获取到的数据分组以及数据分组对应的编码系数生成数据组合;
发送单元703,用于向解码设备发送包含所述数据组合以及所述编码系数的数据包。
其中,编码单元702具体用于为所述编码缓冲区中的各数据分组分配编码系数,并根据编码系数对所述编码缓冲区中的数据分组进行合并得到数据组合。
本实施例中的编码设备还可以进一步包括:
生成单元704,用于将所述编码系数作为编码头,将所述数据组合作为有效载荷,生成数据包。
本实施例中的编码设备还可以进一步包括:
控制单元705,用于控制编码单元702,生成单元704以及发送单元703重复执行相应操作直至满足预置条件。
本实施例中满足预置条件可以为:执行次数达到冗余参数的向下取整数值。
本实施例中的编码设备还可以进一步包括:
调整单元706,用于根据该数据包的往返时间确定分组丢失率,当该分组丢失率提高时,增加该冗余参数的数值,当该分组丢失率降低时,降低该冗余参数的数值。
本实施例中的编码设备还可以进一步包括:
接收单元707,用于接收解码设备发送的确认消息,该确认消息用于表示特定数据分组已被解码设备处理完毕;
删除单元708,用于从编码缓冲区中删除该特定数据分组。
为便于理解,下面以一个具体应用场景对本发明编码设备各单元之间的交互过程进行详细描述:
当数据源有数据需要发送时,获取单元701可以从数据源获取到待发送到数据分组。
本实施例中,该数据分组为数据源对数据进行标识的单位,例如可以为一个TCP报文,此处仅以TCP报文为例进行说明,可以理解的是,在实际应用中,还可以是其他类似的网络传输协议的报文,具体此处不作限定。
数据源待发送的数据会被划分为若干个数据分组,这些数据分组顺序的被送达至编码设备进行编码发送,所以获取单元701可以不断的从数据源接收到待发送的数据分组。
每当获取单元701接收到数据分组时,若确定数据分组是用于传输数据的分组,则编码设备可以判断编码缓冲区中是否已经存在该数据分组,若不存在,则将该数据分组存入编码缓冲区中,若已存在,则无需再存入编码缓冲区。
编码单元702可以按照随机算法为编码缓冲区中的各数据分组分配编码系数,该随机算法可以用Rand()函数实现,编码系数的取值范围可以取得足够大,以使得生成的数据组合绝大多数均为线性无关的数据组合,例如该编码系数的取值范围可以为1~256。
当编码单元702为编码缓冲区中的各数据分组分配编码系数之后,可以根据编码系数对编码缓冲区中的数据分组进行合并得到数据组合,具体的数据组合可以为:∑αmPm
其中,Pm表示数据包m,αm表示数据包m对应的编码系数。
本实施例中,生成单元704可以将数据组合作为有效载荷,将编码系数作为编码头,生成数据包,则该数据包中包含有数据组合以及编码系数。
生成单元704生成数据包之后,发送单元703可以向解码设备发送该数据包,具体可以通过IP层,或者是其他类似的网络层向解码设备发送该数据包,具体过程此处不作限定。
本实施例中,控制单元705可以控制编码单元702,生成单元704以及发送单元703重复执行相应操作直至满足预置条件。
该预置的条件可以是执行次数达到冗余参数的向下取整数值,该冗余参数与预置的数据成功接收概率成反比,本实施例中可以为倒数关系。
该数据成功接收概率可以依靠统计和预测得到,在刚开始传输数据包的时候一般设为1,然后根据收到的确认消息(ACK)动态进行更新得到。
本实施例中,调整单元706可以根据数据包的RTT确定分组丢失率,并根据该分组丢失率对冗余参数进行调整,具体的:
当分组丢失率提高时,调整单元706增加冗余参数的数值,当分组丢失率降低时,调整单元706降低冗余参数的数值。
在上述步骤执行过程中,接收单元707可能会接收到解码设备发送的ACK,该ACK用于表示特定数据分组已被解码设备处理完毕,则删除单元708可以从编码缓冲区中删除该特定数据分组。
本实施例中,发送单元703向解码设备发送的是包含数据组合以及编码系数的数据包,而该数据组合是由数据分组以及编码系数生成的,该数据包则可以相当于一个含有未知数的方程,由于有多少个线性无关的方程就可以解出多少个未知数,所以当某一个数据包丢失时,发送单元703可以继续发送其他的数据包,而无需重传该丢失的数据包,因此编码设备不需要花费大量时间来重传数据分组,从而能够提高系统的有效吞吐量。
请参阅图8,本发明解码设备一个实施例包括:
数据接收单元801,用于接收编码设备发送的数据包,该数据包包含数据组合以及编码系数;
提取单元802,用于从该数据包中提取各数据分组的编码系数;
解码单元803,用于当满足预置的解码条件时,根据提取得到的编码系数对该数据组合进行解码。
请参阅图9,本发明解码设备另一实施例包括:
数据接收单元901,用于接收编码设备发送的数据包,该数据包包含数据组合以及编码系数;
提取单元902,用于从该数据包中提取各数据分组的编码系数;
解码单元903,用于当满足预置的解码条件时,根据提取得到的编码系数对该数据组合进行解码。
本实施例中的解码单元903还可以进一步包括:
数据存储模块9031,用于将数据组合作为有效载荷存入解码缓冲区中;
执行模块9032,用于根据提取得到的编码系数,按照高斯消元法对该解码缓冲区中的有效载荷进行解码。
本实施例中的解码设备还可以进一步包括:
确定单元904,用于当数据接收单元接收到第i个数据组合时,确定第n个数据分组处理完毕,该n为接收到的i个数据组合中,线性无关的数据组合的数目;
发送单元905,用于向编码设备发送确认消息,该确认消息用于指示第n个数据分组已经被处理完毕。
为便于理解,下面以一个具体应用场景对本发明解码设备各单元之间的交互过程进行详细描述:
本实施例中,编码设备对编码缓冲区中的数据分组进行编码得到数据包之后,可以向解码设备发送该数据包,则数据接收单元901可以接收编码设备发送的数据包,该数据包中包含有数据组合以及编码系数。
数据接收单元901接收到数据包之后,提取单元902可以从编码头中提取出各数据分组的编码系数。
本实施例中,为便于理解,此处定义“解码设备对某个数据分组处理完毕”的概念:数据接收单元901每成功接收到一个线性无关的数据组合,则会将引起数据组合中一个数据分组被处理完毕,尽管此时解码设备并没有收到这个数据分组本身,但其已具备计算数据组合的能力。
也就是说,由于有多少个线性无关的方程就可以解出多少个未知数,而每个数据组合又可以看作是一个方程,所以解码设备每成功接收到一个线性无关的数据组合,就可以使得一个数据分组被处理完毕,因此,当数据接收单元901接收到第i个数据组合时,确定单元904确定第n个数据分组处理完毕,其中,n为接收到的i个数据组合中,线性无关的数据组合的数目。
例如,由于数据分组是顺序发送的,所以当数据接收单元901接收到第一个数据组合时,则确定单元904可以确定数据分组1已经被处理完毕,当数据接收单元901接收到第二个数据组合时,若该第二个数据组合与第一个数据组合线性无关,则确定单元904可以确定数据分组2已经被处理完毕,以此类推。
当确定单元904每确定一个数据分组被处理完毕之后,发送单元905可以向编码设备发送ACK,该ACK用于表示该数据分组已经被处理完毕,从而使得编码设备可以从编码缓冲区中删除该数据分组。
数据存储模块9031可以将数据组合作为有效载荷存入解码缓冲区中。
本实施例中,当满足预置的解码条件时,执行模块9032可以根据提取得到的编码系数,按照高斯消元法对该解码缓冲区中的有效载荷进行解码。
需要说明的是,本实施例中,当数据接收单元901接收到的数据组合中,线性无关的数据组合的数目大于或等于接收到的数据组合中不同的数据分组的数目时,则可以确定满足预置的解码条件。
本实施例中,编码设备向解码设备发送的是包含数据组合以及编码系数的数据包,而该数据组合是由数据分组以及编码系数生成的,该数据包则可以相当于一个含有未知数的方程,由于有多少个线性无关的方程就可以解出多少个未知数,所以当某一个数据包丢失时,编码设备可以继续发送其他的数据包,而无需重传该丢失的数据包,因此编码设备不需要花费大量时间来重传数据分组,从而能够提高系统的有效吞吐量。
下面介绍本发明编解码系统,请参阅图10,本发明编解码系统一个实施例包括:
编码设备1001,用于获取待发送的数据分组,根据获取到的数据分组以及数据分组对应的编码系数生成数据组合,并向解码设备1002发送包含该数据组合以及该编码系数的数据包;
解码设备1002,用于接收编码设备1001发送的数据包,该数据包包含数据组合以及编码系数,从该数据包中提取各数据分组的编码系数,当满足预置的解码条件时,根据提取得到的编码系数对该数据组合进行解码。
本实施例中的编码设备1001可以如前述图6或图7所示实施例中描述的编码设备,本实施例中的解码设备1002可以如前述图8或图9所示实施例中描述的解码设备,具体此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种编码方法及设备、解码方法及设备、编解码系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。

Claims (19)

1.一种编码方法,其特征在于,包括:
1)编码设备获取待发送的数据分组;
2)编码设备根据获取到的数据分组以及数据分组对应的编码系数生成数据组合;
3)编码设备向解码设备发送包含所述数据组合以及所述编码系数的数据包;
所述编码设备重复执行上述步骤2)至3),直至满足预置条件;
所述满足预置条件为:执行次数达到冗余参数的向下取整数值,所述冗余参数与预置的数据成功接收概率成反比,为倒数关系;
编码设备根据所述数据包的往返时间确定分组丢失率;
当所述分组丢失率提高时,编码设备增加所述冗余参数的数值,当所述分组丢失率降低时,编码设备降低所述冗余参数的数值。
2.根据权利要求1所述的方法,其特征在于,所述步骤2)包括:
编码设备为编码缓冲区中的各数据分组分配编码系数,并根据编码系数对所述编码缓冲区中的数据分组进行合并得到数据组合。
3.根据权利要求2所述的方法,其特征在于,所述根据编码系数对所述编码缓冲区中的数据分组进行合并得到数据组合包括:
编码设备将每个数据分组与其对应的编码系数相乘;
编码设备将各个乘积求和得到数据组合。
4.根据权利要求1所述的方法,其特征在于,所述步骤3)之前包括:
编码设备将所述编码系数作为编码头,将所述数据组合作为有效载荷,生成数据包。
5.根据权利要求1所述的方法,其特征在于,所述编码设备根据所述数据包的往返时间确定分组丢失率包括:
编码设备动态获取数据包的往返时间;
当所述数据包的往返时间增加时,编码设备增加所述分组丢失率,当所述数据包的往返时间减少时,编码设备减少所述分组丢失率。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述步骤3)之后包括:
编码设备接收解码设备发送的确认消息,所述确认消息用于表示特定数据分组已被解码设备处理完毕;
编码设备从编码缓冲区中删除所述特定数据分组。
7.根据权利要求6所述的方法,其特征在于,所述特定数据分组为当前的编码缓冲区中编号最小的数据分组。
8.一种解码方法,其特征在于,包括:
解码设备接收编码设备发送的数据包,所述数据包包含数据组合以及编码系数;
解码设备从所述数据包中提取各数据分组的编码系数;
当满足预置的解码条件时,解码设备根据提取得到的编码系数对所述数据组合进行解码;
其中,当解码设备接收到的数据组合中,线性无关的数据组合的数目大于或等于接收到的数据组合中不同的数据分组的数目时,则解码设备确定满足预置的解码条件。
9.根据权利要求8所述的方法,其特征在于,所述数据包中,所述编码系数作为编码头,所述数据组合作为有效载荷。
10.根据权利要求8或9所述的方法,其特征在于,所述解码设备根据提取得到的编码系数对所述数据组合进行解码包括:
解码设备将数据组合作为有效载荷存入解码缓冲区中;
解码设备根据提取得到的编码系数,按照高斯消元法对所述解码缓冲区中的有效载荷进行解码。
11.根据权利要求8或9所述的方法,其特征在于,所述解码设备根据提取得到的编码系数对所述数据组合进行解码之前包括:
当解码设备接收到第i个数据组合时,解码设备确定第n个数据分组处理完毕,所述n为接收到的i个数据组合中,线性无关的数据组合的数目;
解码设备向编码设备发送确认消息,所述确认消息用于指示第n个数据分组已经被处理完毕。
12.一种编码设备,其特征在于,包括:
获取单元,用于获取待发送的数据分组;
编码单元,用于根据获取到的数据分组以及数据分组对应的编码系数生成数据组合;
发送单元,用于向解码设备发送包含所述数据组合以及所述编码系数的数据包;
控制单元,用于控制所述编码单元以及发送单元重复执行相应操作直至满足预置条件;
所述满足预置条件为:执行次数达到冗余参数的向下取整数值,所述冗余参数与预置的数据成功接收概率成反比,为倒数关系;
调整单元,用于根据所述数据包的往返时间确定分组丢失率,当所述分组丢失率提高时,增加所述冗余参数的数值,当所述分组丢失率降低时,降低所述冗余参数的数值。
13.根据权利要求12所述的编码设备,其特征在于,所述编码单元具体用于为所述编码缓冲区中的各数据分组分配编码系数,并根据编码系数对所述编码缓冲区中的数据分组进行合并得到数据组合。
14.根据权利要求12所述的编码设备,其特征在于,所述编码设备还包括:
生成单元,用于将所述编码系数作为编码头,将所述数据组合作为有效载荷,生成数据包。
15.根据权利要求12至14中任一项所述的编码设备,其特征在于,所述编码设备还包括:
接收单元,用于接收解码设备发送的确认消息,所述确认消息用于表示特定数据分组已被解码设备处理完毕;
删除单元,用于从编码缓冲区中删除所述特定数据分组。
16.一种解码设备,其特征在于,包括:
数据接收单元,用于接收编码设备发送的数据包,所述数据包包含数据组合以及编码系数;
提取单元,用于从所述数据包中提取各数据分组的编码系数;
解码单元,用于当满足预置的解码条件时,根据提取得到的编码系数对所述数据组合进行解码;
其中,当接收到的数据组合中,线性无关的数据组合的数目大于或等于接收到的数据组合中不同的数据分组的数目时,则解码单元确定满足预置的解码条件。
17.根据权利要求16所述的解码设备,其特征在于,所述解码单元包括:
数据存储模块,用于将数据组合作为有效载荷存入解码缓冲区中;
执行模块,用于根据提取得到的编码系数,按照高斯消元法对所述解码缓冲区中的有效载荷进行解码。
18.根据权利要求16或17所述的解码设备,其特征在于,所述解码设备还包括:
确定单元,用于当数据接收单元接收到第i个数据组合时,确定第n个数据分组处理完毕,所述n为接收到的i个数据组合中,线性无关的数据组合的数目;
发送单元,用于向编码设备发送确认消息,所述确认消息用于指示第n个数据分组已经被处理完毕。
19.一种编解码系统,其特征在于,包括:
编码设备,用于获取待发送的数据分组,根据获取到的数据分组以及数据分组对应的编码系数生成数据组合,并向解码设备发送包含所述数据组合以及所述编码系数的数据包,所述编码设备重复执行上述根据获取到的数据分组以及数据分组对应的编码系数生成数据组合,并向解码设备发送包含所述数据组合以及所述编码系数的数据包的步骤,直至满足预置条件,所述满足预置条件为:执行次数达到冗余参数的向下取整数值,所述冗余参数与预置的数据成功接收概率成反比,为倒数关系,编码设备根据所述数据包的往返时间确定分组丢失率,当所述分组丢失率提高时,编码设备增加所述冗余参数的数值,当所述分组丢失率降低时,编码设备降低所述冗余参数的数值;
解码设备,用于接收编码设备发送的数据包,所述数据包包含数据组合以及编码系数,从所述数据包中提取各数据分组的编码系数,当满足预置的解码条件时,根据提取得到的编码系数对所述数据组合进行解码。
CN201180000617.8A 2011-05-11 2011-05-11 编码方法及设备、解码方法及设备、编解码系统 Active CN102986156B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/073922 WO2011124167A2 (zh) 2011-05-11 2011-05-11 编码方法及设备、解码方法及设备、编解码系统

Publications (2)

Publication Number Publication Date
CN102986156A CN102986156A (zh) 2013-03-20
CN102986156B true CN102986156B (zh) 2016-01-20

Family

ID=44763319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180000617.8A Active CN102986156B (zh) 2011-05-11 2011-05-11 编码方法及设备、解码方法及设备、编解码系统

Country Status (2)

Country Link
CN (1) CN102986156B (zh)
WO (1) WO2011124167A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015180066A1 (zh) * 2014-05-28 2015-12-03 华为技术有限公司 一种无线链路控制传输方法及设备
WO2017219216A1 (zh) * 2016-06-20 2017-12-28 华为技术有限公司 一种数据传输方法、相关设备及系统
CN112703793B (zh) * 2018-07-17 2024-04-02 上海诺基亚贝尔股份有限公司 用于早期数据传输的方法、设备以及计算机可读介质
CN109951255A (zh) * 2019-03-27 2019-06-28 深圳市网心科技有限公司 一种基于tcp的数据传输方法、系统、源设备、及目标设备
CN115529105A (zh) * 2021-06-25 2022-12-27 华为技术有限公司 一种网络编码方法及装置
CN116505984A (zh) * 2022-01-18 2023-07-28 维沃移动通信有限公司 解码方法、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026553A (zh) * 2005-11-09 2007-08-29 索尼株式会社 分组传输装置、通信系统和程序
CN101621353A (zh) * 2008-07-03 2010-01-06 华为技术有限公司 一种随机线性网络编码的方法、装置和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006020826A2 (en) * 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
CN101777960B (zh) * 2008-11-17 2013-08-14 华为终端有限公司 音频编码方法、音频解码方法、相关装置及通信系统
CN101505201B (zh) * 2009-03-18 2011-08-31 吕晓雯 一种差错控制方法
CN101510783B (zh) * 2009-03-26 2011-06-15 北京理工大学 一种基于有限域的多进制喷泉编码和译码方法
CN102026000B (zh) * 2011-01-06 2012-07-04 西安电子科技大学 像素域-变换域联合的分布式视频编码系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026553A (zh) * 2005-11-09 2007-08-29 索尼株式会社 分组传输装置、通信系统和程序
CN101621353A (zh) * 2008-07-03 2010-01-06 华为技术有限公司 一种随机线性网络编码的方法、装置和系统

Also Published As

Publication number Publication date
WO2011124167A2 (zh) 2011-10-13
WO2011124167A3 (zh) 2012-04-05
CN102986156A (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
CN107508655B (zh) 一种自适应端到端网络编码传输方法
US10009259B2 (en) Multi-path data transfer using network coding
CN102986156B (zh) 编码方法及设备、解码方法及设备、编解码系统
CN107888342B (zh) 一种网络实时视频传输方法及装置
EP1786136B1 (en) Packet retransmission apparatus, communication system and program
EP3342073B1 (en) Random linear network encoded data transmission
EP2611056B1 (en) Data retransmission method, apparatus and system
JP2003521155A (ja) 無線ネットワーク・システムおよび方法
WO2016045332A1 (zh) 编码参数的调整、反馈信息的处理方法及装置
CN110391879B (zh) 数据传输网络的丢包恢复方法、装置和计算机设备
CN107634908B (zh) 一种数据传输的方法和设备
CN105871736A (zh) 一种封包低延迟传输方法
CN107592185B (zh) 一种适用于网络编码传输控制协议的前向重传方法
US20100008350A1 (en) Method and device of transmitting and parsing data in wireless communication network
US9219574B2 (en) Apparatus and method for data transmission
CN106301714B (zh) 一种数据传输方法及装置
CN114745042B (zh) 宽窄带一体化卫星网络数据传输的方法和装置
CN106027208A (zh) 一种基于反馈的网络编码tcp解码方法及装置
CN111385055B (zh) 一种数据传输方法和装置
JP7067544B2 (ja) 通信システム、通信装置、方法およびプログラム
CN109039541B (zh) 一种基于aos通信系统丢包率最小化的链路自适应优化方法
Sayenko et al. Performance analysis of the IEEE 802.16 ARQ mechanism
CN109605383B (zh) 一种信息通信方法、机器人及存储介质
JP6011813B2 (ja) 通信装置およびその通信制御方法
JP2009273094A (ja) データ通信システム、データ通信端末、データ通信方法、およびプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant