二维码
咖啡馆在桌上印了菜单二维码,并在中间放了自己的徽标。头几张桌子上的码一扫就读出来,新贴纸上的却不行:设计师把徽标放大了。码看上去完好,三个角上的方块都在。但徽标下面丢了一个数据块里三分之一的字节,而 M 级纠错能修复的比这少。手机对着码看了看,一声不响。
二维码用小方块(模块)记录文字:深色为 1,浅色为 0。数据被分成字节,按蛇形路线排列。数据后面附加里德-所罗门纠错字节,扫码器靠它们恢复被破坏的部分。数据上面叠加八种掩模之一,以免码里出现大片空白。掩模编号和纠错等级写在定位方块旁边,共写两遍。
| 说明 | 带纠错的二维矩阵码 |
| 标准 | ISO/IEC 18004;各国版本:日本的 JIS X 0510、中国的 GB/T 18284、俄罗斯的 GOST R ISO/IEC 18004 |
| 大小 | 版本 1–40:从 21×21 到 177×177 个模块,外加 4 个模块的静区 |
| 电容 | 最多 7089 个数字、4296 个字母和数字,或 2953 字节 |
| 防护 | GF(256) 上的里德-所罗门码,可纠正 7 到 30% 的字节 |
| 用什么读 | 用摄像头读取:激光只需要一行,QR 需要整幅图像 |
词源
快速应答、母体与度量
QR 这个名字是在日本造出的英文缩写;QR Code 是 Denso Wave 的注册商标。大多数语言保留了拉丁字母,而中文按构造把它称作“二维码”。标准里把这种码叫矩阵码,它的小方块叫模块。
01 · 结构
功能图形与字节的蛇形排列
角上的三个定位方块告诉摄像头码在哪里、朝向如何。它们之间的虚线(定时图形)决定网格的步长。从第二版起,内部还有校正图形:扫码器靠它们校正歪斜和纸张的弯曲。定位方块附近是 15 位格式信息,较大的版本里还有 18 位版本号。
其余全是数据。数据按两个模块宽的列书写,走蛇形路线:先自下而上,再自上而下,从右向左。纠错字节紧跟在数据后面。大版本里字节分成若干块并相互交错,所以一处污损只会让每个块受损一点,而不是毁掉整个块。
码如何告知等级和掩模
选择纠错等级和掩模。下面是五位数据、十位校验位和保护用的掩模。这串位写两遍:一遍绕左上方块,一遍沿另外两个方块。
生成一个码,再把它弄坏
码按标准由你的文字生成:模式、版本、分块、里德-所罗门、掩模。“结构”:点一个模块,看它是谁的位。“掩模”:逐个试八种掩模,看罚分。“损坏”:用徽标盖住中间,滴上墨水,划上划痕。扫描器读取剩下的部分并修复各块。
02 · 二维码的演化
从一行到一个平面
一维码受限于长度:一行放不下二十多个字符。人们先把行叠成一摞,再转向模块网格。每种码解决各自的问题:工厂里的零件、传送带上的包裹、屏幕上的票。QR 胜出,是因为它免费,并进入了手机。
03 · 模式与容量
字符集决定大小
QR 靠选择模式来压缩数据。数字三个一组占 10 位。大写拉丁字母、数字和九个符号两个一组占 11 位。其余一律按字节,每个 8 位。数据前面有 4 位的模式标志和字符计数。
04 · 内部有什么
约定好的普通文字
QR 本身不知道里面是链接还是密码,它只存一串字符。手机看这串字符的开头:https:// 就打开浏览器,WIFI: 就连接网络,BEGIN:VCARD 就保存联系人。各国的付款字符串各不相同。大规模的二维码支付始于中国:Alipay 和 WeChat Pay。印度用 upi://pay 链接,欧元区用 EPC 格式的 SEPA 转账,巴西用 EMVCo 模板的 Pix,俄罗斯用符合 GOST R 56042-2014 的收款信息。
05 · 印刷规则
06 · 相邻的码
07 · 历史部分
原昌宏说,网格的想法是他下围棋时冒出来的:棋盘上的黑白棋子已经承载了大量信息。难点在别处——摄像头必须在文字和图片中瞬间找到码。原昌宏翻遍报纸、杂志和包装盒,挑出了一个在印刷品里几乎不会出现的宽度比。
1 : 1 : 3 : 1 : 1 的图案沿过中心的任何一条线看都一样,不管摄像头从什么角度看。找到三个这样的图案,扫描器不必读任何数据位,就知道码的位置、旋转和大小。所以 QR 可以任意方向读取,而条形码必须让条纹对准光束。
量的目录
完整目录 →国际单位制的七个基本单位
一滴酸改变果汁的颜色,盐给火焰染色,水被轻敲一下就结冰。下面是 Simetrium 的全部页面,按学科和字母顺序排列。
打开目录 →





