KR20060029495A - 리드-솔로몬 부호의 복호 장치 및 방법 - Google Patents
리드-솔로몬 부호의 복호 장치 및 방법 Download PDFInfo
- Publication number
- KR20060029495A KR20060029495A KR1020040078472A KR20040078472A KR20060029495A KR 20060029495 A KR20060029495 A KR 20060029495A KR 1020040078472 A KR1020040078472 A KR 1020040078472A KR 20040078472 A KR20040078472 A KR 20040078472A KR 20060029495 A KR20060029495 A KR 20060029495A
- Authority
- KR
- South Korea
- Prior art keywords
- reed
- decoding
- solomon
- decoder
- value
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
본 발명은 리드-솔로몬 부호화를 포함하는 연접된 이중 부호화된 심볼을 복호하기 위한 장치 및 방법에 관한 것이다.
본 발명의 제 1 실시 예에 따른 장치는, 리드-솔로몬 부호화를 포함하여 연접된 부호화를 수행하는 통신 시스템에서 2중 부호화된 심볼을 수신하여 복호하기 위한 장치로서, 상기 이중 부호화된 심볼들로 구성된 프레임을 수신하여 1차 복호하여 출력하는 내부 복호기와, 상기 이중 부호화 프레임들을 수신하여 저장하는 순환 버퍼와, 상기 내부 복호기의 출력을 프레임 단위로 저장하는 리드-솔로몬 복호 버퍼와, 상기 리드-솔로몬 복호 버퍼에 저장된 프레임의 심볼들을 열 단위로 읽어와 리드-솔로몬 복호를 수행하고, 각 심볼 열마다 리드-솔로몬 복호 가능 지시 값을 생성하여 출력하는 리드-솔로몬 복호기와, 상기 리드-솔로몬 복호 가능 지시 값을 이용하여 로그 우도율 값을 갱신하고, 상기 갱신된 로그 우도율 값을 상기 내부 복호기로 출력하는 로그 우도율 갱신부를 포함한다.
리드-솔로몬 복호, 내부 복호, 이레이저, CRC.
Description
도 1은 통상적인 리드-솔로몬 부호기를 포함하는 장치의 내부 구성과 리드-솔로몬 부호화 방법을 설명하기 위한 블록 구성도,
도 2는 통상적인 리드-솔로몬 복호기를 포함하는 장치의 내부 구성과 리드-솔로몬 복호 방법을 설명하기 위한 블록 구성도,
도 3은 본 발명의 제 1 실시 예에 따른 리드-솔로몬 복호기의 내부 블록 구성도,
도 4는 본 발명의 제 1 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정의 흐름도,
도 5는 본 발명의 제 2 실시 예에 따라 이레이져 기능을 가지는 리드-솔로몬 복호기의 내부 블록 구성도,
도 6은 본 발명의 제 2 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정의 흐름도,
도 7은 본 발명의 제 3 실시 예에 따라 CRC가 내부 부호 프레임 단위로 존재할 시 복호를 수행하기 위한 리드-솔로몬 복호기의 내부 블록 구성도,
도 8은 본 발명의 제 3 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정의 흐름도.
본 발명은 부호화 심볼의 복호 장치 및 방법에 관한 것으로, 특히 리드-솔로몬 부호화 방법을 통해 부호화된 심볼들의 복호 장치 및 방법에 관한 것이다.
통상적으로 데이터를 저장하거나 또는 데이터를 전송할 때, 데이터의 안정성을 획득하기 위해 다양한 부호화 방법을 사용한다. 대표적인 이동통신 시스템에서는 데이터를 안전하게 전송하기 위해 길쌈(Convolutional) 부호화 방법 또는 터보(Turbo) 부호화 방법 또는 리드-솔로몬 부호화 방법 등을 이용한다. 또한 데이터를 부호화 할 경우에 단 하나의 부호화 방법만을 사용하기도 하고, 둘 이상의 부호화 방법이 함께 사용되기도 한다. 이와 같이 부호화된 심볼들이 저장매체에 기록되어 있는 경우에는 독취 시에 그리고 데이터의 전송 시에는 수신단에서 부호화된 데이터를 복호를 수행해야만 원래의 데이터 즉, 정보를 획득할 수 있다. 따라서 통신 시스템 또는 데이터의 독취 장치에서는 복호를 위한 장치들을 필요로 한다.
이하의 복호 과정의 설명에서는 설명의 편의를 위해 통신 시스템에서 데이터의 송신 시에 수신된 부호화 심볼들로부터 원래의 데이터 즉, 정보를 획득하는 것을 가정하여 설명하기로 한다.
복호 장치에서는 수신된 심볼들에 오류가 발생한 경우 상기 발생된 오류를 검출하고, 반복(순환적 : iterative) 복호 과정 등을 통해 보다 정확한 데이터를 획득할 수 있다. 이와 같은 반복 복호의 과정은 일반적으로 길쌈 복호기 또는 터보 복호기에서 대표적으로 이루어지며, 리드-솔로몬 복호기의 경우에는 대체로 특별한 경우에 한하여 반복 복호 과정을 수행한다. 그러면 리드-솔로몬 부호화 및 복호 방법과 리드-솔로몬 복호 방법에 대하여 간략히 살펴보기로 한다.
도 1은 통상적인 리드-솔로몬 부호기를 포함하는 장치의 내부 구성과 리드-솔로몬 부호화 방법을 설명하기 위한 블록 구성도이다. 이하 도 1을 참조하여 리드-솔로몬 부호화 장치의 구성과 그 부호화 방법에 대하여 살펴보기로 한다.
먼저 리드-솔로몬 부호화 장치는 리드-솔로몬 부호기(110)와 리드-솔로몬 부호화 버퍼(120)를 포함한다. 상기 도 1에서는 리드-솔로몬 부호화 방법만을 사용하는 장치가 아닌 다른 부호화 방법을 함께 사용하는 경우를 도시하고 있다. 따라서 상기 리드-솔로몬 부호화 버퍼(120)로부터 출력된 프레임 단위의 심볼들을 부호화 하는 프레임 부호기(130)를 더 포함한다.
그러면 리드-솔로몬 부호화 방법에 대하여 리드-솔로몬 부호기(110)와 리드-솔로몬 부호화 버퍼(120)의 동작 관점에서 살펴보기로 한다. 송신할 데이터는 프레임 단위로 수신되어 리드-솔로몬 부호화 버퍼(120)로 입력된다. 이를 도 1을 참조하여 살펴보면, 하나의 프레임은 S개의 심볼로 구성되며, 하나의 심볼은 b개의 비트들로 구성된다. 따라서 하나의 프레임이 B개의 비트로 구성된다고 가정할 때, S와 B와 b간은 "S = B/b"의 관계가 성립한다. 이러한 프레임들이 미리 결정된 k 개 만큼 리드-솔로몬 부호화 버퍼(120)에 저장되면, 리드-솔로몬 부호기(110)는 n-k 개만큼의 패리티 프레임들을 생성한다. 이를 다시 도 1을 참조하여 설명하면, 1번째 프레임부터 k번째 프레임까지의 첫 번째 심볼들을 이용하여 n-k개의 패리티 심볼들을 생성한다. 그리고 1번째 프레임부터 k번째 프레임까지의 두 번째 심볼들을 이용하여 n-k개의 패리티 심볼들을 생성한다. 상술한 과정을 S회만큼 즉, 한 프레임에 존재하는 심볼들의 수만큼 반복함으로써 k개 프레임들의 모든 심볼들에 대하여 패리티 심볼들을 형성할 수 있다. 즉, k개의 프레임들의 각 심볼들에 대한 n-k개의 패리티 프레임들을 생성할 수 있다. 이와 같이 생성된 패리티 프레임들은 정보 심볼들로 구성되는 시스테메틱 프레임의 하위에 정보 심볼들을 이용하여 생성된 패리티 심볼들이 위치하도록 구성함으로써 패리티 프레임들을 구성한다. 따라서 이상에서 상술한 과정을 통해 생성된 리드-솔로몬 부호화된 전체 프레임의 개수는 k개의 시스테메틱 프레임들과 n-k개의 패리티 프레임들의 합이 되므로 n개의 프레임들이 된다.
따라서 n 개의 프레임들은 각 프레임별로 순차적으로 프레임 부호기(130)를 통해 부호화되어 전송된다. 이때, 상기 프레임 부호기(130)는 내부 부호기(Inner Encoder)로서 각 프레임에 주기적 덧붙임 검사(Cyclic Redundancy Check : CRC)를 수행할 수 있는 비트들을 부가한 후 프레임 부호화를 수행하여 송신하게 된다. 이후 송신되는 과정은 각 시스템마다 달라진다. 예를 들어 유선 시스템에서는 유선 송신 방식에 따른 처리가 이루어지며, 무선 시스템에서는 무선 송신 방식에 따른 처리가 이루어진다.
그러면 다음으로 리드-솔로몬 복호 과정에 대하여 살펴보기로 한다.
도 2는 통상적인 리드-솔로몬 복호기를 포함하는 장치의 내부 구성과 리드-솔로몬 복호 방법을 설명하기 위한 블록 구성도이다. 이하 도 2를 참조하여 리드-솔로몬 복호 장치의 구성과 그 복호 방법에 대하여 살펴보기로 한다.
상기 도 2의 리드-솔로몬 복호기를 포함하는 장치의 내부 구성은 전술한 도 1의 구성에 대응하도록 도시하였다. 따라서 상기 도 2의 장치는 프레임 복호기(230)와 리드-솔로몬 복호 버퍼(220) 및 리드-솔로몬 복호기(210)를 포함한다. 상기 프레임 복호기(230)는 프레임 복호를 수행하고, 주기적 덧붙임 검사를 수행하여 복호된 프레임 단위의 심볼들과 주기적 덧붙임 검사 결과를 출력한다. 이와 같이 프레임 복호기(230)에서 출력된 프레임 단위의 심볼들과 주기적 덧붙임 검사 결과는 리드-솔로몬 복호 버퍼(220)로 입력된다. 따라서 상기 도 2에 도시한 바와 같이 리드-솔로몬 복호 버퍼(220)는 이레이저(erasure) 비트를 저장하는 영역을 더 포함한다.
그러면 상기 도 2의 리드-솔로몬 복호 버퍼(220)에 대하여 살펴보기로 한다. 상기 리드-솔로몬 복호 버퍼(220)는 프레임 단위로 복호된 복호 심볼들을 저장한다. 상기 리드-솔로몬 복호 버퍼(220)에 저장되는 프레임 단위의 심볼들은 상기 도 1의 리드-솔로몬 부호화 버퍼(120)에서 리드-솔로몬 부호화기에 의해 부호화된 후 출력되는 형태와 동일한 형태로 저장된다. 따라서 한 프레임은 B 비트들로 구성되며, S개의 심볼들로 이루어진다. 또한 그리고 한 심볼은 b개의 비트들로 구성된다. 다만 리드-솔로몬 복호 버퍼(220)에는 각 프레임마다 이레이저 비트가 더 저장된다 는 차이점을 가진다. 따라서 이레이저 비트를 제외하고 살펴보면, 도 2의 각 행들은 하나의 프레임이 되고, 하나의 열에서 k개의 시스테메틱과 n-k개의 패리티가 포함된 형태가 된다.
이러한 방법으로 전체 n개의 프레임이 저장되면, 리드-솔로몬 복호기(210)는 리드-솔로몬 복호 버퍼(220)의 이레이저 비트 정보를 수신하고, 각 열의 심볼들을 독취하여 리드-솔로몬 복호를 수행한다. 이러한 리드-솔로몬 복호 과정은 k개의 정보 심볼들과 n-k개의 패리티 심볼을 이용하여 특정 열에서 에러가 발생하였는가를 검사하는 것이다. 그리고 이러한 검사를 수행한 후 이를 다시 리드-솔로몬 복호 버퍼에 저장한다. 상기한 과정을 모두 수행하면, 실제 오류가 발생한 심볼의 위치를 검출할 수 있다. 즉, 특정 열에서 이레이저 비트에 오류가 있음이 확인되었고, 리드-솔로몬 복호 과정에서 특정 열에 하나의 오류가 발생하였다면, 상기 오류가 발생한 프레임에서 리드-솔로몬 복호 과정에서 오류가 발생한 열의 심볼이 잘못되었음을 알 수 있다.
이러한 오류를 검출하면, 해당하는 프레임에 대하여 다시 프레임 복호 또는 패리티 프레임을 이용한 오류 정정 등의 과정을 반복(iteration)하여 오류를 정정할 수 있다. 즉, 리드-솔로몬 복호기(210)는 상기 상술한 바와 같이 이레이저 정보와 복호된 프레임 데이터들로부터 원래의 신호를 복원한다. 이때 리드-솔로몬 복호기(210)는 하기 <수학식 1>과 같은 조건 하에서 모든 에러를 정정할 수 있다.
상기 <수학식 1>에서 s는 이레이저 심볼의 수를 의미하고, e는 에러 심볼의 수이다. 상기 도 2와 같은 구성을 가지는 경우에 이레이저 심볼의 수는 각 프레임에 대하여 하나만 확인할 수 있다. 즉, 해당 프레임에 이레이저 심볼이 존재하거나 또는 존재하지 않는 경우이다. 또한 에러 심볼은 프레임 복호기(230)의 출력에서 이레이저가 발생하지 않은 것으로 검사되었으나, 리드-솔로몬 복호기(210)에 의해 패리티 심볼을 검사한 결과 에러 심볼이 존재하는 경우이다. 즉, 프레임 복호기(230)에 의한 검사에서는 에러 심볼이 존재하지 않는 것으로 검사된 프레임에서 리드-솔로몬 복호기(210)의 검사 결과에서는 에러가 발생한 심볼들이다. 상기 <수학식 1>을 살펴보면, 이레이저 심볼이 에러 심볼에 비해 2배만큼 더 많이 정정됨을 알 수 있다.
이상에서 상술한 바와 같이 이레이저 복호를 수행하기 위해 리드-솔로몬 복호기(210)는 각 프레임마다 주기적 덧붙임 검사 정보를 이용한다. 따라서 특정 프레임에서 이레이저의 위치를 명확히 알 수 없다는 문제가 있다. 또한 이레어저의 특성상 한 프레임에서 하나의 심볼에서만 오류가 발생하여도 주기적 덧붙임 검사 정보는 오류가 발생한 것으로 검사하므로 해당 프레임의 전체 심볼이 이레이저 처리되는 문제가 있다.
따라서 본 발명의 목적은 연접된 리드-솔로몬 부호의 복호 시 보다 정확한 복호 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 연접된 리드-솔로몬 부호의 복호 시 복호 효율을 증대시키기 위한 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 장치는, 리드-솔로몬 부호화를 포함하여 연접된 부호화를 수행하는 통신 시스템에서 2중 부호화된 심볼을 수신하여 복호하기 위한 장치로서, 상기 이중 부호화된 심볼들로 구성된 프레임을 수신하여 1차 복호하여 출력하는 내부 복호기와, 상기 이중 부호화 프레임들을 수신하여 저장하는 순환 버퍼와, 상기 내부 복호기의 출력을 프레임 단위로 저장하는 리드-솔로몬 복호 버퍼와, 상기 리드-솔로몬 복호 버퍼에 저장된 프레임의 심볼들을 열 단위로 읽어와 리드-솔로몬 복호를 수행하고, 각 심볼 열마다 리드-솔로몬 복호 가능 지시 값을 생성하여 출력하는 리드-솔로몬 복호기와, 상기 리드-솔로몬 복호 가능 지시 값을 이용하여 로그 우도율 값을 갱신하고, 상기 갱신된 로그 우도율 값을 상기 내부 복호기로 출력하는 로그 우도율 갱신부를 포함하며,
상기 내부 복호기는,
각 심볼 단위로 신뢰도를 검사하여 각 심볼들의 이레이저 값을 생성하고 복호된 각 심볼의 값과 상기 이레이저 값을 함께 출력할 수 있고, 이때, 상기 리드-솔로몬 복호기는, 상기 각 심볼들의 이레이저 값을 더 이용하여 리드-솔로몬 복호를 수행한다.
또한, 상기 내부 복호기는, 이중 부호화된 심볼들의 주기적 덧붙임 검사가 가능한 경우 주기적 덧붙임 검사를 수행하고 그 결과를 더 출력하며, 이때상기 리드-솔로몬 복호기는, 상기 주기적 덧붙임 검사 결과를 더 이용하여 리드-솔로몬 복호를 수행한다.
뿐만 아니라, 상기 리드-솔로몬 복호 결과는 순환 버퍼에 반영하여 1차 복호 시에 다시 이용되도록 구성할 수도 있다.
상기한 목적들을 달성하기 위한 본 발명의 방법은, 리드-솔로몬 부호화를 포함하여 연접된 부호화를 수행하는 통신 시스템에서 2중 부호화된 심볼을 수신하여 복호하기 위한 방법으로서, 상기 이중 부호화된 심볼들로 구성된 프레임을 수신하여 1차 복호하여 출력하며, 상기 이중 부호화 프레임들을 수신하여 저장하는 과정과, 상기 1차 복호된 출력을 프레임 단위로 저장하는 과정과, 상기 1차 복호되어 저장된 프레임이 상기 리드-솔로몬 복호가 가능한 경우 저장된 프레임의 심볼들을 열 단위로 읽어와 리드-솔로몬 복호를 수행하고, 각 심볼 열마다 리드-솔로몬 복호 가능 지시 값을 생성하여 출력하는 과정과, 상기 리드-솔로몬 복호 가능 지시 값을 이용하여 로그 우도율 값을 갱신한 후 상기 로그 우도율 값을 반영하여 1차 복호를 재 수행하는 과정을 포함하며,
상기 1차 복호가 완료될 때마다 순환 복호 조건을 만족하는가를 검사하는 과정과, 상기 순환 복호 조건을 만졸할 시 복호를 중단하는 과정을 더 포함할 수 있다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
이하에서는 리드-솔로몬 복호 장치 및 방법을 3가지 형태로 구분하여 설명할 것이다. 첫째로, 이레이저 복호가 불가능한 경우 리드-솔로몬 복호 방법에 대하여 설명한다. 둘째로, 일반적인 이레이저 복호가 가능한 경우 심볼 단위의 리드-솔로몬 복호 방법에 대하여 설명한다. 셋째로, 이레이저 복호가 가능한 경우 오류 영역을 추가적으로 복호하는 복호 방법에 대하여 설명할 것이다.
제 1 실시 예
이하에서 설명되는 제 1 실시 예는 일반적인 순환적 복호 방법으로 이레이저 기능이 없는 형태의 복호 동작이다. 먼저 본 발명의 제 1 실시 예에 따른 장치의 구성과 그 동작에 대하여 살펴보기로 한다.
도 3은 본 발명의 제 1 실시 예에 따른 리드-솔로몬 복호기의 내부 블록 구성도이다. 이하 도 3을 참조하여 본 발명의 제 1 실시 예에 따른 리드-솔로몬 복호기의 내부 블록 구성 및 동작에 대하여 상세히 설명하기로 한다.
먼저 송신되어 온 심볼들을 상기 도 3에서는 입력 데이터(INPUT DATA)라 칭하였다. 이와 같은 입력 데이터는 내부 복호기(330)와 반복 버퍼(340)로 입력된다. 상기 내부 복호기(330)는 입력된 심볼들을 종래 기술에서 전술한 바와 같이 프레임 단위로 복호하여 출력한다. 그리고 반복 버퍼(340)는 입력 데이터를 프레임 단위로 저장한다. 본 발명의 제 1 실시 예에 따른 장치는 주기적 덧붙임 검사(이하 "CRC"라 함)를 수행하지 않는 경우이다. 즉, 이레이저를 검출하지 않는다. 따라서 상기 내부 복호기(330)에서 프레임 단위로 반복 복호된 데이터에는 CRC 결과가 포함되지 않는다. 이와 같이 내부 복호기(330)에서 출력된 프레임 단위의 심볼들은 리드-솔로몬 복호 버퍼(320)로 입력된다. 상기 리드-솔로몬 복호 버퍼(320)는 프레임 단위의 심볼들을 CRC 결과를 포함하지 않은 상태로 저장한다. 즉, 종래 기술에서 설명한 바와 같이 리드-솔로몬 부호화 버퍼(120)와 동일한 상태의 값들이 저장된다.
이를 다시 설명하면 상기 리드-솔로본 복호 버퍼(320)에 저장된 데이터는 하나의 프레임이 S개의 심볼들로 구성되고, 각 심볼들은 b개의 비트 정보로 구성된다. 즉, 리드-솔로몬 복호 버퍼(320)는 이와 같이 구성되는 각 프레임들을 저장한다. 또한 상기한 프레임들은 k개의 시스테메틱 프레임들과 n-k개의 패리티 프레임들로 구분된다. 이는 리드-솔로몬 부호화 시에 적용되는 사항으로 종래 기술에서 살핀 바와 같으므로 여기서는 설명하지 않기로 한다.
리드-솔로몬 복호기(310)는 상술한 바와 같이 리드-솔로몬 복호 버퍼(320)에 저장된 프레임들의 각 열에 해당하는 심볼들을 독취(read)한다. 그리고 상기 부호화 심볼들에 대하여 리드-솔로몬 복호를 수행한다. 이때 본 발명에 따른 리드-솔로 몬 복호기(310)는 내부에 복호 가능 여부를 확인하는 알고리즘을 가진다. 리드-솔로몬 복호기(310)는 상기 내부 복호 가능 여부를 확인하는 알고리즘을 통해 리드-솔로몬 복호가 가능한 심볼들의 구간을 결정한다. 즉, 모든 프레임들이 S개만큼의 심볼들을 가지므로 S개만큼의 리드-솔로몬 복호 가능 여부 지시(RS Decodable Indicator) 값들(305)을 생성하게 된다. 상기 리드-솔로몬 복호 가능 여부 지시 값은 복호가 가능한 경우 활성화(enable)로 설정하며, 복호가 불가능한 경우에 비활성화(disable)로 설정한다. 이와 같이 리드-솔로몬 복호 가능 여부 지시 값들(305)을 설정한 후 리드-솔로몬 복호기(310)는 설정된 리드-솔로몬 복호 가능 여부 지시 값이 비활성화인 경우에 대하여는 리드-솔로몬 복호를 수행하지 않는다. 상기 리드-솔로몬 복호 가능 여부 지시 값들은 상기 도 3에서 참조부호 305로 도시하였다.
따라서 리드-솔로몬 복호기(310)는 설정된 리드-솔로몬 복호 가능 여부 지시 값이 활성화인 경우에 대하여만 복호를 수행한다. 그런 후 리드-솔로몬 복호기(310)는 리드-솔로몬 복호 가능 지시 값이 활성화인 위치의 심볼에 대하여 순환 버퍼(340) 내의 해당 비트에 대한 신뢰도를 적정한 수준으로 높인다. 이와 같이 리드-솔로몬 복호기(310)는 상술한 바와 같이 설정된 신뢰도 값을 본 발명에 따른 로그 우도율 갱신부(350)로 출력한다.
로그 우도율 갱신부(350)는 입력된 신뢰도 값과 상기 리드-솔로몬 복호 가능 여부 지시 값들(305)을 이용하여 내부 복호기(330) 또는 순환 버퍼(340)로 출력할 로그 우도율 값을 계산한다. 즉, 로그 우도율 갱신을 직접적으로 수행하고자 하는 경우에는 순환 버퍼(340)를 통해 로그 우도율 값을 갱신하지 않고, 내부 복호기 (330)로 직접 로그 우도율 값을 출력하여 갱신한다. 반면에 간접적으로 로그 우도율 값을 갱신하고자 하는 경우 로그 우도율 갱신부(350)는 순환 버퍼(340)로 로그 우도율 값을 출력한다. 따라서 상기 로그 우도율 갱신부(350)에서 출력되는 신호는 하나이다. 상기 도 3에 도시한 로그 우도율 갱신부(350)는 두 개의 서로 다른 점선이 출력되고 있다. 이 중 하나는 이중 점선으로 내부 복호기(330)로 입력되는 것으로, 직접적인 방법을 통해 로그 우도율을 갱신하는 방법이며, 나머지 하나의 다른 점선은 순환 버퍼(340)로 출력되는 값으로 간접적인 방법을 통해 로그 우도율을 갱신하는 것이다. 따라서 실제로 로그 우도율 갱신부(350)로부터 출력되는 값은 상기 두 신호 중 하나만이 출력되는 것이다.
상술한 방법을 통해 로그 우도율이 갱신되면, 내부 복호기(330)는 수신된 프레임의 복호가 더욱 용이해진다. 따라서 수신된 심볼들의 복호 확률을 증가시킬 수 있는 이점이 있다. 이후 내부 복호기(330)에서 다시 복호된 프레임 단위의 심볼들은 다시 리드-솔로몬 복호 버퍼(320)로 입력된다. 그리고 다시 리드-솔로몬 복호기(310)에서 리드-솔로몬 복호가 이루어진다. 이러한 과정은 미리 결정된 순환 복호의 중단 조건을 만족할 때까지 계속하여 이루어진다. 상기 순환 복호의 중단 조건은 미리 정해진 횟수 또는 상기 미리 정해진 횟수 내에서 모든 심볼들에 대한 복호가 성공할 때까지 등의 조건이 될 수 있다.
도 4는 본 발명의 제 1 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정의 흐름도이다. 이하 도 4를 참조하여 본 발명의 제 1 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정에 대하여 상세히 설명한다.
입력 데이터(INPUT DATA)는 순환 버퍼(340)와 내부 복호기(330)로 동시에 입력된다. 따라서 400단계에서 순환 버퍼(340)는 입력 데이터의 내부 복호를 수행하며, 동시에 순환 버퍼(340)는 내부 복호가 이루어지는 데이터를 저장한다. 상기 내부 복호기(330)는 402단계로 진행하여 복호된 심볼들을 리드-솔로몬 복호 버퍼(320)에 저장한다. 그러면 리드 솔로몬 복호기(310)는 404단계에서 리드-솔로몬 복호가 가능한가를 검사한다. 즉, 상기 리드-솔로몬 복호 버퍼(320)에 저장된 데이터가 리드-솔로몬 부호화한 프레임 단위를 만족하는가를 검사하는 것이다. 이를 도 3을 참조하여 살펴보면 하기와 같다.
먼저 하나의 프레임이 S개의 심볼들로 구성되고 한 심볼이 b개의 비트들로 이루어진다고 가정하였다. 그리고 리드-솔로몬 부호화는 k개의 프레임들을 이용하여 n-k개의 패리티 프레임을 생성하는 것으로 가정하였다. 따라서 리드-솔로몬 복호가 가능하려면 n개의 프레임들을 수신해야만 복호가 가능하다. 그러므로 리드-솔로몬 복호기(310)가 404단계에서 리드-솔로몬 복호가 가능한가를 검사하는 것은 n개의 프레임이 리드-솔로몬 복호 버퍼(320)에 저장되었는가를 검사하는 것이다.
상기 404단계의 검사결과 n개의 프레임이 저장된 경우 406단계로 진행하여 리드-솔로몬 복호기(310)는 리드-솔로몬 복호 버퍼(320)로부터 동일한 열의 심볼들을 읽어와 리드-솔로몬 복호를 수행한다. 이때 리드-솔로몬 복호는 각 열마다 수행하고, 하나의 프레임이 S개의 심볼만큼 존재하므로 S회 반복하게 된다. 그러나 만일 상기 404단계의 검사결과 n개만큼 저장되지 않은 경우 즉, 복호를 수행할 수 있지 않다고 검사되면, 400단계로 진행하여 리드-솔로몬 복호가 가능해질때까지 400 단계 및 402단계를 반복 수행한다.
상기 406단계에서 각 열의 리드-솔로몬 복호가 완료되면 리드-솔로몬 복호기(310)는 408단계에서 매 열마다 리드-솔로몬 복호 가능 지시기 값(305)을 설정한다. 상기 리드-솔로몬 복호 가능 지시기 값(305)은 매 열마다 S개의 비트로 설정되는 값이다. 그리고 리드-솔로몬 복호기(310)는 n개의 프레임에 대한 리드-솔로몬 복호가 완료되면 복호 가능 지시기 값(305)을 로그 우도율 갱신부(350)로 출력한다.
그러면 로그 우도율 갱신부(350)는 410단계에서 리드-솔로몬 복호 결과를 반영하여 LLR 값을 갱신한다. 즉, 리드-솔로몬 복호 가능 지시기 값을 이용하여 로그 우도율 값을 갱신하는 것이다. 이와 같이 로그 우도율 값을 갱신하는 방법은 직접 갱신 방법과 간접 갱신 방법이 있다. 직접 갱신 방법은 앞에서 상술한 바와 같이 내부 복호기(330)로 갱신된 로그 우도율 값을 직접 제공하는 방법이고, 간접 갱신 방법은 로그 우도율 값을 이용하여 순환 버퍼(340)에 저장된 값을 갱신하여 간접적으로 로그 우도율이 갱신된 것과 같은 효과를 발생하도록 하는 것이다. 따라서 이러한 직접 방식과 간접 방식에 따라 로그 우도율 갱신부(350)에서 갱신하도록 생성하는 로그 우도율 값은 상이하게 나타날 수 있다. 상기 로그 우도율 갱신부(350)는 갱신할 로그 우도율 값을 생성하면 412단계에서 직접 방식 또는 간접 방식 중 미리 설정된 방식에 따라 순환 버퍼(340) 또는 내부 복호기(330)로 생성된 로그 우도율 값을 출력한다. 이를 통해 로그 우도율을 갱신하게 된다.
그런 후 내부 복호기(330)는 414단계로 진행하여 다시 내부 복호를 수행한 다. 이와 같이 내부 복호기(330)는 다시 내부 복호를 수행한 이후에 416단계로 진행하여 순환 복호 중단 조건이 만족되는가를 검사한다. 도 4의 실시 예에서는 1회의 복호 과정을 통해서는 거의 복호를 성공하지 못하는 경우를 가정한 것이다. 따라서 만일 1회의 복호만으로도 복호할 확률이 높은 경우에 상기 416단계의 순환 복호 중단 조건을 만족하는가의 검사를 다른 위치로 옮길 수도 있다. 예를 들어 400단계와 402단계 사이 또는 402단계와 404단계 사이 또는 404단계와 406단계 사이 중 어느 한 위치에서 검사하도록 할 수 있으며 리드-솔로몬 복호 방법을 사용하기 때문에 404단계와 406단계 사이에 상기 416단계를 두는 것이 바람직할 수도 있다.
또한 상기한 순환 복호 중단 조건은 여러 가지가 있을 수 있으나 여기서는 예로서 2가지 정도만 언급하기로 한다. 첫째로 이상에서 상술한 과정을 통해 입력 데이터를 완벽하게 복호한 경우가 된다. 이러한 경우 내부 복호기(330)는 순환 복호 과정을 중단한다. 이와 같이 입력 데이터를 완벽하게 복호한 경우는 리드-솔로몬 복호 가능 지시기 내의 모든 값들이 활성화되어 더 이상의 순환 과정이 필요 없는 경우도 여기에 해당할 수 있다. 둘째로 미리 설정되어 있는 순환 복호 횟수만큼 반복을 한 경우이다. 이러한 경우는 현재 복호를 계속 수행하여도 더 이상 좋은 결과를 얻지 못하거나 또는 다음 데이터의 복호를 위해 더 이상 복호를 수행할 수 없는 경우 등이 여기에 속한다.
이상에서 설명한 과정은 최초 내부 복호 시에 대부분 오류가 발생하는 환경을 가정한 것이다. 따라서 순환 복호 중단 조건을 검사하는 416단계의 과정이 흐름도의 맨 아래에 위치하고 있다. 그러나 만일 최초 내부 복호 시에 오류 발생 확률 이 많이 줄어든다면 순환 복호 중단 조건의 검사 위치를 변경할 수 있다. 예를 들어 402 단계와 404 단계의 사이에 위치하도록 하거나 또는 404단계와 406단계 사이에 순환 복호 중단 조건을 검사하도록 할 수도 있다.
제 2 실시 예
다음으로 이레이저 복호가 가능한 경우의 순환적 복호 방법에 대하여 살펴보기로 한다.
도 5는 본 발명의 제2실시 예에 따라 이레이져 기능을 가지는 리드-솔로몬 복호기의 내부 블록 구성도이다. 이하 도 5를 참조하여 본 발명의 제2실시 예에 따라 이레이져 기능을 가지는 리드-솔로몬 복호기의 내부 블록 구성 및 동작에 대하여 상세히 설명하기로 한다.
먼저 송신되어 온 심볼들을 전술한 도 3에서와 같이 입력 데이터(INPUT DATA)라 칭하였다. 이와 같은 입력 데이터는 내부 복호기(530)와 반복 버퍼(540)로 동시에 입력된다. 따라서 상기 반복 버퍼(340)는 입력 데이터를 프레임 단위로 저장한다. 이와 같이 내부 복호기(530)로 입력된 심볼들은 프레임 단위로 복호가 이루어진다. 즉, 내부 복호기(530)는 입력된 심볼들을 프레임 단위로 복호하여 출력한다. 이때 상기 내부 복호기(530)는 본 발명의 제2실시 예에 따라 각 심볼의 복호 결과 및 각 심볼의 신뢰도 검사(Reliability Check)를 통해 이레이저 여부를 검사하고, 그 결과를 함께 출력한다. 이러한 신뢰도 검사는 내부 복호가 이루어진 심볼이 얼마나 믿을만한가를 검사함으로써 알 수 있다. 내부 복호된 결과 심볼과 그 반 대의 값을 가질 확률 값의 차이가 클수록 더 믿을만한 심볼이 된다. 따라서 내부 복호기에서 출력되는 하나의 심볼은 이와 같이 복호된 심볼에 부가하여 신뢰도 값을 포함하므로 한 심볼마다 복호된 결과인 b개의 비트와 상기 b개의 비트의 복호 결과 및 신뢰도 검사 결과를 반영하는 1비트의 이레이저 여부 값을 함께 출력한다. 따라서 본 발명의 제2실시 예에 따른 내부 복호기(530)에서 출력되는 한 프레임은 S개의 심볼을 가지지만 각 심볼들은 b개의 비트로 구성되는 것이 아니라 b+1개의 비트로 구성된다.
또한 본 발명의 제 2 실시 예에 따른 장치는 주기적 덧붙임 검사(이하 "CRC"라 함)를 수행하지 않는 경우이다. 따라서 상기 내부 복호기(530)에서 프레임 단위로 반복 복호된 데이터에는 CRC 결과가 포함되지 않는다. 이와 같이 내부 복호기(530)에서 출력된 프레임 단위의 심볼들은 리드-솔로몬 복호 버퍼(520)로 입력된다. 상기 리드-솔로몬 복호 버퍼(520)는 프레임 단위의 심볼들을 CRC 결과를 포함하지 않은 상태로 저장한다. 또한 상기 내부 복호기(530)로부터 출력되는 복호된 심볼들이 종래 기술이나 앞에서 설명한 제 1 실시 예와 달리 각 심볼들이 b+1개의 비트로 구성되므로 상기 도 5에 도시한 각 심볼들은 b+1개의 심볼들이 된다.
그러면 리드-솔로몬 복호 버퍼(520)에 저장된 데이터에 대하여 전체적으로 살펴본다. 리드-솔로몬 복호 버퍼(520)에 저장되는 데이터는 하나의 프레임이 S개의 심볼들로 구성되며, 하나의 각 심볼들은 본 발명의 제 2 실시 예에서 설명한 바와 같이 b+1개의 비트 정보로 구성된다. 따라서 이러한 정보들이 상기 리드-솔로몬 복호 버퍼(520)에 저장된다. 이와 같이 구성되는 프레임은 시스테메틱 프레임이 k 개 존재하게 되며, 패리티 프레임이 n-k개 존재하게 된다.
리드-솔로몬 복호기(510)는 상술한 바와 같이 리드-솔로몬 복호 버퍼(520)에 저장된 프레임들의 각 열에 해당하는 심볼들을 독취(read)한다. 그리고 상기 부호화 심볼들에 대하여 리드-솔로몬 복호를 수행한다. 또한 본 발명의 제 2 실시 예에 따른 리드-솔로몬 복호기(510)는 리드-솔로몬 복호 시 상기 내부 복호기(530)에서 검사된 결과인 이레이저 여부 값을 이용한다. 즉, 이레이저로 검사된 심볼은 복호 시에 이레이저 처리를 수행한다. 뿐만 아니라 본 발명에 따른 리드-솔로몬 복호기(510)는 내부에 복호 가능 여부를 확인하는 알고리즘을 가진다. 리드-솔로몬 복호기(510)는 상기 내부 복호 가능 여부를 확인하는 알고리즘을 통해 리드-솔로몬 복호가 가능한 심볼들의 구간을 결정한다. 즉, 모든 프레임들이 S개만큼의 심볼들을 가지므로 S개만큼의 리드-솔로몬 복호 가능 여부 지시(RS Decodable Indicator) 값들(505)을 생성하게 된다. 상기 리드-솔로몬 복호 가능 여부 지시 값은 복호가 가능한 경우 활성화(enable)로 설정하며, 복호가 불가능한 경우에 비활성화(disable)로 설정한다. 이와 같이 리드-솔로몬 복호 가능 여부 지시 값을 때 활성화와 비활성화로 설정할 때 상기 이레이저 여부 값이 함께 활용된다. 이와 같이 리드-솔로몬 복호 가능 여부 지시 값들을 설정한 후 리드-솔로몬 복호기(510)는 설정된 리드-솔로몬 복호 가능 여부 지시 값이 비활성화인 경우에 대하여는 리드-솔로몬 복호를 수행하지 않는다.
즉, 리드-솔로몬 복호기(510)는 설정된 리드-솔로몬 복호 가능 여부 지시 값(505)이 활성화인 경우에 대하여만 복호를 수행한다. 그런 후 리드-솔로몬 복호기 (510)는 리드-솔로몬 복호 가능 지시 값이 활성화인 위치의 심볼에 대하여 순환 버퍼(540) 내의 해당 비트에 대한 신뢰도를 적정한 수준으로 높인다. 이와 같이 리드-솔로몬 복호기(510)는 상술한 바와 같이 설정된 신뢰도 값을 본 발명에 따른 로그 우도율 갱신부(550)로 출력한다.
로그 우도율 갱신부(550)는 입력된 신뢰도 값과 상기 리드-솔로몬 복호 가능 여부 지시 값들(505)을 이용하여 내부 복호기(530) 또는 순환 버퍼(540)로 출력할 로그 우도율 값을 계산한다. 즉, 로그 우도율 갱신을 직접적으로 수행하고자 하는 경우에는 순환 버퍼(540)를 통해 로그 우도율 값을 갱신하지 않고, 내부 복호기(530)로 직접 로그 우도율 값을 출력하여 갱신한다. 반면에 간접적으로 로그 우도율 값을 갱신하고자 하는 경우 로그 우도율 갱신부(550)는 순환 버퍼(540)로 로그 우도율 값을 출력한다. 따라서 상기 로그 우도율 갱신부(550)에서 출력되는 신호는 하나이다. 상기 도 5에 도시한 로그 우도율 갱신부(550)는 두 개의 서로 다른 점선이 출력되고 있다. 이 중 하나는 이중 점선으로 내부 복호기(530)로 입력되는 것으로, 직접적인 방법을 통해 로그 우도율을 갱신하는 방법이며, 나머지 하나는 순환 버퍼(540)로 출력되는 값으로 간접적인 방법을 통해 로그 우도율을 갱신하는 것이다. 따라서 실제로 로그 우도율 갱신부(550)로부터 출력되는 값은 상기 두 신호 중 하나만이 출력되는 것이다.
상술한 방법을 통해 로그 우도율이 갱신되면, 내부 복호기(530)는 수신된 프레임의 복호가 더욱 용이해진다. 따라서 수신된 심볼들의 복호 확률을 증가시킬 수 있는 이점이 있다. 이후 내부 복호기(530)에서 다시 복호된 프레임 단위의 심볼들 은 다시 리드-솔로몬 복호 버퍼(520)로 입력된다. 그리고 다시 리드-솔로몬 복호기(510)에서 리드-솔로몬 복호가 이루어진다. 이러한 과정은 미리 결정된 순환 복호의 중단 조건을 만족할 때까지 계속하여 이루어진다. 상기 순환 복호의 중단 조건은 미리 정해진 횟수 또는 상기 미리 정해진 횟수 내에서 모든 심볼들에 대한 복호가 성공할 때까지이다.
도 6은 본 발명의 제 2 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정의 흐름도이다. 이하 도 6을 참조하여 본 발명의 제 2 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정에 대하여 상세히 설명한다.
입력 데이터(INPUT DATA)는 순환 버퍼(540)와 내부 복호기(530)로 동시에 입력된다. 따라서 600단계에서 내부 복호기(530)는 입력 데이터의 내부 복호를 수행하며, 동시에 순환 버퍼(540)는 입력 데이터를 저장한다. 이때, 상기 내부 복호기(530)는 입력된 데이터를 복호한 후에 신뢰도를 검사하고 신뢰도 값에 따라 설정되는 이레이저 값을 생성한다.
상기 신뢰도는 데이터를 복호할 때 복호된 값의 트랠리시스 경로 차의 값이다. 즉, 특정 심볼이 0과 1의 값 중 하나를 가진다고 할 때, 0일 확률과 1일 확률이 얼마인가를 지시하는 것이다. 이와 같이 특정 심볼이 0 또는 1일 확률이 높으면 높을수록 신뢰도가 높은 것이다. 복호된 심볼이 특정 값일 확률이 높을수록 즉, 다른 값일 확률과의 차가 클수록 더욱 신뢰할 수 있다. 이러한 결과를 반영하는 이레이저 값은, 복호된 심볼의 결과 값이 가지는 확률이 미리 설정된 확률 값보다 큰 경우 정상적으로 복호가 이루어진 경우이므로 이레이저 값을 설정하지 않고, 복호 된 심볼의 결과 값이 가지는 확률이 미리 설정된 확률 값보다 작은 경우 복호 결과를 신뢰할 수 없기 때문에 이레이저 값을 설정한다.
이와 같이 이레어저 검사를 수행한 이후에 내부 복호기(530)는 각 심볼마다 이레이저 값을 포함하여 출력한다. 즉, 상기 내부 복호기(530)는 602단계로 진행하여 이레이저 값들을 포함한 심볼들을 출력한다. 이와 같이 출력된 심볼들은 리드-솔로몬 복호 버퍼(520)로 입력된다. 따라서 상기 리드-솔로몬 복호 버퍼(520)는 602단계에서 복호 결과와 이레이저 값을 포함하는 결과를 저장한다.
그러면 리드 솔로몬 복호기(510)는 604단계에서 리드-솔로몬 복호가 가능한가를 검사한다. 즉, 상기 리드-솔로몬 복호 버퍼(320)에 저장된 데이터가 리드-솔로몬 부호화한 프레임 단위를 만족하는가를 검사하는 것이다. 이를 도 5를 참조하여 살펴보면 하기와 같다.
먼저 하나의 프레임이 S개의 심볼들로 구성되고 한 심볼이 b개의 비트들로 이루어진다고 가정하였다. 그러면 실제로 이레이저 비트를 포함하기 때문에 각 심볼들은 b+1개의 심볼들로 구성된다. 이와 같이 구성된 각 심볼들을 이용하여 리드 솔로몬 복호기(510)는 리드-솔로몬 복호 가능 여부를 검사할 수 있다. 따라서 리드-솔로몬 복호기(510)는 606단계에서 복호가 가능한가를 검사한다. 상기 606단계의 검사결과 리드-솔로몬 복호가 가능한 경우 608단계로 진행하고 그렇지 않은 경우 600단계로 진행한다.
즉, 제 1 실시 예에서 설명한 바와 같이 리드-솔로몬 복호를 위해서는 전체 n개의 프레임을 수신하여야만 복호가 가능하기 때문이다. 따라서 n개의 프레임을 수신한 경우에는 608단계로 진행하나 그렇지 않은 경우에는 600단계 내지 604단계를 수행함으로써 n개의 프레임이 수신될 때까지 상기 과정을 반복한다.
상기 606단계에서 608단계로 진행하면 리드-솔로몬 복호기(510)는 이레이저 값들을 검사하여 복호가 가능한 심볼들의 열에서 리드-솔로몬 복호를 수행한다. 즉, 이레이저로 설정된 값이 존재하면 이들 값을 이용하지 않고 리드-솔로몬 복호를 수행한다. 이러한 과정은 제 1 실시 예에서 상술한 바와 같이 한 프레임이 S개의 심볼들로 구성되어 있으므로 전체 S회만큼 반복하는 것이다. 이와 한 심볼 열들의 리드-솔로몬 복호가 완료될 때마다 리드 솔로몬 복호기(510)는 복호 가능 지시기 값(505)을 생성한다. 따라서 전체 리드-솔로몬 복호가 완료되면 S개의 복호 가능 지시기 값들을 생성한다. 상기 도 6에서 상술한 과정은 610단계가 된다.
이와 같이 생성된 복호 가능 지시기 값(505)은 로그 우도율 갱신부(505)로 입력된다. 상기 로그 우도율 갱신부(505)는 리드-솔로몬 복호기(510)로부터 입력된 복호 가능 지시기 값(505)을 이용하여 직접적인 방법 또는 간접적인 방법을 통해 갱신할 LLR 값을 생성한다. 즉, 직접적인 방법인 경우 내부 복호기(530)로 입력하며 간접적인 방법인 경우 순환 버퍼(540)로 출력한다.
따라서 내부 복호기(530)는 616단계에서 상기한 과정을 통해 수신된 값을 이용하여 내부 복호를 수행한다. 그리고 내부 복호기(530)는 618단계로 진행하여 상기 내부 복호가 이루어진 값들을 이용하여 순환 복호의 중단 조건을 만족하는가를 검사한다. 상기 618단계의 검사결과 순환 복호의 중단 조건을 만족하는 경우 상기 루틴을 종료한다. 그러나 순환 복호 중단 조건을 만족하지 못하는 경우 600단계로 진행하여 상기 과정을 반복한다. 여기서 순환 복호 중단 조건은 제 1 실시 예에서 설명한 것과 동일하므로, 더 살피지 않는다.
상기 도 6에서 순환 복호 중단 조건을 만족하는가의 검사 위치 또한 606단계와 608단계 사이로 옮길 수 있으며 그 위의 다른 위치로도 이동 가능하다. 이와 같이 다른 위치로 옮길 수 있는 경우는 제 1 실시 예에서 살핀 바와 같이 복호가 1회에 성공할 확률에 따라 달라질 수 있다.
제 3 실시 예
마지막으로 CRC가 내부 부호 프레임 단위로 존재하는 경우의 순환적 복호 방법에 대하여 살펴보기로 한다. 또한 이하에서는 CRC와 함께 이레이저 복호가 가능한 경우로 가정하여 설명하기로 한다.
도 7은 본 발명의 제 3 실시 예에 따라 CRC가 내부 부호 프레임 단위로 존재할 시 복호를 수행하기 위한 리드-솔로몬 복호기의 내부 블록 구성도이다. 이하 도 7을 참조하여 본 발명의 제 3 실시 예에 따라 CRC가 내부 부호 프레임 단위로 존재할 시 복호를 수행하기 위한 리드-솔로몬 복호기의 내부 블록 구성 및 그 동작에 대하여 상세히 설명하기로 한다.
먼저 본 발명의 제 3 실시 예에서 사용되는 복호 방법에 대하여 개괄적으로 살펴보면 하기와 같다. 본 발명의 복호 방법에서는 CRC를 이용하는 방법을 사용한다. 따라서 본 발명의 복호 방법에서는 CRC 검사 결과 양호한(GOOD) 프레임은 에러가 전혀 없는 것이다. 그러므로 CRC 결과가 양호한 프레임은 별도로 순환 버퍼에 해당 프레임 데이터를 저장할 필요가 없다. 또한, CRC 확인 결과 오류가 발생한 프레임이 n-k개 이하인 경우 리드-솔로몬 복호기(710)에 의해 오류가 모두 정정 가능하므로, 복호기는 순환적인 복호 동작을 하지 않게 된다. 그러면 이러한 동작을 좀 더 상세히 살펴보기로 한다.
먼저 송신되어 온 심볼들을 전술한 도 3 및 도 5에서와 같이 입력 데이터(INPUT DATA)라 칭하였다. 이와 같은 입력 데이터는 내부 복호기(730)와 순환 버퍼(740)로 동시에 입력된다. 따라서 상기 순환 버퍼(740)는 입력 데이터를 프레임 단위로 저장한다. 이와 같이 내부 복호기(730)로 입력된 심볼들은 프레임 단위로 복호가 이루어진다. 이때 상기 내부 복호기(730)는 본 발명의 제 2 실시 예에서 설명한 바와 같이 각 심볼의 복호 결과 및 각 심볼의 신뢰도 검사(Reliability Check)를 통해 이레이저 여부를 검사하고, 그 결과를 함께 출력한다. 즉, 한 심볼마다 복호된 결과인 b개의 비트와 상기 b개의 비트의 복호 결과 및 신뢰도 검사 결과를 반영하는 1비트의 이레이저 여부 값을 함께 출력한다. 뿐만 아니라 상기 내부 복호기(730)는 본 발명의 제 3 실시 예에 따라 각 프레임에 포함된 CRC 정보를 이용하여 CRC 검사를 수행한다. 따라서 본 발명의 제 3 실시 예에 따른 내부 복호기(730)에서 출력되는 한 프레임은 S개의 심볼을 가지지만 각 심볼들은 b개의 비트로 구성되는 것이 아니라 b+1개의 비트로 구성된다.
또한 앞에서 간략히 살핀 바와 같이 본 발명의 제 3 실시 예에 따른 장치는 CRC 검사를 수행한다. 이와 같이 CRC 검사를 수행하므로 CRC 결과가 양호한(GOOD) 프레임은 에러가 전혀 없는 것이다. 그러므로 CRC 결과가 양호한 프레임은 별도로 순환 버퍼에 해당 프레임 데이터를 저장할 필요가 없다. 따라서 상기 순환 버퍼(740)는 입력된 데이터 중 CRC 결과가 양호한 경우 이를 순환 버퍼(730)에서 삭제한다. 이와 같이 순환 버퍼(740)에 저장된 프레임을 삭제하도록 하는 동작은 내부 복호기(730)에서 출력된 CRC 결과를 제어부(760)에서 반영하여 순환 버퍼(740)를 제어함으로써 이루어진다. 따라서 내부 복호기(730)에서 복호된 프레임들 중 오류가 존재하는 프레임만을 순환 버퍼(740)에 저장한다. 또한, CRC 확인 결과 오류가 발생한 프레임이 n-k개 이하인 경우 리드-솔로몬 복호기(710)에 의해 오류가 모두 정정 가능하므로, 복호기는 순환적인 복호 동작을 하지 않게 된다. 이러한 경우에는 후술할 리드-솔로몬 복호기(710)가 모든 프레임의 복호 성공 신호를 출력하고, 이를 수신한 제어부(760)에서 순환 버퍼(740)에 저장된 프레임을 삭제하도록 한다.
이러한 과정은 n개의 프레임에 대하여 수행된다. 즉, 리드-솔로몬 복호를 수행할 수 있는 양인 n개의 프레임만큼 리드-솔로몬 복호 버퍼(720)에 저장될 때까지 수행된다. 따라서 리드-솔로몬 복호 버퍼(720)에 저장되는 프레임은 CRC 결과에 관계없이 모든 프레임이 저장된다. 또한 리드-솔로몬 복호 버퍼(720)에 저장되는 프레임의 각 심볼들은 이레이저 여부 값을 함께 저장하므로 리드-솔로몬 복호기(710)는 리드-솔로몬 복호 버퍼(720)에 저장된 데이터들과 신뢰도 값 및 제어부(760)로부터 출력되는 CRC 결과 정보를 이용하여 리드-솔로몬 복호를 수행한다. 만일 제어부(760)에서 CRC 결과 정보를 리드-솔로몬 복호기(710)로 제공하지 않는다면 내부 복호기(730)는 CRC 결과를 리드-솔로몬 복호 버퍼(720)로 출력하도록 구성할 수 있다. 이러한 경우 리드-솔로몬 복호 버퍼(720)는 이를 저장할 영역을 더 포함해야 한다.
그러면 리드-솔로몬 복호기(710)의 동작에 대하여 살펴본다. 상기 리드-솔로몬 복호기(710)는 리드-솔로몬 복호 과정 시에 한 프레임이 S개의 심볼들로 구성되어 있으므로 복호 과정을 S회만큼 수행된다. 이때, CRC BAD인 프레임의 수가 n-k 개보다 작거나 같으면, 리드-솔로몬 복호기(710)는 심볼의 신뢰도를 무시하여 복호를 수행할 수 있다. 이러한 리드-솔로몬 복호기(710)는 제어부(760)를 통해 CRC BAD 프레임들을 알아내어 이들 BAD 프레임 내의 모든 심볼들을 이레이저로 처리하여 복호를 수행한다. 이후 더 이상의 복호 과정이 필요 없으므로 리드-솔로몬 복호기(710)에서 생성하는 리드-솔로몬 복호 가능 지시기(RS Decodable Indicator)를 모두 ENABLE로 설정하여 복호 과정을 끝낼 수 있도록 한다.
그러나 만일, CRC BAD인 프레임의 수가 n-k 개보다 크면, 내부 복호기(730)에서 이레이저로 판정되어있는 심볼은 RS 복호시 이레이저 심볼로 사용된다. 이때, 리드-솔로몬 복호기(710)는 내부에 복호 가능 여부를 확인하는 알고리즘을 통해 리드-솔로몬 복호가 가능한 구간에 대해서, 리드-솔로몬 복호 가능 지시기를 enable로 설정한다. 그러나 리드-솔로몬 복호기(710)는 리드-솔로몬 복호가 불가능한 구간에 대해서는 해당 복호 가능 지시기 값은 Disable 설정하고, RS 복호를 수행하지 않는다. 이때, 리드-솔로몬 복호 가능 여부는 각 리드-솔로몬 복호 구간에서 이레이저의 수가 n-k보다 작거나 같은 경우 활성화로 설정하여 해당 구간의 리드-솔로몬 복호가 가능함을 나타낸다.
그러면 로그 우도율 갱신부(750)는 리드-솔로몬 복호기(710)로부터 출력된 리드-솔로몬 복호 가능 지시자 값들(705)을 이용하여 리드-솔로몬 복호 가능 지시기가 활성화인 위치의 심볼에 대해서는 순환 버퍼 내의 해당 비트에 대한 신뢰도를 적정 수준으로 높여, 내부 복호시 리드-솔로몬 복호 결과가 반영되도록 한다. 또한 앞의 제 1 실시 예 및 제 2 실시 예에서와 같이 도 7의 로그 우도율 갱신부(750)는 점선과 같이 순환 버퍼의 데이터 값을 변화시키는 방법으로 구현할 수도 있고, 혹은 점-파선과 같이 내부 복호기에 직접 연결되어 해당 심볼의 LLR 값을 변화시키는 방법으로 구현할 수 있다. 이러한 방법은 제 1 실시 예 및 제 2 실시 예에서 설명한 바와 같으므로 여기서는 생략한다.
이후 내부 복호기(730)는 순환 버퍼내의 데이터를 다시 차례로 불러 들여 상술한 내부 복호 과정 및 리드-솔로몬 복호 과정을 수 차례 반복한다. 이때, CRC 결과가 BAD였던 프레임이 순환적인 복호 과정을 통해 CRC GOOD으로 전환되면, 제어부(760)로 이 사실을 알려서 수신단이 해당 프레임이 CRC GOOD으로 인식하도록 한다. 또한 상기 순환 버퍼(740)에서도 상기 프레임을 삭제하도록 한다. 이러한 과정들을 반복하는 중에 순환 복호를 중단하는 조건이 만족되면, 복호 과정을 멈추고 결과를 출력한다. 순환 복호를 중단하는 조건들 중 하나는 RS 복호 가능 지시기내의 모든 값이 ENABLE이 되어 더 이상의 순환 과정이 필요없는 경우도 포함된다. 또한 제 1 실시 예 및 제 2 실시 예에서 설명한 방법은 당연히 적용된다.
한편, CRC 결과를 신뢰하는 이레이저 복호 기능이 있는 순환적 복호 방법에서 순환 버퍼의 용량이 L개의 프레임으로 제한되는 경우, CRC 결과가 BAD이지만 용량 제한으로 순환 버퍼에 저장되지 못한 프레임은 순환 복호가 불가능하므로, 이 프레임의 모든 데이터는 이레이저 처리되어야 한다. 따라서, CRC BAD인 프레임의 수 S가 <수학식 2>과 같은 경우에 수신단 복호기는 오류를 정정할 수 없다.
상기 <수학식 2>에서 n-k는 패리티 프레임의 수이고, L은 상술한 바와 같이 순환 버퍼의 용량이다.
도 8은 본 발명의 제 3 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정의 흐름도이다. 이하 도 8을 참조하여 본 발명의 제 3 실시 예에 따른 리드-솔로몬 복호 시의 프레임 복호 과정에 대하여 상세히 설명한다.
입력 데이터(INPUT DATA)는 순환 버퍼(740)와 내부 복호기(730)로 동시에 입력된다. 그러나 순환 버퍼(740)의 용량이 작은 경우 이를 저장하지 않을 수도 있다. 이하에서는 순환 버퍼(740)의 용량이 작은 경우를 가정하여 설명하기로 한다. 내부 복호기(730)는 800단계에서 입력 데이터의 내부 복호를 수행한다. 상기 내부 복호기(730)는 내부 복호를 수행하면서 각 심볼들의 이레이저 여부를 검출하고, 한 프레임의 모든 심볼에 대하여 복호가 완료되면 CRC 검사를 수행한다.
그런 후 상기 내부 복호기(730)는 802단계로 진행하여 CRC 결과가 양호한가를 검사한다. 상기 802단계의 검사 결과 CRC 결과가 양호한 경우 804단계로 진행하여 복호된 프레임을 리드-솔로몬 복호 버퍼(720)에만 저장하도록 한다. 그러나 CRC 결과가 양호하지 않은 경우 806단계로 진행하여 내부 복호된 결과를 리드-솔로몬 복호 버퍼(720)에 저장하며, 복호를 수행한 프레임의 번호를 제어부(760)로 전달하 여 입력 데이터를 순환 버퍼(740)에 저장하도록 한다.
상기 804단계 또는 806단계가 완료되면 제어부(760)는 808단계에서 리드-솔로몬 복호가 가능한가를 검사한다. 상기 검사결과 리드-솔로몬 복호가 가능한 경우 812단계로 진행하고 그렇지 않은 경우 800단계로 진행한다. 종래 기술과 제 1 실시 예 및 제 2 실시 예에서 리드-솔로몬 복호가 가능한 경우에 대하여는 이미 살펴본 바와 같으므로 여기서는 더 이상 설명하지 않기로 한다. 상기 808단계의 검사결과 리드-솔로몬 복호가 가능하지 않은 경우에는 800단계 내지 808단계를 계속 수행하게 되며, 리드 솔로몬 복호가 가능한 경우에 비로소 810단계로 진행한다.
상기 리드-솔로몬 복호기(710)는 810단계로 진행하면 리드-솔로몬 복호를 수행하고, 리드-솔로몬 복호 가능 지시값(705)을 생성하여 출력한다. 이러한 리드-솔로몬 복호 시 CRC bad인 프레임의 수가 n-k개보다 작으면 바로 복호를 완료할 수 있으므로 리드-솔로몬 복호 가능 지시 값들(705)을 생성하여 출력하지 않는다. 그러나 리드-솔로몬 복호 시 CRC bad인 프레임의 수가 n-k보다 크면 리드-솔로몬 복호만으로는 다른 심볼들을 복원할 수 없으므로 리드-솔로몬 복호 가능 지시 값들(705)을 생성하여 출력한다.
그런 후 리드-솔로몬 복호기(710)로부터 출력된 리드-솔로몬 복호 가능 지시 값들(705)은 로그 우도율 갱신부(750)로 입력된다. 상기 로그 우도율 갱신부(750)는 리드-솔로몬 복호기(710)로부터 입력된 복호 가능 지시기 값(705)을 이용하여 직접적인 방법 또는 간접적인 방법을 통해 갱신할 LLR 값을 생성한다. 즉, 직접적인 방법인 경우 내부 복호기(730)로 입력하며 간접적인 방법인 경우 순환 버퍼 (740)로 출력한다.
따라서 내부 복호기(730)는 814단계에서 상기한 과정을 통해 수신된 값을 이용하여 내부 복호를 수행한다. 그리고 내부 복호기(730)는 816단계로 진행하여 상기 내부 복호가 이루어진 값들을 이용하여 순환 복호의 중단 조건을 만족하는가를 검사한다. 상기 816단계의 검사결과 순환 복호의 중단 조건을 만족하는 경우 상기 루틴을 종료한다. 그러나 순환 복호 중단 조건을 만족하지 못하는 경우 800단계로 진행하여 상기 과정을 반복한다. 여기서 순환 복호 중단 조건은 제 1 실시 예 및 제 2 실시 예에서 설명한 것과 동일하므로, 더 살피지 않는다.
상기 도 8에서 순환 복호 중단 조건을 만족하는가의 검사 위치 또한 808단계와 810단계 사이로 옮길 수 있으며 그 위의 다른 위치로도 이동 가능하다. 이와 같이 다른 위치로 옮길 수 있는 경우는 제 1 실시 예에서 살핀 바와 같이 복호가 1회에 성공할 확률에 따라 달라질 수 있다.
상술한 바와 같이 본 발명은 본 발명은 연접된 RS 부호에 있어, 최대 수신 성능을 이끌어 내기 위해 단순히 CRC의 결과에 의존하여 심볼의 이레이저 유무를 판단하지 않고, 내부 복호된 결과를 이용함으로써 연접 RS 부호의 최대 성능을 이끌어 냄으로써 보다 향상된 복호 성능을 제공할 수 있는 이점이 있다. 또한 발명에 의해 제안된 향상된 수신 방법은 송신단에서의 연접 부호를 위한 인터리버의 크기를 줄여 주어 그 만큼 초기 수신 지연 시간을 줄여 줄 수 있는 이점이 있다.
Claims (19)
- 리드-솔로몬 부호화를 포함하여 연접된 부호화를 수행하는 통신 시스템에서 2중 부호화된 심볼을 수신하여 복호하기 위한 장치에 있어서,상기 이중 부호화된 심볼들로 구성된 프레임을 수신하여 1차 복호하여 출력하는 내부 복호기와,상기 이중 부호화 프레임들을 수신하여 저장하는 순환 버퍼와,상기 내부 복호기의 출력을 프레임 단위로 저장하는 리드-솔로몬 복호 버퍼와,상기 리드-솔로몬 복호 버퍼에 저장된 프레임의 심볼들을 열 단위로 읽어와 리드-솔로몬 복호를 수행하고, 각 심볼 열마다 리드-솔로몬 복호 가능 지시 값을 생성하여 출력하는 리드-솔로몬 복호기와,상기 리드-솔로몬 복호 가능 지시 값을 이용하여 로그 우도율 값을 갱신하고, 상기 갱신된 로그 우도율 값을 상기 내부 복호기로 출력하는 로그 우도율 갱신부를 포함함을 특징으로 하는 상기 장치.
- 제 1 항에 있어서, 상기 내부 복호기는,각 심볼 단위로 신뢰도를 검사하여 각 심볼들의 이레이저 값을 생성하고 복호된 각 심볼의 값과 상기 이레이저 값을 함께 출력함을 특징으로 하는 상기 장치.
- 제 2 항에 있어서, 상기 리드-솔로몬 복호기는,상기 각 심볼들의 이레이저 값을 더 이용하여 리드-솔로몬 복호를 수행함을 특징으로 하는 상기 장치.
- 제 1 항 또는 제 2 항에 있어서, 상기 내부 복호기는,이중 부호화된 심볼들의 주기적 덧붙임 검사가 가능한 경우 주기적 덧붙임 검사를 수행하고 그 결과를 더 출력함을 특징으로 하는 상기 장치.
- 제 4 항에 있어서, 상기 리드-솔로몬 복호기는,상기 주기적 덧붙임 검사 결과를 더 이용하여 리드-솔로몬 복호를 수행함을 특징으로 하는 상기 장치.
- 리드-솔로몬 부호화를 포함하여 연접된 부호화를 수행하는 통신 시스템에서 2중 부호화된 심볼을 수신하여 복호하기 위한 장치에 있어서,상기 이중 부호화된 심볼들로 구성된 프레임을 수신하여 1차 복호하여 출력하는 내부 복호기와,상기 이중 부호화 프레임들을 수신하여 저장하는 순환 버퍼와,상기 내부 복호기의 출력을 프레임 단위로 저장하는 리드-솔로몬 복호 버퍼와,상기 리드-솔로몬 복호 버퍼에 저장된 프레임의 심볼들을 열 단위로 읽어와 리드-솔로몬 복호를 수행하고, 각 심볼 열마다 리드-솔로몬 복호 가능 지시 값을 생성하여 출력하는 리드-솔로몬 복호기와,상기 리드-솔로몬 복호 가능 지시 값을 이용하여 로그 우도율 값을 갱신하고, 상기 갱신된 로그 우도율 값을 상기 순환 버퍼에 저장된 프레임의 각 심볼에 반영함을 특징으로 하는 상기 장치.
- 제 6 항에 있어서,상기 내부 복호기는 상기 리드-솔로몬 복호된 값을 이용하여 복호 수행 시 상기 순환 버퍼에 저장된 프레임 단위의 심볼들을 이용하여 복호함을 특징으로 하는 상기 장치.
- 제 7 항에 있어서, 상기 내부 복호기는,각 심볼 단위로 신뢰도를 검사하여 각 심볼들의 이레이저 값을 생성하고 복호된 각 심볼의 값과 상기 이레이저 값을 함께 출력함을 특징으로 하는 상기 장치.
- 제 8 항에 있어서, 상기 리드-솔로몬 복호기는,상기 각 심볼들의 이레이저 값을 더 이용하여 리드-솔로몬 복호를 수행함을 특징으로 하는 상기 장치.
- 제 8 항 또는 제 9 항에 있어서, 상기 내부 복호기는,이중 부호화된 심볼들의 주기적 덧붙임 검사가 가능한 경우 주기적 덧붙임 검사를 수행하고 그 결과를 더 출력함을 특징으로 하는 상기 장치.
- 제 10 항에 있어서, 상기 리드-솔로몬 복호기는,상기 주기적 덧붙임 검사 결과를 더 이용하여 리드-솔로몬 복호를 수행함을 특징으로 하는 상기 장치.
- 리드-솔로몬 부호화를 포함하여 연접된 부호화를 수행하는 통신 시스템에서 2중 부호화된 심볼을 수신하여 복호하기 위한 방법에 있어서,상기 이중 부호화된 심볼들로 구성된 프레임을 수신하여 1차 복호하여 출력하며, 상기 이중 부호화 프레임들을 수신하여 저장하는 과정과,상기 1차 복호된 출력을 프레임 단위로 저장하는 과정과,상기 1차 복호되어 저장된 프레임이 상기 리드-솔로몬 복호가 가능한 경우 저장된 프레임의 심볼들을 열 단위로 읽어와 리드-솔로몬 복호를 수행하고, 각 심볼 열마다 리드-솔로몬 복호 가능 지시 값을 생성하여 출력하는 과정과,상기 리드-솔로몬 복호 가능 지시 값을 이용하여 로그 우도율 값을 갱신한 후 상기 로그 우도율 값을 반영하여 1차 복호를 재 수행하는 과정을 포함함을 특징으로 하는 상기 방법.
- 제 12 항에 있어서,상기 1차 복호가 완료될 때마다 순환 복호 조건을 만족하는가를 검사하는 과정과,상기 순환 복호 조건을 만졸할 시 복호를 중단하는 과정을 더 포함함을 특징으로 하는 상기 방법.
- 제 13 항에 있어서,상기 1차 복호 시 각 심볼 단위로 신뢰도를 검사하여 각 심볼들의 이레이저 값을 생성하고 1차 복호된 각 심볼의 값과 상기 이레이저 값을 함께 출력함을 특징으로 하는 상기 방법.
- 제 14 항에 있어서,상기 리드-솔로몬 복호 시 상기 각 심볼들의 이레이저 값을 더 이용하여 리드-솔로몬 복호를 수행함을 특징으로 하는 상기 방법.
- 제 12 항에 있어서,상기 복호 가능 지시 값은 상기 순환 버퍼에 저장된 값에 적용함을 특징으로 하는 상기 방법.
- 제 12 항에 있어서,상기 복호 가능 지시 값은 상기 1차 복호기에 적용함을 특징으로 하는 상기 방법.
- 제 12 항에 있어서,이중 부호화된 심볼들의 주기적 덧붙임 검사가 가능한 경우 1차 복호 시 주기적 덧붙임 검사를 더 수행하고 그 결과를 더 출력함을 특징으로 하는 상기 방법.
- 제 18 항에 있어서,상기 리드-솔로몬 복호기 시 상기 주기적 덧붙임 검사 결과를 더 이용하여 리드-솔로몬 복호를 수행함을 특징으로 하는 상기 방법.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020040078472A KR20060029495A (ko) | 2004-10-01 | 2004-10-01 | 리드-솔로몬 부호의 복호 장치 및 방법 |
| US11/239,689 US20060085726A1 (en) | 2004-10-01 | 2005-09-30 | Apparatus and method for decoding Reed-Solomon code |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020040078472A KR20060029495A (ko) | 2004-10-01 | 2004-10-01 | 리드-솔로몬 부호의 복호 장치 및 방법 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20060029495A true KR20060029495A (ko) | 2006-04-06 |
Family
ID=36182239
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020040078472A Withdrawn KR20060029495A (ko) | 2004-10-01 | 2004-10-01 | 리드-솔로몬 부호의 복호 장치 및 방법 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20060085726A1 (ko) |
| KR (1) | KR20060029495A (ko) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007091779A1 (en) | 2006-02-10 | 2007-08-16 | Lg Electronics Inc. | Digital broadcasting receiver and method of processing data |
| WO2007123302A1 (en) * | 2006-04-25 | 2007-11-01 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
| WO2007126196A1 (en) | 2006-04-29 | 2007-11-08 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
| WO2007136166A1 (en) | 2006-05-23 | 2007-11-29 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
| WO2007145411A1 (en) * | 2006-06-16 | 2007-12-21 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
| US7873104B2 (en) | 2006-10-12 | 2011-01-18 | Lg Electronics Inc. | Digital television transmitting system and receiving system and method of processing broadcasting data |
| KR101253185B1 (ko) | 2007-03-26 | 2013-04-10 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
| KR101285887B1 (ko) | 2007-03-26 | 2013-07-11 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
| KR101285888B1 (ko) | 2007-03-30 | 2013-07-11 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
| WO2009005326A2 (en) | 2007-07-04 | 2009-01-08 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
| US8433973B2 (en) * | 2007-07-04 | 2013-04-30 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
| KR20090012180A (ko) * | 2007-07-28 | 2009-02-02 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
| KR101486373B1 (ko) * | 2007-07-29 | 2015-01-26 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
| KR20090021124A (ko) | 2007-08-24 | 2009-02-27 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
| CN100589359C (zh) * | 2008-04-23 | 2010-02-10 | 中兴通讯股份有限公司 | 一种里德索罗蒙码的译码方法及装置 |
| EP2614594A1 (en) * | 2010-09-08 | 2013-07-17 | Agence Spatiale Européenne | Flexible channel decoder. |
| US9503127B2 (en) | 2014-07-09 | 2016-11-22 | Quantum Corporation | Data deduplication with adaptive erasure code redundancy |
| KR102265220B1 (ko) * | 2015-03-09 | 2021-06-16 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
| US10318389B2 (en) | 2016-07-15 | 2019-06-11 | Quantum Corporation | Joint de-duplication-erasure coded distributed storage |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2113941A1 (en) * | 1993-01-25 | 1994-07-26 | Andrew J. Macdonald | Error correcting decoder and decoding method for receivers in digital cellular communications systems |
| EP1143443B1 (en) * | 1995-07-14 | 2003-09-17 | Sony Corporation | Method for transmitting digital data and record medium |
| US5640350A (en) * | 1996-05-01 | 1997-06-17 | Iga; Adam Sempa | Multi-bit dynamic random access memory cell storage |
| US6810502B2 (en) * | 2000-01-28 | 2004-10-26 | Conexant Systems, Inc. | Iteractive decoder employing multiple external code error checks to lower the error floor |
| US6836869B1 (en) * | 2001-02-02 | 2004-12-28 | Cradle Technologies, Inc. | Combined cyclic redundancy check (CRC) and Reed-Solomon (RS) error checking unit |
| KR20020065788A (ko) * | 2001-02-07 | 2002-08-14 | 삼성전자 주식회사 | 엠 또는 이엠 비트 데이터 처리 겸용 리드 솔로몬 복호기및 그 복호 방법 |
| KR100444571B1 (ko) * | 2002-01-11 | 2004-08-16 | 삼성전자주식회사 | 터보디코더와 알에스디코더가 연접된 디코딩장치 및 그의디코딩방법 |
| US7395487B2 (en) * | 2002-08-15 | 2008-07-01 | Broadcom Corporation | Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder |
| US20040136455A1 (en) * | 2002-10-29 | 2004-07-15 | Akhter Mohammad Shahanshah | Efficient bit stream synchronization |
| GB2403106B (en) * | 2003-06-18 | 2007-08-15 | Motorola Inc | Arrangement and method for iterative decoding |
-
2004
- 2004-10-01 KR KR1020040078472A patent/KR20060029495A/ko not_active Withdrawn
-
2005
- 2005-09-30 US US11/239,689 patent/US20060085726A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| US20060085726A1 (en) | 2006-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11451247B2 (en) | Decoding signals by guessing noise | |
| KR20060029495A (ko) | 리드-솔로몬 부호의 복호 장치 및 방법 | |
| US9026886B1 (en) | Methods and systems for reconfigurable LDPC decoders | |
| KR100321978B1 (ko) | 통신시스템에서반복복호장치및방법 | |
| TWI594583B (zh) | 硬決定輸入之一般化低密度同位檢查軟解碼 | |
| US5691992A (en) | Punctured coding system for providing unequal error protection in a digital communication system | |
| US20090132894A1 (en) | Soft Output Bit Threshold Error Correction | |
| KR20020074222A (ko) | 복호 장치, 복호 방법, 기지국 장치 및 통신 단말 장치 | |
| US8032812B1 (en) | Error correction decoding methods and apparatus | |
| JP2005245027A (ja) | 段階的データ伝送および処理によるターボ符号化 | |
| US20090132897A1 (en) | Reduced State Soft Output Processing | |
| CN113225091A (zh) | Ldpc解码方法及其装置 | |
| US20080092025A1 (en) | Method and System for Improving Decoding Efficiency in Wireless Receivers | |
| CN111597072A (zh) | 差错控制编码ecc系统及包括ecc系统的存储器设备 | |
| US6378106B1 (en) | Viterbi decoding using single-wrong-turn correction | |
| JP6972424B2 (ja) | 復号装置および復号方法 | |
| US8910009B1 (en) | Method and apparatus for enhancing error detection in data transmission | |
| KR101267798B1 (ko) | 읽기 레벨 제어 장치 및 그 방법 | |
| US8196004B1 (en) | Fast erasure decoding for product code columns | |
| KR20160075001A (ko) | 플래시 메모리 시스템 동작 방법 | |
| US5809042A (en) | Interleave type error correction method and apparatus | |
| JP2009111563A (ja) | データ処理方法およびデータ処理装置並びにプログラム | |
| US10270474B1 (en) | Partial concatenated coding system using algebraic code and LDPC code | |
| JP3252477B2 (ja) | 誤り訂正符復号化方法、誤り訂正符復号化装置、誤り訂正復号化装置 | |
| RU2420870C1 (ru) | Способ кодирования-декодирования каскадной кодовой конструкции в системах передачи данных |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20041001 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |