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