
【科普花园】二维码为什么能存储大量信息?
现在,二维码(QR Code)已经成为我们日常生活中不可或缺的一个部分,无论是在支付、信息分享还是广告宣传中,我们都能看到这些黑白相间的小方块。但你是否曾经认真思考过,这些看似简单的图案是如何存储如此丰富的信息的呢?它们是否有一天会被用完?在回答这些问题之前,我们先来了解一下二维码的起源。

图1 无处不在的二维码(图片来源:网络)
二维码的诞生
二维码,全称为二维条码(2D barcode),它是一种在水平和垂直方向上均能存储信息的编码方式。二维码的发明者是日本人原昌宏(Masahiro Hara),他在1994年作为DENSO WAVE公司的员工,开发了QR码(Quick Response Code,快速响应码),这是目前最流行的二维码类型。

图2 快速响应码(QR码)发明者原昌宏(图片来源:网络)
其实,二维码的诞生是为了解决一维条形码(如UPC码)信息容量有限的问题。一维条形码作为20世纪70年代诞生的自动识别技术,通过不同宽度的黑白条纹组合进行编码(如商品包装上常见的UPC码由12位数字构成,EAN码包含13位数字),其信息存储量通常被限制在20个左右字符。这种沿单一水平方向扫描的编码方式,在零售、物流等领域虽然提升了基础信息处理效率,但难以满足现代数字社会对多元化数据存储的需求。相比之下,二维码通过二维空间延展的矩阵式编码,能够存储多达7089个数字或4296个字母的复杂信息,包括文本、URL、联系信息,甚至GPS坐标等结构化数据。值得一提的是,二维码的设计灵感来源于中国古代围棋(在国外又称“Go”),这种有着4000多年历史的策略性棋盘游戏通过在19x19的网格上布设黑白棋子,以点阵排列形成千变万化的棋局。二维码正是借鉴了围棋棋盘的空间布局理念,将信息转化为由黑白方块组成的矩阵式图形,通过不同区块的排列组合实现高密度数据存储。

图3 从一维码到二维码(图片来源:网络)
当然,二维码的发展得益于智能手机的普及和移动支付技术的进步。在中国,二维码支付技术由支付宝和微信支付等平台推广,使得二维码在日常生活中得到了广泛应用,包括但不限于支付、广告、票务、身份验证等多个领域。二维码的普及也得益于其发明者和DENSO WAVE公司决定不收取专利费,使得它可以作为一种公共资源被广泛使用。
黑白方块分别代表什么?
二维码中最引人注目的特征就是密集排列的黑白方块。虽然看上去它们杂乱无章,但每一个方块都有着特定的意义。二维码中的每个小方块,实际上代表的是二进制信息,即“0”和“1”。在计算机世界中,所有信息也都是通过二进制编码来表示的,二维码的黑白方块正是这种编码的视觉表达。黑色方块可以代表“1”,白色方块代表“0”。通过这些0和1的组合,就可以编码出文字、数字甚至图片。
如果仔细观察二维码,你会发现它的三个边角各有一个较大的黑色方框。这些是二维码的定位标志,它们的作用是帮助扫码设备快速地定位二维码的方向和区域。此外,二维码中还包含了一些校正区域,用来确保扫码时的精度以及纠错能力。
除了这些定位标志和功能区之外,二维码中剩下的区域便用于存储实际的数据。数据区域的方块排列遵循特定的算法,黑白方块按照规定的顺序排列,将二进制数据逐个“写入”二维码中。在扫码设备读取二维码时,会通过反向的算法将这些二进制数据解码成用户可以理解的信息。

图4 二维码中的黑白小方块(图片来源:网络)

图5 二维码的不同功能区域(图片来源:网络)
二维码是如何存储海量信息的?
二维码之所以能够存储大量信息,主要得益于它独特的编码方式和设计。相较于传统的一维条形码,二维码采用了更为先进的二维矩阵布局。这不仅使得数据在水平方向得以记录,更在垂直方向上大幅增加了信息的密度。这种革命性的设计,赋予了二维码远超一维条形码的信息承载能力。举例来说,一个标准的快速响应码(QR码)能够容纳数千个字符,甚至能够存储数千字节的二进制数据,这在一维条形码中是难以想象的。
二维码的另一个显著优势是它具有卓越的数据纠错功能。通过应用“纠错编码(Error Correction Code, ECC)”,即便二维码的某些部分因遮挡或损坏而无法识别,系统依然能够依据剩余的有效信息,智能地还原出完整的二维码图像。这种强大的纠错机制不仅极大地提升了二维码的耐用性和可靠性,也为二维码存储更多信息提供了坚实的技术保障。

图6 缺损了一角与含有logo(徽标)的二维码(图片来源:网络)
二维码还采用了数据压缩技术。在数据压缩方面,二维码采用了多种高效的编码方式,如字母数字模式、二进制模式和汉字模式等等,这些编码方式能够将同样的字符以更加紧凑的形式表示,从而在有限的空间内实现信息的最大化存储。此外,二维码还支持广泛的字符集,使其能够适应不同语言和文化的需求,这无疑增强了二维码的通用性和适用性。
二维码是否会耗尽?
从理论上讲,二维码的资源并非无穷无尽。因为二维码的尺寸是固定的,它内部只能容纳有限数量的黑白方块,所以这些方块的排列组合是有限的。一旦二维码所能表示的数据量达到它的极限,二维码的资源就会耗尽。
但在实际生活中,二维码的存储能力是极其庞大的,足以满足我们当前的需求。以我们日常使用的微信支付二维码为例,一个二维码由25×25的方块矩阵构成,共有625个方块。在去除用于定位和纠错的方块后,还剩下478个方块。每个方块可以是黑色或白色,这意味着可以生成2的478次方个不同的二维码。
我们还可以做另外一个计算:如果全球每天使用100亿个支付二维码,那么一年大约会使用36500亿个。即使按照这个速度,要耗尽所有的支付二维码,也需要2.14×10131年。相比之下,宇宙的年龄大约为137亿年,即1.37×1010年,这远远小于二维码资源耗尽所需的时间。因此,我们可以安心地使用二维码,完全不必担心它会在可预见的未来被用完。

图7 央视新闻“一问到底”节目:到底什么是二维码?(图片来源:网络)
二维码作为现代信息社会的重要组成部分,已经深刻地改变了我们的生活方式。从便捷的支付到高效的信息传递,它在各个领域都发挥着不可或缺的作用。通过深入了解二维码的编码原理、存储能力和纠错机制,我们不仅能够更好地利用这一技术,还能对其未来发展充满期待。二维码的资源虽然理论上有限,但在实际应用中,其容量之大足以满足我们当前及未来很长一段时间的需求。随着技术的不断进步,二维码还将继续拓展其功能和应用场景,为我们的生活带来更多便利和惊喜。
参考文献
[1] https://mainichi.jp/english/articles/20211109/p2a/00m/0bu/024000c
[2] https://tv.cctv.com/2024/06/22/VIDEZ8ofJxnYnLhFLukxpwX3240622.shtml
[3] https://mp.weixin.qq.com/s/ZiT-5mcpM06m5KEO36Z5jA
[4] https://mp.weixin.qq.com/s/sZYhY5m7EFNHJ-bd_R3oZQ
[5] https://mp.weixin.qq.com/s/Sk2jAtRELW3OkTYF0fSl6A
[6] https://mp.weixin.qq.com/s/qkjoNZg5q54spGto5oB9bQ
[7] https://mp.weixin.qq.com/s/jfNOHwRsFFOUcD3NnUnKrg
附件下载: