(57)【要約】   本発明は、複数の処理レイヤを通して、拡張可能な分散処理及びメモリ能力を有するシステムオンチップアーキテクチャに関する。本発明の１つの応用は、全てのビジュアルメディア用のシングル統合処理チップを利用したビデオとグラフィックの処理と通信を実現するために設計された、新規のメディア処理デバイスである。【特許請求の範囲】
【請求項１】
命令に基づいてメディアを処理するためのメディアプロセッサにおいて、
複数の処理レイヤと、
各処理レイヤは、少なくとも１つの処理ユニット、少なくとも１つのプログラムメモリ、及び少なくとも１つのデータメモリを有し、それぞれの前記処理ユニット、前記プログラムメモリ、前記データメモリは互いに通信可能であり、
受信したデータの動き推定機能を行うために設計された少なくとも１つの前記処理レイヤ内の少なくとも１つの処理ユニットと、
受信したデータのエンコード又はデコード機能を行うために設計された少なくとも１つの前記処理レイヤ内の少なくとも１つの処理ユニットと、及び
ソースから複数のタスクを受信し、前記タスクを前記処理レイヤに分散することができるタスクスケジューラと
からなることを特徴とするメディアプロセッサ。
【請求項２】
請求項１のメディアプロセッサにおいて、
更に、データ伝送をハンドルすることができるダイレクトメモリアクセスコントローラとからなり、
アドレスを有する少なくとも１つのデータメモリ、及び、それぞれアドレスを有する複数の外部メモリユニットからの各前記伝送は、サイズと方向を有する
ことを特徴とするメディアプロセッサ。
【請求項３】
請求項２のメディアプロセッサにおいて、
少なくとも１つのデータメモリと少なくとも１つの外部メモリとの間の前記伝送は、前記データメモリのアドレス、前記外部メモリのアドレス、前記伝送のサイズ、及び前記伝送の方向を利用することで発生する
からなることを特徴とするメディアプロセッサ。
【請求項４】
請求項１のメディアプロセッサにおいて、
前記タスクスケジューラは、外部メモリと通信している
ことを特徴とするメディアプロセッサ。
【請求項５】
請求項１のメディアプロセッサにおいて、
データ及び制御信号の受理及び送信のためのインターフェースと
からなることを特徴とするメディアプロセッサ。
【請求項６】
請求項５のメディアプロセッサにおいて、
前記インターフェースは、イーザネット互換性のインターフェースからなる
ことを特徴とするメディアプロセッサ。
【請求項７】
請求項５のメディアプロセッサにおいて、
前記インターフェースは、TCP/IP互換性のインターフェースからなる
からなることを特徴とするメディアプロセッサ。
【請求項８】
請求項１のメディアプロセッサにおいて、
少なくとも１つの処理レイヤは、受信したデータの動き推定機能を行うために設計された処理ユニット、及び、受信したデータのエンコード又はデコード機能を行うために設計された処理ユニットを含み、
前記動き推定及びエンコード又はデコード機能は、パイプライン式で行われる
ことを特徴とするメディアプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、システムオンチップのアーキテクチャシステムに関し、詳しくは、複数の処理レイヤの分散処理ユニット及びメモリバンクを有する拡張可能なシステムオンチップアーキテクチャに関する。また、本発明は、音声、ビデオ、テキスト、及びグラフィックの暗号化及び復号化ための方法及びシステム、並びに、そのような新規の暗号化及び復号化の方式を利用するデバイスを対象にする。
【背景技術】
【０００２】
メディアの処理と通信用のデバイスは、回路交換網とパケット交換網を横断及びその間に、アナログ及びディジタル信号を実質的にシームレスな処理及び送信を可能にし、相互依存した処理を利用するハードウェアとソフトウェアのシステムからなる。例として、Voice over Packet Gatewayは、従来の公衆交換網からパケット交換網へ人間の音声の送信を可能にし、ファックス情報とモデムデータはできる限り同時にシングルパケットネットワーク線で伝送し、返信される。異なるメディアが異なるネットワークを横断した統合通信の利点は、改良された顧客サポート、及びもっと効率の良い個人生産ツール用のインターネットベースのコールセンター等のコスト削減と、新しい及び／又は改良された通信サービスの提供を含むものである。
【０００３】
そのようなメディアオーバーパケット通信デバイス（例えば、メディアゲートウェイ）は、回路交換網からパケット交換網へ、及び逆に効率的なデータ送信を可能にするために、高性能のソフトウェア制御とアプリケーションを有する実質的に、拡張可能な処理能力を要求する。典型的な製品は、テキサス・インスツルメンツ社提供の４８チャネルのディジタル信号処理チップ（ＤＳＰチップ）のような少なくとも１つの通信プロセッサを利用する。このＤＳＰチップは、アダプティブ音声アクティビティ検知、アダプティブコンフォート雑音発生、アダプティブジッタバッファ、産業標準コーデック、エコキャンセル、トーンの検知と生成、ネットワークマネジメントサポート、及びパケット化等の特徴の組み合わせを提供するTelogy社提供システムのようなソフトウェアアーキテクチャを装備したものである。
【０００４】
異なるネットワークをまたがった異なるメディアの通信を統合したことの利点に加えて、与えられた処理デバイス内に、テキスト、グラフィック、及びビデオ（総称して、「ビジュアルメディア」という。）のような、特定メディアの処理を統合する利点がある。これまでは、メディアゲートウェイ；通信デバイス；ノートブックコンピュータ、ラップトップコンピュータ、ＤＶＤプレイヤ若しくはレコーダー、セット トップ ボックス、テレビ、衛星通信受信機、デスクトップパーソナルコンピュータ、ディジタルカメラ、ビデオカメラ、携帯電話器、若しくは個人情報端末等の任意の形態の計算デバイス；又は、ディスプレイ、モニタ、テレビ画面、若しくは、プロジェクタ(個別に、「メディア処理デバイス」と参照する。)等の各種形態の出力周辺器は、別々の処理システムのみを利用してビジュアルメディアを処理することができる。メディア処理デバイスには、ビデオとグラフィック／テキスト用に別々の入出力(Ｉ/Ｏ) ユニットが存在する。これらの別々のポートは、異なるデータに様々な通信リンクを要求する。従って、シングルメディア処理デバイスは、一方でグラフィック／テキスト、他方でビデオをハンドルする異なるＩ／Ｏと、それと連携した処理システムを備える。
【０００５】
図２４に、従来のメディア処理圧縮／解凍システム２４００の一部のブロックダイアグラムを図示している。送信端のシステムは、メディア処理デバイス２４０１内に内蔵若しくは統合されたメディアソース、 複数の前処理ユニット２４０２、２４０３、２４０４、ビデオエンコーダ２４０５、グラフィックエンコーダ２４０６、音声エンコーダ２４０７、多重器２４０８、及び制御ユニット２４０９からなる。メディア処理デバイス２４０１は、マルチメディアデータを ディジタルフレームで（又はアナログソースからディジタル形式に変換して）キャプチャし、前処理ユニット２４０２、２４０３、２４０４へパスする。
【０００６】
マルチメディアデータは、前処理ユニット２４０２、２４０３、２４０４で処理され、続いてエンコーディングのためにビデオエンコーダ２４０５、グラフィックエンコーダ２４０６、及び音声エンコーダ２４０７へ送信される。これらのエンコーダは、更に、多重器２４０８の機能の実現のために、制御ユニット２４０９をアタッチした多重器２４０８に接続されている。多重器２４０８は、ビデオエンコーダ２４０５、グラフィックエンコーダ２４０６、及び音声エンコーダ２４０７からのエンコードされたデータを結合し、シングルデータストリーム２４２０を形成する。これにより、マルチブルデータストリームは、適当なネットワーク２４１０の物理又はＭＡＣレイヤ上、一ヶ所から別の場所へシングルストリーム２４２０として伝送されることが可能になる。
【０００７】
受信端では、そのシステムは分離器２４１１、ビデオデコーダ２４１３、グラフィックデコーダ２４１４、音声デコーダ２４１５、及び複数のポスト処理ユニット２４１６、２４１７、及び２４１８からなる。ネットワーク上のデータは、ハイデータレートストリームからオリジナルのローレートストリームに分解する分離器２４１１によって受信され、オリジナルのマルチプルストリームに変換される。マルチプルストリームは、ビデオデコーダ２４１３、グラフィックデコーダ２４１４、及び音声デコーダ２４１５等の異なるデコーダに送信される。各デコーダは、圧縮されたビデオ、グラフィック、及び音声のデータを、適当な解凍アルゴリズムに従って解凍し、これらをビデオ、グラフィック、及び音声又は更なる処理用のデータとして出力するためのポスト処理ユニットに供給する。
【０００８】
プロセッサの例は、特許文献１〜５に開示されている。これらの特許文献は、相互接続、及び、算術演算論理ユニット（ＡＬＵ）のような一連の基本構成ブロックの機能を、再構成できるアダプティブ命令セットを有するハイブリッドのディジタル信号処理器（ＤＳＰ）／ＲＩＳＣチップを対象にしている。また、動作中のアプリケーションの特定要求に合致して動的にカストマイズされることが可能な命令セットアーキテクチャを提供し、よって、特定サイクル用の特定命令のカスタムパスを作る。
【０００９】
発明者によれば、命令ストレージ用に、及びデータストレージと計算のために、このリソースからの分散用に、命令を分離し、並びに、製造時にシリコンリソースをこれらのリソース各々専用にすることよりは、これらのリソースは統合されることができる。いったん統合されると、伝統的な命令と制御リソースは、計算リソースとともに分解でき、及びアプリケーションスペシフィクマナーで配置することができる。チップのキャパシティは、アプリケーションの必要性、利用できるハードウェアリソースに応じて、アクティブ計算を動的にサポート、又は、計算リソースの再利用を制御することに選択的に展開される。理論的には、これは、パフォーマンス改善の効果がある。
【特許文献１】米国特許第6 226 735号公報
【特許文献２】米国特許第6 122 719号公報
【特許文献３】米国特許第6 108 760号公報
【特許文献４】米国特許第5 956 518号公報
【特許文献５】米国特許第5 915 123号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述の従来技術にもかかわらず、異なるネットワークを横断したメディア通信を実現するための改良された方法及びシステムが必要である。特に、グラフィック、テキスト、及びビデオ情報の処理に、シングルプロセッシングシステムの利用が好ましい。もっとコスト効率の良い及び効率的な処理システムの実現のために、全てのメディア処理デバイスは、このシングルプロセッシングアプローチを内蔵することが、更に好ましい。更に、シングルインターフェースを利用した総合的な圧縮解凍システムを提供することができるアプローチが必要である。更に詳しくは、新規の処理要求に合致して効率的に縮小され、高処理スループットと生産収率の向上を可能にするのに十分に分散されたシステムオンチップアーキテクチャが必要である。
【課題を解決するための手段】
【００１１】
本発明は、複数の処理レイヤを介して、拡張可能な分散処理及びメモリキャパビリティを有するシステムオンチップアーキテクチャに関する。好ましい実施の形態においては、 分散処理レイヤプロセッサ（ＤＰＬＰ）は、通信データバスと処理レイヤインターフェースを介して、処理レイヤコントローラと中央ダイレクトメモリアクセスコントローラと、それぞれ通信している複数の処理レイヤからなる。各処理レイヤには、複数のプログラムメモリ及びデータメモリと通信する複数のパイプラインされた処理ユニット（ＰＵ）がある。
【００１２】
各ＰＵは、少なくとも一つのプログラムメモリと一つのデータメモリにアクセスすることができなければならない。処理レイヤコントローラは、タスクのスケジュールと、各処理レイヤへの処理タスクの分散をマネージする。ＤＭＡコントローラは、ローカルメモリバッファＰＵ及びＳＤＲＡＭ等の外部メモリの間のデータ転送を、ハンドルするためのマルチチャネルＤＭＡユニットである。各処理レイヤには、処理タスクの定義済みセットを処理するために特別に設計された複数のパイプラインＰＵがある。
【００１３】
この点で、ＰＵは、一般目的のプロセッサではなく、任意の処理タスクを処理するために利用することができない。加えて、各処理レイヤには、命令セット、処理済み情報、及び、他のデータのローカルストレージを可能にする分散メモリバンクのセットがある。この他のデータは、割り当てられた処理タスクを処理するために要求されたものである。
【００１４】
本発明の一つの応用は、回路交換網とパケット交換網にわたった、メディアの通信用に設計されたメディアゲートウェイである。前述の新規のゲートウェイのハードウェアシステムアーキテクチャは、複数のＤＰＬＰからなる。このＤＰＬＰは、ネットワークと通信しているホストプロセッサと交代して相互接続されたもので、メディアエンジンとして参照される。ネットワークは、非同期転送モード（ＡＴＭ）物理デバイス又はギガビット・メディア・インデペンダント・インターフェース（ＧＭＩＩ）物理デバイスであることが好ましい。メディアエンジンの処理レイヤ内の各ＰＵは、回線エコキャンセル、データのエンコード、デコード、又はトーン信号等のメディア処理スペシフィクタスクのクラスを行うように特別に設計されている。
【００１５】
本発明の第２の応用は、全てのビジュアルメディア用のシングル統合処理チップを利用して、ビデオとグラフィックの処理及び通信を可能にするように設計された新規のメディア処理デバイスである。メディアを命令に基づいて処理するためのこのメディアプロセッサは、
互いに通信している、少なくとも１つの処理ユニット、少なくとも１つのプログラムメモリ、及び少なくとも１つのデータメモリを各処理レイヤに有する複数の処理レイヤと、
更に、受信したデータの動き推定機能を行うために設計されたもので、少なくとも１つの上述の処理レイヤ内の少なくとも一つの処理ユニットと、
受信したデータのエンコード又はデコード機能を行うために設計されたもので、少なくとも上述の処理レイヤ内の少なくとも一つの処理ユニットと、及び
ソースから複数のタスクを受信すること、かつ、上述のタスクを当該処理レイヤに分散することが可能なタスクスケジューラと、
からなる。
【発明を実施するための最良の形態】
【００１６】
発明の詳細な説明
本発明は、複数の処理レイヤを通して拡張可能で、分散処理及びメモリキャパビリティを有するシステムオンチップアーキテクチャである。本発明の１つの実施の形態は、全てのビジュアルメディア用のシングル統合処理ユニティを用いた、メディアの処理と通信ができるように設計された新規のメディア処理デバイスである。本発明は、図面を参照して説明する。ヘッダは、明瞭の目的で利用されるものであり、ここで開示された内容を限定又は制限するものではない。図面中に利用された矢印は、当業者にあきらかなように、バス又は他の種類の通信チャネルを介する要素及び／又はコンポネント間の相互接続を意味する。
【００１７】
図１に図示したように、例示の分散処理レイヤプロセッサ（ＤＰＬＰ）１００のブロックダイアグラムが図示されている。ＤＰＬＰ１００は、通信データバスを介して互いに通信し、及び処理レイヤコントローラ１０７及び中央ダイレクトメモリアクセス（ＤＭＡ）コントローラ１１０と、通信データバスと処理レイヤインターフェース１１５を介して、通信する複数の処理レイヤ１０５からなる。各処理レイヤ１０５は、ＣＰＵ１０４と交代で通信しているＣＰＵインターフェース１０６と通信している。
【００１８】
各処理レイヤ１０５内には、複数のパイプライン処理ユニット（ＰＵ）１３０が、複数のプログラムメモリ１３５及びデータメモリ１４０と、通信データバスを介して、通信している。各プログラムメモリ１３５及びデータメモリ１４０は、データバスを介して少なくとも１つのＰＵ１３０によってアクセスされることが好ましい。各ＰＵ１３０、プログラムメモリ１３５、及びデータメモリ１４０は、通信データバスを介して外部メモリ１４７と通信している。
【００１９】
好ましい実施の形態において、処理レイヤコントローラ １０７は、タスクのスケジューリング、及び各処理レイヤ１０５への処理タスクの分散をマネージする。処理レイヤコントローラ１０７は、ラウンドロビン方式で、プログラムメモリ１３５及びデータメモリ１４０へ、並びに、これらからのデータとプログラムコード転送要求を解決する。この解決に基づいて、処理レイヤコントローラ１０７は、データパスウェイを埋める。データパスウェイは、ユニットが、メモリ、すなわちＤＭＡチャネル（図示せず。）、にどのように直接アクセスしているかを定義したものである。
【００２０】
処理レイヤコントローラ１０７は、命令をこれのデータフローに従ってルーチングし、並びに、リード・イン要求、ライトバック要求、及び命令転送のステート等の全てのＰＵ１３０用の要求ステートのトラックを維持するために、命令デコードを行うことができる。処理レイヤコントローラ１０７は、更に、ＤＭＡチャネルのプログラミング、信号生成の開始、各処理レイヤ１０５内のＰＵ１３０用のページステートの管理、スケジューラ命令のデコード、並びに、各ＰＵ１３０のタスクキューから及びへデータの移動の管理等の機能に関連付けられたインターフェースを処理することができる。
【００２１】
上述の機能を行うことによって、処理レイヤコントローラ１０７は、各処理レイヤ１０５内に存在するＰＵ１３０を、複雑なステートマシンと関連付けする必要性を実質的に無くしている。ＤＭＡコントローラ１１０は、ローカルメモリバッファＰＵと、ＳＤＲＡＭ等の外部メモリとの間のデータ転送をハンドルするためのマルチチャネルＤＭＡユニットである。各処理レイヤ１０５は、ＰＵローカルメモリバッファへ及びからデータを転送するために割り当てられた独立したＤＭＡチャネルを有する。
【００２２】
外部メモリへアクセスするためにＤＭＡ内のチャネル間にラウンドロビン解決のシングルレベルのような解決プロセスがあることが好ましい。ＤＭＡコントローラ１１０は、ＰＵ１３０と処理レイヤ１０５をわたってラウンドロビン要求解決のためのハードウェアサポートを提供する。各ＤＭＡチャネル機能は、互いに独立している。例示の動作としては、ローカルメモリのアドレス、外部メモリのアドレス、転送のサイズ、転送の方向を利用して、ローカルＰＵメモリと外部メモリとの間の転送を処理することが望まれる。
【００２３】
すなわち、ＤＭＡチャネルは、外部メモリからローカルメモリへ、又は逆に、データを転送しているか、及び各ＰＵ１３０にどのぐらいの転送が要求されているか、を処理することが望ましい。ＤＭＡコントローラ１１０は、プログラムコードフェッチ要求の優先順位を解決すること、リンクリスト巡回とＤＭＡチャネル情報生成を処理すること、及びＤＭＡチャネルのプリフェッチと完了信号生成を行うことができることが更に望ましい。
【００２４】
処理レイヤコントローラ１０７とＤＭＡコントローラ１１０は、制御情報とデータ送信が発生する毎に、複数の通信インターフェース１６０、１９０と通信している。ＤＰＬＰ１００は、処理レイヤコントローラ１０７とＤＭＡコントローラ１１０と通信し、かつ、外部メモリ１４７と通信している、外部メモリインターフェース（ＳＤＲＡＭインターフェース等）１７０を含むことが好ましい。
【００２５】
各処理レイヤ１０５内には、処理タスクの定義済みセットを処理するために特別に設計された複数のパイプラインＰＵ１３０がある。その点で、ＰＵは、一般目的のプロセッサではなく、任意の処理タスクを処理するのに利用されない。特定機能ユニットの共通性で生じる特定処理タスクの調査と分析は、結合されたとき、それらの特殊処理タスクの存在を最適処理することができる特殊ＰＵを生じる。各ＰＵの命令セットアーキテクチャは、コンパクトコードをもたらす。コード密度の増加は、要求メモリの減少と、従って、要求エリア、パワー、及びメモリトラフィックの減少をもたらす。
【００２６】
各処理レイヤ内に、ＰＵ１３０は、先入れ先出し（ＦＩＦＯ）のタスクキュー（図示せず。）で、処理レイヤコントローラ１０７によってスケジュールされたタスクで動作することが好ましい。パイプラインアーキテクチャは、パフォーマンスを改善する。パイプラインは、実行時に複数の命令がオーバーラップされる実施テクニックである。コンピュータパイプラインには、パイプラインの各ステップは、命令の一部を実行する。アセンブリラインのように、異なるステップは、異なる命令の異なる部分を並列に実行している。これらの各ステップは、パイプステージ又はデータセグメントと呼ばれる。このステージは、パイプを形成するために次のステージに接続されている。プロセッサ内には、命令は、パイプの一端から入り、ステージを通って進行し、他端から出る。命令パイプラインのスループットは、パイプラインから命令が、どのぐらいの頻度で、出ているかによって決まる。
【００２７】
追加して、各処理レイヤ１０５内は、命令セット、処理済みデータ、及び他のデータのローカルストレージを可能にする分散メモリバンク１４０のセットがある。この他のデータは、割り当てられた処理タスクを処理するのに要求されたものである。離散処理レイヤ１０５内に分散したメモリ１４０を有することは、ＤＰＬＰ１００は柔軟になり、生産時、高い生産効率になる。メモリブロックが増加すると、悪いウェハ（メモリブロックの破損が原因）の確率も増加する理由で、従来から、シングルチップ上に９メガバイト以上のメモリを持つ特定ＤＳＰチップは生産されていない。
【００２８】
本発明においては、ＤＰＬＰ１００は、処理レイヤ１０５を余分に内蔵させることで、１２メガバイト以上のメモリを有して生産されることができる。処理レイヤ１０５を余分に内蔵することでできることは、大きなメモリをもつチップの生産を可能にする。理由は、メモリブロックのセットが悪かったら、チップ全体を捨てるより、見つかった損傷メモリユニットを有する離散処理レイヤの利用はやめ、他の処理レイヤはその代わりに利用される。複数の処理レイヤの拡張性の性質は、余分なものを許し、従って、高い生産効率を実現する。
【００２９】
本発明のレイヤアーキテクチャは、処理レイヤの数を特定の数に限定にしない。しかしながら、特定の実務限定は、シングルＤＰＬＰに内蔵できる処理レイヤの数を制限しても良い。処理レイヤの実現可能な数を制限しているもので、システムを制限するトラフィックとバンド幅等の外部条件によってかけられる処理限定をどのように判定するかは、当業者にとって明らかである。
【００３０】
応用の例
本発明は、新規のメディアゲートウェイの動作を可能にするために利用できる。この新規のゲートウェイのハードウェアシステムアーキテクチャは、メディアエンジンという複数のＤＰＬＰからなる。複数のＤＰＬＰは、データバスと通信しており、ネットワークへのインターフェースと交代で通信しているホストプロセッサ又はパケットエンジンに相互接続されている。このネットワークは、非同期転送モード（ＡＴＭ）物理デバイス又はギガビット・メディア・インデペンデント・インターフェース（ＧＭＩＩ）物理デバイスであることが好ましい。
【００３１】
図２に図示したように、トップレベルのハードウェアシステムアーキテクチャの第１の実施の形態を図示している。データバス２０５ａは、第１新規メディアエンジンタイプＩ２１５ａと第２新規メディアエンジンタイプＩ２２０ａに既存するインターフェース２１０ａに接続されている。第１新規メディアエンジンタイプＩ２１５ａと第２新規メディアエンジンタイプＩ２２０ａは、通信バス２２５ａの第２セットを通して、新規パケットエンジン２３０ａに接続されている。新規パケットエンジン２３０ａは、インターフェース２３５ａを通して出力２４０ａ、２４５ａに交代で接続されている。各メディアエンジンタイプＩ２１５ａ、２２０ａは、ＳＲＡＭ２４６ａとＳＤＲＡＭ２４７ａと通信していることが好ましい。
【００３２】
データバス２０５ａは、時分割多重（ＴＤＭ）バスであることが好ましい。ＴＤＭバスは、多数の別々の音声、ファックス、モデム、ビデオ、及び／又は他のデータ信号を、同時にシングル通信媒体で伝送するためのパスウェイである。この別々の信号が各信号の一部が互いにインターリーブして送信され、よって、１本の通信チャネルが複数の別々の送信をハンドルすることを可能にし、別々の通信チャネルを各送信専用にすることを回避する。既存のネットワークは、一つの通信デバイスから他へデータを送信するときにＴＤＭを利用している。第１新規メディアエンジンタイプＩ２１５ａと第２新規メディアエンジンタイプＩ２１５ａに既存するインターフェース２１０ａは、Ｈ．１００に準拠していることが更に好ましい。
【００３３】
Ｈ．１００は、ソフトウェア仕様から独立して、ＰＣＩコンピュータ筐体カードスロット用に、物理レイヤにＣＴバスインターフェースへ実装するのに、必要な情報を記述しているハードウェア仕様である。ＣＴバスは、特定のＰＣ筐体カードスロットのシングル等時間間隔通信のバスを定義し、コンポネントの相対的・流動性のインター・オペレーションを可能にする。また、データバス２０５ａから信号を受信するのに使われるもので、異なるハードウェア仕様による普遍のインターフェースであることは明らかである。
【００３４】
後述したように、２つの新規メディアエンジンタイプＩ２１５ａ、２２０ａそれぞれは、音声等の、処理メディア用の複数のチャネルをサポートすることができる。 サポートされる特定数のチャネルは、エコキャンセルの拡張等の要求特徴、及び、サポートされたコーデックの種類に依存する。Ｇ．７１１等の比較的に低処理能力を要求するコーデック用に、メディアエンジンタイプＩ２１５ａ、２２０ａそれぞれは、約２５６以上の音声チャネルの処理をサポートすることができる。メディアエンジンタイプＩ２１５ａ、２２０ａそれぞれは、通信バス２２５ａ、好ましくは周辺コンポネントインターコネクト（ＰＣＩ）通信バス、を通してパケットエンジン２３０ａと通信している。
【００３５】
ＰＣＩ通信バスは、メディアエンジンタイプＩチップ２１５ａ、２２０ａとパケットエンジンチップ２３０ａとの間に制御データとデータ転送をするものである。メディアエンジンタイプＩチップ２１５ａ、２２０ａは、後述のメディアエンジンタイプＩＩに比べて低データ量の処理をサポートするために設計されているので、シングルＰＣＩ通信バスは、指定されたチップ間に制御及びデータの両方の転送を効率的にサポートすることができる。しかし、データトラフィックは極端に増大したとき、PCI通信バスは、第２のインターチップ通信バスで補完されなければならないことは明らかである。
【００３６】
パケットエンジン２３０ａは、２つのメディアエンジンタイプＩ２１５ａ、２２０ａから、通信バス２２５ａを介して処理済みデータを受信する。複数のメディアエンジンタイプＩへ接続することは理論的に可能であると同時に、この実施の形態においては、パケットエンジン２３０ａは２個までのメディアエンジンタイプＩ２１５ａ、２２０ａと通信していることが好ましい。更に下記に説明されるように、パケットエンジン２３０ａは、データチャネル、好ましい実施の形態において２０１６チャネル又は約２０１６チャネル、用にセルとパケットのカプセル化を提供、トラフィックマネジメント用にサービス機能の質を提供、差別化されたサービスとマルチプロトコルラベルスイッチング用にタグ付けを提供、及び、セルとパケットネットワークのブリッジを提供する。パケットエンジン２３０ａを利用することが好ましいことであると同時に、上述のパケットエンジン２３０ａの機能ができるように提供された異なるホストプロセッサに切り替えることができる。
【００３７】
パケットエンジン２３０ａは、ＡＴＭ物理デバイス２４０ａとＧＭＩＩ物理デバイス２４５ａと通信している。ＡＴＭ物理デバイス２４０ａは、処理済み及びパケット化されたデータを、メディアエンジンタイプＩ２１５ａ、２２０ａから通過したら、パケットエンジン２３０ａを通して、受信し、及び、非同期転送モード（ＡＴＭネットワーク）で動作するネットワークにこれを送信することができる。当業者に明らかなように、ＡＴＭネットワークは、ネットワークキャパシティを、システムの必要性にあうように、自動的に調整し、音声、モデム、ファックス、ビデオ及び他のデータ信号をハンドルすることができる。
【００３８】
各ＡＴＭデータセル、又はパケットは、５オクテットのヘッダフィールドと、４８オクテットのユーザデータから構成される。ヘッダは、関連するセルを識別するデータ、ルーチングを識別するロジカルアドレス、ヘッダエラー訂正ビット、優先ハンドリングとネットワークマネジメント機能のための追加ビットを含む。ＡＴＭネットワークは、送信バンド幅の利用を比較的に柔軟に許可したネットワークで、広帯域、低遅延、接続オリエンテッド、パケットライクスイッチングと多重化のネットワークである。ＧＭＩＩ物理デバイス２４５ａは、特定量のデータの受信と送信用の標準に基づき、メディアの種類に依存しないで動作する。
【００３９】
図２に示した実施の形態は、Optical Carrier Level  1（ＯＣ−１）へ音声処理を配送することができる。ＯＣ−１は、毎秒５１.８４０百万ビットを伝送できるもので、フレーム同期スクランブルを有する同期転送信号（ＳＴＳ−１）の直接電気−光学マッピングを提供する。高階層のOptical Carrier Levelは、ＯＣ−１の直接多重である。即ちＯＣ−３はＯＣ−１の３倍のレートである。下記に示すように、本発明の他の構成は、ＯＣ−１２での音声処理をサポートするのに利用できる。
【００４０】
図２ｂに示すように、ＯＣ−３までのデータレートをサポートしている実施の形態が、図示されており、ここでＯＣ−３ タイル２００ｂと言う。データバス２０５ａは、第１新規メディアエンジンタイプＩＩ２１５ｂと第２新規メディアエンジンタイプＩＩ２２０ｂに既存するインターフェース２１０ｂに接続されている。第１新規メディアエンジンタイプＩＩ２１５ｂと第２新規メディアエンジンタイプＩＩ２２０ｂは、通信バス２２５ｂ、２２７ｂの第２セットを通して、新規パケットエンジン２３０ｂに接続されている。新規パケットエンジン２３０ｂは、互いに、インターフェース２６０ｂ、２６５ｂを通して出力２４０ｂ、２４５ｂに、及びインターフェース２５０ｂを通してホストプロセッサ２５５ｂに接続されている。
【００４１】
以前に議論したように、データバス２０５ｂは、時分割多重（ＴＤＭ）バスであること、及び、第１新規メディアエンジンタイプＩＩ２１５ｂと第２新規メディアエンジンタイプＩＩ２２０ｂに既存するインターフェース２１０ｂはハードウェア仕様のＨ．１００に準拠することが好ましい。異なるハードウェア仕様により不変であるインターフェースは、データバス２０５ｂからの信号を受信するのに利用できることも明らかである。
【００４２】
新規メディアエンジンタイプＩＩ２１５ａ、２２０ｂそれぞれは、音声等のメディアの処理のために、複数のチャネルをサポートすることができる。サポートされた特定数のチャネルは、エコキャンセル等の要求特徴、及び実装されたコーデックの種類に依存する。Ｇ．７１１等の比較的に低処理の能力要求を有するコーデック用に、及び要求されたエコキャンセルの範囲は１２８ミリ秒のとき、各メディアエンジンタイプＩＩは、音声の約２０１６チャネルの処理をサポートすることができる。二つのメディアエンジンタイプＩＩは高処理能力を提供し、この構成は、ＯＣ−３のデータレートをサポートすることができる。
【００４３】
メディアエンジンタイプＩＩ２１５ｂ、２２０ｂはＧ．７２９Ａ等の高い処理能力を要求するコーデックを実装するとき、サポートされるチャネル数は減少する。例として、サポートされたチャネルの数は、Ｇ．７１１をサポートするときの、メディアエンジンタイプＩＩ毎の２０１６から、Ｇ．７２９Ａをサポートするとき、約６７２から１０２４チャネルに減少する。ＯＣ−３に合致するために、追加のメディアエンジンタイプＩＩが、パケットエンジン２３０ｂに、共通通信バス２２５ｂ、２２７ｂを介して、接続されることができる。
【００４４】
各メディアエンジンタイプＩＩ２１５ｂ、２２０ｂは、通信バス２２５ｂ、２２７ｂ、好ましくは周辺コンポネントインターコネクト（ＰＣＩ）通信バス２２５ｂとUTOPIAII/POSII通信バス２２７ｂ、を通して、パケットエンジン２３０ｂと通信している。上述したように、データトラフィック量が所定の閾値を超えたとき、ＰＣＩ通信バス２２５ｂは、第２通信バス２２７ｂによって強化されなければならない。第２通信バス２２７ｂは、UTOPIAII/POSIIバスで、メディアエンジンタイプＩＩ２１５ｂ、２２０ｂとパケットエンジン２３０ｂとの間のデータパスとして勤めることが好ましい。
【００４５】
ＰＯＳ（Packet over SONET）バスは、データを直接接続で送信する高スピード手段の代表であり、信号と制御情報の形式のオーバーヘッドがデータに意味あるレベルで追加されることなく、データの通過を元のフォーマットで許可する。UTOPIA (Universal Test and Operations Interface for ATM) とは、送信コンバージェンスと、物理レイヤの物理媒体依存サブレイヤとの間の電気インターフェースであり、ＡＴＭネットワークに接続するデバイスのためのインターフェースとして振舞う。
【００４６】
物理インターフェースは、可変サイズデータフレーム転送用のＰＯＳ−ＩＩモードで動作するために構成されている。各パケットは、パケットの開始と終了を明確に示すために、ＰＯＳ−ＩＩ制御信号を利用して転送される。図３に示すように、各パケット３００は、複数の情報フィールドを有するヘッダ３０５と、ユーザデータ３１０を含む。好ましくは、各ヘッダ３０５は、パケット種類３１５（例えば、ＲＴＰ、ロー・エンコーデッド・音声、ＡＡＬ２）、パケット長３２０（情報フィールドを含むパケット全体の長さ）、及びチャネル識別子３２５（物理チャネル、即ちパケットがどこへ送られてか、又はどこから来たかを示すＴＤＭスロット、を識別する。）を含む情報フィールドから構成される。メディアエンジンタイプＩＩ２１５ｂ、２２０ｂとパケットエンジン２３０ｂの間にエンコードされたデータの転送を取り扱うとき、コーダー／デコーダ種類３３０、シーケンス番号３３５、及びヘッダ３０５内の音声アクティビティ検知決定３４０を含むことが好ましい。
【００４７】
パケットエンジン２３０ｂは、ＰＣＩターゲットインターフェース２５０ｂを通して、ホストプロセッサ２５５ｂと通信している。パケットエンジン２３０ｂは、ＰＣＩ通信バス２２５ｂへのＰＣＩインターフェース２２６ｂとＰＣＩターゲットインターフェース２５０ｂとの間に、ＰＣＩ−ＰＣＩブリッジ（図示せず。）を含むことが好ましい。このＰＣＩ−ＰＣＩブリッジは、ホストプロセッサ２５５ｂと２つのメディアエンジンタイプＩＩ２１５ｂ、２２０ｂとの間にメッセージを通信するためのリンクとして勤める。
【００４８】
新規パケットエンジン２３０ｂは、２つのメディアエンジンタイプＩＩ２１５ｂ、２２０ｂそれぞれから、通信バス２２５ｂ、２２７ｂを介して、処理済みデータを受信する。複数のメディアエンジンタイプＩＩと接続されることは理論的に可能であると同時に、パケットエンジン２３０ｂは、３個以下のメディアエンジンタイプＩＩ２１５ｂ、２２０ｂ（図２ｂに２個のみが図示されている。）と通信していることが好ましい。
【００４９】
前述した実施の形態のように、パケットエンジン２３０ｂは、データチャネル用にセルとパケットのカプセル化、Ｇ.７１１コーデックを実装しているとき２０４８までのチャネル、トラヒックマネジメント用にサービス機能の質、サービスの差別化とマルチプロトコルラベルスイッチング用のタグ付け、及び、セルとパケットネットワークのブリッジを提供する。パケットエンジン２３０ｂは、ＡＴＭ物理デバイス２４０ｂとＧＭＩＩ物理デバイス２４５ｂと、UTOPIAII/POSII準拠インターフェース２６０ｂ、ＧＭＩＩ準拠のインターフェース２６５ｂそれぞれを通して、通信している。
【００５０】
物理層のＧＭＩＩインターフェース２６５ｂに関して、以後は、ＰＨＹ  ＧＭＩＩインターフェースと言い、パケットエンジン２３０ｂは、ネットワークのＭＡＣ層に他のＧＭＩＩインターフェース（図示せず。）をも有することが好ましく、以後、これをＭＡＣ  ＧＭＩＩインターフェースと言う。ＭＡＣは、メディア特定アクセスコントロールプロトコルであり、産業標準のローカルエリアネットワーク仕様用のトポロジー依存性のアクセスコントロールプロトコルを定義するデータリンクレイヤの下半を定義する。
【００５１】
後述の通り議論するように、パケットエンジン２３０ｂは、ＡＴＭ−ＩＰインターネットワーキングを可能にするように設計されている。通信サービスプロバイダは、ＡＴＭ又はＩＰプロトコルを基にして動作する独立したネットワーク用に構築されている。ＡＴＭ−ＩＰインターネットワーキングを可能にすることは、実質的に全てのディジタルサービスの配達を、シングル・ネットワーキング・インフラストラクチャをわたって、サポートすることをサービスプロバイダに許可し、従って、サービスプロバイダのネットワーク全体を通して動作可能な複数のテクノロジ／プロトコルを有することによって導入される複雑性を低減する。そのため、パケットエンジン２３０ｂは、ＡＴＭモードとＩＰモードとの間のインターネットワーキングを提供することによって、コモン・ネットワーク・インフラストラクチャーを可能にするように設計されている。
【００５２】
もっと詳しくは、新規パケットエンジン２３０ｂは、特定ＩＰプロトコルへの、ＡＴＭ  ＡＡＬ (ATM Adaptation Layers)のインターネットワーキングをサポートする。コンバージェンス・サブレイヤとセグメンテーション／再アセンブリ・サブレイヤに分割され、ＡＡＬは、高階層レイヤのネーティブ・データ・フォーマットとサービス仕様をＡＴＭレイヤへする変換を遂行する。データ・オリジネーティング・ソースからのデータに関して、処理は、オリジナルの大きなセットのデータをＡＴＭセルのフォーマットとサイズへ変換するセグメンテーションを含む。ＡＴＭセルは、４８オクテットのペイロードと５オクテットのオーバーヘッドから構成される。受信サイドでは、ＡＡＬは、データの再アセンブリを遂行する。
【００５３】
ＡＡＬ−１機能は、Ｃｌａｓｓ  Ａトラヒックをサポートしている。Ｃｌａｓｓ  Ａトラヒックは、接続オリエントの不変ビットレート(ＣＢＲ)と、圧縮無しで、ディジタル化された音声とビデオ等の時間依存トラフィックである。Ｃｌａｓｓ  Ａトラヒックは、及びストリーム・オリエント及び、遅延の相対的なイントレラントである。ＡＡＬ−２機能は、Ｃｌａｓｓ Ｂトラヒックをサポートしている。Ｃｌａｓｓ Ｂトラヒックは、接続オリエントの可変ビットレート（ＶＢＲ）の当時間間隔トラフィックであり、圧縮された音声とビデオ等の、ソースと受信側の間に相対的に正確なタイミングを要求するものである。ＡＡＬ−５機能は、Ｃｌａｓｓ Ｃトラヒックをサポートしている。Ｃｌａｓｓ Ｃトラヒックは、可変ビットレート（ＶＢＲ）で、遅延トレラントで、接続オリエントのデータトラヒックであり、信号と制御データ等の、比較的に最小のシーケンス、又はエラー検知のサポートを要求するものである。
【００５４】
このＡＴＭ  ＡＡＬは、ＲＴＰ、ＵＤＰ、ＴＣＰ及びＩＰ等の、ＩＰネットワークで動作可能なプロトコルとインターネットワークする。インターネットプロトコル（ＩＰ）は、データパケットがソースから目的地までに複数のネットワークを横断することを可能にすると同時に、違うノードへのインターネットのアドレスのトラッキング、送信メッセージのルーチング、及び受信メッセージの識別をするソフトウェアを記述する。リアルタイム・トランスポート・プロトコル（ＲＴＰ）は、インターネット上のパケット通信の、リアルタイムマルチメディアのストリーミング用の標準であり、パケット交換ネットワーク上にインタラクティブ・ビデオ及びビデオ等のリアルタイム・データのトランスポートをサポートする。
【００５５】
伝送制御プロトコル （ＴＣＰ）は、リモート又はローカルユーザへ、バイトの、比較的に信頼性のある、シーケンスされた、重複されていない配送を提供するためプロトコルで、トランスポートレイヤ、接続オリエント、エンド・ツー・エンドのプロトコルである。ユーザ・データグラム・プロトコル （ＵＤＰ）は、到達確認と到着保証を行わないでデータグラムの交換を提供し、トランスポートレイヤの無接続モードのプロトコルである。図２ｂに図示した好ましい実施の形態においては、ＡＴＭ  ＡＡＬ−１は、ＲＴＰ、ＵＤＰ、及びＩＰプロトコルでインターネットワークし、ＡＡＬ−２は、ＵＤＰとＩＰプロトコルでインターネットワークし、及びＡＡＬ−５はＵＤＰ及びＩＰプロトコル、又はＴＣＰ及びＩＰプロトコルでインターネットワークすることが好ましい。
【００５６】
図２ｂ示すようなマルチプルＯＣ−３タイルは、高いデータレートをサポートするタイルを形成するために相互接続できる。図４に図示したように、４つのＯＣ−３タイル４０５は相互接続でき、又はＯＣ−１２タイル４００を形成するために、一緒に「デイジー・チェーン」することができる。「デイジー・チェーン」は、信号がチェーンを通って１つのデバイスから他方へパスするようにデバイスを連続に接続する方法である。「デイジー・チェーン」を可能にすることで、本発明は、現在不可能なレベルであり、データ量のサポートとハードウェアの実装の拡張性を提供する。
【００５７】
ホストプロセッサ４５５は、通信バス４２５、好ましくはＰＣＩ通信バス、を介して、各ＯＣ−３タイル４０５上のＰＣＩインターフェース４３５に接続している。各ＯＣ−３タイル４０５は、ＴＤＭインターフェース（図示せず。）からＴＤＭ信号を受信するために、ＴＤＭ通信バス４６５を介して動作するＴＤＭインターフェース４６０を備えている。各ＯＣ−３タイル４０５は、更に、ＯＣ−３タイル４０５にUTOPIAII/POSIIインターフェース４７０を通して接続された通信バス４９５を通して、ＡＴＭ物理デバイス４９０と通信している。ＯＣ−３タイル４０５によって受信され、ＯＣ−３タイル４０５によって受信されたデータは、次の理由で処理されないとき、連続接続の次のＯＣ−３タイル４０５に、ＰＨＹ ＧＭＩＩインターフェース４１０を介して、送信される。
【００５８】
その理由は、例えば、データパケットは、特定パケットエンジンアドレスへ送信されるが、当該ＯＣ−３タイル４０５には、そのアドレスが見つからない。そして、送信されたデータは、ＭＡＣ ＧＭＩＩインターフェース４１３を介して、次のＯＣ−３タイルによって受信される。「デイジー・チェーン」の実現は、統合を可能にするために、各ＯＣ−３タイル上のＧＭＩＩインターフェースをインターフェースする外部統合機能の必要性を無くしている。最後のＯＣ−３タイル４０５は、ＧＭＩＩ物理デバイス４１７と、ＰＨＹ ＧＭＩＩインターフェース４１０を介して、通信している。
【００５９】
上述のハードウェアアーキテクチャの実施の形態の動作は、メディア処理、信号、及びパケット処理ができるように設計された、複数の新規、統合ソフトウェアシステムである。図５に、ソフトウェアシステム５００の論理分割を図示している。ソフトウェアシステム５００は、メディア処理サブシステム５０５、パケット化サブシステム５４０、及び信号／マネジメントサブシステム５７０の３つのサブシステムに分かれている。
【００６０】
各サブシステム５０５、５４０、５７０は、更に、メディアの処理と送信を達成するために、異なるタスクを行うように設計されたモジュール５２０のシリーズからなる。モジュール５２０は、実質的に分割不可能なシングルコアタスクを取り囲むために設計されたものであることが好ましい。例えば、例示のモジュールは、特に、エコキャンセル、コーデック実装、スケジューリング、ＩＰベースのパケット化、及びＡＴＭベースのパケット化を含む。本発明に実施されたモジュール５２０の性質と機能は、次に説明される。
【００６１】
図５の論理システムは、処理に依存し、そして、部分的に後述の新規のソフトウェアアーキテクチャに依存して多数の方法で物理的に実施されることができる。図６に示すように、図５に説明されたソフトウェアシステムの一つの物理的な実施の形態は、シングルチップ６００上に実現されたものである。メディア処理ブロック６１０、パケット化ブロック６２０、及びマネジメントブロック６３０が、全て同じチップ上で動作可能で、メディア処理ブロック６００上に動作する。もし、処理の必要性が増加すれば、メディア処理専用にチップ能力をもっと要求し、ソフトウェアシステムは次のように物理的に実装されることができる。
【００６２】
図７に図示したように別のホストプロセッサ７３５上に動作するマネジメントブロック７３０と、データバス７７０を介して、通信しているＤＳＰ７１５上に、メディア処理ブロック７１０及びパケット化ブロック７２０が動作する。図８に図示したように、同様に、処理の必要性が更に増加すれば、メディア処理ブロック８１０及びパケット化ブロック８２０は、別々のＤＳＰ８６０、８６５に実装でき、データバス８７０を介して互いに、及び別のホストプロセッサ８３５上に動作するマネジメントブロック８３０と通信することができる。各ブロックには、モジュールが、高いシステム拡張性を実現するために、異なるプロセッサへ物理的に分離されることができる。
【００６３】
好ましい実施の形態において、４つのＯＣ−３タイルは、各ＯＣ−３タイルがメディア処理とパケット化タスクを行うように構成されたシングル集積回路（ＩＣ）カードへ結合されている。ＩＣカードは、データバスと通信している４つのＯＣ−３タイルを備えている。前に説明したように、ＯＣ−３タイルそれぞれは、インターチップ通信バスを介して、パケットエンジンプロセッサと通信している３つのメディアエンジンタイプＩＩプロセッサを有する。パケットエンジンプロセッサは、ＯＣ−３タイルへの外部通信用のＭＡＣ及びＰＨＹインターフェースを備えている。第１ＯＣ−３タイルのＰＨＹインターフェースは、第２ＯＣ−３タイルのＭＡＣインターフェースと通信している。
【００６４】
同様に、第２ＯＣ−３タイルのＰＨＹインターフェースは、第３ＯＣ−３タイルのＭＡＣインターフェースと通信し、第３ＯＣ−３タイルのＰＨＹインターフェースは、第４ＯＣ−３タイルのＭＡＣインターフェースと通信している。第１ＯＣ−３タイルのＭＡＣインターフェースは、ホストプロセッサのＰＨＹインターフェースと通信している。動作的に、各メディアエンジンＩＩプロセッサは、図５に参照番号５０５で示したように、本発明のメディア処理サブシステムを実装している。各パケットエンジンプロセッサは、図５に参照番号５４０で示したように、本発明のパケット化サブシステムを実装している。ホストプロセッサは、図５に参照番号５７０で示したように、マネジメントサブシステムを実装している。
【００６５】
メディアエンジンタイプＩ、メディアエンジンタイプＩＩ、及びパケットエンジンを含むトップレベル・ハードウェアシステム・アーキテクチャのプライマリコンポネントは、ここで詳細に説明する。更に、ソフトウェアアーキテクチャは、具体的な特徴とともに、詳細に説明される。
【００６６】
メディアエンジン
メディアエンジンＩとメディアエンジンＩＩの両方は、ＤＰＬＰ型のもので、従って、各レイヤがNチャネルまでの音声、ファックス、モデム、又はレイヤの構成に依存する他のデータをエンコードとデコードするレイヤアーキテクチャから構成される。各レイヤは、特定のメディア処理機能を行うために、実質的に最適ハードウェアとソフトウェアパーティションを介して、特別に設計されたパイプライン処理ユニットのセットを実装している。この処理ユニットは、特定信号処理機能又は機能クラスを行うためにそれぞれ最適化された特定目的のディジタル信号プロセッサである。エコキャンセル又はコーデック実装等の、機能の明確なクラスの実行、かつ、それらをパイプラインアーキテクチャで入力できる処理ユニットを製作することで、本発明は、従来のアプローチより実施的に優れたパフォーマンスを有するメディア処理システム及び方法を提供する。
【００６７】
図９に示すように、メディアエンジンＩ９００のダイアグラムを図示されている。メディアエンジンＩ９００は、それぞれ中央ダイレクトメモリアクセス（ＤＭＡ）コントローラ９１０と、通信データバス９２０を介して、通信している複数のメディアレイヤ９０５からなっている。ＤＭＡアプローチを利用して、これ自身とシステムメモリの間にデータの直接伝送をハンドルするために、システム処理ユニットのバイパスを可能にする。各メディアレイヤ９０５は、更に、通信データバス９２０で相互接続されたＤＭＡへのインターフェース９２５から構成される。交代で、ＤＭＡインターフェース９２５は、通信データバス９２０を介して複数のパイプライン処理ユニット（ＰＵ）９３０のそれぞれと、ＤＭＡインターフェース９２５と各ＰＵ９３０の間に位置する通信データバス９２０を介して複数のプログラムとデータメモリ９４０と通信している。
【００６８】
プログラムとデータメモリ９４０は、データバス９２０を介して各ＰＵ９３０と通信している。各ＰＵ９３０は、少なくとも１つのプログラムメモリと少なくともデータメモリユニット９４０にアクセスできることが好ましい。更に、スケジュールされたタスクを受信し、ＰＵ９３０による動作用にそれらをキューするために、少なくとも１つの先入れ先出し（ＦＩＦＯ）タスクキュー（図示せず。）を備えていることが好ましい。
【００６９】
本発明のレイヤアーキテクチャは、メディアレイヤの特定の数を制限しないとき、特定の実務制限は、シングルメディアエンジンＩへスタックできるメディアレイヤの数を限定することが可能である。メディアレイヤの数が増大すると、メモリとデバイス入出力バンド幅が、メモリ要求、ピンカウント、密度、及びパワー消費に悪影響するほどまでに、広がることが可能であり、応用又は経済的要求に両立しなくなる。しかし、それらの実務制限は、本発明の範囲と実態を制約しない。
【００７０】
メディアレイヤ９０５は、通信バス９２０を介して、中央処理ユニットへのインターフェース（ＣＰＵ  ＩＦ）９５０と通信している。外部スケジューラ９５５、ＤＭＡコントローラ９１０、ＰＣＩインターフェース（ＰＣＩ ＩＦ）９６０、ＳＲＡＭインターフェース（ＳＲＡＭ  ＩＦ）９７５、及びＳＤＲＡＭインターフェース（ＳＤＲＡＭ  ＩＦ）９７０等の外部メモリへのインターフェース等からの制御信号と、データを、通信バス９２０を通して、ＣＰＵ  ＩＦ９５０が送信と受信する。ＰＣＩ  ＩＦ９６０は、制御信号に利用されることが好ましい。ＳＤＲＡＭ  ＩＦ９７０は、同期型ダイナミック・ランダム・アクセス・メモリ・モジュールへ接続され、ランダムアクセスメモリ（ＲＡＭ）とＣＰＵとの間のメモリフェッチングに関して、メモリアクセスサイクルは、待機時間を無くすために、ＣＰＵクロックに同期している。
【００７１】
好ましい実施の形態において、ＳＤＲＡＭ  ＩＦ９７０は、１３３ＭＨｚ同期型ＤＲＡＭと非同期メモリをサポートするＳＤＲＡＭを備えたプロセッサに接続される。ＳＤＲＡＭ（６４ Ｍｂｉｔ/２５６ Ｍｂｉｔから最大２５６ ＭＢ）の一つのバンクと、４つの非同期デバイス（８/１６/３２ビット）をサポートする。この非同期デバイスは、３２ビットのデータパスと、未定義長と同様に固定長のブロック転送を備えている。Back-to-back転送に適応する。９つのトランザクションは、動作のためキューされることが可能である。ＳＤＲＡＭ（図示せず。）は、ＰＵ９３０のステータスを含む。他の外部メモリの構成と種類は、ＳＤＲＡＭの代わりに選択されることができることと、従って、他の種類のメモリインターフェースがＳＤＲＡＭ  ＩＦ１７０の代わりに利用できることは好ましくないことは当業者に明らかである。
【００７２】
ＳＤＲＡＭ  ＩＦ９７０は、更に、ＰＣＩ ＩＦ９６０、ＤＭＡコントローラ９１０、及びＣＰＵ  ＩＦ９５０、好ましくは通信バス９２０を通してＳＲＡＭインターフェース（ＳＲＡＭ  ＩＦ）９７５と通信している。このＳＲＡＭ（図示せず。）は、スタティックランダムアクセスメモリで、比較的に高速なメモリアクセスに推奨されるもので、常時リフレッシュしないでデータを保持するランダムアクセスメモリの一種である。ＳＲＡＭ  ＩＦ９７５も、データバス９２０を介して、ＴＤＭインターフェース（ＴＤＭ  ＩＦ）９８０、ＣＰＵ  ＩＦ９５０、ＤＭＡコントローラ９１０、及びＰＣＩ  ＩＦ９６０と通信している。
【００７３】
好ましい実施の形態において、トランクサイド用のＴＤＭ  ＩＦ９８０は、好ましくはＨ.１００／Ｈ.１１０に準拠し、ＴＤＭバス９８１は８．１９２ＭＨｚで動作する。メディアエンジンＩ９００が８データ信号を提供することを可能にすることで、従って、５１２フル２重チャネルまでの容量を供給し、ＴＤＭ  ＩＦ９８０は次の好ましい特徴を有する。その特徴は、Ｈ.１００／Ｈ.１１０準拠のスレーブ、フレームサイズは１６又は２０サンプルをセットでき、スケジューラは、特定バッファ又はフレームサイズ、最大チャネル数用のプログラマブルスタッガーポイントを格納するためにＴＤＭ ＩＦ９８０をプログラムできる。
【００７４】
好ましくは、ＴＤＭ  ＩＦは、８０００ＨｚクロックのＮサンプル毎の後に、スケジューラを中断させる。Nは、２，４，６，及び８の値でプログラム可能な値である。音声のアプリケーションでは、ＴＤＭ  ＩＦ９８０は、パルスコード変調（ＰＣＭ）データをサンプル・バイ・サンプルに基づいてメモリへ伝送しないことが好ましいが、エンコーダ及びデコーダが利用しているフレームサイズに依存して、チャネルの１６又は２０サンプルをバッファし、そして、そのチャネル用の音声データをメモリへ伝送することが好ましい。
【００７５】
ＰＣＩ  ＩＦ９６０は、通信バス９２０を介してＤＭＡコントローラ９１０とも通信している。外部接続は、ＴＤＭ  ＩＦ９８０とＴＤＭバス９８１の間の接続と、ＳＲＡＭ  ＩＦ９７５とＳＲＡＭバス９７６との間の接続、好ましくは３２ビット１３３ＭＨｚで動作するＳＤＲＡＭ  ＩＦ９７０とＳＤＲＡＭバス９７１の間の接続、及び好ましくは３２ビット１３３MHzで動作するＰＣＩ  ＩＦ９６０とＰＣＩ２．１バス９６１の間の接続からなる。
【００７６】
外部エンジンＩの外部において、スケジューラ９５５は、処理用にメディアレイヤ９０５へのチャネルをマップする。スケジューラ９５５が新しいチャネルを処理しているとき、レイヤ９０５毎の可能な処理リソースによるが、レイヤの一つへのチャネルを割り当てる。処理が並列に行われ、かつ、処理が固定フレーム又はデータの部分に分割されるように、各レイヤ９０５は、複数のチャネルの処理をハンドルする。スケジューラ９５５は、ＦＩＦＯタスクキューへのデータ伝送を通じて、各メディアレイヤ９０５と通信している。
【００７７】
ＦＩＦＯタスクキューの各タスクは、特別チャネル用に複数のデータ部分を処理するための要求で、メディアレイヤ９０５への要求である。よって、各ＰＵ９３０を個別にプログラムするより、タスクをタスクキューに入れることによって、チャネルからのデータの処理を開始することがスケジューラ９５５にとって好ましい。もっと詳しくは、特別ＰＵ９３０のタスクキューにタスクを入れ、かつ、データフローを次のＰＵ９３０にマネージするメディアレイヤ９０５のパイプラインアーキテクチャを有することによって、チャネルからのデータの処理を開始するスケジューラ９５５を備えることが好ましい。
【００７８】
スケジューラ９５５は、各チャネルが処理されることで、レートをマネージしなかれければならない。実施の形態において、各チャネルはＴｍｓｅｃのフレームサイズを用いており、Ｍチャネルからのデータの処理を受諾するように、メディアレイヤ９０５が要求され、そして、スケジューラ９５５は、Ｍチャネルの各チャネルの１つのフレームを各Ｔｍｓｅｃ間隔で処理することが好ましい。更に、好ましい実施の形態において、スケジューリングは、ＴＤＭ  ＩＦ９８０からサンプルのユニットの形式で、周期的な中断に基づく。
【００７９】
例として、中断周期が２サンプルの場合は、ＴＤＭ  ＩＦ９８０は、全てのチャネルから２つの新サンプルを集める度に、スケジューラを中断する。中断ごとにインクリメントしていたものが、通過したフレームサイズの同等の値になったとき、０にリセットされる「ティックカウント」をスケジューラが持つことが好ましい。時間スロットへのチャネルのマッピングは固定されないことが好ましい。
【００８０】
例えば、音声アプリケーションでは、チャネル上にコールがスタートするときいつも、スケジューラは、用意されたタイムスロットチャネルにレイヤを動的に割り当てる。ＴＤＭバッファからメモリへのデータ転送が処理データが入っているタイムスロットと調整されることが好ましく、従って、ＴＤＭからメモリへ異なるチャネル用のデータ伝送をスタッゲリングし、異なるチャネルの処理のスタッゲリングと等しくなるようにその逆にスタッゲリングする。その結果、ＴＤＭのティックカウントと、スケジューラ９５５の間に多少の同期を取るように、ＴＤＭ  ＩＦ９８０はティックカウント変数を維持することが更に望ましい。上述した例示の実施の形態においては、ティックカウント変数は、バッファサイズによって２ミリ秒ごと又は２．５ミリ秒ごとに０に設定される。
【００８１】
図１０に示すように、メディアエンジンＩＩ１０００のブロックダイアグラムを図示している。メディアエンジンＩＩ１０００は、ここでメディアレイヤコントローラ１００７と参照している処理レイヤコントローラ１００７と、中央ダイレクトメモリアクセス（ＤＭＡ）コントローラ１０１０それぞれと、通信データバスとインターフェース１０１５を介して、通信している複数のメディアレイヤ１００５からなる。各メディアレイヤ１００５は、ＣＰＵ１００４と通信しているＣＰＵインターフェース１００６と交代で通信している。各メディアレイヤ１００５内は、複数のパイプライン処理ユニット（ＰＵ）１０３０は、複数のプログラムメモリ１０３５とデータメモリ１０４０と、通信データバスを介して、通信している。
【００８２】
各ＰＵ１０３０は、少なくとも１つのプログラムメモリ１０３５と１つのデータメモリ１０４０にアクセスできる。各ＰＵ１０３０、プログラムメモリ１０３５、及びデータメモリ１０４０は、外部メモリ１０４７と、メディアレイヤコントローラ１００７とＤＭＡコントローラ１０１０を介して、通信している。好ましい実施の形態において、各メディアレイヤ１００５は、シングルプログラムメモリ１０３５とデータメモリ１０４０と通信している４つのＰＵ１０３０から構成され、各ＰＵ１０３１、１０３２、１０３３、１０３４は、メディアレイヤ１００５内のそれぞれ他のＰＵ１０３１、１０３２、１０３３，１０３４と通信している。
【００８３】
図１０ａに示すように、メディアレイヤコントローラ、又はＭＬＣのアーキテクチャの好ましい実施の形態が提供される。好ましくは５１２×６４サイズのプログラムメモリ１００５ａは、データと命令を、好ましくは１６×３２サイズのデータレジスタファイル１０１７ａ、及び好ましくは４×１２サイズのアドレスレジスタファイル１０２０ａに配送するために、コントローラ１０１０ａとデータメモリ１０１５ａと連結して動作する。データレジスタファイル１０１７ａとアドレスレジスタファイル１０２０ａは、アッダ/MAC １０２５ａ、ロジカルユニット１０２７ａ、及びバレル・シフタ１０３０ａ等の機能ユニット、及び要求アービトレーション・ロジックユニット１０３３ａ及びＤＭＡチャネルバンク１０３５ａ等のユニットと通信している。
【００８４】
図１０に示すように、ＭＬＣ１００７は、プログラムメモリ１０３５及びデータメモリ１０４０へ及びからデータとプログラムコードの転送要求をラウンドロビン式で解決する。この解決に基づいて、ＭＬＣ１００７は、ユニットがメモリにどのように直接アクセスするかを定義したパスウェイ、すなわち ＤＭＡチャネル（図示せず。）、を充填する。命令のデータフローに従って命令をルーチングするため、及びリードイン要求、ライトバック要求、及び転送指示のステート等の全てのＰＵ１０３０用の要求ステートのトラックをキープするために、ＭＬＣ １００７は、命令デコードを行うこうとができる。
【００８５】
ＭＬＣ１００７は、更に、ＤＭＡチャネルのプログラミング、開始信号生成、各メディアレイヤ１００５内のＰＵ１０３０用のページステートのメインテナンス、スケジューラ命令のデコード、及び、各ＰＵ１０３０のタスクキューからの、及び、各ＰＵ１０３０のタスクキューへのデータの移動のマネジメント等のインターフェース関連機能を処理することができる。上述の機能を行うことにより、メディアレイヤコントローラ１００７は、実質的に、複雑ステートマシンが各メディアレイヤ１００５内に存在するＰＵ１０３０と連携するする必要性を無くす。
【００８６】
ＤＭＡコントローラ１０１０は、ローカルメモリバッファＰＵと、ＳＤＲＡＭ等の外部メモリとの間のデータ転送をハンドルするためのマルチチャネルＤＭＡユニットである。ＤＭＡチャネルは、動的にプログラムされていることが好ましい。もっと詳しくは、ＰＵ１０３０は、それぞれが優先レベルと結びついた独立要求を生成し、読み出しと書き込みするためにそれらをＭＬＣ１００７に送信する。特定のＰＵ１０３０によって配達された優先要求に基づいて、ＭＬＣ１００７は、ＤＭＡチャネルをそれに応じてプログラムする。外部メモリにアクセスするためにＤＭＡ内のチャネル間、ラウンドロビン解決のシングルレベル等の解決処理があることが好ましい。ＤＭＡコントローラ１０１０は、ＰＵ１０３０及びメディアレイヤ１００５をわたって、ラウンドロビン要求解決のためのハードウェアサポートを提供する。
【００８７】
例示動作において、ローカルメモリのアドレス、外部メモリのアドレス、転送のサイズ、転送の方向を利用することで、すなわち、ＤＭＡチャネルが、データを外部メモリからローカルメモリへ、又は逆に、転送したか、及び、各ＰＵ用にどのぐらいの転送が要求されたかを利用して、ローカルＰＵメモリと外部メモリの間に転送を処理することが好ましい。この好ましい実施の形態において、ＤＭＡチャネルは生成され、この情報を、ＤＭＡ内に存在する３２ビットの２つのレジスタから受信する。３番目のレジスタは、ＤＭＡと各ＰＵの間に、ＤＭＡ転送の現在ステータスを含む制御情報を交換する。
【００８８】
好ましい実施の形態において、アービトレーションは特に次の要求を行う。この要求は、各メディアレイヤから１つのストラクチャー読み込み、４つのデータ読み込み、及び４データ書き込みの要求、合計で約９０のデータ要求、及び各メディアレイヤから４つのプログラムコードフェッチ要求、合計で約４０のプログラムコードフェッチ要求である。ＤＭＡコントローラ１０１０は、更に、プログラムコードフェッチ要求のための優先度を解決できること、リンクリスト巡回とＤＭＡチャネル情報生成を処理すること、及びＤＭＡチャネルプレフェッチと完了信号生成を行うことが好ましい。
【００８９】
ＭＬＣ１００７とＤＭＡコントローラ１０１０は、通信バスを通してＣＰＵ  ＩＦ１００６と通信している。ＰＣＩ  ＩＦ１０６０は、通信バスを介して、外部メモリインターフェース（ＳＤＲＡＭ  ＩＦ等）とＣＰＵ  ＩＦ１００６と通信している。外部メモリインターフェース１０７０は、更に、通信バスを通して、ＭＬＣ１００７とＤＭＡコントローラ１０１０とＴＤＭ  ＩＦ１０８０と通信している。ＳＤＲＡＭ  ｉｆ（１０７０）は、UTOPIA  ＩＩ／ＰＯＳ  互換性インターフェース（Ｕ２／ＰＯＳ  ＩＦ）等のパケットプロセッサインターフェース１０９０と、通信データバスを介して通信している。Ｕ２／ＰＯＳ  ＩＦ  １０９０は、ＣＰＵ  ＩＦ１００６と通信していることが好ましい。
【００９０】
しかし、ＰＣＩ  ＩＦとＳＤＲＡＭ  ＩＦの好ましい実施の形態は、メディアエンジンＩと似ており、ＴＤＭ  ＩＦ１０８０は、実行される計３２シリアルデータ信号を有し、よって、少なくとも２０４８フル２重チャネルをサポートすることが好ましい。外部接続は、ＴＤＭ  ＩＦ１０８０とＴＤＭ  バス１０８１の間の接続、外部メモリ１０７０とメモリバス１０７１の間の、好ましく６４ビット＠１３３ＭＨｚの、接続、ＰＣＩ  ＩＦ  １０６０とＰＣＩ  ２．１バス１０６１の間の、また好ましくは３２  ｂｉｔ  ＠  １３３  ＭＨｚで動作する、の間の接続、及びＵ２／ＰＯＳ  ＩＦ  １０９０とUTOPIA  ＩＩ／ＰＯＳ接続１０９１の間の、好ましくは、毎秒６２２メガビットで動作可能な、接続からなる。好ましい実施の形態において、メディアエンジンＩとの関係に前に議論したように、トランクサイドのためのＴＤＭ  ＩＦ１０８０は、好ましくは、Ｈ．１００／Ｈ．１１０互換性で、ＴＤＭバス１０８１は８．１９２ＭＨｚで動作する。
【００９１】
各メディアレイヤ内のメディアエンジンＩとメディアエンジンＩＩの両方のための、本発明は、特に、処理タスクの定義済みセットを処理するように設計された、パイプラインされた複数のＰＵを利用する。その点で、ＰＵは、一般目的プロセッサではなく、任意の処理タスクを処理するように利用されない。特定機能ユニットの共通性で生じる特定処理タスクの調査と分析は、結合されたとき、それらの特殊処理タスクの存在を最適処理することができる特殊ＰＵを生じる。各ＰＵの命令セットアーキテクチャは、コンパクトコードをもたらす。コード密度の増加は、要求メモリの減少と、従って、要求エリア、パワー、及びメモリトラフィックの減少をもたらす。
【００９２】
パイプラインアーキテクチャは、また、パフォーマンスを向上させる。パイプラインは、マルチプル命令が実行時オーバーラップされる実行テクニックである。コンピュータパイプラインに、パイプラインの各ステップは、命令の一部を実行する。アセンブリラインのように、異なるステップは、異なる命令の異なるパートを並列に実行する。これらのステップの各ステップは、パイプステージ又はデータセグメントと呼ばれる。ステージは、パイプを形成するために次のステージに接続される。プロセッサ内に、命令は、パイプの一端から入り、ステージを通って処理され、他端から出る。命令パイプラインのスループットは、命令がパイプラインからどの程度出ているかで定義される。
【００９３】
もっと詳しくは、１つのタイプのＰＵ（以下、ＥＣ  ＰＵという。）は、エコキャンセル（ＥＣ）、音声アクティビティ検出（ＶＡＤ）、及びトーン信号機能（ＴＳ）等の複数のメディア処理機能を行うように、パイプラインアーキテクチャに特別に設計されたものである。エコキャンセルは、入力信号の発信元への変調入力信号の反射及び／又は再伝送の結果として起こり得るエコを、信号から、除去する。一般に、スピーカから発振し、受信されてマイクロフォンを通して再伝送された（音声エコ）とき、又は、ハイブリッド線によって伝送される過程で発生した遠端信号の反射（電線エコ）のときに、エコが起きる。
【００９４】
好ましくないが、エコパスの時間遅延は相対的に短いように提供されたとき、エコは、電話システムにおいて許容される。しかし、長いエコ遅延は、遠端スピーカの注意をそらし、又は混乱させることができる。音声アクティビティ検出は、入力の信号は、意味のある信号か雑音か判定する。トーン信号は、トーン形式の、回路又はネットワーク上の監督、アドレス、及び警報の信号の処理からなる。回線が使用中、アイドル、又はサービス要求しているかを判定するために、監督信号は、回線又は回路のステータスを監視する。警報信号は、着信コールの着信を表す。アドレス化の信号は、ルーチングとあて先の情報から構成される。
【００９５】
ＬＥＣ、ＶＡＤ、及びＴＳの機能は、アドレス生成ユニットと命令デコーダと一緒に動作する、複数のシングルサイクル積和演算（ＭＡＣ）ユニットを有するＰＵを利用して、効率的に実行されることができる。各ＭＡＣユニットは、圧縮器、サム・アンド・キャリー・レジスタ、アッダ、及びサチュレイション・アンド・ラウンディング・ロジックユニットを含む。好ましい実施の形態において、図１１に図示するように、このＰＵ１１００は、シングルアドレス生成ユニット（ＡＧＵ）１１０５及び命令デコーダ１１０６を持つロード・ストア・アーキテクチャから構成される。ＡＧＵ１１０５は、ゼロ・オーバー・ヘッド・ルーピング、及び遅延スロットの分散をサポートする。複数のＭＡＣユニット１１１０は、２つの１６ビットオペランド上に並列に動作し、次の機能を行う。
【００９６】
Acc += a*b
繰り返しＭＡＣ動作を促進するために、ガードビットは、サム・アンド・キャリー・レジスタに加えられる。スケールユニットは、アキュムレータ・オーバーフローから防止する。各ＭＡＣユニット１１１０は、ラウンド動作を自動的に行うようにプログラムされることが可能である。加えて、２０ビット値の入力オペランドと、１６ビット値の出力オペランドの両方を有する条件付きサム・アッダーとして加減算ユニット（図示せず。）を有することが好ましい。
【００９７】
動作的に、ＥＣ  ＰＵは、パイプライン式でタスクを行う。第１パイプラインステージは、命令がプログラムメモリから命令レジスタへフェッチされる、フェッチ命令から構成される。第２パイプラインステージは、命令がデコードレジスタにデコードされ、格納される、命令デコードとオペランドフェッチから構成される。ハードウェアループマシンは、このサイクルで初期化される。データレジスタファイルからのオペランドは、オペランドレジスタに格納される。ＡＧＵは、このサイクルの間に動作する。このアドレスは、データメモリアドレスバスに位置する。ストア動作の場合は、データは、また、データメモリデータバスに位置する。ポストインクリメントとデクリメント命令のために、アドレスは、アドレスバス上に位置されてからインクリメント又はデクリメントされる。
【００９８】
結果は、アドレスレジスタファイルへ書き込みされる。第３パイプラインステージは、実行ステージであり、加減算ユニットとＭＡＣユニットによってフェッチされたオペランド上のオペレーションから構成される。ステータスレジスタは、アップデータされ、及び、計算結果、又はメモリからロードされたデータは、データ／アドレスレジスタファイルに格納される。各メディアレイヤ内に前に示したように、ＥＣ  ＰＵオペレーションのために要求されたステータスと履歴情報は、マルチチャネルＤＭＡインターフェースを通してフェッチされる。ＥＣ  ＰＵは、ＤＭＡコントローラレジスタを直接構成する。ＥＣ  ＰＵは、ＤＭＡチェーンポインタを、チェーンリンクのヘッドのメモリロケーションと一緒にロードする。
【００９９】
パイプラインステージを通して同時に異なるデータストリームを移動させることを可能にすることによって、ＥＣ  ＰＵは、音声等の着信媒体の処理のための待ち時間を減少させる。図１２に示すように、タイムスロット１  １２０５に、チャネル１  １２５０からのデータの処理用に、命令フェッチタスク（ＩＦ）が行なわれる。タイムスロット２  １２０６において、命令デコード及びオペランドフェッチ（ＩＤＯＦ）は、チャネル１  １２５０からのデータの処理用に同時に行なわれる間に、チャネル２  １２５５からのデータの処理用に、ＩＦタスクが行なわれる。
【０１００】
チャネル２  １２５５からのデータの処理用に、命令デコード及びオペランドフェッチ（ＩＤＯＦ）が行なわれ、及び、チャネル１  １２５０からデータの処理用に、実行（ＥＸ）タスクが同時に行なわれる間に、タイムスロット３  １２０７において、ＩＦタスクがチャネル３  １２６０からのデータの処理用に行なわれる。チャネルは動的に生成されるので、チャネルの番号付けは、実際のロケーションとタスクの割り当てを反映しないことが当該者には明らかである。チャネルの番号付けは、マルチチャネルを横断するパイプラインの概念をただ表すように使われ、実際のタスクロケーションを表さない。
【０１０１】
第２タイプのＰＵ（以下、ＣＯＤＥＣ  ＰＵという。）は、特定の標準とプロトコルに従って信号をエンコーディング及びデコーディングする複数のメディア処理機能を行うように、また、コンフォート雑音生成（ＣＮＧ）と不連続伝送（ＤＴＸ）機能を行うように特別にパイプラインアーキテクチャに設計されている。特定の標準とプロトコルは、特に、G.711, G.723.1, G.726, G.728, G.729A/B/Eを含む音声標準、及びV.17, V.34,V.90を含むデータモデム標準等の国際電気通信連合（ＩＴＵ）が推進する標準（以下、コーデックという。）である。これらの様々コーデックは、異なる複雑さと結果品質の音声信号をエンコードとデコードするのに利用される。ＣＮＧは、接続が生きていて、切断されていないことをユーザに知らせるためのバックグラウンド雑音の生成である。ＤＴＸ機能は、受信されたフレームは、音声伝送にかえてサイレンスから構成されるように実施されるものである。
【０１０２】
コーデック、ＣＮＧ、及びＤＴＸ機能は、算術演算論理ユニット（ＡＬＵ）、ＭＡＣユニット、バレル・シフタ、及び規格化ユニットを有するＰＵを利用して効率的に実行されることができる。好ましい実施の形態置いては、図１３に示すように、ＣＯＤＥＣ  ＰＵ１３００は、シングルアドレス生成ユニット（ＡＧＵ）１３０５及び命令デコーダ１３０６を持つロード・ストア・アーキテクチャから構成される。ＡＧＵ１３０５は、ゼロ・オーバー・ヘッド・ルーピング、及び遅延スロットの分散をサポートする。
【０１０３】
好ましい実施の形態において、各ＭＡＣユニット１３１０は、圧縮器、サム・アンド・キャリーレジスタ、アッダ、及びサチュレイション・アンド・ラウンディング・ロジックユニットを含む。ＭＡＣユニット１３１０は、蓄積用の圧縮ツリーへのフィードバックを有する圧縮器として実施される。ＭＡＣ１３１０の一つの好ましい実施の形態は、１サイクルのスループットに、約２サイクルの待ち時間を有する。ＭＡＣ１３１０は、符号付又は符号無しの２つの１７ビットオペランド上に動作する。中間結果は、サム・アンド・キャリーレジスタにキープされる。繰り返しＭＡＣ動作用に、ガードビットは、サム・アンド・キャリー・レジスタに加えられる。サチュレイション・ロジックは、サム・アンド・キャリーの結果を３２ビット値に変換する。ラウンディング・ロジックは、３２ビットを１６ビット番号にラウンドする。分割ロジックは、ＭＡＣユニット１３１０にまた実装される。
【０１０４】
例示の実施の形態において、ＡＬＵ１３２０は、加算、アッド・ウィズ・キャリー、減算、サブトラクト・ウィズ・ボロー、否定、ＡＮＤ、ＯＲ、ＸＯＲ及びＮＯＴを含む複数のオペレーションを行うことができる３２ビットアッダーと３２ビットロジック回路を含む。ＡＬＵ３２０への入力の１つは、３２ビットオペランド上に動作するＸＯＲアレーを有する。絶対ユニット、ロジックユニット、及び加減算ユニットからなり、ＡＬＵ３２０の絶対ユニットはこのアレーを駆動する。絶対ユニットの出力により、入力オペランド上に否定を行うために、入力オペランドは１又は０でＸＯＲされる。
【０１０５】
例示の実施の形態において、バレル・シフタ１３３０は、ＡＬＵ１３２０の列に位置し、シフトオペレーションを要求し、任意のＡＬＵオペレーションに続くオペランドへのプレシフタとして動作する。好ましいバレル・シフタの１つのタイプは、１６ビット又は３２ビットオペランド上に、左へ最大９ビット、又は右へ２６ビットの算術シフトを行うことができる。このバレル・シフタの出力は、ＡＬＵ１３２０の両方の入力にアクセス可能な３２ビット値ある。
【０１０６】
例示の実施の形態において、規格化ユニット１３４０は、番号の重複符号ビットをカウントする。これは、２の補数の１６ビット番号で動作する。重複符号ビットを計算するために、負の番号が反転される。規格化される番号は、ＸＯＲアレーへ送り込まれる。番号の符号ビットから他の入力が来る。処理されているメディアが音声のとき、ＥＣ  ＰＵへのインターフェースを有することが好ましい。受信したフレームがサイレンス又はスピーチから構成されているかを判定するために、ＥＣ  ＰＵは、ＶＡＤを利用する。コーデック又はＤＴＸ機能が実装されているか否かを判定することができるように、ＶＡＤ判定は、ＣＯＤＥＣ  ＰＵと通信していることが好ましい。
【０１０７】
動作的に、ＣＯＤＥＣ ＰＵは、パイプライン式でタスクを行う。第１パイプラインステージは、命令がプログラムメモリから命令レジスタへフェッチされる命令フェッチから構成される。同時に、次のプログラムカウンタ値は、計算され、プログラムカウンタに格納される。加えて、ループと分散決断は、同じサイクルで行なわれる。第２パイプラインステージは、命令がデコードされ、デコードレジスタに格納される、命令デコードとオペランドフェッチから構成される。命令デコード、レジスタ読み込み、分散決断は、命令デコードステージに起こる。
【０１０８】
第３パイプラインステージにおいては、Execute 1ステージ、バレル・シフタ及びＭＡＣ圧縮器ツリーは、それらの計算を完成する。データメモリへのアドレスは、このステージにある。第４パイプラインステージにおいては、Execute 2 ステージ、ＡＬＵ、規格化ユニット、及びＭＡＣアッダは、それらの計算を完成する。レジスタ・ライトバック及びアドレスレジスタは、Execute-2ステージの最後にアップデータされる。ＣＯＤＥＣ  ＰＵオペレーション用に要求されたステータスと履歴情報は、前に各メディアレイヤに示したように、マルチチャネルＤＭＡインターフェースを通ってフェッチされる。
【０１０９】
異なるデータストリームをパイプラインされたステージを通って同時に移動させることを可能にすることで、ＣＯＤＥＣ  ＰＵは、音声等の到着メディア処理のための待ち時間を減少させる。 図１３ａに示すように、タイムスロット１  １３０５ａ内、チャネル１  １３５０ａからのデータを処理するために、命令フェッチタスク（ＩＦ）が行なわれる。命令デコードとオペランドフェッチ（ＩＤＯＦ）が、チャネル１  １３５０ａからのデータを処理するために行われている間に、タイムスロット２  １３０６ａ内、ＩＦタスクが、チャネル２  １３５５ａからのデータを処理するために、同時に行なわれる。
【０１１０】
命令デコードとオペランドフェッチ（ＩＤＯＦ）が、チャネル２  １３５５ａからのデータを処理するために行われ、及び、Ｅｘｅｃｕｔｅ１（ＥＸ１）タスクが、チャネル１  １３５０ａからのデータ処理のために行われている間に、タイムスロット３  １３０７ａ内、ＩＦタスクが、チャネル３  １３６０ａからのデータを処理するために、同時に行なわれる。命令デコードとオペランドフェッチ（ＩＤＯＦ）が、チャネル３  １３６０ａからのデータを処理するために、行なわれ、Execute1（ＥＸ１）タスクが、チャネル２  １３５５ａからのデータを処理するために、行なわれ、及び、Execute2（ＥＸ２）タスクが、チャネル１  １３５０ａからのデータを処理するために、行なわれている間に、タイムスロット４  １３０８ａ内、ＩＦタスクが、チャネル４  １３７０ａからのデータを処理するために、同時に行なわれる。チャネルは動的に生成されるため、チャネル番号付けは、実際のロケーションとタスクの割り当てを反映しないことは、当該者にとって明らかである。チャネル番号付けは、ここで、複数のチャネルを横断してパイプライン化する概念を単に表示するために利用され、実施のタスクロケーションを表さない。
【０１１１】
本発明のパイプラインアーキテクチャ  は、ＰＵ内の命令処理に限定されないが、ＰＵからＰＵへのアーキテクチャレベルにも存在する。図１３ｂに図示したように、各タスクが複数のステップから構成される複数のタスクの処理を完成させるために複数のＰＵは、データセットＮ上にパイプライン式で動作することが可能である。第１ＰＵ１３０５ｂは、タスクＡとラベルされたエコキャンセル機能を行うことが可能である。第２ＰＵ１３１０ｂは、タスクＢとラベルされたトーン信号機能を行うことが可能である。第３ＰＵ１３１５ｂは、タスクＣとラベルされたエンコード機能の第１セットを行うことが可能である。第４ＰＵ１３２０ｂは、タスクＤとラベルされたエンコード機能の第２セットを行うことが可能である。
【０１１２】
タイムスロット１３５０ｂにおいて、第１ＰＵ１３０５ｂは、データセットＮ上にタスクＡ１  １３８０ｂを行う。タイムスロット２  １３５５ｂにおいて、第１ＰＵ１３０５ｂは、データセットＮ上にタスクＡ２  １３８１ｂを行い、及び、第２ＰＵ１３１０ｂは、データセットＮ上にタスクＢ１  １３８７ｂを行う。タイムスロット３  １３６０ｂにおいて、第１ＰＵ１３０５ｂは、データセットＮ上にタスクＡ３  １３８２ｂを行い、第２ＰＵ１３１０ｂは、データセットＮ上にタスクＢ２  １３８８ｂを行い、及び、第３ＰＵ１３１５ｂは、データセットＮ上にタスクＣ１  １３９４ｂを行う。タイムスロット４  １３６５ｂにおいて、第１ＰＵ１３０５ｂは、データセットＮ上にタスクＡ４  １３８３ｂを行い、第２ＰＵ１３１０ｂは、データセットＮ上にタスクＢ３  １３８９ｂを行い、第３ＰＵ１３１５ｂは、データセットＮ上にタスクＣ２  １３９５ｂを行い、及び、第４ＰＵ１３２０ｂは、データセットＮ上にタスクＤ１  １３３０を行う。
【０１１３】
タイムスロット５  １３７０ｂにおいて、第１ＰＵ１３０５ｂは、データセットＮ上にタスクＡ５  １３８４ｂを行い、第２ＰＵ１３１０ｂは、データセットＮ上にタスクＢ４  １３９０ｂを行い、第３ＰＵ１３１５ｂは、データセットＮ上にタスクＣ３  １３９６ｂを行い、及び、第４ＰＵ１３２０ｂは、データセットＮ上にタスクＤ２  １３３１を行う。タイムスロット６  １３７５ｂにおいて、第１ＰＵ１３０５ｂは、データセットＮ上にタスクＡ５  １３８５ｂを行い、第２ＰＵ１３１０ｂは、データセットＮ上にタスクＢ４  １３９１ｂを行い、第３ＰＵ１３１５ｂは、データセットＮ上にタスクＣ３  １３９７ｂを行い、及び、第４ＰＵ１３２０ｂは、データセットＮ上にタスクＤ３  １３３２ｂを行う。パイプライン処理は次にどのように行われるかは、当業者にとって明らかである。
【０１１４】
この例示の実施の形態において、パイプラインアーキテクチャを有する特殊化したＰＵの組み合わせは、シングルメディアレイヤ上により多くのチャネルの処理を可能にする。各チャネルはＧ.７１１コーデックと、ＤＴＭＦ検出／生成、音声アクティビティ検出（ＶＡＤ）、コンフォールト雑音生成（ＣＮＧ）、及びコール識別を有するエコテールキャンセルの１２８ｍｓを実装しているとき、メディアエンジンレイヤは、チャネル当たり１．９５ＭＨｚで動作する。結果チャネル電力消費は、０．１３μ標準のセルテクノロジーを利用して、チャネル当たり６ｍＷ、又は約６ｍＷである。
【０１１５】
パケットエンジン
本発明のポケットエンジンは通信プロセッサである。好ましい実施の形態において、通信プロセッサは、回路交換ネットワーク、パケットベースＩＰネットワーク、及びセルベースＡＴＭネットワークの間のメディアゲートウェイ処理システムに利用される、多数のインターフェースとプロトコルをサポートする。限定されないが、セルとパケットのカプセル化、トラヒックマネジメントと、他のサービスとマルチプロトコルラベルスイッチングの配達用のタグ付け用のサービス機能の品質、及びセルとパケットネットワークのブリッジを含むメディア処理を可能にするための複数の機能を提供することができる独特のアーキテクチャからパケットエンジンが構成される。
【０１１６】
図１４に示すように、パケットエンジン１４００の例示のアーキテクチャを提供している。図示されたこの実施の形態では、パケットエンジン１４００は、ＯＣ-１２まで、又は、およそ ＯＣ-１２のデータレートをハンドルするように構成される。データハンドリングのレートをＯＣ−１２を超えて増加させるために、基本アーキテクチャに修正を入れることが当業者にとって明らかである。パケットエンジン１４００は、複数のプロセッサ１４０５、ホストプロセッサ１４３０、ＡＴＭエンジン１４４０、インバウンドＤＭＡチャネル１４５０、アウトバウンドＤＭＡチャネル１４５５、複数のネットワークインターフェース１４６０、複数のレジスタ１４７０、メモリ１４８０、外部メモリインターフェース１４９０、及び制御及び信号情報の受信手段１４９５からなる。
【０１１７】
プロセッサ１４０５は、内部キャッシュ１４０７、中央処置ユニットインターフェース１４０９、及びデータメモリ１４１１からなる。好ましい実施の形態において、プロセッサ１４０５は、１６Ｋｂの命令キャッシュと１２Ｋｂローカルメモリを有する３２ビット縮小命令セットコンピューティング（ＲＩＳＣ）プロセッサからなる。中央処置ユニットインターフェース１４０９は、プロセッサ１４０５が他の内部メモリ、外部メモリ、及びパケットエンジン１４００と通信することを可能にする。プロセッサ１４０５は、インバウンドとアウトバウンド通信トラヒックの両方がハンドルできることが好ましい。
【０１１８】
好ましい実装は、一般的に、プロセッサの半分は、インバウンドトラヒックをハンドルする間、他の半分はアウトバウンドトラヒックをハンドルする。パケットエンジン１４００の特殊要素は、メモリ１４１１に、競合無しで独立にアクセスでき、よって、全体のスループットを増加させるように、プロセッサ１４０５内のメモリ１４１１は、複数のバンクに分割されていることが好ましい。好ましい実施の形態において、アウトバウンドＤＭＡチャネルがメモリバンク３からの処理済みパケットの伝送をしている間と、プロセッサがメモリバンク２からのデータ処理している間に、インバウンドＤＭＡチャネルがメモリバンク１に書き込みできるように、メモリは３つのバンクに分割される。
【０１１９】
ＡＴＭエンジン１４４０は、２つのプライマリサブコンポネントからなり、ここでＡＴＭＲｘエンジンとＡＴＭＭｘエンジンという。ＡＴＭＲｘエンジンは、入ってくるＡＴＭセルヘッダを処理し、内部メモリ内又は、システムへの外部のとき他のセルマネージャ内に処理して、対応するＡＡＬプロトコル、特にＡＡＬ１、ＡＡＬ２、ＡＡＬ５、に従ってセルを転送する。ＡＴＭＴｘエンジンは、出力のＡＴＭセルを処理し、UTOPIAII/POSIIインターフェース等の特定のインターフェースへデータ転送をアウトバウンドＤＭＡチャネルに要求する。データ交換用のローカルメモリの独立ブロックがあることが好ましい。
【０１２０】
ＡＴＭエンジン１４４０は、ＡＡＬチャネル、すなわちＡＡＬ２、を、ＴＤＭバス（パケットエンジン１４００がメディアエンジンの接続されているところ）上の対応チャネルに、又は、ＩＰとＡＴＭシステム間のインターネットワーキングが要求される対応ＩＰチャネル識別器にマップするデータメモリ１４８３の組み合わせで動作する。内部メモリ１４８０は、仮想パス識別器（ＶＰＩ）、仮想チャネル識別器（ＶＣＩ）、及び互換性の識別器（ＣＩＤ）を有するチャネル識別器の比較及び／又は関連用に、複数のテーブルを維持するために、独立ブロックを利用する。
【０１２１】
ＶＰＩは、ルーチングされるセルを示す仮想パスを表す、ＡＴＭセルヘッダ内の８ビットフィールドである。ＶＣＩは、デバイス間のセッションのコース中に、セルのどのストリームがトラベルするか示す仮想チャネルを示し、ＡＴＭセルヘッダ内の１６ビットフィールドで定義された独特の番号タグから構成された仮想チャネルのアドレス又はラベルである。複数のテーブルは、ホストプロセッサ１４３０によってアップデータされ、ＡＴＭＲｘとＡＴＭＴｘエンジンに共有されることが好ましい。
【０１２２】
ホストプロセッサ１４３０は、命令キャッシュ１４３１を有するＲＩＣＳプロセッサであることが好ましい。ホストプロセッサ１４３０は、ＰＣＩバス等のバスをオーバーしてメディアエンジンと、ＰＣＩ−ＰＣＩブリッジを通して信号ホスト等のホストと通信できるＣＰＵインターフェース１４３２を通して他のハードウェアブロックと通信する。
【０１２３】
ホストプロセッサ１４３０は、ＣＰＵインターフェース内の中断ハンドラー１４３３によってハンドルされるそれらの中断伝送を通して、他のプロセッサ１４０５によって中断されることができる。ホストプロセッサ１４３０は、次の機能ができることが更に好ましい。１）フラッシュメモリから外部メモリへコードのロードと実行の開始を含むブートアップ処理、インターフェースと内部レジスタの初期化、ＰＣＩホストとしての振る舞い、及び、それらを適当に構成し、信号ホスト、パケットエンジン自身、及びメディアエンジン間のインタープロセッサ通信のセットアップ。２）ＤＭＡの構成。３）特定ネットワークマネジメント機能。４） 不明アドレス、断片化したパケット、又は、不正ヘッダのパケットの解決等の例外ハンドリング。４）システムシャットダウン時のテーブルの中間格納を提供。５）ＩＰスタックの実装。及び６） 特に、パケットエンジンの外部のユーザ、及び制御と信号手段を通してパケットエンジンとの通信のために、メッセージに基づいたインターフェースの提供。
【０１２４】
好ましい実施の形態において、データバスを介して異なるメモリ間のデータ交換のために２つのＤＭＡチャネルが提供される。図１４に示すように、インバウンド ＤＭＡチャネル１４５０は、パケットエンジン１４００への入力トラヒックのデータ処理要素をハンドルするために利用され、アウトバウンド ＤＭＡチャネル１４５５は、複数のネットワークインターフェース１４６０への出力トラヒックをハンドルするために利用される。インバウンド ＤＭＡチャネル１４５０は、パケットエンジン１４００へ入力される全てのデータをハンドルする。
【０１２５】
データを受信してＡＴＭとＩＰネットワークへ伝送するために、パケットエンジン１４００は、ネットワーク上に互換通信するのにパケットエンジンを許可する複数のネットワークインターフェース１４６０を有する。図１５に示すように、好ましい実施の形態において、データを受信と伝送するために、６２２ Ｍｂｐｓ ＡＴＭ／ＳＯＮＥＴ接続１５６８と通信をしている、ネットワークインターフェースは、ＧＭＩＩ ＰＨＹインターフェース１５６２、ＧＭＩＩ ＭＡＣインターフェース１５６４、及び２つのUTOPIAII/POSIIインターフェース１５６６から構成される。
【０１２６】
ＩＰベーストラヒック用に、パケットエンジン（図示せず。）は、ＭＡＣをサポートし、ＩＥＥＥ ８０２．３に規定されたようにイーサネット（登録商標。）インターフェースのＰＨＹレイヤをエミュレートする。ギガビットイーサネットＭＡＣ１５７０は、ＦＩＦＯ１５０３と制御ステートマシン１５２５からなる。伝送と受信のＦＩＦＯ１５０３は、ギガビットイーサネットＭＡＣ１５７０とバスチャネルインターフェース１５０５との間にデータ交換するために提供される。バスチャネルインターフェース１５０５はアウトバウンド ＤＭＡチャネル１５１５とインバウンドＤＭＡチャネル１５２０とバスチャネルを通して通信している。ＧＭＩＩ ＭＡＣインターフェース１５６４からＩＰデータが受信されているとき、ＭＡＣ１５７０は、データ移動のために、ＤＭＡ １５２０へ要求を送信することが好ましい。
【０１２７】
この要求を受信したら、ＤＭＡ １５２０は、ＭＡＣインターフェース１５６４内のタスクキュー（図示せず。）をチェックし、キューパケットを転送することが好ましい。好ましい実施の形態において、ＭＡＣインターフェース内のタスクキューは、データ長、ソースアドレス、及びあて先アドレスから構成されるデータ構造を含む６４ビットレジスタのセットである。ＤＭＡ１５２０が複数のあて先（図示せず。）用の書き込みポインタを維持するとき、あて先アドレスは利用されない。ＤＭＡ １５２０は、データをバスチャネルで、プロセッサ内に位置するメモリへ移動させ、予め定義されたロケーションにタスクの数を書き込む。全てのタスクを書き込み終わったら、ＤＭＡ １５２０は、メモリページへ転送されたタスクの合計数を書き込む。
【０１２８】
プロセッサは、受信データを処理し、ＤＭＡのアウトバウンドチャネル用のタスクキューを書き込むアウトバウンドＤＭＡチャネル１５１５は、タスクキューを読み込みした後、メモリロケーションに存在するフレームの数をチェックし、データをメディアエンジンタイプＩ又はＩＩのＰＯＳＩＩインターフェース、又はＩＰ−ＡＴＭブリッジが行なわれている外部メモリロケーションへ移動する。
【０１２９】
ＡＴＭのみ又はＡＴＭとＩＰトラヒックの組み合わせのために、パケットエンジンは、ＩＰ／ＡＴＭトラヒック用のＰＨＹと上部レイヤの間のインターフェースを提供する、２つの構成可能なUTOPIAII/POSIIインターフェース１５６６をサポートする。UTOPIAII/POSII１５８０は、ＦＩＦＯ１５０４と、制御ステートマシン１５２６から構成される。伝送と、受信ＦＩＦＯｓ １５０４は、UTOPIAII/POSII１５８０とバスチャネルインターフェース１５０６との間のデータ交換のために提供されている。バスチャネル１５０６はアウトバウンド ＤＭＡチャネル１５１５と、インバウンド ＤＭＡチャネル１５２０とバスチャネルを通して通信している。
【０１３０】
UTOPIAII/POSIIインターフェース１５６６は、UTOPIA level II又はPOS level II モード内に構成されることが可能である。UTOPIAII/POSIIインターフェース１５６６上にデータが受信されると、データは、存在するタスクをタスクキューにプッシュし、データ移動用にＤＭＡ１５２０を要求する。ＤＭＡ１５２０は、データ長、ソースアドレス、及びインターフェース種類から構成されるデータストラクチャを含むタスクキューを、UTOPIAII/POSIIインターフェース１５６６から読み取る。インターフェース、例えば、ＰＯＳ又はUTOPIA、の種類に依存して、インバウンド ＤＭＡチャネル１５２０は、データを、複数のプロセッサ（図示せず。）又はＡＴＭＲｘエンジン（図示せず。）へ送信する。
【０１３１】
ＡＴＭＲｘ メモリにデータが書き込まれた後、ＡＴＭエンジンで処理され、対応するＡＡＬレイヤへパスされる。送信側において、データはＡＴＭＴｘエンジン（図示せず。）の内部メモリへ、対応するＡＡＬレイヤによって、移動される。ＡＴＭＴｘエンジンは、希望のＡＴＭヘッダを、セルの最初に挿入し、データの長さとソースアドレスのデータストラクチャのタスクキューを有するUTOPIAII/POSIIインターフェース１５６６ へデータを移動するように、アウトバウンドＤＭＡチャネル１５１５に要求する。
【０１３２】
図１６に示すように、制御と信号機能を容易にするために、パケットエンジン１６００は、図１４に参照番号１４９５で示された複数のＰＣＩインターフェース１６０５、１６０６を有する。好ましい実施の形態において、信号ホスト１６１０は、初期化部１６１２を通して、通信バス１６１７を介して、ＰＣＩターゲット１６０５へ、パケットエンジン１６００によって受信されるメッセージを送信する。ＰＣＩターゲットは、ＰＣＩ−ＰＣＩブリッジ１６２０を通して、ＰＣＩ初期化部１６０６へこれらのメッセージと通信する。ＰＣＩ初期化部１６０６は、通信バス１６１８を通して、メモリキュー１６６５と一緒のメモリ１６６０をそれぞれが有する複数のメディアエンジン１６５０へメッセージを送信する。
【０１３３】
ソフトウェアアーキテクチャ
前に議論したように、前述したハードウェアアーキテクチャの実施の形態上に動作するものは、メディア処理、信号、及びパケット処理を可能にするために設計された、複数の新規、統合されたソフトウェアシステムである。この新規ソフトウェアアーキテクチャは、処理の必要性に依存し、多数の方法で物理的に図示されたロジカルシステム、図５に示された、を可能にする。
【０１３４】
ソフトウェアシステムの任意の２つのモジュール、又はコンポネントの間の通信は、アプリケーションプログラムインターフェース（ＡＰＩ）によって容易にされている。ソフトウェアコンポネントがハードウェア素子上に、又は複数のハードウェア素子を横断して常駐しているにもかかわらないで、実質的に不変及び一貫したアプリケーションプログラムインターフェースである。これは、異なる処理素子へコンポネントをマッピングすることを許可し、よって、個々のコンポネントに同時に変更をすることなく、物理インターフェースを変更する。
【０１３５】
例示の実施の形態おいて、図１７に図示したように、第１コンポネント１７０５は、第２コンポネント１７１０及び第３コンポネント１７１５と、それぞれ第１インターフェース１７２０と第インターフェース１７２５を通して、連動して動作する。全ての３コンポネント１７０５、１７１０、１７１５は、同じ物理プロセッサ１７００上に実行しているので、第１インターフェース１７２０と第２インターフェース１７２５は、３コンポネント１７０５、１７１０、１７１５の各ＡＰＩを介して処理されたマッピング機能を通して、インターフェースタスクを行う。
【０１３６】
図１７ａに示すように、第１コンポネント１７０５ａ、第２コンポネント１７１０ａ、及び第３コンポネント１７１５ａは、それぞれ別々のハードウェア素子１７００ａ、１７０１ａ、１７０２ａ、例えば別々のプロセッサ又は処理素子上、に常駐するとき、第１インターフェース１７２０ａと第２インターフェース１７２５ａは、共有メモリ内にキュー１７２１ａ、１７２６ａを通ってインターフェースタスクを実装する。インターフェース１７２０ａ、１７２５ａはマッピングとメッセージング機能へ限定されることがないとき、コンポネント１７０５ａ、１７１０ａ、１７１５ａは、インターコンポネント通信を処理するために、同じＡＰＩの利用を継続する。コンポネント自身に必要及び変更無しのとき、変更されたインターフェース又はドライバに頼って、標準ＡＰＩの一貫した利用は、分散処理環境の異なるハードウェアアーキテクチャへ、様々なコンポネントの移植を可能にする。
【０１３７】
図１８に今度示すように、ソフトウェアシステム１８００の論理分割を図示している。ソフトウェアシステム１８００は、メディア処理サブシステム１８０５、パケット化サブシステム１８４０、及び信号化／マネジメントサブシステム（以下、信号サブシステムとする。）１８７０の３つのサブシステムに分割されている。メディア処理サブシステム１８０５は、エンコードされたデータをパケット化サブシステム１８４０へ、カプセル化と、ネットワーク送信のために、送信し、デコードされと再生されるネットワークデータをパケット化サブシステム１８４０から受信する。信号サブシステム１８７０は、特に、伝送されたパケットの数等のステータス情報を取得、サービスの品質を監視、特定チャネルのモードを制御するために、パケット化サブシステム１８４０と通信する。
【０１３８】
コールの開始と終了用にパケット化セッションの設立と破棄を制御するために、信号サブシステム１８７０は、パケット化サブシステム１８４０とも通信する。各サブシステム１８０５、１８４０、１８７０は、更に、メディアの処理と伝送をもたらすために、異なるタスクを行うように設計されたコンポネント１８２０の一列からなる。各コンポネント１８２０は、ＡＰＩを通して、任意の他のモジュール、サブシステム、又はシステムとの通信を処理し、前に議論したように、１個のハードウェア素子上に又は複数のハードウェア素子を横断して常駐するコンポネントにもかかわらず、実質的に不変及び一貫して残る。
【０１３９】
図１９に図示した例示の実施の形態において、メディア処理サブシステム１９０５は、システムＡＰＩコンポネント１９０７、メディアＡＰＩコンポネント１９０９、リアルタイムメディアカーネル１９１０、及び音声処理コンポネントからなる。この音声処理コンポネントは、回線エコキャンセルコンポネント１９１１と、音声アクティビティ検出用専用コンポネント１９１３、コンフォート雑音生成１９１５用の専用コンポネント、及び不連続伝送マネジメント１９１７用の専用コンポネントと、二重トーン（ＤＴＭＦ／ＭＦ）、コール・プログレス、コール待機、及びコーラー識別等のトーン信号機能をハンドルする専用のコンポネント１９１９、及び、音声１９２７、ファックス１９２９、及び他のデータ１９３１用のメディアのエンコード化とデコード化機能用のコンポネントとを含む。
【０１４０】
システムＡＰＩコンポネント１９０７は、システムワイドマネジメントの提供と、外部アプリケーションと個々のコンポネントの間の通信確立を含む個々のコンポネントの密着相互関係の実現、ランタイムコンポネントの追加と削除、中央サーバーからコードのダウンロード、及び、他のコンポネントから要求するコンポネントのＭＩＢへのアクセスができなければならない。メディアＡＰＩコンポネント１９０９は、リアルタイムメディアカーネル１９１０と個別音声処理コンポネントと相互作用する。リアルタイムメディアカーネル１９１０は、メディア処理リソースの割り当てをし、各メディア処理素子上のリソースの利用を監視し、及び実質的に最大密度と効率のロードバランスを行う。
【０１４１】
音声処理コンポネントは、マルチ処理素子を横断して分散していることができる。信号エコから削除するために、回線エコキャンセルコンポネント１９１１は、アダプティブ・フィルタ・アルゴリズムを有効にする。信号エコは、入力信号の発信元へ変調入力信号が反射及び／又は再伝送された結果として起こりえるものである。好ましい実施の形態において、回線エコキャンセルコンポネント１９１１は、次のフィルタ化アプローチを実装するようにプログラムされている。フィルタ化アプローチは、長さＮのアダプティブフィニットインパルスレスポンス（ＦＩＲ）フィルタは、最小二乗平均アプローチ等のコンバージェンス・プロセスを利用し集中したものである。受信パス上の遠端信号の個別サンプルを取得し、計算されたフィルタ係数でこのサンプルを畳み込み、及び、そして、送信チャネル上の受信信号から結果エコ推定値を適当な時間で差し引くことで、このアダプティブフィルタは、フィルタされた出力を生成する。
【０１４２】
畳み込みが完了すると、フィルタは、ARMA-Levinsonアプローチの生成を利用して、無限インパルス応答 （ＩＩＲ）フィルタへ、変換される。動作の間に、データが、入力ソースから受信され、ＬＭＳアプローチを利用し、ポールを固定して、ＩＩＲフィルタのゼロをアダプトするのに使われる。この適応処理は、畳み込みされたフィルタ係数のセットを生成し、これの係数は、データをフィルタするのに使われる変調信号を作成するために、入力信号に連続して応用される。変調信号と実際の受信信号の間のエラーは、モニタされ、ＩＩＲフィルタのゼロをアダプトするのに更に利用される。測定されたエラーは、予め設定された閾値より大きい場合、畳み込みは、ＦＩＲ畳み込みステップへ戻って再初期化される。
【０１４３】
音声アクティビティ検出コンポネント１９１３は、到着データを受信し、音声か、その他の種類の信号、例えば雑音、が受信データに存在するかを、特定データパラメータの分析に基づいて判定する。伝送から受信したバックグラウンド雑音に対応する雑音を生成させるように、デコーダを可能にする情報を含むサイレンス挿入ディスクリプタ （ＳＩＤ）を送信するために、コンフォート雑音生成コンポネント１９１５は動作する。目立てない可聴ノイズのオーバレイは、接続が生きているか切断されているかの識別に関してユーザを手助けし役立つものである。ＳＩＤフレームは、例えば、Ｇ.７２９ Ｂ  コーデック仕様による約１５ビットと、一般的に小さい。好ましくは、アップデートされたＳＩＤフレームは、バックグラウンド雑音に十分な変更があるときデコーダに送信される。
【０１４４】
ＤＴＭＦ/ＭＦの認識、コール進行、コール待機、及びコーラー識別を含むトーン信号コンポネント１９１９は、２ステージダイヤルの処理（ＤＴＭＦトーンの場合）、音声メールの検索、及び到着コールの受理（コール待機の場合）等特定のアクティビティ又はイベントの信号であるトーンを遮断するように動作し、知的マナーのアクティビティ又はイベントの本質を受信デバイスへ通信し、よって、音声ストリーム中の他の素子としてのトーン信号をエンコード化することを回避する。
【０１４５】
実施の形態において、トーン信号コンポネント１９１９は、複数のトーンを認識することができ、よって、一つのトーンが受信されると、トーンの長さ等の他の識別部と一緒にトーンを識別する複数のＲＴＰパケットを送信する。識別されたトーンの発生で、ＲＴＰパケットは、このトーンと関連されたイベントを受信ユニットへ運ぶ。２つ目の実施の形態において、トーン信号コンポネント１９１９は、周波数、量、及び継続時間等のトーンの性質の詳細を示す動的ＲＴＰプロファイルを生成することができる。トーンの性質の詳細によって、ＲＴＰパケットは、トーンを受信ユニットへ伝達し、受信ユニットがトーンを翻訳することを許可し、従って、イベント又はアクティビティがこれに関連する。
【０１４６】
音声１９２７、ファックス１９２９、及び他のデータ１９３１用のメディアのエンコードとデコード機能用のコンポネント、ここでコーデックと参照されたもの、は、音声、ファックス、及び他のデータのエンコードとデコード用のＧ．７１１等の国際電気通連合（ＩＴＵ）の標準仕様に従って考案されたものである。音声、データ、及びファックス通信用のコーデックの例は、ＩＴＵ標準Ｇ.７１１であり、いつもパルスコード変調と参照されている。Ｇ.７１１は、サンプルレート８０００Ｈｚの波形コーデックである。同一の量子化では、９６ｋｂｐｓのビットレートの結果として、信号レベルは、一般的に、サンプル当たりに、少なくとも１２ビットを要求する。
同一ではない量子化では、一般的なように、信号レベルは、６４ｋｂｐｓレートに至って、サンプル当たりに、約８ビットを要求する。
【０１４７】
他の音声コーデックは、ＩＴＵ標準Ｇ．７２３．１、Ｇ．７２６、及びＧ．７２９Ａ/Ｂ/Ｅを含むことは、当業者に明らかである。他のＩＴＵ標準は、ファックスメディア処理コンポネント１９２９によってサポートされ、Ｔ．３８と、Ｖ．１７、Ｖ．９０、及びＶ．３４等のＶ．ｘｘ標準を含むことが好ましい。ファックス用の例示コーデックは、ＩＴＵ標準Ｔ．４とＴ．３０を含む。ファックスマシンがどのように書類をスキャンしたか、スキャン線のコーディング、利用された変調、及び利用された伝送スキームを明確にすることで、Ｔ．４は、ファックスイメージのフォーマット、送信者から受信者へのその伝送を取り扱う。他のコーデックは、ＩＴＵ標準Ｔ．３８を含む。
【０１４８】
図２０に示すように、例示の実施の形態において、パケット化サブシステム２０４０は、システムＡＰＩコンポネント２０４３、パケット化ＡＰＩコンポネント２０４５、POSIX API ２０４７、リアルタイムオペレーティングシステム（ＲＴＯＳ） ２０４９、 バッファとトラヒックマネジメントとしてサービス機能の品質を行う専用のコンポネント２０５０、ＩＰ通信を実現するコンポネント２０５１、ＡＴＭ通信を実現するコンポネント２０５３、リソース予約プロトコル（ＲＳＶＰ）用のコンポネント２０５５、及びマルチプロトコルラベルスイッチング（ＭＰＬＳ）用のコンポネント２０５７からなる。
【０１４９】
パケット化サブシステム２０４０は、ＡＴＭとＩＰネットワークへの伝送用に、エンコードされた音声／データをパケットへカプセル化することを容易にし、パケット遅延、パケット損失、及びジッタマネジメントを含むサービス素子の特定品質をマネージし、及び、制御ネットワークトラヒックへトラヒックシェーピングを実装する。メディア処理サブシステム（図示せず。）と信号サブシステム（図示せず。）と通信することで、パケット化ＡＰＩコンポネント２０４５は、パケット化サブシステム２０４０へのアクセスを容易にする外部アプリケーションを提供する。POSIX API ２０４７レイヤは、オペレーティグシステムを、コンポネントから分離し、一貫したＯＳ  ＡＰＩを有するコンポネントを提供し、よって、ソフトウェアが他のＯＳプラットフォームに移植されたとき、このレイヤ上のコンポネントが変更されないことを保証する。ＲＴＯＳ２０４９は、ハードウェア命令へソフトウェアコードの実装を容易にするＯＳとして振舞う。
【０１５０】
ＩＰ通信コンポネント２０５１は、ＴＣＰ/ＩＰ、ＵＤＰ/ＩＰ、及びＲＴＰ/ＲＴＣＰプロトコル用のパケット化をサポートする。ＡＴＭ通信コンポネント２０５３は、ＡＡＬ１、ＡＡＬ２、及びＡＡＬ５プロトコル用のパケット化をサポートする。 パケットエンジンのＲＩＳＣプロセッサ上に、ＲＴＰ/ＵＤＰ/ＩＰスタックが実装されていることが好ましい。ＡＴＭスタックの一部は、ＲＩＳＣプロセッサ上に実装され、ＡＴＭスタックの計算集中する部分がＡＴＭエンジン上に実装されていることも好ましい。
【０１５１】
ＲＳＶＰ２０５５用のコンポネントは、ＩＰネットワーク用のリソース予約テクニックを指定する。ＲＳＶＰプロトコルは、メディアを参加者間に交換する任意の試みの前に、リソースが特定セッション（又は複数のセッション）用に予約されることができるようにする。サービスの２レベルは、一般的に、実現される。この２レベルは、従来の回路交換ネットワークによって達成された品質をエミュレートする保証レベルと、及びベストエフォートアンドノーロード条件のネットワークで達成したサービスのレベルと実質的に等しい、制御されたロードを含む。動作中、送信ユニットは、ＰＡＴＨメッセージを受信ユニットへ複数のルータを介して発行する。
【０１５２】
ＰＡＴＨメッセージは、送信者が送信するために予定しているもので、バンド幅要求とパケットサイズを含むデータについて詳細を提供するトラヒック仕様（Ｔｓｐｅｃ）を含む。伝送パスに従った各ＲＳＶＰ有効ルータは、ＰＡＴＨメッセージ（前のルータ）の前のソースアドレスを含むパスステートを確立する。受信ユニットは、Ｔｓｐｅｃと、コントロールされたロード又は保証されたサービス等の要求された予約サービスの種類についての情報を有するフロー仕様を含む予約要求（ＲＥＳＶ）に反応する。ＲＥＳＶメッセージは、同じルータパスウェイに沿って送信ユニットへ戻る。各ルータで、リソースが利用可能であり、かつ、受信者は要求する権利を有するように提供された要求リソースは、割り当てられる。ＲＥＳＶは、送信ユニットに、必要な、必須のリソースが予約されたことを示す確認と一緒に最終的に到着する。
【０１５３】
ソースから目的地へのパスに次のルータを判定する目的のために、MPLS２０５７用のコンポネントは、ネットワークへの入れ口でトラヒックをマークするように動作する。もっと詳しくは、ＭＰＬＳ２０５７コンポネントは、ＩＰヘッダのフロント内のパケットへパケットを転送するのにルータが必要とする全ての情報を含むラベルを添付する。ラベルの値は、パス内の次のホップと、次のルータへパケットを転送するための基礎を調べるのに利用される。従来のIPルーチングは、従来ＩＰルーチングのような最長マッチではなく、的確なマッチ用に探すMPLSプロセス以外、同様に動作する。
【０１５４】
図２１に示すように、例示の実施の形態において、信号サブシステム２１７０は、ユーザアプリケーションＡＰＩコンポネント２１７３、システムＡＰＩコンポネント２１７５、ＰＯＳＩＸ ＡＰＩ２１７７、リアルタイムオペレーティングシステム（ＲＴＯＳ）２１７９、信号化ＡＰＩ２１８１、ＡＴＭネットワーク２１８３用の信号化スタックと、ＩＰネットワーク２１８５用の信号化スタックのような信号化機能を行うための専用のコンポネント、及びネットワークマネジメントコンポネント２１８７からなる。信号化ＡＰＩ２１８１は、ＡＴＭネットワーク２１８３用の信号化スタックと、ＩＰネットワーク２１８５用の信号化スタックへの簡単なアクセスを提供する。
【０１５５】
信号化ＡＰＩ２１８１は、マスターゲートウェイとＮ個のサブゲートウェイからなる。シングルマスタゲートウェイは、これと連携したNサブゲートウェイを有することができる。マスターゲートウェイは、ＡＴＭ又はＩＰネットワークから来る到着コールの分離を行い、そのコールを、リソースが利用できるサブゲートウェイへルーチングする。サブゲートウェイは、全てのアクティブ終了用にステートマシンを維持する。サブゲートウェイは、たくさんの停止をハンドルするために複製されることができる。この設計を利用して、マスターゲートウェイとサブゲートウェイは、シングルプロセッサ上又はマルチプロセッサを横断して存在でき、よって、たくさんの停止と実質的拡張性の供給のために、信号の同様な処理を可能にする。
【０１５６】
ユーザアプリケーションＡＰＩコンポネント２１７３は、メディア処理サブシステム、パケット化サブシステム、及び信号化システム各々からなる全体ソフトウェアシステムとインターフェースするために外部アプリケーション用の手段を提供する。ネットワークマネジメントコンポネント２１８７は、シンプルネットワークマネジメントプロトコル（ＳＮＭＰ）のサポートを通して、ローカルとリモート構成、及びネットワークマネジメントをサポートする。ネットワークマネジメントコンポネント２１８７の構成部分は、構成とネットワークマネジメントタスクを処理するために他のコンポネントのどれともと通信でき、特定コンポネントの追加又は移動等のタスクのためのリモート要求をルートすることができる。
【０１５７】
ＡＴＭネットワーク２１８３用の信号化タスクは、ＡＡＬ１、ＡＡＬ２、及びＡＡＬ５プロトコルを利用して、データの通信用のユーザネットワークインターフェース（ＵＮＩ）用のサポートを含む。ユーザネットワークインターフェースは、ソフトウェアシステムとハードウェアシステムからなるゲートウェイシステムと、ＡＴＭネットワークとの間の手続とプロトコル用の仕様からなる。ＩＰネットワーク２１８５用の信号化スタックは、メディアゲートウェイ制御プロトコル（ＭＧＣＰ）、Ｈ．３２３、セッション初期化プロトコル（ＳＩＰ）、Ｈ．２４８、及びネットワークベースコール信号化（ＮＣＳ）を含む複数の認められた標準のためのサポートを含む。
【０１５８】
ＭＧＣＰは、マルチ特殊デバイスを横断して、分散され得るコンポネントである、プロトコル変換の仕様を定めている。ＭＧＣＰは、外部制御と、マルチサービスパケットネットワークの境界で動作するメディアゲートウェイ等のデータ通信機器のマネジメントを可能にする。Ｈ．３２３標準は、ネットワーク上にリアルタイム音声とビデオを伝送するための仕様で、パケットネットワーク等のサービスの保証レベルを提供する必要ない、コール制御のセット、チャネルセットアップ、及びコーデック詳細を定義している。ＳＩＰは、ＩＰベースネットワーク上に会議と電話セッションの確立、変調、及び停止のためのアプリケーションレイヤプロトコルであり、交渉特徴の機能と、セッションが確立されたときセッションの機能を有する。Ｈ．２４８は、ＭＧＣＰの実装の下で推薦を提供する。
【０１５９】
更に、拡張性と実装を容易に実現するために、本ソフトウェア方法とシステムは、利用されている処理ハードウェアについての特定知識を要求しない。図２２に示すように、一般的な実施の形態において、ホストアプリケーション２２０５は、ＤＳＰ２２１０と、中断機能２２２０と共有メモリ２２３０を介して、相互作用する。図２３に示すように、同じ機能は、同じプロセッサ２３１５上にアプリケーションコード２３２０として分離独立スレッドとしてのバーチャルＤＳＰプログラム２３１０の動作を通して、シミュレーション実行によって達成できる。このシミュレーション実行は、タスクキューミューテックス２３３０と条件変数２３４０によって可能になる。タスクキューミューテックス２３３０は、バーチャルＤＳＰプログラム２３１０とリソースマネジャ（図示せず。）の間に共有されたデータを保護する。条件変数２３４０は、アプリケーションがバーチャルＤＳＰ２３１０と同期化することを許可し、他の意味で言えば、図２２の中断２２２０の機能と同様である。
【０１６０】
第２の例示の応用
序文
現在、ビデオと音声ポートは分離している。ビデオ伝送用にデバイスを接続するのに、大きくて、値段の高いビデオケーブルを利用している。加えて、ＶＧＡとＤＶＩ等の共通のビデオ接続は、音声データを取り扱わない。ＶＧＡはアナログ伝送であるため、実質的に信号の劣化無く伝送するには、利用できるケーブルの長さが、限定されている。広く採用された標準、ＵＳＢと特にＵＳＢ２．０、を、音声とビデオポートの結合されたポートとして、利用することが好ましい。現在、そのような利用を許可する統合チップソリューションは提供されていない。
【０１６１】
本発明は、損失無しのグラフィックコーデックに加えて、コーデック (特に、MPEG2/4, H.264) のビデオタイプもサポートするシステム又はチップである。また、データストリーム間を識別する新規のプロトコルも含む。特に、エンコーダとデコーダの両サイドに存在する新規システム多重器は、ビデオ、音声、グラフィック及び制御の４つのデータストリームの各々を識別とマネージすることができる。本システムは、リアルタイム又はリアルタイムでない環境で利用できる。
【０１６２】
例えば、エンコードされたストリームは、将来のディスプレイ用に格納されること、又はリアルタイムストリーミング若しくはストリーミングではないアプリケーション用に任意のタイプのネットワーク上にストリームされることができる。本発明においては、ＵＳＢインターフェースは、圧縮なしで、標準定義ビデオの音声と一緒に送信することに利用できる。音声と一緒の圧縮無しの標準定義ビデオは、２５０Ｍｂｐｓ以下で、１秒当たり２４８キロビットの圧縮音声を要求する。高定義ビデオは、損失無しのグラフィック圧縮を利用して同様に伝送されることができる。
【０１６３】
この革新的なアプローチによって、数々の応用が可能になる。例えば、モニタ、プロジェクタ、ビデオカメラ、セットトップボックス、コンピュータ、ディジタル録画器、及びテレビが、ＵＳＢ接続のみを必要とし、他の音声又はビデオポートを追加して要求することがなくなる。グラフィックオーバーレイに頼るのと対照的に、マルチメディアシステムは、統合されたグラフィック又は標準ビデオと一緒のテキスト・インテンシブ・ビデオによって、改良できる。その結果、ＴＶへのＵＳＢ、及び、コンピュータアプリケーションへのＵＳＢ、及び／又は、ＴＶへのインターネットプロトコル（ＩＰ）、及び、コンピュータアプリケーションへのＩＰを可能にする。ＩＰ通信を利用した場合、データは、パケット化され、サービス品質（ＱｏＳ）ソフトウェアでサポートされる。
【０１６４】
接続の簡易化及び改良は別として、本発明は、今まで、実現されていないユーザアプリケーションを実現する。１つの実施の形態において、本発明は、分散デバイス又はルータを要求することなく、家庭内の複数のデバイスの無線ネットワークを実現する。無線送信機を有する本発明の統合チップからなるデバイスは、セットトップボックス、モニタ、ハードディスク、テレビ、コンピュータ、ディジタル録画器、ゲーム機 (Xbox, Nintendo, Playstation)等の各デバイスのポートにアタッチされ、及び、リモートコントロール、赤外線コントローラ、キーボード又はマウス等の制御デバイスを利用して制御可能である。ビデオ、グラフィック、及び音声は、任意のデバイスから任意の他のデバイスへ、コントローラデバイスを利用して、ルーチングされることができる。制御デバイスは、任意のネットワークされたデバイスへデータを入力するのに利用できる。
【０１６５】
よって、シングルモニタは、コンピュータ、ディジタル録画器、セットトップボックス、ハードディスクドライブ、又は他のデータソースを含む複数の異なるデバイスへネットワークされることができる。シングルプロジェクタは、コンピュータ、ディジタル録画器、セットトップボックス、ハードディスクドライブ、又は他のデータソースを含む複数の異なるデバイスへネットワークされることができる。シングルＴＶは、コンピュータ、セットトップボックス、ディジタル録画器、ハードディスクドライブ、又は他のデータソースを含む複数の異なるデバイスへネットワークされることができる。追加して、シングルコントローラは、複数のＴＶ、モニタ、プロジェクタ、コンピュータ、ディジタル録画器、セットトップボックス、ハードディスクドライブ、又は他のデータソースの制御に利用できる。
【０１６６】
もっと詳しくは、図２７に図示したように、デバイス２７０５は、任意のアナログ若しくはディジタルビデオ、グラフィック又は音声メディアを含むメディア、及び、任意の種類の制御情報（赤外線、キーボード、マウス）２７０３を、任意の無線若しくは有線ネットワーク又は直接接続を通して、任意のソース２７０１から受信できる。伝送されるメディアに変更又は作用するために、デバイス２７０５は、そして、コントローラ２７０３からの制御情報を処理し、メディアソース２７０１へ伝送する。このデバイスは、任意の種類のディスプレイ２７０９又は任意の種類のストレージデバイス２７０９へ、メディアを伝送することができる。図２７の各素子それぞれは、ローカル又はリモートであることができ、有線若しくは無線ネットワーク又は直接接続を介して、データ通信している。
【０１６７】
この新規発明は、従って、完全に分離及び独立のコントローラ、メディアソース、及びディスプレイを実現し、更に、全てのメディアタイプの処理をシングルチップへ統合する。１つの実施の形態において、ユーザは、デバイス２７０５の手で持って操作できるバージョンを有する。デバイス２７０５は、少なくとも１つのテレビリモートコントローラ、キーボード、又はマウスに既存のコントロール機能用に提供されたコントローラである。デバイス２７０５は、テレビリモートコントローラ、キーボード、又はマウスの機能の２又は全３を結合することができる。デバイス２７０５は、本発明の統合チップを含み、小さい画面、データストレージ、及び、従来の個人情報端末又は携帯電話器にある他の機能をオプションで含むことができる。
【０１６８】
デバイス２７０５は、コンピュータ、セットトップボックス、テレビ、ディジタル録画器、ＤＶＤ再生器、又は他のデータソースであることができるユーザのメディアソース２７０１とデータ通信している。ユーザのメディアソース２７０１は、リモートの場所に位置することができ、無線ネットワークを介してアクセスできる。ユーザのメディアソース２７０１は、本発明の統合チップをも有する。このデバイスは、ホテル、家庭、ビジネス、飛行機、レストラン、又は他のリテール場所等の任意の場所に配置された、任意の種類のモニタ、プロジェクタ、又はテレビ画面であることができるディスプレイ２７０９とデータ通信している。ディスプレイ２７０９は、また、本発明の統合チップを有する。
【０１６９】
ユーザは、任意のグラフィック、ビデオ、又は音声情報に、メディアソース２７０１からアクセスでき、ディスプレイ２７０９上にこれを表示する。また、ユーザは、メディアソース２７０１からのメディアのコーディングの種類を変更でき、リモートに配置され、有線若しくは無線ネットワーク又は直接接続でアクセス可能なストレージデバイス２７１０内にこれを格納する。各メディアソース２７０１とディスプレイ２７０９内には、統合チップは、デバイスに統合され、又はＵＳＢポート等のポートを介して外部接続されていることができる。
【０１７０】
これらのアプリケーションは、家庭に限定されるものではなく、マルチデータソースとモニタのリモートモニタリングとマネジメント用に病院等のビジネス環境にも利用できる。通信ネットワークは、任意の通信プロトコルであることができる。一つの応用は、シングルコントローラで制御されることで、任意のネットワークされたモニタに伝送可能なデータで、X線機器、金属検出器、ビデオカメラ、トレース検出器、及び他のデータソースからのデータと一緒にセキュリティネットワークが確立される。
【０１７１】
ハイレベルアーキテクチャ
図２５に図示したように、本発明の第２実施の形態２５００のブロックダイアグラムが図示されている。伝送端でのシステムは、メディア処理デバイス２５１５へ集合され統合された、提供又は統合されることが可能なもの等のメディアソース２５０１、メディア処理デバイス、複数のメディア前処理ユニット２５０２、２５０３、ビデオ及びグラフィックエンコーダ２５０４、音声エンコーダ２５０５、多重器２５０６、及び制御ユニット２５０７からなる。ソース２５０１は、これが処理され、ビデオ及びグラフィックエンコーダ２５０４及び音声エンコーダ２５０５へ転送される前処理ユニット２５０３、３０３へグラフィック、テキスト、ビデオ、及び／又は音声データを送信する。
【０１７２】
ビデオとグラフィックエンコーダ２５０５及び音声エンコーダ２５０６は、前処理されたマルチメディアデータに圧縮又はエンコーディング動作を行う。２つのエンコーダ２５０４、２５０５は、更に、多重器の機能を可能にするために、それとデータ通信している制御回路を備えている多重器２５０６に接続される。多重器２５０６は、シングルデータストリームを形成するために、ビデオとグラフィックエンコーダ２５０４及び音声エンコーダ２５０５からのエンコードされたデータを結合する。これは、マルチデータストリームが、任意の適当なネットワーク２５０８の物理又はＭＡＣレイヤ上で１つの場所から他へ送信されることを可能にする。
【０１７３】
受信端では、システムは、メディア処理デバイス２５１６へ集合して統合された分離器２５０９、ビデオとグラフィックデコーダ２５１１、音声デコーダ２５１２及び複数のポスト処理ユニット２５１３、２５１４からなる。ネットワーク２５０８上に存在するデータは、分離器２５０９によって受信され、ハイデータレートストリームを元のローレートストリームへ分解し、データストリームを元のマルチストリームへ変換される。マルチストリームは、今度、異なるデコーダ、例えば、ビデオとグラフィックデコーダ２５１１及び音声デコーダ２５１２、へパスされる。対応するデコーダは、圧縮されたビデオとグラフィック及び音声データを適当な解凍アルゴリズム、好ましくはＬＺ７７、に従って、解凍し、解凍されたデータがディスプレイ及び／又は更なるレンダリングに用意されたポスト処理ユニット２５１３、２５１４へそれらを供給する。
【０１７４】
メディア処理デバイス２５１５、２５１６の両方は、ハードウェアモジュール又はソフトウェアサブルーチングであることができるが、好ましい実施の形態において、ユニットは、シングル統合チップへ統合される。統合チップは、データストレージ又はデータ伝送システムの一部として利用される。
【０１７５】
任意の従来のコンピュータ互換性のポートは、本統合システムと一緒にデータを伝送するのに利用できる。統合チップは、ＵＳＢポート、好ましくは高速のデータ送信用にＵＳＢ２．０、と結合されていることができる。ベーシックＵＳＢコネクタは、音声に加えて、全てのビジュアルメディアを伝送するのに利用でき、よって、分離されたビデオとグラフィックインターフェースの必要性を無くす。標準定義ビデオとハイ定義ビデオは、圧縮無しで又は損失無しのグラフィック圧縮を利用して、ＵＳＢで送信されることができる。
【０１７６】
図２６に示すように、統合チップ２６００は、ビデオデコーダ２６０１、ビデオトランスコーダ２６０２、グラフィックコーデック２６０３、音声プロセッサ２６０４、ポストプロセッサ２６０５、及びスーパーバイゾリＲＩＳＣ ２６０６を含む複数の処理レイヤ、並びに、音声ビデオ入力／出力（ＬＣＤ、ＶＧＡ、ＴＶ）２６０８、ＧＰＩＯ２６０９、ＩＤＥ（Interactive Development Environment）２６１０、イーサネット２６１１、ＵＳＢ２６１２、及び赤外線、キーボード、及びマウスのコントローラ２６１３を含む複数のインターフェース／通信プロトコルからなる。インターフェース／通信プロトコルは、ノンブロッキングクロス接続２６０７を通して複数の処理レイヤとデータ通信する。
【０１７７】
統合チップ２６００は、ＳＸＧＡグラフィックプレイバック、ＤＶＤプレイバック、グラフィックエンジン、ビデオエンジン、ビデオポストプロセッサ、ＤＤＲ ＳＤＲＡＭコントローラ、ＵＳＢ２．０インターフェース、クロス接続ＤＭＡ、音声／ビデオ入出力（ＶＧＡ、ＬＣＤ、ＴＶ）、ローパワー、２８０ピンＢＧＡ、１６００ｘ１２００グラフィックオーバーＩＰ、リモートＰＣグラフィックとハイ定義イメージ、１０００ｘまでの圧縮、８０２．１１上の伝送の実現、統合ＭＩＰＳクラスＣＰＵ、アプリケーションソフトウェア統合の容易化用のLinux及び WinCEのサポート、セキュアデータ伝送用のセキュリティエンジン、有線及び無線ネットワーキング、ビデオ＆制御（キーボード、マウス、リモート）、及びイメージ向上用のビデオ／グラフィックポストプロセッサを含む数々の利点特徴を有する。
【０１７８】
ここで併合したビデオコーデックは、数ある中で特にMPEG-2, MPEG-4, WM-9, H.264, AVS, ARIB, H.261, H.263等の 全てブロックベース圧縮アルゴリズムでデコードするコーデックを含むことができる。加えて、コーデックに基づいた標準の実装に、本発明は、独自に開発したコーデックを実装できることは明である。そのような応用において、低複雑度のエンコーダは、ＰＣ内でビデオフレームを取得し、それらを圧縮し、それらをＩＰでプロセッサへ伝送する。プロセッサは、伝送をデコードし、プロジェクタ、モニタ、又はＴＶを含む任意のディスプレイ上にＰＣビデオを表示するデコーダを操作する。ラップトップ内に実行しているこの低複雑度のエンコーダと、ＴＶに接続されている無線モジュールと通信しているプロセッサを備えることで、人々は、写真、ホームムービー、ＤＶＤ、インターネットからダウンロードしたコンテンツ等のＰＣベース情報を大画面ＴＶ上に共有できる。
【０１７９】
ここで組み込まれたグラフィックコーデックは、１６００Ｘ１２００グラフィックエンコーダと１６００Ｘ１２００グラフィックデコーダを含むことができる。トランスコーダーは、フレームレート、フレームサイズ、又はビットレート変換を利用した高品質の任意のコーデックから他の任意のコーデックへの変換を可能にする。クチャー・イン・ピクチャーとグラフィックデコードを有する２つの同期高定義デコーデックも、ここで含まれることができる。
【０１８０】
本発明は、更に、AC-3, AAC, DTS, Dolby, SRS, MP2, MP3及びWMA等のプログラム可能な音声コーデックのサポートを含むことが好ましい。インターフェースは、また、10/100 Ethernet（登録商標） (x2), USB 2.0 (x2), IDE (32-bit PCI, UART, IrDA), DDR, Flash；VGA, LCD, HDMI (入力と出力), CVBS(入力と出力),及びS-video (入力と出力)等のビデオ；並びに、音声を含むことができる。Macrovision 7.1, ＨＤＣＰ、ＣＧＭＳ、及びＤＴＣＰ等を含む既知の数々のセキュリティメカニズムを利用したセキュリティも提供される。
【０１８１】
ビデオが圧縮されていない場合、受信器とインターフェースでＵＳＢポートだけが要求され、ＲＧＢをディスプレイへ、及び、音声を音声デコーダへ分散するかを注目すべきである。もし、ビデオが圧縮された場合、グラフィック解凍ユニットは受信機でまた要求される。改良されたビデオ品質は、エラー隠蔽、デ・ブロッキング、デ・インタレース、アンチフリッカー、スケール化、ビデオエンハンスメント、及びカラー空間変換等のポスト処理テクニックを通して配達される。特に、ビデオポスト処理は、ジッタ等の不要な成果物を取り除くインテリジェント・フィルタリングを含む。
【０１８２】
新規の統合チップアーキテクチャは、コーデック計算、及び、コーデック関連の決定をアドレスしている集中型マイクロプロセッサベース制御をハンドルするアプリケーション特定分散データパスを提供する。結果アーキテクチャは、コーディング、コーデックの種類の増加、コーデック当たりの処理要求の膨大量、データレート要求の増加、データ品質（雑音の多い、クリーン）の異なり、複数の標準、及び複雑な機能に関して複雑さの増加をハンドルできる。
【０１８３】
他の特性の中で、並列処理の実質的な度合いを有するので、新規アーキテクチャは、上述の利点を達成できる。並列処理の第１レベルは、とても特殊のタスクをするために、知的に起動し、又はスケジュールされ、又はデータパスするＲＩＳＣマイクロプロセッサからなる。並列処理の第２レベルは、フルロードされたデータパス（後で、図示し議論する。）をキープするロードスイッチマネジメント機能からなる。並列処理の第３レベルは、動き推定又はエラー隠蔽 (後で、図示し、議論する)等の特殊処理タスクを行うのに効率的に特化したデータレイヤ自身からなる。
【０１８４】
別の言い方をすれば、全体的なメディアプロセッサアーキテクチャにおいて、粗並列処理 （トップレベルの制御インテンシブステートマシンで実行し、プログラミングのモデルをシンプルにキープするエンコード／デコードエンジン）、中程度並列処理 (１００％近くの効率の任意のブロックＤＣＴベースコーデックの実装及びスケジューリングができるメディアスイッチ) 、及び密並列処理(データパス等の複雑な数値計算機能を実行する最適化されたマクロコードを実行するプログラム可能な機能ユニット)を提供するためのプログラム可能なブロックがある。この特殊なアーキテクチャは、固定機能のダイサイズと能力での、完全プログラマビリティを実現する。
【０１８５】
図３０に示すように、統合チップの他の観点が提供されている。ＤＰＬＰ３０００は、通信データバスを介して互いに通信し、及び処理レイヤコントローラ３００７と中央ダイレクトメモリアクセス（ＤＭＡ）コントローラ３０１０とは、通信データバスと処理レイヤインターフェース３０１５を介して通信している複数の処理レイヤ３００５からなる。各処理レイヤ３００５は、ＣＰＵ３００４と通信しているＣＰＵインターフェース３００６と順番で通信している。各処理レイヤ３００５内において、複数のパイプライン処理ユニット３０３０は、複数のプログラムメモリ３０３５とデータメモリ３０４０と、通信データバスを介して、通信している。各プログラムメモリ３０３５とデータメモリ３０４０は、通信データバスを介して、少なくとも１個のＰＵ３０３０によってアクセスされることが好ましい。各ＰＵ３０３０、プログラムメモリ３０３５、及びデータメモリ３０４０は、外部メモリ３０４７と、通信データバスを介して、通信している。
【０１８６】
好ましい実施の形態において、処理レイヤコントローラ３００７は、各処理レイヤ３００５への、タスクのスケジューリング及び処理タスクの分散をマネージする。処理レイヤコントローラ３００７は、ラウンドロビン式で、プログラムメモリ３０３５及びデータメモリ３０４０へ及びからのデータとプログラムコード転送要求を解決する。この解決に基づいて、処理レイヤコントローラ３００７は、ユニットがメモリへどのように直接アクセスするか、すなわちＤＭＡチャネル（図示せず。）、を定義したデータパスウェイを充填する。
【０１８７】
処理レイヤコントローラ３００７は、これのデータフローに従って命令をルーチングし、リードイン要求、ライトバック要求、及び命令転送等の全てのＰＵ３０３０用の要求ステートのトラックをキープするために命令デコードを行うことができる。処理レイヤコントローラ３００７は、更に、ＤＭＡチャネルのプログラミング、信号生成の開始、各処理レイヤ３００５内のＰＵ３０３０用のページステートのメインテニング、スケジューラ命令のデコード、及び各ＰＵ ３０３０のタスクキューから及びへのデータの移動のマネージング等のインターフェース関連機能を処理することができる。上述の機能を行うことで、処理レイヤコントローラ３００７は、実質的に、複雑ステートマシンを各処理レイヤ３００５に存在するＰＵ３０３０と関連つけする必要性を無くす。
【０１８８】
ＤＭＡコントローラ３０１０は、ローカルメモリバッファＰＵと、ＳＤＲＡＭ等の外部メモリの間のデータ転送をハンドルするためのマルチチャネルＤＭＡユニットである。各処理レイヤ３００５は、ＰＵローカルメモリバッファへ及びからデータを転送するために割り当てられたもので、独立したＤＭＡチャネルを有する。外部メモリへアクセスするＤＭＡ内のチャネル間の、ラウンドロビン解決のシングルレベル等の解決処理があることが好ましい。ＤＭＡコントローラ３０１０は、ＰＵ３０３０と処理レイヤ３００５を横断したラウンドロビン要求解決用のハードウェアサポートを提供する。
【０１８９】
各ＤＭＡチャネル機能は、互いに独立している。例示の動作において、ローカルメモリのアドレス、外部メモリのアドレス、伝送のサイズ、転送の方向、すなわちＤＭＡチャネルが外部メモリからローカルメモリへ、又は逆方向に、データを転送しているか、及び、ＰＵ３０３０用にどのぐらいの転送が要求されたかを利用することで、ローカルＰＵメモリと外部メモリの間の転送を処理することが好ましい。ＤＭＡコントローラ３０１０は、更に、プログラムコードフェッチ要求用のプライオリティの解決、リンクリストトラバース及びＤＭＡチャネル情報生成の処理、及びＤＭＡチャネルプリフェッチ及び完了した信号生成の実行が可能であることが好ましい。
処理レイヤコントローラ３００７とＤＭＡコントローラ３０１０は、複数の通信インターフェース３０６０、３０９０と、制御情報とデータ伝送が現れるたびに、通信している。
【０１９０】
ＤＰＬＰ３０００は、処理レイヤコントローラ３００７とＤＭＡコントローラ３０１０と通信し、及び、外部メモリ３０４７と通信している外部メモリインターフェース（ＳＤＲＡＭインターフェース等）３０７０を含むことが好ましい。
【０１９１】
各処理レイヤ３００５内において、処理タスクの定義されたセットの処理用に特別に設計された複数のパイプラインＰＵ３０３０がある。その点で、ＰＵは、一般目的プロセッサではなく、どの処理タスクを処理するのに利用することができない。特定機能ユニットの共通性で生じる特定処理タスクの調査と分析は、結合されたとき、それらの特殊処理タスクの存在を最適処理することができる特殊ＰＵを生じる。各ＰＵの命令セットアーキテクチャは、コンパクトコードをもたらす。コード密度の増加は、要求メモリの減少と、従って、要求エリア、パワー、及びメモリトラフィックの減少をもたらす。
【０１９２】
各処理レイヤにおいて、ＰＵ３０３０は、先入れ先出し（ＦＩＦＯ）タスクキュー（図示せず。）を通して、処理レイヤコントローラ３００７によってスケジュールされたタスク上に動作することが好ましい。パイプラインアーキテクチャは、パフォーマンスを改善する。パイプライン化は、マルチ命令が実行時にオーバーラップされる実装テクニックである。コンピュータパイプラインにおいて、パイプラインの各ステップは、命令の一部を実行する。アセンブリラインのように、異なるステップは、異なる命令の異なるパートを平行で実行する。これらの各ステップは、パイプステージ又はデータセグメント呼ばれる。ステージは、パイプを形成するために、次のステージに接続されている。プロセッサ内に、命令はパイプの一端から入り、ステージを通して進行し、他端から出る。命令パイプラインのスループットは、パイプラインから命令がどのぐらいの頻度で出ているかで定義される。
【０１９３】
追加して、各処理レイヤ３００５内には、分散されたメモリバンク３０４０のセットがあり、処理済み情報と、割り当てられた処理タスクを処理するのに要求された他のデータのローカルストレージを可能にする。離散処理レイヤ３００５内に分散されたメモリ３０４０を有することによって、ＤＰＬＰ ３０００は、柔軟になり、生産時、高い生産収率をもたらす。従来、メモリブロックが増加すると、悪いウェハ（破損したメモリブロックが原因）の確率も増加するため、特定ＤＳＰチップはシングルチップ上に９メガバイトより大きいメモリをもって生産されなかった。
【０１９４】
本発明において、余分な処理レイヤ３００５を取り入れることで、ＤＰＬＰ３０００は、１２メガバイト以上のメモリを有して生産できる。余分な処理レイヤ３００５を取り入れることは、大きなメモリのチップ生産を可能にする。これは、メモリブロックのセットが悪いと、チップ全体を捨てるより、破損メモリユニットが見つかった分散処理レイヤは利用しないで、他の処理レイヤが代わりに利用できるためである。マルチ処理レイヤの拡張性の本質は、余分なものを可能にし、よって、高い生産収率を実現する。
【０１９５】
一つの実施の形態において、ＤＰＬＰ３０００は、ビデオエンコード処理レイヤ１０５とビデオデコード処理レイヤ１０５からなる。他の実施の形態において、ＤＰＬＰ３０００は、ビデオエンコード処理レイヤ１０５、グラフィック処理レイヤ１０５、及びビデオデコード処理レイヤ１０５からなる。他の実施の形態において、ＤＰＬＰ３０００は、ビデオエンコード処理レイヤ１０５、グラフィック処理レイヤ１０５、ポスト処理レイヤ１０５、及びビデオデコード処理レイヤ１０５からなる。他の実施の形態において、インターフェース１６０、１９０は、ＤＤＲ、メモリ、様々なビデオ入力、様々な音声入力、イーサネット、ＰＣＩ Ｅ、ＥＭＡＣ、ＰＩＯ、ＵＳＢ、及び、当該者に既知の他の任意のデータ入力からなる。
【０１９６】
ビデオ処理ユニット
一つの実施の形態において、図３０のレイヤとして図示したビデオ処理ユニットは、データとプログラムメモリと通信しているＰＵの少なくとも１つのレイヤを有する。好ましい実施の形態は、３つのレイヤを有する。各レイヤは、次の１以上の個別 のＰＵを有する：動き推定 （ＭＥ）、離散コサイン変換（ＤＣＴ）、量子化 （ＱＴ）、 逆離散コサイン変換（ＩＤＣＴ）、逆量子化（ＩＱＴ）, de-blockingフィルタ（ＤＢＦ）、動き補正（ＭＣ）、及び算術符号化（ＣＡＢＡＣ）。
【０１９７】
ＣＡＢＡＣは、コーディングの例のみで、本発明は、ＶＬＣコーディング、ＣＡＶＬＣコーディング、又はコーディングの他のフォームを利用して行なわれることが明らかである。一つの実施の形態において、各レイヤは、２つの動き推定ＰＵを有する上述の全てのＰＵを有する。他の実施の形態において、ビデオエンコード処理ユニットは、各レイヤが２つの動き推定ＰＵを有する上述の全てのＰＵを有する、３つのレイヤから構成される。上述のＰＵは、ハード・ワイヤード・ユニット又はアプリケーション特定ＤＳＰとして実装されることができる。ＤＣＴ、ＱＴ、ＩＤＣＴ、ＩＱＴ、及びＤＢＦは、ハード・ワイヤード・ブロックであることが好ましく、これらの機能は、実質的に１つの標準から他へ可変しないためである。
【０１９８】
他の実施の形態において、図３０にレイヤとして図示したビデオデコーディング処理ユニットは、データとプログラムメモリと通信しているＰＵの３レイヤを有する。各レイヤは、次のＰＵを有する：逆離散コサイン変換（ＩＤＣＴ）、逆量子化（ＩＱＴ）、de-blockingフィルタ（ＤＢＦ）、動き補正（ＭＣ）、及び算術符号化 （ＣＡＢＡＣ）。上述のＰＵは、ハード・ワイヤード・ユニット又はアプリケーション特定ＤＳＰとして実装できる。ＩＤＣＴ、ＩＱＴ、及びＤＢＦはハード・ワイヤード・ブロックであることが好ましい。その理由は、これらの機能は、実質的に、１つの標準から他へ変換することがないためである。ＣＡＢＡＣとＭＣ  ＰＵは、それぞれ算術符号化と動き補正を行う特定機能が実行されている、専用の及びフルプログラム可能なDSPである。
【０１９９】
ＭＥ  ＰＵは、ＶＬＩＷ命令セットを有するデータパス集中型DSPである。ＭＥ  ＰＵは、一つの参照フレーム上にクオーター・ピクセル解像度で 完全な動作検索を行うことができる。２つのＭＥ ＰＵが平行に動作する実施の形態において、チップは、固定ウインドウサイズと可変マクロブロックサイズを有する２つのレフェレンスフレーム上にフル検索を行うことができる。
【０２００】
ＭＣ  ＰＵは、エンコーディング処理の再構築フェーズ中に動作補正をするＭＥ  ＰＵの簡易バージョンである。ＭＣの出力は、戻ってメモリに格納され、次のフレーム時の参照フレームとして利用される。ＭＣ  ＰＵの制御ユニットは、ＭＥと同様であるが、命令セットのサブセットのみをサポートする。これは、セルカウントと設計の複雑さを減少させる。
【０２０１】
ＣＡＢＡＣは、違う種類のエントロピー・コーディングをすることができる他のＤＳＰである。
これらの処理ユニットに追加して、各レイヤは、外部メモリとプログラムデータメモリとの間にデータを移動させるために、レイヤ制御エンジンと通信するインターフェースを有する。一つの実施の形態において、４つのインターフェース（ＭＥ１  ＩＦ、ＭＥ２  ＩＦ、ＭＣ ＩＦ、及びＣＡＢＡＣ  ＩＦ）がある。任意のタスクをスケジュールする前に、制御エンジンは、データを外部メモリからこれの内部データメモリへ解決及び転送するために、対応するインターフェースを要求することでデータフェッチを初期化する。インターフェースによって生成された要求は、最初に、初期化器の一つに保証を発行するラウンドロビン・アービターを通して、解決される。ワイニングするインターフェースは、最終的に、メインＤＭＡを利用してデータを、レイヤ制御エンジンによって表示されている方向に、移動させる。
【０２０２】
レイヤ制御エンジンは、フレームベースのメインエンコードステートマシンで実行しているＤＳＰからタスクを受信する。レイヤ制御エンジンの内部にタスクキューがある。メインＤＳＰが新しいタスクをスケジュールするごとに、最初は、キューのステータスフラグを見る。フルフラッグがセットされていない場合、新しいタスクをキューへプッシュする。他方では、レイヤ制御エンジンは、処理される任意タスクがキューにペンディングしているかを判定するために、エンプティフラッグをサンプルする。
【０２０３】
一つある場合、これをキューのトップからポップし、これを処理する。タスクは、外部メモリ内の参照及びカレントフレーム用にポインタについての情報を含む。レイヤ制御エンジンは、現在処理されているデータの各リージョン用にポインタを計算するためにこの情報を利用する。フェッチされたデータは、外部メモリ効率を改良するために通常は大量である。各大量データは、マルチマクロブロック用のデータを含む。データは、ピンポン式で各エンジンに接続された２つのメモリバンクの１つへ移動される。同様に、処理されたデータと再構築されたフレームは、ライトアウト方法でインターフェースとＤＭＡを利用して、メモリへ戻って格納される。
【０２０４】
一つの実施の形態において、ビデオ処理レイヤは、ビデオエンコーディングレイヤである。これは、ビデオ入力／出力ブロックから３３．３３ミリ秒間隔で周期ティックインターラプトを受信する。各インターラプトの応答に、これは、スケジューラを呼び出す。スケジューラが呼び出されたら、次のアクションが取られる。
１．参照とカレントフレームが格納されている外部メモリへのポインタを計算する。
２．実行コーデックの種類特有のパラメータを判定する。
３．任意の命令を発行する前、レイヤ制御エンジンがこれのフルフラッグを上げているかをスケジューラが判定する。無い場合は、これのキューにタスクをプッシュし、次のティックインターラプト用に待機する。
【０２０５】
処理されているキューに任意のタスクがペンディングされているかを判定するために、レイヤ制御エンジンは、エンプティフラッグをサンプルする。一つある場合、キューのトップからポップし、これを処理する。タスクは、外部メモリ内の参照及びカレントフレーム用にポインタについての情報を含む。レイヤ制御エンジンは、現在処理されているデータの各リージョン用に、及びフェッチされるデータサイズ用に、ポインタを計算するためにこの情報を利用する。対応する情報をこれの内部データメモリに保存する。フェッチされたデータは、外部メモリ効率を向上させるために、通常は多量である。あて先とソースアドレスを、方向ビットとデータのサイズに従って、ＭＥ  ＩＦへ書き込む。そして、スタートビットをセットする。データ転送の終了を待つことなく、他のエンジン用のペンディングのデータ転送要求を判定する。もしあると、上述のステップを繰り返す。
【０２０６】
ＭＥとＭＣ  ＰＵは、マクロブロックレベルで動作するので、レイヤ制御エンジンは、タスクを分割し、データと関連情報をそのレベルでＰＵへフィードする。外部メモリからフェッチされたデータは、マルチマクロブロックを含む。従って、レイヤ制御エンジンは、内部データメモリの現在のマクロブロックのロケーションのトラックをキープしなければならない。処理されるデータがデータメモリ内に存在するかを判定した後、スタートビットと、現在マクロブロックへのポインタを有するＰＵをセットオフする。処理を完了した後、ＰＵは、完了ビットをセットする。レイヤ制御エンジンは、完了ビットを読み込み、次のカレントマクロブロックをチェックする。もしこれが存在すると、エンジン用にタスクをスケジュールし、そうでなければ、最初に、正しいポインタでインターフェースを提供することで、新しいデータをフェッチする。
【０２０７】
他の実施の形態において、図４０に示すように、本発明のビデオ処理レイヤのブロックダイアグラムが図示されている。ビデオプロセッサは、動き推定プロセッサ４００１、ＤＣＴ/ＩＤＣＴプロセッサ４００２、コーディングプロセッサ４００３、量子化プロセッサ４００４、メモリ４００５、メディアスイッチ４００６、ＤＭＡ４００７及びＲＳＩＣスケジューラ４００８からなる。動作的に、動き推定プロセッサ４００１は、サブサンプルされた補間データの重複処理を回避及び、メモリトラヒックを減少させるのに利用される。動き推定と補正は、一時的圧縮機能であり、ストリーム内の同一ピクセルを削除して、オリジナルストリームの一時重複をなくする。高い計算要求の繰り返し機能があり、逆離散コサイン変換、逆量子化、及び動作補正等の集中的な再構築処理を含む。
【０２０８】
そして、ＤＣＴ/ＩＤＣＴプロセッサ４００２は、ビデオ上に２次元ＤＣＴを行い、ＤＣＴ計数のマトリックスへデータを変換することで、データの空間損失を取り除いた後、量子化プロセッサ４００４へ変換されたビデオを提供する。ＤＣＴマトリックス値は、参照フレームに対応するイントラフレームを表す。離散コサイン変換の後、たくさんの高周波コンポネント、及び実質的に全てのもっとも高周波のコンポネントは、ゼロへ近付く。高周波タームは、ドロップされる。残りのタームは、任意の適切な可変長圧縮、好ましくはＬＺ７７圧縮、によってコードされる。
【０２０９】
量子化プロセッサ４００４は、量子化スケールから選択されている変換された入力の各係数と一緒に、量子化ステップによって、変換された入力の値に各値を分割する。コーディングプロセッサ４００３は、量子化スケールを格納し、メディアスイッチ４００６は、スケジューリングとロードバランシングのタスクをハンドルし、これはマイクロコードされたハードウェアリアルタイムオペレーティングシステムであることが好ましい。ＤＭＡは、メモリのダイレクトアクセス、及びときどきプロセッサの支援無しで役立つ。
【０２１０】
図４１に示すように、本発明の動き推定プロセッサのブロックダイアグラムは図示されている。動き推定プロセッサ４１００は、処理素子４１０１、４１０２のアレー、データメモリ４１０３、４１０４、４１０５、４１０６、アドレス生成ユニット（ＡＧＵ）４１０７、及びデータバス４１０８からなる。データバス４１０８は、更に、レジスタファイル４１０９（１６＊３２）、アドレスレジスタ４１１０（１６*１４）、データレジスタポインタファイル４１１１、プログラム制御４１１２、命令発行と制御４１１３、及びプログラムメモリ４１１４に接続する。プレシフト４１１５とディジタル音声ブロードキャスティング（ＤＡＢ）４１１６は、レジスタファイル４１０９にも接続されている。ＤＡＢは、インターネット上の品質ビデオ用の標準フォーマットである。
【０２１１】
好ましくは２つの処理素子のアレー４１０１、４１０２は、レジスタファイル４１０９と、処理素子４１０１の第１アレイ、アドレス生成ユニット４１０７、処理素子４１０１、４１０２の第２アレイ、及びレジスタファイル４１０９を接続した専用データバス４１０８の間のバスを介してデータを交換する。プログラム制御４１１２は、プログラム全体のフローを組織し、残りのモジュールを一緒に束ねる。
【０２１２】
制御ユニットは、マイクロ・コーデッド・ステートマシンとして実装されていることが好ましい。プログラムメモリ４１１４と命令発行と制御レジスタ４１１３と同様に、プログラム制御４１１２は、マルチレベル・ネステッド・ループ制御、分散及びサブルーチン制御をサポートする。ＡＧＵ４１０７は、メモリからフェッチングオペランド用に必要な効率的アドレス計算を行う。一つのクロックサイクル内に２個の８ビットアドレスを生成でき、変更できる。
【０２１３】
アドレス生成オーバーヘッドを最小化するために、ＡＧＵは、アドレスを他のプロセッサリソースと並列に計算するために、整数演算を利用する。アドレスレジスタファイルは、１６*１４ビットレジスタから構成され、一時データレジスタ又はインダイレクトメモリポインタとして独立に振舞うように、それぞれが制御できる。レジスタ内の値は、メモリ内のデータから変更でき、結果は、アドレスＡＧＵ４１０７、及び命令発行と制御レジスタ４１１３からの固定値から計算される。
【０２１４】
図４２に示すように、上述の動き推定プロセッサの処理素子のメッシュ接続アレーは、図示されている。これは、命令コントローラによって発行された命令を実行する処理素子の８ｘ８ のメッシュ接続アレーを含む。これらのタスクのinherent fine-grain並列処理を利用して、ローレベル処理アルゴリズムのワイドクラスが効率的に実装できる。イメージ処理アルゴリズムの実行時、シングル処理素子は、イメージ内にシングルピクセルと関連付けられる。
【０２１５】
動作的に、各イメージは、フレームに分割され、そのフレームがブロックに分割され、ブロックは、処理素子のアレーのルミナンスとクロミナンス・ブロックから構成される。動き推定は、コーディングの効率用にルミナンス・ブロック上のみに行なわれる。カレントフレームの各ルミナンス・ブロックは、データメモリとレジスタファイルのヘルプで、参照フレームのサーチエリアのポテンシャル・ブロックに対してマッチされる。これらのポテンシャル・ブロックは、オリジナルブロックのバージョンで単に置き換えられる。
【０２１６】
最適（最小のひずみ、例えば、最もマッチされた。）のポテンシャル・ブロックは、見つかり、そして、これの置き換え （動作ベクタ）は、レコードされ、入力フレームは、予測された参照フレームから差し引かれる。従って、動作ベクタと結果エラーは、オリジナルルミナンス・ブロックの代わりに伝送されることができ、よって、インターフレーム重複は取り除かれ、データ圧縮が達成される。受信端では、デコーダは、受信したデータからフレーム差異信号を構築し、再構築された参照フレームにこれが追加される。合計がカレントフレームの正確な複製を与える。良い予測は、最小のエラー信号、従って伝送ビットレートである。
【０２１７】
３ステップサーチ、２Ｄ対数サーチ、４−ＴＳＳ、直行サーチ、クロスサーチ、エグゾースティブ・サーチ、ダイアモンド・サーチ、及び新３ステップサーチを含む、任意の適切なブロック・マッチング・アルゴリズムが利用である。
インターフレーム重複がいったん取り除かれると、離散コサイン変換(ＤＣＴ)、重り付け及びアダプティブ量子化の組み合わせを利用して、フレーム差異は、空間重複を取り除きするために処理される。
【０２１８】
図４３に示すように、本発明のＤＣＴ／ＩＤＣＴプロセッサのブロックダイアグラムは図示されている。ＤＣＴ／ＩＤＣＴプロセッサ４３００は、アドレス生成ユニット４３０２とレジスタファイル４３０３へ接続されたデータメモリ４３０１からなる。レジスタファイル４３０３は、アッダ４３０７−４３１０へ更に伝送する、複数の積和演算（ＭＡＣ）ユニット４３０４、４３０５へこれのデータを出力する。プログラム制御４３１１、プログラムメモリ４３１２と命令発行と制御４３１３ユニットは、相互接続されている。アドレスレジスタ４３１４と命令発行と制御ユニット４３１３は、それらの出力をレジスタファイル４３０３へ転送する。
【０２１９】
データメモリ４３０１は、一般的に、全てのレジスタメモリと連携し、レジスタファイル４３０３を介して、アドレスされた及び選択されたデータ値をＭＡＣ４３０４−４３０７及びアッダ４３０８−４３１１へ提供する。レジスタファイル４３０３は、レジスタメモリの１つからデータを選択するために、メモリ４３０１へアクセスする。メモリから選択されたデータは、DCT用にバタフライ計算を行うために、ＭＡＣ４３０４?４３０７とアッダの両方へ提供する。そのようなバタフライ計算は、アッダをデータがバイパスするＩＤＣＴオペレーション用にフロントエンドで行なわれない。
【０２２０】
ビットレートを減少させるために、８＊８ DCT (離散コサイン変換)は、量子化用に、ブロックを周波数ドメインへ変換するのに利用される。８＊８ DCTブロック内の第１計数（０周波数）は、ＤＣ係数と呼ばれ、ブロック内の残りの６３ DCT係数は、ＡＣ係数と呼ばれる。ＤＣＴ係数のブロックは、量子化され、１−Ｄシーケンスへスキャンされ、ＬＺ７７圧縮を利用してコードされる。動き補正（ＭＣ）に含まれる予測コーディングのため、フィードバックループ用に逆量子化とＩＤＣＴは必要である。ブロックは、一般的にＶＬＣ、ＣＡＶＬＣ、又はＣＡＢＡＣでコードされる。４ｘ４ＤＣＴは、また、利用されることが可能である。
【０２２１】
レジスタファイルの出力は、４つ及び似ているＭＡＣ（ＭＡＣ０、ＭＡＣ１、ＭＡＣ２、ＭＡＣ３）のそれぞれへデータ値を提供する。ＭＡＣの出力は、レジスタファイルの入力へ提供されるロジック選択用に提供される。選択ロジックは、また、４個のadder４３０８−４３１１の入力に結合された出力を有する。４アッダの出力は、データ値をレジスタファイル４３０３へ提供するためのバスへ結合される。
【０２２２】
レジスタファイル４３０３の選択ロジックは、プロセッサによって制御され、ＩＤＣＴオペレーション中、ＭＡＣ４３０４ −４３０７からのデータ値を４個のadder４３０８ −４３１１へ提供し、ＤＣＴ、量子化、及び逆量子化オペレーション中、データ値を直接バスへ提供する。ＩＤＣＴオペレーションのために、対応するデータバイトは、メモリ４３０１へ戻って提供される前に、バタフライ計算を行うために、４個のadderへ提供される。データの特定フローと機能は、プロセッサによって制御されるように、行なわれている特定オペレーションに依存して行なわれる。プロセッサは、全てが同じＭＡＣ４３０４−４３０７を利用するＤＣＴ、量子化、逆量子化、及びＩＤＣＴオペレーションを行う。
【０２２３】
グラフィック及びビデオ圧縮
ビデオは、動作の錯覚を与えるように、１つの１つが表示される画像のシーケンスとして見られることができ。ＰＡＬテレビ（７２０ｘ５７６の解像度）上に表示されるビデオのため、色（赤、青、及び緑）を描くために３バイトが利用されるとき、各フレームは４１４７２０ピクセルで、そしてフレームサイズは１．２ＭＢである。もし、表示速度が３０ｆｐｓ（フレーム毎秒）のとき、そして、バンド幅は毎秒３５．６ＭＢ要求される。そのような膨大なバンド幅の要求は、ビデオ分配用のディジタルネットワークに障害となる。従って、大容量のビデオを格納及び伝送するのに、圧縮ソリューションが必要である。
【０２２４】
インターネットを利用したストリーミングメディアアプリケーション用の消費者用電化製品及び需要のアナログ・ディジタル変換は、ビデオ圧縮ソリューションの成長を後押ししている。エンコーディングとデコーディングソリューションは、現在、ＭＰＥＧ−１、ＭＰＥＧ−２及びＭＰＥＧ−４用のソフトウェア又はハードウェア内に提供されている。現在、ディジタルイメージ及びディジタルビデオは、ハードディスク用の容量をセーブ、及び伝送を早くするために、いつも圧縮されている。一般的には、圧縮率の範囲は、１０〜１００である。解像度６４０ｘ４８０ピクセルの非圧縮イメージは、約６００ＫＢ（ピクセル当たり２バイト）である。２５回圧縮したイメージは、約２５ＫＢのファイルを作成する。
【０２２５】
選択されるたくさんの圧縮標準がある。静止画標準を利用しているカメラは、ネットワークにシングルイメージを送信する。ビデオ標準を利用しているカメラは、変更されたデータの静止画を送信する。このように、背景の変更無しのデータは、イメージごとに送信しない。リフレッシュレートは、秒当たりのフレームｆｐｓで参照される。ポピュラーの静止画とビデオコーディング圧縮標準は、ＪＰＥＧである。ＪＰＥＧは、「ナチュラル」現実の世界の場面のフルカラー又はグレイスケーレドイメージ、の圧縮用にデザインされている。
【０２２６】
アニメ又は線画等の非現実的なイメージには、効果的ではない。ＪＰＥＧは、白黒（ピクセル当たり１ビット）イメージ又は動画の圧縮をハンドルしない。動画シーケンスの各フレームへのＪＰＥＧ静止画圧縮を応用している動画用の圧縮技術は、動画ＪＰＥＧという。ＪＰＥＧ―２０００は、０．１ビット／ピクセルまでの適当な品質を与えるが、品質は、約０．４ビット／ピクセル以下に劇的に落ちる。これは、ＪＰＥＧではなく、ウェーブレットに基づいた技術である。
【０２２７】
ウェーブレット圧縮標準は、少量のデータの含むイメージ用に利用することができる。よって、イメージは、最高品質のものではない。ウェーブレットは、標準化されていなくて、特別のソフトウェアを要求する。GIFは、LZWアルゴリズムで圧縮した標準ディジタルイメージである。ＧＩＦは、ロゴ等の複雑ではないイメージのための良い標準である。圧縮率が限定されているので、カメラでキャプチャされたイメージには、推奨されない。
【０２２８】
Ｈ．２６１、Ｈ．２６３、Ｈ．３２１、及びＨ．３２４は、ビデオコンフェレンス用にデザインされた標準であり、時々、ネットワークカメラ用に利用されている。この標準は、高いフレームレートを与えるが、イメージが大きな移動物体を含むとき、とても低イメージ品質を与える。イメージ解像度は、一般的に３５２ｘ２８８ピクセルまでである。解像度がとても限定されているので、新しい製品は、この標準を利用しない。
【０２２９】
ＭＰＥＧ１は、ビデオ用の標準である。変化が可能である間にＭＰＥＧ１が利用されているとき、一般的に３５２ｘ２４０ピクセル、３０ｆｐｓ（ＮＴＳＣ）又は３５２ｘ２８８ピクセル、２５ｆｐｓ（ＰＡＬ）のパフォーマンスを与える。ＭＰＥＧ２は、７２０ｘ４８０ピクセル、３０ｆｐｓ（ＮＴＳＣ）又は７２０ｘ５７６ピクセル、２５ｆｐｓ（ＰＡＬ）のパフォーマンスを得る。ＭＰＥＧ２は、大量の計算能力を要求する。ＭＰＥＧ３は、一般的に、最大レート毎秒１．８６ Ｍｂｉｔの３５２ｘ２８８ピクセル、３０ｆｐｓの解像度を有する。ＭＰＥＧ４は、前のＭＰＥＧ−１及びＭＰＥＧ−２アルゴリズムを拡張し、スピーチ及びビデオ、フラクタル圧縮、コンピュータ可視化及び人口知能ベースのイメージ処理技術を合成したビデオ圧縮標準である。
【０２３０】
図３１に図示したように、ビデオ、テキスト、及びグラフィックデータの統合処理用に応用可能な統合チップの他の実施の形態は図示されている。チップは、ＶＧＡコントローラ３１０１、バッファ０  ３１０２とバッファ１  ３１０３、構成と制御レジスタ３１０４、ＤＭＡチャネル０（３１０５）、ＤＭＡチャネル１（３１０６）、入力バッファの圧縮器として動作するＳＲＡＭ０ （３１０７）とＳＲＡＭ１（３１０８）、ＫＦＩＤと雑音フィルタ３１０９、ＬＺ７７圧縮器３１１０、量子化器３１１１、出力バッファコントロール３１１２、出力バッファ３１１５の圧縮器として動作するＳＲＡＭ２（３１１３）、ＳＲＡＭ３（３１１４）、ＭＩＰＳプロセッサ３１１６とＡＬＵ ３１１７からなる。ＶＧＡコントローラは、１２−１２．５ＭＨｚの範囲で動作することが好ましい。
【０２３１】
図３２に示すように、本発明の例示のシングルチップアーキテクチャの詳細なデータフローが図示されている。ＲＧＢビデオ３２０１は、ＶＧＡコントローラ３２０２及びカラー変換器３２０３によって受信される。そして、データは、一時ストレージ用にバッファ３２０６へ送信され、少なくともデータｐｏｒｔｉｏｎは、ダイレクトメモリアクセス（ＤＭＡ）チャネル０（３２０７）及び／又は  ＤＭＡチャネル１（３２０８）へ高速で、好ましくはマイクロプロセッサの介入無しで、パスされる。
【０２３２】
そして、ＳＤＲＡＭコントローラ３２０９は、少なくともデータのｐｏｒｔｉｏｎの転送をスケジュールし、ＳＲＡＭ０  ３２１０及び／又はＳＲＡＭ１（３２１１）へダイレクトし及び／又はガイドする。ＳＲＡＭ０（３２１０）及びＳＲＡＭ１（３２１１）の両方は、圧縮器用の入力バッファとして動作する。ＳＲＡＭは、そして、圧縮される前に、入力ビデオ内の不要な信号と雑音を減少させるＫＦＤ（Kernel Fisher Discriminant）及び雑音フィルタ３２１２へデータを転送する。
【０２３３】
不要な信号がいったん取り除かれると、データは、そして、圧縮ユニット、好ましくはＬＺ７７に基づいた圧縮ユニット３２１４、と連結しているコンテント・アドレッサブル・メモリ（ＣＡＭ）３２１３へ転送される。適当なアルゴリズム、好ましくＬＺ７７アルゴリズム、を利用して、ＣＡＭ３２１３及び圧縮ユニット３２１４は、ビデオデータを圧縮する。量子化器３２１５は、適当な電圧レベルに従って、圧縮データを量子化する。そして、データは、出力バッファコントロール３２１６に一時的に格納され、ＳＲＡＭ３２１７を介してＤＭＡ３２０８へ転送される。そして、ＤＭＡ３２０８は、量子化された圧縮データをＳＤＲＡＭコントローラ３２０９へ伝送する。そして、ＳＤＲＡＭコントローラ３２０９は、データをＳＲＡＭ３２１７及びＭＩＰＳプロセッサ３２１９へ転送する。
【０２３４】
図３３に図示したように、上述のチップアーキテクチャ内のビデオの圧縮中に達成された複数のステートの１つの実施の形態をフローチャートに図示している。ビデオは、適当なＡ２Ｄ（アナログ・ディジタル変換器）を利用してアナログからディジタルフレームへ変換される（３３０１）。一端、フレームが使用可能になると（３３０２）、ＶＧＡはフレームをキャプチャし（３３０３）、及びカラー空間を、ＶＧＡにアタッチされたカラー変換器を介して、変換する（３３０４）。キャプチャされたフレームは、ＳＤＲＡＭへ書き込まれる（３３０５）。
【０２３５】
前に格納されたフレームと、カレントフレームは、ＳＤＲＡＭから読み出され（３３０６）、それらの差異が計算された後、それらの雑音を削除し（３３０７）、それらは、圧縮用に準備できる。LZ７７圧縮器は、フレームを圧縮し（３３０８）、圧縮されたフレームは、そして、量子化器で量子化される（３３０９）。量子化された圧縮フレームは、適当なレンダリング又は伝送用に取り出される（３３１１）ことが可能なように、ＳＤＲＡＭへ最終的に書き込まれる（３３１０）。
【０２３６】
図３４に示すように、ＬＺＱアルゴリズムの１つの実施の形態のブロックダイアグラムが図示されている。ＬＺＱ圧縮アルゴリズムは、入力ビデオデータ３４０４、キーフレーム差異ブロック３４０１、及び、LZ７７圧縮エンジンブロックの出力は次の圧縮エンジンブロックに送られている複数の圧縮エンジンブロック３４０２、３４０３からなる。圧縮されたデータ３４０５は、ｎ番目の圧縮エンジンブロックから出力される。
【０２３７】
動作的に、キーフレーム差異ブロックは、ビデオデータ３４０４を受信する。ビデオデータは、既知の適当なテクニックを利用して、フレームへ変換される。キーフレーム差異ブロック３４０１は、キーフレーム「Ｎ」の頻度を定義する。第１０、２０、３０等の番毎に、キーフレーとして見られることが望ましい。一端、キーフレームが定義されると、これは、LZ７７圧縮エンジン３４０２、３４０３を利用して圧縮される。一般的に、圧縮は、時間ベクタ及びモーションベクター内の操作情報に基づく。ビデオ圧縮は、時間及び／又はモーションベクターの重複の削除に基づいている。第１フレームの圧縮された後、圧縮されたデータ３４０５は、ネットワークへ送信される。受信端又は受信機において、圧縮されたデータは、デコードされ、レンダリング可能にされる。
【０２３８】
図３５に示すように、ＬＺＱアルゴリズムの１つの実施の形態のキーフレーム差異エンコーダのブロックダイアグラムが図示されている。キーフレーム差異エンコーダ３５００は、シングルユニットでフレームを遅延する遅延ユニット３５０１、多重器３５０２、サマー３５０３、キーフレームカウンタ３５０４、及び出力ポート３５０５からなる。ビデオフレーム３５０６のキーフレーム（ｆｋ）は、多重器３５０２へその一つの入力として直接渡され、前フレームは、多重器３５０２への第２の入力として動作する。前フレームは、遅延ユニット３５０１を利用した遅延後にビデオフレーム３５０６から取得される。
【０２３９】
例えば、多重器３５０２への１つの入力が（ｆｋ）のとき、他の入力は(fk-(fk ?1))である。ここで、fk は、多重器３５０２によってすでに受信された現在のキーフレームを意味する。fk-1は、すでに出て行った前フレームを意味する。バスは、キーフレームと遅延ユニットをサマー３５０３へ伝送する。遅延フレーム（fk-1）は、キーフレーム（fk）から差し引かれて、(fk - (fk -1)になり、多重器３５０２の第２入力として送信される。第１入力(fk) 及び(fk - (fk -1))は、キーフレームカウンタ３５０４の制御のもとで多重器に送り込まれる。両方の入力用に、多重器３５０７は、圧縮用にＬＺ７７エンジン３５０７へ伝送されるシングル出力を提供する。
【０２４０】
図３６に示すように、本発明の１つの実施の形態のキーフレーム差異デコーダブロックのブロックダイアグラムが図示されている。キーフレーム差異デコーダブロック３６００は、多重器３６０１、キーフレームカウンタ３６０２、遅延ユニット３６０３、及びサマー３６０４からなる。キーフレーム差異デコーダブロック３６００は、データ３６０６をＬＺ７７圧縮エンジンから受信し、ビデオのデコードされたフレーム３６０５を出力する。
【０２４１】
動作的に、圧縮されたデータのキーフレームは、多重器３６０１に、第１入力として送り込まれ、第２入力は、フィードバックループによって形成される。フィードバックループは、遅延ユニット３６０３から構成される。遅延ユニット３６０３は、デコードされたフレーム３６０５を取り、サマー３６０４でキーフレーム３６０６とともに差異フレームを形成するために、これを１フレームユニットで遅延する。サマー３６０４の出力は、多重器への第２入力として動作する。キーフレームカウンタ３６０２の制御のもとで、多重器３６０１へ送り込まれる第１入力と第２入力は、デコードされたフレームの結果である。
【０２４２】
ロスレスアルゴリズムの他の実施の形態は、圧縮に含まれる計算量を低減するためのものである。これは、それらと連携したモーションを有するそれらのラインのみを送信することで、達成される。この場合、前のフレームからのラインは、現在のフレームの同じ番号のラインと比較され、少なくとも１ピクセルの異なる値を含むラインのみが、ＬＺ７７の１以上ステージを利用してコードされる。
【０２４３】
図３７に示すように、修正ＬＺＱアルゴリズムのブロックダイアグラムが図示されている。ビデオデータ３７０１は、キーライン差異ブロック３７０２へ送り込まれる。キーライン差異ブロック３７０２によって処理された後、これは、ＬＺ７７圧縮エンジン３７０３へ伝送され、差異データは、ＬＺ７７圧縮エンジン３７０３、３７０４の連続ブロックを通してパスされ、よって、圧縮データ３７０５を出力する。
【０２４４】
図３８に示すように、本発明の例示の実施の形態に利用されたキーライン差異ブロックのブロックダイアグラムが図示されている。キーライン差異ブロック３８００は、メディア入力ポート３８０１、遅延ユニット３８０２、サマー３８０３、及び合計・比較ブロック合計・比較器３８０４からなる。入力ポート３８０１は、カメラ又はライブ映像によってキャプチャされたビデオデータを受信する。ビデオデータのカレントフレームは、シングルフレーム遅延ユニットfk-1によって遅延される。サマー３８０３でのカレントフレームとともに遅延されたフレームfk-1は、差異フレームを形成する。差異フレームは、そして、合計・比較ブロック３８０４へ入力される。差異フレームの合計は、比較され、これがゼロより大きい場合、Kline３８０５は合計・比較ブロック３８０４から出力される。Kline出力は、ＬＺ７７連続圧縮エンジンに到着し、そして、圧縮される。
【０２４５】
図３９に示すように、本発明に利用された圧縮／解凍アーキテクチャが図示されている。データの入力ストリームを前に受信した及び処理したデータと、ＣＡＭメモリ内の格納されたものとして比較するために、及び、履歴がフルになった場合、最も古いデータを放棄するために、ＬＺＱアルゴリズムの実装は、コンテント・アドレッサブル・メモリ（ＣＡＭ）を利用する。
【０２４６】
入力データバッファ３９０１内に格納されたデータは、ＣＡＭアレー３９０２内のカレントエントリと比較される。ＣＡＭアレー３９０３は、それぞれレジスタ及び比較器を有する複数のセクション（Ｎ＋１セクション）を含む。各ＣＡＭアレーレジスタは、１バイトのデータを格納し、有効又は現在のデータバイトがＣＡＭアレーレジスタに格納されたかを示すためにシングルセルを含む。対応するＣＡＭアレーレジスタに格納されたデータバイトが、入力データバッファ３９０１内に格納されたデータバイトとマッチしたとき、各比較器は、アクティブ信号を生成する。
一般的に、マッチが見つかったとき、それらは、コードワードで置き換えられ、複数存在する場合は、同じコードワードが応用される。もっと高い圧縮レートは、検索時に長いストリングが見つかったとき、それらが短いデータ量のコードワードで置き換えられたとき、達成される。
【０２４７】
ＣＡＭアレーに結合されたものは、ＣＡＭアレーの各セクション用に１つのライト選択ブロックを有するライト選択シフトレジスタ（ＷＳＳＲ）３９０４である。シングルライトブロックは、残りのセルは全て０値にセットされている間に、１の値にセットされる。１値を有するセルである、アクティブ・ライト・選択・セルは、入力データバッファ３９０１に現在ホールドされているデータバイトを、ＣＡＭアレーのどのセクションが格納するのに利用されるかを選択する。ＷＳＳＲ３９０４は、新しいデータバイトが入力データバッファ３９０１に入るごとに、１つのセルでシフトされる。選択するシフトレジスタ３９０４の利用は、ＣＡＭアレー内の固定アドレッシングの利用を可能にする。
【０２４８】
マッチング処理は、プライマリー・セレクターORゲートの出力に、０がでるまでに継続する。０は、マッチが残っていないことを示す。これが起きるとき、前の最後のバイトに存在する全てのマッチングストリングのエンドポイントをマークする値は、第２セレクタセルに格納されたままである。アドレス生成器は、マッチングストリングの１つのロケーションを見つけ出し、そのアドレスを生成する。アドレス生成器は、第２セレクタの１以上のセルからの信号を利用して、アドレスを生成するように簡単に設計されたものである。マッチングストリングの長さは、長さカウンタで可能である。
【０２４９】
長さカウンタがマッチングストリングの長さを提供する際、アドレス生成器は、マッチングストリングの終端を含むＣＡＭアレーセクション用の固定アドレスを生成する。マッチングストリングのスタートアドレスと長さは、そして、計算され、コードされ、圧縮されたもの又はストリングトークンとして出力される。
【０２５０】
様々なサイズのＣＡＭアレーの評価は、確認されている。統合回路デバイスの消費電力及びシリコンエリア等のファクターの点から見て、約５１２バイトの履歴サイズは、効率的な圧縮とコストとの間の理想的なトレードオフを提供する。
【０２５１】
ポストプロセッサ
図４４に示すように、本発明のポストプロセッサのブロックダイアグラムが図示されている。ポストプロセッサ４４００は、アドレス生成ユニット４４０２とレジスタファイル４４０３に接続されているデータメモリ４４０１からなる。レジスタファイル４４０３は、シフター４４０７へそれらのデータを出力する。ロジカルユニット４４０８よ複数の積和演算（ＭＡＣ）ユニット４４０４、４４０５、４４０６は、adder0４４０８とadder1４４０９へデータを更に伝送する。プログラム制御４４１１、プログラムメモリ４４１２及び命令発行及び制御ユニット４４１３は、相互接続されている。アドレスレジスタ４４１４と命令発行及び制御ユニット４４１３は、それらの出力をレジスタファイル４４０３へ伝送する。積和演算ユニットは１７ビットであり、４０ビットまで蓄積できる。
【０２５２】
圧縮データが動き推定プロセッサ、ＤＣＴ／ＩＤＣＴプロセッサ、及びポストプロセッサを通ってパスすると、ポストプロセッサからの出力は、イメージデータのリアルタイム・エラー・リカバリの対象となる。エッジ・マッチング、セレクティブ空間的補間、及びサイズマッチングを含む適当なテクニックは、レンダリングされるイメージの質を高めるのに利用できる。
【０２５３】
１つの実施の形態において、新規エラー隠蔽アプローチは、ビデオコーデックに基づいた任意のブロック用のポストプロセッシングに利用されている。データがインターネット又は無線チャネルで伝送されるとき、データロスはとけられないことは認識されている。ビデオのI及びPフラームにエラーが起き、重要なビジュアル・アノイアンスの結果をもたらす。
【０２５４】
Iフレームエラー隠匿用に、空間情報は、エラー隠匿に２つステップの処理で利用される：エッジリカバリに続くセレクティブ空間的補間。Ｐフレームのエラー隠匿用に、空間的及び一時的情報は、２つの方法で利用される：サイドマッチングによる線形補間及びモーションベクターリカバリ。
【０２５５】
従来、Ｉフレーム隠匿は、隣接Ｍｂｉｔｓ（ＭＢ）からの各ロスピクセルを補間することで行なわれている。例えば、図２８に示すように、ピクセルＰは、複数のピクセル値から補間されている。Ｐは、Ｐとｐｎの間に距離ｄｎを有する。ｎは１から始まる整数である。ピクセルＰの補間は、次の式を利用して行なわれることができる。
P=[p1*(17-d1)+p2*(17-d2)+p3*(17-d3)+p4*(17-d4)]/34
ロスされたＭＢが高い周波数のコンポネントを含むとき、この処理は、不鮮明なイメージをもたらす。凸集合へのファジー理論の推理と予測は、ロストMBの回復に助かるかも知れないが、これらのアプローチは、リアルタイムアプリケーションの計算コストが高い。
【０２５６】
本発明は、ロスとＭＢのエッジリカバリを利用し、Ｉフレームエラー隠蔽をアドレスするために、セレクティブ空間的補間が続く。一つの実施の形態において、マルチ方向フィルタリングは、８選択から１方向に、ロスとＭＢの方向を分類するのに利用される。周囲のピクセルは、バイナリパターンへ変換される。バイナリパターンの中で点移転を接続することで、１以上のエッジが取り出される。ロストＭＢは、エッジ方向に沿って方向的挿入される。
【０２５７】
もっと詳しくは、図２９ａに示すように、破損ＭＢ２９０１は、正しくデコードされたＭＢ２９０５によって囲まれている。これらの境界ピクセル２９０５の検出は、エッジ２９０８を識別することで行なわれる。エッジポイント２９１０は、予め決められた閾値上のグラジエントのローカル最適値を計算して識別される。測定で類似のエッジポイント２９１０は、グラジエント及びルミネセンスの点から見て、識別され、マッチされる。図２９ｂに示すように、マッチされたエッジポイントは、そして、一緒にリンクされ（２９１１）、よって、MBを、それぞれがスムースエリアとしてモデル化でき、セレクティブ空間的補間によって隠れた領域に分離する。
【０２５８】
エッジリカバリが行なわれた後、図２９ｃに示すように、絶縁エッジポイント２９１２は、識別され、境界に達するまで破損ＭＢへ拡張される（２９０９）。ピクセル２９１５は、エッジ２９１１及び拡張２９０９によって定義される３つの領域の１つから選ばれる。ピクセル２９１５から、境界ピクセルが、この場合、４つの参照ピクセル２９１８を生成する各エッジ方向に見つかる。同じ領域のピクセル２９１５としての２つのピクセル２９１８は識別される。ピクセル２９１８は、ピクセル２９１５を次の式で計算するのに利用される。
2008527545.tif 000002
ここで、p1及びp2は２つのピクセル２９１８で、d1及びd2は、それぞれp1とp及びp2とp間の距離である。
【０２５９】
Ｐフレームエラー隠蔽に関しては、モーションベクターとコーディングモードリカバリは、同じ破損ＭＢロケーションでの前のフレームの値を判定、及び破損ＭＢ値を前のフレームの値で置換するによって行なわれる。破損ＭＢの回りのこのエリアからのモーションベクターは、判定され、その平均が取れる。破損ＭＢ値を、破損ＭＢの回りのエリアからのメディアンモーションベクターで置換する。境界マッチングを利用して、モーションベクターが再推定される。破損ＭＢは、更に、小さなリージョンへ分割され、各リージョンのモーションベクターは判定されることが好ましい。例えば、一つの実施の形態において、上、下、右、及び左のピクセルの値は、それぞれpu、pl、pr、及びpltであり、破損ピクセルＰに対して、Ｐを線形補間するのに利用される。
2008527545.tif 000003
2008527545.tif 000004
【０２６０】
モーションベクターリカバリを行うために、サイドマッチングも利用できる。一つの実施の形態において、同じ破損ＭＢロケーションでの前のフレームの値は、決定される。破損ＭＢ値は、前のフレームのその値で置換される。破損ＭＢロケーションを各込む候補サイドは、決定され、候補サイドからの平方二乗誤差が計算される。平方二乗誤差の最小値は、ベストマッチを表す。計算技術は当業者に明らかであり、上述のＩフレームエラー隠蔽及びＰフレームエラー隠蔽ステップをするのに、数式及びアプローチが要求される。
【０２６１】
本発明は、更に、メディアアプリケーション用に拡張可能及びモジュール式のソフトウェアアーキテクチャからなる。図４５に図示したように、ソフトウェアスタック４５００は、ハードウェアプラットフォーム４５０１、リアルタイムオペレーティングシステムとボードサポートパッケージ４５０３、リアルタイムオペレーティングシステム抽象化レイヤ４５０５、複数のインターフェース４０５７、マルチメディアライブラリ４５０９、及びマルチメディアアプリケーション４５１１からなる。
【０２６２】
本発明のソフトウェアシステムは、実行時のソフトウェアコンポネントの動的スワッピング、ノンサービスaffecting リモートソフトウェアアップグレード、 リモートデバッグと開発、低消費電力用に使用していないリソースのスリープ、フルプログラマビリティ、チップアップグレード用にＡＰＩレベルでのソフトウェア互換性、及び、先端統合開発環境を、提供することが好ましい。好ましくは、ソフトウェアリアルタイムオペレーティングシステムは、ハードウェア独立ＡＰＩ用に提供し、コール初期化についてのリソースの割り当てを行い、オンチップ及び外部メモリマネジメントを行い、システムパフォーマンスのパラメータ及び統計を集計し、プログラムフェッチ要求を最小化する。好ましくは、ハードウェアリアルタイムオペレーティングシステムは、全てのプログラム及びデータフェッチ要求の解決、フルプログラマビリティ、これのデータフローに従って異なるＰＵへのチャネルのルーチング、メモリへの外部及びローカルの同時転送、ＤＭＡチャネルのプログラム可能化、及びコンテクストスイッチングを提供する。
【０２６３】
本発明のシステムは、更に、次の特徴を有する統合開発環境を提供する。ハードウェアデバッグオプションにアクセスするためのポイントとクリックコントロールを有するグラフィカルユーザインターフェース、シングルデバッグ環境を利用したメディア適合プロセッサ用の組み立てコード開発、メディア適合プロセッサＤＳＰ用の統合コンパイラと最適化スイート、異なる組み立て最適化レベルの選択用のコンパイラオプションと最適化スイッチ、メディア適合プロセッサ用のアセンブラー／リンカー／ローダー、シミュレータハードウェア上のプロファイリング・サポート、メディア適合プロセッサを通してのシングルフレーム処理用のチャネルトレーシングの実現、Microsoft Visual C++ 6.0環境内での組み立てコードデバッグ、及び、Ｃ 呼び出し可能アセンブリサポートとパラメータ引渡しオプション。
【０２６４】
本発明は、特定の実施の形態について説明されたが、これらに限定されないことが明らかである。特に、本発明は、複数の標準でコードされたビデオ、音声、及びグラフィックデータを処理できる、拡張可能なモジューラ処理レイヤを有する統合チップアーキテクチャ、並びに、そのアーキテクチャを利用するデバイスに関する。
【図面の簡単な説明】
【０２６５】
【図１】図１は、分散処理レイヤプロセッサの実施の形態のブロックダイアグラムである。
【図２ａ】図２ａは、メディアゲートウェアイ用のハードウェアシステムアーキテクチャの第１の実施の形態のブロックダイアグラムである。
【図２ｂ】図２ｂは、メディアゲートウェア用のハードウェアシステムアーキテクチャの第２の実施の形態のブロックダイアグラムである。
【図３】図３は、ヘッダとユーザデータを有するパケットのダイアグラムである。
【図４】図４は、メディアゲートウェアイ用のハードウェアシステムアーキテクチャの第３の実施の形態のブロックダイアグラムである。
【図５】図５は、本発明のソフトウェアシステムの１つの論理分割のブロックダイアグラムである。
【図６】図６は、図５のソフトウェアシステムの第１の物理的な実施のブロックダイアグラムである。
【図７】図７は、図５のソフトウェアシステムの第２の物理的な実施のブロックダイアグラムである。
【図８】図８は、図５のソフトウェアシステムの第３の物理的な実施のブロックダイアグラムである。
【図９】図９は、本発明のハードウェアシステムのメディアエンジンコンポネントの第１の実施の形態のブロックダイアグラムである。
【図１０】図１０は、本発明のハードウェアシステムのメディアエンジンコンポネントの好ましい実施の形態のブロックダイアグラムである。
【図１０ａ】図１０ａは、図１０のメディアエンジンのメディアレイヤコンポネントの好ましいアーキテクチャのブロックダイアグラム表現である。
【０２６６】
【図１１】図１１は、第１の好ましい処理ユニットのブロックダイアグラム表現である。
【図１２】図１２は、第１の好ましい処理ユニットにより処理されたパイプライン処理の時間ベースの概念図である。
【図１３】図１３は、第２の好ましい処理ユニットのブロックダイアグラム表現である。
【図１３ａ】図１３ａは、第２の好ましい処理ユニットにより処理されたパイプライン処理の時間ベースの概念図である。
【図１３ｂ】図１３ｂは、第２の好ましい処理ユニットにより処理されたパイプライン処理の時間ベースの概念図である。
【図１４】図１４は、本発明のハードウェアシステムのパケットプロセッサコンポネントの好ましい実施の形態のブロックダイアグラム表現である。
【図１５】図１５は、本発明のハードウェアシステムのパケットプロセッサコンポネント内の、複数のネットワークインターフェースの１つの実施の形態の略図である。
【図１６】図１６は、本発明のハードウェアシステムのパケットプロセッサコンポネント用の、制御及び信号機能を容易にするために利用される複数のＰＣＩインターフェースのブロックダイアグラムである。
【図１７】図１７は、本発明のソフトウェアシステムのコンポネント間のデータ通信の第１の例示のフローダイアグラムである。
【図１７ａ】図１７ａは、本発明のソフトウェアシステムのコンポネント間のデータ通信の第２の例示のフローダイアグラムである。
【図１８】図１８は、本発明のソフトウェアシステムのメディア処理サブシステムを構成する好ましいコンポネントの概念図である。
【図１９】図１９は、本発明のソフトウェアシステムのパケット化処理サブシステムを構成する好ましいコンポネントの概念図である。
【図２０】図２０は、本発明のソフトウェアシステムの信号サブシステムを構成する好ましいコンポネントの概念図である。
【０２６７】
【図２１】図２１は、本発明のソフトウェアシステムの信号処理サブシステムを構成する好ましいコンポネントの概念図である。
【図２２】図２２は、物理ＤＳＰ上のホストアプリケーションの動作のブロックダイアグラムである。
【図２３】図２３は、仮想ＤＳＰ上のホストアプリケーションの動作のブロックダイアグラムである。
【図２４】図２４は、従来のメディア処理システムのブロックダイアグラムである。
【図２５】図２５は、本発明のメディア処理システムのブロックダイアグラムである。
【図２６】図２６は、ビデオ、テキスト、及びグラフィックデータの統合処理に応用できる、例示の統合チップアーキテクチャのブロックダイアグラムである。
【図２７】図２７は、本発明の新規デバイスの入出力の例を図示したブロックダイアグラムである。
【図２８】図２８は、他のピクセルで囲まれたピクセルを図示した従来技術のブロックダイアグラムである。
【図２９ａ】図２９ａは、エラー隠蔽を行う新規のプロセスを図示した図である。
【図２９ｂ】図２９ｂは、エラー隠蔽を行う新規のプロセスを図示した図である。
【図２９ｃ】図２９ｃは、エラー隠蔽を行う新規のプロセスを図示した図である。
【図３０】図３０は、本発明のメディアプロセッサの実施の形態のブロックダイアグラムである。
【０２６８】
【図３１】図３１は、本発明のメディアプロセッサの他の実施の形態のブロックダイアグラムである。
【図３２】図３２は、本発明のメディアプロセッサの他の実施の形態のブロックダイアグラムである。
【図３３】図３３は、例示のチップアーキテクチャにおいて、ビデオ圧縮中に実現された複数のステートの一つの実施の形態を示したフローチャートである。
【図３４】図３４は、ＬＺＱアルゴリズムの一つの実施の形態のブロックダイアグラムである。
【図３５】図３５は、ＬＺＱアルゴリズムの一つの実施の形態のキーフレーム差異エンコーダのブロックダイアグラムである。
【図３６】図３６は、本発明の一つの実施の形態のキーフレーム差異デコーダのブロックダイアグラムである。
【図３７】図３７は、修正ＬＺＱアルゴリズムのブロックダイアグラムである。
【図３８】図３８は、本発明の例示の実施の形態に利用された、キーライン差異ブロックのブロックダイアグラムである。
【図３９】図３９は、本発明の圧縮／解凍アーキテクチャの一つの実施の形態のブロックダイアグラムである。
【図４０】図４０は、本発明のビデオプロセッサの一つの実施の形態のブロックダイアグラムである。
【０２６９】
【図４１】図４１は、本発明の動き推定プロセッサの一つの実施の形態のブロックダイアグラムである。
【図４２】図４２は、上述の動き推定プロセッサの処理要素アレーの一つの実施の形態のダイアグラムである。
【図４３】図４３は、本発明のＤＣＴ／ＩＤＣＴプロセッサの一つの実施の形態のブロックダイアグラムである。
【図４４】図４４、本発明のポストプロセッサの一つの実施の形態のブロックダイアグラムである。
【図４５】図４５は、本発明のソフトウェアスタックの一つの実施の形態のブロックダイアグラムである。
【図１】
2008527545.tif 000005
【図２ａ】
2008527545.tif 000006
【図２ｂ】
2008527545.tif 000007
【図３】
2008527545.tif 000008
【図４】
2008527545.tif 000009
【図５】
2008527545.tif 000010
【図６】
2008527545.tif 000011
【図７】
2008527545.tif 000012
【図８】
2008527545.tif 000013
【図９】
2008527545.tif 000014
【図１０】
2008527545.tif 000015
【図１０ａ】
2008527545.tif 000016
【図１１】
2008527545.tif 000017
【図１２】
2008527545.tif 000018
【図１３】
2008527545.tif 000019
【図１３ａ】
2008527545.tif 000020
【図１３ｂ】
2008527545.tif 000021
【図１４】
2008527545.tif 000022
【図１５】
2008527545.tif 000023
【図１６】
2008527545.tif 000024
【図１７】
2008527545.tif 000025
【図１７ａ】
2008527545.tif 000026
【図１８】
2008527545.tif 000027
【図１９】
2008527545.tif 000028
【図２０】
2008527545.tif 000029
【図２１】
2008527545.tif 000030
【図２２】
2008527545.tif 000031
【図２３】
2008527545.tif 000032
【図２４】
2008527545.tif 000033
【図２５】
2008527545.tif 000034
【図２６】
2008527545.tif 000035
【図２７】
2008527545.tif 000036
【図２８】
2008527545.tif 000037
【図２９ａ】
2008527545.tif 000038
【図２９ｂ】
2008527545.tif 000039
【図２９ｃ】
2008527545.tif 000040
【図３０】
2008527545.tif 000041
【図３１】
2008527545.tif 000042
【図３２】
2008527545.tif 000043
【図３３】
2008527545.tif 000044
【図３４】
2008527545.tif 000045
【図３５】
2008527545.tif 000046
【図３６】
2008527545.tif 000047
【図３７】
2008527545.tif 000048
【図３８】
2008527545.tif 000049
【図３９】
2008527545.tif 000050
【図４０】
2008527545.tif 000051
【図４１】
2008527545.tif 000052
【図４２】
2008527545.tif 000053
【図４３】
2008527545.tif 000054
【図４４】
2008527545.tif 000055
【図４５】
2008527545.tif 000056
【国際調査報告】
2008527545.tif 000057