KR20020033819A - 멀티모드 음성 인코더 - Google Patents

멀티모드 음성 인코더 Download PDF

Info

Publication number
KR20020033819A
KR20020033819A KR1020027003768A KR20027003768A KR20020033819A KR 20020033819 A KR20020033819 A KR 20020033819A KR 1020027003768 A KR1020027003768 A KR 1020027003768A KR 20027003768 A KR20027003768 A KR 20027003768A KR 20020033819 A KR20020033819 A KR 20020033819A
Authority
KR
South Korea
Prior art keywords
frame
gain
module
codebook
type
Prior art date
Application number
KR1020027003768A
Other languages
English (en)
Other versions
KR100488080B1 (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
Priority claimed from US09/574,396 external-priority patent/US6782360B1/en
Application filed by 조셉 더블유. 킹스 주니어., 코넥스안트 시스템스, 인코퍼레이티드 filed Critical 조셉 더블유. 킹스 주니어.
Publication of KR20020033819A publication Critical patent/KR20020033819A/ko
Application granted granted Critical
Publication of KR100488080B1 publication Critical patent/KR100488080B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G3/00Gain control in amplifiers or frequency changers
    • 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
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Lubricants (AREA)
  • Ink Jet (AREA)
  • Graft Or Block Polymers (AREA)

Abstract

본 발명은 음성신호(18)를 후속 디코딩을 위한 비트스트림으로 인코딩하여 합성음성(20)을 생성할 수 있는 음성압축시스템(10)을 제공한다. 음성압축시스템은 원하는 평균 비트레이트를 재구성된 음성의 지각적 품질로 균형을 맞춤으로써 비트스트림에 의해 소비된 대역폭을 최적화한다. 음성압축시스템(10)은 풀레이트 코덱(22), 1/2 레이트 코덱(24), 1/4 레이트 코덱(26) 및 1/8 레이트 코덱(28)을 포함한다. 또한 풀레이트 코덱(22)과 1/2 레이트 코덱(24)은 타입분류에 기초하여 선택적으로 활성화된다. 각각의 코덱(22, 24, 26, 28)은 합성음성(20)의 전체적인 품질을 향상시키기 위해 상기 음성신호(18)의 상이한 면들을 강조하는 여러 비트레이트로 상기 음성신호(18)를 인코드 및 디코드하도록 선택적으로 활성화된다.

Description

멀티모드 음성 인코더{MULTIMODE SPEECH ENCODER}
인간의 의사소통의 효과적인 방식으로 통신시스템을 사용하는 것이 있다. 통신시스템은 유선 및 무선 통신을 기반으로 한 시스템을 모두 포함한다. 무선통신 시스템은 유선기반 시스템과 전기적으로 접속되어 무선주파수 통신을 이용하는 이동통신장치와 통신한다. 현재 셀룰러 시스템에서 통신을 위해 이용가능한 무선주파수는 예컨대 셀룰러 주파수 범위에서는 900MHz 부근에 집중되고, 개인 휴대통신(PCS) 주파수 범위에서는 1900MHz 부근에 집중되어 있다. 무선시스템 내에서의 데이터와 음성의 송신은 무선주파수의 일부를 소모하는 대역폭을 갖는다. 셀룰러폰과 같은 무선 통신장치의 인기가 높아짐에 따라 야기되는 트래픽의 증가 때문에 무선시스템 내에서는 전송 대역폭이 감축되는 것이 바람직하다.
무선통신에서의 디지털 송신은 노이즈 면역성, 신뢰성, 장비의 소형화, 및 디지털 기술을 이용하여 복잡한 신호처리 기능을 실행하는 능력 때문에 음성과 데이터 모두에 점점 더 많이 적용되고 있다. 음성신호의 디지털 송신은 아날로그 디지털 변환기로 아날로그 음성파형을 샘플링하는 단계와, 음성 압축(인코딩) 단계,송신단계, 음성 압축해제(디코딩) 단계, 디지털 아날로그 변환 단계, 및 이어폰이나 확성기에 재생하는 단계를 포함한다. 아날로그 디지털 변환기로 아날로그 음성파형을 샘플링하는 단계는 디지털 신호를 만들어 낸다. 그러나 아날로그 음성파형을 나타내기 위하여 디지털 신호에 사용되는 비트의 수는 비교적 큰 대역폭을 생성시킨다. 예를들어 800Hz(일단 매 0.125초마다)의 레이트로 샘플링된 음성신호는, -여기에서 각 샘플은 16비트로 나타냄-, 1초당 128,000(16×8000)비트 또는 128Kbps (Kilobits/second)의 비트레이트(bit rate)로 될 것이다.
음성압축은 음성신호를 나타내는 비트의 수를 감축시키기 위해 사용될 수 있으며, 그렇게 함으로써 송신에 필요한 대역폭을 감축시킬 수 있다. 그러나 음성압축은 압축해제된 음성의 품질저하를 초래할 수 있다. 일반적으로 비트레이트가 높으면 높을 수록 품질이 좋아지고, 비트레이트가 낮으면 낮을 수록 품질이 저하된다. 그러나 코딩기술과 같은 현대의 음성압축기술은 비교적 낮은 비트레이트에서 비교적 높은 품질의 압축해제된 음성을 만들어 낼수 있다. 일반적으로 현대의 코딩기술은 실제의 음성파형을 보존하지 않고도 음성신호의 지각적으로 중요한 특징을 나타내도록 시도하고 있다.
비트레이트를 낮추기 위해 사용되는 코딩기술에서는 압축되는 음성신호의 부분에 따라 음성압축의 정도를 변화시키는 것(즉, 비트레이트를 변화시키는 것)을 포함한다. 일반적으로 적당한 지각적 표현이 보다 어려운 음성신호의 부분들(예컨대, 유성음, 파열음, 유성음의 출발)은 보다 높은 수의 비트를 이용하여 코딩되고 송신된다. 반대로 적당한 지각적 표현이 덜 어려운 음성신호의 부분들(예컨대, 무성음 또는 단어 사이의 침묵)은 보다 낮은 수의 비트를 이용하여 코딩된다. 음성신호에 대한 최종적인 평균 비트는 유사한 품질을 갖는 압축해제된 음성을 제공하는 고정 비트레이트의 경우보다 비교적 낮아질 것이다.
흔히 코덱(codec)이라 불리는 음성압축 시스템은 인코더와 디코더를 포함하며, 디지털 음성신호의 비트레이트를 감축시키기 위해 사용된다. 높은 품질의 복원음성을 유지하기 위한 시도와 더불어 원래의 음성을 디지털 인코드하는데 필요한 비트수를 감축시키는 음성 코덱에 대한 수많은 알고리즘이 개발되어 왔다. 1985년 Proc. ICASSP-85, 페이지 937-940에서 M.R. Schroeder와 B.S. Atal에 의해 "코드-여기 선형예측(Code-Excited Linear Prediction: CELP): 매우 낮은 레이트에서의 고품질 음성"이란 제목의 주제에서 언급된 바와 같이 코드-여기 선형예측 기술은 효과적인 음성 코딩 알고리즘을 제공한다. 음성 코더에 기초한 가변 레이트 CELP의 예로는 CDMA(Code Division Multiple Access: 코드분할 다중 액세스) 어플리케이션을 위해 설계된 TIA(Telecommunications Industry Association) IS-127 스탠다드가 있다. CELP 코딩기술은 음성신호로부터 리던던시(redundancy)를 제거하기 위해 수개의 예측기술을 이용한다. CELP 코딩기술은 표본화된 입력 음성신호를 프레임이라 불리는 샘플의 블록에 저장한다는 의미에서 프레임 기반이다. 데이터의 프레임은 압축 음성신호를 생성하도록 디지털 형태로 처리될 수 있다.
CELP 코딩기술은 2가지 타입의 예측자(predictor), 즉 단기 예측자(short-term predictor)와 장기 예측자(long-term predictor)를 이용한다. 일반적으로 단기 예측자는 장기 예측자 전에 적용된다. 단기 프로딕터에서 기인하는예측오류(prediction error)는 흔히 단기오차(short-term residual)라 불리고, 장기 예측자(long-term residual)에서 기인하는 예측오류는 흔히 장기오차라 불린다. 장기오차는 복수의 고정 코드북 엔트리나 벡터를 포함하는 고정 코드북을 이용하여 코딩된다. 엔트리들 중의 하나는 장기오차를 나타내도록 고정 코드북 게인에 의해 선택되어 증대된다. 단기 예측자는 또한 LPC(Linear Prediction Coding: 선형 예측 코딩) 또는 스펙트럼 표시(spectral representation)로서 언급될 수 있으며, 보통 10개의 예측 파라미터를 포함한다. 장기 예측자는 또한 피치 예측자(pitch predictor) 또는 어댑티브 코드북(adaptive codebook)으로서 언급되기도 하며 보통 래그 파라미터(lag parameter)와 장기 예측자 게인 파라미터를 포함한다. 각각의 래그 파라미터는 또한 피치래그(pitch lag)라 불리기도 하며, 각각의 장기 예측자 게인 파라미터는 또한 어댑티브 코드북 게인(adaptive codebook gain)이라 불리기도 한다. 래그 파라미터는 어댑티브 코드북에서 엔트리 또는 벡터를 정의한다.
CELP 인코더는 단기 예측자 파라미터를 결정하기 위해 LPC 분석을 실행한다. LPC 분석 다음에 장기 예측자 파라미터가 결정될 수 있다. 또한 장기오차를 가장 잘 나타내는 고정 코드북 엔트리와 고정 코드북 게인이 결정된다. 통합에 의한 분석(ABS; analysis-by-synthesis)의 강력한 개념이 CELP 코딩에서 이용된다. ABS 방법에서 고정 코드북에 의한 최선의 기여, 최선의 고정 코드북 게인, 및 최선의 장기 예측자 파라미터는 역예측필터를 이용하여 그들을 합성하고 지각적인 가중 측정을 적용함으로써 구할 수 있다. 래그 파라미터와 장기 게인 파라미터뿐 아니라 단기(LPC) 예측계수, 고정 코드북 게인도 양자화될 수 있다. 고정 코드북 지수뿐아니라 양자화 지수도 인코더로부터 디코더로 보내질 수 있다.
CELP 디코더는 고정 코드북으로부터 벡터를 추출하도록 고정 코드북 지수를 이용한다. 벡터는 고정 코드북 게인에 의해 증대되어 고정 코드북 기여로서 알려진 장기 여기(long-term excitation)를 발생시킬 수 있다. 장기 예측자 기여는 흔히 여기로서 단순히 언급되는 단기여기를 생성하도록 장기여기에 부가될 수 있다. 장기 예측자 기여는 장기 예측자 게인에 의해 증대되었던 과거로부터의 단기여기를 포함한다. 이와 달리 장기 예측자 기여의 부가는 어댑티브 코드북 기여 또는 장기 (피치) 필터링으로서 간주될 수 있다. 단기여기는 합성 음성을 발생시키도록 인코더에 의해 양자화된 단기 (LPC) 예측계수를 이용하는 단기 역예측 필터(LPC)를 통과할 수 있다. 합성된 음성은 지각적 코딩 노이즈를 감축시키는 후필터를 통과한다.
이들 음성압축 기술은 음성신호를 송신하기 위해 사용되는 대역폭의 양을 저하시킨다. 그러나 자원을 보다 많은 사용자에게 할당해야만 하는 통신시스템에서는 대역폭의 추가적인 감축이 특히 중요하다. 따라서 높은 품질의 압축해제 음성을 제공하면서 음성 표시에 필요한 평균 비트레이트를 최소화할 수 있는 음성코딩 시스템과 그 방법이 필요하다.
본발명은 음성 통신시스템에 관한 것으로, 보다 구체적으로 디지털 음성 코딩을 위한 시스템에 관한 것이다.
도면의 구성요소는 본 발명의 주요부를 도시할 때 반드시 척도에 따른 것은아니며 위치 보다는 강조를 염두에 둔 것이다. 또한 도면에서 유사한 참조번호는 다른 도면에서도 그에 대응하는 부분을 나타낸다.
도 1은 음성압축 시스템의 1실시예를 나타낸 블록도.
도 2는 도 1에 도시된 인코딩 시스템의 1실시예를 나타낸 확장 블록도.
도 3은 도 1에 도시된 디코딩 시스템의 1실시예를 나타낸 확장 블록도.
도 4는 풀레이트 코덱의 1실시예의 비트 할당을 나타낸 표.
도 5는 1/2 레이트 코덱의 1실시예의 비트 할당을 나타낸 표.
도 6은 1/4 레이트 코덱의 1실시예의 비트 할당을 나타낸 표.
도 7은 1/8 레이트 코덱의 1실시예의 비트 할당을 나타낸 표.
도 8은 도 2에 도시된 선처리 모듈의 1실시예를 나타낸 확장 블록도.
도 9는 풀레이트 코덱 및 1/2 레이트 코덱에 대하여 도 2에 도시된 초기 프레임 처리 모듈의 1실시예를 나타낸 확장 블록도.
도 10은 풀레이트 코덱 및 1/2 레이트 코덱에 대하여 도 2에 도시된 제 1 서브프레임의 1실시예를 나타낸 확장 블록도.
도 11은 풀레이트 코덱 및 1/2 레이트 코덱에 대하여 도 2에 도시된 제 1 프레임 처리 모듈, 제 2서브프레임 처리 모듈 및 제 2 프레임 처리 모듈의 1실시예를 나타낸 확장 블록도.
도 12는 풀레이트 코덱 및 1/2 레이트 코덱에 대하여 도 3에 도시된 디코딩 시스템의 1실시예를 나타낸 확장 블록도.
본 발명은 음성신호를 인코딩 및 디코딩하는 시스템을 제공한다. 본 발명의 실시예들은 파형 매칭 및 지각 관련 기술을 이용하여 신호처리 기능을 실행하기 위한 구성으로서 코딩에 기초한 예측 및 CELP 코딩기술을 이용할 수 있다. 이들 기술에 의해 비교적 낮은 비트레이트를 유지하면서 지각적 특징을 포함함으로써 원래의 음성과 매우 닮은 합성음성이 발생된다. 이들 실시예들의 1적용예로서 무선 통신시스템이 있다. 이 응용예에서 원래의 음성의 인코딩 또는 합성음성을 발생시키는 디코딩은 이동통신장치에서 발생할 수 있다. 또한 인코딩 및 디코딩은 유선기반 시스템에 인터페이스를 제공하도록 유선기반 시스템 또는 다른 무선 통신시스템 내에서 발생할 수 있다.
음성압축 시스템의 1실시예는 풀레이트 코덱, 1/2 레이트 코덱, 1/4 레이트 코덱, 및 1/8 레이트 코덱을 포함하며, 이들 각각 음성신호를 인코딩 및 디코딩한다. 이들 코덱은 8.5Kbps, 3Kbps, 2Kbps 및 0.8Kbps의 비트레이트에서 각각 음성신호를 인코드한다. 음성압축시스템은 코덱중의 하나를 선택하도록 음성신호의 프레임에 대하여 레이트 선택을 실행한다. 음성신호를 유한길이의 시간을 갖는 세그먼트로 분할함으로써 프레임들이 생성된다. 각각의 프레임은 상이한 비트레이트로 코딩될 수 있기 때문에 음성압축 시스템은 평균 비트레이트로 음성을 코딩하는 가변레이트 음성압축시스템이다.
레이트선택은 특정 프레임에 포함된 음성신호의 부분에 기초하여 음성신호의 각 프레임을 특징화함으로써 결정된다. 예컨대, 프레임은 변동없는 유성음, 변동있는 유성음, 무성음, 배경 노이즈, 침묵 등으로서 특징지어질 수 있다. 또한 레이트 선택은 음성압축 시스템이 내부에서 동작하는 모드에 기초한다. 상이한 모드는 원하는 평균 비트레이트를 나타낸다. 코덱은 상이한 특징의 음성신호 내에서 최적화된 코딩을 위해 설계된다. 최적의 코딩은 원하는 평균 비트레이트를 유지하면서 최고의 지각적 품질을 갖는 합성 음성을 제공하도록 원하는 바를 조화롭게 유지시킴으로써 이용가능한 대역폭의 사용을 최대화시킨다. 동작중에 음성압축 시스템은 합성음성의 지각적 품질을 최적화시키기 위한 시도로 프레임의 특징뿐 아니라 모드에 기초하여 코덱을 선택적으로 활성화한다.
일단 풀레이트 코덱 또는 1/2 레이트 코덱이 레이트 선택에 의해 선택되면, 추가로 코딩을 최적화하도록 음성신호의 타입분류가 발생한다. 타입분류는 신속하게 변경하지 않는 하모닉(harmonic) 구조와 포르만트(formant) 구조를 포함하는 프레임에 대한 제 1 타입(즉, 타입 1)과, 모든 다른 프레임에 대한 제 2 타입(즉, 타입 0)일 수 있다. 풀레이트와 1/2 레이트 코덱의 비트할당은 프레임의 코딩을 추가로 최적화하도록 타입분류에 따라 조정될 수 있다. 비트할당의 조정은 각 프레임 내에서의 음성신호의 상이한 특징을 강조함으로써 재구성된 음성신호의 향상된 지각적 품질을 제공한다.
따라서, 음성 코더는 코덱을 선택적으로 활성화하여 원하는 평균 비트레이트를 유지하면서 재구성된 음성신호의 전체적인 품질을 최적화한다. 본 발명의 다른 시스템, 방법, 특징 및 이점은 다음의 도면 및 상세한 설명의 검사를 통해 당해 분야의 기술자에게 분명하게 될 것이다. 상세한 설명 내에 포함된 이러한 부가적인 시스템, 방법, 특징 및 장점은 본 발명의 범위에 속하는 것이며, 첨부의 청구의 범위에 의해 보호된다.
실시예들은 음성신호를 참조하여 설명되나 다른 신호의 처리도 가능하다. 여기에서 사용되는 수치의 값은 부동소수점, 고정점, 십진수, 또는 그 값에 있어서는 약간의 편차를 야기할 수 있으나 기능성을 손상하지 않는 다른 유사한 수적 표시에 의해 수적으로 표현될 수 있다. 또한 모듈로서 식별되는 기능블록은 다른 구조를 나타내도록 의도된 것은 아니며, 다양한 실시예에서 조합되거나 추가로 다시 분할될 수 있다.
도 1은 음성압축 시스템(10)의 1실시예를 나타낸 블록도이다. 음성압축 시스템(10)은 예시된 바와 같이 접속될 수 있는 인코딩 시스템(12), 통신매체(14), 및 디코딩 시스템(16)을 포함한다. 음성압축 시스템(10)은 음성신호(18)를 수신하여 인코딩하고, 그것을 디코딩하여 후처리된 합성음성(20)을 발생시킬 수 있는 어떤 시스템이어도 좋다. 통상적인 통신시스템에서는 무선 통신시스템이 유선기반통신 시스템 내의 공중 전화교환망(PSTN)에 전기적으로 연결된다. 무선 통신시스템 내에서는 셀룰러폰 또는 휴대형 무선송수신기 등의 이동통신과 무선통신을 위해 복수의 기지국이 보통 사용된다.
음성압축 시스템(10)은 음성신호(18)를 수신하도록 동작한다. 송신기(도시생략)에 의해 송신된 음성신호(18)는 예컨대 마이크로폰(도시생략)에 입력되어 아날로그 디지털 변환기(도시생략)에 의해 디지털화된다. 송신기는 인간의 음성, 악기 또는 아날로그 신호를 발생할 수 있는 다른 장치일 수 있다. 음성신호(18)는 유성음, 무성음, 배경 노이즈, 침묵, 음악 등 음향의 종류를 나타낼 수 있다.
인코딩 시스템(12)은 음성신호(18)를 인코드하도록 동작한다. 인코딩시스템(12)은 이동통신 장치, 기지국 또는 아날로그 디지털 변환기에 의해 디지털화된 음성신호(18)를 수신하여 인코딩할 수 있는 다른 무선 통신장치나 유선 통신장치의 일부분일 수 있다. 유선통신장치는 인터넷 프로토콜을 통한 음성(Voice over Internet Protocol; VoIP)장치 및 시스템을 포함할 수 있다. 인코딩 시스템(12)은 음성신호(18)를 프레임으로 나누어 비트스트림을 생성한다. 음성압축 시스템(10)의 1실시예는 8000Hz의 샘플링 레이트에서 프레임 당 20밀리초에 대응하는 160개의 샘플을 포함하는 프레임을 이용한다.
통신매체(14)는 통신채널, 무선파, 마이크로파, 유선통신, 광섬유 전송, 또는 인코딩 시스템(12)에 의해 생성된 비트스트림을 전달할 수 있는 임의의 매체와 같은 임의의 송신 메커니즘일 수 있다. 통신매체(14)는 또한 비트스트림의 송신에 사용된 송신장치 및 수신장치를 포함한다. 통신매체(14)의 실시예는 무선 통신시스템에서 무선 통신을 위한 통신채널, 안테나, 및 관련 송수신기를 포함할 수 있다. 통신매체(14)는 또한 메모리장치, 저장매체 또는 인코딩 시스템(12)에 의해 생성된 비트스트림을 저장 및 복구할 수 있는 다른 장치와 같은 저장매체일 수도 있다. 통신매체(14)는 인코딩 시스템(12)에 의해 생성된 비트스트림을 디코딩 시스템(16)에 송신하도록 동작한다.
디코딩 시스템(16)은 통신매체(14)로부터 비트스트림을 수신한다. 디코딩 시스템(14)은 이동통신장치, 기지국 또는 비트스트림을 수신할 수 있는 유선이나 무선 통신장치의 일부일 수 있다. 디코딩 시스템(16)은 비트스트림을 디코드하여 후처리된 합성 음성(20)을 디지털 신호 형태로 생성하도록 동작한다. 후처리된 합성음성(20)은 디지털 아날로그 변환기(도시생략)에 의해 아날로그 신호로 변환될 수 있다. 디지털 아날로그 변환기의 아날로그 출력은 인간의 귀, 자기 테이프 레코더, 또는 아날로그 신호를 수신할 수 있는 임의의 다른 장치인 수신기(도시생략)에 의해 수신될 수 있다. 이와 달리, 디지털 기록장치, 음성인식장치, 또는 디지털 신호를 수신할 수 있는 임의의 다른 장치가 후처리된 합성음성(20)을 수신할 수 있다.
음성압축 시스템(10)의 실시예는 또한 모드라인(21)을 포함한다. 모드라인(21)은 비트스트림에 대하여 원하는 평균 비트레이트를 표시함으로써 음성압축 시스템(10)을 제어하는 모드신호를 전달한다. 모드신호는 예컨대, 모드신호 생성모듈을 이용하여 무선 통신시스템에 의해 외부에서 생성될 수 있다. 모드신호 생성모듈은 후처리된 합성음성(20)의 원하는 품질, 이용가능한 대역폭, 사용자나 다른 관련 요인에 의해 초래된 서비스 등의 복수의 요인에 기초한 모드신호를 결정한다. 모드신호는 음성압축 시스템(10)이 내부에서 동작하는 통신시스템에 의해 제어 및 선택된다. 모드신호는 복수의 코덱이 어느 인코딩 시스템(12) 내에서 활성화될 수 있는지를 결정하는데 도움이 되도록 인코딩 시스템(12)에 제공될 수 있다.
코덱은 인코딩 시스템(12)과 디코딩 시스템(16) 내에 각각 위치되는 인코더부와 디코더부를 포함한다. 음성압축 시스템(10)에서는 4개의 코덱, 즉 풀레이트 코덱(22), 1/2 레이트 코덱(24), 1/4 레이트 코덱(26), 및 1/8 레이트 코덱(28)이 존재한다. 코덱(22, 24, 26, 28)의 각각은 비트스트림을 생성하도록 동작가능하다. 각각의 코덱(22, 24, 26, 28)에 의해 생성된 비트스트림의 크기, 그리고 통신매체(14)를 통한 비트스트림의 송신에 필요한 대역폭 또는 용량은 상이하다.
실시예에서, 풀레이트 코덱(22), 1/2 레이트 코덱(24), 1/4 레이트 코덱(26) 및 1/8 레이트 코덱(28)은 프레임당 각각 170비트, 80비트, 40비트 및 16비트를 발생시킨다. 각 프레임의 비트스트림의 크기는 비트레이트, 즉 풀레이트 코덱(22)에 대하여는 8.5Kbps, 1/2 레이트 코덱(24)에 대하여는 4.0Kbps, 1/4 레이트 코덱(26)에 대하여는 2.0Kbps, 1/8 레이트 코덱(28)에 대하여는 0.8Kbps에 대응한다. 그러나 다른 실시예에서는 다른 비트레이트뿐 아니라 보다 소수나 다수의 코덱도 가능하다. 다양한 코덱으로 음성신호(18)의 프레임을 처리함으로써 평균 비트레이트가 달성된다. 인코딩 시스템(12)은 코덱(22, 24, 26, 28) 중의 어느 것이 프레임의 특징에 기초하여, 그리고 모드신호에 의해 제공되는 원하는 평균 비트레이트에 기초하여 특정 프레임을 인코드하기 위해 사용될 수 있는지를 결정한다. 프레임을 특징화하는 것은 특정 프레임에 포함된 음성신호(18)의 부분에 기초한다. 예컨대, 프레임은 고정 유성음, 비고정 유성음, 무성음, 시작, 배경 노이즈, 침묵 등으로 특징지어질 수 있다.
실시예에서 모드신호라인(21) 상의 모드신호는 모드 0, 모드 1, 및 모드 2로 식별된다. 3개 모드의 각각은 코덱(22, 24, 26, 28)의 각각의 사용율을 변경시킬 수 있는 여러 가지의 원하는 평균 비트레이트를 제공한다. 모드 0은 프리미엄 모드로 언급되는데, 여기에서는 대부분의 프레임이 풀레이트 코덱(22)으로 코딩될 수 있으며; 보다 소수의 프레임은 1/2 레이트 코덱(24)으로 코딩될 수 있고; 침묵 및 배경 노이즈를 포함하는 프레임은 1/4 레이트 코덱(26)과 1/8 레이트 코덱(28)으로 코딩될 수 있다. 모드 1은 표준모드로 언급되며, 여기에서 시작 및 일부 유성음 프레임 등의 높은 정보내용을 갖는 프레임은 풀레이트 코덱(22)으로 코딩될 수 있다. 또한 다른 유성음 및 무성음 프레임은 1/2 레이트 코덱(24)으로 코딩되고, 일부 무성음 프레임은 1/4 레이트 코덱(26)으로 코딩되며, 침묵 및 고정 배경 노이즈 프레임은 1/8 레이트 코덱(28)으로 코딩될 수 있다.
모드 2는 절약모드로서 언급되며, 여기에서는 높은 정보 내용을 갖는 소수의 프레임이 풀레이트 코덱(22)으로 코딩된다. 모드 2에서는 프레임의 대부분이 1/4 레이트 코덱(26)으로 코딩될 수 있는 일부 무성음 프레임을 제외하고는 1/2 레이트 코덱(24)으로 코딩될 수 있다. 침묵 및 고정 배경 노이즈 프레임은 모드 2에서는 1/8 레이트 코덱(28)으로 코딩될 수 있다. 따라서, 코덱(22, 24, 26, 28)의 선택을 변경함으로써 음성압축 시스템(10)은 가능한 최고의 품질을 유지하면서 재생 음성을 원하는 비트레이트로 공급할 수 있다. 초절약 모드로 동작하는 모드 3이나 활성화된 최대 코덱이 1/2 레이트 코덱(24)인 1/2 레이트 최대 모드 등의 부가적인 모드들이 또한 다른 실시예에서 가능하다.
음성압축 시스템(10)의 추가적인 제어는 또한 1/2 레이트 신호라인(30)에 의해 제공될 수 있다. 1/2 레이트 신호라인(30)은 1/2 레이트 시그널링 플래그(half rate signaling flag)를 공급한다. 1/2 레이트 시그널링 플래그는 무선 통신시스템 등의 외부 소스로부터 공급될 수 있다. 활성화되면 1/2 레이트 시그널링 플래그는 음성압축 시스템(10)이 최대 레이트로서 1/2 레이트 코덱(24)을 사용하도록 지시한다. 1/2 레이트 시그널링 플래그를 언제 활성화시킬 것인지의 결정은 음성압축 시스템(10)이 내부에서 동작하는 통신시스템에 의해 실행된다. 모드신호 결정과 유사하게, 1/2 레이트 시그널링 모듈은 통신시스템에 의해 결정된 복수의 요인에 기초하여 1/2 레이트 시그널링 플래그의 활성화를 제어한다. 다른 실시예에서는 1/2 레이트 시그널링 플래그는 음성압축 시스템(10)에 명령하여 다른 코덱 대신 코덱(22, 24, 26, 28)중의 하나를 사용하거나 또는 최대 레이트나 최소 레이트로서 코덱(22, 24, 26, 28) 중 하나 이상을 식별하게 한다.
음성압축 시스템(10)의 실시예에서, 풀레이트 코덱(22)과 1/2 레이트 코덱(24)은 eX-CELP(extended CELP) 방법에 기초할 수 있고, 1/4 레이트 코덱(26)과 1/8 레이트 코덱(28)은 지각적인 매칭 방법에 기초할 수 있다. eX-CELP 방법은 전통적인 CELP의 지각적인 매칭과 파형매칭 사이의 전통적인 밸런스를 확장시킨다. 특히 eX-CELP 방법은 후술할 타입분류 및 레이트 선택을 이용하여 프레임을 분류한다. 상이한 카테고리의 프레임 내에서는 상이한 인코딩 방법이 이용될 수 있으며, 이것은 상이한 지각적 매칭, 상이한 파형 매칭, 및 상이한 비트 할당을 갖는다. 1/4 레이트 코덱(26)과 1/8 레이트 코덱(28)의 지각적인 매칭 방법은 파형매칭을 사용하지 않는 대신 프레임을 인코딩할 때 지각적인 특징에 집중한다.
eX-CELP 방법 또는 지각적 매칭방법으로 각각의 프레임을 코딩하는 것은 프레임을 복수의 서브프레임으로 분할하는 것에 기초할 수 있다. 서브프레임은 각 코덱(22, 24, 26, 28)에 대한 크기와 수에서 다를 수 있다. 또한 eX-CELP 방법에 대하여, 서브프레임은 각각의 카테고리에 대하여 다를 수 있다. 서브프레임 내에서의 음성 파라미터와 파형은 수개의 예측 및 비예측 스칼라와 벡터 양자화기술에 의해 코딩될 수 있다. 스칼라 양자화에서 음성파라미터와 엘리먼트는 스칼라의 대표적인표 내에서 가장 가까운 엔트리의 지수 위치에 의해 나타낼 수 있다. 벡터 양자화에서는 수개의 음성 파라미터가 그룹화되어 벡터를 형성할 수 있다. 벡터는 벡터의 표시 표에서 가장 근접한 엔트리의 지수 위치에 의해 나타낼 수 있다.
예측 코딩시에, 엘리먼트는 과거로부터 예측될 수 있다. 엘리먼트는 스칼라 또는 벡터일 수 있다. 예측오류는 스칼라의 표(스칼라 양자화) 또는 벡터의 표(벡터 양자화)를 이용하여 양자화될 수 있다. eX-CELP 코딩방법은 전통적인 CELP 방법과 유사하게 수개의 파라미터에 대한 최선의 표시를 선택하기 위해 강력한 ABS 체계를 이용한다. 특히 파라미터는 어댑티브 코드북, 고정 코드북, 및 그들의 대응 게인일 수 있다. ABS 체계는 역예측필터와, 최적의 코드북 엔트리를 선택하기 위한 지각적 가중측정을 이용한다.
음성압축 시스템(10)의 구현 예는 디지털 신호 처리(DSP)칩, 이동통신장치 또는 무선송신 기지국 등의 신호처리 장치에 존재할 수 있다. 신호처리장치는 소스코드로 프로그램될 수 있다. 소스코드는 우선 고정점으로 번역되며, 신호처리장치에 특정한 프로그래밍 언어로 번역된다. 번역된 소스코드는 다운로드되어 신호처리장치에서 실행된다. 소스코드의 일례로 Appendix A와 B와 같은 마이크로피시에 포함된 음성압축 시스템의 실시예에 의해 이용되는 C언어 컴퓨터 프로그램이 있다.
도 2는 도 1에 도시된 인코딩 시스템(12)의 보다 상세한 블록도이다. 인코딩 시스템(12)의 실시예는 도시된 바와 같이 연결되는 선처리 모듈(34), 풀레이트 인코더(36), 1/2 레이트 인코더(38), 1/4 레이트 인코더(40), 및 1/8 레이트 인코더(42)를 포함한다. 레이트 인코더(36, 38, 40, 42)는 초기 프레임처리모듈(44)과 여기처리 모듈(excitation-processing module)(54)을 포함한다.
인코딩 시스템(12)에 의해 수신된 음성신호(18)는 선처리 모듈(34)에 의해 프레임 레벨에서 처리된다. 선처리 모듈(34)은 음성신호(18)의 초기처리를 제공하도록 동작가능하다. 초기처리는 필터링, 신호보강, 노이즈 제거, 증폭 및 후속 인코딩에 대한 음성신호(18)를 최적화할 수 있는 다른 유사한 기술을 포함할 수 있다.
이들 레이트 인코더(36, 38, 40, 42)는 각 레이트 코덱(22, 24, 26, 28)의 인코딩부이다. 초기 프레임 처리모듈(44)은 초기의 프레임 처리, 음성 파라미터 추출을 실행하고, 레이트 인코더(36, 38, 40, 42) 중의 어느 것이 특정 프레임을 인코드할 것인가를 결정한다. 초기 프레임 처리 모듈(44)은 복수의 초기 프레임 처리모듈로 다시 분할된다. 즉, 초기 풀프레임 처리모듈(46), 초기 1/2 프레임 처리모듈(48), 초기 1/4 프레임 처리모듈(50), 및 초기 1/8 프레임 처리모듈(52)로 분할된다. 그러나 초기 프레임 처리모듈(44)은 모든 레이트 인코더(36, 28, 40, 42)에 공통인 처리와, 레이트 인코더(36, 38, 40, 42) 각각에 특정한 특정 처리를 실행해야 한다. 초기 프레임 처리 모듈(44)을 각각의 초기 프레임 처리모듈(46, 48, 50, 52)로 다시 분할한 것은 각각의 레이트 인코더(36, 38 40, 42)에 대응한다.
초기 프레임 처리모듈(44)은 레이트 인코더(36, 38 40, 42) 중의 하나를 활성화시키는 레이트 선택을 결정하기 위해 공통의 처리를 실행한다. 실시예에서, 레이트 선택은 음성신호(18)의 프레임의 특성과 음성압축 시스템(10)이 내부에서 동작하는 모드에 기초한다. 레이트 인코더(36, 38 40, 42) 중 하나의 활성화는 초기프레임 처리 모듈(46, 48, 50, 52)의 하나에 대응하여 활성화된다.
특정 초기 프레임 처리모듈(46, 48, 50, 52)은 전체 프레임에 공통인 음성신호(18)의 특징을 인코드하도록 활성화된다. 초기 프레임 처리 모듈(44)에 의한 인코딩은 하나의 프레임에 포함된 음성신호(18)의 파라미터를 양자화한다. 양자화된 파라미터는 비트스트림의 일부분을 생성한다. 일반적으로 비트스트림은 레이트 인코더(36, 38 40, 42) 중 하나를 통해 인코딩 시스템(12)에 의해 처리되는 음성신호(18)의 프레임의 압축된 표시이다.
레이트 선택에 부가하여 초기 프레임 처리 모듈(44)은 또한 풀레이트 인코더(36) 및 1/2 레이트 인코더(38)에 의해 처리된 각 프레임에 대한 타입분류를 결정하기 위한 처리를 실행한다. 실시예의 타입분류는 프레임에 의해 대표되는 음성신호(18)를 제 1타입(즉, 타입 1) 또는 제2타입(즉, 타입 0)으로 분류한다. 실시예의 타입분류는 음성신호(18)의 특징 및 특성에 따른다. 다른 실시예에서는 부가적인 타입분류와 보강처리가 제공될 수 있다.
타입 1의 분류는 정지 행동을 나타내는 음성신호(18)의 프레임을 포함한다. 정지행동을 보여주는 프레임은 급속하게 변하지 아니하는 하모닉 구조와 포르만트 구조를 포함한다. 다른 모든 프레임은 타입 0분류로 분류될 수 있다. 다른 실시예에서는 부가적인 타입의 분류는 시간-도메인, 주파수 도메인 등에 기초하여 프레임을 부가적인 분류로 나눌 수 있다. 타입분류는 후술하는 바와 같이, 초기 풀레이트 프레임 처리모듈(46)이고 초기 1/2 레이트 프레임 처리모듈(48)에 의한 인코딩을 최적화한다. 또한 타입분류와 레이트 선택 모두 풀레이트 인코더(36) 및 1/2 레이트 인코더(38)에 대응하는 여기처리 모듈(54)의 부분들에 의해 인코딩을 최적화하기 위해 사용될 수 있다.
여기처리 모듈(54)의 실시예는 풀레이트 모듈(56), 1/2 레이트 모듈(58), 1/4 레이트 모듈(60), 및 1/8 레이트 모듈(62)로 다시 분할된다. 이들 레이트 모듈(56, 58, 60, 62)은 도 2에 도시된 바와 같이 레이트 인코더(36, 38 40, 42)에 대응한다. 실시예의 풀레이트 모듈(56) 및 1/2 레이트 모듈(58)은 모두 후술하는 바와 같이 실질적으로 상이한 인코딩을 제공하는 복수의 프레임 처리 모듈과 복수의 서브프레임 처리모듈을 포함한다.
풀레이트 인코더(36)와 1/2 레이트 인코더(38) 모두에 대한 여기처리모듈(54)의 부분은 타입선택기 모듈, 제 1 서브프레임 처리 모듈, 제 2 서브프레임 처리모듈, 제 1 프레임 처리모듈 및 제 2 서브프레임 처리모듈을 포함한다. 보다 구체적으로 풀레이트 모듈(56)은 F타입 선택기 모듈(68), F0 제 1 서브프레임 처리모듈(70), F1 제 1 프레임 처리모듈(72), F1 제 2 서브프레임 처리모듈(74) 및 F1 제 2 프레임 처리모듈(76)을 포함한다. 용어 "F"는 풀레이트를 나타내고, "0"과 "1"은 타입 0과 타입 1을 각각 나타낸다. 유사하게 1/2 레이트 모듈(58)은 H타입 선택기 모듈(78), H0 제 1 서브프레임 처리모듈(80), H1 제 1 프레임 처리모듈(82), H1 제 2 서브프레임 처리모듈(84) 및 H1 제 2 프레임 처리모듈(86)을 포함한다.
F와 H 타입 선택기 모듈(68, 78)은 타입분류에 기초하여 인코딩 처리를 최적화하도록 음성신호(18)의 처리를 명령한다. 타입 1과 같은 분류는 프레임이 정지유성음과 같이 급속하게 변화하지 않는 하모닉 구조와 포르만트 구조를 포함한다. 따라서 타입 1로서 분류된 프레임을 나타내도록 사용되는 비트는 프레임을 나타내는데 있어 이들 특징을 이용하는 인코딩을 용이하게 하도록 할당될 수 있다. 타입 0과 같은 분류는 예컨대 급속하게 변하지 않는 포르만트 구조와 하모닉 구조와 같이 프레임이 비정지 행동을 보여주거나, 또는 프레임이 정지 무성음 또는 노이즈와 같은 특성을 보여줄 수도 있다. 타입 0과 같이 분류된 프레임에 대한 비트할당은 결국 이 행위에 대해 보다 잘 나타내고 설명하도록 조정될 수 있다.
풀레이트 모듈(56)에 있어서, F0 제 1 서브프레임 처리모듈(70)은 처리되는 프레임이 타입 0으로서 분류될 때 비트스트림의 일부를 생성한다. 프레임의 타입 0 분류는 F0 제 1 서브프레임 처리모듈(70)을 활성화시켜 서브프레임 기반에서 프레임을 처리한다. F1 제 1 프레임 처리모듈(72), F1 제 2 서브프레임 처리모듈(74), F1 제 2 프레임 처리모듈(76)은 처리되는 프레임이 타입 1로서 분류될 때 비트스트림의 일부를 발생하도록 결합된다. 타입 1 분류는 풀레이트 모듈(56) 내에서 서브프레임과 프레임 처리를 모두 포함한다.
유사하게, 1/2 레이트 모듈(58)에 있어서, H0 제 1 서브프레임 처리모듈(80)은 처리되는 프레임이 타입 0으로서 분류될 때 서브프레임 기반에 비트스트림의 일부를 생성한다. 또 H1 제1 프레임 처리모듈(82), H1 제2 서브프레임 처리모듈(84), H1 제 2 프레임 처리모듈(86)은 처리되는 프레임이 타입 1로서 분류될 때 비트스트림의 일부를 발생하도록 결합된다. 풀레이트 모듈(56)에서 처럼, 타입 1 분류는 서브프레임과 프레임 처리를 모두 포함한다.
1/4 레이트 모듈(60) 및 1/8 레이트 모듈(62)은 각각 1/4 레이트 인코더(40) 및 1/8 레이트 인코더(42)의 부분이며, 타입분류를 포함하지 않는다. 타입분류는 처리된 프레임의 특성 때문에 포함되지 않는다. 1/4 레이트 모듈(60) 및 1/8 레이트모듈(62)은 활성화되면 각각 서브프레임기반과 프레임 기반으로 비트스트림의 일부를 생성한다.
레이트 모듈(56, 58, 60, 62)은 초기 프레임 처리모듈(46, 48, 50, 52)에 의해 생성된 비트스트림의 각 부분과 조합된 비트스트림의 일부를 생성하여 프레임의 디지털 표시를 생성한다. 예컨대, 초기 풀레이트 처리모듈(46)과 풀레이트모듈(56)에 의해 생성된 비트스트림의 부분은 풀레이트인코더(36)가 프레임을 인코드하도록 활성화될 때 생성된 비트스트림을 형성하도록 조립될 수 있다. 인코더(36, 38, 40, 42) 각각으로부터의 비트스트림은 음성신호(18)의 복수 프레임을 나타내는 비트스트림을 형성하도록 조합될 수 있다. 인코더(36, 38, 40, 42)에 의해 생성된 비트스트림은 디코딩 시스템(16)에 의해 디코드된다.
도 3은 도 1에 도시된 디코딩 시스템(16)의 확장 블록도이다. 디코딩 시스템(16)의 실시예는 풀레이트 디코더(90), 1/2 레이트 디코더(92), 1/4 레이트 디코더(94), 1/8 레이트 디코더(96), 합성 필터 모듈(98) 및 후처리 모듈(100)을 포함한다. 이들 레이트 디코더(90, 92, 94, 96), 합성 필터모듈(98) 및 후처리 모듈(100)은 레이트 코덱(22, 24, 26, 28)의 디코딩부이다.
디코더(90, 92, 94, 96)는 음성신호(18)의 상이한 파라미터를 재구성하도록 비트스트림을 수신하여 디지털 신호로 디코드한다. 디코더(90, 92, 94, 96)는 레이트 선택에 기초하여 각 프레임을 디코드하도록 활성화된다. 레이트 선택은 무선 통신시스템의 제어 채널처럼 별개의 정보전송 메커니즘에 의해 인코딩 시스템(12)으로부터 디코딩 시스템(16)으로 제공될 수 있다. 이 실시예에서, 레이트 선택은 무선 통신시스템 내에서 기지국에 의해 생성된 방송 비이콘 신호(beacon signal)의 부분으로서 이동통신장치에 공급될 수 있다. 일반적으로 방송 비이콘 신호는 기지국과 이동통신장치 사이의 통신을 확립하기 위해 사용되는 식별정보를 제공되도록 생성된다.
합성필터(98)와 후처리 모듈(100)은 디코더(90, 92, 94, 96) 각각에 대한 디코딩처리의 부분이다. 합성필터(98)를 이용하여 디코더(90, 92, 94, 96)에 의해 디코드된 음성신호(18)의 파라미터를 조합하는 것은 합성음성을 발생시킨다. 합성음성은 후처리모듈(100)을 통과하여 후처리 합성음성(20)을 생성한다. 풀레이트 디코더(90)의 실시예는 F타입 선택기(102)와 복수의 재구성 모듈을 포함한다. 여기 재구성 모듈은 F0여기 재구성 모듈(104)과 F1 여기 재구성 모듈(106)을 포함한다. 또한 풀레이트디코더(90)는 선형예측계수(Linear Prediction Coefficient; LPC) 재구성 모듈(107)을 포함한다. LPC 재구성모듈(107)은 F0 LPC 재구성 모둘(108)과 F1 LPC 재구성 모듈(110)을 포함한다.
유사하게 1/2 레이트 디코더(92)의 실시예는 H 타입 선택기(112)와 복수의 여기 재구성 모듈을 포함한다. 여기 재구성 모듈은 H0 여기 재구성 모듈(114)과 H1 여기 재구성 모듈(116)을 포함한다. 또한 1/2 레이트 디코더(92)는 H LPC 재구성 모듈(118)인 LPC 재구성 모듈을 포함한다. 비록 개념상 유사하지만 풀레이트 디코더(90) 및 1/2 레이트 디코더(92)는 대응하는 풀레이트 인코더(36)와 1/2 레이트 인코더(38)로부터의 비트스트림을 각각 디코드하도록 지정되어 있다.
F타입 및 H타입 선택기(102, 112)는 타입분류에 따라 풀레이트 및 1/2 레이트 디코더(90, 92)의 각 부분을 선택적으로 활성화한다. 타입분류가 타입 0이면 F0 여기 재구성 모듈(104) 또는 H0 여기 재구성 모듈(114)이 활성화된다. 반대로 타입분류가 타입 1이면 F1 여기 재구성 모듈(106) 또는 H1 여기 재구성 모듈(116)이 활성화 된다. H LPC 재구성 모듈(118)은 레이트 선택에만 기초하여 활성화된다.
1/4 레이트 디코더(94)는 Q 여기 재구성모듈(120)과 Q LPC 재구성 모듈(122)을 포함한다. 유사하게 1/8 레이트 디코더(96)는 E여기 재구성 모듈(124)과 E LPC 재구성 모듈(126)을 포함한다. 각각의 Q 여기 재구성 모듈(120)이나 E 여기 재구성 모듈(124)과 각각의 Q LPC 재구성 모듈(122)이나 E LPC재구성 모듈(126)은 모두 레이트 선택에만 기초하여 활성화된다.
각각의 여기 재구성 모듈은 활성화될 때 단기 여기라인(128)에서 단기 여기(short-term excitation)를 제공하도록 동작가능하다. 유사하게 각각의 LPC 재구성 모듈은 단기 예측 계수라인(130)에 단기 예측 계수를 발생하도록 동작한다. 단기 여기 및 단기 예측계수는 합성필터(98)에 제공된다. 또한 1실시예에서 단기 예측계수는 도 3에 도시된 바와 같이 후처리 모듈(100)에 제공된다.
후처리 모듈(100)은 필터링, 신호보강, 노이즈 수정, 증폭, 틸트 보정 및 합성음성의 지각적 품질을 개선할 수 있는 다른 유사한 기술을 포함할 수 있다. 후처리 모듈(100)은 합성 음성을 저하시키기 않고 청취가능한 노이즈를 감소시키도록동작가능하다. 청취가능한 노이즈를 감소시키는 것은 합성음성의 포르만트 구조를 강조하거나 합성음성과 지각적으로 무관한 주파수 영역의 노이즈만을 억제함으로써 달성될 수 있다. 청취가능한 노이즈는 보다 낮은 비트레이트에서 보다 현저하게 되기 때문에 후처리 모듈(100)의 실시예는 레이트 선택에 따라 상이하게 합성음성의 후처리를 제공하도록 활성화될 수 있다. 후처리 모듈(100)의 다른 실시예는 레이트 선택에 기초하여 디코더(90, 92, 94, 96)의 상이한 그룹에 상이한 후처리를 제공하도록 동작가능하다.
동작중에 도 2에 도시된 초기 프레임 처리 모듈(44)은 음성 신호를 분석하여 레이트 선택을 결정하고 코덱(22, 24, 26, 28) 중의 하나를 활성화한다. 예컨대 만약 풀레이트 코덱(22)이 레이트 선택에 기초하여 프레임을 처리하도록 활성화되면, 초기 풀레이트 프레임 처리모듈(46)은 프레임에 대한 타입분류를 결정하고 비트스트림의 일부를 생성한다. 타입분류에 기초한 풀레이트 모듈은 프레임에 대한 비트스트림의 나머지를 생성한다.
비트스트림은 레이트 선택에 기초하여 풀레이트디코더(90)에 의해 수신 및 디코드된다. 풀레이트디코더(90)는 인코딩 중에 결정된 타입분류를 이용하여 비트스트림을 디코드한다. 합성필터(98)와 후처리 모듈(100)은 비트스트림으로부터 디코딩된 파라미터를 이용하여 후처리 합성음성(20)을 생성한다. 코덱(22, 24, 26, 28)의 각각에 의해 생성된 비트스트림은 프레임 내에서 음성신호(18)의 상이한 파라미터및/또는 특성을 강조하도록 상당히 다른 비트할당을 포함한다.
1.0 비트할당
도 4, 도 5, 도 6 및 도 7은 각각 풀레이트코덱(22), 1/2 레이트 코덱(24), 1/4 레이트 코덱(26) 및 1/8 레이트 코덱(28)에 대한 비트할당의 실시예를 나타낸 표이다. 비트할당은 초기 프레임처리 모듈(44)에 의해 생성된 비트스트림의 부분과 인코더(36, 38, 40, 42) 각각의 내부에서 여기처리 모듈(54)에 의해 생성된 비트스트림의 부분을 나타낸다. 또한 비트할당은 프레임을 나타내는 비트스트림에서 비트의 수를 나타낸다. 따라서 비트레이트는 코덱(22, 24, 26, 28)에 따라 변화한다. 비트스트림은 인코딩 시스템(12)에 의해 발생하는 대표 비트가 프레임 기반이냐 서브프레임 기반이냐에 따라 제 1 부분과 제 2 부분으로 분류될 수 있다. 후술하는 바와 같이, 비트스트림의 제 1 부분과 제 2 부분은 선택된 코덱(22, 24, 26, 28)에 따라 변화하여 음성신호의 프레임을 인코드 및 디코드한다.
1.1 풀레이트코덱에 대한 비트할당
도 2, 도 3, 및 도 4를 참조하여 풀레이트 코덱(22)을 설명하기로 한다. 도 4를 참조하면 풀레이트 코덱(22)에 대한 비트할당은 라인 스펙트럼 주파수(Line Spectrum Frequency; LSF) 컴포넌트(140), 타입 컴포넌트(142), 어댑티브 코드북 컴포넌트(144), 고정 코드북 컴포넌트(146) 및 게인 컴포넌트(147)를 포함한다. 게인 컴포넌트(147)는 어댑티브 코드북 컴포넌트(148) 및 고정 코드북 게인 컴포넌트(150)를 포함한다. 비트스트림 할당은 타입 0컬럼(152)과 타입 1 컬럼(154)에 의해 규정된다. 타입 0 및 타입 1 컬럼(152, 154)은 이미 설명한 바와 같이 타입분류에 기초하여 비트스트림 내의 비트 할당을 나타낸다. 실시예에서 타입 0 컬럼(152) 및 타입 1 컬럼(154)은 모두 각각 5밀리초의 4개의 서브프레임을이용하여 음성신호(18)를 처리한다.
도 2에 도시된 초기 풀 프레임 처리모듈(46)은 LSF 컴포넌트(140)를 생성한다. LSF 컴포넌트(140)는 단기 예측자 파라미터(short-term predictor parameter)에 기초하여 생성된다. 단기 예측자 파라미터는 복수의 라인 스텍트럼 주파수(LSF)으로 변환된다. LSF는 프레임의 스펙트럼 포락선(spectral envelope)을 나타낸다. 또한 이전 프레임의 LSF로부터 예측된 복수의 LSF가 결정된다. 예측된 LSF는 LSF로부터 제거되어 LSF 예측 오류를 생성한다. 실시예에서, LSF 예측오류는 10개 파라미터의 벡터를 포함한다. LSF 예측오류는 예측된 LSF와 결합하여 복수의 양자화된 LSF를 생성한다. 양자화된 LSF는 보간 및 변환되어 후술하는 바와 같이 각각의 서브프레임에 대하여 복수의 양자화된 LPC 계수 Aq(z)를 형성한다. 또한 LSF 예측오류는 디코딩 시스템(16)에 전송되는 LSF 컴포넌트(14)를 생성하도록 양자화된다.
비트스트림이 디코딩 시스템(16)에서 수신되면, LSF 컴포넌트(140)는 양자화된 LSF 예측오류를 나타내는 양자화된 벡터를 위치시키도록 사용된다. 양자화된 LSF 예측오류는 예측된 LSF에 부가되어 양자화된 LSF를 생성한다. 예측된 LSF는 인코딩 시스템(12)과 유사한 디코딩 시스템(16) 내의 이전 프레임의 LSF로부터 결정된다. 최종적으로 양자화된 LSF는 미리 결정된 가중(weighting)을 이용하여 각각의 서브프레임에 대하여 보간될 수 있다. 미리 결정된 가중은 고정되거나 가변적일 수 있는 보간경로(interpolation path)를 정의한다. 보간경로는 이전 프레임의 양자화된 LSF와 현재 프레임의 양자화된 LSF 사이에 있다. 보간경로는 현재 프레임 내의 각 서브프레임에 대하여 스펙트럼 포락선 표시(spectral envelope representation)를 제공하기 위해 사용될 수 있다.
타입 0으로서 분류된 프레임에 대하여, LSF 컴포넌트(140)의 실시예는 도 4에 도시된 바와 같은 보간 엘리먼트(158)와 복수의 스테이지(156)를 이용하여 인코드된다. 스테이지(156)는 하나의 프레임에 대하여 LSF 컴포넌트(140)를 코딩하기 위해 사용되는 LSF 예측오류를 나타낸다. 보간 엘리먼트(158)는 이전 프레임의 양자화된 LSF와 현재 처리되는 프레임의 양자화된 LSF 사이의 복수의 보간경로를 제공하기 위해 사용될 수 있다. 일반적으로 보간 엘리먼트(158)는 디코딩 중에 LSF의 윤곽 내에서의 선택가능한 조정을 나타낸다. 선택가능한 조정은 타입 0으로서 분류된 프레임의 비정지 스펙트럼 특성에 기인하여 사용될 수 있다. 타입 0으로서 분류된 프레임에 대하여, LSF 컴포넌트(140)는 스테이지(156)와 이러한 프레임의 정지 스펙트럼 특성에 기인한 미리 결정된 선형 보간경로만을 이용하여 인코딩될 수 있다.
LSF 컴포넌트(140)의 실시예는 타입 0으로 분류된 프레임에 대한 보간 엘리먼트(158)를 인코드하기 위한 2비트를 포함한다. 비트는 특정 보간경로를 식별한다. 보간경로의 각각은 각각의 서브프레임에 대한 이전 양자화된 LSF의 가중치와 현재 양자화된 LSF의 가중치를 조정한다. 보간경로의 선택은 후속 서브프레임간의 스펙트럼 포락선 내의 변화의 정도에 기초하여 결정될 수 있다. 예컨대, 프레임의 중간에 스펙트럼 포락선의 실제적인 변화가 존재한다면 보간 엘리먼트(158)는 이전 프레임으로부터 양자화된 LSF의 영향을 감소시키는 보간경로를 선택한다. 보간 엘리먼트(158)의 실시예는 각각의 서브프레임에 대하여 4개의 상이한 보간경로 중의하나를 나타낼 수 있다.
예측된 LSF는 복수의 이동 평균 예측자 계수를 이용하여 생성될 수 있다. 예측자 계수는 과거 프레임의 얼마나 많은 LSF가 현재 프레임의 LSF를 예측하기 위해 사용되는지를 결정한다. 풀레이트 코덱(22) 내의 예측자 계수는 LSF 예측자 계수표를 이용한다. 표는 일반적으로 다음의 매트릭스로 나타낼 수 있다.
실시예에서, m은 2이고 n은 10이다. 따라서 예측 차수는 2이고, 2개 벡터의 예측자 계수가 있으며, 각각은 10개의 엘리먼트를 포함한다. LSF 예측자 계수표에 대한 실시예는 "Float64B_85k"라는 제목으로, 첨부의 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
일단 예측된 LSF가 결정되면, LSF 예측오류는 실제의 LSF를 이용하여 계산될 수 있다. LSF 예측오류는 완전한 크기의 멀티스테이지 양자화기를 이용하여 양자화될 수 있다. 복수의 양자화 벡터를 포함하는 LSF 예측오류 양자화표는 멀티스테이지 양자화기와 함께 사용될 수 있는 각각의 스테이지(156)를 나타낸다. 멀티스테이지 양자화기는 각 스테이지(156)에 대하여 LSF 컴포넌트(140)의 일부를 결정한다. 삭제검색법(pruned search approach)은 각 스테이지로부터 기대할 수 있는 양자화된 벡터후보를 결정한다. 모든 스테이지에 대한 후보의 결정시에 각 스테이지에 대한 최적의 양자화 벡터를 선택하는 결정이 동시에 발생한다.
제 1 스테이지에서, 멀티스테이지 양자화기는 제 1 스테이지 양자화 오류에 대한 복수의 후보를 결정한다. 제 1 스테이지 양자화오류에 대한 후보는 LSF 예측오류와 제 1 스테이지 내에 위치한 가장 밀접한 매칭 양자화 벡터 사이에서 차이가 있다. 멀티스테이지 양자화기는 제 1 스테이지 양자화 오류에 대한 후보와 가장 잘 부합하는 제 2 스테이지 내의 양자화 벡터를 식별함으로써 제 2 스테이지 양자화오류에 대한 복수의 후보를 결정한다. 각각의 스테이지에 대하여 반복적으로 처리가 완료되며, 기대되는 후보는 각각의 스테이지로부터 유지된다. 각각의 스테이지에 대한 최선의 표시 양자화벡터의 최종선택은 모든 스테이지에 대하여 후보가 결정될 때 동시에 발생한다. LSF 컴포넌트(140)는 각 스테이지로부터의 가장 밀접한 매칭 양자화 벡터의 지수 위치를 포함한다. LSF 컴포넌트(140)의 실시예는 스테이지(156) 내의 지수 위치를 인코드하기 위한 25비트를 포함한다. 양자화 방법에 대한 LSF 예측오류 양자화표는 일반적으로 다음의 매트릭스로 나타낼 수 있다.
타입 0과 타입 1 분류에 대한 양자화표의 실시예는 각각의 양자화 벡터가 10개의 엘리먼트(N=10)로 표시되는 4개의 스테이지(J=4)를 이용한다. 본 실시예의 스테이지(156)는 스테이지 하나에 대하여 128개의 양자화 벡터(r=128), , 나머지 스테이지(156)에 대하여 64개의 양자화 벡터(s=64)를 포함한다. 따라서 스테이지(156) 내의 양자화 벡터의 지수 위치는 128개의 양자화 벡터를 포함하는 스테이지(156) 중 하나에 대한 7비트를 이용하여 인코드될 수 있다. 또한 64개 양자화 벡터를 포함하는 스테이지(156)의 각각에 대한 지수 위치는 6비트를 이용하여 인코드될 수 있다. 타입 0과 타입 1 분류에 대하여 사용된 LF 예측 오류 양자화표의 실시예는 "Float64 CBes_85k"라는 제목으로 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
디코딩 시스템(16) 내에서 풀레이트 디코더(90)의 F0 또는 F1 LPC 재구성 모듈(108, 110)은 도 3에 도시된 바와 같이 비트스트림으로부터 LSF 컴포넌트(140)를 취득한다. LSF 컴포넌트(140)는 이미 설명한 바와 같이 양자화된 LSF를 재구성하도록 사용될 수 있다. LSF 컴포넌트(140)는 이미 설명된 바와 같이 양자화된 LSF를 재구성하도록 사용될 수 있다. 양자화된 LSF는 현재 프레임의 각 서브프레임에 대하여 선형예측 코딩계수를 형성하도록 보간 및 변환된다.
타입 0분류에 대하여, 재구성은 F0 LPC 재구성 모듈(108)에 의해 실행될 수 있다. 재구성은 예측된 LSF를 결정하고, 양자화된 LSF 예측오류를 디코딩하며, 양자화된 LSF를 재구성하는 것을 포함한다. 또한 양자화된 LSF는 식별된 보간경로를 이용하여 보간될 수 있다. 이미 설명한 바와 같이 4개의 보간경로 중 하나는 LSF컴포넌트(140)의 일부를 형성하는 보간 엘리먼트(158)에 의해 F0 LPC 재구성 모듈(108)로 식별된다. 타입 1 분류의 재구성은 미리 결정된 선형 보간경로와 F1 LPC 재구성 모듈(110)에 의한 LSF 예측오류 양자표의 이용을 포함한다. LSF 컴포넌트(140)는 타입 0분류 및 타입 1 분류에서 프레임 기반으로 인코드되기 때문에 비트스트림의 제 1 부분의 일부분을 형성한다.
타입 컴포넌트(142)는 또한 비트스트림의 제 1 부분의 일부분을 형성한다. 도 2에 도시된 바와 같이, F 타입 선택기 모듈(68)은 특정 프레임의 타입분류를 나타내도록 타입 컴포넌트(142)를 생성한다. 이제 도 3을 참조하면 풀레이트디코더(90) 내의 F타입 선택기 모듈(102)은 비트스트림으로부터 타입 컴포넌트(142)를 수신한다.
어댑티브 코드북 컴포넌트(adaptive codebook component)(144)의 실시예는 개방루프 어댑티브 코드북컴포넌트(144a) 또는 폐루프 어댑티브 코드북 컴포넌트(144b)일 수 있다. 개방루프 또는 폐루프 어댑티브 코드북 컴포넌트(144a, 144b)는 도 2에 도시된 바와 같이 초기 풀프레임 처리 모듈(46) 또는 F0 제 1 서브프레임 처리모듈(70)에 의해 각각 생성된다. 개방루프 어댑티브 코드북 컴포넌트(144a)는 프레임이 타입 0으로 분류될 때 비트스트림 내의 폐루프 어댑티브 코드북 컴포넌트(144b)로 대체될 수 있다. 일반적으로 개방루프의 지정은 ABS를 포함하지 않는 프레임 기반으로 처리하는 것을 말한다. 폐루프 처리는 서브프레임기반으로 실행되며 ABS를 포함한다.
음성신호(18)의 주기성에 기초한 피치래그(pitch lag)를 인코딩하는 것은 어댑티브 코드북 컴포넌트(144)를 생성한다. 개방루프 어댑티브 코드북 컴포넌트(144a)는 하나의 프레임에 대하여 생성되지만 폐루프 어댑티브어댑티브 컴포넌트(144b)는 서브프레임을 기초로 생성된다. 따라서 개방루프 어댑티브 코드북컴포넌트(144a)는 비트스트림의 제 1 부분의 일부분이고 폐루프 어댑티브 코드북 컴포넌트(144b)는 비트스트림의 제 2 부분의 일부분이다. 도 4에 도시된 바와 같은 1실시예에서, 개방루프 어댑티브 코드북컴포넌트(144a)는 8비트를 포함하고, 폐루프 어댑티브코드북 컴포넌트(144b)는 26비트를 포함한다. 개방루프 어댑티브코드북 컴포넌트(144a)와 폐루프 어댑티브코드북 컴포넌트(144b)는 후술하는 어댑티브 코드북벡터를 이용하여 생성될 수 있다. 도 3을 참조하면 디코딩 시스템(16)은 개방루프 또는 폐루프 어댑티브코드북 컴포넌트(144a 또는 144b)를 수신한다. 개방루프 또는 폐루프 어댑티브 코드북 컴포넌트(144a 또는 144b)는 F0 또는 F1 여기 재구성 모듈(104 또는 106)에 의해 각각 디코딩된다.
고정 코드북 컴포넌트(146)의 실시예는 타입 0 고정 코드북 컴포넌트(146a) 또는 타입 1 고정 코드북 컴포넌트(146b)일 수 있다. 타입 0 고정 코드북컴포넌트(146a)는 도 2에 도시된 바와 같이 F0 제 1 서브프레임처리 모듈(70)에 의해 생성된다. F1 서브프레임처리모듈(72)은 타입 1 고정 코드북컴포넌트(146b)를 생성한다. 타입 0 또는 타입 1 고정 코드북 컴포넌트(146a 또는 146b)는 고정 코드북 벡터와 후술하는 서브프레임 기반의 분석에 의한 합성을 이용하여 생성된다. 고정 코드북 컴포넌트(146)는 n펄스 코드북을 이용하여 서브프레임의 장기오차를 나타내며, 여기에서 n은 코드북 내의 펄스의 수이다.
이제 도 4를 참조하면 실시예의 타입 0 고정 코드북 컴포넌트(146a)는 서브프레임 당 22비트를 포함한다. 타입 0 고정 코드북컴포넌트(146a)는 복수의 n펄스 코드북, 코드북 내의 펄스 위치, 및 펄스위치에 대응하는 대표펄스(양 "n")의 부호 중 하나의 식별을 포함한다. 실시예에서 2비트까지는 3개의 n펄스 코드북 중 어느 것이 인코드된 것인지를 나타낸다. 특히 2비트 중 첫비트는 "1"로 설정되어 3개의 n펄스 코드북 중 첫 번째 것이 사용되었음을 나타낸다. 만약 첫비트가 "0"으로 설정되면 2비트의 두 번째 것은 3개의 n펄스 코드북 중 두 번째 또는 세 번째 것이 사용되었음을 나타낸다. 따라서 예시의 실시예에서 3개의 n펄스 코드북 중 첫 번째 것은 펄스위치와 부호를 나타내도록 21비트를 가지며, 두 번째와 세 번째 것은 20비트를 갖는다.
n펄스 코드북 중 하나의 내부에 있는 대표적인 펄스의 각각은 대응하는 트랙을 포함한다. 트랙은 서브프레임 내의 샘플 위치의 리스트이며, 여기에서 리스트 내의 각 샘플위치는 펄스위치 중의 하나이다. 인코드된 서브프레임은 복수의 샘플위치로 분할될 수 있으며, 여기에서 각 샘플의 위치는 샘플값을 포함한다. 대응하는 대표펄스의 트랙은 서브프레임으로부터 샘플위치의 부분만을 리스트화한 것이다. n펄스 코드북 중 하나 내에서 대표펄스의 각각은 대응 트랙 내의 하나의 펄스위치로 나타낼 수 있다.
동작중에 각각의 대표펄스는 대응하는 트랙 내의 각 펄스위치에 순차적으로 위치된다. 대표펄스는 ABS를 이용하여 서브프레임의 샘플위치 내의 샘플값과 비교될 수 있는 신호로 변환된다. 대표펄스는 펄스위치의 샘플위치보다 늦은 시간에 있는 샘플위치의 샘플값과 비교된다. 대표펄스와 시간상 늦은 샘플값 사이의 차이를 최소화하는 펄스위치는 타입 0 고정 코드북 컴포넌트(146a)의 일부를 형성한다. 선택된 n펄스 코드북 내의 대표펄스의 각각은 타입 0 고정 코드북 컴포넌트(146a)의 일부를 형성하는 대응 펄스위치로 표현될 수 있다. 트랙은 다음의 매트릭스로 일반적으로 표현될 수 있는 트랙의 표에 포함된다.
트랙 표의 실시예는 첨부된 마이크로피시 첨부물의 Appendix B에 포함된 "track.tab"란 제목 안에 "static short track_5_4_0", "static short track_5_3_2" 및 "static short track_5_3_1"이란 제목의 표이다.
도 4에 도시된 예시의 실시예에서 n펄스 코드북은 3개의 5펄스 코드북(160)이며, 여기에서 3개의 5펄스 코드북(160) 중 첫 번째 것은 5개의 대표펄스를 포함한다. 그러므로 n=5이다. 제 1 대표펄스는 서브프레임 내에 40개의 샘플위치중 16개(f=16)를 포함하는 트랙을 갖는다. 3개의 5펄스 코드북(160) 중 첫 번째 것으로부터의 제 1 대표펄스는 샘플위치 내의 샘플값과 비교된다. 제 1 대표펄스와 관련된 트랙내에 존재하는 샘플위치의 하나는 4비트를 이용하는 펄스위치로서 식별된다. 트랙내에서 식별된 샘플위치는 이미 설명한 바와 같이 시간상 늦은 샘플값과 제 1 대표값 사이의 차이을 최소화하는 서브프레임 내의 샘플위치이다. 트랙 내의펄스위치의 식별은 타입 0 고정 코드북 컴포넌트(146a)의 일부를 형성한다.
이 예시의 실시예에서, 제 2 및 제 4 대표펄스는 16개의 샘플 위치(g와 i가 16)를 갖는 대응트랙을 가지며, 제 3 및 제 5 대표펄스는 8개의 샘플위치(h와 j가 8)를 갖는 대응트랙을 갖는다. 따라서 제 2 및 제 4 대표펄스에 대한 펄스위치는 4비트를 이용하여 식별되고, 제 3 및 제 5 대표펄스에 대한 펄스위치는 3비트를 이용하여 식별된다. 결국, 5펄스 코드북(160)의 첫 번째 것에 대한 타입 0 고정 코드북 컴포넌트(146a)는 펄스위치를 식별하기 위한 18비트를 포함한다.
식별된 펄스위치 내에서 대표펄스의 부호는 또한 타입 0 고정 코드북컴포넌트(146a) 내에서 식별될 수 있다. 예시의 실시예에서, 1비트는 제 1 대표펄스에 대한 부호를 나타내며, 1비트는 제 3 및 제 5 대표펄스에 대한 합성부호를 나타낸다. 합성부호는 펄스위치내의 리던던시 정보를 사용하여 단일비트를 갖는 2개의 분명한 부호를 송신한다. 따라서 3개의 5펄스 코드북(160) 중 첫 번째 것에 대한 타입 0 고정 코드북 컴포넌트(146a)는 총 21비트에 대하여 부호지정을 위해 3비트를 포함한다.
예시의 실시예에서, 3개의 5펄스 코드북(160) 중 두 번째와 세 번째 것은 또한 5개의 대표펄스(n=5)를 포함하며, 트랙 표 내의 각 트랙은 8개의 샘플위치(f, g, h, i, j=8)를 포함한다. 따라서 3개의 5펄스 코드북(160) 중 두 번째 것과 세 번째 것에서의 대표펄스의 각각에 대한 펄스위치는 3비트를 이용하여 식별된다. 또한 이 예시의 실시예에서 각 펄스위치에 대한 부호는 1비트를 이용하여 식별된다.
타입 1로서 분류된 프레임에 대하여, 예시의 실시예에서 n펄스 코드북은 8펄스 코드북(162)(n=8)이다. 8펄스 코드북(162)은 타입 1 고정 코드북컴포넌트(146b)의 실시예를 생성하도록 서브프레임 당 30비트를 이용하여 인코딩된다. 30비트는 타입 0분류에서 처럼 트랙을 이용하여 펄스위치를 식별하는 26비트와 부호를 식별하는 4비트를 포함한다. 트랙표의 실시예는 첨부된 마이크로피시 첨부물의 Appendix B에 포함된 "track.tab"란 제목의 라이브러리에 포함된 "static INT 16 track_8_4_0"란 제목의 표이다.
예시의 실시예에서, 제 1 및 제 5 대표펄스와 관련된 트랙은 4비트를 이용하여 인코드된 16개의 샘플 위치를 포함한다. 나머지 대표펄스와 관련된 트랙은 3비트를 이용하여 인코드된 8개의 샘플위치를 포함한다. 제 1 및 제 5 대표펄스, 제 2 및 제 6 대표펄스, 제 3 및 제 7 대표펄스 및 제 4 및 제 8 대표펄스는 각각의 대표펄스 모두에 대하여 합성된 부호를 이용한다. 도 3에 도시된 바와 같이, 비트스트림이 디코딩 시스템(16)에 의해 수신되면, F0 또는 F1 여기 재구성 모듈(104, 또는 106)은 트랙의 펄스위치를 디코드한다. 트랙의 펄스위치는 3개의 5펄스 코드북(160) 또는 8펄스 코드북(162) 중 하나에 대하여 F0 또는 F1 여기 재구성모듈(104 또는 106)에 의해 각각 디코드된다. 고정 코드북컴포넌트(146)는 서브프레임 기반으로 생성되기 때문에 비트스트림의 제 2 부분의 일부분이다.
다시 도 4를 참조하면, 게인 컴포넌트(147)는 일반적으로 어댑티브 및 코드북 게인을 나타낸다. 타입 0 분류에 대하여, 게인 컴포넌트(147)는 어댑티브및 고정 코드북게인을 나타내는 타입 0 어댑티브및 고정 코드북 게인 컴포넌트(148a, 150a)이다. 타입 0 어댑티브 및 고정 코드북 게인 컴포넌트(148a, 150a)는 서브프레임기반으로 인코드되기 때문에 비트스트림의 제 2 부분의 일부이다. 도 2에 도시된 바와 같이, 타입 0 어댑티브및 고정 코드북 게인 컴포넌트(148a, 150a)는 F0 제 1 서브프레임 처리모듈(70)에 의해 생성된다.
타입 0으로 분류된 프레임의 각 서브프레임에 대하여 어댑티브및 고정 코드북 게인은 2차원의 벡터 양자화기(2D VQ)(164)에 의해 결합 코딩되어 타입 0 어댑티브 및 고정 코드북 게인 컴포넌트(148a, 150a)를 생성한다. 실시예에서, 양자화는 고정 코드북 게인을 데시벨(dB)의 단위로 고정 코드북에너지로 번역하는 것을 포함한다. 또한 예측된 고정 코드북 에너지는 이전 프레임의 양자화된 고정 코드북 에너지 값으로부터 생성될 수 있다. 예측된 고정 코드북 에너지는 복수의 고정 코드북 예측자 계수를 이용하여 유도될 수 있다.
LSF 예측자 계수와 유사하게 고정 코드북 예측자 계수는 과거 프레임의 얼마나 많은 고정 코드북에너지가 현재 프레임의 고정 코드북에너지를 예측하기 위해 사용될 수 있는지를 결정한다. 예측된 고정 코드북 에너지는 고정 코드북에너지로부터 제거되어 예측 고정 코드북에너지 오류를 생성한다. 각 서브프레임에 대한 이전 프레임과 현재 프레임의 가중치를 조정함으로써 예측된 고정 코드북 에너지는 예측 고정 코드북오류를 최소화하도록 계산될 수 있다.
예측 고정 코드북 에너지 오류는 2차원 벡터를 형성하도록 어댑티브 코드북으로 그룹화된다. 후술하는 바와 같이 예측 고정 코드북 에너지 오류와 어댑티브 코드북게인의 양자화 다음에 2차원 벡터가 양자화된 게인 벡터(g ac)로서 언급될 수 있다. 2차원 벡터는 2D 게인 양자화표에서 복수의 미리 결정된 벡터에 비교된다.지수 위치는 그것이 2차원 벡터를 가장 잘 나타내는 미리 결정된 벡터의 2D 게인 양자화 표 내의 위치인 것으로 식별된다. 지수 위치는 서브프레임에 대한 어댑티브 및 고정 코드북 게인 컴포넌트(148a, 150a)이다. 프레임에 대한 어댑티브및 고정 코드북 게인 컴포넌트(148a, 150a)는 서브프레임의 각각에 대해 식별된 지수를 나타낸다.
미리 결정된 벡터는 2개의 엘리먼트를 포함하며, 그 하나는 어댑티브코드북게인을 나타내고, 다른 하나는 예측 고정 코드북 에너지 오류를 나타낸다. 2D게인 양자화표는 일반적으로 표 4로 나타낸다.
실시예의 2차원 벡터 양자화기(2D VQ)(164)는 128 양자화 벡터(n=128) 중 하나의 지수 위치를 식별하도록 서브프레임당 7비트를 이용한다. 2D 게인 양자화표의 실시예는 "Float64 gain VQ_2_128_8_5"라는 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
타입 1로서 분류된 프레임에 있어서 타입 1 어댑티브코드북 게인 컴포넌트(148b)는 도 2에 도시된 바와 같은 F1 제 1 프레임 처리모듈(72)에 의해 생성된다. 유사하게, F1 제 2 프레임 처리모듈(76)은 타입 1 고정 코드북 게인 컴포넌트(150b)를 생성한다. 타입 1 어댑티브 코드북 게인 컴포넌트(148b)와 타입 1고정 코드북 게인 컴포넌트(150b)는 프레임을 기초로 발생하여 비트스트림의 제 1 부분을 형성한다.
다시 도 4를 참조하면, 타입 1 어댑티브 코드북 게인 컴포넌트(148b)는 실시예에서 4차원 프리벡터 양자화기(4D pre VQ)(166)인 다차원 벡터 양자화기를 이용하여 생성된다. 용어 "프리(pre)"는 실시예에서 프레임 내의 모든 서브프레임에 대한 어댑티브 코드북 게인이 어떤 서브프레임에 대한 고정 코드북 내의 조사에 앞서 양자화되는 것을 강조하기 위해 사용된다. 다른 실시예에서 다차원 양자화기는 n개의 서브프레임에 대한 벡터를 양자화하는 n차원 벡터 양자화기이며, 여기에서 n은 서브프레임의 임의의 수이다.
4차원 프리 벡터 양자화기(4D pre VQ)(166)에 의해 양자화된 벡터는 서브프레임의 각각으로부터 어댑티브코드북 게인의 각각을 나타내는 엘리먼트를 갖는 어댑티브 코드북 게인 벡터이다. 후술하는 바와 같이, 양자화 다음에 어댑티브 코드북 게인 벡터는 또한 양자화된 피치 게인(g k a)으로서 언급될 수 있다. 어댑티브 코드북 게인 컴포넌트(148b)를 생성시키기 위한 어댑티브 코드북게인 벡터의 양자화는 프리-게인(pre-gain) 양자화표 내에서의 검색에 의해 실행된다. 프리-게인 양자화 표는 어댑티브코드북 게인 벡터를 가장 잘 나타내는 복수의 미리 결정된 벡터를 식별하기 위해 검색될 수 있는 복수의 미리 결정된 벡터를 포함한다. 프리-게인 양자화표 내의 식별된 미리 결정된 벡터의 지수 위치는 타입 1 어댑티브 코드북 컴포넌트(148b)이다. 실시예의 어댑티브 코드북 게인 컴포넌트(148b)는 6비트를 포함한다.
실시예에서 미리 결정된 벡터는 각각의 서브프레임에 대하여 1 엘리먼트, 4개의 엘리먼트를 포함한다. 따라서 프리-게인 양자화표는 일반적으로 다음의 표 5와 같이 표현된다.
프리-게인 양자화표의 1실시예는 64개의 미리 결정된 벡터(n=64)를 포함한다. 프리-게인 양자화표의 실시예는 "Float64 gp4_tab"이라는 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
타입 1 고정 코드북 게인 컴포넌트(150b)는 n개의 서브프레임에 대한 다차원 벡터 양자화기를 이용하여 유사하게 인코딩될 수 있다. 실시예에서, 다차원 벡터 양자화기는 4차원 지연 벡터 양자화기(4D delayed VQ)(168)이다. 용어 "지연(delayed)"은 서브프레임에 대한 고정 코드북게인의 양자화가 모든 서브프레임에 대한 고정 코드북을 검색한 후에만 발생한다는 것을 강조한다. 도 2를 참조하면, F1 제 2 프레임 처리모듈(76)은 각각의 서브프레임에 대한 고정 코드북 게인을 결정한다. 고정 코드북게인은 전체 프레임이 처리될 때까지 서브프레임에 대해 발생된 제 1 버퍼링 파라미터에 의해 결정될 수 있다. 프레임이 처리되면 모든 서브프레임에 대한 고정 코드북 게인은 타입 1 고정 코드북 게인 컴포넌트(150b)를 생성하도록 버퍼링된 파라미터를 이용하여 양자화된다. 실시예에서 타입 1 고정 코드북 게인 컴포넌트(150b)는 도 4에 도시된 바와 같이 10비트를 포함한다.
타입 1 고정 코드북 게인 컴포넌트(150b)는 복수의 고정 코드북 에너지에 의해 데시벨(dB)의 단위로 고정 코드북 게인을 나타냄으로써 생성된다. 고정 코드북 에너지는 복수의 양자화된 코드북에너지를 생성하도록 양자화되며, 이들은 복수의 양자화된 고정 코드북 게인을 생성하도록 번역된다. 또한 고정 코드북 에너지는 이전 프레임의 양자화된 고정 코드북게인 에너지 오류로부터 예측되어 복수의 예측 고정 코드북 에너지를 생성한다. 예측 고정 코드북 에너지와 고정 코드북 에너지 사이의 차이는 복수의 예측 고정 코드북 에너지 오류이다. 실시예에서 상이한 예측계수는 예측 고정 코드북 에너지를 생성하도록 4개의 서브프레임 각각에 대하여 사용될 수 있다. 이 예시의 실시예에서 제 1 내지 제 4 서브프레임의 예측 고정 코드북 에너지는 이전 프레임의 4개의 양자화된 고정 코드북 에너지 오류로부터 예측된다. 이 예시의 실시예의 제 1 내지 제 4 서브프레임에 대한 예측계수는 각각 {0.7, 0.6, 0.4, 0.2}, {0.4, 0.2, 0.1, 0.05}, {0.3, 0.2, 0.075, 0.025}, 및 {0.2, 0.075, 0.025, 0.0}이다.
예측 고정 코드북 에너지 오류는 양자화될 때 고정 코드북게인 벡터를 형성하도록 그룹화될 수 있으며, 양자화된 고정 코드북게인(g k c)으로서 언급될 수 있다. 실시예에서 각각의 서브프레임에 대한 예측 고정 코드북 에너지 오류는 벡터 내에서 엘리먼트를 나타낸다. 예측 고정 코드북 에너지 오류는 지연된 게인 양자화 표에서 복수의 미리 결정된 벡터를 이용하여 양자화된다. 양자화 중에 지각적인 가중측정은 양자화 오류를 최소화하도록 통합될 수 있다. 지연 게인 양자화표에서 미리 결정된 벡터를 식별하는 지수 위치는 프레임에 대한 고정 코드북게인 컴포넌트(150b)이다.
실시예의 지연된 게인 양자화 표의 미리결정된 벡터는 4개의 엘리먼트를 포함한다. 따라서 지연된 게인 양자화표는 이미 설명된 표 5로 나타낼 수 있다. 지연 게인 양자화표의 실시예는 1024개의 미리 결정된 벡터(n=124)를 포함한다. 지연된 게인 양자화표의 실시예는 "Float64 gainVQ_4_1024"란 제목이 부여되어 첨부된 마이크로피시의 첨부물 Appendix B에 포함되어 있다.
다시 도 3을 참조하면, 고정 및 어댑티브 코드북게인 컴포넌트(148, 150)는 타입분류에 기초하여 디코딩 시스템(16)내의 풀레이트 디코더(90)에 의해 디코드될 수 있다. F0 여기 재구성 모듈(104)은 타입 0 어댑티브 및 고정 코드북 게인 컴포넌트(148a, 150a)를 디코드한다. 유사하게, 타입 1 어댑티브코드북 게인 컴포넌트(148b) 및 타입 1 고정 게인 컴포넌트(150b)는 F1 여기 재구성 모듈(106)에 의해 디코드된다.
고정 및 어댑티브 코드북 게인 컴포넌트(158, 160)의 디코딩은 이미 설명된 바와 같이 풀레이트 디코더(90)에 의해 각각의 예측 게인의 생성을 포함한다. 각각의 양자화표로부터 각각의 양자화된 벡터는 각각의 지수 위치를 이용하여 위치가 결정된다. 각각의 양자화된 벡터는 각각의 양자화된 코드북 게인을 생성하도록 각각의 예측게인과 조합된다. 타입 0 고정 및 어댑티브 게인 컴포넌트(148a, 150a)로부터 생성된 양자화된 코드북 게인은 서브프레임에 대한 고정 및 어댑티브 코드북 게인 모두에 대한 값을 나타낸다. 타입 1 어댑티브 코드북 게인 컴포넌트(148b)와 타입 1 고정 코드북 게인 컴포넌트(150b)로부터 생성된 양자화된 코드북 게인은 프레임의 각 서브프레임에 대한 고정 및 어댑티브 코드북 게인에 대한 값을 나타낸다.
1.2 1/2 레이트 코덱에 대한 비트할당
이제 도 2, 도 3 및 도 5를 참조하여, 1/2 레이트 코덱(24)의 1/2 레이트비트스트림을 설명하기로 한다. 1/2 레이트코덱(24)은 많은 점에서 풀레이트 코덱(22)과 유사하지만 상이한 비트할당을 갖는다. 설명의 간략화를 위해 차이점에 대해서만 집중적으로 설명하기로 한다. 도 5를 참조하면 1/2 레이트 코덱(24) 실시예의 비트스트림의 할당은 라인스펙트럼 주파수(Line Spectrum Frequency; LSF) 컴포넌트(172), 타입 컴포넌트(174), 어댑티브코드북 컴포넌트(176), 고정 코드북 컴포넌트(178), 및 게인 컴포넌트(179)를 포함한다. 게인 컴포넌트(179)는 추가로 어댑티브 코드북 게인 컴포넌트(180) 및 고정 코드북 게인 컴포넌트(182)를 포함한다. 1/2 레이트 코덱(24)의 비트스트림은 타입 0 컬럼(184)과 타입 1 컬럼(186)에 의해 정의된다. 실시예에서 타입 0 컬럼(184)은 10밀리초의 2개 서브프레임을 이용하며, 이들 각각은 80개의 샘플을 포함한다. 실시예 중 타입 1 컬럼(186)은 3개의 서브프레임을 이용하며, 여기에서 제 1 및 제 2 서브프레임은 53개의 샘플을 포함하며, 제 3 서브프레임은 54개의 샘플을 포함한다.
비록 풀레이트 코덱(22)과 유사하게 생성되었지만 LSF 컴포넌트(172)는 타입0 및 타입 1 분류 모두에 대하여 복수의 스테이지와 하나의 예측자 스위치(190)를 포함한다. 또한 LSF 컴포넌트(172)의 1실시예는 비트스트림의 제 1 부분의 일부분을 형성하는 21비트를 포함한다. 도 2에 도시된 초기 1/2프레임 처리모듈(48)은 풀레이트 코덱(22)과 유사한 LSF 컴포넌트(172)를 생성한다. 다시 도 5를 참조하면 1실시예의 1/2 레이트 코덱(24)은 3개의 스테이지, 즉 128벡터 2개와 64벡터 1개의 스테이지를 포함한다. 1/2 레이트 코덱(24)의 3개의 스테이지(188)는 후술하는 바와 같은 예측자 계수의 세트를 선택하는 예외로서 타입 1로서 분류되는 프레임에 대한 풀레이트 코덱(22)과 유사하게 동작한다. 128 벡터의 각각의 지수 위치는 7비트로 식별되고 64벡터 각각의 지수위치는 6비트로 식별된다. 1/2 레이트코덱(24)에 대한 LSF 예측오류 양자화표의 실시예는 "Float64 CB2s_40k"란 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
1/2 레이트 코덱(24)은 또한 예측자 계수의 세트 사이에서 선택할 때 풀레이트 코덱(22)과 다르다. 1실시예의 예측자 스위치(190)는 1비트를 사용하여 예측자 계수의 2개의 가능한 세트 중 하나를 식별한다. 선택된 세트의 예측자 계수는 풀레이트 코덱(22)과 유사한 예측된 라인 스펙트럼 주파수(LSF)를 결정하기 위해 사용될 수 있다. 예측자 스위치(190)는 예측자 계수의 어느 세트가 양자화 오류를 가장 최소화할 수 있는가를 결정할 것이다. 예측자 계수의 세트는 다음의 표 5의 매트릭스로 일반적으로 나타낼 수 있는 LSF 예측자 계수표 내에 포함될 수 있다.
실시예에서, 각각 10개의 엘리먼트(n=10)를 포함하는 2개 세트(j=2)의 각각에 4개의 예측자 계수(m=4)가 있다. 실시예에서 1/2 레이트 코덱(24)에 대한 LSF 예측자 계수표는 "Folat64 B-40k"라는 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다. 다시 도 3을 참조하면, LSF 예측 오류 양자화표와 LSF 예측자 계수표는 디코딩 시스템(16) 내의 H LPC 재구성 모듈(118)에 의해 사용된다. H LPC 재구성 모듈(118)은 양자화된 프레임 LSF를 재구성하도록 비트스트림으로부터 LSF 컴포넌트(172)를 수신하여 디코드한다. 풀레이트 코덱(22)과 유사하게 타입 1로서 분류된 프레임에 대하여 1/2 레이트 코덱(24)은 미리 결정된 선형 보간경로를 이용한다. 그러나 1/2 레이트 코덱(24)은 타입 0과 타입 1로서 분류된 프레임에 대하여 미리 결정된 선형 보간경로를 이용한다.
유사하게 1/2 레이트코덱(24)의 어댑티브 코드북 컴포넌트(176)는 음성신호(18)의 주기성에 기초하여 피치래그를 모델화한다. 어댑티브코드북 컴포넌트(176)는 타입 0분류에 대한 서브프레임과 타입 1 분류에 대한 프레임을 기초로 인코드된다. 도 2에 도시된 바와 같이, 초기 1/2 프레임 처리모듈(48)은 타입 1 분류로 프레임에 대한 개방루프 어댑티브 코드북컴포넌트(176a)를 인코드한다. 타입 0분류의 프레임에 대하여, H0 제 1 서브프레임 처리모듈(80)은 폐루프 어댑티브 코드북 컴포넌트(176b)를 인코드한다.
다시 도 5를 참조하면, 개방루프 어댑티브 코드북컴포넌트(176a)의 실시예는 프레임당 7비트로 인코드되고, 폐루프 어댑티브코드북 컴포넌트(176b)는 서브프레임당 7비트로 인코딩 된다. 따라서 타입 0 어댑티브코드북 컴포넌트(176a)는 비트스트림의 제 1 부분의 일부분이며, 타입 1 어댑티브코드북 컴포넌트(176b)는 비트스트림의 제 2 부분의 일부분이다. 도 3에 도시된 바와 같이, 디코딩 시스템(16)은 폐루프 어댑티브코드북 컴포넌트(176b)를 수신한다. 폐루프 어댑티브코드북 컴포넌트(176b)는 H0여기 재구성 모듈(114)을 이용하여 1/2 레이트 디코더(92)에 의해 디코딩된다. 유사하게 H1 여기 재구성 모듈(116)은 개방루프 어댑티브 코드북 컴포넌트(176a)를 디코드한다.
1/2 레이트 코덱(24)에 대한 고정 코드북 컴포넌트(178)의 실시예는 풀레이트 코덱(22)에서 처럼 장기오차를 인코드하도록 타입분류에 종속된다. 다시 도 2를 참조하면 타입 0 고정 코드북 컴포넌트(178a) 또는 타입 1 고정 코드북컴포넌트(178b)는 각각 H0 제 1 서브프레임 처리모듈(80)이나 H1 제 2 서브프레임 처리모듈(84)에 의해 생성된다. 따라서 타입 0 및 타입 1 고정 코드북 컴포넌트(178a, 178b)는 비트스트림의 제 2 부분의 일부를 형성한다.
다시 도 5를 참조하면, 실시예의 타입 0 고정 코드북 컴포넌트(178a)는 풀레이트코덱(22)에서처럼 사용될 코드북을 식별하는 2비트까지는 서브프레임당 15비트를 이용하여 인코드된다. 타입 0 고정 코드북 컴포넌트(178a)를 인코딩하는 것은 예시의 실시예에서 2펄스 코드북(192) 및 3펄스 코드북(194)인 복수의 n펄스 코드북의 사용을 포함한다. 또한 이 예시의 실시예에서는 가우시안 코드북(195)이 사용되며, 이것은 랜덤 여기인 엔트리를 포함한다. n 펄스 코드북에 대하여 1/2 레이트 코덱(24)은 풀레이트 코덱(22)과 유사한 트랙표를 이용한다. 실시예에서, "static INT16 track_2_7_1", "static INT16 track_1_3_0", 및 "static INT16 track_3_2_0"이라는 제목이 부여된 트랙표가 마이크로피시 첨부물의 Appendix B에 "track.tab"이란 제목으로 부여된 라이브러리에 포함되어 사용된다.
2 펄스 코드북(192)의 실시예에서, 트랙표의 각 트랙은 각각의 대표펄스에 대하여 80개의 샘플 위치를 포함한다. 제 1 및 제 2 대표펄스 모두에 대한 펄스위치는 13비트를 이용하여 인코드된다. 80개의 가능한 펄스 위치 중 하나를 인코딩하는 것은 제 1 대표펄스에 대한 펄스위치를 식별하고, 그 펄스위치에 80을 곱하고, 제 2 대표펄스의 펄스위치를 그 결과에 더함으로써 13비트로 달성된다. 최종결과는 풀레이트 코덱(22)에서 처럼 대표펄스의 부호를 나타내도록 사용되는 부가적인 비트로 13비트로 인코드될 수 있는 값이다.
3펄스 코드북(194)의 실시예에서, 펄스위치는 4비트씩 정의된 16개의 샘플위치중 하나일 수 있는 일반적인 위치와 그것으로부터의 상대 변위위치의 조합에 의해 발생된다. 상대변위는 3 펄스 코드북(194)에서 3개의 대표펄스의 각각을 나타내는 3개의 값일 수 있다. 값은 일반적인 위치로부터 벗어나 있으며, 각각의 대표펄스에 대하여 2비트씩 정의될 수 있다. 3개의 대표펄스에 대한 부호는 펄스위치와 부호에 대한 총비트가 13비트가 되도록 1비트씩 정의될 수 있다.
가우시안 코드북(gaussian codebook)은 일반적으로 2개의 직교 기준 랜덤 벡터(orthogonal basis random vector)를 이용하여 인코드될 수 있는 노이즈 타입 음성신호를 나타낸다. 타입 0 고정 코드북컴포넌트(178a)는 가우시안 코드북(195)으로부터 생성된 2개의 직교 기준 랜덤 벡터를 나타낸다. 타입 0 고정 코드북 컴포넌트(178a)는 저장 필요성을 증가시키지 않고 직교 기준 랜덤 벡터의 수를 증가시키도록 가우시안 표에 복수의 직교 기준 랜덤 벡터를 어떻게 교란하는지를 나타낸다. 예시의 실시예에서 직교 기준 랜덤 벡터의 수는 32벡터에서 45벡터로 증가된다. 40개의 엘리먼트를 포함하는 각각의 벡터와 함께 32개의 벡터를 포함하는 가우시안 표는 예시의 실시예의 가우시안 코드북을 나타낸다. 예시의 실시예에서 인코딩을 위해 사용되는 2개의 직교기준 랜덤 벡터는 서로 인터리브되어 각 서브프레임에 80개의 샘플링을 나타낸다. 가우시안 코드북은 일반적으로 다음의 표 7로 나타낸 매트릭스로 나타낼 수 있다.
가우시안 코드북(195)의 실시예는 "double bv"란 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다. 가우시안 코드북 (195)의 실시예에 있어서, 11비트는 인코딩을 위해 사용된 2개의 직교 기준 랜덤벡터의 조합된 지수(위치 및 교란)를 식별하며, 2비트는 직교 기준 랜덤 벡터의 부호를 정의한다.
타입 1 고정 코드북 컴포넌트(178b)를 인코딩하는 것은 실시예에서 2 펄스 코드북(196) 및 3 펄스 코드북(197)인 복수의 n 펄스 코드북을 사용하는 것을 포함한다. 2 펄스 코드북(196)과 3 펄스 코드북(197)은 타입 0 분류의 2 펄스 코드북(192) 및 3 펄스 코드북(194)과 유사하게 기능하지만, 그 구조는 다르다. 실시예의 타입 1 고정 코드북 컴포넌트(178b)는 서브프레임 당 13비트를 사용하여 인코딩된다. 13비트 중, 1비트는 2 펄스 코드북(196) 또는 3펄스 코드북(197)을 식별하고, 12비트는 각각의 펄스위치와 대표펄스의 부호를 나타낸다. 실시예의 2펄스 코드북(196)에서 트랙은 각각의 대표펄스의 부호를 위해 사용되는 나머지 2비트와 함께 5비트를 사용하여 인코딩되는 각각의 대표 펄스에 대한 32개의 샘플위치를 포함한다. 3펄스 코드북(197)에서 일반적인 위치는 4비트를 이용하여 인코드되는 8개의 샘플위치를 포함한다. 상대변위는 2비트씩 인코드되면 대표펄스에 대한 부호는 타입 0으로 분류된 프레임과 유사한 3비트로 인코딩된다.
다시 도 3을 참조하면, 디코딩 시스템(16)은 타입 0 또는 타입 1 고정 코드북 컴포넌트(178a, 178b)를 수신한다. 타입 0 또는 타입 1 고정 코드북 컴포넌트(178a, 178b)는 H0 여기 재구성 모듈(114) 또는 H1 재구성 모듈(116)에 의해 각각 디코딩된다. 타입 0 고정 코드북 컴포넌트(178a)의 디코딩은 2펄스 코드북(192), 3펄스 코드북(194) 또는 가우시안 코드북(195)을 이용하여 발생한다.타입 1 고정 코드북 컴포넌트(178b)는 2펄스 코드북(196) 또는 3펄스 코드북(197)을 이용하여 디코드된다.
다시 도 5를 참조하면, 게인 컴포넌트(179)의 실시예는 타입 0 어댑티브 및 고정 코드북게인 컴포넌트(180a, 182a)를 포함한다. 타입 0 어댑티브및 고정 코드북게인 컴포넌트(180a, 182a)는 풀레이트 코덱(22)을 위해 사용된 2차원 벡터 양자화기(2D VQ)(164)와 2D 게인 양자화표(표 4)를 이용하여 양자화될 수 있다. 실시예에서, 2D 게인 양자화표는 "Float64 gainVQ_3_128"이라는 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
타입 1 어댑티브 및 고정 코드북 게인 컴포넌트(180b, 182b)는 또한 다차원 벡터 양자화기를 이용하여 풀레이트 코덱(22)과 유사하게 생성될 수 있다. 실시예에서, 3차원의 프리벡턱 양자화기(3D preVQ)(198)와 3차원 지연 벡터 양자화기(3D delayed VQ)(200)는 각각 어댑티브및 고정 게인 컴포넌트(180b, 182b)를 위해 사용된다. 벡터 양자화기(198, 200)는 각각의 게인 양자화표를 이용하여 양자화를 실행한다. 실시예에서 게인 양자화표는 어댑티브 및 고정 코드북 게인에 대하여 각각 프리게인 양자화표와 지연게인 양자화표가 있다. 다차원 게인 표는 유사하게 구성되며, 복수의 미리 결정된 벡터를 포함한다. 실시예에서 각각의 다차원 게인표는 타입 1로서 분류된 프레임의 각 서브프레임에 대하여 3개의 엘리먼트를 포함한다.
풀레이트 코덱(22)과 유사하게, 어댑티브 게인 컴포넌트(180b)에 대한 3차원의 프리 벡터 양자화기(3D pre VQ)는 직접 어댑티브 게인을 양자화할 수 있다. 또한 고정 게인 컴포넌트(182b)에 대한 3차원의 지연 벡터 양자화기(3D delayedVQ)(200)는 고정 코드북 에너지 예측오류를 양자화할 수 있다. 상이한 예측계수는 각각의 서브프레임에 대한 고정 코드북 에너지를 예측하기 위해 사용될 수 있다. 바람직한 실시예에서, 제 1 , 제 2 및 제 3 서브프레임의 예측 고정 코드북 에너지는 이전 프레임의 3개의 양자화된 고정 코드북 에너지 오류로부터 예측된다. 이 예시의 실시예에서 제 1, 제 2 및 제 3 서브프레임은 계수 {0.6, 0.3, 0.1}, {0.4, 0.25, 0.1}, 및 {0.3, 0.15, 0.075}의 세트를 이용하여 예측 된다.
1/2 레이트 코덱(24)에 대한 게인 양자화표는 일반적으로 다음의 표 8로 표시된다.
3차원 프리 벡터 양자화기(3D pre VQ)에 의해 사용되는 프리-게인 양자화표의 실시예는 16개의 벡터(n=16)를 포함한다. 3차원 지연 벡터 양자화기(3D delayed VQ)(200)는 256벡터(n=256)를 포함하는 지연 게인 양자화표의 실시예를 사용한다. 실시예의 프리 벡터 양자화기(3D preVQ)(198)와 지연 벡터 양자화기(3D delayed VQ)(200)에 대한 게인 양자화표는 "Float64 gp3_tab" 및 "Float64 gainVQ_3_256"이란 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
다시 도 2를 참조하면, 타입 0 어댑티브및 고정 코드북 게인 컴포넌트(180a, 182b)는 H0 제1 서브프레임 처리모듈(80)에 의해 생성된다. H1 제 1 프레임 처리모듈(82)은 타입 1 어댑티브 코드북 게인 컴포넌트(180b)를 생성한다. 유사하게 타입 1 고정 코드북 게인 컴포넌트(182b)는 H1 제 2 프레임 처리모듈(86)에 의해 생성된다. 다시 도 3을 참조하면, 디코딩 시스템(16)은 타입 0 어댑티브및 고정 코드북 게인 컴포넌트(180a, 182a)를 수신한다. 타입 0 어댑티브 및 고정 코드북 게인 컴포넌트(180a, 182a)는 타입분류에 기초하여 H0 여기 재구성 모듈(114)로 디코딩된다. 유사하게, H1 여기 재구성 모듈(116)은 타입 1 어댑티브 게인 컴포넌트(180b) 및 타입 1 고정 코드북 게인 컴포넌트(182b)를 디코드한다.
1.3 1/4 레이트 코덱에 대한 비트할당
이제 도 2, 도 3 및 도 6을 참조하여, 1/4 레이트 코덱(26)의 비트스트림을 설명하기로 한다. 1/4 레이트 코덱(26)의 예시된 실시예는 프레임과 서브프레임을 기반으로 동작하지만 풀레이트 및 1/2 레이트 코덱(22, 24)에서 처럼 인코딩 처리의 부분으로서 타입분류를 포함하지 않는다. 도 6을 참조하면 1/4 레이트 코덱(26)에 의해 생성된 비트스트림은 LSF 컴포넌트(202) 및 에너지 컴포넌트(204)를 포함한다. 1/4 레이트 코덱(26)의 실시예는 프레임당 39비트를 이용하여 프레임을 처리하도록 각각 10밀리초의 2개의 서브프레임을 이용하여 동작한다.
LSF 컴포넌트(202)는 프레임이 타입 0으로 분류되면 풀레이트 코덱(22)으로서 유사한 LSF 양자화 체계를 이용하여 프레임 기반으로 인코딩된다. 1/4 레이트 코덱(26)은 프레임의 스펙트럼 포락선을 나타내도록 보간 엘리먼트(206)와 복수의 스테이지(208)를 이용하여 LSF를 인코드한다. LSF 컴포넌트(202)의 실시예는 27비트를 사용하여 인코드된다. 27비트는 2비트로 인코드된 보간 엘리먼트(206)와 25비트로 인코드된 4개의 스테이지(208)를 나타낸다. 스테이지(208)는 7비트를 이용하여 인코드된 하나의 스테이지와 6비트를 이용하여 인코드된 3개의 스테이지를 포함한다. 실시예에서 1/4 레이트 코덱(26)은 풀레이트 코덱(22)에 의해 사용된 예측자 계수표와 정확한 양자화표를 이용한다. 실시예의 양자화표와 예측자 계수표는 "Float64 CBes_85k" 및 "Float64 B_85k"로 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
에너지 컴포넌트(204)는 인코딩 시스템(12)과 디코딩 시스템(16)에 의해 생성될 수 있는 아직 유사한 난수의 벡터에 의해 승산될 수 있는 에너지 게인을 나타낸다. 실시예에서 에너지 컴포넌트(204)는 서브프레임당 6비트를 이용하여 인코드된다. 에너지 컴포넌트(204)는 난수에 기초하여 서브프레임에 대한 에너지 게인을 먼저 결정함으로써 생성된다. 또한 예측 에너지 게인은 과거 프레임의 에너지 게인에 기초한 서브프레임에 대하여 결정된다.
예측 에너지 게인은 에너지 게인 예측오류를 결정하도록 에너지 게인으로부터 삭제된다. 에너지 게인 예측오류는 에너지 게인 양자화기와 에너지 게인 양자화표 내의 복수의 미리 결정된 스칼라를 이용하여 양자화된다. 각 서브프레임에 대한 미리 결정된 스칼라의 지수 위치는 프레임에 대한 에너지 컴포넌트(204)에 의해 나타낼 수 있다.
에너지 게인 양자화표는 일반적으로 다음의 표 9로 나타낸 매트릭스로 표시할 수 있다.
실시예에서, 에너지 게인 양자화표는 미리 결정된 64개의 스칼라를 포함한다. 에너지 게인 양자화표의 실시예는 "Float64 gainSQ_1_64"라는 제목이 부여되어 첨부된 마이크로피시의 첨부물에 포함되어 있다.
도 2에서 LSF 컴포넌트(202)는 초기 1/4 프레임처리 모듈(50)에 의해 프레임 기반으로 인코딩된다. 유사하게, 에너지 컴포넌트(204)는 서브프레임 기반으로 1/4 레이트 모듈(60)에 의해 인코딩된다. 도 3을 참조하면, 디코딩 시스템(16)은 LSF 컴포넌트(202)를 수신한다. LSF 컴포넌트(202)는 Q LPC 재구성 모듈(122)에 의해 디코드되고, 에너지 컴포넌트(204)는 Q 여기 재구성 모듈(120)에 의해 디코드된다. LSF 컴포넌트(202)를 디코딩하는 것은 타입 1로서 분류된 프레임에 대하여 풀레이트 코덱(22)에 있어서의 디코딩 방법과 유사하다. 에너지 컴포넌트(204)는 에너지 게인을 결정하도록 디코딩된다. 디코딩 시스템(16)내에서 생성된 유사한 난수의 벡터는 에너지 게인에 의해 승산되어 단기 여기를 생성할 수 있다.
1.4 1/8 레이트코덱에 대한 비트할당
도 2, 도 3 및 도 7에서, 1/8 레이트코덱(28)의 1/8 레이트 비트스트림은 인코딩 처리의 부분으로서 타입분류를 포함하지 않으며, 프레임 기반으로만 동작할 수 있다. 이제 도 7을 참조하면 1/4 레이트 코덱(26)과 유사하게 1/8레이트코덱(28)의 비트스트림은 LSF 컴포넌트(240)와 에너지 컴포넌트(242)를 포함한다. LSF 컴포넌트(240)는 프레임이 타입 1로서 분류될 때 풀레이트 코덱(22)과 유사한 LSF 양자화 체계를 이용하여 인코드될 수 있다. 1/8 레이트 코덱(28)은 단기 예측자 또는 프레임의 스펙트럼 표시를 인코드하도록 복수의 스테이지(244)를 이용한다. LSF 컴포넌트(240)의 1실시예는 3개의 스테이지에서 프레임당 11비트를 이용하여 인코드된다. 3개의 스테이지(244) 중 2개는 4비트로 인코드되고, 마지막 것은 3비트로 인코드된다.
1/8 레이트 코덱(28)에 대한 LSF 컴포넌트(240)을 생성하기 위한 양자화방법은 LSF 예측오류 양자화표와 풀레이트 코덱(22)과 유사한 예측자 계수표를 포함한다. LSF 예측자 오류 양자화표와 LSF 예측자 계수표는 일반적으로 이미 설명한 표 1 및 표 2로 표현될 수 있다. 예시의 실시예에서, 1/8 레이트 코덱(28)에 대한 LSF 양자화표는 3개의 스테이지(j=3)를 포함하며, 2개의 스테이지에서 16개의 양자화 벡터(r=16)를, 하나의 스테이지에서는 8개의 양자화 벡터(s=8)를 가지고, 각각은 10개의 엘리먼트(n=10)를 갖는다. 실시예의 예측자 계수표는 각 10개 엘리먼트(n=10)의 4벡터(m=4)를 포함한다. 실시예의 양자화표와 예측자 계수표는 "Float64 CBes_08k"와 "Float64 B_08k"로 각각 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함되어 있다.
도 2에서, LSF 컴포넌트(240)는 초기 1/8 프레임 처리 모듈(52)에 의해 프레임 기반으로 인코드된다. 에너지 컴포넌트(240)는 또한 1/8 레이트 모듈(62)에 의해 프레임 기반으로 인코드된다. 에너지 컴포넌트(242)는 1/4 레이트 코덱(26)과유사하게 결정되어 코딩될 수 있는 에너지 게인을 나타낸다. 에너지 컴포넌트(242)의 1실시예는 도 7에 도시된 바와 같이 프레임당 5비트씩 표시된다.
1/4 레이트 코덱(26)과 유사하게 에너지 게인 및 예측 에너지 게인은 에너지 예측오류를 결정하도록 사용될 수 있다. 에너지 예측오류는 에너지 게인 양자화기 및 에너지 게인 양자화표 내의 복수의 미리 결정된 스칼라를 이용하여 양자화된다. 에너지 게인 양자화표는 일반적으로 이미 설명된 바와 같은 표 9로 표시될 수 있다. 실시예의 에너지 게인 양자화기는 "Float64 gainSQ_1_32"로 제목이 부여되어 첨부된 마이크로피시 첨부물의 Appendix B에 포함된 2개의 벡터(n=32)를 포함하는 에너지 게인 양자화표를 이용한다.
도 3에서, LSF 컴포넌트(240)와 에너지 컴포넌트(242)는 디코딩 시스템(16)에 의해 수신된 다음 디코딩 될 수 있다. LSF 컴포넌트(240)와 에너지 컴포넌트(242)는 각각 E LPC 재구성 모듈(126)과 E 여기 재구성 모듈(124)에 의해 디코딩된다. LSF 컴포넌트(240)의 디코딩은 타입 1로서 분류된 프레임에 대한 풀레이트 코덱(22)과 유사하다. 에너지 컴포넌트(242)는 1/4 레이트 코덱(26)에서 처럼 유사 난수에 디코딩된 에너지 게인을 적용함으로써 디코딩된다.
음성압축 시스템(10)의 실시예는 4개의 코덱(22, 24, 26 및 28)을 이용하여 비트스트림을 생성 및 디코딩할 수 있다. 특정 코덱(22, 24, 26, 28)에 의해 생성된 비트스트림은 레이스 선택 및 타입분류에 따라 프레임 내의 음성신호(18)의 상이한 파라미터를 강조하여 인코딩될 수 있다. 따라서 비트스트림으로부터 디코딩된 후처리된 합성음성(20)의 지각적 품질은 원하는 평균 비트레이트를 유지하면서 최적화될 수 있다.
이제 도 2 및 도 3의 실시예에 도시된 음성압축 시스템 모듈의 구성 및 동작에 대해 상세히 설명하기로 한다. 이해를 돕기 위해 설명과 관련된 마이크로피시의 첨부물 Appendix A에 포함된 소스코드를 리뷰해 보기를 권장한다.
2.0 선처리 모듈(pre-processing module)
도 8을 참조하면 도 2에 도시된 선처리 모듈(34)의 확장블록도가 제공된다. 선처리 모듈(34)의 실시예는 침묵강화 모듈(302), 고역필터 모듈(304), 및 노이즈 억제 모듈(306)을 포함한다. 선처리 모듈(34)은 음성신호(18)를 수신하여 선처리된 음성신호(308)를 공급한다.
침묵강화 모듈(302)은 음성신호(18)를 수신하고 최소 노이즈 해결책을 추적하도록 기능한다. 침묵강화 기능은 최소해결책과 0 부근의 음성신호(18)의 레벨을 적합하게 추적하고, 현재의 프레임이 "침묵 노이즈(silence noise)"인지를 검출한다. "침묵 노이즈"의 프레임이 검출되면 음성신호(18)는 0레벨로 경사지게 된다. 그렇지 않으면 음성신호(18)는 수정될 수 없다. 예컨대, 선처리 모듈(34)에 앞서 음성신호의 인코딩 및 디코딩은 거의 0인 값의 샘플값을 약 +8 또는 -8의 값으로 증폭시킬 수 있으므로, 거의 들을 수 없는 노이즈를 들을 수 있는 노이즈로 변환하게 된다. 침묵강화 모듈(302)에 의한 처리후에 음성신호(18)는 고역필터 모듈(304)에 공급될 수 있다.
고역필터 모듈(304)은 2차 극제로(pole-zero) 필터일 수 있으며, 다음의 변환함수 H(z)로 주어진다.
입력은 분자의 계수를 2로 나눔으로써 고역필터링 중에 2의 인수만큼 축소될 수 있다.
고역필터로 처리한 후, 음성신호(18)는 노이즈 억제 모듈(306)로 통과될 수 있다. 노이즈 억제 모듈(306)은 주파수 도메인에서 노이즈 감축을 이용하고, 노이즈를 억제하기 위한 여러 공지의 방법중 하나가 이용될 수 있다. 노이즈 억제모듈(306)은 "Enhanced Variable Rate Codec, Speech Service Option 3 for Wideband Spread Spectrum Digital Systems"이란 제목으로, TIA/EIA IS127 표준의 섹션 4.1.2에서 설명되어 있는 바와 같이 노이즈 억제 알고리즘에 의해 사용된 푸리에변환 프로그램을 포함할 수 있다.
실시예의 노이즈 억제모듈(306)은 음성신호(18)의 각 프레임을 주파수 도메인으로 변환하며, 여기에서 스펙트럼 진폭은 스펙트럼 상으로부터 분리될 수 있다. 스펙트럼 진폭은 대역으로 그룹화될 수 있으며, 이것은 인간의 가청 채널대역 뒤에 온다. 감쇄게인(attenuation gain)은 각각의 대역에 대해 계산될 수 있다. 감쇄게인은 유사하게 하모닉 구조를 가지게 되는 스펙트럼 영역을 덜 강조하여 계산될 수 있다. 이러한 영역에서 배경 노이즈는 강한 유성음에 의해 차단될 수 있다. 따라서 음성의 감쇄는 노이즈의 감축에서 어떠한 지각적인 개선없이도 원래의 음성의 품질을 왜곡할 수 있다.
감쇄게인을 계산한 후, 각 대역에서의 스펙트럼 진폭에는 감쇄게인이 승산된다. 스펙트럼 진폭은 원래의 스펙트럼 위상으로 결합될 수 있으며, 음성신호(18)는 시간 도메인으로 다시 변환될 수 있다. 시간 도메인 신호는 선처리된 음성신호(308)를 생성하도록 중첩 및 부가될 수 있다. 선처리된 음성신호(308)는 초기 프레임 처리모듈(44)로 제공될 수 있다.
3.0 초기 프레임 처리 모듈
도 9는 도 2에 도시된 초기 프레임처리 모듈(44)의 블록도이다. 초기 프레임 처리 모듈(44)의 실시예는 LSF 생성부(312), 지각적 가중필터 모듈(314), 개방루프 피치평가 모듈(316), 특징화부(318), 레이트 선택 모듈(320), 피치 선처리 모듈(322), 및 타입분류 모듈(324)를 포함한다. 특징화부(318)는 추가로 음성활성 검출(Voice Activity Detection; VAD) 모듈(326) 및 특징화 모듈(328)을 포함한다. LSF 생성부(312)는 LPC 분석모듈(330), LSF 평활화 모듈(322), LSF 양자화 모듈(334)을 포함한다. 또한 풀레이트 인코더(36) 내에서 LSF 생성부(312)는 보간모듈(338)을 포함하고, 1/2 레이트 인코더(38) 내에서 LSF 생성부는 예측자 스위치 모듈(36)을 포함한다.
도 2를 참조하면, 초기 프레임처리 모듈(44)은 레이트 선택 및 타입분류을 결정할 뿐아니라 LSF 컴포넌트(140, 172, 202, 240)를 생성하도록 동작한다. 레이트 선택 및 타입분류는 여기처리 모듈(54)에 의해 처리를 제어한다. 도 9에 도시된 초기 프레임처리 모듈(44)은 초기 풀프레임 처리모듈(46)과 초기 1/2 프레임 처리모듈(48)의 실시예를 도시한다. 초기 1/4 프레임 처리모듈(50)과 초기 1/8프레임처리모듈(52)의 실시예는 어느 정도 다르다.
이미 설명한 바와 같이, 실시예에서 타입분류는 초기 1/4 레이트 프레임처리 모듈(50)과 초기 1/8 레이트 프레임처리 모듈(52)에 대해서는 발생하지 않는다. 또한 장기 예측자와 장기 예측자 오차는 도 6 및 도 7에 도시된 에너지 컴포넌트(204, 242)를 나타내도록 분리하여 처리되지 않는다. 따라서 도 9에 도시된 LSF부(312), 특징화부(318) 및 레이트 선택모듈(32)만이 초기 1/4 레이트 프레임 처리모듈(50)과 초기 1/8 레이트 프레임처리 모듈(52) 내에서 동작가능하다.
우선 초기 프레임처리 모듈(44)의 이해를 용이하게 하기 위해 동작의 개관을 상세히 설명하기로 한다. 도 9를 참조하면 선처리된 음성신호(308)는 초기에 LSF 생성부(312), 지각 가중필터 모듈(314), 및 특징화부(318)에 공급된다. 그러나 특징화부(318) 내에서의 일부 처리는 개방루프 피치 평가모듈(316) 내에서 발생하는 처리에 의존한다. LSF 생성부(312)는 선처리된 음성신호의 스펙트럼 표시를 평가하고 인코딩한다. 지각적 가중 필터 모듈(314)은 인간의 청각 시스템에 의해 처리하는 동안 발생하는 자연적 마스킹에 따라 선처리된 음성신호(308)의 코딩중에 지각적 가중을 제공하도록 동작한다. 개방루프 피치 평가모듈(316)은 각각의 프레임에 대한 개방루프 피치지연을 결정한다. 특징화부(318)는 선처리된 음성신호(308)의 프레임을 분석하고 그 프레임을 특성화하여 후속처리를 최적화한다.
특징화부(318)에 의한 처리 중이나 그 다음에, 프레임의 최종 특징화는 폐루프 피치지연의 생성에 사용된 파라미터를 생성하도록 피치 선처리 모듈(322)에 의해 사용될 수 있다. 또한 프레임의 특징화는 레이트 선택을 결정하도록 레이트 선택 모듈(320)에 의해 사용된다. 피치 선처리 모듈(322)과 그 특징화에 의해 결정된 피치 지연의 파라미터에 기초하여 타입분류는 타입분류 모듈(324)에 의해 결정된다.
3.1 LPC 분석모듈
선처리된 음성신호(308)는 LSF 생성부(312) 내의 LPC 분석모듈(330)에 의해 수신된다. LPC 분석모듈(330)은 LSFP 컴포넌트(312)를 생성하기 위해 사용되는 단기 예측 파라미터를 결정한다. LPC 분석모듈(330)의 실시예에서 선처리된 음성신호(308)의 프레임에 대해 실행되는 3개의 10차 LPC 분석이 있다. 분석은 프레임의 제 2 쿼터, 프레임의 제 4쿼터 및 룩어헤드(lookahead) 내로 집중될 수 있다. 룩어헤드는 과도적인 효과를 감축시키도록 다음 프레임으로 돌출하는 음성 세그먼트이다. 룩어헤드 내의 분석은 선처리된 음성신호(308)의 현재 프레임과 다음 프레임으로부터의 샘플을 포함한다.
선형예측 계수를 계산하기 위하여 하나의 프레임 내의 각각의 LPC 분석에 대하여 상이한 윈도우가 사용될 수 있다. 실시예에서 LPC 분석은 자동상관계수(autocorrelation coefficient)를 계산하도록 자동상관법을 이용하여 실행된다. 자동상관계수는 각 윈도우 내의 복수의 데이터 샘플로부터 계산될 수 있다. LPC 분석 도중에 60Hz의 대역폭 확장과 1.0001의 화이트 노이즈 보정계수는 자동상관계수에 적용될 수 있다. 대역폭 확장은 후속 인코딩 도중에 신호 및 라운드오프 오류에 대항하는 추가의 보강을 제공한다. 화이트 노이즈 보정 인수는 -40dB의 노이즈를 효과적으로 더하여 스펙트럼 동적범위를 감축시키고 후속 인코딩 중에오류를 추가로 완화시킨다.
복수의 반사계수는 자동상관계수로부터 Leroux-Gueguen 알고리즘을 이용하여 계산될 수 있다. 반사계수는 선형예측 계수로 변환될 수 있다. 선형예측 계수는 이미 설명된 바와 같이 LSF(Line Spectrum Frequency)로 변환될 수 있다. 제 4 쿼터 내에서 변환된 LSF는 양자화되고 LSF 컴포넌트(140, 172, 202, 240)로서 디코딩 시스템(16)에 송신될 수 있다. 제 2 쿼터에서 계산된 LSF는 타입 0으로서 분류된 프레임에 대하여 풀레이트 인코더(36)에 대한 보간경로를 결정하기 위해 사용될 수 있다. 보간경로는 선택가능하며 보간 엘리먼트(158)로 식별될 수 있다. 또한 제 2 쿼터 내에서 계산된 LSF와 룩어헤드는 후술하는 가중 음성과 단기오차를 생성하도록 인코딩 시스템(12) 내에서 사용될 수 있다.
3.2 LSF 평활화 모듈
정지 배경 노이즈 도중에 프레임의 제 4 쿼터 내에서 계산된 LSF는 LSF를 양자화하기 전에 LSF 평활화 모듈(332)에 의해 평활화된다. LSF는 배경 노이즈의 지각적 특성을 보다 잘 보존하도록 평활화된다. 평활화는 후술하는 VAD 모듈(326)에 의해 제공되는 음성 활성 결정과 프레임의 스펙트럼 표시 전개의 분석에 의해 제어된다. LSF 평활화 인수는 βlsf로 나타낸다. 실시예에서,
1. "평활화" 배경노이즈 세그먼트의 처음에 평활화 인수는 5 프레임에 대하여 0에서 0.9로 2차 방정식적으로 만곡될 수 있다.
2. "평활화" 배경 노이즈 세그먼트 중에 평활화 인수는 0.9일 수 있다.
3. "평활화" 배경 노이즈 세그먼트의 마지막에 평활화 인수는 0으로 순간적으로 감축될 수 있다.
4. 비평활화 배경 노이즈 세그먼트 중에 평활화 인수는 0일 수 있다.
양자화에 대한 LSF 평활화 계수에 따라 다음의 수학식 2와 같이 계산된다.
여기에서 lsfn(k)와 lsfn-1(k)는 각각 현재의 프레임과 이전 프레임의 평활화된 LSF를 나타내며, lsf2(k)는 현재 프레임의 마지막 쿼터에 집중된 LPC 분석의 LSF를 나타낸다.
3.3 LSF 양자화 모듈
평활화된 LSF(수학식 2)에 의해 주어진 10차 LPC 모델은 LSF 양자화 모듈(334)에 의해 LSF 도메인에서 양자화될 수 있다. 양자화된 값은 복수의 양자화된 LPC 계수 Aq(z)(342)이다. 양자화 체계는 2차 이동 평균 예측자를 이용한다. 실시예에서 양자화 체계는 풀레이트 코덱(22)과 1/4 레이트 코덱(26)에 대한 2차 이동 평균 예측자를 이용한다. 1/2 레이트 코덱(24)에 있어서는 4차 이동 평균 스위칭된 예측자가 이용될 수 있다. 1/8 레이트 코덱(28)에 있어서는 4차 이동 평균 예측자가 이용될 수 있다. LSF 예측자 오류는 이미 설명된 바와 같이 각각의 코덱에서 멀티스테이지 코드북에 의해 실행될 수 있다.
LSF 양자화에 대한 오류의 기준은 가중 평균 제곱 오류(weighted meansquare error) 측정이다. 가중 평균 제곱 오류는 LPC 크기 스펙트럼의 함수이다. 따라서 양자화의 목적은 다음의 수학식 3으로 주어진다.
여기에서 가중은 다음의 수학식 4,
이고,
│P(f)│는 LPC 주파수 f에서의 파워스펙트럼이다(지수 n은 프레임수를 나타냄). 실시예에서는 10개의 계수가 있다.
실시예에서, 양자화된 LPC 계수 Aq(z)(342)의 순서 특성이 검사된다. 하나의 LSF 쌍이 플립되면 그들은 재배열된다. 2이상의 LSF쌍이 플립되면, 양자화된 LPC 계수 Aq(z)(342)는 소거된 것으로 선언될 수 있으며, 후술하는 디코딩 시스템(16)의 프레임 소거 은닉법(frame erasure concealment)을 이용하여 재구성될 수 있다. 실시예에서 양자화된 계수 Aq(z)(342)의 인접한 계수들 사이의 최소간격이 시행될 수 있다.
3.4 예측자 스위치 모듈
예측자 스위치 모듈(336)은 1/2 레이트 코덱(24) 내에서 동작가능하다. 예측된 LSF는 전술한 바와 같이 이동평균 예측자 계수를 이용하여 생성될 수 있다. 예측자 계수는 과거 프레임의 얼마나 많은 LSF가 현재 프레임의 LSF를 예측하기 위해 사용될 수 있는지를 결정한다. 예측자 스위치 모듈(336)은 LSF 양자화 모듈(334)과 결합되어 전술한 바와 같은 양자화 오류를 최소화하는 예측자 계수를 제공한다.
3.5 LSF 보간모듈
양자화 및 비양자화된 LSF는 또한 풀레이트 코덱(22) 내에서 각각의 서브프레임에 대하여 보간될 수 있다. 양자화 및 비양자화된 LSF는 각각의 서브프레임에 대하여 양자화 및 비양자화 선형 예측 파라미터를 제공하도록 보간될 수 있다. LSF 보간 모듈(338)은 전술한 바와 같이 타입 0분류를 갖는 풀레이트 코덱(22)의 프레임에 대한 보간경로를 선택한다. 모든 다른 프레임에 대하여 미리 결정된 선형 보간 경로가 사용될 수 있다.
LSF 보간 모듈(338)은 이전 프레임의 LSF 및 프레임의 제 2 쿼터에서 계산된 LSF와 관련하여 현재 프레임의 LSF를 분석한다. 보간경로는 서브프레임 사이의 스펙트럼 포락선에서의 변화정도에 기초하여 선택될 수 있다. 상이한 보간경로는 전술한 현재 서브프레임에 대하여 현재 프레임의 LSF의 가중치와 이전 프레임의 가중치를 조정한다. LSF 보간 모듈(338)에 의한 조정 다음에 보간 LSF는 각각의 서브프레임에 대한 예측자 계수로 변환될 수 있다.
1/2 레이트 코덱(24), 1/4 레이트 코덱(26) 및 1/8 레이트 코덱(28)뿐 아니라 풀레이트 코덱(22) 내에서의 타입 1 분류에 있어서 미리 결정된 선형 보간경로가 가중치를 조정하기 위해 사용될 수 있다. 보간된 LSF는 이와 유사하게 보간 다음의 예측자 계수로 변환될 수 있다. 또한 예측자 계수는 지각적 가중치필터모듈(314)에 의해 사용되는 계수를 생성하도록 추가로 가중될 수 있다.
3.6 지각적 가중 필터 모듈
지각적 가중필터 모듈(314)은 선처리된 음성신호(308)를 수신하여 필터링하도록 동작가능하다. 지각적 가중필터모듈(314)에 의한 필터링은 계곡영역을 강조하고 선처리된 음성신호(308)의 피크영역을 강조하지 않음으로써 실행될 수 있다. 지각적 가중 필터모듈(314)의 실시예는 2개의 부분을 갖는다. 제 1 부분은 다음의 수학식 5로 주어진 전통적인 극제로 필터일 수 있다.
여기에서 A(z/γ1)과 1/A(z/γ2)는 각각 0필터 및 극필터이다. 0필터 및 극필터에 대한 예측계수는 각각의 서브프레임에 대한 보간 LSF로부터 취득되어 각각 γ1, γ2에 의해 가중될 수 있다. 지각적 가중필터모듈(314)의 실시예에서 가중치 γ1=0.9이고, γ2=0.5이다. 지각적 가중필터모듈(314)의 제 2 부분은 수학식 6으로 주어지는 어댑티브 저역필터일 수 있다.
여기에서 η는 후술하는 정지 장기 스펙트럼 특성의 함수이다. 실시예에서만약 정지 장기 스펙트럼 특성이 공중 교환전화망(PSTN)과 관련된 전형적인 틸트를 갖는다면, η=0.2, 그렇지 않으면 η=0.0이다. 전형적인 틸트는 보통 수정된 IRS 특성 또는 스펙트럼 틸트로서 언급된다. 지각적 가중치 필터 모듈(314)에 의한 처리후에, 선처리된 음성신호(308)는 가중된 음성(344)으로서 설명될 수 있다. 가중 음성(344)은 개방루프 피치 평가모듈(316)에 공급된다.
3.7 개방루프 피치 평가모듈
개방루프 피치 평가모듈(316)은 하나의 프레임에 대한 개방루프 피치 래그를 생성한다. 실시예에서, 개방루프 피치 래그는 실제로 3개의 개방루프 피치래그, 즉 상기 프레임의 처음 1/2에 대한 제 1 피치래그, 상기 프레임의 두 번째 1/2에 대한 제 2 피치래그, 및 상기 프레임의 룩어헤드 부분에 대한 제 3 피치래그를 포함한다.
모든 프레임에 대하여, 제 2 및 제 3 피치래그는 현재의 프레임을 기초로 개방루프 피치 평가모듈(316)에 의해 평가된다. 제 1 개방루프 피치래그는 추가로 조정될 수 있는 이전 프레임으로부터의 제 3 개방루프 피치래그(룩어헤드)이다. 제 3 개방루프 피치래그는 평활화되어 연속적인 피치 윤곽을 제공한다. 개방루프 피치래그의 평활화는 프레임의 적합한 피치 윤곽을 보존하도록 일련의 발견적 특정문제 결정규칙(a set of heuristic and ad-hoc decision rules)을 이용한다. 개방루프 피치평가는 sw(n)로 표시한 가중 음성(344)에 기초한다. 실시예에서 개방루프 피치평가 모듈(316)에 의해 평가된 값은 17에서 148의 범위를 갖는다.
제 1, 제 2, 및 제 3 개방루프 피치래그는 다음의 수학식 7에 따라 계산될수 있는 정규화된 상관(normalized correlation) R(k)에 의해 결정될 수 있다.
실시예에서 n=79이며, 서브프레임 내의 샘플의 수를 나타낸다. 복수의 영역의 각각에 대한 최대 정규화 상관(normalized correlation) R(k)이 결정된다. 이 영역은 가능한 래그범위 내에 있는 4개의 부범위를 나타낸다. 예컨대, 17-33 래그로 부터의 제 1 영역, 34-67 래그로 부터의 제 2 영역, 68-137 래그로 부터의 제 3 영역, 138-148 래그로 부터의 제 4 영역이 그들이다. 각 영역으로부터의 정규화된 상관값 R(k)를 최대화시키는 래그에 대응하는 하나의 개방루프 피치래그는 초기 피치래그 후보들이다. 초기 피치래그 후보들 중 최선의 후보는 개방루프 피치래그의 정규화된 상관, 특성정보, 및 이력에 기초하여 선택된다. 이 절차는 제 2 피치래그와 제 3 피치래그에 대하여 실행될 수 있다.
마지막으로 제 1, 제 2, 및 제 3 개방루프 피치래그는 전체적인 피치윤곽에 잘 맞고 프레임에 대한 개방루프 피치래그를 형성하도록 조정될 수 있다. 개방루프 피치래그는 후술하는 추가의 처리를 위하여 피치 선처리 모듈(32)에 공급된다. 개방루프 피치 평가모듈(316)은 또한 피치래그에서의 피치래그와 정규화된 상관값을 제공한다. 피치래그에서의 정규화된 상관값은 피치상관이라 불리고 Rp로 표시된다. 피치상관 Rp는 특징화부(318) 내의 프레임을 특징화하는데 사용된다.
3.8 특징화부
특징화부(318)는 선처리된 음성신호(308)의 각 프레임을 분석하여 특징을 나타내도록 동작가능하다. 특징화 정보는 여기처리 모듈(54)에 의해서 뿐 아니라 초기 프레임 처리 모듈(44) 내의 복수의 모듈에 의해서도 이용된다. 특히 특징화 정보는 레이트 선택모듈(320)과 타입분류 모듈(324)에서 사용된다. 또한 특징화 정보는 양자화 및 코딩 중, 특히 후술하는 클래스 종속 가중방법(class-dependent weighting approach)을 이용하여 지각적으로 중요한 음성의 특징을 강조하는데 사용될 수 있다.
특징화부(318)에 의한 선처리 음성신호(308)의 특징은 각각의 프레임에 대하여 발생한다. 특징화부(318)의 실시예의 동작은 일반적으로 선처리 음성신호(308)의 6개의 분석카테고리로 설명될 수 있다. 6개의 카테고리는 음성 활성화 결정, 무성 노이즈형 음성의 식별, 6 가지 신호특징, 노이즈 대 신호비의 유도, 4등급 특징, 및 정지 장기 스펙트럼 특성의 특징화이다.
3.9 음성 활성화 검출(Voice Activity Detection; VAD) 모듈
음성 활성화 검출모듈(326)은 특징화의 제 1 단계로서 음성활성화 결정을 실행한다. VAD 모듈(326)은 선처리된 음성신호(308)가 음성의 일부 형태인지, 아니면 단순히 침묵이나 배경 노이즈인지를 결정한다. VAD 모듈(326)의 실시예는 배경 노이즈의 행동을 추적함으로써 음성 활성도를 검출한다. VAD 모듈(326)은 현재 프레임의 파라미터와 배경 노이즈를 나타내는 파라미터 사이의 차를 모니터링한다. 일련의 미리 결정된 임계값을 이용하여 프레임은 음성 프레임으로서 또는 배경 노이즈 프레임으로서 분류될 수 있다.
VAD 모듈(326)은 프레임 내의 샘플의 절대값의 최대값뿐 아니라 반사계수, 예측오류, LPC 분석모듈(30)에 의해 제공되는 LSF 및 10차 자동상관계수 등의 복수의 파라미터를 모니터링하는 것에 기초하여 음성 활성도를 결정하도록 동작한다. 또한 VAD 모듈(326)의 실시예는 최근 프레임으로부터 피치래그 및 어댑티브 코드북 게인의 파라미터를 이용한다. VAD 모듈(326)에 의해 사용되는 피치래그 및 어댑티브 코드북 게인은 현재 프레임의 피치래그 및 어댑티브 코드북 게인이 아직 이용가능하지 않기 때문에 이전 프레임으로부터 온다. VAD 모듈(326)에 의해 실행되는 음성 활성 결정은 특징화 모듈(328)에 의한 최종 분류 특징화 결정의 일부를 형성할 뿐아니라 인코딩 시스템(12)의 몇가지 특성을 제어하도록 사용될 수 있다.
3.10 특징화 모듈
VAD 모듈(326)에 의한 음성 활성결정 다음에 특징모듈(328)이 활성화된다. 특징모듈(328)은 전술한 바와 같이 선처리된 음성신호(308) 분석의 제 2, 제 4, 제 5 카테고리를 실행한다. 제 2 카테고리는 무성 노이즈형 음성 프레임의 검출이다.
3.10.1 무성 노이즈형 음성검출
일반적으로 무성 노이즈형 음성프레임은 하모닉 구조를 포함하지 않으나, 유성 프레임은 포함한다. 실시예에서 무성 노이즈형 음성 프레임의 검출은 선처리된 음성신호(308)에 기초하며, 가중 오차신호 Rw(z)는 다음의 수학식 8로 주어진다.
여기에서 A(z/γ1)는 가중 γ1을 갖는 가중 0필터를 나타내고, S(z)는 선처리된 음성신호(308)이다. 다음의 6개의 파라미터와 같은 복수의 파라미터가 현재의 프레임이 무성 노이즈형 음성인지를 결정하기 위해 사용될 수 있다.
1. 프레임의 처음 3/4에 대한 선처리된 음성신호(308)의 에너지
2. 미리 결정된 임계값 미만인 프레임 내의 음성샘플의 수
3. 가중 오차신호 및 프레임 크기를 사용하여 결정된 오차 첨예도(residual sharpness). 첨예도는 샘플의 절대값의 최대치에 대한 샘플의 절대값의 평균비로 주어진다. 가중 오차신호는 수학식 8로부터 결정될 수 있다.
4. 선처리 음성신호(308)의 크기 스펙트럼의 틸트를 나타내는 제 1 반사계수
5. 선처리된 음성신호(308)의 0교차율
6. 선처리된 음성신호(308)와 가중 오차신호 사이의 예측측정
실시예에서 미리 결정된 임계값의 세트는 어느 프레임이 무성 노이즈형 음성인지를 결정하는데 있어 상기 리스트로 나타낸 파라미터와 비교된다. 최종 결정은 후술하는 피치 선처리 모듈(322)을 제어하고, 고정 코드북 검색을 제어하는데 사용될 수 있다. 또한 무성 노이즈형 음성결정은 선처리된 음성신호(308)의 6가지의 신호특징을 결정하는데 사용된다
3.10.2 6가지 신호 특징화
특징화 모듈(328)은 또한 6가지 신호특징화인 분석의 제 3 카테고리를 실행할 수 있다. 6가지 신호특징화는 프레임의 우세한 특징에 따라 6가지 중 하나로 상기 프레임을 특징지음으로서 실행된다. 실시예에서, 6가지는 다음과 같이 설명될 수 있다.
0. 침묵/배경 노이즈
1. 정지 노이즈형 무성음
2. 비정지 무성음
3. 시작(Onset)
4. 비정지 유성음
5. 정지 유성음
다른 실시예에서, 파열음으로서 특징지어진 프레임 등이 또한 다른 분류에 포함된다. 처음에, 특징화 모듈(328)은 침묵/배경 노이즈 프레임(분류 1), 비정지 무성음 프레임(분류 2), 시작 프레임(분류 3), 분류 4 및 분류 5로 나타낸 유성음 프레임을 구분한다. 비정지(분류 4) 및 정지(분류 5)로서의 유성음 프레임의 특징은 피치 선처리 모듈(322)의 활성화 중에 실행될 수 있다. 더욱이, 특징화 모듈(328)은 초기에는 정지 노이즈형 무성음 프레임(분류 1)과 비정지 무성음 프레임(분류 2)을 구분한다. 이 특징화 분류는 이미 설명한 무성음 노이즈형 음성 알고리즘을 이용하여 피치 선처리 모듈(322)에 의한 처리 도중에 식별될 수 있다.
특징모듈(328)은 예컨대 VAD 모듈(326)에 의한 선처리된 음성신호(308)와 음성 활성 검출을 이용하여 특징화를 실행한다. 또한 특징모듈(328)은 제 2 개방루프피치래그에 대응하는 프레임과 정규화 상관에 대한 개방루프 피치래그를 이용할 수 있다.
복수의 스펙트럼 틸트와 복수의 절대최대값은 특징모듈(328)에 의해 선처리된 음성신호(308)로부터 유도될 수 있다. 실시예에서, 각각 80개의 샘플을 포함하는 4개의 중첩 세그먼트에 대한 스펙트럼 틸트가 계산된다. 4개의 중첩된 세그먼트는 80개 샘플의 해밍윈도우(Hamming window)에 의해 가중될 수 있다. 실시예의 절대 최대값은 선처리된 음성신호(308)의 8개의 중첩된 세그먼트로부터 유도된다. 일반적으로 8개의 중첩된 세그먼트의 각각의 길이는 개방루프 피치래그의 주기의 약 1.5배이다. 절대최대값은 또한 진폭포락선의 평활한 윤곽을 생성하기 위해 사용될 수 있다.
스펙트럼 틸트, 절대 최대값, 및 피치 상관 Rp파라미터는 프레임 당 다수배로 갱신 및 보간될 수 있다. 이들 파라미터에 대한 평균값은 또한 VAD 모듈(326)에 의한 배경 노이즈로서 특징지어진 프레임에 대하여 수배로 계산될 수 있다. 실시예에서, 각 파라미터의 8개의 갱신된 평가치는 각각20개 샘플의 8 세그먼트를 이용하여 획득된다. 배경노이즈에 대한 파라미터의 평가치는 "노이즈가 제거된" 파라미터의 세트를 생성하도록 배경 노이즈로서 특징지어지지 않은 후속 프레임에 대한 파라미터의 평가치로부터 감산될 수 있다.
통계에 기초한 결정 파라미터의 세트는 "노이즈 제거" 파라미터와 개방루프 피치래그로부터 계산될 수 있다. 통계에 기초한 각각의 결정 파라미터는 평균, 편차, 전개(evolution), 최대 또는 최소와 같은 원래 파라미터의 통계적 성질을 나타낸다. 미리 결정된 임계 파라미터 세트를 사용하여, 통계적 결정 파라미터에 기초하여 현재 프레임에 대해 초기 특징화 결정이 행해진다. VAD 모듈(326)의 초기 특징화 결정, 과거의 특징 결정 및 음성 활성 결정에 기초하여 프레임에 대한 초기 분류 결정이 행해진다. 초기분류 결정은 프레임을 분류 0, 2, 3의 하나로서, 또는 분류 4 및 5로 나타낸 유성음 프레임으로서 특징지어진다.
3.10.3 노이즈 대 신호비 유도
프레임 특징화에 더하여 실시예의 특징 모듈(328)은 또한 노이즈 대 신호비(Noise-to- Signal Ratio; NSR)를 유도함으로써 분석에 의한 제 4 카테고리를 실행한다. NSR은 배경 노이즈 에너지의 평가치와 프레임의 프레임 에너지 사이의 비율로서 계산될 수 있는 전통적인 왜곡 기준이다. NSR 계산의 실시예는 진정한 배경 노이즈만이 수정된 음성 활성 결정을 사용함으로써 상기 비율에 포함된다는 것을 보증해준다. 수정된 음성 활성결정은 VAD 모듈(326)에 의한 초기 음성 활성 결정,선처리된 음성신호(308)의 프레임의 에너지, 및 룩어헤드부에 대하여 계산된 LSF를 이용하여 유도된다. 만약 수정된 음성 활성 결정이 프레임이 배경 노이즈임을 나타내면, 배경 노이즈의 에너지는 갱신된다.
배경 노이즈는 예컨대 이동 평균을 이용하여 프레임 에너지로부터 갱신된다. 만약 배경 노이즈의 에너지 레벨이 프레임 에너지의 에너지 레벨보다 크면 그것은 프레임 에너지로 대체된다. 프레임 에너지에 의한 대체는 배경 노이즈의 에너지 레벨을 보다 낮게 이동시켜 그 결과를 잘라내는 것을 포함한다. 그 결과는 NSR의 계산에 사용될 수 있는 배경 노이즈 에너지의 평가를 나타낸다.
NSR의 계산후에 특징모듈(328)은 수정된 분류 결정에 대하여 초기 분류결정의 정정을 실행한다. 이 정정은 초기 분류 판정, 음성 활성 결정 및 무성음 노이즈형 음성 결정을 이용하여 실행된다. 또한 예컨대 반사계수로 표현된 스펙트럼, 피치 상관 Rp, NSR, 프레임의 에너지, 이전 프레임의 에너지, 오차 첨예도 및 가중 음성의 첨예도를 나타내는 이미 계산된 파라미터가 또한 사용될 수도 있다. 초기 분류결정의 정정은 특징화 튜닝이라 불린다. 특징화 튜닝은 만약 이들 조건이 확인되면 초기 분류판정을 변경시킬뿐 아니라 출발조건 플래그와 노이즈의 유성음 플래그를 설정할 수 있다. 또한 튜닝은 VAD 모듈(326)에 의한 음성 활성 판정으로 변경을 트리거할 수 있다.
3.10.4 4등급 특징화
특징 모듈(328)은 또한 특징화의 제 5 카테고리, 즉 4등급 특징화를 생성할 수 있다. 4등급 특징화는 피치 선처리 모듈(322)을 제어하는 파라미터이다. 4등급 특징화의 실시예는 4개 카테고리를 구분한다. 카테고리는 1-4로 번호를 부여한다. 1로 부여된 카테고리는 피치 선처리중에 지연 버짓(delay budget)을 초과하는 누적 지연을 방지하도록 피치 선처리 모듈(322)을 리셋하기 위해 사용된다. 일반적으로 나머지 카테고리는 유성음 강도(voicing strength)가 증가함을 나타낸다. 유성음 강도가 증가하는 것은 음성의 주기성의 측정이다. 다른 실시예에서 유성음 강도의 레벨을 나타내기 위해 다소의 카테고리가 포함될 수 있다.
3.10.5 정지 장기 스펙트럼 특성
특징모듈(328)은 또한 선처리된 음성신호(308)의 정지 장기 스펙트럼 특성을결정함으로써 분석의 제 6 카테고리를 실행할 수 있다. 정지 장기 스텍트럼 특성은 예를들어 LSF, 6가지 신호특징화 및 개방루프 피치게인 등의 스펙트럼 정보를 이용하여 복수의 프레임에 대하여 결정된다. 결정은 이들 파라미터의 장기 평균에 기초한다.
3.11 레이트 선택모듈
특징 모듈(328)에 의한 수정된 분류 판정 다음에 레이트 선택모듈(320)은 개방 루프 레이트 선택이라 불리는 초기 레이트 선택을 할 수 있다. 레이트 선택 모듈(320)은 예를들어 개방루프 레이트 선택을 결정하는데 수정된 분류 판정, NSR, 출발 플래그, 오차 에너지, 첨예도, 피치 상관 RP, 및 반사계수와 같은 스펙트럼 파라미터를 이용할 수 있다. 개방루프 레이트 선택은 또한 음성압축 시스템(10)이 내부에서 동작하는 모드에 기초하여 선택될 수 있다. 레이트 선택모듈(320)은 모드 각각에 의해 표시되는 바와 같이 원하는 평균 비트레이트를 제공하도록 튜닝된다. 초기 레이트 선택은 후술하는 피치 선처리모듈(322)에 의한 처리 다음에 수정될 수 있다.
3.12 피치 선처리 모듈
피치 선처리 모듈(322)은 가중 음성(344)의 분석 및 수정을 실행하도록 프레임 기초로 동작한다. 피치 선처리 모듈(322)은 예컨대 인코딩 처리를 개선하도록 가중 음성(344)의 피치 사이클에 대하여 압축 또는 확장 기술을 이용할 수 있다. 개방루프 피치래그는 도 2, 도 4, 및 도 5를 참고로 이미 설명한 바와 같이 개방루프 어댑티브 코드북 컴포넌트(144a, 176a)를 생성하도록 피치 선처리 모듈(322)에의해 양자화된다. 만약 프레임의 최종 타입의 분류가 타입 1이면, 이 양자화는 프레임에대한 피치래그를 나타낸다. 그러나 타입분류가 피치 선처리 모듈(322)에 의해 처리 다음에 변경되면 피치래그 양자화 또한 도 2, 도 4 및 도 5를 참조하여 이미 설명한 바와 같이 폐루프 어댑티브 코드북컴포넌트(144b, 176b)를 나타내도록 변경된다.
개방루프 피치 평가모듈(316)에 의해 생성된 개방루프 피치래그는 피치트랙(348)을 생성하도록 양자화 및 보간된다. 일반적으로 피치 선처리 모듈(322)은 피치 트랙(348)에 꼭 맞도록 가중 음성(344)에 수정을 시도한다. 만약 그 수정이 성공하면, 그 프레임의 최종 타입분류는 타입 1이다. 만약 수정이 성공하지 못하면 그 프레임의 최종 타입분류는 타입 0이다.
나중에 더 상세히 설명하는 바와 같이, 피치 선처리 수정절차는 가중음성(344)의 연속적인 시간 워핑(time warping)을 실행한다. 워핑은 가변 지연을 도입한다. 예시의 실시예에서 인코딩 시스템(12) 내의 최대 가변 지연은 20개의 샘플(2.5ms)이다. 가중음성(344)은 재구성/수정 세그먼트들 사이에서 불연속을 피하기 위하여 인접한 피치 사이클들 사이의 어떤 중첩부와 함께 피치 사이클 마다 수정될 수 있다. 가중 음성(344)은 수정된 가중음성(350)을 생성하도록 피치트랙(348)에 따라 수정될 수 있다. 또한 복수의 비양자화된 피치게인(352)은 피치 선처리 모듈(322)에 의해 생성된다. 만약 프레임의 타입분류가 타입 1이면, 비양자화된 피치게인(352)은 타입 1 어댑티브 코드북 게인 컴포넌트(148b)(풀레이트 코덱(22)용) 또는 (180b)(1/2 레이트 코덱(24)용)를 생성하도록 이용된다. 피치트랙(348), 수정된 가중음성(350) 및 비양자화된 피치게인(352)은 여기처리 모듈(54)에 공급된다.
전술한 바와 같이, 특징모듈(328)에 의한 4급 특징은 피치 선처리를 제어한다. 실시예에서 프레임이 카테고리 1처럼 주로 낮은 피치상관을 갖는 배경 노이즈 또는 무성음이면 프레임은 변하지 않은 상태로 남아있고, 피치 선처리의 누적 지연은 0으로 리셋된다. 만약 프레임이 카테고리 2처럼 주로 펄스형 무성음이면 누적 지연은 단순한 시간 천이를 제외하고는 신호의 어떤 워핑도 없이 유지될 수 있다. 시간천이는 입력 음성신호(18)의 누적 지연에 따라 결정될 수 있다. 나머지 4급 특징을 갖는 프레임에 대해 선처리 알고리즘의 코어는 적절하게 신호를 워프하기 위해 실행될 수 있다.
일반적으로 실시예에서 피치 선처리 모듈(322)의 코어는 3가지 중요한 일을 한다. 첫째, 가중음성(344)은 피치트랙(348)을 매칭하기 위한 시도에서 수정된다. 둘째, 신호에 대한 피치게인 및 피치상관이 평가된다. 마지막으로, 음성신호(18)와 레이트 선택의 특징은 피치 선처리 분석중에 취득된 추가의 신호정보에 기초하여 정제된다. 다른 실시예에서, 추가의 피치 선처리는 파형보간 등에 포함될 수 있다. 일반적으로 파형보간은 가중음성(344)의 규칙성은 향상시키고 불규칙성은 억제하도록 순방향-역방향 파형보간 기술을 이용하여 어떤 불규칙 천이 세그먼트를 수정하도록 이용될 수 있다.
3.12.1 수정
가중음성(344)의 수정은 완화 코드 여기 선형예측(Relaxed Code ExcitedLinear Prediction; RCELP) 음성 코딩 방법과 유사한 피치코딩 모델에 가중음성(344)의 보다 정밀한 맞춤을 제공한다. RCELP 음성코딩의 이행의 예는 TIA(Telecommunications Industry Association) IS-127 표준에 제공되어 있다. 지각적 품질의 어떠한 손실없이도 수정의 성능은 피치 검색, 세그먼트 크기의 평가, 목표신호 워핑 및 신호워핑을 포함한다. 정교한 피치검색은 세그먼트 크기, 목표신호 워핑, 및 신호워핑의 평가가 각각의 피치사이클에 대하여 실행되는 동안 프레임 레벨을 기반으로 하여 실행될 수 있다.
3.12.1.1 정교한 피치검색
정교한 피치검색은 미리 결정된 제 2 및 제 3 피치래그, 레이트 선택, 누적 피치 선처리 지연에 기초하여 가중음성(344)에 대하여 실행될 수 있다. 정교한 피치검색은 분수의 피치래그에 대하여 검색한다. 분수의 피치래그는 래그의 양자화와 조합되는 비정수 피치래그이다. 이 조합은 가중음성(344)의 피치상관을 최대화하는 개방루프 피치래그와 발견래그를 양자화하기 위해 사용되는 래그의 양자화표를 검색함으로써 유도된다. 실시예에서 검색은 상이한 레이트 선택과 관련된 상이한 양자화 기술 때문에 각각의 코덱에 대하여 상이하게 실행된다. 검색은 개방루프 피치래그에 의해 식별된 검색영역 내에서 실행되고, 누적된 지연에 의해 제어된다.
3.12.1.2 세그먼트 크기 평가
세그먼트 크기는 몇가지 중요하지 않은 조정과 함께 피치주기를 따른다. 일반적으로 피치사이클의 피치 콤플렉스(pitch complex)(주펄스)는 지각적으로 가장 중요한 부분, 즉 피치 콤플렉스에 대한 워핑의 최대정밀도를 허용하기 위해 세그먼트의 단부를 향해 위치된다. 주어진 세그먼트에 대하여 시작지점은 고정되고 종료지점은 최적의 모델을 얻을 수 있도록 이동될 수 있다. 종료지점의 이동은 타임 스케일을 효과적으로 신장하거나 압축한다. 결국, 세그먼트의 시작에서는 거의 이동되지 않고 가장 큰 이동은 세그먼트의 단부를 향해 발생한다.
3.12..1.3 워핑에 대한 목표신호
시간 워핑에 대한 목표신호의 실시예는 s'w(n)으로 나타낸 수정된 가중음성(350)과 Lp(n)로 나타낸 피치트랙(348)으로부터 유도된 현재 세그먼트의 합성이다. 피치트랙(348), Lp(n), 목표신호의 샘플값 s'w(n)에 따라 n=0, ...,Ns-1은 21차 해밍 가중 싱크 윈도우(Hamming weighted Sinc window)를 이용하여 수정된 가중음성(350)의 보간에 의해 취득될 수 있다.
여기에서, i(Lp(n))와 f(Lp(n))는 각각 피치래그의 정수와 분수부분이고, ws(f, I)는 해밍 가중 싱크 윈도우, Ns는 세그먼트의 길이이다. 가중타겟 swt w(n)은 swt w(n)=we(n)·s'w(n)으로 주어진다. 가중함수 we(n)는 2개의 선형함수일 수 있으며, 피치 콤플렉스를 강조하고 피치 콤플렉스들 사이에서 "노이즈"를 강조하지 않는다. 가중은 보다 높은 주기성의 세그먼트에 대해 피치 콤플렉스에 대한 강조를 증가시킴으로써 4등급 분류에 따라 적합화될 수 있다.
가중 타겟 swt w(n)과 가중 음성(344) 사이의 정규화된 교차상관(cross correlation)을 최대화시키는 정수 시프트는 다음의 수학식 10으로 구할 수 있다. 여기에서 sw(n+τacc)는 누적된 지연 τacc에 따라 시프트된 가중음성(344)이다.
정제된(분수의) 시프트는 τshift의 이웃에서 R(τshift)의 업샘플화된 버전을 검색함으로써 결정된다. 이것으로 최종적인 최적의 시프트 τopt와 대응 정규 교차 상관 Rnopt)가 발생한다.
3.12.1.4 신호워핑
세그먼트에 대한 수정된 가중음성(350)은 수학식 11과 12로 주어진 맵핑(mapping)에 따라 재구성될 수 있다.
여기에서 τc는 워핑함수를 정의하는 파라미터이다. 일반적으로 τc는 피치 콤플렉스의 시작을 규정한다. 수학식 11로 주어진 매핑은 시간워핑을 규정하고, 수학식 12로 주어진 매칭은 워핑없는 타임 시프트를 규정한다. 모두 해밍 가중 싱크 윈도우 함수를 이용하여 실행될 수 있다.
3.12.2 피치게인 및 피치상관 평가
피치게인 및 피치 상관은 피치 사이클 기반으로 평가될 수 있으며, 각각 수학식 11 및 12에의해 정의된다. 피치게인은 수학식 9로 정의된 타겟 s'w(n)과 수학식 11 및 12로 정의된 최종 수정신호 s'w(n) 사이의 평균평방오차를 최소화하도록 평가되며, 다음의 수학식 13으로 주어진다.
피치게인은 양자화된 피치게인(352)으로서 여기처리 모듈(54)에 제공된다. 피치상관은 다음의 수학식 14로 주어질 수 있다.
쌍방의 파라미터는 피치 사이클에 대하여 이용가능하며 선형으로 보간될 수 있다.
3.12.3 정제된 분류 및 정제된 레이트 선택
피치 선처리 모듈(322)에 의한 피치 선처리 다음에, 평균 피치상관과 피치게인은 특징모듈(328)과 레이트 선택모듈(320)에 제공된다. 특징모듈(328)과 레이트 선택모듈(320)은 피치상관 및 피치게인을 이용하여 각각 최종 특징화 분류 및 최종 레이트 선택을 생성한다. 최종 특징화 분류 및 최종 레이트 선택은 프레임의 6가지 신호특징 및 개방루프 레이트 선택을 정제함으로써 결정될 수 있다.
특히 특징모듈(328)은 유성음 프레임으로서 특징을 갖는 프레임이 분류 4- "비정지 유성음" 또는 분류 5-"정지 유성음"으로서 특징지어 지는지를 결정한다. 또한 특정 프레임이 정지 노이즈형 무성음인 최종 결정은 특정 프레임이 무성음 노이즈형 음성인 이전 결정을 기초로 발생할 수 있다. 노이즈형 무성음으로 확정된 프레임은 분류 1 "정지노이즈형 무성음"으로서 특징지어질 수 있다.
최종 특징화 분류, 레이트 선택모듈(320)에 의한 개방루프 레이트 선택 및 1/2 레이트 신호라인(30)(도 1 참조)에서의 1/2 레이트 시그널링 플래그에 기초하여 최종 레이트 선택이 결정될 수 있다. 최종 레이트 선택은 레이트 선택 인디케이터(354)로서 여기 처리 모듈(54)에 제공된다. 또한 프레임에 대한 최종 특징화 분류는 제어정보(356)로서 여기처리 모듈(54)에 제공된다.
3.13 타입분류 모듈
풀레이트 코덱(22)과 1/2 레이트 코덱(24)에 대하여, 최종 특징화 분류가 타입분류 모듈(324)에 의해 사용될 수 있다. 분류 0에서 4의 최종 특징화 분류를 갖는 프레임은 타입 0 프레임인 것으로 결정되고, 분류 5의 프레임은 타입 1 프레임으로 결정된다. 타입분류는 타입 인디케이터(358)로서 여기처리 모듈(534)에 제공된다.
4.0 여기처리 모듈
타입분류 모듈(324)로부터 타입 인디케이터(358)는 레이트 선택에 따라 도 2에 도시된 바와 같은 풀레이트 모듈(54) 또는 1/2 레이트 모듈(56)을 선택적으로 활성화시킨다. 도 10은 타입 0분류에 대하여 활성화되는 도 2에 도시된 F0 또는 H0 제 1 서브프레임 처리 모듈(70 또는 80)을 나타낸 블록도이다. 유사하게 도 11은 타입 1 분류에 대하여 활성화되는 F1 또는 H1 제 1 프레임 처리모듈(72 또는 82), F1 또는 H1 제 2 서브프레임 처리모듈(74 또는 84), 및 F1 또는 H1 제 2 프레임 처리모듈(76 또는 86)을 나타낸 블록도이다. 이미 설명한 바와 같이, "F"와 "H"는 풀레이트 코덱(22)과 1/2 레이트 코덱(24)을 각각 나타낸다.
도 2에 도시된 1/4 레이트 모듈(60)과 1/8 레이트 모듈(62)은 레이트 선택에 기초할 수 있다. 실시예에서, 의사랜덤 시퀀스(pseudo-random sequence)는 단기여기를 나타내도록 생성 및 스케일된다. 에너지 컴포넌트(204, 242)(도 2)는 전술한 바와 같이, 의사랜덤 시퀀스의 스케일링을 나타낸다. 실시예에서 의사랜덤 시퀀스를 생성하기 위해 사용된 "시드(seed)"는 비트스트림으로부터 추출되어 인코딩시스템(12)과 디코딩시스템(16) 사이에 동기를 제공한다.
전술한 바와 같이, 여기처리모듈(54)은 또한 수정된 가중음성(350), 비양자화된 피치게인(352), 레이트 인디케이터(354) 및 제어정보(356)를 수신한다. 1/4 레이트 코덱(26) 및 1/8 레이트 코덱(28)은 처리중에 이들 신호를 이용하지 않는다. 그러나 파라미터들은 풀레이트코덱(22)과 1/2 레이트코덱(24) 내에서 음성신호(18)의 프레임을 추가적으로 처리하기 위해 사용될 수 있다. 후술하는 바와 같이 풀레이트 코덱(22)과 1/2 레이트 코덱(24)에 의한 이들 파라미터의 사용은 타입 0 또는 타입 1로서의 프레임의 타입분류에 따른다.
4.1 풀레이트 코덱 및 1/2 레이트 코덱의 타입 0 프레임에 대한 여기처리 모듈
이제 도 10을 참조하면, F0 및 H0 제 1 서브프레임 처리모듈(70, 80)의 실시예는 어댑티브 코드북부(362), 고정 코드북부(364), 및 게인 양자화부(366)를 포함한다. 타입 0의 프레임에 대한 처리 및 코딩은 예컨대, TIA 표준 IS-127의 전통적인 CELP 인코딩과 다소 유사하다. 풀레이트 코덱(22)에 있어서, 프레임은 4개의 서브프레임으로 분할될 수 있으나, 1/2 레이트코덱(24)에 있어서 프레임은 전술한 바와 같이 2개의 서브프레임으로 분할될 수 있다. 도 10에 나타낸 기능은 서브프레임 기반으로 실행된다.
F0 또는 H0 제 1 서브프레임처리모듈(70, 80)(도 2)은 어댑티브코드북에 대한 대응 어댑티브 코드북 게인과 폐루프 피치래그를 결정하도록 동작한다. 또한 장기오차는 고정 코드북을 이용하여 양자화되며, 대응 고정 코드북 게인 또한 결정된다. 어댑티브코드북 게인과 고정 코드북 게인의 결합 양자화와 폐루프 피치래그의 양자화가 또한 실행된다.
4.1.1 어댑티브 코드북부
어댑티브코드북부(362)는 어댑티브코드북(368), 제 1 승산기(370), 제 1 합성필터(372), 제 1 지각적 가중필터(374), 제 1 감산기(376) 및 제 1 최소화 모듈(378)을 포함한다. 어댑티브 코드북부(362)는 ABS 방법을 이용하여 어댑티브 코드북(368)으로부터 최선의 폐루프 피치래그에 대한 검색을 실행한다.
폐루프 피치래그에 대응하는 어댑티브코드북(368)으로부터의 세그먼트는 어댑티브코드북 벡터(va)(382)로 언급된다. 도 9의 피치 선처리 모듈(322)로부터의 피치트랙(348)은 어댑티브 코드북 벡터(va)(382)에 대한 벡터를 검색하도록 어댑티브코드북(368)을 식별하기 위하여 사용될 수 있다. 제 1 승산기(370)는 게인(ga)을 선택된 어댑티브코드북 벡터(va)에 곱한다. 게인(ga)은 비양자화되며, 후술하는 바와 같이 계산되는 초기 어댑티브 코드북 게인을 나타낸다. 결과의 신호는 전술한 LPC분석의 반대인 기능을 실행하는 제 1 합성필터(372)를 통과한다. 제 1 합성필터(372)는 제 1 지각적 가중필터 모듈(374)과 함께 LSF 양자화모듈(334)로부터의 양자화된 LPC 계수 Aq(z)(342)를 수신하여 제 1 합성 음성신호(386)를 생성한다. 제 1 감산기(376)는 장기 오류신호(388)를 생성하도록 수정된 가중음성(350)으로부터 제 1 합성음성신호(386)를 감산한다. 수정된 가중음성(350)은 어댑티브 코드북(368) 내에서 검색을 위한 타겟신호이다.
제 1 최소화 모듈(378)은 폐루프 피치래그를 양자화할 때 오류를 나타내는 벡터인 장기 오류신호(388)를 수신한다. 제 1 최소화모듈(378)은 대응하는 가중 평균평방오류의 결정 및 벡터의 에너지 계산을 실행한다. 또한 제 1 최소화모듈(378)은 장기 오류신호(388)의 에너지를 감축시키기 위하여 어댑티브코드북 벡터(va)에 대한 어댑티브코드북(368)으로부터 벡터의 검색 및 선택을 제어한다.
검색처리는 제 1 최소화 모듈(378)이 각각의 서브프레임에 대하여 어댑티브코드북(368)으로부터 어댑티브 코드북 벡터(va)에 대하여 최선의 벡터를 선택할 때까지 반복한다. 어댑티브 코드북(368) 내에서 어댑티브코드북 벡터(va)에 대한 최선의 벡터의 지수 위치는 폐루프 어댑티브 컴포넌트(144b, 176b)(도 2)의 일부를 형성한다. 이 검색처리는 장기오류신호(388)의 에너지를 효과적으로 최소화한다. 최선의 폐루프 피치래그는 어댑티브코드북(368)으로부터 최선의 어댑티브 코드북 벡터(va)를 선택함으로써 선택된다. 결과의 장기 오류신호(388)는 어댑티브 코드북 벡터(va)(382)에 대하여 필터링된 최선의 벡터 이하의 수정된 가중 음성신호(350)이다.
4.1.1.1 풀레이트 코덱에 대한 폐루프 어댑티브 코드북검색
풀레이트 코덱(2)에 대한 폐루프 피치래그는 폐루프 어댑티브코드북 컴포넌트(144b)에 의해 비트스트림에서 표시된다. 풀레이트 코덱(22)의 실시예에서 전술한 바와 같이, 제 1 및 제 3 서브프레임에 대한 폐루프 피치래그는 8비트로 표시되고, 제 2 및 제 4 서브프레임에 대한 폐루프 피치래그는 5비트로 표시된다. 실시예에서, 래그는 17 내지 148 래그의 범위이다. 8비트 및 5비트는 동일한 피치 해법을 나타낼 수 있다. 그러나 8비트는 서브프레임에 대한 폐루프 피치래그의 전범위를 나타낼 수 있고, 5비트는 이전 폐루프 피치래그 근처의 폐루프 피치래그의 제한된 값을 나타낼 수 있다. 실시예에서, 폐루프 피치래그 해답은 래그 17과 래그 33 사이에서 균일하게 0.2이다. 실시예의 래그 33에서 91까지의 해답은 0.2에서 0.5로 점점 증가하고, 래그 91에서 148까지의 해답은 균일하게 1.0이다.
어댑티브코드북부(362)는 폐루프 정수 피치래그에 대한 정수 래그검색을 실행한다.제 1 및 제 3 서브프레임(이들은 8비트로 표시됨)에 대하여 정수 래그 검색은 범위 [Lp-3, Lp+3]에 대하여 실행될 수 있다. 여기에서 Lp는 서브프레임피치래그이다. 서브프레임 피치래그는 피치트랙(348)으로부터 얻어지며, 어댑티브코드북(368) 내에서의 벡터를 식별하기 위해 사용된다. 정수 검색래그에 대한 교차상관 함수 R(l)은 수학식 15에 따라 계산될 수 있다.
여기에서 t(n)은 수정된 가중음성(350)인 타겟신호이며, e(n)은 어댑티브코드북 벡터(va)로 표시되는 어댑티브코드북 기여이며, h(n)은 제 1 합성필터(372)와 지각적 가중필터(374)의 결합응답이다. 예시의 실시예에서 서브프레임 내에는 40개의 샘플이 있지만 그 이상 또는 그 이하의 샘플이 사용될 수 있다.
R(l)을 최대화시키는 폐루프 정수 피치래그는 정제된 정수래그로서 선택될 수 있다. 어댑티브 코드북 벡터(va)에 대한 어댑티브코드북(368)으로부터의 최선의 벡터는 9차 해밍 가중싱크를 이용하여 교차상관함수 R(l)을 업샘플링함으로써 결정될 수 있다. 업샘플링은 정제된 정수래그의 1 샘플 이내인 폐루프 피치래그에 대응하는 어댑티브코드북(368) 내의 벡터의 검색에 후속된다. 각각의 서브프레임에 대한 어댑티브 코드북 벡터(va)에 대한 최선의 벡터의 어댑티브 코드북 내의 지수 위치는 폐루프 어댑티브 코드북 컴포넌트(144b)에 의해 비트스트림으로 표시된다.
초기 어댑티브코드북 게인은 수학식 16에 따라 평가될 수 있다.
여기에서 Lopt p는 어댑티브코드북 벡터(va)(382)에 대한 최선의 벡터의 래그를 나타내며, e(n-Lopt p)는 어댑티브 코드북벡터(va)(382)에 대한 최선의 벡터를 나타낸다. 또한 이 실시예에서, 평가치는 0.0≤g≤1.2의 범위로 구속되고, n은 서브프레임 내의 40개의 샘플을 나타낸다. 정규화된 어댑티브 코드북상관은 l=Lopt p이면 R(l)로 주어진다. 초기 어댑티브 코드북 게인은 어댑티브 코드북 기여의 첨예도, 초기 분류판정 및 정규화된 어댑티브코드북 상관에 따라 추가로 정규화될 수 있다. 정규화로 게인(ga)(384)을 구할 수 있다. 게인(ga)(384)은 비양자화되며, 폐루프 피치래그에 대한 초기 어댑티브코드북 게인을 나타낸다.
4.1.1.2 1/2 레이트코딩을 위한 폐루프 어댑티브코드북 검색
1/2 레이트 코덱(24)에 대한 폐루프 피치래그는 폐루프 어댑티브 코드북 컴포넌트(176b)(도 2)에 의해 표시된다. 실시예의 1/2 레이트코덱(24)에 대하여 2개의 서브프레임의 각각에 대한 폐루프 피치래그는 각각 7비트로 인코딩되고, 이들 각각은 17에서 127 래그범위의 래그를 나타낸다. 정수래그검색은 풀레이트 코덱(22)에서 실행된 분수의 검색과 대조적으로 [Lp-3, Lp+3]의 범위에 대하여 실행될 수 있다. 교차상관함수 R(l)은 수학식 15로 계산될 수 있으며, 그 합은 80개 샘플의 서브프레임 크기에 대하여 실행된다. R(l)을 최대화시키는 폐루프 피치래그는 정제된 정수래그로서 선택된다. 각각의 서브프레임에 대한 어댑티브코드북 벡터(va)(382)를 위한 최선의 벡터의 어댑티브 코드북(368) 내의 지수위치는 폐루프 어댑티브 코드북컴포넌트(176b)에 의해 비트스트림으로 표시된다.
어댑티브 코드북 게인에 대한 초기값은 수학식 16에 따라 계산될 수 있으며, 그 합은 80개 샘플의 서브프레임 크기에 대하여 실행된다. 전술한 정규화 절차는 비양자화된 게인(ga)(384)을 발생하게 적용될 수 있다.
풀레이트 코덱(22)이나 1/2 레이트 코덱(24)에 의해 생성된 장기 오류신호(388)는 고정 코드북부(364)에 의한 검색 중에 사용된다. 고정 코드북 검색에 앞서, 프레임에 적용가능한 도 9의 VAD 모듈(326)로부터 음성활성판정이 구해진다. 프레임에 대한 음성활성판정은 각각의 서브프레임에 대하여 서브프레임 음성활성판정으로 세분될 수 있다. 서브프레임 음성활성판정은 고정코드북 기여의 지각적 선택을 개선하기 위해 사용될 수 있다.
4.1.2. 고정코드북 시스템
고정 코드북부(364)는 고정 코드북(390), 제 2 승산기(392), 제 2 합성필터(394), 제 2 지각적 가중필터(396), 제 2 감산기(398) 및 제 2 최소화 모듈(400)을 포함한다. 고정 코드북부(364)에 의한 고정 코드북 기여에 대한 검색은 어댑티브 코드북부(362) 내에서의 검색과 유사하다.
서브프레임에 대한 장기오차를 나타내는 고정 코드북 벡터(vc)(402)는 고정 코드북(390)으로부터 제공된다. 제 2 승산기(392)는 게인(gc)(404)을 선택된 어댑티브코드북 벡터(vc)(402)에 곱한다. 게인(gc)(404)은 비양자화되며, 후술하는 바와 같이 계산되는 고정 코드북 게인의 초기값의 표시이다. 결과의 신호는 제 2 합성필터(394)에 제공된다. 제 2 합성필터(394)는 제 2 지각적 가중필터(396)와 함께 LSF 양자화모듈(334)로부터의 양자화된 LPC 계수 Aq(z)(342)를 수신하여 제 2 합성 음성신호(406)를 생성한다. 제 2 감산기(398)는 장기 오류신호(388)에서 재합성된 음성신호(406)를 감산하여 고정 코드북 오류신호(408)인 벡터를 생성한다.
제 2 최소화 모듈(400)은 고정 코드북(390)에 의해 장기오차를 양자화할 때 오류를 나타내는 고정코드북 오류신호(408)를 수신한다. 제 2 최소화모듈(400)은고정 코드북 오류신호(408)의 에너지를 감축시키기 위하여 고정코드북(292)으로부터 고정 코드북 벡터(vc)(402)에 대한 벡터의 선택을 제어하도록 고정 코드북 오류신호(408)의 에너지를 이용한다. 제 2 최소화모듈(400)은 또한 도 9의 특징모듈(328)로부터 제어정보(356)를 수신한다.
제어정보(356)에 포함된 최종 특징화 분류는 제 2 최소화모듈(400)이 고정코드북(390)으로부터 고정코드북 벡터(vc)(402)에 대한 벡터를 어떻게 선택하는지를 제어한다. 이 과정은 제 2 최소화모듈(400)에 의한 검색이 각각의 서브프레임에 대한 고정코드북(390)으로부터 고정 코드북 벡터(vc)에 대한 최선의 벡터를 선택할 때까지 반복한다. 고정코드북 벡터(vc)에 대한 최선의 벡터는 장기 오류신호(388)에 대하여여 제 2 재합성 음성신호(406) 내의 오류를 최소화한다. 이 지수는 전술한 바와 같이 고정 코드북 벡터(vc)에 대한 최선의 벡터를 식별하고, 고정 코드북 컴포넌트(146a, 178a)를 형성하도록 사용될 수 있다.
4.1.2.1 풀레이트 코덱에 대한 고정 코드북 검색
도 2 및 도 4를 참조하여 이미 설명한 바와 같이 타입 0 분류에 대한 고정 코드북 컴포넌트(146a)는 3개의 5펄스 코드북(16)을 이용하여 풀레이트 코덱(22)의 4개의 서브프레임 각각을 나타낼 수 있다. 검색이 시작되면 고정 코드북(390) 내의 고정 코드북 벡터(vc)(402)에 대한 벡터는 다음의 수학식 17로 나타낸 장기 오류신호(388)를 이용하여 결정될 수 있다.
검색중에 고정 코드북(390) 내의 5펄스 코드북(160)(도 4에 도시)에 순방향으로 피치강화가 적용될 수 있다. 검색은 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터에 대하여 반복적이고 제어된 복잡한 검색이다. 게인(gc)(404)으로 나타낸 고정 코드북 게인에 대한 초기값은 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터를 동시에 검색하여 구할 수 있다.
실시예에서 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터에 대한 검색은 3개의 5펄스 코드북(160)의 각각에서 완료된다. 3개의 5펄스 코드북(160)의 각각에서 검색처리가 완료될 때 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터후보가 확인된다. 3개의 5펄스 코드북(160) 중의 하나와, 대응하는 최선의 후보벡터중 어느 것이 사용될 것인지를 선택하는 것은 최선의 후보벡터 각각에 대하여 대응하는 고정 코드북 오류신호(408)를 이용하여 결정될 수 있다. 제 2 최소화 모듈(400)에 의해 대응하는 고정 코드북 오류신호(408)의 각각에 대한 가중 평균평방오류(WMSE)의 결정이 먼저 실행된다. 이러한 설명의 목적으로 3개의 5펄스 코드북(160)의 각각으로부터의 최선의 후보벡터 각각에 대한 가중 평균평방오류는 제 1, 제 2 및 제 3 고정코드북 WMSE라 언급될 것이다.
제 1, 제 2 및 제 3 고정 코드북 WMSE는 먼저 가중된다. 타입 1로서 분류된프레임에 대하여 풀레이트 코덱(22) 내에서 제 1, 제 2, 및 제 3 고정코드북 WMSE는 서브프레임 활성결정에 의해 가중될 수 있다. 또한 가중은 제 1, 제 2, 및 제 3 고정 코드북 WMSE의 각각의 첨예도 측정과 도 9의 특징화 모듈(328)로부터의 NSRDP 제공될 수 있다. 가중에 기초하여 3개의 5펄스 고정 코드북(160)과 그 코드북 내의 최선의 후보벡터가 선택될 수 있다.
선택된 5펄스 코드북(160)은 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터를 최종 판단하기 위해 정밀하게 검색된다. 정밀한 검색은 선택된 최선의 후보벡터의 부근에 있는 3개의 5펄스 코드북(160) 중에서 선택된 하나의 벡터에 대하여 실행된다. 3개의 5펄스 코드북(160) 중에서 선택된 하나 내에서 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터를 식별하는 지수는 비드스트림 내의 고정 코드북 컴포넌트(178a)의 일부이다.
4.1.2.2 1/2 레이트 코덱에 대한 고정 코드북검색
타입 0분류에 대하여, 고정 코드북 컴포넌트(178a)는 1/2 레이트코덱(24)의 2개의 서브프레임의 각각을 나타낸다. 전술한 바와 같이, 도 5를 참조하면 그 표시는 펄스 코드북(192, 194)과 가우시안 코드북(195)에 기초될 수 있다. 게인(ga)(404)에 의해 표시되는 고정 코드북 게인에 대한 초기타겟은 풀레이트 코덱(22)과 유사하게 결정될 수 있다. 또한 고정 코드북(390) 내에서 고정 코드북 벡터(vc)에 대한 검색은 풀레이트 코덱(22)과 유사하게 가중될 수 있다. 1/2 레이트 코덱(24)에서 가중은 펄스 코드북(192, 194)뿐 아니라 가우시안 코드북(195)의 각각으로부터 최선의 후보에 적용될 수 있다. 가중은 지각적인 관점으로부터 가장 적합한 고정 코드북 벡터(vc)을 결정하도록 적용된다. 또한 1/2 레이트 코덱(24) 내의 가중 평균평방오류(Weighted Mean Squared Error; WMSE)의 가중은 지각적인 관점을 강조하도록 향상될 수 있다. 추가의 강화는 가중에 추가적인 파라미터를 포함함으로써 달성될 수 있다. 추가적인 인자는 폐루프 피치래그와 정규화된 어댑티브 코드북 상관일 수 있다.
최선의 후보 벡터에 대한 코드북(192, 194, 195)의 검색에 앞서 강화된 가중에 더하여 일부 특성은 펄스 코드북(192, 194)의 엔트리에 삽입될 수 있다. 이들 특성은 지각적 품질에 추가의 강화를 제공할 수 있다. 실시예에서 검색중에 강화된 지각적 품질은 3번의 강화를 이용하여 제 2 합성필터(394)의 필터응답을 수정함으로써 달성될 수 있다. 첫 번째 강화는 고주파 노이즈를 고정 코드북에 주입함으로써 달성될 수 있으며, 이것은 고주파 대역을 수정한다. 고주파 노이즈의 주입은 제 2 합성필터(394)의 임펄스 응답으로 고주파 노이즈 임펄스 응답을 감음으로써 제 2 합성필터(394)의 응답에 통합될 수 있다.
두 번째 강화는 이미 양자화된 서브프레임 내의 높은 상관에 의해 결정될 수 있는 위치에 추가적인 펄스를 통합하도록 사용될 수 있다. 추가적인 펄스의 진폭은 상관강도에 따라 조정될 수 있어 디코딩 시스템(16)이 인코딩 시스템(12)으로부터 추가적인 정보의 필요성없이 동일한 동작을 실행하게 한다. 이들 부가적인 펄스로부터의 기여는 제 2 합성필터(394)의 임펄스 응답에 통합될 수 있다. 세 번째 강화는 대역폭 확장으로부터 결과되는 포르만트 첨예도와 LSF의 양자화의 감축을 보상하도록 약한 단기 스펙트럼 필터로 고정 코드북(390)을 필터링한다.
고정 코드북벡터(vc)(402)에 대한 최선의 벡터에 대한 검색은 전술한 바와 같이 고정 코드북 오류신호(408)의 에너지를 최소화하는데 기초한다. 검색은 먼저 2펄스 코드북(192)에 대하여 실행될 수 있다. 3펄스 코드북(194)은 다음에 2단계로 검색될 수 있다. 제 1 단계는 집중된 검색으로서 언급될 수 있는 제 2 단계에 대한 중심을 결정할 수 있다. 후방 및 전방 가중 피치강화는 펄스코드북(192, 194)에서의 검색을 위하여 적용될 수 있다. 가우시안 코드북(195)은 전술한 바와 같이 인코딩을 위한 2개의 직교 기저 벡터를 결정하도록 사용되는 빠른 검색루틴을 이용하여 마지막으로 검색될 수 있다.
코드북(192, 194, 195)중 하나와 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터의 선택은 풀레이트 코덱(22)과 유사하게 실행될 수 있다. 선택된 코드북 내의 고정 코드북벡터(vc)(402)에 대한 최선의 벡터를 식별하는 지수는 비트스트림내의 고정 코드북 컴포넌트(178a)의 일부이다.
이 지점에서, 어댑티브 코드북 벡터(va)와 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터는 각각 어댑티브 및 고정 코드북(368, 390) 내에서 발견된다. 게인(ga)(384)과 게인(gc)(404)에 대한 비양자화된 초기값은 이제 최선의 게인값으로 대체될 수 있다. 최선의 게인값은 이전에 결정된 고정 코드북 벡터(vc)(402)와 어댑티브 코드북벡터(va)(382)에 대한 최선의 벡터에 기초하여 결정될 수 있다. 최선의 게인을 결정한 다음에 그들은 결합하여 양자화된다. 게인의 결정 및 양자화는 게인 양자화부(366) 내에서 발생한다.
4.1.3 게인 양자화부
실시예의 게인 양자화부(366)는 2D VQ 게인 코드북(412), 제 3 승산기(414), 제 4 승산기(416), 가산기(418), 제 3 합성필터(420), 제 3 지각적 가중필터(422), 제 3 감산기(424), 제 3 최소화 모듈(426), 및 에너지 수정부(428)를 포함한다. 실시예의 에너지 수정부(428)는 에너지 분석모듈(430)과 에너지 조정모듈(432)을 포함한다. 고정 및 어댑티브 코드북 게인의 결정 및 양자화는 게인 양자화부(366) 내에서 실행될 수 있다. 또한 추가의 수정된 가중음성(350)의 추가적인 수정은 양자화를 위해 사용될 수 있는 수정된 타겟신호(434)를 형성하도록 후술하는 바와 같이 에너지 수정부(428) 내에서 발생한다.
결정 및 양자화는 어댑티브코드북게인 및 고정 코드북 게인의 결합 양자화를 나타내는 양자화된 게인 벡터(g ac)(433)를 결정하도록 검색을 포함한다. 이러한 검색에 대한 어댑티브및 고정 코드북 게인은 다음의 수학식 18에 따라 가중된 평균평방오류를 최소화함으로써 구해질 수 있다.
이미 설명한 바와 같이 여기에서 νa(n)는 어댑티브코드북 벡터(va)(383)에 대한 최선의 벡터이고, νc(n)는 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터이다. 실시예에서, 총합은 1/2 레이트 코덱(24)의 실시예에서처럼 80개의 샘플을 포함하는 프레임에 기초한다. 최소화는 정규화된 어댑티브 코드북 상관의 임계값에 따라 결합하여(ga와 gc를 동시에) 또는 차례로(ga를 먼저, gc를 나중에) 구할 수 있다. 게인은 배경 노이즈의 앞에서 재구성된 음성의 변동을 평활하게 하도록 부분적으로 수정될 수 있다. 수정된 게인은 g'a및 g'c로 표시된다. 수정된 타겟신호(434)는 다음의 수학식 19를 이용하여 생성될 수 있다.
양자화된 게인 벡터(g ac)(433)는 2D VQ 게인 코드북(412) 내에서 실행된다. 2D VQ 게인 코드북(412)은 표 4에 나타낸 바와 같은 이미 설명된 2D 게인 양자화표일 수 있다. 2D VQ 게인 코드북(412)은 평균평방오류를 최소화하는, 즉 수학식 20을 최소화하는 양자화된 게인 벡터(g ac)(433)에 대한 벡터를 검색한다.
여기에서 양자화된 고정 코드북 게인(g a)(435)과 양자화된 어댑티브코드북게인(g c)(436)은 2D VQ 게인 코드북(412)으로부터 유도될 수 있다. 실시예에서, 총합은 1/2 레이트코덱(24)의 실시예에서 처럼 80개의 샘플을 포함하는 프레임에 기초한다. 2D VQ 게인 코드북(412)내의 양자화된 벡터는 실제로 전술한 바와 같이 고정 코드북 게인에 대한 보정인자와 어댑티브코드북 게인을 나타낸다.
수정된 타겟신호(434)의 결정 다음에, 양자화된 게인 벡터(g ac)(433)는 승산기(414, 416)로 보내진다. 제 3 승산기(414)는 어댑티브 코드북(368)으로부터의 어댑티브 코드북벡터(va)에 대한 최선의 벡터에 양자화된 어댑티브코드북 게인(g a)(435)을 곱한다. 제 3 승산기(414)로부터의 출력은 가산기(418)로 제공된다. 유사하게 제 4 승산기(416)는 양자화된 고정 코드북 게인(g c)(436)에 고정 코드북(390)으로부터의 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터를 곱한다. 제 4 승산기(416)로부터의 출력은 또한 가산기(418)로 제공된다. 가산기(418)는 승산기(414, 416)로부터의 출력을 가산하고, 그 결과신호를 제 3 합성필터(420)에 제공한다.
제 3 합성필터(420)와 지각적 가중필터(42)의 조합은 제 3 재합성 음성신호(438)를 생성한다. 제 1 및 제 2 합성 합성필터(372, 394)에서처럼 제 3 합성필터(420)는 양자화된 LPC 계수 Aq(z)(342)를 수신한다. 제 3 감산기(424)는 제 3 오류신호(42)를 생성하도록 수정된 타겟신호(434)로부터 제 3 재합성 음성신호(438)를 뺀다. 제 3 최소화모듈(426)은 2D VQ게인 코드북(412)에 의해 고정 코드북 게인과 어댑티브코드북 게인의 결합 양자화로부터 결과되는 오류를 나타내는 제 3 오류신호(442)를 수신한다. 제 3 최소화 모듈(426)은 제 3 오류신호(442)의 에너지를 감축하기 위하여 2D VQ 게인 코드북(412)으로부터 벡터의 선택과 검색을 제어하도록 제 3 오류신호(442)의 에너지를 사용한다.
이 과정은 제 3 최소화 모듈(426)이 제 3 오류신호(442)의 에너지를 최소화하는 각각의 서브프레임에 대하여 2D VQ 게인 코드북(412)으로부터 최선의 벡터를 선택할 때가지 반복된다. 일단 제 3 오류신호(442)의 에너지가 각각의 서브프레임에 대하여 최소화되면, 결합적으로 양자화된 게인(g a)(435)와 (g c)(436)의 지수 위치는 그 프레임에 대하여 게인 컴포넌트(147, 179)를 생성하도록 사용된다. 풀레이트 코덱(22)에 대하여 게인 컴포넌트(147)는 고정 및 어댑티브 게인 컴포넌트(148a, 150a)이고, 1/2 레이트 코덱(24)에 대하여 게인 컴포넌트(179)는 어댑티브및 고정 게인 컴포넌트(180a, 182a)이다.
합성필터(372, 294, 420), 지각적 가중 필터(374, 396, 422), 최소화 모듈(378, 400, 426), 승산기(370, 392, 414, 416), 가산기(418), 및 감산기(378, 398, 424)(본 명세서에 기재된 다른 임의의 필터, 최소화 모듈, 승산기, 가산기, 감산기를 포함)는 다른 장치로 대체되거나 본 기술분야의 기술자에게 알려져 있는 방식으로 수정될 수 있으며, 이것은 특정 출원에 적절한 것일 수 있다.
4.2 풀레이트 코덱과 1/2 레이트코덱의 타입 1 프레임에 대한 여기처리 모듈
도 11에서 F1, H1 제 1 프레임 처리모듈(72, 82)은 3D/4D 개방루프 VQ모듈(454)을 포함한다. 실시예의 F1, H1 제 2 서브프레임처리모듈(74, 84)은 어댑티브 코드북(368), 고정 코드북(390), 제 1 승산기(458), 제 2 승산기(458), 제 1 합성필터(460), 및 제 2 합성필터(462)를 포함한다. 또한 F1, H1 제 2 서브프레임 처리모듈(74, 84)은 제 1 지각적 가중필터(464), 제 2 지각적 가중필터(466), 제 1 감산기(468), 제 2 감산기(470), 제 1 최소화 모듈(472), 및 에너지 조정모듈(474)을 포함한다. F1, H1 제 2 프레임 처리모듈(76, 86)은 제 3 승산기(476), 제 4 승산기(478), 가산기(480), 제 3 합성필터(482), 제 3 지각적 가중필터(484), 제 3 감산기(486), 버퍼링 모듈(488), 제 2 최소화 모듈(490) 및 3D/4D VQ 게인 코드북(492)을 포함한다.
여기 처리모듈(54)에서 타입 1로서 분류된 프레임의 처리는 전술한 바와 같이 프레임 기반과 서브프레임 기반의 처리를 모두 제공한다. 간략화를 위한 목적으로 다음의 설명은 풀레이트 코덱(22) 내에서의 모듈을 참고한다. 1/2 레이트코덱(24) 내의 모듈은 달리 언급이 없다면 동일하게 기능하는 것으로 간주한다. F1 제 1 프레임 처리모듈(72)에 의한 어댑티브코드북의 양자화는 어댑티브 게인 컴포넌트(148b)를 생성한다. F1 제 2 서브프레임처리모듈(74)과 F1 제 2 프레임 처리모듈(76)은 전술한 바와 같이 각각 고정 코드북 벡터와 대응 고정 코드북게인을 결정하도록 동작한다. F1 제 2 서브프레임 처리모듈(74)은 전술한 바와 같이 트랙표를 이용하여 도 2에 도시된 바와 같은 고정 코드북컴포넌트(146b)를 생성한다.
F1 제 2 프레임 처리모듈(76)은 고정 게인 컴포넌트(150b)를 생성하도록 고정 코드북 게인을 양자화한다. 실시예에서 풀레이트 코덱(22)은 4개의 고정 코드북게인의 양자화를 위한 10비트를 사용하고, 1/2 레이트 코덱(24)은 3개의 고정 코드북 게인의 양자화를 위한 8비트를 이용한다. 양자화는 이동 평균예측을 이용하여 실행될 수 있다. 일반적으로 예측 및 양자화가 실행되기 전에 예측상태는 적합한 크기로 변환된다.
4.2.1 제 1 프레임 처리모듈
3D/4D 개방루프 VQ 모듈(454)의 실시예는 이미 언급된 바와 같이 풀레이트 코덱(22)에 대한 4차원 프리벡터 양자화기(4D pre VQ)(166)와 관련 프리게인(pre-gain) 양자화표일 수 있다. 3D/4D 개방루프 VQ 모듈(454)의 다른 실시예는 이미 언급된 바와 같이 1/2 레이트 코덱(24)에 대한 3차원 프리벡터 양자화기(3D pre VQ)(198)와 관련 프리게인(pre-gain) 양자화표일 수 있다. 3D/4D 개방루프 VQ 모듈(454)은 피치 선처리 모듈(322)로부터 비양자화된 피치게인(352)을 수신한다. 비양자화된 피치게인(352)은 전술한 바와 같이, 개방루프 피치래그에 대한 어댑티브 코드북 게인을 나타낸다.
3D/4D 개방루프 VQ 모듈(454)은 각각의 서브프레임에 대한 최선의 양자화된 피치게인을 나타내는 양자화된 피치게인(g k a)(496)을 생성하도록 비양자화된 피치게인(352)을 양자화한다. 여기에서 k는 서브프레임의 수이다. 실시예에서, 풀레이트 코덱(22)에 대해서는 4개의 서브프레임이 있고, 1/2 레이트 코덱(24)에 대해서는 3개의 서브프레임이 있다. 이들은 각 서브프레임의 4개의 양자화된 게인(g 1 a,g 2 a,g 3 a,g 4 a)과 3개의 양자화된 게인(g 1 a,g 2 a,g 3 a)에 각각 대응한다. 프리게인 양자화표 내의 양자화된 피치게인(g k a)의 지수 위치는 풀레이트 코덱(22)에 대한 어댑티브게인 컴포넌트(148b) 또는 1/2 레이트 코덱(24)에 대한 어댑티브 게인 컴포넌트(180b)를 나타낸다. 양자화된 피치게인(g k a)(496)은 F1 제 2 서브프레임 처리모듈(74) 또는 H1 제 2 서브프레임 처리모듈(84)에 제공된다.
4.2.2 제 2 서브프레임 처리모듈
F1 또는 H1 제 2 서브프레임처리모듈(74 또는 84)은 어댑티브코드북 벡터(vk a)(498)를 식별하도록 피치 선처리 모듈(322)에 의해 제공되는 피치트랙(348)을 이용한다. 어댑티브 코드북 벡터(vk a)(498)는 각각의 서브프레임에 대한 어댑티브 코드북 기여를 나타낸다. 여기에서 k는 서브프레임의 수와 같다. 실시예에서 풀레이트 코덱(22)에 대해서는 4개의 벡터가 있고, 1/2 레이트 코덱(24)에 대해서는 3개의 벡터가 있다. 이들은 각 서브프레임에 대한 어댑티브코드북 기여를 위한 4개의 벡터(v1 a, v2 a, v3 a, v4 a)와 3개의 벡터(v1 a, v2 a, v3 a)에 각각 대응한다.
어댑티브 코드북벡터(vk a)(498)에 대하여 선택된 벡터는어댑티브코드북(368)과 피치트랙(348)에 위치된 과거의 벡터로부터 유도될 수 있다. 여기에서 피치트랙(348)은 보간되고 Lp(n)으로 표시된다. 따라서 어떠한 검색도 불필요하다. 어댑티브 코드북 벡터(vk a)(498)는 수학식 21에 의한 21차 해밍 가중 싱크 윈도우로 어댑티브 코드북 내의 과거 어댑티브 코드북벡터(vk a)(498)를 보간함으로써 구해질 수 있다.
여기에서 e(n)은 과거 여기이고, i(Lp(n))과 f(Lp(n))은 각각 피치래그의 정수와 분수부분을 나타내고, w(f, i)는 해밍 가중 싱크 윈도우이다.
어댑티브코드북 벡터(vk a)(498)와 양자화된 피치게인 벡터(vk a)(496)는 제 1 승산기(456)에 의해 승산된다. 제 1 승산기(456)는 제 1 재합성 음성신호(500)를 제공하도록 제 1 합성필터(460) 및 제 1 지각적 가중필터 모듈(464)에 의해 처리되는 신호를 생성한다. 제 1 합성필터(460)는 처리의 일부로서 LSF 양자화모듈(334)로부터 양자화된 LPC 계수 Aq(z)(342)를 수신한다. 제 1 감산기(468)는 장기 오류신호(502)를 생성하도록 피치 선처리 모듈(322)에 의해 제공되는 수정된 가중음성(350)으로부터 제 1 재합성 음성신호(500)를 감산한다.
F1 또는 H1 제 2 서브프레임처리모듈(74 또는 84)은 또한 전술한 바와 같이 F0 또는 H0 제 1 서브프레임 처리모듈(70, 80)에 의해 실행되는 것과 유사한 고정 코드북 기여를 위한 검색을 실행한다. 서브프레임에 대한 장기오차를 나타내는 고정 코드북벡터(vk c)에 대한 벡터는 검색중에 고정 코드북(390)으로부터 선택된다. 제 2 승산기(458)는 고정 코드북 벡터(vk a)에 게인(gk c)(506)을 곱한다. 여기에서 k는 서브프레임의 수이다. 게인(gk c)(506)은 비양자화되며 각각의 프레임에 대한 고정 코드북 게인을 나타낸다. 최종신호는 제 2 재합성 음성신호(508)를 생성하도록 제 2 합성 필터(462)와 제 2 지각적 가중필터(466)에 의해 처리된다. 제 2 재합성 음성신호(508)는 고정 코드북 오류신호(510)를 생성하도록 제 2 감산기(470)에 의해 장기 오류신호(502)로부터 감산된다.
고정 코드북오류신호(510)는 제어정보(356)와 함께 제 1 최소화 모듈(472)에 의해 수신된다. 제 1 최소화 모듈(472)은 전술한 도 10에 도시된 제 2 최소화 모듈(400)과 마찬가지로 동작한다. 검색처리는 제 1 최소화 모듈(472)이 각각의 서브프레임에 대한 고정 코드북(390)으로부터 고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터를 선택한다. 고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터는 고정 코드북 오류신호(510)의 에너지를 최소화한다. 지수는 전술한 바와 같이 고정 코드북벡터(vk c)에 대한 최선의 벡터를 식별하고, 고정 코드북 컴포넌트(146b, 178b)를 형성한다.
4.2.2.1 풀레이트 코덱에 대한 고정 코드북 검색
실시예에서 도 4에 도시된 8펄스 코드북(162)은 전술한 바와 같이 풀레이트 코덱(22)에 의한 타입 1의 프레임에 대한 4개의 서브프레임의 각각에 사용된다. 고정 코드북 벡터(vk c)(504)에 대한 타겟은 전술한 바와 같이 장기 오류신호(502)이다. t'(n)으로 표시한 장기 오류신호(502)는 수학식 22에 따라 제거된 초기 프레임 처리모듈(44)로부터 어댑티브 코드북기여와 함께 t(n)으로 표시된 수정 가중 음성(350)에 기초하여 결정된다.
고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터에 대한 검색중에 피치 보강은 전방향으로 적용될 수 있다. 또한 검색절차는 고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터를 결정하도록 제어된 복잡성과 함께 반복적인 검색절차를 이용하여 고정 코드북 오차(508)를 최소화한다. 게인(gk c)(506)으로 표시되는 초기 고정 코드북 게인은 검색중에 결정된다. 지수는 고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터를 식별하여 전술한 바와 같이 고정 코드북 컴포넌트(146b)를 형성한다.
4.2.2.2 1/2 레이트 코덱에 대한 고정 코드북 검색
실시예에서, 장기오차는 전술한 바와 같이 1/2 레이트코덱(24)에 대하여 타입 1로서 분류된 프레임에 대한 3개의 서브프레임의 각각에 대하여 13비트로 표시된다. 장기오차는 풀레이트 코덱(22)내의 고정 코드북 검색과 유사한 방식으로 결정될 수 있다. 타입 0의 프레임에 대한 1/2 레이트코덱(24)에 대하여 고정 코드북 검색과 유사하게 고주파 노이즈 주입, 이전 서브프레임 내의 높은 상관에 의해 결정된 추가적인 펄스들, 및 약한 단기 스펙트럼 필터는 제 2 합성 필터(462)의 임펄스 응답에 도입될 수 있다. 또한 전방 피치 보강은 제 2 합성필터(42)의 임펄스 응답에 도입될 수 있다.
실시예에서 전체의 검색이 도 5에 도시된 바와 같이 2펄스 코드북(196)과 3펄스 코드북(197)에 대하여 실행된다. 펄스 코드북(196, 197)과, 고정 코드북 오류신호(510)를 최소화하는 고정 코드북 벡터(vk c)에 대한 최선의 벡터는 각각의 서브프레임에 대한 장기오차의 표시를 위해 선택된다. 또한 게인(gk c)(506)으로 표시된 초기 고정 코드북 게인은 풀레이트 코덱(22)과 유사한 검색중에 결정된다. 지수는 고정코드북 벡터(vk c)(504)에 대한 최선의 벡터를 식별하며, 고정 코드북컴포넌트(178b)를 형성한다.
전술한 바와 같이, F1 또는 H1 제 2 서브프레임 처리모듈(74, 84)은 서브프레임기반으로 동작한다. 그러나 F1 또는 H1 제 2 프레임 처리모듈(76 또는 86)은 프레임 기반으로 동작한다. 따라서 F1 또는 H1 제 2 서브프레임 처리모듈(74 또는 84)에 의해 결정되는 파라미터는 프레임 기반으로 나중 사용을 위해 버퍼링 모듈(488)에 저장된다. 실시예에서 저장된 파라미터는 어댑티브 코드북 벡터(vk a)(498)에 대한 최선의 벡터와 고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터이다. 또한 초기 어댑티브 및 고정 코드북 게인을 나타내는 게인(g k a, gk c)(496, 506)이 저장된다. 수정된 타겟 신호(512)의 생성은 후술하기로 한다.
이때 어댑티브 코드북 벡터(vk a)(498)에 대한 최선의 벡터, 고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터, 및 양자화된 피치게인(g k a)에 대한 최선의 피치게인이 식별된다. 이들 최선의 벡터와 최선 피치게인을 이용하여 게인(gk c)(506)에 대한 최선의 고정 코드북 게인이 결정될 것이다. 게인(gk c)(506)에 대한 최선의 고정 코드북 게인은 비양자화된 초기 고정 코드북 게인을 대체할 것이다. 최선의 고정 코드북 게인을 결정하기 위해 각각의 서브프레임에 대한 고정 코드북 게인의 결합 지연된 양자화는 제 2 프레임 처리 모듈(76, 86)에 의해 실행된다.
4.2.3 제 2 프레임 처리 모듈
제 2 프레임 처리모듈(76, 86)은 고정 게인 컴포넌트(150b, 182b)에 의해 표시되는 고정 코드북 게인을 생성하도록 프레임 기반으로 동작가능하다. 우선 수정된 타겟(512)은 타입 0으로서 분류된 프레임의 게인 결정 및 양자화와 유사한 방식으로 결정된다. 수정된 타겟(512)은 각각의 서브프레임에 대하여 결정되며, t''(n)으로 표시된다. 수정된 타겟은 수학식 18로부터 유도된 고정 코드북 게인의 초기값과 어댑티브코드북게인뿐 아니라 어댑티브 코드북벡터(vk a)(498) 및 고정 코드북 벡터(vk c)(504)에 대한 최선의 벡터를 이용하여 다음의 수학식 23에 의해 유도될 수 있다.
검색에서 사용될 각각의 서브프레임에 대한 고정 코드북 게인에 대한 초기값은 수학식 24를 최소화함으로써 구해질 수 있다.
여기에서 νa(n)은 특정 서브프레임에 대한 어댑티브코드북 기여이고, νc(n)은 특정 서브프레임에 대한 고정 코드북 기여이다. 또한g a는 양자화된 고정 코드북 게인(g k c)(513)으로서 엘리먼트의 하나인 특정 서브프레임에 대해 양자화되고 정규화된 어댑티브 코드북 게인이다. 계산된 고정 코드북 게인(gc)은 버퍼링된 수정된 타겟신호(512)와 제 3 재합성된 음성신호 사이의 최선의 에너지 매칭을 제공하기 위해 추가로 정규화되고 보정된다. 이전 서브프레임으로부터의 비양자화된 고정 코드북 게인은 수학식 21에 따라 다음 서브프레임의 처리를 위한 어댑티브코드북 벡터(vk a)를 생성하도록 사용될 수 있다.
양자화된 고정 코드북게인(g k c)(513)에 대한 벡터에 대한 검색은 3D/4D VQ 게인 코드북(492) 내에서 실행된다. 3D/4D VQ 게인(492) 코드북(492)은 전술한 다차원 게인 양자화기 및 관련 게인 양자화표일 수 있다. 실시예에서 3D/4D VQ 게인 코드북(492)은 풀레이트 코덱(22)에 대한 전술한 4D 지연 VQ 게인 양자화기(168)일 수 있다. 전술한 바와 같이 4D 지연 VQ 게인 양자화기(168)는 표 5에 도시된 관련 지연 게인 양자화표를 이용하여 동작가능하다. 다른 실시예에서 3D/4D VQ 게인 코드북(492)은 1/2 레이트코덱(24)을 위한 전술한 3D 지연 VQ 게인 양자화기(200)일 수 있다. 3D 지연 VQ 게인 양자화기(200)는 전술한 표 8에 나타낸 지연된 게인 양자화표를 이용하여 동작가능하다.
3D/4D VQ 게인 코드북(492)은 전술한 도 10의 2D VQ 게인 코드북(412)과 유사한 에너지를 최소화하는 양자화된 고정 코드북게인(g k c)(513)에 대한 벡터를 위해 검색될 수 있다. 3D/4D 게인 코드북(492) 내의 양자화된 벡터는 실제로 전술한 바와 같이 예측된 고정 코드북 게인을 위한 보정인자를 나타낸다. 검색중에 제 3 승산기(476)는 수정된 타겟(512)의 결정 다음에 어댑티브 코드북 벡터(vk a)(498)에 양자화된 피치게인(g k a)(496)을 곱한다. 또한 제 4 승산기(478)는 고정 코드북 벡터(vk c)(504)에 양자화된 고정 코드북게인(g k c)(513)을 곱한다. 가산기(480)는 승산기(476, 478)로부터의 최종신호를 가산한다.
가산기(480)로부터의 최종신호는 제 3 재합성 음성신호(514)를 생성하도록 제 3 합성필터(482)와 지각적 가중필터 모듈(484)을 통과한다. 제 1 및 제 2 합성필터(460, 462)처럼 제 3 합성필터(482)는 LSF 양자화 모듈(334)로부터 처리의 일부로서 양자화된 LPC 계수 Aq(z) (342)를 수신한다. 제 3 감산기(486)는 버퍼링 모듈(488)에 이미 저장되어 있는 수정된 타겟신호(512)로부터 제 3 재합성 음성신호(514)를 감산한다. 최종신호는 제 3 오류신호(516)로서 언급되는 가중 평균평방오류이다.
제 3 최소화 모듈(490)은 3D/4D VQ 게인 코드북(492)에 의한 고정 코드북 게인의 양자화로부터 결과되는 오류를 나타내는 제 3 오류신호(516)를 수신한다. 제 3 최소화 모듈(490)은 제 3 오류신호(516)의 에너지를 감축시키기 위해 3D/4D VQ게인 코드북(492)으로부터 벡터의 검색 및 선택을 제어하도록 제 3 오류신호(516)를 이용한다. 검색과정은 제 3 최소화 모듈(490)이 제 3 오류신호(516)의 오류를 최소화하는 각각의 서브프레임에 대하여 3D/4D VQ 게인 코드북(492)으로부터 최선의 벡터를 선택할 때까지 반복된다. 일단 제 3 오류신호(516)의 에너지가 최소화되면 3D/4D VQ 게인 코드북(492) 내의 양자화된 고정 코드북 게인(g k c)(513)의 지수 위치는 풀레이트 코덱(22)에 대한 고정 코드북 게인 컴포넌트(150b)와 1/2 레이트코덱(24)에 대한 고정 코드북 게인 컴포넌트(182b)를 생성하도록 사용된다.
4.2.3.1 3D/4D VQ 게인 코드북
실시예에서, 3D/4D VQ 게인 코드북(492)가 4차원 코드북이면 그것은 수학식 25를 최소화하기 위하여 검색될 수 있다.
여기에서, 양자화된 피치게인{g 1 a,g 2 a,g 3 a,g 4 a}은 초기 프레임 처리모듈(44)에서 비롯되고, {t1(n), t2(n), t3(n), t4(n)}, {ν1 a(n), ν2 a(n), ν3 a(n), ν4 a(n)} 및 {ν1 c(n), ν2 c(n), ν3 c(n), ν4 c(n)}은 전술한 바와 같이 서브프레임 처리중에 버퍼링된다. 실시예에서 고정 코드북 게인{g 1 c,g 2 c,g 3 c,g 4 c}은 10비트 코드북으로부터 유도되며, 여기에서 코드북의 엔트리는 전술한 바와 같이 예측 고정 코드북에 대한 4차원 보정인자를 포함한다. 또한 n=40은 프레임당 40개의 샘플을 나타낸다.
다른 실시예에서 3D/4D VQ 게인 코드북(492)이 3차원 코드북이면 이것은 다음의 수학식 26을 최소화하기 위해 검색될 수 있다.
여기에서 양자화된 피치게인{g 1 a,g 2 a,g 3 a}은 초기 프레임 처리모듈(44)에서 비롯되고, {t1(n), t2(n), t3(n)}, {ν1 a(n), ν2 a(n), ν3 a(n)} 및 {ν1 c(n), ν2 c(n), ν3 c(n)}은 전술한 바와 같이 서브프레임 처리중에 버퍼링된다. 실시예에서 고정 코드북 게인{g 1 c,g 2 c,g 3 c}은 8비트 코드북으로부터 유도되며, 여기에서 코드북의 엔트리는 전술한 바와 같이 예측 고정 코드북에 대한 3차원 보정인자를 포함한다. 고정 코드북 게인의 예측은 로그 도메인 내의 고정 코드북 에너지의 이동 평균 예측에 기초한다.
5.0 디코딩 시스템
도 12를 참조하면 도 3의 풀레이트 및 1/2 레이트 디코더(90, 92)를 나타내는 확장블록도가 도시되어 있다. 풀레이트 또는 1/2 레이트 디코더(90 또는 92)는 여기 재구성 모듈(104, 106, 114, 116)과 선형 예측 계수(LPC) 재구성 모듈(107, 118)을 포함한다. 여기 재구성 모듈(104, 106, 114, 116)의 각각의 1실시예는 어댑티브 코드북(368), 고정 코드북(390), 2D VQ 게인 코드북(412), 3D/4D 개방루프 VQ 코드북(454), 및 3D/4D VQ 게인 코드북(492)을 포함한다. 여기 재구성 모듈(104, 106, 114, 116)은 또한 제 1 승산기(530), 제 2 승산기(532), 및 가산기(534)를 또한 포함한다. 실시예에서 LPC 재구성 모듈(107, 118)은 LSF 디코딩 모듈(536) 및 LSF 변환모듈(538)을 포함한다. 또한 1/2 레이트 코덱(24)은 예측자 스위치 모듈(336)을 포함하고, 풀레이트 코덱(22)은 보간 모듈(338)을 포함한다.
또한 도 12에는 합성 필터모듈(98)과 후처리 모듈(100)이 도시되어 있다. 실시예에서 후처리 모듈(100)은 단기 후필터 모듈(540), 장기 필터 모듈(542), 틸트 보상 필터모듈(544), 및 어댑티브게인 제어모듈(546)을 포함한다. 레이트 선택에 따라 비트스트림은 후처리된 합성음성(20)을 생성하도록 디코드될 수 있다. 디코더(90, 92)는 비트스트림의 컴포넌트의 역매핑을 알고리즘 파라미터에 대하여 실행한다. 역매핑은 풀레이트 및 1/2 레이트 코덱(22, 24) 내의 타입분류 종속 합성에 뒤따른다.
1/4 레이트 코덱(26)과 1/8 레이트 코덱(28)은 풀레이트 및 1/2 레이트 코덱(22, 24)과 유사하다. 그러나 1/4 레이트 및 1/8 레이트 코덱(26, 28)은 어댑티브 및 고정 코드북(368, 390)과 관련 게인 대신에 전술한 바와 같이 아직 유사한 난수의 벡터를 이용한다. 난수와 에너지 게인은 프레임의 단기여기를 나타내는 여기 에너지를 재구성하도록 이용될 수 있다. LPC 재구성 모듈(122, 126)은 또한 예측자 스위치 모듈(336) 및 보간 모듈(338)을 제외하고는 풀레이트 및 1/2 레이트코덱(22, 24)과 유사하다.
5.1 여기 재구성
풀레이트 및 1/2 레이트 디코더(90, 92)에서 여기 재구성 모듈(104, 106, 114, 116)의 동작은 대부분 타입 컴포넌트(142, 174)에 의해 제공되는 타입분류에 대부분 종속된다. 어댑티브 코드북(368)은 피치트랙(348)을 수신한다. 피치트랙(348)은 인코딩 시스템(12)에 의해 비트스트림에 제공된 어댑티브코드북 컴포넌트(144, 16)로부터 디코딩 시스템(12)에 의해 재구성된다. 타입 컴포넌트(142, 174)에 의해 제공되는 타입분류에 따라 어댑티브코드북(368)은 양자화된 어댑티브 코드북 벡터(vk a)(550)를 승산기(530)에 제공한다. 승산기(530)는 양자화된 어댑티브코드북 벡터(vk a)(550)에 어댑티브 코드북 게인 벡터(gk a)(552)를 곱한다. 어댑티브 코드북게인 벡터(vk a)(550)의 선택은 또한 타입 컴포넌트(142, 174)에 의해 제공되는 타입분류에 따른다.
실시예에서, 만약 프레임이 풀레이트 코덱(22)에서 타입 0으로서 분류되면 2D VQ 게인 코드북(412)은 어댑티브코드북 게인 벡터(gk a)(552)를 승산기(530)에 제공한다. 어댑티브 코드북 게인 벡터(gk a)(552)는 어댑티브 및 고정 코드북 게인 컴포넌트(148a, 150a)로부터 결정된다. 어댑티브 코드북 게인 벡터(gk a)(552)는 전술한 바와 같이 F0 제 1 서브프레임 처리모듈의 양자화부(366) 및 게인에 의해 결정된 양자화된 게인 벡터(g ac)(433)에 대한 최선의 벡터의 일부와 동일하다. 양자화된 어댑티코드북 벡터(vk a)(550)는 폐루프 어댑티브코드북 컴포넌트(144b)로부터 결정된다. 유사하게 양자화된 어댑티브코드북 벡터(vk a)(550)는 F0 제 1 서브프레임 처리모듈(70)에 의해 결정된 어댑티브코드북 벡터(va)(382)에 대한 최선의 벡터와 동일하다.
2D VQ 게인 코드북(412)은 2차원이며, 승산기(530)에 어댑티브 코드북 게인 벡터(gk a)(552)를 제공하고, 승산기(532)에 고정 코드북 게인 벡터(gk c)(550)를 제공한다. 고정 코드북 게인 벡터(gk c)(554)는 어댑티브 및 고정 코드북 게인컴포넌트(148a, 150a)로부터 유사하게 결정되며, 양자화된 게인 벡터(g ac)(433)에 대한 최선의 벡터의 일부이다. 또한 타입분류에 기초하여 고정 코드북(390)은 양자화된 고정 코드북 벡터(vk a)(556)를 승산기(532)에 제공한다. 양자화된 고정 코드북 벡터(vk a)(556)는 코드북 식별, 펄스위치(또는 1/2 레이트 코덱(24)에 대한 가우시안 코드북(195)), 및 고정 코드북 컴포넌트(146a)에 의해 제공되는 펄스부호로부터 재구성된다. 양자화된 고정 코드북 벡터(vk a)(556)는 전술한 바와 같이 F0 제 1 서브프레임 처리모듈(70)에 의해 결정된 고정 코드북 벡터(vc)(402)에 대한 최선의 벡터와 동일하다. 승산기(532)는 양자화된 고정 코드북 벡터(vk a)(556)에 고정 코드북 게인 벡터(gk c)(554)를 곱한다.
만약 프레임의 타입분류가 타입 1이면 다차원 벡터 양자화기는 어댑티브 코드북 게인 벡터(gk a)(552)를 승산기(530)에 제공한다. 여기에서 다차원 벡터 양자화기 내에서 차원의 수는 서브프레임의 수에 따른다. 실시예에서 다차원 벡터 양자화기는 3D/4D 개방 루프 VQ(454)일 수 있다. 유사하게 다차원 벡터 양자화기는 승산기(532)에 고정 코드북 게인 벡터(gk c)(554)를 제공한다. 어댑티브 코드북 게인 벡터(gk a)(552)와 고정 코드북 게인 벡터(gk c)(554)는 게인 컴포넌트(147, 179)에 의해 제공되고, 양자화된 피치게인(g k a)(496) 및 양자화된 고정 코드북 게인(g k c)(513)와 각각 동일하다.
타입 0 또는 타입 1로서 분류된 프레임에서 제 1 승산기로부터의 출력은 가산기(534)에 의해 수신되며, 제 2 승산기(532)로부터의 출력에 가산된다. 가산기(534)로부터의 출력은 단기여기이다. 단기여기는 단기 여기라인(128) 상의 합성 필터모듈(98)에 제공된다.
5.2 LPC 재구성
디코더(90, 92)내의 단기(LPC) 예측계수의 생성은 인코딩 시스템(12)에서의 처리와 유사하다. LSF 디코딩 모듈(536)은 LSF 컴포넌트(140, 172)로부터 양자화된 LSF를 재구성한다. LSF 디코딩 모듈(536)은 동일한 LSF 예측 오류 양자화표와 인코딩 시스템(12)에 의해 사용된 LSF 예측자 계수표를 이용한다. 1/2 레이트 코덱(24)에 있어서, 예측자 스위치 모듈(336)은 LSF 컴포넌트(140, 172)에 의해 명령을 받을 때 예측된 LSF를 계산하도록 예측자 계수의 세트 중 하나를 선택한다. 양자화된 LSF의 보간은 인코딩 시스템(12)에서 사용된 동일한 선형 보간경로를 이용하여 발생한다. 타입 0으로서 분류된 프레임에 대한 풀레이트 코덱(22)에 대하여 보간 모듈(338)은 LSF 컴포넌트(140, 172)에 의해 명령을 받을 때 인코딩 시스템(12)에 사용된 동일한 보간경로의 하나를 선택한다. 양자화된 LSF의 가중은 LSF변화모듈(538) 내의 양자화된 LPC 계수 Aa(z)(342)로 변환에 뒤따른다. 양자화된 LPC 계수 Aa(z)(342)는 단기 예측계수라인(130) 상의 합성필터(98)에 공급되는 단기 예측계수이다.
5.3 합성필터
양자화된 LPC 계수 Aa(z)(342)는 단기 예측계수를 필터링하도록 합성필터(98)에 의해 사용될 수 있다. 합성필터(98)는 후처리에 앞서 합성음성을 생성하는 단기 역예측 필터일 수 있다. 합성된 음성은 후처리 모듈(100)을 통과한다. 단기 예측계수는 또한 후처리 모듈(100)에 공급될 수 있다.
5.4 후처리
후처리 모듈(100)은 레이트 선택 및 단기 예측계수에 기초하여 합성음성을 처리한다. 단기 후필터 모듈(540)은 우선 합성음성을 처리한다. 단기 후필터 모듈(540) 내의 필터링 파라미터는 도 9를 참조하여 이미 설명한 바와 같이 특징모듈(328)에 의해 결정된 장기 스펙트럼 특성과 레이트 선택에 따라 적합화될 수 있다. 단기 후필터는 다음의 수학식 27으로 설명된다.
예시의 실시예에서, γ1,n=0.75γ1,n-1+0.25, γ2=0.75, γ0는 레이트 선택 및 장기 스펙트럼 특성에 기초하여 결정된다. 처리는 장기 필터모듈(542) 내에서 계속된다.
장기 필터모듈(542)은 합성음성 내의 피치주기에 대해 정밀한 튜닝 검색을 실행한다. 실시예에서 정밀한 튜닝 검색은 피치상관 및 레이트 종속 게인 제어된 하모닉 필터링을 이용하여 실행한다. 하모닉 필터링은 1/4 레이트 코덱(26)과 1/8 레이트 코덱(28)에 대해서는 비활성으로 된다. 실시예에서 틸트 보상 필터모듈(544)은 1차 유한 임펄스 응답(Finite Impulse Response; FIR) 필터이다. FIR 필터는 도 9를 참조로 이미 설명한 바와 같은 지각적 가중필터 모듈(314)의 스펙트럼 필터에 따라 튜닝될 수 있다. 필터는 또한 도 9를 참조로 설명한 특징모듈(328)에 의해 결정된 장기 스펙트럼 특성에 따라 튜닝될 수 있다.
후필터링은 어댑티브 게인 제어 모듈(546)로 종결될 수 있다. 어댑티브 게인 제어 모듈(546)은 후처리에 앞서 후처리 모듈(100) 내에서 처리된 합성음성의 에너지 레벨을 합성음성의 레벨에 이르게 해준다. 또한 레벨의 평활화 및 적응은 어댑티브 게인 제어모듈(546) 내에서 실행될 수 있다. 후처리 모듈(100)에 의한 처리의 결과는 후처리된 합성음성(20)이다.
디코딩 시스템(16)의 실시예에서, 예컨대 무선송신 중의 신호손실 때문에 소거된 디코딩 시스템(16)에 의해 수신된 프레임은 디코딩 시스템(16)에 의해 식별된다. 디코딩 시스템(16)은 다음으로 프레임 소거 은닉 작업을 실행한다. 이 작업은 이전 프레임으로부터 소거된 프레임에 대하여 음성 파라미터를 보간하는 것을 포함한다. 보간된 음성 파라미터는 소거된 프레임을 합성하기 위해 사용될 수 있다. 또한 파라미터의 평활화는 소거 프레임에 후속하는 프레임에 대한 연속 음성을 보증하도록 실행될 수 있다. 다른 실시예에서 디코딩 시스템(16)은 조악한 레이트 결정 능력을 포함한다. 디코딩 시스템(16)에 의해 수신된 프레임에 대한 조악한 레이트 선택의 식별은 비트스트림의 불법적인 비트열을 식별하고 특정 프레임이 소거되었음을 선언함으로써 달성된다.
이미 설명한 음성압축 시스템(10)의 실시예들은 풀레이트 코덱(22), 1/2 레이트 코덱(24), 1/4 레이트 코덱(26) 및 1/8 레이트 코덱(28)을 이용하여 가변 레이트 음성압축을 실행한다. 이들 코덱(22, 24, 26, 28)은 음성신호(18)의 프레임을 인코드하도록 상이한 인코딩방법을 이용하여 상이한 비트할당과 비트 레이트로 동작한다. 풀레이트 코덱(22)과 1/2 레이트 코덱(24)의 인코딩 방법은 프레임의 타입분류에 따라 상이한 지각적 매칭, 상이한 파형매칭, 및 상이한 비트할당을 갖는다. 1/4 레이트 코덱(26)과 1/8 레이트 코덱(28)은 파라미터의 지각적 표현만을 이용하여 프레임을 인코딩한다. 음성압축 시스템(10)은 후처리된 합성음성(20)의 지각적 품질의 최적화로 원하는 평균비트레이트의 균형을 유지하도록 코덱(22, 4, 26, 28)을 선택적으로 활성화시킨다.
본 발명의 다양한 실시예가 설명되어 있으나 당해 분야의 기술자라면 보다 많은 실시예와 수단들이 가능하며 이들은 본 발명의 범위에 해당되는 것이 분명하다. 따라서 본 발명은 첨부된 청구의 범위와 그들의 등가물에 비추어 제한되어서는 안된다.

Claims (3)

  1. 음성신호(18)의 프레임들을 인코딩 및 디코딩하여 합성음성(20)을 생성하는 음성압축 시스템(10)에 있어서,
    상기 프레임들을 인코드 및 디코드하도록 동작가능하고, 각 프레임의 레이트 선택 및 타입분류에 기초하여 선택적으로 활성화되는 풀레이트 코덱(22)과;
    상기 프레임들을 인코드 및 디코드하도록 동작가능하고, 각 프레임의 상기 레이트 선택 및 타입분류에 기초하여 선택적으로 활성화되는 1/2 레이트 코덱(24)과;
    상기 프레임들을 인코드 및 디코드하도록 동작가능하고, 레이트 선택에 기초하여 선택적으로 활성화되는 1/4 레이트 코덱(26)과;
    상기 프레임들을 인코드 및 디코드하도록 동작가능하고, 상기 레이트 선택에 기초하여 선택적으로 활성화되는 1/8 레이트 코덱(28)을 포함하는 것을 특징으로 하는 음성압축시스템.
  2. 음성신호(18)의 프레임을 인코딩하는 도중에 생성되는 고정 코드북 게인(fixed codebook gain)과 어댑티브 코드북 게인(adaptive codebook gain)을 인코딩하는 여기처리 모듈(54)에 있어서,
    상기 프레임의 타입분류를 타입 0 및 타입 1로 선택적으로 지정하도록 동작가능한 타입 선택기 모듈(54)과;
    상기 프레임의 타입분류가 타입 0이면 상기 고정 코드북 게인 및 어댑티브 코드북 게인을 양자화하도록 동작가능한 제 1 서브프레임 처리모듈(70, 80)로서, 2차원 벡터 양자화기(164)와, 상기 2차원 벡터 양자화기(164)로 검색할 수 있고 상기 고정 코드북 게인과 어댑티브 코드북 게인을 결합하여 인코드하도록 상기 2차원 벡터 양자화기(164)에 의해 선택가능한 복수의 미리 결정된 벡터를 포함하는 2D 게인 양자화표를 포함하는 제 1 서브프레임 처리 모듈(70, 80)과;
    타입 1로서의 상기 프레임의 타입분류에 기초하여 상기 고정 코드북 게인를 양자화하도록 동작가능한 제 2 프레임 처리모듈(76, 86)로서, 다차원 지연 벡터 양자화기(168, 200)와, 상기 고정 코드북 게인을 인코드하도록 상기 다차원 지연 벡터 양자화기(168, 200)로 선택가능한 복수의 미리 결정된 벡터를 갖는, 상기 다차원 지연 벡터 양자화기(168, 200)에 의해 선택가능한 지연 게인 양자화표를 포함하는 제 2 프레임 처리모듈(76, 86)을 포함하는 것을 특징으로 하는 여기 처리 모듈.
  3. 음성신호(18)의 프레임을 나타내는 비트스트림에 있어서,
    비트스트림 내에 하나의 비트를 형성하고, 상기 프레임의 타입분류를 제공하며, 코딩을 제어하는 타입 컴포넌트(142, 174)와;
    상기 비트스트림에 복수의 비트를 형성하고, 디지털 형태로 인코드된 상기 프레임의 스펙트럼 표시를 포함하는 LSF 컴포넌트(140, 172)와;
    상기 비트스트림에 복수의 비트를 형성하고, 디지털 형태로 인코드된 상기 프레임의 장기 예측자를 포함하는 어댑티브 코드북 컴포넌트(144, 176)와;
    상기 비트스트림에 복수의 비트를 형성하고, 디지털 형태로 인코드된 상기 프레임의 장기오차를 포함하는 고정 코드북 컴포넌트(146, 178)와;
    상기 비트스트림에 복수의 비트를 형성하고, 디지털 형태로 인코드된 어댑티브 코드북 게인과 고정 코드북 게인을 포함하는 게인 컴포넌트(147, 179)를 구비하는 것을 특징으로 하는 비트스트림.
KR10-2002-7003768A 1999-09-22 2000-09-15 멀티모드 음성 인코더 KR100488080B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15532199P 1999-09-22 1999-09-22
US60/155,321 1999-09-22
US09/574,396 US6782360B1 (en) 1999-09-22 2000-05-19 Gain quantization for a CELP speech coder
US09/574,396 2000-05-19

Publications (2)

Publication Number Publication Date
KR20020033819A true KR20020033819A (ko) 2002-05-07
KR100488080B1 KR100488080B1 (ko) 2005-05-06

Family

ID=26852220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7003768A KR100488080B1 (ko) 1999-09-22 2000-09-15 멀티모드 음성 인코더

Country Status (8)

Country Link
EP (1) EP1214706B9 (ko)
JP (2) JP4176349B2 (ko)
KR (1) KR100488080B1 (ko)
CN (1) CN1245706C (ko)
AT (1) ATE272885T1 (ko)
AU (1) AU7486200A (ko)
BR (1) BRPI0014212B1 (ko)
DE (1) DE60012760T2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463418B1 (ko) * 2002-11-11 2004-12-23 한국전자통신연구원 Celp 음성 부호화기에서 사용되는 가변적인 고정코드북 검색방법 및 장치
KR101254876B1 (ko) * 2008-11-21 2013-04-15 야마하 가부시키가이샤 노이즈 게이트, 수음 장치 및 노이즈 제거 방법

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2867649A1 (fr) * 2003-12-10 2005-09-16 France Telecom Procede de codage multiple optimise
WO2006098274A1 (ja) * 2005-03-14 2006-09-21 Matsushita Electric Industrial Co., Ltd. スケーラブル復号化装置およびスケーラブル復号化方法
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
CN101371295B (zh) * 2006-01-18 2011-12-21 Lg电子株式会社 用于编码和解码信号的设备和方法
US8451915B2 (en) * 2007-03-21 2013-05-28 Samsung Electronics Co., Ltd. Efficient uplink feedback in a wireless communication system
KR20100006492A (ko) * 2008-07-09 2010-01-19 삼성전자주식회사 부호화 방식 결정 방법 및 장치
CA2972808C (en) 2008-07-10 2018-12-18 Voiceage Corporation Multi-reference lpc filter quantization and inverse quantization device and method
KR101170466B1 (ko) 2008-07-29 2012-08-03 한국전자통신연구원 Mdct 영역에서의 후처리 방법, 및 장치
JP2010160496A (ja) * 2010-02-15 2010-07-22 Toshiba Corp 信号処理装置および信号処理方法
US9047875B2 (en) * 2010-07-19 2015-06-02 Futurewei Technologies, Inc. Spectrum flatness control for bandwidth extension
US9626982B2 (en) 2011-02-15 2017-04-18 Voiceage Corporation Device and method for quantizing the gains of the adaptive and fixed contributions of the excitation in a CELP codec
EP3686888A1 (en) * 2011-02-15 2020-07-29 VoiceAge EVS LLC Device and method for quantizing the gains of the adaptive and fixed contributions of the excitation in a celp codec
US9026434B2 (en) * 2011-04-11 2015-05-05 Samsung Electronic Co., Ltd. Frame erasure concealment for a multi rate speech and audio codec
US9336789B2 (en) * 2013-02-21 2016-05-10 Qualcomm Incorporated Systems and methods for determining an interpolation factor set for synthesizing a speech signal
CN104517612B (zh) * 2013-09-30 2018-10-12 上海爱聊信息科技有限公司 基于amr-nb语音信号的可变码率编码器和解码器及其编码和解码方法
JP5981408B2 (ja) * 2013-10-29 2016-08-31 株式会社Nttドコモ 音声信号処理装置、音声信号処理方法、及び音声信号処理プログラム
EP3869506A1 (en) 2014-03-28 2021-08-25 Samsung Electronics Co., Ltd. Method and device for quantization of linear prediction coefficient and method and device for inverse quantization
CN112927702A (zh) 2014-05-07 2021-06-08 三星电子株式会社 对线性预测系数量化的方法和装置及解量化的方法和装置
PL2992529T3 (pl) * 2014-07-28 2017-03-31 Telefonaktiebolaget Lm Ericsson (Publ) Wyszukiwanie kształtu przez piramidowy kwantyzator wektorowy
US10109284B2 (en) * 2016-02-12 2018-10-23 Qualcomm Incorporated Inter-channel encoding and decoding of multiple high-band audio signals
US10373630B2 (en) * 2017-03-31 2019-08-06 Intel Corporation Systems and methods for energy efficient and low power distributed automatic speech recognition on wearable devices
WO2019068915A1 (en) * 2017-10-06 2019-04-11 Sony Europe Limited AUDIO FILE ENVELOPE BASED ON RMS POWER IN SUB-WINDOW SEQUENCES
CN108122552B (zh) * 2017-12-15 2021-10-15 上海智臻智能网络科技股份有限公司 语音情绪识别方法和装置
CN113593521B (zh) * 2021-07-29 2022-09-20 北京三快在线科技有限公司 语音合成方法、装置、设备及可读存储介质
CN118430508B (zh) * 2024-05-29 2024-09-17 中国矿业大学 基于神经音频编解码器的语音合成方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3353852B2 (ja) * 1994-02-15 2002-12-03 日本電信電話株式会社 音声の符号化方法
US5701390A (en) * 1995-02-22 1997-12-23 Digital Voice Systems, Inc. Synthesis of MBE-based coded speech using regenerated phase information

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463418B1 (ko) * 2002-11-11 2004-12-23 한국전자통신연구원 Celp 음성 부호화기에서 사용되는 가변적인 고정코드북 검색방법 및 장치
KR101254876B1 (ko) * 2008-11-21 2013-04-15 야마하 가부시키가이샤 노이즈 게이트, 수음 장치 및 노이즈 제거 방법
US9036830B2 (en) 2008-11-21 2015-05-19 Yamaha Corporation Noise gate, sound collection device, and noise removing method

Also Published As

Publication number Publication date
JP2003513296A (ja) 2003-04-08
EP1214706B1 (en) 2004-08-04
EP1214706B9 (en) 2005-01-05
AU7486200A (en) 2001-04-24
BR0014212A (pt) 2003-06-10
DE60012760D1 (de) 2004-09-09
KR100488080B1 (ko) 2005-05-06
EP1214706A1 (en) 2002-06-19
DE60012760T2 (de) 2005-08-04
CN1245706C (zh) 2006-03-15
JP4176349B2 (ja) 2008-11-05
CN1451155A (zh) 2003-10-22
BRPI0014212B1 (pt) 2016-07-26
JP2005338872A (ja) 2005-12-08
ATE272885T1 (de) 2004-08-15

Similar Documents

Publication Publication Date Title
KR100488080B1 (ko) 멀티모드 음성 인코더
US6757649B1 (en) Codebook tables for multi-rate encoding and decoding with pre-gain and delayed-gain quantization tables
US6604070B1 (en) System of encoding and decoding speech signals
US6581032B1 (en) Bitstream protocol for transmission of encoded voice signals
RU2262748C2 (ru) Многорежимное устройство кодирования
US6556966B1 (en) Codebook structure for changeable pulse multimode speech coding
US7020605B2 (en) Speech coding system with time-domain noise attenuation
US6714907B2 (en) Codebook structure and search for speech coding
Gersho Advances in speech and audio compression
US6334105B1 (en) Multimode speech encoder and decoder apparatuses
EP0732686B1 (en) Low-delay code-excited linear-predictive coding of wideband speech at 32kbits/sec
US6081776A (en) Speech coding system and method including adaptive finite impulse response filter
US7117146B2 (en) System for improved use of pitch enhancement with subcodebooks
KR20190029779A (ko) 시간 도메인 코딩과 주파수 도메인 코딩 간의 분류 향상
NZ562185A (en) Method and apparatus for vector quantizing of a spectral envelope representation
MX2013004673A (es) Codificación de señales de audio genéricas a baja tasa de bits y a retardo bajo.
MXPA04011751A (es) Metodo y dispositivo para ocultamiento de borrado adecuado eficiente en codecs de habla de base predictiva lineal.
US6205423B1 (en) Method for coding speech containing noise-like speech periods and/or having background noise
WO1997031367A1 (en) Multi-stage speech coder with transform coding of prediction residual signals with quantization by auditory models
AU766830B2 (en) Multimode speech encoder
AU2003262451B2 (en) Multimode speech encoder
Gersho Advances in speech and audio compression
Gersho Concepts and paradigms in speech coding
GB2352949A (en) Speech coder for communications unit

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

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140417

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160414

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180420

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190923

Year of fee payment: 15