سؤال

Is there a CRC library that enables the user not only detect errors but also correct them? I'm looking for a C/C++ or Java library, ideally open-source.

هل كانت مفيدة؟

المحلول

I believe that CRCs can only detect errors, not correct them. That's certainly true of the most common implementation. You want some kind of error correction technique, not a CRC. I'm not aware of any libraries for doing this, but they must be easy enough to find once you know what you're looking for.

نصائح أخرى

You don't want CRC, but FEC (forward error correction). You can find an open source implementation in libfec.

The best technical solution about Error Correction is called turbocode. See http://en.wikipedia.org/wiki/Turbo_code for more information about that.

But I'm afraid you won't find much free implementations of it.

If you really want a free one, give a try at http://rscode.sourceforge.net/

In reference to the following: I believe that CRCs can only detect errors, not correct them.

The writer is misinformed. CRCs CAN be used to correct single bit errors. C/C++ Users Journal - June 2003 - page 6.

http://www.drdobbs.com/an-algorithm-for-error-correcting-cyclic/184401662?queryText=Bill%2BMcDaniel

I don't think CRC is used often for error correction, however if you want to check and repair sets of files you can always try par2, which is often used on usenet. You can find a lot of documentation and implementations on the internet, for example a win32 library.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top