【问题标题】:Error correction for repeating stream重复流的纠错
【发布时间】:2012-05-21 05:33:37
【问题描述】:

我有一个需要使用纠错功能的应用程序。我不确定哪种方法最有意义。 Reed Solomon 似乎是最受欢迎的选择,但我想我只是列出我的环境,看看是否会出现其他问题。

我有一个可能非常嘈杂的数据流,有 50% 的数据丢失和偶尔的同步丢失问题。发送者将多次重复数据。接收方可以读取数据的多个副本,但每个副本都会遭受不同的损失,并且可能会丢失一些数据。在每个数据块中我一般可以确定哪些字节由于传输而丢失,但纠错还应该包括验证和纠正整个数据块的方法。

当我说碎片丢失时,我的意思是同步丢失。我将退出数据流并稍后在某个任意时间点返回。如果没有某种标记代码,就无法判断我在流中的位置。这些我可以自己添加,但如果这里也有标准方法,那就太好了。

如果 Reed-Solomon 是要走的路,有人知道一个好的 C++ 实现吗?

【问题讨论】:

  • 是否可以在TCP 中看到它是如何完成的?这会有帮助吗?
  • TCP 只是使用校验和来查看是否有问题。它实际上不会进行纠错(它只是再次请求数据包)。
  • 看看openfec.org我不知道效果如何。

标签: c++ error-correction


【解决方案1】:

Reed-Solomon 源码:http://sourceforge.net/projects/rscode/

但是,对于 50% 的数据丢失率,我认为 turbo 码或 LDPC 将比 Reed-Solomon 具有更好的性能。

【讨论】:

  • 感谢您的指点。我会检查其他选项。性能不是我主要关心的问题,因为每次传输我只处理几 K 的数据。简单性可能更重要,因为我可能需要多次实现它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
相关资源
最近更新 更多