GB/T27766-2011

二维条码网格矩阵码

Two-dimensionalbarcode-Gridmatrixcode

本文分享国家标准二维条码网格矩阵码的全文阅读和高清PDF的下载,二维条码网格矩阵码的编号:GB/T27766-2011。二维条码网格矩阵码共有64页,发布于2012-05-01
  • 中国标准分类号(CCS)L71
  • 国际标准分类号(ICS)35.040
  • 实施日期2012-05-01
  • 文件格式PDF
  • 文本页数64页
  • 文件大小1.17M

二维条码网格矩阵码


国家标准 GB/T27766一2011 二维条码网格矩阵码 Tw0-diensionalbarcode一Gridmatrixcode 2011-12-30发布 2012-05-01实施 国家质量监督检验检疫总局 发布 国家标准化管理委员会国家标准
GB/27766一2011 目 次 前言 引言 范围 规范性引用文件 术语、定义、缩略语和约定 符号描述 符号结构 符号生成 符号印制 符号质量 22 译码过程 2: 10数据传输 2 附录A(规范性附录)码字分块参数C语言源代码 26 附录B(资料性附录)位流长度的优化 36 附录c资料性附录)GM码印制的用户导则 附录D(规范性附录)纠错生成多项式 43 附录E(资料性附录参考译码算法 50 参考文献 5
GB/T27766一2011 前 言 本标准按照GB/T1.1一2009给出的规则起草 本标准由工业和信息化部提出 本标准由全国物品编码标准化技术委员会(SAC/TC287)归口 本标准起草单位:武汉砂感科技有限公司、电子技术标准化研究所 本标准主要起草人:张伟、张也平,刘波、张得煜、樊旭川
GB/27766一2011 引 言 本文件的发布机构提请注意,声明符合本文件时,可能涉及第5章,第6章,第9章,第10章相关的 专利的使用 本文件的发布机构对于该专利的真实性、有效性和范围无任何立场 该专利持有人已向本文件的发布机构保证,他愿意同任何申请人在合理且无歧视的条款和条件下, 就专利授权许可进行谈判 该专利持有人的声明已在本文件的发布机构备案 相关信息可通过以下联 系方式获得: 武汉砂感科技有限公司 专利所有人: 地址 武汉市东西湖区吴家山经济开发区金一路武汉砂感光电产业园 邮政编码 430040 网址: http://www.syscantech.cn 联系人 何柳青 联系电话 027-61675589 传真 027-61675592 E-mail: helq@syscangroup.com 请注意除上述专利外,本文件的某些内容仍可能涉及专利 本文件的发布机构不承担识别这些专 利的责任
GB/T27766一2011 二维条码网格矩阵码 范围 本标准规定了网格矩阵码的符号结构、信息编译码方法、纠错编译码方法、信息排布方法、参考译码 算法以及符号质量要求等技术内容 本标准适用于网格矩阵码的生成与识读 规范性引用文件 下列文件对于本文件的应用是必不可少的 凡是注日期的引用文件,仅注日期的版本适用于本文 件 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件 GB/T1988信息技术信息交换用七位编码字符集 GB/T12905条码术语 GB18030信息技术中文编码字符集 GB/T23704信息技术自动识别与数据采集技术二维条码符号印制质量的检验 1sO/IEC15424信息技术自动识别与数据采集技术数据载体标识符 AIM国际技术规范扩展解释第1部分;识别方案与协议(简称“AIMECI规范” 术语、定义、缩略语和约定 3.1术语和定义 GB/T12905中界定的以及下列术语和定义适用于本文件 3.1.1 纠错块errorcorreetioncodewordblock 对码字分组后用于纠错的一组码字 3.1.2 边框frame 宏模块的最外20个单元模块,这些单元模块同为深色(低反射率)或同为浅色(高反射率). 3.1.3 层 layer 环绕中心宏模块的宏模块圈 3.1.4 层标识号layerIDnumber 赋予宏模块左上角的两个单元模块的值,该值根据纠错等级以及宏模块所在的层号确定,可用于指 明GM码的方向 3.1.5 macromodule 宏模块 GM码的子结构,由6×6个单元模块组成
GB/27766一2011 3.1.6 单元模块mdule 组成GM码的基本单元,每个单元模块表示一个二进制位 3.1.7 填充位paddingbhit 用于填充数据位流最后一个码字后面容量的无含义位,其值为0. 3.1.8 填充码字padding c0de0rd 当数据码字和纠错码字不能填满GM码的容量时,用于填充GM码的剩余容量的码字 填充码字 不表示有效数据,但参与Reed-Solomon n纠错运算 3.1.9 版本 version 用于表示GM码规格的序列号 3.1.10 功能码twnetiwn c0de 用于指示属于特定应用或特定功能的GM码符号的代码 3.1.11 纠错等级 errOrcOrrecti0nleyel 指明GM码中纠错码字所占比例的参数 3.2缩略语 下列缩略语适用于本文件 ABS 绝对值(AbsoluteValue DIV 整除运算(Divi 1sion ECI 扩展解释(ExtendedChannell Interpretation FNC 功能码(FunetionCode) GF 伽罗瓦有限域(GaloisField) GM码 -网格矩阵码(GridMatrixCode) MOD 模运算,求整除后的余数Modulut us 3.3约定 下列表示适用于本文件 -表示括号中的内容使用二进制表示 )N 表示括号中的内容使用十六进制表示 ()Ex 表示不超过r的最大整数 L.?' 表示不小于的最小整数 符号描述 基本特征 可编码信息 GM码可编码以下信息:
GB/T27766一2011 a数字字符(数字0~9,GB/T1988中值48至57); b 大写字母(字母AZ.GB/T1988中值65至90); 小写字母(字母a一z,GB/T1988中值97至122); d)汉字字符(GB18030); 8位字节型数据 e 4.1.2数据表示法 深色单元模块表示二进制“1”,浅色单元模块表示二进制“0” 4.1.3符号规格 GM码的规格为3×3宏模块到27×27宏模块,对应于版本1到版本13,每一版本GM码比前一 版本每边增加2个宏模块,见表1 表1各版本GM码的结构 单元模块数 层数 总码字数 版本 宏模块数 (不包括中心宏模块 不包括空白区 数据十纠错码字) 18 3×3 18×18 5×5 30×30 50 7×7 42×42 98 54×54 9×9 162 1×11 66×66 242 78X78 13×13 338 15×15 90×90 450 17×17 102×102 578 19×19 114×114 722 10 21×21 126×126 10 882 11 11 23×23 138×138 1058 12 12 25×25 150×150 1250 113 27×27 162×162 13 1458 4.1.4符号容量 使用最低纠错等级的最大版本GM码(纠错1级版本13)的容量如下: 751个数字; a 1836个大写字母: b 836个小写字母; d 529个数字字母混合字符 705个GB18030双字节1区或双字节2区内的字符,或571个GB18030双字节字符,或285 个GB18030四字节字符; fD 1143个字节
GB/27766一2011 4.1.5纠错等级 版本1的GM码有2级到5级纠错,版本2到版本13的GM码有1级到5级纠错,每级中纠错码 字数占总码字数的比例为: a)1级:10%(不适用于版本1) b 2级:20%; 3级30%; c d4级:40%; 5级:50% e 纠错码字的个数为总码字个数的上述百分比(向下舍人),见附录A 附加特征 4.2.1 结构链接 允许用不多于16个的GM码在逻辑上连续地表示数据文件 在多顺序扫描状态下应保持原始顺 序与数据正确连接 4.2.2支持ECI协议 CI协议(见“AIMEcI规范”)使GM码可以表示缺省字符集以外的字符(如阿拉伯字符、古斯拉 夫字符,希腊字符等),及其他数据解释(如用一定的压缩方式表示的数据),或者具体应用的编码要求 符号结构 5.1概述 GM码由深色边宏模块和浅色边宏模块交错排列而成的正方形宏模块矩阵组成,矩阵每边为奇数 个宏模块,且GM码的中心与四个角上均为深色边宏模块,GM码的四周为空白区,见图1 空白区 日-口也困 uT 深色边宏模块 因函5 浅色边宏模块 习习 下四闷闪 层标识号 第2码字 第1码字 宏模块边框 GM码结构图 版本2纠错5级的GM码示意图见图2
GB/T27766一2011 A 田匹 图2版本2纠错5级的GM码示意图 5.2宏模块结构 宏模块的内部结构见图3,包括边框,两个7位的码字和层标识号 每个宏模块由6X6个单元模块无缝排列而成,深色边宏模块的最外一圈单元模块全部是深色浅 色边宏模块的最外一圈单元模块全部是浅色 宏模块的最外一圈单元模块不表示数据.用于识别与 定位 在20个边框单元模块内部总共有16个单元模块;b,b,,b 每个单元模块表示1位二进制 数.深色对应",浅色对应"o” b;和b单无模块用来表示层标识号b为高位 h,到h表示第1个 码字,b到表示第2个码字,b和分别是码字的最高位 o bab2 bsbbaab2 b, o bn b b. bd b6 b6 b pn D3 D 深色边宏模块 浅色边宏模块 图3宏模块结构 图3中两个宏模块的数据均为(2D)i和(4A) 图中第1个码字h.h 为(ooo1)m,即 (2D);第2个码字bb为(1001010)i,即(4A》 层标识号h,b,为o ,即(2) )HEx )N, )HEx 5.3宏模块的分层 GM码由边长为奇数个宏模块的方阵组成 见图4,方阵中心的宏模块称为中心宏模块,中心宏模 块(第0层)周围的8个宏模块为第1层宏模块,第1层宏模块外侧的16个宏模块为第2层宏模 块,,直至最外层宏模块 中心宏模块 -第1层 -第2层 图4宏模块的分层 宏模块的层数(不包括中心宏模块)等于GM码的版本(见表1)
GB/27766一2011 5 层标识号 每个宏模块都有一个层标识号,层标识号的取值为0~3 同一层宏模块的层标识号相同 宏模块 的层标识号由GM码的纠错等级和该宏模块所在的层号共同决定 表2是不同纠错等级的GM码各 层宏模块的层标识号 表2层标识号分布 从中心到第13层 纠等级 1 112" 中心 10 13 5.5填充码字 当数据码字和纠错码字不能正好填满GM码的容量时,在数据码字后加人填充码字 当宏模块的第1码字(b,到b)是填充码字时,应填充(0000000);当第2码字(b到b)是填充 码字,并且是码字流中的第1个填充码字时,应填充(o000000),否则应填充(1111l10),见图5 b15 b4 b13 b12 b1 br; by2 b b11 bg b1 bt b8 b b2 bo 填充的深色边宏模块 填充的浅色边宏模块 图5填充的宏模块 5.6空白区 空白区为环绕在GM码四周的不小于6个单元模块宽的区域,其反射率应与浅色单元模块相同 符号生成 生成过程 GM码的生成过程包括以下六个步骤 数据分析;分析输人的数据,确定数据的数据编码模式 对不同的数据类型.GM码采用不同 a 的数据编码模式进行编码,见6.3 每种模式有各自的编码规则 b数据编码:将输人数据按照其编码模式对应的编码规则转换为位流 当需要进行模式切换时,
GB/T27766一2011 在新模式数据编码前输出模式转换码 将编码产生的位流按每7位对应一个码字的方式转换 为数据码字流,最后一个码字不足7位时用0填充 计算GM码版本用户应选取可接受的最小纠错等级,根据表1可得到能容纳数据码字和纠错 码字的GM码版本 若用户未选取纠错等级,使用推荐的纠错等级(见6.6.2)计算GM码版 本 根据该GM码版本,采用可以容纳给定数据的最高纠错等级,并在码字流的最后添加需 要的填充码字 纠错编码;若数据码字和纠错码字总数大于127,应将数据码字进行分块(见6.6.3) 对每块 码字分别生成纠错码字,并将纠错码字添加到该块数据码字的后面 在矩阵中布置网格图形;根据GM码的版本和纠错等级,将每个宏模块的边框以及层标识号 排列到矩阵中 排列数据码字和纠错码字;若码字被分块,则对各块码字进行交错排列后得到一个单一的码字 流 将码字流按顺序排列到矩阵中,完成编码 6.2数据分析 对输人数据进行类型分析,按类型划分成多个段,使编码得到的位流尽量短 位流长度优化的一种 方法参见附录B 6 模式指示 6.3.1模式分类 GM码的编码模式分数据编码模式,ECI模式和功能码模式三类,各种模式由确定的模式指示符指 示 表3列出了所有的模式指示符 表3模式指示符 模式分类 说明 模式名称 模式指示符 汉字模式 每个字符用13位二进制进行编码 见6.4.1 0001)N 0010 数字模式 每3个字符用10位二进制进行编码 见6.4.2 Ns 小写字母模式 0011) 每个字符用5位二进制进行编码 见6.4.3 数据编码模式 大写字母模式 0100)9 每个字符用5位二进制进行编码 见6.4.4 数字字母混合模式 每个字符用6位二进制进行编码 见6.4.5 0101)N 控制字符模式" 每个字符用6位二进制进行编码 见6,4.6 字节模式 每个字符用8位二进制进行编码 见.4.7" 01l1)N EcI ECI模式 1100)lN 见6.4.8 1000. 功能码1,GSl应用标识 见6.4.9.1 w ENC1 1011) 功能码1,AIM应用标识 见6.4.9.1 功能码模式 FNC2 1001) 功能码2,结构链接功能 见6.4.9.2 FNC3 1010)N 功能码3,识读设备初始化数据 见6.4.9.3 只允许从小写字母模式、大写字母模式或数字字母混合模式进行切换(见6.4.6.2和6.5.1) 6.3.2数据编码模式 数据编码模式包括汉字模式、数字模式、小写字母模式、大写字母模式、数字字母混合模式、控制字
GB/T27766一2011 符模式和字节模式,见表3 6.3.3ECI模式 ECI模式只能出现在数据的开头或“模式结束”转换码(见6.5.l)之后 EECI模式的模式指示符之 后为EC任务号,编码方法见6.4.8. 6.3.4功能码模式 功能码分FNC1、FNC2和FNC3三类,其中FNC1包括两种模式指示符,分别对应两种应用标识 见表3 功能码只能在GM码的开头出现 一个GM码使用功能码时,其模式指示符应出现在数据编 码位流的前面 一个GM码最多可以使用两个功能码 6.3.5无效的模式指示符 模式指示符(0000)s.(0110)s、(1101)s、(1110)n和(llll)表示无效 6 数据编码模式 6.4.1汉字模式 编码字符 可编码字符包括; 一字节值在A1)E至(A9)E或(B0)E至 GB18000双字节1区及双字节2区的字符(即第 a F7)之间.且第二字节值在(A0)至(FF)之间的部分) b)“回车换行”(GB/T1988中值13、10的组合); c)数字对“00”到“99”; d8位字节型数据 注;GB18030除双字节1区及双字节2区以外的字符不能用议字模式编码,可用字节模式编码 4.1.2编码规则 o 汉字模式采用13位二进制进行编码 当 一个GB18030双字节字符第一字节值在(A1)Ex至(A9)HEx之间,且第二字节值在(A0)HE至 (FF)u之间时,按式(1)计算该字符的13位编码 60) ))u十(c-(A0)s) N=(C一(A1) )Ex 式中 N 字符的13位编码 C -GB18030编码的第一字节值; -GB18030编码的第二字节值 C 当一个GB18030双字节字符第一字节值在(B0)uE至(F7)Ex之间,且第二字节值在A0)Ex至 (FF)x之间时,按式(2)计算该字符的13位编码 (2 N=(C一(EB0)uEx十9)×60)HEx十(C 一A0) )HEx 式中: N 字符的13位编码 C -GB18030编码的第一字节值 C -GB18030编码的第二字节值 式(1)及式(2)定义了0至7775之间的编码值,以下方式用于定义7776至8191的编码值:
GB/T27766一2011 7776赋给“回车换行”符; a b)7777至8032赋给8位字节数据(0至255),用于编码混在汉字信息中的非汉字数据,减小个 别非汉字模式的数据嵌在一段汉字中导致的模式转换开销; 8033至8132赋给数字对“00”到“99”; d)8160至8165用于实现模式的转换,见6.5.l; 编码值8133至8159及编码值8166至8191是无效的 两个编码示例见表4 表4汉字编码示例 步骤 说明 例 例2 输人字符 GB18030编码 A3A4)Ex B6EO0)Ex CI)nR-(Bp)m十9)XCGo)十 ((A3)Ex一Al)HEx×60)Ex 代人公式(1)或公式(27 (A4)Ex-(Ao)Ex (E0)Ex-(A0)Ex 计算结果 C4)Ex 5E0)Ex 转化为13位二进制值 00000ll000100 001o1ll100000 6.4.2数字模式 6.4.2.1编码字符 可编码字符包括: a)数字0至9(GB/T1988值48~57); b“空格”(GB/T1988值32); “十”(GB/T1988值43); -”GB/T1988值45); ”(GB/T1988值46) ”(GB/T1988值44) “回车换行"GB/T1988值13.10的组合 g 6.4.2.2编码规则 以连续的三个数字为一组将数据分组,每3个数字采用10位二进制进行编码 遇到非数字字符则 将该字符包含到分组中,每组中最多只能有一个非数字字符,多余的非数字字符不能按数字模式编码 末尾一组不够三个数字用0填充 在输出第一组数字的编码前先输出2位计数器,记录最后一个分组 填充的数字个数,译码时根据该计数器丢弃填充数字 a)“00”表示没有填充数字; b “01”表示有1个填充数字; “10”表示有2个填充数字; “11”为无效编码 编码只有数字字符的组时,按式(3)计算该组的10位编码 3 N=100D十10D十D 式中: N 数字组的10位编码;
GB:/T27766一2011 数字组的第一个数字 D 数字组的第二个数字; D. D. -数字组的第三个数字 当分组中包含非数字字符时,非数字字符出现在分组中的位置有三种情况,分别是(X表示非数字 字符);第1位置为xD.D;第2位置为DxD.D;第3位置为D XDa 同一个非数字字符处在不同的位置有不同的编码,非数字字符在不同位置时的赋码见表5 表5非数字字符赋码表 字符 在分组中的位置 编码(十进制数 1000 “空格”(GB/T1988值32 1001 1002 1003 “十”(GB/T1988值43) 004 1005 1006 1007 “-"GBy/T1988值45) 008 1009 “.”(GB/T1988值46 101o 1011 1o12 ","GB/T1988值44) 1o13 1o14 1015 “回车换行"GBy/T1988值 1016 13、10的组合 1017 编码含有非数字字符的分组时,先输出非数字字符的10位二进制编码,然后再按式(3)计算并输出 3个数字的10位二进制编码 剩下的编码值1018至1023用于实现模式的转换,见6.5.1 示例 输人数据:“l,234,567.899” 分组: 1,23 4,56 7.89 900 013456 1010789 90o 编码十进制值: 1013123 转换为二进制:101111l10101000111101111111101010111001000111111001011000101011110000100 6.4.3小写字母模式 6.4.3.1编码字符 可编码字符27个,包括26个小写英文字母az以及“空格”(GB/T1988中值32). 10o
GB/T27766一2011 6.4.3.2编码规则 小写字母模式采用5位二进制进行编码,按顺序从a到》最后“空格”递增编码,字母“a”的编码为 o00)a 剩下的5个编码值(o1)m至(I)用于实现模式的转换,见瓦.5.1. 示例 输人数据 “空格” 编码十进制值 17 14 26 转换为二进制 00001 00000 10001 000l0 00011 00l00 11o1o 01l10 .4.4大写字母模式 6. 6.4.4.1编码字符 可编码字符27个,包括26个大写英文字母A一Z以及“空格"(GB/T1988中值32) 6.4.4.2编码规则 大写字母模式采用5位二进制进行编码,按顺序从A到乙最后“空格”递增编码,字母“A"的编码为 (o0000)N 剩下的5个编码值(1l01l)至(11111)用于实现模式的转换,见6.5.1 示例 输人数据 D “空格" 编码十进制值: 26 14 17 转换为二进制 00001 00000 10001 11010 00010 00100 0001 01l10 6.4.5数字字母混合模式 6.4.5.1编码字符 可编码字符63个,包括 a数字0至9(GB/T1988中值4857); 大写英文字母A Z(GB/T1988中值65至90) b e)小写英文字母a一z(GB/T1988中值97至122); d)“空格”(GB/T1988中值32). 6.4.5.2编码规则 数字字母混合模式采用6位二进制进行编码,按顺序从数字、大写英文字母、小写英文字母最后“空 格”递增编码,数字0的编码为(000000)N, 剩下的1个编码值(1llll1)用于实现模式的转换 见6.5.1 示例 输人数据: “空格” 编码十进制值 1c 37 62 转换为二进制: 000000 001o10 100101 l11l10 6.4.6控制字符模式 .4.6.1编码字符 o 可编码字符64个,包括除以下字符外的GB/T1988字符 11
GB:/T27766一2011 a)“空格”GB/T1988中值32):; b 数字字符(GB/T1988中值48至57); e)大写英文字母(GB/T1988中值65至90); d 小写英文字母(GB/T1988中值97至122); e)DEL(GB/T1988中值127) 6.4.6.2 编码规则 控制字符模式采用6位二进制进行编码,按字符的GB/T1988中值由小至大顺序编码,第一个字 符编码为(000000)N 该模式的数据长度固定为1,编码后自动切换回之前的数据模式 输人数据的 第一个字符不能分类为该模式 控制字符编码见表6 表6控制字符编码表 编码 字符 编码 字符 编码 字符 字符 编码 16 NU DLE 32 48 17 49 SOH DC1 33 STX Dc2 18 34 50 ETX DC3 19 35 5 52 EOT DC4 20 % 36 & NAK 37 a 53 ENQ 21 ACK SYN 22 38 54 BEL ETB 23 55 39 56 BS CAN 24 40 BM 25 57 HT 4 9 10 58 LF SUB 26 42 50 VT EsC 27 1l 43 12 44 60 FF FS 28 13 6 CR GS 29 45 14 62 SO RS 30 46 Sr 15 US 31 47 63 6.4.7字节模式 字节模式采用8位二进制数编码0到255的字节数据 设输人数据的长度为L个字节,则先输出9位二进制无符号数L一1,用于记录字节数,随后直接输 出字节数据本身 当输人数据的长度大于512字节时.将输人数据分割成多个数据段,每段长度不超过512字节,对 每段数据分别编码 从第二段开始的每段数据都需要以模式转换码(o111)、和用9位二进制无符号 数编码的该段数据长度开始 6.4.8ECI模式 .4.8.1CI编码 o 将输人的数据转换为一个位流 以缺省的ECI开始时,位流的开头为第一个数据类型的模式指示 12
GB/T27766一2011 符,否则,其前面要有ECI标头,后面为一个或多个不同模式的段 ECI标头由ECI模式指示符 1100)、和ECI任务号组成 EECI的任务号为000000811799(十进制)之间的6位数 ECI任务号 的编码见表7 表7ECI任务号的编码 任务号编码 Ec任务号 000000001023 bbbbbbbbbb 001024032767 1obbbbbbbbbbbbbbb 032768811799 1lbbbbbbbbbbbbbbbbbbbb 注:bb是ECI任务号的二进制值 ECI模式指示符只能在数据的开头或“模式结束”转换码见6.5.1)之后出现 输人的EC数据需 要编码系统作为一系列8位字节的值进行处理,可以采用汉字、数字,小写字母、大写字母、数字字母混 合,控制字符、字节等一种或儿种模式进行最高效的编码,而不必考虑其实际意义 例如,值为3o到 39,的数据序列可以当作一个数字序列,用数字模式进行编码,即使实际上它并不表示数字字符 示例 BcI编码表示 ECI任务号;400123 待编码数据的字节值:(31),(32),(33)E,(34).(35),(36),(37),(38)s,(39) 编码位流: CI模式指示符;ll00; a bECI任务号;l1011000o11o101111011; 数据模式指示符(数字);00103 c d 数据编码;00000111101101110010001100010101; 最终的位流;l10011o11000o110101111101100100000011101101110010001100010101 e 6.4.8.2ECI与结构链接 ECcI可以在单个GM码或GM码结构链接符号的任意位置出现 引人的任一EcI一直保持有效 直至数据结束或一个新的ECI被引人,EcI将跨结构链接中的两个或多个GM码一直保持有效 6.4.9功能码模式 6.4.9.1FNC1 FNC1模式指示符应在GM码的开头编码 结构链接模式同时被应用时,FNC1的模式指示符只 在结构链接的第一个符号出现,并且FNc1的模式指示符在FNc2的模式指示符之前 FNC1模式指示符(1000)u用于标识按GS1系统规则格式化信息的符号 FNCI模式指示符(1011)用于标识按AIM同意的特定行业或者特定应用规范格式化信息的符 号 在第一数据字符位置的字符(a一z,AZ,或两位数字)用于指定特定的应用 .4.9.2FNc2 o FNC2功能码用于实现结构链接功能,输人的数据可用最多16个GM码链接起来 每个结构链结 中的符号都是由一个4字段(20位)链接控制头开始的: a 第一字段是4位的FNC2模式指示符(1001)N; b第二字段是8位的文件签名; 13
GB/I27766一2011 第三字段用4位数n表示链接中的GM码总个数为n+1; c d)第四字段用4位数m表示当前GM码在结构链接中的序号 "m应小于或等于n,否则该GM码是无效的 文件签名是用某种签名算法对输人的整体数据产生的签名,同一个结构链接中的所有符号的文件 签名应相同,防止不同结构链接之间的符号互相串扰 FNC2应是符号中的最后一个功能码,FNC'2链接控制头之后应是数据模式指示符或ECI模式指 示符 在传输结构链接的符号数据之前,结构链接中的所有符号应全部被解码成功并且将数据还原为正 确的顺序 6.4.9.3FNc3 FNC3功能码用于实现将符号编码的内容用作识读设备的初始化参数 FNC3的模式指示符 (1010)m应出现在数据编码位流之前 当FNC3和FNC2同时被应用时,FNC3的模式指示符应在 FNc2的模式指示符之前,且只在结构链接的第一个符号出现 FNc3不能与FNC1同时使用 6.5混合模式编码 6.5.1编码模式转换 数据编码时的模式转换是通过输出模式转换码来实现的,不是任何两个模式都可以转换的 表8 列出了全部的模式转换码,括号中是模式转换码的二进制位数 表8数据模式转换码 下一编码模式 当前编码 数字字 控制字符 模式 模式结束 汉字 数字 小写字母 大写字母 字节 母混合 切换) 8162 8160 8161 8163 8164 8165 汉字 13位 13位 13位 13位 (13位 13位) 1018 1019 1020 1021 1022 1023 数字 10位) 10位) 10位 10位 (10位) 10位) 27 124 126 125 28 29 30 小写字母 5位 5位 5位 5位 7位 (7位)" (7位) 27 28 29 30 124 125 126 大写字母 位) (5位) 5位 7位) 7位)y" 5 5位 7位 1008 1009 1010 1011 1012 1014 1015 数字字母混合 10位 10位) 10位) 10位 10位y 10位 10位) 字节 4位 (4位 4位) 4位 (4位 4位) 4位) 注“”号表示不允许的模式转换 小写字母、大写字母模式到数字字母混合、控制字符、字节模式的7位转换码是5位的“1111"分别加上2位的 “o0”,"o1”,“10” l4
GB/T27766一2011 6.5.2数据编码总流程 数据编码流程如下 以编码产生的二进制位流最短为目标,将输人数据按类型划分成段,对输人数据的分段进行优 a 化的方法参见附录B 对所有数据段按照下面的步骤逐段编码 存在功能码时,按表3进行编码 1 当前数据段是第一段时,输出该段数据的模式指示符,见表3 2 按照当前数据模式的编码规则编码当前数据段 3 段数据编码前,首先输出当前模式到下一模式的模式转换码,见表8; 需要编码ECI时,首先输出模式转换码“模式结束”,见表8,然后编码EC模式指示符 1100)及EC1任务号(见表7),之后是下一数据段的模式指示符,见表3; 最后一个数据段完成后,输出模式转换码“模式结束”,见表8 需要填充位时,最后一个码字填充“o” d需要填充码字时,第一个填充码字应当取(000000000),后面的填充码字根据5.5规定的规 则进行填充 6.6纠错编码 6.6.1纠错等级 GM码采用伽罗瓦有限域GF(2')的ReedSolomon纠错算法生成纠错码字,有限域的本原多项式 为r'十r十1,码字的位长为7位 纠错码字应添加在数据码字流后 GM码有5个用户可选纠错等 级,对应的纠错码字容量见表9 表9纠错码字容量 纠错等级 纠错码字占总码字百分比向下舍人 10% 20% 30% 0% 50% 6.6.2纠错的选择 根据GM码质量,识读设备精度以及应用的物理环境选择最佳纠错等级 表10给出了各版本GM 码的推荐纠错等级 一般情况下,用户不应选择小于表10中给出的最低推荐纠错等级的GM码 纠 错等级选择的用户导则参见C.2 表10推荐的纠错等级 版本 推荐的纠错等级推荐纠错等级下的数据码字数最低推荐纠错等级最低推荐纠错等级下的数据码字数 11 30 40 59 89 114 146 总码字的70%(向上舍人 总码字的90%(向上舍人) 5一13 15
GB/27766一2011 纠错码字可以纠正两种类型的错误,拒读错误(错误码字的位置已知)和替代错误(错误码字的位置 未知) 可纠正的替代错误数和拒读错误数与纠错码字数和错误检测码字数之间的关系由式(4)给出 e十2!=l一户 式中: 拒读错误数, 替代错误数, 纠错码字数 错误检测码字数 在一般情况下,声=0 当大部分纠错容量用于纠正拒读错误时,则检不出替代错误的概率增加;当 拒读错误的总数大于纠错码字总数的一半时,力=3;当GM码的纠错码字总数小于6时,只允许纠正替 代错误(e=0力=1) 6.6.3码字的分块与纠错码字的分配 运用Reed-Solomon纠错算法生成纠错码字时码字序列的长度受到所选用有限域的限制,GM码 采用的是GF(2')有限域,码字序列的长度应小于128 当数据码字的个数加上纠错码字的个数大于 127时需要将数据码字分割成多个纠错块,然后分别对每个纠错块运用纠错算法生成各自的纠错码字 将c个码字分成B个长度为N,的块,以及B 个长度为N 的块 设GM码的总码字容量为C 满足式(5 (5 C=B×N十B×N. 总分块数B见式(6). B=(C十126DIV127 6 当C是B的整数倍时,码字分块参数为;B=B,N=CDIVB,B=0,N,=0 当c不是B的整数倍时,码字分块参数为N=(cDIVB)十1,N,=N一1,B=c一B×N. B=B一B 设选定的纠错等级为RI乏只<),雷要生成的纠错码字总数E见式(T E=C×RDIV10 B个纠错块中,前B块中每块分配E个纠错码字,后B块每块分配E个纠错码字,分配结果满 足式(8). E =E×B十E ×B 8) B=B十B,=B十B 当E是B的整数信时,纠错码字分配参数为;B,=B.E;=EDVB,B= 0,E=0 当E不是B的整数倍时,纠错码字分配参数为:E=EDIVB)1,E=E一1,B=E一B× E.,B=B一B GM码码字分块参数表及分块计算法则的C语言源代码见附录A 6.6.4生成纠错码字 构造数据码字多项式,多项式系数是数据码字,第一个数据码字为最高次项的系数,依次排列,最后 -个数据码字是最低次项(常数项)的系数 设卜是纠错码字的个数,则纠错码字多项式是数据码字多 项式乘以r再除以纠错生成多项式得到的余式 其中余式的最高次项的系数为第一个纠错码字,最低 次项的系数为最后一个纠错码字 GM码生成k个纠错码字的生成多项式G(z)见式(9) G(.r)=.r一a')(.r一a2)(.r一a 16
GB/T27766一2011 式中: G(.r 纠错生成多项式; 有限域GF(2)的生成元 要生成的纠错码字个数 计算生成多项式系数的C语言源代码见附录D. 纠错码字的生成可用图6的电路实现 寄存器a 到a-的初始值为0.丛到片 为生成多项式由 低次到高次的系数 编码分两个阶段完成 第一阶段两个开关的位置都向下,n个时钟脉冲后结束,输人的数据码字被直接导向输出,同 a 时寄存器a,到a-,的值都被更新 这里n是数据码字的个数 b第二阶段两个开关的位置都向上,输人保持为零,个脉冲后寄存器的值被顺序移位输出,从 而生成人个纠错码字 输出 说明 GF(2)乘法 GF(2')加法 图6纠错编码电路 生成最终码字流 6.7.1生成数据码字 编码输人数据生成二进制的位流 将二进制位流分成7位一组即生成数据码字流,位流分组中的 第 -个位对应于码字的最高位 最后一个码字不足7位时,低位以“o0”填充,这样处理后的结果就是数 据码字流 6.7.2确定GM码的各项参数 6.7.2.1确定GM码版本 选择可接受的最小纠错等级Rm,计算所需的最小码字数C见式(10) 10 C=(10×D)/(10一R)向上舍人 式中: -由6.7.1得到的数据码字数量 D 查表1选择可以编码C的对应版本 6.7.2.2确定GM码的实际纠错等级 版本V的GM码码字容量C是GM码宏模块数量的两倍,见式(1l). 17
GB/T27766一2011 C=2×(2×V十1 对于确定的版本V,使用的纠错等级R见式(12). R=[(c一D)×10]Drvc 12) 当算出的R大于5时,R即为最大值5 6.7.2.3计算填充码字 纠错等级为R,纠错码字数E见式(7) 需要加到数据码字流后的填充码字数尸见式(13). P=C一E一D (13 6.7.3纠错块的交错排列 当GM码包括不止一个纠错块时,应对纠错块进行交错排列,规则如下 从码字流的第一个块的第一个码字开始提取,然后是第二块的第一个码字,直到最后一个块的 a 第一个码字 b) 继续提取第一个块的第二个码字,然后是第二块的第二个码字,,直到最后一个块的第二 个码字; 继续提取直到码字流中所有码字被提取完 6.8码字在符号中的排列 码字流按照固定的路径填充到宏模块中,每个宏模块先填充第1码字,然后填充第2码字 以GM 码的中心宏模块为起点,按顺时针螺旋式依次填充所有宏模块,见图7 25 10 11 12 13 24 14 23 15 22 20 18 图7版本2的GM码的码字填充顺序示意图 图了所示为版本忽的oM码码字填允顺序.从】号宏模块开始,到3号宏模块结束 1号宏模块 位于GM码的正中心,2号宏模块在1号宏模块的上方 对于版本3或者更高版本的GM码,接下来的宏模块(26)填充在25上面,依次不断填充,直到GM 码所有层填充完毕 6.9编码示例 6.9.1数据分析 本示例使用推荐的纠错等级编码数据“GridMatrix”生成GM码 根据附录B的选择方法,用数字字母混合模式编码开头6个字符(“GridM”),用小写字母模式编 码后续的5个字符 18
GB/T27766一2011 6.9.2数据编码 编码顺序如下: (o101)表示数字字母混合模式; a b)“GridM”编码见表1l; 表11数据编码 字符 “空格” M 十进制值 53 62 22 16 44 39 二进制值 o10000 1101o1 101100 100111 1111o 01011o 1111110011)n(十进制1011)转换编码模式到小写字符 “atrix”编码见表12; d 表12数据编码 字符 17 十进制值 19 23 二进制值 00000 1001m 10001 01000 1011 11011)n(十进制27)表示数据编码结束 编码得到的二进制位流是:(中间空格仅用于方便阅读》 o1010100001101011011001001111111100101101111110011000001001110001o1000 101l111011 分成7位一组的码字后需要4个填充位(圆括号中所示)来填充最后一个码字 01010100001l0101l01l001001l11ll1100101101l1l110011000001001l1000101000101ll11 011(0000) 该数据共12个码字 6.9.3确定GM码版本 查表10,确定用版本2的G;M码编码以上数据推荐最小纠错等级为4). 由式(11)计算得到版本2的符号容量为:C=2(2v+1=2×(2×2+1)=50 由式(12)计算使用的纠错等级为.R一10(C一D)Dvc=10(S0-12)DV50一7 R>5,应采 用5级纠错 25 由式(7)得出纠错码字的数量为:E=CXRDIV10=50×5)DV10 50一25一12 13 由式(13)得出填充码字数量为:尸=C一E-D 0000000 紧接在数据后的填充码字为:(0000000)n(1l111l0)(0000000)(llll110) )N N 11l1110)(0000000)Nd 6.9.4 生成纠错码字 十进制的数据码字加上填充码字是 421354391249112165284095480126012601260126012601260 相应的25个纠错码字是 12347220541123523100895517l0141433486298522799270l02 19
GB/T27766一2011 所有码字以二进制表示为: 25个数据和填充码字 0101010000110101101100100111111110010110111111001100000100111000101000 1011ll1011000000000001llll1000000001lll1l00000000ll11ll00000000l1l1l10 00000001111110000000011111100000000 加上25个纠错码字 11110110101l1100000l0001010001l01101ll0000010001100101111100100101100 01l011l0010001110010100001000001l10010000101l000001l1l101l000100110100 00000101001111101110010001101100110 6.9.5宏模块的排列 版本2的GM码由25个宏模块组成13个深色边宏模块和12个浅色边安模块),见图8 图8版本2的GM码宏模块的排列 将层标识号插人到每个宏模块.见图9 图9版本2纠错等级5的层标识号 6.9.6数据码字的排列 向宏模块中填人码字的顺序是从中心向外顺时针排列,见图7 图10显示的是排列的头几步: 20
GB/T27766一2011 a)第一个码字(0101010)填在中心深色边宏模块的第1码字(b,b,)位置上 b第二个码字(0001101)填在同一个宏模块的第2码字(b;b,)位置上; e)第三个码字(o11o110)m填在中间靠上的浅色边宏模块的第1码字位置上; d第四个码字填在同一个宏模块的第2码字位置上,后续的码字以此顺序依次排列 微 图10头几个码字在GM码中的排列 图11展示了在GM码中填人码字的过程 填人码字的过程如左图所示:12个数据码字以螺旋排 列的顺序填到头6个宏模块中;其后13个填充码字填人到接下来的6%个宏模块中,在GM码的右上 角宏模块的第1码字位置结束;纠错码字从该宏模块的第2码字位置开始填人,在图中仅显示了一部 分 填充完毕后,生成了右图 已田巴 E因HL 图 11 编码了数据“GridMatrix"的GM码 符号印制 7.1尺寸 GM码符号尺寸的确定 x尺寸;单元模块宽度根据应用要求,采用的扫描技术以及符号生成技术来确定 Y尺寸单元模块高度应与单元模块宽度相等 最小空白区:在GM码符号周围的空白区宽度尺寸为6X 21
GB/27766一2011 7.2供人识读字符 GM码可以编码数百个字符,可用描述性的文本而不是全部数据原文与GM码符号同时印制在一起 字符尺寸与字体不作具体规定,可印制在GM码周围的任意区域,但不能影响GM码符号本身及 空白区 7.3符号制作指南 可用多种不同的技术制作GM码符号,参见附录C 符号质量 8.1符号质量评级 GM码符号采用GB/T23704中规定的矩阵式二维条码印制质量测试导则进行质量评级 评级参数包括符号译码、符号反差、调制比、轴向不一致性、网格不一致性、未使用的纠错以及固有 图形污损,其中固有图形污损的质量评级方法见8.2 一次扫描获得的符号译码、符号反差、调制比、轴向不一致性、网格不一致性,未使用的纠错以及固 有图形污损各参数等级的最低值为单次扫描等级 符号等级为从不同角度进行的5次扫描获得的单次扫描等级的算术平均值 两次扫描译码获得的 数据不同时,符号等级为0 符号等级按质量高低以4.0~1.0的数字形式表示,小数点后应保留一位 固有图形污损质量等级 8.2 8.2.1 需评估的固有图形 GM码需要评级的固有图形包括(见图12) a)空白区; b层标识号区域" c 宏模块边框 说明 空白区; B 层标识号区域 g 宏模块边框 图12版本1的GM码的固有图形 22
GB/T27766一2011 固有图形污损的质量等级为空白区、层标识号区域和宏模块边框三个质量等级的最低值 8.2.2空白区质量评级 空白区环绕在GM码周围,为6个单元模块宽且空白区单元模块均为浅色 空白区内单元模块数 量为144十144(2V十1),其中V是GMM码的版本 将译码过程中建立的采样网格延拓到空自区,在 空白区内统计深色单元模块的数量,求出空白区内深色单元模块占空白区总单元模块数的百分比,评级 规则见表13 8.2.3宏模块边框质量评级 每个宏模块均有一个边框,每个边框有20个单元模块,当其中任何一个单元模块颜色读取错误时 该边框被视为错误边框,统计错误边框数量,根据错误边框数占总边框数的百分比对边框区域进行评 级,见表13 8.2.4层标识号区域质量评级 每个宏模块有两个层标识号单元模块,GM码中层标识号单元模块总数为22V十1)',其中V为 版本 统计层标识号单元模块错误的数量,根据错误的层标识号单元模块数占总层标识号单元模块数 量的百分比确定质量等级,见表13 表13固定区域损失的评级阔值 空白区 宏模块边框 层标识号 等级 错误单元模块比率 错误边框比率 错误单元模块比率 0% 0% 0% <10% 5% <3% 20% 10% 7% <30% <15% <11% >15% >11% 30 译码过程 概述 GM码的译码过程如下; 灰阶图像二值化 a 抓取的图像通常是灰阶图像 使用附录E.1中的二值化算法将灰阶图像转化为二值图像 以下 的步骤均是在二值图像上实施的 b获取边界图像及连通分支 称二值图像中的一个像素点为边界点是指该像素点本身为白色且其周围的4个像素至少有一个为 黑色 由二值图像的所有边界点组成的图像称为其边界图像 分别提取边界图像的所有连通分支 (8连通),从边界图像中删去尺寸小的连通分支 估计GM码的水平斜率和竖直斜率 根据边界图像估计GM码的水平斜率和竖直斜率 d 估计宏模块的面积 23
GB/T27766一2011 根据边界图像分别估计宏模块的宽度和高度,从而得到宏模块的面积 从边界图像删去所有面积 小于该估计面积值70%的连通分支,得到的图像称为框架图像 计算宏模块的中心 根据框架图像和GM码的水平斜率和竖直斜率计算所有宏模块的中心 D 计算宏模块的顶点 对邻近的宏模块中心插值可以计算得到宏模块的顶点 数据采样 g 根据宏模块的顶点计算采样网格 黑色像索素表示二进制的“1”,白色像索表示二进制的“o" h)推导GM码的方向、中心宏模块和纠错等级 根据层标识号可以推导得到GM码的方向、中心宏模块和纠错等级 还原GM码码字并纠错 根据码字排列规则得到GM码码字,进行纠错后得到原始信息的编码位流 编码位流解码 根据6.3,6.!和6.5定义的编码方法对编码位流进行解码 9.2参考译码算法 GM码的参考译码算法参见附录E 数据传输 10 10.1符号标识符 Iso/IEc15424提供了一个标准的程序,根据译码器的设置和GM码的自身特性报告被读取的 码制 -旦数据结构包括使用的EcI模式)被识别,译码器将适当的符号标识符作为一个段首标记追加 到被传输的数据上 GM码使用了EcI模式或FNC1功能码时,符号标识符应被传输 GMM码的符号标识符是“]gm",其中 a)]是符号标识符(GB/T1988值为93); bg是GM码的编码字符; m是变数值,取值为表14中的某一值 表14符号标识符与变数值 变数值 含义 未使用CI协议 已使用CI协议 2 未使用ECI协议,FNC1用于指示GS1应用 已使用ECI协议,FNC1用于指示GS1应用 未使用ECI协议,FNCI用于指示AIM应用 已使用EcI协议,FNC1用于指示AIMM应用 10.2扩展信道解释 在支持ECI协议的系统中,每一传输都要求传输符号标识符 当遇到ECI模式指示符时,它应作 24
GB/T27766一2011 为转义字符“\”(GB/T1988中值92)被传输 根据表7定义的规则,将紧跟在ECI模式指示符后的 11,17或22位转化为6位数字,这些数字将按其GB/T1988值进行传输(48到57). 应用软件识别到\nnnnnn之后,将所有后续字符解释为来自6位数字的指示符定义的ECI 该解 释一直有效直至数据结束或遇到另一个ECI指示符 当字符“\”需要作为被编码的数据时,应按如下方式进行传输:每当字符“\”作为数据出现,应传输 两个该值的字节,因此每当单个值出现,总是一个转义字符,连续两次出现则表示真正的数据 示例 被编码的数据;按EcI123456规则编码A\BcC 被传输的数据]gI\123456A\\B趴\\c 注;除非GM码确实使用了C模式指示符,符号标识符]gl,]g3,]g5不应被传输,并且反斜杠字符“\”不应被传输 两次 10.3FNc1 功能码没有对应的字节值,不能被直接传输,应通过相关的符号标识符(g2,]g3,]g4,]g5)指示功 能码FNC1被使用的情形(见10.1) 10.4FNC2 功能码FNc2用于结构链接,译码器在传输前将数据文件重新链接,不传输结构链接头 如果结构 -GM码读取失败.译码器不传输任何数据 链接中任一 10.5FNC3 功能码FNc3用于指示识读器将该GM码中的数据作为初始化参数,这些数据不应被传输 识读 器可以根据GM码中的数据进行初始化 25
GB/27766一2011 附 录A 规范性附录 码字分块参数c语言源代码 6.6.3定义的码字分块参数的C语言源代码如下 功能:为指定版本和纠错等级的G码计算码字分块参数 输人:G码的版本和纠错等级 输出:分块结果 码字个数为B1的块有N块,码字个数为B2的块有N2块 前B3块每块纠错码字B1个,后4块每块纠错码字2个 #defineN127 intB1,N1,B2,N2; intB3,1,B4,E4; voidrs_block(intV,/*GM码的版本,1一13* 纠猎等级 intR 15 intC;/关GM码的总码字数 intB;/*纠错码字数 intB;/关总分块数 V 1关2关V+1) * 2 2; B C N一1/N; C名B) if0 B; C/B; N 0; 盼 N2 0; else N1 C/B 1; N2 N1-1; Bn1 C一B N2; B2 B一B1; int)C关0.1 R): B) ifO E B3 =B; E1=E/B; =0:; Ba 0 E2 else 1=E/B+1; 26

了解二维条码网格矩阵码GB/T27766-2011

什么是二维条码?

二维条码是一种可以在有限空间内存储大量信息的编码方式。与普通一维条码相比,它在横向和纵向上都有数据描述,因此可以存储更多的信息。二维条码广泛应用于物流、生产、零售、医疗等领域。

网格矩阵码的特点

网格矩阵码是一种常见的二维码格式。它具有以下特点:

  • 容错率高:网格矩阵码可以通过数据重构来修复部分损坏的区域,保证了识别率。
  • 识别速度快:网格矩阵码中的每个码块都包含了一定量的数据,因此可以加快识别速度。
  • 存储容量大:网格矩阵码通过增加码块数量来提高存储容量,可以存储更多的信息。

GB/T27766-2011标准介绍

GB/T27766-2011是我国二维码标准化的重要文件之一,也是网格矩阵码的标准。该标准明确了二维码的数据结构、编码方式、容错能力等方面的规范,为各行业的应用提供了技术支持。

网格矩阵码的应用

由于网格矩阵码具有容错率高、识别速度快、存储容量大等特点,它在物流、生产、零售、医疗等领域得到广泛应用。

  • 物流:网格矩阵码可以用于物流单据的条码识别和跟踪,提高物流效率和准确性。
  • 生产:网格矩阵码可用于产品追溯,记录生产时间、批次和质量信息等。
  • 零售:网格矩阵码可以用于商品标识、价格标签等。
  • 医疗:网格矩阵码可以用于医院病历、药品管理和医疗器械标识等。

总结

网格矩阵码作为一种常见的二维码格式,具有较高的容错率和识别速度,符合我国标准GB/T27766-2011。它在物流、生产、零售、医疗等领域得到广泛应用,助力各行业实现数字化转型。

和二维条码网格矩阵码类似的标准

低压电器通信规范
上一篇 本文分享国家标准低压电器通信规范的全文阅读和高清PDF的下载,低压电器通信规范的编号:GB/T27745-2011。低压电器通信规范共有36页,发布于2012-05-01
二维条码紧密矩阵码
本文分享国家标准二维条码紧密矩阵码的全文阅读和高清PDF的下载,二维条码紧密矩阵码的编号:GB/T27767-2011。二维条码紧密矩阵码共有52页,发布于2012-05-01 下一篇
相关推荐