我试图在非常有限的嵌入式平台上生成QR码.除了产生纠错码字之外,
the specification中的所有内容都看起来相当简单.我已经看了一大堆现有的实现,他们都试图实现一堆直线在我头上的多项式数学,特别是在Galois领域.在数学复杂性和内存要求方面,我可以看到的最简单的方法是在规范本身中规定的电路概念:
有了他们的描述,我相信我可以实现这一点,除了标有GF(256)加法和GF(256)乘法的部分.
他们提供这个帮助:
The polynomial arithmetic for QR Code shall be calculated using bit-wise modulo 2 arithmetic and byte-wise
modulo 100011101 arithmetic. This is a Galois field of 2^8
with 100011101 representing the field’s prime modulus
polynomial x^8+x^4+x^3+x^2+1.
这对我来说几乎都是希望.
所以我的问题是:在这种伽罗瓦域算术中执行加法和乘法最简单的方法是什么?假设两个输入数字都是8位宽,我的输出也需要8位宽.几个实现可以在两个查找表中进行预先计算或硬编码,以帮助实现这一点,但是我不确定如何计算这些值,或者我在这种情况下如何使用它们.我宁愿不对这两个表采取512字节的内存命中,但这真的取决于替代方案.我真的只需要帮助,了解如何在这个电路中进行单次乘法和加法运算.