CN102904585A - 动态纠错编、解码方法及装置 - Google Patents

动态纠错编、解码方法及装置 Download PDF

Info

Publication number
CN102904585A
CN102904585A CN2012104480691A CN201210448069A CN102904585A CN 102904585 A CN102904585 A CN 102904585A CN 2012104480691 A CN2012104480691 A CN 2012104480691A CN 201210448069 A CN201210448069 A CN 201210448069A CN 102904585 A CN102904585 A CN 102904585A
Authority
CN
China
Prior art keywords
row
coding
data block
code
decoding
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
CN2012104480691A
Other languages
English (en)
Other versions
CN102904585B (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.)
Hangzhou Silan Microelectronics Co Ltd
Original Assignee
Hangzhou Silan Microelectronics 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 Hangzhou Silan Microelectronics Co Ltd filed Critical Hangzhou Silan Microelectronics Co Ltd
Priority to CN201210448069.1A priority Critical patent/CN102904585B/zh
Publication of CN102904585A publication Critical patent/CN102904585A/zh
Application granted granted Critical
Publication of CN102904585B publication Critical patent/CN102904585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明提供了一种动态纠错编、解码方法及装置,所述动态纠错编码方法包括:根据当前应用场景动态地确定列编码方法、列校验符号数L、行编码方法、行校验符号数K;选择用户信息数据块,该用户信息数据块包括N行M列的N×M个信息符号;采用列编码方法对所述用户信息数据块的每一列进行列编码,将得到的L×M个列校验符号与用户数据块组合为(N+L)行M列的行信息数据块,之后采用行编码方法对行信息数据块的每一行进行行编码,将得到的(N+L)×K个行校验符号与行信息数据块组合为(N+L)行(M+K)列的纠错编码块。本发明能够适应存储介质、传输信道以及数据可靠性要求的动态变化,根据实际应用场景的需要实现不同的纠错能力。

Description

动态纠错编、解码方法及装置
技术领域
本发明涉及数据纠错编解码技术,尤其涉及一种动态纠错编、解码方法及装置。
背景技术
纠错编码(ECC,Error Correction Codes)广泛应用于存储、通讯、以及信息处理领域,如光盘、有线通信、无线通信、硬盘、U盘、磁带等。其中,光盘与硬盘通常采用交织里德-所罗门(RS)编码。而数字电视通常采用交织的RS编码和低密度奇偶校验(LDPC)编码;无线通信则广泛采用卷积码、Turbo码和LDPC编码。
然而,由于存储介质因使用环境、使用时间、制造材料以及制造工艺不同,导致数据的出错概率会发生变化;传输信道因信道介质和环境的不同,导致数据的出错概率也会发生变化;此外,不同数据对数据可靠性的要求也是不尽相同的。但是,现有技术中的编码方法通常是静态的,不能动态适应上述变化。
发明内容
本发明要解决的技术问题是提供一种动态纠错编、解码方法及装置,能够适应存储介质、传输信道以及数据可靠性要求的动态变化,根据实际应用场景的需要实现不同的纠错能力。
为解决上述技术问题,本发明提供了一种动态纠错编码方法,包括:
确定列编码方法、列校验符号数L、行编码方法、行校验符号数K,其中,列校验符号数L和行校验符号数K是根据当前应用场景动态地确定的,L为正整数,K为非负整数;
选择用户信息数据块,该用户信息数据块包括N行M列的N×M个信息符号,其中N和M为正整数;
采用所述列编码方法对所述用户信息数据块的每一列进行列编码,将得到的L×M个列校验符号与所述用户数据块组合为(N+L)行M列的行信息数据块,之后采用所述行编码方法对所述行信息数据块的每一行进行行编码,将得到的(N+L)×K个行校验符号与所述行信息数据块组合为(N+L)行(M+K)列的纠错编码块;或者,采用所述行编码方法对所述用户信息数据块的每一行进行行编码,将得到的N×K个行校验符号与所述用户数据块组合为N行(M+K)列的列信息数据块,之后采用所述列编码方法对所述列信息数据块的每一列进行列编码,将得到的L×(M+K)个列校验符号与所述列信息数据块组合为(N+L)行(M+K)列的纠错编码块。
可选地,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
可选地,所述编码方法还包括:对所述(N+L)行(M+K)列的纠错编码块进行交织,得到(N+L)行(M+K)列的交织纠错编码块。
可选地,所述行编码方法和列编码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码。
可选地,L=10、12或16;K=2、4、6、8、10、16或32。
可选地,所述用户信息数据块为用于光盘存储的数据,其中N=160,M=206。
可选地,所述用户信息数据块为用于网络传输的数据,其中N=160,M=104。
可选地,所述用户信息数据为用于U盘存储的数据,其中N=64,M=131。
本发明还提供了一种动态纠错解码方法,包括:
选择(N+L)行(M+K)列的纠错编码块,M、N、L为正整数,K为非负整数;
获取所述纠错编码块的列解码方法、列校验符号数L、行解码方法、行校验符号数K,所述列校验符号数L和行校验符号数K是编码时根据当前应用场景动态地确定的,所述列解码方法、行解码方法分别与编码时根据当前应用场景动态确定的列编码方法、行编码方法对应;
采用所述行解码方法和行校验符号数K对所述纠错编码块的每一行进行行解码,得到(N+L)行M列的列信息数据块,之后采用所述列解码方法和列校验符号数L对所述列信息数据块的每一列进行列解码,得到N行M列的用户信息数据块;或者,采用所述列解码方法和列校验符号数L对所述纠错编码块的每一列进行列解码,得到N行(M+K)列的行信息数据块,之后采用所述行解码方法和行校验符号数K对所述行信息数据块的每一行进行行解码,得到N行M列的用户信息数据块。
可选地,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
可选地,在进行行解码和列解码之前还包括:对所述纠错编码块进行解交织。
可选地,所述行解码方法和列解码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码的解码方法。本发明还提供了一种动态纠错编码装置,包括:
动态编码参数产生模块,用于确定列编码方法、列校验符号数L、行编码方法、行校验符号数K,其中,列校验符号数L和行校验符号数K是根据当前应用场景动态地确定的,L为正整数,K为非负整数;
数据读取模块,用于选择用户信息数据块,该用户信息数据块包括N行M列的N×M个信息符号,其中N和M为正整数;
纠错编码模块,包括行编码器和列编码器,其中,所述列编码器采用所述列编码方法对所述用户信息数据块的每一列进行列编码,将得到的L×M个列校验符号与所述用户数据块组合为(N+L)行M列的行信息数据块,之后所述行编码器采用所述行编码方法对所述行信息数据块的每一行进行行编码,将得到的(N+L)×K个行校验符号与所述行信息数据块组合为(N+L)行(M+K)列的纠错编码块;或者,所述行编码器采用所述行编码方法对所述用户信息数据块的每一行进行行编码,将得到的N×K个行校验符号与所述用户数据块组合为N行(M+K)列的列信息数据块,之后所述列编码器采用所述列编码方法对所述列信息数据块的每一列进行列编码,将得到的L×(M+K)个列校验符号与所述列信息数据块组合为(N+L)行(M+K)列的纠错编码块。
可选地,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
可选地,所述编码装置还包括:交织器,对所述(N+L)行(M+K)列的纠错编码块进行交织,得到(N+L)行(M+K)列的交织纠错编码块。
可选地,所述行编码方法和列编码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码。
可选地,L=10、12或16;K=2、4、6、8、10、16或32。
可选地,所述用户信息数据块为用于光盘存储的数据,其中N=160,M=206。
可选地,所述用户信息数据块为用于网络传输的数据,其中N=160,M=104。
可选地,所述用户信息数据为用于U盘存储的数据,其中N=64,M=131。
本发明还提供了一种动态纠错解码装置,包括:
数据读取模块,用于选择(N+L)行(M+K)列的纠错编码块,M、N、L为正整数,K为非负整数;
动态编码参数获取模块,用于获取所述纠错编码块的列解码方法、列校验符号数L、行解码方法、行校验符号数K,所述列校验符号数L和行校验符号数K是编码时根据当前应用场景动态地确定的,所述列解码方法、行解码方法分别与编码时根据当前应用场景动态确定的列编码方法、行编码方法对应;
纠错解码模块,包括行解码器和列解码器,其中,所述行解码器采用所述行解码方法和行校验符号数K对所述纠错编码块的每一行进行行解码,得到(N+L)行M列的列信息数据块,之后所述列解码器采用所述列解码方法和列校验符号数L对所述列信息数据块的每一列进行列解码,得到N行M列的用户信息数据块;或者,所述列解码器采用所述列解码方法和列校验符号数L对所述纠错编码块的每一列进行列解码,得到N行(M+K)列的行信息数据块,之后所述行解码器采用所述行解码方法和行校验符号数K对所述行信息数据块的每一行进行行解码,得到N行M列的用户信息数据块。
可选地,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
可选地,所述解码装置还包括:对所述纠错编码块进行解交织,并将解交织后的纠错编码块传输至所述纠错解码模块。
可选地,所述行解码方法和列解码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码的解码方法。
与现有技术相比,本发明具有以下优点:
本发明实施例的动态纠错编码方法以及装置中,行编码方法、列编码方法、列校验符号数L、行校验符号数K可以根据应用场景动态地确定,从而可以在不同的用户信息数据之间随时改变,因此能够适应存储介质因使用环境、使用时间、制造材料以及制造工艺不同,或者传输信道特性由于信道介质和使用环境不同,或者不同数据对数据可靠性的要求可变等各种场合。
附图说明
图1是本发明实施例的动态纠错编码方法的流程示意图;
图2是本发明实施例的动态纠错解码方法的流程示意图;
图3是本发明实施例的一种动态纠错编码装置的结构框图;
图4是本发明实施例的另一种动态纠错编码装置的结构框图;
图5是本发明实施例的动态纠错解码装置的结构框图。
具体实施方式
下面结合具体实施例和附图对本发明作进一步说明,但不应以此限制本发明的保护范围。
参考图1,本实施例的动态纠错编码方法包括:
步骤S11,根据当前应用场景动态地确定列编码方法、列校验符号数L、行编码方法、行校验符号数K,其中,L为正整数,K为非负整数;
步骤S12,选择用户信息数据块,该用户信息数据块包括N行M列的N×M个信息符号,其中N和M为正整数;
步骤S13,采用所述列编码方法对所述用户信息数据块的每一列进行列编码,将得到的L×M个列校验符号与所述用户数据块组合为(N+L)行M列的行信息数据块,之后采用所述行编码方法对所述行信息数据块的每一行进行行编码,将得到的(N+L)×K个行校验符号与所述行信息数据块组合为(N+L)行(M+K)列的纠错编码块。
在步骤S11中,根据当前的应用场景动态地确定列编码方法、列校验符号数L、行编码方法、行校验符号数K,其中,当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求,但并不限于此。而列编码方法和行编码方法可以选自RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码,但并不限于此,列编码方法和行编码方法可以相同,也可以不同。
步骤S12中选取的用户数据块可以是各种数据,例如将用于存储在存储介质上的数据、将通过有线、无线通信信道进行传输的数据等等。
在实施例中,步骤S13首先进行列编码,之后再进行行编码,本领域技术人员应当理解,在其他具体实施例中,还可以首先进行行编码,之后在进行列编码,换言之,将步骤S13替换为:采用所述行编码方法对所述用户信息数据块的每一行进行行编码,将得到的N×K个行校验符号与所述用户数据块组合为N行(M+K)列的列信息数据块,之后采用所述列编码方法对所述列信息数据块的每一列进行列编码,将得到的L×(M+K)个列校验符号与所述列信息数据块组合为(N+L)行(M+K)列的纠错编码块。
在步骤S13之后,还可以对生成的纠错编码块进行交织,交织度为I,其中交织度I也可以根据当前应用场景动态地确定,交织之后,得到(N+L)行(M+K)列的交织纠错编码块。
在进行行编码、列编码以及交织之后,生成的交织纠错编码块(或者纠错编码块)可以存储在存储介质上,或者通过通信信道传输。
之后,可以选取下一用户信息数据块,并重新动态确定列编码方法、行编码方法、行校验符号数K、列校验符号数L,重新重复步骤S11至S13。对于每一个用户信息数据块,编码过程中所采用的列编码方法、行编码方法、行校验符号数K、列校验符号数L都是根据当前应用场景确定的,因而可以动态地适应存储介质因使用环境、使用时间、制造材料及制造工艺的改变,也可以动态地适应由于信道介质和环境不同导致的通信信道特性的改变,此外,也可以动态地适应不同数据对数据可靠性要求的不同。
参考图2,本实施例的动态纠错解码方法包括:
步骤S21,选择(N+L)行(M+K)列的纠错编码块,M、N、L为正整数,K为非负整数;
步骤S22,获取所述纠错编码块的列解码方法、列校验符号数L、行解码方法、行校验符号数K,所述列校验符号数L和行校验符号数K是编码时根据当前应用场景动态地确定的,所述列解码方法、行解码方法分别与编码时根据当前应用场景动态确定的列编码方法、行编码方法对应;
步骤S23,采用所述行解码方法和行校验符号数K对所述纠错编码块的每一行进行行解码,得到(N+L)行M列的列信息数据块,之后采用所述列解码方法和列校验符号数L对所述列信息数据块的每一列进行列解码,得到N行M列的用户信息数据块。
其中,步骤S21中的纠错编码块可以从存储介质中读取,也可以来自通信信道等。
步骤S22中,从存储介质、通信信道等获取该纠错编码块的列解码方法、列校验符号数L、行解码方法、行校验符号数K,列校验符号数L和行校验符号数K是编码时根据当前应用场景动态地确定的,列解码方法、行解码方法分别与编码时根据当前应用场景动态确定的列编码方法、行编码方法对应。列编码方法和行编码方法可以选自RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码,但不限于此,其应当取决于编码时采用的行编码方法和列编码方法。
在步骤S23之前,还可以对纠错编码块进行解交织,交织度I来自于存储介质、通信信道等,其具体数值取决于编码时采用的交织度I。
在本实施例中,步骤S23首先进行行解码,之后进行列解码,但本领域技术人员应当理解,在其他具体实施例中,也可以首先进行列解码,之后再进行行解码,换言之,步骤S23可以替换为:采用所述列解码方法和列校验符号数L对所述纠错编码块的每一列进行列解码,得到N行(M+K)列的行信息数据块,之后采用所述行解码方法和行校验符号数K对所述行信息数据块的每一行进行行解码,得到N行M列的用户信息数据块。
在解交织、行解码以及列解码之后,得到的用户信息数据块可以进行后续处理,例如,如果该用户信息数据块是音频信息,则可以进行音频解码等。
下面用一具体实例来进一步说明本技术方案中的动态纠错编码方法,M、N可以选自以下任一种:(1)M=206,N=160;(2)M=103,N=320;(3)M=512,N=80;(4)M=1024,N=40;L可以为任意正整数,K可以为任意非负整数。在该实例中,以光盘存储为例,选取M=206,N=160。
动态纠错编码过程包括以下步骤:
步骤一,选择L=16、K=2、列编码方法为RS码、行编码方法为EDC码;
步骤二,将大小为160行206列的160×206个信息符号组成用户信息数据块,如表一所示:
表一
Figure BDA00002374713000081
该用户信息块的生成过程如下:以光盘存储为例,通常用户信息数据由2048字节组成,用户信息数据需要依次添加扇区号(SID)、扇区号(SID)的纠错码(SECC)、第一保留字(RSV)和数据扇区控制字(SCON),对2048字节的用户信息数据进行错误检测码(EDC,Error Detection Code)编码,得到EDC校验码,并将得到的EDC校验码后缀在数据扇区之后,即后缀在用户信息数据之后,最终组成记录扇区,该记录扇区包含的内容依次为:扇区号、扇区号的纠错码、第一保留字、数据扇区控制字、用户信息数据,。其中,扇区号的长度可以为4字节,扇区号的纠错码的长度可以为2字节,第一保留字的长度可以为1字节,数据扇区控制字的长度可以为1字节,EDC校验码为4字节,从而最终形成2060字节的记录扇区。
之后将记录扇区进行分行,为保证记录扇区能够组成矩阵,且保证纠错执行效率,分行后每行的用户信息数据在100~300字节,可以将记录扇区分成10行,每行为206字节;为了保证能够进行纠错,如当光盘某处产生划痕,能够根据纠错码及其他没有划痕的区域进行纠错,可以选择16个记录扇区,这样就组成了N*M的用户信息数据块,其中N=16*10=160行、M=206。
步骤三,对所述用户信息数据块的每一列进行RS列编码,得到(16,206)个列校验符号,组成列纠错码;
步骤四,将用户信息数据块和对应的列校验符号组成160+16行206列的行信息数据块,如表二所示;
表二
Figure BDA00002374713000082
Figure BDA00002374713000091
步骤五,对该行信息数据块的每一行进行EDC行编码,得到(176,2)个行校验符号,
步骤六,得到176行208列的纠错编码块,如表三所示。
表三
Figure BDA00002374713000092
步骤七、选择下一个用户信息数据块,重新选择列编码方法、L值、行编码方法和K值,重复步骤一至步骤六。
在步骤六之后、步骤七之前,可以将176行208列的纠错编码块进行交织,行交织度为2,得到176行208列的交织纠错编码块,然后继续步骤七。
纠错解码的过程是上述编码过程的逆过程,这里不再赘述。
需要说明的是,列校验主要用于应对突发错误进行纠错,对于光盘存储而言,可以用于光盘出现的划痕、手印等进行纠错;行校验主要用于随机错误纠错,对于光盘而言,可以用于光盘上出现灰尘等情况进行纠错。
较优地,列校验符号数L=10、12或16,行校验符号数K=2、4、6、8、10、16或32。
上述实施例中是以光盘存储为例进行说明的,在网络传输的实例中,通常用户信息数据由1024字节(即X1=1024)组成。之后,在用户信息数据之前依次添加扇区号(SID)、扇区号(SID)的纠错码(SECC)、第一保留字(RSV)和数据扇区控制字(SCON),对1024字节的用户信息数据进行错误检测码(EDC,Error Detection Code)编码,得到EDC校验码,并将得到的EDC校验码后缀在数据扇区之后,即后缀在用户信息数据之后,最终组成记录扇区。记录扇区中包含的内容依次为:扇区号、扇区号的纠错码、第一保留字、数据扇区控制字、用户信息数据、EDC校验码。其中,扇区号的长度可以为4字节,扇区号的纠错码的长度可以为2字节,第一保留字的长度可以为4字节,数据扇区控制字的长度可以为2字节,EDC校验码为4字节,从而最终形成1040字节的记录扇区。
之后将记录扇区进行分行,为保证记录扇区能够组成矩阵,且保证纠错执行效率,分行后每行的用户信息数据在100~300字节,在本实施例中,将记录扇区分成10行,每行为104字节;为了保证能够进行纠错,如当存在干扰,能够根据纠错码及其他没有干扰的数据进行纠错,在本实施例中选择16个记录扇区,这样组成N*M的用户信息数据块,其中N=16*10=160行、M=104。
之后,可以对形成的用户信息数据块进行行编码和列编码,其具体过程与上述光盘存储实例中的行编码和列编码过程类似,这里不再赘述。
此外,在U盘存储的实例中,通常用户信息数据由512字节组成,用户信息数据之前需要依次添加扇区号(SID)、扇区号(SID)的纠错码(SECC)、第一保留字(RSV)和数据扇区控制字(SCON);之后对512字节的用户信息数据进行错误检测码(EDC,Error Detection Code)编码,得到EDC校验码,并将得到的EDC校验码后缀在数据扇区之后,即后缀在用户信息数据之后,最终组成记录扇区,记录扇区包含的内容依次为:扇区号、扇区号的纠错码、第一保留字、数据扇区控制字、用户信息数据、EDC校验码。其中,扇区号的长度可以为4字节,扇区号的纠错码的长度可以为2字节,第一保留字的长度可以为1字节,数据扇区控制字的长度可以为1字节,EDC校验码为4字节,从而最终形成524字节的记录扇区。
之后将记录扇区进行分行,为保证记录扇区能够组成矩阵,且保证纠错执行效率,分行后每行的用户信息数据在100~300字节,在本实施例中,将记录扇区分成4行,每行为131字节;为了保证能够进行纠错,如当U盘某处产生错误,能够根据纠错码及其他没有错误的区域进行纠错,在本实施例中选择16个记录扇区,这样组成N*M的用户信息数据块,其中N=16*4=64行、M=131。
之后,可以对形成的用户信息数据块进行行编码和列编码,其具体过程与上述光盘存储实例中的行编码和列编码过程类似,这里不再赘述。
参考图3,本实施例的一种动态纠错编码装置包括:动态编码参数产生模块20、数据读取模块25、纠错编码模块(包括P个行编码器22和P个列编码器21,P为自然数),输出模块23。
其中,动态编码参数产生模块20用于根据当前应用场景动态地确定列编码方法、列校验符号数L、行编码方法、行校验符号数K,其中,L为正整数,K为非负整数。当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求,但并不限于此。行编码方法和列编码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码,但并不限于此,行编码方法和列编码方法可以相同,也可以不同。
数据读取模块25用于选择N行M列的用户信息数据块,其中包括N×M个信息符号,N和M是正整数。被选取的用户信息数据块传递至纠错编码模块中的行编码器22和列编码器21。
纠错编码模块中的列编码器21从动态编码参数产生模块20得到L值和列编码方法,以流水的方式输入大小为N行和M列的N×M个信息符号组成的用户信息数据块,对该用户信息数据块的每一列进行列编码,得到L×M个列校验符号,将用户信息数据块和对应的列校验符号组成N+L行M列的行信息数据块并输出到对应的行编码器22。
每一行编码器22分别连接至对应的列编码器21,从动态编码参数产生模块20得到K值和行编码方法,对相应的列编码器21输出的行信息数据块的每一行进行行编码,得到(N+L)×K个行校验符号,与先前的行信息数据块组合得到(N+L)行(M+K)列的纠错编码块。
输出模块23从动态编码参数产生模块20接收所述K值、L值,输出(N+L)行(M+K)列的纠错编码块、行编码方法描述符、K值、列编码方法描述符以及L值。
图4示出了另一种动态纠错编码装置,其结构与图3所示的动态纠错编码装置类似,只是还包括交织器24,此时所述P为大于1的自然数。交织器24从动态编码参数产生模块20得到行交织度I,接收各行编码器22输出的(N+L)行(M+K)列的纠错编码块进行交织,得到(N+L)行(M+K)列的交织纠错编码块。其中,交织度I的取值范围为非负整数。输出模块23还一并输出交织度I。
图3和图4所示的动态纠错编码装置中,是由列编码器21首先进行列编码,之后再由行编码器22进行行编码,本领域技术人员应当理解,在其他实施例中,还可以由行编码器22首先进行行编码,再有列编码器21进行列编码,具体而言:行编码器22采用行编码方法对用户信息数据块的每一行进行行编码,将得到的N×K个行校验符号与用户数据块组合为N行(M+K)列的列信息数据块,之后列编码器21采用列编码方法对列信息数据块的每一列进行列编码,将得到的L×(M+K)个列校验符号与列信息数据块组合为(N+L)行(M+K)列的纠错编码块。
关于动态纠错编码装置的工作过程的更多信息,请参见前述实施例中动态纠错编码方法的相关描述。
图5示出了本实施例的动态纠错解码装置的结构框图,包括:数据读取模块30、动态编码参数获取模块33、纠错解码模块(包括P个列解码器31和P个行解码器32,P为自然数)。
其中,数据读取模块30用于选择(N+L)行(M+K)列的纠错编码块,M、N、L为正整数,K为非负整数。该纠错编码块可以来自存储介质、通信信道等。
动态编码参数获取模块33用于获取纠错编码块的列解码方法、列校验符号数L、行解码方法、行校验符号数K,所述列校验符号数L和行校验符号数K是编码时根据当前应用场景动态地确定的,所述列解码方法、行解码方法分别与编码时根据当前应用场景动态确定的列编码方法、行编码方法对应。此外,动态编码参数获取模块33还可以用于获取交织度I。
解交织器34用于对纠错编码块进行解交织,解交织之后的纠错编码块传输至行解码器32、列解码器31进行行解码和列解码。
纠错解码模块中的行解码器32采用行解码方法和行校验符号数K对纠错编码块的每一行进行行解码,得到(N+L)行M列的列信息数据块,之后列解码器31采用列解码方法和列校验符号数L对列信息数据块的每一列进行列解码,得到N行M列的用户信息数据块。
或者,也可以首先进行列解码之后再进行解码,即列解码器31采用列解码方法和列校验符号数L对纠错编码块的每一列进行列解码,得到N行(M+K)列的行信息数据块,之后行解码器32采用行解码方法和行校验符号数K对行信息数据块的每一列进行行解码,得到N行M列的用户信息数据块。
关于动态纠错解码装置的工作过程的更多信息,请参见前述实施例中动态纠错解码方法的相关描述。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

Claims (24)

1.一种动态纠错编码方法,其特征在于,包括:
根据当前应用场景动态地确定列编码方法、列校验符号数L、行编码方法、行校验符号数K,其中,L为正整数,K为非负整数;
选择用户信息数据块,该用户信息数据块包括N行M列的N×M个信息符号,其中N和M为正整数;
采用所述列编码方法对所述用户信息数据块的每一列进行列编码,将得到的L×M个列校验符号与所述用户数据块组合为(N+L)行M列的行信息数据块,之后采用所述行编码方法对所述行信息数据块的每一行进行行编码,将得到的(N+L)×K个行校验符号与所述行信息数据块组合为(N+L)行(M+K)列的纠错编码块;或者,采用所述行编码方法对所述用户信息数据块的每一行进行行编码,将得到的N×K个行校验符号与所述用户数据块组合为N行(M+K)列的列信息数据块,之后采用所述列编码方法对所述列信息数据块的每一列进行列编码,将得到的L×(M+K)个列校验符号与所述列信息数据块组合为(N+L)行(M+K)列的纠错编码块。
2.根据权利要求1所述的动态纠错编码方法,其特征在于,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
3.根据权利要求1所述的动态纠错编码方法,其特征在于,还包括:对所述(N+L)行(M+K)列的纠错编码块进行交织,得到(N+L)行(M+K)列的交织纠错编码块,交织度I是根据当前应用场景动态地确定的。
4.根据权利要求1所述的动态纠错编码方法,其特征在于,所述行编码方法和列编码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码。
5.根据权利要求1所述的动态纠错编码方法,其特征在于,L=10、12或16;K=2、4、6、8、10、16或32。
6.根据权利要求1所述的动态纠错编码方法,其特征在于,所述用户信息数据块为用于光盘存储的数据,其中N=160,M=206。
7.根据权利要求1所述的动态纠错编码方法,其特征在于,所述用户信息数据块为用于网络传输的数据,其中N=160,M=104。
8.根据权利要求1所述的动态纠错编码方法,其特征在于,所述用户信息数据为用于U盘存储的数据,其中N=64,M=131。
9.一种动态纠错解码方法,其特征在于,包括:
选择(N+L)行(M+K)列的纠错编码块,M、N、L为正整数,K为非负整数;
获取所述纠错编码块的列解码方法、列校验符号数L、行解码方法、行校验符号数K,所述列校验符号数L和行校验符号数K是编码时根据当前应用场景动态地确定的,所述列解码方法、行解码方法分别与编码时根据当前应用场景动态确定的列编码方法、行编码方法对应;
采用所述行解码方法和行校验符号数K对所述纠错编码块的每一行进行行解码,得到(N+L)行M列的列信息数据块,之后采用所述列解码方法和列校验符号数L对所述列信息数据块的每一列进行列解码,得到N行M列的用户信息数据块;或者,采用所述列解码方法和列校验符号数L对所述纠错编码块的每一列进行列解码,得到N行(M+K)列的行信息数据块,之后采用所述行解码方法和行校验符号数K对所述行信息数据块的每一行进行行解码,得到N行M列的用户信息数据块。
10.根据权利要求9所述的动态纠错解码方法,其特征在于,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
11.根据权利要求9所述的动态纠错解码方法,其特征在于,在进行行解码和列解码之前还包括:对所述纠错编码块进行解交织。
12.根据权利要求9所述的动态纠错解码方法,其特征在于,所述行解码方法和列解码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码的解码方法。
13.一种动态纠错编码装置,其特征在于,包括:
动态编码参数产生模块,用于根据当前应用场景动态地确定列编码方法、列校验符号数L、行编码方法、行校验符号数K,其中,L为正整数,K为非负整数;
数据读取模块,用于选择用户信息数据块,该用户信息数据块包括N行M列的N×M个信息符号,其中N和M为正整数;
纠错编码模块,包括行编码器和列编码器,其中,所述列编码器采用所述列编码方法对所述用户信息数据块的每一列进行列编码,将得到的L×M个列校验符号与所述用户数据块组合为(N+L)行M列的行信息数据块,之后所述行编码器采用所述行编码方法对所述行信息数据块的每一行进行行编码,将得到的(N+L)×K个行校验符号与所述行信息数据块组合为(N+L)行(M+K)列的纠错编码块;或者,所述行编码器采用所述行编码方法对所述用户信息数据块的每一行进行行编码,将得到的N×K个行校验符号与所述用户数据块组合为N行(M+K)列的列信息数据块,之后所述列编码器采用所述列编码方法对所述列信息数据块的每一列进行列编码,将得到的L×(M+K)个列校验符号与所述列信息数据块组合为(N+L)行(M+K)列的纠错编码块。
14.根据权利要求13所述的动态纠错编码装置,其特征在于,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
15.根据权利要求13所述的动态纠错编码装置,其特征在于,还包括:
交织器,对所述(N+L)行(M+K)列的纠错编码块进行交织,得到(N+L)行(M+K)列的交织纠错编码块。
16.根据权利要求13所述的动态纠错编码装置,其特征在于,所述行编码方法和列编码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码。
17.根据权利要求13所述的动态纠错编码装置,其特征在于,L=10、12或16;K=2、4、6、8、10、16或32。
18.根据权利要求13所述的动态纠错编码装置,其特征在于,所述用户信息数据块为用于光盘存储的数据,其中N=160,M=206。
19.根据权利要求13所述的动态纠错编码装置,其特征在于,所述用户信息数据块为用于网络传输的数据,其中N=160,M=104。
20.根据权利要求13所述的动态纠错编码装置,其特征在于,所述用户信息数据为用于U盘存储的数据,其中N=64,M=131。
21.一种动态纠错解码装置,其特征在于,包括:
数据读取模块,用于选择(N+L)行(M+K)列的纠错编码块,M、N、L为正整数,K为非负整数;
动态编码参数获取模块,用于获取所述纠错编码块的列解码方法、列校验符号数L、行解码方法、行校验符号数K,所述列校验符号数L和行校验符号数K是编码时根据当前应用场景动态地确定的,所述列解码方法、行解码方法分别与编码时根据当前应用场景动态确定的列编码方法、行编码方法对应;
纠错解码模块,包括行解码器和列解码器,其中,所述行解码器采用所述行解码方法和行校验符号数K对所述纠错编码块的每一行进行行解码,得到(N+L)行M列的列信息数据块,之后所述列解码器采用所述列解码方法和列校验符号数L对所述列信息数据块的每一列进行列解码,得到N行M列的用户信息数据块;或者,所述列解码器采用所述列解码方法和列校验符号数L对所述纠错编码块的每一列进行列解码,得到N行(M+K)列的行信息数据块,之后所述行解码器采用所述行解码方法和行校验符号数K对所述行信息数据块的每一列进行行解码,得到N行M列的用户信息数据块。
22.根据权利要求21所述的动态纠错解码装置,其特征在于,所述当前应用场景包括以下一个或多个的组合:媒介的当前使用环境、使用时间、制造材料及制造工艺,传输信道的介质及环境,数据可靠性的要求。
23.根据权利要求21所述的动态纠错解码装置,其特征在于,还包括:
解交织器,对所述纠错编码块进行解交织,并将解交织后的纠错编码块传输至所述纠错解码模块。
24.根据权利要求21所述的动态纠错解码装置,其特征在于,所述行解码方法和列解码方法选自:RS码、卷积码、BCH码、EDC码、校验和码、Turbo码以及LDPC码的解码方法。
CN201210448069.1A 2012-11-08 2012-11-08 动态纠错编、解码方法及装置 Active CN102904585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210448069.1A CN102904585B (zh) 2012-11-08 2012-11-08 动态纠错编、解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210448069.1A CN102904585B (zh) 2012-11-08 2012-11-08 动态纠错编、解码方法及装置

Publications (2)

Publication Number Publication Date
CN102904585A true CN102904585A (zh) 2013-01-30
CN102904585B CN102904585B (zh) 2015-10-28

Family

ID=47576654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210448069.1A Active CN102904585B (zh) 2012-11-08 2012-11-08 动态纠错编、解码方法及装置

Country Status (1)

Country Link
CN (1) CN102904585B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103916139A (zh) * 2014-04-22 2014-07-09 淮安固泰存储科技有限公司 一种基于里德所罗门码的加强型编码方法、解码方法及解码器
WO2017088507A1 (zh) * 2015-11-26 2017-06-01 华为技术有限公司 一种更新错误检测和纠正ecc码的方法及装置
CN107402829A (zh) * 2016-04-05 2017-11-28 阿里巴巴集团控股有限公司 用于检测和纠正位错误的设备、方法和计算机程序产品
CN108281160A (zh) * 2018-01-12 2018-07-13 南阳师范学院 Dvd纠错码的设计方法
CN113810062A (zh) * 2021-11-17 2021-12-17 南京风兴科技有限公司 一种面向下一代以太网的gel编码方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141787A (en) * 1997-05-19 2000-10-31 Sanyo Electric Co., Ltd. Digital modulation and demodulation
CN1344439A (zh) * 1999-11-24 2002-04-10 皇家菲利浦电子有限公司 加速的Reed-Solomon纠错

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141787A (en) * 1997-05-19 2000-10-31 Sanyo Electric Co., Ltd. Digital modulation and demodulation
CN1344439A (zh) * 1999-11-24 2002-04-10 皇家菲利浦电子有限公司 加速的Reed-Solomon纠错

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103916139A (zh) * 2014-04-22 2014-07-09 淮安固泰存储科技有限公司 一种基于里德所罗门码的加强型编码方法、解码方法及解码器
CN103916139B (zh) * 2014-04-22 2016-12-21 淮安固泰存储科技有限公司 一种基于里德所罗门码的加强型编码方法、解码方法及解码器
WO2017088507A1 (zh) * 2015-11-26 2017-06-01 华为技术有限公司 一种更新错误检测和纠正ecc码的方法及装置
CN107402829A (zh) * 2016-04-05 2017-11-28 阿里巴巴集团控股有限公司 用于检测和纠正位错误的设备、方法和计算机程序产品
CN108281160A (zh) * 2018-01-12 2018-07-13 南阳师范学院 Dvd纠错码的设计方法
CN113810062A (zh) * 2021-11-17 2021-12-17 南京风兴科技有限公司 一种面向下一代以太网的gel编码方法及装置
CN113810062B (zh) * 2021-11-17 2022-04-12 南京风兴科技有限公司 一种面向下一代以太网的gel编码方法及装置

Also Published As

Publication number Publication date
CN102904585B (zh) 2015-10-28

Similar Documents

Publication Publication Date Title
US8892809B2 (en) Data compression and encoding in a memory system
CN102904585B (zh) 动态纠错编、解码方法及装置
US8539322B2 (en) Data processing apparatus and method, and program
CN102823141A (zh) 用于固态存储器件的两级bch码
KR102627387B1 (ko) 송신 장치 및 그의 쇼트닝 방법
JP6657634B2 (ja) 符号化装置、メモリシステム、通信システムおよび符号化方法
CN100539445C (zh) 将纠错附加层嵌入纠错码的方法和装置
JP2002509331A5 (zh)
US8365053B2 (en) Encoding and decoding data using store and exclusive or operations
KR101120780B1 (ko) 기록 쓰기 경로를 위한 리버스 연결 인코딩 시스템과 매체 상에 기록하기 위한 데이터를 인코딩하는 방법과 컴퓨터 판독가능한 기록 매체
JP2005522138A5 (zh)
US9281844B2 (en) Configurable and low power encoder for cyclic error correction codes
US20150169397A1 (en) Extension of product codes with applications to tape and parallel channels
CN105376008A (zh) Ldpc码字的交织映射方法及解交织解映射方法
CN102981924B (zh) 适用于动态编码的数据存储方法及装置
CN105450333A (zh) Ldpc码字的交织映射方法及解交织解映射方法
US6718505B1 (en) Method and apparatus for error correction in a process of decoding cross-interleaved Reed-Solomon code (CIRC)
US7159165B2 (en) Optical recording medium, data recording or reproducing apparatus and data recording or reproducing method used by the data recording or reproducing apparatus
CN1126005A (zh) 基于半循环码的误差可校正数据传输方法及其设备
CN104935397A (zh) Ldpc码字的交织映射方法及解交织解映射方法
EP1111799B1 (en) Error correction with a cross-interleaved Reed-Solomon code, particularly for CD-ROM
CN105099615A (zh) Ldpc码字的交织映射方法及解交织解映射方法
KR102023120B1 (ko) 연접 bch 부호화 방법, 부호화 장치 및 신뢰성 기반 복호화 방법
KR102202385B1 (ko) 송신 장치 및 그의 신호 처리 방법
JP6235911B2 (ja) インターリーブ装置及びデインターリーブ装置、並びにインターリーブ方法

Legal Events

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