JP4951508B2 - デジタルメディアストリームの処理 - Google Patents

デジタルメディアストリームの処理 Download PDF

Info

Publication number
JP4951508B2
JP4951508B2 JP2007518220A JP2007518220A JP4951508B2 JP 4951508 B2 JP4951508 B2 JP 4951508B2 JP 2007518220 A JP2007518220 A JP 2007518220A JP 2007518220 A JP2007518220 A JP 2007518220A JP 4951508 B2 JP4951508 B2 JP 4951508B2
Authority
JP
Japan
Prior art keywords
sample
digital
interrupt
samples
processing
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.)
Active
Application number
JP2007518220A
Other languages
English (en)
Other versions
JP2008504572A5 (ja
JP2008504572A (ja
Inventor
カール ケイ ウェイクランド
Original Assignee
クリエイティヴ テクノロジー リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クリエイティヴ テクノロジー リミテッド filed Critical クリエイティヴ テクノロジー リミテッド
Publication of JP2008504572A publication Critical patent/JP2008504572A/ja
Publication of JP2008504572A5 publication Critical patent/JP2008504572A5/ja
Application granted granted Critical
Publication of JP4951508B2 publication Critical patent/JP4951508B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0091Means for obtaining special acoustic effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S7/00Indicating arrangements; Control arrangements, e.g. balance control
    • H04S7/30Control circuits for electronic adaptation of the sound field
    • H04S7/305Electronic adaptation of stereophonic audio signals to reverberation of the listening space

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Microcomputers (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Complex Calculations (AREA)

Description

本発明は、一般的にデジタルメディアデータを処理する分野に関する。より具体的には、一実施形態では、本発明は、時間及び周波数領域においてデジタルデータを処理する方法及びシステムに関する。
デジタルメディアストリーム(デジタル音声ストリーム等)の処理では、1)音声データのブロックが蓄積され、その後ユニットとして処理される「ブロックベース(BB)」アルゴリズム、及び2)音声データを一度に1つのサンプルで処理する「サンプル毎の(SS)」アルゴリズムという2種類のアルゴリズムの需要があることが判明している。周波数領域又はBBアルゴリズムは、より大きな計算柔軟性という利点を有し、例えば、より長い「有限インパルス応答」又はFIRフィルタが実現可能であり、かつ「高速フーリエ変換」又はFFTベースのアルゴリズムが有効にされ、その代償として、処理が開始可能になる前にデータブロックが蓄積されねばならず、従って待ち時間を付加する。SS処理は、非常に少ない待ち時間及びオーバーヘッド、並びにパラメータ変化への実質的に瞬時の応答という利点をもたらし、これらは、例えば、グラフィックイコライザへのパラメータの変更のような用途において非常に有益なものとすることができる。SS処理の低オーバーヘッドは、音声システムにおいて異なるSSソフトウエアアルゴリズムの動的なロード及びアンロードを大幅に簡素化し、それによって実時間入力に応答した音声ストリームのエフェクト処理への迅速な修正が可能になる。
従来技術の「デジタル信号処理」又はDSPシステムは、BB又はSSプロセッサのいずれかとして両方同時にではなく排他的に実行するように設計されている。従って、標準の従来技術手法は、SS及びBBアルゴリズムを別々のエンジン内で処理するか、又はSSアルゴリズムをBBアルゴリズムに変換し、待ち時間及びSSアルゴリズム性能に対するオーバーヘッドの不利益を許容するかのいずれかであった。
本発明によると、メディアデータ(例えば、デジタル音声又は映像など)を処理するためのデジタル処理装置及び方法が提供される。
本発明は、機械による実行時に本明細書で説明する方法のいずれかを機械に実行させる一連の命令を組み込む機械可読媒体に拡張される。
本発明の他の特徴は、添付図面及び下記の詳細説明によって明らかになるであろう。
これより、本発明を添付概略図面を参照して例示的に説明する。
デジタルメディアデータを処理する方法及び装置を説明する。下記の説明では、本発明の完全な理解を提供するために説明を目的として多くの特定の詳細を示す。しかし、当業者には、本発明をこれらの特定の詳細なしに実施することができることが明らかであろう。更に、音声データ処理を例示的に参照して本発明を説明するが、本発明は、あらゆるデジタルデータ(映像データを含む)を処理するために用いることができる点に注意すべきである。
図1を参照すると、参照番号20は、一般的にデジタル信号プロセッサ(DSP)モジュールのアーキテクチャを示しており、これは、一実施形態において同一の処理エンジン内における「サンプル毎(SS)」又は時間領域処理アルゴリズム、並びに「ブロックベース(BB)」又は周波数領域アルゴリズムのための統合化プログラミング環境を示している。処理エンジンは、SS領域とBB領域の間でデータを受け渡すための共有メモリインタフェース24(図5を参照)を含むDSP22とすることができる。例えば、データは、BB又は周波数領域処理エンジン26とSS又は時間領域処理エンジンとの間で受け渡すことができる。すなわち、DSP22によって処理される異なるエフェクトは、異なる処理又はエフェクトエンジン間でリンク又は受け渡すことができる。図1に示す処理エンジン22では、そのようなエンジンに含まれる様々な標準構成要素を明瞭化のために省略している。当業者は、省略した標準構成要素を即座に特定するであろう。一実施形態では、DSPモジュール20は、音声処理装置、例えばサウンドカードなどの一部を規定又は形成する。従って、DSPモジュール20は、「パーソナルコンピュータ」、MP3プレーヤ、携帯デジタルメディアプレーヤ、「携帯情報端末(PDA)」、セルラー電話、又は音声及び/又は映像のようなデジタルメディア処理のための他のあらゆる装置又は装置の一部とすることができる。
DSP22の例示的アーキテクチャは、ローカルな汎用レジスタ(GPR)を有する標準DSPプログラミングモデルをX/Yメモリ32と組み合わせることができる。一実施形態では、非常に大きなレジスタ空間(例えば、汎用レジスタ30)及び他の音声処理エンジンの間のデータ受け渡し(サンプル固定とすることができる)のためのバッファ(例えば、サンプルレート固定のピンポン(ping-pong)バッファ34−図1を参照)を有するサンプル毎のプログラミングモデルと共に並列アドレス発生が設けられる。BB及びSS環境は、例示的サンプルレート固定ピンポンバッファ34の切り換えに同期する割り込み(例えば、低待ち時間のサンプルレート固定割り込み36)によって相互に連結することができる。一実施形態では、サンプルレート固定割り込み36は、サンプル固定時間ベースモジュール38によって発生される。一実施形態では、DSP22、サンプル固定時間ベースモジュール38、及びバッファ34は、全て単一のVLSIチップ又は回路上に統合される。従って、サンプル固定時間ベースモジュール38及びバッファ34は、すなわち、それ自体DSP22の電気回路内に統合することができる。
例示的な一実施形態では、複数のソフトウエアDSPエフェクト(例えば、残響、エコー、合唱、グラフィック等化、空間化など)の同時の動的割り当ては、DSP22においてスレッドインターリーブ・プロセッサアーキテクチャを用いて共有メモリ環境40(図5を参照)内に与えられる。例えば、各DSPスレッドは、SS処理のために独自又は専用の大きなレジスタセットを有することができるが、共有メモリ40(データブロックをBB処理に向けて受け渡す時に利用することができる)又は特定のスレッドのI/O空間の中にマップすることができるサンプルレート固定ピンポンバッファ34のいずれかを通じて通信することができる。すなわち、各DSPスレッドは、サンプルレート固定データを1つのスレッドから別のスレッドへとスレッド間で送受信するか、又は音声バス42又はDMAインタフェース又はコントローラ44などを通じてDSP22の外側にある外部のサンプル固定処理エンジンとの間で送受信するかのいずれかの機能を有することができる。各個々のインターリーブされたスレッドは、同期SS処理のために同一の低待ち時間サンプルレート固定割り込みソース(例えば、割り込み36)によって割り込みを入れることができる。共有メモリ環境40は、DSP22内に統合し、DSPのI/O空間の中にマップすることができる。
一実施形態では、ピンポンバッファ34は、その入力及び出力においてダブルバッファ方式にされる。サンプルレート固定マルチプレクサ又は多重通信回路は、所定のサンプル期間内でDSP22及び音声バス42の一方のみが所定のバッファへのアクセスを有するように音声バス42とDSP22の間に設けられたピンポンバッファ34を制御することができる。従って、一実施形態では、DSP22及び音声バス42の両方による所定のバッファへの同時アクセスは許されない。ピンポンバッファ34では、一方のバッファが新しいデジタルデータ送信信号を送受信している間に、他方のバッファは、オペレーション中の前のデータ送信信号を保持する。
図1の例示的DSPモジュール22は、ネストされた割り込みコントローラ46を含むスレッドインターリーブDSPとすることができ、このコントローラ46は、サンプル固定時間ベースモジュール38からサンプルレート固定割り込み36(サンプル固定割り込み通知)を受信し、続いてこの割り込み36は、例示的なサンプル同期の音声バス42のサンプルレートとの同期が取られる(サンプルクロック参照等により)。また、DSP22は、サンプルレート固定ピンポンバッファ34、特にそのサンプル同期の入力バッファ48及びサンプル同期の出力バッファ50と結合される。入力及び出力バッファ48、50は、上述のサンプル固定割り込み36と同期して切り換わるピンポンバッファである。各ピンポンバッファ48、50の一方の側は、「I/Oデータ経路」52、54を通じてDSPに対して可視であり、DSP22のI/Oレジスタマップ56を通じて読み書きすることができる。各ピンポンバッファ48、50の他方の側は、サンプル同期の音声データバス42に対して可視であり、この他方の側を通じてサンプル同期のデータをDSPと他の音声処理ブロック又はモジュール(例えば、VLSIチップ内の)との間で受け渡すことができる。
一実施形態では、ネストされた割り込みコントローラ46は、サンプル固定割り込みが他のあらゆる割り込み又はDSPスレッドのフォアグラウンド活動に優先することを可能にし、SS処理が実行されている最中にDSP22を「時間領域割り込みサブルーチン(TDISR)」へと進入させる。割り込みコントローラ46のこの「時間領域割り込みサブルーチン」に向けた優先特性により、各DSPスレッドに対する最大割り込み待ち時間の保証が得られる。例えば、各スレッドに対して非常に低いパイプライン待ち時間をもたらす4スレッドパイプライン−インターリーブDSPアーキテクチャは、この最大待ち時間が非常に低く、予測可能であることを保証し、一般的に3〜4スレッドの命令サイクルを必要とする。
参照番号70は、一般的に時間領域又はサンプル毎のデータを処理するための本発明による例示的方法を示している。方法70は、フォアグラウンドルーチンに対する割り込みに応答して実行されるバックグラウンドルーチンとして実施することができる。判断オペレーション72に示すように、方法70は、割り込み(例えば、サンプル固定割り込み36)が発生する時点をモニタし、判断が真であった場合はオペレーション74に進む。割り込み36は、他の全てのDSP割り込み及びあらゆるDSPスレッドのフォアグラウンド活動に優先することができる(オペレーション74を参照)。この後、オペレーション76に示すように、方法70は、DSPを特定のスレッドのための「時間領域割り込みサブルーチン」へと進入させる。
「時間領域割り込みサブルーチン」内で実行される機能は、エフェクト毎に異なることができ、各DSP22は、各々が異なるエフェクトに専用化された複数の異なるサブルーチンを含むことができる。例えば、ある一定の「時間領域割り込みサブルーチン」は、エコーに向けて設けられ、異なる「時間領域割り込みサブルーチン」は、残響に向けて設けられるという具合である。各エフェクトは、エフェクトを処理するために専用の汎用レジスタ(汎用レジスタ30を参照)を有することができる。判断オペレーション72に戻ると、割り込み36がない情況では、方法70は、オペレーション78に示す他のフォアグラウンド活動を続けることができる。
「時間領域割り込みサブルーチン」の例示的機能を図3に示している。オペレーション80に示すように、割り込み通知を受信すると、着信サンプルを入力バッファ48によって読み取ることができる。1つの着信サンプルは、処理中の各音声ストリームに対して読み取ることができる。一実施形態では、音声バッファ48内のサンプルデータは、エフェクト毎に配列され、従って、そのサンプルデータをエフェクト毎に入力バッファ48から読み取ることができる。この後、サンプルデータは、DSP22内のブロック割り当てレジスタロケーションを個々に参照する命令コードを用いて処理される(オペレーション82を参照)。ブロック割り当てレジスタロケーションは、保存及び復元のオーバーヘッドを不要にすることができる。一実施形態では、DSP22内の非常に大きな(一般的に1000強)レジスタ空間によってこの専用レジスタ割り当てを可能にすることができる。上述のように、ブロック割り当てレジスタロケーションは、エフェクト毎に配列することができる。データサンプル処理が完了した状態で、次に、処理済みサンプルが、オペレーション84に示すように音声出力バッファ50に書き込まれる。サンプル毎の処理におけるデータサンプルは、DMAコントローラ44から受信し、そこに書き込むことができることが認められるであろう。DMAコントローラ44は、DSPモジュール20をパーソナルコンピュータなどにおけるホストメモリとインタフェースで接続することができる。しかし、DSPモジュール20内へのDMAコントローラ44の包含は任意的であり、データサンプルは、音声バス42のみから入力可能であることは認められるものとする。
一実施形態では、「時間領域割り込みサブルーチン」は、サンプル期間毎に一度呼び出される割り込みサービスルーチンであり、割り込み毎に各音声チャンネルにおいて1つの音声サンプルを処理するように設計されている。他のサンプルレートが可能であることは明らかであろうが、例えば、サンプルレートを48KHzとすることができ、従って、「時間領域割り込みサブルーチン」は、上記によると48000回毎秒で実行することができる。一実施形態では、サンプル期間毎のDSPスレッド命令実行の最低回数の保証を可能にするために、「時間領域割り込みサブルーチン」は、上述の最大割り込み待ち時間の保証に加えて、この割り込みが最高優先度の割り込みであり、他のいかなる割り込みによっても優先されないという更に別の特質を有する。一実施形態では、割り込み36は、データバス42上に設けられた各音声又はデータチャンネルにおけるサンプルの受信によって発生する。従って、データサンプルのDSP22への入力は、音声バス42上のデータサンプルの通信又は搬送と同期させることができる。
1つ又はそれよりも多くのDSPスレッドに対して「時間領域割り込みサブルーチン」(例えば、各エフェクトに対して1つの)が実行されている間に、フォアグラウンドプログラムコードは、待ち時間の影響を受けにくいブロックベースアルゴリズム(周波数領域処理)に専用化することができる。ブロックベースのコードは、ループ化、呼び出し、及びジャンプのような標準DSP構成とすることができ、「時間領域割り込みサブルーチン」よりも低優先度の追加割り込みに応答することができる。
「時間領域割り込みサブルーチン」の最高優先度ステータスは、例示的DSP22のアーキテクチャにおいてある一定の微妙な結果を有する可能性がある。一実施形態におけるDSP22は、専用ハードウエアプログラムカウンタスタック(HCPS)86(図5を参照)を含み、このスタック86は、各スレッドに対して個別に割り当てることができる。コストの理由から、ある一定の実施形態では、これらの例示的ハードウエアスタック86は、所定のプログラムに対して必要であると考えられるサイズまで大きくすることができない。従って、ハードウエアスタック86が一杯になる可能性がある。ハードウエアスタック86がほぼ一杯になる時点を検出するために、各スレッドにスタックほぼ一杯命令トラップを備えることができ、この判断が真になった場合は、この特定のハードウエアスタック86を更に利用することができるように、この特定のハードウエアスタック86の内容を部分的にメモリバッファに移すサービスルーチンを呼び出すことができる。それによって、メモリバッファが許すあらゆるサイズへのプログラムカウンタスタック86の拡張を可能にすることができる。一実施形態では、「時間領域割り込みサブルーチン」の予測可能な低待ち時間を強化するために、「時間領域割り込みサブルーチン」だけにスタックほぼ一杯命令トラップへの割り込みを許すことができる。これに対する必然的結果として、一実施形態では、「時間領域割り込みサブルーチン」に対してスタックほぼ一杯命令トラップを備えなくてもよく、「時間領域割り込みサブルーチン」は、固定数よりも多くのハードウエアスタックロケーションを用いなくてもよく、この固定数は、スタックほぼ一杯トラップがアサートされた場合に利用可能な残りのハードウエアスタックロケーションの数よりも小さくなくてはならない。一実施形態では、各々が一度に1つのサンプルを処理する専用レジスタセット間での瞬時の切り換えを強調することができる「時間領域割り込みサブルーチン」コードの性質は、プログラムカウンタスタック空間を必要としないことによって不変とすることができる。異なる実施形態では、「時間領域割り込みサブルーチン」に対して利用可能なスタックロケーション数の変更を可能にするために、スタックほぼ一杯トラップをトリガすることができるスタックレベルは、ソフトウエア(ソフトウエア命令等)によって調節可能なものにすることができる。
大きなスタック要件に対処するために別の方法を用いることができることは認められるであろう。一例示的方法は、ハードウエアスタック86をより大きくし、このハードウエアスタック86のサイズを超えるスタック拡張をサポートしないことである。しかし、この例示的な実施形態では、更に別のハードウエアコストが生じる可能性があり、ハードウエアスタックはいくつかのソフトウエア環境に対しては小さすぎることになる可能性がある。別の例示的な実施形態では、スタックほぼ一杯割り込みを用いなくてもよく、スタック86が一杯になった時にはいつでも、例示的DSP制御ユニット88は、直接にメモリにプログラムスタック値を書き込むか又はメモリから直接読み取ることができる。しかし、スタックレベルが高い場合には、それによってCPU性能の低減という結果を生じる可能性があり、「時間領域割り込みサブルーチン」に更に別の予測不能の待ち時間が付加される可能性がある。
上述のように、サンプル同期の音声バッファ48、50は、双方向のピンポンバッファとすることができ、「時間領域割り込み」36の発生に用いられるものと同じクロックで同期して切り換えることができる。一実施形態では、バッファ48、50は、「ランダムアクセスメモリ(RAM)」として実施され、高位アドレスビットは、「ピン(ping)」機能と「ポン(pong)」機能の間で選択することができる。上述のように、DSP22及びサンプル同期の音声サンプルバス42は、常にバッファ48、50の反対側にアクセス可能である。従って、DSP22がRAMアドレス空間の上位半分にアクセスしている時には、サンプル同期の音声サンプルバス42は、RAMアドレス空間の下位半分にアクセスしていることになる。連続するサンプル期間において、DSP22及びサンプル同期の音声サンプルバス42は、アドレス空間を入れ替えてピン(ping)及びポン(pong)挙動を発生させる。ピンポンバッファ48の切り換えとの「時間領域割り込みサブルーチン」の同期は、バッファ48にアクセス中の「時間領域割り込みサブルーチン」内の命令位置に関わらずサンプル期間(「時間領域割り込みサブルーチン」の長さの上限である)内のあらゆる時点でのDSP22の着信サンプルへのアクセスを可能にする。同様に、DSP22は、「時間領域割り込みサブルーチン」内のあらゆる時点において出力バッファ50に書き込むことができる。マルチスレッドインターリーブDSPのDSPシステムでは、サンプル同期のバッファ48、50は、全スレッドに対するグローバルな可視性を有することができる。
例示的な一実施形態におけるサンプル同期の音声バス入力及び出力バッファ48、50は、多数のロケーション、例えば、256又は512個のロケーションを有することができ、これらの各々は、音声ストリームに対応することができる。音声バスは、複数の音声チャンネルを含むことができ、音声データサンプルの送受信に用いられておらずかつサンプル同期の音声データバスによって更新されていないあらゆるサンプル同期の音声バス入力又は出力チャンネルは、全DSPスレッドに可視であるサンプル固定スレッド間データチャンネルとして用いるために利用可能にすることができる。この構成により、異なるDSPスレッドにおいて作動する「時間領域割り込みサブルーチン」間のデータ受け渡しのための機構(例えば、主要機構)を提供することができる。未使用の出力バッファチャンネルがスレッド間のデータ受け渡しに用いられる時には、受け渡しデータは、依然としてその出力バッファチャンネルに対して割り当てられたDSPサンプル同期の音声バススロット内のサンプル同期の音声バス上で有効なデータとして見えるであろう。音声バス42への出力であるデータサンプルは、異なるDSPスレッドによる処理のために音声サンプルバス42を通じてDSP22にその後返信することができることは認められるであろう。
スレッド間のデータ受け渡しのために利用可能な入力又は出力サンプル同期音声バスバッファ48、50に書き込まれたデータは、それが書き込まれたサンプル期間の残り時間に向けて全スレッドに対して即時に可視にすることができる。この限定条件は、上述のサンプル同期の音声バス42との間で受け渡されるデータではなくスレッド間のデータ受け渡しにのみ適用することができる。サンプル期間の開始からスレッドが利用可能バッファロケーションに書き込む時点までの時間内に異なるDSPスレッドによって同じバッファロケーションから読み取られたあらゆるデータは、上述の使用したダブルバッファ方式ピンポン手法によると2回のサンプル期間を経ていることになると考えられる。
すなわち、各DSPスレッドが異なるエフェクトを処理する実施形態では、スレッド間の受け渡しは、処理中の異なるエフェクト間のサンプルデータの受け渡しのために用いることができる。すなわち、してサンプルデータは、時間領域処理又はサンプル毎のエフェクト/アルゴリズムから周波数領域エフェクト又はブロックベースエフェクト/アルゴリズムへと受け渡される。例示的周波数領域エフェクトは、音声ストリーム内の音割れを除去するか又は音声スペクトルのある一定のサブ帯域を強化することができる音声清浄化エフェクトである。
サンプルユニット又はブロックへのブロックベース処理を必要とする場合には、個々のサンプルは、音声バス42を通じて連続して受信し、DSP22のメモリ内に格納することができる。ブロック又はユニットを含む全データサンプルを受信した時点で、データサンプルブロックを処理することができる。例えば、時間領域DSPスレッドは、音声バス42から個々のサンプルを読み取り、スレッドに関連する円形バッファに一度に1つのサンプルを書き込むことができる。関連バッファが一杯になると、時間領域スレッドは、周波数領域ルーチンにデータブロックが周波数領域処理に向けて利用可能であることを「ping」する又は通知することができる。従って、一実施形態では、時間領域スレッドは、周波数領域スレッドのためにデータを収集することができる。同様に、DSP22によって処理されたデータブロックは、一度に1つ、音声バス42に書き込むことができる。更に、周波数領域アルゴリズム(最低音部の増強等)又は処理の出力データサンプルは、入力データサンプルとして時間領域アルゴリズム又は処理(例えば、残響)へと受け渡すことができる。
図6を特に参照すると、例示的DSP22のより詳細な実施形態が示されている。DSP22は、DSP制御ユニット88、X/Yメモリ32,汎用レジスタ30、ネストされた割り込みコントローラ46、及び任意的なDMAコントローラ44を含む。例示的な一実施形態では、汎用レジスタ30は、複数の音声チャンネルのデータサンプルを格納するための比較的大きなレジスタセットとすることができる。X/Yメモリ32は、X係数RAM100及びXデータメモリ102を含むことができる。同様に、X/Yメモリ32は、Y係数RAM104及びYデータメモリ106を含むことができる。例えば、X係数RAM100及びY係数RAM104は、32ビット幅とすることができ、Xデータメモリ102及びYデータメモリ104もまた、32ビット幅とすることができる。X/Yメモリ32は、周波数領域スレッド及び時間領域スレッドを処理するために周波数及び時間領域エンジン26、28によって用いられる共通又は共有メモリを形成する。従って、X/Yメモリ32は共有メモリであり、スレッドがサンプルデータを互いに受け渡し又は交換することを可能にする。汎用レジスタ30は、X汎用RAM(X−GPRAM)108、X、Y、A、B回転レジスタアレイ110、及びY汎用RAM(Y−GPRAM)112を含む。例示的な一実施形態では、X−GPRAM108及びY−GPRAM112は、256×32ビットである。X−GPRAM108、X、Y、A、B回転レジスタアレイ110、及びY−GPRAMからの出力は、オペランド多重通信回路114の中に供給される。一実施形態では、X−GPRAM108、X、Y、A、B回転レジスタアレイ110、及びY−GPRAM112は、DSPスレッド毎に配列することができ、サンプルデータは、サンプル毎の方式でオペランド選択多重通信回路114に供給される。オペランド選択多重通信回路114は、数学及び論理演算を実行する二重経路パイプラインFPU/整数ユニット/ALU116に供給し、この二重経路パイプラインFPU/整数ユニット/ALU116は、結果書き戻し及び転送のために設けられた電気回路118に供給する。その後、処理済みサンプルは、レジスタファイル及びI/Oデータ経路54を通じてサンプル同期の音声バッファ50に書き込まれる。
アドレス発生器120は、DSP制御ユニット88、割り込みコントローラ46、及びインターバルタイマ122に接続される。DSP制御ユニット88は、グローバルインターリーブ命令メモリ124(例えば、周波数及び時間領域アルゴリズムを含む)及びバス126で示すように、様々な機能ユニット(エフェクトプロセッサ等)にも接続される。更に、一実施形態では、DSP制御ユニット88は、DMAコントローラ44及びセマフォーレジスタ128に接続される。例示的に、DSP制御ユニット88は、プログラムカウンタアレイユニット又はモジュール130、命令取り出し及び復号化ユニット又はモジュール132、オペランド選択制御ユニット134、分岐制御ユニット136、同時移動ユニット138、ページングされた(スレッド毎)ループスタック140、及びページングされた(スレッド毎)プログラムカウンタ(PC)スタック142を含むものとして示されている。
図7を特に参照すると、参照番号150は、一般的にDSP22においてフォアグラウンドルーチン又は機能を実行するための本発明による例示的方法を示している。オペレーション152に示すように、方法150は、最初に入力バッファ48に処理に向けた新しいデータが入っているか否かを判断するために検査する。判断が真である場合には、方法150は、オペレーション154に示すように、ポインタを適切なバッファに合わせ、この後、バッファ内のデータを処理する(オペレーション156を参照)。この後、オペレーション158に示すように、データは、音声出力バッファ50に書き戻される。上述のように、方法150は、一般的に周波数領域アルゴリズム又はブロックベースアルゴリズムを実行するためのフォアグラウンドループにおいて用いられる。更に、DSP22は、時間領域割り込み36を受信すると方法150を抜け出し、バックグラウンド時間領域割り込みサブルーチンを実行する。一実施形態では、方法150は、DSP22のスレッドによって実行することができ、「ミニオペレーティングシステム」又はOSに類似したマイクロカーネルプログラムを作動させることができ、それによってDSP22のオペレーションを制御する。従って、スレッドは、着信サンプルストリームの経路指定を受け持つことができ、処理に向けて各ストリームをDSP22の適切なエフェクトエンジンに経路指定し、処理済みサンプルストリームを音声バス42に書き戻すか又は返信する。
図8を特に参照すると、参照番号160は、フォアグラウンドルーチン162とバックグラウンドルーチン164(図4も参照)の間の例示的相互作用を示している。上述のように、例示的バックグラウンドルーチンは、割り込み36が発生する時点で進入を受ける。オペレーション166に示すように、入力サンプルデータは、汎用レジスタ30に読み込まれ、一実施形態では、汎用レジスタ30は、エフェクト毎に割り当てられる。従って、DSP22が処理する各エフェクトは、それ自体に専用の汎用レジスタを有する。この後、オペレーション168及び170に示すように、各エフェクトは、ここで個々に処理される。例えば、エフェクト1は、オペレーション168において処理することができ、エフェクト処理時にはエフェクト1のための汎用レジスタ30を読み取り、レジスタ内のデータサンプルを処理し、この後、汎用レジスタ出力に書き込むことができる。この手順は、全エフェクトが処理されるまで続行させることができる(オペレーション170を参照)。
しかし、上述のように、データサンプルは、バックグラウンドルーチン164とフォアグラウンドルーチン162との間で受け渡すことができる。特に、データサンプルは、矢印172で一般的に示すように、サンプル毎の処理スレッドからブロックベース処理スレッドへと転送することができる。同様に、データサンプルは、矢印174で一般的に示すように、ブロックベース処理スレッドからサンプル毎の処理スレッドへと転送することができる。
サンプル毎のスレッドからブロックベーススレッドへのデータ転送(矢印172を参照)に戻ると、オペレーション176では、バックグラウンドルーチン164からデータを受信することができ、バッファ収集ルーチンは、汎用レジスタ30を読み取って、一例として、それらのレジスタ内のデータサンプルをX/Yメモリ32内に設けられた共有メモリに複写することができる。例示的な一実施形態では、バッファは、円形バッファとすることができる。この後、判断オペレーション178に示すように、バッファ終端に達したか否かが判断され、この判断が真の場合は、データ転送ルーチンは、ライン80で示すようにバックグラウンドルーチンに戻ることができる。しかし、この判断が偽の場合には、オペレーション182に示すように、ポインタをラップすることができ、この後に新しいバッファがロードされるべきであることを示す信号が発生され、オペレーション184に示すように、データ転送ルーチンは、バックグラウンドルーチン164に戻ることができる。
同様の方式で、転送ルーチンを用いてブロックベースアルゴリズムからサンプル毎のアルゴリズムへの転送を達成することができる(矢印174を参照)。オペレーション186に示すように、バッファディスパッチルーチンは、共有メモリ(例えば、X/YRAM32)を読み取ることができ、例えば、円形バッファは、汎用レジスタ30にデータサンプルを書き込むことができる。判断オペレーション188に示すように、バッファ終端に達していない場合には、データ転送ルーチンは、バックグラウンドサブルーチン164に戻ることができる。しかし、バッファ終端に達した場合には、所定のDSPアーキテクチャにおける適切な方法でバッファ終端状況を処理することができる(オペレーション190を参照)。この後、フォアグラウンドルーチン162を抜け出すことができ、再びバックグラウンドルーチン164が、オペレーションを引き受けることができる。
DSPモジュール22の例示的実装を図9に示している。特に、参照番号200は、一般的に本発明の態様による例示的デジタル処理装置の概略ブロック図を示している。装置200は、複数の処理モジュール、すなわち、デジタル信号処理(DSP)モジュール22,遅延モジュール202、サンプルレート変換器(SRC)モジュール204、フィルタモジュール206、及びミキサーモジュール208を含むものとして示されている。装置200は、デジタル音声入力/出力(I/O)モジュール210及び音声メモリ搬送モジュール218を更に含む。モジュール22、202〜210は、データがいずれか1つの処理モジュールから他のいずれかの処理モジュールに連続して通信されるリング構成に配列されたデータ経路212を通じてシリアルに相互接続される。従来のデジタル処理装置と異なり、本発明による装置200は、下記に詳述するように、モジュール22、202〜210が、データ経路212に接続した他のあらゆるモジュール22、202〜210と通信することを可能にする。本発明の一実施形態では、データ経路212は、時分割で多重化されており、経路指定コントローラが様々なモジュール22、202〜210間のデータ通信を制御する。更に、モジュール22、202〜210は、単に例示的なモジュールであり、装置200には、更に別のモジュール(同じか又は異なる処理機能を有する)を含めることができ、及び/又はモジュールのうちのいずれか1つ又はそれよりも多くを除去することができ、例えば、その機能は、他のいずれかのモジュール内に含めることができることは認められるものとする。
すなわち、一実施形態では、モジュール22、202〜210のうちのどの1つも、経路指定コントローラの制御下で他のモジュール22、202〜210のうちのいずれか1つ又はそれよりも多くとデータを通信することができる。従って、デジタル処理装置200によって処理されるデータは、異なるモジュール22、202〜210間で柔軟に経路指定することができ、従来の装置の場合のように所定の経路に制限される必要はない。モジュール22、202〜210は、音声バス214を通じてデータを自体へと返信することができることは認められるであろう。従って、同一の処理モジュールによってデータに反復処理を実施することができる。データをデータ経路212に供給する処理モジュール22、202〜210は、送信元処理モジュールと見なすことができ、データを処理すべき特定の処理モジュール22、202〜210は、ターゲット又は宛先処理モジュールと見なすことができる。処理モジュール22、202〜210は、処理済みデータを自体に戻すことができるために、オペレーションの1つのモードでは、処理モジュール22、202〜210は、送信元及び宛先処理モジュールの両方を形成することができる。従って、例えば、フィルタモジュール206は、カスケード式フィルタ配列を形成することができ、この出力又は処理済みデータを別の処理モジュール22、202〜210に送信する前に、更に別の処理のために自体に返信することができる。
音声メモリ搬送モジュール218は、バス220を通じて例えばコンピュータ装置(例えば、パーソナルコンピュータ又はPC)のバスの一部を形成することができるインタフェースモジュール222と通信する。一実施形態では、インタフェースモジュール222は、ブリッジ224、及びこのブリッジ224を従来のPCバス228にインタフェースで接続する2つの「PCI−X」バスインタフェース226を含む。デジタルI/Oモジュール210は、デジタル音声入力を受信し、デジタル音声出力を出力装置に供給することができる。データ経路212は、モジュール22、202〜210、及び218をシリアルに相互接続する。
装置200のデータ経路212は、音声データ経路又は音声バス214(この実施形態では、図1のデータバス42に対応する)という例示的形態のメディアデータ経路、並びにパラメータバス216という例示的形態の処理制御経路を含む。一実施形態では、音声バス214及びパラメータバス216の両方は、リング構成に配列され、そこではデータが時分割多重化方式で様々な処理モジュール22、202〜210間において通信されている。従って、サンプルデータは、サンプル同期の音声入力バッファ48によって連続して受信することができ、DSP22の中に供給することができる。同様に、処理済みサンプルデータは、サンプル同期の音声出力バッファ50から音声バス214へと出力することができる。サンプル固定時間ベースモジュール38は、音声バス214をモニタすることができ、データサンプルの全ループが音声リング又はバス214上から読み取られたことを検出して割り込み36を出力することができる。様々なモジュールが音声バス214に沿って設けられているために、中央ハブ(DSP22等)を通じたデータの経路指定を必要とせずに、音声データをモジュール間で経路指定することができる。ある一定の実施形態では、装置200は、搬送バス215を含み、この搬送バス215は、音声メモリ搬送モジュール218を通じて外部コンピュータを処理モジュール22、202〜210にインタフェースで接続する。
データ経路212(音声バス214,パラメータバス216、及び搬送バス215などを含む)上でのデータ経路指定を制御するために、ある一定の実施形態では、装置200は、データ経路212に沿ってデータの経路指定を制御するホストインタフェース又は経路指定コントローラ230(図10を参照)を含む。特に参照番号232によって一般的に示すように、一実施形態では、経路指定コントローラ230は、チップ選択ライン236、並びにアドレス、データ書込み、及び書込み許可ライン238を通じて各処理モジュール22、202〜210、及び218へのデータ経路指定を制御する。各モジュール22、202〜210、及び218は、データ読取及び受信通知ライン240を通じてデータをホストインタフェース又は経路指定コントローラ230にデータ通信する。一実施形態では、経路指定コントローラ230は、装置200の様々な処理モジュール22、202〜210、及び218をインタフェース接続する完全同期ハンドシェイク手法を用いるホストインタフェースを形成する。例えば、経路指定コントローラ230は、選択された処理モジュール22、202〜210、及び218から受信通知信号を受信するまでアクティブに保持されるチップ選択を発生することができる。一実施形態では、経路指定コントローラ230は、ホストアドレスの最上位ビットを復号化し、それに応答して選択されたモジュール22、202〜210、及び218を有効にするチップ選択を発生する。各モジュール22、202〜210、及び218は、ホストアドレスの残りの最下位ビットを復号化し、これらは、データを経路指定すべき特定のモジュール22、202〜210をこれらによって識別するために重要である。
本発明の一実施形態では、DSPモジュール22は、モジュール22、202〜210、及び218の各々の中に設けられたレジスタ及びランダムアクセスメモリ(RAM)にDSPモジュール22がアクセスを有するような方式で経路指定コントローラ230とインタフェース接続される。特に図11に示すように、DSPモジュール22は、データバス242、アドレスバス244,受信通知ライン248、書込み許可ライン250、要求ライン252、及びチップ選択ライン254を通じて経路指定コントローラ230と通信することができる。モジュール22、202〜210、及び218内に備えることができるレジスタ及びRAMにアクセスするために、DSPモジュール22は、ライン252を通じて経路指定コントローラ230に要求を通信する。次に、経路指定コントローラ230は、受信通知ライン248を通じて要求を受信したことを通知し、この後、要求された機能は、アドレスバス244及びデータバス242を用いて実行することができる。
デジタル音声I/Oモジュール210内にサンプルレートトラッカーが設けられた実施形態では、デジタル音声I/Oモジュール210も同様に経路指定コントローラ230にインタフェース接続することができ、それによってモジュール22、202〜210、及び218内のレジスタ及び/又はRAMへのアクセスが得られる。一実施形態では、装置200は、一方がI/Oにマップされ、他方がメモリにマップされた2つの基本アドレスレジスタを有する。これらのレジスタの両方は、同時にアクティブにすることができ、両方のアドレスレジスタは、装置200が設けられているチップの同じ内部レジスタ及びメモリへのアクセスを可能にすることができる。
本発明の一実施形態では、音声バス214は、時分割で多重化されている音声チャンネルを備えている。各処理モジュール22、202〜210、及び218は、それ自体に割り当てられた固定の出力タイムスロット、並びにプログラマブル又は可変の入力タイムスロットを有することができる。従って、この実施形態では、モジュール22、202〜210、及び218は、常に所定の同じタイムスロットでデータを音声バス214に出力することができるが、経路指定コントローラ230の制御下において異なるタイムスロットでデータを受信することもできる。従って、各個々のモジュール22、202〜210、及び218に関連する入力タイムスロットがプログラマブルであるために、データは、様々なモジュール22、202〜210、及び218の間で柔軟な方式で経路指定することができる。タイムスロットが関連付けされたモジュール22、202〜210、及び218を識別するために、チャンネル識別バスを備えることができる。一実施形態では、チャンネル識別バスは、送信元処理モジュール22、202〜210、及び218を識別し、ターゲット又は宛先処理モジュール22、202〜210、及び218は、処理すべきデータの出所であるデータソースを識別するためのリストを含む。しかし、チャンネル識別は、ターゲット処理モジュール22、202〜210、及び218も同様に識別することができることは認められるであろう。一実施形態では、チャンネル識別は、各チャンネルからのサンプルを受信した後に割り込み36を発生するように、サンプル固定時間ベースモジュール38によってモニタすることができる。従って、サンプルの新しいセット又はグループ(各チャンネルに対して1つのサンプルが供給される)を受信する前に、割り込み36が発生される。それに応答して、上述のように、DSP22は、次に例えば「時間領域割り込みサブルーチン」を用いてサンプルデータセットを処理することになる。すなわち、音声バス42を通じて受信したデータサンプルの時間領域処理又はサンプル毎の処理は、音声バス214を通じたデータ搬送と同期させることができる。これを目的として、ピンポンバッファ48及び50は、割り込み36が発生される度に反転させることができる。例示的な一実施形態では、図1の音声バス42(例えば、図9の音声バス214に対応する)は、複数のデータチャンネルにおけるデータサンプルを含む円形バッファに類似していると考えることができ、各チャンネルにおけるデータサンプルが読み取られた状態で、「円形バッファ」はラップする。DSP22にサンプル同期のデータサンプルを供給するように、この例示的時点において、割り込み36を発生することができる。
ある一定の実施形態では、装置200は、デジタルデータ(デジタル音声データ)を音声バス214に沿って異なるサンプルレート(例えば、DSPモジュール22によって設定されたサンプルレート等)で通信することを可能にする。例えば、本発明の一実施形態では、音声バス214上に4096個のバッファチャンネル又はタイムスロットが設けられる。この例示的構成では、従って、音声バス214は、48kHzに対して1個のタイムスロット、96kHzに対して2個のタイムスロット、192kHzに対して4個のタイムスロット、更に、384kHzに対して8個のタイムスロットを割り当てることによって384kHzまでのサンプルレートをサポートすることができる。すなわち、所定のサンプルに対して4096個のチャンネル又はタイムスロットが存在するために、96kHzでは2048個のチャンネル又はタイムスロット、192kHzでは1024個のタイムスロット、及び384kHzでは512個のタイムスロットのみが利用可能である。しかし、装置200の作動中のいずれかの所定の時点における各サンプルレートに対するタイムスロット数は変更することができ、例えば、3348個の48kHzタイムスロット、204個の96kHzタイムスロット、及び85個の192kHzタイムスロットを備えることができるという状況が生じる可能性があることは認められるものとする。しかし、様々な構成(ビットレート等)又はタイムスロット数は、装置200によって実行される機能によって変更することができる。例えば、他の実施形態では、プログラマブル作動クロック周波数を備えることができる。例えば、クロック周波数150MHz、175MHz、及び200MHzを備えることができ、これらは、それぞれ20072個、3584個、及び4096個のタイムスロットに対応する。しかし、これらは、周波数及びタイムスロット数の単なる例であり、実施形態毎に変更することができることは認められるものとする。すなわち、一実施形態では、メディアデータ経路は、複数の異なるビットレートにおいてメディアデータを通信するための合計個数のタイムスロットを含むことができ、複数のビットレートの各1つに割り当てられたタイムスロット数の総計は、タイムスロットの合計個数に等しい。サンプル固定時間ベースモジュール210は、音声バス214上のサンプルレートに依存する周波数で割り込み36を発生することになる。
ある一定の実施形態では、CD標準の44.1kHzのような任意サンプルレートは、インジケータビット(有効ビット等)を用いて音声バス46を通じて通信又は経路指定することができ、このインジケータビットは、処理に向けて新しい有効サンプルが音声バス214から検索又は抽出されるべきであることを受信モジュール22、202〜210、及び218に示すものである。任意サンプルレート(44.1kHzのサンプルレート等)は、音声バス214を通じて通信され、例示的有効ビットが高い場合には、それぞれのモジュール22、202〜210、及び218は、データを有効なものであるとして受け取ることができる。これに対して有効ビットが低くなった場合には、それによってモジュール22、202〜210、及び218には、その後のサンプルを無視することができることが通知される。
一実施形態では、音声バス214を通じて可変サンプルレートを通信することができるが、パラメータバス216は、制御データを音声バス214のサンプルレートとは独立したものとすることができる固定サンプルレート(48kHz等)で通信することができる。
一実施形態では、音声バス214は、様々なモジュール22、202〜210、及び218によって処理される音声データを通信する。しかし、パラメータバス216は、関連モジュール22、202〜210、及び218の機能(例えば、アルゴリズム)を定めるために関連モジュール22、202〜210、及び218によって用いられるパラメータ又は処理データを含む。従って、制御データは、上述のように、音声バス214上のデータが特定のモジュール22、202〜210、及び218によって如何に処理されることになるかを制御することができる。例えば、パラメータバス216は、フィルタモジュール206へのフィルタパラメータの通信、サンプルレート変換器モジュール204へのサンプルレート変換パラメータの通信、デジタル音声が遅延されることになる遅延時間を定めるモジュール202への遅延データの通信などのために用いることができる。すなわち、選択されたアルゴリズムを実行するために、サンプル毎の又は時間ベースのアルゴリズムデータ並びにブロックベースのアルゴリズムデータをDSP22に通信することができる。
装置200においてあらゆる処理待ち時間を低減するために、パラメータデータは、各特定の処理モジュール22、202〜210、及び218が処理済み音声データを出力すべきタイムスロットの前に処理モジュール22、202〜210、及び218の各々に供給されねばならないことが認められるであろう。従って、パラメータデータは、音声データが音声バス214を通じて処理モジュール22、202〜210、及び218に到着する前にパラメータバス216を通じて特定の処理モジュール22、202〜210に通信される。
本発明は、機械(例えば、PC、プロセッサなど)によって実行された時に本明細書に説明したいずれかの機能を機械に実行させる命令/ソフトウエアを含む機械可読媒体(RAM等)に拡張される。本明細書の論旨では、用語「機械可読媒体」は、本発明の方法のいずれか1つを機械に実行させる機械による実行のための一連の命令を格納又は符号化する機能を有するあらゆる媒体を含むように解釈されるべきである。従って、用語「機械可読媒体」は、以下に限定されるものではないが、半導体メモリ、光学及び磁気ディスク、並びに搬送波信号を含むように解釈されるべきである。
すなわち、デジタルメディアストリームを処理する方法及び装置を説明した。本発明は、デジタル音声ストリームの形態のデジタルメディアストリームの処理を参照して説明されたが、本発明は、他のあらゆるデジタルメディアストリーム、例えばデジタルビデオストリームなどの処理に適用することができることは認められるものとする。更に、本発明は、特定の例示的な実施形態を参照して説明されたが、本発明の広範な精神及び範囲から逸脱することなく、これらの実施形態に様々な修正及び変更を加えることができることは明らかであろう。従って、本明細書及び図面は、制限的ではなく例示的な意味であると考えるものとする。
単一の装置における時間領域及び周波数領域の両方のデータ処理のための本発明の一実施形態による例示的デジタルプロセッサモジュールの概略ブロック図である。 時間領域又はサンプル毎のデータを処理するための本発明による例示的方法の概略流れ図である。 同じく本発明による例示的「時間領域割り込みサブルーチン(TDISR)」の概略流れ図である。 例示的デジタル信号プロセッサ(DSP)内のフォアグラウンド及びバックグラウンドプロセスの概略流れ図である。 同じく本発明による例示的DSPの概略ブロック図である。 図5の例示的DSPの更なる詳細を示す図である。 フォアグラウンドルーチン又はプロセスを実行するための例示的な基本的方法の概略流れ図である。 共通又は共有メモリを用いたサンプル毎及びブロックベースの機能の間の例示的相互作用の概略流れ図である。 本発明によるDSPモジュールを含む本発明の一実施形態による例示的デジタル処理システム又はサブシステムの概略流れ図である。 図9のデジタル処理システムにおいてデジタルデータを経路指定するための本発明の実施形態による例示的経路指定コントローラ又はホストインタフェースの概略ブロック図である。 例示的なホストインタフェースと図5及び6のDSPとの間の例示的相互接続性の概略ブロック図である。
符号の説明
20 デジタル信号プロセッサ(DSP)モジュール
36 割り込み
42 音声バス
52、54 I/Oデータ経路

Claims (9)

  1. サンプルレート固定データのデジタルサンプルを処理するデジタルプロセッサであって、
    それぞれがエフェクトに対応した複数の時間領域割り込みサブルーチンのうちの1つに従ったサンプル毎の方式によって、時間領域でデジタルサンプルを処理する時間領域処理エンジンと、
    周波数領域でデジタルサンプルのブロックを処理する周波数領域処理エンジンと、
    時間領域処理済みサンプルと周波数領域処理済みサンプルを交換可能にするデジタルプロセッサに設けられた共有メモリと、
    を含み、
    周波数領域処理は、前記周波数領域エンジンによってフォアグラウンドルーチンにおいて実行され、
    時間領域処理は、サンプルレート固定割り込みに応答して前記時間領域処理エンジンによってバックグラウンドルーチンにおいて実行され、前記サンプルレート固定割り込みは、前記時間領域割り込みサブルーチンの1つによるエフェクト処理のための前記デジタルプロセッサによってチャンネルに対するデジタルサンプルが受信された時を識別する識別子に応答して生成され、
    前記時間領域割り込みサブルーチンは、サンプル期間(sample period)内の何れかの時刻でのデジタルサンプルにアクセスするためのサンプルレート固定割り込みに同期する
    ことを特徴とするプロセッサ。
  2. 記サンプルレート固定割り込みは、デジタルサンプルバスに基づいて生成され、
    前記プロセッサは、前記サンプルレート固定割り込みに応答して前記デジタルサンプルバスから入力データサンプルを受信する入力バッファと、前記サンプルレート固定割り込みに応答して前記デジタルサンプルバスへ出力データサンプルを供給する出力バッファとをさらに含み、
    前記入力バッファ及び前記出力バッファは、前記サンプルレート固定割り込みに同期して切り換わる
    ことを特徴とする請求項1に記載のプロセッサ。
  3. 前記サンプルレート固定割り込みに応答して、前記デジタルサンプルをプロセッサに供給し、かつプロセッサから処理済みデジタルサンプルを受信するデジタルサンプルバスにプロセッサをインタフェースで接続する少なくとも1つの入/出力バッファと、
    前記デジタルサンプルバスからデータサンプルを受信する入力バッファと、前記デジタルサンプルバスへデータサンプルを供給する出力バッファとを含み、前記入力バッファと前記出力バッファとはピンポンバッファであり、さらに、
    前記デジタルサンプルバスに基づいたサンプルレート固定割り込みを発生する割り込み発生器を含み、
    前記入力バッファは前記割り込みに応答して前記プロセッサに入力データサンプルを伝達し、前記出力バッファは前記サンプルレート固定割り込みに応答して前記デジタルサンプルバスに出力データサンプルを伝達する
    ことを特徴とする請求項1に記載のプロセッサ。
  4. 入力バッファ及び出力バッファを含み、
    デジタルサンプルバスから、プロセッサに割り当てられた該デジタルサンプルバスの少なくとも1つのタイムスロットに供給されるデジタルサンプルを処理のために選択的に抽出し、
    処理済みデジタルサンプルをその割り当てられたタイムスロット内に選択的に挿入し、
    受信しかつ他の処理装置に関連するデジタルサンプルを前記デジタルサンプルバスに沿って不変のまま受け渡す、
    ことを特徴とする請求項1に記載のプロセッサ。
  5. サンプル毎の方式でデジタルサンプルバスからデジタルサンプルを蓄積し、
    デジタルサンプルのブロックを受信した時を識別し、
    完全なブロックを受信した時に前記周波数領域で該ブロックを処理し、
    サンプル毎の方式で前記デジタルサンプルバスにサンプルの処理済みブロックを通信する、
    ことを特徴とする請求項1に記載のプロセッサ。
  6. デジタルプロセッサにおいてサンプルレート固定データのデータサンプルを処理する方法であって、
    デジタルプロセッサに設けられた共有メモリにデータサンプルを格納する段階と、
    それぞれがエフェクトに対応した複数の時間領域割り込みサブルーチンのうちの1つに従ったサンプル毎の方式によって、前記共有メモリに供給されたデジタルサンプルを時間領域で処理する段階と、
    前記共有メモリに供給されたデジタルサンプルのブロックを周波数領域で処理する段階と、
    を含み、
    時間領域処理済みサンプル及び周波数領域処理済みサンプルは、前記共有メモリを通じて交換可能であり、
    前記周波数領域処理は、フォアグラウンドルーチンにおいて実行され、
    前記時間領域処理は、サンプルレート固定割り込みに応答して開始されるバックグラウンドルーチンにおいて実行され、前記サンプルレート固定割り込みは、前記時間領域割り込みサブルーチンの1つによるエフェクト処理のための前記デジタルプロセッサによってチャンネルに対するデジタルサンプルが受信された時を識別する識別子に応答して生成され、
    前記時間領域割り込みサブルーチンは、サンプル期間(sample period)内の何れかの時刻でのデジタルサンプルにアクセスするためのサンプルレート固定割り込みに同期する
    ことを特徴とする方法。
  7. ジタルサンプルバスに基づいて前記サンプルレート固定割り込みを生成し、
    前記サンプルレート固定割り込みに応答して前記デジタルサンプルバスから入力データサンプルを受信し、
    前記サンプルレート固定割り込みに応答して前記デジタルサンプルバスへ出力データサンプルを供給すし、
    前記受信及び前記供給は、前記サンプルレート固定割り込みに同期して切り換わる
    ことを特徴とする請求項に記載の方法。
  8. 前記プロセッサは、入力バッファ及び出力バッファを含み、
    デジタルサンプルバスから、前記プロセッサに割り当てられた該デジタルサンプルバスの少なくとも1つのタイムスロットに供給されるデジタルサンプルを処理のために選択的に抽出する段階と、
    処理済みデジタルサンプルをその割り当てられたタイムスロット内に選択的に挿入する段階と、
    受信しかつ他の処理装置に関連するデジタルサンプルを前記デジタルサンプルバスに沿って不変のまま受け渡す段階と、
    を含むことを特徴とする請求項に記載の方法。
  9. 一連の命令が組み込まれたプラグラムを記録したコンピュータ読み取り可能な記録媒体であって、
    命令が、コンピュータにおいて実行された時に、該コンピュータをして、
    デジタルプロセッサに設けられた共有メモリにサンプルレート固定データのデータサンプルを格納させ、
    それぞれがエフェクトに対応した複数の時間領域割り込みサブルーチンのうちの1つに従ったサンプル毎の方式によって、前記共有メモリに供給されたデジタルサンプルを時間領域で処理させ、かつ
    前記共有メモリに供給されたデジタルサンプルのブロックを周波数領域で処理させるものであり、
    時間領域処理済みサンプル及び周波数領域処理済みサンプルは、前記共有メモリを通じて交換可能であり、
    前記周波数領域処理は、フォアグラウンドルーチンにおいて実行され、
    前記時間領域処理は、サンプルレート固定割り込みに応答して開始されるバックグラウンドルーチンにおいて実行され、前記サンプルレート固定割り込みは、前記時間領域割り込みサブルーチンの1つによるエフェクト処理のための前記デジタルプロセッサによってチャンネルに対するデジタルサンプルが受信された時を識別する識別子に応答して生成され、前記時間領域割り込みサブルーチンは、サンプル期間(sample period)内の何れかの時刻でのデジタルサンプルにアクセスするためのサンプルレート固定割り込みに同期し、
    時間領域処理中、データサンプルはサンプル毎の方式で処理され、
    周波数領域処理中、データサンプルはブロックベース方式で処理されることを特徴とし、さらに、
    前記命令により、デジタルサンプルバスに基づいて前記サンプルレート固定割り込みを発生させ、
    入力バッファに対し、前記サンプルレート固定割り込みに応答して前記デジタルサンプルバスから入力データサンプルを受信させ、
    出力バッファに対し、前記サンプルレート固定割り込みに応答して前記デジタルサンプルバスへ出力データサンプルを供給させ
    前記入力バッファ及び前記出力バッファは、前記サンプルレート固定割り込みに同期して切り換わることを特徴とする記録媒体。
JP2007518220A 2004-06-23 2005-06-22 デジタルメディアストリームの処理 Active JP4951508B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/875,259 US7457484B2 (en) 2004-06-23 2004-06-23 Method and device to process digital media streams
US10/875,259 2004-06-23
PCT/US2005/022014 WO2006002209A2 (en) 2004-06-23 2005-06-22 Processing digital media streams

Publications (3)

Publication Number Publication Date
JP2008504572A JP2008504572A (ja) 2008-02-14
JP2008504572A5 JP2008504572A5 (ja) 2008-08-14
JP4951508B2 true JP4951508B2 (ja) 2012-06-13

Family

ID=35541448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007518220A Active JP4951508B2 (ja) 2004-06-23 2005-06-22 デジタルメディアストリームの処理

Country Status (6)

Country Link
US (1) US7457484B2 (ja)
EP (1) EP1787191B1 (ja)
JP (1) JP4951508B2 (ja)
CN (1) CN101185057B (ja)
AT (1) ATE520118T1 (ja)
WO (1) WO2006002209A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457484B2 (en) 2004-06-23 2008-11-25 Creative Technology Ltd Method and device to process digital media streams
US20060129713A1 (en) * 2004-12-15 2006-06-15 Xie Ian Z Pipeline architecture for content creation for the portable media player from the internet
JP4519082B2 (ja) * 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
US7865571B2 (en) 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US7865572B2 (en) * 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US9317179B2 (en) 2007-01-08 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for providing recommendations to a user of a cloud computing service
US8041848B2 (en) * 2008-08-04 2011-10-18 Apple Inc. Media processing method and device
US20110252422A1 (en) 2010-04-07 2011-10-13 Apple Inc. Opportunistic Multitasking
US9336068B2 (en) 2013-06-07 2016-05-10 Apple Inc. Throttling of application access to resources
US10353709B2 (en) 2017-09-13 2019-07-16 Nextera Video, Inc. Digital signal processing array using integrated processing elements
EP3573342B1 (en) * 2018-05-25 2021-03-31 Harman Becker Automotive Systems GmbH Multi-rate digital sensor synchronization

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4191919A (en) * 1978-05-22 1980-03-04 Varian Associates, Inc. Fast NMR acquisition processor
JPS6275977A (ja) * 1985-09-28 1987-04-07 Victor Co Of Japan Ltd デイジタル・オ−デイオ・デイスク再生装置
US5054360A (en) * 1990-11-01 1991-10-08 International Business Machines Corporation Method and apparatus for simultaneous output of digital audio and midi synthesized music
CA2069711C (en) * 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
US5572691A (en) * 1993-04-21 1996-11-05 Gi Corporation Apparatus and method for providing multiple data streams from stored data using dual memory buffers
US5740404A (en) * 1993-09-27 1998-04-14 Hitachi America Limited Digital signal processor with on-chip select decoder and wait state generator
JP3579843B2 (ja) * 1994-10-24 2004-10-20 日本テキサス・インスツルメンツ株式会社 ディジタル信号処理装置
JPH07182157A (ja) * 1994-10-24 1995-07-21 Mitsubishi Electric Corp ディジタル信号処理プロセッサ
US5883804A (en) * 1995-06-14 1999-03-16 Telex Communications, Inc. Modular digital audio system having individualized functional modules
US6012142A (en) * 1997-11-14 2000-01-04 Cirrus Logic, Inc. Methods for booting a multiprocessor system
US6145007A (en) * 1997-11-14 2000-11-07 Cirrus Logic, Inc. Interprocessor communication circuitry and methods
US6081783A (en) * 1997-11-14 2000-06-27 Cirrus Logic, Inc. Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same
US6029221A (en) * 1998-06-02 2000-02-22 Ati Technologies, Inc. System and method for interfacing a digital signal processor (DSP) to an audio bus containing frames with synchronization data
US6570912B1 (en) * 1999-03-05 2003-05-27 Pctel, Inc. Hybrid software/hardware discrete multi-tone transceiver
US6751641B1 (en) * 1999-08-17 2004-06-15 Eric Swanson Time domain data converter with output frequency domain conversion
US6892339B1 (en) * 1999-09-20 2005-05-10 Freescale Semiconductor, Inc. Discrete multi-tone (DMT) system and method that communicates a data pump data stream between a general purpose CPU and a DSP via a buffering scheme
EP1247195A4 (en) * 1999-12-22 2005-01-05 Ubicom Inc SYSTEM AND METHOD FOR MULTITHREADING WORKING ON COMMAND LEVEL IN AN EMBEDDED PROCESSOR WITH ZERO-TIME CONTEXT SWITCHING
JP4511008B2 (ja) * 2000-09-29 2010-07-28 京セラ株式会社 画像送信装置
JP4292719B2 (ja) * 2001-01-19 2009-07-08 ソニー株式会社 並列演算装置
US6885992B2 (en) * 2001-01-26 2005-04-26 Cirrus Logic, Inc. Efficient PCM buffer
US6804655B2 (en) * 2001-02-06 2004-10-12 Cirrus Logic, Inc. Systems and methods for transmitting bursty-asnychronous data over a synchronous link
US6937988B1 (en) * 2001-08-10 2005-08-30 Cirrus Logic, Inc. Methods and systems for prefilling a buffer in streaming data applications
US6492903B1 (en) * 2001-11-30 2002-12-10 Harris Corporation Multiple input-type and multiple signal processing-type device and related methods
US7366659B2 (en) * 2002-06-07 2008-04-29 Lucent Technologies Inc. Methods and devices for selectively generating time-scaled sound signals
US7457484B2 (en) 2004-06-23 2008-11-25 Creative Technology Ltd Method and device to process digital media streams

Also Published As

Publication number Publication date
WO2006002209A2 (en) 2006-01-05
CN101185057A (zh) 2008-05-21
US20060008180A1 (en) 2006-01-12
EP1787191A4 (en) 2009-05-06
US7457484B2 (en) 2008-11-25
WO2006002209A3 (en) 2007-02-22
ATE520118T1 (de) 2011-08-15
JP2008504572A (ja) 2008-02-14
EP1787191B1 (en) 2011-08-10
CN101185057B (zh) 2010-11-17
EP1787191A2 (en) 2007-05-23

Similar Documents

Publication Publication Date Title
JP4951508B2 (ja) デジタルメディアストリームの処理
US9164772B2 (en) Hybrid queue for storing instructions from fetch queue directly in out-of-order queue or temporarily in in-order queue until space is available
US6237077B1 (en) Instruction template for efficient processing clustered branch instructions
JP6076686B2 (ja) デジタル信号処理のデータ転送
JP2005056426A (ja) デジタル・メディア・ストリームを処理するための方法及び装置
CN101763251B (zh) 含有译码缓冲装置的多线程的微处理器
US9886278B2 (en) Computing architecture and method for processing data
US20090006696A1 (en) Computer system, processor device, and method for controlling computer system
US7822952B2 (en) Context switching device
US7315935B1 (en) Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots
CN114546277A (zh) 用于存取数据的装置、方法、处理装置及计算机系统
CN114546914A (zh) 用于对多个通道信息执行数据处理的处理装置及系统
JPH086924A (ja) 複素数演算プロセッサとその方法
JPS63191253A (ja) キャッシュ記憶の優先順位指定装置
US6954869B2 (en) Methods and apparatus for clock domain conversion in digital processing systems
CN112559403B (zh) 一种处理器及其中的中断控制器
US7287151B2 (en) Communication path to each part of distributed register file from functional units in addition to partial communication network
JP4440181B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
US6584514B1 (en) Apparatus and method for address modification in a direct memory access controller
US11029914B2 (en) Multi-core audio processor with phase coherency
JP2006285724A (ja) 情報処理装置および情報処理方法
US20040064662A1 (en) Methods and apparatus for bus control in digital signal processors
US8677099B2 (en) Reconfigurable processor with predicate signal activated operation configuration memory and separate routing configuration memory
JP4006065B2 (ja) プロセッサ
JPH01296345A (ja) 情報処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111129

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

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

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

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4951508

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250