CN115549848A - 一种数据传输方法和通信装置 - Google Patents

一种数据传输方法和通信装置 Download PDF

Info

Publication number
CN115549848A
CN115549848A CN202110724419.1A CN202110724419A CN115549848A CN 115549848 A CN115549848 A CN 115549848A CN 202110724419 A CN202110724419 A CN 202110724419A CN 115549848 A CN115549848 A CN 115549848A
Authority
CN
China
Prior art keywords
packets
packet
original
coding
check
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
CN202110724419.1A
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 CN202110724419.1A priority Critical patent/CN115549848A/zh
Priority to PCT/CN2022/100340 priority patent/WO2023273975A1/zh
Publication of CN115549848A publication Critical patent/CN115549848A/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/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
    • 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/0045Arrangements at the receiver 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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种数据传输方法和通信装置,该方法包括:获取K(K>1且为整数)个原始包;基于该K个原始包进行网络编码,得到并发送K个系统包和R(R≥1且为整数)个校验包;该K个原始包在编码单元中的顺序与K个原始包的序列号的大小顺序不一致。每个系统包的包头中包括所对应的原始包的位置信息,以用于指示原始包在编码单元中的相对位置,和/或,每个校验包的包头中包括排序信息,以用于指示该K个原始包在编码单元中的顺序。因此,接收端可以基于该位置信息或排序信息准确地确定每个原始包或校验包对应的编码系数,进而准确地译码得到K个原始包,提高了传输可靠性。本方案可以应用于扩展现实XR业务或其他低时延业务。

Description

一种数据传输方法和通信装置
技术领域
本申请涉及通信领域,并且更具体地,涉及一种数据传输方法和通信装置。
背景技术
网络编码(network coding,NC)技术可用于对多个原始数据包进行网络编码生成编码数据包。通过传输编码数据包可以兼顾时延和频谱效率性能。
本申请的发明人在研究网络编码技术的过程中发现,一同编码的多个原始包中各原始包的序列号的大小顺序与预定义的编码系数中各元素的排序是一致的,即,各原始包与编码系数中各元素的对应关系是固定的,但这可能会带来一定的传输开销,导致频谱资源的利用率不高。如何使得网络编码过程各原始包与编码系数中各元素的对应关系可变的同时避免该网络编码对应译码错误,是一个亟待解决的问题。
发明内容
本申请实施例提供了一种数据传输方法和通信装置,以期使得网络编码过程各原始包与编码系数中各元素的对应关系可变的同时与该网络编码对应译码过程也可以正确完成,进而可以提高译码的正确率。
第一方面,本申请提供了一种数据传输方法,该方法可以由发送端执行,或者,也可以由配置在发送端中的部件(如芯片、芯片系统等)执行,或者,还可以由能够实现全部或部分发送端功能的逻辑模块或软件实现,本申请对此不作限定。
示例性地,该方法包括:获取K个原始包,K>1且为整数;基于所述K个原始包进行网络编码,得到K个系统包和R个校验包;其中,所述K个原始包在编码单元中的顺序与所述K个原始包的序列号的大小顺序不一致;所述K个系统包中第k个系统包的包头包括所述第k个系统包对应的原始包的位置信息,所述位置信息用于指示所述第k个系统包对应的原始包在所述编码单元中的相对位置,和/或,所述R个校验包中的每个校验包的包头包括排序信息,所述排序信息用于指示所述K个原始包在所述编码单元中的顺序;1≤k≤K,R≥1,k、R为整数。
应理解,K个原始包在编码单元中的顺序与K个原始包的序列号的大小顺序不一致,也就是,该K个原始包中至少有一个原始包在编码单元中的相对位置与在K个原始包中的相对位置不一致。换言之,该K个原始包在进入编码单元之前可能进行了排序。
还应理解,编码单元例如可以是编码窗,或者也可以是编码分组。本申请对此不作限定。其中,编码窗可以是针对滑动窗口网络编码类型而言的,在本申请实施例中,该K个原始包可以一同输入至编码窗中进行网络编码。编码分组可以是针对分组编码而言的,在本申请实施例中,该K个原始包可以作为一个组进行网络编码。
基于上述技术内容,发送端对多个原始包进行网络编码前进行了排序,使得各原始包与编码系数中各元素的对应关系可变,因此发送端可以以减小传输开销为目标,根据编码系数和原始包的长度灵活调整各原始包对应的编码系数。并且,发送端在编码包包头携带可用于指示该K个原始包分别在编码单元中的相对位置的位置信息或K个原始包在编码单元中的排序信息,即便对K个原始包在编码单元中的相对位置与K个原始包的序列号的大小顺序不一致,接收端仍然可以根据包头准确地确定出每个原始包或系统包对应的编码系数,进而可以准确地译码得到K个原始包。因此可以提高传输可靠性,减少重传次数。总体而言,有利于提高频谱资源的利用率。
结合第一方面,在第一方面的某些可能的实现方式中,所述网络编码为移位异或(shift exclusive or,shift XOR)编码。
采用移位异或编码,不仅编码复杂度低,而且编码效率高。接收端收到任意K个数据包 (包括系统包和/或校验包)都可以恢复出K个原始包。
可选地,所述K个原始包中的至少两个原始包的长度不同,所述K个原始包在所述编码单元中的顺序与所述R个校验包对应的R组编码系数中各编码系数定义的位移量以及所述K 个原始包的长度相关。
K个原始包中的至少两个原始包的长度不同,也就是,该K个原始包不等长。根据K个原始包的长度和各编码系数定义的位移量,对不等长的K个原始包进行排序,并对排序后的原始包进行移位异或编码,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
进一步地,所述R个校验包中的每个校验包基于R组编码系数中的一组编码系数对所述 K个原始包进行网络编码得到;或,所述R个校验包中的每个校验包基于R组编码系数中的一组编码系数对K个系统包进行网络编码得到,所述K个系统包与所述K个原始包对应。
也就是说,校验包可以基于原始包进行网络编码得到,也可以基于系统包进行网络编码得到。本申请实施例对此不作限定。无论是基于原始包进行网络编码还是基于系统包进行网络编码,每个校验包都可与一组编码系数对应,故R个校验包可以与R组编码系数对应。
在一种可能的设计中,所述R组编码系数来自预定义的Q组编码系数,所述Q组编码系数中的每组编码系数包括P个编码系数,P≥K,Q≥R,P、Q为整数。
在一种可能的设计中,所述R个校验包和所述R组编码系数满足:
Figure BDA0003137297870000021
其中,y1至yR表示所述R个校验包,x1至xK表示K个被编码的数据包,所述K个被编码的数据包包括所述K个原始包或所述K个系统包,
Figure BDA0003137297870000022
为所述R个校验包的生成矩阵,所述生成矩阵中的
Figure BDA0003137297870000023
包括用于生成所述R个校验包中的第r个校验包的一组编码系数,所述第r个校验包的数据满足:
Figure BDA0003137297870000024
Figure BDA0003137297870000025
表示异或处理,
Figure BDA0003137297870000026
表示对原始包xk的移位操作,tk,r表示所述生成矩阵中第k行、第r列的编码系数定义的位移量,1≤k≤K,1≤r≤R,tk,r≥0,k、r和tk,r为整数;且,当tk,r≥1时,
Figure BDA0003137297870000031
满足:
Figure BDA0003137297870000032
Figure BDA0003137297870000033
表示对被编码的数据包xk中的第m-tk,r个移位单元向右移动tk,r个移位单元得到的第m个移位单元,M表示所述被编码的数据包xk包含的移位单元的个数;1≤m≤M+tk,r,M≥1,m、M为整数。
由于在移位异或编码过程中,会对数据包进行移位处理,移位的粒度是一个移位单元,因此,原始包的长度可以是指将原始包按照移位单元的粒度来划分的得到的若干个移位单元。移位单元可以为比特、字节、符号等。例如,1个移位单元可以为a个比特,a个字节或a个符号等,a≥1且为整数。比如,1个移位单元可以为1个比特,1个字节(即,8个比特)或1个符号等。其中,1个符号可以包括1个或多个比特。
可选地,所述生成矩阵中的编码系数满足:
Figure BDA0003137297870000034
其中,k1和k2表示所述生成矩阵中的两个行的序号,r1和r2表示所述生成矩阵中的两个列的序号,且满足: K≥k2>k1≥1,R≥r2>r1≥1;所述K个原始包中的任意两个原始包
Figure BDA0003137297870000035
Figure BDA0003137297870000036
满足:原始包
Figure BDA0003137297870000037
在所述编码单元中的位置处于原始包
Figure BDA0003137297870000038
之前,且
Figure BDA0003137297870000039
Figure BDA00031372978700000310
表示原始包
Figure BDA00031372978700000311
包含的移位单元的个数,
Figure BDA00031372978700000312
表示原始包
Figure BDA00031372978700000313
包含的移位单元的个数。
由于该生成矩阵中的编码系数的上述特点,对不等长的K个原始包按照长度由大到小的顺序进行排序,并对排序后的原始包进行移位异或编码,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
第二方面,本申请提供了一种数据传输方法,该方法可以由接收端执行,或者,也可以由配置在接收端中的部件(如芯片、芯片系统等)执行,或者,还可以由能够实现全部或部分接收端功能的逻辑模块或软件实现,本申请对此不作限定。
示例性地,该方法包括:接收多个编码包;基于所述多个编码包,得到K个原始包;所述K个原始包的顺序与所述K个原始包在编码单元中的顺序一致,但与所述K个原始包的序列号的大小顺序不一致;所述多个编码包包括系统包和/或校验包;所述系统包的包头包括所述系统包对应的原始包的位置信息,所述位置信息用于指示所述原始包在所述编码单元中的相对位置,和/或,所述校验包的包头包括排序信息,所述排序信息用于指示所述K个原始包在所述编码单元中的顺序。
应理解,编码单元可对应译码(或者说,解码)单元,或者称,译码单元。原始包在编码单元中的相对位置,也即,原始包在译码单元中的相对位置。K个原始包在编码单元中的顺序,也即K个原始包在译码单元中的顺序。还应理解,接收端基于接收到的编码包恢复得到的K个原始包的顺序与发送端获取到的K个原始包的顺序不同。
还应理解,该多个编码包可以包括至少一个系统包和/或至少一个校验包,本申请对于接收到系统包的数量和校验包的数量均不作限定。如果发送端发送的系统包的包头携带了位置信息,接收端在接收到系统包的情况下,便可以解析到该系统包包头的位置信息;如果发送端发送的校验包的包头携带了排序信息,接收端在接收到校验包的情况下,便可以解析到该校验包包头的排序信息。
基于上述技术内容,发送端对多个原始包进行网络编码前进行了排序,使得各原始包与编码系数中各元素的对应关系可变,因此发送端可以以减小传输开销为目标,根据编码系数和原始包的长度灵活调整各原始包对应的编码系数。并且,发送端在编码包包头携带可用于指示该K个原始包分别在编码单元中的相对位置的位置信息或K个原始包在编码单元中的排序信息,即便对K个原始包在编码单元中的相对位置与K个原始包的序列号的大小顺序不一致,接收端仍然可以根据包头准确地确定出每个原始包或系统包对应的编码系数,进而可以准确地译码得到K个原始包。因此可以提高传输可靠性,减少重传次数。总体而言,有利于提高频谱资源的利用率。
结合第二方面,在第二方面的某些可能的实现方式中,所述多个编码包是基于所述K个原始包进行移位异或编码得到的。
采用移位异或编码,不仅编码复杂度低,而且编码效率高。接收端收到任意K个数据包 (包括系统包和/或校验包)都可以恢复出K个原始包。
可选地,所述K个原始包在所述编码单元中的顺序与所述生成矩阵中各编码系数定义的位移量以及所述K个原始包的长度相关。
根据K个原始包的长度和各编码系数定义的位移量,对不等长的K个原始包进行排序,并对排序后的原始包进行移位异或编码,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
进一步地,用于生成所述校验包的编码系数来自预定义的Q组编码系数,所述Q组编码系数中的每组编码系数包括P个编码系数,P≥K,Q≥1,P、Q为整数。
在一种可能的设计中,所述P组编码系数对应P×Q维的矩阵H1
Figure BDA0003137297870000041
其中,用于生成所述校验包中的一个校验包的编码系数来自所述矩阵H1的第q列中的K 个编码系数
Figure BDA0003137297870000042
所述校验包的数据yq满足:
Figure BDA0003137297870000043
Figure BDA0003137297870000044
表示异或处理,
Figure BDA0003137297870000045
表示对被编码的数据包xk的移位操作,所述被编码的数据包包括原始包或所述原始包对应的系统包,tk,q表示所述矩阵H1中对应于所述被编码的数据包xk的编码系数定义的位移量,且
Figure BDA0003137297870000046
来自所述矩阵H1中的第q列,1≤k≤K,1≤q≤Q,tk,q≥0,k、q 和tk,q为整数;且,当tk,q≥1时,
Figure BDA0003137297870000047
满足:
Figure BDA0003137297870000048
Figure BDA0003137297870000049
表示对所述被编码的数据包xk中的第m-tk,q个移位单元向右移动tk,q个移位单元得到的第m 个移位单元,M表示所述被编码的数据包xk包含的移位单元的个数;1≤m≤M+tk,q,M≥1, m、M为整数。
还应理解,每组编码系数包括K个编码系数,该K个编码系数可以是取自矩阵H1中的一列中的K个元素,该K个元素例如可以是连续的K个元素,如,该列中的前K个元素、后K个元素,或将某一预定义的序号作为起始位置而确定的K个元素;该K个元素也可以是不连续的K个元素。本申请实施例对此不作限定。
可选地,所述矩阵H1中的元素满足:
Figure BDA00031372978700000410
其中,p1和p2表示所述矩阵H1中的两个行的序号,q1和q2表示所述矩阵H1中的两个列的序号,且满足:P≥p2>p1≥1,Q≥q2>q1≥1;所述K个原始包中的任意两个原始包
Figure BDA00031372978700000411
Figure BDA00031372978700000412
满足:原始包
Figure BDA00031372978700000413
在所述K个原始包中的位置处于原始包
Figure BDA00031372978700000414
之前,且
Figure BDA00031372978700000415
Figure BDA00031372978700000416
表示原始包
Figure BDA00031372978700000417
的长度,
Figure BDA00031372978700000418
表示原始包
Figure BDA00031372978700000419
的长度。
由于矩阵H1中的编码系数的上述特点,对不等长的K个原始包按照长度由大到小的顺序进行排序,并对排序后的原始包进行移位异或编码,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
可选地,所述K个原始包中的至少两个原始包的长度不同,且所述K个原始包的顺序与所述矩阵H1中各编码系数定义的位移量以及所述K个原始包的长度相关。
K个原始包中的至少两个原始包的长度不同,也就是,该K个原始包不等长。根据K个原始包的长度和各编码系数定义的位移量,对不等长的K个原始包进行排序,并对排序后的原始包进行移位异或编码,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
结合第一方面或第二方面,下文提供了四种可能的包头设计,以在系统包的包头携带位置信息和/或在校验包的包头携带排序信息。
在第一种可能的设计中,所述第k个系统包对应的原始包的位置信息包括:所述第k个系统包对应的原始包的包标识,所述包标识指示所述原始包在所述编码单元中的相对位置。
由于包标识指示的是与系统包对应的原始包在编码单元中的位置处于K个原始包中的第几个,即,指示该系统包对应的原始包在编码单元中的相对位置,因此,在系统包的包头携带其对应的原始包的包标识,可以使得接收端确定接收到的系统包或其对应的原始包在译码单元中的相对位置,由此可以准确确定出每个编码包对应的编码系数,进而能够准确译码获得K个原始包。并且,通过包标识便可确定出原始包在编码单元中的相对位置,相比较而言,开销较小。
在第二种可能的设计中,所述第k个系统包对应的原始包的位置信息包括:用于生成所述第k个系统包的编码系数的指示信息,所述编码系数包括一个非零元素,且所述非零元素在所述编码系数中的序号与所述第k个系统包对应的原始包在所述编码单元中的序号相同。
应理解,非零元素可以是指数值不为零的元素;非零元素可以包括移位位数大于或等于零的元素。
由于编码系数中的非零元素的序号与原始包在编码单元中的序号相同,也就是,编码系数中非零元素的位置,可确定系统包对应的原始包在编码单元中的相对位置。从而,接收端可以根据接收到的系统包或其对应的原始包在译码单元中的相对位置,由此可以准确确定出每个编码包对应的编码系数,进而能够准确译码获得K个原始包。并且,编码系数的指示信息一方面可用于指示系统包的编码系数,又可以用于确定原始包在编码单元中的相对位置,即,对已有的字段增加了新的功能,可以避免包头开销。
在第三种可能的设计中,所述每个校验包的包头中的排序信息包括:按照所述K个原始包在所述编码单元中的顺序排序的K个原始包的序列号。
应理解,序列号用于区分原始包的标识,每传输一个原始包,序列号就会递增1。序列号仅为一种可能的命名,以便于与上文所述的包标识区分,但本申请并不排除在未来的协议中通过其他命名来替代序列号以实现相同或相似功能的可能。
由于校验包的包头中K个原始包的序列号的排序对应于K个原始包在编码单元中的顺序,接收端接收到校验包后,能够准确地确定出每个编码包对应的编码系数,从而可以准确译码获得K个原始包。
在第四种可能的设计中,所述每个校验包的包头中的排序信息包括:用于指示按照在所述编码单元中的顺序排序的所述K个原始包的长度的信息。
由于校验包的包头中K个原始包的长度排序对应于K个原始包在编码单元中的顺序,由于K个原始包的长度不同,而接收端本身能够获得接收到的系统包对应的原始包的长度,故接收端能够准确地确定出每个编码包对应的编码系数,从而可以准确译码获得K个原始包。
应理解,本申请对于该K个原始包的长度的指示方式不作限定。例如,可以直接指示该 K个原始包的长度。又例如,可以将预定义的多个不同的长度与多个索引对应,通过该K个原始包的长度分别对应的索引来指示该K个原始包的长度。本申请包含但不限于此。
第三方面,本申请提供了一种数据传输方法,该方法可以由发送端执行,或者,也可以由配置在发送端中的部件(如芯片、芯片系统等)执行,或者,还可以由能够实现全部或部分发送端功能的逻辑模块或软件实现,本申请对此不作限定。
示例性地,该方法包括:获取K个原始包,K>1且为整数;基于R组编码系数对所述K个原始包进行网络编码,得到R个校验包;所述R组编码系数与R个系数向量对应,每组编码系数与所对应的系数向量满足行变换关系或列变换关系;所述R个校验包中的第r个校验包的包头包括:用于生成所述第r个校验包的一组编码系数对应的系数向量的指示信息,以及所述行变换关系或列变换关系的指示信息;1≤r≤R,R≥1,r、R为整数;发送所述R 个校验包。
应理解,编码系数与所对应的系数向量满足行变换关系或列变换关系,也即编码系数与所对应的系数向量可能具有相同的元素,但不同的排序。换言之,该编码系数可能是经过系数向量经过行变换或列变换得到的。
基于上述技术内容,发送端在对多个原始包进行网络编码时,对预定义的系数向量进行行变换或列变换,使得各原始包与编码系数中各元素的对应关系可变,因此发送端可以以减小传输开销为目标,根据编码系数和原始包的长度灵活调整各原始包对应的编码系数。并且,发送端在编码包包头携带可用于指示编码系数与系数向量的行变换关系或列变换关系,使得接收端根据包头可以准确地确定出每个原始包或系统包对应的编码系数,进而可以准确地译码得到K个原始包。因此可以提高传输可靠性,减少重传次数。总体而言,有利于提高频谱资源的利用率。
结合第三方面,在某些可能的实现方式中,所述网络编码为移位异或编码。
采用移位异或编码,不仅编码复杂度低,而且编码效率高。接收端收到任意K个数据包 (包括系统包和/或校验包)都可以恢复出K个原始包。
结合第三方面,在某些可能的实现方式中,所述R个系数向量来自预定义的Q个系数向量,所述Q个系数向量中的每个系数向量包括P个编码系数,P≥K,Q≥R,P、Q为整数。
应理解,该Q个系数向量可以为行向量,也可以为列向量,本申请对此不作限定。
结合第三方面,在某些可能的实现方式中,R组编码系数与R个系数向量的关系可以满足以下几种可能的情况中的一种或多种。下文结合行向量和列向量分别对R组编码系数与R 个系数向量的关系做了详细说明。
一种可能的情况是,所述R个校验包和所述R组编码系数满足:
Figure BDA0003137297870000061
其中,y1至yR表示所述R个校验包中的数据,x1至xK表示K个被编码的数据包,所述K个被编码的数据包包括所述K个原始包或所述K个系统包,
Figure BDA0003137297870000071
为所述R个校验包的生成矩阵,所述生成矩阵中的
Figure BDA0003137297870000072
包括用于生成所述R个校验包中的第r个校验包的一组编码系数,所述第r个校验包的数据满足:
Figure BDA0003137297870000073
Figure BDA0003137297870000074
表示异或处理,
Figure BDA0003137297870000075
表示对被编码的数据包xk的移位操作, tk,r表示所述生成矩阵中第k行、第r列的编码系数定义的位移量,1≤k≤K,1≤r≤R,tk,r≥ 0,k、r和tk,r为整数;且,当tk,r≥1时,
Figure BDA0003137297870000076
满足:
Figure BDA0003137297870000077
Figure BDA0003137297870000078
表示对被编码的数据包xk中的第m-tk,r个移位单元向右移动tk,r个移位单元得到的第m个移位单元,M表示所述被编码的数据包xk包含的移位单元的个数;1≤m≤M+tk,r,M ≥1,m、M为整数。
可以看到,R组编码系数为上述生成矩阵中的R个列,该R组编码系数可以是从R个系数向量确定的。对R个系数向量进行行变换可以得到如上所示的R组编码系数。由于对R个系数向量进行行变换不会改变R组编码系数的线性无关特性,因此可以保证编码效率。
可选地,所述R组编码系数中的不同组编码系数与所对应的系数向量所满足的的行变换关系相同。
换句话说,R组编码系数中的任意两组编码系数与所对应的系数向量所满足的行变换关系相同。这也就意味着,该R个系数向量经过相同的行变换得到了R组编码系数。这就好比在网络编码前对K个原始包进行了排序,排序后的K个原始包在编码单元中对应的编码系数与系数向量中各元素的排序不一致。
进一步地,所述K个原始包中的至少两个原始包的长度不同,且所述R组编码系数中的每组编码系数与所对应的系数向量所满足的行变换关系与所述所对应的系数向量中各元素定义的位移量以及所述K个原始包的长度相关。
K个原始包中的至少两个原始包的长度不同,也就是,该K个原始包不等长。根据K个原始包的长度和R个系数向量中各元素定义的位移量,对每个系数向量进行行变换,再使用经过行变换后的编码系数对原始包进行移位异或编码,使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
一种可能的设计是,所述生成矩阵中的元素满足:
Figure BDA0003137297870000079
其中,k1和k2表示所述生成矩阵中的两个行的序号,r1和r2表示所述生成矩阵中的两个列的序号,且满足:K≥k2>k1≥1,R≥r2>r1≥1,k1、k2、r1、r2为整数;且,所述编码系数与对应的系数向量满足行变换关系,且所述行变换关系为:所述系数向量中的第n1个元素经行变换后成为所述编码系数中的第n2个编码系数,其中,n1为所述K个原始包中的第n2个原始包按照所述K个原始包的长度按照从大到小的顺序排序后的序号;K≥n1≥1,K≥n2≥1,n1、n2为整数。
由于该生成矩阵中的编码系数的上述特点,对系数向量进行进行行变换时,可以将移位位数较小的编码系数变换到长度较大的原始包所对应的位置上,将移位位数较大的编码系数变换到长度较小的原始包所对应的位置上。因此,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,减小因移位操作而引入的传输开销,提高频谱资源的利用率。
另一种可能的情况是,所述R个校验包和所述R组编码系数满足:
Figure BDA0003137297870000081
其中,y1至yR表示所述R个校验包中的数据,x1至xK表示被编码的数据包,所述K个被编码的数据包包括所述K个原始包或所述K个系统包,
Figure BDA0003137297870000082
为所述R个校验包的生成矩阵,所述生成矩阵中包括用于生成所述R个校验包中的第r个校验包的一组编码系数
Figure BDA0003137297870000083
所述第r个校验包的数据满足:
Figure BDA0003137297870000084
Figure BDA0003137297870000085
表示异或处理,
Figure BDA0003137297870000086
表示对被编码的数据包xk的移位操作,tr,k表示所述生成矩阵中第r 行、第k列的编码系数定义的位移量,1≤k≤K,1≤r≤R,tr,k≥0,k、r和tr,k为整数;且,当tk,r≥1时,
Figure BDA0003137297870000087
满足:
Figure BDA0003137297870000088
Figure BDA0003137297870000089
表示对所述被编码的数据包xk中的第m-tr,k个移位单元向右移动tr,k个移位单元得到的第m个移位单元,M 表示所述被编码的数据包xk包含的移位单元的个数;1≤m≤M+tr,k,M≥1,m、M为整数。
可以看到,R组编码系数为上述生成矩阵中的R个行,该R组编码系数可以是从R个系数向量确定的。对R个系数向量进行列变换可以得到如上所示的R组编码系数。由于对R个系数向量进行列变换不会改变R组编码系数的线性无关特性,因此可以保证编码效率。
可选地,所述R组编码系数中的不同组编码系数与所对应的系数向量所满足的列变换关系相同。
换句话说,R组编码系数中的任意两组编码系数与所对应的系数向量所满足的列变换关系相同。这也就意味着,该R个系数向量经过相同的列变换得到了R组编码系数。这就好比在网络编码前对K个原始包进行了排序,排序后的K个原始包在编码单元中对应的编码系数与系数向量中各元素的排序不一致。
进一步地,所述K个原始包中的至少两个原始包的长度不同,且所述R组编码系数与R 个系数向量的列变换关系与所述R个系数向量中各元素定义的位移量以及所述K个原始包的长度相关。
根据K个原始包的长度和R个系数向量中各元素定义的位移量,对每个系数向量进行列变换,再使用经过列变换后的编码系数对原始包进行移位异或编码,使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
一种可能的设计是,所述生成矩阵中的元素满足:
Figure BDA00031372978700000810
其中,k1和k2表示所述生成矩阵中的两个列的序号,r1和r2表示所述生成矩阵中的两个行的序号,且满足:K≥k2>k1≥1,R≥r2>r1≥1,k1、k2、r1、r2为整数;且,所述编码系数与对应的系数向量满足列变换关系,所述列变换关系为:所述系数向量中的第n1个元素经列变换后成为所述编码系数中的第n2个编码系数,其中,n1为所述K个原始包中的第n2个原始包按照所述K 个原始包的长度从大到小的顺序排序后的序号;K≥n1≥1,K≥n2≥1,n1、n2为整数。
由于该生成矩阵中的编码系数的上述特点,对系数向量进行进行列变换时,可以将移位位数较小的编码系数变换到长度较大的原始包所对应的位置上,将移位位数较大的编码系数变换到长度较小的原始包所对应的位置上。因此,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,减小因移位操作而引入的传输开销,提高频谱资源的利用率。
第四方面,提供一种数据传输方法,本申请提供了一种数据传输方法,该方法可以由接收端执行,或者,也可以由配置在接收端中的部件(如芯片、芯片系统等)执行,或者,还可以由能够实现全部或部分接收端功能的逻辑模块或软件实现,本申请对此不作限定。
示例性地,该方法包括:接收U个校验包,用于生成所述U个校验包的U组编码系数与预定义的U个系数向量对应,每组编码系数与所对应的系数向量满足行变换关系或列变换关系;所述U个校验包中的第u个校验包的包头包括:用于生成所述第u个校验包的一组编码系数对应的系数向量的指示信息,以及所述行变换关系或列变换关系的指示信息;1≤u≤ U,U≥1,u、U为整数;基于所述U个系数向量和所述U个校验包,得到K个原始包;K >1且为整数。
应理解,由于传输过程中可能存在丢包,接收端接收到的编码包可能包括最多R个校验包,为方便说明,假设接收端接收到的编码包中包括U个校验包。
还应理解,由于编码系数与系数向量之前满足行变换关系或列变换关系,接收端需结合系数向量的指示信息和行变换关系或列变换关系的指示信息,确定真正用于生成各校验包的编码系数。
基于上述技术内容,发送端在对多个原始包进行网络编码时,对预定义的系数向量进行行变换或列变换,使得各原始包与编码系数中各元素的对应关系可变,因此发送端可以以减小传输开销为目标,根据编码系数和原始包的长度灵活调整各原始包对应的编码系数。并且,发送端在编码包包头携带可用于指示编码系数与系数向量的行变换关系或列变换关系,使得接收端根据包头可以准确地确定出每个原始包或系统包对应的编码系数,进而可以准确地译码得到K个原始包。因此可以提高传输可靠性,减少重传次数。总体而言,有利于提高频谱资源的利用率。
结合第四方面,在某些可能的实现方式中,所述U个校验包中的每个校验包和所述K个原始包满足以下关系:所述U个校验包中的每个校验包是基于所述K个原始包进行移位异或编码得到。
采用移位异或编码,不仅编码复杂度低,而且编码效率高。接收端收到任意K个数据包 (包括系统包和/或校验包)都可以恢复出K个原始包。
结合第四方面,在某些可能的实现方式中,所述U个系数向量来自预定义的Q个系数向量,所述Q个系数向量中的每个系数向量包括P个编码系数,P≥K,Q≥U,P、Q为整数。
应理解,该Q个系数向量可以为行向量,也可以为列向量,本申请对此不作限定。
结合第四方面,在某些可能的实现方式中,U组编码系数与U个系数向量的关系可以满足以下几种可能的情况中的一种或多种。下文结合行向量和列向量分别对U组编码系数与U 个系数向量的关系做了详细说明。
一种可能的情况是,所述U个系数向量来自预定义的P×Q维的第一矩阵H1中的U个列,P≥K,Q≥U,P、Q为整数;所述第一矩阵H1满足:
Figure BDA0003137297870000101
所述U个校验包和所述U组编码系数满足:
Figure BDA0003137297870000102
其中,y1至yU表示所述U个校验包中的数据,x1至xK表示K个被编码的数据包,所述K个被编码的数据包包括所述K个原始包或所述K个原始包对应的K个系统包,
Figure BDA0003137297870000103
包括所述U组编码系数,所述U组编码系数中的每组编码系数来自所述第一矩阵H1中的一列向量中的K个编码系数,所述U个校验包中的第u个校验包的数据满足:
Figure BDA0003137297870000104
Figure BDA0003137297870000105
表示异或处理,
Figure BDA0003137297870000106
表示对被编码的数据包xk的移位操作,
Figure BDA0003137297870000107
表示矩阵
Figure BDA0003137297870000108
中第k行、第u列的编码系数定义的位移量,1≤k≤K,1≤u≤U,1≤Ru≤Q,
Figure BDA0003137297870000109
k、u、Ru
Figure BDA00031372978700001010
为整数;且,当
Figure BDA00031372978700001011
时,
Figure BDA00031372978700001012
满足:
Figure BDA00031372978700001013
Figure BDA00031372978700001014
表示对所述被编码的数据包xk中的第
Figure BDA00031372978700001015
个移位单元向右移动
Figure BDA00031372978700001016
个移位单元得到的第m个移位单元,M表示所述被编码的数据包xk包含的移位单元的个数;
Figure BDA00031372978700001017
M≥1,m、M为整数。
可以看到,该U组编码系数来自上述第一矩阵中的U个列,该U组编码系数可以是从U 个系数向量确定的。对U个系数向量进行行变换可以得到如上所示的U组编码系数。由于对 U个系数向量进行行变换不会改变U组编码系数的线性无关特性,因此可以保证译码效率。
可选地,所述U组编码系数中的不同编码系数与所对应的系数向量所满足的行变换关系相同。
换句话说,U组编码系数中的任意两组编码系数与所对应的系数向量所满足的行变换关系相同。这也就意味着,该U个系数向量经过相同的行变换得到了U组编码系数。这就好比在网络编码前对K个原始包进行了排序,排序后的K个原始包在编码单元中对应的编码系数与系数向量中各元素的排序不一致。
进一步地,所述K个原始包中的至少两个原始包的长度不同,且所述U组编码系数中的每组编码系数与所对应的系数向量所满足的行变换关系或与所述所对应的系数向量中各元素定义的位移量以及所述K个原始包的长度相关。
K个原始包中的至少两个原始包的长度不同,也就是,该K个原始包不等长。根据K个原始包的长度和U个系数向量中各元素定义的位移量,对每个系数向量进行行变换,再使用经过行变换后的编码系数对原始包进行移位异或编码,使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
一种可能的设计是,所述第一矩阵H1中的元素满足:
Figure BDA0003137297870000111
其中, p1和p2表示所述第一矩阵中的两个行的序号,q1和q2表示所述第一矩阵中的两个列的序号,且满足:P≥p2>p1≥1,Q≥q2>q1≥1,p1、p2、q1、q2为整数;且,所述编码系数与对应的系数向量满足行变换关系,且所述行变换关系为:所述系数向量中的第n1个元素经行变换后成为所述编码系数中的第n2个编码系数,其中,n1为所述K个原始包中的第n2个原始包按照所述K个原始包的长度大小排序后的序号;K≥n1≥1,K≥n2≥1,n1、n2为整数。
由于该生成矩阵中的编码系数的上述特点,对系数向量进行进行行变换时,可以将移位位数较小的编码系数变换到长度较大的原始包所对应的位置上,将移位位数较大的编码系数变换到长度较小的原始包所对应的位置上。因此,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,减小因移位操作而引入的传输开销,提高频谱资源的利用率。
另一种可能的情况是,所述U个系数向量来自预定义的Q×P维的第二矩阵H2中的U个行,P≥K,Q≥U,P、Q为整数;所述第二矩阵H2满足:
Figure BDA0003137297870000112
所述U个校验包和所述U组编码系数满足:
Figure BDA0003137297870000113
其中,y1至yU表示所述U个校验包中的数据,x1至xK表示所述K个被编码的数据包,所述K个被编码的数据包包括所述K个原始包或所述K个原始包对应的K个系统包,
Figure BDA0003137297870000114
包括所述U组编码系数,所述U组编码系数中的每组编码系数来自所述第二矩阵H2中的一行向量中的K个编码系数,所述U个校验包中的第u个校验包的数据满足:
Figure BDA0003137297870000115
Figure BDA0003137297870000116
表示异或处理,
Figure BDA0003137297870000117
表示对被编码的数据包xk的移位操作,
Figure BDA0003137297870000118
表示所述矩阵
Figure BDA0003137297870000119
中第u行、第k列的编码系数定义的位移量,1≤k≤K,1≤u≤U,1≤Ru≤Q,
Figure BDA00031372978700001110
k、u、Ru
Figure BDA00031372978700001111
为整数;且,当
Figure BDA00031372978700001112
Figure BDA0003137297870000121
时,
Figure BDA0003137297870000122
满足:
Figure BDA0003137297870000123
Figure BDA0003137297870000124
表示对所述被编码的数据包xk中的第
Figure BDA0003137297870000125
个移位单元向右移动
Figure BDA0003137297870000126
个移位单元得到的第m个移位单元,M 表示所述被编码的数据包xk包含的移位单元的个数;
Figure BDA0003137297870000127
M≥1,m、M为整数。
可以看到,U组编码系数为上述第二矩阵中的U个行,该U组编码系数可以是从U个系数向量确定的。对U个系数向量进行列变换可以得到如上所示的U组编码系数。由于对U个系数向量进行列变换不会改变U组编码系数的线性无关特性,因此可以保证译码效率。
可选地,所述U组编码系数中的不同组编码系数与所对应的系数向量所满足的列变换关系相同。
换句话说,U组编码系数中的任意两组编码系数与所对应的系数向量所满足的列变换关系相同。这也就意味着,该U个系数向量经过相同的列变换得到了U组编码系数。这就好比在网络编码前对K个原始包进行了排序,排序后的K个原始包在编码单元中对应的编码系数与系数向量中各元素的排序不一致。
进一步地,所述K个原始包中的至少两个原始包的长度不同,且所述U组编码系数中的每组编码系数与所对应的系数向量所满足的列变换关系或与所述所对应的系数向量中各元素定义的位移量以及所述K个原始包的长度相关。
K个原始包中的至少两个原始包的长度不同,也就是,该K个原始包不等长。根据K个原始包的长度和U个系数向量中各元素定义的位移量,对每个系数向量进行列变换,再使用经过行变换后的编码系数对原始包进行移位异或编码,使得长度较大的原始包的编码系数对应的移位位数尽量小,因此可以减少因移位操作而引入的传输开销。
一种可能的设计是,所述第二矩阵中的元素满足:
Figure BDA0003137297870000128
其中, p1和p2表示所述第二矩阵中的两个列的序号,q1和q2表示所述第二矩阵中的两个行的序号,且满足:P≥p2>p1≥1,Q≥q2>q1≥1,p1、p2、q1、q2为整数;且,所述编码系数与对应的系数向量满足列变换关系,所述列变换关系为:所述系数向量中的第n1个元素经列变换后成为所述编码系数中的第n2个编码系数,其中,n1为所述K个原始包中的第n2个原始包按照所述K个原始包的长度大小排序后的序号;K≥n1≥1,K≥n2≥1,n1、n2为整数。
由于该生成矩阵中的编码系数的上述特点,对系数向量进行进行列变换时,可以将移位位数较小的编码系数变换到长度较大的原始包所对应的位置上,将移位位数较大的编码系数变换到长度较小的原始包所对应的位置上。因此,可以使得长度较大的原始包的编码系数对应的移位位数尽量小,减小因移位操作而引入的传输开销,提高频谱资源的利用率。
结合第三方面或第四方面,在某些可能的实现方式中,所述行变换关系或列变换关系的指示信息包括:所述系数向量中的各元素在所述编码系数中的相对位置,或,所述编码系数中的各元素在所述系数向量中的相对位置。
通过指示各编码系数在系数向量中的相对位置,或,系数向量中的各元素在一组编码系数中的相对位置,均可以使得接收端确定每个校验包对应的编码系数,从而使得接收端能够准确地译码获得K个原始包。
第五方面,本申请提供了一种通信装置,可以实现上述第一方面至第四方面及第一方面至第四方面中任一种可能的实现方式中所述的数据传输的方法。该装置包括用于执行上述方法的相应的单元或模块。该装置包括的单元或模块可以通过软件和/或硬件方式实现。该装置例如可以为终端或网络设备,也可以为支持终端或网络设备实现上述方法的芯片、芯片系统、或处理器等,还可以为能实现终端或网络设备的全部或部分功能的逻辑模块或软件。可以理解的是,以上方法中的编码或译码过程可以通过数字电路实现,相应的数据电路可以称为编码器或译码器,或者,编/译码器。
第六方面,本申请提供了一种通信装置,包括处理器,所述处理器用于执行第一方面至第四方面及第一方面至第四方面中任一种可能实现方式中所述的数据传输方法。
可选地所述装置还可以包括存储器,用于存储指令和数据。所述存储器与所述处理器耦合,所述处理器执行所述存储器中存储的指令时,可以实现上述各方面中描述的方法。
可选地,所述装置还可以包括通信接口,所述通信接口用于该装置与其它设备进行通信,示例性地,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
第七方面,本申请提供了一种芯片系统,该芯片系统包括至少一个处理器,用于支持实现上述第一方面至第四方面及第一方面至第四方面中任一种可能实现方式中所涉及的功能,例如,例如接收或处理上述方法中所涉及的数据和/或信息。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第八方面,本申请提供了一种计算机可读存储介质,包括计算机程序,当其在计算机上运行时,使得计算机实现第一方面至第四方面及第一方面至第四方面中任一种可能实现方式中的方法。
第九方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序 (也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行第一方面至第四方面及第一方面至第四方面中任一种可能实现方式中的方法。
第十方面,本申请实施例提供了一种通信系统,包括前述的发送端和接收端。
附图说明
图1至图3是适用于本申请实施例的通信系统的架构的一示意图;
图4是原始包、系统包和校验包的示意图;
图5是本申请实施例提供的数据传输方法的示意性流程图;
图6至图17是本申请实施例提供的包头的示意图;
图18是本申请另一实施例提供的数据传输方法的示意性流程图;
图19和图20是本申请另一实施例提供的包头的示意图;
图21是本申请实施例提供的通信装置的示意性框图;
图22是本申请实施例提供的终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为便于理解本申请实施例,首先做出如下说明:
第一,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一矩阵和第二矩阵仅仅是为了区分不同的矩阵,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
第二,本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系,但并不排除表示前后关联对象是一种“和”的关系的情况,具体表示的含义可以结合上下文进行理解。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c;a和b;a和c;b和c;或a和 b和c。其中a,b,c可以是单个,也可以是多个。
第三,在本申请实施例中,“当…时”、“若”以及“如果”均指在某种客观情况下装置会做出相应的处理,并非是限定时间,且也不要求装置实现时一定要有判断的动作,也不意味着存在其它限定。
第四,本申请实施例中的“同时”可以理解为在相同的时间点,也可以理解为在一段时间段内,还可以理解为在同一个周期内,具体可以结合上下文进行理解。
第五,在本申请各实施例中,“与A相应的B”表示B与A相关联。“根据A确定B”并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
第六,本申请中各表所示的对应关系可以被配置,也可以是预定义的。各表中的信息的取值仅仅是举例,可以配置为其他值,本申请并不限定。在配置信息与各参数的对应关系时,并不一定要求必须配置各表中示意出的所有对应关系。例如,本申请中的表格中,某些行示出的对应关系也可以不配置。又例如,可以基于上述表格做适当的变形调整,例如,拆分,合并等等。上述各表中标题示出参数的名称也可以采用通信装置可理解的其他名称,其参数的取值或表示方式也可以通信装置可理解的其他取值或表示方式。上述各表在实现时,也可以采用其他的数据结构,例如可以采用数组、队列、容器、栈、线性表、指针、链表、树、图、结构体、类、堆、散列表或哈希表等。
本申请中的预定义可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。
第七,本申请实施例中,一组编码系数可以以向量的形式表示,也可以以其他形式表示;多组编码系数可以以多个向量的形式表示,也可以以矩阵的形式表示,还可以以其他形式表示。本申请实施例对此不作限定。
本申请实施例中仅为便于理解和说明,将系数向量索引作为编码系数的指示信息的一种可能的形式来描述,但这不应对本申请构成任何限定。但编码系数以其他形式表示时,对应的指示信息也可以命名为编码系数索引等其他名称,本申请对此不作限定。可以理解的是,系数向量索引的具体取值,并不限于本申请实施例中所给的举例,可以抽象为第一值,第二值,第三值等,该取值可以在发送端和接收端表征所对应的编码系数即可。
第八,本申请实施例中,发送端和接收端可以保存预定义的Q(Q≥1且为整数)组编码系数。该Q组编码系数可以以矩阵、向量等的形式,也可以以数组的形式保存,或者,还可以以矩阵、向量的生成规则的形式来保存。且,在保存了矩阵或向量的情况下,基于保存的矩阵或向量,可以做出行/列变换、矩阵变换等数学变换,得到更多可能的矩阵或向量。文中虽未予以示出,但这些基于数学变换得到的矩阵或向量均应落入本申请的保护范围内。
第九,本申请中涉及的保存,可以是指保存在一个或者多个存储器中。所述一个或者多个存储器,可以是单独的设置,也可以是集成在编码器或者译码器,处理器、或通信装置中。所述一个或者多个存储器,也可以是一部分单独设置,一部分集成在译码器、处理器、或通信装置中。存储器的类型可以是任意形式的存储介质,本申请并不对此限定。
第十,在本申请实施例中,编码单元对应译码单元,编码单元/译码单元可以简称为编/ 译码单元,编译码单元又可以简称为编码单元。
这里,编码单元例如可以是编码窗,或者也可以是编码分组。本申请实施例对此不作限定。其中,编码窗可以是针对滑动窗口网络编码类型而言的,在本申请实施例中,该K个原始包可以一同输入至编码窗中进行网络编码和译码。编码分组可以是针对分组编码而言的,在本申请实施例中,该K个原始包可以作为一个组进行网络编码和译码。
第十一,由于本申请实施例涉及的网络编码为移位异或编码,在移位异或编码过程中,会对数据包进行移位处理,移位的粒度是一个移位单元。因此,本申请实施例中所述的原始包的长度可以是指将原始包按照移位单元的粒度来划分的得到的若干个移位单元。例如,数据包的长度包括M个比特或M个字节或M个符号,M≥1且为整数。比特、字节、符号为用于表征移位单元长度的单位。例如,1个移位单元可以为a个比特,a个字节或a个符号等,a≥1且为整数。比如,1个移位单元可以为1个比特,1个字节(即,8个比特)或1个符号等。其中,1个符号可以包括1个或多个比特。
为便于理解本申请实施例提供的数据传输方法,下面将对本申请实施例提供的数据传输方法的系统架构和应用场景进行说明。可理解的,本申请实施例描述的系统架构和应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。
图1是本申请的实施例应用的通信系统100的架构示意图。如图1所示,该通信系统100 可以包括至少一个无线接入网设备(如图1中的110a和110b),还可以包括至少一个终端(如图1中的120a-120j)。终端可以通过无线的方式与无线接入网设备相连。终端和终端之间,以及无线接入网设备和无线接入网设备之间,可以通过有线或无线的方式相互连接。图1只是示意图,该通信系统100中还可以包括其它网络设备,如还可以包括无线中继设备和无线回传设备等,在图1中未画出。
无线接入网设备可以是具有无线收发功能的设备。该无线接入网设备可以是提供无线通信功能服务的设备,通常位于网络侧,包括但不限于:第五代(5th generation,5G)通信系统中的下一代基站(gNodeB,gNB)、第六代(6th generation,6G)移动通信系统中的下一代基站、未来移动通信系统中的基站或WiFi系统中的接入节点等,LTE系统中的演进型节点 B(evolved node B,eNB)、无线网络控制器(radio network controller,RNC)、节点B(node B,NB)、基站控制器(base station controller,BSC)、家庭基站(例如,homeevolved NodeB,或home Node B,HNB)、基带单元(base band unit,BBU),传输接收点(transmission reception point,TRP)、发射点(transmitting point,TP)、基站收发台(base transceiver station,BTS) 等。在一种网络结构中,该接入网设备可以包括集中单元(centralized unit,CU)节点、或分布单元(distributed unit,DU)节点、或包括CU节点和DU节点的RAN设备、或者控制面 CU节点和用户面CU节点,以及DU节点的RAN设备。接入网设备为小区提供服务,用户设备通过该小区使用的传输资源(例如,频域资源,或者说,频谱资源)与基站进行通信,该小区可以是基站(例如基站)对应的小区,小区可以属于宏基站,也可以属于小小区(small cell)对应的基站,这里的小小区可以包括:城市小区(metrocell)、微小区(micro cell)、微微小区(pico cell)、毫微微小区(femto cell)等,这些小小区具有覆盖范围小、发射功率低的特点,适用于提供高速率的数据传输服务。无线接入网设备可以是宏基站(如图1中的 110a),也可以是微基站或室内站(如图1中的110b),还可以是中继节点或施主节点,V2X 通信系统中的为用户设备提供无线通信服务的设备、云无线接入网络(cloud radio access network,CRAN)场景下的无线控制器、中继站、车载设备、可穿戴设备以及未来演进网络中的网络设备等。本申请的实施例对无线接入网设备所采用的具体技术和具体设备形态不做限定。为了便于描述,下文以基站作为无线接入网设备的例子进行描述。
终端还可以称为终端设备、用户设备(user equipment,UE)、移动台(mobilestation, MS)、移动终端(mobile terminal,MT)等,其可以是用户侧的一种用于接收或发射信号的实体,如手机。终端设备可以是用户设备(user equipment,UE),其中,UE包括具有无线通信功能的手持式设备、车载设备、可穿戴设备或计算设备。示例性地,UE可以是手机(mobile phone)、平板电脑或带无线收发功能的电脑。终端设备还可以是虚拟现实(virtual reality, VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制中的无线终端、无人驾驶中的无线终端、远程医疗中的无线终端、智能电网中的无线终端、智慧城市(smart city) 中的无线终端、智慧家庭(smart home)中的无线终端等等。终端可以广泛应用于各种场景,例如,设备到设备(device-to-device,D2D)、车物(vehicle toeverything,V2X)通信、机器类通信(machine-type communication,MTC)、物联网(internet of things,IOT)、虚拟现实、增强现实、工业控制、自动驾驶、远程医疗、智能电网、智能家具、智能办公、智能穿戴、智能交通、智慧城市等。终端可以是手机、平板电脑、带无线收发功能的电脑、可穿戴设备、车辆、无人机、直升机、飞机、轮船、机器人、机械臂、智能家居设备等。本申请实施例中,用于实现终端的功能的装置可以是终端;也可以是能够支持终端实现该功能的装置,例如芯片系统、或通信模块、或调制解调器等,该装置可以被安装在终端中。本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。本申请实施例提供的技术方案中,以用于实现终端的功能的装置是终端,以终端是UE为例,描述本申请实施例提供的技术方案。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
可选地,UE也可以用于充当基站。例如,UE可以充当调度实体,其在车辆外联(vehicle-to-everything,V2X)、设备到设备(device-to-device,D2D)或点对点(peer topeer, P2P)等中的UE之间提供侧行链路信号。
基站和终端可以是固定位置的,也可以是可移动的。基站和终端可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上;还可以部署在空中的飞机、气球和人造卫星上。本申请的实施例对基站和终端的应用场景不做限定。
基站和终端的角色可以是相对的,例如,图1中的直升机或无人机120i可以被配置成移动基站,对于那些通过120i接入到无线接入网100的终端120j来说,终端120i是基站;但对于基站110a来说,120i是终端,即110a与120i之间是通过无线空口协议进行通信的。当然,110a与120i之间也可以是通过基站与基站之间的接口协议进行通信的,此时,相对于110a 来说,120i也是基站。因此,基站和终端都可以统一称为通信装置,图1中的110a、110b以及120a-120j可以称为具有它们各自相对应的功能的通信装置,例如具有基站功能的通信装置、或者具有终端功能的通信装置。
基站和终端之间、基站和基站之间、终端和终端之间可以通过授权频谱进行通信,也可以通过免授权频谱进行通信,也可以同时通过授权频谱和免授权频谱进行通信;可以通过6 千兆赫(gigahertz,GHz)以下的频谱进行通信,也可以通过6GHz以上的频谱进行通信,还可以同时使用6GHz以下的频谱和6GHz以上的频谱进行通信。本申请的实施例对无线通信所使用的频谱资源不做限定。
在本申请的实施例中,基站的功能也可以由基站中的模块(如芯片)来执行,也可以由包含有基站功能的控制子系统来执行。这里的包含有基站功能的控制子系统可以是智能电网、工业控制、智能交通、智慧城市等上述终端的应用场景中的控制中心。终端的功能也可以由终端中的模块(如芯片或调制解调器)来执行,也可以由包含有终端功能的装置来执行。
进一步地,本申请可以应用于多种具体通信场景,例如,基站和终端之间或终端之间的点对点传输(如图2中的(a)为基站和终端之间的点对点传输)、基站和终端的多跳(如图 2中的(b)、图2中的(c))传输、多个基站和终端的双连接(dual connectivity,DC)(如图2中的(d))或多连接等场景。需要说明的是,如上具体通信应用场景只是举例,并不产生限制。特别地,从业务的角度看,本申请实施例适用于诸多业务场景,例如扩展现实(extendedreality,XR)业务中的数据编码场景、上行大容量场景等。此外,图2不对适用于本申请的网络架构产生限制,并且本申请不限制上行、下行、接入链路、回传(backhaul)链路、侧链路(sidelink,SL)等传输。
参见图3,图3是本申请实施例提供的通信系统的简化示意图。为了简单起见,图3仅示出了基站110、UE 120以及网络130。基站110包括接口111和处理器112。处理器112可选地可以存储程序114。基站110可选地可以包括存储器113。存储器113可选地可以存储程序115。UE 120包括接口121和处理器122。处理器122可选地可以存储程序124。UE 120 可选地可以包括存储器123。存储器123可选地可以存储程序125。这些组件一起工作,以提供本申请中描述的各种功能。例如,处理器112和接口121一起工作以提供基站110与UE 120 之间的无线连接。处理器122和接口121共同作用,实现UE 120的下行传输和/或上行传输。
处理器(例如,处理器112和/或处理器122)可包括一个或多个处理器并实现为计算设备的组合。处理器(例如,处理器112和/或处理器122)可分别包括以下一种或多种:微处理器、微控制器、数字信号处理器(digital signal processor,DSP)、数字信号处理设备(digital signal processing device,DSPD)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、选通逻辑、晶体管逻辑、分立硬件电路、处理电路或其它合适的硬件、固件和/或硬件和软件的组合,用于执行本申请中所描述的各种功能。处理器(例如,处理器 112和/或处理器122)可以是通用处理器或专用处理器。例如,处理器112和/或处理器122 可以是基带处理器或中央处理器。基带处理器可用于处理通信协议和通信数据。中央处理器可用于使基站110和/或UE 120执行软件程序,并处理软件程序中的数据。
接口(例如,接口111和/或121)可包括用于实现与一个或多个计算机设备(例如,UE、 BS和/或网络节点)之间的通信。在一些实施例中,接口可以包括用于耦合有线连接的电线、或用于耦合无线收发器的管脚、或用于无线连接的芯片和/或管脚。在一些实施例中,接口可以包括发射器、接收器、收发器和/或天线。接口可以被配置为使用任何可用的协议(例如3GPP 标准)。
本申请中的程序在广义上用于表示软件。软件的非限制性示例是程序代码、程序、子程序、指令、指令集、代码、代码段、软件模块、应用程序、软件应用程序等。程序可以在处理器和/或计算机中运行,以使基站110和/或UE 120执行本申请中描述的各种功能和/或过程。
内存(例如存储器113和/或存储器123)可存储由处理器112、122在执行软件时操纵的数据。存储器113、123可以使用任何存储技术实现。例如,存储器可以是处理器和/或计算机能够访问的任何可用存储介质。存储介质的非限制性示例包括:随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、只读光盘(compact disk read-onlymemory,CD-ROM)、可移动介质、光盘存储器、磁盘存储介质、磁存储设备、闪存、寄存器、状态存储器、远程挂载存储器、本地或远程存储器组件,或能够携带或存储软件、数据或信息并可由处理器/计算机访问的任何其它介质。
内存(例如存储器113和/或存储器123)和处理器(例如处理器112和/或处理器122) 可以分开设置或集成在一起。存储器可以用于与处理器连接,使得处理器能够从存储器中读取信息,在存储器中存储和/或写入信息。存储器113可以集成在处理器112中。存储器123 可以集成在处理器122中。处理器(例如处理器113和/或处理器123)和存储器(例如处理器112和/或处理器122)可以设置在集成电路中(例如,该集成电路可以设置在UE或基站或其他网络节点中)。
上述内容简要阐述了本申请实施例的系统架构和可能的应用场景,为更好地理解本申请实施例的技术方案,下面将简要介绍网络编码。
本申请中的网络编码功能包括对原始数据包(简称为原数据包、原始包等)进行网络编码和添加编码包的包头。一种可能的实现中,网络编码可以通过编码器来实现,编码器的输入为K个原数据包,编码器的输出为N个编码数据包(简称为编码包),其中,N和K均为正整数,且N大于K。编码包包括N-K个校验包(也称冗余包)和K个系统包,或者,N 个校验包(即编码包均为校验包,不包括系统包)。其中,系统包的内容和原数据包的内容相同。由于系统包也可以不经过编码,比如,可以通过直接给原数据包加包头得到系统头,因而,可以认为系统包的等效编码系数为单位向量。校验包的编码系数可以为非单位向量。通过校验包的内容和生成该校验包的原数据包的内容之间的关联,接收端可以通过校验包和成功接收的原数据包或系统包一起译码,恢复未成功接收的原始数据包。另一种可能的实现中,原数据包可以先加包头后再进行网络编码和添加编码包的包头,获得校验包。在本申请中,将网络编码前原数据包加包头得到的数据包也称为系统包。
图4示出了原始数据包、系统包和校验包的关系。如图4所示,系统包可以包括包头和数据部分,系统包的数据部分为原始包。校验包可以包括包头和数据部分,校验包的数据部分可以基于原始包进行网络编码得到,如图中的校验包a所示;也可以基于系统包进行网络编码,如图中的校验包b所示。本申请实施例对此不作限定。由于系统包是在原始包的基础上增加了包头得到,故系统包的长度大于原始包的长度。故,如图4中所示出的,校验包b的数据部分的长度大于校验包a的数据部分的长度,校验包b的长度也大于校验包a的长度。此外,系统包的包头长度与校验包的包头长度可以相同,也可以不同。本申请实施例对此不作限定。
发送端的网络编码功能对应接收端的网络译码功能。接收端通过对成功接收的至少K个编码包一起进行译码可以恢复出K个原始数据包。具有网络编码功能或网络编码对应的译码功能的协议层可以称为网络编/译码层,本申请中将网络编/译码层简称为网络编码层。
本申请实施例可应用于具有网络编码功能的协议层,即,网络编码层。网络编码层可以在gNB的CU侧,也可以在gNB的DU侧,本申请实施例对此不做限定。或者,可以将网络编码功能嵌入到具体的某一层中,例如可以是无线资源控制(radio resource control,RRC)层,分组数据汇聚层协议(packet data convergence protocol,PDCP)层,回传适配协议(backhaul adaptation protocol,BAP)层,无线链路控制(radio link control,RLC)层,媒体接入控制(medium access control,MAC)层,或物理层(physical layer,PHY)等协议层。网络编码层也可以是除MAC层,RLC层,BAP层,以及PDCP层之外的一个新的协议层,可以为在PDCP层之上增加一个网络编码层,或者,在BAP层之上增加一个网络编码层,或者,在PDCP层和RLC层之间(处于CU-UP逻辑实体或处于DU逻辑实体)增加一个网络编码层,或者,在 RLC层和MAC层之间增加网络编码层,或者,在MAC层和PHY层之间增加网络编码层。
换言之,凡是可以具有网络编码层的通信设备均可以使用下文所述的数据传输方法,比如基站、终端等。基站可以为发送端的一例,终端可以为接收端一例;或者,终端可以为发送端的一例,基站可以为接收端的一例。本申请对于用于执行数据传输方法的设备不作限定。
如前所述,目前的网络编码技术中,一同编码的多个原始包中各原始包的序列号的大小顺序与预定义的编码系数中各元素的排序是一致的,即,各原始包与编码系数中各元素的对应关系是固定的,但这可能会带来一定的传输开销,导致频谱资源的利用率不高。如何使得网络编码过程各原始包与编码系数中各元素的对应关系可变的同时避免网络编码对应译码错误,是一个亟待解决的技术问题。
有鉴于此,本申请提供一种数据传输方法,发送端通过对多个原始包进行排序,使得各原始包与编码系数中各元素的关系灵活可变。如此一来,发送端可以以减小传输开销为目标,根据编码系数和原始包的长度灵活调整各原始包对应的编码系数。因此,有利于提高频谱资源的利用率。
下面将结合附图对本申请实施例提供的数据传输方法进行详细说明。
为便于理解,首先对下文实施例中涉及到的主要参数和矩阵做简单说明。
K:发送端获取到的原始包的数量,或,发送端发送的系统包的数量,K>1且为整数。
R:发送端发送的校验包的数量,R≥1且为整数。
U:接收端接收到的校验包的数量,R≥U≥1且为整数。
xk:K个原始包中的一个,1≤k≤K,k为整数。
yr:R个校验包中的第r个校验包的数据部分,1≤r≤R,r为整数。
G:R个校验包的生成矩阵,可以为K×R维,也可以为R×K维。该生成矩阵可以来自P×Q维矩阵,或来自Q×P维矩阵。其中,P×Q维矩阵或Q×P维矩阵是预定义的Q组编码系数的一种可能的形式,P≥K,Q≥R,P、Q为整数。
该生成矩阵可以包括R组编码系数,该R组编码系数可以是来自P×Q维矩阵或Q×P维矩阵的Q组编码系数中的R组编码系数。该R组编码系数例如可以是Q组编码系数中连续的R组编码系数,如,该Q组编码系数中的前R组、后R组或将某一预定义的序号作为起始位置而确定的R组;或者,该R组编码系数可以是Q组编码系数中不连续的R组编码系数。本申请实施例对此不作限定。
另外,R组编码系数中的每组编码系数包括K个编码系数,Q组编码系数中的每组编码系数包括P个编码系数。R组编码系数中的任意一组编码系数来自Q组编码系数中的一组编码系数。对于R组编码系数中的一组编码系数来说,K个编码系数可以是其所来自的P个编码系数中连续的K个元素,如,前K个元素、后K个元素或将某一预定义的序号作为起始位置而确定的K个元素,或者,该K个编码系数可以是其所来自的P个编码系数中不连续的 K个元素。本申请实施例对此不作限定。
编码系数:用于定义位移量。各编码系数定义的位移量均为大于或等于零的整数。在本申请实施例中,为了区分不同的矩阵,通过不同的参数来表示编码系数,例如
Figure BDA0003137297870000191
Figure BDA0003137297870000192
等,其所表达的含义是相同的。其中,下角标k、r、p、q用于表示该编码系数在不同的矩阵中的行或列的序号。
比如,
Figure BDA0003137297870000193
表示对原始包xk的移位操作,tk,r表示矩阵中第k行、第r列的编码系数定义的位移量。当tk,r≥1时,
Figure BDA0003137297870000201
满足:
Figure BDA0003137297870000202
Figure BDA0003137297870000203
表示对原始包xk中的第m-tk,r个移位单元向右移动tk,r个移位单元得到的第m个移位单元,M表示所述原始包xk包含的移位单元的个数;1≤m≤M+tk,r,M≥1,m、M为整数。下文中为了简洁,省略对相同或相似情况的说明。
另外,在下文实施例中,为便于区分和理解,将P×Q维矩阵或Q×P维矩阵中的编码系数定义的位移量通过s来表示,如sp,q、sq,p,将K×R维或R×K维的生成矩阵中的编码系数定义的位移量通过t来表示,如tk,r、tr,k
范德蒙矩阵(Vandermonde matrix):形如
Figure BDA0003137297870000204
的矩阵,其中, [a1a2 … am]取自有限域且两两互异。
柯西矩阵(Cauchy matrix):形如
Figure BDA0003137297870000205
的矩阵,其中,αi(1≤i≤m)和βj(1≤j≤n)都是有限域中的元素。
有限域:也称伽罗瓦域(galois field,GF),是仅含有限个元素的域,可进行加、减、乘和除运算,且加、减、乘和除运算的结果不会超出域的集合。
本原元:令F’是域F的一个扩域。一个元素a它生成扩域K/F,即F’=F(a),则称该元素为该扩域的本原元。GF(q)中的任意非零元素均可表示为本原元的幂。
下文中结合多个附图所示出的数据传输方法可以发送端和接收端之间的交互为例来描述。该发送端例如可以为通信设备(如,基站),或者也可以为配置在通信设备中的部件,如芯片、芯片系统或其他能够调用程序并执行程序的功能模块等。接收端例如可以为通信设备(如,终端),或者也可以为配置在通信设备中的部件,如芯片、芯片系统或其他能够调用程序并执行程序的功能模块等。
还需要说明的是,在下文实施例中,编码包、系统包、校验包交替出现。对于发送端来说,编码包可以包括系统包和校验包。对于接收端来说,因传输过程中可能存在丢包的可能性,接收端接收到的编码包可能全是系统包,也可能全是校验包,还可能是系统包和校验包,故编码包可以包括系统包和/或校验包。
图5是本申请实施例提供的数据传输方法的示意性流程图。图5所示的数据传输方法可以包括步骤510至540。下面详细说明方法500中的各个步骤。
在步骤510中,发送端获取K个原始包。
在本申请实施例中,该K个原始包的长度可以是相同的,也可以是不同的,本申请实施例对此不作限定。该K个原始包例如可以包括由服务数据单元(service data unit,SDU)、或SDU分段、或协议数据单元(protocol data unit,PDU)、或PDU分段等。若该K个原始包的长度相同,该K个原始包还可以是通过对一个或多个由SDU、或SDU分段、或PDU、或PDU分段经过分割、级联、填充(padding)等处理中的一项或多项处理得到的。本申请实施例对此不作限定。
下文中为方便理解和说明,以K个不等长的原始包为例来描述本申请实施例提供的方法。应理解,K个原始包不等长,也即是,K个原始包中的至少两个原始包的长度不同。还应理解,本申请实施例提供的数据传输方法对于K个原始包等长的情况也同样适用。
另外,该K个原始包的数量可以是协议预定义的,也可以是发送端和接收端预先协商好的,或者,还可以是发送端自行决定并通过在包头指示数量K的方式通知接收端的。本申请实施例对此不作限定。
在步骤520中,发送端基于K个原始包进行网络编码,得到K个系统包和R个校验包。
本申请实施例中所涉及的编码码型为移位异或(shift XOR)码。移位异或码是一种低复杂度且具有最大距离可分(maximum distance separable,MDS)特性的编码码型。采用移位异或码进行网络编码的过程可以称为移位异或编码。下面对移位异或编码的过程做详细说明。
如前所述,K个系统包可以基于K个原始包生成,比如通过加包头,或者通过网络编码得到。R个校验包可以基于K个原始包进行网络编码得到,也可以基于K个系统包进行网络编码得到,本申请实施例对此不作限定。
下文中为方便理解和说明,以基于K个原始包进行网络编码为例来详细描述下述流程,但应理解,下述流程在基于K个系统包进行网络编码的情况下也可适用。
假设将待发送的数据为K个不等长的原始包,分别用x1,x2,……,xK表示。其中,K表示原始包的数量,K>1且为整数。原始包xK的长度包括Mk个比特或Mk个字节或Mk个符号。Mk≥1且为整数。由于在移位异或编码过程中,会对数据包进行移位处理,移位的粒度是一个移位单元,因此,原始包的长度可以是指将原始包按照移位单元的粒度来划分的得到的若干个移位单元。上述的比特、字节、符号为用于表征移位单元长度的单位。例如,1个移位单元可以为a个比特,a个字节或a个符号等,a≥1且为整数。比如,1个移位单元可以为1个比特,1个字节(即,8个比特)或1个符号等。其中,1个符号可以包括1个或多个比特。
原始包xk中的第mk个比特或字节或符号可以记为
Figure BDA0003137297870000211
1≤k≤K,1≤mk≤Mk,k、mk为整数。
表1示出了原始包x1至xK中每个原始包包括的比特序列。
表1
Figure BDA0003137297870000212
对上述K个原始包进行网络编码可以采用形如[IK GK×R]的矩阵来实现。
该矩阵中,子矩阵IK为K×K维的单位阵。采用该单位阵IK对原始包x1,x2,……,xK进行网络编码,生成的编码包中的数据部分仍然是K个原始包x1,x2,……,xK。也就是说,每个系统包是将原始包作为数据部分,并加包头而得到。K个系统包可以与K个原始包一一对应。如前所述,系统包的生成并不一定依赖于子矩阵IK,系统包可直接通过在原始包的基础上加包头得到。本申请实施例对系统包的生成方式不作限定。
对x1,x2,……,xK采用上述矩阵中的子矩阵GK×R进行编码,可以生成R个校验包,该R个校验包的数据部分可以表示为y1,y2,……yR。y1,y2,……yR是由K个原始包x1, x2,……,xK移位异或编码后生成的码字。
用于生成R个校验包的子矩阵GK×R可以称为生成矩阵。R个校验包中的第r(1≤r≤R, r为整数)个校验包可以由该生成矩阵中的第r列对K个原始包进行网络编码得到。
示例性地,该生成矩阵GK×R可满足:
Figure BDA0003137297870000221
R个校验包与生成矩阵GK×R可满足:
Figure BDA0003137297870000222
该生成矩阵GK×R包括R列,每列包括K个编码系数。该R列中的第r列的编码系数可用于生成R个校验包中的第r个校验包。即,该生成矩阵GK×R中的
Figure BDA0003137297870000223
包括用于生成所述R个校验包中的第r个校验包的一组编码系数。第r个校验包的数据与第r 列的编码系数满足:
Figure BDA0003137297870000224
其中,
Figure BDA0003137297870000225
表示异或处理。
Figure BDA0003137297870000226
表示对原始包xk的移位操作,tk,r表示生成矩阵中第k行、第r列的编码系数定义的位移量,tk,r≥0,tk,r为整数;且,当tk,r≥1时,
Figure BDA0003137297870000227
满足:
Figure BDA0003137297870000228
Figure BDA0003137297870000229
表示对原始包xk中的第m-tk,r个移位单元向右移动tk,r个移位单元得到的第m个移位单元,M表示所述原始包xk包含的移位单元的个数;1≤m≤M+tk,r,M≥1,m、M为整数。
应理解,R个校验包的生成矩阵并不限于上文所示出的GK×R。对该矩阵GK×R进行数学变换,也可以得到可用于生成R个校验包的生成矩阵。例如,对该矩阵GK×R进行转置,可以得到生成矩阵的另一例GR×K。生成矩阵GR×K可满足:
Figure BDA00031372978700002210
R个校验包与生成矩阵GR×K可满足:
Figure BDA0003137297870000231
该生成矩阵GR×K包括R行,每行包括K个编码系数。该R行中的第r行的编码系数可用于生成R个校验包中的第r个校验包。即,该生成矩阵GR×K中的
Figure BDA0003137297870000232
包括用于生成所述R个校验包中的第r个校验包的一组编码系数。第r个校验包的数据与第r行的编码系数满足:
Figure BDA0003137297870000233
其中,
Figure BDA0003137297870000234
表示对原始包xk的移位操作, tr,k表示生成矩阵中第r行、第k列的编码系数定义的位移量,tr,k≥0,tr,k为整数;且,当tr,k≥1时,
Figure BDA0003137297870000235
满足:
Figure BDA0003137297870000236
Figure BDA0003137297870000237
表示对原始包xk中的第m-tr,k个移位单元向右移动tr,k个移位单元得到的第m个移位单元,M表示原始包xk包含的移位单元的个数;1≤m≤M+tr,k,M≥1,m、M为整数。
可以看到,无论是生成矩阵GK×R,还是生成矩阵GR×K,都包括R组编码系数,每组编码系数包括K个编码系数,与K个原始包对应。
应理解,上文示例的生成矩阵GK×R和GR×K仅为用于生成R个校验包的R组编码系数的两种可能的形式,不应对本申请实施例构成任何限定。该R组编码系数并不一定以矩阵的形式存在,例如可以以R个系数向量的形式存在,或者,以数组的形式存在。
一种可能的情况是,该R组编码系数是从预定义的Q组编码系数中获取的。如,从P× Q维的矩阵中截取出K×R维的子矩阵GK×R,或,从Q×P维的矩阵中截取出的R×K维的子矩阵GR×K,其中,P≥K,Q≥R,P、Q为整数。
示例性地,P×Q维矩阵例如记作第一矩阵H1,下文中为了便于与生成矩阵的维度相对应,第一矩阵也可以记为HP×Q。第一矩阵HP×Q满足:
Figure BDA0003137297870000238
其中,各元素
Figure BDA0003137297870000239
与上述生成矩阵GK×R中的元素
Figure BDA00031372978700002310
相似,均用于表示移位操作。这里只是为了便于区分不同的行和列,以不同的字母来表示。生成矩阵GK×R可以是从该第一矩阵 HP×Q中截取出来的K个行和R个列组成的。
与之相应,Q×P维矩阵例如可以记作第二矩阵H2,下文中为了便于与生成矩阵的维度相对应,第一矩阵也可以记为HQ×P,第二矩阵HQ×P满足:
Figure BDA00031372978700002311
其中,各元素
Figure BDA00031372978700002312
与上述生成矩阵GR×K中的元素
Figure BDA00031372978700002313
相似,均用于表示移位操作。这里只是为了便于区分不同的行和列,以不同的字母来表示。生成矩阵GR×K可以是从该第二矩阵HQ×P中截取出来的R个行和K个列组成的。
应理解,上述预定义的Q组编码系数的一种可能的形式。该Q组编码系数可以预先保存在发送端和接收端,以便于双方基于相同的编码系数进行编译码。
但应理解,该Q组编码系数并不一定以矩阵的形式保存在发送端和接收端,例如还可以数组的形式,或以上述第一矩阵或第二矩阵的生成规则的形式等,保存在发送端和收发端。只要双方可以基于相同的矩阵或规则,能确定出相同的Q组编码系数即可。
下文列举了生成矩阵的几种可能的结构。应理解,R组编码系数可以是满足下文所示结构的生成矩阵,或者,也可以是满足下文所示结构的矩阵中的R个系数向量的集合,或者,还可以是满足下文所示结构的矩阵中R个数组的形式,等等。本申请实施例对此不作限定。
一种可能的设计是,该生成矩阵为范德蒙矩阵GVandermonde的结构。
如,生成矩阵GK×R满足:
Figure BDA0003137297870000241
其中,zt表示移位操作,0≤t≤(K-1)(R-1),且,t为(K-1)的整数倍,或(R-1) 的整数倍。
一示例,假设K=3,R=3,3个原始包x1、x2和x3的长度分别为M1、M2和M3个比特,且,M3>M1>M2,M1、M2和M3为整数。基于3个原始包x1,x2和x3进行网络编码可以得到2个校验包。该3个校验包的数据部分可以表示为y1和y2。在本示例中,
Figure BDA0003137297870000242
下文的表2和表3分别示出了该3个原始包进行排序的情况下得到的2个校验包的数据部分y1和y2。用于生成第1个校验包的编码系数为z0、z0、z0,也即,对原始包x1、x2、x3的移位均为0个移位单元。用于生成第2个校验包的编码系数为z0、z1、z2,也即,对原始包x1、x2、x3的移位分别为0、1和2个移位单元。
表2
Figure BDA0003137297870000243
表3
Figure BDA0003137297870000244
应理解,上文所示例的形如范德蒙矩阵的生成矩阵仅为一个示例,不应对本申请构成任何限定。例如,生成矩阵GR×K可以为GK×R的转置,为了简洁,此处不再赘述。
还应理解,上文仅为便于理解,以对原始包进行网络编码为例,描述了R个校验包的数据与编码系数之间的关系。但这不应对本申请构成任何限定。如前所述,校验包可以是基于原始包进行网络编码得到,也可以是基于系统包进行网络编码得到。因此上文所示的R个校验包与生成矩阵所满足的关系式中,原始包x1,x2,……,xK也可以替换为系统包。为了简洁,此处不再一一举例说明。
另一种可能的设计是,该生成矩阵为柯西矩阵的结构。
具体地,选取集合α={α12,…,αK}和集合β={β12,…,βR'}。K+R'≤2p,αk、βr'∈GF(qp),q为素数,p≥1,1≤k≤K,1≤r'≤R',且对于任意的两个行k1和k2,且1≤k1<k2≤K,都满足
Figure BDA0003137297870000251
对于任意的两个列r'1和r'2,1≤r'1<r'2≤R',都满足
Figure BDA0003137297870000252
基于集合α和集合β构造K×R'维的柯西矩阵的结构如下:
Figure BDA0003137297870000253
将其中的各个元素用有限域上的本原元表示方法表示,可以获得矩阵
Figure BDA0003137297870000254
其中γ是GF(qp)的本原元,
Figure BDA0003137297870000255
是本原元γ的tk,r'次幂。进一步将Gprim的本原元作为偏移符号z,本原元的指数tk,r作为第一偏移量,删除每一列中的共同的偏移量,可以获得第二偏移量。第二偏移量中,每一列有一个最小的偏移量0,即每一列包含元素z0,获得矩阵
Figure BDA0003137297870000256
如果R'=R,则矩阵Gshift作为移位异或编码中R个校验包的生成矩阵G。或者,如果R' =R-1,则在矩阵Gshift中添加一列偏移量全为0的编码系数,可以获得移位异或编码中R校验包的生成矩阵
Figure BDA0003137297870000257
一示例,以K=3,R'=R-1=2为例,生成矩阵是基于有限域GF(23)构造的编码系数矩阵,确定GF(23)上的一个本原多项式f(x)=x3+x+1,有限域GF(23)中8个元素{0,1,……,7} 的本原元γ的幂如表4所示。表4示出了有限域GF(23)元素及其对应的本原元的幂。
表4
GF(2<sup>3</sup>)中的元素 本原元的幂
0 0
1 γ<sup>0</sup>
2 γ<sup>1</sup>
3 γ<sup>3</sup>
4 γ<sup>2</sup>
5 γ<sup>6</sup>
6 γ<sup>4</sup>
7 γ<sup>5</sup>
选取集合α={α12,…,αK}={0,1,2}和集合β={β12,…,βR'}={3,4},基于集合α和集合β构造K×R'维的柯西结构的矩阵
Figure BDA0003137297870000261
应理解,上述运算是在有限域GF(23)下的运算。将矩阵GCauchy中的元素用本原元的幂表示获得矩阵
Figure BDA0003137297870000262
进一步将Gprim的本原元作为偏移符号z,本原元的指数tk,r'作为第一偏移量,删除每一列中的共同的偏移量,如第2列共同的偏移量是1,该列每个偏移量均删除掉1,获得第2列的偏移量分别是4、0、2,最后添加一列偏移量全为0的系数向量,获得R=3个校验包对应的生成矩阵
Figure BDA0003137297870000263
又一种可能的设计是,该生成矩阵为如下矩阵G'的结构。
R个校验包对应的生成矩阵G可以是从K×K维的矩阵
Figure BDA0003137297870000271
中任意取K列中的R(R≤K)列,构成K×R维的矩阵G,或者说,R个校验包对应的生成矩阵G。
其中,矩阵G'中的第1行的行向量满足:
Figure BDA0003137297870000272
e为该行向量中的元素的索引,该K×K维矩阵中的第l行的行向量是第1行的行向量循环移(l-1) 位获得的行向量,1≤l≤K,l为整数。
上述生成矩阵G中,第1行的行向量中的元素可以为
Figure BDA0003137297870000273
中的前R个元素,e为该行向量中的元素的索引;第l行的行向量的前l-1个元素是
Figure BDA0003137297870000274
中的最后(l-1)个元素,第l行的行向量的后R-l+1个元素是
Figure BDA0003137297870000275
中的前R-l+1个元素。
应理解,上文仅以K×R的维度为例示出了分别满足GVandermonde、GCauchy或G'结构的几个示例,但这不应对本申请构成任何限定。本领域的技术人员基于相同的构思,也可以得出其他维度的生成矩阵,以满足GVandermonde、GCauchy或G'结构的特性。
特别需要说明的是,由上文的表3可以看到,原始包x3的长度最大,且对应的位移量最大,导致生成的第2个校验包的数据部分y2的长度变为了M3+2。而原始包x2的长度最小,虽然经过了移位,但移位后的最后一个比特仍然未超出该3个原始包的最后一个比特M3
如果将长度最大的原始包分配较小的位移量,将长度最小的原始包分配较大的位移量,比如将原始包x3的编码系数调整为z0,也即,将表3中x3调换至x1的位置,将原始包x2的编码系数调整为,也即,将表3中x2调换至x3的位置,则可以得到表5所示的y2
表5
Figure BDA0003137297870000276
可以看到,对排序后的3个原始包进行移位异或编码,得到的第2个校验包的数据部分y2的长度为M3,明显小于排序前的长度M3+2。
因此,在本申请实施例中,发送端在对K个原始包进行网络编码前,可以先对该K个原始包进行排序,使得在生成每个校验包的过程中,长度较大的原始包对应的编码系数所定义的位移量较小,长度较小的原始包对应的编码系数所定义的位移量较大。比如,在上例中,在生成第2个校验包的过程中,编码系数z0的位移量为0,位移量最小,可用于对长度最大的原始包x3进行网络编码;编码系数z2的位移量为2个移位单元,可用于对长度最小的原始包x2进行网络编码。
由于对K个原始包进行网络编码的操作可以由编码单元来实现。发送端可以对该K个原始包进行排序后输入编码单元,因此,K个原始包在编码单元中的顺序与该K个原始包的序列号(serial number,SN)的大小顺序不一致。换句话说,该K个原始包中的至少一个原始包在编码单元中的相对位置与其在K个原始包中的相对位置不同。
举例而言,K个原始包包括x1,x2,……,xK,对应的序列号例如分别为1,2,……, K。对该K个原始包排序后,该K个原始包在编码单元中的顺序例如为,xK,x2,……,x1。可以看到,该K原始包在编码单元中的顺序与序列号的大小顺序不一致。如,原始包xK的序列号为K,即,在该K个原始包中的相对位置为第K个,但在编码单元中的相对位置为第1 个。为了简洁,这里不一一举例说明。
这里,序列号是一种用于区分数据包的标识,与数据包的传输顺序相关。每传输一个数据包,序列号就会递增1。因此,该K个原始包的序列号可以标识该K个原始包的传输顺序。但应理解,序列号仅为一种可能的命名。本申请并不排除通过其他名称来替代序列号,以表达相同或相似含义的可能。
需要说明的是,如果对K个原始包进行排序后再进行网络编码,则接收端恢复出的K个原始包为排序后的原始包。例如上例中,K个原始包排序后的顺序为xK,x2,……,x1,则接收端恢复出的K个原始包的顺序也为xK,x2,……,x1。关于接收端恢复出K个原始包的具体过程会在后文中详细说明,此处暂且不做详述。
通过观察可以发现,在形如范德蒙矩阵的生成矩阵GK×R中,各编码系数满足:
Figure BDA0003137297870000281
Figure BDA0003137297870000282
其中,k1和k2表示生成矩阵GK×R中的两个行的序号,r1和r2表示生成矩阵GK×R中的两个列的序号,且满足:K≥k2>k1≥1,R≥r2>r1≥1。
与之相应,生成矩阵GR×K中,各编码系数满足:
Figure BDA0003137297870000283
其中,k1和 k2表示生成矩阵GR×K中的两个列的序号,r1和r2表示生成矩阵GR×K中的两个行的序号,且满足:K≥k2>k1≥1,R≥r2>r1≥1。
若采用该生成矩阵GK×R或GR×K中的编码系数对K个原始包进行网络编码,原始包越靠后,位移量越大。因此,该K个不等长的原始包在编码单元中进行网络编码时,如果将较长的原始包放到比较靠后的位置,而将较短的原始包放到比较靠前的位置,可能会使得较长的原始包进行移位操作后的长度进一步增大,而较短的原始包进行移位操作后的长度发生小幅的增加,不等长的K个原始包经过移位操作后,长度差距进一步拉大,这必然会导致消耗更多的传输开销,而这些被消耗的传输开销中很大一部分都未真正得以合理利用,频谱资源的利用率不高。
需要说明的是,因生成矩阵GK×R来自第一矩阵HP×Q,生成矩阵GK×R中的各编码系数满足
Figure BDA0003137297870000284
则第一矩阵HP×Q中的元素也需满足
Figure BDA0003137297870000285
p1和p2表示第一矩阵HP×Q中的两个行的序号,q1和q2表示所述第一矩阵HP×Q中的两个列的序号,且满足:P≥p2>p1≥1,Q≥q2>q1≥1。
同理,生成矩阵GR×K来自第二矩阵HQ×P,生成矩阵GR×K中的各编码系数满足
Figure BDA0003137297870000286
Figure BDA0003137297870000287
则第二矩阵HQ×P中的元素也需满足
Figure BDA0003137297870000288
p1和p2表示所述第二矩阵HQ×P中的两个列的序号,q1和q2表示所述第二矩阵HQ×P中的两个行的序号,且满足:P≥p2>p1≥1,Q≥q2>q1≥1,p1、p2、q1、q2为整数。
为了提高频谱资源的利用率,减小传输开销,可以对该K个不等长的原始包按照长度由大到小的顺序进行排序,使得进入编码单元的K个原始包中排在前面的原始包的长度大于排在后面的原始包的长度。也即,该K个原始包中的任意两个原始包
Figure BDA0003137297870000291
Figure BDA0003137297870000292
满足:原始包
Figure BDA0003137297870000293
在编码单元中的位置处于原始包
Figure BDA0003137297870000294
之前,且
Figure BDA0003137297870000295
Figure BDA0003137297870000296
表示原始包
Figure BDA0003137297870000297
中包含的移位单元的数量,
Figure BDA0003137297870000298
表示原始包
Figure BDA0003137297870000299
中包含的移位单元的数量。这样可以使得长度较长的原始包的编码系数对应的移位位数尽可能地小,从而可以减少因移位操作引入的传输开销,使得频谱资源得以高效利用。换言之,对该K个原始包的在编码单元中的顺序与生成矩阵中各编码系数定义的位移量以及K个原始包的长度相关。
应理解,上文仅为便于理解,以范德蒙矩阵的结构为例来描述了对K个原始包排序的原理,但这不应对本申请构成任何限定。对于任意一个生成矩阵,只要其中的编码系数满足
Figure BDA00031372978700002910
Figure BDA00031372978700002911
便可对原始包按照长度由小到大的顺序进行排序。
即便生成矩阵中的编码系数不满足
Figure BDA00031372978700002912
如上文示例的形如柯西矩阵的结构的生成矩阵,也可以按照生成矩阵中各编码系数所定义的位移量以及K个原始包的长度来进行排序,以使得长度较长的原始包的编码系数对应的移位位数尽可能地小,从而可以减少因移位操作引入的传输开销,使得频谱资源得以高效利用。
由于对K个原始包进行了排序,发送端可以对编码包的包头进行设计,以将排序后的K 个原始包的顺序通知接收端,使得接收端能够准确地确定出各编码包对应的编码系数,从而准确地译码获得K个原始包。
下面将结合附图详细说明本申请实施例对编码包的包头设计。
在本申请实施例中,发送端可以在编码包的包头携带各原始包在编码单元中的相对位置的信息,或,携带K个原始包的排序信息。
一种可能的实现方式是,上述K个系统包中的第k个系统包的包头包括该第k个系统包对应的原始包的位置信息,该位置信息可用于指示该第k个系统包对应的原始包在编码单元中的相对位置。
可选地,第k个系统包的包头包括该第k个系统包对应的原始包的包标识(packetidentity, packet ID)。该包标识可指示该原始包在编码单元中的相对位置。
该位置信息例如可以携带在系统包的包头的包标识字段中。
可选地,第k个系统包的包头包括用于生成该第k个系统包的编码系数的指示信息。该位置信息例如可以携带在系统包的包头的系数向量索引(coefficient vectorindex)字段中。
如前所述,用于生成K个系统包的矩阵IK为单位阵,也即,用于生成每个系统包的编码系数取自仅包括一个非零元素的向量。例如,用于生成第k个系统包的编码系数中,非零元素为其中的第k个元素。也即,用于生成第k个系统包的编码系数中,非零元素的序号与该第k个系统包对应的原始包在编码单元中的序号相同。
用于生成每个系统包的编码系数可以是预定义的Q组编码中的一组编码系数。该Q组编码系数可以以Q个系数向量的形式表示。该Q个系数向量可以与Q个索引值一一对应。表6 示出了K个系数向量和K个系数向量索引的对应关系的一例。
表6
Figure BDA00031372978700002913
Figure BDA0003137297870000301
可以理解,用于生成第k个系统包的系数向量中,第k个元素为1,其他元素为0,也就相当于,保留相应的那个原始包不变,而其他原始包为0。因此表6中的K个系数向量与K个系数向量索引的对应关系也可以表示为:
Figure BDA0003137297870000302
应理解,表6中所示的系数向量分别示出了以列向量和行向量形式存在的编码系数。
还应理解,上述编码系数的指示信息也并不限于以系数向量索引。如前所示,编码系数还可以是其他的形式,如数组,与之对应的指示信息也可以为数组的索引,等等。本申请实施例对此不作限定。
另一种可能的实现方式是,上述R个校验包中的每个校验包的包头包括排序信息,该排序信息用于指示该K个原始包在编码单元中的顺序。
可选地,每个校验包的包头包括:按照该K个原始包在编码单元中的顺序排序的K个原始包的序列号。
该排序信息例如可以携带在校验包的包头的包排序(packet order)字段中。
可选地,每个校验包的包头包括:用于指示按照该K个原始包在编码单元中的顺序排序的K个原始包的长度的信息。该排序信息例如可以携带在校验包的包头的长度排序(length order)字段中。
本申请对于K个原始包的长度的指示方式不作限定。例如,可以直接指示该K个原始包的长度。又例如,可以将预定义的多个不同的长度与多个索引对应,通过该K个原始包的长度分别对应的索引来指示该K个原始包的长度。本申请包含但不限于此。
除了上述的位置信息和排序信息之外,系统包和校验包的包头还可以分别包含其他信息。
一方面,为了便于接收端识别出接收到的编码包哪些需要一起译码,发送端可以在包头指示一起编码的原始包。一起编码的原始包也就是一起被输入至编码窗中的原始包,或者,被作为一个编码分组的原始包。在本申请实施例中,上述K个原始包是一起编码的原始包,可以通过如下方式来指示:
一种可能的实现方式是,利用一个组标识(block ID)来标识被作为一个编码分组的原始包。换言之,同一个编码分组的原始包具有相同的组标识。该组标识例如可以携带在每个系统包的包头的组标识字段中。
在本申请实施例中,上述K个原始包具有相同的组标识。
另一种可能的实现方式是,利用窗口指示(window indicator)结合来标识一起被输入至编码窗中的原始包。
该窗口指示中可以包括如下至少两项:窗头位置、窗尾位置和窗长。
在本申请实施例中,窗头位置是指一起被输入至编码窗中的K个原始包中的第1个原始包的标识信息,窗尾位置是指一起被输入至编码窗中的K个原始包中的第K个原始包的标识信息。其中,原始包的标识信息例如可以为原始包的序列号。窗长可以是指一起被输入至编码窗中的原始包的数量K。
由此,该窗口指示例如可以包括:第1个原始包的序列号和第K个原始包的序列号,或,第1个原始包的序列号和K的指示信息,或,第K个原始包的序列号和K的指示信息。
可以理解,在有些情况下,窗长可以为固定值,或者预定义的,或者半静态配置的,或者收发双方提前协商好的。也就是说,接收端可以预先确定窗长。是原始包的数量K的值为预定义的情况下,窗长(也即,该原始包的数量K的指示信息)可以省略,故,该窗口指示可以包括第1个原始包的序列号和/或第K个原始包的序列号。
上述两种用于指示一起编码的原始包的实现方式可以单独使用,也可以结合使用。单独使用时,发送端可以在系统包和校验包的包头中分别携带序列号字段,并在校验包的包头中携带窗口指示字段;或者,发送端也可以在系统包的包头携带组标识字段和包标识字段。结合使用时,发送端可以在系统包和校验包的包头中分别携带序列号字段,并在校验包的包头中携带窗口指示字段,且在系统包和校验包的包头分别携带组标识字段,还可在系统包的包头携带包标识字段。
另一方面,为了便于接收端识别出接收到的编码包是系统包还是校验包,在系统包和校验包的包头还可以包括编码包类型的指示信息。这里,编码包类型包括系统包或校验包。
在具体实现中,可以通过在系统包的包头使用一个比特的原始(original,O)字段表示系统包,在校验包的包头使用一个比特的编码(coded,C)字段表示校验包。上述O字段和C字段可以简称为O/C字段,O/C字段用于指示编码包类型。
除了O/C字段,还可通过编码系数来区分编码包类型。通过观察可以发现,用于生成系统包的每一组编码系数中仅包括一个非零元素,即,z0或1,其他元素全为0。而用于生成校验包的编码系数则不具备这个特点。应理解,非零元素可以是指值不为零的元素,或移位位数大于或等于零的元素。
基于此,可以通过编码系数来区分编码包类型。即,若某个编码包的包头中的系数向量索引所指示的编码系数中仅包括一个z0或1,则该编码包为系统包;若某个编码包的包头中的系数向量索引所指示的编码系数并非仅包括一个z0或1,则该编码包为校验包。
如此一来,系统包和校验包的包头也可以不包括O/C字段,而包括编码系数的指示信息。如前所述,编码系数的指示信息的一种可能的形式是系数向量索引,可携带在系统包和校验包的包头的系数向量索引字段中。
前已述及,用于生成每个系统包的编码系数可以是预定义的Q组编码系数中的一组编码系数,与之相似,用于生成每个校验包的编码系数也可以是预定义的Q组编码系数中的一组编码系数。该Q组编码系数可以以Q个系数向量的形式表示。该Q个系数向量可以与Q个索引值一一对应。
表7示出了R个系数向量和R个系数向量索引的对应关系的一例。表7示出的R个系数向量是基于范德蒙矩阵的结构得到的生成矩阵GK×R或GR×K中的R个系数向量。
表7
Figure BDA0003137297870000311
Figure BDA0003137297870000321
应理解,表6和表7分别示出了对应于系统包的系数向量索引与系数向量的对应关系,以及对应于校验包的系数向量索引与系数向量的对应关系。事实上,表6和表7可以独立的,也可以是结合在一起的。表8示出了对用于系统包和校验包的系数向量索引与系数向量的对应关系。表8所示的对应于校验包的系数向量仍然是以范德蒙矩阵的结构为例示出的R个系数向量。
表8
Figure BDA0003137297870000322
应理解,对系数向量索引与系数向量的对应关系是相互独立的,还是结合在一起的,可以由发送端和接收端可以预先协商好,或者由协议预定义。由此,发送端和接收端可以确定对系数向量的指示信息是按照如表6和表7所示的对应关系来指示,还是按照如表8所示的对应关系来指示。可以理解的是,本申请中系数向量索引与系数向量的各种对应关系中,系数向量索引的取值也可以为其他取值,在发送端和接收端可以表征其所代表的系数向量即可。
还应理解,上文所述的R组编码系数可能为更多组编码系数中的部分编码系数。该Q组编码系数中的每组编码系数所包括的编码系数可能为K个,也可能大于K个,例如记为P(P ≥K且为整数)个。该Q组编码系数可构建P×Q维矩阵或Q×P维矩阵。
上述生成矩阵GK×R可能来自P×Q维矩阵,生成矩阵GR×K可能来自Q×P维矩阵。此情况下,上述系数向量索引与系数向量的对应关系可以扩展为更多组对应关系,而不限于上文表7和表8中所示的对应关系。例如,表9和表10示出了Q个系数向量索引与Q个系数向量的对应关系。
表9
Figure BDA0003137297870000331
表10
Figure BDA0003137297870000332
需要说明的是,上文所示例的表9和表10可以是对应于不同的原始包数量而定义的。换言之,对于不同的原始包数量,可以定义不同的系数向量索引与系数向量的对应关系。也就是说,对应于不同的原始包数量,同一个绝对索引值对应的系数向量可能是不同的。
在预定义的Q组编码系数中,每组编码系数包括P个编码系数。因P≥K,故将P个编码系数中的哪K个元素作为系数向量中的元素可以是发送端和接收端预先协商好的,也可以是协议预定义的,例如,可以取P中的前K个元素,或后K个元素,或从某一预定义的位置开始往后取到的K个元素,或不连续的K个元素等。本申请实施例对此不作限定。
可选地,系统包的包头还可以包括长度的指示信息,承载于长度字段中,以用于指示系统包的数据长度,也即该系统包对应的原始包的长度。
可选地,校验包的包头还可以包括原始包的数量的指示信息,承载于原始包的数量字段中,以用于指示原始包的数量K。
将上述对K个原始包在编码单元中的位置信息和/或K个原始包在编码单元中的排序信息与其他字段结合,可以得到多种可能的包头设计。为便于区分,下文中将校验包包头中的系统向量索引字段记为校验包的系数向量索引字段,将系统包包头中的系数向量索引字段记为系统包的系数向量索引字段。
一种可能的设计中,系统包包头携带包标识,以指示所对应的原始包在编码单元中的相对位置。此外,系统包包头还包括O字段、序列号字段。可选地,系统包包头还包括长度字段、组标识字段、窗口指示字段。
校验包包头包括C字段、系数向量索引字段、组标识或窗口指示字段。可选地,校验包包头还包括序列号字段、包排序字段、长度排序字段、原始包的数量字段。
其中,O/C字段可用于接收端识别系统包和校验包。
序列号字段可用于指示所对应的原始包的传输顺序。
序列号字段和窗口指示字段可用于指示哪些原始包是一起编码的,可用于确定哪些系统包和校验包需要一起译码。
组标识字段用于指示哪些原始包是作为一个编码分组编码的,或者说,哪些原始包是一起编码的,可用于确定哪些系统包和校验包需要一起译码。由于组标识字段和窗口指示字段均可确定出哪些原始包是一起编码的,故组标识字段和窗口指示字段可以不必同时携带在编码包的包头中。
包标识字段可用于指示该系统包对应的原始包在编码单元中的相对位置。
长度字段可用于指示原始包的长度。如前所述,本申请对于原始包的长度的指示方式不作限定。例如可以指示长度或与长度对应的索引等。
校验包的系数向量索引字段可用于指示对应于校验包的编码系数。
原始包数量字段可用于指示原始包的数量K。由于窗口指示字段也可用于指示原始包的数量K,故在K可变的情况下,窗口指示字段和原始包数量字段可以不必同时携带在校验包包头中。此外,由于原始包的数量K也可以是固定值、或预定义的、或半静态配置的,故原始包数量字段可以省略。
长度排序字段可用于指示按照K个原始包在编码单元中的顺序排序的K个原始包的长度。由于长度排序字段中示出了按照K个原始包在编码单元中的顺序排序的K个原始包的长度,故只要知道该K个原始包在编码单元中的顺序,便可确定各原始包的长度,故,在发送端通过其他字段(比如包标识字段、系统包的系数向量索引指示字段或包排序字段)指示了该K 个原始包在编码单元中的排序或各原始包在编码单元中的相对位置的情况下,长度字段和长度排序字段可以不必同时携带在编码包的包头中。
基于上述设计,图6至图9示出了几种可能的包头的示意图。
如图6所示,系统包包头包括O字段、序列号字段、包标识字段和长度字段。校验包包头包括C字段、序列号字段、窗口指示字段和系数向量索引字段。
如前所述,用于生成系统包的编码系数中,非零元素所在的序号与该系统包对应的原始包在编码单元中的序号相同,故由包标识所标识的该原始包在编码单元中的相对位置,便可以推出用于生成系统包的编码系数。故,该系统包包头可以省略系数向量索引字段。
如图7所示,系统包包头包括O字段、序列号字段、组标识字段、包标识字段和长度字段。校验包包头包括C字段、序列号字段、组标识字段、系数向量索引字段和原始包数量字段。
如图8所示,系统包包头包括O字段、序列号字段和包标识字段。校验包包头包括C字段、序列号字段、窗口指示字段、系数向量索引字段和长度排序字段。
如图9所示,系统包包头包括O字段、序列号字段、组标识字段和包标识字段。校验包包头包括C字段、序列号字段、组标识字段、系数向量索引字段、长度排序字段和原始包数量字段。
在另一种可能的设计中,系统包包头携带编码系数的指示信息,以指示所对应的编码系数以及所对应的原始包在编码单元中的相对位置。此外,系统包包头还包括序列号字段。可选地,系统包包头还包括O字段、包标识字段、长度字段、组标识字段(或窗口指示字段)。
校验包包头包括系数向量索引字段、组标识字段(或窗口指示字段)。可选地,校验包包头还包括C字段、序列号字段、长度排序字段、包排序字段。
上述各字段的功能在上文中已经做了说明,此处不再赘述。
需要说明的是,系统包的系数向量和校验包的系数向量可用于接收端识别接收到的编码包是系统包还是校验包,以用于替代上述O/C字段,以实现相同的功能。故,在系统包包头和校验包包头同时懈怠了系数向量索引字段的情况下,O/C字段可以省略。此外,系统包的系数向量还可用于确定所对应的原始包在编码单元中的相对位置。故,包标识字段、包排序字段和长度排序字段也可以省略。
基于上述设计,图10至图13示出了几种可能的包头的示意图。
如图10所示,系统包包头包括系数向量索引字段、序列号字段和长度字段。校验包包头包括系数向量索引字段、序列号字段和窗口指示字段。
如图11所示,系统包包头包括系数向量索引字段、序列号字段、组标识字段和长度字段。校验包包头包括系数向量索引字段、序列号字段、组标识字段和原始包数量字段。
如图12所示,系统包包头包括系数向量索引字段和序列号字段。校验包包头包括系数向量索引字段、序列号字段、窗口指示字段和长度排序字段。
如图13所示,系统包包头包括系数向量索引字段、序列号字段和组标识字段。校验包包头包括系数向量索引字段、序列号字段、窗口指示字段、长度排序字段和原始包数量字段。
在又一种可能的设计中,校验包包头携带排序信息,以指示K个原始包在编码单元中的排序。该排序信息例如可以承载于包排序字段或长度排序字段中。
一示例,校验包包头包括C字段、包排序字段、C字段、系数向量索引字段、组标识字段(或窗口指示字段)。可选地,校验包包头还包括序列号字段、长度排序字段。
系统包包头包括O字段、序列号字段。可选地,系统包包头还包括包标识字段、长度字段、系数向量索引字段、组标识字段(或窗口指示字段)。
另一示例,校验包包头包括C字段、包排序字段、长度排序字段、系数向量索引字段、组标识字段(或窗口指示字段)。可选地,校验包包头还包括序列号字段。
系统包包头包括O字段、序列号字段。可选地,系统包包头还包括包标识字段、长度字段、系数向量索引字段、组标识字段(或窗口指示字段)。
基于上述设计,图14至图17示出了可能的包头的示意图。
如图14所示,系统包包头包括O字段、序列号字段和长度字段。校验包包头包括C字段、窗口指示字段、系数向量索引字段和包排序字段。可选地,校验包包头还包括序列号字段。
如图15所示,系统包包头包括O字段、序列号字段、组标识字段和长度字段。校验包包头包括C字段、组标识字段、系数向量索引字段和包排序字段。可选地,校验包包头还包括序列号字段和原始包数量字段。
如图16所示,系统包包头包括O字段和序列号字段。校验包包头包括C字段、窗口指示字段、系数向量索引字段、包排序字段和长度排序字段。可选地,校验包包头还包括序列号字段。
如图17所示,系统包包头包括O字段、序列号字段和组标识字段。校验包包头包括C字段、组标识字段、系数向量索引字段、包排序字段和长度排序字段。
应理解,上文结合图6至图17示出了多种可能的包头设计,但这些示例仅为便于理解而示出。基于相同的构思,本领域的技术人员还可以做出其他可能的变形,这些变形均应落入本申请的保护范围内。
在步骤530中,发送端发送K个系统包和R个校验包。
应理解,发送端发送的K个系统包和R个校验包均为编码包。接收端需要对接收到的编码包进行识别,才可确定接收到的编码包是系统包还是校验包。且,发送端发送的K+R个编码包并不一定都能够被接收端成功接收,接收端只要接收到大于或等于(或者说,不少于) K个编码包,便可成功译码出K个原始包。本申请实施例假设接收端成功接收到大于K个编码包,能够成功译码出K个原始包。因此,在步骤530中,与发送端相应地,接收端接收多个编码包。
在步骤540中,接收端基于该多个编码包,得到K个原始包。
应理解,接收端接收到的编码包有可能全部为系统包,也有可能全部为校验包,还有可能包括了至少一个系统包和至少一个校验包。本申请实施例对此不作限定。
可以理解的是,接收端接收到的系统包的包头与上文步骤520中所述的发送端发送的系统包的包头是一致的。接收端接收到的校验包的包头与上文步骤520中所述的发送端发送的校验包的包头也是一致的。接收端在接收到该多个编码包后,可以根据系统包和/或校验包的包头中的各个字段,可识别出编码包类型,并确定编码系数。前已述及,发送端可以通过对编码包包头的设计来指示各编码包的类型和编码系数。接收端可以基于对包头的读取,识别出系统包和/或校验包,并确定各自的编码系数。由于系统包和校验包的包头中各个字段的功能在上文中已经做了详细说明,接收端识别编码包类型的过程以及确定编码系数的过程与上文所述的原理相同,为了简洁,此处不再赘述。
如前所述,发送端和接收端可以预先保存预定义的Q组编码系数,接收端可以根据携带在每个编码包包头中的编码系数的指示信息确定编码系数。
由于系统包是在原始包的基础上加包头得到,而接收端可以预先获知系统包包头的长度,故可以在识别出系统包后,直接获取到原始包。
校验包是对原始包或系统包进行移位异或编码得到的,接收端在确定了校验包及其对应的编码系数之后,便可以确定原始包或系统包。
假设某一校验包包头的编码系数的指示信息所指示的编码系数为上述第一矩阵H1中的第q列的K个编码系数
Figure BDA0003137297870000361
则该校验包的数据(例如记为yq)满足:
Figure BDA0003137297870000362
其中,K个编码系数
Figure BDA0003137297870000363
可以预定义的一组编码系数
Figure BDA0003137297870000371
中的前K行、或后K行、或从某一预定义的行序号为起始位置而确定的K行、或不连续的K行。tk,q表示对应于原始包的编码系数定义的位移量,
Figure BDA0003137297870000372
来自矩阵中的第q列,且为该第q列的P个元素中的K个元素中的第k个元素。
为方便说明,以上文步骤520中生成的校验包为例来描述恢复K个原始包的过程。在该示例中,假设原始包的数量K为3,接收到1个系统包和2个校验包,且接收到的系统包与原始包x1对应,接收到的校验包的数据部分为y1和y2
由于对系统包直接去掉包头便可得到原始包,故可基于接收到的系统包,得到原始包x1,也即可以得到x1,1
Figure BDA0003137297870000373
参看表5,y2.1=x3,1,故获得原始包x3的第一个移位单元x3,1;参看表2,
Figure BDA0003137297870000374
已知x1,1、x3,1和y1.1,故可以推出x2,1;再看表5,
Figure BDA0003137297870000375
已知x1,1和y2.2,故可以推出x3,2;参看表2,
Figure BDA0003137297870000376
已知x1,2、x3,2和y1.2,故可推出x2,2;以此类推,可以推出原始包x2和x3。为了简洁,这里不一一赘述。
应理解,接收端恢复出的K个原始包是与编码单元中的K个原始包的顺序一致的,但与步骤510中发送端获取到的K个原始包的顺序不同,也即与K个原始包的序列号的大小顺序不一致。
基于上述方案,发送端对多个原始包进行网络编码前进行了排序,使得各原始包与编码系数中各元素的对应关系可变,因此发送端可以以减小传输开销为目标,根据编码系数和原始包的长度灵活调整各原始包对应的编码系数。并且,发送端在编码包包头携带可用于指示该K个原始包分别在编码单元中的相对位置的位置信息或该K个原始包在编码单元中的排序信息,即便对K个原始包在编码单元中的相对位置与K个原始包的序列号的大小顺序不一致,接收端仍然可以根据包头准确地确定出每个原始包或系统包对应的编码系数,进而可以准确地译码得到K个原始包。因此可以提高传输可靠性,减少重传次数。总体而言,有利于提高频谱资源的利用率。
此外,对于不等长的多个原始包,可以根据原始包的长度和编码系数所定义的位移量对 K个原始包进行排序,可以使得不同长度的原始包或系统包分配到合理的编码系数,进而使得较长的数据包的位移量尽可能地小,从而可以最大程度地减小传输开销,提高频谱资源的利用率。
应理解,对K个原始包进行排序仅为一种可能的实现方式,为了使得不同的原始包被分配到合理的编码系数,以达到较长的数据包的位移量尽可能小的目的,还可以通过对编码系数调换位置的方式来实现。具体而言,由于编码系数在发送端和接收端可以以系数向量的形式保存,故可通过对系数向量进行行变换或列变换的方式来实现。下面将结合附图对这种实现方式做详细说明。
图18是本申请另一实施例提供的数据传输方法的示意性流程图。图18所示的数据传输方法可以包括步骤610至640。下面详细说明方法600中的各个步骤。
在步骤610中,发送端获取K个原始包。
在本申请实施例中,该K个原始包中的长度可以是相同的,也可以是不同的,本申请实施例对此不作限定。关于发送端获取K个原始包的具体过程可参看方法500中的步骤510,为了简洁,此处不再赘述。
下文中为方便理解和说明,仍然以K个不等长的原始包为例来描述本申请实施例提供的方法。应理解,K个原始包不等长,也即是,K个原始包中的至少两个原始包的长度不同。还应理解,本申请实施例提供的数据传输方法对于K个原始包等长的情况也同样适用。
在步骤620中,发送端基于R组编码系数和K个原始包进行网络编码,得到R个校验包。
本申请实施例中所涉及的编码码型为移位异或码。发送端可以基于K个原始包进行移位异或编码,得到K个系统包和R个校验包。其中,R个校验包可以由R组编码系数对K个原始包或K个系统包进行网络编码得到。由于本实施例主要涉及对校验包的编码系数的改进和对校验包的包头的改进,系统包的生成和发送可以参看现有技术,本文为了简洁,对此不作详述。
需要注意的是,本实施例中用于生成R个校验包的R组编码系数是基于R个系数向量进行行变换或列变换得到的。R个校验包中的每个校验包可对应于R组编码系数中的一组编码系数。每组编码系数与一个系数向量对应,每组编码系数与所对应的系数向量之间满足行变换关系或列变换关系。
这里,R个系数向量来自预定义的Q(Q≥R,Q为整数)个系数向量。该Q个系数向量中的每个系数向量可以包括P(P≥K,P为整数)个编码系数。
具体地,该R个系数向量可以是预定义的Q个系数向量中的R个系数向量或R个系数向量的截断。所述系数向量的“截断”,可以理解为从预定义的系数向量截取出来的部分元素构成的向量。比如,预定义的系数向量的维度P大于K,则可以从P个元素中截取K个元素,得到维度为K的系数向量。该维度为K的系数向量可以视为维度为P的系数向量的截断。
其中,K个元素可以是P个元素中连续的K个,如,前K个、后K个、从某一预定义的序号为起始位置而确定的K个;K个元素也可以是P个元素中不连续的K个。本申请实施例对此不作限定。
该Q个系数向量可以为行向量,也可以为列向量。若该Q个系数向量可以为行向量,则该R个系数向量可以是该Q个行向量中的R个行向量或R个行向量的截断。若该Q个系数向量为列向量,则该R个系数向量可以为该Q个列向量中的R个列向量或R个列向量的截断。
其中,R个向量(如行向量或列向量)可以是Q个向量(如行向量或列向量)中连续的R个向量,如,Q个向量中的前R个、后R个、以某一预定义的序号为起始位置而确定的R 个;或者,R个向量也可以是Q个向量中不连续的R个。本申请实施例对此不作限定。
该Q个系数向量可以以矩阵的形式保存在发送端和接收端。该矩阵例如可以是P×Q维矩阵,该Q个系数向量为该矩阵中的Q个列向量;也可以是以Q×P维的矩阵,该Q个系数向量为该矩阵中的Q个行向量。本申请实施例对此不作限定。
其中,该P×Q维矩阵可以记为第一矩阵HP×Q,第一矩阵HP×Q满足:
Figure BDA0003137297870000381
该Q×P维矩阵可以记为第二矩阵HQ×P,第二矩阵HQ×P满足:
Figure BDA0003137297870000382
该第一矩阵HP×Q和第二矩阵HQ×P中的各元素均用于表示移位操作,具体含义在上文方法500中已经做了详细说明,为了简洁,此处不再赘述。
应理解,上述预定义的Q个系数向量可以预先保存在发送端和接收端,以便于双方基于相同的系数向量进行行变换或列变换,进而基于相同的编码系数进行编译码。
但应理解,该Q个系数向量并不一定以矩阵的形式保存在发送端和接收端,例如还可以数组的形式,或以该第一矩阵或第二矩阵的生成规则的形式等,保存在发送端和收发端。只要双方可以基于相同的矩阵来确定出Q个系数向量即可。
为方便理解和说明,下文中以方法500中所列举的3个原始包x1、x2和x3为例来描述编码系数与系数向量的行变换关系或列变换关系。
该3个原始包的长度分别为M1、M2和M3,且M3>M1>M2。从方法500中结合表2、表3和表5所示的移位异或编码过程可以看到,在生成每个校验包的过程中,若对长度较大的原始包分配位移量较小的编码系数,长度较小的原始包分配位移量较大的编码系数,便可以使得生成的校验包的数据部分的长度尽可能地小。如果不对K个原始包进行排序,但对系数向量进行行变换,也同样可以实现相同的效果。
假设用于生成第r校验包的系数向量为来自第一矩阵HP×Q的列向量,例如记作:
Figure BDA0003137297870000391
其中位移量0≤s1,r<s2,r<s3,r,且s1,r、s2,r、s3,r均为整数。则可以将编码系数
Figure BDA0003137297870000394
分配给原始包x3,将编码系数
Figure BDA0003137297870000395
分配给原始包x1,将
Figure BDA0003137297870000396
编码系数分配给x2。如此以来,用于生成第r个校验包的编码系数的排序为
Figure BDA0003137297870000397
可以看到,该编码系数与系数向量满足的行变换关系为:系数向量中的第n1个元素经行变换后成为编码系数中的第n2个编码系数,其中,n1为K个原始包中的第n2个原始包按照所述K个原始包的长度按照从大到小的顺序排序后的序号。
由矩阵的转置关系可知,与行变换相似,若系数向量为行向量,编码系数与系数向量之间也可以满足相似的列变换关系:系数向量中的第n1个元素经列变换后成为编码系数中的第 n2个编码系数,其中,n1为K个原始包中的第n2个原始包按照所述K个原始包的长度按照从大到小的顺序排序后的序号。
应理解,上文仅为便于理解,以3个不等长的原始包为例描述了编码系数与系数向量之前的行变换关系或列变换关系,但这不应对本申请实施例构成任何限定。本申请对于原始包的数量K的大小、K个原始包的长度大小关系以及系数向量中各元素定义的位移量的大小关系均不作限定。
还应理解,对于R个校验包中的每个校验包,发送端都可以按照如上文所述相同的方式对系数向量进行行变换或列变换,以得到对应于R个校验包的R组编码系数。
示例性地,所述R个校验包和所述R组编码系数满足:
Figure BDA0003137297870000392
其中,y1至yR表示R个校验包中的数据,x1至xK表示K个原始包,
Figure BDA0003137297870000393
为R个校验包的生成矩阵,该生成矩阵中的
Figure BDA0003137297870000407
包括用于生成第r个校验包的一组编码系数,且该第r个校验包的数据满足:
Figure BDA0003137297870000401
应理解,上述R组编码系数与R个系数向量对应,该R个系数向量来自预定义的多个系数向量,比如来自上文所列举的第一矩阵HP×Q中的Q个列向量。用于生成第r个校验包的编码系数
Figure BDA0003137297870000408
与所对应的系数向量满足上文所述的行变换关系。
或者,该R个校验包与R组编码系数满足:
Figure BDA0003137297870000402
其中,y1至yR表示所述R个校验包中的数据,x1至xK表示所述K个原始包,
Figure BDA0003137297870000403
为R个校验包的生成矩阵,该生成矩阵中包括用于生成第r个校验包的一组编码系数
Figure BDA00031372978700004010
且该第r个校验包的数据满足:
Figure BDA0003137297870000404
应理解,上述R组编码系数与R个系数向量对应,该R个系数向量来自预定义的多个系数向量,比如来自上文所列举的第二矩阵HQ×P中的Q个行向量。用于生成第r个校验包的编码系数
Figure BDA0003137297870000409
与所对应的系数向量满足上文所述列变换关系。
可选地,用于生成R个校验包的R组编码系数中的不同组编码系数与所对应的系数向量之间所满足的行变换关系或列变换关系相同。也就是说,R组编码系数中的任意两组编码系数与所对应的系数向量所满足的行变换关系或列变换关系相同。这也就意味着,该R个系数向量经过相同的行变换或列变换得到了R组编码系数。这就好比在网络编码前对K个原始包进行了排序,排序后的K个原始包在编码单元中对应的编码系数与系数向量中各元素的排序不一致。
为了尽可能地减小移位位数,减小传输开销,R组编码系数与R个系数向量所满足的行变换关系或列变换关系可以根据该R个系数向量中各元素定义的位移量以及K个原始包的长度确定。
一种可能的设计是,生成矩阵中的元素满足:
Figure BDA0003137297870000405
其中,k1和k2表示生成矩阵中的两个行的序号,r1和r2表示生成矩阵中的两个列的序号,且满足:K≥k2>k1≥1,R≥r2>r1≥1,k1、k2、r1、r2为整数;且,编码系数与对应的系数向量满足的行变换关系为:所述系数向量中的第n1个元素经行变换后成为编码系数中的第n2个编码系数,其中,n1为K个原始包中的第n2个原始包按照该K个原始包的长度按照从大到小的顺序排序后的序号;K≥n1≥1,K≥n2≥1,n1、n2为整数。
例如,上述的生成矩阵
Figure BDA0003137297870000406
可以是基于R个系数向量进行相同的行变换操作而得到。
另一种可能的设计是,该生成矩阵中的元素满足:
Figure BDA0003137297870000411
其中,k1和k2表示该生成矩阵中的两个列的序号,r1和r2表示该生成矩阵中的两个行的序号,且满足: K≥k2>k1≥1,R≥r2>r1≥1,k1、k2、r1、r2为整数;且,编码系数与对应的系数向量满足的列变换关系为:系数向量中的第n1个元素经列变换后成为编码系数中的第n2个编码系数,其中,n1为K个原始包中的第n2个原始包按照该K个原始包的长度从大到小的顺序排序后的序号;K≥n1≥1,K≥n2≥1,n1、n2为整数。
例如,上述的生成矩阵
Figure BDA0003137297870000412
可以是基于R个系数向量进行相同的列变换操作而得到。
应理解,上述相同的行变换操作或列变换操作例如可以是通过一次操作来实现,也可以通过R次操作来实现。本申请实施例对此不作限定。
通过对R个系数向量进行一次行变换操作或列变换操作便得到生成矩阵,处理复杂度较小。尤其是相对于第一矩阵或第二矩阵中的编码系数存在规律的情况而言,比如,第一矩阵满足
Figure BDA0003137297870000413
第二矩阵满足
Figure BDA0003137297870000414
对R个系数向量执行一次行变换操作或列变换操作,便可使得每个校验包的数据部分的长度都能够达到最小,可以最大程度地节省传输开销,提高频谱资源的利用率。
可选地,用于生成R个校验包的R组编码系数与R个系数向量之间的行变换关系或列变换关系不同。
例如,上述的生成矩阵
Figure BDA0003137297870000415
中的每组编码系数是基于所对应的一个系数向量进行行变换操作而得到,且可能存在至少两组编码系数与其所对应的系数向量之间的行变换关系不同。
或,上述的生成矩阵
Figure BDA0003137297870000416
中的每组编码系数是基于所对应的一个系数向量进行列变换操作而得到,且可能存在至少两组编码系数与其所对应的系数向量之前的列变换关系不同。
在这种情况下,对于该R个系数向量的行变换操作或列变换操作可能需要通过多次操作来实现。因此,相对而言处理复杂度较高。但是,对于第一矩阵或第二矩阵中的编码系数没有规律的情况而言,比如,第一矩阵不满足
Figure BDA0003137297870000417
第二矩阵不满足
Figure BDA0003137297870000418
Figure BDA0003137297870000419
对每个系数向量单独执行行变换操作或列变换操作,可以使得每个校验包的数据部分的长度都达到最小,可以最大程度地节省传输开销,提高频谱资源的利用率。
如前所述,发送端和接收端可以预先保存上述预定义的多个系数向量。发送端在向接收端发送校验包的同时,可以将系数向量索引携带在包头中通知给接收端。而在本实施例中,由于对系数向量进行了行变换或列变换,发送端可以在编码包的包头中增加关于行变换关系或列变换关系的相关信息,以将编码系数与系数向量之间的行变换关系或列变换关系通知接收端,从而使得接收端能够准确地确定出各编码包对应的编码系数,准确地译码获得K个原始包。
一种可能的设计是,在校验包的包头中携带系数向量索引,以及行变换关系或列变换关系的指示信息。
以R个校验包中的第r个校验包为例,该校验包的包头中,系数向量索引可具体用于指示生成该第r个校验包所使用的一组编码系数对应的系数向量在预定义的多个系数向量中的索引;行变换关系或列变换关系具体可以包括:该系数向量中的各元素在这组编码系数中的相对位置,或,该组编码系数中的各编码系数在系数向量中的相对位置。
为便于理解,这里以上文的3个原始包x1、x2和x3对应的编码系数与系数向量的关系为例来说明。
如前所述,该3个原始包对应的编码系数为
Figure BDA0003137297870000421
其所对应的系数向量为
Figure BDA0003137297870000422
该系数向量中的各元素在编码系数中的相对位置为:3、1、2,即,将系数向量中的第1个元素作为该组编码系数的第3个编码系数,将系数向量中的第2个元素作为该组编码系数中的第1个编码系数,将系数向量中第3个元素作为该组编码系数中的第2个编码系数。
该3个编码系数分别在系数向量中的相对位置为:2、3、1,即,该编码系数中的第1个编码系数为系数向量中的第2个元素,该组编码系数中的第2个编码系数为系数向量中的第 3个元素,该组编码系数中的第3个编码系数为系数向量中的第1个元素。
可以看到,由于系数向量可以通过系数向量索引来指示,对于接收端来说,是可以确定的。在此基础上,无论是指示系数向量中的各元素在一组编码系数中的相对位置,还是指示各编码系数在系数向量中的相对位置,用于生成校验包的一组编码系数是可以确定的。
下面将结合附图详细说明本申请实施例对编码包的包头设计。
在本申请实施例中,第r个校验包的包头包括系数向量索引和行变换关系或列变换关系的指示信息。其中,系数向量索引指示用于生成第r个校验包的编码系数所对应的系数向量,具体可参看上文结合表5和表6的相关说明。行变换关系或列变换关系的指示信息用于确定编码系数。
其中,系数向量索引可以承载于系数向量索引字段中,行变换关系或列变换关系的指示信息可以承载于新增的字段中,例如记作行变换关系的指示字段或列变换关系的指示字段。
图19至图20示出了几种可能的包头的示意图。
如图19所示,系统包包头包括O字段、序列号字段和长度字段。校验包包头包括C字段、序列号字段、窗口指示字段、系数向量索引字段、以及行变换关系或列变换关系的指示字段。其中,行变换关系或列变换关系的指示字段用于承载行变换关系或列变换关系的指示信息。
如图20所示,系统包包头包括O字段、序列号字段、组标识字段和长度字段。校验包包头包括C字段、序列号字段、组标识字段、系数向量索引字段和原始包数量字段。
上述各字段的功能在上文已经做了详细说明,为了简洁,此处不再赘述。
在步骤630中,发送端发送R个校验包。
应理解,发送端可以将生成的K个系统包和R个校验包发送给接收端。
由于发送端发送的系统包和校验包均为编码包。接收端需要对接收到的编码包进行识别,才可确定接收到的编码包是系统包还是校验包。且,发送端发送的K+R个编码包并不一定都能够被接收端成功接收,接收端只要接收到大于K个编码包,便可成功译码出K个原始包。本申请实施例假设接收端成功接收到大于K个编码包,能够成功译码出K个原始包。因此,在步骤630中,与发送端相应地,接收端接收多个编码包。应理解,接收端接收到的编码包有可能全部为系统包,也有可能全部为校验包,还有可能包括了至少一个系统包和至少一个校验包。在本实施例中,假设接收端接收到的多个编码包中包括U个校验包,1≤U≤R,U 为整数。
前已述及,发送端可以通过编码包包头的O/C字段来显式地指示编码包类型,或通过编码包包头的系数向量索引字段来隐式地指示编码包类型。接收端可以基于接收到的编码包包头的O/C字段或系数向量字段来识别系统包和校验包。通过O/C字段或系数向量索引字段来指示和识别编码包类型的相关过程可参考上文方法500中的相关描述,为了简洁,此处不再赘述。
由于本实施例主要涉及对校验包的编码系数和包头的改进,为了简洁,文中对K个系统包的接收和译码不作详述。
在步骤640中,接收端基于U个系数向量和U个校验包,得到K个原始包。
可以理解的是,接收端接收到的校验包的包头与上文步骤620中所述的发送端发送的校验包的包头是一致的。本实施例中,校验包的包头包括系数向量索引和行向量关系或列向量关系的指示信息。接收端可以基于此来确定每个校验包对应的编码系数。
示例性地,接收端接收到的U个校验包可以与U组编码系数满足:
Figure BDA0003137297870000431
其中,y1至yU表示U个校验包中的数据,x1至xK表示K个原始包。矩阵
Figure BDA0003137297870000432
包括U个列,每个列包括一组编码系数,每个列中的编码系数来自上述第一矩阵HP×Q中的一列向量中的K个编码系数,其中,第Ru列包括用于生成第u个校验包的K个组编码系数,1≤u≤U,1≤Ru≤Q,u、Ru为整数。上述U个校验包中的第u个校验包的数据满足:
Figure BDA0003137297870000433
应理解,矩阵
Figure BDA0003137297870000434
是生成矩阵
Figure BDA0003137297870000435
中的U个列,故可以理解,Ru≤R但本申请并不限定该矩阵中的U个列与生成矩阵中的哪U个列对应。
如前所述,该U组编码系数是基于U个系数向量进行行变换得到的,而该U个系数向量来自预定义的Q个系数向量。该Q个系数向量例如可以以矩阵的形式保存在接收端,如上文所示例的第一矩阵HP×Q的形式保存在接收端。
接收端可以基于U个校验包包头的系数向量索引确定该U个系数向量,进而根据校验包包头的行变换关系的指示信息,确定U组编码系数。
或者,接收端接收到的U个校验包可以与U组编码系数满足:
Figure BDA0003137297870000441
其中,y1至yU表示U个校验包中的数据,x1至xK表示K个原始包。矩阵
Figure BDA0003137297870000442
包括U个行,每个行包括一组编码系数,每个行中的编码系数来自上述第二矩阵HQ×P中的一行向量中的K个系数,其中,第Ru行包括用于生成第u个校验包的K个组编码系数,1≤u≤U,1≤Ru≤Q,u、Ru为整数。上述U个校验包中的第u个校验包的数据满足:
Figure BDA0003137297870000443
应理解,矩阵
Figure BDA0003137297870000444
是生成矩阵
Figure BDA0003137297870000445
中的U个行,故可以理解,Ru≤R。但本申请并不限定该矩阵中的U个行与生成矩阵中的哪U个行对应。
如前所述,该U组编码系数是基于U个系数向量进行列变换得到的,而该U个系数向量来自预定义的Q个系数向量。该Q个系数向量例如可以以矩阵的形式保存在接收端,如上文所示例的第二矩阵HQ×P的形式保存在接收端。
接收端可以基于U个校验包包头的系数向量索引确定该U个系数向量,进而根据校验包包头的列变换关系的指示信息,确定U组编码系数。
接收端在确定出U组编码系数后,便可以基于U个校验包,恢复出K个原始包。
可以理解,接收端在接收到大于K个编码包的情况下,便可以恢复出K个原始包。而接收端接收到的编码包可以包括U个校验包,还可能包括至少一个系统包。若接收端接收到的校验包与系统包的数量大于或等于(或者说,不少于)K,便可恢复出K个原始包。接收端基于接收到的编码包恢复K个原始包的具体过程可以参看方法500的步骤540中的相关说明,为了简洁,此处不再赘述。
由于在本实施例中,进行网络编码的K个原始包并未经过排序,接收端恢复出的K个原始包与发送端发送的K个原始包的顺序是一致的,与K个原始包的序列号的大小顺序也是一直的。
基于上述方案,发送端在对多个原始包进行网络编码时,对预定义的系数向量进行行变换或列变换,使得各原始包与编码系数中各元素的对应关系可变,因此发送端可以可以以减小传输开销为目标,根据编码系数和原始包的长度灵活调整各原始包对应的编码系数。并且,发送端在编码包包头携带可用于指示编码系数与系数向量的行变换关系或列变换关系,使得接收端根据包头可以准确地确定出每个原始包或系统包对应的编码系数,进而可以准确地译码得到K个原始包。因此可以提高传输可靠性,减少重传次数。总体而言,有利于提高频谱资源的利用率。
此外,通过根据原始包的长度来分配编码系数,将位移量大的编码系数分配给长度较小的原始包,将位移量小的编码系数分配给长度较大的原始包,可以使得不同长度的原始包或系统包分配到合理的编码系数,进而使得较长的数据包的位移量尽可能地小,从而可以最大程度地减小传输开销,提高频谱资源的利用率。
应理解,上文中仅为便于理解和说明,以基于K个原始包进行网络编码得到R个校验包为例描述了本申请实施例提供的数据传输方法。但这不应对本申请构成任何限定。基于上文所述相同的方法,发送端也可以基于K个系统包进行网络编码得到R个校验包。为了简洁,这里不予赘述。可以理解的是,基于原始包还是系统包进行网络编码可以是预定义的,如协议预定义,或者也可以是发送端和接收端预先协商好的。本申请实施例对此不作限定。
以上,结合图5至图20详细说明了本申请实施例提供的数据传输方法。以下,将结合附图21和图22详细说明本申请实施例提供的通信装置。
图21是本申请实施例提供的通信装置的示意性框图。如图21所示,该通信装置2100可以包括处理单元2110和收发单元2120。
在一种可能的设计中,该通信装置2100可对应于上文方法实施例中的发送端,例如,可以为发送端,或者配置用于发送端中的部件(如芯片、芯片系统等)。
可选地,该装置2100中的各单元可用于实现图5所示的方法500中发送端执行的相应流程。例如,处理单元2110可用于执行方法500中的步骤510和步骤520,收发单元2120可用于执行方法500中的步骤530。
具体来说,该处理单元2110可用于获取K个原始包,K>1且为整数;该处理单元2110 还可用于,基于所述K个原始包进行网络编码,得到K个系统包和R个校验包;其中,所述 K个原始包在编码单元中的顺序与所述K个原始包的序列号的大小顺序不一致;所述K个系统包中第k个系统包的包头包括所述第k个系统包对应的原始包的位置信息,所述位置信息用于指示所述第k个系统包对应的原始包在所述编码单元中的相对位置,和/或,所述R个校验包中的每个校验包的包头包括排序信息,所述排序信息用于指示所述K个原始包在所述编码单元中的顺序;1≤k≤K,R≥1,k、R为整数;收发单元2120可用于发送所述K个系统包和所述R个校验包。
可选地,该装置2100中的各单元可用于实现图18所示的方法600中发送端执行的相应流程。例如,处理单元2110可用于执行方法600中的步骤610和步骤620,收发单元2120可用于执行方法600中的步骤630。
具体来说,该处理单元2110可用于获取K个原始包,K>1且为整数;该处理单元2110 还可用于,基于R组编码系数对所述K个原始包进行网络编码,得到R个校验包;所述R组编码系数与R个系数向量对应,每组编码系数与所对应的系数向量满足行变换关系或列变换关系;所述R个校验包中的第r个校验包的包头包括:用于生成所述第r个校验包的一组编码系数对应的系数向量的指示信息,以及所述行变换关系或列变换关系的指示信息;1≤r ≤R,R≥1,r、R为整数;该收发单元2120可用于发送所述R个校验包。
在另一种可能的设计中,该通信装置2100可对应于上文方法实施例中的接收端,例如,可以为接收端,或者配置用于接收中的部件(如芯片、芯片系统等)。
可选地,该装置2100中的各单元可用于实现图5所示的方法500中发送端执行的相应流程。例如,收发单元2120可用于执行方法500中的步骤530,处理单元2110可用于执行方法500中的步骤540。
具体来说,收发单元2120可用于接收多个编码包;处理单元211可用于基于所述多个编码包,得到K个原始包;所述K个原始包的顺序与所述K个原始包在编码单元中的顺序一致,但与所述K个原始包的序列号的大小顺序不一致;其中,所述多个编码包包括系统包和/或校验包;所述系统包的包头包括所述系统包对应的原始包的位置信息,所述位置信息用于指示所述原始包在所述编码单元中的相对位置,和/或,所述校验包的包头包括排序信息,所述排序信息用于指示所述K个原始包在所述编码单元中的顺序。
可选地,该装置2100中的各单元可用于实现图18所示的方法600中发送端执行的相应流程。例如,收发单元2120可用于执行方法600中的步骤630,处理单元2110可用于执行方法600中的步骤640。
具体来说,收发单元2120可用于接收U个校验包,用于生成所述U个校验包的U组编码系数与预定义的U个系数向量对应,每组编码系数与所对应的系数向量满足行变换关系或列变换关系;所述U个校验包中的第u个校验包的包头包括:用于生成所述第u个校验包的一组编码系数对应的系数向量的指示信息,以及所述行变换关系或列变换关系的指示信息;1 ≤u≤U,U≥1,u、U为整数;处理单元2110可用于,基于所述U个系数向量和所述U个校验包,得到K个原始包;K>1且为整数。
应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
还应理解,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
应理解,通信装置2100可对应于图3所示通信系统中的基站110或UE 120。基站110可以为发送端的一例,UE 120可以为接收端的一例。UE 120可以为发送端的另一例,基站110可以为接收端的另一例。其中,通信装置2100中的处理单元2110可对应于基站110或 UE120中的处理器,可通过基站110或UE 120中的处理器调用存储器中存储的指令,以实现上述功能,比如网络编码、获取原始包等功能;收发单元2120可对应于基站110或UE 120 中的接口,可响应于处理器的指令,实现上述接收和/或发送数据的功能。
具体来说,当基站110为发送端,UE 120为接收端时,基站110中的处理器112可用于执行方法500中的步骤510和步骤520,接口111可用于执行方法500中的步骤530;UE 120中的接口121可用于执行方法500中的步骤530,处理器122可用于执行方法500中的步骤540。或者,基站110中的处理器112可用于执行方法600中的步骤610和步骤620,接口111 可用于执行方法600中的步骤630;UE 120中的接口121可用于执行方法600中的步骤630,处理器122可用于执行方法600中的步骤640。
当UE 120为发送端,基站110为接收端时,UE 120中的处理器122可用于执行方法500 中的步骤510和步骤520,接口121可用于执行方法500中的步骤530;基站110中的接口111可用于执行方法500中的步骤530,处理器112可用于执行方法500中的步骤540。或者,UE 120中的处理器122可用于执行方法600中的步骤610和步骤620,接口121可用于执行方法600中的步骤630;基站110中的接口111可用于执行方法600中的步骤630,处理器112 可用于执行方法600中的步骤640。
应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
图22是本申请实施例提供的终端的结构示意图。该终端可应用于如图1、图2、图3所示的系统中。如图22所示,该终端2200包括处理器2201和收发器2202。可选地,该终端2200还包括存储器2203。其中,处理器2201、收发器2202和存储器2230之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器2203用于存储计算机程序,该处理器2201用于从该存储器2203中调用并运行该计算机程序,以控制该收发器2202收发信号。可选地,终端2200还可以包括天线2204,用于将收发器2202输出的上行数据或上行控制信令通过无线信号发送出去。
上述处理器2201可以和存储器2203可以合成一个处理装置,处理器2201用于执行存储器2203中存储的程序代码来实现上述功能。具体实现时,该存储器2203也可以集成在处理器2201中,或者独立于处理器2201。该处理器2201可以与图3中的处理器或或图21中的处理单元2110对应。
上述收发器2220可以与图3中的接口或或图21中的收发单元2120对应。收发器2202 可以包括接收器(或称接收机、接收电路)和发射器(或称发射机、发射电路)。其中,接收器用于接收信号,发射器用于发射信号。
可选地,上述终端2200还可以包括电源2205,用于给终端2200中的各种器件或电路提供电源。
除此之外,为了使得该终端设备的功能更加完善,该终端2200还可以包括输入单元2206、显示单元2207、音频电路2208、摄像头2209和传感器2210等中的一个或多个,所述音频电路还可以包括扬声器2208a、麦克风2208b等。
应理解,图22所示的终端2200能够实现图5或图18所示方法实施例中涉及发送端的各个过程或接收端的各个过程。终端2200中的各个模块的操作和/或功能,分别为了实现上述方法实施例中的相应流程。具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。
在本申请实施例中,应注意,上述的方法实施例可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路 (application specific integrated Circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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 data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请提供了一种芯片系统,该芯片系统包括至少一个处理器,用于支持实现上述方法实施例中任一个实施例中所涉及的发送端的功能或接收端的功能,例如,例如收发或处理上述方法中所涉及的数据和/或信息。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请还提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行图5和图18所示实施例中任意一个实施例中发送端执行的方法或接收端的方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)。当所述计算机程序被运行时,使得计算机执行图5和图18所示实施例中任意一个实施例中发送端执行的方法或接收端的方法。
本申请还提供一种通信系统,该通信系统包括前述的发送端和接收端。
上述实施例所提供的方法,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品可以包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁盘)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (24)

1.一种数据传输方法,其特征在于,包括:
获取K个原始包;K>1且为整数;
基于所述K个原始包进行网络编码,得到K个系统包和R个校验包;其中,所述K个原始包在编码单元中的顺序与所述K个原始包的序列号的大小顺序不一致;所述K个系统包中第k个系统包的包头包括所述第k个系统包对应的原始包的位置信息,所述位置信息用于指示所述第k个系统包对应的原始包在所述编码单元中的相对位置,和/或,所述R个校验包中的每个校验包的包头包括排序信息,所述排序信息用于指示所述K个原始包在所述编码单元中的顺序;1≤k≤K,R≥1,k、R为整数;发送所述K个系统包和所述R个校验包。
2.如权利要求1所述的方法,其特征在于,所述网络编码为移位异或编码。
3.如权利要求2所述的方法,其特征在于,所述K个原始包中的至少两个原始包的长度不同,且所述K个原始包在所述编码单元中的顺序与所述R个校验包对应的R组编码系数中各编码系数定义的位移量以及所述K个原始包的长度相关。
4.如权利要求3所述的方法,其特征在于,所述R个校验包中的每个校验包基于所述R组编码系数中的一组编码系数对所述K个原始包进行网络编码得到;或,所述R个校验包中的每个校验包基于R组编码系数中的一组编码系数对K个系统包进行网络编码得到,所述K个系统包与所述K个原始包对应;
所述R个校验包和所述R组编码系数满足:
Figure FDA0003137297860000011
其中,y1至yR表示所述R个校验包,x1至xK表示所述K个被编码的数据包,所述K个被编码的数据包包括所述K个原始包或所述K个系统包,
Figure FDA0003137297860000012
为所述R个校验包的生成矩阵,所述生成矩阵中的
Figure FDA0003137297860000013
包括用于生成所述R个校验包中的第r个校验包的一组编码系数,所述第r个校验包的数据满足:
Figure FDA0003137297860000014
Figure FDA0003137297860000015
表示异或处理,
Figure FDA0003137297860000016
表示对被编码的数据包xk的移位操作,tk,r表示所述生成矩阵中第k行、第r列的编码系数定义的位移量,1≤k≤K,1≤r≤R,tk,r≥0,k、r和tk,r为整数;且,当tk,r≥1时,
Figure FDA0003137297860000017
满足:
Figure FDA0003137297860000018
Figure FDA0003137297860000019
表示对被编码的数据包xk中的第m-tk,r个移位单元向右移动tk,r个移位单元得到的第m个移位单元,M表示所述被编码的数据包xk包含的移位单元的个数;1≤m≤M+tk,r,M≥1,m、M为整数。
5.如权利要求4所述的方法,其特征在于,所述生成矩阵中的编码系数满足:
Figure FDA00031372978600000110
Figure FDA0003137297860000021
其中,k1和k2表示所述生成矩阵中的两个行的序号,r1和r2表示所述生成矩阵中的两个列的序号,且满足:K≥k2>k1≥1,R≥r2>r1≥1;所述K个原始包中的任意两个原始包
Figure FDA0003137297860000022
Figure FDA0003137297860000023
满足:原始包
Figure FDA0003137297860000024
在所述编码单元中的位置处于原始包
Figure FDA0003137297860000025
之前,且
Figure FDA0003137297860000026
Figure FDA0003137297860000027
表示原始包
Figure FDA0003137297860000028
包含的移位单元的个数,
Figure FDA0003137297860000029
表示原始包
Figure FDA00031372978600000210
包含的移位单元的个数。
6.一种数据传输方法,其特征在于,包括:
接收多个编码包;
基于所述多个编码包,得到K个原始包;所述K个原始包的顺序与所述K个原始包在编码单元中的顺序一致,但与所述K个原始包的序列号的大小顺序不一致;
所述多个编码包包括系统包和/或校验包;所述系统包的包头包括所述系统包对应的原始包的位置信息,所述位置信息用于指示所述原始包在所述编码单元中的相对位置,和/或,所述校验包的包头包括排序信息,所述排序信息用于指示所述K个原始包在所述编码单元中的顺序。
7.如权利要求6所述的方法,其特征在于,所述多个编码包中的每个编码包和所述K个原始包满足以下关系:所述多个编码包中的每个编码包是基于所述K个原始包进行移位异或编码得到的。
8.如权利要求7所述的方法,其特征在于,所述K个原始包中的至少两个原始包的长度不同,且所述K个原始包在所述编码单元中的顺序与所述校验包对应的各编码系数定义的位移量以及所述K个原始包的长度相关。
9.如权利要求1至8中任一项所述的方法,其特征在于,所述第k个系统包对应的原始包的位置信息包括:所述第k个系统包对应的原始包的包标识,所述包标识指示所述原始包在所述编码单元中的相对位置;或,
用于生成所述第k个系统包的编码系数的指示信息,所述编码系数包括一个非零元素,且所述非零元素在所述编码系数中的序号与所述第k个系统包对应的原始包在所述编码单元中的序号相同。
10.如权利要求1至8中任一项所述的方法,其特征在于,所述每个校验包的包头中的排序信息包括:按照所述K个原始包在所述编码单元中的顺序排序的K个原始包的序列号;或,
用于指示按照在所述编码单元中的顺序排序的所述K个原始包的长度的信息。
11.一种数据传输方法,其特征在于,包括:
获取K个原始包;K>1且为整数;
基于R组编码系数对所述K个原始包进行网络编码,得到R个校验包;所述R组编码系数与R个系数向量对应,每组编码系数与所对应的系数向量满足行变换关系或列变换关系;所述R个校验包中的第r个校验包的包头包括:用于生成所述第r个校验包的一组编码系数对应的系数向量的指示信息,以及所述行变换关系或列变换关系的指示信息;1≤r≤R,R≥1,r、R为整数;
发送所述R个校验包。
12.如权利要求11所述的方法,其特征在于,所述网络编码为移位异或编码。
13.如权利要求12所述的方法,其特征在于,所述R个校验包和所述R组编码系数满足:
Figure FDA0003137297860000031
其中,y1至yR表示所述R个校验包中的数据,x1至xK表示所述K个被编码的数据包,所述K个被编码的数据包包括K个原始包或与所述K个原始包对应的K个系统包,
Figure FDA0003137297860000032
为所述R个校验包的生成矩阵,所述生成矩阵中的
Figure FDA0003137297860000033
包括用于生成所述R个校验包中的第r个校验包的一组编码系数,所述第r个校验包的数据满足:
Figure FDA0003137297860000034
Figure FDA0003137297860000035
表示异或处理,
Figure FDA0003137297860000036
表示对被编码的数据包xk的移位操作,tk,r表示所述生成矩阵中第k行、第r列的编码系数定义的位移量,1≤k≤K,1≤r≤R,tk,r≥0,k、r和tk,r为整数;且,当tk,r≥1时,
Figure FDA0003137297860000037
满足:
Figure FDA0003137297860000038
Figure FDA0003137297860000039
表示对被编码的数据包xk中的第m-tk,r个移位单元向右移动tk,r个移位单元得到的第m个移位单元,M表示所述被编码的数据包xk包含的移位单元的个数;1≤m≤M+tk,r,M≥1,m、M为整数。
14.如权利要求13所述的方法,其特征在于,所述R组编码系数中的不同组编码系数与所对应的系数向量所满足的行变换关系相同。
15.如权利要求14所述的方法,其特征在于,所述K个原始包中的至少两个原始包的长度不同,且所述R组编码系数中的每组编码系数与所对应的系数向量所满足的行变换关系与所述所对应的系数向量中各元素定义的位移量以及所述K个原始包的长度相关。
16.如权利要求15所述的方法,其特征在于,所述生成矩阵中的元素满足:
Figure FDA00031372978600000310
Figure FDA00031372978600000311
其中,k1和k2表示所述生成矩阵中的两个行的序号,r1和r2表示所述生成矩阵中的两个列的序号,且满足:K≥k2>k1≥1,R≥r2>r1≥1,k1、k2、r1、r2为整数;
且,所述编码系数与对应的系数向量满足行变换关系,且所述行变换关系为:所述系数向量中的第n1个元素经行变换后成为所述编码系数中的第n2个编码系数,其中,n1为所述K个原始包中的第n2个原始包按照所述K个原始包的长度从大到小的顺序排序后的序号;K≥n1≥1,K≥n2≥1,n1、n2为整数。
17.一种数据传输方法,其特征在于,包括:
接收U个校验包,用于生成所述U个校验包的U组编码系数与预定义的U个系数向量对应,每组编码系数与所对应的系数向量满足行变换关系或列变换关系;所述U个校验包中的第u个校验包的包头包括:用于生成所述第u个校验包的一组编码系数对应的系数向量的指示信息,以及所述行变换关系或列变换关系的指示信息;1≤u≤U,U≥1,u、U为整数;
基于所述U个系数向量和所述U个校验包,得到K个原始包;K>1且为整数。
18.如权利要求17所述的方法,其特征在于,所述U个校验包中的每个校验包和所述K个原始包满足以下关系:所述U个校验包中的每个校验包是基于所述K个原始包进行移位异或编码得到。
19.如权利要求19所述的方法,其特征在于,所述U组编码系数中的不同组编码系数与所对应的系数向量所满足的行变换关系或列变换关系相同。
20.如权利要求11至19中任一项所述的方法,其特征在于,所述行变换关系或列变换关系的指示信息包括:所述系数向量中的各元素在所述编码系数中的相对位置,或,所述编码系数中的各元素在所述系数向量中的相对位置。
21.一种通信装置,其特征在于,用于实现如权利要求1至20中任一项所述的方法。
22.一种通信装置,其特征在于,包括处理器,所述处理器用于执行所述程序代码,以使得所述通信装置实现如权利要求1至20中任一项所述的方法。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得电子设备执行如权利要求1至20中任一项所述的方法。
24.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得所述计算机执行如权利要求1至20中任一项所述的方法。
CN202110724419.1A 2021-06-29 2021-06-29 一种数据传输方法和通信装置 Pending CN115549848A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110724419.1A CN115549848A (zh) 2021-06-29 2021-06-29 一种数据传输方法和通信装置
PCT/CN2022/100340 WO2023273975A1 (zh) 2021-06-29 2022-06-22 一种数据传输方法和通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110724419.1A CN115549848A (zh) 2021-06-29 2021-06-29 一种数据传输方法和通信装置

Publications (1)

Publication Number Publication Date
CN115549848A true CN115549848A (zh) 2022-12-30

Family

ID=84690731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110724419.1A Pending CN115549848A (zh) 2021-06-29 2021-06-29 一种数据传输方法和通信装置

Country Status (2)

Country Link
CN (1) CN115549848A (zh)
WO (1) WO2023273975A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024152760A1 (zh) * 2023-01-16 2024-07-25 华为技术有限公司 一种数据传输方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325461B (zh) * 2008-07-25 2011-04-27 浙江大学 基于无速率码的认知无线电通信链路的建立和维护方法
CN101505201B (zh) * 2009-03-18 2011-08-31 吕晓雯 一种差错控制方法
WO2011010959A1 (en) * 2009-07-23 2011-01-27 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for encoding and decoding of images
KR20110096684A (ko) * 2010-02-23 2011-08-31 삼성전자주식회사 부가 정보의 피드백을 이용하여 통신하는 무선 네트워크 및 상기 무선 네트워크에서 네트워크 코딩을 이용한 통신 방법
CN105356968B (zh) * 2015-06-24 2018-11-16 深圳大学 基于循环置换矩阵的网络编码的方法及系统
CN107547436B (zh) * 2017-07-19 2020-03-20 西南交通大学 基于网络编码的传输控制协议的编译码方法
CN111680035B (zh) * 2020-05-07 2023-09-08 中国工业互联网研究院 一种针对网络流数据及其位图索引压缩编码及解码方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024152760A1 (zh) * 2023-01-16 2024-07-25 华为技术有限公司 一种数据传输方法及装置

Also Published As

Publication number Publication date
WO2023273975A1 (zh) 2023-01-05

Similar Documents

Publication Publication Date Title
CN106899379B (zh) 用于处理极化码的方法和通信设备
CN108365848B (zh) 一种极性码的译码方法和装置
CN109039344B (zh) 编码输入数据为极性码的方法及设备、解码方法及其设备
WO2018177227A1 (zh) 一种编码方法、译码方法、装置和设备
CN108809487B (zh) 传输数据的方法、基站和终端设备
CN106982172B (zh) 确定极化码传输块大小的方法和通信设备
WO2018149332A1 (zh) 一种极性码的传输方法和装置
JP6505244B2 (ja) ダウンリンク制御情報送信方法及び装置
CN108809500B (zh) 编码方法、装置和设备
CN108809482B (zh) Polar码的速率匹配方法及装置
CN108282249B (zh) 一种控制信息的传输方法和装置
CN112600569A (zh) 一种编码方法
CN110622426A (zh) 用互补序列打孔极性码
WO2023273975A1 (zh) 一种数据传输方法和通信装置
CN108631941B (zh) 通信方法和装置
CN111490798B (zh) 译码的方法和译码装置
TWI791023B (zh) 編碼輸入資料為極性碼的方法及設備、解碼方法及用以解碼碼字的設備
WO2022268130A1 (zh) 一种网络编码方法及装置
WO2022268064A1 (zh) 数据传输方法及相关装置
WO2022117061A1 (zh) 一种极化码辅助比特的确定方法和装置
CN108574493B (zh) 数据处理的方法和装置
WO2021249080A1 (zh) 编码方法及装置
JP7027461B2 (ja) チャネルエンコーディング方法および装置
CN110034851B (zh) 编码方法、编码设备以及系统
WO2023030236A1 (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