KR20010102333A - 가변 길이의 코드 워드의 데이터 스트림을 만드는 방법 및장치와 가변 길이의 코드 워드의 데이터 스트림을 읽어내는 방법 및 장치 - Google Patents

가변 길이의 코드 워드의 데이터 스트림을 만드는 방법 및장치와 가변 길이의 코드 워드의 데이터 스트림을 읽어내는 방법 및 장치 Download PDF

Info

Publication number
KR20010102333A
KR20010102333A KR1020017010712A KR20017010712A KR20010102333A KR 20010102333 A KR20010102333 A KR 20010102333A KR 1020017010712 A KR1020017010712 A KR 1020017010712A KR 20017010712 A KR20017010712 A KR 20017010712A KR 20010102333 A KR20010102333 A KR 20010102333A
Authority
KR
South Korea
Prior art keywords
code words
segment
code word
data stream
code
Prior art date
Application number
KR1020017010712A
Other languages
English (en)
Other versions
KR100407479B1 (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 KR20010102333A publication Critical patent/KR20010102333A/ko
Application granted granted Critical
Publication of KR100407479B1 publication Critical patent/KR100407479B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)

Abstract

다수 개의 코드 워드 세트로 나뉘어지는 가변 길이 코드 워드의 데이터 스트림 생성 방법에 있어서, 세그먼트들을 갖는 하나의 래스터가 데이터 스트림을 위해 지정되고, 두 개의 이웃하는 래스터 포인트는 하나의 세그먼트를 규정지으며, 첫 번째 세트의 코드 워드들은 래스터 포인트에서 시박하여 데이터 스트림에 기록된다. 계속해서, 두 번째 세트의 코드 워드들은 예정된 지정 규칙에 따라 데이터 스트림에 기록되고, 두 번째 세트의 각 코드 워드는 다른 세그먼트에 지정된다. 코드 워드 전체나 그것들의 지정에 따라 기록될 수 없는 코드 워드의 부분들은 저장되어서 다음 시도에서 데이터 스트림으로 들어가고, 예정된 규정에 의한 지정은 각 시도 때마다 변경된다. 이 과정은 존재할 수 있는 다음의 세트에 대해 유사하게 반복된다. 그래서, 한 세트의 해당 코드 워드들은 한 세그먼트씩 기록되기 때문에, 두 번째 세트의 코드 워드들의 끝이 다음에 계속되는 두 번째 세트의 코드 워드들의 시작으로부터 분리되고, 그 결과 에러 전파의 감소를 가져온다.

Description

가변 길이의 코드 워드의 데이터 스트림을 만드는 방법 및 장치와 가변 길이의 코드 워드의 데이터 스트림을 읽어 내는 방법 및 장치{METHOD AND DEVICE FOR GENERATING A DATA FLOW FROM VARIABLE-LENGTH CODE WORDS AND A METHOD AND DEVICE FOR READING A DATA FLOW FORM VARIABLE-LENGTH CODE WORDS}
예를 들어, 표준 엠펙 레이어 (standard MPEG layer) 3에 의해 동작하는 현대의 오디오 인코딩 또는 디코딩 방법은 음질을 두드러지게 훼손시키지 않고 오디오 신호의 데이터 속도를 예를 들어 12분의 1로 압축할 수 있다. 그러한 높은 데이터 속도 감소를 얻기 위하여, 하나의 오디오 신호가 표본 추출되고 (sampled), 그 결과 이산-시간 샘플의 시퀀스가 구해진다. 이 기술 부문에서 알려진 바와 같이, 시간 샘플 (time samples)의 윈도우 블록 (windowed blocks)을 얻기 위하여 이산-시간 샘플의 시퀀스가 윈도우에 위치하게 된다. 그런 다음, 전체로서 오디오 신호 즉, 이산-시간 샘플 블록에 의해 결정되는 시간 섹션을 나타내는 스펙트럼 값 (spectral values)을 주파수 범위 안에서 얻기 위하여, 시간 샘플의 윈도우 블록 (a block oftime-windowed samples)이 필터 뱅크, 변경된 이산 코사인 변환 (a modified discrete cosine transform; MDCT) 또는 다른 적절한 디바이스에 의해 주파수 범위 (frequency range)로 변환된다. 보통은 50%가 중복되는 시간 블록 (time blocks)이 발생되고 MDCT에 의해 주파수 범위로 변환된다. MDCT의 특성 때문에, 예를 들어 1024개의 이산-시간 샘플이 항상 1024개의 스펙트럼 값을 이끌어 낸다.
인간의 가청력은 오디오 신호 자체의 순간적 스펙트럼에 의존한다고 알려져 있다. 순간적 스펙트럼에 의존하는 마스킹 드레숄드 (masking thresholds)를 계산하는 것이 오랫동안 가능해왔음에 의해 이 의존도가 소위 사이코어쿠스틱 모델로 커버된다. 마스킹이란 예를 들어, 이웃하는 스펙트럼 범위가 비교적 높은 에너지를 가질 때 특정한 톤이나 스펙트럼 성분이 숨겨지는 것을 의미한다. 가능한 한 변환 후에 나타나는 스펙트럼 값에 가깝게 양자화하기 위하여 이러한 마스킹이 사용된다. 따라서, 이 경우, 오디오 신호를 인코딩하거나 양자화하기 위하여, 한편으로는 재-디코딩된 오디오 신호에서 청취 방해 (audible disturbances)를 피하고, 다른 한편으로는 가능한 한 적은 비트를 사용하는 것이 목적이다. 양자화하면서 발생되는 방해 즉, 양자화 노이즈는 마스킹 드레숄드 아래에 있어서 들리지 않는다. 알려진 방법에 따르면, 스펙트럼 값은 인간 귀의 임계 밴드 즉, 주파수 그룹에 해당하는 소위 스케일 팩터 밴드 (scale factor bands)로 세분된다. 하나의 스케일 팩터 밴드의 스펙트럼 값 전체를 스케일하기 위하여 하나의 스케일 팩터 그룹 내에 있는 스펙트럼 값들이 스케일 팩터에 의해 곱해진다. 그런 다음, 스케일 팩터에 의해 스케일된 스케일 팩터 밴드들이 양자화되어, 양자화된 스펙트럼 값들이 발생하게 된다. 스케일 팩터 밴드로 그룹화하는 것이 중요하지는 않다고 이해된다. 그러나, 이 과정이 엠펙 레이어 3 표준과 엠펙-2 AAC 표준 (AAC=Advanced Audio Coding)에서 사용된다.
데이터 감소의 매우 중요한 면은 양자화한 다음 양자화된 스펙트럼 값을 엔트로피 인코딩한다는 것에 있다. 보통 허프만 인코딩 (Huffman encoding)이 엔트로피 인코딩을 위해 사용된다. 허프만 코딩은 가변길이 코딩을 의미하는 것으로 이해되는데, 다시 말해, 인코딩될 값에 대한 코드 워드의 길이가 그것의 발생 가능성에 의존한다. 매우 좋은 리던던시 감소가 허프만 인코딩에 의해 얻어질 수 있도록 하기 위해서, 논리학상, 가장 가능성 있는 캐릭터는 가장 짧은 코드 즉, 가장 짧은 코드 워드로 지정된다. 일반적으로 알려져 있는 보통 길이를 갖는 코딩의 예는 모르스 코드 (Morse code)이다.
오디오 인코딩 분야에서, 양자화된 스펙트럼 값을 인코딩하는데 허프만 코드가 사용된다. 예를 들어, 엠펙-2 AAC 표준에 따라 동작하는 현대의 오디오 인코더는 양자화된 스펙트럼 값을 인코딩하기 위해 다른 허프만 코드 테이블들을 사용하는데, 이 허프만 코드 테이블들은 섹션별로 특별한 표준에 따라 스펙트럼에 지정되어 있다. 이 과정에서, 2 또는 4개의 스펙트럼 값이 항상 하나의 코드 워드 안에서 함께 코드화된다.
엠펙-2 AAC에 따른 방법과 엠펙 레이어 3에 따른 방법 사이의 차이점 하나는 다른 스케일 팩터 밴드들 즉, 다른 스펙트럼 값들이 몇 개의 스펙트럼 섹션으로 그룹화된다는 것이다. AAC에서, 하나의 스펙트럼 섹션은 적어도 4개의 스펙트럼 값, 바람직하게는 4개 이상의 스펙트럼 값을 포함한다. 따라서 스펙트럼 값들의 전체 주파수 범위는 인접한 섹션들로 나뉘어지는데, 모든 섹션이 다함께 전체 주파수 범위를 커버하도록 하나의 섹션이 하나의 주파수 밴드를 나타내고, 전체 주파수 범위는 변환 후 스펙트럼 값들에 의해 포개진다.
엠펙 레이어 3 방법에서처럼, 최대의 리던던시 감소를 얻기 위해, 하나의 섹션이 다수개의 그러한 테이블 중 하나인 소위 "허프만 테이블"에 지정된다. 보통 1024개의 스펙트럼 값을 포함하는 AAC 방법의 비트 스트림에서, 스펙트럼 값에 대한 허프만 코드 워드는 오름차순의 주파수에 있게 된다. 각각의 주파수 섹션에서 사용되는 테이블에 대한 정보는 부가적 정보 (side information)로서 전달된다. 이러한 상황이 도 6에 나타나 있다.
도 6은 비트 스트림이 10개의 허프만 코드 워드를 포함하고 있는 예시를 보여준다. 하나의 코드 워드가 항상 하나의 스펙트럼 값으로부터 형성되는 경우에, 10개의 스펙트럼 값이 여기서 인코딩될 수 있다. 그러나 보통 2 또는 4개의 스펙트럼 값이 항상 하나의 코드 워드에서 함께 인코딩 된다. 이는 도 6이 20 또는 40개의 스펙트럼 값을 포함하는 인코딩된 비트 스트림의 일부를 나타내는 것의 이유이다. 각각의 허프만 코드 워드가 2개의 스펙트럼 값을 포함하는 경우에, 숫자 1로 표시된 코드 워드는 처음 2개의 스펙트럼 값을 나타내는데, 코드 워드 1의 길이는 비교적 짧으며, 이는 처음 2개의 스펙트럼 값 즉, 2개의 최저 주파수 계수에 대한 값이 비교적 종종 발생한다는 것을 의미한다. 그러나, 숫자 2를 갖는 코드 워드는 비교적 길고, 이는 인코딩된 오디오 신호에서 세 번째와 네 번째 스펙트럼 계수의 양이 비교적드물다는 것을 의미하는데, 이는 그것들이 비교적 큰 비트 수로 인코딩되는 이유이다. 또한 코드 워드 각각의 길이가 비교적 작기 때문에, 스펙트럼 계수 5와 6, 또는 7과 8, 또는 9와 10을 나타내는 숫자 3, 4, 5를 갖는 코드 워드 또한 비교적 빈번히 발생된다는 것이 도 6으로부터 분명하다. 동일한 것이 숫자 6 내지 10을 갖는 코드 워드에도 적용된다.
이미 언급한 바와 같이, 알려진 어떤 인코딩 장치에 의해 발생된 비트 스트림이 고려되는 경우에 인코딩된 스펙트럼 값에 대한 허프만 코드 워드가 주파수에 대해 일직선의 오름차순으로 비트 스트림 안에 배열된다는 것이 도 6으로부터 명백하다.
결함이 있는 채널의 경우에, 허프만 코드의 주요 약점은 에러가 전파된다는 것이다. 예를 들어 도 6의 코드 워드 숫자 2가 방해를 받는다고 가정하면, 이 잘못된 코드 워드 숫자 2의 길이 또한 변경될 가능성이 있다는 것을 무시할 수 없다. 따라서 이것은 올바른 길이와 다르다. 도 6의 예에서, 코드 워드 숫자 2의 길이가 방해를 받아 변경되는 경우, 인코더가 코드 워드 3 내지 10 즉, 재연된 전체 오디오 신호 대부분의 시작을 결정하는 것이 더 이상 가능하지 않다. 이것은 이들 코드 워드들이 어디서 시작해야 될지 모르고 에러로 인해 잘못된 시작점이 선택되기 때문에 방해받은 코드 워드를 뒤따르는 다른 모든 코드 워드가 더 이상 올바르게 인코딩되지 않는다는 것을 의미한다.
에러 전파의 문제점에 대한 해결책으로서 유럽 특허 제 0612156 호는 래스터 포인트에 배열된 코드 워드의 시작이 완전한 디코딩 없이 또는 잘못된 전송의 경우에도 더 쉽게 발견될 수 있도록, 가변 길이의 코드 워드 일부가 하나의 래스터 (raster)에 배열되고 나머지 코드 워드들은 남아 있는 갭 (gaps)에 배열된다는 것을 제안하고 있다.
상기의 알려진 방법은 코드 워드들을 재배열함에 의해 에러 전파에 대한 어떤 구제책을 제공하고 있는 것이 사실이다. 어떤 코드 워드들을 위해, 비트 스트림 내의 고정된 한 장소가 협정되고 남아 있는 갭은 나머지 코드 워드들을 위해 유효하다. 이것은 추가의 비트를 필요로 하지 않고, 에러가 있는 경우, 재배열된 코드 워드들 사이에서 에러 전파를 막는다.
그러나, 상기 알려진 방법의 효과를 위한 결정적인 매개변수는 래스터가 실질적 적용에서 결정되는 방법에 놓여있는데, 다시 말하며, 얼마나 많은 래스터 포인터가 사용되어야 하고, 래스터 포인트들 사이에 얼마의 간격을 유지해야 하는가 등이다. 에러 전파를 억제하기 위해 하나의 래스터가 사용되어야 한다는 일반적인 제안을 제외하고, 유럽 특허 제 0612156 호는 한편으로는 에러에 강한 인코딩을 할 수 있고, 다른 한편으로는 효율적인 인코딩을 할 수 있게 하기 위해 어떻게 래스터가 효과적으로 지정되어야 하는지에 대한 더 상세한 정보를 제공하지 못했다.
본 출원의 출원일 이후에 공개된 독일 특허 출원 제 10747119.6-31은 단지 어떤 코드 워드들이 래스터 포인트에 위치하고 있는지가 아니라 정신음향학적 견지에서 볼 때 중요한 코드 워드들 다시 말하면, 오디오 신호에 중요한 공헌을 하는 스펙트럼 값에 대한 코드 워드들이 래스터 포인트에 위치한다는 것을 제안하고 있다. 그러한 인코더에 의해 생성된 것과 같은 가변 길이의 코드 워드들을 갖는 데이터 스트림이 도 5에 나타나 있다. 도 6에서와 같이, 데이터 스트림 또한 10개의 코드 워드를 포함하고 있는데, 우선순위의 코드 워드들은 빗금쳐진 것이다. 첫 번째 우선순위 코드 워드는 제 1 래스터 포인트 (100)에서 시작하도록 위치하고 있고, 두 번째 우선순위 코드 워드는 제 2 래스터 포인트 (101)에서 시작하도록 위치하고 있으며, 세 번째 우선순위 코드 워드는 제 3 래스터 포인트 (102)에서 시작하도록 위치하며, 네 번째 우선순위 코드 워드는 제 4 래스터 포인트 (103)에서 시작하도록 위치하고, 다섯 번째 우선순위 코드 워드는 제 5 래스터 포인트 (104)에서 시작하도록 위치한다. 제 1 세그먼트 (105)는 래스터 포인트 (100)과 (101)에 의해 정해진다. 이와 유사하게, 제 2 세그먼트 (106), 제 3 세그먼트 (107), 제 4 세그먼트 (108), 마지막 세그먼트 (109)가 정해진다. 처음 두 개의 세그먼트 (105)와 (106)은 두 개의 세그먼트 (107)과 (108)과 다른 길이를 가지며 마지막 세그먼트 (109)와도 다른 길이를 갖는다는 것이 도 5에 나타나 있다. 다음으로 비우선순위 코드 워드 (6), (7), (8), (9), (10)이 우선순위 코드 워드 다음에 말하자면 후자가 채워지도록 데이터 스트림에 삽입된다. 도 5에 나타나 있는 바와 같이, 전에 공개된 방법에서는, 우선순위 코드 워드들이 기록된 후에 비우선순위 코드 워드들이 래스터에 계속해서 삽입된다. 특히, 비우선순위 코드 워드 (6)번은 우선순위 코드 워드 (1)번 다음에 삽입된다. 세그먼트 (105)에 여전히 남아있는 공간은 그 다음의 비우선순위 코드 워드 (7)번으로 채워지고, 비우선순위 코드 워드의 나머지 즉, (7b)는 그 다음 빈 공간 즉 세그먼트 (107)에 기록되는데, 우선순위 코드 워드 (3) 바로 다음에 오게 된다. 비우선순위 코드 워드 (8) 내지 (10)에 대해서도 동일한 과정이 진행된다.
도 5에 도시된 전에 공개된 방법의 장점은 우선순위 코드 워드 (1)내지 (5)가 에러전파에 대해 보호받는다는 다는 것인데, 이유는 그것들의 시작점이 래스터 포인트들과 일치하고 따라서 그렇게 알려져 있기 때문이다.
예를 들면, 우선순위 코드 워드 2번이 전송 시 손상을 입었을 경우, 도 6에서 보여진 선행 기술에서는 아마 디코더가 남아 있는 코드 워드 (3) 내지 (10) 중 어떤 것도 올바르게 디코딩할 수 없을 것이다. 그러나, 도 5에 보여진 방법에서는, 다음의 코드 워드 즉, 디코더가 어떻게 해서든 코드 워드 (3)번의 올바른 시작을 찾도록 우선순위 코드 워드 (3)번이 래스터 포인트 (102)에서 시작한다. 따라서, 도 5에서 보여진 방법에서는, 조금의 시퀀스 에러도 일어나지 않을 것이고, 우선순위 코드 워드 (2)번만 손상을 입을 것이다. 결과적으로, 이 방법은 래스터 포인트에 위치하는 우선순위 코드 워드에 대해 효과적인 보호를 제공한다.
그러나, 비우선순위 코드 워드들에 대해서는 효과적인 보호가 없다. 도 5를 참고하면, 한 비트 더 짧은 코드 워드인 잘못된 코드 워드 (6)번으로 추정하도록 비우선순위 코드 워드 (6)번에 손상을 입히면, 코드 워드 (7)번을 올바르게 디코딩하는 것이 더 이상 가능하지 않을 것이다. 그 이유는 올바른 코드 워드 (6)번의 마지막 비트가 다음 코드 워드 (7)번의 시작인 것으로 해석하기 때문이다. 따라서, 코드 워드 (6)번에서의 에러는 전송 에러에 의해 영향을 받지 않았을 때조차도 그것 다음에 있는 어떤 코드 워드들을 올바르게 디코딩하는 것이, 시퀀스 에러 때문에, 더 이상 가능하지 않을 것이라는 사실에 이를 것이다.
미국 특허 제 5,579,430 호는 디지털 인코딩 방법을 공지하는데, 거기서 비트 스트림에 기록될 코드 워드들은 코드 워드들의 일부가 처음으로 래스터에 배열되도록비트 스트림에 배열된다. 따라서, 이 코드 워드 섹션에서는 에러 전파가 일어나지 않는다. 나머지 코드 워드들은 나머지 갭에 분배된다.
본 발명은 다양한 길이의 코드 워드로 인코딩하는 것, 특히 전송 시 에러에 관한 한 강한, 다양한 길이의 코드 워드로 데이터 스트림을 만들고 이를 읽어내는 것에 관한 것이다.
도 1은 가변 길이 코드 워드들의 데이터 스트림을 만들기 위한 본 발명의 장치를 보여준다.
도 2는 가변 길이의 코드 워드들을 갖는 데이터 스트림을 읽어 내기 위한 본 발명의 장치를 보여준다.
도 3은 세 개 세트의 가변 길이 코드 워드들에 의한 본 발명의 방법에 대한 과정도를 보여준다.
도 4는 도 3에 따라 만들어진 데이터 스트림을 읽어내는 본 발명의 방법을 그린 과정도를 보여준다.
도 5는 알려진 장치에 의해 만들어진 데이터 스트림을 보여주는데, 거기에 있는 우선순위 코드 워드들은 에러 전파에 노출되어 있다.
도 6은 우선순위 코드 워드들과 비우선순위 코드 워드들에 의한 소팅이 이루어진
데이터 스트림을 보여준다.
본 발명의 목적은 데이터 스트림의 비이상적 전송으로 인한 시퀀스 에러에 대해 특별한 보호를 제공하는 가변 길이 코드 워드의 데이터 스트림을 기록하고 읽어내는 개념을 찾는 것이다.
이 목적은 청구항 1에 따른 데이터 스트림 생성 방법과, 청구항 15에 따른 데이터 스트림 독출 방법과, 청구항 20에 따른 데이터 스트림 생성 장치와, 청구항 21에 따른 데이터 스트림 독출 장치에 의해 획득된다.
본 발명은 전송 에러로 인해 매우 많은 수의 시퀀스 에러가 발생되지 않도록 연속적인 코드 워드들이 가능한 한 빨리 데이터 스트림에 흡수되도록 가변 길이의 코드 워드를 갖는 데이터 스트림이 형성되어야 한다는 깨달음 위에 바탕을 둔다. 이 목적을 위해서, 전송될 가변 길이의 코드 워드들이 다수 개의 세트로 나뉘어진다. 첫 번째 세트는 우선순위의 코드 워드들을 포함하는 한편, 두 번째 세트는 비우선순위의 코드 워드들을 포함한다. 전송 에러로부터 비우선순위의 코드 워드들도 보호하기 위하여, 선행 기술에서처럼, 그것들이 비어 있는 래스터에 단순히 기록되는 것이 아니라, 각각의 세그먼트에 분배된다. 수령자에게 알려진 결정된 지정 이후에, 각각의 비우선순위 코드 워드 즉, 두 번째 세트의 각 코드 워드가 데이터 스트림의 다른 세그먼트에 지정되도록 비우선순위 코드들이 세그먼트에 지정된다. 따라서, 첫 번째 세트의 각 코드 워드가 래스터 포인트에서 시작하도록 첫 번째 세트의 코드 워드들이 래스터에 기록된다. 그런 다음, 두 번째 세트의 각 코드 워드가 다른 세그먼트에 지정되도록 두 번째 세트의 각 코드 워드를 데이터 스트림에 기록하기 위한 시도가 행해진다. 이러한 지정 즉, 두 번째 세트의 각 코드 워드가 다른 세그먼트에 기록되는 것 때문에, 디코더가 두 번째 세트의 코드 워드들을 더 이상 간단히 연속적으로 디코딩하지 못하고 래스터 내에 있는 두 번째 세트의 각 코드 워드를 위한 해당 세그먼트로부터 두 번째 세트의 해당 코드 워드를 추출하기 위해 이 세그먼트로 간다.
첫 번째 세트의 코드 워드가 이미 세그먼트에 기록된 후, 이 세그먼트가 꽉 차서 이 세그먼트에 지정된 두 번째 세트의 코드 워드를 위한 방이 부분적으로만 있거나 더 이상 방이 없을 경우, 아직 방이 있는 두 번째 세트의 코드 워드의 그 부분은 지정된 세그먼트에 기록되고, 나머지는 저장된다. 코드 워드를 위한 방이 전혀 없는 경우에는, 두 번째 세트의 각 코드 워드에 대한 지정이 시도될 때까지 전체의 코드 워드가 저장된다. 그런 다음에, 두 번째 세트의 저장된 부분이나 저장된 코드 워드 전부를, 예정된 규정에 따라, 아직 비어 있는 세그먼트 섹션에 기록하기 위한 두 번째 시도가 행해질 것이다.
첫 번째 세트의 코드 워드들이 세그먼트 길이보다 더 길게 존재하도록 래스터가 형성될 경우, 첫 번째 세트의 코드 워드들을 기록하기 위해 가능한 한 일찍부터 동일한 방법이 적용될 수 있다.
일단 디코더가 데이터 스트림으로부터의 래스터 포인트에서 시작한 첫 번째 세트의 코드 워드들을 추출하면, 두 번째 세트의 코드 워드들을 추출한다. 디코더가 두 번째 세트의 코드 워드들 중 하나의 코드 워드의 일부만을 찾아내는 경우, 이 부분은 저장되고 다른 세그먼트에 있는 두 번째 세트의 다음 코드 워드를 찾음으로써 과정이 계속된다. 그러한 첫 번째 시도에서 모든 세그먼트가 찾아진 후에만, 두 번째 세트의 코드 워드의 누락 부분이 두 번째 또는 그 후의 시도에서 결정될 것이거나, 또는 지정된 세그먼트가 이미 첫 번째 세트의 코드 워드에 의해 채워진 두 번째 세트의 코드 워드가 결정된다.
그러므로, 도 5를 참고할 때, 코드 워드 (7)번은 세그먼트 (105)와 다른 세그먼트에서 시작하고, 코드 워드 (6)번 다음에는 그것과 인접하지 않은 완전히 다른 코드 워드가 뒤따르기 때문에, 코드 워드 (6)번에서의 에러는 더 이상 코드 워드 (7)번에서의 에러로 이끌지 않는다.
간단한 예가 추가의 삽화를 위해 사용될 수 있다. 그것은 첫 번째 세트에 있는 두 개의 코드 워드와 두 번째 세트에 있는 두 개의 코드 워드, 다시 말하면, 총 네 개의 가변 길이 코드 워드가 존재한다는 가정에 기초를 둔다. 덧붙여서, 선행 기술과 비교하기 위해, 코드 워드 (1)과 (3)이 모두 첫 번째 세그먼트에 맞도록 충분히 길고, 코드 워드 (2)와 (4)는 모두 두 번째 세그먼트에 완벽하게 맞도록 충분히 길다고 가정한다. 이 경우, 선행 기술에 따른 장치는 본 발명에 따른 장치와 동일한 데이터 스트림을 기록할 것이다. 선행 기술에 따른 장치는 먼저 우선순위 코드 워드 (1)과 (2)를 두 개의 래스터 포인트에 기록하고 그 다음 코드 워드 (1)번의 다음에 코드 워드 (3)번을 기록하고 코드 워드 (4)번을 래스터 내의 다음 빈 공간에, 다시 말하면, 코드 워드 (2)번의 다음에 기록할 것이다. 따라서, 완벽하게도, 코드 워드(4)번은 더 이상 첫 번째 세그먼트에 있지 않고, 전적으로 두 번째 세그먼트에 있게 된다.
본 발명에 따른 장치는 처음에 첫 번째 세트의 코드 워드들을 해당 래스터 포인트에 기록할 것이고 그런 다음, 두 번째 세트의 첫 번째 코드 워드를 첫 번째 세그먼트에 기록하고 첫 번째 세그먼트에 아직 방이 있든지 없든지 상관없이, 두 번째 세트의 코드 워드를 두 번째 세그먼트에 기록할 것이다. 따라서, 본 발명에 따른 장치는 여하튼, 두 번째 세트의 각 코드 워드를 다른 세그먼트에 기록하는 것을 시도할 것이다.
두 개의 데이터 스트림이 동일해 보일지라도, 디코더가 요구하는 순서대로 코드 워드를 두기 위해 데이터 스트림으로부터 가변 길이의 코드 워드를 추출할 수령자에게는 큰 차이점이 있다. 선행 기술에서는, 추출을 위해서, 장치는 첫 번째 세트의 코드 워드들을 얻기 위해 처음에 첫 번째 래스터 포인트에서 코드 워드 (1)번을 읽어내고 두 번째 래스터 포인트에서 코드 워드 (2)번을 읽어낼 것이다. 그 다음 선행 기술에 따른 장치는 남아 있는 데이터 스트림의 시작으로 가서 거기서 코드 워드 (3)번을 읽어 낼 것이고, 그 다음에 코드 워드 (4)번을 읽어 낼 것이다.
본 발명에 따른 장치는 첫 번째 세트의 코드 워드 (1)과 (2)를 읽어낸 후에, 남아 있는 데이터 스트림의 시작으로 가서 거기서 코드 워드 (3)번을 읽어 낼 것이다. 그러나, 본 발명에 따른 장치는 그 다음에 네 번째 코드 워드 즉, 두 번째 세트의 두 번째 코드 워드의 시작을 읽어내기 위하여 다음의 세그먼트로 건너뛸 것이다.
다음에서, 가상의 데이터 스트림에서 첫 번째 세트의 첫 번째 코드 워드 뒤에 기록된 코드 워드 (3)번 즉, 두 번째 세트의 첫 번째 코드 워드는 디코더가 실제보다 더 짧은 코드 워드와 같은 것으로 해석하도록 방해를 받았다고 가정한다. 이 경우 데이터 스트림을 읽기 위한 알려진 장치는 코드 워드 (3)번을 읽을 것이고 전송 에러 때문에, 너무 빨리 멈추어서 남아 있는 비트나 코드 워드 (4)번의 시작이 될 - 실제로 코드 워드 (3)번에 속하는 - 비트들을 판단할 것이다. 그러나, 본 발명에 따른 장치는 코드 워드 (3)번이 종결된 후 다음 세그먼트로 건너뛰어서, 코드 워드 (4)번의 시작을 올바르게 결정할 것이다.
이 간단한 예를 사용할 때, 본 발명의 중요한 장점은 두 번째 세트의 코드 워드들을 개별의 세그먼트로 나눔으로 인해, 예를 들면, 비우선순위의 코드 워드들일 수 있는 두 번째 세트의 코드 워드들에 생기는 시퀀스 에러를 방지하는 것임을 명백히 알 수 있다. 그러나, 선행 기술에 의해 그리고 본 발명에 의해 생성된 가변 길이 코드 워드들의 데이터 스트림들이 동일할지라도, 도 5를 참고하여 설명한 바와 같이, 선행 기술에서는 시퀀스 에러가 발생한다.
본 발명의 바람직한 실시예가 첨부된 도면을 참조하여 다음에서 더 상세히 설명된다.
도 1을 상세히 설명하기에 앞서, 가변 길이의 코드 워드를 가지고 인코딩하는 것은 관련 기술에서 엔트로피 인코딩이라고 한다는 점에 주목하라. 엔트로피 인코딩의 대표적 예는 소위 허프만 인코딩이다. 대체로, 허프만 인코딩에서는, 덜 빈번히 발생하는 정보 기호에 대해서 보다 더 빈번히 발생하는 정보 기호에 대해 더 짧은 코드 워드를 결정하기 위해 인코딩될 정보 기호 (information symbols)가 통계학적으로 조사된다. 완전한 허프만 코드에서, 하나의 코드 트리 (code tree)의 끝 (ends)이나 브랜치 (branches)로 종결된다. 예를 들면, 허프만 디코더는 허프만 코드 워드를 갖는 데이터 스트림에서 연속적으로 읽기를 하고, 각 비트로 특정 코드 트리의 브랜칭으로 건너뛰기를 하는데, 코드 워드의 비트 수 즉, 코드 워드의 길이에 해당하는 회수의 건너뛰기를 한 후, 더 이상의 브랜칭을 갖지 않는 브랜치 끝에 도착해서 하나의 코드 워드가 될 때까지 추가적으로 읽기를 한다. 그러면 디코더는새로운 코드 워드가 다음 비트로 시작한다는 것을 인식한다. 이 과정은 데이터 스트림이 완전히 읽기를 끝낼 때까지 요구하는 만큼 자주 반복된다. 허프만 인코더가 시작 점 즉, 트리의 뿌리로 건너뛰는 매 시간이 흐름에 따라, 하나의 코드 워드가 그것의 원점에 나타난다. 코드 워드의 길이는 코드 워드 그 자체에 의해 또는 인코더와 디코더에 알려진 코드 트리에 의해 절대적으로 정해지기 때문에, 비트의 반전을 가져오는 데이터 스트림에서의 방해는 말하자면, 아마도 올바른 코드 워드와 다른 길이를 갖는 다른 코드 워드 즉, 잘못된 코드 워드로 끝나도록, 코드 트리에서 디코더를 잘못되게 이끈다는 것을 알 수 있다. 이 경우, 일단 디코더가 잘못된 코드 워드에 이르렀으면, 디코더는 뒤로 건너뛰어서, 그 다음의 비트로 인해, 코드 트리에서 하나의 브랜칭 포인트에서 다른 브랜칭 포인트로 다시 움직인다. 그러나, 디코더가 "올바른 트랙" 상에서 끝나지 않는 한, 시퀀스 에러를 피하는 것은 불가능하다.
따라서, 본 발명에 의해 제공되는 바와 같이, 에러에 강한 전송을 확보하기 위해 에러 보호가 실행되어야 한다. 따라서, 본 발명에 따른 가변 길이 코드 워드의 데이터 스트림을 만들기 위한 장치는 원래 그랬던 것처럼, 허프만 인코더의 발신 또는 출력 단으로서 작용할 수 있으며, 한편 가변 길이 코드 워드의 데이터 스트림을 읽어내기 위한 장치는 허프만 인코더의 수신 또는 입력 단으로서 작용할 수 있다. 이것으로부터 본 발명은 허프만 인코더에 적용할 수 있을 뿐만 아니라, 시퀀스 에러의 영향을 받기 쉬운 가변 길이의 코드 워드를 가진 어떠한 코드에도 적용할 수 있다는 것을 알 수 있다.
도 1은 가변 길이 코드 워드의 데이터 스트림을 만들기 위한 본 발명의 장치를 보여주는데, 이 장치는 하나의 입력 (12)과 하나의 출력 (14)을 갖고 있다. 입력 (12)에서, 가변 길이의 코드 워드들이 나타나는 한편, 출력 (14)에서는 에러에 강한 데이터 스트림이 출력된다. 우선순위 코드 워드들은 제 1 세트에 있고, 덜 중요한 코드 워드들은 제 2 세트에 있고, 보다 더 덜 중요한 코드 워드들은 제 3 세트에 있도록, 장치 (10)의 입력 (12)에 있는 가변 길이의 코드 워드들이 바람직하게도 이미 미리 소팅되었다.
제 1 세트의 코드 워드 각각이 래스터 포인트에서 시작하도록, 가변 길이의 코드 워드들은 제 1 세트의 코드 워드들을 데이터 스트림에 기록하기 위한 디바이스 (16)로 입력된다.
게다가, 가변 길이의 코드 워드들은 제 2 세트의 코드 워드들을 데이터 스트림에 기록하기 위한 디바이스 (18)로 입력되고, 다른 세그먼트는 제 2 세트의 각 코드 워드에 지정된다. 따라서, 두 개의 디바이스 (16)과 (18) 사이의 데이터 스트림은 단지 제 1 세트의 모든 코드 워드들이 래스터 포인트에 들어간 데이터 스트림이다. 가변 길이의 코드 워드들이 단지 두 개의 코드 워드 세트로 이루어진 경우에는, 에러에 강한 데이터 스트림이 이미 디바이스 (18)의 출력에 나타난다. 두 세트 이상의 가변 길이 코드 워드가 있는 경우에는, 해당 세트의 코드 워드들을 데이터 스트림 - 인용 번호 (20)에 의해 상징적으로 그려져 있다. - 에 기록하기 위한 추가의 디바이스들이 있다.
도 2는 출력 (14) (도 1)에서 에러에 강한 데이터 스트림 출력을 읽어내기 위한 본발명의 장치 (22)를 보여주는데, 이것은 하나의 입력 (24)과 하나의 출력 (26)을 갖는다. 출력 (26)에서, 입력 (12) (도 1)에 나타난 순서에 해당하는 순서를 갖는 가변 길이의 코드 워드들을 출력하기 위해, 입력 (24)에서, 에러에 강한 데이터 스트림이 입력된다. 데이터 스트림을 읽어내기 위한 장치 (22)는 래스터 포인트로 건너뜀으로써 제 1 세트의 코드 워드들을 추출하기 위한 디바이스 (28)와, 남아 있는 데이터 스트림의 래스터 포인트로 건너뜀으로써 제 2 세트의 코드 워드들을 추출하기 위한 다운스트림 디바이스 (30)와, 필요하다면, 어떤 그러한 세트들이 존재하는 경우, 추가의 세트에 따른 코드 워드들을 추출하기 위한 추가의 디바이스 (32)를 포함한다.
장치 (10) (도 1)에 의해 실행된 방법이 예시에 의해 도 3을 기초로 하여 더 상세히 설명되기에 앞서, 먼저 상기 방법의 요약이 제공된다. 유효한 코드 워드들은 다수 개의 세트로 나뉘어진다. 마지막 것을 제외한 각 세트는 유효한 세그먼트가 있는 만큼 많은 코드 워드들을 포함한다. 최상의 경우, 하나의 세트는 유효한 세그먼트가 있는 만큼 많은 코드 워드들을 포함하고 있다. 그러나, 하나의 세트는 더 많거나 더 적은 코드 워드를 포함할 수도 있는데, 이는 거의 필연적으로 마지막 세트를 위한 경우일 것이다. 그 이유는 예정된 수의 가변 길이 코드 워드가 추측되어야 하기 때문이다. M개의 세그먼트가 존재하는 경우와 하나의 세트가 N개의 코드 워드를 가지고 있는 경우, 래스터 포인트에 기록되는 코드 워드의 수는 M과 N 중 최소치에 해당하는 한편, 본 발명에 따라 N 개의 코드 워드를 래스터에 축적하기 위한 시도 회수는 M과 N 중 최대치에 해당한다.
바람직하게는, 제 1 세트는 가장 중요한 코드 워드들 즉, 우선순위의 코드 워드들을 포함하는데, 이는 다른 정보 기호와 비교했을 때 더 중요한 정보 기호를 나타낸다. 그 다음의 세트는 미리 소팅된 알고리듬에 의해 제공된 바와 같은 순서를 갖는 덜 중요한 코드 워드들을 포함하는데, 이 또한 바람직하게 우선순위 코드 워드들과 비우선순위 코드 워드들로의 분류를 수행한다. 하나의 세트를 기록하기 위해서는 몇 차례의 시도를 해야한다. 첫 번째 시도에서, 현재 세트의 첫 번째 코드 워드가 첫 번째 세그먼트로 기록되고, 현재 세트의 마지막 코드 워드가 마지막 세그먼트에 기록될 때까지, 계속된다. 물론, 두 번째, 세 번째, 또는 다른 세그먼트로 시작하여, 어떤 특정 규정에 따라 모든 세그먼트에 기록할 수 있다.
하나의 코드 워드가 하나의 세그먼트에 맞지 않는 경우, 이 코드 워드의 나머지 부분은 저장된다. 두 번째 시도에서, 첫 번째 코드 워드의 나머지 부분이 존재하는 경우, 마지막 코드 워드의 나머지 부분이 첫 번째 세그먼트에 기록될 때까지, 그것은 바람직하게 두 번째 세그먼트 등에 기록된다. 그러한 알고리듬은 모듈로 쉬프트 (modulo shift)로 불리어질 수 있다. 분명히, 하나의 코드 워드의 나머지가 다음의 작업에서, 즉, 다음의 시도에서, 다음 세그먼트에, 다음 번 하나의 세그먼트 (the next-but-one segment)에, 등등으로 기록될 것인지에 대한 예정된 규정이 확정적이지 않다.
일단 하나의 세트가 완전히 기록되면, 다음 세트에 대한 기록이 시작된다. 본 발명의 바람직한 실시예에 따라서 전파 에러 (propagation errors)를 훨씬 더 잘 막기 위하여, 세그먼트 내에서의 기록 방향이 세트마다 변경된다. 예를 들면, 첫 번째세트의 코드 워드들은 왼쪽에서 오른쪽으로 기록되는 한편, 두 번째 세트의 코드 워드들은 오른쪽에서 왼쪽으로 기록되는 등이다. 따라서, 본 발명으로, 원래 그랬던 것처럼, 또한 이 바람직한 실시예에 따라서, 절대적인 에러 보호를 위해 래스터 포인트의 두 번째 사이드가 사용된다.
위에서 간단히 요약한 시스템의 사용은 어떤 한 코드 워드에 대한 에러 전파 가능성의 수를 매우 강력히 감소시킬 수 있다. 세그먼트에 아직 방이 있는 경우, 세트들이 계속적으로 기록됨에 따라, 그리고 하나의 세트의 각 코드 워드가 세그먼트에 지정되고 또한 그 세그먼트에 기록됨에 따라, 한 세트 내의 한 코드 워드로부터 상기 세트 내의 다음 코드 워드로 에러 전파는 가능하지 않다. 그 이유는 선행 기술에서의 경우처럼, 디코딩 시에 디코더가 항상 세그먼트에서 세그먼트로 건너뛰기를 하고 처리중인 것이 끝나게 될 코드 워드의 시작을 추측하지 못하기 때문이다. 코드 워드가 이 세그먼트에 단지 부분적으로 기록되는 경우, 코드 워드를 완전하게 넣기 위해 유효한 공간이 충분치 않기 때문에, 적어도 에러 전파의 가능성은 감소된다.
본 발명의 바람직한 실시예에 따르면, 우선순위 코드 워드들이 세그먼트에 꼭 맞도록 세그먼트 폭이 선택된다. 그러므로, 첫 번째 세트를 기록하는 것은 첫 번째 시도만을 요구한다. 하지만, 이것은 확정적이지 않다. 일반적으로, 하나의 데이터 스트림에 대한 래스터 포인트의 높은 수 즉, 가능한 한 작은 세그먼트 길이가 목적이기 때문에, 첫 번째 세트의 코드 워드들이 세그먼트 길이 보다 더 긴 경우도 발생할 수 있다. 그러나, 이 경우는 두 번째 세트를 기록하는 것처럼 다시 말해, 디코더에게 뿐만 아니라 인코더에게 알려져야 하는 예정된 규정에 따라 다루어질 것이다.
도 3은 예로서, 가변 길이의 코드 워드들을 기록하기 위한 본 발명의 방법을 도시한 것이다. 예에서, 바람직하게, 6개의 코드 워드 (1) 내지 (6)을 갖는 첫 번째 세트와, 6개의 코드 워드 (7) 내지 (12)를 갖는 두 번째 세트와, 나머지 3개의 코드 워드 (13) 내지 (15)를 갖는 세 번째 세트로 나뉘어지는 15개의 가변 길이 코드 워드 (30)가 있다. 도 3에서 도시된 바와 같이, 코드 워드 (30)은 가변 길이를 갖는다.
본 발명의 바람직한 실시예에 따르면, 세그먼트 길이, 즉, 세그먼트의 길이가 첫 번째 세트의 최장 코드 워드 길이보다 더 길다. 첫 번째 세트의 워드들은 래스터 포인트 (41) 내지 (46)에 배열되는데, 마지막 세그먼트 (6)번에 대해서는, 래스터 포인트가 점선으로 표시되지만 사용되지는 않는데, 그 이유는 데이터 스트림의 끝 (47)도 래스터 포인트로 생각될 수 있고, 따라서 점선으로 표시된 래스터 포인트가 여분의 것이기 때문이다. 그러므로, 첫 번째 세그먼트 (6)번은 다른 세그먼트들 보다 더 긴데, 그러나 이것은 본 발명을 위해서는 완전히 무의미한 것이다. 일반적으로 말해서, 세그먼트들은 데이터 스트림 안에서 변경되는 한 어떠한 길이도 가질 수 있고, 발명의 장점이 활용될 수 있도록 세그먼트의 현재 길이가 디코더에게 알려져야 한다고 이해된다.
먼저, 단계 a)에서 첫 번째 세트의 코드 워드들이 데이터 스트림에 기록되는데, 그 결과 (31)로 표시된 단편으로 이루어진 데이터 스트림이 되고, 도 3 전체에서 기록의 방향을 기호화하기 위해 화살표 (48)로 나타낸 바와 같이, 첫 번째 세트의 코드 워드들이 왼쪽에서 오른쪽으로 각 세그먼트에 기록된다. 세그먼트 길이는 첫 번째 세트의 코드 워드의 최장 길이보다 더 길게 되도록 선택되기 때문에, 단계 a)를 위해서는 단 한 번의 시도를 필요로 한다. 세그먼트가 더 짧은 경우, 그에 따라 더 많은 시도가 요구된다.
이제는 단계 b)에서 두 번째 세트의 코드 워드들이 데이터 스트림 (31)에 기록된다. 에러에 매우 강해지도록 하기 위해서, 두 번째 세트의 코드 워드들은 첫 번째 세트의 코드 워드들처럼 왼쪽에서 오른쪽으로 기록되지 않고, 기록 방향이 각각의 화살표로 표시된 바와 같이, 두 번째 래스터 포인트로부터 시작하여, 각각 오른쪽에서 왼쪽으로 기록되는데, 예를 들면, 첫 번째 세그먼트에 대해서는 래스터 포인트 (42)가 된다. 두 번째 세트의 코드 워드들에 대한 기록은, 선택된 예로써, 두 번째 세트의 첫 번째 코드 워드가 첫 번째 세트의 첫 번째 코드 워드와 동일한 세그먼트에 기록되는 것을 말하는 예정된 지정 규칙에 따라 행해진다. 하지만, 이 세그먼트에는 항상 여전히 방이 있는 상태이다. 첫 번째 시도로부터 나온 결과인 데이터 스트림 (32)은 첫 번째 세그먼트에 코드 워드 (7)번의 시작 섹션을 기록하기 위해 그렇게 많은 방이 있었다는 것을 보여준다.
선행 기술과 대조를 이루어, 코드 워드 (7)번의 두 번째 부분이 두 번째 세그먼트에 기록되었을 텐데, 코드 워드 (7)의 두 번째 반 즉, (7b)가 예정된 규정 즉, 디코더에도 알려야 하는 규정에 따라서 두 번째 시도에서 데이터 스트림에 그것을 기록하기 위해 저장된다. 두 번째 세그먼트 안에는 입력될 코드 워드 (7)번의 마지막섹션을 위해 코드 워드 (2)번과 (8)번 사이에 아직 충분한 방이 있었다는 것을 도 3을 통해 분명히 알 수 있다. 충분한 방이 없는 경우에는, 코드 워드의 세 번째 섹션이 세그먼트 (3)번으로 들어갔을 것이다. 그래서, 도 3에서는, 코드 워드 (7)번을 데이터 스트림에 넣기 위한 예정된 규정은 각각의 경우에 하나의 세그먼트에 의한 처리로 구성된다. 물론, 두 개의 세그먼트나 세 개 또는 그 이상의 세그먼트로 처리할 수도 있어서, 결과로써, 두 번째 세그먼트 (7b)가 두 번째 세그먼트 대신에, 세 번째에 기록되고, 다음 시도에서는 다섯 번째, 등으로 기록될 수 있다. 섹션 (7)의 두 번째 부분을 어딘가에 축적하기 위해 사용되는 세그먼트의 순서는 확정적이지 않다. 그러나, 재-소팅된 데이터 스트림이 다시 읽혀질 수 있도록 하기 위해 디코더에게 명백해야 된다.
이제 세 번째 세트의 코드 워드 (13) 내지 (15)가 결과로써 나온 데이터 스트림 (33)에 들어가게 되는데, 이 데이터 스트림 또한 단편으로 이루어진 것이다. 단계 b)로 유추해 볼 때, 이것은 바람직하게 동일한 지정 규칙에 의해 행해져서 세 번째 세트의 첫 번째 코드 워드가 첫 번째 세그먼트에 지정되고, 세 번째 세트의 두 번째 코드 워드가 두 번째 세그먼트에 지정되고, 세 번째 세트의 세 번째 코드 워드가 세 번째 세그먼트에, 등등으로, 지정된다. 이 지정 규칙은 세 번째 세트에 대해서는 완전히 확정적이지 않으며, 두 번째 세트에 대한 지정 규칙과는 다를 수 있는데, 한 세트의 각 코드 워드가 본 발명에 따라서 다른 세그먼트에 지정된다.
단계 c)에서의 첫 번째 시도는 단지 코드 워드 (15)번의 첫 번째 섹션이 입력될 때에만 성공적이고, 결과로써, 단편으로 이루어진 데이터 스트림 (34)을 만들어 낸다. 코드 워드 (13)과 (14) 및 코드 워드 (15)의 두 번째 섹션 즉, (15b)가 두 번째, 세 번째, 네 번째, 다섯 번째 시도에서 축적되기 위해 지정되는데, 두 번째 섹션 (15b)는 두 번째 시도에서 네 번째 세그먼트에 축적될 수 있고 (데이터 스트림 35), 세 번째 시도에서 축적될 수 있는 것은 아무것도 없으며, 코드 워드 (14)의 시작 섹션은 네 번째 시도에서 축적될 수 있고 (데이터 스트림 36), 코드 워드 (14)의 마지막 섹션 즉, (14b)는 네 번째 시도에서 축적될 수 있고 (데이터 스트림 37), 마지막으로, 세 번째 세트의 첫 번째 코드 워드는 여섯 번째와 마지막 시도에서 여섯 번째 세그먼트에 입력될 수 있으며, 그 결과로써 여기에 도시된 예로써 에러에 강한 데이터 스트림 (38)이 만들어진다. 도 3을 사용하여 설명한 방법은 에러에 강한 데이터 스트림의 길이가 정확히 가변 길이 코드 워드들의 길이를 합한 것에 해당함을 확실하게 하고, 이는 데이터 감소를 위한 엔트로피 인코딩을 하기 위하여 자명한 것이다. 그러나, 에러에 강하다는 것은 존재할 수 있는 어떤 필러 비트 (filler bits)에 의해 영향을 받지 않기 때문에, 본 발명은 최소의 길이를 갖는 에러에 강한 데이터 스트림에 한정되지는 않는다.
도 3에 도시된 강한 데이터 스트림과 관련하여 볼 때, 코드 워드 (8)번의 시작 즉, 래스터 포인트 (43)는 코드 워드 (7)번의 끝과 완전히 독립적인 것임을 알 수 있다. 게다가, 코드 워드 (9)번의 시작 즉, 래스터 포인트 (44)는 코드 워드 8번의 끝과 완전히 독립적이다. 그리고, 반대되는 기록 순서로 인해, 예를 들면, 첫 번째 세그먼트에 있는 코드 워드 (1)번에서의 데이터 에러가 - 이것은 올바르지 않은 코드 워드가 데이터 에러로 인해 올바른 코드 워드 (1)번보다 더 짧은 하나의 비트라는 사실에 이르게 한다. - 코드 워드 (7a)의 시작 섹션의 파괴로 이끌지는 않는데, 그 이유는 후자가 왼쪽에서 오른쪽 대신에 오른쪽에서 왼쪽으로 기록되었기 때문이다. 왼쪽에서 오른쪽으로 기록된 경우, 디코더는 코드 워드 (7)번의 시작 비트로서 처음에 올바른 코드 워드 (1)번으로부터 나머지 비트를 가져올 것이고, 그 결과 (1)부터 (7)까지의 시퀀스 에러가 생길 것이다. 그러나, 이 시퀀스 에러는 (8)로 전파되지 않을 것인데, 그 이유는 기록 순서가 오른쪽에서 왼쪽이 되도록 선택되어서, 코드 워드 (8)번이 코드 워드 (7)번과 완전히 독립적이기 때문이다. 코드 워드 (8)번의 기록 순서가 첫 번째 세트의 코드 워드들에 대한 기록 순서와 동일한 경우, 코드 워드 (8)번이 두 번재 부분 (7b) 앞에 있는 코드 워드 (2)번 근처에 기록될 것이고, 따라서 올바르지 않은 섹션 (7b)에 의해 영향을 받지 않기 때문에, 에러가 (7)에서 (8)로 전파되지는 않을 것이다.
적절한 예로, 도 4는 에러에 강한 데이터 스트림 (38)을 읽기 위한 장치의 동작을 보여준다. 처음에, 단계 a)에서 첫 번째 세트의 코드 워드들이 에러에 강한 데이터 스트림으로부터 추출된다. 이러한 목적을 위해, 허프만 디코더와 연결될 수 있는 본 발명의 장치는 첫 번째 세트의 모든 코드 워드 (1) 내지 (6)이 읽혀질 때까지, 첫 번째 래스터 포인트 (41)로부터 시작하여 첫 번째 세트의 코드 워드를 읽고, 두 번째 래스터 포인트 (42)로부터 시작하여 첫 번째 세트의 코드 워드 (2)번을 읽는다. 데이터 스트림을 읽기 위한 장치가 생산을 위한 장치가 사용했던 것과 동일한 방향을 선택한다는 것은 자명하다.
이어서, 단계 b)에서 두 번째 세트의 코드 워드들이 나머지 데이터 스트림 (50)으로부터 추출된다. 여기서, 디코더는 첫 번째 세그먼트의 두 번째 래스터 포인트 (42)로 건너뛰어서 두 번째 세트의 코드 워드 (7)의 시작 섹션을 얻어내는데, 두 번째 섹션 (7b)에서가 아니라, 두 번째 세그먼트의 두 번째 래스터 포인트로부터 시작하여 두 번째 세트의 두 번째 코드 워드에서 읽기 위해 먼저 저장된 (7a)에서 읽어낸다. 그 결과 나머지 데이터 스트림 (51)인데, 그 안에는 첫 번째 세그먼트가 완전히 비어있다. 이제는 디코더가 계속적으로 코드 워드 (7)을 읽지 않고, 데이터 스트림을 만들기 위한 장치가 사용한 지정 규칙을 바탕으로 세그먼트 하나씩 읽기 때문에, 이미 설명했고 시퀀스 에러를 크게 감소시킨 에러 내성 (error robustness)이 확인된다.
두 번째 세트의 코드 워드들을 추출하기 위한 두 번째 시도에서, 코드 워드의 두 번째 부분 (7b)이 존재하는 기록 방향에 따라 두 번째 세그먼트에서 읽혀지는데, 세 번째 세트의 코드 워드들만 결과로 나온 데이터 스트림 (52)에 남아 있다. (이제는 두 번째 세그먼트도 비어 있다.) 이들은 단계 c)에서 추출되는데, 코드 워드 (15)의 시작 섹션은 처음에 첫 번째 시도에서 결정되고, 저장되지는 않는데, 그 이유는 코드 워드 (15)가 세 번째 세그먼트에서 전부 발견되지 않았기 때문이다. 이제 세 번째 세그먼트도 비어 있지만, 디코더가 래스터 포인트들에 의해 적응할 수 있도록 하기 위해 그것들이 여전히 존재한다. 두 번째 시도에서, 코드 워드 (15)가 완전한 것으로 찾아질 수 있다. 그러나, 세그먼트 (3)에서 코드 워드 (14)를 찾고 세그먼트 (14)에서 코드 워드 (15)를 찾는 것은 성공하지 못하고, 이는 데이터 스트림 (54)에 의해 알 수 있다. 그럼에도 불구하고, 네 번째 시도에서는, 다섯 번째세그먼트에서 코드 워드 (14)에 대한 조사는 긍정적인 결과로 이끈다. 하지만, 코드 워드 (14)는 완전한 것이 아니었고, 이것은 다섯 번째 시도에서 나머지 데이터 스트림 (55)을 검토하고 마지막 여섯 번째 시도에서 이제는 여섯 번째 세그먼트와 코드 워드 (13)로만 구성되는 데이터 스트림 (56)을 완전히 읽기 위하여 시작 섹션 (14a)이 저장되었던 이유이다.
이전의 예에서 단지 코드 워드를 시작 섹션과 마지막 섹션으로 나눈 것은 예를 들기 위해 도시되었다 할 지라도, 원칙적으로 어떤 형식의 분할도 가능하다. 디코더가 두 번째 세트나 세 번째 세트 또는 그 이상의 세트의 코드 워드들을 각각 다른 세그먼트로 지정하는 한 에러에 강한 디코딩은 확실시될 것이다. 게다가, 디코더나 디코더의 읽기 회로 업스트림 (read-in circuit upstream)이 예정된 규정이 인코더에서 실행되었다는 것을 정확히 알고 있는 한 데이터 스트림으로 코드 워드들의 마지막 섹션들을 소팅하는 것은 확정적이지 않다.

Claims (21)

  1. 다수 개의 코드 워드 세트로 나뉘어지는 가변 길이 코드 워드의 데이터 스트림 생성 방법에 있어서, 래스터 포인트들을 갖는 하나의 래스터는 상기 데이터 스트림을 위해 존재하고, 두 개의 이웃하는 래스터 포인트 (41, 42)는 하나의 세그먼트 (40)를 규정지으며, 상기 래스터는 다수 개의 세그먼트를 포함하여 구성되며, 상기 가변 길이 코드 워드의 데이터 스트림 생성 방법은:
    a1) 상기 코드 워드들의 시작이 다른 세그먼트의 래스터 포인트에서 시작하도록 첫 번째 세트의 코드 워드들 (1-6)을 기록 (16)하는 단계와;
    a2) 하나의 코드 워드가 하나의 세그먼트 보다 더 길 경우, 상기 첫 번째 세트의 모든 코드 워드가 래스터에 기록될 때까지, 제 1의 예정된 규정에 따라, 단 계 a1) 이후에 기록되지 않은 래스터의 영역으로 상기 코드 워드의 나머지를 기록하는 단계와;
    b1) 대표적인 코드 워드가 세그먼트에 맞을 경우, 예정된 지정 규칙에 따라 각 코드 워드에 지정된 세그먼트로 두 번째 세트의 각 코드 워드 (7-12)를 기록 하고, 두 번째 세트의 각 코드 워드는 상기 예정된 지정 규칙으로 인해 다른 세그먼트에 지정되는 단계와;
    b2) 각 코드 워드의 일부 (7a)만 지정된 세그먼트에 맞을 경우에는, 두 번째 세 트의 대표적인 코드 워드 (7)의 일부 (7a)를 지정된 세그먼트 (1)에 기록하 고 상기 코드 워드 (7)의 나머지 (7b)를 저장하거나, 또는 지정된 세그먼트 가 채워질경우에는, 상기 채워진 세그먼트에 지정된 코드 워드 전체 (13)를 저장하는 단계와;
    b3) 상기 두 번째 세트의 모든 코드 워드들이 래스터에 기록될 때까지, 제 2의 예정된 규정에 따라, 단계 b1), b2)에서 각 세그먼트에 맞지 않은 상기 저장 된 나머지 (7b) 또는 상기 저장된 전체의 코드 워드 (13)를 단계 b1), b2) 이후에 기록되지 않은 래스터의 영역에 기록하는 단계를 포함하는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  2. 청구항 1에 있어서,
    상기 첫 번째 세트의 코드 워드들이 순서대로 존재하고, 이 코드 워드들은 그들의 순서에 따라 이웃하는 세그먼트로 기록되는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  3. 청구항 1에 있어서,
    단계 a2)에서 제 1의 예정된 규정은:
    ⅰ) 상기 나머지의 적어도 일부분을 위해 세그먼트에 방이 있는 경우, 상기 코드 워드의 시작 섹션이 존재하는 세그먼트 다음에 있는 세그먼트로 상기 첫 번째 세트의 한 코드 워드의 나머지 중 적어도 일부분을 기록하고;
    ⅱ) 그러한 코드 워드들이 존재하는 경우에 상기 첫 번째 세트의 다음 코드 워드들 모두의 나머지에 대해 단계 (ⅰ)를 수행하고;
    ⅲ) 상기 첫 번째 세트의 모든 코드 워드가 상기 데이터 스트림 931)에 기록될 때까지 각각의 나머지를 위해 하나의 세그먼트씩 진행하는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  4. 청구항 1에 있어서,
    상기 두 번째 세트의 코드 워드들이 순서대로 존재하고, 상기 예정된 지정 규칙이 상기 두 번째 세트의 첫 번째 코드 워드를 상기 첫 번째 세트의 첫 번째 코드 워드의 시작이 존재하는 그 세그먼트로 지정하고, 상기 두 번째 세트의 두 번째 코드 워드들 상기 첫 번째 세트의 두 번째 코드 워드의 시작이 존재하는 그 세그먼트로 지정하고, 현행의 경우에는, 상기 첫 번째 세트의 다음 각 코드 워드를 상기 첫 번째 세트의 해당 코드 워드의 시작이 존재하는 그 세그먼트로 지정하는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  5. 청구항 1에 있어서,
    상기 제 2의 예정된 규정은 상기 제 1의 예정된 규정과 동일한 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  6. 청구항 1에 있어서,
    상기 제 1의 또는 제 2의 예정된 규정에 따라, 또다시 나머지가 남아 있는 지정된 세그먼트 다음에 오는 세그먼트에 방이 많이 있는 경우, 지정된 세그먼트에 완전하게 맞지 않은 해당 세트의 한 코드 워드는 세 개 또는 그 이상의 부분으로 떨어지는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  7. 청구항 1에 있어서,
    상기 래스터 포인트는 동일하게 공간을 두고 떨어져 배열되고, 그럼르오써 마지막 세그먼트를 제외하고 세그먼트들이 동일한 길이가 되며, 첫 번째 세트의 각 코드 워드가 해당 세그먼트에 맞도록, 상기 동일한 길이의 세그먼트들은 첫 번째 세트의 최장 코드 워드보다 더 길거나 그만큼 긴 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  8. 청구항 1에 있어서,
    상기 첫 번째 세트의 코드 워드들은 각각 세그먼트의 첫 번째 래스터 포인트에서 시작하여, 제 1의 기록 방향으로 기록되고, 상기 두 번째 세트의 코드 워드들은 각각 세그먼트의 두 번째 래스터 포인트에서 시작하여 상기 제 1의 기록 방향에 반대되는 제 2의 기록 방향으로 기록되는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  9. 청구항 8에 있어서,
    제 3의 코드 워드 세트가 존재하고, 상기 두 번째 세트의 모든 코드 워드들이 래스터에 기록된 후, 상기 제 3의 코드 워드 세트가 다시, 상기 제 1의 기록 방향으로상기 래스터에 기록되는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  10. 청구항 1에 있어서,
    상기 코드 워드들은 허프만 코드 워드들인 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  11. 청구항 1에 있어서,
    상기 코드 워드들은 정보 기호를 나타내고, 상기 첫 번째 세트의 코드 워드들은 상기 두 번째 세트 또는 그 이상의 세트의 코드 워드들보다 더 중요한 정보 기호를 나타내는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 방법.
  12. 청구항 11에 있어서,
    상기 정보 기호는 오디오 신호의 스펙트럼 값이고, 상기 제 1 세트의 코드 워드들은 정신-음향학적 견지로 보아 중요하고 데이터 스트림에서의 전송 에러로 인한 에러 전파로부터 보호받는 스펙트럼 값인 것이 특징인 데이터 스트림 생성 방법.
  13. 청구항 1에 있어서,
    생성된 데이터 스트림의 길이는 상기 가변 길이 코드 워드들의 길이의 합과 동일한 것이 특징인 데이터 스트림 생성 방법.
  14. 청구항 1에 있어서,
    두 개 이상의 코드 워드 세트가 존재하고, 상기 코드 워드 세트의 코드 워드들에 대해 단계 b1), b2), b3)를 수행하는 단계를 더 포함하며, 상기 제 2의 예정된 규정은 단계 b2)의 제 2 예정된 규정에 해당하고, 상기 예정된 지정 규칙은 단계 b1)의 예정된 지정 규칙에 해당하는 것이 특징인 데이터 스트림 생성 방법.
  15. 가변 길이 코드 워드들의 데이터 스트림 독출 방법에 있어서, 상기 데이터 스트림은 다수 개의 코드 워드 세트의 코드 워드들을 포함하여 구성되고, 래스터 포인트들 (41, 42)을 포함하여 구성되는 하나의 래스터가 상기 데이터 스트림을 위해 지정되며, 두 개의 이웃하는 래스터 포인트 (41, 42)가 하나의 세그먼트 (40)를 규정지으며, 상기 데이터 스트림은 적어도 두 개의 세그먼트를 포함하여 구성되며,
    상기 가변 길이 코드 워드들의 데이터 스트림 독출 방법은:
    a) 다음 각 단계 즉,
    a1) 각 세그먼트에 대해, 하나의 래스터 포인트로 건너뛰기를 하고 거기 서 시작하는 코드 워드를 독출하는 단계와;
    a2) 래스터 포인트에서 시작한 코드 워드가 세그먼트의 끝에서 끝나지 않 은 경우, 상기 코드 워드의 독출 섹션을 저장하는 단계와;
    a3) 데이터 스트림을 생성할 때 사용된 제 1의 예정된 규정을 바탕으로 하여 상기 코드 워드의 나머지를 결정하는 단계
    에 의해 상기 데이터 스트림 (38)으로부터 첫 번째 세트의 코드 워드들을 추출하는 단계와;
    b) 다음 각 단계 즉,
    b1) 각각의 나머지 세그먼트에 대해, 데이터 스트림을 생성할 때 사용된 예정된 지정 규칙을 바탕으로 하여 상기 세그먼트의 한 래스터 포인트로 건 너 뛰기를 하고, 두 번째 세트의 코드 워드들을 얻기 위해, 거기서 시작하는 코드 워드를 독출하는 단계와;
    b2) 상기 두 번째 세트의 코드 워드가 해당 세그먼트의 끝에서 끝나지 않 은 경우, 상기 두 번째 세트의 코드 워드의 독출 섹션을 저장하는 단계와;
    b3) 데이터 스트림을 생성할 때 사용된 제 2의 예정된 규정을 바탕으로 하여, 상기 코드 워드의 나머지 또는 래스터 포인트에 존재하지 않은 코드 워드를 결정하는 단계
    에 의해 단계 (a) 이후에 남아 있는 데이터 스트림 (50)으로부터 두 번째 코드 워드 세트의 코드 워드들을 추출하는 단계를 포함하는 것이 특징인 가변 길이 코드 워드들의 데이터 스트림 독출 방법.
  16. 청구항 15에 있어서,
    상기 데이터 스트림은 두 개 이상의 코드 워드 세트를 포함하여 구성되고, 단계 b1), b2), b3)를 반복함으로써 세 번째 세트의 코드 워드들을 추출하는 단계를 더 포함하며, 상기 제 2의 예정된 규정은 단계 b3)의 제 2 예정된 규정과 동일하며,상기 지정 규칙은 단계 b1)의 지정 규칙과 동일한 것이 특징인 가변 길이 코드 워드들의 데이터 스트림 독출 방법.
  17. 청구항 15에 있어서,
    데이터 스트림을 생성할 때 사용된 상기 지정 규칙은 두 번째 세트의 제 1 코드 워드를 첫 번째 세트의 첫 번째 코드 워드가 시작한 세그먼트에 지정하고, 단계 b1)에서, 두 번째 세트의 첫 번째 코드 워드를 얻기 위하여, 첫 번째 래스터 포인트 (41)로 건너뛰고, 두 번째 세트의 두 번째 코드 워드를 얻기 위하여, 두 번째 래스터 포인트 (42)로 건너뛰기를 하고, 같은 식으로 건너뛰기를 하고, 첫 번째 래스터 포인트 (41)에서 시작하는 코드 워드가 전혀 없거나 일부만 존재하는 경우, 상기 제 2의 예정된 규정을 바탕으로 하여 없어진 코드 워드 또는 한 코드 워드의 없어진 부분이 결정되기 전에, 처음에 모든 래스터 포인트로부터 시작하여 읽기를 하는 것이 특징인 가변 길이 코드 워드들의 데이터 스트림 독출 방법.
  18. 청구항 1에 있어서,
    단계 a3)에서의 제 1 예정된 규정은:
    독출된 코드 워드의 저장된 섹션 각각에 대해, 상기 코드 워드의 나머지를 결정하기 위하여 단계 a1) 이후에 남아있는 데이터 스트림 내의 다음 래스터 포인트로 건너뛰기를 하고;
    코드 워드가 끝에서 독출될 수 없는 경우에는, 첫 번째 세트의 코드 워드를 완전하게 얻기 위하여 끝에서 독출된 코드 워드와 저장된 섹션을 연결하고, 그렇지 않은 경우에는, 첫 번째 세트의 모든 코드 워드가 존재할 때까지, 읽혀질 수 있는 섹션을 저장하고 다음의 래스터 포인트로 건너뛰는 단계를 반복하는 것이 특징인 가변 길이 코드 워드들의 데이터 스트림 독출 방법.
  19. 청구항 1에 있어서,
    데이터 스트림에 있는 세그먼트만큼 많은 코드 워드들이 상기 첫 번째 코드 워드 세트에 있고, 첫 번째 세트의 모든 코드 워드들이 래스터 포인트에 기록되도록, 나머지 다른 세트에 있는 코드 워드들의 수가 첫 번째 세트의 코드 워드들 수와 동일하거나 더 작은 것이 특징인 가변 길이 코드 워드들의 데이터 스트림 독출 방법.
  20. 다수 개의 코드 워드 세트로 나뉘어지는 가변 길이 코드 워드의 데이터 스트림 생성 장치에 있어서, 래스터 포인트들을 갖는 하나의 래스터가 상기 데이터 스트림을 위해 존재하고, 두 개의 이웃하는 래스터 포인트 (41, 42)는 하나의 세그먼트 (40)를 규정지으며, 상기 래스터는 다수 개의 세그먼트를 포함하여 구성되며, 상기 가변 길이 코드 워드의 데이터 스트림 생성 장치는:
    a) 상기 코드 워드들의 시작이 다른 세그먼트의 래스터 포인트에서 시작하도록 첫 번째 세트의 코드 워드들 (1-6)을 기록 (16)하는 디바이스 (16)를 포함하고,
    상기 디바이스 (16)는 하나의 코드 워드가 하나의 세그먼트 보다 더 길 경 우, 상기 첫 번째 세트의 모든 코드 워드가 래스터에 기록될 때까지, 제 1의 예정된 규정에 따라, 단계 a1) 이후에 기록되지 않은 래스터의 영역으로 상 기 코드 워드의 나머지를 기록하도록 형성되고;
    b) 예정된 지정 규칙에 따라 각 코드 워드에 지정된 세그먼트로 두 번째 세트의 각 코드 워드 (7-12)를 기록하는 디바이스 (18)를 포함하고, 대표적인 코드 워드가 세그먼트에 맞을 경우, 두 번째 세트의 각 코드 워드는 상기 예정된 지정 규칙으로 인해 다른 세그먼트에 지정되며, 상기 디바이스 (18)는:
    대표적인 코드 워드의 일부분만 지정된 세그먼트에 맞을 경우, 두 번째 세트 의 대표적인 코드 워드 (7)의 일부 (7a)를 지정된 세그먼트 (1)에 기록하고 상기 코드 워드의 나머지 (7b)를 저장하거나, 또는 지정된 세그먼트가 채워 질 경우에는, 상기 채워진 세그먼트에 지정된 코드 워드 전체 (13)를 저장하 며;
    상기 두 번째 세트의 모든 코드 워드들이 래스터에 기록될 때까지, 제 2의 예정된 규정에 따라, 단계 b1), b2)에서 각 세그먼트에 맞지 않은 상기 저장 된 나머지 (7b)와 상기 저장된 전체의 코드 워드 (13)를 단계 b1), b2) 이후 에 기록되지 않은 래스터의 영역에 기록하도록 형성되는 것이 특징인 가변 길이 코드 워드의 데이터 스트림 생성 장치.
  21. 가변 길이 코드 워드들의 데이터 스트림 독출 장치에 있어서, 상기 데이터 스트림은 다수 개의 코드 워드 세트의 코드 워드들을 포함하여 구성되고, 래스터 포인트들 (41, 42)을 포함하여 구성되는 하나의 래스터가 상기 데이터 스트림을 위해 지정되며, 두 개의 이웃하는 래스터 포인트 (41, 42)가 하나의 세그먼트 (40)를 규정지으며, 상기 데이터 스트림은 적어도 두 개의 세그먼트를 포함하여 구성되며, 상기 가변 길이 코드 워드들의 데이터 스트림 독출 장치는:
    a) 상기 데이터 스트림 (38)으로부터 상기 첫 번째 세트의 코드 워드들을 추출하는 디바이스 (28)를 포함하고, 상기 디바이스는:
    각 세그먼트에 대해, 하나의 래스터 포인트로 건너뛰기를 하고 거기서 시작 하는 코드 워드를 독출하고;
    래스터 포인트에서 시작한 코드 워드가 세그먼트의 끝에서 끝나지 않은 경 우, 상기 코드 워드의 독출 섹션을 저장하고;
    데이터 스트림을 생성할 때 사용된 제 1의 예정된 규정을 바탕으로 하여 상 기 코드 워드의 나머지를 결정하도록 형성되고;
    b) 단계 a) 이후에 남아 있는 데이터 스트림 (50)으로부터 두 번째 코드 워드 세트의 코드 워드들을 추출하는 디바이스 (30)를 포함하고, 상기 디바이스는:
    각각의 나머지 세그먼트에 대해, 데이터 스트림을 생성할 때 사용된 예정된 지정 규칙을 바탕으로 하여 상기 세그먼트의 한 래스터 포인트로 건너뛰기를 하고, 두 번째 세트의 코드 워드들을 얻기 위해, 거기서 시작하는 코드 워드 를 독출하고;
    상기 두 번째 세트의 코드 워드가 해당 세그먼트의 끝에서 끝나지 않은 경 우, 상기 두 번째 세트의 코드 워드의 독출 섹션을 저장하고;
    데이터 스트림을 생성할 때 사용된 제 2의 예정된 규정을 바탕으로 하여, 상 기 코드 워드의 나머지 또는 래스터 포인트에 존재하지 않은 코드 워드를 결 정하도록 형성되는 것이 특징인 가변 길이 코드 워드들의 데이터 스트림 독출 장치.
KR10-2001-7010712A 1999-02-23 2000-01-17 가변 길이의 코드 워드의 데이터 스트림을 만드는 방법 및장치와 가변 길이의 코드 워드의 데이터 스트림을 읽어내는 방법 및 장치 KR100407479B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19907729A DE19907729C2 (de) 1999-02-23 1999-02-23 Verfahren und Vorrichtung zum Erzeugen eines Datenstroms aus Codeworten variabler Länge und Verfahren und Vorrichtung zum Lesen eines Datenstroms aus Codeworten variabler Länge
DE19907729.0 1999-02-23
PCT/EP2000/000312 WO2000051241A1 (de) 1999-02-23 2000-01-17 Verfahren und vorrichtung zum erzeugen eines datenstroms aus codeworten variabler länge und verfahren und vorrichtung zum lesen eines datenstroms aus codeworten variabler länge

Publications (2)

Publication Number Publication Date
KR20010102333A true KR20010102333A (ko) 2001-11-15
KR100407479B1 KR100407479B1 (ko) 2003-11-28

Family

ID=7898538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7010712A KR100407479B1 (ko) 1999-02-23 2000-01-17 가변 길이의 코드 워드의 데이터 스트림을 만드는 방법 및장치와 가변 길이의 코드 워드의 데이터 스트림을 읽어내는 방법 및 장치

Country Status (11)

Country Link
US (1) US7103554B1 (ko)
EP (1) EP1153481B1 (ko)
JP (1) JP3523845B2 (ko)
KR (1) KR100407479B1 (ko)
CN (1) CN100452658C (ko)
AT (1) ATE221278T1 (ko)
AU (1) AU754371B2 (ko)
CA (1) CA2363953C (ko)
DE (2) DE19907729C2 (ko)
HK (1) HK1044641B (ko)
WO (1) WO2000051241A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006020934A2 (en) * 2004-08-13 2006-02-23 Conexant Systems, Inc. Systems and methods for decreasing latency in a digital transmission system
US20060218459A1 (en) * 2004-08-13 2006-09-28 David Hedberg Coding systems and methods
RU2639687C1 (ru) * 2015-10-13 2017-12-21 Хуавэй Текнолоджиз Ко., Лтд Устройство и способ декодирования и система передачи сигналов

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE6912656U (de) * 1969-03-27 1969-07-31 Hiba Beschaffungsring Gmbh Duebel.
DE3702490A1 (de) * 1987-01-28 1988-08-11 Thomson Brandt Gmbh Verfahren und vorrichtung zur digitalen nachrichtenuebertragung und/oder -aufzeichnung und -wiedergabe
DE3943879B4 (de) * 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
EP0453229B1 (en) * 1990-04-17 1997-06-18 Matsushita Electric Industrial Co., Ltd. Method for transmission of variable length code
JPH04221465A (ja) * 1990-12-21 1992-08-11 Matsushita Electric Ind Co Ltd 記録装置
US5392037A (en) * 1991-05-21 1995-02-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for encoding and decoding
US5285498A (en) * 1992-03-02 1994-02-08 At&T Bell Laboratories Method and apparatus for coding audio signals based on perceptual model
CA2090052C (en) * 1992-03-02 1998-11-24 Anibal Joao De Sousa Ferreira Method and apparatus for the perceptual coding of audio signals
EP1267582B1 (en) * 1995-03-15 2006-05-17 Kabushiki Kaisha Toshiba Moving picture coding System, and variable-length coding system
US5956088A (en) * 1995-11-21 1999-09-21 Imedia Corporation Method and apparatus for modifying encoded digital video for improved channel utilization
EP0778709B1 (en) * 1995-12-04 2001-05-23 STMicroelectronics S.r.l. MPEG-2 decoding with a reduced RAM requisite by ADPCM recompression before storing MPEG decompressed data
US6263312B1 (en) * 1997-10-03 2001-07-17 Alaris, Inc. Audio compression and decompression employing subband decomposition of residual signal and distortion reduction
DE19747119C2 (de) * 1997-10-24 2003-01-16 Fraunhofer Ges Forschung Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms
US6020934A (en) * 1998-03-23 2000-02-01 International Business Machines Corporation Motion estimation architecture for area and power reduction
US6434196B1 (en) * 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
US6339760B1 (en) * 1998-04-28 2002-01-15 Hitachi, Ltd. Method and system for synchronization of decoded audio and video by adding dummy data to compressed audio data
US6122619A (en) * 1998-06-17 2000-09-19 Lsi Logic Corporation Audio decoder with programmable downmixing of MPEG/AC-3 and method therefor
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6377930B1 (en) * 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6975254B1 (en) 1998-12-28 2005-12-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Methods and devices for coding or decoding an audio signal or bit stream
WO2000049617A1 (en) * 1999-02-17 2000-08-24 Matsushita Electric Industrial Co., Ltd. Information recording medium, apparatus and method for performing after-recording on the recording medium
DE19907728C2 (de) 1999-02-23 2001-03-01 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
US6804655B2 (en) * 2001-02-06 2004-10-12 Cirrus Logic, Inc. Systems and methods for transmitting bursty-asnychronous data over a synchronous link

Also Published As

Publication number Publication date
WO2000051241A1 (de) 2000-08-31
JP3523845B2 (ja) 2004-04-26
ATE221278T1 (de) 2002-08-15
HK1044641B (zh) 2009-10-23
AU2292100A (en) 2000-09-14
JP2002538653A (ja) 2002-11-12
DE50000312D1 (de) 2002-08-29
CA2363953A1 (en) 2000-08-31
DE19907729A1 (de) 2000-09-14
DE19907729C2 (de) 2001-02-22
CN100452658C (zh) 2009-01-14
EP1153481B1 (de) 2002-07-24
US7103554B1 (en) 2006-09-05
EP1153481A1 (de) 2001-11-14
AU754371B2 (en) 2002-11-14
KR100407479B1 (ko) 2003-11-28
HK1044641A1 (en) 2002-10-25
CA2363953C (en) 2004-04-06
CN1345484A (zh) 2002-04-17

Similar Documents

Publication Publication Date Title
US6975254B1 (en) Methods and devices for coding or decoding an audio signal or bit stream
US8046236B2 (en) Apparatus and method for producing a data stream and apparatus and method for reading a data stream
JP2739377B2 (ja) デジタル式コード化方法
KR100397806B1 (ko) 정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법
KR100969731B1 (ko) 데이터의 중요도에 따라 변형된 데이터 스트림을 생성하는장치 및 그 데이터 스트림을 해석하는 장치
KR100904626B1 (ko) Mp3용 트릭 플레이
JP2796673B2 (ja) ディジタル・コード化方法
KR100729347B1 (ko) 인코딩된 신호 내부에 보조 데이터의 삽입
KR100407479B1 (ko) 가변 길이의 코드 워드의 데이터 스트림을 만드는 방법 및장치와 가변 길이의 코드 워드의 데이터 스트림을 읽어내는 방법 및 장치
JP4168000B2 (ja) オーディオ信号又はビットストリームの符号化又は復号化のための方法及び装置
JP3565147B2 (ja) 復号装置
JP3606388B2 (ja) オーデイオデータ再生方法及びオーデイオデータ再生装置
KR20050017088A (ko) 사인 곡선 오디오 부호화

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

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20131108

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20141111

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20151116

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20161110

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20171106

Year of fee payment: 15