KR100334202B1 - 이동전화에서고속음성압축을수행하기위한에이식 - Google Patents

이동전화에서고속음성압축을수행하기위한에이식 Download PDF

Info

Publication number
KR100334202B1
KR100334202B1 KR1019950704554A KR19950704554A KR100334202B1 KR 100334202 B1 KR100334202 B1 KR 100334202B1 KR 1019950704554 A KR1019950704554 A KR 1019950704554A KR 19950704554 A KR19950704554 A KR 19950704554A KR 100334202 B1 KR100334202 B1 KR 100334202B1
Authority
KR
South Korea
Prior art keywords
value
sequence
pitch
dsp
codebook
Prior art date
Application number
KR1019950704554A
Other languages
English (en)
Other versions
KR960702147A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22729345&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100334202(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR960702147A publication Critical patent/KR960702147A/ko
Application granted granted Critical
Publication of KR100334202B1 publication Critical patent/KR100334202B1/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
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • G10L19/07Line spectrum pair [LSP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0011Long term prediction filters, i.e. pitch estimation
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Gyroscopes (AREA)
  • Electrochromic Elements, Electrophoresis, Or Variable Reflection Or Absorption Elements (AREA)
  • Glass Compositions (AREA)
  • Executing Machine-Instructions (AREA)
  • Saccharide Compounds (AREA)
  • Stored Programmes (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Analogue/Digital Conversion (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Peptides Or Proteins (AREA)
  • Error Detection And Correction (AREA)

Abstract

응용 주문형 집적 회로(ASIC)에서 보코더를 수행하기 위한 방법 및 장치가 기술된다. 상기 장치는 감소된 지시 세트(RISC)설계에 따라 계산을 수행하는 DSP 코어(4)를 포함한다. 상기 회로는 최소 프로세서(6)로서 DSP코어(4)에 특별히 설계된 슬레이브 프로세서를 더 포함한다. 상기 장치는 특별히 설계된 블록 표준화 회로를 더 포함한다.

Description

이동전화에서 고속 음성 압축을 수행하기 위한 에이식{ASIC}
발명의 배경
I. 발명의 배경
본 발명은 음성처리, 특히 에이식(ASIC;application specific integrated circuit)에서 보코더를 실행하기 위한 개선된 방법 및 장치에 관한 것이다.
II. 관련기술에 대한 설명
디지털 기술에 의한 음성전송은 특히 먼 거리 및 디지털 무선전화 응용에 폭넓게 사용되었다. 만일 음성이 간단한 샘플링 및 디지털화에 의해 전송된다면, 초당 64킬로비트의 데이터율(kbps)이 종래의 아날로그 전화의 음성품질을 실현하기 위해 요구된다. 그러나, 음성분석후 적절하게 코딩하고 전송한 다음 수신기에서의 합성하면, 데이터율을 상당히 감소시킬 수 있다. 송신기에서 음성분석 및 코딩을 수행하고 수신기에서 합성을 수행하는 장치는 보코더로서 알려져 있다.
디지털 셀룰라 전화 표준 및 시스템에 대한 최근 개발은 이들 보코더의 필요성을 증대시켰다. 이용가능한 전송 대역폭을 더 효율적으로 사용하고 수신기에서 원음성을 더 정확하게 재생하는 진보된 보코딩 알고리즘에 대한 소망은 더 복잡한 보코딩 알로리즘을 실행하기 위해 필요한 매우 큰 계산용량을 가진 프로세서에 대한 필요성을 증대시켰다.
보코더는 음성에서 긴 기간(long term) 및 짧은 기간(short term) 리던던시의 장점을 취하며, 그 결과 계산적으로 강한 수치연산을 필요로한다. 이들 연산의 일부는 긴 시퀀스 컨벌루션, 매트릭스 인버전, 긴 시퀀스 상관등을 포함한다. 과도한 코딩 및 디코딩없이 실시간에 수행할 이들 연산에서, 음성전송의 지연은 강한 계산 자원을 필요로 한다.
디지털 신호 프로세서(DSP)는 실시간에 보코더 알로리즘을 실행해야할 때 중요한 인자이다. DSP는 보코더 알로리즘에 공통적인 산술연산을 실행해야 할 때 매우 효과적이다. DSP의 발전은 초당 40밀리온 이상의 명령율로 그들의 계산용량을 증대시켰다.
통상적인 목적을 위해 사용된 보코팅 알고리즘은 본 발명의 양수인에게 양도되고 "가변율 보코더"라는 명칭을 가진 계류중인 미합중국 특허 출원번호 제 08/004,484호에 개시된 가변율 엑사이트 선형 예측(CELP)알고리즘이다. 전술한 특허출원은 여기에 참조에 의해 통합된다.
표에 도시된 것은 통산적인 DSP를 사용하여 실행할 때 통상적인 DSP의 인코딩 부분의 단일 20밀리초 음성 프레임에 대한 런-시간 프로파일이다. 통상적인 보코딩 알로리즘의 인코딩 부분이 디코딩 부분보다 상당히 많은 처리를 필요로 하기 때문에, 단지 인코딩 과정만이 표I에 상세히 기술된다. 표I에서 언급될 DSP는 40MHz로 클럭되며 하나 이상의 클록 사이클에서 산술연산 및 다른 연산을 각각 실행한다. 제 1컬럼은 전형적인 보코딩 알고리즘의 주요 연산을 나타낸다. 제 2컬럼은 전형적인 DSP를 사용하는 보코더 알고리즘의 각각의 연산을 실행하기 위해 요구된 클럭 사이클의 수를 나타낸다. 제 3컬럼은 특정 연산에 의해 요구된 전체 처리비율을 나타낸다. 전형적인 보코딩 알고리즘은 모든 연산이 전형적인 보코딩 알고리즘의 실시간 연산에 대해서 20밀리초내에서 수행되는 것을 요구한다. 이것은 DSP가 20밀리초 프레임내에서 요구된 처리를 완성하기 위하여 요구된 클럭율로 동작할 수 있도록 알고리즘을 수행하기 위해 선택된 DSP상에서 필요로 한다. 표I에 기술된 전형적인 DSP에 대해서는, 클럭의 수를 800,000으로 한정한다.
표에서 도시된 것처럼, 피치 탐색 및 코드북 탐색 연산은 보코더 알고리즘의 인코딩 부분에서 처리시간의 75%이상을 소비한다. 대부분의 계산부하가 이들 두 개의 탐색 알고리즘에서 걸리기 때문에, 보코딩을 수행하기위해 설계된 효율적인 ASIC의 주 목적은 이들 두 개의 연산을 실행하기 위해 요구된 클럭 사이클의 수를 감소시키는 것이다.
본 발명의 방법 및 장치는 이들 탐색 연산을 실행하기 위해 필요한 명령 사이클의 수를 감소시키는 것이다. 본 발명은 보코딩 알고리즘에서 특히 중요한 연산을 더 효율적으로 수행하기 위해 최적화된 방법 및 장치를 더 제공한다. 본 발명의방법 및 장치의 응용은 전형적인 보코딩 연산 또는 음성 인코딩 또는 디코팅을 실행하는데 제한되지 않는다. 본 방법 및 장치는 에코 제거기 및 채널 등화기와 같은 디지털 신호처리 알로리즘을 이용하는 임의의 시스템에 적용될 수있다.
본 발명은 보코딩 알고리즘을 수행하기 위한 개선된 방법 및 장치에 관한 것이다.
여기에 기술된 본 발명의 전형적인 실시예는 전술한 계류중인 특허출원에 상세히 기술된 가변율 CELP알고리즘의 ASIC 실행에 관한 것이다. 본 발명의 특징은 임의의 선형 예측 코딩(LPC) 알고리즘에 동일하게 적용할수 있다. 본 발명은 감소된 클럭 사이클의 수 및 감소된 소비전력으로 보코더 알고리즘을 실행하기 위해 최적화된 구조를 도입한다. 궁극적인 최적화 목적은 전력 소비를 최소화하는 것이다. 알고리즘을 실행하기 위해 요구된 클럭의 수를 감소시키면 감소된 클럭율이 직간접적으로 전력소비를 감소시키기 때문에 클럭의 수를 감소시키는 것은 매우 중요하다. 클럭율 감소의 직접적인 효과는 상보형 금속산화물 반도체(CMOS)장치에 대한 전력소비 및 클럭율 사이의 관계 때문이다. 간접 효과는 CMOS장치에서의 소비전력 및 전압사이의 자승관계 및 클럭율을 감소시키면서 전압을 감소시키는 능력때문이다. 보코더 ASIC의 효율성은 클럭 사이클당 수행되는 처리양의 측정에 있다. 보코더 ASIC의 효율을 증가시키면, 알고리즘을 실행하기 위해 요구된 클럭 사이클의 전체수가 감소될 것이다.
보코딩 알고리즘을 실행할때 효율을 증가시키기 위한 제 1기술은 특성화된 DSP 코어 구조이다. 전형적인 실시예의 DSP코어는 3개의 랜덤 액세스 메모리(RAM)소자를 제공함으로서 메모리 스루풋을 중가시킨다. 각각의 3개의 RAM 소자는 전용 메모리 주소 발생장치를 가진다. 이러한 메모리의 3부분 구획화는 단일 사이클내에서 오퍼런트, 계산결과 및 기억결과를 모두 제공함으로서 순환 컨벌루션과 같은 연산을 효율적으로 실행할 수 있다. 오퍼런드, 계산결과 및 기억결과의 인출은 단일 결과에 대한 완전한 순환 컨벌루션이 3사이클상에서 실행되도록 파이프라인되나, 새로운 결과는 사이클마다 생성된다. 3부분으로 구획화된 메모리는 또한 보코더 알고리즘에서 다른 동작을 위한 클럭 사이클 요구를 감소시킨다. 순환 컨벌루션의 효율적인 실행은 보코더 알고리즘에서 가장 중요한 절약을 제공한다.
보코딩 알고리즘을 실행할때 효율을 증가시키기 위한 제 2기술은 최소화 프로세서로서 언급되는 DSP 코어에 개별 슬레이브 프로세서를 제공하는 것이다. 최소화 프로세서는 상관을 수행하며, 평균자승 오류(MSE)를 계산하며 DSP에 의해 그것에 제공된 데이터상의 최소MSE를 탐색한다. 최소화 프로세서는 DSP 코어를 사용하여 계산적으로 강한 상관과 최소화 태스크를 공유한다. 최소화 프로세서는 최소화 프로세서의 동작을 감시하며 특임의의 조건하에서 MSE 최소화 태스크의 동작을 감축할 수 있는 제어소자를 가진다. 이들 조건은 연속적인 탐색이 수학적으로 제한되기 때문에 현재 최소 MSE이하의 MSE를 제공할 수 없다는 조건이다. MSE 최소화 태스크를 감축하는 방법은 최소화 프로세서의 전력 절력 모드로서 언급된다.
전형적인 실시예에서 보코딩 알고리즘의 실행을 효율적으로 향상시키는 제 3수단은 블록 정규화를 효율적으로 실행하기 위한 전용 하드웨어를 제공하는 것이다. 보코딩 알고리즘의 계산에 있어서는 가능한 높은 정밀도를 유지해야 한다. 전용 하드웨어를 제공함으로서, 블록 정규화는 보코더 알고리즘에서 다른 연산과 함께 동시에 수행될 수 있어서 보코딩 알고리즘을 실행하기 위해 요구된 명령 사이클의 수를 감소시킨다.
[도면의 간단한 설명]
그외에 목적 및 장점과 함께 본 발명은 첨부된 도면을 참조로 상세히 설명될 것이다.
제 1도는 본 발명의 장치에 대한 블록도.
제 2도는 본 발명의 동작 기능적으로 설명한 블록도.
제 3도는 본 발명의 전형적인 부호화 동작에 대한 순서도.
제 4a-d도는 다양한 비율에 대한 보코더 비트할당을 기술하며 각각의 비율을 위해 사용된 패치 및 코드북 서브프레임의 수를 표시하는 한 세트의 도표.
제 5a-d도는 본 발명의 DSP코어의 전형적인 실시예에 대한 블록도.
제 6a-b도는 본 발명의 최소화 프로세서의 전형적인 실시예에 대한 블록도.
제 7도는 본 발명의 전형적인 실시예에서 실행된 것처럼 패치 탐색동작에 대한 블록도.
제 8도는 본 발명의 전형적인 실시예의 패치 탐색동작에 대한 순서도.
제 9도는 본 발명의 전형적인 실시예에서 실행된 것처럼 코드북 탐색동작에 대한 블록도.
제 10도는 본 발명의 전형적인 실시예의 코드북 탐색동작에 대한 순서도.
제 11도는 본 발명의 전형적인 실시예의 보코딩 동작에서와 같이 통신링크의한단부에서의 복호기 및 다른 단부에서의 부호기의 필터 메모리를 유지하게 하는 복호기의 부호기에 대한 블록도.
제 12도는 본 발명의 전형적인 실시예의 부호기에 대한 블록도.
바람직한 실시예의 상세한 설명
도면을 참조하면, 제 5a-d도에 기술된 제 1도의 DSP코어(4)는 3부분으로 구획된 랜럼 액세스 메모리(RAM), (RAM A 104, RAM B 122 및 RAN C 182), 읽기전용 메모리(ROM)(ROM E 114) 및 효율적인 수학 논리장치(ALU)(ALU 143)주의에 배치된다. 3배구분 RAM은 단일 RAM에서 실행될 수 있는 것이상 더 효율적인 ALU활용 및 증가된 RAM 대역폭을 제공한다. 전용 ROM, ROM E(114)는 16비트 상수를 제공한다. RAM 구분 RAM A(104), RAM B(122) 및 RAM C(182) 및 ROM, ROM E(114)는 AJU(143)에 데이터를 제공한다. RAM C(182)는 16비트 오퍼런트를 계산하며 32 비트결과의 저장하는 16비트 데이터를 제공한다.
각각의 구획은 전용 어드레스 발생유니트를 가진다. RAM A(104)는 어드레스 유니트 A(102)를 가지며, RAM B(122)는 어드레스 유니트 B(120)를 가지며, RAM C(182)는 어드레스 유니트C(186)를 가지며 ROM E(114)는 어드레스 유니트 E(112)를 가진다. 각각의 어드레스 유니트는 레지스터, 멀티플렉서 및 가산기/감산기 소자(도시안됨)를 가진다. 한 클럭 사이클에서 DSP 코어(4)는 3개의 메모리동작, 3개의 어드레스 업데이트, 수학동작(예를들어, 곱셉-누산-정규화) 및 프로세서(6)를 실행하는 데이터를 실행시킬 수있다.
명령ROM, ROM I (194)는 DSP 코어(4)의 실행 시퀀스를 제어하는 명령을 저장한다. ROM I(194)에 저장된 명령의 시퀀스는 DSP 코어(4)에 의해 실행될 프로세서능을 기술한다. ROM I(194)는 전용 어드레스 발생유니트, IP 카운터 및 스택(196)를 가진다.
RAM 어드레스 발생유니트 또는 레지스터 파일, 어드레스 유니트 A(102), 어드레스 유니트 B(120) 및 어드레스 유니트C(186)는 대응 RAM 동작에 대한 어드레스 및 데이터를 제공한다. 데이터는 레지스터 파일 소자로부터 동일 어드레스 유니트내의 다른 레지스터 파일소자, 또는 각각의 RAM까지 이동될 수있다. 전형적인 실시예에 있어서, 어드레스 유니트A(102)는 멀티플렉서(124)를 통해 RAM B(122)에 데이터를 제공하며, 에드레스 유니트 C(186)는 멀티플렉서(180)를 통해 RAM C(182)에 데이터를 제공한다.
레지스터 파일소자는 동일한 어드레스 유니트내의 다른 레지스터 파일소자로부터 또는 RAM으로부터 중간 데이터, IMM(제 5a-d)도에 기술된 것처럼) 및 데이터를 허용한다. 그러므로, 모든 경우에 용어"중간 데이터"는 명령 디코더(192)에 의해 제공된 데이터에 관계할 것이다. 전형적인 실시예에 있어서, RAM A(104)은 데이터를 멀티플렉서(100)를 통해 어드레스 유니트 A에 제공하며, RAM B(122)은 데이터를 멀티플렉서(118)를 통해 어드레스 유니트 B(120)에 제공하며, RAM C(182)은 멀티플렉서(118)를 통해 어드레스 유니트(C)에 제공한다. 각각의 어드레스 유니트는 내부적으로 제공된 가산기/감산기(도시안됨)에 에 의해 자동 포스트 증가 및 포스트 감소를 제공한다. 전형적인 실시예에 있어서, 어드레스 유니트(120)는 자동 모뮬 어드레싱 및 직접 메모리 액세스(DMA)에 대한 포인터로서 사용된 두 개의 전용레지스터 파일소자(도시안됨)를 제공한다.
어드레스 유니트 E(112)는 공동 검색을 위해 최적화된다. 그것은 멀티플렉서(110)를 통해 중간데이터 및 멀티플렉서(110)를 통해 중간데이터 또는 멀티플렉서(168)를 통해 누산기(C0REG 164 또는 C1REG 166)로부터 데이터를 읽는 기본 레지스터를 포함한다. 오프셋 레지스터는 내부 가산기/감산기(도시안됨)를 통해 자동 포스트 증가 및 포스트 감소를 제공한다.
IP 카운터 및 스택(196)은 어드레싱 ROM I(194)의 기능을 수행하는 어드레스 포인터를 포함한다. 어드레스 시퀀스는 명령 복호기(192)에 의해 제어된다. 어드레스 데이터는 IP카운터 및 스택(196)내에서 내부적으로 이동하며 중간 데이터를 읽는다.
데이터는 RAM A(104), RAM B(122) 또는 RAM C(182)로부터 ALU(143)내의 레지스터까지 이동될 수있다. 데이터는 누산기(COREG(164) 또는 C1REG(166))로부터 RAM A(104), RAM B(122) 또는 RAM C(182)까지 이동될 수있다. 데이터는 OREG로부터 RAM C(182)까지 이동될 수있다.
RAM A(104)는 멀티플렉서(106)를 통해 어드레스 유니트 A(102)로부터 데이터를 읽는다. RAM A(104)는 멀티플렉서(168, 106)를 통해 노산기(C0REG(164) 또는 C1REG(166)로부터 데이터를 읽는다. RAM B(122)는 멀티플렉서(124)를 통해 어드레스 유니트 B(120)로부터 데이터를 읽는다. RAM B(122)는 멀티플렉서(168, 124)를 통해 누산기(C0REG(164) 또는 C1REG(166))로부터 데이터를 읽는다. RAM B(122)는 멀티플렉서(124)를 통해 DMA_INPUT(제 5a-d도에 도시된 것처럼) 또는 INREG(128)로부터 데이터를 읽는다. RAM C(182)는 멀티플렉서(180)를 통해 어드레스 유니트C(186)로부터 데이터를 읽는다. RAM C는 멀티플렉서(168, 180)를 통해 누산기(C0REG(164) 또는 C1REG(166))로부터 데이터를 읽는다. RAM A(104)는 멀티플렉서(100)을 통해 어드레스 유니트 A(102)까지 데이터를 제공하며 멀티플렉서(108)를 통해 AREG(130)까지 데이터를 제공한다. RAM B(122)는 멀티플렉서(118)를 통해 어드레스 유니트 B(120)까지 데이터를 제공하며, 멀티플렉서(126)를 통해 RAMB_DOUT(제 5a-d도에 도시된 것처럼) 및 SREG(136)까지 데이터를 제공하며 멀티플렉서(158)를 통해 DREG(156)까지 데이터를 제공한다.
AREG(130)은 ROM E(114)로부터 중간 데이터 및 데이터를 읽거나 또는 멀티플렉서(108)를 통해 RAM A(104)로부터 데이터를 읽는다. BREG(134)는 ROM E(114)로부터 데이터를 읽거나 또는 멀티플렉서(116)를 통해 RAM B(122)로부터 데이터를 읽는다. BREG(134)는 또한 멀티플렉서(168, 116)를 통해 누산기(C0REG(164) 또는 C1REG(166))로부터 데이터를 읽는다.
C0REG(164) 및 C1REG(166)는 멀티플렉서(148)를 통해 RAM C(182), 가산기(146), 논리AND소자(144) 또는 논리 OR소자(142)로부터 데이터를 읽는다.
시프트 인덱스 레지스터SREG(136)는 멀티플렉서(126)를 통해 RAM B(122)로부터 중간 데이터 또는 데이터를 읽는다.
ALU(143)는 곱셈, 덧셈, 뺄셈, 곱셈-누산, 곱셈-덧셈, 곱셈-뺄셈, 라운드, 증가, 클리어, 음 및 논리 AND, OR 및 INVERT 동작을 실행한다. 멀티플렉서(132), AREG(130) 및 BREG(134)에서의 입력은 곱셈이 실행될 때만 변화를 입력하도록 함으로서 멀티플렉서(132)에서 전력소비를 감소하는 게이트된다. ALU(143)는 정규화하기 위해 두 개의 배럴 시프터에 대한 두 개의 36비트 누산기(C0REG(164) 또는 C1REG(166)), 배럴시프트(140) 및 배럴시프트(150)을 제공한다. 16비트 까지 왼쪽 및 오른쪽 시프트는 배럴 시프트(140) 및 배럴 시프트(150)에 의해 제공된다. 시프트 인덱스는 중간 데이터를 통하거나 또는 멀티플렉서(149)를 통해 전용 시프트 인덱스 레지스터 SREG(136)이다. 시프트 인덱스 레지스터, 배럴 시프트(140, 150)에 관련한 SREG(136), 비트와이드 논리 OR소자(160) 및 OREG(162)는 블록 정규화를 실행할 때 오버헤드를 최소화하기 위해 제공된다. ALU(143)는 C0REG(164) 및/또는 C1REG(166)의 수학 및 논리 상태에 기초를 둔 조건부 점프를 따르는 명령 복호기(192)에 상태를 제공한다. 예를들어, 전형적인 실시예에 있어서, C0REG(164) 및 C1REG(166)의 값에 대한 부호는 부호변화에 조건부 점프를 제공하기 위해 비교된다. 점프는 중간 데이터가 IP카운터 및 스택(196)에 제공된다. 누산기(C0REG(164) 또는 C1REG(166)) 오버플로우 및 언더플로우는 검파되며 포화는 두 개의 보수에 따라 오버플로우의 경우에 16진수 값0×7FFFFFFF 및 언더플로우의 경우에 0×80000001를 제공함으로서 자동적으로 실행된다.
명령 실행 시퀀스는 페치, 부호화 및 실행된다. 어드레스값은 IP카운터 및 스택(196)에 의해 ROM I(194)에 제공되며, 이것은 응답에서 명령 복호기(192)에 명령을 제공한다. 입력 명령에 응답하는 명령 복호기(192)는 명령을 복호하며 명령의 실행에 대한 DSP 코어(4)내의 적절한 소자에 제어신로를 제공한다.
IP 카운터 및 스택(196)에 따라 전용 루프 카운트 및 스택(190)는 낮은 오버헤드 네트스 서브루틴 호출 및 네스트 루프를 제공한다. 명령 페치는 단일 명령 루프동안 전력소비를 감소하는 기능을 억제한다. 루프 카운터 및 스택(190)은 고정 길이루프를 실행하는동안 멀티플렉서(188)를 통해 중간 데이터를 읽는다. 루프 카운터 및 스택(190)은 가변 길이 루프를 실행하는동안 멀티플렉서(168, 188)를 통해 누산기(C0REG(164) 또는 C1REG(166))로부터 데이터를 읽는다. ROM I(194)내의 256워드 정적 명령캐시(도시안됨)는 가장 자주 실행된 루프 및 서부루틴에 대한 저전력 명령 페치를 제공한다. WAIT명령은 전력소비를 감소시키는 사건중 명령 페치 및 명령 복호기능을 억제한다. 이와같은 사건의 실시예는 DMA 전달, PCM 인터페이스(2)로부터 타이밍 스트로브 또는 외부사건을 포함한다.
외부 데이터 및 제어는 PORT_INPUT(제 5a-d도에 도시된 것처럼),인터페이스(2)로부터 DMA_INPUT 및 조건부 점프명령에 사용된 정적 검사비트를 통해 DSP코어(4)에 제공된다. 데이터는 CREG(제 5a-d, 6a-b도에 도시된 것처럼) 및 TAMB_DOUT를 통해 DSP코어(4)까지 외부적으로 제공된다. DSP 코어(4) 및 PCM 인터페이스(2)사이의 DMA는 종래의 기술에 공지된 것처럼 사이클 스틸링에 의해 실행된다. C0REG(164) 및 C1REG(166)으로 부터의 데이터는 명령 복호기(192)로부터 OUTREG_EN(제 5a-d, 6a-b)도에 도시된 것처럼)신호에 관련한 멀티플렉서(168)를 통해 제공된다. 능동 OUTREG_EN신호는 최소화 프로세서(6)에 제공된 유효 CREG 데이터의 존재를 의미한다.
제 6a-b도에 기술된 최소화 프로세서(6)은 페치 및 코드북 탐색의 계산적으로 강한 부분을 촉진한다. 최소화 과정을 실현하기 위해서, 최초화 프로세서(6)는가중된 입력 음성 샘플의 시퀀스, 한세트의 이득값 및 DSP 코어(4)로부터 한세트의 합성된 음성 샘플 시퀀스를 수신한다. 최소화 프로세서(6)는 합성된 음성의 자기 상관관계 및 합성된 음성 및 가중된 입력 음성사이의 상호상관 관계를 계산한다. 이들 연관관계로부터 합성된 음성 및 입력 음성사이의 평균자승 오류(MSE)의 관련 측정은 합성된 음성 이득 및 인덱스의 함수로서 결정된다. 최소화 프로세서(6)는 최소 MSE를 발생시키는 인덱스 및 이득을 리포트한다. 저장된 전력은 최소화가 가능하지 않을때 실패 MSE계산을 특징지운다. 최소화 프로세서(6)는 CREG, 포드 I/O 및 전용DSP코어 명령을 통해 DSP코어(4)와 통신한다.
최소화 프로세서(6)의 동작은 제어기(220)에 의해 결정된다. 제어기(220)는 현재 인덱스 값의 트랙을 유지하는 카운터, 최적의 페치 또는 코드복 탐색결과를 유지하는 레지스터, RAM×212을 액세스 하는 어드레스 발생 회로소자 및 입력/출력 회로소자를 포함한다. 더욱이, 제어소자(220)는 멀티플렉서(224, 234, 230 및 246)에 선택신호를 제어하게 하며 랫치(210, 214, 226, 228, 236, 238, 244 및 250)을 인에이블한다. 제어기(220)는 인포트(12)를 통해 DSP 코어(4)(즉, 최상의 페치 래그 및 페치이득 또는 그들 각각의 탐색에서 결정된 최상의 코드북 및 코드북 이득)에 최소결과를 제공하게한다. OUTREG_EN신호는 래치(210) 입력 데이터가 유효하며 누산기(C0RE6(164) 또는 C1REG(166)) 출력신호CREG에 존재하는 것을 나타내기 위한 제어소자(220)에 제공된다. 응답하는 제어기(220)는 엔에이블 신호를 발생시키며 데이터를 수신하는 랫치(210)에 인에이블 신호를 제공한다.
OUTPORT_EN(제 5a-d, 6a-b도에 도시된 것처럼) 및 PORT_ADD(제 5a-d, 6a-b도에 도시된 것처럼)신호는 DSP 코어(4)로부터 제어소자(220)에 제공된다. PORT_ADD신호는 최소화 프로세서(6)에 어드레스를 제공한다. 최소화 프로세서(6)는 PORT_ADD 값이 최소화 프로세서(6)에 대한 데이터를 지정하며 OUTPORT_EN이 유효PORT_ADD값을 나타낼 때 CREG로부터 데이터를 읽는다. 제어 및 데이터는 앞서 기술된 것처럼 최소화 프로세서(6)에 제공된다.
제 1도는 본 발명의 구조에 대한 전형적인 블록도를 도시한다. PCM인터페이스(2)는 전형적이 실시예에서 μ법칙 또는 A법칙 확장 샘플 데이터 또는 선형 샘플 데이터의 형태인 펄스폭 변조(PCM) 속도 샘플 데이터로 부터 수신되거나 펄스폭 변조 속도 샘플 데이터에 제공한다. PCM인터페이스(2)는 클럭 발생기(10)로부터의 타이밍 정보를 수신하며 마이크로프로세서 인터페이스(8)로 부터 데이터 및 제어정보를 수신한다.
PCM 인터페이스(2)는 부호화하기 위한 코덱(도시안됨)으로 부터 수신된 PCM속도 샘플 데이터를 DSP코어(4)에 제공한다. PCM인터페이스(2)는 코덱(도시안됨)에 제공된 DSP 코어(4) PCM속도 샘플 데이터로 부터 수신한다. PCM 데이터는 DMA을 통해 DSP 코어(4) 및 PCM 인터페이스(2)사이에 전송된다. PCD 인터페이스(2)는 코덱(도시안됨)으로부터 수신된 샘플의 타이밍에 기초를 둔 클럭 발생기(10)에 타이밍 정보를 제공한다.
DSP 코어(4)는 코프로세서 및 최소화 프로세서(6)에 데이터 및 제어정보를 제공한다. DSP 코어(4)는 또한 출력포트(14)에 데이터를 제공하며 입력포트(12)로 부터 데이터를 수신한다.DSP 코어(4)는 클럭 발생기(10)로부터 타이밍 정보를 수신한다. DSP 코어(4)는 또한 외부 어드레스 정보를 제공하며 외부명령 및 데이터를 수신할 수있다.
최소화 프로세서(6)는 클럭 발생기(10)로 부터 타이밍 정보를 수신하며, DSP 코어(4)로 부터 데이터 및 제어정보를 수신한다. 최소화 프로세서(6)는 입력포트(12)를 통해 DSP코어(4)에 최소화 과정결과를 제공한다.
클럭 발생기(10)는 모든 다른 블록에 타이밍 정보를 제공한다. 클럭발생기(10)는 외부 클럭신호를 수신하며 마이크로프로세서 인터페이스(8) 및 PCM 인터페이스(2)로 부터 타이밍 정보를 수신한다.
결합검사 능동그룹(JTAG) 인터페이스(16)는 ASIC의 기능성을 검사하기 위한 능력을 제공한다. JTAG 인터페이스(6)는 외부 데이터 및 제어정보를 수신하며 외부 데이터를 제공한다.
출력포트(14)는 DSP 코어(4)로 부터 데이터를 수신하며 마이크로프로세서 인터페이스(8)에 이 데이터를 제공하며 외부유니트(도시안됨)에 데이터를 제공한다.
입력포트(12)는 마이크로프로세서 인터페이스(8) 및 최소화 프로세서(6)로 부터 데이터를 수신하며, DSP 코어(4)에 이 데이터를 제공한다. 입력포트(12)는 외부유니트(도시안됨)로 부터 데이터를 수신할 수있으며 마이크로프로세서 인터페이스(8)에 이 데이터를 제공한다.
마이크로프로세서 인터페이스(8)는 마이크로프로세서(도시안됨)으로부터 데이터 및 제어정보를 수신하며 마이크로프로세서에 데이터 및 제어정보를 제공한다.
본 발명의 바람직한 실시예에 있어서, 보코더 ASIC은 본 발명의 양수인에게양도되며 "가변율 보코더"로 명명된 계류중인 미합중국 특허 제 08/004,484로에 상세히 기술된 가변율 CELP알고리즘을 실행한다.
제 2도는 ASIC에서 실행된 주기능을 기술한다. 제 2도를 참조하면, 부호화될 샘플은 코덱(도시안됨)으로 부터 PCM 인터페이스(30)를 통해 보코더 ASIC에 제공된다. 이들 샘플은 μ 법칙 또는 A법칙 샘플을 선형샘플로 변환하는 재확장 소자(32)에 제공된다. 선형형식에 제공된 샘플은 변화없이 재확장 소자(32)를 통해 이동된다. 선형샘플은 음성동작 스위치(VOX)(36), 음성 균등화소자(38), QCELP복호화 소자(40) 및 이중을 다중주파수(DTMF)검파소자(41)를 기능적으로 포함한 발신음성처리 소자(34)에 제공된다. 발신음성 처리소자(34)는 마이크로프로세서 인터페이스(42)를 통해 ASIC외부의 마이크프로세서(도시안됨)에 복호된 음성 패킷을 제공한다.
복호된 음성 패킷은 그들이 음성 샘플로 복호되는 음성 처리소자(44)를 수신하기 위해 마이크로프로세서 인터페이스(42)를 통해 마이크로프로세서(도시안됨)에 의해 제공된다. 수신 음성 처리소자(44)는 QCELP 복호소자(46), 음성 이퀄라이저(48) 및 DTMF 발생소자(47)를 기능적으로 포함한다. 복호된 샘플은 선형샘플을 μ법칙 및 A법칙 형식으로 변환하는 확장소자(50)에 제공되며 PCM인터페이스(30)에 변화없이 선형샘플로 이동한다. ASIC은 PCM 인터페이스(30)를 통해 ASIC외부의 코덱(도시안됨)에 복호된 샘플을 제공한다.
재확장 소자(32)로서 제 2도에 기술된 재확장 동작 및 확장소자(50)로서 제 2도에 기술된 확장동작은 제 5a-d도에 기술된 DSP 코어(4)에 의해 실행된다. 발신음성처리소자(34)로서 제 2도에 기술된 발신 음성처리 동작은 제 6a-b도에 기술된 DSP 코어(4) 및 최소화 프로세서(6)에 의해 실행된다. 수신 음성처리소자(44)로서 제 2도에 기술된 수신 음성 처리동작은 제 5a-d도에 기술된 DSP코어(4)에 의해 실행된다.
바람직한 실시예에 있어서, 8비트 μ법칙 또는 8비트 A법칙 형식으로부터 제공된 샘플은 14비트 선형형식으로 전환된다. μ법칙 및 선형사이의 관계는 이하의 방정식(1)에 기술된다.
여기서, Y는 선형값(-4015.5 내지 4015.5)이며, N은 성분(0 내지 7)이며, M은 진폭값(0 내지 15)이며 S는 부호(양은 0, 음은 1)이다. A법칙 및 선형사이의 관계는 이하의 방정식 (2) 및 (3)에 기술된다.
여기서, Y는 선형값(-4032 내지 4032), N, M 및 S는 앞서 기술된 것과 같다.
제 5a-d도를 참조하면, 제 2도의 PCM 인터페이스(30)를 통해 제공된 샘플은 ROM E(114)에 저장된 룩업 테이블에 의해 선형형식으로 전환된다. 바람직한 실시예에 있어서, 선형에서 절반 크기 128×14 μ법적 및 선형 룩업 테이블에서 A법칙은 변환을 실행하기 위해 사용된다. 바람직한 실시예는 이하의 방정식(4)에 기술된 성질을 가진 전크기 변환의 장점을 가진다.
입력 음성신호를 부터 임의의 DC성분의 제거는 자기상관관계 계수 및 LPC계수의 계산전에 요구된다. DC블록킹 동작은 현재 윈도우에서 각각의 입력샘플로 부터 저역통과 필터링된 음성샘플수단 및 DC바이어스를 감산함으로서 DSP 코어(4)에서 동작된다. 즉, 현재 프레임에 대한 DC 바이어스는 현재 및 이전 프레임의 샘플수단에 대한 가중평균이다. DC바이어서의 계산은 이하의 방정식(5)에 기술된다.
여기서, 전형적인 실시예에서 a=0.75이다. 저역 통과 필터링은 프레임 경계값에 큰 불연속을 막기위해서 사용된다. 이동작은 ROM E(114)에 이전에 제공된 보간인자a를 가진 RAM 소자(즉 RAM A(104,), RAM B(122) 또는 RAM C(182))중의 하나에서 현재 프레임 및 이전 프레임에 대한 샘플평군을 저장함으로서 DSP 코어(4)에서 실행된다. 가산기(146)에 의해 덧셈이 실행되며 멀티플렉서(132)에 의해 곱셈이 실행된다. DC블록킹 기능은 마이크로프로세서 제어하에서 인에이블 또는 기능을 억제한다.
DC없는 입력음성신호s(n)는 고정된 길이의 프레임으로 음성 시퀀스를 제한하는 결과를 감소시키기 위해 윈도우된다. 해밍 윈도우기능은 전형적인 실시예에서 사용된다. 프레임 길이 LA=160에서, 윈도우된 음성sW(n)은이하의 방정식(6)에 기술된 것처럼 계산된다.
여기서, 해밍 윈도우는 방정식 7및 8에서 한정된다.
바람직한 실시예에 있어서, WH(n)이 작수 대칭함수이기 때문에, 80계수의 록업 테이블, 해밍 윈도우 계수의 절반 수는 ROM E(114)에 저장된다. 윈도우는 멀티플렉서(108)을 통해 어드레스 유니트 E(112)에 의해 제공된 어드레스 값을 따르는 ROM E(114)로 부터 AREG(130)까지 윈도우 계수WH(n)를 제공함으로서 실행된다. AREG(130)는 멀티플렉서(132)의 제 1입력에 이 데이터를 제공한다. 음성샘플s(n+60)은 RAM C(122)에 의해 BREG(134)에 제공된다. BREG(134)는 멀티플렉서(132)의 제 2입력에 이 값을 제공한다. 멀티플렉서(132)의 출력은 멀티플렉서(168)를 통해 C0REG(164) 및 RAM C(182)에 제공된 윈도우 음성샘플이다.
블록 정규화 과정은 두가지 기능적인 부분, 즉 정규화 인자의 결정 및 의도된 데이터의 정규화로 구성된다. 전형적인 실시예에 있어서, 데이터는 두개의 곡면구적 표시부에 저장된다. 윈도우 샘플은 앞선 방정식(7)에 따라 계산된다. ROM I(194)로 부터 정규화 명령 DRTNORN에서, C0REG(164)에서 발생된 윈도우 샘플값은 다음과 같은 과정을 따른다. 만일 C0REG(164)에서 값이 음이라며, 전환소자(152)는 이진 디지트 수로 전환되며 가산기(146)의 제 1입력에 비트전환값을 전송한다. 가산기(146)의 제 2입력은 멀티플렉서(137, 138)를 통해 제로로 제공된다. 그때, 가산기(146)는 운반입력을 통해 비트전환값에 1를 더한다. 만일 C0REG(164)의 값이 양이라면, 이 값은 멀티플렉서(168, 154)를 통해 전환소자(152) 및 가산기(146)에 전술된다. 이과정의 목적은 C0REG(164)의 비트넓이의 절대값을 계산하기 위한것이다. 절대값은 비트방식 논리 OR소자(160)의 제 1입력에 제공된다. 비트방식 논리 OR소자(160)의 제 2입력은 OREG(162)에 의해 제공된다. 앞서 기술된 절대값 계산은 이하의 방정식 8a-c에 기술된다.
여기서,
방정의 8a-c에 기술된 동작은 만일 정규화에 대한 의도된 데이터가 C1REG(166)에 존재한다면 DETNORM명령을 사용하는 C1REG(166)상에서 유사하게 실행된다. OREG(162)는 정규화 동작의 초기에 제거된다. 이과정은 동작의 끝에서 ORER(162)에 저장된 값이 모든 윈도우 샘플의 절대값에 대한 비트방식 논리 OR를 나타내도록 모든 윈도우 샘플(의도된 데이터)을 반복한다. OREG(162)에 세트된 최상위 비트로 부터 스케일링 인자는 OREG(162)의 값이 윈도우 샘플의 블록에서 가장 큰값과 동일하거나 또는 크다. OREG(162)의 값은 멀티플렉서(168)를 통해 RAM C(182)에 전달된다. 이값은 C0REG(164)로 로드된다. 정규화 인자는 이양에 의한 윈도우 데이터의 시프트가 다음 동작을 위해 원하는 피크크기를 가진 값을 제공할 수있도록 요구된 C0REG(164)에서 값을 왼쪽 또는 오른쪽으로 시프트하는 수를 카운트함으로서 결정된다. 이같은 스케일링 인자는 정규화 인자로 공지된다. 정규화가 시프트를 통해 실행되기 때문에, 정규화 인자는 두개의 전력이다.
가능한 고정밀로 윈도우 샘플을 유지하기 위해서, 의도된 값은 가장 큰 값이 다음동작을 위해 제공된 비트위 최대수를 점유하도록 정규화 인자에 의해 곱해진다. 정규화인자가 두개의 전력이기 때문에, 의도된 데이터의 정규화는 정규화 인자에 의해 지정된 것처럼 다수의 시프트를 간단하게 실행함으로서 실행될 수있다. 정규화 인자는 멀티플렉서(126)를 통해 SREG(136)에 RAM B(122)에 의해 제공된다. 윈도우 샘플은 멀티플렉서(158)을 통해 RAM C(182)로 부터 DREG(156)까지 제공된다. DREG(156)은 멀티플렉서(154) 및 디스에이블 인버터(152)를 통해 배럴 시프터(150)에 이들 값을 제공하며, 그들은 멀티플렉서(149)를 통해 SREG(136)에 의해 배럴 시프터(150)에 제공된 정규화 인자를 따라 시프트된다. 배럴 시프터(150)의 출력은 개입중단금지 상태 가산기 소자(146) 및 멀티플렉서(148)를 통해 C0REG(164)에 전송된다. 정규화 윈도우 샘플은 멀티플렉서(168)를 통해 전송되며 멀티플렉서(124, 180)를 통해 ram b(122,) 및 RAM C(182)에 각각 전송된다. 이것은 자기상관관계 계수의 다음계산을 하는 RAM에서 정규화 윈도우 샘플을 두 개 복사한다.
P+1 자기상관관계 계수R(k)의 계산은 이하의 방정식9에 따라 실행된다.
여기서, P는 복호기에서 포르만트 예측 필터와 유사하다. 전형적인 실시예에 있어서, P=10이다. 정규화 윈도우 샘플SW(m)을 멀티플렉서(116) 및 BREG(134)를 통해 멀티플렉서(132)의 제 1입력에 RAM B(122)에 의해 제공된다. 정규화 윈도우 샘플sw(m+k)의 지연된 버전은 멀티플렉서(148) 및 C1REG(166), RAM A(104) 및 AREG(130)를 통해 멀티플렉서(132)의 제 2입력에 RAM C(182)에 의해 제공된다. 각각의 R(k)의 제 1반복에서, 멀티플렉서(138)의 출력은 멀티플렉서(138) 및 배럴 시프터(140)를 통해 가산기(146)의 제 1입력 및 누산기C0REG(164)에 제공된다. 멀티플렉서(154)는 개입중단금지상태 배럴 시프터(150)를 통해 가산기(146)의 제 2입력에 제로를 제공한다. 다음 반복에서, 멀티플렉서(138)의 출력은 멀티플렉서(138) 및 배럴시프터(140)를 통해 가산기(146)의 제 1출력에 제공된다. 가산기(146)의 제 2입력은 멀티플렉서(168, 154), 개입중단 금지상태 버전 소자(152) 및 개입중단 금지상태 배럴 시프터(150)를 들해 COREG(164)의 출력이 제공된다. 이과정은 각각의 R(k)을 위해 반복된다.
자기상관관계 계수중의 어느것도 큰R(0)이 아니다. 진형적인 실시예에 있어서, R(0)이 계산된후에, 그것의 정규화 인자가 결정된다. 이 정규화인자는 이미 계산된 R(0)에 적용되며 그들이 계산됨에 따라 자기상관관계계수의 나머지에 적용된다. 이같은 단계에서 자기상관관계 계수의 정규화는 LPC계수의 다음 계산을 위해 정밀하게 최소화된다.
제 3도의 블록(62)에 앞서서, LPC계수는 음성샘플에서 짧은항 상관관계(과잉)을 제거하기 위해 계산된다.
계수 P를 가진 포르만트 예측필터는 이하의 방정식10에 의해 기술된전달함수A(z)를 가진다.
각각의 LPC계수ai는 정규화된 윈도우 입력음성의 자기상관관계 값으로부터 계산된다. 효율적인 반복방법에 있어서, 소위 Durbin' recursion(See Rabiner, L.R. and Schafer, R.W., "Digital Processing of Speech Signals," Prentice-Hall, 1978)은 전형적인 실시예에서 LPC계수를 계산하기 위해 사용된다. 이같은 반복방법은 이하에 기술된 방정식11내지 17에 기술된다.
더빈(Durbin) 반복 알고리즘은 입력신호가 제로 평균을 가질때만 실행되며, 임의의 DC바이어스는 자기상관관계 계산이 앞서 기술된 것처럼 실행되기전에 제거된다.
전형적인 실시예에 있어서, 확장 대역폭의 15Hz는 포르만트 예측필터의 안정성은 확실히 하기 위해서 이용된다. 이것은 내부적으로 포르만트합성필터의 극을 스케일링함으로서 실행될 수있다. 확장 대역폭은 이하의 방정식18에 따라 LPC계수를 스케일링함으로서 실행된다.
여기서, β=0.9883이다. 10 대역폭 확장계수, 즉 1≤i≤P 에 대한 βi는 ROM E(114)에 제공된 룰업 테이블에 저장된다. 블록(62)의 함수는 DSP코어(4)에서 실행된다.
제 3도의 블록(64)에 따르면, 음성 데이터의 현재 프레임에 대한 부호화비가결정된다. 비율 결정은 각각의 프레임에서 음성 기본기록철 처리의 측정을 기초로 한다. 음성 기본기록철 처리는 앞서 기술된 것처럼 프레임 에너지R(0)에 따라 측정된다. 프레임에 대한 부호화비를 측정하기 위해서, 프레임 에너지는 이하의 방정식19 내지 21에 한정된 3개의 임계값에 비교된다.
여기서, 배경 잡음레벨, 즉 프레임i에 대한 Bi는 이하의 방정식22에 기술된 각각의 프레임을 갱신한다.
비율은 만일 프레임 에너지가 모든 세기의 임계값이하라면 1/8이며, 만일 프레임 에너지가 T1(Bi) 및 T3(Bi)사이에 있다면 1/4이며, 프레임 에너지가 T2(Bi) 및 T2(Bi)사이에 있다면 1/2이며, 만일 프레임 에너지가 앞의 T3(Bi)이다면 1이다. 비율이 마이크로프로세서 인터페이스(8)를 통해 특정비율로 마이크로프로세서(도시안됨)에 의해 제어되는 것을 제외하고, 데이터율은 임의의 비율로 상승되나 프레임당 한단계이하로 낮아질 것이다(예를들어, 1/2 비율을 1/4비율로), DSP 코어(4)에 있어서, 이들 임계값에 연관된 계수는 ROM E(114)에서 록업 테이블에 제공된다.
분수율 알고리즘은 최대평균비가 마이크로프로세서 인터페이스(8)를 통해 마이크로프로세서(도시안됨)에 의해 제한되게 하는 바람직한 실시예가 제공된다. 비율제한 인자S가 주어질 때, 보코더의 최대 평균비는 연속적인 전비율 프레임의 수를 한정함으로서 (2S + 1)/[2(S+1)]로 제한된다. 블록(64)의 함수는 DSP 코어(4)에서 수행된다.
제 3도의 블록(66)을 처리하면, 대역폭 확장된 LPC 계수는 선 스펙트럼 쌍(LSP) 주파수로 변환된다(성(Soong) 및 주앙(Juang)에 의한 1984년 ICASSP, 선 스펙트럼 쌍(LSP) 및 음성 데이터 압축" 참조). LSP 주파수는 중요하게 전송용으로 더 나은 특성을 나타내도록 도시되고 LPC 계수보다 더 효과적으로 인코딩된다. LPC 계수를 나타내는 LSP 주파수는 방정식(23 및 24)에 도시된 다항식의 10개의 근이다:
여기서 a ≤ i≤ 5일 때 p'i및 q'i는 아래의 방정식 (25) 내지 (27)에 따라DSP 코어(4)에서 계산된다:
P'(ω)의 근은 매 π/32 라디안내네 거의 한 개의 근이 존재한다고 가정함으로써 찾을 수 있다. P'(ω)는 0부터 π라디단까지 매 π/32라디안마다 값을 구한다. 어떤 π/32 간격내에 근의 존재는 간격에 대하여 함수 P'(ω)의 부호 변경이 나타난다.
만약 근이 찾아진다면, 이진 검색이 π/256 범위내에서 근을 분리하기 위해 수행된다. 이진 검색은 현재 범위의 중심에서 근을 포함하는 범위의 반을 결정하기 위하여 P'(ω)의 값을 구하는 것을 포함한다. 현재 범위는 근을 포함하도록 찾아진 범위의 반만을 포함하도록 좁아진다. 이러한 처리과정은 근이 π/256의 범위내에서 분리될때까지 게속된다. 선형 보간은 π/256 라디안 범위내에서 근의 위치를 추정하는 것이다.
LSP 주파수의 배열 특성은 Q'(ω)대의 한 근이 P'(ω)의 근의 각 쌍들 사이에 존재하는 것을 보증한다. Q'(ω)의 다섯 번째 근은 P"(ω)의 다섯 번째 근과 π 라디안 사이에 존재한다. 상기 설명된 이진 검색은 Q'(ω)의 근을 결정하기 위하여P'(ω)의 근의 각 쌍 사이 및 P'(ω)의 다섯 번째 근과 π라디안사이에서 수행된다.
이진 검색은 근의 위치가 π/256의 범위내에서 분리될 때까지 계속되기 때문에 , 0과 π사이의 간격과 같은 256코사인 값이 필요하다. 코사인 값은 ROM E 114의 검사표에 저장되어 있다. P'(ω) 및 Q'(ω)의 근을 찾기 위하여, (48) 및 (30) 함수값의 최대값에 개별적으로 필요하다. 이들 함수값은 LPC 계수로부터 LSP 주파수로의 변환에서 가장 계산적으로 강조된 부분이다. 블록(66)의 함수는 DSP 코어(4)에서 수행된다.
이제, 제 3도의 블록(68)을 처리하면, LSP 주파수가 양자화된다. 각 LSP 주파수는 관련된 바이어스값 주위에 집중된다. 양자화 이전에 이러한 바이어스는 양자화를 위해 필요한 비트 수를 감소하기 위하여 각 관련된 LSP 주파수로부터 감산된다. 이러한 바이어스는 아래의 방정식 (28)에 보여진 바와 같이 계산된다.
바이어스가 LSP주파수로부터 감산되 후, LSP 주파수는 차분 펄스 코드 변조(DPCM) 양자화기를 사용하여 양자화된다. DPCM 양자화기는 LSP 주파수가 시간에 대하여 매우 느리게 변하기 때문에 사용되고, LSP 주파수에서의 변화를 양자화하는 것은 LSP 주파수를 직접 양자화하기 위하여 필요한 비트수 이상의 양자화를 위해 필요한 비트수를 감소하는 것이다. DSP 코어(4)에서, LSP 주파수 바이어스 값은 ROM E 114 검사표에 저장되어 있다. 사용된 양자화 비트 수 및 양자화 스텝 크기는 양자화될 10개의 LSP 주파수의 함수이고 또한 인코딩율의 함수이다. 양자화비트의 수, 및 스텝 크기는 ROM E 114의 검사표에 각 인코딩율에서 각 LSP 주파수에 대하여 저장된다. 상기 설명된 검사표는 표(II)에 도시되었다. 예를들면, 최대 비율에서 LSP 주파수 ω1은 4비트를 사용하고 0.025의 스텝 크기를 사용한다.
표 II
양자화 및 보간 이후에, 포먼트 필터는 양자화 효과가 고려된 후 안정하게 될 것을 보장하기 위하여 테스트가 수행된다. LSP 주파수는 결과적인 포먼트 필터의 안정성을 보장하기 위하여 적어도 80hz로 나누어져야만한다. 만약 어떤 LSP 주파수가 인접한 LSP 주파수로부터 80hz 보다 작은 값으로 나누어진다면 대역폭 확장이 다시 수행된다. 블록(68)의 함수는 DSP코어(4)에서 수행된다.
이제 제 3도의 블록(70)을 처리하면, LSP 주파수는 아래의 방정식(29)에 도시된 바와 같이 양자화 효과를 감소하기 위하여 저역 통과 필터에 통과된다:
여기서, 실험적인 실시예에서는, 최대 비율에서 SM=0, 1/2 비율에서SM=0.125이다. 1/4 비율 및 1/8 비율에 대하여는, 만약 1/4 또는 1/8 비율 프레임의 연속적인 수가 10보다 작으면, SM=0.125 및 SM=0.9이다.
LSP 주파수는 각 피치 부프레임에 대하여 보간된다. 피치 부프레임에 대하여 보간된 LSP 주파수는 1/8 비율을 제외한 코드북 부프레임의 대응하는 쌍에 사용된다. LSP 주파수는 아래의 방정식 (30)에 따라 보간된다.
여기서, 가중치 αω는 각 피치 부프레임 및 각 비율에서의 코드북 부프레임에 대하여 ROM E 114의 검사표에 저장된다. 상기 설명된 검사표가 표 III에 도시되었다. 예를 들면, 최대 비율에서 αω은피치 부프레임 1 및 코드북 부프레임 1 및 2에 대하며 0.75이다.
표 III
보간된 LSP 주파수는 피치 및 코드북 검색에 사용하기 위하여 LPC 계수로 다시 변환된다. LPC 계수는 아래 방정식 (31) 내지 (33)에 도시된 바와 같이 PA(Z) 및QA(Z)로부터 계산된다.
여기서,
실험적인 실시예에서, 테일러 시리즈 확장은 DSP 코어(4)내에서 PA(Z) 및 QA(Z)의 코사인값을 계산하기 위하여 평가된다. 테일러 시리즈 확장은 이미 설명된 근 검색에 사용된 코사인 값보다 더 정확한 코사인 값을 제공한다. PA(Z) 및 QZ(Z)의 값은 DSP 코어(4)내에서 상기 방정식 (32-33)에 나타낸바와 같은 2차 다항식의 컨벌루션을 수행함으로써 계산된다. 블록(70)의 함수는 DSP 코어(4)내에서 수행된다.
이제 제 3도의 블록(72)을 처리하면, 포괄적인 합성 피치 검색 처리에 의한 분석이 수행된다. 전체 검색 과정이 블록(72-74)에 의해 형성된 루프로 도시된다. 피치 예측은 실험적인 실시예에서 1/8 비율을 제외한 모든 비율에서의 피치 부프레임상에서 행해진다. 제 7도에 도시된 피치 인코더는 피치 예측 파라미터(즉, 피치 지연 L 및 피치 이득 b)를 결정하기 위하여 합성에 의한 분석법을 사용한다. 선택된 파라미터는 인지적으로 가중된 입력음성과 그들 피치 예측 파라미터를 사용하여 발생된 합성 음성 사이의 MSE를 최소화한 것이다.
본 발명의 바람직한 실시예에서, 함축된 인지적 가중치는 제 7도에 도시한 바와 같이 피치 예측 파라미터의 검출에 사용된다. 제 7도에서, 응답을 사용하는 아래의 방정식 (34)에 나타나 있는 인지적 가중 필터는:
필터(320) 및 필터(324)를 종속적으로 수행된다. 함누산인 인지적 가중은 개방 루프 포르만트 잔여분으로써 필터(320)의 출력을 재사용함으로써 인지적 가중 필터링의 계산상의 복잡성을 검소한다. 방정식(34)의 필터를 두 부분으로 나누는 처리는 피치 검색에서 하나의 필터 처리를 제거한다.
입력 음성 표본 s(n)은 이미 설명된 제 3도의 블록(70)을 LSP 보간 및 LSP로부터 LPC 변환한 LPC계수들을 계수로 가지는 포르만트 예측 필터(320)를 통과한다. 포르만트 예측 필터(320)의 출력은 개방 루프 포르만트 잔여분 po(n)이다. 개방 루프 포르만트 잔여분 po(n)은 아래의 방정식(35)에 도시한 전달함수를 사용하여 가중된 포르만트 합성 필터(324)를 통과한다.
가중된 포르만트 합성 필터(324)의 출력은 인지적으로 가중된 음성x(n)이다. 초기 필터 또는 가중된 포르만트 합성 필터(324)의 필터 메모리의 효과는 가중된 포르만트 합성 필터(324)의 출력으로부터 가중된 포르만트 합성 필터(324)의 영입력 응답을 감산함으로써 제거된다. 가중된 포르만트 합성 필터(324)의 ZIR의 계산은 ZIR 부재(328)에서 계산된다. ZIR인 aZIR(n)은 가산기(326)에서 인지적으로 가중된 음성 x(n)으로부터 감산된다. 각 피치 부프레임의 시점에서, ZIR 부재(328) 밑 가중된 포르만트 합성 필터(324)의 필터 메모리는 독립적이다.
피치 검색에서, 코드북 벡터로부터 영기여는 개방 루프 포르만트 잔여분의 계산에 있어서 현재의 부프레임에 대하여 가정된다. 피치 검색은 이미 설명된 개방 루프 포르만트 잔여분, p0(n), 및 폐루프 포르만트 잔여분, pc(n), 둘 모두를 사용하여 수행된다. 폐루프 포르만트 잔여분, pc(n),은 과거의 피치 부프레임동안 피치 합성 필터(322)에서 재생된 표본이다. 피치 합성 필터(322)의 전달 함수가 아래 방정식 (36)에 도시되어 있다:
여기서 피치 지연 L 및 피치 이득 b는 과거의 피치 부프레임에 대한 피치 검색 처리과정동안 계산된다. 피치 함성 필터(322)의 입력은 과거의 코드북 부프레임에 대한 코드북 검색 처리과정동안 계산된 인덱스 I에 대한 코드북 목록 Cb(I), 및 코드북 이득 G를 곱함으로써 발생된 여기 벡터 Cb(n)이다. 그렇게 발생된 포르만트 잔여분은 폐루프 초만트 잔여분이라고 한다.
실험적인 실시예에서, pc(n)은 143 폐루프 재구성된 표본이다. 검색은 충분한 개방 루프 검색으로부터 충분한 페루프 검색으로 피치 부프레임의 길이를 윈도우로 사용하여 이동한다. 피치 부프레임의 길이 Lp에 대하여, n은 -LMAX=-143 내지 Lp-17 사이에서 변한다. 실험적인 실시예에서, 최대 비율에 대하여는 Lp=40이고, 1/2 비율에 대한 Lp=80이고, 1/4 비율에 대한 Lp=160이다. 실험적인 실시예에서, 표본 pc(n) 및 po(n)은 곱셈기(332)에 의하여 도시된 바와 같이 연속적으로 저장되고, pc(n) 및 po(n) 값이 길이 Lp+143길이의 표본의 단일 블록으로써 순차적으로 접근되는 것을 허용한다. 표본들은 RAM B(122)에 저장된다.
포르만트 잔여분 p(n)은 pc(n) 및 po(n)을 포함하며, 아래 방정식 (37)에 도시한 전달 함수를 갖는 가중된 포르만트 합성 필터(330)를 통과한다.
가중된 포르만트 합성 필터(330)는 피치 지연 L의 각 값마다 Lp가중 합성된 음성 표본 yL(n)의 시퀀스를 발생하는데 사용된다. 가중 합성된 표본 yL(n) 및 가중된 음성 시퀀스 xp(n) 은 최소화 프로세서(334)에 제공된다. 가중된 포르만트 합성 필터(324)의 초기 상태의 효과가 감산되기 때문에, 가중된 포르만트 합성 필터(330)의 임필스 응답이 계산되어야만 한다. yL(n)의 계산은 피치 지연 L에 대하여 가중 합성 음성 표본 yL(n)을 얻기 위하여 p(n)의 적당한 부시퀀스를 사용하여 가중된 포르만트 합성 필터(330)의 임펄스 응답 h(n)을 컨빌루션한다.
컨벌루션은 제 5a-d도에 도시된 바와 같이 DSP 코어(4)에서 반복적인 방법으로 수행된다. yL(n) 값의 세트는 L=17 내지 L=143까지의 각 피치 지연값에 대하여 계산된다. 가중된 포르만트 합성 필터(330)의 임펄스 응답 h(n)은 실험적인 실시예에서 첫 번째 20 표본을 잘라버리고 RAM A(104)에 저장된다. 포르만트 잔여분 p(n)은 RAM B(122)에 저장된다. 첫 번째 피치지연 L=17에 대한 컨벌루션은 아래 방정식 (38)에 설명된 바와 같은 비반복적인 방법으로 수행된다:
여기서, Lp는 피치 부프레임 길이이다.
첫 번째 시퀀스 y17(n)은 RAM C(142)에서 계산되고 저장된다. 피치 지연 L=18 내지 L=143에 대한 연속적인 시퀀스 yL(n)은 아래의 방정식 (39-41)에 도시된 바와 같이 반복적으로 계산된다.
관련성은 이하의 방정식(42)에 나타내었다.
반복적인 컨벌루션의 효율성은 적재 및 저장 동작을 제어하기 위한 전용 어드레싱 유닛을 사용하여 RAMs을 세 부분으로 나눔으로써 최적화된다. 이것은 3중 분할된 RAM으로 참조된다. 방정식(40)에서 컨벌루션 값을 계산하고 각 클럭 사이클의 결과를 생성하는 것이 가능하다. 예를들어, 단일 클럭 사이클에서, y18(10)이 계산되고, y18(9)가 저장되며, y17(10)은 패치되고, h(10)이 패치된다. 따라서, 상기 방정식(40)은 결과적인 각 사이클을 생성할 수 있다. 예를 들면, 단일 사이클에서, y18(24)이 계산되고, y17(24)가 패치되고, y18(23)이 저장된다.
매 피치 지연 갱신 사이에 동일한 소스 RAM에 대하여 이미 계산된 가중 합성된 음성 표본 yL-1(n-1)를 이동할 필요 없이 방정식 (40) 및 (41)을 수행하기 위한 능력은 저장 전략 및 소스 및 목적 RAMs이 각 지연 갱신 사이에 교환되는 핑퐁으로 참조되는 하드웨어 능력을 필요로한다. 피치 지연값에 대하여 yL(n)을 계산하는 경우, yL-1(n-1) 값은 세 개의 RAMs 중 첫 번째 것으로부터 패치되고 결과는 세 개의 RAMs 중 두 번째 것에 저장된다. 홀수 피치 지연 값에 대하여 yL(n)을 계산하는 경우, yL-1(n-1) 값은 세 개의 RAMs 중 두 번째 것으로부터 패체되고 결과는 세 개의 RAMs 중 첫 번째 것에 저장된다. 이러한 핑퐁은 각 피치 지연 갱신 사이에서 동일한 RAM에 새롭게 계산된 yL(n) 및 동일한 RAM으로부터 이미 계산된 yL-1(n-1) 값을 이동하는 필요성을 제거한다.
제 8도는 실시예에서 피치 검색의 컨벌루션 부분(초기 비반복적인 및 반복적인 컨벌루션)의 실행을 위한 순서도이다. 블록(350)에서, 피치 지연 L은 본 실시예에서는 17인 최저값으로 초기화된다. 표본 번호 n 및 필터 인덱스 m은 0으로 세트되고, y17(n)의 값은 0으로 세트된다. 블록(352) 내지 (360)은 비반복적인 방법으로 계산된 초기 컨벌루션 루프를 형성한다. L=17인 경우, 초기 컨벌루션의 계산은 아래의 방정식 (43)에 따라 수행된다.
초기 컨벌루션의 계산은 계산의 복잡성을 감소시키기 위하여 고정된 길이 루프를 이용한다. 이러한 방식에서, 내부 루프(블록 356-360)내의 가변길이 루프 구조를 설정하기 위하여 요구되는 오버헤드가 제거된다. 각각의 y17(n)값를 계산된 후에 프로세서(334)를 최소화하기 위하여 보내진다.
블록(352)은 동일 인덱스, n을 테스트한다. n이 피치 서브프레임 길이, Lp와 동일하다면, 초기 컨벌루션은 완료되며 블록(362)으로 연속적으로 흐른다. 만약 블록(352)에서, n이 피치 서브프레임 길이보다 작으면, 블록(356)으로 연속적으로 흐른다. 블록(356)은 인덱스, M을 테스트한다. 만약 m이 필터 임펄스 응답 길이(20)와 같으면, 바람직한 실시예에서, 현재 반복이 완료되며 m이 영으로 설정되고 n이 증분되는 블록(354)으로 연속하여 흐른다. 다음에 다시 블록(352)으로 흐른다. 만약, 블록(356)에서, m이 임펄스 응답 길이보다 작으면, 부분 합이 집적되는블록(360)으로 연속하여 흐른다. 흐름은 인덱스,m이 증분되는 블록(358)까지 계속되며 블록(356)까지 진행한다.
블록(352)내지 (360)에 의하여 형성된 초기 컨벌루션 루프에 포함된 연산은 DSP 코어(4)에서 수행되며, 여기서 적합한 파이프라이닝이 제공되어 각각의 클록 사이클에서 블록(360)에서 도시된 것처럼 곱의 누산을 허용한다. 다음 연산은 계산의 파이프라이닝을 도시하며 단일 클록 사이클에서 DSP 코어(4)에서 발생한다. 필터 응답값, h(m+1)는 RAM A(104)로부터 페칭되며 AREG(130)에 제공된다. 포르만트 나머지값, p(n-17)는 RAM B(122)로부터 페칭되며 BREG(134)에 제공된다. C0REG(164)에 존재하는 부분합, y17(n+m-1)은 멀티플렉서(168, 180)를 통하여 RAM C(182)에 제공된다. 부분합, y17(n+m+1)은 멀티플렉서(158)를 통하여 RAM C(182)에 의하여 DREG(156)에 제공된다. AREG(130) 및 BREG(134)에서 값, h(m) 및 p(n-17)는 멀티플렉서(132)에 제공된다. 멀티플렉서(132)의 출력은 멀티플렉서(138)를 통하여 배럴 시프터(140)에 제공되며, 상기 시프터는 멀티플렉서(149)를 통하여 SREG(136)에 의하여 제공된 스케일링 값에 따른 값을 표준화한다. SREG(136)에서의 값은 p(n-17)시퀀스를 표준화하기 위하여 요구되는 값이다. 이러한 표준화 팩터를 p(n-17) 및 h(m)의 곱에 적용하는 것은 표준화 p(n-17)와 동일 효과를 얻는데 이는 곱의 전체 정확도는 표준화가 배럴 시프터(140)에서 발생하기 전에 유지되기 때문이다. 표준화 값은 가산기(146)의 제 1 입력에 제공된다. 부분합, y17(n+m)은 멀티플렉서(154)를 통하여 DREG(156)에 의하여 디스에이블된 인버터(152) 및 배럴시프터(150)에 제공되며, 가산기(146)의 제 2 입력에 제공된다. 가산기(146)의 출력은 멀티플렉서(148)를 통하여 C0REG(164)에 제공된다. 인덱스, n이 블록(352)에서 최대 허용값에 도달하면, 초기 컨벌루션은 완성되며 RAM C(182)에 존재하는 부분합은 컨벌루션의 최종 결과이다.
초기 컨벌루션이 완료되면, 흐름은 순환 컨벌루션이 나머지 피치 래그값에 대한 계산에서 수행되는 블록(362)으로 연속된다.
블록(362)에서, 동일 인덱스, n은 제로로 설정되며 피치 레그값, L이 증분된다. 흐름은 블록(364)에 계속된다. 블록(364)은 L을 테스트한다. 만약 L이 최대 피치 레그값(143)보다 크면, 바람직한 실시에에서 흐름은 피치탐색 연산이 종료하는 블록(366)까지 계속된다. 만약 L이 143보다 작거나 같으면, 흐름은 블록(368)까지 계속된다. 블록(368)은 이전에 기술된 핑퐁연산을 제어한다. 블록(368)에서, L은 짝수 또는 홀수인지가 결정되기 위하여 테스트된다. 만약 L이 짝수이면, 흐름은 블록(378)(케이스 I에서 기술된 연산)까지 계속된다. 만약 L이 홀수이면, 흐름은 블록(370)(케이스 II에서 기술된 연산)까지 계속된다.
케이스 I : (피치 레그, L의 짝수값)
블록(378)에서, yL(0)는 식(39)에 따라 계산된다. 어드레스 유니트 A(102)는 어드레스값을 RAM A(104)에 제공하며, 이에 응답하여 멀티플렉서(108)를 통하여 h(0)를 AREG(130)에 제공한다. 동일 클록 사이클에서, 어드레스 유니트 B(120)는 어드레스값을 RAM B(122)에 제공하며, 이에 응답하여 멀티플렉서(116)를 통하여p(-L)를 BREG(134)에 제공한다. 다음 클록 사이클중에 AREG(130)는 h(0)를 그리고 BREG(134)는 p(-L)를 멀티플렉서(132)에 제공하며, 여기서 두 개의 값은 곱해지며 그 곱값은 멀티플렉서(138)를 통하여 배럴 시스터(140)에 제공된다. 배럴 시프터(140)는 SREG(136)에 의하여 제공된 값에 따라 멀티플렉서(149)를 통하여 곱을 표준화하며 표준화된 곱을 가산기(146)의 제 1 입력에 제공한다. 가산기(146)의 제 2 입력에는 멀티플렉서(154), 디스에이블 인버터 엘리먼트(152) 및 배럴 시프터(152)를 통하여 영이 제공된다. 가산기(146)의 출력은 멀티플렉서(148)를 통하여 C0REG(164)에 제공된다. 동일 클록 사이클중에, yL-1(0) 및 h(1)는 RAM B(122) 및 RAM A(104)로부터 페칭되며, 멀티플렉서(158, 108)를 통하여 DREG(156) 및 AREG(130)에 제공된다.
블록(380)에서, 합성된 음성 샘플 인덱스, n은 증분된다. 제어 블록(382)에서, 만약 합성된 음성 샘플 인덱스, n이 20보다 작으면, 흐름은 블록(384)으로 진행한다.
블록(384)에서 새로운 yL(n)값은 식(40)에 따라 각각의 클록 사이클에서 계산된다. 값 yL-1(n-1) 및 h(n)를 초기화하기 위하여 블록(384)의 제 1 반복전에 요구되는 적당한 설정이 상술한 것처럼 블록(378)에서 이루어진다. 적합한 클린업 역시 최종값 yL(19)를 저장하기 위하여 블록(384)의 최종 반복다음에 요구된다.
블록(384)의 제 1 반복에서 블록(378)에서 계산된 yL(0)는 C0REG(164)에 존재한다. C0RES(164)는 멀티플렉서(166, 180)를 통하여 저장용 RAM C(182)에 제공되며, 어드레스값은 어드레스 유니트 C(186)로부터 RAM C(182)에 제공된다. yL(0)는 RAM C(182)에 제공되는 동일한 시간에 프로세서(334)를 최소화하기 위하여 제공된다.
블록(384)에서 다음 연산이 단일 클록 사이클동안 수행된다. yL-1(n)은 어드레스 유니트 B(120)에 의하여 제공된 어드레스에 따라 RAM B(122)에 의하여 멀티플렉서(116, 158)를 통하여 DREG(156)에 제공된다. 임펄스응답값, h(n+1)는 어드레스 유니트 A(102)에 의하여 제공된 어드레스에 따라 RAM A(104)에 의하여 멀티플렉서(108)를 통하여 AREG(130)에 제공된다. DREG(156)는 멀티플렉서(154), 디스에이블된 인버터 엘리먼트(152) 및 배럴 시프터(150)를 통하여 가산기(146)의 제 1 입력에 전달된다. AREG(130)는 h(n)를 BREG(134)는 p(-L)를 멀티플렉서(132)에 제공하며, 여기서 두 개의 값은 곱해져서 그 곱은 멀티플렉서(132)에 의하여 멀티플렉서(138)를 통하여 배럴 시프터(140)에 제공된다. 배럴 시프터(140)는 SREG(136)에 의하여 제공된 값에 따라 곱값을 표준화하며 가산기(146)의 제 2 입력에 표준화된 값을 제공한다. 가산기(146)의 출력은 멀티플렉서(148)를 통하여 C0REG(164)에 제공된다. 이전 반복에서 계산된 C0REG(164)의 값은 멀티플렉서(168, 180)를 통하여 저장하기 위하여 그리고 프로세서(334)를 최소화하기 위하여 RAM C(182)에 제공된다.
블록(380)에서, 합성된 음성 샘플 인덱스, n은 증분된다. 제어블록(382)에서, 합성된 음성 샘플 인덱스, n이 20과 동일하면, 마지막 반복에서 계산된 yL(19)는 멀티플렉서(168, 124)를 통하여 순환 버퍼에 저장하기 위하여 그리고 흐름이 블록(390)에 진행하기 전에 프로세서(334)를 최소화하기위하여 RAM B(122)에 제공된다.
케이스 I 종료
케이스 II: (피치 레그,L의 홀수값)
블록(370)에서, yL(0)는 식(39)에 따라 계산된다. 어드레스 유니트 A(102)는 어드레스값을 RAM A(104)에 제공하며, 이에 응답하여 멀티플렉서(108)를 통하여 h(0)를 AREG(130)에 제공한다. 동일 클록 사이클에서, 어드레스 유니트 B(120)는 어드레스값을 RAM B(122)에 제공하며, 이에 응답하여 멀티플렉서(116)를 통하여 p(-L)를 BREG(134)에 제공한다. 다음 클록 사이클중에 AREG(130)는 h(0)를 그리고 BREG(134)는 p(-L)를 멀티플렉서(132)에 제공하며, 여기서 두 개의 값은 곱해지며 그 곱은 멀티플렉서(138)를 통하여 배럴 시스터(140)에 제공된다. 배럴 시프터(140)는 SREG(136)에 의하여 제공된 값에 따라 멀티플렉서(149)를 통하여 곱을 표준화하며 표준화된 곱을 가산기(146)의 제 1 입력에 제공한다. 가산기(146)의 제 2 입력에는 멀티플렉서(154), 디스에이블 인버터 엘리먼트(152) 및 배럴 시프터(152)를 통하여 영이 제공된다. 가산기(146)의 출력은 멀티플렉서(148)를 통하여 C0REG(164)에 제공된다. 동일 클록 사이클중에, yL-1(0) 및 h(1)는 RAM C(182) 및 RAM A(104)로부터 페칭되며, 멀티플렉서(158, 108)를 통하여 DREG(156) 및AREG(130)에 제공된다.
블록(372)에서, 함성된 음성 샘플 인덱스, n은 증분된다. 제어 블록(374)에서, 만약 합성된 음성 샘플 인덱스, n이 20보다 작으면, 흐름은 블록(376)으로 진행한다.
블록(376)에서 새로운 yL(n)값은 식(40)에 따라 각각의 클록 사이클에서 계산된다. 값 yL-1(n-1) 및 h(n)를 초기화하기 위하여 블록(376)의 제 1 반복전에 요구되는 적당한 설정이 상술한 것처럼 블록(370)에서 이루어진다. 적합한 클린업역시 최종값 yL(19)를 저장하기 위하여 블록(376)의 최종 반복다음에 요구된다.
블록(376)의 제 1 반복에서 블록(370)에서 계산된 yL(0)는 C0REG(164)에 존재한다. C0REG(164)는 멀티플렉서(168, 180)를 통하여 저장용 RAM B(122)에 제공되며, 어드레스값은 어드레스 유니트 B(120)로부터 RAM B(122)에 제공된다. yL(0)는 RAM B(122)에 제공되는 동일한 시간에 프로세서(334)를 최소화하기 위하여 제공된다.
블록(376)에서, 다음 연산이 단일 클록 사이클동안 수행된다. yL-1(n)은 어드레스 유니트 C(186)에 의하여 제공된 어드레스에 따라 RAM C(182)에 의하여 멀티플렉서(158)를 통하여 DREG(156)에 제공된다. 임펄스 응답값, h(n+1)는 어드레스 유니트 A(102)에 의하여 제공된 어드레스에 따라 RAM A(104)에 의하여 멀티플렉서(108)를 통하여 AREG(130)에 제공된다. DREG(156)는 멀티플렉서(154),디스에이블된 인버터 엘리먼트(152) 및 배럴시프터(150)를 통하여 가산기(146)의 제 1 입력에 전달된다. AREG(130)는 h(n)를 BREG(134)는 p(-L)를 멀티플렉서(132)에 제공하며, 여기서 두 개의 값은 곱해져서 그 곱은 멀티플렉서(132)에 의하여 멀티플렉서(138)를 통하여 배럴 시프터(140)에 제공된다. 배럴 시프터(140)는 SREG(136)에 의하여 제공된 값에 따라 곱값을 표준화하여 가산기(146)의 제 2 입력에 표준화된 값을 제공한다. 가산기(146)의 출력은 멀티플렉서(148)를 통하여 C0REG(164)에 제공된다. 이전 반복에서 계산된 C0REG(164)의 값은 멀티플렉서(168, 124)를 통하여 저장하기 위하여 그리고 프로세서(334)를 최소화하기 위하여 RAM B(122)에 제공된다.
블록(372)에서, 합성된 음성 샘플 인덱스, n은 증분된다. 제어블록(374)에서, 합성된 음성 샘플 인덱스, n이 20과 동일하면, 마지막 반복에서 계산된 yL(19)는 멀티플렉서(168, 124)를 통하여 순환 버퍼에 저장하기 위하여 그리고 흐름이 블록(390)에 진행하기 전에 프로세서(334)를 최소화하기위하여 RAM B(122)에 제공된다.
케이스 II 종료
블록(390)의 제 1 반복전에, yL-1(19)은 RAM B(122)에서 순환 버퍼로부터 페치되며 BREG(134)로 전달되며, 다음에 yL-1(19)은 BREG(134)로부터 C0REG(164)로 이동되며 다음에 yL-1(20)은 RAM B(122)에서 순환 버퍼로부터 페치되며 BREG(134)로 전달된다.
블록(390)에서, 새로운 yL(n)은 식(41)에 따라 각각의 클록 사이클에서 계산된다. 다음 연산은 단일 클록 사이를에서 수행된다. yL-1(n-2)은 BREG(134)에 의하여 C0REG(164)에 제공된다. yL-1(n-3)은 RAM B(122)에서 순환 버피로부터 폐치되며 BREG(134)로 전달된다. C0REG(164)에 존재하는 yL-1(n-1)은 프로세서(334)를 최소화하기 위하여 제공된다. 블록(390)의 최종 반복 다음에, yL-1(Lp-2)은 RAM B(122)의 순환 버퍼에서 제거된다. 각각의 피치 레그에 순환 버퍼에 대한 엘리먼트를 가산하고 각각의 피치 레그에서 순환 버퍼로부터 엘리먼트를 제거함으로써, 순환 버퍼의 크기는 Lp-19에서 유지된다.
순환 버퍼의 수행은 시퀀스 메모리가 순환 방식으로 자동적으로 수행될 수 있게하는, 랩 어라운트 포인트를 수행하는 어드레스 유니트 B (120)에 있는 특정 어드레스 레지스트를 통하여 수행될 수 있다.
블록 (386)에서, 항성된 음성 샘플 색인, n가 증가된다. 제어 블록(388)에서, 합성된 음성 샘플 색인, n가 Lp적다면 흐름이 다시 블록 (390)으로 진행된다. 합성된 음성 샘플 색인, n가 Lp와 같다면, 그러면 모든 YL(n)값이 전류 피치 지연 값 L로 계산되어서 흐름이 블록 (362)에 복귀된다.
합성된 음성 샘플 YL(n)의 계산 이전에, 지각있게 가중된 음성 샘플 Xp(n) 의 시퀀스의 길이 Lp가 최소화 프로세스(334)에 제공된다. 상기 기술된 지연 값L=17에서 L=143까지 길이 Lp의 합성된 음성 샘플 YL(n)의 시퀀스가 최초 및 순환 회선 계산중에 최소화 프로세스 (334)에 제공된다. 합성된 음성 샘플은 최소화 프로세스 (334)에 순차적으로 제공된다. 최소화 프로세스(334)은 합성된 음성 샘플 시퀀스 YL(n)의 자기상관관계 및 각각 합성된 음성 샘플 시퀀스 YL(n) 과 지각있게 가중된 음성 샘플 Xp(n) 의 시퀀스 사이의 상호상관관계을 계산한다. 이 상관 값으로 부터, 최소화 프로세스 (334)는 각각 합성된 음성 샘플 시퀀스 YL(n) 과 지각있게 가중된 음성 샘플 Xp(n)의 시퀀스 사이에 MSE의 상대적인 측정을 계산한다. 각각 피치 지연에 L에 대하여, MSE는 합성된 음성 샘플 시퀀스의 모든 가능한 피치 이득 값, b로 계산된다. 최소화 프로세스 (334)는 전류 피치 지연 L과 전류 피치 이득 b를 통하여 최소 MSE의 값을 유지함으로서 모든 피치 지연 값 L 및 모든 가능한 피치 이득 값 b에서 최소 MSE을 찾는다. 최소 MSE에 상응하는 피치 지연 추정값 L 과 피치 이득 추정 샘플 b는 최소화 프로세스 334에 의해 유지된다. 각각 새로운 MSE 값은 최소화 프로세스 (334)에 유지된 최소 MSE와 비교된다. 만약 새로운 MSE가 최소 MSE보다 적다면, 그러면 피치지연 추정값 L 과 피치 이득 추정 샘플 b과 새로운 MSE에 의해 대치된 최소 MSE은 새로운 최소 MSE로 반영되도록 갱신된다. 최소화 프로세스(334)에 유지된 최소 MSE와 상응하는 피치 지연 추정값 L과 피치 이득 추정 샘플 b는 피치 서브프레임 중에 계산된 제 1 음 MSE 값을 사용하여 각각 피치 서브프레임을 초기화 시킨다. 모든 피치 지연 값 L과 모든 피치 이득 값 b가 다 소모된 후, 피치 지연 추정값 L 과 피치 이득 추정 샘플 b는 전류 피치 서브프레임에 대해 각각 최적 피치 지연 인덱스와 최적 피치 이득 샘플이 될 것이다. 최소화 프로세스 (334)는 피치 지연 추정값 L과 피치이득 추정 샘플 b를 DSP 코어 (4)에 제공한다. 최적의 피치 지연 추정값 L 과 최적의 피치 이득 추정 샘플 b는 지각있게 가중된 음성 샘플 Xp(n)과 지각있게 가중 합성된 음성 샘플 YL(n)사이의 최소 MSE에서 발생된 것이다. MSE는 아래 44에서 46까지의 식에서 기재됐 듯이 피치 지연 L 과 피치 이득 b의 함수이다.
EXpXp는 지각있게 가중된 음성 샘플 Xp(n)의 자기 상관이다. EXpYL는 지각있게 가중된 음성 샘플 Xp(n)과 가중 합성된 음성 샘플 YL(n)사이의 상호상관관계이다. EYLYL가중 합성된 음성 샘플 YL(n)의 자기 상관이다.
지각있게 가중된 음성 샘플 Xp(n)의 자기 상관 EXpXp은 피치 이득 b의 함수는 아니다. EXpXp는 각 피치 서브프로그램 중에 상수로 남아 있고 그러므로 최적의 피치 지연과 최적의 피치 이득의 선택에 영향을 끼치지 않는다. 피치 지연 L과 피치이득 b에 대한 식 (44)에서 (46)까지의 최소화는 아래 식 47의 최소화와 같다.
최소화 프로세스 (334)는 지각적으로 가중된 음성 샘플 시퀀스 Xp(n)과 가중된 합성 음성 샘플 시퀀스 YL(n)사이에 상호상관관계 EXpYL과 가중된 합성 음성 샘플 시퀀스 YL(n)의 자기상관관계 EYLYL를 계산한다. 각각 상관 쌍(EXpYL, EYLYL)에 대해 최소화 프로세스 (334)는, 상기 식 47에 따라서 한 세트의 피치이득 값 b에 대해 상대적 MSE를 계산한다. 상관 EXpYL, 과EYLYL의 계산은 최소화 프로세스 (334)에서 동시에 계산된다. 상대적인 MSE값이 계산되고 상관값이 피치지연 L+1에 대해 계산되는 동안에 MSE최소화에 관한 결정이 피치지연L에 대해 만들어 진다.
6a 및 6b도는 최소화 프로세스 (334)의 전형적인 실시예를 나타낸 것이다. 지각적으로 가중된 음성 샘플 Xp(n)이 제어 (220)에 의해 제공되는 어드레스에 따라서 RAM X (212)에 저장을 위해 대치 210에 DSP 코어 (4)에 의해 제공된다. 0.25 단계에서 b=0.25에서 b=0.2까지에 대해 계산된 피치 이득값 -2b가 각각 래치 (264, 268, 272, 276, 280, 284, 288, 292)에 저장을 위해 DSP 코어 (4)에 의해 멀티플렉서 (260)를 통하여 제공된다. 상응하는 계산된 피치 이득값 b2는 각각 래치 (262, 266, 270, 274, 278, 282, 286, 290)의 저장을 위해 DSP 코어 4에 의해 멀티펄렉스 (260)을 통해서 제공된다. 멀티플렉서 (260)은 래치 (262)에 직접적으로 값을 제공한다. 래치 (262)는 래치 (264)에 직접적으로 값을 제공한다. 래치 (276)은 값을멀티플렉서(294)를 통해 래치 (278)에 값을 제공한다. 래치 (290)은 래치 (292) 등에 직접 값을 제공한다. 멀티플렉서 (294)를 통하여 래치 (262)에서 (292)까지의 시프팅 값을 순환 버퍼 (259)내의 모든 래치에 멀티플렉서 (260)을 통하여 제공되게 한다. 지각적으로 가중된 음성 샘플 Xp(n)의 저장과 -2b 및 b2값의 저장에 따라서, 가중된 음성 합성 샘플 YL(n)의 시퀀스는 래치 (210)에 제공된다. 가중된 음성 합성 샘플 YL(n)이 래치 (210)에 의해 곱셈기(216)의 2개의 입력에 제공되고, 그것은 가중된 합성 음성 샘플의 자승 YL(n)2을 만들어낸다. 래치(210)은 가중 합성된 음성 샘플 YL(n)이 곱셈기(218)의 제 1입력에 제공된다. RAM X (212)은 래치 (214)를 통해 곱셈기(218)의 제2 입력에 지각적으로 가중된 음성 샘플 Xp(n)이 제공된다. 곱셈기 (218)은 산출값 Xp(n)YL(n)을 계산한다. 새로운 자승(YL(n))2과 새로운 산출값Xp(n)YL(n)이 각각 곱셈기 (216) 및 (218)에 의해 각각 사이클에서 계산된다. 샘플 색인 n, 은 각각 피치 지연 L에 대해 제로에서 Lp-1까지 변한다. 가중된 합성 음성샘플의 자승 (YL(n))2이 누산기(221)에 제공된다. 산출값 Xp(n)YL(n)이 게산기(231)에 제공된다. 누산기(221)은 각각 피치지연 L에 대해 Lp자승의 합을 계산한다. 게산기(231)는 각각 피치지연 L에 대해 산술값 Lp의 합을 계산한다.
각각 새로운 피치 지연 전에, 래치 (226)은 멀티플렉서 (224)를 통해제로로 제공된다. 누산기(221)은 전류 피치 지연 L에 대해 자기 상관 EYLYL을 계산하기 위해 준비된다. 누산기(221)에서 자승(YL(n))2이 합산기 222의 제1입력에 제공된다. 진행되는 전체값이 래치 (226)에 의해 합산기 (222)의 제 2입력에 제공된다. 새로이 계산된 진행되는 전체값이 저장을 위해 멀티플렉서 (224)에서 래치 (226)을 통해 합산기 (222)에 의해 제공된다. 피치 지연 L에 대한 모든 Lp값 전체의 계산후, 자기상관관계 EYLYL이 저장을 위해 래치 (228)에 제공된다.
새로운 피치 지연 전에, 래치 236이 멀티플렉서 234를 통해 제로로 제공된다. 누산기(231), 전류 피치 지연 L에 대한 상호상관관계 EXpYL을 계산하기 위해 준비된다. 누산기(231)에서, 산출값 EXpYL이 합산기 (232)의 제 1입력에 제공된다.
진행되는 전체합이 합산기 (232)의 제2입력에 래치 (236)에 의해 제공된다. 새로이 계산된 진행 전체값이 저장을 위해 멀티플렉서 (234)을 통해 래치 (236)에 합산기 (232)에 의해 제공된다. 피치 지연 L에 대한 Lp값 전체가 계산후, 상호상관관계 EXpYL이 저장을 위해 래치 (238)에 제공된다.
식 47에 의해 기술된 MSE는 아래에 기재된 2개 사이클 처리에서 계산된다.
2사이클의 제1에서, 래치(238)은 멀티플렉서 (230)에서 멀티플렉서(240)의 제1 입력을 통하여 지각적으로 가중된 음성 샘플과 가중된 합성 음성 샘플 사이에상호상관관계 EXpYL을 제공한다. 순환 버퍼 (259)은 멀티플렉서 (296)을 통하여 곱셈기 (240)의 제2입력에 계산된 피치 이익값 -2b을 제공한다. 산출값 -2bEXpYL이 합산기 (242)의 제1 입력에 곱셈기 (240)에 의해 제공된다. 합산기 (242)의 제2입력이 멀티플렉서 (246)을 통해 제로을 제공한다. 합산기 (242)의 출력이 저장을 위해 래치 (244)이 제공된다. 순환 버퍼 (259)의 래치 (262)에서 (292)에 값이 멀티플렉서(294)를 통하여 래치(276)의 출력이 래치 (278)에 제공되고, 멀티플렉서 (260)을 통하여 래치(292)의 출력이 래치 (262)에 제공함으로서 순환된다. 이회전후에, 래치(262, 264, 266, 268, 270, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292)는 각각 래치(292, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290)에 이전에 포함된 값을 포함한다. 상기 피치 탐색에 있어서, 순환 버퍼는 래치(262 내지 292) 및 순환 버퍼(259)의 멀티플랙서(260 및 294)로 이루어진다. 순환 버퍼(259)에서의 값을 회전시킴에 의해, 걸쇠(292)는 각각 제 1 및 제 2 싸이클에서 -2b 및 b2를 제공한다.
2개의 싸이클의 두 번째에 있어서, 래치(228)는 멀티플랙서(230)를 통해 중량이 합성된 음성 샘플의 자기 상환 EyLyL를 멀티플러(240)에 제공한다. 순환 버퍼(259)는 멀티플랙서(296)를 통해 비교된 피치 이득 값, b2을 멀티플러(240)의 제 2 입력 값에 제공한다. 생성치, b2EyLyL는 멀티플러(240)에의해 합산기(242)의 제 1 입력 값에 제공된다. 합산기(242)의 제 2입력에는 멀티플랙서(246)를 통해래치(244), -2bExpyL의 출력치가 제공된다. 합산기(242)는 저장을 위한 래치(244)에 -2bExpyL+b2EyLyL를 제공한다. 계속해서, 순환 버피(259)의 래치(262 내지 292)에서의 값은 상술한바와 같이 순환된다.
상술한 2개 싸이클의 공정은 비교된 피치 이득값의 모든 8쌍(-2b,b)에 대해 반복된다. 현재의 MSE값, -2b2ExpyL,+b2EyLyL의 계산에 이어지는 2개의 싸이클이 진행되는 동안, 새 MSE값은 -2b 및 b2의 새 쌍을 사용하여 계산되어 진다. 래치(244)가 갱신되기 전에, 현재 MSE값은 현재 피치 서브프레임을 위해, 래치(250)에 저장된 현재의 최소 MSE에 비교된다. 현재 MSE값, -2bExpyL+b2EyLyL는 래치(244)에 의해 감산기(248)의 양의 입력값에 제공된다. 래치(250)는 감산기(248)의 음의 입력에 대해 현재 최소한의 MSE값을 제공한다. 제어부(220)는 감산기(248)로부터 출력차의 결과를 모니터한다. 만약 차가 음이라면, 현재 MSE값은 현재 피치 서브프레임에 대한 신규한 최소한의 MSE이고, 그리고 대응하는 피치 래그 평가치, L' 및 피치 이득 평가치 인덱스, b'는 제어부(220)에서 갱신된다. 만약 차가 음이아니라면, 현재의 MSE 값은 무시된다.
각각의 서브프레임전에, DSP 코어(4)는 신규한 프레임이 따르게되는 제어부(220)에 정보를 제공하는 최소화 프로세서(334)에 명령을 제공한다. 이것을 수용할 때, 현재의 피치 래그에 명령을 주고 그리고 현재의 피치 이득 인덱스은 제어부(220)에서 0에 셋팅된다. 중량이 합성된 음성 샘플의 각각의 신규한 시이퀀스가 최소화 프로세서(334)에 제공되기 진에, DSP코어(4)는 최소화 프로세서(334)에 명령을 내려서, 중량이 합성된 음성 샘플의 신규한 시이퀀스가 따르게 되는 제어부(220)에 정보를 제공한다. 이명령을 수용할 때, 제어부(220)는 현재 피치 레그 및 현재의 피치 인덱스를 1 만큼 증가시켜서, 1의 피치 레그 증분 및 0.25의 피치 이득 증분에 대응된다. 중량이 합성된 음성 샘플의 제 1 시이퀀스가 최소화 프로세서(334)에 제공되는 동안, 현재의 피치 래그 및 현재의 피치 이득 인덱스는 L=17의 피치 레그 및 b=0.25의 정상화된 피치 이득값에 대응하여 1과 같게 될 것이다. 또한 각각의 피치 서브프레임전에, 현재의 피치 레그 평가치, L' 및 현재의 피치 레그 평가치,b'는 0으로 셋팅되어, 무효한 피치 레그 및 피치 이득값을 지시한다. 각각의 피치 서브프레임 동안, 제어부(220)는 래치(244)에서 제1의 음의 MSE을 탐색할 것이다. 이 값은 래치(250)에 저장되고, 그리고 대응되는 피치 레그 평가치 L' 및 피치 이득 평가치 인덱스 b'는 제어부(220)에서 갱신된다. 이것은 래치(250)의 각각의 피치 서브프레임에서 최소한의 MSE을 초기치에 맞추기 위해 행하여진다. 음의 MSE 값이 피치 서브프레임동안 생성되지 않는다면, 상기 피치 레그 평가치 L' 및 피치 이득 평가치 인덱스 b'는 서브프레임의 끝에서 0이 될 것이다. 이들 평가치는 제어부(220)에 의해 DSP 코어(4)에 제공될 것이다. 만약 DSP코어(4)가 무효한 피치 레그 평가치를 수용한다면, 최적의 피치 이득치는 제로, b'=0로 셋팅되어, 제로 MSE에 대응된다. 피치 필터의 피치 이득치가 제로로 셋팅되면, 상기 피치 레그에는 결과가 따르지 않는다. 만약, DSP의 코어(4)가 유효한 피치 레그 평가치,L'를 수용한다면, 이 값은 최적의 피치 레그로서 사용되고, 그리고 사용되는 최적의 피치 이득값은 각각 1 내지 8의 피치 이득 평가치 인덱스들에 대해 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 및2.0이 될 것이다.
피치에서, MSE 작용, 방정식(47)의 MSE(L,b)의 특징은 계산을 용이하게 한다. 상기 현재의 피치 레그내에서 계산되어지는 나머지 MSE 값이 래치(250)에서 저장된 현재의 최소한의 MSE보다 작은 MSE 값이 결과될수 없을 때, 현재의 피치 래그의 나머지 MSE의 계산은 중지될수도 있다. 전형적인 실시예에 있어서, 피치 탐색에서 계산하기 위한 3가지 기술은 최소화 프로세서(334)를 사용하는 것이다. MSE 작용, MSE(L,b)는 b에서 2차 방정식이다. 하나의 2차 방정식은 각각의 피치 레그 값L 에 대해서 형성된다. 모든 2차 방정식은 원점을 통해 b=0, 및 MSE(L,b)=0을 통과할 것이다. 상기 피치이득 값 b=0를 가능한 이득값의 셋팅내에 포함되지만, 이것은 피치 조작에서 명쾌하게 탐색되지 않는다.
제 1 계산 방법을 ExpyL가 음일 때 현재의 피치 레그의 피치 탐색절차에서 MSE값의 계산을 중지하게 한다. 모든 피치 이득 값이 양이면, 제로가 각각의 서브플라임에 대한 최소한의 MSE상에서 상단의 경계를 보증한다. ExpyL의 음의 값은 양의 MSE 값을 결과하게 하고 그리고 이에따라 차선책이 될 것이다.
제 2 계산 방법은 MSE의 작용의 2차 방정식 특징을 토대로 현재 피치 레그의 피치 탐색 절차에서 나머지 MSE 값의 계산을 중지한다. MSE 작용, MSE(L,b)은 단조롭게 증가하는 피치 이득값에 대해 계산된다. 양의 MISE 값이 현재의 피치 레그에대해 계산될 때, 현재 피치 레그에 대한 모든 나머지 MSE 계산은 중지되고, 모든 나머지 MSE 값은 또한 양이 될 것이다.
제 2 계산 방법은 MSE의 작용의 2차 방정식 특징을 토대로 현재 피치 레그의 피치 탐색 절차에서 나머지 MSE 값의 계산을 중지한다. MSE 작용, MSE(L,b)은 단조롭게 증가하는 피치 이득값에 대해 계산된다. MSE 값이 신규한 최소한의 MSE이 되도록 결정되지 않는 현재의 피치 레그내에서 계산될 때, 그리고 MSE 값이 신규한 최소한의 MSE이 되도록 결정되는 현재의 피치 레그내에서 계산될 때, 현재 피치 레그내의 모든 나머지 MSE의 계산은 중지되고, 상기 나머지 MSE값은 신규한 최소한의 MSE보다 작게 될것이다. 상술한 3개의 계산 방법은 최소화 프로세서(334)에서 상당한 동력 누산을 제공한다.
블록(76)내에서, 상기 피치 값은 양자화된다. 각각의 피치 서브프레임에 대해서, 선택된 파라미터 b' 및 L'은 전환 코드, PGAIN 및 PLAG로 전환된다. 최적의 피치 이득 인덱스 b'는 1 내지 8을 포함한 정수 값이다. 최적의 피치 레그 L'은 1 내지 127을 포함한 정수 값이다.
PLAG의 값은 b' 및 L'양쪽에 따라 좌우된다. 만약 b'=0이라면, 계속해서 PLAG=0이다. 또한 PLAG=L'이다. 따라서, PLAG는 7개의 비트를 사용하여 나타내어진다. 만약 b'=0이면, PGAIN=0이다. 또한 PGAIN=b'-1이다. 이에따라서, PGAIN은 3개의 비트를 사용하여 나타내어진다. 주목하여야 할것은 b'=0 및b'=1모두는 PGAIN=0을 결과할 것이다. 이들 2가지 경우는 PLAG의 값에 의해 구별되는데, 이것은 제 1 경우에서는 제로이고 그리고 제 2경우에서는 제로가 아니다.
제 8 비율을 제외하고, 각 피치 서브프레임은 두 개의 코드북 서브프레임을 둘러싼다. 각 코드북 서브프레임을 위한 광학 코드북 색인(), 및 광학 코드북 이득()은 블록(80)의 코드북 조사 과정에서 결정된다. 제 8 비율을 위하여, 단지 하나의 코드북 색인 및 하나의 코드북 이득은 결정되고 코드북 색인은 전송전에 버린다.
제 9 도를 참조하여, 실시예에서, 코드북(400)에 의해 제공된 여기 코드북은 2M코드 벡터로 구성하고, 여기서 M = 7이다.
실시예에서, 순환 코드북은 아래의 테이블 IV에서 주어진 128개의 값으로 구성한다. 상기 값은 십진법으로 표기되고 ROM E(114)에 저장된다.
테이블 IV
코드북 벡터 색인(I) 및 코드북 이득(G)를 선택하기 위해 사용된 방법은 피치 조사 과정 동안 사용된 방법과 비슷한 분석 합성 방법이다. 선택된 코드북 색인() 및 선택된 코드북 이득()은 가중되어 합성적으로 다루어진말(y1(n)) 및 제거된 피치 평가치 (xc(n))를 가진 지각적으로 가중된 말 사이에 방정식(50)의 평균 제곱 에러 MSE(I, G)를 최소화하는 히용값()이다. 제 9 도를 참조하여 가중된 말 (xc(n))은 다음처럼 형성된다. 현재 서브프레임을 위한 피치 조사에서 형성된 동일한 지각적으로 가중된 말 (xc(n))은 여기서 사용된다. 제 8 비율에서 피치 조사의 생략 때문에, x(n)은 상기 비율동안 코드북 조사에서 형성된다. x(n)은 덧셈기(410)의 제 1 입력에 제공된다. 현재 서브프레임을 위한 피치 조사, 및 피치 필터(506)의 현재 상태 메모리에서 추출된 광학 피치 지체량(), ALC 광학피치 이득 ()을 사용하여, 피치 합성 필터(506) (Pzir(n))의 ZIR은 ZIR 부품(406)에서 계산된다. ZIR은 가중된 합성 필터(408)를 통하여 통과되고 출력 (pazir(n))은 가산기(410)에서 x(n)으로부터 감산된다. 가산기(410)(xc(n))의 출력은 정상화되고 최소화 프로세서(412)에 제공된다.
코드북 벡터 (C1(n))는 방정식(53)에 따라 코드북 색인(I)에 응답하여 코드복(400)에 의해 제공된다. 현재 피치 서브프레임을 위한 피치 조사 과정에서 이미 결정된, 가중된 합성 필터(404)의 임펄스 응답(h(n))은 실시예에서 사용된다. 그러나, 제 8 비율에서, h(n)은 가중된 합성 필터(404)의 코드북 조사에서 계산된다.실시예에서, 임펄스 응답 (h(n))은 첫 번째 20 샘플들로 종결된다.
코드북의 순환 성질 때문에, 피치 조사에서 사용된 것과 비슷한 순환 컨벌루션은 코드북 조사에서 사용된다. 컨벌루션은 아래의 방정식에서 도시된 것처럼 계산된다.
색인 (I,CI(n))을 위한 코드북 벡터는 아래의 방정식(53)에서 도시된 것으로 정의된다.
완전한 컨벌루션은 방정식(54)에 대해 색인 I=0을 위하여 수행된다. 출력(y0(n))은 RAM C(182)에 저장된다. 잔류 색인(I=1내지 I=127)을 위하여, 컨벌루션은 아래의 방정식(55-57)에서 도시된 것처럼 순환하여 수행된다.
피치 조사에서 처럼, 코드북 조사 순환 컨벌루션의 수행은 3중 배치된 RAM 및 DSP 코어(4)에서 ROM E(114)에 의해 최대한 활용된다.
방정식(56)에서 컨벌루션을 계산하는 것, 및 각각의 결과 클럭 사이클을 형성하는 것은 가능하다. 예를들어, 하나의 사이클에서, y18(10)은 계산되고, y18(9)는 저장되고, y17(10)은 명령이 인출되고, h(10)은 명령이 인출된다. 그래서, 상기 방정식(56)은 각각의 결과 클럭 사이클을 생산할수 있다. 상기 방정식(57)을 위한 각각의 결과 클럭 사이클을 생성하는 것은 역시 가능하다. 예를들어, 하나의 클럭 사이클에서, y18(24)는 계산되고, y17(24)는 명령이 인출되고, y18(23)은 저장된다.
각 코드북 색인 사이의 동일한 소오스 RAM에 이미 계산된 가중된 합성적인 말 샘플 yI-1(n-1)을 움직이기 위한 필요없이 방정식(56 및 57)을 수행하기 위한 능력은 각 색인 갱신사이의 교환된 소오스 및 목적 RAM에서 서로 교환하여 설명되는 기억 방법 및 하드웨어 용량을 요구한다. 심지어 코드복 색인 값을 위한 y1(n)을 계산할 때, yI-1(n-1) 값은 3개의 RAM중 제 1로부터 인출되고 결과는 3개의 RAM중 제 2에서 기억된다. 기수 코드북 색인 값을 위한 y1(n)을 계산할 때, yI-1(n-1)값은 3개의 RAM중 제 2로부터 인출되고 결과는 3개의 RAM중 제 1에서 기억된다. 이 상호 교환은 이미 계산된 yI-1(n-1) 값을 각 코드북 색인 갱신 사이의 동일한 RAM에 이동시킬 필요를 제거한다.
제 10 도는 실시예에서 코드북 조사의 순환 컨벌루션 부분(초기 비순환 및 순환 컨벌루션 양쪽)의 실행을 위한 흐름도이다. 블록(414)에서, 코드북 색인(I)은 실시예에서 0인 그것의 가장 낮은 값으로 초기화시킨다. 샘플수(n) 및 색인(m)은 0에 지정되고, y0(n)의 값은 0에 지정된다. 블록(416내지 424)은 비순환 방식으로 계산된 초기 컨볼루션 루프를 형성한다. 1=0에서, 초기 컨볼루션의 계산은 아래 방정식(58)에 대해 수행된다.
초기 컨볼루션의 계산은 계산의 복잡성을 줄이기 위하여 고정된 길이 루프를 상o 한다. 상기 방식으로, 방정식(58)의 내부 루프(블럭 320-324)내의 다양한 길이 루프 구조를 지정하기 위하여 요구된 총비용은 피해진다. 각 y0(n) 값은 계산이 끝난후 프로세서(412)를 최소화하기 위하여 보내진다.
블록(416)은 샘플 색인(n)을 검사한다. 만약 n이 코드북 서브프레임길이(Lc)와 같아지면, 제 1 컨볼루션은 완전해지고 블록(426)에 연속하여 흐른다. 만약 블록(416)에서, n이 코드북 서브프레임 길이보다 작으면, 블록(420)에 연속하여 흐른다. 블록(420)은 색인(m)을 검사한다. 만약 m이 실시예에서 필터 임필스 응답 길이(20)와 같으면, 현재 반복은 m이 0에 지정되고 n이 증가되는 경우 완전해지고 블록(418)에 연속하여 흐른다. 그리고 나서 블록(416)으로 흐른다. 만약, 블록(420)에서, m이 필터 임피스 응답 길이보다 작으면, 부분적인 합이 쌓이는 경우 블록(422)으로 연속하여 흐른다. 흐름은 색인(m)이 증가되고 흐름이 블록(420)으로 진행하는 경우 블록(422)로 계속된다.
블록(414내지 424)에 의해 형성된 초기 컨볼루션 루프에 포함된 동작은 적당한 파이프라이닝이 블록(424)에서 도시된 것처럼 생성물의 누산을 허용하기 위하여 제공되는 경우 DSP 코어(4)에서 수행된다. 다음 동작은 계산의 파이프라이닝을 도시하고 하나의 클럭 사이클에서 DSP코어(4)를 일으킨다. 필터 응답 값(h(m+1))은 RAM A(104)로부터 인출되고 AREG(130)에 제공된다. 코드블럭 벡터값(C1(n))은 ROM A(114)로부터 인출되고 BREG(134)에 제공된다. COREG(164)에 존재하는 부분합(y0(n+m-1))은 다중 채널(168 및 180)을 통하여 RAM C(182)에 제공된다. AREG(130) 및 BREG(134)에서 값(h(m) 및 C1(n))은 각각 곱셈기(132)에 제공된다. 곱셈기(132)에 제공된다. 곱셈기(132)의 출력은 다중 채널(138) 및 금지된 배럴 시프터(barrel shifter)를 통하여 가산기(146)의 제 1 입력에 제공된다. 상기 실시예에서, 생략한 가우스 코드북(C1(n))은 대부분 0의 값을 포함한다. 상기 상황의 장점을 취하기 위하여, 전력 절약 특징처럼, DSP 코어(4)는 코드북벡터가 블록(424)에서 0인지를 보기 위하여 검사한다. 만약 그것이 0이면, 블록(424)에서 정상적으로 수행되고 상기에서 설명된 곱셈 및 가산 단계는 건너뛴다. 상기 과정은 시간의 대략 80%의 곱셈 및 가산 동작을 제거하므로 전력을 절약한다. 가산기(146)의 출력은 곱셈기(148)를 통하여 CEOREG(164)에 제공된다. COREG(164)에서 상기 값은 곱셈기(168 및 180)를 통하여 RAM C(182)에 제공된다. 색인(n)에 블록(416)에서 허용할수있는 최고값에 이를 때, 초기 컨볼루션은 완전해 지고 RAM C(182)에 존재하는 부분적인 합은 컨볼루션의 마지막 결과이다.
초기 컨볼루션이 완전해질 때, 흐름은 순환 컨볼루션이 잔류 코드북 색인 값을 위한 계산에서 수행되는 경우 블록(426)으로 연속적으로 흐른다.
블록(426)에서, 샘플 색인(n)은 0으로 지정되고 코드북 색인(I)은 증가된다. 흐름은 블록(428)으로 계속된다. 블록(428)은 I를 검사한다. 만약 I 가 실시예에서, 최대 코드북 색인 값 128보다 크거나 같으면, 흐름은 코드북조사 동작이 끝나는 경우 블록(430)으로 계속된다. 만약 1 가 127보다 작거나 같으면 흐름은 블록(432)로 계속된다. 블록(432)은 상기된 상호 교환 동작을 제어한다. 블록(432)에서, I 는 그것이 우수인지 기수인지를 결정하기위하여 검사된다. 만약 I 가 우수이면, 흐름은 블록(442)(경우 I에서 기술된 동작)으로 계속되고, 만약 I 가 기수이면, 흐름은 블록 (434)(경우II서 기술된 동작)으로 계속된다.
경우 I : (코드북 색인 I의 우수값)
블록 442에서, y1(0)는 방정식(55)에 대해 계산된다. 어드레스 유니트A(102)는 RAM A(104)에 어드레스 값을 제공하고, 그것은 곱셈기(108)를 통하여 AREG(130)에 h(0)를 제공한다. 동일한 클럭 사이클에서, 어드레스 유니트 E(112)는 어드레스 값을 ROM E(114)에 제공하고, 그것은 응답에서 곱셈기(116)를 통하여 BREG(134)에 C1(0)를 제공한다. 다음 사이클 동안 AREG(130)은 h(0)를 제공하고 BREG(134)는 C1(0)를 곱셈기(132)에 제공하여, 그 경우 두 개의 값은 곱해지고 생성물은 곱셈기(138) 및 금지된 배럴 시프터(140)을 통하여 가산기(146)의 제 1 입력에 제공된다. 가산기(146)의 제 2 입력은 곱셈기(154), 금지된 변환기 부품(152), 및 배럴 시프터(152)를 통하며 0으로 제공된다. 가산기(146)의 출력은 곱셈기(148)을 통하여 COREG(164)에 제공된다. 동일 클럭 사이클 동안 yI-1(0) 및 h(1)는 RAM B(122) 및 RAM A(104)로부터 인출되고 각각 곱셈기(158 및 100)를 통하여 DREG(156) 및 AREG(130)에 제공된다.
블록(444)에서, 합성된 말 샘플 색인(n)은 증가된다. 제어 블록(446)에서, 만약 중합된 말 샘플 색인(n)이 20보다 작으면, 흐름은 블록(448)로 진행한다.
블록(448)에서, 새로운 y1(n)은 방정식(56)에 대해 각 클럭 사이클이 계산된다. 적당한 세트업(setup)은 상기된 것처럼 블록(442)에서 이루어진 yI-1(n-1) 및 h(n)의 값을 초기화하기 위하여 블록(448)의 제 1 상호 작용전에 요구된다. 적당한 클린업(cleanup)은 y1(19)의 마지막 값을 저장하기 위하여 블록(448)의 마지막 상호 작용 다음에 역시 요구된다.
블록(448)의 제 1 상호 작용에서, y1(0)은 COREG(164)에 존재하는 블록(442)에서 계산된다. COREG(164)는 어드레스 유니트C(182)로부터 RAM C(182)에 어드레스 값을 제공하며, 곱셈기(168 및 180)를 통하여 저장하기 위한 RAM C(182)에 y1(0)를 제공한다.
블록(448)에서, 다음 동작은 하나의 클럭 사이클에서 형성된다. yI-1(n)값은 곱셈기(116 및 158)를 통하여 DREG(156)에, 어드레스 유니트B(120)에 의해 제공된 어드레스에 관하여 RAM B(122)에 의해 제공된다. 임펄스 응답값(h(h+1))은 곱셈기(108)을 통하여 AREG(130)에, 어드레스 유니트 A(102)에 의해 제공된 어드레스에 관하여 RAM A(104)에 의해 제공된다. DREG(156)는 곱셈기(154), 금지된 변환기 부품(152), 및 배럴 시프터(150)을 통하여 가산기(146)의 제 1 입력에 yI-1(n-1)를 제공한다. AREG(130)은 y(n)를 제공하고 BREG(134)는 곱셈기(132)에 C1(n)을 제공하고, 그 경우 두 개의 값은 곱해지고 생성물은 금지된 배럴 시프터(140)를 통하여 가산기(146)의 제 2 입력에, 다중 채널(138)을 통하여 곱셉기(132)에 의해 제공된다. 가산기(146)의 출력은 다중 채널(148)을 통하여 COREG(164)에 제공된다. 상기 상호 작용에서 계산된 COREG(164)의 값은 다중 채널(166 및 180)을 통하여 저장하기 위한 RAM C(182) 및 최소화 프로세서(412)에 제공된다.
제어 블록(446)에서, 만약 합성된 말 샘플 색인(n)이 20과 같으면, 마지막 상호 작용에서 계산된 y1(19)는 흐름이 블록(454)로 진행하기 전에, 다중 채널(168 및 124)을 통하여 순환 버퍼에 저장하기 위한 RAM B(122) 및 최소화 프로세서(412)에 제공된다.
경우 I의 끝
경우 II:(코드북의 색인 I의 기수 값)
볼록(434)에서, y1(0)는 방정식(55)에 대해 계산된다. 어드레스 유니트 A(102)는 어드레스 값을 RAM A(104)에 제공하고, 그것은 응답에서 다중채널(108)을 통하여 AREG(130)에 h(0)를 제공한다. 동일한 클럭 사이클에서, 어드레스 유니트 E(112)는 어드레스 값을 ROM E(114)에 제공하고, 그것은 응답에서 다중 채널(116)을 통하여 BREG(134)에 C1(0)를 제공한다. 다음 사이클동안 AREG(130)는 h(0)를 제공하고 BREG(134)는 C1(0)를 곱셈기(132)에 제공하며, 그 경우 두 개의 값은 곱해지고 생성물은 금지된 배럴 시프터(140)를 통한 다중 채널(138)로부터 가산기(146)의 제 1 입력에 제공된다. 가산기(146)의 제 2 입력은 다중 채널(154), 금지된 변환기 부품(152), 및 배럴 시프터(152)를 통하여 0이 제공된다. 가산기(146)의 출력은 다중채널(148)을 통하여 COREG(164)에 제공된다. 동일한 클럭 사이클 동안, yI-1(0) 및 h(1)는 RAN C(182) 및 RAM A(104)로부터 인출되고 각각 다중 채널(158 및 100)을 통하여 DREG(156) 및 AREG(130)에 제공된다.
블록(436)에서, 합성된 말 샘플 색인(n)은 증가된다. 제어 블록(438)에서, 만약 합성된 말 샘플 색인(n)이 20보다 작으면 흐름은 블록(440)으로 진행한다.
블록(440)에서, 새로운 y1(n) 값은 각 블록 사이클을 방정식(56)에 대해 계산된다. yI-1(n) 및 h(n)의 값을 초기화하기 위하여 블록(440)의 첫 번째 순환전에 요구된 적당한 셋업은 상기된 것처럼 블록(434)에서 이루어진다. 적당한 클린업은 y1(19)의 마지막 값을 저장하기 위하여 블록(440)의 마지막 순환후 요구된다.
블록(440)의 첫 번째 순환에서, 블록(434)에서 계산된 y1(0)는 COREG (164)에서 존재한다. COREG(164)는 어드레스 유니트 B(120)으로부터 RAM B(122)에 제공된 어드레스 값으로 다중 채널(168 및 180)을 통하여 저장하기 위한 RAM B(122)에 제공한다. y1(0)는 그것이 RAM B(122)에 제공된 동시에 최소화 프로세서(412)에 제공된다.
블록(440)에서, 다음 동작은 하나의 클럭 사이클에서 수행된다. yI-1(n) 값은 다중 채널 (158)을 통하며 DREG(156)에 유니트 C(186)에 의해 제공된 어드레스에 대해, RAM C(182)에 의해 제공된다. 임펄스 응답 값 h(h+1)은 어드레스 유니트 A(102)에 의해 제공된 어드레스에 대해, 다중 채널(108)을 통하여 AREG(130)에 RAM A(104)에 의해 제공된다. DREG(156)은 yI-1(n-1)을 다중 채널(154), 금지된 변환기 부품(152), 및 배럴 시프터(150)를 통하여 가산기(146)의 제 1 입력에 제공한다. AREG(130)는 h(n)을 제공하고 BREG(134)는 C1(n)을 곱셈기(132)에 제공하고, 그 경우 두 개의 값은 곱해지고 생산물은 배럴 시프터(140)을 통한 다중 채널(138)을 통하여 가산기(146)의 제 2 입력에 곱셈기(132)에 의해 제공된다. 가산기(146)의 출력은 다중 채널(148)를 통하여 COREG(164)에 제공된다. 이전의 순환에서 계산된 COREG(164)의 값은 다중 채널(168 및 124)을 통하여 저장용 RAM B(122) 및 최소화 프로세서(412)에 제공된다.
블록(436)에서, 합성된 말 샘플 색인(n)은 증가된다. 제어 블록(158)에서, 만약 합성된 말 샘플 색인(n)이 20과 같으면, 마지막 순환에서 계산된 yI(19)는 다중 채널(168 및 124)을 통하여 RAM B(122)내의 순환 버퍼에서 저장용 RAM B(122), 및 최소화 프로세서(412)에 흐름이 블록(154)로 진행하기전 제공된다.
경우 II의 끝
블록(154)의 첫째 순환전에, yI-1(19)는 RAM B(122)에서 순환 버퍼로부터 인출되고 BREG(134)로 로딩된다. yI-1(19)는 BREG(134)로부터 COREG(164)로 이동되고, 그후 yI-1(20)은 RAM B(122)에서 순환 버퍼로부터 인출되고 BREG(134)로 로딩된다.
블록(454)에서, 새로운 yI(n)는 방정식(57)에 대해 각 클럭 사이클에서 계산된다. 다음 동작은 하나의 클럭 사이클에서 수행된다. yI-1(n-2)는 BREG(134)에 의해 COREG(164)에 제공된다. yI-1(n-3)은 RAM B(122)내의 순환 버퍼로부터 인출되고 BREG(134)로 로딩된다. COREG(164)에 존재하는 yI-1(n-1)은 최소화 프로세서(412)에 제공된다. 블록(454)의 마지막 순환다음, yI-1(Lc-2)는 RAM B(122)내의 순환 버퍼로부터 제거된다. RAM B(122)각 코드북 색인내의 순환 버퍼에 부품을 가산하고 제거함으로써, 순환 버퍼의 크기는 Lc-19에서 유지된다.
RAM B(122)내의 순환 버퍼의 수행은 어드레스 유니트 B(120)에서 특정 어드레스 레지스터를 통하여 이루어지고, 그것은 연속적인 메모리가 순환 형태로 자동적으로 어드레싱 될 수 있도록 보호 주변점을 지시한다.
블록(450)에서, 합성된 말 샘플 색인(n)은 증가된다. 제어 블록(452)에서, 만약 합성된 말 샘플 색인(n)이 Lc보다 작으면 흐름은 다시 블록(454)로 진행한다. 만약 합성된 말 샘플 색인(n)이 Lc와 같으면, 모든 yI(n) 값은 현재 코드북 색인 값을 위하여 계산되고, 흐름은 블록(426)으로 되돌아간다.
합성된 말 샘플 yI(n)의 계산전에, 지각적 가중된 말 샘플 Xc(n)의 결과 길이(Lc)는 최소화 프로세서(yI(n))에 제공된다. 상기된 것처럼, 코드북 벡터 색인 값(I=0내지 I=127을 위한 길이(Lc)의 합성된 말 샘플 yI(n)의 결과는 초기 및 순환 컨벌루션 계산동안 최소화 프로세서(412)에 제공된다. 합성된 말 샘플은 순차적으로 최소화 프로세서(412)에 제공된다. 최소화 프로세서(412)는 각 합성된 말 샘플 결과(yI(n))의 자기 상관관계 및 각 합성된 말 샘플(yI(n)) 사이의 상관관계, 및 지각적 가중된 말 샘플(xc(n))의 결과를 계산한다. 이들 상관관계 값으로부터, 최소화 프로세서(412)는 각 합성된 말 샘플결과(yI(n)) 및 지각적 가중된 말 샘플(xc(n))의 결과 사이의 MSE의 상대적인 측정을 계산한다. 각 코드북 벡터 색인(I)을 위하여, MSE는 합성된 말 샘플결과의 모든 가능한 코드북 이득 값(G)을 위하여 계산된다. 최소화 프로세서(412)는 현재 코드북 벡터 색인(I)을 통한 최소 MSE의 값, 및 현재 코드북 이득(G)을 유지함으로써, 모든 코드북 벡터 색인 값(I), 및 모든 가능한 코드북 이득 값(G) 전체의 최소 MSE를 발견한다. 최소 MSE에 대응하는 코드북 벡터 색인 평가치() 및 코드북 이득 색인 평가치()는 최소화 프로세서(412)에 의해 역시 유지된다. 각 새로운 MSE 값은 최소화 프로세서(412)에서 유지된 MSE 최소값이 비교된다. 만약 새로운 MSE가 최소 MSE보다 작으면, 최소 MSE는 새로운 MSE값 및 코드북 벡터 색인 평가치()에 의해 대치되고, 코드북 이득 평가치 색인()을 새로운 최소 MSE를 반영하기 위하여 갱신된다. 최소 MSE와 대응 코드북 벡터 색인 평가치(), alc최소화 프로세서(412)에 유지된 코드북 이득 평가치 색인()은 크드북 서브프레임동안 계산된 처번째 MSE 값을 사용하여 각 코드북 서브프레임에 초기화된다. 모든 코드북 벡터 색인후, I 및 코드북 이득갑(G)은 소모된다. 코드북 벡터 색인 평가치()및 코드북 색인 평가치()는 현재의 코드북 서브프레임을 위하여 각각 적당한 코드부 벡터 색인 및 적당한 코드북 이그 색인이 될 것이다. 최소화 프로세서(412)는 인포트(inport)(12)를 통하여 DSP 코어(4)에 적당한 코드북 벡터 색인() 및 적당한 코드북 이득 평가치 색인()을 제공한다. 적당한 코드북 벡터 색인() 및 적당한 코드북 이득 평가치 색인()은 지각적 가중된 말 샘플(xc(n)) 및 가중되어 합성된 말 샘플(yI(n)) 사이의 최소 MSE를 이끈다. MSE는 하기된 방정식(59내지 61)에 의한 코드북 색인(I) 및 코드북 이득(G)의 함수이다.
Excxc는 지각적 가중된 말 샘플(xc(n))의 상관관계이다. ExcyI은 지각적 가중된 말 샘플(Xc(n)) 및 가중되어 합성된 말 샘플(yI(n)) 사이의 대립관계이다. EyIyI은 지각적 가중되어 합성된 말 샘플(yI(n))의 자기 상관이다.
지각적 가중된 말 샘플(xc(n))의 자기 상관(Excxc)는 코드북 이득(G)의 함수가 아니다. Excxc는 각 코드부 서브프레임동안 일정하게 낮고 적당한 코드부 벡터색인 및 적당한 코드부 이득의 선택에 영향을 미치지 않는다. 코드부 벡터 색인(I) 및 코드부 이득(G) 전체의 함수(59내지 61)의 최소화는 하기 방정식(62)의 최소화와 같다.
최소화 프로세서(412)는 지각적 가중된 말 샘플 결과(xc(n)) 및 가중된 말 샘플 결과(yI(n)) 사이의 상호상관관계 및 가중되어 중합된 말 샘플 결과(yI(n))의 자기 상관(EyIyI)를 계산한다. 각 상관관계 쌍(ExcyI, EyIyI)을 위하여, 최소화 프로세서(412)는 코드부 이득(G)의 한셋트의 값을 위하여 상기된 방정식(62)에 따라 상대적인 MSE를 계산한다. 상관관계(ExcyI및 EyIyI)의 계산은 최소화 프로세서(412)에서 동시에 수행된다. 상대적인 MSE 값은 계산되고 결정 간주 MSE 최소화는 상관관계 값이 코드부 벡터 색인(I+1)을 계산하는 동안 코드북 벡터 색인(I)를 위하여 만들어진다.
제 6a 및 6b도는 최소화 프로세서(412)의 실시예를 도시한다. 지각적 가중된 말 샘플(xc(n))은 제어기(220)에 의해 제공된 어드레스에 대해 RAM X(212)에서 저장하기 위하여, DSP 코어(4)에 의해 래치(210)에 제공된다. 코드북 이득 값의 두 개의 셋트는 DSP 코어(4)에 의해 최소화 프로세서(412)에 제공된다. 하나의 세트는 양의 코드북 이득 값(G)이고, 제 2 세트는 음의 이득 값(-G)이다. 완전한 비율 및 반의 비율에서, +4.0dB의 단계에서 G=-4.0dB을 위한 비교된 코드북 이득 값(-2G)은래치(292, 288, 284 및 280)에서 저장하기 위해 다중 채널(260)을 통한 DSP코어(4)에 의해 제공된다. 1/4 비율 및 1/8 비율에서, +2.0dB의 단계에서 G=-4.0dB내지 +2.0dB을 위하여 비교된 코드북 이득 값(-2G)은 각각 래치(292, 288, 284 및 280)에서 저장하기 위하여 다중 채널(260)을 통하여 DSP 코어(4)에 의해 제공된다. 대응 비교된 코드북 이득 값(G2)은 각각 래치(290, 286, 282 및 278)에서 저장하기 위하여 다중 채널(260)을 통하여 제공된다. 완전한 비율 및 1/2 비율에서, +4.0dB단계에서 G=-4.0dB내지 +8.0dB를 위한 비교된 코드북 이득값(2G)은 각각 래치(276, 272, 268 및 264)에서 저장하기 위한 다중 채널(260)을 통하여 제공된다. 1/4 비율 및 1/8 비율에서, +2.0dB단계에서 G=-4.0dB내지 +2.0dB를 위한 비교된 코드북 이득 값(2G)은 각각 래치(276,272, 268 및 264)에서 저장하기 위한 다중 채널(260)을 통하여 제공된다. 대응 빅된 코드북 이득 값(G2)은 각각 래치(274, 270, 266 및 262)에서 저장하기 위하여 다중 채널(260)을 통하여 제공된다. 다중 채널(260)은 직접적으로 래치(262)에 값을 제공한다. 래치(262)는 값을 직접적으로 래치(264)에 제공한다. 래치(276)은 다중 채널(294)을 통하여 래치(278)에 값을 제공한다. 래치(290)은 직접적으로 래치(292) 등에 값을 제공한다. 래치(262내지 292) 및 다중 채널(294)을 통한 이동 값은 다중 채널(260)을 통하여 순환 버퍼(259)내의 모든 래치에 제공되는 값을 허용한다. 코드북 조사에서, 두 개의 순환 버퍼는 순환 버퍼(259)내에 제공된다. 지각적 가중된 말 샘플(xc(n))의 저장, 및 코드북 이득 값의 저장 다음, 가중되어 합성된 말 샘플(y1(n))은 곱셈기(216)의 두 개의 입력에 래치(210)에 의해 제공되고, 그것은 가중되어 합성된 말 샘플의 제공(y1(n))2를 생성한다. 래치(210)는 곱셈기(218)의 제 1 입력에 가중되어 합성된 말 샘플(y1(n))을 또한 제공한다. RAM X(212)은 래치(214)를 통하여 곱셈기(218)의 제 2 입력에 지각적 가중된 말 샘플(xc(n))을 제공한다. 곱셈기(218)는 생성값(xc(n)y1(n))을 계산한다. 새로운(y1(n))2및 새로운 생성물(xc(n)y1(n))은 각각 곱셈기(216 및 218)에 의해 각 사이클을 계산한다. 샘플 색인(n)은 각 코드북 벡터 색인(I)을 위하여 0내지 Lc-1로부터 변화한다.
가중되어 합성된 말 샘플의 제공(y1(n))2은 누산기(221)에 제공된다. 생성값(xc(n)y1(n))은 누산기(231)에 제공된다. 누산기(221)은 각 코드북 벡터색인(I)을 위하여 Lc의 가산을 계산한다. 누산기(231)은 각 코드북 벡터 색인(I)을 위한 Lc의 합을 계산한다.
각 코드북 벡터 색인전에, 래치(226)는 다중 채널(224)를 통하여 0이 제공된다. 누산기(221)는 현재 코드북 벡터 색인(I)을 위하여 자동관계(EyIyI)를 계산하기 위하여 준비한다. 누산기(221)에서, 제곱(y1(n))2은 가산기(222)의 제 1 입력에 제공된다. 전체 합산은 래치(226)에 의해 가산기(222)의 제 2 입력에 제공된다. 새롭게 계산된 전체 합산은 다중 채널(224)을 통하여 저장하기 위한 래치(226)에 가산기(222)에 의해 제공된다. 코드북 벡터 색인(I)을 위한 모든(Lc)를 걸쳐 누산후에, 자기 상관(EyIyI)은 저장하기 위한 래치(228)에 제공된다.
각 새로운 코드북 벡터 색인전에, 래치(236)는 다중 채널(234)을 통하여 0이 제공된다. 누산기(231)는 현재 코드북 벡터 색인(I)을 위하여 상호상관관계(ExcyI)를 계산한다. 누산기(231)에서, 생성값(xc(n)yI(n))은 가산기(232)의 제 1 입력에 제공된다. 전체 합산은 래치(236)에 의해 가산기(232)의 제 2 입력에 제공된다. 새롭계 계산된 전체 합산은 다중 채널(234)을 통하여 저장하기 위한 래치(236)에 가산기(232)에 의해 제공된다. 코드북 벡터 색인(I)을 위한 전체 Lc값에 걸쳐 누산후, 상호상관관계(ExcyI)는 저장하기 위한 래치(238)에 제공된다.
두 개의 사이클의 첫 번째에서, 래치(238)는 다중 채널(230)을 통하여 곱셈기의 제 1 입력에 지각적 가중된 말 샘플 및 가중되어 합성된 말 샘플 사이의 상호상관관계(ExcyI)를 제공한다. 제어기(220)는 래치(238)에 의해 제공된 ExcyI을 감시한다. 만약 ExcyI이 음이 아니면 래치(292)는 비교된 코드북 이득 값(-2G)을 다중 채널(296)을 통한 곱셈기(240)의 제 2 입력에 제공한다. 생성물(-2GExcyI)은 곱셈기(240)에 의해 가산기(242)의 제 1 입력에 제공된다. 만약 ExcyI이 음이면, 래치(276)는 비교된 코드북 이득 값을 다중채널(296)을 통하여 곱셈기(240)의 제 2 입력에 제공한다. 생성물(2GExcyI)은 곱셈기(240)에 의해 가산기(242)의 제 1 입력에 제공된다. 가산기(242)의 제 2 입력은 다중 채널(246)을 통하여 0이 제공된다. 가산기(242)의 출력은 저장을 위한 래치(244)에 제공된다. ExcyI의 표시는 제어기(220)에서 저장된다. ExcyI을 위한 1 및 0의 표시는 각각 ExcyI의 음 및 음이 아닌 것에 대응한다. 래치(262내지 276)에서 값은 다중 채널(260)을 통하여 래치(276)에서 래치(262)로의 출력을 제공함으로써 회전된다. 상기 회전후, 래치(262, 264, 266, 268, 270, 272, 274 및 276)는 각각 래치(276, 262, 264, 266, 268, 270, 272 및 274)에 미리 포함된 값을 포함한다. 래치(278내지 292)에서 값은 다중 채널(294)를 통하여 래치(292)의 출력을 래치(278)에 제공함으로써 회전된다. 상기 회전후, 래치(278, 280, 282, 286, 288, 290 및 292)는 각각 래치(292, 278, 280, 282, 284, 286, 288 및 290)에 미리 포함된 값을 포함한다. 하나의 순환 버퍼는 래치(262내지 276) 및 다중 채널(260)로 구성된다. 제 2 순환 버퍼는 래치(278내지 292) 및 다중 채널(294)로 구성된다. 순환 버퍼(259)에서 제 1 두 개의 순환 버퍼내의 값을 회전시킴으로써, 래치(292)는 각각 제 1 및 제 2 사이클에서 -2G 및 G2을 제공한다. 순환 버퍼(259)에서 제 2 순환 버퍼내의 값을 회전시킴으로써, 래치(276)는 각각 제 1 및 제 2 사이클에서 -2G 및 G2을 제공한다. 상관관계 및 상호상관관계 값의 각 쌍을 위하여, 코드북 이득 쌍들의 하나의 세트만 순환 버퍼(259)에 의해 제공된다. 코드북 이득 쌍들의 세트는 ExcyI의 음의 값을 위한 래치(262내지 276) 및 다중 채널(260)로 구성된다. 코드북 이득 쌍들의 세트는 ExcyI의 음이 아닌 값을 위한 래치(278내지 292) 및 다중 채널(294)에 의해 구성된 순환 버퍼에 의해 제공된다.
제 2의 두 개의 사이클에서 래치(228)는 다중 채널(230)을 통하여 곱셈기(240)의 제 1 입력에 EyIyI를 제공한다. 다중 채널(296)을 통하여 래치(276 및 292)는 각각 코드북 이득 값(G2)을 ExCyI의 음 및 음이 아닌 값을 위한 다중 채널(240)의 제 2 입력에 제공한다. 생성물(G2EyIyI)은 곱셈기(240)에 의해 가산기(242)의 제 1 입력에 제공된다. 가산기(242)의 제 2 입력은 다중 채널(246)을 통하여 래치(244)의 출력(士2GExCyI)이 제공된다. 가산기(242)는 저장용 래치(244)에 ±2GExCyI, +G2EyIyI를 제공한다. 순환 버퍼(259)의 래치(262내지 292)에서 값은 상기된 것처럼 회전된다.
상기된 것처럼 두 개의 사이클 처리는 각 크드북 색인(I)을 위한 코드북 이득 값의 모두 4개의 쌍들(±2G, G2)을 위하여 반복된다. 두 개의 사이클동안 현재 MSE 값의 계산(±2EGxcyI+G2EyIyI)다음, 새로운 MSE 값은 다음 쌍의 ±2G 및 G2을 사용하여 계산된다. 래치(244)가 새로운 MSE 값으로 갱신되기전에, 현재 MSE 값은 래치(250)에 제공된 현재 코드북 서브프레임을 위한 최소 MSE에 비교된다. 현재 MSE 값(±2GExcyI, +G2EyIyI)은 래치(244)에 의해 감산기(248)의 양의 입력에 제공된다. 래치(250)는 현재 최소MSE 값을 감산기(248)의 음의 입력에 제공한다. 제어기(220)는 감산기(248)로부터 결과가 다른 출력을 감시한다. 만약 차이가 음이면, 현재 MSE 값은 현재 코드북 서브프레임을 위한 새로운 최소 MSE이고 래치(250)에 저장되며, 대응 코드북 벡터 색인 평가치() 및 코드북 이득 평가치 색인()은 제어기(220)에서 갱신된다. 만약 차이가 음이 아니면, 현재 MSE 값은 무시된다.
각 코드북 서브프레임 전에, DSP 코어(4)는 새로운 코드북 서브프레임이 따를 제어기(220)를 아리는 최소화 프로세서(412)에 명령을 내린다. 상기 명령을 수신하여 현재 코드북 벡터 색인 현재 코드북 이득 색은 제어기(220)에서 0으로 지정된다. 가중되어 합성된 말 샘플의 각 새로운 결과가 최소화 제어기(412)에 제공되기전에, DSP코어(4)는 새로운 가중되고 합성된 말 샘플이 따를 제어기(220)를 알리는 최소화 프로세서(412)에 명령을 내린다. 상기 명령을 수신하여, 제어기(220)는 비율에 따르는 1의 코드북 벡터색인 증가 및 2dB 또는 4dB의 코드북 이득 증가에 대응하는 현재 코드북벡터 색인 및 1에의한 현재 코드북 이득을 증가시킨다. 가중되어 합성된 말 샘플의 제 1 결과가 최소화 프로세서9412)에 제공될 때, 현재 코드북 벡터색인 및 현재 코드북 이득 색인은 비율에 따르는 0의 코드북 색인 벡터 및 G=-8dB 또는 G=-4dB에 대응하는 1과 같다. 각 코드북 서브프레임동안, 제 1 MSE 값은 래치(250)에 저장되고, 대응 코드북 벡터 색인 평가치() 및 코드북 이득 평가치 색인()은 제어기(220)에서 갱신된다. 이것은 래치(250) 각 코드북 서브프레임에서 최소 MSE를 초기화하기 위하여 행해진다. 최소 MSE 평가치에 대응하는 코드북 벡터 색인 및 코드북 이득 색인은 최소 MSE에 대응하는 상호상관관계(ExcyI)의 표시에 따라 제어기(220)에 의해 DSP 코어 (4)에 제공된다. 만약 DSP 코어(4)가 ExcyI표시를 위한 0을 수신하면, G에 적당한 코드북 이득이 지정될 것이다. 만약 DSP 코어(4)가 ExcyI의 표시를 위한 1을 수신하면, -G에 적당한 코드북 이득이 지정될 것이다. DSP 코어(4)는 적당한 코드북 벡터 및 적당한 코드북 이득을 결정하기 위하여 제어기(220)에 의해 제공된 코드북 벡터 색인 평가치 및 코드북 이득색인을 사용한다. 완전한 비율 및 1/2 비율에서 적당한 코드북 이득(G)는 각각 코드북 이득 색인을 사용한다. 완전한 비율 및 1/2 비율에서는 적당한 코드북 이득(G)는 각각 코드북 이득 색인을 위한 -4dB, 0dB, +4dB 및 +8dB이다. 1/4 비율 및 1/8 비율에서 적당한 코드북 이득(G)는 각각 코드북 이득색인을 위한 -4dB, -2dB, 0dB 및 +2dB이다.
코드북 조사에서, MSE 함수의 성질인, 방정식(62)의 MSE(I, G)는 계산을 절약한다. 현재 코드북 벡터를 위한 잔류 MSE 계산은 현재 코드북 벡터를 위해 아직 계산되지 않고 잔류 MSE 값이 래치(250)에서 저장된 현재 최소 MSE 보다 작은 MSE 값을 이끌수 없는 것을 결정할 때 중지될수있다. 실시예에서, 코드북 조사에서 계산 절약을 위한 3가지 기술은 최소화 프로세서(412)에서 사용된다. MSE 함수,MSE(I, G)는 G에서 2차 방정식이다. 하나의 이차 방정식은 각 코드북 벡터 색인(I)을 위하여 형성된다. 이들 2차 방정식의 모두는 본래의 G=0 및 MSE(I, G)=0를 통과한다.
제 1 계산 절약 방법은 ExcyI의 표시에 따라 양 또는 음 코드북 이득상에 조사를 포함한다. ExcyI의 음의 값 및 음의 이득 값은 방정식(62)의 -2GExcyI측을 위한 음의 값을 이끈다. ExcyI의 양의 값 및 양의 이득 값은 역시 방정식(62)의 -2GExcyI측을 위한 음의 값을 이끈다. 방정식(62)의 G2EyIyI측이 항상 양이기 때문에, -2GExcyI측의 음의 값은 MSE를 최소화 할것이다. 코드북 이득 쌍들의 두 개의 세트는 양의 코드북 이득 값을 가진 첫 번째와 음의 코드북 이득 값을 가진 두 번째, 순환 버퍼(259)에 제공된다. 상기 방식으로, 이득 값의 4개의 쌍들은 각 코드북 벡터 색인(I)을 위한 8개의 이득 쌍들대신 사용될 필요가 있다.
제 2 계산 절약 방법은 MSE 함수의 2차 성질을 기초로 현재 코드북의 코드북 조사 과정에서 잔류 MSE 값의 계산을 중지하는 것을 포함한다. MSE 함수, MSE(I, G)는 단조롭게 증가하는 코드북 이득 값을 위하여 계산된다. 양의 MSE 값이 현재 코드북 벡터를 위해 계산될 때, 현재 코드북 벡터를 위한 모든 잔류 MSE 계산은 대응 MSE 값이 현재 MSE 값보다 큰것과 같이 중지된다.
제 3 계산 절약 방법은 MSE 함수의 2차 성질을 기초로 현재 코드북색인 벡터의 코드북 조사 과정에서 잔류 MSE 값의 계산을 중지하는 것을 포함한다. MSE 함수, MSE(I, G)는 단조롭게 증가하는 코드북 이득 값을 위해 계산된다. MSe 값이 새로운 최소 MSE로 결정되지 않는 현재 코드북 벡터내에서 계산될 때, 및 MSE 값이 새로운 최소 MSE으로 결정되는 현재 코드북 벡터내에서 계산될 때, 현재 코드북 벡터내의 모든 잔류 MSE 계산은 잔류 MSE 값이 새로운 최소 MSE보다 작지 않은 것과 같이 중지된다. 상기된 3개의 계산 절약 방법은 최소화 프로세서(412)에 중대한 전력 절약을 제공한다.
블록(84)에서 코드북 값은 양자화된다. 블록(86)은 코드북 서브프레임이 처리되는지를 검사한다. 만약 모든 코드북 서브프레임이 처리되지 않으면 흐름은 블록(80)으로 되돌아 간다. 만약 모든 코드북 서브프레임이 처리되었다면, 흐름은 블록(88)로 간다. 블록(88)은 모든 피치 서브프레임이 치리되었느지를 검사한다. 만약 모든 피치 서브 프레임이 처리되지 않았다면 흐름은 블록(70)으로 간다. 만약 모든 피치 서브프레임이 처리되었다면 흐름은 블록(90)으로 진행한다.
블록(90)에서, 인코딩 결과는 특정 형태로 묶여진다. 모든 비율에서, 데이터의 22 바이트는 마이크로 프로세서(도시되지 않음)에 의해 판독된다. 10 바이트는 1/2비율에서, 1/4비율에서 5, 1/8비율에서 2바이트가 판독된다. 전체 비율에서, 11 패리티 검사 비트는 에러 교정 및 완전한 비율 데이터의 18개의 가장 중요한 비트의 검출을 제공하기 위하여 생성된다.
전송기에서 인코더는 필터 메모리를 갱신하기 위하여 수신기에서 디코더의 상태를 유지해야만 하고, 그것은 피치 및 코드북 조사 과정에서 인코더에 의해 차례로 사용된다. 실시예에서, 인코더는 매번 코드북 서브프레임 후에 사용된 디코더의 변형을 포함한다.
다음 디코딩 동작은 인코더의 부분 같은 DSP 코어(4)에서 수행된다. 제 11 도를 참조하여, 현재 코드북 서브프레임을 위해 결정된 적당한 코드북 벡터 색인() 및 적당한 코드북 이득()은 비교된 코드북 벡터(Cd(n))를 생성하기 위하여 사용된다. 제 8 비율을 제외하고, 코드북(502)은 적당한 코드북 색인()이 제공되고, 현재 코드북 서브프레임을 위하여 결정되고 응답에서 대응 여기 벡터를 다중 채널(504)의 제 1 입력에 제공한다. 제 8 비율의 경우에, 의사 랜덤 결과는 의사 램덤 벡터 생성기(500)로 Cd(n)을 위해 형성되고 곱셈기(504)의 제 1 입력에 제공된다. 현재 코드북 서브프레임을 위해 결정된 적당한 코드북 이득()은 곱셈기(504)의 제 2 입력에 제공된다. 이 결과는 수신기에서 디코더에 의해 사용되는 동일한 의사 랜덤 형성 동작에 의해 형성된다.
비교된 코드북 벡터(Cd(n))은 포르만트(formant) 잔류물(Pd(n))을 형성하는 피치 합성 필터(506)에 제공된다. 피치 합성 필터 메모리는 형성된 말의 마지막 샘플로부터 나오는 마지막 상태가 초기화된다. 피치 합성 필터(506)는 현재 피치 서브프레임을 위해 결정된 적당한 피치 래그() 및 적당한 피치 이득()을 사용한다. 제 8 비율을 위하여, 적당한 피치 이득은 0으로 지정된다. 피치 합성 필터 메모리의 마지막 상태는 상기된 바와같이 다을 피치 서브프레임, 추후의 피치 조사 및 인코더내의 디코딩 동작을 위한 말을 형성하는데 사용하기 위하여 저장된다.
가중된 모음합성 필터(508)은 모음 잔류값, P(n)으로부터 출력값, Y(n)을 생성한다. 이 필터는 생성된 최종 샘플로부터 결과된 마지막 상태로 초기치에 맞추어 진다. 현재 서브프레임에 대한 삽입된 LSP값으로부터 계산된 LPC계수는 이필터를 위한 계수로서 사용된다. 이 필터의 최종 상태는 다음 코드북 서브프레임을 위해 생성된 음성에서 사용하기 위해 및 후속되는 피치 및 코드북 탐색에서 사용하기 위해 세이빙된다.
제 2도에 도시된 바와 같이, 블록(44 및 50)에 의해 도시된 디코딩 조작은 DSP코어에서 수행된다. ASIC는 마이크로프로세서 인터페이스(42)를 통해 마이크로프로세서(도시되지 않았음)으로부터 특정화된 모음으로 페킷을 수용한다. DSP코어(4)는 이 폐킷내의 자료를 디코딩시키고 그리고 PCM 인터페이스(2)를 통해 코댁(도시되지 않았음)에 공급되는 음성 시스템을 합성시키는데 사용된다. DSP 코어(4)에서, 수용된 패킷은 음성 샘플을 합성하는데 필요로 되어지는 자료를 수득하도록 팩킹되지 않는다. 이 자료는 앰코딩 속도, LSP주파수 및 그속도에 대한 대응 서브프레임을 위한 피치 및 코드 파라미터를 포함한다. 수용된 패킷자료로부터 음성 샘플의 합성은 DSP코어(4)에서 수행되고 그리고 제 12도에 도시되어 있다.
제 12도를 참조로 하면, 현재 코드북 서브프레임에 대응되는 최적 코드북 이득값 G 및 최적의 코드북 벡터 인덱스 I는 디코더에 의해 사용되어 비교된 코드북 벡터, C(n)을 생성하게 된다. B번째 속도를 제외하고는, 코드북(522)에는 현재의 코드북 서브프레임에 대응되는 최적의 코드북 인덱스 I 가 제공되고 그리고 응답시에는 멀티플러(524)의 제 1입력에 대응되는 여호백터를 제공한다. 8번째 속도의 경우에, 의사 난수 시이퀀스는 의사 난수 벡터 생성기(520)에 의해 C(n)dp 대해 생성되고 그리고 멀티플러(524)의 제 1 입력에 제공된다. 이 시이퀀스는 수용기에서 디코더에 의해 사용되는 동일한의사 난수 생성조작에 의해 생성된다. 현재의 코드북 서브프레임에 대응되는 최적의 코드북 이득값G은 멀티플렉서(524)의 제 2 입력에 제공된다.
비교된 코드북 벡터 C(n)에는 모음 잔류값 P(n)을 생성하는 피치 합성필터(526)에 제공된다. 피치 합성 필터 메모리는 생성된 음성의 마지막 샘플로부터 결과된 최종상태로 초기화 값이 맞추어진다. 피치 합성필터(526)는 최적의 피치 레그 L 및 최적의 피치 이득 치 b를 사용하여 현재의 서브 피치 서브프레임에 대응된다. 8번째 속도에 있어서, 최적의 피치 이득값은 0에 원형된다. 피치 합성 필저의 최종상태는 상기에 언급된바와 같이, 다음의 피치 서브 프레임에 대해 생성되는 음성에서 사용되도록 세이빙된다.
가중된 모든 합성 필터(528)은 모음 잔류값 P(n)로부터 출력값 Y(n)을 생성한다. 이 필터는 생성된 음성의 최종샘플을 형성하도록 결과된 최종상태고 초기화 값이 맞추어진다. 현재 서브프레임에 대한 삽입된 LSP 값으로부터 계산된 LPC계수는 이 필터를 위한 계수로서 이용된다. 이 필터의 최종상태는 다음의 코드북 서브프레임에 대한 재생음성에서 사용되도록 세이빙된다.
디코딩된 음성 Y(n)은 전형적인 실시예에서 디코딩된 현재의 서브프레임에 대한 LPC계수를 토대로 장기간의 포스트 필터인 포스터 필터(530)에 제공된다. 포스트 필터(5SO)는 재구성된 음성 샘플 Y(d)를 여과시키고 그리고 여과된 음성을 이득 제어부(532)에 제공한다. 이득 제어부는 출력 음성 s(n)dml 수준을 제어하고 그리고 자동 이득 제어부(AGC)를 수행하도록하는 능력을 갖는다.
바람직한 실시예의 전술한 설명은 당해 기술분야의 숙련된자들에게는 본 발명을 용이하게 실시 할수 있도록 제공된다. 당해 기술분야에 숙련된 자들에게는 이 실시예에 대해 다양한 변형이 있을수 있음이 명백하며, 본원에 기술된 원리는 본발명내에서 다른 실시예도 가능하다. 이에따라 본 발명은 본원에 도시된 실시예에 의해 제한되는 것이 아니라 본 발명의 범위와 일치하는 것이면 모두 본발명에 따르게 되는 것이다.

Claims (21)

  1. 순환 컨벌루션 계산을 수행하고 상기 순환 컨벌루션의 결과를 제공하는 디지털 신호 처리(DSP) 코어 수단; 및
    상기 디지털 신호 처리(DSP) 코어 수단으로부터 분리되어 있으며, 상기 순환 컨벌루션의 결과를 수신하고 상기 순환 컨벌루션의 결과에 따라 최소 탐색을 수행하는 최소화 프로세서 수단을 포함하는 것을 특징으로 하는 보코더.
  2. 제 1 항에 있어서,
    상기 DSP 코어 수단은 제 1 시퀀스 및 제 2 시퀀스에 대해 상기 순환 컨벌루션을 수행하며;
    상기 DSP 코어 수단은,
    상기 순환 계산을 수행하는 계산 수단;
    상기 제 1 시퀀스를 저장 및 제공하는 제 1 랜덤 액세스 메모리 수단;
    상기 제 2 시퀀스를 저장 및 제공하는 제 2 랜덤 액세스 메모리 수단; 및
    추가 순차 데이터를 저장 및 제공하는 제 3 랜덤 액세스 메모리 수단을 포함하는 것을 특징으로 하는 보코더.
  3. 제 1항에 있어서,
    데이터의 시퀀스에 대해 블록 정규화를 수행하는 수단을 더 포함하는 것을특징으로 하는 보코더.
  4. 디지털 오디오 데이터를 수신하는 입력을 가지며, 상기 디지털 오디오 데이터의 합성된 버전에 대한 대응 시퀀스를 발생시키는 디지털신호 처리(DSP) 코어 수단; 및
    상기 디지털 오디오 데이터의 합성된 버전의 시퀀스를 수신하기 위하여 상기 디지털 신호 처리(DSP) 코어 수단의 출력에 접속된 입력을 가지며, 상기 디지털 오디오 데이터의 합성된 버전과 상기 디지털 오디오 데이터사이의 최소 차를 결정하며, 발생 기능을 수행하는 상기 디지털 신호 처리(DSP) 코어 수단과 병렬로 결정 기능을 수행하는 최소화 프로세서를 포함하는 것을 특징으로 하는 보코더.
  5. 제 4항에 있어서,
    제 1 오디오 데이터를 수신하는 입력과 출력을 가진 디지털 오디오 인터페이스를 더 포함하며,
    상기 디지털 신호 처리(DSP) 코어 수단의 입력은 상기 디지털 오디오 인터페이스 출력에 접속되는 것을 특징으로 하는 보코더.
  6. 제 5 항에 있어서,
    마이크로프로세서 데이터를 수신하는 입력과 출력을 가지는 마이크로 인터페이스를 더 포함하며,
    상기 디지털 오디오 인터페이스는 제 2 입력을 가지며, 상기 디지털 오디오 인터페이스의 제 2 입력은 상기 마이크로프로세서 인터페이스 출력에 접속되는 것을 특징으로 하는 보코더.
  7. 제 4 항에 있어서,
    클록 신호를 수신하는 입력과 출력을 가진 클록 발생기를 더 포함하며,
    상기 디지털 신호 처리(DSP) 코어 수단은 상기 클록 발생기의 출력에 접속된 제 2 입력을 가지는 것을 특징으로 하는 보코더.
  8. 이동전화 시스템에서 합성된 음성 샘플을 나타내는 제 1시퀀스와 음성 샘플을 나타내는 제 2 시퀀스사이에서 순환 컨벌루션을 수행하는 방법을 실행하는 논리장치에서, 상기 순환 컨벌루션를 수행하는 상기 방법은,
    초기 컨벌루션을 수행하는 단계;
    스텝 인덱스가 짝수인지를 검사하는 단계;
    제 1 메모리 엘리먼트로부터 상기 제 1 시퀀스를 검색하는 단계;
    제 2 메모리 엘리먼트로부터 상기 제 2 시퀀스를 검색하는 단계;
    상기 스텝 인덱스가 짝수일 때 제 3 메모리 엘리먼트로부터 부분적인 컨벌루션 결과를 검색하는 단계;
    상기 검색된 제 1시퀀스, 상기 검색된 제 2 시퀀스 및 상기 검색된 부분적인 컨별루션 결과에 따라 부분 컨벌루션을 수행하는 단계;
    상기 스텝 인덱스가 홀수일 때 상기 제 2 메모리 엘리먼트에 상기 부분적인 컨벌루션의 결과를 저장하는 단계; 및
    상기 시퀀스간의 차이를 최소화하여 상기 디지털 오디오 데이터를 정확하게 합성하기 위하여 상기 컨벌루션 결과를 처리하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 8항에 있어서,
    순환 버퍼로부터 이전에 발생된 컨벌루션 결과를 검색하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 디지털 음성을 모델링하기 위하여 순환 컨벌루션을 수행하는 장치에 있어서,
    다수의 값을 순환적으로 컨벌루션하는 디지털 신호 프로세서(DSP)코어; 및
    상기 디지털 신호 프로세서(DSP)에 의해 액세스가능한 다수의 랜덤액세스 메모리(RAM)를 포함하며, 상기 각각의 랜덤 액세스 메모리는 이 값들이 상기 랜덤 액세스 메모리부터 서로 병렬로 페치되어 상기 디지털 신호프로세서(DSP)에 의해 처리될 수 있도록 각각의 값을 저장하는 것을 특징으로 하는 장치.
  11. 제 10항에 있어서,
    상기 다수의 랜덤 액세스 메모리(RAM)는 가중된 합성 음성 샘플을 나타내는 제 1 값 세트를 저장하는 제 1 랜덤 액세스 메모리, 포르만트 필터의 임펄스 응답을 나타내는 제 2 값 세트를 저장하는 제 2 랜덤 액세스 메모리 및 포르만트 나머지값의 시퀀스를 나타내는 제 3 값 세트를 저장하는 제 3 랜덤 액세스 메모리를 포함하는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서,
    상기 DSP 코어로부터 상기 순환 컨벌루션의 결과를 수신하여 상기 디지털 음성을 모델링하는 출력을 발생시키는 최소화 프로세서를 더 포함하는 것을 특징으로 하는 장치.
  13. 제 12항에 있어서,
    상기 디지털 음성의 샘플을 분할하지 않고 정규화하기 위하여 시프트레지스터를 포함하는 블록 정규화 회로를 더 포함하는 것을 특징으로 하는 장치.
  14. 제 10항에 있어서,
    상기 장치는 이동전화와 상호작용하는 것을 특징으로 하는 장치.
  15. 제 14항에 있어서,
    상기 장치는 이동전화 시스템과 상호 작용하는 것을 특징으로 하는 장치.
  16. 디지털 신호 프로세서(DSP) 코어로부터 음성샘플의 제 1시퀀스를 수신하고상기 DSP 코어로부터 합성된 음성샘플의 제 2 시퀀스를 수신하여, 상기 시퀀스들에 대한 최소평균자승 에러(MSE)를 결정하는 최소화 프로세서에 있어서,
    상기 제 2시퀀스의 자기상관을 결정하는 논리회로;
    상기 제 1시퀀스 및 상기 제 2 시퀀스간의 상호상관을 결정하는 논리회로;
    상기 자기상관 및 상기 상호상관에 응답하여, 순환 컨벌루션을 수행하는 DSP 코어와 병렬로 최소 MSE를 결정하는 논리회로를 포함하는 것을 특징으로 하는 최소화 프로세서.
  17. 제 16항에 있어서,
    상기 최소화 프로세서는 상기 DSP 코어와 상호작용하며, 상기 DSP코어는 다수의 값을 순환적으로 컨벌루션하고 다수의 랜덤 액세스 메모리(RAM)에 대해 액세스할 수 있으며, 상기 각각의 랜덤 액세스 메모리(RAM)는 값들이 상기 랜덤 액세스 메모리부터 서로 병렬로 페치되어 상기 디지털신호 프로세서(DSP)에 의해 처리될 수 있도록 각각의 값을 저장하는 것을 특징으로 하는 최소화 프로세서.
  18. 제 17항에 있어서,
    상기 다수의 랜덤 액세스 메모리(RAM)는 가중된 합성 음성 샘플을 나타내는 제 1 값 세트를 저장하는 제 1 랜덤 액세스 메모리, 포르만트 필터의 임펄스 응답을 나타내는 제 2 값 세트를 저장하는 제 2 랜덤 액세스 메모리 및 포르만트 나머지값의 시퀀스를 나타내는 제 3 값 세트를 저장하는 제 3 랜덤 액세스 메모리를 포함하는 것을 특징으로 하는 최소화 프로세서.
  19. 제 18 항에 있어서,
    상기 디지털 음성의 샘플을 분할하지 않고 정규화하기 위하여 시프트 레지스터를 포함하는 블록 정규화 회로를 더 포함하는 것을 특징으로 하는 최소화 프로세서.
  20. 제 16항에 있어서,
    상기 최소화 프로세서는 이동 전화와 상호작용하는 것을 특징으로 하는 최소화 프로세서
  21. 제 20항에 있어서,
    상기 최소화 프로세서는 이동전화 시스템과 상호작용하는 것을 특징으로 하는 최소화 프로세서.
KR1019950704554A 1994-02-16 1995-02-13 이동전화에서고속음성압축을수행하기위한에이식 KR100334202B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US197417 1994-02-16
US08/197,417 US5784532A (en) 1994-02-16 1994-02-16 Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system
US197,417 1994-02-16
PCT/US1995/002043 WO1995022819A1 (en) 1994-02-16 1995-02-13 Vocoder asic

Publications (2)

Publication Number Publication Date
KR960702147A KR960702147A (ko) 1996-03-28
KR100334202B1 true KR100334202B1 (ko) 2002-10-11

Family

ID=22729345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950704554A KR100334202B1 (ko) 1994-02-16 1995-02-13 이동전화에서고속음성압축을수행하기위한에이식

Country Status (23)

Country Link
US (3) US5784532A (ko)
EP (2) EP0695454B1 (ko)
JP (2) JP3432826B2 (ko)
KR (1) KR100334202B1 (ko)
CN (2) CN100397484C (ko)
AT (2) ATE172570T1 (ko)
AU (1) AU697822B2 (ko)
BR (1) BR9505650A (ko)
CA (1) CA2158660C (ko)
DE (2) DE69505469T2 (ko)
DK (2) DK0695454T3 (ko)
ES (2) ES2125602T3 (ko)
FI (2) FI120117B (ko)
HK (1) HK1009303A1 (ko)
IL (1) IL112650A (ko)
MX (1) MX9504358A (ko)
MY (1) MY112434A (ko)
RU (1) RU2183034C2 (ko)
SG (2) SG87819A1 (ko)
SI (1) SI0758123T1 (ko)
TW (1) TW326601B (ko)
WO (1) WO1995022819A1 (ko)
ZA (1) ZA95798B (ko)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336106B1 (en) * 1994-02-15 2002-01-01 R.R. Donnelley & Sons Company System and method for partitioning a real-valued attribute exhibiting windowed data characteristics
FR2729246A1 (fr) * 1995-01-06 1996-07-12 Matra Communication Procede de codage de parole a analyse par synthese
FI955266A (fi) * 1995-11-02 1997-05-03 Nokia Telecommunications Oy Menetelmä ja laitteisto viestien välittämiseksi tietoliikennejärjestelmässä
EP0858069B1 (en) * 1996-08-02 2006-11-29 Matsushita Electric Industrial Co., Ltd. Voice encoder, voice decoder and recording medium thereof
KR100189636B1 (ko) * 1996-10-30 1999-06-01 서평원 씨디엠에이 이동 통신 단말기의 양방향 녹음방법
US6009395A (en) * 1997-01-02 1999-12-28 Texas Instruments Incorporated Synthesizer and method using scaled excitation signal
GB2323188B (en) * 1997-03-14 2002-02-06 Nokia Mobile Phones Ltd Enabling and disabling clocking signals to elements
US6167133A (en) * 1997-04-02 2000-12-26 At&T Corporation Echo detection, tracking, cancellation and noise fill in real time in a communication system
JP3263347B2 (ja) * 1997-09-20 2002-03-04 松下電送システム株式会社 音声符号化装置及び音声符号化におけるピッチ予測方法
US6104994A (en) * 1998-01-13 2000-08-15 Conexant Systems, Inc. Method for speech coding under background noise conditions
KR100572945B1 (ko) * 1998-02-04 2006-04-24 텍사스 인스트루먼츠 인코포레이티드 효율적으로 접속 가능한 하드웨어 보조 처리기를 구비하는디지탈 신호 처리기
US6141638A (en) * 1998-05-28 2000-10-31 Motorola, Inc. Method and apparatus for coding an information signal
US6112170A (en) * 1998-06-26 2000-08-29 Lsi Logic Corporation Method for decompressing linear PCM and AC3 encoded audio gain value
US7117146B2 (en) * 1998-08-24 2006-10-03 Mindspeed Technologies, Inc. System for improved use of pitch enhancement with subcodebooks
GB2342829B (en) * 1998-10-13 2003-03-26 Nokia Mobile Phones Ltd Postfilter
US6351800B1 (en) * 1998-11-29 2002-02-26 Lucent Technologies, Inc. System and method for assisting a microprocessor
US6411926B1 (en) * 1999-02-08 2002-06-25 Qualcomm Incorporated Distributed voice recognition system
US6314393B1 (en) * 1999-03-16 2001-11-06 Hughes Electronics Corporation Parallel/pipeline VLSI architecture for a low-delay CELP coder/decoder
US6260017B1 (en) 1999-05-07 2001-07-10 Qualcomm Inc. Multipulse interpolative coding of transition speech frames
JP3594514B2 (ja) * 1999-07-12 2004-12-02 株式会社ソニー・コンピュータエンタテインメント エンコーダ、デコーダ、音声データ処理装置、音声データ処理システム、音声データ圧縮方法、音声データ伸張方法、音声データ処理方法及び記録媒体
US6330532B1 (en) 1999-07-19 2001-12-11 Qualcomm Incorporated Method and apparatus for maintaining a target bit rate in a speech coder
US6324503B1 (en) 1999-07-19 2001-11-27 Qualcomm Incorporated Method and apparatus for providing feedback from decoder to encoder to improve performance in a predictive speech coder under frame erasure conditions
US6397175B1 (en) 1999-07-19 2002-05-28 Qualcomm Incorporated Method and apparatus for subsampling phase spectrum information
US6393394B1 (en) 1999-07-19 2002-05-21 Qualcomm Incorporated Method and apparatus for interleaving line spectral information quantization methods in a speech coder
US6452517B1 (en) * 1999-08-03 2002-09-17 Dsp Group Ltd. DSP for two clock cycle codebook search
US6426982B1 (en) * 1999-09-17 2002-07-30 Cadonca Design Systems, Inc. Low complexity multiple bits matched filter
US6438518B1 (en) 1999-10-28 2002-08-20 Qualcomm Incorporated Method and apparatus for using coding scheme selection patterns in a predictive speech coder to reduce sensitivity to frame error conditions
WO2001077635A1 (en) * 2000-04-06 2001-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Estimating the pitch of a speech signal using a binary signal
AU2001258298A1 (en) * 2000-04-06 2001-10-23 Telefonaktiebolaget Lm Ericsson (Publ) Pitch estimation in speech signal
WO2001078061A1 (en) * 2000-04-06 2001-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Pitch estimation in a speech signal
US6584438B1 (en) 2000-04-24 2003-06-24 Qualcomm Incorporated Frame erasure compensation method in a variable rate speech coder
EP1279167B1 (en) * 2000-04-24 2007-05-30 QUALCOMM Incorporated Method and apparatus for predictively quantizing voiced speech
US6532066B1 (en) 2000-08-05 2003-03-11 Ford Global Technologies, Inc. Vision system for identification of defects in wet polymeric coatings
US6477502B1 (en) 2000-08-22 2002-11-05 Qualcomm Incorporated Method and apparatus for using non-symmetric speech coders to produce non-symmetric links in a wireless communication system
US7133823B2 (en) * 2000-09-15 2006-11-07 Mindspeed Technologies, Inc. System for an adaptive excitation pattern for speech coding
US6804203B1 (en) * 2000-09-15 2004-10-12 Mindspeed Technologies, Inc. Double talk detector for echo cancellation in a speech communication system
US7003450B2 (en) * 2000-10-20 2006-02-21 Pts Corporation Methods and apparatus for efficient vocoder implementations
US7472059B2 (en) * 2000-12-08 2008-12-30 Qualcomm Incorporated Method and apparatus for robust speech classification
US6631139B2 (en) 2001-01-31 2003-10-07 Qualcomm Incorporated Method and apparatus for interoperability between voice transmission systems during speech inactivity
US7013269B1 (en) * 2001-02-13 2006-03-14 Hughes Electronics Corporation Voicing measure for a speech CODEC system
US6754624B2 (en) 2001-02-13 2004-06-22 Qualcomm, Inc. Codebook re-ordering to reduce undesired packet generation
US6996523B1 (en) * 2001-02-13 2006-02-07 Hughes Electronics Corporation Prototype waveform magnitude quantization for a frequency domain interpolative speech codec system
US20030088407A1 (en) * 2001-04-02 2003-05-08 Yi Hu Codec
JP3859462B2 (ja) 2001-05-18 2006-12-20 株式会社東芝 予測パラメータ分析装置および予測パラメータ分析方法
US20030005261A1 (en) * 2001-06-29 2003-01-02 Gad Sheaffer Method and apparatus for attaching accelerator hardware containing internal state to a processing core
US20030195006A1 (en) * 2001-10-16 2003-10-16 Choong Philip T. Smart vocoder
US7020226B1 (en) * 2002-04-04 2006-03-28 Nortel Networks Limited I/Q distortion compensation for the reception of OFDM signals
CN1312463C (zh) * 2002-04-22 2007-04-25 诺基亚有限公司 一种产生lsf矢量的方法和装置
US7698132B2 (en) * 2002-12-17 2010-04-13 Qualcomm Incorporated Sub-sampled excitation waveform codebooks
JP2004362215A (ja) * 2003-06-04 2004-12-24 Toshiba Corp プロセッサ及び半導体集積回路
US7555540B2 (en) * 2003-06-25 2009-06-30 Microsoft Corporation Media foundation media processor
TWI241557B (en) * 2003-07-21 2005-10-11 Ali Corp Method for estimating a pitch estimation of the speech signals
US6983241B2 (en) * 2003-10-30 2006-01-03 Motorola, Inc. Method and apparatus for performing harmonic noise weighting in digital speech coders
BRPI0514801B1 (pt) 2004-08-30 2019-06-18 Qualcomm Incorporated Buffer de-jitter adaptativo para voz sobre ip
US8085678B2 (en) 2004-10-13 2011-12-27 Qualcomm Incorporated Media (voice) playback (de-jitter) buffer adjustments based on air interface
US8209366B2 (en) * 2005-02-28 2012-06-26 Hitachi Global Storage Technologies Netherlands B.V. Method, apparatus and program storage device that provides a shift process with saturation for digital signal processor operations
WO2007120316A2 (en) * 2005-12-05 2007-10-25 Qualcomm Incorporated Systems, methods, and apparatus for detection of tonal components
US8090573B2 (en) * 2006-01-20 2012-01-03 Qualcomm Incorporated Selection of encoding modes and/or encoding rates for speech compression with open loop re-decision
US8346544B2 (en) * 2006-01-20 2013-01-01 Qualcomm Incorporated Selection of encoding modes and/or encoding rates for speech compression with closed loop re-decision
US8032369B2 (en) * 2006-01-20 2011-10-04 Qualcomm Incorporated Arbitrary average data rates for variable rate coders
US8920343B2 (en) 2006-03-23 2014-12-30 Michael Edward Sabatino Apparatus for acquiring and processing of physiological auditory signals
US7831420B2 (en) * 2006-04-04 2010-11-09 Qualcomm Incorporated Voice modifier for speech processing systems
US7685493B2 (en) * 2006-09-29 2010-03-23 Agere Systems Inc. Buffer compression in automatic retransmission request (ARQ) systems
US20090180456A1 (en) * 2008-01-15 2009-07-16 Khoi Ly Method and system for adaptive quantization steps for hs-scch decoding using average cqi
US20100082722A1 (en) * 2008-09-26 2010-04-01 Sinnokrot Mohanned O Methods and Apparatuses for Detection and Estimation with Fast Fourier Transform (FFT) in Orthogonal Frequency Division Multiplexing (OFDM) Communication Systems
JP5430990B2 (ja) * 2009-03-25 2014-03-05 株式会社東芝 信号処理方法、装置及びプログラム
JP5316896B2 (ja) * 2010-03-17 2013-10-16 ソニー株式会社 符号化装置および符号化方法、復号装置および復号方法、並びにプログラム
TR201904735T4 (tr) 2010-04-13 2019-04-22 Fraunhofer Ges Forschung Bi̇r ses si̇nyali̇ni̇n boşluksuz yeni̇den oynatilmasina yöneli̇k yöntem ve kodlayici ve dekoder
TWI479160B (zh) * 2010-12-20 2015-04-01 Hon Hai Prec Ind Co Ltd 測試裝置及方法
WO2012110447A1 (en) 2011-02-14 2012-08-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for error concealment in low-delay unified speech and audio coding (usac)
WO2012110415A1 (en) 2011-02-14 2012-08-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for processing a decoded audio signal in a spectral domain
AR085224A1 (es) 2011-02-14 2013-09-18 Fraunhofer Ges Forschung Codec de audio utilizando sintesis de ruido durante fases inactivas
MX2013009306A (es) 2011-02-14 2013-09-26 Fraunhofer Ges Forschung Aparato y metodo para codificar y decodificar una señal de audio utilizando una porcion alineada anticipada.
MX2013009304A (es) 2011-02-14 2013-10-03 Fraunhofer Ges Forschung Aparato y metodo para codificar una porcion de una señal de audio utilizando deteccion de un transiente y resultado de calidad.
CN103477387B (zh) 2011-02-14 2015-11-25 弗兰霍菲尔运输应用研究公司 使用频谱域噪声整形的基于线性预测的编码方案
CA2799343C (en) 2011-02-14 2016-06-21 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal representation using lapped transform
MY159444A (en) 2011-02-14 2017-01-13 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V Encoding and decoding of pulse positions of tracks of an audio signal
CN103460284B (zh) 2011-02-14 2016-05-18 弗劳恩霍夫应用研究促进协会 音频信号音轨脉冲位置的编码与译码
US8990074B2 (en) * 2011-05-24 2015-03-24 Qualcomm Incorporated Noise-robust speech coding mode classification
JP2014035431A (ja) * 2012-08-08 2014-02-24 Renesas Mobile Corp ボコーダ処理方法、半導体装置、及び電子装置
TWM487509U (zh) * 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
CN109920440B (zh) 2013-09-12 2024-01-09 杜比实验室特许公司 用于各种回放环境的动态范围控制
EP2980796A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and apparatus for processing an audio signal, audio decoder, and audio encoder
CN109413685B (zh) * 2017-08-18 2022-02-15 中国电信股份有限公司 语音质量确定方法、装置和计算机可读存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US448493A (en) 1891-03-17 Hemp-brake
SU518781A1 (ru) * 1974-11-25 1976-06-25 Таганрогский радиотехнический институт им.В.Д.Калмыкова Вычислительное устройство цифровой интегрирующей структуры
CN1003484B (zh) * 1985-05-20 1989-03-01 菲利浦光灯制造公司 产生定幅的角度调制载波信号的装置
US4789956A (en) * 1985-10-16 1988-12-06 Harris Corp. Maximum negative number detector
US4811210A (en) * 1985-11-27 1989-03-07 Texas Instruments Incorporated A plurality of optical crossbar switches and exchange switches for parallel processor computer
US4808937A (en) * 1986-07-15 1989-02-28 Hayes Microcomputer Products, Inc. Phase-locked loop for a modem
ES2037101T3 (es) * 1987-03-05 1993-06-16 International Business Machines Corporation Procedimiento de deteccion de tono y codificador de voz que utiliza dicho procedimiento.
FR2615025B1 (fr) * 1987-05-04 1989-12-22 Thomson Csf Dispositif de transcodage entre reseaux de transmission a debits differents et son utilisation dans un systeme de transmission multidebits
DE3732047A1 (de) * 1987-09-23 1989-04-06 Siemens Ag Verfahren zur umcodierung von kanalvocoder-parameter in lpc-vocoder-parameter
EP0383911B1 (en) * 1988-06-17 1995-02-15 Hitachi, Ltd. System for forming knowledge data
JPH0284807A (ja) * 1988-09-20 1990-03-26 Hitachi Ltd ディジタル信号処理装置
WO1990004316A1 (en) * 1988-10-03 1990-04-19 Alcatel N.V. Communication switching element
US5768613A (en) * 1990-07-06 1998-06-16 Advanced Micro Devices, Inc. Computing apparatus configured for partitioned processing
DE4031603A1 (de) * 1990-10-05 1992-04-09 Paul Merkle Ergebniszahl-verschiebeschaltung
US5173941A (en) * 1991-05-31 1992-12-22 Motorola, Inc. Reduced codebook search arrangement for CELP vocoders
CA2568984C (en) * 1991-06-11 2007-07-10 Qualcomm Incorporated Variable rate vocoder
KR100263599B1 (ko) 1991-09-02 2000-08-01 요트.게.아. 롤페즈 인코딩 시스템
TW224191B (ko) * 1992-01-28 1994-05-21 Qualcomm Inc
US5778024A (en) * 1996-02-01 1998-07-07 Qualcomm Incorporated Dual-mode communications processor
US5742781A (en) * 1996-08-09 1998-04-21 Hitachi America, Ltd. Decoded instruction buffer apparatus and method for reducing power consumption in a digital signal processor

Also Published As

Publication number Publication date
SG52441A1 (en) 1998-09-28
CN100397484C (zh) 2008-06-25
AU697822B2 (en) 1998-10-15
FI954920A0 (fi) 1995-10-16
DE69505469D1 (en) 1998-11-26
EP0695454B1 (en) 1998-10-21
HK1009303A1 (en) 1999-05-28
IL112650A0 (en) 1995-05-26
JP3432826B2 (ja) 2003-08-04
US5926786A (en) 1999-07-20
MX9504358A (es) 1997-05-31
RU2183034C2 (ru) 2002-05-27
DK0695454T3 (da) 1999-07-05
EP0758123A3 (en) 1997-03-12
JP4194851B2 (ja) 2008-12-10
CN1168072C (zh) 2004-09-22
TW326601B (en) 1998-02-11
US5784532A (en) 1998-07-21
ZA95798B (en) 1996-01-22
SG87819A1 (en) 2002-04-16
DE69509381T2 (de) 1999-11-25
CN1123061A (zh) 1996-05-22
EP0758123B1 (en) 1999-04-28
CA2158660C (en) 2006-01-24
EP0758123A2 (en) 1997-02-12
DK0758123T3 (da) 1999-11-08
DE69505469T2 (de) 1999-06-10
ES2125602T3 (es) 1999-03-01
WO1995022819A1 (en) 1995-08-24
ATE172570T1 (de) 1998-11-15
ATE179532T1 (de) 1999-05-15
KR960702147A (ko) 1996-03-28
FI954920A (fi) 1995-12-15
FI120117B (fi) 2009-06-30
CN1512486A (zh) 2004-07-14
JPH08509306A (ja) 1996-10-01
EP0695454A1 (en) 1996-02-07
FI20070887L (fi) 2007-11-21
SI0758123T1 (en) 1999-10-31
DE69509381D1 (de) 1999-06-02
US5727123A (en) 1998-03-10
MY112434A (en) 2001-06-30
AU1846595A (en) 1995-09-04
JP2003216198A (ja) 2003-07-30
BR9505650A (pt) 1996-03-05
IL112650A (en) 1998-12-06
CA2158660A1 (en) 1995-08-24
ES2130733T3 (es) 1999-07-01

Similar Documents

Publication Publication Date Title
KR100334202B1 (ko) 이동전화에서고속음성압축을수행하기위한에이식
EP0673018B1 (en) Linear prediction coefficient generation during frame erasure or packet loss
EP0673017B1 (en) Excitation signal synthesis during frame erasure or packet loss
EP0424121A2 (en) Speech coding system
EP0501421B1 (en) Speech coding system
US6314393B1 (en) Parallel/pipeline VLSI architecture for a low-delay CELP coder/decoder
EP0673015B1 (en) Computational complexity reduction during frame erasure or packet loss
EP0724252B1 (en) A CELP-type speech encoder having an improved long-term predictor
Chen et al. A fixed-point 16 kb/s LD-CELP algorithm
CA2026823C (en) Pitch period searching method and circuit for speech codec
CA2520127C (en) Block normalization processor
AU725711B2 (en) Block normalisation processor
JP3073013B2 (ja) サンプリングされた音声信号ベクトルのコーディングの方法
EP0694907A2 (en) Speech coder
Suddle et al. DSP implementation of low bit-rate CELP based speech orders
Byun et al. Implementation of 13 kbps QCELP vocoder ASIC
KR100283087B1 (ko) 음성 및 톤 부호화 방법
Lee Implementation of linear predictive speech coding in fixed-point arithmetic
JP3265645B2 (ja) 音声符号化装置
JPH0527800A (ja) ベクトル量子化方式
JPH10105198A (ja) 音声符号化装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
J202 Request for trial for correction [limitation]
J301 Trial decision

Free format text: TRIAL DECISION FOR CORRECTION REQUESTED 20020927

Effective date: 20040930

FPAY Annual fee payment

Payment date: 20120329

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 12

EXPY Expiration of term