KR100604934B1 - 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법 - Google Patents

디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법 Download PDF

Info

Publication number
KR100604934B1
KR100604934B1 KR1020050007986A KR20050007986A KR100604934B1 KR 100604934 B1 KR100604934 B1 KR 100604934B1 KR 1020050007986 A KR1020050007986 A KR 1020050007986A KR 20050007986 A KR20050007986 A KR 20050007986A KR 100604934 B1 KR100604934 B1 KR 100604934B1
Authority
KR
South Korea
Prior art keywords
syndrome
data
corrected
error correction
correction
Prior art date
Application number
KR1020050007986A
Other languages
English (en)
Other versions
KR20050078231A (ko
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
Priority claimed from US10/948,219 external-priority patent/US7543218B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20050078231A publication Critical patent/KR20050078231A/ko
Application granted granted Critical
Publication of KR100604934B1 publication Critical patent/KR100604934B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1853Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a product code which has inner and outer parity symbols
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법이 개시된다. 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치는 데이터에 대하여 PI(Parity Inner) 에러 보정 및 PO(Parity Outer) 에러 보정을 수행하여 호스트로 출력하는 디지털 비디오 디스크 디코딩 장치에 있어서 에러 보정 코드 엔진, 라인 버퍼부, PO 신드롬 발생부 및 메모리부를 구비한다. 에러 보정 코드(Error Correction Code) 엔진은 상기 데이터에 대하여 PI 에러 보정을 수행하고 PO 테스트 신드롬(Syndrome)들을 수신하여 PO 에러 보정을 수행한다. 라인 버퍼부는 상기 PI 에러 보정이 수행된 PI 보정 데이터를 저장한다. PO 신드롬 발생부는 상기 라인 버퍼부에서 출력되는 상기 PI 보정 데이터에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 상기 PO 신드롬들을 출력한다. 메모리부는 상기 PO 신드롬들을 저장하고 상기 PO 신드롬들 중 0이 아닌 PO 신드롬들을 상기 PO 테스트 신드롬들로서 출력한다. 본 발명에 따른 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법은 에러 보정을 위한 엔진을 1개만을 사용하고 내부 메모리의 크기를 줄임으로써 디지털 비디오 디스크 디코딩 장치의 크기를 줄일 수 있는 장점이 있다.

Description

디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법{Digital video disc decoding device and error correction method}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 디지털 비디오 디스크 장치의 일반적인 에러 보정 블록을 나타내는 도면이다.
도 2는 종래의 디지털 비디오 디스크 디코딩 장치를 설명하는 블록도이다.
도 3은 종래의 다른 디지털 비디오 디스크 디코딩 장치를 설명하는 블록도이다.
도 4는 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 구조를 설명하는 블록도이다.
도 5는 도 4의 메모리부의 구조를 설명하는 블록도이다.
도 6은 본 발명의 다른 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법을 설명하는 플로우 차트이다.
도 7은 도 6의 630 단계의 동작을 설명하는 플로우 차트이다.
도 8은 본 발명의 다른 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 PO 에러 보정 방법을 설명하는 플로우 차트이다.
도 9는 도 8의 820 단계의 동작을 설명하는 플로우 차트이다.
도 10은 본 발명의 다른 실시예에 따른 DVD-장치의 블록도이다.
도 11은 도 10의 DVD 장치의 동작을 좀 더 상세하게 설명한 도면이다.
도 12는 본 발명의 적어도 일 실시에에 따른 PO-신드롬 발생부의 더욱 상세한 블록도이다.
도 13은 본 발명의 적어도 일 실시예에 따른 도 10의 구성요소들 간의 예시적인 상호작용의 형식으로 DVD-포맷 데이터를 디코딩하는 방법을 도시한 UML-타입 시퀀스 다이어그램이다.
본 발명은 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법에 관한 것으로서, 특히 내부 메모리의 크기를 줄이고 클럭 속도를 느리게 할 수 있는 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법에 관한 것이다. 일반적으로 디지털 비디오 디스크 디코딩 장치는 재생 전용과 재생 및 기록이 가능한 두 가지 종류로 크게 구분된다.
재생 전용의 광 디스크에 정보를 기록하는 방법은 광 디스크에 피트(pit)라고 불리는 홈을 새기고 피트가 있는 부분을 0 에 대응시키고 피트가 없는 부분(랜드)을 1 에 대응시킨다.
광 디스크의 정보를 재생하는 방법은 광 디스크의 트랙을 따라 빛을 조사한 후 빛의 반사량의 차이로 1 과 0 을 판단하는 방법을 이용한다.
재생 및 기록이 가능한 상 변화 광 디스크의 기록 방법은 레이저의 열에 의하여 광 디스크의 기록 막을 결정(crystalline)과 비정질(amorphous)의 2가지 상태로 변화시켜 각각 1 과 0 에 대응시키는 방법을 이용한다. 상 변화 광 디스크의 재생 방법은 재생 전용 광 디스크와 동일하게 빛의 반사량의 차이로 정보를 판단한다. 결정 상태의 반사량이 비정질 상태의 반사량보다 크다.
디지털 비디오 디스크 장치에서 발생되는 에러는 모든 채널에서 발생하는 랜덤 오류와 먼지나 지문 등에 의한 단연집 오류(short burst error)와 긁힘(scratch)에 의한 장연집 오류(long burst error)가 있다. 대부분의 디지털 비디오 디스크 장치에는 에러를 보완하기 위해 순방향 에러 보정 코드(Forward Error Correction Code)가 적용된다. 에러 보정 코드(Error Correction Code)중 가장 널리 알려져 있는 것이 리드 솔로몬(Reed Solomon) 코드이다.
리드 솔로몬 코드는 현재 시중에 있는 CD(compact disk)나 디지털 비디오 디스크(DVD) 장치 같은 광 저장(Optical Storage) 또는 광 재생(Optical Player) 제품에 적용되고 있다.
모든 디지털 비디오 디스크 장치의 재생을 수행하는 칩은 리드 솔로몬 코드를 디코딩 하는 회로를 가지고 있으며 이 회로의 성능과 크기는 각 회사마다 칩의 경쟁력으로 간주되고 있다.
일반적으로 디지털 비디오 디스크(DVD) 관련 제품에서 에러 보정 코드를 동작시키는 에러 보정 코드 엔진의 성능을 평가하는 방식은 다음과 같다. 첫 번째는 DVD 고배속 에러 보정을 수행할 수 있느냐의 여부이다.두 번째는 에러 보정이 반복 적으로 수행되도록 할 수 있느냐의 여부이다.
세 번째는 고배속 에러 보정을 수행하기 위하여 필요한 내부 메모리 크기가 얼마만큼 작은가 이다. 칩의 크기는 가능하면 작아야 한다. 왜냐하면 칩의 경쟁력은 칩의 크기와 밀접하게 관련되기 때문이다.
네 번째는 에러 보정 수행시의 클럭 속도이고, 다섯 번째는 에러 보정 수행시의 전력소비 문제 등이다. 도 1은 디지털 비디오 디스크 장치의 일반적인 에러 보정 블록을 나타내는 도면이다.
도 1을 참조하면, 에러 보정 블록은 192X172 바이트 크기의 데이터 블록과 가로 방향으로 10 바이트의 PI(Parity In) 및 세로 방향으로 16 바이트의 PO(Parity Out)를 구비한다.
도 1의 에러 보정 블록 단위로 데이터의 에러 보정이 수행된다. 에러 보정 블록에 대하여 가로 방향으로 수행되는 보정을 PI 에러 보정이라고 하고 세로 방향으로 수행되는 보정을 PO 에러 보정이라고 한다.
도 2는 종래의 디지털 비디오 디스크 디코딩 장치를 설명하는 블록도이다.
도 2를 참조하면, 종래의 디지털 비디오 디스크 디코딩 장치(200)는 데이터(DATA)를 복조하고 복조 된 데이터(DATA)를 출력하는 복조부(210), PI 에러 보정과 PO 에러 보정을 수행하는 ECC 엔진(220) 및 SRAM(230)을 구비한다.
디지털 비디오 디스크 디코딩 장치(200)는 외부의 SDRAM(240)을 이용하여 에러 보정을 수행한다. 복조부(210)에서 처리된 데이터(DATA)를 SDRAM(240)에 저장한다(1). 그리고 ECC 엔진(220)은 SDRAM(240)으로부터 데이터(DATA)를 수신하여 PI 에러 보정을 수행하고 SRAM(230)에 저장한다.(2)
ECC 엔진(220)은 SRAM(230)에 저장된 PI 에러 보정이 수행된 PI 보정 데이터를 수신하여 PI 에러 보정과 PO 에러 보정을 수행한 후 다시 SRAM(230)에 저장한다.(3)
그리고, ECC 엔진(220)은 SRAM(230)에 저장된 PI 에러 보정 및 PO 에러 보정이 수행된 데이터를 외부의 SDRAM(240)에 저장한다.(4)
SDRAM(240)에 저장된 데이터(DATA)는 호스트로 전송된다. 도 2의 디지털 비디오 디스크 디코딩 장치(200)의 SRAM(S30)은 PI 보정 데이터와 PO 보정 데이터를 모두 저장해야하므로 약 38KB 정도의 크기를 가진다. 이와 같이 큰 사이즈의 SRAM(230)은 디지털 비디오 디스크 디코딩 장치(200)의 크기를 커지게 하는 문제가 있다. 또한 디지털 비디오 디스크 디코딩 장치(200)의 가격도 증가시키는 문제가 있다.
이런 문제점을 해결하기 위한 또 다른 디지털 비디오 디스크 디코딩 장치의 구조가 도 3에 개시된다.
도 3은 종래의 다른 디지털 비디오 디스크 디코딩 장치를 설명하는 블록도이다.
도 3을 참조하면, 디지털 비디오 디스크 재생 장치(300)는 복조부(310), PI ECC 엔진(320), PO 신드롬 발생부(340), PO ECC 엔진(350) 및 SRAM(360)을 구비한다. 디지털 비디오 디스크 디코딩 장치(300)는 외부의 SDRAM(370)을 이용하여 에러 보정을 수행한다.
도 3의 디지털 비디오 디스크 디코딩 장치(300)는 복조부(310)에서 오는 데이터를 SDRAM(370)에 저장하지 않고 On-the-Fly 방식을 이용하여 에러 보정을 수행한다.
즉, PI ECC 엔진(320)은 내부에 라인 버퍼(미도시)를 구비하며 복조부(310)에서 출력되는 데이터(DATA)를 라인 버퍼(미도시)에 저장한 후 저장된 데이터(DATA)에 대하여 On-the-Fly방식을 이용하여 PI 에러 보정을 수행한다.(1) PI 에러 보정이 수행된 PI 보정 데이터는 PI ECC 엔진(320) 내부의 라인 버퍼에 저장된다. 즉, PI ECC 엔진(320)은 복조부(310)에서 들어오는 데이터(DATA)를 저장하는 라인버퍼(미도시), 저장된 데이터(DATA)를 On-the-Fly방식을 이용하여 PI 에러 보정 하는 라인버퍼(미도시), 보정된 데이터(DATA)를 저장하는 라인버퍼(미도시)를 구비한다.
라인 버퍼에 저장된 PI에러 보정이 수행된 PI 보정 데이터는 외부의 SDRAM(370)과 PO 신드롬 발생부(340)로 동시에 인가된다.(2)
PO 신드롬 발생부(340)는 PI 보정 데이터에 대하여 소정의 알고리즘에 따른 연산을 수행하여 PO 신드롬들을 출력하여 SRAM(360)으로 인가한다.(3) PO 신드롬들을 발생하기 위한 소정의 연산은 PI ECC 엔진(320)에서 수행되는 PI 에러 보정과 동시에 수행된다. 즉, PI 에러 보정이 수행되는 동안 이미 PI 에러 보정이 수행된 이전 프레임의 PI 보정 데이터에 대하여 PO 신드롬들을 구하는 연산이 수행된다.
또한 이때 PO ECC 엔진(350)은 이미 이전 프레임에서 발생된 PO 신드롬들에 대하여 PO 에러 보정을 수행한다.(4)
PI ECC 엔진(320)에서의 PI 에러 보정 동작과 PO 신드롬 발생부(340)에서의 PO 신드롬들을 구하기 위한 연산 동작 및 SRAM(360)에 저장된 이전 프레임의 PO 신드롬들에 대한 PO 에러 보정 동작은 동시에 수행된다.
PO ECC 엔진(350)에서 얻어진 PO 보정 데이터는 SDRAM(370)으로 저장되고(5) PO 보정 데이터는 외부의 호스트로 출력된다.
도 3의 디지털 비디오 디스크 재생 장치(300)의 SRAM(360)은 PO 신드롬 발생부(340)에서 발생되는 PO 신드롬들을 저장하기 위하여 필요한 2.7KB 와 PO ECC 엔진(350)에서 PO 에러 보정을 수행하기 위한 이전 프레임의 PO 신드롬들을 저장하기 위하여 필요한 2.7KB, 또 디지털 비디오 디스크의 특성상 인터리브(Interleave) 된 데이터를 저장하기 위하여 필요한 2.7KB를 모두 구비하여야 한다.
그러므로 도 3의 디지털 비디오 디스크 재생 장치(300)의 SRAM(360)은 약 8KB의 저장 공간이 필요하다. 또한, 도 3의 디지털 비디오 디스크 재생 장치(300)는 두 개의 ECC 엔진, 즉 PI ECC 엔진(320)과 PO ECC 엔진(350)을 별도로 구비하는 문제가 있다. 또한, 도 2의 디지털 비디오 디스크 재생 장치(200)와 달리 복조부(310)에서 출력되는 데이터(DATA)에 대하여 직접 PI 에러 보정이 수행되므로 반복적인 보정이 어려우며 에러가 존재하건 존재하지 아니하건 모든 PO 신드롬들에 대하여 PO 에러 보정이 수행되므로 큰 전력 소비와 클럭 속도도 빨라야 하는 문제가 있다.
본 발명이 이루고자하는 기술적 과제는 내부의 메모리 사이즈 및 소비 전력 을 줄일 수 있는 디지털 비디오 디스크 재생 장치를 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는 내부의 메모리 사이즈 및 소비 전력을 줄일 수 있는 디지털 비디오 디스크 재생 장치의 에러 보정 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치는 데이터에 대하여 PI(Parity Inner) 에러 보정 및 PO(Parity Outer) 에러 보정을 수행하여 호스트로 출력하는 디지털 비디오 디스크 디코딩 장치에 있어서 에러 보정 코드 엔진, PO 신드롬 발생부 및 메모리부를 구비한다.
에러 보정 코드(Error Correction Code) 엔진은 상기 데이터에 대하여 PI 에러 보정을 수행하고 PO 테스트 신드롬(Syndrome)들을 수신하여 PO 에러 보정을 수행한다.
PO 신드롬 발생부는 상기 에러 보정 코드 엔진에서 출력되는 상기 PI 보정 데이터에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 상기 PO 신드롬들을 출력한다.
메모리부는 상기 PO 신드롬들을 저장하고 상기 PO 신드롬들 중 0이 아닌 PO 신드롬들을 상기 PO 테스트 신드롬들로서 출력한다.
상기 메모리부는 제 1 메모리, 검출부 및 어드레스 발생부를 구비한다.제 1 메모리는 상기 PO 신드롬들을 저장하고 PO 신드롬 어드레스에 대응되는 PO 신드롬들을 상기 PO 테스트 신드롬들로서 상기 에러 보정 코드 엔진으로 출력한다.
검출부는 상기 제 1 메모리의 각각의 어드레스에 대응되는 상기 PO 신드롬들 중 하나라도 0 이 아닌 PO 신드롬이 존재하면 검출 신호를 제 1 레벨로 발생하고 그렇지 아니하면 상기 검출 신호를 제 2 레벨로 발생한다.
어드레스 발생부는 제 1 레벨로 발생되는 상기 검출 신호에 대응되는 상기 제 1 메모리의 어드레스를 상기 PO 신드롬 어드레스로서 출력한다.
상기 제 1 메모리는 상기 에러 보정 코드 엔진으로 입력되는 상기 데이터의 가로 방향의 바이트 수에 대응되는 수의 상기 어드레스를 구비하고, 상기 각각의 어드레스는 16 바이트 크기를 가지며, 상기 PI 보정 데이터의 동일한 칼럼에 대하여 얻어진 상기 PO 신드롬들을 저장한다.
검출 로직은 상기 제 1 메모리의 상기 어드레스에 대응되는 상기 PO 신드롬들에 응답하여 상기 검출 신호를 발생한다. 182 비트의 플립플롭은 상기 검출 신호를 저장한다.
디지털 비디오 디스크 디코딩 장치는 외부에서 입력되는 상기 데이터 또는 상기 PI 보정 데이터를 상기 에러 보정 코드 엔진으로 인가하고, 상기 에러 보정 코드 엔진으로부터 상기 PI 보정 데이터 또는 상기 PO 에러 보정이 수행된 PO 보정 데이터를 수신하여 저장하며 상기 외부 호스트로 상기 PO 보정 데이터를 출력하는 외부 메모리를 더 구비한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법은 데이터에 대하여 PI(Parity Inner) 에러 보정 및 PO(Parity Outer) 에러 보정을 수행하여 호스트로 출력하는 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법에 있어서, 상기 데이터에 대하여 PI 에러 보정을 수행하는 단계, 상기 PI 에러 보정이 수행된 PI 보정 데이터에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 PO 신드롬들을 출력하는 단계, 상기 PO 신드롬들 중 0이 아닌 PO 신드롬들을 판단하는 단계, 상기 0이 아닌 PO 신드롬들에 대하여 PO 에러 보정을 수행하는 단계 및 상기 PO 에러 보정이 수행된 PO 보정 데이터를 상기 호스트로 출력하는 단계를 구비한다.
상기 0이 아닌 PO 신드롬들을 판단하는 단계는 상기 PI 보정 데이터의 동일한 칼럼에 대하여 상기 PO 신드롬 연산을 수행하여 얻어진 상기 PO 신드롬들을 각각의 어드레스에 대응시키는 단계, 각각의 어드레스에 대응되는 상기 PO 신드롬들 중 하나라도 0 이 아닌 PO 신드롬이 존재하면 검출 신호를 제 1 레벨로 발생하고 그렇지 아니하면 상기 검출 신호를 제 2 레벨로 발생하는 단계, 제 1 레벨로 발생되는 상기 검출 신호에 대응되는 상기 어드레스를 PO 신드롬 어드레스로서 출력하는 단계 및 상기 PO 신드롬 어드레스에 대응되는 상기 어드레스의 PO 신드롬들을 출력하는 단계를 구비한다. 상기 어드레스의 개수는 상기 데이터의 가로 방향의 바이트 수에 대응되는 수이고, 상기 각각의 어드레스는 16 바이트 크기를 가진다. 상기 PI 에러 보정을 수행하는 단계 및 PO 신드롬들을 출력하는 단계는 파이프라인(pipeline) 방식에 의하여 수행된다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 DVD-포맷 데이터 디코딩 방법은 DVD(digital versatile disk)-포맷 데이터의 복조된 에러 보정 코드(error correction code: ECC) 블록을 수신하는 단계, 상기 복조된 ECC 블 록을 선택적으로 패리티 내부 코드 보정(parity-of-inner-code-correcting: PI-보정)하는 단계, 패리티 외부 코드 보정(parity-of-outer-code-correcting: PO-보정)되는 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하는 단계 및 상기 잘못된 PI-보정된 칼럼들만을 선택적으로 PO-보정하여 ECC 블록의 디코딩된 버전을 획득하는 단계를 구비한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 DVD-포맷 데이터 디코딩 장치는 DVD-포맷 데이터의 복조된 ECC 블록이 저장된 외부 메모리, 상기 복조된 ECC 블록을 선택적으로 PI-보정하는 ECC 엔진 및 PO-보정을 받아야하는 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하고, ECC 블록의 디코딩된 버전을 획득하기 위해서 상기 ECC 엔진이 상기 잘못된 PI-보정된 칼럼들만을 선택적으로 PO-보정하도록 하는 PO 결정(PO-decision) 로직을 구비한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 DVD-포맷 데이터 디코딩 장치는DVD-포맷 데이터의 ECC 블록을 수신하는 수단, 상기 복조된 ECC 블록을 선택적으로 PI-보정하는 수단, PO-보정을 받아야하는 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하는 수단 및 상기 잘못된 PI-보정된 칼럼들만을 선택적으로 PO-보정하여 ECC 블록의 디코딩된 버전을 획득하는 수단을 구비한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 DVD-포맷 데이터 디코딩 방법은 DVD-포맷 데이터의 복조된 ECC 블록을 수신하는 단계, 상기 복조된 ECC 블록을 선택적으로 PI-보정하기 위해서 ECC 엔진을 사용하는 단계 및 모든 상기 PI-보정된 블록 미만으로 선택적으로 PO-보정하기 위해서 상기 ECC 엔진을 사용하는 단계를 구비한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 DVD-포맷 데이터 디코딩 장치는 DVD-포맷 데이터의 복조된 ECC 블록을 저장하는 외부 메모리, 상기 복조된 ECC 블록을 선택적으로 PI-보정하도록 동작 가능한 ECC엔진 및 상기 ECC 엔진이 상기 PI-보정된 모든 블록 미만으로 선택적으로 PO-보정하도록 하는 PO 결정 로직을 구비한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 4는 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 구조를 설명하는 블록도이다.
도 4를 참조하면, 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치(400)는 에러 보정 코드 엔진(410), PO 신드롬 발생부(430) 및 메모리부(440)를 구비한다.
에러 보정 코드(Error Correction Code) 엔진(410)은 내부의 라인 버퍼(미도시)에 저장된 데이터(DATA)에 대하여 PI 에러 보정을 수행하고 PO 테스트 신드롬 (Syndrome)들(PO_ST)을 수신하여 PO 에러 보정을 수행한다.
신드롬은 매트릭스 곱으로, 참인 데이터를 나타내는 데이터들 중에서 몇몇 잠재적으로-노이즈-오류가 발생될(potentially-noise-corrupted) 후보(candidate) 데이터들을 식별하는데 이용된다. 좀 더 상세하게, 신드롬은 패리티 체크 매트릭스와 후보 데이터 벡터와의 곱이다.
PO 신드롬 발생부(430)는 에러 보정 코드 엔진(410)에서 출력되는 PI 보정 데이터(PI_D)에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 PO 신드롬들(PO_S)을 출력한다. 즉 PO 신드롬 발생부(430)는 하나의 프레임(Frame) 내에서 하나의 데이터(DATA) 라인이 입력되면 이전 데이터(DATA) 라인의 PO 신드롬들(PO_S)과 칼럼(Column)방향으로 PO신드롬 연산을 다시 수행하여 새로운 PO 신드롬들(PO_S)의 값을 메모리부(440)로 전송한다.
메모리부(440)는 PO 신드롬들(PO_S)을 저장하고 PO 신드롬들(PO_S) 중 0이 아닌 PO 신드롬들을 PO 테스트 신드롬들(PO_ST)로서 출력한다. 에러 보정 코드 엔진(410)은 PI 에러 보정과 PO 에러 보정을 동시에 수행하지 아니한다.
도 5는 도 4의 메모리부의 구조를 설명하는 블록도이다.
도 5의 메모리부의 구조 및 동작에 대한 설명은 후술된다.
도 6은 본 발명의 다른 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법을 설명하는 플로우 차트이다.
도 6을 참조하면, 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법(600)은 상기 데이터에 대하여 PI 에러 보정을 수행하는 610 단계, 상기 PI 에러 보정이 수행된 PI 보정 데이터에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 PO 신드롬들을 출력하는 620 단계, 상기 PO 신드롬들 중 0이 아닌 PO 신드롬들을 판단하는 630 단계, 상기 0이 아닌 PO 신드롬들에 대하여 PO 에러 보정을 수행하는 640 단계 및 상기 PO 에러 보정이 수행된 PO 보정 데이터를 상기 호스트로 출력하는 650 단계를 구비한다. 도 7은 도 6의 630 단계의 동작을 설명하는 플로우 차트이다.
이하, 도 4 내지 도 7을 참조하여 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 동작 및 그 에러 보정 방법이 상세히 설명된다.
도 4의 디지털 비디오 디스크 디코딩 장치(400)는 종래 기술의 문제점인 내부 메모리의 사이즈를 줄이고 소비 전력을 감소시키며 동작을 위한 클럭 속도를 떨어뜨릴 수 있다.
먼저, 데이터(DATA)에 대하여 PI 에러 보정을 수행한다.(610 단계) 610 단계는 에러 보정 코드 엔진(410)에서 수행된다. PI 에러 보정이 수행되기 전에 복조부(450)는 복조 된 데이터(DATA)를 외부 메모리(460)로 인가한다.
외부 메모리(460)는 복조부(450)에서 입력되는 데이터(DATA) 또는 PI 보정 데이터(PI_D)를 에러 보정 코드 엔진(410)으로 인가하고, 에러 보정 코드 엔진(410)으로부터 PI 보정 데이터(PI_D) 또는 PO 에러 보정이 수행된 PO 보정 데이터(PO_D)를 수신하여 저장한다. 또한, 외부 메모리(460)는 외부 호스트로 PO 보정 데이터(PO_D)를 출력한다. 외부 메모리(460)는 SDRAM(Synchronous Dynamic Random Access Memory) 이다.
에러 보정 코드 엔진(410)은 외부 메모리(460)로부터 복조된 데이터(DATA)를 수신하고 데이터(DATA)에 대하여 PI 에러 보정을 수행한다. 그리고 PI 에러 보정에 의하여 발생된 PI 보정 데이터(PI_D)를 PO 신드롬 발생부(430)와 외부 메모리(460)로 동시에 인가한다.
외부 메모리(460)에 저장된 PI 보정 데이터(PI_D)는 후에 PO 에러 보정 수행시 이용된다.
에러 보정 코드엔진(410) 내부의 라인 버퍼(미도시)는 에러 보정 코드 엔진(410)에서 출력되는 PI 보정 데이터(PI_D)를 저장함과 동시에 이미 저장되어 있던 이전 프레임의 PI 보정 데이터(PI_D)를 PO 신드롬 발생부(430)로 인가한다.
PI 보정 데이터(PI_D)에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 PO 신드롬들을 출력한다.(620 단계) 620 단계는 PO 신드롬 발생부(430)에서 수행된다.
PO 신드롬 연산은 에러 보정 코드 엔진(410)에서 수행되는 PI 에러 보정과 동시에 수행된다. PI 신드롬 연산에 대하여 좀 더 설명된다.
데이터(DATA)가 도 1과 같이 로우(row) 방향으로 172 바이트의 데이터와 10 바이트의 PI를 구비하고, 칼럼(column) 방향으로 192 바이트의 데이터와 16 바이트의 PO를 구비한다고 가정한다. PI 보정 데이터(PI_D)는 10 바이트의 PI를 이용하여 로우 방향으로 에러 보정이 수행된 후의 데이터이다.
PO 에러 보정은 PI 보정 데이터(PI_D)에 칼럼 방향으로 에러 보정을 수행하는 동작이다. 그러나 본 발명에서는 PI 보정 데이터(PI_D)에 대하여 PO 에러 보정을 수행하기 전에 PO 신드롬 연산을 수행한다. PO 신드롬 연산은 PI 보정 데이터(PI_D)의 하나의 로우(row)의 각각의 데이터와 이전 로우(row)의 각각의 데이터에 대하여 얻어진 PO 신드롬들을 가지고 소정의 알고리즘에 따른 연산을 수행하는 것이다.
이러한 PO 신드롬 연산을 데이터(DATA)의 첫 번째 로우부터 208번째 로우까지 수행하여 최종 PO 신드롬들(PO_S)이 얻어지고 PO 신드롬들(PO_S)은 메모리부(440)에 저장된다.
PO 신드롬들(PO_S) 중 0이 아닌 PO 신드롬들을 판단한다.(630 단계) 630 단계의 동작은 메모리부(440)에서 수행된다. 메모리부(440)는 PO 신드롬들(PO_S)을 저장하고 PO 신드롬들(PO_S) 중 0이 아닌 PO 신드롬들을 PO 테스트 신드롬들(PO_ST)로서 에러 보정 코드 엔진(410)으로 출력한다. 메모리부(440)는 제 1 메모리(510), 검출부(515) 및 어드레스 발생부(540)를 구비한다.
제 1 메모리(510)는 PO 신드롬들(PO_S)을 저장하고 PO 신드롬 어드레스(PO_SADD)에 대응되는 PO 신드롬들을 PO 테스트 신드롬들(PO_ST)로서 에러 보정 코드 엔진(410)으로 출력한다. 제 1 메모리(510)는 SRAM(Synchronous Random Access Memory)이다.
좀 더 설명하면, 제 1 메모리(510)는 에러 보정 코드 엔진(410)으로 입력되는 데이터(DATA)의 가로 방향의 바이트 수에 대응되는 수의 어드레스를 구비한다. 도 1에서 데이터(DATA)는 로우(row) 방향으로 182 바이트이므로 제 1 메모리(510)는 182 개의 어드레스를 가진다. 제 1 메모리(510)의 182 개의 어드레스는 각각 16 바이트의 저장 공간을 가진다. PI 보정 데이터(PI_D)의 동일한 칼럼에 대하여 얻어진 PO 신드롬들(PO_S)이 대응되는 어드레스의 16 바이트 공간에 저장된다.
208 개의 로우(row) 방향 데이터의 첫 번째 바이트들에 대하여 수행된 PO 신드롬 연산의 결과인 PO 신드롬이 제 1 메모리(510)의 1번 어드레스의 16 바이트 공간에 저장된다.
208 개의 로우(row) 방향 데이터의 두 번째 바이트들에 대하여 수행된 PO 신드롬 연산의 결과인 PO 신드롬이 제 1 메모리(510)의 2번 어드레스의 16 바이트 공간에 저장된다.
마찬가지로 208 개의 로우(row) 방향 데이터의 182 번째 바이트들에 대하여 수행된 PO 신드롬 연산의 결과인 PO 신드롬이 제 1 메모리(510)의 182번 어드레스의 16 바이트 공간에 저장된다. PO 신드롬 발생부(430)에서 수행되는 PO 신드롬 연산은 PI 에러 보정과 동시에 수행된다. 종래에는 PI 에러 보정과 PO 신드롬 연산과 PO 에러 보정이 동시에 수행된다. 그러나 종래와 달리 본 발명의 실시예에서는 PI 에러 보정과 PO 에러 보정은 동시에 수행되지 아니한다.
즉, PO 에러 보정은 PI 에러 보정과 PO 신드롬 연산이 끝난 후에 수행된다. 에러 보정 코드 엔진(410)이 제 1 메모리(510)에서 출력되는 PO 테스트 신드롬들(PO_ST)을 수신하여 PO 에러 보정을 수행한다. 도 3의 종래의 디지털 비디오 디스크 디코딩 장치(300)의 SRAM(360)의 크기는 약 8KB 이었으나 본 발명의 제 1 메모리(510)의 크기는 PO 신드롬 발생부(430)에서 출력되는 PO 신드롬들(PO_S)만 저장하면 되므로 약 3KB 정도이다.
이와 같이 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치(400)는 내부에 저장되는 메모리의 사이즈를 줄일 수 있다.
검출부(515)는 제 1 메모리(510)의 각각의 어드레스에 대응되는 PO 신드롬들(PO_S) 중 하나라도 0 이 아닌 PO 신드롬이 존재하면 검출 신호(DS)를 제 1 레벨로 발생하고 그렇지 아니하면 검출 신호(DS)를 제 2 레벨로 발생한다. 여기서, 제 1 레벨은 1 이고 상기 제 2 레벨은 0 이다. 그러나 제 1 레벨과 제 2 레벨의 논리 값이 반대일 수 있다는 것은 당업자라면 이해할 수 있을 것이다.
검출부(515)는 검출 로직(520) 및 182 비트의 플립플롭(530)을 구비한다. 검출 로직(520)은 제 1 메모리(510)의 어드레스에 대응되는 상기 PO 신드롬들에 응답하여 검출 신호(DS)를 발생한다.
제 1 메모리(510)의 1 번 어드레스의 16 바이트 공간에 저장된 PO 신드롬들이 검출 로직(520)으로 인가되면 검출 로직(520)은 수신된 PO 신드롬들(PO_S) 중 0 이 아닌 PO 신드롬이 존재하는 지를 검토한다.
그리고 0 이 아닌 PO 신드롬이 하나라도 존재하면 검출 신호(DS)를 제 1 레벨로 출력하고 그렇지 아니하면 검출 신호(DS)를 제 2 레벨로 출력한다.
마찬가지로, 제 1 메모리(510)의 182 번 어드레스의 16 바이트 공간에 저장된 PO 신드롬들이 검출 로직(520)으로 인가되면 검출 로직(520)은 수신된 PO 신드롬들(PO_S) 중 0 이 아닌 PO 신드롬이 존재하는 지를 검토한다.
그리고 0 이 아닌 PO 신드롬이 하나라도 존재하면 검출 신호(DS)를 제 1 레벨로 출력하고 그렇지 아니하면 검출 신호(DS)를 제 2 레벨로 출력한다.
검출 로직(520)은 논리 게이트들을 이용하여 구성할 수 있으며 당업자라면 검출 로직(520)의 구조를 이해할 수 있으므로 구조에 관한 상세한 설명을 생략한다.
검출 로직(520)에서 출력된 검출 신호(DS)는 순차적으로 182 비트의 플립플롭(530)에 저장된다. 검출 로직(520)은 제 1 메모리(510)의 182 개의 어드레스에 대응되는 검출 신호(DS)를 출력하므로 플립플롭(530)은 182 비트의 저장 공간을 구비한다.
만일 플립플롭(530)의 3번째 비트에 저장된 검출 신호(DS)의 논리 레벨이 제 1 레벨이면 제 1 메모리(510)의 3번 어드레스의 16바이트 저장 공간에 저장된 PO 신드롬들(PO_S)은 0 이 아닌 PO 신드롬을 적어도 하나 이상 가지고 있다는 것을 의미한다.
어드레스 발생부(540)는 플립플롭(530)으로부터 제 1 레벨로 발생되는 검출 신호(DS)에 대응되는 제 1 메모리(510)의 어드레스를 PO 신드롬 어드레스(PO_SADD)로서 출력한다. 앞의 예에서 어드레스 발생부(540)는 플립플롭(530)의 3번째 비트에서 출력되는 검출 신호(DS)의 논리 레벨이 제 1 레벨인 것을 인식하고 제 1 메모리(510)의 3번 어드레스를 PO 신드롬 어드레스(PO_SADD)로서 제 1 메모리(510)로 인가한다.
그러면, 제 1 메모리(510)는 PO 신드롬 어드레스(PO_SADD)에 응답하여 제 1 메모리(510)의 3번 어드레스에 저장된 PO 신드롬들을 PO 테스트 신드롬들(PO_ST)로서 에러 보정 코드 엔진(410)으로 인가한다.
0이 아닌 PO 신드롬들에 대하여 PO 에러 보정을 수행한다.(640 단계) 640 단계는 에러 보정 코드 엔진(410)에서 수행된다.
에러 보정 코드 엔진(410)은 메모리부(440)에서 출력되는 PO 테스트 신드롬들(PO_ST)에 대하여 PO 에러 보정을 수행한다. 에러 보정 코드 엔진(410)은 외부 메모리(460)로부터 PI 보정 데이터(PI_D)를 수신하고 PO 에러 보정에 의하여 얻어진 에러 값과 에러 위치를 이용하여 PI 보정 데이터(PI_D)를 보정한다.
이와 같은 방법에 의하여 얻어진 PO 보정 데이터(PO_D)를 에러 보정 코드 엔진(410)은 외부 메모리(460)로 저장한다. 그러면 외부 메모리(460)는 PO 보정 데이터(PO_D)를 외부의 호스트로 출력한다.(650 단계)
이와 같이 PO 에러 보정은 PI 에러 보정이 끝난 후에 진행된다. 그리고, 도 3의 디지털 비디오 디스크 디코딩 장치(300)와 달리 도 4의 본 발명의 실시예에 따른 디지털 비디오 디스크 디코딩 장치(400)는 PI 에러 보정과 PO 에러 보정을 수행하는 하나의 엔진만을 구비한다. 디지털 비디오 디스크 디코딩 장치(400)는 3KB 사이즈의 내부 메모리를 이용하고 PI 에러 보정과 PO 에러 보정 두 가지 모두 수행할 수 있는 하나의 엔진만 구비하므로 그 크기를 줄일 수 있다.
또한 0이 아닌 PO 신드롬들에 대해서만 PO 에러 보정을 수행하므로 에러 보정 시간을 단축시킬 수 있다. 만일 제 1 메모리(510)의 182 개의 어드레스에 대응되는 PO 신드롬들 중 5개의 어드레스에 대응되는 PO 신드롬들이 0이 아닌 PO 신드롬을 구비하는 것으로 나타난 경우, 5개의 어드레스에 대응되는 PO 신드롬들에 대해서만 PO 에러 보정을 수행함으로써 보정 시간을 5/182 = 2.74% 만 소모하게 되므 로 97%의 시간을 절약할 수 있다.
이것은 결국 디지털 비디오 디스크 디코딩 장치(400)를 동작시키는 클럭의 속도를 떨어뜨리고 해당되는 PO 신드롬들에 대해서만 PO 에러 보정이 수행됨으로써 전체적인 전력 소비량도 줄일 수 있다. 또한 에러 보정 코드 엔진(410)이 외부 메모리(460)로부터 데이터(DATA)를 수신함으로써 반복 보정 역시 가능하다.
도 8은 본 발명의 다른 실시예에 따른 디지털 비디오 디스크 디코딩 장치의 PO 에러 보정 방법을 설명하는 플로우 차트이다.
도 9는 도 8의 820 단계의 동작을 설명하는 플로우 차트이다.
본 발명의 또 다른 실시예에 따른 PO 에러 보정을 수행하는 방법(800)은 데이터에 대하여 PO 신드롬 연산을 수행하여 얻어진 PO 신드롬을 이용하여 PO(Parity Outer) 에러 보정을 수행하는 방법에 관한 것이다.
PO 에러 보정을 수행하는 방법(800)은 데이터의 칼럼 방향으로 PO 신드롬 연산을 수행하여 PO 신드롬들을 출력하는 810 단계, 상기 PO 신드롬들 중 0이 아닌 PO 신드롬들을 판단하는 820 단계 및 상기 0이 아닌 PO 신드롬들에 대하여 PO 에러 보정을 수행하는 830 단계를 구비한다.
상기 0이 아닌 PO 신드롬들을 판단하는 820 단계는 상기 PO 신드롬들을 각각의 어드레스에 대응시키는 910 단계, 각각의 어드레스에 대응되는 상기 PO 신드롬들 중 하나라도 0 이 아닌 PO 신드롬이 존재하면 검출 신호를 제 1 레벨로 발생하고 그렇지 아니하면 상기 검출 신호를 제 2 레벨로 발생하는 920 단계, 제 1 레벨로 발생되는 상기 검출 신호에 대응되는 상기 어드레스를 PO 신드롬 어드레스로서 출력하는 930 단계 및 상기 PO 신드롬 어드레스에 대응되는 상기 어드레스의 PO 신드롬들을 출력하는 940 단계를 구비한다. 여기서, 데이터는 PI 에러 보정이 수행된 PI 보정 데이터이다. 도 8의 PO 에러 보정 방법(800)은 도 4의 PO 신드롬 발생부(430), 메모리부(440) 및 에러 보정 코드 엔진(410)에서 수행되는 PO 신드롬들(PO_S)을 이용한 PO 에러 보정 방법에 관한 것이다.
도 4의 PO 신드롬 발생부(430), 메모리부(440) 및 에러 보정 코드 엔진(410)이 PI 보정 데이터(PI_D)에 대하여 PO 신드롬들(PO_S)을 구하고 0이 아닌 PO 신드롬을 적어도 하나이상 구비하는 PO 신드롬들에 대하여 PO 에러 보정을 수행하는 동작은 도 4를 이용하여 앞서 설명된바 있으므로 상세한 설명을 생략한다.
도 10은 본 발명의 다른 실시예에 따른 DVD-장치의 블록도이다.
DVD-장치(1002)는 ECC 디코더(1004), 및 ECC 디코더(1004) 외부의 메모리(1006), 예를 들어 SDRAM을 구비한다. 이하, 메모리(1006)는 외부 메모리(1006)라 한다. ECC 디코더(1004) 복조부(1008), ECC 엔진(1010) 및 메모리(1012)(ECC 디코더(1004) 내부에 있으므로 이하 내부 메모리(1012)라 함), 예를 들어 SRAM을 구비한다.
ECC 엔진(1010)은 PI-신드롬(여기서, 또한 PI는 패리티 내부(parity inner)라는 용어의 두문자이다) 발생부(1014), PO-신드롬 발생부(1016)(여기서, 또한 PO는 패리티 외부(parity outer)라는 용어의 두문자이다), 및 PO-결정 로직(1018)을 구비한다.
ECC 엔진(1010)은 PO-보정을 수행하기 전에 PI-보정을 수행한다. 양 유형의 보정은 각각 PI-신드롬 및 PO-신드롬의 계산을 경유하여 진행된다. 또한, 신드롬은 매트릭스 곱으로, 참인 데이터를 나타내는 데이터들 중에서 몇몇 잠재적으로-노이즈-오류가 발생될(potentially-noise-corrupted) 후보(candidate) 데이터들을 식별하는데 이용된다. 좀 더 상세하게, 신드롬은 패리티 체크 매트릭스와 후보 데이터 벡터와의 곱이다.
PO-결정 로직(1018)은 PI-보정된 블록 내의 칼럼들 중 어떤 칼럼들이 잘못되었으며 PO-보정을 수신해야 하는지 ECC 엔진(1010)에 나타내기 위해 PO-신드롬을 동작할 수 있다. 그 후, ECC 엔진(1010)은 잘못된 PI-보정된 칼럼들에 대해서만 선택적으로 PO-보정을 수행하여 ECC화 블록의 디코딩된 버전을 획득할 수 있다.
도 11은 도 10의 DVD 장치의 동작을 좀 더 상세하게 설명한 도면이다.
도 11은 도 10의 블록 다이어그램의 변형으로, 도 10에 비해 어느 면에서는 단순화되었으며 도 10에 비해 어느 면에서는 더욱 상세화 되었다. 그 자체로도, 도 11은 본 발명의 적어도 일 실시예에 따른 DVD-장치(1002)의 블록 다이어그램이다.
DVD 데이터를 디코딩하는 중간 포인트에서, ECC 엔진(1010)의 출력은 복조부(1008)에 의해 복조된 ECC 블록이 외부 메모리(1006)에 저장된 후 ECC 엔진(1010)으로 입력되어 PI-보정된 블록이다. 그러나 이하에서 더욱 상세하게 기재되는 바와 같이, ECC 엔진(1010)은 로우-바이-로우 베이시스(row-by-row basis)에 근거하여 PI-보정된 블록(1024)을 생성한다.
그러나, 설명을 단순화하기 위한 목적으로, ECC 엔진(1010)의 출력은 도 11에서 어레이 형태로 PI-보정된 블록(1024)으로 도시된다. ECC 엔진(1010)이 PI-보 정된 블록(1024)을 생성하도록 동작하는 로우-바이-로우 방식은 로우(i) 다음의 브래킷을 경유하여 도시된다.
또한, 도 11은 N 로우들과 M 칼럼들, 예를 들어, N=16 및 M=182를 가진 어레이로 취급되는 PO-신드롬 데이터(1022)(내부 메모리(1012) 내)를 도시한다. 이하에서 더 상세히 논의되는 바와 같이, ECC 엔진(1010)에 의해 생성된 PI-보정된 블록(1024)의 각각의 로우(i)에 대해, PO-신드롬 발생부(1016)는 PO-신드롬 데이터의 모든 N-로우들을 반복하여 발생한다.
따라서, 이러한 각각의 반복에 대해서, PO-신드롬 발생부(1016)는 PI-보정된 블록(1024)의 한 로우와 PO-신드롬 데이터(1022)의 이전에 반복되어 발생된 모든 N-로우들을 수신한다(이 또한 이하에서 더욱 상세히 논의된다).
도 12는 본 발명의 적어도 일 실시에에 따른 PO-신드롬 발생부(1016)의 더욱 상세한 블록 다이어그램이다. 도 12는 도 11과 비교하여 어떤 면에서 단순화되었으며, 어떤 면에서는 더욱 상세화되었다.
도 12에서, PO-신드롬 발생부(1016)는, 곱셈부들의 뱅크(401), 시프트 레지스터들의 뱅트(403), 및 덧셈부들의 뱅트(405)를 구비하는 것으로 도시된다.
뱅크(401)는, 일련의 계수들을 갖는 PI-보정된 블록(1024)의 로우(i)를 곱하는, 예를 들어 PI-보정된 블록(1024)의 로우(i)에 대해 갈로아(Galois) 필드 곱셈을 수행하는 곱셈부들(402g1, 402g2, 402g3, ㅇ, 402g(N))을 구비한다. 각각의 곱셈부(402g(j))는 PI-보정된 블록(1024)의 로우(i)와 계수 g(j), 예를 들어 갈로아 필드 계수를 수신한다.
뱅크(403)는, PO-신드롬 데이터(1022)의 다음 버전(k)이 순환적으로 계산되는 동안 PO-신드롬 데이터(1022)의 이전 버전(k-1)을 유지하는 시프트 레지스터들(404r1, 404r2, 404r3, ㅇ, 404r(N))을 구비한다. 이러한 순환적 계산은 덧셈부들(406r1, 406r2, 406r3, ㅇ, 406r(N))의 뱅크(405)에 의해 수행될 수 있다.
더욱 상세하게, 덧셈부(406r(j))는 곱셈부(402g(j))에 의해 생성된 곱과 시프트 레지스터(404r(j))로부터의 row_(j)(k-1)를 수신하고, 그들을 합하여(또는, 즉, 그들을 축적하여) row_(j)(k)를 생성한다.
도 13은 본 발명의 적어도 일 실시예에 따른 도 10의 구성요소들 간의 예시적인 상호작용의 형식으로 DVD-포맷 데이터를 디코딩하는 방법을 도시한 UML-타입 시퀀스 다이어그램이다.
메시지(1300)에서, 복조부(1008)은 DVD 장치(1000)로부터의 ECC 데이터의 블록을 판독하고 복조하고, 재배열한 후 복조된 ECC 블록을 외부 메모리 (1006)에 저장한다. 그 후, 루프(1301)로 들어간다. 복조된 ECC 블록이 로우들과 칼럼들의 어레이로 취급되는 것을 상기하면, 외부 메모리(1006) 내의 복조된 ECC블록의 row(i)는 ECC 엔진(1010)에 의해 판독된다.(메시지 (1302))
셀프-메시지(1304)에서, ECC 블록(PI-신드롬 발생부(1014)를 경유)은, 필요하다면, 복조된 ECC 블록의 로우(i)를 PI-보정한다. PI-에러들은 복조된 ECC 블록 내에서 제 1 레벨이다. 반면에, PO-에러들은 제 2 레벨이며 보정할 수 없는 에러들은 제 3 레벨이다.
메시지(1304)에서 PI-보정이 필요할 가능성이 높다. 따라서, PI-보정이 필요 하지 않은 하나 이상의 로우들이 있을 수 있음에도 불구하고, 도 11의 블록(1024)는 PI-보정된 데이터라고 레이블링된다.
ECC 엔진(1010)의 라이프 라인(1011) 상의 각각의 메시지의 시점을 연결하는 점선(1307)에 의해 지시되는 바와 같이, 두 개의 메시지들(1306A, 1306B)은 실질적으로 동시에 발생할 수 있다.
메시지(1306A)에서, ECC 엔진은 PI-보정된 로우(i)를 PO-신드롬 발생부(1016)에 제공한다. 로우(i)의 PI-보정이 수행되었다면, 로우(i) ECC 엔진 (1010)은 보정되지 않은 로우(i)를 PI-보정된 로우(i)로 외부 메모리(1006)에서 실질적으로 동시에 중복 기입한다.(메시지(1306B))
도 4에 도시된 바와 같이, 셀프-메시지(1308)에서 PO-신드롬 발생부(1016)는 순환적 갈로아 필드 곱셈과 축적(accumulation)을 수행한다. 메시지(1310)에서, PO-신드롬 발생부(1016)(덧셈부들(406r(j))의 뱅크(405) 경유)는 PO-신드롬 데이터(1022)의 버전(k-1)의 모든 N 로우들을 PO-신드롬 데이터(1022)의 버전(k)으로 중복 기입한다.
셀프-메시지(1312)에서, PO-신드롬 발생부(1016)는 카운터 i를 증가시키는데, 예를 들어 i=1+1이다. 만약, i=N+1이면, 루프 (1301)는 빠져나온다. 즉, 루프(1301)는 PO-신드롬 데이터가 발생되는 것에 의해 순환적 계산을 표현한다.
메시지(1314)에서, PO-결정 로직(1018)은 내부 메모리(1012)로부터 PO-신드롬 데이터(1022)의 버전(k=N)을 판독한다. 셀프 메시지(1316)에서, PO-결정 로직(1018)은 PO-신드롬 데이터(1022)에 영향을 미쳐서 PI-보정된 블록(1024) 내에 남 아있는 에러들을 판단한다.
PO-신드롬 데이터(1022)를 다시 로우들과 칼럼들의 어레이로 취급함으로써, PO-결정 로직(1018)은 PO-신드롬 데이터(1022)의 컬럼 방향 검토(column-wise inspection)를 수행할 수 있다. 만약 임의의 칼럼이 0이 아닌 수치를 가진다면, PI-보정된 블록(1024)의 해당 칼럼 내의 하나 이상의 에러의 존재를 나타낸다. 그러한 인스펙션은 칼럼 내의 수치들의 단순한 논리합일 수 있으며, 여기서 0이 아닌 결과는 잘못된 칼럼을 나타낸다.
메시지(1318)에서, PO-결정 로직(1018)은 ECC 엔진(1010)에 PO-신드롬 데이터(1022) 내의 에러를 나타내는 칼럼들의 인디케이션을 제공한다. 그러한 인디케이션은 1×N 매트릭스 또는 N 비트 워드일 수 있고, 여기서 각각의 매트릭스의 엘리먼트나 워드의 비트는 PI-보정된 블록(1024)의 칼럼을 나타낸다. 매트릭스 또는 워드 내의 0이 아닌 엘리먼트 또는 비트는 PI-보정된 블록(1024) 내의 잘못된 칼럼을 나타낼 수 있다.
메시지(1320)에서, ECC 엔진(1010)은 내부 메모리 (1012)에 PO-신드롬 데이터 (1022)의 잘못된 칼럼들을 판독하도록 요청한다. 메시지(1322)에서, 내부 메모리(1012)는 요청된 PO-신드롬 칼럼 데이터를 ECC 엔진(1010)에 공급한다.
셀프-메시지(1324)에서, ECC 엔진(1010)은 선택된 PO-신드롬 칼럼 데이터에 영향을 끼쳐서 PI-보정된 블록 내의 해당하는 잘못된 칼럼들을 식별한다. 더욱 상세하게는, ECC 엔진(1010)은 PI-보정된 블록(1024) 내의, 보정 가능한 에러들의 위치, 및 보정 수치들에 대한 차이들의 크기를 결정한다.
메시지(1326)에서, ECC 엔진(1010)은 외부 메모리(1006)에 셀프-메시지(1324)를 경유하여 식별된 PI-보정된 블록(1024) 내의 위치들을 판독하도록 요청한다. 메시지(1328)에서, 외부 메모리(1006)는 요청된 보정 가능한 데이터를 ECC 엔진(1010)에 제공한다.
셀프-메시지(1330)에서, ECC 엔진(1010)은 보정 가능한 데이터를 PO-보정한다. 다시 말해서, 셀프-메시지(1330)에서, ECC 엔진(1010)은 메시지(1300)에서 얻어진 복조된 ECC 블록의 디코딩된 버전을 얻기 위하여 잘못된 PI-보정된 칼럼들만을 선택적으로 보정한다. 그 결과, PI-보정된 블록(1024) 내의 모든 칼럼들보다 적은 수의 칼럼들에 PO-보정이 수행된다.
메시지(1332)에서, ECC 엔진은 PI-보정된 블록(1024) 내의 보정 가능한 데이터를 대응되는 PO-보정된 데이터로 중복기재한다. 메시지(1332) 이후, 외부 메모리(1006)는 메시지(1300)에서 획득된 복조된 ECC 블록의 디코딩된 버전을 저장한다.
종래 기술에 따른 ECC 엔진 디코더는 PO-신드롬 발생과 PO-보정을 병렬적으로(2 블록/사이클의 속도로) 수행하는 것으로 기술될 수 있는 한편, DVD-장치(1002)가 PO-보정을 연속하여 수행하는 것으로(1 블록/사이클의 속도로) 기술될 수 있다(적어도, 하나의 ECC 엔진의 사용으로 주어지는).
ECC 디코더(1004)의 디코딩 속도는 보정될 필요가 있는 PO-에러들의 수에 의존한다. 따라서, 0 만큼 적은 PO-에러들이 존재하거나 또는 182 만큼이나 많이 존재할 수 있다.
통상적으로 존재하는 PO-에러들의 수는 종래기술에 따른 이중 ECC 엔진 디코더 보다 대략 10% 느린 디코딩 속도를 의미한다. ECC 디코더(1004)의 면적의 절약은 종래기술에 따른 이중 ECC 엔진 디코더와 비교하여 상당한 이점이며, 이러한 이점은 10% 느린 디코딩 속도에 의해 단지 약간 감소된다.
하나 적은 ECC 엔진을 필요로 하는 것 이외에도, PO-결정 로직(1018)의 사용은 종래기술에 따른 이중 ECC 엔진 디코더에 따른 내부 메모리 사이즈(예를 들어, 6k 바이트)와 비교하여 ECC 디코더(1004)가 감소된 내부 메모리(1012) 사이즈(예를 들어, 3k 바이트)와 함께 동작되는 것이 가능하도록 한다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다.
그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법은 에러 보정을 위한 엔진을 1개만을 사용하고 내부 메모리의 크기를 줄임으로써 디지털 비디오 디스크 디코딩 장치의 크기를 줄일 수 있는 장점이 있 다. 또한 에러에 대응되는 라인만 PO 에러 보정을 수행함으로써 전력 소비도 줄일 수 있는 장점이 있다.

Claims (43)

  1. 데이터에 대하여 PI(Parity Inner) 에러 보정 및 PO(Parity Outer) 에러 보정을 수행하여 호스트로 출력하는 디지털 비디오 디스크 디코딩 장치에 있어서,
    상기 데이터에 대하여 PI 에러 보정을 수행하고 PO 테스트 신드롬 (Syndrome)들을 수신하여 PO 에러 보정을 수행하는 에러 보정 코드(Error Correction Code) 엔진 ;
    상기 에러 보정 코드 엔진에서 출력되는 상기 PI 보정 데이터에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 상기 PO 신드롬들을 출력하는 PO 신드롬 발생부 ; 및
    상기 PO 신드롬들을 저장하고 상기 PO 신드롬들 중 0이 아닌 PO 신드롬들을 상기 PO 테스트 신드롬들로서 출력하는 메모리부를 구비하는 것을 특징으로 하는 디지털 비디오 디스크 디코딩 장치.
  2. 제 1항에 있어서, 상기 메모리부는,
    상기 PO 신드롬들을 저장하고 PO 신드롬 어드레스에 대응되는 PO 신드롬들을 상기 PO 테스트 신드롬들로서 상기 에러 보정 코드 엔진으로 출력하는 제 1 메모리 ;
    상기 제 1 메모리의 각각의 어드레스에 대응되는 상기 PO 신드롬들 중 하나라도 0 이 아닌 PO 신드롬이 존재하면 검출 신호를 제 1 레벨로 발생하고 그렇지 아니하면 상기 검출 신호를 제 2 레벨로 발생하는 검출부 ; 및
    제 1 레벨로 발생되는 상기 검출 신호에 대응되는 상기 제 1 메모리의 어드레스를 상기 PO 신드롬 어드레스로서 출력하는 어드레스 발생부를 구비하는 것을 특징으로 하는 디지털 비디오 디스크 디코딩 장치.
  3. 제 2항에 있어서, 상기 검출부는,
    상기 제 1 메모리의 상기 어드레스에 대응되는 상기 PO 신드롬들에 응답하여 상기 검출 신호를 발생하는 검출 로직 ; 및
    상기 검출 신호를 저장하는 182 비트의 플립플롭을 구비하는 것을 특징으로 하는 디지털 비디오 디스크 디코딩 장치.
  4. 제 3항에 있어서,
    외부에서 입력되는 상기 데이터 또는 상기 PI 보정 데이터를 상기 에러 보정 코드 엔진으로 인가하고, 상기 에러 보정 코드 엔진으로부터 상기 PI 보정 데이터 또는 상기 PO 에러 보정이 수행된 PO 보정 데이터를 수신하여 저장하며 상기 외부 호스트로 상기 PO 보정 데이터를 출력하는 외부 메모리를 더 구비하는 것을 특징으로 하는 디지털 비디오 디스크 디코딩 장치.
  5. 데이터에 대하여 PI(Parity Inner) 에러 보정 및 PO(Parity Outer) 에러 보정을 수행하여 호스트로 출력하는 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법에 있어서,
    상기 데이터에 대하여 PI 에러 보정을 수행하는 단계 ;
    상기 PI 에러 보정이 수행된 PI 보정 데이터에 대하여 칼럼(column) 방향으로 PO 신드롬 연산을 수행하여 PO 신드롬들을 출력하는 단계 ;
    상기 PO 신드롬들 중 0이 아닌 PO 신드롬들을 판단하는 단계 ;
    상기 0이 아닌 PO 신드롬들에 대하여 PO 에러 보정을 수행하는 단계 ; 및
    상기 PO 에러 보정이 수행된 PO 보정 데이터를 상기 호스트로 출력하는 단계를 구비하는 것을 특징으로 하는 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법.
  6. 제 5항에 있어서, 상기 0이 아닌 PO 신드롬들을 판단하는 단계는,
    상기 PI 보정 데이터의 동일한 칼럼에 대하여 상기 PO 신드롬 연산을 수행하여 얻어진 상기 PO 신드롬들을 각각의 어드레스에 대응시키는 단계 ;
    각각의 어드레스에 대응되는 상기 PO 신드롬들 중 하나라도 0 이 아닌 PO 신드롬이 존재하면 검출 신호를 제 1 레벨로 발생하고 그렇지 아니하면 상기 검출 신호를 제 2 레벨로 발생하는 단계 ;
    제 1 레벨로 발생되는 상기 검출 신호에 대응되는 상기 어드레스를 PO 신드롬 어드레스로서 출력하는 단계 ; 및
    상기 PO 신드롬 어드레스에 대응되는 상기 어드레스의 PO 신드롬들을 출력하는 단계를 구비하는 것을 특징으로 하는 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법.
  7. 제 6항에 있어서, 상기 PI 에러 보정을 수행하는 단계 및 PO 신드롬들을 출력하는 단계는 파이프라인(pipeline) 방식에 의하여 수행되는 것을 특징으로 하는 디지털 비디오 디스크 디코딩 장치의 에러 보정 방법.
  8. DVD-포맷 데이터의 복조된 ECC 블록을 수신하는 단계;
    상기 복조된 ECC 블록을 선택적으로 PI-보정하기 위해서 ECC 엔진을 사용하는 단계; 및
    모든 상기 PI-보정된 블록 미만으로 선택적으로 PO-보정하기 위해서 상기 ECC 엔진을 사용하는 단계를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  9. 제 8 항에 있어서, 상기 PO-보정하는 단계는,
    하나 이상의 에러를 나타내는 상기 PI-보정된 블록 내의 칼럼들만을 PO-보정하는 단계를 구비하는 것을 특징으로 하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  10. 제 8 항에 있어서, 상기 PO-보정하기 위해서 ECC 엔진을 사용하는 단계는,
    상기 PI-보정된 블록에 기초하여 PO 신드롬을 생성하는 단계, 및
    상기 PO 신드롬에 기초하여 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하는 단계를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  11. 제 10 항에 있어서,
    상기 PI-보정하기 위해서 ECC 엔진을 사용하는 단계는,
    상기 PI-보정된 블록을 로우들과 칼럼들의 어레이로서 취급하는 단계;
    로우-바이-로우 베이시스에 근거하여 선택적으로 PI-보정하는 단계; 및
    PI-보정을 필요로 하는 전체 복조된 ECC 블록의 부분들을 PI-보정하기 위해서 상기 PI-보정 단계를 반복하는 단계를 구비하고,
    상기 PO-보정하기 위해서 ECC 엔진을 사용하는 단계는,
    상기 복조된 ECC 블록에서의 PI-보정이 필요없다면, 생성된 PI-보정된 데이터의 각각의 로우 또는 상기 복조된 ECC 블록의 해당 로우에 대한 상기 PO-신드롬을 연속적으로 수정하기 위해서 상기 PO-신드롬을 생성하는 단계를 반복하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  12. DVD-포맷 데이터의 복조된 ECC 블록을 저장하는 외부 메모리;
    상기 복조된 ECC 블록을 선택적으로 PI-보정하도록 동작 가능한 ECC엔진 ; 및
    상기 ECC 엔진이 상기 PI-보정된 모든 블록 미만으로 선택적으로 PO-보정하도록 하는 PO 결정 로직을 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  13. 제 12 항에 있어서,
    상기 PO 결정 로직은 하나 이상의 에러를 나타내는 상기 PI-보정된 블록 내의 칼럼들만을 선택적으로 PO-보정하도록 추가로 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  14. 제 12 항에 있어서, 상기 PO 결정 로직은,
    상기 PI-보정된 블록에 기초하여 PO 신드롬을 생성하며,
    상기 PO 신드롬에 기초하여 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하도록 추가로 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  15. 제 14 항에 있어서,
    상기 ECC 엔진인 로우-바이-로우 베이시스에 근거하여 선택적으로 PI-보정하도록 더 동작 가능하며,
    상기 PO 결정 로직은 상기 복조된 ECC 블록에서의 PI-보정이 필요없다면 상기 ECC 엔진에 의해 생성된 PI-보정된 데이터의 각각의 로우 또는 상기 복조된 ECC 블록의 해당 로우에 대해서 연속적으로 PO-신드롬을 수정하도록 반복적으로 PO-신 드롬을 생성하도록 더 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  16. DVD(digital versatile disk)-포맷 데이터의 복조된 에러 보정 코드(error correction code: ECC) 블록을 수신하는 단계 ;
    상기 복조된 ECC 블록을 선택적으로 패리티 내부 코드 보정(parity-of-inner-code-correcting: PI-보정)하는 단계;
    패리티 외부 코드 보정(parity-of-outer-code-correcting: PO-보정)되는 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하는 단계; 및
    상기 잘못된 PI-보정된 칼럼들만을 선택적으로 PO-보정하여 ECC 블록의 디코딩된 버전을 획득하는 단계를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  17. 제 16항에 있어서, 상기 선택적으로 PO-보정하는 단계는,
    모든 PI-보정된 블록 미만으로 PO-보정되는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  18. 제 16항에 있어서, 상기 PI-보정하는 단계는,
    로우-바이-로우 베이시스(row-by-row basis)에 근거하여 선택적으로 보정하며,
    상기 복조된 ECC 블록을 로우들과 칼럼들의 어레이로서 취급하는 단계; 및
    PI-보정을 필요로 하는 전체 복조된 ECC 블록의 부분들을 PI-보정하기 위해서 상기 PI-보정 단계를 반복하는 단계를 더 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  19. 제 18 항에 있어서,
    PI-보정된 로우가 생성되면, 상기 복조된 ECC 블록의 해당 데이터를 상기 PI-보정된 로우의 데이터로 중복기입(overwrite)하는 단계를 더 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  20. 제 16 항에 있어서, 상기 임의의 잘못된 칼럼을 식별하는 단계는,
    상기 PI-보정된 블록을 로우들과 칼럼들의 어레이로 취급하는 단계;
    상기 PI-보정된 블록에 기초하여 PO-신드롬을 생성하는 단계; 및
    상기 PO-신드롬에 기초하여 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하는 단계를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  21. 제 20 항에 있어서, 상기 PI-보정 단계는,
    로우-바이-로우 베이시스에 근거하여 선택적 보정을 하며,
    상기 복조된 ECC 블록을 로우들과 칼럼들의 어레이로써 취급하는 단계;
    PI-보정을 필요로 하는 전체 복조된 ECC 블록의 부분들을 PI-보정하기 위해 서 상기 PI-보정하는 단계를 반복하는 단계; 및
    상기 복조된 ECC 블록에서의 PI-보정이 필요없다면, 생성된 PI-보정된 데이터의 각각의 로우 또는 상기 복조된 ECC 블록의 해당 로우에 대한 상기 PO-신드롬을 연속적으로 수정하기 위해서 상기 PO-신드롬을 생성하는 단계를 반복하는 단계를 더 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  22. 제 21 항에 있어서,
    PI-보정된 로우가 생성되면, 상기 복조된 ECC 블록의 해당 데이터를 상기 PI-보정된 로우의 상기 데이터로 중복기입하는 단계를 더 구비하며,
    상기 PO-신드롬을 생성하는 단계는 상기 중복기입이 발생하는 것과 실질적으로 동시에 반복되는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  23. 제 20항에 있어서,
    상기 복조된 ECC 블록을 로우들과 칼럼들의 어레이로써 취급하는 단계; 및
    PO 신드롬의 버전(v(0))의 값들을 초기화하는 단계를 더 구비하고,
    상기 PI-보정하는 단계와 상기 PO-신드롬을 생성하는 단계는,
    i=1부터 i=N에 대해 로우 바이 로우 베이시스에 따라서 반복적으로 수행함으로써 동시에 수행되며,
    상기 PI-보정하는 단계와 상기 PO-신드롬을 생성하는 단계는,
    보정된 PI 데이터(PI_CORR_row(i))를 생성하기 위해서 상기 복조된 ECC 블록 의 로우(row(i))를 PI-보정하는 단계; 및
    PI 보정된 라인(PI_CORR_line(i))과 PO-신드롬의 이전 버전(PO_신드롬_v(k-1))의 함수로서 PO-신드롬의 k번째 버전(PO_syndrome_v(k))를 형성하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  24. 제 20 항에 있어서, 상기 PO-신드롬을 생성하는 단계를 k번째 반복하는 단계는,
    상기 PI-보정된 블록의 i번째 로우와 일련의 계수들을 곱하여 곱을 생성하는 단계; 및
    상기 곱을 PO-신드롬(PO-syndrome_v(k-1))에 더하여 순환적으로 PO-신드롬(PO-syndrome_v(k))를 형성하는 단계를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  25. 제 24 항에 있어서,
    상기 일련의 계수들은 갈로아-필드 계수들(Galois-field coefficients)이고 상기 곱은 갈로아-필드 곱인 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  26. 제 20항에 있어서,
    상기 PI-보정된 데이터의 어레이 내의 각각의 로우에 대해서 상기 PO-신드롬을 연속적으로 수정하기 위해서 상기 PO-신드롬을 생성하는 단계를 반복하는 단계 를 더 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  27. 제 20 항에 있어서, 상기 PO-신드롬을 생성하는 단계를 i번째 반복하는 단계는,
    상기 PI-보정된 블록의 i번째 로우와 일련의 계수들을 곱하여 곱을 생성하는 단계; 및
    상기 곱을 상기 PO-신드롬의 이전 버전(v(k-1))에 더하여 순환적으로 PO-신드롬의 버전(v(k))을 형성하는 단계를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  28. 제 27 항에 있어서,
    상기 일련의 계수들은 갈로아-필드 계수들(Galois-field coefficients)이고 상기 곱은 갈로아-필드 곱인 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  29. 제 20 항에 있어서,
    상기 PO-신드롬을 로우들과 칼럼들의 어레이로써 취급하는 단계를 더 구비하고,
    상기 식별하는 단계는,
    상기 PO-신드롬 내에 임의의 0이 아닌 칼럼들이 있는지 여부를 판단하는 단계로서, 상기 0이 아닌 칼럼은 하나 이상의 0이 아닌 엔트리들을 가지는 단계; 및
    상기 PO-신드롬 내의 0이 아닌 칼럼에 대응하는 상기 PI-보정된 블록 내의 임의의 칼럼으로 잘못된 칼럼으로 취급하는 단계를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 방법.
  30. DVD-포맷 데이터의 복조된 ECC 블록이 저장된 외부 메모리;
    상기 복조된 ECC 블록을 선택적으로 PI-보정하는 ECC 엔진; 및
    PO-보정을 받아야하는 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하고, ECC 블록의 디코딩된 버전을 획득하기 위해서 상기 ECC 엔진이 상기 잘못된 PI-보정된 칼럼들만을 선택적으로 PO-보정하도록 하는 PO 결정(PO-decision) 로직을 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  31. 제 30 항에 있어서, 상기 PO 결정 로직은,
    상기 모든 PI-보정된 블록 미만으로 PO-보정되도록 더 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  32. 제 30 항에 있어서,
    상기 복조된 ECC 블록은 로우들과 칼럼들의 어레이로써 취급되며,
    상기 ECC 엔진은 로우-바이-로우 베이시스에 근거하여 반복적으로 선택적 PI-보정을 하도록 더 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  33. 제 32 항에 있어서,
    PI-보정된 로우가 생성된다면 상기 복조된 ECC 블록의 해당 데이터를 상기 PI-보정된 로우의 상기 데이터로 중복 기입하도록 더 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  34. 제 30 항에 있어서,
    내부 메모리를 더 구비하며,
    상기 ECC 엔진은 상기 PI-보정된 블록에 기초하여 PO-신드롬을 생성하고 상기 PO-신드롬을 상기 내부 메모리 내에 저장하도록 동작 가능한 PO-신드롬 발생부를 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  35. 제 34 항에 있어서,
    상기 ECC 엔진은 로우-바이-로우 베이시스에 근거하여 선택적으로 PI-보정하도록 더 동작 가능하며,
    상기 PO 신드롬 발생기는 상기 복조된 ECC 블록에서의 PI-보정이 필요없다면 상기 ECC 엔진에 의해 생성된 PI-보정된 데이터의 각각의 로우에 대해서 또는 상기 복조된 ECC 블록의 해당 로우에 대해서 상기 PO-신드롬을 연속적으로 보정하기 위해서 상기 PO-신드롬을 반복적으로 생성하도록 더 작동 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  36. 제 35 항에 있어서,
    상기 ECC 엔진은 PI-보정된 로우가 생성된다면 상기 복조된 ECC 블록의 해당 데이터를 상기 PI-보정된 로우의 데이터로 중복기입하도록 더 동작 가능하며,
    상기 PO 신드롬 발생기는 상기 중복기입이 발생하는 것과 실질적으로 동시에 상기 PO 신드롬의 발생을 반복하도록 더 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  37. 제 34항에 있어서,
    상기 복조된 ECC 블록은 로우들과 칼럼들의 배열로써 취급되고,
    상기 PO 신드롬 발생부는 PO 신드롬의 버전(v(0))의 값들을 초기화하도록 더 동작 가능하며,
    상기 ECC 엔진과 상기 PO 신드롬 발생부가 i=1부터 I=N에 대해 로우 바이 로우 베이시스에 따라서 반복적으로 수행하도록 더 협력하여 동작 가능하고(여기서, N은 상기 복조된 ECC 블록의 개수이다),
    상기 ECC 엔진은 상기 복조된 ECC 블록의 로우(row(i))를 PI-보정하여 보정된 PI 데이터(PI_CORR_row(i))를 선택적으로 생성하고,
    상기 PO 신드롬 발생부는 PO 신드롬(PO-syndrome_v(k-1)) 및 PI 보정된 라인(PI_CORR_line(i)), 또는 상기 복조된 ECC 블록에서의 PI-보정이 필요없다면 상기 복조된 ECC 블록의 해당 로우의 함수로써 k번째 PO-신드롬(PO_syndrome_v(k))을 형 성하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  38. 제 37 항에 있어서,
    i번째 반복에 대해서, 상기 신드롬 발생부는 상기 PI-보정된 블록의 i번째 로우를 일련의 계수들과 곱하여 곱을 생성하고,
    상기 곱을 PO-신드롬의 이전 버전(v(k-1))에 더함으로써 상기 PO-신드롬의 버전(v(k))를 반복적으로 형성하도록 더 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  39. 제 38 항에 있어서,
    상기 일련의 계수들은 갈로이스-필드 계수들이며 상기 곱은 갈로이스-필드 곱인 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  40. 제 34 항에 있어서, 상기 PO-신드롬 발생부는,
    i번째 반복이 상기 PI-보정된 블록의 i번째 로우를 일련의 계수들과 곱하여 곱을 생성하고, 상기 곱을 상기 PO-신드롬의 이전 버전(v(k-1))에 더함으로써 상기 PO-신드롬의 버전(v(k))를 반복적으로 형성하도록 함으로써,
    반복적으로 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  41. 제 40 항에 있어서,
    상기 일련의 계수들은 갈로이스-필드 계수들이며 상기 곱은 갈로이스-필드 곱인 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  42. 제 34 항에 있어서,
    상기 PO-신드롬은 로우들과 칼럼들의 어레이로써 취급되며,
    상기 PO-결정 로직은 상기 PO-신드롬 내에 임의의 하나 이상이 0이 아닌 엔트리들을 갖는 0이 아닌 칼럼들이 존재하는지 여부를 판단하고, 상기 PO-신드롬 내의 0이 아닌 칼럼에 대응하는 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼으로 취급하도록 더 동작 가능한 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
  43. DVD-포맷 데이터의 ECC 블록을 수신하는 수단;
    상기 복조된 ECC 블록을 선택적으로 PI-보정하는 수단;
    PO-보정을 받아야하는 상기 PI-보정된 블록 내의 임의의 잘못된 칼럼을 식별하는 수단; 및
    상기 잘못된 PI-보정된 칼럼들만을 선택적으로 PO-보정하여 ECC 블록의 디코딩된 버전을 획득하는 수단을 구비하는 것을 특징으로 하는 DVD-포맷 데이터 디코딩 장치.
KR1020050007986A 2004-01-31 2005-01-28 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법 KR100604934B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20040006466 2004-01-31
KR1020040006466 2004-01-31
US10/948,219 2004-09-24
US10/948,219 US7543218B2 (en) 2004-01-31 2004-09-24 DVD decoding method and apparatus using selective po-correction

Publications (2)

Publication Number Publication Date
KR20050078231A KR20050078231A (ko) 2005-08-04
KR100604934B1 true KR100604934B1 (ko) 2006-07-28

Family

ID=34889487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050007986A KR100604934B1 (ko) 2004-01-31 2005-01-28 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법

Country Status (3)

Country Link
JP (1) JP2005216477A (ko)
KR (1) KR100604934B1 (ko)
CN (1) CN1649019A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101298827B1 (ko) * 2008-12-31 2013-08-23 인텔 코포레이션 반도체 디스크 및 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009277298A (ja) * 2008-05-15 2009-11-26 Renesas Technology Corp ディジタル信号再生装置及び方法並びにディジタル信号記録装置及び方法
KR102023121B1 (ko) * 2014-10-31 2019-11-04 에스케이하이닉스 주식회사 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000165259A (ja) 1998-11-27 2000-06-16 Nec Corp データ復号処理装置および方法
KR20010083258A (ko) * 1999-12-09 2001-09-01 구자홍 디지털 데이터의 에러정정 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000165259A (ja) 1998-11-27 2000-06-16 Nec Corp データ復号処理装置および方法
KR20010083258A (ko) * 1999-12-09 2001-09-01 구자홍 디지털 데이터의 에러정정 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1020010083258 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101298827B1 (ko) * 2008-12-31 2013-08-23 인텔 코포레이션 반도체 디스크 및 시스템

Also Published As

Publication number Publication date
CN1649019A (zh) 2005-08-03
JP2005216477A (ja) 2005-08-11
KR20050078231A (ko) 2005-08-04

Similar Documents

Publication Publication Date Title
US6639865B2 (en) Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device
US6115837A (en) Dual-column syndrome generation for DVD error correction using an embedded DRAM
US7392456B2 (en) Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
KR100573356B1 (ko) 코드워드데이터를저장하기위한데이터버퍼와에러신드롬을저장하기위한신드롬버퍼를사용하는ecc시스템
US5659557A (en) Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping
US8069389B2 (en) Error correction circuit and method, and semiconductor memory device including the circuit
US6363511B1 (en) Device and method for decoding data streams from storage media
TWI308321B (ko)
US6279135B1 (en) On-the-fly row-syndrome generation for DVD controller ECC
US6041431A (en) Method and apparatus for performing error correction code operations
CN1779838B (zh) 执行可变数量的纠错重复的数字信号处理方法和装置
US7624330B2 (en) Unified memory architecture for recording applications
US20080250306A1 (en) Coding circuit for recording data on dvd disk
US20070050663A1 (en) Error correction apparatus for performing consecutive reading of multiple code words
KR100604934B1 (ko) 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법
US8181075B2 (en) Error correction device and recording and reproducing device
KR100566162B1 (ko) 버스트 동작에 의해 데이터 및 패리티 데이터를입출력하는 반도체 기억 장치
US6128760A (en) Method and apparatus for calculating a CRC remainder
JP3941305B2 (ja) 光ディスク装置及びデータ再生方法
US7797608B2 (en) Decoding device in optical disc drive and related decoding method thereof
US7823045B2 (en) Error correction apparatus and method thereof
JP4386615B2 (ja) データ処理装置
KR100361947B1 (ko) 디스크 재생 장치에 적용되는 에러 검출 회로
KR100215807B1 (ko) 디지탈 신호의 에러 정정 장치 및 방법
CN117349077A (zh) 面向FPGA平台的NAND Flash BCH纠检错模块

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee