CN113541856A - 数据恢复方法及装置 - Google Patents

数据恢复方法及装置 Download PDF

Info

Publication number
CN113541856A
CN113541856A CN202010298281.9A CN202010298281A CN113541856A CN 113541856 A CN113541856 A CN 113541856A CN 202010298281 A CN202010298281 A CN 202010298281A CN 113541856 A CN113541856 A CN 113541856A
Authority
CN
China
Prior art keywords
information
coding
packet
unit
data
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
Application number
CN202010298281.9A
Other languages
English (en)
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
Priority to CN202010298281.9A priority Critical patent/CN113541856A/zh
Priority to PCT/CN2021/087743 priority patent/WO2021209037A1/zh
Publication of CN113541856A publication Critical patent/CN113541856A/zh
Pending legal-status Critical Current

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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本申请公开了一种数据恢复方法和装置,其中方法包括:发送端发送第一编码数据,第一编码数据中包括多个数据单元分组,多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,冗余编码单元根据多个数据单元分组中的第一分组和第一分组的δ个前向分组中的原始数据单元编码生成。接收端接收第二编码数据,并根据现存冗余编码单元对第二编码数据中丢失数据进行恢复,其中第二编码数据为第一编码数据中除去丢失数据单元和丢失冗余编码单元的数据。本申请公开了通过数据单元分组的前向分组生成数据单元分组对应的冗余编码单元的方法,降低了丢包恢复时延,同时提升了对δ个前向分组中的原始数据的保护,进而保证了对丢失数据单元的恢复能力。

Description

数据恢复方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种数据恢复方法及装置。
背景技术
前向纠删码是一种通过对数据编码从而进行丢失数据恢复的方法。它以原始数据单元为单位编码产生新的冗余编码单元,从而在原始数据单元丢失时能够利用冗余编码单元恢复原始数据。前向纠删码技术可针对网络传输场景应用于传输层中,通过对发送端产生的应用数据单元进行编码引入冗余编码包,为网络提供丢包的额外恢复能力,从而避免自动重传请求(Automatic Repeat-reQuest,ARQ)协议对丢失数据包的重传。在网络传输中,前向纠删码技术有以下应用场景(1)弱网环境,以减缓高丢包率导致的拥塞控制窗口退避的问题;(2)实时视频传输等时延敏感应用,以克服丢包重传导致的高延时;(3)发收端难以双向交互的场景,如多播场景以及深空通信场景,以实现无需反馈的可靠通信。因此,前向纠删码对于提升网络传输的质量和可靠性有着重要的意义。
前向纠删码的性能可由三项指标描述:(1)恢复时延,描述接收端检测到数据包丢失的时刻到恢复该数据包并交付到应用层的时延。时延敏感业务对恢复时延具有严格的约束。(2)纠删能力,描述针对一组数据包的最大丢包恢复能力。由于传输层的突发丢包特性,纠删能力决定了纠删码能否恢复一组数据包中发生的多个丢包。最大距离可分(MDS)码描述了纠删能力最优的一类纠删码,即码的最小汉明距离达到辛格尔顿界的码。它能够保证在码率一定的前提下,能够恢复一组数据包中最多数量的丢包。(3)编解码复杂度,描述纠删码编解码设备编解码所产生的时延开销。较高的编解码复杂度会影响端到端时延,降低纠删码在时延敏感业务中的应用性。因此,低恢复时延,低编解码复杂度,高纠删能力为前向纠删码的理想特性。
现有技术中的前向纠删码技术,包括线性分组码,喷泉码和滑动窗口随机线性码等,具有恢复时延高和编解码复杂度高的缺陷,并且无法保证纠删能力,如何对前向纠删码技术进行改进,是一个亟待解决的问题。
发明内容
本申请实施例提供了一种数据恢复方法及装置,以降低丢包恢复时延,同时降低传输过程中丢失的数据单元的恢复复杂度。
第一方面,提供了一种数据恢复方法,包括:
生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送所述第一编码数据。
在本申请实施例中,通过第一分组的原始数据单元和第一分组的δ个前向分组中的原始数据单元编码生成第一分组对应的冗余编码单元,第一方面可以减少每个分组中的原始数据单元个数,即减少了接收到每个分组n的个数,降低了丢包恢复时延,同时,重复使用δ个前向分组中的原始数据单元生成冗余编码单元,可以提升对δ个前向分组中的原始数据单元的保护,进而保证了对丢失数据单元的恢复能力。
在一种可能的设计中,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
在一种可能的设计中,在所述发送第一编码数据之前,所述方法还包括:
将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
在本申请实施例中,通过将第一分组对应的相关原始数据单元划分成w个信息段,然后根据多个原始数据单元的第k个信息段组成的第k个组合信息段生成每个组合信息段对应的第一编码信息,再根据w个第一编码信息组成第一分组对应的冗余编码单元。这个过程对原始数据单元进行分信息段编码,可以降低编码复杂度,提高编码效率。
在一种可能的设计中,所述w个信息段中的每个信息段包括L个信息符号,所述对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,包括:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
在一种可能的设计中,所述L满足L+1为质数且2为L+1的一个原根。
在一种可能的设计中,所述对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息,包括:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure BDA0002453032140000021
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[IL|1]为奇偶校验矩阵,H=[IL|0]T为删除矩阵,
Figure BDA0002453032140000022
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素ti,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵为:由块矩阵T中第1≤i1<i2<…<ip≤m(δ+1)行以及第1≤j1<j2<…<jp≤n(δ+1)列中的块元素
Figure BDA0002453032140000023
构成的pL×pL阶子矩阵
Figure BDA0002453032140000024
其中ik,jk满足
Figure BDA0002453032140000025
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure BDA0002453032140000031
表示;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
在一种可能的设计中,所述信息符号为κ字节长度的列向量,其中κ为大于或等于1的整数。
在本申请实施例中,通过生成编码矩阵,获取由循环移位矩阵标识的编码系数,可以应用循环移位与逐位异或操作生成编码信息,而不需要基于有限域运算进行编码,因此降低了运算复杂度。同时本发明方案对数据单元进行基于信息段和信息符号的分割,实现应用低阶矩阵进行编解码,从而进一步降低编解码复杂度。另外,本发明方案构造的向量编码矩阵保证卷积纠删码满足MDS特性,在纠删性能上达到理论最优。本方案在编码端和解码端构造校验矩阵,以及删除矩阵,可以实现无需在网络传输中传输冗余位,提升编码效率。
第二方面,提供了一种数据恢复方法,包括:
接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
根据所述第二编码数据恢复所述丢失数据单元。
在一种可能的设计中,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
在一种可能的设计中,在根据所述第二编码数据恢复所述丢失数据单元进行恢复之前,所述方法还包括:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
在一种可能的设计中,所述根据所述第二编码数据恢复所述丢失数据单元,包括:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
在一种可能的设计中,所述对所述相关现存数据单元的第k个组合信息段进行编码与对所述相关原始数据单元的第k个组合信息段进行编码的操作相同,所述根据所述现存编码信息对所述相关现存冗余编码单元进行消元包括:
将所述现存编码信息与所述相关冗余编码单元进行逐位异或计算,消除所述相关冗余编码单元中所有与所述现存编码信息相同的信息。
在一种可能的设计中,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述对所述第一冗余编码单元进行解码,获得所述丢失数据单元,包括:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
在一种可能的设计中,所述对所述第二目标信息进行解码,获得所述第二目标信息段对应的第二目标编码信息,包括:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
第三方面,提供一种发送端设备,所述设备包括:
编码模块,用于发送第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送模块,用于发送所述第一编码数据。
在一种可能的设计中,所述编码模块具体用于:
将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
在一种可能的设计中,所述w个信息段中的每个信息段包括L个信息符号,所述编码模块还用于:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
在一种可能的设计中,所述编码模块还用于:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure BDA0002453032140000051
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[IL|1]为奇偶校验矩阵,H=[IL|0]T为删除矩阵,
Figure BDA0002453032140000052
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素ti,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵为:由块矩阵T中第1≤i1<i2<…<ip≤m(δ+1)行以及第1≤j1<j2<…<jp≤n(δ+1)列中的块元素
Figure BDA0002453032140000053
构成的pL×pL阶子矩阵
Figure BDA0002453032140000054
其中ik,jk满足
Figure BDA0002453032140000055
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure BDA0002453032140000056
表示;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
第四方面,提供一种接收端设备,所述设备包括:
接收模块,用于接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
解码模块,用于根据所述第二编码数据恢复所述丢失数据单元。
在一种可能的设计中,所述解码模块还用于:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
在一种可能的设计中,所述解码模块具体用于:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
在一种可能的设计中,所述解码模块具体用于:
将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关现存冗余编码单元中所有与所述现存编码信息相同的信息。
在一种可能的设计中,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述解码模块具体用于:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
在一种可能的设计中,所述解码模块具体用于:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示,用于对所述第二目标信息段进行循环移位操作;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
第五方面,提供一种通信装置,包括:输入接口,用于执行上述第三方面任一项发送端设备或第四方面任一项接收端设备中接收模块执行的步骤;
逻辑电路,用于执行上述第三方面中任一项发送端设备中编码模块执行的步骤,或用于执行上述第四方面中任一项接收端设备中解码模块执行的步骤;
输出接口,用于执行上述第三方面中任一项发送端设备或第四方面任一项接收端设备中发送模块执行的步骤。
第六方面,提供一种通信装置,所述装置包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:
所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述装置执行第一方面任一项所述的方法,或执行第二方面任一项所述的方法。
在一种可能的设计中,该装置的结构中包括处理模块和收发模块,其中,处理模块被配置为支持该装置执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
在另一种可能的设计中,该装置的结构中包括处理器,还可以包括存储器。处理器与存储器耦合,可用于执行存储器中存储的计算机程序指令,以使装置执行上述第一方面、或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。可选地,该装置还包括通信接口,处理器与通信接口耦合。当装置为网络设备时,该通信接口可以是收发器或输入/输出接口;当该装置为网络设备中包含的芯片时,该通信接口可以是芯片的输入/输出接口。可选地,收发器可以为收发电路,输入/输出接口可以是输入/输出电路。
第七方面,本申请实施例提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
可选地,该芯片系统还包括接口电路,该接口电路用于交互代码指令至所述处理器。
可选地,该芯片系统中的处理器可以为一个或多个,该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
第八方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
第九方面,本申请实施例提供一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
第十方面,本申请实施例提供一种通信系统,该通信系统包括上述第三方面的发送端设备和第四方面的接收端设备。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1A为本申请实施例提供的一种纠删码编码方案框架示意图;
图1B为本申请实施例提供的一种前向纠删码的实现原理示意图;
图1C为本申请实施例提供的一种RS码编码示意图;
图1D为本申请实施例提供的一种滑动窗口随机线性码生成示意图;
图2A为本申请实施例提供的一种数据恢复方法流程图;
图2B为本申请实施例提供的一种第一编码数据示意图;
图2C为本申请实施例提供的一种原始数据包划分示意图;
图2D为本申请实施例提供的一种原始数据包与冗余编码包关系示意图;
图2E为本申请实施例提供的一种接收第二编码数据过程示意图;
图3为本申请实施例提供的一种发送端设备示意图;
图4为本申请实施例提供的一种接收端设备示意图;
图5为本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
首先对本申请实施例涉及的专业术语,以及系统架构或应用场景进行介绍。
开放式通信系统互联参考模型(Open System Interconnection ReferenceModel,OSI),是由国际标准化组织提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。OSI可划分为7层,从第一层到第七层分别为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层;其中,低层的一至三层关注的是原始数据的传输;高层的四至七层关注的是网络下的应用程序。
纠删码(erasure coding,EC),也称为前向纠删码,是一种数据保护方法,它将原始数据分割成片段,然后在原始数据中添加冗余数据,并进行编码,生成纠删码。如果原始数据中部分数据丢失,可以根据纠删码对原始数据进行恢复。
原始数据单元,是指在网路中进行传输的数据符号被等长划分形成的数据单元。其中数据符号可以实例化为传输层的数据包,传输层数据流,或者IP报文,也可以是数据链路层的数据帧等。
冗余编码单元,在本申请实施例中是指根据原始数据单元生成的纠删码字。冗余编码单元可以根据多个原始数据单元编码生成,多个原始数据单元中的丢失数据分组也可以根据其编码生成的冗余编码单元恢复。
本申请实施例中,通过冗余编码单元对原始数据单元进行恢复,可以应用于传输层与应用层之间,用于针对传输层的丢包恢复,也可以应用于传输层与网络层之间进行丢包恢复,或用于链路层进行差错恢复。对应的应用场景包括:固网中针对长距离高延时网络中的网络应用场景,如数据中心场景,实时视频传输场景,以避免数据单元重传带来的高时延;此外,也应用于移动网,WIFI等丢包率较高的弱网场景中,以避免高丢包率导致的拥塞窗口退避问题。
根据上述描述,以网络纠删场景为例,具体为传输层对丢失数据包的恢复场景。请参阅图1A,图1A为本申请实施例提供的一种纠删码编码方案框架示意图,如图1A所示,纠删码框架位于传输层与应用层之间,且同时应用于接收端和发送端,纠删码方案在纠删码框架中实现,其对应的原始数据单元可以为原始数据包,对应的冗余编码单元可以为冗余编码包,其中接收端的丢失数据包恢复过程具体包括:1、应用层将应用层数据交付给纠删码框架;2、纠删码框架根据应用层数据划分原始数据包并构建数据包分组;3、纠删码框架拷贝数据包分组到纠删码方案模块;4、纠删码方案模块进行编码操作;5、纠删码方案模块将编码后的冗余信息(编码系数以及编码后产生的冗余编码包)返回给纠删码框架;6、纠删码框架为原始数据包以及冗余编码包附加分组ID;7、纠删码框架将原始数据包与冗余编码包交付给传输层。
接收端对原始数据包中的丢失数据包进行恢复的过程也同样在图1A对应的框架中实现,具体包括:1、传输层交付报文段到纠删码框架;2、纠删码框架抽取数据包信息以及编码系数;3、向纠删码方案模块拷贝数据包,编码系数以及分组ID信息;4、纠删码方案模块进行本方案的解码操作;5、发送恢复的数据包到纠删码框架;6、交付恢复的数据包到应用层。
另外,与图1A对应的,请参阅图1B,图1B为本申请实施例提供的一种前向纠删码的实现原理示意图,如图1B所示,发送端向接收端发送一定数量的经编码后的数据包,数据包在网络传输时发生丢包。当丢失的数据包小于纠删码的纠删阈值时,接收端可以通过当前已接收的数据包恢复丢失的原始数据包,从而无需发送端重传丢失的数据包。此外,前向纠删码方案不仅可以恢复在网络传输中丢失的数据包,也可以恢复由差错导致的无法被纠错的数据包。
现有技术中,已经提出了多种前向纠删码技术,包括线性分组码,喷泉码和滑动窗口随机线性码等,具体描述如下:
一、线性分组码。
线性分组码为目前应用最为广泛的一类纠删码。(n+m,n)线性分组码表示将全部需要传输的原始数据单元划分为若干个包含n个原始数据单元的分组,并对每一个分组的n个原始数据单元进行编码形成m个冗余编码单元以恢复分组内丢失的原始数据单元。线性分组码中最广泛应用的码为里所(Reed-solomon,RS)码,是一种满足最大距离可分(Maximum distance seperable,MDS)特性的码。RS码应用范德蒙矩阵或柯西矩阵构造编码系数,使冗余编码单元的编码系数线性无关。因此,(n+m,n)RS码的一个分组中发生任意m个原始数据单元的丢失,都可以成功恢复,获得完整的n个原始数据单元。请参阅图1C,图1C为本申请实施例提供的一种RS码编码示意图,如图1C所示,为(12,9)RS码,其中每9个原始数据单元划分为一个分组,每一个分组由3个冗余编码单元所保护,可以达到分组中任意3个原始数据单元丢失都可以成功恢复,以便获得完整的9个原始数据单元的性能。
线性分组码方案的恢复时延较高:由于需要保证一定的纠删能力,线性分组码的分组大小n通常较大。而线性分组码的最差单丢包恢复时延为分组大小n,平均恢复时延为n/2,在分组较大时无法适用于时延敏感性应用。另外,线性分组码的编解码操作基于有限域运算,编解码复杂度较高。
二、喷泉码。
喷泉码为一类基于随机编码的无速率码。喷泉码针对一个原始数据单元分组产生无穷的冗余编码序列,其中序列中每一个冗余编码单元根据度分布函数随机抽取特定数量个原始数据单元进行随机编码。当接收端接收到全部的原始数据单元时,向发送端发送反馈继续发送下一个分组。
喷泉码等无速率码基于接收端的反馈确定下个原始数据单元分组的发送。其无速率特性导致在反馈不及时的情况下,会在网络中发送过多的冗余数据包占据带宽,降低网络的有效带宽。并且喷泉码的随机编码特性无法保证确定性纠删能力,即无法满足MDS特性。
三、滑动窗口随机线性码。
滑动窗口随机线性码对应用滑动窗口(通常滑动窗口长度大于分组长度)对原始数据单元进行编码产生冗余编码单元。图1D为本申请实施例提供的一种滑动窗口随机线性码生成示意图,如图1D所示,随着数据包的传输,滑动窗口每次滑动特定的长度,为2个原始数据单元,每个窗口内包含4个原始数据单元,对其进行随机编码。滑动窗口随机线性码没有分组的概念,产生的冗余编码单元可能包含重复的原始数据单元信息。并以有限域GF(28)上随机取值的元素作为编码系数。
滑动窗口随机线性码的随机编码特性无法保证确定性纠删能力,即无法满足MDS特性。并且编解码操作基于有限域运算,编解码复杂度较高。
基于上述描述,请参阅图2A,图2A为本申请实施例提供的一种数据恢复方法流程图,用于解决上述问题,该方法包括如下步骤:
101、发送端生成第一编码数据,第一编码数据中包括多个数据单元分组,多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,冗余编码单元根据多个数据单元分组中的第一分组和第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,冗余编码单元用于接收端对丢失数据单元进行恢复,丢失数据单元为传输过程中丢失的原始数据单元;
102、发送端发送第一编码数据;
103、接收端接收第一编码数据对应的第二编码数据,第一编码数据包括多个数据单元分组,多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,第二编码数据包括多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,现存数据单元为原始数据单元中除丢失数据单元之外的数据单元,现存冗余编码单元为冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
104、接收端根据第二编码数据恢复丢失数据单元。
在本申请实施例中,以应用于图1A的框架为例,数据单元实例化为传输层和应用层之间传输的数据包,冗余编码单元对应实例化为冗余编码包。因此,以下实施例中都通过原始数据包、冗余编码包、丢失数据包和现存数据包来描述原始数据单元、冗余编码单元、丢失数据单元和现存数据单元。
第一编码数据是指发送端按照一定顺序向接收端发送的数据包组成的数据流,第一编码数据中包括多个数据包分组,其中多个数据包分组可以是两个或两个以上的数据包分组。请参阅图2B,图2B为本申请实施例提供的一种第一编码数据示意图,如图2B所示,第一编码数据中包括3个数据包分组,分别为P1,1~P1,3三个原始数据包组成的第二前向分组,P2,1~P2,3组成的第一前向分组,以及P3,1~P3,3组成的第一分组,R1、R2和R3分别为第二前向分组、第一前向分组和第一分组对应的冗余编码包。其中每个分组对应的冗余编码包是根据该分组中的原始数据包,以及该分组δ个前向分组中的原始数据包生成的,δ为正整数,第一分组的前向分组表示该分组内的数据包在第一分组的数据包之前发送,或者该分组内的数据包在第一分组的数据包之前到达接收端。图2B中以δ=2为例,对于第一分组来说,其对应的冗余编码包R3是根据第一分组中的P3,1~P3,3以及第一分组的2个前向分组中的原始数据包,包括第一前向分组中的P2,1~P2,3,以及第二前向分组中的P1,1~P1,3,总共9个原始数据包生成的。即第一分组对应的冗余编码包对应δ=2个卷积度。
在一些情况下,数据包分组的前向分组个数可能小于δ,例如第一前向分组,其对应的前向分组个数(r=1)<(δ=2),那么将r作为第一前向分组的δ,第一前向分组的冗余编码包R2根据第一前向分组对应的原始数据包P2,1~P2,3以及其δ个前向分组,即第二前向分组,对应的原始数据包P1,1~P1,3生成。
或者,在一些情况下,如果第一编码数据中只包括一个数据包分组,对于这样的数据包分组,其前向分组个r=0,同样的,将r作为该数据包分组的δ,生成该数据包分组对应的冗余编码包。例如图2B中的第二前向分组,该数据包分组对应的冗余编码包则只根据第二前向分组对应的原始数据包P1,1~P1,3生成。因此,采用本申请实施例的方法同样可以对单个数据包分组进行编码,生成该分组对应的冗余编码包。
在本申请实施例中,一个数据包分组包括n个原始数据包,对应的冗余编码包为m个,m可以为1,也可以是大于1的整数,每个数据包分组对应的n相同,每个数据包分组对应的m可以相同,也可以不同。例如图2B中对应的冗余编码包个数m=1,第一分组对应的冗余编码包为R3。或者m=3,那么图2B中的R3可以包括(R31,R32,R33),在这种情况下,同一个数据包分组对应的多个冗余编码包可以根据相同的原始数据包和不同的编码系数生成。即R31,R32和R33是针对P1,1~P1,3,P2,1~P2,3和P3,1~P3,3这9个原始数据包以及3组不同的编码系数生成的冗余编码包,每组编码系数包括与每个原始数据包对应的9个编码系数。
可见,在本申请实施例中,通过第一分组的原始数据包和第一分组的δ个前向分组中的原始数据包编码生成第一分组对应的冗余编码包,第一方面可以减少每个分组中的原始数据包个数,即减少了接收到每个分组n的个数,降低了丢包恢复时延,同时,重复使用δ个前向分组中的原始数据包生成冗余编码包,可以提升对δ个前向分组中的原始数据包的保护,进而保证了对丢失数据包的恢复能力。
在发送第一编码之前,除了划分原始数据包的分组之外,还需要对原始数据包分组进行编码获得冗余编码包。冗余编码包的编码过程具体为:
将第一分组对应的n×(δ+1)个相关原始数据包中的每个原始数据包划分生成w个信息段,w>1,相关原始数据包包括第一分组对应的n个原始数据包和第一分组的δ个前向分组对应的原始数据包;对第一分组的第k个组合信息段进行编码,生成第k个组合信息段对应的第一编码信息,第一分组的第k个组合信息段由n×(δ+1)个相关原始数据包中的每个前向原始数据包的第k个信息段组成,1≤k≤w;根据第一编码信息获取第一分组对应的冗余编码包,冗余编码包由w个组合信息段对应的w个第一编码信息组成。
具体地,在本申请实施例中,将所有用来生成某个分组的冗余编码包所对应的原始数据包称为该分组的相关原始数据包,例如对于第一分组来说,其相关原始数据包包括第一分组对应的n个原始数据包,以及第一分组的δ个前向分组中每个分组内的n个原始数据包,总共包括n×(δ+1)个原始数据包。请参阅图2C,图2C为本申请实施例提供的一种原始数据包划分示意图,如图2C所示,将第一分组的n×(δ+1)个相关原始数据包中的每个原始数据包划分成w个信息段,w为大于或等于1的整数,然后针对每个相关原始数据包的第k个信息段组成的第一分组的第k个组合信息段进行编码,生成第k个组合信息段对应的第一编码信息。请参阅图2D,图2D为本申请实施例提供的一种原始数据包与冗余编码包关系示意图,如图2D所示,对于第一分组的相关原始数据包来说,总共有w个组合信息段,每个组合信息段生成其对应的一个第一编码信息,那么总共可以生成w个第一编码信息,组成了第一分组对应的冗余编码包。
当第一分组的相关原始数据包对应多个冗余编码包时,对应的实现方式为:如图2D中所示的第k个组合信息段根据不同的编码系数生成不同的第k个第一编码信息,那么根据w个第一编码信息组成的冗余编码包就为不同的冗余编码包。
可见,在本申请实施例中,通过将第一分组对应的相关原始数据包划分成w个信息段,然后根据每个前向相关原始数据包的第k个信息段组成的第k个组合信息段生成每个组合信息段对应的第一编码信息,再根据w个第一编码信息组成第一分组对应的冗余编码包。这个过程对原始数据包进行分信息段编码,可以降低编码复杂度,提高编码效率。
进一步的,将w个信息段中的每个信息段分成L个信息符号,对第一分组的第k个组合信息段进行编码,生成第k个组合信息段对应的第一编码信息,包括:根据第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得第k个组合信息段对应的目标信息段,目标信息段对应的n×(δ+1)个信息段中的每个信息段包括L个信息符号和第L+1个信息符号;对目标信息段进行编码,获得目标信息段对应的目标编码信息;删除目标编码信息中第L+1个信息符号,获得每个目标信息段对应的第一编码信息。
获取目标信息段的具体过程包括:将属于分组j的第i个原始数据包Pj,i划分为w个信息段Pj,i=[Pj,i,1,Pj,i,2,…,Pj,i,w],其中j=0,1,2,…且i=[1,2,…,n]。每个信息段包含L个信息符号Pj,i,k=[Pj,i,k,1,Pj,i,k,2,…,Pj,i,k,L],L满足L+1为质数且2为L+1的一个原根。每个信息符号Pj,i,k,s表示为一个长度为κ字节的列向量。对于原始数据包Pj,i的每个信息段Pj,i,k,最后一列生成一个新的信息符号Pj,i,k,L+1=Pj,i,k,1+Pj,i,k,2+…+Pj,i,k,L,其中+表示二元列向量间的逐位异或,即得到第k个信息符号对应的目标信息段Pj,i,k=[Pj,i,k,1,Pj,i,k,2,…,Pj,i,k,L,Pj,i,k,L+1]。
更进一步地,对目标信息段进行编码,获得目标信息段对应的目标编码信息,包括:构造大小为(δ+1)m(L+1)×(8+1)n(L+1)的二元向量编码矩阵A,m为第一分组对应的冗余编码包个数;根据编码矩阵A获取目标信息段对应的编码系数,编码系数由循环移位矩阵表示,用于对目标信息段进行循环移位操作;根据编码系数对目标信息段进行编码,获得目标编码信息。
其中(δ+1)×n×(L+1)为第一分组对应的相关原始数据包每个信息段对应的信息符号个数,(δ+1)×m×(L+1)为所有与第一分组的原始数据包相关的冗余编码包每个信息段对应的信息符号个数,其中第一分组的原始数据包相关的冗余编码包包括第一分组对应的冗余编码包,以及第一分组作为其他分组的δ个前向分组时对应的其他分组冗余编码包,例如对于第一分组来说,可能作为后续第四分组、第五分组的δ个前向分组,那么的第一分组的原始数据包相关的冗余编码包还包括第四分组对应的冗余编码包R4,以及第五分组对应的冗余编码包R5。生成的二元向量编码矩阵A如公式(1)所示:
Figure BDA0002453032140000121
上述矩阵A可以视为一个(δ+1)m×(δ+1)n的块矩阵,每个(L+1)×(L+1)的块元素Aj,i,k表示为Aj,i,k=aj,i,k(CL+1),为一个(L+1)×(L+1)的二元矩阵。表示每个信息段对应的编码系数(编码矩阵)。aj,i,k(CL+1)=aL(L+1)L+…+a1(CL+1)1+a0为循环矩阵
Figure BDA0002453032140000131
的函数,且至多包含
Figure BDA0002453032140000132
个非零的系数aj。矩阵A满足
Figure BDA0002453032140000133
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[IL|1]为奇偶校验矩阵,H=[IL|0]T为删除矩阵,
Figure BDA0002453032140000134
表示克罗内克积。
矩阵T可以视为一个(δ+1)m×(δ+1)n的块矩阵,每个块元素ti,j为一个L×L的二元矩阵。它的pL×pL规范子矩阵定义为:由块矩阵T中第1≤i1<i2<…<ip≤m(δ+1)行以及第1≤j1<j2<…<jp≤n(δ+1)列中的块元素
Figure BDA0002453032140000135
构成的pL×pL阶子矩阵
Figure BDA0002453032140000136
其中ik,jk满足
Figure BDA0002453032140000137
对于1≤k≤p。
进一步的,本发明对数据包的每个信息段进行基于κ个字节的循环移位编码,得到属于分组j的第t个冗余编码包Rj,t的每个信息段Rj,t,k的数学表达为:
Figure BDA0002453032140000138
由于A(j-j′),t,i为循环置换矩阵CL+1的函数,因此公式(2)可以由对信息符号的循环移位操作实现,即基于κ个字节的循环移位操作实现。
进一步的,对于冗余编码包Rj,t的每个信息段Rj,t,k,删除最后一列的信息符号Rj,i,k,L+1,即Rj,t,k=[Rj,t,k,1,Rj,t,k,2,…,Rj,t,k,L]。
在本申请实施例中,通过生成编码矩阵,获取由循环移位矩阵标识的编码系数,可以应用循环移位与逐位异或操作生成编码信息,而不需要基于有限域运算进行编码,因此降低了运算复杂度。同时本发明方案对数据包进行基于信息段和信息符号的分割,实现应用低阶矩阵进行编解码,从而进一步降低编解码复杂度。另外,本发明方案构造的向量编码矩阵保证卷积纠删码满足MDS特性,在纠删性能上达到理论最优。本方案在编码端和解码端构造校验矩阵,以及删除矩阵,可以实现无需在网络传输中传输冗余位,提升编码效率。
发送端完成对原始数据包的编码,生成第一编码数据后,发送给接收端。接收端并不能对第一编码数据进行完全的接收,而是接收到第二编码数据,其中第二编码数据包括现存数据包和现存冗余编码包,现存数据包即为原始数据包中除丢失数据包之外的数据包。现存冗余编码包为发送端发送的冗余编码包中,除去发送过程中丢失的冗余编码包之外的冗余编码包。
具体地,请参阅图2E,图2E为本申请实施例提供的一种接收第二编码数据过程示意图,如图2E所示,当接收端接收第二编码数据时,发送第二分组对应的原始数据包丢失了P3,1,即丢失数据包为P3,1,继续接收第二分组的数据包,接收到了P3,2和P3,3作为第二分组的现存数据包,以及第二分组的冗余编码包R3作为现存冗余编码包,那么需要根据现存数据包,现存冗余编码包以及生成冗余编码包时所对应的编码方法对冗余编码包进行解码,获得丢失数据包P3,1
首先,接收端在完成第二分组的接收后,可以判断是否能够对丢失数据包进行恢复。首先获取第二分组对应的滑动窗口,该滑动窗口的长度为第二分组在没有发生丢包的情况下,对应的相关数据包个数,包括第二分组的原始数据包个数n和现存冗余编码包个数m,以及第二分组的p个后向分组中的现存数据包个数和现存冗余编码包个数p*(m+n),总共为(m+n)×(p+1)。第二分组的后向分组为将第二分组作为δ个前向分组之一,并进行编码获得自身对应的冗余编码包的数据包分组。例如,假设δ=2,n=3,m=1,对于图2E中所示的第二分组来说,其对应的后向分组包括第一后向分组和第二后向分组,那么第二分组的相关数据包包括第二分组的3个原始数据包和1冗余编码包,以及第一后向分组和第二后向分组分别对应的3个原始数据包和1个冗余编码包。
然后根据滑动窗口内的丢失数据包个数判断是否能够对丢失数据包进行恢复。可恢复条件为:滑动窗口内丢失数据包的个数s小于或等于m×(p+1),其中0≤p≤δ。即接收端完成第二分组的接收时,确定第二分组是否满足丢包个数≤1,如果是,则能够对第二分组丢失的数据包进行恢复;否则接收端继续进行第一后向分组的接收,然后判断第二分组和第一后向分组的丢包总个数是否≤2,如果是,则能够对第二分组和第一后向分组丢失的数据包进行恢复;否则接收端继续进行第二后向分组的接收,然后判断第二分组、第一后向分组和第二后向分组的丢包总个数是否≤3,如果是,则能够对上述丢包进行恢复,否则不能进行恢复。这些丢失数据包可以属于同一个数据包分组,也可以属于多个不同的数据包分组。即,如果满足条件,则该滑动窗口内的每个数据包分组对应的丢失数据包都能够进行恢复,否则都不能进行恢复。
另外,如果第二分组的后向分组个数小于δ,假设其后向分组个数为r,那么该分组对应的δ=r,同样的,基于该数值和上述公式对该分组的数据包丢失数量阈值进行计算。
当满足上述可恢复条件时,根据第二编码数据恢复丢失数据包,包括:将第二分组的相关现存数据单元划分生成w个信息段,w≥1,相关现存数据单元包括第二分组对应的现存数据单元和第二分组的p个后向分组中的现存数据单元;对相关现存数据单元的第k个组合信息段进行编码,生成第k个组合信息段对应的第二编码信息,第k个组合信息段由每个相关现存数据单元的第k个信息段组成,其中1≤k≤w;根据第二编码信息获取相关现存数据单元对应的现存编码信息,现存编码信息由w个组合信息段对应的w个第二编码信息组成;根据现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,相关现存冗余编码单元包括第二分组的现存冗余编码单元和第二分组的p个后向分组的现存冗余编码单元,相关丢失数据单元包括第二分组的丢失数据单元和第二分组的p个后向分组的丢失数据单元;对第一冗余编码单元进行解码,获得相关丢失数据单元。
具体地,接收端对接收到的相关现存数据包进行发送端对相关原始数据包相同的处理,例如图2E中如果接收端只接收了第二分组,那么对应的相关现存数据包包括P3,2和P3,3,如果接收端接收了第二分组和第一后向分组,那么相关现存数据包包括P3,2和P3,3以及第一后向分组中的现存数据包(第一后向分组也可能在传输过程中发生丢包),对多个相关现存数据包中的每个相关现存数据包划分w个信息段,其中w≥1;当w=1时,表示不划分数据段,当w≥2时,表示将相关现存数据包划分成多个信息段;多个相关现存数据包排序相同的信息段组成该分组对应的组合信息段;对每个组合信息段进行编码,获得每个组合信息段对应的第二编码信息,其中对相关现存数据包组合信息段的编码和对相关原始数据包组合信息段的编码相同,包括编码系数获取方式相同,运算方式相同等,使得同样的组合信息段,两者能够通过编码获得同样的编码结果;由w个第二编码信息组合生成现存编码信息。最后,在根据相关现存冗余编码包恢复丢失数据包时,可以通过相关现存冗余编码包与现存编码信息进行消元来获得相关丢失数据包对应的冗余编码信息。与前述相关现存数据包对应的,如果接收端接收了第二分组和第一后向分组,那么相关现存冗余编码包包括第二分组的现存冗余编码包和第一后向分组的现存冗余编码包。消元的具体方法包括:将相关现存数据包中每个信息段对应的第二编码信息,与相关现存冗余编码包中的每个信息段进行逐位异或计算。相关现存冗余编码包中的剩余信息为丢失数据包对应的第一冗余编码包。上述步骤表述为:
对于相关现存数据包Pj′,i的每个信息段Pj′,i,k,最后一列生成一个新的信息符号Pj′,i,k,L+1=Pj′,i,k,1+Pj′,i,k,2+…+Pj′,i,k,L,即得到Pj′,i,k=[Pj′,i,k,1,Pj′,i,k,2,…,Pj′,i,k,L,Pj′,i,k,L+1]。
计算信息段Rj,t,k编码Pj′,i,k的编码信息
Sj,j′,i,t,k=Pj′,i,kA(j-j′),t,i
其中A(j-j′),t,i为相关现存冗余编码包Rj,t对相关现存数据包Pj′,i的编码系数矩阵。进一步的,删除Sj,j′,i,t,k的最后一列对应的信息符号。相关现存冗余编码包Rj,t的每个信息段Rj,t,k消去编码信息Sj,j′,i,t,k
Rj,t,k=Rj,t,k+Sj,j′,i,t,k
获得相关丢失数据包对应的第一冗余编码包后,需要对第一冗余编码包进行解码获得相关丢失数据包。首先,对第一编码包的w个信息段中每个信息段对应的L个信息符号进行逐位异或计算,获得第L+1个信息符号;然后根据前L个信息符号和第L+1个信息符号组成每个信息段对应的第二目标信息段;对第一冗余包对应的w个第二目标信息段分别进行解码,获得w个第二目标编码信息,最后从w第二目标编码信息的每个第二目标编码信息中删除第L+1个信号,获得w个第二编码信息,组成丢失数据包。其具体过程为:
设接收到的冗余编码包(相关现存冗余编码包)为
Figure BDA0002453032140000151
其中j1≤j2≤…≤js,且t1≤t2≤…≤ts。丢失数据包(相关丢失数据包)为
Figure BDA0002453032140000152
其中j′1≤j′2≤…≤j′s,且i1≤i2≤…≤is。则冗余编码包对丢失数据包的全局编码矩阵为
Figure BDA0002453032140000153
求解该全局编码矩阵的逆矩阵。表示为
Figure BDA0002453032140000154
其中
Figure BDA0002453032140000155
表示克罗内克积,IS为s阶单位阵。其中每一个块元素
Figure BDA0002453032140000156
其中det(*)表示矩阵的判别式求解运算,矩阵Mi,j为删除
Figure BDA0002453032140000157
的第i行与第j列的块元素得到的剩余矩阵。
对于每个
Figure BDA0002453032140000158
的每个信息段
Figure BDA0002453032140000159
最后一列生成一个新的信息符号
Figure BDA00024530321400001510
Figure BDA00024530321400001511
即得到
Figure BDA00024530321400001512
对于数据包
Figure BDA00024530321400001513
其包含的信息段
Figure BDA00024530321400001514
根据公式(3)进行解码
Figure BDA00024530321400001515
由于Du,v为循环置换矩阵CL+1的函数,因此公式(3)可以由对信息符号的循环移位操作实现。
进一步的,对于数据包
Figure BDA0002453032140000161
的每个信息段
Figure BDA0002453032140000162
删除最后一列的信息符号
Figure BDA0002453032140000163
即得成功恢复的数据包
Figure BDA0002453032140000164
其中
Figure BDA0002453032140000165
当接收端完成解码后,或当前解码的可解条件未满足时,接收端等待下一分组的接收后重复上述解码过程。
可见,在本申请实施例中,接收端在发现数据包分组中包含丢失数据包时,完成该分组的接收,并判断该分组对应的丢包个数是否小于预设阈值,如果是,则根据该分组的现存数据包和现存冗余编码包对该分组的丢失数据包进行恢复;否则,继续该分组的后向分组的接收,同样判断丢包个数是否小于预设阈值,如果是,则根据该分组的相关现存数据包和相关现存冗余编码包对该分组的丢失数据包进行恢复。直到完成发生丢包的分组对应的δ个后向分组的接收。丢失数据包恢复过程包括:根据相关现存数据包对相关冗余编码包进行消元,可以降低后续矩阵求逆运算复杂度;在进行解码之前,获取解码系数的方法是对获取相关现存冗余编码包编码系数的全局编码矩阵进行求逆运算获得逆矩阵。然后根据逆矩阵对冗余编码包进行循环移位操作,获得解码结果,这个过程应用循环移位与逐位异或操作代替有限域运算进行解码,进一步降低的解码复杂度。此外,上述序贯解码方案在每一个分组到达后进行解码,可以有效降低恢复时延。
为了进一步说明本申请对应的方法,本实施例考虑一类码率为n/(n+1)的卷积码,冗余度m=1的卷积码,即每个数据包分组对应的冗余编码包个数为1。
Figure BDA0002453032140000166
系统卷积码为一类高码率纠删码,且同码率下恢复时延最低,契合传输层纠删场景对高有效吞吐量,低恢复时延的需求。因此本实施例为本发明的首要实例方案。
本实施例给出一种大小为(δ+1)(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A的构造方法,使得
Figure BDA0002453032140000167
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤(δ+1)。
考虑一类MDS向量码,其校验矩阵表示为:
Figure BDA0002453032140000168
其中β定义在有限域GF(2L)上满足βL+1=1。
截取矩阵K的δ+1行以及n列,使得得到的剩余矩阵S的第i行第j列矩阵元素si,j满足
Figure BDA0002453032140000169
对于任意的1≤i≤δ,1≤j≤n,均不相同。验证以S为前n列扩展得到的矩阵ST不包含p×p的奇异规范子矩阵,其中2≤p≤δ+1。则本实施例中二元向量编码矩阵A的块元素由Aj,i=sj,i(CL+1)定义,其中sj,i(CL+1)表示将si,j中的β替换为CL+1
Figure BDA0002453032140000171
Figure BDA0002453032140000172
Figure BDA0002453032140000173
进一步,发送端对原始数据包进行基于字节循环移位的编码操作产生冗余编码包,所述方法包含:
对于数据包Pj,i的每个信息段Pj,i,k,最后一列生成一个新的信息符号Pj,i,k,L+1=Pj,i,k,1+Pj,i,k,2+…+Pj,i,k,L,即得到Pj,i,k=[Pj,i,k,1,Pj,i,k,2,…,Pj,i,k,L,Pj,i,k,L+1]。
进一步的,本发明对数据包的每个信息段进行基于κ个字节的循环移位编码,得到属于分组j的冗余编码包Rj的每个信息段Rj,k的数学表达为:
Figure BDA0002453032140000174
由于A(j-j′),i为循环置换矩阵CL+1的函数,因此式(4)可以由对信息符号的循环移位操作实现,即基于κ个字节的循环移位操作实现。
进一步的,对于冗余编码包Rj的每个信息段Rj,k,删除最后一列的信息符号Rj,k,L+1,即Rj,k=[Rj,k,1,Rj,k,2,…,Rj,k,L]。
接收端在接收到第二编码数据中的第二分组,且发现第二分组存在丢包后,对可解性条件进行判定,包括:确定长度为(1+n)×(p+1)的滑动窗口内丢失数据包的个数s小于或等于p+1,其中滑动窗口长度对应第二分组的相关数据包个数,包括n×(p+1)个相关原始数据包(即自身的n个原始数据包和p个后向分组的n×p个原始数据包),和p+1个相关冗余编码包(即自身的1个冗余编码包和p个后向分组的p个冗余编码包),丢失数据包满足在第二分组和第二分组后向p个分组中丢失的数目≤p+1,其中0≤p≤δ。
接收端恢复丢失数据包的过程表述如下:
接收端接收并缓存每一个成功接收的相关现存数据包(包括第二分组的现存数据包,或者还包括p个后向分组的现存数据包)与相关现存冗余编码包(包括第一分组的现存冗余编码包,或者还包括p个后向分组的现存冗余编码包);
在每到达一个冗余编码包时,对已接收的现存数据包进行消元操作,便该冗余编码包仅为丢失数据包的线性组合。冗余编码包Rj对现存数据包Pj′,i的消元操作定义如下:
对于现存数据包Pj′,i的每个信息段Pj′,i,k,最后一列生成一个新的信息符号Pj′,i,k,L+1=Pj′,i,k,1+Pj′,i,k,2+…+Pj′,i,k,L,即得到Pj′,i,k=[Pj′,i,k,1,Pj′,i,k,2,…,Pj′,i,k,L,Pj′,i,k,L+1];
计算信息段Rj,k编码Pj′,i,k的编码信息
Sj,j′,i,k=Pj′,i,kA(j-j′),i
其中A(j-j′),i为冗余编码包Rj,t对现存数据包Pj′,i的编码系数矩阵。删除Sj,j′,i,k的最后一列对应的信息符号。
进一步的,冗余包Rj的每个信息段Rj,k消去编码信息Sj,j′,i,k
Rj,k=Rj,k+Sj,j′,i,k
设接收到的冗余数据包为
Figure BDA0002453032140000181
其中t1≤t2≤…≤ts。需要恢复的丢失数据包
Figure BDA0002453032140000182
其中j′1≤j′2≤…≤j′s,且i1≤i2≤…≤is。则冗余数据包对需要恢复的丢失数据包的全局编码矩阵为
Figure BDA0002453032140000183
求解该全局编码矩阵的逆矩阵,表示为
Figure BDA0002453032140000184
其中
Figure BDA0002453032140000185
表示克罗内克积,IS为s阶单位阵。其中每一个块元素
Figure BDA0002453032140000186
其中det(*)表示矩阵的判别式求解运算,矩阵Mi,j为删除
Figure BDA0002453032140000187
的第i行与第j列的块元素得到的剩余矩阵。
对于每个
Figure BDA0002453032140000188
的每个信息段
Figure BDA0002453032140000189
最后一列生成一个新的信息符号
Figure BDA00024530321400001810
即得到
Figure BDA00024530321400001811
对于数据包
Figure BDA00024530321400001812
其包含的信息段
Figure BDA00024530321400001813
由式(5)进行解码
Figure BDA00024530321400001814
由于Du,v为循环置换矩阵CL+1的函数,因此式(5)可以由对信息符号的循环移位操作实现。
进一步的,对于数据包
Figure BDA00024530321400001815
的每个信息段
Figure BDA00024530321400001816
删除最后一列的信息符号
Figure BDA00024530321400001817
即得成功恢复的数据包
Figure BDA00024530321400001818
其中
Figure BDA00024530321400001819
为了进一步说明本申请对应的方法,以下采用具体数值对申请实施例对应的数据包编码和解码方法进行实例化描述,其中每个数据包分组中的原始数据包n=2,每个数据包分组对应的冗余编码包个数m=1,数据包分组的δ个前向分组δ=2。
考虑一个网络传输场景,发送端向接收端发送十个数据包P0,1,P0,2,P1,1,P1,2,P2,1,P2,2,P3,1,P3,2,P4,1,P4,2,发送端在原始数据包交付传输层之前应用纠删码方案对原始数据包进行编码保护。其中每两个原始数据包作为一个分组,产生编码后的系统编码序列为P0,1,P0,2,R0,P1,1,P1,2,R1,P2,1,P2,2,R2,P3,1,P3,2,R3,P4,1,P4,2,R4。编码方案由以下过程给出。
首先构造向量编码矩阵A为:
Figure BDA0002453032140000191
其中I5为5阶单位矩阵,C5为五阶循环置换矩阵
Figure BDA0002453032140000192
Figure BDA0002453032140000193
表示C5的2次幂为
Figure BDA0002453032140000194
假设每个原始数据包Pj,i包含1280比特,灵活分块方案将每个数据包分割为40个包含32比特(4个字节)的信息段:Pj,i=(Pj,i,1,…,Pj,i,40)。进一步每个信息段分割为四个长度为1个字节的信息符号:Pj,i,k=[Pj,i,k,1,Pj,i,k,2,Pj,i,k,3,Pj,i,k,4]。
对于数据包Pj,i的每个信息段Pj,i,k,最后一列生成一个新的信息符号Pj,i,k,5=Pj,i,k,1+Pj,i,k,2+…+Pj,i,k,4,即得到Pj,i,k=[Pj,i,k,1,Pj,i,k,2,Pj,i,k,3,Pj,i,k,4,Pj,i,k,5]。
(例:假设P0,2的第2个信息段为P0,2,2=[[11001100]T,[11111111]T,[00000000]T,[10011001]T],
生成新的奇偶校验信息符号得到P0,2,2=[[11001100]T,[11111111]T,[00000000]T,[10011001]T,[10101010]T]。
由公式(4)中定义的运算,冗余包R2基于字节的循环移位编码操作为:
Figure BDA0002453032140000195
其中Pi,jI5的运算表示保持Pi,j数据包不变;
Figure BDA0002453032140000196
表示将信息段P0,2,k按信息符号为单位向右循环移位两个单位。
(例:P0,2,2=[[11001100]T,[11111111]T,[00000000]T,[10011001]T,[10101010]T],
Figure BDA0002453032140000197
)。
P1,1,kC5表示将信息段P1,1,k按信息符号为单位向右循环移位一个单位。
最终将得到的6个信息段逐位异或即得到R2,k
进一步的,对于冗余编码包R2的每个信息段R2,k,删除最后一列的信息符号R2,k,5,即得到最终的冗余编码包R2,k=[R2,k,1,R2,k,2,R2,k,1,R2,k,4]。
假设在网络中传输数据包序列P0,1,P0,2,R0,P1,1,P1,2,R1,P2,1,P2,2,R2,P3,1,P3,2,R3,P4,1,P4,2,R4时,在接收端的传输层感知P0,1,P0,2两个数据包发生丢失,则在接收端接收到R0和R1后即可解码恢复P0,1,P0,2中的数据。以下给出接收端纠删码方案的解码过程。
首先R1对已收到的数据包P1,2和P1,1进行消元,由于R1对P1,2和P1,1的编码矩阵均为单位矩阵,R1中的每个信息段R1,k对P1,2和P1,1中的信息段进行逐位异或即可消除P1,2和P1,1中的编码信息。消元后的冗余包R1表示为R′1
由于R0=P0,1+P0,2,可得到R0,R′1形成的全局编码矩阵为
Figure BDA0002453032140000201
求解其逆矩阵为
Figure BDA0002453032140000202
进一步的,对R0,R′1中的每个信息段的最后一列生成一个新的信息符号R0,k,5=R0,k,1+R0,k,2+R0,k,3+R0,k,4;R′1,k,5=R′1,k,1+R′1,k,2+R′1,k,3+R′1,k,4
根据公式(5),解码P0,1数据包的表达式为:
Figure BDA0002453032140000203
等式右端第一项为对于R0包含的每个信息段R0,k,按信息符号为单位向右循环移位3个单位;第二项为对于R0包含的每个信息段R0,k,按信息符号为单位向右循环移位1个单位;
第三项为对于R′1包含的每个信息段R′1,k,按信息符号为单位向右循环移位3个单位;第四项为对于R′1包含的每个信息段R′1,k,按信息符号为单位向右循环移位1个单位。最终将得到的四个信息段逐位异或即得到解码数据包P0,1的信息段P0,1,k
同理,解码P0,2数据包的表达式为:
Figure BDA0002453032140000204
最终,将解码后的P0,1,P0,2数据包中的每个信息段P0,1,k,P0,2,k删除最后一列对应的信息符号即得到原数据包P0,1,P0,2
图3为本申请实施例提供的一种发送端设备300,其可以用于执行上述图2A~图2E的发送端的数据恢复方法和具体实施例,该发送端设备可以是发送端设备或者可以是配置于发送端设备的芯片。在一种可能的实现方式中,如图3所示,该发送端设备300包括发送模块301和编码模块302。
编码模块302,用于生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送模块301,用于发送第一编码数据。
可选的,编码模块302具体用于:
将所述第一分组对应的n×(6+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述原始数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
可选的,所述w个信息段中的每个信息段包括L个信息符号,所述编码模块302还用于:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
可选的,所述编码模块302还用于:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure BDA0002453032140000211
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[IL|1]为奇偶校验矩阵,H=[IL|0]T为删除矩阵,
Figure BDA0002453032140000212
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素ti,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵定义为:由块矩阵T中第1≤i1<i2<…<ip≤m(δ+1)行以及第1≤j1<j2<…<jp≤n(δ+1)列中的块元素
Figure BDA0002453032140000213
构成的pL×pL阶子矩阵
Figure BDA0002453032140000214
其中ik,jk满足
Figure BDA0002453032140000215
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure BDA0002453032140000216
表示,用于对所述目标信息段进行循环移位操作;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
可选的,上述接收端设备还包括接收模块303,且上述发送模块301和接收模块302可以为接口电路或者收发器。接收模块303和发送模块301可以为独立的模块,也可以集成为收发模块(图未示),收发模块可以实现上述接收模块303和发送模块301的功能。
可选的,上述编码模块302可以是芯片,编码器,编码电路或其他可以实现本申请方法的集成电路。
由于具体的方法和实施例在前面已经介绍过,该发送端设备300是用于执行对应于发送端设备的通信方法,因此涉及通信方法的具体描述,特别是发送模块301的功能可以参考对应实施例的相关部分,此处不再赘述。
可选的,发送端设备300还可以包括存储模块(图中未示出),该存储模块可以用于存储数据和/或信令,存储模块可以和编码模块302耦合,也可以和接收模块303或发送模块301耦合。例如,编码模块302可以用于读取存储模块中的数据和/或信令,使得前述方法实施例中的通信方法被执行。
图4为本申请实施例提供的一种接收端设备400,其可以用于执行上述图2A~图2E的接收端的数据恢复方法和具体实施例,该接收端设备可以是接收端设备或者配置于接收端设备的芯片。在一种可能的实现方式中,如图4所示,该接收端设备400包括接收模块401和解码模块402。
接收模块401,用于接收第一编码数据对应的第二编码数据,所述第一编码包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
解码模块402,用于根据所述第二编码数据恢复所述丢失数据单元。
可选的,所述解码模块402还用于:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
可选的,所述解码模块402具体用于:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
可选的,所述解码模块402具体用于:
将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关冗余编码单元中所有与所述现存编码信息相同的信息。
可选的,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述解码模块402具体用于:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
可选的,所述解码模块402具体用于:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示,用于对所述第二目标信息段进行循环移位操作;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
可选的,上述接收端设备还可以包括发送模块403,接收模块401和发送模块403可以为接口电路或者收发器。接收模块401和发送模块403可以为独立的模块,也可以集成为收发模块(图未示),收发模块可以实现上述接收模块401和发送模块403的功能。
可选的,上述解码模块402可以是芯片,编码器,编码电路或其他可以实现本申请方法的集成电路。
由于具体的方法和实施例在前面已经介绍过,该接收端设备400是用于执行对应于接收端设备的通信方法,因此涉及通信方法的具体描述,特别是接收模块401和发送模块403的功能可以参考对应实施例的相关部分,此处不再赘述。
可选的,接收端设备400还可以包括存储模块(图中未示出),该存储模块可以用于存储数据和/或信令,存储模块可以和解码模块402耦合,也可以和接收模块401或发送模块403耦合。例如,解码模块402可以用于读取存储模块中的数据和/或信令,使得前述方法实施例中的通信方法被执行。
如图5所示,图5示出了本申请实施例中的一种通信装置的结构示意图。终端设备和接入网设备的结构可以参考图5所示的结构。通信装置500包括:处理器111和通收发器112,所述处理器111和所述收发器112之间电偶合;
所述处理器111,用于执行所述存储器中的部分或者全部计算机程序指令,当所述部分或者全部计算机程序指令被执行时,使得所述装置执行上述任一实施例所述的方法。
所述收发器112,用于和其他设备进行通信;例如接收来自终端设备的第一上行控制信号,所述第一上行控制信号用于指示网络设备发送第一下行共享信号;根据所述第一上行控制信号发送所述第一下行共享信号。
可选的,还包括存储器113,用于存储计算机程序指令,可选的,所述存储器113(Memory#1)位于所述装置内,所述存储器113(Memory#2)与处理器111集成在一起,或者所述存储器113(Memory#3)位于所述装置之外。
应理解,图5所示的通信装置500可以是芯片或电路。例如可设置在终端装置或者通信装置内的芯片或电路。上述收发器112也可以是通信接口。收发器包括接收器和发送器。进一步地,该通信装置500还可以包括总线系统。
其中,处理器111、存储器113、收发器112通过总线系统相连,处理器111用于执行该存储器113存储的指令,以控制收发器接收信号和发送信号,完成本申请涉及的实现方法中第一设备或者第二设备的步骤。所述存储器113可以集成在所述处理器111中,也可以与所述处理器111分开设置。
作为一种实现方式,收发器112的功能可以考虑通过收发电路或者收发专用芯片实现。处理器111可以考虑通过专用处理芯片、处理电路、处理器或者通用芯片实现。处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片或其他通用处理器。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)及其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等或其任意组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。应注意,本申请描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例提供的了一种通信系统,包括发送端设备和接收端设备,其中发送端设备可以包括如图3所述的终端设备300,接收端设备可以包括如图4所述接收端设备400,发送端设备和接收端设备对应的结构可以如图5所述的通信装置500。该通信系统可以用于执行上述的适用于上述发送端设备和接收端设备的通信方法和具体实施例,具体执行过程参见图2A~图2E的描述内容。
本申请实施例提供了一种通信装置,包括逻辑电路,用于执行上述图3发送端设备中编码模块执行的步骤;
输出接口,用于执行上述图3发送端设备中发送模块执行的步骤。
可选的,还可以包括输入接口,用于执行上述图3发送端设备中接收模块执行的步骤。
本申请实施例提供了一种通信装置,包括输入接口,用于执行上述图4接收端设备中接收模块执行的步骤;
逻辑电路,用于执行上述图4发送端设备中编码模块执行的步骤;
可选的,还可以包括输出接口,用于执行上述图4发送端设备中发送模块执行的步骤。
本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述实施例中对应用于发送端设备的方法。
本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述实施例中对应用于接收端设备的方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中对应用于发送端设备的方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中对应用于接收端的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和实现方式约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者接入网设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (29)

1.一种数据恢复方法,应用于发送端,其特征在于,所述方法包括:
生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送所述第一编码数据。
2.根据权利要求1所述的方法,其特征在于,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
3.根据权利要求1或2所述的方法,其特征在于,在所述发送第一编码数据之前,所述方法还包括:
将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述相关原始数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
4.根据权利要求3所述的方法,其特征在于,所述w个信息段中的每个信息段包括L个信息符号,所述对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,包括:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个组合信息段对应的第一编码信息。
5.根据权利要求4所述的方法,其特征在于,所述L满足L+1为质数且2为L+1的一个原根。
6.根据权利要求4或5所述的方法,其特征在于,所述对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息,包括:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure FDA0002453032130000011
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[IL|1]为奇偶校验矩阵,H=[IL|0]T为删除矩阵,
Figure FDA0002453032130000012
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素ti,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵定义为:由块矩阵T中第1≤i1<i2<…<ip≤m(δ+1)行以及第1≤j1<j2<…<jp≤n(δ+1)列中的块元素
Figure FDA0002453032130000021
构成的pL×pL阶子矩阵
Figure FDA0002453032130000022
其中ik,jk满足
Figure FDA0002453032130000023
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure FDA0002453032130000024
表示;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
7.根据权利要求3-5任一项所述的方法,其特征在于,所述信息符号为κ字节长度的列向量,其中κ为大于或等于1的整数。
8.一种数据恢复方法,应用于接收端,其特征在于,所述方法包括:
接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
根据所述第二编码数据恢复所述丢失数据单元。
9.根据权利要求8所述的方法,其特征在于,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
10.根据权利要求8或9所述的方法,其特征在于,在根据所述第二编码数据恢复所述丢失数据单元进行恢复之前,所述方法还包括:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
11.根据权利要求8-10任一项所述的方法,其特征在于,所述根据所述第二编码数据恢复所述丢失数据单元,包括:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
12.根据权利要求11所述的方法,其特征在于,所述对所述相关现存数据单元的第k个组合信息段进行编码与对所述相关原始数据单元的第k个组合信息段进行编码的操作相同,所述根据所述现存编码信息对所述相关现存冗余编码单元进行消元包括:
将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关现存冗余编码单元中所有与所述现存编码信息相同的信息。
13.根据权利要求11或12所述的方法,其特征在于,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述对所述第一冗余编码单元进行解码,获得所述丢失数据单元,包括:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
14.根据权利要求13所述的方法,其特征在于,所述对所述第二目标信息进行解码,获得所述第二目标信息段对应的第二目标编码信息,包括:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
15.一种发送端设备,其特征在于,所述设备包括:
编码模块,用于生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送模块,用于发送所述第一编码数据。
16.根据权利要求15所述的设备,其特征在于,所述编码模块具体用于:
将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
17.根据权利要求16所述的设备,其特征在于,所述w个信息段中的每个信息段包括L个信息符号,所述编码模块还用于:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
18.根据权利要求17所述的设备,其特征在于,所述编码模块还用于:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure FDA0002453032130000041
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[IL|1]为奇偶校验矩阵,H=[IL|0]T为删除矩阵,
Figure FDA0002453032130000042
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素ti,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵为:由块矩阵T中第1≤i1<i2<…<ip≤m(δ+1)行以及第1≤j1<j2<…<jp≤n(δ+1)列中的块元素
Figure FDA0002453032130000043
构成的pL×pL阶子矩阵
Figure FDA0002453032130000044
其中ik,jk满足
Figure FDA0002453032130000045
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure FDA0002453032130000046
表示;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
19.一种接收端设备,其特征在于,所述设备包括:
接收模块,用于接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
解码模块,用于根据所述第二编码数据恢复所述丢失数据单元。
20.根据权利要求19所述的设备,其特征在于,所述解码模块还用于:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
21.根据权利要求19或20所述的设备,其特征在于,所述解码模块具体用于:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
22.根据权利要求21所述的设备,其特征在于,所述解码模块具体用于:
将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关现存冗余编码单元中所有与所述现存编码信息相同的信息。
23.根据权利要求21或22所述的设备,其特征在于,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述解码模块具体用于:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
24.根据权利要求23所述的设备,其特征在于,所述解码模块具体用于:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
25.一种通信装置,其特征在于,包括:
输入接口,用于执行上述如权利要求15-18中任一项发送端设备或如权利要求19-24任一项接收端设备中接收模块执行的步骤;
逻辑电路,用于执行上述如权利要求15-18中任一项发送端设备中编码模块执行的步骤,或用于执行如权利要求19-24任一项接收端设备中解码模块执行的步骤;
输出接口,用于执行上述如权利要求15-18中任一项发送端设备或如权利要求19-24任一项接收端设备中发送模块执行的步骤。
26.一种通信装置,其特征在于,所述装置包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:
所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述装置执行如权利要求1-7中任一项所述的方法,或执行如权利要求8-14中任一项所述的方法。
27.一种可读存储介质,其特征在于,用于存储指令,当所述指令被执行时,使如权利要求1-7中任一项所述的方法被实现,或者使如权利要求8-14中任一项所述的方法被实现。
28.一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,使得计算机执行如权利要求1-7或8-14中任一项所述的方法。
29.一种通信系统,包括如权利要求15-18中任一项所述的发送端设备,如权利要求19-24中任一项所述的接收端设备。
CN202010298281.9A 2020-04-16 2020-04-16 数据恢复方法及装置 Pending CN113541856A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010298281.9A CN113541856A (zh) 2020-04-16 2020-04-16 数据恢复方法及装置
PCT/CN2021/087743 WO2021209037A1 (zh) 2020-04-16 2021-04-16 数据恢复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010298281.9A CN113541856A (zh) 2020-04-16 2020-04-16 数据恢复方法及装置

Publications (1)

Publication Number Publication Date
CN113541856A true CN113541856A (zh) 2021-10-22

Family

ID=78084657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010298281.9A Pending CN113541856A (zh) 2020-04-16 2020-04-16 数据恢复方法及装置

Country Status (2)

Country Link
CN (1) CN113541856A (zh)
WO (1) WO2021209037A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114550806A (zh) * 2022-04-26 2022-05-27 杭州阿姆科技有限公司 一种应用于ssd上的双层纠错方法
CN116560915A (zh) * 2023-07-11 2023-08-08 北京谷数科技股份有限公司 数据恢复方法、装置、电子设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448588B (zh) * 2022-01-14 2024-01-23 杭州网易智企科技有限公司 音频传输方法、装置、电子设备及计算机可读存储介质
CN115085872A (zh) * 2022-03-09 2022-09-20 网易(杭州)网络有限公司 数据处理方法及装置、存储介质、电子设备
CN114828143A (zh) * 2022-03-19 2022-07-29 西安电子科技大学 一种无线多跳传输方法、系统、存储介质、设备及终端

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100542048C (zh) * 2007-08-27 2009-09-16 北京航空航天大学 一种基于帧间相关的前向纠错编解码方法
CN101656593B (zh) * 2009-09-15 2013-05-22 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置
CN103873071B (zh) * 2012-12-10 2016-12-21 华为技术有限公司 一种前向纠错编码、译码方法和装置、通信设备及系统
EP3232576A1 (en) * 2016-04-15 2017-10-18 Alcatel Lucent Feed-forward staircase codes for channel coding in optical communication systems

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114550806A (zh) * 2022-04-26 2022-05-27 杭州阿姆科技有限公司 一种应用于ssd上的双层纠错方法
CN114550806B (zh) * 2022-04-26 2022-08-05 杭州阿姆科技有限公司 一种应用于ssd上的双层纠错方法
CN116560915A (zh) * 2023-07-11 2023-08-08 北京谷数科技股份有限公司 数据恢复方法、装置、电子设备及存储介质
CN116560915B (zh) * 2023-07-11 2023-09-19 北京谷数科技股份有限公司 数据恢复方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2021209037A1 (zh) 2021-10-21

Similar Documents

Publication Publication Date Title
CN113541856A (zh) 数据恢复方法及装置
US20210160003A1 (en) Networking Coding System in a Network Layer
WO2016045391A1 (zh) 一种数据传输方法及装置
JP5863200B2 (ja) フレキシブルなソースブロックのマッピングを伴う伸縮性符号を使用した符号化および復号
CN108282246B (zh) 信息处理的方法、设备和通信系统
CN110383728B (zh) 使用外码和非等长码块的系统和方法
CN101800757A (zh) 一种基于单光纤结构的无反馈单向数据传输方法
CN111919406A (zh) 用于使用外码的harq重传的系统和方法
EP3345323B1 (en) Retransmission technique
CN103873071A (zh) 一种前向纠错编码、译码方法和装置、通信设备及系统
US20130238962A1 (en) Systems and methods for network coding using convolutional codes
US9113470B2 (en) Systems and methods for network coding using maximum distance separable (MDS) linear network codes
JP2023157921A (ja) メディア内容に基づく自己適応システムコードfec符号化および復号化方法、装置、システムおよび媒体
Luyi et al. Forward error correction
TWI435623B (zh) 用於無線多播及廣播服務之方法及系統
CN114079530A (zh) 编码方法及装置
WO2022105753A1 (zh) 网络数据编码传输方法及装置
KR20090061563A (ko) 오류제어방법
WO2019214265A1 (zh) 计算循环冗余校验crc编码的方法及装置
CN108696283B (zh) 数据编码和译码的方法和装置
CN103227693B (zh) 增压码
CN115549849A (zh) 数据处理方法及装置
CN113037437A (zh) 数据传输方法及装置
Chen Analysis of forward error correcting codes
CN102624493B (zh) 接收机解码方法及装置

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