GB/T 27767-2011 二维条码 紧密矩阵码
- 名 称:GB/T 27767-2011 二维条码 紧密矩阵码 - 下载地址2
- 下载地址:[下载地址2]
- 提 取 码:
- 浏览次数:3
发表评论
加入收藏夹
错误报告
目录| 新闻评论(共有 0 条评论) |
资料介绍
ICS 35. 040 L 71
中 华 人 民 共 和 国 国 家 标 准
GB/T 27767—2011
二维条码 紧密矩阵码
Two-dimensionalbarcode—Compactmatrix code
2011-12-30发布 2012-05-01实施
中华人民共和国国家质量监督检验检疫总局中 国 国 家 标 准 化 管 理 委 员 会
发
布
GB/T 27767—2011
目 次
前言 Ⅰ
引言 Ⅱ
1 范围 1
2 规范性引用文件 1
3 术语 、定义 、缩略语和约定 1
4 符号描述 3
5 符号结构 4
6 符号生成 6
7 符号印制 22
8 符号质量 22
9 译码过程 23
附录 A (规范性附录) 码字分块参数 C语言源代码 24
附录 B (资料性附录) 位流长度的优化 26
附录 C (资料性附录) CM码符号印制的用户导则 32
附录 D (规范性附录) 纠错生成多项式 33
附录 E (资料性附录) CM码符号生成示例 36
附录 F (规范性附录) CM码专有指标的质量评级要求 40
附录 G (资料性附录) 参考译码算法 44
GB/T 27767—2011
前 言
本标准按照 GB/T 1. 1—2009给出的规则起草 。
本标准由中华人民共和国工业和信息化部提出 。
本标准由全国物品编码标准化技术委员会(SAC/TC287)归 口 。
本标准起草单位 :武汉矽感科技有限公司 、中国电子技术标准化研究所 。
本标准主要起草人 :张伟 、张也平 、刘波 、张得煜 、樊旭川 。
Ⅰ
GB/T 27767—2011
引 言
本文件的发布机构提请注意 ,声明符合本文件时 , 可能涉及第 5 章 、第 6 章 、第 9 章相关的专利的使用 。
本文件的发布机构对于该专利的真实性 、有效性和范围无任何立场 。
该专利持有人已向本文件的发布机构保证 ,他愿意同任何申请人在合理且无歧视的条款和条件下 ,就专利授权许可进行谈判 。该专利持有人的声明已在本文件的发布机构备案 。相关信息可通过以下联系方式获得 :
专利所有人 :武汉矽感科技有限公司
地址 : 武汉市东西湖区吴家山经济开发区金一路 武汉矽感光电产业园
邮政编码 : 430040
网址: http://www. syscantech. cn
联系人 : 何柳青
联系电话 : 027-61675589
传真 : 027-61675592
E-mail: helq@syscangroup. com
请注意除上述专利外 ,本文件的某些内容仍可能涉及专利 。本文件的发布机构不承担识别这些专利的责任 。
Ⅱ
GB/T 27767—2011
二维条码 紧密矩阵码
1 范围
本标准规定了紧密矩阵码的符号结构 、信息编译码方法 、纠错编译码方法 、信息排布方法 、参考译码算法以及符号质量要求等技术内容 。
本标准适用于紧密矩阵码的生成与识读 。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的 。凡是注 日期的引用文件 ,仅注 日期的版本适用于本文件 。凡是不注日期的引用文件 ,其最新版本(包括所有的修改单)适用于本文件 。
GB/T 1988 信息技术 信息交换用七位编码字符集
GB/T 12905 条码术语
GB 18030 信息技术 中文编码字符集
GB/T 23704 信息技术 自动识别与数据采集技术 二维条码符号印制质量的检验
AIM 国际技术规范 扩展解释 :第 1部分 :识别方案与协议(简称“AIM ECI规范 ”)
3 术语、定义、缩略语和约定
3. 1 术语和定义
GB/T 12905 中界定的以及下列术语和定义适用于本文件 。
3. 1. 1
功能图形 function pattern
用于表示定位与识别特征的图形 ,包括开始图形 、结束图形 、数据段分隔图形和定位孔图形 。 3. 1. 2
开始图形 startpattern
用于表示符号开始的图形 。
3. 1. 3
结束图形 stop pattern
用于表示符号结束的图形 。
3. 1. 4
定位孔图形 positioning-holepattern
用于表示 CM码列同步信息的图形 。
3. 1. 5
数据段分隔图形 data-segmentseparatingpattern
用于将编码区域进行分隔的图形 。
3. 1. 6
掩模 masking
为使符号中深色(低反射率)模块与浅色(高反射率)模块的分布均衡 ,并使符号编码区域中出现功
1
GB/T 27767—2011
能图形的可能性降为最低 ,用掩模图形与数据编码区域的图形进行异或处理 。
3. 1. 7
版本 version
用于指示 CM码高度方向模块数的参数 。
3. 1. 8
纠错等级 errorcorrection level
指明 CM码中纠错码字所占比例的参数 。
3. 1. 9
格式信息 formatinformation
CM码符号相关的参数信息 。CM码的格式信息包括 :数据段编号 、数据段总数 、纠错等级 、掩模类型和码字交错标志 。
3. 1. 10
格式信息区域 formatinformation area
用于对格式信息及其纠错信息进行编码的区域 ,位于每个数据段开始的连续 7个码字区域 。
3. 1. 11
数据编码区域 data encoding area
用于对数据码字及其纠错信息进行编码的区域 。
3. 1. 12
编码区域 encoding area
由格式信息区域和数据编码区域组成的区域 。
3. 1. 13
数据段 data-segment
相邻的两个数据段分隔图形之间的编码区域 。
3. 1. 14
纠错块 errorcorrection codeword block
对码字分组后用于纠错的一组码字 。
3. 1. 15
填充位 paddingbit
用于填充数据位流最后一个码字后面容量的无含义位 ,其值为 0。
3. 1. 16
填充码字 padding codeword
当数据码字和纠错码字不能填满 CM码的容量时 ,用于填充 CM码的剩余容量的码字 。填充码字不表示有效数据 ,但参与 Reed-Solomon纠错运算 。
3. 1. 17
功能码 function code
用于指示属于特定应用或特定功能的 CM码符号的代码 。
3. 2 缩略语
下列缩略语适用于本文件 :
ABS— 绝对值(Absolute Value)
CM码— 紧密矩阵码(CompactMatrix Code)
DIV— 整除运算(Division)
ECI— 扩展解释(Extended ChannelInterpretation)
2
GB/T 27767—2011
FNC— 功能码(Function Code)
GF— 伽罗瓦有限域(Galois Field)
3. 3 约定
下列表示适用于本文件 :
(…) BIN — 表示括号中的内容使用二进制表示
(…) HEX — 表示括号中的内容使用十六进制表示
4 符号描述
4. 1 基本特征
4. 1. 1 可编码信息
CM码可编码以下信息 :
a) 数字字符(数字 0~ 9,GB/T 1988中值 48至 57) ;
b) 大写字母(字母 A~Z,GB/T 1988中值 65至 90) ;
c) 小写字母(字母 a~z,GB/T 1988中值 97至 122) ;
d) 汉字字符(GB 18030) ;
e) 8位字节型数据 。
4. 1. 2 数据表示法
深色单元模块表示二进制“1”,浅色单元模块表示二进制“0”。
4. 1. 3 符号规格
CM码有 32个可选版本 ,每个版本可采用 1 到 32个数据段 ,共有 32× 32种规格 ,符号规格从 39× 18模块到 1093×483模块(这 里 符 号 的 开 始 图 形 和 结 束 图 形 的 宽 度 均 以 2 模 块 宽 度 计 算 , 见 5. 3 和5. 4) 。符号每增加一个版本 ,高度方向增加 15个模块 ;符号每增加一个数据段 ,宽度方向增加 34个模块 。
4. 1. 4 符号容量
使用最低纠错等级的最大版本 、最多数据段的 CM码的容量如下 :
a) 138462个数字 ;
b) 92 311个大写字母 ;
c) 92 311个小写字母 ;
d) 76 925个数字字母混合字符 ;
e) 35 503个 GB 18030双字节 1 区或双字节 2 区内的字符 ,或 28 843个 GB 18030双字节字符 ,或 14421个 GB 18030 四字节字符 ;
f) 57 686个字节 。
4. 1. 5 纠错等级
8个纠错等级 ,每级中纠错码字占总码字的比例为 :
a) 1 级 :8% ;
b) 2 级 :16% ;
c) 3 级 :24% ;
3
GB/T 27767—2011
d) 4级 :32% ;
e) 5 级 :40% ;
f) 6级 :48% ;
g) 7级 :56% ;
h) 8级 :64% 。
纠错码字的个数为总码字个数的上述百分比(向下舍入) 。 当 CM 码的总码字数大于 511时 ,需要将码字分割成多个纠错块 ,在每个纠错块内分别分配纠错码字 。码字的分块和纠错码字的分配方法见6. 6. 2 和附录 A。
4. 2 附加特征
4. 2. 1 结构链接
允许用不多于 16个的 CM码在逻辑上连续地表示数据文件 。在多顺序扫描状态下应保持原始顺序与数据正确连接 。
4. 2. 2 掩模
使符号中深色模块与浅色模块均匀分布 , 同时使符号编码区域中出现功能图形的可能性降为最低 。 4. 2. 3 支持 ECI协议
ECI协议(见“AIM ECI规范 ”)使 CM 码可以表示缺省字符集以外的字符(如阿拉伯字符 、古斯拉夫字符 、希腊字符等) ,及其他数据解释(如用一定的压缩方式表示的数据) ,或者具体应用的编码要求 。
5 符号结构
5. 1 概述
每个 CM码由矩形模块组成的矩形阵列构成 , 它由编码区域和功能区域组成 , 功能区域包括开始图形 、结束图形 、数据段分隔图形以及定位孔图形 。数据段分隔图形和定位孔图形存在交叉 ,交叉部分既作为数据段分隔图形的一部分 ,也作为定位孔图形的一部分 。功能区域不用于数据编码 。符号的四周为空白区 。 图 1是以版本 2且 2个数据段的 CM码为例的结构图 。
图 1 符号结构图
4
GB/T 27767—2011
CM 码被设计用于接触式扫描解码 , 扫描时应使扫描线平行于数据段分隔图形 ,从 CM 码的一侧(开始图形或结束图形)往另一侧进行扫描 。
5. 2 版本和数据段
CM码有 32个可选版本(1~ 32) ,每个版本有 32个可选数据段(1~ 32) 。 规定图 1 的水平方向为CM码的宽度方向 ,竖直方向为 CM码的高度方向 。CM码高度方向的模块数为 15×V+3个 ,V 为 CM码的版本 ;宽度方向的模块数为 34×S+1+H+T,S为 CM 码的数据段个数 , H 为开始图形的宽度 , T 为结束图形的宽度 ,见 5. 3 和 5. 4。 图 2 为版本和数据段个数变化示意图 。
图 2 符号的版本和数据段样图
5. 3 开始图形
开始图形用于指示符号的开始 ,其宽度方向的模块数大于或等于 2,较多的模块数能提高开始图形被探测到的可能性 。开始图形的高度方向由 15个深色模块和浅色模块按照 3:2: 1: 1: 1:2:2: 3 的序列重复排列而成 ,重复的次数与版本数相等 ,最后以 3个深色模块结束 。 图 3 为版本 3 的 CM码的开始图形顺时针旋转 90°后的结构图 。
图 3 符号的开始图形
5
GB/T 27767—2011
5. 4 结束图形
结束图形用于指示符号的结束 ,其宽度方向的模块数大于或等于 2,较多的模块数能提高结束图形被探测到的可能性 。结束图形的高度方向由 15个深色模块和浅色模块按照 3: 1:2: 3:2:2: 1: 1 的序列重复排列而成 ,重复的次数与版本数相等 ,最后以 3个深色模块结束 。 图 4 为版本 3 的 CM码的结束图形顺时针旋转 90°后的结构图 。
图 4 符号的结束图形
5. 5 数据段分隔图形
数据段分隔图形宽度为一个模块 ,全部由深色模块组成 ,其作用是将编码区域分隔成多个数据段 ,见图 1。
5. 6 定位孔图形
定位孔图形包括上下两条齿孔状的图形 。每条定位孔图形高度为 3 个模块 ,上下两行由深色模块组成 , 中间一行由浅色模块和深色模块交替排列组成 ,见图 1。
5. 7 数据段
每个 CM码有 1个或者多个数据段 ,每个数据段由码字对应的图形无缝排列而成 ,这些码字包括数据码字 、纠错码字以及格式信息码字 。每个数据段的宽度固定为 33个模块 ,高度为 15×V-3个模块 , V 为符号版本 。
5. 8 空白区
空白区为环绕在符号四周的至少 6个模块宽的区域 ,其深浅应与浅色模块相同 ,见图 1。
6 符号生成
6. 1 生成过程
CM码的生成过程包括以下步骤 :
a) 数据分析 :分析输入的数据 ,确定数据的数据编码模式 。对不同的数据类型 ,CM 码采用不同的数据编码模式进行编码 ,见 6. 3。每种模式有各自的编码规则 。
b) 数据编码 :将输 入 数 据 按 照 其 编 码 模 式 对 应 的 编 码 规 则 转 换 为 位 流 。 当 需 要 进 行 模 式 切 换时 ,在新模式数据编码前输出模式转换码 。将编码产生的位流按每 9 位对应一个码字的方式
6
GB/T 27767—2011
转换为数据码字流 ,最后一个码字不足 9位时用 0填充 。
c) 纠错编码 :将数据码字进行分块(见 6. 6. 2) 。对每块码字分别生成纠错码字 ,并将纠错码字添加到该块数据码字的后面 。
d) 在矩阵中布置功能图形 : 将开始图形 、结束图形 、数据段分隔图形以及定位孔图形 排 列 到 矩阵中 。
e) 排列数据码字和纠错码字 :将数据码字和纠错码字的图形排列到矩阵中 。
f) 格式信息 :将格式信息及其纠错信息组装成码字填充到符号中 。
g) 掩模 :用 4种掩模类型依次对符号进行掩模处理 ,评估得到的 4 种结果 ,选择最优的一种作为掩模结果 。
6. 2 数据分析
对输入数据进行类型分析 ,按类型划分成多个段 ,使编码得到的位流尽量短 。位流长度优化的一种方法参见附录 B。
6. 3 模式指示
6. 3. 1 模式分类
CM码的编码模式分数据编码模式 、ECI模式和功能码模式三类 ,各种模式由确定的模式指示符指示 。表 1列出了所有的模式指示符 。
表 1 模式指示符
模式分类
模式名称
模式指示符
说 明
数据编码模式
汉字模式
(0001) BIN
每个字符用 13位二进制进行编码 。见 6. 4. 1
数字模式
(0010) BIN
每 3个字符用 10位二进制进行编码 。见 6. 4. 2
小写字母模式
(0011) BIN
每个字符用 5 位二进制进行编码 。见 6. 4. 3
大写字母模式
(0100) BIN
每个字符用 5 位二进制进行编码 。见 6. 4. 4
数字字母混合模式
(0101) BIN
每个字符用 6位二进制进行编码 。见 6. 4. 5
控制字符模式a
—
每个字符用 6位二进制进行编码 。见 6. 4. 6
字节模式
(0111) BIN
每个字符用 8位二进制进行编码 。见 6. 4. 7
ECI模式
ECI
(1100) BIN
见 6. 4. 8
功能码模式
FNC1
(1000) BIN
功能码 1,GS1应用标识 。见 6. 4. 9. 1
(1011) BIN
功能码 1,AIM应用标识 。见 6. 4. 9. 1
FNC2
(1001) BIN
功能码 2,结构链接功能 。见 6. 4. 9. 2
FNC3
(1010) BIN
功能码 3,识读设备初始化数据 。见 6. 4. 9. 3
a 只允许从小写字母模式 、大写字母模式或数字字母混合模式进行切换(见 6. 4. 6. 2 和 6. 5. 1) 。
6. 3. 2 数据编码模式
数据编码模式包括汉字模式 、数字模式 、小写字母模式 、大写字母模式 、数字字母混合模式 、控制字符模式和字节模式 ,见表 1。
7
GB/T 27767—2011
6. 3. 3 ECI模式
ECI模式只能出现在数据的开头或 “模式结束 ”转换码(见 6. 5. 1)之后 。ECI模式的模式指示符之后为 ECI任务号 ,编码方法见 6. 4. 8。
6. 3. 4 功能码模式
功能码分 FNC1、FNC2和 FNC3三类 ,其中 FNC1包括两种模式指示符 ,分别对应两种应用标识 ,见表 1。功能码只能在 CM码的开头出现 。一个 CM 码使用功能码时 ,其模式指示符应出现在数据编码位流的前面 。一个 CM码最多可以使用两个功能码 。
6. 3. 5 无效的模式指示符
模式指示符(0000) BIN、(0110) BIN、(1101) BIN、(1110) BIN 和(1111) BIN表示无效 。
6. 4 数据编码模式
6. 4. 1 汉字模式
6. 4. 1. 1 编码字符
可编码字符包括 :
a) GB 18030双字节 1 区及双字节 2 区的字符(即第一字节值在(A1) HEX 至(A9) HEX 或(B0) HEX 至(F7) HEX之间 ,且第二字节值在(A0) HEX至(FF) HEX之间的部分) ;
b) “回车换行 ”(GB/T 1988中值 13、10的组合) ;
c) 数字对“00”到“99”;
d) 8位字节型数据 。
注 : GB 18030除双字节 1 区及双字节 2 区以外的字符不能用汉字模式编码 ,可用字节模式编码 。
6. 4. 1. 2 编码规则
汉字模式采用 13位二进制进行编码 。
当一个 GB 18030双字节字符第一字节值在(A1) HEX 至(A9) HEX 之间 ,且 第 二 字 节 值 在(A0) HEX 至(FF) HEX之间时 ,按式(1)计算该字符的 13位编码 :
N = (C1 - (A1) HEX) × (60) HEX + (C2 - (A0) HEX) … … … … … … … … ( 1 )
式中 :
N — 字符的 13位编码 ;
C1 —GB 18030编码的第一字节值 ;
C2 —GB 18030编码的第二字节值 。
当一个 GB 18030双字 节 字 符 第 一 字 节 值 在(B0) HEX 至(F7) HEX 之 间 , 且 第 二 字 节 值 在(A0) HEX 至(FF) HEX之间时 ,按式(2)计算该字符的 13位编码 :
N = (C1 - (B0) HEX + 9) × (60) HEX + (C2 - (A0) HEX) … … … … … … … ( 2 )
式中 :
N — 字符的 13位编码 ;
C1 —GB 18030编码的第一字节值 ;
C2 —GB 18030编码的第二字节值 。
式(1)及式(2)定义了 0 至 7775之间的编码值 , 以下方式用于定义 7776至 8191的编码值 :
a) 7776赋给“回车换行 ”符 ;
8
GB/T 27767—2011
b) 7777至 8032赋给 8 位字节数据(0至 255) ,用于编码混在汉字信息中的非汉字数据 ,减小个别非汉字模式的数据嵌在一段汉字中导致的模式转换开销 ;
c) 8033至 8132赋给数字对“00”到“99”;
d) 8160至 8165用于实现模式的转换 ,见 6. 5. 1;
e) 编码值 8133至 8159及编码值 8166至 8191是无效的 。
两个编码示例见表 2。
表 2 汉字编码示例
步骤
说 明
例 1
例 2
1
输入字符
多
2
GB 18030编码
(A3A4) HEX
(B6E0) HEX
3
代入公式(1)或公式(2)
((A3) HEX -(A1) HEX ) × (60) HEX
+((A4) HEX -(A0) HEX )
((B6) HEX -(B0) HEX +9) × (60) HEX
+((E0) HEX -(A0) HEX )
4
计算结果
(C4) HEX
(5E0) HEX
5
转化为 13位二进制值
0000011000100
0010111100000
6. 4. 2 数字模式
6. 4. 2. 1 编码字符
可编码字符包括 :
a) 数字 0 至 9(GB/T 1988值 48~ 57) ;
b) “空格 ”(GB/T 1988值 32) ;
c) “+ ”(GB/T 1988值 43) ;
d) “- ”(GB/T 1988值 45) ;
e) “. ”(GB/T 1988值 46) ;
f) “,”(GB/T 1988值 44) ;
g) “回车换行 ”(GB/T 1988值 13、10的组合) 。
6. 4. 2. 2 编码规则
以连续的三个数字为一组将数据分组 ,每 3个数字采用 10位二进制进行编码 。遇到非数字字符则将该字符包含到分组中 ,每组中最多只能有一个非数字字符 ,多余的非数字字符不能用数字模式编码 。末尾一组不够三个数字用 0填充 。在输出第一组数字的编码前先输出 2 位计数器 ,记录最后一个分组填充的数字个数 ,译码时根据该计数器丢弃填充数字 :
a) “00”表示没有填充数字 ;
b) “01”表示有 1个填充数字 ;
c) “10”表示有 2个填充数字 ;
d) “11”为无效编码 。
编码只有数字字符的组时 ,按式(3)计算该组的 10位编码 :
N = 100D1 + 10D2 + D3 … … … … … … … … … … ( 3 )
式中 :
N — 数字组的 10位编码 ;
D1— 数字组的第一个数字 ;
9
GB/T 27767—2011
D2— 数字组的第二个数字 ;
D3— 数字组的第三个数字 。
当分组中包含非数字字符时 ,非数字字符出现在分组中的位置有三种情况 ,分别是(X 表示非数字字符) :第 1位置为 XD1 D2 D3 ;第 2位置为 D1 XD2 D3 ;第 3位置为 D1 D2 XD3 。
同一个非数字字符处在不同的位置有不同的编码 ,非数字字符在不同位置时的赋码见表 3。
表 3 非数字字符赋码表
字 符
在分组中的位置
编码(十进制数)
“空格 ”(GB/T 1988中值 32)
1
1000
2
1001
3
1002
“+ ”(GB/T 1988中值 43)
1
1003
2
1004
3
1005
“- ”(GB/T 1988中值 45)
1
1006
2
1007
3
1008
“. ”(GB/T 1988中值 46)
1
1009
2
1010
3
1011
“,”(GB/T 1988中值 44)
1

