JP4806418B2 - ビジュアルメディアの統合処理のための統合アーキテクチャ - Google Patents

ビジュアルメディアの統合処理のための統合アーキテクチャ Download PDF

Info

Publication number
JP4806418B2
JP4806418B2 JP2007550531A JP2007550531A JP4806418B2 JP 4806418 B2 JP4806418 B2 JP 4806418B2 JP 2007550531 A JP2007550531 A JP 2007550531A JP 2007550531 A JP2007550531 A JP 2007550531A JP 4806418 B2 JP4806418 B2 JP 4806418B2
Authority
JP
Japan
Prior art keywords
data
processing
memory
media
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007550531A
Other languages
English (en)
Other versions
JP2008527545A (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 JP2008527545A publication Critical patent/JP2008527545A/ja
Application granted granted Critical
Publication of JP4806418B2 publication Critical patent/JP4806418B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Advance Control (AREA)

Description

本発明は、一般的に、システムオンチップのアーキテクチャシステムに関し、詳しくは、複数の処理レイヤの分散処理ユニット及びメモリバンクを有する拡張可能なシステムオンチップアーキテクチャに関する。また、本発明は、音声、ビデオ、テキスト、及びグラフィックの暗号化及び復号化ための方法及びシステム、並びに、そのような新規の暗号化及び復号化の方式を利用するデバイスを対象にする。
メディアの処理と通信用のデバイスは、回路交換網とパケット交換網を横断及びその間に、アナログ及びディジタル信号を実質的にシームレスな処理及び送信を可能にし、相互依存した処理を利用するハードウェアとソフトウェアのシステムからなる。例として、Voice over Packet Gatewayは、従来の公衆交換網からパケット交換網へ人間の音声の送信を可能にし、ファックス情報とモデムデータはできる限り同時にシングルパケットネットワーク線で伝送し、返信される。異なるメディアが異なるネットワークを横断した統合通信の利点は、改良された顧客サポート、及びもっと効率の良い個人生産ツール用のインターネットベースのコールセンター等のコスト削減と、新しい及び/又は改良された通信サービスの提供を含むものである。
そのようなメディアオーバーパケット通信デバイス(例えば、メディアゲートウェイ)は、回路交換網からパケット交換網へ、及び逆に効率的なデータ送信を可能にするために、高性能のソフトウェア制御とアプリケーションを有する実質的に、拡張可能な処理能力を要求する。典型的な製品は、テキサス・インスツルメンツ社提供の48チャネルのディジタル信号処理チップ(DSPチップ)のような少なくとも1つの通信プロセッサを利用する。このDSPチップは、アダプティブ音声アクティビティ検知、アダプティブコンフォート雑音発生、アダプティブジッタバッファ、産業標準コーデック、エコキャンセル、トーンの検知と生成、ネットワークマネジメントサポート、及びパケット化等の特徴の組み合わせを提供するTelogy社提供システムのようなソフトウェアアーキテクチャを装備したものである。
異なるネットワークをまたがった異なるメディアの通信を統合したことの利点に加えて、与えられた処理デバイス内に、テキスト、グラフィック、及びビデオ(総称して、「ビジュアルメディア」という。)のような、特定メディアの処理を統合する利点がある。これまでは、メディアゲートウェイ;通信デバイス;ノートブックコンピュータ、ラップトップコンピュータ、DVDプレイヤ若しくはレコーダー、セット トップ ボックス、テレビ、衛星通信受信機、デスクトップパーソナルコンピュータ、ディジタルカメラ、ビデオカメラ、携帯電話器、若しくは個人情報端末等の任意の形態の計算デバイス;又は、ディスプレイ、モニタ、テレビ画面、若しくは、プロジェクタ(個別に、「メディア処理デバイス」と参照する。)等の各種形態の出力周辺器は、別々の処理システムのみを利用してビジュアルメディアを処理することができる。メディア処理デバイスには、ビデオとグラフィック/テキスト用に別々の入出力(I/O) ユニットが存在する。これらの別々のポートは、異なるデータに様々な通信リンクを要求する。従って、シングルメディア処理デバイスは、一方でグラフィック/テキスト、他方でビデオをハンドルする異なるI/Oと、それと連携した処理システムを備える。
図24に、従来のメディア処理圧縮/解凍システム2400の一部のブロックダイアグラムを図示している。送信端のシステムは、メディア処理デバイス2401内に内蔵若しくは統合されたメディアソース、 複数の前処理ユニット2402、2403、2404、ビデオエンコーダ2405、グラフィックエンコーダ2406、音声エンコーダ2407、多重器2408、及び制御ユニット2409からなる。メディア処理デバイス2401は、マルチメディアデータを ディジタルフレームで(又はアナログソースからディジタル形式に変換して)キャプチャし、前処理ユニット2402、2403、2404へパスする。
マルチメディアデータは、前処理ユニット2402、2403、2404で処理され、続いてエンコーディングのためにビデオエンコーダ2405、グラフィックエンコーダ2406、及び音声エンコーダ2407へ送信される。これらのエンコーダは、更に、多重器2408の機能の実現のために、制御ユニット2409をアタッチした多重器2408に接続されている。多重器2408は、ビデオエンコーダ2405、グラフィックエンコーダ2406、及び音声エンコーダ2407からのエンコードされたデータを結合し、シングルデータストリーム2420を形成する。これにより、マルチブルデータストリームは、適当なネットワーク2410の物理又はMACレイヤ上、一ヶ所から別の場所へシングルストリーム2420として伝送されることが可能になる。
受信端では、そのシステムは分離器2411、ビデオデコーダ2413、グラフィックデコーダ2414、音声デコーダ2415、及び複数のポスト処理ユニット2416、2417、及び2418からなる。ネットワーク上のデータは、ハイデータレートストリームからオリジナルのローレートストリームに分解する分離器2411によって受信され、オリジナルのマルチプルストリームに変換される。マルチプルストリームは、ビデオデコーダ2413、グラフィックデコーダ2414、及び音声デコーダ2415等の異なるデコーダに送信される。各デコーダは、圧縮されたビデオ、グラフィック、及び音声のデータを、適当な解凍アルゴリズムに従って解凍し、これらをビデオ、グラフィック、及び音声又は更なる処理用のデータとして出力するためのポスト処理ユニットに供給する。
プロセッサの例は、特許文献1〜5に開示されている。これらの特許文献は、相互接続、及び、算術演算論理ユニット(ALU)のような一連の基本構成ブロックの機能を、再構成できるアダプティブ命令セットを有するハイブリッドのディジタル信号処理器(DSP)/RISCチップを対象にしている。また、動作中のアプリケーションの特定要求に合致して動的にカストマイズされることが可能な命令セットアーキテクチャを提供し、よって、特定サイクル用の特定命令のカスタムパスを作る。
発明者によれば、命令ストレージ用に、及びデータストレージと計算のために、このリソースからの分散用に、命令を分離し、並びに、製造時にシリコンリソースをこれらのリソース各々専用にすることよりは、これらのリソースは統合されることができる。いったん統合されると、伝統的な命令と制御リソースは、計算リソースとともに分解でき、及びアプリケーションスペシフィクマナーで配置することができる。チップのキャパシティは、アプリケーションの必要性、利用できるハードウェアリソースに応じて、アクティブ計算を動的にサポート、又は、計算リソースの再利用を制御することに選択的に展開される。理論的には、これは、パフォーマンス改善の効果がある。
米国特許第6 226 735号公報 米国特許第6 122 719号公報 米国特許第6 108 760号公報 米国特許第5 956 518号公報 米国特許第5 915 123号公報
上述の従来技術にもかかわらず、異なるネットワークを横断したメディア通信を実現するための改良された方法及びシステムが必要である。特に、グラフィック、テキスト、及びビデオ情報の処理に、シングルプロセッシングシステムの利用が好ましい。もっとコスト効率の良い及び効率的な処理システムの実現のために、全てのメディア処理デバイスは、このシングルプロセッシングアプローチを内蔵することが、更に好ましい。更に、シングルインターフェースを利用した総合的な圧縮解凍システムを提供することができるアプローチが必要である。更に詳しくは、新規の処理要求に合致して効率的に縮小され、高処理スループットと生産収率の向上を可能にするのに十分に分散されたシステムオンチップアーキテクチャが必要である。
本発明は、複数の処理レイヤを介して、拡張可能な分散処理及びメモリキャパビリティを有するシステムオンチップアーキテクチャに関する。本発明は、命令に基づいて、テキスト、グラフィック、ビデオ、及び音声の中から選択される1種類以上のデータからなるメディアを処理するためのメディアプロセッサに関する。
本発明のメディアプロセッサは、複数の処理レイヤ(105)と、各前記処理レイヤ(105)は、少なくとも1つの処理ユニット(130)、少なくとも1つのプログラムメモリ(135)、及び少なくとも1つのデータメモリ(140)を有し、同じ前記処理レイヤ(105)内のそれぞれの前記処理ユニット(130)、前記プログラムメモリ(135)、及び、前記データメモリ(140)は互いに通信可能であり、受信したデータの動き推定機能を行うために設計された少なくとも1つの前記処理レイヤ(105)内の少なくとも1つの前記処理ユニット(130)と、前記受信したデータのエンコード又はデコード機能を行うために設計された少なくとも1つの前記処理レイヤ(105)内の少なくとも1つの前記処理ユニット(130)と、前記メディアのソースから複数のタスクを受信し、前記タスクを前記処理レイヤ(105)に分散することができる処理レイヤコントローラ(107)とからなることを特徴とする。
本発明のメディアプロセッサは、更に、前記処理レイヤ(105)と外部メモリ(147)との間のデータ転送をハンドルすることができるダイレクトメモリアクセスコントローラ(110)とからなり、アドレスを有する少なくとも1つの前記データメモリ(140)と、それぞれアドレスを有する複数の前記外部メモリ(147)との前記データ転送は、ダイレクトメモリアクセスコントローラ(110)が、前記データ転送のサイズ、及び、前記データメモリ(140)から前記外部メモリ(147)へ若しくは前記外部メモリ(147)から前記データメモリ(140)への前記データ転送の方向を利用して処理することを特徴とする。
少なくとも1つの前記データメモリ(140)と少なくとも1つの前記外部メモリ(147)との間の前記データ転送は、前記データメモリ(140)のアドレス、前記外部メモリ(147)のアドレス、前記データ転送のサイズ、及び前記データ転送の前記方向を利用することで発生すると良い。
また、本発明のメディアプロセッサは、外部メモリ(147)とのインターフェースを提供する外部メモリインターフェース(170)を備え、前記処理レイヤコントローラ(107)は、外部メモリインターフェース(170)を介して、前記外部メモリ(147)と通信していると良い。
更に、本発明のメディアプロセッサは、前記メディアのデータを前記メディアのソースから、又は、前記ソースを制御するための制御信号を入力装置から受理し、及び、前記制御信号を前記ソースへ送信のためのインターフェースとからなると良い。
前記インターフェースは、イーザネット互換性のインターフェースからなると良い。
前記インターフェースは、TCP/IP互換性のインターフェースからなると良い。
少なくとも1つの前記処理レイヤ(105)は、前記受信したデータの前記動き推定機能を行うために設計された前記処理ユニット(130)、及び、前記受信したデータの前記エンコード又はデコード機能を行うために設計された前記処理ユニット(130)を含み、
前記動き推定機能、及び、前記エンコード又はデコード機能は、パイプライン式で行われると良い。
また、更に、本発明のメディアプロセッサは、少なくとも1つの前記処理レイヤ(105)は、データ中の高周波コンポネントを取り除く機能を行う離散コサイン変換(DCT)、量子化(QT)、逆離散コサイン変換(IDCT)、逆量子化(IQT)、de-blockingフィルタ(DBF)、エンコーディング処理の再構築フェース中に動作補正機能を行う動き補正(MC)、及び違う種類のエントロピーコーディングをする機能を行う算術符号化(CABAC)の内の1以上の前記処理ユニット(130)を有すると良い。
好ましい実施の形態においては、 分散処理レイヤプロセッサ(DPLP)は、通信データバスと処理レイヤインターフェースを介して、処理レイヤコントローラと中央ダイレクトメモリアクセスコントローラと、それぞれ通信している複数の処理レイヤからなる。各処理レイヤには、複数のプログラムメモリ及びデータメモリと通信する複数のパイプラインされた処理ユニット(PU)がある。
各PUは、少なくとも一つのプログラムメモリと一つのデータメモリにアクセスすることができなければならない。処理レイヤコントローラは、タスクのスケジュールと、各処理レイヤへの処理タスクの分散をマネージする。DMAコントローラは、ローカルメモリバッファPU及びSDRAM等の外部メモリの間のデータ転送を、ハンドルするためのマルチチャネルDMAユニットである。各処理レイヤには、処理タスクの定義済みセットを処理するために特別に設計された複数のパイプラインPUがある。
この点で、PUは、一般目的のプロセッサではなく、任意の処理タスクを処理するために利用することができない。加えて、各処理レイヤには、命令セット、処理済み情報、及び、他のデータのローカルストレージを可能にする分散メモリバンクのセットがある。この他のデータは、割り当てられた処理タスクを処理するために要求されたものである。
本発明の一つの応用は、回路交換網とパケット交換網にわたった、メディアの通信用に設計されたメディアゲートウェイである。前述の新規のゲートウェイのハードウェアシステムアーキテクチャは、複数のDPLPからなる。このDPLPは、ネットワークと通信しているホストプロセッサと交代して相互接続されたもので、メディアエンジンとして参照される。ネットワークは、非同期転送モード(ATM)物理デバイス又はギガビット・メディア・インデペンダント・インターフェース(GMII)物理デバイスであることが好ましい。メディアエンジンの処理レイヤ内の各PUは、回線エコキャンセル、データのエンコード、デコード、又はトーン信号等のメディア処理スペシフィクタスクのクラスを行うように特別に設計されている。
本発明の第2の応用は、全てのビジュアルメディア用のシングル統合処理チップを利用して、ビデオとグラフィックの処理及び通信を可能にするように設計された新規のメディア処理デバイスである。メディアを命令に基づいて処理するためのこのメディアプロセッサは、
互いに通信している、少なくとも1つの処理ユニット、少なくとも1つのプログラムメモリ、及び少なくとも1つのデータメモリを各処理レイヤに有する複数の処理レイヤと、
更に、受信したデータの動き推定機能を行うために設計されたもので、少なくとも1つの上述の処理レイヤ内の少なくとも一つの処理ユニットと、
受信したデータのエンコード又はデコード機能を行うために設計されたもので、少なくとも上述の処理レイヤ内の少なくとも一つの処理ユニットと、及び
ソースから複数のタスクを受信すること、かつ、上述のタスクを当該処理レイヤに分散することが可能なタスクスケジューラと、
からなる。
発明の詳細な説明
本発明は、複数の処理レイヤを通して拡張可能で、分散処理及びメモリキャパビリティを有するシステムオンチップアーキテクチャである。本発明の1つの実施の形態は、全てのビジュアルメディア用のシングル統合処理ユニティを用いた、メディアの処理と通信ができるように設計された新規のメディア処理デバイスである。本発明は、図面を参照して説明する。ヘッダは、明瞭の目的で利用されるものであり、ここで開示された内容を限定又は制限するものではない。図面中に利用された矢印は、当業者にあきらかなように、バス又は他の種類の通信チャネルを介する要素及び/又はコンポネント間の相互接続を意味する。
図1に図示したように、例示の分散処理レイヤプロセッサ(DPLP)100のブロックダイアグラムが図示されている。DPLP100は、通信データバスを介して互いに通信し、及び処理レイヤコントローラ107及び中央ダイレクトメモリアクセス(DMA)コントローラ110と、通信データバスと処理レイヤインターフェース115を介して、通信する複数の処理レイヤ105からなる。各処理レイヤ105は、CPU104と交代で通信しているCPUインターフェース106と通信している。
各処理レイヤ105内には、複数のパイプライン処理ユニット(PU)130が、複数のプログラムメモリ135及びデータメモリ140と、通信データバスを介して、通信している。各プログラムメモリ135及びデータメモリ140は、データバスを介して少なくとも1つのPU130によってアクセスされることが好ましい。各PU130、プログラムメモリ135、及びデータメモリ140は、通信データバスを介して外部メモリ147と通信している。
好ましい実施の形態において、処理レイヤコントローラ 107は、タスクのスケジューリング、及び各処理レイヤ105への処理タスクの分散をマネージする。処理レイヤコントローラ107は、ラウンドロビン方式で、プログラムメモリ135及びデータメモリ140へ、並びに、これらからのデータとプログラムコード転送要求を解決する。この解決に基づいて、処理レイヤコントローラ107は、データパスウェイを埋める。データパスウェイは、ユニットが、メモリ、すなわちDMAチャネル(図示せず。)、にどのように直接アクセスしているかを定義したものである。
処理レイヤコントローラ107は、命令をこれのデータフローに従ってルーチングし、並びに、リード・イン要求、ライトバック要求、及び命令転送のステート等の全てのPU130用の要求ステートのトラックを維持するために、命令デコードを行うことができる。処理レイヤコントローラ107は、更に、DMAチャネルのプログラミング、信号生成の開始、各処理レイヤ105内のPU130用のページステートの管理、スケジューラ命令のデコード、並びに、各PU130のタスクキューから及びへデータの移動の管理等の機能に関連付けられたインターフェースを処理することができる。
上述の機能を行うことによって、処理レイヤコントローラ107は、各処理レイヤ105内に存在するPU130を、複雑なステートマシンと関連付けする必要性を実質的に無くしている。DMAコントローラ110は、ローカルメモリバッファPUと、SDRAM等の外部メモリとの間のデータ転送をハンドルするためのマルチチャネルDMAユニットである。各処理レイヤ105は、PUローカルメモリバッファへ及びからデータを転送するために割り当てられた独立したDMAチャネルを有する。
外部メモリへアクセスするためにDMA内のチャネル間にラウンドロビン解決のシングルレベルのような解決プロセスがあることが好ましい。DMAコントローラ110は、PU130と処理レイヤ105をわたってラウンドロビン要求解決のためのハードウェアサポートを提供する。各DMAチャネル機能は、互いに独立している。例示の動作としては、ローカルメモリのアドレス、外部メモリのアドレス、転送のサイズ、転送の方向を利用して、ローカルPUメモリと外部メモリとの間の転送を処理することが望まれる。
すなわち、DMAチャネルは、外部メモリからローカルメモリへ、又は逆に、データを転送しているか、及び各PU130にどのぐらいの転送が要求されているか、を処理することが望ましい。DMAコントローラ110は、プログラムコードフェッチ要求の優先順位を解決すること、リンクリスト巡回とDMAチャネル情報生成を処理すること、及びDMAチャネルのプリフェッチと完了信号生成を行うことができることが更に望ましい。
処理レイヤコントローラ107とDMAコントローラ110は、制御情報とデータ送信が発生する毎に、複数の通信インターフェース160、190と通信している。DPLP100は、処理レイヤコントローラ107とDMAコントローラ110と通信し、かつ、外部メモリ147と通信している、外部メモリインターフェース(SDRAMインターフェース等)170を含むことが好ましい。
各処理レイヤ105内には、処理タスクの定義済みセットを処理するために特別に設計された複数のパイプラインPU130がある。その点で、PUは、一般目的のプロセッサではなく、任意の処理タスクを処理するのに利用されない。特定機能ユニットの共通性で生じる特定処理タスクの調査と分析は、結合されたとき、それらの特殊処理タスクの存在を最適処理することができる特殊PUを生じる。各PUの命令セットアーキテクチャは、コンパクトコードをもたらす。コード密度の増加は、要求メモリの減少と、従って、要求エリア、パワー、及びメモリトラフィックの減少をもたらす。
各処理レイヤ内に、PU130は、先入れ先出し(FIFO)のタスクキュー(図示せず。)で、処理レイヤコントローラ107によってスケジュールされたタスクで動作することが好ましい。パイプラインアーキテクチャは、パフォーマンスを改善する。パイプラインは、実行時に複数の命令がオーバーラップされる実施テクニックである。コンピュータパイプラインには、パイプラインの各ステップは、命令の一部を実行する。アセンブリラインのように、異なるステップは、異なる命令の異なる部分を並列に実行している。これらの各ステップは、パイプステージ又はデータセグメントと呼ばれる。このステージは、パイプを形成するために次のステージに接続されている。プロセッサ内には、命令は、パイプの一端から入り、ステージを通って進行し、他端から出る。命令パイプラインのスループットは、パイプラインから命令が、どのぐらいの頻度で、出ているかによって決まる。
追加して、各処理レイヤ105内は、命令セット、処理済みデータ、及び他のデータのローカルストレージを可能にする分散メモリバンク140のセットがある。この他のデータは、割り当てられた処理タスクを処理するのに要求されたものである。離散処理レイヤ105内に分散したメモリ140を有することは、DPLP100は柔軟になり、生産時、高い生産効率になる。メモリブロックが増加すると、悪いウェハ(メモリブロックの破損が原因)の確率も増加する理由で、従来から、シングルチップ上に9メガバイト以上のメモリを持つ特定DSPチップは生産されていない。
本発明においては、DPLP100は、処理レイヤ105を余分に内蔵させることで、12メガバイト以上のメモリを有して生産されることができる。処理レイヤ105を余分に内蔵することでできることは、大きなメモリをもつチップの生産を可能にする。理由は、メモリブロックのセットが悪かったら、チップ全体を捨てるより、見つかった損傷メモリユニットを有する離散処理レイヤの利用はやめ、他の処理レイヤはその代わりに利用される。複数の処理レイヤの拡張性の性質は、余分なものを許し、従って、高い生産効率を実現する。
本発明のレイヤアーキテクチャは、処理レイヤの数を特定の数に限定にしない。しかしながら、特定の実務限定は、シングルDPLPに内蔵できる処理レイヤの数を制限しても良い。処理レイヤの実現可能な数を制限しているもので、システムを制限するトラフィックとバンド幅等の外部条件によってかけられる処理限定をどのように判定するかは、当業者にとって明らかである。
応用の例
本発明は、新規のメディアゲートウェイの動作を可能にするために利用できる。この新規のゲートウェイのハードウェアシステムアーキテクチャは、メディアエンジンという複数のDPLPからなる。複数のDPLPは、データバスと通信しており、ネットワークへのインターフェースと交代で通信しているホストプロセッサ又はパケットエンジンに相互接続されている。このネットワークは、非同期転送モード(ATM)物理デバイス又はギガビット・メディア・インデペンデント・インターフェース(GMII)物理デバイスであることが好ましい。
図2に図示したように、トップレベルのハードウェアシステムアーキテクチャの第1の実施の形態を図示している。データバス205aは、第1新規メディアエンジンタイプI215aと第2新規メディアエンジンタイプI220aに既存するインターフェース210aに接続されている。第1新規メディアエンジンタイプI215aと第2新規メディアエンジンタイプI220aは、通信バス225aの第2セットを通して、新規パケットエンジン230aに接続されている。新規パケットエンジン230aは、インターフェース235aを通して出力240a、245aに交代で接続されている。各メディアエンジンタイプI215a、220aは、SRAM246aとSDRAM247aと通信していることが好ましい。
データバス205aは、時分割多重(TDM)バスであることが好ましい。TDMバスは、多数の別々の音声、ファックス、モデム、ビデオ、及び/又は他のデータ信号を、同時にシングル通信媒体で伝送するためのパスウェイである。この別々の信号が各信号の一部が互いにインターリーブして送信され、よって、1本の通信チャネルが複数の別々の送信をハンドルすることを可能にし、別々の通信チャネルを各送信専用にすることを回避する。既存のネットワークは、一つの通信デバイスから他へデータを送信するときにTDMを利用している。第1新規メディアエンジンタイプI215aと第2新規メディアエンジンタイプI215aに既存するインターフェース210aは、H.100に準拠していることが更に好ましい。
H.100は、ソフトウェア仕様から独立して、PCIコンピュータ筐体カードスロット用に、物理レイヤにCTバスインターフェースへ実装するのに、必要な情報を記述しているハードウェア仕様である。CTバスは、特定のPC筐体カードスロットのシングル等時間間隔通信のバスを定義し、コンポネントの相対的・流動性のインター・オペレーションを可能にする。また、データバス205aから信号を受信するのに使われるもので、異なるハードウェア仕様による普遍のインターフェースであることは明らかである。
後述したように、2つの新規メディアエンジンタイプI215a、220aそれぞれは、音声等の、処理メディア用の複数のチャネルをサポートすることができる。 サポートされる特定数のチャネルは、エコキャンセルの拡張等の要求特徴、及び、サポートされたコーデックの種類に依存する。G.711等の比較的に低処理能力を要求するコーデック用に、メディアエンジンタイプI215a、220aそれぞれは、約256以上の音声チャネルの処理をサポートすることができる。メディアエンジンタイプI215a、220aそれぞれは、通信バス225a、好ましくは周辺コンポネントインターコネクト(PCI)通信バス、を通してパケットエンジン230aと通信している。
PCI通信バスは、メディアエンジンタイプIチップ215a、220aとパケットエンジンチップ230aとの間に制御データとデータ転送をするものである。メディアエンジンタイプIチップ215a、220aは、後述のメディアエンジンタイプIIに比べて低データ量の処理をサポートするために設計されているので、シングルPCI通信バスは、指定されたチップ間に制御及びデータの両方の転送を効率的にサポートすることができる。しかし、データトラフィックは極端に増大したとき、PCI通信バスは、第2のインターチップ通信バスで補完されなければならないことは明らかである。
パケットエンジン230aは、2つのメディアエンジンタイプI215a、220aから、通信バス225aを介して処理済みデータを受信する。複数のメディアエンジンタイプIへ接続することは理論的に可能であると同時に、この実施の形態においては、パケットエンジン230aは2個までのメディアエンジンタイプI215a、220aと通信していることが好ましい。更に下記に説明されるように、パケットエンジン230aは、データチャネル、好ましい実施の形態において2016チャネル又は約2016チャネル、用にセルとパケットのカプセル化を提供、トラフィックマネジメント用にサービス機能の質を提供、差別化されたサービスとマルチプロトコルラベルスイッチング用にタグ付けを提供、及び、セルとパケットネットワークのブリッジを提供する。パケットエンジン230aを利用することが好ましいことであると同時に、上述のパケットエンジン230aの機能ができるように提供された異なるホストプロセッサに切り替えることができる。
パケットエンジン230aは、ATM物理デバイス240aとGMII物理デバイス245aと通信している。ATM物理デバイス240aは、処理済み及びパケット化されたデータを、メディアエンジンタイプI215a、220aから通過したら、パケットエンジン230aを通して、受信し、及び、非同期転送モード(ATMネットワーク)で動作するネットワークにこれを送信することができる。当業者に明らかなように、ATMネットワークは、ネットワークキャパシティを、システムの必要性にあうように、自動的に調整し、音声、モデム、ファックス、ビデオ及び他のデータ信号をハンドルすることができる。
各ATMデータセル、又はパケットは、5オクテットのヘッダフィールドと、48オクテットのユーザデータから構成される。ヘッダは、関連するセルを識別するデータ、ルーチングを識別するロジカルアドレス、ヘッダエラー訂正ビット、優先ハンドリングとネットワークマネジメント機能のための追加ビットを含む。ATMネットワークは、送信バンド幅の利用を比較的に柔軟に許可したネットワークで、広帯域、低遅延、接続オリエンテッド、パケットライクスイッチングと多重化のネットワークである。GMII物理デバイス245aは、特定量のデータの受信と送信用の標準に基づき、メディアの種類に依存しないで動作する。
図2に示した実施の形態は、Optical Carrier Level 1(OC−1)へ音声処理を配送することができる。OC−1は、毎秒51.840百万ビットを伝送できるもので、フレーム同期スクランブルを有する同期転送信号(STS−1)の直接電気−光学マッピングを提供する。高階層のOptical Carrier Levelは、OC−1の直接多重である。即ちOC−3はOC−1の3倍のレートである。下記に示すように、本発明の他の構成は、OC−12での音声処理をサポートするのに利用できる。
図2bに示すように、OC−3までのデータレートをサポートしている実施の形態が、図示されており、ここでOC−3 タイル200bと言う。データバス205aは、第1新規メディアエンジンタイプII215bと第2新規メディアエンジンタイプII220bに既存するインターフェース210bに接続されている。第1新規メディアエンジンタイプII215bと第2新規メディアエンジンタイプII220bは、通信バス225b、227bの第2セットを通して、新規パケットエンジン230bに接続されている。新規パケットエンジン230bは、互いに、インターフェース260b、265bを通して出力240b、245bに、及びインターフェース250bを通してホストプロセッサ255bに接続されている。
以前に議論したように、データバス205bは、時分割多重(TDM)バスであること、及び、第1新規メディアエンジンタイプII215bと第2新規メディアエンジンタイプII220bに既存するインターフェース210bはハードウェア仕様のH.100に準拠することが好ましい。異なるハードウェア仕様により不変であるインターフェースは、データバス205bからの信号を受信するのに利用できることも明らかである。
新規メディアエンジンタイプII215a、220bそれぞれは、音声等のメディアの処理のために、複数のチャネルをサポートすることができる。サポートされた特定数のチャネルは、エコキャンセル等の要求特徴、及び実装されたコーデックの種類に依存する。G.711等の比較的に低処理の能力要求を有するコーデック用に、及び要求されたエコキャンセルの範囲は128ミリ秒のとき、各メディアエンジンタイプIIは、音声の約2016チャネルの処理をサポートすることができる。二つのメディアエンジンタイプIIは高処理能力を提供し、この構成は、OC−3のデータレートをサポートすることができる。
メディアエンジンタイプII215b、220bはG.729A等の高い処理能力を要求するコーデックを実装するとき、サポートされるチャネル数は減少する。例として、サポートされたチャネルの数は、G.711をサポートするときの、メディアエンジンタイプII毎の2016から、G.729Aをサポートするとき、約672から1024チャネルに減少する。OC−3に合致するために、追加のメディアエンジンタイプIIが、パケットエンジン230bに、共通通信バス225b、227bを介して、接続されることができる。
各メディアエンジンタイプII215b、220bは、通信バス225b、227b、好ましくは周辺コンポネントインターコネクト(PCI)通信バス225bとUTOPIAII/POSII通信バス227b、を通して、パケットエンジン230bと通信している。上述したように、データトラフィック量が所定の閾値を超えたとき、PCI通信バス225bは、第2通信バス227bによって強化されなければならない。第2通信バス227bは、UTOPIAII/POSIIバスで、メディアエンジンタイプII215b、220bとパケットエンジン230bとの間のデータパスとして勤めることが好ましい。
POS(Packet over SONET)バスは、データを直接接続で送信する高スピード手段の代表であり、信号と制御情報の形式のオーバーヘッドがデータに意味あるレベルで追加されることなく、データの通過を元のフォーマットで許可する。UTOPIA (Universal Test and Operations Interface for ATM) とは、送信コンバージェンスと、物理レイヤの物理媒体依存サブレイヤとの間の電気インターフェースであり、ATMネットワークに接続するデバイスのためのインターフェースとして振舞う。
物理インターフェースは、可変サイズデータフレーム転送用のPOS−IIモードで動作するために構成されている。各パケットは、パケットの開始と終了を明確に示すために、POS−II制御信号を利用して転送される。図3に示すように、各パケット300は、複数の情報フィールドを有するヘッダ305と、ユーザデータ310を含む。好ましくは、各ヘッダ305は、パケット種類315(例えば、RTP、ロー・エンコーデッド・音声、AAL2)、パケット長320(情報フィールドを含むパケット全体の長さ)、及びチャネル識別子325(物理チャネル、即ちパケットがどこへ送られてか、又はどこから来たかを示すTDMスロット、を識別する。)を含む情報フィールドから構成される。メディアエンジンタイプII215b、220bとパケットエンジン230bの間にエンコードされたデータの転送を取り扱うとき、コーダー/デコーダ種類330、シーケンス番号335、及びヘッダ305内の音声アクティビティ検知決定340を含むことが好ましい。
パケットエンジン230bは、PCIターゲットインターフェース250bを通して、ホストプロセッサ255bと通信している。パケットエンジン230bは、PCI通信バス225bへのPCIインターフェース226bとPCIターゲットインターフェース250bとの間に、PCI−PCIブリッジ(図示せず。)を含むことが好ましい。このPCI−PCIブリッジは、ホストプロセッサ255bと2つのメディアエンジンタイプII215b、220bとの間にメッセージを通信するためのリンクとして勤める。
新規パケットエンジン230bは、2つのメディアエンジンタイプII215b、220bそれぞれから、通信バス225b、227bを介して、処理済みデータを受信する。複数のメディアエンジンタイプIIと接続されることは理論的に可能であると同時に、パケットエンジン230bは、3個以下のメディアエンジンタイプII215b、220b(図2bに2個のみが図示されている。)と通信していることが好ましい。
前述した実施の形態のように、パケットエンジン230bは、データチャネル用にセルとパケットのカプセル化、G.711コーデックを実装しているとき2048までのチャネル、トラヒックマネジメント用にサービス機能の質、サービスの差別化とマルチプロトコルラベルスイッチング用のタグ付け、及び、セルとパケットネットワークのブリッジを提供する。パケットエンジン230bは、ATM物理デバイス240bとGMII物理デバイス245bと、UTOPIAII/POSII準拠インターフェース260b、GMII準拠のインターフェース265bそれぞれを通して、通信している。
物理層のGMIIインターフェース265bに関して、以後は、PHY GMIIインターフェースと言い、パケットエンジン230bは、ネットワークのMAC層に他のGMIIインターフェース(図示せず。)をも有することが好ましく、以後、これをMAC GMIIインターフェースと言う。MACは、メディア特定アクセスコントロールプロトコルであり、産業標準のローカルエリアネットワーク仕様用のトポロジー依存性のアクセスコントロールプロトコルを定義するデータリンクレイヤの下半を定義する。
後述の通り議論するように、パケットエンジン230bは、ATM−IPインターネットワーキングを可能にするように設計されている。通信サービスプロバイダは、ATM又はIPプロトコルを基にして動作する独立したネットワーク用に構築されている。ATM−IPインターネットワーキングを可能にすることは、実質的に全てのディジタルサービスの配達を、シングル・ネットワーキング・インフラストラクチャをわたって、サポートすることをサービスプロバイダに許可し、従って、サービスプロバイダのネットワーク全体を通して動作可能な複数のテクノロジ/プロトコルを有することによって導入される複雑性を低減する。そのため、パケットエンジン230bは、ATMモードとIPモードとの間のインターネットワーキングを提供することによって、コモン・ネットワーク・インフラストラクチャーを可能にするように設計されている。
もっと詳しくは、新規パケットエンジン230bは、特定IPプロトコルへの、ATM AAL (ATM Adaptation Layers)のインターネットワーキングをサポートする。コンバージェンス・サブレイヤとセグメンテーション/再アセンブリ・サブレイヤに分割され、AALは、高階層レイヤのネーティブ・データ・フォーマットとサービス仕様をATMレイヤへする変換を遂行する。データ・オリジネーティング・ソースからのデータに関して、処理は、オリジナルの大きなセットのデータをATMセルのフォーマットとサイズへ変換するセグメンテーションを含む。ATMセルは、48オクテットのペイロードと5オクテットのオーバーヘッドから構成される。受信サイドでは、AALは、データの再アセンブリを遂行する。
AAL−1機能は、Class Aトラヒックをサポートしている。Class Aトラヒックは、接続オリエントの不変ビットレート(CBR)と、圧縮無しで、ディジタル化された音声とビデオ等の時間依存トラフィックである。Class Aトラヒックは、及びストリーム・オリエント及び、遅延の相対的なイントレラントである。AAL−2機能は、Class Bトラヒックをサポートしている。Class Bトラヒックは、接続オリエントの可変ビットレート(VBR)の当時間間隔トラフィックであり、圧縮された音声とビデオ等の、ソースと受信側の間に相対的に正確なタイミングを要求するものである。AAL−5機能は、Class Cトラヒックをサポートしている。Class Cトラヒックは、可変ビットレート(VBR)で、遅延トレラントで、接続オリエントのデータトラヒックであり、信号と制御データ等の、比較的に最小のシーケンス、又はエラー検知のサポートを要求するものである。
このATM AALは、RTP、UDP、TCP及びIP等の、IPネットワークで動作可能なプロトコルとインターネットワークする。インターネットプロトコル(IP)は、データパケットがソースから目的地までに複数のネットワークを横断することを可能にすると同時に、違うノードへのインターネットのアドレスのトラッキング、送信メッセージのルーチング、及び受信メッセージの識別をするソフトウェアを記述する。リアルタイム・トランスポート・プロトコル(RTP)は、インターネット上のパケット通信の、リアルタイムマルチメディアのストリーミング用の標準であり、パケット交換ネットワーク上にインタラクティブ・ビデオ及びビデオ等のリアルタイム・データのトランスポートをサポートする。
伝送制御プロトコル (TCP)は、リモート又はローカルユーザへ、バイトの、比較的に信頼性のある、シーケンスされた、重複されていない配送を提供するためプロトコルで、トランスポートレイヤ、接続オリエント、エンド・ツー・エンドのプロトコルである。ユーザ・データグラム・プロトコル (UDP)は、到達確認と到着保証を行わないでデータグラムの交換を提供し、トランスポートレイヤの無接続モードのプロトコルである。図2bに図示した好ましい実施の形態においては、ATM AAL−1は、RTP、UDP、及びIPプロトコルでインターネットワークし、AAL−2は、UDPとIPプロトコルでインターネットワークし、及びAAL−5はUDP及びIPプロトコル、又はTCP及びIPプロトコルでインターネットワークすることが好ましい。
図2b示すようなマルチプルOC−3タイルは、高いデータレートをサポートするタイルを形成するために相互接続できる。図4に図示したように、4つのOC−3タイル405は相互接続でき、又はOC−12タイル400を形成するために、一緒に「デイジー・チェーン」することができる。「デイジー・チェーン」は、信号がチェーンを通って1つのデバイスから他方へパスするようにデバイスを連続に接続する方法である。「デイジー・チェーン」を可能にすることで、本発明は、現在不可能なレベルであり、データ量のサポートとハードウェアの実装の拡張性を提供する。
ホストプロセッサ455は、通信バス425、好ましくはPCI通信バス、を介して、各OC−3タイル405上のPCIインターフェース435に接続している。各OC−3タイル405は、TDMインターフェース(図示せず。)からTDM信号を受信するために、TDM通信バス465を介して動作するTDMインターフェース460を備えている。各OC−3タイル405は、更に、OC−3タイル405にUTOPIAII/POSIIインターフェース470を通して接続された通信バス495を通して、ATM物理デバイス490と通信している。OC−3タイル405によって受信され、OC−3タイル405によって受信されたデータは、次の理由で処理されないとき、連続接続の次のOC−3タイル405に、PHY GMIIインターフェース410を介して、送信される。
その理由は、例えば、データパケットは、特定パケットエンジンアドレスへ送信されるが、当該OC−3タイル405には、そのアドレスが見つからない。そして、送信されたデータは、MAC GMIIインターフェース413を介して、次のOC−3タイルによって受信される。「デイジー・チェーン」の実現は、統合を可能にするために、各OC−3タイル上のGMIIインターフェースをインターフェースする外部統合機能の必要性を無くしている。最後のOC−3タイル405は、GMII物理デバイス417と、PHY GMIIインターフェース410を介して、通信している。
上述のハードウェアアーキテクチャの実施の形態の動作は、メディア処理、信号、及びパケット処理ができるように設計された、複数の新規、統合ソフトウェアシステムである。図5に、ソフトウェアシステム500の論理分割を図示している。ソフトウェアシステム500は、メディア処理サブシステム505、パケット化サブシステム540、及び信号/マネジメントサブシステム570の3つのサブシステムに分かれている。
各サブシステム505、540、570は、更に、メディアの処理と送信を達成するために、異なるタスクを行うように設計されたモジュール520のシリーズからなる。モジュール520は、実質的に分割不可能なシングルコアタスクを取り囲むために設計されたものであることが好ましい。例えば、例示のモジュールは、特に、エコキャンセル、コーデック実装、スケジューリング、IPベースのパケット化、及びATMベースのパケット化を含む。本発明に実施されたモジュール520の性質と機能は、次に説明される。
図5の論理システムは、処理に依存し、そして、部分的に後述の新規のソフトウェアアーキテクチャに依存して多数の方法で物理的に実施されることができる。図6に示すように、図5に説明されたソフトウェアシステムの一つの物理的な実施の形態は、シングルチップ600上に実現されたものである。メディア処理ブロック610、パケット化ブロック620、及びマネジメントブロック630が、全て同じチップ上で動作可能で、メディア処理ブロック600上に動作する。もし、処理の必要性が増加すれば、メディア処理専用にチップ能力をもっと要求し、ソフトウェアシステムは次のように物理的に実装されることができる。
図7に図示したように別のホストプロセッサ735上に動作するマネジメントブロック730と、データバス770を介して、通信しているDSP715上に、メディア処理ブロック710及びパケット化ブロック720が動作する。図8に図示したように、同様に、処理の必要性が更に増加すれば、メディア処理ブロック810及びパケット化ブロック820は、別々のDSP860、865に実装でき、データバス870を介して互いに、及び別のホストプロセッサ835上に動作するマネジメントブロック830と通信することができる。各ブロックには、モジュールが、高いシステム拡張性を実現するために、異なるプロセッサへ物理的に分離されることができる。
好ましい実施の形態において、4つのOC−3タイルは、各OC−3タイルがメディア処理とパケット化タスクを行うように構成されたシングル集積回路(IC)カードへ結合されている。ICカードは、データバスと通信している4つのOC−3タイルを備えている。前に説明したように、OC−3タイルそれぞれは、インターチップ通信バスを介して、パケットエンジンプロセッサと通信している3つのメディアエンジンタイプIIプロセッサを有する。パケットエンジンプロセッサは、OC−3タイルへの外部通信用のMAC及びPHYインターフェースを備えている。第1OC−3タイルのPHYインターフェースは、第2OC−3タイルのMACインターフェースと通信している。
同様に、第2OC−3タイルのPHYインターフェースは、第3OC−3タイルのMACインターフェースと通信し、第3OC−3タイルのPHYインターフェースは、第4OC−3タイルのMACインターフェースと通信している。第1OC−3タイルのMACインターフェースは、ホストプロセッサのPHYインターフェースと通信している。動作的に、各メディアエンジンIIプロセッサは、図5に参照番号505で示したように、本発明のメディア処理サブシステムを実装している。各パケットエンジンプロセッサは、図5に参照番号540で示したように、本発明のパケット化サブシステムを実装している。ホストプロセッサは、図5に参照番号570で示したように、マネジメントサブシステムを実装している。
メディアエンジンタイプI、メディアエンジンタイプII、及びパケットエンジンを含むトップレベル・ハードウェアシステム・アーキテクチャのプライマリコンポネントは、ここで詳細に説明する。更に、ソフトウェアアーキテクチャは、具体的な特徴とともに、詳細に説明される。
メディアエンジン
メディアエンジンIとメディアエンジンIIの両方は、DPLP型のもので、従って、各レイヤがNチャネルまでの音声、ファックス、モデム、又はレイヤの構成に依存する他のデータをエンコードとデコードするレイヤアーキテクチャから構成される。各レイヤは、特定のメディア処理機能を行うために、実質的に最適ハードウェアとソフトウェアパーティションを介して、特別に設計されたパイプライン処理ユニットのセットを実装している。この処理ユニットは、特定信号処理機能又は機能クラスを行うためにそれぞれ最適化された特定目的のディジタル信号プロセッサである。エコキャンセル又はコーデック実装等の、機能の明確なクラスの実行、かつ、それらをパイプラインアーキテクチャで入力できる処理ユニットを製作することで、本発明は、従来のアプローチより実施的に優れたパフォーマンスを有するメディア処理システム及び方法を提供する。
図9に示すように、メディアエンジンI900のダイアグラムを図示されている。メディアエンジンI900は、それぞれ中央ダイレクトメモリアクセス(DMA)コントローラ910と、通信データバス920を介して、通信している複数のメディアレイヤ905からなっている。DMAアプローチを利用して、これ自身とシステムメモリの間にデータの直接伝送をハンドルするために、システム処理ユニットのバイパスを可能にする。各メディアレイヤ905は、更に、通信データバス920で相互接続されたDMAへのインターフェース925から構成される。交代で、DMAインターフェース925は、通信データバス920を介して複数のパイプライン処理ユニット(PU)930のそれぞれと、DMAインターフェース925と各PU930の間に位置する通信データバス920を介して複数のプログラムとデータメモリ940と通信している。
プログラムとデータメモリ940は、データバス920を介して各PU930と通信している。各PU930は、少なくとも1つのプログラムメモリと少なくともデータメモリユニット940にアクセスできることが好ましい。更に、スケジュールされたタスクを受信し、PU930による動作用にそれらをキューするために、少なくとも1つの先入れ先出し(FIFO)タスクキュー(図示せず。)を備えていることが好ましい。
本発明のレイヤアーキテクチャは、メディアレイヤの特定の数を制限しないとき、特定の実務制限は、シングルメディアエンジンIへスタックできるメディアレイヤの数を限定することが可能である。メディアレイヤの数が増大すると、メモリとデバイス入出力バンド幅が、メモリ要求、ピンカウント、密度、及びパワー消費に悪影響するほどまでに、広がることが可能であり、応用又は経済的要求に両立しなくなる。しかし、それらの実務制限は、本発明の範囲と実態を制約しない。
メディアレイヤ905は、通信バス920を介して、中央処理ユニットへのインターフェース(CPU IF)950と通信している。外部スケジューラ955、DMAコントローラ910、PCIインターフェース(PCI IF)960、SRAMインターフェース(SRAM IF)975、及びSDRAMインターフェース(SDRAM IF)970等の外部メモリへのインターフェース等からの制御信号と、データを、通信バス920を通して、CPU IF950が送信と受信する。PCI IF960は、制御信号に利用されることが好ましい。SDRAM IF970は、同期型ダイナミック・ランダム・アクセス・メモリ・モジュールへ接続され、ランダムアクセスメモリ(RAM)とCPUとの間のメモリフェッチングに関して、メモリアクセスサイクルは、待機時間を無くすために、CPUクロックに同期している。
好ましい実施の形態において、SDRAM IF970は、133MHz同期型DRAMと非同期メモリをサポートするSDRAMを備えたプロセッサに接続される。SDRAM(64 Mbit/256 Mbitから最大256 MB)の一つのバンクと、4つの非同期デバイス(8/16/32ビット)をサポートする。この非同期デバイスは、32ビットのデータパスと、未定義長と同様に固定長のブロック転送を備えている。Back-to-back転送に適応する。9つのトランザクションは、動作のためキューされることが可能である。SDRAM(図示せず。)は、PU930のステータスを含む。他の外部メモリの構成と種類は、SDRAMの代わりに選択されることができることと、従って、他の種類のメモリインターフェースがSDRAM IF170の代わりに利用できることは好ましくないことは当業者に明らかである。
SDRAM IF970は、更に、PCI IF960、DMAコントローラ910、及びCPU IF950、好ましくは通信バス920を通してSRAMインターフェース(SRAM IF)975と通信している。このSRAM(図示せず。)は、スタティックランダムアクセスメモリで、比較的に高速なメモリアクセスに推奨されるもので、常時リフレッシュしないでデータを保持するランダムアクセスメモリの一種である。SRAM IF975も、データバス920を介して、TDMインターフェース(TDM IF)980、CPU IF950、DMAコントローラ910、及びPCI IF960と通信している。
好ましい実施の形態において、トランクサイド用のTDM IF980は、好ましくはH.100/H.110に準拠し、TDMバス981は8.192MHzで動作する。メディアエンジンI900が8データ信号を提供することを可能にすることで、従って、512フル2重チャネルまでの容量を供給し、TDM IF980は次の好ましい特徴を有する。その特徴は、H.100/H.110準拠のスレーブ、フレームサイズは16又は20サンプルをセットでき、スケジューラは、特定バッファ又はフレームサイズ、最大チャネル数用のプログラマブルスタッガーポイントを格納するためにTDM IF980をプログラムできる。
好ましくは、TDM IFは、8000HzクロックのNサンプル毎の後に、スケジューラを中断させる。Nは、2,4,6,及び8の値でプログラム可能な値である。音声のアプリケーションでは、TDM IF980は、パルスコード変調(PCM)データをサンプル・バイ・サンプルに基づいてメモリへ伝送しないことが好ましいが、エンコーダ及びデコーダが利用しているフレームサイズに依存して、チャネルの16又は20サンプルをバッファし、そして、そのチャネル用の音声データをメモリへ伝送することが好ましい。
PCI IF960は、通信バス920を介してDMAコントローラ910とも通信している。外部接続は、TDM IF980とTDMバス981の間の接続と、SRAM IF975とSRAMバス976との間の接続、好ましくは32ビット133MHzで動作するSDRAM IF970とSDRAMバス971の間の接続、及び好ましくは32ビット133MHzで動作するPCI IF960とPCI2.1バス961の間の接続からなる。
外部エンジンIの外部において、スケジューラ955は、処理用にメディアレイヤ905へのチャネルをマップする。スケジューラ955が新しいチャネルを処理しているとき、レイヤ905毎の可能な処理リソースによるが、レイヤの一つへのチャネルを割り当てる。処理が並列に行われ、かつ、処理が固定フレーム又はデータの部分に分割されるように、各レイヤ905は、複数のチャネルの処理をハンドルする。スケジューラ955は、FIFOタスクキューへのデータ伝送を通じて、各メディアレイヤ905と通信している。
FIFOタスクキューの各タスクは、特別チャネル用に複数のデータ部分を処理するための要求で、メディアレイヤ905への要求である。よって、各PU930を個別にプログラムするより、タスクをタスクキューに入れることによって、チャネルからのデータの処理を開始することがスケジューラ955にとって好ましい。もっと詳しくは、特別PU930のタスクキューにタスクを入れ、かつ、データフローを次のPU930にマネージするメディアレイヤ905のパイプラインアーキテクチャを有することによって、チャネルからのデータの処理を開始するスケジューラ955を備えることが好ましい。
スケジューラ955は、各チャネルが処理されることで、レートをマネージしなかれければならない。実施の形態において、各チャネルはTmsecのフレームサイズを用いており、Mチャネルからのデータの処理を受諾するように、メディアレイヤ905が要求され、そして、スケジューラ955は、Mチャネルの各チャネルの1つのフレームを各Tmsec間隔で処理することが好ましい。更に、好ましい実施の形態において、スケジューリングは、TDM IF980からサンプルのユニットの形式で、周期的な中断に基づく。
例として、中断周期が2サンプルの場合は、TDM IF980は、全てのチャネルから2つの新サンプルを集める度に、スケジューラを中断する。中断ごとにインクリメントしていたものが、通過したフレームサイズの同等の値になったとき、0にリセットされる「ティックカウント」をスケジューラが持つことが好ましい。時間スロットへのチャネルのマッピングは固定されないことが好ましい。
例えば、音声アプリケーションでは、チャネル上にコールがスタートするときいつも、スケジューラは、用意されたタイムスロットチャネルにレイヤを動的に割り当てる。TDMバッファからメモリへのデータ転送が処理データが入っているタイムスロットと調整されることが好ましく、従って、TDMからメモリへ異なるチャネル用のデータ伝送をスタッゲリングし、異なるチャネルの処理のスタッゲリングと等しくなるようにその逆にスタッゲリングする。その結果、TDMのティックカウントと、スケジューラ955の間に多少の同期を取るように、TDM IF980はティックカウント変数を維持することが更に望ましい。上述した例示の実施の形態においては、ティックカウント変数は、バッファサイズによって2ミリ秒ごと又は2.5ミリ秒ごとに0に設定される。
図10に示すように、メディアエンジンII1000のブロックダイアグラムを図示している。メディアエンジンII1000は、ここでメディアレイヤコントローラ1007と参照している処理レイヤコントローラ1007と、中央ダイレクトメモリアクセス(DMA)コントローラ1010それぞれと、通信データバスとインターフェース1015を介して、通信している複数のメディアレイヤ1005からなる。各メディアレイヤ1005は、CPU1004と通信しているCPUインターフェース1006と交代で通信している。各メディアレイヤ1005内は、複数のパイプライン処理ユニット(PU)1030は、複数のプログラムメモリ1035とデータメモリ1040と、通信データバスを介して、通信している。
各PU1030は、少なくとも1つのプログラムメモリ1035と1つのデータメモリ1040にアクセスできる。各PU1030、プログラムメモリ1035、及びデータメモリ1040は、外部メモリ1047と、メディアレイヤコントローラ1007とDMAコントローラ1010を介して、通信している。好ましい実施の形態において、各メディアレイヤ1005は、シングルプログラムメモリ1035とデータメモリ1040と通信している4つのPU1030から構成され、各PU1031、1032、1033、1034は、メディアレイヤ1005内のそれぞれ他のPU1031、1032、1033,1034と通信している。
図10aに示すように、メディアレイヤコントローラ、又はMLCのアーキテクチャの好ましい実施の形態が提供される。好ましくは512×64サイズのプログラムメモリ1005aは、データと命令を、好ましくは16×32サイズのデータレジスタファイル1017a、及び好ましくは4×12サイズのアドレスレジスタファイル1020aに配送するために、コントローラ1010aとデータメモリ1015aと連結して動作する。データレジスタファイル1017aとアドレスレジスタファイル1020aは、アッダ/MAC 1025a、ロジカルユニット1027a、及びバレル・シフタ1030a等の機能ユニット、及び要求アービトレーション・ロジックユニット1033a及びDMAチャネルバンク1035a等のユニットと通信している。
図10に示すように、MLC1007は、プログラムメモリ1035及びデータメモリ1040へ及びからデータとプログラムコードの転送要求をラウンドロビン式で解決する。この解決に基づいて、MLC1007は、ユニットがメモリにどのように直接アクセスするかを定義したパスウェイ、すなわち DMAチャネル(図示せず。)、を充填する。命令のデータフローに従って命令をルーチングするため、及びリードイン要求、ライトバック要求、及び転送指示のステート等の全てのPU1030用の要求ステートのトラックをキープするために、MLC 1007は、命令デコードを行うこうとができる。
MLC1007は、更に、DMAチャネルのプログラミング、開始信号生成、各メディアレイヤ1005内のPU1030用のページステートのメインテナンス、スケジューラ命令のデコード、及び、各PU1030のタスクキューからの、及び、各PU1030のタスクキューへのデータの移動のマネジメント等のインターフェース関連機能を処理することができる。上述の機能を行うことにより、メディアレイヤコントローラ1007は、実質的に、複雑ステートマシンが各メディアレイヤ1005内に存在するPU1030と連携するする必要性を無くす。
DMAコントローラ1010は、ローカルメモリバッファPUと、SDRAM等の外部メモリとの間のデータ転送をハンドルするためのマルチチャネルDMAユニットである。DMAチャネルは、動的にプログラムされていることが好ましい。もっと詳しくは、PU1030は、それぞれが優先レベルと結びついた独立要求を生成し、読み出しと書き込みするためにそれらをMLC1007に送信する。特定のPU1030によって配達された優先要求に基づいて、MLC1007は、DMAチャネルをそれに応じてプログラムする。外部メモリにアクセスするためにDMA内のチャネル間、ラウンドロビン解決のシングルレベル等の解決処理があることが好ましい。DMAコントローラ1010は、PU1030及びメディアレイヤ1005をわたって、ラウンドロビン要求解決のためのハードウェアサポートを提供する。
例示動作において、ローカルメモリのアドレス、外部メモリのアドレス、転送のサイズ、転送の方向を利用することで、すなわち、DMAチャネルが、データを外部メモリからローカルメモリへ、又は逆に、転送したか、及び、各PU用にどのぐらいの転送が要求されたかを利用して、ローカルPUメモリと外部メモリの間に転送を処理することが好ましい。この好ましい実施の形態において、DMAチャネルは生成され、この情報を、DMA内に存在する32ビットの2つのレジスタから受信する。3番目のレジスタは、DMAと各PUの間に、DMA転送の現在ステータスを含む制御情報を交換する。
好ましい実施の形態において、アービトレーションは特に次の要求を行う。この要求は、各メディアレイヤから1つのストラクチャー読み込み、4つのデータ読み込み、及び4データ書き込みの要求、合計で約90のデータ要求、及び各メディアレイヤから4つのプログラムコードフェッチ要求、合計で約40のプログラムコードフェッチ要求である。DMAコントローラ1010は、更に、プログラムコードフェッチ要求のための優先度を解決できること、リンクリスト巡回とDMAチャネル情報生成を処理すること、及びDMAチャネルプレフェッチと完了信号生成を行うことが好ましい。
MLC1007とDMAコントローラ1010は、通信バスを通してCPU IF1006と通信している。PCI IF1060は、通信バスを介して、外部メモリインターフェース(SDRAM IF等)とCPU IF1006と通信している。外部メモリインターフェース1070は、更に、通信バスを通して、MLC1007とDMAコントローラ1010とTDM IF1080と通信している。SDRAM if(1070)は、UTOPIA II/POS 互換性インターフェース(U2/POS IF)等のパケットプロセッサインターフェース1090と、通信データバスを介して通信している。U2/POS IF 1090は、CPU IF1006と通信していることが好ましい。
しかし、PCI IFとSDRAM IFの好ましい実施の形態は、メディアエンジンIと似ており、TDM IF1080は、実行される計32シリアルデータ信号を有し、よって、少なくとも2048フル2重チャネルをサポートすることが好ましい。外部接続は、TDM IF1080とTDM バス1081の間の接続、外部メモリ1070とメモリバス1071の間の、好ましく64ビット@133MHzの、接続、PCI IF 1060とPCI 2.1バス1061の間の、また好ましくは32 bit @ 133 MHzで動作する、の間の接続、及びU2/POS IF 1090とUTOPIA II/POS接続1091の間の、好ましくは、毎秒622メガビットで動作可能な、接続からなる。好ましい実施の形態において、メディアエンジンIとの関係に前に議論したように、トランクサイドのためのTDM IF1080は、好ましくは、H.100/H.110互換性で、TDMバス1081は8.192MHzで動作する。
各メディアレイヤ内のメディアエンジンIとメディアエンジンIIの両方のための、本発明は、特に、処理タスクの定義済みセットを処理するように設計された、パイプラインされた複数のPUを利用する。その点で、PUは、一般目的プロセッサではなく、任意の処理タスクを処理するように利用されない。特定機能ユニットの共通性で生じる特定処理タスクの調査と分析は、結合されたとき、それらの特殊処理タスクの存在を最適処理することができる特殊PUを生じる。各PUの命令セットアーキテクチャは、コンパクトコードをもたらす。コード密度の増加は、要求メモリの減少と、従って、要求エリア、パワー、及びメモリトラフィックの減少をもたらす。
パイプラインアーキテクチャは、また、パフォーマンスを向上させる。パイプラインは、マルチプル命令が実行時オーバーラップされる実行テクニックである。コンピュータパイプラインに、パイプラインの各ステップは、命令の一部を実行する。アセンブリラインのように、異なるステップは、異なる命令の異なるパートを並列に実行する。これらのステップの各ステップは、パイプステージ又はデータセグメントと呼ばれる。ステージは、パイプを形成するために次のステージに接続される。プロセッサ内に、命令は、パイプの一端から入り、ステージを通って処理され、他端から出る。命令パイプラインのスループットは、命令がパイプラインからどの程度出ているかで定義される。
もっと詳しくは、1つのタイプのPU(以下、EC PUという。)は、エコキャンセル(EC)、音声アクティビティ検出(VAD)、及びトーン信号機能(TS)等の複数のメディア処理機能を行うように、パイプラインアーキテクチャに特別に設計されたものである。エコキャンセルは、入力信号の発信元への変調入力信号の反射及び/又は再伝送の結果として起こり得るエコを、信号から、除去する。一般に、スピーカから発振し、受信されてマイクロフォンを通して再伝送された(音声エコ)とき、又は、ハイブリッド線によって伝送される過程で発生した遠端信号の反射(電線エコ)のときに、エコが起きる。
好ましくないが、エコパスの時間遅延は相対的に短いように提供されたとき、エコは、電話システムにおいて許容される。しかし、長いエコ遅延は、遠端スピーカの注意をそらし、又は混乱させることができる。音声アクティビティ検出は、入力の信号は、意味のある信号か雑音か判定する。トーン信号は、トーン形式の、回路又はネットワーク上の監督、アドレス、及び警報の信号の処理からなる。回線が使用中、アイドル、又はサービス要求しているかを判定するために、監督信号は、回線又は回路のステータスを監視する。警報信号は、着信コールの着信を表す。アドレス化の信号は、ルーチングとあて先の情報から構成される。
LEC、VAD、及びTSの機能は、アドレス生成ユニットと命令デコーダと一緒に動作する、複数のシングルサイクル積和演算(MAC)ユニットを有するPUを利用して、効率的に実行されることができる。各MACユニットは、圧縮器、サム・アンド・キャリー・レジスタ、アッダ、及びサチュレイション・アンド・ラウンディング・ロジックユニットを含む。好ましい実施の形態において、図11に図示するように、このPU1100は、シングルアドレス生成ユニット(AGU)1105及び命令デコーダ1106を持つロード・ストア・アーキテクチャから構成される。AGU1105は、ゼロ・オーバー・ヘッド・ルーピング、及び遅延スロットの分散をサポートする。複数のMACユニット1110は、2つの16ビットオペランド上に並列に動作し、次の機能を行う。
Acc += a*b
繰り返しMAC動作を促進するために、ガードビットは、サム・アンド・キャリー・レジスタに加えられる。スケールユニットは、アキュムレータ・オーバーフローから防止する。各MACユニット1110は、ラウンド動作を自動的に行うようにプログラムされることが可能である。加えて、20ビット値の入力オペランドと、16ビット値の出力オペランドの両方を有する条件付きサム・アッダーとして加減算ユニット(図示せず。)を有することが好ましい。
動作的に、EC PUは、パイプライン式でタスクを行う。第1パイプラインステージは、命令がプログラムメモリから命令レジスタへフェッチされる、フェッチ命令から構成される。第2パイプラインステージは、命令がデコードレジスタにデコードされ、格納される、命令デコードとオペランドフェッチから構成される。ハードウェアループマシンは、このサイクルで初期化される。データレジスタファイルからのオペランドは、オペランドレジスタに格納される。AGUは、このサイクルの間に動作する。このアドレスは、データメモリアドレスバスに位置する。ストア動作の場合は、データは、また、データメモリデータバスに位置する。ポストインクリメントとデクリメント命令のために、アドレスは、アドレスバス上に位置されてからインクリメント又はデクリメントされる。
結果は、アドレスレジスタファイルへ書き込みされる。第3パイプラインステージは、実行ステージであり、加減算ユニットとMACユニットによってフェッチされたオペランド上のオペレーションから構成される。ステータスレジスタは、アップデータされ、及び、計算結果、又はメモリからロードされたデータは、データ/アドレスレジスタファイルに格納される。各メディアレイヤ内に前に示したように、EC PUオペレーションのために要求されたステータスと履歴情報は、マルチチャネルDMAインターフェースを通してフェッチされる。EC PUは、DMAコントローラレジスタを直接構成する。EC PUは、DMAチェーンポインタを、チェーンリンクのヘッドのメモリロケーションと一緒にロードする。
パイプラインステージを通して同時に異なるデータストリームを移動させることを可能にすることによって、EC PUは、音声等の着信媒体の処理のための待ち時間を減少させる。図12に示すように、タイムスロット1 1205に、チャネル1 1250からのデータの処理用に、命令フェッチタスク(IF)が行なわれる。タイムスロット2 1206において、命令デコード及びオペランドフェッチ(IDOF)は、チャネル1 1250からのデータの処理用に同時に行なわれる間に、チャネル2 1255からのデータの処理用に、IFタスクが行なわれる。
チャネル2 1255からのデータの処理用に、命令デコード及びオペランドフェッチ(IDOF)が行なわれ、及び、チャネル1 1250からデータの処理用に、実行(EX)タスクが同時に行なわれる間に、タイムスロット3 1207において、IFタスクがチャネル3 1260からのデータの処理用に行なわれる。チャネルは動的に生成されるので、チャネルの番号付けは、実際のロケーションとタスクの割り当てを反映しないことが当該者には明らかである。チャネルの番号付けは、マルチチャネルを横断するパイプラインの概念をただ表すように使われ、実際のタスクロケーションを表さない。
第2タイプのPU(以下、CODEC PUという。)は、特定の標準とプロトコルに従って信号をエンコーディング及びデコーディングする複数のメディア処理機能を行うように、また、コンフォート雑音生成(CNG)と不連続伝送(DTX)機能を行うように特別にパイプラインアーキテクチャに設計されている。特定の標準とプロトコルは、特に、G.711, G.723.1, G.726, G.728, G.729A/B/Eを含む音声標準、及びV.17, V.34,V.90を含むデータモデム標準等の国際電気通信連合(ITU)が推進する標準(以下、コーデックという。)である。これらの様々コーデックは、異なる複雑さと結果品質の音声信号をエンコードとデコードするのに利用される。CNGは、接続が生きていて、切断されていないことをユーザに知らせるためのバックグラウンド雑音の生成である。DTX機能は、受信されたフレームは、音声伝送にかえてサイレンスから構成されるように実施されるものである。
コーデック、CNG、及びDTX機能は、算術演算論理ユニット(ALU)、MACユニット、バレル・シフタ、及び規格化ユニットを有するPUを利用して効率的に実行されることができる。好ましい実施の形態置いては、図13に示すように、CODEC PU1300は、シングルアドレス生成ユニット(AGU)1305及び命令デコーダ1306を持つロード・ストア・アーキテクチャから構成される。AGU1305は、ゼロ・オーバー・ヘッド・ルーピング、及び遅延スロットの分散をサポートする。
好ましい実施の形態において、各MACユニット1310は、圧縮器、サム・アンド・キャリーレジスタ、アッダ、及びサチュレイション・アンド・ラウンディング・ロジックユニットを含む。MACユニット1310は、蓄積用の圧縮ツリーへのフィードバックを有する圧縮器として実施される。MAC1310の一つの好ましい実施の形態は、1サイクルのスループットに、約2サイクルの待ち時間を有する。MAC1310は、符号付又は符号無しの2つの17ビットオペランド上に動作する。中間結果は、サム・アンド・キャリーレジスタにキープされる。繰り返しMAC動作用に、ガードビットは、サム・アンド・キャリー・レジスタに加えられる。サチュレイション・ロジックは、サム・アンド・キャリーの結果を32ビット値に変換する。ラウンディング・ロジックは、32ビットを16ビット番号にラウンドする。分割ロジックは、MACユニット1310にまた実装される。
例示の実施の形態において、ALU1320は、加算、アッド・ウィズ・キャリー、減算、サブトラクト・ウィズ・ボロー、否定、AND、OR、XOR及びNOTを含む複数のオペレーションを行うことができる32ビットアッダーと32ビットロジック回路を含む。ALU320への入力の1つは、32ビットオペランド上に動作するXORアレーを有する。絶対ユニット、ロジックユニット、及び加減算ユニットからなり、ALU320の絶対ユニットはこのアレーを駆動する。絶対ユニットの出力により、入力オペランド上に否定を行うために、入力オペランドは1又は0でXORされる。
例示の実施の形態において、バレル・シフタ1330は、ALU1320の列に位置し、シフトオペレーションを要求し、任意のALUオペレーションに続くオペランドへのプレシフタとして動作する。好ましいバレル・シフタの1つのタイプは、16ビット又は32ビットオペランド上に、左へ最大9ビット、又は右へ26ビットの算術シフトを行うことができる。このバレル・シフタの出力は、ALU1320の両方の入力にアクセス可能な32ビット値ある。
例示の実施の形態において、規格化ユニット1340は、番号の重複符号ビットをカウントする。これは、2の補数の16ビット番号で動作する。重複符号ビットを計算するために、負の番号が反転される。規格化される番号は、XORアレーへ送り込まれる。番号の符号ビットから他の入力が来る。処理されているメディアが音声のとき、EC PUへのインターフェースを有することが好ましい。受信したフレームがサイレンス又はスピーチから構成されているかを判定するために、EC PUは、VADを利用する。コーデック又はDTX機能が実装されているか否かを判定することができるように、VAD判定は、CODEC PUと通信していることが好ましい。
動作的に、CODEC PUは、パイプライン式でタスクを行う。第1パイプラインステージは、命令がプログラムメモリから命令レジスタへフェッチされる命令フェッチから構成される。同時に、次のプログラムカウンタ値は、計算され、プログラムカウンタに格納される。加えて、ループと分散決断は、同じサイクルで行なわれる。第2パイプラインステージは、命令がデコードされ、デコードレジスタに格納される、命令デコードとオペランドフェッチから構成される。命令デコード、レジスタ読み込み、分散決断は、命令デコードステージに起こる。
第3パイプラインステージにおいては、Execute 1ステージ、バレル・シフタ及びMAC圧縮器ツリーは、それらの計算を完成する。データメモリへのアドレスは、このステージにある。第4パイプラインステージにおいては、Execute 2 ステージ、ALU、規格化ユニット、及びMACアッダは、それらの計算を完成する。レジスタ・ライトバック及びアドレスレジスタは、Execute-2ステージの最後にアップデータされる。CODEC PUオペレーション用に要求されたステータスと履歴情報は、前に各メディアレイヤに示したように、マルチチャネルDMAインターフェースを通ってフェッチされる。
異なるデータストリームをパイプラインされたステージを通って同時に移動させることを可能にすることで、CODEC PUは、音声等の到着メディア処理のための待ち時間を減少させる。 図13aに示すように、タイムスロット1 1305a内、チャネル1 1350aからのデータを処理するために、命令フェッチタスク(IF)が行なわれる。命令デコードとオペランドフェッチ(IDOF)が、チャネル1 1350aからのデータを処理するために行われている間に、タイムスロット2 1306a内、IFタスクが、チャネル2 1355aからのデータを処理するために、同時に行なわれる。
命令デコードとオペランドフェッチ(IDOF)が、チャネル2 1355aからのデータを処理するために行われ、及び、Execute1(EX1)タスクが、チャネル1 1350aからのデータ処理のために行われている間に、タイムスロット3 1307a内、IFタスクが、チャネル3 1360aからのデータを処理するために、同時に行なわれる。命令デコードとオペランドフェッチ(IDOF)が、チャネル3 1360aからのデータを処理するために、行なわれ、Execute1(EX1)タスクが、チャネル2 1355aからのデータを処理するために、行なわれ、及び、Execute2(EX2)タスクが、チャネル1 1350aからのデータを処理するために、行なわれている間に、タイムスロット4 1308a内、IFタスクが、チャネル4 1370aからのデータを処理するために、同時に行なわれる。チャネルは動的に生成されるため、チャネル番号付けは、実際のロケーションとタスクの割り当てを反映しないことは、当該者にとって明らかである。チャネル番号付けは、ここで、複数のチャネルを横断してパイプライン化する概念を単に表示するために利用され、実施のタスクロケーションを表さない。
本発明のパイプラインアーキテクチャ は、PU内の命令処理に限定されないが、PUからPUへのアーキテクチャレベルにも存在する。図13bに図示したように、各タスクが複数のステップから構成される複数のタスクの処理を完成させるために複数のPUは、データセットN上にパイプライン式で動作することが可能である。第1PU1305bは、タスクAとラベルされたエコキャンセル機能を行うことが可能である。第2PU1310bは、タスクBとラベルされたトーン信号機能を行うことが可能である。第3PU1315bは、タスクCとラベルされたエンコード機能の第1セットを行うことが可能である。第4PU1320bは、タスクDとラベルされたエンコード機能の第2セットを行うことが可能である。
タイムスロット1350bにおいて、第1PU1305bは、データセットN上にタスクA1 1380bを行う。タイムスロット2 1355bにおいて、第1PU1305bは、データセットN上にタスクA2 1381bを行い、及び、第2PU1310bは、データセットN上にタスクB1 1387bを行う。タイムスロット3 1360bにおいて、第1PU1305bは、データセットN上にタスクA3 1382bを行い、第2PU1310bは、データセットN上にタスクB2 1388bを行い、及び、第3PU1315bは、データセットN上にタスクC1 1394bを行う。タイムスロット4 1365bにおいて、第1PU1305bは、データセットN上にタスクA4 1383bを行い、第2PU1310bは、データセットN上にタスクB3 1389bを行い、第3PU1315bは、データセットN上にタスクC2 1395bを行い、及び、第4PU1320bは、データセットN上にタスクD1 1330を行う。
タイムスロット5 1370bにおいて、第1PU1305bは、データセットN上にタスクA5 1384bを行い、第2PU1310bは、データセットN上にタスクB4 1390bを行い、第3PU1315bは、データセットN上にタスクC3 1396bを行い、及び、第4PU1320bは、データセットN上にタスクD2 1331を行う。タイムスロット6 1375bにおいて、第1PU1305bは、データセットN上にタスクA5 1385bを行い、第2PU1310bは、データセットN上にタスクB4 1391bを行い、第3PU1315bは、データセットN上にタスクC3 1397bを行い、及び、第4PU1320bは、データセットN上にタスクD3 1332bを行う。パイプライン処理は次にどのように行われるかは、当業者にとって明らかである。
この例示の実施の形態において、パイプラインアーキテクチャを有する特殊化したPUの組み合わせは、シングルメディアレイヤ上により多くのチャネルの処理を可能にする。各チャネルはG.711コーデックと、DTMF検出/生成、音声アクティビティ検出(VAD)、コンフォールト雑音生成(CNG)、及びコール識別を有するエコテールキャンセルの128msを実装しているとき、メディアエンジンレイヤは、チャネル当たり1.95MHzで動作する。結果チャネル電力消費は、0.13μ標準のセルテクノロジーを利用して、チャネル当たり6mW、又は約6mWである。
パケットエンジン
本発明のポケットエンジンは通信プロセッサである。好ましい実施の形態において、通信プロセッサは、回路交換ネットワーク、パケットベースIPネットワーク、及びセルベースATMネットワークの間のメディアゲートウェイ処理システムに利用される、多数のインターフェースとプロトコルをサポートする。限定されないが、セルとパケットのカプセル化、トラヒックマネジメントと、他のサービスとマルチプロトコルラベルスイッチングの配達用のタグ付け用のサービス機能の品質、及びセルとパケットネットワークのブリッジを含むメディア処理を可能にするための複数の機能を提供することができる独特のアーキテクチャからパケットエンジンが構成される。
図14に示すように、パケットエンジン1400の例示のアーキテクチャを提供している。図示されたこの実施の形態では、パケットエンジン1400は、OC-12まで、又は、およそ OC-12のデータレートをハンドルするように構成される。データハンドリングのレートをOC−12を超えて増加させるために、基本アーキテクチャに修正を入れることが当業者にとって明らかである。パケットエンジン1400は、複数のプロセッサ1405、ホストプロセッサ1430、ATMエンジン1440、インバウンドDMAチャネル1450、アウトバウンドDMAチャネル1455、複数のネットワークインターフェース1460、複数のレジスタ1470、メモリ1480、外部メモリインターフェース1490、及び制御及び信号情報の受信手段1495からなる。
プロセッサ1405は、内部キャッシュ1407、中央処置ユニットインターフェース1409、及びデータメモリ1411からなる。好ましい実施の形態において、プロセッサ1405は、16Kbの命令キャッシュと12Kbローカルメモリを有する32ビット縮小命令セットコンピューティング(RISC)プロセッサからなる。中央処置ユニットインターフェース1409は、プロセッサ1405が他の内部メモリ、外部メモリ、及びパケットエンジン1400と通信することを可能にする。プロセッサ1405は、インバウンドとアウトバウンド通信トラヒックの両方がハンドルできることが好ましい。
好ましい実装は、一般的に、プロセッサの半分は、インバウンドトラヒックをハンドルする間、他の半分はアウトバウンドトラヒックをハンドルする。パケットエンジン1400の特殊要素は、メモリ1411に、競合無しで独立にアクセスでき、よって、全体のスループットを増加させるように、プロセッサ1405内のメモリ1411は、複数のバンクに分割されていることが好ましい。好ましい実施の形態において、アウトバウンドDMAチャネルがメモリバンク3からの処理済みパケットの伝送をしている間と、プロセッサがメモリバンク2からのデータ処理している間に、インバウンドDMAチャネルがメモリバンク1に書き込みできるように、メモリは3つのバンクに分割される。
ATMエンジン1440は、2つのプライマリサブコンポネントからなり、ここでATMRxエンジンとATMMxエンジンという。ATMRxエンジンは、入ってくるATMセルヘッダを処理し、内部メモリ内又は、システムへの外部のとき他のセルマネージャ内に処理して、対応するAALプロトコル、特にAAL1、AAL2、AAL5、に従ってセルを転送する。ATMTxエンジンは、出力のATMセルを処理し、UTOPIAII/POSIIインターフェース等の特定のインターフェースへデータ転送をアウトバウンドDMAチャネルに要求する。データ交換用のローカルメモリの独立ブロックがあることが好ましい。
ATMエンジン1440は、AALチャネル、すなわちAAL2、を、TDMバス(パケットエンジン1400がメディアエンジンの接続されているところ)上の対応チャネルに、又は、IPとATMシステム間のインターネットワーキングが要求される対応IPチャネル識別器にマップするデータメモリ1483の組み合わせで動作する。内部メモリ1480は、仮想パス識別器(VPI)、仮想チャネル識別器(VCI)、及び互換性の識別器(CID)を有するチャネル識別器の比較及び/又は関連用に、複数のテーブルを維持するために、独立ブロックを利用する。
VPIは、ルーチングされるセルを示す仮想パスを表す、ATMセルヘッダ内の8ビットフィールドである。VCIは、デバイス間のセッションのコース中に、セルのどのストリームがトラベルするか示す仮想チャネルを示し、ATMセルヘッダ内の16ビットフィールドで定義された独特の番号タグから構成された仮想チャネルのアドレス又はラベルである。複数のテーブルは、ホストプロセッサ1430によってアップデータされ、ATMRxとATMTxエンジンに共有されることが好ましい。
ホストプロセッサ1430は、命令キャッシュ1431を有するRICSプロセッサであることが好ましい。ホストプロセッサ1430は、PCIバス等のバスをオーバーしてメディアエンジンと、PCI−PCIブリッジを通して信号ホスト等のホストと通信できるCPUインターフェース1432を通して他のハードウェアブロックと通信する。
ホストプロセッサ1430は、CPUインターフェース内の中断ハンドラー1433によってハンドルされるそれらの中断伝送を通して、他のプロセッサ1405によって中断されることができる。ホストプロセッサ1430は、次の機能ができることが更に好ましい。1)フラッシュメモリから外部メモリへコードのロードと実行の開始を含むブートアップ処理、インターフェースと内部レジスタの初期化、PCIホストとしての振る舞い、及び、それらを適当に構成し、信号ホスト、パケットエンジン自身、及びメディアエンジン間のインタープロセッサ通信のセットアップ。2)DMAの構成。3)特定ネットワークマネジメント機能。4) 不明アドレス、断片化したパケット、又は、不正ヘッダのパケットの解決等の例外ハンドリング。4)システムシャットダウン時のテーブルの中間格納を提供。5)IPスタックの実装。及び6) 特に、パケットエンジンの外部のユーザ、及び制御と信号手段を通してパケットエンジンとの通信のために、メッセージに基づいたインターフェースの提供。
好ましい実施の形態において、データバスを介して異なるメモリ間のデータ交換のために2つのDMAチャネルが提供される。図14に示すように、インバウンド DMAチャネル1450は、パケットエンジン1400への入力トラヒックのデータ処理要素をハンドルするために利用され、アウトバウンド DMAチャネル1455は、複数のネットワークインターフェース1460への出力トラヒックをハンドルするために利用される。インバウンド DMAチャネル1450は、パケットエンジン1400へ入力される全てのデータをハンドルする。
データを受信してATMとIPネットワークへ伝送するために、パケットエンジン1400は、ネットワーク上に互換通信するのにパケットエンジンを許可する複数のネットワークインターフェース1460を有する。図15に示すように、好ましい実施の形態において、データを受信と伝送するために、622 Mbps ATM/SONET接続1568と通信をしている、ネットワークインターフェースは、GMII PHYインターフェース1562、GMII MACインターフェース1564、及び2つのUTOPIAII/POSIIインターフェース1566から構成される。
IPベーストラヒック用に、パケットエンジン(図示せず。)は、MACをサポートし、IEEE 802.3に規定されたようにイーサネット(登録商標。)インターフェースのPHYレイヤをエミュレートする。ギガビットイーサネットMAC1570は、FIFO1503と制御ステートマシン1525からなる。伝送と受信のFIFO1503は、ギガビットイーサネットMAC1570とバスチャネルインターフェース1505との間にデータ交換するために提供される。バスチャネルインターフェース1505はアウトバウンド DMAチャネル1515とインバウンドDMAチャネル1520とバスチャネルを通して通信している。GMII MACインターフェース1564からIPデータが受信されているとき、MAC1570は、データ移動のために、DMA 1520へ要求を送信することが好ましい。
この要求を受信したら、DMA 1520は、MACインターフェース1564内のタスクキュー(図示せず。)をチェックし、キューパケットを転送することが好ましい。好ましい実施の形態において、MACインターフェース内のタスクキューは、データ長、ソースアドレス、及びあて先アドレスから構成されるデータ構造を含む64ビットレジスタのセットである。DMA1520が複数のあて先(図示せず。)用の書き込みポインタを維持するとき、あて先アドレスは利用されない。DMA 1520は、データをバスチャネルで、プロセッサ内に位置するメモリへ移動させ、予め定義されたロケーションにタスクの数を書き込む。全てのタスクを書き込み終わったら、DMA 1520は、メモリページへ転送されたタスクの合計数を書き込む。
プロセッサは、受信データを処理し、DMAのアウトバウンドチャネル用のタスクキューを書き込むアウトバウンドDMAチャネル1515は、タスクキューを読み込みした後、メモリロケーションに存在するフレームの数をチェックし、データをメディアエンジンタイプI又はIIのPOSIIインターフェース、又はIP−ATMブリッジが行なわれている外部メモリロケーションへ移動する。
ATMのみ又はATMとIPトラヒックの組み合わせのために、パケットエンジンは、IP/ATMトラヒック用のPHYと上部レイヤの間のインターフェースを提供する、2つの構成可能なUTOPIAII/POSIIインターフェース1566をサポートする。UTOPIAII/POSII1580は、FIFO1504と、制御ステートマシン1526から構成される。伝送と、受信FIFOs 1504は、UTOPIAII/POSII1580とバスチャネルインターフェース1506との間のデータ交換のために提供されている。バスチャネル1506はアウトバウンド DMAチャネル1515と、インバウンド DMAチャネル1520とバスチャネルを通して通信している。
UTOPIAII/POSIIインターフェース1566は、UTOPIA level II又はPOS level II モード内に構成されることが可能である。UTOPIAII/POSIIインターフェース1566上にデータが受信されると、データは、存在するタスクをタスクキューにプッシュし、データ移動用にDMA1520を要求する。DMA1520は、データ長、ソースアドレス、及びインターフェース種類から構成されるデータストラクチャを含むタスクキューを、UTOPIAII/POSIIインターフェース1566から読み取る。インターフェース、例えば、POS又はUTOPIA、の種類に依存して、インバウンド DMAチャネル1520は、データを、複数のプロセッサ(図示せず。)又はATMRxエンジン(図示せず。)へ送信する。
ATMRx メモリにデータが書き込まれた後、ATMエンジンで処理され、対応するAALレイヤへパスされる。送信側において、データはATMTxエンジン(図示せず。)の内部メモリへ、対応するAALレイヤによって、移動される。ATMTxエンジンは、希望のATMヘッダを、セルの最初に挿入し、データの長さとソースアドレスのデータストラクチャのタスクキューを有するUTOPIAII/POSIIインターフェース1566 へデータを移動するように、アウトバウンドDMAチャネル1515に要求する。
図16に示すように、制御と信号機能を容易にするために、パケットエンジン1600は、図14に参照番号1495で示された複数のPCIインターフェース1605、1606を有する。好ましい実施の形態において、信号ホスト1610は、初期化部1612を通して、通信バス1617を介して、PCIターゲット1605へ、パケットエンジン1600によって受信されるメッセージを送信する。PCIターゲットは、PCI−PCIブリッジ1620を通して、PCI初期化部1606へこれらのメッセージと通信する。PCI初期化部1606は、通信バス1618を通して、メモリキュー1665と一緒のメモリ1660をそれぞれが有する複数のメディアエンジン1650へメッセージを送信する。
ソフトウェアアーキテクチャ
前に議論したように、前述したハードウェアアーキテクチャの実施の形態上に動作するものは、メディア処理、信号、及びパケット処理を可能にするために設計された、複数の新規、統合されたソフトウェアシステムである。この新規ソフトウェアアーキテクチャは、処理の必要性に依存し、多数の方法で物理的に図示されたロジカルシステム、図5に示された、を可能にする。
ソフトウェアシステムの任意の2つのモジュール、又はコンポネントの間の通信は、アプリケーションプログラムインターフェース(API)によって容易にされている。ソフトウェアコンポネントがハードウェア素子上に、又は複数のハードウェア素子を横断して常駐しているにもかかわらないで、実質的に不変及び一貫したアプリケーションプログラムインターフェースである。これは、異なる処理素子へコンポネントをマッピングすることを許可し、よって、個々のコンポネントに同時に変更をすることなく、物理インターフェースを変更する。
例示の実施の形態おいて、図17に図示したように、第1コンポネント1705は、第2コンポネント1710及び第3コンポネント1715と、それぞれ第1インターフェース1720と第インターフェース1725を通して、連動して動作する。全ての3コンポネント1705、1710、1715は、同じ物理プロセッサ1700上に実行しているので、第1インターフェース1720と第2インターフェース1725は、3コンポネント1705、1710、1715の各APIを介して処理されたマッピング機能を通して、インターフェースタスクを行う。
図17aに示すように、第1コンポネント1705a、第2コンポネント1710a、及び第3コンポネント1715aは、それぞれ別々のハードウェア素子1700a、1701a、1702a、例えば別々のプロセッサ又は処理素子上、に常駐するとき、第1インターフェース1720aと第2インターフェース1725aは、共有メモリ内にキュー1721a、1726aを通ってインターフェースタスクを実装する。インターフェース1720a、1725aはマッピングとメッセージング機能へ限定されることがないとき、コンポネント1705a、1710a、1715aは、インターコンポネント通信を処理するために、同じAPIの利用を継続する。コンポネント自身に必要及び変更無しのとき、変更されたインターフェース又はドライバに頼って、標準APIの一貫した利用は、分散処理環境の異なるハードウェアアーキテクチャへ、様々なコンポネントの移植を可能にする。
図18に今度示すように、ソフトウェアシステム1800の論理分割を図示している。ソフトウェアシステム1800は、メディア処理サブシステム1805、パケット化サブシステム1840、及び信号化/マネジメントサブシステム(以下、信号サブシステムとする。)1870の3つのサブシステムに分割されている。メディア処理サブシステム1805は、エンコードされたデータをパケット化サブシステム1840へ、カプセル化と、ネットワーク送信のために、送信し、デコードされと再生されるネットワークデータをパケット化サブシステム1840から受信する。信号サブシステム1870は、特に、伝送されたパケットの数等のステータス情報を取得、サービスの品質を監視、特定チャネルのモードを制御するために、パケット化サブシステム1840と通信する。
コールの開始と終了用にパケット化セッションの設立と破棄を制御するために、信号サブシステム1870は、パケット化サブシステム1840とも通信する。各サブシステム1805、1840、1870は、更に、メディアの処理と伝送をもたらすために、異なるタスクを行うように設計されたコンポネント1820の一列からなる。各コンポネント1820は、APIを通して、任意の他のモジュール、サブシステム、又はシステムとの通信を処理し、前に議論したように、1個のハードウェア素子上に又は複数のハードウェア素子を横断して常駐するコンポネントにもかかわらず、実質的に不変及び一貫して残る。
図19に図示した例示の実施の形態において、メディア処理サブシステム1905は、システムAPIコンポネント1907、メディアAPIコンポネント1909、リアルタイムメディアカーネル1910、及び音声処理コンポネントからなる。この音声処理コンポネントは、回線エコキャンセルコンポネント1911と、音声アクティビティ検出用専用コンポネント1913、コンフォート雑音生成1915用の専用コンポネント、及び不連続伝送マネジメント1917用の専用コンポネントと、二重トーン(DTMF/MF)、コール・プログレス、コール待機、及びコーラー識別等のトーン信号機能をハンドルする専用のコンポネント1919、及び、音声1927、ファックス1929、及び他のデータ1931用のメディアのエンコード化とデコード化機能用のコンポネントとを含む。
システムAPIコンポネント1907は、システムワイドマネジメントの提供と、外部アプリケーションと個々のコンポネントの間の通信確立を含む個々のコンポネントの密着相互関係の実現、ランタイムコンポネントの追加と削除、中央サーバーからコードのダウンロード、及び、他のコンポネントから要求するコンポネントのMIBへのアクセスができなければならない。メディアAPIコンポネント1909は、リアルタイムメディアカーネル1910と個別音声処理コンポネントと相互作用する。リアルタイムメディアカーネル1910は、メディア処理リソースの割り当てをし、各メディア処理素子上のリソースの利用を監視し、及び実質的に最大密度と効率のロードバランスを行う。
音声処理コンポネントは、マルチ処理素子を横断して分散していることができる。信号エコから削除するために、回線エコキャンセルコンポネント1911は、アダプティブ・フィルタ・アルゴリズムを有効にする。信号エコは、入力信号の発信元へ変調入力信号が反射及び/又は再伝送された結果として起こりえるものである。好ましい実施の形態において、回線エコキャンセルコンポネント1911は、次のフィルタ化アプローチを実装するようにプログラムされている。フィルタ化アプローチは、長さNのアダプティブフィニットインパルスレスポンス(FIR)フィルタは、最小二乗平均アプローチ等のコンバージェンス・プロセスを利用し集中したものである。受信パス上の遠端信号の個別サンプルを取得し、計算されたフィルタ係数でこのサンプルを畳み込み、及び、そして、送信チャネル上の受信信号から結果エコ推定値を適当な時間で差し引くことで、このアダプティブフィルタは、フィルタされた出力を生成する。
畳み込みが完了すると、フィルタは、ARMA-Levinsonアプローチの生成を利用して、無限インパルス応答 (IIR)フィルタへ、変換される。動作の間に、データが、入力ソースから受信され、LMSアプローチを利用し、ポールを固定して、IIRフィルタのゼロをアダプトするのに使われる。この適応処理は、畳み込みされたフィルタ係数のセットを生成し、これの係数は、データをフィルタするのに使われる変調信号を作成するために、入力信号に連続して応用される。変調信号と実際の受信信号の間のエラーは、モニタされ、IIRフィルタのゼロをアダプトするのに更に利用される。測定されたエラーは、予め設定された閾値より大きい場合、畳み込みは、FIR畳み込みステップへ戻って再初期化される。
音声アクティビティ検出コンポネント1913は、到着データを受信し、音声か、その他の種類の信号、例えば雑音、が受信データに存在するかを、特定データパラメータの分析に基づいて判定する。伝送から受信したバックグラウンド雑音に対応する雑音を生成させるように、デコーダを可能にする情報を含むサイレンス挿入ディスクリプタ (SID)を送信するために、コンフォート雑音生成コンポネント1915は動作する。目立てない可聴ノイズのオーバレイは、接続が生きているか切断されているかの識別に関してユーザを手助けし役立つものである。SIDフレームは、例えば、G.729 B コーデック仕様による約15ビットと、一般的に小さい。好ましくは、アップデートされたSIDフレームは、バックグラウンド雑音に十分な変更があるときデコーダに送信される。
DTMF/MFの認識、コール進行、コール待機、及びコーラー識別を含むトーン信号コンポネント1919は、2ステージダイヤルの処理(DTMFトーンの場合)、音声メールの検索、及び到着コールの受理(コール待機の場合)等特定のアクティビティ又はイベントの信号であるトーンを遮断するように動作し、知的マナーのアクティビティ又はイベントの本質を受信デバイスへ通信し、よって、音声ストリーム中の他の素子としてのトーン信号をエンコード化することを回避する。
実施の形態において、トーン信号コンポネント1919は、複数のトーンを認識することができ、よって、一つのトーンが受信されると、トーンの長さ等の他の識別部と一緒にトーンを識別する複数のRTPパケットを送信する。識別されたトーンの発生で、RTPパケットは、このトーンと関連されたイベントを受信ユニットへ運ぶ。2つ目の実施の形態において、トーン信号コンポネント1919は、周波数、量、及び継続時間等のトーンの性質の詳細を示す動的RTPプロファイルを生成することができる。トーンの性質の詳細によって、RTPパケットは、トーンを受信ユニットへ伝達し、受信ユニットがトーンを翻訳することを許可し、従って、イベント又はアクティビティがこれに関連する。
音声1927、ファックス1929、及び他のデータ1931用のメディアのエンコードとデコード機能用のコンポネント、ここでコーデックと参照されたもの、は、音声、ファックス、及び他のデータのエンコードとデコード用のG.711等の国際電気通連合(ITU)の標準仕様に従って考案されたものである。音声、データ、及びファックス通信用のコーデックの例は、ITU標準G.711であり、いつもパルスコード変調と参照されている。G.711は、サンプルレート8000Hzの波形コーデックである。同一の量子化では、96kbpsのビットレートの結果として、信号レベルは、一般的に、サンプル当たりに、少なくとも12ビットを要求する。
同一ではない量子化では、一般的なように、信号レベルは、64kbpsレートに至って、サンプル当たりに、約8ビットを要求する。
他の音声コーデックは、ITU標準G.723.1、G.726、及びG.729A/B/Eを含むことは、当業者に明らかである。他のITU標準は、ファックスメディア処理コンポネント1929によってサポートされ、T.38と、V.17、V.90、及びV.34等のV.xx標準を含むことが好ましい。ファックス用の例示コーデックは、ITU標準T.4とT.30を含む。ファックスマシンがどのように書類をスキャンしたか、スキャン線のコーディング、利用された変調、及び利用された伝送スキームを明確にすることで、T.4は、ファックスイメージのフォーマット、送信者から受信者へのその伝送を取り扱う。他のコーデックは、ITU標準T.38を含む。
図20に示すように、例示の実施の形態において、パケット化サブシステム2040は、システムAPIコンポネント2043、パケット化APIコンポネント2045、POSIX API 2047、リアルタイムオペレーティングシステム(RTOS) 2049、 バッファとトラヒックマネジメントとしてサービス機能の品質を行う専用のコンポネント2050、IP通信を実現するコンポネント2051、ATM通信を実現するコンポネント2053、リソース予約プロトコル(RSVP)用のコンポネント2055、及びマルチプロトコルラベルスイッチング(MPLS)用のコンポネント2057からなる。
パケット化サブシステム2040は、ATMとIPネットワークへの伝送用に、エンコードされた音声/データをパケットへカプセル化することを容易にし、パケット遅延、パケット損失、及びジッタマネジメントを含むサービス素子の特定品質をマネージし、及び、制御ネットワークトラヒックへトラヒックシェーピングを実装する。メディア処理サブシステム(図示せず。)と信号サブシステム(図示せず。)と通信することで、パケット化APIコンポネント2045は、パケット化サブシステム2040へのアクセスを容易にする外部アプリケーションを提供する。POSIX API 2047レイヤは、オペレーティグシステムを、コンポネントから分離し、一貫したOS APIを有するコンポネントを提供し、よって、ソフトウェアが他のOSプラットフォームに移植されたとき、このレイヤ上のコンポネントが変更されないことを保証する。RTOS2049は、ハードウェア命令へソフトウェアコードの実装を容易にするOSとして振舞う。
IP通信コンポネント2051は、TCP/IP、UDP/IP、及びRTP/RTCPプロトコル用のパケット化をサポートする。ATM通信コンポネント2053は、AAL1、AAL2、及びAAL5プロトコル用のパケット化をサポートする。 パケットエンジンのRISCプロセッサ上に、RTP/UDP/IPスタックが実装されていることが好ましい。ATMスタックの一部は、RISCプロセッサ上に実装され、ATMスタックの計算集中する部分がATMエンジン上に実装されていることも好ましい。
RSVP2055用のコンポネントは、IPネットワーク用のリソース予約テクニックを指定する。RSVPプロトコルは、メディアを参加者間に交換する任意の試みの前に、リソースが特定セッション(又は複数のセッション)用に予約されることができるようにする。サービスの2レベルは、一般的に、実現される。この2レベルは、従来の回路交換ネットワークによって達成された品質をエミュレートする保証レベルと、及びベストエフォートアンドノーロード条件のネットワークで達成したサービスのレベルと実質的に等しい、制御されたロードを含む。動作中、送信ユニットは、PATHメッセージを受信ユニットへ複数のルータを介して発行する。
PATHメッセージは、送信者が送信するために予定しているもので、バンド幅要求とパケットサイズを含むデータについて詳細を提供するトラヒック仕様(Tspec)を含む。伝送パスに従った各RSVP有効ルータは、PATHメッセージ(前のルータ)の前のソースアドレスを含むパスステートを確立する。受信ユニットは、Tspecと、コントロールされたロード又は保証されたサービス等の要求された予約サービスの種類についての情報を有するフロー仕様を含む予約要求(RESV)に反応する。RESVメッセージは、同じルータパスウェイに沿って送信ユニットへ戻る。各ルータで、リソースが利用可能であり、かつ、受信者は要求する権利を有するように提供された要求リソースは、割り当てられる。RESVは、送信ユニットに、必要な、必須のリソースが予約されたことを示す確認と一緒に最終的に到着する。
ソースから目的地へのパスに次のルータを判定する目的のために、MPLS2057用のコンポネントは、ネットワークへの入れ口でトラヒックをマークするように動作する。もっと詳しくは、MPLS2057コンポネントは、IPヘッダのフロント内のパケットへパケットを転送するのにルータが必要とする全ての情報を含むラベルを添付する。ラベルの値は、パス内の次のホップと、次のルータへパケットを転送するための基礎を調べるのに利用される。従来のIPルーチングは、従来IPルーチングのような最長マッチではなく、的確なマッチ用に探すMPLSプロセス以外、同様に動作する。
図21に示すように、例示の実施の形態において、信号サブシステム2170は、ユーザアプリケーションAPIコンポネント2173、システムAPIコンポネント2175、POSIX API2177、リアルタイムオペレーティングシステム(RTOS)2179、信号化API2181、ATMネットワーク2183用の信号化スタックと、IPネットワーク2185用の信号化スタックのような信号化機能を行うための専用のコンポネント、及びネットワークマネジメントコンポネント2187からなる。信号化API2181は、ATMネットワーク2183用の信号化スタックと、IPネットワーク2185用の信号化スタックへの簡単なアクセスを提供する。
信号化API2181は、マスターゲートウェイとN個のサブゲートウェイからなる。シングルマスタゲートウェイは、これと連携したNサブゲートウェイを有することができる。マスターゲートウェイは、ATM又はIPネットワークから来る到着コールの分離を行い、そのコールを、リソースが利用できるサブゲートウェイへルーチングする。サブゲートウェイは、全てのアクティブ終了用にステートマシンを維持する。サブゲートウェイは、たくさんの停止をハンドルするために複製されることができる。この設計を利用して、マスターゲートウェイとサブゲートウェイは、シングルプロセッサ上又はマルチプロセッサを横断して存在でき、よって、たくさんの停止と実質的拡張性の供給のために、信号の同様な処理を可能にする。
ユーザアプリケーションAPIコンポネント2173は、メディア処理サブシステム、パケット化サブシステム、及び信号化システム各々からなる全体ソフトウェアシステムとインターフェースするために外部アプリケーション用の手段を提供する。ネットワークマネジメントコンポネント2187は、シンプルネットワークマネジメントプロトコル(SNMP)のサポートを通して、ローカルとリモート構成、及びネットワークマネジメントをサポートする。ネットワークマネジメントコンポネント2187の構成部分は、構成とネットワークマネジメントタスクを処理するために他のコンポネントのどれともと通信でき、特定コンポネントの追加又は移動等のタスクのためのリモート要求をルートすることができる。
ATMネットワーク2183用の信号化タスクは、AAL1、AAL2、及びAAL5プロトコルを利用して、データの通信用のユーザネットワークインターフェース(UNI)用のサポートを含む。ユーザネットワークインターフェースは、ソフトウェアシステムとハードウェアシステムからなるゲートウェイシステムと、ATMネットワークとの間の手続とプロトコル用の仕様からなる。IPネットワーク2185用の信号化スタックは、メディアゲートウェイ制御プロトコル(MGCP)、H.323、セッション初期化プロトコル(SIP)、H.248、及びネットワークベースコール信号化(NCS)を含む複数の認められた標準のためのサポートを含む。
MGCPは、マルチ特殊デバイスを横断して、分散され得るコンポネントである、プロトコル変換の仕様を定めている。MGCPは、外部制御と、マルチサービスパケットネットワークの境界で動作するメディアゲートウェイ等のデータ通信機器のマネジメントを可能にする。H.323標準は、ネットワーク上にリアルタイム音声とビデオを伝送するための仕様で、パケットネットワーク等のサービスの保証レベルを提供する必要ない、コール制御のセット、チャネルセットアップ、及びコーデック詳細を定義している。SIPは、IPベースネットワーク上に会議と電話セッションの確立、変調、及び停止のためのアプリケーションレイヤプロトコルであり、交渉特徴の機能と、セッションが確立されたときセッションの機能を有する。H.248は、MGCPの実装の下で推薦を提供する。
更に、拡張性と実装を容易に実現するために、本ソフトウェア方法とシステムは、利用されている処理ハードウェアについての特定知識を要求しない。図22に示すように、一般的な実施の形態において、ホストアプリケーション2205は、DSP2210と、中断機能2220と共有メモリ2230を介して、相互作用する。図23に示すように、同じ機能は、同じプロセッサ2315上にアプリケーションコード2320として分離独立スレッドとしてのバーチャルDSPプログラム2310の動作を通して、シミュレーション実行によって達成できる。このシミュレーション実行は、タスクキューミューテックス2330と条件変数2340によって可能になる。タスクキューミューテックス2330は、バーチャルDSPプログラム2310とリソースマネジャ(図示せず。)の間に共有されたデータを保護する。条件変数2340は、アプリケーションがバーチャルDSP2310と同期化することを許可し、他の意味で言えば、図22の中断2220の機能と同様である。
第2の例示の応用
序文
現在、ビデオと音声ポートは分離している。ビデオ伝送用にデバイスを接続するのに、大きくて、値段の高いビデオケーブルを利用している。加えて、VGAとDVI等の共通のビデオ接続は、音声データを取り扱わない。VGAはアナログ伝送であるため、実質的に信号の劣化無く伝送するには、利用できるケーブルの長さが、限定されている。広く採用された標準、USBと特にUSB2.0、を、音声とビデオポートの結合されたポートとして、利用することが好ましい。現在、そのような利用を許可する統合チップソリューションは提供されていない。
本発明は、損失無しのグラフィックコーデックに加えて、コーデック (特に、MPEG2/4, H.264) のビデオタイプもサポートするシステム又はチップである。また、データストリーム間を識別する新規のプロトコルも含む。特に、エンコーダとデコーダの両サイドに存在する新規システム多重器は、ビデオ、音声、グラフィック及び制御の4つのデータストリームの各々を識別とマネージすることができる。本システムは、リアルタイム又はリアルタイムでない環境で利用できる。
例えば、エンコードされたストリームは、将来のディスプレイ用に格納されること、又はリアルタイムストリーミング若しくはストリーミングではないアプリケーション用に任意のタイプのネットワーク上にストリームされることができる。本発明においては、USBインターフェースは、圧縮なしで、標準定義ビデオの音声と一緒に送信することに利用できる。音声と一緒の圧縮無しの標準定義ビデオは、250Mbps以下で、1秒当たり248キロビットの圧縮音声を要求する。高定義ビデオは、損失無しのグラフィック圧縮を利用して同様に伝送されることができる。
この革新的なアプローチによって、数々の応用が可能になる。例えば、モニタ、プロジェクタ、ビデオカメラ、セットトップボックス、コンピュータ、ディジタル録画器、及びテレビが、USB接続のみを必要とし、他の音声又はビデオポートを追加して要求することがなくなる。グラフィックオーバーレイに頼るのと対照的に、マルチメディアシステムは、統合されたグラフィック又は標準ビデオと一緒のテキスト・インテンシブ・ビデオによって、改良できる。その結果、TVへのUSB、及び、コンピュータアプリケーションへのUSB、及び/又は、TVへのインターネットプロトコル(IP)、及び、コンピュータアプリケーションへのIPを可能にする。IP通信を利用した場合、データは、パケット化され、サービス品質(QoS)ソフトウェアでサポートされる。
接続の簡易化及び改良は別として、本発明は、今まで、実現されていないユーザアプリケーションを実現する。1つの実施の形態において、本発明は、分散デバイス又はルータを要求することなく、家庭内の複数のデバイスの無線ネットワークを実現する。無線送信機を有する本発明の統合チップからなるデバイスは、セットトップボックス、モニタ、ハードディスク、テレビ、コンピュータ、ディジタル録画器、ゲーム機 (Xbox, Nintendo, Playstation)等の各デバイスのポートにアタッチされ、及び、リモートコントロール、赤外線コントローラ、キーボード又はマウス等の制御デバイスを利用して制御可能である。ビデオ、グラフィック、及び音声は、任意のデバイスから任意の他のデバイスへ、コントローラデバイスを利用して、ルーチングされることができる。制御デバイスは、任意のネットワークされたデバイスへデータを入力するのに利用できる。
よって、シングルモニタは、コンピュータ、ディジタル録画器、セットトップボックス、ハードディスクドライブ、又は他のデータソースを含む複数の異なるデバイスへネットワークされることができる。シングルプロジェクタは、コンピュータ、ディジタル録画器、セットトップボックス、ハードディスクドライブ、又は他のデータソースを含む複数の異なるデバイスへネットワークされることができる。シングルTVは、コンピュータ、セットトップボックス、ディジタル録画器、ハードディスクドライブ、又は他のデータソースを含む複数の異なるデバイスへネットワークされることができる。追加して、シングルコントローラは、複数のTV、モニタ、プロジェクタ、コンピュータ、ディジタル録画器、セットトップボックス、ハードディスクドライブ、又は他のデータソースの制御に利用できる。
もっと詳しくは、図27に図示したように、デバイス2705は、任意のアナログ若しくはディジタルビデオ、グラフィック又は音声メディアを含むメディア、及び、任意の種類の制御情報(赤外線、キーボード、マウス)2703を、任意の無線若しくは有線ネットワーク又は直接接続を通して、任意のソース2701から受信できる。伝送されるメディアに変更又は作用するために、デバイス2705は、そして、コントローラ2703からの制御情報を処理し、メディアソース2701へ伝送する。このデバイスは、任意の種類のディスプレイ2709又は任意の種類のストレージデバイス2709へ、メディアを伝送することができる。図27の各素子それぞれは、ローカル又はリモートであることができ、有線若しくは無線ネットワーク又は直接接続を介して、データ通信している。
この新規発明は、従って、完全に分離及び独立のコントローラ、メディアソース、及びディスプレイを実現し、更に、全てのメディアタイプの処理をシングルチップへ統合する。1つの実施の形態において、ユーザは、デバイス2705の手で持って操作できるバージョンを有する。デバイス2705は、少なくとも1つのテレビリモートコントローラ、キーボード、又はマウスに既存のコントロール機能用に提供されたコントローラである。デバイス2705は、テレビリモートコントローラ、キーボード、又はマウスの機能の2又は全3を結合することができる。デバイス2705は、本発明の統合チップを含み、小さい画面、データストレージ、及び、従来の個人情報端末又は携帯電話器にある他の機能をオプションで含むことができる。
デバイス2705は、コンピュータ、セットトップボックス、テレビ、ディジタル録画器、DVD再生器、又は他のデータソースであることができるユーザのメディアソース2701とデータ通信している。ユーザのメディアソース2701は、リモートの場所に位置することができ、無線ネットワークを介してアクセスできる。ユーザのメディアソース2701は、本発明の統合チップをも有する。このデバイスは、ホテル、家庭、ビジネス、飛行機、レストラン、又は他のリテール場所等の任意の場所に配置された、任意の種類のモニタ、プロジェクタ、又はテレビ画面であることができるディスプレイ2709とデータ通信している。ディスプレイ2709は、また、本発明の統合チップを有する。
ユーザは、任意のグラフィック、ビデオ、又は音声情報に、メディアソース2701からアクセスでき、ディスプレイ2709上にこれを表示する。また、ユーザは、メディアソース2701からのメディアのコーディングの種類を変更でき、リモートに配置され、有線若しくは無線ネットワーク又は直接接続でアクセス可能なストレージデバイス2710内にこれを格納する。各メディアソース2701とディスプレイ2709内には、統合チップは、デバイスに統合され、又はUSBポート等のポートを介して外部接続されていることができる。
これらのアプリケーションは、家庭に限定されるものではなく、マルチデータソースとモニタのリモートモニタリングとマネジメント用に病院等のビジネス環境にも利用できる。通信ネットワークは、任意の通信プロトコルであることができる。一つの応用は、シングルコントローラで制御されることで、任意のネットワークされたモニタに伝送可能なデータで、X線機器、金属検出器、ビデオカメラ、トレース検出器、及び他のデータソースからのデータと一緒にセキュリティネットワークが確立される。
ハイレベルアーキテクチャ
図25に図示したように、本発明の第2実施の形態2500のブロックダイアグラムが図示されている。伝送端でのシステムは、メディア処理デバイス2515へ集合され統合された、提供又は統合されることが可能なもの等のメディアソース2501、メディア処理デバイス、複数のメディア前処理ユニット2502、2503、ビデオ及びグラフィックエンコーダ2504、音声エンコーダ2505、多重器2506、及び制御ユニット2507からなる。ソース2501は、これが処理され、ビデオ及びグラフィックエンコーダ2504及び音声エンコーダ2505へ転送される前処理ユニット2503、303へグラフィック、テキスト、ビデオ、及び/又は音声データを送信する。
ビデオとグラフィックエンコーダ2505及び音声エンコーダ2506は、前処理されたマルチメディアデータに圧縮又はエンコーディング動作を行う。2つのエンコーダ2504、2505は、更に、多重器の機能を可能にするために、それとデータ通信している制御回路を備えている多重器2506に接続される。多重器2506は、シングルデータストリームを形成するために、ビデオとグラフィックエンコーダ2504及び音声エンコーダ2505からのエンコードされたデータを結合する。これは、マルチデータストリームが、任意の適当なネットワーク2508の物理又はMACレイヤ上で1つの場所から他へ送信されることを可能にする。
受信端では、システムは、メディア処理デバイス2516へ集合して統合された分離器2509、ビデオとグラフィックデコーダ2511、音声デコーダ2512及び複数のポスト処理ユニット2513、2514からなる。ネットワーク2508上に存在するデータは、分離器2509によって受信され、ハイデータレートストリームを元のローレートストリームへ分解し、データストリームを元のマルチストリームへ変換される。マルチストリームは、今度、異なるデコーダ、例えば、ビデオとグラフィックデコーダ2511及び音声デコーダ2512、へパスされる。対応するデコーダは、圧縮されたビデオとグラフィック及び音声データを適当な解凍アルゴリズム、好ましくはLZ77、に従って、解凍し、解凍されたデータがディスプレイ及び/又は更なるレンダリングに用意されたポスト処理ユニット2513、2514へそれらを供給する。
メディア処理デバイス2515、2516の両方は、ハードウェアモジュール又はソフトウェアサブルーチングであることができるが、好ましい実施の形態において、ユニットは、シングル統合チップへ統合される。統合チップは、データストレージ又はデータ伝送システムの一部として利用される。
任意の従来のコンピュータ互換性のポートは、本統合システムと一緒にデータを伝送するのに利用できる。統合チップは、USBポート、好ましくは高速のデータ送信用にUSB2.0、と結合されていることができる。ベーシックUSBコネクタは、音声に加えて、全てのビジュアルメディアを伝送するのに利用でき、よって、分離されたビデオとグラフィックインターフェースの必要性を無くす。標準定義ビデオとハイ定義ビデオは、圧縮無しで又は損失無しのグラフィック圧縮を利用して、USBで送信されることができる。
図26に示すように、統合チップ2600は、ビデオデコーダ2601、ビデオトランスコーダ2602、グラフィックコーデック2603、音声プロセッサ2604、ポストプロセッサ2605、及びスーパーバイゾリRISC 2606を含む複数の処理レイヤ、並びに、音声ビデオ入力/出力(LCD、VGA、TV)2608、GPIO2609、IDE(Interactive Development Environment)2610、イーサネット2611、USB2612、及び赤外線、キーボード、及びマウスのコントローラ2613を含む複数のインターフェース/通信プロトコルからなる。インターフェース/通信プロトコルは、ノンブロッキングクロス接続2607を通して複数の処理レイヤとデータ通信する。
統合チップ2600は、SXGAグラフィックプレイバック、DVDプレイバック、グラフィックエンジン、ビデオエンジン、ビデオポストプロセッサ、DDR SDRAMコントローラ、USB2.0インターフェース、クロス接続DMA、音声/ビデオ入出力(VGA、LCD、TV)、ローパワー、280ピンBGA、1600x1200グラフィックオーバーIP、リモートPCグラフィックとハイ定義イメージ、1000xまでの圧縮、802.11上の伝送の実現、統合MIPSクラスCPU、アプリケーションソフトウェア統合の容易化用のLinux及び WinCEのサポート、セキュアデータ伝送用のセキュリティエンジン、有線及び無線ネットワーキング、ビデオ&制御(キーボード、マウス、リモート)、及びイメージ向上用のビデオ/グラフィックポストプロセッサを含む数々の利点特徴を有する。
ここで併合したビデオコーデックは、数ある中で特にMPEG-2, MPEG-4, WM-9, H.264, AVS, ARIB, H.261, H.263等の 全てブロックベース圧縮アルゴリズムでデコードするコーデックを含むことができる。加えて、コーデックに基づいた標準の実装に、本発明は、独自に開発したコーデックを実装できることは明である。そのような応用において、低複雑度のエンコーダは、PC内でビデオフレームを取得し、それらを圧縮し、それらをIPでプロセッサへ伝送する。プロセッサは、伝送をデコードし、プロジェクタ、モニタ、又はTVを含む任意のディスプレイ上にPCビデオを表示するデコーダを操作する。ラップトップ内に実行しているこの低複雑度のエンコーダと、TVに接続されている無線モジュールと通信しているプロセッサを備えることで、人々は、写真、ホームムービー、DVD、インターネットからダウンロードしたコンテンツ等のPCベース情報を大画面TV上に共有できる。
ここで組み込まれたグラフィックコーデックは、1600X1200グラフィックエンコーダと1600X1200グラフィックデコーダを含むことができる。トランスコーダーは、フレームレート、フレームサイズ、又はビットレート変換を利用した高品質の任意のコーデックから他の任意のコーデックへの変換を可能にする。クチャー・イン・ピクチャーとグラフィックデコードを有する2つの同期高定義デコーデックも、ここで含まれることができる。
本発明は、更に、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, HDCP、CGMS、及びDTCP等を含む既知の数々のセキュリティメカニズムを利用したセキュリティも提供される。
ビデオが圧縮されていない場合、受信器とインターフェースでUSBポートだけが要求され、RGBをディスプレイへ、及び、音声を音声デコーダへ分散するかを注目すべきである。もし、ビデオが圧縮された場合、グラフィック解凍ユニットは受信機でまた要求される。改良されたビデオ品質は、エラー隠蔽、デ・ブロッキング、デ・インタレース、アンチフリッカー、スケール化、ビデオエンハンスメント、及びカラー空間変換等のポスト処理テクニックを通して配達される。特に、ビデオポスト処理は、ジッタ等の不要な成果物を取り除くインテリジェント・フィルタリングを含む。
新規の統合チップアーキテクチャは、コーデック計算、及び、コーデック関連の決定をアドレスしている集中型マイクロプロセッサベース制御をハンドルするアプリケーション特定分散データパスを提供する。結果アーキテクチャは、コーディング、コーデックの種類の増加、コーデック当たりの処理要求の膨大量、データレート要求の増加、データ品質(雑音の多い、クリーン)の異なり、複数の標準、及び複雑な機能に関して複雑さの増加をハンドルできる。
他の特性の中で、並列処理の実質的な度合いを有するので、新規アーキテクチャは、上述の利点を達成できる。並列処理の第1レベルは、とても特殊のタスクをするために、知的に起動し、又はスケジュールされ、又はデータパスするRISCマイクロプロセッサからなる。並列処理の第2レベルは、フルロードされたデータパス(後で、図示し議論する。)をキープするロードスイッチマネジメント機能からなる。並列処理の第3レベルは、動き推定又はエラー隠蔽 (後で、図示し、議論する)等の特殊処理タスクを行うのに効率的に特化したデータレイヤ自身からなる。
別の言い方をすれば、全体的なメディアプロセッサアーキテクチャにおいて、粗並列処理 (トップレベルの制御インテンシブステートマシンで実行し、プログラミングのモデルをシンプルにキープするエンコード/デコードエンジン)、中程度並列処理 (100%近くの効率の任意のブロックDCTベースコーデックの実装及びスケジューリングができるメディアスイッチ) 、及び密並列処理(データパス等の複雑な数値計算機能を実行する最適化されたマクロコードを実行するプログラム可能な機能ユニット)を提供するためのプログラム可能なブロックがある。この特殊なアーキテクチャは、固定機能のダイサイズと能力での、完全プログラマビリティを実現する。
図30に示すように、統合チップの他の観点が提供されている。DPLP3000は、通信データバスを介して互いに通信し、及び処理レイヤコントローラ3007と中央ダイレクトメモリアクセス(DMA)コントローラ3010とは、通信データバスと処理レイヤインターフェース3015を介して通信している複数の処理レイヤ3005からなる。各処理レイヤ3005は、CPU3004と通信しているCPUインターフェース3006と順番で通信している。各処理レイヤ3005内において、複数のパイプライン処理ユニット3030は、複数のプログラムメモリ3035とデータメモリ3040と、通信データバスを介して、通信している。各プログラムメモリ3035とデータメモリ3040は、通信データバスを介して、少なくとも1個のPU3030によってアクセスされることが好ましい。各PU3030、プログラムメモリ3035、及びデータメモリ3040は、外部メモリ3047と、通信データバスを介して、通信している。
好ましい実施の形態において、処理レイヤコントローラ3007は、各処理レイヤ3005への、タスクのスケジューリング及び処理タスクの分散をマネージする。処理レイヤコントローラ3007は、ラウンドロビン式で、プログラムメモリ3035及びデータメモリ3040へ及びからのデータとプログラムコード転送要求を解決する。この解決に基づいて、処理レイヤコントローラ3007は、ユニットがメモリへどのように直接アクセスするか、すなわちDMAチャネル(図示せず。)、を定義したデータパスウェイを充填する。
処理レイヤコントローラ3007は、これのデータフローに従って命令をルーチングし、リードイン要求、ライトバック要求、及び命令転送等の全てのPU3030用の要求ステートのトラックをキープするために命令デコードを行うことができる。処理レイヤコントローラ3007は、更に、DMAチャネルのプログラミング、信号生成の開始、各処理レイヤ3005内のPU3030用のページステートのメインテニング、スケジューラ命令のデコード、及び各PU 3030のタスクキューから及びへのデータの移動のマネージング等のインターフェース関連機能を処理することができる。上述の機能を行うことで、処理レイヤコントローラ3007は、実質的に、複雑ステートマシンを各処理レイヤ3005に存在するPU3030と関連つけする必要性を無くす。
DMAコントローラ3010は、ローカルメモリバッファPUと、SDRAM等の外部メモリの間のデータ転送をハンドルするためのマルチチャネルDMAユニットである。各処理レイヤ3005は、PUローカルメモリバッファへ及びからデータを転送するために割り当てられたもので、独立したDMAチャネルを有する。外部メモリへアクセスするDMA内のチャネル間の、ラウンドロビン解決のシングルレベル等の解決処理があることが好ましい。DMAコントローラ3010は、PU3030と処理レイヤ3005を横断したラウンドロビン要求解決用のハードウェアサポートを提供する。
各DMAチャネル機能は、互いに独立している。例示の動作において、ローカルメモリのアドレス、外部メモリのアドレス、伝送のサイズ、転送の方向、すなわちDMAチャネルが外部メモリからローカルメモリへ、又は逆方向に、データを転送しているか、及び、PU3030用にどのぐらいの転送が要求されたかを利用することで、ローカルPUメモリと外部メモリの間の転送を処理することが好ましい。DMAコントローラ3010は、更に、プログラムコードフェッチ要求用のプライオリティの解決、リンクリストトラバース及びDMAチャネル情報生成の処理、及びDMAチャネルプリフェッチ及び完了した信号生成の実行が可能であることが好ましい。
処理レイヤコントローラ3007とDMAコントローラ3010は、複数の通信インターフェース3060、3090と、制御情報とデータ伝送が現れるたびに、通信している。
DPLP3000は、処理レイヤコントローラ3007とDMAコントローラ3010と通信し、及び、外部メモリ3047と通信している外部メモリインターフェース(SDRAMインターフェース等)3070を含むことが好ましい。
各処理レイヤ3005内において、処理タスクの定義されたセットの処理用に特別に設計された複数のパイプラインPU3030がある。その点で、PUは、一般目的プロセッサではなく、どの処理タスクを処理するのに利用することができない。特定機能ユニットの共通性で生じる特定処理タスクの調査と分析は、結合されたとき、それらの特殊処理タスクの存在を最適処理することができる特殊PUを生じる。各PUの命令セットアーキテクチャは、コンパクトコードをもたらす。コード密度の増加は、要求メモリの減少と、従って、要求エリア、パワー、及びメモリトラフィックの減少をもたらす。
各処理レイヤにおいて、PU3030は、先入れ先出し(FIFO)タスクキュー(図示せず。)を通して、処理レイヤコントローラ3007によってスケジュールされたタスク上に動作することが好ましい。パイプラインアーキテクチャは、パフォーマンスを改善する。パイプライン化は、マルチ命令が実行時にオーバーラップされる実装テクニックである。コンピュータパイプラインにおいて、パイプラインの各ステップは、命令の一部を実行する。アセンブリラインのように、異なるステップは、異なる命令の異なるパートを平行で実行する。これらの各ステップは、パイプステージ又はデータセグメント呼ばれる。ステージは、パイプを形成するために、次のステージに接続されている。プロセッサ内に、命令はパイプの一端から入り、ステージを通して進行し、他端から出る。命令パイプラインのスループットは、パイプラインから命令がどのぐらいの頻度で出ているかで定義される。
追加して、各処理レイヤ3005内には、分散されたメモリバンク3040のセットがあり、処理済み情報と、割り当てられた処理タスクを処理するのに要求された他のデータのローカルストレージを可能にする。離散処理レイヤ3005内に分散されたメモリ3040を有することによって、DPLP 3000は、柔軟になり、生産時、高い生産収率をもたらす。従来、メモリブロックが増加すると、悪いウェハ(破損したメモリブロックが原因)の確率も増加するため、特定DSPチップはシングルチップ上に9メガバイトより大きいメモリをもって生産されなかった。
本発明において、余分な処理レイヤ3005を取り入れることで、DPLP3000は、12メガバイト以上のメモリを有して生産できる。余分な処理レイヤ3005を取り入れることは、大きなメモリのチップ生産を可能にする。これは、メモリブロックのセットが悪いと、チップ全体を捨てるより、破損メモリユニットが見つかった分散処理レイヤは利用しないで、他の処理レイヤが代わりに利用できるためである。マルチ処理レイヤの拡張性の本質は、余分なものを可能にし、よって、高い生産収率を実現する。
一つの実施の形態において、DPLP3000は、ビデオエンコード処理レイヤ3005とビデオデコード処理レイヤ3005からなる。他の実施の形態において、DPLP3000は、ビデオエンコード処理レイヤ3005、グラフィック処理レイヤ3005、及びビデオデコード処理レイヤ3005からなる。他の実施の形態において、DPLP3000は、ビデオエンコード処理レイヤ3005、グラフィック処理レイヤ3005、ポスト処理レイヤ3005、及びビデオデコード処理レイヤ3005からなる。他の実施の形態において、インターフェース3060、3090は、DDR、メモリ、様々なビデオ入力、様々な音声入力、イーサネット、PCI E、EMAC、PIO、USB、及び、当該者に既知の他の任意のデータ入力からなる。
ビデオ処理ユニット
一つの実施の形態において、図30のレイヤとして図示したビデオ処理ユニットは、データとプログラムメモリと通信しているPUの少なくとも1つのレイヤを有する。好ましい実施の形態は、3つのレイヤを有する。各レイヤは、次の1以上の個別 のPUを有する:動き推定 (ME)、離散コサイン変換(DCT)、量子化 (QT)、 逆離散コサイン変換(IDCT)、逆量子化(IQT), de-blockingフィルタ(DBF)、動き補正(MC)、及び算術符号化(CABAC)。
CABACは、コーディングの例のみで、本発明は、VLCコーディング、CAVLCコーディング、又はコーディングの他のフォームを利用して行なわれることが明らかである。一つの実施の形態において、各レイヤは、2つの動き推定PUを有する上述の全てのPUを有する。他の実施の形態において、ビデオエンコード処理ユニットは、各レイヤが2つの動き推定PUを有する上述の全てのPUを有する、3つのレイヤから構成される。上述のPUは、ハード・ワイヤード・ユニット又はアプリケーション特定DSPとして実装されることができる。DCT、QT、IDCT、IQT、及びDBFは、ハード・ワイヤード・ブロックであることが好ましく、これらの機能は、実質的に1つの標準から他へ可変しないためである。
他の実施の形態において、図30にレイヤとして図示したビデオデコーディング処理ユニットは、データとプログラムメモリと通信しているPUの3レイヤを有する。各レイヤは、次のPUを有する:逆離散コサイン変換(IDCT)、逆量子化(IQT)、de-blockingフィルタ(DBF)、動き補正(MC)、及び算術符号化 (CABAC)。上述のPUは、ハード・ワイヤード・ユニット又はアプリケーション特定DSPとして実装できる。IDCT、IQT、及びDBFはハード・ワイヤード・ブロックであることが好ましい。その理由は、これらの機能は、実質的に、1つの標準から他へ変換することがないためである。CABACとMC PUは、それぞれ算術符号化と動き補正を行う特定機能が実行されている、専用の及びフルプログラム可能なDSPである。
ME PUは、VLIW命令セットを有するデータパス集中型DSPである。ME PUは、一つの参照フレーム上にクオーター・ピクセル解像度で 完全な動作検索を行うことができる。2つのME PUが平行に動作する実施の形態において、チップは、固定ウインドウサイズと可変マクロブロックサイズを有する2つのレフェレンスフレーム上にフル検索を行うことができる。
MC PUは、エンコーディング処理の再構築フェーズ中に動作補正をするME PUの簡易バージョンである。MCの出力は、戻ってメモリに格納され、次のフレーム時の参照フレームとして利用される。MC PUの制御ユニットは、MEと同様であるが、命令セットのサブセットのみをサポートする。これは、セルカウントと設計の複雑さを減少させる。
CABACは、違う種類のエントロピー・コーディングをすることができる他のDSPである。
これらの処理ユニットに追加して、各レイヤは、外部メモリとプログラムデータメモリとの間にデータを移動させるために、レイヤ制御エンジンと通信するインターフェースを有する。一つの実施の形態において、4つのインターフェース(ME1 IF、ME2 IF、MC IF、及びCABAC IF)がある。任意のタスクをスケジュールする前に、制御エンジンは、データを外部メモリからこれの内部データメモリへ解決及び転送するために、対応するインターフェースを要求することでデータフェッチを初期化する。インターフェースによって生成された要求は、最初に、初期化器の一つに保証を発行するラウンドロビン・アービターを通して、解決される。ワイニングするインターフェースは、最終的に、メインDMAを利用してデータを、レイヤ制御エンジンによって表示されている方向に、移動させる。
レイヤ制御エンジンは、フレームベースのメインエンコードステートマシンで実行しているDSPからタスクを受信する。レイヤ制御エンジンの内部にタスクキューがある。メインDSPが新しいタスクをスケジュールするごとに、最初は、キューのステータスフラグを見る。フルフラッグがセットされていない場合、新しいタスクをキューへプッシュする。他方では、レイヤ制御エンジンは、処理される任意タスクがキューにペンディングしているかを判定するために、エンプティフラッグをサンプルする。
一つある場合、これをキューのトップからポップし、これを処理する。タスクは、外部メモリ内の参照及びカレントフレーム用にポインタについての情報を含む。レイヤ制御エンジンは、現在処理されているデータの各リージョン用にポインタを計算するためにこの情報を利用する。フェッチされたデータは、外部メモリ効率を改良するために通常は大量である。各大量データは、マルチマクロブロック用のデータを含む。データは、ピンポン式で各エンジンに接続された2つのメモリバンクの1つへ移動される。同様に、処理されたデータと再構築されたフレームは、ライトアウト方法でインターフェースとDMAを利用して、メモリへ戻って格納される。
一つの実施の形態において、ビデオ処理レイヤは、ビデオエンコーディングレイヤである。これは、ビデオ入力/出力ブロックから33.33ミリ秒間隔で周期ティックインターラプトを受信する。各インターラプトの応答に、これは、スケジューラを呼び出す。スケジューラが呼び出されたら、次のアクションが取られる。
1.参照とカレントフレームが格納されている外部メモリへのポインタを計算する。
2.実行コーデックの種類特有のパラメータを判定する。
3.任意の命令を発行する前、レイヤ制御エンジンがこれのフルフラッグを上げているかをスケジューラが判定する。無い場合は、これのキューにタスクをプッシュし、次のティックインターラプト用に待機する。
処理されているキューに任意のタスクがペンディングされているかを判定するために、レイヤ制御エンジンは、エンプティフラッグをサンプルする。一つある場合、キューのトップからポップし、これを処理する。タスクは、外部メモリ内の参照及びカレントフレーム用にポインタについての情報を含む。レイヤ制御エンジンは、現在処理されているデータの各リージョン用に、及びフェッチされるデータサイズ用に、ポインタを計算するためにこの情報を利用する。対応する情報をこれの内部データメモリに保存する。フェッチされたデータは、外部メモリ効率を向上させるために、通常は多量である。あて先とソースアドレスを、方向ビットとデータのサイズに従って、ME IFへ書き込む。そして、スタートビットをセットする。データ転送の終了を待つことなく、他のエンジン用のペンディングのデータ転送要求を判定する。もしあると、上述のステップを繰り返す。
MEとMC PUは、マクロブロックレベルで動作するので、レイヤ制御エンジンは、タスクを分割し、データと関連情報をそのレベルでPUへフィードする。外部メモリからフェッチされたデータは、マルチマクロブロックを含む。従って、レイヤ制御エンジンは、内部データメモリの現在のマクロブロックのロケーションのトラックをキープしなければならない。処理されるデータがデータメモリ内に存在するかを判定した後、スタートビットと、現在マクロブロックへのポインタを有するPUをセットオフする。処理を完了した後、PUは、完了ビットをセットする。レイヤ制御エンジンは、完了ビットを読み込み、次のカレントマクロブロックをチェックする。もしこれが存在すると、エンジン用にタスクをスケジュールし、そうでなければ、最初に、正しいポインタでインターフェースを提供することで、新しいデータをフェッチする。
他の実施の形態において、図40に示すように、本発明のビデオ処理レイヤのブロックダイアグラムが図示されている。ビデオプロセッサは、動き推定プロセッサ4001、DCT/IDCTプロセッサ4002、コーディングプロセッサ4003、量子化プロセッサ4004、メモリ4005、メディアスイッチ4006、DMA4007及びRSICスケジューラ4008からなる。動作的に、動き推定プロセッサ4001は、サブサンプルされた補間データの重複処理を回避及び、メモリトラヒックを減少させるのに利用される。動き推定と補正は、一時的圧縮機能であり、ストリーム内の同一ピクセルを削除して、オリジナルストリームの一時重複をなくする。高い計算要求の繰り返し機能があり、逆離散コサイン変換、逆量子化、及び動作補正等の集中的な再構築処理を含む。
そして、DCT/IDCTプロセッサ4002は、ビデオ上に2次元DCTを行い、DCT計数のマトリックスへデータを変換することで、データの空間損失を取り除いた後、量子化プロセッサ4004へ変換されたビデオを提供する。DCTマトリックス値は、参照フレームに対応するイントラフレームを表す。離散コサイン変換の後、たくさんの高周波コンポネント、及び実質的に全てのもっとも高周波のコンポネントは、ゼロへ近付く。高周波タームは、ドロップされる。残りのタームは、任意の適切な可変長圧縮、好ましくはLZ77圧縮、によってコードされる。
量子化プロセッサ4004は、量子化スケールから選択されている変換された入力の各係数と一緒に、量子化ステップによって、変換された入力の値に各値を分割する。コーディングプロセッサ4003は、量子化スケールを格納し、メディアスイッチ4006は、スケジューリングとロードバランシングのタスクをハンドルし、これはマイクロコードされたハードウェアリアルタイムオペレーティングシステムであることが好ましい。DMAは、メモリのダイレクトアクセス、及びときどきプロセッサの支援無しで役立つ。
図41に示すように、本発明の動き推定プロセッサのブロックダイアグラムは図示されている。動き推定プロセッサ4100は、処理素子4101、4102のアレー、データメモリ4103、4104、4105、4106、アドレス生成ユニット(AGU)4107、及びデータバス4108からなる。データバス4108は、更に、レジスタファイル4109(16*32)、アドレスレジスタ4110(16*14)、データレジスタポインタファイル4111、プログラム制御4112、命令発行と制御4113、及びプログラムメモリ4114に接続する。プレシフト4115とディジタル音声ブロードキャスティング(DAB)4116は、レジスタファイル4109にも接続されている。DABは、インターネット上の品質ビデオ用の標準フォーマットである。
好ましくは2つの処理素子のアレー4101、4102は、レジスタファイル4109と、処理素子4101の第1アレイ、アドレス生成ユニット4107、処理素子4101、4102の第2アレイ、及びレジスタファイル4109を接続した専用データバス4108の間のバスを介してデータを交換する。プログラム制御4112は、プログラム全体のフローを組織し、残りのモジュールを一緒に束ねる。
制御ユニットは、マイクロ・コーデッド・ステートマシンとして実装されていることが好ましい。プログラムメモリ4114と命令発行と制御レジスタ4113と同様に、プログラム制御4112は、マルチレベル・ネステッド・ループ制御、分散及びサブルーチン制御をサポートする。AGU4107は、メモリからフェッチングオペランド用に必要な効率的アドレス計算を行う。一つのクロックサイクル内に2個の8ビットアドレスを生成でき、変更できる。
アドレス生成オーバーヘッドを最小化するために、AGUは、アドレスを他のプロセッサリソースと並列に計算するために、整数演算を利用する。アドレスレジスタファイルは、16*14ビットレジスタから構成され、一時データレジスタ又はインダイレクトメモリポインタとして独立に振舞うように、それぞれが制御できる。レジスタ内の値は、メモリ内のデータから変更でき、結果は、アドレスAGU4107、及び命令発行と制御レジスタ4113からの固定値から計算される。
図42に示すように、上述の動き推定プロセッサの処理素子のメッシュ接続アレーは、図示されている。これは、命令コントローラによって発行された命令を実行する処理素子の8x8 のメッシュ接続アレーを含む。これらのタスクのinherent fine-grain並列処理を利用して、ローレベル処理アルゴリズムのワイドクラスが効率的に実装できる。イメージ処理アルゴリズムの実行時、シングル処理素子は、イメージ内にシングルピクセルと関連付けられる。
動作的に、各イメージは、フレームに分割され、そのフレームがブロックに分割され、ブロックは、処理素子のアレーのルミナンスとクロミナンス・ブロックから構成される。動き推定は、コーディングの効率用にルミナンス・ブロック上のみに行なわれる。カレントフレームの各ルミナンス・ブロックは、データメモリとレジスタファイルのヘルプで、参照フレームのサーチエリアのポテンシャル・ブロックに対してマッチされる。これらのポテンシャル・ブロックは、オリジナルブロックのバージョンで単に置き換えられる。
最適(最小のひずみ、例えば、最もマッチされた。)のポテンシャル・ブロックは、見つかり、そして、これの置き換え (動作ベクタ)は、レコードされ、入力フレームは、予測された参照フレームから差し引かれる。従って、動作ベクタと結果エラーは、オリジナルルミナンス・ブロックの代わりに伝送されることができ、よって、インターフレーム重複は取り除かれ、データ圧縮が達成される。受信端では、デコーダは、受信したデータからフレーム差異信号を構築し、再構築された参照フレームにこれが追加される。合計がカレントフレームの正確な複製を与える。良い予測は、最小のエラー信号、従って伝送ビットレートである。
3ステップサーチ、2D対数サーチ、4−TSS、直行サーチ、クロスサーチ、エグゾースティブ・サーチ、ダイアモンド・サーチ、及び新3ステップサーチを含む、任意の適切なブロック・マッチング・アルゴリズムが利用である。
インターフレーム重複がいったん取り除かれると、離散コサイン変換(DCT)、重り付け及びアダプティブ量子化の組み合わせを利用して、フレーム差異は、空間重複を取り除きするために処理される。
図43に示すように、本発明のDCT/IDCTプロセッサのブロックダイアグラムは図示されている。DCT/IDCTプロセッサ4300は、アドレス生成ユニット4302とレジスタファイル4303へ接続されたデータメモリ4301からなる。レジスタファイル4303は、アッダ4307−4310へ更に伝送する、複数の積和演算(MAC)ユニット4304、4305へこれのデータを出力する。プログラム制御4311、プログラムメモリ4312と命令発行と制御4313ユニットは、相互接続されている。アドレスレジスタ4314と命令発行と制御ユニット4313は、それらの出力をレジスタファイル4303へ転送する。
データメモリ4301は、一般的に、全てのレジスタメモリと連携し、レジスタファイル4303を介して、アドレスされた及び選択されたデータ値をMAC4304−4307及びアッダ4308−4311へ提供する。レジスタファイル4303は、レジスタメモリの1つからデータを選択するために、メモリ4301へアクセスする。メモリから選択されたデータは、DCT用にバタフライ計算を行うために、MAC4304?4307とアッダの両方へ提供する。そのようなバタフライ計算は、アッダをデータがバイパスするIDCTオペレーション用にフロントエンドで行なわれない。
ビットレートを減少させるために、8*8 DCT (離散コサイン変換)は、量子化用に、ブロックを周波数ドメインへ変換するのに利用される。8*8 DCTブロック内の第1計数(0周波数)は、DC係数と呼ばれ、ブロック内の残りの63 DCT係数は、AC係数と呼ばれる。DCT係数のブロックは、量子化され、1−Dシーケンスへスキャンされ、LZ77圧縮を利用してコードされる。動き補正(MC)に含まれる予測コーディングのため、フィードバックループ用に逆量子化とIDCTは必要である。ブロックは、一般的にVLC、CAVLC、又はCABACでコードされる。4x4DCTは、また、利用されることが可能である。
レジスタファイルの出力は、4つ及び似ているMAC(MAC0、MAC1、MAC2、MAC3)のそれぞれへデータ値を提供する。MACの出力は、レジスタファイルの入力へ提供されるロジック選択用に提供される。選択ロジックは、また、4個のadder4308−4311の入力に結合された出力を有する。4アッダの出力は、データ値をレジスタファイル4303へ提供するためのバスへ結合される。
レジスタファイル4303の選択ロジックは、プロセッサによって制御され、IDCTオペレーション中、MAC4304 −4307からのデータ値を4個のadder4308 −4311へ提供し、DCT、量子化、及び逆量子化オペレーション中、データ値を直接バスへ提供する。IDCTオペレーションのために、対応するデータバイトは、メモリ4301へ戻って提供される前に、バタフライ計算を行うために、4個のadderへ提供される。データの特定フローと機能は、プロセッサによって制御されるように、行なわれている特定オペレーションに依存して行なわれる。プロセッサは、全てが同じMAC4304−4307を利用するDCT、量子化、逆量子化、及びIDCTオペレーションを行う。
グラフィック及びビデオ圧縮
ビデオは、動作の錯覚を与えるように、1つの1つが表示される画像のシーケンスとして見られることができ。PALテレビ(720x576の解像度)上に表示されるビデオのため、色(赤、青、及び緑)を描くために3バイトが利用されるとき、各フレームは414720ピクセルで、そしてフレームサイズは1.2MBである。もし、表示速度が30fps(フレーム毎秒)のとき、そして、バンド幅は毎秒35.6MB要求される。そのような膨大なバンド幅の要求は、ビデオ分配用のディジタルネットワークに障害となる。従って、大容量のビデオを格納及び伝送するのに、圧縮ソリューションが必要である。
インターネットを利用したストリーミングメディアアプリケーション用の消費者用電化製品及び需要のアナログ・ディジタル変換は、ビデオ圧縮ソリューションの成長を後押ししている。エンコーディングとデコーディングソリューションは、現在、MPEG−1、MPEG−2及びMPEG−4用のソフトウェア又はハードウェア内に提供されている。現在、ディジタルイメージ及びディジタルビデオは、ハードディスク用の容量をセーブ、及び伝送を早くするために、いつも圧縮されている。一般的には、圧縮率の範囲は、10〜100である。解像度640x480ピクセルの非圧縮イメージは、約600KB(ピクセル当たり2バイト)である。25回圧縮したイメージは、約25KBのファイルを作成する。
選択されるたくさんの圧縮標準がある。静止画標準を利用しているカメラは、ネットワークにシングルイメージを送信する。ビデオ標準を利用しているカメラは、変更されたデータの静止画を送信する。このように、背景の変更無しのデータは、イメージごとに送信しない。リフレッシュレートは、秒当たりのフレームfpsで参照される。ポピュラーの静止画とビデオコーディング圧縮標準は、JPEGである。JPEGは、「ナチュラル」現実の世界の場面のフルカラー又はグレイスケーレドイメージ、の圧縮用にデザインされている。
アニメ又は線画等の非現実的なイメージには、効果的ではない。JPEGは、白黒(ピクセル当たり1ビット)イメージ又は動画の圧縮をハンドルしない。動画シーケンスの各フレームへのJPEG静止画圧縮を応用している動画用の圧縮技術は、動画JPEGという。JPEG―2000は、0.1ビット/ピクセルまでの適当な品質を与えるが、品質は、約0.4ビット/ピクセル以下に劇的に落ちる。これは、JPEGではなく、ウェーブレットに基づいた技術である。
ウェーブレット圧縮標準は、少量のデータの含むイメージ用に利用することができる。よって、イメージは、最高品質のものではない。ウェーブレットは、標準化されていなくて、特別のソフトウェアを要求する。GIFは、LZWアルゴリズムで圧縮した標準ディジタルイメージである。GIFは、ロゴ等の複雑ではないイメージのための良い標準である。圧縮率が限定されているので、カメラでキャプチャされたイメージには、推奨されない。
H.261、H.263、H.321、及びH.324は、ビデオコンフェレンス用にデザインされた標準であり、時々、ネットワークカメラ用に利用されている。この標準は、高いフレームレートを与えるが、イメージが大きな移動物体を含むとき、とても低イメージ品質を与える。イメージ解像度は、一般的に352x288ピクセルまでである。解像度がとても限定されているので、新しい製品は、この標準を利用しない。
MPEG1は、ビデオ用の標準である。変化が可能である間にMPEG1が利用されているとき、一般的に352x240ピクセル、30fps(NTSC)又は352x288ピクセル、25fps(PAL)のパフォーマンスを与える。MPEG2は、720x480ピクセル、30fps(NTSC)又は720x576ピクセル、25fps(PAL)のパフォーマンスを得る。MPEG2は、大量の計算能力を要求する。MPEG3は、一般的に、最大レート毎秒1.86 Mbitの352x288ピクセル、30fpsの解像度を有する。MPEG4は、前のMPEG−1及びMPEG−2アルゴリズムを拡張し、スピーチ及びビデオ、フラクタル圧縮、コンピュータ可視化及び人口知能ベースのイメージ処理技術を合成したビデオ圧縮標準である。
図31に図示したように、ビデオ、テキスト、及びグラフィックデータの統合処理用に応用可能な統合チップの他の実施の形態は図示されている。チップは、VGAコントローラ3101、バッファ0 3102とバッファ1 3103、構成と制御レジスタ3104、DMAチャネル0(3105)、DMAチャネル1(3106)、入力バッファの圧縮器として動作するSRAM0 (3107)とSRAM1(3108)、KFIDと雑音フィルタ3109、LZ77圧縮器3110、量子化器3111、出力バッファコントロール3112、出力バッファ3115の圧縮器として動作するSRAM2(3113)、SRAM3(3114)、MIPSプロセッサ3116とALU 3117からなる。VGAコントローラは、12−12.5MHzの範囲で動作することが好ましい。
図32に示すように、本発明の例示のシングルチップアーキテクチャの詳細なデータフローが図示されている。RGBビデオ3201は、VGAコントローラ3202及びカラー変換器3203によって受信される。そして、データは、一時ストレージ用にバッファ3206へ送信され、少なくともデータportionは、ダイレクトメモリアクセス(DMA)チャネル0(3207)及び/又は DMAチャネル1(3208)へ高速で、好ましくはマイクロプロセッサの介入無しで、パスされる。
そして、SDRAMコントローラ3209は、少なくともデータのportionの転送をスケジュールし、SRAM0 3210及び/又はSRAM1(3211)へダイレクトし及び/又はガイドする。SRAM0(3210)及びSRAM1(3211)の両方は、圧縮器用の入力バッファとして動作する。SRAMは、そして、圧縮される前に、入力ビデオ内の不要な信号と雑音を減少させるKFD(Kernel Fisher Discriminant)及び雑音フィルタ3212へデータを転送する。
不要な信号がいったん取り除かれると、データは、そして、圧縮ユニット、好ましくはLZ77に基づいた圧縮ユニット3214、と連結しているコンテント・アドレッサブル・メモリ(CAM)3213へ転送される。適当なアルゴリズム、好ましくLZ77アルゴリズム、を利用して、CAM3213及び圧縮ユニット3214は、ビデオデータを圧縮する。量子化器3215は、適当な電圧レベルに従って、圧縮データを量子化する。そして、データは、出力バッファコントロール3216に一時的に格納され、SRAM3217を介してDMA3208へ転送される。そして、DMA3208は、量子化された圧縮データをSDRAMコントローラ3209へ伝送する。そして、SDRAMコントローラ3209は、データをSRAM3217及びMIPSプロセッサ3219へ転送する。
図33に図示したように、上述のチップアーキテクチャ内のビデオの圧縮中に達成された複数のステートの1つの実施の形態をフローチャートに図示している。ビデオは、適当なA2D(アナログ・ディジタル変換器)を利用してアナログからディジタルフレームへ変換される(3301)。一端、フレームが使用可能になると(3302)、VGAはフレームをキャプチャし(3303)、及びカラー空間を、VGAにアタッチされたカラー変換器を介して、変換する(3304)。キャプチャされたフレームは、SDRAMへ書き込まれる(3305)。
前に格納されたフレームと、カレントフレームは、SDRAMから読み出され(3306)、それらの差異が計算された後、それらの雑音を削除し(3307)、それらは、圧縮用に準備できる。LZ77圧縮器は、フレームを圧縮し(3308)、圧縮されたフレームは、そして、量子化器で量子化される(3309)。量子化された圧縮フレームは、適当なレンダリング又は伝送用に取り出される(3311)ことが可能なように、SDRAMへ最終的に書き込まれる(3310)。
図34に示すように、LZQアルゴリズムの1つの実施の形態のブロックダイアグラムが図示されている。LZQ圧縮アルゴリズムは、入力ビデオデータ3404、キーフレーム差異ブロック3401、及び、LZ77圧縮エンジンブロックの出力は次の圧縮エンジンブロックに送られている複数の圧縮エンジンブロック3402、3403からなる。圧縮されたデータ3405は、n番目の圧縮エンジンブロックから出力される。
動作的に、キーフレーム差異ブロックは、ビデオデータ3404を受信する。ビデオデータは、既知の適当なテクニックを利用して、フレームへ変換される。キーフレーム差異ブロック3401は、キーフレーム「N」の頻度を定義する。第10、20、30等の番毎に、キーフレーとして見られることが望ましい。一端、キーフレームが定義されると、これは、LZ77圧縮エンジン3402、3403を利用して圧縮される。一般的に、圧縮は、時間ベクタ及びモーションベクター内の操作情報に基づく。ビデオ圧縮は、時間及び/又はモーションベクターの重複の削除に基づいている。第1フレームの圧縮された後、圧縮されたデータ3405は、ネットワークへ送信される。受信端又は受信機において、圧縮されたデータは、デコードされ、レンダリング可能にされる。
図35に示すように、LZQアルゴリズムの1つの実施の形態のキーフレーム差異エンコーダのブロックダイアグラムが図示されている。キーフレーム差異エンコーダ3500は、シングルユニットでフレームを遅延する遅延ユニット3501、多重器3502、サマー3503、キーフレームカウンタ3504、及び出力ポート3505からなる。ビデオフレーム3506のキーフレーム(f)は、多重器3502へその一つの入力として直接渡され、前フレームは、多重器3502への第2の入力として動作する。前フレームは、遅延ユニット3501を利用した遅延後にビデオフレーム3506から取得される。
例えば、多重器3502への1つの入力が(f)のとき、他の入力は(fk-(fk ?1))である。ここで、fk は、多重器3502によってすでに受信された現在のキーフレームを意味する。fk-1は、すでに出て行った前フレームを意味する。バスは、キーフレームと遅延ユニットをサマー3503へ伝送する。遅延フレーム(fk-1)は、キーフレーム(fk)から差し引かれて、(fk - (fk -1)になり、多重器3502の第2入力として送信される。第1入力(fk) 及び(fk - (fk -1))は、キーフレームカウンタ3504の制御のもとで多重器に送り込まれる。両方の入力用に、多重器3507は、圧縮用にLZ77エンジン3507へ伝送されるシングル出力を提供する。
図36に示すように、本発明の1つの実施の形態のキーフレーム差異デコーダブロックのブロックダイアグラムが図示されている。キーフレーム差異デコーダブロック3600は、多重器3601、キーフレームカウンタ3602、遅延ユニット3603、及びサマー3604からなる。キーフレーム差異デコーダブロック3600は、データ3606をLZ77圧縮エンジンから受信し、ビデオのデコードされたフレーム3605を出力する。
動作的に、圧縮されたデータのキーフレームは、多重器3601に、第1入力として送り込まれ、第2入力は、フィードバックループによって形成される。フィードバックループは、遅延ユニット3603から構成される。遅延ユニット3603は、デコードされたフレーム3605を取り、サマー3604でキーフレーム3606とともに差異フレームを形成するために、これを1フレームユニットで遅延する。サマー3604の出力は、多重器への第2入力として動作する。キーフレームカウンタ3602の制御のもとで、多重器3601へ送り込まれる第1入力と第2入力は、デコードされたフレームの結果である。
ロスレスアルゴリズムの他の実施の形態は、圧縮に含まれる計算量を低減するためのものである。これは、それらと連携したモーションを有するそれらのラインのみを送信することで、達成される。この場合、前のフレームからのラインは、現在のフレームの同じ番号のラインと比較され、少なくとも1ピクセルの異なる値を含むラインのみが、LZ77の1以上ステージを利用してコードされる。
図37に示すように、修正LZQアルゴリズムのブロックダイアグラムが図示されている。ビデオデータ3701は、キーライン差異ブロック3702へ送り込まれる。キーライン差異ブロック3702によって処理された後、これは、LZ77圧縮エンジン3703へ伝送され、差異データは、LZ77圧縮エンジン3703、3704の連続ブロックを通してパスされ、よって、圧縮データ3705を出力する。
図38に示すように、本発明の例示の実施の形態に利用されたキーライン差異ブロックのブロックダイアグラムが図示されている。キーライン差異ブロック3800は、メディア入力ポート3801、遅延ユニット3802、サマー3803、及び合計・比較ブロック合計・比較器3804からなる。入力ポート3801は、カメラ又はライブ映像によってキャプチャされたビデオデータを受信する。ビデオデータのカレントフレームは、シングルフレーム遅延ユニットfk-1によって遅延される。サマー3803でのカレントフレームとともに遅延されたフレームfk-1は、差異フレームを形成する。差異フレームは、そして、合計・比較ブロック3804へ入力される。差異フレームの合計は、比較され、これがゼロより大きい場合、Kline3805は合計・比較ブロック3804から出力される。Kline出力は、LZ77連続圧縮エンジンに到着し、そして、圧縮される。
図39に示すように、本発明に利用された圧縮/解凍アーキテクチャが図示されている。データの入力ストリームを前に受信した及び処理したデータと、CAMメモリ内の格納されたものとして比較するために、及び、履歴がフルになった場合、最も古いデータを放棄するために、LZQアルゴリズムの実装は、コンテント・アドレッサブル・メモリ(CAM)を利用する。
入力データバッファ3901内に格納されたデータは、CAMアレー3902内のカレントエントリと比較される。CAMアレー3903は、それぞれレジスタ及び比較器を有する複数のセクション(N+1セクション)を含む。各CAMアレーレジスタは、1バイトのデータを格納し、有効又は現在のデータバイトがCAMアレーレジスタに格納されたかを示すためにシングルセルを含む。対応するCAMアレーレジスタに格納されたデータバイトが、入力データバッファ3901内に格納されたデータバイトとマッチしたとき、各比較器は、アクティブ信号を生成する。
一般的に、マッチが見つかったとき、それらは、コードワードで置き換えられ、複数存在する場合は、同じコードワードが応用される。もっと高い圧縮レートは、検索時に長いストリングが見つかったとき、それらが短いデータ量のコードワードで置き換えられたとき、達成される。
CAMアレーに結合されたものは、CAMアレーの各セクション用に1つのライト選択ブロックを有するライト選択シフトレジスタ(WSSR)3904である。シングルライトブロックは、残りのセルは全て0値にセットされている間に、1の値にセットされる。1値を有するセルである、アクティブ・ライト・選択・セルは、入力データバッファ3901に現在ホールドされているデータバイトを、CAMアレーのどのセクションが格納するのに利用されるかを選択する。WSSR3904は、新しいデータバイトが入力データバッファ3901に入るごとに、1つのセルでシフトされる。選択するシフトレジスタ3904の利用は、CAMアレー内の固定アドレッシングの利用を可能にする。
マッチング処理は、プライマリー・セレクターORゲートの出力に、0がでるまでに継続する。0は、マッチが残っていないことを示す。これが起きるとき、前の最後のバイトに存在する全てのマッチングストリングのエンドポイントをマークする値は、第2セレクタセルに格納されたままである。アドレス生成器は、マッチングストリングの1つのロケーションを見つけ出し、そのアドレスを生成する。アドレス生成器は、第2セレクタの1以上のセルからの信号を利用して、アドレスを生成するように簡単に設計されたものである。マッチングストリングの長さは、長さカウンタで可能である。
長さカウンタがマッチングストリングの長さを提供する際、アドレス生成器は、マッチングストリングの終端を含むCAMアレーセクション用の固定アドレスを生成する。マッチングストリングのスタートアドレスと長さは、そして、計算され、コードされ、圧縮されたもの又はストリングトークンとして出力される。
様々なサイズのCAMアレーの評価は、確認されている。統合回路デバイスの消費電力及びシリコンエリア等のファクターの点から見て、約512バイトの履歴サイズは、効率的な圧縮とコストとの間の理想的なトレードオフを提供する。
ポストプロセッサ
図44に示すように、本発明のポストプロセッサのブロックダイアグラムが図示されている。ポストプロセッサ4400は、アドレス生成ユニット4402とレジスタファイル4403に接続されているデータメモリ4401からなる。レジスタファイル4403は、シフター4407へそれらのデータを出力する。ロジカルユニット4408よ複数の積和演算(MAC)ユニット4404、4405、4406は、adder04408とadder14409へデータを更に伝送する。プログラム制御4411、プログラムメモリ4412及び命令発行及び制御ユニット4413は、相互接続されている。アドレスレジスタ4414と命令発行及び制御ユニット4413は、それらの出力をレジスタファイル4403へ伝送する。積和演算ユニットは17ビットであり、40ビットまで蓄積できる。
圧縮データが動き推定プロセッサ、DCT/IDCTプロセッサ、及びポストプロセッサを通ってパスすると、ポストプロセッサからの出力は、イメージデータのリアルタイム・エラー・リカバリの対象となる。エッジ・マッチング、セレクティブ空間的補間、及びサイズマッチングを含む適当なテクニックは、レンダリングされるイメージの質を高めるのに利用できる。
1つの実施の形態において、新規エラー隠蔽アプローチは、ビデオコーデックに基づいた任意のブロック用のポストプロセッシングに利用されている。データがインターネット又は無線チャネルで伝送されるとき、データロスはとけられないことは認識されている。ビデオのI及びPフラームにエラーが起き、重要なビジュアル・アノイアンスの結果をもたらす。
Iフレームエラー隠匿用に、空間情報は、エラー隠匿に2つステップの処理で利用される:エッジリカバリに続くセレクティブ空間的補間。Pフレームのエラー隠匿用に、空間的及び一時的情報は、2つの方法で利用される:サイドマッチングによる線形補間及びモーションベクターリカバリ。
従来、Iフレーム隠匿は、隣接Mbits(MB)からの各ロスピクセルを補間することで行なわれている。例えば、図28に示すように、ピクセルPは、複数のピクセル値から補間されている。Pは、Pとpの間に距離dを有する。nは1から始まる整数である。ピクセルPの補間は、次の式を利用して行なわれることができる。
P=[p1*(17-d1)+p2*(17-d2)+p3*(17-d3)+p4*(17-d4)]/34
ロスされたMBが高い周波数のコンポネントを含むとき、この処理は、不鮮明なイメージをもたらす。凸集合へのファジー理論の推理と予測は、ロストMBの回復に助かるかも知れないが、これらのアプローチは、リアルタイムアプリケーションの計算コストが高い。
本発明は、ロスとMBのエッジリカバリを利用し、Iフレームエラー隠蔽をアドレスするために、セレクティブ空間的補間が続く。一つの実施の形態において、マルチ方向フィルタリングは、8選択から1方向に、ロスとMBの方向を分類するのに利用される。周囲のピクセルは、バイナリパターンへ変換される。バイナリパターンの中で点移転を接続することで、1以上のエッジが取り出される。ロストMBは、エッジ方向に沿って方向的挿入される。
もっと詳しくは、図29aに示すように、破損MB2901は、正しくデコードされたMB2905によって囲まれている。これらの境界ピクセル2905の検出は、エッジ2908を識別することで行なわれる。エッジポイント2910は、予め決められた閾値上のグラジエントのローカル最適値を計算して識別される。測定で類似のエッジポイント2910は、グラジエント及びルミネセンスの点から見て、識別され、マッチされる。図29bに示すように、マッチされたエッジポイントは、そして、一緒にリンクされ(2911)、よって、MBを、それぞれがスムースエリアとしてモデル化でき、セレクティブ空間的補間によって隠れた領域に分離する。
エッジリカバリが行なわれた後、図29cに示すように、絶縁エッジポイント2912は、識別され、境界に達するまで破損MBへ拡張される(2909)。ピクセル2915は、エッジ2911及び拡張2909によって定義される3つの領域の1つから選ばれる。ピクセル2915から、境界ピクセルが、この場合、4つの参照ピクセル2918を生成する各エッジ方向に見つかる。同じ領域のピクセル2915としての2つのピクセル2918は識別される。ピクセル2918は、ピクセル2915を次の式で計算するのに利用される。
Figure 0004806418
ここで、p1及びp2は2つのピクセル2918で、d1及びd2は、それぞれp1とp及びp2とp間の距離である。
Pフレームエラー隠蔽に関しては、モーションベクターとコーディングモードリカバリは、同じ破損MBロケーションでの前のフレームの値を判定、及び破損MB値を前のフレームの値で置換するによって行なわれる。破損MBの回りのこのエリアからのモーションベクターは、判定され、その平均が取れる。破損MB値を、破損MBの回りのエリアからのメディアンモーションベクターで置換する。境界マッチングを利用して、モーションベクターが再推定される。破損MBは、更に、小さなリージョンへ分割され、各リージョンのモーションベクターは判定されることが好ましい。例えば、一つの実施の形態において、上、下、右、及び左のピクセルの値は、それぞれpu、pl、pr、及びpltであり、破損ピクセルPに対して、Pを線形補間するのに利用される。
Figure 0004806418
Figure 0004806418
モーションベクターリカバリを行うために、サイドマッチングも利用できる。一つの実施の形態において、同じ破損MBロケーションでの前のフレームの値は、決定される。破損MB値は、前のフレームのその値で置換される。破損MBロケーションを各込む候補サイドは、決定され、候補サイドからの平方二乗誤差が計算される。平方二乗誤差の最小値は、ベストマッチを表す。計算技術は当業者に明らかであり、上述のIフレームエラー隠蔽及びPフレームエラー隠蔽ステップをするのに、数式及びアプローチが要求される。
本発明は、更に、メディアアプリケーション用に拡張可能及びモジュール式のソフトウェアアーキテクチャからなる。図45に図示したように、ソフトウェアスタック4500は、ハードウェアプラットフォーム4501、リアルタイムオペレーティングシステムとボードサポートパッケージ4503、リアルタイムオペレーティングシステム抽象化レイヤ4505、複数のインターフェース4057、マルチメディアライブラリ4509、及びマルチメディアアプリケーション4511からなる。
本発明のソフトウェアシステムは、実行時のソフトウェアコンポネントの動的スワッピング、ノンサービスaffecting リモートソフトウェアアップグレード、 リモートデバッグと開発、低消費電力用に使用していないリソースのスリープ、フルプログラマビリティ、チップアップグレード用にAPIレベルでのソフトウェア互換性、及び、先端統合開発環境を、提供することが好ましい。好ましくは、ソフトウェアリアルタイムオペレーティングシステムは、ハードウェア独立API用に提供し、コール初期化についてのリソースの割り当てを行い、オンチップ及び外部メモリマネジメントを行い、システムパフォーマンスのパラメータ及び統計を集計し、プログラムフェッチ要求を最小化する。好ましくは、ハードウェアリアルタイムオペレーティングシステムは、全てのプログラム及びデータフェッチ要求の解決、フルプログラマビリティ、これのデータフローに従って異なるPUへのチャネルのルーチング、メモリへの外部及びローカルの同時転送、DMAチャネルのプログラム可能化、及びコンテクストスイッチングを提供する。
本発明のシステムは、更に、次の特徴を有する統合開発環境を提供する。ハードウェアデバッグオプションにアクセスするためのポイントとクリックコントロールを有するグラフィカルユーザインターフェース、シングルデバッグ環境を利用したメディア適合プロセッサ用の組み立てコード開発、メディア適合プロセッサDSP用の統合コンパイラと最適化スイート、異なる組み立て最適化レベルの選択用のコンパイラオプションと最適化スイッチ、メディア適合プロセッサ用のアセンブラー/リンカー/ローダー、シミュレータハードウェア上のプロファイリング・サポート、メディア適合プロセッサを通してのシングルフレーム処理用のチャネルトレーシングの実現、Microsoft Visual C++ 6.0環境内での組み立てコードデバッグ、及び、C 呼び出し可能アセンブリサポートとパラメータ引渡しオプション。
本発明は、特定の実施の形態について説明されたが、これらに限定されないことが明らかである。特に、本発明は、複数の標準でコードされたビデオ、音声、及びグラフィックデータを処理できる、拡張可能なモジューラ処理レイヤを有する統合チップアーキテクチャ、並びに、そのアーキテクチャを利用するデバイスに関する。
図1は、分散処理レイヤプロセッサの実施の形態のブロックダイアグラムである。 図2aは、メディアゲートウェアイ用のハードウェアシステムアーキテクチャの第1の実施の形態のブロックダイアグラムである。 図2bは、メディアゲートウェア用のハードウェアシステムアーキテクチャの第2の実施の形態のブロックダイアグラムである。 図3は、ヘッダとユーザデータを有するパケットのダイアグラムである。 図4は、メディアゲートウェアイ用のハードウェアシステムアーキテクチャの第3の実施の形態のブロックダイアグラムである。 図5は、本発明のソフトウェアシステムの1つの論理分割のブロックダイアグラムである。 図6は、図5のソフトウェアシステムの第1の物理的な実施のブロックダイアグラムである。 図7は、図5のソフトウェアシステムの第2の物理的な実施のブロックダイアグラムである。 図8は、図5のソフトウェアシステムの第3の物理的な実施のブロックダイアグラムである。 図9は、本発明のハードウェアシステムのメディアエンジンコンポネントの第1の実施の形態のブロックダイアグラムである。 図10は、本発明のハードウェアシステムのメディアエンジンコンポネントの好ましい実施の形態のブロックダイアグラムである。 図10aは、図10のメディアエンジンのメディアレイヤコンポネントの好ましいアーキテクチャのブロックダイアグラム表現である。
図11は、第1の好ましい処理ユニットのブロックダイアグラム表現である。 図12は、第1の好ましい処理ユニットにより処理されたパイプライン処理の時間ベースの概念図である。 図13は、第2の好ましい処理ユニットのブロックダイアグラム表現である。 図13aは、第2の好ましい処理ユニットにより処理されたパイプライン処理の時間ベースの概念図である。 図13bは、第2の好ましい処理ユニットにより処理されたパイプライン処理の時間ベースの概念図である。 図14は、本発明のハードウェアシステムのパケットプロセッサコンポネントの好ましい実施の形態のブロックダイアグラム表現である。 図15は、本発明のハードウェアシステムのパケットプロセッサコンポネント内の、複数のネットワークインターフェースの1つの実施の形態の略図である。 図16は、本発明のハードウェアシステムのパケットプロセッサコンポネント用の、制御及び信号機能を容易にするために利用される複数のPCIインターフェースのブロックダイアグラムである。 図17は、本発明のソフトウェアシステムのコンポネント間のデータ通信の第1の例示のフローダイアグラムである。 図17aは、本発明のソフトウェアシステムのコンポネント間のデータ通信の第2の例示のフローダイアグラムである。 図18は、本発明のソフトウェアシステムのメディア処理サブシステムを構成する好ましいコンポネントの概念図である。 図19は、本発明のソフトウェアシステムのパケット化処理サブシステムを構成する好ましいコンポネントの概念図である。 図20は、本発明のソフトウェアシステムの信号サブシステムを構成する好ましいコンポネントの概念図である。
図21は、本発明のソフトウェアシステムの信号処理サブシステムを構成する好ましいコンポネントの概念図である。 図22は、物理DSP上のホストアプリケーションの動作のブロックダイアグラムである。 図23は、仮想DSP上のホストアプリケーションの動作のブロックダイアグラムである。 図24は、従来のメディア処理システムのブロックダイアグラムである。 図25は、本発明のメディア処理システムのブロックダイアグラムである。 図26は、ビデオ、テキスト、及びグラフィックデータの統合処理に応用できる、例示の統合チップアーキテクチャのブロックダイアグラムである。 図27は、本発明の新規デバイスの入出力の例を図示したブロックダイアグラムである。 図28は、他のピクセルで囲まれたピクセルを図示した従来技術のブロックダイアグラムである。 図29aは、エラー隠蔽を行う新規のプロセスを図示した図である。 図29bは、エラー隠蔽を行う新規のプロセスを図示した図である。 図29cは、エラー隠蔽を行う新規のプロセスを図示した図である。 図30は、本発明のメディアプロセッサの実施の形態のブロックダイアグラムである。
図31は、本発明のメディアプロセッサの他の実施の形態のブロックダイアグラムである。 図32は、本発明のメディアプロセッサの他の実施の形態のブロックダイアグラムである。 図33は、例示のチップアーキテクチャにおいて、ビデオ圧縮中に実現された複数のステートの一つの実施の形態を示したフローチャートである。 図34は、LZQアルゴリズムの一つの実施の形態のブロックダイアグラムである。 図35は、LZQアルゴリズムの一つの実施の形態のキーフレーム差異エンコーダのブロックダイアグラムである。 図36は、本発明の一つの実施の形態のキーフレーム差異デコーダのブロックダイアグラムである。 図37は、修正LZQアルゴリズムのブロックダイアグラムである。 図38は、本発明の例示の実施の形態に利用された、キーライン差異ブロックのブロックダイアグラムである。 図39は、本発明の圧縮/解凍アーキテクチャの一つの実施の形態のブロックダイアグラムである。 図40は、本発明のビデオプロセッサの一つの実施の形態のブロックダイアグラムである。
図41は、本発明の動き推定プロセッサの一つの実施の形態のブロックダイアグラムである。 図42は、上述の動き推定プロセッサの処理要素アレーの一つの実施の形態のダイアグラムである。 図43は、本発明のDCT/IDCTプロセッサの一つの実施の形態のブロックダイアグラムである。 図44、本発明のポストプロセッサの一つの実施の形態のブロックダイアグラムである。 図45は、本発明のソフトウェアスタックの一つの実施の形態のブロックダイアグラムである。

Claims (9)

  1. 命令に基づいて、テキスト、グラフィック、ビデオ、及び音声の中から選択される1種類以上のデータからなるメディアを処理するためのメディアプロセッサにおいて、
    複数の処理レイヤ(105)と、
    前記処理レイヤ(105)は、少なくとも1つの処理ユニット(130)、少なくとも1つのプログラムメモリ(135)、及び少なくとも1つのデータメモリ(140)を有し、同じ前記処理レイヤ(105)内のそれぞれの前記処理ユニット(130)、前記プログラムメモリ(135)及び、前記データメモリ(140)は互いに通信可能であり、
    受信したデータの動き推定機能を行うために設計された少なくとも1つの前記処理レイヤ(105)内の少なくとも1つの前記処理ユニット(130)と、
    前記受信したデータのエンコード又はデコード機能を行うために設計された少なくとも1つの前記処理レイヤ(105)内の少なくとも1つの前記処理ユニット(130)と、
    前記メディアのソースから複数のタスクを受信し、前記タスクを前記処理レイヤ(105)に分散することができる処理レイヤコントローラ(107)
    からなることを特徴とするメディアプロセッサ。
  2. 請求項1のメディアプロセッサにおいて、
    更に、前記処理レイヤ(105)と外部メモリ(147)との間のデータ転送をハンドルすることができるダイレクトメモリアクセスコントローラ(110)とからなり、
    アドレスを有する少なくとも1つの前記データメモリ(140)と、それぞれアドレスを有する複数の前記外部メモリ(147)との前記データ転送は、ダイレクトメモリアクセスコントローラ(110)が、前記データ転送のサイズ、及び、前記データメモリ(140)から前記外部メモリ(147)へ若しくは前記外部メモリ(147)から前記データメモリ(140)への前記データ転送の方向を利用して処理する
    ことを特徴とするメディアプロセッサ。
  3. 請求項2のメディアプロセッサにおいて、
    少なくとも1つの前記データメモリ(140)と少なくとも1つの前記外部メモリ(147)との間の前記データ転送は、前記データメモリ(140)のアドレス、前記外部メモリ(147)のアドレス、前記データ転送のサイズ、及び前記データ転送前記方向を利用することで発生する
    ことを特徴とするメディアプロセッサ。
  4. 請求項1のメディアプロセッサにおいて、
    外部メモリ(147)とのインターフェースを提供する外部メモリインターフェース(170)を備え、
    前記処理レイヤコントローラ(107)は、外部メモリインターフェース(170)を介して、前記外部メモリ(147)と通信している
    ことを特徴とするメディアプロセッサ。
  5. 請求項1のメディアプロセッサにおいて、
    前記メディアのデータを前記メディアのソースから、又は、前記ソースを制御するための制御信号を入力装置から受理し、及び、前記制御信号を前記ソースへ送信のためのインターフェースと
    からなることを特徴とするメディアプロセッサ。
  6. 請求項5のメディアプロセッサにおいて、
    前記インターフェースは、イーザネット互換性のインターフェースからなる
    ことを特徴とするメディアプロセッサ。
  7. 請求項5のメディアプロセッサにおいて、
    前記インターフェースは、TCP/IP互換性のインターフェースからなる
    からなることを特徴とするメディアプロセッサ。
  8. 請求項1のメディアプロセッサにおいて、
    少なくとも1つの前記処理レイヤ(105)は、前記受信したデータの前記動き推定機能を行うために設計された前記処理ユニット(130)、及び、前記受信したデータの前記エンコード又はデコード機能を行うために設計された前記処理ユニット(130)を含み、
    前記動き推定機能、及び、前記エンコード又はデコード機能は、パイプライン式で行われる
    ことを特徴とするメディアプロセッサ。
  9. 請求項1のメディアプロセッサにおいて、
    少なくとも1つの前記処理レイヤ(105)は、データ中の高周波コンポネントを取り除く機能を行う離散コサイン変換(DCT)、量子化(QT)、逆離散コサイン変換(IDCT)、逆量子化(IQT)、de-blockingフィルタ(DBF)、エンコーディング処理の再構築フェース中に動作補正機能を行う動き補正(MC)、及び違う種類のエントロピーコーディングをする機能を行う算術符号化(CABAC)の内の1以上の前記処理ユニット(130)を有する
    ことを特徴とするメディアプロセッサ。
JP2007550531A 2005-01-10 2006-01-09 ビジュアルメディアの統合処理のための統合アーキテクチャ Expired - Fee Related JP4806418B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US64260205P 2005-01-10 2005-01-10
US60/642,602 2005-01-10
PCT/US2006/000622 WO2006121472A1 (en) 2005-01-10 2006-01-09 Integrated architecture for the unified processing of visual media

Publications (2)

Publication Number Publication Date
JP2008527545A JP2008527545A (ja) 2008-07-24
JP4806418B2 true JP4806418B2 (ja) 2011-11-02

Family

ID=37396848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007550531A Expired - Fee Related JP4806418B2 (ja) 2005-01-10 2006-01-09 ビジュアルメディアの統合処理のための統合アーキテクチャ

Country Status (7)

Country Link
US (1) US20080126812A1 (ja)
EP (1) EP1836797A4 (ja)
JP (1) JP4806418B2 (ja)
CN (1) CN101151840B (ja)
AU (1) AU2006244646B2 (ja)
CA (1) CA2593247A1 (ja)
WO (1) WO2006121472A1 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483532B2 (en) * 2003-07-03 2009-01-27 Microsoft Corporation RTP payload format
JPWO2005122455A1 (ja) * 2004-06-14 2008-04-10 日本電気株式会社 双方向通信方法と装置、システムならびにプログラム
US7684566B2 (en) 2005-05-27 2010-03-23 Microsoft Corporation Encryption scheme for streamed multimedia content protected by rights management system
US7769880B2 (en) * 2005-07-07 2010-08-03 Microsoft Corporation Carrying protected content using a control protocol for streaming and a transport protocol
US8321690B2 (en) 2005-08-11 2012-11-27 Microsoft Corporation Protecting digital media of various content types
US7634816B2 (en) * 2005-08-11 2009-12-15 Microsoft Corporation Revocation information management
US7720096B2 (en) * 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
US20080201751A1 (en) * 2006-04-18 2008-08-21 Sherjil Ahmed Wireless Media Transmission Systems and Methods
US20070255433A1 (en) * 2006-04-25 2007-11-01 Choo Eugene K Method and system for automatically selecting digital audio format based on sink device
US20080001955A1 (en) * 2006-06-29 2008-01-03 Inventec Corporation Video output system with co-layout structure
US8606966B2 (en) * 2006-08-28 2013-12-10 Allot Communications Ltd. Network adaptation of digital content
US20080062322A1 (en) * 2006-08-28 2008-03-13 Ortiva Wireless Digital video content customization
US9478062B2 (en) * 2006-09-19 2016-10-25 Imagination Technologies Limited Memory allocation in distributed memories for multiprocessing
US7773618B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
US20080212890A1 (en) * 2007-01-10 2008-09-04 Loubachevskaia Natalya Y Systems and Methods for Noise Estimation in a Single Frame of Video Data
US8127233B2 (en) * 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
US8619877B2 (en) * 2007-10-11 2013-12-31 Microsoft Corporation Optimized key frame caching for remote interface rendering
US8121423B2 (en) * 2007-10-12 2012-02-21 Microsoft Corporation Remote user interface raster segment motion detection and encoding
US8106909B2 (en) * 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
US7929860B2 (en) * 2007-10-15 2011-04-19 Motorola Mobility, Inc. System and method for sonet equipment fault management
FR2925187B1 (fr) * 2007-12-14 2011-04-08 Commissariat Energie Atomique Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele,en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees
DE102008009719A1 (de) * 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen
US8086644B2 (en) * 2008-07-10 2011-12-27 International Business Machines Corporation Simplifying complex data stream problems involving feature extraction from noisy data
US20110194616A1 (en) * 2008-10-01 2011-08-11 Nxp B.V. Embedded video compression for hybrid contents
US8145813B2 (en) * 2008-10-24 2012-03-27 Himax Display, Inc. Electronic device utilizing connecting port for connecting connector to transmit/receive signals with customized format
US8923774B2 (en) * 2008-11-04 2014-12-30 Broadcom Corporation Management unit with local agent
US8131220B2 (en) * 2008-11-04 2012-03-06 Broadcom Corporation Management unit for managing a plurality of multiservice communication devices
KR101494642B1 (ko) * 2008-11-10 2015-02-23 삼성전자주식회사 외부 장치별 단말기 제어 방법 및 이를 위한 외부 장치 운용 시스템
US8392885B2 (en) * 2008-12-19 2013-03-05 Microsoft Corporation Low privilege debugging pipeline
CN102804165A (zh) * 2009-02-11 2012-11-28 四次方有限公司 具有可扩展数据路径的前端处理器
KR101553652B1 (ko) * 2009-02-18 2015-09-16 삼성전자 주식회사 이종 프로세서에 대한 명령어 컴파일링 장치 및 방법
CN102055969B (zh) * 2009-10-30 2012-12-19 鸿富锦精密工业(深圳)有限公司 影像解块过滤器及使用其的影像处理装置
US20110125987A1 (en) * 2009-11-20 2011-05-26 Qualcomm Incorporated Dedicated Arithmetic Decoding Instruction
US8554743B2 (en) 2009-12-08 2013-10-08 International Business Machines Corporation Optimization of a computing environment in which data management operations are performed
US20110194606A1 (en) * 2010-02-09 2011-08-11 Cheng-Yu Hsieh Memory management method and related memory apparatus
CN102200947A (zh) * 2010-03-24 2011-09-28 承景科技股份有限公司 存储器管理方法与相关存储器装置
WO2012081000A1 (en) * 2010-12-13 2012-06-21 Dsp Group Ltd. A method and system for signaling by bit manipulation in communication protocols
KR101805622B1 (ko) * 2011-06-08 2017-12-08 삼성전자주식회사 프레임율 제어 방법 및 장치
WO2013152452A1 (en) 2012-04-09 2013-10-17 Intel Corporation Parallel processing image data having top-left dependent pixels
JP2014067333A (ja) * 2012-09-27 2014-04-17 Sony Corp 画像処理装置、画像処理方法、およびプログラム
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9026983B2 (en) * 2013-03-15 2015-05-05 Ittiam Systems (P) Ltd. Flexible and scalable software system architecture for implementing multimedia applications
US9847937B2 (en) * 2013-03-25 2017-12-19 Marvell World Trade Ltd. Hardware acceleration for routing programs
US9323584B2 (en) 2013-09-06 2016-04-26 Seagate Technology Llc Load adaptive data recovery pipeline
US9280422B2 (en) 2013-09-06 2016-03-08 Seagate Technology Llc Dynamic distribution of code words among multiple decoders
US9459931B2 (en) * 2014-01-06 2016-10-04 International Business Machines Corporation Administering a lock for resources in a distributed computing environment
FR3016764B1 (fr) * 2014-01-17 2016-02-26 Sagemcom Broadband Sas Procede et dispositif de transcodage de donnees video de h.264 vers h.265
US10474597B2 (en) * 2015-08-03 2019-11-12 Marvell World Trade Ltd. Systems and methods for performing unknown address discovery in a MoChi space
US10237593B2 (en) * 2016-05-26 2019-03-19 Telefonaktiebolaget Lm Ericsson (Publ) Monitoring quality of experience (QoE) at audio/video (AV) endpoints using a no-reference (NR) method
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
US10261115B2 (en) * 2017-07-24 2019-04-16 Lg Chem, Ltd. Voltage monitoring system utilizing a common channel and exchanged encoded channel numbers to confirm valid voltage values
US10659797B2 (en) * 2017-10-31 2020-05-19 Google Llc Video frame codec architectures
US10426424B2 (en) 2017-11-21 2019-10-01 General Electric Company System and method for generating and performing imaging protocol simulations
CN111064912B (zh) * 2019-12-20 2022-03-22 江苏芯盛智能科技有限公司 一种帧格式变换电路与方法
CN116667968A (zh) * 2020-03-02 2023-08-29 加特兰微电子科技(上海)有限公司 自动增益控制方法、传感器及无线电器件
TWI778524B (zh) * 2021-02-24 2022-09-21 圓展科技股份有限公司 偵測雙邊發話及消除回音的方法、通訊裝置及通訊系統
CN117395437B (zh) * 2023-12-11 2024-04-05 沐曦集成电路(南京)有限公司 一种基于异构计算的视频编解码方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09187009A (ja) * 1995-10-20 1997-07-15 Nippon Steel Corp 動きベクトルの検出装置および動き評価方法
JPH09247679A (ja) * 1996-02-22 1997-09-19 Internatl Business Mach Corp <Ibm> スケーラブルmpeg2適合ビデオ・エンコーダ
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method

Family Cites Families (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193204A (en) * 1984-03-06 1993-03-09 Codex Corporation Processor interface circuitry for effecting data transfers between processors
US5043979A (en) * 1986-09-16 1991-08-27 Hitachi, Ltd. Time-division channel arrangement
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US4914692A (en) * 1987-12-29 1990-04-03 At&T Bell Laboratories Automatic speech recognition using echo cancellation
JP2617798B2 (ja) * 1989-09-22 1997-06-04 三菱電機株式会社 積層型半導体装置およびその製造方法
US5200564A (en) * 1990-06-29 1993-04-06 Casio Computer Co., Ltd. Digital information processing apparatus with multiple CPUs
JPH0743700B2 (ja) * 1990-07-17 1995-05-15 三菱電機株式会社 データ駆動型情報処理装置
US5594784A (en) * 1993-04-27 1997-01-14 Southwestern Bell Technology Resources, Inc. Apparatus and method for transparent telephony utilizing speech-based signaling for initiating and handling calls
US5572040A (en) * 1993-07-12 1996-11-05 Peregrine Semiconductor Corporation High-frequency wireless communication system on a single ultrathin silicon on sapphire chip
JP3698754B2 (ja) * 1995-04-12 2005-09-21 シャープ株式会社 データ駆動型情報処理装置
US5724356A (en) * 1995-04-28 1998-03-03 Multi-Tech Systems, Inc. Advanced bridge/router local area network modem node
JPH0926949A (ja) * 1995-07-10 1997-01-28 Sharp Corp データ駆動型情報処理装置
JP3720094B2 (ja) * 1995-10-18 2005-11-24 シャープ株式会社 データ駆動型情報処理装置
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5799091A (en) * 1996-05-24 1998-08-25 Lsi Logic Corporation Single chip solution for multimedia GSM mobile station systems
KR100195065B1 (ko) * 1996-06-20 1999-06-15 유기범 데이타 통신망 정합장치
US5852437A (en) * 1996-09-24 1998-12-22 Ast Research, Inc. Wireless device for displaying integrated computer and television user interfaces
WO1998024267A1 (en) * 1996-11-27 1998-06-04 Alcatel Usa Sourcing, L.P. Telecommunications switch for providing telephony traffic integrated with video information services
US6009505A (en) * 1996-12-02 1999-12-28 Compaq Computer Corp. System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot
US6226266B1 (en) * 1996-12-13 2001-05-01 Cisco Technology, Inc. End-to-end delay estimation in high speed communication networks
US6304551B1 (en) * 1997-03-21 2001-10-16 Nec Usa, Inc. Real-time estimation and dynamic renegotiation of UPC values for arbitrary traffic sources in ATM networks
US6075788A (en) * 1997-06-02 2000-06-13 Lsi Logic Corporation Sonet physical layer device having ATM and PPP interfaces
US6067595A (en) * 1997-09-23 2000-05-23 Icore Technologies, Inc. Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
US6108760A (en) * 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US6131130A (en) * 1997-12-10 2000-10-10 Sony Corporation System for convergence of a personal computer with wireless audio/video devices wherein the audio/video devices are remotely controlled by a wireless peripheral
US6349098B1 (en) * 1998-04-17 2002-02-19 Paxonet Communications, Inc. Method and apparatus for forming a virtual circuit
US6226735B1 (en) * 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
CN1258140A (zh) * 1998-07-24 2000-06-28 休斯电子公司 多传送模式无线电通信
US6269435B1 (en) * 1998-09-14 2001-07-31 The Board Of Trustees Of The Leland Stanford Junior University System and method for implementing conditional vector operations in which an input vector containing multiple operands to be used in conditional operations is divided into two or more output vectors based on a condition vector
US7100026B2 (en) * 2001-05-30 2006-08-29 The Massachusetts Institute Of Technology System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values
US6493666B2 (en) * 1998-09-29 2002-12-10 William M. Wiese, Jr. System and method for processing data from and for multiple channels
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6768774B1 (en) * 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6573905B1 (en) * 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6798420B1 (en) * 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US6597689B1 (en) * 1998-12-30 2003-07-22 Nortel Networks Limited SVC signaling system and method
US6449655B1 (en) * 1999-01-08 2002-09-10 Cisco Technology, Inc. Method and apparatus for communication between network devices operating at different frequencies
US6522688B1 (en) * 1999-01-14 2003-02-18 Eric Morgan Dowling PCM codec and modem for 56K bi-directional transmission
US6519259B1 (en) * 1999-02-18 2003-02-11 Avaya Technology Corp. Methods and apparatus for improved transmission of voice information in packet-based communication systems
US6628658B1 (en) * 1999-02-23 2003-09-30 Siemens Aktiengesellschaft Time-critical control of data to a sequentially controlled interface with asynchronous data transmission
IL160386A (en) * 1999-04-06 2005-11-20 Broadcom Corp Video encoding and video/audio/data multiplexing device
US7110358B1 (en) * 1999-05-14 2006-09-19 Pmc-Sierra, Inc. Method and apparatus for managing data traffic between a high capacity source and multiple destinations
GB9915327D0 (en) * 1999-06-30 1999-09-01 Nortel Networks Corp Packet interface and method of packetizing information
CN1250294A (zh) * 1999-07-27 2000-04-12 邮电部武汉邮电科学研究院 以太网与同步数字体系或同步光网络融合的适配方法
US6580727B1 (en) * 1999-08-20 2003-06-17 Texas Instruments Incorporated Element management system for a digital subscriber line access multiplexer
US6580793B1 (en) * 1999-08-31 2003-06-17 Lucent Technologies Inc. Method and apparatus for echo cancellation with self-deactivation
US6640239B1 (en) * 1999-11-10 2003-10-28 Garuda Network Corporation Apparatus and method for intelligent scalable switching network
NL1013747C2 (nl) * 1999-12-03 2001-06-25 Stertil Bv Voertuigblokkeringsinrichting.
GB0001585D0 (en) * 2000-01-24 2000-03-15 Radioscape Ltd Method of designing,modelling or fabricating a communications baseband stack
US7032223B2 (en) * 2000-03-01 2006-04-18 Realtek Semiconductor Corp. Transport convergence sub-system with shared resources for multiport xDSL system
US6807167B1 (en) * 2000-03-08 2004-10-19 Lucent Technologies Inc. Line card for supporting circuit and packet switching
US6631135B1 (en) * 2000-03-27 2003-10-07 Nortel Networks Limited Method and apparatus for negotiating quality-of-service parameters for a network connection
US6934937B1 (en) * 2000-03-30 2005-08-23 Broadcom Corporation Multi-channel, multi-service debug on a pipelined CPU architecture
US6810039B1 (en) * 2000-03-30 2004-10-26 Azanda Network Devices, Inc. Processor-based architecture for facilitating integrated data transfer between both atm and packet traffic with a packet bus or packet link, including bidirectional atm-to-packet functionally for atm traffic
US6751224B1 (en) * 2000-03-30 2004-06-15 Azanda Network Devices, Inc. Integrated ATM/packet segmentation-and-reassembly engine for handling both packet and ATM input data and for outputting both ATM and packet data
US6795396B1 (en) * 2000-05-02 2004-09-21 Teledata Networks, Ltd. ATM buffer system
US20020031132A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick UTOPIA-LVDS bridge
US20020031141A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick Method of detecting back pressure in a communication system using an utopia-LVDS bridge
US20020009089A1 (en) * 2000-05-25 2002-01-24 Mcwilliams Patrick Method and apparatus for establishing frame synchronization in a communication system using an UTOPIA-LVDS bridge
KR100336593B1 (ko) * 2000-06-14 2002-05-16 박종섭 에이티엠 다중화/역다중화 장치에서 유토피아 레벨2수행부와 유토피아 레벨1 수행부간 정합 장치
US20020034162A1 (en) * 2000-06-30 2002-03-21 Brinkerhoff Kenneth W. Technique for implementing fractional interval times for fine granularity bandwidth allocation
US20020059426A1 (en) * 2000-06-30 2002-05-16 Mariner Networks, Inc. Technique for assigning schedule resources to multiple ports in correct proportions
US6707821B1 (en) * 2000-07-11 2004-03-16 Cisco Technology, Inc. Time-sensitive-packet jitter and latency minimization on a shared data link
US6892324B1 (en) * 2000-07-19 2005-05-10 Broadcom Corporation Multi-channel, multi-service debug
US6751723B1 (en) * 2000-09-02 2004-06-15 Actel Corporation Field programmable gate array and microcontroller system-on-a-chip
US6738358B2 (en) * 2000-09-09 2004-05-18 Intel Corporation Network echo canceller for integrated telecommunications processing
US20030046457A1 (en) * 2000-10-02 2003-03-06 Shakuntala Anjanaiah Apparatus and method for an interface unit for data transfer between processing units in the asynchronous transfer mode
US6636515B1 (en) * 2000-11-21 2003-10-21 Transwitch Corporation Method for switching ATM, TDM, and packet data through a single communications switch
US6631130B1 (en) * 2000-11-21 2003-10-07 Transwitch Corporation Method and apparatus for switching ATM, TDM, and packet data through a single communications switch while maintaining TDM timing
US7140016B2 (en) * 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
US6763018B1 (en) * 2000-11-30 2004-07-13 3Com Corporation Distributed protocol processing and packet forwarding using tunneling protocols
US6754804B1 (en) * 2000-12-29 2004-06-22 Mips Technologies, Inc. Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions
US20020101982A1 (en) * 2001-01-30 2002-08-01 Hammam Elabd Line echo canceller scalable to multiple voice channels/ports
US7215672B2 (en) * 2001-03-13 2007-05-08 Koby Reshef ATM linked list buffer system
AU2002249429A1 (en) * 2001-04-19 2002-11-05 Indigovision Limited Apparatus and method for processing video data
US6952238B2 (en) * 2001-05-01 2005-10-04 Koninklijke Philips Electronics N.V. Method and apparatus for echo cancellation in digital ATV systems using an echo cancellation reference signal
US6806915B2 (en) * 2001-05-03 2004-10-19 Koninklijke Philips Electronics N.V. Method and apparatus for echo cancellation in digital communications using an echo cancellation reference signal
US6928080B2 (en) * 2001-06-28 2005-08-09 Intel Corporation Transporting variable length ATM AAL CPS packets over a non-ATM-specific bus
JP2003023138A (ja) * 2001-07-10 2003-01-24 Toshiba Corp メモリチップ及びこれを用いたcocデバイス、並びに、これらの製造方法
US6728209B2 (en) * 2001-07-25 2004-04-27 Overture Networks, Inc. Measurement of packet delay variation
US7519081B2 (en) * 2001-09-18 2009-04-14 Cisco Technology, Inc. Multi-carrier frequency-division multiplexing (FDM) architecture for high speed digital service in local networks
US20030053493A1 (en) * 2001-09-18 2003-03-20 Joseph Graham Mobley Allocation of bit streams for communication over-multi-carrier frequency-division multiplexing (FDM)
US7218901B1 (en) * 2001-09-18 2007-05-15 Scientific-Atlanta, Inc. Automatic frequency control of multiple channels
US20030105799A1 (en) * 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
US7051246B2 (en) * 2003-01-15 2006-05-23 Lucent Technologies Inc. Method for estimating clock skew within a communications network
DE102005034010A1 (de) * 2005-07-18 2007-01-25 Coltène/Whaledent GmbH + Co. KG Wurzelkanalinstrument mit abrasiver Beschichtung und Verfahren zur Herstellung desselben

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09187009A (ja) * 1995-10-20 1997-07-15 Nippon Steel Corp 動きベクトルの検出装置および動き評価方法
JPH09247679A (ja) * 1996-02-22 1997-09-19 Internatl Business Mach Corp <Ibm> スケーラブルmpeg2適合ビデオ・エンコーダ
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method

Also Published As

Publication number Publication date
WO2006121472A1 (en) 2006-11-16
CA2593247A1 (en) 2006-11-16
CN101151840A (zh) 2008-03-26
EP1836797A4 (en) 2010-03-17
AU2006244646B2 (en) 2010-08-19
JP2008527545A (ja) 2008-07-24
EP1836797A1 (en) 2007-09-26
US20080126812A1 (en) 2008-05-29
CN101151840B (zh) 2011-09-21
AU2006244646A1 (en) 2006-11-16

Similar Documents

Publication Publication Date Title
JP4806418B2 (ja) ビジュアルメディアの統合処理のための統合アーキテクチャ
TW552810B (en) Transcoder-multiplexer (transmux) software architecture
CN101827242B (zh) 一种基于网络电视机顶盒的可视电话***实现方法
TW245871B (en) Method and apparatus for efficient addressing of dram in a video decompression processor
US7835280B2 (en) Methods and systems for managing variable delays in packet transmission
JP3142772B2 (ja) プロセッサ及び転送方法
US20050094729A1 (en) Software and hardware partitioning for multi-standard video compression and decompression
JP2007512749A (ja) ビデオ復号化装置
US8311088B2 (en) Method and system for image processing in a microprocessor for portable video communication devices
US20060176960A1 (en) Method and system for decoding variable length code (VLC) in a microprocessor
JP2022141586A (ja) 低遅延のために統合nicと共有フレームバッファアクセスとを有するクラウドゲーミングgpu
US20190356911A1 (en) Region-based processing of predicted pixels
CN109891887A (zh) 解耦视频系数的规范和实现数据路径交织的转换缓冲器
WO2002087248A2 (en) Apparatus and method for processing video data
Percador et al. A DSP based IP set-top box for home entertainment
JP2007505545A (ja) スケーラブル信号処理方法及び装置
WO2005015805A2 (en) Software and hardware partitioning for multi-standard video compression and decompression
US20220224746A1 (en) Media streaming endpoint
US9330060B1 (en) Method and device for encoding and decoding video image data
Keller et al. Xmovie: architecture and implementation of a distributed movie system
Peng Introduction to video-surveillance systems over the Internet protocol
Li et al. Design and realization of embedded network video surveillance system based on the DM365
Pirsch et al. VLSI architectures for video signal processing
Schuchter et al. Hardware-based JPEG2000 video coding system
JP3380236B2 (ja) 映像音声処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100723

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101025

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees