拿起手机扫二维码,你有没有注意过,为什么它总有三个角有大黑框,右下角却干干净净?如果歪着扫甚至倒着扫,手机依然能秒读,这背后藏着一个精准到印刷品里都找不到的图案比例。
这三角形分布的大方块,名字叫“寻像图形”。它像车灯,告诉扫描器哪个方向是正上方。左上、右上、左下各一个,组合起来就能瞬间标定二维码的朝向和倾斜度,不管你怎么拿手机,相机一照就知道怎么读。右下角故意空着,那块缺失的大方块,恰好成了方向标记——没有大方块的角落,永远指向右下。
这个设计诞生于1994年。当时,日本汽车零部件制造商Denso Wave的工程师原昌宏带着小团队,想给生产线的零件贴一种更耐造、信息量更大的标签。传统条形码只能一行行扫,污损一点就罢工。原昌宏从围棋的黑白矩阵抓到灵感,决定用二维的方块来编码。最初这玩意儿几乎没人见过,只在工厂内部流转。
要让机器在任何背景下都能快速认出二维码,寻像图形不能和普通印刷物“撞衫”。团队翻了一大堆杂志、报纸、广告传单,印刷方式五花八门,可结果很一致:自然界的长短黑白条纹里,宽度比1:1:3:1:1的图案几乎没有出现过。也就是一条黑—一条白—三倍长的黑—一条白—一条黑的连续单元,在普通图文里像是隐形了一样。这不是运气,是他们在海量印刷品里筛出的统计学空洞。
把1:1:3:1:1比例固化进那三个大方块的内部,扫描器就获得了一个唯一性极高的特征核。不管周围是密密麻麻的小字还是彩色图案,只要包含这个黑—白—粗黑—白—黑的节奏,码就能被锁定。然后机器依靠三角测量,推算出二维码的旋转、倾斜和远近,画面中的其他内容全部被当作噪音过滤掉。右下角没有这个比例图案,所以识别过程根本不需要第四个方块。
这个比例的具体模样不难画:在一个微小的水平切片里,你看到1单位宽的黑色边缘,接着1单位的白,然后是3单位宽的厚黑条,再接1单位的白,最后1单位的黑。如果扫描光线偏移角度切过去,虽然图形会被压缩或拉长,但黑白宽度的相对比例仍然维持1:1:3:1:1。正是这种仿射不变性,让歪着的、斜着的、倒着的二维码都能被准确拾取。Denso Wave当时一定没想到,这个为追踪零件打上的工业烙印,后来被嵌进全球数十亿张支付码、登机牌和共享单车。
三个定位块不但撑起扫描定向,还顺便解决了二维码用不完这回事。每个二维码的模块可以无限地排下去,版本越高,数据容量指数级膨胀,微型码可能藏一条网址,大型码能塞进一份通讯录。原昌宏团队把纠错、版本信息、掩模全埋进同一个小方块群里,使得一部相机能解码的数据密度远超过肉眼看到的乱码感。即便今天从超市到地铁天天刷,组合空间依然大到让“用完”失去现实意义。
不过,有些事还是得提醒自己:这三个角上的大方块只负责认路,不负责验毒。二维码本身不设防,拍完能带你去哪里,图案里看不出来。所以看着那个孤零零缺一角的右下角,扫描之前留个心眼,也算是致敬当年那些为防伪和抗干扰钻研了无数印刷品样本的工程师。
热门跟贴