CD-ROM格式数据的软解码模块设计
[10-10 20:38:44] 来源:http://www.88dzw.com 电子制作 阅读:8119次
文章摘要:3 CD-ROM扇区中的ECC纠错原理及算法CD-ROM扇区中的ECC码,按ISO/IEC10149的规范,采用GF(2 8)域上的RSPC码产生172字节的P校验符合和104字节的Q校验符号。RS码采用本原多项式P(x)=x 8+x 4+x 3+x 2+1和本原元α=(0 0 0 0 0 0 1 0)构造GF(2 8)中的256个元素。P校验和Q校验字的生成方法如图4所示。每个扇区中,字节12~2075和ECC域中的字节2076~2351共2340个字节,组成1170个字(word)。每个字S由两个字节B组成,分别为最高有效位字节MSB和最低有效位字节LSB。第n个字由个面的字节组成:S(n
CD-ROM格式数据的软解码模块设计,标签:电子小制作,http://www.88dzw.com3 CD-ROM扇区中的ECC纠错原理及算法
CD-ROM扇区中的ECC码,按ISO/IEC10149的规范,采用GF(2 8)域上的RSPC码产生172字节的P校验符合和104字节的Q校验符号。RS码采用本原多项式
P(x)=x 8+x 4+x 3+x 2+1
和本原元
α=(0 0 0 0 0 0 1 0)
构造GF(2 8)中的256个元素。
P校验和Q校验字的生成方法如图4所示。每个扇区中,字节12~2075和ECC域中的字节2076~2351共2340个字节,组成1170个字(word)。每个字S由两个字节B组成,分别为最高有效位字节MSB和最低有效位字节LSB。第n个字由个面的字节组成:
S(n)=MSB[B(2n+13)]+LSB[B(2n+12)]
其中n=0,1,2,…,1169。
从字节12到2075共2064个字节组成的数据块排列成24×43的矩阵,可以看成是由一个MSB字节组成的24×43矩阵和由一个LSB字节组成的24×43矩阵。
P校验符号用(26,24)RS码产生。43列的每一列24个字节数据再加24行和25行对应的列上2个字节的P校验字节,构成列矢量Vp。这样构成了26×43的矩阵,并且满足方程
增加P校验后,得到了一个26×43矩阵,该矩阵对角线元素重新排列得到一个新的26×43矩阵,新矩阵的每行用(45,43)RS码产生两个Q校验字节放到末端。设为VQ矢量,满足以下方程
HQ×VQ=0
其中校验矩阵为
RS码错误纠正过程分三步:①计算校正子;②计算错误位置;③计算错误值。
传统的ECC算法有迭代算法和大数逻辑译码算法,涉及到复杂的矩阵运算及较多的数学知识,而且程序实现也很复杂。具体到我们的实际情况,我们发现无论是(26,24)RS还是(45,43)RS,都只有两字节的校验位,完全可以通过直接解二元一次方程组解决,因此可采用比较简单的算法。
设校验位为Q1和Q2,校正子计算如下(以(26,24)RS码为例):
如果得到S0和S1不全为0,则可断定数据有错误。如果只有个错误,设错误值为mx,错误位为a x,可通过解下述方程组求得错误位置和错误值。
注意:解方程过程中的加、减、乘、除运算都是在GF(2 8)域上进行的,编程的时候必须对这些运算进行特殊定义。
如果计算得到的S0=0,S1≠0,则基本上可断定至少有两个错误。出现多重错误时,单独的行内和列内的纠错是无能为力的,但将阵列作为一个整体来考虑,有些多重错误还是可以纠正的。Reference Technology公司提供有一种名为Layered ECC的算法,可以取消多重错误,其核心思想是交替执行行纠错和列纠错。因为同一行的多重错误从列的角度看可能是该列的一个错误,可以先进行该列的纠错,然后再从行的角度看,可以变成单个的错误了,从而可以纠正过来。
《CD-ROM格式数据的软解码模块设计》相关文章
- › 使用CD-ROM时,屏幕提示“请将磁盘插入驱动器”
- › CD-ROM格式数据的软解码模块设计
- › 为什么CD-R可以超刻而DVD-R不能
- › CD-RW格式化时 提示"非法的请求0x8052000"
- › DVD光驱不能读取CD-R和CD-RW格式的光盘
- 在百度中搜索相关文章:CD-ROM格式数据的软解码模块设计
- 在谷歌中搜索相关文章:CD-ROM格式数据的软解码模块设计
- 在soso中搜索相关文章:CD-ROM格式数据的软解码模块设计
- 在搜狗中搜索相关文章:CD-ROM格式数据的软解码模块设计