KR20110040822A - 오디오 인코더 및 오디오 디코더 - Google Patents

오디오 인코더 및 오디오 디코더 Download PDF

Info

Publication number
KR20110040822A
KR20110040822A KR1020117000610A KR20117000610A KR20110040822A KR 20110040822 A KR20110040822 A KR 20110040822A KR 1020117000610 A KR1020117000610 A KR 1020117000610A KR 20117000610 A KR20117000610 A KR 20117000610A KR 20110040822 A KR20110040822 A KR 20110040822A
Authority
KR
South Korea
Prior art keywords
coefficients
segment
current
spectral
context
Prior art date
Application number
KR1020117000610A
Other languages
English (en)
Other versions
KR101456641B1 (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 KR20110040822A publication Critical patent/KR20110040822A/ko
Application granted granted Critical
Publication of KR101456641B1 publication Critical patent/KR101456641B1/ko

Links

Images

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/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
    • 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
    • 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
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • 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
    • 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/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • 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/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

샘플링된 오디오 신호의 다른 시간 또는 주파수 해상도를 나타내는, 인코딩된 계수의 세그먼트에 대한 오디오 인코더(100)에 있어서, 상기 인코더(100)는 이전의 세그먼트의 기인코딩된 계수를 기반으로 현재의 세그먼트의 현재 인코딩된 계수에 대한 코딩 콘텍스트를 추론하고, 여기서 상기 기인코딩된 계수는 현재의 인코딩된 계수와는 다른 시잔 또는 주파수 해상도를 나타내는 것을 특징으로 한다. 상기 오디오 인코더(100)는 추가적으로, 인코딩된 오디오 스트림을 구하기 위하여 상기 코딩 콘텍스트를 기반으로 하는 현재의 계수를 엔트로피 인코딩 하는 엔트로피 인코더(120)를 포함할 수도 있다.

Description

오디오 인코더 및 오디오 디코더{audio encoder and audio decoder}
본 발명은 오디오 인코딩에 관한 것으로, 특히 콘텍스트 기반 엔트로피 코딩에 관한 것이다.
전통적인 오디오 인코딩에 대한 개념은, 러던던시(redundancy)의 감소를 위한 엔트로피 코딩(entropy coding) 기법을 포함한다. 전형적으로 엔트로피 코딩은, 주파수 도메인 기반의 코딩 기법을 위한 양자화된 스펙트럼 계수 또는 시간 도메인 기반의 코딩 기법을 위한 샘플들에 적용되나. 이러한 엔트로피 코딩 기법은 전형적으로 부합되는 코드북 인덱스와 결합된 암호문을 전송하는 방법을 이용한다. 여기서 상기 코드북 인덱스는 디코더가 어떤 코드북의 페이지에서 전송된 암호문에 대응되는 인코딩된 정보 단어를 디코딩하기 위하여, 디코더가 일정한 코드북 페이지를 열람할 수 있도록 한다. 특정 코딩 기법에 있어서 상기 코드북 인덱스의 전송은 반드시 필수적인 것은 아니다. 예를 들어 상기 코드북 인덱스가 심벌(symbol)의 콘텍스트으로부터 결정될 수 있는 경우가 그러하다. 여기서 상기 심벌은 일례로, 에들러 마인(Meine, Edler)의 "서브밴드 오디오 코딩을 위한 개선된 양자화 방법 및 무손실 코딩 방법" 및 동 저자의 "Vektorquantisierung und kontextabhangige arithmetische Codierung fur MPEG-4 AAC" (논문, Gottfried Wilhelm Leibnitz University Hannover, Hanover 2007)에 표사된 것처럼 엔트로피 코딩되어 있다.
주파수 또는 스펙트럼 도메인 기반의 오디오 코딩에 있어서, 하나의 콘텍스트는시간 및/또는 주파수 이전에 위치하는 심벌들 또는 양자화된 스펙트럼 계수 등의 통계적 수치를 설명한다. 어떤 관습적인 개념에 있어서 이러한 심벌들은 인코드 및 디코더 양 측면에서 유용하고, 이러한 심벌들을 기반으로 하여 코드북 또는 콘텍스트는 인코더 및 디코더 양 측면에서 동시에 결정될 수 있다.
도 9는 콘텍스트 및 그에 의존하는 것들에 대한 일례가 도시되어 있다. 도 9에는 다수의 심벌이 표시되어 있는 시간 주파수 평면이 나타나있다. 심벌 Sn ,m은 시간 n 및 주파수 m에서의 심벌을 나타낸다. 도 9는 하나의 심벌을 인코딩함에 있어서 그의 콘텍스트가, 관련 코드북을 결정하기 위하여 사용되는 것을 도시한 것이다. 예를 들어, 하나의 심벌 Sn0 ,m0에 있어서 모든 심벌은, 모든 m에 대해서 n < n0이거나 또는 n = n0 이고 m < m0 이도록 할 수 있다.
실재 구현에 있어서, 일 콘텍스트를 정의하지는 않으나 그 한도는 정해진다. 도 9에 묘사된 일례에 따르면, 상기 심벌 S0,3에 대한 콘텍스트는, 예를 들어, 아래와 같을 수 있다.
S0 ,2, S0 ,1, S-1,5, S-1,4, S-1,3, S-1,2, S-1,1, S-1,2, S-2,5, S-2,4, S-2,3, S-2,1
주파수 기반 오디오 코딩에 있어서, 시간의 변형, 신호 적응형 필터 뱅크 또는 소위 블록 변형이 사용될 수 있다. 일례가 에들러, B(Edler, B.)의 "Codierung von Audiosignalen mit uberlappender transformation und adaptiven Fensterfunktionen" (Frequenz, Ausgabe 43, September 1989)에 묘사되어 있다.
한편으로는, 이러한 오디오 코딩 개념 내에서 시간의 변화에 따라 주파수/시간 분해능 변화가 발생할 수 있다. 유명한 오디오 코딩 개념은 소위 AAC(Advanced Audio Coding)이다. 여기서는 두 개의 블록 길이가 사용되고, 이를 위해서, 예를 들어 256 또는 2048의 윈도우화 된 시간 도메인 샘플의 주파수 구성 요소를 나타내는 128 또는 1024 변환 계수가 각각 코딩된다.
이러한 개념에 의해서 상기 서로 다른 분해능 간의 전환은 특정한 신호의 특징, 예를 들어 트렌전트(transient) 또는 조성의 발생 또는 상기 신호가 음성 같은지 또는 음악 같은지 등의 특징에 의존하여 가능해진다. 서로 다른 시간/주파수 분해능 간의 전환의 경우에 있어서, 예를 들어 서로 다른 AAC 블록 형태간의 전환에 있어서 상기 콘텍스트는 일관되지 않다. 종래 개념 또는 최신 구현으로 상기 콘텍스트는 리셋(reset)될 수 있다. 즉, 기본적으로 어떠한 콘텍스트도 가능하지 않고, 스크래치로부터 하나의 콘텍스트가 생성되는 단계로 전환되는 것이다. 이는 거의 전환이 발생하지 않는다고 추측되는 하나의 열(row)에 적어도 두 개의 긴 블록 또는 8개의 짧은 블록이 있는 까닭에, 이러한 처리 방법은 예를 들어 AAC 등에서 충분히 잘 작동할 수 있다.
그러나 콘텍스트를 리셋하는 전형적인 개념은 코딩의 효율성의 면에서 일반적으로 차선책이다. 왜냐하면 상기 콘텍스트가 리셋되는 각각의 시간에, 추후의 코드북 선택은 알려지지 않은 콘텍스트에 대한 대비책으로 디자인된 값들에 기반을 두고 있기 때문이다. 일반적으로 차선책 코드북은 그때 선택된다. 코딩 효율성에 있어서 문제점은, 전환이 거의 발생하지 않는 경우에 있어서 거의 무시해도 될 정도이다. 그러나 더 빈번한 전환이 있는 경우의 시나리오에 있어서, 이는 코딩 효율성에 있어서 명백한 단점이 된다. 어떤 면에 있어서는 더 빈번한 전환은 낮은 데이터 레이트(rate)/샘플링 레이트의 경우에 강하게 요구된다. 왜냐하면 여기서 특히, 신호의 특징에 대한 변환 길이의 최적화가 요구되기 때문이다. 다른 면으로는 코딩 효율은 전환이 빈번할수록 명백하게 낮아지기 때문이다.
본 발명은, 개선된 코딩 효율성을 제공하는, 오디오 코딩에 있어서 서로 다른 변환 길이 간의 전환에 대한 개념을 제공하는 것을 목적으로 한다.
상기 목적은, 청구항 1에 따른 오디오 인코더, 청구항 8에 따른 오디오 인코딩 방법, 청구항 9에 따른 오디오 디코더 및 청구항 16에 따른 오디오 디코딩 방법을 통하여 달성될 수 있다.
본 발명은 서로 다른 시간/주파수 해상도(resolution)에 적용될 수 있는 콘텍스트(context) 기반의 엔트로피 코딩같은 콘텍스트 기반 코딩 내에서, 시간/주파수 해상도가 시간의 경과에 따라 변화하고, 그럼으로써 개선된 코딩 효율을 달성할 수 있는 경우에 콘텍스트 맵핑 메카니즘이 사용될 수 있는지 찾아내는 것을 기반으로 한다. 본 발명이 발견한 한가지는 서로 다른 시간 또는 주기 해상도 간에 전환될 때, 신(新)해상도를 가진 계수에 대한 콘텍스트는 구(舊)해상도를 가진 계수로부터 추론될 수 있다는 것이다. 본 발명이 발견한 한가지는, 예를 들어 보간법(interpolation), 보외법(outerpolation), 서브샘플링(sub-sampling), 다운샘플링(down-sampling), 업샘플링(up-sampling) 등도 오디오 코딩에서 시간/주기 해상도를 전환할 때, 콘텍스트 적용 및/또는 추론을 위해서도 사용될 수 있다는 것이다.
본 발명의 일실시예는 매핑 방법을 제공한다. 이는 이전의, 해상도에 관련하여 저장된 콘텍스트의 주파수 또는 스펙트럼 계수를, 현 콘텍스트 또는 현 프레임의 주파수 해상도에 매핑하는 것이다. 다른 말로는, 이전의 콘텍스트 정보는, 예를 들어 코드북 결정이 새로운 콘텍스트 정보를 추론하기 위하여 사용될 수 있다는 것이다. 실시예들은, 이와 함께 블록 길이에 대한 더 빈번한 주파수 전환과 이로 인한 코딩 효율의 손실 없이도 신호의 특징에 더욱 적합하게 할 수 있다.
이와 같은 오디오 코딩에 있어서 서로 다른 변환 길이 간의 전환에 대한 개념을 통해 코딩 효율성이 개선되었다.
도 1은 본 발명의 일실시예에 있어서 오디오 인코더를 도시한 것이다.
도 2는 본 발명의 일실시예에 있어서 오디오 디코더를 도시한 것이다.
도 3은 본 발명의 일실시예에 있어서 콘텍스트 업샘플링에 대해서 도시한 것이다.
도 4는 본 발명의 일실시예에 있어서 콘텍스트 다운샘플링에 대해서 도시한 것이다.
도 5는 본 발명의 일실시예에 있어서 오디오 전환 시간 및 주기 해상도를 도시한 것이다.
도 6은 본 발명의 일실시예의 구현례를 도시한 것이다.
도 7a는 본 발명의 일실시예에 있어서 인코딩 방법에 대한 흐름도이다.
도 7b는 본 발명의 일실시예에 있어서 일반적인 콘텍스트 업데이트 과정을 도시한 것이다.
도 7c는 본 발명의 일실시예에 있어서 해상도의 변환에 따른 콘텍스트 업데이트 과정을 도시한 것이다.
도 8은 본 발명의 일실시예에 있어서 디코딩하는 방법에 대한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서 최신식의 시간 주기 코딩 기법을 도시한 것이다.
도 1은 본 발명의 일실시예에 있어서, 계수의 인코딩된 세그먼트(segment), 샘플링된 오디오 신호의 서로 다른 시간 또는 주파수 해상도를 표현하는 계수(coefficient)의 세그먼트에 대한 오디오 인코더(100)를 나타내고 있다. 상기 오디오 인코더(100)는, 종전의 단계에서 사전에 인코딩된 계수 값을 기초로 하는 현 단계의 현재 인코딩된 계수를 위하여 코딩 콘텍스트를 추론하기 위한 프로세서(110)를 포함하고 있다. 여기서 상기 사전에 인코딩된 계수는, 현재의 인코딩된 계수값과는 다른 시간 또는 주파수 해상도를 나타낸다. 일실시예에 있어서 상기 오디오 인코더는 인코딩된 오디오 스트림을 구하기 위한 코딩 콘텍스트에 기초한 현행 계수를 엔트로피 인코딩하는 엔트로피 인코더(120)를 추가적으로 포함할 수 있다.
일실시예에 있어서 상기 계수는 오디오 샘플, 양자화된 오디오 샘플, 스펙트럼 또는 주파수 계수, 스케일된 계수, 변형 또는 필터링된 계수 또는 이들의 조합 등에 부합할 수 있다.
일실시예에 있어서 상기 오디오 인코더(100)는, 오디오 스트림으로부터 계수의 세그먼트를 제공하기 위한 수단을 추가적으로 구비할 수 있다. 여기서 상기 계수는 상기 계수들 사이에서 다양하게 변화하는 스펙트럼 해상도에서 오디오 신호를 스펙트럼한 표현을 형성한다. 상기 세그먼트를 제공하기 위한 수단은 다른 시간 도메인 윈도우 길이 또는 다른 오디오 프레임 즉, 대역폭 다른 길이 또는 다양한 숫자의 계수 즉, 다른 스펙트럼 또는 주파수 해상도를 구비하는 오디오 프레임을 기반으로 하는 세그먼트를 결정하는데 적용될 수 있다. 상기 제공 수단은 1024 및 128 시간, 주파수 또는 스펙트럼 계수의 세그먼트를 결정하는 데도 적용될 수 있다.
일실시예에 있어서 상기 프로세서(110)은, 상기 현재 및 과거의 계소 뚜눈 세그먼트에 대한 주파수 또는 스펙트럼 도메인 표현(domain representation)을 기반으로 하는 코딩된 콘텍스트를 추론하기 위해 조정될 수 있다. 다른 말로는 실시예에 있어서 연속적인 세그먼트는 다른 시간 및/또는 주파수 또는 스펙트럼 도메인 내에서 표현될 수 있다. 다른 일실시예에 있어서 상기 프로세서(110)는, 주파수 또는 스펙트럼 대역 당 코딩 콘텍스트를 추론할 수도 있다.
상기 프로세서(110) 및 상기 엔트로피 인코더(120)는, 콘텍스트에 속하는 전의 세그먼트가 현재의 세그먼트보다 가는 스펙트럼 또는 주파수 해상도를 포함하는 때, 전의 세그먼트의 주파수 또는 스펙트럼 계수의 다운 샘플링을 기반으로 작동하도록 설정될 수 있다. 일실시예에 있어서 상기 프로세서(110) 및 상기 엔트로피 인코더(120)는 콘텍스트에 속하는 전의 세그먼트가 현재의 세그먼트보다 굵은 스펙트럼 또는 주파수 해상도를 포함하는 때, 전의 세그먼트의 주파수 또는 스펙트럼 계수의 업 샘플링을 기반으로 작동하도록 설정될 수 있다.
일실시예에 있어서 샘플링된 오디오 신호의, 다른 시간 또는 주파수 해상도를 나타내는 계수의 인코딩된 세그먼트를 위한 방법이 제공될 수 있다. 상기 방법은, 이전의 세그먼트로부터 먼저 인코딩되었거나 이전의 계수를 기반으로 하거나 또는 추가적으로 최근에 인코딩되었거나 현재의 계수를 기반으로 하는 현재의 세그먼트에 대한 최근에 인코딩되었거나 또는 현재의 계수 또는 코딩 콘텍스트를 추론하는 단계를 포함한다. 여기서 먼저 인코딩되었거나 이전의 계수는, 최근에 인코딩되거나 또는 현재의 계수와 다른 시간 또는 주파수 해상도를 나타낸다. 상기 방법은 추가적으로 인코딩된 오디오 스트림을 구하기 위하여 코딩 콘텍스트를 기반으로 하는 현재의 계수를 엔트로피 인코딩하기 위한 단계를 포함한다.
이와 상응하여, 일실시예에 있어서 본 발명은, 도 2에 도시된 바와 같이 오디오 디코더(200)를 포함할 수 있다. 상기 오디오 디코더(200)는, 샘플링된 오디오 신호의 다른 시간 또는 주기 해상도를 표현하는 계수에 대한 세그먼트를 구하기 위하여 인코딩된 오디오 스트림을 디코딩하는데 적용될 수 있다. 상기 오디오 디코더(200)는, 먼저 디코딩되거나 또는 이전의 계수를 기반으로 하는 현재 디코딩되거나 또는 현재의 계수에 대한 코딩 콘텍스트를 추론하기 위한 프로세서(210)를 포함할 수 있다. 여기서 먼저 디코딩되거나 또는 이전의 계수는 상기 현재 디코딩된 계수와는 다른 시간 또는 주기 해상도를 나타낸다. 더 나아가, 상기 오디오 디코더 (200)는 코딩 콘텍스트 및 코딩된 오디오 스트림을 기반으로 하는 현재의 계수를 엔트로피 디코딩하는 엔트로피 디코더(220)를 포함한다.
실시예에 있어서, 상기 오디오 디코더(200)는 엔트로피 디코더(220)를 포함할 수 있다. 상기 엔트로피 디코더(220)는 다른 시간 도메인 윈도우 길이 또는 다른 오디오 프레임 길이를 기반으로 한 디코딩된 계수의 세그먼트를 결정하기 위해 적용될 수 있다. 상기 엔트로리 디코더(220)는, 예를 들어 1024 및 128같은 시간 도메인 샘플 또는 주기 또는 스펙트럼 계수의 세그먼트를 결정하기 위해 적용될 수 있다. 이와 상응하여, 상기 프로세서(210)은 앞선 세그먼트 및/또는 현재 세그먼트의 계수에 대한, 주기 또는 스펙트럼 도메인 표현을 기반으로 하는 코딩 콘텍스트를 추론하기 위해 적용될 수 있다.
일실시예에 있어서 상기 프로세서(210)는, 현재의 세그먼트의 주파수 또는 스펙트럼 대역에 대한 코딩 콘텍스트를 추론하는데 적용될 수 있다. 여기서 상기 코딩 콘텍스트는, 예를 들어, 이전의 세그먼트의 근접하는 스펙트럼 계수를 기반으로 한다. 다시 말하면, 상기 세그먼트는 주파수 또는 스펙트럼 대역에 따라서 수행될 수 있는 주파수 또는 스펙트럼 도메인 내에서 작동한다. 이와 상응하여, 상기 프로세서(210)은 주파수 또는 스펙트럼 대역 특유의 콘텍스트를 추론하는데 적용될 수 있다.
상기 엔트포리 디코더(200)는 엔트로피 또는 다양한 길이의 인코딩 규칙을 기반으로 한 현행 계수를 엔트로피 디코딩하는데 적용될 수 있다.
상기 프로세서(210)은, 이전의 세그먼트가 현생 세그먼트보다 더 많은 대역폭 당 계수( 예를 들어 가는 스펙트럼 또는 주파수 해상도)을 포함하고 있을 때, 이전의 세그먼트의 주파수 또는 스펙터럼 계수의 다운 샘플링에 기초한 코딩 콘텍스트를 추론하는데 적용될 수 있다. 다른 일실시예에 있어서, 상기 프로세서(210) 및 상기 엔트로피 인코더(220)는, 상기 이전의 세그먼트가 상기 현재의 세그먼트보다 대역폭당 더 적은 계수를 포함하고 있을 때,(예를 들어 더 굵은 스펙트럼 또는 주파스 해상도인 경우) 이전의 세그먼트의 스펙트럼 계수의 업샘플링에 기반하여 작동하도록 설정할 수 있다.
결론적으로 실시예들은, 디코딩된 오디오 샘플들을 나타내는 계수들의 세그먼트를 구하기 위한 인코딩된 오디오 스트림을 디코딩하는 방법을 제공한다. 상기 디코딩하는 방법은, 이전의 세그먼트의 이전에 디코딩되거나 또는 이전의 계수값을 기반으로 하는 현재의 세그먼트의 현재 디코딩되거나 또는 현재의 계수값을 위한 코딩 콘텍스트를 추론하는 단계를 포함한다. 여기서 상기 이전에 디코딩되거나 또는 이전의 계수는 현재 디코딩된 계수값과는 다른 시간 또는 주파수 해상도를 나타낸다. 더구나, 상기 방법은 상기 코딩 콘텍스트 및 상기 인코딩된 오디오 스트림을 기반으로 하는 현재의 계수를 엔트로피 디코딩하는 단계를 포함할 수 있다. 선택적으로, 상기 방법은 인코딩된 오디오 스트림으로부터 인코딩된 오디오 계수의 세그먼트를 결정하는 단계를 포함할 수 있다. 여기서 상기 세그먼트는 오디오 계수의 다른 숫자들을 나타낸다.
도 3은 프로세서(110,210)이, Mc , old 계수의 이전의 세그먼트에 기반한 Mc , new 계수의 현재 세크먼트에 대한 코딩 콘텍스트를 추론하는지를 보여준다. 여기서 상기 이전의 세그먼트는 현재의 세그먼트와는 다른 숫자의 오디오 계수를 포함한다. 도 3에 도시된 실시예에 있어서 세그먼트 M의 숫자는 상기 세그먼트의 주파수 또는 스펙트럼 해상도를 결정한다. 상기 실시예는 매핑 방법을 포함하고 있다. 이는 상기 이전의 세그먼트의 Mc , old 계수를 현재의 세그먼트와 동일한, 콘텍스트의 주파수 또는 스펙트럼 해상도를 구비한 Mc , new 계수에 매핑한다. 도 3에 도시된 바와 같이, Mc,old 계수, Sn ,0, Sn ,1, Sn ,2, 를 나타내는 원래의 이전 세그먼트(310) 및 이에 상응하여 매핑된 이전의 세그먼트(320) 같은 두 개의 세그먼트 내의 두 세트의 계수값은 Mc , new 계수, Sn ,0, Sn ,1, Sn ,2, Sn ,3, 등의 Mc , old 보다는 크다.
일반적으로, 두 개의 실시예는 차이가 있는데, 이는 상기 현재 세그먼트의 콘텍스트의 해상도가 종래의 세그먼트의 해상도의 해상도보다 높거나 또는 낮은지에 따른다. 도 3은 일 실시예를 도시하고 있다. 여기서 상기 이전의 세크먼트 Mc , old 계수의 해상도는 상기 현재의 세그먼트 Mc , new 계수의 해상도보다 작다. 도 3은 이전의 세그먼트(320)의 계수 및 매핑된 이전의 세그먼트(320)에 대한 심벌을 보여준다. 도 3에 도시된 바와 같이 Mc , new 계수의 현재의 세그먼트의 해상도는 오직 Mc,old 계수만을 구비한 이전의 세그먼트(310)의 해상도 보다 크다. 일 실시예에 있어서 상기 이전 세그먼트(310)은 현재 세그먼트의 주파수 또는 스펙트럼 해상도에 매칭하기 위하여 Mc , old 계수의 세그먼트(320)으로 업샘플링된다. 이는 심벌의 복제 및 감축 메카니즘을 포함하는 순수한 업샘플링을 포함할 수 있다. 상기 심벌의 복제 및 감축 메카니즘은, 예를 들어, 각각의 Mc , old 에서 오직 하나의 계수만을 보관함으로써 상기 결과로써 업샘플링된 세그먼트를 감축시키기 전에 Mc , new 번 각각의 값을 반복하는 것이다.
일실시예에 있어서, 매핑은 모든 이전의 세그먼트(310)에 대해서 수행될 수 있다. 그리고 그것은 현재의 세그먼트에 대한 콘텍스트를 결정하는데 있어서 필요한 것이다. 다시 말하면, 예를 들어서 시간 n에서 다수의 이전의 세그먼트가 고려될 수 있다. 여기서 상기 이전의 세그먼트는 시간 n-1, n-2 등에서의 세그먼트이다. 일반적으로 다수의 시간 슬롯 또는 이전 세그먼트가 고려될 수 있다. 여기서 완전한 콘텍스트를 저의하기 위하 필요한 시간 슬롯의 갯수는 서로 다른 구현 또는 실시예에 대하여 서로 다를 수 있다.
도 4는 본 발명의 다른 일실시예에 대하여 도시하고 있다. 여기서 이전의 세그먼트(410)의 계수는 상기 현재 세그먼트의 콘텍스트를 연산하기 위하여 사용되는 세그먼트(420)으로 다운 샘플링된다. 즉, 이 경우에 있어서 이전의 세그먼트(410)의 계수 Mc , old 의 숫자는, 현재 세그먼트의 계수 Mc , new 의 숫자보다 크다. 도 4는 도 3과 유사하게 도시되어있다. 따라서 각각의 세그먼트 410 및 420 내에는 다수의 계수가 보인다. 도 4에 도시된 바와 같이 Mc , old 는 Mc , new 보다 크다. 그러므로 상기 Mc,old 계수는 서브 샘플링되고, Mc , new 계수의 현재 세그먼트의 주파수 또는 스펙트럼 해상도에 매칭된다. 예를 들어 일 실시예에 있어서 더 큰 해상도를 구비한 이전의 세그먼트는 더 작은 해상도를 구비한 현재의 세그먼트의 해상도에 매칭되기 위해 서브 샘플링된다. 일실시예에 있어서 이는 계수의 복제 및 감축 메카니즘을 포함하는 순수한 다운 샘플링을 포함할 수 있다. 예를 들어 상기 심벌의 복제 및 감축 메카니즘은, 각각의 Mc , old 에서 오직 하나의 계수만을 보관함으로써 상기 결과로써 업샘플링된 세그먼트를 감축시키기 전에 Mc , new 번 각각의 값을 반복하는 것이다. 다른 일실시예에 있어서, 일례로 둘 또는 그 이상의 근접한 값의 평균을 구하기 위한 필터 작동이 고려될 수 있다.
도 5는 또 다른 일실시예를 도시한 것이다. 여기서 다른 해상도 간의 전환이 수행된다. 도 5는 시간/주파수 평면을 보여주고 있다. 여기서 오디오 계수에 대한 세 개의 차후의 세그먼트, 510, 520 및 530이 도시되어 있다. 각각의 세그먼트 510, 520 및 530은 계수의 단일 세트에 상응한다. 도 5에 도시된 일실시예에 있어서 상기 두번째 세그먼트 20은 상기 첫번째 및 세번째 세그먼트 510 및 530보다 두 배 정도 길다고 추정할 수 있다. 이는, 예를 들어 AAC에서 행해지는 것같이, 타임 도메인 내에서 세그먼팅될 때, 다른 윈도우를 사용함으로써 달성될 수 있다. 도 5에 도시된 일실시예에 있어서, 샘플링 비율이 고정되어 있다고 추정될 수 있다. 다시 말하면 더 긴 두번째 세그먼트(520)는 상기 첫번째 또는 세번째 세그먼트(510, 530)보다 대역폭 당 오디오 계수를 두 배 더 포함하고 있을 수 있다.
도 5에 의하면 이러한 경우에 상기 주파수 뚜는 스펙트럼 도메인에서의 해상도는 시간 도메인 내에서의 세그먼트의 크기를 조절한다. 다시 말해서 상기 타임 도메인 내에서의 상기 윈도우가 짧으면 짧을수록 상기 주파수 또는 스펙트럼 도메인의 해상도는 더욱 작아진다. 주파수 또는 스펙트럼 도메인 내에서의 샘플을 인코딩하기 위한 콘텍스트를 평가할 때, 도 5에 도시된 것처럼 코딩은 상기 세크먼트(510)의 더 높은 해상도 버전을 가질 필요가 있다. 상기 고려되는 일례로 두번째 세그먼트(520)가 인코딩될 때, 세그먼트(510)의 두 배의 해상도가 획득될 수 있다. 다른 일실시예에 있어서 특히 다른 시간-주파수 변형 또는 필터뱅크(filterbank)를 사용할 때는, 상기 시간 도메인 및 주파수 도메인 해상도 간의 또 다른 관계가 발생한다.
일실시예에 따르면, 첫번째 세그먼트(510) 동안에 인코딩된 계수는, 예를 들어 중간의 업샘플링에 의해서 상기 두번째 세그먼트(520)에 대한 콘텍스트를 결정하는데 기초를 제공한다. 다시 말하면, 상기 첫번째 세그먼트(510)으로부터 나온 콘텍스트 내용은, 더 높은 해상도를 구비한, 상기 세그먼트(520)에 대한 콘텍스트를 추론하기 위하여, 보간법 또는 보외법의 면에서, 상기 첫번째 세그먼트(510)의 업샘플링에 의해서 구해질 수 있다.
도 5에 도시된 바와 같이, 상기 두번째 세그먼트(520)을 세번째 세그먼트(530)로 전환할 때, 상기 문맥 구성요소는, 상기 해상도가 감소함에 따라 마찬가지로 변해야 한다. 일 실시예에 따르면, 상기 두번째 세그먼트(520)에서 인코딩된 계수는, 인터미디에이트(intermediate) 다운 샘플링을 수단으로 하여 상기 세번째 세그먼트를 위한 콘텍스트를 구하기 위하여 사용될 수 있다. 이는, 예를 들어 평균값을 구하는 면에서 실행되거나 또는 단순히 오직 모든 두번째 값 또는 다른 값들을 사용함으로써 실행될 수 있다.
본 발명은, 해상도 또는 윈도우 길이의 변화가 발생할 때조차, 이전 세그먼트로부터 얻어진 과거의 콘텍스트를 고러함으로써, 코딩 효율성이 증가하는 이점을 얻을 수 있다. 콘텍스트 구성 요소들은, 업 또는 다운 샘플링의 면에서, 예를 들어 보간법 또는 보외법, 필터링 또는 평균값을 구하는 방법 등을 통해서 새로운 해상도에 적용될 수도 있다.
이어서, 노이즈없는 스펙트럼 코딩의 면에서 더 특수한 예를 설명한다. 노이즈없는 스펙트럼코딩은 오디오 코딩에 있어서 양자화된 스펙트럼의 리던던시를 더욱 감소시키기 위해 사용된다. 노이즈없는 스펙트럼 코딩은 동적인 콘텍스트 적용과 결합된 산술 코딩에 기반을 두고 있다.
노이즈없는 코딩은, 양자화된 스펙트럼 값을 기본으로 하고, 콘텍스트에 의존하는 누적 주파수 테이블을 사용한다. 상기 테이블은 예를 들어 네 개의 이전에 디코딩된 이웃하는 튜플(tuple) 등으로부터 얻어진다. 도 6은 다른 일실시예를 도시한 것이다. 도 6에는 시간 축에 따라 세 개의 시간 슬롯이 n, n-1 및 n-2로 되어있는 시간 주기 평면을 보여준다. 또한, 도 6은, m-2, m-1, m, m+1로 명명된 네 개의 주파수 또는 스펙트럼 대역을 도시하고 있다. 도 6은 각각의 시간-주기 슬롯 박스 내에 인코딩 또는 디코딩된 샘플들의 튜플들을 보여주고 있다. 세 개의 다른 형태의 튜플들은 도 6에 도시되어 있다. 여기서 점선으로 표현된 박스는 인코딩 또는 디코딩 되기 위해 남아있는 튜플을 가리키며, 굵은 선의 흰색 상자는 이전에 인코딩 또는 디코딩된 튜플을 가리키며, 굵은 선의 회색 상자는, 인코딩되거나 디코딩될 현재 튜플에 대한 콘텍스트를 결정하기 위해 사용되는, 이전에 인/디코딩된 튜플을 가리킨다.
상기 위에서 묘사된 실시예에서 언급된 이전 및 현재의 세그먼트는 본 실시예에 있어서 튜플에 상응된다. 다시 말해서 상기 세그먼트는 상기 주파수 또는 스펙트럼 도메인 내에서 처리될 수 있다. 도 6에 도시된 바와 같이, (예를 들어 상기 시간 및 주파수 또는 스펙트럼 도메인 내의) 현행 튜플에 근접한 튜플 또는 세그먼트는 콘텍스트를 얻기 위해 고려될 수 있다. 누적된 주파수 테이블은, 그때, 다양한 길이의 바이너리 코드를 생성하기 위해서 산술적 코더에 의해 이용될 수 있다. 상기 산술적 코더는, 심벌의 특정한 그룹 및 그들 각각의 확률에 대한 바이너리 코드를 생성한다. 상기 바이너리 코드는 상기 심벌 그룹이 놓여있는 확률 간격을 코드워드(codeword)에 매핑함으로써 생성될 수 있다. 상기 산술적 코더는, 기상술한 실시예에의 엔트로피 인코더(120), 상기 엔트로피 디코더(220) 각각에 상응한다.
본 일실시예에 있어서 콘텍스트를 기반으로 한 산술적 코딩은 4-튜플(예를 들어 스펙트럼 계수 인덱스 위의)을 기초로 하여 수행된다. 상기 4-튜플은 또한, 양자화 후의 스펙트럼 계수를 나타내기 위하여 q(n,m)으로 표현될 수 있고, 상기 주파수 또는 스펙트럼 도메인 내에 근접하여 위치하며, 한 단계로 엔트로피 코딩되어 있다. 기상술한 바에 따르면, 코딩은 상기 코딩된 콘텍스트를 기반으로 하여 수행될 수 있다. 도 6에 도시된 바와 같이 코딩된 4-튜플에 추가하여, 이전에 코딩된 네 개의 4-튜플들이 상기 콘텍스트를 얻기 위해 구해질 수 있다. 이러한 네 개의 4-튜플은 콘텍스트를 결정하고, 시간 도메인 내에서 주파수 및/또는 스펙트럼 내에서 선행한다.
도 7a는, 스펙트럼 계수의 인코딩 기법을 위한 USAC(범용 음성 및 오디오 코더, Universal Speech and Audio Coder) 콘텍스트 기반 산술 코더의 흐름도이다. 상기 인코딩 과정은 현재의 상기 문맥이 더해진 4-튜플에 의존한다. 여기서 상기 콘텍스트는 산술 코더의 확률 분포를 선택하고 스펙트럼 계수의 진폭을 예측하기 위해 사용된다. 도 7a에 의하면 상기 상자(705)는 콘텍스트에 대한 결정 사항을 나타낸다. 여기서, t0, t1, t2 및 t3는, 도 6에 도시된 굵은 선을 가진 회색 상자 내의 q(n-1, m), q(n, m-1), q(n-1, m-1) 및 q(n-1, m+1)에 대응된다.
일반적으로, 실시예에 있어서 상기 엔트로피 인코더는 스펙트럼 계수의 4-튜플 유닛 내의 현재 세그먼트를 인코딩하고, 상기 코딩 콘텍스트를 기초로 한 4-튜플의 진폭 범위를 예측하는데 적용될 수 있다.
본 일실시예에서 상기 인코딩 기법은 몇 가지 단계를 포함한다. 먼저, 상기 문자로 구성된 코드워드는 산술 코더 및 특별한 확률 분포를 사용하여 인코딩된다. 상기 코드워드는 네 개의 이웃하는 스펙트럼 계수 (a,b,c,d)를 나타낸다. 여기서 각각의 a,b,c 및 d는 아래의 범위 내에 존재한다.
- 5 < a,b,c,d < 4
일반적으로 실시예에 있어서 상기 엔트로피 인코더(120)는, 4-튜플을 필요한 만큼 빈번히, 예정된 인자로 분할하는 것에 적용될 수 있다. 이는 상기 예측되는 범위 내 또는 기설정된 범위 내의 상기 분할물에 적합하도록 하기 위한 것이다 또한 상기 엔트로피 인코더(120)는, 상기 4-튜플이 예측 범위 내에 있지 않을 때, 필요한 다수의 분할물, 분할물 리마인더(remainder), 상기 분할의 결과물 및 그 외의 경우에 있어서 분할물 리마인더 및 상기 분할의 결과물을 인코딩하는 것에도 적용될 수 있다.
이어서, 만약 (a,b,c,d)항 즉, 어떠한 계수 a,b,c,d도 본 실시예에서 주어진 범위를 초과하지 않는다면, 일반적으로 주어진 범위 내에서 얻어진 코드워드에 적합하도록 하기 위해, 필요한 만큼의 회수로 (a,b,c,d)를 하나의 인수(예를 들어 2 또는 4)로 분할함으로써 이를 고려할 수 있다. 상기 2의 인수에 의한 분할은, 예를 들어 (a,b,c,d)>> 1 같은 오른쪽으로 바이너리 편이에 상응한다. 이러한 감축은 하나의 정수 표시 내에서 행해지고, 즉 정보는 손실될 수 있다. 오른쪽으로의 편이에 의해 손실될 수 있는 가장 작은 명백한 비트(bit)는 저장되고 산술적 코더 및 균일 확률 분포를 사용하여 후추 코딩된다. 오른쪽으로 편이되는 과정은 모든 네 개의 스펙트럼 계수 (a,b,c,d)에 대하여 수행된다.
일반적인 실시예에서, 상기 엔트로피 인코더(120)는, 확률 분포가 코딩 콘텍스트에 기초하는, 하나 또는 그 이상의 코드워드의 집단에 관련된 집단 인덱스 ng를 사용하여 상기 분할의 결과 또는 4-튜플을 인코딩하는 것에 적용될 수 있다. 상기 집단이 일 이상의 코드워드로 구성된 경우에는 구성요소 인덱스 ne가 사용될 수 있다. 여기서 구성요소 인덱스 ne는 상기 집단 내의 코드워드와 관련된다. 상기 구성요소 인덱스는 균일 확률 분포를 따른다고 추정된다. 그리고 상기 엔트로피 인코더(120)는 다수의 탈출 심벌을 통하여 다수의 분할물을 인코딩하는 것에 적용될 수 있다. 여기서 상기 탈출 심벌은 오직 분할물을 지시하고 산술적 코딩 규칙을 이용하여 균일 확률 분포를 따르는 분할물의 리마인더를 인코딩하기 위하여만 사용되는 특별한 그룹 인덱스 ng이다. 상기 엔트로피 인코더(120)는 일 시퀀스의 심벌을, 상기 탈출 심벌 및 사용가능한 그룹 인텍스의 그룹에 상응하는 그룹 심벌을 포함하는 심벌 알파벳을 사용하여 인코딩된 오디오 스트림으로 인코딩하는 것에 적용할 수 있다. 여기서 심벌 알파벳은 상응하는 구성요소 인덱스 및 서로 다른 값의 리마인더를 포함한다.
도 7a에 도시된 실시예에서, 문자 코드워드를 인코딩하기 위한 확률 분포 및 범위 감축 단계의 횟수에 대한 추정은 상기 콘텍스트로부터 구해질 수 있다. 예를 들어, 전부하여 84=4096개인 모든 코드워드는, 하나 또는 그 이상의 구성요소를 포함하는, 모두 544 그룹 내에 걸쳐있다. 상기 코드워드는 그룹 인덱스 ng 및 그룹 구성요소 ne로써 비트스트림 내에 표현된다. 양 값들은 산술적 코더, 어떤 확률 분포를 사용하여 코딩된다. 일 실시예에 있어서 ng를 위한 확률 분포는 콘텍스트로부터 얻을 수 있다. 상대적으로 상기 ne를 위한 확률 분포는 균일 확률 분포로 추정될 수 있다. ng 및 ne의 결합은 명료하게 코드워드를 식별한다. 상기 분할에 대한 리마인더, 즉 시프트 아웃(shift out)된 비트판(bit-plane)은 마찬가지로 균일 확률 분포를 따른다고 추정된다.
도 7a의 단계 710에서 4-튜플 q(n,m), 즉 (a,b,c,d) 또는 현재의 세그먼트가 제공되고, 수치 lev은 0으로 세팅됨으로써 초기화된다.
단계 715에서 (a,b,c,d)의 범위가 상기 콘텍스트로부터 구해진다. 이러한 연산에 따라 (a,b,c,d)는 lev0 레벨에 의해서 나눠질 수 있다. 즉 2lev0의 인자에 의해 분할 된다. 상기 lev0의, 가장 중요하지 않은 비트판은 추후 단계 750에서의 활용을 위해 저장된다.
단계 720에서 (a,b,c,d)가 기정해진 범위를 초과하는지 여부가 확인되고, 만약 초과한다면, 단계 725에서 인자 4에 의하여 감소된다. 다시 말해서 단계 725에서 (a,b,c,d)는 2에 의해서 오른쪽으로 이동되고, 상기 제거된 비트판은 단계 750에서 추후 사용되기 위하여 저장된다.
이러한 축소 단계를 지시하기 위하여 ng는 스텝 730에서 544로 세팅된다. 예를 들어 ng = 544가 탈출 코드워드로 사용될 수 있다. 이때 상기 코드워드는 단계 755에서 비트스트림에 입력된다. 여기서 단계730에서 상기 코드워드를 얻기 위하여 상기 콘텍스트로부터 얻어진 확률 분포를 구비한 산술 코더가 사용된다. 이러한 감소 단계가, 예를 들어 lev==lev0같이 최초로 적용되는 경우에 있어서, 상기 콘텍스트는 조금 적용된다. 상기 감소 단계가 일 이상 적용되는 경우에는, 상기 콘텍스트는 폐기되고, 디폴트 분포(default distribution)이 계속 사용된다. 상기 과정은 단계 720를 속행한다.
단계 720에서 상기 범위를 만족함이 감지된다면, 더 명백하게 (a,b,c,d)가 상기 범위 조건을 만족하면, (a,b,c,d)는 집합 ng 및, 만약 적용될 수 있다면, 그룹 구성요소 인덱스 ne 그룹에 매핑된다. 이러한 매핑은 (a,b,c,d)가 ng 및 ne로부터 얻어질 수 있다는 점에서 모호하지 않다. 여기서 상기 집단 인덱스 ng는, 단계 735에서 적용 또는 폐기된 콘텍스트를 위한 확률분포를 사용하여, 상기 산술 코더에 의해 코딩된다. 여기서 상기 그룹 인덱스 ng는 단계 755에서 비트스트림 내로 삽입된다. 그 다음의 단계 740에서, 상기 그룹 내의 구성요소의 숫자가 1보다 큰지 아닌지가 검사된다. 만약 필요하다면, 즉, ng에 의해 인덱싱된 그룹이 일 이상의 구성요소를 포함하고 있다면, 상기 구성요소 인덱스 ne 그룹은 745 단계에서 산술 코더에 의해 코딩된다. 일실시예에 있어서 이는 균일 확률 분포를 따른다고 추정된다.
단계 745에 이어, 상기 구성요소 그룹 인덱스 ne는 단계 755에서 비트스트림 내로 삽입된다. 마지막으로 단계 750에서 모든 저장된 비트판은, 균일 확률 분포를 따른다고 추정하는 산술 코더를 이용해서 코딩된다. 상기 코딩된 저장된 비트판은 또한, 단계 755에서 비트스트림에 삽입된다.
실시예에 있어서 상기 엔트로피 디코더(220)는 상기 코딩 콘텍스트로부터 추론된 확률 분포를 기초로 하여 인코딩된 오디오 스트림으로부터 그룹 인덱스 ng를 디코딩하기 위하여 사용될 수 있다. 여기서 상기 그룹 인덱스 ng는 하나 또는 그 이상의 코드워드의 집합을 나타낸다. 그리고 상기 엔트로피 디코더(220)는, 균일 확률 분포를 기반으로 하여, 만약 상기 그룹 인덱스 ng가 일 이상의 코드워드로 구성된 하나의 집합을 가리키는 경우 상기 인코딩된 오디오 스트림으로부터 구성요소 인덱스 ne를 디코딩하는데 적용될 수 있고, 그룹 인덱스 ng 및 구성요소 인덱스 ne를 기반으로 하는 현재의 세그먼트의 스펙트럼 계수의 4-튜플을 추론하기 위해 사용될 수 있다. 그렇게 함으로써 스펙트럼 계수의 튜플 내에서 스펙트럼 도메인 표현을 구할 수 있다.
실시예에 있어서 상기 엔트로피 디코더(220)는, 사용 가능한 그룹 인덱스들 ng의 일 세트에 상응하는 탈출 심벌 및 집단 심벌로부터 추론된 확률 분포에 기반한 인코딩된 오디오 스트림으로부터 일 시퀀스의 심벌을 디코딩하는데 사용될 수 있다. 또한, 상기 엔트로피 디코더(220)는, 심벌의 시퀀스의 집단 심벌이 상응하는, 가능한 그룹 인덱스 ng 및 상기 구성요소 인덱스 ne를 기반으로 하는 스펙트럼 계수의 예비적 4-튜플을 얻을 수 있다. 그리고 스펙트럼 계수의 튜플을 구하기 위해 일련의 심벌 내의 탈출 심벌의 숫자에 의존하는 인자로, 상기 예비적인 4-튜플을 증가시키는데 사용될 수 있다.
상기 엔트로피 디코더(220)는 추가적으로 산술적 코딩 법칙을 사용하는 균일 확률 분포를 기반으로 하는 인코딩된 오디오 스트림으로부터 리마인더를 디코딩하는데 사용될 수 있고, 스펙트럼 계수의 4-튜플을 구하기 위하여 증가된 예비적 4-튜플에 대한 리마인더를 추가하는데 사용할 수 있다.
상기 엔트로피 디코더(220)는, 4-튜플을 탈출 심벌이 상기 인코딩된 오디오 스트림으로부터 디코딩되늰 만큼 기결정된 인자와 결합하기 위하여 사용될 수 있다. 여기서 탈출 인자는 multi를 지정하기 위하여만 사용되는 특수한 그립 인덱스 ng 이다. 그리고 상기 디코더(220)는 산술 코딩 법칙을 사용하는 균일 확률 분포를 기반으로 하는 인코딩된 오디오 스트림으로부터 리마인더를 디코딩하기 위해서 사용될 수 있다. 또한, 상기 엔트로피 디코더(220)는 추가적으로 현재는 세그먼트를 구하기 위하여 multi 4-튜플에 리마인더를 더하기 위하여 사용될 수 있다.
이하에서 USAC 콘텍스트 의존의 산술코더 디코딩 기법에 일실시예에 대해서 설명한다. 인코딩 기법에 대한 상기 실시예에 따르면, 노이즈없이 코딩된 양자화된 스펙트럼 계수에 상응하는 4-튜플이 고려된다. 더구나 상기 4-튜플들은 전송되어, 최소치의 주파수 또는 스펙트럼 계수로부터 출발하여 최고치의 주파수 또는 스펙트럼 계수로 진행한다. 상기 계수들은, 예를 들어 어레이(array)에 저장된 AAC 계수에 상응할 수 있다. 그리고 상기 노이즈없이 코딩된 코드워드가 전송된 순서는, 다음과 같다. 상기 코드워드가 도착하고 어레이에 저장된 순서에 따라서 디코딩될 때, 빈(bin)은 가장 빠르게 증가하는 인덱스이고 g는 가장 느리고 증가하는 인덱스이다. 코드워드 내에서 상기 디코딩 순서는 a,b,c,d이다.
도 7b는, 일실시예에 있어서 일반적인 콘텍스트 업데이트 과정을 도시한 것이다. 비트 깊이 예측 메커니즘에 따른 콘텍스트 적용에 대한 상세한 내용은 현 실시예에 따라 고려될 것이다. 도 7b에는 비트판에 있어서 4-튜플 (a,b,c,d)의 가능한 범위를 디스플레이하는 판 760이 도시되어 있다. 상기 비트 깊이, 즉 4-튜플을 표현하기 위해 필요한 비트판의 개수는, 도 7b에 도시된 바와 같이, lev0라고 불리는 변수들에 대한 계산을 통하여 현재 4-튜플의 콘텍스트에 의해 예측될 수 있다. 상기 4-튜플은 2lev0, 예를 들어 lev=lev0에 의해서 나누어지고, 비트판은 제거되고 기상술한 단계 715와 같이 추후 사용을 위해 저장된다.
만약 상기 4-튜플이 -5 <a,b,c,d<4의 범위 내에 있다면, 상기 예측된 비트 깊이 lev0는 정확하게 예측된 것이거나 또는 과대 평가된 것이다. 이때 상기 4-튜플은 그룹 인덱스 ng, 상기 구성요소 인덱스 ne 및 상기 lev를 유지시키는 비트판에 의해서 기상술한 바와 같이 코딩될 수 있다. 이때 상기 현재의 4-튜플의 코딩은 종료된다. 상기 구성요소 인덱스 ne에 대한 코딩은, 도 7b에 도시된 바와 같이 상기 균등 확률 분포(762)에 의하여 지시된다. 상기 균등 확률 분포(762)는, 이하 구성 요소 인덱스들을 인코등하는데 사용된다. 한편 도 7b에서 수치 r은 나눠진 이후의 4-튜플의 리마인더를 나타내고 p(r)은 상응하는 균등 확률 밀도 함수를 나타낸다.
도 7a의 단계 730에 의하면 상기 4-튜플이 -5 <a,b,c,d<4의 범위 내에 있지 않다면 코딩 콘텍스트(764)에 기초한 예측은 너무 낮고, 탈출 심벌(ng=544)는 766으로 코딩되며, 상기 4-튜플은 4로 나눠지고 lev은 두 배로 증가된다. 상기 콘텍스트는 다음과 같이 사용될 수 있다. 만약 lev==lev0+2인 경우, 도 7b의 768에 따라 상기 콘텍스트는 조금 적용될 수 있다. 하나의 플랙(flag)이 콘텍스트에 대한 표시, t 내에서 세팅되고, 새로운 확률 분포 모델이, 이때 미래의 심벌 ng를 코딩하기 위해 사용된다.
만약 lev>lev0+2이면, 다른 탈출 심벌은, 도 7b의 단계 770에 따라 코딩된다. 여기서 상기 콘텍스트는 각각 772에 나타난 바와 같이 완전히 리셋되고, 도 7a의 단계 730에 나타난 바와 같이 폐기된다. 상기 디폴트 확률 모델, 어떠한 콘텍스트도 사용이 불가능할 때 사용되는 모델,은 그때 미래의 ng 심벌을 위하여 사용된다. 상기 심벌은 도 7b의 단계 774 및 776에 의해 표현되어 있다. 그리고 상기 과정은 다른 튜플을 위하여 반복된다.
요약하자면, 상기 콘텍스트 적용은 상기 콘텍스트 적용 코딩 내에서 콘텍스트 유효성(context significance)을 감소시키 위한 메커니즘이다. 상기 콘텍스트 적용은, 상기 예측된 lev) 및 실재의 Lev이 불일치할 때, 시작된다. 이것은 도 7b의 766 및 770의 코딩된 탈출 심벌(ng=544)의 심벌의 숫자에 의하여 쉽게 감지된다. 그러므로 마찬가지로 이사한 방법에 의해서 디코더에서 수행될 수 있다.
상기 콘텍스트 적용은 콘텍스트 상태 표현 t에서 하나의 플랙을 시작시키면서 종료된다. 상기 값 t는, lev0로써의 함수 get_state()에 의해서 연산된다. 여기서 테이블 q[][]에 저장되어 있는 현재의 4-튜플의 과거 및/또는 현재 프레임 또는 세그먼트로부터 추론된 콘텍스트가 사용된다. 상기 콘텍스트의 상태는 예를 들어 24 비트로 표현될 수 있다. 일 실시예에 있어서 1905800의 상태가 가능하다. 이러한 상태들은 오직 21 비트로만 표현될 수 있다. t의 23번째 및 24번째 비트는 콘텍스트의 상태에 사용하기 위해 따로 남겨진다. 23번째 및 24번째 비츠값에 다르면, get_pk()는 다른 확률 분포 모델을 출력한다. 일실시예에 있어서 상기 t의 23번째 비트는, 예를 들어 4-튜플이 lev==lev0+2 등의 lev0에 의해 먼저 나눠진 후에 4에 의해서 나눠질 때, 1로 세팅될 수 있다.
결론적으로 상기 콘텍스트 상태 t 및 확률 분포 모델 pki 간의 매핑은 lev==lev0+2인 경우와, lev==lev0 인 경우에 다르다. 상기 텍스트 상태 t 및 상기 모델 pki 간의 매핑은 트레이닝 시퀀스의 전체적인 통계에서 최적화를 수행하는 트레이닝 단계 동안에 기정의된다. lev>lev0+2일 때, 상기 콘텍스트 및 t는 0으로 세팅될 수 있다. Get_pk()는 그후 t=0에 상응하는 디폴트 확률 분포 모델을 출력한다.
이하 일실시예에 있어서 콘텍스트 매핑의 상세한 내용을 설명할 것이다. 상기 콘텍스트 매핑은, 현 실시예에 있어서 콘텍스트의 최종적인 리셋 이후에 콘텍스트 적용 코딩에서 수행되는 최초의 작업이다. 이것은 두 단계를 포함한다.
먼저, 코딩되기 전에, 이젠 프레임에 저장되고 previous_lg/4 크기의 콘텍스트 테이블 qs[]가 현재 프래임의 사이즈에 상응하는 사이즈 lg/4의 콘텍스트 테이블 q[0][]에 매핑된다. 상기 매핑은 arith_map_context 함수 내에서 수행된다. 여기서 상기 함수에 대한 일례가, 하단의 의사 코드로 표현되어 있다.
/*input variable*/
lg/4 /*number of 4-tuples*/
arith_map_context()
{
v=w=0
if(core_mode==1){
q[0][v++]=qs[w++];
}
ratio= ((float)previous_lg)/((float)lg);
for(j=0; j<lg/4; j++){
k = (int) ((float)) ((j)*ratio);
q[0][v++] = qs[w+k];
}
if(core_mode==0){
q[0][lg/4]=qs[previous_lg/4];
}
q[0][lg/4+1]=qs[previous_lg/4+1];
previous_lg=lg;
}
상기 의사 코드에 도시된 바와 같이, 상기 매핑은 모든 코딩 방법에 있어서 정확하게 동일할 수는 없다. 본 실시예에 있어서 AAC(Advanced Audio Coding)이 일 계수에 있어서 사용될 때 (core_mode==0)와 TCX(Trandform based Coding)이 사용될 때 (core_mode==1)가 다르다. 상기 차이점의 하나는 상기 테이블의 경계가 어떻게 다루어지느냐에서 도출된다. AAC에 있어서, 상기 매핑은 인덱스 0 (테이블 내에서의 최초값)에서 출발할 수 있다. 반면에 TCX의 경우에는 인덱스 1 (테이블의 두번째 값)에서 출발한다. 이 경우 첫번째 값은 언제나 '알수없음(unknown)-콘텍스트를 리셋하기 위해 사용되는 특별 상태'으로 세팅된다. previous_lg 와 lg 간의 비율은 본 실시예에서 수행될 업샘플링(비율이 1보다 큰 경우) 또는 다운샘플링(비율이 1보다 작은 경우)의 순서를 결정한다. 도 7은, 저장된, 사이즈 1024/4의 콘텍스트 테이블(도 7c의 왼쪽의 780 참조)을 사이즈 512/4(도 7c의 오른쪽 782)로 변환할 때, TCX의 경우를 도시하였다. 보이는 바와 같이 현 콘텍스트 테이블(782)에 대해서 단계적인 1의 증가가 사용될 때, 저장된 콘텍스트 테이블(780)을 위해서 기상술된 비율의 단계적 증가가 사용된다.
도 7c는, 해상도의 변화에 따른 상기 콘텍스트 업데이트 과정을 도시한 것이다. 매핑이 완료되기만 하면, 상기 콘텍스트 적용 코딩이 수행된다. 상기 코딩의 말미에, 현 프레임 구성요소가 다음 프레임을 위해서 테이블 qs[]에 저장된다. 이는, 하단의 의사 코드의 일례가 표현된 arith_update_context() 내에서 행해진다.
/*input variables*/
a,b,c,d /* value of the decoded 4-tuple */
i /*the index of the 4-tuple to decode in the vector*/
lg/4 /*number of 4-tuples*/
arith_update_context()
{
q[1][1+i].a=a;
q[1][1+i].b=b;
q[1][1+i].c=c;
q[1][1+i].d=d;
if ( (a<-4) || (a>=4) || (b<-4) || (b>=4) || (c<-4) || (c>=4) || (d<-4) || (d>=4) ) {
q[1][1+i].v =1024;
}
else q[1][1+i].v=egroups[4+a][4+b][4+c][4+d];
if(i==lg/4 && core_mode==1){
qs[0]=q[1][0];
ratio= ((float) lg)/((float)1024);
for(j=0; j<256; j++){
k = (int) ((float) j*ratio);
qs[1+k] = q[1][1+j] ;
}
qs[previous_lg/4+1] = q[1][lg/4+1];
previous_lg = 1024;
}
if(i==lg/4 && core_mode==0){
for(j=0; j<258; j++){
qs[j] = q[1][k];
}
previous_lg = min(1024,lg);
}
}
일실시예에 있어서 코어 코더(AAC 또는 TCX)에 따라서 다르게 저장될 수 있다. TCX의 경우 상기 콘텍스트는 1024/4 값의 테이블 qs[] 내에 저장된다. 이러한 추가적인 매핑은 AMR-WB+ (Adaptive Mulirate WideBand Codec)의 닫힌 루프 판단 덕분에 행해질 수 있다. 상기 닫힌 판단에서 코더 상태에 대한 몇몇 복제된 절차는 TCXs 및 ACELP(Arithmetic Coded Excited Linear Prediction)의 각각의 가능한 조합을 테스트 하는데 필요하다. 상기 상태에 대한 복사는, 모든 TCX 모드가 상기 테이블 qs[]에 대하여 동일한 크기를 공유하고 있을 때, 수행하는데 있어 더욱 쉬워진다. 그리고 매핑은 시스템적으로 lg/4에서 1024/4로 변환하는데 사용된다. 다른 한편으로는, AAC는 오직 콘텍스트 만을 저장하며 이 과정에서 어떠한 매핑도 행하지 않는다.
도 8은 디코딩 방법의 일실시예에 대한 흐름도이다. 단계 805에서, 단계 705에 상응하여 상기 콘텍스트는 t0, t1, t2 및 t3를 기초로 하여 추론된다. 단계 810에서 첫번째 감축 레벨 lev0이 상기 콘텍스트로부터 계산되고, 상기 변수 lev은 lev0로 세팅된다. 이어지는 단계 815에서, 상기 그룹 ng는 비트스트림으로부터 읽혀지고, 상기 ng를 디코딩하기 위한 확률 분포가 상기 콘텍스트로부터 추론된다. 단계 815에서, 상기 그룹 ng는 상기 비트스트림으로부터 디코딩된다.
단계 820에서 ng가, 탈출값에 상응하는 544와 동일한지 여부가 결정된다. 만약 그렇다면, 상기 변수 lev은 단계 815로 되돌아 가기 전에 2만큼 증가된다. 도 7b 및 도 7c를 참조하여 기설명된 콘텍스트 적용 메커니즘에 따라, 만약 lev==lev0인 것처럼 이러한 브랜치(branch)가 처음으로 사용되는 경우에 있어서, 상기 콘텍스트는 상기 확률분포 각각에 따라 적용되고, 만약 상기 브랜치가 처음으로 사용되는 것이 아니라면 각각은 폐기된다.
단계 820에서 상기 그룹 인덱스 ng가 544와 동일하지 않다면, 그룹 내의 구성요소의 숫자가 1보다 큰지 아닌지가 결정된다. 그리고 크다면, 단계 830에서 상기 그룹 구성요소 ne가 읽혀지고 균일 확률 분포에 따라서 비트스트림이 디코딩된다. 상기 구성요소 인덱스 ne는 산술 코딩 및 균일 확률 분포를 사용하여 비트스트림으로부터 얻어진다.
단계 835에서 문자로 구성된 코드워드 (a,b,c,d)는 ng 및 ne로부터, 예를 들어 테이블을 검색하는 과정, 일례로 dgroups[ng] 및 acod_ne[ne],에 의해서 추론될 수 있다.
단계 840에서 모든 lev 미싱 비트판(lev missing bitplane)에 대하여 상기 판은 산술 코딩을 사용하고 균일 확률 분포를 추정함으로써 읽혀진다. 그리고 상기 비트판은 (a,b,c,d)를 좌측으로 이동시키고 상기 비트판 ((a,b,c,d)<<=1)|=bp을 추가하면 (a,b,c,d)에 첨부된다.
마지막으로 단계 845에서 상기 4-튜플 q(n,m), 예를 들어 (a,b,c,d)가 제공된다.
이하에서 의사 코드 및 시행의 세부가 일실시예에 따라서 기술된다. 각각에 정의는 다음과 같다.
(a,b,c,d) 디코딩될 4-튜플
ng 0 <= ng <= 544인 4-튜플의, 가장 중요한 2 비트와이즈 판(bitswise plane)의 그룹 인덱스. 마지막 값 544는 탈출 심벌(ARITH_ESCAPE)에 상응한다.
ne 일 그룹 내의 구성요소 인덱스. ne는 0과 각각의 그룹 mm의 기수 사이에 위치한다. 그룹 내 구성요소의 최대값은 73이다.
lev 유지시키는 비트판의 레벨. 가장 중요한 2 비트와이즈 판보다 덜 중요한 비트판의 번호에 상응한다.
egroups [a][b][c][d] 그룹 인덱스 테이블. 이는, 4-튜플 (a,b,c,d)의 대부분의 중요한 2 비트와이즈 판을 그룹 544에 매핑하는 것을 가능하게 한다.
mm 그룹의 기수
og 그룹의 옵셋
dgroups[] 그룹 인덱스 ng를, 각각의 그룹 mm (최초 8비트) 및 in dgvectors[] 내에서 그룹 og(마지막 8비트)의 오프셋을 매핑한다.
dgvectors[] 그룹 og의 옵셋 및 구성요소 인덱스 ne를, 4-튜플 (a,b,c,d)의 가장 중요한 2 비트와이즈판에 매핑한다.
arith_cf_ng_hash[] 콘텍스트의 상태를 누적된 주파수 테이블 인덱스 pki로 매핑하는 해쉬 테이블.
arith_cf_ng[pki][545] 그룹 인덱스 심벌 ng에 대한 누적 주파수에 대한 모델.
arith_cf_ne[] 구성요소 인덱스 심벌 ne에 대한 누적 주파수.
r 가장 중요한 2 비트와이즈판보다 덜 중요한 4-튜플의 비트판.
arith_cf_r [] 가장 중요하지 않은 비트판 심벌 r에 대한 누적 주파수
이하 상기 디코딩 과정이 먼저 고려된다. 4-튜플로 양자화된 스펙트럼 계수는 노이즈없이 코딩되고 전송되어, 가장 낮은 주파수 또는 스펙트럼 계수로부터 출발하여 높은 주파수 또는 스펙트럼 계수로 진행한다. AAC로부터 얻어진 계수는 어레이, x_ac_quant[g][win][sfb][bin]에 저장되고, 노이즈없는 코딩 코드워드의 전송 순서는 다음과 같다. 수신되고 어레이에 저장된 순서에 따라 디코딩될 경우 빈(bin)은 가장 빠르게 증가하는 인덱스이고 g는 가장 느리고 증가하는 인덱스이다. 코드워드 내에서 디코딩 순서는 a,b,c,d이다. TCX로부터 얻어진 계수는 어레이 x_tcx_invquant[win][bin]에 직접적으로 저장되고, 노이즈없는 코딩 코드워드의 전송 순서는 다음과 같다. 수신되고 어레이에 저장된 순서에 따라 디코딩될 경우 빈(bin)은 가장 빠르게 증가하는 인덱스이고 g는 가장 느리고 증가하는 인덱스이다. 코드워드 내에서 디코딩 순서는 a,b,c,d이다. 먼저, 플랙 arith_reset_flag이 상기 콘텍스트가 반드시 리셋되어야 하는지를 결정한다. 만약 상기 플랙이 참값이라면 아래의 함수가 호출된다.
*global variables*/
q[2][290] /*current context*/
qs[258] /*past context*/
previous_lg /*number of 4-tuples of the past context*/
arith_reset_context()
{
for(i=0;i<258;i++){
qs[i].a=0; qs[i].b=0; qs[i].c=0; qs[i].d=0
qs[i].v=-1;
}
for(i=0;i<290;i++){
q[0][i].a=0; q[0][i].b=0; q[0][i].c=0; q[0][i].d=0
q[0][i].v=-1;
q[1][i].a=0; q[1][i].b=0; q[1][i].c=0; q[1][i].d=0
q[1][i].v=-1;
}
previous_lg=256;
}
그렇지 않고, the arith_reset_flag 값이 거짓이라면, 매핑은 과거의 콘텍스트 및 현재의 콘텍스트 사이에서 행해진다.
/*input variable*/
lg /*number of 4-tuples*/
arith_map_context(lg)
{
v=w=0
if(core_mode==1){
q[0] [v++]=qs[w++];
}
ratio= ((float)previous_lg)/((float)lg);
for(j=0; j<lg; j++){
k = (int) ((float)) ((j)*ratio);
q[0][v++] = qs[w+k];
}
if(core_mode==0){
q[0][lg]=qs[previous_lg];
}
q[0][lg+1]=qs[previous_lg+1];
previous_lg=lg;
}
상기 노이즈없는 디코더는, 사인되고 양자화된 스펙트럼 계수의 4-튜플을 출력한다. 먼저 콘텍스트의 상태가 4개의 먼저 디코딩되고, 디코딩될 4-튜플 주변의 그룹을 기반으로 하여 계산된다. 상기 콘텍스트의 상태는 함수 arith_get_context()에 의해 주어진다.
/*input variables*/
i /*the index of the 4-tuple to decode in the vector*/
arith_get_context(i,)
{
t0=q[0][1+i].v+1;
t1=q[1][1+i-1].v+1;
t2=q[0][1+i-1].v+1;
T3=q[0][1+i+1].v+1;
if ( (t0<10) && (t1<10) && (t2<10) && (t3<10) ){
if ( t2>1 ) t2=2;
if ( t3>1 ) t3=2;
return 3*(3*(3*(3*(3*(10*(10*t0+t1))+t2)+t3)));
}
if ( (t0<34) && (t1<34) && (t2<34) && (t3<34) ){
if ( (t2>1) && (t2<10) ) t2=2; else if ( t2>=10 ) t2=3;
if ( (t3>1) && (t3<10) ) t3=2; else if ( t3>=10 ) t3=3;
return 252000+4*(4*(34*(34*t0+t1))+t2)+t3;
}
if ( (t0<90) && (t1<90) ) return 880864+90*(90*t0+t1);
if ( (t0<544) && (t1<544) ) return 1609864 + 544*t0+t1;
if ( t0>1 )
{
a0=q[0][i].a;
b0=q[0][i].b;
c0=q[0][i].c;
d0=q[0][i].d;
}
else a0=b0=c0=d0=0;
if ( t1>1 )
{
a1=q[1][i-1].a;
b1=q[1][i-1].b;
c1=q[1][i-1].c;
d1=q[1][i-1].d;
}
else a1=b1=c1=d1=0;
l=0;
do
{
a0>>=1;
b0>>=1;
c0>>=1;
d0>>=1;
a1>>=1;
b1>>=1;
c1>>=1;
d1>>=1;
l++;
}
while ( (a0<-4) || (a0>=4) || (b0<-4) || (b0>=4) || (c0<-4) || (c0>=4) || (d0<-4) || (d0>=4) ||
(a1<-4) || (a1>=4) || (b1<-4) || (b1>=4) || (c1<-4) || (c1>=4) || (d1<-4) || (d1>=4) );
if ( t0>1 ) t0=1+(egroups[4+a0][4+b0][4+c0][4+d0] >> 16);
if ( t1>1 ) t1=1+(egroups[4+a1][4+b1][4+c1][4+d1] >> 16);
return 1609864 + ((l<<24)|(544*t0+t1));
}
만약 상기 그룹이 속한 상태가 알려졌다면, 4-튜플의 가장 중요한 2 비트와이즈판은, 콘텍스트의 상태에 상응하는 적합한 누적 주파수 테이블이 입력된, the arith_decode()를 사용해서 디코딩된다. 상응 여부는 the function arith_get_pk()에 의해서 결정된다.
/*input variable*/
s /* State of the context*/
arith_get_pk(s)
{
psci[28] = {
247,248,249,250,251,252,253,254,254,0,254,254,254,255,250,215,
215,70,70,123,123,123,123,3,67,78,82,152
};
register unsigned char *p;
register unsigned long i,j;
i=123*s;
for (;;)
{
j=arith_cf_nq_hash[i&32767];
if ( j==0xFFFFFFFFul ) break;
if ( (j>>8)==s ) return j&255;
i++;
}
p=psci+7*(s>>22);
j= s & 4194303;
if ( j<436961 )
{
if ( j<252001 ) return p[(j<243001)?0:1]; else return p[(j<288993)?2:3];
}
else
{
if ( j<1609865 ) return p[(j<880865)?4:5]; else return p[6];
}
}
그리고 상기the arith_decode() 함수는, arith_get_pk()에 의한 인덱스 리턴에 상응하는 누적 주파수 테이블을 통해 호출된다. 산술적 코더는 측정하면서 태그를 생성하는 정수를 구현한다. 이하의 의사 C-코드는 사용된 알고리즘을 묘사한다.
/*helper funtions*/
bool arith_first_symbol(void);
/* Return TRUE if it is the first symbol of the sequence, FALSE otherwise*/
Ushort arith_get_next_bit(void);
/* Get the next bit of the bitstream*/
/* global variables */
low
high
value
/* input variables */
cum_freq[];
cfl;
arith_decode()
{
if(arith_first_symbol())
{
value = 0;
for (i=1; i<=20; i++)
{
value = (val<<1) | arith_get_next_bit();
}
low=0;
high=1048575;
}
range = high-low+1;
cum =((((int64) (value-low+1))<<16)-((int64) 1))/((int64) range);
p = cum_freq-1;
do
{
q=p+(cfl>>1);
if ( *q > cum ) { p=q; cfl++; }
cfl>>=1;
}
while ( cfl>1 );
symbol = p-cum_freq+1;
if(symbol)
high = low + (((int64)range)*((int64)cum_freq[symbol-1]))>>16 - 1;
low += (((int64) range)* ((int64) cum_freq[symbol]))>>16;
for (;;)
{
if ( high<524286) { }
else if ( low>=524286)
{
value -=524286;
low -=524286;
high -=524286;
}
else if ( low>=262143 && high<786429)
{
value -= 262143;
low -= 262143;
high -= 262143;
}
else break;
low += low;
high += high+1;
value = (value<<1) | arith_get_next_bit();
}
return symbol;
}
상기 디코딩된 그룹 인덱스 ng가 탈출 심벌이고, ARITH_ESCAPE, 추가적인 그룹 인덱스 ng는 디코딩되고, 상기 변수 lev는 2만큼 증가한다. 상기 디코딩된 그룹 인덱스가 탈출 심벌이 아니라면, ARITH_ESCAPE, 상기 그룹 내의 구성요소의 숫자 mm 및 그룹 옵셋, og는 상기 테이블 dgroups[]을 검색하여 추정된다.
mm=dgroups[nq]&255
og = dgroups[nq]>>8
그리고 상기 구성요소 인덱스 ne는, 누적된 주파수 테이블인 (arith_cf_ne+((mm*(mm-1))>>1)[]를 포함하는 arith_decode()를 호출함으로써 디코딩된다. 상기 구성요소 인덱스가 디코딩되었을 때, 4-튜플의 가장 중요한 2 비트와이즈판은, 아래와 같은 테이블 dgvector[]을 통해 추출될 수 있다.
a=dgvectors[4*(og+ne)]
b=dgvectors[4*(og+ne)+1]
c=dgvectors[4*(og+ne)+2]
d=dgvectors[4*(og+ne)+3]
그리고 나머지 비트판은, 누적 주파수 테이블 arith_cf_r []를 포함하는 arith_decode()를 호출함으로써 가장 중요한 것부터 가장 중요하지 않은 레벨의 순으로 디코딩된다. 상기 비트판 r은, 아래와 같은 디코딩된 4-튜플을 개량할 수 있다.
a = (a<<1) | (r&1)
b = (b<<1) | ((r>>1)&1)
c = (c<<1) | ((r>>2)&1)
d = (d<<1) | (r>>3)
상기 4-튜플 (a,b,c,d)에 대한 디코딩이 완료되었을 때, 상기 콘텍스트 테이블 q 및 qs는 함수 arith_update_context()를 호출함으로써 업데이트된다.
arith_update_context(a,b,c,d,i,lg)
{
q[1][1+i].a=a;
q[1][1+i].b=b;
q[1][1+i].c=c;
q[1][1+i].d=d;
if ( (a<-4) || (a>=4) || (b<-4) || (b>=4) || (c<-4) || (c>=4)
|| (d<-4) || (d>=4) )
q[1][1+i].v =1024;
else q[1][1+i].v=egroups[4+a][4+b][4+c][4+d];
if(i==lg && core_mode==1){
qs[0]=q[1] [0];
ratio= ((float) lg)/((float)256);
for(j=0; j<256; j++){
k = (int) ((float)) ((j)*ratio);
qs[1+k] = q[1][1+j] ;
}
qs[previous_lg+1]=q[1][lg+1];
previous_lg=256;
}
if(i==lg && core_mode==0){
for(j=0; j<258; j++){
qs[j] = q[1][k];
}
previous_lg=min(1024,lg);
}
}
본 발명의 구현에 필요한 사항에 따라서, 본 발명은 하드웨어 또는 소프트웨어에 구현될 수 있다. 본 발명에 대한 구현은, 전자적으로 읽을 수 있는 제어 신호가 저장되고 프로그램이 작동 가능한 컴퓨터 내에서 구동되며, 상기 창의적 방법이 수행되는 디지털 저장 매체, 특히 디스크, DVD 또는 CD 등을 사용하여 생성될 수 있다. 일반적으로, 본 발명은 기계가 읽을 수 있는 전송 매체에 대한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이다. 여기서 상기 프로그램 코드는 상기 컴퓨터 프로그램이 컴퓨터 내에서 작동할 때, 본 발명을 수행하기 위해 작동된다. 다른 표현으로는, 본 발명은, 상기 컴퓨터 프로그램이 컴퓨터에서 작동하고 있을 때 상기 창의적 방법 중 적어도 하나를 수행하는 프로그램 코드를 포함하는 컴퓨터 프로그램이다.

Claims (17)

  1. 샘플링된 오디오 신호의 다른 시간 또는 주파수 해상도를 나타내는, 계수에 대한 세그먼트를 인코딩하는 오디오 인코더(audio encoder)에 있어서,
    이전의 세그먼트의 기인코딩된 계수를 기반으로한 현재의 세그먼트의 현재 인코딩된 계수에 대한 코딩 콘텍스트를 추론하고, 상기 이전에 인코딩된 계수는 현재 인코딩된 계수와 다른 시간 또는 주파수 해상도를 나타내는 프로세서(110);
    인코딩된 오디오 스트림을 구하기 위해 코딩 콘텍스트를 기반으로 하는 현재의 계수를 엔트로피 인코딩하는 엔트로피 인코더(120);
    를 포함하는 것을 특징으로 하는 오디오 인코더.
  2. 청구항 1에 있어서,
    오디오 스트림으로부터, 상기 세그먼트 내에서 변화하는 스펙트럼 해상도에서 오디오 스트림에 의해서 표현되는 오디오 신호의 스펙트럼 표현을 형성하는 계수의 세그먼트를 제공하기 위한 수단;
    을 추가적으로 포함하는 것을 특징으로 하는 오디오 인코더.
  3. 청구항 2에 있어서,
    상기 엔트로피 인코더(120)는 일 튜플의 스펙트럼 계수 내의 현재 계수를 인코딩하고, 상기 코딩 콘텍스트를 기반으로 하는 튜플의 범위를 예견하는데 사용될 수 있는 것을 특징으로 하는 오디오 인코더.
  4. 청구항 3에 있어서,
    상기 엔트로피 인코더(120)는 기결정된 범위 내에서 나누어진 결과에 맞추기 위해 필요한 정도로, 기결정된 인자에 의해 상기 튜플을 나누고, 상기 튜플이 상기 예측 범위 내에 있지 않은 경우, 다수의 분할, 분할 라마인더(reminder) 및 상기 나누어진 결과를 인코딩하고, 그렇지 않은 경우엔 상기 분할 리마인더 및 상기 분할 결과를 인코딩하는데 사용될 수 있는 것을 특징으로 하는 오디오 인코더.
  5. 청구항 4에 있어서,
    상기 엔트로피 인코더(120)는, 코딩 콘텍스트 또는 균일 확률 분포를 기반으로 하는 확률 분포인 일 이상의 코드워드의 그룹에 대한 그룹 인덱스를 이용하여 인코딩하고, 상기 그룹이 일 이상의 코드워드를 포함하는 경우, 상기 그룹 내의 코드워드에 관한 구성요소 인덱스를 사용하여 상기 분할의 결과 또는 상기 튜플을 인코딩하고, 오직 분할을 지시하기 위해 사용되는 특별한 그룹 인덱스인 다수의 탈출 심벌에 의한 분할 숫자를 인코딩하며, 산술 코딩 규정을 사용하여 균일 확률 분포를 기초로 한 분할에 대한 리마인더를 인코딩하는 것을 특징으로 하는 오디오 인코더.
  6. 청구항 5에 있어서,
    상기 엔트로피 인코더(120)는, 탈출 심벌을 포함하는 심벌 알파벳 및 사용 가능한 일련의 그룹 인덱스에 관련된 그룹 심벌을 사용하여 일련의 심벌을 인코딩된 오디오 스트림으로 인코딩하고, 상기 심벌 알파벳은 상기 리마인더의 다른 값들을 포함하고 있는 것을 특징으로 하는 오디오 인코더.
  7. 청구항 1 내지 6에 있어서,
    상기 프로세서(110) 및 상기 엔트로피 인코더(120)는, 상기 이전의 세그먼트가 현재의 세그먼트보다 더 얇은 스펙트럼 해상도를 디스플레이할 때 이전의 세그먼트의 스펙트럼 계수를 다운샘플링하는 것을 기반으로 하여 작동되도록 설정되거나 또는 상기 이전의 세그먼트가 현재의 세그먼트보다 더 굵은 스펙트럼 해상도를 디스플레이할 때, 이전의 세그먼트의 스펙트럼 계수를 업샘플링하는 것을 기반으로 작동되도록 설정될 수 있는 것을 특징으로 하는 오디오 인코더.
  8. 샘플링된 오디오 신호의 다른 시간 또는 주파수 해상도를 나타내는, 계수에 대한 세그먼트를 인코딩하는 방법에 있어서,
    현재 인코딩된 계수와 다른 시간 또는 주파수 해상도를 나타내는 이전의 세그먼트의 기인코딩된 계수를 기반으로 하여 현재의 세그먼트의 현재 인코딩된 계수를 위한 코딩 콘텍스트가 추출되는 단계; 및
    인코딩된 오디오 스트림을 구하기 위하여 상기 코딩 콘텍스트를 기반으로 하여 현재의 계수를 엔트로피 인코딩하는 단계;
    를 포함하고,
    상기 이전에 디코딩된 계수는 현재의 디코딩된 계수와 다른 시간 또는 주파수 해상도를 나타내는 것을 특징으로 하는 오디오 디코딩 방법.
  9. 샘플링된 오디오 신호의 다른 시간 또는 주파수 해상도를 나타내는 계수의 세그먼트를 구하기 위해 인코딩된 오디오 스트림을 디코딩하는 오디오 디코더(200)에 있어서,
    이전의 세그먼트의 기(旣)디코딩된 계수를 기반으로 하여 현재의 세그먼트의 현재의 디코딩된 계수에 대한 코딩 콘텍스트를 추출하는 프로세서(210); 및
    상기 코딩 콘텍스트 및 상기 인코딩된 오디오 스트림을 기반으로 하여 현재의 계수를 엔트로피 디코딩하는 엔트로피 디코더(220);
    를 포함하고,
    상기 디코딩된 계수는 현재 디코딩된 계수와 다른 시간 또는 주파수 해상도를 나타내는 것을 특징으로 하는 오디오 디코더.
  10. 청구항 9에 있어서,
    상기 프로세서(210)은 상기 이전의 계수를 기반으로한 코딩 콘텍스트를 추론하기 위해 사용될 수 있고,
    상기 계수는 상기 세그먼트 사이에서 변화하는 스펙트럼 해상도에서, 상기 오디오 스트림에 의해 표현되는 오디오 신호의 스펙트럼 표현을 형성하는 것을 특징으로 하는 오디오 디코더.
  11. 청구항 9 또는 청구항 10에 있어서,
    상기 프로세서는, 이전의 세그먼트 및 선택적으로 현재의 세그먼트에서 기 디코딩된, 근접한 스펙트럼 계수에 따라, 상기 현재의 계수에 대해 스펙트럼 대역 당 코딩 콘텍스트를 추출하기 위해 사용될 수 있는 것을 특징으로 하는 오디오 디코더.
  12. 청구항 11에 있어서,
    상기 엔트로피 디코더는, 상기 코딩 콘텍스트로부터 추론된 확률 분포에 따라 인코딩된 오디오 스트림으로부터, 균일 확률 분포에 따른 일 또는 그 이상의 코드워드의 그룹을 나타내는 그룹 인덱스를 디코딩하고, 만약 상기 그룹 인덱스가 일 이상의 코드워드를 포함하는 그룹을 지시하는 경우에는 상기 인코딩된 오디오 스트림으로부터 구성요소 인덱스를 디코딩하고, 상기 그룹 인덱스 및 상기 구성요소 인덱스를 기반으로 하여 현재의 세그먼트의 스펙트럼 계수의 튜플을 추출하여, 스펙트럼 계수의 튜플로부터 스펙트럼 도메인 표현을 구하는 것을 특징으로 하는 오디오 디코더.
  13. 청구항 12에 있어서,
    상기 엔트로피 디코더(220)는, 탈출 심벌을 포함하는 심벌 알파벳 및 일련의 사용 가능한 그룹 인덱스에 대응되는 그룹 심벌을 사용하여, 코딩 콘텍스트로부터 추출된 확률 분포에 따라 인코딩된 오디오 스트림으로부터 일련의 심벌을 디코딩하고, 일련의 심벌의 그룹 심벌이 상응하는 가능한 그룹 인덱스 및 구성요소 인덱스에 따라 스펙트럼 계수의 예비적 튜플을 추출하며, 스펙트럼 계수의 튜플을 구하기 위해 일련의 심벌 속에서 다수의 탈출 심벌에 의존하는 인자와 예비적 튜플을 결합하는데 사용할 수 있는 것을 특징으로 하는 오디오 디코더.
  14. 청구항 13에 있어서,
    상기 엔트로피 디코더(220)는 산술 코딩 규칙을 이용하여 균일 확률 분포를 기반으로 하는 인코딩된 오디오 스트림으로부터 분할 리마인더를 디코딩하고, 스펙트럼 계수의 튜플을 구하기 위하여 상기 리마인더에 상기 결합된 예비적 튜플을 추가할 수 있는 것을 특징으로 하는 오디오 디코더.
  15. 청구항 14에 있어서,
    상기 프로세서(210) 및 상기 엔트로피 인코더(220)는, 상기 이전 세그먼트가 현재의 세그먼트가 더 얇은 스펙트럼 해상도를 디스플레이하는 경우에는 이전 세그먼트의 스펙트럼 계수에 대한 다운 샘플링을 기반으로 작동하도록 설정되고, 이전 세그먼트가 현재의 세그먼트보다 더 굵은 스펙트럼 해상도를 디스플레이하는 경우에는 이전 세그먼트의 스펙트럼 계수에 대한 업 샘플링을 기반으로 작동하도록 설정될 수 있는 것을 특징으로 하는 오디오 디코더.
  16. 디코딩된 오디오 샘플을 나타내는 계수의 세그먼트를 구하기 위하여 인코딩된 오디오 샘플을 디코딩하는 방법에 있어서,
    이전의 세그먼트의 기디코딩된 계수를 기반으로 하여 현재의 세그먼트의 현재의 디코딩된 계수에 대한 코딩 콘텍스트를 추출하는 단계; 및
    상기 코딩 콘텍스트 및 상기 인코딩된 오디오 스트림을 기반으로 하여 현재의 계수를 엔트로피 디코딩하는 단계;
    를 포함하고,
    상기 이전에 디코딩된 계수는 현재의 디코딩된 계수와 다른 시간 또는 주파수 해상도를 나타내는 것을 특징으로 하는 오디오 디코딩 방법.
  17. 컴퓨터 또는 프로세서에서 수행되고, 청구항 8 또는 16의 수단 중의 어느 하나를 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램.
KR1020117000610A 2008-07-11 2009-05-18 오디오 인코더 및 오디오 디코더 KR101456641B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7984208P 2008-07-11 2008-07-11
US61/079,842 2008-07-11
US10382008P 2008-10-08 2008-10-08
US61/103,820 2008-10-08
PCT/EP2009/003521 WO2010003479A1 (en) 2008-07-11 2009-05-18 Audio encoder and audio decoder

Publications (2)

Publication Number Publication Date
KR20110040822A true KR20110040822A (ko) 2011-04-20
KR101456641B1 KR101456641B1 (ko) 2014-11-04

Family

ID=40886050

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117000610A KR101456641B1 (ko) 2008-07-11 2009-05-18 오디오 인코더 및 오디오 디코더

Country Status (22)

Country Link
US (6) US8930202B2 (ko)
EP (9) EP2301019B1 (ko)
JP (1) JP5606433B2 (ko)
KR (1) KR101456641B1 (ko)
CN (1) CN102089813B (ko)
AR (1) AR072422A1 (ko)
AU (1) AU2009267543B2 (ko)
BR (4) BR122021008239B1 (ko)
CA (1) CA2729925C (ko)
CO (1) CO6351831A2 (ko)
DK (1) DK3573056T3 (ko)
ES (3) ES2731424T3 (ko)
FI (1) FI3573056T3 (ko)
HK (1) HK1253032A1 (ko)
MX (1) MX2011000379A (ko)
MY (1) MY160260A (ko)
PL (3) PL3300076T3 (ko)
PT (3) PT2301019T (ko)
RU (1) RU2487427C2 (ko)
TW (1) TWI449033B (ko)
WO (1) WO2010003479A1 (ko)
ZA (1) ZA201009258B (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991610B2 (en) * 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
RU2491658C2 (ru) 2008-07-11 2013-08-27 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Синтезатор аудиосигнала и кодирующее устройство аудиосигнала
PL2346030T3 (pl) 2008-07-11 2015-03-31 Fraunhofer Ges Forschung Koder audio, sposób kodowania sygnału audio oraz program komputerowy
EP2301019B1 (en) * 2008-07-11 2017-10-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
EP2315358A1 (en) 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
PT2491553T (pt) 2009-10-20 2017-01-20 Fraunhofer Ges Forschung Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo
MX2012008075A (es) * 2010-01-12 2013-12-16 Fraunhofer Ges Forschung Codificador de audio, decodificador de audio, metodo para codificar e informacion de audio, metodo para decodificar una informacion de audio y programa de computacion utilizando una modificacion de una representacion de un numero de un valor de contexto numerico previo.
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
ES2461183T3 (es) 2010-03-10 2014-05-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación
ES2937066T3 (es) 2010-07-20 2023-03-23 Fraunhofer Ges Forschung Decodificador de audio, procedimiento y programa informático para decodificación de audio
KR101748760B1 (ko) 2011-03-18 2017-06-19 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에.베. 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치
TWI451746B (zh) * 2011-11-04 2014-09-01 Quanta Comp Inc 視訊會議系統及視訊會議方法
US10844689B1 (en) 2019-12-19 2020-11-24 Saudi Arabian Oil Company Downhole ultrasonic actuator system for mitigating lost circulation
CN107403624B (zh) 2012-05-18 2021-02-12 杜比实验室特许公司 用于音频信号的动态范围调整及控制的方法和设备
JP6065452B2 (ja) * 2012-08-14 2017-01-25 富士通株式会社 データ埋め込み装置及び方法、データ抽出装置及び方法、並びにプログラム
US9280975B2 (en) * 2012-09-24 2016-03-08 Samsung Electronics Co., Ltd. Frame error concealment method and apparatus, and audio decoding method and apparatus
KR20140089871A (ko) * 2013-01-07 2014-07-16 삼성전자주식회사 대화형 서버, 그 제어 방법 및 대화형 시스템
JP6146069B2 (ja) 2013-03-18 2017-06-14 富士通株式会社 データ埋め込み装置及び方法、データ抽出装置及び方法、並びにプログラム
SG11201510164RA (en) 2013-06-10 2016-01-28 Fraunhofer Ges Forschung Apparatus and method for audio signal envelope encoding, processing and decoding by splitting the audio signal envelope employing distribution quantization and coding
PT3008726T (pt) 2013-06-10 2017-11-24 Fraunhofer Ges Forschung Aparelho e método de codificação, processamento e descodificação de envelope de sinal de áudio por modelação da representação de soma cumulativa empregando codificação e quantização de distribuição
EP2830055A1 (en) * 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Context-based entropy coding of sample values of a spectral envelope
EP2830061A1 (en) 2013-07-22 2015-01-28 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an encoded audio signal using temporal noise/patch shaping
WO2016142002A1 (en) * 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal
GB2559199A (en) * 2017-01-31 2018-08-01 Nokia Technologies Oy Stereo audio signal encoder
CN115050378B (zh) * 2022-05-19 2024-06-07 腾讯科技(深圳)有限公司 音频编解码方法及相关产品

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253055A (en) * 1992-07-02 1993-10-12 At&T Bell Laboratories Efficient frequency scalable video encoding with coefficient selection
US5710562A (en) 1995-08-31 1998-01-20 Ricoh Company Ltd. Method and apparatus for compressing arbitrary data
US5852806A (en) * 1996-03-19 1998-12-22 Lucent Technologies Inc. Switched filterbank for use in audio signal coding
EP0990368B1 (en) * 1997-05-08 2002-04-24 STMicroelectronics Asia Pacific Pte Ltd. Method and apparatus for frequency-domain downmixing with block-switch forcing for audio decoding functions
US6226608B1 (en) * 1999-01-28 2001-05-01 Dolby Laboratories Licensing Corporation Data framing for adaptive-block-length coding system
IL160386A (en) * 1999-04-06 2005-11-20 Broadcom Corp Video encoding and video/audio/data multiplexing device
JP2004522198A (ja) * 2001-05-08 2004-07-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 音声符号化方法
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7460993B2 (en) * 2001-12-14 2008-12-02 Microsoft Corporation Adaptive window-size selection in transform coding
WO2003077425A1 (fr) * 2002-03-08 2003-09-18 Nippon Telegraph And Telephone Corporation Procedes de codage et de decodage signaux numeriques, dispositifs de codage et de decodage, programme de codage et de decodage de signaux numeriques
US7110941B2 (en) * 2002-03-28 2006-09-19 Microsoft Corporation System and method for embedded audio coding with implicit auditory masking
US7275036B2 (en) 2002-04-18 2007-09-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding a time-discrete audio signal to obtain coded audio data and for decoding coded audio data
KR100462611B1 (ko) 2002-06-27 2004-12-20 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US7502743B2 (en) * 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
US7299190B2 (en) * 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
EP2282310B1 (en) * 2002-09-04 2012-01-25 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
ATE427623T1 (de) 2002-12-20 2009-04-15 Nokia Corp Verfahren und vorrichtung zur organisation von benutzerseitiger information mit meta-information
DE10328777A1 (de) * 2003-06-25 2005-01-27 Coding Technologies Ab Vorrichtung und Verfahren zum Codieren eines Audiosignals und Vorrichtung und Verfahren zum Decodieren eines codierten Audiosignals
US7343291B2 (en) * 2003-07-18 2008-03-11 Microsoft Corporation Multi-pass variable bitrate media encoding
US7509161B2 (en) * 2003-10-22 2009-03-24 Instrumentarium Corporation Method and apparatus for determining the cerebral state of a patient using generalized spectral entropy of the EEG signal
DE102004007200B3 (de) * 2004-02-13 2005-08-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiocodierung
US20050185541A1 (en) 2004-02-23 2005-08-25 Darren Neuman Method and system for memory usage in real-time audio systems
KR20050087956A (ko) * 2004-02-27 2005-09-01 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
KR100561869B1 (ko) * 2004-03-10 2006-03-17 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
TWI246256B (en) * 2004-07-02 2005-12-21 Univ Nat Central Apparatus for audio compression using mixed wavelet packets and discrete cosine transformation
WO2006006936A1 (en) * 2004-07-14 2006-01-19 Agency For Science, Technology And Research Context-based encoding and decoding of signals
JP4937753B2 (ja) * 2004-09-06 2012-05-23 パナソニック株式会社 スケーラブル符号化装置およびスケーラブル符号化方法
SE0402651D0 (sv) * 2004-11-02 2004-11-02 Coding Tech Ab Advanced methods for interpolation and parameter signalling
US7428342B2 (en) * 2004-12-17 2008-09-23 Microsoft Corporation Reversible overlap operator for efficient lossless data compression
US7991610B2 (en) * 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
US7788106B2 (en) * 2005-04-13 2010-08-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding with compact codebooks
US7196641B2 (en) * 2005-04-26 2007-03-27 Gen Dow Huang System and method for audio data compression and decompression using discrete wavelet transform (DWT)
US8050915B2 (en) * 2005-07-11 2011-11-01 Lg Electronics Inc. Apparatus and method of encoding and decoding audio signals using hierarchical block switching and linear prediction coding
US7539612B2 (en) * 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information
US20070036228A1 (en) * 2005-08-12 2007-02-15 Via Technologies Inc. Method and apparatus for audio encoding and decoding
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US7974713B2 (en) * 2005-10-12 2011-07-05 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Temporal and spatial shaping of multi-channel audio signals
CN101390443B (zh) * 2006-02-21 2010-12-01 皇家飞利浦电子股份有限公司 音频编码和解码
KR101244310B1 (ko) * 2006-06-21 2013-03-18 삼성전자주식회사 광대역 부호화 및 복호화 방법 및 장치
KR101346358B1 (ko) * 2006-09-18 2013-12-31 삼성전자주식회사 대역폭 확장 기법을 이용한 오디오 신호의 부호화/복호화방법 및 장치
US7275936B1 (en) * 2006-09-22 2007-10-02 Lotes Co., Ltd. Electrical connector
US20080097757A1 (en) * 2006-10-24 2008-04-24 Nokia Corporation Audio coding
BRPI0808774A2 (pt) * 2007-03-14 2014-08-19 Nippon Telegraph & Telephone Método de estimativa de quantidade de código, e aparelho, programa e meio de armazenamento para o mesmo
US20080294446A1 (en) 2007-05-22 2008-11-27 Linfeng Guo Layer based scalable multimedia datastream compression
EP2015293A1 (en) * 2007-06-14 2009-01-14 Deutsche Thomson OHG Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US8515767B2 (en) * 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8447591B2 (en) * 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
PL2346030T3 (pl) * 2008-07-11 2015-03-31 Fraunhofer Ges Forschung Koder audio, sposób kodowania sygnału audio oraz program komputerowy
EP2301019B1 (en) * 2008-07-11 2017-10-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
EP2144230A1 (en) * 2008-07-11 2010-01-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Low bitrate audio encoding/decoding scheme having cascaded switches
US8660176B2 (en) * 2008-09-26 2014-02-25 Qualcomm Incorporated Resolving geometric relationships among video data units
PT2491553T (pt) * 2009-10-20 2017-01-20 Fraunhofer Ges Forschung Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo
MX2012008075A (es) * 2010-01-12 2013-12-16 Fraunhofer Ges Forschung Codificador de audio, decodificador de audio, metodo para codificar e informacion de audio, metodo para decodificar una informacion de audio y programa de computacion utilizando una modificacion de una representacion de un numero de un valor de contexto numerico previo.
KR101831289B1 (ko) * 2013-10-18 2018-02-22 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에.베. 오디오 신호의 스펙트럼의 스펙트럼 계수들의 코딩

Also Published As

Publication number Publication date
TWI449033B (zh) 2014-08-11
TW201007698A (en) 2010-02-16
PL3573056T3 (pl) 2022-12-19
BR122021008239B1 (pt) 2022-03-03
US11670310B2 (en) 2023-06-06
US11942101B2 (en) 2024-03-26
PL3300076T3 (pl) 2019-11-29
EP4224472A1 (en) 2023-08-09
US20150194160A1 (en) 2015-07-09
BRPI0910796B1 (pt) 2021-07-13
EP2301019B1 (en) 2017-10-04
PT3573056T (pt) 2022-10-24
EP3937167B1 (en) 2023-05-10
BR122021007875B1 (pt) 2022-02-22
US20190189136A1 (en) 2019-06-20
AU2009267543B2 (en) 2013-01-31
EP3573056B1 (en) 2022-08-17
ES2934052T3 (es) 2023-02-16
JP5606433B2 (ja) 2014-10-15
CA2729925A1 (en) 2010-01-14
US20230260524A1 (en) 2023-08-17
WO2010003479A1 (en) 2010-01-14
CN102089813A (zh) 2011-06-08
BR122021007798B1 (pt) 2021-10-26
PL2301019T3 (pl) 2018-04-30
CA2729925C (en) 2016-03-29
CN102089813B (zh) 2013-11-20
EP4224471A2 (en) 2023-08-09
EP4376306A2 (en) 2024-05-29
PT3300076T (pt) 2019-07-17
EP4224471A3 (en) 2023-09-06
JP2011527443A (ja) 2011-10-27
EP2301019A1 (en) 2011-03-30
EP4376305A2 (en) 2024-05-29
ES2651437T3 (es) 2018-01-26
EP4369609A3 (en) 2024-05-22
US10685659B2 (en) 2020-06-16
US10242681B2 (en) 2019-03-26
US8930202B2 (en) 2015-01-06
US20110173007A1 (en) 2011-07-14
EP3300076B1 (en) 2019-04-24
EP4376307A2 (en) 2024-05-29
PT2301019T (pt) 2017-12-26
FI3573056T3 (fi) 2022-11-30
MX2011000379A (es) 2011-02-25
BRPI0910796A2 (pt) 2020-11-03
US20200294515A1 (en) 2020-09-17
EP3937167A1 (en) 2022-01-12
ZA201009258B (en) 2011-11-30
HK1253032A1 (zh) 2019-06-06
RU2487427C2 (ru) 2013-07-10
ES2731424T3 (es) 2019-11-15
MY160260A (en) 2017-02-28
US20230326470A1 (en) 2023-10-12
EP4376305A3 (en) 2024-07-03
EP3300076A1 (en) 2018-03-28
DK3573056T3 (da) 2022-10-03
EP3573056A1 (en) 2019-11-27
AR072422A1 (es) 2010-08-25
EP4369609A2 (en) 2024-05-15
CO6351831A2 (es) 2011-12-20
AU2009267543A1 (en) 2010-01-14
RU2011102424A (ru) 2012-07-27
EP4376306A3 (en) 2024-07-03
KR101456641B1 (ko) 2014-11-04

Similar Documents

Publication Publication Date Title
KR101456641B1 (ko) 오디오 인코더 및 오디오 디코더
CN102089812B (zh) 用以使用混叠切换方案将音频信号编码/解码的装置与方法
JP4394578B2 (ja) 可変ビットレート通話符号化における線形予測パラメータの強力な予測ベクトル量子化方法と装置
ES2951482T3 (es) Codificador de audio y decodificador de audio
BR122021006965B1 (pt) Codificador de áudio e decodificador de áudio
BR122021007770B1 (pt) Codificador de áudio e decodificador de áudio

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
E801 Decision on dismissal of amendment
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170926

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181015

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191015

Year of fee payment: 6