KR20100031742A - 피치-조정 및 비-피치-조정 코딩을 이용한 신호 인코딩 - Google Patents

피치-조정 및 비-피치-조정 코딩을 이용한 신호 인코딩 Download PDF

Info

Publication number
KR20100031742A
KR20100031742A KR1020107000788A KR20107000788A KR20100031742A KR 20100031742 A KR20100031742 A KR 20100031742A KR 1020107000788 A KR1020107000788 A KR 1020107000788A KR 20107000788 A KR20107000788 A KR 20107000788A KR 20100031742 A KR20100031742 A KR 20100031742A
Authority
KR
South Korea
Prior art keywords
frame
time
signal
segment
remainder
Prior art date
Application number
KR1020107000788A
Other languages
English (en)
Other versions
KR101092167B1 (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 KR20100031742A publication Critical patent/KR20100031742A/ko
Application granted granted Critical
Publication of KR101092167B1 publication Critical patent/KR101092167B1/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/18Vocoders using multiple modes
    • 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/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
    • 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
    • G10L19/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • 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
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

오디오 신호의 프레임의 피치-조정(PR) 인코딩 동안에 계산된 시간 시프트는 비-PR 인코딩 동안에 또다른 프레임의 세그먼트를 시간-시프팅하는데 이용된다.

Description

피치-조정 및 비-피치-조정 코딩을 이용한 신호 인코딩 {SIGNAL ENCODING USING PITCH-REGULARIZING AND NON-PITCH-REGULARIZING CODING}
본 발명은 오디오 신호들의 인코딩에 관한 것이다.
본 명세서는 2007년 6월 13일에 출원된 U.S. 가출원(번호: 60/943,558, 제목: 다중 코딩 모드들을 포함하는 일반화된 오디오 코딩 시스템의 모드 선택을 위한 방법 및 장치)의 우선권이 주장되고, 그 양수인에게 양도된다.
디지털 기술에 의한, 스피치 및/또는 음악과 같은 오디오 정보의 전송은 광범위해졌고, 특히, 장거리 전화, IP를 통한 음성과 같은 패킷-교환식 전화(VoIP로도 지칭되고, IP는 인터넷 프로토콜을 나타냄), 및 셀룰러 전화와 같은 디지털 무선 전화에서 더욱 광범위하게 사용되어져 왔다. 그러한 확산은 재구성된 스피치의 지각 품질을 유지하면서도 전송 채널을 통한 음성 통신을 전송하는데 이용되는 정보량의 감소에 대한 관심을 촉발해왔다. 예를 들어, 이용가능한 시스템 대역폭(특히, 무선 시스템에서)의 효율적인 사용이 필요하다. 시스템 대역폭을 효율적으로 사용하기 위한 하나의 방식은 신호 압축 기술을 채용하는 것이다. 스피치 신호들을 운반하는 시스템들에서는, 스피치 압축(또는 "스피치 코딩") 기술은 이러한 목적을 위해 흔히 사용된다.
사람의 스피치 생성 모델에 관한 파라미터들을 추출함으로써 스피치를 압축하도록 구성되는 장치들은 종종 오디오 코더, 음성 코더, 코덱, 보코더, 또는 스피치 코더, 및 이러한 용어들과 치환가능하게 사용되는 용어로서 지칭된다. 오디오 코더는 일반적으로 인코더 및 디코더이다. 인코더는 일반적으로 "프레임"으로서 지칭되는 일련의 블록들의 샘플들로써 디지털 오디오 신호를 수신하여, 특정 관련 파라미터들의 추출을 위해 각각의 프레임을 분석하며, 대응하는 일련의 인코딩된 프레임들을 생성하기 위해 그러한 파라미터들을 양자화한다. 그러한 인코딩된 프레임들은 디코더를 포함하는 수신기로 전송 채널(즉, 유선 또는 무선 네트워크 연결)을 통해 전송된다. 대안적으로서는, 인코딩된 오디오 신호는 차후의 검색 및 디코딩을 위해 저장될 수 있다. 디코더는 인코딩된 프레임들을 수신하여 처리하고, 파라미터들의 생성을 위해 그러한 프레임들을 양자화하며, 역양자화된 파라미터들을 이용하여 스피치 프레임들을 재생성한다.
코드-여기 선형 예측("CELP": code-excited linear prediction)은 본래 오디오 신호의 파형과 매칭시키려는 시도를 하는 코딩 방식이다. 스피치 신호의 프레임들, 특히 음성 프레임들을 완화된 CELP("RCELP")로 지칭되는 다양한 CELP를 이용하여 인코딩하는 것이 요구될 수 있다. RCELP 코딩 방식에서, 파형-매칭 제약이 완화된다. RCELP 코딩 방식은 피치-조정("PR:pitch-regularizing") 코딩 방식으로써, 신호의 피치 기간들 사이의 변이("지연 곡선(delay contour)"으로서 지칭됨)가 일반적으로 좀더 평활한 합성 지연 곡선으로 매칭시키거나 근사화시키기 위해 피치 펄스들의 상대적 위치들을 변경시킴으로써 조정된다. 피치 조정은 일반적으로 지각 품질의 감소가 거의 없이 아주 적은 비트들로 피치 정보가 인코딩되게 한다. 일반적으로, 조정량을 특정하는 정보는 디코더로 전송되지 않는다. 다음의 문서들은 RCELP 코딩 방식을 포함하는 코딩 시스템들을 설명한다: 제 3 세대 파트너쉽 프로젝트 2("3GPP2") 문서 C.S0030-0, v3.0, 제목: 광대역 스펙트럼 확산 통신 시스템들을 위한 선택가능한 모드 보코더(SMV), 2004년 1월(온라인 www.3gpp.org 에서 볼수있음); 및 3GPPE 문서 C.S0014-C, v1.0, 제목: 광대역 스펙트럼 확산 시스템들을 위한 개선된 변속 코덱, 스피치 서비스 옵션 3, 68 및 70, 2007년 1월(온라인 www.3gpp.org 에서 볼수있음). 프로토타입 피치 기간("PPP: prototype pitch period")과 같은 프로토타입 파형 보간("PWI: prototype waveform interpolation")을 포함하여 음성 프레임들에 대한 다른 코딩 방식들은 또한 PR(위에서 언급된 3GPP2 문서 C.S0014-C의 4.2.4.3에서 설명된 바와 같음)로써 구현될 수 있다. 남성 스피커들의 일반적인 피치 주파수 범위는 50 또는 70에서 150 또는 200 Hz 를 포함하고, 여성 스피커들의 일반적인 피치 주파수 범위는 120 또는 140에서 300 또는 400 Hz를 포함한다.
일반 전화 교환망("PSTN: public switched telephone network")을 통한 오디오 통신은 기존에는 300-3400 kHz 의 주파수 대역폭으로 제한되어왔다. 셀룰러 전화 및/또는 VoIP를 이용하는 네트워크들과 같은 더욱 최신의 오디오 통신 네트워크들은 동일한 대역폭 제한을 가지지 않을 수 있으며, 그러한 네트워크들을 이용하는 장치들이 광대역 주파수 범위를 포함하는 오디오 통신을 전송하고 수신할 수 있도록 하는 것이 요구되어질 수 있다. 예를 들어, 그러한 장치가 아래로는 50Hz 및/또는 위로는 7 또는 8 kHz로 확장되는 오디오 주파수 범위를 지원하는 것이 요구될 수 있다. 그러한 장치는 기존의 PSTN 제한치 외부의 범위에서의 오디오 스피치 내용을 가질 수 있는, 고-품질 오디오 또는 오디오/비디오 회의, 음악 및/또는 텔레비전과 같은 멀티미디어 서비스들의 전달과 같은 다른 애플리케이션들을 지원하는 것 역시 요구될 수 있다.
스피치 코더에 의해 지원되는 범위의 더 높은 주파수대로의 확장은 명료성(intelligibility)을 향상시킬 수 있다. 예를 들어, 's' 및 'f'와 같은 마찰음들을 구별하는 스피치 신호내의 정보는 대개 고 주파수대에 존재한다. 고대역으로의 확장은 또한 프레즌스(presence)와 같은 디코딩된 스피치 신호의 다른 품질들을 개선시킨다. 예를 들어, 심지어 음성 모음은 위에서 언급된 PSTN 주파수 범위보다 훨씬 더 높은 스펙트럼 에너지를 가질 수 있다.
일반적인 구성에 따른 오디오 신호의 프레임들을 처리하는 방법은 피치-조정("PR": pitch regularizing) 코딩 방식에 따라 오디오 신호의 제 1 프레임을 인코딩하는 단계; 및 비-PR 코딩 방식에 따라 오디오 신호의 제 2 프레임을 인코딩하는 단계를 포함한다. 이러한 방법에서, 제 2 프레임은 상기 오디오 신호 내의 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며, 상기 제 1 프레임을 인코딩하는 단계는, 시간 시프트에 기반하여, 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정(time-modifying)하는 단계를 포함하는데, 상기 시간-수정하는 단계는 (A) 상기 시간 시프트에 따라 상기 제 1 프레임의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑(time-warping)하는 단계 중 하나를 포함한다. 이러한 방법에서, 상기 제 1 신호의 세그먼트를 시간-수정하는 단계는 상기 제 1 신호의 다른 피치 펄스(pitch pulse)와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하는 단계를 포함한다. 이러한 방법에서, 상기 제 2 프레임을 인코딩하는 단계는, 상기 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하는 단계를 포함하며, 상기 시간-수정하는 단계는 (A) 상기 시간 시프트에 따라 상기 제 2 프레임의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 단계 중 하나를 포함한다. 이러한 방식으로 오디오 신호의 프레임들을 처리하기 위한 명령들을 포함하는 컴퓨터-판독가능 매체뿐만 아니라 유사한 방식으로 오디오 신호의 프레임들을 처리하기 위한 장치 및 시스템들이 또한 설명된다.
또다른 일반적인 구성에 따라 오디오 신호의 프레임들을 처리하는 방법은 제 1 코딩 방식에 따라 상기 오디오 신호의 제 1 프레임을 인코딩하는 단계; 및 피치-조정(PR) 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하는 단계를 포함한다. 이러한 방법에서, 상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며, 상기 제 1 코딩 방식은 비-PR 코딩 방식이다. 이러한 방법에서, 상기 제 1 프레임을 인코딩하는 단계는, 제 1 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하는 단계를 포함하고, 상기 시간-수정하는 단계는 (A) 상기 제 1 시간 시프트에 따라 상기 제 1 신호의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 제 1 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하는 단계 중 하나를 포함한다. 이러한 방법에서, 상기 제 2 프레임을 인코딩하는 단계는, 제 2 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하는 단계를 포함하고, 상기 시간-수정하는 단계는 (A) 상기 제 2 시간 시프트에 따라 상기 제 2 신호의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 제 2 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 단계 중 하나를 포함한다. 이러한 방법에서, 상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 상기 제 2 신호의 다른 피치 펄스와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하는 단계를 포함하며, 상기 제 2 시간 시프트는 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반한다. 이러한 방식으로 오디오 신호의 프레임들을 처리하기 위한 명령들을 포함하는 컴퓨터-판독가능 매체뿐만 아니라 유사한 방식으로 오디오 신호의 프레임들을 처리하기 위한 장치 및 시스템들이 또한 설명된다.
도 1은 무선 전화 시스템의 예시도.
도 2는 패킷-교환식 데이터 통신을 지원하도록 구성된 셀룰러 전화 시스템의 예시도.
도 3a는 오디오 인코더(AE10) 및 오디오 디코더(AD10)를 포함하는 코딩 시스템의 블록 다이어그램.
도 3b는 한쌍의 코딩 시스템들의 블록 다이어그램.
도 4a는 오디오 인코더(AE10)의 다중-모드 구현(AE20)의 블록 다이어그램.
도 4b는 오디오 디코더(AD10)의 다중-모드 구현(AD20)의 블록 다이어그램.
도 5a는 오디오 인코더(AE20)의 구현(AE22)의 블록 다이어그램.
도 5b는 오디오 인코더(AE20)의 구현(AE24)의 블록 다이어그램.
도 6a는 오디오 인코더(AE24)의 구현(AE25)의 블록 다이어그램.
도 6b는 오디오 인코더(AE20)의 구현(AE26)의 블록 다이어그램.
도 7a는 오디오 신호의 프레임을 인코딩하는 방식(M10)의 흐름도(flowchart).
도 7b는 오디오 신호의 프레임을 인코딩하도록 구성된 장치(F10)의 블록 다이어그램.
도 8은 지연 곡선으로의 시간-워핑 이전 및 이후의 나머지의 예시도.
도 9는 구분적 수정 이전 및 이후의 나머지의 예시도.
도 10은 RCELP 인코딩 방식(RM100)의 흐름도.
도 11은 RCELP 인코딩 방식(RM100)의 구현(RM110)의 흐름도.
도 12a는 RCELP 프레임 인코더(34c)의 구현(RC100)의 블록 다이어그램.
도 12b는 RCELP 인코더(RC100)의 구현(RC110)의 블록 다이어그램.
도 12c는 RCELP 인코더(RC100)의 구현(RC105)의 블록 다이어그램.
도 12d는 RCELP 인코더(RC110)의 구현(RC115)의 블록 다이어그램.
도 13은 나머지 생성기(R10)의 구현(R12)의 블록 다이어그램.
도 14는 RECLP 인코딩을 위한 장치(RF100)의 블록 다이어그램.
도 15는 RCELP 인코딩 방법(RM100)의 구현(RM120)의 흐름도.
도 16은 MDCT 인코딩 방식을 위한 일반적 사인파 윈도우 형태의 예시도.
도 17a는 MDCT 인코더(34d)의 구현(ME100)의 블록 다이어그램.
도 17b는 MDCT 인코더(34d)의 구현(ME200)의 블록 다이어그램.
도 18은 도 16에 도시된 윈도우 기술과는 다른 윈도우 기술의 예시도.
도 19a는 오디오 신호의 프레임들을 일반적 구성에 따라 처리하는 방법(M100)의 흐름도.
도 19b는 작업(T110)의 구현(T112)의 블록 다이어그램.
도 19c는 작업(T112)의 구현(T114)의 블록 다이어그램.
도 20a는 MDCT 인코더(ME100)의 구현(ME110)의 블록 다이어그램.
도 20b는 MDCT 인코더(ME200)의 구현(ME210)의 블록 다이어그램.
도 21a는 MDCT 인코더(ME100)의 구현(ME120)의 블록 다이어그램.
도 21b는 MDCT 인코더(ME100)의 구현(ME130)의 블록 다이어그램.
도 22는 MDCT 인코더들(ME120 및 ME130)의 구현(ME140)의 블록 다이어그램.
도 23a는 MDCT 인코딩 방식(MM100)의 흐름도.
도 23b는 MDCT 인코딩 장치(MF100)의 블록 다이어그램.
도 24a는 오디오 신호의 프레임들을 일반적 구성에 따라 처리하는 방법(M200)의 흐름도.
도 24b는 작업(T620)의 구현(T622)의 흐름도.
도 24c는 작업(T620)의 구현(T624)의 흐름도.
도 24d는 작업들(T622 및 T624)의 구현(T626)의 흐름도.
도 25a는 연속적 오디오 신호 프레임들에 MDCT 윈도우들을 적용함으로써 나타나는 오버랩-및-부가 영역의 예시도.
도 25b는 비-PR 프레임들의 시퀀스에 시간 시프트를 적용하는 예시도.
도 26은 오디오 통신 디바이스(1108)의 블록 다이어그램.
여기에서 설명되는 시스템들, 방법들, 및 장치는 다중-모드 오디오 코딩시스템 특히, 수정된 이산 코사인 변환("MDCT") 코딩 방식과 같은 오버랩-및-부가(overlap-and-add) 비-PR 코딩 방식을 포함하는 코딩 시스템들에서 PR 및 비-PR 코딩 방식들 사이의 전이들 동안의 증가된 지각 품질을 지원하도록 이용될 수 있다. 아래에서 설명된 구성물들은 코드-분할 다중-접속("CDMA") 무선 인터페이스를 채용하도록 구성된 무선 전화 통신 시스템에 존재한다. 그럼에도 불구하고, 여기에서 설명된 바와 같은 특징들을 갖는 방법 및 장치는 유선 및/또는 무선(예를 들어, CDMA, TDMA, FDMA, 및/또는 TD-SCDMA) 전송 채널들을 통해 IP를 통한 음성("VoIP")을 채용하는 시스템들과 같은 공지된 다양한 범주의 기술들을 이용하는 임의의 다양한 통신 시스템에 존재할 수 있다는 것이 당업자에게는 이해될 것이다.
여기에서 설명된 구성들은 패킷-교환식(예를 들어, VoIP와 같은 프로토콜들에 따라 오디오 전송들을 운반하도록 배열된 무선 및/또는 유선 네트워크들) 및/또는 회선-교환식의 네트워크들에서 사용하도록 적응될 수 있다는 것이 명확히 관찰되고 그에 의해 설명된다. 여기에서 개시된 구성들은 협대역 코딩 시스템들(예를 들어, 4 또는 5 kHz의 오디오 주파수 범위를 인코딩하는 시스템들) 및 전체-대역 광대역 코딩 시스템들 및 분할-대역 광대역 코딩 시스템들을 포함하는 광대역 코딩 시스템들(예를 들어, 5kHz보다 큰 오디오 주파수들을 인코딩하는 시스템들)에서 사용하도록 적응될 수 있다는 것이 또한 고려되고 여기에서 제시된다.
문맥을 통해 명확히 제한되지 않는한, 용어 "신호"는 여기에서 와이어, 버스, 또는 다른 전송 매체상에서 표현되는 바와 같이 메모리 위치 상태(또는 메모리 위치들의 세트)를 포함하는 임의의 본래 의미들을 표시하는 것으로 사용된다. 문맥을 통해 명확히 제한되지 않는한, 용어 "생성"은 여기에서 계산 또는 그렇지 않으면 생산과 같이 임의의 본래 의미들을 표시하는 것으로 사용된다. 문맥을 통해 명확히 제한되지 않는한, 용어 "계산'은 여기에서 컴퓨팅, 평가, 평활 및/또는 다수의 값들로부터의 선택과 같은 임의의 본래 의미들을 나타내도록 사용된다. 문맥을 통해 명확히 제한되지 않는한, 용어 "획득'은 계산, 파생, 수신(예를 들어, 외부 디바이스로부터), 및/또는 복구(예를 들어, 저장 엘리먼트들의 어레이로부터)와 같은 임의의 본래 의미들을 나타내는 것으로 사용된다. 여기서 용어 "포함하는"는 상세한 설명 및 청구항에서 이용되는데, 다른 엘리먼트들 또는 동작들을 배제하는 의도는 아니다. 용어 "A는 B에 기초한다"는 (i)"A는 적어도 B에 기초한다" 및 (ii)"A는 B와 동일하다"(만일 특정 문맥에서 적절하다면)의 경우들을 포함하여 임의의 본래의 의미들을 나타내는데 사용된다.
만일 별다른 표시가 없다면, 특정 특징을 갖는 장치의 동작의 임의의 개시는 또한 유사한 특성을 갖는 방법을 개시하는 것으로 명확히 의도되고(및 그의 역 또한 같음), 특정 구성에 따른 장치의 동작의 임의의 개시 또한 유사한 구성에 따른 방법을 개시하는 것으로 명확히 의도된다(및 그의 역 또한 같음). 예를 들어, 별다른 표시가 없다면, 특정 특성을 갖는 오디오 인코더의 임의의 개시는 또한 유사한 특성을 갖는 오디오 인코딩 방식을 개시하는 것으로 명확히 의도되고(및 그의 역 또한 같음), 특정 구성에 따른 오디오 인코더의 임의의 개시 또한 유사한 구성에 따른 오디오 인코딩 방식을 개시하는 것으로 명확히 의도된다(그리고 그와 반대 경우(vice versa)도 또한 같음).
문서의 일부를 참조로써 임의로 병합한 것 역시 해당 일부 내에서만 참조되는 용어들 또는 변수들의 정의를 병합시키려는 것임이 이해될 것이고, 이때 그러한 정의들은 해당 문서내 다른곳에서도 나타난다.
용어들 "코더", "코덱" 및 "코딩 시스템"은 오디오 신호의 프레임들을 수신(아마도 지각적 가중화(perceptual weighting) 및/또는 다른 필터링 동작과 같은 하나 이상의 사전-처리 동작들 이후에)하도록 구성된 적어도 하나의 인코더 및 해당 프레임의 디코딩된 표현을 생성하도록 구성된 대응하는 디코더를 포함하는 시스템을 나타내기 위해 치환가능하게 이용된다.
도 1에 도시된 바와 같이, 무선 전화 시스템(예를 들어, CDMA, TDMA, FDMA, 및/또는 TD-SCDMA 시스템)은 일반적으로 다수의 기지국들(BS)(12) 및 하나 이상의 기지국 제어기들(BSC들)(14)을 포함하는 무선 액세스 네트워크와 무선으로 통신하도록 구성된 다수의 모바일 가입자 유닛들(10)을 포함한다. 그러한 시스템은 또한 일반적으로 BSC(14)와 연결되어, 무선 액세스 네트워크를 기존의 일반 전화 교환망(PSTN)(18)과 인터페이싱시키도록 구성되는 모바일 스위칭 센터(MSC)(16)를 포함한다. 이러한 인터페이스를 지원하기 위해, MSC는 네트워크들 사이에서 전이 유닛으로써 작용하는 매체 게이트웨이를 포함하거나 그렇지 않으면 그러한 게이트웨이와 통신할 수 있다. 매체 게이트웨이는 상이한 전송 및/또는 코딩 기술들과 같은 상이한 포맷들 사이를 변환(예를 들어,시-분할-다중(TDM) 음성 및 VoIP 사이를 변환하기 위해)하도록 구성되고, 또한 반향 소거, 이중-시간 다주파수("DTMF: dual-time multifrequency"), 및 톤 전달과 같은 매체 스트림 기능들을 실행하도록 구성될 수 있다. BSC(14)는 백홀 라인들을 통해 기지국들(12)과 연결된다. 그러한 백홀 라인들은 예를 들어, E1/T1, ATM, IP, PPP, 프레임 중계, HDSL, ADSL 또는 xDSL을 포함하여 임의의 여러 공지된 인터페이스들을 지원하도록 구성될 수 있다. 기지국들(12), BSC들(14), MSC(16), 및 매체 게이트웨이(만일, 존재하면)의 집합은 또한 "기반 구조(infrastructure)"로서 지칭된다.
각각의 기지국(12)은 유리하게 적어도 하나의 섹터(도시되지 않음)를 포함하는데, 각각의 섹터는 전방위 안테나 또는 기지국(12)으로부터 방사상으로 떨어진 특정 방향으로 포인팅된 안테나를 포함한다. 대안적으로, 각각의 섹터는 다이버시티 수신을 위한 두개 또는 다수의 안테나들을 포함할 수 있다. 각각의 기지국(12)은 유리하게 다수의 주파수 할당치들을 지원하도록 설계될 수 있다. 섹터와 주파수 할당의 교차지점은 CDMA 채널로서 지칭될 수 있다. 기지국들(12)은 또한 기지국 트랜시버 서브시스템들(BTS들)(12)로써 공지될 수 있다. 대안적으로, "기지국"은 BSC(14) 및 하나 이상의 BTS들(12)로 집합적으로 지칭하는 것으로 산업에서 이용될 수 있다. BTS들(12)은 또한 "셀 사이트들"(12)을 나타낼 수 있다. 대안적으로, 주어진 BTS(12)의 각각의 섹터들은 셀 사이트들로서 지칭될 수 있다. 모바일 가입자 유닛들(10)은 일반적으로 셀룰러 및/또는 개인 휴대 전화("PCS"), 개인 휴대 정보 단말기("PDA"), 및/또는 모바일 전화 성능을 갖는 다른 디바이스들을 포함한다. 그러한 유닛(10)은 내부 스피커 및 마이크로폰, 테더링된(tethered) 핸드셋 또는 스피커와 마이크로폰을 포함하는 헤드셋(예를 들어, USB 핸드셋), 또는 스피커와 마이크로폰을 포함하는 무선 헤드셋(예를 들어, Bluetooth Special Internet Group, Bellevue, WA에 의해 공표된 바와 같은 Bluetooth 프로토콜 버전을 이용하여 유닛으로 오디오 정보를 통신시키는 헤드셋)을 포함할 수 있다. 그러한 시스템은 하나 이상의 IS-95 표준 버전들(예를 들어, IS-95, IS-95A, IS-95B, cdma2000;Telecommunications Industry Alliance, Arlington, VA에 의해 공표됨)에 따라 이용하도록 구성될 수 있다.
셀룰러 전화 시스템의 전형적 동작이 지금 설명된다. 기지국들(12)은 모바일 가입자 유닛들(12)의 세트들로부터 역방향 링크 신호들의 세트들을 수신한다. 모바일 가입자 유닛들(10)은 전화 통화들 또는 다른 통신들을 실행한다. 주어진 기지국(12)에 의해 수신된 각각의 역방향 링크 신호는 그 기지국(12) 내에서 처리되고, 최종 데이터는 BSC(14)로 전달된다. BSC(14)는 기지국들(12) 사이의 소프트 핸드오프의 결합을 포함하여 통화 자원 할당 및 이동 관리 기능성을 제공한다. BSC(14)는 또한 수신된 데이터를 MSC(16)로 라우팅하는데, 상기 MSC는 PSTN(18)에 인터페이스를 위한 추가의 라우팅 서비스들을 제공한다. 유사하게, PSTN(18)는 MSC(16)과 인터페이싱하고, MSC(16)는 BSC들(14)과 인터페이싱하는데, 상기 BSC들은 순방향 링크 신호들의 세트들을 모바일 가입자 유닛들(10)의 세트들로 전송하도록 기지국들(12)을 차례로 제어한다.
도 1에 도시된 바와 같은 셀룰러 전화 시스템의 엘리먼트들은 또한 패킷-교환식 데이터 통신을 지원하도록 구성될 수 있다. 도 2에 도시된 바와 같이, 패킷 데이터 트래픽은 일반적으로 패킷 데이터 네트워크에 접속된 게이트웨이 라우터에 연결된 패킷 데이터 서비스 노드(PDSN)(22)를 이용하여 모바일 가입자 유닛들(10)과 외부의 패킷 데이터 네트워크(24)(예를 들어, 인터넷과 같은 공용 네트워크) 사이에서 라우팅된다. PDSN(22)은 데이터를 하나 이상의 패킷 제어 펑션(PCF들)(16)로 차례로 라우팅하는데, 상기 PCF 각각은 하나 이상의 BSC들(14)을 서비스하고 패킷 데이터 네트워크와 무선 액세스 네트워크 사이에서 링크로써 작용을 한다. 패킷 데이터 네트워크(24)는 또한 구내 정보 통신망("LAN"), 캠퍼스 통신망("CAN"), 대도시 통신망("MAN"), 광역 통신망("WAN"), 링 통신망, 스타 통신망, 토큰 통신망 등을 포함하도록 구현될 수 있다. 네트워크(24)DP 연결된 사용자 단말은 PDA, 랩탑 컴퓨터, 개인용 컴퓨터, 게임기(예를 들어, XBOX 및 XBOX 360(Microsoft Corp., Redmond, WA), 플레이 스테이션 3 및 플레이 스테이션 포터블(Sony Corp. Tokyo., JP), 및 Wii 및 DS(Nintendo, Kyoto, JP)), 및/또는 오디오 처리 성능을 갖는 임의의 디바이스일 수 있고, VoIP와 같은 하나 이상의 프로토콜들을 이용하여 전화 통화 또는 다른 통신을 지원하도록 구성될 수 있다. 그러한 단말은 내부 인터넷 스피커 및 마이크로폰, 스피커와 마이크로폰을 포함하는 테더링된 핸드셋(예를 들어, USB 핸드셋), 또는 스피커와 마이크로폰을 포함하는 무선 헤드셋(예를 들어, Bluetooth Special Internet Group, Bellevue, WA에 의해 공표된 바와 같은 Bluetooth 프로토콜 버전을 이용하여 단말로 오디오 정보를 통신시키는 헤드셋)을 포함할 수 있다. 이러한 시스템은 (예를 들어, VoIP와 같은 하나 이상의 프로토콜들을 통해) 상이한 무선 액세스 네트워크들 상의 모바일 가입자 유닛들 사이에서, 모바일 가입자 유닛 및 비-모바일 사용자 단말 사이에서, 또는 두 개의 비-모바일 사용자 단말들 사이에서, PSTN으로 진입하지 않고, 패킷 데이터 트래픽으로서 전화 통화 또는 다른 통신들을 전달하도록 구성될 수 있다. 모바일 가입자 유닛(10) 또는 다른 사용자 단말은 또한 "액세스 단말(access terminal)"로서 지칭될 수 있다.
도 3a는 디지털화된 오디오 신호(S100)(예를 들어, 일련의 프레임들)를 수신하고, 통신 채널(C100)(예를 들어, 와이어, 광, 및/또는 무선 통신 링크) 상에서 오디오 디코더(AD10)로 전송하기 위한 대응하는 디코딩된 신호(S200)(예를 들어, 일련의 대응하는 인코딩된 프레임들)를 생성하도록 배열되는 오디오 인코더(AE10)를 도시한다. 오디오 인코더(AD10)는 인코딩된 오디오 신호(S200)의 수신된 버전(S300)을 디코딩하고 대응하는 출력 스피치 신호(S400)를 합성하도록 배열된다.
오디오 신호(S100)는 펄스 부호 변조("PCM"), 컴팬드된(companded) 뮤-로(mu-law), 또는 에이-로(A-law)와 같은 공지된 임의의 다양한 방법들에 따라 디지털화되고 양자화되어진 아날로그 신호(예를 들어, 마이크로폰에 의해 캡쳐됨)를 나타낸다. 그러한 신호는 또한 잡음 억압(suppression), 지각 가중화, 및/또는 다른 필터링 동작들과 같은 아날로그 및/또는 디지털 영역에서의 다른 사전-처리 동작들을 거쳤을 수 있다. 추가로 또는 대안적으로, 그러한 동작들은 오디오 인코더(AE10) 내에서 실행될 수 있다. 오디오 신호의 예(S100)는 또한 디지털화되고 양자화된 아날로그 신호들의 조합(예를 들어, 마이크로폰들의 어레이에 의해 캡쳐되는 바와 같은)을 나타낼 수 있다.
도 3b는 디지털화된 오디오 신호(S100)의 제 1 예(S110)를 수신하고, 통신 채널(C100)의 제 1 예(C110) 상에서 오디오 디코더(AD10)의 제 1 예(AD10a)로 전송하기 위한 인코딩된 신호(S200)의 대응하는 예(S210)를 생성하도록 구성되는 오디오 인코더(AE10)의 제 1 예(AE10a)를 도시한다. 오디오 디코더(AD10a)는 인코딩된 오디오 신호(S210)의 수신된 버전(S310)을 디코딩하고 출력 스피치 신호(S400)의 대응하는 예(S410)를 합성하도록 구성된다.
도 3b는 또한 디지털화된 오디도 신호(S100)의 제 2 예(S120)를 수신하고 통신 채널(C100)의 제 2 예(C120)상에서 오디오 디코더(AD10)의 제 2 예(AD10b)로의 전송을 위한 인코딩된 신호(S200)의 대응하는 예(S220)를 생성하도록 구성된 오디오 인코더(AE10)의 제 2 예(AE10b)를 도시한다. 오디오 디코더(AD10b)는 인코딩된 오디오 신호(S220)의 수신된 버전(S320)을 디코딩하고 출력 스피치 신호(S400)의 대응하는 예(S420)를 합성하도록 구성된다.
오디오 인코더(AE10a) 및 오디오 디코더(AD10b)(유사하게, 오디오 인코더(AE10b) 및 오디오 디코더(AD10a))는 예를 들어, 도 1 및 도 2를 참조하여 위에서 기술된 가입자 유닛들, 사용자 단말들, 매체 게이트웨이, BTS들, 또는 BSC들을 포함하여 스피치 신호들을 전송하고 수신하기 위한 임의의 통신 디바이스에서 함께 이용될 수 있다. 여기에서 설명된 바와 같이, 오디오 인코더(AE10)는 다수의 상이한 방식들로 구현될 수 있고, 오디오 인코더들(AE10a 및 AE10b)는 오디오 인코더(AE10)의 상이한 구현들의 예들일 수 있다. 이와 유사하게, 오디오 디코더(AD10)은 다수의 상이한 방식들로 구현될 수 있고, 오디오 디코더들(AD10a 및 AD10b)는 오디오 디코더(AD10)의 상이한 구현들일 수 있다.
오디오 인코더(예를 들어, 오디오 인코더(AE10))는 일련의 입력 데이터 프레임들과 같은 오디오 신호의 디지털 샘플들을 나타내는데, 이때 각각의 프레임은 사전결정된 개수의 샘플들을 포함한다. 이러한 일련의 프레임들은, 비록 프레임 또는 프레임의 세그먼트(서브프레임으로 지칭됨)를 처리하는 동작 역시 자체 입력 내에 하나 이상의 인접 프레임들의 세그먼트들을 포함할지라도, 대개는 비 오버래핑으로써 구현될 수 있다. 오디오 신호의 프레임들은 일반적으로, 신호의 스펙트럼 포락선이 프레임에 대해 상대적으로 정적인 것으로 유지되도록 기대될 수 있을 정도로 충분히 짧다. 프레임은 일반적으로 전화 애플리케이션들과의 공용 프레임 크기로는 20 msec를 가지면서, 오디오 신호의 5 내지 35 msec 사이(또는 약 40 에서 200 샘플들)에 해당한다. 공용 프레임 크기의 다른 예들은 10 내지 30 msec을 포함한다. 일반적으로 오디오 신호의 모든 프레임들은 동일한 길이를 가지고, 여기에서 설명된 특정 예들에서는 균일한 프레임 길이로써 가정된다. 그러나, 불균일한 프레임 길이들이 사용될 수 있다는 것 역시 고려되고 그에 의해 설명된다.
특정 애플리케이션에 대해 적합하다고 간주되는 임의의 샘플링 레이트(rate)가 이용될지라도, 20 msec의 프레임 길이는 7 kHz의 샘플링 레이트에서 140 샘플들에 해당하고, 8kHz의 샘플링 레이트(협대역 코딩 시스템에 대한 하나의 전형적 샘플링 레이트)에서의 160 샘플들에 해당하며, 16kHz의 샘플링 레이트에서의 320 샘플들에 해당한다. 스피치 코딩에 이용될 수 있는 샘플링 레이트의 또다른 예는 12.8kHz이고, 또다른 예들은 12.8 kHz 내지 38.4kHz 사이의 범위에 있는 레이트들을 포함한다.
전화 통화와 같은 전형적인 오디오 통신 세션에서, 각각의 스피커는 시간 중 약 60%는 소리를 출력하지 않는다(silent). 그러한 애플리케이션에 대한 오디오 인코더는 대개 오직 배경 잡음 또는 침묵("인액티브(inactive) 프레임들")을 포함하는 오디오 신호의 프레임들로부터 스피치 또는 다른 정보("액티브 프레임들")를 포함하는 오디오 신호의 프레임들을 구별해내도록 구성될 것이다. 액티브 프레임들 및 인액티브 프레임들을 인코딩하기 위해 상이한 코딩 모드들 및/또는 비트 레이트를 사용하도록 오디오 인코더(AE10)를 구현하는 것이 요구될 수 있다. 예를 들어, 오디오 인코더(AE10)는 액티브 프레임을 인코딩하기 위한 것보다 인액티브 프레임을 인코딩하기 위해서는 더 작은 비트 레이트(즉, 더 낮은 비트 레이트)을 사용하도록 구현될 수 있다. 상이한 유형의 액티브 프레임들을 인코딩하기 위해 오디오 인코더(AE10)가 상이한 비트 레이트들을 이용하는 것 역시 요구될 수 있다. 그러한 경우들에 있어서, 더 낮은 비트 레이트는 상대적으로 더 적은 스피치 정보를 포함하는 프레임들에 대해 선택적으로 이용될 수 있다. 액티브 프레임들을 인코딩하는데 통상적으로 이용되는 비트 레이트들의 예는 프레임당 171 비트, 프레임당 80비트, 및 프레임당 40 비트; 및 인액티브 프레임들을 인코딩하는데 통상적으로 이용되는 비트 레이트들의 예는 프레임당 16비트를 포함한다. 셀룰러 전화 시스템의 경우에(특히, Telecommunications Industry Association, Arlington, VA에 의해 공표된 것과 같은 잠정 표준(IS)-95, 또는 유사한 산업 표준에 부합하는 시스템들), 이러한 네개의 비트 레이트들은 또한 각각 "풀(full) 레이트", "절반 레이트", "1/4 레이트", 및 "1/8 레이트"로서 지칭된다.
오디오 인코더(AE10)가 오디오 신호의 각각의 액티브 프레임들을 여러개의 상이한 유형들 중 하나로써 분류하는 것이 바람직할 수 있다. 이러한 상이한 유형들은 음성 스피치 프레임들(예를 들어, 모음을 나타내는 스피치), 전이 프레임들(예를 들어, 말의 시작 또는 마침을 나타내는 프레임들), 비음성 스피치 프레임들(예를 들어, 마찰음을 나타내는 스피치), 및 비-스피치 정보의 프레임들(예를 들어, 노래 및/또는 악기와 같은 음악, 또는 다른 오디오 내용)을 포함할 수 있다. 상이한 유형의 프레임들을 인코딩하기 위해 오디오 인코더(AE10)가 상이한 코딩 모드들을 이용하도록 구현하는 것이 요구될 수 있다. 예를 들어, 음성 스피치의 프레임들은 장-기간(즉, 하나의 프레임 주기보다 더 오래 지속됨)이고 피치에 관계되는 주기 구조를 갖기 쉽고, 이는 이러한 장-기간 스펙트럼 특성의 기술(description)을 인코딩하는 코딩 모드를 이용하여 음성 프레임(또는 음성 프레임들의 시퀀스)를 인코딩하는데 좀더 효율적이다. 그러한 코딩 모드들의 예는 코드-여기 선형 예측(""CELP"), 프로토타입 파형 보간("PWI"), 및 프로토타입 피치 기간("PPP")을 포함한다. 한편, 비음성 프레임들 및 인액티브 프레임들은 대개 임의의 충분한 장-기간 스펙트럼 특성이 부족하고, 오디오 인코더는 그러한 특성을 기술하여는 시도를 하지 않는 코딩 모드를 이용하여 이러한 프레임들을 인코딩하도록 구성될 수 있다. 잡음-여기 선형 예측("NELP")은 그러한 코딩 모드의 일례이다. 음악 프레임들은 대개 상이한 톤들의 혼합을 포함하고, 오디오 인코더는 푸리에 또는 코사인 변경과 같은 사인파 분해에 기초한 방식을 이용하여 이러한 프레임들(또는 이러한 프레임들 상의 SPC 분석 동작들의 나머지(residual)들)을 인코딩하도록 구성될 수 있다. 그러한 일례는 수정된 이산 코사인 변환("MDCT")이다.
오디오 인코더(AE10) 또는 대응하는 오디오 인코딩 방식은 비트 레이트들과 코딩 모드들("코딩 방식들"로써도 지칭됨)의 상이한 조합들 중에서 선택하도록 구현될 수 있다. 예를 들어, 오디오 인코더(AE10)는 음성 스피치를 포함하는 프레임들 및 전이 프레임들에 대해서는 풀-레이트 CELP 방식, 비음성 스피치를 포함하는 프레임들에 대해서는 절반-레이트 NELP 방식, 인액티브 프레임들에 대해서는 1/8-레이트 NELP 방식, 및 일반 오디오 프레임들(음악을 포함하는 프레임들 포함)에 대해서는 풀-레이트 MDCT 방식을 이용하도록 구현될 수 있다. 대안적으로, 그러한 오디오 인코더(AE10) 구현은 음성 스피치를 포함하는 적어도 일부 프레임들 특히, 높은 음성 프레임들에 대해서는 풀-레이트 PPP 방식을 이용하도록 구성될 수 있다.
오디오 인코더(AE10)는 또한 풀-레이트 및 절반-레이트 CELP 방식들 및/또는 풀-레이트 및 1/4-레이트 PPP 방식과 같이 하나 이상의 코딩 방식들 각각에 대해 다중 비트 레이트를 지원하도록 구현될 수 있다. 안정적 음성 스피치 기간을 포함하는 일련의 프레임들은 대부분 리던던시를 갖기 쉬운데, 예를 들어 적어도 프레임들 일부는 지각 품질의 큰 손실 없이 풀 레이트보다 더 작은 레이트에서 인코딩될 수 있다.
다중-모드 오디오 코더들(다수의 비트 레이트 및/또는 코딩 모드들을 지원하는 오디오 코더들을 포함)은 일반적으로 저 비트 레이트에서 효율적인 오디오 코딩을 제공한다. 코딩 방식의 수를 증가시키면 코딩 방식을 선택할 때 더 많은 융통성을 허용하여 더 낮은 평균 비트 레이트를 가져올 수 있음을 당업자는 인식할 것이다. 그러나, 코딩 방식들의 개수 증가는 그에 따라 전체 시스템에 있어 복잡성을 증가시킬 것이다. 임의의 주어진 시스템에서 사용되는 이용가능한 방식들의 특정 조합은 이용가능한 시스템 자원 및 특정 신호 환경에 의해 결정될 것이다. 다중-모드 코딩 기술들의 예는 예를 들어 U.S. 특허(번호: 6,691,084, 제목: 가변 속도의 스피치 코딩), 및 U.S. 출원(번호: 2007/0171931, 제목: 가변 속도 디코더들을 위한 임의의 평균 데이터 속도)에서 설명된다.
도 4a는 오디오 인코더(AE10)의 다중-모드 구현(AE20)의 블록 다이어그램을 도시한다. 인코더(AE20)는 코딩 방식 선택기(20) 및 다수의 프레임 인코더들(30a 내지 30p)을 포함한다. p개의 프레임 인코더들 각각은 각각의 코딩 모드에 따라 프레임을 인코딩하도록 구성되고, 코딩 방식 선택기(20)에 의해 생성된 코딩 방식 선택 신호는 현재 프레임에 대한 원하는 코딩 모드 선택을 위해 오디오 인코더(AE20)의 한쌍의 선택기들(50a 및 50b)을 제어하는데 이용된다. 코딩 방식 선택기(20)는 또한 선택된 비트 레이트에서 현재 프레임을 인코딩하기 위해, 선택된 프레임 인코더를 제어하도록 구성될 수 있다. 오디오 디코더(AE20)의 소프트웨어 또는 펌웨어 구현은 실행의 플로우(flow)를 프레임 디코더들 중 하나 또는 다른 디코더로 향하게 하기 위한 코딩 방식 표시를 이용할 수 있는데, 그러한 구현은 선택기(50a) 및/또는 선택기(50b)에 대한 아날로그를 포함하지 않을 수 있다는 것을 유의하도록 한다. 프레임 인코더들(30a 내지 30p) 중 두 개 또는 다수(가능하면 모두)는 LPC 계수 값들의 계산기(인액티브 프레임들에 대해서보다 스피치 및 비-스피치 프레임들에 대해 더 높은 차수를 갖는것처럼, 상이한 코딩 방식들에 대한 상이한 차수를 갖는 결과의 생성이 가능하도록 구성된), 및/또는 LPC 나머지 생성기와 같은 공통 구조를 공유할 수 있다.
코딩 방식 선택기(20)는 일반적으로, 입력 오디오 프레임을 검사하고 어떤 코딩 모드 또는 방식을 프레임에 적용할지를 결정하는 개방-루프 결정 모듈을 포함한다. 이러한 모듈은 전형적으로 프레임들을 액티브 또는 인액티브로써 분류하도록 구성되고, 또한 음성, 비음성, 전이 또는 일반 오디오와 같이 두개 또는 다수의 상이한 유형들 중 하나로써 액티브 프레임을 분류하도록 구성된다. 이러한 프레임 분류는 전체 프레임 에너지, 두개 또는 다수의 상이한 주파수 대역들 각각의 프레임 에너지, 신호대 잡음비("SNR"), 주기성, 및 부호-변환점 속도와 같은, 현재 프레임 및/또는 하나 이상의 이전 프레임들의 하나 이상의 특성들에 기초할 수 있다. 코딩 방식 선택기(20)는 그러한 특성들의 값들을 오디오 인코더(AE20)의 하나 이상의 다른 모듈들로부터 수신하고, 및/또는 그러한 특성들의 값들을 오디오 인코더(AE20)(예를 들어, 셀룰러 전화)를 포함하는 디바이스의 하나 이상의 다른 모듈로부터 수신하기 위해, 그러한 특성들의 값들을 계산하도록 구현될 수 있다. 프레임 분류는 그러한 특성의 값 또는 크기를 임계값과 비교하는 단계 및/또는 그러한 값에서의 변경 크기를 임계값과 비교하는 단계를 포함할 수 있다.
개방-루프 결정 모듈은, 특정 프레임을 프레임이 포함하는 스피치 유형에 따라 인코딩하는 비트 레이트를 선택하도록 구성될 수 있다. 그러한 동작은 "가변-레이트 코딩"으로 지칭된다. 예를 들어, 전이 프레임을 더 높은 비트 레이트(예를 들어, 풀 레이트)에서 인코딩하고, 비음성 프레임을 더 낮은 비트 레이트(예를 들어, 1/4 레이트)에서 인코딩하며, 음성 프레임을 중간 비트 레이트(예를 들어, 절반 레이트) 또는 더 높은 비트 레이트(예를 들어, 풀 레이트)에서 인코딩하도록 오디오 인코더(AD20)를 구성하는 것이 요구될 수 있다. 특정 프레임에 대해 선택된 비트 레이트는 또한 원하는 평균 비트 레이트, 일련의 프레임들에 대해 원하는 비트 레이트 패턴(원하는 평균 비트 레이트를 지원하도록 이용될 수 있는), 및/또는 이전 프레임에 대해 선택된 비트 레이트에 기초할 수 있다.
코딩 방식 선택기(20)는 또한 폐-루프 코딩 결정을 수행하도록 구성될 수 있는데, 이때 인코딩 성능의 하나 이상의 측정치들은 개방-루프가 선택된 코딩 방식을 이용하여 전체 또는 부분적 인코딩 이후에 획득된다. 폐-루프 테스트에서 고려될 수 있는 성능 측정치들은 예를 들어, SNR, PPP 스피치 인코더와 같은 인코딩 방식들에서의 SNR 예측, 예측 오류 양자화 SNR, 위상 양자화 SNR, 진폭 양자화 SNR, 지각 SNR, 및 정상(stationarity) 측정으로써 현재와 과거 프레임들간의 정규화된 상호 상관을 포함한다. 코딩 방식 선택기(20)는 그러한 특성들의 값들을 오디오 인코더(AE20)의 하나 이상의 다른 모듈들로부터 수신하고 및/또는 그러한 특성들의 값들을 오디오 인코더(AE20)를 포함하는 디바이스(예를 들어, 셀룰러 전화)의 하나 이상의 다른 모듈들로부터 수신하기 위해 그러한 특성들의 값들을 계산하도록 구현될 수 있다. 만일 성능 측정치가 임계값 아래로 떨어지면, 비트 레이트 및/또는 코딩 모드는 더 양호한 품질이 기대되는 모드로 변경될 수 있다. 가변-레이트 다중-모드 오디오 코더의 품질을 유지하는데 이용될 수 있는 폐-루프 분류 방식들의 예는 U.S. 특허(번호: 6,330,532, 제목: 스피치 코더에서 타겟 비트 속도를 유지하는 방법 및 장치), 및 U.S. 특허(번호: 5,911,128, 제목: 가변 속도 인코딩 시스템에서 스피치 프레임 인코딩 모드 선택을 실행하는 방법 및 장치)에서 설명된다.
도 4b는 대응하는 디코딩된 오디오 신호(S400)를 생성하기 위해, 수신된 인코딩된 오디오 신호(S300)을 처리하도록 구성되는 오디오 디코더(AD10)의 구현(AD20)의 블록 다이어그램을 도시한다. 오디오 디코더(AD20)는 코딩 방식 검출기(60) 및 다수의 p개의 프레임 디코더들(70a 내지 70p)을 포함한다. 디코더들(70a 내지 70p)은 위에서 설명된 바와 같이, 프레임 디코더(70a)가 프레임 인코더(30a)에 의해 인코딩되어진 프레임들을 디코딩하도록 구성되는 등등의 방식으로, 오디오 인코더의 인코더들에 대응하는 식으로 구성될 수 있다. 프레임 디코더들(70a 내지 70p)의 두개 또는 다수(아마도 모두)는 디코딩된 LPC 계수값들의 세트에 따라 구성가능한 합성 필터와 같은 공용 구조를 공유할 수 있다. 그러한 경우에, 프레임 디코더들은 디코딩된 오디오 신호를 생성하기 위해 합성 필터를 여기시키는 여기 신호를 발생시키는데 이용되는 기술들에서는 본래 다를 수 있다. 오디오 디코더(AD20)는 일반적으로 또한 양자화 잡음을 감소시키기 위해(예를 들어, 포먼트 주파수들을 강조하고 및/또는 스펙트럼 밸리들을 감쇄시킴으로써), 디코딩된 오디오 신호를 처리하도록 구성되는 포스트필터를 포함할 수 있고, 또한 적응 이득 제어를 포함할 수 있다. 오디오 디코더(AD20)를 포함하는 디바이스(예를 들어, 셀룰러 전화)는 이어폰, 스피커, 또는 다른 오디오 변환기, 및/또는 디바이스의 하우징 내에 위치된 오디오 출력 잭으로의 출력을 위해, 디코딩된 오디오 신호(S400)로부터 아날로그 신호를 생성하도록 구성되고 배열된 디지털-아날로그 변환기("DAC")를 포함할 수 있다. 그러한 디바이스는 또한 잭 및/또는 변환기로 인가되기 이전에 아날로그 신호 상에서 하나 이상의 아날로그 처리 동작들(예를 들어, 필터링, 양자화 및/또는 증폭)을 실행하도록 구성될 수 있다.
코딩 방식 검출기(60)는 수신된 인코딩된 오디오 신호(S300)의 현재 프레임에 해당하는 코딩 방식을 표시하도록 구성된다. 적합한 코딩 비트 레이트 및/또는 코딩 모드는 프레임의 포맷으로써 표시될 수 있다. 코딩 방식 검출기(60)는 레이트 검출을 실행하거나 멀티플렉스 부분층과 같은 오디오 디코더(AD20)가 삽입되어 있는 장치의 다른 부분으로부터 속도 표시를 수신하도록 구성될 수 있다. 예를 들어, 코딩 방식 검출기(60)는 멀티플렉스 부분층으로부터 비트 레이트를 표시하는 패킷 유형 표시자를 수신하도록 구성될 수 있다. 대안적으로, 코딩 방식 검출기(60)는 프레임 에너지와 같은 하나 이상의 파라미터들로부터 인코딩된 프레임의 비트 레이트를 결정하도록 구성될 수 있다. 몇몇 애플리케이션에서, 코딩 시스템은 특정 비트 레이트에 대해 오직 하나의 코딩 모드만을 이용하도록 구성되는데, 이때 인코딩된 프레임의 비트 레이트 역시 코딩 모드를 나타낸다. 다른 경우에 있어서, 인코딩된 프레임은 그에 따라 프레임이 인코딩된 코딩 모드를 표시하는 하나 이상의 비트들의 세트와 같은 정보를 포함할 수 있다. 그러한 정보("코딩 인덱스"로서 지칭됨)는 코딩 모드를 명확하게 또는 함축적으로 표시할 수 있다(예를 들어, 다른 가능한 코딩 모드들에 대해 무효한 값을 표시함으로써).
도 4b는, 코딩 방식 검출기(60)에 의해 생성되는 코딩 방식 표시가 프레임 디코더들(70a 내지 70p) 중에서 하나를 선택하기 위해 오디오 디코더(AD20)의 한쌍의 선택기들(90a 및 90b)을 제어하는데 이용되는 예를 도시한다. 오디도 디코더(AD20)의 소프트웨어 또는 펌웨어 구현은 프레임 디코더들 중 하나 또는 다른 디코더로 실행 플로우를 향하게 하기 위해 코딩 방식 표시를 사용할 수 있고, 그러한 구현은 선택기(90a) 및/또는 선택기(90b)에 대해 아날로그를 포함하지 않을 수 있다는 것이 인지된다.
도 5a는 프레임 인코더들(30a, 30b)의 구현들(32a, 32b)을 포함하는 다중-모드 오디오 인코더(AE20)의 구현(AE22)의 블록 다이어그램을 도시한다. 이러한 예에서, 코딩 방식 선택기(20)의 구현(22)은 인액티브 프레임들로부터 오디오 신호(S100)의 액티브 프레임들을 구별하도록 구성된다. 그러한 동작은 "음성 검출(voice activity detection)"로써도 지칭되고, 코딩 방식 선택기(22)는 음성 검출기를 포함하도록 구현될 수 있다. 예를 들어, 코딩 방식 선택기(22)는 액티브 프레임들에 대해서는 하이(액티브 프레임 인코더(32a)의 선택을 표시함)이고 인액티브 프레임들에 대해서는 로우(인액티브 프레임 인코더(32b)의 선택을 표시함)인 또는 그 역인 2진-값의 코딩 방식 선택 신호를 출력하도록 구성될 수 있다. 이러한 예에서, 코딩 방식 선택기(22)에 의해 생성된 코딩 방식 선택 신호는 선택기들(50a, 50b)의 구현(52a, 52b)을 제어하는데 이용되는데, 이때 오디오 신호(S100)의 각각의 프레임은 액티브 프레임 인코더(32a)(예를 들어, CELP 인코더) 및 인액티브 프레임 인코더(32b)(예를 들어, NELP 인코더) 중에서 선택된 하나에 의해 인코딩된다.
코딩 방식 선택기(22)는 프레임 에너지, 신호대 잡음비("SNR"), 주기성, 스펙트럼 분포(예를 들어, 스펙트럼 틸트(tilt)), 및/또는 제로-크로싱(zero-crossing) 레이트와 같은 프레임의 에너지 및/또는 스펙트럼 컨텐트(content)의 하나 이상의 특성들에 기반하여 음성 검출을 실행하도록 구성될 수 있다. 코딩 방식 선택기(22)는 오디오 인코더(AE22)의 하나 이상의 다른 모듈들로부터 그러한 특성들의 값을 수신하고, 오디오 인코더(AE22)를 포함하는 디바이스(예를 들어, 셀룰러 전화)의 하나 이상의 다른 모듈들로부터 그러한 특성들의 값들을 수신하기 위해, 그러한 특성들의 값들을 계산하도록 구현될 수 있다. 그러한 검출은 그러한 특성의 값 또는 크기를 임계값과 비교 및/또는 그러한 특성의 변경 크기(예를 들어, 앞선 프레임과 비교하여)를 임계값과 비교하는 단계를 포함할 수 있다. 예를 들어, 코딩 방식 선택기(22)는 현재 프레임의 에너지를 평가하여, 만일 에너지 값이 임계값보다 적으면(대안적으로, 임계값보다 크지 않으면) 프레임을 인액티브로서 분류하도록 구성될 수 있다. 그러한 선택기는 프레임 에너지를 프레임 샘플들의 제곱들의 합으로써 계산하도록 구성될 수 있다.
코딩 방식 선택기(22)의 또다른 구현은 저-주파수 대역(예를 들어, 300Hz 내지 2kHz) 및 고-주파수 대역(예를 들어, 2kHz 내지 4kHz) 각각에서 현재 프레임의 에너지를 평가하고, 각각의 대역에 대한 만일 에너지 값이 각각의 임계값보다 적으면(대안적으로, 크지 않으면) 그 프레임이 인액티브임을 표시하도록 구성된다. 그러한 선택기는 프레임에 통과대역 필터를 적용하고 필터링된 프레임의 샘플들의 제곱들의 합을 계산함으로써 대역 내의 프레임 에너지를 계산하도록 구성된다. 그러한 음성 액티비티(activity) 검출 동작의 일례는 제 3 세대 파트너쉽 프로젝트 2("3GPP2") 표준 문서 C.S0014-C, v1.0(2007년 1월)의 섹션 4.7에 설명되어 있고, 온라인에서는 www.3gpp2.org에서 볼 수 있다.
추가로 또는 대안적으로, 음성 검출 동작은 하나 이상의 이전 프레임들 및/또는 하나 이상의 후속하는 프레임들로부터의 정보에 기초할 수 있다. 예를 들어, 2개 또는 다수의 프레임들에 대해 평균화된 프레임 특성의 값에 기반하여 인액티브 또는 액티브로써 프레임을 분류하도록 코딩 방식 선택기(22)를 구성시키는 것이 요구될 수 있다. 이전의 프레임으로부터의 정보(예를 들어, 배경 잡음 레벨, NSR)에 기초한 임계값을 이용하여 프레임을 분류하도록 코딩 방식 선택기(22)를 구성시키는 것이 요구될 수 있다. 액티브 프레임들에서 인액티브 프레임들로 오디오 신호(S100) 내 전이가 뒤따르는 하나 이상의 제 1 프레임들을 액티브로써 분류하도록 코딩 방식 선택기(22)를 구성시키는 것 또한 요구될 수 있다. 전이 이후에 그러한 방식으로 이전의 분류 상태를 계속하는 동작은 "행오버(hangover)"로써 또한 지칭된다.
도 5b는 프레임 인코더들(30c, 30d)의 구현들(32c, 32d)을 포함하는 다중-모드 오디오 인코더(AE20)의 구현(AE24)의 블록 다이어그램을 도시한다. 이러한 예에서, 코딩 방식 선택기(20)의 구현(24)은 비-스피치 프레임들(예를 들어, 음악)로부터 오디오 신호(S100)의 스피치 프레임들을 구별해내도록 구성된다. 예를 들어, 코딩 방식 선택기(24)는 스피치 프레임들에 대해서는 하이(CELP 인코더와 같은 스피치 프레임 인코더(32c)의 선택을 표시함)이고 QL-스피치 프레임들에 대해서는 로우(MDCT 인코더와 같은 비-스피치 프레임 인코더(32d)의 선택을 표시함)인 또는 그 역인 2진-값의 코딩 방식 선택 신호를 출력하도록 구성될 수 있다. 그러한 분류는 프레임 에너지, 피치, 주기성, 스펙트럼 분포(예를 들어, 스펙트럼 계수들, LPC 계수들, 선 스펙트럼 주파수들("LSF")), 및/또는 제로-크로싱 레이트와 같은 프레임의 에너지 및/또는 스펙트럼 컨텐트의 하나 이상의 특성들에 기초할 수 있다. 코딩 방식 선택기(24)는 오디오 인코더(AE24)의 하나 이상의 다른 모듈들로부터 그러한 특성들의 값을 수신하고, 오디오 인코더(AE24)를 포함하는 디바이스(예를 들어, 셀룰러 전화)의 하나 이상의 다른 모듈들로부터 그러한 특성들의 값들을 수신하기 위해, 그러한 특성들의 값들을 계산하도록 구현될 수 있다. 그러한 분류는 그러한 특성의 값 또는 크기를 임계값과 비교하는 단계 및/또는 그러한 값에서의 변경 크기(예를 들어, 앞선 프레임들과 비교하여)를 임계값과 비교하는 단계를 포함할 수 있다. 그러한 분류는 하나 이상의 이전 프레임들로부터의 정보 및/또는 하나 이상의 후속하는 프레임들로부터의 정보에 기초할 수 있는데, 이는 히든 마르코프 모델(hidden Markov model)과 같은 다중-상태 모델을 업데이트하는데 이용될 수 있다.
이러한 예에서, 코딩 방식 선택기(24)dp 의해 생성된 코딩 방식 선택 신호는, 오디오 신호(S100)의 각각의 프레임이 스피치 프레임 인코더(32c) 및 비-스피치 프레임 인코더(32d) 중에서 선택된 하나에 의해 인코딩되는 식으로, 선택기들(52a 및 52b)을 제어하는데 이용된다. 도 6a는 스피치 프레임 인코더(32c)의 RCELP 구현(34c) 및 비-스피치 인코더(32d)의 MDCT 구현(34d)을 포함하는 오디오 인코더(AE24)의 구현(AE25)의 블록 다이어그램을 도시한다.
도 6b는 프레임 인코더들(30b, 30d, 30e, 30f)의 구현들(32b, 32d, 32e, 32f)을 포함하는 다중-모드 오디오 인코더(AE20)의 구현(AE26)의 블록 다이어그램을 도시한다. 이러한 예에서, 코딩 방식 선택기(20)의 구현(26)은 오디오 신호(S100)의 프레임들을 음성 스피치, 비음성 스피치, 인액티브 스피치, 및 비-스피치로서 분류하도록 구성된다. 그러한 분류는 위에서 언급된 바와 같은 프레임의 에너지 및/또는 스펙트럼 컨텐트의 하나 이상의 특성들에 기초할 수 있고, 그러한 특성들의 값 또는 크기를 임계값과 비교 및/또는 그러한 특성들의 변경 크기(예를 들어, 앞서 프레임과 비교하여)를 임계값과 비교하는 과정을 포함할 수 있으며, 하나 이상의 이전 프레임들 및/또는 하나 이상의 후속 프레임들로부터의 정보에 기초할 수 있다. 코딩 방식 선택기(26)는 오디오 인코더(AE26)의 하나 이상의 다른 모듈들로부터 그러한 특성들의 값들을 수신하고, 오디오 인코더(AE26)를 포함하는 디바이스(예를 들어, 셀룰러 전화)의 하나 이상의 다른 모듈들로부터 그러한 특성들의 값들을 수신하기 위해, 그러한 특성들의 값들을 계산하도록 구현될 수 있다. 이러한 예에서, 코딩 방식 선택기(26)에 의해 생성된 코딩 방식 선택 신호는, 오디오 신호(S100)의 각각의 프레임을 음성 프레임 인코더(32e)(예를 들어, CELP 또는 완화된(relaxed) CELP("RCELP")), 비음성 프레임 인코더(32f)(예를 들어, NELP 인코더), 비-스피치 프레임 인코더(32d), 및 인액티브 프레임 인코더(32b)(예를 들어, 저-속도 NELP 인코더) 중에서 선택된 하나에 의해 인코딩되는 식으로, 선택기들(50a, 50b)의 구현(54a, 54b)을 제어하도록 이용된다.
오디오 인코더(AE10)에 의해 생성된 인코딩된 프레임은 일반적으로, 그로부터 오디오 신호의 대응하는 프레임이 재구성되어지는 파라미터 값들의 세트를 포함한다. 이러한 파라미터값들의 세트는 일반적으로 주파수 스펙트럼에 걸쳐 프레임 내의 에너지 분포의 기술과 같은 스펙트럼 정보를 포함한다. 그러한 에너지 분포는 프레임의 "주파수 포락선(envelope)" 또는 "스펙트럼 포락선"으로써도 지칭된다. 프레임의 스펙트럼 포락선의 기술은 대응하는 프레임을 인코딩하는데 이용되는 특정 코딩 방식에 따라 상이한 형태 및/또는 길이를 가질 수 있다. 오디오 인코더(AE10)는, 패킷의 크기, 포맷, 및 내용이 그 프레임에 대해 선택된 특정 코딩 방식에 대응하는 식으로, 파라미터 값들의 세트를 패킷으로 배열하도록 구성된 패킷티저(packetizer)(도시되지 않음)를 포함하도록 구현될 수 있다. 오디오 디코더(AD10)의 대응하는 구현은 헤더 및/또는 다른 라우팅 정보와 같은 패킷 내 다른 정보로부터 파라미터값들의 세트를 분리해내도록 구성되는 디패킷티저(depacketizer)(도시되지 않음)을 포함하도록 구현될 수 있다.
오디오 인코더(AE10)와 같은 오디오 인코더는 일반적으로 프레임의 스펙트럼 포락선의 기술(description)을 순차적 시퀀스의 값들로써 계산하도록 구성된다. 몇몇 구현에서, 오디오 인코더(AE10)는, 각각의 값이 대응하는 주파수 또는 대응하는 스펙트럼 영역에 대해 신호의 진폭 또는 크기를 표시하는 방식으로, 순차적 시퀀스를 계산하도록 구성된다. 그러한 기술의 일례는 푸리에 또는 이산 코사인 변환 계수들의 순차적 시퀀스이다.
다른 구현에서, 오디오 인코더(AE10)는 스펙트럼 포락선의 기술을 선형 예측 부호화("LPC") 분석의 계수들의 값들의 세트와 같은 코딩 모델의 파라미터들의 값들의 순서적 시퀀스로써 계산하도록 구성된다. LPC 계수 값들은 오디오 신호의 공진을 표시하고, "포맨츠(formants)"로서 지칭된다. LPC 계수 값들의 순서적 시퀀스는 전형적으로 하나 이상의 벡터들로써 배열되고, 오디오 인코더는 이러한 값들을 필터 계수들 또는 반사 계수들로써 계산하도록 구현될 수 있다. 그러한 세트 내 계수값들의 개수는 LPC 분석의 "차수" 로서 지칭되고, 통신 디바이스(예를 들어, 셀룰러 전화)의 오디오 인코더에 의해 실행되는 바와 같은 LPC 분석의 선형적 차수의 예들은 4, 6, 8, 10, 12, 16, 20, 24, 28 및 32 이다.
오디오 인코더(AE10)의 구현을 포함하는 디바이스는 전형적으로 스펙트럼 포락선의 기술을 양자화된 형태(예를 들어, 대응하는 룩업 테이블 또는 "코드북"으로의 하나 이상의 인덱스들)로 전송 채널을 통해 전송하도록 구성된다. 따라서, 선 스펙트럼 쌍("LSP")들, LSF들, 이미턴스(immittance) 스펙트럼 쌍("ISP")들, 이미턴스 스펙트럼 주파수("ISF")들, 켑스트럼(cepstral) 계수들, 또는 로그 영역 비율들의 값들의 세트와 같은 효율적으로 양자화 될 수 있는 형태로 LPC 계수값들의 세트를 계산하도록 오디오 인코더(AE10)를 구현하는 것이 바람직할 수 있다. 오디오 인코더(AE10)는 변환 및/또는 양자와 이전에 지각 가중화 또는 다른 필터링 동작과 같은 하나 이상의 다른 처리 동작들을 순차화된 값들의 시퀀스 상에서 실행하도록 구성될 수 있다.
몇몇 경우에 있어서, 프레임의 스펙트럼 포락선의 기술은 또한, 프레임의 임시 정보의 기술(예를 들어, 푸리에 또는 이산 코사인 변경 계수들의 순차 시퀀스로써)을 포함한다. 다른 경우에 있어서, 패킷의 파라미터들의 세트는 또한, 프레임의 임시 정보의 기술을 포함할 수 있다. 임시 정보의 기술의 형태는 프레임을 인코딩하는데 이용되는 특정코딩 모드에 기초한다. 몇몇 코딩 모드들(예를 들어, CELP 또는 PPP 코딩 모드에 대해, 및 몇몇 MDCT 코딩 모드들에 대해)에 대해, 임시 정보의 기술은 LPC 모델(예를 들어, 스펙트럼 포락선의 기술에 따라 구성된 합성 필터)을 여기시키기 위해 오디오 디코더에 의해 이용되어지는 여기 신호의 기술을 포함한다. 여기 신호의 기술은 대개, 프레임 상의 LPC 분석 동작의 나머지에 기초한다. 여기 신호의 기술은 일반적으로 양자화된 형태(예를 들어, 대응하는 코드북들로의 하나 이상의 인덱스들로서)로 패킷 내에 표시되고, 여기 신호의 적어도 하나의 피치 컴포넌트에 대한 정보를 포함할 수 있다. PPP 코딩 모드에 대해, 예를 들어, 인코딩된 임시적 정보는 여기 신호의 피치 컴포넌트를 재생성하기 위해 오디오 디코더에 의해 이용되어지는 프로토타입의 기술을 포함할 수 있다. RCELP 또는 PPP 코딩 모드에 대해, 인코딩된 임시적 정보는 하나 이상의 피치 기간 추정치들을 포함할 수 있다. 피치 컴포넌트에 대한 정보의 기술을 일반적으로, 양자화된 형태로(예를 들어, 대응하는 코드북들로의 하나 이상의 인덱스들로서) 패킷 내에 표시된다.
오디오 인코더(AE10)의 구현의 다양한 엘리먼트들은 요구되는 애플리케이션에 적합하다고 간주되는 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합으로 구현될 수 있다. 예를 들어, 그러한 소자들은 예를 들어, 동일한 칩 상에서 또는 칩세트 내의 두개 또는 다수의 칩들 중에서 전자적 및/또는 광학적 디바이스들로써 제조될 수 있다. 그러한 디바이스의 일례는 트랜지스터 또는 논리 게이트와 같은 고정된 또는 프로그램가능한 논리 소자들의 어레이이고, 이러한 임의의 소자들은 하나 이상의 그러한 어레이들로써 구현될 수 있다. 이러한 소자들의 임의의 두개 또는 다수, 또는 심지어 그 모두는 동일한 어레이 또는 어레이들 내에 구현될 수 있다. 그러한 어레이 또는 어레이들은 하나 이상의 칩들(예를 들어, 두개 또는 다수의 칩들을 포함하는 칩세트) 내에 구현될 수 있다. 대응하는 오디오 디코더(AD10)의 구현의 다양한 소자들에 대해서도 동일하게 적용된다.
여기에서 설명된 바와 같은 오디오 인코더(AE10)의 다양한 구현들의 하나 이상의 엘리먼트들은 또한 마이크로프로세서, 임베디드 프로세서, IP 코어, 디지털 신호 프로세서, 필드-프로그래머블 게이트 어레이("FPGA"), 애플리케이션-특정 표준 제품("ASSP"), 및 주문형 반도체("ASIC")와 같은 하나 이상의 고정된 또는 프로그래밍 가능한 논리 소자들의 어레이들 상에서 실행하도록 배열된 명령들의 하나 이상의 세트들로써 전체 또는 부분적으로 구현될 수 있다. 오디오 인코더(AE10)의 구현의 임의의 다양한 엘리먼트들은 또한 하나 이상의 컴퓨터들(예를 들어, 명령들의 하나 이상의 세트들 또는 시퀀스들을 실행하도록 프로그램된 하나 이상의 어레이들을 포함하는 기기들, 또한 "프로세서"로 지칭됨)로써 구현될 수 있고, 이러한 엘리먼트들의 임의의 두개 또는 다수, 또는 심지어 모두는 그러한 동일한 컴퓨터 또는 컴퓨터들 내에서 구현될 수 있다. 대응하는 오디오 디코더(AD10)의 다양한 구현들의 엘리먼트들에 대해서도 동일하게 적용된다.
오디오 인코더(AE10)의 구현의 다양한 엘리먼트들은 셀룰러 전화 또는 그러한 통신 용량을 갖는 다른 디바이스와 같은 유선 및/또는 무선 통신을 위한 디바이스 내에 포함될 수 있다. 그러한 디바이스는 회선-교환식 및/또는 패킷-교환식 네트워크들(예를 들어, VoIP와 같은 하나 이상의 프로토콜들을 이용하여)과 통신하도록 구성될 수 있다. 그러한 디바이스는 인터리빙, 펑츄어(puncturing), 컨벌루션 코딩, 에러 정정 코딩, 네트워크 프로토콜의 하나 이상의 층들의 코딩(예를 들어, 이더넷, TCP/IP, CDMA2000), 하나 이상의 무선-주파수("RF") 및/또는 광학적 반송파의 변조, 및/또는 채널을 통한 하나 이상의 변조된 반송파의 전송과 같이, 인코딩된 프레임들을 운반하는 신호상에 동작들을 실행하도록 구성될 수 있다.
오디오 디코더(AD10)의 구현의 다양한 엘리먼트들은 셀룰러 전화 또는 그러한 통신 용량을 갖는 다른 디바이스와 같은 유선 및/또는 무선 통신을 위한 디바이스 내에 포함될 수 있다. 그러한 디바이스는 회선-교환식 및/또는 패킷-교환식 네트워크들(예를 들어, VoIP와 같은 하나 이상의 프로토콜들을 이용하여)과 통신하도록 구성될 수 있다. 그러한 디바이스는 디인터리빙, 디펑츄어(depuncturing), 컨벌루션 디코딩, 에러 정정 디코딩, 네트워크 프로토콜의 하나 이상의 층들의 디코딩(예를 들어, 이더넷, TCP/IP, CDMA2000), 하나 이상의 무선-주파수("RF") 및/또는 광학적 반송파의 복조, 및/또는 채널을 통한 하나 이상의 변조된 반송파의 수신과 같이, 인코딩된 프레임들을 운반하는 신호상에 동작들을 실행하도록 구성될 수 있다.
오디오 인코더(AE10)의 구현의 하나 이상의 엘리먼트들이 작업을 실행하거나, 장치가 삽입되어 있는 디바이스 또는 시스템의 또다른 동작고 관련되는 작업과 같은 장치의 동작에 직접적으로 관련되지 않는 다른 명령들의 세트들을 실행하도록 이용되어지는 것이 가능하다. 오디오 인코더(AE10)의 구현의 하나 이상의 엘리먼트들이 공통 구조물을 갖는 것 역시 가능하다(예를 들어, 상이한 시간들에서 상이한 엘리먼트들에 대응하는 코드의 일부를 실행하는데 이용되는 프로세서, 상이한 시간들에서 상이한 엘리먼트들에 대응하는 작업들을 수행하도록 실행되는 명령들의 세트, 또는 상이한 시간들에서 상이한 엘리먼트들에 대한 동작들을 실행하는 전자적 및/또는 광학적 디바이스들의 배열). 대응하는 오디오 디코더(AD10)의 다양한 구현들의 엘리먼트들에 대해서도 동일하게 적용된다. 그러한 일례에서, 코딩 방식 선택기(20) 및 프레임 인코더들(30a 내지 30p)은 동일한 프로세서 상에서 실행하도록 배열된 명령들의 세트들로서 구현된다. 또다른 예로써 코딩 방식 검출기(60) 및 프레임 디코더들(70a 내지 70p)은 동일한 프로세서 상에서 실행하도록 배열된 명령들의 세트들로서 구현된다. 프레임 인코더들(30a 내지 30p) 중 둘 이상은 상이한 시간들에서 실행하는 명령들의 하나 이상의 세트들을 공유하도록 구현될 수 있다; 프레임 디코더들(70a 내지 70p)에 대해서도 동일하게 적용된다.
도 7a는 오디오 신호(M10)의 프레임을 인코딩하는 방법의 흐름도를 도시한다. 방법(M10)은 위에서 설명되는 바와 같이, 에너지 및/또는 스펙트럼 특성들과 같은 프레임 특성들의 값들을 계산하는 작업(TE10)을 포함한다. 계산된 값들에 기반하여, 작업(TE20)은 코딩 방식을 선택한다(예를 들어, 코딩 방식 선택기(20)의 다양한 구현들을 참조하여 위에서 설명된 바와 같음). 작업(TE30)은 인코딩된 프레임을 생성하기 위해, 선택된 코딩 방식(예를 들어, 프레임 인코더들(30a 내지 30p)의 다양한 구현들을 참조하여 여기서 설명된 바와 같이)에 따라 프레임을 인코딩한다. 선택적 작업(TE40)은 인코딩된 프레임을 포함하는 패킷을 생성한다. 방법(M10)은 오디오 신호의 일련의 프레임들 각각을 인코딩하도록 구성될 수 있다(예를 들어, 반복).
방법(M10)의 구현의 전형적 애플리케이션에서, 논리 소자들(예를 들어, 논리 게이트들)의 어레이는 상기 방법의 다양한 작업들 중 하나, 둘 이상, 또는 그 모두를 실행하도록 구성된다. 하나 또는 다수(아마도 모두)의 작업들은 또한 논리 소자들의 어레이(예를 들어, 프로세서, 마이크로프로세서, 마이크로 제어기, 또는 다른 유한 상태 기계)를 포함하는 기기(예를 들어, 컴퓨터)에 의해 판독가능하고 및/또는 실행가능한 컴퓨터 프로그램 제품(예를 들어, 디스크, 플래시 또는 다른 비휘발성 메모리 카드, 반도에 메모리 칩 등과 같은 하나 이상의 데이터 저장 매체)에 삽입된 코드(명령들의 하나 이상의 세트들)로써 구현될 수 있다. 방법(M10)의 구현의 작업들은 또한 하나 이상의 그러한 어레이 또는 기기에 의해 실행될 수 있다. 이러한 또는 다른 구현에서, 작업들은 셀룰러 전화 또는 그러한 통신 용량을 가지는 다른 디바이스와 같은 무선 통신을 위한 디바이스 내에서 실행될 수 있다. 그러한 디바이스는 회선-교환식 및/또는 패킷-교환식 네트워크들(예를 들어, VoIP와 같은 하나 이상의 프로토콜들을 이용하여)과 통신하도록 구성될 수 있다. 예를 들어, 그러한 디바이스는 인코딩된 프레임들을 수신하도록 구성된 RF 회로장치를 포함할 수 있다.
도 7b는 오디오 신호의 프레임을 인코딩하도록 구성되는 장치(F10)의 블록 다이어그램을 도시한다. 장치(F10)는 위에서 설명된 바와 같은 에너지 및/또는 스펙트럼 특성들과 같은 프레임 특성들의 값들을 계산하기 위한 수단(FE10)을 포함한다. 장치(F10)는 또한 계산된 값들(예를 들어, 코딩 방식 선택기(20)의 다양한 구현들을 참조하여 위에서 설명된 바와 같은)에 기반하여 코딩 방식을 선택하기 위한 수단(FE20)을 포함한다. 장치(F10)는 또한 인코딩된 프레임을 생성하기 위해, 선택된 코딩 방식(예를 들어, 프레임 인코더들(30a 내지 30p)의 다양한 구현들을 참조하여 여기에서 설명된 바와 같이)에 따라 프레임을 인코딩하기 위한 수단(FE30)을 포함한다. 장치(F10)는 또한, 인코딩된 프레임을 포함하는 패킷을 생성하기 위한 선택적 수단(FE40)을 포함한다. 장치(F10)는 오디오 신호의 일련의 프레임들 각각을 인코딩하도록 구성될 수 있다.
RCELP 코딩 방식과 같은 PR 코딩 방식의 전형적 구현 및 PPP 코딩 방식의 PR 구현에서, 피치 기간은 상관-기반일 수 있는 피치 추정 동작을 이용하여, 모든 프레임 또는 서브프레임에 대해 한번 추정된다. 프레임 또는 서브프레임의 경계에서의 피치 추정 윈도우를 센터링하는 것이 요구될 수 있다. 프레임의 서브프레임들로의 일반적 분할은 프레임당 세개의 서브프레임들(예를 들어, 160-샘플 프레임의 비-오버래핑 서브프레임 각각에 대해 53, 53 및 54 샘플들), 프레임당 네개의 서브프레임들, 프레임당 다섯개의 서브프레임들(예를 들어, 160-샘플 프레임에서 5개의 32-샘플 비-오버래핑 서브프레임들)을 포함한다. 또한, 절반 피치(pitch halving), 2배 피치(pitch doubling), 3배 피치(pitch tripling) 등과 같은 오류들을 피하기 위해, 추정된 피치 기간들 사이의 일관성(consistency)을 검사하는 것이 바람직할 수 있다. 피치 추정 업데이트들 사이에서, 피치 기간은 합성 지연 곡선 생성을 위해 보간(interpolate)된다. 그러한 보간은 샘플당 또는 덜 자주(예를 들어, 두번째 또는 세번째 매샘플마다) 또는 더 자주(예를 들어, 서브샘플 분해능에서) 실행될 수 있다. 예를 들어, 위에서 참조된 3GPP2 문서 C.S0014-C에서 설명된 개선 변속 코덱("EVRC")는 8-배 오버 샘플링된 합성 지연 곡선을 이용한다. 전형적으로 보간은 일차(linear) 또는 쌍일차(bilinear) 보간이고, 이는 하나 이상의 다상 보간 필터들 또는 다른 적합한 기법을 이용하여 수행될 수 있다. RCELP와 같은 PR 코딩 방식은, 1/4 레이트와 같은 다른 레이트로 인코딩하는 구현들 역시 이용가능할지라도, 일반적으로 풀 레이트 또는 절반 레이트로 프레임들을 인코딩하도록 구성된다.
비음성 프레임들과 함께 연속적 피치 곡선을 이용함으로써, 버즈(buzz)와 같은 원치 않는 부가물(artifact)이 생길 수 있다. 비음성 프레임들에 대해, 서브프레임 경계에서 다른 일정한 피치 기간으로 신속히 스위칭함으로써, 각각의 서브프레임들 내에서 일정한 피치 기간을 이용하는 것이 요구될 수 있다. 그러한 기술의 일반적 예들은 매 40msec 마다 반복되는, 20 샘플들 내지 40 샘플들 범위(8kHz 샘플링 레이트)의 피치 기간들의 의사-난수 시퀀스를 이용한다. 위에서 설명된 바와 같은 음성 검출("VAD')은 비음성 프레임들로부터 음성 프레임들을 구별하도록 구성되고, 그러한 동작은 일반적으로 스피치 및/또는 나머지의 자동상관, 제로-크로싱 레이트, 및/또는 제 1 반사 계수와 같은 인자들에 기초한다.
PR 코딩 방식(예를 들어, RCELP)은 스피치 신호의 시간-워핑을 실행한다. "신호 수정(signal modification)"으로도 지칭되는 이러한 시간-워핑 동작에서, 상이한 시간 시프트들이, 신호의 특성들(예를 들어, 피치 펄스들) 사이의 원래 시간 관계가 변경되는 식으로, 신호의 상이한 세그먼트들로 적용된다. 예를 들어, 피치-기간 곡선이 합성 피치-기간 곡선과 매칭되는 방식으로, 신호를 시간-워핑하는 것이 요구될 수 있다. 시간 시프트의 값은 일반적으로 양의 몇 msec 내지 음의 몇 msec 범위내에 존재한다. PR 인코더(예를 들어, RCELP 인코더)가 스피치 신호보다는 나머지를 수정하는 것이 일반적인데, 왜냐하면 포맨츠의 위치들을 변경시키는 것을 회피하는 것이 바람직하기 때문이다. 그러나, 아래에서 청구되는 배열들은 또한 스피치 신호를 수정하도록 구성되는 PR 인코더(예를 들어, RCELP 인코더)를 이용하여 실행될 수 있다는 것이 명확히 관찰되고 그에 의해 개시된다.
연속적 워핑을 이용하여 나머지를 수정함으로써 최상 결과치들이 획득될 수 있음이 기대될 수 있다. 그러한 워핑은 샘플당 실행되거나 또는 나머지의 세그먼트들(예를 들어, 서브프레임들 또는 피치 기간들)을 압축하고 확장시킴으로써 실행될 수 있다.
도 8은 평활 지연 곡선(파형B)으로 시간-워핑되기 전(파형A)과 후의 나머지의 예를 도시한다. 이러한 예에서, 수직 점선들 사이의 간격은 규칙적 피치 기간을 표시한다.
연속적 워핑은 휴대용, 임베디드, 실-시간, 및/또는 배터리-전력 애플리케이션들에서 실용적이기에는 너무 계산 집약적일 수 있다. 그러므로, RCELP 또는 다른 PR 인코더가, 시간-시프팅의 양이 각각의 세그먼트들에 대해 일정한 방식으로, 나머지의 세그먼트들을 시간-시프팅함으로써 나머지의 구분적 수정을 실행하는 것이 좀더 일반적이다(비록 아래에서 청구되는 배열들이 연속적 워핑을 이용하여 스피치 신호를 수정하거나 나머지를 수정하도록 구성된 RCELP 또는 다른 PR 인코더를 이용하여 실행될 수 있다는 것이 명확히 관찰되고 그에 의해 이해될지라도). 그러한 동작은 세그먼트들을 시프팅시킴으로써 현재 나머지를 수정하도록 구성될 수 있는데, 이에 의해 각각의 피치 펄스는 타겟 나머지에서 대응하는 피치 펄스와 매칭되고, 타겟 나머지는 신호의 이전 프레임, 서브프레임, 시프트 프레임, 또는 다른 세그먼트로부터의 수정된 나머지에 기초한다.
도 9는 구분적 수정 후(파형 B) 및 전(파형 A)의 나머지의 예를 도시한다. 이러한 도면에서, 점선은 볼드(bold)로 도시된 세그먼트가 어떻게 남아있는 나머지와 관련하여 오른쪽으로 시프팅되는지를 도시한다. 각각의 세그먼트의 길이가 피치 기간보다 더 작게 되는 것이 요구될 수 있다(예를 들어, 각각의 세그먼트가 하나의 피치 펄스보다 더 많이는 포함하지 않는 방식으로). 세그먼트 경계가 피치 펄스들에 발생하는 것을 방지하는 것 역시 요구될 수 있다(예를 들어, 세그먼트 경계들을 나머지의 저-에너지 영역으로 제한시키기 위해).
구분적 수정 절차는 일반적으로 피치 펄스를 포함하는 세그먼트("시프트 프레임"으로써도 지칭됨)을 선택하는 것을 포함한다. 그러한 동작의 일례는 위에서 참조된 EVRC 문서 C.S0014-C의 섹션 4.11.6.2(pp 4-95 내지 4-99)에서 설명되고, 해당 섹션은 예시로써 참조를 위해 여기에 병합된다. 일반적으로 마지막으로 수정된 샘플(또는 첫번째의 수정되지 않음 샘플)은 시프트 프레임의 시작으로써 선택된다. EVRC 예에서, 세그먼트 선택 동작은 시프팅되어질 펄스에 대한 현재 서브프레임 나머지를 검색하고(예를 들어, 아직 수정되지 않은 서브프레임의 영역내의 제 1 피치 펄스) 이러한 펄스의 위치에 대한 시프트 프레임의 마지막을 설정한다. 서브프레임은 다중 시프트 프레임들을 포함할 수 있는데, 이때 시프트 프레임 선택 동작(및 구분적 수정 절차의 후속동작들)은 단일 서브프레임 상에서 여러번 실행될 수 있다.
구분적 수정 절차는 일반적으로 나머지를 합성 지연 곡선에 매칭시키는 동작을 포함한다. 그러한 동작의 일례는 위에서 참조된 EVRC 문서 C.S0014-C의 섹션 4.11.6.3(pp 4-99 내지 4-101)에서 설명되고, 해당 섹션은 예로써 참조를 위해 여기에 병합된다. 이러한 예는 이전의 서브프레임의 수정된 나머지를 버퍼로부터 복구하고 그것을 지연 곡선에 매핑(예를 들어, 위에서 참조된 EVRC 문서 C.S0014-CDML 섹션 4.11.6.1(pp 4-95)에서 설명되는 방식으로써, 해당 섹션이 예로써 참조를 위해 여기에 병합됨)시킴으로써 타겟 나머지를 발생시킨다. 이러한 예에서, 매칭 동작은 선택된 시프트 프레임의 카피를 시프팅하고, 임시적으로 수정된 나머지와 타겟 나머지 사이의 상관에 따라 최적의 시프트를 결정하며, 최적의 시프트에 기반하여 시간 시프트를 계산함으로써, 임시적으로 수정된 나머지를 발생시킨다. 시간 시프트는 일반적으로 축적된 값으로써, 시간 시프트를 계산하는 동작은 최적의 시프트에 기반하여 축적된 시간 시프트를 업데이트하는 것을 수반한다(예를 들어, 위에서 참조로써 병합된 섹션 4.11.6.3 의 4.11.6.3.4 부분에서 설명된 바와 같은).
현재 나머지의 각각의 시프트 프레임에 대해, 구분적 수정은 대응하는 계산된 시간 시프트를 그 시프트 프레임에 대응하는 현재 나머지의 세그먼트에 적용함으로써 달성된다. 그러한 수정 동작의 일례는 위에서 참조된 EVRC 문서 C.S0014-C의 섹션 4.11.6.4(pp 4-101)에서 설명되고, 해당 섹션은 예로써 참조를 위해 여기에 병합된다. 일반적으로 시간 시프트는 분수 값을 가지는데, 수정 절차는 샘플링 레이트보다 더 높은 분해능에서 실행된다. 그러한 경우에, 시간 시프트를 일차 또는 쌍일차 보간과 같은 보간을 이용하여 나머지의 대응하는 세그먼트에 적용하는 것이 요구될 수 있는데, 상기 보간은 하나 이상의 다상 보간 필터들 또는 다른 적합한 기술을 이용하여 실행될 수 있다.
도 10은 일반적 구성에 따른 RCELP 인코딩(RM100)(예를 들어, 방법(M10)의 작업(TE30)의 RCELP 구현) 방법의 흐름도를 도시한다. 방법(RM100)은 현재 프레임의 나머지를 계산하는 작업(RT10)을 포함한다. 작업(RT10)은 일반적으로 오디오 신호(S100)와 같은 샘플링된 오디오 신호(사전-처리될 수있음)를 수신하도록 배열된다. 작업(RT10)은 일반적으로 선형 예측 부호화("LPC") 분석 동작을 포함하도록 구현되고, 선 스펙트럼 쌍들("LSP들")과 같은 LPC 파라미터들의 세트를 생성하도록 구성될 수 있다. 작업(RT10)은 또한 하나 이상의 스펙트럼 가중화 및/또는 다른 필터링 동작들과 같은 다른 처리 동작들을 포함할 수 있다.
방법(RM100)은 또한 오디오 신호의 합성 지원 곡선을 계산하는 작업(RT20), 생성된 나머지로부터 시프트 프레임을 선택하는 작업(RT30), 선택된 시프트 프레임 및 지연 곡선으로부터의 정보에 기반하여 시간 시프트를 계산하는 작업(RT40), 및 계산된 시간 시프트에 기반하여 현재 프레임의 나머지를 수정하는 작업(RT50)을 포함한다.
도 11은 RCELP 코딩 방법(RM100)의 구현(RM110)의 흐름도를 도시한다. 방법(RM110)은 시간 시프트 계산 작업(RT40)의 구현(RT42)을 포함한다. 작업(RT42)은 이전 서브프레임의 수정된 나머지를 현재 서브프레임의 합성 지연 곡선에 매핑시키는 작업(RT60), 임시적으로 수정된 나머지를 생성(예를 들어, 선택된 시프트 프레임에 기반하여)하는 작업(RT70), 및 시간 시프트를 업데이트(예를 들어, 임시적으로 수정된 나머지와 매핑된 과거 수정된 나머지의 대응하는 세그먼트 사이의 상관에 기반하여)하는 작업(RT80)을 포함한다. 방법(RM100)의 구현은 방법(M10)의 구현 내(예를 들어, 인코딩 작업(TE30) 내)에 포함될 수 있고, 위에서 인지되는 것처럼, 논리 소자들(예를 들어, 논리 게이트들)의 어레이는 상기 방법의 다양한 작업들 중 하나, 둘 이상 또는 전부를 실행하도록 구성될 수 있다.
도 12a는 RCELP 프레임 인코더(34c)의 구현(RC100)의 블록 다이어그램을 도시한다. 인코더(RC100)는 현재 프레임의 나머지를 계산하도록 구성된(예를 들어, LPC 분석 동작에 기반하여) 나머지 생성기(R10), 및 오디오 신호(S100)의 합성 지연 곡선을 계산(예를 들어, 현재 및 최근의 피치 추정치들에 기반하여)하도록 구성된 지연 곡선 계산기(R20)를 포함한다. 인코더(RC100)는 또한 현재 나머지의 시프트 프레임을 선택하도록 구성된 시프트 프레임 선택기(R30), 시간 시프트를 계산(예를 들어, 임시적으로 수정된 나머지에 기반하여 시간 시프트를 업데이트하기 위해)하도록 구성된 시간 시프트 계산기(R40), 및 시간 시프트에 따라 나머지를 수정하도록(예를 들어, 계산된 시간 시프트를 시간 프레임에 대응하는 나머지의 세그먼트에 적용하기 위해) 구성된 나머지 수정기(modifier)(R50)를 포함한다.
도 12b는 시간 시프트 계산기(R40)의 구현(R42)을 포함하는 RCELP 인코더(RC100)의 구현(RC110)의 블록 다이어그램을 도시한다. 계산기(R42)는 이전의 서브프레임의 수정된 나머지를 현재 서브프레임의 합성 지연 곡선에 매핑시키도록 구성된 과거 수정된 나머지 매퍼(mapper)(R60), 선택된 시프트 프레임에 기반하여 임시적 수정된 나머지를 생성하도록 구성된 임시적으로 수정된 나머지 생성기(R70), 및 임시적으로 수정된 나머지와 상기 매핑된 과거 수정된 나머지의 대응하는 세그먼트 사이의 상관에 기반하여 시간 시프트를 계산(예를 들어, 업데이트하기 위해)하도록 구성된 시간 시프트 업데이터(R80)을 포함한다. 인코더들(RC100 및 RC110)의 엘리먼트들 각각은 하나 이상의 프로세서들에 의한 실행을 위한 논리 게이트들 및/또는 명령들의 세트와 같은 대응하는 모듈에 의해 구현될 수 있다. 오디오 인코더(AE20)와 같은 다중-모드 인코더는 인코더(RC100)의 예 또는 그것의 구현을 포함할 수 있고, 그러한 경우에 있어서 RCELP 프레임 인코더의 하나 이상의 엘리먼트들(예를 들어, 나머지 생성기(R10))은 다른 코딩 모드들을 실행하도록 구성된 프레임 인코더들과 공유될 수 있다.
도 13은 나머지 생성기(R10)의 구현(R12)의 블록 다이어그램을 도시한다. 생성기(R12)는 오디오 신호(S100)의 현재 프레임에 기반하여 LPC 계수값들의 세트를 계산하도록 구성된 LPC 분석 모듈(210)을 포함한다. 변환 블록(220)은 LPC 계수값들의 세트를 LSP들의 세트로 변환시키도록 구성되고, 양자화기(230)는 LPC 파라미터들(SL10)의 생성을 위해 LSF들을 양자화(예를 들어, 하나 이상의 코드북 인덱스들)하도록 구성된다. 역 양자화기(240)는 디코딩된 LSF들의 세트를 양자화된 LPC 파라미터들(SL10)로부터 획득하도록 구성되고, 역변환 블록(250)은 디코딩된 LPC 계수값들의 세트를 디코딩된 LSF들의 세트로부터 획득하도록 구성된다. 디코딩된 LPC 계수값들의 세트에 따라 구성되는 백색화 필터(260)(분석 필터로써도 지칭됨)는 LPC 나머지(SR10)의 생성을 위해 오디오 신호(S100)를 처리한다. 나머지 생성기(R10)는 또한 특정 애플리케이션에 적합하다고 간주되는 임의의 다른 설계에 따라 구현될 수 있다.
시간 시프트가 하나의 시프트 프레임에서 다음 시프트 프레임으로의 변할때, 시프트 프레임들 사이의 경계에 갭 또는 오버랩이 발생할 수 있고, 나머지 수정기(R50) 또는 작업(RT50)이 적절할때 이러한 영역에서의 신호의 일부를 반복하거나 생략하는 것이 요구될 수 있다. 수정된 나머지를 버퍼(예를 들어, 후속하는 프레임의 나머지 상에 구분적 수정 절차를 실행하도록 이용되는 타겟 나머지를 생성하기 위한 소스로써)에 저장하도록 인코더(RC100) 또는 방법(RM100)을 구현하는 것이 또한 요구될 수 있다. 그러한 버퍼는 입력을 시간 시프트 계산기(R40)(예를 들어, 과거 수정된 나머지 매퍼(R60)로)에 또는 시간 시프트 계산 작업(RT40)(예를 들어, 매핑 작업(RT60))에 제공하도록 배열될 수 있다.
도 12c는 그러한 수정된 나머지 버퍼(R90)를 포함하는 RCELP 인코더(RC100)의 구현(RC105) 및 버퍼(R90)로부터의 정보에 기반하여 시간 시프트를 계산하도록 구성된 시간 시프트 계산기(R40)의 구현(R44)의 블록 다이어그램을 도시한다. 도 12d는 예시적 버퍼(R90)를 포함하면서 RCELP 인코더(RC105)와 RCELP 인코더(RC110)의 구현(RC115) 및 버퍼(R90)로부터의 과거 수정된 나머지를 수신하도록 구성되는 과거 수정된 나머지 매퍼(R60)의 구현(R62)의 블록 다이어그램을 도시한다.
도 14는 오디오 신호의 프레임을 RCELP 인코딩하기 위한 장치(RF100)(예를 들어, 장치(F10)의 수단(FE30)의 RCELP 구현)의 블록 다이어그램을 도시한다. 장치(RF100)는 나머지를 생성하기 위한 수단(RF10)(예를 들어, LPC 나머지), 및 지연 곡선을 계산하기 위한 수단(RF20)(예를 들어, 현재 및 이전 피치 추정치 사이의 일차 또는 쌍일차 보간을 실행하여)을 포함한다. 장치(RF100)는 또한 시프트 프레임을 선택하기 위한 수단(RF30)(예를 들어, 다음 피치 펄스를 위치시킴으로써), 시간 시프트를 계산하기 위한 수단(RF40)(예를 들어, 임시적으로 수정된 나머지와 매핑된 과거 수정된 나머지 사이의 상관에 따라 시간 시프트를 업데이트함으로써), 및 나머지를 수정하기 위한 수단(RF50)(예를 들어, 시간 프레임에 대응하는 나머지의 세그먼트를 시간-시프팅시킴으로써)을 포함한다.
수정된 나머지는 일반적으로, 고정된 코드북 기여를 현재 프레임에 대한 여기 신호로 계산하도록 이용된다. 도 15는 동작을 지원을 위해 추가의 작업들을 포함하는 RCELP 코딩 방법(RM100)의 구현(RM120)의 흐름도를 도시한다. 작업(RT90)은 지연 곡선으로의 매핑을 통해, 디코딩된 여기 신호의 카피를 이전 프레임으로부터 유지하는 적응 코드북("ACB")를 워핑한다. 작업(RT100)은 지각 도메인에서 ACB 기여를 획득하기 위해, 현재 LPC 계수값들에 기초한 LPC 합성 필터를 워핑된 ACB에 적용시키고, 작업(RT110)은 지각 도메인에서 현재 수정된 나머지를 획득하기 위해, 현재 LPC 계수값들에 기초한 LPC 합성 필터를 현재 수정된 나머지에 적용한다. 예를 들어, 위에서 참조된 3GPP2 EVRC 문서 C.S0014.C의 섹션4.11.4.5(pp 4-84 내지 4-86)에서 설명되는 바와 같이, 작업(RT100) 및/또는 작업(RT110)은 가중화된 LPC 계수값들의 세트에 기반하는 LPC 합성 필터를 적용하는 것이 요구될 수 있다. 작업(RT120)은 고정된 코드북("FCB") 검색을 위한 타겟을 획득하기 위해 두개의 지각적 도메인 신호들 사이의 차이를 계산하고, 작업(RT130)은 여기 신호에 대한 RCB 기여(contribution)를 획득하기 위해 FCB 검색을 실행한다. 위에서 언급된 바와 같이, 논리 엘리먼트들(예를 들어, 논리 게이트들)의 어레이는 방법(RM100)의 이러한 구현의 다양한 작업들 중 하나, 그 이상, 또는 모두를 실행하도록 구성될 수 있다.
RCELP 코딩 방식을 포함하는 현대 다중-모드 코딩 시스템(예를 들어, 오디오 인코더(AE25)의 구현을 포함하는 코딩 시스템)은 일반적으로 비음성 프레임들(예를 들어, 스피킹 마찰음) 및 배경잡음만을 포함하는 프레임들에 대해 일반적으로 이용되는, 잡음-여기 선형 예측("NELP")과 같은 하나 이상의 비-RCELP 코딩 방식들을 포함할 것이다. 비-RCELP 코딩 방식들의 다른 예들은 프로토타입 파형 보간("PWI") 및 프로토타입 피치 기간("PPP")과 같은 그의 변형물을 포함하고, 일반적으로 높은 음성 프레임들에 대해 이용된다. RCELP 코딩 방식이 오디오 신호의 프레임을 인코딩하기 위해 이용될 때, 및 비-RCELP 코딩 방식이 오디오 신호의 인접 프레임을 인코딩하기 위해 이용될 때, 합성 파형 내의 불연속성이 커질 수 있다.
인접 프레임으로부터의 샘플들을 이용하여 프레임을 인코딩하는 것이 바람직할 수 있다. 그러한 방식으로 프레임 경계들에 대해 인코딩함으로써, 양자화 오류, 잘라버림(truncation), 라운딩, 불필요한 계수들의 버림 등과 같은 인자들로 인해 프레임들 사이에 높아질 수 있는 지각 효과 부가물을 감소시키려는 경향을 갖게된다. 그러한 코딩 방식의 일례는 수정된 이산 코사인 변환("MDCT") 코딩 방식이다.
MDCT 코딩 방식은 음악 및 다른 비-스피치 사운드를 인코딩하는데 흔히 이용되는 비-PR 코딩 방식이다. 예를 들어, 표준화 국제 기구(ISO)/국제 전기 표준 회의(IEC) 문서 14496-3:1999에서 규정되고 MPEG-4 파트 3으로써 공지된 개선 오디오 코덱("AAA")은 MDCT 코딩 방식이다. 위에서 참조된 3GPP2 EVRC 문서 C.S0014-C의 섹션 4.13(pp 4-145 내지 4-151)은 또다른 MDCT 코딩 방식을 설명하고, 이러한 섹션은 예시로써 참조를 위해 본 명세서에 병합된다. MDCT 코딩 방식은 피치 기간에 그 구조가 기초되는 신호보다는 사인파의 혼합으로써 주파수 도메인에서 오디오 신호를 인코딩하고, 노래, 음악, 및 다른 사인파 혼합물에 대해 좀더 적절하다.
MDCT 코딩 방식은 두개 또는 그 이상의 연속적 프레임들에 대해 확장하는(즉, 오버랩) 인코딩 윈도우를 이용한다. M의 프레임 길이에 대해, MDCT는 2M 샘플들의 입력에 기반하여 M 계수들을 생성한다. 그러므로, MDCT 코딩 방식의 한가지 특성은, 변환 윈도우로 하여금 인코딩된 프레임을 표시하는데 필요한 변환 계수들의 개수의 증가 없이 하나 이상의 프레임 경계들에 대해 확장되는 것이 허용된다는 것이다. 그러나, 그러한 오버랩 코딩 방식이 PR 코딩 방식을 이용하여 인코딩된 프레임에 인접한 프레임을 인코딩하기 위해 이용될 때, 대응하는 디코딩된 프레임 내의 불연속이 증가할 수 있다.
M개의 MDCT 계수들의 계산은 다음과 같이 표현될 수 있다:
Figure pct00001
여기서,
Figure pct00002
여기서, k=0,1,...,M-1 이다. 함수 w(n)은 일반적으로 조건
Figure pct00003
(프린슨-브래들리 조건(Princen-Bradley condition)이라고도 지칭됨)을 만족시키는 윈도우이도록 선택된다.
대응하는 역 MDCT 연산은 다음과 같이 표현될 수 있다:
Figure pct00004
여기서, n=0,1,...,2M-1 이고,
Figure pct00005
는 M 개의 수신된 MDCT 계수들이며,
Figure pct00006
은 2M개의 디코딩된 샘플들이다.
도 16은 MDCT 코딩 방식에 대한 전형적 사인파 윈도우 형태의 예들이다. 프린슨-브래들리 조건을 만족시키는 이러한 형태는 다음과 같이 표현될 수 있다:
Figure pct00007
여기서,
Figure pct00008
이고 n=0이라는 것은 현재 프레임의 제 1 샘플을 나타낸다.
도면에 도시된 바와 같이, 현재 프레임(프레임 p)을 인코딩하는데 이용되는 MDCT 윈도우(804)는 프레임 p 및 프레임 (p+1)에 대해 비-제로 값을 가지고, 그렇지 않으면 제로-값을 갖는다. 이전의 프레임(프레임 (p-1))을 인코딩하는데 이용되는 MDCT 윈도우(802)는 프레임 (p-1) 및 프레임 p에 대해 비-제로 값을 가지고, 그렇지 않으면 제로-값을 갖는데, 후속하는 프레임(프레임 (p+1))을 인코딩하는 이용되는 MDCT 윈도우(806)는 유사하게 배열된다. 디코더에서, 디코딩된 시퀀스들은 입력 시퀀스들에서와 동일한 방식으로 오버래핑되어 부가된다. 도 25a는 도 16에 도시된 바와 같은 윈도우들(804 및 806)을 적용함으로써 기인하는 오버랩-및-부가 영역의 일례를 도시한다. 오버랩-및-부가 동작은 변환에 의해 발생되는 오류들을 취소시키고, 완벽한 재구성을 허용한다(w(n)이 프린슨-브래들리 조건을 만족시키고 양자화 오류가 없을때). MDCT가 오버랩 윈도우 함수를 이용할지라도, 이는 정밀하게 샘플링된 필터 뱅크인데, 왜냐하면 오버랩-및-부가 이후에 프레임당 입력 샘플들의 개수는 프레임당 MDCT 계수들의 개수와 동일하기 때문이다.
도 17a는 MDCT 프레임 인코더(34d)의 구현(ME100)의 블록 다이어그램을 도시한다. 나머지 생성기(D10)는 양자화된 LPC 파라미터들(예를 들어, 위에서 참조로써 병합된 3GPP2 EVRC 문서 C.S0014-C의 섹션 4.13.의 4.13.2 부분에서 설명된 바와 같은 양자화된 LSP들)을 이용하여 나머지를 생성하도록 구성될 수 있다. 대안적으로, 나머지 생성기(D10)는 비양자화된 LPC 파라미터들을 이용하여 나머지를 생성하도록 구성될 수 있다. RCELP 인코더(RC100) 및 MDCT 인코더(ME100)의 구현들을 포함하는 다중-모드 코더에서, 나머지 생성기(R10) 및 나머지 생성기(D10)는 동일한 구조로써 구현될 수 있다.
인코더(ME100)는 또한 MDCT 계수들을 계산하도록(예를 들어, 방정식 1(EQ. 1)에 설명된 바와 같이
Figure pct00009
에 대한 표현식에 따라) 구성된 MDCT 모듈(D20)을 포함한다. 인코더(ME100)는 또한 양자화된 인코딩된 나머지 신호(S30)의 생성을 위해 MDCT 계수들을 처리하도록 구성된 양자화기(D30)를 포함한다. 양자화기(D30)는 정밀한 함수 계산을들 이용하여 MDCT 계수들의 차례곱(factorial) 코딩을 실행하도록 구성될 수 있다. 대안적으로, 양자화기(D30)는, 예를 들어, 여기에 참조로서 통합되는 U.Mittel 등에 의한 IEEE ICASSP 2007, pp. I-289 내지 I-292의 "조합 함수들의 근사화를 이용한 MDCT 계수들의 낮은 복잡도의 차례곱 펄스 코딩(Low complixity Factorial Pulse Coding of MDCT Coefficients Using Approximation of Combinatorial Functions"), 및 3GPP2 EVRC 문서 C.S0014-C 의 섹션 4.13의 파트 1.13.5에서 설명된 바와 같은 함수 계산들의 근사화를 이용하여 MDCT 계수들의 차례곱 코딩을 실행하도록 구성될 수 있다. 도 17a에서 도시된 바와 같이, MDCT 인코더(ME100)는 또한 디코딩된 샘플들을 양자화된 신호에 기반하여(예를 들어, 방정식 3(EQ. 3)에서 설명된 바와 같은
Figure pct00010
에 대한 표현식에 따라) 계산하도록 구성된 선택적 역 MDCT("IMDCT") 모듈(D40)을 포함할 수 있다.
몇몇의 경우에 있어서, 오디오 신호(S100)의 나머지 상에서보다는 오디오 신호(S100)의 MDCT 연산을 실행하는 것이 바람직할 수 있다. LPC 분석이 사람 스피치의 공진을 인코딩하기에 상당히 적합할지라도, 음악과 같은 비-스피치 신호들의 특성들을 인코딩하기에는 비효율적일 수 있다. 도 17b는 MDCT 프레임 인코더(34d)의 MDCT 프레임의 구현(ME200)의 블록 다이어그램을 도시하는데, 이때 MDCT 모듈(D20)은 오디오 신호(S100)의 프레임들을 입력으로써 수신하도록 구성된다.
도 16에 도시된 바와 같은 표준 MDCT 오버랩 방식은, 변환이 실행될 수 있기 이전에 이용가능할 2M개의 샘플들을 요구한다. 그러한 방식은 코딩 시스템 상에서의 2M개의 샘플들의 지연 제약(constraint)을 강요한다(즉, 현재 프레임의 M개의 샘플들 + 룩어헤드(lookahead)의 M개의 샘플들). CELP, RCELP, NELP, PWI, 및/또는 PPP와 같은 다중-모드 코더의 다른 코딩 모드들은 일반적으로 더 짧은 지연 제약 상에서 동작되도록 구성된다(예를 들어, 현재 프레임의 M 샘플들 + 룩어헤드의 M/2, M/3 또는 M/4개의 샘플들). 현재의 다중-모드 코더들(예를 들어, EVRC, SMV, AMR)에서, 코딩 모드들 사이의 스위칭은 자동으로 수행되고, 심지어는 일초 내에 여러번이 발생한다. 그러한 코더의 코딩 모드들이, 특히 특정 속도에서 패킷들을 생성하기 위해 인코더들을 포함하는 전송기를 필요로 하는 회선-교환식 애플리케이션들에 대해서, 동일한 지연으로 동작되는 것이 요구될 수 있다.
도 18은 M보다 더 짧은 룩어헤드 간격을 허용하기 위해 MDCT 모듈(D20)에 의해 적용될 수 있는(예를 들어, 도 16에 도시된 바와 같은 함수(w(n))를 대신하여) 윈도우 함수(w(n))의 일례를 도시한다. 도 18에 도시된 특정 예에서, 룩어헤드 간격은 M/2 샘플들 길이이지만, 그러한 기법은 L개의 샘플들의 임의의 룩어헤드를 허용하도록 구성될 수 있고 이때 L은 0 내지 M에서의 임의의 값이다. 이러한 기술(위에서 참조로써 병합된 3GPP2 EVRC 문서 C.S0014-C의 섹션 4.13.의 4.13.4 부분(p. 4-147), 및 U.S. 출원(번호: 2008/0027719, 제목: 오디오 신호와 관련된 프레임을 갖는 윈도우를 수정하기 위한 시스템 및 방법(SYSTEMS AND METHODS FOR MODIFYING A WINDOW WITH A FRAME ASSOCIATED WITH AN AUDIO SIGNAL))에서 설명되는 예들)에서, MDCT 윈도우는 (M-L)/2의 길이의 제로-패드 영역들에서 시작하고 종료되며, w(n)은 프린슨-브래들리 조건을 만족시킨다. 그러한 윈도우 함수의 하나의 구현은 다음과 같이 표현될 수 있다:
Figure pct00011
여기서,
Figure pct00012
은 현재 프레임 p의 제 1 샘플이고,
Figure pct00013
은 다음 프레임(p+1)의 제 1 샘플이다. 그러한 기술에 따라 인코딩된 신호는 완벽한 재구성 속성을 유지한다(양자화 및 수치 오류 없이). L=M 인 경우에, 이러한 윈도우 함수는 도 16에 도시된 것과 동일한 함수이고, L=0인 경우에
Figure pct00014
에 대하여 w(n)=1이고 그 외에는 제로이며 그 결과 오버랩은 존재하지 않는다.
PR 및 비-PR 코딩 방식들을 포함하는 다중-모드 코더에서, 합성 파형이 PR 코딩 모드에서 비-PR 코딩 모드로 스위칭되는(또는 그 역) 현재 코딩 모드에서의 프레임 경계에 대해 연속적이라는 것이 보장되는 것이 요구될 수 있다. 코딩 모드 선택기는 일초에 여러번 하나의 코딩 방식에서 다른 방식으로 스위칭할 수 있고, 이러한 방식들 사이의 지각적으로 평활한 전이를 제공하는 것이 요구된다. 불행히도, 규칙적 프레임 및 불규칙적 프레임 사이의 경계를 스패닝(spanning)하는 피치 기간은 비정상적으로 크거나 작은데, 이때 PR 및 비-PR 코딩 방식들 사이의 스위칭은 디코딩된 신호내에 가청 클릭 또는 다른 불연속성을 유도할 수 있다. 추가로, 위에서 언급된 바와 같이, 비-PR 코딩 방식은 연속적 프레임들에 걸쳐 확장하는 오버랩-및-부가 윈도우를 이용하여 오디오 신호의 프레임을 인코딩할 수 있고, 그러한 연속적 프레임들 사이의 경계에서의 시간 시프트내의 변경을 회피하는 것이 요구될 수 있다. 이러한 경우들에 있어서 PR 코딩 방식에 의해 적용된 시간 시프트에 따라, 불규칙적 프레임을 수정하는 것이 요구될 수 있다.
도 19a는 일반적 구성에 따라 오디오 신호의 프레임들을 처리하는 방법(M100)의 흐름도를 도시한다. 방법(M100)은 PR 코딩 방식(예를 들어, RCELP 코딩 방식)에 따라 제 1 프레임을 인코딩하는 작업(T110)을 포함한다. 방법(M100)은 또한 비-PR 코딩 방식(예를 들어, MDCT코딩 방식)에 따라 오디오 신호의 제 2 프레임을 인코딩하는 작업(T210)을 포함한다. 위에서 언급된 바와 같이, 제 1 및 제 2 프레임들 중 하나 또는 모두는 그러한 인코딩 이전 및/또는 이후에 지각적으로 가중화 및/또는 그렇지 않으면 처리될 수 있다.
작업(T110)은 시간 시프트(T)에 따라 제 1 신호의 세그먼트를 시간-수정하는 부작업(T120)을 포함하는데, 이때 제 1 신호는 제 1 프레임에 기반한다(예를 들어, 제 1 신호는 제 1 프레임 또는 제 1 프레임의 나머지이다). 시간-수정은 시간-시프팅 또는 시간-워핑에 의해 수행될 수 있다. 일 구현에서, 작업(T120)은 T 값에 따라 전체 세그먼트를 순방향 또는 역방향 시간으로 이동시킴으로써(즉, 프레임 또는 오디오 신호의 또다른 세그먼트에 대해서) 세그먼트를 시간-시프팅시킨다. 그러한 동작은 부분 시간 시프트를 실행하기 위해 샘플 값들을 보간하는 동작을 포함할 수 있다. 다른 구현에서, 작업(T120)은 시간 시프트(T)에 기반하여 세그먼트를 시간-워핑한다. 그러한 동작은 T값에 따라 세그먼트의 하나의 샘플(예를 들어, 제 1 샘플)을 이동시키는 단계, 및 T의 크기보다 더 작은 크기를 갖는 값만큰 세그먼트의 또다른 샘플(예를 들어, 마지막 샘플)을 이동시키는 단계를 포함할 수 있다.
작업(T210)은 시간 시프트(T)에 따라 제 2 신호의 세그먼트를 시간-수정하는 부작업(T220)을 포함하는데, 이때 제 2 신호는 제 2 프레임에 기반한다(예를 들어, 제 2 신호는 제 2 프레임 또는 제 2 프레임의 나머지이다). 일 구현에서, 작업(T220)은 T값에 따라 전체 세그먼트를 순방향 시간 또는 역방향 시간으로(즉, 프레임 또는 오디오 신호의 또다른 세그먼트에 대해) 이동시킴으로써 세그먼트를 시간-시프팅한다. 그러한 동작은 부분 시간 시프트를 실행하기 위해서 샘플 값들을 보간하는 단계를 포함한다. 또다른 구현에서, 작업(T220)은 시간 시프트(T)에 기반하여 세그먼트를 시간-워핑한다. 그러한 동작은 세그먼트를 지연 곡선에 매핑하는 단계를 포함할 수 있다. 예를 들어, 그러한 동작은 T값에 따라 세그먼트의 하나의 샘플(예를 들어, 제 1 샘플)을 이동시키는 단계, 및 T의 크기보다 더 작은 크기를 갖는 값만큼 세그먼트의 또다른 샘플(예를 들어, 마지막 샘플)을 이동시키는 단계를 포함할 수 있다. 예를 들어, 작업(T120)은 시간 시프트(T)의 값만큼 짧아진 대응하는 시간 간격으로 매핑시켜서 프레임 또는 다른 세그먼트를 시간-워핑할 수 있는데, 이때 T값은 워핑된 세그먼트의 마지막에 제로로 재설정될 수 있다.
작업(T220)이 시간-수정하는 세그먼트는 전체 제 2 신호를 포함할 수 있고, 또는 상기 세그먼트는 나머지의 서브프레임(예를 들어, 개시 서브프레임)과 같은 해당 신호의 떠 짧은 부분일 수 있다. 일반적으로, 작업(T220)은 도 17a에 도시된 바와 같은 나머지 생성기(D10)의 출력과 같은 비양자화된 나머지 신호의 세그먼트를 시간-수정한다(예를 들어, 오디오 신호(S100)의 역-LPC 필터링 이후에). 그러나, 작업(T220)은 또한 도 17a에 도시된 바와 같은 신호(S40)와 같은 디코딩된 나머지의 세그먼트(예를 들어, MDCT-IMDCT 처리 이후에),또는 오디오 신호(S100)의 세그먼트를 시간-수정하도록 구현될 수 있다.
시간 시프트(T)는 제1 신호를 수정하는데 이용했던 마지막 시간 시프트여야 함이 요구될 수 있다. 예를 들어, 시간 시프트(T)는 제 1 프레임의 나머지의 마지막 시간-시프팅된 세그먼트에 적용되었던 시간 시프트 및/또는 축적된 시간 시프트의 가장 최근의 업데이트로부터 초래된 값일 수 있다. RCELP 인코더(RC100)의 구현은 작업(T110)을 수행하도록 구성될 수 있는데, 이때 시간 시프트(T)는 제 1 프레임의 인코딩 동안에 블록(R40) 또는 블록(R80)에 의해 계산된 마지막 시간 시프트 값일 수 있다.
도 19b는 작업(T110)의 구현(T112)의 흐름도를 도시한다. 작업(T112)은 가장 최근의 서브프레임의 수정된 나머지와 같은 이전의 서브프레임의 나머지로부터의 정보에 기반하여 시간 시프트를 계산하는 부작업(T130)을 포함한다. 위에서 설명된 바와 같이, RCELP 코딩 방식은, 이전의 서브프레임의 수정된 나머지에 기반하는 타겟 나머지를 생성하고, 선택된 시프트 프레임과 타겟 나머지의 대응하는 세그먼트 사이의 매칭에 따라 시간 시프트를 계산하는 것이 요구될 수 있다.
도 19c는 작업(T130)의 구현(T132)을 포함하는 작업(T112)의 구현(T114)의 흐름도를 도시한다. 작업(T132)은 이전의 나머지의 샘플들을 지연 곡선에 매핑시키는 작업(T140)을 포함한다. 위에서 논의된 바와 같이, RCELP 코딩 방식은 이전 서브프레임의 수정된 나머지를 현재 서브프레임의 합성 지연 곡선에 매핑시킴으로써 타겟 나머지를 생성하는 것이 요구될 수 있다.
제 2 신호 및 제 2 프레임을 인코딩하기 위한 룩어헤드로서 이용되는 후속하는 프레임의 임의의 일부 또한 시간-시프팅하는 작업(T210)을 구성하는 것이 바람직할 수 있다. 예를 들어, 작업(T210)은 시간 시프트(T)를 제 2(비-PR) 프레임의 나머지, 및 제 2 프레임을 인코딩하기 위한 룩어헤드로서 이용되는 후속하는 프레임의 나머지의 임의의 일부(예를 들어, MDCT 및 오버래핑 윈도우들에 참조하여 위에서 설명된 바와 같이)에 적용하는 것을 요구할 수 있다. 시간 시프트(T)를 비-PR 코딩 방식(예를 들어, MDCT 코딩 방식)을 이용하여 인코딩되는 임의의 후속하는 연속적 프레임들의 나머지, 및 그러한 프레임들에 대응하는 임의의 룩어헤드 세그먼트들에 적용하는 작업(T210)을 구성하는 것이 요구될 수 있다.
도 25b는, 두개의 PR 프레임들 사이에서 비-PR 프레임들의 시퀀스 내의 각각이 제 1 PR 프레임의 마지막 시프트 프레임에 적용됐던 시간 시프트만큼 시프팅되는 예를 도시한다. 이러한 예에서, 실선은 시간에 대한 원래 프레임들의 위치들을 나타내고, 대시라인들은 프레임들의 시프팅된 위치들을 나타내며, 점선들은 원래와 시프팅 경계들 사이의 일치를 보여준다. 더 긴 수직선들은 프레임 경계들을 나타내며, 짧은 수직선은 제 1PR 프레임의 마지막 시프트 프레임의 시작을 나타내며(이때, 피크는 시프트 프레임의 피치 펄스를 나타냄), 짧은 마지막 수직선은 해당 시퀀스의 최종 비-PR 프레임의 룩어헤드 세그먼트의 끝부분을 표시한다. 일례에서, PR 프레임들은 RCELP 프레임들이고, 비-PR 프레임들은 MDCT 프레임들이다. 또다른 예에서, PR 프레임들은 RCELP 프레임들이고, 비-PR 프레임들의 일부는 MDCT 프레임들이며, 비-PR 프레임들의 나머지는 NELP 또는 PWI 프레임들이다.
방법(M100)은, 피치 추정치가 현재의 비-PR 프레임에 대해 이용가능하지 않은 경우에 적합할 수 있다. 그러나, 피치 프레임이 현재의 비-PR 프레임에 대해 이용가능할지라도 방법(M100)을 수행하는 것이 바람직할 수 있다. 연속적인 프레임들 사이의 오버랩 및 부가를 수반하는 비-PR 코딩 방식에서(MDCT 윈도우에서와 같은), 연속적 프레임들, 임의의 대응하는 룩어헤드들, 및 프레임들 사이의 임의의 오버랩 영역들을 동일한 시프트값만큼 시프팅하는 것이 바람직할 수 있다. 그러한 일치는 재구성된 오디오 신호의 품질의 저하를 회피하도록 할 수 있다. 예를 들어, MDCT윈도우와 같은 오버랩 영역에 기여하는 양쪽 프레임들 모두에 동일한 시간 시프트값을 이용하는 것이 바람직할 수 있다.
도 20a는 MDCT 인코더(ME100)의 구현(ME110)의 블록 다이어그램을 도시한다. 인코더(ME110)는 시간-수정된 나머지 신호(S20)를 생성하기 위해 나머지 생성기(D10)에 의해 발생되는 나머지 신호의 세그먼트를 시간-수정하도록 배열되는 수간 수정기(TM10)를 포함한다. 일 구현에서, 시간 수정기(TM10)는 T값에 따라 역방향 또는 순방향으로 전체 세그먼트를 이동시킴으로써 세그먼트를 시간-시프팅하도록 구성된다. 그러한 동작은 부분적 시간 시프트를 수행하기 위해 샘플 값들을 보간하는 단계를 포함할 수 있다. 또다른 구현에서, 시간 수정기(TM10)는 시간 시프트(T)에 기반하여 세그먼트를 시간-워핑하도록 구성된다. 그러한 동작은 세그먼트를 지연곡선에 매핑시키는 단계를 포함할 수 있다. 예를 들어, 그러한 동작은 T값에 따라 세그먼트의 하나의 샘플(예를 들어, 제 1 샘플)을 이동시키는 단계, 및 T의 크기보다 더 작은 크기를 갖는 값만큼 또다른 샘플(예를 들어, 마지막 샘플)을 이동시키는 단계를 포함할 수 있다. 예를 들어, 작업(T120)은 시간 시프트(T)DML 값만큼 짧아진(예를 들어, T의 음의 값의 경우에는 연장되는) 시간 간격에 따라 매핑시킴으로써 프레임 또는 다른 세그먼트를 시간-워핑하는 단계를 포함할 수 있는데, 이때 T값은 워핑된 세그먼트의 마지막에는 제로로 재설정될 수 있다. 위에서 언급된 바와 같이, 시간 시프트(T)는 PR 코딩 방식에 의해 시간-시프팅된 세그먼트에 가장 최근에 적용된 시간 시프트 및/또는 PR 코딩 방식에 의해서, 축적된 시간 시프트의 가장 최근 업데이트로부터 얻어지는 값일 수 있다. RCELP 인코더(RC105) 및 MDCT 인코더(ME110)의 구현들을 포함하는 오디오 인코더(AE10)의 구현에서, 인코더(ME110)는 또한 시간-수정된 나머지 신호(S20)를 버퍼(R90)에 저장하도록 구성될 수 있다.
도 20b는 MDCT 인코더(ME200)의 구현(ME210)의 블록 다이어그램을 도시한다. 인코더(ME200)는 시간-수정된 오디오 신호(S25)의 생성을 위해 오디오 신호(S100)의 세그먼트를 시간-수정하도록 배열된 시간 수정기(TM10)의 예를 포함한다. 위에서 언급된 바와 같이, 오디오 신호(S100)는 지각적으로 가중화될 수 있고 및/또는 그렇지 않으면 필터링된 디지털 신호일 수 있다. RCELP 인코더(RC105) 및MDCT 인코더(ME210)의 구현들을 포함하는 오디오 인코더(AE10)의 구현에서, 인코더(ME210)는 또한 시간-수정된 나머지 신호(S20)을 버퍼(R90)에 저장하도록 구성될 수 있다.
도 21a는 잡음 삽입 모듈(D50)을 포함하는 MDCT 인코더(ME110)의 구현(ME120)의 블록 다이어그램을 도시한다. 잡음 삽입 모듈(D50)은 사전결정된 주파수 범위 내에서, 양자화된 인코딩된 나머지 신호(S30)의 제로-값 엘리먼트들에 대한 잡음을 대체하도록 구성된다(예를 들어, 위에서 참조로써 병합된 3GPP2 EVRC 문서 C.S0014-C 의 섹션 4.13의 4.13.7 부분(p. 4-150)에 설명된 바와 같은 기술에 따라). 그러한 동작은 나머지 선 스펙트럼의 언더모델링 동안에 발생할 수 있는 톤 부가물의 지각을 감소시킴으로써 오디오 품질을 개선시킬 수 있다.
도 21b는 MDCT 인코더(ME110)의 구현(ME130)의 블록 다이어그램을 도시한다. 인코더(ME130)는 나머지 신호(S20)의 저-주파수 포먼트 영역들의 지각적 가중화를 수행하도록 구성된 포먼트 강조 모듈(D60)(예를 들어, 위에서 참조로써 병합된 3GPP2 EVRC 문서 C.S0014-C의 섹션 4.13의 4.13.3부분(p. 4-147)에서 설명된 기술에 따라) 및 지각적 가중화를 제거하도록 구성된 포먼트 강조해제 모듈(D70)(예를 들어, 위에서 참조로써 병합된 3GPP2 EVRC 문서 C.S0014-C의 섹션 4.13의 4.13.9부분(p. 4-151)에서 설명된 기술에 따라)을 포함한다.
도 22는 MDCT 인코더들(ME120 및 ME130)의 구현(ME140)의 블록 다이어그램을 도시한다. MDCT 인코더(MD110)의 다른 구현은 나머지 생성기(D10)와 디코딩된 나머지 신호(S40) 사이의 처리 경로 내에서 하나 이상의 추가 동작들을 포함하도록 구성될 수 있다.
도 23a는 일반적 구성에 따른 오디오 신호의 프레임을 인코딩하는 MDCT 방법(MM100)(예를 들어, 방법(M10)의 작업(TE30)의 MDCT 구현)의 흐름도를 도시한다. 방법(MM100)은 프레임의 나머지를 생성하는 작업(MT10)을 포함한다. 작업(MT10)은 일반적으로 오디오 신호(S100)와 같은 샘플링된 오디오 신호의 프레임(사전-처리되어질 수 있는)를 수신하도록 배열된다. 작업(MT10)은 일반적으로 선형 예측 부호화("LPC") 분석 동작을 포함하도록 구현되고, 선 스펙트럼 쌍("LSP")과 같은 LPC 파라미터들의 세트를 생성하도록 구성될 수 있다. 작업(MT10)은 또한 하나 이상의 지각적 가중화 및/또는 다른 필터링 동작들과 같은 다른 처리 동작들을 포함할 수 있다.
방법(MM100)은 생성된 나머지를 시간-수정하는 작업(MT20)을 포함한다. 일구현예에서, 작업(MT20)은 T값에 따라 전체 세그먼트를 순방향 또는 역방향으로 이동시킴으로써, 나머지의 세그먼트를 시간-시프팅하여 나머지를 시간-수정한다. 그러한 동작은 부분적 시간 시프팅의 수행을 위해 샘플 값들을 보간하는 것을 포함할 수 있다. 또다른 구현에서, 작업(MT20)은 시간 시프트(T)에 기반한 나머지의 세그먼트를 시간-워핑함으로써 나머지를 시간-수정한다. 그러한 동작은 세그먼트를 지연 곡선에 매핑시키는 것을 포함할 수 있다. 예를 들어, 그러한 동작은 세그먼트의 하나의 샘플(예를 들어, 제 1 샘플)을 T값에 따라 이동시키는 단계 및 또다른 샘플(예를 들어, 마지막 샘플)을 T보다 더 작은 크기를 갖는 값만큼 이동시키는 단계를 포함할 수 있다. 시간 시프트(T)는 시간-시프팅된 세그먼트로 PR 코딩 방식에 의해서 가장 최근에 적용된 시간 시프트 및/또는 축적된 시간 시프트의 PR 코딩 방식에 의한 가장 최근의 업데이트로부터의 결과 값일 수 있다. RCELP 인코딩 방법(RM100) 및 MDCT 인코딩 방법(MM100)의 구현들을 포함하는 인코딩 방법(M10)의 구현에서, 작업(MT20)은 또한 시간-수정된 나머지 신호(S20)를 수정된 나머지 버퍼에 저장하도록 구성될 수 있다(예를 들어, 다음번 프레임에 대한 타겟 나머지를 생성하도록 방법(RM100)에 의한 가능한 이용을 위해).
방법(MM100)은 MDCT 계수들의 세트를 생성하기 위해 시간-수정된 나머지 상에 MDCT 연산(예를 들어, 위에서 설명된 바와 같은
Figure pct00015
에 대한 표현식에 따라)을 수행하는 작업(MT30)을 포함한다. 작업(MT30)은 여기서 설명된 바와 같은(예를 들어, 도 16 또는 18에서 도시된 바와 같은) 윈도우 함수 w(n)을 적용할 수 있고 또는 MDCT 연산을 수행하기 위한 다른 윈도우 함수 또는 알고리즘을 이용할 수 있다. 방법(MM40)은 차례곱 코딩, 조합식 근사화, 잘라버림, 라운딩, 및/또는 특정 애플리케이션에 적합하다고 간주되는 다른 양자화 동작을 이용하여 MDCT 계수들을 양자화하는 작업(MT40)을 포함한다. 이러한 예에서, 방법(MM100)은 또한 디코딩된 샘플들의 세트를 획득하기 위해서, 양자화된 계수들 상에 IMDCT 연산을 수행하도록(예를 들어, 위에서 설명된 바와 같은
Figure pct00016
에 대한 표현식에 따라) 구성되는 선택적 작업(MT50)을 포함한다.
방법(MM100)의 구현은 방법(M10)의 구현 예(예를 들어, 인코딩 작업(TE30)) 내에 포함될 수 있고, 위에서 언급된 바와 같이 논리 소자들(예를 들어, 논리 게이트들)의 어레이는 상기 방법의 다양한 작업들 중 하나, 둘 이상, 또는 모두를 실행하도록 구성될 수 있다. 방법(M10)이 방법(MM100) 및 방법(RM100) 모두를 구현들을 포함하는 경우에, 나머지 계산 작업(RT10) 및 나머지 생성 작업(MT10)은 동작들을 공통으로 공유할 수 있고(예를 들어, LPC 동작의 순차에서만 다를 수 있다) 또는 심지어는 동일한 작업으로써 구현될 수 있다.
도 23b는 오디오 신호의 프레임을 MDCT 인코딩(예를 들어, 장치(F10)의 수단(FE30)의 MDCT 구현)하기 위한 장치(MF100)의 블록 다이어그램을 도시한다. 장치(MF100)는 프레임(FM10)의 나머지를 생성하기 위한 수단(예를 들어, 위에서 설명된 바와 같은 작업(MT10)의 구현을 수행함으로써)을 포함한다. 장치(MF100)는 생성된 나머지(FM20)을 시간-수정하기 위한 수단(예를 들어, 위에서 설명된 바와 같은 작업(MT20)의 구현을 수행함으로써)을 포함한다. RCELP 인코딩 장치(RF100) 및 MDCT 인코딩 장치(MF100)의 구현들을 포함하는 인코딩 장치(F10)의 구현에서, 수단(FM20)은 또한 시간-수정된 나머지 신호(S20)를 수정된 나머지 버퍼에 저장하도록 구성될 수 있다(예를 들어, 다음번 프레임에 대해 타겟 나머지를 생성하기 위해 장치(RF100)에 의해 가능한 사용을 위해). 장치(MF100)는 또한 MDCT 계수들의 세트를 획득하기 위해서, 시간-수정된 나머지 상에 MDCT 연산을 수행하기 위한 수단(FM30)(예를 들어, 위에서 설명된 바와 같은 작업(MT30)의 구현을 수행함으로써) 및 MDCT 계수들을 양자화하기 위한 수단(FM40)(예를 들어, 위에서 설명된 바와 같은 작업(MT40)의 구현을 수행함으로써)을 포함한다. 장치(MF100)는 또한 양자화된 계수들 상에 IMDCT 연산을 수행하기 위한 선택적 수단(FM50)(예를 들어, 위에서 설명된 바와 같은 작업(MT50)을 수행함으로써)을 포함한다.
도 24a는 또다른 일반적 구성에 따라 오디오 신호의 프레임들을 처리하는 방법(M200)의 흐름도를 도시한다. 방법(M200)의 작업(T510)은 비-PR 코딩 방식(예를 들어, MDCT 코딩 방식)에 따라 제 1 프레임을 인코딩한다. 작업(T610)은 PR 코딩 방식(예를 들어, RCELP 코딩 방식)에 따라 오디오 신호의 제 2 프레임을 인코딩한다.
작업(T510)은 제 1 시간 시프트(T)에 따라 제 1 신호의 세그먼트를 시간-수정하는 부작업(T520)을 포함하는데, 이때 상기 제 1 신호는 제 1 프레임에 기반한다(예를 들어, 제 1 신호는 제 1(비-PR) 프레임 또는 제 1 프레임의 나머지이다). 일례에서, 시간 시프트(T)는 오디오 신호의 제 1 프레임을 처리했던 프레임의 UECLP 인코딩 동안에 계산되는 축적된 시간 시프트의 값(예를 들어, 마지막으로 업데이트된 값)이다. 작업(T520)이 시간-수정하는 세그먼트는 제 1 신호 전체를 포함할 수 있고, 또는 그러한 세그먼트는 나머지의 서브프레임(예를 들어, 최종 서브프레임)과 같은 그러한 신호의 더 짧은 부분일 수 있다. 일반적으로 작업(T520)은 도 17a에 도시된 바와 같은 나머지 생성기(D10)의 출력과 같은 양자화된 나머지 신호를 시간-수정한다(예를 들어, 오디오 신호(S100)의 역 LPC 필터링 이후). 그러나, 작업(T520)은 또한 도 17a에 도시된 바와 같은 신호(S40)와 같은 디코딩된 나머지의 세그먼트(예를 들어, MDCT-IMDCT 처리 이후), 또는 오디오 신호(S100)의 세그먼트를 시간-수정하도록 구현될 수 있다.
일구현예에서, 작업(T520)은 T값에 따라 전체 세그먼트를 순방향 또는 역방향 신간으로 이동시킴으로써(예를 들어, 프레임 또는 오디오 신호의 다른 세그먼트와 비교하여) 세그먼트를 시간-시프팅한다. 그러한 동작은 부분적 시간 시프트의 수행을 위해 샘플 값들을 보간하는 것을 포함할 수 있다. 또다른 구현에서, 작업(T520)은 시간 시프트(T)에 기반하여 세그먼트를 시간-워핑한다. 그러한 동작은 세그먼트를 지연 곡선에 매핑하는 것을 포함할 수 있다. 예를 들어, 그러한 동작은 세그먼트의 하나의 샘플(예를 들어, 제 1 샘플)을 T값에 따라 이동시키는 단계 및 세그먼트의 또다른 샘플(예를 들어, 마지막 샘플)을 T의 크기보다 더 작은 크기를 갖는 값만큼 이동시키는 단계를 포함할 수 있다.
작업(T520)은 아래에서 설명된 작업(T620)에 의한 가능한 사용을 위해(예를 들어, 다음번 프레임에 대한 타겟 나머지 생성을 위해), 시간-수정된 신호를 버퍼(예를 들어, 수정된 나머지 버퍼)에 저장하도록 구성될 수 있다. 작업(T520)은 또한 PR 인코딩 작업의 다른 상태 메모리를 업데이트하도록 구성될 수 있다. 작업(T520)의 그러한 일 구현은 디코딩된 나머지 신호(S40)와 같은 디코딩된 양자화된 나머지 신호를 적응 코드북("ACB") 메모리 및 PR 인코딩 작업(예를 들어, RCELP 인코딩 방법(RM120))의 제로-입력-응답 필터 상태에 저장한다.
작업(T610)은 시간-수정된 세그먼트로부터의 정보에 기반하여 제 2 신호를 시간-워핑하는 부작업(T620)을 포함하는데, 이때 제 2 신호는 제 2 프레임에 기반한다(예를 들어, 제 2 신호는 제 2 PR 프레임 또는 제 2 프레임의 나머지이다). 예를 들어, PR 코딩 방식은 과거에 수정된 나머지 대신에 시간-수정된(예를 들어, 시간-시프팅된) 세그먼트를 포함시켜, 제 1 프레임의 나머지를 이용함으로써 위에서 설명된 바와 같이 제 2 프레임을 인코딩하도록 구성되는 RCELP 코딩 방식일 수 있다.
일구현예에서, 작업(T620)은 전체 세그먼트를 순방향 또는 역방향 시간방향으로 이동시킴으로써(즉, 프레임 또는 오디오 신호의 또다른 세그먼트에 비교하여) 제 2 시간 시프트를 세그먼트에 적용한다. 그러한 동작은 부분적 시간 시프트의 수행을 위해 샘플 값들을 보간하는 것을 포함할 수 있다. 또다른 구현에서, 작업(T620)은 세그먼트를 시간-워핑하는데, 이때 상기 작업은 세그먼트를 지연 곡선에 매핑시키는 것을 포함할 수 있다. 예를 들어, 그러한 동작은 시간 시프트에 따라 세그먼트의 하나의 샘플(예를 들어, 제 1 샘플)을 이동시키는 단계 및 세그먼트의 또다른 샘플(예를 들어, 마지막 샘플)을 더작은 시간 시프트만큼 이동시키는 단계를 포함할 수 있다.
도 24b는 작업(T620)의 구현(T622)의 흐름도를 도시한다. 작업(T622)은 시간-수정된 세그먼트로부터의 정보에 기반하여 제 2 시간 시프트를 계산하는 부작업(T630)을 포함한다. 작업(T622)은 또한 제 2 시간 시프트를 제 2 신호의 세그먼트(본 예에서, 제 2 프레임의 나머지)에 적용하는 부작업(T640)을 포함한다.
도 24c는 작업(T620)의 구현(T624)의 흐름도를 도시한다. 작업(T624)은 시간-수정된 세그먼트를 오디오 신호의 지연 곡선에 매핑하는 부작업(T650)을 포함한다. 위에서 논의된 바와 같이, RCELP 코딩 방식은 이전 서브프레임의 수정된 나머지를 현재 서브프레임의 합성 지연 곡선에 매핑함으로써 타겟 나머지를 생성하는 것이 요구될 수 있다. 이러한 경우에, RCELP 코딩 방식은 시간-수정된 세그먼트를 포함하는, 제 1(비-RCELP) 프레임의 나머지에 기반한 타겟 나머지를 생성함으로써 작업(T650)을 수행하도록 구성될 수 있다.
예를 들어, 그러한 RCELP 코딩 방식은 시간-수정된 세그먼트를 포함하는, 제 1(비-RECLP) 프레임의 나머지를 현재 프레임의 합성 지연 곡선에 매핑함으로써 타겟 나머지를 생성하도록 구성될 수 있다. RCELP 코딩 방식은 또한 타겟 나머지에 기반하여 시간 시프트를 계산하고, 위에서 논의되 바와 같이, 계산된 시간 시프트를 제 2 프레임의 나머지를 시간-워핑하기 위해 이용하도록 구성될 수 있다. 도 24d는 작업(T650), 시간-수정된 세그먼트의 매핑된 샘플들로부터의 정보에 기반하여 제 2 시간 시프트를 계산하는 작업(T630)의 구현(T632), 및 작업(T640)을 포함하는 작업들(T622, T624)의 구현(T626)의 흐름도를 도시한다.
위에서 언급된 바와 같이, 약 300 내지 3400 Hz의 PSTN 주파수 영역을 초과하는 주파수 영역을 갖는 오디오 신호를 전송하고 수신하는 것이 요구될 수 있다. 그러한 신호를 코딩하는 하나의 방식은 "전체-대역(full-band)" 기술인데, 확장된 전체 주파수 영역을 단일 주파수 대역으로써 인코딩하는 방식이다(예를 들어, PSTN 영역의 코딩 시스템을 확장된 주파수 영역을 커버하도록 스케일링함으로써). 또다른 방식은 PSTN 신호로부터의 정보를 확장된 주파수 영역으로 외삽(extrapolate)함으로써 추정하는 것이다(예를 들어, PSTN 영역을 초과한 고대역 영역에 대한 여기 신호를 PSTN-영역 오디오 신호로부터의 정보에 기반하여 외삽 추정한다). 다른 방식은 "분할-대역" 기술인데, PSTN 영역을 벗어난 오디오 신호의 정보(예를 들어, 3500 내지 7000 또는 3500 내지 8000Hz와 같은 고대역 주파수 영역에 대한 정보)를 별도로 인코딩하는 것이다. 분할-대역 PR 코딩 기술의 설명은 U.S. 공보(번호: 2008/0052065, 제목: 광대역 보코더의 시간-워핑 프레임들, 및 번호: 2006/0282263, 제목: 고대역 시간 워핑을 위한 시스템, 방법, 및 장치)와 같은 문서들에서 찾을 수 있다. 분할-대역 코딩 기술은 오디오 신호의 협대역 및 고대역 부분들 모두에서 방법들(M100 및/또는 M200)의 구현을 포함하도록 확장되는 것이 필요할 수 있다.
방법(M100 및/또는 M200)은 방법(M10)의 구현 내에서 수행될 수 있다. 예를 들어, 작업들(T110 및 T210)(유사하게, 작업들(T510 및 T610))은, 방법(M10)이 오디오 신호(S100)의 연속적인 프레임들의 처리를 수행함에 따라, 작업(TE30)의 연속적 반복에 의해 수행될 수 있다. 방법(M100 및/또는 M200)은 또한 장치(F10) 및/또는 장치(AE10)(예를 들어, 장치(AE20 또는 AE25))의 구현에 의해 수행될 수 있다. 위에서 언급된 바와 같이, 그러한 장치는 셀룰러 전화와 같은 휴대용 통신 디바이스에 포함될 수 있다. 그러한 방법들 및/또는 장치는 또한 매체 게이트웨이들과 같은 기반구조 장비 내에 구현될 수 있다.
설명된 구성들의 앞서 말한 표현은 임의의 당업자로 하여금 여기에 설명된 방법들 및 다른 구조들을 이용하고 구성하도록 하기 위함이다. 여기에 설명되고 도시된 흐름도, 블록 다이어그램, 상태 다이어그램, 및 다른 구조물들은 단지 예시를 위함이고, 이러한 구조들의 다른 변형들 역시 개시의 범주 내에서 이루어질 수 있다. 이러한 구성들로의 다양한 변형이 가능하고, 여기에 표현된 일반적 원리들은 다른 구성들에도 역시 적용될 수 있다. 그러므로, 본 개시는 위에서 표시된 구성들로 제한하여는 의도가 아니고, 원래 개시의 일부를 형성하는 첨부된 청구항들을 포함하여 여기에서 임의의 형태로 개시된 원리들 및 신규한 특징들과 일치하는 최광위의 범위에 일치시키기 위함이다.
위에서 참조된 EVRC 및 SMV 코덱들에 추가하여, 여기에서 설명된 바와 같이 스피치 인코더들, 스피치 인코딩 방식들, 스피치 디코더들, 및/또는 스피치 디코딩 방식들과 함께 이용되거나 그러한 사용을 위해 적응될 수 있는 코덱의 예는 적응성 다중 레이트("AMR") 스피치 코덱(문서 ETSI TS 126 092 V6.0.0("ETSI: European Telecommunications Standards Institute"), Sophia Antipolis Cedex, FR, 2004년 12월에 설명됨); 및 arm 광대역 스피치 코덱(문서 ETSI TS 126 192 v6.0.0(ETSI 2004년 12월)에 설명됨)을 포함한다.
당업자는 정보 및 신호들이 다양한 타입의 상이한 기술들을 사용하여 표현될 수 있음을 잘 이해할 것이다. 예를 들어, 본 명세서상에 제시된 데이터, 지령, 명령, 정보, 신호, 비트, 및 심벌은 전압, 전류, 전자기파, 자기장 또는 입자, 광 필드 또는 입자, 또는 이들의 임의의 조합으로 표현될 수 있다.
당업자는 상술한 다양한 예시적인 논리블록, 모듈, 회로, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있음을 잘 이해할 것이다. 다양한 예시적인 논리 블록들, 모듈들, 및 회로들이 범용 프로세서; 디지털 신호 처리기, DSP; 주문형 집적회로, ASIC; 필드 프로그래머블 게이트 어레이, FPGA; 또는 다른 프로그래머블 논리 장치; 이산 게이트 또는 트랜지스터 논리; 이산 하드웨어 컴포넌트들; 또는 이러한 기능들을 구현하도록 설계된 것들의 조합을 통해 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로 프로세서 일 수 있지만; 대안적 실시예에서, 이러한 프로세서는 기존 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로 프로세서, 또는 이러한 구성들의 조합과 같이 계산 장치들의 조합으로서 구현될 수 있다.
상술한 방법의 단계들 및 알고리즘은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 랜덤 액세스 메모리(RAM); 플래쉬 메모리; 판독 전용 메모리(ROM); 전기적 프로그래머블 ROM(EPROM); 전기적 삭제가능한 프로그래머블 ROM(EEPROM); 레지스터; 하드디스크; 휴대용 디스크; 콤팩트 디스크 ROM(CD-ROM); 또는 공지된 저장 매체의 임의의 형태로서 존재한다. 예시적인 저장매체는 프로세서와 결합되어, 프로세서는 저장매체로부터 정보를 판독하여 저장매체에 정보를 기록한다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다. 이러한 프로세서 및 저장매체는 ASIC 에 위치한다. ASIC 는 사용자 단말에 위치할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트로서 존재할 수 있다.
여기에서 설명된 구성들 각각은 적어도 부분적으로 배선 회로로써, 주문형 반도체로써 제조된 회로 구성으로써, 또는 비-휘발성 저장매체로 로딩된 펌웨어 프로그램 또는 마이크로프로세서 또는 다른 디지털 신호 처리 장치와 같은 논리 소자들의 어레이에 의해 실행되는 명령들인 그러한 기기-판독가능 코드와 같은 데이터 저장 매체로부터 또는 그 매체로 로딩된 소프트웨어 프로그램으로써 구현될 수 있다. 데이터 자장 매체는 반도체 메모리(제한없이 동작 또는 정적 RAM, ROM 및/또는 플래시 RAM을 포함할 수 있다), 강유전체, 자기저항체, 오보닉(ovonic), 폴리메트릭(polymetric), 또는 위상-변경 메모리; 또는 자기 또는 광학 디스크과 같은 디스크 매체와 같은 저장 소자들의 어레이일 수 있다. 용어 "소프트웨어"는 소스코드, 어셈블리 언어 코드, 기계 코드, 이진 코드, 펌웨어, 매크로코드, 마이크로코드, 논리 소자들의 어레이에 의해 실행가능한 명령들의 하나 이상의 세트 또는 시퀀스, 및 그러한 예들의 임의의 조합을 포함하는 것으로 이해되어야 한다.
여기에서 개시된 방법들(M10, RM100, MM100, M100 및 M200)의 구현들은 또한 논리 소자들의 어레이를 포함하는 기기(예를 들어, 프로세서, 마이크로프로세서, 마이크로제어기, 또는 다른 유한 상태 기기)에 의해 판독가능 및/또는 실행가능 명령들의 하나 이상의 세트들로써 구체적으로 구현될 수 있다(예를 들어, 위에서 언급된 바와 같은 하나 이상의 데이터 저장 매체 내에). 그러므로, 본 개시는 위에서 도시되는 구성들로 제한하려는 의도가 아니라, 원래의 발명의 일부를 형성하는 첨부된 청구항들을 포함하여, 여기에서 임의의 형태로 개시된 원리들 및 신규한 특징들과 일치하는 최광위의 범위와 일치되도록 하기 위함이다.
여기에서 설명된 장치의 다양한 구현들의 엘리먼트들(예를 들어, AE10, AD10, RC100, RF100, ME100, ME200, MF100)은 예를 들어 동일한 칩 또는 칩세트내의 둘 또는 그 이상의 칩들 중에 존재하는 전자적 및/또는 광학적 디바이스로써 제조될 수 있다. 그러한 디바이스의 일례는 트랜지스터 또는 게이트와 같은 고정된 또는 프로그램가능한 논리 소자들의 어레이이다. 여기에 개시된 장치의 다양한 변형들의 하나 이상의 구현은 또한 마이크로 프로세서들, 임베디드 프로세서들, IP 코더들, 디지털 신호 처리기, FPGA들, ASSP들 및 ASIC들과 같은 논리 소자들의 하나 이상의 고정 또는 프로그램가능한 어레이들 상에서 실행되도록 배열된 명령들의 하나 이상의 세트들로써 전체로 또는 부분으로 구현될 수있다.
여기에서 설명된 바와 같은 장치의 구현의 하나 이상의 엘리먼트들은 그러한 장치가 임베디드되어 있는 디바이스 또는 시스템의 또다른 동작과 관련되는 작업과 같은 작업들을 수행하거나 그러한 장치의 동작과 직접적으로 연관되지 않은 명령들의 다른 세트들을 실행하도록 이용되는 것이 가능하다. 그러한 장치의 구현의 하나 이상의 엘리먼트들이 공용 구조(예를 들어, 상이한 시간들에서 상이한 엘리먼트들에 대응하는 코드의 부분들을 실행하도록 이용되는 프로세서, 상이한 시간들에서 상이한 엘리먼트들에 대응하는 작업들을 수행하도록 실행되는 명령들의 세트, 또는 상이한 시간들에서 상이한 엘리먼트들에 대한 동작들을 수행하는 전자적 및/또는 광학적 디바이스들의 배열)를 갖는 것 역시 가능하다.
도 26은 여기에서 설명된 시스템들 및 방법들과 함께 액세스 단말로서 사용될 수 있는 오디오 통신들에 대한 디바이스(1108)의 일례를 나타내는 블록 다이어그램을 도시한다. 디바이스(1108)는 디바이스(1108)의 동작을 제어하도록 구성된 프로세서(1102)를 포함한다. 프로세서(1102)는 방법(M100 또는 M200)의 구현을 수행하기 위해 디바이스(1108)를 제어하도록 구성될 수 있다. 디바이스(1108)는 또한 프로세서(1102)에 명령들과 데이터를 제공하도록 구성되는 메모리(1104)를 포함할 수 있고, ROM, RAM, 및/또는 NVRAM을 포함할 수도 있다. 디바이스(1108)는 또한 트랜시버(1120)를 포함하는 하우징(1122)을 포함한다. 트랜시버(1120)는 디바이스(1108)와 원격 위치 사이의 데이터의 전송 및 수신을 지원하는 전송기(1110) 및 수신기(1112)를 포함한다. 디바이스(1108)의 안테나(1118)는 하우징(1122)에 부착되어 트랜시버(1120)에 전기적으로 결합된다.
디바이스(1108)는 트랜시버(1120)에 의해 수신된 신호들의 레벨들을 검출하고 양자화하도록 구성된 신호 검출기(1106)를 포함한다. 예를 들어, 신호 검출기(1106)는 전체 에너지, 의사 잡음 칩 당 파일럿 에너지(Eb/No 로써도 표현됨), 및/또는 전력 스펙트럼 밀도와 같은 파라미터들의 값들을 계산하도록 구성될 수 있다. 디바이스(1108)는 디바이스(1108)의 다양한 컴포넌트들과 함께 결합되도록 구성되는 버스 시스템(1126)을 포함한다. 데이터 버스 외에, 버스 시스템(1126)은 전력 버스, 제어 신호 버스, 및/또는 상태 신호 버스를 포함할 수 있다. 디바이스(1108)는 또한 트랜시버(1120)에 의해 수신된 및/또는 트랜시버(1120)에 의해 전송되어지는 신호들을 처리하도록 구성되는 DSP(1116)을 포함한다.
이러한 예에서, 디바이스(1108)는 여러개의 상이한 상태들 중 임의의 하나에서 동작하도록 구성되고, 디바이스의 현재 상태 및 트랜시버(1120)에 의해 수신되어 신호 검출기(1106)에 의해 검출되는 신호들에 기반하여 디바이스(1108)의 상태를 제어하도록 구성되는 상태 변경기(1114)를 포함한다. 이러한 예에서, 디바이스(1108)는 또한, 현재 서비스 제공자가 부적격한지를 결정하고, 상이한 서비스 제공자에게 전송하도록 디바이스(1108)를 제어하도록 구성되는 시스템 결정기(1124)를 포함한다.

Claims (71)

  1. 오디오 신호의 프레임들을 처리하는 방법으로서,
    피치-조정(PR: pitch-regularizing) 코딩 방식에 따라 상기 오디오 신호의 제 1 프레임을 인코딩하는 단계; 및
    비-PR 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하는 단계를 포함하며,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며,
    상기 제 1 프레임을 인코딩하는 단계는, 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정(time-modifying)하는 단계를 포함하며, 상기 시간-수정하는 단계는 (A) 상기 시간 시프트에 따라 상기 제 1 프레임의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑(time-warping)하는 단계 중 하나를 포함하며,
    상기 제 1 신호의 세그먼트를 시간-수정하는 단계는 상기 제 1 신호의 다른 피치 펄스(pitch pulse)와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하는 단계를 포함하며,
    상기 제 2 프레임을 인코딩하는 단계는, 상기 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하는 단계를 포함하며, 상기 시간-수정하는 단계는 (A) 상기 시간 시프트에 따라 상기 제 2 프레임의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 단계 중 하나를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 프레임을 인코딩하는 단계는 상기 제 1 신호의 시간-수정된 세그먼트에 기반하는 제 1 인코딩된 프레임을 생성하는 단계를 포함하며,
    상기 제 2 프레임을 인코딩하는 단계는 상기 제 2 신호의 시간-수정된 세그먼트에 기반하는 제 2 인코딩된 프레임을 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 신호는 상기 제 1 프레임의 나머지(residual)이고, 상기 제 2 신호는 상기 제 2 프레임의 나머지인, 오디오 신호의 프레임들을 처리하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 및 제 2 신호들은 가중화된(weighted) 오디오 신호들인, 오디오 신호의 프레임들을 처리하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 프레임을 인코딩하는 단계는 상기 오디오 신호 내에서 상기 제 1 프레임에 선행하는 제 3 프레임의 나머지로부터의 정보에 기반하여 상기 시간 시프트를 계산하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  6. 제 5 항에 있어서,
    상기 시간 시프트를 계산하는 단계는 상기 제 3 프레임의 나머지의 샘플들을 상기 오디오 신호의 지연 곡선(delay contour)에 매핑시키는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  7. 제 6 항에 있어서,
    상기 제 1 프레임을 인코딩하는 단계는 상기 오디오 신호의 피치 기간(pitch period)에 관련되는 정보에 기반하여 상기 지연 곡선을 계산하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  8. 제 1 항에 있어서,
    상기 PR 코딩 방식은 완화된 코드-여기 선형 예측 코딩 방식(relaxed code-excited linear prediction coding scheme)이고,
    상기 비-PR 코딩 방식은 (A) 잡음-여기 선형 예측 코딩 방식(noise-excited linear prediction coding scheme), (B) 수정된 이산 코사인 변환 코딩 방식(modified discrete cosine transform coding scheme), 및 (C) 프로토타입 파형 보간 코딩 방식(prototype waveform interpolation coding scheme) 중 하나인, 오디오 신호의 프레임들을 처리하는 방법.
  9. 제 1 항에 있어서,
    상기 비-PR 코딩 방식은 수정된 이산 코사인 변환 코딩 방식인, 오디오 신호의 프레임들을 처리하는 방법.
  10. 제 1 항에 있어서,
    상기 제 2 프레임을 인코딩하는 단계는,
    인코딩된 나머지를 획득하기 위해 상기 제 2 프레임의 나머지에 대하여 수정된 이산 코사인 변환(MDCT) 연산을 수행하는 단계; 및
    디코딩된 나머지를 획득하기 위해 상기 인코딩된 나머지에 기반하는 신호에 대하여 역 MDCT 연산을 수행하는 단계를 포함하고,
    상기 제 2 신호는 상기 디코딩된 나머지에 기반하는, 오디오 신호의 프레임들을 처리하는 방법.
  11. 제 1 항에 있어서,
    상기 제 2 프레임을 인코딩하는 단계는,
    상기 제 2 프레임의 나머지를 생성하는 단계 ― 상기 제 2 신호는 생성된 나머지임 ―;
    상기 제 2 신호의 세그먼트를 시간-수정하는 단계 다음에, 인코딩된 나머지를 획득하기 위해, 상기 시간-수정된 세그먼트를 포함하는 상기 생성된 나머지에 대하여 수정된 이산 코사인 변환 연산을 수행하는 단계; 및
    상기 인코딩된 나머지에 기반하여 제 2 인코딩된 프레임을 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  12. 제 1 항에 있어서,
    상기 방법은, 상기 시간 시프트에 따라, 상기 오디오 신호 내에서 상기 제 2 프레임에 후속하는 프레임의 나머지의 세그먼트를 시간-시프팅하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  13. 제 1 항에 있어서,
    상기 방법은, 상기 시간 시프트에 기반하여, 상기 제 2 프레임에 후속하는 상기 오디오 신호의 제 3 프레임에 기반하는 제 3 신호의 세그먼트를 시간-수정하는 단계를 포함하고,
    상기 제 2 프레임을 인코딩하는 단계는 상기 제 2 및 제 3 신호들의 시간-수정된 세그먼트들의 샘플들을 포함하는 윈도우에 대해 수정된 이산 코사인 변환(MDCT) 연산을 수행하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  14. 제 13 항에 있어서,
    상기 제 2 신호는 M개의 샘플들의 길이를 가지고, 상기 제 3 신호는 M개의 샘플들의 길이를 가지며,
    상기 MDCT 연산을 수행하는 단계는 (A) 상기 시간-수정된 세그먼트를 포함하는, 상기 제 2 신호의 M개의 샘플들, 및 (B) 상기 제 3 신호의 3M/4개보다 많지 않은 샘플들에 기반하는 M개의 MDCT 계수들의 세트를 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  15. 제 13 항에 있어서,
    상기 제 2 신호는 M개의 샘플들의 길이를 갖고, 상기 제 3 신호는 M개의 샘플들의 길이를 가지며,
    상기 MDCT 연산을 수행하는 단계는 (A) 상기 시간-수정된 세그먼트를 포함하는, 상기 제 2 신호의 M개의 샘플들을 포함하고, (B) 제로 값의 적어도 M/8개의 샘플들의 시퀀스로 시작하며, (C) 제로 값의 적어도 M/8개의 샘플들의 시퀀스로 종료되는, 2M개의 샘플들의 시퀀스에 기반하는 M개의 MDCT 계수들의 세트를 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  16. 오디오 신호의 프레임들을 처리하기 위한 장치로서,
    피치-조정(PR) 코딩 방식에 따라 상기 오디오 신호의 제 1 프레임을 인코딩하기 위한 수단; 및
    비-PR 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하기 위한 수단을 포함하고,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며,
    상기 제 1 프레임을 인코딩하기 위한 수단은, 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하기 위한 수단을 포함하며, 상기 시간-수정하기 위한 수단은 (A) 상기 시간 시프트에 따라 상기 제 1 프레임의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되며,
    상기 제 1 신호의 세그먼트를 시간-수정하기 위한 수단은 상기 제 1 신호의 다른 피치 펄스와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하도록 구성되며,
    상기 제 2 프레임을 인코딩하기 위한 수단은, 상기 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하기 위한 수단을 포함하며, 상기 시간-수정하기 위한 수단은 (A) 상기 시간 시프트에 따라 상기 제 2 프레임의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  17. 제 16 항에 있어서,
    상기 제 1 신호는 상기 제 1 프레임의 나머지이고, 상기 제 2 신호는 상기 제 2 프레임의 나머지인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  18. 제 16 항에 있어서,
    상기 제 1 및 제 2 신호들은 가중화된 오디오 신호들인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  19. 제 16 항에 있어서,
    상기 제 1 프레임을 인코딩하기 위한 수단은 상기 오디오 신호 내에서 상기 제 1 프레임에 선행하는 제 3 프레임의 나머지로부터의 정보에 기반하여 상기 시간 시프트를 계산하기 위한 수단을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  20. 제 16 항에 있어서,
    상기 제 2 프레임을 인코딩하기 위한 수단은,
    상기 제 2 프레임의 나머지를 생성하기 위한 수단 ― 상기 제 2 신호는 생성된 나머지임 ―; 및
    인코딩된 나머지를 획득하기 위해, 상기 시간-수정된 세그먼트를 포함하는, 상기 생성된 나머지에 대하여 수정된 이산 코사인 변환 연산을 수행하기 위한 수단을 포함하고,
    상기 제 2 프레임을 인코딩하기 위한 수단은 상기 인코딩된 나머지에 기반하여 제 2 인코딩된 프레임을 생성하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  21. 제 16 항에 있어서,
    상기 제 2 신호의 세그먼트를 시간-수정하기 위한 수단은, 상기 시간 시프트에 따라, 상기 오디오 신호 내에서 상기 제 2 프레임에 후속하는 프레임의 나머지의 세그먼트를 시간-시프팅하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  22. 제 16 항에 있어서,
    상기 제 2 신호의 세그먼트를 시간-수정하기 위한 수단은, 상기 시간 시프트에 기반하여, 상기 제 2 프레임에 후속하는 상기 오디오 신호의 제 3 프레임에 기반하는 제 3 신호의 세그먼트를 시간-수정하도록 구성되고,
    상기 제 2 프레임을 인코딩하기 상기 수단은 상기 제 2 및 제 3 신호들의 시간-수정된 세그먼트들의 샘플들을 포함하는 윈도우에 대해 수정된 이산 코사인 변환(MDCT) 연산을 수행하기 위한 수단을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  23. 제 22 항에 있어서,
    상기 제 2 신호는 M개의 샘플들의 길이를 갖고, 상기 제 3 신호는 M개의 샘플들의 길이를 가지며,
    상기 MDCT 연산을 수행하기 위한 수단은 (A) 상기 시간-수정된 세그먼트를 포함하는, 상기 제 2 신호의 M개의 샘플들, 및 (B) 상기 제 3 신호의 3M/4개보다 많지 않은 샘플들에 기반하는 M개의 MDCT 계수들의 세트를 생성하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  24. 오디오 신호의 프레임들을 처리하기 위한 장치로서,
    피치-조정(PR) 코딩 방식에 따라 상기 오디오 신호의 제 1 프레임을 인코딩하도록 구성되는 제 1 프레임 인코더; 및
    비-PR 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하도록 구성되는 제 2 프레임 인코더를 포함하고,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며,
    상기 제 1 프레임 인코더는, 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하도록 구성되는 제 1 시간 수정기(modifier)를 포함하며, 상기 제 1 시간 수정기는 (A) 상기 시간 시프트에 따라 상기 제 1 프레임의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되며,
    상기 제 1 시간 수정기는 상기 제 1 신호의 다른 피치 펄스와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하도록 구성되며,
    상기 제 2 프레임 인코더는, 상기 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하도록 구성되는 제 2 시간 수정기를 포함하며, 상기 제 2 시간 수정기는 (A) 상기 시간 시프트에 따라 상기 제 2 프레임의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  25. 제 24 항에 있어서,
    상기 제 1 신호는 상기 제 1 프레임의 나머지이고, 상기 제 2 신호는 상기 제 2 프레임의 나머지인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  26. 제 24 항에 있어서,
    상기 제 1 및 제 2 신호들은 가중화된 오디오 신호들인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  27. 제 24 항에 있어서,
    상기 제 1 프레임 인코더는 상기 오디오 신호 내에서 상기 제 1 프레임에 선행하는 제 3 프레임의 나머지로부터의 정보에 기반하여 상기 시간 시프트를 계산하도록 구성되는 시간 시프트 계산기를 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  28. 제 24 항에 있어서,
    상기 제 2 프레임 인코더는,
    상기 제 2 프레임의 나머지를 생성하도록 구성되는 나머지 생성기 ― 상기 제 2 신호는 생성된 나머지임 ―; 및
    인코딩된 나머지를 획득하기 위해, 상기 시간-수정된 세그먼트를 포함하는, 상기 생성된 나머지에 대하여 MDCT 연산을 수행하도록 구성되는 수정된 이산 코사인 변환(MDCT) 모듈을 포함하고,
    상기 제 2 프레임 인코더는 상기 인코딩된 나머지에 기반하여 제 2 인코딩된 프레임을 생성하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  29. 제 24 항에 있어서,
    상기 제 2 시간 수정기는, 상기 시간 시프트에 따라, 상기 오디오 신호 내에서 상기 제 2 프레임에 후속하는 프레임의 나머지의 세그먼트를 시간-시프팅하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  30. 제 24 항에 있어서,
    상기 제 2 시간 수정기는, 상기 시간 시프트에 기반하여, 상기 제 2 프레임에 후속하는 상기 오디오 신호의 제 3 프레임에 기반하는 제 3 신호의 세그먼트를 시간-수정하도록 구성되고,
    상기 제 2 프레임 인코더는 상기 제 2 및 제 3 신호들의 시간-수정된 세그먼트들의 샘플들을 포함하는 윈도우에 대해 MDCT 연산을 수행하도록 구성되는 수정된 이산 코사인 변환(MDCT) 모듈을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  31. 제 30 항에 있어서,
    상기 제 2 신호는 M개의 샘플들의 길이를 가지고, 상기 제 3 신호는 M개의 샘플들의 길이를 가지며,
    상기 MDCT 모듈은 (A) 상기 시간-수정된 세그먼트를 포함하는, 상기 제 2 신호의 M개의 샘플들, 및 (B) 상기 제 3 신호의 3M/4개보다 많지 않은 샘플들에 기반하는 M개의 MDCT 계수들의 세트를 생성하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  32. 명령들을 포함하는 컴퓨터-판독가능 매체로서, 상기 명령들은 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    피치-조정(PR) 코딩 방식에 따라 오디오 신호의 제 1 프레임을 인코딩하게 하기 위한 명령들; 및
    비-PR 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하게 하기 위한 명령들을 포함하며,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며,
    실행될 때 상기 프로세서로 하여금 상기 제 1 프레임을 인코딩하게 하기 위한 명령들은, 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하게 하기 위한 명령들을 포함하며, 상기 시간-수정하게 하기 위한 명령들은 (A) 상기 시간 시프트에 따라 상기 제 1 프레임의 세그먼트를 시간-시프팅하게 하기 위한 명령들 및 (B) 상기 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하게 하기 위한 명령들 중 하나를 포함하며,
    상기 제 1 신호의 세그먼트를 시간-수정하게 하기 위한 명령들은 상기 제 1 신호의 다른 피치 펄스와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하게 하기 위한 명령들을 포함하며,
    실행될 때 상기 프로세서로 하여금 상기 제 2 프레임을 인코딩하게 하기 위한 명령들은, 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하게 하기 위한 명령들을 포함하며, 상기 시간-수정하게 하기 위한 명령들은 (A) 상기 시간 시프트에 따라 상기 제 2 프레임의 세그먼트를 시간-시프팅하게 하기 위한 명령들 및 (B) 상기 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하게 하기 위한 명령들 중 하나를 포함하는, 컴퓨터-판독가능 매체.
  33. 오디오 신호의 프레임들을 처리하는 방법으로서,
    제 1 코딩 방식에 따라 상기 오디오 신호의 제 1 프레임을 인코딩하는 단계; 및
    피치-조정(PR) 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하는 단계를 포함하며,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며, 상기 제 1 코딩 방식은 비-PR 코딩 방식이며,
    상기 제 1 프레임을 인코딩하는 단계는, 제 1 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하는 단계를 포함하고, 상기 시간-수정하는 단계는 (A) 상기 제 1 시간 시프트에 따라 상기 제 1 신호의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 제 1 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하는 단계 중 하나를 포함하며,
    상기 제 2 프레임을 인코딩하는 단계는, 제 2 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하는 단계를 포함하고, 상기 시간-수정하는 단계는 (A) 상기 제 2 시간 시프트에 따라 상기 제 2 신호의 세그먼트를 시간-시프팅하는 단계 및 (B) 상기 제 2 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 단계 중 하나를 포함하며,
    상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 상기 제 2 신호의 다른 피치 펄스와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하는 단계를 포함하며,
    상기 제 2 시간 시프트는 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하는, 오디오 신호의 프레임들을 처리하는 방법.
  34. 제 33 항에 있어서,
    상기 제 1 프레임을 인코딩하는 단계는 상기 제 1 신호의 시간-수정된 세그먼트에 기반하는 제 1 인코딩된 프레임을 생성하는 단계를 포함하고,
    상기 제 2 프레임을 인코딩하는 단계는 상기 제 2 신호의 시간-수정된 세그먼트에 기반하는 제 2 인코딩된 프레임을 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  35. 제 33 항에 있어서,
    상기 제 1 신호는 상기 제 1 프레임의 나머지이고, 상기 제 2 신호는 상기 제 2 프레임의 나머지인, 오디오 신호의 프레임들을 처리하는 방법.
  36. 제 33 항에 있어서,
    상기 제 1 및 제 2 신호들은 가중화된 오디오 신호들인, 오디오 신호의 프레임들을 처리하는 방법.
  37. 제 33 항에 있어서,
    상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하여 상기 제 2 시간 시프트를 계산하는 단계를 포함하고,
    상기 제 2 시간 시프트를 계산하는 단계는 상기 제 1 신호의 시간-수정된 세그먼트를 상기 제 2 프레임으로부터의 정보에 기반하는 지연 곡선에 매핑시키는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  38. 제 37 항에 있어서,
    상기 제 2 시간 시프트는 상기 매핑된 세그먼트의 샘플들 및 임시적으로 수정된 나머지의 샘플들 사이의 상관에 기반하고,
    상기 임시적으로 수정된 나머지는 (A) 상기 제 2 프레임의 나머지의 샘플들 및 (B) 상기 제 1 시간 시프트에 기반하는, 오디오 신호의 프레임들을 처리하는 방법.
  39. 제 33 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고,
    상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 상기 제 2 시간 시프트에 따라 상기 나머지의 제 1 세그먼트를 시간-시프팅하는 단계를 포함하며,
    상기 방법은,
    상기 제 2 시간 시프트와는 다른 제 3 시간 시프트를 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하여 계산하는 단계; 및
    상기 제 3 시간 시프트에 따라 상기 나머지의 제 2 세그먼트를 시간-시프팅하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  40. 제 33 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고,
    상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 상기 제 2 시간 시프트에 따라 상기 나머지의 제 1 세그먼트를 시간-시프팅하는 단계를 포함하며,
    상기 방법은,
    상기 제 2 시간 시프트와는 다른 제 3 시간 시프트를 상기 나머지의 시간-수정된 제 1 세그먼트로부터의 정보에 기반하여 계산하는 단계; 및
    상기 제 3 시간 시프트에 기반하여 상기 나머지의 제 2 세그먼트를 시간-시프팅하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  41. 제 33 항에 있어서,
    상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 상기 제 1 신호의 시간-수정된 세그먼트의 샘플들을 상기 제 2 프레임으로부터의 정보에 기반하는 지연 곡선에 매핑시키는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  42. 제 33 항에 있어서,
    상기 방법은,
    상기 제 1 신호의 시간-수정된 세그먼트에 기반한 시퀀스를 적응성 코드북 버퍼에 저장하는 단계; 및
    상기 저장하는 단계 다음에, 상기 적응성 코드북 버퍼의 샘플들을 상기 제 2 프레임으로부터의 정보에 기반하는 지연 곡선에 매핑시키는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  43. 제 33 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고, 상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 상기 제 2 프레임의 나머지를 시간-워핑하는 단계를 포함하며,
    상기 방법은, 상기 제 2 프레임의 시간-워핑된 나머지로부터의 정보에 기반하여 상기 오디오 신호의 제 3 프레임의 나머지를 시간-워핑하는 단계를 포함하고, 상기 제 3 프레임은 상기 오디오 신호 내에서 상기 제 2 프레임에 연속적인, 오디오 신호의 프레임들을 처리하는 방법.
  44. 제 33 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고, 상기 제 2 신호의 세그먼트를 시간-수정하는 단계는 (A) 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보 및 (B) 상기 제 2 프레임의 나머지로부터의 정보에 기반하여 상기 제 2 시간 시프트를 계산하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  45. 제 33 항에 있어서,
    상기 PR 코딩 방식은 완화된 코드-여기 선형 예측 코딩 방식이고, 상기 비-PR 코딩 방식은 (A) 잡음-여기 선형 예측 코딩 방식, (B) 수정된 이산 코사인 변환 코딩 방식, 및 (C) 프로토타입 파형 보간 코딩 방식 중 하나인, 오디오 신호의 프레임들을 처리하는 방법.
  46. 제 33 항에 있어서,
    상기 비-PR 코딩 방식은 수정된 이산 코사인 변환 코딩 방식인, 오디오 신호의 프레임들을 처리하는 방법.
  47. 제 33 항에 있어서,
    상기 제 1 프레임을 인코딩하는 단계는,
    인코딩된 나머지를 획득하기 위해, 상기 제 1 프레임의 나머지에 대하여 수정된 이산 코사인 변환(MDCT) 연산을 수행하는 단계; 및
    디코딩된 나머지를 획득하기 위해, 상기 인코딩된 나머지에 기반하는 신호에 대하여 역 MDCT 연산을 수행하는 단계를 포함하고,
    상기 제 1 신호는 상기 디코딩된 나머지에 기반하는, 오디오 신호의 프레임들을 처리하는 방법.
  48. 제 33 항에 있어서,
    상기 제 1 프레임을 인코딩하는 단계는,
    상기 제 1 프레임의 나머지를 생성하는 단계 ― 상기 제 1 신호는 생성된 나머지임 ―;
    상기 제 1 신호의 세그먼트를 시간-수정하는 단계 다음에, 인코딩된 나머지를 획득하기 위해, 시간-수정된 세그먼트를 포함하는, 상기 생성된 나머지에 대하여 수정된 이산 코사인 변환 연산을 수행하는 단계; 및
    상기 인코딩된 나머지에 기반하여 제 1 인코딩된 프레임을 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  49. 제 33 항에 있어서,
    상기 제 1 신호는 M개의 샘플들의 길이를 가지고, 상기 제 2 신호는 M개의 샘플들의 길이를 가지며,
    상기 제 1 프레임을 인코딩하는 단계는, 시간-수정된 세그먼트를 포함하는, 상기 제 1 신호의 M개의 샘플들, 및 상기 제 2 신호의 3M/4개보다 많지 않은 샘플들에 기반하는 M개의 수정된 이산 코사인 변환(MDCT) 계수들의 세트를 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  50. 제 33 항에 있어서,
    상기 제 1 신호는 M개의 샘플들의 길이를 가지고, 상기 제 2 신호는 M개의 샘플들의 길이를 가지며,
    상기 제 1 프레임을 인코딩하는 단계는 (A) 시간-수정된 세그먼트를 포함하는, 상기 제 1 신호의 M개의 샘플들을 포함하고, (B) 제로값의 적어도 M/8개의 샘플들의 시퀀스로 시작하며, 및 (C) 제로값의 적어도 M/8개 샘플들의 시퀀스로 종료하는 2M개의 샘플들의 시퀀스에 기반하여 M개의 수정된 이산 코사인 변환(MDCT) 계수들의 세트를 생성하는 단계를 포함하는, 오디오 신호의 프레임들을 처리하는 방법.
  51. 오디오 신호의 프레임들을 처리하기 위한 장치로서,
    제 1 코딩 방식에 따라 상기 오디오 신호의 제 1 프레임을 인코딩하기 위한 수단; 및
    피치-조정(PR) 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하기 위한 수단을 포함하고,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며, 상기 제 1 코딩 방식은 비-PR 코딩 방식이며,
    상기 제 1 프레임을 인코딩하기 위한 수단은, 제 1 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하기 위한 수단을 포함하고, 상기 시간-수정하기 위한 수단은 (A) 상기 제 1 시간 시프트에 따라 상기 제 1 신호의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 제 1 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되며,
    상기 제 2 프레임을 인코딩하기 위한 수단은, 제 2 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하기 위한 수단을 포함하고, 상기 시간-수정하기 위한 수단은 (A) 상기 제 2 시간 시프트에 따라 상기 제 2 신호의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 제 2 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되며,
    상기 제 2 신호의 세그먼트를 시간-수정하기 위한 수단은 상기 제 2 신호의 다른 피치 펄스와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하도록 구성되며,
    상기 제 2 시간 시프트는 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  52. 제 51 항에 있어서,
    상기 제 1 신호는 상기 제 1 프레임의 나머지이고, 상기 제 2 신호는 상기 제 2 프레임의 나머지인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  53. 제 51 항에 있어서,
    상기 제 1 및 제 2 신호들은 가중화된 오디오 신호들인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  54. 제 51 항에 있어서,
    상기 제 2 신호의 세그먼트를 시간-수정하기 위한 수단은 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하여 상기 제 2 시간 시프트를 계산하기 위한 수단을 포함하고,
    상기 제 2 시간 시프트를 계산하기 위한 수단은 상기 제 1 신호의 시간-수정된 세그먼트를 상기 제 2 프레임으로부터의 정보에 기반하는 지연 곡선에 매핑시키는 수단을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  55. 제 54 항에 있어서,
    상기 제 2 시간 시프트는 상기 매핑된 세그먼트의 샘플들 및 임시적으로 수정된 나머지의 샘플들 사이의 상관에 기반하고,
    상기 임시적으로 수정된 나머지는 (A) 상기 제 2 프레임의 나머지의 샘플들 및 (B) 상기 제 1 시간 시프트에 기반하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  56. 제 51 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고,
    상기 제 2 신호의 세그먼트를 시간-수정하기 위한 수단은 상기 제 2 시간 시프트에 따라 상기 나머지의 제 1 세그먼트를 시간 시프팅하도록 구성되며,
    상기 장치는,
    상기 나머지의 시간-수정된 제 1 세그먼트로부터의 정보에 기반하여, 상기 제 2 시간 시프트와는 다른 제 3 시간 시프트를 계산하기 위한 수단; 및
    상기 제 3 시간 시프트에 따라 상기 나머지의 제 2 세그먼트를 시간-시프팅하기 위한 수단을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  57. 제 51 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고, 상기 제 2 신호의 세그먼트를 시간-수정하기 위한 수단은 (A) 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보 및 (B) 상기 제 2 프레임의 나머지로부터의 정보에 기반하여 상기 제 2 시간 시프트를 계산하기 위한 수단을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  58. 제 51 항에 있어서,
    상기 제 1 프레임을 인코딩하기 위한 수단은,
    상기 제 1 프레임의 나머지를 생성하기 위한 수단 ― 상기 제 1 신호는 생성된 나머지임 ―; 및
    인코딩된 나머지를 획득하기 위해, 상기 시간-수정된 세그먼트를 포함하는, 상기 생성된 나머지에 대하여 수정된 이산 코사인 변환 연산을 수행하기 위한 수단을 포함하고,
    상기 제 1 프레임을 인코딩하기 위한 수단은 상기 인코딩된 나머지에 기반하여 제 1 인코딩된 프레임을 생성하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  59. 제 51 항에 있어서,
    상기 제 1 신호는 M개의 샘플들의 길이를 가지고, 상기 제 2 신호는 M개의 샘플들의 길이를 가지며,
    상기 제 1 프레임을 인코딩하기 위한 수단은, 시간-수정된 세그먼트를 포함하는, 상기 제 1 신호의 M개의 샘플들, 및 상기 제 2 신호의 3M/4대보다 많지 않은 샘플들에 기반하는 M개의 수정된 이산 코사인 변환(MDCT) 계수들의 세트를 생성하기 위한 수단을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  60. 제 51 항에 있어서,
    상기 제 1 신호는 M개의 샘플들의 길이를 가지고, 상기 제 2 신호는 M개의 샘플들의 길이를 가지며,
    상기 제 1 프레임을 인코딩하기 위한 수단은 (A) 시간-수정된 세그먼트를 포함하는, 상기 제 1 신호의 M개의 샘플들을 포함하고, (B) 제로값의 적어도 M/8개의 샘플들의 시퀀스로 시작하며, 및 (C) 제로값의 적어도 M/8개의 샘플들의 시퀀스로 종료하는 2M개의 샘플들의 시퀀스에 기반하는 M개의 수정된 이산 코사인 변환(MDCT) 계수들의 세트를 생성하기 위한 수단을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  61. 오디오 신호의 프레임들을 처리하기 위한 장치로서,
    제 1 코딩 방식에 따라 상기 오디오 신호의 제 1 프레임을 인코딩하도록 구성되는 제 1 프레임 인코더; 및
    피치-조정(PR) 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하도록 구성되는 제 2 프레임 인코더를 포함하고,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며, 상기 제 1 코딩 방식은 비-PR 코딩 방식이며,
    상기 제 1 프레임 인코더는, 제 1 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하도록 구성되는 제 1 시간 수정기를 포함하고, 상기 제 1 시간 수정기는 (A) 상기 제 1 시간 시프트에 따라 상기 제 1 신호의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 제 1 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되며,
    상기 제 2 프레임 인코더는, 제 2 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하도록 구성되는 제 2 시간 수정기를 포함하고, 상기 제 2 시간 수정기는 (A) 상기 제 2 시간 시프트에 따라 상기 제 2 신호의 세그먼트를 시간-시프팅하는 동작 및 (B) 상기 제 2 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하는 동작 중 하나를 수행하도록 구성되며,
    상기 제 2 시간 수정기는 상기 제 2 신호의 다른 피치 펄스와 관련하여 제 2 신호의 상기 세그먼트의 피치 펄스의 위치를 변경하도록 구성되며,
    상기 제 2 시간 시프트는 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  62. 제 61 항에 있어서,
    상기 제 1 신호는 상기 제 1 프레임의 나머지이고, 상기 제 2 신호는 상기 제 2 프레임의 나머지인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  63. 제 61 항에 있어서,
    상기 제 1 및 제 2 신호들은 가중화된 오디오 신호들인, 오디오 신호의 프레임들을 처리하기 위한 장치.
  64. 제 61 항에 있어서,
    상기 제 2 시간 수정기는 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하여 상기 제 2 시간 시프트를 계산하도록 구성되는 시간 시프트 계산기를 포함하고,
    상기 시간 시프트 계산기는 상기 제 1 신호의 시간-수정된 세그먼트를 상기 제 2 프레임으로부터의 정보에 기반하는 지연 곡선에 매핑시키도록 구성되는 매퍼를 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  65. 제 64 항에 있어서,
    상기 제 2 시간 시프트는 상기 매핑된 세그먼트의 샘플들 및 임시적으로 수정된 나머지의 샘플들 사이의 상관에 기반하고,
    상기 임시적으로 수정된 나머지는 (A) 상기 제 2 프레임의 샘플들, 및 (B) 상기 제 1 시간 시프트에 기반하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  66. 제 61 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고,
    상기 제 2 시간 수정기는 상기 제 2 시간 시프트에 따라 상기 나머지의 제 1 세그먼트를 시간-시프팅하도록 구성되고,
    상기 시간 시프트 계산기는 상기 나머지의 시간-수정된 제 1 세그먼트로부터의 정보에 기반하여 상기 제 2 시간 시프트와는 다른 제 3 시간 시프트를 계산하도록 구성되며,
    상기 제 2 시간 시프터는 상기 제 3 시간 시프트에 따라 상기 나머지의 제 2 세그먼트를 시간-시프팅하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  67. 제 61 항에 있어서,
    상기 제 2 신호는 상기 제 2 프레임의 나머지이고, 상기 제 2 시간 수정기는 (A) 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보 및 (B) 상기 제 2 프레임의 나머지로부터의 정보에 기반하여 상기 제 2 시간 시프트를 계산하도록 구성되는 시간 시프트 계산기를 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  68. 제 61 항에 있어서,
    상기 제 1 프레임 인코더는,
    상기 제 1 프레임의 나머지를 생성하도록 구성되는 나머지 생성기 ― 상기 제 1 신호는 생성된 나머지임 ―; 및
    인코딩된 나머지를 획득하기 위해, 상기 시간-수정된 세그먼트를 포함하는, 상기 생성된 나머지에 대하여 MDCT 연산을 수행하도록 구성되는 수정된 이산 코사인 변환(MDCT) 모듈을 포함하고,
    상기 제 1 프레임 인코더는 상기 인코딩된 나머지에 기반하여 제 1 인코딩된 프레임을 생성하도록 구성되는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  69. 제 61 항에 있어서,
    상기 제 1 신호는 M개의 샘플들의 길이를 가지고, 상기 제 2 신호는 M개의 샘플들의 길이를 가지며,
    상기 제 1 프레임 인코더는, 시간-수정된 세그먼트를 포함하는, 상기 제 1 신호의 M개의 샘플들, 및 상기 제 2 신호의 3M/4개보다 많지 않은 샘플들에 기반하는 M개의 수정된 이산 코사인 변환(MDCT) 계수들의 세트를 생성하도록 구성되는 수정된 이산 코사인 변환(MDCT) 모듈을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  70. 제 61 항에 있어서,
    상기 제 1 신호는 M개의 샘플들의 길이를 가지고, 상기 제 2 신호는 M개의 샘플들의 길이를 가지며,
    상기 제 1 프레임 인코더는 (A) 시간-수정된 세그먼트를 포함하는, 상기 제 1 신호의 M개의 샘플들을 포함하고, (B) 제로값의 적어도 M/8개의 샘플들의 시퀀스로 시작하며, (C) 제로값의 적어도 M/8개의 샘플들의 시퀀스로 종료하는 2M개의 샘플들의 시퀀스에 기반하여 M개의 수정된 이산 코사인 변환(MDCT) 계수들의 세트를 생성하도록 구성되는 수정된 이산 코사인 변환(MDCT) 모듈을 포함하는, 오디오 신호의 프레임들을 처리하기 위한 장치.
  71. 명령들을 포함하는 컴퓨터-판독가능 매체로서, 상기 명령들은 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    제 1 코딩 방식에 따라 오디오 신호의 제 1 프레임을 인코딩하게 하기 위한 명령들; 및
    PR 코딩 방식에 따라 상기 오디오 신호의 제 2 프레임을 인코딩하게 하기 위한 명령들을 포함하며,
    상기 제 2 프레임은 상기 오디오 신호 내에서 상기 제 1 프레임에 후속하고 상기 제 1 프레임에 연속적이며, 상기 제 1 코딩 방식은 비-PR 코딩 방식이며,
    실행될 때 상기 프로세서로 하여금 상기 제 1 프레임을 인코딩하게 하기 위한 명령들은, 제 1 시간 시프트에 기반하여, 상기 제 1 프레임에 기반하는 제 1 신호의 세그먼트를 시간-수정하게 하기 위한 명령들을 포함하고, 상기 시간-수정하게 하기 위한 명령들은 (A) 상기 제 1 시간 시프트에 따라 상기 제 1 신호의 세그먼트를 시간-시프팅하게 하기 위한 명령들 및 (B) 상기 제 1 시간 시프트에 기반하여 상기 제 1 신호의 세그먼트를 시간-워핑하게 하기 위한 명령들 중 하나를 포함하며,
    실행될 때 상기 프로세서로 하여금 상기 제 2 프레임을 인코딩하게 하기 위한 명령들은, 제 2 시간 시프트에 기반하여, 상기 제 2 프레임에 기반하는 제 2 신호의 세그먼트를 시간-수정하게 하기 위한 명령들을 포함하고, 상기 시간-수정하게 하기 위한 명령들은 (A) 상기 제 2 시간 시프트에 따라 상기 제 2 신호의 세그먼트를 시간-시프팅하게 하기 위한 명령들 및 (B) 상기 제 2 시간 시프트에 기반하여 상기 제 2 신호의 세그먼트를 시간-워핑하게 하기 위한 명령들 중 하나를 포함하며,
    상기 제 2 신호의 세그먼트를 시간-수정하게 하기 위한 명령들은 상기 제 2 신호의 다른 피치 펄스와 관련하여 상기 세그먼트의 피치 펄스의 위치를 변경하게 하기 위한 명령들을 포함하며,
    상기 제 2 시간 시프트는 상기 제 1 신호의 시간-수정된 세그먼트로부터의 정보에 기반하는, 컴퓨터-판독가능 매체.
KR1020107000788A 2007-06-13 2008-06-13 피치-조정 및 비-피치-조정 코딩을 이용한 신호 인코딩 KR101092167B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US94355807P 2007-06-13 2007-06-13
US60/943,558 2007-06-13
US12/137,700 2008-06-12
US12/137,700 US9653088B2 (en) 2007-06-13 2008-06-12 Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
PCT/US2008/066840 WO2008157296A1 (en) 2007-06-13 2008-06-13 Signal encoding using pitch-regularizing and non-pitch-regularizing coding

Publications (2)

Publication Number Publication Date
KR20100031742A true KR20100031742A (ko) 2010-03-24
KR101092167B1 KR101092167B1 (ko) 2011-12-13

Family

ID=40133142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107000788A KR101092167B1 (ko) 2007-06-13 2008-06-13 피치-조정 및 비-피치-조정 코딩을 이용한 신호 인코딩

Country Status (10)

Country Link
US (1) US9653088B2 (ko)
EP (1) EP2176860B1 (ko)
JP (2) JP5405456B2 (ko)
KR (1) KR101092167B1 (ko)
CN (1) CN101681627B (ko)
BR (1) BRPI0812948A2 (ko)
CA (1) CA2687685A1 (ko)
RU (2) RU2010100875A (ko)
TW (1) TWI405186B (ko)
WO (1) WO2008157296A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101390551B1 (ko) * 2012-09-24 2014-04-30 충북대학교 산학협력단 저 지연 변형된 이산 코사인 변환 방법
KR101484426B1 (ko) * 2010-10-15 2015-01-19 모토로라 모빌리티 엘엘씨 Celp 기반 음성 코더에서의 오디오 신호 대역폭 확장

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788706B1 (ko) * 2006-11-28 2007-12-26 삼성전자주식회사 광대역 음성 신호의 부호화/복호화 방법
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
US8527265B2 (en) * 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8254588B2 (en) 2007-11-13 2012-08-28 Stmicroelectronics Asia Pacific Pte., Ltd. System and method for providing step size control for subband affine projection filters for echo cancellation applications
EP2410522B1 (en) * 2008-07-11 2017-10-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio signal encoder, method for encoding an audio signal and computer program
MY154452A (en) * 2008-07-11 2015-06-15 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
KR101381513B1 (ko) * 2008-07-14 2014-04-07 광운대학교 산학협력단 음성/음악 통합 신호의 부호화/복호화 장치
KR101170466B1 (ko) 2008-07-29 2012-08-03 한국전자통신연구원 Mdct 영역에서의 후처리 방법, 및 장치
ES2671711T3 (es) * 2008-09-18 2018-06-08 Electronics And Telecommunications Research Institute Aparato de codificación y aparato de decodificación para transformar entre codificador basado en transformada de coseno discreta modificada y hetero codificador
WO2010047566A2 (en) * 2008-10-24 2010-04-29 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof
CN101604525B (zh) * 2008-12-31 2011-04-06 华为技术有限公司 基音增益获取方法、装置及编码器、解码器
KR101397512B1 (ko) * 2009-03-11 2014-05-22 후아웨이 테크놀러지 컴퍼니 리미티드 선형 예측 코딩 분석을 위한 방법, 장치 및 시스템
KR101924192B1 (ko) * 2009-05-19 2018-11-30 한국전자통신연구원 계층형 정현파 코딩을 이용한 오디오 신호의 인코딩 및 디코딩 방법 및 장치
KR20110001130A (ko) * 2009-06-29 2011-01-06 삼성전자주식회사 가중 선형 예측 변환을 이용한 오디오 신호 부호화 및 복호화 장치 및 그 방법
JP5304504B2 (ja) * 2009-07-17 2013-10-02 ソニー株式会社 信号符号化装置、信号復号装置、信号処理システム、これらにおける処理方法およびプログラム
FR2949582B1 (fr) * 2009-09-02 2011-08-26 Alcatel Lucent Procede pour rendre un signal musical compatible avec un codec a transmission discontinue ; et dispositif pour la mise en ?uvre de ce procede
US8886346B2 (en) * 2009-10-21 2014-11-11 Dolby International Ab Oversampling in a combined transposer filter bank
US8682653B2 (en) * 2009-12-15 2014-03-25 Smule, Inc. World stage for pitch-corrected vocal performances
US9058797B2 (en) * 2009-12-15 2015-06-16 Smule, Inc. Continuous pitch-corrected vocal capture device cooperative with content server for backing track mix
WO2011110594A1 (en) * 2010-03-10 2011-09-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. 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
US10930256B2 (en) 2010-04-12 2021-02-23 Smule, Inc. Social music system and method with continuous, real-time pitch correction of vocal performance and dry vocal capture for subsequent re-rendering based on selectively applicable vocal effect(s) schedule(s)
GB2546686B (en) 2010-04-12 2017-10-11 Smule Inc Continuous score-coded pitch correction and harmony generation techniques for geographically distributed glee club
US9601127B2 (en) 2010-04-12 2017-03-21 Smule, Inc. Social music system and method with continuous, real-time pitch correction of vocal performance and dry vocal capture for subsequent re-rendering based on selectively applicable vocal effect(s) schedule(s)
US9093080B2 (en) * 2010-06-09 2015-07-28 Panasonic Intellectual Property Corporation Of America Bandwidth extension method, bandwidth extension apparatus, program, integrated circuit, and audio decoding apparatus
US8831933B2 (en) 2010-07-30 2014-09-09 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for multi-stage shape vector quantization
US9208792B2 (en) 2010-08-17 2015-12-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for noise injection
US20120089390A1 (en) * 2010-08-27 2012-04-12 Smule, Inc. Pitch corrected vocal capture for telephony targets
US20120143611A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Trajectory Tiling Approach for Text-to-Speech
AR085218A1 (es) 2011-02-14 2013-09-18 Fraunhofer Ges Forschung Aparato y metodo para ocultamiento de error en voz unificada con bajo retardo y codificacion de audio
CA2827266C (en) 2011-02-14 2017-02-28 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding a portion of an audio signal using a transient detection and a quality result
MX2013009344A (es) 2011-02-14 2013-10-01 Fraunhofer Ges Forschung Aparato y metodo para procesar una señal de audio decodificada en un dominio espectral.
PL2550653T3 (pl) 2011-02-14 2014-09-30 Fraunhofer Ges Forschung Reprezentacja sygnału informacyjnego z użyciem transformacji zakładkowej
TR201903388T4 (tr) 2011-02-14 2019-04-22 Fraunhofer Ges Forschung Bir ses sinyalinin parçalarının darbe konumlarının şifrelenmesi ve çözülmesi.
SG192748A1 (en) 2011-02-14 2013-09-30 Fraunhofer Ges Forschung Linear prediction based coding scheme using spectral domain noise shaping
AR085221A1 (es) * 2011-02-14 2013-09-18 Fraunhofer Ges Forschung Aparato y metodo para codificar y decodificar una señal de audio utilizando una porcion alineada anticipada
TWI591468B (zh) 2011-03-30 2017-07-11 仁寶電腦工業股份有限公司 電子裝置與風扇控制方法
US9866731B2 (en) 2011-04-12 2018-01-09 Smule, Inc. Coordinating and mixing audiovisual content captured from geographically distributed performers
CN102800317B (zh) * 2011-05-25 2014-09-17 华为技术有限公司 信号分类方法及设备、编解码方法及设备
CN104012037A (zh) * 2011-10-27 2014-08-27 远程通讯发展中心(C-Dot) 一种用于无线失效时管理租用线路网络的通信系统
CA2853017A1 (en) * 2011-10-27 2013-05-02 Centre For Development Of Telematics (C-Dot) A communication system for managing leased line network and a method thereof
RU2630889C2 (ru) 2012-11-13 2017-09-13 Самсунг Электроникс Ко., Лтд. Способ и устройство для определения режима кодирования, способ и устройство для кодирования аудиосигналов и способ и устройство для декодирования аудиосигналов
EP2757558A1 (en) 2013-01-18 2014-07-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Time domain level adjustment for audio signal decoding or encoding
RU2660605C2 (ru) 2013-01-29 2018-07-06 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Концепция заполнения шумом
CN117253498A (zh) * 2013-04-05 2023-12-19 杜比国际公司 音频信号的解码方法和解码器、介质以及编码方法
CN108364657B (zh) 2013-07-16 2020-10-30 超清编解码有限公司 处理丢失帧的方法和解码器
US9984706B2 (en) 2013-08-01 2018-05-29 Verint Systems Ltd. Voice activity detection using a soft decision mechanism
CN104681032B (zh) * 2013-11-28 2018-05-11 中国移动通信集团公司 一种语音通信方法和设备
US10194355B2 (en) * 2014-01-13 2019-01-29 Nokia Solutions And Networks Oy Method, apparatus and computer program
RU2668111C2 (ru) 2014-05-15 2018-09-26 Телефонактиеболагет Лм Эрикссон (Пабл) Классификация и кодирование аудиосигналов
CN106683681B (zh) 2014-06-25 2020-09-25 华为技术有限公司 处理丢失帧的方法和装置
CN105225671B (zh) 2014-06-26 2016-10-26 华为技术有限公司 编解码方法、装置及系统
MX349256B (es) * 2014-07-28 2017-07-19 Fraunhofer Ges Forschung Aparato y metodo para seleccionar uno de un primer algoritmo de codificacion y un segundo algoritmo de codificacion usando reduccion de armonicos.
KR101993828B1 (ko) * 2014-07-28 2019-06-27 니폰 덴신 덴와 가부시끼가이샤 부호화 방법, 장치, 프로그램 및 기록 매체
CN107004417B (zh) * 2014-12-09 2021-05-07 杜比国际公司 Mdct域错误掩盖
CN104616659B (zh) * 2015-02-09 2017-10-27 山东大学 相位对重构语音声调感知影响方法及在人工耳蜗中应用
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
US11488569B2 (en) 2015-06-03 2022-11-01 Smule, Inc. Audio-visual effects system for augmentation of captured performance based on content thereof
US11032602B2 (en) 2017-04-03 2021-06-08 Smule, Inc. Audiovisual collaboration method with latency management for wide-area broadcast
US10210871B2 (en) * 2016-03-18 2019-02-19 Qualcomm Incorporated Audio processing for temporally mismatched signals
US11310538B2 (en) 2017-04-03 2022-04-19 Smule, Inc. Audiovisual collaboration system and method with latency management for wide-area broadcast and social media-type user interface mechanics

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384891A (en) * 1988-09-28 1995-01-24 Hitachi, Ltd. Vector quantizing apparatus and speech analysis-synthesis system using the apparatus
US5357594A (en) * 1989-01-27 1994-10-18 Dolby Laboratories Licensing Corporation Encoding and decoding using specially designed pairs of analysis and synthesis windows
JPH0385398A (ja) 1989-08-30 1991-04-10 Omron Corp 扇風機の送風量ファジイ制御装置
CN1062963C (zh) * 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
FR2675969B1 (fr) * 1991-04-24 1994-02-11 France Telecom Procede et dispositif de codage-decodage d'un signal numerique.
US5455888A (en) * 1992-12-04 1995-10-03 Northern Telecom Limited Speech bandwidth extension method and apparatus
JP3531177B2 (ja) 1993-03-11 2004-05-24 ソニー株式会社 圧縮データ記録装置及び方法、圧縮データ再生方法
TW271524B (ko) * 1994-08-05 1996-03-01 Qualcomm Inc
DE69619284T3 (de) * 1995-03-13 2006-04-27 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Erweiterung der Sprachbandbreite
US5704003A (en) * 1995-09-19 1997-12-30 Lucent Technologies Inc. RCELP coder
KR100389895B1 (ko) * 1996-05-25 2003-11-28 삼성전자주식회사 음성 부호화 및 복호화방법 및 그 장치
US6134518A (en) * 1997-03-04 2000-10-17 International Business Machines Corporation Digital audio signal coding using a CELP coder and a transform coder
WO1999010719A1 (en) 1997-08-29 1999-03-04 The Regents Of The University Of California Method and apparatus for hybrid coding of speech at 4kbps
US6169970B1 (en) * 1998-01-08 2001-01-02 Lucent Technologies Inc. Generalized analysis-by-synthesis speech coding method and apparatus
EP0932141B1 (en) * 1998-01-22 2005-08-24 Deutsche Telekom AG Method for signal controlled switching between different audio coding schemes
US6449590B1 (en) * 1998-08-24 2002-09-10 Conexant Systems, Inc. Speech encoder using warping in long term preprocessing
US6754630B2 (en) * 1998-11-13 2004-06-22 Qualcomm, Inc. Synthesis of speech from pitch prototype waveforms by time-synchronous waveform interpolation
US6456964B2 (en) * 1998-12-21 2002-09-24 Qualcomm, Incorporated Encoding of periodic speech using prototype waveforms
US6691084B2 (en) * 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
WO2000070769A1 (fr) 1999-05-14 2000-11-23 Matsushita Electric Industrial Co., Ltd. Procede et appareil d'elargissement de la bande d'un signal audio
US6330532B1 (en) * 1999-07-19 2001-12-11 Qualcomm Incorporated Method and apparatus for maintaining a target bit rate in a speech coder
JP4792613B2 (ja) 1999-09-29 2011-10-12 ソニー株式会社 情報処理装置および方法、並びに記録媒体
JP4211166B2 (ja) * 1999-12-10 2009-01-21 ソニー株式会社 符号化装置及び方法、記録媒体、並びに復号装置及び方法
US7386444B2 (en) * 2000-09-22 2008-06-10 Texas Instruments Incorporated Hybrid speech coding and system
US6947888B1 (en) * 2000-10-17 2005-09-20 Qualcomm Incorporated Method and apparatus for high performance low bit-rate coding of unvoiced speech
EP1199711A1 (en) 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Encoding of audio signal using bandwidth expansion
US6694293B2 (en) * 2001-02-13 2004-02-17 Mindspeed Technologies, Inc. Speech coding system with a music classifier
US7461002B2 (en) * 2001-04-13 2008-12-02 Dolby Laboratories Licensing Corporation Method for time aligning audio signals using characterizations based on auditory events
US7136418B2 (en) 2001-05-03 2006-11-14 University Of Washington Scalable and perceptually ranked signal coding and decoding
US6658383B2 (en) 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
CA2365203A1 (en) 2001-12-14 2003-06-14 Voiceage Corporation A signal modification method for efficient coding of speech signals
EP1341160A1 (en) * 2002-03-01 2003-09-03 Deutsche Thomson-Brandt Gmbh Method and apparatus for encoding and for decoding a digital information signal
US7116745B2 (en) 2002-04-17 2006-10-03 Intellon Corporation Block oriented digital communication system and method
WO2004008437A2 (en) 2002-07-16 2004-01-22 Koninklijke Philips Electronics N.V. Audio coding
US8090577B2 (en) * 2002-08-08 2012-01-03 Qualcomm Incorported Bandwidth-adaptive quantization
JP4178319B2 (ja) * 2002-09-13 2008-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 音声処理におけるフェーズ・アライメント
US20040098255A1 (en) * 2002-11-14 2004-05-20 France Telecom Generalized analysis-by-synthesis speech coding method, and coder implementing such method
US7876966B2 (en) * 2003-03-11 2011-01-25 Spyder Navigations L.L.C. Switching between coding schemes
GB0321093D0 (en) 2003-09-09 2003-10-08 Nokia Corp Multi-rate coding
US7412376B2 (en) * 2003-09-10 2008-08-12 Microsoft Corporation System and method for real-time detection and preservation of speech onset in a signal
FR2867649A1 (fr) * 2003-12-10 2005-09-16 France Telecom Procede de codage multiple optimise
US7516064B2 (en) * 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
FI118834B (fi) * 2004-02-23 2008-03-31 Nokia Corp Audiosignaalien luokittelu
WO2005099243A1 (ja) 2004-04-09 2005-10-20 Nec Corporation 音声通信方法及び装置
US8032360B2 (en) * 2004-05-13 2011-10-04 Broadcom Corporation System and method for high-quality variable speed playback of audio-visual media
AU2004319556A1 (en) * 2004-05-17 2005-11-24 Nokia Corporation Audio encoding with different coding frame lengths
US7739120B2 (en) * 2004-05-17 2010-06-15 Nokia Corporation Selection of coding models for encoding an audio signal
JP5100124B2 (ja) 2004-10-26 2012-12-19 パナソニック株式会社 音声符号化装置および音声符号化方法
US20070147518A1 (en) * 2005-02-18 2007-06-28 Bruno Bessette Methods and devices for low-frequency emphasis during audio compression based on ACELP/TCX
US8155965B2 (en) 2005-03-11 2012-04-10 Qualcomm Incorporated Time warping frames inside the vocoder by modifying the residual
EP1864283B1 (en) * 2005-04-01 2013-02-13 Qualcomm Incorporated Systems, methods, and apparatus for highband time warping
US7991610B2 (en) 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
US7751572B2 (en) 2005-04-15 2010-07-06 Dolby International Ab Adaptive residual audio coding
FR2891100B1 (fr) * 2005-09-22 2008-10-10 Georges Samake Codec audio utilisant la transformation de fourier rapide, le recouvrement partiel et une decomposition en deux plans basee sur l'energie.
US7720677B2 (en) 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
KR100715949B1 (ko) * 2005-11-11 2007-05-08 삼성전자주식회사 고속 음악 무드 분류 방법 및 그 장치
US8032369B2 (en) * 2006-01-20 2011-10-04 Qualcomm Incorporated Arbitrary average data rates for variable rate coders
KR100717387B1 (ko) * 2006-01-26 2007-05-11 삼성전자주식회사 유사곡 검색 방법 및 그 장치
KR100774585B1 (ko) * 2006-02-10 2007-11-09 삼성전자주식회사 변조 스펙트럼을 이용한 음악 정보 검색 방법 및 그 장치
US7987089B2 (en) * 2006-07-31 2011-07-26 Qualcomm Incorporated Systems and methods for modifying a zero pad region of a windowed frame of an audio signal
US8239190B2 (en) * 2006-08-22 2012-08-07 Qualcomm Incorporated Time-warping frames of wideband vocoder
US8126707B2 (en) * 2007-04-05 2012-02-28 Texas Instruments Incorporated Method and system for speech compression
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101484426B1 (ko) * 2010-10-15 2015-01-19 모토로라 모빌리티 엘엘씨 Celp 기반 음성 코더에서의 오디오 신호 대역폭 확장
KR101390551B1 (ko) * 2012-09-24 2014-04-30 충북대학교 산학협력단 저 지연 변형된 이산 코사인 변환 방법

Also Published As

Publication number Publication date
EP2176860A1 (en) 2010-04-21
RU2010100875A (ru) 2011-07-20
US9653088B2 (en) 2017-05-16
TW200912897A (en) 2009-03-16
TWI405186B (zh) 2013-08-11
JP5571235B2 (ja) 2014-08-13
RU2470384C1 (ru) 2012-12-20
JP2013242579A (ja) 2013-12-05
WO2008157296A1 (en) 2008-12-24
US20080312914A1 (en) 2008-12-18
EP2176860B1 (en) 2014-12-03
CN101681627A (zh) 2010-03-24
JP2010530084A (ja) 2010-09-02
JP5405456B2 (ja) 2014-02-05
KR101092167B1 (ko) 2011-12-13
CA2687685A1 (en) 2008-12-24
BRPI0812948A2 (pt) 2014-12-09
CN101681627B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
KR101092167B1 (ko) 피치-조정 및 비-피치-조정 코딩을 이용한 신호 인코딩
US10249313B2 (en) Adaptive bandwidth extension and apparatus for the same
JP5437067B2 (ja) 音声信号に関連するパケットに識別子を含めるためのシステムおよび方法
US9837092B2 (en) Classification between time-domain coding and frequency domain coding
JP5596189B2 (ja) 非アクティブフレームの広帯域符号化および復号化を行うためのシステム、方法、および装置
JP5129118B2 (ja) 帯域幅拡張音声予測励振信号の反疎性フィルタリングのための方法及び装置
JP4166673B2 (ja) 相互使用可能なボコーダ
JP5597896B2 (ja) 修正離散コサイン変換音声符号化器用の帯域幅拡大方法及び装置
RU2636685C2 (ru) Решение относительно наличия/отсутствия вокализации для обработки речи
US9418671B2 (en) Adaptive high-pass post-filter
TW201434033A (zh) 用於判定音調脈衝週期信號界限之系統及方法

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 9