Qraft

二维码纠错等级 - L/M/Q/H 的选择方法与实用判断标准

什么是纠错

二维码的纠错功能是一种即使代码部分被污损或破坏也能恢复原始数据的机制。它使用里德-所罗门码这种数学算法,通过为数据添加冗余信息来实现。

得益于这一机制,即使印刷褪色、表面划伤或部分污损,二维码仍然可以正常扫描。但由于冗余数据会减少可存储的信息量,因此纠错等级的选择需要在数据容量之间进行权衡。

让我们更具体地了解里德-所罗门码的工作原理。这种编码方式将存储的数据表示为伽罗瓦域(有限域)上的多项式。例如,如果数据为 4 字节,则将每个值作为系数处理为 3 次多项式。编码时,将该多项式除以生成多项式,将余数作为冗余数据(校验码)附加到原始数据中。解码时,评估接收到的多项式以检测错误,如果发现错误,则通过求解错误位置多项式和错误值多项式来确定哪个字节以何种方式损坏并进行修复。这种数学机制能够应对连续多字节损坏(突发错误),这与简单的校验和或奇偶校验位有本质区别。

四个等级的区别

二维码有 4 个纠错等级,每个等级可恢复的数据量不同:

等级恢复能力对数据容量的影响主要用途
L(低)约 7%最小屏幕显示、短期使用
M(中)约 15%一般印刷品
Q(四分之一)约 25%工厂、仓库
H(高)约 30%带 Logo、户外展示

L 等级可以最大限度地确保数据容量,但即使轻微损伤也有无法读取的风险。H 等级最为坚固,但存储相同数据需要更大版本(尺寸)的二维码。

按用途选择

纠错等级的选择应根据二维码的使用环境来判断:

  • 数字屏幕显示:屏幕上不会发生物理损伤,L 等级即可。可以减小数据量保持代码紧凑。
  • 名片和传单:M 等级适合一般印刷品,能应对日常使用中的轻微污损。
  • 工厂和仓库标签:在可能有油污或磨损的环境中选择 Q 等级以上。
  • 带 Logo 的设计二维码:Logo 会覆盖部分数据区域,必须使用 H 等级。
  • 户外海报:考虑到风雨和紫外线的影响,推荐 Q 或 H 等级。

在实际应用中,因纠错等级选择不当而导致的问题并不少见。常见的失败案例是在设计二维码时选择了 M 等级,导致 Logo 覆盖部分的数据无法恢复而无法读取。当 Logo 面积超过二维码整体的 15% 时,M 等级的恢复能力(约 15%)不足,请务必选择 H 等级。此外,贴在餐厅桌面上的二维码因水滴或油污而无法读取的情况也很常见。这种情况下不仅要选择 Q 等级以上,还建议配合使用覆膜加工或防水标签。反之,如果仅用于智能手机屏幕显示却选择了 H 等级,二维码尺寸会不必要地增大,占用屏幕显示空间。根据用途选择合适的等级,直接关系到运营成本的降低和用户体验的提升。

数据容量与版本的关系

提高纠错等级后,存储相同数据所需的二维码版本(模块数)会增大。例如,100 个字母数字字符的数据在 L 等级下只需版本 3(29 × 29 模块),但在 H 等级下需要版本 5(37 × 37 模块)。

版本越大,每个模块的尺寸越小,会影响印刷分辨率和扫描距离。通过缩短 URL 来减少数据量,是在保持高纠错等级的同时控制版本的有效方法。

<% if (typeof amazonTag !== 'undefined' && amazonTag) { %>二维码技术书籍<% } else { %>二维码技术书籍<% } %>中有详细的各版本容量表。

相关文章:请同时参阅二维码的工作原理

实用判断流程图

犹豫不决时,按以下顺序判断即可选择合适的等级:

  1. 是否要叠加 Logo 或插图?→ 是 → H 等级
  2. 是否在户外或恶劣环境中使用?→ 是 → Q 等级以上
  3. 是否作为印刷品分发?→ 是 → M 等级
  4. 仅在屏幕上显示?→ 是 → L 等级

如果仍然不确定,选择 M 等级在大多数场景下都能正常使用。M 等级在恢复能力和数据容量之间取得了最佳平衡,也是许多二维码生成工具的默认设置。