CN101656593A - 前向纠错编码方法、前向纠错译码方法及其装置 - Google Patents

前向纠错编码方法、前向纠错译码方法及其装置 Download PDF

Info

Publication number
CN101656593A
CN101656593A CN200910092479A CN200910092479A CN101656593A CN 101656593 A CN101656593 A CN 101656593A CN 200910092479 A CN200910092479 A CN 200910092479A CN 200910092479 A CN200910092479 A CN 200910092479A CN 101656593 A CN101656593 A CN 101656593A
Authority
CN
China
Prior art keywords
data block
error correction
forward error
filler
piece
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
Application number
CN200910092479A
Other languages
English (en)
Other versions
CN101656593B (zh
Inventor
王宝生
苏金树
龚正虎
刘亚萍
陶静
陈晓梅
廖海宁
陶孜谨
张晓哲
白冰
郦苏丹
胡宁
王宏
陈琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN 200910092479 priority Critical patent/CN101656593B/zh
Publication of CN101656593A publication Critical patent/CN101656593A/zh
Application granted granted Critical
Publication of CN101656593B publication Critical patent/CN101656593B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明提供一种前向纠错编码方法、前向纠错译码方法及其装置,该前向纠错编码方法包括:根据预先设置的编码规则在报文中填充填料,并将包含填料的报文划分为长度相等的数据块;根据编码规则和数据块生成冗余纠错块,并将填料从数据块中剔除;分别确定冗余纠错块、以及剔除填料的数据块的循环冗余校验值,并将循环冗余校验值添加在相应的冗余纠错块和剔除填料的数据块中;将剔除填料的数据块和冗余纠错块构成前向纠错码,并根据所述前向纠错码构建数据帧,其中,所述数据帧包括帧头、所述前向纠错码、以及帧尾;将所述数据帧发送到接收端。通过上述处理,节约了带宽资源。

Description

前向纠错编码方法、前向纠错译码方法及其装置
技术领域
本发明实施例涉及通信技术,尤其涉及一种前向纠错编码方法、前向纠错译码方法及其装置。
背景技术
在相关技术中,由于受到无线传输链路中的电磁干扰、电传输链路中的电流浪涌、光传输链路中的信号强弱的影响,非常容易造成数据链路中的报文发生突发性误码,突发性误码的典型特征是误码现象集中在某一段连续的数据中,并造成这一段数据很高的比特误码率。在严重时,突发性误码的比特误码率可达10-3,也就是说,如果报文长度超过1000字节,则报文的平均错误率为100%,如此高的比特误码率会导致恶劣环境下的无线传输链路上的误码现象日趋严重,进一步使得网络通信无法正常进行。
现有技术中,绝大部分的传输硬件对平均分布的误码具有很好的纠错能力,但是,在遇到集中突发式的误码情况时,由于传输硬件不能同时处理大规模的突发式误码,导致传统的纠错手段不再适用。因此,在低带宽、较大时延、高误码率的网络环境下引入了端对端的前向纠错(ForwardError Correction;以下简称:FEC),图1是现有技术中FEC架构的示意图,如图1所示,FEC是指报文在被传输之前预先对其按指定的格式进行编码,在接收端侧按规定的算法进行解码,以达到找出误码并纠正错误的一种纠错手段。具体地,发送端将报文发送到检、纠错码编码器中,检、纠错码编码器会对报文按照指定的格式进行编码,得到FEC编码,并将其发送到编码信道中,在编码信道中,会出现噪声源对FEC编码的干扰,从而出现了误码,在FEC编码发送到接收端的检、纠错码译码器后,检、纠错码译码器会对FEC编码按照指定的格式进行译码,并将译码后得到的报文发送到接收端。在上述编译码过程中,可以运用里德-所罗门(Reed-Solomon;以下简称RS)编码以数据块为单位对报文进行数据冗余保护。目前,FEC已经是一种提高传输质量的重要手段。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
由于RS编码是一种定长运算,因此,每个参与运算的数据块都达到规定的相同长度才能进行冗余保护数据的生成运算。但是,在网络传输中,报文长度会随应用不同而变化。频繁交互的应用产生大量无规则变化的报文(例如,即时通讯系统),不适于RS编码的定长特性。如果将报文统一采用定长分组,报文必然需要填充填料(pad)至规定长度后再进行RS编码,但是,由于报文中填充有大量的填料,使得在报文传输过程中非常容易造成带宽的浪费。
发明内容
本发明实施例提供一种前向纠错编码方法、前向纠错译码方法及其装置,用以解决现有技术中由于报文中填充有大量的填料而导致在报文传输过程中造成带宽的浪费的缺陷,减少不必要的带宽浪费。
本发明实施例提供一种前向纠错编码方法,包括:根据预先设置的编码规则在报文中填充填料,并将包含填料的报文划分为长度相等的数据块;根据编码规则和数据块生成冗余纠错块,并将填料从数据块中剔除;分别确定冗余纠错块、以及剔除填料的数据块的循环冗余校验值,并将循环冗余校验值添加在相应的冗余纠错块和剔除填料的数据块中;将添加循环冗余校验值的剔除填料的数据块和冗余纠错块构成前向纠错码,并根据前向纠错码构建数据帧,其中,数据帧包括帧头、前向纠错码、以及帧尾;将数据帧发送到接收端。
本发明实施例还提供一种前向纠错译码方法,包括:根据发送端发送的数据帧的帧头和帧尾接收数据帧,其中,数据帧包括帧头、前向纠错码、以及帧尾;根据前向纠错码中的循环冗余校验值确定在传输过程中前向纠错码中的预定数据块发生误码,其中,预定数据块的个数小于等于前向纠错码中冗余纠错块的个数;根据预先设置的编码规则将填料补充在前向纠错码中剔除填料的数据块中;根据冗余纠错块以及数据块计算发生误码的预定数据块;将填料从数据块中剔除,获取正确的报文。
本发明实施例还提供一种前向纠错编码装置,包括:填充模块,用于根据预先设置的编码规则在报文中填充填料;划分模块,用于将包含填料的报文划分为长度相等的数据块;生成模块,用于根据编码规则和数据块生成冗余纠错块;剔除模块,用于在生成模块生成冗余纠错块后,将填料从数据块中剔除;循环冗余校验模块,用于分别确定冗余纠错块、以及剔除填料的数据块的循环冗余校验值,并将循环冗余校验值添加在相应的冗余纠错块和剔除填料的数据块中;发送模块,用于将剔除填料的数据块和冗余纠错块构成前向纠错码,根据前向纠错码构建数据帧,并将数据帧发送到接收端,其中,数据帧包括帧头、前向纠错码、以及帧尾。
本发明实施例还提供一种前向纠错译码装置,包括:接收模块,用于根据发送端发送的数据帧的帧头和帧尾接收数据帧,其中,数据帧包括帧头、前向纠错码、以及帧尾;确定模块,用于根据前向纠错码中的循环冗余校验值确定在传输过程中前向纠错码中的预定数据块发生误码,其中,预定数据块的个数小于等于前向纠错码中冗余纠错块的个数;补充模块,用于根据预先设置的编码规则将填料补充在前向纠错码中剔除填料的数据块中;计算模块,用于根据冗余纠错块以及数据块计算发生误码的预定数据块;剔除模块,用于将填料从数据块中剔除,获取正确的报文。
本发明实施例的前向纠错编码方法、前向纠错译码方法及其装置,通过在生成冗余纠错块后,将填充在数据块中的填料剔除,克服了现有技术中由于报文中填充有大量的填料而导致在报文传输过程中造成带宽的浪费的缺陷,节约了带宽资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中前向纠错架构的示意图;
图2是本发明实施例的前向纠错编码方法的流程图;
图3是本发明实施例的前向纠错编码方法的编码方案的示意图;
图4是本发明实施例在情况一下报文接收的流程图;
图5是本发明实施例在情况二下报文接收的流程图;
图6是本发明实施例的前向纠错译码方法的流程图;
图7是本发明实施例的前向纠错编码装置的示意图;
图8是本发明实施例的前向纠错译码装置的示意图。
具体实施方式
下面结合附图和具体实施例进一步说明本发明实施例的技术方案。
根据本发明的实施例,提供了一种前向纠错编码方法,图2是本发明实施例的前向纠错编码方法的流程图,如图2所示,根据本发明实施例的前向纠错编码方法包括:
步骤201,发送端根据预先设置的编码规则在报文中填充填料,并将包含填料的报文划分为长度相等的数据块;其中,预先设置的编码规则包括:数据块的个数、冗余纠错块的个数、数据块的长度、冗余纠错块的长度、添加循环冗余校验值的位置、循环冗余校验值的长度;需要说明的是,数据块的长度等于冗余纠错块的长度。上述编码规则在接收端和发送端均预先设置。
具体地,在步骤201中,根据预先设置的编码规则中数据块的个数和数据块的长度在报文的最后一个字节后面填充填料,使得包含填料的报文的长度除以数据块的长度等于数据块的个数或等于数据块的个数的整数倍;在填充完填料后,就可以根据预先设置的编码规则中数据块的个数和数据块的长度将包含填料的报文划分为规定个数的数据块。
也就是说,本发明实施例将报文划分为数据块(Data Segment)和数据段(Data Block)。每个数据段分为m个数据块,每个数据块包含k个字节。数据段内m个数据块必须长度相等。如果报文不是数据段长度的整数倍,则数据段中数据长度不足的有效数据块必须通过填充填料补齐后再参与运算。
步骤202,根据预先设置的编码规则和上述填充填料后的数据块生成冗余纠错块,在生成冗余纠错块后,将填料从数据块中剔除;也就是说,根据预先设置的编码规则将报文以数据段为单位配备n(n∈N且n≤2)个冗余纠错块。
具体地,在步骤202中,需要根据预先设置的编码规则中冗余纠错块的个数以及冗余纠错块的长度对数据块进行RS运算,生成冗余纠错块。具体地,冗余纠错块的个数n为2的情况下,生成冗余纠错块需要包括如下处理:1、对每个数据块进行异或操作,生成第一冗余纠错块;2、对每个数据块进行伽罗华域(Galois Field;以下简称:GF)运算,得到GF域运算结果,并对GF域运算结果进行异或运算,生成第二冗余纠错块。其中,GF域运算是RS编码在进行双位校验时用到的数学原理。GF包括加、减、乘、除四种运算,其中加、减运算和异或(XOR)运算的意义相同,表示为而乘运算的意义为乘以基数,表示为⊙;同样,除运算定义为:若A=C÷B,则C=A⊙B。
在实际应用中,如果生成两个冗余纠错块,则每个数据段最大可容忍m个数据块中的任意两个数据块的误码。极限情况下,设m=5且发生误码的两个数据块均为全长误码,则最大纠错率将近30%,可以满足大部分链路的纠错需求。
步骤203,分别确定冗余纠错块、以及剔除填料的数据块的循环冗余校验值,并将循环冗余校验值添加在相应的冗余纠错块和剔除填料的数据块中;
具体地,本发明实施例中,采用检错和纠错两级编码。内码为检错编码,采用循环冗余校验值,编码对象为数据块;外码为纠错编码,采用RS运算生成冗余纠错块,编码对象为数据段。每个数据块均在块尾添加8位循环冗余校验值,以判断该数据块在传输过程中是否发生误码。设m=5,n=2,每个数据块长为10个字节,则平均编码效率=5*10/7*11=65%。
步骤204,将添加循环冗余校验值的剔除填料的数据块和冗余纠错块构成前向纠错码,并根据所述前向纠错码构建数据帧,其中,所述数据帧包括帧头、所述前向纠错码、以及帧尾。
具体地,在步骤204中,为了保证接收端能够接收到完整的数据段,在将前向纠错码发送到接收端之前,需要根据前向纠错码构建数据帧,其中,数据帧包括帧头、前向纠错码、以及帧尾。
步骤205,将数据帧发送到接收端。
在步骤205之后,接收端根据帧头、和帧尾接收发送端发送的该数据帧,并根据其中的循环冗余校验值确定在传输过程中前向纠错码中的发生误码的数据块,即,预定数据块,需要说明的是,预定数据块的个数小于等于冗余纠错块的个数。
随后,接收端根据预先设置的编码规则将填料补充在剔除填料的数据块中,并根据冗余纠错块以及数据块重新计算发生误码的预定数据块,最后,接收端将填料从数据块中剔除,获取正确的报文。
也就是说,一旦发生密集突发性误码,接收端会丢弃相应的数据块,并通过面向数据块的冗余纠错块重新计算出丢弃数据块的正确内容。在实际应用中,数据段内超过两个数据块发生密集突发误码的概率非常小,一旦出现则在上层协议当做丢包处理。
在发送端的报文需要填充填料来参与冗余数据生成计算时,在运算逻辑上采用填料补齐后的含填料数据块参与运算,但在运算完成后,填充的填料并不参与最终的数据传输,提高了传输效率。
以数据块为单位进行数据冗余恢复保证了恶劣误码环境下数据传输的进行。考虑到由于误码导致的重传报文的大量减少,本发明实施例的技术方案提高了带宽利用率,增加了数据的吞吐量。其在突发噪音式误码频繁发生的传输环境中可以保证报文的可靠传输,并且能够在冗余数据和带宽利用率之间取得很好的平衡。
以下结合实例,对本发明实施例的上述技术方案进一步进行详细的说明。
下面将以冗余纠错块的个数n=2的二维校验方式为例,对本发明的技术方案进行举例说明。需要说明的是,假设冗余纠错块1为P块,冗余纠错块2为Q块,其中,P为XOR校验码,由各个数据块参与比特级的异或运算产生;Q校验码采用伽罗华域运算,运用线性代数等比较复杂的算法生成。伽罗华域运算的相关技术细节已经很成熟,一些产品已经将其归纳为表格并固化,可以通过硬件查表来减少运算的开销。
在传输过程中,无论误码发生在哪个数据块(包括冗余纠错块)或误码块是怎样的组合,只要发生误码的块数不超过冗余纠错块的个数,该编码方案都可以保证有效数据的完整恢复。
目前,无论长短报文,只要不是定长出现,采用RS编码都会产生大量额外开销。对于短报文,需要填充填料(pad)至规定长度才能够进行冗余校验块的生成计算;对于长报文,如果其长度不能整除规定的长度,余数部分数据也需要填充pad至定长才能参与冗余纠错块运算。而大量的pad会造成带宽的严重浪费。
本发明实施例提供的虚拟pad技术从根本上解决了上述问题。填充pad的根本原因是生成冗余校验块(P+Q),在实际应用中并无其他用处。虚拟pad方案默认一个值(例如0),作为pad参与到冗余纠错块的生成运算。在冗余纠错块生成之后,向下层递交时并不包含所填充的pad,只是原始报文数据和冗余纠错块参与封装。
如果传输过程中发生误码,则需要冗余纠错块和原始数据块共同参与纠错恢复。具体地,在运算前将虚拟pad填充在数据块的尾端至补齐,纠错运算结束后再将数据块尾端的pad剔除,恢复为原始未填充状态。需要说明的是,发送端和接收端需要统一pad的取值,例如,双方均默认pad为0。
对于pad,可以进一步细分为两类:第一类是针对有效数据长度不足构成规定长度的数据块而添加的pad;第二类是由于现有数据块不足编码方案的块数规定而添加的pad块。这两类pad最终都不参与数据传输,且都不参与循环冗余校验值的计算。
本发明实施例要求发送端和接收端事先统一编解码方案来保证接收端对虚拟pad的还原。如果接收端通过循环冗余校验值发现传输过程中发生误码,则将数据添加pad至约定的长度,再通过纠错恢复运算还原误码数据。
假设双方协商的编码方案为5个数据块,2个冗余纠错块,每个块长为10个字节,每块在块尾附加1个字节CRC校验和。如果需要发送的报文为27个字节,如图3所示,则报文数据在该编码方案的分配为:
第一数据块、第二数据块由报文数据的前20个字节组成;第三数据块的前7个字节为报文数据,从第8个字节开始填充pad至数据块尾端;第四数据块、第五数据块全部由pad填充。5个数据块构建完成后,运用RS编码算法计算生成2个冗余纠错块。
至此,5个数据块和2个冗余纠错块均已生成。接下来需要剔除pad填料,计算各数据段的循环冗余校验值(数据块3只有7个字节的报文数据参与循环冗余校验值的计算),并将循环冗余校验值附加在相应的数据块尾。3个数据块(30字节)和2个冗余块(22字节)构成了即将发送的FEC码,每个块均包含1字节循环冗余校验值(全pad块除外)。
判断在传输过程中是否发生误码,可以在接收端通过循环冗余校验值来验证。每个循环冗余校验值负责本数据块误码的验证。在实际传输过程中,存在误码命中了循环冗余校验值本身而导致接收端校验出的循环冗余校验值与该数据块的循环冗余校验值不一致的情况。对此,本发明实施例不采用其他手段进一步确定误码的命中对象而统一将该数据块完整恢复。
在接收端,依次对每个块进行循环冗余校验,如果最后的计算得到的循环冗余校验值与数据块后面携带的循环冗余校验值一致,则说明在传输过程中该块未发生误码,反之则为该块被误码命中。如果在传输过程中发生误码,则在接收端将FEC编码恢复至pad填充状态,再利用RS编码对误码块进行恢复。
由于底层传输链路的原因,发送端发送的一个报文,接收端接收报文时可能存在以下两种情况:(1)报文分多次接收,每次接收报文的一部分;(2)一次接受一串长数据,其中包含多个报文。这两种情况都要求传输系统对报文的边界做明确清晰的定义,否则,一个报文的错误接收会导致接下来所有报文无法正确接收。所以,仅仅为原始数据块提供冗余纠错保护机制还不足以保证其在不可靠链路上的正确传输,必须提供额外的封装机制来保证编码后的前向纠错数据能被接收端正确接收。
为了保证接收端对完整报文的识别,在发送端冗余纠错计算完毕后,本发明实施例为整个FEC编码构建数据帧。帧结构中包含帧头和帧尾,接收端通过记录帧头和帧尾,识别出数据流中的完整FEC编码。从收到帧头起,接收端开始将接收的数据存入缓存,并一直进行至接收到帧尾标识符为止。下面对两种传输情况分别进行说明:
情况一,报文分多次接收,每次接收一部分。图4是本发明实施例在情况一下报文接收的流程图,如图4所示,包括如下处理:
步骤1,接收端在未接收报文前处于初始化状态;
步骤2,接收端接收到帧头标识符;
步骤3,在接收到帧头标识符后,接收端开始将所接收到的数据存入缓存,如果在本次接收数据中未出现帧尾标识符,则保存缓存数据暂不解码,置接收标志位为acceptable。
步骤4,如果在帧接收未完成状态下接收到帧头标识符,说明在传输过程中帧尾标识符丢失,清空缓存,向上层报告丢包。否则跳至步骤3。
步骤5,如果在帧接收未完成状态下接收到新的数据,将所接收到的数据存入缓存,直至接收到帧尾标识符,将数据递交解码器,置接受标志位为完成。
情况二,一次接受一串长数据,其中包含多个报文。图5是本发明实施例在情况二下报文接收的流程图,如图5所示,包括如下处理:
步骤1,接收端在未接收报文前处于初始化状态;
步骤2,接收端接收到帧头标识符;
步骤3,在接收到帧头标识符后,接收端开始将所接收到的数据存入缓存,在帧尾出现后,将完整的FEC编码送交解码器;
步骤4,如果帧尾标识符的下一个数据不是帧头标识符,则将接收标志位置为flush,在搜索到帧头标识符之前不接收任何数据;
步骤5,如果在接收到帧尾标识符后,搜索到帧头标识符,则执行步骤1。
通过上述处理,以数据块为单位进行数据冗余恢复保证了恶劣误码环境下数据传输的进行。考虑到由于误码导致的重传报文的大量减少,本发明实施例的技术方案提高了带宽利用率,增加了数据的吞吐量。其在突发噪音式误码频繁发生的传输环境中可以保证报文的可靠传输,并且能够在冗余数据和带宽利用率之间取得很好的平衡。
根据本发明的实施例,提供了一种前向纠错译码方法,图6是本发明实施例的前向纠错译码方法的流程图,如图6所示,根据本发明实施例的前向纠错译码方法包括:
步骤601,根据发送端发送的数据帧的帧头和帧尾接收该数据帧,其中,该数据帧种包括帧头、前向纠错码、以及帧尾;
具体地,由于底层传输链路的原因,发送端发送的一个报文,接收端接收报文时可能存在以下两种情况:(1)报文分多次接收,每次接收报文的一部分;(2)一次接受一串长数据,其中包含多个报文。这两种情况都要求传输系统对报文的边界做明确清晰的定义,否则,一个报文的错误接收会导致接下来所有报文无法正确接收。所以,仅仅为原始数据块提供冗余纠错保护机制还不足以保证其在不可靠链路上的正确传输,必须提供额外的封装机制来保证编码后的前向纠错数据能被接收端正确接收。
为了保证接收端对完整报文的识别,在发送端计算完冗余纠错块后,还需要为整个FEC编码构建数据帧。帧结构中包含帧头和帧尾,接收端通过记录帧头和帧尾,识别出数据流中的完整FEC编码。从收到帧头起,接收端开始将接收的数据存入缓存,并一直进行至接收到帧尾标识符为止。其具体接收的处理过程可以参照图4、图5进行理解,在此不再赘述。
步骤602,根据前向纠错码中的循环冗余校验值确定在传输过程中前向纠错码中的预定数据块发生误码,其中,所述预定数据块的个数小于等于所述前向纠错码中冗余纠错块的个数;
具体地,判断在传输过程中是否发生误码,可以在接收端通过循环冗余校验值来验证。每个循环冗余校验值负责本数据块误码的验证。在实际传输过程中,存在误码命中了循环冗余校验值本身而导致接收端校验出的循环冗余校验值与该数据块的循环冗余校验值不一致的情况。对此,本发明实施例不采用其他手段进一步确定误码的命中对象而统一将该数据块完整恢复。
在接收端,依次对每个数据块进行循环冗余校验,如果最后的计算得到的循环冗余校验值与数据块携带的循环冗余校验值一致,则说明在传输过程中该数据块未发生误码,反之则为该数据块被误码命中。
步骤603,根据预先设置的编码规则将填料补充在所述前向纠错码中剔除填料的数据块中;需要说明的是,发送端和接收端需要统一pad的取值,例如,双方均默认pad为0。
具体地,对于填料(pad),可以进一步细分为两类:第一类是针对有效数据长度不足构成规定长度的数据块而添加的pad;第二类是由于现有数据块不足编码方案的块数规定而添加的pad块。这两类pad最终都不参与数据传输。
本发明实施例要求发送端和接收端事先统一编解码方案来保证接收端对虚拟pad的还原。如果接收端通过循环冗余校验值发现传输过程中发生误码,则将数据添加pad至约定的长度,再通过纠错恢复运算还原误码数据。
步骤604,根据冗余纠错块以及数据块计算发生误码的预定数据块;
具体地,在传输过程中,无论误码发生在哪个数据块(包括冗余纠错块)或误码块是怎样的组合,只要发生误码的块数不超过冗余纠错块的个数,该编码方案都可以保证有效数据的完整恢复。
步骤605,将填料从所述数据块中剔除,获取正确的报文。
通过上述处理,接收端可以正确、完整地接收到发送端发送的报文。
根据本发明的实施例,提供了一种前向纠错编码装置,位于发送端,图7是本发明实施例的前向纠错编码装置的示意图,如图7所示,根据本发明实施例的前向纠错编码装置包括填充模块70、划分模块71、生成模块72、剔除模块73、循环冗余校验模块74、发送模块75。下面,对本发明实施例的前向纠错编码装置中的各个模块进行详细的说明。
填充模块70用于根据预先设置的编码规则在报文中填充填料;其中,预先设置的编码规则包括:数据块的个数、冗余纠错块的个数、数据块的长度、冗余纠错块的长度、添加循环冗余校验值的位置、循环冗余校验值的长度;需要说明的是,数据块的长度等于冗余纠错块的长度。
具体地,填充模块70根据预先设置的编码规则中数据块的个数和数据块的长度在报文的最后一个字节后面填充填料,使得包含填料的报文的长度除以数据块的长度等于数据块的个数或等于数据块的个数的整数倍;
也就是说,如果报文不是数据段长度的整数倍,则数据段中数据长度不足的有效数据块必须由填充模块70通过填充填料补齐后再参与运算。在填充完填料后,划分模块71就可以根据预先设置的编码规则中数据块的个数和数据块的长度将包含填料的报文划分为规定个数的数据块。
随后,生成模块72根据编码规则和数据块生成冗余纠错块;具体地,生成模块72需要根据预先设置的编码规则中冗余纠错块的个数以及冗余纠错块的长度对数据块进行RS运算,生成冗余纠错块。在冗余纠错块的个数n为2的情况下,生成模块72生成冗余纠错块需要包括如下处理:1、生成模块72对每个数据块进行异或操作,获取第一冗余纠错块;2、生成模块72对每个数据块进行GF运算,得到GF域运算结果,并对GF域运算结果进行异或运算,获取第二冗余纠错块。
在生成模块72生成冗余纠错块后,剔除模块73将填料从数据块中剔除;随后,循环冗余校验模块74分别确定冗余纠错块、以及剔除填料的数据块的循环冗余校验值,并将循环冗余校验值添加在相应的冗余纠错块和剔除填料的数据块中;最后,发送模块75将添加循环冗余校验值的剔除填料的所述数据块和所述冗余纠错块构成前向纠错码,根据所述前向纠错码构建数据帧,并将所述数据帧发送到接收端,其中,所述数据帧包括帧头、所述前向纠错码、以及帧尾。
具体地,为了保证接收端能够接收到完整的数据段,在将前向纠错码发送到接收端之前,发送模块75需要根据前向纠错码构建数据帧,其中,数据帧包括帧头、前向纠错码、以及帧尾,随后,发送模块75就可以将构建好的数据帧发送到接收端。
通过上述处理,由于填充的填料并不参与最终的数据传输,从而可以提高传输效率。以数据块为单位进行数据冗余恢复保证了恶劣误码环境下数据传输的进行。考虑到由于误码导致的重传报文的大量减少,本发明实施例的技术方案提高了带宽利用率,增加了数据的吞吐量。其在突发噪音式误码频繁发生的传输环境中可以保证报文的可靠传输,并且能够在冗余数据和带宽利用率之间取得很好的平衡。
根据本发明的另一实施例,提供了一种前向纠错译码装置,图8是本发明实施例的前向纠错译码装置的示意图,如图8所示,根据本发明实施例的前向纠错译码装置包括:接收模块80、确定模块81、补充模块82、计算模块83、剔除模块84。下面将对本发明实施例的前向纠错译码装置中的各个模块进行详细说明。
接收模块80根据发送端发送的数据帧的帧头和帧尾接收数据帧,其中,数据帧包括帧头、前向纠错码、以及帧尾;
具体地,由于底层传输链路的原因,发送端发送的一个报文,接收端的接收模块80接收报文时可能存在以下两种情况:(1)报文分多次接收,每次接收报文的一部分;(2)一次接受一串长数据,其中包含多个报文。这两种情况都要求传输系统对报文的边界做明确清晰的定义,否则,一个报文的错误接收会导致接下来所有报文无法正确接收。所以,仅仅为原始数据块提供冗余纠错保护机制还不足以保证其在不可靠链路上的正确传输,必须提供额外的封装机制来保证编码后的前向纠错数据能被接收端正确接收。
为了保证接收端对完整报文的识别,在发送端计算完冗余纠错块后,还需要为整个FEC编码构建数据帧。帧结构中包含帧头和帧尾,接收模块80通过记录帧头和帧尾,识别出数据流中的完整FEC编码。从收到帧头起,接收端开始将接收的数据存入缓存,并一直进行至接收到帧尾标识符为止。其具体接收的处理过程可以参照图4、图5进行理解,在此不再赘述。
确定模块81用于根据前向纠错码中的循环冗余校验值确定在传输过程中前向纠错码中的预定数据块发生误码,其中,预定数据块的个数小于等于前向纠错码中冗余纠错块的个数;
具体地,判断在传输过程中是否发生误码,确定模块81可以通过循环冗余校验值来验证。每个循环冗余校验值负责本数据块误码的验证。在实际传输过程中,存在误码命中了循环冗余校验值本身而导致接收端校验出的循环冗余校验值与该数据块的循环冗余校验值不一致的情况。对此,本发明实施例不采用其他手段进一步确定误码的命中对象而统一将该数据块完整恢复。
在接收端,确定模块81依次对每个数据块进行循环冗余校验,如果最后的计算得到的循环冗余校验值与数据块携带的循环冗余校验值一致,则说明在传输过程中该数据块未发生误码,反之则为该数据块被误码命中。
补充模块82用于根据预先设置的编码规则将填料补充在前向纠错码中剔除填料的数据块中;需要说明的是,发送端和接收端需要统一pad的取值,例如,双方均默认pad为0。
具体地,对于填料(pad),可以进一步细分为两类:第一类是针对有效数据长度不足构成规定长度的数据块而添加的pad;第二类是由于现有数据块不足编码方案的块数规定而添加的pad块。这两类pad最终都不参与数据传输。
本发明实施例要求发送端和接收端事先统一编解码方案来保证接收端对虚拟pad的还原。如果确定模块81过循环冗余校验值发现传输过程中发生误码,则补充模块82需要将数据添加pad至约定的长度,再通过纠错恢复运算还原误码数据。
计算模块83用于根据冗余纠错块以及数据块计算发生误码的预定数据块;具体地,在传输过程中,无论误码发生在哪个数据块(包括冗余纠错块)或误码块是怎样的组合,只要发生误码的块数不超过冗余纠错块的个数,该编码方案都可以保证有效数据的完整恢复。
最后,剔除模块84将填料从数据块中剔除,获取正确的报文。
通过上述处理,接收端可以正确、完整地接收到发送端发送的报文。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或任意其它形式的存储介质中。
综上所述,借助于本发明实施例的技术方案,以数据块为单位进行数据冗余恢复保证了恶劣误码环境下数据传输的进行。考虑到由于误码导致的重传报文的大量减少,本发明实施例的技术方案提高了带宽利用率,增加了数据的吞吐量。其在突发噪音式误码频繁发生的传输环境中可以保证报文的可靠传输,并且能够在冗余数据和带宽利用率之间取得很好的平衡。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1、一种前向纠错编码方法,其特征在于,包括:
根据预先设置的编码规则在报文中填充填料,并将包含填料的所述报文划分为长度相等的数据块;
根据所述编码规则和所述数据块生成冗余纠错块,并将所述填料从所述数据块中剔除;
分别确定所述冗余纠错块、以及剔除填料的所述数据块的循环冗余校验值,并将所述循环冗余校验值添加在相应的冗余纠错块和剔除填料的数据块中;
将添加所述循环冗余校验值的剔除填料的所述数据块和所述冗余纠错块构成前向纠错码,并根据所述前向纠错码构建数据帧,其中,所述数据帧包括帧头、所述前向纠错码、以及帧尾;
将所述数据帧发送到接收端。
2、根据权利要求1所述的方法,其特征在于,所述编码规则包括:所述数据块的个数、所述冗余纠错块的个数、所述数据块的长度、所述冗余纠错块的长度、添加所述循环冗余校验值的位置、所述循环冗余校验值的长度,其中,所述数据块的长度等于所述冗余纠错块的长度。
3、根据权利要求2所述的方法,其特征在于,所述根据预先设置的编码规则在报文中填充填料,并将包含填料的所述报文划分为长度相等的数据块包括:
根据所述数据块的个数和所述数据块的长度在所述报文的最后一个字节后面填充填料,使得包含填料的所述报文的长度除以所述数据块的长度等于所述数据块的个数或等于所述数据块的个数的整数倍;
根据所述数据块的个数和所述数据块的长度将包含填料的所述报文划分为所述数据块。
4、根据权利要求3所述的方法,其特征在于,所述根据所述编码规则和所述数据块生成冗余纠错块包括:
根据所述冗余纠错块的个数以及所述冗余纠错块的长度对所述数据块进行里德所罗门RS运算,生成所述冗余纠错块。
5、根据权利要求4所述的方法,其特征在于,在所述冗余纠错块的个数为2的情况下,所述根据所述冗余纠错块的个数对所述数据块进行里德所罗门RS运算,生成所述冗余纠错块包括:
对每个数据块进行异或操作,生成第一冗余纠错块;
对每个数据块进行伽罗华域GF运算,得到GF域运算结果,并对所述GF域运算结果进行异或运算,生成第二冗余纠错块。
6、根据权利要求5所述的方法,其特征在于,所述将所述数据帧发送到所述接收端之后,还包括:
所述接收端根据所述帧头、和所述帧尾接收所述数据帧;
所述接收端根据所述循环冗余校验值确定在传输过程中所述前向纠错码中的预定数据块发生误码,其中,所述预定数据块的个数小于等于所述冗余纠错块的个数;
所述接收端根据所述编码规则将所述填料补充在剔除填料的所述数据块中;
所述接收端根据所述冗余纠错块以及所述数据块重新计算发生误码的所述预定数据块;
所述接收端将所述填料从所述数据块中剔除,获取正确的所述报文。
7、一种前向纠错译码方法,其特征在于,包括:
根据发送端发送的数据帧的帧头和帧尾接收所述数据帧,其中,所述数据帧包括所述帧头、前向纠错码、以及所述帧尾;
根据所述前向纠错码中的循环冗余校验值确定在传输过程中所述前向纠错码中的预定数据块发生误码,其中,所述预定数据块的个数小于等于所述前向纠错码中冗余纠错块的个数;
根据预先设置的编码规则将填料补充在所述前向纠错码中剔除填料的数据块中;
根据所述冗余纠错块以及所述数据块计算发生误码的所述预定数据块;
将所述填料从所述数据块中剔除,获取正确的报文。
8、一种前向纠错编码装置,其特征在于,包括:
填充模块,用于根据预先设置的编码规则在报文中填充填料;
划分模块,用于将包含填料的所述报文划分为长度相等的数据块;
生成模块,用于根据所述编码规则和所述数据块生成冗余纠错块;
剔除模块,用于在所述生成模块生成所述冗余纠错块后,将所述填料从所述数据块中剔除;
循环冗余校验模块,用于分别确定所述冗余纠错块、以及剔除填料的所述数据块的循环冗余校验值,并将所述循环冗余校验值添加在相应的冗余纠错块和剔除填料的数据块中;
发送模块,用于将剔除填料的所述数据块和所述冗余纠错块构成前向纠错码,根据所述前向纠错码构建数据帧,并将所述数据帧发送到接收端,其中,所述数据帧包括帧头、所述前向纠错码、以及帧尾。
9、一种前向纠错译码装置,其特征在于,包括:
接收模块,用于根据发送端发送的数据帧的帧头和帧尾接收所述数据帧,其中,所述数据帧包括所述帧头、前向纠错码、以及所述帧尾;
确定模块,用于根据所述前向纠错码中的循环冗余校验值确定在传输过程中所述前向纠错码中的预定数据块发生误码,其中,所述预定数据块的个数小于等于所述前向纠错码中冗余纠错块的个数;
补充模块,用于根据预先设置的编码规则将填料补充在所述前向纠错码中剔除填料的数据块中;
计算模块,用于根据所述冗余纠错块以及所述数据块计算发生误码的所述预定数据块;
剔除模块,用于将所述填料从所述数据块中剔除,获取正确的报文。
CN 200910092479 2009-09-15 2009-09-15 前向纠错编码方法、前向纠错译码方法及其装置 Expired - Fee Related CN101656593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910092479 CN101656593B (zh) 2009-09-15 2009-09-15 前向纠错编码方法、前向纠错译码方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910092479 CN101656593B (zh) 2009-09-15 2009-09-15 前向纠错编码方法、前向纠错译码方法及其装置

Publications (2)

Publication Number Publication Date
CN101656593A true CN101656593A (zh) 2010-02-24
CN101656593B CN101656593B (zh) 2013-05-22

Family

ID=41710703

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910092479 Expired - Fee Related CN101656593B (zh) 2009-09-15 2009-09-15 前向纠错编码方法、前向纠错译码方法及其装置

Country Status (1)

Country Link
CN (1) CN101656593B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968962A (zh) * 2010-09-19 2011-02-09 北京航空航天大学 一种基于faac及faad2的单声道固定比特率的音频实时编解码纠错方法
CN101662335B (zh) * 2009-09-15 2013-06-26 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置
CN103797455A (zh) * 2013-11-06 2014-05-14 华为技术有限公司 存储文件的方法和装置
WO2016127820A1 (zh) * 2015-02-15 2016-08-18 中兴通讯股份有限公司 数据编码方法及装置
CN103797455B (zh) * 2013-11-06 2016-11-30 华为技术有限公司 存储文件的方法和装置
CN106559180A (zh) * 2016-12-08 2017-04-05 西安烽火电子科技有限责任公司 基于速率兼容ldpc码的arq短报文通信方法
CN108093416A (zh) * 2017-11-30 2018-05-29 厦门市美亚柏科信息股份有限公司 一种移动app推送数据的采集方法及终端
CN109428690A (zh) * 2017-09-04 2019-03-05 瑞昱半导体股份有限公司 以太网络的连线方法及以太网络装置
CN110519004A (zh) * 2018-05-21 2019-11-29 华为技术有限公司 一种编码方法及相关设备
WO2021047612A1 (zh) * 2019-09-10 2021-03-18 华为技术有限公司 报文处理方法、装置以及计算机存储介质
WO2021209037A1 (zh) * 2020-04-16 2021-10-21 华为技术有限公司 数据恢复方法及装置
CN113938248A (zh) * 2020-07-14 2022-01-14 华为技术有限公司 数据报文纠错方法和数据报文纠错装置
CN114915380A (zh) * 2022-07-19 2022-08-16 中国科学院宁波材料技术与工程研究所 基于can总线的低成本高实时自动纠错通讯系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732559B2 (en) * 2006-07-25 2014-05-20 Thomson Licensing Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction
CN101267210B (zh) * 2007-03-12 2011-01-05 华为技术有限公司 数据编译码和收发方法及装置
CN101662335B (zh) * 2009-09-15 2013-06-26 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662335B (zh) * 2009-09-15 2013-06-26 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置
CN101968962A (zh) * 2010-09-19 2011-02-09 北京航空航天大学 一种基于faac及faad2的单声道固定比特率的音频实时编解码纠错方法
CN103797455A (zh) * 2013-11-06 2014-05-14 华为技术有限公司 存储文件的方法和装置
WO2015066850A1 (zh) * 2013-11-06 2015-05-14 华为技术有限公司 存储文件的方法和装置
CN103797455B (zh) * 2013-11-06 2016-11-30 华为技术有限公司 存储文件的方法和装置
WO2016127820A1 (zh) * 2015-02-15 2016-08-18 中兴通讯股份有限公司 数据编码方法及装置
CN106559180A (zh) * 2016-12-08 2017-04-05 西安烽火电子科技有限责任公司 基于速率兼容ldpc码的arq短报文通信方法
CN106559180B (zh) * 2016-12-08 2019-08-02 西安烽火电子科技有限责任公司 基于速率兼容ldpc码的arq短报文通信方法
CN109428690A (zh) * 2017-09-04 2019-03-05 瑞昱半导体股份有限公司 以太网络的连线方法及以太网络装置
CN108093416A (zh) * 2017-11-30 2018-05-29 厦门市美亚柏科信息股份有限公司 一种移动app推送数据的采集方法及终端
CN108093416B (zh) * 2017-11-30 2021-09-21 厦门市美亚柏科信息股份有限公司 一种移动app推送数据的采集方法及终端
CN110519004A (zh) * 2018-05-21 2019-11-29 华为技术有限公司 一种编码方法及相关设备
CN110519004B (zh) * 2018-05-21 2021-12-14 华为技术有限公司 一种编码方法及相关设备
US11539461B2 (en) 2018-05-21 2022-12-27 Huawei Technologies Co., Ltd. Encoding method and related device
WO2021047612A1 (zh) * 2019-09-10 2021-03-18 华为技术有限公司 报文处理方法、装置以及计算机存储介质
US11683123B2 (en) 2019-09-10 2023-06-20 Huawei Technologies Co., Ltd. Packet processing method and apparatus, and computer storage medium
WO2021209037A1 (zh) * 2020-04-16 2021-10-21 华为技术有限公司 数据恢复方法及装置
CN113938248A (zh) * 2020-07-14 2022-01-14 华为技术有限公司 数据报文纠错方法和数据报文纠错装置
CN114915380A (zh) * 2022-07-19 2022-08-16 中国科学院宁波材料技术与工程研究所 基于can总线的低成本高实时自动纠错通讯系统及方法

Also Published As

Publication number Publication date
CN101656593B (zh) 2013-05-22

Similar Documents

Publication Publication Date Title
CN101662335B (zh) 前向纠错编码方法、前向纠错译码方法及其装置
CN101656593B (zh) 前向纠错编码方法、前向纠错译码方法及其装置
CN100362782C (zh) 对丢失数据单元进行恢复的方法
EP2630766B1 (en) Universal file delivery methods for providing unequal error protection and bundled file delivery services
EP2166687B1 (en) A method and apparatus for transmiting and receiving data packets
CN106937134B (zh) 一种数据传输的编码方法、编码发送装置及系统
CN104040976B (zh) 用于丢失实时媒体分组恢复的方法和装置
CN109347598B (zh) 校验码处理方法、电子设备及存储介质
US20070165673A1 (en) Method for reconstructing lost packets using a binary parity check
US20220077958A1 (en) Data Transmission Method and Apparatus
WO2017112744A1 (en) Improved joint fountain coding and network coding for loss-tolerant information spreading
RU2001132150A (ru) Способ и устройство для передачи и приема мультимедийных данных
CN101800757A (zh) 一种基于单光纤结构的无反馈单向数据传输方法
CN106817192A (zh) 一种错误估计的方法、基站及终端
CN113541856A (zh) 数据恢复方法及装置
CN102891737B (zh) 一种二进制无速率码的译码方法及编码和译码系统
US20110060959A1 (en) Method and Apparatus for Data Receiving
CN100553157C (zh) 在通信系统的外部解码器处进行代码组合的方法
CA2998900A1 (en) Fec mechanism based on media contents
CN103312458A (zh) 混合编码方法
CN107947902A (zh) 一种高速接口芯片的数据差错处理系统及方法
KR101314301B1 (ko) 통신 네트워크에서 데이터를 인코딩하기 위한 방법 및 장치
EP3493442B1 (en) Method and apparatus for coding received packets in a broadcasting and communication system
EP4123932A1 (en) Code word synchronization method, receiver, network device and network system
CN109428676B (zh) 一种前向纠错编解码模式的同步方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130522

Termination date: 20130915