我想编写一个 Reed-Solomon 解码器并尝试改进性能。我在哪里可以找到附加了 Reed-Solomon 奇偶校验字节的示例数据?
我知道 Reed-Solomon 用于各种 1D 和 2D 条码,但我希望原始数据(字节数组)清楚地分离有效载荷和奇偶校验字节。
任何帮助表示赞赏。
我想编写一个 Reed-Solomon 解码器并尝试改进性能。我在哪里可以找到附加了 Reed-Solomon 奇偶校验字节的示例数据?
我知道 Reed-Solomon 用于各种 1D 和 2D 条码,但我希望原始数据(字节数组)清楚地分离有效载荷和奇偶校验字节。
任何帮助表示赞赏。
基本上,Reed-Solomon 码将由值介于 0 和 (m-1) 之间的字符组成,其中 m 是用于生成 RS 码的伽罗瓦域的指数。例如,在 GF(2^8) (2^8 = 256) 中,您将得到一个由 0 到 255 之间的字符组成的 RS 码(兼容 ASCII、UTF-8 和通常的二进制编码)。在 GF(2^16) 中,您将获得 0 到 65535 之间编码的字符(如果您将 2 个字符编码为一个,则与 UTF-16 或 UTF-8 兼容)。
除了 RS 代码的每个字符的值范围之外,其余的基本上都可以认为是来自外部 POV 的随机(如果您有生成多项式和伽罗瓦域,则不是,而是为了获取样本,您可以假设在有效范围内随机分布值)。
如果要生成带有对应数据块的 RS 代码的真实样本,可以使用Python 库 pyFileFixity(免责声明,我是作者)。默认情况下,每个 ecc 块都由一个 md5 摘要分隔,以便您可以清楚地将它们分开。不存储原始数据,但是您可以通过修改脚本structure_adaptive_ecc.py或header_ecc.py(后者更容易修改)来轻松存储原始数据(它只是一个file.write()来编辑)。如果 Python 不是你的菜,你可能会找到一个 Reed-Solomon 库以供你选择的语言,只需稍作修改即可打印或将原始数据沿 ecc 块保存到文件中。