3

I'm storing many files of various lengths into a block-oriented medium (fixed-size e.g. 1024 bytes). When reading back the file, each block will either be missing or correct (no bit errors or the like). The missing blocks are random, and there's not necessarily any sequence to the missing blocks. I'd like to be able to reassemble the entire file, as long as the number of missing blocks is below some threshold, which probably varies with the encoding scheme.

Most of the literature I've seen deals with sequences of bit errors in a stream of data, so that wouldn't seem to apply.

A simple approach is to take N blocks at a time, then store a block containing the XOR of the N blocks. If one of the N blocks is missing but the check block is not, then the missing block can be reconstructed.

Are there error-correcting schemes which are well suited to this problem? Links to literature or code are appreciated.

4

3 回答 3

2

Look into Reed-Solomon codes:

http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction

于 2008-11-17T22:47:59.607 回答
1

开始搜索的最佳位置是parchive Parity Volume Set spec。您将遇到的最大问题是每个块中所需的开销元数据。此外,该规范面向压缩存档文件。

另一个很好的链接是2.0 格式的 parchive 文档(基于但比 parchive 1.0 更面向块)。有关 PAR 1.0 如何改进 2.0 的详细信息,请参阅QuickPar

于 2008-11-18T02:48:50.510 回答
0

查看 Raptor 代码 ( https://en.wikipedia.org/wiki/Raptor_code ) 它们是目前最先进的喷泉代码

于 2014-06-24T22:54:05.160 回答