KR101067514B1 - 버퍼 조정을 이용하는 예측 코딩 데이터의 디코딩 - Google Patents

버퍼 조정을 이용하는 예측 코딩 데이터의 디코딩 Download PDF

Info

Publication number
KR101067514B1
KR101067514B1 KR1020087029238A KR20087029238A KR101067514B1 KR 101067514 B1 KR101067514 B1 KR 101067514B1 KR 1020087029238 A KR1020087029238 A KR 1020087029238A KR 20087029238 A KR20087029238 A KR 20087029238A KR 101067514 B1 KR101067514 B1 KR 101067514B1
Authority
KR
South Korea
Prior art keywords
data
ltp
factor
discrete cosine
scaling
Prior art date
Application number
KR1020087029238A
Other languages
English (en)
Other versions
KR20090009278A (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 KR20090009278A publication Critical patent/KR20090009278A/ko
Application granted granted Critical
Publication of KR101067514B1 publication Critical patent/KR101067514B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech 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 predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • 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/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters

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)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

디코더 (가령, AAC-LTP 디코더)는 코딩 오디오 데이터 및 예측 데이터를 포함하는 스트림을 수신한다. 코딩 데이터는 디코딩 도중에 업샘플링되거나 다운샘플링 된다. 디코딩 데이터의 일부는 다음 코딩 데이터를 디코딩하는데 사용하기 위해 버퍼에 저장된다. 디코딩 데이터가 자리하는 버퍼는, 코딩 데이터를 생성할 때 코더에서 사용된 버퍼와는 다른 치수를 가진다. 디코더 버퍼 내 데이터의 일부가 식별되고, 코더 내 예측 코딩 버퍼의 치수들에 맞추기 위해 끼워 넣는 제로 값들을 가지고 변경된다.

Description

버퍼 조정을 이용하는 예측 코딩 데이터의 디코딩{Decoding of predictively coded data using buffer adaptation}
본 발명은 일반적으로 압축 디지털 정보의 디코딩에 관한 것이다. 특히, 본 발명의 적어도 일부 실시예들은 장기 예측 코딩을 이용하는 하나 이상의 기술들을 이용해 압축되었던 콘텐츠를 나타내는 비트 스트림들의 디코딩에 관한 것이다.
저장 및/또는 통신 채널 상으로 전송되어야 하는 데이터량을 최소화하기 위해, 콘텐츠 (가령, 오디오 및/또는 비디오 정보)는 보통 다른 경우 필요로 될 비트들보다 소수의 비트들을 가진 데이터 스트림으로 압축된다. 그러한 방법들 가운데 일부는 예측 코딩 (predictive coding) 기술을 활용한다. 예를 들어, 다양한 모션 픽처 전문가 그룹 (MPEG, Motion Picture Experts group) 표준들에 의해 특정되는 고급 오디오 코딩 (AAC, Advanced Audio Coding) 포맷은 오디오 콘텐츠 (가령, 음악)을 코딩 (및 이어서 디코딩)하기 위한 여러 세트의 툴들을 포함한다. 그러한 툴들, 또는 프로파일들에, 메인 (Main), LC (Low Complexity, 저복잡도), SSR (Scalable Sampling Rate, 스케일러블 샘플링 레이트) 및 LTP (Long-Term Prediction, 장기 예측) 프로파일들이 포함된다. LTP 인코딩은 최종 사용자에게 보다 높은 품질의 오디오를 제공할 수 있지만, 늘어난 계산 요건에 따른 비용이 든 다. 이것은 모바일 전화기나 디지털 음악 재생기 같은 장치 안에서의 추가 메모리 및 프로세싱 하드웨어의 수요로 귀결될 수 있다. 게다가, 상업적 필요성이, AAC 오디오 데이터를 디코딩 및 재생하도록 의도된 기기들이 여러 프로파일들을 수용할 능력을 가질 것을 요할 수 있다. 예를 들어, 사용자들은 종종 다양한 소스들로부터 음악을 다운로드하고 싶어 한다. 그러한 소스들 중 일부는 AAC-LC 프로파일을 사용해 음악을 인코딩할 수 있지만, 다른 것들은 AAC-LTP 프로파일을 사용해 음악을 인코딩할 수 있다.
도 1a는 AAC-LTP 인코더의 일반 구조를 보이는 블록도이다. 그러한 인코더들 (및 어떤 대응되는 디코더들)의 동작은 잘 알려져 있으나, 이하의 후속 설명을 위한 맥락을 제공하기 위해 다음의 개요가 포함된다. 들어오는 타임 도메인 오디오 신호가 장기 예측기(1), 변경 이산 코사인 변환 (MDCT, modified discrete cosine transform)(2), 및 음향심리학 모델(3)에 의해 수신된다. 장기 예측기(1)는 오디오 스트림의 이전 부분들에 대한 시간 도메인 신호들에 기반해, 현재 입력된 시간 도메인 신호를 예측하는 데 사용될 수 있는 데이터 (예측 계수들 및 피치 래그 (pitch lag))를 생성한다. 그러한 이전 부분들의 시간 도메인 버전들은 역 변경 이산 코사인 변환 (IMDCT, inverse modified discrete cosine transform)(4) 및 합성 필터 뱅그 (미도시)로부터의 입력들로서 수신되고, 장기 예측기에 의해 버퍼 (도 1a에는 미도시) 안에 저장된다. 예측 계수들 및 피치 래그는 장기 예측기(1)에 의해 비트 스트림 멀티플렉서(11)로 제공된다. 예측된 오디오 (즉, 산출된 예측 계수들 및 피치 래그로부터 파생될 시간 도메인 오디오 신호)는 MDCT(5)에 의해 주파수 도메인으로 전환된다.
들어오는 시간 도메인 오디오는 또 다른 MDCT(2)로 제공된다. 그러한 오디오의 예측 버전만을 변환하는 MDCT(5)와는 달리, 원래의 입력 오디오 신호가 MDCT(2)에 의해 주파수 도메인으로 전환된다. MDCT(2)로부터의 출력이 주파수 선택 스위치 (FSS, frequency selective switch)(7) (이하에서 논의됨) 및 합산기(6)로 주어진다. 합산기(6)는 MDCT(5)의 출력 (예측 오디오 신호의 주파수 도메인 버전) 및 MDCT(2)의 출력 (오리지널 오디오 신호의 주파수 도메인 버전) 사이의 차이를 계산한다. 결국, 합산기(6)로부터의 출력 (또는 예측 에러)은 실제 오디오 신호와 그 신호의 예측 버전 사이의 차이가 된다. 합산기(6)로부터 출력된 예측 에러는 FSS(7)로 주어진다.
FSS(7)는 음향심리 모델(3)로부터의 제어 입력들을 수신한다. 음향심리 모델(3)은 인간 청취자들에게 민감한 주파수 범위들에 관한 경험적으로 도출된 지각 데이터를 포함한다. 음향심리 모델(3)은 장기 예측을 이용해 잘 모델링되지 않은 소정 타입들의 오디오 패턴들에 관한 데이터를 더 포함한다. 예를 들어, 빠르게 변화하거나 과도기에 있는 신호 세그먼트들은 예측을 통해 모델링하기가 어려울 수 있다. 음향심리 모델(3)은 들어오는 시간 도메인 상의 오디오 신호를 검사하여, 어떤 서브 밴드들이 (합산기(6))로부터의) 예측 에러, (예측기(1)로부터의) 예측 계수들 및 (역시 예측기(1)로부터의) 피치 래그에 의해 나타내어져야 하고, 어떤 서브 밴드들이 (MDCT(2)로부터의) 오리지널 오디오의 MDCT 계수들에 의해 나타내어 져야 하는지를 평가한다. 음향심리 모델(3)로부터의 데이터에 기초해, FSS(7)가 양자화 및 코딩을 위한 블록(8)으로 전달될 데이터를 선택한다. 예측이 활용될 서브 밴드들에 대해, 합산기(6)로부터의 예측 에러 계수들이 양자화기/코더(8)로 전달된다. 다른 서브 밴드들에 대해서는, MDCT(2) 출력이 양자화/코더(8)로 전달된다. FSS(7)로부터 출력된 제어 신호는 장기 예측이 해당 서브 밴드에 대해 가능한가 여부를 가리키는 각 서브 밴드에 대한 플래그를 포함한다.
그런 다음 FSS(7)로부터의 신호들은 양자화기/인코더(8)에서 (가령, 허프만 (Huffman) 코딩을 이용해) 양자화된다. 음향심리 모델(3)로부터의 지각 데이터 역시 양자화기/인코더(8)에 의해 사용된다. 그리고 나서 양자화기/인코더(8)로부터의 출력은 블록(11)에서 장기 예측기(1)로부터의 제어 데이터 (가령, 예측 계수들 및 피치 래그) 및 FSS(7)로부터의 제어 데이터 (가령, 서브 밴드 플래그들)와 함께 다중화된다. 블록(11)으로부터 다중화된 데이터가 이제 통신 채널 (가령, 라디오 혹은 인터넷 전송) 또는 저장 매체로 제공된다. 양자화기/코더(8)로부터의 출력은 역 양자화기(9)로도 제공된다. 역 양자화기(9)의 출력은, MDCT(5)로부터의 출력 및 FSS(7)로부터의 제어 신호들 (서브 밴드 플래그들)이 그러한 것처럼, 역 주파수 선택 스위치 (IFSS, inverse frequency selective switch)(10)로 전달된다. IFSS(10)는 그러면, 양자화된 예측 에러 계수들이 비트 스트림 상으로 전송되었던 각 서브 밴드와 관련해, 양자화해제된 예측 에러 계수들 및 MDCT(5)로부터의 출력의 합을 제공한다. 양자화된 MDCT(2) 출력이 비트 스트림 상으로 전송되었던 각 서브 밴드와 관련하여, IFSS는 양자화해제된 MDCT(2) 출력을 제공한다. 그런 다음 IFSS로부터의 출력이 IMDCT(4)에 의해 다시 시간 도메인으로 전환된다. 그런 다음 IMDCT(4)로부터의 시간 도메인 출력이 예측기(1)로 제공된다. IMDCT(4) 출력의 일부는 상술한 예측 버퍼 안에 바로 저장되고; 그 버퍼의 다른 부분들은 IMDCT(4)로부터의 출력의 (합성 필터 뱅크 내) 중복-가산 (overlap-add)을 통해 생성된 완전-재구성된 (시간 도메인) 오디오 데이터 프레임들을 보유한다.
도 1b는 AAC-LTP 디코더의 일반 구조를 보인 블록도이다. 입력되는 비트 스트림이 블록(15)에서 다중화 해제 (demultiplexed) 된다. FSS(7) (도 1a)로부터의 서브 밴드 플래그들이 IFSS(17)로 제공된다. 도 1a의 장기 예측기(1)로부터의 예측 계수들 및 피치 래그가 피치 예측기(20)로 제공된다. 도 1a의 FSS(7)로부터 양자화된 데이터가 역 양자화기(16)에서 양자화 해제되고, 그런 다음 IFSS(17)로 제공된다. 해당 서브 밴드 플래그 값들에 기초해, IFSS(17)는 장기 예측이 다양한 서브 밴드들에 대해 수행될 수 있었는지 여부를 판단한다. 예측이 수행될 수 없었던 서브 밴드들에 대해서, IFSS(17)는 단순히 역양자화기(16)의 출력을 IMDCT(18)로 전달한다. 예측이 수행될 수 있었던 서브 밴드들에 대해서는, IFSS(17)가 역 양자화기(16)의 출력 (즉, 양자화 해제된 예측 에러 계수들)을 MDCT(21)의 출력 (이하에서 논의됨)에 더하고, 그 결과를 IMDCT(18)로 전달한다. 그런 다음 IMDCT(18)의 출력은 합성 필터 뱅크 (미도시) 안에서의 중복-가신 (overlap-add)에 사용되어, 도 1a의 오리지널 오디오 신호 입력의 유사한 복제에 해당하는 완전 재구성된 시간 도메인 신호를 산출하도록 한다. 그 완전 재구성된 시간 도메인 신호는 이제 가령 하나 이상의 스피커들에서의 재생을 위해 디지털-아날로그 컨버터 (도 1b에 미도시)에 의해 처리될 수 있다.
IMDCT(18)로부터의 시간 도메인 출력 및 합성 필터 뱅크로부터의 완전 재구성된 시간 도메인 신호의 최신 부분들도 장기 예측 (LTP) 버퍼(19)에 저장된다. LTP 버퍼(19)는 도 1a의 장기 예측기(1) 내 버퍼와 같은 크기이며, 그 장기 예측기(1) 내 버퍼의 콘텐츠들을 복제하도록 된 것이다. LTP 버퍼(19)로부터의 데이터는 피치 예측기(20)에 의해 (예측 계수들 및 피치 래그 값들과 함께) 사용되어 시간 도메인 상의 입력 오디오 신호를 예측하도록 한다. 피치 예측기(20)의 출력은 도 1a의 MDCT(5)로 제공되는 장기 예측기(1)의 출력에 해당한다. 피치 예측기(20)로부터의 출력은 이제 MDCT(21)에서 주파수 도메인으로 변환되고, MDCT(21)의 출력은 IFSS(17)로 제공된다.
LTP 버퍼(19)의 일반적인 구조 (적용가능한 MPET-4 표준에 의해 규정됨)가 도 1c에 도시된다. 프레임 (t-1)은 디코더의 합성 필터 뱅크 (미도시)에서 시간 도메인 신호들의 중복-가산을 통해 형성된 가장 최신의 완전-재구성 (most recent fully-reconstructed) 시간 도메인 신호이다. 프레임 t는 IMDCT(18)로부터 출력된 시간 도메인 신호로서, 합성 필터 뱅크에 의해 출력될 다음 프레임에서의 중복-가산을 위해 사용될 앨리어싱된 (aliased) 시간 도메인 신호이다. 프레임(t-2)은 이전 시간 주기로부터의 완전 재구성 프레임이다. 각 프레임의 규모 (또는 길이) N은 1024 개의 샘플들이다. LTP 버퍼의 오른쪽의 점선 블록은 1024 개의 제로-크기(zero-amplitude) 샘플들로 된 프레임을 나타낸다. 이 전부 제로인 블록은 LTP 버퍼(19)의 실제 부위가 아니다. 대신 그것은 제로 래그 포인트의 위치를 개념적으로 가리키기 위해 사용되고 있다. 구체적으로, 피치 래그의 값이 최대치에 있을 대, 프레임들 (t-1 및 t-2) 내 2048 개의 샘플들에 기초해 2048 개의 시간 도메인 샘플들이 예측된다. 피치 래그가 최소치와 최대치 사이에 (가령, 래그 L로 지시된 포인트에) 있을 때, 그 피치 래그 위치 이전의 (즉, 도 1c의 포인트 L 우측으로) 2048 개의 샘플들이 사용되어 2048 개의 샘플들을 예측하도록 한다. 피치 래그가 1024 보다 적을 때, LTP 버퍼로부터 1023개 및 그 미만의 "샘플들"에 대해 제로가 사용된다. 예를 들어, 피치 래그가 최소치에 있을 때 (제로 래그), t 프레임 내 1024 개의 샘플들과 1024 개의 제로 크기 샘플들이 2048 개의 샘플들을 예측하는데 사용된다. 전부 제로인 크기들의 사용이 덜 정밀한 사운드 재생을 가져온다고 해도, LTP 버퍼에 있어 보다 적은 메모리가 필요로 된다. 제로 혹은 매우 낮은 래그 값들은 상대적으로 덜 빈번하게 발생하기 때문에, 전반적인 사운드 품질이 심각하게 영향을 받지는 않는다.
도 1b에서와 같은 디코더 및 도 1c의 관련 LTP 버퍼가 휴대형 음악 재생기나 모바일 단말 같은 모바일 기기에 자주 사용된다. 그러한 기기들은 흔히 제한된 계산 및 메모리 자원들을 포함한다. 추가 메모리 및 프로세싱 용량을 부가하는 것은 보통 값이 비싸서, 기기의 전반적인 단가를 증가시킨다. 디코더와 버퍼가 그러한 자원들의 상당량을 이용하기 때문에, 추가 구성들을 수용함에 있어 제한된 여분의 용량이 있을 수 있다. 예를 들어, 보통 오디오 재생 기기가 빠른 포워드 기능을 포함하는 것이 바람직하다. 오디오 디코더의 출력 레이트가 증가되면, 수많은 디코딩 동작들은 더 높은 레이트로 수행되어야 한다. 다른 예로서, 오디오 스트림을 디코딩 및 재생하는 기기는 어떤 다른 작업을 간략히 수행해야 할 수 있다 (가령, 수신 전화 통화나 다른 통신에 응하는 일). 프로세싱 및 메모리 용량이 증가되지 않으면, 또는 오디오 디코딩 및 재생에 필요한 프로세싱 및 메모리가 줄어들 수 있지 않으면, 이 기기는 여러 작업들을 동시에 수행할 수 없을 수도 있다.
이 요약부는 이하의 상세 설명에서 자세히 설명될 개념들의 발췌 사항을 단순한 형태로 소개하기 위해 주어진다. 이 요약부는 청구된 주제의 핵심적이거나 필수적인 구성들을 확인하고자 하거나, 청구된 주제의 범위를 결정하는 데 도움이 되는 것으로서 사용되도록 의도되지 않았다.
본 발명의 적어도 일부 실시예들은 예측 기술들을 사용하여 알려진 규모를 가진 예측 코딩 버퍼 내 이전 데이터에 기초해 코딩(된) 데이터를 처리하는 방법을 포함한다. 코딩 및 전송 (및/또는 저장) 후, 디코더는 코딩 데이터 및 코딩 예측으로부터 나온 예측 정보를 포함하는 스트림을 수신한다. 디코더는 또한 코딩 데이터가 디코딩 프로세스 중에 업샘플링 될 것인지 다운샘플링 될 것인지 여부 (및 그 양)를 가리키는 팩터를 더 수신한다. 코딩 데이터가 디코딩될 때, 디코딩된 데이터의 일부는, 후속 예측 정보에 기초하여 후속 코딩 데이터를 디코딩하는데 사용하기 위해 버퍼 안에 저장된다. 디코딩된 데이터가 위치하는 버퍼는 코더에 의해 수행된 에측 동작들 도중에 사용되는 버퍼와는 다른 규모를 가진다. 디코더 버퍼 내 데이터의 일부가 식별되고, 그런 다음 예측 코딩 버퍼 크기에 대응되도록 변경된다. 일부 실시예들에서, 그러한 변경은 식별된 데이터의 엘리먼트들 사이에 제로 값들을 인터리빙 (interleaving, 끼워넣기)하는 동작을 포함한다.
소정 실시예들에서, 코딩 데이터는 주파수 도메인 안에 있고, 디코딩은 시간 도메인으로의 변환을 포함한다. 그러한 일부 실시예들에서, 디코더 버퍼로부터 변경된 데이터가 먼저 주파수 도메인으로 변환된다. 그런 다음 그 변경되고 변환된 데이터가 스케일링 되어 주파수 도메인 예측 에러 계수들에 더해지고, 그 결과 값들이 시간 도메인으로 변환된다.
적어도 일부 실시예들에서, 디코더는 코딩 데이터의 디코딩 중에 업샘플링을 수용한다. 코딩 데이터가 디코딩 될 때, 완전 재구성된 시간 도메인 샘플들로 된 한 프레임으로부터 선택된 샘플들만이 현재의 데이터에 상응하는 버퍼 프레임 안에 저장된다.
본 발명의 상술한 요약사항과, 이하의 예시적 실시예들에 대한 상세 설명은 예로서 포함된 것일 뿐 청구된 발명에 대한 한정하기 위한 것이 아닌 첨부 도면들과 연계하여 읽혀질 때 보다 잘 파악될 것이다.
도 1a는 일반적인 AAC-LTP 인코더의 일반 구조를 보인 블록도이다.
도 1b는 일반적인 AAC-LTP 디코더의 일반 구조를 보인 블록도이다.
도 1c는 도 1b의 디코더 내 일반적인 LTP 버퍼의 블록도이다.
도 2는 본 발명의 실시예들이 활용될 수 있는 시스템의 한 예의 블록도이다.
도 3은 적어도 일부 실시예들에 따라 오디오 신호들을 수신 및 디코딩하도록 구성된 모바일 기기의 한 예를 보인 블록도이다.
도 4는 적어도 일부 실시예들에 따라, 다운샘플링을 수용하도록 된 디코더의 블록도이다.
도 5는 데시메이션 팩터가 2일 때 도 4의 디코더로부터의 LTP 버퍼를 보인 것이다.
도 6a-6d는 다양한 환경 하의 도 5의 LTP 버퍼로부터의 어레이 XMDCT[] 산출을 보인다.
도 7a 및 7b는 적어도 일부 실시예들에 따른 도 4의 디코더 동작을 보인 흐름도들이다.
도 8a 및 8b는 적어도 일부 실시예들에서 어떻게 LTP 버퍼가 업샘플링에 적응하도록 되는지를 보인 것이다.
도 9a 및 9b는 적어도 일부 실시예들에 따라, 업샘플링이 일어날 때의 디코더 동작을 보인 흐름도들이다.
도 10은 적어도 일부 실시예들에 따라, 업샘플링을 수용하도록 된 디코더의 블록도이다.
도 11은 적어도 일부 실시예들에 따라 업샘플링 및 다운샘플링 둘 모두를 수용하도록 된 디코더의 블록도이다.
본 발명의 실시예들은 모션 픽처 전문가 그룹의 MPEG-4 표준 (ISO-14496)에 의해 규정된, 고급 오디오 코딩 (AAC, Advanced Audio Coding) 포맷 및 그 장기 예측 (LTP, Long-Term Prediction) 프로파일에 따른 통신을 예로 들어 서술되겠지만, 본 발명이 이와 관련해 한정되는 것은 아니다. 특히, 본 발명은 코딩(된) 데이터 스트림이 예측 코딩 방법들을 이용해 생성된 다른 코딩 방식들에도 역시 적용될 수 있다.
도 2는 본 발명의 실시예들이 활용될 수 있는 시스템의 한 예의 블록도이다. 소스(30)가 전송할 AAC-LTP 압축 오디오 신호들을 원격지의 사용자들에게 출력한다. 소스(30)는 입력 오디오 신호 (미도시)의 실시간 처리하거나, 데이터베이스(31)에 저장된 앞서 압축된 오디오를 액세스함으로써 그러한 AAC-LTP 출력을 제공할 수 있다. 소스(30)는 AAC-LTP 오디오를 모바일 기기(32) (가령 소스(30)로부터 압축 오디오 신호들을 수신해 디코딩하도록 된 모바일 전화기들)로 무선 전송한다. 모바일 기기들(32)은 장거리 무선 네트워크 (가령, 모바일 전화 네트워크, 3GPP 네트워크 등등) 안에서 통신하거나, 단거리 무선 네트워크 (가령, 블루투스 네트워크) 안에서 통신하거나, 무선 인터넷 링크를 통해 통신하거나, 브로드캐스트 전송 (가령, 위성 라디오)를 수신하는 등의 통신을 할 수 있다. 소스(30)는 퍼스널 컴퓨터(34) 같은 기기들에 의한 다운로드를 위해 유선 네트워크 (가령, 유선 인터세 접속)를 통해 압축 AAC-LTP를 제공하기도 한다.
도 3은 적어도 일부 실시예들에 따라 AAC-LTP 오디오 신호들을 수신 및 디코딩하도록 된 모바일 기기(32)의 한 예를 보인 블록도이다. 소스(30)로부터의 무선 전송은 안테나(40)를 통해 수신된다. 입력된 라디오 신호는 블록(41)에서, 전송된 디지털 데이터 비트 스트림을 복구하기 위해 복조되거나 다르게 가공된다. 컨트롤러(43) (가령, 마이크로프로세서)는 블록(41)으로부터 그 복구된 디지털 신호를 수 신한다. 컨트롤러(43)는 도 1a의 FSS(7)와 유사한 소스(30) 내 FSS로부터의 출력에 해당하는 양자화된 주파수 도메인 컴포넌트들에서 제어 신호들 (가령, 예측 계수들 및 피치 래그 (pitch lag), 서브 밴드 플래그들)을 분리한다. 컨트롤러(43)는 그러한 주파수 도메인 컴포넌트들을 양자화 해제하여, 그 컴포넌트들을 (제어 신호들과 함께) 디지털 신호 프로세서 (DSP)(46)로 제공한다. 그러면 DSP(46)가 그 데이터를 아래에 논의되는 방식으로 사용하여, 시간 도메인 신호를 생성한다. DSP(46)로부터의 시간 도메인 신호는 디지털-아날로그 컨버터 (DAC, digital to analog converter)(47)로 제공되어 스피커(49)를 통해 출력된다. 랜덤 액세스 메모리(44)가 사용되어 컨트롤러(43 및 46)의 동작과 데이터 버퍼링 (가령, LTP 버퍼로서 사용하기 위해)을 위한 명령들을 저장한다. 리드-온리 메모리 (ROM)도 컨트롤러(43) 및/또는 DSP(46)의 프로그래밍 명령들을 저장하는데 사용될 수 있다.
도 3의 구성은 다만 하나의 예일 뿐이다. 다른 실시예들에서는, 별도의 DSP가 포함되지 않을 수도 있고, 모든 처리가 하나의 프로세서에 의해 수행될 수 있다. 별도의 RAM 역시 생략될 수도 있으며, 컨트롤러 및/또는 DSP가 그 대신 내부 RAM을 포함할 수 있다. 컨트롤러(43), DSP(46) 및 RAM(44)은 통상적으로 하나 이상의 집적 회로들 ("칩들" 혹은 "칩셋")의 형식으로 되어 있을 수 있다.
도 4는 본 발명의 적어도 일부 실시예들에 따른 디코더의 블록도로서, 그 디코더는 도 1a에 도시된 것과 같은 통상의 코더로부터의 신호를 디코딩한다. 어떤 실시예들에서, 도 4의 블록(67, 68, 70, 20 및 21) (및 도 4에는 도시되지 않은 합성 필터 뱅크 및 기타 엘리먼트들)로 표현되는 동작들은, 별도의 RAM(44)에서 구현 되는 블록(69) (LTP 버퍼)과 함께 DSP(46)에 의한 프로그래밍 명령들의 실행에 의해 구현된다. 그러나 위에서 지시된 것과 같이, 블록들(67, 68, 70, 20 및 21) (및/또는 다른 엘리먼트들) 중 하나 이상은 컨트롤러(43) 내 프로그램 명령들의 실행을 통해 구현될 수도 있다. 마찬가지로, RAM(69)이 별도의 RAM(44) 대신 DSP(46) 및/또는 컨트롤러(43) 안에 포함될 수도 있다.
비트스트림 디멀티플렉서(15), 역 양자화기(16), 피치 예측기(20) 및 MDCT(21)은 도 1b의 유사 참조부호의 구성요소들과 유사하게 동작한다. IFSS(67)는 도 1b의 IFSS(17)의 동작들을 수행할 수 있지만, 이하에 설명될 추가 동작들 역시 수행할 수 있다. IMDCT(68)는 도 1b의 IMDCT(18)와 비슷한 방식으로 동작할 수 있다. 그러나, IMDCT(68)는, 입력 데시메이션 팩터 (decimFactor)에 응하여, 출력 오디오에 대한 다운샘플링을 수행하도록 추가 구성된다. 구체적으로, IMDCT(68)은 주파수 도메인 신호를 시간 도메인으로 다시 변환할 때 처리되는 MDCT 계수들의 개수를 decimFactor 만큼 줄인다. 다운샘플링이 수행될 때, LTP 버퍼(69)에 저장된 프레임들 내 샘플들의 개수 역시 영향을 받는다. 예를 들어, decimFactor=2일 때, LTP 버퍼(69) 내 각 프레임은 단 512개 샘플 길이로 된다 (일반 LTP 버퍼들에서는 1024 개의 샘플들임). 다운샘플링은 IMDCT(68)에서 수행되는 계산의 회수를 줄이고 LTP 버퍼에 필요한 메모리량도 줄이지만, 다른 문제가 일어나게 된다. 특히, 다운샘플링된 LTP 버퍼는 최초로 코딩 신호를 만들었던 AAC-LTP 코더 내 장기 예측기의 버퍼와 매치되지 않을 것이다. 추가 단계들을 거치지 않으면, LTP 버퍼(69)의 콘텐츠들에 기초한 오디오 신호 서브 컴포넌트는 코더 안에서 예측된 대응하는 오디오 신호 서브 컴포넌트와 매치하지 않을 것이다.
도 5는 decimFator=2일 때의 LTP 버퍼(69)를 보인 것이다. 도 1c의 일반적인 LTP 버퍼와 비슷한 방식으로, t 프레임은 IMDCT(68)로터의 앨리아싱된 시간 도메인 신호 출력들로 채워지고, 프레임 t-1는 합성 필터 뱅크에 의해 출력된 가장 최근의 완전 재구성 (most recent fully-reconstructed) 시간 도메인 프레임으로부터 채워진다. 다운샘플링 때문에, 그리고 위에서 나타낸 바와 같이, LTP 버퍼(69)의 프레임들은 코더 LTP 버퍼의 프레임들보다 짧다. 이러한 미스매치에 적응하기 위해, 적어도 어떤 실시예들에서는 LTP 버퍼(69)의 일부분 Xd가 먼저 식별된다. 구체적으로, 코더로부터 전송된 피치 래그 값에 기초해 오프셋 값 (lagd)이 계산된다. 그런 다음 Xd는 LTP 버퍼(69)의 콘텐츠들로 채워지는데, lagd에서 시작해 현재의 LTP 버퍼(69)의 두 프레임 길이들 (도 5의 예에서 1024 개의 샘플들)에 대해 시간을 거슬러 (도 5에서 좌측으로) 진행해 나간다. 그런 다음 Xd의 샘플들은 코더의 LTP 버퍼와 더 비슷하게 매치되기 위해 전처리기(70)에 의해 확장된다.
도 6a는 LTP 버퍼(69) 및 데이터 어레이 Xd를 보다 자세히 보인 것이다. Xd의 시작 포인트는 lagd를 이용해 확인되고, Xd의 종료 포인트는 현재의 데시메이션 팩터 (decimFactor)에 따라 확인된다. lagd의 산출은 아래에 설명될 것이다. 적어도 어떤 실시예들에서, Xd는 1024/decimFactor 개의 엘리먼트들을 가진 어레이로서 구현된다 (즉, Xd[0,1,2,...(1024/decimfactor-1)]). 어레이의 엘리먼트 Xd[0]는 시작 포인트 다음의 LTP 버퍼(69) 내 샘플 (도 6a의 샘플 n)로 채워지고, Xd[1]은 그 다음 샘플 (n+1)로 채워지고, 그런 식으로 채워지다가 Xd[1023]은 샘플 "last"로 채워진다. 그런 다음 Xd[]는 코더의 장기 예측기에 의해 사용되는 것과 같은 수의 샘플들 (가령, 1024 샘플들)을 가진 어레이 XLTP[]로 확장된다. XLTP[]가 코더 내 장기 예측기에 의한 예측에 사용되는 샘플들과 보다 밀접하게 닮도록, Xd[]의 콘텐츠들이 XLTP[] 전체에 걸쳐 고르게 분포되고, 이때 XLTP[] 안에 샘플 슬롯들을 끼워넣기 위해 제로 값들이 삽입된다. 도 6a에 도시된 것과 같이, 그 결과는 XLTP[0]=Xd[0], XLTP[1]=0, XLTP[2]=Xd[1],...XLTP[1023]=0이 된다.
적어도 일부 실시예들에서는 도 6b에 도시된 것과 같이, lagOffset이라는 크기의 값이 0일 때 (lagOffset의 계산은 이하에서 설명될 것임), XLTP[]는 다소 다른 방식으로 채워진다. 그 경우, 제로들과 Xd[] 엘리먼트들의 순서는 반대로 된다. 이것은 decimFactor가 1과 같았을 때 나올 수 있는 동일한 시간방향 (time-wise) 신호를 나타내는 완전히 시간-정렬된 예측 시간 도메인 신호를 산출하기 위해 행해진다. 도 6c 및 6d는 도 6a 및 6b와 유사하지만, decimFactor=4일 때의 XLTP[]의 생성을 보인 것이다.
XLTP[]의 샘플들은 피치 예측기(20)에 의해 오리지널 오디오 신호의 시간 도메인 예측을 생성하는데 사용된다. 이 예측은 코더 내 장기 예측기에 의해 출력되는 예측 (가령, 도 1a의 장기 예측기(1)에서 MDCT(5)로 전송된 신호)과 거의 근사할 것이다. 그런 다음 피치 예측기(20)의 출력이 주파수 도메인으로의 변환을 우해 MDCT(21)로 제공된다. 적어도 일부 실시예들에서, 이것은 MDCT 계수들을 포함하는 어레이 XMDCT[]를 파생한다. 이 분양의 당업자라면 이해할 수 있다시피, XMDCT[]가 반드시 XLTP[]와 같은 수의 엘리먼트들을 가지지는 않을 것이다. 다음으로 XMDCT[]의 MDCT 계수들이 IFSS(67)로 주어진다. IFSS(67)는 이제 아래에 설명되는 방식으로 XMDCT[]의 계수들을 양자화 해제된 에러 예측 계수들 (가령, 도 1a의 합산기(6)로부터의 출력)에 더한다.
도 7a 및 7b는 적어도 일부 실시예들에 따른 것으로 도 4-6d와 관련해 위에서 설명한 것과 같은 AAC-LTP 디코더의 동작을 보인 흐름도들이다. 도 7a에서 디코더 동작이 개시되고, (가령, 비트 스트림 디멀티플렉서(15)에 의해) 입력 데이터 스트림이 수신되는 블록(80)으로 진행한다. 입력 데이터 스트림은 서브 밴드 플래그들 및 예측 정보 (가령, 도 1a의 예측기(1)에 의해 출력된 예측 계수들 및 피치 래그) 뿐 아니라, 양자화된 주파수 도메인 데이터를 포함한다. 몇몇 서브 밴드들에 있어, 주파수 도메인 데이터는 오리지널 오디오 입력에 대한 MDCT의 결과 (가령, 도 1a의 MDCT(2)에 의한 출력임)가 된다. 다른 서브 밴드들에 있어, 주파수 도메인 데이터는 예측 에러 값들 (가령, 도 1a의 합산기(6) 출력임)이다.
디코더는 블록(81)으로 진행하는데, 그 블록에서는, 수신된 데이터 스트림으로부터 서브 밴드 플래그들 및 예측 정보가 추출된다. 서브 밴드 플래그들은 IFSS(67) (도 4)로 전달되고, 예측 정보는 피치 예측기(20)로 전달된다. 피치 래그 또한 전처리기(70)로 전달된다. 도 7a로 돌아가면, 디코더는 이어서 블록(82)으로 진행하며, 이 블록에서는 양자화된 주파수 도메인 데이터가 양자화 해제되어 IFSS(67)로 전달된다. 동작은 블록(83)으로 진행하며, 그 안에서 디코더는 예측 데이터를 이용해 재생될 서브 밴드들 및 오리지널 입력 오디오의 MDCT 계수들로부터 재생될 서브 밴드들을 (서브 밴드 플래그들 및 IFSS(67)를 이용해) 식별한다.
블록(84)에서, 예측 데이터를 이용해 재생될 서브 밴드들과 관련해, 디코더는 (도 1a의 합산기(6)로부터 출력된) 양자화 해제된 예측 에러 값들을, LTP 버퍼(69)의 콘텐츠 (상술한 바와 같은 XMDCT[])에 기초하여 주파수 도메인 예측치들과 결합한다. 구체적으로, MDCT(21)로부터의 주파수 도메인 샘플들(XMDCT[])이 스케일링된 후 예측 에러 값들 (편리하게 어레이 Xq[]로 표현함)에 더해진다. 다운샘플링이 일어나지 않을 대, XMDCT[] 안의 값들은 데이터 스트림을 통해 디코더로 전송되는 팩터 (cLTP)에 따라 스케일링된다. 다운샘플링이 일어날 때, 디코더는 이하의 의사 코드 (C 프로그램 언어의 문법을 따름)에 따라 IFSS(67)에서 XMDCT[]를 Xq[]에 더한다.
Figure 112008082286312-pct00001
위의 코드에서, "ltp_bands"는 예측 에러 신호들이 전송될 수 있는 주파수 대역 한계치이다. AAC-LTP 인코딩과 관련해 구현되는 실시예들에 있어서, 그 값은 적용가능한 MPEG-4 표준에 의해 특정된다. 달리 말해, 일반적으로 음향심리 모델이, (도 1a의 MDCT(2)에 의해 출력되는) MDCT 계수들이나 (도 1a의 합산기(6)에 의해 출력되는) 에러 예측 계수들로 표현될 입력 오디오 신호의 서브 밴드들을 특정할 것이다. 이러한 서브 밴드들 각각이 0, 1, 2,...k로 번호가 매겨질 때, "ltp_bands"는 장기 예측이 사용되었던 서브 밴드에 해당하는 넘버들 가운데 최고치가 된다. "ltp_used[sfb]" 값은 서브 밴드 sfb에 대해 장기 예측이 수행되는지 여부를 가리킨다. 즉, ltp_used[]는 도 4의 IFSS(67)로 입력되는 서브 밴드 플래그들의 어레이가 된다. "startBinOffset[]" 및 "endBinOffset[]" 어레이들은 차례로, 각 서브 밴드에 대한 서브 밴드 시작 및 종료 인덱스를 포함한다. 특히, startBinOffset [sfb]와 endBinOffset[sfb]는 차례로 서브 밴드 sfb에 대한 시작 및 종료 인덱스들이다. 모든 서브 잰드들에 대한 시작 및 종료 인덱스들 역시 적용가능한 MPEG-4 표준에 의해 특정된다. 변수 "scale"은 식 1에 기술한 바와 같이, cLTP이거나 LTP 계수 및 양자화된 스펙트럼들의 특성들로부터 도출된 적응적 정 정 팩터이다.
식 1: decimFactor==1인 경우, scale=cLTP이고, 기타의 경우 scale=c2LTP
여기서, 대역 sfb에 대한 양자화 값들이 0이면,
Figure 112010078468895-pct00002
(여기서,
Figure 112010078468895-pct00036
는 a1*a2*...*an을 의미하는 것으로,
Figure 112010078468895-pct00037
는 CLTP를 decimFactor 회 곱한 것을 의미하며, i는 단지 이 수학식 표현의 완전성을 위해 사용한 것임), 그렇지 않으면
Figure 112010078468895-pct00003
이 분야의 당업자라면 예상할 수 있다시피, 도 7a에 의해 도시된 알고리즘의 루프를 거치는 하나 이상의 초기 패스들 중에 예측 값들 (XMDCT[])이 존재하지 않을 수 있다. 이 경우, XMDCT[]는 초기에 제로들로 채워질 수 있다.
블록(84)으로부터, 디코더는 블록(85)으로 진행하여, (수신된 데시메이션 팩터에 기초해) 다운샘플링 수행되어야 하는지 여부를 판단한다. 그 판단이 부정적이면, 디코더는 "No" 브랜치를 통해 블록(86)으로 진행하여 통상적인 방식으로 IFSS(67)로부터의 주파수 도메인 데이터를 처리한다. 전처리기(70) (도 4)는 다운샘플링이 없을 때 활성화되지 않으며, LTP 버퍼(69)로부터 통상적인 방법으로 XMDCT[]가 얻어진다. 블록(86)으로부터 디코더는 블록(87) (이하에서 설명할 것임) 으로 진행한다. 블록(85)에서 디코더가 다운샘플링이 수행되어야 한다고 판단하면, 디코더는 페이지 연결 기호 A를 통해 도 7b로 진행한다.
도 7b의 블록(101)에서, 디코더는 LTP 버퍼(69)의 t-1 프레임의 콘텐츠들을 t-2 프레임으로 쉬프트하고, t-1 프레임에는 (합성 필터 뱅크에 의해 출력되는) 가장 최근에 완전히 재구성된 시간 도메인 프레임으로부터의 샘플들을 저장한다. 블록(102)에서 IMDCT(68)를 사용해, 디코더는 IFSS(67)로부터의 주파수 도메인 데이터 및 데시메이션 팩터를 이용, 앨리아싱된 시간 도메인 데이터 샘플들을 생성하고, 그 앨리아싱된 샘플들을 LTP 버퍼(69)의 프레임 t에 저장한다. 블록(103)에서, 디코더는 식 2 및 3을 이용해 lagd의 값을 산출한다.
식 2:
Figure 112008082286312-pct00004
식 3:
Figure 112008082286312-pct00005
식 2 및 3에서 "ltp_lag"는 코더에 의해 전송된 피치 래그 값이고, 이 값은 LTP 버퍼가 일반 사이즈를 가진다고 전제한다. "
Figure 112008082286312-pct00006
"는 바닥 함수 (floor function) 독립 변수와 같거나 작은 최대 정수를 나타내는 값을 리턴하는 바닥 함수를 나타낸다.
이어서 디코더는 블록(104)으로 진행하고, LTP 버퍼 안에서 "START(시작)" 및 "END(종료)" 포인트들을 마크하고, 어레이 Xd[]를 생성한다. 그런 다음 디코더는 블록(105)으로 진행해 Xd[]로부터 어레이 XLTP[]를 생성한다. 아래에 기술된 것은 적어도 일부 실시예들에 따라 XLTP[]를 생성하기 위해, 일반적으로 C 프로그래밍 언어의 문법을 따라 작성된 의사 코드이다.
Figure 112008082286312-pct00007
Figure 112008082286312-pct00008
상기 코드에서 변수 "N"은 다운샘플링 존재시 각 LTP 버퍼(69) 프레임의 사이즈가 된다. 도 6a부터 도 6d의 예들에서, N은 1024/decimFactor와 같다. 일반적인 decimFactor의 값은 2와 4이지만, 다른 값들 역시 사용될 수 있을 것이다. 마찬가지로, 본 발명은 다운샘플링 부재시 1024 샘플들인 LTP 버퍼 프레임 사이즈를 채용하는 시스템들과 결부된 사용에만 한정되지 않는다. "--" 및 "++" 연산자들은 차례로, 한 루프를 통과하는 각각의 패스 중의 감분 및 증분을 가리킨다.
이제 디코더는 블록(106)으로 진행하여 XLTP[]에 대한 MDCT를 수행해 주파수 도메인 계수들의 어레이 XMDCT[]를 얻는다. 새로 산출된 XMDCT[] 값들은 데이터 스트림의 다음 부분을 통해 수신될 예측 에러 값들(Xq[])과의 결합을 위해 IFSS(67)로 전달된다. 블록(106)에서 디코더가 도 7a의 블록(87)으로 (페이지 연결자 B를 통해) 리턴한다. 블록(87)에서, 디코더는 처리할 추가 오디오 데이터가 존재하는지를 판단한다. 처리할 추가 오디오 데이터가 존재하면, 디코더는 "Yes" 브랜치를 통해 블록(80)으로 리턴한다. 그렇지 않은 경우, 알고리즘이 종료된다.
적어도 몇몇 실시예들에서, 디코더는 "업샘플링"을 수용할 수도 있다. 즉, 때때로, 시간 도메인 출력 신호를 생성하는데 사용되는 MDCT 계수들의 개수를 (코더로부터 수신된 MDCT 계수들의 보간을 통해) 늘리는 것이 요망될 수 있다. 이것은, 가령 다른 기기들과 호환가능한 신호를 생성하기 위해 수행될 수 있다. 그러나, 업샘플링 역시 코더 내 LTP 버퍼와 디코더 내 LTP 버퍼 간의 미스매치를 가져올 수 있다. 예를 들어, 통상적인 AAC-LTP 오디오를 디코딩할 때, 2라는 업샘플링 (또는 보간) 팩터는, 추가 단계들을 밟지 않는다면 2048 샘플들을 가지는 LTP 버퍼 프레임들을 파생할 것이다.
도 8a 및 도 8b는 적어도 일부 실시예들에서, 업샘플링에 적응하기 위해 LTP 버퍼가 어떻게 조정되는지를 예시한 것이다. 도 8a 및 도 8b는 2인 업샘플링 (또는 보간) 팩터 "upSampFactor"를 전제하지만, 다른 값들 역시 사용될 수 있을 것이다. 도 8a에 도시된 것과 같이, 합성 필터 뱅크에 출력되는 완전 재구성된 프레임으로부터 upSampFactor 번째 간격의 샘플만이 t-1 LTP 버퍼 프레임 안으로 이동하며, 그 t-1 프레임은 다음 시간 주기 중에 t-2 프레임으로 옮겨간다. 프레임 t는 IMDCT에 의해 출력된 가장 최근의 앨리아싱되고 보간된 시간 도메인 신호를 보유한다. 도 8a에 도시된 바와 같이, 프레임 t는 1024*upSampFactor의 사이즈를 가진 다. 적어도 일부 구현예들에서, t 프레임은 LTP 버퍼의 일부가 아니다. 앨리어싱된 시간 도메인 IMDCT 출력이 대신 디코더 내 다른 곳에서 버퍼링된다. 그러한 구현예들에서, t 프레임에 의해 표현되는 데이터에 대한 액세스는 중복-가산 (overlap-add) 중 상기 앨리어싱되고 보간된 IMDCT 출력을 버퍼링하도록 사용된 메모리 위치들에 대한 어드레스 포인터들에 의해 이뤄질 수 있다. . 유사한 포인트 배열이 도 4-7b의 실시예들에서의 t 프레임에 대해서도 구현될 수 있다.
피치 래그가 자체 최대치에 있을 때, 도 8a에 도시된 바와 같이, XLTP[]는 t-1 및 t-2 프레임들로부터 바로 얻어질 수 있다. 피치 레그가 최대치 미만일 때는 도 8b에 도시된 것처럼, t 프레임 너머로 확장되는 XLTP[]의 일부가 t-1 프레임 및 (몇몇 경우에는) t-2 프레임으로부터 바로 채워지게 된다. 모두 제로인 "프레임"에 해당하는 XLTP[]의 일부는 제로들로 채워진다. t 프레임에 해당하는 XLTP[]의 일부는 t 프레임에서 upSampFactor 번째 모든 샘플을 취하여 채워진다. 단순성을 위해, t 및 t-1 프레임으로 샘플들을 이동하는 것은 도 8b에 도시되지 않았다.
도 9a 및 도 9b는 업샘플링이 일어날 때, 적어도 몇몇 실시예들에 따른 AAC-LTP 디코더의 동작을 보인 흐름도들이다. 블록(150-153, 156 및 157)에 해당하는 동작들은 일반적으로 도 7a와 관련해 설명된 블록들(80-83, 86 및 87)에 해당하는 동작들과 동일하므로, 추가 설명하지는 않을 것이다. 블록(154)에 해당하는 동작들은 업샘플링이 일어날 때 XMDCT[] 값들의 스케일링과 관한 것만 제외하면, 블록(84)의 동작과 유사하다. IFSS(67') (이하에서 논의될 도 10 참조) 안에서, 디 코더가 도 7a의 블록(84)에 대해 위에서 논의된 것과 같은 의사 코드에 따라 XMDCT[]를 Xq[]에 더한다. 도 9a의 알고리즘에서는 그러나 변수 "scale"가 cLTP*upSampFactor로 세팅된다. 블록(155) 역시, 디코더가 블록(155)에서 (가령, 수신된 업샘플링 또는 보간 팩터에 기초해) 업샘플링이 수행될지 여부를 판단한다는 것을 제외하면 도 7a의 블록(85)과 유사하다. 업샘플링 수행되어야 하는 경우, 디코더는 페이지 연결 접속자 C를 통해 도 9b로 진행한다.
도 9b의 블록(180)에서, 디코더는 LTP 버퍼(69')의 t-1 프레임의 콘텐츠를 t-2 프레임으로 쉬프트한다. 또한 디코더는 t-1 프레임 안에서 (합성 필터 뱅크로부터의) 가장 최근의 완전 재구성된 시간 도메인 샘플로부터 upSampFactor 번째 샘플 모두를 저장한다. 블록(182)에서, 디코더는 IFSS(67')로부터의 주파수 도메인 데이터 및 업샘플링 팩터를 사용해 보간 및 앨리아싱된 시간 도메인 데이터 샘플들을 생성하고, 그 앨리아싱된 샘플들을 프레임 t에 저장한다. 블록(183)에서, 디코더는 피치 래그 (ltp_lag)가 자체 최대치에 있는가를 판단한다. 최대치에 있으면, 디코더는 "Yes" 브랜치를 통해 블록(184)로 진행하며, 여기서 XLTP[]가 t-1 및 t-2 프레임들로부터 채워진다. 디코더는 184 블록으로부터 이제 블록(187) (이하에서 논의될 것임)으로 진행한다.
피치 래그가 최대치 미만인 경우, 디코더는 "No" 브랜치를 통해 블록(183)에서 블록(186)으로 진행한다. 블록(186)에서, 디코더로부터 전송된 ltp_lag 값을 사용해 XLTP[]가 생성된다. t 프레임에 해당하는 XLTP[]의 부분들에 있어서, upSampFactor 번째 모든 샘플들만이 XLTP[]로 복제된다. 디코더는 블록(186)에서 블록(187)로 진행하고 XLTP[]에 대한 MDCT를 수행하여 주파수 도메인 계수들의 어레이 XMDCT[]를 얻는다. 디코더는 블록 187에서 페이지 연결 접속자 D를 통해 (도 9a의) 블록(157)로 리턴한다.
도 10은 적어도 일부 실시예들에 따라 도 9a 및 9b의 동작들을 수행하도록 구성된 디코더의 블록도이다. 구성요소들(15, 16, 20 및 21)은 도 1b 및 4와 관련해 설명한 유사 참조번호의 구성요소들과 유사하다. 구성요소들(67', 68', 69' 및 70')은 도 4의 구성요소들(67, 68, 69 및 70)과 유사하지만, 도 8a-9b와 관련해 이에서 설명한 방식으로 업샘플링을 수용하도록 구성되어 있다. 도 11은 적어도 일부 추가 실시예들에 따라, 업샘플링 및 다운샘플링 둘 모두를 수용하도록 구성된 디코더의 블록도이다. 구성요소들(15, 16, 20 및 21)은 도 1b, 4 및 10과 관련해 설명된 유사 참조부호의 구성요소들과 유사하다. 구성요소들(67'', 68'', 69'' 및 70'')은 도 4의 구성요소들(67, 68, 69 및 70)과 유사하지만, 도 8a-9b와 관련해 위에서 설명한 방식으로 업샘플링을 수용하도록 구성되어 있다.
본 발명을 수행하기 위한 특정 예들이 기술되었지만, 이 분야의 당업자라면 첨부된 청구항들에 설명된 본 발명의 개념 및 범위 안에서, 상술한 시스템들 및 방법들에 대한 수많은 변경과 치환이 포함될 수 있다는 것을 예상할 수 있을 것이다. 예를 들어, 본 발명은 장치 판독가능 명령들이 저장되어 있는 장치-판독 매체 (가 령, RAM, ROM, 별도의 플래시 메모리 등등)로서 구현될 수도 있으며, 상기 명령들이 적합한 기기 (또는 기기들)에 의해 읽혀지고 실행될 때, 본 발명의 방법의 단계들이 수행될 것이다. 또 다른 예에서, 상술한 것과 같은 디코더들 역시 수많은 다른 타입의 장치들 (가령, 휴대형 음악 재생기들 및 다른 타입의 소비자 가전 기기들) 안에서 구현될 수 있을 것이다. 이러한, 그리고 다른 변형결과들은 첨부된 청구항에서 언급된 본 발명의 범위 안에 있게 된다. 청구항들에서는 편리성을 위해 문자나 숫자 참조부호들이 여러 부분들을 대신하게 된다. 그러나, 그러한 참조부호들의 사용이, 다른 경우 청구항들의 말에 의해 요구되는 어떤 일시적 관계를 의미하는 것은 아니다.

Claims (38)

  1. 예측 코딩 데이터를 디코딩하기 위해 버퍼링된 데이터를 변경하는 방법에 있어서,
    코딩 데이터 (coded data) 및, 상기 코딩 데이터와 관련되고 예측 코딩 버퍼 내 데이터에 기초해 생성된 예측 정보를 포함하는 스트림을 수신하는 단계;
    상기 코딩 데이터를 디코딩하는 부분으로서, 상기 코딩 데이터가 업샘플링되거나 다운샘플링되어야 할 정도를 가리키는 팩터를 수신하는 단계;
    상기 수신된 팩터 및 상기 예측 정보를 이용해 상기 코딩 데이터로부터 디코딩 데이터 (decoded data)를 생성하는 단계;
    적어도 하나는 상기 예측 코딩 버퍼의 해당 치수와는 다른 적어도 한 치수를 갖는 한 개 이상의 버퍼들에서, 상기 디코딩 데이터의 적어도 일부를 버퍼링하는 단계;
    다음 코딩 데이터를 디코딩할 때 사용하기 위해, 상기 버퍼링된 디코딩 데이터의 적어도 일부를 식별하는 단계; 및
    상기 식별된 데이터를 변경하여 상기 적어도 한 예측 코딩 버퍼 치수와 일치하도록 하는 단계를 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  2. 제1항에 있어서,
    상기 코딩 데이터는 하나 이상의 변경 이산 코사인 변환 (modified discrete cosine transfroms)을 이용해 생성되는 주파수 도메인 데이터를 포함하고,
    상기 디코딩 데이터를 생성하는 단계는, 역 (inverse) 변경 이산 코사인 변환을 이용해 상기 주파수 도메인 데이터로부터 시간 도메인 데이터를 생성하는 단계를 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  3. 제2항에 있어서,
    상기 예측 정보는 피치 래그 (pitch lag) 값을 포함하고,
    상기 적어도 한 부분을 식별하는 단계는 변경 피치 래그 (modified pitch lag) 값을 산출하는 단계를 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  4. 제3항에 있어서,
    상기 팩터를 수신하는 단계에서 수신되는 팩터는 다운샘플링을 가리키는 데시메이션 (decimation) 팩터이고,
    상기 적어도 한 부분을 식별하는 단계는,
    Figure 112010078468895-pct00009
    에 기초해 상기 변경 피치 래그 값을 산출하는 단계를 포함하고,
    상기 lagd는 변경 피치 래그 값이고, ltp_lag는 상기 수신된 예측 정보에 포함된 피치 래그 값이고, decimFactor는 데시메이션 팩터임을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  5. 제4항에 있어서, 상기 식별된 데이터를 변경하는 단계는, 상기 식별된 데이터의 엘리먼트들 사이에 제로 (zero) 값들을 끼워넣기 하는 (interleaving) 단계를 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  6. 제3항에 있어서, 상기 식별된 데이터를 변경하는 단계는 상기 식별된 데이터의 엘리먼트들 사이에 제로 값들을 끼워넣기 하는 단계를 포함함을 특징으로 하는 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  7. 제2항에 있어서,
    상기 코딩 데이터는 예측 에러 계수들을 포함하고,
    상기 디코딩 데이터를 생성하는 단계는,
    상기 식별된 데이터를 변경하는 단계의 이전 실행에서 나온 식별 및 변경 데이터에 대해 변경 이산 코사인 변환을 수행하는 단계;
    상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터를 스케일링하는 단계; 및
    상기 데이터를 스케일링하는 단계에서 나온 스케일링 된 데이터를 상기 예측 에러 계수들에 더하는 단계를 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  8. 제7항에 있어서, 상기 코딩 데이터는 주파수 서브 밴드들을 포함하고,
    상기 데이터를 스케일링하는 단계는, 각각의 서브 밴드에 대해, decimFactor=1인 경우 scale=cLTP이고, 기타의 경우 scale=c2LTP인 것에 따라, 상기 변경 이산 코사인 변환 단계를 수행하여 파생된 데이터를 스케일링하는 단계를 포함하고,
    상기 scale은 상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터의 엘리먼트들에 인가되는 스케일링 팩터이고,
    decimFactor는 상기 팩터를 수신하는 단계에서 수신되고, 다운샘플링을 가리키는 팩터이고,
    cLTP는 상기 스트림을 수신하는 단계에서 수신된 스트림에 포함된 LTP 계수이고,
    양자화된 서브 밴드의 값들이 제로인 경우 c2LTP
    Figure 112010078468895-pct00010
    이고 (
    Figure 112010078468895-pct00038
    는 CLTP를 decimFactor 회 곱한 것을 의미), 그렇지 않은 경우 c2LTP는 cLTP가 됨을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  9. 제1항에 있어서,
    상기 팩터를 수신하는 단계에서 수신된 팩터는 업샘플링 팩터 (upSampFactor)이고,
    N이 해당 예측 코딩 버퍼 치수일 때, 상기 적어도 일부를 버퍼링하는 단계는 N*upSampFactor 개의 앨리어싱된 (aliased) 시간 도메인 샘플들을 보유한 프레임 t를 버퍼링하는 단계를 포함하고,
    상기 적어도 일부를 버퍼링하는 단계는, 최근 시간 주기에서 완전 재구성된 (fully-reconstructed) 시간 도메인 프레임으로부터의 모든 upSampFactor 번째 샘플을 프레임 t-1로 이동시킴으로써 프레임 t-1을 버퍼링하는 단계를 더 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  10. 제9항에 있어서,
    상기 코딩 데이터가 하나 이상의 변경 이산 코사인 변환을 이용해 생성된 주파수 도메인 데이터를 포함하면,
    상기 디코딩 데이터를 생성하는 단계는 하나 이상의 역 변경 이산 코사인 변환을 사용해 상기 주파수 도메인 데이터로부터 시간 도메인 데이터를 생성하는 단계를 포함하고,
    상기 코딩 데이터가 예측 에러 계수들을 포함하면,
    상기 디코딩 데이터를 생성하는 단계는,
    상기 식별된 데이터를 변경하는 단계의 이전 실행에서 나온 식별 및 변경된 데이터에 대해 이산 코사인 변환을 수행하는 단계;
    cLTP가 상기 스트림을 수신하는 단계에서 수신된 스트림에 포함된 LTP 계수일 때, 상기 변경 이산 코사인 변환을 수행해서 나온 데이터를 팩터 cLTP*upSampFactor에 따라 스케일링하는 단계; 및
    상기 데이터를 스케일링하는 단계에서 나온 스케일링 된 데이터를 상기 예측 에러 계수들에 더하는 단계를 더 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  11. 컴퓨터 실행 명령들을 포함하는 컴퓨터 판독가능 기록 매체에 있어서,
    상기 명령들은,
    코딩 데이터 (coded data) 및, 상기 코딩 데이터와 관련되고 예측 코딩 버퍼 내 데이터에 기초해 생성된 예측 정보를 포함하는 스트림을 수신하는 단계;
    상기 코딩 데이터를 디코딩하는 부분으로서, 상기 코딩 데이터가 업샘플링되거나 다운샘플링되어야 할 정도를 가리키는 팩터를 수신하는 단계;
    상기 수신된 팩터 및 상기 예측 정보를 이용해 상기 코딩 데이터로부터 디코딩 데이터 (decoded data)를 생성하는 단계;
    적어도 하나는 상기 예측 코딩 버퍼의 해당 치수와는 다른 적어도 한 치수를 갖는 한 개 이상의 버퍼들에서, 상기 디코딩 데이터의 적어도 일부를 버퍼링하는 단계;
    다음 코딩 데이터를 디코딩할 때 사용하기 위해, 상기 버퍼링된 디코딩 데이터의 적어도 일부를 식별하는 단계; 및
    상기 식별된 데이터를 변경하여 상기 적어도 한 예측 코딩 버퍼 치수와 일치하도록 하는 단계를 수행하도록 됨을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  12. 제11항에 있어서,
    상기 코딩 데이터는 하나 이상의 변경 이산 코사인 변환 (modified discrete cosine transfroms)을 이용해 생성되는 주파수 도메인 데이터를 포함하고,
    상기 디코딩 데이터를 생성하는 단계는, 역 (inverse) 변경 이산 코사인 변환을 이용해 상기 주파수 도메인 데이터로부터 시간 도메인 데이터를 생성하는 단계를 포함함을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  13. 제12항에 있어서,
    상기 예측 정보는 피치 래그 (pitch lag) 값을 포함하고,
    상기 적어도 한 부분을 식별하는 단계는 변경 피치 래그 (modified pitch lag) 값을 산출하는 단계를 포함함을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  14. 제13항에 있어서,
    상기 팩터를 수신하는 단계에서 수신되는 팩터는 다운샘플링을 가리키는 데시메이션 (decimation) 팩터이고,
    상기 적어도 한 부분을 식별하는 단계는,
    Figure 112010078468895-pct00011
    에 기초해 상기 변경 피치 래그 값을 산출하는 단계를 포함하고,
    상기 lagd는 변경 피치 래그 값이고, ltp_lag는 상기 수신된 예측 정보에 포함된 피치 래그 값이고, decimFactor는 데시메이션 팩터임을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  15. 제14항에 있어서, 상기 식별된 데이터를 변경하는 단계는, 상기 식별된 데이터의 엘리먼트들 사이에 제로 (zero) 값들을 끼워넣기 하는 (interleaving) 단계를 포함함을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  16. 제13항에 있어서, 상기 식별된 데이터를 변경하는 단계는 상기 식별된 데이터의 엘리먼트들 사이에 제로 값들을 끼워넣기 하는 단계를 포함함을 특징으로 하는 하는 컴퓨터 판독가능 기록 매체.
  17. 제12항에 있어서,
    상기 코딩 데이터는 예측 에러 계수들을 포함하고,
    상기 디코딩 데이터를 생성하는 단계는,
    상기 식별된 데이터를 변경하는 단계의 이전 실행에서 나온 식별 및 변경 데이터에 대해 변경 이산 코사인 변환을 수행하는 단계;
    상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터를 스케일링하는 단계; 및
    상기 데이터를 스케일링하는 단계에서 나온 스케일링 된 데이터를 상기 예측 에러 계수들에 더하는 단계를 포함함을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  18. 제17항에 있어서, 상기 코딩 데이터는 주파수 서브 밴드들을 포함하고,
    상기 데이터를 스케일링하는 단계는, 각각의 서브 밴드에 대해, decimFactor=1인 경우 scale=cLTP이고, 기타의 경우 scale=c2LTP인 것에 따라, 상기 변경 이산 코사인 변환 단계를 수행하여 파생된 데이터를 스케일링하는 단계를 포함하고,
    상기 scale은 상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터의 엘리먼트들에 인가되는 스케일링 팩터이고,
    decimFactor는 상기 팩터를 수신하는 단계에서 수신되고, 다운샘플링을 가리키는 팩터이고,
    cLTP는 상기 스트림을 수신하는 단계에서 수신된 스트림에 포함된 LTP 계수이고,
    양자화된 서브 밴드의 값들이 제로인 경우 c2LTP
    Figure 112010078468895-pct00012
    이고 (
    Figure 112010078468895-pct00039
    는 CLTP를 decimFactor 회 곱한 것을 의미), 그렇지 않은 경우 c2LTP는 cLTP가 됨을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  19. 제11항에 있어서,
    상기 팩터를 수신하는 단계에서 수신된 팩터는 업샘플링 팩터 (upSampFactor)이고,
    N이 해당 예측 코딩 버퍼 치수일 때, 상기 적어도 일부를 버퍼링하는 단계는 N*upSampFactor 개의 앨리어싱된 (aliased) 시간 도메인 샘플들을 보유한 프레임 t를 버퍼링하는 단계를 포함하고,
    상기 적어도 일부를 버퍼링하는 단계는, 최근 시간 주기에서 완전 재구성된 (fully-reconstructed) 시간 도메인 프레임으로부터의 모든 upSampFactor 번째 샘플을 프레임 t-1로 이동시킴으로써 프레임 t-1을 버퍼링하는 단계를 더 포함함을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  20. 제19항에 있어서,
    상기 코딩 데이터가 하나 이상의 변경 이산 코사인 변환을 이용해 생성된 주파수 도메인 데이터를 포함하면,
    상기 디코딩 데이터를 생성하는 단계는 하나 이상의 역 변경 이산 코사인 변환을 사용해 상기 주파수 도메인 데이터로부터 시간 도메인 데이터를 생성하는 단계를 포함하고,
    상기 코딩 데이터가 예측 에러 계수들을 포함하면,
    상기 디코딩 데이터를 생성하는 단계는,
    상기 식별된 데이터를 변경하는 단계의 이전 실행에서 나온 식별 및 변경된 데이터에 대해 이산 코사인 변환을 수행하는 단계;
    cLTP가 상기 스트림을 수신하는 단계에서 수신된 스트림에 포함된 LTP 계수일 때, 상기 변경 이산 코사인 변환을 수행해서 나온 데이터를 팩터 cLTP*upSampFactor에 따라 스케일링하는 단계; 및
    상기 데이터를 스케일링하는 단계에서 나온 스케일링 된 데이터를 상기 예측 에러 계수들에 더하는 단계를 더 포함함을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  21. 기기에 있어서,
    데이터 처리 방법을 수행하도록 구성된 한 개 이상의 프로세서들을 포함하고,
    상기 방법은,
    코딩 데이터 (coded data) 및, 상기 코딩 데이터와 관련되고 예측 코딩 버퍼 내 데이터에 기초해 생성된 예측 정보를 포함하는 스트림을 수신하는 단계;
    상기 코딩 데이터를 디코딩하는 부분으로서, 상기 코딩 데이터가 업샘플링되거나 다운샘플링되어야 할 정도를 가리키는 팩터를 수신하는 단계;
    상기 수신된 팩터 및 상기 예측 정보를 이용해 상기 코딩 데이터로부터 디코딩 데이터 (decoded data)를 생성하는 단계;
    적어도 하나는 상기 예측 코딩 버퍼의 해당 치수와는 다른 적어도 한 치수를 갖는 한 개 이상의 버퍼들에서, 상기 디코딩 데이터의 적어도 일부를 버퍼링하는 단계;
    다음 코딩 데이터를 디코딩할 때 사용하기 위해, 상기 버퍼링된 디코딩 데이터의 적어도 일부를 식별하는 단계; 및
    상기 식별된 데이터를 변경하여 상기 적어도 한 예측 코딩 버퍼 치수와 일치하도록 하는 단계를 포함함을 특징으로 하는 기기.
  22. 제21항에 있어서,
    상기 코딩 데이터는 하나 이상의 변경 이산 코사인 변환 (modified discrete cosine transfroms)을 이용해 생성되는 주파수 도메인 데이터를 포함하고,
    상기 디코딩 데이터를 생성하는 단계는, 역 (inverse) 변경 이산 코사인 변환을 이용해 상기 주파수 도메인 데이터로부터 시간 도메인 데이터를 생성하는 단계를 포함함을 특징으로 하는 기기.
  23. 제22항에 있어서,
    상기 예측 정보는 피치 래그 (pitch lag) 값을 포함하고,
    상기 적어도 한 부분을 식별하는 단계는 변경 피치 래그 (modified pitch lag) 값을 산출하는 단계를 포함함을 특징으로 하는 기기.
  24. 제23항에 있어서,
    상기 팩터를 수신하는 단계에서 수신되는 팩터는 다운샘플링을 가리키는 데시메이션 (decimation) 팩터이고,
    상기 적어도 한 부분을 식별하는 단계는,
    Figure 112008082286312-pct00013
    에 기초해 상기 변경 피치 래그 값을 산출하는 단계를 포함하고,
    상기 lagd는 변경 피치 래그 값이고, ltp_lag는 상기 수신된 예측 정보에 포함된 피치 래그 값이고, decimFactor는 데시메이션 팩터임을 특징으로 하는 기기.
  25. 제24항에 있어서, 상기 식별된 데이터를 변경하는 단계는, 상기 식별된 데이터의 엘리먼트들 사이에 제로 (zero) 값들을 끼워넣기 하는 (interleaving) 단계를 포함함을 특징으로 하는 기기.
  26. 제23항에 있어서, 상기 식별된 데이터를 변경하는 단계는 상기 식별된 데이터의 엘리먼트들 사이에 제로 값들을 끼워넣기 하는 단계를 포함함을 특징으로 하는 하는 기기.
  27. 제22항에 있어서,
    상기 코딩 데이터는 예측 에러 계수들을 포함하고,
    상기 디코딩 데이터를 생성하는 단계는,
    상기 식별된 데이터를 변경하는 단계의 이전 실행에서 나온 식별 및 변경 데이터에 대해 변경 이산 코사인 변환을 수행하는 단계;
    상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터를 스케일링하는 단계; 및
    상기 데이터를 스케일링하는 단계에서 나온 스케일링 된 데이터를 상 기 예측 에러 계수들에 더하는 단계를 포함함을 특징으로 하는 기기.
  28. 제27항에 있어서, 상기 코딩 데이터는 주파수 서브 밴드들을 포함하고,
    상기 데이터를 스케일링하는 단계는, 각각의 서브 밴드에 대해, decimFactor=1인 경우 scale=cLTP이고, 기타의 경우 scale=c2LTP인 것에 따라, 상기 변경 이산 코사인 변환 단계를 수행하여 파생된 데이터를 스케일링하는 단계를 포함하고,
    상기 scale은 상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터의 엘리먼트들에 인가되는 스케일링 팩터이고,
    decimFactor는 상기 팩터를 수신하는 단계에서 수신되고, 다운샘플링을 가리키는 팩터이고,
    cLTP는 상기 스트림을 수신하는 단계에서 수신된 스트림에 포함된 LTP 계수이고,
    양자화된 서브 밴드의 값들이 제로인 경우 c2LTP
    Figure 112010078468895-pct00014
    이고 (
    Figure 112010078468895-pct00040
    는 CLTP를 decimFactor 회 곱한 것을 의미), 그렇지 않은 경우 c2LTP는 cLTP가 됨을 특징으로 하는 기기.
  29. 제21항에 있어서,
    상기 팩터를 수신하는 단계에서 수신된 팩터는 업샘플링 팩터 (upSampFactor)이고,
    N이 해당 예측 코딩 버퍼 치수일 때, 상기 적어도 일부를 버퍼링하는 단계는 N*upSampFactor 개의 앨리어싱된 (aliased) 시간 도메인 샘플들을 보유한 프레임 t를 버퍼링하는 단계를 포함하고,
    상기 적어도 일부를 버퍼링하는 단계는, 최근 시간 주기에서 완전 재구성된 (fully-reconstructed) 시간 도메인 프레임으로부터의 모든 upSampFactor 번째 샘플을 프레임 t-1로 이동시킴으로써 프레임 t-1을 버퍼링하는 단계를 더 포함함을 특징으로 하는 기기.
  30. 제29항에 있어서,
    상기 코딩 데이터가 하나 이상의 변경 이산 코사인 변환을 이용해 생성된 주파수 도메인 데이터를 포함하면,
    상기 디코딩 데이터를 생성하는 단계는 하나 이상의 역 변경 이산 코사인 변환을 사용해 상기 주파수 도메인 데이터로부터 시간 도메인 데이터를 생성하는 단계를 포함하고,
    상기 코딩 데이터가 예측 에러 계수들을 포함하면,
    상기 디코딩 데이터를 생성하는 단계는,
    상기 식별된 데이터를 변경하는 단계의 이전 실행에서 나온 식별 및 변경된 데이터에 대해 이산 코사인 변환을 수행하는 단계;
    cLTP가 상기 스트림을 수신하는 단계에서 수신된 스트림에 포함된 LTP 계수일 때, 상기 변경 이산 코사인 변환을 수행해서 나온 데이터를 팩터 cLTP*upSampFactor에 따라 스케일링하는 단계; 및
    상기 데이터를 스케일링하는 단계에서 나온 스케일링 된 데이터를 상기 예측 에러 계수들에 더하는 단계를 더 포함함을 특징으로 하는 기기.
  31. 제21항에 있어서, 상기 기기는 모바일 통신 기기임을 특징으로 하는 기기.
  32. 제21항에 있어서, 상기 기기는 컴퓨터임을 특징으로 하는 기기.
  33. 제21항에 있어서, 상기 기기는 휴대형 음악 재생기임을 특징으로 하는 기기.
  34. 삭제
  35. 삭제
  36. 삭제
  37. 예측 코딩 데이터를 디코딩하기 위해 버퍼링된 데이터를 변경하는 방법에 있어서,
    예측 정보가 예측 코딩 버퍼 내 데이터에 기초해 생성되었고 피치 래그 값을 포함하며, 코딩 데이터는 하나 이상의 변경 이산 코사인 변환 (MDCT, modified discrete cosine transforms)을 이용해 생성된 주파수 도메인 데이터 및 추가로 예측 에러 계수들을 더 포함할 때, 상기 코딩 데이터 및 예측 정보를 포함하는 스트림을 수신하는 단계;
    상기 코딩 데이터를 디코딩하는 부분으로서, 상기 코딩 데이터가 다운샘플링되어야 할 정도를 가리키는 데시메이션 팩터를 수신하는 단계;
    상기 데시메이션 팩터 및 예측 정보를 이용해 상기 코딩 데이터로부터 디코딩 데이터를 생성하는 단계로서, 하나 이상의 역 변경 이산 코사인 변환들을 이용해 주파수 도메인 데이터로부터 시간 도메인 데이터를 생성하는 단계를 포함하는 단계;
    상기 예측 코딩 버퍼의 해당 치수와는 다른 적어도 한 치수를 갖는 버퍼에서, 상기 디코딩 데이터의 적어도 일부를 버퍼링하는 단계;
    다음 코딩 데이터를 디코딩할 때 사용하기 위해, 상기 버퍼링된 디코딩 데이터의 적어도 일부를 식별하는 단계로서, lagd는 변경 피치 래그 값이고, ltp_lag는 상기 수신된 예측 정보에 포함된 피치 래그 값이고, decimFactor는 데시메이션 팩터를 수신할 때 수신된 데시메이션 팩터일 때,
    Figure 712011001939082-pct00015
    에 기초하여 변경된 피치 래그 값을 산출하는 단계를 포함하는 단계; 및
    상기 적어도 한 예측 코딩 버퍼 치수와 일치하도록 상기 식별된 데이터를 변경하는 단계로서, 상기 식별된 데이터의 엘리먼트들 사이에 제로 값들을 끼워넣기하는 단계를 포함하는 단계를 포함하고,
    상기 코딩 데이터는 주파수 서브 밴드들을 포함하고,
    상기 디코딩 데이터를 생성하는 단계는,
    상기 식별된 데이터를 변경하는 단계의 이전 실행결과로부터 나온 식별 및 변경 데이터에 대해 변경 이산 코사인 변환을 수행하는 단계;
    scale이 상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터의 엘리먼트들에 인가되는 스케일링 팩터이고, cLTP는 상기 코딩 데이터 및 예측 정보를 포함하는 스트림을 수신하는 단계에서 수신된 스트림에 포함된 LTP 계수이고, 양자화된 서브 밴드의 값들이 제로인 경우 c2LTP
    Figure 712011001939082-pct00016
    이고 (
    Figure 712011001939082-pct00041
    는 CLTP를 decimFactor 회 곱한 것을 의미), 그렇지 않은 경우 c2LTP는 cLTP가 될 때, decimFactor=1인 경우 scale=cLTP이고, 기타의 경우 scale=c2LTP인 것에 따라, 상기 변경 이산 코사인 변환을 수행하는 단계에서 나온 데이터를 스케일링하는 단계; 및
    상기 데이터를 스케일링하는 단계에서 나온 스케일링 된 데이터를 상기 예측 에러 계수들에 더하는 단계를 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 방법.
  38. 예측 코딩 데이터를 디코딩하기 위해 버퍼링된 데이터를 변경하는 기기에 있어서,
    한 방법을 수행하도록 구성된 하나 이상의 집적 회로들을 포함하고,
    상기 방법은,
    코딩 데이터 및, 상기 코딩 데이터와 관련되고 예측 코딩 버퍼 내 데이터에 기초해 생성된 예측 정보를 포함하는 스트림을 수신하는 단계;
    상기 코딩 데이터를 디코딩하는 부분으로서, 상기 코딩 데이터가 업샘플링되거나 다운샘플링되어야 할 정도를 가리키는 팩터를 수신하는 단계;
    상기 수신된 팩터 및 상기 예측 정보를 이용해 상기 코딩 데이터로부터 디코딩 데이터를 생성하는 단계;
    적어도 하나는 상기 예측 코딩 버퍼의 해당 치수와는 다른 적어도 한 치수를 갖는 한 개 이상의 버퍼들에서, 상기 디코딩 데이터의 적어도 일부를 버퍼링하는 단계;
    다음 코딩 데이터를 디코딩할 때 사용하기 위해, 상기 버퍼링된 디코딩 데이터의 적어도 일부를 식별하는 단계; 및
    상기 식별된 데이터를 변경하여 상기 적어도 한 예측 코딩 버퍼 치수와 일치하도록 하는 단계를 포함함을 특징으로 하는, 예측 코딩 데이터를 디코딩하기 위한 버퍼링된 데이터 변경 기기.
KR1020087029238A 2006-06-01 2007-05-24 버퍼 조정을 이용하는 예측 코딩 데이터의 디코딩 KR101067514B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/421,541 2006-06-01
US11/421,541 US7610195B2 (en) 2006-06-01 2006-06-01 Decoding of predictively coded data using buffer adaptation

Publications (2)

Publication Number Publication Date
KR20090009278A KR20090009278A (ko) 2009-01-22
KR101067514B1 true KR101067514B1 (ko) 2011-09-27

Family

ID=38779036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087029238A KR101067514B1 (ko) 2006-06-01 2007-05-24 버퍼 조정을 이용하는 예측 코딩 데이터의 디코딩

Country Status (7)

Country Link
US (1) US7610195B2 (ko)
EP (1) EP2022045B1 (ko)
KR (1) KR101067514B1 (ko)
CN (1) CN101484937B (ko)
MX (1) MX2008015045A (ko)
RU (1) RU2408089C9 (ko)
WO (1) WO2007138419A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475072B1 (en) 2005-09-26 2009-01-06 Quintura, Inc. Context-based search visualization and context management using neural networks
US7620607B1 (en) 2005-09-26 2009-11-17 Quintura Inc. System and method for using a bidirectional neural network to identify sentences for use as document annotations
US7437370B1 (en) * 2007-02-19 2008-10-14 Quintura, Inc. Search engine graphical interface using maps and images
EP2077550B8 (en) 2008-01-04 2012-03-14 Dolby International AB Audio encoder and decoder
US8180754B1 (en) * 2008-04-01 2012-05-15 Dranias Development Llc Semantic neural network for aggregating query searches
KR101250309B1 (ko) * 2008-07-11 2013-04-04 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 에일리어싱 스위치 기법을 이용하여 오디오 신호를 인코딩/디코딩하는 장치 및 방법
JP2011257575A (ja) * 2010-06-09 2011-12-22 Cri Middleware Co Ltd 音声処理装置、音声処理方法、プログラムおよび記録媒体
CA2813859C (en) * 2010-10-06 2016-07-12 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for processing an audio signal and for providing a higher temporal granularity for a combined unified speech and audio codec (usac)
KR20150012146A (ko) * 2012-07-24 2015-02-03 삼성전자주식회사 오디오 데이터를 처리하기 위한 방법 및 장치
BR112015031606B1 (pt) 2013-06-21 2021-12-14 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Aparelho e método para desvanecimento de sinal aperfeiçoado em diferentes domínios durante ocultação de erros
EP2863386A1 (en) 2013-10-18 2015-04-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder, apparatus for generating encoded audio output data and methods permitting initializing a decoder
TWI771266B (zh) * 2015-03-13 2022-07-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
WO2020164752A1 (en) 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio transmitter processor, audio receiver processor and related methods and computer programs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208276B1 (en) 1998-12-30 2001-03-27 At&T Corporation Method and apparatus for sample rate pre- and post-processing to achieve maximal coding gain for transform-based audio encoding and decoding
US20050252361A1 (en) 2002-09-06 2005-11-17 Matsushita Electric Industrial Co., Ltd. Sound encoding apparatus and sound encoding method
CA2586251A1 (en) 2004-11-04 2006-05-11 Matsushita Electric Industrial Co., Ltd. Vector conversion device and vector conversion method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US173969A (en) * 1876-02-22 Improvement in can-fillers
US9328A (en) * 1852-10-12 Harness-saddletree
JP3557674B2 (ja) 1994-12-15 2004-08-25 ソニー株式会社 高能率符号化方法及び装置
DE19509149A1 (de) 1995-03-14 1996-09-19 Donald Dipl Ing Schulz Codierverfahren
FI970553A (fi) 1997-02-07 1998-08-08 Nokia Mobile Phones Ltd Audiokoodausmenetelmä ja -laite
DE19747119C2 (de) 1997-10-24 2003-01-16 Fraunhofer Ges Forschung Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms
US6012025A (en) 1998-01-28 2000-01-04 Nokia Mobile Phones Limited Audio coding method and apparatus using backward adaptive prediction
KR100300887B1 (ko) 1999-02-24 2001-09-26 유수근 디지털 오디오 데이터의 역방향 디코딩 방법
FI116992B (fi) * 1999-07-05 2006-04-28 Nokia Corp Menetelmät, järjestelmä ja laitteet audiosignaalin koodauksen ja siirron tehostamiseksi
US6842735B1 (en) 1999-12-17 2005-01-11 Interval Research Corporation Time-scale modification of data-compressed audio information
WO2001059603A1 (en) 2000-02-09 2001-08-16 Cheng T C Fast method for the forward and inverse mdct in audio coding
FI110373B (fi) 2001-04-11 2002-12-31 Nokia Corp Menetelmä pakatun audiosignaalin purkamiseksi
FI110729B (fi) * 2001-04-11 2003-03-14 Nokia Corp Menetelmä pakatun audiosignaalin purkamiseksi
FI118067B (fi) * 2001-05-04 2007-06-15 Nokia Corp Menetelmä audiosignaalin pakkauksen purkamisessa, pakkauksen purkulaite, ja elektroniikkalaite

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208276B1 (en) 1998-12-30 2001-03-27 At&T Corporation Method and apparatus for sample rate pre- and post-processing to achieve maximal coding gain for transform-based audio encoding and decoding
US20050252361A1 (en) 2002-09-06 2005-11-17 Matsushita Electric Industrial Co., Ltd. Sound encoding apparatus and sound encoding method
CA2586251A1 (en) 2004-11-04 2006-05-11 Matsushita Electric Industrial Co., Ltd. Vector conversion device and vector conversion method

Also Published As

Publication number Publication date
EP2022045B1 (en) 2013-02-27
WO2007138419A2 (en) 2007-12-06
WO2007138419A3 (en) 2008-02-28
CN101484937A (zh) 2009-07-15
RU2008148560A (ru) 2010-07-20
MX2008015045A (es) 2008-12-05
US20070282600A1 (en) 2007-12-06
CN101484937B (zh) 2012-07-04
RU2408089C2 (ru) 2010-12-27
US7610195B2 (en) 2009-10-27
EP2022045A4 (en) 2010-06-16
RU2408089C9 (ru) 2011-04-27
KR20090009278A (ko) 2009-01-22
EP2022045A2 (en) 2009-02-11

Similar Documents

Publication Publication Date Title
KR101067514B1 (ko) 버퍼 조정을 이용하는 예측 코딩 데이터의 디코딩
US9728196B2 (en) Method and apparatus to encode and decode an audio/speech signal
US7386445B2 (en) Compensation of transient effects in transform coding
JP6704037B2 (ja) 音声符号化装置および方法
US7876966B2 (en) Switching between coding schemes
KR101513184B1 (ko) 계층적 디코딩 구조에서의 디지털 오디오 신호의 송신 에러에 대한 은닉
RU2584463C2 (ru) Кодирование звука с малой задержкой, содержащее чередующиеся предсказательное кодирование и кодирование с преобразованием
CN113223540B (zh) 在声音信号编码器和解码器中使用的方法、设备和存储器
EP2849180B1 (en) Hybrid audio signal encoder, hybrid audio signal decoder, method for encoding audio signal, and method for decoding audio signal
KR20070002068A (ko) 음성 신호 코딩
KR102171293B1 (ko) 음성 부호화 장치, 음성 부호화 방법, 음성 부호화 프로그램, 음성 복호 장치, 음성 복호 방법 및 음성 복호 프로그램
JP2021525905A (ja) 低ビットレート符号化オーディオの増強を制御する方法及び機器
JP2009219151A (ja) 圧縮された音声信号を伸長する方法、伸長装置および電子装置
KR20060135699A (ko) 신호 복호화 장치 및 신호 복호화 방법
WO2021003569A1 (en) Method and system for coding metadata in audio streams and for flexible intra-object and inter-object bitrate adaptation
JP2017527843A (ja) Lpd/fd移行フレームエンコードのためのバジェットの決定
US20090210219A1 (en) Apparatus and method for coding and decoding residual signal
KR101387808B1 (ko) 가변 비트율을 갖는 잔차 신호 부호화를 이용한 고품질 다객체 오디오 부호화 및 복호화 장치
KR20080092823A (ko) 부호화/복호화 장치 및 방법
WO2011114192A1 (en) Method and apparatus for audio coding
WO2009132662A1 (en) Encoding/decoding for improved frequency response

Legal Events

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

Payment date: 20140901

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee