KR101445294B1 - 코딩 컨텍스트의 피치 의존 적응을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 오디오 신호 디코딩 방법, 오디오 신호 인코딩 방법, 및 컴퓨터 프로그램 - Google Patents

코딩 컨텍스트의 피치 의존 적응을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 오디오 신호 디코딩 방법, 오디오 신호 인코딩 방법, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101445294B1
KR101445294B1 KR1020127026461A KR20127026461A KR101445294B1 KR 101445294 B1 KR101445294 B1 KR 101445294B1 KR 1020127026461 A KR1020127026461 A KR 1020127026461A KR 20127026461 A KR20127026461 A KR 20127026461A KR 101445294 B1 KR101445294 B1 KR 101445294B1
Authority
KR
South Korea
Prior art keywords
frequency
context
time
audio signal
representation
Prior art date
Application number
KR1020127026461A
Other languages
English (en)
Other versions
KR20130018761A (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 KR20130018761A publication Critical patent/KR20130018761A/ko
Application granted granted Critical
Publication of KR101445294B1 publication Critical patent/KR101445294B1/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
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • 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
    • 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
    • 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/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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals

Landscapes

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

Abstract

인코딩된 스펙트럼 표현(ac_spectral_data[]) 및 인코딩된 시간 왜곡 정보(tw_data[])를 포함하는 인코딩된 오디오 신호 표현(152)에 기초하여 디코딩된 오디오 신호 표현(154)을 제공하기 위한 오디오 신호 디코더(150)는, 디코딩된 스펙트럼 값들(162, 297, x_ac_dec[])을 얻기 위해, 컨텍스트 상태에 따라 하나 이상의 스펙트럼 값들 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부(m)를 기술하는 코드워드(acod_m)를 디코딩하기 위해 구성된 컨텍스트 기반 스펙트럼 값 디코더(160)를 포함한다. 오디오 신호 디코더는 또한 하나 이상의 이전에 디코딩된 스펙트럼 값들(162, 297)에 따라 현재의 컨텍스트 상태(164, c)를 결정하기 위해 구성된 컨텍스트 상태 결정기(170)를 포함한다. 오디오 신호 디코더는 또한 주어진 오디오 프레임과 연관되고 컨텍스트 기반 스펙트럼 값 디코더에 의해 그리고 시간 왜곡 정보에 따라 제공된 디코딩된 스펙트럼 값들(162)의 셋트에 기초하여 주어진 오디오 프레임의 시간이 왜곡된 시간 도메인 표현(182)을 제공하기 위해 구성된 시간이 왜곡된 시간 도메인 표현(182)을 포함한다. 컨텍스트 상태 결정기(170)는 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 컨텍스트 상태의 결정을 적응시키기 위해 구성된다. 오디오 신호 인코더는 비슷한 구상을 적용한다.

Description

코딩 컨텍스트의 피치 의존 적응을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 오디오 신호 디코딩 방법, 오디오 신호 인코딩 방법, 및 컴퓨터 프로그램{AUDIO SIGNAL DECODER, AUDIO SIGNAL ENCODER, METHOD FOR DECODING AN AUDIO SIGNAL, METHOD FOR ENCODING AN AUDIO SIGNAL AND COMPUTER PROGRAM USING A PITCH-DEPENDENT ADAPTATION OF A CODING CONTEXT}
본 발명에 따른 실시예들은 인코딩된 오디오 신호 표현에 기초하여 디코딩된 오디오 신호 표현을 제공하기 위한 오디오 신호 디코더에 관한 것이다.
본 발명에 따른 다른 실시예들은 입력 외디오 신호의 인코딩된 표현을 제공하기 위한 오디오 신호 인코더에 관한 것이다.
본 발명에 따른 실시예들은 인코딩된 오디오 신호 표현에 기초하여 디코딩된 오디오 신호 표현을 제공하기 위한 방법에 관한 것이다.
본 발명에 따른 다른 실시예들은 입력 오디오 신호의 인코딩된 표현을 제공하기 위한 방법에 관한 것이다.
본 발명에 따른 다른 실시예들은 컴퓨터 프로그램들에 관한 것이다.
본 발명에 따른 다른 실시예들은, (간단히 TW-MDCT로 가리켜지는) 시간이 왜곡된(warped) 수정 이산 코사인 변환(time-warped-modified-discrete-cosine-transform)과 결합하여 사용될 수 있는, 왜곡 정보를 이용하여 산술 코더의 컨텍스트(context)를 적응시키기 위한 구상에 관한 것이다.
다음에서는, 그 구상들이 본 발명의 실시예들 중 몇몇과 함께 적용될 수 있는, 시간이 왜곡된 오디오 인코딩 분야에 대한 간단한 소개가 주어질 것이다.
최근 수년 동안에, 오디오 신호를 주파수 도메인 표현으로 변환시키고, 예를 들어, 지각적 마스킹 임계치들(masking thresholds)을 고려하여, 주파수 도메인 표현을 효율적으로 인코딩하기 위해 기술들이 개발되어 왔다. 이 오디오 신호 인코딩 구상은, 만약 인코딩된 스펙트럼 계수들의 셋트가 전송되기 위한 블록 길이가 길고, 만약 오직 비교적 적은 수의 스펙트럼 계수들이 전역(global) 마스킹 임계치의 아주 위에 있는 반면 많은 수의 스펙트럼 계수들이 전역 마스킹 임계치 근처나 아래에 있어서 무시될 수 있는(또는 최소 코드 길이로 코딩될 수 있는) 경우에 특히 효율적이다. 상기 조건을 가진 스펙트럼은 때때로 성긴(sparse) 스펙트럼이라고 불린다.
예를 들어, 코사인 기반 또는 사인(sine) 기반 변조 랩핑(lapping) 변환들은 그것들의 에너지 압축 속성들로 인해 소스 코딩을 위한 응용들에서 종종 사용된다. 즉, 일정한 기본 주파수들(피치)을 갖는 고조파 음조들에 대해, 효율적인 신호 표현을 가져오는, 적은 수의 스펙트럼 구성요소들(서브 대역들)로 신호 에너지를 집중시킨다.
일반적으로, 신호의 (기본) 피치는 신호의 스펙트럼과 구별할 수 있는 가장 낮은 우세(dominant) 주파수일 것으로 이해될 것이다. 통상적인 음성 모델에서, 피치는 사람의 목에 의해 변조된 여자(excitation, 勵磁) 신호의 주파수이다. 만약 오직 하나의 단일 기본 주파수만이 나타내어진다면, 스펙트럼은 단지 기본 주파수 및 오버톤만을 포함하여 극히 간단할 것이다. 그러한 스펙트럼은 매우 효율적으로 인코딩될 수 있다. 그러나, 변화하는 피치를 갖는 신호들에 있어서, 각각의 고조파 구성요소들에 상응하는 에너지는 여러 변환 계수들에 걸쳐 퍼지므로, 코딩 효율의 감소를 가져온다.
코딩 효율의 감소를 극복하기 위해, 인코딩되는 오디오 신호는 균일하지 않은 시간적 그리드(non-uniform temporal grid)로 효율적으로 재샘플링된다. 뒤이은 처리에서, 비균일 재샘플링에 의해 얻어진 샘플 위치들은 마치 균일한 시간적 그리드로 값들을 표현하는 것처럼 처리된다. 이 연산은 보통 "시간 왜곡"이라는 어구로 표시된다. 샘플링 횟수는 피치의 시간적 변동에 따라 유리하게 선택될 수 있어, 오디오 신호의 시간이 왜곡된 버전에서의 피치 변동은 (시간이 왜곡되기 이전의) 오디오 신호의 원래의 버전에서의 피치 변동보다 작다. 오디오 신호의 시간 왜곡 이후에, 오디오 신호의 시간이 왜곡된 버전은 주파수 도메인으로 변환된다. 피치 의존 시간 왜곡은 시간이 왜곡된 오디오 신호의 주파수 도메인 표현이 일반적으로 원래(시간이 왜곡되지 않은 오디오 신호)의 주파수 도메인 표현보다 훨씬 적은 수의 스펙트럼 구성요소들로의 에너지 압축을 보이는 효과를 갖는다.
디코더 측에서 시간이 왜곡된 오디오 신호의 주파수 도메인 표현이 시간 도메인으로 변환되어, 시간이 왜곡된 오디오 신호의 시간 도메인 표현이 디코더 측에서 이용 가능하다. 그러나, 디코더 측에서 복원된 시간이 왜곡된 오디오 신호의 시간 도메인 표현에서, 인코더 측에 입력된 오디오 신호의 원래의 피치 변동들은 포함되지 않는다. 그에 따라, 아직 시간이 왜곡된 오디오 신호의 디코더 측에서 복원도 시간 도메인 표현의 재샘플링에 의해 다른 시간 왜곡이 적용된다.
디코더에서 인코더 측에 입력된 오디오 신호의 좋은 복원을 얻기 위해, 디코더 측 시간 왜곡이 적어도 거의 인코더 측 시간 왜곡에 대한 역 연산인 것이 바람직하다. 적절한 시간 왜곡을 얻기 위해, 디코더 측 시간 왜곡의 조정을 가능하게 하는, 디코더 측에서 이용 가능한 정보를 갖는 것이 바람직하다.
일반적으로 오디오 신호 인코더로부터 오디오 신호 디코더로 그러한 정보를 전할 것이 요구되므로, 디코더 측에서 요구된 시간 왜곡 정보의 신뢰할 수 있는 복원을 여전히 가능하게 하면서 이 전송을 위해 요구된 비트레이트를 작게 유지하는 것이 바람직하다.
또한, 스펙트럼 값들을 인코딩 또는 디코딩할 때 코딩 효율은 컨텍스트 의존 인코더 또는 컨텍스트 의존 디코더의 사용에 의해 때때로 증가된다.
그러나, 오디오 인코더 또는 오디오 디코더의 코딩 효율은 종종, 비록 시간 왜곡 구상이 적용된다 할지라도, 기본 주파수 또는 피치의 변동이 있을 때에는 비교적 낮은 것으로 확인됐다.
이러한 상황을 감안하여, 기본 주파수의 변동이 있을 때에도 좋은 코딩 효율을 가능하게 하는 구상을 갖고자 하는 요구가 있다.
본 발명에 따른 일 실시예는 인코딩된 스펙트럼 표현 및 인코딩된 시간 왜곡 정보를 포함하는 인코딩된 오디오 신호 표현에 기초하여 디코딩된 오디오 시간 표현을 제공하기 위한 오디오 신호 디코더를 고안한다. 오디오 신호 디코더는, 디코딩된 스펙트럼 값들을 얻기 위해, 컨텍스트 상태에 따라 하나 이상의 스펙트럼 값들 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 기술하는 코드워드를 디코딩하기 위해 구성된 컨텍스트 기반 스펙트럼 값 디코더를 포함한다. 오디오 신호 디코더는 또한 하나 이상의 이전에 디코딩된 스펙트럼 값들에 따라 현재의 컨텍스트 상태를 결정하기 위해 구성된 컨텍스트 상태 결정기를 포함한다. 오디오 신호 디코더는 또한 주어진 오디오 프레임과 연관되고 컨텍스트 기반 스펙트럼 값 결정기에 의해서 그리고 시간 왜곡 정보에 따라 제공된 디코딩된 스펙트럼 값들의 셋트에 기초하여 오디오 프레임의 시간이 왜곡된 시간 도메인 표현을 제공하기 위해 구성된 시간 왜곡 주파수 도메인 대 시간 도메인 변환기를 포함한다. 컨텍스트 상태 결정기는 뒤이은 프레임들 사이의 기본 주파수의 변화에 컨텍스트 상태의 결정을 적응시키기 위해 구성된다.
본 발명에 따른 이 실시예는, (많은 경우에 피치의 변동과 동등한) 시간이 지남에 따른 기본 주파수의 변화가 주어진 오디오 프레임의 스펙트럼이 일반적으로 (주어진 오디오 프레임에 앞서는) 이전의 오디오 프레임의 스펙트럼의 주파수가 스케일링된 버전과 유사하다는 효과를 갖기 때문에, 시간 이형(variant) 기본 주파수를 갖는 오디오 신호가 있을 때에 컨텍스트 기반 스펙트럼 값 디코더에 의해 달성되는, 코딩 효율은, 만약 컨텍스트 상태가 뒤이은 프레임들 사이의 기본 주파수의 변화에 적응된다면 개선된다는 결과에 기초하여, 기본 주파수의 변화에 따른 컨텍스트 결정의 적응이 코딩 효율을 개선시키기 위해 상기 유사성을 이용하는 것을 가능하게 한다.
다시 말해, 컨텍스트 기반 스펙트럼 값 코딩의 코딩 효율(또는 디코딩 효율)은 두 개의 뒤이은 프레임들 사이의 기본 주파수의 상당한 변화가 있을 때에는 비교적 좋지 못하고, 그러한 상황에서 컨텍스트 상태의 결정을 적응시킴으로써 코딩 효율이 개선될 수 있는 것으로 확인됐다. 컨텍스트 상태의 결정의 적응은, 예를 들어, 일반적으로 시간이 지남에 따른 기본 주파수의 변화가 있을 때에 나타나는 스펙트럼의 주파수 스케일링과 같은 이전의 오디오 프레임과 현재의 오디오 프레임의 스펙트럼 사이의(즉, 두 오디오 프레임들 사이의) 체계적인 차이들도 고려하면서, 이전의 오디오 프레임과 현재의 오디오 프레임 사이의 유사성들을 이용하는 것을 가능하게 한다.
요약하면, (뒤이은 프레임들 사이의 기본 주파수의 변화를 기술하는 정보가 오디오 신호 인코더 또는 디코더의 시간 왜곡 특징들을 이용하여 오디오 비트스트림에서 어떻게는 이용 가능하다고 가정하고) 본 발명에 따른 이 실시예는 추가적인 사이트 정보 또는 비트레이트를 요구하지 않으면서 코딩 효율을 개선시키도록 돕는다.
일 바람직한 실시예에서, 시간 왜곡 주파수 도메인 대 시간 도메인 변환기는 주어진 오디오 프레임과 연관되고 컨텍스트 기반 스펙트럼 값 디코더에 의해 제공된 디코딩된 스펙트럼 값들의 셋트에 기초하여 주어진 오디오 프레임의 시간 도메인 표현을 제공하기 위해 구성된 (시간이 왜곡되지 않는) 정상(normal) 주파수 도메인 대 시간 도메인 변환기, 및 주어진 오디오 프레임의 재샘플링된(시간이 왜곡된) 시간 도메인 표현을 얻기 위해, 시간 왜곡 정보에 기초하여, 주어진 오디오 프레임의 시간 도메인 표현, 또는 그것의 처리된 버전을 재샘플링하기 위해 구성된 시간 왜곡 재샘플러를 포함한다. 그러한 시간 왜곡 주파수 도메인 대 시간 도메인 변환기의 구현은 "표준" 주파수 도메인 대 시간 도메인 변환기에 의존하기 때문에 구현하기 쉽고, 기능 확장으로서, 그 기능이 주파수 도메인 대 시간 도메인 변환기와 부관할 수 있는 시간 왜곡 재샘플러를 포함한다. 그에 따라, 주파수 도메인 대 시간 도메인 변환기는 시간 왜곡(또는 시간 저왜곡(time-dewarping)이 진행 중이지 않는(inactive) 연산 모드 및 시간 왜곡(또는 시간 저왜곡)이 활성화(active) 중인 모드 모두에 사용될 수 있다.
일 바람직한 실시예에서 시간 왜곡 정보는 시간이 지남에 따른 피치의 변동을 기술한다. 이 실시예에서, 컨텍스트 상태 결정기는 시간 왜곡 정보로부터 주파수 연장 정보(즉, 주파수 스케일링 정보)를 도출하기 위해 구성된다. 또한, 바람직하게는, 컨텍스트 상태 결정기는, 현재의 오디오 프레임의 하나 이상의 스펙트럼 값들의 컨텍스트 기반 디코딩을 위한 적응된 컨텍스트를 얻기 위해, 주파수 연장 정보에 따라 주파수 축에 따른 이전의 오디오 프레임과 연관된 과거의 컨텍스트를 연장하거나 압축하기 위해 구성된다. 시간이 지남에 따른 변동을 기술하는 시간 왜곡 정보는 주파수 연장 정보를 도출하는데 매우 적합한 것으로 확인됐다. 또한, 주파수 축에 따른 이전의 오디오 프레임과 연관된 과거의 컨텍스트를 연장하거나 압축하는 것은, 일반적으로, 현재의 오디오 프레임의 스펙트럼에 잘 적응되는, 의미 있는 컨텍스트 상태 정보의 도출을 가능하게 하는 연장되거나 압축된 컨텍스트를 야기하고, 결과적으로 좋은 코딩 효율을 가져오는 것으로 확인됐다.
일 바람직한 실시예에서, 컨텍스트 상태 결정기는 시간 왜곡 정보로부터 제1 오디오 프레임의 제1 평균 주파수 정보를 도출하고, 시간 왜곡 정보로부터 제1 오디오 프레임 다음의 제2 오디오 프레임에 걸쳐 제2 평균 주파수 정보를 도출하기 위해 구성된다. 이 경우에, 컨텍스트 상태 결정기는 주파수 연장 정보를 결정하기 위해 제2 오디오 프레임에 걸친 제2 평균 주파수 정보와 제1 오디오 프레임에 걸친 제1 평균 주파수 정보 사이의 비율을 계산하기 위해 구성된다. 일반적으로 시간 왜곡 정보로부터 평균 주파수 정보를 쉽게 도출 가능한 것으로 확인됐고, 또한, 제1 및 제2 평균 주파수 정보는 주파수 연장 정보의 계산 효율적인 도출을 가능하게 하는 것으로 확인됐다.
다른 바람직한 실시예에서, 컨텍스트 상태 결정기는 시간 왜곡 정보로부터 제1 오디오 프레임에 걸쳐 제1 평균 시간 왜곡 윤곽 정보를 도출하고, 시간 왜곡 정보로부터 제1 오디오 프레임 다음의 제2 오디오 프레임에 걸쳐 제2 평균 시간 왜곡 윤곽 정보를 도출하기 위해 구성된다. 이 경우에, 컨텍스트 상태 결정기는, 주파수 연장 정보를 결정하기 위해, 제1 오디오 프레임에 걸친 제1 평균 시간 왜곡 윤곽 정보와 제2 오디오 프레임에 걸친 제2 평균 시간 왜곡 윤곽 정보 사이의 비율을 계산하기 위해 구성된다. 특히, (중첩될 수 있는) 제1 및 제2 오디오 프레임들에 걸친 시간 왜곡 윤곽 정보의 평균들을 계산하는 것은 계산 효율적이고, 제1 평균 시간 왜곡 윤곽 정보와 제2 평균 시간 왜곡 윤곽 정보 사이의 비율은 충분히 정확한 주파수 연장 정보를 제공하는 것으로 확인됐다.
일 바람직한 실시예에서, 컨텍스트 상태 결정기는 복수의 연속되는 오디오 프레임들에 걸쳐 확장하는 공통 시간 왜곡 윤곽으로부터 제1 및 제2 평균 주파수 정보 또는 제1 및 제2 평균 시간 왜곡 윤곽 정보를 도출하기 위해 구성된다. 복수의 연속되는 오디오 프레임들에 걸쳐 확장하는 공통 시간 왜곡 윤곽을 규정한다는 구상은 재샘플링 시간의 정확하고 왜곡이 없는 계산을 가능하게 할 뿐만 아니라, 두 개의 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화의 판단에 대한 매우 좋은 기준을 제공하는 것으로 확인됐다. 그에 따라, 공통 시간 왜곡 윤곽은 다른 오디오 프레임들 사이에서의 시간이 지남에 따른 상대적 주파수 변화를 밝히는데 매우 좋은 수단으로 밝혀졌다.
일 바람직한 실시예에서, 시간 왜곡 윤곽 계산기는 시간 왜곡 정보에 기초하여 복수의 연속되는 오디오 프레임들에 걸친 상대적(relative) 피치의 시간적 전개를 기술하는 시간 왜곡 윤곽 정보를 계산하기 위해 구성된 시간 왜곡 윤곽 계산기를 포함한다. 이 경우에, 컨텍스트 상태 결정기는 시간 연장 정보를 도출하기 위해 시간 왜곡 윤곽 정보를 사용하도록 구성된다. 예를 들어, 오디오 프레임의 각각의 샘플에 대해 정의될 수 있는 시간 왜곡 윤곽 정보는 컨텍스트 상태 결정의 적응을 위한 매우 좋은 기준이 되는 것으로 확인됐다.
일 바람직한 실시예에서, 오디오 신호 디코더는 재샘플링 위치 계산기를 포함한다. 재샘플링 위치 계산기는 시간 왜곡 윤곽 정보에 기초하여 시간 왜곡 재샘플러가 사용하기 위한 재샘플링 위치들을 계산하도록 구성되어, 재샘플링 위치들의 시간적 변동은 시간 왜곡 윤곽 정보에 의해 결정된다. 주파수 연장 정보의결정 및 재샘플링 위치들의 결정을 위한 시간 왜곡 윤곽 정보의 공통 사용은 주파수 연장 정보를 적용하여 얻게 되는 연장된 컨텍스트가 현재의 오디오 프레임의 스펙트럼의 특성들에 잘 적응된다는 효과를 갖는데, 여기서 현재의 오디오 프레임의 오디오 신호는, 적어도 거의, 계산된 재샘플링 위치들을 이용하여 재샘플링 연산에 의해 복원된 이전의 오디오 신호의 오디오 신호의 연속이다.
일 바람직한 실시예에 있어서, 컨테스트 상태 계산기는 (컨텍스트 메모리 구조에 포함되어 있거나 컨텍스트 메모리 구조에 의해 기술될 수 있는) 복수의 이전에 디코딩된 스펙트럼 값들에 따라 수치적 현재의 컨텍스트 값을 도출하여, 도출된 수치적 현재 컨텍스트 값들에 따라, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 일부를 나타내는 심볼 코드로의 코드 값의 맵핑을 기술하는 맵핑 규칙을 선택하기 위해 구성된다. 이 경우에, 컨텍스트 기반 스펙트럼 값 디코더는, 컨텍스트 상태 결정기에 의해 선택된 맵핑 규칙을 이용하여, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 기술하는 코드 값을 디코딩하기 위해 구성된다. 수치적 현재 컨텍스트 값이 복수의 이전에 디코딩된 스펙트럼 값들로부터 도출되고, 맵핑 규칙이 상기 수치적 (현재) 컨텍스트 값에 따라 선택되는 컨텍스트 적응은 컨텍스트 상태, 예를 들어 수치적 (현재) 컨텍스트 값 결정의 적응에서 상당히 이득을 보는 것으로 확인됐는데, 이 구상을 이용함으로써 상당히 부적절한 맵핑 규칙의 선택이 방지될 수 있기 때문이다. 그에 반해서, 만약 컨텍스트 상태, 즉 수치적 현재 컨텍스트 값의 도출이 뒤이은 프레임들 사이의 기본 주파수의 변화에 따라 적응되지 않는다면, 기본 주파수의 변화가 있을 때에는 맵핑 규칙의 잘못된 선택이 종종 발생할 것이어서, 코딩 이득이 줄어들 것이다. 그러한 코딩 이득의 감소는 기술된 방식에 의해 방지된다.
일 바람직한 실시예에서, 컨텍스트 상태 결정기는 예비 컨텍스트 메모리 구조를 설정하고 업데이트하기 위해 구성되어, 예비 컨텍스트 메모리 구조의 엔트리들이 제1 오디오 프레임의 하나 이상의 스펙트럼 값들을 기술하는데, 여기서 예비 컨텍스트 메모리 구조의 엔트리들의 엔트리 인덱스들은 (예를 들어, 제1 오디오 프레임의 시간 도메인 표현을 제공하여) 각각의 엔트리들에 관련되는 주파수 도메인 대 시간 도메인 변환기의 주파수 빈(bin) 또는 인접한 주파수 빈들의 셋트를 나타낸다. 컨텍스트 상태 결정기는 예비 컨텍스트 메모리 구조에 기초하여 주파수가 스케일링된 컨텍스트 메모리 구조를 얻기 위해 더 구성되어 제1 주파수 인덱스를 갖는 예비 컨텍스트 메모리 구조의 주어진 엔트리 또는 서브 엔트리가 제2 주파수 인덱스를 갖는 주파수가 스케일링된 컨테게스트 메모리 구조의 상응하는 엔트리 또는 서브 엔트리에 맵핑된다. 제2 주파수 인덱스는 제1 주파수 인덱스와는 다른 주파수 도메인 대 시간 도메인 변환기의 다른 빈 또는 다른 인접한 주파수 빈들의 셋트와 연관된다.
다시 말해, 주파수 도메인 대 시간 도메인 변환기의 i번째 스펙트럼 빈(또는 주파수 도메인 대 시간 도메인 변환기의 스펙트럼 빈들의 i번째 셋트)에 상응하는 하나 이상의 스펙트럼 값들에 기초하여 얻게 되는, 예비 컨텍스트 메모리 구조의 엔트리가 주파수 도메인 대 시간 도메인 변환기의 j번째 주파수 빈(또는 주파수 빈들의 j번째 셋트)와 연관되는 주파수가 스케일링된 컨텍스트 모메리 구조의 엔트리에 맵핑되는데, 여기서 j는 i와 다르다. 주파수가 스케일링된 컨텍스트 메모리 구조의 엔트리들에 예비 컨텍스트 메모리 구조의 엔트리들을 맵핑하는 이 구상은 기본 주파수의 변화에 컨텍스트 상태의 결정을 적응시키는 특히 계산 효율적인 방법을 제공하는 것으로 확인됐다. 컨텍스트의 주파수 스케일링은 이 구상을 이용하여 적은 노력으로 달성될 수 있다. 그에 따라, 주파수가 스케일링된 컨텍스트 메모리 구조로부터 수치적 현재 컨텍스트 값의 도출은 상당한 피치 변동이 없을 때에 종래의(예를 들어 예비) 컨텍스트 메모리 구조로부터 수치적 현재 컨텍스트 값의 도출과 동일할 수 있다. 그러므로, 상기 기술된 구상은 최소 노력으로 기존의 오디오 디코더에서 컨텍스트 적응의 구현을 가능하게 한다.
일 바람직한 실시예에서, 컨테게스트 상태 결정기는, 주파수가 스케일링된 컨텍스트 메모리 구조의 그 주파수 인덱스들 값들이 제2 주파수 인덱스와 미리 결정된 관계에 있는, 주파수가 스케일링된 컨텍스트 메모리 구조의 값들을 이용하여, 연관된 제3 주파수 인덱스를 갖는 제2 오디오 프레임의 하나 이상의 스펙트럼 값들 또는 제2 오디오 프레임의 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 기술하는 코드워드의 디코딩을 위한 현재의 컨텍스트 상태를 기술하는 컨텍스트 상태 값을 도출하기 위해 구성된다. 이 경우에, 제3 주파수 인덱스는 현재의 컨텍스트 상태를 이용하여 디코딩되는 오디오 프레임의 하나 이상의 스펙트럼 값들에 연관되는 주파수 도메인 대 시간 도메인 디코더의 주파수 빈 또는 인접한 주파수 빈들의 셋트를 가리킨다.
컨텍스트 상태 값(예를 들어, 수치적 현재 컨텍스트 값)의 도출을 위해 디코딩되는 하나 이상의 스펙트럼 값들의 미리 결정된(그리고, 바람직하게는 고정) 상대적(relative) 환경(주파수 빈들 면에서)의 사용은 상기 컨텍스트 값의 계산을 꽤 간단하게 유지하는 것을 가능하게 하는 것으로 확인됐다. 컨텍스트 상태 값의 도출에 입력으로서 주파수가 스케일링된 컨텍스트 메모리 구조를 이용함으로써, 기본 주파수의 변동이 효율적으로 고려될 수 있다.
일 바람직한 실시예에서, 컨텍스트 상태 결정기는 상응하는 소스 주파수 인덱스를 갖는 예비 컨텍스트 메모리 구조의 상응하는 엔트리의 값에 상응하는 목표 주파수 인덱스를 갖는 주파수가 스케일링된 컨텍스트 메모리 구조의 다수의 엔트리들 각각을 설정하기 위해 구성된다. 컨텍스트 상태 결정기는 주파수가 스케일링된 컨텍스트 메모리 구조의 엔트리 및 예비 컨텍스트 메모리 구조의 상응하는 엔트리의 상응하는 주파수 인덱스들을 결정하기 위해 구성되어, 예비 컨텍스트 메모리 구조의 엔트리들에 연관되는, 현재의 오디오 프레임과, 그 디코딩 컨텍스트가 주파수가 스케일링된 컨텍스트 메모리 구조의 엔트리들에 의해 걸정되는, 뒤이은 오디오 프레임 사이의 기본 주파수의 변화에 의해 상기 상응하는 주파수 인덱스들 사이의 비율이 결정된다. 주파수가 스케일링된 컨텍스트 메모리 구조의 엔트리들의 도출을 위해 그러한 구상을 이용함으로써, 기본 주파수의 변화에 주파수가 스케일링된 컨텍스트 메모리 구조를 적응시키는 것이 여전히 가능하면서 복잡도가 작게 유지될 수 있다.
일 바람직한 실시예에서, 컨텍스트 상태 결정기는 예비 컨텍스트 메모리 구조를 설정하기 위해 구성되어 예비 컨텍스트 메모리 구조의 복수의 엔트리들 각각이 제1 오디오 프레임의 복수의 스펙트럼 값들에 기초하는데, 예비 컨텍스트 메모리 구조의 엔트리들의 엔트리 인덱스들은 (제1 오디오 프레임에 대하여) 각각의 엔트리들이 연관되는 주파수 도메인 대 시간 도메인 변환기의 인접한 주파수 빈들의 셋트를 나타낸다. 컨텍스트 상태 결정기는 예비 컨텍스트 메모리 구조의 엔트리들로부터 연관된 개별 주파수 빈 인덱스들을 갖는 예비 주파수 빈 개별컨텍스트 값들을 추출하기 위해 구성된다. 또한, 컨텍스트 상태 결정기는 연관된 개별 주파수 빈 인덱스들을 갖는 주파수가 스케일링된 주파수 빈 개별 컨텍스트 값들을 얻기 위해 구성되어, 제 주파수 빈 인덱스를 갖는 주어진 예비 주파수 빈 개별 컨텍스트 값이 제2 주파수 빈 인덱스를 갖는 상응하는 주파수가 스케일링된 주파수 빈 개별 컨텍스트 값에 맵핑되어, 예비 주파수 빈 개별 컨텍스트 값들의 주파수 빈 개별 맵핑을 얻게 된다. 컨텍스트 상태 결정기는 또한 복수의 주파수가 스케일링된 주파수 빈 개별 컨텍스트 값들을 주파수가 스케일링된 컨텍스트 메모리 구조의 결합된 엔트리로 결합하기 위해 구성된다. 그에 따라, 복수의 주파수 빈들이 컨텍스트 메모리 구조의 단일 엔트리로 합쳐질지라도, 매우 정교한 기질의 방식으로 기본 주파수의 변화에 주파수가 스케일링된 컨텍스트 메모리 구조를 적응시키는 것이 가능하다. 그러므로, 기본 주파수의 변화에의 컨텍스트의 특히 정확한 적응이 달성된다.
본 발명에 따른 다른 실시예는 인코딩된 스펙트럼 표현 및 인코딩된 시간 왜곡 정보를 포함하는 입력 오디오 신호의 인코딩된 표현을 제공하기 위한 오디오 신호 인코더를 고안한다. 오디오 신호 인코더는, 시간 왜곡 정보에 따라 시간이 왜곡된, 입력 오디오 신호의 시간이 왜곡된 버전을 표현하는 주파수 도메인 표현을 제공하기 위해 구성된 주파수 도메인 표현 제공기를 포함한다. 오디오 신호 인코더는, 인코딩된 스펙트럼 표현의 인코딩된 스펙트럼 값들을 얻기 위해, 컨텍스트 상태에 따라, 주파수 도메인 표현의 하나 이상의 스펙트럼 값들, 또는 주파수 도메인 표현의 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 기술하는 코드워드를 인코딩하기 위해 구성된 컨텍스트 기반 스펙트럼 값 인코더를 더 포함한다. 또한, 오디오 신호 디코더는 하나 이상의 이전에 인코딩된 스펙트럼 값들에 따라 현재의 컨텍스트 상태를 결정하기 위해 구성된 컨텍스트 상태 결정기를 포함한다. 컨텍스트 상태 결정기는 뒤이은 프레임들 사이의 기본 주파수의 변화에 컨텍스트의 결정을 적응시키기 위해 구성된다.
이 오디오 신호 인코더는 상기에서 기술된 오디오 신호 디코더와 동일한 발상 및 결과에 기초한다. 또한, 오디오 신호 인코더는 상기 오디오 신호 디코더에 대하여 논의된 특징들 및 기능들 중 어떤 것으로도 보완될 수 있는데, 여기서 이전에 인코딩된 스펙트럼 값들은 컨텍스트 상태 계산에서 이전에 디코딩된 스펙트럼 값들의 역할을 한다.
일 바람직한 실시예에서, 컨텍스트 상태 결정기는 복수의 이전에 인코딩된 스펙트럼 값들에 따라 수치적 현재 컨텍스트 값을 도출하여, 상기 수치적 현재 컨텍스트 값에 따라, 코드 값으로의, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 일부의 맵핑을 기술하는 맵핑 규칙을 선택한다. 이 경우에, 컨텍스트 기반 스펙트럼 값 인코더는 컨텍스트 상태 결정기에 의해 선택된 맵핑 규칙을 이용하여 하나 이상의 스펙트럼 값들 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 기술하는 코드 값을 제공하기 위해 구성된다.
본 발명에 따른 다른 실시예는 인코딩된 오디오 신호 표현에 기초하여 디코딩된 오디오 신호 표현을 제공하기 위한 방법을 고안한다.
본 발명에 따른 다른 실시예는 입력 오디오 신호의 인코딩된 표현을 제공하기 위한 방법을 고안한다.
본 발명에 따른 다른 실시예는 상기 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 고안한다.
상기 방법들 및 컴퓨터 프로그램은 상기에서 논의된 오디오 신호 디코더 및 오디오 신호 인코더와 동일한 사고(consideration)에 기초한다.
또한, 상기 오디오 신호 인코더, 상기 방법들, 및 상기 컴퓨터 프로그램들은 오디오 신호 디코더에 대하여 상기에서 논의되고 하기에서 기술된 특징들 및 기능들 중 어느 것으로도 보완될 수 있다.
이어서, 첨부된 도면들을 참조하여 본 발명에 따른 실시예들이 기술될 것으로:
도 1a는 본 발명의 일 실시예에 따른 오디오 신호 인코더의 블록 도식도;
도 1b는 본 발명의 일 실시예에 따른 오디오 신호 디코더의 블록 도식도;
도 2a는 본 발명의 다른 실시예에 따른 오디오 신호 인코더의 블록 도식도;
도 2b는 본 발명의 다른 실시예에 따른 오디오 신호 디코더의 블록 도식도;
도 2c는 본 발명의 실시예들에 따른 오디오 인코더들에서 사용하기 위한 산술 인코더의 블록 도식도;
도 2d는 본 발명의 실시예들에 따른 오디오 디코더들에서 사용하기 위한 산술 디코더의 블록 도식도;
도 3a는 컨텍스트 적응 산술 코딩(인코딩/디코딩)의 그래프 표현을 도시하는 도면;
도 3b는 상대적 피치 윤곽들의 그래프 표현을 도시하는 도면;
도 3c는 시간이 왜곡된 수정 이상 코사인 변환(TW-MDCT)의 연장 효과에 대한 그래프 표현을 도시하는 도면;
도 4a는 본 발명의 실시예들에 따른 오디오 신호 인코더들 및 오디오 신호 디코더들에서 사용하기 위한 컨텍스트 상태 결정기의 블록 도식도;
도 4b는 도 4a에 따른 컨텍스트 상태 결정기에 의해 수행될 수 있는 컨텍스트의 주파수 압축에 대한 그래프 표현을 도시하는 도면;
도 4c는 본 발명에 따른 실시예들에 적용될 수 있는 컨텍스트를 연장하거나 압축하기 위한 알고리즘의 의사(pseudo) 프로그램 코드 표현을 도시하는 도면;
도 4d 및 4e는 본 발명에 따른 실시예들에서 사용될 수 있는 컨텍스트를 연정하거나 압축하기 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;
도 5a, 5b는 본 발명의 실시예에 따른 오디오 신호 디코더의 블록 도시도로부터의 상세한 발췌 도시하는 도면;
도 6a, 6b는 본 발명의 일 실시예에 따른 디코딩된 오디오 신호 표현을 제공하기 위한 맵핑기의 플로챠트에 대한 상세한 발췌를 도시하는 도면;
도 7a는 본 발명의 일 실시예에 따른 오디오 디코더에서 사용되는 데이터 요소들 및 조력 요소들의 정의에 대한 범례를 도시하는 도면;
도 7b는 본 발명의 일 실시예에 따른 오디오 디코더에서 사용되는 상수들의 정의에 대한 범례를 도시하는 도면;
도 8은 상응하는 디코딩된 시간 왜곡 값으로의 코드워드 인덱스의 맵핑에 대한 테이블 표현을 도시하는 도면;
도 9는 동일하게 이격된 왜곡 노드들 사이를 선형으로 보간하기 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;
도 10a는 조력 함수 "warp_time_inv"의 의사 프로그램 코드 표현을 도시하는 도면;
도 10b는 조력 함수 "warp_inv_vec"의 의사 프로그램 코드 표현을 도시하는 도면;
도 11은 샘플 위치 벡터 및 전이 길이를 계산하기 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;
도 12는 윈도우 시퀀스 및 코어 코더 프레임 길이에 따른 합성 윈도우 길이(N)의 값들에 대한 테이블 표현을 도시하는 도면;
도 13은 허용된 윈도우 시퀀스들의 매트릭스 표현을 도시하는 도면;
도 14는 타입(type) "EIGHT_SHORT_SEQUENC" 윈도우 시퀀스의 윈도윙 및 내부 중첩 가산을 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;
도 15는 타입 "EIGHT_SHORT_SEQUENC"이 아닌 다른 윈도우 스퀀스들의 윈도윙과 내부 중첩 및 가산을 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;
도 16은 재샘플링을 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;이고
도 17은 본 발명에 따른 몇몇 실시예들에서 사용될 수 있는 상태 계산을 위한 컨텍스트의 그래프 표현을 도시하는 도면;
도 18을 정의의 범례를 도시하는 도면;
도 19는 알고리즘 "arith_map_context()"의 의사 프로그램 코드 표현을 도시하는 도면;
도 20은 알고리즘 "arith_get_context()"의 의사 프로그램 코드 표현을 도시하는 도면;
도 21은 알고리즘 "arith_get_pk()"의 의사 프로그램 코드 표현을 도시하는 도면;
도 22는 알고리즘 "arith_decode()"의 의사 프로그램 코드 표현을 도시하는 도면;
도 23은 하나 이상의 하위 비트 평면들을 디코딩하기 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;
도 24는 산술적으로 디코딩된 스펙트럼 값들의 엔트리들을 설정하기 위한 알고리즘의 의사 프로그램 코드 표현을 도시하는 도면;
도 25는 함수 "arith_update_context()"의 의사 프로그램 코드 표현을 도시하는 도면;
도 26은 알고리즘 "arith_finish()"의 의사 프로그램 코드 표현을 도시하는 도면;
도 27a-27f는 본 발명의 일 실시예에 따른 오디오 스트림의 구문 요소들의 표현들을 도시하는 도면;이다.
1. 도 1a에 따른 오디오 신호 인코더
도 1a는 본 발명의 일 실시예에 따른 오디오 신호 인코더(100)의 블록 도식도를 도시한다.
오디오 신호 인코더(100)는 입력 오디오 신호(110)를 수신하여 입력 오디오 신호의 인코딩된 표현(112)을 제공하기 위해 구성된다. 입력 오디오 신호의 인코딩된 표현(112)은 인코딩된 스펙트럼 표현 및 인코딩된 시간 왜곡 정보를 포함한다.
오디오 신호 인코더(100)는 입력 오디오 신호(110) 및 시간 왜곡 정보(120)를 수신하기 위해 구성되는 주파수 도메인 표현 제공기(120)를 포함한다. (시간 왜곡 주파수 도메인 표현 제공기로 여겨질 수 있는) 주파수 도메인 표현 제공기(120)는, 시간 왜곡 정보(122)에 따라 시간이 왜곡된, 입력 오디오 신호(110)의 시간이 왜곡된 버전을 표현하는 주파수 도메인 표현(124)을 제공하기 위해 구성된다. 오디오 신호 인코더(100)는 또한, 인코딩된 스펙트럼 표현의 인코딩된 스펙트럼 값들을 얻기 위해, 컨텍스트 상태에 따라, 주파수 도메인 표현(124)의 하나 이상의 스펙트럼 값들, 또는 주파수 도메인 표현(124)의 하나 이상의 스펙트럼 값들 숫자 표현의 적어도 일부를 기술하는 코드워드(codeword, 132)를 제공하기 위해 구성된 컨텍스트 기반 스펙트럼 값 인코더(130)를 포함한다. 예를 들어, 컨텍스트 상태는 컨텍스트 상태 정보(134)에 의해 기술될 수 있다. 오디오 신호 인코더(100)는 또한 하나 이상의 이전에 인코딩된 스펙트럼 값들(124)에 따라 현재의 컨텍스트 상태를 결정하기 위해 구성되는 컨텍스트 상태 결정기(140)를 포함한다. 컨텍스트 상태 결정기(140)는 그 결과로서 컨텍스트 상태 정보(134)를 컨텍스트 기반 스펙트럼 값 인코더(130)에 제공할 수 있는데, 예를 들어, 컨텍스트 상태 정보는 (맵핑 규칙 또는 맵핑 테이블을 선택하기 위한) 수치적 현재의 컨텍스트 값 또는 선택된 맵핑 규칙 또는 맵핑 테이블에 대한 참조의 형태를 취한다. 컨텍스트 상태 결정기(140)는 뒤이은 프레임들 사이의 기본 주파수들의 변화에 컨텍스트 상태의 결정을 적응시키기 위해 구성된다. 그에 따라, 컨텍스트 상태 결정기는 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 대한 정보를 평가할 수 있다. 뒤이은 프레임들 사이의 기본 주파수의 변화에 대한 이 정보는, 예를 들어, 주파수 도메인 표현 제공기(120)에 의해 사용되는 시간 왜곡 정보(122)에 기초할 수 있다.
그에 따라, 오디오 신호 인코더는 시간이 지남에 따라 변동하는 기본 주파수 또는 시간이 지남에 따라 변동하는 피치를 포함하는 오디오 신호 부분의 경우에 특히 높은 코딩 효율을 제공할 수 있는데, 컨텍스트 상태 정보(134)의 도출이 두 개의 오디오 프레임들 사이의 기본 주파수의 변동에 적응되기 때문이다. 그에 따라, 컨텍스트 기반 스펙트럼 값 인코더(130)에 의해 사용되는 컨텍스트는, 만약 기본 주파수가 하나의 오디오 프레임에서 다음 오디오 프레임으로(즉, 두 개의 오디오 프레임들 사이에서) 변하면 일어나는, 주파수 도메인 표현(124)의 (주파수에 대한) 스펙트럼 압축 또는 (주파수에 대한) 스펙트럼 확장에 잘 적응된다. 결과적으로, 컨텍스트 상태 정보(134)는, 기본 주파수가 변하는 경우일지라도 주파수 도메인 표현(124)에, 평균적으로, 잘 적응되는데, 이는, 결국, 컨텍스트 기반 스펙트럼 값 인코더의 좋은 코딩 효율을 야기한다. 그에 반해서, 만약 컨텍스트 상태가 기본 주파수의 변화에 적응되지 않는다면, 컨텍스트는 기본 주파수가 변하는 상황들에서는 부적절할 것이고, 그 때문에 코딩 효율의 상당한 저하를 야기하는 것으로 확인됐다.
그에 따라, 상기 오디오 신호 인코더(100)는 기본 주파수가 변하는 상황들에서 컨텍스트 기반 스펙트럼 값을 이용하여 종래의 오디오 신호 인코더들 보다 더 나은 결과를 낸다고 할 수 있다.
여기서 뒤이은 프레임들(즉 제1 프레임들로부터 제2, 뒤이은 프레임으로) 사이의 기본 주파수의 변화에 컨텍스트 상태의 결정 어떻게 적응시킬 것인가에 대한 많은 다른 구현들이 존재한다는 것에 유의해야 한다. 예를 들어, 그 엔트리들이 주파수 도메인 표현(124)의 스펙트럼 값에 의해 정의되거나 도출되는 컨텍스트 메모리 구조(또는, 좀더 정확하게는, 그것의 컨텍스트)는, 컨텍스트 상태가 도출됨을 기술하는 수치적 현재 컨텍스트 값 이전의 주파수로 연장되거나 압축될 수 있다. 그러한 구상들은 하기에서 상세히 논의될 것이다. 그러나, 대안으로, 그 엔트리들이 주파수 도메인 표현(124)에 기초하는 컨텍스트 메모리 구조의 엔트리들로부터 컨텍스트 상태 정보(134)를 도출하기 위한 알고리즘은 또한 변할(또는 적응시킬) 수 있다. 예를 들어, 비록 그러한 해법이 여기서 상세히 논의되지 않는다 할지라도, 그러한 주파수가 스케일링되지 않은 컨텍스트 메모리 구조 중 어떤 엔트리(엔트리들)이 고려되는지는 조정될 수 있다.
2. 도 1b에 따른 오디오 신호 디코더
도 1b는 오디오 신호 디코더(150)의 블록 도식도를 도시한다.
오디오 신호 디코더(150)는 인코딩된 스펙트럼 표현 및 인코딩된 시간 왜곡 정보를 포함할 수 있는 인코딩된 오디오 신호 표현(152)을 수신하기 위해 구성된다. 오디오 신호 디코더(150)는 인코딩된 오디오 신호 표현(152)에 기초하여 디코딩된 오디오 신호 표현(154)을 제공하기 위해 구성된다.
오디오 신호 디코더(150)는 인코딩된 스펙트럼 표현의 코드워드들을 수신하고, 그에 기초하여, 디코딩된 스펙트럼 값들(162)을 제공하기 위해 구성되는 컨텍스트 기반 스펙트럼 값 디코더(160)를 포함한다. 또한, 컨텍스트 기반 스펙트럼 값 디코더(160)는, 예를 들어 수치적 현재 컨텍스트 값, 선택된 맵핑 규칙, 또는 선택된 맵핑 규칙의 참조의 형태를 취할 수 있는 컨텍스트 상태 정보를 수신하기 위해 구성된다. 컨텍스트 기반 스펙트럼 값 디코더(160)는, 디코딩된 스펙트럼 값들(162)을 얻기 위해, (컨텍스트 상태 정보(164)에 의해 기술될 수 있는) 컨텍스트 상태에 따라, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 기술하는 코드워드를 디코딩하기 위해 구성된다. 오디오 신호 디코더(150)는 또한 하나 이상의 이전에 디코딩된 스펙트럼 값들(162)에 따라 현재의 컨텍스트 상태를 결정하기 위해 구성되는 컨텍스트 상태 결정기(170)를 포함한다. 오디오 신호 디코더(150)는 또한 주어진 오디오 프레임과 연관되고 컨텍스트 기반 스펙트럼 값 디코더에 의해 제공된 디코딩된 스펙트럼 값들(162)의 셋트에 기초하여 시간이 왜곡된 시간 도메인 표현(182)을 제공하기 위해 구성되는 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)를포함한다. 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)는 인코딩된 오디오 신호 표현(152)에 의해 기술된 원하는 시간 왜곡에 시간이 왜곡된 시간 도메인 표현(182)의 제공을 적응시키도록 시간 왜곡 정보(184)를 수신하기 위해 구성되어, 시간이 왜곡된 시간 도메인 표현(182)이 디코딩된 오디오 신효 표현(154)을 이룬다(또는, 동등하게, 만약 후처리가 사용된다면, 디코딩된 오디오 신호 표현의 기본을 형성한다).
시간이 왜곡된 주파수 도메인 대 시간 도메인 변환기(180)는, 예를 들어, 주어진 오디오 프레임과 연관되고 컨텍스트 기반 스펙트럼 값 디코더(160)에 의해 제공된 디코딩된 스펙트럼 값들(162)의 셋트에 기초하여 주어진 오디오 프레임의 시간 도메인 표현을 제공하기 위해 구성된 주파수 도메인 대 시간 도메인 변환기를 포함할 수 있다. 시간 왜곡 주파수 도메인 대 시간 도메인 변환기는 또한, 주어진 오디오 프레임의 재샘플링된 시간 도메인 표현(182)을 얻기 위해, 시간 왜곡 정보(184)에 따라, 주어진 오디오 프레임, 또는 그것의 처리된 버전의 시간 도메인 표현을 재샘플링하기 위해 구성된 시간 왜곡 재샘플러를 포함할 수 있다.
또한, 컨텍스트 상태 결정기(170)는 뒤이은 오디오 프레임들 사이의(즉, 제1 오디오 프레임으로부터 제2, 뒤이은 오디오 프레임) 기본 주파수의 변화에 (컨텍스트 상태 정보(164)에 의해 기술되는) 컨텍스트 상태의 결정을 적응시키기 위해 구성된다.
오디오 신호 디코더(150)는 오디오 신호 인코더(100)에 대하여 이미 논의된 결과들에 기초한다. 특히, 오디오 신호 디코더는 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 컨텍스트 상태 값의 결정을 적응시키기 위해 구성되어, 컨텍스트 상태( 및, 결과적으로 다른 스펙트럼 값들 발생의 통계적 확률에 관하여 컨텍스트 기반 스펙트럼 값 디코더(160)에 의해 사용된 가정들(assumptions))가 상기 컨텍스트 정보를 이용하여 디코딩되는 현재의 오디오 프레임의 스펙트럼에, 적어도 평균적으로, 잘 적응된다. 그에 따라, 상기 현재의 오디오 프레임의 스펙트럼 값들을 인코딩하는 코드워드들이 특히 짧을 수 있는데, 컨텍스트 상태 결정기(170)에 의해 제공된 컨텍스트 상태 정보에 따라 선택된, 선택된 컨텍스트와, 디코딩되는 스펙트럼 값들 사이의 좋은 매칭(matching)이 일반적으로 좋은 비트레이트 효율을 가져오는 비교적 짧은 코드워드들을 야기하기 때문이다.
또한, 시간 왜곡 주파수 도메인 대 시간 도메인 변환기에 의해 어쨌든 사용되기 위해 인코딩된 오디오 신호 표현(152)에 포함되어 있는 시간 왜곡 정보(184)가 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 대한 정보로서 컨텍스트 상태 결정기(170)에 의해 재사용되거나, 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 대한 정보를 도출하기 위해 재사용될 수 있기 때문에, 컨텍스트 상태 결정기(170)는 효율적으로 구현될 수 있다.
그에 따라, 뒤이은 프레임들 사이의 기본 주파수의 변화에 컨텍스트 상태 결정을 적응시키는 것은 어떤 추가적인 사이드 정보를 요구하지도 않는다. 그에 따라, 오디오 신호 디코더(150)는 임의의 추가적인 사이드 정보를 요구하지 않으면서 컨텍스트 기반 스펙트럼 값 디코디의 개선된 코딩 효율을 가져오는데(그리고 인코더(100) 측에서의 개선된 인코딩 효율을 가능하게 하는데, 이는 비트레이트 효율에서 상당한 개선을 이룬다.
또한, 뒤이은 프레임들(즉 제1 오디오 프레임에서 제2, 뒤이은 오디오 프레임으로) 사이의 기본 주파수의 변화에 컨텍스트 상태의 결정을 적응시키는데 다른 구상들이 사용될 수 있음에 유의해야 한다. 예를 들어, 그 엔트리들이 디코딩된 스펙트럼 값들(162)에 기초하는 컨텍스트 메모리 구조는, 예를 들어, 컨텍스트 상태 정보(164)가 컨텍스트 상태 결정기(170)에 의해 주파수가 스케일링된 컨텍스트 메모리 상태로부터 도출되기 전에 주파수 스케일링(예를 들어, 주파수 연장 또는 주파수 압축)을 이용하여 적응될 수 있다. 대안으로, 그러나, 컨텍스트 상태 정보(164)을 도출하기 위해 컨텍스트 상태 결정기(170)에 의해 다른 알고리즘이 사용될 수 있다. 예를 들어, 주어진 코드워드 주파수 인덱스를 갖는 코드워드의 디코딩을 위해 컨텍스트 메모리 구조의 어떤 엔트리들이 컨텍스트 상태를 결정하는데 사용되는지로 적응될 수 있다. 후자의 구상의 여기에서 상세히 기술되지 않았다고 할지라도, 본 발명에 따른 몇몇 실시예들에 당연히 적용될 수 있다. 또한, 기본 주파수의 변화를 결정하기 위해 다른 구상들이 적용될 수 있다.
3. 도 2a에 따른 오디오 신호 인코더
도 2a는 본 발명의 일 실시예에 따른 오디오 신호 인코더(200)의 블록 도식도를 도시한다. 도 2에 따른 오디오 신호 인코더(200)는 도 1a에 따른 오디오 신호 인코더(100)와 매우 유사하여, 동일한 수단 및 신호들은 동일한 도면 번호들로 가리켜지고 다시 상세히 설명되지 않는다.
오디오 신호 인코더(200)는 입력 오디오 신호(110)를 수신하고, 그에 기초하여, 인코딩된 오디오 신호 표현(112)을 제공하기 위해 구성된다. 선택적으로, 오디오 신호 인코더(200)는 또한 외부에서 발생된 시간 왜곡 정보(214)를 수신하기 위해 구성된다.
오디오 신호 인코더(200)는 그 기능이 오디오 신호 인코더(100)의 주파수 도메인 표현 제공기(120)와 동일할 수 있는 주파수 도메인 표현 제공기(120)를 포함한다. 주파수 도메인 표현 제공기(120)는 입력 오디오 신호(110)의 시간에 왜곡된 버전을 표현하는 주파수 도메인 표현을 제공하는데, 주파수 도메인 표현이 124로 가리켜진다. 오디오 신호 인코더(200)는 또한, 오디오 신호 인코더(100)에 대해 논의된 것과 같은 것을 연산하는, 컨텍스트 기반 스펙트럼 값 인코더(130) 및 컨텍스트 상태 결정기(140)를 포함한다. 그에 따라, 컨텍스트 기반 스펙트럼 값 인코더(130)는 코드워드들(예를 들어, acod_m)을 제공하는데, 각각의 코드워드는 인코딩된 스펙트럼 표현의 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 표현한다.
선택적으로, 오디오 신호 인코더는, 오디오 프레임 중의 기본 주파수의 변화, 및/또는 입력 오디오 신호(110)의 기본 주파수의 시간적 전개, 및/또는 입력 오디오 신호(110)의 피치의 시간적 전개에 대해 보상을 하기 위해, 입력 오디오 신호(110)를 수신하고, 그에 기초하여, 예를 들어, 입력 오디오 신호(110)에 주파수 도메인 표현 제공기(120)에 의해 적용되는 시간 왜곡을 기술하는 시간 왜곡 윤곽 정보(222)를 제공하기 위해 구성되는 시간 왜곡 분석기 또는 기본 주파수 분석기 또는 피치 분석기(220)를 포함한다. 오디오 신호 인코더(200)는 또한 시간 왜곡 윤곽 정보(222)에 기초하여 인코딩된 시간 왜곡 정보(226)를 제공하기 위해 구성되는 시간 왜곡 윤곽 인코더(224)를 포함한다. 인코딩된 시간 왜곡 정보(226)는 바람직하게는 인코딩된 오디오 신호 표현(112)에 포함되고, 예를 들어, (인코딩된) 시각 왜곡 비율 값들 "tw_ratio[i]"의 형태를 취할 수 있다.
시간 왜곡 윤곽 정보(222)는 주파수 도메인 표현 제공기(120) 및 컨텍스트 상태 결정기(140)에도 제공될 수 있음에 유의해야 한다.
또한, 오디오 신호 인코더(200)는, 예를 들어, 시간 마스킹 효과 및/또는 주파수 마스킹 효과를 결정하기 위해, 입력 오디오 신호(100), 또는 그것의 전처리된 버전을 수신하여, 심리음향 분석을 수행하기 위해 구성되는 심리음향 모델 처리기(228)를 포함할 수 있다. 그에 따라, 심리음향 모델 처리기(228)는, 주파수 도메인 오디오 인코더들에 있어서 잘 알려진 바와 같이, 예를 들어, 입력 오디오 신호의 각각 다른 주파수 대역들의 심리음향적 관련성을 표현하는 제어 정보(230)를 제공할 수 있다.
다음에서, 주파수 도메인 표현 제공기(120)의 신호 경로가 간략히 기술될 것이다. 주파수 도메인 표현 제공기(120)는, 입력 오디오 신호(110)의 전처리된 버전(120b)을 제공하기 위해, 선택적으로 입력 오디오 신호(110)를 전처리하는 선택적 전처리(120a)를 포함한다. 주파수 도메인 표현 제공기(120)는 또한, 샘플링 위치 계산기(120e)로부터 수신된 샘플링 위치 정보(120d)에 따라, 입력 오디오 신호(110), 또는 그것의 전처리된 버전(120b)을 샘플링 또는 재샘플링하기 위해 구성된 샘플러/재샘플러를 포함한다. 그에 따라, 샘플러/재샘플러(120c)는 입력 오디오 신호(110)(또는 그것의 전처리된 버전(120b))에 시변(time-variant) 샘플링 또는 재샘플링을 적용할 수 있다. (유효 샘플링 위치들 사이의 시간적으로 변하는 시간 거리로) 그러한 시변 샘플링을 적용함으로써, 샘플링된 또는 재샘플링된 시간 도메인 표현(120f)을 얻게 되는데, 입력 오디오 신호(110)와 비교했을 때 피치 또는 기본 주파수의 시간 변동이 감소된다. 샘플링 위치들은 시간 왜곡 윤곽 정보(222)에 따라 샘플링 위치 계산기(120e)에 의해 계산된다. 주파수 도메인 표현 제공기(120)는 또한 윈도우어(120g)를 포함하는데, 여기서 윈도우어(120g)는 샘플러 또는 재샘플러(120c)에 의해 제공된 샘플링된 또는 재샘플링된 시간 도메인 표현(120f)을 윈도윙하기 위해 구성된다. 윈도윙은 블록화 현상들을 감소시키거나 제거함으로써, 오디오 신호 디코더에서 평활한 중첩 및 가산 연산을 가능하게 하기 위해 수행된다. 주파수 도메인 표현 제공기(120)는 또한 윈도윙되고 샘플링된/재샘플링된 시간 도메인 표현(120h)을 수신하고, 그것에 기초하여, 예를 들어, 입력 오디오 신호(110)의 오디오 프레임 당 스펙트럼 계수들 한 셋트를 포함할 수 있는 주파수 도메인 표현(120j)을 제공하기 위해 구성되는 시간 도메인 대 주파수 도메인 변환기(120i)를 포함한다(여기서 입력 오디오 신호의 오디오 프레임들은, 예를 들어 중첩되거나 중첩되지 않을 수 있으며, 여기서 오디오 프레임들을 중첩하기 위해 몇몇 실시예들에서 약 50%의 중첩이 바람직하다.). 그러나, 몇몇 실시예들에서, 단일 오디오 프레임에 대해 스펙트럼 계수들의 복수의 셋트들이 제공될 수 있음에 유의해야 한다.
주파수 도메인 표현 제공기(120)는 선택적으로 시간영역 잡음 형상화(temporal noise shaping) 및/또는 장기 예측 및/또는 스펙트럼 후처리의 임의의 다른 방식을 수행함으로써, 후처리된 주파수 도메인 표현(1201)을 얻기 위해 구성되는 스펙트럼 처리기(120k)를 포함한다.
주파수 도메인 표현 제공기(120)는 선택적으로 스케일러/양자화기(120m)를 포함하는데, 여기서 스케일러/양자화기(120m)는, 예를 들어, 심리음향 모델 처리기(220)에 의해 제공된 제어 정보(230)에 따라, 주파수 도메인 표현(120j) 또는 그것의 후처리된 버전(1201)의 각각 다른 주파수 빈들(또는 주파수 대역들)을 스케일링하기 위해 구성될 수 있다. 그에 따라, 주파수 빈들(또는 복수의 주파수 빈들을 구성하는 주파수 대역들)은, 예를 들어 심리음향적 관련성에 따라 스케일링되어, 효율적으로, 높은 심리음향적 관련성을 갖는 주파수 빈들(또는 주파수 대역들)은 컨텍스트 기반 스펙트럼 값 인코더에 의해 높은 정확도로 인코딩되고, 반면 낮은 심리음향적 관련성을 갖는 주파수 빈들(또는 주파수 대역들)은 낮은 정확도로 인코딩된다. 또한, 선택적으로, 제어 정보(230)는 시간 도메인 대 주파수 도메인 변환기의 윈도윙 및/또는 스펙트럼 후처리의 파라미터들을 조정할 수 있다는 것에 유의해야 한다. 또한, 당업자들에게 알려진 바와 같이, 제어 정보(230)는 인코딩된 오디오 신호 표현(112)에 인코딩된 형태로 포함될 수 있다.
오디오 신호 인코더(200)의 기능에 관하여, (시변 비균일 샘플링 또는 재심플링의 면에서) 시간 왜곡은 시간 왜곡 윤곽 정보(220)에 따라 샘플러/재샘플러(120c)에 의해 적용된다. 그에 따라, 시변 샘플/재샘플링이 없을 때에는 희미하게 지워지는(smeared) 스펙트럼을 야기하는 피치의 시간적 변동을 갖는 입력 오디오 신호가 있을 때에도 두드러지는 스펙트럼 피크(peak) 및 밸리(valley)를 가지는 주파수 도메인 표현(120j)를 달성하는 것이 가능하다. 또한, 컨텍스트 기반 스펙트럼 값 인코더(130)가 사용하기 위한 컨텍스트 상태의 도출은 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 따라 적응되는데, 이는, 앞서 논의된 바와 같이, 특히 높은 코딩 효율을 야기한다. 또한, 샘플러/재샘플러(120c)를위한 샘플리 위치의 계산 및 컨텍스트 상태의 결정의 적응 모두에 대한 기준으로 쓰일 수 있는 시간 왜곡 윤곽 정보(222)는 시간 왜곡 윤곽 인코더(224)를 이용하여 인코딩되어, 시간 왜곡 윤곽 정보(222)를 기술하는 인코딩된 시간 왜곡 정보(226)는 인코딩된 오디오 신호 표현(112)에 포함된다. 그에 따라, 인코딩된 오디오 신호 표현(112)는 오디오 신호 디코더 측에서 인코딩된 입력 오디오 신호(110)의 효율적인 디코딩을 위해 요구된 정보를 제공한다.
또한, 오디오 신호 인코더(200)의 개개의 구성요소들은 실질적으로 오디오 신호 디코더(240)의 개개의 구성요소들의 반대의 기능을 수행할 수 있음에 유의해야 하는데, 이는 도 2b를 참조하여 하기에서 기술될 것이다. 또한, 상기 오디오 신호 디코더를 이해하는 것을 또한 가능하게 하는 본 기술서의 전반에 걸쳐 오디오 신호 디코더의 기능에 관한 상세한 논의에 대해서도 언급된다.
오디오 신호 디코더 및 그것의 개별 구성요소들에 실질적인 수정이 이루어질 수 있음에 유의해야 한다. 예를 들어, 샘플링/재샘플링, 윈도윙, 및 시간 도메인 대 주파수 도메인 변환과 같은 몇몇 기능들은, 예를 들어 결합될 수 있다. 또한, 적절한 곳에 추가적인 처리 단계들이 도입될 수 있다.
또한, 인코딩된 오디오 신호 표현은, 당연히, 원하거나 요구된 추가적 추가적인 사이드 정보를 포함한다.
4. 도 2b에 따른 오디오 신호 디코더
도 2b는 본 발명의 일 실시예에 따른 오디오 신호 디코더(240)의 블록 도식도를 도시한다. 상기 오디오 신호 디코더(240)는 도 1b에 따른 오디오 신호 디코더(150)와 매우 유사하여, 동일한 수단 및 신호들은 동일한 도면 부호들로 가리켜지고 다시 상세히 논의되지 않을 것이다.
오디오 신호 디코더(240)는, 예를 들어, 비트스트림의 형태로, 인코딩된 오디오 신호 표현(152)를 수신하기 위해 구성된다. 인코딩된 오디오 신호 표현(152)은, 예를 들어, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 표현하는 코드워드들(예를 들어, acod_m)의 형태로, 인코딩된 스펙트럼 표현을 포함한다. 인코딩된 오디오 신호 표현(152)은 또한 인코딩된 시간 왜곡 정보를 포함한다. 또한, 오디오 신호 디코더(240)는 디코딩된 오디오 신호 표현(154), 예를 들어, 오디오 컨텐츠의 시간 도메인 표현을 제공하기 위해 구성된다.
오디오 신호 디코더(240)는 인코딩된 오디오 신호 표현(152)으로부터 스펙트럼 값들을 표현하는 코드워드들을 수신하고, 그에 기초하여, 디코딩된 스펙트럼 값들(162)을 제공하기 위해 구성되는 컨텍스트 기반 스펙트럼 값 디코더(160)를 포함한다. 또한, 오디오 신호 디코더(240)는 또한 컨텍스트 기반 스펙트럼 값 디코더(160)에 컨텍스트 상태 정보(164)를 제공하기 위해 구성되는 컨텍스트 상태 결정기(170)를 포함한다. 오디오 신호 디코더(240)는 또한 디코딩된 스펙트럼 값들(162)을 수신하고 디코딩된 오디오 신호 표현(154)을 제공하는 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)를 포함한다.
오디오 신호 디코더(240)는 또한, 인코딩된 오디오 신호 표현(152)에 포함되어 있는 인코딩된 시간 왜곡 정보를 수신하고, 그에 기초하여, 디코딩된 시간 왜곡 정보(254)를 제공하기 위해 구성되는 시간 왜곡 계산기(또는 시간 왜곡 디코더, 250)를 포함한다. 인코딩된 시간 왜곡 정보는, 예를 들어, 기본 주파수 또는 피치의 시간적 변동을 기술하는 코드워드들 "tw_ratio[i]"을 포함할 수 있다. 디코딩된 시간 왜곡 정보(254)는, 예를 들어, 왜곡 윤곽 정보의 형태를 취할 수 있다. 예를 들어, 디코딩된 시간 왜곡 정보(254)는, 하기에서 상세히 논의될, 값들 "warp_value_tbl[tw_ratio[i]]" 또는 값들 prel[n]을 포함할 수 있다. 선택적으로, 오디오 신호 디코더(240)는 또한 디코딩된 시간 왜곡 정보(254)로부터 시간 왜곡 윤곽 정보(258)를 도출하기 위해 구성되는 시간 왜곡 윤곽 계산기(256)를 포함한다. 시간 왜곡 윤곽 정보(258)는, 예를 들어, 컨텍스트 상태 결정기(170), 및 또한 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)에 대한 입력 정보로 쓰일 수 있다.
다음에서, 시간 왜곡 주파수 도메인 대 시간 도메인 변환기에 관한 몇몇 세부사항들이 기술될 것이다. 변환기(180)는, 선택적으로, 컨텍스트 기반 스펙트럼 값 디코더(160)로부터 디코딩된 스펙트럼 값들(162)을 수신하여, 디코딩된 스펙트럼 값들(162)의 역으로 양자화 되고/되거나 재스케일링된 버전(180b)을 제공하기 위해 구성될 수 있는 역 양자화기/재스케일러(180a)를 포함할 수 있다. 예를 들어, 역 양자화기/재스케일러(180a)는, 적어도 거의, 오디오 신호 인코더(200)의 선택적 스케일러/양자화기(120m)의 연산에 반대인 연산을 수행하기 위해 구성될 수 있다. 그에 따라, 선택적 역 양자화기/재스케일러(180a)는 제어 정보(230)에 상응할 수 있는 제어 정보를 수신할 수 있다.
시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)는 선택적으로 디코딩된 스펙트럼 값들(162) 또는 역 양자화된/재스케일링된 스펙트럼 값들(180b)을 수신하고, 그에 기초하여, 스펙트럼 전처리된 스펙트럼 값들(180d)을 제공하기 위해 구성되는 스펙트럼 전처리기(180c)를 포함한다. 예를 들어, 스펙트럼 전처리기(180c)는 오디오 신호 인코더(200)의 스펙트럼 후처리기(120k)와 비교했을 때 반대인 연산을 수행할 수 있다.
시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)는 또한 디코딩된 스펙트럼 값들(162), 역 양자화된/재스케일링된 스펙트럼 값들(180b), 또는 스펙트럼 전처리된 스펙트럼 값들(180d)을 수신하고, 그에 기초하여, 시간 도메인 표현(180f)을 제공하기 위해 구성되는 주파수 도메인 대 시간 도메인 변환기(180e)를 포함한다. 예를 들어, 주파수 도메인 대 시간 도메인 변환기는 역 스펙트럼 도메인 대 시간 도메인 변환, 예를 들어 역 수정 이산 코사인 변환(IMDCT)을 수행하기 위해 구성될 수 있다. 주파수 도메인 대 시간 도메인 변환기(180e)는, 예를 들어, 디코딩된 스펙트럼 값들의 한 셋트에 기초하여, 또는, 대안으로, 디코딩된 스펙트럼 값들의 복수의 셋트들에 기초하여 인코딩된 오디오 신호의 오디오 프레임의 시간 도메인 표현을 제공할 수 있다. 그러나, 인코딩된 오디오 신호의 오디오 프레임들은, 예를 들어, 몇몇 경우에 시간에서 중첩될 수 있다. 그렇기는 하지만, 오디오 프레임들은 몇몇 다른 경우에는 중첩되지 않을 수 있다.
시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)는 또한 시간 도메인 표현(180f)을 윈도윙하여 주파수 도메인 대 시간 도메인 변환기(180e)에 의해 제공된 시간 도메인 표현(180f)에 기초한 윈도윙된 시간 도메인 표현(180h)을 제공하기 위해 구성되는 윈도우어(180g)를 포함한다.
시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)는 또한 윈도윙된 시간 도메인 표현(180h)을 재샘플링하고, 그에 기초하여, 윈도윙되고 재샘플링된 시간 도메인 표현(180j)을 제공하기 위해 구성되는 재샘플러(180i)를 포함한다. 재샘플러(180i)는 샘플링 위치 계산기(180l)로부터 샘플링 위치 정보(180k)를 수신하기 위해 구성된다. 이에 따라, 재샘플러(180i)는 인코딩된 오디오 신호 표현의 각각의 프레임에 대한 윈도윙되고 재샘플링된 시간 도메인 표현(180j)을 제공하는데, 여기서 뒤이은 프레임들은 중첩될 수 있다.
그에 따라, 중첩기/가산기(180m)는 뒤이은 오디오 프레임들 사이의 평활한 전이들을 얻기 위해, 인코딩된 오디오 신호 표현(152)의 뒤이은 오디오 프레임들의 윈도윙되고 재샘플링된 시간 도메인 표현(180j)을 수신하여, 상기 윈도윙되고 재샘플링된 시간 도메인 표현(180j)을 중첩하고 가산한다.
시간 왜곡 주파수 도메인 대 시간 도메인 변환기는 선택적으로 중첩기/가산기(180m)에 의해 제공된 결합된 오디오 신호(180n)에 기초하여 후처리를 수행하기 위해 구성된 시간 도메인 후처리(180o)를 포함한다.
시간 왜곡 윤곽 정보(258)는 시간 왜곡 윤곽 정보(258)에 따라 컨텍스트 상태 정보(164)의 도출을 적응시키기 위해 구성되는 컨텍스트 상태 결정기(170)에 대한 입력 정보로 쓰일 수 있다. 또한, 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)의 샘플링 위치 계산기(180l)는 또한 시간 왜곡 윤곽 정보를 수신하고 상기 시간 왜곡 윤곽 정보(258)에 기초하여 샘플링 위치 정보(180k)를 제공함으로써, 시간 왜곡 윤곽 정보에 의해 기술된 시간 왜곡 윤곽에 따라 재샘플러(180i)에 의해 수행된 시간 변동 재샘플링을 적응시킨다. 그에 따라, 시간 왜곡 윤곽 정보(258)에 의해 기술된 시간 왜곡 윤곽에 따라 시간 도메인 표현(180f)에 의해 기술된 시간 도메인 신호에 피치 변동이 유입된다. 그러므로, 두드러진 피크와 밸리를 갖는 성긴 스펙트럼(180d)에 기초하여 시간이 지남에 따른 상당한 피치 변동(또는 시간이 지남에 따라 기본 주파수의 상당한 변화)을 지닌 오디오 신호의 시간 도메인 표현(180j)을 제공하는 것이 가능하다. 그러한 스펙트럼은 높은 비트레이트 효율로 인코딩될 수 있고, 결과적으로 인코딩 오디오 신호 표현(152)의 비교적 낮은 비트레이트 요구를 야기한다.
또한, 컨텍스트(또는, 좀더 일반적으로, 컨텍스트 상태 정보(164)의 도출)은 또한 컨텍스트 상태 결정기(170)를 이용하여 시간 윤곽 정보(258)에 따라 적응된다. 그에 따라, 인코딩된 시간 왜곡 정보(252)는 2회 재사용되고, 시간 왜곡 또는 시간이 지남에 따른 기본 주파수의 변동이 있을 때에 성긴 스펙트럼의 인코딩을 가능하게 하고 스펙트럼의 특정 특성들에 컨텍스트 상태 정보의 적용을 가능하게 함으로써 코딩 효율의 개선에 기여한다.
오디오 신호 인코더(240)의 개별 구성요소들의 기능에 관한 더욱 상세한 사항들이 하기에서 기술될 것이다.
5. 도 2c에 따른 산술 인코더
다음에서, 오디오 신호 인코더 100 또는 오디오 신호 인코더 200에서의 컨텍스트 상태 결정기(140)와 결합하여 컨텍스트 기반 스펙트럼 값 인코더(130)를 대신할 산술 인코더(290)가 기술될 것이다. 산술 인코더(290)는 스펙트럼 값들(291, 예를 들어, 주파수 도메인 표현(124)의 스펙트럼 값들)을 수신하고, 이러한 스펙트럼 값들(291)에 기초하여 코드워드들(292a, 292b)을 제공하기 위해 구성된다.
다시 말해, 산술 인코더(290)는, 예를 들어 주파수 도메인 오디오 표현(124)의 복수의 후처리되고 스케일링되고 양자화된 스펙트럼 값들(291)을 수신하기 위해 구성될 수 있다. 산술 인코더는 스펙트럼 값으로부터 최상위 비트 평면(m)을 추출하기 위해 구성되는 최상위 비트 평면 추출기(290a)를 포함한다. 여기서 최상위 비트 평면은, 스펙트럼 값들의 최상의 비트들인, 하나 이상의 비트(예를 들어, 2 또는 3 비트)를 포함할 수 있음에 유의해야 한다.
그러므로, 최상위 비트 평면 추출기(290a)는 스펙트럼 값의 최상위 비트 평면 값(290b)을 제공한다. 산술 인코더(290)는 또한 최상위 비트 평면 값(m)을 표현하는 산술 코드워드(acod_m[pki][m])를 결정하기 위해 구성되는 제1 코드워드 결정기(290c)를 포함한다.
선택적으로, 제1 코드워드 결정기(290c)는 또한, 예를 들어, 얼마나 많은 하위 비트 평면들이 이용가능한지를 나타내는(그리고, 결과적으로, 최상위 비트 평면의 수치적 가중치를 나타내는) (여기서 "ARITH_ESCAPE"라고도 가리켜지는) 하나 이상의 이스케이프 코드워드들을 제공할 수 있다. 제1 코드워드 결정기(290c)는 누적 도수 테이블(cumulative frequencies table) 인덱스(pki)를 갖는(또는 누적 도수 테이블에 의해 참조되는) 선택된 누적 도수 테이블을 이용하여 최상위 비트 평면 값(m)과 연관된 코드워드를 제공하기 위해 구성될 수 있다.
어떤 누적 도수 테이블이 선택되어야 하는지에 관해 결정하기 위해, 바람직하게는, 산술 인코더는, 예를 들어, 컨텍스트 상태 결정기(140)의 기능을 할 수 있는 상태 추적기(290d)를 포함한다. 상태 추적기(290d)는, 예를 들어, 어떤 스펙트럼 값들이 이전에 인코딩되었는지를 봐서, 산술 인코더의 상태를 추적하기 위해 구성된다. 상태 추적기(290d)는 결과적으로, 예를 들어, 때때로 "s" 또는 "t"라고 가리켜지는 상태 값의 형태로, 컨텍스트 상태 정보(134)와 동등할 수 있는 상태 정보(290e)를 제공한다(여기서 상태 값 s는 주파수 연장 인자 s와 혼동되어서는 안된다).
산술 인코더(290)는 또한 상태 정보(290e)를 수신하여, 코드워드 결정기(290c)에 선택된 누적 도수 테이블을 기술하는 정보(290g)를 제공하기 위해 구성되는 누적 도수 테이블 선택기(290f)를 포함한다. 예를 들어, 누적 도수 테이블 선택기(290f)는, 예를 들어, 64개의 누적 도수 테이블들의 셋트 중에서 어떤 누적 도수 테이블이 코드워드 결정기(290c)에 의해 사용되기 위해 선택되는지를 기술하는 누적 도수 테이블 인덱스 "pki"를 제공할 수 있다. 대안으로, 누적 도수 테이블 선택기(290f)는 코드워드 결정기(290c)에 선택된 누적 도수 테이블 전체를 제공할 수 있다. 그러므로, 코드워드 결정기(290c)가 최상위 비트 평면 값(m)의 코드워드(acod_m[pki][m])의 제공을 위해 선택된 누적 도수 테이블을 사용할 수 있어, 최상위 비트 평면 값(m)을 인코딩하는 실제 코드워드(acod_m[pki][m])가 값 m 및 누적 도수 테이블 인덱스(pki), 및 결과적으로 현재의 상태 정보(290e)에 의존한다. 코딩 과정 및 얻게 되는 코드워드 포맷에 대한 더 상세한 사항들이 하기에서 기술될 것이다. 또한, 컨텍스트 상태 결정기(140)와 동등한 상태 추적기(290d)의 연산에 관한 세부사항들이 하기에서 논의될 것이다.
산술 인코더(290)는, 만약 스펙트럼 값들 중 하나 이상이 오직 최상위 비트 평면만을 이용하여 인코딩 가능한 값들의 범위를 초과하면, 스케일링되고 양자화된 주파수 도메인 오디오 표현(291)으로부터 하나 이상의 하위 비트 평면들을 추출하기 위해 구성되는 하위 비트 평면 추출기(290h)를 더 포함한다. 하위 비트 평면들은 요구된 하나 이상의 비트를 포함할 수 있다. 그에 따라, 하위 비트 평면 추출기(290h)는 하위 비트 평면 정보(290i)를 제공한다.
산술 인코더(290)는 또한 하위 비트 평면 정보(290i)를 수신하고, 그에 기초하여, 0, 하나 이상의 하위 비트 평면들의 컨텐츠를 표현하는 0, 하나 또는 그 이상의 코드워드들 "acod_r"을 을 제공한다. 제2 코드워드 결정기(290j)는 하위 비트 평면 정보(290i)로부터 하위 비트 평면 코드워드 "acod_r"를 도출하기 위해 산술 인코딩 알고리즘 또는 임의의 다른 인코딩 알고리즘을 적용하도록 구성될 수 있다.
여기서, 하위 비트 평면들의 개수는 스케일링되고 양자화된 스펙트럼 값들(291)의 값에 따라 변할 수 있어, 만약 인코딩되는 스케일링되고 양자화된 스펙트럼 값이 비교적 작다면 하위 비트 평면들이 전혀 없을 수 있으며, 만약 인코딩되는 스케일링되고 양자화된 스펙트럼 값이 중간 범위 내에 있으면 하나의 하위 비트 평면이 있을 수 있고, 인코딩되는 스케일링되고 양자화된 스펙트럼 값이 비교적 큰 값을 취한다면 하나 이상의 하위 비트 평면이 있을 수 있다는 것에 유의해야 한다.
상기를 요약하면, 산술 인코더(290)는, 계층적 인코딩 과정을 이용하여, 정보 291에 의해 기술되는 스케일링되고 양자화된 스펙트럼 값들을 인코딩하기 위해 구성된다. (예를 들어, 스펙트럼 값 당 1, 2, 또는 3 비트를 포함하는) 최상위 비트 평면은 최상위 비트 평면 값의 산술 코드워드 "acod_m[pki][m]"를 얻기 위해 인코딩된다. (하위 비트 평면들 각각이, 예를 들어, 1, 2, 또는 3 비트를 포함하는) 하나 이상의 하위 비트 평면들은 하나 이상의 코드워드들 "acod_r"을 얻기 위해 인코딩된다. 최상위 비트 평면을 인코딩할 때, 최상위 비트 평면의 값 m은 코드워드 acod_m[pki][m]에 맵핑된다. 산술 인코더(170)의 상태에 따라, 즉 이전에 인코딩된 스펙트럼 값들에 따라 값 m을 인코딩하기 위해 64개의 각각 다른 누적 도수 테이블들이 이용 가능하다. 그에 따라, 코드워드 "acod_m[pki][m]"을 얻게 된다. 또한, 만약 하나 이상의 하위 비트 평면들이 존재한다면, 하나 이상의 코드워드들 "acod_r"이 제공되어 비트스트림 안에 포함된다.
그러나, 본 발명에 따라, 컨텍스트 상태 정보(134)와 동등한 상태 정보 290e의 도출은 제1 오디오 프레임에서 뒤이은 제2 오디오 프레임으로(즉 두 개의 뒤이은 오디오 프레임들 사이)의 기본 주파수 변화에 적응된다. 상태 추적기(290d)에 의해 수행될 수 있는 이 적응에 관한 세부사항들이 하기에서 기술될 것이다.
6. 도 2d에 따른 산술 디코더
도 2d는 도 1d에 따른 오디오 신호 디코더(150) 및 도 2b에 따른 오디오 신호 디코더(240)에서 컨텍스트 기반 스펙트럼 값 디코더(160) 및 컨텍스트 상태 결정기(170)를 대신할 수 있는 산술 디코더(295)의 블록 도식도를 도시한다.
산술 디코더(295)는, 예를 들어, 코드워드들 "acod_m" 및 "acod_r"의 형태로 산술적으로 코딩된 스펙트럼 데이터를 포함할 수 있는 인코딩된 주파수 도메인 표현(296)을 수신하기 위해 구성된다. 인코딩된 주파수 도메인 표현(296)은 컨텍스트 기반 스펙트럼 값 디코더(160)로 입력된 코드워드들과 동등할 수 있다. 또한, 산술 디코더는 컨텍스트 기반 스펙트럼 값 디코더(160)에 의해 제공된 디코딩된 스펙트럼 값들(162)과 동등할 수 있는 디코딩된 주파수 도메인 오디오 표현(297)을 제공하기 위해 구성된다.
산술 디코더(295)는 최상위 비트 평면 값(m)을 기술하는 산술 코드워드(acod_m[pki][m])를 수신하기 위해 구성되는 최상위 비트 평면 결정기(295a)를 포함한다. 최상위 비트 평면 결정기(295a)는 산술 코드워드 "acod_m[pki][m]"로부터 최상위 비트 평면 값(m)을 도출하기 위해 복수의, 예를 들어, 64개의 누적 도수 테이블들을 포함하는 셋트 중에서 하나의 누적 빈도 테이블을 사용하기 위해 구성될 수 있다.
최상위 비트 평면 결정기(295a)는 코드워드 "acod_m"에 기초하여 스펙트럼 값들의 최상위 비트 평면의 값들(295b)을 도출하기 위해 구성된다. 산술 디코더(295)는 스펙트럼 값의 하나 이상의 하위 비트 평면들을 표현하는 하나 이상의 코드워드들 "acod_r"을 수신하기 위해 구성되는 하위 비트 평면 결정기(295c)를 더 포함한다. 그에 따라, 하위 비트 평면 결정기(295c)는 하나 이상의 하위 비트 평면들의 디코딩된 값들(295d)을 제공하기 위해 구성된다. 산술 디코더(295)는 또한 스펙트럼 값들의 최상위 비트 평면의 디코딩된 값들(295b), 및 만약 현재의 스펙트럼 값들에 대해 그런 하위 비트 평면들이 이용가능하다면 스펙트럼 값들의 하나 이상의 하위 비트 평면들의 디코딩된 값들(295b)을 수신하기 위해 구성되는 비트 평면 결합기(295e)를 포함한다. 그에 따라, 비트 평면 결합기(295e)는 디코딩된 주파수 도메인 오디오 표현(297)의 부분인 코딩된 스펙트럼 값들을 제공한다. 물론, 산술 디코더(295)는 일반적으로 오디오 컨텐츠의 현재의 프레임과 연관된 디코딩된 스펙트럼 값들의 전체 셋트를 얻기 위해 복수의 스펙트럼 값들을 제공하도록 구성된다.
산술 디코더(295)는 산술 디코더(295)의 상태를 기술하는 상태 인덱스(295g)에 따라, 예를 들어, 64개의 누적 도수 테이블들 중 하나를 선택하기 위해 구성되는 누적 도수 테이블 선택기(295f)를 더 포함한다. 산술 디코더(295)는 이전에 디코딩된 스펙트럼 값들에 따라 산술 디코더의 상태를 추적하기 위해 구성되는 상태 추적기(295h)를 더 포함한다. 상태 추적기(295h)는 컨텍스트 상태 결정기(170)에 상응할 수 있다. 상태 추적기(295h)에 관한 세부사항들이 하기에서 기술될 것이다.
그에 따라, 누적 도수 테이블 선택기(295f)는 코드워드 "acod_m"에 따라 최상위 비트 평면 값(m)의 디코딩에 적용하기 위해, 선택된 누적 도수 테이블의 인덱스(예를 들어, pki), 또는 선택된 누적 도수 테이블 그 자체를 제공하기 위해 구성된다.
그에 따라, 산술 디코더(295)는 인접한 스펙트럼 값들의 최상위 비트 평면의 값들의 각각 다른 결합에 대한 각각 다른 확률을 이용한다. 컨텍스트에 따라 각각 다른 누적 도수 테이블들이 선택되어 적용된다. 다시 말해, 이전에 디코딩된 스펙트럼 값들을 봄으로써 얻게 되는 (컨텍스트 상태 정보(164)와 동등할 수 있는) 상태 인덱스(295g)에 따라, 예를 들어, 64개의 각각 다른 누적 도수 테이블들을 포함하는 셋트 중에서 각각 다른 누적 도수 테이블들을 선택함으로써 스펙트럼 값들 사이의 통계적 의존성이 이용된다. 뒤이은 오디오 프레임들 사이의 기본 주파수(또는 피치)의 변화에 관한 정보에 따라 상태 인덱스(205g, 또는 컨텍스트 상태 정보(164))의 도출을 적응시킴으로써 스펙트럼 스케일링이 고려된다.
7. 컨텍스트 적응의 구상에 대한 개관
다음에서, 시간 왜곡 정보를 이용하여 산술 코더의 컨텍스트를 적응시키기 위한 구상에 대한 개관이 주어질 것이다.
7.1 배경 정보
다음에서, 본 발명의 이해를 용이하게 하기 위해 몇몇 배경 정보가 제공될 것이다. 참고문헌 [3]에서 컨텍스트 적응 산술 코더(예를 들어, 참고문헌 [5] 참조)는 양자화된 스펙트럼 빈들을 무손실 코딩하는데 사용된다는 것에 유의해야 한다.
그런 컨텍스트 적응 산술 코딩의 그래프 표현을 도시하는 도 3a에 사용된 컨텍스트가 묘사된다. 도 3a에서, 이전의 프레임으로부터의 이미 디코딩된 빈들이 디코딩될 주파수 빈들에 대한 컨텍스트를 결정하는데 사용된다는 것을 알 수 있다. 여기서, 컨텍스트 및 코딩이 4튜플들 또는 라인식(line-wise) 또는 다른 n 튜플들인지는 기술된 발명에서 문제가 되지 않음에 유의해야 하며, 여기서 n은 변할 수 있다.
컨텍스트 적응 산술 코딩 또는 디코딩을 기술하는 도 3a를 다시 참조하면, 가로 좌표(310)는 시간을 기술하고 세로 좌표(312)는 주파수를 기술한다는 것에 유의해야 한다. 여기서, 스펙트럼 값들의 4튜플은 도 3a에 도시된 컨텍스트에 따라 공통 컨텍스트 상태를 이용하여 디코딩된다. 예를 들어, 시간 인덱스 k와 주파수 인덱스 i를 갖는 오디오 프레임과 연관된 스펙트럼 값들의 4튜플(320)의 디코딩을 위한 컨텍스트는 시간 인덱스 k와 주파수 인덱스 i-1을 갖는 제1 4튜플(322), 시간 인덱스 k-1과 주파수 인덱스 i-1을 갖는 제2 4튜플 인덱스(324), 시간 인덱스 k-1과 주파수 인덱스 i를 갖는 제3 4튜플(324), 및 시간 인덱스 k-1과 주파수 인덱스 i+1을 갖는 제4 4튜플(328)의 스펙트럼 값들에 기초한다. 주파수 인덱스들(i-1, i, i+1) 각각은 시간 도메인 대 주파수 도메인 변환 또는 주파수 도메인 대 시간 도메인 변환의 4개의 주파수 빈들을 가리킨다(또는, 좀더 정확히는, 연관된다). 그에 따라, 4튜플(320)의 디코딩을 위한 컨텍스트는 스펙트럼 값들의 4튜플들(322, 324, 326, 328)의 스펙트럼 값들에 기초한다. 그에 따라, 시간 인덱스 k-1을 갖는 이전의 오디오 프레임의 튜플 주파수 인덱스들 i-1, i, i+1을 갖는 스펙트럼 값들은 (일반적으로 시간 인덱스 k를 갖는 현재 디코딩되는 오디오 프레임의 튜플 주파수 인덱스 i-1을 갖는 스펙트럼 값들과 결합하여) 시간 인덱스 k를 갖는 현재의 오디오 프레임의 튜플 주파수 인덱스 i를 갖는 스펙트럼 값들의 디코딩을 위한 컨텍스트를 도출하는데 사용된다.
시간 왜곡 변환은 일반적으로 기본 주파수들에 변동이 있는 고조파 신호들에 대한 더 좋은 에너지 압축을 가져와, 만약 시간 왜곡이 적용되지 않았을 경우에 일어날 거의 희미하게 지워진 상위 부분들 대신 분명한 고조파 구조를 보이는 스펙트럼을 야기하는 것으로 확인됐다. 시간 왜곡의 한 가지 다른 효과는 연속되는 프레임들의 가능한 각각 다른 평균 국지적 샘플링 주파수들에 의해 야기된다. 이 효과는 일정한 고조파 구조와 달리 주파수 축을 따라 연장되는 변동하는 기본 주파수를 갖는 신호의 연속되는 스펙트럼을 야기하는 것으로 확인됐다.
도 3c의 하위 도면(390)은 그러한 예를 도시한다. 두 개의 연속되는 프레임들(예를 들어, "마지막 프레임" 및 "이 프레임"이라고 가리켜지는 프레임들)의 (ㅇ)를 들어, 주파수 빈 인덱스의 기능으로서 dB 크기인) 도면들이 들어 있는데, 여기서 변동하는 기본 주파수를 갖는 고조파 신호는 시간이 왜곡된 수정 이산 코사인 변환 코더(TW-MDCT 코더)로 코딩된다.
도 3b의 도면(370)에서 상응하는 상대적 피치 전개를 확인할 수 있는데, 이는 고조파 라인들의 줄어드는 상대적 피치 및, 따라서 증가하는 상대적 주파수를 보여준다.
이는 시간 왜곡 알고리즘(예를 들어, 시간 왜곡 샘플링 또는 재샘플링)의 적용 이후에 고조파 라인들의 증가된 주파수를 가져온다. ("이 프레임"이라고도 가리켜지는) 현재의 프레임의 이 스펙트럼은, (수정 이산 코사인 변환의 주파수 빈들 면에서 분류된) 주파수 축(392)을 따라 연장된, 마지막 프레임의 스페게트럼의 근사 복사본임을 확실히 알 수 있다. 이는 또한, 만약 우리가 ("마지막 프레임"이라고도 가리켜지는) 과거의 프레임을 (예를 들어, "이 프레임"이라고도 가리켜지는 현재의 프레임의 스펙트럼 값들의 디코딩을 위한) 산술 코더에 대한 컨테게스트로 사용한다면, 매칭하는 부분들이 이제 각각 다른 주파수 빈들에서 발생하기 때문에 상기 컨텍스트는 차선일 것이다.
도 3c의 상위 도표(380)은 보통 산술 코딩 기법에 비해 덜 효율적이라고 여겨지는 호프만 코딩 기법과 이를 비교하여 도시한다(예를 들어, 컨텍스트 의존 산술 코딩을 이용하는 인코딩 스펙트럼 값들에 대한 비트 요구). (예를 들어, 도 3c의 도표 390으로 표현되는 "마지막 프레임"의 스펙트럼 값들에 의해 정의될 수 있는) 차선의 과거 프레임으로 인해, 산술 코딩 기법은 현재의 프레임의 부분적 음조들이 과거의 프레임에서 낮은 에너지를 갖는 구역에 위치해 있는 곳에서 더 많은 비트들을 소비하고 반대의 경우도 마찬가지이다. 반면, 도 3c의 도표 380은, 적어도 기본 부분 음조인 경우에 컨텍스트가 좋으면, (예를 들어, 컨텍스트 의존 산술 코딩을 이용할 때) 허프만 코딩과 비교하여 비트 분포가 더 낮아짐을 도시한다.
상기를 요약하면, 도 3b의 도표 370은 상대적 피치 윤곽의 시간적 전개에 대한 예시를 도시한다. 가로 좌표(372)는 시간을 표현하고, 세로 좌표(374)는 상대적 피치(prel) 및 상대적 주파수(frel) 모두를 표현한다. 제1 곡선(376)은 상대적 피치의 시간적 전개를 표현하고, 제2 곡선(377)은 상대적 주파수의 시간적 전개를 표현한다. 알 수 있는 바와 같이, 상대적 피치는 시간이 지남에 따라 줄어들고, 반면 상대적 주파수는 시간이 지남에 따라 증가한다. 또한, ("마지막 프레임"이라고도 가리켜지는) 이전의 프레임의 시간 확장(378a) 및 ("이 프레임"이라고도 가리켜지는) 현재의 프레임의 시간 확장(378b)은 도 3b의 도표 370에서 중첩되지 않음에 유의해야 한다. 그러나, 일반적으로, 뒤이은 오디오 프레임들(378a, 378b)의 시간 확장들은 중첩될 수 있다. 예를 들어, 중첩은 약 50%일 수 있다.
이제 도 3c를 참조하면, 도표 390은 두 개의 뒤이은 프레임들에 대한 MDCT 스펙트럼을 도시하는 것임에 유의해야 한다. 가로 좌표(392)는 수정 이산 코사인 변화의 주파수 빈들 면에서 주파수를 표현한다. 세로 좌표(394)는 개별 스펙트럼 빈들의 (데시벨 면에서) 상대적 크기를 표현한다. 알 수 있는 바와 같이, 현재의 프레임("이 프레임")의 스펙트럼의 스펙트럼 피크들은 이전의 프레임("마지막 프레임")의 스펙트럼의 상응하는 스펙트럼 피크들에 대해 (주파수 의존 방식으로) 주파수에서 편이(shift)된다. 그에 따라, 만약 컨텍스트가 이전의 오디오 프레임의 스펙트럼 값들의 원래의 버전에 기초하여 형성되면 현재의 프레임의 스펙트럼 값들의 컨텍스트 기반 인코딩을 위해 컨텍스트가 잘 적응되지 않는데, 현재의 프레임의 스펙트럼의 스펙트럼 피크들이 이전의 오디오 프레임의 스펙트럼의 스펙트럼 피크들과 (주파수 면에서) 일치하지 않기 때문인 것으로 확인됐다. 그러므로, 스펙트럼 값들의 컨텍스트 기반 인코딩을 위한 비트레이트 요구가 상대적으로 높고, 컨텍스트 기반이 아닌 호프만 코딩의 경우보다 심지어 더 높을 수 있다. 이는 도 3c의 도표 380에서 알 수 있는데, 여기서 가로 좌표는 (수정 이산 코사인 변환의 빈들 면에서) 주파수를 기술하고, 여기서 세로 좌표(384)는 스펙트럼 값들의 인코디을 위해 요구된 비트들의 수를 기술한다.
7.2 해결책 논의
그러나, 본 발명에 따른 실시예들은 상기에서 논의된 문제에 대한 해결책을 제공한다. 피치 변동 정보는 시간 왜곡 수정 이산 코사인 변환 코더의 연속되는 스펙트럼 사이의(예를 들어, 연속되는 오디오 프레임들의 스펙트럼 사이의) 주파수 연장 인자의 근사치를 도출하는데 사용될 수 있는 것으로 확인됐다. 그 다음에, 이 주파수 인자들은 더 좋은 컨텍스트를 도출하기 위해 주파수 축을 따라 과거 컨텍스트를 연장하고, 따라서 하나의 주파수 라인을 코딩하는데 필요로 하는 비트들의 수를 감소시키고 코딩 이득을 증가시키는데 사용될 수 있는 것으로 확인됐다.
만약 이 연장 인자가 거의 과거의 프레임과 현재의 프레임의 평균 주파수들의 비율이라면 좋은 결과가 달성될 수 있는 것으로 확인됐다. 또한, 라인식, 또는 만약 산술 코더가 하나의 아이템으로서 라인들의 n 튜플들을 코딩한다면, 튜플식(tuple-wise)으로 행해질 수 있을 것으로 확인됐다.
다시 말해, 컨텍스트의 스트레칭은 라인식(즉, 수정 이산 코사인 변환의 주파수 빈들마다 개별적으로) 또는 튜플식(즉, 튜플 또는 수정 이산 코사인 변환의 복수의 스펙트럼 빈들의 셋트마다)으로 행해질 수 있다.
또한, 스트레칭 인자의 계산에 대한 해상도는 또한 실시예들의 요구조건들에 따라 변할 수 있다.
7.3 연장 인자 도출에 대한 예시들
다음에는, 스트레칭 인자 도출에 대한 몇몇 구상들이 상세히 기술될 것이다. 참조문헌 [3]에서 기술된 시간 왜곡 수정 이산 코사인 변환 방법, 및, 대안으로, 여기서 기술된 시간 왜곡 수정 이산 코사인 변환 방법은 이른바 평활한 피치 윤곽을 중간 정보로서 제공한다. (예를 들어, 어레이 "warp_contour[]"의 엔트리들에 의해, 또는 어레이 "new_warp_contour[]" 및 "past_warp_contour[]"의 엔트리들에 의해 기술될 수 있는) 평활화된 피치 윤곽에는 여러 연속되는 프레임들에 걸친 상대적 피치의 전게에 대한 정보가 들어 있어서, 하나의 프레임 내의 각각의 샘플에 대해, 상대적 피치의 평가가 알려진다. 그러면, 이 샘플들에 대한 상대적 주파수는 단순히 이 상대적 피치의 역이다.
예를 들어, 다음의 관계를 가질 수 있다:
Figure 112012082122024-pct00001

상기 방정식에서, prel[n]은, 단기 상대적 피치일 수 있는, 주어진 시간 인덱스(n)에 대한 상대적 피치를 가리킨다(여기서 시간 인덱스(n)는, 예를 들어, 개별 샘플을 가리킬 수 있다). 또한, frel[n]은 시간 인덱스(n)에 대한 상대적 주파수를 가리킬 수 있고, 단기 상대적 주파수 값일 수 있다.
7.3.1 제1 대안
그러면, 하나의 프레임(k, 여기서 k는 프레임 인덱스이다)에 걸친 평균 상대적 주파수는 이 프레임(k) 내의 모든 상대적 주파수들에 걸친 산술 평균으로 기술될 수 있다:
Figure 112012082122024-pct00002

상기 방정식에서, frel , mean ,k은 시간 프레임 인덱스(k)를 갖는 오디오 프레임에 걸친 평균 상대적 주파수를 가리킨다. N은 시간 프레임 인덱스(k)를 갖는 오디오 프레임에 대한 시간 도메인 샘플들의 개수를 가리킨다. n은 오디오 프레임 인덱스(k)를 갖는 현재의 오디오 프레임의 시간 도메인 샘플들의 시간 도메인 샘플 인덱스들(n=0 내지 n=N-1)에 걸쳐 움직이는 변수이다. frel[n]은 시간 도메인 샘플링 시간 인덱스(n)을 갖는 시간 도메인 샘플과 연관된 국지적 상대적 주파수를 가리킨다.
이로부터(즉 현재의 오디오 프레임에 대한 frel , mean ,k의 계산으로부터, 그리고 이전의 오디오 프레임에 대한 frel , mean ,k-1의 계산으로부터), 그러면, 현재의 오디오 프레임(k)에 대한 연장 인자(s)가 다음과 같이 도출될 수 있다:
Figure 112012082122024-pct00003

7.3.2 제2 대안
다음에서, 스트레칭 인자(s)의 계산에 대한 다른 대안이 기술될 것이다. 평균적으로, 상대적 피치가 1에 가까운 것으로 고려된다면 (예를 들어, 제1 대안과 비교했을 때) 더 간단하면서 연장 인자(s)의 덜 정확한 근사치를 알 수 있어서, 상대적 피치와 상대적 주파수의 관계가 거의 선형이고, 상대적 주파수를 얻기 위해 상대적 피치를 역으로 하는 단계는 생략될 수 있고, 평균 상대적 피치를 이용한다:
Figure 112012082122024-pct00004

상기 방정식에서, prel , mean ,k은 시간 오디오 프레임 인덱스(k)를 갖는 오디오 프레임에 대한 평균 상대적 피치를 가리킨다. N은 시간 오디오 프레임 인덱스(k)를 갖는 오디오 프레임의 시간 도메인 샘플들의 개수를 가리킨다. 경과(running) 변수 n은 0과 N-1 사이의 값들을 취하고, 그렇게 함으로써 현재의 오디오 프레임의 시간 인덱스들(n)을 갖는 시간 도메인 샘플들에 걸쳐 움직인다. prel[n]은 시간 도메인 인덱스(n)를 갖는 시간 도메인 샘플에 대한 (국지적) 상대적 피치 값을 가리킨다. 예를 들어, 상대적 피치 값(prel[n])은 왜곡 윤곽 어레이 "warp_contour[]"의 엔트리(warp_contour[n])와 동일할 수 있다.
이 경우에, 시간 프레임(k)을 갖는 오디오 프레임에 대한 연장 인자(s)는:
Figure 112012082122024-pct00005
과 같이 근사치가 계산될 수 있다.
상기 방정식에서, prel , mean ,k-1은 시간적 오디오 프레임 인덱스 k-1을 갖는 오디오 프레임에 대한 평균 피치 값을 가리키고, 변수 prel , mean ,k은 시간적 오디오 프레임 k를 갖는 오디오 프레임에 대한 평균 상대적 피치 값을 기술한다.
7.3.3 다른 대안들
그러나, 연장 인자(s)의 계산 또는 평가에 대한 상당히 다른 구상들이 사용될 수 있음에 유의해야 하는데, 여기서, 일반적으로, 연장 인자(s)는 또한 제1 오디오 프레임과 뒤이은 제2 오디오 프레임 사이의 기본 주파수의 변화를 기술한다. 예를 들어, 제1 오디오 프레임 및 뒤이은 제2 오디오 프레임의 스펙트럼들은, 그렇게 하여 연장 인자를 도출하기 위해, 패턴 비교 구상에 의하여 비교될 수 있다. 그럼에도 불구하고, 상기에서 논의된, 왜곡 윤곽 정보를 이용하는 주파수 연장 인자(s)의 계산이 특히 계산 효율적으로 보이기에, 이것이 바람직한 선택이다.
8. 컨텍스트 상태 결정에 관한 세부사항들
8.1 도 4a 및 4b에 따른 예시
다음에서, 컨텍스트 상태의 결정에 관한 세부사항들이 기술된다. 이를 위해, 그 블록 도식도가 도 4a에 도시되는, 컨텍스트 상태 결정기(400)의 기능이 기술될 것이다.
컨텍스트 상태 결정기 400은, 예를 들어, 컨텍스트 상태 결정기 140 또는 컨텍스트 상태 결정기 170을 대신할 수 있다. 다음에서, 비록 컨텍스트 상태 결정기에 관한 세부사항들이 오디오 신호 디코더의 경우에 대해 기술될 것이나, 컨텍스트 상태 결정기(400)는 또한 오디오 신호 인코더의 측면에서 사용될 수 있다.
컨텍스트 상태 결정기(400)는 이전에 디코딩된 스펙트럼 값들 또는 이전에 인코딩된 스펙트럼 값들에 관한 정보(410)를 수신하기 위해 구성된다. 또한, 컨텍스트 상태 결정기(400)는 시간 왜곡 정보 또는 시간 왜곡 윤곽 정보(412)를 수신한다. 시간 왜곡 정보 또는 시간 왜곡 윤곽 정보 412는, 예를 들어, 시간 왜곡 정보 122와 동일할 수 있고, 결과적으로, (적어도 함축적으로) 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화를 기술한다. 그렇지 않으면, 시간 왜곡 정보 또는 시간 왜곡 윤곽 정보 412는 시간 왜곡 정보 184와 동등할 수 있고, 결과적으로 뒤이은 프레임들 사이의 기본 주파수의 변화를 기술한다. 그러나, 그렇지 않으면, 시간 왜곡 정보/시간 왜곡 윤곽 정보 412는 시간 왜곡 윤곽 정보 222 또는 시간 왜곡 윤곽 정보 258과 동등할 수 있다. 일반적으로 말해서, 시간 왜곡 정보/시간 왜곡 윤곽 정보(412)는 직접적으로 또는 간접적으로 뒤이은 오디오 프레임들 사이의 주파수 변동을 기술할 수 있다. 예를 들어, 시간 왜곡 정보/시간 왜곡 윤곽 정보(212)는 왜곡 윤곽을 기술할 수 있어, 결과적으로 어레이 "warp_contour[]"의 엔트리들을 포함하거나, 시간 윤곽을 기술할 수 있어, 결과적으로 어레이 "time_contour[]"의 엔트리들을 포함할 수 있다.
컨텍스트 상태 결정기(400)는 현재의 프레임의 스펙트럼 값들의 인코딩 또는 디코딩을 위해 사용되는 컨텍스트를 기술하고, 현재의 오디오 프레임의 스펙트럼 값들의 인코딩 또는 디코딩을 위한 적절한 맵핑 규칙의 선택을 위해 컨텍스트 기반 스펙트럼 값 인코더 또는 컨텍스트 기반 스펙트럼 디코더에 의해 사용될 수 있는 컨텍스트 상태 값(420)을 제공한다. 컨텍스트 상태 값 420은, 예를 들어, 컨텍스트 상태 정보 134 또는 컨텍스트 상태 정보 164와 동등할 수 있다.
컨텍스트 상태 결정기(400)는, 예를 들어, 어레이 q[1][]와 같은 예비 컨텍스트 메모리 구조(432)를 제공하기 위해 구성되는 예비 컨텍스트 메모리 구조 제공기(430)를 포함한다. 예를 들어, 예비 컨텍스트 메모리 구조 제공기(430)는, 그렇게 함으로써, 예를 들어, (i=0 내지 i=M/4-1에 대한) 어레이 q[1][]의 N/4 엔트리들 q[1][i]의 셋트를 제공하기 위해, 도 25 및 26dp 따른 알고리즘들의 기능을 수행하기 위해 구성될 수 있다.
일반적으로 말해서, 예비 컨텍스트 메모리 구조 제공기(430)는 엔트리 주파수 인덱스 i를 갖는 엔트리가 주파수 인덱스 i를 갖는 (단일) 스펙트럼 값, 또는 공통 주파수 인덱스 i를 갖는 스펙트럼 값들의 셋트에 기초하도록 예비 컨텍스트 메모리 구조(432)의 엔트리들을 제공하기 위해 구성될 수 있다. 그러나, 예비 컨텍스트 메모리 구조 제공기(430)는 바람직하게는 예비 컨텍스트 메모리 구조(432)의 엔트리의 주파수 인덱스와 예비 컨텍스트 메모리 구조(432)가 기초하는 하나 이상의 인코딩된 스펙트럼 값들 또는 디코딩된 스펙트럼 값들의 주파수 인덱스들 사이에 고정 주파수 인덱스 관계가 있도록 예비 컨텍스트 메모리 구조(432)를 제공하기 위해 구성된다. 예를 들어, 미리 결정된 인덱스 관계는 예비 컨텍스트 상태 메모리 구조의 엔트리(q[1][i])가 시간 도메인 대 주파수 도메인 변환기 또는 주파수 도메인 대 시간 도메인 변환기의 주파수 빈 인덱스 i(또는 i-const, 여기서 const는 상수이다)를 갖는 주파수 빈의 스펙트럼 값들에 기초하는 그런 것일 수 있다. 대안으로, 예비 컨텍스트 메모리 구조(432)의 엔트리(q[1][i])가 시간 도메인 대 주파수 도메인 변환기 또는 주파수 도메인 대 시간 도메인 변환기의 주파수 빈 인덱스들 2i-1 및 2i(또는 주파수 빈 인덱스들의 편이된 범위)를 갖는 주파수 빈들의 스펙트럼 값들에 기초할 수 있다. 대안으로, 그러나, 예비 컨텍스트 메모리 구조(432)의 인덱스(q[1][i])는 시간 도메인 대 주파수 도메인 변환기 또는 주파수 도메인 대 시간 도메인 변환기의 주파수 빈 인덱스들 4i-3, 4i-2, 4i-1, 및 4(또는 주파수 빈 인덱스들의 편이된 범위)를 갖는 주파수 빈들의 스펙트럼 값들에 기초할 수 있다. 그러므로, 예비 컨텍스트 메모리 구조(432)의 각각의 엔트리는, 그에 기초하여 예비 컨텍스트 메모리 구조(432)가 설정되는, 오디오 프레임들의 미리 결정된 주파수 인덱스의 스펙트럼 값 또는 미리 결정된 주파수 인덱스들의 스펙트럼 값들의 셋트와 연관될 수 있다.
컨텍스트 상태 결정기(400)는 또한 시간 왜곡 정보/시간 왜곡 윤곽 정보(412)를 수신하고, 그에 기초하여, 주파수 연장 인자 정보(436)를 제공하기 위해 구성되는 주파수 연장 인자 계산기(434)를 포함한다. 예를 들어, 주파수 연장 인자 계산기(434)는 어레이 warp_contour[]의 엔트리들로부터 상대적 피치 정보(prel[n])를 도출하기 위해 구성될 수 있다(여기서 상대적 피치 정보(prel[n])는, 예를 들어, 어레이 warp_contour[]의 상응하는 엔트리와 동일할 수 있다). 또한, 주파수 연장 인자 계산기(434)는 두 개의 뒤이은 오디오 프레임들의 상기 상대적 피치 정보(prel[n])로부터 주파수 연장 인자 정보(s)를 얻기 위해 상기 방정식들 중 하나를 적용하도록 구성될 수 있다. 일반적으로 말해서, 주파수 연장 인자 계산기(434)는 주파수 연장 인자 정보가 이전의 인코딩된 또는 디코딩된 오디오 프레임과 현재의 컨텍스트 상태 값(420)을 이용하여 인코딩되거나 디코딩되는 현재의 오디오 프레임 사이의 기본 주파수의 변화를 기술하도록 주파수 연장 인자 정보(예를 들어, 값 s, 또는, 동등하게, 값 m_ContextUpdateRatio)를 제공하기 위해 구성될 수 있다.
컨텍스트 상태 결정기(400)는 또한 예비 컨텍스트 메모리 구조(432)를 수신하고, 그에 기초하여, 주파수가 스케일링된 컨텍스트 메모리 구조를 제공하기 위해 구성되는 주파수가 스케일링된 컨텍스트 메모리 구조 제공기를 포함한다. 예를 들어, 주파수가 스케일링된 컨텍스트 메모리 구조는, 예비 컨텍스트 메모리 구조(432)를 지니는 어레이의 업데이트된 버전일 수 있는, 어레이 q[1][]의 업데이트된 버전에 의해 표현될 수 있다.
주파수가 스케일링된 컨텍스트 메모리 구조 제공기는 주파수 스케일링을 이용하여 예비 컨텍스트 메모리 구조(432)로부터 주파수가 스케일링된 컨텍스트 메모리 구조를 도출하기 위해 구성될 수 있다. 주파수 스케일링에서, 예비 컨텍스트 메모리 구조(432)의 엔트리 인덱스 i를 갖는 엔트리의 값이 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리 인덱스 j를 갖는 엔트리로 복사되거나 편이될 수 있는데, 여기서 주파수 인덱스 i는 주파수 인덱스 j와 다를 수 있다. 예를 들어, 만약 에비 컨텍스트 메모리 구조(432)의 컨텐츠의 주파수 연장이 수행된다면, 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리 인덱스 j1을 갖는 엔트리는 예비 컨텍스트 메모리 구조(432)의 엔트리 인덱스 i1을 갖는 엔트리의 값으로 설정될 수 있고, 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리 인덱스 j2를 갖는 엔트리는 예비 컨텍스트 메모리 구조(432)의 엔트리 인덱스 i2를 갖는 엔트리의 값으로 설정될 수 있는데, 여기서 j2는 i2보다 크고, 여기서 j1은 i1보다 크다. 상응하는 주파수 인덱스들(예를 들어, j1 및 i1, 또는 j2 및 i2) 사이의 비율은 (반올림 오차를 제외하고) 미리 결정된 값을 취할 수 있다. 유사하게, 만약 예비 컨텍스트 메모리 구조(432)에 의해 기술된 컨텐츠의 주파수 압축이 주파수가 스케일링된 컨텍스트 메모리 구조 제공기(438)에 의해 수행되면, 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리 인덱스 j3를 갖는 엔트리는 예비 컨텍스트 메모리 구조(432)의 엔트리 인덱스 i3를 갖는 엔트리의 값으로 설정될 수 있고, 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리 인덱스 j4를 갖는 엔트리는 예비 컨텍스트 메모리 구조(432)의 엔트리 인덱스 i4를 갖는 엔트리의 값으로 설정될 수 있다. 이 경우에, 엔트리 인덱스 j3는 엔트리 인덱스 i3보다 작을 수 있고, 엔트리 인덱스 j4는 엔트리 인덱스 i4보다 작을 수 있다. 또한, 상응하는 엔트리 인덱스들(예를 들어, 엔트리 인덱스들 j3와 i3 사이, 또는 엔트리 인덱스들 j4와 i4 사이) 사이의 비율은 (반올림 오차들을 제외하고) 상수일 수 있고, 주파수 연장 인자 정보(436)에 의해 결정될 수 있다. 주파수가 스케일링된 컨텍스트 메모리 구조 제공기(440)의 연산에 관한 더 상세한 사항들이 하기에서 기술될 것이다.
컨텍스트 상태 결정기(400)는 또한 주파수가 스케일링된 컨텍스트 메모리 구조(440)에 기초하여 컨텍스트 상태 값(420)을 제공하기 위해 구성되는 컨텍스트 상태 값 제공기(442)를 포함한다. 예를 들어, 컨텍스트 상태 값 제공기(442)는, 그 엔트리들의 주파수 인덱스들이 주파수 인덱스 l0과 미리 결정된 관계에 있는, 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리들이 기초하여 주파수 인덱스 l0을 갖는 스펙트럼 값의 디코딩을 위한 컨텍스트를 기술하는 컨텍스트 상태 값(420)을 제공하기 위해 구성될 수 있다. 예를 들어, 컨텍스트 상태 값 제공기(442)는 주파수 인덱스들 l0-1, l0, 및 l0+1을 갖는 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리들에 기초하여 주파수 인덱스 l0을 갖는 스펙트럼 값(또는 스펙트럼 값들의 튜플)의 디코딩을 위한 컨텍스트 상태 값(420)을 제공하기 위해 구성될 수 있다.
그에 따라, 컨텍스트 상태 결정기(400)는, 만약 주파수가 스케일링된 컨텍스트 메모리 구조 제공기(438)에 의해 주파수 연장이 수행된다면, l0-1보다 작고, l0보다 작고, l0+1보다 작은 각각의 주파수 인덱스들을 갖는 예비 컨텍스트 메모리 구조(432)의 엔트리들에 기초하고, 주파수가 스케일링된 컨텍스트 메모리 구조 제공기(438)에 의해 주파수 압축이 수행되는 경우에는, 각각 l0-1보다 크고, l0보다 크고, l0+1보다 큰 각각의 주파수 인덱스들을 갖는 예비 컨텍스트 메모리 구조(432)의 엔트리들에 기초하여, 주파수 인덱스 l0을 갖는 스펙트럼 값(또는 스펙트럼 값들의 튜플)의 디코딩을 위한 컨텍스트 상태 값(420)을 효율적으로 제공할 수 있다.
그러므로, 컨텍스트 상태 결정기(400)는, 차례차례 시간이 지남에 따른 기본 주파수의 변화를 기술하는, 주파수 연장 인자(436)에 따라 주파수가 스케일링된, 예비 컨텍스트 메모리 구조(432)의 주파수가 스케일링된 버전인, 주파수가 스케일링된 컨텍스트 메모리 구조에 기초하여 컨텍스트 상태 값(420)을 제공함으로써 뒤이은 프레임들 사이의 기본 주파수의 변화에 컨텍스트의 결정을 적응시키기 위해 구성된다.
도 4b는 본 발명의 일 실시예에 따른 컨텍스트 상태의 결정에 대한 그래프 표현을 도시한다. 도 4b는 도면 부호 450으로, 예비 컨텍스트 메모리 구조 제공기(430)에 의해 제공되는, 예비 컨텍스트 메모리 구조(432)의 엔트리들의 도식적 표현을 도시한다. 예를 들어, 주파수 인덱스 i1+1을 갖는 엔트리 450a, 엔트리 450b, 및 주파수 인덱스 i2+2를 갖는 엔트리 450c가 표시된다. 그러나, 도면 부호 452로 도시되는 주파수가 스케일링된 컨텍스트 메모리 구조(440)를 제공할 때, 주파수 인덱스 i1을 갖는 엔트리 452a는 주파수 인덱스 i1+1을 갖는 엔트리 450a의 값을 취하도록 설정되고, 주파수 인덱스 i2-1을 갖는 엔트리 452c는 주파수 인덱스 i2+2fmf 갖는 엔트리 450c의 값을 취하도록 설정된다. 유사하게, 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 다른 엔트리들은 예비 컨텍스트 메모리 구조(430)의 엔트리들에 따라 설정될 수 있는데, 여기서, 일반적으로, 예비 컨텍스트 메모리 구조의 엔트리들 중 몇몇은 주파수 압축의 경우에 버려지고, 여기서, 일반적으로, 예비 컨텍스트 메모리 구조(432)의 엔트리들 중 몇몇은 주파수 연장의 경우에 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 하나 이상의 엔트리로 복사된다.
또한, 도 4b는 (도면 부호 452로 표현되는) 주파수가 스케일링된 컨텍스트 메모리 구조(440)의 엔트리들에 기초하여 시간 인덱스 k를 갖는 오디오 프레임의 스펙트럼 값들의 디코딩을 위해 컨텍스트 상태가 어떻게 결정되는지를 도시한다. 예를 들어, 시간 인덱스 k를 갖는 오디오 프레임의 주파수 인덱스 i1을 지닌 스펙트럼 값(또는 스펙트럼 값들의 튜플)의 디코딩을 위한 (예를 들어, 컨텍스트 상태 값(420)에 의해 표현된) 컨텍스트 상태를 결정할 때, 시간 인덱스 k를 갖는 오디오 프레임의 주파수 인덱스 i1-1을 지닌 컨텍스트 값, 및 시간 인덱스 k-1과 주파수 인덱스들 i1-1 및 i1+1을 갖는 오디오 프레임의 주파수가 스케일링된 컨텍스트 메모리 구조의 엔트리들이 평가된다. 그에 따라, 시간 인덱스 k 및 주파수 인덱스 i1을 갖는 오디오 프레임의 스펙트럼 값(또는 스펙트럼 값들의 튜플)의 디코딩을 위한 컨텍스트를 결정하기 위해 시간 인덱스 k-1과 주파수 인덱스들 i1-1, i1+1, 및 i1+2를 갖는 오디오 프레임의 예비 컨텍스트 메모리 구조의 엔트리들이 효율적으로 평가된다. 그러므로, 컨텍스트 상태 결정에 사용되는 스펙트럼 값들의 환경이 예비 컨텍스트 메모리 구조(또는 그것의 컨텐츠)의 주파수 연장 또는 주파수 압축에 의해 효율적으로 변한다.
8.2 도 4c에 따른 구현
다음에서, 튜플식 처리를 도시하는 도 4c를 참조하여, 4튜플들을 이용하는 산술 코더의 컨텍스트 맵핑에 대한 예시가 기술될 것이다.
도 4c는 예비 컨텍스트 메모리 구조(예를 들어, 예비 컨텍스트 메모리 구조 432)에 기초하여 주파수가 스케일링된 컨텍스트 메모리 구조(예를 들어, 주파수가 스케일링된 컨텍스트 메모리 구조 440)를 얻기 위한 알고리즘의 의사 프로그램 코드 포현을 도시한다.
도 4c에 따른 알고리즘 460은 예비 컨텍스트 메모리 구조(432)가 어레이 "self->base.m_qbuf"에 저장되는 것으로 가정한다. 또한, 알고리즘 460은 주파수 연장 인자 정보(436)가 변수 "self->base.m_ContextUpdateRatio"에 저장되는 것으로 가정한다.
제1 단계(460a)에서, 변수들의 수가 초기화된다. 특히, 목표 튜플 인덱스 변수 "nLinTupleIdx" 및 소스 튜플 인덱스 변수 "nWarpTupleIdx"가 0으로 초기화된다. 또한 재배열 버퍼 어레이(reorder buffer array) "Tqi4"가 초기화된다.
460b 단계에서 예비 컨텍스트 메모리 구조 "self->base.m_qbuf"의 엔트리들이 재배열 버퍼 어레이로 복사된다.
이어서, 목표 튜플 인덱스 변수 및 소스 튜플 인덱스 변수가 튜플들의 최대 개수를 기술하는 변수 nTuple보다 작은 한은 복사 알고리즘(460c)이 반복된다.
460ca 단계에서, 그 (튜플) 주파수 인덱스가 (제1 인덱스 상수 "firstIdx"와 함께) 소스 튜플 인덱스 변수의 현재의 값에 의해 결정되는, 재배열 버퍼의 네 개의 엔트리들이, 그 엔트리들의 주파수 인덱스들이 (제1 인덱스 상수 "firstIdx"와 함께) 목표 튜플 인덱스 값(nLinTupleIdx)에 결정되는, 컨텍스트 메모리 구조(self->base.m_qbuf[][])의 엔트리들에 복사된다.
460cb 단계에서, 목표 튜플 인덱스 변수가 1만큼 증대된다.
460cc 단계에서, 소스 튜플 인덱스 변수는, 가장 가까운 정수 값으로 반올림된, 목표 튜플 인덱스 변수(nLinTupleIdx)의 현재의 값과 주파수 연장 인자 정보(self->base.m_ContextUpdateRatio)의 곱인 값을로 설정된다. 그에 따라, 만약 주파수 연장 인자 변수가 1보다 크면 소스 튜플 인덱스 변수의 값은 목표 튜플 인덱스 변수의 값보다 클 수 있고, 만약 주파수 연장 인자 변수가 1보다 작으면 소스 튜플 인덱스 변수의 값은 목표 튜플 인덱스 변수보다 작을 수 있다.
그에 따라, (목표 튜플 인덱스 변수의 값과 소스 튜플 변수의 값 모두가 상수 nTuples보다 작은 한) 소스 튜플 변수의 값은 목표 튜플 인덱스 변수의 각각의 값과 연관된다. 460cb 및 460cc 단계에 이어, 소스 튜플과 목표 튜플 사이의 업데이트된 연관성을 이용하여, 460ca 단계에서 재배열 버퍼로부터 컨텍스트 메모리 구조로의 엔트리들의 복사가 반복된다.
그러므로, 도 4c에 따른 알고리즘 460은 주파수가 스케일링된 컨텍스트 메모리 구조 제공기(430a)의 기능을 수행하는데, 여기서 예비 컨텍스트 메모리 구조는 어레이 "self->base.m_qbuf"의 초기 엔트리들에 의해 표현되고, 여기서 주파수가 스케이링된 컨텍스트 메모리 구조(440)는 어레이 "self->base.m_qbuf"의 업데이트된 엔트리들에 의해 표현된다.
8.3 도 4d 및 4e에 따른 구현
다음에서, 라인식 처리를 도시하는 도 4c를 참조하여, 4튜플들을 이용하는 산술 코더의 컨텍스트 맵핑에 대한 예시가 기술될 것이다.
도 4d 및 4e는 컨텍스트의 주파수 스케일링(즉, 주파수 연장 또는 주파수 압축)을 수행하기 위한 알고리즘의 의사 프로그램 코드 표현을 도시한다.
도 4d 및 4e에 따른 알고리즘 470은, 입력 정보로서, 어레이 "self->base.m_qbuf[][]"(또는 적어도 상기 어레이의 참조) 및 주파수 연장 인자 정보 "sefl self->base.m_ContextUpdateRatio"을 수신한다. 또한, 알고리즘 470은, 입력 정보로서, 활성 라인들의 개수를 기술하는 변수 "self->base.m_IcsInfo->m_ScaleFactorBandsTransmitted"을 수신한다. 알고리즘 470은 상기 어레이(elf->base.m_qbuf[][])를 수정하여, 상기 어레이의 엔트리들이 주파수가 스케일링된 컨텍스트 메모리 구조를 나타낸다.
알고리즘 470은, 470a 단계에서, 복수의 변수들의 초기화를 포함한다. 특히, 목표 라인 인덱스 변수(linLineIdx) 및 소스 라인 인덱스 변수(warpLineIdx)는 0으로 초기화된다.
470b 단계에서, 활성 튜플들의 개수 및 활성 라인들의 개수가 계산된다.
다음에, (변수 "contextIdx"으로 가리켜지는) 각각 다른 컨텍스트 인덱스들을 포함하는 컨텍스트들의 두 셋트들이 처리된다. 그러나, 다른 실시예들에서 단지 컨텍스트만 처리하는 것도 충분하다.
470c 단계에서, 라인 임시 버퍼 어레이 "lineTmpBuf" 및 라인 재배열 버퍼 어레이 "lineReorderBuf"이 0 엔트리들로 초기화된다.
470d 단계에서, 스펙트럼 값들의 복수의 튜플들의 각각 다른 주파수 빈들과 연관된 예비 컨텍스트 메모리 구조의 엔트리들이 라인 재배열 버퍼 어레이에 복사된다. 그에 따라, 뒤이은 주파수 인덱스들을 갖는 라인 재배열 버퍼 어레이의 엔트리들은 각각 다른 주파수 빈들과 연관되는 예비 컨텍스트 메모리 구조의 엔트리들로 설정된다. 다시 말해, 예비 컨텍스트 메모리 구조는 스펙트럼 값들의 튜플마다 엔트리 "self->base.m_qbuf[CurTuple][contextIdx]"을 포함하는데, 여기서 스펙트럼 값들의 튜플과 연관된 엔트리는 개개의 스펙트럼 라인들(또는 스펙트럼 빈들)과 연관된 서브 엔트리들(a, b, c, d)을 포함한다. 서브 엔트리들(a, b, c, d) 각각은 470d 단계에서 라인 재배열 버퍼 어레이 "lineReorderBuf[]"의 개개의 엔트리로 복사된다.
결과적으로, 라인 재배열 버퍼 어레이는 470e 단계에서 라인 임시 버퍼 어레이 "lineTmpBuf[]"로 복사된다.
이어서, 목표 라인 인덱스 변수 및 소스 라인 인덱스 변수는 470f 단계에서 0 값을 취하도록 초기화된다.
이어서, 라인 재배열 버퍼 어레이의 엔트리들은 "lineReorderBuf[warpLineIdx]"은 470g 단계에서 목표 라인 인덱스 변수의 복수의 값들에 대한 라인 임시 버퍼 어레이로 복사된다. 목표 라인 인덱스 변수와 소스 라인 인덱스 변수 모두가 (0이 아닌) 활성 스펙프럼 라인들의 총 개수를 나타내는 변수 "activeLines"보다 작은 한 470g 단계는 반복된다. 목표 라인 인덱스 변수 "linLineIdx"의 현재의 값에 의해 가리켜진 라인 임시 버퍼 어레이의 엔트리는 소스 라인 인덱스 변수의 현재의 값에 의해 가리켜진 라인 재배열 버퍼 어레이의 값으로 설정된다. 이어서, 목표 라인 인덱스 변수는 1만큼 증대된다. 소스 라인 인덱스 변수 "warpLineIdx"는 목표 라인 인덱스 변수의 현재의 값과 (변수 "self->base.m_ContextUpdateRatio"으로 표현된) 주파수 연장 인자 정보의 곱으로 결정되는 값을 취하도록 설정된다.
목표 라인 인덱스 변수 및 소스 라인 인덱스 변수의 업데이트 이후에, 목표 라인 인덱스 변수와 소스 라인 인덱스 변수 모두가 변수 "activeLines"의 값보다 작게 제공된, 470g 단계가 반복된다.
그에 따라, 예비 컨텍스트 메모리 구조의 컨텍스트 엔트리들은 튜플식 방식 대신에 라인식 방식으로 주파수가 스케일링된다.
마지막 단계(470h)에서, 라인 임시 버퍼 어레인의 라인식 엔트리들에 기초하여 튜플 표현이 복원된다. 컨텍스트의 튜플 표현 "selfl->base.m_qbuf[curTuple][contextIdx]"의 엔트리들(a, b, c, d)은, 엔트리들이 주파수에서 인접하는, 라인 임시 버퍼 어레이의 4개의 엔트리들 "lineTmpBuf[(curTuple-1)*4+0]" 내지 "lineTmpBuf[(curTuple-1)*4+3]"에 따라 설정된다. 또한, 선택적으로, 튜플 에너지 필드 "e"는 각각의 튜플과 연관된 스펙트럼 값들의 에너지를 표현하도록 설정된다. 또한, 선택적으로, 만약 상기 튜플과 연관된 스펙트럼 값들의 크기가 비교적 작으면 튜플 표현의 추가적인 필드 "v"가 설정된다.
그러나, 470h 단계에서 수행되는 새로운 튜플들의 계산 관한 세부사항들은 컨텍스트의 실제 표현에 강하게 의존하고, 그러므로 현저하게 변할 수 있음에 유의해야 한다. 그러나, 일반적으로, 튜플 기반 표현은 470h 단계에서 주파수가 스케일링된 컨텍스트의 개개의 라인 기반 표현에 기초하여 생성된다고 할 수 있다.
요약하면, 알고리즘 470에 따라, 우선 튜플식 컨텍스트 표현(어레이 "self->base.m_qbuf[curTuple][contextIdx]"의 엔트리들)이 주파수 라인식 컨텍스트 표현(또는 주파수 빈식 컨텍스트 표현)으로 나누어진다(470d 단계). 이이서, 라인식 방식으로 주파수 스케일링이 수행된다(470g 단계). 마지막으로, 컨텍스트의 튜플식 표현(어레이 "self->base.m_qbuf[curTuple][contextIdx]"의 업데이트된 엔트리들)이 라인식 주파수 스케일링 정보에 기초하여 복원된다(470h 단계).
9. 주파수 도메인 대 시간 도메인 디코딩 알고리즘에 대한 상세한 설명
9.1 개관
본 발명의 일 실시예에 따른 오디오 디코더에 의해 수행된 알고리즘들 중 몇몇이 상세히 기술될 것이다. 이를 위해, 5a, 5b, 6a, 6b, 7a, 7b, 8, 9, 10a, 10b, 11, 12, 13, 14, 15, 및 16이 참조된다.
우선, 데이터 요소들의 정의에 대한 범례 및 조력 요소들의 정의에 대한 범례가 도시되는 도 7a가 참조된다. 또한, 상수들의 정의에 대한 범례를 도시하는 도 7b가 참조된다.
일반적으로 말해서, 여기서 기술된 방법들은 시간이 왜곡된 수정 이산 코사인 변환에 따라 인코딩되는 오디오 스트림의 디코딩에 사용될 수 있다고 할 수 있다. 그러므로, TW-MDCT가 (예를 들어, 특정 구성 정보에 포함될 수 있는, "twMDCT" 플래그라고 불리는 플래그에 의해 나타내어질 수 있는) 오디오 스트림에 대해 가능해질 때, 시간 왜곡 필터 뱅크 및 블록 전환은 오디오 디코더에서 표준 필터 뱅크 및 블록 전환을 대신할 수 있다. 역 수정 이산 코사인 변환(IMCT)뿐 아니라, 시간 왜곡 필터 뱅크 및 블록 전환에는 임의로 이격된 시간 그리드로부터 정상적인 규칙적으로 이격된 또는 선형으로 이격된 시간 그리드로의 시간 도메인 대 시간 도메인 맵핑 및 상응하는 윈도우 형태의 적응이 들어 있다.
여기서 기술된 디코딩 알고리즘은 스펙트럼의 인코딩된 표현 및 또한 인코딩된 시간 왜곡 정보(184, 252)에 기초하여, 예를 들어, 왜곡 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)에 의해 수행될 수 있음을 여기서 유의해야 한다.
9.2 정의:
데이터 요소들, 조력 요소들, 및 상수들에 대하여, 도 7a 및 7b가 참조된다.
9.3 디코딩 과정-왜곡 윤곽
왜곡 윤곽 노드들의 코드북 인덱스들은 다음과 같이 개개의 노드들에 대한 왜곡 값들로 디코딩된다:
Figure 112012082122024-pct00006

그러나, 여기서 "warp_value_tbl[tw_ratio[k]]"으로 가리켜지는 디코딩된 시간 왜곡 값으로의 시간 왜곡 코드워드들 "tw_ratio[k]"의 맵핑은, 선택적으로, 본 발명에 따른 실시예들에서 샘플링 주파수에 의존한다. 그에 따라, 본 발명에 따른 몇몇 실시예들에서는 단일 맵핑 테이블이 없고, 각각 다른 샘플링 주파수들에 대한 개개의 맵핑 테이블들이 있다.
샘플식(n_long samples)의 새로운 왜곡 윤곽 데이터 "new_warp_contour[]"를 얻기 위해, 이제, 왜곡 노드 값들 "warp_node_values[]"은 그 의사 프로그램 코드 표현이 도 9에 도시되는 알고리즘을 이용하여 동등하게 이격된(interp_dist apart) 노드들 사이에서 선형으로 보간된다.
이 프레임에 대한(예를 들어, 현재의 프레임에 대한) 전체 왜곡 윤곽을 얻기 전에, 과거에서 버퍼링된 값들이 재스케일링 될 수 있어, 과거의 윤곽 "past_warp_contour[]"의 마지막 값은 1이다.
Figure 112012082122024-pct00007

과거의 왜곡 윤곽 "past_warp_contour"과 현재의 왜곡 윤곽 "new_warp_contour"을 연결시킴으로써 전체 왜곡 윤곽 "warp_contour[]"을 얻게 되고, 모든 새로운 왜곡 윤곽 값들 "new_warp_contour[]"에 대한 합으로서 새로운 왜곡 합 "new_warp_sum"이 계산된다:
Figure 112012082122024-pct00008

9.4 디코딩 과정 - 샘플 위치 및 윈도우 길이 조정
왜곡 윤곽 "warp_contour[]"으로부터, 선형 시간 스케일로 왜곡된 샘플들의 샘플 위치들의 벡터가 계산된다. 이를 위해, 다음의 방정식들에 따라 시가나 왜곡 윤곽이 발생된다:
Figure 112012082122024-pct00009
여기서,
Figure 112012082122024-pct00010

그 의사 프로그램 코드 표현들이 각각 도 10a 및 도 10b에 도시되는 조력 함수들 "warp_inv_vec()" 및 "warp_time_inv()"으로, 그 의사 프로그램 코드 표현이 도 11에 도시되는 알고리즘에 따라 샘플 위치 벡터 및 전이 길이가 계산된다.
9.5 디코딩 과정 - 역 수정 이산 코사인 변환( IMDCT )
다음에서, 역 수정 이산 코사인 변환이 간략히 기술될 것이다.
역 수정 이산 코사인 변환의 분석 표현은 다음과 같다:
0≤N에 있어서
Figure 112012082122024-pct00011
여기서:
n = 샘플 인덱스
i = 윈도우 인덱스
k = 스펙트럼 계수 인덱스
N = window_sequence 값에 기초한 윈도우 길이
n0 = (N/2+1)/2
역 변환에 대한 합성 윈도우 길이는 (비트스트림에 포함될 수 있는) 구문 요소 "window_sequence" 및 알고리즘의 컨텍스트의 함수이다. 예를 들어, 합성 윈도우 길이는 도 12의 테이블에 따라 정의될 수 있다.
의미있는 블록 전이들 도 13의 테이블에 열거된다. 주어진 테이블 칸 안의 체크 표시는 이 특정 행에 열겨된 윈도우 시퀀스에 이 특정 열에 열거된 윈도우 시퀀스가 뒤따를 수 있음을 나타낸다.
허용된 윈도우 시퀀스와 곤련하여, 예를 들어, 오디오 디코더는 각각 다른 길이의 윈도우들 사이에서 전환가능하든 것이 유의해야 한다. 그러나, 윈도우 길이들의 전환은 본 발명과 특별한 관련성이 없다. 오히려, 본 발명은 타입 "only_long_sequence"의 윈도우들의 스퀀스가 있고 코어 코더 프레임 길이가 1024와 같다는 가정에 기초하여 이해될 수 있다.
또한, 상기 오디오 신호 디코더는 주파수 도메인 코딩 모드와 시간 도메인 코딩 모드 사이에서 전환가능하다는 것에 유의해야 한다. 그러나, 이러한 가능성은 본 발명에 특별한 관련성이 없다. 오히려, 본 발명은, 예를 들어, 도 1b 및 2b를 참조하여 논의된 주파수 도메인 코딩 모드만을 다룰 수 있는 오디오 신호 디코더들에 적용가능하다.
9.6 디코딩 과정 - 윈도윙 및 블록 전환
다음에서, 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180), 특히, 그것의 윈도우어(180g)에 의해 수행될 수 있는 윈도윙 및 블록 전환이 기술될 것이다.
(오디오 신호를 표현하는 비트스트림에 포함될 수 있는) "window_shape" 요소에 따라 각각 다르게 오버샘플링된 변환 윈도우 프로토타입들이 사용되고, 오버샘플링된 윈도우들의 길이는
Figure 112012082122024-pct00012

이다.
window_shape==1에 있어서, 윈도우 계수들은 다음과 같이 카이저 베셀 도출(Kaiser - Bessel derived) 윈도우에 의해 주어진다:
Figure 112012082122024-pct00013
에 있어서,
Figure 112012082122024-pct00014

여기서:
카이저 베셀 커널 함수 W'는 다음과 같이 정의된다:
Figure 112012082122024-pct00015
에 있어서,
Figure 112012082122024-pct00016
α = 커널 윈도우 알파 인자, α=4
그렇지 않으면, window_shape==0에 있어서, 사인(sine) 윈도우는 다음과 같이 이용된다:
Figure 112012082122024-pct00017
에 있어서,
Figure 112012082122024-pct00018

모든 종류의 윈도우 시퀀스들에 있어서, 왼쪽 윈도우 부분에 대해 사용된 프로토타입은 이전 블록의 윈도우 형태에 의해 결정된다. 다음 공식이 이 사실을 나타낸다:
Figure 112012082122024-pct00019

오른쪽 윈도우 형태에 대한 프로토타입은 다음의 공식에 의해 결정된다:
Figure 112012082122024-pct00020

전이 길이들이 이미 결정되었기 때문에, 타입 "EIGHT_SHORT_SEQUENCE"의 윈도우 시퀀스와 모든 다른 윈도우 시퀀스들 간의 구별만이 될 것이다.
현재의 프레임이 타입 "EIGHT_SHORT_SEQUENCE"인 경우에, 윈도위 및 내부(프레임 내부) 중첩 및 가산이 수행된다. 도 14의 C 코드 같은 부분은 윈도우 타입 "EIGHT_SHORT_SEQUENCE"을 갖는 프레임의 윈도윙 및 내부 중첩 가산을 표현한다.
임의의 다른 타입의 프레임들에 대해, 그 의사 프로그램 코드 표현이 도 15에 도시되는 알고리즘이 사용될 수 있다.
9.7 디코딩 과정 - 시간 변동 재샘플링
다음에서, 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180) 및, 특히 재샘플러(180i)에 의해 수행될 수 있는 시간 변동 재샘플링이 기술될 것이다.
윈도윙된 블록(z[])은 다음의 임펄스 응답을 이용하여 (디코딩된 시간 왜곡 윤곽 정보(258)에 기초하여 샘플링 위치 계산기(1801)에 의해 제공되는) 샘플링 위치들에 따라 재샘플링된다:
0≤n<IP_SIZE-1, α=8에 있어서,
Figure 112012082122024-pct00021

재샘플링하기 전에, 윈도윙된 블록은 양쪽 끝이 0들로 패딩된다:
Figure 112012082122024-pct00022

재샘플링 그 자체는 도 16에 도신된 의사 프로그램 코드 부문에 표현된다.
9.8. 디코딩 과정 - 이전의 윈도윙 시퀀스를 이용한 중첩 및 가산
시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)의 중첩기/가산기(180m)에 의해 수행되는 중첩 및 가산은 모든 시퀀스들에 대해 동일하고, 다음과 같이 수학적으로 기술될 수 있다:
Figure 112012082122024-pct00023

9.9. 디코딩 과정 - 메모리 업데이트
다음에서, 메모리 업데이트가 기술될 것이다. 비록 도 2b에 특정 수단들이 도시되어 있지 않더라도, 메모리 업데이트는 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)에 의해 수행될 수 있다는 것에 유의해야 한다.
다음 프레임을 디코딩하기 위해 필요로 하는 메모리 버퍼들은 다음과 같이 업데이트된다:
0≤n<2·n_long에 있어서,
Figure 112012082122024-pct00024
Figure 112012082122024-pct00025

첫 번째 프레임을 디코딩하기 전에 또는 만약 마지막 프레임이 광 LPC 도메인 코더에 의해 인코딩되었다면, 메모리 상태들은 다음과 같이 설정된다:
0≤n<2·n_long에 있어서,
Figure 112012082122024-pct00026
Figure 112012082122024-pct00027

9.10. 디코딩 과정 - 결론
상기를 요약하면, 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180)에 의해 수행될 수 있는 디코딩 과정이 기술되었다. 알 수 있는 바와 같이, 예를 들어, 2048개의 시간 도메인 샘플들의 오디오 프레임에 대해 시간 도메인 표현이 제공되고, 예를 들어, 뒤이은 오디오 프레임들은 약 50% 중첩될 수 있어, 뒤이은 오디오 프레임들의 시간 도메인 표현들 사이의 평활한 전이가 보장된다.
예를 들어, NUM_TW_NODES = 16의 디코딩된 시간 왜곡 값들의 셋트는, 오디오 프레임의 시간 도메인 샘플들의 실제 샘플링 주파수와 상관없이, (시간 왜곡이 상기 오디오 프레임에서 활성화 중이라고 하면) 오디오 프레임들 각각과 연관될 수 있다.
10. 스펙트럼 무잡음 코딩
다음에서, 컨텍스트 상태 결정기(170)와 결합하여 컨텍스트 기반 스펙트럼 값 디코더(160)에 의해 수행될 수 있는 스펙트럼 무잡음 코딩에 관한 몇몇 세부사항들이 기술될 것이다. 상응하는 인코딩은 컨텍스트 상태 결정기(140)와 결합하여 컨텍스트 스펙트럼 값 인코더에 의해 수행될 수 있음에 유의해야 하는데, 여기서 당업자들은 디코딩 단계들에 대한 상세한 논의로부터 각각의 인코딩 단계들을 이해할 것이다.
10.1. 스펙트럼 무잡음 코딩 - 수단 설명
양자화된 스펙트럼의 중복을 더 감소시키기 위해 스펙트럼 무잡음 코딩이 사용된다. 스펙트럼 무잡음 코딩 기법은 동적으로 적응된 컨텍스트와 함께 산술 코딩에 기초한다. 하기에서 논의된 스펙트럼 무잡음 코딩 기법은 2튜플들에 기초하는데, 즉 두 개의 이웃하는 스펙트럼 계수들이 결합된다. 각각의 2튜플들은 부호, 최상위 2비트 와이즈 평면, 및 잔여 하위 비트 평면들로 나눠진다. 최상위 2비트 와이즈 평면(m)에 대한 무잡은 코딩은 네 개의 이전에 디코딩된 2튜플들로부터 도출된 컨텍스트 의존 누적 도수 테이블들을 이용한다. 무잡음 코딩은 양자화된 스펙트럼 값들이 공급되고 네 개의 이전의 디코딩된 이웃하는 2튜플들로부터 도출된(예를 들어, 네 개의 이전의 디코딩된 이웃하는 2튜플들에 따라 선택된) 컨텍스트 의존 누적 도수 테이블들을 이용한다. 여기서, 상태 계산을 위한 컨텍스트의 그래프 표현을 보여주는 도 16에 도시된 바와 같이, 시간과 주파수 모두에서 이웃하는 것이 고려된다. 그 다음에, 누적 도수 테이블은 변수 길이 이진 코드를 발생시키기 위해 산술 코더(인코더 또는 디코더)에 의해 이용된다.
그러나, 각각 다른 컨텍스트 크기가 선택될 수 있음에 유의해야 한다. 예를 들어, 디코딩하기 위한 튜플의 환경에 있는 더 적거나 더 많은 개수의 튜플들이 컨텍스트 결정에 사용될 수 있다. 또한, 하나의 튜플은 더 적거나 더 많은 개수의 스펙트럼 값들을 포함할 수 있다. 대안으로, 개개의 스펙트럼 값들은 튜플들 대신에 컨텍스트를 얻는데 사용될 수 있다.
산술 코더는 주어진 심볼들의 셋트에 대한 이진 코드 및 그 각각의 확률을 야기한다. 이진 코드는 심볼들의 셋트가 위치해 있는 확률 구간을 코드워드에 맵핑함으로써 발생된다.
10.2. 스펙트럼 무잡음 코딩 - 정의
변수들, 상수들, 및 기타 등등에 대한 정의에 대해서, 정의의 범례가 도시되는 도 18이 참조된다.
10.3 디코딩 과정
양자화된 스펙트럼 계수들 "x_ac_dec[]"은 가장 낮은 주파수 계수들에서 시작하여 가장 높은 주파수 계수들로 진행해 나가며 무소음 디코딩된다. 예를 들어, 이른바 2튜플(a, b)로 모이는 두 개의 연이은 계수들의 그룹에 의해 디코딩된다.
그 다음에, (상기에서 기술된 바와 같은) 주파수 도메인 모드에 대한 디코딩된 계수들(x_ac_dec[])은 어레이 "x_ac_quant[g][win][sfb][bin]"에 저장된다. 무잡음 코딩 코드워드들의 전송 순서는 어레이에 수신되어 저장된 순서로 디코딩될 때, bin이 가장 빠르게 증가하는 인덱스이고 g가 가장 느리게 증가하는 인덱스이다. 코드워드 내에서, 디코딩 순서는 a, 그리고 그 다음에 b이다.
선택적으로, 변환 코딩된 여자 모드에 대한 계수들이 또한 평가될 수 있다. 비록 상기 예시들이 단지 주파수 도메인 오디오 인코딩 및 주파수 도메인 오디오 디코딩과 관련된다고 할지라도, 여기서 기술된 구상들은 변환 코딩된 여자 모드에서 작동하는 오디오 인코더들 및 오디오 디코더들에 실제로 사용될 수 있다. 변환 코딩된 여자(TCX)에 대한 디코딩된 계수들은(x_ac_dec[]) 어레이 x_tcx_invquant[win][bin]에 바로 저장되고, 무잡음 코딩 코드워드들의 전송 순서는 어레이에 수신되어 저장된 순서로 디코딩될 때, bin이 가장 빠르게 증가하는 인덱스이고 win이 가장 느리게 증가하는 인덱스이다. 코드워드 내에서 디코딩 순서는 a, 그리고 그 다음에 b이다.
우선, (선택적) 플래그 "arith_reset_flag"는 컨텍스트가 재설정되어야 하는지(또는 재설정될 것인지)를 결정한다. 만약 플래그가 TRUE라면, 초기화가 수행된다.
디코딩 과정은 어레이들(또는 서브 어레이들) q[1][]에 저장된 이전의 프레임의 컨텍스트 요소들을 q[0][]로 복사하고 맵핑함으로써 컨텍스트 요소 벡터(q)가 업데이트되는 초기화 단계로 시작한다. q 내의 컨텍스트 요소들은, 예를 들어, 2튜플당 4비트에 저장된다. 초기화에 관한 세부사항들을 위해, 그 의사 프로그램 코드 표현이 도 19에 도시되는 알고리즘이 참조된다.
도 19의 알고리즘에 따라 수행될 수 있는 초기화에 이어, 상기에서 논의되었던 컨텍스트의 주파수 스케일링이 수행될 수 있다. 예를 들어, 어레이(또는 서브 어레이) q[0][]는 예비 컨텍스트 메모리 구조(432)로 여겨질 수 있다(또는 규모(dimension) 및 엔트리들 e와 v에 관한 세부사항들을 제외하고, 어레이 self->base.m_qbuf[][]와 동등할 수 있다). 또한, 주파수가 스케일링된 컨텍스트는 어레이 q[0][](또는 어레이 "self->base.m_qbuf[][]")에 다시 저장될 수 있다. 대안으로, 그러나, 또는 덧붙여, 어레이(또는 서브 어레이) q[1][]의 컨텐츠는 상기 장치 438에 의해 주파수가 스케일링될 수 있다.
요약하면, 무잡음 디코더는 무부호 양자화된 스펙트럼 계수들의 2튜플들을 출력한다. 처음에(또는, 일반적으로, 주파수 스케일링 이후에), 컨텍스트의 상태(c)는 디코딩하기 위한 2튜플 주위의 이전에 디코딩된 스펙트럼 계수들에 기초하여 계산된다. 그러므로, 상기 상태는 단지 두 개의 새로운 2튜플들만을 고려하여 마지막 디코딩된 2튜플의 컨텍스트 상태를 이용해 증가하여 업데이트된다. 상기 상태는, 예를 들어, 17비트로 코딩되고, 그 의사 프로그램 코드 표현이 도 20에 도시되는 함수 "arith_get_context[]"에 의해 반환된다.
함수 "arith_get_context[]"의 반환 값으로서 얻게 되는 컨텍스트 상태(c)는 최상위 2비트 와이즈 평면(m)을 디코딩하는데 사용되는 누적 도수 테이블을 결정한다. c로부터 상응하는 누적 도수 테이블 인덱스(pki)로의 맵핑은 그 의사 프로그램 코드 표현이 도 21dp 도시되는 함수 "arith_get_pk[]"에 의해 수행된다.
상기 값 m은 누적 도수 테이블 "arith_cf_m[pki][]"을 호출하여 함수 "arith_decode[]"을 이용해 디코딩되는데, 여기서 pki는 함수 "arith_get_pk[]"에 의해 반환된 인덱스에 상응한다. 산술 코더는 스케일링에 따른 태그 발생 방법을 이용하는 정수 구현이다. 도 22에 따른 의사 C 코드는 사용된 알고리즘을 기술한다.
디코딩된 값 m이 이스케이프 심볼 "ARITH_ESCAPE"일 때, 변수들 "lev", 및 "esc_nb"는 1만큼 증가되고 다른 값 m은 디코딩된다. 이 경우에, 입력 인수로서 값 c & esc_nb << 17와 함께 함수 "get_pk[]"이 다시 한번 호출되는데, 여기서 esc_nb는 동일한 2튜플에 대한 이전에 디코딩된 이스케이프 심볼들의 개수이고 7로 경계지어진다.
값 m이 이스케이프 심볼 "ARITH_ESCAPE"이 아니면, 상기 디코더는 연이은 m이 "ARITH_STOP" 심볼인지를 검사한다. 만약 조건(esc_nb > 0 && m == 0)이 참이라면, "ARITH_STOP"이 검출되고 디코딩 과정이 종료된다. 상기 디코더는 이후에서 기술된 부호 디코딩으로 바로 뛰어넘는다. 상기 조건은 나머지 프레임이 0 값들로 구성됨을 의미한다.
만약 "ARITH_STOP" 심볼이 충족되지 않는다면, 그 다음에, 현재의 2튜플에 대해 조금이라도 남아 있다면, 잔여 비트 평면들이 디코딩된다. 잔여 비트 평면들은 lev회 함수 "arith_decode[]"을 호출하여 최상위에서 최하위 수준으로 디코딩된다. 디코딩된 비트 평면들(r)은 그 의사 프로그램 코드가 도 23dp 도시되는 알고리즘에 따라 이전에 디코딩된 값들(a, b)을 정제하는 것을 허용한다.
이 시점에서, 2튜플(a, b)의 무부호 값이 완전히 디코딩된다. 도 24의 의사 프로그램 코드에 도시된 바와 같이, 스펙트럼 계수들을 지니며 어레이 "x_ac_dec[]"에 저장된다.
컨텍스트(q)는 또한 다음 2튜플을 위해 업데이트된다. 이 컨텍스트 업데이트는 마지막 2튜플을 위해서도 수행될 수 있음에 유의해야 한다. 컨텍스트 업데이트는 그 의사 프로그램 코드가 도 25에 도시되는 함수 "artih_update_context[]"에 의해 수행된다.
그 다음에, 1만큼 i를 증가시키고 상기에서 기술된 것과 동일한 과정을 다시 행함으로써 프레임의 다음 2튜플이 디코딩된다. 특히, 컨텍스트의 주파수 스케일링이 수행될 수 있고, 이어서, 상기에거 기술된 과정이 함수 "arith_get_context[]"에서부터 다시 시작될 수 있다. 1g/2 2튜플들이 프레임 내에서 디코딩되거나 중지 심볼 "ARITH_STOP"이 발생될 때, 스펙트럼 진폭의 디코딩 과정은 끝나고 부호들의 디코딩이 시작된다.
모든 무부호 양자화된 스펙트럼 계수들이 디코딩되면, 그에 따른 부호가 부가된다. 각각의 0이 아닌 양자화된 값 "x_ac_dec"에 대해, 한 비트가 판독된다. 만약 판독된 값이 1과 동일하다면, 양자되된 값은 양(positive)이며, 아무것도 행해지지 않고, 부호 값은 이전에 디코딩된 무부호 값과 동일하다. 그렇지 않으면, 디코딩된 계수는 음(negative)이고, 무부호 값으로부터 2의 보수가 취해진다. 부호 비트는 낮은 주파수에서부터 높은 주파수로 판독된다.
그 의사 프로그램 코드가 도 26에 도시된 함수 "arith_finish[]"를 호출함으로써 디코딩이 완료된다. 잔여 스펙트럼 계수들은 0으로 설정된다. 각각의 컨텍스트 상태들은 상응하게 업데이트된다.
상기를 요약하면, 스펙트럼 값들의 컨텍스트 기반(또는 컨텍스트 의존) 디코딩이 수행되는데, 여기서 개개의 스펙트럼 값들이 디코딩되거나, 여기서 (상기에서 보인 바와 같이) 스펙트럼 값들이 튜플식으로 디코딩된다. 상기 컨텍스트는 기본 주파수(또는, 동등하게 피치)의 시간적 변동의 경우에 좋은 인코딩/디코딩 성능을 얻기 위해, 여기서 논의된 바와 같이, 주파수가 스케일링될 수 있다.
11. 도 27a-27f에 따른 오디오 스트림
다음에서, 하나 이상의 오디오 신호 채널들 및 하나 이상의 시간 왜곡 윤곽들의 인코딩된 표현을 포함하는 오디오 스트림이 기술될 것이다. 다음에서 기술된 오디오 스트림은, 예를 들어, 인코딩된 오디오 신포 표현 112 또는 인코딩된 오디오 신호 표현 152을 지닌다.
도 27a는 단일 채널 요소(SCE), 채널 쌍 요소(CPE), 또는 하나 이상의 단일 쌍 채널 요소들 및/또는 하나 이상의 채널 쌍 요소들의 조합을 포함할 수 있는 이른바 "USAC_raw_data_block" 데이터 스트림 요소의 그래픽 표현을 도시한다.
"USAC_raw_data_block"는 일반적으로 인코딩된 오디오 데이터의 블록을 포함할 수 있고, 한편 별도의 데이터 스트림 요소로 추가적인 시간 왜곡 윤곽 정보가 제공될 수 있다. 그렇기는 하지만, 몇몇 시간 왜곡 윤곽 데이터를 "USAC_raw_data_block"으로 인코딩하는 것은 당연히 가능하다.
도 27b에서 알 수 있는 바와 같이, 단일 채널 요소는 일반적으로 주파수 도메인 채널 스트림("fd_channel_stream")을 포함하는데, 이는 도 27d를 참조하여 상세히 설명될 것이다.
도 27c에서 알 수 있는 바와 같이, 채널 쌍 요소("channel_pair_element")는 일반적으로 복수의 주파수 도메인 채널 스트림들을 포함한다. 또한, 채널 쌍 요소는, 예를 들어, 구성 데이터 스트림 요소 또는 "USAC_raw_data_block"으로 전송될 수 있고, 시간 왜곡 정 채널 쌍 요소에 포함되어 있는지 여부를 결정하는 시간 왜곡 활성화 플래그("tw_MDCT")와 같은 시간 왜곡 정보를 포함할 수 있다. 예를 들어, 만약 "tw_MDCT" 플래그가 시간 왜곡이 활성화되었다고 나타내면, 채널 쌍 요소는 채널 쌍 요소의 오디오 채널들에 대한 공통 시간 왜곡이 있는지 여부를 나타내는 플래그("common_tw")를 포함할 수 있다. 만약 상기 플래그("common_tw")가 다수의 오디오 채널들에 대한 공통 시간 왜곡이 있다고 나타내면, 그러면 시간 왜곡 정보("tw_data")는, 예를 들어, 주파수 도메인 채널 스트림들과 별도로, 채널 쌍 요소에 포함된다.
이제 도 27d를 참조하면, 주파수 도메인 채널 스트림이 기술된다. 도 27d에서 알 수 있는 바와 같이, 주파수 도메인 채널 스트림은, 예를 들어, 전역 이득 정보를 포함한다. 또한, 주파수 도메인 채널 스트림은 만약 시간 왜곡이 활성화되고(플래그 "tw_MDCT"가 활성화 되고) 다수의 오디오 신호 채널들에 대한 공통 시간 왜곡 정보가 없다면(플래그 "common_tw"이 비활성화라면), 시간 왜곡 데이터를 포함한다.
나아가, 주파수 도메인 채널 스트림은 또한 스케일 인자 데이터("scale_factor_data") 및 인코딩된 스펙트럼 데이터(예를 들어, 산술적으로 인코딩된 스펙트럼 데이터 "ac_spectral_data")를 포함한다.
이제 도 27e를 참조해 보면, 시간 왜곡 데이터의 구문이 간략히 논의된다. 시간 왜곡 데이터는, 예를 들어, 선택적으로, 시간 왜곡 데이터가 존재하는지 여부를 나타내는 플래그(예를 들어, "tw_data_present" 또는 "active_pitch_data")를 포함할 수 있다. 만약 시간 왜곡 데이터가 존재한다면(즉, 시간 왜곡 윤곽이 평평하지 않다면), 시간 왜곡 데이터는, 예를 들어, 상기에서 기술된 바와 같은, 샘플링 레이트 의존 코드북 테이블에 따라 인코딩될 수 있는 복수의 인코딩된 시간 왜곡 비율 값들(예를 들어, "tw_ratio[i]" 또는 "pitch Idx[i]")의 시퀀스를 포함할 수 있다.
그러므로, 만약 시간 왜곡 윤곽이 상수라면(시간 왜곡 비율이 거의 1.000과 동일하다면), 시간 왜곡 데이터는, 오디오 신호 인코더에 의해 설정될 수 있는, 이용가능한 시간 왜곡 데이터가 없음을 나타내는 플래그를 포함할 수 있다. 반면에, 만약 시간 왜곡 윤곽이 변한다면, 뒤이은 시간 왜곡 윤곽 노드들 사이의 비율은, "tw_ratio" 정보를 이루는, 코드북 인덱스들을 이용하여 인코딩될 것이다.
도 27f는 산술적으로 코딩된 스펙트럼 데이터 "ac_spectral_data()"의 구문에 대한 그래픽 표현을 도시한다. 산술적으로 코딩된 스펙트럼 데이터는, 만약 활성화 중이라면, 산술적으로 코딩된 데이터가 이전의 프레임의 산술적으로 인코딩된 데이터와 독립적임을 나타내는 독립 플래그(여기서: "indepFlag")의 상태에 따라 인코딩된다. 만약 독립 플래그 "indepFlag"가 활성화 중이라면, 산술 재설정 플래그 "arith_reset_flag"가 활성화되도록 설정된다. 그렇지 않으면, 산술 재설정 플래그의 값은 산술적으로 코딩된 스펙트럼 데이터에서 1비트에 의해 결정된다.
또한, 산술적으로 코딩된 스펙트럼 데이터 블록 "ac_spectral_data()"은 하나 이상의 산술적으로 코딩된 데이터의 유닛들을 포함할 수 있는데, 여기서 산술적으로 코딩된 데이터 "arith_data()"의 유닛들의 개수는 현재 프레임 내의 블록들(또는 윈도우들)의 개수에 의존한다. 긴 블록 모드에서는, 오디오 프레임당 오직 하나의 윈도우가 있다. 그러나, 짧은 블록 모드에서는, 예를 들어, 오디오 프레임당 8개의 윈도우들이 있을 수 있다. 산술적으로 코딩된 스펙트럼 데이터 "arith_data()"의 각각의 유닛은, 예를 들어, 역 변환(180e)에 의해 수행될 수 있는 주파수 도메인 대 시간 도메인 변환을 위한 입력으로서 쓰일 수 있는 스펙트럼 계수들의 셋트를 포함한다.
산술적으로 인코딩된 데이터 "arith_data"의 유닛당 스펙트럼 계수들의 개수는, 예를 들어 샘플링 주파수에 독립적일 수 있으나, 블록 길이 모드(짧은 블록 모드 "EIGHT_SHORT_SEQUENCE" 또는 긴 블록 모드 "ONLY_LONG_SEQUENCE")에 의존할 수 있다.
12. 결론
상기를 요약하면, 시간이 왜곡된 수정 이산 코사인 변환의 측면에서의 개선이 논의되었다. 여기서 기술된 본 발명은 시간이 왜곡된 수정 이산 변환 코더에 관한 것이고(예를 들어, 참고문헌 [1] 및 [2] 참조), 왜곡 MDCT 변형 코더의 개선된 성능을 위한 방법들을 포함한다. 그러한 시간이 왜곡된 수정 이산 코사인 변환 코더에 대한 한 구현은 진행 중인 MPEG USAC 오디오 코딩 표준화 작업에서 실현된다(예를 들어, 참고문헌 [3] 참조). TW-MDCT 구현에 관한 세부사항들은, 예를 들어, 참고문헌 [4]에서 확인할 수 있다.
그러나, 언급된 구상들에 대한 개선이 여기서 제안된다.
13. 구현 대안들
비록 몇몇 양상들이 장치의 맥락에서 기술되었지만, 이러한 양상들은 또한 상응하는 방법의 설명을 나타낼 수 있음이 자명한데, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 비슷하게, 방법 단계의 맥락에서 기술된 양상들은 또한 상응하는 블록이나 항목 또는 상응하는 장치의 특징에 대한 설명을 나타낸다. 방법 단계들의 일부 또는 전체는 예를 들어, 마이크로프로세서, 프로그램가능한 컴퓨터, 또는 전자 회로와 같은 하드웨어 장치들에 의해(을 이용하여) 실행될 수 있다. 몇몇 실시예들에서, 어떤 하나 이상의 가장 중요한 방법 단계들이 그러한 장치에 의해 수행될 수 있다.
본 발명의 인코딩된 오디오 신호는 디지털 저장 매체에 저장될 수 있거나, 인터넷(Internet)과 같은 무선 전송 매체 또는 유선 전송 매체와 같은 전송 매체로 전송될 수 있다.
특정 구현 요구조건들에 따라, 본 발명의 실시예들은 하드워에 또는 소프트웨어로 구현될 수 있다. 상기 구현은, 상기 각각의 방법이 수행되도록 프로그램 가능한 컴퓨터 시스템과 협조하는(또는 협조할 수 있는) 전자적으로 판독가능한 제어 신호들이 저장된 디지털 저장 매체, 예를 들어, 플로피 디스크, DVD, 블루레이, CD, ROM, PROM, EPROM, EEPROM, 또는 플래시 메몰를 이용하여 수행될 수 있다. 그러므로, 디지털 저장 매체는 컴퓨터로 판독가능할 수 있다.
본 발명에 따른 몇몇 실시예들은 프로그램가능한 컴퓨터 시스템과 협조할 수 있는 전자적으로 판독가능한 제어 신호들을 갖는 데이터 캐리어를 포함하여, 여기에서 기술된 방법들 중 하나가 수행된다.
일반적으로, 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로 구현될 수 있는데, 상기 프로그램 코드는 상기 컴퓨터 프로그램 제품이 컴퓨터에서 구동할 때 상기 방법들 중 하나를 수행하기 위해 작동된다. 프로그램 코드는 예를 들어 기계 판독가능한 캐리어에 저장될 수 있다.
다른 실시예들은, 기계 판독가능한 캐리어에 저장된, 여기에서 기술된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
다시 말해, 그러므로, 본 발명의 방법의 일 실시예는, 컴퓨터 프로그램이 컴퓨터에서 구동할 때, 여기에서 기술된 방법들 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
그러므로, 본 발명의 방법들의 다른 실시예는, 그 위에 기록된, 여기에서 기술된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함하는 데이터 캐리어(또는 디지털 저장 매체, 또는 컴퓨터 판독가능한 매체)이다. 데이터 캐리어, 디지털 저장 매체, 또는 기록 매체는 일반적으로 유형이고/이거나 변하지 않는다.
그러므로, 본 발명의 방법의 다른 실시예는 여기에 기술된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 표현하는 데이터 스트림 또는 신호들의 시퀀스이다. 데이터 스트림 또는 신호들의 시퀀는 예를 들어 데이터 통신 연결, 예를 들어 인터넷을 통해 전송되기 위해 구성될 수 있다.
다른 실시예는 여기에 기술된 방법들 중 하나를 수행하기 위해 구성되거나 적응된 처리 수단들, 예를 들어 컴퓨터 프로그램, 또는 프로그램가능한 논리 소자를 포함한다.
다른 실시예는 여기에 기술된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 그 위에 설치된 컴퓨터를 포함한다.
본 발명에 따른 다른 실시예는 수신기에 여기서 기술된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 (예를 들어, 전자적으로 또는 광학적으로) 전송하기 위해 구성된 장치 또는 시스템을 포함한다. 상기 수신기는, 예를 들어, 컴퓨터, 이동 기기, 메모리 소자 등일 수 있다. 상기 장치나 시스템은, 예를 들어, 수신기에 컴퓨터 프로그램을 전송하기 위한 파일 서버를 포함할 수 있다.
몇몇 실시예들에서, 프로그램가능한 논리 소자(예를 들어, 필드 프로그램가능한 게이트 어레이)는 여기에 기술된 방법들의 기능들의 일부 또는 전체를 수행하는데 사용될 수 있다. 몇몇 실시예들에서, 필드 프로그램가능한 게이트 어레이는 여기에 기술된 방법들 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 바람직하게는, 상기 방법들은 임의의 하드웨어 장치로 수행된다.
상기에서 기술된 실시예들은 단지 본 발명의 원리들을 설명하기 위한 것이다. 여기서 기술된 배열들 및 세부사항들의 수정 및 변경이 당업자들에게 자명할 것으로 이해된다. 그러므로, 오직 곧 나올 특허 청구항들의 범위에 위해서만 제한되고, 여기에서의 실시예들에 대한 기술 및 설명으로 제시된 구체적인 세부사항들에 대해서는 제한되지 않음을 의도한다.
참고문헌
[1] Bernd Edler 외, "시간 왜곡 MDCT(Time Warped MDCT)" US 61/042,314, 가출원,
[2] L. Villemoes, "오디오 신호의 시간 왜곡 변환 코딩(Time Warped Transform Coding of Audio Signals)", 국제 특허 출원 PCT/EP2006/010246, 2005년 11월.
[3] "USAC의 WD6(WD6 of USAC)", ISO/IEC JTC1/SC29/WG11 N11213, 2010년
[4] Bernd Edler 외, "음성 변환 코딩에 대한 시간 왜곡 MDCT 접근법(A Time-Warped MDCT Approach to Speech Transform Coding", 제126회 AEC 컨벤션, 뮌헨, 2009년 5월, 견본인쇄 7710
[5] Nikolaus Meine, "Vektorquantisierung und kontextabhangige arithmetische Codierung fur MPEG-4 AAC", VDI, 하노버, 2007년

Claims (17)

  1. 인코딩된 스펙트럼 표현(ac_spectral_data[]) 및 인코딩된 시간 왜곡(warp) 정보(tw_data[])를 포함하는 인코딩된 오디오 신호 표현(152)에 기초하여 디코딩된 오디오 신호 표현(154)을 제공하기 위한 오디오 신호 디코더(150; 240)에 있어서,
    디코딩된 스펙트럼 값들(162, 297, x_ac_dec[])을 얻기 위해, 컨텍스트(context) 상태에 따라 하나 이상의 스펙트럼 값들 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부(m)를 기술하는 코드워드(codeword, acod_m)를 디코딩하기 위해 구성된 컨텍스트 기반 스펙트럼 값 디코더(160); 및
    하나 이상의 이전에 디코딩된 스펙트럼 값들(162, 297)에 따라 현재의 컨텍스트 상태(164, c)를 결정하기 위해 구성된 컨텍스트 상태 결정기(170; 400);
    주어진 오디오 프레임과 연관되고 상기 컨텍스트 기반 스펙트럼 값 디코더에 의해서 그리고 상기 시간 왜곡 정보에 따라 제공된 디코딩된 스펙트럼 값들(162, 297)의 셋트에 기초하여 주어진 오디오 프레임의 시간이 왜곡된 시간 도메인 표현(182)을 제공하기 위해 구성된 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180);
    를 포함하되,
    상기 컨텍스트 상태 결정기(170; 400)는 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 상기 컨텍스트 상태의 결정을 적응시키기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  2. 청구항 1에 있어서,
    상기 시간 왜곡 정보(tw_data)는 시간이 지남에 따른 피치의 변동(prel)를 기술하고;
    상기 컨텍스트 상태 결정기(170; 400)는 상기 시간 왜곡 정보(tw_data)로부터 주파수 연장 정보(s; m_ContextUpdateRatio)를 도출하기 위해 구성되고;
    상기 컨텍스트 상태 결정기는, 현재의 오디오 프레임의 하나 이상의 스펙트럼 값들의 컨텍스트 기반 디코딩을 위해 적응된 컨텍스트(440, q[0][], 452)를 얻기 위해, 상기 주파수 연장 정보(s,m_ContextUpdateRatio)에 따라 주파수 축에 따른 이전의 오디오 프레임과 연관된 과거의 컨텍스트(432, q[0][], 450)를 연장하거나 압축하기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  3. 청구항 2에 있어서,
    상기 컨텍스트 상태 결정기(170, 400)는 상기 시간 왜곡 정보(tw_data, prel, warp_contour[])로부터 제1 오디오 프레임에 걸친 제1 평균 주파수 정보(frel , mean ,k-1)를 도출하고, 상기 시간 왜곡 정보로부터 상기 제1 오디오 프레임 다음의 제2 오디오 프레임에 걸친 제2 평균 주파수 정보(frel , mean ,k)를 도출하기 위해 구성되고;
    상기 컨텍스트 상태 결정기는 상기 주파수 연장 정보(s, m_ContextUpdateRatio)를 결정하기 위해 상기 제2 오디오 프레임에 걸친 상기 제2 평균 주파수 정보(frel , mean ,k)와 상기 제1 오디오 프레임에 걸친 상기 제1 평균 주파수 정보(frel , mean ,k-1) 사이의 비율을 계산하기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  4. 청구항 2에 있어서,
    상기 컨텍스트 상태 결정기(170; 400)는 상기 시간 왜곡 정보(tw_data, prel, warp_contour[])로부터 제1 오디오 프레임에 걸친 제1 평균 시간 왜곡 윤곽 정보(prel , mean ,k-1)를 결정하기 위해 구성되고,
    상기 컨텍스트 상태 결정기는 상기 시간 왜곡 정보(252, tw_data, prel, warp_contour[])로부터 상기 제1 오디오 프레임 다음의 제2 오디오 프레임에 걸친 제2 평균 시간 왜곡 윤곽 정보(prel , mean ,k)를 도출하기 위해 구성되고,
    상기 컨텍스트 상태 결정기는, 상기 주파수 연장 정보(s,m_ContextUpdateRatio)를 결정하기 위해, 상기 제1 오디오 프레임에 걸친 상기 제1 평균 시간 왜곡 윤곽 정보(prel , mean ,k-1)와 상기 제2 오디오 프레임에 걸친 상기 제2 평균 시간 왜곡 윤곽 정보(prel , mean ,k) 사이의 비율을 계산하기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  5. 청구항 3에 있어서,
    상기 컨텍스트 상태 결정기(170, 400)는 복수의 연속되는 오디오 프레임들에 걸쳐 확장하는 공통 시간 왜곡 윤곽(warp_contour[])으로부터 제1 및 제2 평균 주파수 정보 또는 제1 및 제2 평균 시간 왜곡 윤곽 정보를 도출하기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  6. 청구항 3에 있어서,
    상기 오디오 신호 디코더는,
    상기 시간 왜곡 정보(tw_data, 252)에 기초하여 복수의 연속되는 오디오 프레임들에 걸친 상대적(relative) 피치의 시간적 전개를 기술하는 시간 왜곡 윤곽 정보(prel[], warp_contour[], 258)를 계산하기 위해 구성된 시간 왜곡 계산기(250);
    를 포함하고,
    상기 컨텍스트 상태 결정기(170, 400)는 상기 주파수 연장 정보를 도출하도록 상기 시간 왜곡 윤곽 정보를 사용하기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  7. 청구항 6에 있어서,
    상기 오디오 신호 디코더는,
    재샘플링 위치 계산기(1801);
    를 포함하되,
    상기 재샘플링 위치 계산기(1801)는 상기 시간 왜곡 윤곽 정보(prel[], warp_contour[], 258)에 기초하여 시간 왜곡 재샘플러(180i)가 사용하기 위한 재샘플링 위치들을 계산하기 위해 구성되어, 상기 재샘플링 위치들의 시간적 변동가 상기 시간 왜곡 윤곽 정보에 의해 결정되는 것을 특징으로 하는 오디오 신호 디코더.
  8. 청구항 1에 있어서,
    상기 컨텍스트 상태 결정기(170, 400)는, 복수의 이전에 디코딩된 스펙트럼 값들에 따라, 상기 컨텍스트 상태를 기술하는 수치적 현재의 컨텍스트 값(164, c)을 도출하여, 상기 수치적 현재의 컨텍스트 값에 따라, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 일부(m)를 표현하는 심볼 코드(symbol)로의 코드 값(acod_m)의 맵핑을 기술하는 맵핑 규칙(cum_freq[])을 선택하기 위해 구성되며,
    상기 컨텍스트 기반 스펙트럼 값 디코더(160)는, 상기 컨텍스트 상태 결정기에 의해 선택된 상기 맵핑 규칙(cum_freq[])을 이용하여, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부(m)를 기술하는 코드 값(acod_m)을 디코딩하기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  9. 청구항 8에 있어서,
    상기 컨텍스트 상태 결정기(170, 400)는 예비 컨텍스트 메모리 구조(432, m_qbuf)를 설정하고 업데이트하기 위해 구성되어, 상기 예비 컨텍스트 메모리 구조의 엔트리들이 제1 오디오 프레임의 하나 이상의 스펙트럼 값들(162, 297)을 기술하며, 상기 예비 컨텍스트 메모리 구조의 엔트리들의 엔트리 인덱스들은 각각의 엔트리들이 연관되는 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180e)의 주파수 빈(bin) 또는 인접한 주파수 빈들의 셋트를 나타내며,
    상기 컨텍스트 상태 결정기는 상기 예비 컨텍스트 메모리 구조에 기초하여 상기 제1 오디오 프레임 다음의 제2 오디오 프레임의 디코딩을 위한 주파수가 스케일링된 컨텍스트 메모리 구조(440; m_qbuf)를 얻기 위해 구성되어, 제1 주파수 인덱스(i1+1, i2+2, nWarpTupleIdx)를 갖는 상기 예비 컨텍스트 메모리 구조의 주어진 엔트리(450a, 450c, self->base.m_qbuf[nWarpTupleIdx]) 또는 서브 엔트리(self->base.m_qbuf[nWarpTupleIdx].a)가 제2 주파수 인덱스(i1, i2-1, nLinTupleIdx)를 갖는 상기 주파수가 스케일링된 콘텍스트 메모리 구조(440,m_qbuf,452)의 상응하는 엔트리(452a, 452c, self->base.m_qbuf[nLinTupleIdx]) 또는 서브 엔트리(self->base.m_qbuf[nLinTupleIdx].a)로 맵핑되며, 상기 제2 주파수 인덱스는 상기 제1 주파수 인덱스와는 다른 상기 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180e)의 다른 주파수 빈 또는 인접한 주파수 빈들의 셋트와 연관되는 것을 특징으로 하는 오디오 신호 디코더.
  10. 청구항 9에 있어서,
    상기 컨텍스트 상태 결정기(170, 400)는, 상기 주파수가 스케일링된 컨텍스트 메모리 구조의 그 주파수 인덱스들(i1-1,i1,i1+1)의 값들이 제3 주파수 인덱스(il)와 미리 결정된 관계에 있는, 상기 주파수가 스케일링된 컨텍스트 메모리 구조(440, m_qbuf, 452)의 값을 이용하는 연관된 제3 주파수 인덱스(il)를 갖는, 제2 오디오 프레임의 하나 이상의 스펙트럼 값들, 또는 상기 제2 오디오 프레임의 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부(m)를 기술하는 코드 워드(acod_m)의 디코딩을 위한 상기 현재의 컨텍스트 상태를 기술하는 컨텍스트 상태 값(164, 420)을 도출하기 위해 구성되며,
    상기 제3 주파수 인덱스(il)는 상기 현재의 컨텍스트 상태를 이용하여 디코딩되는 상기 제2 오디오 프레임의 하나 이상의 스펙트럼 값들이 연관되는 상기 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180e)의 주파수 빈 또는 인접한 주파수 빈들의 셋트를 가리키는 것을 특징으로 하는 오디오 신호 디코더.
  11. 청구항 9에 있어서,
    상기 컨텍스트 상태 결정기(170;400)는 상응하는 소스 주파수 인덱스(i1+1, i2+2, nWarpTupleIdx)를 갖는 상기 예비 컨텍스트 메모리 구조(432,450,m_qbuf)의 상응하는 엔트리(450a, 450c, self->base.m_qbuf[nWarpTupleIdx])의 값에 상응하는 목표 주파수 인덱스(i1, i2-1, nLinTupleIdx)를 갖는 상기 주파수가 스케일링된 컨텍스트 메모리 구조(440,452,m_qbuf)의 복수의 엔트리들(452a, 452c, self->base.m_qbuf[nLinTupleIdx])) 각각을 설정하기 위해 구성되며,
    상기 컨텍스트 상태 결정기는 상기 주파수가 스케일링된 컨텍스트 메모리 구조의 엔트리 및 상기 예비 컨텍스트 메모리 구조의 상응하는 엔트리의 상응하는 주파수 인덱스들(i1, i1+1; i2-1, i2+2; nLinTupleIdx, nWarpTupleIdx)을 결정하기 위해 구성되어 상기 상응하는 주파수 인덱스들(nLinTupleIdx, nWarpTupleIdx) 사이의 비율이, 상기 예비 컨텍스트 메모리 구조의 엔트리들에 연관되는, 현재의 오디오 프레임과, 그 디코딩 컨텍스트가 상기 주파수가 스케일링된 컨텍스트 메모리 구조의 엔트리들에 의해 결정되는, 뒤이은 오디오 프레임 사이의 상기 기본 주파수의 변화에 의해 결정되는 것을 특징으로 하는 오디오 신호 디코더.
  12. 청구항 9에 있어서,
    상기 컨텍스트 상태 결정기(170, 400)는 상기 예비 컨텍스트 메모리 구조(432,m_qbuf, 450)를 설정하기 위해 구성되어 상기 예비 컨텍스트 메모리 구조의 복수의 엔트리들(450a, 450c, self->base.m_qbuf[nWarpTupleIdx]) 각각이 제1 오디오 프레임의 복수의 스펙트럼 값들(a,b,c,d)에 기초하며, 상기 예비 컨택스트 메모리 구조(432,450,m_qbuf)의 엔트리들의 엔트리 인덱스들(i1+1,i2+2,nWarpTupleIdx)은 각각의 엔트리들이 연관되는 상기 시간 왜곡 주파수 도메인 대 시간 도메인 변환기(180e)의 인접한 주파수 빈들의 셋트를 나타내며;
    상기 컨텍스트 상태 결정기는 상기 예비 컨텍스트 메모리 구조의 엔트리들(self->base.m_qbuf[curTuple[][])로부터 연관된 개별 주파수 빈 인덱스들을 갖는 예비 주파수 빈 개별 컨텍스트 값들(lineReorderBuf[(curTuple-1)*4+0], ..., lineReorderBuf[(curTuple-1)*4+3])을 추출하기 위해 구성되며;
    상기 컨텍스트 상태 결정기는 연관된 개별 주파수 빈 인덱스들(linLineIdx)을 갖는 주파수가 스케일링된 주파수 빈 개별 컨텍스트 값들(lineTmpBuf[linLineIdx])을 얻기 위해 구성되어, 제1 주파수 빈 인덱스(lineTmpBuf[linLineIdx])를 갖는 주어진 예비 주파수 빈 개별 컨텍스트 값(lineReorderBuf[warpLineIdx])이 제2 주파수 빈 인덱스(linLineIdx)를 갖는 상응하는 주파수가 스케일링된 주파수 빈 개별 컨텍스트 값(lineTmpBuf[linLineIdx])으로 맵핑되어, 상기 예비 주파수 빈 개별 컨텍스트 값의 주파수 빈 개별 맵핑을 얻게 되고;
    상기 컨텍스트 상태 결정기는 복수의 주파수가 스케일링된 주파수 빈 개별 컨텍스트 값들(lineTmpBuf[(curTuple1)*4+0,...., lineTmpBuf[(curTuple-1)*4+3])을 상기 주파수가 스케일링된 컨텍스트 메모리 구조의 결합된 엔트리(self->base.m_qbuf[curTuple][])로 결합하기 위해 구성되는 것을 특징으로 하는 오디오 신호 디코더.
  13. 인코딩된 스펙트럼 표현(132) 및 인코딩된 시간 왜곡 정보(226)를 포함하는 입력 오디오 신호(110)의 인코딩된 표현(112)을 제공하기 위한 오디오 신호 인코더(100; 200)에 있어서,
    시간 왜곡 정보(122)에 따라 시간이 왜곡된, 상기 입력 오디오 신호의 시간이 왜곡된 버전을 표현하는 주파수 도메인 표현(124)을 제공하기 위해 구성된 주파수 도메인 표현 제공기(120);
    상기 인코딩된 스펙트럼 표현(132)의 인코딩된 스펙트럼 값들(acod_m)을 얻기 위해, 컨텍스트 상태(134)에 따라, 상기 주파수 도메인 표현(124)의 하나 이상의 스펙트럼 값들, 또는 상기 주파수 도메인 표현(124)의 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부(m)를 기술하는 코드워드(acod_m)를 제공하기 위해 구성된 컨텍스트 기반 스펙트럼 값 인코더(130); 및
    하나 이상의 이전에 인코딩된 스펙트럼 값들에 따라 현재의 컨텍스트 값(134)을 결정하기 위해 구성된 것으로, 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 상기 컨텍스트 상태의 결정을 적응시키기 위해 구성되는 컨텍스트 상태 결정기(140);
    를 포함하는 것을 특징으로 하는 오디오 신호 인코더.
  14. 청구항 13에 있어서,
    상기 컨텍스트 상태 결정기는 복수의 이전에 인코딩된 스펙트럼 값들에 따라 수치적 현재의 컨텍스트 값(134, c)을 도출하여, 상기 수치적 현재의 컨택스트 값에 따라 코드 값(acod_m)으로의, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 일부(m)의 맵핑을 기술하는 맵핑 규칙을 선택하기 위해 구성되며,
    상기 컨택스트 기반 스펙트럼 값 인코더는, 상기 컨텍스트 상태 결정기에 의해 선택된 상기 맵핑 규칙을 이용하여, 하나 이상의 스펙트럼 값들, 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부를 기술하는 상기 코드 값을 제공하기 위해 구성되는 것을 특징으로 하는 오디오 신호 인코더.
  15. 인코딩된 스펙트럼 표현(ac_spectral_data[]) 및 인코딩된 시간 왜곡 정보(tw_data[])를 포함하는 인코딩된 오디오 신호 표현(152)에 기초하여 디코딩된 오디오 신호 표현(154)을 제공하기 위한 방법에 있어서,
    디코딩된 스펙트럼 값들(162, 297, x_ac_dec[])을 얻기 위해, 컨텍스트 상태에 따라 하나 이상의 스펙트럼 값들 또는 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부(m)를 기술하는 코드워드(acod_m)를 디코딩하는 단계;
    하나 이상의 이전에 디코딩된 스펙트럼 값들(162, 297)에 따라 현재의 컨텍스트 상태(164, c)를 결정하는 단계; 및
    주어진 오디오 프레임과 연관되고 컨텍스트 기반 스펙트럼 값 디코더에 의해 그리고 상기 시간 왜곡 정보에 따라 제공된 디코딩된 스펙트럼 값들(162, 297)의 셋트에 기초하여 주어진 오디오 프레임의 시간이 왜곡된 시간 도메인 표현(182)을 제공하는 단계;
    를 포함하되,
    상기 컨텍스트 상태의 결정은 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 적응되는 것을 특징으로 하는 디코딩된 오디오 신호 표현을 제공하기 위한 방법.
  16. 인코딩된 스펙트럼 표현(132) 및 인코딩된 시간 왜곡 정보(226)를 포함하는 입력 오디오 신호(110)의 인코딩된 표현(112)을 제공하기 위한 방법에 있어서,
    시간 왜곡 정보(122)에 따라 시간이 왜곡된, 상기 입력 오디오 신호의 시간이 왜곡된 버전을 표현하는 주파수 도메인 표현(124)을 제공하는 단계;
    상기 인코딩된 스펙트럼 표현(132)의 인코딩된 스펙트럼 값들(acod_m)을 얻기 위해, 컨텍스트 상태(134)에 따라, 상기 주파수 도메인 표현(124)의 하나 이상의 스펙트럼 값들, 또는 상기 주파수 도메인 표현(124)의 하나 이상의 스펙트럼 값들의 숫자 표현의 적어도 일부(m)를 기술하는 코드워드(acod_m)를 제공하는 단계; 및
    하나 이상의 이전에 인코딩된 스펙트럼 값들에 따라 현재의 컨텍스트 상태(134)를 결정하는 단계;
    를 포함하되,
    상기 컨텍스트 상태의 결정은 뒤이은 오디오 프레임들 사이의 기본 주파수의 변화에 적응되는 것을 특징으로 하는 인코딩된 오디오 신호 표현을 제공하기 위한 방법.
  17. 컴퓨터 프로그램이 컴퓨터에서 구동할 때 청구항 15 또는 16에 따른 방법을 수행하기 위한 컴퓨터 프로그램이 저장된 기록 매체.
KR1020127026461A 2010-03-10 2011-03-09 코딩 컨텍스트의 피치 의존 적응을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 오디오 신호 디코딩 방법, 오디오 신호 인코딩 방법, 및 컴퓨터 프로그램 KR101445294B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31250310P 2010-03-10 2010-03-10
US61/312,503 2010-03-10
PCT/EP2011/053541 WO2011110594A1 (en) 2010-03-10 2011-03-09 Audio signal decoder, audio signal encoder, method for decoding an audio signal, method for encoding an audio signal and computer program using a pitch-dependent adaptation of a coding context

Publications (2)

Publication Number Publication Date
KR20130018761A KR20130018761A (ko) 2013-02-25
KR101445294B1 true KR101445294B1 (ko) 2014-09-29

Family

ID=43829343

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020127026462A KR101445296B1 (ko) 2010-03-10 2011-03-09 샘플링 레이트 의존 시간 왜곡 윤곽 인코딩을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 방법, 및 컴퓨터 프로그램
KR1020127026461A KR101445294B1 (ko) 2010-03-10 2011-03-09 코딩 컨텍스트의 피치 의존 적응을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 오디오 신호 디코딩 방법, 오디오 신호 인코딩 방법, 및 컴퓨터 프로그램

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020127026462A KR101445296B1 (ko) 2010-03-10 2011-03-09 샘플링 레이트 의존 시간 왜곡 윤곽 인코딩을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 방법, 및 컴퓨터 프로그램

Country Status (16)

Country Link
US (2) US9129597B2 (ko)
EP (2) EP2539893B1 (ko)
JP (2) JP5625076B2 (ko)
KR (2) KR101445296B1 (ko)
CN (2) CN102884572B (ko)
AR (2) AR080396A1 (ko)
AU (2) AU2011226143B9 (ko)
BR (2) BR112012022744B1 (ko)
CA (2) CA2792500C (ko)
ES (2) ES2461183T3 (ko)
HK (2) HK1179743A1 (ko)
MX (2) MX2012010439A (ko)
PL (2) PL2539893T3 (ko)
RU (2) RU2607264C2 (ko)
TW (2) TWI455113B (ko)
WO (2) WO2011110591A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2083418A1 (en) * 2008-01-24 2009-07-29 Deutsche Thomson OHG Method and Apparatus for determining and using the sampling frequency for decoding watermark information embedded in a received signal sampled with an original sampling frequency at encoder side
US8924222B2 (en) 2010-07-30 2014-12-30 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for coding of harmonic signals
US9208792B2 (en) 2010-08-17 2015-12-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for noise injection
CN103035249B (zh) * 2012-11-14 2015-04-08 北京理工大学 一种基于时频平面上下文的音频算术编码方法
US9466305B2 (en) 2013-05-29 2016-10-11 Qualcomm Incorporated Performing positional analysis to code spherical harmonic coefficients
US9716959B2 (en) 2013-05-29 2017-07-25 Qualcomm Incorporated Compensating for error in decomposed representations of sound fields
MX355850B (es) 2013-06-21 2018-05-02 Fraunhofer Ges Forschung Escalador de tiempo, decodificador de audio, metodo y programa de computadora usando un control de calidad.
CA2964362C (en) 2013-06-21 2020-03-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Jitter buffer control, audio decoder, method and computer program
ES2638201T3 (es) 2013-10-18 2017-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Codificación de las posiciones de los picos espectrales
PT3058566T (pt) * 2013-10-18 2018-03-01 Fraunhofer Ges Forschung Codificação de coeficientes espectrais de um espectro de um sinal de áudio
FR3015754A1 (fr) * 2013-12-20 2015-06-26 Orange Re-echantillonnage d'un signal audio cadence a une frequence d'echantillonnage variable selon la trame
US9502045B2 (en) 2014-01-30 2016-11-22 Qualcomm Incorporated Coding independent frames of ambient higher-order ambisonic coefficients
US9922656B2 (en) 2014-01-30 2018-03-20 Qualcomm Incorporated Transitioning of ambient higher-order ambisonic coefficients
CN110619884B (zh) * 2014-03-14 2023-03-07 瑞典爱立信有限公司 音频编码方法和装置
US10770087B2 (en) * 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
US9620137B2 (en) 2014-05-16 2017-04-11 Qualcomm Incorporated Determining between scalar and vector quantization in higher order ambisonic coefficients
US9852737B2 (en) 2014-05-16 2017-12-26 Qualcomm Incorporated Coding vectors decomposed from higher-order ambisonics audio signals
US9747910B2 (en) 2014-09-26 2017-08-29 Qualcomm Incorporated Switching between predictive and non-predictive quantization techniques in a higher order ambisonics (HOA) framework
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
CN105070292B (zh) * 2015-07-10 2018-11-16 珠海市杰理科技股份有限公司 音频文件数据重排序的方法和系统
CN117238300A (zh) * 2016-01-22 2023-12-15 弗劳恩霍夫应用研究促进协会 使用帧控制同步来编码或解码多声道音频信号的装置和方法
EP3306609A1 (en) * 2016-10-04 2018-04-11 Fraunhofer Gesellschaft zur Förderung der Angewand Apparatus and method for determining a pitch information
JP7123134B2 (ja) * 2017-10-27 2022-08-22 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. デコーダにおけるノイズ減衰
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
US11776562B2 (en) * 2020-05-29 2023-10-03 Qualcomm Incorporated Context-aware hardware-based voice activity detection
AU2021359779A1 (en) * 2020-10-13 2023-06-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding a plurality of audio objects and apparatus and method for decoding using two or more relevant audio objects
CN114488105B (zh) * 2022-04-15 2022-08-23 四川锐明智通科技有限公司 一种基于运动特征及方向模板滤波的雷达目标检测方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070100607A1 (en) 2005-11-03 2007-05-03 Lars Villemoes Time warped modified transform coding of audio signals

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272556B1 (en) 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
JP4196235B2 (ja) * 1999-01-19 2008-12-17 ソニー株式会社 オーディオデータ処理装置
KR20010072035A (ko) * 1999-05-26 2001-07-31 요트.게.아. 롤페즈 오디오 신호 송신 시스템
US6581032B1 (en) * 1999-09-22 2003-06-17 Conexant Systems, Inc. Bitstream protocol for transmission of encoded voice signals
CA2365203A1 (en) * 2001-12-14 2003-06-14 Voiceage Corporation A signal modification method for efficient coding of speech signals
US20040098255A1 (en) * 2002-11-14 2004-05-20 France Telecom Generalized analysis-by-synthesis speech coding method, and coder implementing such method
US7394833B2 (en) * 2003-02-11 2008-07-01 Nokia Corporation Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification
JP4364544B2 (ja) * 2003-04-09 2009-11-18 株式会社神戸製鋼所 音声信号処理装置及びその方法
CN101167125B (zh) * 2005-03-11 2012-02-29 高通股份有限公司 用于对声码器内的帧进行相位匹配的方法及设备
AU2006232361B2 (en) * 2005-04-01 2010-12-23 Qualcomm Incorporated Methods and apparatus for encoding and decoding an highband portion of a speech signal
DE602007004502D1 (de) 2006-08-15 2010-03-11 Broadcom Corp Neuphasierung des status eines dekodiergerätes nach einem paketverlust
CN101361112B (zh) * 2006-08-15 2012-02-15 美国博通公司 隐藏丢包后解码器状态的更新
US8239190B2 (en) * 2006-08-22 2012-08-07 Qualcomm Incorporated Time-warping frames of wideband vocoder
US9653088B2 (en) * 2007-06-13 2017-05-16 Qualcomm Incorporated Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
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
EP2107556A1 (en) * 2008-04-04 2009-10-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio transform coding using pitch correction
CN102150201B (zh) 2008-07-11 2013-04-17 弗劳恩霍夫应用研究促进协会 提供时间扭曲激活信号以及使用该时间扭曲激活信号对音频信号编码
MY154452A (en) 2008-07-11 2015-06-15 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
AU2009267543B2 (en) * 2008-07-11 2013-01-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder and audio decoder
US8600737B2 (en) 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070100607A1 (en) 2005-11-03 2007-05-03 Lars Villemoes Time warped modified transform coding of audio signals

Also Published As

Publication number Publication date
EP2539893B1 (en) 2014-04-02
AU2011226143B9 (en) 2015-03-19
MX2012010439A (es) 2013-04-29
JP5625076B2 (ja) 2014-11-12
JP2013522658A (ja) 2013-06-13
RU2607264C2 (ru) 2017-01-10
TWI455113B (zh) 2014-10-01
BR112012022744A2 (pt) 2017-12-12
EP2539893A1 (en) 2013-01-02
RU2012143323A (ru) 2014-04-20
CN102884572B (zh) 2015-06-17
CA2792500C (en) 2016-05-03
WO2011110591A1 (en) 2011-09-15
CA2792504C (en) 2016-05-31
US20130117015A1 (en) 2013-05-09
KR20130018761A (ko) 2013-02-25
RU2586848C2 (ru) 2016-06-10
CN102884573B (zh) 2014-09-10
AU2011226143A1 (en) 2012-10-25
EP2532001A1 (en) 2012-12-12
US9524726B2 (en) 2016-12-20
AU2011226140B2 (en) 2014-08-14
JP5456914B2 (ja) 2014-04-02
ES2458354T3 (es) 2014-05-05
CN102884572A (zh) 2013-01-16
BR112012022744B1 (pt) 2021-02-17
BR112012022741A2 (pt) 2020-11-24
EP2532001B1 (en) 2014-04-02
CA2792500A1 (en) 2011-09-15
US20130073296A1 (en) 2013-03-21
RU2012143340A (ru) 2014-04-20
TW201203224A (en) 2012-01-16
WO2011110594A1 (en) 2011-09-15
AU2011226140A1 (en) 2012-10-18
BR112012022741B1 (pt) 2021-09-21
TW201207846A (en) 2012-02-16
AR084465A1 (es) 2013-05-22
AU2011226143B2 (en) 2014-08-28
HK1179743A1 (en) 2013-10-04
TWI441170B (zh) 2014-06-11
PL2532001T3 (pl) 2014-09-30
MX2012010469A (es) 2012-12-10
AR080396A1 (es) 2012-04-04
KR101445296B1 (ko) 2014-09-29
JP2013521540A (ja) 2013-06-10
HK1181540A1 (en) 2013-11-08
PL2539893T3 (pl) 2014-09-30
US9129597B2 (en) 2015-09-08
CN102884573A (zh) 2013-01-16
KR20120128156A (ko) 2012-11-26
CA2792504A1 (en) 2011-09-15
ES2461183T3 (es) 2014-05-19

Similar Documents

Publication Publication Date Title
KR101445294B1 (ko) 코딩 컨텍스트의 피치 의존 적응을 이용하는 오디오 신호 디코더, 오디오 신호 인코더, 오디오 신호 디코딩 방법, 오디오 신호 인코딩 방법, 및 컴퓨터 프로그램
US11670310B2 (en) Audio entropy encoder/decoder with different spectral resolutions and transform lengths and upsampling and/or downsampling
KR101573829B1 (ko) 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 최적화된 해시 테이블을 사용하는 컴퓨터 프로그램
RU2591663C2 (ru) Аудио кодер, аудио декодер, способ кодирования аудио информации, способ декодирования аудио информации и компьютерная программа, использующая обнаружение группы ранее декодированных спектральных значений
KR101339057B1 (ko) 오디오 인코더, 오디오 디코더, 오디오 정보 인코딩과 디코딩 방법, 및 이전에 디코딩된 스펙트럼 값들의 놈에 기초하여 콘텍스트 서브구역 값을 획득하는 컴퓨터 프로그램

Legal Events

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

Payment date: 20170828

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 6