Кодировщик Рида-Соломона для встраиваемых приложений (с эффективным использованием памяти)

Я ищу очень эффективную с точки зрения памяти (например, макс. 500 байт памяти для таблиц поиска и т. д.) реализацию кодировщика Рида-Соломона для использования во встроенном приложении?

Меня интересуют блоки кодирования по 10 байтов с 5 байтами четности. Скорость не имеет большого значения.

Знаете ли вы какие-либо свободно доступные реализации, которые я могу использовать для этой цели?

Заранее спасибо.


person Bjarke Freund-Hansen    schedule 08.06.2010    source источник


Ответы (1)


Начиная здесь:

http://www.eccpage.com/rs.c

Вы можете предварительно вычислить alpha_to, index_of и gg

Для примера программы, которая составляет 16+16+7 целых чисел (должны ли они быть целыми или будут работать байты?) или 156 байтов

В этом примере 9 целых данных и 6 целых чисел ecc или всего 15, если это 4-байтовые целые числа, то это еще 60 байтов, всего 216.

Или 54 байта, если это можно сделать только с байтами. Кажется, я помню, что он работает с байтами.

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

Я не помню, как перейти от 9 данных и 6 ecc примера к 10 и 5, которые вы ищете. Надеемся, что код в приведенной выше ссылке даст вам преимущество в том, что вы ищете.

person old_timer    schedule 09.06.2010
comment
Привет. Спасибо за вклад, это звучит как возможное решение. Предварительное вычисление таблиц, так как доступной флэш-памяти более чем достаточно. Да, он работает с байтами. На самом деле кодирование RS работает с любым размером алфавита. - person Bjarke Freund-Hansen; 09.06.2010
comment
Приведенный вами пример, возможно, является самым ошибочным и запутанным примером кодирования Рида-Соломона в сети. - person ; 20.02.2011