APP下载

二维码技术的生成原理的分析与研究

2017-09-07张灵凤

电子设计工程 2017年17期
关键词:码字字符二维码

张灵凤,冯 锋,黄 恒,2

(1.宁夏大学 信息工程学院,宁夏 银川 750021;2.中国矿业大学 银川学院,宁夏 银川 750011)

二维码技术的生成原理的分析与研究

张灵凤1,冯 锋1,黄 恒1,2

(1.宁夏大学 信息工程学院,宁夏 银川 750021;2.中国矿业大学 银川学院,宁夏 银川 750011)

本文针对二维码编译原理进行了深入分析和研究,并详细描述了QR Code技术生成二维码过程中的编译规则,分别对数据编码和纠错码编码进行了全面分析,最后还简单介绍了使生成的二维码矩阵布局更合理以便于扫码器更清楚的读取信息的掩码。二维码采用双维更高效编码的方法,通过详细描述二维码编译原理,和引入实例进行说明验证,进一步说明了二维码双维编码的高效性;在代码编制上利用构成计算机内部逻辑基础的"0"、"1"比特流的概念的巧妙性;和生活中二维码使用的方便性。

二维码;编译规则;数据编码;QR Code技术

二维码(2-dimensional bar code)又叫做二维条码,它是在一维条形码的基础上发展起来的一种二维条码,在功能方面,与一维条形码有许多共同功能,在从一维向二维发展的过程中,也具备了二维码独特的功能。二维码识别信息的方法是通过图象进行读码,有专门的扫码器和扫码软件,自动辨别读取信息从而实现了信息处理自动化,它的图形编译规则和条码技术具有一些共性 (每一种码制都有其特定的字符集,每个字符都占有一定的宽度,都具有一定的校验功能等)。但同时又具有对不同领域的信息自动识别功能和处理图形旋转变化点。

1 二维码的技术特点

1)可以高密度编码,信息容量大

2)编码范围广。

3)容错能力强,具有纠错功能。

4)译码可靠性高。

5)可引入加密措施。

6)成本低,易制作,持久耐用。

2 二维码的功能特点

1)信息获取(名片、地图、WIFI密码、资料)

名片、地图、WIFI密码、资料等信息,都可以编码成二维码,二维码识别设备可以自动识别获取。

2)网站跳转

二维码扫描可以实现页面跳转到微博、手机网站、pc网站。

3)广告推送

通过二维码存放广告地址,推荐客户扫码进行广告宣传。

4)手机电商

用户通过扫码,手机直接购物下单。

5)防伪溯源

用户扫码即可查看物品的生产地,后台商家也可以获取最终产品的消费地。

6)优惠促销

用户扫码,可以下载电子优惠券和抽奖。

7)会员管理

8)用户手机上扫码获取电子会员信息和享受VIP服务。

9)手机支付

扫描商品二维码,通过银行或第三方支付提供的手机端通道完成商品支付。

3 QR Code编码原理

本文主要针对我们生活中常见的QR Code进行简单的介绍。

3.1 QR Code编码规格

1)编码文字集合

①数字编码(Numeric mode)

包括数字0-9,要编码的数字每3位为一组,如果数字位数不是3的倍数,最后留的1、2位数字单独成组。

②字符编码(Alphanumeric mode)

包括数字0-9,大写字母A到Z(没有小写),以及符号$、%、*、+、-、.、/、:和空格。 在编码中,字符需要先转换成字符索引表(如表1)中相应的45进制的数,再进行二进制转换。

③字节编码(Byte mode)

可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的编码。

2)数据表示

在二维码图中黑色方格代表二进制数的1,白色方格代表二进制数的0。

表1 字符索引表

3)标准尺寸

Version 1的尺寸是21*21,每增加一个版本每边增加4个模块,Version 40的尺寸是177*177。

4)资料容量

针对QR Code最大尺寸40-H计算的最大资料容量(如表2所示)。

表2 QR Code最大资料容量

5)纠错码

QR Code分为四种纠错级别,不同级别修正容量不同,级别越高修正容量越高(如表3所示),表4列出了Version1纠错码的一些特性,纠错码的作用就是即使二维码有部分残缺也能被识别。

表3 QR Code纠错码各级别修正容量

表4 纠错码的特性

6)QR Code形式

QR Code类型绘制的二维码形状是矩形,图1是一个简单的QR Code类型二维码的示例图。

3.2 QR Code标准

图1 QR Code形式二维码示例图

各QR Code编码符号是黑色和白色正方形的小方块进行排列组成的矩阵式二维条码,整个QR Code图形分为功能图形和编码区格式。位置检测图形、位置检测图形分隔符和定位图形及校正图形的结合组成功能图形。数据的编码是分为不同领域。QR Code四边的周围是空白区。图2是Version 7 QR Code的结构示例图。

图2 QR Code的结构示例图

3.3 QR Code编码原则

1)数据分析

首先确定要编码内容[17-19]的字符类型,按照转换规则转换成相应的符号字符,然后选择纠错等级,纠错等级越高其真实的编码数据的容量越小。如表5,Version1的各等级纠错码下的QR Code的数据容量。

表5 不同等级QR Code的数据容量

2)数据编码

编码就是要将指定的编码字符按编码规则转换成电脑能识别的二进制数,根据介绍,以下分别以数字和字母做两个实例进行分析讲解。在编码开始首先要确定编码字符的模式指示符,如表6所示。在编码过程中,二进制编码的字符计数码长度如表7所示。

表6 模式指示符

实例一

在Version 1的尺寸下,纠错级别为H的情况下,编码:

表7 字符计数指标的字节位数

实例二

在Version 1的尺寸下,纠错级别为M的情况下,编码:I COME FROME CHINA.

①从字符索引表中找到I COME FROME CHINA.这 18 个字条的索引如下:(18,36,12,24,22,14,36,15,27,24,22,36,12,17,18,23,10,42)。

②两两分组: (18,36)(12,24)(22,14)(36,15)(27,24)(22,36)(12,17)(18,23)(10,42)。

③把每一组转成11 bits的二进制:

(18,36)18*45+36等于846转成 01101001110

(12,24)12*45+24等于564转成 01000110100

(22,14)22*45+14 等于 1004转成01111101100

(36,15)36*45+15 等于 1635转成11001100011

(27,24)27*45+24 等于 1239转成10011010111

(22,36)22*45+36 等于 1026转成10000000010

(12,17)12*45+17等于557转成 01000101101

(18,23)18*45+23等于833转成 01101000001

(10,42)10*45+42 等于 492 转成 00111101100

④然后把这些二进制连接起来:

⑤把字符的个数转成二进制(查表7 Version 1-M为9 bits):18个字符,18转成 000010010。

⑥在头上加上表5查找的字母编码标识 0010和第5步的个数编码。

⑦在结尾加上终止符0000。

⑧将第7步得到的数据计算位数,按8 bits重排,如果不是8的倍数,在数据最后加0补足,使数据总位数是8的倍数。

⑨1-M的最大长度是128(查表5),上一步得到的数据长度是120,所以还需要8位补齐码补足。补齐码就是重复11101100 00010001这两个8位字节。

3)纠错码字的生成

将数据码字分为相应数量的块(如表4是Version1的分块表),每一块分别计算出纠错码字并添加到数据码字后。

QR Code的多项式算法用位的模2算法和字节的模100011101算法。这是伽罗瓦域28以100011101表示主模块多项式:X8+X4+X3+X2+1。

数据码字是多项式的系数,第一个数据码字是最高次项的系数,最低次项的系数是第一个纠错码字前的最后一个数据码字。

纠错码字是数据码字被纠错码多项式g(x)除得的余数。余数的最高次项系数是第一个纠错码,以此类推,最低此项系数是最后一个纠错码字,也是整个块的最后一个码字。

纠错算法可以用图3所示的除法电路来实现。

图3 纠错码字编码电路

4)构成信息的最终码字序列

综上所述,最终码字序列包括数据码字、纠错码字和必要时的剩余码字,构造最终码字序列的步骤如下:

①根据版本和纠错等级将数据码字序列分为n块。

②对每一块算出相应的纠错码字。

③按顺序依次将每一块的数据和纠错码字装配成最终序列:数据块1的码字1;数据块2的码字1;数据块3的码字1;……数据块n的最后一个码字;纠错块1的码字1;纠错块2的码字1;纠错块3的码字1;……纠错块n的最后一个码字。例如5-H版本的分块情况如图4所示。

图4 5-H版本数据编码分块情况

5-H版本的最终码字序列是:D1,D12,D23,D35,D2,D13,D24,D36, … ,D11,D22,D33,D45,D34,D46,E1,E23,E45,E67,E2,E24,E46,E68,… ,E22,E44,E66,E88。 在必要的情况下,要在码字的最后加上剩余位0。

5)码字在矩阵中的布置

在QR Code中符号中包括规则和不规则两种类型的符号字符。符号字符是以2个模块宽从符号的右下角开始分配布置,并自右向左,从下向上或从上向下交替进行。

具体情况的字符位的布置如图5、图6和图7所示。

图5 向上或向下的规则字符位的布置

图6 布置方向改变字符位的布置

图7 临近校正图形字符位的布置

然后是填接我们的最终编码,最终编码的填充方式从右下角开始填我们的各个bits,1是黑色,0是白色。如果遇到了上面的非数据区,则绕开或跳过。

6)掩码

这样下来,我们的图就填好了,但是,也许那些点并不均衡,为了QR Code阅读的可靠性,最好均衡的安排矩阵中的黑白模块,所以,我们还要进行掩模,QR有8个掩模图形可以使用。所谓掩模,就是和上面生成的图做XOR操作。掩模只会和数据区进行XOR操作,不会影响功能区。

4 结 论

上个世纪八十年代末就有国家开始了二维码的研究,对二维码表示符号问题已经开始研制出许多种码制,无论哪一种二维码信息存放密度都比一维码要高。二十世纪九十年代初我国才正式开始对二维码的研究,如今二维码已经普及到我们生活的方方面面。在当今社会,手机扫码的普及伴随着二维码已经普遍被人们使用。本文在结合生活中对二维码的接触使用进一步深入分析了二维码如何编译信息、纠错码的容错机制以及码字的矩阵排列。进一步体现了二维码高密度编码的优势,单位面积内信息容量大且编码范围广;二维码除了编码信息还有还有容错能力,有纠错功能,这样有效的增加了译码的可靠性;根据我们的生活经验,手机随时随地扫二维码,方便快捷,成本也低,网上有专门的二维码制作工具,制作过程简单,而且持久耐用。

[1]张君枫.二维码综述 [J].消费电子,2013(14):127.

[2]周娣.浅谈二维码的应用[J].齐鲁工业大学学报,2011,25(2):62-64.

[3]陈世平.平和蜜柚使用二维码技术 [J].中国果业信息,2012(5):60.

[4]马妮娜.浅析物联网中二维码的应用 [J].河南科技,2014(18):206.

[5]徐国辉,陈婕娴.手机二维码技术原理及应用[J].信息与电脑:理论版,2013(1):18-19.

[6]张建君.使用二维码原理的防盗弹子锁芯:CN,CN 101839089 A[P].2010.

[7]张学勇.基于二维码的票务管理系统 [D].广州:华南理工大学,2011.

[8]黄吉兰.二维条码QR Code编码原理及实现[J].电脑知识与技术学术交流,2013(12):2904-2908.

[9]林存艳.基于Android平台的QR二维码生成与解码的研究与实现[D].济南:山东师范大学,2015.

[10]刘毅华.基于手机二维码视角的企业产品与服务策略[J].消费导刊,2015(8):285.

[11]胡潇斐,蔡栋,赵爱玲.二维码技术在电力通信资源管理中的应用研究[J].数字通信世界,2016(2).

[12]时欣悦.二维码的相关问题[J].中国电子商务,2014(12):78.

[13]卜巍,段惟荣.二维码行业应用研究[C]//中国计算机用户协会网络应用分会2013年网络新技术与应用年会,2013.

[15]杨军,刘艳,杜彦蕊.关于二维码的研究和应用[J].应用科技,2002,29(11):11-13.

[16]董忠言,蒋理兴,肖凯.一种二维编码标尺的数字水准仪系统原理设计与试验进展[J].测绘科学技术学报,2015,32(2):114-119.

[17]郝杰.大规模多用户MIMO系统导频波束形成预编码算法及仿真[J].西安工业大学学报,2015,35(6):506-510.

[18]白瑀,曹岩,房亚东.面向多品种小批量制造的刀具可视化辅助编码设计[J].西安工业大学学报,2015,35(4):293-297.

[19]汪鹤,王劲松,张道农.基于FPGA的智能变电站二次设备曼彻斯特编码同步研究[J].电力信息与通信技术,2015,13(4):26-29.

Analysis and study of the principle of the generation of QR code technology

ZHANG Ling-feng1,FENG Feng1,HUANG Heng1,2
(1.College of Information Engineering,Ningxia University,Yinchuan 750021,China;2.China University of Mining Institute of Yinchuan,Yinchuan 750011,China)

QR Code compiling principle,this paper makes a deep analysis and research,and describes in detail the QR Code technology in the process of generating QR Code compiling rules,respectively for data coding and error correcting Code coding has carried on the thorough analysis,finally introduced the generated QR Code matrix layout is more reasonable to sweep Code clearer to read the information of mask.Qr code with double d more efficient coding method,through the detailed description of qr code compiling principle,and introduced the practical validation,further illustrates the efficiency of double d qr code coding;On the compiled code using which form the basis of computer internal logic"0",the concept of"1"bit stream is clever;Qr code and life of ease of use.

QR Code; compile the rules; data encoding; QR Code technology

TN919.8;TP391.11

A

1674-6236(2017)17-0001-05

2016-10-19稿件编号:201610100

国家自然科学基金(71561023);宁夏高等学校科学研究(NGY2015035)

张灵凤(1992—),女,山西太原人,硕士研究生。研究方向:RFID射频工程、无线传感器网络、互联网。

猜你喜欢

码字字符二维码
可以吃的二维码
二维码
字符代表几
一种USB接口字符液晶控制器设计
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
放 下
数据链系统中软扩频码的优选及应用
放下
让严肃的二维码呆萌起来