RU2444137C1 - Способ и устройство декодирования кода рида-соломона - Google Patents

Способ и устройство декодирования кода рида-соломона Download PDF

Info

Publication number
RU2444137C1
RU2444137C1 RU2010143320/09A RU2010143320A RU2444137C1 RU 2444137 C1 RU2444137 C1 RU 2444137C1 RU 2010143320/09 A RU2010143320/09 A RU 2010143320/09A RU 2010143320 A RU2010143320 A RU 2010143320A RU 2444137 C1 RU2444137 C1 RU 2444137C1
Authority
RU
Russia
Prior art keywords
data
byte interleaver
bytes
rows
columns
Prior art date
Application number
RU2010143320/09A
Other languages
English (en)
Inventor
Цзинь СЮЙ (CN)
Цзинь СЮЙ
Цзюнь СЮЙ (CN)
Цзюнь СЮЙ
Чжифэн ЮАНЬ (CN)
Чжифэн ЮАНЬ
Люцзюнь ХУ (CN)
Люцзюнь ХУ
Original Assignee
Зти Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Зти Корпорейшн filed Critical Зти Корпорейшн
Application granted granted Critical
Publication of RU2444137C1 publication Critical patent/RU2444137C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

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

Description

Область техники
Настоящее изобретение относится к области коммуникации, конкретно к способу декодирования кода Рида-Соломона (Reed-Solomon, сокращено как код RS).
Уровень техники
Линейные блочные коды (Linear Grouping Code) - кодовые комбинации фиксированной длины, позволять обозначать ее как (n, k), обычно предназначены для упреждающей коррекции ошибок. При кодировании k битов информации нумеруются длину кодовых комбинаций n. Потому, что 2k кодовых слов блочного кода [n, k, d] образуют k-мерное подпространство, то 2k кодовых слов могут быть состоят из k линейно независимых базисов, если данные k базисов написаны в виде матрицы, то:
Figure 00000001
.
Всякие кодовые слова в кодах [n, k, d] могут быть порождены из линейной группировки данных базисов, то:
Figure 00000002
.
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 эффективность разнообразия времени перемежения окажется более хорошей.

Claims (10)

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)).
RU2010143320/09A 2008-04-23 2008-08-25 Способ и устройство декодирования кода рида-соломона RU2444137C1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200810093233A CN100589359C (zh) 2008-04-23 2008-04-23 一种里德索罗蒙码的译码方法及装置
CN200810093233.5 2008-04-23

Publications (1)

Publication Number Publication Date
RU2444137C1 true RU2444137C1 (ru) 2012-02-27

Family

ID=39962546

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010143320/09A RU2444137C1 (ru) 2008-04-23 2008-08-25 Способ и устройство декодирования кода рида-соломона

Country Status (5)

Country Link
US (1) US8286063B2 (ru)
EP (1) EP2271018B1 (ru)
CN (1) CN100589359C (ru)
RU (1) RU2444137C1 (ru)
WO (1) WO2009129675A1 (ru)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729193B (zh) * 2008-11-03 2013-08-28 华为技术有限公司 编码方法和装置、解码方法和装置以及编解码系统
CN101969358B (zh) * 2010-09-29 2012-12-26 航天恒星科技有限公司 一种用于空间通信的高速并行rs译码方法
CN102325003B (zh) * 2011-07-14 2014-02-12 海能达通信股份有限公司 数据错误检测的方法及设备
CN103780352B (zh) * 2014-01-26 2017-02-01 上海网达软件股份有限公司 Rsfec解码算法的解码性能优化方法
RU2677372C1 (ru) * 2017-08-07 2019-01-16 Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет "(ЮЗГУ) Устройство декодирования произведений кодов Рида-Соломона
CN114598420B (zh) * 2018-01-12 2024-07-05 华为技术有限公司 一种编码方法及装置
CN113485866B (zh) * 2021-07-02 2023-05-09 海光信息技术股份有限公司 译码方法及相关装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1262004A (zh) * 1997-05-30 2000-08-02 夸尔柯姆股份有限公司 为空中文件转发提供差错保护的方法和装置
EP1285504A2 (en) * 2000-05-18 2003-02-26 Broadcom HomeNetworking, Inc. Interleaved reed solomon coding for home networking
RU2310273C2 (ru) * 2005-10-24 2007-11-10 Открытое акционерное общество "Российский институт мощного радиостроения" Способ кодирования-декодирования информации в системах передачи данных

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889356B1 (en) * 1994-11-23 2005-05-03 Cingular Wireless Ii, Llc Cyclic trellis coded modulation
US7000168B2 (en) * 2001-06-06 2006-02-14 Seagate Technology Llc Method and coding apparatus using low density parity check codes for data storage or data transmission
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
CA2456485C (en) * 2002-07-03 2011-11-15 Hughes Electronics Corporation Method and system for providing low density parity check (ldpc) encoding
KR100902295B1 (ko) * 2002-10-19 2009-06-10 삼성전자주식회사 복합적 오류정정 부호화 기능을 구비한 디지털방송시스템의 전송장치 및 전송방법
EP1511212B1 (en) * 2003-08-29 2007-03-07 Mitsubishi Electric Information Technology Centre Europe B.V. Method for transmitting optimally interleaved data in a MIMO telecommunication system
KR20060011249A (ko) * 2004-07-29 2006-02-03 삼성전자주식회사 블록 인터리빙을 사용하는 이동통신 시스템에서디인터리빙 버퍼 운용 방법 및 그 장치
KR20060029495A (ko) 2004-10-01 2006-04-06 삼성전자주식회사 리드-솔로몬 부호의 복호 장치 및 방법
US7617441B2 (en) * 2005-07-18 2009-11-10 Broadcom Corporation Efficient construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices
US7617439B2 (en) * 2005-01-10 2009-11-10 Broadcom Corporation Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices
US7617442B2 (en) * 2005-07-18 2009-11-10 Broadcom Corporation Efficient construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1262004A (zh) * 1997-05-30 2000-08-02 夸尔柯姆股份有限公司 为空中文件转发提供差错保护的方法和装置
EP1285504A2 (en) * 2000-05-18 2003-02-26 Broadcom HomeNetworking, Inc. Interleaved reed solomon coding for home networking
RU2310273C2 (ru) * 2005-10-24 2007-11-10 Открытое акционерное общество "Российский институт мощного радиостроения" Способ кодирования-декодирования информации в системах передачи данных

Also Published As

Publication number Publication date
CN101262305A (zh) 2008-09-10
EP2271018B1 (en) 2017-10-04
EP2271018A4 (en) 2011-05-11
CN100589359C (zh) 2010-02-10
WO2009129675A1 (zh) 2009-10-29
EP2271018A1 (en) 2011-01-05
US20110041034A1 (en) 2011-02-17
US8286063B2 (en) 2012-10-09

Similar Documents

Publication Publication Date Title
RU2444137C1 (ru) Способ и устройство декодирования кода рида-соломона
US9660763B2 (en) Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
RU2604992C2 (ru) Устройство, содержащее кольцевой буфер и способ для присвоения вариантов избыточности кольцевому буферу
KR101283724B1 (ko) 무선 통신 시스템에서 다단 순환 중복 검사 코드
JP4553330B2 (ja) 符号化装置及び方法、復号装置及び方法、情報処理装置及び方法、並びに記憶媒体
US8429503B2 (en) Encoding device and decoding device
JP5474256B2 (ja) 入力ビット誤り率推定方法、及びその装置
KR101689906B1 (ko) 레이트 매칭 방법 및 그 장치
CN102130742B (zh) 纠错编码装置和方法、及纠错解码装置和方法
US8276047B2 (en) Continuously interleaved error correction
CN101183875B (zh) 一种Turbo码的有限长度循环缓存的速率匹配方法
EP1908171A2 (en) Forward error-correcting (fec) coding and streaming
CN111919406A (zh) 用于使用外码的harq重传的系统和方法
JP2010539787A5 (ru)
Dudzicz et al. An explicit construction of optimal streaming codes for channels with burst and arbitrary erasures
CN104734815B (zh) Otn系统中高吞吐量fec编码器的硬件实现方法及系统
JP2009533796A (ja) 消失支援ブロックコードデコーダおよびこれに関する方法
EP3276837A1 (en) Encoding apparatus and method
CN111277830B (zh) 一种编码方法、解码方法及装置
US8279741B2 (en) Device and method for interleaved encoding RS code
JP7560571B2 (ja) データ通信のためのコーディング方法および装置
KR101187154B1 (ko) 채널 부호화의 선형성을 이용한 미지 신호의 코드워드 길이 추정 및 정규블록 인터리버 복원 방법 및 이를 수행하는 장치
KR20120071511A (ko) 이동통신 시스템의 데이터 레이트 매칭 방법 및 장치
JPS6095476A (ja) 暗号化装置

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20160826