0,m-1)可能是奇或偶,也是由于这个原因,M.Blaum称这类阵列码为EVENODDcode。如果参数S忽略,则不能保证EVENODDcode的MDS性质。例如下面的(7,5)情况表3,码字之间的最小距离就是2,若第2,6列出错,是不能恢复的。表3(7,5)数组bbbbbbbbbbbbbbbbbbbbbbabbbabEVENODD码译码算法在这一节将介绍EVENODD码纠双列删错的译码方法。这两译码算法没有有限域的计算操作,只需要简单异或操作,软硬件实现简单。下面简单介绍一下EVENODD的译码算法,EVENODDcode译码算法(TwoErasureDecodingAlgorithm)假定数据块i和j损坏,0≤i<j≤m+1,有下面四种情况:i=m,j=m+1,两个校验数据块遭到损坏,要恢复校验数据块,这和编码方式一样,只需要重新构造一次就行。i<m,j=m,一个冗余校数据块和一个信息盘遭到损坏,为了能够重新恢复i数据块,首先恢复出参数S,假定然后通过下面的公式,i数据块的信息符就可以重建i<m,j=m+1,这种情况,i信息符数据块可以根据平行校验数据块进行异或,得到恢复i<m,j<m,遭到损坏的是两个信息符的数据块,不像前面三种情况那么简单首先将最后两列校验数据块的信息符异或,恢复参数S然后计算,,其中然后按照下面的顺序恢复i,j数据块的各个信息符例:假设拥有下列初始数组,如表4。我们现在将利用译码算法恢复第0和2个错误数据块的数据。表4初始数据?0?1011?1?0001?1?0011?1?1100第一步要做的就是找到公共因子S,即将这个数组最后两列相异或。我们可以很容易地得到S=1。这意味着,对角校验是奇校验。根据数组和公式(8)、(9),我们可以得到校验数组:=01010,=01010现在我们开始一个递归来恢复丢失的数据和,0≤≤3。我们让,这时计算过程如表5。