СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ КОДА РИДА-СОЛОМОНА Российский патент 2012 года по МПК H04L1/00 

Описание патента на изобретение RU2444137C1

Область техники

Настоящее изобретение относится к области коммуникации, конкретно к способу декодирования кода Рида-Соломона (Reed-Solomon, сокращено как код RS).

Уровень техники

Линейные блочные коды (Linear Grouping Code) - кодовые комбинации фиксированной длины, позволять обозначать ее как (n, k), обычно предназначены для упреждающей коррекции ошибок. При кодировании k битов информации нумеруются длину кодовых комбинаций n. Потому, что 2k кодовых слов блочного кода [n, k, d] образуют k-мерное подпространство, то 2k кодовых слов могут быть состоят из k линейно независимых базисов, если данные k базисов написаны в виде матрицы, то:

.

Всякие кодовые слова в кодах [n, k, d] могут быть порождены из линейной группировки данных базисов, то:

.

G называется как порождающая матрица кода. Очевидно, что для каждой строки порождающей матрицы требования к ней только ограничены в обеспечении линейной независимости (без учета минимального расстояния), а базис одного k-мерного пространства можно произвольно выбрать k линейно независимых векторов, поэтому порождающая матрица кода G также не является единственным, но независимо от какого типа они порождают одинаковое подпространство, то одни те же коды [n, k, d].

Код RS представляется собой линейный блоковый циклический код, для которого обработка осуществляется по единице группы символов (symbols) длиной n (в обычном случае n=8 битов, называется как кодовое слово), n символы в группе порождаются из подлежащих информационных символов передаче в соответствии с определенной взаимозависимостью. Потому, что в n символах еще должно включаться информация о защите ошибки в символе, тип кодирования должен быть выражен как (n, k), где k<n; поэтому, при n=8, всего 28=256 видов символов, пределы символов в десятичной системе 0~255. Эти 256 видов образуют одно конечное поле (называется как поле Галуа) GF (28). В обычном случае, если конечное поле представляется собой поле расширения двухмерного поля GF (2), выражается как GF (2m). В поле GF (2m) код RS (n, k), позволяющий коррекцию ошибок в количестве t, 2×t - число проверочных символов, расстояние минимального кода dmin=2×t+1=n-k+1 (проверочная матрица является матрицей полного ранга). Указанная ошибка одного символа обозначает как ошибку 1 бита в символе, так и ошибки некоторых битов, даже всех m битов в символах. Очевидно то, что код RS обладает чрезвычайной способностью коррекции случайной ошибки и пакетной ошибки, поэтому в области управления цифровой данной данный код используется широким использованием.

Канальный уровень предназначен для оказания сетевому уровню услуг передачи данных, данные услуги осуществляются на основе имеющейся функции данного уровня. Функция канального уровня включает в себя: создание и дезактивизация канала передачи данных, передача фрейма и синхронизация фрейма, управление ошибкой и потоком, управление каналом передачи данных. В качестве дополнительной техники упреждающей коррекции ошибок физического канального уровня, упреждающая коррекция ошибок (Forward Error Correction, сокращенно как FEC) канального уровня предназначена для осуществления функции управления ошибками канального уровня, а также обеспечения получения протоколом предыдущего уровня пакета данные без ошибок. Благодаря хорошим характеристикам, код RS очень пригоден для кода упреждающей коррекции ошибок канального уровня (Link Layer Forward Error Correction).

В цифровой коммуникации общеупотребительный перемежитель может быть распределен на перемежитель байтов и перемежитель битов в соответствии с предметами перемежения. Перемежитель байтов (Byte Interleaver) главным образом предназначен для разрушения последовательности первоначальных байтов, и чтобы положение ошибок оказалось случайным, соотношение по последовательности байтов после перемежения снизилось, а также ошибки распределялись между многими кодовыми словами, а не некоторыми кодовыми словами, самое выраженное достоинство данного способа заключается в чрезвычайном снижении влияния от пакетных ошибок данных.

Для последующего улучшения характеристик FEC канального уровня, устройство декодирования кода RS обычно используется совместно с перемежителем байтов. В обычном случае, перемежитель байтов может использовать перемежитель столбцов и строк, число столбцов равно длине кода RS, число столбцов изменяется с изменением числа блоков кодов. Например, для перемежителя байтов кодов RS (255, 207) определяться как 255 столбцов, в т.ч. левые 207 столбцов является полем информации, правые 48 столбцов является полем проверки. Число столбцов и строк перемежителя можно и не ограничено нумероваться с 0. В настоящем изобретении для обеспечения согласия описания кодирование нумеруется с 0.

В действующей технике в способе кодирования перемежения кода RS, в случае если пакет оперативных данных вводится в данный перемежитель байтов, сначала сверху донизу заполнять нулевой столбец, после того сверху донизу заполнять первый столбец и т.п., вплоть до того, что все данные данного пакета оперативных данных заполнены в данный перемежитель. В первых 207 столбцах незаполненная часть заполнена 0. Проверочная величина каждой строки образуется в соответствии с информацией данных первых 207 столбцов. Тип после кодирования перемежения указан в рис.1, где K=207, S=48. При выводе данных из перемежителя, начиная с нулевого столбца сверху донизу поочередно выводить, после вывода нулевого столбца сверху донизу поочередно выводить данные первого столбца, вплоть до полного окончания вывода данных 255 столбцов.

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

Раскрытие изобретения

Настоящее изобретение предназначено для решения такой технической проблемы, как предоставление одного способа и устройства декодирования кода RS, а также достижение оптимального эффекта перемежения.

Для решения вышеуказанных проблем настоящее изобретение представляет способ декодирования кода Рида-Соломона, данный способ включает в себя следующие шаги:

А: в перемежителе байтов по столбцам поочередно заполнять данные, подлежащие декодированию;

Б: для данных в поле проверки перемежителя байтов осуществляется циклический сдвиг по столбцам/строкам для того, чтобы данные каждого строки в поле проверки являлись упорядоченными проверочными данными, соответствующим строковым данным в поле информации перемежителя байтов;

В: по строковому способу выполняется RS декодирование, декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;

Г: из поля информации перемежителя байтов по столбцам вычитаются оперативные данные в указанных декодированных информационных данных.

Кроме того, в шаге Б, для данных в поле проверки перемежителя байтов циклический сдвиг выполняется по столбцам, число сдвигов битов всех строк в i-столбце в поле проверки: floor(i×M/S); где, M обозначает число строк указанного перемежителя байтов, S обозначает число столбцов в указанном поле проверки, i=0, 1, …, S-1.

Кроме того, шаг Г разбивается на следующие подшаги:

Г1: поочередно вычитать оперативные данные в столбцах от 0 до kc-1 в поле информации перемежителя байтов;

Г2: если в столбце kc включаются оперативные данные с d байтами, а также 0<d≤M/2, то начиная с строк 0, g, 2×g, …, (d-1)×g в данном столбце, сверху донизу поочередно вычитать остальные d байтов оперативных данных;

Если в столбце kc включаются оперативные данные с d байтами, а также d>M/2, то за исключением строк 0, h, 2×h, …, (M-d-1)×h, начиная с остальных строк, сверху донизу поочередно вычитать остальные d байтов оперативных данных;

В т.ч. число байтов действительных данных представляется собой F, число строк указанного перемежителя байтов представляется собой M, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d)).

Кроме того, в шаге Б для данных в поле проверки указанного перемежителя байтов сверху донизу выполняется указанный циклический сдвиг.

Для решения вышеуказанных технических проблем настоящее изобретение еще представляет устройство декодирования кода Рида-Соломона, включая: единицу заполнения данных, перемежитель байтов, единица декодирования; данное устройство еще включает в себя единица циклического сдвига, единицу извлечения данных; в т.ч.:

указанная единица заполнения данных предназначена для поочередного заполнения подлежащих данных декодированию по столбцам в указанном перемежителе байтов;

указанная единица циклического сдвига предназначена для отправления управляющего сигнала циклического сдвига перемежителю байтов, для данных в поле проверки перемежителя байтов осуществляется циклический сдвиг по столбцам/строкам для того, чтобы данные каждого строки в поле проверки являлись упорядоченными проверочными данными, соответствующим строковым данным в поле информации перемежителя байтов;

указанная единица декодирования предназначена для RS-декодирования данных в указанном перемежителе байтов по строковому способу. Декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;

указанная единица извлечения данных предназначена для вычитания оперативных данных в указанных декодированных информационных данных в поле информации перемежителя байтов по столбцам.

Кроме того, для данных в поле проверки указанного перемежителя байтов циклический сдвиг выполняется по столбцам указанной единицей циклического сдвига, число сдвигов битов всех строк в i-столбце в поле проверке: floor(i×M/S); где M обозначает число строк указанного перемежителя байтов, S обозначает число столбцов в указанном поле проверки, i=0, 1, …, S-1.

Кроме того, указанная единица извлечения данных предназначена для поочередного вычитания оперативных данных в столбцах от 0 до kc-1 в поле информации перемежителя байтов; а также:

если в столбце kc включаются оперативные данные с d байтами, а также 0<d≤M/2, то начиная с строк 0, g, 2×g, …, (d-1)×g в данном столбце, указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;

если в столбце kc включаются оперативные данные с d байтами, а также d>M/2, то, за исключением строк 0, h, 2×h, …, (M-d-1)×h, начиная с остальных строк, указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;

В т.ч. число байтов действительных данных представляется собой F, число строк указанного перемежителя байтов представляется собой M, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d)).

Кроме того, для данных в поле проверки указанного перемежителя байтов, указанная единица извлечения данных сверху донизу выполняет указанный циклический сдвиг.

Настоящее изобретение предназначено для решения другой задачи, как предоставление способа и устройства декодирования кода Рида-Соломон в целях повышения эффекта временного разнесения перемежения.

Настоящее изобретение еще представляет способ декодирования кода Рида-Соломона, данный способ включает в себя следующие шаги:

а: в перемежителе байтов по столбцам поочередно заполнять данные, подлежащие декодированию;

б: по строковому способу выполняется RS-декодирование, декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;

в: поочередно вычитать оперативные данные в столбцах от 0 до kc-1 из поля информации перемежителя байтов;

г: если в столбце kc включаются оперативные данные с d байтами, а также 0<d≤M/2, то начиная с строк 0, g, 2×g, …, (d-1)×g в данном столбце, сверху донизу поочередно вычитать остальные d байтов оперативных данных;

Если в столбце kc включаются оперативные данные с d байтами, а также d>M/2, то за исключением строк 0, h, 2×h, …, (M-d-1)×h, начиная с остальных строк, сверху донизу поочередно вычитать остальные d байтов оперативных данных;

В т.ч. число байтов действительных данных представляется собой F, число строк указанного перемежителя байтов представляется собой M, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d));

Настоящее изобретение еще представляет устройство декодирования кода Рида-Соломона, включая: единица заполнения данных, перемежитель байтов, единица декодирования; данное устройство еще включает в себя единица извлечения данных; в т.ч.:

указанная единица заполнения данных предназначена для поочередного заполнения подлежащих данных декодированию по столбцам в указанном перемежителе байтов;

указанная единица декодирования предназначена для RS-декодирования данных в указанном перемежителе байтов по строковому способу. Декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;

указанная единица извлечения данных предназначена для поочередного вычитания оперативных данных в столбцах от 0 до kc-1 в поле информации перемежителя байтов; а также:

Если в столбце kc включаются оперативные данные с d байтами, а также 0<d≤M/2, то начиная с строк 0, g, 2×g, …, (d-1)×g в данном столбце, указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;

Если в столбце kc включаются оперативные данные с d байтами, а также d>M/2, то за исключением строк 0, h, 2×h, …, (M-d-1)×h, начиная с остальных строк, указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;

В т.ч. число байтов действительных данных представляется собой F, число строк указанного перемежителя байтов представляется собой M, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d)).

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

Краткое описание чертежей

Рис.1 - Схема кода RS после кодирования перемежения в действующей технике;

Рис.2 - Схема способа кодирования перемежения кода RS;

Рис.3 - Схема перемежения части заполнения с применением способа кодирования перемежения кода RS;

Рис.4 - Схема заполнения проверочных данных с применением способа кодирования перемежения кода RS;

Рис.5 - пример осуществления настоящего изобретения - схема способа кодирования перемежения кода RS;

Рис.6 - пример осуществления настоящего изобретения - схема заполнения перемежителя байтов кода RS (N, K, S) с применением данных подлежащих кодов декодированию;

Рис.7 - пример осуществления настоящего изобретения - схема структуры устройства декодирования кода RS.

Осуществление изобретения

Настоящее изобретение предоставляет один способ кодирования перемежения кода RS, а также соответствующий способ декодирования кода RS. Путем дисперсии района с величиной заполнением 0 в последнем столбце с действительными данными в поле информации, и/или сдвига проверочных данных в поле проверки совершенствуют способ кодирования перемежения кода RS в действующей технике, а также достижения такого технического эффекта, как повышение надежности канального уровня данных.

В дальнейшем в сочетании приложенной схемы и примеров осуществления соответственно выполняется подробное описание о кодировании перемежения кода RS и способе и устройстве декодирования соответствующего кода RS в настоящем изобретении.

Способ кодирования перемежения кода RS

Настоящий пример осуществления предоставляет один способ кодирования перемежения кода RS, данные коды RS предусмотрены как (N, K, S), то число столбцов соответствующего перемежителя байтов - N, левые K столбцов является полем информации, правые S (S=N-K) столбцов является полем проверки, единица вышеуказанных N, K, S является байтом. В настоящем примере осуществления число строк и столбцов перемежителя нумеруются с цифры 0, при конкретном осуществлении применение другого способа нумерации также является возможным. Как указано в рис.2, конкретные операции способа настоящего изобретения заключаются в нижеследующем:

Шаг 201: путем мультипротокольной инкапсуляции данные IP (Internet Protocol, межсетевой протокол) образуют поток битов TS (Time-Slicing, временный интервал), получают длину байтов пакета оперативных данных, длина байтов данного пакета данных предусмотрена как F байтов, конкретные операции данного шага одинаковы с действующей техникой;

Шаг 202: в соответствии с длиной байтов F в пакете оперативных данных и числом столбцов K в поле информации осуществляется расчет числа строк M перемежителя и числа столбцов kc, которые может быть заполнены действительными данными в поле информации. Столбец, заполненный действительными данными, есть столбец, который можно заполнен данными в бывшем пакете данных;

В т.ч.:

Число столбцов перемежителя M=ceil(F/K), ceil(•) - округление верх;

kc=floor(F/M), floor(•) - округление вниз;

Кроме того, еще нужно выполнять расчет нижеследующих параметров:

d=FmodM, mod - модулярная операция; d - число байтов остальных действительных данных после kc столбцов перед полным заполнением;

Кроме того, g=floor(M/d); h=floor(M/(M-d)).

Шаг 203: в соответствии с полученными параметрами с помощью вышеуказанных формул, первые K-столбцов перемежителя байтов кодов RS (N, K, S), т.е. поле информации заполнены оперативными данными.

Этот шаг может быть разделен на следующие подшаги:

Шаг 2031: начиная с нулевого столбца, первые kc×M байтов в пакете оперативных данных по каждому столбцу поочередно записаны в первые kc столбцов (т.е. от 0 до kc-1 столбцов) в указанном поле информации, каждый столбец записаны сверху донизу;

Т.е., начиная с нулевого столбца перемежителя байтов кода RS (N, K, S) сверху донизу заполнять, после того сверху донизу заполнять первый столбец и т.п., вплоть до того, что первые kc столбцов перемежителя байтов кода RS (N, K, S) заполнены, в каждом столбце заполнять M байтов; после окончания заполнения первых кс×М байтов, если d не ровно 0, то исполнять шаг 2032, иначе исполнять шаг 204.

Шаг 2032: kc-столбец заполнен остальными данными с d байтами и байтами M-d в пакетеоперативных данных;

Конкретный способ заполнения заключается в нижеследующем, но в нем не ограничено:

При d≤M/2, остальные d байтов пакета оперативных данных сверху донизу поочередно записаны в строку 0, g, 2×g, …, (d-1)×g в данном столбце, остальные положения заполнены M-d байтами 0;

Иначе, строка 0, h, 2×h, …, (M-d-1)×h в данном столбце заполнена M-d байтами 0, остальные d байтов пакета оперативных данных сверху донизу поочередно записаны в положение остальных строк, тип после заполнения указан, как в рис.3. При этом в данном столбце данные информации и данные заполнения почти находятся в состоянии ровного распределения.

Шаг 2033: 0 байт полно заполняется в остальной части поля информации, т.е. от kc+1 столбца до K-1 столбца.

Шаг 204: в соответствии с данными в поле информации выполняется структура данных поля проверки каждой строки, т.е. выполняется кодирования кода RS по строковому способу. После окончания каждой строки добавлены проверочные данные с S байтами, проверочные данные каждой строки образуются в соответствии с информацией данных первых K столбцов на данной строке. Конкретный способ одинаков с действующей техникой, тип после заполнения указан, как в рис.4, в данной схеме только показано состояние заполнения проверочных данных нулевой строки;

Шаг 205: для проверочных данных выполняется обработка циклического сдвига, циклический сдвиг может быть осуществлен по строкам или столбцам, может быть осуществлен по строкам, и по столбцам. Число сдвигов битов каждой строки или каждого столбца может быть неравным. Число сдвигов битов каждой строки или каждого столбца может быть получено по некоторому заданному договору. Например, получено по некоторой заданной формуле расчета;

Для циклического сдвига по столбцам можно применять следующий способ, но в нем не ограничено:

Для данных всех строк в нулевом столбце не осуществляется операция циклического сдвига по столбцам;

Для данных всех строк в i столбце, сверху донизу (или снизу вверх) выполняется циклический сдвиг, число сдвигов битов всех данных в одинаковом столбце одинаково. Для расчета числа сдвигов битов можно применять следующую формулу, но в ней не ограничено:

Floor(i×M/S) битов, i=1, …, S-1.

Шаг 206: по столбцам поочередно вычитаются данные поля проверки в перемежителе байтов кода RS (N, K, S), для каждого столбца сверху донизу выводиться, для вычитаемых данных выполняется инкапсуляция адаптации мультиплекса XPE-FEC (extensible Protocol Encapsulation - Forward Error Corection, расширенная протокольная инкапсуляция - упреждающая коррекция ошибок).

Одним словам, с применением вышеуказанного способа кодирования перемежения кода RS, если циклический сдвиг выполняется по стороне строки, можно избежать от влияния от непрерывных ошибок в пакете данных на декодирование; если выполняется по стороне столбца, обеспечить наличие хорошего разнообразия на стороне строке, играет роль в замене строк перемежителя столбцов и строк, в процессе передачи пакета данных может избежать от вмешательства периодического шума, тем самым кодирование обладает самыми отличными характеристиками; кроме того, вышеуказанный способ еще предоставляет ровное размещение байты с заполнением 0 в столбцах с заполненными байтами и байтами пакета данных информации, благодаря тому, по времени наличие более ровной защиты. Достоинство настоящего способа заключается в том, что эффективность разнообразия времени перемежения окажется более хорошей.

Способ декодирования кода RS

Рис.5 пример осуществления настоящего изобретения - схема способа декодирования кода RS. Данный способ декодирования является соответствующим обратным процессом вышеуказанного способа кодирования. В данном примере осуществления также нужно предусмотреть код RS как (N, K, S), кроме того, предусмотреть число байтов Т подлежащих данных декодирования (включая оперативные данные, заполненные данные и соответствующие проверочные данные), полученных после деинкапсуляции приемного пакета оперативных данных в соответствии с мультипротоколом.

Указано в рис.5, данный способ включает в себя следующие шаги:

Шаг 501: в соответствии с числом байтов подлежащих данных декодирования Т и числом столбцов перемежителя байтов N выполняется расчет числа строк указанного перемежителя байтов M=ceil(T/N);

Шаг 502: заполнять перемежитель байтов кодов RS (N, K, S) с применением подлежащих данных декодирования;

Рис.6 пример осуществления настоящего изобретения - схема заполнения перемежителя байтов кодов RS (N, K, S) с применением подлежащих данных декодирования.

Шаг 503: для проверочных данных (т.е. указанно в рис.6, данные правых S столбцов в указанном перемежителе) проводится обработка циклического сдвига. Правила циклического сдвига данного шага соответствует применяемой правиле в процессе кодирования перемежения соответствующего кода RS, циклический сдвиг может быть осуществлен по строкам, так и по столбцам. Число сдвигов битов каждой строки или каждого столбца может быть неравным. Число сдвигов битов каждой строки или каждого столбца может быть получено по некоторому заданному договору. Например, получено по некоторой заданной формуле расчета.

Конкретный способ циклического сдвига в следующем, но не ограничено: (соответствующий способу циклического сдвига, принятому в шаге 205)

Для данных всех строк в нулевом столбце не осуществляется операция циклического сдвига по столбцам;

Для данных всех строк в i столбце сверху донизу (или снизу вверх) выполняется циклический сдвиг, число сдвигов битов всех данных в одинаковом столбце одинаково. Для расчета числа сдвигов битов можно применять следующую формулу, но в ней не ограничено:

Floor(i×M/S) битов, i=1, …, S-1.

Шаг 504: в соответствии с данными каждой строки в перемежителе байтов, выполняется кодирования кода RS по строковому способу, получаются данные информации с K байтами, и записываются в первые K столбцов в данной строке, т.е. получаются данные каждой строке в поле информации, конкретный способ декодирования одинаков с действующей техникой.

Шаг 505: по столбцам поочередно вычитаются декодированные действительные данные поля информации в перемежителе байтов кода RS;

Этот шаг может быть разделен на следующие подшаги:

Шаг 5051: в соответствии с числом байтов F указанной последовательности действительных данных (т.е. последовательность оперативных данных) выполняется расчет числа столбцов kc, заполненных действительными данными в указанном поле информации, kc=floor(F/M);

Вышеуказанное число байтов последовательности действительных данных F предусмотрено сообщается терминалу получения (терминал декодирования кода RS) с помощью других сигналов.

Шаг 5052: поочередно вычитаны первые kc столбцов в поле информации, каждый столбец вычитан сверху донизу; получаются первые kc×M байтов указанной последовательности информации;

Шаг 5053: допустим, что в последовательности информации остальные d байтов не вычитаны, при d=0, то окончится; при d≠0, то выполняется шаг 5054;

Где d=FmodM.

Шаг 5054: g=floor(M/d), h=floor(M/(M-d)); по нижеуказанному способу остальные d байтов в последовательности информации вычитаны из kc-го столбца перемежителя:

При 0<d≤M/2, начиная с строки 0, g, 2×g, …, (d-1)×g в данном столбце сверху донизу поочередно читает остальные d байтов последовательности информации;

При d>M/2, то пропускает строку 0, h, 2×h, …, (M-d-1)×h в данном столбце не читает, сверху донизу поочередно читает остальные d байтов последовательности информации среди остальных строк в данному столбце.

Стоит отметить то, что шаг 503 является выборочным шагом, т.е. шаги 501-502 плюс шаги 504-505 могут образовать один полный пример осуществления.

Устройство декодирования кода RS

Рис.7 - пример осуществления настоящего изобретения - схема конструкции устройства декодирования кода RS. Как указано в рис.7, в состав данного устройства входят единица заполнения данных, память (т.е. перемежитель байтов), единица циклического сдвига, единица декодирования, единица извлечения данных. В т.ч.:

единица заполнения данных предназначена для приема подлежащих данных декодированию, расчета числа строк указанного перемежителя байтов М в соответствии с числом байтов подлежащих данных декодирования Т и числом столбцов перемежителя байтов N; заполнять перемежитель байтов кодов RS (N, K, S) подлежащими данными декодирования; формула расчета M как вышеуказана;

единица циклического сдвига предназначена для вывода управляющего сигнала циклического сдвига перемежителю байтов, выполнения циклического сдвига проверочных данных в перемежителе байтов по столбцам/строкам; конкретный способ сдвига и формула расчета число сдвигов битов выше указано.

Стоит отметить то, что единица циклического сдвига является выборочной единицей.

Единица декодирования предназначена для выполнения RS декодирования данных каждой строки в перемежителе байтов по строковому способу получения данных информации с K байтами, и записки в первые K столбцов на данной строке, т.е. получения данных каждой строке в поле информации.

Единица извлечения данных предназначена для поочередного вычитания декодированных действительных данных в поле информации перемежителя байтов по столбцам, и для вывода последовательности действительных данных; конкретные способ вычитания выше указано.

Промышленная применимость

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

Похожие патенты RU2444137C1

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ КОДА С ГЕНЕРАТОРНОЙ МАТРИЦЕЙ НИЗКОЙ ПЛОТНОСТИ 2008
  • Юань Чжифен
  • Сюй Цзюнь
RU2461963C2
УСТРОЙСТВО И СПОСОБ ДЛЯ ПЕРЕМЕЖЕНИЯ КАНАЛОВ В СИСТЕМЕ МОБИЛЬНОЙ СВЯЗИ 2005
  • Ким Донг-Хее
  • Квон Хван-Дзоон
  • Ким Юн-Сун
  • Хан Дзин-Киу
RU2349030C2
УСТРОЙСТВО И СПОСОБ ДЛЯ ПЕРЕМЕЖЕНИЯ КАНАЛА В СИСТЕМЕ СВЯЗИ 2006
  • Бхушан Нага
RU2365035C1
СПОСОБ АДАПТИВНОГО КАНАЛЬНОГО КОДИРОВАНИЯ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ 1998
  • Парк Чанг Соо
  • Ли Хиеон Воо
  • Ли Пил Дзоонг
  • Конг Дзун Дзин
  • Ким Йонг
RU2193276C2
ПЕРЕМЕЖИТЕЛЬ ТУРБОКОДА, ИСПОЛЬЗУЮЩИЙ ЛИНЕЙНЫЕ КОНГРУЭНТНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ 1999
  • Ровитч Дуглас Н.
  • Линг Фуниун
RU2235424C2
УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ И СПОСОБ ОБРАБОТКИ ДАННЫХ 2014
  • Синохара Юдзи
  • Ямамото Макико
RU2656830C2
ТУРБОДЕКОДЕР, ИСПОЛЬЗУЮЩИЙ ЛИНЕЙНЫЕ КОНГРУЭНТНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ 2007
  • Ровитч Дуглас Н.
  • Лин Фуниун
RU2376702C2
СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ КОДА ПОРОЖДАЮЩЕЙ МАТРИЦЫ С НИЗКОЙ ПЛОТНОСТЬЮ 2008
  • Юань Чжифэн
  • Сюй Цзюнь
RU2461962C2
Способ перемежения кодовых символов в коде с низкой плотностью проверок на четность 2021
  • Жданов Александр Эдуардович
RU2755295C1
УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ И СПОСОБ ОБРАБОТКИ ДАННЫХ 2012
  • Синохара Юдзи
  • Ямамото Макико
RU2595585C2

Иллюстрации к изобретению RU 2 444 137 C1

Реферат патента 2012 года СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ КОДА РИДА-СОЛОМОНА

Изобретение относится к области коммуникации, конкретно к способу и устройству декодирования кода Рида-Соломона. Способ включает в себя следующие шаги: А: в перемежителе байтов по столбцам поочередно заполнять данные, подлежащие декодированию; Б: для данных в поле проверки перемежителя байтов осуществляется циклический сдвиг по столбцам/строкам для того, чтобы данные каждой строки в поле проверки являлись упорядоченными проверочными данными, соответствующими строковым данным в поле информации перемежителя байтов; В: по строковому способу выполняется RS-декодирование, декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов; Г: из поля информации перемежителя байтов по столбцам вычитаются оперативные данные в указанных декодированных информационных данных. Технический результат - достижение оптимального эффекта перемежения. 4 н. и 6 з.п. ф-лы, 7 ил.

Формула изобретения RU 2 444 137 C1

1. Способ декодирования кода Рида-Соломона, характеризующийся тем, что данный способ включает в себя следующие шаги:
А: в перемежителе байтов по столбцам поочередно заполняют данные, подлежащие декодированию;
Б: для данных в поле проверки перемежителя байтов осуществляется циклический сдвиг по столбцам/строкам для того, чтобы данные каждой строки в поле проверки являлись упорядоченными проверочными данными, соответствующим строковым данным в поле информации перемежителя байтов;
В: по строковому способу выполняется RS декодирование, декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;
Г: из поля информации перемежителя байтов по столбцам вычитаются оперативные данные в указанных декодированных информационных данных.

2. Способ по п.1, отличающийся тем, что
на шаге Б для данных в поле проверки перемежителя байтов циклический сдвиг выполняется по столбцам, число сдвигов битов всех строк в i-столбце в поле проверки: floor(i×M/S); где M обозначает число строк указанного перемежителя байтов, S обозначает число столбцов в указанном поле проверки, i=0, 1, …, S-1.

3. Способ по п.1, отличающийся тем, что
шаг Г разбивается на следующие подшаги:
Г1: поочередно вычитают оперативные данные в столбцах от 0 до kc-1 в поле информации перемежителя байтов;
Г2: если в столбце kc включены оперативные данные с d байтами, а также 0<d≤M/2, то начиная со строк 0, g, 2×g, …, (d-1)×g в данном столбце сверху донизу поочередно вычитают остальные d байтов оперативных данных;
если в столбце kc включены оперативные данные с d байтами, а также d>M/2, то за исключением строк 0, h, 2×h, …, (M-d-1)×h начиная с остальных строк сверху донизу поочередно вычитают остальные d байтов оперативных данных;
при этом число байтов действительных данных представляет собой F, число строк указанного перемежителя байтов представляет собой M, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d)).

4. Способ по п.2, отличающийся тем, что
на шаге Б для данных в поле проверки указанного перемежителя байтов сверху донизу выполняется указанный циклический сдвиг.

5. Способ декодирования кода Рида-Соломона, характеризующийся тем, что включает в себя следующие шаги:
а: в перемежителе байтов по столбцам поочередно заполняют данные, подлежащие декодированию;
б: по строковому способу выполняется RS декодирование, декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;
в: поочередно вычитают оперативные данные в столбцах от 0 до kc-1 из поля информации перемежителя байтов;
г: если в столбце kc включены оперативные данные с d байтами, а также 0<d≤M/2, то начиная со строк 0, g, 2×g, …, (d-1)×g в данном столбце сверху донизу поочередно вычитают остальные d байтов оперативных данных;
если в столбце kc включены оперативные данные с d байтами, а также d>M/2, то за исключением строк 0, h, 2×h, …, (M-d-1)×h начиная с остальных строк сверху донизу поочередно вычитают остальные d байтов оперативных данных;
при этом число байтов действительных данных представляет собой F, число строк указанного перемежителя байтов представляет собой M, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d)).

6. Устройство декодирования кода Рида-Соломона, включающее: единицу заполнения данных, перемежитель байтов, единицу декодирования; характеризующееся тем, что данное устройство еще включает в себя единицу извлечения данных; при этом:
указанная единица заполнения данных предназначена для поочередного заполнения подлежащих данных декодированию по столбцам в указанном перемежителе байтов;
указанная единица циклического сдвига предназначена для отправления управляющего сигнала циклического сдвига перемежителю байтов, для данных в поле проверки перемежителя байтов осуществляется циклический сдвиг по столбцам/строкам для того, чтобы данные каждой строки в поле проверки являлись упорядоченными проверочными данными, соответствующими строковым данным в поле информации перемежителя байтов;
указанная единица декодирования предназначена для RS декодирования данных в указанном перемежителе байтов по строковому способу, декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;
указанная единица извлечения данных предназначена для вычитания оперативных данных в указанных декодированных информационных данных в поле информации перемежителя байтов по столбцам.

7. Устройство по п.6, отличающееся тем, что
для данных в поле проверки указанного перемежителя байтов циклический сдвиг выполняется по столбцам указанной единицей циклического сдвига, число сдвигов битов всех строк в i-столбце в поле проверки: floor(i×M/S); где M обозначает число строк указанного перемежителя байтов S обозначает число столбцов в указанном поле проверки, i=0, 1, …, S-1.

8. Устройство по п.6, отличающееся тем, что
указанная единица извлечения данных предназначена для поочередного вычитания оперативных данных в столбцах от 0 до kc-1 в поле информации перемежителя байтов; а также:
если в столбце kc включены оперативные данные с d байтами, а также 0<d≤M/2, то начиная со строк 0, g, 2×g, …, (d-1)×g в данном столбце указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;
если в столбце kc включены оперативные данные с d байтами, а также d>M/2, то за исключением строк 0, h, 2×h, …, (M-d-1)×h начиная с остальных строк указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;
при этом число байтов действительных данных представляет собой F, число строк указанного перемежителя байтов представляет собой М, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d)).

9. Устройство по п.7, отличающееся тем, что
для данных в поле проверки указанного перемежителя байтов указанная единица извлечения данных сверху донизу выполняет указанный циклический сдвиг.

10. Устройство декодирования кода Рида-Соломона, включающее: единицу заполнения данных, перемежитель байтов, единицу декодирования; характеризующееся тем, что данное устройство еще включает в себя единицу извлечения данных; при этом
указанная единица заполнения данных предназначена для поочередного заполнения подлежащих данных декодированию по столбцам в указанном перемежителе байтов;
указанная единица декодирования предназначена для RS декодирования данных в указанном перемежителе байтов по строковому способу, декодированные все строковые данные поочередно записываются в соответствующие строки в поле информации перемежителя байтов;
указанная единица извлечения данных предназначена для поочередного вычитания оперативных данных в столбцах от 0 до kc-1 в поле информации перемежителя байтов; а также:
если в столбце kc включены оперативные данные с d байтами, а также 0<d≤M/2, то начиная со строк 0, g, 2×g, …, (d-1)×g в данном столбце указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;
если в столбце kc включены оперативные данные с d байтами, а также d>M/2, то за исключением строк 0, h, 2×h, …, (M-d-1)×h начиная с остальных строк указанная единица извлечения данных сверху донизу поочередно вычитает остальные d байтов оперативных данных;
при этом число байтов действительных данных представляет собой F, число строк указанного перемежителя байтов представляет собой М, kc=floor(F/M), d=FmodM, g=floor(M/d), h=floor(M/(M-d)).

Документы, цитированные в отчете о поиске Патент 2012 года RU2444137C1

US 2006085726 A1, 20.04.2006
СПОСОБ КОДИРОВАНИЯ-ДЕКОДИРОВАНИЯ ИНФОРМАЦИИ В СИСТЕМАХ ПЕРЕДАЧИ ДАННЫХ 2005
  • Парамонов Александр Борисович
  • Егоров Владимир Викторович
  • Щеглова Елена Федоровна
  • Тимофеев Александр Евгеньевич
  • Мингалев Андрей Николаевич
RU2310273C2
US 2006026492 A1, 02.02.2006
Устройство для преобразования изображений 1984
  • Арсеньев Александр Яковлевич
  • Богданов Анатолий Иванович
  • Гусев Евгений Игоревич
  • Петрушко Игорь Владимирович
  • Спиридонов Игорь Николаевич
SU1285504A1
Устройство для испытания свай 1984
  • Берман Виталий Иосифович
SU1262004A1

RU 2 444 137 C1

Авторы

Сюй Цзинь

Сюй Цзюнь

Юань Чжифэн

Ху Люцзюнь

Даты

2012-02-27Публикация

2008-08-25Подача