ユーザーがエラーを検出するだけでなく修正することを可能にするCRCライブラリがありますか?私はC/C++またはJavaライブラリ、理想的にはオープンソースを探しています。CRCエラー修正ライブラリ?
答えて
私はCRCsがエラーを検出し、修正することはできないと信じています。これは、最も一般的な実装に当てはまります。あなたはerror correctionのテクニックを必要としますが、CRCは必要ありません。私はこれを行うためのライブラリを認識していませんが、あなたが探しているものが分かれば、簡単に見つけることができます。
これは正しいとは言えません。 http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/ecc.htmlによれば、「常に2ビットエラーを検出できるエラーチェックコードは、常に1ビットエラーを修正できます」 。そして、http://www.dsprelated.com/showmessage/107079/1.php: "単一エラー訂正を行うには、ECC ビットのワードサイズが2 ** N以下でなければなりません。ここで、NはECCビットの番号 – Gili
これは一般的なレベルで当てはまりますが、CRCアルゴリズムは修正を行いません。 – skaffman
CRCを使ってエラー訂正を行うことができます。 CRC(A XOR B)= CRC(A)XOR CRC(B)... Bをエラー、Aを送信、A XOR Bを受信メッセージとする。次に、CRC(B)= CRC(A XOR B)XOR CRC(A)。 ハミング距離証明は、すべてのエラーチェックコード(特に、大した努力なしには予約できない安全なハッシュコード)にはあてはまりませんが、CRCにはこのような問題はありません。 次に、CRC(B)からB(1つのエラー訂正の場合、ルックアップテーブルには単一エラービットのインデックスが含まれます)に戻るルックアップテーブルが必要です。 –
CRCは誤り訂正のために頻繁に使用されるとは思われませんが、ファイルのセットをチェックして修復したい場合は、常にus2で使用されるpar2を試すことができます。例えば、win32 libraryのように、インターネット上で多くの文書や実装を見つけることができます。
CRCは必要ありませんが、FEC(前方誤り訂正)は必要ありません。オープンソースの実装はlibfecにあります。
エラー訂正に関する最善の技術的解決策はターボコードと呼ばれます。 詳細については、http://en.wikipedia.org/wiki/Turbo_codeを参照してください。
しかし、私は多くの無料の実装を見つけることはないと思います。
あなたは本当に自由なものをしたい場合は、以下を参照してhttp://rscode.sourceforge.net/
ターボ符号は、高い符号化効率を達成するためにかなり複雑である。 –
で試してみてください:私はCRCが唯一のそれらを修正、エラーを検出しないことができると信じています。
作者が誤っています。 CRCは、シングルビットエラーを訂正するために使用できます。 C/C++ユーザージャーナル - 2003年6月 - 6ページ
http://www.drdobbs.com/an-algorithm-for-error-correcting-cyclic/184401662?queryText=Bill%2BMcDaniel
オンラインソースへのリンクがあるといいですか? – Gili
- 1. Arduino:FastCRCライブラリでCRCを生成する(uint32_t crcを連結する)
- 2. 修正Tkinterエラー
- 3. CRC-5正しい計算?
- 4. .NET用ライブラリを修正しました
- 5. ファイルを修正してCRCエラーを生成する方法はありますか?
- 6. DynamicJasper:java.lang.NoSuchMethodErrorエラーの修正方法
- 7. 修正方法 - エラー[django.security.SuspiciousFileOperation:216]?
- 8. 不正な修飾エラー
- 9. Nagios:SSHエラーを修正する
- 10. SQLエラー1064 - 修正方法?
- 11. 名前のエラー修正
- 12. Curl PHPエラー、修正方法?
- 13. 修正する方法のjava.lang.NullPointerExceptionエラー?
- 14. httpsエラーを修正するには
- 15. エラーjava.util.ConcurrentModificationExceptionを修正するには?
- 16. mysqlランタイムを修正するにはエラー
- 17. IMacrosを修正するFirefox Apiエラー-9
- 18. ActivityFeeds.UI.jsのエラーを修正するには?
- 19. レールのエラーを修正するには
- 20. エラー "Selection.addRange()"を修正するには?
- 21. エラーなしの次の修正
- 22. SwiftのLLdbエラー - 修正方法?
- 23. Timeagoのエラーを修正するには
- 24. Swift 3.0変換エラーの修正
- 25. NoClassDefFoundErrorを修正するには:CircularOutputStreamエラー?
- 26. mysqlエラーを修正するmysqli_stmt_bind_param()
- 27. Makefileエラーを修正するには?
- 28. ヘッダファイルのエラーを修正するには?
- 29. 輝度、ファインダーパターン、エラー修正レベルのzxingチェック
- 30. CocoaPodsでエラーを修正するには?
はちょうどチェックしますが、CRCは、ここで難しいの要件である、またはそれは誤り訂正/検出のための、より一般的な要件ですか? – skaffman
低レベルの通信プロトコルに適している限り、エラー訂正/検出の一般的な要件。最後に私はみんながCRC32を使っていることを確認しました。 – Gili
作業しているデータに関する詳細を指定する必要があります。データをストリーミングしたり、保存したりしていますか?トランスミッションはどのくらい騒々しいですか? – heyitsme