KR100391935B1 - 오디오 신호를 코딩 또는 디코딩하는 방법 및 디바이스 - Google Patents

오디오 신호를 코딩 또는 디코딩하는 방법 및 디바이스 Download PDF

Info

Publication number
KR100391935B1
KR100391935B1 KR10-2001-7008203A KR20017008203A KR100391935B1 KR 100391935 B1 KR100391935 B1 KR 100391935B1 KR 20017008203 A KR20017008203 A KR 20017008203A KR 100391935 B1 KR100391935 B1 KR 100391935B1
Authority
KR
South Korea
Prior art keywords
code
spectral
raster
priority
code words
Prior art date
Application number
KR10-2001-7008203A
Other languages
English (en)
Other versions
KR20010108051A (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 claimed from PCT/EP1998/008475 external-priority patent/WO2000039933A1/de
Publication of KR20010108051A publication Critical patent/KR20010108051A/ko
Application granted granted Critical
Publication of KR100391935B1 publication Critical patent/KR100391935B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/0212Speech 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 using orthogonal transformation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/66Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission
    • H04B1/662Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission using a time/frequency relationship, e.g. time compression or expansion

Abstract

코드화된 비트 스트림을 얻기 위한 오디오 신호 코딩 방법에 있어서, 오디오 신호의 이산-시간 샘플이주파수 영역으로 변환되어 스펙트럼 값을 얻는다. 스펙트럼 값은 길이가 다른 한정된 수의 코드 워드를 갖는 코드 테이블로 코드화되어 코드 워드에 의해 코드화된 스펙트럼 값을 얻는데, 스펙트럼 값에 지정된 코드 워드의 길이는 스펙트럼 값이 발생할 가능성이 높을수록 훨씬 더 짧아진다. 그 다음 코드화된 비트 스트림에 대해 래스터가 정해지는데, 이 래스터는 등거리의 래스터 포인트를 가지며 래스터 포인트 사이의 거리는 사용된 코드 테이블에 의존한다. 에러에 내성이 있는 허프만 코딩을 얻기 위하여, 우선순위의 코드 워드가 래스터에 배열되어 각 우선순위의 코드 워드의 시작이 래스터 포인트와 일치하게 되는데, 우선순위의 코드 워드란 다른 스펙트럼 값보다 정신음향학적으로 더 중요한 특정 스펙트럼 값을 나타내는 것이다.

Description

오디오 신호를 코딩 또는 디코딩하는 방법 및 디바이스{METHOD AND DEVICES FOR CODING OR DECODING AND AUDIO SIGNAL OF BIT STREAM}
표준 엠펙 레이어 3(MPEG layer 3)에 따라 동작하는 현대의 오디오 신호 코딩 또는 디코딩 방법은 예를 들어, 음질을 두드러지게 훼손시키지 않고 오디오 신호의 데이터 압축비를 예를 들어 12분의 1로 압축할 수 있다. 그러한 높은 데이터 압축비를 얻기 위하여 하나의 오디오 신호가 표본 추출되고, 그 결과 이산-시간 샘플이 연속적으로 얻어진다. 이 기술 부문에서 알려진 바와 같이, 시간 샘플 (temporal samples)의 윈도우 블록을 얻기 위해 이산-시간 샘플의 시퀀스가 적절한 윈도 기능을 사용하여 윈도우에 위치하게 된다. 그런 다음, 시간 샘플의 윈도우 블록 (a block of temporal windowed samples)이 필터 뱅크, 변경된 이산 코사인 변환 (a modified discrete cosine transform; MDCT) 또는 다른 적절한 방법에 의해 주파수 영역 (frequency domain)으로 변환되어 오디오 신호 즉, 이산-시간 샘플 블록으로구성되는 시간 섹션 (temporal section)을 함께 나타내는 스펙트럼 값 (spectral values)을 주파수 영역에서 얻어낸다. 보통은 50%가 중복되는 시간 블록 (temporal blocks)이 발생되고 MDCT에 의해 주파수 영역으로 변환된다. MDCT의 특성 때문에, 1024의 이산-시간 샘플은 예를 들어 항상 1024의 스펙트럼 값을 구한다. 인간의 가청력은 오디오 신호 자체의 순간적 스펙트럼에 의존한다고 알려져 있다. 이 의존도는 소위 청각심리(사이코어쿠스틱) 모델에 반영된다. 이 모델을 사용하여 순간적 스펙트럼에 의존하는 마스킹 드레숄드 (masking thresholds)를 계산하는 것이 오랫동안 가능해왔다. 마스킹이란 이웃하는 스펙트럼 범위가 상대적으로 높은 에너지를 가질 때 특정한 톤이나 스펙트럼 일부가 들리지 않게 되는 것을 의미한다. 이러한 마스킹 현상은 후-변환 스펙트럼 값 (post-transform spectral values)을 가능한 한 조잡하게 양자화 하도록 이용된다. 따라서, 디코딩된 오디오 신호에서 청취 방해 (audible disturbances)를 피하는 한편 가능한 한 적은 비트를 사용하여 오디오 신호를 코드화하거나 양자화 하는 것이 목적이다. 양자화하면서 발생되는 방해 즉, 양자화 노이즈는 마스킹 드레숄드 아래에 있어서 들리지 않는다. 그러므로 알려진 방법에 따르면 스펙트럼 값이 인간 귀의 주파수 그룹을 반영하는 소위 스케일 팩터 밴드 (scale factor bands)로 세분된다. 하나의 스케일 팩터 그룹 내에 있는 스펙트럼 값은 스케일 팩터 밴드의 스펙트럼 값 전체를 스케일하도록 스케일 팩터에 의해 곱해진다. 그런 다음 스케일 팩터로 스케일된 스케일 팩터 밴드가 양자화되어 양자화된 스펙트럼 값을 발생시킨다. 물론 스케일 팩터 밴드로 그룹화하는 것은 필수가 아님이 분명하다. 그러나, 이 과정이 표준 엠펙 레이어 3과 표준 엠펙-2 AAC(AAC=Advanced Audio Coding)에서 사용된다.
데이터 감소의 매우 중요한 면은 양자화로부터 얻어낸 양자화된 스펙트럼 값의 엔트로피 코딩이다. 보통 허프만 코딩 (Huffman coding)이 이것을 위해 사용된다. 허프만 코딩은 가변길이 코딩을 필요로 하는데 즉, 코딩될 값을 위한 코드 워드의 길이가 이 값의 발생 가능성에 의존한다. 매우 좋은 리던던시 감소가 허프만 코딩으로 얻어질 수 있도록 하기 위해서, 논리학상 가장 가능성 있는 심볼은 가장 짧은 코드 즉, 가장 짧은 코드 워드이다. 전 세계적으로 알려져 있는 가변-길이 코딩의 예는 모르스 알파벳 (Morse alphabet)이다.
오디오 코딩에서 허프만 코드는 양자화된 스펙트럼 값을 코드화하는데 사용된다. 예를 들어 표준 엠펙-2 AAC에 따라 동작하는 현대의 오디오 코더는 섹션별로 특별한 표준에 따라 스펙트럼에 지정되어 있는 다른 허프만 코드 테이블을 사용하여 양자화된 스펙트럼 값을 코드화한다. 여기서 2 또는 4개의 스펙트럼 값이 항상 하나의 코드 워드 안에서 함께 코드화된다.
엠펙-2 AAC에 따른 방법이 엠펙 레이어 3 방법과 다른 점 하나는 다른 스케일 팩터 밴드 즉, 다른 스펙트럼 값들이 임의의 큰 숫자를 갖는 스펙트럼 섹션으로 그룹화된다는 것이다. AAC에서 스펙트럼 섹션은 적어도 4개의 스펙트럼 값, 바람직하게는 4개 이상의 스펙트럼 값을 포함한다. 따라서 모든 섹션이 함께 후-변환 스펙트럼 값에 의해 연결되는 주파수 범위 전체를 커버하도록, 스펙트럼 값의 전체 주파수 범위는 인접한 섹션으로 나뉘어지는데, 하나의 섹션은 하나의 주파수 밴드를 나타낸다.
최대의 리던던시 감소를 얻기 위해, 수많은 그러한 테이블 중 하나인 소위 허프만 테이블이 엠펙 레이어 3 방법에서처럼 각 섹션에 지정된다. 보통 1024개의 스펙트럼 값을 갖는 AAC 방법의 비트 스트림에서, 스펙트럼 값에 대한 허프만 코드 워드는 상승 주파수 시퀀스 안에 있게된다. 각각의 주파수 섹션에서 사용되는 테이블에 대한 정보는 부가적 정보 (side information)로서 전달된다. 이러한 상황이 도 2에 나타나 있다.
도 2에서 예시적으로 보여지는 경우에 있어서, 비트 스트림이 10개의 허프만 코드 워드로 구성된다. 만약 하나의 코드 워드가 항상 하나의 스펙트럼 값으로부터 형성된다면, 여기서 10개의 스펙트럼 값이 코드화될 수 있다. 그러나 보통은 2 또는 4개의 스펙트럼 값이 항상 하나의 코드 워드에서 함께 코드화된다. 그래서 도 2는 20 또는 40개의 스펙트럼 값으로 구성되는 코드화된 비트 스트림의 일부를 나타낸다. 각각의 허프만 코드 워드가 2개의 스펙트럼 값으로 구성된 경우에, 숫자 1로 표현되는 코드 워드는 처음 2개의 스펙트럼 값을 나타낸다. 이 코드 워드의 길이는 비교적 짧은데, 이는 처음 2개의 스펙트럼 값 즉, 2개의 최저 주파수 계수에 대한 값이 비교적 종종 발생한다는 것을 의미한다. 한편, 숫자 2를 갖는 코드 워드는 비교적 길고, 이는 코드화된 오디오 신호에서 세 번째와 네 번째 스펙트럼 계수의 기여가 비교적 드물다는 것을 의미한다. 왜냐하면 그것들은 비교적 큰 비트 수로 코드화되기 때문이다. 또한 코드 워드 각각의 길이가 비교적 짧기 때문에, 스펙트럼 계수 5와 6, 7과 8, 그리고 9와 10을 나타내는 숫자 3, 4, 5를 갖는 코드 워드가 비교적 빈번히 발생된다는 것을 도 2에서 알 수 있다. 유사한 개념이 숫자 6 내지10을 갖는 코드 워드에도 적용된다.
이미 언급한 바와 같이, 코드화된 스펙트럼 값에 대한 허프만 코드 워드가 알려진 임의의 한 코딩 디바이스에 의해 발생된 비트 스트림의 경우에 주파수에 대해 비트 스트림 안에서 일직선의 오름차순으로 배열된다는 것이 도 2로부터 명백하다.
에러를 안고 있는 채널의 경우 허프만 코드의 큰 단점은 에러가 전파된다는 것이다. 예를 들어 도 2의 코드 워드 숫자 2가 방해를 받는다고 가정하면, 이 에러를 안고있는 코드 워드 숫자 2의 길이 또한 변경될 가능성이 있다는 것을 무시할 수 없다. 따라서 이것은 올바른 길이와 다르다. 도 2의 예에서, 만약 코드 워드 숫자 2의 길이가 방해를 받아 변경된다면, 디코더가 어디서 코드 워드 3 내지 10이 시작해야될지를 결정하는 것이 불가능해 진다. 다시 말하면 재연된 오디오 신호 전체가 영향을 받는다. 따라서 방해받은 코드 워드를 뒤따르는 나머지 모든 코드 워드가 어디서 시작해야 될지 모르고 에러로 인해 잘못된 시작점이 선택되기 때문에 이들 코드 워드들이 정확하게 디코드화 될 수 없다.
에러 전파의 문제점에 대한 해결책으로서 유럽 특허 제 0612156 호는 코드 워드의 시작이 완전한 디코딩 없이 또는 잘못된 전송의 경우에도 더 쉽게 확인될 수 있도록 하기 위해 가변 길이의 코드 워드 일부는 하나의 래스터 (raster)에 배열되고 나머지 코드 워드들은 남아 있는 갭 (gaps)에 배열되어야 한다는 것을 제안하고 있다.
상기의 알려진 방법은 코드 워드들을 재배열함으로써 에러 전파의 부분적 구제책을 제공하고 있다. 일부 코드 워드들을 위해 비트 스트림 내에 고정된 장소가 마련되어 있고 남아 있는 공간은 나머지 코드 워드들이 차지할 수 있다. 이것은 여분의 비트를 필요로 하지 않고 에러 발생 시에 재배열된 코드 워드 사이에서 에러 전파를 막는다.
상기 알려진 방법의 효과를 위한 결정적인 매개변수는 래스터가 실제로 어떻게 정해지느냐이다. 다시 말해, 얼마나 많은 래스터 포인터가 필요하고, 래스터 포인트 사이의 래스터 거리는 얼마나 되는가 등등. 그러나, 유럽 특허 제 0612156 호는 하나의 래스터가 에러 전파를 없애는데 사용된다는 일반적인 제안에서 벗어나지 못했으며, 에러 발생 시 이에 대처하고, 동시에 효율적으로 코딩을 하기 위해 어떻게 래스터가 효율적으로 구성되어야 하는지에 관해 상세한 설명이 없다.
EP-A-0 717 503은 음악 신호의 이산-시간 샘플이 주파수 영역으로 변환되는 디지털 코딩 및 디코딩 방법을 공개하고 있으며, 얻어진 스펙트럼 값이 양자화 되고 그런 다음 엔트로피 코드화되는 것을 공개하고 있다. 엔트로피 코딩은 일정 수량의 가변 길이 코드 워드를 발생시키는데, 그들 중 일부는 하나의 래스터 안에 배열되고 나머지는 그 래스터 내의 남아 있는 공간에 삽입된다.
EP-A-0 492 537은 정보가 작은 픽셀 블록으로 나뉘어지고, 각각의 픽셀 블록은 다수의 픽셀을 포함하고 있는, 비디오 및 오디오 정보에 대한 정보 레코딩 디바이스에 관한 것인데, 거기서 각각의 작은 블록은 직각 변환에 의해 직각의 구성요소들로 전환된다. 그런 다음 직각의 구성요소들은 가변 길이의 코드 워드를 갖는 코드를 사용하여 코드화된다. 코드화된 코드 워드 중 일부는 제 1 메모리에 기록된다. 만약 하나의 코드 워드가 제 1 메모리에 의해 제공되는 것보다 더 많은 비트를 갖는다면, 이 코드 워드의 나머지 비트들은 다른 메모리에 기록된다.
본 발명은 에러에 내성이 있는 엔트로피 코딩 또는 디코딩 (error-tolerant entropy coding or decoding), 특히 에러에 내성이 있는 허프만 (Huffman) 코딩 또는 디코딩을 수행할 수 있는, 오디오 신호 또는 비트 스트림의 코딩 또는 디코딩 방법 및 디바이스에 관한 것이다.
도 1은 코드 워드들을 포함하고 있는 코드화된 비트 스트림에 대한 본 발명의 두 번째 양상에 따른 래스터링의 한 예를 보여준다.
도 2는 선행 기술에 따른 주파수가 일직선으로 증가하는 코드 워드들의 배열을 보여준다.
본 발명의 목적은 에러를 극복하고 또 효율적으로 오디오 신호나 비트 스트림을 코딩하고 디코딩하기 위한 개념을 제공하는 것이다.
본 발명의 첫 번째 목적에 따르면, 이 목적은 다음과 같은 방법 즉, 오디오 신호의 이산-시간 샘플 블록을 주파수 영역으로 변환하여 오디오 신호를 나타내는 스펙트럼 값의 블록을 얻는 단계와, 길이가 다른 코드 워드를 제한된 수만큼 갖는 코드 테이블로 스펙트럼 값을 코딩하여 코드 워드로 코드화된 스펙트럼 값을 얻는 단계와 - 스펙트럼 값에 지정된 코드 워드의 길이는 일반적으로 그 스펙트럼 값이 발생하는 가능성이 높으면 높을수록 더 짧아진다 - , 래스터가 등거리의 래스터 포인트를 갖게되고 래스터 포인트의 분리가 코드 테이블에 의존하게 되도록 코드화된 비트 스트림에 대해 래스터를 결정하는 단계와, 코드 워드들 사이에서 우선순위 (priority)의 코드 워드를 정하는 단계와 - 다른 스펙트럼 값과 비교하여 정신음향학적으로 (psychoacoustically) 중요한 스펙트럼 값을 나타내는 코드 워드들이 우선순위의 코드 워드로 정해진다 - , 스펙트럼 값 블록 중 하나의 스펙트럼 값을 나타내는 우선순위의 코드 워드의 시작은 하나의 래스터 포인트와 일치하고 스펙트럼 값 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위의 코드 워드의 시작은 다른 래스터 포인트와 일치하도록 래스터 내에서 우선순위의 코드 워드들을 자리잡는 단계를 포함하여 구성되어 오디오 신호를 코딩하여 코드화된 비트 스트림을 얻어내는 방법에 의해 달성된다.
본 발명의 두 번째 목적에 따르면, 이 목적은 오디오 신호의 이산-시간 샘플 블록을 주파수 영역으로 변환하여 오디오 신호를 나타내는 스펙트럼 값의 블록을 얻는 장치와, 길이가 다른 코드 워드를 제한된 수만큼 갖는 코드 테이블로 스펙트럼 값을 코딩하여 코드 워드로 코드화된 스펙트럼 값을 얻는 장치와 - 스펙트럼 값에 지정된 코드 워드의 길이는 일반적으로 그 스펙트럼 값이 발생하는 가능성이 높으면 높을수록 더 짧아진다 - , 래스터가 같은 거리의 래스터 포인트를 갖게되고 래스터 포인트의 분리가 코드 테이블에 의존하게 되도록 코드화된 비트 스트림에 대해 래스터를 결정하는 장치와, 코드 워드들 사이에서 우선순위의 코드 워드를 정하는 장치와 - 다른 스펙트럼 값과 비교하여 정신음향학적으로 중요한 스펙트럼 값을 나타내는 코드 워드들이 우선순위의 코드 워드로 정해진다 - , 스펙트럼 값 블록 중 하나의 스펙트럼 값을 나타내는 우선순위의 코드 워드의 시작은 하나의 래스터 포인트와 일치하고 스펙트럼 값 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위의 코드 워드의 시작은 다른 래스터 포인트와 일치하도록 래스터 내에서 우선순위의 코드 워드들을 자리잡는 장치를 포함하여 구성되어 오디오 신호를 코드화하여 코드화된 비트 스트림을 얻어내는 디바이스에 의해 달성된다.
본 발명의 세 번째 목적에 따르면, 이 목적은 코드화된 오디오 신호를 나타내는 비트 스트림 디코딩 방법에 의해 달성되는데, 그 방법은 다음과 같은 단계: 즉, 두 개의 이웃하는 래스터 포인트 사이의 거리를 검출하는 단계와, 래스터 포인트들에 정렬되는 우선순위의 코드 워드들을 주파수에 대해 일직선 배열을 이루도록 코드화된 비트 스트림 내에 재배열하는 단계 - 우선순위의 코드 워드의 시작은 래스터 포인트와 일치함 - 와, 결합된 코드 테이블로 우선순위의 코드 워드들을 디코딩하여 디코딩된 스펙트럼 값들을 얻어내는 단계와, 디코딩된 스펙트럼 값들을 시간 영역으로 다시 변환하여 디코딩된 오디오 신호를 얻어내는 단계를 포함하여 구성된다. 코드화된 비트 스트림은 코드 테이블과는 다른 길이의 코드 워드들을 포함하며 등거리의 래스터 포인트가 있는 래스터를 갖는다. 코드 워드들은 우선순위의 코드 워드들을 포함하는데, 우선순위의 코드 워드들은 다른 스펙트럼 값들과 비교하여 정신음향학적으로 중요한 스펙트럼 값 블록 중 특정 스펙트럼 값들을 나타낸다. 스펙트럼 값 블록은 오디오 신호의 순간적 샘플들의 블록의 스펙트럼을 나타낸다. 그리고 스펙트럼 값 블록 중 하나의 스펙트럼 값을 나타내는 우선순위의 코드 워드의 시작은 하나의 래스터 포인트와 일치하고 스펙트럼 값 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위의 코드 워드의 시작은 다른 래스터 포인트와 일치하도록 우선순위의 코드 워드들이 래스터 포인트에 정렬된다.
본 발명의 네 번째 목적에 따르면, 이 목적은 코드화된 오디오 신호를 나타내는 비트 스트림을 디코딩하는 디바이스에 의해 달성되는데, 그 디바이스는 두 개의 이웃하는 래스터 포인트 사이의 거리를 검출하는 장치와, 래스터 포인트들에 정렬되는 우선순위의 코드 워드들을 주파수에 대해 일직선 배열을 이루도록 코드화된 비트 스트림 내에 재배열하는 장치 - 우선순위의 코드 워드의 시작은 래스터 포인트와 일치함 - 와, 결합된 코드 테이블로 우선순위의 코드 워드들을 디코딩하여 디코딩된 스펙트럼 값들을 얻어내는 장치와, 디코딩된 스펙트럼 값들을 시간 영역으로 다시 변환하여 디코딩된 오디오 신호를 얻어내는 장치를 포함하여 구성된다. 코드화된 비트 스트림은 코드 테이블과는 다른 길이의 코드 워드들을 포함하며 등거리의 래스터 포인트가 있는 래스터를 갖는다. 코드 워드들은 우선순위의 코드 워드들을 포함하는데, 우선순위의 코드 워드들은 다른 스펙트럼 값들과 비교하여 정신음향학적으로 중요한 스펙트럼 값 블록 중 특정 스펙트럼 값들을 나타낸다. 스펙트럼 값 블록은 오디오 신호의 순간적 샘플 블록의 스펙트럼을 나타낸다. 그리고 스펙트럼 값 블록 중 하나의 스펙트럼 값을 나타내는 하나의 우선순위의 코드 워드의 시작은 하나의 래스터 포인트와 일치하고 스펙트럼 값 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위의 코드 워드의 시작은 다른 래스터 포인트와 일치하도록 우선순위의 코드 워드들이 래스터 포인트에 정렬된다.
본 발명은 항상 제기되는 래스터가 에러에 내성이 있는 코딩/디코딩뿐만 아니라 효율적인 코딩/디코딩을 허락하는 식으로 형성되거나 자리하고 있어야 한다는 결과를 바탕으로 하고 있다. 여기서 최고로 중요한 것은 코드화될 가장 빈번한 값이 가장 짧은 길이가 지정될 가능성이 있는 코드 워드를 가질 때 가장 큰 코딩 게인 (gain)이 얻어지기 때문에 허프만 코딩 형태를 띤 엔트로피 코딩에 의해 얻어지는 코드 워드들이 본래부터 다른 길이를 갖는다는 사실이다. 한편, 비교적 긴 코딩 워드가 지정된다 하더라도, 비교적 드물게 발생하는 코드화될 값은 통계적으로 보여지는 데이터의 양을 최적화한다. 따라서 허프만 코딩에 의해 얻어진 코드 워드들은 원래 다른 길이를 갖는다.
본 발명의 첫 번째 양상에 따르면, 비록 비트 스트림에 에러가 있다 하더라도 래스터를 통한 디코더에 의한 실패 없이 우선순위의 코드 워드들의 시작이 확인될 수있도록 소위 우선순위의 코드 워드들이 래스터 포인트에 자리하게 된다. 우선순위의 코드 워드들은 정신음향학적으로 중요한 코드 워드들이다. 이것이 의미하는 바는 소위 우선순위의 코드 워드들에 의해 코드화된 스펙트럼 값들이 실질적으로 디코딩된 오디오 신호의 청감에 기여한다는 것이다. 만약 오디오 신호가 높은 음량 (a high speech content)을 갖는다면 우선순위의 코드 워드들은 하위 스펙트럼 값을 나타내는 코드 워드들일 수 있다. 왜냐하면 이 경우 중요한 스펙트럼 정보가 그 스펙트럼의 낮은 지역에 위치하게 되기 때문이다. 만약 오디오 신호가 스펙트럼의 중간 지역에 한 그룹의 톤 (tones)을 갖는다면 우선순위의 코드 워드들은 주파수 범위 중 해당 중간 섹션에 있는 스펙트럼 값에 지정되는 코드 워드들이다. 그럴 때에 정신음향학적으로 중요한 스펙트럼 값들이 있기 때문이다. 정신음향학적으로 중요한 스펙트럼 값들은 크기 즉, 신호 에너지가 스펙트럼 내의 다른 스펙트럼 값들의 크기와 비교하여 큰 스펙트럼 값들일 수도 있다. 한편, 비우선순위의 (non-priority) 코드 워드라고 불리는 정신음향학적으로 덜 중요한 코드 워드들이 래스터를 채운다. 그러므로 그것들은 래스터 포인트와 일치하지 않고 남아있는 자유 공간으로 들어가게 된다 ("slotted into" the remaining free spaces). 한편 우선순위의 코드 워드는 래스터 포인트에 자리하게 된다.
따라서, 본 발명의 첫 번째 양상에 따르면, 정신음향학적으로 중요한 스펙트럼 값들에 지정된 우선순위의 코드 워드들은 래스터 안에 배열되어 우선순위의 코드 워드들의 시작이 래스터 포인트들과 일치한다.
본 발명의 두 번째 양상에 따르면, 스펙트럼 값들이 스펙트럼 섹션들로 그룹화 되며, 다른 코드 테이블이 이들 스펙트럼 섹션 각각에 지정된다. 하나의 스펙트럼 섹션에 하나의 코드 테이블이 지정되는 것은 통계적으로 볼 때, 즉, 코드 테이블이 하나의 스펙트럼 섹션을 코딩하는데 가장 알맞게 되는 신호에 따라 행해진다. 하나의 스펙트럼 섹션에 하나의 코드 테이블이 지정되는 것은 이러한 기술 부문에서 이미 알려져 있다.
등거리의 래스터 포인트 그룹 다수 개로 이루어져서 하나의 래스터 포인트 그룹 내의 래스터 포인트들 사이 거리가 스펙트럼 섹션을 코드화하는데 사용되는 코드 테이블에 의존하게 되는 래스터가 이제부터 사용될 것이다. 다른 스펙트럼 섹션에서는 최상의 데이터 감소를 얻도록 다른 코드 테이블이 사용된다. 이 다른 코드 테이블은 거기에 지정된 다른 그룹의 등거리 래스터 포인트를 가지며, 이 다른 래스터 포인트 그룹 내의 두 개의 래스터 포인트 사이 거리는 결합된 코드 테이블에 의존한다. 상기 다른 래스터 포인트 그룹 내의 두 개의 래스터 포인트 사이 거리는 적어도 세 가지 방법으로 결정될 수 있다.
첫 번째로, 코드 테이블의 한 코드 워드에 대한 최대 길이가 확정된다. 이 코드 테이블에 지정된 래스터 포인트 그룹 내의 두 개의 래스터 포인트의 분리가 코드 테이블 내의 최대 코드 워드 길이와 동일하게 또는 그 보다 더 크게 선택되어져서, 이 코드 테이블의 가장 긴 코드 워드를 위한 래스터에 방이 있다. 다른 코드 테이블과 결합된 다른 그룹의 래스터 포인트들 중 두 개의 래스터 포인트에 대한 분리가 이 다른 코드 테이블의 최대 코드 워드 길이에 따라 유사한 방법으로 결정된다.
이제부터 설명될 두 번째 대안 역시 래스터 포인트의 수가 증가하는데 기여할 수있다. 허프만 코드의 고유 특성 때문에, 덜 빈번하게 발생하는 코드 워드들이 더 빈번하게 발생하는 코드 워드들보다 더 긴 경향이 있다. 래스터 포인트 분리가 한 테이블에서 최대 길이의 코드 워드 길이와 동일하거나 그 보다 더 크도록 선택되므로, 래스터 안에 삽입된 코드 워드들은 보통 래스터 포인트 분리 보다 더 짧다. 따라서 래스터 포인트 분리 역시 한 테이블의 최장 코드 워드 길이보다 더 작게 되도록 선택될 수 있다. 만약 코딩 시에 래스터에 부적합한 코드 워드가 나타난다면, 상기 래스터에 부적합한 잔여물이 래스터와 일치하지 않은 어떤 다른 적절한 위치에 있는 비트 스트림으로 삽입된다. 결론적으로, 이 "컷-업 (cut-up)" 코드 워드는 에러 전파에 대해 효과적으로 보호되지 않는다. 그러나 이것은 매우 드물게 발생하기 때문에, 래스터 포인트의 숫자 증가를 위해 허용될 수 있다.
다른 래스터 포인트 분리를 결정하는 세 번째 가능성은 한 테이블의 최장 코드 워드 길이가 아니라 코드화된 스펙트럼 섹션에서 실제로 발생하는 비트 스트림 내의 최장 코드 워드 길이를 고려하는 것이다.
본 발명의 세 번째 양상에 따르면, 본질적으로 주파수가 선형으로 증가하는 비트 스트림에서의 코드 워드 배열 대신, 코드 워드들이 주파수 스펙트럼에 분포되는 배열이 사용될 수 있는데, "스크램블링 (scrambling)"으로 알려진 방법이다. 이것은 소위 "버스트 에러 (bust errors)"가 완전한 주파수 밴드의 잘못된 디코딩으로 이르게 하는 것이 아니라 단순히 몇몇의 다른 주파수 범위 내에 작은 장애를 일으킨다.
본 발명의 네 번째 양상에 따르면, 주파수가 선형으로 증가하는 코드 워드 배열대신, 예를 들면, 매 n 번째 (예를 들면, 매 두 번째, 또는 매 세 번째나 네 번째, ...) 코드 워드가 래스터에 배열되는 그러한 배열도 사용될 수 있다. 이 방법에서는, 가능성 있는 래스터 포인트 수가 우선순위의 코드 워드들 수보다 적을 때, 우선순위의 코드 워드들을 사용하여 가장 클 가능성이 있는 스펙트럼 지역에 이르는 것, 다시 말해, 에러 전파로부터 보호하는 것이 가능하다.
게다가, 효율적인 동작을 얻도록 우선순위의 코드 워드들을 결정하는 것이 더 좋다. 바람직하게 이것이 의미하는 바는 정신음향학적으로 중요한 코드 워드들 즉, 우선순위의 코드 워드들은 낮은 주파수로 스펙트럼 값들을 코드화하는 것들이라는 가정을 버린다는 것이다. 이것은 종종 사실이 될 것이지만, 항상 그렇게 될 필요는 없다.
보통 우선순위의 코드 워드들은 정신음향학적으로 중요한 스펙트럼 라인들을 코드화하는 코드 워드들인데, 이것들은 대개 높은 에너지를 갖는 스펙트럼 값들이다. 에러 때문에 높은 에너지를 갖는 스펙트럼 라인들이 발생하지 않는다는 것 역시 중요하다.
본 발명에 따르면 이미 암시적으로 결정된 표시기 (indicator)가 사용된다. 이 표시기는 사용된 코드 테이블에 의존한다. AAC 표준에서는 예를 들어, 다른 절대값 범위를 갖는 11개의 코드 테이블이 있다. 제 1 코드 테이블은 예를 들어, -1부터 +1까지의 절대값을 갖는 스펙트럼 값들로 구성되는 한편, 제 11 코드 테이블은 -8191부터 +8191까지의 스펙트럼 값들을 코드화할 수 있다. 코드 테이블이 더 높으면 높을수록 그것이 허용하는 값의 범위는 더 커진다. 이는 낮은 숫자의 코드 테이블이 상대적으로 작은 값만을 나타내고, 따라서 상대적으로 작은 에러만을 허용하는 반면, 더 높은 숫자를 갖는 코드 테이블은 상대적으로 큰 값을 나타내고 따라서, 상대적으로 큰 에러만을 허용한다는 것을 의미한다.
만약 에러가 낮은 코드 테이블에서 발생한다면, 단연코 에러가 생긴 스펙트럼 라인이 원래의 올바른 스펙트럼 라인으로부터 그다지 많이 다르지 않기 때문에 에러가 잘 들리지 않을 수도 있다. 그러나, 만약 에러가 가장 높은 코드 테이블에서 발생한다면, 이 에러는 대체로 이 코드 테이블에서의 절대값 중 어느 하나를 가정할 수 있다. 예로써, 가장 높은 코드 테이블로 코드화된 스펙트럼 라인이 작은 값을 갖고, 전송되는 동안의 에러 때문에 이 코드 테이블의 가장 높은 절대값을 갖는 스펙트럼 라인으로서 디코더 안에서 디코딩 된다면, 이 에러가 생긴 스펙트럼 라인은 확실히 들릴 것이다.
에러 내성을 고려하는 한에서는, 가장 중요한 코드 테이블은 가장 높은 코드 테이블인데 (AAC 표준에서 그 코드 테이블은 11번이다), 왜냐하면 이 코드 테이블은 -213+ 1 (-8191)에서부터 +213- 1 (+8191)까지의 범위에서 탈출 값 (escape values)을 허용하기 때문이다.
본 발명의 또 다른 양상에 따르면, AAC 표준에서 순간적인 신호를 위해 짧은 윈도우가 사용된다. 보다 더 높은 순간적 분해능 (resolution)을 위해 짧은 윈도우를 갖는 주파수 분해능이 감소된다. 정신음향학적으로 중요한 스펙트럼 값 즉, 하위의 주파수 스펙트럼 값 또는 상위의 코드 테이블로부터의 스펙트럼 값이 래스터 포인트 상에 놓여지는 것이 확실하도록 우선순위의 코드 워드들이 결정된다. 예를 들어AAC 표준의 특징인 스케일 팩터 밴드 인터리빙이 이러한 목적을 위해 취소된다.
본 발명의 바람직한 실시예가 첨부된 도면을 참조하여 다음에서 더 상세히 설명된다.
본 발명을 설명하기 위하여, 우선순위의 코드 워드들이 도 2에서 빗금친 부분으로 나타나 있다. 도 2는 주파수가 선형으로 증가하는 다른 길이를 갖는 코드 워드들의 알려진 배열을 나타내고 있다. 도 2에서 우선순위의 코드 워드들은 1번부터 5번까지의 코드 워드들이다. 위에서 이미 설명한 바와 같이, 예를 들어 만약 오디오 신호가 높은 음량이나 비교적 많은 저주파수 톤을 포함한다면, 낮은 주파수의 스펙트럼 값들에 지정된 코드 워드들이 우선순위의 코드 워드들이다. 디코딩된 신호의 전체적 느낌에 기여를 하는 한편, 청감에 크게 영향을 끼치지 않고 그래서 정신음향학적으로 덜 중요한 상위의 주파수 스펙트럼 값들과 도 2에서 6번부터 10번까지의 코드 워드들이 결합된다.
도 1은 래스터 포인트 10부터 18까지를 갖는 비트 스트림을 나타내는데, 래스터 포인트 10과 12 사이의 거리는 D1이고 래스터 포인트 14와 16 사이의 거리는 D2로 이름붙인다.
본 발명의 첫 번째 양상에 대한 설명을 고려하는 한에서는, 래스터 포인트 10부터 14까지 연장된 비트 스트림의 부분만을 고려할 것이다. 우선순위의 코드 워드 1과 2가 래스터 포인트에 정렬되어 도 2에서 보여진 예시적인 신호 내의 하위 주파수 범위에 위치하는 중요한 스펙트럼 부분이 디코딩 시에 에러 전파를 받지 않는다는 것을 확신시킨다. 도 1과 2에서 빗금이 없는 비우선순위의 코드 워드는 래스터를 채우도록 코드 워드 다음에 배열된다. 허프만 코드 워드의 길이가 워드 그 자체로부터 알려지기 때문에 비우선순위의 코드 워드가 간격없이 래스터에 꼭 맞출 필요는 없다. 따라서 디코더는 그것이 코드 워드의 유일한 부분을 읽었는지를 알고 있다. 이 경우 그것은 코드 워드의 첫 부분에 다음의 래스터 포인트 뒤의 우선순위 코드 워드에 이어서 어떤 수만큼의 비트를 추가할 것이다. 그러므로, 비우선순위 코드 워드 7, 8 및 9로 나타나 있고, 그것의 각각은 비트 스트림 내에서 두 개로, 이름하여 7a와 7b, 8a와 8b, 그리고 9a와 9b로 나뉘어져 있는 바와 같이, 래스터 내의 제 1 자유 위치와 다른 장소에 있는 나머지 부분에 비우선순위의 코드 워드의 제 1 부분을 삽입하는 것이 가능하다.
이미 설명했듯이, 도 1의 비트 스트림의 두 번째 부분은 본 발명의 두 번째 양상을 나타낸다. 래스터 거리 D1이 더 작은 래스터 거리 D2로 변경되지 않는다면, 1부터 5까지의 우선순위 코드 워드 모두가 배열되는 거리 D1을 갖는 래스터가 그렇게 긴 비트 스트림을 이끌어 내어서 말하자면, 비우선순위의 코드 워드들이 래스터 내에 남아 있는 공간을 모두 채우기에 충분하지 않을 것이다. 그러므로 본래 자유 장소가 남아있지 않도록 다시 말해, 비트 스트림이 불필요하게 연장되지 않도록, 비트 스트림 내에 삽입될 수 있을 만큼 많은 우선순위의 코드 워드들이 오디오 신호로부터 추출된다.
지금부터는 본 발명의 두 번째 양상이 도 1을 참조하여 상세히 설명될 것이다. 표준 엠펙-2 AAC에 따른 코딩 방법의 경우, 11개의 다른 허프만 코딩 테이블이 코딩을 위해 사용된다. 대부분의 이 테이블들에 대해 최대 가능한 코드 워드 길이는 10 비트와 20 비트 사이에 있다. 그러나, "탈출 (escape)" 테이블이라 불리는 특별한 테이블은 49 비트의 최대 길이를 포함한다. 만약 모든 테이블 중 최장 코드 워드의 길이를 래스터 거리 D로서 사용한다면, 49 비트의 래스터 거리를 가질 것이고, 래스터의 폭이 매우 큰 결과를 낳게 되어 거의 모든 테이블에 비효율적일 것이다. 왜냐하면 모든 우선순위의 코드 워드가 래스터 포인트에 맞춰 정렬되기에는 비트 스트림이 너무 길 것이기 때문이다. 그러므로 본 발명에 따르면 래스터의 폭은 사용되는 코드 테이블에 따라 조정된다. 앞서 말한 바와 같이, 스펙트럼 값들은 스펙트럼 섹션으로 그룹화 될 수 있고, 각 스펙트럼 섹션은 신호 통계학적 면을 고려하여 거기에 최적으로 알맞은 코드 테이블을 지정 받는다. 그러나, 보통 하나의 코드 테이블에서 최장의 코드 워드 길이는 다른 테이블의 최장 코드 워드 길이와 다르다.
코드 워드 1과 2에 의해 나타나는 스펙트럼 값은 제 1 스펙트럼 섹션에 속하는 한편, 3부터 10까지의 코드 워드에 의해 나타나는 스펙트럼 값은 제 2 스펙트럼 섹션에 속한다고 가정한다. 그러면 비트 스트림이 2개의 래스터 포인트 그룹을 사용하여 래스터되고, 첫 번째 래스터 포인트 그룹은 래스터 포인트 10, 12, 14로 구성되며, 두 번째 래스터 포인트 그룹은 래스터 포인트 14, 16, 18로 구성된다. 그리고 스펙트럼 섹션 0은 허프만 코드 테이블 n을 지정 받았으며, 스펙트럼 섹션 1은 허프만 코드 테이블 m을 지정 받았고, 또한 코드 워드 2가 스펙트럼 섹션 0에 지정된 테이블 n의 최장 코드 워드라고 가정한다. 첫 번째 그룹의 래스터 포인트 그룹의 래스터 거리는 테이블 n의 최장 코드 워드 즉, 예를 든 코드 워드 2의 길이보다 크거나 바람직하게는 똑같게 선택된다.
반면, 래스터 포인트 14와 코드 워드 10에 있는 비트 스트림의 끝 사이에 있는 비트 스트림 부분으로부터, 이 예에서 코드 테이블 m의 최장 길이를 갖는 코드 워드가 비트 스트림에 나타나지 않는다는 것을 알 수 있다. 따라서 그룹 2로 지정된 비트 스트림 래스터 안에 길이 D2의 코드 워드는 없다.
그러므로 본 발명의 두 번째 양상에 따르면 래스터의 폭은 사용된 코드 테이블에 따라 선택된다. 그러나, 이 경우 사용된 테이블은 디코더에서의 디코딩 시에 이미 알려진 것임을 주목해야 한다. 하지만, 이것은 사실인데, 왜냐하면 코드 테이블 번호가 각 스펙트럼 섹션을 위한 부가적인 정보로서 항상 전송되어 다른 허프만 테이블, 이 예에서는 11의 특정 세트 내에서 디코더가 이 코드 테이블을 확인할 수 있기 때문이다.
이미 언급한 바와 같이, 래스터 거리가 사용된 코드 테이블에 의존할 때 최적의 데이터 감소는 여전히 성취될 수 없고, 49 비트의 길이를 갖는 탈출 테이블을 고려함으로써만이 성취되기 쉽다. 왜냐하면, 탈출 테이블의 경우 최고 크기의 스펙트럼 값들을 코드화하도록 래스터 폭이 49 비트로 조정되기 때문이다. 비교적 짧은 코드테이블을 갖되 그와 동시에, 탈출 테이블과 함께 짧은 코드 테이블을 사용하여 비교적 큰 값을 코드화할 수 있게 하기 위해 탈출 테이블이 이용된다. 코드 테이블의 값 범위를 초과하는 값의 경우, 이 스펙트럼 값에 대한 코드 워드가 소정의 값을 추정하는데, 이 값은 탈출 테이블이 코더에서도 사용되었음을 디코더에게 보여준다. 예를 들어, 만약 코드 테이블이 0부터 2까지의 값을 포함한다면 코드 테이블 내의 값 3은 탈출 테이블이 사용되었다는 것을 디코더에게 보여줄 것이다. 동시에 "기본 (basic)" 코드 테이블의 값 3을 갖는 코드 워드가 기본 코드 테이블의 최대 값과 함께, 해당 스펙트럼 값을 구성하는 탈출 테이블 값을 지정 받는다.
본 발명의 두 번째 양상에 대한 또 다른 실시예에 따르면, 한 그룹 (예를 들어 그룹 1 또는 그룹 2)의 래스터 포인트들 사이의 거리는 더 이상 코드 테이블의 최장 코드 워드 길이와 같게 되도록 선택되지 않고 코드 테이블에 속하는 비트 스트림에서 실제로 발생하는 최장 코드 워드 길이와 똑같도록 선택된다. 이것은 본 발명의 두 번째 양상에 대한 첫 번째 실시예에 관하여 또 다른 개선점을 나타내는 것인데, 왜냐하면 이 방법에도 불구하고 탈출 테이블에서의 코딩 효율이 여전히 최적이 아니기 때문이다. (스펙트럼 내의) 이 테이블의 최대 코드 길이는 보통 기술적 코딩 이유로 상당히 짧다. 탈출 테이블에서의 최장 코드 워드는 예를 들어, 49 비트이다.
정상적인 오디오 신호에서 실제로 발생하는 최장 탈출 테이블 코드 워드는 대개 약 20 비트이다. 그러므로 어느 한 블록의 최장 코드 워드 길이를 전송함으로써 래스터 포인트의 숫자가 더 증가될 수 있고, 따라서 래스터 포인트에 정렬될 수 있는우선순위의 코드 워드 숫자가 증가될 수 있다. 그렇다면 래스터 길이는 실제 발생하는 최대 코드 워드 길이와 같거나 현재 사용되는 테이블의 이론상 최대의 코드 워드 길이와 같고, 어느 쪽이든 최저 값을 갖는다. 최저 값을 결정하기 위해 각 코드 테이블의 실제 발생 코드 워드를 사용하거나 간단히 하나의 오디오 프레임에서의 모든 코드 테이블의 최장 코드 워드를 사용할 수 있다. 이 선택권은 비탈출 테이블 (non-escape tables) 즉, "기본(basic)" 허프만 테이블에 대해서도 유효하지만, 탈출 테이블에 대해서만큼 효과적이지는 않다.
하나의 스펙트럼 섹션 또는 블록 내에서 최대 코드 워드 길이를 전송하는 것은 다른 유익한 부수적 효과를 갖는다. 실제로 발생된 최대 길이로부터 방해받았을지도 모르는 비트 스트림 내에 더 긴 코드 워드가 존재하는지를 디코더가 검출할 수 있다. 보통 긴 코드 워드들은 높은 에너지의 스펙트럼 값을 나타낸다. 만약 전송 에러로 인해 매우 긴 코드 워드가 발생한다면 잡음이 크게 들릴 수 있다. 그러므로 최대 길이를 전송하는 것은 대부분의 경우 그러한 에러를 검출하는 수단과 대응책을 강구하는 수단을 제공하는데, 이 대응책이란 단순히 지나치게 긴 코드 워드를 방지한다거나 잠복의 좀 더 복잡한 형태를 취하는 것을 뜻한다.
가능한 한 많은 래스터 포인트가 에러-내성과 효과적인 코딩을 위해 요구된다는 것에 주목하는 것이 중요하다. 그러나 래스터 포인트의 수는 비트 스트림의 전체 길이에 의해 제한된다. 물론 이것은 래스터링의 결과로서 길어져서는 안 된다. 왜냐하면 비트 스트림에서 사용되지 않은 지역이 있을 것이고 어떤 것은 전체 데이터 압축의 원리를 부정할 것이기 때문이다. 그러나, 어떤 적용에서는 비트 스트림의길이 연장이 고도의 에러 내성을 위해 허용될 수 있다고 지적된다. 고려해야 할 또 다른 점은 가능한 한 많은 코드 워드가 래스터 포인트에서 시작하도록 래스터를 구성해야 한다는 것이다. 따라서 본 발명은 선행 기술과 비교하여 래스터 포인트 거리의 선택에 있어서 효과적인 유동성을 허용한다. 절대적으로 이상적인 경우에 있어서 이 유동성은 각각의 코드 워드가 래스터 포인트를 지정 받도록 하는데, 어떤 것은 상당한 기술적 노력을 포함한다. 그러나, 래스터 포인트를 배열하는 방법 즉, 해당 코드 테이블에 따라 각 스펙트럼 섹션의 래스터 포인트들 사이의 거리를 결정하는 방법은 최적의 경우에 매우 가까운 접근을 허락한다. 왜냐하면 특히 모든 코드 워드가 정신음향학적으로 중요한 것이 아니며 정신음향학적으로 덜 중요한 코드 워드들도 비트 스트림에서 사용되지 않은 장소가 없도록 하기 위해 래스터링된 정신음향학상 중요한 코드 워드들 사이의 비트 스트림으로 들어갈 수 있기 때문이다.
본 발명의 세 번째 양상에 따르면 코드 워드들이 더 이상 주파수에 있어서 일직선으로 상승하는 시퀀스를 띤 비트 스트림에 배열되지 않고 다른 스펙트럼 값의 코드 워드들이 "스크램블 (scrambled)" 된다. 도 1에서 어느 정도까지는 주파수를 가지고 코드 워드들이 끼워진 선형 배열을 하고 있다는 것을 알 수 있는데, 빗금쳐진 우선순위의 코드 워드는 상승 주파수 순으로 배열되고 빗금이 없는 비우선순위의 코드 워드 또한 상승 주파수 순으로 비트 스트림 내에 삽입되어 있기 때문이다. 예를 들어 소위 "버스트 (burst)" 에러 즉, 수많은 연속적인 코드 워드들을 파괴시키는 방해 (disturbance)가 도 1에 나타나 있는 비트 스트림 내에서 발생한다면, 코드 워드 6, 7a, 2, 3, 7b가 동시에 영향을 받을 수 있다.
디코딩된 해당 오디오 신호에서, 비교적 굉장히 넓고 그래서 분명히 들릴 수 있을 것 같은 방해가 우선순위 코드 워드 2와 3에 의해 표현된 스펙트럼 밴드에 발생할 것이다. 버스트 에러의 문제는 도 1에 있는 매우 간단한 예로부터 그다지 명백하지 않다는 것이다. 그러나, 사실상 5개 이상의 많은 래스터 포인트가 있을 것이고 버스트 에러가 종종 다수 개의 래스터 포인트로 연장될 것임을 추측할 수 있는데, 이 버스트 에러의 연장은 비교적 넓은 주파수 밴드에 대해 데이터 손실을 가져올 수 있다. 이러한 이유로, 본 발명의 세 번째 양상에 따르면 스펙트럼 값들의 우선순위 코드 워드들은 더 이상 주파수에 대해 올림 순으로 배열되지 않고 주파수에 대해 랜덤 (random) 또는 슈도우-랜덤 (pseudo-random) 배열을 갖도록 "혼합 (mixed up)" 된다. 비우선순위 코드 워드들도 선택적으로 같은 방법으로 다루어질 수 있다. 슈도우-랜덤 배열의 경우, 방해에 대한 어떤 정보를 부가적인 정보로서 전송할 필요가 없다. 왜냐하면 이 방해는 디코더에서 우선순위가 정해지기 때문이다. 결론적으로 비트 스트림에서의 연속적인 코드 워드의 손실은 완전한 주파수 밴드의 손실로 이르지 않고 단순히 몇몇의 주파수 밴드에 매우 작은 손실을 가져올 뿐이다. 이 방해는 거의 들리지 않을 것이고 완전한 주파수 밴드의 손실보다 더 효과적으로 감추어질 수 있을 것이다.
본 발명의 네 번째 양상에 따르면, 주파수로 일직선 형태로 상승하는 우선순위 코드 워드와 비우선순위 코드 워드의 배열 대신, 단지 n 번째 코드 워드가 래스터에 배열되고 나머지 코드 워드는 그것들 사이에 끼워지는 배열이 사용된다. 이미 설명했듯이, 하나의 비트 스트림에 대한 래스터 포인트의 수는 총 길이와 래스터 포인트 사이의 거리에 의해 제한된다. 예를 들어, 낮은 밴드폭으로 샘플링한다면, 16 kHz의 샘플링 속도가 사용될 경우 전체의 신호가 이론적으로 가능한 8 kHz의 유효 밴드폭을 가지기 때문에 대부분의 코드 워드가 정신음향학적으로 중요한 코드 워드가 되는 경우가 발생할 수 있다. 단지 30%의 코드 워드만 래스터 포인트에 배열되고 나머지 70%는 래스터를 완전히 채우는데 사용된 적이 있다. 그러나, 이것은 중요한 주파수 범위 예를 들면, 소리 신호에 대해 0 - 4 kHz 의 범위가 래스터 포인트 상에 배열된 우선순위의 코드 워드로 커버될 수 없거나 "보호될 (protected)" 수 없다는 것을 의미한다. 그러므로, 중요한 주파수 범위에 대해 에러 전파를 적절히 방지하기 위해서는 우선순위의 코드 워드마다 래스터 포인트에 정렬하는 대신, 두 번째, 세 번째, 네 번째 등등의 우선순위 코드 워드마다 이것을 행하고, 반면 다른 우선순위의 코드 워드는 정렬없이 래스터를 채운다. 예를 들어 매 두 번째 또는 매 세 번째 등의 스펙트럼 값이 낮은 주파수 범위에서 알려지고 산재되어 있는 코드 워드들이 전송 시에 파괴된다면, 에러 은폐 기술 (error concealment techniquies), 예를 들어 예보 (prediction)나 그와 유사한 것을 사용하여 디코더에서 이들 코드 워드를 재구성할 수 있다.
비트 스트림을 디코딩하는 방법 및 디바이스는 인용된 코딩을 반영하는 식으로 동작한다.
코드화된 비트 스트림이 코드 테이블과는 길이가 다른 코드 워드와 등거리의 래스터 포인트 (10, 12, 14)가 있는 래스터를 갖는 코드화된 오디오 신호를 나타내는 비트 스트림의 일반적인 디코딩 방법에서, - 여기서, 코드 워드는 다른 스펙트럼값과 비교하여 정신음향학적으로 중요한 어떤 스펙트럼 값을 나타내는 우선순위의 코드 워드들을 포함하고 우선순위의 코드 워드들은 래스터 포인트에 정렬된다. - (a) 이웃하는 두 개의 래스터 포인트 사이의 거리 D1이 결정된다. 두 개의 래스터 포인트 사이의 거리가 알려지면, (b) 래스터 포인트에 정렬되는 코드화된 비트 스트림 내의 우선순위 코드 워드들이 재분류 (resorted) 되어 그것들이 주파수에 대해 선형으로 배열되고 우선순위의 코드 워드가 래스터 포인트와 일치하게 된다. 이제 우선순위의 코드 워드가 도 2에서 보여진 일반적 주파수-일직선 배열에 나타나서, (c) 우선순위의 코드 워드들은 결합된 코드 테이블로 디코딩되어 디코딩된 스펙트럼 값을 얻을 수 있다. (d) 디코딩된 스펙트럼 값을 시간 영역으로 다시 변환한 후에, 디코딩된 오디오 신호가 얻어지는데, 예를 들면 그 오디오 신호는 라우더스피커로 그것을 보내기 위해서 알려진 어떤 방법으로 처리될 수 있다.
비트 스트림이 단 하나의 코드 테이블로 코드화된다면, 비트 스트림의 부가적인 정보로부터 어떤 테이블이 코딩에 사용되었는지를 찾아냄으로써 래스터 포인트들 사이의 거리가 상당히 간단하게 정해질 수 있다. 코딩에 따라서, 그 거리는 이 테이블의 최장 코드 워드 길이가 될 수도 있다. 최장 코드 워드 길이는 코더에서 영구적으로 정해질 수 있다. 만약 그 거리가 코드 테이블이 지정되는 비트 스트림의 일부에서 실제로 발생하는 최장 코드 워드 길이라면, 부가적 정보로서 어느 것이 비트 스트림에 지정되는지 등이 디코더로 전달된다.
디코더는 예를 들어 코드화된 비트 스트림에 포인트를 적용함으로써 우선순위의 코드 워드와 비우선순위의 코드 워드를 재분류한다. 만약 래스터 거리가 디코더에 알려지고 우선순위의 코드 워드가 주파수에 대해 일직선으로 배열된다면, 디코더는 래스터 포인트로 점프하고 거기서 시작한 코드 워드를 읽어낸다. 일단 코드 워드가 읽혀지면 포인터가 다음 래스터 포인트로 점프하고 바로 앞서 설명한 과정을 반복한다. 우선순위의 코드 워드가 모두 읽혀진 후에도, 비트 스트림은 여전히 비우선순위의 코드 워드들을 포함하고 있다. 만약 비트 스트림 내에서 우선순위의 코드 워드와 비우선순위의 코드 워드가 일직선이 되는 배열이 선택되었다면, 비우선순위의 코드 워드는 주파수에 대해 이미 일직선으로 배열되어 있고 디코딩되어 더 이상의 분류 (sorting) 없이 다시 변환될 수 있다.
본 발명의 세 번째 또는 네 번째 양상에 따른 코딩이 선택된다면, 스크램블 정보가 부가적인 정보로서 전송될 수 있거나 스크램블된 분포 (scrambled distribution)가 우선순위 매김 (a priori)을 결정하여 시작부터 디코더에게 알려진다. 네 번째 양상에도 똑같이 적용된다. 결정된 분포를 규정하거나 부가적 정보로서 디코더에 전달되는 가변 분포를 선택하는 것이 항상 가능하다.
이제부터 우선순위의 코드 워드를 결정하고 조종하는 유익한 방법이 설명될 것이다. 코드화된 비트 스트림에 대해 래스터를 정한 후, 단 하나의 코드 테이블을 사용했을 때 래스터 거리를 정하거나 다수개의 코드 테이블을 사용했을 때 래스터 거리를 정함으로써, 우선순위의 코드 워드들이 래스터에 위치하여 각 우선순위의 코드 워드가 래스터 포인트와 일치한다.
본 발명의 바람직한 실시예에 따르면, 이 위치 배정은 일종의 분류 테이블로부터 원래 비어 있는 래스터 안에 코드 워드를 연속적으로 삽입함으로써 성취된다. 테이블에 있는 첫 번째 코드 워드부터 시작된다. 따라서 우선순위의 코드 워드들은 테이블에 있는 코드 워드의 순서에 의해 영향을 받을 수 있는데, 우선순위의 코드 워드들은 예를 들어 래스터 포인트가 유효한 래스터 내 장소가 있는 테이블의 코드 워드들이다. 더 이상 래스터 포인트가 없는 테이블의 코드 워드에 대해서는, 비트 스트림 내의 남아 있는 자유 장소에 그것들을 삽입하는 것 외에 다른 선택은 없다. 그러므로 본 발명의 견지에 있어서 이들 코드 워드는 우선순위의 코드 워드가 아니다.
우선순위의 코드 워드 수는 미리 결정되지 않는다. 코드화된 비트 스트림에 유효한 메모리가 다 찰 때까지 즉, 더 이상 우선순위의 코드 워드가 기록될 수 없을 때까지 우선순위의 코드 워드들이 기록된다. 메모리의 크기는 스펙트럼 데이터를 위해 이전에 사용된 총 비트 수와 동일하다. 다시 말하면, 래스터링은 비트를 추가로 요구하지 않는다. 따라서 메모리는 코드 워드의 수에 의해 제한되어 래스터 오더링 (ordering)의 결과로써 코딩 효율이 떨어지는 것을 막는다. 물론 모든 코드 워드가 래스터 포인트 상에 놓여져서 그것들이 에러 내성을 만들 수 있다. 그러나, 이것은 코딩 효율을 크게 떨어뜨리는데, 이유는 래스터 포인트들 사이에 남아 있는 자유 비트들이 사용되지 않기 때문이다.
본 발명의 첫 번째 양상은 우선순위의 코드 워드 즉, 다른 스펙트럼 값과 비교하여 정신음향학적으로 중요한 스펙트럼 값을 나타내는 코드 워드에 관한 것이다. 정신음향학적으로 중요한 스펙트럼 라인이란 예를 들어 다른 스펙트럼 라인보다 에너지를 더 많이 포함하는 스펙트럼 라인을 말한다. 일반적으로 말해서, 스펙트럼 라인이 더 많은 에너지를 가질수록 더 중요하다고 할 수 있다. 그러므로 높은 에너지를 갖는 스펙트럼 라인이 방해받지 않는다는 것이 중요하고 이와 마찬가지로 높은 에너지를 갖는 스펙트럼 라인이 에러로부터 생기지 않는다는 것이 중요하다.
지금까지 높은 에너지를 갖는 스펙트럼 라인은 스펙트럼의 하위부에 주로 위치하게 된다고 가정했다. 많은 경우에서 이것은 사실이지만 모든 경우에서 그런 것은 아니다. 본 발명은 하나의 코드 워드에 있는 코드화된 스펙트럼 라인의 에너지 또는 많은 스펙트럼 라인이 하나의 코드 워드에서 코드화된다면 그 스펙트럼 라인들의 에너지를 추정하기 위해 내재하는 표시기 (implicit indicator)를 사용함으로써 이 가정을 무시한다.
이 표시기는 사용되는 코드 북 (code book)이거나 코드 테이블 예를 들면, 허프만 코드 테이블이다. AAC 표준에서, 예를 들면 11개의 테이블이 사용된다. 이 테이블들의 값 범위는 상당히 다르다. 테이블 1부터 11까지의 최대 절대 값은 다음과 같다.:
1; 1; 2; 2; 4; 4; 7; 7; 12; 12; 8191
이렇게 다른 값 범위의 결과로써, 최대 에러는 테이블에 의존한다. 테이블 내에서 명백히 유효하거나 테이블 밖으로 전송되는 각 테이블의 부호를 고려하면, 최대 에러는 인용된 절대 값의 두 배에 달한다. 본 발명에 따르면 우선순위의 코드 워드 결정은 사용된 코드 테이블을 기초로 하여 이루어지고, 표시기는 최고 절대값과 내재적으로 코드 테이블 수이다. 처음에 코드 테이블이 가장 큰 값 범위를 갖는 코드 워드가 고려된다. 그 다음 코드 테이블이 두 번째로 큰 값을 갖는 코드 워드가 뒤따르고, 그런 식으로 계속된다. 따라서 AAC 표준의 경우, 테이블 11이 맨 처음 고려대상이 되고, 그 다음 테이블 9와 10이 뒤따르고 가장 낮은 우선순위의 테이블 1과 2로 끝이 난다. 래스터 포인트 상에 놓여진 우선순위의 코드 워드들은 래스터 포인트가 유효한 분류 테이블 내의 코드 워드들이다.
코드 워드를 결정하는 이 방법의 장점은 사용된 테이블이 부가적 정보로 전송되고 이 정보로부터 디코더가 전송 시 사용된 코드 워드 시퀀스를 결정할 수 있기 때문에 디코더를 위해 추가의 정보가 전송될 필요가 없다는 사실이다.
본 발명의 두 번째 양상은 오디오 신호를 나타내는 스펙트럼 값을 얻기 위하여 오디오 신호의 이산-시간 샘플을 주파수 영역으로 변환하는 길다란 윈도우에 대립되는 짧은 (샘플링) 윈도우의 사용에 관한 것이다. 짧은 윈도우는 AAC 표준에서 정의되고 표준 레이어 3에서도 정의된다. 짧은 윈도우의 경우 하나의 긴 MDCT 대신 짧은 MDCT가 많이 사용된다.
AAC 표준에서 예를 들면, 1024의 출력 값을 갖는 하나의 MDCT 대신 각각이 128의 출력 값을 갖는 8개의 MDCT 한 그룹이 사용된다. 이것은 주파수 분해능의 비용으로 코더의 순간적 분해능을 증가시키는 결과를 가져온다. 일반적으로 짧은 윈도우는 일시적 신호에 사용된다. 만약 짧은 윈도우가 AAC와 함께 사용된다면 예를 들어, 8개의 연속적인 완전한 스펙트럼 즉, 8개 세트의 스펙트럼 값이 얻어지고, 각 세트는 전체 스펙트럼을 포함한다. 그러나, 긴 윈도우에 반해, 스펙트럼 값들 사이의 거리도 8배가 된다. 이것은 주파수 분해능이 감소하고, 반면 순간적 분해능은 상승한다는 것을 뜻한다.
AAC 표준에서, 그룹화가 행해진다. 즉, 8개의 스펙트럼으로부터 그룹이 형성된다. 이 그룹의 각각에 대해 스케일 팩터 세트가 있다. 가장 간단한 경우 각 그룹은 단 하나의 윈도우만 포함한다. 이 경우 8개의 스케일 팩터 세트가 전송되어야 한다. 더 강력한 압축을 얻기 위하여, 다수 개의 윈도우가 AAC 표준에서 하나의 그룹에 집중되는데, 이는 일반적으로 정신음향학적 요구사항을 고려한 것이다. 이것은 전송될 스케일 팩터의 수를 감소시키고, 그 결과 더 좋은 데이터 압축을 가져온다. 스펙트럼 데이터가 전송되는데, 다시 말해 한 그룹씩 차례대로 코드화된 비트 스트림 안에 기록된다. 그룹 내에서 스케일 팩터 밴드 인터리빙 (interleaving)이 수행된다.
이것은 다음과 같은 예시에 의해 증명될 수 있다. 여기 3개의 그룹으로 그룹화가 되어 있다. 첫 번째 그룹은 2개의 윈도우를 포함하고, 두 번째 그룹은 3개의 윈도우를 포함하며, 세 번째 그룹도 3개의 윈도우를 포함한다. 각 스펙트럼은 12의 스케일 팩터 밴드를 갖는다. 그룹화는 다음과 같다.:
첫 번째 그룹, 첫 번째 윈도우, 첫 번째 스케일 팩터 밴드
첫 번째 그룹, 두 번째 윈도우, 첫 번째 스케일 팩터 밴드
첫 번째 그룹, 첫 번째 윈도우, 두 번째 스케일 팩터 밴드
첫 번째 그룹, 두 번째 윈도우, 두 번째 스케일 팩터 밴드
...
첫 번째 그룹, 두 번째 윈도우, 열두 번째 스케일 팩터 밴드
두 번째 그룹, 세 번째 윈도우, 첫 번째 스케일 팩터 밴드
두 번째 그룹, 네 번째 윈도우, 첫 번째 스케일 팩터 밴드
두 번째 그룹, 다섯 번째 윈도우, 첫 번째 스케일 팩터 밴드
두 번째 그룹, 세 번째 윈도우, 두 번째 스케일 팩터 밴드
...
이 배열은 래스터에 있는 분류 테이블로부터 코드 워드들을 선분류 (presorting)하거나 삽입하기에는 적합하지 않다. 왜냐하면 연속적으로 삽입을 한다면 첫 번째 그룹의 완전한 스펙트럼이 보호를 받게 되지만 마지막 그룹의 스펙트럼은 전적으로 보호받지 못하게 되기 때문이다. 이러한 이유로 본 발명의 두 번째 양상에 따른 선분류는 짧은 윈도우에 대해 수행된다. AAC 표준의 경우 그룹화와 스케일 팩터 밴드 접근이 포기된다. 새로운 선분류가 수행되는데 이번에는 스펙트럼 라인의 유닛 (units)에서 수행된다.
본 발명의 바람직한 실시예에서 각 유닛은 4개의 스펙트럼 라인을 포함한다. 그러므로 AAC 표준에서 각 윈도우는 128개의 스펙트럼 라인에 해당하는 32 유닛을 포함한다. 스펙트럼 데이터는 다음과 같이 배열된다:
첫 번째 윈도우, 첫 번째 유닛
두 번째 윈도우, 첫 번째 유닛
...
여덟 번째 윈도우, 첫 번째 유닛
첫 번째 윈도우, 두 번째 유닛
두 번째 윈도우, 두 번째 유닛
...
여덟 번째 윈도우, 두 번째 유닛
첫 번째 윈도우, 세 번째 유닛
...
이 선분류는 모든 윈도우의 각 스펙트럼 지역이 다른 하나의 근처에 위치한다는 것을 확실하게 한다. 즉, 낮은 스펙트럼 값들이 각 세트의 스펙트럼 값들로부터 나오는 주파수에 따라서 더 높은 주파수를 갖는 스펙트럼 값에 앞서 분류 테이블의 앞부분에 기록된다. 하위 스펙트럼 지역에 있는 스펙트럼 값들이 정신음향학적으로 특별히 중요하다면, 분류 테이블에서의 인용된 선분류는 분류 테이블로부터 래스터로 스펙트럼 값을 삽입하기 위한 기초를 제공한다. 코드 워드에 대한 이 선분류로, 다시 말해, 우선순위의 코드 워드 결정으로, 어떤 추가의 정보를 전송할 필요가 없다. 그 이유는 디코더가 부가적 정보로부터 분류 윈도우가 이 블록이나 프레임에서 사용되었다는 것을 알고 있으며 유닛을 발생하기 위한 코더에서의 분류 알고리듬이 항상 고정되어 있어서 디코더에서 영구적으로 프로그램되기 때문이다.
분류 테이블로 코드 워드를 선분류하는 것은 우선순위의 코드 워드를 결정하는 것에 해당한다는 것을 주목하는 것이 중요하다. 그 이유는 높은 확률로 래스터 포인트에 위치할 수 있는 코드 워드들 즉, 우선순위의 코드 워드들은 분류 테이블의 시작부분 즉, 앞부분이나 상위 부분에 있는 코드 워드이므로, 이 테이블 자체가 어느 코드 워드가 높은 확률로 래스터 포인트에 기록될 수 있는지를 결정하기 때문이다. 바람직한 실시예에서와는 달리, 이 선분류는 분류 테이블에 의해 수행되는 것이 아니라 인덱스된 코드 워드가 비트 스트림에 기록될 시퀀스를 정하도록 개별의 코드 워드를 인덱스함으로써 수행된다.
AAC 표준으로부터 어떤 코드 테이블은 2차원적이거나 4차원적이라고 알려져 있다. 다시 말해, 하나의 코드 워드가 2개 또는 4개의 스펙트럼 값을 코드화한다고 알려져 있다. 그러므로 4개의 스펙트럼 라인이나 그것의 배수를 하나의 유닛으로 그룹화하는 것이 유리하다. 이러한 방식으로 동일한 주파수 지역을 코드화한 코드 워드들이 직접적 연속으로 다른 하나에 분류될 수 있다. 따라서 한 유닛으로부터의 스펙트럼 라인 수는 크기가 다른 코드 테이블로 바람직하게 나뉘어진다. 즉, 유닛 당 라인의 수는 코드 워드 당 라인 수의 공배수이고 가장 적절하게는 최소공배수여야 한다.
본 발명은 첫 번째와 두 번째 양상이 결합될 때 특별히 효과적이다. 만약 본 발명에 따른 유닛으로의 재분류가 짧은 윈도우에 대해 행해졌다면, 이것은 코드 테이블 표시기에 의해 우선순위의 코드 워드에 뒤따라 행해지는데, 상기 코드 테이블 표시기에서는 유닛 재분류의 결과가 다시 재분류되어 높은 수준의 에러 보호를 성취하도록 상위 코드 테이블로부터의 코드 워드들이 고정된 래스터 포인트 상에 위치하는 우선순위의 코드 워드가 된다는 것을 확실히 한다. 이 결합은 절대적으로 필요한 것은 아니지만, 그것이 최상의 결과를 이끌어 낸다.

Claims (26)

  1. 코드화된 비트 스트림을 얻기 위한 오디오 신호의 코딩 방법에 있어서,
    (a) 오디오 신호의 이산-시간 샘플 블록을 주파수 영역으로 변환하여 오디오 신호를 나타내는 스펙트럼 값 블록을 얻는 단계와,
    (b) 길이가 다른 제한된 수의 코드 워드를 갖는 코드 테이블로 스펙트럼 값을 코딩하여 코드 워드로 코드화된 스펙트럼 값을 얻는 단계와, 여기서 스펙트럼 값에 지정된 코드 워드의 길이는 일반적으로 스펙트럼 값의 발생 가능성이 높을수록 훨씬 짧아지는 것이고,
    (c) 코드화된 비트 스트림에 대해 래스터를 결정하는 단계와, 여기서, 래스터는 등거리의 래스터 포인트를 가지며 래스터 포인트의 분리는 코드 테이블에 의존하며,
    (d) 코드 워드들 가운데서 우선순위의 코드 워드들을 결정하는 단계와, 여기서 다른 스펙트럼 값과 비교하여 정신음향학적으로 중요한 스펙트럼 값을 나타내는 코드 워드들로서 우선순위의 코드 워드들로서 정의되고,
    (e) 스펙트럼 값 블록 중에서 하나의 스펙트럼 값을 나타내는 우선순위의 코드 워드의 시작은 하나의 래스터 포인트와 일치하고 스펙트럼 값 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위 코드 워드의 시작은 다른 래스터 포인트와 일치하도록 래스터에 우선순위의 코드 워드들을 위치시키는 단계를 포함하는 오디오 신호의 코딩 방법.
  2. 청구항 1에 있어서,
    다수 개의 윈도우가 사용되고, 그에 의하여 다수 개의 스펙트럼 값 세트가 생기며, 이들 각각의 스펙트럼 값 세트는 완전한 스펙트럼을 포함하며,
    우선순위의 코드 워드를 결정하는 단계에서, 상기 각 세트로부터 동일한 주파수의 스펙트럼 값을 코드화하는 코드 워드들이 우선순위의 코드 워드들로 정해지는 것이 특징인 오디오 신호의 코딩 방법.
  3. 청구항 1에 있어서,
    상기 코드 테이블의 코드 워드가 다수 개의 스펙트럼 라인을 코드화하는데, 한 그룹 내에 있는 스펙트럼 라인의 수는 하나의 코드 워드가 코드화하는 다수 개의 스펙트럼 라인에 의해 나뉘어지는 식으로 상기 스펙트럼 라인이 그룹이나 유닛으로 결합되는 것이 특징인 오디오 신호의 코딩 방법.
  4. 청구항 3에 있어서,
    크기가 다른 즉, 코드 워드 당 스펙트럼 라인을 갖는 다양한 코드 테이블이 사용되고, 하나의 유닛은 n개의 스펙트럼 라인을 갖는데, n은 발생하는 크기 전체의 공배수인 것이 특징인 오디오 신호의 코딩 방법.
  5. 청구항 1에 있어서,
    우선순위의 코드 워드들을 결정하는 단계에서, 저 주파수에 지정된 스펙트럼 값 세트의 스펙트럼 라인을 코드화하는 코드 워드들이 우선순위의 코드 워드들로 정해지는 것이 특징인 오디오 신호의 코딩 방법.
  6. 청구항 5에 있어서,
    상기 우선순위의 코드 워드들을 결정하는 단계는:
    상기 분류 테이블에 있는 코드 워드들의 시퀀스가 상기 코드 워드들 내에서의 우선순위 분포를 구성하는 식으로 하나의 분류 테이블 내에 연속적으로 상기 코드 워드들을 두어서, 우선순위의 코드 워드들을 만들어 내는 단계를 포함하며, 우선순위의 코드 워드들은 상기 분류 테이블의 앞부분에 있어서 상기 테이블에서 더 뒤쪽에 있는 코드 워드들보다 더 래스터 포인트에 위치할 것 같은 코드 워드들을 의미하고,
    상기 우선순위의 코드 워드들을 위치시키는 단계는:
    래스터 포인트가 남아있지 않을 때까지 상기 코드 워드들을 분류 테이블로부터 래스터 포인트 상에 연속적으로 위치시키는 단계와,
    나머지 코드 워드들을 상기 분류 테이블로부터 아직 차지 않고 남아 있는 래스터 내의 장소에 위치시키는 단계를 포함하는 것이 특징인 오디오 신호의 코딩 방법.
  7. 청구항 1에 있어서,
    우선순위의 코드 워드들을 결정하는 단계에서, 낮은 주파수 또는 높은 에너지를 갖는 스펙트럼 값을 코드화하는 코드 워드들이 우선순위의 코드 워드들로 정해지는 것이 특징인 오디오 신호의 코딩 방법.
  8. 청구항 1에 있어서,
    래스터 포인트 사이의 거리는 상기 코드 테이블의 가장 긴 코드 워드보다 다소 작거나 동일하거나 더 크거나 또는 상기 비트 스트림에 실제로 나타난 최장 코드 워드와 동일하거나 더 큰 것이 특징인 오디오 신호의 코딩 방법.
  9. 청구항 1에 있어서,
    상기 스펙트럼 값을 코드화하는 단계에 앞서, 다음과 같은 단계: 즉,
    상기 스펙트럼 값을 적어도 하나의 스펙트럼 값을 가지는 인접한 스펙트럼 섹션으로 그룹화하는 단계와
    소정 수의 코드 테이블 중 적어도 두 개의 다른 코드 테이블을 두 개의 다른 스펙트럼 섹션에 지정하는 단계 (여기서 스펙트럼 섹션은 상기 스펙트럼 섹션에 있는 스펙트럼 값을 코드화하는데 가장 알맞은 코드 테이블에 지정된다)를 수행하는데,
    상기 코딩 단계에서, 스펙트럼 섹션으로부터의 스펙트럼 값은 해당 스펙트럼 섹션에 지정된 코드 테이블로 코드화되며,
    상기 래스터를 결정하는 단계에서, 래스터가 적어도 두 개의 래스터 포인트 그룹을 갖도록 상기 코드화된 비트 스트림에 대해 래스터가 결정되어, 상기 래스터 포인트의 각 그룹은 다른 하나로부터 등거리를 유지하고 각 그룹의 래스터 포인트 거리는 적어도 다른 두 개의 코드 테이블 가운데 적절한 하나의 코드 테이블에 의존하는 것이 특징인 오디오 신호의 코딩 방법.
  10. 청구항 9에 있어서,
    우선순위의 코드 워드를 결정하는 단계에서, 하나의 코드 워드는 표시기(이 표시기는 상기 코드 워드가 생기게된 코드 테이블에 의존한다)가 우선순위를 표시할 때 우선순위의 코드 워드가 되는 것으로 결정되는 것이 특징인 오디오 신호의 코딩 방법.
  11. 청구항 10에 있어서,
    각 코드 테이블이 코드화될 스펙트럼 값에 대해 최대 절대값을 갖고,
    상기 표시기가 의존하는 코드 테이블이 모든 코드 테이블 중 가장 높은 절대값을 가질 때 상기 표시기가 가장 높은 우선순위를 표시하는 것이 특징인 오디오 신호의 코딩 방법.
  12. 청구항 9에 있어서,
    각 코드 테이블은 코드화될 스펙트럼 값에 대해 최대 절대값을 갖고,
    다수 개의 코드 테이블이 사용되는데, 각 테이블에는 하나의 표시기가 있으며, 상기 표시기는 각 테이블의 가장 높은 절대값에 의해 결정되고, 보다 더 큰 최대 절대값을 갖는 테이블의 표시기는 보다 더 작은 최대 절대 값을 갖는 다른 테이블의 표시기가 표시하는 것보다 상기 테이블로부터의 코드 워드에 대해 보다 더 높은 우선순위를 표시하는 것이 특징인 오디오 신호의 코딩 방법.
  13. 청구항 9에 있어서,
    상기 래스터 포인트 그룹 각각의 래스터 포인트 거리는 해당 코드 테이블의 최장 코드 워드 길이보다 더 작거나, 동일하거나, 또는 더 큰 것이 특징인 오디오 신호의 코딩 방법.
  14. 청구항 9에 있어서,
    상기 래스터 포인트 그룹 각각의 래스터 포인트 거리는 해당 스펙트럼 섹션에 있는 스펙트럼 값에 대해 실제로 발생하는 최장 코드 워드의 길이와 동일하고,
    스펙트럼 섹션에 대해 실제로 발생하는 최장 코드 워드 길이는 부가적 정보로서 상기 비트 스트림으로 전송되는 것이 특징인 오디오 신호의 코딩 방법.
  15. 청구항 9에 있어서,
    상기 래스터 포인트 그룹의 래스터 포인트 거리는 상기 그룹화된 모든 스펙트럼 섹션에 대해 실제로 발생하는 최장 코드 워드와 이 그룹의 코드 테이블에 대한 최장 코드 워드 중 최소치와 동일하게 되도록 결정되고, 상기 실제로 발생하는 최장 코드 워드는 부가적 정보로서 디코더로 전송되는 것이 특징인 오디오 신호의 코딩 방법.
  16. 청구항 9에 있어서,
    주파수로 연속적인 선형 배열을 이루는 코드 워드들은 우선순위의 코드 워드들과 비우선순위의 코드 워드들을 위한 비트 스트림의 래스터에 접하게 되는 것이 특징인 오디오 신호의 코딩 방법.
  17. 청구항 1에 있어서,
    코드화된 스펙트럼 값을 나타내는 코드 워드들은 해당 스펙트럼 값들의 주파수와는 관계없이 비트 스트림의 래스터에 배열되는 것이 특징인 오디오 신호의 코딩 방법.
  18. 청구항 17에 있어서,
    주파수와 코드 워드 사이의 통신에 관한 정보는 주파수의 독립적인 분포가 예정되지 않았을 때 부가적 정보로서 비트 스트림에 삽입되는 것이 특징인 오디오 신호의 코딩 방법.
  19. 청구항 1에 있어서,
    우선순위의 코드 워드들 중 각 n 번째 코드 워드만이 비트 스트림의 래스터에 배열되는 반면 나머지 우선순위의 코드 워드들과 비우선순위의 코드 워드들은 래스터 포인트와 일치되지 않는 것이 특징인 오디오 신호의 코딩 방법.
  20. 청구항 1에 있어서,
    스펙트럼 값은 정신음향학적 모델을 고려하여 코딩 전에 양자화되는 것이 특징인오디오 신호의 코딩 방법.
  21. 코드화된 비트 스트림을 얻기 위한 오디오 신호의 코딩 디바이스에 있어서,
    (a) 오디오 신호의 이산-시간 샘플 블록을 주파수 영역으로 변환하여 오디오 신호를 나타내는 스펙트럼 값 블록을 얻는 수단과,
    (b) 길이가 다른 제한된 수의 코드 워드를 갖는 코드 테이블로 상기 스펙트럼 값을 코딩하여 코드 워드로 코드화된 스펙트럼 값을 얻는 수단과 - 스펙트럼 값에 지정된 코드 워드의 길이는 일반적으로 상기 스펙트럼 값의 발생 가능성이 높을수록 훨씬 짧아진다. - ,
    (c) 상기 코드화된 비트 스트림에 대해 래스터를 결정하는 수단과 - 여기서, 상기 래스터는 등거리의 래스터 포인트 (10, 12, 14)를 가지며 상기 래스터 포인트의 분리 (D1)는 상기 코드 테이블에 의존한다. - ,
    (d) 상기 코드 워드들 가운데서 우선순위의 코드 워드들을 결정하는 수단과 - 다른 스펙트럼 값과 비교하여 정신음향학적으로 중요한 스펙트럼 값을 나타내는 코드 워드들이 우선순위의 코드 워드들로서 정의된다. - ,
    (e) 상기 스펙트럼 값 블록 중에서 하나의 스펙트럼 값을 나타내는 우선순위의 코드 워드가 하나의 래스터 포인트와 일치하고 상기 스펙트럼 값 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위 코드 워드의 시작은 다른 래스터 포인트와 일치하도록 상기 우선순위의 코드 워드들을 위치시키는 수단을 포함하여 구성되는 오디오 신호의 코딩 디바이스.
  22. 청구항 21에 있어서,
    상기 스펙트럼 값을 인접한 스펙트럼 섹션으로 그룹화하는 수단과 - 각 스펙트럼 섹션은 적어도 하나의 스펙트럼 값을 갖는다. - ,
    소정 수의 코드 테이블 중 적어도 두 개의 다른 코드 테이블을 두 개의 다른 스펙트럼 섹션에 지정하는 수단 - 스펙트럼 섹션은 상기 스펙트럼 섹션에 있는 스펙트럼 값을 코드화하는데 가장 알맞은 코드 테이블에 지정된다. - 을 더 포함하는데,
    상기 코딩 수단은 스펙트럼 섹션으로부터의 상기 스펙트럼 값을 해당 스펙트럼 섹션에 지정된 코드 테이블로 코드화하도록 설계되며,
    상기 래스터를 결정하는 수단은 상기 래스터가 적어도 두 개의 래스터 포인트 그룹을 갖도록 상기 코드화된 비트 스트림에 대해 래스터를 결정하도록 설계되어, 상기 래스터 포인트의 각 그룹은 다른 하나로부터 등거리를 유지하고 각 그룹의 래스터 포인트 거리는 적어도 다른 두 개의 코드 테이블 가운데 적절한 하나의 코드 테이블에 의존하는 것이 특징인 오디오 신호의 코딩 디바이스.
  23. 코드화된 오디오 신호를 나타내는 비트 스트림의 디코딩 방법에 있어서,
    상기 코드화된 비트 스트림은 하나의 코드 테이블로부터 다른 길이를 갖는 코드 워드들을 포함하고 등거리의 래스터 포인트가 있는 래스터를 갖고 있으며, 상기 코드 워드들은 우선순위의 코드 워드들을 포함하는데, 우선순위의 코드 워드들이란 다른 스펙트럼 값과 비교하여 정신음향학적으로 중요한 스펙트럼 값 블록 중 특정 스펙트럼 값을 나타내는 것이며, 상기 스펙트럼 값 블록은 오디오 신호의 순간적 샘플 블록에 대한 스펙트럼을 나타내고 우선순위의 코드 워드들은 래스터 포인트와 일치하여, 상기 스펙트럼 값 블록 중 하나의 스펙트럼 값을 나타내는 우선순위의 코드 워드의 시작은 하나의 래스터 포인트와 일치하고 상기 스펙트럼 값 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위의 코드 워드의 시작은 다른 래스터 포인트와 일치하며,
    상기 디코딩 방법은:
    (a) 두 개의 이웃하는 래스터 포인트 사이의 거리를 검출하는 단계와,
    (b) 주파수로 선형 배열을 이룬 우선순위의 코드 워드를 얻도록 상기 코드화된 비트 스트림에서 래스터 포인트에 정렬된 상기 우선순위의 코드 워드를 재분류하는 단계와 - 우선순위의 코드 워드의 시작은 래스터 포인트와 일치한다. - ,
    (c) 상기 우선순위의 코드 워드들을 결합된 코드 테이블로 디코딩하여 디코딩된 스펙트럼 값을 얻는 단계와,
    (d) 상기 디코딩된 스펙트럼 값을 시간 영역으로 다시 변환하여 디코딩된 오디오 신호를 얻는 단계를 포함하여 구성되는 비트 스트림 디코딩 방법.
  24. 청구항 23에 있어서,
    상기 코드화된 비트 스트림은 적어도 두 개의 코드 테이블로부터 길이가 다른 코드 워드들을 포함하며 적어도 두 그룹의 등거리 래스터 포인트가 있는 래스터를 가지며,
    상기 디코딩 방법은 스펙트럼 섹션과 결합된 코드 테이블을 확인하는 단계를 포함하고,
    상기 디코딩 단계에서, 스펙트럼 섹션의 우선순위 코드 워드들은 해당 결합된 코드 테이블로 디코딩되는 것이 특징인 비트 스트림 디코딩 방법.
  25. 코드화된 오디오 신호를 나타내는 비트 스트림의 디코딩 디바이스에 있어서,
    상기 코드화된 비트 스트림은 하나의 코드 테이블로부터 다른 길이를 갖는 코드 워드들을 포함하고 등거리의 래스터 포인트를 갖는 래스터를 갖고 있으며, 상기 코드 워드들은 우선순위의 코드 워드들을 포함하는데, 우선순위의 코드 워드들이란 다른 스펙트럼 값과 비교하여 정신음향학적으로 중요한 스펙트럼 값 블록 중 특정 스펙트럼 값을 나타내는 것이며, 상기 스펙트럼 값의 블록은 오디오 신호의 순간적 샘플 블록에 대한 스펙트럼을 나타내고 우선순위의 코드 워드들은 래스터 포인트와 일치하여, 상기 스펙트럼 값의 블록 중 하나의 스펙트럼 값을 나타내는 우선순위의 코드 워드의 시작은 하나의 래스터 포인트와 일치하고 상기 스펙트럼 값의 블록 중 다른 스펙트럼 값을 나타내는 다른 우선순위의 코드 워드의 시작은 다른 래스터 포인트와 일치하며,
    상기 디코딩 디바이스는:
    (a) 두 개의 이웃하는 래스터 포인트 사이의 거리를 검출하는 수단과,
    (b) 주파수로 선형 배열을 이룬 우선순위의 코드 워드를 얻도록 상기 코드화된 비트 스트림에서 래스터 포인트에 정렬된 상기 우선순위의 코드 워드를 재분류하는수단과 - 우선순위의 코드 워드의 시작은 래스터 포인트와 일치한다. - ,
    (c) 상기 우선순위의 코드 워드들을 결합된 코드 테이블로 디코딩하여 디코딩된 스펙트럼 값을 얻는 수단과,
    (d) 상기 디코딩된 스펙트럼 값을 시간 영역으로 다시 변환하여 디코딩된 오디오 신호를 얻는 수단을 포함하여 구성되는 비트 스트림 디코딩 디바이스.
  26. 청구항 25에 있어서,
    상기 코드화된 비트 스트림은 적어도 두 개의 코드 테이블로부터 길이가 다른 코드 워드들을 포함하며 적어도 두 그룹의 등거리 래스터 포인트가 있는 래스터를 가지며,
    상기 디코딩 디바이스는 스펙트럼 섹션과 결합된 코드 테이블을 확인하는 수단을 더 포함하고,
    상기 디코딩 수단은 스펙트럼 섹션의 우선순위 코드 워드들을 해당 결합된 코드 테이블로 디코딩하도록 설계되는 것이 특징인 비트 스트림 디코딩 디바이스.
KR10-2001-7008203A 1998-12-28 1998-12-28 오디오 신호를 코딩 또는 디코딩하는 방법 및 디바이스 KR100391935B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP1998/008475 WO2000039933A1 (de) 1997-10-24 1998-12-28 Verfahren und vorrichtungen zum codieren bzw. decodieren eines audiosignals bzw. eines bitstroms

Publications (2)

Publication Number Publication Date
KR20010108051A KR20010108051A (ko) 2001-12-07
KR100391935B1 true KR100391935B1 (ko) 2003-07-16

Family

ID=8167173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7008203A KR100391935B1 (ko) 1998-12-28 1998-12-28 오디오 신호를 코딩 또는 디코딩하는 방법 및 디바이스

Country Status (5)

Country Link
US (1) US6975254B1 (ko)
JP (1) JP3580777B2 (ko)
KR (1) KR100391935B1 (ko)
AU (1) AU754877B2 (ko)
CA (1) CA2356869C (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE19907729C2 (de) 1999-02-23 2001-02-22 Fraunhofer Ges Forschung 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
JP3469567B2 (ja) * 2001-09-03 2003-11-25 三菱電機株式会社 音響符号化装置、音響復号化装置、音響符号化方法及び音響復号化方法
US7428684B2 (en) * 2002-04-29 2008-09-23 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Device and method for concealing an error
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US20060218459A1 (en) * 2004-08-13 2006-09-28 David Hedberg Coding systems and methods
WO2006020934A2 (en) * 2004-08-13 2006-02-23 Conexant Systems, Inc. Systems and methods for decreasing latency in a digital transmission system
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US7199735B1 (en) * 2005-08-25 2007-04-03 Mobilygen Corporation Method and apparatus for entropy coding
US8620644B2 (en) * 2005-10-26 2013-12-31 Qualcomm Incorporated Encoder-assisted frame loss concealment techniques for audio coding
JP4548348B2 (ja) * 2006-01-18 2010-09-22 カシオ計算機株式会社 音声符号化装置及び音声符号化方法
FR2911228A1 (fr) * 2007-01-05 2008-07-11 France Telecom Codage par transformee, utilisant des fenetres de ponderation et a faible retard.
CN101290771B (zh) * 2007-04-20 2011-07-13 中兴通讯股份有限公司 一种基于先进音频编码器的比特消耗控制方法
EP2153608B1 (en) * 2007-06-01 2013-09-18 BlackBerry Limited Determination of compression state information for use in interactive compression
US7774205B2 (en) 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
GB2454190A (en) * 2007-10-30 2009-05-06 Cambridge Silicon Radio Ltd Minimising a cost function in encoding data using spectral partitioning
KR101756834B1 (ko) * 2008-07-14 2017-07-12 삼성전자주식회사 오디오/스피치 신호의 부호화 및 복호화 방법 및 장치
ES2600313T3 (es) * 2010-10-07 2017-02-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para la estimación de nivel de tramas de audio codificadas en un dominio de flujo de bits
CN105122357B (zh) 2013-01-29 2019-04-23 弗劳恩霍夫应用研究促进协会 频域中基于lpc进行编码的低频增强
TWM487509U (zh) 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
CN109785851B (zh) 2013-09-12 2023-12-01 杜比实验室特许公司 用于各种回放环境的动态范围控制
MX2017012957A (es) * 2015-04-10 2018-02-01 Thomson Licensing Metodo y dispositivo para codificar multiples señales de audio, y metodo y dispositivo para decodificar una mezcla de multiples señales de audio con separacion mejorada.
MX2018012490A (es) * 2016-04-12 2019-02-21 Fraunhofer Ges Forschung Codificador de audio para codificar una se?al de audio, metodo para codificar una se?al de audio y programa de computadora en consideracion de una region espectral del pico detectada en una banda de frecuencia superior.
US10756755B2 (en) 2016-05-10 2020-08-25 Immersion Networks, Inc. Adaptive audio codec system, method and article
US10699725B2 (en) 2016-05-10 2020-06-30 Immersion Networks, Inc. Adaptive audio encoder system, method and article
US10770088B2 (en) 2016-05-10 2020-09-08 Immersion Networks, Inc. Adaptive audio decoder system, method and article
AU2017262757B2 (en) * 2016-05-10 2022-04-07 Immersion Services LLC Adaptive audio codec system, method, apparatus and medium
US10885921B2 (en) * 2017-07-07 2021-01-05 Qualcomm Incorporated Multi-stream audio coding
EP3738074A4 (en) 2018-01-08 2021-10-13 Immersion Networks, Inc. PROCESSES AND APPARATUS FOR THE PRODUCTION OF REGULAR REPRESENTATIONS OF A MOVEMENT OF ENTRY IN TIME AND SPACE
WO2020164753A1 (en) * 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method selecting an error concealment mode, and encoder and encoding method
WO2020165265A1 (en) * 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method for lc3 concealment including full frame loss concealment and partial frame loss concealment
US11380343B2 (en) 2019-09-12 2022-07-05 Immersion Networks, Inc. Systems and methods for processing high frequency audio signal

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3736898A (en) * 1970-11-18 1973-06-05 Mitsui Shipbuilding Eng Device for controlling list and level of pontoon
US4593267A (en) * 1982-06-30 1986-06-03 Nippon Telegraph & Telephone Public Corporation Digital data code conversion circuit for variable-word-length data code
EP0235566A2 (en) * 1986-01-27 1987-09-09 Fuji Photo Film Co., Ltd. Method of image signal encoding by orthogonal transformation
US4899384A (en) * 1986-08-25 1990-02-06 Ibm Corporation Table controlled dynamic bit allocation in a variable rate sub-band speech coder
JPH06164409A (ja) * 1992-11-17 1994-06-10 Matsushita Electric Ind Co Ltd 帯域分割符号化方法
EP0907258A2 (en) * 1997-10-03 1999-04-07 Matsushita Electric Industrial Co., Ltd. Audio signal compression, speech signal compression and speech recognition
WO1999022365A1 (en) * 1997-10-28 1999-05-06 America Online, Inc. Perceptual subband audio coding using adaptive multitype sparse vector quantization, and signal saturation scaler
US5911128A (en) * 1994-08-05 1999-06-08 Dejaco; Andrew P. Method and apparatus for performing speech frame encoding mode selection in a variable rate encoding system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4270025A (en) * 1979-04-09 1981-05-26 The United States Of America As Represented By The Secretary Of The Navy Sampled speech compression system
DE3639753A1 (de) * 1986-11-21 1988-06-01 Inst Rundfunktechnik Gmbh Verfahren zum uebertragen digitalisierter tonsignale
US4815134A (en) * 1987-09-08 1989-03-21 Texas Instruments Incorporated Very low rate speech encoder and decoder
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
US4942467A (en) * 1988-12-05 1990-07-17 General Electric Company Predictor controlled encoder for digital transmission systems
US5341457A (en) * 1988-12-30 1994-08-23 At&T Bell Laboratories Perceptual coding of audio signals
US5222189A (en) * 1989-01-27 1993-06-22 Dolby Laboratories Licensing Corporation Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
JP2766302B2 (ja) * 1989-04-06 1998-06-18 株式会社東芝 可変長符号並列解読方法および装置
US5146577A (en) * 1989-04-10 1992-09-08 Motorola, Inc. Serial data circuit with randomly-accessed registers of different bit length
DE3943879B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
JPH04221465A (ja) * 1990-12-21 1992-08-11 Matsushita Electric Ind Co Ltd 記録装置
KR940010433B1 (ko) * 1992-06-09 1994-10-22 대우전자 주식회사 가변길이 코드 디코딩장치
JP3446240B2 (ja) 1993-03-31 2003-09-16 ソニー株式会社 符号化方法および符号化装置
US5563593A (en) * 1994-03-18 1996-10-08 Lucent Technologies Inc. Video coding with optimized low complexity variable length codes
JP3274284B2 (ja) * 1994-08-08 2002-04-15 キヤノン株式会社 符号化装置およびその方法
KR960020018A (ko) * 1994-11-17 1996-06-17 배순훈 가변길이복호화장치
KR100209877B1 (ko) * 1994-11-26 1999-07-15 윤종용 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치
JP3732867B2 (ja) * 1995-03-09 2006-01-11 株式会社ルネサステクノロジ 画像伸張装置
KR100207385B1 (ko) * 1995-08-31 1999-07-15 전주범 가변 길이 복호화 장치
US5663726A (en) * 1995-12-01 1997-09-02 U.S. Philips Corporation High speed variable-length decoder arrangement with reduced memory requirements for tag stream buffering
US5650905A (en) * 1995-12-28 1997-07-22 Philips Electronics North America Corporation Variable length decoder with adaptive acceleration in processing of Huffman encoded bit streams
US5835035A (en) * 1995-12-28 1998-11-10 Philips Electronics North America Corporation High performance variable length decoder with two-word bit stream segmentation and related method
DE19747132C2 (de) * 1997-10-24 2002-11-28 Fraunhofer Ges Forschung Verfahren und Vorrichtungen zum Codieren von Audiosignalen sowie Verfahren und Vorrichtungen zum Decodieren eines Bitstroms
US6690307B2 (en) * 2002-01-22 2004-02-10 Nokia Corporation Adaptive variable length coding of digital video

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3736898A (en) * 1970-11-18 1973-06-05 Mitsui Shipbuilding Eng Device for controlling list and level of pontoon
US4593267A (en) * 1982-06-30 1986-06-03 Nippon Telegraph & Telephone Public Corporation Digital data code conversion circuit for variable-word-length data code
EP0235566A2 (en) * 1986-01-27 1987-09-09 Fuji Photo Film Co., Ltd. Method of image signal encoding by orthogonal transformation
US4899384A (en) * 1986-08-25 1990-02-06 Ibm Corporation Table controlled dynamic bit allocation in a variable rate sub-band speech coder
JPH06164409A (ja) * 1992-11-17 1994-06-10 Matsushita Electric Ind Co Ltd 帯域分割符号化方法
US5911128A (en) * 1994-08-05 1999-06-08 Dejaco; Andrew P. Method and apparatus for performing speech frame encoding mode selection in a variable rate encoding system
EP0907258A2 (en) * 1997-10-03 1999-04-07 Matsushita Electric Industrial Co., Ltd. Audio signal compression, speech signal compression and speech recognition
WO1999022365A1 (en) * 1997-10-28 1999-05-06 America Online, Inc. Perceptual subband audio coding using adaptive multitype sparse vector quantization, and signal saturation scaler

Also Published As

Publication number Publication date
AU754877B2 (en) 2002-11-28
JP2002534702A (ja) 2002-10-15
CA2356869A1 (en) 2000-07-06
KR20010108051A (ko) 2001-12-07
JP3580777B2 (ja) 2004-10-27
US6975254B1 (en) 2005-12-13
AU2163699A (en) 2000-07-31
CA2356869C (en) 2004-11-02

Similar Documents

Publication Publication Date Title
KR100391935B1 (ko) 오디오 신호를 코딩 또는 디코딩하는 방법 및 디바이스
US8046236B2 (en) Apparatus and method for producing a data stream and apparatus and method for reading a data stream
KR100489908B1 (ko) 디지탈정보신호부호화방법및장치
EP1330039B1 (en) Frequency-domain audio decoder system with entropy code mode switching
JP2739377B2 (ja) デジタル式コード化方法
EP1072036B1 (en) Fast frame optimisation in an audio encoder
KR100397806B1 (ko) 정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법
EP0409248A2 (en) Signal encoding apparatus
WO2002091361A1 (en) Adding data to a compressed data frame
Yung et al. Unequal error protection for wireless transmission of MPEG audio
JP3978194B2 (ja) オーディオ信号又はビットストリームの復号化のための装置及び方法
AU754371B2 (en) Method and device for generating a data flow from variable-length code words and a method and device for reading a data flow from variable-length code words

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

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150702

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160628

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170626

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180626

Year of fee payment: 16