四一七条码采用Reed-Solomon错误控制算法(简称RS码)对数据码字进行纠错编码和译码。RS码是一类可以纠正多个随机错误的多进制循环码。对于一组给定的数据码字,根据不同的码字个数采用相应的纠错等级,错误纠正码字根据Reed-Solomon错误控制码算法计算。
对于一个给定的错误纠正等级,其错误纠正容量由下式确定:
式中: e-拒读错误数目; t-替代错误数目;
s-错误纠正等级; d-错误纠正码字数目。
错误纠正码字的总数为2s+1。其中,两个用于错误检测。其余的错误纠正码字用于错误纠正。用一个错误纠正码字恢复一个拒读错误,用两个错误纠正码字纠正一个替代错误。
当被纠正的替代错误数目小于4时(s=0除外),错误纠正容量由下式确定:
e+2t ≤ d-3
对于一组给定的数据码字,错误纠正码字根据RS错误控制码算法计算。
(1)建立符号数据多项式
(2)建立纠正码字的生成多项式
(3)产生错误纠正码字
对一组给定的数据码字和一选定的错误纠正等级,错误纠正码字为符号数据多项式d(x)乘以xk,然后除以生成多项式g(x),所得为余式的各系数的补数。
注:解码、编码和纠错程序见本刊网站www.dpj.com.cn。
图7
4 结 论
本文提供了一种简单可行的PDF417二维条码译码和编码的方案。利用PDF417二维条码具有信息容量大、编码范围广、容错能力强、译码可靠性高、保密防伪性好、成本低、条码形状和尺寸可变等优点,使SE923HS扫描头和W77E58微控制器结合,成本低、可行性强。在小数据量(小于1000字节)和较低纠错级别(5级以下)时,编码和纠错时间在10s之内,处理速度优势明显。