【发布时间】:2012-05-21 05:33:37
【问题描述】:
我有一个需要使用纠错功能的应用程序。我不确定哪种方法最有意义。 Reed Solomon 似乎是最受欢迎的选择,但我想我只是列出我的环境,看看是否会出现其他问题。
我有一个可能非常嘈杂的数据流,有 50% 的数据丢失和偶尔的同步丢失问题。发送者将多次重复数据。接收方可以读取数据的多个副本,但每个副本都会遭受不同的损失,并且可能会丢失一些数据。在每个数据块中我一般可以确定哪些字节由于传输而丢失,但纠错还应该包括验证和纠正整个数据块的方法。
当我说碎片丢失时,我的意思是同步丢失。我将退出数据流并稍后在某个任意时间点返回。如果没有某种标记代码,就无法判断我在流中的位置。这些我可以自己添加,但如果这里也有标准方法,那就太好了。
如果 Reed-Solomon 是要走的路,有人知道一个好的 C++ 实现吗?
【问题讨论】:
-
是否可以在
TCP中看到它是如何完成的?这会有帮助吗? -
TCP 只是使用校验和来查看是否有问题。它实际上不会进行纠错(它只是再次请求数据包)。
-
看看openfec.org我不知道效果如何。
标签: c++ error-correction