JP3432826B2 - ボコーダasic - Google Patents

ボコーダasic

Info

Publication number
JP3432826B2
JP3432826B2 JP52193695A JP52193695A JP3432826B2 JP 3432826 B2 JP3432826 B2 JP 3432826B2 JP 52193695 A JP52193695 A JP 52193695A JP 52193695 A JP52193695 A JP 52193695A JP 3432826 B2 JP3432826 B2 JP 3432826B2
Authority
JP
Japan
Prior art keywords
value
codebook
pitch
ram
block
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
Application number
JP52193695A
Other languages
English (en)
Other versions
JPH08509306A (ja
Inventor
マクドノウ、ジョン・ジー
チャン、チエンチュン
シン、ランディープ
サカマキ、チャールス・イー
ツァイ、ミン−チャン
カンタク、プラシャント
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22729345&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3432826(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JPH08509306A publication Critical patent/JPH08509306A/ja
Application granted granted Critical
Publication of JP3432826B2 publication Critical patent/JP3432826B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • G10L19/07Line spectrum pair [LSP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0011Long term prediction filters, i.e. pitch estimation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms

Landscapes

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

Description

【発明の詳細な説明】 1. 発明の技術分野 本発明は音声処理に関する。特に本発明は特定用途集
積回路(ASIC:application specific integrated circu
it)内に組み込まれるボコーダ(vocoder)用の改良さ
れた新しい方法及び装置に関する。
2. 従来の技術 デジタル技術による音声の送信は一般的な技術で、特
に長距離のデジタル無線電話は一般に普及している。音
声が単にサンプリング及びデジタル化により送信される
場合、従来のアナログ電話の品質を得るには約64キロビ
ット毎秒(kbps)のデータ速度が必要となる。しかし、
音声分析、並びに適当なコード化、送信及び受信器での
合成により、著しくデータ速度を減少することができ
る。送信機で適当な音声分析及びコード化を行い、受信
器で合成を行う装置はボコーダとして知られている。
デジタル細胞状電話標準(digital cellular telepho
ne stndards)及びシステムの最近の発展によりボコー
ダに関する要求が益々大きなものとなった。利用できる
送信帯域をより効率的に使用し、受信器で元の音声をよ
り忠実に再現する進歩したボコーディングアルゴリズム
に対する要望により、それら更に複雑なボコーディング
アルゴリズムを実行するのに必要な大きなコンピュータ
処理能力を有するプロセッサに関する要求が増大した。
ボコーダは音声における長い或いは短い期間の冗長性
の利用し、コンピュータの高度な数値処理を必要とす
る。これら動作には長い連続的コンボリューション(co
mvolutions)、マトリクス反転、長い連続的相関(corr
elations)等が含まれる。音声の送信における許容でき
ないないほどのコーディング(codeing)及びデコーデ
ィング(decoding)遅延を起こさずにリアルタイムでこ
れらの動作を行うには、強力なコンピュータ資源が必要
になる。
デジタル信号プロセッサ(DSPs)の出現は、ボコーダ
アルゴリズムをリアルタイムで導入することを可能にす
る上で重要な要因であった。
DSPsはボコーダアルゴリズムに一般的な演算動作を実
行する上で非常に効率的である。DSPsの利点はそれら計
算能力を約4千万インストラクション毎秒(40MIPS)以
上に増大した。
例示的用途に用いられるボコーディングアルゴリズム
は、可変速度のコード励起線形予測(CELP:code excite
d linear prediction)アルゴリズムであり、これは同
時継続中の出願(シリアル番号08/004,484、1993年1月
14日出願、発明の名称“可変速度ボコーダ”)に詳細さ
れており、この出願は本発明の譲渡人に譲渡されてい
る。前記出願の内容は本明細書に参考として含まれてい
る。
表Iは代表的DSPを用いたときの例示的ボコーディン
グアルゴリズムのエンコーディング部の単一の20ミリ秒
音声フレームの実行時間の概要を示す。例示的ボコーデ
ィングアルゴリズムのエンコーディング部はデコーディ
ング部より著しく処理量を必要とするので、エンコーデ
ィング処理のみを表Iは示している。表Iで参照される
DSPは40MHzのクロックで演算処理及び他の処理をその動
作に応じて各々1又はそれ以上のクロックサイクルで行
う。第1コラムは例示的ボコーディングアルゴリズムの
主動作を示す。第2コラムはその例示的DSPを使用して
ボコーダアルゴリズムの特定動作を各々実行するのに必
要なクロックサイクル数を示す。第3のコラムはその特
定動作に必要となる総合処理のパーセンテージを示す。
例示的ボコーディングアルゴリズムでは、例示的ボコー
ディングアルゴリズムをリアルタイムに処理するには、
全ての動作が20ミリ秒以内に行われることが必要であ
る。これはそのアルゴリズムを導入するために選ばれた
DSPが20ミリ秒フレーム内で所望処理を完了する速度又
はそれ以上のクロック速度で動作できることが必要とな
る。これにより表Iに示す代表的DSPでは、クロックの
数は800,000までに制限される。
表Iから分かるように、ピッチサーチ(pitch searc
h)及びコードブックサーチ(codebook search)動作
は、ボコーダアルゴリズムのエンコーディング部の中
で、処理時間の75%以上を消費する。計算負荷の大部分
はこれら2つのサーチアルゴリズム内にあるので、ボコ
ーディングを実行するよう設計された効率的ASICの主要
目的は、これら2つの動作を実行するのに必要なクロッ
クサイクルの数を減少することである。
本発明の方法及び装置は、これらサーチ動作を実行す
るのに必要な命令サイクルの数を大幅に減少する。本発
明は、ボコーディングアルゴリズムに特に重要なより効
率的動作を行うよう最適化された方法及び装置を提供す
る。本発明の方法及び装置の用途は、例示的ボコーディ
ング動作の実行、又は音声のエンコーディング又はデコ
ーディングに限られるものではない。この発明の方法及
び装置は、エコーキャンセラ及びチャンネルイコライザ
のようなデジタル信号処理アルゴリズムを用いるあらゆ
るシステムに適用できるものである。
発明の概要 本発明はボコーディングアルゴリズムを実行するため
の改良された新しい方法及び装置である。
本明細書で詳細に説明される本発明の一実施例は、前
述の同時継続中特許出願に詳細された可変速度CELPアル
ゴリズムを導入したASICである。本発明の特徴はあらゆ
る線形予測コーディング(LPC)アルゴリズムに同様に
適用できる。本発明はボコーダアルゴリズムを少ない消
費電力及び少ないクロックサイクル数で実行するために
最適化された構成を提供する。最終的目標は消費電力の
減少である。このアルゴリズムを実行するのに必要なク
ロック数の減少は又、低消費電力化に関して直接及び間
接的に作用する減少したクロック速度として関係してい
た。直接的な効果は、コンプリメンタリ金属・酸化物半
導体(CMOS)装置の電力消費とクロック速度との関係に
よるものである。間接的な効果はCMOS装置での電力消費
と電圧との二乗則の関係、及び少ないクロック速度で電
圧を下げる能力によるものである。ボコーダASICの効率
はクロックサイクル毎に実行される処理量である。効率
の向上により、そのアルゴリズムを実行するのに必要な
全クロックサイクル数が減少される。
ボコーディングアルゴリズムを実行する上で効率を上
昇するための第1の技術は、専用DSPを中心とした構成
である。DSPを中心とした一実施例は、3つのランダム
アクセスメモリ(RAM)要素を提供することにより、メ
モリ処理能力を増加する。3つのRAM要素の各々は、専
用メモリアドレス発生ユニットを持っている。このメモ
リの3分割方式により、オペランドを提供し、結果を提
供し、結果を格納する全ての動作を単一のサイクル内で
行い、再帰的コンボリューション(recursive comvolut
ion)のような動作を効率的に実行できる。オペランド
のフェッチ、結果の計算、及び結果の格納は1つの結果
に対する完全な再帰的コンボリューションが3サイクル
に渡って実行され、しかも新たな結果が各サイクルで得
られるように、パイプライン処理が行われる。3分割さ
れたメモリは、ボコーダアルゴリズムでの他の動作に要
求されるクロックサイクルも減少する。再帰的コンボリ
ューションの効率的実行はボコーダアルゴリズムにおけ
る最も重要な節約を提供する。
ボコーディングアルゴリズムの性能における効率を増
加する第2の技術は、DSPコア(core)に最小化プロセ
ッサと呼ばれる分離スレーブプロセッサを提供すること
である。最小化プロセッサは相関を実行し、二乗平均エ
ラー(MSEs)を計算し、そしてDSPコアにより供給され
たデータに関して最小MSEをサーチする。最小化プロセ
ッサは高度な相関計算及びDSPコアによる最小化タスク
を分担する。最小化プロセッサには、最小化プロセッサ
の動作をモニタし、ある条件下でMSE最小化タスクの決
定的動作を行える制御要素が提供される。この条件と
は、継続サーチが数学的制限により現在の最小MSE以下
のMSEを提供できないような場合である。MSE最小化タス
クを短縮する方法は最小化プロセッサの節電モードと呼
ばれる。
ボコーディングアルゴリズムの実行効率を向上するた
めの一実施例による第3の手段は、ブロック正規化(bl
ock normalization)を効率的に行う専用ハードウエア
を提供することである。ボコーディングアルゴリズムを
計算する上で、計算精度をできるだけ高いレベルに維持
することが必要になる。専用ハードウエアを提供するこ
とにより、ブロック正規化はボコーダアルゴリズムでの
他の動作と同時に実行でき、これによりボコーディング
アルゴリズムを実行するために要求される命令サイクル
の数を減少できる。
図面の簡単な説明 本発明の特徴、目的、効果は図面を参照して行われる
以下の詳細な説明により明確になる。全ての図面を通し
て、同一参照符号は同一の要素を示す。
図1は本発明装置のブロック図。
図2は本発明の動作を示す機能図。
図3は本発明のエンコード動作の一例を示すフローチ
ャート。
図4a〜dは様々な速度でのボコーダビット割付を示
し、各速度に使用されるコードブックサブフレーム及び
ピッチの数を示す1組のチャート。
図5a〜dは本発明のDSPコアの一実施例を示すブロッ
ク図。
図6a〜bは本発明の最小化プロセッサの一実施例を示
すブロック図。
図7は本発明の一実施例において実行されるピッチサ
ーチ動作を示す図。
図8は本発明の一実施例において実行されるピッチサ
ーチ動作を示すフローチャート。
図9は本発明の一実施例において実行されるコードブ
ックサーチ動作を示す図。
図10は本発明の一実施例において実行されるコードブ
ックサーチ動作を示すフローチャート。
図11は通信リンクの一端に設けられ、エンコーダのフ
ィルタメモリを保持する機能のあるエンコーダのデコー
ダ部、及び通信リンクの他端に設けられるデコーダ部の
ブロック図であり、本発明の一実施例のボコーディング
動作において同一である。
図12本発明の一実施例のデコーダを示すブロック図。
好適実施例の詳細な説明 図面を参照し、図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部分RA
M A、RAM B122及びRAM C182及びROM、ROM E114はALUに
データを提供する。RAM C182は、RAM A104及びRAM B122
が16ビットデータを送受信している間に、ALU143(図5
b)に対して32ビットデータを受信及び提供し、16ビッ
トオペランドによる計算、及び32ビットの格納を行うこ
とにより、効率が著しく向上している。
各分割部分は専用アドレス発生ユニットを持ってい
る。RAM A104はアドレスユニットA102を有し、RAM Bは
アドレスユニットB120及びRAM CはアドレスユニットC18
6、ROM E114はアドレスユニットE112を持っている。各
アドレスユニットはレジスタ、マルチプレクサ及び加算
器/減算器要素(図示されず)を具備している。1クロ
ックサイクルで、DSPコア4は3つのメモリ動作、3つ
のアドレス更新、演算動作(例えば乗算・加算・正規
化)、及び最小化プロセッサ(minimization processo
r)6へのデータ移動を行う。
命令ROM、ROM I194はDSPコア4の実行シーケンスを制
御する命令を格納する。ROM I194内に格納された命令の
シーケンスは、DSPコア4により実行される処理機能を
示す。ROM I194は専用アドレス発生ユニット、IPカウン
タ及びスタック194を持っている。
RAMアドレス発生ユニット即ちレジスタファイル、ア
ドレスユニットA102、アドレスユニットB120及びアドレ
スユニットC186は、対応するRAMの動作で用いられるア
ドレス及びデータを提供する。データは同一アドレスユ
ニット内で、レジスタファイル要素から他のレジスタフ
ァイル要素、即ち各RAMに移動できる。一実施例では、
アドレスユニットA102はマルチプレクサ106を介して、R
AM A104にデータを提供し、アドレスユニットB120はマ
ルチプレクサ124を介してRAM B122にデータを提供し、
アドレスユニットC186はマルチプレクサ180を介してRAM
C182にデータを提供する。
レジスタファイル要素は同一アドレスユニット内で、
即時データIMM(図5a〜dに示す)、他のレジスタファ
イル要素からのデータ、即ちRAMからのデータを受け入
れる。以後、全ての場合で、単語“即時データ(immedi
ate data)”の説明は、命令デコーダ192によって提供
されるデータに関係している。一実施例では、RAM A104
はマルチプレクサ100を介してデータをアドレスユニッ
トA102に提供し、RAM B122はマルチプレクサ118を介し
てデータをアドレスユニットB120に提供し、及びRAM C1
82はマルチプレクサ184を介してデータをアドレスユニ
ットC186に提供する。各アドレスユニットは自動ポスト
インクリメント(post−increment)及びポストデクリ
メント(post−decrement)を内部に設けた加算器/減
算器(図示されず)により提供する。一実施例におい
て、アドレスユニットB120は直接メモリアクセス(DM
A)用のポインタとして使用される自動モジュロアドレ
ッシング及び2つの専用レジスタファイル要素(図示さ
れず)を提供する。
アドレスユニットE112は係数検索用に最適化される。
これはマルチプレクサ110を介して即時データを受け入
れるベースレジスタ、及びマルチプレクサ110を介して
即時データ又はマルチプレクサ168及び110を介してアキ
ュムレータ(C0ERG164又はC1REG166)からデータを受け
入れるオフセットレジスタを具備する。このオフセット
レジスタは自動ポストインクリメント及びポストデクリ
メントを内部に設けられた加算器/減算器(図示され
ず)により提供する。
IPカウンタ及びスタック196はアドレッシングROM I19
4の機能を実行するためのアドレスポインタを含む。ア
ドレスシーケンシング(adress sequencing)は命令デ
コーダ192により制御される。アドレスデータはIPカウ
ンタ及びスタック195内を移動するか、又は即時データ
として受信される。
データはRAM A104、RAM B122又はRAM C182からALU143
内のレジスタへ移動できる。又、データはアキュムレー
タ(C0ERG164又はC1REG166)からRAM A104、RAM B122又
はRAM C182へ移動できる。データはOREG162からRAM C18
2へ移動できる。
RAM A104はマルチプレクサ106を介してアドレスユニ
ットA102からのデータを受け入れる。RAM A104は又、マ
ルチプレクサ168及び106を介してアキュムレータ(C0ER
G164又はC1REG166)からのデータを入力する。RAM B122
はマルチプレクサ124を介してアドレスユニットB120か
らのデータを入力する。RAM A104も又、マルチプレクサ
168及び124を介してアキュムレータ(C0ERG164又はC1RE
G166)からのデータを入力する。又RAM B122はDMA_INPU
T(図5a〜d参照)からのデータ、又はマルチプレクサ1
24を介してINREG128からのデータを入力する。RAM C182
はマルチプレクサ180を介してアドレスユニットC186か
らのデータを入力する。RAM C182は又、マルチプレクサ
168及び180を介してアキュムレータ(C0ERG164又はC1RE
G166)からのデータを入力する。RAM A104はアドレスユ
ニットA102へデータをマルチプレクサ100を介して提供
し、マルチプレクサ108を介してAREG130にデータを提供
する。RAM B122はデータを、マルチプレクサ118を介し
てアドレスユニットB120へ、RAM B_DOUT(図5a〜d参
照)へ、マルチプレクサ126を介してSREG136へ、マルチ
プレクサ116を介してBREG134へ、及びマルチプレクサ15
8を介してDREG156へ提供する。
AREG130は即時データ、ROM E114からのデータ、又はR
AM A104からマルチプレクサ108を介してデータを入力す
る。BREG134は又、マルチプレクサ168及び116を介して
アキュムレータ(C0ERG164又はC1REG166)からデータを
入力する。
C0ERG164及びC1REG166はマルチプレクサ148を介した
データ、RAM C182からのデータ、加算器146からのデー
タ、論理AND要素144、又は論理OR要素142からデータを
入力する。
シフトインデックスレジスタSREG136は即時データ又
はマルチプレクサ126を介してRAM B122からデータを入
力する。
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の補数演算に従って提
供することにより、自動的に飽和が行われる。
命令実行シーケンスは、フェッチ(fetch)、デコー
ド(decode)、実行である。アドレス値はIPカウンタ及
びスタック196により命令ROM I194に提供される。このR
OM I194はこれに応答して命令を命令デコーダ192に提供
する。命令デコーダ192はこの入力命令に応答して、命
令をデコードし、DSPコア4内の適当な要素に命令実行
のための制御信号を提供する。
専用ループカウンタ及びスタック190はIPカウンタ及
びスタック196に従って、小さいオーバーヘッド、ネス
トされた(nested)サブルーチンコール及びネストされ
たループを提供する。命令フェッチは単一命令ループの
間は禁止され、電力消費を削減している。ループカウン
タ及びスタック190はマルチプレクサ188を介して即時デ
ータを入力し、固定長ループを実行する。ループカウン
タ及びスタック190は又、アキュムレータ(C0ERG164、C
1REG166)からマルチプレクサ168及び188を介してデー
タを入力し、可変長ループを実行する。ROM I194内の25
6ワードスタティック命令キャッシュ(図示されず)
は、最も頻繁に行われるループ及びサブルーチンのため
の低電力命令フェッチを提供する。WAIT命令は命令フェ
ッチ及び命令デコードを禁止し、イベントを保留し電力
消費を削減する。このような例としては、DMA転送、PCM
インターフェース2からのタイミングストローブ、又は
外部イベントが含まれる。
外部データ及び制御は、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)により実行される。C0RE
G164又はC1REG166からのデータはマルチプレクサ168を
介して,命令デコーダ192からのOUTREG_EN(図5a〜d及
び図6a〜b参照)信号と共に提供される。アクティブOU
TREG_EN信号は最小化プロセッサ6に提供された有効CRE
Gデータが存在することを意味する。
図6a〜bの最小化プロセッサ6は、ピッチ及びコード
ブックサーチ(codebook searches)の複雑な計算を部
分的に支援する。最小化処理を行うために、最小化プロ
セッサ6は知覚的に重み付けされた(perceptually wei
ghted)入力スピーチサンプルのシーケンス、一組のゲ
イン値、及びDSPコア4からの合成されたスピーチサン
プルの一組を受信する。最小化プロセッサ6は合成され
たスピーチの自動相関(auto−correlation)及び合成
されたスピーチと知覚的に重み付けされた入力スピーチ
間の交差相関(cross−correlation)を計算する。これ
らの相関から、合成されたスピーチと入力スピーチ間の
平均二乗エラー(MSE)の相対測定値が、合成されたス
ピーチゲイン及びインデックスの関数として判断され
る。最小化プロセッサ6はインデックス及び最小MSEに
生じたゲインを報告する。電力を節約する特徴により、
最小化を続けるのが不可能な場合、MSE計算を中止す
る。最小化プロセッサ6はCREG、ポートI/O、及び専用D
SPコア命令を介してDSPコア4と通信する。
最小化プロセッサ6の動作は制御要素220により決定
する。制御要素220は現在のインデックス値の追跡を維
持するカウンタ、最適ピッチ又はコードブックサーチ結
果を保持するレジスタ、RAM X212をアクセスするための
アドレス発生回路、及び入出力回路を具備する。更に制
御要素220はマルチプレクサ224、234、230及び246上の
選択信号を制御する機能を有し、ラッチ210、21226、22
8、236、238、244及び250上のイネーブル(enables)を
制御する。又、制御要素220は最小化プロセッサ6の要
素内の様々な値をモニタし、所定のサーチ終了条件の下
でサーチを省略する電力節約モードを制御し、及び循環
バッファ(circular buffer)259内のゲイン値の循環を
制御する。
更に、制御要素220は入出力動作を行う機能を有す
る。制御要素220は入力ポート12を介して、最小値結果
(即ち最適ピッチラグ及びピッチゲイン又は最適コード
ブックインデックス及び各サーチで判断されたコードブ
ックゲイン)をDSPコア4に提供する機能を有する。OUT
REG_EN信号が制御要素220に提供され、この信号はラッ
チ210への入力データが有効で、アキュムレータ出力信
号CREG上に存在することを示す。制御要素220はそれに
応答してイネーブル信号を発生し、そのイネーブル信号
をラッチ210に提供し、そのデータを受信する。
OUTPORT_EN(図5a〜d、図6a〜b参照)及びPORT_ADD
(図5a〜d、図6a〜b参照)信号はDSPコア4から制御
要素220に提供される。PORT_ADD信号は最小化プロセッ
サ6にアドレスを提供する。最小化プロセッサ6は、PO
RT_ADD値が最小化プロセッサ6に関するデータを特定
し、OUTPORT_ENが有効PORT_ADD値を示すときにデータを
入力する。制御及びデータは以下のように最小化プロセ
ッサ6に提供される。
図1は本発明による構成の一実施例を示すブロック図
である。PCMインターフェース2はコーデック(codec)
(図示されず)に対して、パルスコード変調(PCM)ス
ピーチサンプルデータを入出力する。このデータは本実
施例では、μ法(μ−law)又はA法(A−low)でコン
パンドされた(companded)サンプルデータ又は線形サ
ンプルデータである。PCMインターフェース2はクロッ
ク発生器10からタイミング情報を受信し、データ及び制
御情報をマイクロプロセッサインターフェース8から受
信する。
PCMインターフェース2はDSPコア4に、コーデック
(図示されず)からエンコード用に受信したPCMスピー
チサンプルデータを提供する。PCMインターフェース2
はDSPコア4からPCMスピーチサンプルデータを受信し、
このデータはコーデック(図示されず)に提供される。
PCMデータはDSPコア4とPCMインターフェース2間でDMA
を介して転送される。PCMインターフェース2はタイミ
ング情報をクロック発生器10に、コーデック(図示され
ず)から受信したサンプルのタイミングに基づいて提供
する。
DSPコア4はデータ及び制御情報を副プロセッサ即ち
最小化プロセッサ6に提供する。DSPコア4は又、出力
ポート14にデータを提供し、入力ポート12からデータを
受信する。DSPコア4はクロック発生器10からタイミン
グ情報を受信する。DSPコア4は又、外部アドレス情報
を提供し、外部の命令及びデータを受信できる。
最小化プロセッサ6はクロック発生器10からタイミン
グ情報を受信し、DSPコア4からデータ及び制御を受信
する。最小化プロセッサ6は最小化処理の結果を入力ポ
ート12を介してDSPコア4に提供する。
クロック発生器10はタイミング情報を他の全ブロック
に提供する。クロック発生器10は外部クロック信号を受
信し、マイクロプロセッサインターフェース8及びPCM
インターフェース2からタイミング信号を受信する。
ジョイントアクショングループ(JTAG:Joint Test Ac
tion Group)インターフェース16はASICの機能をテスト
する能力がある。JTAGインターフェース16は外部データ
及び制御情報を受信し、外部データを提供する。
出力ポート14はDSPコア4からデータを受信し、この
データをマイクロプロセッサインターフェース8に提供
し、又、データを外部装置(図示されず)に提供でき
る。
入力ポート12はマイクロプロセッサインターフェース
8及び最小化プロセッサ6からデータを受信し、このデ
ータをDSPコア4に提供する。又、入力ポート12は外部
装置(図示されず)からデータを受信し、このデータを
マイクロプロセッサインターフェース8に提供できる。
マイクロプロセッサインターフェース8はマイクロプ
ロセッサ(図示されず)に対してデータ及び制御情報を
入出力できる。この情報は他のブロックに提供される。
本発明の一実施例では、ボコーダASICは可変速度CELP
アルゴリズムを行う。このアルゴリズムは同時継続中の
米国特許出願No.08/004,484(出願日:1993年1月14日、
発明の名称:“可変速度ボコーダ(Variable Rate Voco
der)”譲渡人は本発明と同一)に詳述されている。
図2はこのASIC内で実行される主要機能を示す。図2
において、エンコードされるサンプルはボコーダASICに
PCMインターフェース30を介してコーデック(図示され
ず)から提供される。そして、これらのサンプルはデコ
ンパンディング(decompanding)要素32に提供される。
この要素32はμ法又はA法のサンプルを線形サンプルに
変換する。線形フォーマットで提供されたサンプルはデ
コンパンディング要素32を介して無変更で送られる。線
形サンプルは送信音響処理要素34に提供される。この処
理要素34は、音声差動スイッチ(VOX)36、音響イコラ
イザ要素38、QCELPエンコーディング要素40、及びデュ
アルトーンマルチ周波数(DTMF:dual tone multi−freq
uency)検出要素41を具備する。そして、送信音響処理
要素34はマイクロプロセッサインターフェース42を介し
てエンコードされたスピーチパケット(speech packet
s)をASIC外部のマイクロプロセッサ(図示されず)に
提供する。
エンコードされたスピーチパケットはマイクロプロセ
ッサ(図示されず)によりマイクロプロセッサインター
フェース42を介して受信音響処理要素44に提供され、こ
こでそれらはスピーチサンプルにデコードされる。受信
音響処理要素44はQCELPデコーディング要素46、音響イ
コライザ48、及びDTMF発生要素47を具備する。デコード
されたサンプルはコンパンディング要素50に提供され、
このコンパンディング要素50は線形サンプルをμ法又は
A法フォーマットに変換するか、又は線形サンプルを無
変更でPCMインターフェース30に送る。ASICはPCMインタ
ーフェース30を介してデコードされたサンプルをASIC外
部のコーデック(図示されず)に提供する。
デコンパンディング要素32として図2に示されるデコ
ンパンディング動作、及びコンパンディング要素50とし
て図2に示されるコンパンディング動作は、図5a〜d内
にDSPコア4により行われる。送信音響要素34として図
2に示される送信音響処理動作は、図6a〜bに示される
DSPコア4及び最小化プロセッサ6により行われる。図
2に受信音響処理要素44として示される受信音響処理動
作は、図5a〜dに示されるDSPコア4により行われる。
一実施例ではコーデック(図示されず)から8ビット
のμ法又は8ビットA法フォーマットで提供されたサン
プルは、14ビット線形フォーマットに変換される。μ法
と線形の間の関係を式1に示す。
2Y=−1S(33+2M)2N−33 (1) ここで、Yは線形値(−4015.5〜4015.5)、Nはべき指
数(exponent)(0〜7)、Mは大きさの値(0〜1
5)、及びSは符号(プラスのとき0、マイナスのとき
1)である。A法と線形の間の関係を式2及び3に示
す。
2Y=−1S(1+2M)22Y N=0の場合 (2) 2Y=−1S(33+2M)2N N=1の場合 (3) ここでYは(−4032〜4032)、N、M及びSは前述と同
一。
図5a〜dにおいて、図2のPCMインターフェース30を
介して提供されたサンプルは、ROM E114内に格納された
いる参照テーブルにより線形フォーマットに変換され
る。好適実施例において、ハーフサイズ128×14μ法か
ら線形、及びA法から線形への参照テーブルがこの変換
を行うために用いられる。好適実施例では、次の式4に
示される特徴を有するフルサイズ変換テーブルを利用す
る。
ROM(n+128)=−ROM(n),0n127 (4) 入力スピーチ信号内のDC成分の除去が、自動相関係数
及びLPC係数の計算の前に必要となる。DC除去動作はDSP
コア4内で、ローパス濾波されたスピーチサンプル平
均、即ちDCバイアスを現在のウインドウ内の各入力サン
プルから減算することにより行われる。即ち、現在のフ
レームのDCバイアスは、現在及び以前のフレームのサン
プル平均の重み付けされた平均である。DCバイアスの計
算を次の式5に示す。
DCバイアス=a(以前のフレームの平均) +(1−a)(現在のフレームの平均) (5) この好適実施例では、a=0.75。ローパス濾波はフレー
ム境界での大きな不連続を防止するために用いられる。
この動作はDSP内で現在のフレーム及び以前のフレーム
に関するサンプル平均をROM E114により提供される補間
因数(interpolation factor)aと共に、RAM要素(即
ちRAM A104、RAM B122又はRAM C182)の1つに格納する
ことにより行われる。加算は加算器146により行われ、
乗算は乗算器132により行われる。DC除去機能はマイク
ロプロセッサ制御の下にイネーブル(enabled)又はデ
ィセーブル(disabled)することができる。
DC成分のない入力スピーチ信号s(n)はウインドウ
化され、スピーチシーケンスを固定長フレームに分割す
る影響を減少する。ハミングウインドウ(Hamming wind
ow)関数が一実施例で用いられる。フレーム長 L=16
0について、ウインドウ化されたスピーチSW(n)は次
の式6に示すように計算される。
sW(n)=s(n+60)WH(n),0nLA−1
(6) ここでハミングウインドウは次の式7及び8により定義
される。
WH(n)=0.54−0.46cos[2πn/(LA−1)],0nLA−1 (7) =0,他の場合 (8) 好適実施例では、W(n)は対象偶関数(even−symm
etric function)であるから、参照テーブルの80個の係
数、半数のハミングウインドウ係数がROM E114に格納さ
れる。ウインドウ化はアドレスユニットE112により提供
されるアドレス値に従って、ウインドウ係数WH(n)
をマルチプレクサ108〜AREG130を介してROM E114から提
供することにより行われる。AREG130はこのデータを乗
算器132の第1入力に提供する。スピーチサンプルs
(n+60)はRAM B122によりBREG134に提供される。BRE
G134はこの値を乗算器132の第2入力に提供する。乗算
器132の出力はウインドウ化されたスピーチサンプル
で、このサンプルはC0REG164、そしてRAM C182に乗算器
168を介して提供される。
ブロック正規化処理は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要素1
60の第2入力はOREG162が提供する。上記絶対値の計算
を次の式8a〜cに示す。
OREGnew=(ABS(C0REG))OR(OREGold) (8a) ここで、 ABS(C0REG)=C0REG,C0REG0 (8b) =−C0REG,C0REG<0 (8c) 式8a〜cに示される動作は、正規化を意図したデータが
C1REG166内にある場合、DETNORM命令を用いてC1REG166
上で同様に実行できる。OREG162は正規化動作の開始時
にクリアされる。この処理は、動作の終わりで、OREG16
2に格納された値が、ウインドウ化された全てのサンプ
ルの絶対値のビットワイズ論理ORを示すように、ウイン
ドウ化された全てのサンプル(意図したデータ)につい
て繰り返される。OREG162内の最上位ビットセットから
スケール因数が決定される。なぜなら、OREG162内の値
はウインドウかされたサンプルのブロック内で最も大き
な値以上だからである。OREG162内の値はマルチプレク
サ168を介してRAM C182に転送される。この値はC0REG16
4内にロードされる(loaded)。正規化因数はC0REG164
内の値の右又は左シフトの数を計数することにより判断
されるウインドウ化されたデータのこの量だけのシフト
により、次の動作に用いられる所望ピーク量を有する値
が提供される。このスケーリング因数(scaling facto
r)は正規化因数としても知られている。正規化はシフ
トにより行われるので、正規化因数は2の乗数である。
ウインドウ化されたサンプルをできるだけ高い精度に
保つため、最も大きな値が次の動作に与えられる最大ビ
ット数を占めるように、意図した値には正規化因数が乗
算される。正規化因数は2の乗数であるから、意図した
データの正規化は正規化因数により特定される数だけ単
にシフトすることにより達成できる。正規化因数はマル
チプレクサ126を介してRAM B122によりSREG136に提供さ
れる。そしてウインドウ化されたサンプルはRAM C182か
ら、乗算器158を介してDREG156に提供される。そしてDR
EG156はこれらの値を、マルチプレクサ154及びディセー
ブルされたインバータ152を介して、バレルシフター150
に提供する。そこで、それらの値はSREG136によりマル
チプレクサ149を介してバレルシフター150に提供された
正規化因数に従ってシフトされる。バレルシフター150
の出力はディセーブルされた加算要素146及びマルチプ
レクサ148を介してC0REG164に送られる。そして正規化
及びウインドウ化されたサンプルは、マルチプレクサ16
8を通り、マルチプレクサ124及び180を介して、RAM B12
2及びRAM C182に各々提供される。この結果、正規化さ
れウインドウ化されたサンプルの2つのコピーがRAMに
格納され、これにより次の自動相関係数の計算効率を更
に上げることができる。
P+1自動相関係数R(k)の計算は次の式9に従っ
て行われる。
ここで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)はL
A−k値の累計である。各R(k)の第1の反復につい
て、乗算器132の出力は、マルチプレクサ138及びバレル
シフター140を介してアキュムレータC0REG164、加算器1
46に提供される。マルチプレクサ154は0を加算器146の
第2入力に、ディセーブルされたバレルシフター150を
介して提供する。次の反復に対して、乗算器132の出力
は、マルチプレクサ138及びバレルシフター140を介し
て、加算器146の第1入力に提供される。加算器146の第
2入力には、マルチプレクサ168及び154、ディセーブル
された反転要素152及びディセーブルされたバレルシフ
ター150を介して、C0REG164の出力が提供される。この
処理は各R(k)について繰り返される。
全ての自動相関係数はR(0)より小さい。この実施
例では、R(0)が計算された後、その正規化因数が決
定される。この正規化因数は既に計算されたR(0)及
び他の自動相関係数に、それらが計算されたように適用
される。この段階での自動相関係数の正規化は、次のLP
C係数の計算での精度を最大限に上げる。
次に図3のブロック62に進み、LPC係数が計算され、
スピーチサンプル内の短い相関(冗長性)を除く。
次数Pを有するフォルマント予測フィルタは伝送関数
A(z)を有し、これを式10に示す。
各LPC係数aiは正規化されウインドウ化された入力ス
ピーチの自動相関値から計算される。ダービンのリカー
ジョン(Durbin's recursion)(Rabiner,L.R.and Scha
fer,R.W.,“Digital Prosessing of Speech Signals,"P
rentice−Hall,1978参照)と呼ばれる効率的反復法が、
この実施例でLPC係数を計算するのに用いられる。この
反復法を式11〜17に示す。
E(0)=R(0),i=1 (11) i<Pの場合、iをインクリメントし、12に移行する
(16) 最終的LPC係数値は: ダービンの反復アルゴリズムは、入力信号が0平均を有
するときにのみ機能し、あらゆるDCバイアスは、自動相
関計算が前述したように実行された後に除去される必要
がある。
この実施例において、18Hzの帯域幅拡大が用いられ、
これにより、フォルマント予測フィルタの安定性が確保
される。これは本質的フォルマント合成の極をスケーリ
ングすることにより行われる。帯域拡大は以下に示す式
18に従ってLPC係数を半径方向内側に(radially inward
s)スケーリングすることにより行われる。
この実施例ではβ=0.9883である。10個の拡大係数β
(1≦i≦Pについて)がROM E114に提供された参照テ
ーブル内に格納される。ブロック62の機能はDSPコア4
内で実行される。
次に図3のブロック64に進み、スピーチデータの現在
のフレームについてエンコーディング速度が決定され
る。この速度は各フレーム内の音声作用の測定に基づい
ている。この音声作用は前述したようにフレームエネル
ギR(0)に従って測定される。フレームiについてエ
ンコーディング速度を決定するために、フレームエネル
ギは次の式19〜2に定義される3つの閾値と比較され
る。
ここで各フレーム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(B
i)の間の場合は1/2、フレームエネルギがT3(Bi)以上
の場合は最大定格速度である。速度がマイクロプロセッ
サ(図示されず)により、マイクロプロセッサインター
フェース8を介して設定される場合を除き、データ速度
は特定速度まで任意の速度に設定できるが、各フレーム
について1ステップ以下の割合(例えば1/2から1/4)で
のみ低めることができる。DSPコア4において、これら
の閾値に関係する係数はROM E114内の参照テーブルに提
供される。
関数的速度アルゴリズムも好適実施例では提供され、
これにより、最大平均速度をマイクロプロセッサインタ
ーフェース6を介して、マイクロプロセッサ(図示され
ず)により制限できるようになる。速度制限因数Sが与
えられると、ボコーダの最大平均速度は連続する最大速
度のフレームの数を制限することにより、(2S+1)/
[2(S+1)]に制限される。
次に図3のブロック66に進み、帯域拡大されたLPC係
数は、ラインスペクトルペア(LSP:line spectrum pai
r)周波数に変換される(Soong and Juang,“Line Spec
trum Pair(LSP)and Speech Data Compression,"ICASS
P,1984参照)。LSP周波数は送信及び格納に関して著し
く優れた特性を持ち、LPC係数より更に効率よくエンコ
ードできることが示された。10個のLPC係数を示すLSP周
波数は、以下の式23及び24に示す多公式の10個のルート
(ten roots)である。
P′(ω)=cos5(2πω)+p′1cos4(2πω)+... +p′4cos(2πω)+0.5p′ (23) Q′(ω)=cos5(2πω)+q′1cos4(2πω)+... +q′4cos(2πω)+0.5p′ (24) ここでP'i及びQ'i(1≦i≦5)はDSPコア4内で次の
式25〜27に従って計算される。
p′=q′=1 (25) p′=−ai−a11-i−p′i-1 1i5 (26) q′=−ai+a11-i+q′i-1 1i5 (27) P'(ω)のルートは、各π/32ラジアン内に多くとも
1つのルートがあることを推測することにより検出でき
る。P'(ω)はπ/32ラジアン毎に、0からπラジアン
まで評価される。いずれかのπ/32ラジアンにルートが
存在すると、その期間に亘って関数P'(ω)の符号が変
化する。
ルートが検出された場合、二進サーチが行われ、π/2
56サイズの領域でそのルートを分離する。この二進サー
チは、現在の領域の中心でのP'(ω)の評価を含み、ど
の1/2領域がルートを含んでいるかを判断する。この中
心領域は、そのルートを含んでいると検出された1/2領
域のみを含ようになるまで狭められる。この処理はその
ルートがπ/256サイズの領域内に分離されるまで続けら
れる。そして線形補間が行われ、π/256ラジアン領域で
のルートの位置を概算する。
LSPのオーダリング特性(ordering property)によ
り、Q'(ω)の1つのルートはP'(ω)のルートの各ペ
アの間に存在することが保証されている。Q'(ω)の5
番目のルートはP'(ω)の5番目のルートとπラジアン
の間に存在する。前述の二進サーチは、P'(ω)のルー
トの各ペア間、及びP'(ω)の5番目のルートとπラジ
アン間で行われ、Q'(ω)のルートが判断される。
二進サーチはルートの位置がπ/256サイズの領域内に
分離されるまで続けられるので、0とπの間で均等に位
置する256個のコーサイン値(cosine values)が必要に
なる。これらの関数評価はLPC係数からLSP周波数への変
換において、最もコンピュータ処理が必要になる部分で
ある。ブロック66の機能はDSPコア4内で行われる。
次に図3のブロック68に進み、LSP周波数が量子化さ
れる。各LSP周波数の中心は、それに関係するバイアス
値周辺にある。量子化の前に、このバイアスは、関係す
る各LSP周波数から減算され、量子化に必要なビット数
を減少する。このバイアスは次の式28に示すように計算
される。
Biasi=0.5i/(P+1)=(0.▲▼)i (28) LSP周波数からバイアスが減算された後、そのLSP周波数
は差動パルスコード変調(DPCM)量子化装置を用いて量
子化される。DPCM量子化装置が使用される理由は、LSP
周波数は時間と共に徐々に変化し、LSP周波数の変化の
量子化により、LSP周波数を直接量子化する場合より、
量子化に必要なビット数を減少できるからである。DSP
コア4では、LSP周波数のバイアス値はROM E114内の参
照テーブルに格納される。使用される量子化ビット数及
び量子化ステップサイズは、10個のLSP周波数の中で量
子化される周波数の関数であり、又、エンコーディング
速度の関数である。量子化のビット数、及びステップサ
イズは、各エンコーディング速度で各LSP周波数につい
て、ROM E114内の参照テーブルとして格納される。前述
の参照テーブルを表IIに示す。例えば、最大定格速度で
のLSP周波数ω1は4ビットを用いて量子化され、ステ
ップサイズは0.025である。
量子化と補間の後、テストが行われ、フォルマントフ
ィルタが量子化の後で安定していることが確認される。
各LSP周波数は、結果的フォルマントフィルタの安定性
を確保するために、少なくとも80Hzは離れていなければ
ならない。LSP周波数の中で80Hz以下で隣合う周波数が
ある場合、帯域拡大が再び行われる。ブロック68の機能
はDSPコア4内で行われる。
次に図3のブロック70に進み、LSP周波数は低帯域濾
波され、以下の式29に示すように量子化の影響を減少す
この実施例では、最大定格速度でSM=0、1/2定格でSM
=0.125である。1/4定格及び1/8定格において、1/4又は
1/8定格フレームの連続数が10より少ない場合、SM=0.2
5であり、その他の場合、SM=0.9である。
LSP周波数は各ピッチサブフレームについて補間され
る。ピッチサブフレームについて補間されたLSP周波数
は、1/8定格以外の対応するコードブックサブフレーム
のペアに使用される。LSP周波数は以下の式30に従って
補間される。
ここで重みαωは各ピッチサブフレーム及び各定格での
コードブックサブフレームについてROM E114内の参照テ
ーブルに格納されている。前述の参照テーブルを表III
に示す。例えば、最大定格速度でのαωは、ピッチサブ
フレーム1及びコードブックサブフレーム1及び2につ
いて、0.75である。
補間されたLSP周波数は、ピッチ及びコードサーチに
使用されるLPC係数に変換され戻される。LPC係数は以下
の式31〜33に示すように、PA(z)及びQA(z)から
計算される。
A(z)=[PA(z)+QA(z)]/2 (31) ここで、 この実施例において、テイラー(Taylor)の直列展開
がDSPコア4内で評価され、PA(z)及びQA(z)で
のコーサイン値を計算する。テイラーの直列展開は前述
のルートサーチに用いられたものより更に正確なコーサ
イン値を提供する。PA(z)及びQA(z)の値はDSP
コア4内で、上記の式32〜33に示される二次方程式のコ
ンボリューション(convolution)を行うことにより計
算される。
次に図3のブロック72に進み、合成ピッチサーチ動作
により広範な分析が行われる。この徹底的なサーチ処理
は、ブロック72〜74により形成されるループにより示さ
れる。ピッチ予測がこの実施例では1/8定格以外のピッ
チサブフレームについて行われる。図7に示すピッチエ
ンコーダは合成による分析を行って、ピッチ予測パラメ
ータ(即ちピッチラグ(pitch lag)L、及びピッチゲ
インb)を決定する。選択されたパラメータは、知覚的
に重み付けされた入力スピーチとこれらのピッチ予測パ
ラメータを用いて発生された合成スピーチの間のMSEを
最小にするようなパラメータである。
本発明の好適実施例においては、図7に示すように絶
対的な知覚的重み付けが、ピッチ予測パラメータの抽出
に用いられる。図7において、式34に示す応答性を有す
る知覚的重み付けフィルタが、フィルタ320及びフィル
タ324のカスケードとして構成される。
絶対的な知覚的重み付けは、フィルタ320の出力をオー
プンループフォルマントの誤差として再使用することに
より、知覚的重み付け濾波の複雑なコンピュータ処理を
減少する。式34のフィルタを2つの部分に分けるこの動
作は、ピッチサーチでの1つのフィルタ動作を省略す
る。
入力スピーチサンプルs(n)はフォルマント予測フ
ィルタ320を通る。この予測フィルタ320の係数は前述し
た図3のブロック70でのLSP補間及びLSPからLPCへの変
換により得られたものである。フォルマント予測フィル
タ320の出力はオープンループフォルマント残余p0
(n)である。オープンループフォルマント残余p0
(n)は次の式35に示される伝達関数により重み付けさ
れたフォルマント合成フィルタ324を通る。
重み付けされたフォルマント合成フィルタ324の出力は
知覚的に重み付けされたスピーチx(n)である。初期
フィルタ状態又は重み付けされたフォルマント合成フィ
ルタ324のフィルタメモリの影響は、重み付けされたフ
ォルマント合成フィルタ324の出力から、重み付けされ
たフォルマント合成フィルタ324の0入力応答(ZIR)を
減算することにより除去できる。重み付けされたフォル
マント合成フィルタ324のZIRの計算は、ZIR要素328内で
行われる。ZIR aZIR(n)は知覚的に重み付けされた
スピーチx(n)から加算器326で減算される。各ピッ
チサブフレームの開始点で、ZIR要素328のフィルタメモ
リと重み付けされたフォルマント合成フィルタ324のフ
ィルタメモリは同一である。
ピッチサーチにおいて、コードブックベクトルからの
0の貢献が、オープンループフォルマント残余の計算に
おける現在のサブフレームについて仮定される。このピ
ッチサーチは前述のオープンループフォルマント残余p0
(n)とクローズループフォルマント残余pc(n)の両
方を用いて行われる。クローズループフォルマント残余
pc(n)は、以前のサブフレームの間にピッチ合成フィ
ルタ322内で再構成されたサンプルである。ピッチ合成
フィルタ322の伝達関数を式36に示す。
ここでピッチラグL及びピッチゲインbは、以前のピッ
チサブフレームについてのピッチサーチ処理の時に計算
される。ピッチ合成フィルタ322への入力は、励起ベク
トル(excitation vector)Cb(n)であり、このベク
トルはインデックスIについてのコードブック入力Cb
(I)と、以前のコードブックサブフレームについての
コードブックサーチ処理の間に計算されたコードブック
ゲインGを乗算することにより発生する。従って発生す
るフォルマント残余はクローズループフォルマント残余
と呼ばれる。
この実施例ではpc(n)は143個のクローズループ再
構成サンプルからなる。サーチは大きなオープンループ
サーチから大きなクローズループに、ピッチサブフレー
ムの長さのウインドウについて移動する。長さLpのピッ
チサブフレームについて、nは−LMAX=−143とLp−17
の間で変化する。好適実施例では、サンプルpc(n)と
p0(n)は、マルチプレクサ332によって示すように連
続的に格納され、これによりpc(n)とp0(n)値は長
さLp+143のサンプルの単一ブロックとして次々にアク
セスすることができる。これらのサンプルはRAM B122に
格納される。
フォルマント残余p(n)はpc(n)とp0(n)から
なり、式37に示す伝達関数を有する重み付けされたフォ
ルマント合成フィルタ330を通る。
重み付けされたフォルマント合成フィルタ330は、各ピ
ッチラグLの値について、Lpの重み付けされた合成スピ
ーチサンプルyL(n)のシーケンスを発生するために用
いられる。重み付けされた合成スピーチシーケンスyL
(n)及び重み付けされたスピーチシーケンスxP(n)
は最小化プロセッサ334に提供される。重み付けされた
フォルマント合成フィルタ324の初期状態の影響は減算
で除かれたので、重み付けされたフォルマント合成フィ
ルタ330のインパルス応答のみを計算すればよい。yL
(n)の計算は、重み付けされたフォルマント合成フィ
ルタ330のインパルス応答h(n)を、適当なp(n)
内のサブシーケンスによりコンボリューション計算し、
各ピッチラグLについて重み付けされた合成スピーチサ
ンプルyL(n)を得る必要がある。
このコンボリューションはDSPコア4内で、図5a〜d
に示すように再帰的(recursive)な方法で行われる。y
L(n)値のセットは各ピッチラグ値について、L=17
からL=143まで計算される。重み付けされたフォルマ
ント合成フィルタ330のインパルス応答h(n)は、こ
の実施例では最初の12個のサンプルに省略され、RAM A1
04に格納される。フォルマント残余p(n)はRAM B122
に格納される。最初のピッチラグL=17についてのコン
ボリューションは、式38に示すように非再帰的な方法で
行われる。
ここでLPはピッチサブフレーム長である。
最初のシーケンス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) 1n<20,17<L143
(40) yL(n)=yL-1(n−1) 20n<Lp (41) この関係を式42に示す。
pL(n)=p(n−L)=pL-1(n−1),17<L143,0n<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)が格納される。
以前計算された重み付けされた合成スピーチサンプル
yL−1(n)を、各ピッチラグ更新の間に同一元のRAM
に移動することなく式40及び41を実行する能力は、ピン
ポン(ping−ponging)処理と呼ばれる方式及びハード
ウエア容量が必要になる。このピンポン方式では、ソー
ス及び目的のRAMは各ラグ更新の間でスワップされる(s
wapped)。等しいピッチラグ値について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から移動する必要
がなくなる。
図8はピッチサーチのコンボリューション部分(初期
の非再帰的及び再帰的コンボリューションの両方)の実
行するためのフロー図の一実施例である。ブロック350
では、ピッチラグLは最も小さな値に初期化される。こ
の値は本実施例では17である。サンプル番号n及びフィ
ルタインデックスmは0にセットされ、y17(n)の値
は0にセットされる。ブロック352から360は初期コンボ
リューションループを示し、このループは非再帰的方法
で計算される。初期コンボリューションの計算(ここで
L=17)は、次の式43に従って行われる。
初期コンボリューションの計算は固定長ループを使用し
て、計算の複雑性を減少している。このようにして、式
43の内部ループ(ブロック356〜360)内の可変長ループ
構造を設定するために必要なオーバーヘッドが避けられ
る。各y17(n)値は、それが計算された後、最小化プ
ロセッサ334に送られる。
ブロック352はサンプルインデックスnをテストす
る。nがピッチサブフレーム長LPに等しい場合、初期
コンボリューションは完了し、フローはブロック362に
移行する。ブロック352内で、nがピッチサブフレーム
長より短い場合、フローはブロック356に移行する。ブ
ロック352はインデックスmをテストする。mがフィル
タインパルス応答長20に等しい場合、この実施例では、
現在の反復は完了し、フローはブロック354に移行し、
mは0に設定され、nはインクリメントされる。そして
フローはブロック352へ戻る。ブロック356で、mがイン
パルス応答長より短い場合、フローはブロック360に移
行し、部分的合計が累計される。フローはブロック356
に移行し、インデックスmはインクリメントされ、フロ
ーはブロック356へ進む。
ブロック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を介してDREG156に提供され
る。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により、マルチプレクサ15
4、ディセーブルされたインバータ152及びバレルシフタ
ー150を介して加算器146の第2入力に提供される。加算
器146の出力はマルチプレクサ148を介してC0REG164に提
供される。インデックスnがブロック352内の最大許容
値に達すると、初期コンボリューションは完了し、RAM
C182に存在する部分和はコンボリューションの最終値と
なる。
初期コンボリューションが完了すると、フローはブロ
ック362に移行し、そこで再帰的コンボリューションは
残りのピッチラグ値に関する計算の中で実行される。
ブロック362では、サンプルインデックスnは0に設
定され、ピッチラグインデックスLがインクリメントさ
れる。フローはブロック364に移行する。ブロック364は
Lをテストする。Lが最大ピッチラグ値(本実施例では
143)より大きい場合、フローはブロック366に移行し、
そこでピッチサーチ動作は終結する。Lが143以下の場
合、フローはブロック368に移行する。ブロック368はピ
ンポン動作を前述したように制御する。ブロック368で
は、Lがテストされ、それが偶数か奇数か判断される。
Lが偶数の場合、フローはブロック378に移行する(ケ
ースIで説明される動作)。Lが奇数の場合、フローは
ブロック370に移行する(ケースIIで説明される動
作)。
ケースI(ピッチラグLが偶数の場合) ブロック378でyL(0)は式39に従って計算される。
アドレスユニットA102はRAM A104に対するアドレス値を
提供し、RAM A104はそれに応答してh(0)をマルチプ
レクサ108〜AREG130を介して提供する。同一クロックサ
イクルで、アドレスユニットB120はRAM B122に対するア
ドレス値を提供し、RAM B122はそれに応答して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に進む。
ブロック384では、新たなyL(n)値が式40に従って
各クロックサイクルで計算される。yL−1(n−1)及
びh(n)の値を初期化するためにブロック384の最初
の反復に先だって必要な適切な設定は、前述したように
ブロック378で達成された。最終値のyL(19)を格納す
るために、ブロック384の最後の反復の次に適切なクリ
ーンアップ(cleanup)も必要である。
ブロック384の最初の反復で、ブロック378で計算され
たyL(0)がC0REG164内に存在する。C0REG164はマルチ
プレクサ168及び180を介してRAM C182にyL(0)を、ア
ドレスユニットC184からのRAM C182に対するアドレス値
と共に提供し格納する。yL(0)は、それがRAM C182に
提供されるのと同時に、最小化プロセッサ334に提供さ
れる。
ブロック384では次の動作が単一クロックサイクルの
間に行われる。即ち、yL−1(n)値は、アドレスユニ
ットB120により提供されるアドレスに従って、マルチプ
レクサ116及び158を介して、RAM B122により、DREG156
に提供される。インパルス応答値h(n+1)はRAM A1
04により、アドレスユニットA102により提供されるアド
レスに従って、マルチプレクサ108を介してAREG130に提
供される。DREG156はyL−1(n−1)を、マルチプレ
クサ154、ディセーブルされたインバータ要素152、及び
バレルシフター150を介して、加算器146の第1入力に提
供する。AREG130はh(n)を、及びBREG134はp(−
L)を乗算器132に提供し、そこで2つの値は乗算さ
れ、その積はマルチプレクサ138を介して乗算器132によ
り、バレルシフター140に提供される。バレルシフター1
40はSREG136により提供される値に従って、その積の値
を正規化し、正規化された積値を加算器146の第2入力
に提供する。加算器146の出力は、マルチプレクサ148を
介してC0REG164に提供される。以前の反復で計算された
C0REG164での値は、マルチプレクサ168及び180を介し
て、RAM C182に提供及び格納され、最小化プロセッサに
提供される。
ブロック380では、合成されたスピーチサンプルイン
デックスnがインクリメントされる。制御ブロック382
では、合成されたスピーチサンプルインデックスnが20
に等しい場合、最後の反復で計算されたyL(19)は、フ
ローがブロック390に進む前に、マルチプレクサ168及び
124を介して、RAM B122に提供され、循環バッファに格
納され、最小化プロセッサ334に提供される。
ケースIの終わり ケースII(ピッチラグLが奇数の場合) ブロック370では、yL(0)が式39に従って計算され
る。アドレスユニットA102はRAM A104にアドレス値を提
供し、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が提供される。加算器1
46の出力はマルチプレクサ148を介してC0REG164に提供
される。同一クロックサイクルの間に、yL−1(0)及
びh(1)がRAM C182及びRAM A104からフェッチされ、
DREG156及びAREG130にマルチプレクサ158及び108を各々
介して提供される。
ブロック372では、合成されたスピーチサンプルイン
デックスnはインクリメントされる。制御ブロック374
では、合成されたスピーチサンプルインデックスnが20
より少ない場合、フローはブロック367に進む。
ブロック376では、新たなyL(n)値が式40に従って
各クロックサイクルに計算される。yL−1(n−1)及
びh(n)の値を初期化するために、ブロック376の最
初の反復に先だって必要な適切なセットアップが前述し
たようにブロック370で行われた。yL(19)の最終値を
格納するために、ブロック376の最後の反復の次に適切
なクリーンアップも必要である。
ブロック376の最初の反復において、ブロック370で計
算されたyL(0)は、C0REG164内に存在する。C0REG164
はマルチプレクサ168及び180を介して、yL(0)を、ア
ドレスユニットB122からRAM Bに対して与えられたアド
レスと共にRAM B122に提供し、格納する。yL(0)は、
それがRAM B122に提供されるのと同時に、最小化プロセ
ッサ334に提供される。
ブロック376では、次の動作が単一サイクルで実行さ
れる。yL−1(n)値はRAM C182により、アドレスユニ
ットC186から提供されたアドレスに従い、マルチプレク
サ158を介して、DREG156に提供される。インパルス応答
値h(n+1)は、RAM A104により、アドレスユニット
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は、SR
EG136により提供される値に応じて、その積を正規化
し、正規化された積を加算器146の第2入力に提供す
る。加算器146の出力はマルチプレクサ148を介してC0RE
G168に提供される。以前の反復で計算されたC0REG168の
値は、マルチプレクサ168及び124を介してRAM B122に格
納され、及び最小化プロセッサ334に提供される。
ブロック372では、合成されたスピーチサンプルイン
デックスnはインクリメントされる。制御ブロック374
では、合成されたスピーチサンプルインデックスnが20
に等しい場合、最後の反復で計算されたyL(19)は、フ
ローがブロック390に進む前に、マルチプレクサ168及び
124を介して、RAM B122に提供され、RAM B122内の循環
バッファに格納され、及び最小化プロセッサ334に提供
される。
ケースIIの終わり ブロック390の反復に先立って、yL−1(19)がRAM B
122内の循環バッファからフェッチされ、BREG134にロー
ドされ、yL−1(19)はBREG134からC0REG164に移動さ
れ、その後、yL−1(20)がRAM B122内の循環バッファ
からフェッチされ、BREG134にロードされる。
ブロック390では、新たなyL(n)が各クロックサイ
クルで、式41に従って計算される。次に示す動作が単一
クロックサイクルで行われる。即ち、yL−1(n−2)
がBREG134によりC0REG164に提供される。yL−1(n−
3)がRAM B122内の循環バッファからフェッチされ、BR
EG134にロードされる。C0REG164に存在するyL−1(n
−1)は最小化プロセッサ334に提供される。ブロック3
90の最後の反復の続いて、yL−1(LP−2)はRAM B12
2内の循環バッファから削除される。各ピッチラグで循
環バッファに要素を加算し、各ピッチラグで循環バッフ
ァから要素を減算することにより、循環バッファのサイ
ズはLP−19に維持される。
循環バッファの導入は、アドレスユニットB120内の専
用アドレスレジスタにより行われる。これはシーケンシ
ャルメモリが循環形式で自動的にアドレスできるよう
に、丸め込み点(wrap around points)を示す。
ブロック386では、合成されたスピーチサンプルイン
デックスnがインクリメントされる。制御ブロック388
では、合成されたスピーチサンプルインデックスnがL
Pより少ない場合、フローは再びブロック390に進む。合
成されたスピーチサンプルインデックスnがLPに等し
い場合、全てのyL(n)値が現在のピッチラグ値Lにつ
いて計算され、フローはブロック362に戻る。
合成されたスピーチサンプルyL(n)の計算に先立
ち、知覚的に重み付けされたスピーチサンプルxP(n)
の長さLPのシーケンスが、最小化プロセッサ334に提供
される。前述したように、ラグ値L=17からL=143ま
での長さLPのスピーチサンプルxP(n)のシーケンス
は、初期及び再帰的コンボリューションの計算の間に、
最小化プロセッサ334に提供される。合成されたスピー
チサンプルは最小化プロセッサ334に次々と提供され
る。最小化プロセッサ334は合成された各スピーチサン
プルシーケンスyL(n)の自動相関を計算し、合成され
た各スピーチサンプルシーケンスyL(n)と知覚的に重
み付けされたスピーチサンプルxP(n)間の交差相関を
計算する。これら相関値から、最小化プロセッサ334
は、合成された各スピーチサンプルシーケンスyL(n)
と知覚的に重み付けされたスピーチサンプルxP(n)間
のMSEの相対測定値を計算する。各ピッチラグLに関し
て、MSEは合成されたスピーチサンプルシーケンスのピ
ッチゲイン値bのあらゆる可能な値について計算され
る。最小化プロセッサ334は、現在のピッチラグL及び
現在のピッチゲインBにより、最小MSEの値を維持する
ことにより、全ピッチラグ値L及びピッチゲイン値bの
あらゆる可能な値についての最小値を検出する。最小MS
Eに対応するピッチラグ概算及びピッチゲイン概算イ
ンデックスも、最小化プロセッサ334によって維持さ
れる。新たなMSEの各値は最小化プロセッサ334内に保持
された最小MSEと比較される。新MSEが最小MSEより小さ
い場合、最小MSEは新MSE値と置き代わり、ピッチラグ概
算及びピッチゲイン概算インデックスは更新され、
新たな最小MSEを反映する。最小化プロセッサ334に保持
された最小MSE及び対応するピッチラグ概算及びピッ
チゲイン概算インデックスは、ピッチサブフレームの
間に計算された最初のマイナスのMSE値を使用して、各
ピッチサブフレームで初期化される。全てのピッチラグ
値及び全てのピッチゲイン値を検討した後、ピッチ
ラグ概算及びピッチゲイン概算インデックスは、現
在のピッチサブフレームに対する最適ピッチラグインデ
ックス及びピッチゲイン概算インデックスである。最小
化プロセッサ334は最適ピッチラグと最適ピッチゲイ
ンデックスをDSPコア4に提供する。最適ピッチラグ
と最適ピッチゲインインインデックスは、知覚的に
重み付けされたスピーチサンプルxp(n)と重み付けさ
れた合成スピーチサンプルyL(n)間の最小MSEを生じ
る値である。MSEは次式44〜46に示すように、ピッチラ
グLとピッチゲインbの関数である。
ExPxPは知覚的に重み付けされたスピーチサンプルxP
(n)の自動相関である。ExPyLは知覚的に重み付けさ
れたスピーチサンプルxp(n)と重み付けされた合成ス
ピーチサンプルyL(n)間の交差相関である。EyLyLは
重み付けされた合成スピーチサンプルyL(n)の自動相
関である。
知覚的に重み付けされたスピーチサンプルxp(n)の
自動相関ExPxPは、ピッチゲインbの関数ではない。ExP
xPは各ピッチサブフレームの間で一定であるので、最適
ピッチラグ及び最適ピッチゲインの選択に影響しない。
ピッチラグ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について行われる。
図6a及び6bは最小化プロセッサ334の一実施例を示
す。知覚的に重み付けされたスピーチサンプルxp(n)
はDSPコア4によりラッチ210に提供され、制御要素220
によって提供されるアドレスに従ってRAM X212内に格納
される。b=0.25〜b=2.0で0.25ステップ毎にスケー
ルされた(scaled)ピッチゲイン値−2bが、マルチプレ
クサ260を介してDSPコア4により提供され、ラッチ26
4、268、272、276、280、284、288及び292に各々格納さ
れる。対応するスケールされたピッチゲイン値b2はマル
チプレクサ260を介してDSPコア4により提供され、ラッ
チ262、266、270、274、278、282、286及び290に各々格
納される。マルチプレクサ260はラッチ262に値を直接提
供する。ラッチ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))を生成する。ラ
ッチ210も、重み付けされた合成スピーチサンプルyL
(n)を乗算器218の第1入力に提供する。RAM X212は
知覚的に重み付けされたスピーチサンプルxp(n)を、
ラッチ214を介して乗算器218の第2入力に提供する。乗
算器218は積xp(n)yL(n)を計算する新たな二乗値
(yL(n))、及び新たな積xp(n)yL(n)は、乗
算器216及び218により各サイクルで各々計算される。サ
ンプルインデックスnは0からLP−1まで、各ピッチ
ラグLについて変化する。
重み付けされた合成スピーチサンプルの二乗値(yL
(n))は、アキュムレータ221に提供される。積xp
(n)yL(n)はアキュムレータ231に提供される。ア
キュムレータ221は各ピッチラグLについてのLPの二乗
の合計を計算する。アキュムレータ231は各ピッチラグ
LについてLPの積の合計を計算する。
新たな各ピッチラグの前に、ラッチ226にはマルチプ
レクサ224を介して0が提供される。これでアキュムレ
ータ221は現在のピッチラグLに関する自動相関EyLyLを
計算する準備が整う。アキュムレータ221内で、二乗値
(yL(n))は加算器222の第1入力に提供される。
不足している合計はラッチ226により加算器222の第2入
力提供される。新たに計算された不足している合計は加
算器22により、マルチプレクサ224を介してラッチ226に
提供され格納される。ピッチラグLに関する全てのLP
値に対する累計の後、自動相関EyLyLはラッチ228に提供
され格納される。
新たな各ピッチラグの前に、ラッチ236にはマルチプ
レクサ234を介して0が提供される。これでアキュムレ
ータ231は、現在のピッチラグLに関する交差相関ExPyL
を計算する準備が整う。アキュムレータ231内で、積xp
(n)yL(n)が、加算器232の第1入力に提供され
る。不足している合計はラッチ236により、加算器232の
第2入力に提供される。新たに計算された不足している
合計は加算器232により、マルチプレクサ234を介して、
ラッチ236に提供され、格納される。ピッチラグLに関
する全てのLP値に対する累計の後、交差相関ExPyLはラ
ッチ238に提供され格納される。
式47に示されるMSEは以下に説明する2つのサイクル
処理において計算される。
2つのサイクルの第1サイクルで、ラッチ238は知覚
的に重み付けされたスピーチサンプルと重み付けされた
合成スピーチサンプル間の交差相関ExPyLを、マルチプ
レクサ230を介して、乗算器240の第1入力に提供する。
循環バッファ259はスケールされたピッチゲイン値−2b
を、マルチプレクサ296を介して乗算器240の第2入力に
提供する。積−2bExPyLは乗算器240により、加算器242
の第1入力に提供される。加算器242の第2入力は、マ
ルチプレクサ246を介して0が提供される。加算器242の
出力はラッチ244に提供され格納される。循環バッファ2
59のラッチ262〜292内の値は、ラッチ276の出力をマル
チプレクサ294を介してラッチ278に提供することによ
り、及びラッチ292の出力をマルチプレクサ260を介して
ラッチ262に提供することにより、回転される。この回
転の後、ラッチ262、264、266、268、270、272、274、2
76、278、280、282、284、286、288、290及び292は、ラ
ッチ292、262、264、266、268、270、272、274、276、2
78、280、282、284、286、288、290に以前に含まれてい
た値を各々含む。ピッチサーチにおいて、循環バッファ
は、ラッチ262〜292及び循環バッファのマルチプレクサ
260及び294を含む。循環バッファ259の値を回転するこ
とにより、ラッチ292は第1及び第2サイクルで、−2b
及びb2を各々提供する。
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の値は、前述し
たように回転される。
以上の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からの差出力の結果をモニ
タする。この差がマイナスの場合、現在のMSE値は現在
のサブフレームに関する新たな最小MSEであり、ラッチ2
50に格納され、対応するピッチラグ概算及びピッチゲ
イン概算インデックスは制御要素220内で更新され
る。その差がマイナスではない場合、現在のMSE値は無
視される。
各ピッチサブフレームの前に、DSPコア4はコマンド
を最小化プロセッサ334に発送し、制御要素220に新たな
ピッチサブフレームが続くことを知らせる。このコマン
ドを受信すると、現在のピッチラグ及び現在のピッチゲ
インインデックスは制御要素220内で0に設定される。
重み付けされた合成スピーチサンプルの新たな各シーケ
ンスが最小化プロセッサ334に提供される前に、DSPコア
4はコマンドを最小化プロセッサ334に発送し、制御要
素220に重み付けされたスピーチサンプルの新たなシー
ケンスが続くことを知らせる。このコマンドを受信する
と、制御要素220は現在のピッチラグ及び現在のピッチ
ゲインインデックスを1だけインクリメントする。この
値は1のピッチラグインクリメント及び0.25のピッチゲ
インインクリメントに対応する。重み付けされた合成ス
ピーチサンプルの第1シーケンスが最小化プロセッサ33
4に提供されている間、現在のピッチラグ及び現在のピ
ッチゲインインデックスは1に等しくなる。この値はL
=17のピッチラグ、及びb=0.25の正規化されたピッチ
ゲインに対応する。又、各ピッチサブフレームの前に、
現在のピッチラグ概算及び現在のピッチゲイン概算イ
ンデックスは0に設定され、無効ピッチラグ及びピッ
チゲインを示す。各ピッチサブフレームの間、制御要素
220はラッチ244内の第1のマイナスMSEを検出する。こ
の値はラッチ250に格納され、対応するピッチラグ概算
及びピッチゲイン概算インデックスは制御要素220
内で更新される。これは各ピッチサブフレームでラッチ
250内の最小化MSEを初期化するために行われる。ピッチ
サブフレームの間にマイナスのMSE値が生成されなかっ
た場合、ピッチラグ概算及びピッチゲイン概算インデ
ックスはサブフレームの終わりで0になる。これらの
概算は制御要素220によりDSPコア4に提供される。DSP
コア4が無効ピッチラグ概算を受信した場合、最適ピッ
チゲインは0に設定され、=0は零MSEに対応する。
ピッチフィルタのピッチゲインが0に設定されることに
より、ピッチラグは連続ではなくなる。DSPコア4が有
効ピッチラグ概算を受信すると、この値は最適ピッチ
ラグとして使用され、使用される最適ピッチゲインは1
〜8のピッチゲイン概算インデックスについて各々、0.
25、0.5、0.75、1.0、1.25、1.5、1.75、及び2.0であ
る。
ピッチサーチにおいて、式47のMSE関数の特性MSE(L,
b)により、計算量を減少できる。現在のピッチラグの
残りのMSE計算は、現在のピッチラグ内でまだ計算され
ている残りのMSE値が、ラッチ250に格納された現在の最
小MSEより小さいMSE値を生じ得ないと判断された場合に
中止できる。本実施例では、ピッチサーチ内の計算量を
節約するための3つの技術が、最小化プロセッサ334内
で採用される。1つの二次方程式が各ピッチラグ値Lに
ついて形成される。これら二次方程式の全ては原点b=
0及びMSE(L,b)=0を通過する。ピッチサーチ動作で
は詳しくサーチされないが、ピッチゲイン値b=0は可
能なゲイン値のセットに含まれる。
第1の計算的節約方法は、ExpyLがマイナスの時、現
在のピッチサーチ処理でのMSE値の計算を中止すること
を含む。各サブフレームに関する最小MSE上の上限を0
に保証すると、全てのピッチゲイン値がプラスである。
マイナスのExpyLはプラスのMSE値を生じ、従って次に最
適な値である。
第2の計算的節約方法は、MSE関数の二次方程式的な
特徴に基づく現在のピッチラグのピッチサーチ処理での
残りのMSE値の計算を中止することを含む。MSE関数MSE
(L,b)は単調に増加するピッチゲイン値について計算
される。プラスのMSE値が現在のピッチラグについて計
算されたとき、現在のピッチラグに関する残りの全MSE
計算は、残りの全MSE値が同様にプラスであるとして中
止される。
第3の計算的節約方法は、MSE関数の二次方程式的特
徴に基づく現在のピッチラグのピッチサーチ処理での残
りのMSE値の計算を中止することを含む。MSE関数MSE
(L,b)は単調に増加するピッチゲイン値について計算
される。新たな最小MSEではないと判断される現在のピ
ッチラグ内で、MSE値が計算されるとき、及び新たな最
小MSEと判断された現在のピッチラグ内で、MSE値が既に
計算されたとき、現在のピッチラグ内の残りの全てのMS
E計算は、新たな最小MSEより少ない値になり得ないとし
て中止される。以上3つの計算量節約方法は、最小化プ
ロセッサ334の消費電力を著しく節約する。
ブロック76においてピッチ値は量子化される。各ピッ
チサブフレームについて、選択されたパラメータ及び
は送信コードPGAIN及びPLAGに変換される。最適ピッ
チラグインデックスは1と127(1と127を含む)の間
の整数である。
PLAGの値はとの両方に依存する。=0の場合、
PLAG=0、その他の場合、PLAG=である。従って、PL
AGは7ビットを用いて示される。=0の場合、PGIN=
0、他の場合、PGAIN=−1である。従って、PGINは
3ビットで示される。ここで、=0及び=1は両方
共、PGAIN=0を生じる。これら2つの場合はPLAGの値
により区別され、第1の場合では0、第2の場合では0
以外である。
1/8の速度を除き、各ピッチサブフレームは、2つの
コードブックサブフレームを包含する。各コードブック
サブフレームについて、最適コードブックインデックス
及び最適コードブックゲインはブロック80のコード
ブックサーチ処理内で判断される。1/8の速度につい
て、1つのコードブックインデックス及び1つのコード
ブックゲインのみが判断され、そのコードブックインデ
ックスは送信の前に放棄される。
図9の実施例において、コードブック400により提供
される励起コードブックは2Mコードベクトルからなり、
ここでM=7である。
この実施例での循環コードブックは、以下の表IVに示
される128個の値からなる。これらの値は10進で示さ
れ、ROM E114に格納されている。
コードブックベクトルインデックスI及びコードブッ
クゲインGを選択するのに用いる方法は、ピッチサーチ
処理に用いる方法と同様な合成分析法(analysis−by−
synthesis method)である。選択されたコードブックイ
ンデックス及び選択されたコードブックゲインは、
及びの許容値であり、これらの値は重み付けされた
合成スピーチyI(n)と、ピッチ概算除去された知覚的
に重み付けされたスピーチxC(n)の間の式50の平均二
乗エラーMSE(I,G)を最小にする値である。図9におい
て、重み付けされたスピーチxC(n)は次のように発生
する。現在のサブフレームに関するピッチサーチ内に発
生した同一の知覚的に重み付けされたスピーチx(n)
がここでは使用される。1/8の速度内にピッチサーチが
ないために、x(n)がこの速度に関するコードブック
サーチ内に発生される。x(n)は加算器410の第1入
力に提供される。現在のサブフレーム及びピッチフィル
タ506の現在の状態メモリに関するピッチサーチにおい
て抽出された最適ピッチラグ及び最適ピッチゲイン
を用いて、ピッチ合成フィルタ506のZIR p zir(n)が
ZIR要素406内で計算される。このZIRは重み付けされた
合成フィルタ408を通り、その出力p a zir(n)は加算
器410のx(n)から減算される。加算器410の出力xC
(n)は正規化され、最小化プロセッサ412に提供され
る。
コードブックベクトルCI(n)が、コードブック400
により、コードブックインデックスIに応答し、式53に
従って提供される。現在のピッチサブフレームに関する
ピッチサーチ処理において既に決定されている重み付け
された合成フィルタ404のインパルス応答h(n)が、
この実施例では用いられる。しかし、1/8の速度では、
h(n)は重み付けされた合成フィルタ404のコードブ
ックサーチで計算される。本実施例では、インパルス応
答h(n)は、最初の20のサンプルに省略される。
コードブックの再帰的特性のために、ピッチサーチで
用いられるものと同様な再帰的コンボリューション処理
が、コードブックサーチに使用される。このコンボリュ
ーションは次の式52のようにして計算される。
インデックスIに関するコードブックベクトルCI
(n)は次式53のように定義される。
全コンボリューションは式54に従ってインデックスI=
0について行われる。出力y0(n)はRAM C182に格納さ
れる。他のインデックスI=1〜I=127について、コ
ンボリューションは次式55〜57に示すように再帰的に行
われる。
ピッチサーチでのように、コードブックサーチ再帰的
コンボリューションの実行は、DSPコア4内の3分割RAM
及びROM E114により最適化される。
式56内のコンボリューション値を計算し、各クロック
サイクルで結果を生成することが可能となる。例えば、
単一サイクルにおいて、y18(10)が計算され、y18
(9)が格納され、y17(10)がフェッチされ、h(1
0)がフェッチされる。従って、前述の式56は各クロッ
クサイクルで1つの結果を生成できる。各クロックサイ
クルで式57に関する結果を生成することも可能である。
例えば、単一クロックサイクルで、y18(24)が計算さ
れ、y17(24)がフェッチされ、y18(23)が格納され
る。
式56及び57を実行することにより、各コードブックイ
ンデックス更新の間で、以前に計算した重み付けされた
合成スピーチサンプルyI−1(n−1)を同一元のRAM
に移動する必要がない。この式56及び57を実行する能力
は、ピンポン処理と呼ばれる格納機構及びハードウエア
容量が必要になり、このピンポン処理は発送元(sourc
e)及び発送先(destination)のRAMが各インデックス
更新の間でスワップされる。奇数コードブックインデッ
クス値についてyI(n)を計算するとき、yI−1(n−
1)値が3つのRAM中の第2のRAMからフェッチされ、結
果は第1のRAMに格納される。このピンポン処理によ
り、各コードブックインデックス更新の間に、以前計算
したyI−1(n−1)値を同一RAMに移動する必要がな
くなる。
図10はコードブックサーチの再帰的部分(初期の非再
帰的及び再帰的コンボリューションの両方を含む)の実
行を示すフローの一実施例である。ブロック414では、
コードフックインデックスIは最も小さい値(本実施例
では0)に初期化される。サンプル番号n及びインデッ
クスmは0に設定され、y0(n)の値は0に設定され
る。ブロック416〜424は、非再帰的方法で計算される初
期コンボリューションループを形成する。初期コンボリ
ューションの計算(ここでI=0)は次式58に従って行
われる。
初期コンボリューションの計算は固定長ループを使用
し、計算の複雑性を減少している。このようにして、式
58の内部ループ(ブロック320〜324)内に、可変長ルー
プ構造を設定するために必要なオーバーヘッドは避けら
れる。各y0(n)値は、それが計算された後に最小化プ
ロセッサ412に送られる。
ブロック416はサンプルインデックスnをテストす
る。nがコードブックサブフレーム長LCに等しい場
合、第1コンボリューションは完了し、フローはブロッ
ク426に移行する。ブロック416で、nがコードブックサ
ブフレーム長より小さい場合、フローはブロック420に
移行する。ブロック430はインデックスmをテストす
る。mがこの実施例でフィルタインパルス応答長20に等
しい場合、現在の反復は完了し、フローはブロック418
に移行し、ここでmは0に設定され、nはインクリメン
トされる。フローはブロック416に戻る。ブロック420
で、mがフィルタインパルス応答長20より少ない場合、
フローはブロック434に移行し、ここで部分的合計が累
計される。フローはブロック422に移行し、ここでイン
デックスmはインクリメントされ、フローはブロック42
0に進む。
ブロック414から424により形成された初期コンボリュ
ーションループに含まれる動作は、DSPコア4内で実行
され、ここで適切なピンポン処理が提供され、ブロック
424に示すような積の累計を行うことができる。次の動
作はピンポン計算処理を示し、これは単一クロックサイ
クルでDSPコア4内で行われる。フィルタ応答値h(m
+1)がRAM A104からフェッチされ、AREG130に提供さ
れる。C0REG164内に存在する部分和y0(n+m−1)
は、マルチプレクサ168及び180を介してRAM C182に提供
される。この部分和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入力に提供される。本実施例では、中心
がクリップされた(clipped)ガウスコードブック(Gau
ssian codebook)CI(n)が大多数の0値を含む。こ
の条件を節電特性として利用するために、DSPコア4は
先ず、コードブックベクトルがブロック424内で0か否
かチェックする。0の場合、ブロック424で通常行われ
る前述の乗算及び加算ステップはスキップされる(skip
ped)。この処理は乗算及び加算動作の約80%を除去
し、従って電力が節約できる。加算器146の出力はマル
チプレクサ148を介してC0REG164に提供される。C0REG内
のこの値はマルチプレクサ168及び180を介してRAM C182
に提供される。インデックスnがブロック416内のその
最大許容値に達すると、初期コンボリューションは完了
し、RAM C182内の部分和はコンボリューションの最終結
果となる。
初期のコンボリューションが完了すると、フローはブ
ロック426に移行し、ここで再帰的コンボリューション
が、他のコードブックインデックス値に関する計算にお
いて行われる。
ブロック426において、サンプルインデックスnは0
に設定され、コードブックインデックスIはインクリメ
ントされる。フローはブロック428に移行する。ブロッ
ク428はIをテストする。Iが128(本実施例での最大コ
ードブックインデックス値)以上の場合、フローはブロ
ック430に移行し、ここでコードブックサーチ動作は終
結する。Iが127以下の場合、フローはブロック432に移
行する。ブロック432は前述のピンポン動作を制御す
る。ブロック432では、Iが偶数か奇数か判定される。
Iが偶数の場合、フローはブロック442に移行する(ケ
ースIで説明する動作)。Iが奇数の場合、フローはブ
ロック434に移行する(ケースIIで説明する動作)。
ケース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からフェッチされ、DREG
156及びAREG130に、マルチプレクサ158及び100を各々介
して提供される。
ブロック444では、合成されたスピーチサンプルイン
デックスnはインクリメントされる。制御ブロック446
では、合成スピーチサンプルインデックスnが20より小
さい場合、フローはブロック448に進む。
ブロック448では、新たなyI(n)が各クロックサイ
クルで式56に従って計算される。yI−1(n−1)及び
h(n)の値を初期化するためにブロック448の最初の
反復に先立って、適当な設定がブロック442内で前述し
たように行われる。yI(19)の最終値を格納するため
に、ブロック448の最後の反復の次に、適当なクリーン
アップも必要である。
ブロック448の最初の反復において、ブロック442で計
算されたyI(0)は、C0REG164内に存在する。C0REG164
はyI(0)を、マルチプレクサ168及び180を介して、RA
M C182に提供し、アドレスユニットC186からRAM C182に
提供されるアドレス値により格納する。
ブロック448では、次の動作が単一クロックサイクル
で実行される。yI−1(n)値はRAM B122により、アド
レスユニットB120により提供されるアドレスに従い、マ
ルチプレクサ118及び158を介して、DREG156に提供され
る。インパルス応答値h(n+1)はRAM A104により、
アドレスユニットA102により提供されるアドレスに従っ
て、マルチプレクサ108を介して、AREG130に提供され
る。DREG156はyI−1(n−1)を、マルチプレクサ15
4、ディセーブルされたインバータ要素152、及びバレル
シフター150を介して、加算器146の第1入力に提供す
る。AREG130はh(n)を、及びBREG134はCI(n)を
乗算器132に提供し、ここで2つの値は乗算され、その
積はマルチプレクサ138を介して乗算器132により、デイ
セーブルされたバレルシフター140を介して、加算器146
の第2入力に提供される。加算器146の出力はマルチプ
レクサ148を介してC0REG164に提供される。以前の反復
で計算されたC0REG164の値は、マルチプレクサ168及び1
80を介してRAM C182に格納され、最小化プロセッサ412
に提供される。
制御ブロック446では、合成されたスピーチサンプル
インデックスnが20に等しい場合、最後の反復で計算さ
れたyI(19)は、フローがブロック454に進む前に、マ
ルチプレクサ168及び124を介して、循環バッファ内のRA
M B122に格納され、最小化プロセッサ412に提供され
る。
ケースIの終わり ケースII(コードブックインデックスIが奇数の場合) ブロック434において、yI(0)が式55に従って計算
される。アドレスユニットA102はRAM A104にアドレス値
を提供し、RAM A104はこれに応じてh(0)をマルチプ
レクサ108を介してAREG130に提供する。同一クロックサ
イクルで、アドレスユニットE112はアドレス値をROM E1
14に提供し、ROM E114はこれに応じてCI(0)をマル
チプレクサ116を介してBREG134に提供する。次のサイク
ルの間、AREG130はh(0)を、及びBREG134はCI
(0)を乗算器132に提供し、ここで2つの値は乗算さ
れ、その積は乗算器138を介して、ディセーブルされた
バレルシフター140を介して加算器146の第1入力に提供
される。加算器146の第2入力には、マルチプレクサ15
4、ディセーブルされたインバータ要素152、及びバレル
シフター152を介して0が提供される。加算器146の出力
はC0REG164にマルチプレクサ148を介して提供される。
同一クロックサイクルの間、yI−1(0)及びh(1)
は、RAM C182及びRAM A104からフェッチされ、DREG156
及びAREG130に、マルチプレクサ158及び100を各々介し
て提供される。
ブロック436では、合成されたスピーチサンプルイン
デックスnがインクリメントされる。制御ブロック438
では、合成されたスピーチサンプルインデックスnが20
より小さい場合、フローはブロック440に進む。
ブロック440では、新たなyI(n)値が各クロックサ
イクルで、式56に従って計算される。yI−1(n)及び
h(n)の値を初期化するために、ブロック440の最初
の反復に先立って必要な適当な設定が、前述したように
ブロック434で行われる。yI(19)の最終値を格納すた
めに、ブロック440の最後の反復の次に、適当なクリー
ンアップも必要である。
ブロック440の最初の反復において、ブロック434で計
算されたyI(0)はC0REG164内に存在する。C0REG164は
yI(0)を、マルチプレクサ168及び180を介して、RAM
B122に、アドレスユニットB120からのRAM Bのアドレス
値を用いて格納する。yI(0)はRAM B122に提供される
のと同時に、最小化プロセッサ412に提供る。
ブロック440では、次に示す動作が単一クロックサイ
クルで実行される。yI−1(n)値はRAM C182により、
アドレスユニットC184により提供されるアドレスに従っ
て、マルチプレクサ158を介してDREG156に提供される。
インパルス応答h(n+1)はRAM A104により、アドレ
スユニットA102により提供されるアドレスに従って、マ
ルチプレクサ108を介してAREG130に提供される。DREG15
6はyI−1(n−1)を、マルチプレクサ154、ディセー
ブルされたインバータ要素152、及びバレルシフター150
を介して加算器146の第1入力に提供する。AREG130はh
(n)を、及びBREG134はCI(n)を乗算器132に提供
し、ここで2つの値は乗算され、その積は乗算器132に
より、マルチプレクサ138を介し、バレルシフター140を
介して、加算器146の第2入力に提供される。加算器146
の出力はマルチプレクサ148を介してC0REG164に提供さ
れる。以前の反復で計算されたC0REG164の値は、マルチ
プレクサ168及び124を介してRAM B122に格納され、最小
化プロセッサ412に提供される。
ブロック436では、合成されたスピーチサンプルイン
デックスnはインクリメントされる。制御ブロック438
では、合成されたスピーチサンプルインデックスnが20
に等しい場合、フローがブロック454に進む前に、最終
反復で計算されたyI(19)はマルチプレクサ168及び124
を介して、RAM B122に提供され、RAM B122の循環バッフ
ァ内に格納され、最小化プロセッサ412に提供される。
ケースIIの終わり ブロック454の最初の反復の前に、yI−1(19)がRAM
B122内の循環バッファからフェッチされ、BREG134にロ
ードされる。yI−1(20)がRAM B122内の循環バッファ
からフェッチされ、BREG134にロードされた後、yI−1
(19)はBREG134からC0REG164へ移動される。
ブロック454では、新たなyI(n)が、各クロックサ
イクルで式57に従って計算される。次の動作が単一クロ
ックサイクルの間に実行される。yI−1(n−2)がBR
EG134によりC0REG164に提供される。yI−1(n−3)
はRAM B122内の循環バッファからフェッチされれ、BREG
134にロードされる。C0REG164に存在するyI−1(n−
1)は最小化プロセッサ412に提供される。ブロック454
の最終反復の次に、yI−1(LC−2)がRAM B122内の
循環バッファから削除される。各コードブックインデッ
クスにおいて、RAM B122内の循環バッファに対して要素
を加え及び要素を減算することにより、循環バッファの
サイズはLC−19に維持される。RAM B122内の循環バッ
ファの導入は、アドレスユニットB120内の専用アドレス
レジスタを介して行われ、このレジスタはシーケンシャ
ルメモリが自動的に循環形式でアドレスできるように、
丸め込み点を示す。
ブロック450では、合成されたスピーチサンプルイン
デックスnがインクリメントされる。制御ブロック452
では、合成されたスピーチサンプルインデックスnがL
Cより小さい場合、フローは再びブロック454に戻る。合
成されたスピーチサンプルインデックスnがLCに等し
い場合、全てのyI(n)値が現在のコードブックインデ
ックス値Iについて計算されており、フローはブロック
426に戻る。
合成されたスピーチサンプル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相対測定値を計算する。各コードブ
ックベクトルIについて、MSEは合成されたスピーチサ
ンプルシーケンスのコードブックゲインGの有り得る全
ての値に関して計算される。最小化プロセッサ412は、
全てのコードブックベクトルインデックス値Iに対する
最小MSE、及び有り得るコードゲイン値Gを、現在のコ
ードブックベクトルインデックスIと現在のコードブッ
クゲインGを介して、最小MSEの値を維持することによ
り計算する。最小MSEに対応するコードブックベクトル
インデックス概算及びコードブックゲインインデック
ス概算も、最小化プロセッサ412により保持される。
新MSE値は最小化プロセッサ412内に維持されているMSE
最小値と各々比較される。新MSEが最小MSEより小さい場
合、最小MSEは新MSE値に置き代わり、コードブックベク
トルインデックス概算及びコードブックゲイン概算イ
ンデックスは更新され、新たな最小MSEを反映する。
最小化プロセッサ412に保持されている最小MSEと、対応
するコードブックベクトルインデックス概算及びコー
ドブックゲイン概算インデックスは、各コードブック
サブフレームで、そのコードブックサブフレームの間に
計算された第1のMSE値を用いて初期化される。全ての
コードブックベクトルインデックスI及び全てのコード
ブックゲイン値Gが検討された後、コードブックベクト
ルインデックス概算及びコードブックゲイン概算イン
デックスは各々、現在のコードブックサブフレームに
対する最適なコードブックベクトルインデックス及び最
適なコードブックゲインインデックスである。最小化プ
ロセッサ412は最適なコードブックベクトルインデック
ス及び最適なコードブックゲインインデックスを、
入力ポート12を介してDSPコア4に提供する。最適なコ
ードブックベクトルインデックス及び最適なコードブ
ックゲインインデックスは、知覚的に重み付けされた
スピーチサンプルxC(n)と、重み付けされた合成スピ
ーチサンプルyI(n)の間の最小MSEを生じるものであ
る。MSEは次式59〜61によって示されるコードブックイ
ンデックスIと、コードブックゲインGの関数である。
ExCxCは知覚的に重み付けされたスピーチサンプルxC
(n)の自動相関である。ExCyIは知覚的に重み付けさ
れたスピーチサンプルxC(n)と、重み付けされた合成
スピーチサンプルyI(n)の間の自動相関である。EyIy
Iは知覚的に重み付けされた合成スピーチサンプルyI
(n)の自動相関である。
知覚的に重み付けされたスピーチサンプルxC(n)の
自動相関ExCxCは、コードブックゲインGの関数ではな
い。ExCxCは各コードブックサブフレームの間、一定値
であるから、最適コードブックベクトルインデックス及
び最適コードブックゲインの選択に影響することはな
い。コードブックベクトルインデックスI及びコードブ
ックゲインGに対する式59〜61の最小化は、次の式62の
最小化処理と等価である。
MSE(I,G)=−2GExCyI+G2EyIyI (62) 最小化プロセッサ412は、重み付けされた合成スピー
チサンプルシーケンスyI(n)の自動相関EyIyI、及び
知覚的に重み付けされたスピーチサンプルシーケンスxC
(n)と、重み付けされた合成スピーチサンプルシーケ
ンスyI(n)の間の自動相関ExCyIを計算する。各相関
対(ExCyI,EyIyI)に対して、最小化プロセッサ412は、
前述の式62に従って、コードブックゲインGのセットに
ついて、相対MSEを計算する。相関ExCyI及びEyIyIの計
算は、最小化プロセッサ412内で同時に行われる。相対M
SE値が計算され、MSE最小化に関する決定がコードブッ
クベクトルインデックスIについて行われる一方で、相
関値はコードブックベクトルインデックスI+1につい
て計算される。
図6a及び6bは最小化プロセッサ412の一実施例を示
す。知覚的に重み付けされたスピーチサンプルxC(n)
は、DSPコア4により、最小化プロセッサ412に提供され
る。コードブックゲイン値の2つのセットはDSPコア4
により最小化プロセッサ412に提供される。1つのセッ
トはプラスのコードブックゲイン値Gのためのもので、
第2のセットはマイナスのコードブックゲイン値−Gの
ためのものである。最大定格速度及び1/2定格におい
て、スケールされたコードブックゲイン値−2G(+4.0d
Bステップで、G=−4.0dB〜G=+8.0dB)がDSPコア4
により、マルチプレクサ260を介して、ラッチ292、28
8、284及び280の格納部に各々提供される。1/4定格及び
1/8では、スケールされたコードブックゲイン値−2G
(+2.0dBステップで、G=−4.0dB〜G=+2.0dB)がD
SPコア4により、マルチプレクサ260を介して、ラッチ2
92、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)がマルチプレクサ26
0を介して、ラッチ276、272、268及び264の格納部に各
々提供される。対応するスケールされたコードブックゲ
イン値G2は、マルチプレクサ260を介して、ラッチ274、
270、266及び262の格納部に各々提供される。マルチプ
レクサ260は値をラッチ262に直接提供する。ラッチ262
はラッチ264に値を直接提供する。ラッチ276はラッチ27
8に値をマルチプレクサ249を介して提供する。ラッチ29
0はラッチ292に値を直接提供する(以下同様)。ラッチ
262〜292のシフト値及びマルチプレクサ294により、マ
ルチプレクサ260を介して循環バッファ259内の全てのラ
ッチに値を提供できる。コードブックサーチにおいて、
2つの循環バッファが循環バッファ259内に提供され
る。知覚的に重み付けされたスピーチサンプルxC
(n)、及びコードブックゲイン値の格納の次に、重み
付けされた合成スピーチサンプルyI(n)のシーケンス
がラッチ210に提供される。重み付けされた合成スピー
チサンプルyI(n)はラッチ210により、乗算器216の2
つの入力に提供され、乗算器216は重み付けされた合成
スピーチサンプルの二乗(yI(n))を生成する。ラ
ッチ210も重み付けされた合成スピーチサンプルyI
(n)を、乗算器218の第1入力に提供する。RAM X212
は知覚的に重み付けされたスピーチサンプルxC(n)
を、ラッチ214を介して乗算器218の第2入力に提供す
る。乗算器218は積xC(n)yI(n)を計算する。新た
な二乗(yI(n))及び新たな積xC(n)yI(n)
は、乗算器216及び218により、各サイクルで各々計算さ
れる。サンプルインデックスnは0からLC−1まで、
各コードブックベクトルインデックスIについて変化す
る。
重み付けされた合成スピーチサンプルの二乗(yI
(n))はアキュムレータ221に提供される。積xC
(n)yI(n)はアキュムレータ231に提供される。ア
キュムレータ221は、各コードブックベクトルインデッ
クスIに対するLC二乗の合計を計算する。アキュムレ
ータ231は各コードブックベクトルインデックスIに対
するLC積の合計を計算する。
新たな各コードブックベクトルインデックスの前に、
ラッチ226にはマルチプレクサ224を介して0が提供され
る。これでアキュムレータ221は、現在のコードブック
ベクトルインデックスIに対する自動相関Ey1y1を計算
する準備が整う。アキュムレータ221では、二乗(yI
(n))が加算器222の第1入力に提供される。不足
している合計はラッチ226により加算器222の第2入力に
提供される。新たに計算された不足している合計は加算
器222により、マルチプレクサ224を介してラッチ226に
格納される。コードブックベクトルインデックスIに関
する全てのLCに対する累計の後、自動相関Ey1y1はラッ
チ228に格納される。
新たな各コードブックベクトルの前に、ラッチ236に
は、マルチプレクサ234を介して0が提供される。これ
でアキュムレータ231は現在のコードブックベクトルイ
ンデックスIに対する交差相関ExCy1を計算する準備が
整う。アキュムレータ231では、積xC(n)yI(n)が
加算器232の第1入力に提供される。不足している合計
はラッチ236により加算器232の第2入力に提供される。
新たに計算された不足合計は、加算器232により、マル
チプレクサ234を介してラッチ236に格納される。コード
ブックベクトルインデックスIに対する全てのLC値に
ついて累計した後、交差相関ExCy1はラッチ238に格納さ
れる。
式62により示されるMSEは、以下に説明する2サイク
ル処理により計算される。
2サイクルの第1サイクルにおいて、ラッチ238は知
覚的に重み付けされたスピーチサンプルと重み付けされ
た合成スピーチサンプル間の交差相関ExCy1を、マルチ
プレクサ230を介して乗算器240の第1入力に提供する。
制御要素220はラッチ238により提供されたExCy1をモニ
タする。ExCy1がマイナスではない場合、ラッチ292はス
ケールされたコードブックゲイン値−2Gを、マルチプレ
クサ296を介して乗算器240の第2入力に提供する。その
積−2GExCy1は乗算器240により加算器242の第1入力に
提供される。ExCy1がマイナスの場合、ラッチ276はスケ
ールされたコードブックゲイン値2Gを、マルチプレクサ
296を介して乗算器240の第2入力に提供する。その積2G
ExCy1は乗算器240により、加算器242の第1入力に提供
される。加算器242の第2入力にはマルチプレクサ246を
介して0が提供される。加算器242の出力はラッチ244に
格納される。ExCy1の符号は制御要素220に格納される。
ExCy1の1及び0の符号は、ExCy1のマイナス及び非マイ
ナスに各々対応する。ラッチ262〜276内の値は、ラッチ
276の出力をラッチ262にマルチプレクサ260を介して提
供することにより回転する。この回転の後、ラッチ26
2、264、266、268、270、272、274及び276は、以前、ラ
ッチ276、262、264、266、268、270、272及び274に各々
含まれていた値を含むことになる。ラッチ278〜292内の
値は、ラッチ292の出力をラッチ278にマルチプレクサ29
4を介して提供することにより回転する。この回転の
後、ラッチ278、280、282、284、286、288、290及び292
は、以前、ラッチ292、278、280、282、284、286、288
及び290に各々含まれていた値を含むことになる。1つ
の循環バッファはラッチ262〜276及びマルチプレクサ26
0を含む。第2循環バッファはラッチ278〜292及びマル
チプレクサ294を含む。循環バッファ259内の2つの循環
バッファの第1のバッファの値を回転することにより、
ラッチ292は第1及び第2サイクルに−2G及びG2を提供
する。相関及び交差相関値の各対について、1つのコー
ドブックゲイン対のセットのみが循環バッファ259によ
り提供される。コードブックゲイン対のセットが、ExCy
1のマイナスの値について、ラッチ262〜276及びマルチ
プレクサ260からなる循環バッファにより提供される。
コードブックゲイン対のセットが、ExCy1の非マイナス
の値について、ラッチ278〜292及びマルチプレクサ260
からなる循環バッファにより提供される。
2サイクルの第2サイクルでは、ラッチ228はEy1y1
を、マルチプレクサ230を介して乗算器240の第1入力に
提供する。マルチプレクサ296を介して、ラッチ276及び
292はコードブックゲイン値G2を、ExCy1のマイナス及び
非マイナスの値に対応して、乗算器240の第2入力に各
々提供する。その積G2Ey1y1は乗算器240により、加算器
242の第1入力に提供される。加算器242の第2入力に
は、マルチプレクサ246を介してラッチ244の出力±2GEx
Cy1が提供される。加算器242は±2GExCy1+G2Ey1y1をラ
ッチ244に格納する。循環バッファ259のラッチ262〜292
の値は前述したように回転される。
前述の2サイクル処理は、各コードブックインデック
スIに対するコードブックゲイン値の4つの全ての対
(±2G,G2)について繰り返される。現在のMSE値±2GEx
Cy1+G2Ey1y1の計算に続く2サイクルの間、新たなMSE
値が±2G及びG2値の次の対を用いて計算される。ラッチ
244が新たなMSE値で更新される前に、現在のMSE値は、
ラッチ250に格納されている現在のコードブックサブフ
レームに対する最小MSEと比較される。現在のMSE値±2G
ExCy1+G2Ey1y1は、ラッチ244により減算器248のプラス
入力に提供される。ラッチ250は現在の最小MSE値を減算
器248のマイナス入力に提供する。制御要素220は減算器
28から出力される結果的な差をモニタする。この差がマ
イナスの場合、現在のMSE値は現在のコードブックサブ
フレームに対する新たな最小MSEであり、ラッチ250に格
納され、それに対応するコードブックベクトルインデッ
クス概算、及びコードブックゲイン概算インデックス
は制御要素220内で更新される。この差が非マイナス
の場合、現在のMSE値は無視される。
各コードブックサブフレームの前に、DSPコア4は最
小化プロセッサ412にコマンドを発送し、制御要素220に
新コードブックサブフレームが続くことを知らせる。こ
のコマンドを受信すると、現在のコードブックベクトル
インデックス及び現在のコードブックゲインインデック
スは制御要素220において0に設定される。重み付けさ
れた合成スピーチサンプルの新たな各シーケンスが最小
化プロセッサ412に提供される前に、DSPコア4は最小化
プロセッサ412にコマンドを発送し、制御要素220に重み
付けされた合成スピーチサンプルの新たな各シーケンス
が続くことを知られる。このコマンドを受信すると、制
御要素220は現在のコードブックベクトルインデックス
及び現在のコードブックゲインインデックスを1だけイ
ンクリメントし、これは1のコードブックベクトルイン
デックスのインクリメント及び速度に応じて2dB又は4dB
のコードブックゲインのインクリメントに対応する。重
み付けされた合成スピーチサンプルの第1シーケンスが
最小化プロセッサ412に提供される間、現在のコードブ
ックベクトルインデックス及び現在のコードブックゲイ
ンインデックスは1に等しく、これは0のコードブック
インデックスベクトル及び速度に応じて−8dB又は−4dB
のコードブックゲインのインクリメントに対応する。各
コードブックサブフレームの間、第1MSE値はラッチ250
に格納され、対応するコードブックベクトルインデック
ス概算及びコードブックゲイン概算インデックスは
制御要素220内で更新される。これは、各コードブック
サブフレームで最小MSEを初期化するために行われる。
最小MSE概算に対応するコードブックベクトルインデッ
クス及びコードブックゲインインデックスは、制御要素
220によりDSPコア4に、最小MSEに対応する交差相関ExC
y1の符号と共に提供される。DSPコア4はExCy1に関する
1を受信すると、最適コードブックゲインを−Gに設定
する。DSPコア4は制御要素220により提供されるコード
ブックベクトルインデックス概算及びコードブックゲイ
ン概算インデックスを使用して、最適コードブックベク
トル及び最適コードブックゲインを決定する。最大定格
速度及び1/2定格で、最適コードブックゲインGは、コ
ードブックゲインインデックス=1〜=4の各々に
ついて、−4dB、0dB、+4dB及び+8dBである。1/4定格
及び1/8定格で、最適コードブックゲインGは、コード
ブックゲインインデックス=1〜=4の各々につい
て、−4dB、−2dB、0dB及び+2dBである。
コードブックサーチにおいて、式62のMSE関数MSE(I,
G)の特性により、コンピュータ処理を節約できる。現
在のコードブックベクトルに対する他のMSE計算は、残
りのMSE値が(現在のコードブックベクトルについての
計算が行われていても)ラッチ250内に格納された現在
の最小MSEより少ないMSE値を生じることはないと判断さ
れた場合、中止できる。本実施例では、コードブックサ
ーチでのコンピュータ計算を節約するために3つの技術
が、最小化プロセッサ412において適用される。MSE関数
MSE(I,G)はG内で二次方程式である。1つの二次方程
式が各コードブックベクトルインデックスIについて計
算される。これら全ての二次方程式は原点G=0及びMS
E(I,G)=0を通る。
第1のコンピュータ処理の節約は、ExCy1の符号に応
じて、プラス又はマイナスのコードブックゲイン値の一
方をサーチすることを含む。ExCy1のマイナスの値及び
マイナスのゲイン値は、式62の項−2GExCy1に対してマ
イナスの値を生じる。ExCy1のプラスの値及びプラスの
ゲイン値も、式62の項−2GExCy1に対してマイナスの値
を生じる。なぜなら、式62の項G2EyIyIは常にプラス
で、項−2GExCy1のマイナスの値はMSEを最小化する傾向
があるからである。コードブックゲイン対の2つのセッ
トは循環バッファ259に提供され、1つはプラスのコー
ドブックゲイン値で、第2のものはマイナスコードブッ
クゲイン値である。このようにして、ゲイン値の4つの
対のみが、各コードブックベクトルインデックスIに対
して8つのゲイン対の代わりに使用される。
第2のコンピュータ処理節約方法は、MSE関数の二次
方程式的特徴に基づいて、現在のコードブックベクトル
のコードブックサーチ処理での他のMSE値の計算を中止
することを含む。MSE関数MSE(I,G)は、単調に増加す
るコードブックゲイン値について計算される。プラスの
MSE値が現在のコードブックベクトルについて計算され
たとき、現在のコードブックベクトルに対する残り全て
のMSE計算は、対応するMSE値が現在のMSE値より大きい
として中止される。
第3のコンピュータ処理節約方法は、MSE関数の二次
方程式的特徴に基づいて、現在のコードブックインデッ
クスベクトルのコードブックサーチ処理での他のMSE値
の計算を中止することである。MSE関数MSE(I,G)は、
単調に増加するコードブックゲイン値について計算され
る。MSE値が、新たな最小MSEではないと判断された現在
のコードブックベクトル内で計算されるとき、及びMSE
値が、新たな最小MSEであると既に判断された現在のコ
ードブックベクトル内で計算されたとき、現在のコード
ブックベクトルでの残り全てのMSE計算は、残りのMSE値
は新たなMSEより小さくなくことはないとして中止され
る。以上3つのコンピュータ処理節約方法により、最小
化プロセッサ412内の電力消費を著しく削減できる。
ブロック84ではコードブック値が量子化される。ブロ
ック86は全てのサブフレームが処理されたかチェックす
る。全てのコードブックサブフレームがまだ処理されて
いない場合、フローはブロック80に戻る。全てのコード
ブックサブフレームが処理さている場合、フローはブロ
ック88に進む。ブロック88は全てのピッチサブフレーム
が処理されたかチェックする。全てのピッチサブフレー
ムがまだ処理されていない場合、フローはブロック70に
戻る。全てのピッチサブフレームが処理されている場
合、フローはブロック90に進む。
ブロック90では、エンコード結果が特定フォーマット
でパックされる(packed)。最大定格速度(full rat
e)で、22バイトのデータがマイクロプロセッサ(図示
されず)により読み込まれる。1/2定格(half rate)で
は、10バイトが読み込まれ、1/4では5バイト、1/8では
2バイト読み込まれる。最大定格速度では11のパリティ
チェックビットが発生されてエラー校正が行われ、最大
定格速度データの最上位18ビットの検出が行われる。
送信器でのエンコーダは、フィルタメモリを更新する
ために、受信器でのデコーダの状態を保持しなければな
らない。このフィルタメモリはエンコーダにより、ピッ
チ及びコードブックサーチ処理に用いられる。本実施例
では、エンコーダは全てのコードブックサブフレームの
後に使用されるデコーダ形式を含んでいる。
次に説明するデコーディング動作が、エンコーダの一
部としてDSPコア4内で行われる。図11において、現在
のコードブックサブフレームについて決定された最適コ
ードブックベクトルインデックス及び最適コードブッ
クゲインが、スケールされたコードブックベクトルCd
(n)を発生するのに使用される。1/8の速度を除き、
コードブック502には現在のコードブックサブフレーム
について決定された最適コードブックインデックスが
提供され、その結果、対応する励起ベクトルを乗算器50
4の第1入力に提供する。1/8の速度の場合、疑似ランダ
ムシーケンスがCd(n)に対して疑似ランダムベクトル
発生器500により発生され、このシーケンスは乗算器504
の第1入力に提供される。現在のコードブックサブフレ
ームについて決定された最適コードブックゲインは乗
算器504の第2入力に提供される。このシーケンスは受
信器のデコーダの場合と同一の疑似ランダム発生動作に
より発生される。
スケールされたコードブックベクトルCd(n)はピッ
チ合成フィルタ506に提供され、このフィルタはフォル
マント残余Pd(n)を発生する。ピッチ合成フィルタメ
モリは、発生したスピーチの最後のサンプルから得られ
る最終状態により初期化される。ピッチ合成フィルタ50
6は、現在のピッチサブフレームについて決定された最
適ピッチラグ及び最適ピッチゲインを使用する。1/
8の速度に対して、最適ピッチゲインは0に設定され
る。ピッチ合成フィルタメモリの最終状態は、前述した
ように次のピッチサブフレームに対するスピーチを発生
するため及び次のピッチサーチに使用するために、及び
エンコーダでのデコーディング動作用に保持される。
重み付けされたフォルマント合成フィルタ508は、フ
ォルマント残余Pd(n)から出力Yd(n)を発生する。
このフィルタは、発生されたスピーチの最後のサンプル
から得られる最終状態により初期化される。現在のサブ
フレームについて補間されたLSP値から計算されたLPC係
数は、このフィルタに対する係数として用いられる。こ
のフィルタの最終状態は、次のコードブックサブフレー
ムに対してスピーチを発生するために使用され、次のピ
ッチ及びコードブックサーチで使用される。
ブロック44及び50に示すデコーディング動作はDSPコ
ア4で行われる。ASICはマイクロプロセッサ(図示され
ず)からマイクロプロセッサインターフェース42を介し
てパケットを特定フォーマットで受信する。DSPコア4
はこのパケット内のデータをデコードし、スピーチサン
プルを合成するためにそれを使用し、これらサンプルは
PCMインターフェース2を介してコーデック(codec)
(図示されず)に供給される。DSPコア4では、受信し
たパケットを開き、スピーチサンプルを合成するために
必要なデータを得る。そのデータはエンコーディング速
度、LSP周波数、及びその速度での対応するサブフレー
ムに関するピッチとコードブックパラメータを含む。受
信したパケットデータからのスピーチサンプルの合成
は、図12に示すようにDSPコア4で行われる。
図12において、現在のコードブックサブフレームに対
応する最適コードブックベクトルインデックス及び最
適コードブックゲインは、スケールされたコードブッ
クベクトルCd(n)を発生するためにデコーダにより使
用される。1/8の速度を除き、コードブック522には現在
のコードブックサブフレームに対応する最適コードブッ
クインデックスが提供され、その結果、対応する励起
ベクトルを乗算器524の第1入力に提供する。1/8の速度
の場合、疑似ランダムシーケンスがCd(n)に対して疑
似ランダムベクトル発生器50により発生され、乗算器52
4の第1入力に提供される。このシーケンスは受信器で
デコーダにより用いられるのと同一の疑似ランダム発生
動作により発生する。現在のコードブックサブフレーム
に対応する最適コードブックゲイン値は乗算器524の
第2入力に提供される。
スケールされたコードブックベクトルCd(n)はピッ
チ合成フィルタ526に提供され、このフィルタはフォル
マント残余Pd(n)を発生する。ピッチ合成フィルタメ
モリは、発生されたスピーチの最後のサンプルから得ら
れる最後の状態により初期化される。ピッチ合成フィル
タ526は、現在のピッチサブフレームに対応する最適ピ
ッチラグ及び最適ピッチゲインを使用する。1/8の
速度に対して、最適ピッチゲインは0に設定される。こ
のピッチ合成フィルタの最終状態は保存され、前述した
ように次のピッチサブフレームに対するスピーチを発生
するときに使用される。重み付けされたフォルマント合
成フィルタ528は、フォルマント残余Pd(n)から出力Y
d(n)を発生する。このフィルタは、発生されたスピ
ーチの最終サンプルから得られる最後の状態により初期
化される。現在のサブフレームについて補間されたLSP
値から計算されたLPC係数は、このフィルタ用の係数と
して使用される。フィルタの最終状態は保存され、次の
コードブックサブフレームに対してスピーチを発生する
ときに使用される。
デコードされたスピーチYd(n)は後フィルタ(post
−filter)530に提供され、このフィルタは本実施例で
は、デコードされる現在のサブフレームに関するLPC係
数に基づくロングターム後フィルタ(long term post−
filter)530である。後フィルタ530は再構成されたスピ
ーチサンプルYd(n)を濾波し、濾波されたスピーチを
ゲイン制御532に提供する。ゲイン制御532は出力スピー
チsd(n)を制御し、自動ゲイン制御(AGC)を行う能
力を持っている。
以上、好適実施例の説明により、当業者は本発明を実
施又は使用できるものである。当業者は本発明に様々の
修正を施すことができ、ここで定義された基本原則は発
明的工程を含まずに他の実施例にも適用できる。従っ
て、本発明はこの明細書で説明された実施例に限定され
ず、ここで説明された原則及び新規な特徴を含む広範な
範囲で適用できる。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャン、チエンチュン アメリカ合衆国、カリフォルニア州 92131、サン・ディエゴ、サイプレス・ テラス 11456 (72)発明者 シン、ランディープ アメリカ合衆国、カリフォルニア州 92126、サン・ディエゴ、カミニト・ア ルバレズ 10466 (72)発明者 サカマキ、チャールス・イー アメリカ合衆国、カリフォルニア州 92128、サン・ディエゴ、ビア・ミラノ 12166 (72)発明者 ツァイ、ミン−チャン アメリカ合衆国、カリフォルニア州 92130、サン・ディエゴ、ミストラル・ プレイス 4427 (72)発明者 カンタク、プラシャント アメリカ合衆国、カリフォルニア州 92111、サン・ディエゴ、ナンバー 23、 アーンスクリフ・プレイス 3625 (56)参考文献 特開 平5−19794(JP,A) 特開 平4−233662(JP,A) 特開 平4−288599(JP,A) 特開 平5−313699(JP,A) 特開 平5−11800(JP,A) 特開 昭62−294300(JP,A) 特開 平3−101423(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10L 19/12 G10L 19/06

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】移動電話システムにおける合成スピーチサ
    ンプルを表す第1シーケンス及びスピーチサンプルを表
    す第2シーケンスの再帰的コンボリューションを実行す
    るための方法を実施するためのロジック装置であって、
    該方法は、 初期コンボリューションを実行し、 ステップインデックスが偶数かテストし、 第1メモリ要素から前記第1シーケンスを検索する工程
    と、 第2メモリ要素から前記第2シーケンスを検索する工程
    と、 前記ステップインデックスが奇数の場合、第3メモリ要
    素から得られる部分的コンボリューション結果を検索す
    る工程と、 前記検索された第1シーケンス、前記検索された第2シ
    ーケンス及び前記検索された部分的コンボリューション
    結果に従って部分的コンボリューションを実行する工程
    と、 前記ステップインデックスが偶数の場合、前記部分的コ
    ンボリューションの結果を前記第2メモリ要素に格納す
    る工程と、 前記ステップインデックスが奇数の場合、前記第2メモ
    リ要素から部分的コンボリューションを検索する工程
    と、 前記検索された第1シーケンス、前記検索された第2シ
    ーケンス及び前記検索された部分的コンボリューション
    に従って、部分的コンボリューションを行う工程と、 前記ステップインデックスが奇数の場合、前記部分的コ
    ンボリューションの結果を、前記第3メモリ要素に格納
    する工程と、 量子化された音響データの正確な合成を行うために、前
    記シーケンス間の差を最小にするために前記コンボリュ
    ーションの結果を処理するする工程と、 を具備することを特徴とする、該方法を実施するための
    ロジック装置。
  2. 【請求項2】前記方法は、循環バッファから以前に発生
    されたコンボリューションを検索する工程を更に具備す
    ることを特徴とする、請求項1記載の装置。
JP52193695A 1994-02-16 1995-02-13 ボコーダasic Expired - Lifetime JP3432826B2 (ja)

Applications Claiming Priority (3)

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
PCT/US1995/002043 WO1995022819A1 (en) 1994-02-16 1995-02-13 Vocoder asic

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003006296A Division JP4194851B2 (ja) 1994-02-16 2003-01-14 ボコーダasic

Publications (2)

Publication Number Publication Date
JPH08509306A JPH08509306A (ja) 1996-10-01
JP3432826B2 true JP3432826B2 (ja) 2003-08-04

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 After (1)

Application Number Title Priority Date Filing Date
JP2003006296A Expired - Lifetime JP4194851B2 (ja) 1994-02-16 2003-01-14 ボコーダ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)

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

Family Cites Families (20)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3432826B2 (ja) ボコーダasic
US6230255B1 (en) Communications processor for voice band telecommunications
RU2138030C1 (ru) Система передачи, терминальный блок, кодирующее устройство, декодирующее устройство и адаптивный фильтр
EP0503684A2 (en) Vector adaptive coding method for speech and audio
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) 音声符号化方式
Chen et al. A fixed-point 16 kb/s LD-CELP algorithm
US5924063A (en) Celp-type speech encoder having an improved long-term predictor
CA2520127C (en) Block normalization processor
AU725711B2 (en) Block normalisation processor
JP3073013B2 (ja) サンプリングされた音声信号ベクトルのコーディングの方法
Lee et al. Cost-effective implementation of ITU-T G. 723.1 on a DSP chip
Sunwoo et al. Real-time implementation of the VSELP on a 16-bit DSP chip
Olausson et al. The ADSP-21535 Blackfin and Speech Coding
Olausson et al. Instruction and Hardware Acceleration for MP-MLQ in G. 723.1
Ackenhusen et al. Single-chip implementation of feature measurement for LPC-based speech recognition
Byun et al. Implementation of 13 kbps QCELP vocoder ASIC
Lee et al. Software optimization of MPEG audio layer-III for a 32 bit RISC processor
Lee Implementation of linear predictive speech coding in fixed-point arithmetic
Chang et al. Real-Time Implementation of G. 723.1 Speech Codec on a 16-bit DSP Processor
Prasad et al. Half-rate GSM vocoder implementation on a dual Mac digital signal processor
EP1394773A1 (en) Method of coding a signal using vector quantization
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

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100523

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100523

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10

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