二维条码QR Code编码原理和实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二维条码QR Code编码原理和实现

二维条码QR Code编码原理和实现 摘要:在二维码编码的实现过程中,分析了QR Code二维条码的结构、编码步骤、编码原理和Reed-Solomon算法,并以数字模式为实例按照QR Code编码原理直观的描述了实现二维码QR Code的编码、纠错等功能。采用VC++的编程环境,通过对二维码编码程序反复测试,实现了二维码QR Code的编码程序设计。 关键词:QR Code;二维码;编码;VC++;纠错 中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2013)12-2904-05 条码是采用二进制概念的一种可印刷机器语言,具体地就是以“1”和“0”表示编码的特定单元组合,以排列规则的图形符号表示数据。条码技术是在20世纪70年代初快速发展并得到广泛应用的一门技术,早期的条码称为一维条码,仅仅只是一种商品的标识,不含商品的任何描述。随着现代高新技术和资料自动收集技术的发展,最初的一维条码技术已不能满足人们的需求。于是在1987年David Allais博士提出了Code49的二维码[1],这实际是把一维条码的高度截短并按行堆积的一种多行连续型长度可变条码。如今常用的二维码有:PDF417码、QR Code码、DataMatrix码等等。 1 二维码QR Code编码原理 1.1 QR Code简述 1994年9月日本Denso公司开发了一种矩阵式二维条码符号,即QR Code(Quick Response Code)快速响应矩阵码。QR Code除具有一维条码及其它二维条码所具有的优点外,还具有识读速度快、数据密度大、占用空间小的优势。QR Code基本结构如图1所示。 其中,位置探测图形、位置探测图形分隔符、定位图形:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异; 校正图形:规格确定,校正图形的数量和位置也就确定了; 格式信息:表示改二维码的纠错级别,分为L、M、Q、H; 版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21×21(版本1)如图2,到177×177(版本40),每一版本符号比前一版本的每边增加4个模块。 数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。 1.2 QR Code编码 1.2.1 QR Code编码步骤 QR Code编码的主要步骤如下: 1)数据分析:确定编码的字符类型,按相应的字符集转换成符号字符; 选择纠错等级,在规格一定的条件下,纠错等级越高其真实数据的容量越小。 2)数据编码:将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。其实知道这个数据码字序列就知道了二维码的数据内容。 3)纠错编码:按需要将上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列。 4)构造最终数据信息:在规格确定的条件下,将上面产生的序列按次序放入分块中。 5)构造矩阵:将探测图形、分隔符、定位图形、校正图形和码字模块放入矩阵中。 6)掩摸:将掩摸图形用于符号的编码区域,使得二维码图形中的深色和浅色(黑色和白色)区域能够比率最优的分布,提高阅读的可靠性。 7)格式和版本信息:生成格式和版本信息放入相应区域内。 1.2.2 Reed-Solomon算法 1960年Reed和Solomon共同提出了一种纠正随机错误和突发错误的编码,及Reed-Solomon(简称RS)码。RS码是循环码的一种,在伽罗华域GF(2m)中对数据位进行编码。若a∈GF(2m)对于纠正r个错误符号的RS码生成多项式[2]可表示为: g(x)=(x+a)(x+a2)(x+a3)……(x+a2r) (1) 若原始信息的多项式为:m(x)=(a0+a1x+a2x2+……+ak-1xk-1),进行RS编码后的表达式[2]为: d(x)=x2rm(x)+x2rm(x) mod g(x) (2) 其中:x2rm(x)是原始数据码;x2rm(x) mod g(x)是纠错码字部分。 1.2.3 编码实例 为了能使QR Code生成有个直观了解,下面举例进行说明。 例如:以这8个字符为例,采用数字模式,编码一个版本号为1-M纠错等级的QR Code。 1)将输入字符分为3个一组,剩下的2个或1个一组,且将每一组都转换为10位或7位二进制数; 012:0000001100 345:0101011001 67 :1000011 得到二进

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档