CN105811999A - 基于改进的kv算法的矩阵式二维码rs译码纠错方法 - Google Patents

基于改进的kv算法的矩阵式二维码rs译码纠错方法 Download PDF

Info

Publication number
CN105811999A
CN105811999A CN201610112681.XA CN201610112681A CN105811999A CN 105811999 A CN105811999 A CN 105811999A CN 201610112681 A CN201610112681 A CN 201610112681A CN 105811999 A CN105811999 A CN 105811999A
Authority
CN
China
Prior art keywords
polynomial
code
algorithm
matrix
severe
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610112681.XA
Other languages
English (en)
Inventor
谭洪舟
杨崇灵
陈荣军
刘颜
李展强
嵇志辉
谢舜道
朱雄泳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SYSU CMU Shunde International Joint Research Institute
National Sun Yat Sen University
Original Assignee
SYSU CMU Shunde International Joint Research Institute
National Sun Yat Sen University
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 SYSU CMU Shunde International Joint Research Institute, National Sun Yat Sen University filed Critical SYSU CMU Shunde International Joint Research Institute
Priority to CN201610112681.XA priority Critical patent/CN105811999A/zh
Publication of CN105811999A publication Critical patent/CN105811999A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明提出一种基于改进的KV算法的矩阵式二维码RS译码纠错方法,改进的KV算法可以降低插值的复杂度,因此可以提高算法的效率,同时纠错方法对二维码新的生成方案进行了研究,因此可以利用新的生成方案生成二维码,用KV算法对二维码各个版本的纠错等级所对应的RS码字进行纠错译码,使二维码在出现脱落、污点、穿孔以及局部破损等情况时,能更正好地还原原始信息。

Description

基于改进的KV算法的矩阵式二维码RS译码纠错方法
技术领域
本发明涉及二维码领域,更具体地,涉及一种二维码的生成方法以及基于改进的KV算法的矩阵式二维码RS译码纠错方法
背景技术
二维码具有信息密度高、纠错能力强、保密度高、能够表示各种信息、成本低、互动性强、体验性好等特点,它非常适用于自动识别与数据采集,能够更好地与智能手机等移动终端有机结合。根据二维码的编码原理、结构形状的差异,可将二维码分为行排式二维码和矩阵式二维码。其中矩阵式二维码比行排式二维码的信息密度高得多,也是目前应用领域比较广泛的二维码,代表性的有DataMatrix,MaxiCode,CodeOne,QRCode等。二维码的高纠错能力重要原因是其自身携带纠错码,可以使二维码在出现脱落、污点、穿孔以及局部破损等情况时,能更正确地还、更好地还原原始信息。目前常用的矩阵式二维码中使用的是RS系统码,因此所涉及的译码算法是RS纠错译码算法。
发明内容
本发明提出一种二维码的生成方法,是用RS码的频域编码生成二维码的纠错码。本发明还提出了一种基于改进的KV算法的矩阵式二维码RS译码纠错方法。改进的KV算法可以降低插值的复杂度,因此可以提高算法的效率,且该算法纠错能力强,实现了更好的译码增益,从而提高二维码的纠错能力,使二维码在出现脱落、污点、穿孔以及局部破损等情况时,能更好地还原原始信息,扩展了二维码的使用范围。
为实现以上发明目的,采用的技术方案是:
一种基于改进的KV算法的矩阵式二维码RS译码纠错方法,其中改进的KV算法包括重度指配算法,Kotter插值算法和Roth-Ruckenstein因式分解算法三部分,所述纠错方法包括以下步骤:
S1.对二维码图像进行去掩膜处理,获得去掩膜后的RS(n,k)码;
S2.对去掩膜后的RS(n,k)码利用重度指配算法求取重度矩阵M,矩阵M中元素mi,j表示插值点(xji)的插值重度值;
S3.根据S2步骤计算得到的重度矩阵M,对于每个插值点(xji),基于(1,k-1)-加权字典反序表在每个插值点至少插值mi,j次来构建一个二元多项式,i=0,1,...,q-1;j=0,1,...,n-1,n是RS(n,k)中的n,表示RS码码字个数,q是有限域元素个数;
S4.利用改进的Kotter插值算法求取最小多项式,具体过程如下:
S41.首先通过公式初始化一组二元多项式,其中为第ik次迭代初始化的第j个二元多项式,lm为该组二元多项式的个数,为初始化后的二元多项式组成的集合,y表示二元多项式的自变量;ik=0、1、…、C;
S42.通过公式消去集合内首阶大于C的二元多项式,其中 C = 1 2 Σ i = 0 q - 1 Σ j = 0 n - 1 m i , j ( m i , j + 1 ) ;
S43.通过公式对集合中的各个二元多项式的Hasse混合偏导数进行计算,然后判断集合中所有二元多项式的Hasse混合偏导数是否都等于0,若都等于0,则进行步骤S46,若不全等于0,则进行步骤S44;
S44.求取该组集合各二元多项式中的最小多项式,如下式所示:
f = m i n j ∈ J i k g i k , j
j * = arg m i n j ∈ J i k g i k , j
其中f为该组二元多项式中的最小多项式,j*为最小多项式对应的序号;
S45.对该组集合各二元多项式中的最小多项式进行变换修改,公式如下:
g i k + 1 , j * = [ x f , f ] D i k = Δ j * ( x - x i ) f , j = j * ,
x表示二元多项式的自变量,xi表示第i个插值点的第一个坐标值;
其余的二元多项式也进行变换修改,公式如下:
g i k + 1 , j = [ g i k , j , f ] D i k = Δ j * g i k , j - Δ j f , j ≠ j * ;
S46.令ik=ik+1,选取另一组二元多项式重复步骤S41~S45的过程进行该组最小多项式的求取;
S47.若ik=C则停止迭代,此时各组二元多项式的最小多项式gC,j组成集合GC,通过公式Q(x,y)=min{gC,j|gC,j∈GC}对C组二元多项式中的最小多项式Q(x,y)进行求解;
S5.在求得Q(x,y)之后,利用Roth-Ruckenstein因式分解算法对Q(x,y)进行分解获得RS码频域编码对应的信息多项式m'(x);
S6.对信息多项式m'(x)采用频域编码方式进行n位编码,即可获得纠正的RS(n,k)码。
优选地,步骤S2中,利用重度指配算法求取重度矩阵M的过程具体如下:
通过公式:
计算后验概率,其中Pr表示概率函数,ρ∈GF(q)表示有限域GF(q)中元素的取值,p(.|ρ)表示条件概率密度函数,v=ρi∈GF(q)=(ρ01,...,ρq-1)为发送码元,为接收码元,由元素构成可靠度矩阵:
将可靠度矩阵转化为重度矩阵,具体过程如下:
(1)设置一个总重度期望值令Π*=Π,定义一个初始的q×n维全零重度矩阵M;
(2)如果s=0,结束算法并输出重度矩阵M;否则,转到(3);
(3)找出矩阵Π*中最大的元素利用式子更新Π*中的元素
(4)更新矩阵M中的元素mi,j=mi,j+1,且s=s-1,转到(2);
由此可得到重度矩阵:
优选地,步骤S3中,构建的二元多项式J(x,y)的过程可用下式表示:
Q ( x , y ) = min l o d ( Q ( x , y ) ) { Q ( x , y ) &Element; F q &lsqb; x , y &rsqb; | D &alpha; &beta; Q ( x j , &rho; i ) = 0 , j = 0 , 1 , ... , n - 1 i = 0 , 1 , ... , q - 1 ; &alpha; + &beta; < m i , j ( &alpha; , &beta; &Element; N ) } ;
DαβJ(xji)表示二元多项式J(x,y)在插值点(xji)的(α,β)阶Hasse混合偏导数,Fq[x,y]为自变量为x和y的二元多项式环,Fq[x,y]表示系数属于有限域GF(q)中的元素,Fq[x,y]用公式可表示为其中fab∈GF(q)。
优选地,步骤S5中,获得RS码频域编码对应的信息多项式m'(x)的过程具体如下:
使用Roth-Ruckenstein因式分解算法对Q(x,y)分解后,获得若干形如y-p(x)的因式,其中p(x)为一元多项式,分解获得的一元多项式构成集合L:
L={p(x):(y-p(x))|Q(x,y)且degp(x)<k}
degp(x)<k表示p(x)的次数小于k,对集合L中所有的一元多项式采用频域编码方式进行编码,将编码得到的码字与RS(n,k)码进行比较,汉明距最小的码字对应的一元多项式即为信息多项式m'(x),m'(x)表示译码所得信息多项式。
一种二维码生成方法,是把RS码的频域编码运用到二维码中,其编码的过程具体如下:
( c 0 , c 1 , ... , c n - 1 ) = &Delta; f ( m &prime; ( x ) ) = ( m ( 1 ) , m ( &alpha; ) , m ( &alpha; 2 ) , ... , m ( &alpha; n - 1 ) )
其中m'(x)=m0+m1x+...+mk-1xk-1,m'(x)∈GF(q);(c0,c1,...,cn-1)为编码码字,α是有限域GF(q)的本原元,f(·)表示一个函数的计算过程,m(x)表示编码时的信息多项式。
与现有技术相比,本发明的有益效果是:
本发明提出了二维码新的生成方案,即用RS码的频域编码生成二维码的纠错码,并提供了一种基于改进的KV算法的矩阵式二维码RS译码纠错方法。改进的KV算法可以降低插值的复杂度,因此可以提高算法的效率,且该算法纠错能力强,实现了更好的译码增益,从而提高二维码的纠错能力,使二维码在出现脱落、污点、穿孔以及局部破损等情况时,能更好地还原原始信息,扩展了二维码的使用范围。
附图说明
图1为改进的KV算法的基本框
图2为用频域编码方法生成RS码的QR码生成流程
图3为用改进的KV算法进行纠错译码的QR码译码步骤。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
在对本发明的技术方案进行说明之前,首先对RS码进行简介,RS码具有两种编码方式:频域编码方式和时域编码方式。这两种编码方式通过将原始的码字矢量c假设成码字的时域形式,将c对应的有限域傅里叶变换(GFFT)所得的码字矢量c看成频域形式,根据GFFT变换的性质可以证明两者是等价的。因此可以将这两种编码方式分别看作为时域编码(即使与时间没有关系)和频域编码。目前二维码中的RS系统码对应时域编码,而改进的KV算法对应频域编码,这使得用改进的KV算法对二维码符号解除掩膜后的码字进行纠错译码时首先要提出二维码新的生成方案,即在2所示的QR码生成流程中采用频域编码方式生成二维码RS纠错码,所述方法的实现如下:
假设α是有限域GF(q)的本原元并且RS码码字长度n=q-1,长度为k的信息码字矢量m1=(m0,m1,...,mk-1)∈GF(q),与之对应的信息多项式为m(x)=m0+m1x+...+mk-1xk-1∈GF(q),则编码码字可以通过下式计算:
( c 0 , c 1 , ... , c n - 1 ) = &Delta; f ( m ( x ) ) = ( m ( 1 ) , m ( &alpha; ) , m ( &alpha; 2 ) , ... , m ( &alpha; n - 1 ) )
其中f(m(x))用来计算有限域GF(q)中的非零元素在多项式m(x)的值。
这种编码方式也可以看作将有限域GF(q)中的个非零元素α01,...,αn-1带入到信息多项式m(x)中所得到的多项式的值,并且这n个非零元素的计算顺序是任意的,即:
(c0,c1,...,cn-1)=(m(α0),m(α1),...,m(αn-1))
以上求多项式值的编码方式也可以通过下式的矩阵运算表示:
(c0,c1,...,cn-1)=m1×G1
其中G1表示频域编码方式的生成矩阵。
在以上方法的基础上,本发明提供了一种基于改进的KV算法的矩阵式二维码RS译码纠错方法如图1,改进的KV算法包括重度指配算法,Kotter插值算法和Roth-Ruckenstein因式分解算法三部分,重度指配算法又包括计算可靠度矩阵和转化为重度矩阵两部分。纠错方法包括以下步骤:
S1.对二维码图像进行去掩膜处理,获得去掩膜后的RS(n,k)码;
S2.对接收码字利用重度指配算法求取重度矩阵M,矩阵M中元素mi,j表示各内插点的插值重度值;重度指配算法具体步骤如下:
通过公式:
计算后验概率,其中Pr表示概率函数,ρ∈GF(q)表示有限域GF(q)中元素的取值,p(.|ρ)表示条件概率密度函数,v=ρi∈GF(q)=(ρ01,...,ρq-1)为发送码元,为接收码元。由元素构成可靠度矩阵:
将可靠度矩阵转化为重度矩阵,具体过程如下:
(1)设置一个总重度期望值令Π*=Π,定义一个初始的q×n维全零重度矩阵M;
(2)如果s=0,结束算法并输出重度矩阵M;否则,转到(3);
(3)找出矩阵Π*中最大的元素利用式子更新Π*中的元素
(4)更新矩阵M中的元素mi,j=mi,j+1,且s=s-1,转到(2);
由此可得到重度矩阵:
S3.根据S2得到的重度矩阵,对于插值点(xji)(j=0,1,...,n-1;i=0,1,...,q-1)基于(1,k-1)-加权字典反序表通过在每个插值点至少插值mi,j次来构建一个二元多项式,其中mi,j为内插重度;
构建的二元多项式J(x,y)的过程可用下式表示:
Q ( x , y ) = min l o d ( Q ( x , y ) ) { Q ( x , y ) &Element; F q &lsqb; x , y &rsqb; | D &alpha; &beta; Q ( x j , &rho; i ) = 0 , j = 0 , 1 , ... , n - 1 i = 0 , 1 , ... , q - 1 ; &alpha; + &beta; < m i , j ( &alpha; , &beta; &Element; N ) } ;
DαβJ(xji)表示二元多项式J(x,y)在插值点(xji)的(α,β)阶Hasse混合偏导数,Fq[x,y]为自变量为x和y的二元多项式环,Fq[x,y]表示系数属于有限域GF(q)中的元素,Fq[x,y]用公式可表示为其中fab∈GF(q)。
S4.利用改进的Kotter插值算法求取最小多项式,具体过程如下:
S41.首先通过公式初始化一组二元多项式,其中为初始化的第j条二元多项式,lm为该组二元多项式的数目,为初始化后的二元多项式组成的集合,ik为迭代次数,此时ik=0;
S42.通过公式消去集合内首阶大于C的二元多项式,其中 C = 1 2 &Sigma; i = 0 q - 1 &Sigma; j = 0 n - 1 m i , j ( m i , j + 1 ) ;
S43.通过公式中的各个二元多项式的Hasse混合偏导数进行计算,然后判断集合中所有二元多项式的Hasse混合偏导数是否都等于0,若都等于0,则进行步骤S46,若不全等于0,进行步骤S44;
S44.通过式(1)、(2)求取该组二元多项式中的最小多项式,式(1)、(2)如下所示:
f = m i n j &Element; J i k g i k , j - - - ( 1 )
j * = arg m i n j &Element; J i k g i k , j - - - ( 2 )
其中f为该组二元多项式中的最小多项式,j*为最小多项式对应的序号。
S45.对该组二元多项式中的最小多项式进行变换修改,公式如下:
g i k + 1 , j * = &lsqb; x f , f &rsqb; D i k = &Delta; j * ( x - x i ) f , j = j * ,
其余的二元多项式也进行变换修改,公式如下:
g i k + 1 , j = &lsqb; g i k , j , f &rsqb; D i k = &Delta; j * g i k , j - &Delta; j f , j &NotEqual; j * ;
S46.选取另一组二元多项式重复步骤S41~S45的过程进行该组最小多项式的求取,并令ik=ik+1;
S47.若ik=C则停止迭代,此时各组二元多项式的最小多项式gC,j组成集合GC,通过公式Q(x,y)=min{gC,j|gC,j∈GC}对C组二元多项式中的最小多项式Q(x,y)进行求解;
S5.在求得Q(x,y)之后,利用Roth-Ruckenstein因式分解算法对Q(x,y)进行分解获得RS码频域编码对应的信息多项式m'(x),具体如下:
使用Roth-Ruckenstein因式分解算法对Q(x,y)分解后,获得若干形如y-p(x)的因式,其中p(x)为一元多项式,分解获得的一元多项式构成集合L:
L={p(x):(y-p(x))|Q(x,y)且degp(x)<k}
degp(x)<k表示p(x)的次数小于k,对集合L中所有的一元多项式采用频域编码方式进行编码,将编码得到的码字与RS(n,k)码进行比较,汉明距最小的码字对应的一元多项式即为信息多项式m'(x)。
Roth-Ruchenstein算法的伪代码可简单描述为:
输入:插值多项式Q(x,y),D=k-1(p(x)的最大次数)
输出:一系列多项式次数小于等于D的一元多项式p(x)的集合L,且每个多项式满足(y-p(x))|Q(x,y)
BEGIN
π[0]=0;deg[0]=-1;Q0(x,y)=<<Q(x,y)>>;t=1;s=0;
rothrucktree(s);
END
rothrucktree(s)//从s开始递归求解一元多项式的各个系数
BEGIN
IFQs(x,0)=0,则输出p[s](x);
ELSEIF(deg[s]<D)
R=Rootlist[Qs(0,y)]
FOR(α∈R)
v=t;t=t+1;
π[v]=s;deg[v]=deg[s]+1;coff[v]=α;
Qv(x,y)=<<Qs(x,xy+α)>>;
rothrucktree(v);
END
其中π[s]表示节点s的根,deg[s]表示节点s的次数,coff[s]表示节点s处的多项式系数,p[s](x)=coff[s]xdeg[s]+coff[π[s]]xdeg[π[s]]+...。
S6.对信息多项式m'(x)采用频域编码方式进行n位编码,即可获得纠正的RS(n,k)码。
按照图3所示的流程,本发明对二维码DataMatrix,MaxiCode,CodeOne,QRCode的所有版本以及各个版本的所有纠错等级,用改进的KV算法研究了其纠错特性,并用C语言程序进行了验证,下面举个QR码的版本来说明。
以QR码版本1-H符号为例,对该符号来说,其对应的是有限域GF(28)上的RS(26,9,8)码对信息码字。目前二维码中运用的伴随式译码算法对RS(26,9,8)码至多只能纠正8个错误,但本发明提出的译码纠错方法可以突破这个限定。
为了能够更好地对本发明的技术方案进行说明,本实施例通过例1、例2对译码纠错方法的纠正过程进行了充分的说明。
实施例1
假设1-H符号破损和污染比较严重,解除掩膜后的码字是:
( &alpha; 147 , &alpha; 57 , &alpha; 55 , &alpha; 117 , &alpha; 57 , &alpha; 207 , &alpha; 68 , &alpha; 5 , &alpha; 55 , &alpha; 21 , &alpha; 107 , &alpha; 16 , &alpha; 233 , &alpha; 11 , &alpha; 157 , &alpha; 15 , &alpha; 14 , &alpha; 167 , &alpha; 24 , &alpha; 24 , &alpha; 7 , &alpha; 169 , &alpha; 16 , &alpha; 41 , &alpha; 183 , &alpha; 4 ) - - - ( 3 )
设定一定的信噪比,通过计算可靠度矩阵构造重度矩阵矩阵M,对每个内插点(xj,ρi)(j=0,1,...,25;i=0,1,...,255),其中xj表示有限域GF(28)中用于频域编码的元素,ρi表示有限域GF(28)的元素,用改进的KV算法通过C语言编程求解可得信息多项式:
m(x)=α45x+α27x2219x366x47x5122x6100x7122x8(4)
我们将式(23)表示的信息多项式用RS码的频域编码进行编码可得:
( &alpha; 146 , &alpha; 57 , &alpha; 55 , &alpha; 117 , &alpha; 57 , &alpha; 207 , &alpha; 68 , &alpha; 53 , &alpha; 55 , &alpha; 215 , &alpha; 107 , &alpha; 176 , &alpha; 233 , &alpha; 151 , &alpha; 157 , &alpha; 175 , &alpha; 141 , &alpha; 167 , &alpha; 24 , &alpha; 241 , &alpha; 77 , &alpha; 169 , &alpha; 163 , &alpha; 41 , &alpha; 183 , &alpha; 4 ) - - - ( 5 )
将式(3)和式(5)对比可知,用改进的KV算法纠正了QR码版本1-H符号解除掩膜后的10个错误码字,目前二维码中运用的伴随式译码算法对(26,9,8)RS码至多只能纠正8个错误,改进的KV算法突破了这个限定,纠错能力更强。改进的KV算法可以通过修改参数s和信噪比取得复杂度和性能的折衷,带宽代价和性能的折衷。
实施例2
按照图2所示的流程,本文对二维码DataMatrix,MaxiCode,CodeOne,QRCode所有纠错等级,用新的生成方案的C语言程序生成了各个版本符号,下面举将数据串“01234567“生成QR码版本1-H符号的例子来说明,QR码版本1-H符号对应于有限域GF(28)上的RS(26,9,8)码。
根据图2所示流程的数据分析和数据编码,我们可以很容易得到数据串“01234567“QR码版本1-H符号的数据编码结果:
00010000001000000000110001010110011000011000000011101100
0001000111101100
下面我们重点来看纠错编码的生成,这也是我们研究的重点,将以上数据编码所得的二进制位流转换为10进制数,即:
163212869712823617236
将其转换为有限域GF(28)上的元素,可得到数据串“01234567“的信息码元为
4527219667122100122)
接着对以上信息码字进行RS码的频域编码可得QR码版本1-H符号的纠错码字:
1465755117572076853552151071762331511571751411672424177169163411834)
得到纠错码字之后,将码字布置在21模块×21模块的矩阵中,然后进行QR码符号的掩膜,生成格式和版本信息,即可得到“01234567“数据串最终的QR码版本1-H符号。其中,构造最终信息、码字布置、掩膜以及生成格式和版本信息在软件实现上都有固定的程序可以调用,本专利不做重点研究,为了更方便地叙述改进的KV算法在QR码版本中的应用,本专利以QR码版本1-H符号的纠错码字来说明。
本发明提出用RS码的频域编码生成二维码的纠错码的二维码新的生成方案,并用改进的KV算法进行二维码纠错译码。改进的KV算法可以降低插值的复杂度,因此可以提高算法的效率,且该算法纠错能力强,实现了更好的译码增益,从而提高二维码的纠错能力,使二维码在出现脱落、污点、穿孔以及局部破损等情况时,能更好地还原原始信息,扩展了二维码的使用范围。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利。

Claims (5)

1.一种基于改进的KV算法的矩阵式二维码RS译码纠错方法,其特征在于,其中改进的KV算法包括重度指配算法,Kotter插值算法和Roth-Ruckenstein因式分解算法三部分,所述纠错方法包括以下步骤:
S1.对二维码图像进行去掩膜处理,获得去掩膜后的RS(n,k)码;
S2.对去掩膜后的RS(n,k)码利用重度指配算法求取重度矩阵M,矩阵M中元素mi,j表示插值点(xji)的插值重度值;
S3.根据S2步骤计算得到的重度矩阵M,对于每个插值点(xji),基于(1,k-1)-加权字典反序表在每个插值点至少插值mi,j次来构建一个二元多项式,i=0,1,...,q-1;j=0,1,...,n-1,n是RS(n,k)中的n,表示RS码码字个数,q是有限域元素个数;
S4.利用改进的Kotter插值算法求取最小多项式,具体过程如下:
S41.首先通过公式初始化一组二元多项式,其中为第ik次迭代初始化的第j个二元多项式,lm为该组二元多项式的个数,为初始化后的二元多项式组成的集合,y表示二元多项式的自变量;ik=0、1、…、C;
S42.通过公式消去集合内首阶大于C的二元多项式,其中 C = 1 2 &Sigma; i = 0 q - 1 &Sigma; j = 0 n - 1 m i , j ( m i , j + 1 ) ;
S43.通过公式对集合中的各个二元多项式的Hasse混合偏导数进行计算,然后判断集合中所有二元多项式的Hasse混合偏导数是否都等于0,若都等于0,则进行步骤S46,若不全等于0,则进行步骤S44;
S44.求取该组集合各二元多项式中的最小多项式,如下式所示:
f = m i n j &Element; J i k g i k , j
j * = arg m i n j &Element; J i k g i k , j
其中f为该组二元多项式中的最小多项式,j*为最小多项式对应的序号;
S45.对该组集合各二元多项式中的最小多项式进行变换修改,公式如下:
g i k + 1 , j * = &lsqb; x f , f &rsqb; D i k = &Delta; j * ( x - x i ) f j = j * ,
x表示二元多项式的自变量,xi表示第i个插值点的第一个坐标值;
其余的二元多项式也进行变换修改,公式如下:
g i k + 1 , j = &lsqb; g i k , j , f &rsqb; D i k = &Delta; j * g i k , j - &Delta; j f j &NotEqual; j * ;
S46.令ik=ik+1,选取另一组二元多项式重复步骤S41~S45的过程进行该组最小多项式的求取;
S47.若ik=C则停止迭代,此时各组二元多项式的最小多项式gC,j组成集合GC,通过公式Q(x,y)=min{gC,j|gC,j∈GC}对C组二元多项式中的最小多项式Q(x,y)进行求解;
S5.在求得Q(x,y)之后,利用Roth-Ruckenstein因式分解算法对Q(x,y)进行分解获得RS码频域编码对应的信息多项式m'(x);
S6.对信息多项式m'(x)采用频域编码方式进行n位编码,即可获得纠正的RS(n,k)码。
2.根据权利要求1所述的基于改进的KV算法的矩阵式二维码RS译码纠错方法,其特征在于:步骤S2中,利用重度指配算法求取重度矩阵M的过程具体如下:
通过公式:
i=0,1,...,q-1;j=0,1,...,n-1
计算后验概率,其中Pr表示概率函数,ρ∈GF(q)表示有限域GF(q)中元素的取值,p(.|ρ)表示条件概率密度函数,v=ρi∈GF(q)=(ρ01,...,ρq-1)为发送码元,为接收码元,由元素构成可靠度矩阵:
将可靠度矩阵转化为重度矩阵,具体过程如下:
(1)设置一个总重度期望值令Π*=Π,定义一个初始的q×n维全零重度矩阵M;
(2)如果s=0,结束算法并输出重度矩阵M;否则,转到(3);
(3)找出矩阵Π*中最大的元素利用式子更新Π*中的元素
(4)更新矩阵M中的元素mi,j=mi,j+1,且s=s-1,转到(2);
由此可得到重度矩阵:
3.根据权利要求1所述的基于改进的KV算法的矩阵式二维码RS译码纠错方法,其特征在于:步骤S3中,构建的二元多项式J(x,y)的过程可用下式表示:
Q ( x , y ) = m i n l o d ( Q ( x , y ) ) { Q ( x , y ) &Element; F q &lsqb; x , y &rsqb; | D &alpha; &beta; Q ( x j , &rho; i ) = 0 ;
α+β<mi,j(α,β∈N)}
DαβJ(xji)表示二元多项式J(x,y)在插值点(xji)的(α,β)阶Hasse混合偏导数,Fq[x,y]为自变量为x和y的二元多项式环,Fq[x,y]表示系数属于有限域GF(q)中的元素,Fq[x,y]用公式可表示为i=0,1,...,q-1,j=0,1,...,n-1,其中fab∈GF(q)。
4.根据权利要求1所述的基于改进的KV算法的矩阵式二维码RS译码纠错方法,其特征在于:步骤S5中,获得RS码频域编码对应的信息多项式m'(x)的过程具体如下:
使用Roth-Ruckenstein因式分解算法对Q(x,y)分解后,获得若干形如y-p(x)的因式,其中p(x)为一元多项式,分解获得的一元多项式构成集合L:
L={p(x):(y-p(x))|Q(x,y)且degp(x)<k}
degp(x)<k表示p(x)的次数小于k,对集合L中所有的一元多项式采用频域编码方式进行编码,将编码得到的码字与RS(n,k)码进行比较,汉明距最小的码字对应的一元多项式即为信息多项式m'(x),m'(x)表示译码所得信息多项式。
5.一种应用权利要求1所述的基于改进的KV算法的矩阵式二维码RS译码纠错方法的二维码生成方法,其特征在于,是把RS码的频域编码运用到二维码中,其编码的过程具体如下:
( c 0 , c 1 , ... , c n - 1 ) = &Delta; f ( m &prime; ( x ) ) = ( m ( 1 ) , m ( &alpha; ) , m ( &alpha; 2 ) , ... , m ( &alpha; n - 1 ) )
其中m'(x)=m0+m1x+...+mk-1xk-1,m'(x)∈GF(q);(c0,c1,...,cn-1)为编码码字,α是有限域GF(q)的本原元,f(·)表示一个函数的计算过程,m(x)表示编码时的信息多项式。
CN201610112681.XA 2016-02-29 2016-02-29 基于改进的kv算法的矩阵式二维码rs译码纠错方法 Pending CN105811999A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610112681.XA CN105811999A (zh) 2016-02-29 2016-02-29 基于改进的kv算法的矩阵式二维码rs译码纠错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610112681.XA CN105811999A (zh) 2016-02-29 2016-02-29 基于改进的kv算法的矩阵式二维码rs译码纠错方法

Publications (1)

Publication Number Publication Date
CN105811999A true CN105811999A (zh) 2016-07-27

Family

ID=56465903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610112681.XA Pending CN105811999A (zh) 2016-02-29 2016-02-29 基于改进的kv算法的矩阵式二维码rs译码纠错方法

Country Status (1)

Country Link
CN (1) CN105811999A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512555A (zh) * 2018-03-13 2018-09-07 中国工程物理研究院电子工程研究所 一种系统rs码阶数及本原多项式的识别方法
CN108596001A (zh) * 2017-09-21 2018-09-28 北京三快在线科技有限公司 二维码纠错译码方法、装置、电子设备及计算机可读介质
TWI783895B (zh) * 2022-04-01 2022-11-11 國立勤益科技大學 隨機式rs碼之qr碼驗証系統及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436834A (zh) * 2011-11-14 2012-05-02 中兴通讯股份有限公司 一种读取磁盘信息的方法及装置
CN104732105A (zh) * 2015-04-08 2015-06-24 西安电子科技大学 一种组件化系统设计的故障模式与影响分析方法
CN104915699A (zh) * 2015-05-21 2015-09-16 中山大学 基于改进的gs算法的矩阵式二维码rs译码纠错方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436834A (zh) * 2011-11-14 2012-05-02 中兴通讯股份有限公司 一种读取磁盘信息的方法及装置
CN104732105A (zh) * 2015-04-08 2015-06-24 西安电子科技大学 一种组件化系统设计的故障模式与影响分析方法
CN104915699A (zh) * 2015-05-21 2015-09-16 中山大学 基于改进的gs算法的矩阵式二维码rs译码纠错方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐朝军: "RS码译码算法及其实现的研究", 《中国博士学位论文全文数据库信息科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108596001A (zh) * 2017-09-21 2018-09-28 北京三快在线科技有限公司 二维码纠错译码方法、装置、电子设备及计算机可读介质
WO2019056644A1 (zh) * 2017-09-21 2019-03-28 北京三快在线科技有限公司 二维码纠错译码
JP2020537363A (ja) * 2017-09-21 2020-12-17 北京三快在綫科技有限公司Beijing Sankuai Online Technology Co., Ltd 二次元コード誤り訂正復号化
CN108596001B (zh) * 2017-09-21 2021-02-02 北京三快在线科技有限公司 二维码纠错译码方法、装置、电子设备及计算机可读介质
US11080500B2 (en) 2017-09-21 2021-08-03 Beijing Sankuai Online Technology Co., Ltd Two-dimensional code error correction decoding
CN108512555A (zh) * 2018-03-13 2018-09-07 中国工程物理研究院电子工程研究所 一种系统rs码阶数及本原多项式的识别方法
CN108512555B (zh) * 2018-03-13 2021-09-24 中国工程物理研究院电子工程研究所 一种系统rs码阶数及本原多项式的识别方法
TWI783895B (zh) * 2022-04-01 2022-11-11 國立勤益科技大學 隨機式rs碼之qr碼驗証系統及方法

Similar Documents

Publication Publication Date Title
KR100683084B1 (ko) 저밀도 패리티 검사 부호화 신호의 전송을 지원하는 방법,인코더 및 송신기
EP1985022B1 (en) Decoding of raptor codes
CN100356697C (zh) 使用结构化奇偶校验矩阵的低密度奇偶校验码的编码
Cluzeau Block code reconstruction using iterative decoding techniques
Hao et al. Some results on optimal locally repairable codes
CN1953336B (zh) 在低密度奇偶校验解码器中更新校验节点的方法
JP2010050994A (ja) 低密度パリティチェックコードを発生する方法およびシステム
US8103945B2 (en) Decoding method and decoding apparatus as well as program
US20060156179A1 (en) Construction of LDPC (Low Density Parity Check) codes using GRS (Generalized Reed-Solomon) code
JP2013507807A (ja) 非バイナリ符号を復号するための方法
CN105811999A (zh) 基于改进的kv算法的矩阵式二维码rs译码纠错方法
CN104915699B (zh) 基于改进的gs算法的矩阵式二维码rs译码纠错方法
Lin et al. Transformation of binary linear block codes to polar codes with dynamic frozen
US20240048157A1 (en) Encoding method, decoding method, electronic device and storage medium
KR100408037B1 (ko) 비트 레벨 부호화/복호화 방법 및 장치
US20020002695A1 (en) Method and system for decoding
CN102130745A (zh) 一种改进的ldpc码的线性规划译码方法
Rudow et al. A locality-based approach for coded computation
Hou et al. New regenerating codes over binary cyclic codes
EL KAIME et al. A survey of polar codes
Halbawi et al. Coding with constraints: Minimum distance bounds and systematic constructions
CN101515804B (zh) 产生低密度奇偶校验码的方法和系统
Samady‐khaftari et al. Ring‐based linear network coding on erroneous cyclic networks
Huang et al. Research of Error Control Coding and Decoding
CN102148619A (zh) 一种应用于ldpc码的自适应线性规划译码算法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160727