CRC библиотека исправления ошибок?

Существует ли библиотека CRC, которая позволяет пользователю не только обнаруживать ошибки, но и исправлять их? Я ищу библиотеку C/C++ или Java, в идеале с открытым исходным кодом.

5 ответов

Решение

Я считаю, что CRC могут только обнаруживать ошибки, но не исправлять их. Это, безусловно, верно для наиболее распространенной реализации. Вы хотите какую-то технику исправления ошибок, а не CRC. Я не знаю ни одной библиотеки для этого, но их должно быть достаточно легко найти, когда вы знаете, что ищете.

Вы не хотите CRC, но FEC (прямое исправление ошибок). Вы можете найти реализацию с открытым исходным кодом в libfec.

Лучшее техническое решение об исправлении ошибок называется турбокодом. Смотрите http://en.wikipedia.org/wiki/Turbo_code для получения дополнительной информации об этом.

Но я боюсь, что вы не найдете много бесплатных реализаций этого.

Если вы действительно хотите бесплатный, попробуйте на http://rscode.sourceforge.net/

В отношении следующего: я считаю, что CRC могут только обнаруживать ошибки, но не исправлять их.

Автор дезинформирован. CRC МОЖЕТ использоваться для исправления ошибок в одном бите. C/C++ Users Journal - июнь 2003 г. - стр. 6.

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

Я не думаю, что CRC часто используется для исправления ошибок, однако, если вы хотите проверить и исправить наборы файлов, вы всегда можете попробовать par2, который часто используется в usenet. Вы можете найти много документации и реализаций в Интернете, например, библиотеку win32.

Другие вопросы по тегам