文档库 最新最全的文档下载
当前位置:文档库 › QR二维码介绍

QR二维码介绍

QR二维码介绍
QR二维码介绍

1范围

本标准规定了QR码符号的要求。它规定了QR码模式2符号的特征,数据字符编码,符号格式,尺寸特征,纠错规则,参考译码算法,符号质量要求,以及可由用户选择的应用参数,在附录中给出了QR码模式1符号不同于模式2的特性。

2一致性

QR码符号(及设计用于生成或识读QR码符号的设备)如果满足QR码模式2或模式1规定的要求,应认作符合本规范。然而要注意,模式2是推荐用于新的和开放式系统应用的符号方式。

3引用标准

下列标准文件所包含的条文,通过在本标准中引用而构成为本标准的条文。对于注明日期的引用标准,以后进行的补充和修改并不适用,然而,鼓励基于国际标准的协议各方对应用以下标准文件最新版本的可能性进行调研,无注明日期的引用标准适用于提交应用的最近的版本。ISO和IEC的成员仍然是当前有效标准的注册机构。

ISO/IEC 15424 信息技术——自动识别和数据采集技术

——数据载体/符号标识

ISO/IEC 15416 信息技术——自动识别和数据采集技术

——条码印刷质量测试规范

——线性条码

EN 1556 条码——术语

JIS X0201 信息交换用JIS 8位字符集

JIS X0208—1997 信息交换用日语图形字符集

ANSI X 3.4 编码字符集——信息交换用7位美国国家标准码(7位ASCII)

AIM国际技术规范扩展解释:第一部分:识别方案与协议(称作“AIM ECI规范”)4术语和定义

EN1556中的术语和下列各项适用于本标准:

4.1校正图形(Alignment Pattern)

用于确立矩阵符号位置的一个固定的参照图形,译码软件可以通过它在图象有中等程度损坏的情况下,再同步图像模块的坐标映象。

4.2字符计数指示符(Character Count Indicator)

定义某一模式下的数据串长度的位序列。

4.3ECI指示符(ECI designator)

6位数字,用于标识具体的ECI任务。

4.4编码区域(encoding region)

在符号中没有被功能图形占用,可以对数据或纠错码字进行编码的区域。

4.5扩充解释(Extended Channel Interpretation (ECI))

在某些码制中,对输出数据流允许有与缺省字符集不同的解释的协议。

4.6扩展图形(Extension Pattern)

模式1中,不表示数据的一种功能图形。

4.7格式信息(Format Information)

一种功能图形,它包含符号使用的纠错等级以及使用的掩模图形的信息,以便对编码区域的剩余部分进行译码。

4.8功能图形(function pattern)

符号中用于符号定位与特征识别的特定图形。

4.9掩模图形参考(Mask Pattern Reference)

用于符号的三位掩模图形标识符。

4.10掩模(masking)

在编码区域内,用掩模图形对位图进行XOR操作,其目的是使符号中深色与浅色模块数的比例均衡,并且减少影响图像快速处理的图形出现。

4.11模式(mode)

将特定的字符集表示成位串的方法。

4.12模式指示符(Mode Indicator)

4位标识符,指示随后的数据序列所用的编码模式。

4.13填充位(Padding Bit)

值为0,不表示数据,用于填充数据位流最后一个码字中终止符后面的空位。

4.14位置探测图形(Position Detection Pattern)

组成寻象图形的三个相同的图形之一。

4.15剩余位(Remainder Bit)

值为0,不表示数据,当编码区域不能正好被8位的码字填满时,用于填充最后一个码字后的空位。

4.16剩余码字(Remainder Codeword)

一种填充码字,当所有的数据码字和纠错码字不能正好填满符号的容量时,用于填充所空码字位置,它们紧跟在最后一个纠错码字之后。

4.17段(segment)

以同一ECI或编码模式编码的数据序列。

4.18分隔符(Separator)

全部由浅色模块组成的功能图形,宽度为一个模块,用于将位置探测图形与符号的其余部分分开。

4.19终止符(Terminator)

用于结束表示数据位流的位图0000。

4.20定位图形(Timing Pattern)

深色与浅色模块交错的图形,便于决定符号中模块的坐标。

4.21版本(Version)

用于表示符号规格的系列。某一特定版本是根据它在所允许的规格系列中的位置来确定

的。QR码所允许规格系列为21×21模块(版本1)~177×177模块(版本40)。它也可同时指示符号所应用的纠错等级。

4.22版本信息(Version Information)

在模式2符号中,包含符号版本的信息及该数据纠错位的功能图形。

5运算符(缩略符)

在公式和方程中使用的数学符号,是在它们所在的公式或方程之后定义的。

本规范中使用的数学运算符定义如下:

div 整除运算符

mod 整除后的余数

XOR 逻辑‘异或’功能,当两个输入不等时,它的输出为1。其符号表示为 。

6有关QR码的约定

6.1模块位置

为便于参考,用在符号中的行、列坐标表示模块的位置,格式为(i,j)。其中,i表示模块所在行数(从上向下计算),j表示列数(从左向右计算),记数从0开始,因此模块(0,0)是符号中左上角的模块。

6.2字节表示

字节的内容用16进制表示。

6.3版本参考

符号版本用版本V-E的方式表示,其中V表示版本号(1-40),E表示纠错等级(L,M,Q,H)。

7符号描述

本标准的条款规定了QR码模式2符号的技术规范,除非在附录M中作特别说明说明,否则也适用于模式1符号。

7.1基本特征

QR码为矩阵式二维码,具有如下特征:

a)编码字符集

1)数字型数据(数字0~9);

2)字母数字型数据(数字0~9;大写字母A~Z;9个其他字符:space ,$, %, *, +, -, ., /, :);

3)8位字节型数据(与JIS X 0201一致的JIS8位字符集(拉丁和假名));

4)日本汉字字符(与JIS X 0208附录1:转换代码表示法一致的转化JIS字符集。

注意:在QR码中的日本汉字字符的值为:8140HEX -9FFC HEX和E040HEX– EBBF HEX,

可以压缩为13位。)

5)中国汉字字符(与GB18030-2000附录A双字节字符表表示的字符集)

b)数据表示法

深色模块表示二进制1,浅色模块表示二进制0。

c)符号规格(不包括空白区)

21×21模块到177×177模块(版本1到40,每版本符号每边增加4个模块)。

d)每个符号的数据字符数(最大规格的符号—版本40-L)

1)数字数据7089个字符

2)字母数字数据4296个字符

3)8位字节数据2953 个字符

4)日本汉字数据1817个字符

5)中国汉字数据21008个字符

e)纠错的选择

4种纠错等级,可恢复的码字比例为:

L 7%

M 15%

Q 25%

H 30%

f)符号类型:矩阵

g)独立定位:是

图1为QR码符号版本1的示例。

图1 QR码符号的示例

7.2其他特征综述

以下QR码特征有些是固有的,有些是可选的:

a)结构链接(可选)

允许把数据文件用最多16个QR码符号在逻辑上连续地表示。它们可以以任意的顺序扫描,而原始数据能正确地重新连接起来。

b)掩模(固有)

可以使符号中深色与浅色模块的比例接近1:1,使因相邻模块的排列造成译码困难的可能性降为最小。

c)扩充解释(可选)

这种方式使符号可以表示缺省字符集以外的数据(如阿拉伯字符、古斯拉夫字符、希腊字母等),以及其他解释(如用一定的压缩方式表示的数据)或者对行业特点的需要进行编码。

7.3符号结构

每个QR码符号由名义上的正方形模块构成,组成一个正方形阵列,它由编码区域和包括寻象图形、分隔符、定位图形和校正图形在内的功能图形组成。功能图形不能用于数据编码。符号的四周由空白区包围。图2 为QR码版本7符号的结构图。

图2 QR码符号的结构

7.3.1符号版本和规格

QR码符号共有40种规格,分别为版本1、版本2……版本40。版本1的规格为21模块×21模块,版本2为25模块×25模块,以此类推,每一版本符号比前一版本每边增加4个模块,直到版本40,规格为177模块×177模块。图3至8为版本1,2,6,7,14,21和40的符号结构。符号

编码区

版 本1 版本2

9

5

5 图3 版本1和版本2的符号

版本6

41模块

41 模块

25

25

图4 版本6的符号

版本7

45 模块

29

29

图5 版本7的符号

版本14

57

57

图6 版本14的符号

版本

21

85

85

图7 版本21的符号

版本40

161

图8 版本40的符号

7.3.2 寻象图形

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

A: 3 模块

B: 5 模块 C: 7 模块

图9 位置探测图形的结构

7.3.3 分隔符

在每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,如图2所示,它全部由浅色模块组成。

7.3.4 定位图形

水平和垂直定位图形分别为一个模块宽的一行和一列,由深色浅色模块交替组成,其开始和结尾都是深色模块。水平定位图形位于上部的两个位置探测图形之间,符号的第6行。垂直定位图形位于左侧的两个位置探测图形之间,符号的第6列。它们的作用是确定符号的密度和版本,提供决定模块坐标的基准位置。 7.3.5 校正图形

每个校正图形可看作是3个重叠的同心正方形,由5×5个的深色模块,3×3个的浅色模块以及位于中心的一个深色模块组成。校正图形的数量视符号的版本号而定,在模式2的符号中,版本2以上(含版本2)的符号均有校正图形,详见附录E 。 7.3.6 编码区域

编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号字符。符号字符的详细内容见8.7.1,格式信息的详细内容见8.9,版本信息的详细内容见8.10。 7.3.7 空白区

空白区为环绕在符号四周的4个模块宽的区域,其反射率应与浅色模块相同。 8 要求

8.1 编码方法综述

第一步 数据分析

分析所输入的数据流,确定要进行编码的字符的类型。QR 码支持扩充解释,可以对与缺省的字符集不同的数据进行编码。QR 码包括几种不同的模式(见8.3),以便高效地将不同的字符子集转换为符号字符。必要时可以进行模式之间的转换更高效地将数据转换,以便为二进制串。

选择所需的错误检测和纠正等级。如果用户没有指定所采用的符号版本,则选择与数据相适应的最小的版本。表1为全部符号版本及其容量。

表1 QR码各版本符号的数据容量

注*码字的长度为8位。

第二步数据编码

对于采用的模式按照8.4.1至8.4.5所定义的规则,将数据字符转换为位流。在当需要进行模式转换时,在新的模式段开始前加入模式指示符进行模式转换。在数据序列后面加入终止符。将产生的位流分为每8位一个码字。必要时加入填充字符以填满按照版本要求的数据码字数。

第三步纠错编码

按需要将码字序列分块(见表13~22),以便按块生成相应的纠错码字,并将其加入到相应的数据码字序列的后面。

第四步构造最终信息

按8.6节(第三步)的描述,在每一块中置入数据和纠错码字,必要时加剩余位。

第五步在矩阵中布置模块

将寻象图形、分隔符、定位图形、校正图形与码字模块一起放入矩阵。

第六步掩模

依次将掩模图形用于符号的编码区域。评价结果,并选择其中使深色浅色模块比率最优且使不希望出现的图形最少化的结果。

第七步格式和版本信息

生成格式和版本信息(如果用到时),形成符号。

8.2数据分析

分析输入数据,确定其内容并且选择采用缺省的或者其它适当的ECI以及适当的模式,对每个序列编码,其详细描述见8.4。从数字模式到日本汉字模式,每种模式的字符所需的位数依次增加。在符号中可以通过模式的转换使数据的位流长度最短,部分数据用一种模式编码可以比其它部分的编码效率更高。例如:数字序列后跟随字母数字序列。理论上说,用每个数据字符所需的位数最少的模式进行编码是最高效的,但每次模式转换时都需要有相关模式指示符和字符数量指示符等形式的附加开销,因此,对于较少的字符数,模式的转换并不总是能使位流总量最少,有关这方面的说明见附录H。同时,由于各个版本的容量的增加是步进的,所以不一定在任何情况下都要达到最高的转换效率。

8.3模式

下列模式是根据缺省的ECI有关的字符值与任务定义的。如果采用其他的ECI,那么选择最佳的压缩模式就应使用字节值而不是具体的字符任务。例如:如果数据字节序列的值在30HEX至39HEX之间,应使用数字模式。这种情况下,用字节值相应的缺省的数字或者字母数字进行压缩。

8.3.1扩充解释(ECI)模式

扩充解释(ECI)协议允许输出的数据流有与缺省的字符集不同的解释。ECI协议在一些码制中有一致的定义。QR码支持4大类解释。

a)国际字符集(或码页)

b)用于诸如加密或压缩等一般目的的解释

c)闭环系统中用户自定义的解释

d)无缓冲模式中用于结构链接的控制信息

ECI协议在AIM ECI规范中有全面的定义,协议提供了一个对印刷前和译码后的字节值进行详细解释的方法。

QR码的缺省解释是ECI 000020,表示JIS8和转换JIS字符集。

8.3.2数字模式

数字模式对十进制数字0~9(ASCII值30HEX至39HEX)编码,通常的密度为每10位表示3个字符。

8.3.3字母数字模式

字母数字模式对45个字符的字符集进行编码,即:10个数字0~9(ASCII值30HEX至39HEX),26个字母字符A~Z(ASCII值41HEX至5A HEX)以及9个符号SP、$、%、*、+、-、.、/、:(ASCII值分别为20HEX,24HEX,25HEX,2A HEX,2B HEX,2D HEX,2E HEX,2F HEX,3A HEX)。通常情况下,两个输入字符用11位表示。

8.3.48位字节模式

8位字节模式用于表示与JIS X 0201一致的8位拉丁/假名字符集(字符值为00HEX至FF HEX),其编码密度为每个字符8位。

8.3.5日本汉字模式

日本汉字模式用于表示与基于JIS X 0208的转换JIS系统一致的日本汉字字符。转换JIS值由JIS X 0208转换而来。具体内容见JIS X 0208附录1转换代码表示法。每个双字节字符由13位二进制码字表示。

8.3.6中国汉字模式

8.3.7混合模式

QR码符号可以包含以8.3.1到8.3.5中描述的多种模式所表示的混合数据序列。

用混合模式表示已知数据的最高效方法的选择方法见附录H。

8.3.8结构链接模式

结构链接模式用于把一个数据文件分开表示为多个QR码符号的序列,要求所有的符号可以识读并且数据可以按正确的顺序重新建立。每个符号都要有一个结构链接头,以标识这个序列的长度及该符号在其中的位置,并且检验是否所有识读的符号属于同一个文件。结构链接模式的编码详见第9章。

8.3.9FNC1模式

FNC1模式用于表示按UCC/EAN应用标识标准或国际AIM协会已经同意的具体行业标准格式化的数据。

8.4数据编码

输入的数据转变为一个位流,如果最开始的ECI不是缺省的ECI,其前面要有ECI标头,后面为一个或多个不同模式的段,如果以缺省的ECI开始,位流的开头为第一个模式的指示符。

ECI标头(如果有)应包含如下内容:

——ECI模式指示符(4位)

——ECI指定符(8,16或24位)

位流的其余部分的第一段由以下内容组成,它们包含:

——模式指示符(4位)

——字符计数指示符

——数据位流

ECI标头由ECI模式指示符的最高位开始,以ECI指定符的最低位结束。每个模式段以模式指示符的最高位开始,以数据位流的最低位结束。由于段的长度已经由采用模式的规则以及数据字符数明确地确定,段与段之间没有特定的分隔。

在8.4.1至8.4.6中定义了在给定的模式中对输入的数据序列编码的步骤。表2定义了每个模式的模式指示符。表3定义了采用不同模式和符号版本的字符计数指示符的长度。

表2 模式指示符

表3 字符计数指示符的位数

整个符号的结束由4位终止符0000表示,当符号数据位流后所余的容量不足4位时,终止符将被截短。终止符本身不是模式指示符。

8.4.1扩充解释(ECI)模式

本模式用于按可选的字节值解释(例如不同的字符集)对某类数据进行编码,可选的字节值解释应符合AIM ECI规范中对该类数据进行预处理的规则。模式用模式指示符0111引入。不需要引入QR码缺省扩充解释(ECI头000020,对应于JIS8/转换JIS字符集),尤其是在任何符号的开始。

ECI只能用于识读器可以传送符号标识的情况,不能传送符号标识的识读器无法从包含ECI的符号中传输数据。

输入的ECI数据需要编码系统作为一系列8位字节的值进行处理。

ECI序列中的数据可以一种或几种模式对其字节值进行最高效编码,而不必考虑其实际意义。例如:值为30HEX到39HEX的数据序列可以当作一个数字0-9序列,用数字模式进行编码(见8.4.2),即使也许实际上它并不表示数字数据。字符计数指示符由字节的数量决定(在日本汉字模式中为双字节、中国汉字模式中为双字节)。

8.4.1.1ECI指定符

每个扩充解释被分配一个6位的任务号,它为紧接在QR符号的ECI模式指示符后的1个、2个或3个码字。其编码规则见表4。ECI模式指示符编码为ASCII/JIS8字符5C HEX(\或ISO 646 IRV中的反斜线,¥或JIS8中的日圆符号),其后跟随6位任务号。如果ASCII/JIS8字符5C HEX本身是作为数据的内容,在应用ECI协议的符号中编码前,应在数据串中重复该字符。

在译码时,第一个ECI指定符码字(ECI模式中模式指示符后的码字)的二进制图形,确定ECI指定符序列的长度。第一个“0”前面的“1”的个数量表示ECI任务号的第一个码字后的附加码字的数量。第一个“0”后面的各位,是ECI任务号的二进制表示。较低的ECI 任务号有多种编码方式,最短的方式为首选的。

例如:假设编码的数据为希腊字母,字符集为ISO 8859-7(ECI000009),符号版本为1-H。

要编码的数据 E:(字符值 A1HEX, A2HEX, A3HEX, A4HEX, A5HEX) 符号中的位序列:

ECI模式指示符0111

ECI任务号(000009)00001001

模式指示符(8位字节)0100

字符计数指示符(5)00000101

数据:10100001 10100010 10100011 10100100 10100101 最终的位串:0111 00001001 0100 00000101 10100001 10100010

10100011 10100100 10100101

该数据译码后传送的例子见15.2节。

8.4.1.2多种ECI

请参阅AIM ECI规范中规定的ECI数据段中有关ECI指定符的作用的规则。例如,已经应用某一字符集ECI的数据也可用一个与初始的ECI共存的非字符集ECI加密或压缩,或者第二个ECI可以取消第一个ECI并开始一个新的ECI段。在数据中出现任何ECI指定符都要按8.4.1.1在QR码符号中编码并开始一个新的模式段。

8.4.1.3ECI和结构链接

引入任何ECI,必须遵从上述规则及AIM的ECI规范,直到编码数据的结束或者出现另一个ECI(由模式指示符0111表示)。如果ECI编码的数据以结构链接的模式延伸到两个或更多的符号,那么,在每一个继续使用该ECI模式的后续符号中,需提供一个由ECI模式提

示符和ECI指定符组成的ECI标头,该标头紧跟在结构链接头之后。

8.4.2数字模式

将输入的数据每三位分为一组,将每组数据转换为10位二进制数。如果所输入的数据的位数不是3的整数倍,所余的1位或2位数字应分别转换为4位或7位二进制数。将二进制数据连接起来并在前面加上模式指示符和字符计数指示符。数字模式中字符计数指示符如表3中定义的有10、12或14位。输入的数据字符的数量转换为10、12或14位二进制数后,放置在模式指示符之后,二进制数据序列之前。

例1 (符号版本1-H)

输入的数据:01234567

1) 分为3位一组:012 345 67

2) 将每组转换为二进制: 012→0000001100

345→010*******

67 →1000011

3) 将二进制数连接为一个序列:0000001100 010******* 1000011

4) 将字符计数指示符转换为二进制(版本1-H为10位):

字符数为:8→0000001000

5) 加入模式指示符0001以及字符计数指示符的二进制数据:

0001 0000001000 0000001100 010******* 1000011

例2 (符号版本1-H)

输入的数据:0123456789012345

1) 分为3位一组:012 345 678 901 234 5

2) 将每组转换为二进制: 012→0000001100

345→010*******

678→1010100110

901→1110000101

234→0011101010

5 →0101

3) 将二进制数连接为一个序列:

0000001100 010******* 1010100110 1110000101 0011101010 0101

4) 将字符计数指示符转换为二进制(版本1-H为10位):

字符数为:16→0000010000

5) 加入模式指示符0001以及字符计数指示符的二进制数据:

0001 0000010000 0000001100 010******* 1010100110 1110000101 0011101010 0101 数字模式中位流的长度计算公式如下:

B = 4 +

C + 10(

D DIV 3) + R

其中:B=位流的位数

C=字符计数指示符的位数(根据表3)

D=输入的数据字符数

R=0 当(D MOD 3)=0

R=4 当(D MOD 3)=1

R=7 当(D MOD 3)=2

8.4.3字母数字模式

按照表5,每个输入的字符赋于一个数值V,它的值为0到44。

表5 字母数字模式的编码/译码表

将输入的数据分为两个字符一组,用11位二进制表示。将前面字符的值乘以45与第二个字符的值相加,将所得的结果转换为11位二进制数。如果输入的数据的字符数不是2的整数倍,将最后一个字符编码为6位二进制数。将所得的二进制数据连接起来并在前面加上模式指示符和字符计数指示符,按表3的规定在字母数字模式中,字符计数指示符的长度为9、11或13位,其定义见表3。将输入的字符数编码为9、11或13位二进制数,放在模式指示符之后,二进制数据序列之前。

例(符号版本1-H)

输入的数据:AC-42

1)根据表5查出字符的值:AC-41→(10,12,41,4,2)

2)将结果分为2个一组:(10,12)(41,4)(2)

3)将每组数据转换为11位二进制数:(10,12)10*45+12→462→00111001110

(41,4)41*45+4→1849→11100111001

(2)→2→000010

4)二进制数据顺次连接:00111001110 11100111001 000010

5)将字符计数指示符转换为二进制(版本1-H为9位):

输入的字符数5→000000101

6)在二进制数据前加上模式指示符0010和字符计数指示符:

0010 000000101 00111001110 11100111001 000010

字母数据模式的二进制位流位数由下式计算:

B=4+C+11(D DIV 2)+6(D MOD 2)

其中:B=位流的位数

C=字符计数指示符的位数(根据表3)

D=输入的字符数

8.4.4 8位字节模式

在本模式中,一个8位码字直接表示一个输入数据字符的JIS8字符值,即密度为每个字符8位,如表6所示。在非缺省的其它ECI中,它直接表示一个8位字节的值。

相关文档