GB T 27766-2011 二维条码.网格矩阵码.pdf

上传人:rimleave225 文档编号:268508 上传时间:2019-07-11 格式:PDF 页数:64 大小:2.13MB
下载 相关 举报
GB T 27766-2011 二维条码.网格矩阵码.pdf_第1页
第1页 / 共64页
GB T 27766-2011 二维条码.网格矩阵码.pdf_第2页
第2页 / 共64页
GB T 27766-2011 二维条码.网格矩阵码.pdf_第3页
第3页 / 共64页
GB T 27766-2011 二维条码.网格矩阵码.pdf_第4页
第4页 / 共64页
GB T 27766-2011 二维条码.网格矩阵码.pdf_第5页
第5页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、ICS 35.040 L 71 GB 中华人民共和国国家标准GB/T 27766-2011 二维条码网格矩阵码Two-dimensional barcode-Grid matrix code 2011-12-30发布中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会2012-05-01实施发布GB/T 27766-2011 目次前言.1 引言. II 1 范围-2 规范性引用文件3 术语、定义、缩略语和约定4 符号描述25 符号结构.4 6 符号生成7 符号印制.218 符号质量.229 译码过程2310 数据传输.M附录A(规范性附录)码字分块参数C语言源代码26附录B(资料性附

2、录)位流长度的优化30附录c(资料性附录)GM码印制的用户导则40附录D(规范性附录)纠错生成多项式.。附录E(资料性附录参考译码算法50参考文献. . . . . 59 目。吕本标准按照GB/T1. 1-2009给出的规则起草。本标准由中华人民共和国工业和信息化部提出。本标准由全国物品编码标准化技术委员会(SAC/TC287)归口。本标准起草单位:武汉砂感科技有限公司、中国电子技术标准化研究所。本标准主要起草人:张伟、张也平、刘波、张得煌、樊旭j。GB/T 27766-2011 I GB/T 27766-2011 引本文件的发布机构提请注意,声明符合本文件时,可能涉及第5章、第6章、第9章、

3、第10章相关的专利的使用。本文件的发布机构对于该专利的真实性、有效性和范围元任何立场。该专利持有人已向本文件的发布机构保证,他愿意同任何申请人在合理且无歧视的条款和条件下,就专利授权许可进行谈判。该专利持有人的声明已在本文件的发布机构备案。相关信息可通过以下联系方式获得:专利所有人:地址:邮政编码:网址:联系人:联系电话:传真:E-mail: 武汉砂感科技有限公司武汉市东西湖区吴家山经济开发区金一路武汉砂感光电产业园430040 http:/ 何柳青027-61675589 027-61675592 helqsyscangroup. com 请注意除上述专利外,本文件的某些内容仍可能涉及专利。

4、本文件的发布机构不承担识别这些专利的责任。11 GB/T 27766-2011 二维条码网格矩阵码1 范围本标准规定了网格矩阵码的符号结构、信息编译码方法、纠错编译码方法、信息排布方法、参考译码算法以及符号质量要求等技术内容。本标准适用于网格矩阵码的生成与识读。2 规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 1988 信息技术信息交换用七位编码字符集GB/T 12905 条码术语GB 18030信息技术中文编码字符集GB/T 23704 信息技术自动识别与数据

5、采集技术二维条码符号印制质量的检验ISO/IEC 15424信息技术自动识别与数据采集技术数据载体标识符AIM国际技术规范扩展解释:第1部分:识别方案与协议(简称AIMECI规范3 术语、定义、缩略语和约定3. 1 术语和定义GB/T 12905中界定的以及下列术语和定义适用于本文件。3. 1. 1 纠错块error correction codeword block 对码字分组后用于纠错的一组码字。3. 1.2 边框frame 宏模块的最外20个单元模块,这些单元模块同为深色(低反射率)或同为浅色(高反射率)。3. 1. 3 层layer环绕中心宏模块的宏模块圈。3. 1.4 层标识号lay

6、er ID number 赋予宏模块左上角的两个单元模块的值,该值根据纠错等级以及宏模块所在的层号确定,可用于指明GM码的方向。3. 1.5 宏模块macromodule GM码的子结构,由6X6个单元模块组成。GB/T 27766-20门3. 1. 6 单元摸块module 组成GM码的基本单元,每个单元模块表示一个二进制位。3. 1.7 填充位padding bit 用于填充数据位流最后一个码字后面容量的元含义位,其值为0。3. 1. 8 填充码字padding codeword 当数据码字和纠错码字不能填满GM码的容量时,用于填充GM码的剩余容量的码字。填充码字不表示有效数据,但参与Re

7、ed-Solomon纠错运算。3. 1. 9 版本version 用于表示GM码规格的序列号。3. 1. 10 功能码function code 用于指示属于特定应用或特定功能的GM码符号的代码。3. 1. 11 纠错等级error correction level 指明GM码中纠错码字所占比例的参数。3.2 缩略语下列缩略语适用于本文件:ABS 绝对值CAbsoluteValuc) DIV 整除运算CDivision)ECI 扩展解释CExtendedChannel Interprctation) FNC 功能码CFunctionCode) GF 伽罗瓦有限域CGalois Field) G

8、M码一网格矩阵码CGrid Ma trix Code) MOD 一模运算,求整除后的余数(Modulus)3.3 约定下列表示适用于本文件:(h lN 表示括号中的内容使用二进制表示( )HEX 表示括号中的内容使用十六进制表示LxJ一一-表示不超过z的最大整数Ixl一一表示不小于z的最小整数4 符号描述4. 1 基本特征4. 1. 1 可编码信息GM码可编码以下信息:2 GB/T 27766-2011 a) 数字字符(数字09,GB/T1988中值48至57);b) 大写字母(字母AZ,GB/T1988中值65至90); c) 小写字母(字母az,GB/T1988中值97至122); d)

9、汉字字符(GB18030); e) 8位字节型数据。4. 1. 2 数据表示法深色单元模块表示二进制1,浅色单元模块表示二进制0。4. 1.3 符号规格GM码的规格为3X3宏模块到27X27宏模块,对应于版本1到版本13,每一版本GM码比前一版本每边增加2个宏模块,见表10表1各版本GM码的结构版本宏模块数单元模块数层数总码字数(不包括空白区)(不包括中心宏模块)(数据+纠错码字)1 3X3 18X 18 1 18 2 5X5 30X30 2 50 3 7X7 42X42 3 98 4 9X9 54X54 4 162 5 11Xll 66X66 5 242 6 13X 13 78X78 6 3

10、38 7 15X 15 90X90 7 450 8 17X 17 102X 102 8 578 9 19X 19 114X 114 9 722 10 21X21 126X126 10 882 11 23X23 138X 138 11 1058 12 25X25 150X 150 12 1250 13 27X27 162X162 13 1458 4. 1. 4 符号容量使用最低纠错等级的最大版本GM码(纠错1级版本13)的容量如下:a) 2 751个数字;b) 1 836个大写字母;c) 1 836个小写字母;d) 1 529个数字字母混合字符;e) 705个GB18030双字节1区或双字节2区

11、内的字符,或571个GB18030双字节字符,或285个GB18030四字节字符;。1143个字节。3 GB/T 27766-2011 4. 1. 5 纠错等级版本1的GM码有2级到5级纠错,版本2到版本13的GM码有1级到5级纠错,每级中纠错码字数占总码字数的比例为:a) 1级:10%(不适用于版本1);b) 2级:20%;c) 3级:30%;d) 4级:40%;e) 5级:50%。纠错码字的个数为总码宇个数的上述百分比向F舍人),见附录Ao4.2 附加特征4.2. 1 结构链接允许用不多于16个的GM码在逻辑上连续地表示数据文件。在多顺序扫描状态下应保持原始顺序与数据正确连接。4.2.2

12、支持ECI协议ECI协议(见AIMECI规范勺使GM码可以表示缺省字符集以外的字符(如阿拉伯字符、古斯拉夫字符、希腊字符等),及其他数据解释(如用一定的压缩方式表示的数据),或者具体应用的编码要求。5 符号结构5. 1 概述GM码由深色边宏模块和浅色边宏模块交错排列而成的正方形宏模块矩阵组成,矩阵每边为奇数个宏模块,且GM码的中心与同个角上均为深色边宏模块,GM码的四周为空白区,见图1。4 深色边宏模块 图1GM码结构图版本2纠错5级的GM码示意图见图20层标识号第2码字第1码字宏模块边框GB/T 27766-2011 图2版本2纠错5级的GM码示意图5.2 宏模块结构宏模块的内部结构见图3,

13、包括边框、两个7位的码字和层标识号。每个宏模块由6X6个单元模块元缝排列而成,深色边宏模块的最外一圈单元模块全部是深色,浅色边宏模块的最外一圈单元模块全部是浅色。宏模块的最外一圈单元模块不表示数据,用于识别与定位。在20个边框单元模块内部总共有16个单元模块:bo, bl , bl5 0每个单元模块表示1位二进制数,深色对应1,浅色对应00 bl5和b14单元模块用来表示层标识号,bl5为高位。b6到bo表示第1个码字,bl3到b7表示第2个码字,bl3和比分别是码字的最高位。a) 深色边宏模块b) 浅色边宏模块固3宏模块结构图3中两个宏模块的数据均为(2D)HEX和(4A)HEX。图中第1个

14、码字b6b。为(0101101)BIN,即(2D)HEX;第2个码宇bl3 b7为(l001010)BIN,即(4A)HEX 。层标识号b15b14为(lO)sINp (2)HEX 0 5.3 宏模块的分层GM码由边长为奇数个宏模块的方阵组成。见图4,方阵中心的宏摸块称为中心宏模块,中心宏模块(第0层)周围的8个宏模块为第1层宏模块,第1层宏模块外侧的16个宏模块为第2层宏模块,.,直至最外层宏模块。中心宏模块第1层第2层图4宏模块的分层宏模块的层数(不包括中心宏模块)等于GM码的版本(见表1)。5 G/T 27766-2011 5.4 层标识号每个宏模块都有一个层标识号,层标识号的取值为03

15、0同一层宏模块的层标识号相同。宏模块的层标识号由GM码的纠错等级和该宏模块所在的层号共同决定。表2是不同纠错等级的GM码各层宏模块的层标识号。表2层标识号分布从中心到第13层纠错等级中心1 2 3 4 5 6 7 8 9 10 11 12 13 5 。1 2 3 。1 2 3 。1 2 3 。1 4 1 2 3 。1 2 3 。1 2 3 。1 2 3 2 3 。1 2 3 。1 2 3 。1 2 3 2 3 。1 2 3 。1 2 3 。1 2 3 。1 3 2 1 。3 2 1 。3 2 1 。3 2 5.5 填充码字当数据码字和纠错码字不能正好填满GM码的容量时,在数据码宇后加入填充码字

16、。当宏模块的第1码字Cb6到bo)是填充码字时,应填充C0000000) BIN ;当第2码字Cb13到b7)是填充码字,并且是码字流中的第1个填充码字时,应填充COOOOOOO)s1N,否则应填充cl111110 )s1N ,见图50a) 填充的深色边宏模块b) 填充的浅色边宏模块图5填充的宏模块5.6 空白区空白区为环绕在GM码四周的不小于6个单元模块宽的区域,其反射率应与浅色单元模块相同。6 符号生成6. 1 生成过程6 GM码的生成过程包括以下六个步骤:a) 数据分析:分析输入的数据,确定数据的数据编码模式。对不同的数据类型,GM码采用不同的数据编码模式进行编码,见6.3。每种模式有各

17、自的编码规则。b) 数据编码:将输入数据按照其编码模式对应的编码规则转换为位流。当需要进行模式切换时,GB/T 27766-2011 在新模式数据编码前输出模式转换码。将编码产生的位流按每7位对应一个码字的方式转换为数据码字流,最后一个码字不足7位时用0填充。c) 计算GM码版本:用户应选取可接受的最小纠错等级,根据表1可得到能容纳数据码字和纠错码字的GM码版本。若用户未选取纠错等级,使用推荐的纠错等级(见6.6.2)计算GM码版本。根据该GM码版本,采用可以容纳给定数据的最高纠错等级,并在码字流的最后添加需要的填充码字。d) 纠错编码:若数据码字和纠错码字总数大于127,应将数据码字进行分块

18、(见6.6. 3)。对每块码字分别生成纠错码字,并将纠错码字添加到该块数据码字的后面。e) 在矩阵中布置网格图形:根据GM码的版本和纠错等级,将每个宏模块的边框以及层标识号排列到矩阵中。f) 排列数据码字和纠错码宇:若码字被分块,则对各块码字进行交错排列后得到一个单一的码字流。将码字流按顺序排列到矩阵中,完成编码。6.2 数据分析对输入数据进行类型分析,按类型划分成多个段,使编码得到的位流尽量短。位流长度优化的一种方法参见附录B。6.3 模式指示6.3. 1 模式分类GM码的编码模式分数据编码模式、ECI模式和功能码模式三类,各种模式由确定的模式指示符指示。表3列出了所有的模式指示符。表3模式

19、指示符模式分类模式名称模式指示符说明汉字模式(OOO 1)BIN 每个字符用13位二进制进行编码。见6.4.1数字模式(0010)sIN 每3个字符用10位二进制进行编码。见6.4.2小写字母模式(OOl 1)B1N 每个字符用5位二进制进行编码。见6.4.3数据编码模式大写字母模式(0100)sIN 每个字符用5位二进制进行编码。见6.4.4数字字母混合模式(0101)BIN 每个字符用6位二进制进行编码。见6.4.5控制字符模式a每个字符用6位二进制进行编码。见6.4.6字节模式(O l11)BIN 每个字符用8位二进制进行编码。见6.4.7ECI模式ECI (1100)BIN 见6.4.

20、8(1000)sIN 功能码1,GS1应用标识。见6.4.9.1ENC1 (1011) BIN 功能码1,AIM应用标识。见6.4.9.1功能码模式FNC2 (1 001) BIN 功能码2,结构链接功能。见6.4.9.2FNC3 (1 01 0)s1N 功能码3,识读设备初始化数据。见6.4.9.3a只允许从小写字母模式、大写字母模式或数字字母混合模式进行切换(见6.4.6.2和6.5.1)。6.3.2 数据编码模式数据编码模式包括汉字模式、数字模式、小写字母模式、大写字母模式、数字字母混合模式、控制字7 GB/T 27766-2011 符模式和字节模式,见表3。6.3.3 ECI模式ECI

21、模式只能出现在数据的开头或模式结束转换码(见6.5.1)之后。ECI模式的模式指示符之后为ECI任务号,编码方法见6.4.8。6.3.4 功能码模式功能码分FNC1、FNC2和FNC3三类,其中FNC1包括两种模式指示符,分别对应两种应用标识,见表3。功能码只能在GM码的开头出现。一个GM码使用功能码时,其模式指示符应出现在数据编码位流的前面。一个GM码最多可以使用两个功能码。6.3.5 无效的模式指示符模式指示符(OOOO)sIN、(Ol1O)slN、(1101)B1N、(ll1O)slN和(111 l)BIN表示元效。6.4 数据编码模式6.4. 1 汉字模式6. 4. 1. 1 编码字符

22、可编码字符包括:a) GB 18030双字节1区及双字节2区的字符(即第一字节值在(Al)HEX至(A9)HEX或(BO)HEX至(F7) HEX之间,且第二字节值在(AO)HEX至(FF)HEX之间的部分); b) 回车换行气GBjT1988中值13、10的组合); c) 数字对00到99;d) 8位字节型数据。注:GB 18030除双字节1区及双字节2区以外的字符不能用汉字模式编码,可用字节模式编码。6.4. 1. 2 编码规则汉字模式采用13位二进制进行编码。当一个GB18030双字节字符第一字节值在(A1)HEX至(A9)HEX之间,且第二字节值在(AO)HEX至(FF)HEX之间时,

23、按式(1)计算该字符的13位编码:N=(Cj一(A1)HEX)X (60)HEX + (C2一(AO)HEX)式中:N一一字符的13位编码;C, GB 18030编码的第一字节值;C2一-GB18030编码的第二字节值。. ( 1 ) 当一个GB18030双字节宇符第一字节值在(BO)HEX至(F7)HEX之间,且第二字节值在(AO)HEX至(FF)HEX之间时,按式(2)计算该字符的13位编码:8 N=(C1一(BO)HEX+ 9) X (60)HEX + (C2一(AO)HEX)(2 ) 式中zN一一一字符的13位编码;C1一-GB18030编码的第一字节值;C2 - -GB 18030编

24、码的第二宇节值。式。)及式(2)定义了。至7775之间的编码值,以下方式用于定义7776至8191的编码值zGB/T 27766-2011 a) 7776赋给回车换行符;b) 7777至8032赋给8位宇节数据(0至255),用于编码混在汉字信息中的非汉字数据,减小个别非汉字模式的数据嵌在一段汉字中导致的模式转换开销;c) 8033至8132赋给数字对00到四;d) 8160至8165用于实现模式的转换,见6.5.1;e) 编码值8133至8159及编码值8166至8191是元效的。两个编码示例见表4。表4汉字编码示例步骤说明例11 输入字符¥ 2 GB 18030编码(A3A4)HEX 代人

25、公式(1)或公式(2)(A3hEX一(Al)HEX)X (60)HEX十3 (A4)H口(AO)HEX) 4 计算结果(C4)HEX 5 转化为13位二进制值0000011000100 6.4.2 数字模式6.4.2. 1 编码字符可编码字符包括:a) 数字0至9(GB/T1988值4857); b) 空格(GB/T1988值32);c) +(GB/T 1988值43);d) 一(GB/T1988值45);e) 气气GB/T1988值46); f) , (GB/T 1988值44);g) 回车换行(GB/T1988值13、10的组合)。6.4.2.2 编码规则例2多(B6EO) HEX (B6

26、)HEX一(BO)HEX+ 9) X (60)HEX十( (EO)HEX一(AO)H口)(5EO)HEX 0010111100000 以连续的三个数字为一组将数据分组,每3个数字采用10位二进制进行编码。遇到非数字字符则将该字符包含到分组中,每组中最多只能有一个非数字字符,多余的非数字字符不能按数字模式编码。末尾一组不够三个数字用0填充。在输出第一组数字的编码前先输出2位计数器,记录最后一个分组填充的数字个数,译码时根据该计数器丢弃填充数字:a) 00表示没有填充数字;b) 01表示有1个填充数字;c) 10表示有2个填充数字;d) 11为元效编码。编码只有数字字符的组时,按式。)计算该组的1

27、0位编码:N = 100Dj十10D2+ D3 ( 3 ) 式中:N 数字组的10位编码;9 GB/T 27766-2011 DI一一一数字组的第一个数字;Dz一一数字组的第二个数字;D3一一数字组的第三个数字。当分组中包含非数字字符时,非数字字符出现在分组中的位置有三种情况,分别是(X表示非数字字符):第1位置为XDI Dz D3;第2位置为DIX Dz D3;第3位置为DIDz X D3 0 同一个非数字字符处在不同的位置有不同的编码,非数字字符在不同位置时的赋码见表5。表5非数字字符赋码表字符在分组中的位置编码(十进制数)1 1000 空格(GB/T1988值32)2 1001 3 10

28、02 1 1003 十(GB/T198$值43)2 1004 3 1005 1 1006 一(GB/T1988值45)2 1007 3 1008 1009 . (GB/T 1988值46)2 1010 3 1011 l 1012 ,(GB/T 1988值44)2 1tl1 3 3 1014 1 101豆回车换行(GB/T988值2 1016 13、10的组合)3 1017 编码含有非数字字符的分组时,先输出非数字字符的10位工进制编码,然后再按式(3)计算并输出3个数字的10位二进制编码。剩下的编码值1018至1023用于实现模式的转换,见6.5.1。示例:输入数据:1,234,567.899

29、分组z1 ,23 4,56 编码十进制值:2 1013 123 1013 456 7.89 1010 789 900 900 转换为二进制:10 1111110101 0001111011 1111110101 0111001000 1111110010 1100010101 1110000100 6.4.3 小写字母模式6.4.3.1 编码字符可编码字符27个,包括26个小写英文字母az以及空格(GB/T1988中值32)。10 GB/T 27766-2011 6.4.3.2 编码规则小写字母模式采用5位二进制进行编码,按顺序从a到z最后空格递增编码,字母气的编码为(OOOOO)BIN。剩下

30、的5个编码值(1101lhIN至(11111hIN用于实现模式的转换,见6.5.10示f91J: 输入数据:编码十进制值2转换为二进制2b 1 00001 r 空格c e d 3 00011 a 。17 26 2 10001 11010 00010 0 00000 14 01110 4 00100 6.4.4 大写字母模式6.4.4.1 编码字符可编码宇符27个,包括26个大写英文字母AZ以及空格(GB/T1988中值32)。6.4.4.2 编码规则大写字母模式采用5位二进制进行编码,按顺序从A到Z最后空格递增编码,字母A的编码为(OOOOOhIN 0剩下的5个编码值(11011)BIN至(1

31、1111)BIN用于实现模式的转换,见6.5.10示f91J: 输入数据:编码十进制值2转换为二进制:B 1 00001 A 0 00000 R 空格c 17 26 2 10001 11010 00010 14 01110 。D 3 00011 nu E4M AU nu 6.4.5 数字字母混合模式6.4.5.1 编码字符可编码字符63个,包括:a) 数字0至9(GB/T1988中值4857); b) 大写英文字母AZ(GB/T1988中值65至90);c) 小写英文字母az(GB/T1988中值97至122);d) 空格(GB/T1988中值32)。6.4.5.2 编码规则数字字母混合模式采

32、用6位二进制进行编码,按顺序从数字、大写英文字母、小写英文字母最后空格递增编码,数字0的编码为(000000)BIN。剩下的1个编码值(111111hIN用于实现模式的转换,见6.5.10示例:输入数据:编码十进制值2转换为二进制zo A b 空格o 10 37 62 000000 001010 100101 111110 6.4.6 控制字符模式6.4.6.1 编码字符可编码字符64个,包括除以下字符外的GB/T1988宇符:11 G/T 27766-20门a) 空格(GB/T1988中值32);b) 数字宇符(GB/T1988中值48至57);c) 大写英文字母(GB/T1988中值65至

33、90); d) 小写英文字母(GB/T1988中值97至122);e) DEL(GB/T 1988中值127)。6.4.6.2 编码规则控制字符模式采用6位二进制进行编码,按字符的GB/T1988中值由小至大顺序编码,第一个字符编码为(000000)BIN 0该模式的数据长度固定为1,编码后自动切换回之前的数据模式。输入数据的第一个字符不能分类为该模式。控制字符编码见表6.表6撞制字符编码表字符编码字符编码字符编码字符编码NUL 。DLE 16 32 F 48 SOH 1 DC1 17 11 33 51 EOT 4 DC4 20 % 36 ? 52 ENQ 5 NAK 21 & 37 53 A

34、CK 6 SYN 22 , 38 54 BEL 7 ETB 23 39 55 BS 8 CAN 24 -1 0 56 HT 9 HM 25 * 41 57 LF 10 SUB 26 十-1 2 58 一一VT 11 ESC 27 , 43 50 FF 12 FS 28 44 60 一一CR 13 GS 29 45 61 SO 14 RS 30 / 4f.i 62 SI 15 US 31 47 63 : J一6.4.7 字节模式字节模式采用8位二进制数编码0到255的字节数据。设输入数据的长度为L个字节,则先输出9位二进制元符号数L-1,用于记录字节数,随后直接输出字节数据本身。当输入数据的长度

35、大于512字节时,将输入数据分割成多个数据段,每段长度不超过512宇节,对每段数据分别编码。从第二段开始的每段数据都需要以模式转换码(0111) B1N和用9位二进制元符号数编码的该段数据长度开始。6.4.8 ECI模式6.4.8.1 ECI编码将输入的数据转换为一个位流。以缺省的ECI开始时,位流的开头为第一个数据类型的模式指示GB/T 27766-2011 符,否则,其前面要有ECI标头,后面为一个或多个不同模式的段。ECI标头由ECI模式指示符(1100)slN和ECI任务号组成。ECI的任务号为000000811799(十进制)之间的6位数。ECI任务号的编码见表70表7ECI任务号的

36、编码ECI任务号任务号编码000000001023 Obbbbbbbbbb 001024032767 10bbbbbbbbbbbbbbb 032768811799 11bbbbbbbbbbbbbbbbbbbb 注:bb是ECI任务号的二进制值。ECI模式指示符只能在数据的开头或模式结束转换码(见6.5.1)之后出现。输入的ECI数据需要编码系统作为一系列8位字节的值进行处理,可以采用汉字、数字、小写字母、大写字母、数字字母混合、控制字符、字节等一种或几种模式进行最高效的编码,而不必考虑其实际意义。例如,值为30Hex到39日目的数据序列可以当作一个数字序列,用数字模式进行编码,即使实际上它并不

37、表示数字字符。示9IJ: ECI编码表示:ECI任务号:400123待编码数据的字节值:(31) HEX , (32) HEX , (33) HEX , (34) HEX , (35hEX , (36) HEX , (37) HEX ,( 38) HEX , (39) HEX 0 编码位流2a) ECI模式指示符:1100;b) ECI任务号:1101100001101011111011;0 数据模式指示符(数字):0010;d) 数据编码:00000111101101110010001100010101;e) 最终的位流:11001101100001101011111011001000000

38、1111011011100100011000101010 6.4.8.2 ECI与结构链接ECI可以在单个GM码或GM码结构链接符号的任意位置出现。引人的任-ECI一直保持有效,直至数据结束或-个新的ECI被引人,ECI将跨结构链接中的两个或多个GM码一直保持有效。6.4.9 功能码模式6.4.9. 1 FNC1 FNC1模式指示符应在GM码的开头编码。结构链接模式同时被应用时,FNC1的模式指示符只在结构链接的第一个符号出现,并且FNC1的模式指示符在FNC2的模式指示符之前。FNC1模式指示符(1000)BlN用于标识按GS1系统规则格式化信息的符号。FNC1模式指示符(1011)BIN用

39、于标识按AIM同意的特定行业或者特定应用规范格式化信息的符号。在第一数据字符位置的字符(az,AZ,或两位数字)用于指定特定的应用。6. 4. 9. 2 FNC2 FNC2功能码用于实现结构链接功能,输入的数据可用最多16个GM码链接起来。每个结构链结中的符号都是由一个4字段(20位)链接控制头开始的:a) 第一宇段是4位的FNC2模式指示符(1001)BIN;b) 第二字段是8位的文件签名;13 GB/T 27766-2011 c) 第三字段用4位数n表示链接中的GM码总个数为n+l;d) 第四字段用4位数m表示当前GM码在结构链接中的序号。m应小于或等于n,否则该GM码是无效的。文件签名是

40、用某种签名算法对输入的整体数据产生的签名,同一个结构链接中的所有符号的文件签名应相同,防止不同结构链接之间的符号互相串扰。FNC2应是符号中的最后一个功能码,FNC2链接控制头之后应是数据模式指示符或ECI模式指示符。在传输结构链接的符号数据之前,结构链接中的所有符号应全部被解码成功并且将数据还原为正确的顺序。6. 4. 9. 3 FNC3 FNC3功能码用于实现将符号编码的内容用作识读设备的初始化参数。FNC3的模式指示符(1010)sJN应出现在数据编码位流之前。当FNC3和FNC2同时被应用时,FNC3的模式指示符应在FNC2的模式指示符之前,且只在结构链接的第一个符号出现。FNC3不能

41、与FNCl同时使用。6.5 混合模式编码6.5. 1 编码模式转换数据编码时的模式转换是通过输出模式转换码来实现的,不是任何两个模式都可以转换的。表8列出了全部的模式转换码,括号中是模式转换码的二进制位数。表8数据模式转换码下一编码模式当前编码模式模式结束汉字数字小写字母大写字母数字字控制字符字节母混合(切换)8160 8161 8162 8163 8164 8165 汉字* * (13位)(13位(13位)(13位)(13位(13位)1018 1019 1020 1021 1022 1023 数字* * (10位)(10位(10位)(10位)(10位)(10位)27 28 29 30 124

42、 125 126 小写字母* (5位)(5位)(5位)(5位)(7位)(7位)a(7位Y27 28 29 30 124 125 126 大写字母* (5位)(5位)(5位)(5位(7位Y(7位)a(7位Y1008 1009 1010 1011 1012 1014 1015 数字字母混合* (10位(10位)(10位)(10位)(10位)(10位)(10位)。1 2 3 4 5 7 字节* (4位)(4位)(4位)(4位)(4位)(4位)(4位)注:*号表示不允许的模式转换。a小写字母、大写字母模式到数字字母混合、控制字符、字节模式的7位转换码是5位的11111分别加上2位的00,01,10。1

43、4 6.5.2 数据编码总流程数据编码流程如下:G/T 27766-2011 a) 以编码产生的二进制位流最短为目标,将输入数据按类型划分成段,对输入数据的分段进行优化的方法参见附录B。b) 对所有数据段按照下面的步骤逐段编码:1) 存在功能码时,按表3进行编码;2) 当前数据段是第一段时,输出该段数据的模式指示符,见表3;3) 按照当前数据模式的编码规则编码当前数据段;的下一段数据编码前,首先输出当前模式到下一模式的模式转换码,见表8;5) 需要编码ECI时,首先输出模式转换码模式结束,见表8,然后编码ECI模式指示符(l100)sIN及ECI任务号(见表7),之后是下一数据段的模式指示符,

44、见表3;6) 最后一个数据段完成后,输出模式转换码模式结束,见表8。c) 需要填充位时,最后一个码字填充0。d) 需要填充码字时,第一个填充码字应当取cOOOOOOOOO )sIN ,后面的填充码字根据5.5规定的规则进行填充。6.6 纠错编码6.6. 1 纠错等级GM码采用伽罗瓦有限域GF(21)的Reed-Solomon纠错算法生成纠错码字,有限域的本原多项式为x1+x3+1,码字的位长为7位。纠错码宇应添加在数据码字流后。GM码有5个用户可选纠错等级,对应的纠错码字容量见表90表9纠错码字容量纠错等级1 2 3 4 纠错码字占总码字百分比向下合人)10% 20% 30% 40% 6.6.

45、2 纠错的选择根据GM码质量、识读设备精度以及应用的物理环境选择最佳纠错等级。表10给出了各版本GM码的推荐纠错等级。一般情况下,用户不应选择小于表10中给出的最低推荐纠错等级的GM码。纠错等级选择的用户导则参见C.20表10推荐的纠错等级版本推荐的纠错等级推荐纠错等级下的数据码字数最低推荐纠错等级最低推荐纠错等级下的数据码字数1 5 9 4 11 2 4 30 2 40 3 4 59 1 89 4 3 114 1 146 513 3 总码字的70%(向上舍入)1 总码字的90%(向上舍入)二一15 G/T 27766-2011 纠错码字可以纠正两种类型的错误,拒读错误(错误码字的位置已知)和

46、替代错误(错误码字的位置未知)。可纠正的替代错误数和拒读错误数与纠错码字数和错误检测码字数之间的关系由式(4)给出。式中:E一一拒读错误数Et 替代错误数;d-一纠错码字数;户一一错误检测码字数。e十2t=d-P ( 4 ) 在一般情况下,p=O。当大部分纠错容量用于纠正拒读错误时,则检不出替代错误的概率增加;当拒读错误的总数大于纠错码字总数的一半时,p=3;当GM码的纠错码字总数小于6时,只允许纠正替代错误(e=O,=1)。6.6.3 码字的分块与纠错码字的分配运用Reed-Solomon纠错算法生成纠错码字时码字序列的长度受到所选用有限域的限制,GM码采用的是GF(27)有限域,码字序列的长度应小于128。当数据码字的个数加上纠错码字的个数大于127时需要将数据码字分割成多个纠错块,然后分别对每个纠错块运用纠错算法生成各自的纠错码字。设GM码的总码字容量为C。将C个码字分成BI个长度为凡的块,以及B2个长度为凡的块,满足式(5)。C=B1 X N1十B2X N2 . ( 5 ) 总分块数B见式(6)。B = (C + 126) DIV 127 ( 6 ) 当C是B的整数倍时,码字分块参数为:乱=B,N1=CDIVB,B2=O,N2=O。当C不是B的整数倍时,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1