JP4194851B2 - ボコーダasic - Google Patents
ボコーダasic Download PDFInfo
- Publication number
- JP4194851B2 JP4194851B2 JP2003006296A JP2003006296A JP4194851B2 JP 4194851 B2 JP4194851 B2 JP 4194851B2 JP 2003006296 A JP2003006296 A JP 2003006296A JP 2003006296 A JP2003006296 A JP 2003006296A JP 4194851 B2 JP4194851 B2 JP 4194851B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- codebook
- sequence
- pitch
- mse
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
- 238000010606 normalization Methods 0.000 claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 23
- 238000000034 method Methods 0.000 abstract description 67
- 230000002829 reductive effect Effects 0.000 abstract description 6
- 239000011295 pitch Substances 0.000 description 208
- 239000013598 vector Substances 0.000 description 63
- 239000000872 buffer Substances 0.000 description 41
- 238000012545 processing Methods 0.000 description 39
- 230000015572 biosynthetic process Effects 0.000 description 36
- 238000003786 synthesis reaction Methods 0.000 description 36
- 238000004422 calculation algorithm Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 11
- 230000036961 partial effect Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000013139 quantization Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- GAKUNXBDVGLOFS-DUZKARGPSA-N (1-acetyloxy-3-hexadecanoyloxypropan-2-yl) (9z,12z)-octadeca-9,12-dienoate Chemical compound CCCCCCCCCCCCCCCC(=O)OCC(COC(C)=O)OC(=O)CCCCCCC\C=C/C\C=C/CCCCC GAKUNXBDVGLOFS-DUZKARGPSA-N 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 101000859935 Homo sapiens Protein CREG1 Proteins 0.000 description 4
- 102100027796 Protein CREG1 Human genes 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000005284 excitation Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 1
- 229910001369 Brass Inorganic materials 0.000 description 1
- 240000007320 Pinus strobus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000010951 brass Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000001308 synthesis method Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 239000011318 synthetic pitch Substances 0.000 description 1
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
- G10L19/07—Line spectrum pair [LSP] vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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/16—Vocoder architecture
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/0001—Codebooks
- G10L2019/0011—Long term prediction filters, i.e. pitch estimation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/0001—Codebooks
- G10L2019/0013—Codebook 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)
Description
【発明の属する技術分野】
本発明は音声処理に関する。特に本発明は特定用途集積回路(ASIC : application specific integrated circuit)内に組み込まれるボコーダ(vocoder)用の改良された新しい方法及び装置に関する。
【0002】
【従来の技術】
デジタル技術による音声の送信は一般的な技術で、特に長距離のデジタル無線電話は一般に普及している。音声が単にサンプリング及びデジタル化により送信される場合、従来のアナログ電話の品質を得るには約64キロビット毎秒(kbps)のデータ速度が必要となる。しかし、音声分析、並びに適当なコード化、送信及び受信器での合成により、著しくデータ速度を減少することができる。送信機で適当な音声分析及びコード化を行い、受信器で合成を行う装置はボコーダとして知られている。
【0003】
デジタル細胞状電話標準(digital cellular telephone standards)及びシステムの最近の発展によりボコーダに関する要求が益々大きなものとなった。利用できる送信帯域をより効率的に使用し、受信器で元の音声をより忠実に再現する進歩したボコーディングアルゴリズムに対する要望により、それら更に複雑なボコーディングアルゴリズムを実行するのに必要な大きなコンピュータ処理能力を有するプロセッサに関する要求が増大した。
【0004】
ボコーダは音声における長い或いは短い期間の冗長性の利用し、コンピュータの高度な数値処理を必要とする。これら動作には長い連続的コンボリューション(convolutions)、マトリクス反転、長い連続的相関(correlations)等が含まれる。音声の送信における許容できないないほどのコーディング(coding)及びデコーディング(decoding)遅延を起こさずにリアルタイムでこれらの動作を行うには、強力なコンピュータ資源が必要になる。
【0005】
デジタル信号プロセッサ(DSPs)の出現は、ボコーダアルゴリズムをリアルタイムで導入することを可能にする上で重要な要因であった。
【0006】
DSPsはボコーダアルゴリズムに一般的な演算動作を実行する上で非常に効率的である。DSPsの利点はそれら計算能力を約4千万インストラクション毎秒(40MIPS)以上に増大した。
【0007】
例示的用途に用いられるボコーディングアルゴリズムは、可変速度のコード励起線形予測(CELP : code excited linear prediction)アルゴリズムであり、これは同時継続中の出願(シリアル番号08/004,484、1993年1月14日出願、発明の名称”可変速度ボコーダ”)に詳細されており、この出願は本発明の譲渡人に譲渡されている。前記出願の内容は本明細書に参考として含まれている。
【0008】
表Iは代表的DSPを用いたときの例示的ボコーディングアルゴリズムのエンコーディング部の単一の20ミリ秒音声フレームの実行時間の概要を示す。例示的ボコーディングアルゴリズムのエンコーディング部はデコーディング部より著しく処理量を必要とするので、エンコーデイング処理のみを表Iは示している。表Iで参照されるDSPは40MHzのクロックで演算処理及び他の処理をその動作に応じて各々1又はそれ以上のクロックサイクルで行う。第1コラムは例示的ボコーディングアルゴリズムの主動作を示す。第2コラムはその例示的DSPを使用してボコーダアルゴリズムの特定動作を各々実行するのに必要なクロックサイクル数を示す。第3のコラムはその特定動作に必要となる総合処理のパーセンテージを示す。例示的ボコーディングアルゴリズムでは、例示的ボコーディングアルゴリズムをリアルタイムに処理するには、全ての動作が20ミリ秒以内に行われることが必要である。これはそのアルゴリズムを導入するために選ばれたDSPが20ミリ秒フレーム内で所望処理を完了する速度又はそれ以上のクロック速度で動作できることが必要となる。これにより表Iに示す代表的DSPでは、クロックの数は800,000までに制限される。
【表1】
【0009】
【発明が解決しようとする課題】
表Iから分かるように、ピッチサーチ(pitch search)及びコードブックサーチ(codebook search)動作は、ボコーダアルゴリズムのエンコーディング部の中で、処理時間の75%以上を消費する。計算負荷の大部分はこれら2つのサーチアルゴリズム内にあるので、ボコーディングを実行するよう設計された効率的ASICの主要目的は、これら2つの動作を実行するのに必要なクロックサイクルの数を減少することである。
【0010】
本発明の方法及び装置は、これらサーチ動作を実行するのに必要な命令サイクルの数を大幅に減少する。本発明は、ボコーディングアルゴリズムに特に重要なより効率的動作を行うよう最適化された方法及び装置を提供する。本発明の方法及び装置の用途は、例示的ボコーディング動作の実行、又は音声のエンコーディング又はデコーディングに限られるものではない。この発明の方法及び装置は、エコーキャンセラ及びチャンネルイコライザのようなデジタル信号処理アルゴリズムを用いるあらゆるシステムに適用できるものである。
【0011】
【課題を解決するための手段】
本発明はボコーディングアルゴリズムを実行するための改良された新しい方法及び装置である。
【0012】
本明細書で詳細に説明される本発明の一実施例は、前述の同時継続中特許出願に詳細された可変速度CELPアルゴリズムを導入したASICである。本発明の特徴はあらゆる線形予測コーディング(LPC)アルゴリズムに同様に適用できる。本発明はボコーダアルゴリズムを少ない消費電力及び少ないクロックサイクル数で実行するために最適化された構成を提供する。最終的目標は消費電力の減少である。このアルゴリズムを実行するのに必要なクロック数の減少は又、低消費電力化に関して直接及び間接的に作用する減少したクロック速度として関係していた。直接的な効果は、コンプリメンタリ金属・酸化物半導体(CMOS)装置の電力消費とクロック速度との関係によるものである。間接的な効果はCMOS装置での電力消費と電圧との二乗則の関係、及び少ないクロック速度で電圧を下げる能力によるものである。ボコーダASICの効率はクロックサイクル毎に実行される処理量である。効率の向上により、そのアルゴリズムを実行するのに必要な全クロックサイクル数が減少される。
【0013】
ボコーディングアルゴリズムを実行する上で効率を上昇するための第1の技術は、専用DSPを中心とした構成である。DSPを中心とした一実施例は、3つのランダムアクセスメモリ(RAM)要素を提供することにより、メモリ処理能力を増加する。3つのRAM要素の各々は、専用メモリアドレス発生ユニットを持っている。このメモリの3分割方式により、オペランドを提供し、結果を提供し、結果を格納する全ての動作を単一のサイクル内で行い、再帰的コンボリューション(recursive convolution)のような動作を効率的に実行できる。オペランドのフェッチ、結果の計算、及び結果の格納は1つの結果に対する完全な再帰的コンボリューションが3サイクルに渡って実行され、しかも新たな結果が各サイクルで得られるように、パイプライン処理が行われる。3分割されたメモリは、ボコーダアルゴリズムでの他の動作に要求されるクロックサイクルも減少する。再帰的コンボリューションの効率的実行はボコーダアルゴリズムにおける最も重要な節約を提供する。
【0014】
ボコーデイングアルゴリズムの性能における効率を増加する第2の技術は、DSPコア(core)に最小化プロセッサと呼ばれる分離スレーブプロセッサを提供することである。最小化プロセッサは相関を実行し、二乗平均エラー(MSEs)を計算し、そしてDSPコアにより供給されたデータに関して最小MSEをサーチする。最小化プロセッサは高度な相関計算及びDSPコアによる最小化タスクを分担する。最小化プロセッサには、最小化プロセッサの動作をモニタし、ある条件下でMSE最小化タスクの決定的動作を行える制御要素が提供される。この条件とは、継続サーチが数学的制限により現在の最小MSE以下のMSEを提供できないような場合である。MSE最小化タスクを短縮する方法は最小化プロセッサの節電モードと呼ばれる。
【0015】
ボコーディングアルゴリズムの実行効率を向上するための一実施例による第3の手段は、プロック正規化(block normalization)を効率的に行う専用ハードウエアを提供することである。ボコーディングアルゴリズムを計算する上で、計算精度をできるだけ高いレベルに維持することが必要になる。専用ハードウエアを提供することにより、ブロック正規化はボコーダアルゴリズムでの他の動作と同時に実行でき、これによりボコーディングアルゴリズムを実行するために要求される命令サイクルの数を減少できる。
【0016】
本発明の特徴、目的、効果は図面を参照して行われる以下の詳細な説明により明確になる。全ての図面を通して、同一参照符号は同一の要素を示す。
【0017】
【発明の実施の形態】
図面を参照し、図5a〜dに示される図1のDSPコア4は、3つに分割されたランダムアクセスメモリ(RAM)(RAM A104、RAM B122、及びRAM C182)、リードオンリーメモリ(ROM)(ROM E114)、及び効率的演算ロジックユニット(ALU)(ALU 143)を含んで設計される。3分割RAMはALUを更に効率よく使用する手段を提供し、単一のRAMで達成できる領域以上にRAM領域を増加する。専用ROM、ROM E114は16ビット定数を提供する。RAM部分RAMA、RAM B122及びRAM C182及びROM、ROM E114はALUにデータを提供する。RAM C182は、RAM A104及びRAM B122が16ビットデータを送受信している間に、ALU143(図5b)に対して32ビットデータを受信及び提供し、16ビットオペランドによる計算、及び32ビットの格納を行うことにより、効率が著しく向上している。
【0018】
各分割部分は専用アドレス発生ユニットを持っている。RAM A104はアドレスユニットA102を有し、RAMBはアドレスユニットB120及びRAM CはアドレスユニットC186、ROM E114はアドレスユニットE112を持っている。各アドレスユニットはレジスタ、マルチプレクサ及び加算器/減算器要素(図示されず)を具備している。1クロックサイクルで、DSPコア4は3つのメモリ動作、3つのアドレス更新、演算動作(例えば乗算・加算・正規化)、及び最小化プロセッサ(minimization processor)6へのデータ移動を行う。
【0019】
命令ROM、ROM I194はDSPコア4の実行シーケンスを制御する命令を格納する。ROM I194内に格納された命令のシーケンスは、DSPコア4により実行される処理機能を示す。ROM I194は専用アドレス発生ユニット、IPカウンタ及びスタック194を持っている。
【0020】
RAMアドレス発生ユニット即ちレジスタファイル、アドレスユニットA102、アドレスユニットB120及びアドレスユニットC186は、対応するRAMの動作で用いられるアドレス及びデータを提供する。データは同一アドレスユニット内で、レジスタファイル要素から他のレジスタファイル要素、即ち各RAMに移動できる。一実施例では、アドレスユニットA102はマルチプレクサ106を介して、RAM A104にデータを提供し、アドレスユニットB120はマルチプレクサ124を介してRAM B122にデータを提供し、アドレスユニットC186はマルチプレクサ180を介してRAMC 182にデータを提供する。
【0021】
レジスタファイル要素は同一アドレスユニット内で、即時データIMM(図5a〜dに示す)、他のレジスタファイル要素からのデータ、即ちRAMからのデータを受け入れる。以後、全ての場合で、単語”即時データ(immediate data)”の説明は、命令デコーダ192によって提供されるデータに関係している。一実施例では、RAM A104はマルチプレクサ100を介してデータをアドレスユニットA102に提供し、RAM B122はマルチプレクサ118を介してデータをアドレスユニットB120に提供し、及びRAM C182はマルチプレクサ184を介してデータをアドレスユニットC186に提供する。各アドレスユニットは自動ポストインクリメント(post-increment)及びポストデクリメント(post-decrement)を内部に設けた加算器/減算器(図示されず)により提供する。一実施例において、アドレスユニットB120は直接メモリアクセス(DMA)用のポインタとして使用される自動モジュロアドレッシング及び2つの専用レジスタファイル要素(図示されず)を提供する。
【0022】
アドレスユニットE112は係数検索用に最適化される。これはマルチプレクサ110を介して即時データを受け入れるベースレジスタ、及びマルチプレクサ110を介して即時データ又はマルチプレクサ168及び110を介してアキュムレータ(C0ERG164又はC1REG166)からデータを受け入れるオフセットレジスタを具備する。このオフセットレジスタは自動ポストインクリメント及びポストデクリメントを内部に設けられた加算器/減算器(図示されず)により提供する。
【0023】
IPカウンタ及びスタック196はアドレッシングROM I194の機能を実行するためのアドレスポインタを含む。アドレスシーケンシング(address sequencing)は命令デコーダ192により制御される。アドレスデータはIPカウンタ及びスタック195内を移動するか、又は即時データとして受信される。
【0024】
データはRAM A104、RAM B122又はRAM C182からALU143内のレジスタへ移動できる。又、データはアキュムレータ(C0ERG164又はC1REG166)からRAM A104、RAM B122又はRAMC182へ移動できる。データはOREG162からRAM C182へ移動できる。
【0025】
RAM A104はマルチプレクサ106を介してアドレスユニットA102からのデータを受け入れる。RAM A104は又、マルチプレクサ168及び106を介してアキュムレータ(C0ERG164又はC1REG166)からのデータを入力する。RAM B122はマルチプレクサ124を介してアドレスユニットB120からのデータを入力する。RAM A104も又、マルチプレクサ168及び124を介してアキュムレータ(C0ERG164又はC1REG166)からのデータを入力する。又RAM B122はDMA_INPUT(図5a〜d参照)からのデータ、又はマルチプレクサ124を介してINREG128からのデータを入力する。RAM C182はマルチプレクサ180を介してアドレスユニットC186からのデータを入力する。RAM C182は又、マルチプレクサ168及び180を介してアキュムレータ(C0ERG164又はC1REG166)からのデータを入力する。RAMA104はアドレスユニットA102へデータをマルチプレクサ100を介して提供し、マルチプレクサ108を介してAREG130にデータを提供する。RAM B122はデータを、マルチプレクサ118を介してアドレスユニットB120へ、RAMB_DOUT(図5a〜d参照)へ、マルチプレクサ126を介してSREG136へ、マルチプレクサ116を介してBREG134へ、及びマルチプレクサ158を介してDREG156へ提供する。
【0026】
AREG130は即時データ、ROM E114からのデータ、又はRAM A104からマルチプレクサ108を介してデータを入力する。BREG 134は又、マルチプレクサ168及び116を介してアキュムレータ(C0ERG164又はC1REG166)からデータを入力する。
【0027】
C0ERG164及びC1REG166はマルチプレクサ148を介したデータ、RAM C182からのデータ、加算器146からのデータ、論理AND要素144、又は論理OR要素142からデータを入力する。
【0028】
シフトインデックスレジスタSREG136は即時データ又はマルチプレクサ126を介してRAMB122からデータを入力する。
【0029】
ALU143は乗算、加算、減算、乗算累計、乗算加算、乗算減算、まるめ(round)、インクリメント、クリア、否定(negate)、及び論理AND、OR、及び反転動作を行う。乗算器132、AREG130及びBREG134への入力はゲートされ(図示されず)、乗算が行われるときにのみ入力が変化するように構成することにより、乗算器132での消費電力を減少する。ALU143は効率向上のために2つの36ビットアキュムレータ(C0ERG164及びC1REG166)、及び正規化(normalization)のために2つのバレルシフター(barrel shifters)、バレルシフター140及び150を提供する。左右16ビット位置へのシフトアップは、バレルシフター140及び150により提供される。シフトインデックスは即時データを介して詳細に行われるか、又は専用シフトインデックスレジスタSREG136によりマルチプレクサ149を介して行われる。シフトインデックスレジスタSREG136はバレルシフター140及び150、ビットワイズ(bitwise)論理OR要素160及びOREG162と共に、ブロック正規化を実行するときのオーバーヘッドを最小にするために提供される。ALU143は命令デコーダ192にステータスを提供することで、演算及びC0ERG164及び/又はC1REG166の論理状態に基づく条件ジャンプが可能となる。例えば、一実施例において、C0ERG164及びC1REG166の値の符号が比較され、符号変化に基づく条件ジャンプを提供する。ジャンプは即時データがIPカウンタ及びスタック196に提供されたときに発生する。アキュムレータのオーバーフロー及びアンダーフローが検出され、オーバーフローの場合は16進法の0x7FFFFFFFを、アンダーフローの場合は0x80000001を、2の補数演算に従って提供することにより、自動的に飽和が行われる。
【0030】
命令実行シーケンスは、フェッチ(fetch)、デコード(decode)、実行である。アドレス値はIPカウンタ及びスタック196により命令ROM I194に提供される。このROM1194はこれに応答して命令を命令デコーダ192に提供する。命令デコーダ192はこの入力命令に応答して、命令をデコードし、DSPコア4内の適当な要素に命令実行のための制御信号を提供する。
【0031】
専用ループカウンタ及びスタック190はIPカウンタ及びスタック196に従って、小さいオーバーヘッド、ネストされた(nested)サブルーチンコール及びネストされたループを提供する。命令フェッチは単一命令ループの間は禁止され、電力消費を削減している。ループカウンタ及びスタック190はマルチプレクサ188を介して即時データを入力し、固定長ループを実行する。ループカウンタ及びスタック190は又、アキュムレータ(C0ERG164、C1REG166)からマルチプレクサ168及び188を介してデータを入力し、可変長ループを実行する。ROM I194内の256ワードスタティック命令キャッシュ(図示されず)は、最も頻繁に行われるループ及びサブルーチンのための低電力命令フェッチを提供する。WAIT命令は命令フェッチ及び命令デコードを禁止し、イベントを保留し電力消費を削減する。このような例としては、DMA転送、 PCMインターフェース2からのタイミングストローブ、又は外部イベントが含まれる。
【0032】
外部データ及び制御は、PORT_INPUT(図5a〜d参照)、PCMインターフェース2からのDMA_INPUT、及び条件ジャンプ命令で使用されるスタティックテストビットを介して、DSPコア4に提供される。データはCREGを介して(図5a〜d及び図6a〜b参照)及びRAM B_DOUTを介して、DSPコア4により外部から提供される。DSPコア4及びPCMインターフェース2間のDMAは周知のサイクルスチーリング(cycle stealing)により実行される。C0REG164又はC1REG166からのデータはマルチプレクサ168を介して,命令デコーダ192からのOUTREG_EN(図5a〜d及び図6a〜b参照)信号と共に提供される。アクティブOUTREG_EN信号は最小化プロセッサ6に提供された有効CREGデータが存在することを意味する。
【0033】
図6a〜bの最小化プロセッサ6は、ピッチ及びコードブックサーチ(codebook searches)の複雑な計算を部分的に支援する。最小化処理を行うために、最小化プロセッサ6は知覚的に重み付けされた(perceptually weighted)入力スピーチサンプルのシーケンス、一組のゲイン値、及びDSPコア4からの合成されたスピーチサンプルの一組を受信する。最小化プロセッサ6は合成されたスピーチの自動相関(自己相関)(auto-correlation)及び合成されたスピーチと知覚的に重み付けされた入力スピーチ間の交差相関(相互相関)(cross-correlation)を計算する。これらの相関から、合成されたスピーチと入力スピーチ間の平均二乗エラー(MSE)の相対測定値が、合成されたスピーチゲイン及びインデックスの関数として判断される。最小化プロセッサ6はインデックス及び最小MSEに生じたゲインを報告する。電力を節約する特徴により、最小化を続けるのが不可能な場合、MSE計算を中止する。最小化プロセッサ6はCREG、ポートI/O、及び専用DSPコア命令を介してDSPコア4と通信する。
【0034】
最小化プロセッサ6の動作は制御要素220により決定する。制御要素220は現在のインデックス値の追跡を維持するカウンタ、最適ピッチ又はコードブックサーチ結果を保持するレジスタ、RAM X212をアクセスするためのアドレス発生回路、及び入出力回路を具備する。更に制御要素220はマルチプレクサ224、234、230及び246上の選択信号を制御する機能を有し、ラッチ210、21226、228、236、238、244及び250上のイネーブル(enables)を制御する。又、制御要素220は最小化プロセッサ6の要素内の様々な値をモニタし、所定のサーチ終了条件の下でサーチを省略する電力節約モードを制御し、及び循環バッファ(circular buffer)259内のゲイン値の循環を制御する。
【0035】
更に、制御要素220は入出力動作を行う機能を有する。制御要素220は入力ポーチ12を介して、最小値結果(即ち最適ピッチラグ及びピッチゲイン又は最適コードブックインデックス及び各サーチで判断されたコードブックゲイン)をDSPコア4に提供する機能を有する。OUTREG_EN信号が制御要素220に提供され、この信号はラッチ210への入力データが有効で、アキュムレータ出力信号CREG上に存在することを示す。制御要素220はそれに応答してイネーブル信号を発生し、そのイネーブル信号をラッチ210に提供し、そのデータを受信する。
【0036】
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値を示すときにデータを入力する。制御及びデータは以下のように最小化プロセッサ6に提供される。
【0037】
図1は本発明による構成の一実施例を示すブロック図である。PCMインターフェース2はコーデック(codec)(図示されず)に対して、パルスコード変調(PCM)スピーチサンプルデータを入出力する。このデータは本実施例では、μ法(μ-law)又はA法(A-low)でコンパンドされた(companded)サンプルデータ又は線形サンプルデータである。PCMインターフェース2はクロック発生器10からタイミング情報を受信し、データ及び制御情報をマイクロプロセッサインターフェース8から受信する。
【0038】
PCMインターフェース2はDSPコア4に、コーデック(図示されず)からエンコード用に受信したPCMスピーチサンプルデータを提供する。PCMインターフェース2はDSPコア4からPCMスピーチサンプルデータを受信し、このデータはコーデック(図示されず)に提供される。PCMデータはDSPコア4とPCMインターフェース2間でDMAを介して転送される。PCMインターフェース2はタイミング情報をクロック発生器10に、コーデック(図示されず)から受信したサンプルのタイミングに基づいて提供する。
【0039】
DSPコア4はデータ及び制御情報を副プロセッサ即ち最小化プロセッサ6に提供する。DSPコア4は又、出力ポート14にデータを提供し、入力ポート12からデータを受信する。DSPコア4はクロック発生器10からタイミング情報を受信する。DSPコア4は又、外部アドレス情報を提供し、外部の命令及びデータを受信できる。
【0040】
最小化プロセッサ6はクロック発生器10からタイミング情報を受信し、DSPコア4からデータ及び制御を受信する。最小化プロセッサ6は最小化処理の結果を入力ポート12を介してDSPコア4に提供する。
【0041】
クロック発生器10はタイミング情報を他の全ブロックに提供する。クロック発生器10は外部クロック信号を受信し、マイクロプロセッサインターフェース8及びPCMインターフェース2からタイミング信号を受信する。
【0042】
ジョイントアクショングループ(JTAG:Joint Test Action Group)インターフェース16はASICの機能をテストする能力がある。JTAGインターフェース16は外部データ及び制御情報を受信し、外部データを提供する。
【0043】
出力ポート14はDSPコア4からデータを受信し、このデータをマイクロプロセッサインターフェース8に提供し、又、データを外部装置(図示されず)に提供できる。
【0044】
入力ポート12はマイクロプロセッサインターフェース8及び最小化プロセッサ6からデータを受信し、このデータをDSPコア4に提供する。又、入力ポート12は外部装置(図示されず)からデータを受信し、このデータをマイクロプロセッサインターフェース8に提供できる。
【0045】
マイクロプロセッサインターフェース8はマイクロプロセッサ(図示されず)に対してデータ及び制御情報を入出力できる。この情報は他のブロックに提供される。
【0046】
本発明の一実施例では、ボコーダASICは可変速度CELPアルゴリズムを行う。このアルゴリズムは同時継続中の米国特許出願No.08/004,484(出願日:1993年1月14日、発明の名称:”可変速度ボコーダ(Variable Rate Vocoder)”譲渡人は本発明と同一)に詳述されている。
【0047】
図2はこのASIC内で実行される主要機能を示す。図2において、エンコードされるサンプルはボコーダASICにPCMインターフェース30を介してコーデック(図示されず)から提供される。そして、これらのサンプルはデコンパンディング(decompanding)要素32に提供される。この要素32はμ法又はA法のサンプルを線形サンプルに変換する。線形フォーマットで提供されたサンプルはデコンパンディング要素32を介して無変更で送られる。線形サンプルは送信音響処理要素34に提供される。この処理要素34は、音声差動スイッチ(VOX)36、音響イコライザ要素38、QCELPエンコーディング要素40、及びデュアルトーンマルチ周波数(DTMF : dual tone multi-frequency)検出要素41を具備する。そして、送信音響処理要素34はマイクロプロセッサインターフェース42を介してエンコードされたスピーチパケット(speech packets)をASIC外部のマイクロプロセッサ(図示されず)に提供する。
【0048】
エンコードされたスピーチパケットはマイクロプロセッサ(図示されず)によりマイクロプロセッサインターフェース42を介して受信音響処理要素44に提供され、ここでそれらはスピーチサンプルにデコードされる。受信音響処理要素44はQCELPデコーディング要素46、音響イコライザ48、及びDTMF発生要素47を具備する。デコードされたサンプルはコンパンディング要素50に提供され、このコンパンディング要素50は線形サンプルをμ法又はA法フォーマットに変換するか、又は線形サンプルを無変更でPCMインターフェース30に送る。ASICはPCMインターフェース30を介してデコードされたサンプルをASIC外部のコーデック(図示されず)に提供する。
【0049】
デコンパンディング要素32として図2に示されるデコンパンディング動作、及びコンパンディング要素50として図2に示されるコンパンディング動作は、図5a〜d内にDSPコア4により行われる。送信音響要素34として図2に示される送信音響処理動作は、図6a〜bに示されるDSPコア4及び最小化プロセッサ6により行われる。図2に受信音響処理要素44として示される受信音響処理動作は、図5a〜dに示されるDSPコア4により行われる。
【0050】
一実施例ではコーデック(図示されず)から8ビットのμ法又は8ビットA法フォーマットで提供されたサンプルは、14ビット線形フォーマットに変換される。μ法と線形の間の関係を式1に示す。
2Y=-IS(33+2M)2N-33 (1)
ここで、Yは線形値(−4015.5〜4015.5)、Nはべき指数(exponent)(0〜7)、Mは大きさの値(0〜15)、及びSは符号(ブラスのとき0、マイナスのとき1)である。A法と線形の間の関係を式2及び3に示す。
【0051】
2Y=-1S(1+2M)22Y N=0の場合 (2)
2Y=-1S(33+2M)2N N=1の場合 (3)
ここでYは(−4032〜4032)、N、M及びSは前述と同一。
【0052】
図5a〜dにおいて、図2のPCMインターフェース30を介して提供されたサンプルは、ROM E114内に格納されている参照テーブルにより線形フォーマットに変換される。好適実施例において、ハーフサイズ128×14μ法から線形、及びA法から線形への参照テーブルがこの変換を行うために用いられる。好適実施例では、次の式4に示される特徴を有するフルサイズ変換テーブルを利用する。
ROM(n+128)=-ROM(n) 0≦n≦127 (4)
入力スピーチ信号内のDC成分の除去が、自動相関係数及びLPC係数の計算の前に必要となる。DC除去動作はDSPコア4内で、ローパス濾波されたスピーチサンプル平均、即ちDCバイアスを現在のウインドウ内の各入力サンプルから減算することにより行われる。即ち、現在のフレームのDCバイアスは、現在及び以前のフレームのサンプル平均の重み付けされた平均である。DCバイアスの計算を次の式5に示す。
DCバイアス=a(以前のフレームの平均)+(1−a)(現在のフレームの平均) (5)
この好適実施例では、a=0.75。ローパス濾波はフレーム境界での大きな不連続を防止するために用いられる。この動作はDSP内で現在のフレーム及び以前のフレームに関するサンプル平均をROM E114により提供される補間因数(interolation factor)aと共に、RAM要素(即ちRAM A104、RAM B122又はRAM C182)の1つに格納することにより行われる。加算は加算器146により行われ、乗算は乗算器132により行われる。DC除去機能はマイクロプロセッサ制御の下にイネーブル(enabled)又はディセーブル(disabled)することができる。
【0053】
DC成分のない入力スピーチ信号s(n)はウインドウ化され、スピーチシーケンスを固定長フレームに分割する影響を減少する。ハミングウインドウ(Hamming window)関数が一実施例で用いられる。フレーム長 L=160について、ウインドウ化されたスピーチSw(n)は次の式6に示すように計算される。
sW(n)=s(n+60)WH(n)、 0≦n≦LA-1 (6)
ここでハミングウインドウは次の式7及び8により定義される。
【0054】
WH(n)=0.54-0.46cos[2πn/(LA-1)]、 0≦n≦LA-1 (7)
WH(n)=0 他の場合 (8)
好適実施例では、W(n)は対象偶関数(even-symmetric function)であるから、参照テーブルの80個の係数、半数のハミングウインドウ係数がROM E114に格納される。ウインドウ化はアドレスユニットE112により提供されるアドレス値に従って、ウインドウ係数WH(n)をマルチプレクサ108〜AREG130を介してROM E114から提供することにより行われる。AREG130はこのデータを乗算器132の第1入力に提供する。スピーチサンプルs(n+60)はRAM B122によりBREG134に提供される。BREG134はこの値を乗算器132の第2入力に提供する。乗算器132の出力はウインドウ化されたスピーチサンプルで、このサンプルはC0REG164、そしてRAM C182に乗算器168を介して提供される。
【0055】
ブロック正規化処理は2つの機能部分よりなる。即ち、正規化因数の決定と意図したデータの正規化である。一実施例では、データは2の補数で表され格納される。ウインドウ化されたサンプルが上記の式7に従って計算される。ROM I194からの正規化命令DETONRMの場合、C0REG164にその結果発生されたウインドウ化サンプル値は次の処理を受ける。即ち、C0REG164内の値がマイナスの場合、反転要素152はその数の二進数を反転し、ビット反転した値を加算器146の第1入力に送る。加算器146の第2入力にはマルチプレクサ137及び138を介して0が与えられる。加算器146はそのキャリー入力(図示されず)により、ビット反転した値に1を加える。C0REG164の値がプラスの場合、その値はマルチプレクサ168及び154を介して反転要素152及び加算器146にそのまま送られる。この処理の目的はC0REG164の絶対値を計算することである。この絶対値はビットワイズ論理OR要素160の第1入力に提供される。ビットワイズ論理OR要素160の第2入力はOREG162が提供する。上記絶対値の計算を次の式8a〜cに示す。
OREGnew=(ABS(C0REG))OR(OREGold) (8a)
ここで、
ABS(C0REG)=C0REG、 C0REG≧ (8b)
=C0REG、 C0REG<0 (8c)
式8a〜cに示される動作は、正規化を意図したデータがC1REG166内にある場合、DETNORM命令を用いてC1REG166上で同様に実行できる。OREG162は正規化動作の開始時にクリアされる。この処理は、動作の終わりで、OREG162に格納された値が、ウインドウ化された全てのサンプルの絶対値のビットワイズ論理ORを示すように、ウインドウ化された全てのサンプル(意図したデータ)について繰り返される。OREG162内の最上位ビットセットからスケール因数が決定される。なぜなら、OREG162内の値はウインドウかされたサンプルのブロック内で最も大きな値以上だからである。OREG162内の値はマルチプレクサ168を介してRAMC 182に転送される。この値はC0REG164内にロードされる(loaded)。正規化因数はC0REG164内の値の右又は左シフトの数を計数することにより判断されるウインドウ化されたデータのこの量だけのシフトにより、次の動作に用いられる所望ピーク量を有する値が提供される。このスケーリング因数(scaling factor)は正規化因数としても知られている。正規化はシフトにより行われるので、正規化因数は2の乗数である。
【0056】
ウインドウ化されたサンプルをできるだけ高い精度に保つため、最も大きな値が次の動作に与えられる最大ビット数を占めるように、意図した値には正規化因数が乗算される。正規化因数は2の乗数であるから、意図したデータの正規化は正規化因数により特定される数だけ単にシフトすることにより達成できる。正規化因数はマルチプレクサ126を介してRAM B122によりSREG136に提供される。そしてウインドウ化されたサンプルはRAM C182から、乗算器158を介してDREG156に提供される。そしてDREG156はこれらの値を、マルチプレクサ154及びディセーブルされたインバータ152を介して、バレルシフター150に提供する。
【0057】
そこで、それらの値はSREG136によりマルチプレクサ149を介してバレルシフター150に提供された正規化因数に従ってシフトされる。バレルシフター150の出力はディセーブルされた加算要素146及びマルチプレクサ148を介してC0REG164に送られる。そして正規化及びウインドウ化されたサンプルは、マルチプレクサ168を通り、マルチプレクサ124及び180を介して、RAM B122及びRAM C182に各々提供される。この結果、正規化されウインドウ化されたサンプルの2つのコピーがRAMに格納され、これにより次の自動相関係数の計算効率を更に上げることができる。
【0058】
P+1自動相関係数R(k)の計算は次の式9に従って行われる。
【数1】
【0059】
ここでPはエンコーダ内のフォルマント予測フィルタ(formant prediction filter)の次数(order)である。この実施例ではP=10である。正規化されウインドウ化されたサンプルsw(m)は、RAM B122により、マルチプレクサ116及びBREG134を介して、乗算器132の第1入力に提供される。正規化されウインドウ化されたサンプルの遅延形式sw(m+k)はRAM C182によって、マルチプレクサ148及びC1REG166、RAM A4及びAREG130を介して、乗算器132の第2入力に提供される。各R(k)はLA−k値の累計である。各R(k)の第1の反復について、乗算器132の出力は、マルチプレクサ138及びバレルシフター140を介してアキュムレータC0REG164、加算器146に提供される。
【0060】
マルチプレクサ154は0を加算器146の第2入力に、ディセーブルされたバレルシフター150を介して提供する。次の反復に対して、乗算器132の出力は、マルチプレクサ138及びバレルシフター140を介して、加算器146の第1入力に提供される。加算器146の第2入力には、マルチプレクサ168及び154、ディセーブルされた反転要素152及びディセーブルされたバレルシフター150を介して、C0REG164の出力が提供される。この処理は各R(k)について繰り返される。
【0061】
全ての自動相関係数はR(0)より小さい。この実施例では、R(0)が計算された後、その正規化因数が決定される。この正規化因数は既に計算されたR(0)及び他の自動相関係数に、それらが計算されたように適用される。この段階での自動相関係数の正規化は、次のLPC係数の計算での精度を最大限に上げる。
【0062】
次に図3のブロック62に進み、LPC係数が計算され、スピーチサンプル内の短い相関(冗長性)を除く。
【0063】
次数Pを有するフォルマント予測フィルタは伝送関数A(z)を有し、これを式10に示す。
【数2】
【0064】
各LPC係数aiは正規化されウインドウ化された入力スピーチの自動相関値から計算される。ダービンのリカージョン(Durbin's recursion)(Rabiner , L.R.and Schafer, R.W., "Digital Processing of Speech Signals," Prentice-Hall, 1978 参照)と呼ばれる効率的反復法が、この実施例でLPC係数を計算するのに用いられる。この反復法を式11−17に示す。
【数3】
【0065】
i<Pの場合、iをインクリメントし、12に移行する (16)
最終的LPC系数値は: a’ j=a(P) j, 1≦j≦P (17)
ダービンの反復アルゴリズムは、入力信号が0平均を有するときにのみ機能し、あらゆるDCバイアスは、自動相関計算が前述したように実行された後に除去される必要がある。
【0066】
この実施例において、18Hzの帯域幅拡大が用いられ、これにより、フォルマント予測フィルタの安定性が確保される。これは本質的フォルマント合成の極をスケーリングすることにより行われる。帯域拡大は以下に示す式18に従ってLPC係数を半径方向内側に(radially inwards)スケーリングすることにより行われる。
ai=βia’ j, 1≦i≦P (18)
この実施例ではβ=0.9883である。10個の拡大係数βi(1≦i≦Pについて)がROM E114に提供された参照テーブル内に格納される。ブロック62の機能はDSPコア4内で実行される。
【0067】
次に図3のブロック64に進み、スピーチデータの現在のフレームについてエンコーディング速度が決定される。この速度は各フレーム内の音声作用の測定に基づいている。この音声作用は前述したようにフレームエネルギR(0)に従って測定される。フレームiについてエンコーディング速度を決定するために、フレームエネルギは次の式19〜2に定義される3つの閾値と比較される。
T1(Bi)=-(5.544613・10-6)Bi 2+(4.047152)Bi+362 (19)
T2(Bi)=-(1.529733・10-6)Bi 2+(8.750045)Bi+1136 (20)
T3(Bi)=-(3.957050・10-6)Bi 2+(18.899622)Bi+3347 (21)
ここで各フレームiでの背景ノイズレベルBiは次の式22に示すように各フレームで更新される。
Bi=min[Ri-1(0),160000,max[100547Bi-1,Bi-1+1]] (22)
速度はフレームエネルギが3つのどの閾値よりも少ない場合は1/8、フレームエネルギがT1(Bi)及びT2(Bi)の間の場合は1/4、フレームエネルギがT2(Bi)とT3(Bi)の間の場合は1/2、フレームエネルギがT3(Bi)以上の場合は最大定格速度である。速度がマイクロプロセッサ(図示されず)により、マイクロプロセッサインターフェース8を介して設定される場合を除き、データ速度は特定速度まで任意の速度に設定できるが、各フレームについて1ステップ以下の割合(例えば1/2から1/4)でのみ低めることができる。DSPコア4において、これらの閾値に関係する係数はROM E114内の参照テーブルに提供される。
【0068】
関数的速度アルゴリズムも好適実施例では提供され、これにより、最大平均速度をマイクロプロセッサインターフエース6を介して、マイクロプロセッサ(図示されず)により制限できるようになる。速度制限因数Sが与えられると、ボコーダの最大平均速度は連続する最大速度のフレームの数を制限することにより、(2S+1)/[2(S+1)]に制限される。
【0069】
次に図3のブロック66に進み、帯域拡大されたLPC係数は、ラインスペクトルペア(LSP : line spectrum pair)周波数に変換される(Soong and Juang ,"Line Spectrum Pair(LSP)and Speech Data Compression,”ICASSP,1984参照)。LSP周波数は送信及び格納に関して著しく優れた特性を持ち、LPC係数より更に効率よくエンコードできることが示された。10個のLPC係数を示すLSP周波数は、以下の式23及び24に示す多公式の10個のルート(ten roots)である。
P’(ω)=cos5(2πω)+p’ 1cos4(2πω)+…..+p’ 4cos(2πω)+0.5p’s (23)
Q’(ω)=cos5(2πω)+q’ 1cos4(2πω)+…..+q’ 4cos(2πω)+0.5p’s (24)
ここでP’i及びQ’i(1≦i≦5)はDSPコア4内で次の式25〜27に従って計算される。
P’ 0=q’ 0=1 (25)
P’ i=-ai-a11-i-p’ i-1 1≦i≦5 (26)
q’ i=-ai+a11-i+q’ i-1 1≦i≦5 (27)
P’(ω)のルートは、各π/32ラジアン内に多くとも1つのルートがあることを推測することにより検出できる。P’(ω)はπ/32ラジアン毎に、0からπラジアンまで評価される。いずれかのπ/32ラジアンにルートが存在すると、その期間に亘って関数P’(ω)の符号が変化する。
【0070】
ルートが検出された場合、二進サーチが行われ、π/256サイズの領域でそのルートを分離する。この二進サーチは、現在の領域の中心でのP’(ω)の評価を含み、どの1/2領域がルートを含んでいるかを判断する。この中心領域は、そのルートを含んでいると検出された1/2領域のみを含ようになるまで狭められる。この処理はそのルートがπ/256サイズの領域内に分離されるまで続けられる。そして線形補間が行われ、π/256ラジアン領域でのルートの位置を概算する。
【0071】
LSPのオーダリング特性(ordering property)により、Q’(ω)の1つのルートはP’(ω)のルートの各ペアの間に存在することが保証されている。Q’(ω)の5番目のルートはP’(ω)の5番目のルートとπラジアンの間に存在する。前述の二進サーチは、P’(ω)のルートの各ペア間、及びP’(ω)の5番目のルートとπラジアン間で行われ、Q’(ω)のルートが判断される。
【0072】
二進サーチはルートの位置がπ/256サイズの領域内に分離されるまで続けられるので、0とπの間で均等に位置する256個のコーサイン値(cosine values)が必要になる。これらの関数評価はLPC係数からLSP周波数への変換において、最もコンピュータ処理が必要になる部分である。ブロック66の機能はDSPコア4内で行われる。
【0073】
次に図3のブロック68に進み、LSP周波数が量子化される。各LSP周波数の中心は、それに関係するバイアス値周辺にある。量子化の前に、このバイアスは、関係する各LSP周波数から減算され、量子化に必要なビット数を減少する。このバイアスは次の式28に示すように計算される。
【数4】
【0074】
LSP周波数からバイアスが減算された後、そのLSP周波数は差動パルスコード変調(DPCM)量子化装置を用いて量子化される。DPCM量子化装置が使用される理由は、LSP周波数は時間と共に徐々に変化し、LSP周波数の変化の量子化により、LSP周波数を直接量子化する場合より、量子化に必要なビット数を減少できるからである。DSPコア4では、LSP周波数のバイアス値はROM E114内の参照テーブルに格納される。使用される量子化ビット数及び量子化ステップサイズは、10個のLSP周波数の中で量子化される周波数の関数であり、又、エンコーディング速度の関数である。量子化のビット数、及びステップサイズは、各エンコーディング速度で各LSP周波数について、ROM E114内の参照テーブルとして格納される。前述の参照テーブルを表IIに示す。例えば、最大定格速度でのLSP周波数ω1は4ビットを用いて量子化され、ステップサイズは0.025である。
【表2】
【0075】
量子化と補間の後、テストが行われ、フォルマントフィルタが量子化の後で安定していることが確認される。各LSP周波数は、結果的フォルマントフィルタの安定性を確保するために、少なくとも80Hzは離れていなければならない。LSP周波数の中で80Hz以下で隣合う周波数がある場合、帯域拡大が再び行われる。ブロック68の機能はDSPコア4内で行われる。
【0076】
次に図3のブロック70に進み、LSP周波数は低帯域濾波され、以下の式29に示すように量子化の影響を減少する。
【数5】
【0077】
この実施例では、最大定格速度でSM=0、1/2定格でSM=0.125である。1/4定格及び1/8定格において、1/4又は1/8定格フレームの連続数が10より少ない場合、SM=0.25であり、その他の場合、SM=0.9である。
【0078】
LSP周波数は各ピッチサブフレームについて補間される。ピッチサブフレームについて補間されたLSP周波数は、1/8定格以外の対応するコードブックサブフレームのペアに使用される。LSP周波数は以下の式30に従って補間される。
【数6】
【0079】
ここで重みαωは各ピッチサブフレーム及び各定格でのコードブックサブフレームについてROM E114内の参照テーブルに格納されている。前述の参照テーブルを表IIIに示す。例えば、最大定格速度でのαωは、ピッチサブフレーム1及びコードブックサブフレーム1及び2について、0.75である。
【表3】
【0080】
補間されたLSP周波数は、ピッチ及びコードサーチに使用されるLPC係数に変換され戻される。LPC係数は以下の式31〜33に示すように、PA(z)及びQA(z)から計算される。
A(z)=[PA(z)+QA(z)]/2 (31)
ここで、
【数7】
【0081】
この実施例において、テイラー(Taylor)の直列展開がDSPコア4内で評価され、PA(z)及びQA(z)でのコーサイン値を計算する。テイラーの直列展開は前述のルートサーチに用いられたものより更に正確なコーサイン値を提供する。PA(z)及びQA(z)の値はDSPコア4内で、上記の式32〜33に示される二次方程式のコンボリューション(convolution)を行うことにより計算される。
【0082】
次に図3のブロック72に進み、合成ピッチサーチ動作により広範な分析が行われる。この徹底的なサーチ処理は、ブロック72〜74により形成されるループにより示される。ピッチ予測がこの実施例では1/8定格以外のピッチサブフレームについて行われる。図7に示すピッチエンコーダは合成による分析を行って、ピッチ予測パラメータ(即ちピッチラグ(pitch lag)L、及びピッチゲインb)を決定する。選択されたパラメータは、知覚的に重み付けされた入力スピーチとこれらのピッチ予測パラメータを用いて発生された合成スピーチの間のMSEを最小にするようなパラメータである。
【0083】
本発明の好適実施例においては、図7に示すように絶対的な知覚的重み付けが、ピッチ予測パラメータの抽出に用いられる。図7において、式34に示す応答性を有する知覚的重み付けフィルタが、フィルタ320及びフィルタ324のカスケードとして構成される。
W(z)=(A(z))/(A(z/ζ) (34)
絶対的な知覚的重み付けは、フィルタ320の出力をオープンループフォルマントの誤差として再使用することにより、知覚的重み付け濾波の複雑なコンピュータ処理を減少する。式34のフィルタを2つの部分に分けるこの動作は、ピッチサーチでの1つのフィルタ動作を省略する。
【0084】
入力スピーチサンプルs(n)はフォルマント予測フィルタ320を通る。この予測フィルタ320の係数は前述した図3のブロック70でのLSP補間及びLSPからLPCへの変換により得られたものである。フォルマント予測フィルタ320の出力はオープンループフォルマント残余p0(n)である。オープンループフォルマント残余p0(n)は次の式35に示される伝達関数により重み付けされたフォルマント合成フィルタ324を通る。
【数8】
【0085】
重み付けされたフォルマント合成フィルタ324の出力は知覚的に重み付けされたスピーチx(n)である。初期フィルタ状態又は重み付けされたフォルマント合成フィルタ324のフィルタメモリの影響は、重み付けされたフォルマント合成フィルタ324の出力から、重み付けされたフォルマント合成フィルタ324の0入力応答(ZIR)を減算することにより除去できる。重み付けされたフォルマント合成フィルタ324のZIRの計算は、ZIR要素328内で行われる。ZIR aZIR(n)は知覚的に重み付けされたスピーチx(n)から加算器326で減算される。各ピッチサブフレームの開始点で、ZIR要素328のフィルタメモリと重み付けされたフォルマント合成フィルタ324のフィルタメモリは同一である。
【0086】
ピッチサーチにおいて、コードブックベクトルからの0の貢献が、オープンループフォルマント残余の計算における現在のサブフレームについて仮定される。このピッチサーチは前述のオープンループフォルマント残余p0(n)とクローズループフォルマント残余pc(n)の両方を用いて行われる。クローズループフォルマント残余pc(n)は、以前のサブフレームの間にピッチ合成フィルタ322内で再構成されたサンプルである。ピッチ合成フィルタ322の伝達関数を式36に示す。
1/P(z)=1/(1-bz-L) (36)
ここでピッチラグL及びピッチゲインbは、以前のピッチサブフレームについてのピッチサーチ処理の時に計算される。ピッチ合成フィルタ322への入力は、励起ベクトル(excitation vector)Cb(n)であり、このベクトルはインデックスIについてのコードブック入力Cb(I)と、以前のコードブックサブフレームについてのコードブックサーチ処理の間に計算されたコードブックゲインGを乗算することにより発生する。従って発生するフォルマント残余はクローズループフォルマント残余と呼ばれる。
【0087】
この実施例ではpc(n)は143個のクローズループ再構成サンプルからなる。サーチは大きなオープンループサーチから大きなクローズループに、ピッチサブフレームの長さのウインドウについて移動する。長さLpのピッチサブフレームについて、nは−LMAX=−143とLp−17の間で変化する。好適実施例では、サンプルpc(n)とp0(n)は、マルチプレクサ332によって示すように連続的に格納され、これによりpc(n)とp0(n)値は長さLp+143のサンプルの単一ブロックとして次々にアクセスすることができる。これらのサンプルはRAM B122に格納される。
【0088】
フォルマント残余p(n)はpc(n)とp0(n)からなり、式37に示す伝達関数を有する重み付けされたフォルマント合成フィルタ330を通る。
H(z)=1/(A(z/ζ)) ここでζ=0.8 (37)
重み付けされたフォルマント合成フィルタ330は、各ピッチラグLの値について、Lpの重み付けされた合成スピーチサンプルyL(n)のシーケンスを発生するために用いられる。重み付けされた合成スピーチシーケンスyL(n)及び重み付けされたスピーチシーケンスxP(n)は最小化プロセッサ334に提供される。重み付けされたフォルマント合成フィルタ324の初期状態の影響は減算で除かれたので、重み付けされたフォルマント合成フィルタ330のインパルス応答のみを計算すればよい。yL(n)の計算は、重み付けされたフォルマント合成フィルタ330のインパルス応答h(n)を、適当なp(n)内のサブシーケンスによりコンボリューション計算し、各ピッチラグLについて重み付けされた合成スピーチサンプルyL(n)を得る必要がある。
【0089】
このコンボリューションはDSPコア4内で、図5a〜dに示すように再帰的(recursive)な方法で行われる。yL(n)値のセットは各ピッチラグ値について、L=17からL=143まで計算される。重み付けされたフォルマント合成フィルタ330のインパルス応答h(n)は、この実施例では最初の12個のサンプルに省略され、RAM A104に格納される。フォルマント残余p(n)はRAM B122に格納される。最初のピッチラグL=17についてのコンボリューションは、式38に示すように非再帰的な方法で行われる。
【数9】
【0090】
ここでLPはピッチサブフレーム長である。
【0091】
最初のシーケンスy17(n)が計算されRAM C142に格納される。ピッチラグL=18からL=143までのサブシーケンスyL(n)は、式39〜41に示すように再帰的に計算される。
yL(n)=h(0)p(-L) n=0 (39)
yL(n)=yL-1(n-1)+h(n)p(-L) 1≦n<20, 17<L≦143 (40)
yL(n)=yL-1(n-1) 20≦n<Lp (41)
この関係を式42に示す。
【0092】
pL(n)=p(n-L)=pL-1(n-1), 17<L≦143, 0≦n<Lp (42)
再帰的コンボリューションの効率は、RAMを各々専用アドレッシングユニットを有する3つの部分に分割し、ロード及び格納動作を制御することにより最適化される。これは3分割RAM(triple-partitioned RAM)と呼ばれる。式40でのコンボリューション値の計算、及び結果の生成を各クロックサイクルで行うことが可能である。例えば単一のクロックサイクルで、y18(10)が計算され、y18(9)が格納され、y17(10)がフェッチされ、及びh(10)がフェッチされる。従って上記式40は結果を各サイクルで生成できる。各サイクルで上記式41の結果を生成することも可能である。例えば、単一サイクルで、y18(24)が計算され、y17(24)がフェッチされ、y18(23)が格納される。
【0093】
以前計算された重み付けされた合成スピーチサンプルyL-1(n)を、各ピッチラグ更新の間に同一元のRAMに移動することなく式40及び41を実行する能力は、ピンポン(ping-ponging)処理と呼ばれる方式及びハードウエア容量が必要になる。このピンポン方式では、ソース及び目的のRAMは各ラグ更新の間でスワップされる(swapped)。等しいピッチラグ値についてyL(n)を計算したとき、yL-1(n−1)値は3つのRAMの中の第1のRAMからフェッチされ、結果は第2のRAMに格納される。奇数ピッチラグ値についてyL(n)を計算したとき、yL-1(n−1)値は3つのRAMの中の第2のRAMからフェッチされ、結果は第1のRAMに格納される。このピンポン方式により、各ピッチラグ更新の間で、新たに計算されたyL(n)をRAMに移動し、及び以前に計算されたyL-1(n−1)値を同一のRAMから移動する必要がなくなる。
【0094】
図8はピッチサーチのコンボリューション部分(初期の非再帰的及び再帰的コンボリューションの両方)の実行するためのフロー図の一実施例である。ブロック350では、ピッチラグLは最も小さな値に初期化される。この値は本実施例では17である。サンプル番号n及びフィルタインデックスmは0にセットされ、y17(n)の値は0にセットされる。ブロック352から360は初期コンボリューションループを示し、このループは非再帰的方法で計算される。初期コンボリューションの計算(ここでL=17)は、次の式43に従って行われる。
【数10】
【0095】
初期コンボリューションの計算は固定長ループを使用して、計算の複雑性を減少している。このようにして、式43の内部ループ(ブロック356〜360)内の可変長ループ構造を設定するために必要なオーバーヘッドが避けられる。各y17(n)値は、それが計算された後、最小化プロセッサ334に送られる。
【0096】
ブロック352はサンプルインデックスnをテストする。nがピッチサブフレーム長LPに等しい場合、初期コンボリューションは完了し、フローはブロック362に移行する。ブロック352内で、nがピッチサブフレーム長より短い場合、フローはブロック356に移行する。ブロック352はインデックスmをテストする。mがフィルタインパルス応答長20に等しい場合、この実施例では、現在の反復は完了し、フローはブロック354に移行し、mは0に設定され、nはインクリメントされる。そしてフローはブロック352へ戻る。ブロック356で、mがインパルス応答長より短い場合、フローはブロック360に移行し、部分的合計が累計される。フローはブロック356に移行し、インデックスmはインクリメントされ、フローはブロック356へ進む。
【0097】
ブロック352から360により形成された初期コンボリューションループ内に含まれる動作はDSPコア4内で実行される。そこで、パイプライン処理を行うことにより、ブロック360に示されるような積の累計が各クロックサイクルで可能となる。次の動作は計算のパイプライン処理を説明し、DSPコア4内で単一クロックサイクルに発生する。フィルタ応答値h(m+1)がRAM A104からフェッチされ、AREG130に提供される。フォルマント残余値p(n−17)がRAM B122からフェッチされ、BREG134に提供される。C0REG164内に存在する部分和y17(n+m−1)はマルチプレクサ168及び180を介してRAM C182に提供される。部分和y17(n+m+1)はRAM C182により、マルチプレクサ158を介してDREG 156に提供される。AREG130及びBREG134内の各値h(m)及びp(n−17)は乗算器132に提供される。乗算器132の出力はマルチプレクサ138を介してバレルシフター140に提供される。このバレルシフター140はSREG136によりマルチプレクサ149を介して提供されるスケーリング値に従って、その値を正規化する。SREG136内の値はp(n−17)シーケンスを正規化するために必要な値である。この正規化因数をp(n−17)とh(m)の積に適用することで、p(n−17)の正規化と同一の効果を得ることができる。なぜなら、その積の最高精度は正規化がバレルシフター140内で行われる前に維持されるからである。部分和y17(n+m)はDREG156により、マルチプレクサ154、ディセーブルされたインバータ152及びバレルシフター150を介して加算器146の第2入力に提供される。加算器146の出力はマルチプレクサ148を介してC0REG164に提供される。インデックスnがブロック352内の最大許容値に達すると、初期コンボリューションは完了し、RAMC182に存在する部分和はコンボリューションの最終値となる。
【0098】
初期コンボリューションが完了すると、フローはブロック362に移行し、そこで再帰的コンボリューションは残りのピッチラグ値に関する計算の中で実行される。
【0099】
ブロック362では、サンプルインデックスnは0に設定され、ピッチラグインデックスLがインクリメントされる。フローはブロック364に移行する。ブロック364はLをテストする。Lが最大ピッチラグ値(本実施例では143)より大きい場合、フローはブロック366に移行し、そこでピッチサーチ動作は終結する。Lが143以下の場合、フローはブロック368に移行する。ブロック368はピンポン動作を前述したように制御する。ブロック368では、Lがテストされ、それが偶数か奇数か判断される。Lが偶数の場合、フローはブロック378に移行する(ケースIで説明される動作)。Lが奇数の場合、フローはブロック370に移行する(ケースIIで説明される動作)。
【0100】
ケースI(ピッチラグLが偶数の場合)
ブロック378でyL(0)は式39に従って計算される。アドレスユニットA102はRAMA104に対するアドレス値を提供し、RAM A104はそれに応答してh(0)をマルチプレクサ108〜AREG130を介して提供する。同一クロックサイクルで、アドレスユニットB120はRAM B122に対するアドレス値を提供し、RAMB122はそれに応答してp(−L)をマルチプレクサ116からBREG134を介して提供する。次のクロックサイクルで、AREG130はh(0)を提供し、BREG134はp(−L)をマルチプレクサ132に提供し、そこで2つの値が乗算され、その積はマルチプレクサ138を介してバレルシフター140に提供される。バレルシフター140は、マルチプレクサ149を介してSREG136により与えられる値に応じて、その積を正規化し、正規化された積を加算器146の第1入力に提供する。加算器146の第2入力には、マルチプレクサ154、ディセーブルされたインバータ要素152及びバレルシフター152を介して0が提供される。加算器146の出力はマルチプレクサ148を介してC0REG164に提供される。同一クロックサイクルで、yL-1(0)及びh(1)がRAM B122及びRAM A104からフェッチされ、マルチプレクサ158及び108を各々介してDREG156及びAREG130に提供される。プロック380では、合成されたスピーチサンプルインデックスnがインクリメントされる。制御ブロック382では、合成されたスピーチサンプルインデックスnが20より少ない場合、フローはブロック384に進む。
【0101】
プロック384では、新たなyL(n)値が式40に従って各クロックサイクルで計算される。yL-1(n−1)及びh(n)の値を初期化するためにブロック384の最初の反復に先だって必要な適切な設定は、前述したようにブロック378で達成された。最終値のyL(19)を格納するために、ブロック384の最後の反復の次に適切なクリーンアップ(cleanup)も必要である。
【0102】
ブロック384の最初の反復で、ブロック378で計算されたyL(0)がC0REG164内に存在する。C0REG164はマルチプレクサ168及び180を介してRAM C182にyL(0)を、アドレスユニットC184からのRAM C182に対するアドレス値と共に提供し格納する。yL(0)は、それがRAM C182に提供されるのと同時に、最小化プロセッサ334に提供される。
【0103】
ブロック384では次の動作が単一クロックサイクルの間に行われる。即ち、yL-1(n)値は、アドレスユニットB120により提供されるアドレスに従って、マルチプレクサ116及び158を介して、RAM B122により、DREG156に提供される。インパルス応答値h(n+1)はRAM A104により、アドレスユニットA102により提供されるアドレスに従って、マルチプレクサ108を介してAREG130に提供される。DREG156はyL-1(n−1)を、マルチプレクサ154、ディセーブルされたインバータ要素152、及びバレルシフター150を介して、加算器146の第1入力に提供する。AREG130はh(n)を、及びBREG134はp(−L)を乗算器132に提供し、そこで2つの値は乗算され、その積はマルチプレクサ138を介して乗算器132により、バレルシフター140に提供される。バレルシフター140はSREG136により提供される値に従って、その積の値を正規化し、正規化された積値を加算器146の第2入力に提供する。加算器146の出力は、マルチプレクサ148を介してC0REG164に提供される。以前の反復で計算されたC0REG164での値は、マルチプレクサ168及び180を介して、RAM C182に提供及び格納され、最小化プロセッサに提供される。
【0104】
ブロック380では、合成されたスピーチサンプルインデックスnがインクリメントされる。制御ブロック382では、合成されたスピーチサンプルインデックスnが20に等しい場合、最後の反復で計算されたyL(19)は、フローがブロック390に進む前に、マルチプレクサ168及び124を介して、RAMB122に提供され、循環バッフアに格納され、最小化プロセッサ334に提供される。ケースIの終わり。
【0105】
ケースII(ピッチラグLが奇数の場合)
ブロック370では、yL(0)が式39に従って計算される。アドレスユニットA102はRAMA104にアドレス値を提供し、RAM A104はそれに応じてh(0)をマルチプレクサ108を介してAREG130に提供する。同一のクロックサイクルで、アドレスユニットB120はアドレス値をRAM B122に提供し、RAM B122はそりに応じてp(−L)をマルチプレクサ116を介してBREG134に提供する。次のクロックサイクルの間、AREG130はh(0)を、及びBREG134はp(−L)を乗算器132に提供し、そこで2つの値が乗算され、その積はマルチプレクサ138を介してバレルシフター40に提供される。バレルシフター40は、マルチプレクサ149を介してSREG136により提供される値に応じて、その積を正規化し、正規化された積を加算器146の第1入力に提供する。加算器146の第2入力には、マルチプレクサ154、ディセーブルされたインバータ要素152、及びバレルシフター152を介して0が提供される。加算器146の出力はマルチプレクサ148を介してC0REG164に提供される。同一クロックサイクルの間に、yL-1(0)及びh(1)がRAM C182及びRAM A104からフェッチされ、DREG156及びAREG130にマルチプレクサ158及び108を各々介して提供される。
【0106】
ブロック372では、合成されたスピーチサンプルインデックスnはインクリメントされる。制御ブロック374では、合成されたスピーチサンプルインデックスnが20より少ない場合、フローはブロック367に進む。
【0107】
ブロック376では、新たなyL(n)値が式40に従って各クロックサイクルに計算される。yL-1(n−1)及びh(n)の値を初期化するために、ブロック376の最初の反復に先だって必要な適切なセットアップが前述したようにブロック370で行われた。yL(19)の最終値を格納するために、ブロック376の最後の反復の次に適切なクリーンアップも必要である。
【0108】
ブロック376の最初の反復において、ブロック370で計算されたyL(0)は、C0REG164内に存在する。C0REG164はマルチプレクサ168及び180を介して、yL(0)を、アドレスユニットB122からRAMBに対して与えられたアドレスと共にRAMB122に提供し、格納する。yL(0)は、それがRAM B122に提供されるのと同時に、最小化プロセッサ334に提供される。
【0109】
ブロック376では、次の動作が単一サイクルで実行される。yL-1(n)値はRAMC182により、アドレスユニットC186から提供されたアドレスに従い、マルチプレクサ158を介して、DREG156に提供される。インパルス応答値h(n+1)は、RAMA104により、アドレスユニットA102によって提供されるアドレスに従い、マルチプレクサ154を介して、AREG130に提供される。DREG156はyL-1(n−1)を、マルチプレクサ154、ディセーブルされたインバータ要素152、及びバレルシフター150を介して、加算器146の第1入力に提供される。AREG130はh(n)を、BREG134はp(−L)をマルチプレクサ132に提供し、ここで2つの値が乗算され、乗算器132により提供されるその積は、マルチプレクサ138を介してバレルシフター140に提供される。バレルシフター140は、SREG136により提供される値に応じて、その積を正規化し、正規化された積を加算器146の第2入力に提供する。加算器146の出力はマルチプレクサ148を介してC0REG168に提供される。以前の反復で計算されたC0REG168の値は、マルチプレクサ168及び124を介してRAMB122に格納され、及び最小化プロセッサ334に提供される。
【0110】
ブロック372では、合成されたスピーチサンプルインデックスnはインクリメントされる。制御ブロック374では、合成されたスピーチサンプルインデックスnが20に等しい場合、最後の反復で計算されたyL(19)は、フローがブロック390に進む前に、マルチプレクサ168及び124を介して、RAMB122に提供され、RAM B122内の循環バッファに格納され、及び最小化プロセッサ334に提供される。ケースIIの終わり。
【0111】
ブロック390の反復に先立って、yL-1(19)がRAM B122内の循環バッファからフェッチされ、BREG134にロードされ、yL-1(19)はBREG134からC0REG164に移動され、その後、yL-1(20)がRAM B122内の循環バッファからフェッチされ、BREG134にロードされる。
【0112】
ブロック390では、新たなyL(n)が各クロックサイクルで、式41に従って計算される。次に示す動作が単一クロックサイクルで行われる。即ち、yL-1(n−2)がBREG134によりC0REG164に提供される。yL-1(n−3)がRAM B122内の循環バッファからフェッチされ、BREG134にロードされる。C0REG164に存在するyL-1(n−1)は最小化プロセッサ334に提供される。ブロック390の最後の反復の続いて、yL-1(LP−2)はRAM B122内の循環バッファから削除される。各ピッチラグで循環バッファに要素を加算し、各ピッチラグで循環バッファから要素を減算することにより、循環バッファのサイズはLP−19に維持される。
【0113】
循環バッファの導入は、アドレスユニットB120内の専用アドレスレジスタにより行われる。これはシーケンシャルメモリが循環形式で自動的にアドレスできるように、丸め込み点(wrap around points)を示す。
【0114】
ブロック386では、合成されたスピーチサンプルインデックスnがインクリメントされる。制御ブロック388では、合成されたスピーチサンプルインデックスnがLPより少ない場合、フローは再びブロック390に進む。合成されたスピーチサンプルインデックスnがLPに等しい場合、全てのyL(n)値が現在のピッチラグ値Lについて計算され、フローはブロック362に戻る。
【0115】
合成されたスピーチサンプルyL(n)の計算に先立ち、知覚的に重み付けされたスピーチサンプルxP(n)の長さLPのシーケンスが、最小化プロセッサ334に提供される。前述したように、ラグ値L=17からL=143までの長さLPのスピーチサンプルxP(n)のシーケンスは、初期及び再帰的コンボリューションの計算の間に、最小化プロセッサ334に提供される。合成されたスピーチサンプルは最小化プロセッサ334に次々と提供される。最小化プロセッサ334は合成された各スピーチサンプルシーケンスyL(n)の自動相関を計算し、合成された各スピーチサンプルシーケンスyL(n)と知覚的に重み付けされたスピーチサンプルxP(n)間の交差相関を計算する。
【0116】
これら相関値から、最小化プロセッサ334は、合成された各スピーチサンプルシーケンスyL(n)と知覚的に重み付けされたスピーチサンプルxP(n)間のMSEの相対測定値を計算する。各ピッチラグLに関して、MSEは合成されたスピーチサンプルシーケンスのピッチゲイン値bのあらゆる可能な値について計算される。最小化プロセッサ334は、現在のピッチラグL及び現在のピッチゲインBにより、最小MSEの値を維持することにより、全ピッチラグ値L及びピッチゲイン値bのあらゆる可能な値についての最小値を検出する。最小MSEに対応するピッチラグ概算L^及びピッチゲイン概算インデックスb^も、最小化プロセッサ334によって維持される。新たなMSEの各値は最小化プロセッサ334内に保持された最小MSEと比較される。
【0117】
新MSEが最小MSEより小さい場合、最小MSEは新MSE値と置き代わり、ピッチラグ概算L^及びピッチゲイン概算インデックスb^は更新され、新たな最小MSEを反映する。最小化プロセッサ334に保持された最小MSE及び対応するピッチラグ概算L^及びピッチゲイン概算インデックスb^は、ピッチサブフレームの間に計算された最初のマイナスのMSE値を使用して、各ピッチサブフレームで初期化される。全てのピッチラグ値L^及び全てのピッチゲイン値b^を検討した後、ピッチラグ概算L^及びピッチゲイン概算インデックスb^は、現在のピッチサブフレームに対する最適ピッチラグインデックス及びピッチゲイン概算インデックスである。
【0118】
最小化プロセッサ334は最適ピッチラグL^と最適ピッチゲインインデックスb^をDSPコア4に提供する。最適ピッチラグL^と最適ピッチゲインインデックスb^は、知覚的に重み付けされたスピーチサンプルxp(n)と重み付けされた合成スピーチサンプルyL(n)間の最小MSEを生じる値である。MSEは次式44〜46に示すように、ピッチラグLとピッチゲインbの関数である。
【数11】
【0119】
ExPxPは知覚的に重み付けされたスピーチサンプルxP(n)の自動相関である。ExPyLは知覚的に重み付けされたスピーチサンプルxp(n)と重み付けされた合成スピーチサンプルyL(n)間の交差相関である。EyLyLは重み付けされた合成スピーチサンプルyL(n)の自動相関である。
【0120】
知覚的に重み付けされたスピーチサンプルxp(n)の自動相関ExPxPは、ピッチゲインbの関数ではない。ExPxPは各ピッチサブフレームの間で一定であるので、最適ピッチラグ及び最適ピッチゲインの選択に影響しない。ピッチラグL及びピッチゲインbに対する最小化の式44〜46は、次の最小化の式47と等価である。
MSE(L,b)=-2bExpyL+b2EyLyL (47)
最小化プロセッサ334は、重み付けされた合成スピーチサンプルyL(n)の自動相関EyLyL、及び知覚的に重み付けされたスピーチサンプルxp(n)と重み付けされた合成スピーチサンプルシーケンスyL(n)間の交差相関ExPyLを計算する。各相関対(ExPyL、EyLyL)について、最小化プロセッサ334は、前記の式47に従って、相対MSEをピッチゲインbの値の1セットについて計算する。ExPyL及びEyLyLの計算は、最小化プロセッサ334内で同時に行われる。相関値がピッチラグL+1について計算されている間に、相対MSE値が計算され、MSE最小化に関する決定がピッチラグLについて行われる。
【0121】
図6a及び6bは最小化プロセッサ334の一実施例を示す。知覚的に重み付けされたスピーチサンプルxp(n)はDSPコア4によりラッチ210に提供され、制御要素220によって提供されるアドレスに従ってRAM X212内に格納される。b=0.25〜b=2.0で0.25ステップ毎にスケールされた(scaled)ピッチゲイン値−2bが、マルチプレクサ260を介してDSPコア4により提供され、ラッチ264、268、272、276、280、284、288及び292に各々格納される。対応するスケールされたピッチゲイン値b2はマルチプレクサ260を介してDSPコア4により提供され、ラッチ262、266、270、274、278、282、286及び290に各々格納される。マルチプレクサ260はラッチ262に値を直接提供する。
【0122】
ラッチ262はラッチ264に値を直接提供する。ラッチ276はラッチ278に値をマルチプレクサ294を介して提供する。ラッチ290は値をラッチ292に直接提供する(以下同様)。ラッチ262〜292及びマルチプレクサ294を介して値をシフトすることにより、値はマルチプレクサ260を介して循環バッファ259内の全てのラッチに提供することができる。知覚的に重み付けされたスピーチサンプルxp(n)の格納、及び−2bとb2値の格納に続いて、重み付けされた合成スピーチサンプルyL(n)がラッチ210に提供される。重み付けされた合成スピーチサンプルyL(n)はラッチ210により、マルチプレクサ216の2つの入力に提供される。これは重み付けされた合成スピーチサンプルの二乗(yL(n))2を生成する。
【0123】
ラッチ210も、重み付けされた合成スピーチサンプルyL(n)を乗算器218の第1入力に提供する。RAM X212は知覚的に重み付けされたスピーチサンプルxp(n)を、ラッチ214を介して乗算器218の第2入力に提供する。乗算器218は積xp(n)yL(n)を計算する新たな二乗値(yL(n))2、及び新たな積xp(n)yL(n)は、乗算器216及び218により各サイクルで各々計算される。サンプルインデックスnは0からLP−1まで、各ピッチラグLについて変化する。
【0124】
重み付けされた合成スピーチサンプルの二乗値(yL(n))2は、アキュムレータ221に提供される。積xp(n)yL(n)はアキュムレータ231に提供される。アキュムレータ221は各ピッチラグLについてのLPの二乗の合計を計算する。アキュムレータ231は各ピッチラグLについてLPの積の合計を計算する。
【0125】
新たな各ピッチラグの前に、ラッチ226にはマルチプレクサ224を介して0が提供される。これでアキュムレータ221は現在のピッチラグLに関する自動相関EyLyLを計算する準備が整う。アキュムレータ221内で、二乗値(yL(n))2は加算器222の第1入力に提供される。不足している合計はラッチ226により加算器222の第2入力提供される。新たに計算された不足している合計は加算器22により、マルチプレクサ224を介してラッチ226に提供され格納される。ピッチラグLに関する全てのLP値に対する累計の後、自動相関EyLyLはラッチ228に提供され格納される。
【0126】
新たな各ピッチラグの前に、ラッチ236にはマルチプレクサ234を介して0が提供される。これでアキュムレータ231は、現在のピッチラグLに関する交差相関ExPyLを計算する準備が整う。アキュムレータ231内で、積xp(n)yL(n)が、加算器232の第1入力に提供される。不足している合計はラッチ236により、加算器232の第2入力に提供される。新たに計算された不足している合計は加算器232により、マルチプレクサ234を介して、ラッチ236に提供され、格納される。ピッチラグLに関する全てのLP値に対する累計の後、交差相関ExPyLはラッチ238に提供され格納される。
【0127】
式47に示されるMSEは以下に説明する2つのサイクル処理において計算される。
【0128】
2つのサイクルの第1サイクルで、ラッチ238は知覚的に重み付けされたスピーチサンプルと重み付けされた合成スピーチサンプル間の交差相関ExPyLを、マルチプレクサ230を介して、乗算器240の第1入力に提供する。循環バッファ259はスケールされたピッチゲイン値−2bを、マルチプレクサ296を介して乗算器240の第2入力に提供する。積−2bExPyLは乗算器240により、加算器242の第1入力に提供される。加算器242の第2入力は、マルチプレクサ246を介して0が提供される。加算器242の出力はラッチ244に提供され格納される。循環バッファ259のラッチ262〜292内の値は、ラッチ276の出力をマルチプレクサ294を介してラッチ278に提供することにより、及びラッチ292の出力をマルチプレクサ260を介してラッチ262に提供することにより、回転される。
【0129】
この回転の後、ラッチ262、264、266、268、270、272、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及び循環バッファのマルチプレクサ260及び294を含む。循環バッファ259の値を回転することにより、ラッチ292は第1及び第2サイクルで、−2b及びb2を各々提供する。
【0130】
2つのサイクルの第2サイクルで、ラッチ228は重み付けされた合成スピーチサンプルの自動相関EyLyLを、乗算器240の第1入力に提供する。循環バッファ259はスケールされたピッチゲイン値b2を、マルチプレクサ296を介して乗算器240の第2入力に提供する。積b2EyLyLは乗算器240により、加算器242の第1入力に提供される。加算器242の第2入力には、マルチプレクサ246を介してラッチ244の出力積−2bExpyLが提供される。加算器242は−2bExpyL+b2EyLyLを、ラッチ244に提供し格納する。循環バッファ259のラッチ262〜292の値は、前述したように回転される。
【0131】
以上の2サイクル処理は、スケールされたピッチゲイン値の全ての8対(−2b、b2)について繰り返される。現在のMSE値−2bExpyL+b2EyLyLの計算に続く2つのサイクルの間、新たなMSE値が、−2b及びb2値の新たな対を用いて計算される。ラッチ244が新MSE値に更新される前に、現在のMSE値は、ラッチ250に格納された現在のピッチサブフレームに関する現在の最小MSEと比較される。現在のMSE値−2bExpyL+b2EyLyLは、ラッチ244により減算器248のプラス入力に提供される。ラッチ250は現在の最小MSE値を、減算器248のマイナス入力に提供する。制御要素220は減算器248からの差出力の結果をモニタする。
【0132】
この差がマイナスの場合、現在のMSE値は現在のサブフレームに関する新たな最小MSEであり、ラッチ250に格納され、対応するピッチラグ概算L^及びピッチゲイン概算インデックスb^は制御要素220内で更新される。その差がマイナスではない場合、現在のMSE値は無視される。
【0133】
各ピッチサブフレームの前に、DSPコア4はコマンドを最小化プロセッサ334に発送し、制御要素220に新たなピッチサブフレームが続くことを知らせる。このコマンドを受信すると、現在のピッチラグ及び現在のピッチゲインインデックスは制御要素220内で0に設定される。重み付けされた合成スピーチサンプルの新たな各シーケンスが最小化プロセッサ334に提供される前に、DSPコア4はコマンドを最小化プロセッサ334に発送し、制御要素220に重み付けされたスピーチサンプルの新たなシーケンスが続くことを知らせる。このコマンドを受信すると、制御要素220は現在のピッチラグ及び現在のピッチゲインインデックスを1だけインクリメントする。この値は1のピッチラグインクリメント及び0.25のピッチゲインインクリメントに対応する。重み付けされた合成スピーチサンプルの第1シーケンスが最小化プロセッサ334に提供されている間、現在のピッチラグ及び現在のピッチゲインインデックスは1に等しくなる。この値はL=17のピッチラグ、及びb=0.25の正規化されたピッチゲインに対応する。
【0134】
又、各ピッチサブフレームの前に、現在のピッチラグ概算L^及び現在のピッチゲイン概算インデックスb^は0に設定され、無効ピッチラグ及びピッチゲインを示す。各ピッチサブフレームの間、制御要素220はラッチ244内の第1のマイナスMSEを検出する。この値はラッチ250に格納され、対応するピッチラグ概算L^及びピッチゲイン概算インデックスb^は制御要素220内で更新される。これは各ピッチサブフレームでラッチ250内の最小化MSEを初期化するために行われる。ピッチサブフレームの間にマイナスのMSE値が生成されなかった場合、ピッチラグ概算L^及びピッチゲイン概算インデックスb^はサブフレームの終わりで0になる。
【0135】
これらの概算は制御要素220によりDSPコア4に提供される。DSPコア4が無効ピッチラグ概算を受信した場合、最適ピッチゲインは0に設定され、b^=0は零MSEに対応する。ピッチフィルタのピッチゲインが0に設定されることにより、ピッチラグは連続ではなくなる。DSPコア4が有効ピッチラグ概算L^を受信すると、この値は最適ピッチラグとして使用され、使用される最適ピッチゲインは1〜8のピッチゲイン概算インデックスについて各々、0.25、0.5、0.75、1.0、1.25、1.5、1.75、及び2.0である。
【0136】
ピッチサーチにおいて、式47のMSE関数の特性MSE(L,b)により、計算量を減少できる。現在のピッチラグの残りのMSE計算は、現在のピッチラグ内でまだ計算されている残りのMSE値が、ラッチ250に格納された現在の最小MSEより小さいMSE値を生じ得ないと判断された場合に中止できる。本実施例では、ピッチサーチ内の計算量を節約するための3つの技術が、最小化プロセッサ334内で採用される。1つの二次方程式が各ピッチラグ値Lについて形成される。これら二次方程式の全ては原点b=0及びMSE(L,b)=0を通過する。ピッチサーチ動作では詳しくサーチされないが、ピッチゲイン値b=0は可能なゲイン値のセットに含まれる。
【0137】
第1の計算的節約方法は、ExpyLがマイナスの時、現在のピッチサーチ処理でのMSE値の計算を中止することを含む。各サブフレームに関する最小MSE上の上限を0に保証すると、全てのピッチゲイン値がプラスである。マイナスのExpyLはプラスのMSE値を生じ、従って次に最適な値である。
【0138】
第2の計算的節約方法は、MSE関数の二次方程式的な特徴に基づく現在のピッチラグのピッチサーチ処理での残りのMSE値の計算を中止することを含む。MSE関数MSE(L,b)は単調に増加するピッチゲイン値について計算される。プラスのMSE値が現在のピッチラグについて計算されたとき、現在のピッチラグに関する残りの全MSE計算は、残りの全MSE値が同様にプラスであるとして中止される。
【0139】
第3の計算的節約方法は、MSE関数の二次方程式的特徴に基づく現在のピッチラグのピッチサーチ処理での残りのMSE値の計算を中止することを含む。MSE関数MSE(L,b)は単調に増加するピッチゲイン値について計算される。新たな最小MSEではないと判断される現在のピッチラグ内で、MSE値が計算されるとき、及び新たな最小MSEと判断された現在のピッチラグ内で、MSE値が既に計算されたとき、現在のピッチラグ内の残りの全てのMSE計算は、新たな最小MSEより少ない値になり得ないとして中止される。以上3つの計算量節約方法は、最小化プロセッサ334の消費電力を著しく節約する。
【0140】
ブロック76においてピッチ値は量子化される。各ピッチサブフレームについて、選択されたパラメータb^及びL^は送信コードPGAIN及びPLAGに変換される。最適ピッチラグインデックスb^は1と127(1と127を含む)の間の整数である。
【0141】
PLAGの値はb^とL^の両方に依存する。b^=0の場合、PLAG=0、その他の場合、PLAG=L^である。従って、PLAGは7ビットを用いて示される。B^=0の場合、PGAIN=0、他の場合、PGAIN=b^−1である。従って、PGINは3ビットで示される。ここで、b^=0及びb^=1は両方共、PGAIN=0を生じる。これら2つの場合はPLAGの値により区別され、第1の場合では0、第2の場合では0以外である。
【0142】
1/8の速度を除き、各ピッチサブフレームは、2つのコードブックサブフレームを包含する。各コードブックサブフフレームについて、最適コードブックインデックスI^及び最適コードブックゲインG^はブロック80のコードブックサーチ処理内で判断される。1/8の速度について、1つのコードブックインデックス及び1つのコードブックゲインのみが判断され、そのコードブックインデックスは送信の前に放棄される。
【0143】
図9の実施例において、コードブック400により提供される励起コードブックは2Mコードベクトルからなり、ここでM=7である。
【0144】
この実施例での循環コードブックは、以下の表IVに示される128個の値からなる。これらの値は10進で示され、ROM E114に格納されている。
【表4】
【0145】
コードブックベクトルインデックスI及びコードブックゲインGを選択するのに用いる方法は、ピッチサーチ処理に用いる方法と同様な合成分析法(analysis-by-synthesis method)である。選択されたコードブックインデックスI^及び選択されたコードブックゲインG^は、I^及びG^の許容値であり、これらの値は重み付けされた合成スピーチyI(n)と、ピッチ概算除去された知覚的に重み付けされたスピーチxC(n)の間の式50の平均二乗エラーMSE(I,G)を最小にする値である。図9において、重み付けされたスピーチxC(n)は次のように発生する。現在のサブフレームに関するピッチサーチ内に発生した同一の知覚的に重み付けされたスピーチx(n)がここでは使用される。
【0146】
1/8の速度内にピッチサーチがないために、x(n)がこの速度に関するコードブックサーチ内に発生される。x(n)は加算器410の第1入力に提供される。現在のサブフレーム及びピッチフィルタ506の現在の状態メモリに関するピッチサーチにおいて抽出された最適ピッチラグL^及び最適ピッチゲインb^を用いて、ピッチ合成フィルタ506のZIR pzir(n)がZIR要素406内で計算される。このZIRは重み付けされた合成フィルタ408を通り、その出力pazir(n)は加算器410のx(n)から減算される。加算器410の出力xC(n)は正規化され、最小化プロセッサ412に提供される。
【0147】
コードブックベクトルCI(n)が、コードブック400により、コードブックインデックスIに応答し、式53に従って提供される。現在のピッチサブフレームに関するピッチサーチ処理において既に決定されている重み付けされた合成フィルタ404のインパルス応答h(n)が、この実施例では用いられる。しかし、1/8の速度では、h(n)は重み付けされた合成フィルタ404のコードブックサーチで計算される。本実施例では、インパルス応答h(n)は、最初の20のサンプルに省略される。
【0148】
コードブックの再帰的特性のために、ピッチサーチで用いられるものと同様な再帰的コンボリューション処理が、コードブックサーチに使用される。このコンボリューションは次の式52のようにして計算される。
【数12】
【0149】
インデックスIに関するコードブックベクトルCI(n)は次式53のように定義される。
【数13】
【0150】
全コンボリューションは式54に従ってインデックスI=0について行われる。出力y0(n)はRAM C182に格納される。他のインデックスI=1〜I=127について、コンボリューションは次式55〜57に示すように再帰的に行われる。
【数14】
【0151】
ピッチサーチでのように、コードブックサーチ再帰的コンボリューションの実行は、DSPコア4内の3分割RAM及びROM E114により最適化される。
【0152】
式56内のコンボリューション値を計算し、各クロックサイクルで結果を生成することが可能となる。例えば、単一サイクルにおいて、y18(10)が計算され、y18(9)が格納され、y17(10)がフェッチされ、h(10)がフェッチされる。従って、前述の式56は各クロックサイクルで1つの結果を生成できる。各クロックサイクルで式57に関する結果を生成することも可能である。例えば、単一クロックサイクルで、y18(24)が計算され、y17(24)がフェッチされ、y18(23)が格納される。
【0153】
式56及び57を実行することにより、各コードブックインデックス更新の間で、以前に計算した重み付けされた合成スピーチサンプルyI-1(n−1)を同一元のRAMに移動する必要がない。この式56及び57を実行する能力は、ピンポン処理と呼ばれる格納機構及びハードウエア容量が必要になり、このピンポン処理は発送元(source)及び発送先(destination)のRAMが各インデックス更新の間でスワップされる。奇数コードブックインデックス値についてyI(n)を計算するとき、yI-1(n−1)値が3つのRAM中の第2のRAMからフェッチされ、結果は第1のRAMに格納される。このピンポン処理により、各コードブックインデックス更新の間に、以前計算したyI-1(n−1)値を同−RAMに移動する必要がなくなる。
【0154】
図10はコードブックサーチの再帰的部分(初期の非再帰的及び再帰的コンボリューションの両方を含む)の実行を示すフローの一実施例である。ブロック414では、コードフックインデックスIは最も小さい値(本実施例では0)に初期化される。サンプル番号n及びインデックスmは0に設定され、y0(n)の値は0に設定される。ブロック416〜424は、非再帰的方法で計算される初期コンボリューションループを形成する。初期コンボリューションの計算(ここでI=0)は次式58に従って行われる。
【数15】
【0155】
初期コンボリューションの計算は固定長ループを使用し、計算の複雑性を減少している。このようにして、式58の内部ループ(ブロック320〜324)内に、可変長ループ構造を設定するために必要なオーバーヘッドは避けられる。各y0(n)値は、それが計算された後に最小化プロセッサ412に送られる。
【0156】
ブロック416はサンプルインデックスnをテストする。nがコードブックサブフレーム長LCに等しい場合、第1コンボリューションは完了し、フローはブロック426に移行する。ブロック416で、nがコードブックサブフレーム長より小さい場合、フローはブロック420に移行する。ブロック430はインデックスmをテストする。mがこの実施例でフィルタインパルス応答長20に等しい場合、現在の反復は完了し、フローはブロック418に移行し、ここでmは0に設定され、nはインクリメントされる。フローはブロック416に戻る。ブロック420で、mがフィルタインパルス応答長20より少ない場合、フローはブロック434に移行し、ここで部分的合計が累計される。フローはブロック422に移行し、ここでインデックスmはインクリメントされ、フローはブロック420に進む。
【0157】
ブロック414から424により形成された初期コンボリューションループに含まれる動作は、DSPコア4内で実行され、ここで適切なピンポン処理が提供され、ブロック424に示すような積の累計を行うことができる。次の動作はピンポン計算処理を示し、これは単一クロックサイクルでDSPコア4内で行われる。フィルタ応答値h(m+1)がRAM A104からフェッチされ、AREG130に提供される。C0REG164内に存在する部分和y0(n+m−1)は、マルチプレクサ168及び180を介してRAM C182に提供される。
【0158】
この部分和y0(n+m−1)はRAM C182によりDREG156に提供される。AREG130及びBREG134内の各値h(m)及びCI(n)は乗算器132に提供される。乗算器132の出力は、マルチプレクサ138及びディセーブルされたバレルシフター140を介して、加算器146の第1入力に提供される。部分和y0(n+m)はDREG156により、マルチプレクサ154、ディセープルされたインバータ152及びディセーブルされたバレルシフター150を介して、加算器146の第2入力に提供される。
【0159】
本実施例では、中心がクリツプされた(clipped)ガウスコードブック(Gaussian codebook)CI(n)が大多数の0値を含む。この条件を節電特性として利用するために、DSPコア4は先ず、コードブックベクトルがブロック424内で0か否かチェックする。0の場合、ブロック424で通常行われる前述の乗算及び加算ステップはスキップされる(skipped)。この処理は乗算及び加算動作の約80%を除去し、従って電力が節約できる。加算器146の出力はマルチプレクサ148を介してC0REG164に提供される。C0REG内のこの値はマルチプレクサ168及び180を介してRAM C182に提供される。インデックスnがブロック416内のその最大許容値に達すると、初期コンボリューションは完了し、RAM C182内の部分和はコンボリューションの最終結果となる。
【0160】
初期のコンボリューションが完了すると、フローはブロック426に移行し、ここで再帰的コンボリューションが、他のコードブックインデックス値に関する計算において行われる。
【0161】
ブロック426において、サンプルインデツクスnは0に設定され、コードブックインデックスIはインクリメントされる。フローはブロック428に移行する。ブロック428はIをテストする。Iが128(本実施例での最大コードブックインデックス値)以上の場合、フローはブロック430に移行し、ここでコードブックサーチ動作は終結する。Iが127以下の場合、フローはブロック432に移行する。ブロック432は前述のピンポン動作を制御する。ブロック432では、Iが偶数か奇数か判定される。Iが偶数の場合、フローはブロック442に移行する(ケースIで説明する動作)。Iが奇数の場合、フローはブロック434に移行する(ケースIIで説明する動作)。
【0162】
ケースI(コードブックインデックスIが偶数の場合)
ブロック442では、yI(0)が式55に従って計算される。アドレスユニットA102はアドレス値をRAM A104に提供し、RAM A104はこれに応じてh(0)をマルチプレクサ108を介して、AREG130に提供する。同一クロックサイクルで、アドレスユニットE112はアドレス値をROM E114に提供し、ROM E114はこれに応じてCI(0)をマルチプレクサ116を介してBREG134に提供する。次のサイクルの間、AREG130はh(0)を、及びBREG134はCI(0)を乗算器132に提供し、ここで2つの値は乗算され、その積はマルチプレクサ138を介して、及びディセーブルされたバレルシフター140を介して加算器146の第1入力に供給される。加算器146の第2入力にはマルチプレクサ154、ディセーブルされたインバータ要素152及びバレルシフター152を介して0が提供される。加算器146の出力はC0REG164にマルチプレクサ148を介して提供される。同一クロックサイクルの間、yI-1(0)及びh(1)がRAM B122及びRAM A104からフェッチされ、DREG156及びAREG130に、マルチプレクサ158及び100を各々介して提供される。
【0163】
ブロック444では、合成されたスピーチサンプルインデックスnはインクリメントされる。制御ブロック446では、合成スピーチサンプルインデックスnが20より小さい場合、フローはブロック448に進む。
【0164】
ブロック448では、新たなyI(n)が各クロックサイクルで式56に従って計算される。yI-1(n−1)及びh(n)の値を初期化するためにブロック448の最初の反復に先立って、適当な設定がブロック442内で前述したように行われる。yI(19)の最終値を格納するために、ブロック448の最後の反復の次に、適当なクリーンアップも必要である。
【0165】
ブロック448の最初の反復において、ブロック442で計算されたyI(0)は、C0REG164内に存在する。C0REG164はyI(0)を、マルチプレクサ168及び180を介して、RAMC182に提供し、アドレスユニットC186からRAMC182に提供されるアドレス値により格納する。
【0166】
ブロック448では、次の動作が単一クロックサイクルで実行される。yI-1(n)値はRAMB122により、アドレスユニットB120により提供されるアドレスに従い、マルチプレクサ118及び158を介して、DREG156に提供される。インパルス応答値h(n+1)はRAM A104により、アドレスユニットA102により提供されるアドレスに従って、マルチプレクサ108を介して、AREG130に提供される。DREGI56はyI-1(n−1)を、マルチプレクサ154、ディセーブルされたインバータ要素152、及びバレルシフター150を介して、加算器146の第1入力に提供する。AREG130はh(n)を、及びBREG134はCI(n)を乗算器132に提供し、ここで2つの値は乗算され、その積はマルチプレクサ138を介して乗算器132により、ディセーブルされたバレルシフター140を介して、加算器146の第2入力に提供される。加算器146の出力はマルチプレクサ148を介してC0REG164に提供される。以前の反復で計算されたC0REG164の値は、マルチプレクサ168及び180を介してRAMC182に格納され、最小化プロセッサ412に提供される。
【0167】
制御ブロック446では、合成されたスピーチサンプルインデックスnが20に等しい場合、最後の反復で計算されたyI(19)は、フローがブロック454に進む前に、マルチプレクサ168及び124を介して、循環バッファ内のRAM B122に格納され、最小化プロセッサ412に提供される。ケースIの終わり。
【0168】
ケースII(コードブックインデックスIが奇数の場合)
ブロック434において、yI(0)が式55に従って計算される。アドレスユニットA102はRAMA104にアドレス値を提供し、RAMA104はこれに応じてh(0)をマルチプレクサ108を介してAREG130に提供する。同一クロックサイクルで、アドレスユニットE112はアドレス値をROM E114に提供し、ROM E114はこれに応じてCI(0)をマルチプレクサ116を介してBREG134に提供する。次のサイクルの間、AREG130はh(0)を、及びBREG134はCI(0)を乗算器132に提供し、ここで2つの値は乗算され、その積は乗算器138を介して、ディセーブルされたバレルシフター140を介して加算器146の第1入力に提供される。加算器146の第2入力には、マルチプレクサ154、ディセーブルされたインバータ要素152、及びバレルシフター152を介して0が提供される。加算器146の出力はC0REG164にマルチプレクサ148を介して提供される。同一クロックサイクルの間、yI-1(0)及びh(1)は、RAM C182及びRAMA104からフェッチされ、DREG156及びAREG130に、マルチプレクサ158及び100を各々介して提供される。
【0169】
ブロック436では、合成されたスピーチサンプルインデックスnがインクリメントされる。制御ブロック438では、合成されたスピーチサンプルインデックスnが20より小さい場合、フローはブロック440に進む。
【0170】
ブロック440では、新たなyI(n)値が各クロックサイクルで、式56に従って計算される。yI-1(n)及びh(n)の値を初期化するために、ブロック440の最初の反復に先立って必要な適当な設定が、前述したようにブロック434で行われる。yI(19)の最終値を格納するために、ブロック440の最後の反復の次に、適当なクリーンアップも必要である。
【0171】
ブロック440の最初の反復において、ブロック434で計算されたyI(0)はC0REG164内に存在する。C0REG164はyI(0)を、マルチプレクサ168及び180を介して、RAM B122に、アドレスユニットB120からのRAM Bのアドレス値を用いて格納する。yI(0)はRAM B122に提供されるのと同時に、最小化プロセッサ412に提供する。
【0172】
ブロック440では、次に示す動作が単一クロックサイクルで実行される。yI-1(n)値はRAMC182により、アドレスユニットC184により提供されるアドレスに従って、マルチプレクサ158を介してDREG156に提供される。インパルス応答h(n+1)はRAM A104により、アドレスユニットA102により提供されるアドレスに従って、マルチプレクサ108を介してAREG130に提供される。DREG156はyI-1(n−1)を、マルチプレクサ154、ディセーブルされたインバータ要素152、及びバレルシフター150を介して加算器146の第1入力に提供する。
【0173】
AREG130はh(n)を、及びBREG134はCI(n)を乗算器132に提供し、ここで2つの値は乗算され、その積は乗算器132により、マルチプレクサ138を介し、バレルシフター140を介して、加算器146の第2入力に提供される。加算器146の出力はマルチプレクサ148を介してC0REG164に提供される。以前の反復で計算されたC0REG164の値は、マルチプレクサ168及び124を介してRAMB122に格納され、最小化プロセッサ412に提供される。
【0174】
ブロック436では、合成されたスピーチサンプルインデックスnはインクリメントされる。制御ブロック438では、合成されたスピーチサンプルインデックスnが20に等しい場合、フローがブロック454に進む前に、最終反復で計算されたyI(19)はマルチプレクサ168及び124を介して、RAM B122に提供され、RAM B122の循環バッファ内に格納され、最小化プロセッサ412に提供される。ケースIIの終わり。
【0175】
ブロック454の最初の反復の前に、yI-1(19)がRAM B122内の循環バッファからフェッチされ、BREG134にロードされる。yI-1(20)がRAMB122内の循環バッファからフェッチされ、BREG134にロードされた後、yI-1(19)はBREG134からC0REG164へ移動される。
【0176】
ブロック454では、新たなyI(n)が、各クロックサイクルで式57に従って計算される。次の動作が単一クロックサイクルの間に実行される。yI-1(n−2)がBREG134によりC0REG164に提供される。yI-1(n−3)はRAM B122内の循環バッファからフェッチされ、BREG134にロードされる。C0REG164に存在するyI-1(n−1)は最小化プロセッサ412に提供される。ブロック454の最終反復の次に、yI-1(LC−2)がRAM B122内の循環バッファから削除される。各コードブックインデックスにおいて、RAMB122内の循環バッファに対して要素を加え及び要素を減算することにより、循環バッファのサイズはLC−19に維持される。RAMB122内の循環バッファの導入は、アドレスユニットB120内の専用アドレスレジスタを介して行われ、このレジスタはシーケンシャルメモリが自動的に循環形式でアドレスできるように、丸め込み点を示す。
【0177】
ブロック450では、合成されたスピーチサンプルインデックスnがインクリメントされる。制御ブロック452では、合成されたスピーチサンプルインデックスnがLCより小さい場合、フローは再びブロック454に戻る。合成されたスピーチサンプルインデックスnがLCに等しい場合、全てのyI(n)値が現在のコードブックインデックス値Iについて計算されており、フローはブロック426に戻る。
【0178】
合成されたスピーチサンプルyI(n)の計算に先立ち、知覚的に重み付けされたスピーチサンプルxC(n)の長さLCのシーケンスは、最小化プロセッサ412に提供される。前述したように、コードブックベクトルインデックス値I=0からI=127までの合成されたスピーチサンプルyI(n)の長さLCのシーケンスは、初期及び再帰的コンボリューション計算の間に、最小化プロセッサ412に提供される。合成されたスピーチサンプルは最小化プロセッサ412に次々に提供される。最小化プロセッ412は合成された各スピーチサンプルシーケンスyI(n)の自動相関、及び合成された各スピーチサンプルシーケンスyI(n)と知覚的に重み付けされたスピーチサンプルxC(n)のシーケンスとの間の交差相関を計算する。これらの相関値から、最小化プロセッサ412は、合成された各スピーチサンプルシーケンスyI(n)と知覚的に重み付けされたスピーチサンプルxC(n)のシーケンスとの間のMSE相対測定値を計算する。
【0179】
各コードブックベクトルIについて、MSEは合成されたスピーチサンプルシーケンスのコードブックゲインGの有り得る全ての値に関して計算される。最小化プロセッサ412は、全てのコードブックベクトルインデックス値Iに対する最小MSE、及び有り得るコードゲイン値Gを、現在のコードブックベクトルインデックスIと現在のコードブックゲインGを介して、最小MSEの値を維持することにより計算する。
【0180】
最小MSEに対応するコードブックベクトルインデックス概算I^及びコードブックゲインインデックス概算G^も、最小化プロセッサ412により保持される。新MSE値は最小化プロセッサ412内に維持されているMSE最小値と各々比較される。新MSEが最小MSEより小さい場合、最小MSEは新MSE値に置き代わり、コードブックベクトルインデックス概算I^及びコードブックゲインインデックス概算G^は更新され、新たな最小MSEを反映する。
【0181】
最小化プロセッサ412に保持されている最小MSEと、対応するコードブックベクトルインデックス概算I^及びコードブックゲイン概算インデックスG^は、各コードブックサブフレームで、そのコードブックサブフレームの間に計算された第1のMSE値を用いて初期化される。全てのコードブックベクトルインデックスI及び全てのコードブックゲイン値Gが検討された後、コードブックベックベクトルインデックス概算I^及びコードブックゲインイン概算インデックスG^は各々、現在のコードブックサブフレームに対する最適なコードブックベクトルインデックス及び最適なコードブックゲインインデックスである。
【0182】
最小化プロセッサ412は最適なコードブックベクトルインデックスI^及び最適なコードブックゲインインデックスG^を、入力ポート12を介してDSPコア4に提供する。最適なコードブックベクトルインデックスI^及び最適なコードブックゲインインデックスG^は、知覚的に重み付けされたスピーチサンプルxC(n)と、重み付けされた合成スピーチサンプルyI(n)の間の最小MSEを生じるものである。MSEは次式59〜61によって示されるコードブックインデックスIと、コードブックゲインGの関数である。
【数16】
【0183】
ExCxCは知覚的に重み付けされたスピーチサンプルxC(n)の自動相関である。ExCyIは知覚的に重み付けされたスピーチサンプルxC(n)と、重み付けされた合成スピーチサンプルyI(n)の間の自動相関である。EyIyIは知覚的に重み付けされた合成スピーチサンプルyI(n)の自動相関である。
【0184】
知覚的に重み付けされたスピーチサンプルxC(n)の自動相関ExCxCは、コードブックゲインGの関数ではない。ExCxCは各コードブックサブフレームの間、一定値であるから、最適コードブックベクトルインデックス及び最適コードブックゲインの選択に影響することはない。コードブックベクトルインデックスI及びコードブックゲインGに対する式59〜61の最小化は、次の式62の最小化処理と等価である。
【0185】
MSE(I,G)=-2GExcy1+G2Ey1y1 (62)
最小化プロセッサ412は、重み付けされた合成スピーチサンプルシーケンスyI(n)の自動相関EyIyI、及び知覚的に重み付けされたスピーチサンプルシーケンスxC(n)と、重み付けされた合成スピーチサンプルシーケンスyI(n)の間の自動相関ExCyIを計算する。各相関対(ExCyI,EyIyI)に対して、最小化プロセッサ412は、前述の式62に従って、コードブックゲインGのセットについて、相対MSEを計算する。相関ExCyI及びEyIyIの計算は、最小化プロセッサ412内で同時に行われる。相対MSE値が計算され、MSE最小化に関する決定がコードブックベクトルインデックスIについて行われる一方で、相関値はコードブックベクトルインデックスI+1について計算される。
【0186】
図6a及び6bは最小化プロセッサ412の一実施例を示す。知覚的に重み付けされたスピーチサンプルxC(n)は、DSPコア4により、最小化プロセッサ412に提供される。コードブックゲイン値の2つのセットはDSPコア4により最小化プロセッサ412に提供される。1つのセットはプラスのコードブックゲイン値Gのためのもので、第2のセットはマイナスのコードブックゲイン値−Gのためのものである。最大定格速度及び1/2定格において、スケールされたコードブックゲイン値−2G(+4.0dBステップで、G=−4.0dB〜G=+8.0dB)がDSPコア4により、マルチプレクサ260を介して、ラッチ292、288、284及び280の格納部に各々提供される。
【0187】
1/4定格及び1/8では、スケールされたコードブックゲイン値−2G(+2.0dBステップで、G=−4.0dB〜G=+2.0dB)がDSPコア4により、マルチプレクサ260を介して、ラッチ292、288、284及び280の格納部に各々提供される。対応するスケールされたコードブックゲイン値G2は、マルチプレクサ260を介して、ラッチ290、286、282及び278の格納部に各々提供される。最大定格速度及び1/2定格において、スケールされたコードブックゲイン値2G(+4.0dBステップで、G=−4.0dB〜G=+8.0dB)がマルチプレクサ260を介して、ラッチ276、272、268及び264の格納部に各々提供される。1/4定格及び1/8定格では、スケールされたコードブックゲイン値2G(+2.0dBステップで、G=−4.0dB〜G=+2.0dB)がマルチプレクサ260を介して、ラッチ276、272、268及び264の格納部に各々提供される。
【0188】
対応するスケールされたコードブックゲイン値G2は、マルチプレクサ260を介して、ラッチ274、270、266及び262の格納部に各々提供される。マルチプレクサ260は値をラッチ262に直接提供する。ラッチ262はラッチ264に値を直接提供する。ラッチ276はラッチ278に値をマルチプレクサ249を介して提供する。ラッチ290はラッチ292に値を直接提供する(以下同様)。ラッチ262〜292のシフト値及びマルチプレクサ294により、マルチプレクサ260を介して循環バッファ259内の全てのラッチに値を提供できる。
【0189】
コードブックサーチにおいて、2つの循環バッファが循環バッファ259内に提供される。知覚的に重み付けされたスピーチサンプルxC(n)、及びコードブックゲイン値の格納の次に、重み付けされた合成スピーチサンプルyI(n)のシーケンスがラッチ210に提供される。重み付けされた合成スピーチサンプルyI(n)はラッチ210により、乗算器216の2つの入力に提供され、乗算器216は重み付けされた合成スピーチサンプルの二乗(yI(n))2を生成する。
【0190】
ラッチ210も重み付けされた合成スピーチサンプルyI(n)を、乗算器218の第1入力に提供する。RAM X212は知覚的に重み付けされたスピーチサンプルxC(n)を、ラッチ214を介して乗算器218の第2入力に提供する。乗算器218は積xC(n)yI(n)を計算する。新たな二乗(yI(n))2及び新たな積xC(n)yI(n)は、乗算器216及び218により、各サイクルで各々計算される。サンプルインデックスnは0からLC−1まで、各コードブックベクトルインデックスIについて変化する。
【0191】
重み付けされた合成スピーチサンプルの二乗(yI(n))2はアキュムレータ221に提供される。積xC(n)yI(n)はアキュムレータ231に提供される。アキュムレータ221は、各コードブックベクトルインデックスIに対するLC二乗の合計を計算する。アキュムレータ231は各コードブックベクトルインデックスIに対するLC積の合計を計算する。
【0192】
新たな各コードブックベクトルインデックスの前に、ラッチ226にはマルチプレクサ224を介して0が提供される。これでアキュムレータ221は、現在のコードブックベクトルインデックスIに対する自動相関Eylylを計算する準備が整う。アキュムレータ221では、二乗(yI(n))2が加算器222の第1入力に提供される。不足している合計はラッチ226により加算器222の第2入力に提供される。新たに計算された不足している合計は加算器222により、マルチプレクサ224を介してラッチ226に格納される。コードブックベクトルインデックスIに関する全てのLCに対する累計の後、自動相関Eylylはラッチ228に格納される。
【0193】
新たな各コードブックベクトルの前に、ラッチ236には、マルチプレクサ234を介して0が提供される。これでアキュムレータ231は現在のコードブックベクトルインデックスIに対する交差相関ExCylを計算する準備が整う。アキュムレータ231では、積xC(n)yI(n)が加算器232の第1入力に提供される。不足している合計はラッチ236により加算器232の第2入力に提供される。新たに計算された不足合計は、加算器232により、マルチプレクサ234を介してラッチ236に格納される。コードブックベクトルインデックスIに対する全てのLC値について累計した後、交差相関ExCylはラッチ238に格納される。
【0194】
式62により示されるMSEは、以下に説明する2サイクル処理により計算される。
【0195】
2サイクルの第1サイクルにおいて、ラッチ238は知覚的に重み付けされたスピーチサンプルと重み付けされた合成スピーチサンプル間の交差相関ExCylを、マルチプレクサ230を介して乗算器240の第1入力に提供する。制御要素220はラッチ238により提供されたExCylをモニタする。ExCylがマイナスではない場合、ラッチ292はスケールされたコードブックゲイン値−2Gを、マルチプレクサ296を介して乗算器240の第2入力に提供する。その積−2GExCylは乗算器240により加算器242の第1入力に提供される。ExCylがマイナスの場合、ラッチ276はスケールされたコードブックゲイン値2Gを、マルチプレクサ296を介して乗算器240の第2入力に提供する。その積2GExCylは乗算器240により、加算器242の第1入力に提供される。
【0196】
加算器242の第2入力にはマルチプレクサ246を介して0が提供される。加算器242の出力はラッチ244に格納される。ExCylの符号は制御要素220に格納される。ExCylの1及び0の符号は、ExCylのマイナス及び非マイナスに各々対応する。ラッチ262〜276内の値は、ラッチ276の出力をラッチ262にマルチプレクサ260を介して提供することにより回転する。この回転の後、ラッチ262、264、266、268、270、272、274及び276は、以前、ラッチ276、262、264、266、268、270、272及び274に各々含まれていた値を含むことになる。
【0197】
ラッチ278〜292内の値は、ラッチ292の出力をラッチ278にマルチプレクサ294を介して提供することにより回転する。この回転の後、ラッチ278、280、282、284、286、288、290及び292は、以前、ラッチ292、278、280、282、284、286、288及び290に各々含まれていた値を含むことになる。1つの循環バッファはラッチ262〜276及びマルチプレクサ260を含む。第2循環バッファはラッチ278〜292及びマルチプレクサ294を含む。循環バッファ259内の2つの循環バッファの第1のバッファの値を回転することにより、ラッチ292は第1及び第2サイクルに−2G及びG2を提供する。
【0198】
相関及び交差相関値の各対について、1つのコードブックゲイン対のセットのみが循環バッファ259により提供される。コードブックゲイン対のセットが、ExCylのマイナスの値について、ラッチ262〜276及びマルチプレクサ260からなる循環バッファにより提供される。コードブックゲイン対のセットが、ExCylの非マイナスの値について、ラッチ278〜292及びマルチプレクサ260からなる循環バッファにより提供される。
【0199】
2サイクルの第2サイクルでは、ラッチ228はEylylを、マルチプレクサ230を介して乗算器240の第1入力に提供する。マルチプレクサ296を介して、ラッチ276及び292はコードブックゲイン値G2を、ExCylのマイナス及び非マイナスの値に対応して、乗算器240の第2入力に各々提供する。その積G2Eylylは乗算器240により、加算器242の第1入力に提供される。加算器242の第2入力には、マルチプレクサ246を介してラッチ244の出力±2GExCylが提供される。加算器242は±2GExCyl+G2Eylylをラッチ244に格納する。循環バッファ259のラッチ262〜292の値は前述したように回転される。
【0200】
前述の2サイクル処理は、各コードブックインデックスIに対するコードブックゲイン値の4つの全ての対(±2G,G2)について繰り返される。現在のMSE値±2GExCyl+G2Eylylの計算に続く2サイクルの間、新たなMSE値が±2G及びG2値の次の対を用いて計算される。ラッチ244が新たなMSE値で更新される前に、現在のMSE値は、ラッチ250に格納されている現在のコードブックサブフレームに対する最小MSEと比較される。現在のMSE値±2GExCyl+G2Eylylは、ラッチ244により減算器248のプラス入力に提供される。
【0201】
ラッチ250は現在の最小MSE値を減算器248のマイナス入力に提供する。制御要素220は減算器28から出力される結果的な差をモニタする。この差がマイナスの場合、現在のMSE値は現在のコードブックサブフレームに対する新たな最小MSEであり、ラッチ250に格納され、それに対応するコードブックベクトルインデックス概算I^及びコードブックゲイン概算インデックスG^は制御要素220内で更新される。この差が非マイナスの場合、現在のMSE値は無視される。
【0202】
各コードブックサブフレームの前に、DSPコア4は最小化プロセッサ412にコマンドを発送し、制御要素220に新コードブックサブフレームが続くことを知らせる。このコマンドを受信すると、現在のコードブックベクトルインデックス及び現在のコードブックゲインインデックスは制御要素220において0に設定される。重み付けされた合成スピーチサンプルの新たな各シーケンスが最小化プロセッサ412に提供される前に、DSPコア4は最小化プロセッサ412にコマンドを発送し、制御要素220に重み付けされた合成スピーチサンプルの新たな各シーケンスが続くことを知られる。
【0203】
このコマンドを受信すると、制御要素220は現在のコードブックベクトルインデックス及び現在のコードブックゲインインデックスを1だけインクリメントし、これは1のコードブックベクトルインデックスのインクリメント及び速度に応じて2dB又は4dBのコードブックゲインのインクリメントに対応する。重み付けされた合成スピーチサンプルの第1シーケンスが最小化プロセッサ412に提供される間、現在のコードブックベクトルインデックス及び現在のコードブックゲインインデックスは1に等しく、これは0のコードブックインデックスベクトル及び速度に応じて−8dB又は−4dBのコードブックゲインのインクリメントに対応する。
【0204】
各コードブックサブフレームの間、第1MSE値はラッチ250に格納され、対応するコードブックベクトルインデックス概算I^及びコードブックゲイン概算インデックスG^は制御要素220内で更新される。これは、各コードブックサブフレームで最小MSEを初期化するために行われる。最小MSE概算に対応するコードブックベクトルインデックス及びコードブックゲインインデックスは、制御要素220によりDSPコア4に、最小MSEに対応する交差相関ExCylの符号と共に提供される。DSPコア4はExCylに関する1を受信すると、最適コードブックゲインを−Gに設定する。DSPコア4は制御要素220により提供されるコードブックベクトルインデックス概算及びコードブックゲイン概算インデックスを使用して、最適コードブックベクトル及び最適コードブックゲインを決定する。
【0205】
最大定格速度及び1/2定格で、最適コードブックゲインGは、コードブックゲインインデックスG^=1〜G^=4の各々について、−4dB、0dB、+4dB及び+8dBである。1/4定格及び1/8定格で、最適コードブックゲインGは、コードブックゲインインデクスG^=1〜G^=4の各々について、−4dB、−2dB、0dB及び+2dBである。
【0206】
コードブックサーチにおいて、式62のMSE関数MSE(I,G)の特性により、コンピュータ処理を節約できる。現在のコードブックベクトルに対する他のMSE計算は、残りのMSE値が(現在のコードブックベクトルについての計算が行われていても)ラッチ250内に格納された現在の最小MSEより少ないMSE値を生じることはないと判断された場合、中止できる。
【0207】
本実施例では、コードブックサーチでのコンピュータ計算を節約するために3つの技術が、最小化プロセッサ412において適用される。MSE関数MSE(I,G)はG内で二次方程式である。1つの二次方程式が各コードブックベクトルインデックスIについて計算される。これら全ての二次方程式は原点G=0及びMSE(I,G)=0を通る。
【0208】
第1のコンピュータ処理の節約は、ExCylの符号に応じて、プラス又はマイナスのコードブックゲイン値の一方をサーチすることを含む。ExCylのマイナスの値及びマイナスのゲイン値は、式62の項−2GExCylに対してマイナスの値を生じる。ExCylのプラスの値及びプラスのゲイン値も、式62の項−2GExCylに対してマイナスの値を生じる。なぜなら、式62の項G2Eylylは常にプラスで、項−2GExCylのマイナスの値はMSEを最小化する傾向があるからである。コードブックゲイン対の2つのセットは循環バッファ259に提供され、1つはプラスのコードブックゲイン値で、第2のものはマイナスコードブックゲイン値である。このようにして、ゲイン値の4つの対のみが、各コードブックベクトルインデックスIに対して8つのゲイン対の代わりに使用される。
【0209】
第2のコンピュータ処理節約方法は、MSE関数の二次方程式的特徴に基づいて、現在のコードブックベクトルのコードブックサーチ処理での他のMSE値の計算を中止することを含む。MSE関数MSE(I,G)は、単調に増加するコードブックゲイン値について計算される。プラスのMSE値が現在のコードブックベクトルについて計算されたとき、現在のコードブックベクトルに対する残り全てのMSE計算は、対応するMSE値が現在のMSE値より大きいとして中止される。
【0210】
第3のコンピュータ処理節約方法は、MSE関数の二次方程式的特徴に基づいて、現在のコードブックインデックスベクトルのコードブックサーチ処理での他のMSE値の計算を中止することである。MSE関数MSE(I,G)は、単調に増加するコードブックゲイン値について計算される。MSE値が、新たな最小MSEではないと判断された現在のコードブックベクトル内で計算されるとき、及びMSE値が、新たな最小MSEであると既に判断された現在のコードブックベクトル内で計算されたとき、現在のコードブックベクトルでの残り全てのMSE計算は、残りのMSE値は新たなMSEより小さくなくことはないとして中止される。以上3つのコンピュータ処理節約方法により、最小化プロセッサ412内の電力消費を著しく削減できる。
【0211】
ブロック84ではコードブック値が量子化される。ブロック86は全てのサブフレームが処理されたかチェックする。全てのコードブックサブフレームがまだ処理されていない場合、フローはブロック80に戻る。全てのコードブックサブフレームが処理さている場合、フローはブロック88に進む。ブロック88は全てのピッチサブフレームが処理されたかチェックする。全てのピッチサブフレームがまだ処理されていない場合、フローはブロック70に戻る。全てのピッチサブフレームが処理されている場合、フローはブロック90に進む。
【0212】
ブロック90では、エンコード結果が特定フォーマットでパックされる(packed)。最大定格速度(full rate)で、22バイトのデータがマイクロプロセッサ(図示されず)により読み込まれる。1/2定格(half rate)では、10バイトが読み込まれ、1/4では5バイト、1/8では2バイト読み込まれる。最大定格速度では11のパリティチェックビットが発生されてエラー校正が行われ、最大定格速度データの最上位18ビットの検出が行われる。
【0213】
送信器でのエンコーダは、フィルタメモリを更新するために、受信器でのデコーダの状態を保持しなければならない。このフィルタメモリはエンコーダにより、ピッチ及びコードブックサーチ処理に用いられる。本実施例では、エンコーダは全てのコードブックサブフレームの後に使用されるデコーダ形式を含んでいる。
【0214】
次に説明するデコーディング動作が、エンコーダの一部としてDSPコア4内で行われる。図11において、現在のコードブックサブフレームについて決定された最適コードブックベクトルインデックスI^及び最適コードブックゲインG^が、スケールされたコードブックベクトルCd(n)を発生するのに使用される。1/8の速度を除き、コードブック502には現在のコードブックサブフレームについて決定された最適コードブックインデックスI^が提供され、その結果、対応する励起ベクトルを乗算器504の第1入力に提供する。
【0215】
1/8の速度の場合、疑似ランダムシーケンスがCd(n)に対して疑似ランダムベクトル発生器500により発生され、このシーケンスは乗算器504の第1入力に提供される。現在のコードブックサブフレームについて決定された最適コードブックゲインG^は乗算器504の第2入力に提供される。このシーケンスは受信器のデコーダの場合と同一の疑似ランダム発生動作により発生される。
【0216】
スケールされたコードブックベクトルCd(n)はピッチ合成フィルタ506に提供され、このフィルタはフォルマント残余Pd(n)を発生する。ピッチ合成フィルタメモリは、発生したスピーチの最後のサンプルから得られる最終状態により初期化される。ピッチ合成フィルタ506は、現在のピッチサブフレームについて決定された最適ピッチラグL^及び最適ピッチゲインb^を使用する。1/8の速度に対して、最適ピッチゲインは0に設定される。ピッチ合成フィルタメモリの最終状態は、前述したように次のピッチサブフレームに対するスピーチを発生するため及び次のピッチサーチに使用するために、及びエンコーダでのデコーディング動作用に保持される。
【0217】
重み付けされたフォルマント合成フィルタ508は、フォルマント残余Pd(n)から出力Yd(n)を発生する。このフィルタは、発生されたスピーチの最後のサンプルから得られる最終状態により初期化される。現在のサブフレームについて補間されたLSP値から計算されたLPC係数は、このフィルタに対する係数として用いられる。このフィルタの最終状態は、次のコードブックサブフレームに対してスピーチを発生するために使用され、次のピッチ及びコードブックサーチで使用される。
【0218】
ブロック44及び50に示すデコーディング動作はDSPコア4で行われる。ASICはマイクロプロセッサ(図示されず)からマイクロプロセッサインターフェース42を介してパケットを特定フォーマットで受信する。DSPコア4はこのパケット内のデータをデコードし、スピーチサンプルを合成するためにそれを使用し、これらサンプルはPCMインターフェース2を介してコーデック(codec)(図示されず)に供給される。DSPコア4では、受信したパケットを開き、スピーチサンプルを合成するために必要なデータを得る。そのデータはエンコーディング速度、LSP周波数、及びその速度での対応するサブフレームに関するピッチとコードブックパラメータを含む。受信したパケットデータからのスピーチサンプルの合成は、図12に示すようにDSPコア4で行われる。
【0219】
図12において、現在のコードブックサブフレームに対応する最適コードブックベクトルインデックスI^及び最適コードブックゲインG^は、スケールされたコードブックベクトルCd(n)を発生するためにデコーダにより使用される。1/8の速度を除き、コードブック522には現在のコードブックサブフレームに対応する最適コードブックインデックスI^が提供され、その結果、対応する励起ベクトルを乗算器524の第1入力に提供する。
【0220】
1/8の速度の場合、疑似ランダムシーケンスがCd(n)に対して疑似ランダムベクトル発生器50により発生され、乗算器524の第1入力に提供される。このシーケンスは受信器でデコーダにより用いられるのと同一の疑似ランダム発生動作により発生する。現在のコードブックサブフレームに対応する最適コードブックゲイン値G^は乗算器524の第2入力に提供される。
【0221】
スケールされたコードブックベクトルCd(n)はピッチ合成フィルタ526に提供され、このフィルタはフォルマント残余Pd(n)を発生する。ピッチ合成フィルタメモリは、発生されたスピーチの最後のサンプルから得られる最後の状態により初期化される。ピッチ合成フィルタ526は、現在のピッチサブフレームに対応する最適ピッチラグL^及び最適ピッチゲインb^を使用する。1/8の速度に対して、最適ピッチゲインは0に設定される。
【0222】
このピッチ合成フィルタの最終状態は保存され、前述したように次のピッチサプフレームに対するスピーチを発生するときに使用される。重み付けされたフォルマント合成フィルタ528は、フォルマント残余Pd(n)から出力Yd(n)を発生する。このフィルタは、発生されたスピーチの最終サンプルから得られる最後の状態により初期化される。現在のサブフレームについて補間されたLSP値から計算されたLPC係数は、このフィルタ用の係数として使用される。フィルタの最終状態は保存され、次のコードブックサブフレームに対してスピーチを発生するときに使用される。
【0223】
デコードされたスピーチYd(n)は後フィルタ(post-filter)530に提供され、このフィルタは本実施例では、デコードされる現在のサプフレームに関するLPC係数に基づくロングターム後フィルタ(long term post-filter)530である。後フィルタ530は再構成されたスピーチサンプルYd(n)を濾波し、濾波されたスピーチをゲイン制御532に提供する。ゲイン制御532は出力スピーチsd(n)を制御し、自動ゲイン制御(AGC)を行う能力を持っている。
【0224】
以上、好適実施例の説明により、当業者は本発明を実施又は使用できるものである。当業者は本発明に様々の修正を施すことができ、ここで定義された基本原則は発明的工程を含まずに他の実施例にも適用できる。従って、本発明はこの明細書で説明された実施例に限定されず、ここで説明された原則及び新規な特徴を含む広範な範囲で適用できる。
【図面の簡単な説明】
【図1】図1は本発明装置のブロック図。
【図2】図2は本発明の動作を示す機能図。
【図3】図3は本発明のエンコード動作の一例を示すフローチャート。
【図4a】図4aは最大定格速度でのボコーダビット割付を示し、最大定格速度に使用されるコードブックサブフレーム及びピッチの数を示すチャート。
【図4b】図4bは1/2定格速度でのボコーダビット割付を示し、1/2定格速度に使用されるコードブックサブフレーム及びピッチの数を示すチャート。
【図4c】図4cは1/4定格速度でのボコーダビット割付を示し、1/4定格速度に使用されるコードブックサブフレーム及びピッチの数を示すチャート。
【図4d】図4dは1/8定格速度でのボコーダビット割付を示し、1/8定格速度に使用されるコードブックサブフレーム及びピッチの数を示すチャート。
【図5a】図5aは本発明のDSPコアの一実施例を示すブロック図。
【図5b】図5bは本発明のDSPコアの一実施例を示すブロック図。
【図5c】図5cは本発明のDSPコアの一実施例を示すブロック図。
【図5d】図5dは本発明のDSPコアの一実施例を示すブロック図。
【図6a】図6aは本発明の最小化プロセッサの一実施例を示すフロック図。
【図6b】図6bは本発明の最小化プロセッサの一実施例を示すフロック図。
【図7】図7は本発明の一実施例において実行されるピッチサーチ動作を示す図。
【図8】図8は本発明の一実施例において実行されるピッチサーチ動作を示すフローチャート。
【図9】図9は本発明の一実施例において実行されるコードブックサーチ動作を示す図。
【図10】図10は本発明の一実施例において実行されるコードブックサーチ動作を示すフローチャート。
【図11】図11は通信リンクの一端に設けられ、エンコーダのフイルタメモリを保持する機能のあるエンコーダのデコーダ部、及び通信リンクの他端に設けられるデコーダ部のブロック図であり、本発明の一実施例のボコーディング動作において同一である。
【図12】図12は本発明の一実施例のデコーダを示すブロック図。
Claims (15)
- 少なくとも1つのインパルス応答および少なくとも1つの残余について再帰的コンボリューション計算を実行し、前記再帰的コンボリューションの結果を提供するデジタル・シグナル・プロセッサ・コア(DSP)手段と、
前記再帰的コンボリューションの前記結果を受信しそして前記再帰的コンボリューションの前記結果に応じてピッチ又はコードブック値に関する最小化サーチを実行するための、前記デジタル・シグナル・プロセッサ・コア手段とは別個の最小化プロセッサ手段とを具備し、
前記最小化プロセッサ手段は、
最小化サーチに関する中止基準を決定する手段と、そして
平均二乗エラーが最小化された場合に最小化サーチを中止する手段と、
を含むことを特徴とするボコーダ用装置。 - 前記デジタル・シグナル・プロセッサ・コア手段は前記再帰的コンボリューションを合成スピーチサンプルの第1シーケンス及び前記合成スピーチサンプルの第2シーケンスに基づいて行い、前記デジタル・シグナル・プロセッサ・コア手段は、
前記再帰的計算を実行する計算手段と、
前記第1シーケンスを格納及び提供する第1ランダムアクセスメモリ手段と、
前記第2シーケンスを格納及び提供する第2ランダムアクセスメモリ手段と、
追加のシーケンシャルデータを格納及び提供する第3ランダムアクセスメモリ手段と、
を具備することを特徴とする請求項1記載の装置。 - データサンプルのシーケンスに基づいてブロック正規化を実行する手段を更に具備することを特徴とする請求項1記載の装置。
- 量子化された音響データのシーケンスを受信するための入力部を有し、対応する合成スピーチサンプルのシーケンスを生成する、デジタル・シグナル・プロセッサ・コア手段と、
前記デジタル・シグナル・プロセッサ・コア手段に接続される入力部を有し、該合成スピーチサンプルのシーケンスを受信するための最小化プロセッサと、
を具備し、
前記最小化プロセッサは、合成スピーチサンプルと前記量子化された音響データとの間の最小差を決定し、前記デジタル・シグナル・プロセッサ・コア手段がその生成機能を実行するとともに前記最小化プロセッサがその決定機能を実行し、前記最小差はシーケンス値について判断され、そしてこのシーケンス値にわたって平均二乗エラーが計算され、前記最小化プロセッサ手段は、
最小化サーチに関する中止基準を決定する手段と、そして
平均二乗エラーが最小化された場合に最小化サーチを中止する手段と、
を含むことを特徴とするボコーダ用装置。 - 第1音響データを入力する入力部、及び出力部を有する量子化された音響インターフェースを更に具備し、前記デジタル・シグナル・プロセッサ・コア手段の入力部は前記量子化された音響インターフェースの出力部に接続されることを特徴とする請求項4記載の装置。
- マイクロプロセッサデータを入力する入力部、及び出力部を有するマイクロプロセッサインターフェースを更に具備し、前記量子化された音響インターフェースは第2入力部を有し、この量子化された音響インターフェースの第2入力部は前記マイクロプロセッサインターフェース出力部に接続されることを特徴とする請求項5記載の装置。
- クロック信号を入力する入力部、及び出力部を有するクロック発生器を更に具備し、前記デジタル・シグナル・プロセッサ・コアは前記クロック発生器出力部に接続されることを特徴とする請求項4記載の装置。
- シーケンスにわたって最小平均二乗エラー(MSE)を決定するために、デジタル・シグナル・プロセッサ(DSP)コアからのスピーチ・サンプルの第1のシーケンスと、該デジタル・シグナル・プロセッサ・コアからの合成スピーチ・サンプルの第2のシーケンスを受信する最小化プロセッサであって、
該第2のシーケンスの自己相関を決定するためのロジック手段と、
該第1のシーケンスと該第2のシーケンスとの相互相関を決定するためのロジック手段と、
再帰的コンボリューションを実行する該デジタル・シグナル・プロセッサ・コアに平行して、該自己相関および相互相関に応答し、二乗平均エラーを計算して最小化サーチを行い、最小平均二乗エラーを決定するためのロジック手段とを具備し、
前記最小化プロセッサ手段は、
最小化サーチに関する中止基準を決定する手段と、そして
中止基準が満足された場合に最小化サーチを中止する手段とを含む、
ことを特徴とする、最小化プロセッサ。 - 前記デジタル・シグナル・プロセッサ・コアと組み合わされる、請求項8に記載の最小化プロセッサであって、該デジタル・シグナル・プロセッサ・コアは少なくとも1つのインパルス応答および少なくとも1つの残余を含む複数の値の再帰的コンボリューションを行い、該デジタル・シグナル・プロセッサ・コアは複数のランダム・アクセス・メモリ(RAMs)にアクセスし、該ランダム・アクセス・メモリのそれぞれは、該デジタル・シグナル・プロセッサ・コアによって処理されるように、該複数のランダム・アクセス・メモリから、それぞれ平行して、該複数の値をフェッチできるように、それぞれの値を格納する、ことを特徴とする、最小化プロセッサ。
- 請求項9に記載の最小化プロセッサであって、該複数のランダム・アクセス・メモリは、重み付けされた合成スピーチサンプルを表す第1の組の値を格納するための第1のランダム・アクセス・メモリと、フォルマント・フィルタのインバルス応答を表す第2の組の値を格納するための第2のランダム・アクセス・メモリと、フォルマント残余のシーケンスを表す第3の組の値を格納するための第3のランダム・アクセス・メモリと、を含むことを特徴とする最小化プロセッサ。
- 請求項10に記載の最小化プロセッサであって、デジタル化されたスピーチのサンプルを、除算すること無く正規化するためのシフトレジスタを含むブロック正規化回路をさらに具備していることを特徴とする、最小化プロセッサ。
- 移動電話機と組み合わされる、請求項8に記載の最小化プロセッサ。
- さらに移動電話システムと組み合わされる、請求項12に記載の最小化プロセッサ。
- 中止基準はさらなる最小化が不可能であることを示す、請求項8に記載の最小化プロセッサ。
- 中止基準は現在のMSEが最小値であることを示す、請求項14に記載の最小化プロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52193695A Division JP3432826B2 (ja) | 1994-02-16 | 1995-02-13 | ボコーダasic |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216198A JP2003216198A (ja) | 2003-07-30 |
JP4194851B2 true JP4194851B2 (ja) | 2008-12-10 |
Family
ID=22729345
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52193695A Expired - Lifetime JP3432826B2 (ja) | 1994-02-16 | 1995-02-13 | ボコーダasic |
JP2003006296A Expired - Lifetime JP4194851B2 (ja) | 1994-02-16 | 2003-01-14 | ボコーダasic |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52193695A Expired - Lifetime JP3432826B2 (ja) | 1994-02-16 | 1995-02-13 | ボコーダasic |
Country Status (23)
Country | Link |
---|---|
US (3) | US5784532A (ja) |
EP (2) | EP0695454B1 (ja) |
JP (2) | JP3432826B2 (ja) |
KR (1) | KR100334202B1 (ja) |
CN (2) | CN100397484C (ja) |
AT (2) | ATE172570T1 (ja) |
AU (1) | AU697822B2 (ja) |
BR (1) | BR9505650A (ja) |
CA (1) | CA2158660C (ja) |
DE (2) | DE69505469T2 (ja) |
DK (2) | DK0695454T3 (ja) |
ES (2) | ES2125602T3 (ja) |
FI (2) | FI120117B (ja) |
HK (1) | HK1009303A1 (ja) |
IL (1) | IL112650A (ja) |
MX (1) | MX9504358A (ja) |
MY (1) | MY112434A (ja) |
RU (1) | RU2183034C2 (ja) |
SG (2) | SG87819A1 (ja) |
SI (1) | SI0758123T1 (ja) |
TW (1) | TW326601B (ja) |
WO (1) | WO1995022819A1 (ja) |
ZA (1) | ZA95798B (ja) |
Families Citing this family (84)
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)
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 (ja) * | 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 |
-
1994
- 1994-02-16 US US08/197,417 patent/US5784532A/en not_active Expired - Lifetime
-
1995
- 1995-01-27 MY MYPI95000210A patent/MY112434A/en unknown
- 1995-02-01 ZA ZA95798A patent/ZA95798B/xx unknown
- 1995-02-13 RU RU95119581/09A patent/RU2183034C2/ru active
- 1995-02-13 EP EP95910296A patent/EP0695454B1/en not_active Expired - Lifetime
- 1995-02-13 WO PCT/US1995/002043 patent/WO1995022819A1/en active Application Filing
- 1995-02-13 BR BR9505650A patent/BR9505650A/pt not_active IP Right Cessation
- 1995-02-13 AT AT95910296T patent/ATE172570T1/de not_active IP Right Cessation
- 1995-02-13 CN CNB031540422A patent/CN100397484C/zh not_active Expired - Lifetime
- 1995-02-13 MX MX9504358A patent/MX9504358A/es unknown
- 1995-02-13 DK DK95910296T patent/DK0695454T3/da active
- 1995-02-13 ES ES95910296T patent/ES2125602T3/es not_active Expired - Lifetime
- 1995-02-13 EP EP96117242A patent/EP0758123B1/en not_active Expired - Lifetime
- 1995-02-13 KR KR1019950704554A patent/KR100334202B1/ko not_active IP Right Cessation
- 1995-02-13 SG SG9904148A patent/SG87819A1/en unknown
- 1995-02-13 CA CA002158660A patent/CA2158660C/en not_active Expired - Lifetime
- 1995-02-13 DE DE69505469T patent/DE69505469T2/de not_active Expired - Lifetime
- 1995-02-13 DE DE69509381T patent/DE69509381T2/de not_active Expired - Lifetime
- 1995-02-13 SI SI9530292T patent/SI0758123T1/xx not_active IP Right Cessation
- 1995-02-13 JP JP52193695A patent/JP3432826B2/ja not_active Expired - Lifetime
- 1995-02-13 DK DK96117242T patent/DK0758123T3/da active
- 1995-02-13 SG SG1996004575A patent/SG52441A1/en unknown
- 1995-02-13 ES ES96117242T patent/ES2130733T3/es not_active Expired - Lifetime
- 1995-02-13 AT AT96117242T patent/ATE179532T1/de not_active IP Right Cessation
- 1995-02-13 AU AU18465/95A patent/AU697822B2/en not_active Ceased
- 1995-02-13 CN CNB951900862A patent/CN1168072C/zh not_active Expired - Lifetime
- 1995-02-15 IL IL11265095A patent/IL112650A/en not_active IP Right Cessation
- 1995-03-06 TW TW084102110A patent/TW326601B/zh active
- 1995-10-16 FI FI954920A patent/FI120117B/fi not_active IP Right Cessation
- 1995-12-20 US US08/575,303 patent/US5727123A/en not_active Expired - Lifetime
-
1997
- 1997-06-11 US US08/873,000 patent/US5926786A/en not_active Expired - Lifetime
-
1998
- 1998-08-21 HK HK98110099A patent/HK1009303A1/xx not_active IP Right Cessation
-
2003
- 2003-01-14 JP JP2003006296A patent/JP4194851B2/ja not_active Expired - Lifetime
-
2007
- 2007-11-21 FI FI20070887A patent/FI20070887L/fi not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4194851B2 (ja) | ボコーダasic | |
EP0673018B1 (en) | Linear prediction coefficient generation during frame erasure or packet loss | |
EP0673017B1 (en) | Excitation signal synthesis during frame erasure or packet loss | |
EP0503684A2 (en) | Vector adaptive coding method for speech and audio | |
RU2138030C1 (ru) | Система передачи, терминальный блок, кодирующее устройство, декодирующее устройство и адаптивный фильтр | |
US6314393B1 (en) | Parallel/pipeline VLSI architecture for a low-delay CELP coder/decoder | |
CA2142391C (en) | Computational complexity reduction during frame erasure or packet loss | |
JPH04270398A (ja) | 音声符号化方式 | |
US5924063A (en) | Celp-type speech encoder having an improved long-term predictor | |
Chen et al. | A fixed-point 16 kb/s LD-CELP algorithm | |
CA2520127C (en) | Block normalization processor | |
Lee et al. | Cost-effective implementation of ITU-T G. 723.1 on a DSP chip | |
JP3073013B2 (ja) | サンプリングされた音声信号ベクトルのコーディングの方法 | |
AU725711B2 (en) | Block normalisation processor | |
Byun et al. | Implementation of 13 kbps QCELP vocoder ASIC | |
Suddle et al. | DSP implementation of low bit-rate CELP based speech orders | |
Lee | Implementation of linear predictive speech coding in fixed-point arithmetic | |
JP3092344B2 (ja) | 音声符号化装置 | |
Prasad et al. | Half-rate GSM vocoder implementation on a dual Mac digital signal processor | |
Olausson et al. | The ADSP-21535 Blackfin and Speech Coding | |
JPH0527800A (ja) | ベクトル量子化方式 | |
Makelainen | Comparison of three fixed point signal processors for waveform coding of speech | |
Grassi et al. | A Low-Complexity Variable Bit Rate Speech Coder for Portable Storage Applications | |
JPH05197399A (ja) | ベクトル量子化方式 | |
JPH04270397A (ja) | 音声符号化方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050315 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050615 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060606 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060830 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070731 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071019 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080730 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080811 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080826 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080924 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |