条码分析

发布时间 2023-04-12 09:56:13作者: Mar10

条码类别分析

在线扫码:https://demo.dynamsoft.com/barcode-reader/

https://online-barcode-reader.inliteresearch.com/

汉信码解码:https://tuzim.net/hxdecode/

QRazy Box:https://merricx.github.io/qrazybox/?tdsourcetag=s_pctim_aiomsg

汉信码、QR码等常用二维码数据对比

/ / QR码 PDF417码 DM码 汉信码
发明时间 1994年 1992年 1989年 2005年
国家 日本 美国 韩国 中国
面积 (mm*mm) 最小 21*21 90*9 10*10 有84个版本供自主选择,最小码仅有指甲大小
最大 177*177 853*270 144*144
信息存储量 最小
数字 4296 2710 3116 7829
字符 7089 1850 235 4350
汉字 1817 2174
二进制 2953 1556 3262
纠错能力 纠错分级 4级 9 非离散分级 4级
最高纠错信息 30% 46.20% 25% 30%
最低纠错信息 7% 0.20% 14% 8%
表示中文 一般
解码速度 一般
抗畸变、污损 较弱 一般 超强
识别方向性 全方向性 单方向 单方向 全方向性
识别设备 支持手机、PAD、摄像头 限专用设备 支持手机、PAD、摄像头 限专用设备

二维条形码的分类

二维条形码可以分为堆叠式二维条码和矩阵式二维条码。

堆叠式二维条码,其编码原理是建立在一维条形码之上的,按需求将一维码堆积成二行或多行。它在编码设计、校验道理、识读方法等方面也承继了一维条形码的一些特色。有代表性的有:Code16K、Code49、PDF417等。

矩阵式二维条码,通常由矩阵像素点组成。一般在矩阵相应元素位置用"黑色点"表示二进制"1", 用"白色点"表示二进制"0"。点的排列组合确定了矩阵式二维条码所代表的意义。具有代表性的有:QRCode、DataMatrix、MaxiCode等。

矩阵式二维码

在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。在许多种类的二维条码中,常用的码制有:Data Matrix、MaxiCode、Aztec、QR Code、Vericode、PDF417、Ultracode、Code 49、Code 16K

QR Code|二维码

二维码又称二维条码,常见的二维码为QR Code

基础描述

  • 块位置:左上角为原点 (0, 0) 向下 x+,向右 y+

  • 版本表示:Version V-E(其中 V 是版本号,E 是纠错等级)

  • 数据表示:黑块 -1 白块 -0(可以带背景全部反色)

  • 大小:从版本 1 到版本 40 依次是 21x21 ~ 177x177(每增加一个版本,边长增加 4)

  • 支持的最多字符数(版本40)

    • 数字模式:7089
    • 字母模式:4296
    • 字节模式:2953
    • 日文模式:1817
  • 纠错等级允许的恢复比例

    • L:7%
    • M:15%
    • Q:25%
    • H:30%

    二维码的纠错功能是通过将信息重复存储表示来实现的,这部分重复的内容称为冗余数据。这样,即使当条形码的某部分遭到损坏或被遮挡,也可以通过冗余数据信息还原出来。

    二维码结构

    功能图案(function patterns)

    • 特征符(finder pattern)7x7 黑圈 5x5 白圈 3x3 黑块
    • 分割线(separator)在特征符周围的一圈全白区域
    • 时序图案(timing patterns)第 7 行第 7 列的两条黑白条纹
    • 对齐图案(alignment patterns)版本 1 无,版本 2-6 1 个,版本 7-13 6 个……(附录 E)
    • 静默区(quiet zone)至少 4 个单位宽

    编码区域(encoding region)

    • 格式信息(format information)左上角分割线外一圈,左下角分割线右侧,右上角分割线下侧
    • 版本信息(version information)版本 7 后才有,在左下分割线上侧,右上分割线左侧
    • 数据及纠错码区域

中文版:

定位图案

Position Detection Pattern(位置探测图形)是定位图案的一种,就是每个二维码都有的左上、左下和右上三个角的“回”字形的标志。用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个,因为三个就足以标识一个矩形了,用四个反而多余,且会使得能够表示的数据空间变小,扫描器在进行二维码扫描的时候会根据这三个定位标识符来更正二维码的坐标,方便进行扫描。这块区域的尺寸固定,无论是哪个版本的二维码,他的尺寸都是7*7的模块。

Alignment Patterns(校正图形) 只有在Version 2以上(包括Version2)的二维码中需要这个东西,同样是为了定位用的。它的尺寸也是固定的,为5*5的模块。

Timing Patterns(定位图形)也是用于定位的,是一单位宽的黑白交替点带,由黑色点起始和结束。原因是二维码有40种尺寸,尺寸过大了后需要有根标准线,不然扫描的时候可能会扫歪了

填充模板

不同的Verion有不同的固定格式的填充模板,这有利于在修复时利用

如version1版本的二维码的所有固定格式如下:

version2:

目前有9个版本,这里就先举例两个

数据位

为了增强二维码的容错能力,保证在一定的损坏范围内,不会影响数据的读取,共设计了两个区域来存放两条一模一样的格式信息

这些数字表示的是位的高低,也就是当获取到格式信息15个bit长度的二进制字符串时,左边为高位,右边为低位,所以最左侧的二进制数字应该在14的位置,最右侧的二进制数字应该在0的位置

数据的填充顺序

掩码

生成一个完整的二维码,还需要先将现在所拥有的数据填入提前准备的空白模板后,选择一个合适的掩码,将原模板的数据与掩码进行异或运算,最后,再将format information填进去就生成了二维码

掩码有以下八种

DotCode|斐泰二维码

DotCode 属于矩阵式二维码,是 DPM 二维码的一种能变体,是国际物品编码协会 (GS1) 发布的用于标识小型和难以标记的物品的一种二维码

DotCode 的主要特征

  • 矩阵式二维码,行列数可变
  • 行数:5200,列数:5200
  • 可单独使用(Standalone),也可与 GS1 DataBar 组合在一起使用(Composite)
  • 有三种数据压缩方式:文本(Text Compaction)、二进制(Binary Compaction)、数字(Numeric Compaction)
  • 最大数据容量:450(字母), 900(纯数字)

DotCode的一个重要优势是只需大约 15% 的对比度即可成功读取。 对于一般的条形码,50% 到 60% 的对比度是绝对必要的

Aztec码|阿兹特克码

Aztec码是一种可扫描的矩阵条码,经过编码以存储一组特定的数据。它使用二维技术,这意味着它可以水平和垂直阅读。方形靶心图案从中心向外以像素化层移动。

Aztec码以中心正方形为中心,具有不同层的图案。该图案具有不同大小的方形像素层,例如9x9像素,13x13像素、23x23像素等。组合后,这些方块将使用Aztec码保存的数据进行编码。

它的角落还包含较大的像素化标记,指示应读取的方向。这取代了对其他条码安静区特征的需要。此外,Aztec码最多可包含32层,最多可容纳1914字节的数据。它们的大小完全可以根据包含的数据量进行调整,并且它们的纠错级别高达23%,这意味着即时近四分之一已被破坏,条码仍可被识读

DataMatrix

汉信码

汉信码是中国自主开发的一种二维码标准

信码与现有二维码相比较,具有如下特点:

  1. 汉字编码能力强:支持GB18030中规定的160万个汉字信息字符,采用12位二进制数进行表示,在现有的二维码中表示汉字效率最高。
  2. 信息容量大:最多可表示7829个数字、4350个ASCII字符、2174个汉字、3262个8位字节信息
  3. 编码范围广:可以对照片、指纹、掌纹、签字、声音、文字等数字化信息进行编码。
  4. 抗污损、抗畸变识读能力强:能够容忍较大面积的符号污损,特别适合在恶劣条件下使用。
  5. 具备纠错能力:具备四种纠错等级:8%、15%、23% 、30%,不输QR码。
  6. 识读速度快:汉信码的识读速度比国际上的主流二维码DataMatrix还要高。

MaxiCode

Maxicode允许对256个国际字符编码,包括值0127的ASCII字元和128255的扩展ASCII字元。在数字组合模式下,可用6个字码表示9位数字。用於代码切换和其他控制字元也包括在其字元集中

MaxiCode 符号(内部称为“ Bird's Eye ”、“ Target ”、“ dense code ”或“ UPS code ”)显示为一个 1 英寸的正方形,中间有一个靶心,周围是六边形圆点图案。它可以存储大约 93 个字符的信息,最多可以将 8 个 MaxiCode 符号链接在一起以传达更多数据。居中对称的靶心在自动符号定位方面非常有用,无论方向如何,它允许扫描 MaxiCode 符号,即使是在快速移动的包裹上也是如此。

堆叠式/行排式

堆叠式/行排式二维条码又称堆积式二维条码或层排式二维条码),其编码原理是建立在一维条码基础之上,按需要堆积成二行或多行。它在编码设计、校验原理、识读方式等方面继承了一维条码的一些特点,识读设备与条码印刷与一维条码技术兼容。但由于行数的增加,需要对行进行判定,其译码算法与软件也不完全相同于一维条码。有代表性的行排式二维条码有:Code 16K、Code 49、PDF417、MicroPDF417 等

PDF417

PDF417条码是一种高密度、高信息含量的便携式数据文件

每个PDF417的码字(code word)的长度都为17个单位,包含了长度不等的4个黑色区域(bar)与4个白色区域(space),单个区域的长度不得超过6个单位。故得名417。标准规定,宽度单位的下限为0.0075英寸(约0.191毫米)。每个码字基于929编码,即码值为0-928。每个码字以bar开始,以space结束。有三套不同的码字编码,称作clusters,分别标记为0,3,6。各行依次采用一套cluster,依次循环,即:第1行使用cluster 0, 第2行使用cluster 3, 第3行使用cluster 6, 第4行又使用cluster 0,依次类推

参考文章:http://www.efittech.com/dotcode/dotcode_1.html

https://zh.wikipedia.org/wiki/Data_Matrix

https://zh.wikipedia.org/wiki/Aztec码

https://tuzim.net/blog/444.html

https://www.cnblogs.com/guorongtao/p/12921855.html

https://www.cnblogs.com/luogi/p/15469106.html