“扫个码s o g m ”相信大家对这句话再熟悉不过了,不知何时起,骑车扫码、加好友扫码、支付扫码、看病扫码……扫码在中国已随处可见,尤其是近两年,在全球疫情不断加速蔓延的态势下,健康码成为了疫情防控的重要工具,发挥着重要的作用。
随着各种“码”的推出,扫码与被扫已经成为国人日常,如今在中国的生活体验总结一下就是,一码在手,天下我有。但生活中无处不在的二维码,我们真的了解它吗?
二维码的前世今生
二维码的前世是一维码,就是我们常说的条形码,在各种商品包装上很常见。比如零食的包装上,那些宽度不同的黑白条纹就是条形码。
图1 包装上的条形码
条形码是70年前美国新泽西州的诺曼 伍德兰德和伯纳德 西尔弗联合开发,并于1949年申请专利。
图2 诺曼 伍德兰德(左)和伯纳德 西尔弗(右)(图片来源于网络)
最初的条形码采用的是环形设计,这种设计还需要格外安装一部 500 瓦特发光体的巨型扫描仪才能完成扫描和信息获取。因此这项发明在当时基本没人用。
图3 环形条码(图片来源于网络)
上世纪60年代,在超市结账时收银员只能手动输入价格,这种方式不仅耗时长、效率低,而且日积月累的敲打模式使得收银员感到手腕麻木,甚至患上疾病。
后来,各种改良版的条形码逐渐出现,并且市场实现了码制标准化,使得这一苦恼得以解决,超市将条形码应用于结账系统,大大提升了工作效率。后来,因条形码可靠性更强、效率更高、成本更低廉等种种优点,条形码被广泛应用于各行各业,包括防伪、图书、物流等等。
图
4 条形码(图片来源于网络)
随着条形码的大量应用,它的许多缺点也逐渐暴露出来,比如信息存储量有限、无法记载更复杂的数据、遭到损坏后便不能阅读等等。条形码越来越不能满足人们对于高效与复杂信息存储的需求,于是,研究人员在一维码的基础上将维度扩展,二维码就诞生了,在今天被应用到了方方面面。
图5 二维码在生活中的应用(图片来源于网络)
我们生活中有随处可见各种各样的的二维码,那么二维码究竟是如何记录信息的呢?
二维码(又称二维条码)技术,是将一维条码技术扩展出另一个维度,使用特定的几何图形按照一定规律在二维平面上分布的黑白相间的图形,被设备扫描后以实现信息自动处理[1]。二维码的种类有很多,我们常说的二维码往往指的是QR图码(全称为快速响应矩阵图码,英语:Quick Response Code),它的发明者是日本的原昌宏。
图6 QR二维码(图片来源于维基百科)
QR图码是在一个矩阵空间通过黑、白像素在矩阵中的不同分布进行编码。计算机能识别二进制的机器语言,也就是说计算机只认得0和1,而QR码就是用黑白方块代表了二进制“1”和二进制“0”,用它们的排列组合确定了二维条码携带的信息,这些信息可以通过光电扫描设备进行读取[2]。
奇奇怪怪的小方格代表着什么?
虽然每个二维码的黑白像素排布各不相同,但是细心的读者会发现,它们在一些特殊的地方是相同的,如图是QR码的基本结构图。
图7 QR码结构图(图片来源于网络)
可以看到,每个二维码在三个直角的位置都有一个一模一样的正方形。这三个正方形是位置探测图形,也就是定位标志,之所以是三个正方形而不是四个,是因为三个就可以将矩形的位置标记出来。
(1)定位标志:用于对二维码的定位,对每个QR码来说,位置都是固定的,只是大小规格会有所差异;
(2)校正标志:定位和校正图形;
(3)定时标志:用于确定坐标的位置;
(4)内容信息:存放数据码。
除此之外,二维码还包括了纠错码和版本信息。纠错码用于纠正因二维码破损带来的错误。版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每增加一个版本,长宽各增加4个像素[3]。
二维码的大小确定之后,又有人提出了疑问,地球上几十亿人,每个人每天要使用很多次二维码,二维码不会被用完吗?
目前二维码最大的版本是177 177个像素,根据编码技术进行排布,可以有2177 177种排列(包含定位标志等),可能许多人对科学计数法的大小没什么概念,我们来计算一下,地球上人口是76亿,假设每人每天用1000个(实际生活中应该用不了这么多),那人类每天用掉76000亿。
那么所有的二维码至少可以供人类使用33545000000000000000000000000000000000000000000000000000000000……年。这个巨大的数字,凭人类当前的使用量,是不需要担心用完这个问题的。
无处不在的移动支付,形势复杂多变的疫情,让“扫一扫”已经成为了出行必备,扫码不是多此一举,而是一举多得。
所以,今天你扫码了吗?
参考文献
[1]百度百科
[2]张灵凤, 冯锋, 黄恒. 二维码技术的生成原理的分析与研究[J]. 电子设计工程, 2017(17):5.
[3]二维码的生成细节和原理 http://coolshell.cn/articles/10590.html#jtss-tsina