我正在阅读一些嘈杂的图像,并从中获取一些比特(21位)。
我只需要使用其中的15个,留下21 - 15 = 6
位来处理。
我打算用它做Checksum和纠错,然而,我开始挖掘网页,发现Reed-Solomon
是最常用的(或不是?)。
我的问题是:由于我处理的是少量数据,是否有一个好的算法可供使用,因此它在处理时不那么昂贵,并且既可用作校验和,也可用作校验和。错误修正? (它将与Node.js一起运行)
谢谢,
伊万
答案 0 :(得分:3)
有好消息和坏消息。
好消息是Reed-Solomon等方案的大部分复杂性都是为了支持你不需要的巧妙解码方法。只有5个校验位,http://en.wikipedia.org/wiki/Decoding_methods#Syndrome_decoding将完美地完成。基本上,您从数据位重新计算校验位,并使用您收到的校验位对其进行xor计算。这给你一个位模式,如果没有错误就会为零,否则只取决于错误的模式而不是数据位。通过考虑你想要对你准备应对的所有错误模式做什么(例如,对于小k,所有模式的最多k个错误),你可以构建一个查找表,将你从位模式转移到位图错误位置。
坏消息是这些方案的开发是为了支持大型线性代码,因为更大的代码更有效。只有21位可以使用,你也不会这样做。
有15个数据位和21个总位,我将从http://en.wikipedia.org/wiki/Hamming_code中描述的汉明码开始,它有15个数据位和21个总位,并对15个数据位进行任意线性检查。额外的21位。您可以使用校正解码对此进行解码。