CN105471545A - 一种数据包处理方法及装置 - Google Patents
一种数据包处理方法及装置 Download PDFInfo
- Publication number
- CN105471545A CN105471545A CN201410458311.2A CN201410458311A CN105471545A CN 105471545 A CN105471545 A CN 105471545A CN 201410458311 A CN201410458311 A CN 201410458311A CN 105471545 A CN105471545 A CN 105471545A
- Authority
- CN
- China
- Prior art keywords
- sub
- packet
- data packet
- error correction
- block
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 9
- 238000012937 correction Methods 0.000 claims abstract description 152
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000011218 segmentation Effects 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 238000012795 verification Methods 0.000 abstract 2
- 238000004891 communication Methods 0.000 description 33
- 239000004973 liquid crystal related substance Substances 0.000 description 26
- 229920000642 polymer Polymers 0.000 description 26
- 238000010586 diagram Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101100042371 Caenorhabditis elegans set-3 gene Proteins 0.000 description 1
- 102100029768 Histone-lysine N-methyltransferase SETD1A Human genes 0.000 description 1
- 101000865038 Homo sapiens Histone-lysine N-methyltransferase SETD1A Proteins 0.000 description 1
- 101150117538 Set2 gene Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0076—Distributed coding, e.g. network coding, involving channel coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/20—Arrangements for detecting or preventing errors in the information received using signal quality detector
- H04L1/203—Details of error rate determination, e.g. BER, FER or WER
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
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)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Quality & Reliability (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种数据包处理方法和装置,该方法包括:对源数据包进行码块分割,得到a块子数据包;分别对每块子数据包进行纠错编码或者分别对每块子数据包添加CRC序列后再进行纠错编码,得到a块纠错编码子数据包;对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包;对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包;其中,a,b是大于0的整数。该装置包括码块分割模块、纠错编码模块、网络编码模块和比特选择模块。本发明可以提高数据包的传输性能。
Description
技术领域
本发明涉及一种数据通信传输技术,更具体地,涉及一种数据包处理方法及装置。
背景技术
在各种数字通信系统中,特别是有线通信系统,如光纤通信、微波通信、毫米波通信等,在通信信道上传输都是划分为一个个数据包来传输的。随着数据网络的普及以及各种业务的发展,如浏览网页、观看视频、网上娱乐、视频通话等需求地出现,都需要大量的网络流量。那么通信信道上传输的数据包也是比较大的,每个数据包又再划分成各个比较小的信道编码码块(即码块分割)进行传输,这样信道编译码模块相对复杂度较小。
在通信系统中,一般设备的工作点要求在传输误码率BLER为10-1处,为了使通信系统正常工作,MAC层通过支持ARQ机制,即如果数据包传输错误,这种机制通过重复发送数据包,来保证数据的可靠传输。而且特别是在单向通信信道中,例如电视多媒体广播系统中传输各种数据时,接收端没有办法回传数据给发送端,从而也就无法指示数据包是否正确接收的信息,那么就无法使用ARQ机制。这种情况下,就需要将通信系统的工作点放在误包率BLER比较低的地方,即需要更大的SNR(或者发送更多的能量)。
对于未来的支持HARQ的通信系统(5G无线通信系统),主要场景和需求包括直联通信D2D、物联网通信MMC、超密度网络通信UDN、移动网络通信MN和超可靠通信UN。为了满足新的5G需求,未来的5G链路增强技术需要满足低延迟、高吞吐量特点,所以对于未来的支持HARQ的通信系统如何减少HARQ的重传次数或者重传延迟是有待解决的问题,其中降低传输数据包的误包率BLER的是一种非常直接有效的解决途径。
特别是对于未来的不支持ARQ的通信系统,这些系统一般用于局域网系统或者一些广播通信系统,那么需要比较低的数据传输误码率BLER。根据数字通信中,误包率BLER和误码率BCER的关系:
BLER=1-(1-BCER)n≈n×BCER
从该公式中,可以看出如果系统传输的数据包比较大时,那么码块数就会很多,即可能会达到几百上千个码块,则要求误包率BLER在较低工作点时,编码码块的误码率BCER工作点需要更低。系统则需要付出大量的信噪比,特别是在信道条件比较差的情况下系统效率将受到很明显的限制。所以在不支持ARQ的通信系统中,亟待解决的问题是如何提高传输数据包的性能BLER。
总之,现有通信系统中缺少一种分割为较多编码块的大数据包的编码方案。如何设计一种简单而且有效的、误包率BLER较好的和复杂度较低的编码方案是有待解决的问题。
发明内容
为解决现有数据包传输的误包率比较差问题,本发明需要提供一种可以提高数据包的传输性能的数据包处理方法及装置。
本发明提供的数据包处理方法包括:
对源数据包进行码块分割,得到a块子数据包;
对所述a块子数据包中的每块子数据包,进行纠错编码或者添加CRC序列后再进行纠错编码,得到a块纠错编码子数据包;
对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包;
对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包;
其中,a,b是大于0的整数。
较佳地,
对所述a块纠错编码子数据包进行网络编码之前,还包括:
进行比特填充操作,使得所述a块纠错编码子数据包中的每块纠错编码子数据包的首位置和/或尾位置具有oi个填充比特,i=0、1、…、a-1,oi为大于等于0的整数。
较佳地,
对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包,包括:
从所述的a块纠错编码子数据包中选择除第一集合 指示的比特之外的非填充比特,从所述的b块校验子数据包中选择除第二集合指示的比特之外的非填充比特,所有选择的比特构成编码后的数据包;
其中,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合;是第j块校验子数据包中没有被选择的比特的索引集合;且(a+b)个索引集合中,任意两个不同索引集合构成一个集合对,如此构成的所有个集合对中至少有h%的集合对的交集是空集;i=0、1、…、a-1;j=0、1、…、b-1;h是在[10,100]内取值的一个实数。
较佳地,
对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包,包括:
将所有a块纠错编码子数据包的第p比特构成一长度为a比特的序列Sp,p=0、1、…、n-1,n为大于1的整数;
对Sp进行单奇偶校验编码、b重比特奇偶校验编码或RS编码,得到长度为b比特的校验序列Tp;
将所有校验序列Tp的第q个比特顺序组合,得到长度为n比特的校验子数据包Pq,q=0、1、…、b-1。
较佳地,
所述纠错编码采用LDPC编码、Turbo编码或者卷积编码。
较佳地,
所述h的取值等于100、95、90、80、75或50。
较佳地,
所述进行比特填充操作,包括以下的一种或多种方式:
对源数据包进行码块分割之前,对所述源数据包填充k’比特,使得填充后的源数据包的长度能被m1整除,其中,k’是大于等于0的整数,m1为预定的第一码块长度;
对源数据包进行码块分割得到a块子数据包之后,对a块子数据包分别填充ki比特,使得填充后的每块子数据包的长度均等于预定的第二码块长度m2,其中,ki是大于等于0的整数,i=0、1、…、a-1;
得到a块纠错编码子数据包之后,对所a块纠错编码子数据包分别填充kj比特,使得填充后的每块纠错编码子数据包的长度均等于预定的第三码块长度m3,其中,kj是大于等于0的整数,j=0、1、…、a-1。
较佳地,
所述纠错编码采用LDPC编码,所述网络编码采用单奇偶校验编码,得到一块长度为n比特的校验子数据包P0,h=100,且有:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1;其中,n为大于1的整数。
较佳地,
对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包时,该数据包Y按以下方式生成:
其中,ei,为大于等于0的整数,表示索引集合的长度;f0为大于等于0的整数,表示索引集合的长度;ni是大于等于ei的整数,表示Ci中非填充比特的总个数;表达式是求和公式,c2大于等于c1时ek取原值,c2小于c1时将ek置0;hi是大于等于0的整数,表示Ci中第一个非填充比特的索引,h0=0;i=0、1、…、a-1时,Ci表示包括填充比特的纠错编码子数据包,i=a时,Ci表示校验子数据包P0,分别表示第i块子数据包的第(m+hi)个和第(m++hi+ei)个比特;Yi,m表示数据包Y包含的第i个子数据包的第m个比特,Ci中填充比特的数目大于等于0。
较佳地,
若a小于等于设定阈值A而且大于1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;E为大于等于1的整数;ri是大于等于0的整数。
较佳地,
若a大于设定阈值A,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;ri是大于等于0的整数。
较佳地,
若a=1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;ri是大于等于0的整数。
较佳地,
所述A是在[10,24]内取值的一个整数。
较佳地,
所述E为16、32、42、64、84、128、126或256。
相应地,本发明提供的数据包处理装置包括:
码块分割模块,配置为对源数据包进行码块分割,得到a块子数据包;
纠错编码模块,配置为对所述a块子数据包中的每块子数据包,进行纠错编码或者添加CRC序列后再进行纠错编码,得到a块纠错编码子数据包;
网络编码模块,配置为对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包,b是大于0的整数;
比特选择模块,配置对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包。
较佳地,
所述装置还包括:比特填充模块,配置为对所述a块纠错编码子数据包进行网络编码之前进行比特填充操作,使得所述a块纠错编码子数据包中的每块纠错编码子数据包的首位置和/或尾位置具有oi个填充比特,i=0、1、…、a-1,oi为大于等于0的整数。
较佳地,
所述比特选择模块对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包,包括:
从所述的a块纠错编码子数据包中选择除第一集合 指示的比特之外的非填充比特,从所述的b块校验子数据包中选择除第二集合指示的比特之外的非填充比特,所有选择的比特构成编码后的数据包;
其中,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合;是第j块校验子数据包中没有被选择的比特的索引集合;且(a+b)个索引集合中,任意两个不同索引集合构成一个集合对,如此构成的所有个集合对中至少有h%的集合对的交集是空集;i=0、1、…、a-1;j=0、1、…、b-1;h是在[10,100]内取值的一个实数。
较佳地,
所述网络编码模块对所述a块纠错编码子数据包进行网络编码得到b块校验子数据包,包括:
将所有a块纠错编码子数据包的第p比特构成一长度为a比特的序列Sp,p=0、1、…、n-1,n为大于1的整数;
对Sp进行单奇偶校验编码、b重比特奇偶校验编码或RS编码,得到长度为b比特的校验序列Tp;
将所有校验序列Tp的第q个比特顺序组合,得到长度为n比特的校验子数据包Pq,q=0、1、…、b-1。
较佳地,
所述纠错编码采用LDPC编码、Turbo编码或者卷积编码。
较佳地,
所述比特选择模块采用的h等于100、95、90、80、75或50。
较佳地,
所述比特填充模块进行比特填充操作,包括以下的一种或多种方式:
对所述源数据包进行码块分割之前,对所述源数据包填充k’比特,使得填充后的源数据包的长度能被m1整除,其中,k’是大于等于0的整数,m1为预定的第一码块长度;
对所述源数据包进行码块分割得到的a块子数据包分别填充ki比特,使得填充后的每块子数据包的长度均等于预定的第二码块长度m2,其中,ki是大于等于0的整数,i=0、1、…、a-1;
对所述a块纠错编码子数据包分别填充kj比特,使得填充后的每块纠错编码子数据包的长度均等于预定的第三码块长度m3,其中,kj是大于等于0的整数,j=0、1、…、a-1。
较佳地,
所述纠错编码模块采用LDPC编码,所述网络编码模块采用单奇偶校验编码,得到1块长度为n比特的校验子数据包P0;
所述比特选择模块在进行比特选择操作时,h=100,且有:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1;其中,n为大于1的整数。
较佳地,
所述比特选择模块对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包时,该数据包Y按以下方式生成:
其中,ei,为大于等于0的整数,表示索引集合的长度;f0为大于等于0的整数,表示索引集合的长度;ni是大于等于ei的整数,表示Ci中非填充比特的总个数;表达式是求和公式,c2大于等于c1时ek取原值,c2小于c1时将ek置0;hi是大于等于0的整数,表示Ci中第一个非填充比特的索引,h0=0;i=0、1、…、a-1时,Ci表示包括填充比特的纠错编码子数据包,i=a时,Ci表示校验子数据包P0,分别表示第i块子数据包的第(m+hi)个和第(m++hi+ei)个比特,Yi,m表示数据包Y包含的第i个子数据包的第m个比特,Ci中填充比特的数目大于等于0。
较佳地,
所述比特选择模块在进行比特选择操作时,若a小于等于设定阈值A而且大于1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;E为大于等于1的整数;ri是大于等于0的整数。
较佳地,
所述比特选择模块在进行比特选择操作时,若a大于设定阈值A,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;ri是大于等于0的整数。
较佳地,
所述比特选择模块在进行比特选择操作时,若a=1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;ri是大于等于0的整数。
较佳地,
所述比特选择模块采用的A是在[10,24]内取值的一个整数。
较佳地,
所述比特选择模块采用的E为16、32、42、64、84、128、126或256。
上述数据包处理方法和装置通过对数据包内每个编码子数据包进行网络编码操作,使得所有编码子数据包之间存在一定的关联,从而在接收端可以利用这层关联进行译码,可以提高数据包传输性能。通过去除掉编码子数据包中的部分比特,可以避免网络编码带来的编码效率的下降。在未来的5G通信系统中,特别是在超高速通信系统中(如微波、光通信等),源数据包一般比较大,分割为码块数量较多,非常适合采用本发明的上述方案。
附图说明
图1是本发明实施例一数据包处理方法的流程图;
图2是本发明实施例一数据包处理方法中数据处理过程的示意图;
图3是本发明实施例一数据包处理装置的模块图;
图4是本发明实施例二中,每个纠错编码子数据包和校验子数据包没有被选择和被选择的比特示意图(有100块纠错子数据包(LDPC),没有被选择的比特索引是集中的);
图5是本发明实施例三中,每个纠错编码子数据包和校验子数据包没有被选择和被选择的比特示意图(有100块纠错子数据包(LDPC),没有被选择的比特索引是离散的);
图6是本发明实施例四中,每个纠错编码子数据包和校验子数据包没有被选择和被选择的比特示意图(有10块纠错子数据包(LDPC),没有被选择的比特索引是集中的);
图7是本发明实施例五中,每个纠错编码子数据包和校验子数据包没有被选择和被选择的比特示意图(有3块纠错子数据包(Turbo),没有被选择的比特索引是集中的);
图8是本发明实施例六中,每个纠错编码子数据包和校验子数据包没有被选择和被选择的比特示意图(有3块纠错子数据包(Turbo),没有被选择的比特索引是集中的,网络编码模块中采用2重比特奇偶校验编码);
图9是本发明实施例中码率为1/2时编码性能增益的示意图;
图10是本发明实施例中码率为13/16时编码性能增益的示意图。
其中,图4至图8的子数据包中填充有黑色的区域表示被选择的比特部分,没有填充的区域表示没有被选择的比特部分,填充有斜线的区域表示填充的比特部分。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
本实施例将较大源数据包码块分割成多个子数据包,而后对这些子数据包进行信道纠错编码,然后对纠错编码码块之间进行网络编码,产生少量的校验(冗余)子数据包,通过比特选择操作方法获得待发送的编码后的数据包,从而改善数据包的整体误包率BLER性能,同时能降低对误码率BCER的要求。
本实施例的数据包处理方法如图1所示,至少包括以下步骤:
步骤110,对源数据包进行码块分割,得到a块子数据包,a是大于0的整数;
步骤120,对所述a块子数据包中的每块子数据包,添加CRC序列;
步骤130,对添加了CRC序列序列的每块子数据包进行纠错编码,得到a块纠错编码子数据包;
本步骤是可选的,在另一实施方式中。也可以不添加CRC序列,此时是对源数据包分割得到的a块子数据包直接进行纠错编码。
本步骤中的纠错编码可以采用LDPC编码、Turbo编码或者卷积编码等编码方式。
在对所述a块纠错编码子数据包进行网络编码之前,可以进行比特填充操作,使得所述a块纠错编码子数据包中的每块纠错编码子数据包的首位置和/或尾位置具有oi个填充比特(即只填充在数据包的首位置和/或尾位置),i=0、1、…、a-1,oi为大于等于0的整数
具体地,上述比特填充操作可以包括以下的一种或多种方式:
a)对源数据包进行码块分割之前,对所述源数据包填充k’比特,使得填充后的源数据包的长度能被m1整除,其中,k’是大于等于0的整数,m1为预定的第一码块长度;
b)对源数据包进行码块分割得到a块子数据包之后,对a块子数据包分别填充ki比特,使得填充后的每块子数据包的长度均等于预定的第二码块长度m2,其中,ki是大于等于0的整数,i=0、1、…、a-1;
c)得到a块纠错编码子数据包之后,对所a块纠错编码子数据包分别填充kj比特,使得填充后的每块纠错编码子数据包的长度均等于预定的第三码块长度m3,其中,kj是大于等于0的整数,j=0、1、…、a-1。
步骤140,对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包,b是大于0的整数;
具体地,本步骤的网络编码可以采用以下方式:
将所有a块纠错编码子数据包的第p比特构成一长度为a比特的序列Sp,p=0、1、…、n-1,n为大于1的整数;
对Sp进行单奇偶校验编码、b重比特奇偶校验编码或RS编码,得到长度为b比特的校验序列Tp;
将所有校验序列Tp的第q个比特顺序组合,得到长度为n比特的校验子数据包Pq,q=0、1、…、b-1。
上述单奇偶校验编码是指:所有输入的a个信息比特为集合S,对集合S进行二进制异或相加,获得1个校验比特。
上述b重比特奇偶校验编码是指:所有输入的a个信息比特为集合S,对集合S的一个子集Set1进行二进制异或相加,获得第1个校验比特;对集合S和第1个校验比特组成的新集合的一个子集Set2进行二进制异或相加,获得第2个校验比特;对集合S和第1个校验比特、第2个校验比特组成的新集合的一个子集Set3进行二进制异或相加,获得第3个校验比特;依次类推,对集合S和前b-1个校验比特组成的新集合的一个子集Setb进行二进制异或相加,获得第b个校验比特;
本实施例中,n也等于纠错编码子数据包的长度,但本发明不局限于此。网络编码的方式也不局限于以上几种,但较佳地,应采用不同于纠错编码的编码方式。
步骤150,对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包。
本实施例中,本步骤具体包括:
从所述的a块纠错编码子数据包中选择除第一集合 指示的比特之外的非填充比特,从所述的b块校验子数据包中选择除第二集合指示的比特之外的非填充比特,所有选择的比特构成编码后的数据包;
其中,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合;是第j块校验子数据包中没有被选择的比特的索引集合;且(a+b)个索引集合中,任意两个不同索引集合构成一个集合对,如此构成的所有个集合对中至少有h%的集合对的交集是空集;i=0、1、…、a-1;j=0、1、…、b-1;h是在[10,100]内取值的一个实数。例如,h等于100、95、90、80、75或50。h值越大,说明各子数据包中没有选择的比特的索引越少的集中在相同的位置上,从而可以避免过于集中对解码带来的不利影响。
本实施例的一个示例中,所述纠错编码采用LDPC编码,所述网络编码采用单奇偶校验编码,得到1块长度为n比特的校验子数据包P0,h=100,且有:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1;其中,i=0、1、…、a-1,n为大于1的整数。这一相邻子数据包中没有被选择的非填充比特的索引关系要求第i+1块纠错编码子数据包中前填充的比特数小于等于第i块纠错编码子数据包中前填充比特的个数与没有被选择的非填充比特的个数之和。如果不满足这一条件,可以调整a块纠错编码子数据包的顺序以满足这一条件。
对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包时,该数据包Y按以下方式生成:
其中,ei,为大于等于0的整数,表示索引集合的长度;f0为大于等于0的整数,表示索引集合的长度;ni是大于等于ei的整数,表示Ci中非填充比特的总个数;表达式是求和公式,c2大于等于c1时ek取原值,c2小于c1时将ek置0;hi是大于等于0的整数,表示Ci中第一个非填充比特的索引(从前向后数),h0=0;i=0、1、…、a-1时,Ci表示包括填充比特的纠错编码子数据包,i=a时,Ci表示校验子数据包P0,分别表示第i块子数据包的第(m+hi)个和第(m+hi+ei)个比特;Yi,m表示数据包Y包含的第i个子数据包的第m个比特,Ci中填充比特的数目大于等于0。
上述代码中,fori=0,1,…,a表示从C0到Ca,对子数据包Ci依次进行比特选择操作。form=0,1,…,(ni-ei-1)表示对子数据包Ci进行比特选择操作时,从m=0开始进行(ni-ei)次比特映射操作,映射次数等于子数据包Ci中非填充比特的总个数减去Ci中没有被选择的非填充比特个数,也即等于选择的比特数。具体映射时,计算的是子数据包Ci中没有被选择的非填充比特的起始位置,在此之前,是将数据包Ci中的第(m+hi)个比特映射为数据包Y中包含的第i个子数据包的第m个比特(不选择前填充比特),在此之后,将数据包Ci中的第(m+hi+ei)个比特映射为数据包Y中包含的第i个子数据包的第m个比特,即打掉了没有被选择的ei个非填充比特。
上述索引集合的长度ei及索引集合的长度f0可以按照以下方式之一确定:
a小于等于A而且大于1时:
a大于A时:
a等于1时:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;ri是大于等于0的整数;A为大于等于2的整数,如A可以在[10,24]范围内取值,E为大于等于1的整数,如可以为16、32、42、64、84、128、126或256。
ri的取值可以不同的选择,例如,以对第0个纠错编码数据包,ri等于前填充的比特数,对其他纠错编码数据包,可令ri=0;又如,令ri等于第i块纠错编码子数据包中填充比特的个数oi,或者a块纠错编码子数据包的ri之和等于a块纠错编码子数据包中填充比特的总个数即oi之和,使得生成的数据包Y的长度等于a块纠错编码子数据包的长度之和;ri也可以均等于0。
相应地,本实施例提供的数据包处理装置包括:
码块分割模块10,配置为对源数据包进行码块分割,得到a块子数据包。
纠错编码模块20,配置为分别对每块子数据包进行纠错编码或者分别对每块子数据包添加CRC序列后再进行纠错编码,得到a块纠错编码子数据包,a是大于0的整数;较佳地,纠错编码采用LDPC编码、Turbo编码或者卷积编码编码方式。
网络编码模块30,配置为对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包,b是大于0的整数;
比特选择模块40,配置对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包。
本实施例数据包处理装置还可以包括:比特填充模块,配置为对所述a块纠错编码子数据包进行网络编码之前进行比特填充操作,使得所述a块纠错编码子数据包中的每块纠错编码子数据包的首位置和/或尾位置具有oi个填充比特,i=0、1、…、a-1,oi为大于等于0的整数。具体地,比特填充模块进行比特填充操作,包括以下的一种或多种方式:
对所述源数据包进行码块分割之前,对所述源数据包填充k’比特,使得填充后的源数据包的长度能被m1整除,其中,k’是大于等于0的整数,m1为预定的第一码块长度;
对所述源数据包进行码块分割得到的a块子数据包分别填充ki比特,使得填充后的每块子数据包的长度均等于预定的第二码块长度m2,其中,ki是大于等于0的整数,i=0、1、…、a-1;
对所述a块纠错编码子数据包分别填充kj比特,使得填充后的每块纠错编码子数据包的长度均等于预定的第三码块长度m3,其中,kj是大于等于0的整数,j=0、1、…、a-1。
所述比特选择模块40对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包,可包括:
从所述的a块纠错编码子数据包中选择除第一集合 指示的比特之外的非填充比特,从所述的b块校验子数据包中选择除第二集合指示的比特之外的非填充比特,所有选择的非填充比特构成编码后的数据包;
其中,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合;是第j块校验子数据包中没有被选择的比特的索引集合;且(a+b)个索引集合中,任意两个不同索引集合构成一个集合对,如此构成的所有个集合对中至少有h%的集合对的交集是空集;i=0、1、…、a-1;j=0、1、…、b-1;h是在[10,100]内取值的一个实数,如可以等于100、95、90、80、75或50。
所述网络编码模块30对所述a块纠错编码子数据包进行网络编码得到b块校验子数据包,可包括:
将所有a块纠错编码子数据包的第p比特构成一长度为a比特的序列Sp,p=0、1、…、n-1,n为大于1的整数;
对Sp进行单奇偶校验编码、b重比特奇偶校验编码或RS编码,得到长度为b比特的校验序列Tp;
将所有校验序列Tp的第q个比特顺序组合,得到长度为n比特的校验子数据包Pq,q=0、1、…、b-1。
在一个示例中,所述纠错编码模块20采用LDPC编码,所述网络编码模块30采用单奇偶校验编码,得到1块长度为n比特的校验子数据包P0;
所述比特选择模块40在进行比特选择操作时,h=100,且有:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1;其中,n为大于1的整数。
所述比特选择模块40对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包时,该数据包Y的具体生成方式,以及确定索引集合的长度ei及索引集合的长度f0的方式可参见前述方法中的说明,这里不再赘述。
实例二
在IEEE802.11aj系统中,所述通信系统支持的LDPC编码码率包括1/2、5/8、3/4和13/16,支持的码长都是Nldpc=672。
按照本实施例,系统当前采用设定信道编码码率为1/2,LDPC码母码需要的信息比特数为336,减去CRC序列的8比特得到实际每块子数据包最大长度为328(相当于预定的第一码块长度m1,也可以看成预定的第二码块长度m2),假定源数据包的长度为k=32800比特,对源数据包进行码块分割得到a=100块子数据包;分别对每块子数据包添加8比特的CRC序列,每个子数据包长度变为336比特;分别对每块添加8比特的CRC序列后的子数据包进行LDPC编码,得到100块LDPC编码子数据包,长度都为672比特,填充比特数为0比特;网络编码过程中采用单奇偶校验编码方法,对所述的100块LDPC编码子数据包进行网络编码得到1块校验子数据包;按照以下规则进行比特选择操作,获得数据包Y:
所有的100块LDPC编码子数据包中没有被选择的比特的索引集合和1块校验子数据包中没有被选择的比特的索引集合中,所有个集合对中至少有100%的集合对的交集是空集(即不同数据包中没有被选择的非填充比特的索引均不相同),其中,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合,是第j块校验子数据包中没有被选择的比特的索引集合。
本实施例中,A=15,此时a大于A,因此可按照实施例一中a大于A时的计算公式来计算,其中的ri均等于0。
所有100块LDPC编码子数据包中,第i块LDPC编码子数据包没有被选择的非填充比特的索引集合的长度ei(i=0、1、…、99)取值为:
i=0、1、…、65时,ei=7;
i=66、67、…、99时,ei=6;
校验子数据包P0中没有被选择的比特的索引集合的长度f0取值为:f0=6。
第i块LDPC编码子数据包没有被选择的非填充比特的索引集合可以表示为校验子数据包P0没有被选择的比特的索引集合可以表示为满足:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1。
100块LDPC编码子数据包和1块校验子数据包中,被选择和没有被选择的比特情况具体如图4所示。以上没有被选择的比特的索引在每个LDPC编码子数据包中是连续(集中)的,当然,也可以采用分散(离散)方式来确定没有被选择的比特,如图5所示。
数据包Y的具体生成方式遵循实施例一中的方式,这里不再赘述。
实例三
在IEEE802.11aj系统中,通信系统支持的LDPC编码码率包括1/2、5/8、3/4和13/16,支持的码长都是Nldpc=672。
按照本实施例,系统当前采用设定信道编码码率为13/16,LDPC码母码需要的信息比特数为546,减去CRC序列的8比特得到实际每块子数据包最大长度为538,源数据包的长度为k=5208比特,对源数据包进行码块分割得到a=10块子数据包,前8块子数据包大小为521比特,后2块子数据包大小为520;分别对每块子数据包添加8比特的CRC序列;分别对每块添加8比特的CRC序列后的子数据包进行LDPC编码,得到10块LDPC编码子数据包,前8块LDPC编码子数据包大小为647比特,后2块LDPC编码子数据包大小为646;网络编码过程中采用单奇偶校验编码方法,对所有纠错编码子数据包填充总共2比特,即分别对后2块LDPC子数据包的每个子数据包在前面填充1比特,使得所有10块纠错编码子数据的长度都分别达到647比特(相当于预定的第三码块长度m3),对所述的10块LDPC编码子数据包进行网络编码得到1块校验子数据包,长度为647比特;按照以下规则进行比特选择操作,获得数据包Y:
所有的10块LDPC编码子数据包没有被选择的非填充比特的索引集合和1块校验子数据包中没有被选择的比特的索引集合中,所有C121个集合对中至少有100%的集合对的交集是空集,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合,是第j块校验子数据包中没有被选择的比特的索引集合。
本实施例中,A=15,此时a小于15大于1,因此按照实施例一中a小于等于A大于1时的计算公式来计算,其中的ri均等于0。
所有10块LDPC编码子数据包的第i块没有被选择的非填充比特的索引集合的长度ei(i=0、1、…、9)取值为:ei(i=0、1、…、9)=42;校验子数据包P0中没有被选择的比特的索引集合的长度f0取值为:f0=227。在本实施例的一个变例中,也可以令LDPC编码子数据包(即纠错编码子数据包)C8和C9的ei取值为41,其他LDPC编码子数据包ei取值为42;或者LDPC编码子数据包的ei取值为42,f0取值为:f0=225。使得编码后的数据包的长度等于a块LDPC编码子数据包的总长度。
第i块LDPC编码子数据包没有被选择的非填充比特的索引集合表示为校验子数据包P0没有被选择的比特的索引集合表示为也满足:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1。
10块LDPC编码子数据包和1块校验子数据包中,被选择和没有被选择的比特情况如图6所示。以上没有被选择的比特的索引在每个LDPC编码子数据包中是连续(集中)的,当然可以采用分散(离散)方式。
数据包Y的具体生成方式遵循实施例一中的方式,这里不再赘述。
实例四
在IEEE802.11aj系统中,通信系统支持的LDPC编码码率包括1/2、5/8、3/4和13/16,支持的码长都是Nldpc=672。
按照本实施例,系统当前采用设定信道编码码率为3/4,LDPC码母码需要的信息比特数为504,减去CRC序列的8比特得到实际每块子数据包最大长度为496,源数据包的长度为k=496比特,对源数据包进行码块分割得到a=1块子数据包,子数据包大小为496比特;分别对每块子数据包添加8比特的CRC序列;分别对每块添加8比特的CRC序列后的子数据包进行LDPC编码,得到1块LDPC编码子数据包,子数据包大小为672比特;网络编码过程中采用单奇偶校验编码方法,填充比特数为0比特,对所述的1块LDPC编码子数据包进行网络编码得到1块校验子数据包,长度为672比特;按照以下所述的规则进行比特选择操作,获得编码后的数据包Y:
所有的1块LDPC编码子数据包没有被选择的非填充比特的索引集合和1块校验子数据包中没有被选择的比特的索引集合中,所有1个集合对中至少有100%的集合对的交集是空集,是LDPC编码子数据包中没有被选择的非填充比特的索引集合,是校验子数据包中没有被选择的比特的索引集合;
本实施例中,索引集合的长度e0取值为:e0=0;的长度f0取值为:f0=672。此时,数据包Y和LDPC编码子数据包是一样的。
实例五
在一些需要Turbo编码的通信系统中,可以采用本实施例方案进行数据包的处理。
按照本发明的方法,系统当前采用设定Turbo编码码率为1/2,码长为1024比特,需要的信息比特数为512,减去CRC序列的8比特得到实际每块子数据包最大长度为504;设源数据包的长度为k=1512比特,对源数据包进行码块分割得到a=3块子数据包;分别对每块子数据包添加8比特的CRC序列,每个子数据包长度变为512比特;分别对每块添加CRC序列后的子数据包进行Turbo编码,得到3块Turbo编码子数据包,长度都为1024比特,填充比特数为0比特;网络编码过程中采用单奇偶校验编码方法,对所述的3块Turbo编码子数据包进行网络编码得到1块校验子数据包,长度为512比特;按照以下规则进行比特选择操作,获得编码后的数据包Y:
所有的3块Turbo编码子数据包没有被选择的非填充比特的索引集合和1块校验子数据包中没有被选择的比特的索引集合中,所有个集合对中有50%的集合对的交集是空集,是第i块Turbo编码子数据包中没有被选择的非填充比特的索引集合,是第j块校验子数据包中没有被选择的比特的索引集合。
所有3块Turbo编码子数据包被选择的非填充比特的索引集合的长度ei(i=0、1、2)取值为:e0=100、e2=120、e2=160;校验子数据包P0中没有被选择的比特的索引集合的长度f0取值为:f0=100。
第0块Turbo编码子数据包没有被选择的非填充比特的索引集合为[0、1、2、…、99],第1块Turbo编码子数据包没有被选择的非填充比特的索引集合为[90、91、92、…、209],第2块Turbo编码子数据包没有被选择的非填充比特的索引集合为[200、201、202、…、359];校验子数据包P0没有被选择的比特的索引集合为[350、351、352、…、449];剩下被选择的比特属于要发送的数据包Y的数据。3块Turbo编码子数据包和1块校验子数据包中,被选择和没有被选择的比特情况具体如图7所示。
以上所述的没有被选择的比特的索引在每个Turbo编码子数据包中是连续(集中)的,当然可以采用分散(离散)方式。
实例六
在一些需要Turbo编码的通信系统中,可以采用本发明方案进行数据包的处理。
按照本实施例,系统当前采用设定Turbo编码码率为1/2,码长为1024比特,需要的信息比特数为512,减去CRC序列的8比特得到实际每块子数据包最大长度为504;设源数据包的长度为k=1512比特,对源数据包进行码块分割得到a=3块子数据包;分别对每块子数据包添加8比特的CRC序列,每个子数据包长度变为512比特;分别对每块添加CRC序列后的子数据包进行Turbo编码,得到3块Turbo编码子数据包,长度都为1024比特,填充比特数为0比特;网络编码过程中采用2重比特奇偶校验编码方法,对所述的3块Turbo编码子数据包进行网络编码得到2块校验子数据包,长度为701比特;按照以下规则进行比特选择操作,获得编码后的数据包Y:
所有3块Turbo编码子数据包被选择的非填充比特的索引集合的长度ei(i=0、1、2)取值为:e0=100、e2=120、e2=160;2块校验子数据包中没有被选择的比特的索引集合的长度fj(j=0、1)取值为:f0=100、f1=80。
第0块Turbo编码子数据包没有被选择的非填充比特的索引集合为[0、1、2、…、99],第1块Turbo编码子数据包没有被选择的非填充比特的索引集合为[90、91、92、…、209],第2块Turbo编码子数据包没有被选择的非填充比特的索引集合为[200、201、202、…、359];第0块校验子数据包P0没有被选择的比特的索引集合为[350、351、352、…、449],第1块校验子数据包P1没有被选择的比特的索引集合为[470、471、472、…、549];剩下被选择的比特属于编码后的数据包Y的数据。3块Turbo编码子数据包和2块校验子数据包中,被选择和没有被选择的比特情况具体如图8所示。
以上所述的没有被选择的比特的索引在每个Turbo编码子数据包中是连续(集中)的,当然可以采用分散(离散)方式。
图9和图10分别示出了本发明实施例中码率为1/2时和码率为13/16时的性能增益。同时给出了传统数据包和本实施例方案的数据以方便性能比较,仿真结果显示,在保持同等条件下,本发明的技术方案取得较大性能增益,特别是源数据包的纠错编码子数据包块数越多,则性能增益越大,显示了巨大的技术进步。
本发明实施例所述支持提高数据包传输性能的方法和装置如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式,所述存储介质包括但不限于U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、磁盘存储器、CD-ROM、光学存储器等。
本申请是根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
相应的,本发明实施例还提供一种计算机存储介质,其中存储有计算机程序,该计算机程序用于执行本发明实施例的支持提高数据包传输性能的方法和装置。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (28)
1.一种数据包处理方法,包括:
对源数据包进行码块分割,得到a块子数据包;
对所述a块子数据包中的每块子数据包,进行纠错编码或者添加CRC序列后再进行纠错编码,得到a块纠错编码子数据包;
对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包;
对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包;
其中,a,b是大于0的整数。
2.如权利要求1所述的方法,其特征在于:
对所述a块纠错编码子数据包进行网络编码之前,还包括:
进行比特填充操作,使得所述a块纠错编码子数据包中的每块纠错编码子数据包的首位置和/或尾位置具有oi个填充比特,i=0、1、…、a-1,oi为大于等于0的整数。
3.如权利要求1或2所述的方法,其特征在于:
对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包,包括:
从所述的a块纠错编码子数据包中选择除第一集合 指示的比特之外的非填充比特,从所述的b块校验子数据包中选择除第二集合指示的比特之外的非填充比特,所有选择的比特构成编码后的数据包;
其中,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合;是第j块校验子数据包中没有被选择的比特的索引集合;且(a+b)个索引集合中,任意两个不同索引集合构成一个集合对,如此构成的所有个集合对中至少有h%的集合对的交集是空集;i=0、1、…、a-1;j=0、1、…、b-1;h是在[10,100]内取值的一个实数。
4.根据权利要求1所述的方法,其特征在于:
对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包,包括:
将所有a块纠错编码子数据包的第p比特构成一长度为a比特的序列Sp,p=0、1、…、n-1,n为大于1的整数;
对Sp进行单奇偶校验编码、b重比特奇偶校验编码或RS编码,得到长度为b比特的校验序列Tp;
将所有校验序列Tp的第q个比特顺序组合,得到长度为n比特的校验子数据包Pq,q=0、1、…、b-1。
5.根据权利要求1或2或4所述的方法,其特征在于:
所述纠错编码采用LDPC编码、Turbo编码或者卷积编码。
6.根据权利要求3所述的方法,其特征在于:
所述h的取值等于100、95、90、80、75或50。
7.根据权利要求2或4或6所述的方法,其特征在于:
所述进行比特填充操作,包括以下的一种或多种方式:
对源数据包进行码块分割之前,对所述源数据包填充k’比特,使得填充后的源数据包的长度能被m1整除,其中,k’是大于等于0的整数,m1为预定的第一码块长度;
对源数据包进行码块分割得到a块子数据包之后,对a块子数据包分别填充ki比特,使得填充后的每块子数据包的长度均等于预定的第二码块长度m2,其中,ki是大于等于0的整数,i=0、1、…、a-1;
得到a块纠错编码子数据包之后,对所a块纠错编码子数据包分别填充kj比特,使得填充后的每块纠错编码子数据包的长度均等于预定的第三码块长度m3,其中,kj是大于等于0的整数,j=0、1、…、a-1。
8.根据权利要求3所述的方法,其特征在于:
所述纠错编码采用LDPC编码,所述网络编码采用单奇偶校验编码,得到一块长度为n比特的校验子数据包P0,h=100,且有:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1;其中,n为大于1的整数。
9.根据权利要求8所述的方法,其特征在于:
对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包时,该数据包Y按以下方式生成:
其中,ei,为大于等于0的整数,表示索引集合的长度;f0为大于等于0的整数,表示索引集合的长度;ni是大于等于ei的整数,表示Ci中非填充比特的总个数;表达式是求和公式,c2大于等于c1时ek取原值,c2小于c1时将ek置0;hi是大于等于0的整数,表示Ci中第一个非填充比特的索引,h0=0;i=0、1、…、a-1时,Ci表示包括填充比特的纠错编码子数据包,i=a时,Ci表示校验子数据包P0,分别表示第i块子数据包的第(m+hi)个和第(m++hi+ei)个比特;Yi,m表示数据包Y包含的第i个子数据包的第m个比特,Ci中填充比特的数目大于等于0。
10.根据权利要求8或9所述的方法,其特征在于:
若a小于等于设定阈值A而且大于1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;E为大于等于1的整数;ri是大于等于0的整数。
11.根据权利要求8或9所述的方法,其特征在于:
若a大于设定阈值A,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;ri是大于等于0的整数。
12.根据权利要求8或9所述的方法,其特征在于:
若a=1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;ri是大于等于0的整数。
13.根据权利要求10或11所述的方法,其特征在于:
所述A是在[10,24]内取值的一个整数。
14.根据权利要求10所述的方法,其特征在于:
所述E为16、32、42、64、84、128、126或256。
15.一种数据包处理装置,其特征在于,包括:
码块分割模块,配置为对源数据包进行码块分割,得到a块子数据包;
纠错编码模块,配置为对所述a块子数据包中的每块子数据包,进行纠错编码或者添加CRC序列后再进行纠错编码,得到a块纠错编码子数据包;
网络编码模块,配置为对所述a块纠错编码子数据包进行网络编码,得到b块校验子数据包,b是大于0的整数;
比特选择模块,配置对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包。
16.根据权利要求15所述的装置,其特征在于:
还包括:比特填充模块,配置为对所述a块纠错编码子数据包进行网络编码之前进行比特填充操作,使得所述a块纠错编码子数据包中的每块纠错编码子数据包的首位置和/或尾位置具有oi个填充比特,i=0、1、…、a-1,oi为大于等于0的整数。
17.根据权利要求15或16所述的装置,其特征在于:
所述比特选择模块对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包,包括:
从所述的a块纠错编码子数据包中选择除第一集合 指示的比特之外的非填充比特,从所述的b块校验子数据包中选择除第二集合指示的比特之外的非填充比特,所有选择的比特构成编码后的数据包;
其中,是第i块纠错编码子数据包中没有被选择的非填充比特的索引集合;是第j块校验子数据包中没有被选择的比特的索引集合;且(a+b)个索引集合中,任意两个不同索引集合构成一个集合对,如此构成的所有个集合对中至少有h%的集合对的交集是空集;i=0、1、…、a-1;j=0、1、…、b-1;h是在[10,100]内取值的一个实数。
18.根据权利要求15所述的装置,其特征在于:
所述网络编码模块对所述a块纠错编码子数据包进行网络编码得到b块校验子数据包,包括:
将所有a块纠错编码子数据包的第p比特构成一长度为a比特的序列Sp,p=0、1、…、n-1,n为大于1的整数;
对Sp进行单奇偶校验编码、b重比特奇偶校验编码或RS编码,得到长度为b比特的校验序列Tp;
将所有校验序列Tp的第q个比特顺序组合,得到长度为n比特的校验子数据包Pq,q=0、1、…、b-1。
19.根据权利要求15或16或18所述的装置,其特征在于:
所述纠错编码采用LDPC编码、Turbo编码或者卷积编码。
20.根据权利要求17所述的装置,其特征在于:
所述比特选择模块采用的h等于100、95、90、80、75或50。
21.根据权利要求16或19所述的装置,其特征在于:
所述比特填充模块进行比特填充操作,包括以下的一种或多种方式:
对所述源数据包进行码块分割之前,对所述源数据包填充k’比特,使得填充后的源数据包的长度能被m1整除,其中,k’是大于等于0的整数,m1为预定的第一码块长度;
对所述源数据包进行码块分割得到的a块子数据包分别填充ki比特,使得填充后的每块子数据包的长度均等于预定的第二码块长度m2,其中,ki是大于等于0的整数,i=0、1、…、a-1;
对所述a块纠错编码子数据包分别填充kj比特,使得填充后的每块纠错编码子数据包的长度均等于预定的第三码块长度m3,其中,kj是大于等于0的整数,j=0、1、…、a-1。
22.根据权利要求17所述的装置,其特征在于:
所述纠错编码模块采用LDPC编码,所述网络编码模块采用单奇偶校验编码,得到1块长度为n比特的校验子数据包P0;
所述比特选择模块在进行比特选择操作时,h=100,且有:索引集合中第一个索引等于索引集合中最后一个索引加1;索引集合中第一个索引等于索引集合中最后一个索引加1;其中,n为大于1的整数。
23.根据权利要求22所述的装置,其特征在于:
所述比特选择模块对所述a块纠错编码子数据包和b块校验子数据包分别进行比特选择操作,共同构成编码后的数据包时,该数据包Y按以下方式生成:
其中,ei,为大于等于0的整数,表示索引集合的长度;f0为大于等于0的整数,表示索引集合的长度;ni是大于等于ei的整数,表示Ci中非填充比特的总个数;表达式是求和公式,c2大于等于c1时ek取原值,c2小于c1时将ek置0;hi是大于等于0的整数,表示Ci中第一个非填充比特的索引,h0=0;i=0、1、…、a-1时,Ci表示包括填充比特的纠错编码子数据包,i=a时,Ci表示校验子数据包P0,分别表示第i块子数据包的第(m+hi)个和第(m++hi+ei)个比特,Yi,m表示数据包Y包含的第i个子数据包的第m个比特,Ci中填充比特的数目大于等于0。
24.根据权利要求22或23所述的装置,其特征在于:
所述比特选择模块在进行比特选择操作时,若a小于等于设定阈值A而且大于1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;E为大于等于1的整数;ri是大于等于0的整数。
25.根据权利要求22或23所述的装置,其特征在于:
所述比特选择模块在进行比特选择操作时,若a大于设定阈值A,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;A为大于等于2的整数;ri是大于等于0的整数。
26.根据权利要求22或23所述的装置,其特征在于:
所述比特选择模块在进行比特选择操作时,若a=1,索引集合的长度ei和索引集合的长度f0采用以下方式确定:
其中,ei,f0是大于等于0的整数;表达式是求和公式;n大于等于表示校验子数据包P0的长度;ri是大于等于0的整数。
27.根据权利要求24或25所述的装置,其特征在于:
所述比特选择模块采用的A是在[10,24]内取值的一个整数。
28.根据权利要求24所述的装置,其特征在于:
所述比特选择模块采用的E为16、32、42、64、84、128、126或256。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410458311.2A CN105471545B (zh) | 2014-09-10 | 2014-09-10 | 一种数据包处理方法及装置 |
PCT/CN2015/075409 WO2015184914A1 (zh) | 2014-09-10 | 2015-03-30 | 一种数据包处理方法及装置 |
US15/509,489 US10476528B2 (en) | 2014-09-10 | 2015-03-30 | Data packet processing method and device |
EP15803924.8A EP3193472B1 (en) | 2014-09-10 | 2015-03-30 | Data packet processing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410458311.2A CN105471545B (zh) | 2014-09-10 | 2014-09-10 | 一种数据包处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105471545A true CN105471545A (zh) | 2016-04-06 |
CN105471545B CN105471545B (zh) | 2020-07-21 |
Family
ID=54766135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410458311.2A Active CN105471545B (zh) | 2014-09-10 | 2014-09-10 | 一种数据包处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10476528B2 (zh) |
EP (1) | EP3193472B1 (zh) |
CN (1) | CN105471545B (zh) |
WO (1) | WO2015184914A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108390740A (zh) * | 2017-02-03 | 2018-08-10 | 华为技术有限公司 | 一种信息的传输方法、译码方法和装置 |
CN108631792A (zh) * | 2017-03-24 | 2018-10-09 | 电信科学技术研究院 | 一种极化码编译码方法及装置 |
WO2018202223A1 (zh) * | 2017-05-05 | 2018-11-08 | 中兴通讯股份有限公司 | 信息传输方法及装置、电子设备 |
WO2019024123A1 (zh) * | 2017-08-04 | 2019-02-07 | 南通朗恒通信技术有限公司 | 一种被用于无线通信的用户、基站中的方法和设备 |
CN109417437A (zh) * | 2016-07-15 | 2019-03-01 | 夏普株式会社 | 发送装置、接收装置、通信方法以及集成电路 |
CN109792310A (zh) * | 2016-07-15 | 2019-05-21 | 夏普株式会社 | 发送装置、接收装置、通信方法以及集成电路 |
JP2020504529A (ja) * | 2017-01-05 | 2020-02-06 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 情報処理方法、デバイス、および通信システム |
CN114598424A (zh) * | 2017-02-15 | 2022-06-07 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
WO2023046029A1 (zh) * | 2021-09-26 | 2023-03-30 | 华为技术有限公司 | 数据传输方法、装置及可读存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10367530B2 (en) | 2016-01-14 | 2019-07-30 | Qualcomm Incorporated | Unified code block segmentation providing a cyclic redundancy check for low density parity check code codewords |
CN107026709B (zh) * | 2016-02-01 | 2021-02-12 | 中兴通讯股份有限公司 | 一种数据包编码处理方法及装置、基站及用户设备 |
CN107733441B (zh) * | 2016-08-12 | 2023-05-30 | 中兴通讯股份有限公司 | 编码方法及装置、译码方法及装置 |
CN108347298B (zh) * | 2017-01-24 | 2021-01-15 | 华为技术有限公司 | 一种编码的方法和通信装置 |
CN108631939B (zh) * | 2017-03-24 | 2020-03-10 | 华为技术有限公司 | 分割传输块的方法、无线通信设备和芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5844918A (en) * | 1995-11-28 | 1998-12-01 | Sanyo Electric Co., Ltd. | Digital transmission/receiving method, digital communications method, and data receiving apparatus |
EP2472726A1 (en) * | 2009-08-25 | 2012-07-04 | Fujitsu Limited | Transmitter, encoding device, receiver, and decoding device |
CN102577167A (zh) * | 2009-10-07 | 2012-07-11 | 日本电信电话株式会社 | 无线通信系统、无线中继站装置、无线终端站装置以及无线通信方法 |
WO2013081414A1 (en) * | 2011-11-30 | 2013-06-06 | Samsung Electronics Co., Ltd. | Apparatus and method of transmiting/receiving broadcast data |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7661037B2 (en) * | 2005-10-27 | 2010-02-09 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for IEEE 802.11n systems |
KR20070074256A (ko) * | 2006-01-09 | 2007-07-12 | 삼성전자주식회사 | 셀룰러 망에서 릴레이를 통한 데이터 중계방법 및 이를지원하는 셀룰러 이동통신시스템 |
CN101277144A (zh) | 2007-03-28 | 2008-10-01 | 北京三星通信技术研究有限公司 | 基于ldpc码的卫星数字多媒体广播系统 |
CN101282192B (zh) * | 2007-04-03 | 2011-09-21 | 中兴通讯股份有限公司 | 混合自动重传信道编码方法 |
US8514888B2 (en) * | 2008-09-12 | 2013-08-20 | Industrial Technology Research Institute | Methods and devices for wireless broadcasting service communication environment |
-
2014
- 2014-09-10 CN CN201410458311.2A patent/CN105471545B/zh active Active
-
2015
- 2015-03-30 US US15/509,489 patent/US10476528B2/en active Active
- 2015-03-30 WO PCT/CN2015/075409 patent/WO2015184914A1/zh active Application Filing
- 2015-03-30 EP EP15803924.8A patent/EP3193472B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5844918A (en) * | 1995-11-28 | 1998-12-01 | Sanyo Electric Co., Ltd. | Digital transmission/receiving method, digital communications method, and data receiving apparatus |
EP2472726A1 (en) * | 2009-08-25 | 2012-07-04 | Fujitsu Limited | Transmitter, encoding device, receiver, and decoding device |
CN102577167A (zh) * | 2009-10-07 | 2012-07-11 | 日本电信电话株式会社 | 无线通信系统、无线中继站装置、无线终端站装置以及无线通信方法 |
WO2013081414A1 (en) * | 2011-11-30 | 2013-06-06 | Samsung Electronics Co., Ltd. | Apparatus and method of transmiting/receiving broadcast data |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109417437A (zh) * | 2016-07-15 | 2019-03-01 | 夏普株式会社 | 发送装置、接收装置、通信方法以及集成电路 |
CN109792310A (zh) * | 2016-07-15 | 2019-05-21 | 夏普株式会社 | 发送装置、接收装置、通信方法以及集成电路 |
CN109417437B (zh) * | 2016-07-15 | 2022-09-20 | 夏普株式会社 | 发送装置、接收装置、通信方法以及集成电路 |
US11438099B2 (en) | 2017-01-05 | 2022-09-06 | Huawei Technologies Co., Ltd. | Information processing method, device, and communications system |
JP2020504529A (ja) * | 2017-01-05 | 2020-02-06 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 情報処理方法、デバイス、および通信システム |
JP7026689B2 (ja) | 2017-01-05 | 2022-02-28 | 華為技術有限公司 | 情報処理方法、デバイス、および通信システム |
CN108390740A (zh) * | 2017-02-03 | 2018-08-10 | 华为技术有限公司 | 一种信息的传输方法、译码方法和装置 |
US11133894B2 (en) | 2017-02-03 | 2021-09-28 | Huawei Technologies Co., Ltd. | Information transmission method, and decoding method and apparatus |
CN114598424A (zh) * | 2017-02-15 | 2022-06-07 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
CN108631792A (zh) * | 2017-03-24 | 2018-10-09 | 电信科学技术研究院 | 一种极化码编译码方法及装置 |
CN108631792B (zh) * | 2017-03-24 | 2021-04-06 | 电信科学技术研究院 | 一种极化码编译码方法及装置 |
WO2018202223A1 (zh) * | 2017-05-05 | 2018-11-08 | 中兴通讯股份有限公司 | 信息传输方法及装置、电子设备 |
WO2019024123A1 (zh) * | 2017-08-04 | 2019-02-07 | 南通朗恒通信技术有限公司 | 一种被用于无线通信的用户、基站中的方法和设备 |
US11245418B2 (en) | 2017-08-04 | 2022-02-08 | Shanghai Langbo Communication Technology Company Limited | Method and device in UE and base station for wireless communication |
WO2023046029A1 (zh) * | 2021-09-26 | 2023-03-30 | 华为技术有限公司 | 数据传输方法、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3193472B1 (en) | 2022-09-21 |
US10476528B2 (en) | 2019-11-12 |
EP3193472A1 (en) | 2017-07-19 |
EP3193472A4 (en) | 2017-09-20 |
CN105471545B (zh) | 2020-07-21 |
US20170324428A1 (en) | 2017-11-09 |
WO2015184914A1 (zh) | 2015-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105471545B (zh) | 一种数据包处理方法及装置 | |
US10469212B2 (en) | Data transmission method and device | |
US8370700B2 (en) | Coding method, coding device, decoding method and decoding device for low density generator matrix code | |
US8737519B2 (en) | Apparatus and method for channel coding in a communication system | |
CN101459430B (zh) | 低密度生成矩阵码的编码方法及装置 | |
US8839067B2 (en) | Apparatus and method for accelerating the encoding of raptor codes | |
CN107026709A (zh) | 一种数据包编码处理方法及装置、基站及用户设备 | |
CN105991227B (zh) | 数据编码方法及装置 | |
CN102355341A (zh) | 一种长期演进系统用混合自动重传请求的网络编码方法 | |
CN111050291B (zh) | 一种基于系统在线喷泉码的高编码符号度值广播方法 | |
CN101582744A (zh) | 一种基于迭代方法的rs喷泉码的编译码方法 | |
CN107968696A (zh) | 一种用于可变的校验比特数的ue、基站中的方法和装置 | |
US8604945B2 (en) | Apparatus and method for channel encoding in a communication/broadcasting system | |
EP3472955B1 (en) | Encoding device and method and corresponding decoding device and method | |
US9876608B2 (en) | Encoding apparatus and encoding method | |
US9264181B2 (en) | Communication system, method and receiver applicable thereto | |
CN101459490B (zh) | 一种数据传输方法及装置 | |
CN101378303A (zh) | 重传低密度奇偶校验码的生成方法、处理方法和装置 | |
CN101552661B (zh) | 一种差错控制方法 | |
CN102098125A (zh) | 并行基带处理的方法以及装置 | |
CN111447044B (zh) | 分布式存储方法和传输译码方法 | |
CN113037437A (zh) | 数据传输方法及装置 | |
CN107508656A (zh) | 一种在BEC信道上的Spinal信源信道联合译码方法 | |
CN102055572B (zh) | 数据重传方法及装置 | |
CN101272223B (zh) | 一种低密度生成矩阵码的译码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |