KR100294893B1 - 개선된 dc 억압 능력을 갖는 rll 코드 생성 방법 과 생성된 rll 코드 변복조 방법 - Google Patents

개선된 dc 억압 능력을 갖는 rll 코드 생성 방법 과 생성된 rll 코드 변복조 방법 Download PDF

Info

Publication number
KR100294893B1
KR100294893B1 KR1019990007723A KR19990007723A KR100294893B1 KR 100294893 B1 KR100294893 B1 KR 100294893B1 KR 1019990007723 A KR1019990007723 A KR 1019990007723A KR 19990007723 A KR19990007723 A KR 19990007723A KR 100294893 B1 KR100294893 B1 KR 100294893B1
Authority
KR
South Korea
Prior art keywords
codeword
code group
codewords
group
code
Prior art date
Application number
KR1019990007723A
Other languages
English (en)
Other versions
KR20000059841A (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
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR1019990007723A priority Critical patent/KR100294893B1/ko
Priority to US09/522,446 priority patent/US6268810B1/en
Priority to JP2000065488A priority patent/JP3466130B2/ja
Priority to EP00301935A priority patent/EP1037389A3/en
Priority to CNB001070266A priority patent/CN1183541C/zh
Publication of KR20000059841A publication Critical patent/KR20000059841A/ko
Application granted granted Critical
Publication of KR100294893B1 publication Critical patent/KR100294893B1/ko

Links

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/14Digital recording or reproducing using self-clocking codes
    • 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/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명에는 개선된 DC 억압 능력을 갖는 RLL 코드 생성 방법과 생성된 RLL 코드 변복조 방법이 개시되어 있다. 본 발명은 (d,k) 런길이 조건에 맞는 코드워드를 생성하는 단계, 생성된 코드워드의 리드 제로수(LZ)에 따라 중복 코드워드를 가지며 각 코드그룹의 코드워드들은 서로 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV(Digital Sum Value) 천이 방향을 예측하는 파라미터(INV)의 부호를 반대가 되도록 배치된 복수개의 주코드 그룹, 중복 코드워드의 복호를 제어하는 복수개의 결정 코드 그룹과 주코드 그룹내의 코드워드들로 구성된 하나 이상의 보조 코드 그룹 중 하나를 결정해서 각 코드 그룹을 구성하는 단계 및 생성된 코드워드의 엔드 제로수(EZ)를 체크하여 코드워드 스트림의 DC 제어에 적합한 생성된 코드워드에 다음에 올 수 있는 다음 코드 그룹을 결정하는 단계를 포함하여, DC 억압을 위한 보조 코드 그룹내의 코드워드를 주코드 그룹에서 이미 사용되고 있는 코드워드 일부를 그대로 이용하고, 주코드 그룹의 코드워드의 특성(CSV 및 INV 파라미터)을 최대로 이용하여 주코드 그룹을 생성함으로서, 코드워드의 비트수를 줄여 기록 밀도는 향상시키면서도 DC 억압 능력은 증가시킨다.

Description

개선된 DC 억압 능력을 갖는 RLL 코드 생성 방법과 생성된 RLL 코드 변복조 방법{Method for generating RLL code having enhanced DC suppression capability, and modulation method and demodulation method of the generated RLL code}
본 발명은 광디스크 기록 및/또는 재생 분야에 관한 것으로, 특히 적은 비트수를 갖는 코드워드를 이용하면서도 효과적으로 코드워드 스트림의 DC 성분을 억압하는 RLL(Run Length Limited) 코드 생성 방법과 고밀도 기록 및/또는 재생을 요구하는 광디스크 기록 및/또는 재생 장치에서 유용한 RLL 코드의 변복조 방법에 관한 것이다.
광디스크 기록 및/또는 재생 장치에서 원래의 정보를 광디스크에 적합한 신호로 변환하는 변조와 광디스크로부터 재생된 신호를 원래의 정보로 복원하는 복조시 널리 사용되는 코드는 (d,k,m,n)로 표현되는 RLL 코드이다.
(d,k,m,n)로 표현되는 RLL 코드에서 데이터의 주 변환을 도 1a에 도시된 주 변환표를 이용하여 수행하며, 도 1a와 도 1b에 도시된 주/보조 변환표내의 제1 및제4 코드 그룹은 코드워드내의 리드 제로((Lead Zero:LZ)수로 배타적으로 분리하고 있으며, 제2 및 제3 코드 그룹은 코드워드들의 특정 비트를 참조하여 '1'인지 또는 '0'인지를 판별하여 역시 배타적으로 분리하고 있다. 즉, 제1 및 제4 코드 그룹에는 서로 동일한 코드워드가 존재하지 않으며, 제2 코드 그룹과 제3 코드 그룹에도 서로 동일한 코드워드가 존재하지 않는다. 도 1a 및 도 1b에 도시된 주/보조 변환표는 미합중국 특허 번호 5,790,056호의 'Method of converting a series of M-bit information words to a modulated signal, method of producing a record carrier, coding device, device, recording device, signal, as well as a recorded carrier'에 개시되어 있다.
런 길이(run length)는 코드 그룹내의 코드워드들이 다음 코드 그룹을 지정하여 (d,k) 조건을 위반하지 않도록 하는 (d,k)-constraint 방식을 이용하고 있고, 도 1b에 도시된 보조 변환표는 87 이하의 데이터가 입력되었을 때 코드워드 스트림의 DC 억압을 수행할 수 있도록 하고 있으며, 보조 변환표내의 코드 그룹내의 코드워드들은 주 변환표에는 없는 코드들로 배치하고 있고, 코드워드내의 DC값을 나타내는 파라미터인 CSV(Codeword Sum Value)의 부호(sign)는 주 변환표의 코드워드와 반대인 코드워드들로 배치하여 DC 성분의 억압이 이루어지도록 하고 있다.
그러나, 도 1a 및 도 1b에 도시된 주 변환표 및 보조 변환표에서 제1 및 제4 코드 그룹에서 런 길이를 위반하지 않으면 DC 억압에 유리한 코드 그룹을 선택할 수 있으나 제1 및 제4 코드 그룹에 속해 있는 코드워드들의 CSV의 부호 및 본 발명에서 제안하는 코드워드내에서 1의 개수가 홀수 또는 짝수인지를 판별하여 다음 코드워드의 DSV 천이 방향을 예측하는 파라미터(INV)의 부호를 고려하여 서로 반대로 배치되어 있지는 않아 도 1a 및 도 1b에 도시된 종래의 코드(2,10,8,16)처럼 8비트 데이터를 16비트의 코드워드가 아닌 15비트의 코드워드로 변환하기 위한 코드 변환표를 생성하고자 할 때는 적합하지 않다.
또한, 87 이하인 데이터에 대해서는 주 변환표와 보조 변환표 모두에서 코드워드를 선택할 수 있고, CSV의 부호가 반대로 배치되어 코드워드 스트림의 DC 성분을 억압할 수 있도록 하고 있다. 하지만, 보조 변환표내의 코드워드들은 주 변환표에는 없는 새로운 코드워들로 구성되어 있어서 결국은 보조 변환표내의 코드워드 수만큼 많은 코드워드들이 필요하게 되었고 이러한 이유로 코드워드의 비트수를 줄이는 데 제약이 되었다.
그리고, 보조 변환표내의 코드워드들은 주 변환표의 코드워드들과 비교하여 코드워드 특성 파라미터의 하나인 CSV의 부호는 반대로 배치되어 있으나 본 발명에서 제안하는 코드워드 특성 파라미터인 INV의 부호는 반대로 되어 있지는 않아 소정의 룩어헤드 방식으로 수행하는 DSV 제어에서 코드워드 수가 적은 변조 코드를 이용하는 경우 DC 억압 가능성을 최대한 발휘하지는 못하고 있다.
따라서, 본 발명의 목적은 DC 억압을 위한 보조 변환표에 사용되는 코드워드를 주 변환표에서 이미 사용되고 있는 코드워드 일부를 그대로 이용하고, 주 변환표의 코드워드의 특성 파라미터인 CSV와 INV를 최대한 이용하여 주 변환표를 만듦으로서 적은 비트수를 갖는 코드워드를 이용하면서도 효과적으로 코드워드 스트림의 DC 성분을 억압하는 RLL 코드 생성 방법을 제공하는 데 있다.
본 발명의 다른 목적은 개선된 DC 억압 효과를 갖는 RLL 코드를 이용하여 변조하는 변조 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은 개선된 DC 억압 효과를 갖는 RLL 코드를 이용하여 변조된 코드워드 스트림을 원래의 코드로 복조하는 복조 방법을 제공하는 데 있다.
상기의 목적을 달성하기 위하여, 본 발명에 의한 RLL 코드 생성 방법은 최소 런 길이(d), 최대 런 길이(k), 데이터 비트 길이(m), 코드워드 비트 길이(n)를 나타내는 (d,k,m,n)으로 표현되는 RLL(Run Length Limited) 코드를 생성하는 방법에 있어서: (d,k) 런길이 조건에 맞는 코드워드를 생성하는 단계; 생성된 코드워드의 리드 제로수(LZ)에 따라 중복 코드워드를 가지며 각 코드그룹의 코드워드들은 서로 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV(Digital Sum Value) 천이 방향을 예측하는 파라미터(INV)의 부호를 반대가 되도록 배치된 복수개의 주코드 그룹, 중복 코드워드의 복호를 제어하는 복수개의 결정 코드 그룹과 주코드 그룹내의 코드워드들로 구성된 하나 이상의 보조 코드 그룹 중 하나를 결정해서 각 코드 그룹을 구성하는 단계; 및 생성된 코드워드의 엔드 제로수(EZ)를 체크하여 코드워드 스트림의 DC 제어에 적합한 생성된 코드워드에 다음에 올 수 있는 다음 코드 그룹을 결정하는 단계를 포함함을 특징으로 하고 있다.
상기의 다른 목적을 달성하기 위하여, 본 발명에 의한 RLL 코드 변조 방법은 광디스크 기록 및/또는 재생 장치에 입력되는 데이터를, 중복 코드워드를 가지며, 각 코드그룹의 코드워드들은 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음코드워드의 DSV(Digital Sum Value) 천이 방향을 예측하는 파라미터(INV)의 부호를 서로 반대가 되도록 배치된 제1 및 제2 주코드 그룹, 중복 코드워드의 복호를 제어하는 제1 및 제2 결정 코드 그룹, 제1 주코드 그룹내의 코드워드들로 구성된 하나 이상의 보조 코드 그룹 중 어느 한 코드 그룹의 코드워드를 선택하여 최소 런 길이(d), 최대 런 길이(k), 데이터 비트 길이(m), 코드워드 비트 길이(n)를 나타내는 (d,k,m,n)으로 표현되는 RLL(Run Length Limited) 코드를 변조하는 방법에 있어서: 이전 코드워드가 지정하는 다음 코드 그룹을 어느 한 코드 그룹으로 초기화하는 단계, 바이트 단위로 데이터를 입력하는 단계 및 입력된 데이터에 대응하는 코드워드를 이전 코드워드가 지정하는 다음 코드 그룹에서 선택하고, 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하는 단계를 포함함을 특징으로 하고 있다.
상기의 또 다른 목적을 달성하기 위하여, 본 발명에 의한 RLL 코드 복조 방법은 중복 코드워드를 가지며, 각 코드그룹의 코드워드들은 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV(Digital Sum Value) 천이 방향을 예측하는 파라미터(INV)의 부호를 서로 반대가 되도록 배치된 제1 및 제2 주코드 그룹, 중복 코드워드의 복호를 제어하는 제1 및 제2 결정 코드 그룹, 제1 주코드 그룹의 코드워드들로 구성된 보조 코드 그룹 중 어느 한 코드 그룹의 코드워드로 변조된 최소 런 길이(d), 최대 런 길이(k), 데이터 비트 길이(m), 코드워드 비트 길이(n)를 나타내는 (d,k,m,n)으로 표현되는 RLL(Run Length Limited) 코드를 원래의 데이터로 복조하는 광디스크 기록 및/또는 재생 장치를 위한 데이터 복조 방법에 있어서: 입력되는 이전 코드워드내의 엔드 제로수에 따라 다음 코드 그룹을 갱신하는 단계 및 갱신된 다음 코드 그룹이 지시하는 코드 그룹에서 두 개의 동일한 현재 코드워드가 존재하지 않으면 갱신된 다음 코드 그룹에서 지시하는 코드워드를 선택해서 데이터를 복조하는 단계를 포함함을 특징으로 하고 있다.
도 1a와 1b는 기존의 변/복조 변환표의 일 예이다.
도 2는 본 발명에서 제안하는 (d,k,m,n)로 표현되는 RLL 코드를 위한 코드 그룹 생성 방법의 일 실시예에 따른 흐름도이다.
도 3a 내지 도 3f는 도 2에 도시된 방법에 의해 생성된 (2,12,8,15) 코드의 변복조를 위한 변환코드, ncg(next code group)와 코드워드의 특성(INV,CSV)을 나타낸 표이다.
도 4는 도 3에 도시된 변환표를 이용하여 (2,12,8,15) 코드의 변조 방법의 일 실시예에 따른 흐름도이다.
도 5는 본 발명에 의한 (2,12,8,15) 코드에서 사용할 수 있는 동기의 형태를 예시한 표이다.
도 6은 도 3에 도시된 변환표를 이용하여 변조 과정을 설명하기 위한 표이다.
도 7은 본 발명에서 사용되는 ncg가 지시하는 코드 그룹표이다.
도 8은 본 발명에서 예시한 (2,12,8,15) 코드의 DSV 변화 곡선이다.
도 9는 본 발명에서 예시한 (2,12,8,15) 코드의 주파수 스펙트럼을 보인 도면이다.
도 10은 도 4에 도시된 방법에 의해 변조된 코드를 원래의 데이터로 복조하는 (2,12,8,15) 코드 복조 방법의 일 실시예에 따른 흐름도이다.
도 11은 도 10에 도시된 동기 패턴을 검출하는 S302 단계를 설명하기 위한 동기 검출기의 회로도이다.
이하, 첨부된 도면을 참조하여 본 발명에 의한 개선된 DC 억압 능력을 갖는 RLL 코드 생성 방법과 생성된 RLL 코드 변복조 방법의 바람직한 실시예를 설명하기로 한다.
(d,k,m,n)으로 표현되는 RLL 코드에서 코드의 성능을 표현하는 요인 중에서 크게 기록 밀도의 측면과 코드의 DC 성분을 억압하는 능력을 보고 그 코드의 우수함을 평가한다. 기록 밀도와 코드의 검출창폭(detection window margin)은 다음과 같은 수학식 1과 수학식 2로 표현된다.
기록 밀도 = (d+1)m/n
검출창폭 = (m/n)T
여기서, m은 데이터 비트수(일명 소스 비트라고도 함), n은 변조후의 코드워드 비트수(일명 채널 비트라고도 함), d는 코드워드내에서 1과 1사이에 존재할 수 있는 연속되는 0의 최소수, k는 코드워드내에서 1과 1사이에 존재할 수 있는 연속되는 0의 최대수이고, T는 코드워드내 비트의 비트 간격이다.
위 수학식 1에서 알 수 있듯이, 변조 방법에서 기록 밀도를 향상시킬 수 있는 방법은 d와 m은 동일한 조건에서 코드워드의 비트수 n을 줄이는 것이다. 그러나, RLL 코드는 코드워드내에서 1과 1사이에 존재할 수 있는 연속되는 0의 최소수인 d 조건과 연속되는 0의 최대수인 k 조건을 만족해야 한다. 이 (d,k) 조건을 만족하면서 데이터 비트수가 m이라 할 때 RLL(d,k)를 만족하는 코드워드의 수는 2m개 이상이면 된다. 그러나, 실제 이러한 코드를 사용하기 위해서는 코드워드와 코드워드가 연결되는 부분에서도 RLL(d,k)를 만족해야 하며, 광디스크 기록 및/또는 재생 장치와 같이 코드의 DC 성분이 시스템 성능에 영향을 주는 경우에는 사용하고자 하는 코드가 DC 억압 능력을 가져야 한다.
이러한 이유로 CD(Compact Disc)의 경우는 EFM(Eight Fourteen Modulation) 코드 즉, 8비트의 데이터를 변조하면 14비트의 코드워드로 변환되고, 코드워드 사이에 RLL(2,10)(CD는 d=2,k=10인 코드를 사용함)의 런 길이 조건을 만족하면서 DC 억압 능력을 갖추기 위해 14비트로 변환된 코드워드와는 별도로 3비트의 머지 비트(merge bit)가 추가되어 있다. 이 머지 비트는 아무런 정보가 없는 단지 (d,k)의 런 길이와 DC 억압을 위한 비트로 추가되어 있고, 이러한 머지 비트는 기록 밀도를 올리는 데 큰 부담이 된다.
DVD(Digital Versatile Disc)의 경우는 EFM 플러스(EFM+) 코드를 사용하는 데 이 코드 역시 RLL(2,10)의 런 길이 조건을 가지며, CD와는 달리 머지 비트가 없고 대신 코드워드의 길이(n)가 16비트이다. 이 경우 사용할 수 있는 코드의 수는 총 566개이고, 도 1a 및 도 1b에 도시된 바와 같이 4개의 주 변환표와 4개의 보조변환표를 갖고 있다. (2,10)의 런 길이는 4개의 주 변환표를 사용하여 만족하면 코드열의 DC 억압은 보조 변환표를 이용하여 실시하고 있다.
상술한 코드들은 DC 성분 억압이라는 측면에서는 우수한 코드이며, 특히 DVD에 적용되는 EFM+ 코드의 경우는 CD에 적용되는 EFM 코드와 대비하여 1비트의 코드워드 비트 수를 줄이면서 코드 변조 방법의 변경만으로 5.9%의 기록 밀도 상승의 효과를 얻고 있다. 그러나, EFM+ 코드의 경우도 DC 억압을 위해 4개의 보조 변환표를 별도로 갖기 때문에 더 이상의 코드워드의 비트수를 줄이기에는 어려운점이 많다.
따라서, 본 발명에서는 DC 억압을 위한 별도의 보조 변환표를 갖는다는 면에서는 같으나 보조 변환표에 사용되는 코드워드를 주 변환표에서 이미 사용되고 있는 코드워드 일부를 그대로 이용하고, 주 변환표의 코드워드 특성 즉, 코드워드내의 DC값을 나타내는 파라미터인 CSV와 다음 코드워드의 DSV 천이 방향을 예측하는 파라미터인 INV를 최대로 이용하여 주 변환표를 만듦으로서 코드워드의 비트수를 줄일 수 있도록 한다. 이러한 주/보조 변환표를 이용하여 DC 억압과 기록 밀도 상승이라는 효과를 얻을 수 있는 RLL 코드 생성 방법과 생성된 RLL 코드를 이용하여 변복조하는 방법을 제안한다.
먼저, 본 발명에서 사용되는 용어를 설명한다.
(previous code) (current code)
000010001001000 001000001001000
LZ(p) EZ(p) LZ(c) EZ(c)
d는 최소 런 길이, k는 최대 런 길이, m은 데이터 비트 길이, n은 코드워드 비트 길이이고, LZ(p)와 LZ(c)는 각각 이전 코드워드와 현재 코드워드내의 리드(lead) 제로수이고, EZ(p)와 EZ(c)는 각각 이전 코드워드와 현재 코드워드내의 엔드(end) 제로수이고, DSV는 코드워드 스트림에서 디지털 합 값(Digital Sum Value in codeword stream) 즉, 일련의 코드워드 스트림에서 '1'이 나올때마다 반전을 시킨후 반전된 패턴에서 0은 '-1'로 계수하고, 1은 '+1'로 계수한 값이다. CSV는 코드워드내에서 디지털 합 값(Digital Sum Value in a codeword) 즉, 하나의 코드워드내에서 '1'이 나올때마다 반전을 시킨 후 반전된 패턴에서 0은 '-1'로 계수하고 1은 '+1'로 계수한 값이다. INV는 다음 코드워드의 천이를 알 수 있는 파라미터로서, 코드워드내에서 '1'의 수가 짝수개이면, INV의 파라미터의 값은 0(INV=0)이고, 코드워드내에서 '1'의 수가 홀수개이면 INV의 파라미터의 값은 1(INV=1)이고, x는 주 코드 그룹을 분할하는 파라미터이고, y는 코드워드의 중복 파라미터이고, bit(i), bit(j), bit(k)는 코드워드내의 i,j,k번째 비트를 나타낸다. 여기서, 코드워드 스트림에서 누적된 INV의 값이 '0'이면 다음 코드워드의 CSV값을 그 코드워드 이전까지의 누적된 DSV 값에 그대로 더하여 DSV값을 갱신하고, 누적된 INV값이 '1'이면 다음 코드워드의 CSV값의 부호를 반전시켜 그 코드워드 이전까지의 누적된 DSV값에 더하여 DSV값을 갱신한다.
위의 스트림을 예로 하면 INV, CSV, DSV 파라미터는 아래와 같이 주어진다.
코드워드 : 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0
INV : 1 0
CSV : +1 -3
코드스트림: 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1
DSV : -1-2-3-4-3-2-1 0-1-2-3-2-1 0+1 +2+3+2+1 0+1+2+3+2+1 0+1+2+3+4
다음은 본 발명에서 제안하는 (d,k,m,n)로 표현되는 RLL 코드 그룹 생성 방법을 설명하기로 한다.
본 발명에 의한 RLL 코드 그룹 생성 방법의 일 실시예에 따른 흐름도인 도 2에 있어서, 원하는 최소 런 길이(d), 최대 런 길이(k), 데이터 비트 길이(m), 코드워드 비트 길이(n), 주 코드 그룹의 분할 파라미터(x), 코드워드의 중복 파라미터(y) 및 특정 비트들(bit(i),bit(j),bit(k))을 입력시킨다(S101 단계).
S101 단계에서 입력된 조건에 맞는 코드를 0부터 2n까지 발생시키고(S102 단계), 생성된 코드에 대해 런 길이(d,k) 조건을 만족하는 지를 판단한다(S103 단계). 생성된 코드 중 사용가능한 코드는 런 길이(d,k) 조건을 만족하는 코드만 사용가능하므로 이 조건에 맞지 않는 코드는 버린다(S104 단계). (d,k) 조건을 만족하는 코드워드는 그 코드워드의 특징을 추출하는 데, 필요한 특징을 추출하는 데 필요한 파라미터는 각각 코드워드내의 리드 제로수(LZ), 코드워드내의 앤드 제로수(EZ), 코드워드 합 값(CSV)이다(S105 단계).
사용가능한 코드의 수를 늘이기 위해 일부 코드는 중복시키고, 코드워드와 코드워드가 연결되는 부분에서의 (d,k) 조건을 만족시키기 위해 파라미터 EZ의 값을 체크한다(S106 단계). 이 EZ 값에 따라 다음과 같은 동작을 한다.
코드워드내의 엔드 제로수(EZ)가 0EZ < d이면, 다음 코드 그룹(nextcode group:이하 ncg라고 함)은 제2 주코드 그룹((Main Code Group:MCG2) 또는 DSV 그룹으로부터 다음 코드워드가 올 수 있도록 지정한다(S107단계).
코드워드의 EZ값이 dEZy이면, 그 코드워드는 중복을 시키고, ncg는 제1 결정 코드 그룹(Decision Code Group:DCG1) 또는 제2 결정 코드 그룹(DCG2)으로부터 다음 코드워드가 올 수 있도록 지정한다(S108 단계). 여기서, 중복되지 않은 원래의 코드워드라면 ncg는 제1 결정 코드 그룹(DCG1)으로부터 다음 코드워드가 올 수 있도록 지정하고, 중복된 코드워드라면 ncg는 제2 결정 코드 그룹(DCG2)으로부터 다음 코드워드가 올 수 있도록 지정한다.
코드워드의 EZ값이 y < EZk이면, 그 코드워드는 ncg가 제1 주코드 그룹(MCG1)이나 제2 주코드 그룹(MCG2)에서 다음 코드워드가 올 수 있도록 지정한다(S109 단계).
이러한 과정으로 (d,k) 조건을 만족하는 코드워드의 ncg를 결정하며, 이 ncg에 따라 그 코드워드 다음에 붙을 수 있는 코드워드의 코드 그룹이 결정되며, 코드워드와 코드워드가 연결되는 부분에서도 (d,k) 조건을 만족시킨다. 여기서, EZ값이 dEZy를 만족하는 코드를 중복시키는 이유는 EZ값이 0,1,...,d-1인 코드에 대해서는 DSV 그룹들을 이용하여 코드워드 스트림의 DSV 제어를 실시하여 전체 DC 성분을 억압하기 위해서이다.
코드 그룹별로 코드워드를 묶는 방법과 각각의 코드 그룹의 특징에 대해 설명한다. 코드 그룹별로 코드워드를 묶기 위해서는 코드워드내의 리드제로수(LZ)값을 이용하는 데 S110 단계에서는 코드워드내의 LZ값을 체크한다.
코드워드내의 LZ값이 x보다 작은 경우는 그 코드워드는 제1 주코드 그룹(MCG1)에 저장한다(S111 단계). LZ값이 LZx인 코드워드는 제2 주코드 그룹(MCG2)에 저장하는 데 그 코드워드의 순서는 제1 주코드 그룹(MCG1)에 들어 있는 동일한 복호값을 갖는 코드워드와 비교하여 가능한 파라미터 INV와 CSV값의 부호가 반대인 것으로 배치한다(S112 단계). 만일 INV와 CSV의 부호가 모두 반대인 것이 없으면 CSV의 부호가 반대인 것으로 우선 순위를 두고 그 다음의 우선 순위는 INV값의 부호가 반대인 것으로 배치한다. 이렇게 코드워드들을 배치하는 이유는 한 코드워드의 ncg가 제1 주코드 그룹(MCG1)이나 제2 주코드 그룹(MCG2)에서 다음 코드워드를 불러내도록 지시하는 경우에 두 코드 그룹내의 동일한 복호값을 갖는 코드워드가 동시에 (d,k) 조건을 만족한다면 코드워드 스트림의 DC 억압이 유리하게 진행되는 코드워드로 선택할 수 있게 함과 동시에 두 코드 그룹내의 코드워드의 INV 및 CSV값이 반대이므로 DC 제어가 두 코드워드 중 하나는 최적인 방향으로 진행될 수 있기 때문이다.
LZ값이 LZk-y인 경우는 비트(i), 비트(j), 비트(k)를 체크하여(S113 단계), 그 중 어느 한 비트라도 '1'이 존재하면 그 코드워드는 제1 결정 코드 그룹(DCG1)에 저장하고(S114단계), S113 단계에서 체크된 비트들이 모두 '0'이면 제2 결정 코드 그룹(DCG2)에 저장한다(S115 단계). 결정 코드 그룹(DCG)내에서의 코드워드의 배치순서는 가능한 제1 및 제2 주코드 그룹(MCG1, MCG 2)에서와 같은 위치에 배치시킨다. 예를 들어, '100010001000100'이 제1 주코드 그룹(MCG1)에 있는 코드워드이면서 제1 결정 코드 그룹(DCG1)에 속하는 코드워드이고, 이 코드워드가 제1 주코드 그룹(MCG1)에서 복호값이 128에 해당한다면 제1 결정 코드 그룹(DCG1) 그룹내에서도 그 복호값이 128에 해당하는 위치에 배치시킨다. 이는 복호시 에러가 발생했을 때 에러 전파를 최소화하기 위한 배려이다.
LZ값이 LZk-y인 코드를 결정 코드 그룹(DCG)에 배치시키는 이유는 EZ값이 dEZy인 코드워드를 중복시켰기 때문이다. 중복된 코드를 복호할 때 해당 데이터를 올바르게 복호하기 위해서 다음 코드워드를 참조하는 데, 다음 코드워드가 제1 결정 코드 그룹(DCG1)에서 온 코드워드라면 원래의 코드워드에 대한 복호 데이터로 복조하고, 다음 코드워드가 제2 결정 코드 그룹(DCG2)에서 온 코드워드라면 중복시킨 코드워드에 대한 복호 데이터로 복조한다.
또한, dEZy인 코드들이 제1 결정 코드 그룹(DCG1)이나 제2 결정 코드 그룹(DCG)내의 코드워드들과 (d,k)를 만족시키면서 연결되기 위해서는 이전 코드워드의 엔드 제로수 EZ(p)와 현재 코드워드의 리드 제로수 LZ(c)의 합 EZ(p)+LZ(c)이 dEZ(p)+LZ(c)k를 만족해야 하므로 결정 코드 그룹의 LZ(c)는 LZk-y를 만족해야 한다.
예를 들어, '1000100001000100'인 코드워드가 제1 주코드 그룹(MCG1)내에 두 개 존재할 때, 즉, 원래의 코드워드 '100010001000100'에 대한 복호값이 128, ncg가 제1 결정 코드 그룹(DCG1)이고, 중복시킨 코드워드 '100010001000100'에 대한 복호값이 129, ncg가 제2 결정 코드 그룹(DCG2)이라 하면 코드워드'100010001000100'를 복호할 때 그 다음에 오는 코드워드가 DCG1에 속해 있느냐 DCG2에 속해 있느냐에 따라 128 또는 129로 복조된다.
다음은 DSV 그룹들의 배치에 대해 설명한다. DSV 그룹들은 본 발명에서 코드워드 스트림의 DC 성분을 억압하기 위한 방법으로 제시한 것으로 별도의 코드워드들이 필요하지 않고 제1 주코드 그룹(MCG1)에서 사용중인 코드워드들을 이용하므로 보조 코드 그룹에 해당한다.
LZ = x인 코드워드들은 제1 DSV 그룹에 배치하고(S116 단계), LZ = x, x-1인 코드워드들은 제2 DSV 그룹에 배치한다(S117 단계)). 같은 방법으로 LZ = x, x-1,...,x-l인 코드워드들은 제l+1 DSV 그룹에 배치한다(S118 단계). DSV 그룹내에서의 코드워드의 배치 위치는 제1 주코드 그룹(MCG1)내에서의 배치 위치와 동일하게 한다. 즉, 같은 코드워드가 제1 주코드 그룹(MCG1)과 DSV 그룹내에 있다면 복호시 같은 데이터로 복호가 되도록 배치한다.
S107 단계에서도 설명된 바와 같이, 어느 한 코드워드의 EZ값이 0EZ < d이면 ncg는 제2 주코드 그룹(MCG2)이나 DSV 그룹으로부터 다음 코드워드가 올 수 있도록 지정되는 데 DSV 그룹내의 코드워드들은 제1 주코드 그룹(MCG1)에서 추출한 것들이기 때문에 제2 주코드 그룹(MCG2)내의 코드워드들과 분명하게 구분된다. 0EZ < d인 코드워드 다음에 입력되는 코드워드들은 제2 주코드 그룹(MCG2)내에서 코드워드를 선택하느냐 DSV 그룹내에서 코드워드를 선택하느냐는 DC 억압에 유리한 코드워드가 속해 있는 그룹으로부터 선택하면 된다.
따라서, DSV 그룹의 선택 방법은 dEZ(p)+LZ(c)k를 만족하면서EZ(p)가 0일 때는 LZ(c)가 x인 제1 DSV 그룹에서 코드워드를 선택하고, EZ(p)가 1일때는 LZ(c)가 x,x-1인 코드워들이 속해 있는 제2 DSV 그룹에서 코드워드를 선택하고, 같은 방법으로 EZ(p)가 x일 때는 LZ(c)가 x,x-1,...,x-l인 코드워드들이 속해 있는 제l+1 DSV 그룹에서 코드워드를 선택한다.
이렇게 생성된 코드워드에 대해 해당하는 코드 그룹에 저장하게 되고, S119 단계에서는 마지막 데이터인지를 판단해서 마지막 데이터이면 종료하고, 그렇지 않으면 i(여기서, i=0,1,...,n)를 증가해서(S120 단계), 2i코드워드를 생성하는 S102 단계로 진행한다.
도 3a 내지 도 3f는 도 2에 도시된 알고리즘에 의해 생성된 (2,12,8,15)로 표현되는 RLL 코드를 위한 코드 그룹별 코드 변환표로서, 파라미터를 d=2, k=12, m=8, n=15, x=2, y=7, bit(i)=14(최상위 비트(MSB)를 의미), bit(j)=0(최하위 비트(LSB)를 의미), bit(k)는 무시하여 코드변환표를 생성한 예를 보이고 있다.
도 3a 내지 도 3f에 도시된 코드 변환표에는, 2EZ7인 코드들은 중복되어 있고, DSV 그룹에 포함된 코드워드들은 'LZ=1'인 코드워드들로서, 제2 주코드 그룹(MCG2)에는 없는 패턴들이다. 제1 주코드 그룹(MCG1)내의 코드워드들은 LZ < 2인 코드워드들이고, 제2 주코드 그룹(MCG2)내의 코드워드들은 LZ2인 코드워드들이며, 제1 결정 코드 그룹(DCG1)내의 코드워드들은 MSB(bit14) 또는 LSB(bit0) 중 어느 하나라도 '1'인 코드워드들로 구성되고, 제2 결정 코드 그룹(DCG2)내의 코드워드들은 MSB(bit14)와 LSB(bit0) 모두가 '0'인 코드워드들로 구성되고, 코드워드들은 복호 데이터가 동일하게 생성되도록 가능한 제1 및 제2 주코드그룹(MCG1,MCG2)과 같은 복호 위치에 배치한다. 또한, 변조시에 런 길이 (d,k) 조건의 위반이 발생하지 않도록 제1 및 제2 결정 코드 그룹(DCG1,DCG2)내의 코드워드들은 LZ5인 코드워드들로 구성된다. 제1 주코드 그룹(MCG1) 및 DSV 그룹내의 코드워드들의 배치는 제2 주코드 그룹(MCG2)내의 코드워드들과 CSV 및 INV의 부호가 반대가 되도록 배치한다.
요약하면, 본 발명은 DC 억압을 위해 주코드 그룹의 코드워드와는 별도의 코드워드를 사용하지 않았기 때문에 많은 수의 코드워드가 필요치 않아 코드워드의 비트수를 1비트 줄일 수 있고, 이전 코드워드의 EZ가 0EZ(p)d일 경우 dEZ(p)+LZ(c)k가 되는 범위에서 DC 억압을 수행할 수 있도록 DSV 그룹을 제2 주코드 그룹(MCG2)과 함께 선택가능하도록 하여 DC 억압 능력을 향상시키고 있다. 또한, DSV 그룹내의 코드워드는 제2 주코드 그룹(MCG2)내의 코드워드와는 CSV와 INV의 부호가 반대가 되도록 배치하여 DC억압의 효과를 증가시키고 있다.
본 발명에서 실시예로 보인 (2,12,8,15) 코드인 경우 EZ(p)=1인 경우에 그 다음의 코드워드를 DSV 그룹과 제2 주코드 그룹(MCG2)에서 선택할 수 있고, 제1 주코드 그룹(MCG1)내의 코드 중 LZ=1인 코드들로 DSV 그룹을 만들고, 이 DSV 그룹내의 코드워드의 위치는 제1 주코드 그룹(MCG1)과 동일한 데이터로 복호가 가능하도록 배치하여 복호시 에러 전파가 되지 않도록 할 수도 있으나 보다 DSV 제어 효과를 향상시키기 위해서 CSV 및 INV 파라미터를 중심으로 배치하여 제1 주코드 그룹(MGG1)과 동일하지 않을 수도 있다. 또한, 제1 주코드 그룹(MCG1)과 제2 주코드 그룹(MCG2)의 코드워드를 CSV 및 INV의 부호가 반대가 되도록 배치하여 EZ가 dEZ(p)y 중 비중복 코드워드나 EZ(p) > y인 코드워드가 dEZ(p)+LZ(c)k가 되는 범위에서도 DC 억압을 수행할 수 있다.
다음은 본 발명의 이해를 돕기 위하여 도 2에 도시된 방법에 의해 생성된 도 3에 도시된 코드 그룹별 코드 변환표를 갖는 (2,12,8,15) 코드의 변복조 방법을 설명한다.
도 4는 본 발명에 의한 (2,12,8,15)로 표현되는 RLL 코드의 변조 방법의 일 실시예에 따른 흐름도로서, ncg를 '1'로 초기화하고(S201 단계), 동기 코드를 삽입할 것인지를 판단한다(S202 단계). 동기 코드의 예는 도 5에 도시되어 있다.
본 발명에서는 동기 코드의 형태를 도 5에 도시된 바와 같이 4 종류로 표현한다. 각 동기 코드워드의 MSB의 x(don't care bit를 의미)는 이전 코드워드의 EZ와 연결될 때 (d,k)의 런 길이 조건을 위반하지 않기 위한 용도로서 0과 1 어느 것이나 사용가능하고, 첫 번째와 두 번째 동기 코드(SYNC1,SYNC2)를 위한 코드워드내의 두 번째의 x는 DC 억압을 위한 것으로 코드워드 스트림의 DC 억압에 유리하게 선택하면 된다. 이 두 번째 x가 있는 동기 패턴을 갖는 첫 번째와 두 번째 동기 코드(SYNC1,SYNC2)를 빈번히 발생하는 동기용으로 사용하고, 이 두 번째 x가 없는 동기 패턴을 갖는 세 번째와 네 번째 동기 코드(SYNC3,SYNC4)는 예를 들어, 인터리브된(interleaved) 데이터처럼 지연(delay)이 큰 데이터들의 에러 정정용 동기와 같이 빈번하게 발생하지 않는 동기용으로 사용하는 것이 바람직하다. 빈번한 동기라 함은 예를 들어, 스핀들 모터 제어용의 동기나 인터리브가 되어 있지 않은 데이터들의 에러 정정용 동기 등을 일컫는다.
동기 다음에 오는 코드워드는 특정 코드워드 그룹에서 찾아야 한다는 규정이 필요하다. 따라서, 본 발명의 일 실시예에서는 ncg는 1로 초기화하고 다음에 오는 데이터에 대한 코드워드는 제1 주코드 그룹(MCG1)에서 찾는다.
S202 단계에서 판단 결과가 동기를 삽입하는 시점이면 동기 패턴은 DC 억압하기에 유리한 패턴으로 선택하는 일반적인 동기 삽입 루틴을 수행한 후(S203 단계), 데이터 끝이 아니면 다시 동기 삽입 판단 단계(S202 단계)로 되돌아간다(S215 단계). 도면에 도시된 mc는 변조 코드워드(modulated codeword)를, DCC는 DC 제어에 유리한 것을 선택한다는 것을 각각 의미한다.
S202 단계에서 판단 결과가 동기 삽입 시기가 아니면 입력되는 1 바이트 단위로 데이터를 읽어서(S204 단계), 이전 코드워드가 지시하는 ncg에 따라 해당 코드 그룹에서 읽혀진 1바이트의 데이터에 대한 변조 코드워드를 찾는다(S205 단계). 단 DC 억압을 위해 ncg=1일 때와 ncg=5일 때는 참조할 수 있는 변환 코드 그룹이 두 개이다.
먼저, 이전 코드워드의 ncg가 1이면 그 코드워드의 EZ값은 2EZ7중에서 중복되지 않은 코드워드나 EZ > 7인 코드워드로서 (2,12)의 런 길이 조건을 위반하지 않는 범위에서 제1 주코드 그룹(MCG1)과 제2 주코드 그룹(MCG2)을 모두 참조해서 변조 코드워드를 선택할 수 있다(S206,S207,S208 단계). 이때, 코드 그룹의 선택 기준은 DC 제어에 유리한 코드가 속해 있는 코드 그룹을 선택한다. 따라서, S207 단계에서는 변조 코드워드(mc)를 제1 주코드 그룹(MCG1)과 제2 주코드 그룹(MCG2) 중 DC 제어에 유리한 코드 그룹에서 찾고, ncg는 찾아진 코드 그룹에 속하는 코드워드가 지정하는 ncg로 갱신한다.
도시된 cod1(dt)는 입력 데이터의 변조되는 코드워드를 제1 주코드 그룹(MCG1)에서 찾고, cod2(dt)는 입력 데이터의 변조되는 코드워드를 제2 주코드 그룹(MCG2)에서 찾고, cod3(dt)는 입력 데이터의 변조되는 코드워드를 제1 결정 코드 그룹(DCG1)에서 찾고, cod4(dt)는 입력 데이터의 변조되는 코드워드를 제2 결정 코드 그룹(DCG2)에서 찾고, cod5(dt)는 입력 데이터의 변조되는 코드워드를 DSV 코드 그룹에서 코드워드를 찾는 것을 의미한다.
한편, S208 단계에서는 이전 코드워드의 ncg가 1이고, 제2 주코드 그룹(MCG2)에서 (2,12)의 런길이 조건을 만족하지 않으면 변조 코드워드를 제1 주코드 그룹(MCG1)에서 찾고, ncg는 찾아진 코드워드가 지정하는 ncg로 갱신한다.
이전 코드워드의 ncg가 2이면 그 코드워드의 EZ값은 EZ = 0인 코드워드들이며, 이때는 무조건 다음 코드워드를 제2 주코드 그룹(MCG2)에서 찾고, ncg를 찾아진 코드워드가 지정하는 ncg로 갱신한다(S209 단계). 이전 코드워드의 ncg가 3이나 4이면 그 코드워드의 EZ값이 2EZ7이고 중복된 코드워드가 있는 경우이며 다음에 오는 코드워드는 각각 제1 결정 코드 그룹(DCG1)이나 제2 결정 코드 그룹(DCG2)에서 찾고, ncg는 찾아진 코드워드가 지정하는 ncg로 갱신한다(S210,S211 단계).
이전 코드워드의 ncg가 5이면 그 코드워드의 EZ값이 EZ = 1인 경우이며, 이 경우는 다음 데이터가 123이하일 경우에는 변조 코드워드를 제2 주코드 그룹(MCG2)또는 DSV 그룹에서 선택해서 찾을 수 있고, ncg는 찾아진 코드워드가 지정하는 ncg로 갱신한다(S212,213 단계). 이때, 선택 기준은 DC 억압에 유리한 코드 그룹에서 찾으면 된다. 한편, 다음 데이터가 124 보다 클 경우에는 변조 코드워드를 제2 주코드 그룹(MCG2)에서 찾고, ncg는 찾아진 코드워드가 지정하는 ncg로 갱신한다(S214 단계).
이와 같이 ncg가 1이나 5인 경우 DC억압을 할 수 있는 기회가 생기며 이 가능성은 약 10% 정도이다. DC 억압의 기회가 생겼을 때는 최대한의 DC 억압 효과를 얻기 위해 선택되는 코드 그룹의 코드워드의 배치를 CSV 및 INV의 부호가 반대가 되도록 배치한다.
도 6은 도 4에 도시된 변조 방법에 의해 변조 과정의 일부분을 표로서 나타내고 있다. dt(i)는 변조할 입력 데이터이고, ncg(i-1)은 변조될 데이터의 코드워드가 속해 있는 코드 그룹(이전 코드워드의 다음 코드 그룹)을 나타낸다. 여기서, ncg가 지시하는 코드 그룹에 대한 내용은 도 7에 도시되어 바와 같이, ncg가 1이면 다음 코드워드가 속해 있는 코드 그룹은 제1 주코드 그룹(MCG1) 또는 제2 주코드 그룹(MCG2)이고, ncg가 2이면 다음 코드워드가 속해 있는 코드 그룹은 제2 주코드 그룹(MCG2)이고, ncg가 3이면 다음 코드워드가 속해 있는 코드 그룹은 제1 결정 코드 그룹(DCG1)이고, ncg가 4이면 다음 코드워드가 속해 .있는 코드 그룹은 제2 결정 코드 그룹(DCG2)이고, ncg가 5이면 다음 코드워드가 속해 있는 코드 그룹은 제2 주코드 그룹(MCG2) 또는 DSV 그룹이다.
한편, 도 6에 도시된 code(i)는 ncg(i-1)이 지시하는 코드 그룹에서 선택된dt(i)에 대한 코드워드를 의미하며 16진수(hex)로 표시되어 있다. ncg(i)는 그 코드워드 다음에 따라올 코드워드가 속해 있을 코드 그룹을 지시한다. INV(i)는 코드워드내의 1의 개수가 홀수개(INV(i)=1)인지 또는 짝수개(INV(i)=0)인지를 나타내고, 누적된 INV(i)는 코드워드 스트림의 누적된 1의 개수를 의미하며, CSV(i)는 코드워드내에 대한 DC값이고, DSV(i)는 코드워드 스트림에 대한 누적된 DC값을 나타내고 있다.
예를 들어, 첫 번째 입력되는 데이터 dt(0)의 코드워드에 대한 이전 코드워드의 ncg가 1이라 하면 데이터 0에 대한 코드워드는 도 3에 도시된 제1 주코드 그룹(MCG1)에서 '2001h'가 된다. '2001h'가 지시하는 다음 코드워드에 대한 ncg는 2로 지정되며 따라서 두 번째 데이터 dt(1)의 132에 대한 코드워드는 제2 주코드 그룹(MCG2)에서 '0480h'가 선택된다. 6번째 입력된 데이터 17(=dt(5))은 ncg가 5로 지정되고, 123보다 작기 때문에 코드워드를 제2 주코드 그룹(MCG2) 또는 DSV 그룹에서 찾을 수 있다. 제2 주코드 그룹(MCG2)에서는 '0080h'이 있고, DSV 그룹에서는 '2040h' 있다. 이전까지 코드스트림의 누적된 INV와 DSV는 각각 0(=INV(4))과 9(=DSV(4))이다. '0080h'의 CSV는 1이므로 DSV(5)는 10(=DSV(4)+1)이 되고 '2040h'의 CSV는 -1이므로 DSV(5)는 8(=DSV(4)-1)이 되므로 DSV가 0에 가까운 '2040h'가 선택된다.
따라서, 도 6에서 알 수 있듯이 현재까지의 코드워드 스트림의 누적 DSV값이 0에 가까운 코드워드를 선택하는 방식으로 변조한 것이고 DSV에 따른 코드워드의 선택 방법은 이외에도 얼마든지 설계자 임의로 바꿀 수 있다.
도 8은 본 발명에서 예시한 (2,12,8,15) 코드의 DSV 추이곡선을 나타낸 것으로서, DSV가 0을 기준으로 계속 추종해 나가는 것을 알 수 있어 본 발명에서 제안하는 코드의 DSV 제어 기능을 확인할 수 있다. 도 9는 본 발명에서 예시한 (2,12,8,15) 코드의 주파수 스펙트럼을 나타낸 것으로 저주파대역이 억압되어 있는 것을 확인할 수 있다.
도 10은 본 발명에 의한 (2,12,8,15) 코드의 복조 방법의 일 실시예에 따른 흐름도로서, 도 11을 결부시켜 설명하기로 한다.
광 디스크 등에서 재생되는 코드워드 스트림을 재생 클럭(recovered clock)에 동기하여 재생한다. 동기 코드의 예는 도 5에 도시되어 있고 동기 검출기의 예는 도 11에 도시되어 있다.
직렬로 입력되는 코드워드 스트림을 도 11에 도시된 제1, 제2, 제3 시프트 레지스터(SR0,SR1,SR2로 표기되어 있음:102,104,106)에 시프트해서 저장한다(S301 단계). 제2 및 제3 시프트 레지스트(104,106)는 예를 들어 15비트의 시프트 레지스터이고, 제1 시프트 레지스터(102)는 데이터 복호를 위해서 이전 코드워드내의 엔드 제로수(EZ) 체크용이고 12비트이면 충분하지만 동기의 복호를 위해서 더 늘어날 수도 있다. 제1 시프트 레지스터(102)의 출력은 동기 디코더(108)와 데이터 디코더(도시되지 않음)에 제공되고, 제2 및 제3 시프트 레지스트(104,106)의 출력은 데이터 디코더에 제공된다.
제1 시프트 레지스터(102)를 MSB쪽의 레지스터라고 하면 우선 제1 시프트 레지스(102)로부터 제공되는 도 5에 예시된 동기 패턴을 동기 디코더(108)에 의해 복호해서 동기를 검출한다. 동기 디코더(108)에 의해 동기 패턴이 검출되면(S302 단계), 본 발명에서는 예시하지는 않았지만 동기 보호 및 내삽하는 동기 복원 루틴을 수행한다(S303 단계). S303 단계에서는 제대로 검출된 동기인지를 판단하여 동기 디코더(108)에 의해 검출된 동기를 그대로 사용할 것인지 의사 동기(pseudo sync)를 내삽할 것인지를 판단한다.
다음은 복조하고자 하는 코드워드를 저장하고 있는 제2 시프트 레지스터(104)로부터 출력되는 코드워드가 속해 있는 코드 그룹을 표시하는 ncg를 찾아내는 과정을 설명한다.
S303 단계에서 동기 복원 루틴을 수행한 후 동기 다음은 ncg를 1로 갱신하는 S311 단계로 진행한다. S302 단계에서 시프트 레지스터(102)에 저장된 코드워드가 동기가 아니면 이전 코드워드의 EZ를 체크하여(S304 단계), EZ가 0일 때는 ncg를 2로 갱신하고(S305 단계), EZ가 1일 때는 ncg를 5로 갱신한다(S306 단계). EZ가 2EZ7인 경우는 이전 코드워드의 ncg에서 지시하는 코드 그룹에서 동일한 코드워드가 두 개 존재하는지를 체크한다(S307 단계).
만일, S307 단계에서 이전 코드워드의 ncg가 지시하는 코드 그룹에서 제1 시프트 레지스터(102)에 저장된 이전 코드워드와 동일한 코드워드가 두 개 존재한다면 제2 시프트 레지스터(104)로부터 현재 복조하고자하는 코드워드의 MSB(bit14)와 LSB(bit0)를 체크하여(S308 단계), 어느 한 비트라도 '1'이 존재하면 ncg를 3으로 갱신하고 둘 다 '0'이면 ncg를 4로 갱신한다(S309,S310 단계).
S307 단계에서 이전 코드워드의 EZ가 2EZ7이면서 이전 ncg에서 지시하는 코드 그룹에서 동일한 코드워드가 존재하지 않거나 7 < EZk이면 ncg는 1로 갱신한다(S311 단계).
다음은 복조하고자 하는 코드워드를 저장한 제2 시프트 레지스터(104)의 출력을 복호하는 단계를 설명한다.
갱신된 ncg가 지시하는 코드 그룹에 복조하고자 하는 코드워드가 두 개 존재하는지를 체크한다(S312 단계). S312 단계에서 동일한 코드워드가 두 개 존재하면 제3 시프트 레지스터(106)로부터 제공되는 다음 코드워드의 MSB(bit14)와 LSB(bit0)를 체크하여(S313 단계), 어느 한 비트라도 '1'이 존재하면 제2 시프트 레지스터(104)로부터 제공되는 현재 복조하고자 하는 코드는 동일한 코드워드 중 첫 번째 코드워드임을 확인하고 이에 대응하는 원래 데이터로 복호한다(S314 단계).
S313 단계에서 제3 시프트 레지스터(106)로부터 제공되는 다음 코드워드의 MSB(bit14)와 LSB(bit0) 둘 다 '0'이면 제2 시프트 레지스터(104)로부터 제공되는 현재 복조하는 코드워드는 동일한 코드워드중 두 번째 코드워드임을 확인하고 이에 대응하는 원래 데이터로 복호한다(S315 단계).
S312 단계에서 갱신된 ncg가 지시하는 코드 그룹에 제2 시프트 레지스터(104)로부터 제공되는 코드워드가 하나만 존재한다면 갱신된 ncg가 지시하는 코드 그룹에서 제2 시프트 레지스터(104)로부터 제공되는 현재 복조하고자 하는 코드워드에 대응하는 원래 데이터로 복호한다(S316 단계). ncg가 지시하는 코드 그룹은 도 7에 도시된 바와 같이 ncg가 1이면 다음 코드워드가 속해 있는 코드 그룹은 제1 주코드 그룹(MCG1) 또는 제2 주코드 그룹(MCG2)이고, ncg가 2이면 다음 코드워드가 속해 있는 코드 그룹은 제2 주코드 그룹(MCG2)이고, ncg가 3이면 다음 코드워드가 속해 있는 코드 그룹은 제1 결정 코드 그룹(DCG1)이고, ncg가 4이면 다음 코드워드가 속해 .있는 코드 그룹은 제2 결정 코드 그룹(DCG2)이고, ncg가 5이면 다음 코드워드가 속해 있는 코드 그룹은 제2 주코드 그룹(MCG2) 또는 DSV 그룹이다.
상술한 바와 같이, 본 발명은 DC 억압을 위한 보조 코드 그룹내의 코드워드를 주코드 그룹에서 이미 사용되고 있는 코드워드 일부를 그대로 이용하고, 주코드 그룹의 코드워드의 특성(예: CSV 및 INV 파라미터)을 최대로 이용하여 주코드 그룹을 생성함으로서, 코드워드의 비트수를 줄여 기록 밀도는 향상시키면서도 DC 억압 능력은 증가시키는 효과가 있다.
또한, 본 발명은 INV 파라미터를 함께 고려해서 DSV 제어를 실시하게 되면 즉, DSV 제어가 가능한 빈도수가 적은 코드에서 룩어헤드(Look-ahead) 방법으로 DSV 제어를 했을 때 INV 파라미터를 반대로 배치한 경우 수 dB 정도 개선 효과가 있다.

Claims (26)

  1. 최소 런 길이(d), 최대 런 길이(k), 데이터 비트 길이(m), 코드워드 비트 길이(n)를 나타내는 (d,k,m,n)으로 표현되는 RLL(Run Length Limited) 코드를 생성하는 방법에 있어서:
    (a) 상기 (d,k) 런길이 조건에 맞는 코드워드를 생성하는 단계;
    (b) 생성된 코드워드의 리드 제로수(LZ)에 따라 중복 코드워드를 가지며 각 코드그룹의 코드워드들은 서로 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV(Digital Sum Value) 천이 방향을 예측하는 파라미터(INV)의 부호를 반대가 되도록 배치된 복수개의 주코드 그룹, 상기 중복 코드워드의 복호를 제어하는 상기 복수개의 결정 코드 그룹과 상기 주코드 그룹내의 코드워드들로 구성된 하나 이상의 보조 코드 그룹 중 하나를 결정해서 각 코드 그룹을 구성하는 단계; 및
    (c) 생성된 코드워드의 엔드 제로수(EZ)를 체크하여 코드워드 스트림의 DC 제어에 적합한 생성된 코드워드에 다음에 올 수 있는 다음 코드 그룹을 결정하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 복수개의 주코드 그룹은 제1 및 제2 주코드 그룹을 포함하고, 상기 제1 주코드 그룹은 LZ가 주코드 그룹 분할 파라미터(x) 보다 작은 코드워드들로 구성되고, 상기 제2 주코드 그룹은 LZ가 x보다 같거나 큰 코드워드들로 구성되고, 상기 제1 및 제2 주코드 그룹에는 서로 동일한 코드워드는 존재하지 않고, EZ가 최소 런 길이(d)보다 같거나 크고 코드워드 중복 파라미터(y)보다 같거나 작은 코드워드는 중복되어 있는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 제1 주코드 그룹내의 코드워드들과 제2 주코드 그룹내의 코드워드들은 CSV 파라미터를 우선적으로 서로 반대로 배치하고 INV 파라미터의 부호도 서로 반대로 배치하며, 상기 INV 파라미터의 값이 '0'이면 다음 코드워드의 CSV값은 그 코드워드 이전까지의 누적된 DSV값에 그대로 더하여 DSV값이 갱신되고, 누적된 INV 파라미터의 값이 '1'이면 다음 코드워드의 CSV값의 부호를 반전시켜 그 코드워드 이전까지의 누적된 DSV값에 더하여 DSV값이 갱신되도록 하여 코드워드 스트림의 DC 제어를 효과적으로 수행하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서, 상기 하나 이상의 보조 코드 그룹은 코드워드 스트림의 DC 억압과 (d,k) 런 길이 제어를 할 수 있는 상기 제1 주코드 그룹에서 사용하고 있는 코드워드들로 구성되어 코드워드의 비트수 n을 줄이는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 하나 이상의 보조 코드 그룹내의 코드워드들은 제2 주코드 그룹 그룹내의 코드워드들과는 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV 천이 방향을 예측하는 파라미터(INV)와의 부호를 서로 반대가 되도록 배치되어 DC 억압 제어를 효과적으로 수행할 수 있는 것을 특징으로 하는 방법.
  6. 제2항에 있어서, 이전 코드워드의 EZ값인 EZ(p)가 제1 주코드 그룹을 선택할 수 없고 제2 주코드 그룹만을 선택할 수 있을 때, LZ가 주코드 그룹 분할파라미터(x)인 코드워드들로 구성된 보조 코드 그룹은 현재의 코드워드의 LZ값인 LZ(c)가 dEZ(p)+LZ(c)k를 만족하는 범위내에서 DC 억압 제어를 수행하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 복수개의 결정 코드 그룹은 제1 및 제2 결정 코드 그룹을 포함하고, 상기 제1 및 제2 결정 코드 그룹은 LZ가 상기 최대 런 길이(k)와 코드워드 중복 파라미터(y)와의 차보다 같거나 작은 코드워드들로 구성되고, 이 코드워드들은 특정 비트들의 값이 '1' 또는 '0'인지에 따라 제1 결정 코드 그룹 또는 제2 결정 코드 그룹에 배치되어 있는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 하나 이상의 보조 코드 그룹내의 코드워드들은 LZ에 따라 LZ가 주코드 그룹 분할 파라미터(x)인 코드워드들은 제1 보조 코드 그룹에 배치하고, LZ가 x,x-1인 코드워드들은 제2 보조 코드 그룹에 배치하고, LZ가 x,x-1,...,x-l인 코드워드들은 제l+1 보조 코드 그룹에 배치하여, 이전 코드워드의 EZ값인 EZ(p)가 각각 EZ(p)=0, EZ(p)=1,...,EZ(p)=l인 코드워드들은 제2 주코드 그룹, 제1 DSV 그룹, 제2 DSV 그룹,...,제l+1 DSV 그룹에서 각각 코드워드를 선택하여 DC 억압 제어를 수행하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서, 상기 (b) 단계는,
    (b1) 상기 생성된 코드워드의 LZ를 체크하는 단계;
    (b2) 상기 LZ가 주코드 그룹 분할 파라미터(x)보다 작은 코드워드는 제1 주코드 그룹으로 결정하는 단계;
    (b3) 상기 LZ가 상기 x보다 같거나 큰 코드워드는 제1 주코드 그룹과는 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV 천이 방향을 예측하는 파라미터(INV)의 부호가 반대인 제2 주코드 그룹으로 결정하는 단계;
    (b4) 상기 LZ가 최대 런 길이(k)와 코드워드 중복 파라미터(y)와의 차보다 같거나 작은 코드워드의 특정 비트들이 어느 하나라도 '1'이면 제1 결정 코드 그룹으로 결정하고, 상기 특정 비트들이 모두 '0'이면 제2 결정 코드 그룹으로 결정하는 단계; 및
    (b5) 상기 LZ가 주코드 그룹 분할 파라미터(x)값에 해당하는 코드워드는 제1 주코드 그룹에 있는 코드워드들로 구성되어 있는 제1 보조 코드 그룹으로 결정하는 단계를 포함하는 방법.
  10. 제9항에 있어서, 상기 (b) 단계는
    (b6) 상기 LZ가 x,x-1인 코드워드들은 제2 보조 코드 그룹으로 결정하고, 상기 LZ가 x,x-1,...,x-l인 코드워드들은 제l+1 보조 코드 그룹으로 결정하는 단계를 더 포함하는 방법.
  11. 제1항에 있어서, 상기 (c) 단계는,
    (c1) 상기 생성된 코드워드의 EZ를 체크하는 단계;
    (c2) 상기 EZ가 0EZ < d일 때는 상기 생성된 코드워드 다음에 올 수 있는 다음 코드 그룹으로 상기 제2 주코드 그룹 또는 상기 하나 이상의 보조 코드 그룹을 결정하여 코드워드 스트림의 DC 제어를 수행하는 단계;
    (c3) 상기 EZ가 코드워드가 중복되어 있는 dEZy(여기서, y는 코드워드 중복 파라미터)일 때는 중복된 코드워드의 다음 코드 그룹으로 제1 또는 제2 결정 코드 그룹을 결정하고 중복되지 않은 코드워드의 다음 코드 그룹으로 제1 또는 제2 주코드 그룹을 결정하여 코드워드 스트림의 DC 제어를 수행하는 단계; 및
    (c4) 상기 EZ가 y < EZ 일때는 (d,k) 런 길이가 위배되지 않는 경우에 한해 상기 생성된 코드워드의 다음 코드 그룹으로 제1 또는 제2 주코드 그룹을 결정하여 DC 제어를 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 상기 EZ가 0EZ < d일 때, 상기 EZ가 '0'이면 상기 생성된 코드워드의 다음 코드 그룹으로 상기 제2 주코드 그룹이 결정되고, 그 외에는 상기 하나 이상의 보조 코드 그룹 중 하나가 결정되는 것을 특징으로 하는 방법.
  13. 광디스크 기록 및/또는 재생 장치에 입력되는 데이터를, 중복 코드워드를 가지며, 각 코드그룹의 코드워드들은 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV(Digital Sum Value) 천이 방향을 예측하는 파라미터(INV)의 부호를 서로 반대가 되도록 배치된 제1 및 제2 주코드 그룹, 상기 중복 코드워드의복호를 제어하는 제1 및 제2 결정 코드 그룹, 상기 제1 주코드 그룹내의 코드워드들로 구성된 하나 이상의 보조 코드 그룹 중 어느 한 코드 그룹의 코드워드를 선택하여 최소 런 길이(d), 최대 런 길이(k), 데이터 비트 길이(m), 코드워드 비트 길이(n)를 나타내는 (d,k,m,n)으로 표현되는 RLL(Run Length Limited) 코드로 변조하는 방법에 있어서:
    (a) 이전 코드워드가 지정하는 다음 코드 그룹을 상기 어느 한 코드 그룹으로 초기화하는 단계;
    (b) 바이트 단위로 데이터를 입력하는 단계; 및
    (c) 상기 (b) 단계에서 입력된 데이터에 대응하는 코드워드를 이전 코드워드가 지정하는 다음 코드 그룹에서 선택하고, 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하는 단계를 포함하는 변조 방법.
  14. 제13항에 있어서, 상기 (c) 단계는,
    (c1) 이전 코드워드가 지정하는 다음 코드 그룹을 체크하는 단계;
    (c2) 상기 (c1) 단계에서의 체크 결과가 상기 이전 코드워드가 지정하는 다음 코드 그룹이 제1 주코드 그룹이면 (d,k) 런 길이 조건을 만족하는 지를 체크하는 단계;
    (c3) 상기 (d,k) 런길이 조건이 만족되면 상기 입력 데이터에 대응하는 코드워드를 상기 제1 주코드 그룹 또는 제2 주코드 그룹 중 DC 제어가 유리한 코드 그룹에서 선택하고 다음 코드 그룹은 선택된 코드 그룹내의 코드워드가 지정하는 다음 코드 그룹으로 갱신하고, 만족하지 않으면 상기 제1 주코드 그룹에서 선택하고 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하는 단계;
    (c4) 상기 (c1) 단계에서의 체크 결과가 상기 이전 코드워드가 지정하는 다음 코드 그룹이 제2 주코드 그룹이면 입력 데이터에 대응하는 코드워드를 상기 제2 주코드 그룹에서 선택하고, 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하는 단계;
    (c5) 상기 (c1) 단계에서의 체크 결과가 상기 이전 코드워드의 다음 코드 그룹이 제1 결정 코드 그룹이면 입력 데이터에 대응하는 코드워드를 상기 제1 결정 코드 그룹에서 선택하고, 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하는 단계;
    (c6) 상기 (c1) 단계에서의 체크 결과가 상기 이전 코드워드의 다음 코드 그룹이 제2 결정 코드 그룹이면 입력 데이터에 대응하는 코드워드를 상기 제2 결정 코드 그룹에서 선택하고, 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하는 단계; 및
    (c7) 상기 (c1) 단계에서의 체크 결과가 상기 이전 코드워드의 다음 코드 그룹이 보조 코드 그룹이면 입력 데이터값이 소정값 이하인지를 판단해서 상기 입력 데이터가 상기 소정값 이하이면 제2 주코드 그룹 또는 보조 코드 그룹에서 DC 제어에 유리한 코드 그룹내의 코드워드를 선택하고 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하고, 상기 입력 데이터가 소정값보다 크면 제2 주코드 그룹에서 코드워드를 선택하고 다음 코드 그룹은 선택된 코드워드가 지정하는 다음 코드 그룹으로 갱신하는 단계를 포함하는 변조 방법.
  15. 제13항에 있어서,
    (d) 상기 (a) 단계를 수행한 후 동기 패턴을 삽입하는 단계를 더 포함하고, 동기의 사용 빈도수에 따라 빈도수가 많은 동기는 코드워드 스트림의 DC 제어에 유리하도록 don't care 비트를 확대 사용하는 동기 패턴을 사용하고, (d,k) 런 길이조건을 위반하지 않도록 최상위 비트를 don't care 비트로 설정한 동기 패턴을 사용하는 것을 특징으로 하는 변조 방법.
  16. 제13항에 있어서, 상기 제1 주코드 그룹은 코드워드내의 리드 제로수(LZ)가 주코드 그룹 분할 파라미터(x) 보다 작은 코드워드들로 구성되고, 제2 주코드 그룹은 LZ가 x보다 같거나 큰 코드워드들로 구성되고, 제1 및 제2 주코드 그룹에는 서로 동일한 코드워드는 존재하지 않고, 코드워드내의 엔드 제로수(EZ)가 최소 런 길이(d)보다 같거나 크고 코드워드 중복 파라미터(y)보다 같거나 작은 코드워드는 중복되어 있는 것을 특징으로 하는 변조 방법.
  17. 제16항에 있어서, 상기 RLL 코드는 (2,12,8,15)이고, 주코드 그룹 분할 파라미터(x)는 1이고, 코드워드 중복 파라미터(y)는 7인 것을 특징으로 하는 변조 방법.
  18. 제13항에 있어서, 상기 제1 주코드 그룹내의 코드워드들과 제2 주코드 그룹내의 코드워드들은 CSV 파라미터를 우선적으로 서로 반대로 배치하고 INV 파라미터의 부호도 서로 반대로 배치하며, 상기 INV 파라미터의 값이 '0'이면 다음 코드워드의 CSV값은 그 코드워드 이전까지의 누적된 DSV값에 그대로 더하여 DSV값이 갱신되고, 누적된 INV 파라미터의 값이 '1'이면 다음 코드워드의 CSV값의 부호를 반전시켜 그 코드워드 이전까지의 누적된 DSV값에 더하여 DSV값이 갱신되도록 하여 코드워드 스트림의 DC 제어를 효과적으로 수행하는 것을 특징으로 하는 변조 방법.
  19. 제13항에 있어서, 상기 제1 및 제2 결정 코드 그룹은 LZ가 상기 최대 런 길이(k)와 코드워드 중복 파라미터(y)와의 차보다 같거나 작은 코드워드들로 구성되고, 이 코드워드들은 특정 비트들의 값이 '1' 또는 '0'인지에 따라 제1 결정 코드 그룹 또는 제2 결정 코드 그룹에 배치되어 있는 것을 특징으로 하는 변조 방법.
  20. 제13항에 있어서, 상기 하나 이상의 보조 코드 그룹은 코드워드 스트림의 DC 억압과 (d,k) 런 길이 제어를 할 수 있는 상기 제1 주코드 그룹에서 사용하고 있는 코드워드들로 구성되고, 상기 제2 주코드 그룹내의 코드워드들의 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV 천이 방향을 예측하는 파라미터(INV)와의 부호를 반대가 되도록 배치하여 DC 억압 제어를 효과적으로 수행하는 것을 특징으로 하는 변조 방법.
  21. 제13항에 있어서, 상기 하나 이상의 보조 코드 그룹내의 코드워드들은 LZ에 따라 LZ가 x인 코드워드들은 제1 보조 코드 그룹에 배치하고, LZ가 x,x-1인 코드워드들은 제2 보조 코드 그룹에 배치하고, LZ가 x,x-1,...,x-l인 코드워드들은 제l+1 보조 코드 그룹에 배치하여, 이전 코드워드의 EZ값(EZ(p))이 각각 EZ(p)=0, EZ(p)=1,...,EZ(p)=l인 코드워드들은 제2 주코드 그룹, 제1 보조 코드 그룹, 제2 보조 코드 그룹,...,제l+1 보조 코드 그룹에서 각각 코드워드를 선택하여 DC 억압 제어를 수행하는 것을 특징으로 하는 변조 방법.
  22. 중복 코드워드를 가지며, 각 코드그룹의 코드워드들은 코드워드내의 DC값을 나타내는 파라미터(CSV)와 다음 코드워드의 DSV(Digital Sum Value) 천이 방향을 예측하는 파라미터(INV)의 부호를 서로 반대가 되도록 배치된 제1 및 제2 주코드 그룹, 상기 중복 코드워드의 복호를 제어하는 제1 및 제2 결정 코드 그룹, 상기 제1 주코드 그룹의 코드워드들로 구성된 하나 이상의 보조 코드 그룹 중 어느 한 코드 그룹의 코드워드로 변조된 최소 런 길이(d), 최대 런 길이(k), 데이터 비트 길이(m), 코드워드 비트 길이(n)를 나타내는 (d,k,m,n)으로 표현되는 RLL(Run Length Limited) 코드를 원래의 데이터로 복조하는 광디스크 기록 및/또는 재생 장치를 위한 데이터 복조 방법에 있어서:
    (a) 입력되는 이전 코드워드내의 엔드 제로수에 따라 다음 코드 그룹을 갱신하는 단계; 및
    (b) 갱신된 다음 코드 그룹이 지시하는 코드 그룹에서 두 개의 동일한 현재코드워드가 존재하지 않으면 갱신된 다음 코드 그룹에서 지시하는 코드워드를 선택해서 데이터를 복조하는 단계를 포함하는 복조 방법.
  23. 제22항에 있어서,
    (c) 갱신된 다음 코드 그룹이 지시하는 코드 그룹에서 두 개의 동일한 현재 코드워드가 존재하면 다음 코드워드의 특정 비트들을 체크해서 어느 하나라도 '1'이면 동일 코드워드 중 첫 번째 코드워드를 선택해서 데이터로 복조하고, 특정 비트들이 모두 '0'이면 동일 코드워드 중 두 번째 코드워드를 선택해서 데이터로 복조하는 단계를 더 포함하는 복조 방법.
  24. 제22항에 있어서,
    (d) 상기 (a) 단계를 수행하기 전 입력되는 코드워드가 동기 패턴인지를 판단해서 동기를 복원하고, 다음 코드 그룹을 상기 어느 한 코드 그룹으로 초기화하는 단계를 더 포함하는 복조 방법.
  25. 제23항에 있어서, 상기 (a) 단계는,
    (a1) 이전 코드워드의 엔드 제로수(EZ)를 판단하는 단계;
    (a2) 상기 이전 코드의 EZ가 '0'이면 다음 코드 그룹을 제2 주코드 그룹으로 갱신하는 단계;
    (a3) 상기 이전 코드의 EZ가 '1'이면 다음 코드 그룹을 DC 제어에 보다 유리한 제2 주코드 그룹 또는 보조 코드 그룹 중 하나로 갱신하는 단계;
    (a4) 상기 이전 코드의 EZ가 최소 런 길이(d)와 같거나 크고, 코드워드의 중복 파라미터(y)보다 작거나 같으면 이전 코드워드의 다음 코드 그룹이 지시하는 코드 그룹에서 두개의 동일한 이전 코드워드가 존재하는 지를 판단하는 단계;
    (a5) 상기 (a4) 단계에서 두개의 동일한 이전 코드가 존재하면 현재 코드워드의 특정 비트들을 체크해서 특정 비트들이 어느 하나라도 '1'이면 다음 코드 그룹을 제1 결정 코드 그룹으로 갱신하고, 특정 비트들이 모두 '0'이면 다음 코드 그룹을 제2 결정 코드 그룹으로 갱신하는 단계; 및
    (a6) 상기 이전 코드의 EZ가 코드워드의 중복 파라미터(y)보다 크고 최대 런 길이(k)보다 작거나 같거나 상기 (a4) 단계에서 두개의 동일한 이전 코드가 존재하지 않으면 다음 코드 그룹을 DC 제어에 보다 유리한 제1 주코드 그룹 또는 제2 주코드 그룹으로 갱신하는 단계를 포함하는 복조 방법.
  26. 제25항에 있어서, 상기 RLL 코드는 (2,12,8,15)이고, 주코드 그룹 분할 파라미터(x)는 1이고, 코드워드 중복 파라미터(y)는 7이고, 상기 특정 비트들은 최상위 비트와 최하위 비트인 것을 특징으로 하는 복조 방법.
KR1019990007723A 1999-03-09 1999-03-09 개선된 dc 억압 능력을 갖는 rll 코드 생성 방법 과 생성된 rll 코드 변복조 방법 KR100294893B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1019990007723A KR100294893B1 (ko) 1999-03-09 1999-03-09 개선된 dc 억압 능력을 갖는 rll 코드 생성 방법 과 생성된 rll 코드 변복조 방법
US09/522,446 US6268810B1 (en) 1999-03-09 2000-03-09 Method of generating run length limited (RLL) code having improved DC suppression capability and modulation/demodulation method of the generated RLL code
JP2000065488A JP3466130B2 (ja) 1999-03-09 2000-03-09 改善されたdc成分の抑圧能力を有するrllコード生成方法及び生成されたrllコードの変復調方法
EP00301935A EP1037389A3 (en) 1999-03-09 2000-03-09 Method of generating run length limited (RLL) code having improved DC suppression capability and modulation/demodulation method of the generated RLL code
CNB001070266A CN1183541C (zh) 1999-03-09 2000-03-09 产生游程长度受限代码的方法和该代码的调制/解调方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990007723A KR100294893B1 (ko) 1999-03-09 1999-03-09 개선된 dc 억압 능력을 갖는 rll 코드 생성 방법 과 생성된 rll 코드 변복조 방법

Publications (2)

Publication Number Publication Date
KR20000059841A KR20000059841A (ko) 2000-10-05
KR100294893B1 true KR100294893B1 (ko) 2001-07-12

Family

ID=19575958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990007723A KR100294893B1 (ko) 1999-03-09 1999-03-09 개선된 dc 억압 능력을 갖는 rll 코드 생성 방법 과 생성된 rll 코드 변복조 방법

Country Status (5)

Country Link
US (1) US6268810B1 (ko)
EP (1) EP1037389A3 (ko)
JP (1) JP3466130B2 (ko)
KR (1) KR100294893B1 (ko)
CN (1) CN1183541C (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100444982B1 (ko) * 2001-06-05 2004-08-21 삼성전자주식회사 직류 성분이 제거되는 코드 변환 및 그 복조 방법
US7034719B2 (en) 2002-09-27 2006-04-25 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
KR100657259B1 (ko) * 2002-09-27 2006-12-14 삼성전자주식회사 데이터 변조 방법 및 코드 배치 방법
KR100871848B1 (ko) * 2002-05-30 2008-12-03 삼성전자주식회사 광기록매체상의 데이터 변조 방법 및 장치
US8045625B2 (en) 2006-08-01 2011-10-25 Samsung Electronics Co., Ltd. Encoding and decoding method to control a direct current (DC) component, and data processing apparatus performing the same

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100644599B1 (ko) * 2000-09-06 2006-11-13 삼성전자주식회사 개선된 dc 억압 능력을 갖는 rll 코드 변복조 방법
KR100565046B1 (ko) * 1999-04-21 2006-03-30 삼성전자주식회사 개선된 dc 억압 능력을 갖는 rll 코드 배치 방법, 변복조 방법 및 복조 장치
US6445313B2 (en) * 2000-02-07 2002-09-03 Lg Electronics Inc. Data modulating/demodulating method and apparatus for optical recording medium
PL362892A1 (en) * 2001-02-02 2004-11-02 Koninklijke Philips Electronics N.V. Method of converting a series of m-bit information words into a modulated signal
KR100669623B1 (ko) * 2001-03-12 2007-01-15 엘지전자 주식회사 디지털 데이터 변환방법
KR100421004B1 (ko) * 2001-04-20 2004-03-03 삼성전자주식회사 코드 생성 및 배치 방법
US7084788B2 (en) * 2001-04-20 2006-08-01 Samsung Electronics Co., Ltd. Code generation and allocation method
KR100752880B1 (ko) * 2001-07-26 2007-08-28 엘지전자 주식회사 정보를 코딩/디코딩하는 방법 및 장치
TW565829B (en) * 2002-03-19 2003-12-11 Via Tech Inc Method and device for recovering decoded data
KR20030093489A (ko) * 2002-06-03 2003-12-11 삼성전자주식회사 신호 복조 장치 및 방법
JP2004080508A (ja) * 2002-08-20 2004-03-11 Nec Electronics Corp 誤り訂正符号の復号方法、そのプログラム及びその装置
JP4022111B2 (ja) * 2002-08-23 2007-12-12 株式会社エヌ・ティ・ティ・ドコモ 信号符号化装置及び信号符号化方法
WO2004023662A1 (en) * 2002-09-09 2004-03-18 Seagate Technology Llc Dc free code design with state dependent mapping
US6919825B2 (en) * 2003-09-25 2005-07-19 Peerless Systems Corporation Split runlength encoding method and apparatus
TWI277064B (en) * 2003-09-29 2007-03-21 Mediatek Inc A method of determining a merging bit in an optical storage device
TWI231933B (en) * 2003-09-29 2005-05-01 Mediatek Inc Method of detecting data structure of non-return-to-zero data in an optical storage device
JP3970237B2 (ja) * 2003-11-17 2007-09-05 ティアック株式会社 光ディスク及び光ディスク装置
TWI244272B (en) * 2003-12-04 2005-11-21 Via Tech Inc Digital signal modulation method
US7423561B2 (en) * 2005-09-06 2008-09-09 Mediateck Inc. Modulation methods and systems
US7142135B1 (en) 2005-09-06 2006-11-28 Media Tek Inc. Modulation methods and systems
EP1988636A1 (en) * 2007-05-03 2008-11-05 Deutsche Thomson OHG Method and apparatus for channel coding and decoding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR9510740B1 (pt) * 1994-02-15 2009-01-13 processo para converter palavras de informaÇço em um sinal modulado, dispositivos codificador e decodificador, e, suporte de gravaÇço.
JP3541439B2 (ja) * 1994-07-08 2004-07-14 ソニー株式会社 信号変調方法及び装置、並びに信号復調装置及び方法
EP0789910B1 (en) * 1995-09-01 2001-05-23 Koninklijke Philips Electronics N.V. Method of converting a series of m-bit information words to a modulated signal, method of producing a record carrier, coding device, device, recording device, signal, as well as a record carrier
EP0918326B1 (en) * 1997-10-21 2001-09-19 Hewlett-Packard Company, A Delaware Corporation Method of inhibiting copying of digital data

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7142136B2 (en) 1998-06-16 2006-11-28 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
KR100444982B1 (ko) * 2001-06-05 2004-08-21 삼성전자주식회사 직류 성분이 제거되는 코드 변환 및 그 복조 방법
KR100871848B1 (ko) * 2002-05-30 2008-12-03 삼성전자주식회사 광기록매체상의 데이터 변조 방법 및 장치
US7312728B2 (en) 2002-09-27 2007-12-25 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
KR100657259B1 (ko) * 2002-09-27 2006-12-14 삼성전자주식회사 데이터 변조 방법 및 코드 배치 방법
US7164373B2 (en) 2002-09-27 2007-01-16 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
US7142133B2 (en) 2002-09-27 2006-11-28 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
US7315263B2 (en) 2002-09-27 2008-01-01 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
US7450034B2 (en) 2002-09-27 2008-11-11 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
US7450035B2 (en) 2002-09-27 2008-11-11 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
US7034719B2 (en) 2002-09-27 2006-04-25 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
US7876241B2 (en) 2002-09-27 2011-01-25 Samsung Electronics Co., Ltd. Data modulating method and apparatus, data demodulating method and apparatus, and code arranging method
US8045625B2 (en) 2006-08-01 2011-10-25 Samsung Electronics Co., Ltd. Encoding and decoding method to control a direct current (DC) component, and data processing apparatus performing the same

Also Published As

Publication number Publication date
CN1183541C (zh) 2005-01-05
US6268810B1 (en) 2001-07-31
JP2000286710A (ja) 2000-10-13
CN1267057A (zh) 2000-09-20
EP1037389A3 (en) 2007-06-20
JP3466130B2 (ja) 2003-11-10
EP1037389A2 (en) 2000-09-20
KR20000059841A (ko) 2000-10-05

Similar Documents

Publication Publication Date Title
KR100294893B1 (ko) 개선된 dc 억압 능력을 갖는 rll 코드 생성 방법 과 생성된 rll 코드 변복조 방법
JP3985173B2 (ja) 変調装置および方法、復調装置および方法、並びにデータ格納媒体
KR100565046B1 (ko) 개선된 dc 억압 능력을 갖는 rll 코드 배치 방법, 변복조 방법 및 복조 장치
KR100644599B1 (ko) 개선된 dc 억압 능력을 갖는 rll 코드 변복조 방법
KR100352353B1 (ko) 신호변조방법,신호변조장치,신호복조방법및신호복조장치
JPH09181609A (ja) デジタルデータチャンネル符号化及び復号化装置並びにその方法
JP3306271B2 (ja) 符号化方法、符号化回路、及び復号回路
JP2004312779A (ja) コードワード配置方法
KR100274213B1 (ko) Rll(2,25)코드를 이용한 7/13 채널코딩 및 채널디코딩방법
JP3947510B2 (ja) データ変調方法、データ復調方法及びコード配置方法
KR100444982B1 (ko) 직류 성분이 제거되는 코드 변환 및 그 복조 방법
KR20020086754A (ko) 일련의 엠-비트 정보어의 변조신호로의 변환방법
JP2004120763A5 (ko)
JP2003536315A (ja) バイナリのソース信号のデータビットのストリームをバイナリのチャネル信号のデータビットのストリームに符号化するデバイス、メモリ手段、情報を記録するデバイス、記録担体、符号化するデバイス、および再生するデバイス
JP3757918B2 (ja) 符号化変調方法および変調装置、復調方法および復調装置
KR100908763B1 (ko) 데이터 스트림을 코딩하는 방법
JPH08204573A (ja) 符号変換方法
KR100611986B1 (ko) 코드워드 배치 방법
JP4366662B2 (ja) 変調装置、変調方法、記録媒体
JP2000068847A (ja) 変調装置および方法、復調装置および方法、並びに提供媒体
JP2000341132A (ja) 復調装置および方法、並びに記録媒体
JP2009266379A (ja) 変調装置、変調方法、記録媒体
JP2010192098A (ja) 変調装置、変調方法、復調装置、復調方法、および記録媒体
JP2000068845A (ja) 復調装置、および復調方法、並びに提供媒体
JP2009266378A (ja) 変調装置、変調方法、記録媒体

Legal Events

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

Payment date: 20120329

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130328

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee