二维码的基本概念及演变历史

发表时间:2022-07-20 10:31

  二维码是在一维码基础上演变而来的,在设计上改善了一维条码低密度信息、存储容量较小、必须依赖数据库和通信网络等缺点,而且其自动识读技术及低廉的成本即使得二维码现已广泛应用于生活的各个方面,如生产系统、医疗系统、税务系统等等。二维码种类很多,编解码方式也是各不相同,因此不同种类二维码的应用领域也存在差异。当前热门流行的当属 QR 二维码,对二维码的研究也主要集中在该类二维码上。下文将论述二维码的基本概念,并以 QR 码为例详细分析其编解码过程及原理。



  二维码的基本概念

  20 世纪以来,二维码以其成本低廉、存储容量大、识别速度快等优点被广泛应用于各领域,移动通信技术的迅速发展将二维码技术应用推向了一个新高潮,极大地改善了人们的生活方式。接下来,将简要阐述二维码的分类及其编码的概念。

  二维码分类

  有 2 种类型的二维码,分别是行排式二维码和矩阵式二维码。对此可做分析表述如下。

  (1)行排式二维码:该类二维码由一维条码组成,在编码原理上类似于一维条码,并且通常不具备纠错能力。其中颇具代表性的有: Code49 码、Code16K 码、PDF417 码。

  (2)矩阵式二维码:该类二维码以矩阵形式组成,具有自动识别的能力,且通常都有纠错功能。其中颇具代表性的有:Data Matrix 码、Code One 码、Quick Response 码(简称 QR 码)、汉信码。

  研究可知,QR 二维码是当前最受欢迎的二维码类型之一,而且因为能对汉字进行编码,在国内的应用尤为广泛。

  二维码编码

  根据编码的对象和功能,二维码编码一般包括信息编码、纠错编码和加密编码三种。研究可得阐释总述如下。

  信息编码:是指根据不同的规则将不同的数据信息编码成二进制数据流的过程,具体流程如下图所示。



  纠错编码:是形成二维码纠错码的过程,使得生成的二维码具有一定的纠错功能。通常行排式二维码不具备纠错功能,大多数矩阵式二维码具有、纠错功能。

  加密编码:为保障二维码存储信息的安全,还需对信息进行加密,这样就可以避免传输过程中信息的泄露。

  QR 码编解码

  快速响应码,简称 QR 码,由于具有纠错和快速识别的能力、能够对汉字进行编码,已成为中国当前应用最为广泛的一种矩阵式二维码。QR 码共有 40种版本,4 个纠错等级,其图像由黑白块组成,存储着数据信息、纠错码字、版本信息等。在此,拟展开研究论述如下。

  QR 码编码

  QR 码的编码过程包括 3 个重要部分,即:数据编码、纠错码字构造和掩膜技术。这里,对每一部分,将给出研究详述如下。

  1.数据编码

  数据编码是指将原始数据通过数据分析,并按照该数据类型对应的编码模式,转换为二进制数据流的过程。其中,数据可能包括数字、字母、字符集或者汉字,不同数据形式的编码模式也不相同,下面以数字模式的编码为例说明数据编码的大致过程。输入数据 00301001105,研究步骤内容具体如下。

  (1)分为 3 位一组,剩余 1 或 2 位也为一组,也就是:003 010 011 05

  (2)进行二进制转换,将每组数看做一个十进制数,3 位一组的转换为 10 位二进制数,2 位一组的转换为 7 位二进制数,1 位一组的转换为 4 位二进制数,由此可得到:

  0000000011 0000001010 0000001011 0000101

  (3)将计数指示符转换为 10 位二进制数,不同版本 位 数 不 同,该 数 据 长 度 为 11,转 换 为:

  0000001011

  (4)添加数字模式指示符 0001 以及计数指示符得到最终二进制数据为:

  0001 0000001011 0000000011 0000001010 0000001011 0000101

  数据可能同时包括多种形式,即多种编码模式。对于这种多模式混合的情况,一般有 2 种方法,对此分述如下。

  (1)使用与数据对应的模式,在编码信息之前添加数据长度和模式编号以区分不同编码模式。此方法编码简单,但占用较多空间。

  (2)引入模式切换码字和模式转移码字,用于下一个码字的编码,随后恢复原状。此方法节约空间,但编码相对复杂。

  2.纠错码字构造

  QR 码使用 RS(Reed-Solomon)纠错码,该纠错码具有强大的纠错能力,主要用于纠正突发错误。

  RS 码的编码原理如下:

  RS 码生成的多项式为: C(X) = m(X) + r(X) =C 0+ C1 X +... + C n-1 Xn-1,其中 m(X) = C 2t X 2t +C 2t+1 X 2t+1 +... + C n-1 X n-1 为信息多项式,且 r(X)=C 0+ C1 X +... + C 2t-1 X2t-1为校验多项式。当 C(X) 是合法码字时,就必须是生成多项式 g(X) 的倍数,即C(X) = q(X)g(X) ,此 时 m(X) = q(X)g(X) +p(X),其中 p(X) 为本原多项式。研究时,根据上述原理来对 RS 码进行编码,从而生成纠错码字。

  3.掩膜技术

  在编排好 QR 码图像后增加掩膜技术,其目的旨在使得二维码图像中黑白块的分布更加均衡,避免出现图像结构相同的情况,从而提高二维码的可读性。对 QR 码进行掩膜操作的步骤见如下:

  (1) 通过不同的掩膜方案生成相应的掩膜图形。

  (2)将 QR 码图像与不同的掩膜图形分别进行异或操作。

  (3)对生成的图像进行评估,选出最适合的掩膜方案。目前使用的评估方法包括加权计分评估和基于数学统计思想的评估。

  QR 码解码

  在 QR 码的解码算法中,目前更多地使用基于图像处理的二维码解码算法,解码算法的流程即如下图所示。这里,对该流程中的核心设计内容可做重点解析论述如下。



  1.图像预处理

  在识读设备接收到 QR 码图像时,先对图像进行预处理操作,主要包括灰度化、图像平滑和图像分割。如此一来,可使图像更容易识别。此处研究中的设计表述如下。

  (1)灰度化。在大多情况下,接收的图像为彩色图像。彩色图像包含 R、G、B三种基色,每种颜色分量在 0~255 之间。通常采用加权法来进行灰度化处理。这里将用到如下公式:

  W = C R R + C G G + C B B . (1)其中,C R+ CG+ CB= 1,为三原色分量的权重。

  (2)图像平滑。在传输过程中,由于信道的干扰可能会使得图像带有噪声。图平滑就是去除这些噪声,一般采用中值滤波法。方法原理如下图所示。由下图可知,就是对当前像素点及其领域所有像素点按由小到大进行排序,选出中间值并用该值代替当前像素点的值。中指滤波法适用于QR码图像,其它滤波方法会对图像产生影响,不便于图像识读。



  (3)图像分割。是指将图像分为若干特定的区域以便进行研究,QR 码由黑、白块组成,所以一般使用二值化方法进行图像分割.也就是说,通过所选定的阈值,将图像中所有像素点与该阈值进行比较,若像素点的灰度值大于等于该阈值则将该像素点的灰度值改为 255,反之则用 0 代替该像素点的灰度值。该方法速度较快,且易于实现。

  2.定位与校正

  在对 QR 码图像进行预处理后,即涉及到图像的定位及校正。探讨后可得分析表述如下。定位实际就是确定二维码矩阵 4 个顶点的坐标,由矩形的特点分为 2 种定位方法。其一是,QR码的 3 个顶点均有位置探测图形,可以通过扫描确定这 3 个位置探测图形的中心坐标,然后计算得到第四个顶点的坐标;其二是,QR 码的 4 条边由边缘检测确定,4 条边的交点即为 4 个顶点。受光照、拍摄角度等环境问题的影响,传统的方法对二维码并不能获得较好的定位效果。近年来,学者们提出多种优化方法。例如,基于凸包及最小面积外接矩形的定位算法,该算法通过获取图像边缘的系列点集来计算其凸包及最小外接矩形,从而确定位置及角度信息,实验证明该方法比传统方法占用更少资源,节约更多时间;基于最小二乘的定位算法,该算法通过识别到的位置探测图形提取其中心坐标,进行间接调整,实现校正和定位;基于卷积神经网络的定位算法,该算法即运用滑动窗口技术将二值图像分为若干候选块,再通过训练卷积神经网络识别和分类这些候选块,以找出属于 QR 码位置探测图形的候选块,与此同时还将基于探测图形的比例特征,快速并精确地进行定位。

  校正就是针对二维码图像变形、偏移、扭曲等情况进行修正处理。图像校正可以通过旋转、平面投影转换等操作。总地来说,旋转操作主要用于图像位置发生偏转而图像形状没有发生改变的情况,若图像发生变形、扭曲等情况就需要运用平面投影转换操作。以简单的旋转操作为例,将图像逆时针旋转 θ° ,其数学表达式为:

  X = x·cosθ + y·sinθ, Y =- x·sinθ + y·cosθ.

  3. 数据纠错

  QR 码成功定位后能够确定并提取对应位置的信息,对于所接收的数据使用 Reed-Solomon 纠错算法进行纠错。Reed-Solomon 纠错过程如下:

  (1)计算校正子:校正子由信息多项式和校验码通过运算所得。

  (2)计算错误位置:根据校正子的值判断、计算错误位置。

  (3)修改错误值:找到错误的位置以更正此位置的值。

  至此,可将通过数据纠错后所获的数据流传入译码器进行译码,最终会得到初始数据,完成二维码的数据传输工作。

  二维码的应用

  二维码以其快速识别、存储信息等优势应用于生活的方方面面,例如移动支付、网页导航、票务系统、公共交通等等,给人们的生活带来诸多便利。除此之外,二维码可以和其它的众多学科领域相结合,研究可得分析综述如下。

  (1)医学领域:将二维码应用于药品流通监管中,如中药材的流通监管,中药材种类繁多,监管难度较大。通过实验获取每种药材的 DNA 序列,选取其中一段标准且相对短的序列作为序列号进行编码,生成二维码图像,这样就将便于对药材实施有效监管。与此相似的应用还有很多,如样片检测、患者信息等等。

  (2)工农业:现在很多产品包装上都会印刷二维码。这些二维码不仅能提取厂商网址信息,还能提供产品的生产、质量信息,尤其是与农产品相关的一系列信息的追踪溯源。这样一来,消费者能够通过智能终端扫描,追溯到选购产品质量安全的全部信息。

  (3)安全技术领域:在网络通信过程中,信息的安全传输尤为重要。二维码具备存储信息的功能,加上其独特的编码模式,将信息放入二维码中成为一种保障。同时,二维码本身也能作为一种防伪标识,帮助消费者有效地辨别产品的真假。

  结束语

  移动终端的发展促进了二维码的大规模应用,在对二维码的编码和解码过程进行了详尽讨论后,研究发现二维码的探索应用上仍存在广阔的研发创新空间。例如,在编码阶段,可以对纠错算法进行优化升级,提升纠错能力;改进掩膜评估方法,以便找出更加合适的掩膜图形,最大程度避免图像的重复。在解码阶段,对于图像的定位和校正,因受环境影响传统定位方法不能进行正确定位操作,如何有效定位则是下一步的研究方向;对于图像扭曲、破损的情况,需要融合图像处理和二维码技术来对图像进行复原。目前,二维码大多仍是用于信息的存储,在网络通信中,信息安全始终都是当前学界密切关注的研究课题,时下已有很多加强二维码安全的研究,但却仍需加大研究投入力度,致力于解决二维码应用中现存的各种安全隐患,从而优化、及改进二维码应用的总体安全性能。