食品溯源系统编码的自动生成(3)

2019-05-18 14:21

PDF417很难实现全方位识读。

(3) 能够有效地表示中国汉字、日本汉字

QR code表示汉字的效率是在全部的二维条码中是最高的。QR code通过一种特定的压缩方法表示日本汉字和中国汉字,表示一个汉字只需要“13bit”。而PDF417,Data Matrix等二维条码表示汉字时只能使用字节表示模式“16bit”。因此,与其它的二维条码相比,QR code在表示汉字上提高了近20%的效率。

QR code除具有基本的二维条码优点,还具有高效的表示汉字,在表示同样的数据信息时,QR码具有更小的尺寸,更适合在我国推广和使用。因此,在我国使用和推广QR code具有光明的前景。 2.3.1 QR码的码图结构

QR码符号是一个方形模块组成的正方形阵列,该阵列包括编码区域(由格式信息、版本信息以及数据和纠错码字组成)和功能图形(由寻像图形、分隔符、定位图形以及校正图形组成),编码区域是用于对数据或纠错码字进行编码的区域,而功能图形是指符号中用于符号定位与特征识别的特定图形。符号周围是空白区,以版本7的QR码为例,它的符号结构图如图2-2所示。

图2-2 QR码符号结构图

(1) 寻像图形

寻像图形包括三个相同的位置探测图形,分别位于符号的左上角、右上角和左下角,如图2-2所示。每个位置探测图形是由三个重叠的同心正方形组成,它们分别为7×7个深色模块、5×5个浅色模块和3×3个深色模块。位置探测图形的结构见图2-3,其模块宽度比为l:l:3:l:l。在QR码符号中的其他地方遇到类似图形的可能性极小,因此可以在视场中迅速地识别可能的QR码符号。识别组成寻像图形的三个位置探测图形可以明确地确定视场中符号的位置和方向。

7

图2-3 位置探测图形结构

(2) 分隔符

在每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,它全部由浅色模块组成。分隔符用于将位置探测图形与符号的其余部分分开。

(3) 定位图形

水平和垂直的定位图形分别为一个模块宽的一行和一列,由深色与浅色模块交替组成,其开始和结尾都是深色模块。水平定位图形位于符号上侧的两个位置探测图形之间,在第7行;垂直定位图形位于符号左侧的两个位置探测图形之间,在第7列。定位图形能提供决定模块坐标的基准位置。

(4) 校正图形

校正图形是用于确定矩阵符号位置的一个固定的参照图形,在图像有一定程度损坏的情况下,译码软件可以通过它同步图像模块的坐标映像。每个校正图形可看作是3个重叠的同心正方形,由5×5个深色模块、3×3个浅色模块以及位于中心的一个深色模块组成,校正图形的数量根据QR码符号的版本号而定,版本2以上(含版本2)才有校正图形。

(5) 格式信息

格式信息是包含符号所使用的纠错等级以及掩模图形信息的功能图形,用于对编码区域的剩余部分进行译码。它在符号中出现两次以提供冗余,因为它的正确译码对整个符号的译码至关重要。格式信息为15位,其中有5个数据位,包括纠错等级指示符和掩模图形参考;10个是用BCH(15,5)编码计算得到的纠错位。

(6) 版本信息

版本信息用于表示符号规格的系列,同时也可指示符号所应用的纠错等级。它是一个由6个数据位和12个BCH纠错位组成的18位的序列。由于版本信息的正确译码是整个符号正确译码的关键,因此版本信息在符号中也出现两次以提供冗余。6行×3列模块组成的版本信息块放在水平定位图形的上侧,其右侧紧邻符号右上角位置探测图形的分隔符,3行×6列模块组成的版本信息块放在垂直定位图形的左侧,其下侧紧邻符号左下角位置探测图形的分隔符。

(7) 空白区

空白区为环绕在符号四周的4个模块宽的区域,其反射率应该与浅色模块相同。 2.3.2 QR码的编码模式

QR码的编码字符集包括数字型数据、字母数字型数据、8位字节型数据和中国汉字字

8

符。对应不同的字符集,QR码采用不同的模式来进行编码。

(1) 扩充解释(ECI)模式

扩充解释(ECI)协议允许输出的数据流有与缺省的字符集不同的解释。ECI协议在一些码制中有一致的定义。QR码支持以下4类:(1)国际字符集;(2)用于诸如加密或压缩等一般目的的解释;(3)闭环系统中用户自定义的解释;(4)无缓冲模式中用于结构链接的控制信息。

ECI协议在AIM ECI规范中有全面的定义,协议提供了一个对印刷前和译码后的字节值进行详细解释的方法。QR码缺省的解释是ECI000020,表示ASCII字符集。如果最初的ECI不是缺省的ECI,则将输入数据转换为一个位流时,在其前面要有ECI标头,后接一个或多个不同模式的段,每段的结构包括模式指示符、字符计数指示符和数据位流。如果是以缺省的ECI开始,位流的开头则为第一个模式的指示符。

ECI标头应包含ECI模式指示符和ECI指定符。表2.1给出了每个模式的模式指示符,表2.2出了采用不同模式和符号版本的字符计数指示符的长度。

表2.1 模式指示符

模式 ECI模式 数字模式 字母数字模式 8位字节模式 中国汉字模式 结构连接 FNCI 指示符 0111 0001 0010 0100 1101 0011 0101(第一位置) 1001(第二位置)

表2.2 字符计数指示符的长度

版本 1-9 10-26 27-40 数字模式 字母数字模式 8位字节模式 10 9 8 12 11 16 14 13 16 中国汉字模式 8 10 12

由于本课题研究的编码算法中采用的编码模式都是根据缺省的ECI有关的字符值与任务定义的,故对ECI模式不再详述。

(2) 数字模式

数字模式对十进制数字0-9编码,通常的密度为每10位二进制数表示3个字符。数字模式编码将输入的数据每三位分为一组,将每组数据转换为10位二进制数。如果输入数据的长度不是3的整数倍,剩余的1位或2位数字应分别转换为4位或者7位二进制数。转换后将得到的二进制数据序列连接起来并在前面加上模式指示符(0001)和字符计数指示符。数字模式中,字符计数指示符的长度如表2.2中定义的有10、12或14位,输入数据字符的数量转换为10、12或14位二进制数后,放置在模式指示符之后,二进制数据序列之前。

例如符号版本1.H,输入的数据为0123456789 分为3位一组:012 345 678 9

将每组转换为二进制数:012->0000001 100 345->010101 1001 678->1010100110 9->1001

9

将二进制数连接为一个序列:0000001100 0101011001 1010100110 1001

将字符计数指示符转换为二进制(版本1.H为l0位):输入字符个数10->0000001010加入模式指示符0001以及字符计数指示符后的二进制序列为:0001 00000010100000001100 0101011001 1010100110 1001

数字模式中位流长度计算公式为:

B=4+C+10(D div 3)+R ( 2.1 )

其中B=位流的长度;C=字符计数指示符的长度(见表2.2);D=输入数据的字符个数;当D mod 3=0时R=0;当D mod 3=1时R=4;当D mod 3=2时R=7。

(3) 字母数字模式

字母数字模式对45个字符进行编码,即10个数字(0-9)、26个字母字符(A~Z)以及9个符号(space,$,%,·,+,-,.,/,:)。通常情况下两个输入字符用11位表示。该模式对每一个输入的字符赋予一个数值,它的值为0到44。

字母数字模式将每两个输入的数据分为一组,用11位二进制表示,将第一个字符的值乘以45与第二个字符的值相加,再将所得的结果转换为1l位二进制数。如果输入数据的字符数不是2的整数倍,将最后一个字符编码为6位二进制数。转换完成后将所得的二进制数据连接起来并在前面加上模式指示符(0010)和字符计数指示符,在字母数字模式中,字符计数指示符的长度为9,11或13位。

例如(符号版本1.H),输入的数据为:PDF 417(注:F与4之间有space)

根据附录A的表A-1查出字符的值:PDF 417->(25,13,15,36,4,1,7) 将结果分为2个一组:(25,13)(15,36)(4,1)(7) 将每组数据转换为11位二进制数

(25,13)25*45+13=1138->10001110010 (15,36)15*45+36=711->010110001l1 (4,1)4*45+1=181->000101 10101 (7) 7->00011l

将二进制数据顺次连接得到的位流:10001110010 01011000111 00010110101 00011l 将字符计数指示符转换为二进制(版本1.H为9位):输入字符个数7->000000111

在二进制数据前加上模式指示符0010和字符计数指示符后得到的二进制序列为:0010000000111 10001110010 01011000111 00010110101 000111

字母数字模式的位流长度计算公式为:

B=4+C+11(D div 2)+6(D mod 2) ( 2 .2 )

其中B=位流的长度;C=字符计数指示符的长度(见表2.2);D=输入数据的字符个数。 (4) 8位字节模式

8位字节模式用于表示ASCII字符集(字符值为00HEX~FFHEX),其编码密度为每个字符8位。在本模式中一个8位码字直接表示一个输入数据字符的ASCII字符值。在非缺省的其他ECI中,它直接表示一个8位字节的值。

8位字节模式将输入数据的ASCII码值依次转换为二进制数据,将二进制数据连接起来并在前面加上模式指示符(0100)和字符计数指示符,按表2.2的规定,8位字节模式的字符计数指示符长度为8位或者16位,将输入字符个数转换为8位或16位二进制数据放在模式指示符之后,二进制数据序列之前。

例如(符号版本1.H),输入的数据为:QR Code(注:两个单词之间有space) 查ASCII表得到字符值为:QR Code->(81,82,32,67,111,100,101)

将每个字符值转换为8位二进制数得到位流01010001 01010010 00100000 01000011 01101111 01100100 01100101

10

将字符计数指示符转换为二进制(版本1.H为8位):输入字符个数7->000001l1l

在二进制数据前加上模式指示符0100和字符计数指示符后得到的二进制序列为:0010 00000111 01010001 01010010 00100000 0100001l 01101111 01100l00 01100101

8位字节模式的位流长度计算公式为:

B=4+C+8D ( 2.3 )

其中B=位流的长度;C=字符计数指示符的长度(见表2.2);D=输入的数据字符个数。 (5) 中国汉字模式

中国汉字模式用于表示GB2312规定的双字节表示的中国汉字和非汉字字符,其字符值为GB2312规定字符对应的内码值,详见GBl8030,每个双字节字符由13位二进制数表示。GB2312中规定的中国汉字和非汉字字符共7445个,其中汉字字符6768个。

中国汉字模式将输入数据字符值按下述方式转换为13位二进制数。随后将二进制数据连接起来并在前面加上模式指示符(1101),中国汉字子集指示符(GB2312的子集指示符为0001)和字符计数指示符。中国汉字子集指示符为4位二进制数,字符计数指示符的长度按表2.2规定为8,10或12位,将字符计数指示符转换为相应的8,10或者12位二进制数,放在模式指示符之后,二进制数据序列之前。

方式l:对于第一字节值在A1HEX到AAHEX范围,第二字节值在A1HEX到FEHEX范围的字符:(第一字节值--A1HEX)×60HEX+(第二字节值--A1HEX)->将结果转换为13位二进制串。

方式2:对于第一字节值在B0HEX到FAHEX范围,第二字节值在A1HEX到FEHEX范围的字符:(第一字节值--A6HEX)×60HEX+(第二字节值--A1HEX)->将结果转换为13位二进制串。

例如(符号版本1.H),输入的数据为:“安”,其内码值为B0B2 采用方式2:(B0-A6)X 60+(B2-A1)=3C0+1l=3D1 将结果转换为13位二进制数0001 1 l 1010001 中国汉字模式的位流长度计算公式为:

B=4+4+C+13D (2.4) 其中B=位流的长度;C=字符计数指示符的长度(见表2.2);D=输入的数据字符个数。 (6) 混合模式

QR码符号可以包含多种模式表示的混合数据序列。根据数据内容的要求或者为了增加编码密度,可以从一种模式转换到另一种模式来分段表示数据,每一段数据按照各自采用的模式所给出的编码规则进行编码。混合模式的基本结构为模式指示符、字符计数指示符、数据,其后紧跟下一段的模式指示符。图2-4为有n段数据的混合模式的结构。

图2-4 混合模式数据结

11


食品溯源系统编码的自动生成(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广州市轨道交通三号线盾构工程项目部 QC小组活动成果--控制广深

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: