问题标签 [reed-solomon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
690 浏览

php - PHP 中的 Reed Solomon 或其他 FEC 编码器和解码器

我继承了一个 PHP 项目,该项目可以真正受益于前向纠错,因为它涉及(可能)用户键入无限可变长度的 base64 编码字符串。该字符串目前被分成 6 个字符的组,以便于人类转录,并在处理之前重新组合在一起,但由于将人类引入方程式,错误仍然可能并且确实会发生。

短字符串或复制粘贴的字符串通常都可以。手动输入冗长的异常值才是真正受益的地方。

我已经确定 Reed Solomon 是最有可能实现这一目标的候选人(但我很高兴被那些有更多实践经验的人指出更合适的 FEC)。

有人知道我可以在这个 PHP 应用程序中使用的开源 RS 编码器和解码器吗?我发现了几个我可能可以从 QRCode 库中破解的编码器,但解码器似乎是神话般的。我当然可以选择采用几个 C 实现并重新编写它们(我是程序员而不是数学专家,所以从头开始编写一个可能超出我的能力)。

目前的数据看起来像这样(仅表示,可能不是有效的 base64!):

我想在分割后对每个块应用 RS 编码(延长每个块,我接受这一点,从项目的角度来看这是可以接受的),或者在字符串被分割成 6 个块之前应用它.根据我对RS的理解,这将是更复杂的选项,因为字符串不是固定长度。

在提出 FEC 想法的“尤里卡”时刻之后,我希望能够找到能够让我做到这一点的东西:

然后在输入时执行类似的 rsDecode() 。

任何提示表示赞赏...

0 投票
1 回答
226 浏览

matlab - Matlab中的rsenc和comm.RSDecoder有什么区别

有谁知道这两个RS码功能的区别?

在我调用这两个函数后, rsdec 可以纠正错误,但另一个不能。

如果我想通过 RS 对 [2 1 4 2] 进行编码,rsdec 可以纠正错误,但 comm.RSDecoder 仍然不能这样做。

谢谢大家。

0 投票
0 回答
57 浏览

javascript - 关于如何解码 QR 码的 reed-solumn 码的教程

http://www.thonky.com/qr-code-tutorial/是一个关于如何编码 qr 代码的很棒的教程,我设法基于它编写了一个编码器。现在我想弄清楚如果它仍然正确解码消息,我是否添加了噪音。最好我正在寻找可以解释数学的东西,而不是仅仅使用 zxing 来解码它。不幸的是,我的 Google foo 让我失望了。

0 投票
1 回答
547 浏览

qr-code - 使用生成多项式为 QR 码创建纠错码字

我正在尝试为 7 个纠错码字创建生成多项式。我不明白系数是如何计算的。QR 码规范说使用按字节模 100011101 算术(其中 100011101 是二进制数,相当于十进制的 285)。这意味着当一个数字是 256 或更大时,它应该与 285 异或。

换句话说:2^8 = 256 xor 285 = 29 ok。但是我如何计算5334

5334 xor 285 = 5579 仍然大于 256。

答案是 122。我不明白我们是如何找到 122 的?太感谢了。

0 投票
1 回答
244 浏览

go - Compute Reed-Solomon Error Correction Codewords from a QR-Code Encoding

for a little project I'm asked to come up with a little QR-Code encoder in Go. After successfully completing the analysing and encoding part, I'm now trying to wrap my head around the error correction using the following package:

https://github.com/klauspost/reedsolomon

Essentially, I don't understand how to structure the data and parity shards inputs in connection with a specific QR-Code version and its specifications.

Thanks in advance.

0 投票
1 回答
91 浏览

reed-solomon - 纠错码能力

当输出不能大于输入的 175% 时,是否有可能实现 25%+ 的纠错能力?我正在寻找 Reed-Solomon 代码。使用 255 个输出符号,我可以有 145 个输入符号。(145 * 1.75 < 255)

这意味着 (110/2)/255 * 100% = 21.5%

有没有什么方法或者其他纠错码可以达到25%+?谢谢

0 投票
1 回答
393 浏览

data-integrity - 文件恢复中的 Reed-Solomon

我正在开发的一个软件会输出大量存储在服务器上的文件。在其运行期间,我有一个文件损坏了我。这些文件对操作至关重要,因此不会发生这种情况。因此,我试图想出一种向文件添加错误纠正的方法,以防止这种情况再次发生。

我读过 Reed-Solomon,它对 k 个数据块加上 m 个奇偶校验块进行编码,然后最多可以重建 m 个丢失的块。所以我在想的是获取数据流,将其拆分为这些块,然后将它们按顺序存储在磁盘上,首先是数据块,然后是奇偶校验块。重复直到整个文件被存储。k、m 和块大小当然是我必须研究和使用的变量。

但是,据我了解,Reed-Solomon 要求您知道哪些块已损坏。我怎么可能知道?我的想法是,我必须在编写每个块时为每个块添加一些额外的、更简单的错误检测代码,否则我不知道它们是否已损坏。像 CRC32 什么的。

我是否正确理解了这一点,还是有更好的方法来实现这一点?

0 投票
1 回答
300 浏览

error-correction - 使用 Reed Solomon 解码,我们需要知道哪些分片是正确的吗?

我在 Java 项目中使用 Reed-Solomon 纠错。我使用的库是 JavaReedSolomon ( https://github.com/Backblaze/JavaReedSolomon )。有一个使用 JavaReedSolomon 进行解码的示例:

数组 shardPresent 表示哪些 shard 肯定是正确的,例如,如果你确定第 4 个 shard 是正确的,那么 shardPresent[3] 等于 true。

我的问题是,Reed-Solomon 解码是否一定需要知道哪些分片是正确的,或者这只是这个库如何实现它?

0 投票
1 回答
1599 浏览

qr-code - Reed Solomon 解码 - 纠错 - 综合征计算

我正在使用 C++ 为 QR 码解码实现 Reed Solomon 解码。到目前为止,我已经实现了解码和错误检测的主要部分。我已遵循 ISO/IEC 18004:2006 手册。正如我在附件 B 中看到的:纠错解码步骤,综合症 S(i) 计算为 S(i) = R(a^i)。假设我们有高纠错级别,所以我们有 9 个数据码字和 17 个纠错码字,当我们处于 QR 码版本 1 时,总共有 26 个码字。所以,我假设显示的多项式 R(x)在 ISO/IEC 18004:2006 手册的第 76 页中,将分别是具有正确 x 次方的数据码字和纠错码字序列。因此, S(i) = R(a^j) ,其中 i=0...15 和 j=0...25 表示高纠错级别。但是,当我运行我的代码并且我有一个没有错误的整个二维码矩阵时,我希望所有综合症都等于零,因此我认为非零综合症。我是否通过 Reed Solomon 解码对 Galois Field Arithmetic 下的 Syndromes 计算理解错误?

0 投票
1 回答
3904 浏览

python - 使用 Python 和 Reed Solomon 进行大输入的纠错

我目前正在实施一个消息传递系统。我想向接收者发送一个受错误保护的消息,但我在基础知识方面失败了,即计算纠错码。我使用以下进行纠错。
考虑以下 MWE:

如您所见,我想保护图像免受可能发生的 20% 错误的影响。这里的问题?编码的字节数组为空。我的问题是:是否可以保护大文件免受错误影响,而不会将它们分成小块然后计算纠错码?