区块码错误校正装置及方法 【技术领域】
本发明是关于解码的技术领域,尤指一种区块码错误校正装置及方法。
背景技术
数字光碟系统的资料(data)于储存媒体转移与储存的过程中,极易遭受外在因素(举例来说;碟片的刮伤,或是肮脏的手指印痕)、写入及读取设备的误差而导致资料的毁损。各种编码技术被发展以减少资料的错误机率。错误更正码(Error Correction Code,ECC)是一般用来改正错误的编码的通称,其是于原先资料中加入冗余(redundancy)的额外资讯而成为字码(codeword)后再写入储存媒体,当将储存于媒体的资料字码读出时,最重要的目的是将字码转换回原来的资料。由于字码中多了冗余资讯,读取设备能对于原资料更加的了解,而后进行特定步骤的解码程序即能得到可靠度更佳的资料。当然越多的冗余能提供读取设备更多的资讯,而得到更加的解码效能,然而此却牺牲了资料的传输率。
错误更正码发展的目标除了确保资料的正确性之外,低复杂度地解码装置也是系统实现的重要课题。一般而言,区块码解码较容易,故常被用于碟型储存装置。其中李德-索罗门码(Reed-Solomon code)在众多的错误更正码中有绝佳的错误校正能力,其字码隐含的代数结构容易实现于解码装置。由于数字光碟储存资料的实体密度较高,若储存媒体受到损伤所影响的资料数目也较多,所以数字光碟系统中必须具备更强大错误校正能力,为了有良好的错误校正效能以及低复杂度的解码装置,因此,一般数字光碟系统均采用李德-索罗门乘积码(Reed-Solomon productcode,RSPC)。
图1是数字光碟规格(DVD specification)所刊载的编码方块格式,其中,一段资料页框(data frame)为一高12位元组、长172位元组的矩阵,而一错误更正码方块(ECC block)则是由叠接16段资列页框,并且加上冗余形成一高208位元、长182位元的矩阵。
李德-索罗门乘积码的编码方式首先由矩阵的行方向进行,将每一行中每一位元组视为28伽罗瓦体(Galois Field,GF)中的元素,而整行可以视为在伽罗瓦体中的多项式,以Dcol(x)表示的,其冗余的产生方式则遵从下列方程式;
Rcol(x)={Dcol(x)·x16}mod{Gcol(x)};
其中,Gcol(x)=Πk=015(x+αk),]]>α则是由户P(x)=x8+x4+x2+x2+1所衍生的伽罗瓦体的质元(primitive element)。
很明显的,Rcol(x)为15阶多项式,将其系数视为16位元组的资料即可得该行的冗余,该行的冗余又称为同位元(parity),如此对各行进行上述的程序后,可得出各行的冗余,其在图1该编码方块中标示为PO。
待所有的行同位元产生之后,接下来则可决定每一列的冗余Prow(x),将每一列中每一位元组视为28伽罗瓦体中的元素,而整列可以视为在伽罗瓦体中的多项式,以Rrow(x)表示的,其冗余的产生方式则遵从下列方程式;
Rrow(x)={Drow(x)·x10}mod{Grow(x)};
而Grow(x)=Πk=09(x+αk);]]>
相同的,Rrow(x)为9阶多项式,将其系数视为10位元组的资料即可得该列的冗余,该列的冗余又称为同位元(parity),如此对各列进行上述的程序后,可得出各列的冗余,其在图1该编码方块中标示为PI。
解码的顺序则是与编码的顺序相反,先利用每一列中的列同位元进行各列的解码,之后使用行同位元进行各行的解码,列编解码方块较靠近通讯媒体,称为内码,其同位元称为内同位元(inner parity,PI),反之,行编解码称为外码,同位元为外同位元(outer parity,PO)。
抹去位址提供解码装置更多的资讯,以增强解码的能力,就数字光碟系统而言,编码完成之后的字码经过调变装置而将每一位元组转换为两位元组(Eight to Sixteen Modulation,ESM),再被写入储存媒体。尔后欲读取该储存媒体的位元组时,须有相对应的解调装置(demodulator),若位元组无法被适当的解调,表示该位元组可能载有错误的资料,即可将该位元组的位址设定为抹去位址,如此解码器知道该位元组为错误,只需计算该位址的错误量即可完成错误校正,就理论上而言,知道抹去位址的情况下,解码装置的错误更正能力为不知道抹去位址情况的两倍。
如同前面所提及,数字光碟系统所采用的李德-索罗门乘积码是对二维矩阵的行与列分别产生同位元,解码过程中,一叠代法经常被使用以有效提高错误更正能力,图2为一公知叠代法解码的流程图,首先进行列解码,对于能顺利解码的列,将消除该列所有的抹去位址,对于无法解码的列,则保留抹去位址以期该位址的错误能被接下来的行解码更正,其次,进行行解码,对于能顺利解码的行,将消除该行所有的抹去位址,对于无法解码的行,继续保留抹去位址以期该抹去位址的错误能被接下来的列解码更正,如此重复循环直到同位元检查无错误,即解码成功。当重复地叠代循环而无法完全更正错误时宣告解码失败(decodingfailure),然而此种叠代解码的方法对记忆体存取次数与重复的解码叠代次数成正比,也与功率消耗成正比,亦即叠代次数越多,电能消耗越多,因此,公知错误更正码方块的叠代解码方法仍有诸多缺点而有予以改进的必要。
【发明内容】
本发明的目的是在提供一种种区块码错误校正及装置,以避免公知技术因需由较多的循环次数方可判别解码成功或解码失败,而减少了记忆体的存取次数,同时,减少解码器及相关电路能量的损耗。
为实现上述目的,本发明提供一种区块码错误校正方法,该区块码包括复数笔以行列排列的资料项目,该区块码对应有一抹除位址表及一错误表,该抹除位址表包括复数笔以行列排列的抹除项目,该错误表包括复数笔以行列排列的错误项目,该方法包含下列步骤:
(A)输入一区块码并初始化对应于该区块码的抹除位址表;
(B)依据该抹除位址表来对该区块码进行列方向解码,以获得各列资料的错误,以便更新对应于该区块码的错误表;
(C)依据一第一判断准则先对该抹除位址表进行列方向更新;
(D)依据该抹除位址表对该区块码进行行方向解码,以获得各行资料的错误,以便以更新该错误表;
(E)依据一第二判断准则先对该抹除位址表进行行方向更新。
所述的区块码错误校正方法,其中,步骤(B)至(E)是重复执行直至没有错误产生或重复执行的次数超过一预设值。
所述的区块码错误校正方法,其中,于步骤(C)中,该第一判断准则为;当gi(e,f)大于TR时,将该抹除位址表的第i列的抹除项目均设为真,当中,TR为一第一较佳效能参数,
gi(e,f)=2e(i,:)+f(i,:)=2Σj=1nχ(e(i,j))+Σj=1nf(i,j)]]>
n为该区块码的行数,该e(i,j)为该错误表中第i行第j列的错误项目经由解码所得到的值,f(i,j)为该抹除位址表中第i行第j列的抹除项目所纪录的值,
所述的区块码错误校正方法,其中,该第一较佳效能参数TR的值在步骤(B)至(E)重复执行次数为1、2、3、4、5时分别为6、9、10、10、10。
所述的区块码错误校正方法,其中,第二判断准则为:当hj(e,f)大于Tc时,将该抹除位址表的第j行的抹除项目均设为真,当中,Tc为一第二较佳效能参数,
hj(e,f)=2e(:,f)+f(:,j)=2Σi=1kχ(e(i,j))+Σi=1kf(i,j),]]>
K为该区块码的列数,e(i,j)为该错误表中第i行第j列的错误项目经由解码所得到的值,f(i,j)为该抹除位址表中第i行第j列的抹除项目所纪录的值,
所述的区块码错误校正方法,其中,该第二较佳效能参数TC的值在步骤(B)至(E)重复执行次数为1、2、3、4、5时分别为12、15、16、16、16。
为实现上述目的,本发明还提供一种区块码错误校正装置,该区块码包括复数笔以行列排列的资料项目,该装置包括:
一区块码输入装置,是用以输入一区块码;
一抹除位址表,包括复数笔以行列排列的抹除项目,其分别对应于该区块码的复数笔资料项目;
一错误表,包括复数笔以行列排列的错误项目,其分别对应于该区块码的复数笔资料项目;
一解码器,其依据该抹除住址表而对该区块码进行列方向解码以获得各列资料的错误,以便更新该错误表,且依据一第一判断准则对该抹除位址表进行列方向更新;其并依据该抹除位址表对该区块码进行行方向解码以获得各行资料的错误,以便更新该错误表,且据一第二判断准则先对该抹除位址表进行行方向更新。
所述的区块码错误校正装置,其中,该解码器是对该区块码进行复数次解码,直至没有错误产生或解码次数超过一预设值。
所述的区块码错误校正装置,其中第一判断准则为;当gi(e,f)大于TR时,将该抹除位址表的第i列的抹除项目均设为真,当中,TR为一第一较佳效能参数,
gi(e,f)=2e(i,:)+f(i,:)=2Σj=1nχ(e(i,j))+Σj=1nf(i,j)]]>
n为该区块码的行数,该e(i,j)为该错误表中第i行第j列的错误项目经由解码所得到的值,f(i,j)为该抹除位址表中第i行第j列的抹除项目所纪录的值,
所述的区块码错误校正装置,其中该第一较佳效能参数TR的值在解码次数为1、2、3、4、5时分别为6、9、10、10、10。
所述的区块码错误校正装置,其中,第二判断准则为:当hj(e,f)大于Tc时,将该抹除位址表的第j行的抹除项目均设为真,当中,TC为一第二较佳效能参数
hj(e,f)=2e(:,j)+f(:,j)=2Σi=1kχ(e(i,j))+Σi=1kf(i,j)]]>
K为该区块码的列数,e(i,j)为该错误表中第i行第j列的错误项目经由解码所得到的值,f(i,j)为该抹除位址表中第i行第j列的抹除项目所纪录的值,
所述的区块码错误校正装置,其中,该第二较佳效能参数TC的值在解码次数为1、2、3、4、5时分别为12、15、16、16、16。
【附图说明】
图1是数字光碟规格(DVD specification)所刊载的编码方块格式的示意图;
图2是公知叠代法解码的流程图;
图3是本发明的区块码错误校正装置的方块图;
图4是本发明的区块码错误校正方法的流程图。
【具体实施方式】
图3是本发明一种区块码错误校正装置的方块图,其包括:一区块码输入装置310、一抹除位址表320、一错误表330及一解码器340。其中,该区块码输入装置310是用以输入一区块码311,而一区块码311包括复数笔以行列排列的资料项目d(i,j);该抹除位址表320包括有复数笔以行列排列的抹除项目f(i,j),其分别对应于该区块码的复数笔资料项目d(i,j),该错误表330包括复数笔以行列排列的错误项目e(i,j),其亦分别对应于该区块码的复数笔资料项目d(i,j),该解码器340依据该抹除位址表320而对该区块码进行列方向解码以获得各列资料的错误,以便更新该错误表330。
该错误表330以及该抹去位址表320的定义如(1)、(2)式:
e(i,j):Z208+×Z182+→GF(28)----(1)]]>
f(i,j):Z208+×Z182+→{0,1}∈Z----(2)]]>
其中,e为经由该解码器340解码所得到的错误值,为28伽罗瓦体中的元素,f则用以纪录抹去值,抹去值为1代表该位址为抹去位址,反之,若为0则该位址不为抹去位址。
该解码器340对该区块码先进行列方向解码,对于该区块码中能顺利解码的列,消除该抹除位址表320中与该列相对应的所有的抹去位址,对于该区块码中无法解码的列,则以错误表330配合第一判断准则决定是否保留其相对应的抹去位址,以决定该解码器340进行行方向解码时,是否能利用该抹去位址提供的资讯进行解码,接下来,该解码器340利用更新后的抹去位址表320进行行方向解码,能顺利解码的行,消除该抹除位址表320中与该行相对应的所有的抹去位址,对于该区块码中无法解码的行,以错误表330配合第二判断准则决定是否保留其相对应的抹去位址,以决定下次循环的列方向解码是否能使用该抹去位址的资讯,如此以增加该解码器340的解码效能。
本发明的第一判断准则及第二判断准则除了依进行行方向解码或是列方向解码有所不同的外,并依据叠代次数(ITE变数)而有所不同,(3)式为列方向解码所使用抹去位址更新的第一判断准则,而(4)式则是于行方向解码的抹去位址更新的第二判断准则:
f(i,j)=u(gi(e,f)-TR) (3)
f(i,j)=u(hj(e,j)-Tc) (4)
其中,i为列数,j为行数,gi、hj随着叠代次数的改变而改变,而
gi(e,f)=2e(i,:)+f(i,:)’
hj(e,f)=2e(:,j)+f(:,j)’e(i,:)=Σj=1182x(e(i,j)),]]>f(i,:)=Σj=1182f(i,j),]]>
e(:,j)=Σi=1208x(e(i,j)),]]>f(:,j)=Σi=1208f(i,j),]]>
参数TR、Tc也为叠代次数函数,不同的TR、Tc值会造成相同解码器的解码、效能有明显的差异,(3)式的意义为当gi(e,f)大于TR时,将该抹除位址表320中与该列相对应的所有的抹去位址均予以保留,(4)式的意义为当入hj(e,f)大于Tc时,将该抹除位址表320中与该行相对应的所有的抹去位址均予以保留,一组能得到解码时最佳效能的TR、Tc参考值列于表一:ITE=1 2 3 4 5TR 6 9 10 10 10Tc 12 15 16 16 16
图4是本发明的区块码错误校正方法的流程图,首先,于步骤S410中输入一区块码311,并于步骤S411中初始化对应于该区块码311的抹除位址表320及于步骤S412中初始化该叠代次数(ITE变数),于步骤S413中依据该抹除位址表320来对该区块码进行列方向解码,以获得各列资料的错误,以便于步骤S414中更新对应于该区块码的错误表330。
于步骤S415~步骤S421中,依据该第一判断准则f(i,j)=u(gi(e,f)-TR)对该抹除位址表320进行列方向更新,亦即,当第i列的gi(e,f)大于TR时,将该抹除位址表320中与该列相对应的所有的抹除项目f(i,j)均设为抹去位址。
于步骤S422中依据该抹除位址表320对该区块码311进行行方向解码,以获得各行资料的错误,以便于步骤S423中更新该错误表330。于步骤S424~步骤S430中,依据该第二判断准则f(i,j)=u(hj(e,f)-Tc)对该抹除位址表320进行行方向更新,亦即,当第j列的hj(e,f)大于Tc时,将该抹除位址表320中与该行相对应的所有的抹除项目f(i,j)均设为抹去位址。
于步骤S431中,判断该解码后的区块码311中是否仍有错误,若判定该解码后的区块码311中已无错误,则产生一成功的讯息(步骤S432中),若判定该解码后的区块码中仍有错误,则至步骤S433中判断该ITE变数是否超过一特定值,若是,则产生一失败的讯息(步骤S435),若步骤S433判定该ITE变数未超过一特定值时,则将该工TE变数加1(步骤S434)并重回步骤S413。
由上述说明可知,由于本发明所使用的抹除位址表320更新准则随着解码器的解码结果以及叠代次数的增加而改变,相较于使用传统的叠代解码的解码器,能以更少的解码次数得到更佳的解码效能,同时,由较少的循环次数即可判别解码成功或解码失败,减少了记忆体的存取次数,亦即,减少解码器及相关电路能量的损耗。
上述诸多实施例仅是为了便于说明而举例而已,本发明所主张的权利范围自应以专利范围所述为准,而非仅限于上述实施例。