首页 > 解决方案 > 二维码生成算法实现案例分析

问题描述

我正在实施thonky.com上解释的 QR 码生成算法,我试图了解其中一种情况:

本页本页所述,我可以推断,如果代码受 M 纠错级别保护,并且选择的掩码为 0 号,则格式字符串的前 5 位(非异或)为 '00000',因此,整个 15 位字符串为零。

下一步是删除所有前导零,这也是所有前导零。这意味着没有什么可以对生成多项式字符串(10100110111)进行异或,因此给了我们一个由 15 个零组成的最终字符串,这意味着最终(异或)字符串将只是掩码字符串(101010000010010)。我正在寻求确认我的逻辑是正确的。

非常感谢大家的帮助。

标签: algorithmqr-codeerror-correctionreed-solomonbch-code

解决方案


你的逻辑是正确的。

删除所有前导零

实际过程可以描述为将 10 个零位附加到 5 位数据,并将 15 位视为多项式的 15 个单位系数,然后将该多项式除以 11 位生成多项式,得到 10 位余数多项式,即然后从 5 个数据位 + 10 个零位多项式中减去。由于这是二进制数学,add并且subtract都是xor运算,并且由于附加的 10 个位是零位,因此该过程只需将 10 个余数位附加到 5 个数据位。

如上所述,与其实际实现 BCH 编码函数,因为只有 32 种可能的格式字符串,您只需进行表查找即可。

https://www.thonky.com/qr-code-tutorial/format-version-tables


推荐阅读