KR101211244B1 - 모듈레이션 코딩 및 디코딩 - Google Patents

모듈레이션 코딩 및 디코딩 Download PDF

Info

Publication number
KR101211244B1
KR101211244B1 KR1020107008733A KR20107008733A KR101211244B1 KR 101211244 B1 KR101211244 B1 KR 101211244B1 KR 1020107008733 A KR1020107008733 A KR 1020107008733A KR 20107008733 A KR20107008733 A KR 20107008733A KR 101211244 B1 KR101211244 B1 KR 101211244B1
Authority
KR
South Korea
Prior art keywords
ary
bit
stream
delete delete
sequence
Prior art date
Application number
KR1020107008733A
Other languages
English (en)
Other versions
KR20100089827A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100089827A publication Critical patent/KR20100089827A/ko
Application granted granted Critical
Publication of KR101211244B1 publication Critical patent/KR101211244B1/ko

Links

Images

Classifications

    • 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
    • H03M5/145Conversion to or from block codes or representations thereof
    • 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/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78

Abstract

바이너리 입력 데이터의 스트림을 모듈레이션 코딩하기 위한 방법 및 장치가 제공된다. 4-ary 출력 심볼들의 연속을 생성하기 위해 4-ary 열거형 인코딩 알고리즘이 입력 비트-스트림에 적용된다. 4-ary 알고리즘은 입력 비트-스트림의 홀수 및 짝수 인터리브들에서 각각의 일반화된 피보나치 코드들을 동시에 인코딩하도록 동작한다. 그런 다음 각각의 연속적인 4-ary 출력 심볼의 비트들은 인터리브되고, 글로벌 및 인터리브된 런-길이 제한들을 갖는 출력 비트-스트림을 생성한다. 4-ary 출력 심볼들의 비트들을 반전시키는 것은, 역-연쇄 모듈레이션 시스템들에서 사용된 PRML(G,I) 코드들에서와 같이 (G,I)-제한들을 갖는 출력 비트-스트림을 생성한다. 또한 대응하는 디코딩 시스템들이 제공된다.

Description

모듈레이션 코딩 및 디코딩{MODULATION CODING AND DECODING}
본 발명은 일반적으로 입력 데이터를 모듈레이션 코딩(modulation coding)하기 위한 방법들 및 장치들, 및 이것들에 대응하는 모듈레이션 디코딩 시스템들과 관련된다.
모듈레이션 코드들(modulation codes)은 기록 데이터에서 바람직하지 않은 비트-시퀀스들(예를 들어, 재생 프로세스(reproduction process)에서 에러들을 유발하는 비트 시퀀스들)을 제거하기 위해 데이터 스토리지 시스템들에 채용된다. 바람직하지 않은 비트-시퀀스의 일 예는 같은 값의 비트들의 긴(long) 런(run)이다. 바람직하지 않은 비트-시퀀스의 또 다른 예는 비트 스트림에서 하나 걸러 하나의 위치들(alternating positions)에서(즉, 하나의 비트 스트림(...EOEOEO...)의 홀수(odd, O) 인터리브(interleave) 또는 짝수(even, E) 인터리브에서) 같은 값의 비트들의 긴 런이다. 예를 들어, 0a0b0c0d0... 형태(여기서 a, b, c 등은 0 또는 1일 수 있음)의 긴 시퀀스(long sequence)는 일반적으로 바람직하지 않다. 모듈레이션 코드들은 인코딩된 비트-스트림에서 바람직하지 않은 비트-시퀀스들의 발생에 대해 몇 가지 형태의 제한(constraint)을 부과한다. 예를 들어, 일부 모듈레이션 코드들은 소위 j-제한(j-constraint)을 부과하고, 그에 의해, 인코딩된 비트-스트림에서 연이은 1들의 런(run)의 최대 길이는 미리 결정된 값 j로 한정된다. 다른 모듈레이션 코드들은 계속되는 0들의 최대 런-길이에 대해 제한을 부과한다. 이것은 k-제한 또는 G-제한으로 일컬어지는데, 그에 의해, 연이은 0들의 최대 런-길이는 각각 값 k 또는 G로 한정된다. 후자의 코드 타입의 일 예는 PRML(부분-응답 최대 우도, partial-response maximum likelihood) 기반의 기록 시스템(예를 들어, 테이프 드라이브들 및 광 스토리지 시스템들)에서 사용되는 PRML(G,I) 코드들에 의해 제공된다. "글로벌(global)" 또는 G-제한에 더하여, 이들 코드들은 "인터리브" 또는 I-제한을 부과한다. 이는 홀수 및 짝수 인터리브들 각각에서 0들의 최대 런-길이를 값 I로 한정한다. I-제한된 비트-스트림은 물론 G=2I로 G-제한되는 것이 필요하다.
PRML(G,I)-코드들은 특히 역 연쇄(reverse concatenation, RC) 모듈레이션 기술들에 특히 유용한데, 상기 모듈레이션 코딩은 에러-정정 코딩(error-correction coding, ECC)에 앞서 수행된다. ECC 디코더는 재생시 모듈레이션 디코더 이전에 동작(operate)하기 때문에, RC 기술들에서 에러 전파(error propagation)는 감소된다. 즉, 만약 ECC 디코더가 어떤 에러를 생성하지 않는다면, 상기 모듈레이션 디코더를 통한 에러 전파는 없다. 따라서, RC는 긴 모듈레이션 코드들(즉, 긴 코드워드(codeword) 길이들을 갖는 코드들)을 사용할 수 있도록 하며, 선택된 제한의 용량(capacity)에 가깝게 동작하는 하이-레이트(high-rate) 코드들 및 인코더들의 설계를 용이하게 한다. 그러나, 유용하게 되기 위해서는, 이들 코드들의 실제 구현은 효율적인 인코딩 및 디코딩 알고리즘에 기초할 필요가 있다.
인코딩된 비트-스트림에서 k-제한을 부과하기 위한 실제 인코더는 미국특허번호 5,760,718에 개시된다. 이는 일반화된 피보나치 코드들(Fibonacci codes)의 클래스에 기초한 열거형 인코딩 기술(enumerative encoding technique)을 구현한다. 열거형 인코딩은 "열거형 소스 인코딩(Enumerative Source Encoding)" (T.M. Cover, IEEE trans. Inform. Theory Vol. 19, pp. 73-77, 1973년 1월)에서 논의된다. 피보나치 코드들은 "동기화 제어를 위한 피보나치 코드들(Fobinacci Codes for Synchronisation Control)"(W.H. Kautz, IEEE Trans. Inform. Theory, Vol. 11, pp. 284-292, 1965년 4월)에서 논의된다. 상세한 논의를 위해 앞에서의 논문들을 참조하는 한편, 기술될 본 발명의 이해를 돕기 위해 이들 기술들의 간단한 설명을 제공하는 것이 여기서는 유용하다.
간단히 말해서, 열거형 인코딩은 코드워드들의 사전식 순서(lexicographic ordering)에 기초하여 출력 코드워드들(output codewords)에 입력 워드들(input words)을 매핑(mapping)하는 프로세스이다. 즉, 만약 X 바이너리 코드워드들의 세트가 바이너리 값에 따라 정렬(order)되면, 각각의 코드워드는 그 정렬된 세트에서의 위치에 따라서 1에서부터 X까지의 수를 부여받을 수 있다. 만약 이들 부여받은 수들 1에서 X 각각이 바이너리 입력 워드의 값을 정의한다면, X 바이너리 입력 워드들 각각은 대응하는 코드워드와 연관된다. 열거형 인코딩은 이러한 유형의 기술에 따른, 출력 코드들에 입력 워드들을 매핑하는 프로세스이다. 근본적인 인코딩 원리는 충분히 간단하지만, 실제 문제는 바이너리 입력 워드들로부터 코드워드들을 발생시키기 위한 충분한 인코더를 설계하는 것에 있다. 예를 들어, 만약 2100 개의 코드워드들이 있다면, 효율적인 인코더 설계에 대한 필요가 분명히 있다.
피보나치 코드들은 가중치들(weights)의 세트(이는 또한 베이스들(bases)로 일컬어짐)에 의해 특징지어지는데, 이것들은 바이너리 코드워드 표현에서 각각의 위치들에서의 바이너리 1 값을 정의한다. 즉, 바이너리 코드워드에서 주어진 위치에서의 1은 통상의 2의 멱급(usual power of two)이라기 보다는 그 위치에 대한 피보나치 베이스의 값을 표현한다. 간단한 예로서, {Wn} = 1,2,3,5,8,13,21로 주어진 N=7 베이스들의 세트로 정의된 피보나치 코드를 고려하자. 상기 베이스들은 선형 리커션(linear recursion),
Figure 112010025525048-pct00001
(n = 2, 3, ..., 6)
을 충족시키는 것으로 보여질 수 있다.
(N=7)-비트의 피보나치 코드워드들의 완전한 세트는 WN +1 = (13+21) = 34 개의 가능한 값들을 표현할 수 있다. 34≥25이므로, 이 간단한 피보나치 코드는 열거형 인코딩 프로세스에 의해 5-비트 입력들을 길이 N=7의 코드워드들로 인코딩할 수 있다. 이 인코딩 프로세스는,
Figure 112010025525048-pct00002
(i = 1에서 7)에 의해 정의되고,
여기서 u는 입력 워드 값이고, (x1, x2, ..., x7)은 출력 코드워드이다. 상기 인코딩 프로세스는 첨부되는 도면들 중 도 1에 도시된 입력 워드 값으로부터 상기 피보나치 베이스들을 연속적으로 뺌(substraction)으로써 수행된다. 특히, 수 u는 내림차순(decreasing value order)으로 취해진, 베이스들(Wn)의 어느 것에 의해서든 연속적으로 감소되지만, 음의 결과를 제공하지 않는다. 만약 실제로 러닝 차이(running difference)로부터 주어진 가중치(WN -i+1)를 뺀다면, xi=1이고, 그렇지 않으면 xi=0이다.
도 1의 고려사항은 이러한 간단한 피보나치 코드가 j=1 제한 - 즉 코드워드에서 하나 이상의 어떤 연이은 1도 발생할 수 없음 - 을 부과한다는 것을 보여준다. 일반화된 피보나치 코드들에서, 베이스들 wn(n=1에서 N)은 다음의 선형 리커션(recursion)(부등식(inequality))을 만족시킨다.
Figure 112010025525048-pct00003
(n=j+1, j+2, ..., N-1)
여기서, 규정된 양의 정수 j는 상기 코드의 j-제한을 정의한다. 그러한 일반화된 피보나치 코드에서 코드워드들의 최대 수는,
Figure 112010025525048-pct00004
로 주어진다.
도 1의 간단한 코드에서와 같이, 일반화된 피보나치 코드에서 바이너리 코드워드(x1, x2, ..., xN)는 입력 u(0≤u<wN +1)를 베이스들 {wn}로 표현함으로써 획득된다. 즉,
Figure 112010025525048-pct00005
.
구현 목적을 위해, 위에서 참조된 미국특허번호 5,760,718에 기술된 바와 같이, 베이스들은 한정된 스팬(span) L을 갖도록 선택된다. 즉,
Figure 112010025525048-pct00006
여기서, Bn은 2-L≤Bn≤1이고, L-비트 표현을 갖는다. 스팬 L의 베이스들을 갖고서, 인코딩은 (L+1)-비트의 넓은 윈도우 - 이는
Figure 112010025525048-pct00007
의 최상위 비트들(most significant bits)로부터 상기 최하위 비트들(least significant bits)까지 런(run)함 - 를 사용하여, 슬라이딩 윈도우(sliding window) 방법으로 수행될 수 있다.
미국특허번호 5,760,718에서와 유사한 열거형 인코딩 아이디어들에 기초하여, 미국특허번호 7,064,687 및 7,071,851은 PRML(G,I) 코드들을 위해 설계된 인코더들 및 디코더들을 개시한다. 이것들은 일반화된 피보나치 코드들로부터 유도된다. 특히, 입력 비트-스트림은 그것의 홀수 및 짝수 인터리브들로 분리되고, 그런 다음 상기 두 개의 인터리브들은 분리된 피보나치 인코더들에 의해 인코딩된다. 피보나치 코드들이 1들의 런들에 대해 j-제한을 부과하므로, 상기 인코더 입력들의 비트 반전(inversion)은 각각이 0들의 비트 런들에 대한 제한을 갖는 두 개의 인코딩된 비트 스트림들을 발생시킨다. 그런 다음, 멀티플렉서는 하나의 (G,I)-제한된 출력 비트-스트림(G=2I임)을 제공하기 위해 상기 인코딩된 비트 스트림들을 인터리브한다. 여기서 I는 원(original) 피보나치 코드에 대해 j의 값과 동일하다. 미국특허번호 7,064,687의 모듈레이션 인코더에서, 짧은 블록 인코더는 상기 홀수 및 짝수 인터리브들의 분리에 앞서 상기 입력 데이터의 서브세트(subset)를 인코딩하는 것이 요구된다. 이는 가능한 입력들을 두 개의 피보나치 인코더들로 한정하기 위해 입력 비트-스트림에 대해 초기 제한을 부과한다. 이는 실제적인 구현을 제공하지만, 짧은 블록 코드를 위한 효과적인 부울 로직(Boolean logic)에 대한 필요성이 있고, 이러한 필요성은 결과적인 PRML(G,I) 코드에 대해 매우 높은 레이트들을 달성하는 것을 어렵게 한다.
본 발명의 제1 측면은 바이너리 입력 데이터의 스트림을 모듈레이션 코딩하기 위한 방법을 제공한다. 상기 방법은, 4-ary 출력 심볼들의 연속(succession)을 생성하기 위해, 4-ary 열거형 인코딩 알고리즘을 상기 입력 비트-스트림에 적용하는 단계 - 상기 4-ary 알고리즘은 입력 비트-스트림의 홀수 및 짝수 인터리브들에서 각각의 일반화된 피보나치 코드들을 동시에 인코딩하도록 작용(operate)됨 -; 및 출력 비트-스트림을 생성하기 위해 각각의 연속적인 4-ary 출력 심볼의 비트들을 인터리브하는 단계를 포함한다.
앞서 기술된 바와 같이, 종래의 기술들에서, 두 개의 분리된 바이너리 인코딩 알고리즘들은 입력 비트-스트림의 분리된 홀수 및 짝수 인터리브들에 대해 독립적으로 작용된다. 이와는 대조적으로, 본 발명의 모듈레이션 기술에서, 4-ary 열거형 인코딩 알고리즘은 4-ary 출력 심볼들을 갖는 하나의 열거형 코드로서 동시에 홀수 및 짝수 인터리브들을 피보나치 인코딩하기 위해 (O/E-인터리브된) 입력 비트-스트림을 형성하는 바이너리 입력 비트들의 연속(succession)에 대해 작용된다. 이러한 하나의 코드는 여기서는 "인터리브된 피보나치 코드(interleaved Fibonacci code)"로 일컬어질 것이다. 위에서 논의된 열거형 인코딩의 원리에 따라, 상기 인터리브된 피보나치 코드의 4-ary 알고리즘은 값에 따라서 상기 입력 비트-스트림의 M-비트 워드들을 4-ary 심볼들을 갖는 출력 코드워드들의 정렬된(ordered) 세트에 매핑한다. 4-ary 심볼들은 각각 두 개의 병렬 비트들(parallel bits)에 의해 표현되고, 그런 다음 이것들은 피보나치-인코딩된 홀수 및 짝수 인터리브들을 갖는 바이너리 출력 스트림을 생성하기 위해 출력 심볼들의 연속(succession)을 위해 인터리브된다. 앞서 설명된 피보나치 코드들의 고유 특성들은 출력 비트-스트림에게 글로벌 및 인터리브된 런-길이 제한들(run-length constraints)을 제공한다. 상기 제한이 1들의 최대 런-길이에 대해 요구되는 어플리케이션들이 예상될 수 있지만, 비트-반전(bit-inversion)은 결과적으로 위에서 논의된 PRML 코드들에 적합한 (G,I)-제한을 발생한다.
앞서 살펴본 바와 같이, 본 발명의 모듈레이션 기술에서는, 종래 기술에서 필요한 두 개의 인코더들과 비교하여, 출력 비트-스트림의 홀수 및 짝수 인터리브들 둘 다를 발생시키기 위해서 하나의 4-ary 열거형 인코더로도 충분함을 알 수 있을 것이다. 또한, 어떤 짧은 블록 인코더도 필요하지 않다. 더 나아가, 상기 모듈레이션 기술은 근본적인 일반화된 피보나치 코드들의 모든 코드워드들을 충분히 이용하는 것이 가능하고, 따라서 PRML(G,I) 코드의 최대 가능 길이를 쉽게 달성한다. 이는 상기 PRML 코드에 대해 가능한 가장 높은 레이트의 결과를 낳는다. 이와는 대조적으로, 이 최대 길이를 달성하는 것은, 짧은 블록 코드에 대해 특히 13/14 이상의 레이트들로 효과적인 부울 로직을 설계함에 있어서의 어려움 때문에 미국특허번호 7,064,687의 모듈레이션 인코더에서는 매우 어려울 수 있다.
4-ary 출력 심볼들의 비트들이 반전(invert)되는 PRML 코드들과 같은 어플리케이션들에서는, 상기 반전은 물론 상기 심볼 비트들의 인터리브 전 또는 후에 수행될 수 있다.
일반적으로, 4-ary 알고리즘에 의해 출력의 O/E 인터리브들에서 인코딩된 상기 피보나치 코드들은 서로 다른 코드들일 수 있고, 또는 동일한 코드일 수 있으나, 더 일반적으로는 동일한 코드가 사용될 것이다. 어느 경우든지, 바람직한 실시예들에서, 상기 근본적인 피보나치 코드(들)의 베이스들은 한정된 스팬(limited span)을 가지며, 상기 인코딩 프로세스가 슬라이딩 윈도우 방식(sliding window fashion)으로 수행되도록 허용한다.
본 발명의 제2 측면은 본 발명의 제1 측면에 따른 방법을 모듈레이션 코딩함으로써 생성된 출력 비트-스트림을 디코딩하기 위한 방법을 제공한다. 상기 디코딩 방법은, 4-ary 심볼들의 연속(succession)을 생성하기 위해 상기 출력 비트 스트림의 비트들을 디-인터리브(de-interleave)하는 단계; 및 상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 4-ary 인코딩 알고리즘에 의해 동시에 인코딩하고, 그에 의해 바이너리 입력 데이터의 상기 스트림을 복원(recover)하기 위해, 4-ary 열거형 디코딩 알고리즘을 4-ary 심볼들에 적용하는 단계를 포함한다.
본 발명의 제3 측면은 바이너리 입력 데이터의 스트림을 모듈레이션 코딩하기 위한 장치를 제공한다. 상기 모듈레이션 코딩 장치는, 4-ary 출력 심볼들의 연속을 생성하기 위해 4-ary 열거형 인코딩 알고리즘을 상기 입력 비트-스트림에 적용하기 위한 4-ary 인코더 - 상기 4-ary 알고리즘은 상기 입력 비트-스트림의 홀수 및 짝수 인터리브들에서 각각의 일반화된 피보나치 코드들을 동시에 인코딩하도록 작용됨 -; 및 출력 비트-스트림을 생성하기 위해 각각의 연속적인 4-ary 출력 심볼의 비트들을 인터리브하기 위한 멀티플렉서를 포함한다.
본 발명의 제4 측면은 본 발명의 제3 측면에 따른 모듈레이션 코딩 장치에 의해 생성된 출력 비트-스트림을 디코딩하기 위한 장치를 제공한다. 상기 디코딩 장치는, 4-ary 심볼들의 연속을 생성하기 위해 상기 출력 비트 스트림의 비트들을 디-인터리브하기 위한 디멀티플렉서(demultiplexer); 및 상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하여, 그에 의해 바이너리 입력 데이터의 상기 스트림을 복원(recover)하기 위해, 4-ary 열거형 디코딩 알고리즘을 상기 4-ary 심볼들에 적용하기 위한 4-ary 디코더를 포함한다.
본 발명의 제5 측면은 데이터 스토리지 시스템을 제공한다. 상기 데이터 스토리지 시스템은, 2N-비트 코드워드들의 연속을 포함하는 출력 비트-스트림을 생성하기 위해 M-비트 워드들의 연속을 포함하는 바이너리 입력 데이터의 스트림을 모듈레이션 코딩하기 위한, 본 발명의 제3 측면에 따른 모듈레이션 코딩 장치; 스토리지 매체 및 기록/재생 메커니즘(recording/reproduction mechanism) - 상기 기록/재생 메커니즘은 상기 스토리지 매체 상의 코드워드들의 연속을 기록하고, 또한 재생 신호(reproduced signal)를 생성하기 위해 상기 스토리지 매체를 읽기 위한 것임 - 을 포함하는 기록 채널(recording channel); 상기 재생 신호에서 2N-비트 워드들의 연속을 검출(detect)하기 위한 검출 장치; 4-ary 심볼들의 연속을 생성하기 위해 상기 검출된 2N-비트 워드들의 비트들을 디-인터리브하기 위한 디멀티플렉서; 및 상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하고, 그에 의해 M-비트 데이터 워드들의 연속을 생성하기 위해, 4-ary 열거형 디코딩 알고리즘을 각각의 2N-비트 워드의 4-ary 심볼들에 적용하기 위한 4-ary 디코더를 포함한다.
그러한 데이터 스토리지 시스템들에서, 상기 모듈레이션 장치에서 생성된 2N-비트 코드워드들은 전형적으로 여러가지 추가의 처리 단계들(예를 들어, 그 채널에 기록되기에 앞서 PRML 시스템들의 경우에서의 프리코딩 및 ECC 코딩하는 단계)을 겪을 것이다. 바람직한 실시예들에서, PRML(G,I) 코드들은 역 연쇄 모듈레이션 기술(reverse concatenation modulation scheme)에서 채용되고, 그에 의해 상기 데이터 스토리지 시스템은, 프리코딩된(precoded) 비트-스트림을 생성하기 위해 상기 모듈레이션 코딩 장치로부터 상기 출력 비트-스트림을 1/(1+D2) 코딩하기 위한 프리코더(percoder), 및 상기 기록 채널로 공급하기 위한 ECC-코딩된 비트-스트림을 생성하기 위해 상기 프리코딩된(precoded) 비트-스트림을 에러-정정 코딩(error-correction coding)하기 위한 ECC 코더를 포함한다. 그런 다음, 상기 검출 장치는 상기 재생 신호에서 검출된 2N-비트 워드들에서의 에러들을 정정하기 위한 ECC 디코더를 포함한다.
시스템들은 물론 기록 매체의 읽기를 허용하지만 상기 매체에 대한 쓰기는 허용하지 않는 것으로 고려될 수 있다. 그러한 것의 일 예는 읽기-전용 CD 또는 DVD 플레이어이다. 따라서, 그러한 시스템들은 대응하는 인코딩 장치없이 본 발명의 디코딩 장치 구현을 채용할 수 있다. 특히, 본 발명의 제6 측면은 본 발명의 제1 측면에 따른 모듈레이션 코딩 방법을 구현하는 기록 시스템에 의해 스토리지 매체 상에 기록된 데이터를 재생하기 위한 데이터 재생 시스템을 제공한다. 상기 데이터 재생 시스템은, 재생 신호를 생성하기 위해 상기 스토리지 매체를 읽기 위한 읽기 메커니즘; 상기 재생 신호에서 2N-비트 워드들의 연속을 검출하기 위한 검출 장치; 4-ary 심볼들의 연속을 생성하기 위해 상기 검출된 2N-비트 워드들의 비트들을 디-인터리브하기 위한 디멀티플렉서; 및 상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 모듈레이션 코딩 방법의 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하고, 그에 의해 M-비트 데이터 워드들의 연속을 생성하기 위해, 4-ary 열거형 디코딩 알고리즘을 각각의 2N-비트 워드의 4-ary 심볼들에 적용하기 위한 4-ary 디코더를 포함한다.
일반적으로, 여기서는 특징들이 발명의 일 측면을 참조하여 기술되는 경우, 대응하는 특징들은 발명의 또 다른 측면의 실시예들에서 제공될 수도 있다.
이제 발명의 바람직한 실시예들은 여기에 첨부되는 도면들을 참조하여, 예를 들어 설명될 것이다.
도 1은 간단한 피보나치 코드를 사용하는 인코딩 프로세스를 도시한다.
도 2는 발명을 구현하는 데이터 스토리지 시스템의 개략적인 블록도이다.
도 3은 도 2의 시스템의 모듈레이션 인코더의 블록도이다.
도 4는 도 2의 시스템의 모듈레이션 디코더의 블록도이다.
도 5는 도 3의 모듈레이션 인코더에 의해 구현된 인코딩 알고리즘의 작용에서 수행되는 처리 단계들의 브레이크다운(breakdown)을 제공한다.
도 6 및 7은 도 3의 모듈레이션 인코더의 실시예들에 채용된 각각의 피보나치 코드들의 베이스들의 표이다.
도 8은 모듈레이션 인코더의 실시예들에 채용된 세 개의 PRML(G,I)을 비교한다.
도 2의 블록도는 기록/재생 프로세스와 관련된 메인 컴포넌트들을 보여주는 발명을 구현하는 데이터 스토리지 시스템의 개략적인 표현이다. 이 실시예에서, 상기 데이터 스토리지 시스템은 테이프 드라이브 - 이는 개괄적으로 1로 나타냄 - 이고, 기록 채널(2)을 갖는다. 기록 채널(2)은 자기 테이프(4)에 대해 읽고 쓰기 위한 읽기/쓰기 헤드(3)를 갖는다. 기록 측에서, 테이프 드라이브(1)는 PRML(G,I) 인코더(5), 프리코더(6), 및 ECC 코더(이는 개괄적으로 7로 나타냄)의 형태로 모듈레이션 코딩 장치를 갖는다. ECC 코더(7)는 RS 패리티 발생기(8) 및 부분 인터리버(9)를 갖는다. 재생 측에서, 드라이브(1)는 검출 장치(이는 개괄적으로 11로 나타내고, 검출기(12) 및 ECC 디코더(13)를 포함함), 및 모듈레이션 디코더(14)를 포함한다.
동작시, 기록될 데이터는 M-비트 데이터 워드들의 연속을 포함하는 입력 비트-스트림의 형태로 PRML 인코더(5)에 공급된다. 인코더(5)는 2N-비트 코드워드들의 연속을 포함하는 (G,I)-제한된 인코딩된 비트-스트림을 생성하기 위해 이하에서 기술되는 입력 데이터의 모듈레이션 코딩을 수행한다. 흔히 PRML(G,I) 코드들에 기초한 모듈레이션 시스템들에서는, 상기 인코딩된 비트-스트림은 프리코더(precoder)(6)에 의해 1/(1+D2) 프리코딩(precoding)을 받게 되는데, 여기서 "+"는 모듈로-2 더하기(modulo-2 addition)를 의미한다. 앞서 논의된 역 연쇄(reverse concatenation) 개념에 따라, ECC 코딩은 이 실시예에 모듈레이션 코딩 후 수행된다. 이 경우, ECC 코딩은 프리코더(6)로부터 코드워드 스트림에서의 패리티 심볼들의 부분 인터리빙(partial interleaving)을 수반한다. 비제한된(unconstrained) RS 패리티 심볼들은 패리티 발생기(8)에 의해 2N-비트 코드워드들로부터 알려진 방법으로 발생된다. 그런 다음 이들 심볼들은 부분 인터리버(9)에 의해 인코딩된 비트 스트림에서 원하는 포인트들에 삽입된다. 그 결과의 ECC-코딩된 비트-스트림은 그런 다음 채널 2에서의 통상의 신호 처리 후 테이프(4)에 기록된다. 재생시, 통상의 재생 신호 처리 후, 테이프(4)를 읽음으로써 획득된 재생 신호가 공급된다. 검출기(12)는 일반적으로 비터비(Viterbi) 검출기와 같은 소프트-입력/하드 출력 검출기(soft-input/hard output detector), 또는 소프트-입력/소프트 출력 검출기(soft-input/soft-output detector)인데, 이러한 검출기는 각각의 기록된 비트에 대해 우도 측정(likelihood measure)을 제공하고, 알려진 방법으로 재생 신호에서 2N-비트 워드들을 검출한다. 그런 다음, ECC 디코더(13)에 의해 알려진 방법으로 패리티 체킹 및 에러 정정 처리가 수행된다. 그 결과의 2N-비트 워드들의 연속은 그런 다음 모듈레이션 디코더(14)에 공급되는데, 모듈레이션 디코더(14)는 상기 원(original) 입력 데이터에 대응하는 M-비트 워드들의 연속을 생성하기 위해서 이하에서 상세히 논의된 것과 같이 동작한다.
테이프 드라이브(1)의 모듈레이션 인코더(5) 및 디코더(14)의 동작은 이제 도 3 및 도 4를 참조하여 상세히 기술될 것이다. 주로 이들 컴포넌트들은 소프트웨어에서 또는 하드웨어와 소프트웨어의 조합에서 구현될 수 있고, 실제 하드와이어된 로직(hardwired logic)에서의 구현은 동작의 속도 및 간략화를 위해 바람직하다. 적절한 구현들은 여기의 설명들로부터 당해 기술 분야에서 숙련된 자들에게는 분명해질 것이다.
도 3에 도시된 바와 같이, PRML(G,I) 인코더(5)는 4-ary 열거형 인코더(16), 멀티플렉서(17) 및 인버터(18)를 포함한다. 간단하게는, 위에서 정의된 인터리브된 피보나치 코드를 구현하기 위해 인코더(16)는 4-ary 열거형 인코딩 알고리즘을 상기 입력 비트-스트림에 적용한다. 즉, 인코더(16)는 상기 입력 비트-스트림의 홀수 및 짝수 인터리브들에서 각각의 일반화된 피보나치 코드들을 4-ary 출력 심볼들을 갖는 하나의 열거형 코드로서 동시에 인코딩하도록 동작한다. 상기 입력 비트-스트림에서 각각의 M-비트 워드에 있어서, 인코더(16)는 도면에서 굵은 선으로 표시된 N 4-ary 출력 심볼들의 연속을 생성한다. 상기 4-ary 심볼들은 각각 2 비트들로 표현된다. 그런 다음, 이들 비트들은 각각의 입력 M-비트 워드에 대해 2N 비트들의 바이너리 출력 스트림을 생성하도록 4-ary 심볼들의 연속을 위해 멀티플렉서(17)에 의해 인터리브된다. 그런 다음, 그 결과의 모듈레이션 인코딩된 비트-스트림이 위에서 설명된 바와 같이 (G,I) 제한을 만족시키는 2N-비트 코드워드들의 연속으로 구성되도록 하기 위해, 인버터(18)에 의해 비트-반전(inversion)이 수행된다.
열거형 인코딩의 원리들에 따라, 인코더(16)에 의해 구현된 4-ary 열거형 인코딩 알고리즘은 상기 입력 워드의 값에 의존하여 입력 M-비트 워드들을 직접 4-ary 코드워드들에 매핑한다. 이 실시예의 4-ary 알고리즘은 하나의 4-ary 심볼 - 이는 각각의 반복 단계 i에 대해, 바이너리 출력 쌍
Figure 112010025525048-pct00008
으로 표현됨 - 을 생성하는 반복 프로세스로서 인코더(16)에 적용된다. 인터리브된 피보나치 코드(IF)에 대해 각각이 N 개의 한정된 베이스들 {wn} (n=1에서 N)을 갖는 두 개의 근본적인 피보나치 코드들을 동시에 인코딩하기 위해, 상기 알고리즘은 값
Figure 112010025525048-pct00009
(k=0에서 M-1)의 입력 워드
Figure 112010025525048-pct00010
를 UIF에 의존하여 4-ary 코드워드
Figure 112010025525048-pct00011
에 매핑한다. 특히, 입력 UIF가 범위
Figure 112010025525048-pct00012
로 주어진다면, 알고리즘은 다음과 같다.
Figure 112010025525048-pct00013

위의 고려사항은, 상기 알고리즘이 본질적으로, M-비트 워드 값 UIF에 대해 입력 값 u를 초기화하는 것, 그런 다음, i=1에서 N까지의 각각의 반복 i에 대해, 변수들
Figure 112010025525048-pct00014
에 대한 값들을 계산하는 것, 그리고 상기 입력 값 u를
Figure 112010025525048-pct00015
과 비교함으로써 출력 심볼
Figure 112010025525048-pct00016
을 발생시키는 것을 수반한다는 것을 보여준다. 변수들
Figure 112010025525048-pct00017
은, 그것들이 각각의 반복에 대해 가능한 입력 값들(u)의 범위를 네 개의 서브-범위들:
Figure 112010025525048-pct00018
Figure 112010025525048-pct00019
Figure 112010025525048-pct00020
로 분할하는 역할을 하므로, "분할 인덱스들(partitioning indices)"로 일컬어진다.
각각의 반복에 대해, 가능한 입력 값들 u의 범위는
Figure 112010025525048-pct00021
이고, 여기서 Uo및 Ue는 상기 갱신에 앞서 반복 i에서 홀수 및 짝수 상한들(upper bounds)이다. 상기 초기 입력 값들 UIF가 M-비트 워드이므로, 그리고
Figure 112010025525048-pct00022
이므로, 제1 반복 i=1에 대한 분할 인덱스들은 가능한 M-비트 값들의 범위를 네 개로 분할한다. 더 상세하게는, 출력 심볼
Figure 112010025525048-pct00023
의 발생은 다음의 (a) 내지 (d) 단계들을 포함한다.
(a) 분할 인덱스들
Figure 112010025525048-pct00024
계산;
(b) 위에 정의된 네 개의 서브-범위들 중 어느 것이 그 입력 값을 포함하는지를 결정하기 위해 상기 현재의 입력 값을 상기 분할 인덱스들에 비교함;
(c) 특정 서브-범위가 그 입력 값을 포함하는가에 따라
Figure 112010025525048-pct00025
의 두 개의 비트들을 설정; 그런 다음,
(d) u의 그 값을 포함하는 서브-범위의 하한값(lower boundary value)의 현재 값으로부터 뺌으로써 상기 입력 값을 갱신함.(여기서, 만약 u가 가장 낮은 서브-범위에 있다면 상기 하한값은 0으로 되므로, 상기 갱신된 입력 값은 변하지 않을 것이다).
분할 인덱스들
Figure 112010025525048-pct00026
은 "부분 사전식 인덱스들" 의 제1 및 제2 쌍들
Figure 112010025525048-pct00027
Figure 112010025525048-pct00028
로부터 계산된다. 인덱스
Figure 112010025525048-pct00029
는 이후에는 아래쪽의 부분 사전식 인덱스들(lower partial lexicographic indices)로 일컬어지고, 상한들(upper bounds)
Figure 112010025525048-pct00030
은 이후에는 위쪽의 부분 사전식 인덱스들(upper partial lexicographic indices)로 일컬어진다. 상기 쌍의 각각의 값이 인버터(17)로부터의 바이너리 출력 스트림의 홀수 및 짝수 인터리브들 중 각각의 하나와 연관되고, 그리하여 사실상, 인터리브된 피보나치 코드에서의 근본적인 피보나치의 하나 또는 다른 것과 연관된다는 점에서, 이들 값 쌍들은 부분 인덱스들로 일컬어진다. 위의 알고리즘에서 표시된 바와 같이, 각각의 쌍
Figure 112010025525048-pct00031
Figure 112010025525048-pct00032
의 부분 사전식 인덱스들은 반복 수(iteration number) i에 의존하여 선택된 각각의 피보나치 베이스들(wN -i+1)에 의존한다. 만약 상기 근본적인 피보나치 코드들이 다르면, 하나의 코드로부터 적절한 베이스는
Figure 112010025525048-pct00033
를 계산하기 위해 이용될 수 있고, 다른 코드로부터 적절한 베이스는
Figure 112010025525048-pct00034
Figure 112010025525048-pct00035
를 위해 사용될 것이다. 그러나, 인코더(16)의 바람직한 실시예들에서, 상기 근본적인 피보나치 코드들은 동일하고, 특히 바람직한 예들은 이하에서 기술될 것이다. 더욱이, 바람직한 실시예들에서, 상기 근본적인 피보나치 코드들은 앞서 정의된 바와 같이 한정된 스팬 L을 갖는 베이스들을 갖는다. 이 경우, 당해 기술 분야에서 숙련된 자들에게 분명한 바와 같이 인코더(16)는 폭 2L+2의 슬라이딩 윈도우 인코더(sliding window encoder)로서 동작한다.
도 4는 PRML(G,I) 인코더(5)에 대응하는 모듈레이션 디코더(14)를 보여준다. 도시된 바와 같이, 디코더(14)는 인버터(20), 디멀티플렉서(21) 및 4-ary 디코더(22)를 포함한다. 인버터(20)는 재생 신호로부터 검출된 2N-비트 워드들의 연속을 수신하고, 그 비트들을 변환하여 바이너리 출력 스트림을 디멀티플렉서(21)로 제공한다. 이는 각각의 검출된 2N-비트 워드에 대해 N 4-ary 출력 심볼들
Figure 112010025525048-pct00036
의 연속을 생성하기 위해 수신된 바이너리 스트림의 홀수 및 짝수 비트들을 인터리브한다. N 4-ary 심볼들의 각각의 그룹은 그런 다음 입력 데이터의 원(original) 스트림에서 M-비트 워드에 대응하는 출력 M-비트 워드를 복원하기 위해 4-ary 디코더(22)에 의해 디코딩된다. 4-ary 디코더(22)는 인코더(16)에 의해 적용된 인코딩 알고리즘의 역(inverse)을 구현하고, 그래서 상기 4-ary 인코더에 의해 적용된 인터리브된 피보나치 코드의 근본적인 피보나치 코드들을 동시에 디코딩하기 위해 4-ary 열거형 디코딩 알고리즘을 적용한다. 연속적인 반복 단계들에서, 상기 알고리즘은 4-ary 심볼들의 비트들의 쌍
Figure 112010025525048-pct00037
을 처리한다. 특히, 상기 홀수 및 짝수 인터리브들에서 근본적인 피보나치 코드들의 코드워드들
Figure 112010025525048-pct00038
Figure 112010025525048-pct00039
이 주어진 경우, 상기 알고리즘은 다음과 같다.
Figure 112010025525048-pct00040

앞서와 같이, 만약 상기 근본적인 피보나치 코드들이 다르면, 쌍들
Figure 112010025525048-pct00041
Figure 112010025525048-pct00042
의 홀수 및 짝수 인덱스들에 대한 베이스들( wN -i+1)은 다를 수 있고, 그래서 상기 디코더는 베이스들이 한정된 스팬 L을 갖는 바람직한 경우에, 폭 2L+2의 슬라이딩 윈도우 디코더로서 동작한다.
도 5의 표는 반복(iteration) 당 요구되는 다수의 서로 다른 종류의 처리 단계들의 브레이크다운(breakdown)으로서 4-ary 인코더 동작의 복잡함(complexity)의 레벨의 표시(indication)를 제공한다. 중요한 복잡함은 다수의 곱하기(곱셈)(multiplication)가 요구된다는 데에 있다. 상기 표에 나타낸 바와 같이, 피보나치 베이스들이 한정된 스팬 L을 갖는 (L+1)-비트 수들에 대해 단지 세 번의 곱하기가 요구된다. (L+1)-비트 수들의 비교들을 위한 필요는 없으므로 디코딩 알고리즘의 복잡함은 훨씬 덜하다. 스토리지 요구 면에서, 상기 홀수 및 짝수 인터리브들에서 근본적인 피보나치 코드들이 스팬 L의 베이스들과 일치하는 경우, 4-ary 인코더는 단지 상기 N L-비트 베이스 엘리먼트들을 저장할 필요만이 있다. 상기 디코더는 L-비트 숫자들이 있는 2N 위쪽의(upper) 부분 사전식 인덱스들을 추가적으로 저장할 필요가 있다.
위에서 기술된 상기 4-ary 열거형 인코딩 기술들이 높은 효율의 모듈레이션 인코딩 및 디코딩 시스템들로 이끈다는 것을 알 수 있을 것이다. 이들 기술들은 근본적인 일반화된 피보나치 코드들의 모든 코드워드들이 완전히(fully) 이용될 수 있도록 하고, PRML(G,I) 코드의 가능한 최대 길이의 달성을 용이하게 한다. 이는 상기 PRML 코드들에 대해 가능한 가장 높은 레이트들이 달성되도록 허용한다. 코드-레이트(code-rate)에서의 그 결과의 이득들(gains)은 도 2의 RC 기술에서와 같이 제한되지 않는 심볼들의 부분 인터리빙의 사용을 지원한다. 더욱이, 상기 높은-레이트 코딩 기술들은 그 기술을 LDPC(저밀도 패리티 체크) 코드들에 기초한 ECC 기술들 또는 터보 코딩 기술들(turbo coding schemes)과 함께 사용하도록 부여한다. 상기 LDPC 코드들에 기초한 ECC 기술들 또는 터보 코딩 스킴들은 상기 검출기로부터 상기 인코더로 소프트 정보의 메시지 패싱(message passing)을 필요로 한다. 본 발명의 실시예들에 대한 바람직한 PRML 코드들의 특정 예들은 이제 도 6 내지 8을 참조하여 기술될 것이다.
3 레이트 (2N-P)/2N 코드들은 다음에서 기술될 것이다(즉, M=2N-P). 각각의 경우, 인터리브된 피보나치 코드에서 두 개의 근본적인 피보나치 코드들은 동일하다. 제1 코드에서, P=1이다. 근본적인 j=7의 일반화된 피보나치 코드(스팬 L=9의)에 대한, 베이스들
Figure 112010025525048-pct00043
(n=1, 2, N=118)은,
Figure 112010025525048-pct00044
로 정의된다.
이들 베이스들은 길이 236 및 235/236의 인터리브된 피보나치 코드를 제공한다. 그 결과의 PRML-코드는 코드워드들 내에서 및 연쇄 코드워드들의 코드워드 바운더리들(boundaries)에 걸쳐 I=7 및 G=14 제한을 충족시킨다. 이 PRML 코드는 적어도 16 비트 포지션들로 간격진(spaced) 어떤 원하는 위치들에서 8-비트 RS 패리티 바이트들의 부분 심볼 인터리빙을 지원한다. 그러한 비제한된 바이트들의 삽입은 I=11 및 G=22에 대한 모듈레이션 제한들을 약하게 한다. N=118 베이스 엘리먼트들보다 더 적게 사용함으로써 획득되는 PRML-코드는 더 긴 코드와 같은 모듈레이션 제한들을 충족시키고, 동일한 제한들을 갖는 더 짧은 PRML-코드들은 쉽게 구성될 수 있다(예를 들어, 레이트-223/224 코드).
제2 및 제3 코드들에서 P=3이다. 이 형태의 코드 레이트들, 즉 (2N-3)/2N을 선택함으로써, 각각 길이 200 및 400의 두 개의 매우 높은 레이트 코드들을 설계하는 것이 가능해졌다. 이들 중 첫 번째는 레이트 197/200의 PRML(G=10, I=5) 코드이다. 이 코드는 N=100 및 j=5이고, 도 6의 표에서 설정된 근본적인 일반화된 피보나치 코드의 베이스들 및 j-프로파일(profile)에 의해 완전히 정의된다. 근본적인 피보나치 코드의 j-제한 프로파일은 코드워드들 내에서 j(n)=6이다(즉, n=6,7,...199). 상기 바운더리들에서, 다음의 j-제한들이 적용된다.
좌측 바운더리에서 :
Figure 112010025525048-pct00045
;
우측 바운더리에서 :
Figure 112010025525048-pct00046
.
따라서, j=6 제한은 코드워드들 내에서(within codewords) 그리고 코드워드 바운더리들에 걸쳐(across codeword boundaries) 적용된다. 그리하여, 그 결과의 PRML 코드는 코드워드들 내에서 그리고 코드워드 바운더리들에 걸쳐 G=12 및 I=6을 충족시킨다.
위에서 기술된 세 개의 코드들은 도 8의 비교 표에 의해 나타낸 바와 같이 다음의 특징적인 특성들을 갖는다. 즉, PRML(G=14, I=7) 코드는 가장 높은 레이트이지만 가장 약한 제한들을 가지며; PRML(G=10, I=5) 코드는 가장 타이트한 제한들이지만 가장 낮은 레이트를 가지며; PRML(G=12, I=6) 코드는 그것이 중간 강도의 제한들을 가지며 거의 PRML(14, 7) 코드의 레이트를 달성한다는 점에서 두 개의 다른 코드들의 좋은 절충점(good compromise)이다. 세 개의 코드들 모두는 충분히 간격진(spaced) 삽입 위치들(insertion locations)에서 제한되지 않은 패리티 심볼들의 부분 심볼 인터리빙을 지원한다.
본 발명의 바람직한 실시예들이 위에서 기술되었지만, 본 발명의 범위를 벗어나지 않고서도 많은 변경들 및 수정들이 있을 수 있다.

Claims (29)

  1. 바이너리 입력 데이터의 스트림을 모듈레이션 코딩(modulation coding)하기 위한 방법에 있어서,
    4-ary 출력 심볼들의 연속(succession)을 생성하기 위해, 4-ary 열거형 인코딩 알고리즘을 입력 비트-스트림에 적용하는 단계 - 상기 4-ary 열거형 인코딩 알고리즘은 상기 입력 비트-스트림의 홀수 및 짝수 인터리브들에서 각각의 일반화된 피보나치 코드들을 동시에 인코딩하도록 동작함 -; 및
    출력 비트-스트림을 생성하기 위해, 각각의 연속적인 4-ary 출력 심볼의 비트들을 인터리브(interleave)하는 단계를 포함하는,
    모듈레이션 코딩 방법.
  2. 청구항 1에 있어서, 상기 모듈레이션 코딩 방법은,
    (G,I)-제한된 출력 비트-스트림을 생성하기 위해, 상기 4-ary 출력 심볼들의 비트들을 반전(invert)시키는 단계를 포함하는,
    모듈레이션 코딩 방법.
  3. 청구항 1에 있어서, 상기 4-ary 알고리즘은 상기 홀수 및 짝수 인터리브들에서 동일한 피보나치 코드를 동시에 인코딩하도록 동작하는,
    모듈레이션 코딩 방법.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 청구항 1에 따른 모듈레이션 코딩 방법에 의해 생성된 출력 비트-스트림을 디코딩하기 위한 방법에 있어서,
    4-ary 심볼들의 연속을 생성하기 위해, 상기 출력 비트 스트림의 비트들을 디-인터리브(de-interleave)하는 단계; 및
    상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하고 그에 의해 바이너리 입력 데이터의 상기 스트림을 복원하기 위해, 4-ary 열거형 디코딩 알고리즘을 상기 4-ary 심볼들에 적용하는 단계를 포함하는,
    디코딩 방법.
  13. 바이너리 입력 데이터의 스트림을 모듈레이션 코딩하기 위한 장치로서,
    청구항 1 내지 3 중 어느 한 항에 기재된 방법의 각 단계를 수행하기 위한 수단들을 포함하는
    모듈레이션 코딩 장치.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 청구항 13에 따른 모듈레이션 코딩 장치에 의해 생성된 출력 비트-스트림을 디코딩하기 위한 장치에 있어서,
    4-ary 심볼들의 연속을 생성하기 위해 상기 출력 비트 스트림의 비트들을 디-인터리브하기 위한 디멀티플렉서; 및
    상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하여, 그에 의해 바이너리 입력 데이터의 상기 스트림을 복원하기 위해, 4-ary 열거형 디코딩 알고리즘을 상기 4-ary 심볼들에 적용하기 위한 4-ary 디코더를 포함하는,
    디코딩 장치.
  25. 데이터 스토리지 시스템에 있어서,
    2N-비트 코드워드들의 연속을 포함하는 출력 비트-스트림을 생성하기 위해 M-비트 워드들의 연속을 포함하는 바이너리 입력 데이터의 스트림을 모듈레이션 코딩하기 위한, 청구항 13에 따른 모듈레이션 코딩 장치;
    스토리지 매체 및 기록/재생 메커니즘 - 상기 기록/재생 메커니즘은 상기 스토리지 매체 상에 상기 코드워드들의 연속을 기록하고, 또한 재생 신호를 생성하기 위해 상기 스토리지 매체를 읽기 위한 것임 - 을 포함하는 기록 채널(recording channel);
    상기 재생 신호에서 2N-비트 워드들의 연속을 검출(detect)하기 위한 검출 장치;
    4-ary 심볼들의 연속을 생성하기 위해 상기 검출된 2N-비트 워드들의 비트들을 디-인터리브하기 위한 디멀티플렉서; 및
    상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하고, 그에 의해 M-비트 데이터 워드들의 연속을 생성하기 위해, 4-ary 열거형 디코딩 알고리즘을 각각의 2N-비트 워드의 4-ary 심볼들에 적용하기 위한 4-ary 디코더를 포함하는,
    데이터 스토리지 시스템.
  26. 청구항 25에 따른 데이터 스토리지 시스템을 포함하는 테이프 드라이브로서, 상기 스토리지 매체는 자기 테이프를 포함하는,
    테이프 드라이브.
  27. 데이터 스토리지 시스템에 있어서,
    2N-비트 코드워드들의 연속을 포함하는 출력 비트-스트림을 생성하기 위해 M-비트 워드들의 연속을 포함하는 바이너리 입력 데이터의 스트림을 모듈레이션 코딩하기 위한, 청구항 13에 따른 모듈레이션 코딩 장치;
    프리코딩된 비트-스트림을 생성하기 위해 상기 모듈레이션 코딩 장치로부터 상기 출력 비트-스트림을 1/(1+D2) 코딩하기 위한 프리코더(precoder);
    ECC-코딩된 비트-스트림을 생성하기 위해 상기 프리코딩된 비트-스트림을 에러-정정 코딩(error-correction coding)하기 위한 ECC 코더;
    스토리지 매체 및 기록/재생 메커니즘 - 상기 기록/재생 메커니즘은 상기 스토리지 매체 상에 상기 ECC-코딩된 비트-스트림을 기록하고, 또한 재생 신호를 생성하기 위해 상기 스토리지 매체를 읽기 위한 것임 - 을 포함하는 기록 채널(recording channel);
    상기 재생 신호에서 2N-비트 워드들의 연속을 검출하기 위한 검출 장치 - 상기 검출 장치는 상기 검출된 2N-비트 워드들에서 에러들을 정정하기 위한 ECC 디코더를 포함함 -;
    4-ary 심볼들의 연속을 생성하기 위해 상기 검출된 2N-비트 워드들의 비트들을 디-인터리브하기 위한 디멀티플렉서; 및
    상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하고, 그에 의해 M-비트 데이터 워드들의 연속을 생성하기 위해, 4-ary 열거형 디코딩 알고리즘을 각각의 2N-비트 워드의 4-ary 심볼들에 적용하기 위한 4-ary 디코더를 포함하는,
    데이터 스토리지 시스템.
  28. 삭제
  29. 청구항 1에 따른 모듈레이션 코딩 방법을 구현하는 기록 시스템에 의해 스토리지 매체 상에 기록된 데이터를 재생하기 위한 데이터 재생 시스템에 있어서,
    재생 신호를 생성하기 위해 상기 스토리지 매체를 읽기 위한 읽기 메커니즘;
    상기 재생 신호에서 2N-비트 워드들의 연속을 검출하기 위한 검출 장치;
    4-ary 심볼들의 연속을 생성하기 위해 상기 검출된 2N-비트 워드들의 비트들을 디-인터리브하기 위한 디멀티플렉서; 및
    상기 홀수 및 짝수 인터리브들에 적용된 상기 일반화된 피보나치 코드들을 상기 모듈레이션 코딩 방법의 4-ary 인코딩 알고리즘에 의해 동시에 디코딩하고, 그에 의해 M-비트 데이터 워드들의 연속을 생성하기 위해, 4-ary 열거형 디코딩 알고리즘을 각각의 2N-비트 워드의 4-ary 심볼들에 적용하기 위한 4-ary 디코더를 포함하는,
    데이터 재생 시스템.
KR1020107008733A 2007-11-07 2008-10-23 모듈레이션 코딩 및 디코딩 KR101211244B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07120162 2007-11-07
EP07120162.8 2007-11-07

Publications (2)

Publication Number Publication Date
KR20100089827A KR20100089827A (ko) 2010-08-12
KR101211244B1 true KR101211244B1 (ko) 2012-12-11

Family

ID=40587582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107008733A KR101211244B1 (ko) 2007-11-07 2008-10-23 모듈레이션 코딩 및 디코딩

Country Status (7)

Country Link
US (1) US7786906B2 (ko)
EP (1) EP2212999B1 (ko)
JP (1) JP5031100B2 (ko)
KR (1) KR101211244B1 (ko)
CN (1) CN101849361B (ko)
TW (1) TW200945797A (ko)
WO (1) WO2009060332A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012026787A2 (en) * 2010-08-26 2012-03-01 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving data in a communication or broadcasting system using linear block code
US8743499B2 (en) * 2012-06-19 2014-06-03 International Business Machines Corporation Adaptive soft-output detector for magnetic tape read channels
US8743500B2 (en) * 2012-06-19 2014-06-03 International Business Machines Corporation Adaptive soft-output detector for magnetic tape read channels
US8743498B2 (en) 2012-06-19 2014-06-03 International Business Machines Corporation Adaptive soft-output detector for magnetic tape read channels
US8797670B2 (en) 2012-06-19 2014-08-05 International Business Machines Corporation Adaptive soft-output detector for magnetic tape read channels
GB2506159A (en) 2012-09-24 2014-03-26 Ibm 2 Stage RLL coding, standard coding with global/interleave constraints, then sliding window substitution with sequences having different constraints
EP3202069A4 (en) * 2014-09-29 2018-07-18 The Regents of the University of California Methods and apparatus for coding for interference network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7064687B1 (en) 2005-01-31 2006-06-20 Hitachi Global Storage Technologies Netherlands B.V. Techniques for modulating data using short block encoders
US7071851B1 (en) 2005-01-31 2006-07-04 Hitachi Global Storage Technologies Netherlands B.V. Techniques for implementing non-uniform constraints in modulation encoded data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3718863A (en) * 1971-10-26 1973-02-27 J Fletcher M-ary linear feedback shift register with binary logic
JP3425152B2 (ja) 1995-02-03 2003-07-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (n−1)ビット情報語系列をnビット・チャネル語系列に符号化する符号化装置およびnビット・チャネル語系列を(n−1)ビット情報語系列に複号する複号装置
US7126502B2 (en) * 2005-02-01 2006-10-24 Hitachi Global Storage Technologies Netherlands B.V. Techniques for using interleaved encoders to obtain modulation constraints
CN101431335B (zh) * 2007-11-07 2011-11-16 国际商业机器公司 用于调制编码和解码的方法、装置和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7064687B1 (en) 2005-01-31 2006-06-20 Hitachi Global Storage Technologies Netherlands B.V. Techniques for modulating data using short block encoders
US7071851B1 (en) 2005-01-31 2006-07-04 Hitachi Global Storage Technologies Netherlands B.V. Techniques for implementing non-uniform constraints in modulation encoded data

Also Published As

Publication number Publication date
KR20100089827A (ko) 2010-08-12
US7786906B2 (en) 2010-08-31
US20090115647A1 (en) 2009-05-07
CN101849361A (zh) 2010-09-29
EP2212999B1 (en) 2017-11-22
EP2212999A2 (en) 2010-08-04
JP2011503762A (ja) 2011-01-27
CN101849361B (zh) 2014-04-30
WO2009060332A3 (en) 2009-09-11
JP5031100B2 (ja) 2012-09-19
WO2009060332A2 (en) 2009-05-14
TW200945797A (en) 2009-11-01

Similar Documents

Publication Publication Date Title
US6018304A (en) Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
KR101114057B1 (ko) Rll 인코딩
US7719444B2 (en) Modulation coding
KR100935842B1 (ko) 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록재생 장치
KR101244580B1 (ko) 코더, 및 제약 d=1,r=2를 갖는 패리티 상보적 워드할당에 의한 코드의 코딩방법
US7530003B2 (en) Permuting MTR code with ECC without need for second MTR code
US7071851B1 (en) Techniques for implementing non-uniform constraints in modulation encoded data
EP1679597A2 (en) Method for imposing modulation constraints on data and disk drive system
KR101211244B1 (ko) 모듈레이션 코딩 및 디코딩
JPH11328871A (ja) 部分応答磁気記録チャネルのためのレ―ト16/17(0,5)変調コ―ドの装置および方法
US8854237B2 (en) Modulation encoding and decoding
JP2001060872A (ja) データ符号化システム
Hareedy et al. LOCO codes: Lexicographically-ordered constrained codes
US6229458B1 (en) Rate 32/34 (D=0, G=9/I=9) modulation code with parity for a recording channel
US7786905B2 (en) Modulation coding and decoding
JPH0863905A (ja) 記録再生装置、ディジタル信号処理装置およびエラー訂正方法
US7616134B1 (en) Systems and methods for enumerative encoding and decoding of maximum-transition-run codes and PRML (G,I,M) codes
Thapar et al. On the performance of a rate 8/10 matched spectral null code for class-4 partial response
US6933865B1 (en) Method and apparatus for coded symbol stuffing in recording systems
JP3810765B2 (ja) 複雑度を減らしたコードテーブルを使用する復調装置及びその方法
US20050289443A1 (en) Method and apparatus for additive trellis encoding
Blaum et al. High-rate modulation codes for reverse concatenation
US7138931B2 (en) Recording and reproducing apparatus
Ytrehus Upper bounds on error-correcting runlength-limited block codes
Lee et al. Error correcting run-length limited codes for magnetic recording

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: 20151030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee