KR20020047134A - 데이터를 코딩 및 디코딩하는 방법 및 장치 - Google Patents

데이터를 코딩 및 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
KR20020047134A
KR20020047134A KR1020027002559A KR20027002559A KR20020047134A KR 20020047134 A KR20020047134 A KR 20020047134A KR 1020027002559 A KR1020027002559 A KR 1020027002559A KR 20027002559 A KR20027002559 A KR 20027002559A KR 20020047134 A KR20020047134 A KR 20020047134A
Authority
KR
South Korea
Prior art keywords
microprocessor
look
polynomial
value
tables
Prior art date
Application number
KR1020027002559A
Other languages
English (en)
Inventor
쟌 양
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 비센트 비.인그라시아, 알크 엠 아헨
Publication of KR20020047134A publication Critical patent/KR20020047134A/ko

Links

Classifications

    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • 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
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • 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
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • 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
    • H03M13/159Remainder calculation, e.g. for encoding and syndrome calculation
    • 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/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

인코딩을 하는 동안, 마이크로프로세서(201)는 표준 리드-솔로몬 인코딩 기법에 따라 Ym을 계산한다. 그런 후, 마이크로프로세서(201)는 룩업 테이블(203)에 대한 색인으로서 Ym을 이용하고, 룩업 테이블(203)로부터 G0Ym, G1Ym,…, Gk-1Ym을 반환 받는다. 신드롬을 계산하는 동안, 패리티 심볼들의 제 2 세트가 인코더와 유사한 방법을 사용하여 정보 심볼들로부터 생성된다. 특히, 인코더가 G0Ym, G1Ym,…, Gk-1Ym에 대한 값들을 결정하는 것과 유사한 방법으로 제 1 룩업 테이블(503)로부터 G0Ym, G1Ym,…, Gk-1Ym에 대한 값들이 획득된다. 제 2 룩업 테이블(505)은 오류 위치결정 다항식(error locator polynomial)의 루트들을 결정하도록 설정된다. 제 2 룩업 테이블은 여러 개의 테이블들로 구성되며 각 테이블은 (Q-1) 개의 원소들을 포함한다(여기서, Q는 GF(Q) 필드의 크기이다). (Q-1)과 m 사이의 최대공약수가 (GCD(Q-1,m))=1 인 경우, m 번째 룩업 테이블은 위치 i에 갈로아 필드 원소(Galois Field element) α-mi를 저장한다. 만약 (GCD(Q-1,m))≠1 인 경우, m 번째 룩업 테이블은 GF 원소 α-(mi+j)(여기서, j=0,1,…,GCD(Q-1,m)-1)를 저장하는 (GCD(Q-1,m)) 개의 서브-테이블들로 사실상 구성된다.

Description

데이터를 코딩 및 디코딩하는 방법 및 장치{Method and apparatus for coding and decoding data}
리드-솔로몬 코딩은 본 기술 분야에서 공지되어 있다. Reed I.S. 와 Solomon G.의 "Polynomial codes over certain finite fields"(Journal of Society of Industrial Application Mathematics8, 300-304 (1960))에 처음 기재되었듯이, 리드-솔로몬 코드들은 수신된 데이터 내의 오류들을 제거하기 위해 데이터를 전송하는 동안 이용될 수 있다. 인코더들은 갈로아 필드(Galois field)들의 수학적 계산들에 의존하는데, 이는 미국 특허 제 4,142,174 및 4,567,594 호에 개시되어 있으며, 그 내용은 본원에서 참조된다. 간단히 말해서, 리드-솔로몬 코드들은 GF(Q)(여기서, Q=2b, 2의 양의 정수 승)로 표현된 숫자들의 갈로아 필드로부터의 코드 심볼들로 규정된다. 갈로아 필드는 유한한 수의 원소들을 갖는다. GF(Q)는 Q 개의 원소들을 가지며, 이는 특정 원소(α)에 대한 0부터 Q-1까지의 연속적인 승수들(α0, α1,…, αQ-1)로 표현될 수 있다.
리드-솔로몬 인코더들 및 디코더들을 이용하는 많은 다른 방법들이 본 기술 분야에서 공지되어 있다. 오류 정정에 있어서 리드-솔로몬 코드들을 이용하는 한 방법은 전송된 데이터에 한 세트의 패리티 심볼(parity symbol)들을 첨부하는 것이다. 여기서 "심볼"란 말은 GF(Q) 필드의 원소를 형성하는 b 개의 비트들을 나타내는데 사용된다. 패리티 심볼들은 전송된 데이터 내의 오류들을 검출하여 정정하는데 사용된다. 보다 자세하게는, 인코더는 GF(Q)에 대한 메시지 다항식(message polynomial)을 형성하는 심볼들의 블록들로서 메시지 비트들을 취급하고 메시지 다항식(X)을 다항식(G)을 생성하는 코드로 나눔으로써 패리티 심볼들을 유도한다. 패리티 심볼들은 잔여 다항식(C)의 계수들로서 간주된다. 패리티 심볼들은 코드워드 다항식의 계수들을 형성하기 위해 메시지 심볼들에 첨부된다. 다항식을 생성하는 코드는 코드워드에 원하는 특성을 전달하도록 선택되며, 그 결과 코드워드는 특정한 종류의 오류-정정 그룹 코드들에 속할 것이다. 전송을 하는 동안, 수신된 메시지 다항식(R) 내의 오류들을 정정하기 위해 수신기에 의해 이용되는 꼬리 비트(tail bit)들로서 상기 패리티 심볼들을 메시지 데이터에 첨부함으로써 코드워드가 전달된다.
도 1은 시프트-레지스터 다항식 분할 회로로서 구현된 종래의 리드-솔로몬 인코더를 도시한다. 도시된 바와 같이, 시프트 레지스터는 지연 소자들(delay elements)(D) 내에서 0(zero)으로 초기화된다. 각 반복을 하는 동안, m 번째 데이터 심볼 Xm은 심볼 Ym을 형성하기 위해 최우측 지연 소자의 내용으로 곱해진다. 각지연 소자의 내용은 그런 후 자신의 좌측 지연 소자의 내용에 심볼 Ym과 Gm의 곱을 더함으로써 갱신된다(여기서, Gm은 다항식을 생성하는 코드의 계수들이다. 즉, G(z) = G0+ G1z + …+ GK-1zK-1+ zK). (예외는 최좌측 지연 소자인데, 상기 소자는 곱 G0Ym으로 갱신된다.)
패리티 심볼들은 메시지 블록의 끝에 이를 때까지 시프트 레지스터를 갱신하기를 계속함으로써 생성된다. 메시지 블록의 마지막 심볼에 대한 반복을 완료한 직후, 시프트 레지스터의 내용은 패리티 심볼들이 된다. 여기서, 최우측 지연 소자는 전송기에 의해 메시지 데이터에 첨부될 제 1 패리티 심볼를 포함한다.
분할 처리를 갱신하는 것은 통상 전용의 하드웨어(예컨대, 곱셈기(101), 지연 회로(102) 및 가산기(103))에 의해 수행되지만, "소프트" 모뎀들의 이점으로, 마이크로프로세서/소프트웨어 결합을 통한 상기 처리가 점점 더 증가하여 이루어졌다.
소프트 모뎀들이 비록 리드-솔로몬 인코딩/디코딩을 수행할 능력을 갖지만, 종래의 구현은 많은 처리 능력(processing power)을 요구한다는 문제가 존재한다. 도 1에 도시된 인코더에서, 각 메시지 심볼에 대하여, K 번의 곱셈들 및 덧셈들이 요구된다. 비록 갈로아 필드 덧셈이 마이크로프로세서 명령 세트(instruction set)에서 통상 지원되는 논리적 XOR 연산이지만, 갈로아 필드 곱셈은 거의 지원되지 않으며 복수의 명령 사이클이 완료될 것을 요한다. 고속 모뎀들(예컨대, ADSL모뎀 또는 케이블 모뎀)의 경우, 리드-솔로몬 인코더는 초 당 백만 메시지 정도로 처리하는 것이 필요하다. 요구되는 총 처리 능력 또는 MIPS는 통상의 마이크로프로세서의 총 처리 능력의 상당한 퍼센트를 차지하거나 초과할 것이다. 그 결과, 전체 모뎀 기능은 마이크로프로세서를 통해 성취하기가 어려울 수도 있다. 마이크로프로세서가 모뎀 기능들을 성취할 수 있더라도, 호스트 처리 또는 소프트웨어 모뎀들을 위해, 모뎀에 의해 사용된 처리 능력은 다른 어플리케이션들에 이용될 수 없을 것이다. 그러므로, 소프트 모뎀들에서 구현될 수 있으면서 종래의 소프트 모뎀들에 의해 요구되는 MIPS를 사용하지 않는 인코딩/디코딩 방법 및 장치가 요구된다.
본 발명은 일반적으로 코딩 및 인코딩에 관한 것이며, 특히, 리드-솔로몬(Reed-Solomon) 코딩 및 디코딩을 위한 방법 및 장치에 관한 것이다.
도 1은 종래의 리드-솔로몬 인코더의 블록도이다.
도 2는 본 발명의 양호한 실시예에 따른 리드-솔로몬 인코더의 블록도이다.
도 3은 본 발명의 양호한 실시예에 따른 도 2의 룩업 테이블을 나타낸다.
도 4는 본 발명의 양호한 실시예에 따른 도 2의 리드-솔로몬 인코더의 동작을 보여주는 순서도이다.
도 5는 본 발명의 양호한 실시예에 따른 리드-솔로몬 디코딩을 위해 필요한 단계들을 보여주는 순서도이다.
도 6은 본 발명의 양호한 실시예에 따른 리드-솔로몬 디코더의 블록도이다.
도 7은 본 발명의 양호한 실시예에 따른 GF(Q)(이때, GCD(Q-1,m)=1)에 대한 Chien 검색 룩업 테이블을 도시한다.
도 8은 본 발명의 양호한 실시예에 따른 GF(Q)(이때, GCD(Q-1,m)≠1)에 대한 Chien 검색 룩업 테이블을 도시한다.
도 9는 본 발명의 양호한 실시예에 따른 룩업 테이블 기반의 Chien 검색의 단계들을 도시하는 순서도이다.
위에서 언급된 필요성에 역점을 두어, 데이터를 코딩/인코딩하기 위한 방법 및 장치가 여기서 제공된다. 인코딩을 하는 동안, 데이터 심볼 Xm은 마이크로프로세서로 들어간다. 마이크로프로세서는 표준 리드-솔로몬 인코딩 기법들에 따라 Ym를 계산한다. 자세히 말하면, Ym은 메시지 심볼 Xm과 시프트 레지스터의 최우측 지연 소자의 내용을 더함으로써 계산된다. Ym은 GF(Q)의 원소로서 단지 상이한 값들로만 Q를 취할 수 있기 때문에, 곱 G0Ym, G1Ym, …, GK-1Ym들은 미리 계산되어 룩업 테이블에 저장될 수 있다. 그런 후 마이크로프로세서는 룩업 테이블에 대한 색인으로서 Ym을 이용하여 상기 룩업 테이블로부터 곱 G0Ym, G1Ym, …, GK-1Ym들을 반환받는다. 이들 곱들은 시프트 레지스터를 갱신하는데 사용된다.
디코딩 동작을 하는 동안에는 여러 룩업 테이블들이 사용된다. 제 1 룩업 테이블은 신드롬(syndrome) 계산의 복잡성을 감소시키는데 사용되며, 제 2 룩업 테이블은 오류 위치결정 다항식(error locator polynomial)의 루트들을 결정하기 위한 복잡성, 특히, Chien 검색의 복잡성을 감소시키는데 사용된다. 신드롬을 계산하는 동안, G0Ym, …, GK-1Ym에 대한 값들은 인코더가 G0Ym, G1Ym, …, GK-1Ym에 대한 값들을 결정하는 것과 유사한 방법으로 제 1 룩업 테이블로부터 얻어진다. 제 2 룩업 테이블은 한 그룹의 L 개의 룩업 테이블들로 구성된다(여기서, L은 오류 위치결정 다항식의 차수이다). 이들 테이블들은 각 테이블이 (Q-1) 개의 원소들을 포함하도록 설정된다(여기서, Q는 GF(Q) 필드의 크기이다). m 번째 룩업 테이블은 (Q-1)과 m 사이의 최대공약수 (GCD(Q-1,m)) 가 1 일 때 갈로아 필드 원소 α-mi를 위치 i에 저장한다. (GCD(Q-1,m))≠1 이면, m 번째 룩업 테이블은 j 번째 서브-테이블의 위치 i에 GF 원소 α-(mi+j)를 저장하는 J=(GCD(Q-1),m) 개의 서브-테이블들로 사실상 구성된다(여기서, j=0,1,…,J-1). 마이크로프로세서는 오류 위치결정 다항식의 대응하는 계수를 기초로 각 룩업 테이블에 대한 시작 번지를 초기화하고, 여러 번 반복하여 Chien 검색을 완료한다. 각각의 반복에서, 마이크로프로세서는 개별적인 시작 번지로부터 동일한 오프셋 (d)의 위치들에 있는 L 개의 테이블들 모두의 내용을 더하고 오프셋 (d)에 대응하는 원소가 루트인지를 결정하기 위해 상기 합을 1과 비교한다.
종래의 기법들이 룩업 테이블로부터 값을 얻는 것 보다 더 복잡한 연산들인 곱셈들을 요구하기 때문에, 마이크로프로세서에 의해 요구된 총 처리 능력 또는 MIPS는 감소된다. 게다가, 본 발명에 따라 설명된 룩업 테이블들은 마이크로프로세서가 단일 명령(instruction)으로 복수의 연산들을 병렬 처리하기 위해 통상 b의 몇 배인 자신의 레지스터 폭을 이용하는 것을 가능하게 함으로써 마이크로프로세서에 의해 요구되는 MIPS를 추가적으로 줄일 수 있다. 그 결과, 다른 어플리케이션들을 처리할 수 있는 마이크로프로세서를 통해 전제적인 모뎀 기능이 성취될 수 있다.
본 발명은 데이터를 인코딩/디코딩하는 방법을 포함한다. 상기 방법은 데이터 심볼(data symbol)(Xm)를 수신하는 단계, 표준 인코딩/디코딩 기법의 일부로서 제 1 값을 계산하는 단계, 및 룩업 테이블에 대한 색인으로서 상기 제 1 값을 이용하는 단계를 포함한다. 상기 제 1 값과 다른 복수의 값들과의 복수의 곱들이 룩업 테이블로부터 수신되며, 상기 복수의 곱들은 데이터를 인코딩/디코딩하는데 사용된다.
본 발명은 데이터를 디코딩하는 방법을 추가적으로 포함한다. 상기 방법은 전송된 데이터에 오류가 존재하는지를 결정하기 위해 신드롬 계산을 수행을 수행하는 단계, 신드롬 계산을 기초로 오류 위치결정 다항식을 계산하는 단계, 및 복수의 룩업 테이블들에 접근하여 GF(Q) 필드의 Q 개의 원소들 중 각각의 한 원소에 대한 다항식 값을 구함으로써 상기 오류 위치결정 다항식으로부터 오류 위치들을 결정하기 위한 Chien 검색을 수행하는 단계를 포함한다.
마침내, 본 발명은 표준 인코딩/디코딩 기법의 일부로서 제 1 값을 출력하는 마이크로프로세서, 및 입력으로서 상기 제 1 값을 가지며 상기 제 1 값과 복수의 다른 값들과의 복수의 곱들을 출력하는 제 1 룩업 테이블을 포함하는 인코더/디코더를 포함한다.
이제 도면을 보면(여기서 동일한 번호들은 동일한 구성요소들을 나타낸다), 도 2는 본 발명의 양호한 실시예에 따른 리드-솔로몬 인코더(200)의 블록도이다. 인코더(200)는 마이크로프로세서(201) 및 룩업 테이블(203)을 포함한다. 본 발명의 양호한 실시예에서, 마이크로프로세서(201)는 양호하게는 모토로라가 출시한 Altivec 기술의 PowerPC 프로세서(128-bit 레지스터), 인텔이 출시한 펜티엄 프로세서를 포함한 MMX 프로세서(64-bit 레지스터), 및 AMD가 출시한 K6 프로세서와 같이 넓은 레지스터 폭을 가진 마이크로프로세서이다. 이후의 설명에서, 프로세서의 레지스터는 전체 시프트 레지스터를 보유할 정도로 충분히 넓다고 가정한다. 또한, 룩업 테이블(203)이 마이크로프로세서(201)와 분리되어 존재하는 것으로 도시되어 있지만, 본 발명의 양호한 실시예에서, 룩업 테이블(203)은 사실상 내부 또는 외부 메모리의 일부로서 마이크로프로세서(201) 내에 통합되어 있다. 룩업 테이블(203)은 미리 계산된 곱 G0Y, G1Y, …, GK-1Y 들을 저장한다. 여기서, K는 다항식을 생성하는 코드의 차수(order)이며 패리티 심볼(parity symbol)들의 수와 같고, Y는 GF(Q) 필드의 Q 개의 원소들 중 각각의 한 원소이다. 그러므로 테이블(203)의 크기는 K 개의 패리티 심볼들을 가진 GF(Q)에 관한 코드에 대해 Q*K 이다. Q=256 이고 K=16 인 전형적인 예의 경우, 이는 4KB의 메모리가 된다.
본 발명의 양호한 실시예에 따른 인코더(200)의 동작은 다음과 같이 일어난다: 데이터 심볼(Xm)가 마이크로프로세서(201)에 의해 수신된다. 마이크로프로세서(201)는 표준 인코딩 기법들의 일부로서 제 1 값을 계산한다. 구체적으로, 메시지 심볼(Xm)를 최우측 지연 소자의 내용인 변수와 더함으로써 표준 리드-솔로몬 인코딩 기법들에 의해 Ym이 계산된다. 마이크로프로세서(201)는 그런 후 룩업 테이블(203)에 대한 색인으로서 상기 제 1 값(Ym)을 이용하고, 다른 값들과 Ym과의 복수의 곱들을 반환 받는다. 구체적으로, G0Ym, G1Ym, …, GK-1Ym가 룩업 테이블(203)로부터 마이크로프로세서(201)로 반환된다. 그 다음, 마이크로프로세서는 데이터 심볼(Xm)에 대한 인코딩 처리를 완료하기 위해 이들 반환된 값들로 시프트 레지스터의 지연 소자들을 병렬로 갱신한다.
도 3은 본 발명의 양호한 실시예에 따른 도 2의 룩업 테이블을 나타낸다. 명백하듯이, 모든 GF(Q) 원소에 대해, G0Y, G1Y, …, GK-1Y 에 대한 값들이 존재한다(여기서, Y=0,1,2,…,Q-1). Y를 가지고 테이블(203)에 접근한 직후 이들 값들이 마이크로프로세서(201)로 출력된다. 본 발명의 양호한 실시예에서, 테이블(203)은 GmY의 값들을 미리 계산하여 그 값들을 테이블(203)에 추가(populating)함으로써 구현된다. 구체적으로, 메모리는 i 번째 워드가 K 개의 곱 i*G0, i*G1,…,i*GK-1들을 가지는 Q 개의 연속적인 워드들로 구성된다. 상기 워드들은 b=log2(Q) bit 폭의 K 개의 필드들로 분할되며 상기 순서로 상기 K 개의 곱들 중 하나를 보유하기 위해 하나의 필드를 사용하고 있다. 테이블은 특정 코드에 대해 일정하기 때문에, ROM(read only memory)에 저장될 수 있다. 모뎀이 여러 동작 모드들을 가질 수도 있으며 또한 각 모드가 상이한 코드를 사용할 수도 있는 몇몇 경우에 대해, 모뎀의동작 모드를 결정한 직후 판독/기록 타입의 메모리로 테이블을 동적으로 생성하는 것이 또한 바람직할 수도 있다.
본 발명의 양호한 실시예에 있어서, 단지 단일한 테이블 룩업만이 K 개의 곱셈 G0Ym, G1Ym, …, GK-1Ym들의 결과를 얻는데 필요로 된다. 그 즉각적인 이점은 메시지 심볼 당 K 개의 곱셈들을 절약한다는 것이다. 갈로아 필드(Galois field) 곱셈들은 마이크로프로세서에서 계산상으로 값비싼 연산들이기 때문에, 이는 실질적으로 종래의 기법들에 비해 마이크로프로세서에 의해 요구되는 총 처리 능력(total processing power) 또는 MIPS를 감소시킨다. 그 결과, 다른 어플리케이션들을 처리할 수 있는 마이크로프로세서를 가진 마이크로프로세서를 통해 전체적인 모뎀 기능이 성취될 수 있다. 게다가, K 개의 곱들이 단일 레지스터에 저장된다는 사실은 단일한 XOR 및 SHIFT 명령을 사용하여 병렬로 K 개의 시프트 레지스터 지연 소자들 모두를 갱신하는 것을 허용한다. 또 하나의 이점은 한 번에 한 개의 워드가 테이블에 접근한다는 것이다. 각 워드는 통상 복수의 연속적인 바이트들로 구성되기 때문에, 통상적인 시스템들에서 지원되는 버스트 메모리 접근 모드(burst memory access mode)로부터 최대 이득을 받는다.
상기 구현에 있어서, 상기 마이크로프로세서 레지스터는 전체 시프트 레지스터를 보유할 정도로 충분히 폭이 넓다고 가정한다. 그렇지 않은 경우, 주어진 레지스터 폭에 의해 제공된 최대 이점은 시프트 레지스터 동작들을 저장하는 부분에 의해 여전히 얻어질 수 있다. 추가적으로, 위에서 기술된 룩업 테이블은 단지 리드-솔로몬 코드에만 적용될 수 있는 것은 아니며, 리드-솔로몬 코드가 구성 요소인순환 코드(cyclic code)로 알려진 종류의 코드를 인코딩하기 위한 일반 MIPS 효율적인 방법을 제공한다.
도 4는 본 발명의 양호한 실시예에 따른 도 2의 리드-솔로몬 인코더의 동작을 보여주는 순서도이다. 시프트 레지스터는 각각 b 개 bit 폭의 K 개의 필드들로 개념적으로 분할된 프로세서의 하나 또는 그 이상의 정수 레지스터들로 구현되며, 각 필드는 하나의 지연 소자의 내용을 갖는다. 논리 흐름은 마이크로프로세서가 시프트 레지스터를 모두 0(zero)으로 초기화하는 단계(401)에서 시작한다. 그런 후 메시지 데이터를 처리하는 루프(loop)로 들어간다. 단계(402)에서, 마이크로프로세서(201)는 전송될 데이터 심볼(Xm)를 수신한다. 단계(403)에서, 마이크로프로세서(201)는 Xm으로부터 Ym에 대한 값을 계산한다. 다음에, 단계(405)에서, 마이크로프로세서(201)는 룩업 테이블(203)에 접근하여, 룩업 테이블(203)에 대한 색인으로서 Ym을 이용하여 룩업 테이블(203)로부터 G0Ym, G1Ym, …, GK-1Ym에 대한 값들을 얻는다. 그런 후, 프로세서는 시프트 레지스터의 내용을 룩업 테이블의 출력과 XOR 하고 b 비트씩 시프트 레지스터를 오른쪽으로 시프트하여 시프트 레지스터를 갱신한다(단계 407). 단계(408)에서, 마이크로프로세서(201)는 블록의 마지막 메시지 심볼를 처리하였는지를 판단한다. 처리하지 않았다면, 단계(402-408)들을 반복하며, 처리하였다면, 마이크로프로세서는 단계(409)에서 꼬리 비트(tail bit)들을 출력한다. 논리 흐름은 단계(411)에서 종료한다. 본 발명의 양호한 실시예에서, 꼬리 비트들은 시프트 레지스터의 최종 내용을 출력함으로써 위에서 기술된 대로 생성된다.
리드-솔로몬 디코딩은 여러 단계들로 일어나는데, 이는 도 5에 도시되어 있다. 단계(501)에서, 신드롬 다항식이 계산된다. 본 기술 분야의 당업자는 인식할 것이지만, 상기 신드롬 다항식은 다항식을 생성하는 코드의 루트들에서 값이 계산된 수신된 다항식으로서 그의 계수들이 규정되는 다항식이다. 단계(502)에서, 신드롬=0 인지를 판단함으로써 전송된 데이터에 오류가 존재하는지 여부를 판단한다. 0이 아닌 신드롬에 의해 지시되듯이, 수신된 데이터에 오류가 존재한다면, 오류 위치결정 다항식(error locator polynomial)이 계산되고(단계 504) 오류 위치들이 상기 오류 위치결정 다항식으로부터 결정된다(단계 506). 마침내, 단계(508)에서, Forney 알고리즘을 사용하여 오류 위치결정 다항식으로부터 오류 크기들이 결정된다.
상기 네 개의 단계들 중, 단계(1 및 3)들은 마이크로프로세서 기반의 디코더에 대해 통상 계산상으로 가장 집중적인 단계들이다. 단계(1)는 수신된 전체 메시지 다항식을 포함하며, 수신된 블록에 오류가 존재하는지 여부와 관계없이 필요하다. 단계(3)에 대한 통상의 알고리즘은 GF(Q) 필드의 모든 Q 개의 원소들을 통하여 검색하는 것을 포함한다. 반면, 단계(2 및 4)들은 상기 수신된 메시지 다항식의 차수나 GF(Q) 필드의 크기보다 통상 훨씬 낮은 차수를 가지는 오류 위치 다항식들 및 신드롬을 포함한다.
리드-솔로몬 인코딩된 데이터를 디코딩하는데 요구되는 MIPS의 양을 감소시키기 위해, 그 블록도가 본 발명의 양호한 실시예에 따라 도 6에 도시된디코더(600)는 여러 개의 룩업 테이블들을 사용한다.
제 1 룩업 테이블(603)은 단계(1)의 복잡성을 감소시키는데 사용된다. 상기 룩업 테이블은 인코더(200)의 룩업 테이블(203)과 유사한 방식으로 사용된다. 신드롬을 계산하는 동안, 디코더(600)는 수신된 정보 심볼들(Rm)로부터 꼬리 비트들의 제 2 세트를 생성하는데, 상기 수신된 정보 심볼들은 마치 전송될 메시지 심볼들(Xm)과 같다. 상기 신드롬이 꼬리 비트들의 이러한 제 2 세트와 수신된 꼬리 비트들의 합으로서 계산될 수 있다는 것은 본 기술 분야에서 공지되어 있다. 꼬리 비트들의 제 2 세트를 계산하는 동안, 인코더가 G0Ym, G1Ym, …, GK-1Ym에 대한 값들을 결정하는 것과 유사한 방법으로 룩업 테이블(603)로부터 G0Ym, G1Ym, …, GK-1Ym에 대한 값들이 얻어진다. 보다 구체적으로, 마이크로프로세서(601)는 표준 리드-솔로몬 인코딩 기법들에 의해, 즉 상술한 바와 같이 정보 심볼(Rm)를 최우측 시프트 레지스터의 내용과 더함으로써 Ym을 계산하고, 룩업 테이블(603)에 대한 색인으로서 상기 Ym을 이용한다. 테이블(603)은 G0Ym, G1Ym, …, GK-1Ym을 반환한다.
제 2 룩업 테이블(605)은 단계(3)의 복잡성을 감소시키는데 사용된다. 오류 위치들은 오류 위치결정 다항식의 루트들에 대응한다. GF 다항식의 루트들을 찾기 위한 잘 알려진 알고리즘은 Chien 검색을 사용하는 것이다. Chien 검색에서, GF(Q) 필드의 Q 개의 원소들 중 각각의 한 원소가 루트인지 여부를 판단하기 위해 상기 각 원소에 대한 다항식 값을 간단히 구한다. 명백하게, Chien 검색의 직접적인 구현은 L 번째 차수의 다항식이 Q 회 계산될 것을 필요로 하는 것처럼 많은 처리 능력을 소모할 것이다. 처리 속도를 향상시키는데 룩업 테이블(605)이 사용된다. 테이블(605)은 Chien 검색을 하는 동안 사용되는 L 개의 룩업 테이블들(607-611)의 세트로 사실상 구성된다.
테이블들(607-611)은 각 테이블이 (Q-1) 개의 원소들을 포함하도록 설정된다. 여기서, Q는 GF(Q) 필드의 크기이다. m 번째 룩업 테이블은 (Q-1)과 m 사이의 최대공약수 (GCD(Q-1,m))가 1 인 경우 위치 i에 갈로아 필드 원소 α-mi를 저장한다. 즉, m 번째 룩업 테이블은 (Q-1)과 m 이 서로소인 경우 위치 i에 갈로아 필드(GF) 원소 α-mi를 저장한다. 이는 도 7에 도시되어 있다. α-m(i+Q-1)-mi라는 것을 유의한다. 즉, 테이블은 주기 Q-1의 주기성을 갖도록 구성되며 도 7은 테이블의 단일 주기를 도시한다.
만약 (GCD(Q-1,m))가 1이 아닌 경우, m 번째 룩업 테이블은 GF 원소 α-(mi+j)를 저장하는 (GCD(Q-1,m)) 개의 서브-테이블들을 사실상 포함한다. 여기서, j = 0,1,…,GCD(Q-1,m)-1 이다. 각 서브-테이블은 α-(m(i+V)+j)= α-(mi+j)이라는 사실로 인해 주기 V=(Q-1)/GCD(Q-1,m)의 주기성을 갖는다. 도 8은 각 서브-테이블의 단일 주기를 도시한다. 모든 테이블들은 어떤 위치 i로 시작하는 특성을 가지며, 테이블은 연속적인 위치들에 {Tum: u = α0-1-2,…}을 저장한다. 여기서, T는 위치 i에서의 내용이다. 추가적으로, 각 테이블 또는 서브-테이블들의 모음은 모두GF(Q)의 0이 아닌 원소를 포함한다.
Chien 검색을 하는 동안, 마이크로프로세서(601)는 위치 α0-1-2-3, 등에서 상기 순서대로 오류 위치결정 다항식의 값을 구한다. 테이블을 이용하기 위해, 마이크로프로세서(601)는 초기화 단계 동안 L 개의 룩업 테이블들 각각에 대한 시작 번지를 결정한다. 이는, m 번째 룩업 테이블에 대해, 상기 테이블에 있어서 그 내용이 λm(즉, 오류 위치결정 다항식의 zm계수)인 위치를 결정함으로써 이루어진다. 테이블이 서브-테이블들의 모음(collection)인 경우, 마이크로프로세서 (601)는 먼저 서브-테이블을 선택한 뒤 선택된 서브-테이블의 시작 번지를 결정한다. 마이크로프로세서(601)는 그런 후 여러 차례 반복하여 Chien 검색을 완료한다. 각 반복에서, 마이크로프로세서(601)는 (위에서 기술된 절차로 결정된) 개별적인 시작 번지로부터 동일한 오프셋 (d)의 위치들에 있는 L 개의 테이블들 모두의 내용을 더한다. 테이블의 특성으로 인해, 그 합은
가 된다. 여기서, L은 오류 위치결정 다항식의 차수이다. 즉, 오프셋 (d)에서의 합은 원소 α-d및 1에 대한 오류 위치결정 다항식 값의 차(difference)이다. 그러므로 마이크로프로세서는 S(d)를 1과 비교하여 α-d가 루트인지를 결정할 수 있다. 마이크로프로세서는 그런 후 다음 반복을 준비하기 위해 오프셋을 증가시킨다. B 가 마이크로프로세서의 레지스터 폭이라면, 마이크로프로세서는 각 반복에서 B 개의 연속적인 합들을 계산할 수 있고 오프셋을 B 개의 심볼씩 증가시킬 수 있다. 그러므로 테이블의 이점은 2B 개의 곱셈들을 단일한 XOR 명령으로 대체한다는 것이다.
0(α0)의 오프셋이 마지막으로 수신된 심볼의 오류 위치에 대응하고, 1(α-1)의 오프셋은 마지막으로 수신된 심볼에서 두 번째의 오류 위치에 대응하는 등으로 인해, 검색은 처음 수신된 심볼에 대응하는 원소가 검사된 후에 중단될 수 있다. 오류가 발생할 수 있는 모든 가능한 위치들을 이미 망라하였기 때문이다. 이는 짧아진 리드-솔로몬 코드들에 대한 또 하나의 복잡성 감소를 제공한다. 본 기술 분야에서 공지된 바와 같이, 짧아진 코드는 (패리티 심볼들을 포함해서) Q-1 개의 심볼 블록 크기를 가진 원래의 리드-솔로몬 코드와 동등하다. 여기서 처음 몇 심볼들은 0(zero)으로 강제되어(따라서 디코더에 의해 이미 정해진 것(priori)으로 알려진다) 전송되지 않는다. 연속적인 위치들을 판독함으로써 테이블이 접근되기 때문에, 최대 이익은 대부분의 프로세서들에 의해 지원되는 버스트 메모리 모드로부터 얻어진다.
도 9는 본 발명의 양호한 실시예에 따른 룩업 테이블 기반의 Chien 검색의 단계들을 도시하는 순서도이다. 초기화 단계(902)에서, 마이크로프로세서(601)는 오류 위치결정 다항식의 L 개의 계수들 각각과 관련된 룩업 테이블에 대한 시작 번지를 결정하고 오프셋 (d)를 0으로 설정한다. 마이크로프로세서(601)는 그런 후 여러 차례 반복하여 Chien 검색을 완료한다. 각각의 반복에 있어, 단계(904)에서, 마이크로프로세서(601)는 초기화 단계 동안 결정된 자신의 각 시작 번지로부터 오프셋 (d)에 있는 L 개의 룩업 테이블들 모두의 내용들을 더한다. 그런 후, 단계(906)에서 마이크로프로세서(601)는 단계(904)에서 얻어진 B 개의 합들을 B 개의 1 들과 비교한다. 1과 동일한 B 개의 합 각각에 대해, 마이크로프로세서는 그 합에 관련된 GF(Q) 원소가 오류 위치결정 다항식의 루트라고 선언한다. 단계(908)에서, 마이크로프로세서는 오프셋 (d)를 B 만큼 증가시킨다. 단계(910)에서, 마이크로프로세서는 모든 가능한 오류 위치들을 망라했는지 여부를 결정하고, 모두 망라하지 않았다면 단계(904-910)들을 반복한다. 마이크로프로세스가 모든 가능한 오류 위치들을 망라하였다면 단계(912)에서 프로세스는 종료한다.
오류 위치결정 다항식의 차수(L)는 K/2를 초과할 수 없기 때문에, K/2 개의 테이블들은 K 개의 패리티 심볼들을 가진 리드-솔로몬 코드를 다루도록 만들어질 필요가 있을 것이다. 위에서 기술한 바와 같이, 테이블들 및 서브-테이블들은 주기성을 가지며, 따라서 상기 테이블들에 접근하는데 순환적인 번지지정(circular addressing)이 사용되는 한, 즉 번지가 상기 테이블/서브-테이블의 주기로 테이블/서브-테이블의 끝을 감싸는 한에서는 상기 테이블들의 크기는 하나의 주기일 수 있다. Q=256 이고 K=16 인 전형적인 예의 경우, K/2 개의 테이블 모두를 위한 총 기억용량은 (Q-1)*K/2=2040 byte, 거의 2KB 이다. 순환적 번지지정 능력을 가진 마이크로프로세서의 경우, 각 테이블의 단일 주기가 저장된다. 다른 마이크로프로세서들의 경우, 소프트웨어로 순환적인 룩업 테이블들을 구현하는 것은 MIPS 소모적일 수 있다. 이들 경우들에서는, GCD(Q-1,m)+1 개의 주기들이 저장된다. 이 방법은 번지가 감싸는 일이 일어나지 않으며, 테이블 내로 색인을 붙이는데 선형 번지지정이 사용될 수 있다.
본 발명의 다른 실시예에서, Q-1 개의 0(zero) 엔트리들을 가진 추가적인 테이블이 생성된다. 그 다음 상기 테이블은 0 인 오류 위치결정 다항식(λm)의 계수용으로 사용된다.
상술한 본 발명의 상세한 설명 및 도면들은 본 발명의 범위를 제한하려는 것이 아니다. 예컨대, 본 발명의 양호한 실시예가 비록 리드-솔로몬 코딩/디코딩을 하는 동안 룩업 테이블들을 사용하지만, 본 기술 분야의 당업자는 상기 룩업 테이블들이 코딩/디코딩의 다른 형태들에서도 사용될 수 있다는 것을 인식할 것이다. 본 발명의 정신과 범위를 벗어나지 않고 다양한 변형이 본 발명에 대해서 이루어질 수 있으며, 모든 그러한 변형들은 다음의 청구항들 및 그 동등물들의 범위 내에 있는 것이다.
본 발명은 리드-솔로몬 코딩 및 디코딩을 위한 방법 및 장치에 관한 것으로, 소프트 모뎀들에서 구현될 수 있으면서 종래의 소프트 모뎀들에 의해 요구되는 MIPS를 사용하지 않는 인코딩/디코딩 방법 및 장치를 제공한다. 본 발명에 따른 룩업 테이블들에 의해 마이크로프로세서에 의해 요구되는 MIPS를 줄일 수 있다.

Claims (3)

  1. 데이터를 인코딩/디코딩하는 방법에 있어서, 상기 방법은:
    데이터 심볼(Xm)를 수신하는 단계;
    표준 인코딩/디코딩 기법의 일부로서 제 1 값을 계산하는 단계;
    룩업 테이블에 대한 색인(index)으로서 상기 제 1 값을 이용하는 단계;
    상기 제 1 값과 복수의 다른 값들과의 복수의 곱들을 상기 룩업 테이블로부터 수신하는 단계; 및
    데이터를 인코딩/디코딩하는데 상기 복수의 곱들을 사용하는 단계를 포함하는, 데이터를 인코딩/디코딩하는 방법.
  2. 데이터를 디코딩하는 방법에 있어서, 상기 방법은:
    전송된 데이터 내에 오류가 존재하는지 여부를 결정하기 위해 신드롬 계산을 수행하는 단계;
    상기 신드롬 계산을 기초로 오류 위치결정 다항식을 계산하는 단계; 및
    복수의 룩업 테이블들에 접근하여 GF(Q) 필드의 Q 개의 원소들 중 각각의 하나에 대한 다항식 값을 구함으로써 오류 위치결정 다항식으로부터 오류 위치들을 결정하기 위한 Chien 검색을 수행하는 단계를 포함하는, 데이터를 디코딩하는 방법.
  3. 표준 인코딩/디코딩 기법의 일부로서 제 1 값을 출력하는 마이크로프로세서; 및
    입력으로서 상기 제 1 값을 가지며, 상기 제 1 값과 복수의 다른 값들과의 복수의 곱들을 출력하는 제 1 룩업 테이블을 포함하는 인코더/디코더.
KR1020027002559A 1999-08-27 2000-08-17 데이터를 코딩 및 디코딩하는 방법 및 장치 KR20020047134A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/384,530 1999-08-27
US09/384,530 US6360348B1 (en) 1999-08-27 1999-08-27 Method and apparatus for coding and decoding data
PCT/US2000/022631 WO2001017154A2 (en) 1999-08-27 2000-08-17 Method and apparatus for coding and decoding data

Publications (1)

Publication Number Publication Date
KR20020047134A true KR20020047134A (ko) 2002-06-21

Family

ID=23517690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027002559A KR20020047134A (ko) 1999-08-27 2000-08-17 데이터를 코딩 및 디코딩하는 방법 및 장치

Country Status (7)

Country Link
US (1) US6360348B1 (ko)
EP (1) EP1400022A4 (ko)
JP (1) JP2003529233A (ko)
KR (1) KR20020047134A (ko)
CN (1) CN1535505A (ko)
AU (1) AU6913900A (ko)
WO (1) WO2001017154A2 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6598201B1 (en) * 1999-03-15 2003-07-22 Texas Instruments Incorporated Error coding structure and method
US6850566B2 (en) * 2000-02-22 2005-02-01 Intervideo, Inc. Implementation of quantization for SIMD architecture
US6763492B1 (en) * 2000-09-26 2004-07-13 Qualcomm Incorporated Method and apparatus for encoding of linear block codes
US6934730B2 (en) * 2000-10-13 2005-08-23 Xpriori, Llc Method and system for generating a transform
US6985633B2 (en) * 2001-03-26 2006-01-10 Ramot At Tel Aviv University Ltd. Device and method for decoding class-based codewords
US6954892B2 (en) * 2002-06-06 2005-10-11 National Chiao Tung University Method for calculating syndrome polynomial in decoding error correction codes
WO2004012337A2 (en) * 2002-07-29 2004-02-05 Robert Halford Multi-dimensional data protection and mirroring method for micro level data
US7633976B2 (en) * 2002-09-19 2009-12-15 Industrial Technology Research Institute Method and apparatus for code group identification and frame synchronization by use of Reed-Solomon decoder and reliability measurement for UMTS W-CDMA
US7162679B2 (en) * 2003-12-12 2007-01-09 Analog Devices, Inc. Methods and apparatus for coding and decoding data using Reed-Solomon codes
CN100388629C (zh) * 2003-12-22 2008-05-14 普天信息技术研究院 一种循环冗余校验的快速计算方法
EP1704647B1 (en) * 2004-01-15 2019-03-20 Qualcomm Incorporated A method of reed-solomon encoding and decoding
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US7788570B1 (en) 2005-03-23 2010-08-31 Marvell International Ltd. Optimized Reed-Solomon decoder
US7370258B2 (en) * 2005-04-28 2008-05-06 Sandbridge Technologies Inc. Iterative concatenated convolutional Reed-Solomon decoding method
US7823049B2 (en) * 2006-03-15 2010-10-26 Mediatek Inc. Methods and apparatuses for generating parity symbols for data block
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
JP4891704B2 (ja) * 2006-08-28 2012-03-07 株式会社東芝 半導体記憶装置
JP4313391B2 (ja) * 2006-12-13 2009-08-12 株式会社日立コミュニケーションテクノロジー 光集線装置および光加入者装置
US8171368B1 (en) 2007-02-16 2012-05-01 Link—A—Media Devices Corporation Probabilistic transition rule for two-level decoding of reed-solomon codes
TWI334279B (en) * 2007-06-23 2010-12-01 Lite On Technology Corp Efficient chien search method for reed-solomon decoding and machine readable recording medium comprising instructions for performing the method
GB2460417B (en) * 2008-05-28 2011-04-06 Mirics Semiconductor Ltd Broadcast receiver system
GB2460416B (en) * 2008-05-28 2010-07-07 Mirics Semiconductor Ltd Broadcast receiver system
GB2460418B (en) * 2008-05-28 2010-04-14 Mirics Semiconductor Ltd Broadcast receiver system
JP4945513B2 (ja) * 2008-06-04 2012-06-06 ルネサスエレクトロニクス株式会社 可変長復号装置およびそれを用いた動画復号装置
JP5259343B2 (ja) * 2008-10-31 2013-08-07 株式会社東芝 メモリ装置
US8312346B2 (en) * 2009-05-01 2012-11-13 Mirics Semiconductor Limited Systems and methods for communications
US8433985B2 (en) * 2010-03-29 2013-04-30 Intel Corporation Error correction mechanisms for flash memories
US8479082B2 (en) * 2010-04-07 2013-07-02 Indian Institute Of Technology Delhi Packet error correction in networks
TW201216624A (en) * 2010-06-11 2012-04-16 Mirics Semiconductor Ltd Systems and methods for error correction
EP2434650A1 (en) 2010-09-23 2012-03-28 Panasonic Corporation Reed-Solomon encoder with simplified Galois field multipliers
WO2013051139A1 (ja) * 2011-10-06 2013-04-11 株式会社日立製作所 有限体上の乗算方法、計算機、およびプログラム
CN104202057B (zh) * 2014-02-12 2019-08-16 中兴通讯股份有限公司 信息处理方法及装置
CN105024707B (zh) * 2015-07-31 2018-05-11 福建联迪商用设备有限公司 一种rs纠错解码方法
US10318433B2 (en) * 2016-12-20 2019-06-11 Texas Instruments Incorporated Streaming engine with multi dimensional circular addressing selectable at each dimension

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3668632A (en) * 1969-02-13 1972-06-06 Ibm Fast decode character error detection and correction system
US4856004A (en) * 1987-10-05 1989-08-08 Motorola, Inc. Microprocessor based BCH decoder
US4890287A (en) * 1988-03-09 1989-12-26 Magnetic Peripherals Inc. On-the-fly error correction
US4958349A (en) * 1988-11-01 1990-09-18 Ford Aerospace Corporation High data rate BCH decoder
US5329618A (en) * 1992-04-02 1994-07-12 Fibronics Ltd. Look-up table for a bridge in a data communications system
SG52170A1 (en) * 1994-02-17 1998-09-28 Micrilor Inc A high-data-rate wireless local-area network
US5627843A (en) * 1995-02-23 1997-05-06 Seagate Technology, Inc. Correcting up to two disc drive read errors and detecting the occurrence of more than two read errors
EP0806839B1 (en) * 1995-10-03 2002-01-30 Matsushita Electric Industrial Co., Ltd. Device and method for error correcting coding, and device and method for error correcting decoding
US5701314A (en) * 1995-12-21 1997-12-23 Cirrus Logic, Inc. On-the-fly error correction using thermal asperity erasure pointers from a sampled amplitude read channel in a magnetic disk drive
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5926647A (en) * 1996-10-11 1999-07-20 Divicom Inc. Processing system with dynamic alteration of a color look-up table
US6081555A (en) * 1996-12-04 2000-06-27 Conexant Systems, Inc. Methods and apparatus for implementing shell mapping techniques in the context of a PCM-based modem communications system
US5948117A (en) * 1997-01-23 1999-09-07 Quantum Corporation Modified Reed-Solomon error correction system using (W+i+1)-bit representations of symbols of GF(2w+i)
US6173429B1 (en) * 1997-03-14 2001-01-09 Harris Corporation Apparatus for providing error correction data in a digital data transfer system
US5942005A (en) * 1997-04-08 1999-08-24 International Business Machines Corporation Method and means for computationally efficient error and erasure correction in linear cyclic codes
JPH113573A (ja) * 1997-04-15 1999-01-06 Mitsubishi Electric Corp 拡大リードソロモン符号の誤り訂正復号方法と誤り訂正復号装置、1次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置、および2次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置
US6058500A (en) * 1998-01-20 2000-05-02 3Com Corporation High-speed syndrome calculation
KR100304193B1 (ko) * 1998-02-06 2001-11-22 윤종용 리드솔로몬복호기의역수구현회로

Also Published As

Publication number Publication date
WO2001017154A2 (en) 2001-03-08
AU6913900A (en) 2001-03-26
WO2001017154A3 (en) 2004-01-08
CN1535505A (zh) 2004-10-06
US6360348B1 (en) 2002-03-19
EP1400022A2 (en) 2004-03-24
JP2003529233A (ja) 2003-09-30
EP1400022A4 (en) 2004-05-19

Similar Documents

Publication Publication Date Title
KR20020047134A (ko) 데이터를 코딩 및 디코딩하는 방법 및 장치
US5715262A (en) Errors and erasures correcting reed-solomon decoder
US4873688A (en) High-speed real-time Reed-Solomon decoder
US6058500A (en) High-speed syndrome calculation
US8176396B2 (en) System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic
US7502989B2 (en) Even-load software Reed-Solomon decoder
US6044389A (en) System for computing the multiplicative inverse of a field element for galois fields without using tables
US7162679B2 (en) Methods and apparatus for coding and decoding data using Reed-Solomon codes
EP1370004A2 (en) Arithmetic unit for Reed-Solomon decoder
US5535225A (en) Time domain algebraic encoder/decoder
WO2000057561A1 (en) Pipelined high speed reed-solomon error/erasure decoder
US5365529A (en) Circuitry for detecting and correcting errors in data words occurring in Reed-Solomon coded blocks and determining when errors are uncorrectable by syndrome analysis, Euclid's algorithm and a Chien search
JP3834122B2 (ja) 誤り位置検出多項式計算装置
US7458007B2 (en) Error correction structures and methods
US6263471B1 (en) Method and apparatus for decoding an error correction code
US6735737B2 (en) Error correction structures and methods
US6343367B1 (en) Error correction system for five or more errors
JP2000020333A (ja) 復号装置、演算装置およびこれらの方法
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
JPH06230991A (ja) 有限体での任意元素の逆数算出方法及び装置
US7287207B2 (en) Method and apparatus for computing parity characters for a codeword of a cyclic code
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
WO2004059851A1 (en) An encoder for high rate parallel encoding
JPH09185518A (ja) 原始元αのべき乗生成方式及びその装置
JP2003168983A (ja) 復号回路および復号方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid