二维码生成算法实现案例分析

QR code generation algorithm implementation case analysis

我正在按照 thonky.com 中的说明实施 QR 码生成算法,我正在尝试了解其中一种情况:

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

下一步是删除所有前导零,同样,所有前导零。这意味着没有什么可以与生成多项式字符串 (10100110111) 进行异或,从而给我们一个包含 15 个零的最终字符串,这意味着最终 (XORed) 字符串将只是掩码字符串 (101010000010010)。 我正在寻求确认我的逻辑是否正确。

非常感谢大家的帮助。

你的逻辑是正确的。

remove all leading zeroes

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

正如上面所评论的,由于只有 32 种可能的格式字符串,您可以只进行 table 查找,而不是实际实现 BCH 编码功能。

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