← 返回博客

二维码纠错码详解:为什么受损还能扫

2026-04-18 · 5 分钟阅读

什么是纠错码

二维码的纠错机制基于里德-所罗门(Reed-Solomon)码,这是一种广泛用于数据存储和传输的纠错算法(CD 和 DVD 也使用相同的技术)。通过在二维码中添加冗余数据,即使部分码区被污损、遮挡或损坏,扫描器仍能通过冗余信息恢复完整数据。

四个纠错级别详解

QR 码标准定义了四个纠错级别:

纠错对码的尺寸和复杂度的影响

纠错级别越高,需要存储的冗余数据越多,这意味着相同数据量下码的版本更高、图案更密集。以编码一个简单 URL 为例:L 级可能生成版本 3(29×29)的码,而同一 URL 用 H 级可能需要版本 7(45×45)的码。密集的码需要更大的印刷尺寸才能保证扫描可靠性,因此纠错级别的选择需要与使用场景和印刷尺寸综合考量。

里德-所罗门算法的工作原理

里德-所罗门纠错基于有限域(伽罗瓦域)上的多项式插值。简单来说,算法将原始数据视为多项式的系数,然后计算额外的点(冗余数据)。即使某些点(数据块)丢失或损坏,只要剩余点足够,就可以通过多项式插值恢复原始数据。这个算法之所以强大,是因为它能够精确定位和纠正错误位,而不仅仅是检测到错误。

如何选择合适的纠错级别

选择建议:

误解:更高纠错级别总是更好

许多人认为应该总是使用最高纠错级别(H)以确保最大可靠性,但这种想法有时适得其反。H 级产生更密集的图案,在小尺寸印刷下反而更难扫描,因为模块间距过小导致模糊。在不需要特别高纠错能力的场景(如数字屏幕)使用 H 级只会增加码的复杂度而没有实际收益。选择合适的而不是最高的纠错级别,才是最优策略。

实际验证的重要性

任何纠错级别的选择都应该通过实际测试验证。在目标使用环境中,用你的目标受众可能使用的手机(包括低端机型)进行扫描测试,才能确认所选纠错级别和尺寸的组合是否真正可靠。纸上的计算永远无法替代实际场景的测试。

立即免费使用相关工具

免费使用 →