CN1885725B - 纠错编码方法 - Google Patents
纠错编码方法 Download PDFInfo
- Publication number
- CN1885725B CN1885725B CN2006100985969A CN200610098596A CN1885725B CN 1885725 B CN1885725 B CN 1885725B CN 2006100985969 A CN2006100985969 A CN 2006100985969A CN 200610098596 A CN200610098596 A CN 200610098596A CN 1885725 B CN1885725 B CN 1885725B
- Authority
- CN
- China
- Prior art keywords
- code word
- error correction
- error
- data
- piecemeal
- 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.)
- Active
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种纠错编码方法,包括:步骤1,根据数据码字的数量及纠错等级计算纠错码字的数量;步骤2,判断纠错码字的数量是否大于32,是,执行步骤3;否则,执行步骤4;步骤3,根据预先设定的分块表对所述数据码字及纠错码字进行分块;步骤4,建立数据码字的多项式及纠错码字的生成多项式,并对该数据码字的多项式及纠错码字的生成多项式进行代数运算,获得纠错码字;步骤5,根据数据码字及相应的纠错码字进行纠错编码。采用本发明,可以大大减小纠错译码时的计算量,降低纠错算法的复杂度,节省纠错译码的时间,提高收信端的工作效率,提高其工作性能。
Description
技术领域
本发明涉及一种纠错编码方法,尤其是一种降低纠错算法复杂性的纠错编码方法。
背景技术
条码是一组规则排列的条、空、及其对应字符组成的标记,用以表达一定信息,由于其携带方便、容量大等特点,在众多领域得到了广泛应用。例如:商场将商品的编号、价格、厂商等信息制作成二维条码附着在商品上,以便于结帐、查询等。一维条码、二维条码在传输的过程中,不可避免地会出现磨损和镲伤等情况,这样就会导致条码信息的错误,从而降低条码识读的成功率或者导致条码无法被正确地识读。为了能够检测传输、储存的条码是否出现错误,在对原始数据(也称信源编码或者数据码字)编码时,向其中增加一些用于检测是否出现误码的检测码字,若还希望进一步纠正误码,则还需要在编码时另外增加一些用于纠错的纠错码字,将检测码字与纠错码字统称为监督码元,并建立数字码字与监督码元之间的映射关系,在数据码字出现误码时,根据数字码字与监督码元之间的映射关系来检测是否出现误码或者实现纠错发信端增加监督码元并建立映射关系的过程称为误码控制编码或者纠错编码;收信端利用监督码元根据映射关系检测数据码字在传输过程中是否出现错误、以及在出现错误的情况下对接收到的数据码字进行纠错的过程称为纠错译码或者纠错解码。
Reed-Solomon纠错算法(简称RS纠错算法)是1960年由Reed-Solomon共同提出的,它是已知的代数编码纠错方式中纠错能力最强的数编码方式,为具有纠错功能的条码提供了不同的纠错等级,是一种本领域技术人员熟知的标准算法,该算法可以通过软件或除法电路实现。利用RS算法计算纠错码字的步骤如下:步骤1,建立数据码字多项式:C(x)=Cn-1xn-1+Cn-2xn-2+...+C1x+C0,其中,系数Cn-1、Cn-2、......、C0为数据码字,最高次项的系数Cn-1为第一个数据码字,依次类推,最低次项的系数为最后一个码字,n为数据码字的个数;步骤2,建立纠错码字的生成多项式:g(x)=xt+gt-1xt-1+...+g1x+g0,其中,t为纠错码字的个数;步骤3,对数据码字多项式C(x)与纠错码字的生成多项式g(x)进行代数运算求得纠错码字。
利用RS纠错算法纠错译码时,计算的复杂性随着纠错码字数量的增加而增大,同时,当纠错码字的个数大于32时,利用RS纠错算法纠错译码所耗用的时间将呈指数级递增。实际应用中,制作条码的数据码字的信息日益丰富,其数量也日益增加,相应的,纠错码字的数量也逐渐增加,其值经常会出现大于32的情况,因此,在收信端纠错译码的算法非常复杂,且计算需要的时间长,影响了收信端的工作效率,降低了其工作性能。
发明内容
本发明所要解决的技术问题在于,针对现有技术在纠错编码的过程中,当纠错码字的数量大于32时,纠错译码的算法复杂且耗用时间长的缺陷与不足,提供一种纠错编码方法,以克服上述缺陷与不足。
为解决上述技术问题,本发明提供的一种纠错编码方法,包括以下步骤:
步骤1,根据数据码字的数量及纠错等级计算纠错码字的数量;
步骤2,判断纠错码字的数量是否大于32,是,执行步骤3;否则,执行步骤4;
步骤3,根据预先设定的分块表对所述数据码字及纠错码字进行分块;
步骤4,建立数据码字的多项式及纠错码字的生成多项式,并对该数据码字的多项式及纠错码字的生成多项式进行代数运算,获得纠错码字;
步骤5、根据数据码字及相应的纠错码字进行纠错编码。
上述技术方案中,所述步骤1具体为:选择纠错等级,以及在该纠错等级下有效信息容量不小于所述数据码字的数量的最小汉信码版本;由所述最小汉信码版本的总容量与所述有效信息容量计算所述纠错码字的数量。
所述步骤3中,对所述数据码字及所述纠错码字进行分块具体是:查询预先设定的汉信码的分块表,获取该分块表中与所述最小汉信码版本及所述纠错等级对应的分块参数,按照该分块参数对所述数据码字及所述纠错码字进行分块。
所述步骤4中,对数据码字的多项式及纠错码字的生成多项式进行代数运算具体为:采用Reed-Solomon纠错算法对数据码字的多项式及纠错码字的生成多项式进行代数运算。
基于上述技术方案,本发明具有以下有益的技术效果:
纠错编码时,在纠错码字的数量大于32的情况下,按照预先设定的分块表对数据码字及其纠错码字进行分块,使各分块中纠错码字的数量小于32,并分别针对各分块建立数据码字的多项式及其相应的纠错码字的生成多项式,据此计算出纠错码字并实现纠错编码,从而减小纠错译码的计算量,降低纠错译码算法的复杂度,节省纠错译码的时间,提高收信端的工作效率,提高其工作性能。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明实施例的流程图。
具体实施方式
本发明是一种解决在对数据码字进行纠错译码时,当纠错码字的数量大于32时存在的纠错算法复杂性高、计算时间长问题的方法,其核心思想是:在纠错编码时,对数据码字及其相应的纠错码字进行分块,使纠错码字的数量小于或者等于32,针对分块后的各组数据码字及纠错码字分别进行纠错编码。
一维条码作为一种廉价、简单、快捷、准确的数字信息传递方式,仅仅通过在水平方向上排列的条、空表达信息,在垂直方向不表达信息,因此,携带、存储的信息量小。相比之下,二维条码在垂直方向也能表达信息,除了保持了一维条码所具有的印刷简便,制造成本低,具有优秀的抗磁场、抗辐射能力等优点以外,其存储的信息量比一维条码大大增加,并且在采用了Reed一Solomon纠错算法之后,其抗磨损和擦伤的能力大大提高,在许多领域得到了广泛的应用,目前常见的二维条码主要有PDF417、QR、Datastrip和Data matrix等。同时,在我国,汉信码是第一个形成国家标准的自主研发的二维条码,其码图为正方形,由设置在一个矩形区域四角处的寻像图形、分布于矩形区域内部的折线形校正图形等功能图形以及分布于功能图形间隔的数据码字、纠错码字构成,能够对数字、字符、国标18030汉字集、二进制信息等进行编码,提供4级纠错能力,最大可纠30%的数据区错误。汉信码能够实现对汉字的最高效编码,且具有最高的抗功能图形破损能力,是目前唯一能够容忍两个寻像图形毁损的二维条码。因此,本发明中,以对将汉信码编码为二维条码时的纠错编码为例,来说明本发明的纠错编码方法。
图1所示为本发明的纠错编码方法实施例的流程图,假设以二进制表示的待编码的数据为:110000100001001101111000100111110000110001011111010100100111110001111001110000110001000110101110000101011001100011110011100011110010100000001110010100000111010011001010100100101111111001011101000100111100111010010111,该数据的长度是216位,拟采用GF(28)的RS纠错编码方法进行纠错编码,将该信息按照8位归组,转化为27个以十进制表示的0~255之间表示为整数的数据码字:194,19,120,159,12,95,82,124,121,195,17,174,21,152,243,143,40,14,80,116,202,146,254,93,19,206,151。对该数据码字进行纠错编码方法包括以下步骤:
步骤101,根据实际需要选择纠错等级L,根据纠错等级L与纠错率p之间的关系,选择有效信息容量不小于上述数据码字的数量的汉信码版本。汉信码按照其信息容量的大小分为1、2、3、......、84共84个版本,版本越小,其信息容量越小,版本越大,信息容量也越大。由于二维条码图片容量的限制,为了充分利用二维码图片的容量,最好选择可容纳该信息的最小汉信码版本。如下表1所示为纠错等级L与纠错率p之间的对应关系表。
表1
纠错等级(L) | 1 | 2 | 3 | 4 |
纠错率(p) | 8% | 15% | 23% | 30% |
假设选择纠错等级L为4,即纠错率p为30%,计算在该纠错率下,第5版本汉信码的有效信息容量K。因为第5版本的二维码图片可容纳555位二进制码,采用GF(28)的RS纠错码时,其总的信息容量N为555/8=69个码字,在纠错等级L为4的情况下,可容纳的有效信息容量K为N*(1-2*p)=69×(1-60%)=27,由于该有效信息容量刚好等于待编码的数据码字的数量,因此,选择第5版本来对数据码字进行编码。
步骤102,计算在纠错等级L为4的情况下,第5版本汉信码的数据码字的数量。由于第5版本汉信码的总的信息容量N为69,有效信息容量K为27,因此,纠错码字的数量t=N-K=69-27=42。
步骤103,判断数据码字的数量是否大于32,是,执行步骤104;否则,执行步骤105。
步骤104,查询预先定制的汉信码的分块表,获取该分块表中与选择的汉信码版本及纠错等级L对应的分块参数(N,K,t),按照该分块参数对待编码的数据码字及纠错码字进行分块。如下表2所示为本实施例所用的部分汉信码的分块表。表中的参数包括汉信码的版本号、纠错等级、该版本号寄纠错等级下的数据码字以应分成的块数以及该块数的总的信息容量N、有效信息容量K与纠错码字的数量t。由于数据码字的数量为42,大于32,因此,根据分块表,将上述数据码字及分块码字分为2块:RS(34,14,10)和RS(35,13,11)。
表2
版本号 | 纠错等级 | 块数 | N | K | t | 块数 | N | K | t |
5 | 4 | 1 | 34 | 14 | 10 | 1 | 35 | 13 | 11 |
步骤105,针对各分块,若未分块,则针对原始的数据码字及纠错码字,建立数据码字的多项式C(x)及纠错码字的生成多项式g(x),并采用RS纠错算法对该数据码字的多项式C(x)及纠错码字的生成多项式g(x)进行代数运算,获得纠错码字。
针对分块RS(34,14,10),建立数据码字的多项式C(x1)=C13x113+C12x112+...+C1x1+C0,其中,系数C13、C12、......、C0分别为第一个、第二个、......第十四个数据码字;建立纠错码字的生成多项式g(x1)=x120+g19x119+...+g1x1+g0,其中,1、g19、......、g0分别为第一个、第二个、......第二十个纠错码字。采用RS纠错算法对C(x1)及g(x1)进行代数运算,得到以十进制表示的纠错码字:229,98,30,205,121,178,57,40,7,224,221,117,50,174,214,152,150,142,38,40。
针对分块RS(35,13,11),建立数据码字多项式C(x2)=C12x212+C11x211+...+C1x2+C0,其中,系数C12、C11、......、C0分别为第一个、第二个、......第十三个数据码字;建立纠错码字的生成多项式g(x2)=x222+g21x221+...+g1x2+g0,其中,1、g22、......、g0分别为第一个、第二个、......第二十二个数据码字。采用RS纠错算法对C(x2)及g(x2)进行代数运算,得到以十进制表示的纠错码字:85,202,84,48,10,212,69,255,31,0,251,110,167,29,118,178,1,107,38,173,55,180。将数据码字及纠错码字分为两块后,每一块的纠错码字的数量均小于32,并分别针对分块RS(34,14,10)和RS(35,13,11)建立数据码字的多项式及其相应的纠错码字的生成多项式,据此计算出纠错码字并实现纠错编码,与不分块时相比,可以大大减小纠错译码时的计算量,降低纠错译码算法的复杂度,节省纠错译码的时间,提高了收信端的工作效率,提高其工作性能。
步骤106,对数据码字及相应的纠错码字进行纠错编码。将纠错码字229,98,30,205,121,178,57,40,7,224,221,117,50,174,214,152,150,142,38,40写在相应的数据码字194,19,120,159,12,95,82,124,121,195,17,174,21,152后,将纠错码字85,202,84,48,10,212,69,255,31,0,251,110 ,167,29,118,178,1,107,38,173,55,180写在相应的数据码字243,143,40,14,80,116,202,146,254,93,19,206,151后,并将第一分块RS(34,14,10)与第二分块RS(35,13,11)顺序合并,得到编码后的信息:194,19,120,159,12,95,82,124,121,195,17,174,21,152,229,98,30,205,121,178,57,40,7,224,221,117,50,174,214,152,150,142,38,40,243,143,40,14,80,116,202,146,254,93,19,206,151,85,202,84,48,10,212,69,255,31,0,251,110,167,29,118,178,1,107,38,173,55,180,并将其转换为二进制形式:
110000100001001101111000100111110000110001011111010100100111110001111001110000110001000110101110000101011001100011100101011000100001111011001101011110011011001000111001001010000000011111100000110111010111010100110010101011101101011010011000100101101000111000100110001010001111001110001111001010000000111001010000011101001100101010010010111111100101110100010011110011101001011101010101110010100101010000110000000010101101010001000101111111110001111100000000111110110110111010100111000111010111011010110010000000010110101100100110101011010011011110110100。
为了使编码后得到的二维条码在以后可能发生的随机错误尽量分散,使得RS纠错效果最优,在步骤104中分块时,在分块表中有多种可供选择的分块方式时,尽可能使分块的信息量均匀,即将数据码字及纠错码字分为|N1-N2|+|K1-K2|+|t1-t2|尽可能小的块。
最后所应说明的是:以上实施例仅用以说明本发明的技术方案,而非对本发明作限制性理解。尽管参照上述较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这种修改或者等同替换并不脱离本发明技术方案的精神和范围。
Claims (4)
1. 一种纠错编码方法,其中,包括以下步骤:
步骤1,根据数据码字的数量及纠错等级计算纠错码字的数量;
步骤2,判断纠错码字的数量是否大于32,是,执行步骤3;否则,执行步骤4;
步骤3,根据预先设定的分块表对所述数据码字及纠错码字进行分块;
步骤4,建立数据码字的多项式及纠错码字的生成多项式,并对该数据码字的多项式及纠错码字的生成多项式进行代数运算,获得纠错码字;
步骤5、根据数据码字及相应的纠错码字进行纠错编码。
2. 根据权利要求1所述的方法,其中,所述步骤1具体为:
选择纠错等级,以及在该纠错等级下有效信息容量不小于所述数据码字的数量的最小汉信码版本;
由所述最小汉信码版本的总容量与所述有效信息容量计算所述纠错码字的数量。
3. 根据权利要求2所述的方法,其中,所述步骤3中,对所述数据码字及所述纠错码字进行分块具体是:查询预先设定的汉信码的分块表,获取该分块表中与所述最小汉信码版本及所述纠错等级对应的分块参数,按照该分块参数对所述数据码字及所述纠错码字进行分块。
4. 根据权利要求1-3任意一项所述的方法,其中,所述步骤4中,对数据码字的多项式及纠错码字的生成多项式进行代数运算具体为:采用Reed-Solomon算法对数据码字的多项式及纠错码字的生成多项式进行代数运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100985969A CN1885725B (zh) | 2006-07-12 | 2006-07-12 | 纠错编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100985969A CN1885725B (zh) | 2006-07-12 | 2006-07-12 | 纠错编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1885725A CN1885725A (zh) | 2006-12-27 |
CN1885725B true CN1885725B (zh) | 2011-04-06 |
Family
ID=37583728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100985969A Active CN1885725B (zh) | 2006-07-12 | 2006-07-12 | 纠错编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1885725B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102568608B (zh) * | 2012-02-24 | 2014-08-27 | 南京大学 | 一种增强qr码纠错能力的改进方法 |
CN104899612A (zh) * | 2015-06-26 | 2015-09-09 | 信码互通(北京)科技有限公司 | 具有纠错功能的字符编码方法、字符解码方法及其产品 |
CN106127276B (zh) * | 2016-06-27 | 2018-12-21 | 福建联迪商用设备有限公司 | 一种量化污损QRCode的方法及系统 |
CN117350317B (zh) * | 2023-12-05 | 2024-03-26 | 北京紫光青藤微系统有限公司 | 用于条码图像的译码方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001011610A1 (en) * | 1999-08-06 | 2001-02-15 | Motorola Inc. | Factorial packing method and apparatus for information coding |
JP2002314512A (ja) * | 2001-04-11 | 2002-10-25 | Telecommunication Advancement Organization Of Japan | 送信装置、受信装置及びプログラム |
CN1514409A (zh) * | 2003-07-28 | 2004-07-21 | 西安电子科技大学 | 基于图像目标区域的小波域数字水印方法 |
-
2006
- 2006-07-12 CN CN2006100985969A patent/CN1885725B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001011610A1 (en) * | 1999-08-06 | 2001-02-15 | Motorola Inc. | Factorial packing method and apparatus for information coding |
JP2002314512A (ja) * | 2001-04-11 | 2002-10-25 | Telecommunication Advancement Organization Of Japan | 送信装置、受信装置及びプログラム |
CN1514409A (zh) * | 2003-07-28 | 2004-07-21 | 西安电子科技大学 | 基于图像目标区域的小波域数字水印方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1885725A (zh) | 2006-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102592160B (zh) | 一种面向短信的字符二维码编码方法和解码方法 | |
CN104143109B (zh) | 一种二维码的编码和解码方法及其印刷物 | |
CN104899630A (zh) | 彩色qr码的编/解码方法 | |
CN103400174B (zh) | 一种二维码的编码方法、解码方法及系统 | |
CN101840366B (zh) | 环链式n+1位奇偶校验码的存储方法 | |
TW215136B (zh) | ||
CN1885725B (zh) | 纠错编码方法 | |
CN102934171A (zh) | 具有非易失性存储器的多级系统中的高级逐位操作及设备 | |
CN103392172A (zh) | 纠正存储阵列中的擦除 | |
CN102823141A (zh) | 用于固态存储器件的两级bch码 | |
CA2465332A1 (en) | Soft input decoding for linear codes | |
US20050257115A1 (en) | Decoding for algebraic geometric code associated with a fiber product | |
CN101515335A (zh) | 具有高压缩比汉字编码能力的彩色二维条码及其编码、解码方法 | |
CN100428176C (zh) | 根据(18,9)dec-ted码从数据字生成码字、对其解码的方法和装置 | |
CN102568608B (zh) | 一种增强qr码纠错能力的改进方法 | |
CN101288232B (zh) | 对数据进行编码和解码的方法以及设备 | |
CN102543209A (zh) | 多通道闪存控制器的纠错装置、方法及多通道闪存控制器 | |
CN102484483A (zh) | 设定迭代译码的迭代次数的方法、迭代译码装置及方法 | |
CN101310447B (zh) | 用于mpe-fec帧解码的存储效率擦除信息表 | |
CN101779379B (zh) | 使用通用级联码(gcc)进行编码和解码 | |
JP2007243953A (ja) | エラー補正コードストライピング | |
CN102077470B (zh) | 采用线性分组码的编码方法、装置及线性分组码生成方法、装置 | |
CN101303742B (zh) | 微小型汉信码及其符号的生成方法 | |
CN1274438A (zh) | 用于发送键字符的方法、键盘、和系统 | |
EP1499026A1 (en) | Error correction decoding method and apparatus |
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 |