条形码一般被用于将关键的字母数字信息转换为数字系统能够扫描和读取的符号信息,而无需每次都要将信息录入数字系统。
1D(一维)条形码只能对数字数据进行编码,在过去二十年中主要用于产品运输和追踪、系统安全、超市等场合。使用2D(二维)条形码,数据在水平和垂直方向被编码为2D符号,如下图1所示。
图1:2D条形码示例。
2D符号所能包含的数据量远大于1D符号。2D条形码解决方案可比传统1D条形码提供更大的信息密度,特别是对于那些需要对精密信息而不是简单的码信息进行编码的应用。
2D条形码技术的一些应用包括产品标签、产品信息追踪和检验、移动安全、出入境检查服务、 医疗保健 和电子商务等。
如今存在很多2D条形码算法,这催生出采用不同条形码技术的一系列应用。一般来说,有两种类型的2D条形码:1) 堆叠式2D条形码,例如PDF417和Code 49,2) 矩阵式条形码,例如QR码和数据矩阵。在这篇文章中,我们仅限于讨论数据矩阵式条形码技术[2]。
2D数据矩阵式条形码技术
2D数据矩阵式条形码包括在正方形或长方形中排列的黑色和白色模块,如图1所示。编码数据位映射到黑色和白色模块(或单元)组成的区域,称为数据区域。关于2D数据矩阵式条形码所支持的不同类型的编码方案的详细信息,请参见参考文献[2]。
数据区域由定位图形包围(定位图形的底部和左侧只包含黑色模块,而定位图形的上部和右侧由交替的白色和黑色模块组成)。数据矩阵2D条形码支持由排位图形分隔的多个数据区域,从而能容纳更多数据信息。
有两种版本的数据矩阵,一种是基于循环冗余校验( CRC )和卷积纠错,另一种是基于里德所罗门(RS)纠错。对于扫描、读取和提取数据位,基于CRC与基于RS的 数据矩阵解码 没有区别。
提取数据位之后,基于CRC的解码与基于RS的解码路径不同,因为它们的交织和纠错方法不同。