JP4495522B2 - デジタル・イメージ処理装置 - Google Patents

デジタル・イメージ処理装置 Download PDF

Info

Publication number
JP4495522B2
JP4495522B2 JP2004160636A JP2004160636A JP4495522B2 JP 4495522 B2 JP4495522 B2 JP 4495522B2 JP 2004160636 A JP2004160636 A JP 2004160636A JP 2004160636 A JP2004160636 A JP 2004160636A JP 4495522 B2 JP4495522 B2 JP 4495522B2
Authority
JP
Japan
Prior art keywords
digital image
image processing
data
processing apparatus
memory
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
JP2004160636A
Other languages
English (en)
Other versions
JP2005020722A (ja
JP2005020722A5 (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 JP2005020722A publication Critical patent/JP2005020722A/ja
Publication of JP2005020722A5 publication Critical patent/JP2005020722A5/ja
Application granted granted Critical
Publication of JP4495522B2 publication Critical patent/JP4495522B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0294Variable filters; Programmable filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Focusing (AREA)
  • Automatic Focus Adjustment (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、一般に、デジタル・イメージ処理に関するものであり、より具体的には、固定されたアプリケーション固有の計算要素を持つ多様な適応型計算単位(diverse and adaptive computational units)の異成分からなる再構成可能なマトリックス(heterogeneous and reconfigurable matrices)とともに適応型集積回路(adaptive integrated circuitry)を使用するデジタル・イメージ処理およびその他の光学的応用に関するものである。
本出願は、本発明の譲受人であるQuickSilver Technology,Inc.に譲渡された2001年3月22日に出願されたPaul L.Master et al.による「Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed, Application Specific Computational Elements」という表題の米国特許出願第09/8 15,122号の一部継続出願である、本発明の譲受人であるQuickSilver Technology,Inc.に譲渡され、参照により本明細書に組み込まれ、一般に開示されているすべての主題(「関連出願」)の優先権を主張する、2003年に出願されたPaul L.Master et al.による「Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed,Application Specific Computational Elements」という表題の米国特許出願に関係する。
関連出願では、適応型コンピューティング・エンジン(Adaptive Computing Engine:ACE)と呼ばれる、新しい形態または種類の集積回路を開示しており、これは、リアルタイムで容易に再構成可能であり、対応する複数の動作モードを持つことができる。
適応型または再構成可能コンピューティングのACEアーキテクチャは、相互接続ネットワークに結合されている複数の異なるまたは異成分の計算要素を含む。複数の異成分計算要素は、メモリ、加算、乗算、複素乗算、減算、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどのさまざまな機能に対する固定されたアーキテクチャなど、固定された異なるアーキテクチャを備える対応する計算要素を含む。構成情報に対する応答として、相互接続ネットワークは、線形アルゴリズム・オペレーション、非線形アルゴリズム・オペレーション、有限状態機械オペレーション、メモリ・オペレーション、およびビット・レベル操作を含む、複数の異なる機能モードに対し複数の異成分計算要素を適応(構成し再構成)させる動作をリアルタイムで実行する。
ACEアーキテクチャは、これらの固定およびアプリケーション固有の計算要素を使用して、リアルタイムで、さまざまなタスクを実行するように適応させることができる単一のICを備える。例えば、異成分計算要素の同じ集合の時間の経過とともに異なる構成を使用することで、ACEアーキテクチャは有限インパルス応答フィルタ処理、高速フーリエ変換、離散コサイン変換などの機能を実装することができ、また他の種類の計算要素を使用して、高度な通信およびコンピューティングに対する他の多くの高水準の処理機能を実装できる。
デジタル・イメージ処理技術は、比較的最近の分野であり、デジタル・カメラ、デジタル・スキャナ、ファクシミリ(FAX)機、およびコピー機などのデバイスを含む。しかし、従来のデジタル・イメージ処理では、デジタル・シグナル・プロセッサ(Digital Service Processor:「DSP」)、マイクロプロセッサ、または特定用途向け集積回路(Applicaion-Specific Integrated Circuits:ASIC」)を利用している。したがって、デジタル・イメージ処理では、関連出願のACEアーキテクチャを使用するなど、適応型コンピューティング回路アーキテクチャを使用する必要がまだある。
本発明では、例えば、デジタル・カメラ、スキャナ、プリンタ、乾式コピー機、またはデジタル・イメージ処理アプリケーションで使用される他の手段として実現できるデジタル・イメージ処理装置を実現する。
本発明のデジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、複数の計算要素、および相互接続ネットワークを含む。光学センサは、物体像を検出イメージに変換することができる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージをデジタル・イメージ情報に変換することができる。複数の計算要素は、第1の固定アーキテクチャを備える第1の計算要素および第2の固定アーキテクチャを備える第2の計算要素を含み、第1の固定アーキテクチャは第2の固定アーキテクチャと異なる。相互接続ネットワークは、複数の計算要素およびアナログ−デジタル・コンバータに結合され、第1の構成情報への応答として複数のイメージ処理機能のうちの第1のイメージ処理機能を実行するように複数の計算要素を構成し、第2の構成情報への応答として複数のイメージ処理機能のうちの第2のイメージ処理機能を実行するように複数の計算要素を再構成することによりデジタル・イメージ情報からの処理済みのデジタル・イメージを供給することができるが、ただし、第1のイメージ処理機能は第2のイメージ処理機能と異なる。
デジタル・イメージ処理装置は、さらに、レンズ、シャッター、絞り、およびフォーカス・モータを備えるフォーカス・アセンブリなどの光学センサに物体像を供給することができる焦点合わせ手段も含むことができる。光学センサは、電荷結合素子(Charge Coupled Device:CCD)、電荷注入素子(Charge Injection Device:CID)、光学相補型金属酸化シリコン(Complementary Metal Oxide Silicon:CMOS)アレイ、光学バイポーラ接合型トランジスタ(Bipolar Junction Transistor:BJT)アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイなどの複数の光学センサのうちの少なくとも1つである。
デジタル・イメージ処理装置は、さまざまな実施形態において、相互接続ネットワークに結合され、処理済みのデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェース、アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるビューファインダ画面、およびアナログ出力インターフェースに結合され、テレビまたはその他のビデオ表示装置に接続することなどを目的として、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートを備えることもできる。デジタル・イメージ処理装置はさらに、相互接続ネットワークに結合され、コンピュータまたはデータ送信デバイスに接続することなどを目的として、処理済みデジタル・イメージを出力することができるデジタル出力ポートを備えることもできる。
処理済みデジタル・イメージは、さらに、複数の処理済みデジタル・イメージ・データ・パケットとして供給することもできる。この実施形態では、デジタル・イメージ処理装置は、さらに、相互接続ネットワークに結合されたデジタル出力インターフェースも備え、デジタル出力インターフェースは、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができる。
デジタル・イメージ処理装置は、さらに、例えば、有形媒体上に処理済みデジタル・イメージを印刷することができるプリンタ、処理済みデジタル・イメージを有形媒体に転送することができる乾式コピー機、処理済みデジタル・イメージを離れた場所に送信することができるデータ送信器、処理済みデジタル・イメージを記憶媒体、コンピュータなどに転送することができるスキャナの中に組み込んだり、またはそれに結合することもできる。
さまざまな実施形態において、複数のイメージ処理機能として、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理(morphological filtering)、メディアン・フィルタ処理(median filtering)、局所重み付きメディアン・フィルタ処理(local weighted median filtering)、中心重み付きメディアン・フィルタ処理(center weighted median filtering)、ベクトル重み付きメディアン・フィルタ処理(vector weighted median filtering)、マルチチャネル・イメージ回復(multichannel image recovery)、マルチフレーム・イメージ復元(multiframe image restoration)、反復イメージ復元(iterative image restoration)、動き検出(motion detection)、動き推定(motion estimation)、ローパス・フィルタ処理、マルチレート・フィルタ処理(multirate filtering)、ウェーブレット・ベースのマルチレート・フィルタ処理(wavelet-based multirate filtering)、オートフォーカス、コントラスト促進(contrast enhancement)、ぼやけ除去(blur removal)などの機能うちの1つまたは複数がある。
また、さまざまな実施形態では、複数の計算要素の第1の固定されたアーキテクチャおよび第2の固定されたアーキテクチャは、線形フィルタ処理、非線形フィルタ処理、メモリ、加算、乗算、複素乗算、減算、同期化、キュー処理、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの対応する機能を備えるアーキテクチャなどの複数の特定のアーキテクチャから選択することができる。
さまざまな種類のメモリをデジタル・イメージ処理装置内に組み込むことができる。例えば、第1のメモリは、相互接続ネットワークに結合可能であり、処理済みデジタル・イメージを格納することができ、この第1のメモリは、選択的に取り外し可能なフラッシュ・メモリとすることができる。第2のメモリも、組み込み、相互接続ネットワークに結合可能であり、第1の構成情報および第2の構成情報を格納することができ、例えば同期型ダイナミック・ランダム・アクセス・メモリ(Synchronous Dynamic Random Access Memory:SDRAM)とすることができる。
他の実施形態では、デジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、入力パイプライン・レジスタ、第1のメモリ、ハードウェア・タスク・マネージャ、データ分配器、適応型実行ユニット、データ選択器、および出力パイプライン・レジスタを備える。光学センサは、さらに、物体像を検出イメージに変換することもできる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージを複数のデジタル・イメージ情報データ・パケットに変換することができる。入力パイプライン・レジスタは、アナログ−デジタル・コンバータに結合され、複数のデジタル・イメージ情報データ・パケットを受信することができ、その一方で、第1のメモリは、複数のデジタル・イメージ情報データ・パケットを格納することができる。ハードウェア・タスク・マネージャは、複数のイメージ処理タスクを処理し、複数のイメージ処理タスクのうちの第1のイメージ処理タスクを実行することが可能であり、複数のイメージ処理タスクのうちの第2のイメージ処理タスクを実行することが可能であり、第1のイメージ処理タスクは第2のイメージ処理タスクと異なることを判別することができる。データ分配器は、入力パイプライン・レジスタ、第1のメモリ、およびハードウェア・タスク・マネージャに結合され、複数のデジタル・イメージ情報データ・パケットを第1のメモリに分配することができる。適応型実行ユニットは、ハードウェア・タスク・マネージャおよび第1のメモリに結合され、第1のイメージ処理タスクを実行するように構成することができ、また複数のデジタル・イメージ情報データ・パケットを使用して第1のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第2のイメージ処理タスクを実行するように再構成することができ、また第2のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第1のイメージ処理タスクおよび第2のイメージ処理タスクの実行で得られる複数の対応する処理済みデジタル・イメージ・データ・パケットを生成することができる。データ選択器は、ハードウェア・タスク・マネージャ、適応型実行ユニット、および第1のメモリに結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットの経路を決定することができる。出力パイプライン・レジスタは、データ選択器に結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットを受信することができる。
この実施形態では、適応型実行ユニットは、複数の計算要素および複数の計算要素に結合されている複数のスイッチング要素を含む。複数の計算要素において、第1の計算要素は第1の固定アーキテクチャを備え、第2の計算要素は第2の固定アーキテクチャを備え、第1の固定アーキテクチャは第2の固定アーキテクチャと異なる。複数のスイッチング要素は、第1の構成情報への応答として複数のイメージ処理機能のうちの第1のイメージ処理機能を実行するように複数の計算要素を構成し、第2の構成情報への応答として複数のイメージ処理機能のうちの第2のイメージ処理機能を実行するように複数の計算要素を再構成することができるが、第1のイメージ処理機能は第2のイメージ処理機能と異なる。
本発明の他の多数の利点および特徴は、本発明およびその実施形態の以下の詳細な説明、特許請求の範囲、および付属の図面から容易に理解されるであろう。
本発明についてさまざまな種類の実施形態が考えられ、図面には特定の実施形態が示されおり、本明細書でそれらについて説明するが、本開示は本発明の原理の例示としてみなされるべきであり、本発明を例示されている特定の実施形態に限ることは意図していないことを理解されたい。
本発明は、ACEアーキテクチャなどの適応型コンピューティング・アーキテクチャを使用するデジタル・イメージ処理を行う。本発明の適応型コンピューティング・アーキテクチャでは、複数の計算要素を使用しており、これらはそれ自体、相互接続ネットワークとともにアーキテクチャを固定しており、この場合デジタル・イメージ処理に関係するさまざまな機能およびオペレーションを実行するように同じ計算要素を構成し、再構成する。ACEアーキテクチャは、例えば、デジタル・カメラ、ビデオ・カメラ、ビデオ電話アプリケーション、デジタルTV、デジタル映画、ファクス機、コピー機、または可視スペクトル(光)信号からイメージを作成または再現する他の任意の個数のデバイスで使用することなどを目的として、光学検出イメージを処理し、処理されたデジタル・イメージを供給するように構成し、再構成することができる。
図1は、本発明による第1の装置100の実施形態を例示するブロック図である。装置100は、本明細書では適応型コンピューティング・エンジン(Adaptive Computing Engine:ACE)100とも呼ばれ、集積回路として、または他の追加コンポーネントを備える集積回路の一部として実現するのが好ましい。第1の装置実施形態では、以下で詳しく説明するが、ACE100は例示されているようなマトリックス150Aから150Nなどの1つまたは複数の再構成可能なマトリックス(またはノード)150、およびマトリックス相互接続ネットワーク110を含む。また、第1の装置実施形態では、以下で詳しく説明するが、マトリックス150Aおよび150Bなどのマトリックス(ノード)150のうちの1つまたは複数は、コントローラ120として機能するように構成され、マトリックス150Cおよび150Dなどの他のマトリックスは、メモリ140として機能するように構成される。さまざまなマトリックス150およびマトリックス相互接続ネットワーク110は、さらに、フラクタル・サブユニット(fractal subunit)としてまとめて実装することもでき、少数のノードから数千ものノードまで拡張することができる。
従来技術から著しく逸脱するが、ACE100では、再構成可能マトリックス150、コントローラ120、およびメモリ140の間の信号送受信およびその他の伝送、またはその他の入出力(「I/O」)機能に、従来の(および通常独立している)データ、ダイレクト・メモリ・アクセス(Direct Memory Access:DMA)、ランダム・アクセス、構成および命令用バスを使用しない。むしろ、データ、制御、および構成情報は、マトリックス相互接続ネットワーク110を利用して、これらのマトリックス150要素間でやり取りされ、以下で詳しく説明するように、コントローラ120およびメモリ140として構成されているマトリックス150を含む、再構成可能マトリックス150の間の所定の接続を実現するようにリアルタイムで構成し再構成することができる。
メモリ140として機能するように構成されているマトリックス150は、固定メモリ要素の計算要素(後述)を使用して、望ましいまたは好ましい方法で実装することができ、ACE100に含めるか、または他のICまたはICの一部の中に組み込むことができる。第1の装置実施形態では、メモリ140はACE100とともに含まれ、低消費電力のランダム・アクセス・メモリ(Random Access Memeory:RAM)である計算要素から構成されるのが好ましいが、フラッシュ・メモリ、DRAM、SRAM、SDRAM、FeRAM、MRAM、ROM、EPROM、またはEPROMなどの他のメモリ形態の計算要素から構成することもできる。第1の装置実施形態では、メモリ140は、DMAエンジンを備えるのが好ましいが、別に例示されてはいない。
コントローラ120は、適応型有限状態機械、後述の2種類の機能を実行できる縮小命令セット(RISC)プロセッサ、コントローラ、またはその他のデバイスまたはICとして構成されたマトリックス150Aおよび150Bを使用して、実装するのが好ましい。(それとは別に、これらの機能は、従来のRISCまたはその他のプロセッサを使用して実装することができる。)「カーネル」制御と呼ばれる第1の制御機能は、マトリックス150Aのカーネル・コントローラ(KARC)として例示されており、「マトリックス」制御と呼ばれる第2の制御機能は、マトリックス150Bのマトリックス・コントローラ(MARC)として例示されている。コントローラ120のカーネルおよびマトリックス制御機能については、さまざまなマトリックス150の構成可能性と再構成可能性に関して、また本明細書で「silverware」モジュールと称する、組み合わされたデータ、構成、および制御情報の形態の例を参照して、後で詳しく説明する。カーネル・コントローラは、「Kノード」とも呼ばれるが、図10および11を参照して以下で詳述する。
図1のマトリックス相互接続ネットワーク(Matix Interconnection Network:MIN)110、および図3および4に別々に例示されているそのサブセット相互接続ネットワーク(ブール相互接続ネットワーク210、データ相互接続ネットワーク240、および相互接続220)は、本明細書では「相互接続」または「相互接続ネットワーク」と総称するが、かなり異なる方法であっても、FPGA相互接続ネットワークまたはスイッチング・ファブリックを利用するなどして一般に当業で知られているように実装することができる。第1の装置実施形態では、さまざまな相互接続ネットワークは、例えば、特許文献1乃至4で説明されているように、また後述のように、図7、8、および9を参照して例示されているように実装される。
米国特許第5,218,240号 米国特許第5,336,950号 米国特許第5,245,227号 米国特許第5,144,166号これらのさまざまな相互接続ネットワークは、コントローラ120、メモリ140、さまざまなマトリックス150、および後述の計算ユニット200および計算要素250の間の選択可能な(または切り換え可能な)接続を提供し、これは、本明細書で「構成情報」と一般に呼ぶ構成信号に対する応答として、その制御の下で、本明細書で参照している構成および再構成の物理的基盤となる。さらに、さまざまな相互接続ネットワーク(110、210、240、および220)は、任意の形態の従来のまたは別の入出力バス、データ・バス、DMA、RAM、構成および命令バスの代わりに、コントローラ120、メモリ140、さまざまなマトリックス150、および計算ユニット200および計算要素250の間の選択可能または切り換え可能なデータ、入力、出力、制御、および構成経路を備える。第2の装置実施形態では、さまざまな相互接続ネットワークは、システムおよび装置実施形態の中のさまざまなレベルで、トークン・リングまたはアービタ、およびマルチプレクサなどの経路選択要素のさまざまな組み合わせを使用し、図12および13を参照しながら以下で説明するように実装される。
しかし、さまざまな相互接続ネットワーク(110、210、240、および220)のまたはその中の所定のレベルのスイッチングまたは選択オペレーションは、当業で知られているように実装できるが、経路選択要素および多重化要素の組み合わせ、システム内の異なるレベルでの異なる経路選択要素および多重化要素の使用、およびさまざまな相互接続ネットワーク(110、210、240、および220)の設計およびレイアウトは、以下で詳述するように、新規性がある。例えば、後述のさまざまなレベルのマトリックス150、計算ユニット200、および計算要素250に対応するさまざまなレベルの相互接続が提供される。マトリックス150レベルでは、従来技術のFPGA相互接続と比較すると、マトリックス相互接続ネットワーク110は、かなり制限されており、あまり「豊か」でなく、所定の領域における接続能力が小さいことで、キャパシタンスが下がり、動作速度が上がる。しかし、特定のマトリックス150または計算ユニット200内では、相互接続ネットワーク(210、220、および240)は、かなり高密度で、豊かであるため、狭いまたは密集した参照の局所性の範囲内でより大きな適応性と再構成能力を実現できる。
さまざまなマトリックスまたはノード150は、再構成可能で、異成分からなる、つまり、一般に望む構成に応じて、再構成可能マトリックス150Aは一般に再構成可能マトリックス150Bから150Nまでと異なる、再構成可能マトリックス150Bは一般に再構成可能マトリックス150Aおよび150Cから150Nまでと異なる、再構成可能マトリックス150Cは一般に再構成可能マトリックス150A、150B、および150Dから150Nまでと異なる、といった違いがある。さまざまな再構成マトリックス150は、それぞれ、一般に、異なるまたは多様な適応型計算ユニットと再構成可能計算ユニットの混合(200)を含み、次に、計算ユニット200は、一般に、さまざまな相互接続ネットワークを介して、多様な機能を実行するようにさまざまな方法により適応できる形で接続、構成、および再構成を行える、図3および4を参照して以下で詳しく説明する、固定されたアプリケーション固有の計算要素(250)の異なるまたは多様な混合を含む。さまざまなマトリックス150は、多様な内部構成および再構成に加えて、以下でも詳しく説明するように、マトリックス相互接続ネットワーク110を通じて、他のマトリックス150のそれぞれに関して、より高水準で接続、構成、および再構成することができる。
複数の異なる、洞察にみちた新規性のある概念がACE100アーキテクチャに組み込まれており、ACE100のリアルタイムの動作およびその内在する利点を説明する有用な基盤となる。
第1の新規性の概念は、アプリケーション固有の、専用の、または固定されたハードウェア・ユニット(計算要素250)の適応型の、再構成可能な利用の仕方、およびそれぞれ対応する乗算、複素乗算、および加算機能を最適な形で実行するように設計されている複数の乗算器、複素乗算器、および加算器などの、マトリックス150の計算ユニット200(図3)内のこれらのアプリケーション固有の、専用の、または固定されたハードウェア・ユニット(計算要素250)に入れる高速化するための特定の機能の選択に関する。ACE100が最適化されるとすると、第1の装置実施形態では、低消費電力に関して、高速化のための機能が消費電力に基づいて選択される。例えば、モバイル通信などの所定のアプリケーションの場合、対応するC(C#またはC++)または他のコードを消費電力に関して分析することができる。このような実証的分析により、例えば、そのようなコードの小さな部分、例えば10%の部分が、実際には実行時の動作電力の90%を消費していることがわかる。このような電力利用度に基づき、ある種の再構成可能マトリックス150内で高速化するためコードのこの小さな部分を選択し、例えば、残りのコードをコントローラ120として構成されているマトリックス150内で実行するように適応させる。高速化のため追加コードも選択し、ACE100による消費電力を、設計または運用上の複雑さから生じる潜在的トレードオフまで最適化することができる。さらに、図3に関して説明したように、制御コードなどの他の機能は、有限状態機械として構成されている場合にマトリックス150内で高速化できる。
次に、高速化のため選択されたアルゴリズムまたは他の機能を「データ・フロー・グラフ」(Data Flow Graph:DFG)と呼ばれる形式に変換する。本発明によるデータ・フロー・グラフの概略図を図2に示す。図2に示されているように、CDMA音声符号化(QCELP(Qualcomm Code Excited Linear Prediction))に使用されるアルゴリズムまたは機能は、4つの乗算器190の後に4つの加算器195を配置して実装される。さまざまなレベルの相互接続において、このデータ・フロー・グラフのアルゴリズムを、そのときどきに、固定された計算要素(250)の構成および再構成を通じて実装する、すなわち、効率を念頭において最適化され、構成されているハードウェア内に実装する、つまり特定のアルゴリズムを実行するように最適化されている「機械」をリアルタイムで構成する。引き続きDFGの例または図2において、4つの固定されたまたは専用の乗算器は計算要素250として、4つの固定されたまたは専用の加算器は、これもまた異なる計算要素250として、特定のDFGの機能またはアルゴリズムを実行するように相互接続を通じてリアルタイムで構成される。このデータ・フロー・モデルを使用すると、乗算器190などにより出力されたデータは、加算器195などによりたちまち消費される。
第3のおよびおそらくは最も重要な概念、および従来技術の概念および指針からの著しい逸脱は、上述のさまざまな選択されたアルゴリズムを実装するために使用される再構成可能な「異質性(heterogeneity)」の概念である。上述のように、従来技術の再構成可能性はもっぱら同質のFPGAに依存しており、その中の論理ゲートの同一のブロックは豊かなプログラム可能相互接続内にアレイとして繰り返し配置され、その相互接続は、不効率であっても、また多くの場合、経路選択および組み合わせに関する問題があるとしても、特定の機能を実装するために同一ゲート間を接続するようにその後構成される。著しく対照的であるが、計算ユニット200内では、異なる計算要素(250)は、専用乗算器、複素乗算器、アキュムレータ、算術論理演算ユニット(Arithmetric Logic Units:ALU)、レジスタ、および加算器など、それに対応して異なる固定された(または専用の)アプリケーション固有のハードウェアとして直接実装される。その後、相互接続(210および220)を使用し、それらのさまざまな異成分からなる計算要素(250)を、移動体通信でよく使用される離散コサイン変換の実行などの選択されたアルゴリズムを実行するように、リアルタイムで構成し適応させることができる。図2のデータ・フロー・グラフの例では、特定のアルゴリズムを実行するように、4つの乗算器および4つの加算器が構成される、つまり、リアルタイムで接続される。したがって、異なる(「異成分からなる」)計算要素(250)は、いつでも、与えられたアルゴリズムまたは他の機能を最適な形で実行するように構成され、再構成される。さらに、反復機能については、計算要素の指定されたインスタンス化または構成は時間が経過しても依然として有効である、つまり、そのような反復計算の全工程で変化しないことも考えられる。
ACE100アーキテクチャの時間的な性質も注意しなければならない。ある時点において、異なるレベルの相互接続(110、210、240、および220)を使用し、指定された機能を実行するか、または特定のアルゴリズムを実装するように最適化されている特定の構成がACE100内に存在しうる。別の時点で、構成が変更され、他の計算要素(250)を相互接続したり、または同じ計算要素250を異なる仕方で接続したりして、他の機能またはアルゴリズムを実行することができる。この時間的な再構成可能性から2つの重要な特徴が現れる。第1に、時間が経ちアルゴリズムが新しい技術標準の実装のため変更されるのに合わせて、ACE100も共進化し、再構成によりその新しいアルゴリズムを実装することができる。簡単な例として、第5の乗算器および第5の加算器を図2のDFGに組み込んで、対応する新しいアルゴリズムを実行するようにできるが、その際に、追加相互接続も、追加バス機能を実装するために使用することが可能である。第2に、計算要素はある時点に、指定されたアルゴリズムのインスタンス化として相互接続され、その後、別の時点に、他の異なるアルゴリズムを実行するように再構成されるため、ゲート(またはトランジスタ)の使用は最大になり、活動度に関して最も効率のよいASICと比べてかなり優れたパフォーマンスを示す。
さまざまな異なるアルゴリズムの実行に関する計算要素250のこのような時間的な再構成可能性は、一方の適応(構成および再構成)と他方のプログラミングまたは再プログラム可能性との本明細書で使用している概念上の区別を行うことを示している。通常のプログラム可能性では、既定のアルゴリズムを実装するために、さまざまな順序で時間が経つうちに呼び出される可能性のある、機能の既存のグループまたは集合を利用する。それとは対照的に、本明細書で使用しているような構成可能性および再構成可能性(または適応)は、利用できなくなってしまった、または存在していない新しい機能をさらに追加または作成できることを含む。
次に、ACE100は、さらに、1つの実際に連続する情報ストリームの中でデータおよび構成(またはその他の制御)情報を緊密に結合する(または相互デジタル化(interdigitation))ことも利用する。データと構成情報とのこのような結合または混合は、「silverware」モジュールと呼ばれ、別の関連特許出願の主題である。しかし、本発明の目的のためには、このようにデータと構成情報とを結合して1つの情報(またはビット)ストリームにして、ACE100をリアルタイムで再構成することができ、しかも従来技術のハードウェア相互接続の(多くの場合未使用の)複数のオーバーレイ・ネットワークを必要としないことに注意すれば十分である。例えば、類似のものとして、特定の第1の期間にその第1の期間の間またはその後に、対応するアルゴリズムを実行するハードウェアとしての計算要素の特定の第1の構成は、同じアルゴリズムを実行することができるソフトウェア内のサブルーチンを「呼び出す」ハードウェアによる類似物としてみなす、または概念化することができる。したがって、構成情報の指示に従い計算要素250の構成が行われた(つまり、適切な状態に置かれた)後、アルゴリズムで使用するデータは、silverwareモジュールの一部としてすぐに利用可能になる。その後、またすぐに利用可能なデータを使用して、第2の異なるアルゴリズムを実行するため、第2の構成情報の指示に従い、第2の期間に同じ計算要素を再構成することができる。構成された計算要素250でデータがすぐに使用できるため、メモリ・アドレスを決定し、アドレス指定されたレジスタから格納済みのデータをフェッチする複数の別々のソフトウェア工程に類似する、1または2クロック・サイクルのハードウェアが実現される。さらにその結果、効率が高まるが、構成された計算要素は、従来のマイクロプロセッサまたはDSPの中でサブルーチンとして呼ばれた場合に実行に数桁分多いクロック・サイクル数を必要とする可能性のあるアルゴリズムを、比較的少ないクロック数で、実行できるからである。
複数の異成分からなるおよび固定された計算要素250をリアルタイムで再構成できるという特徴と併せて、silverwareモジュールを、データと構成情報との混合として使用して適応型の異なる異成分からなる計算ユニット200およびマトリックス150を形成することにより、ACE100アーキテクチャは複数の異なる動作モードを備えることができる。例えば、携帯型デバイスに組み込む場合、対応するsilverwareモジュールを指定すると、ACE100は携帯電話またはその他の移動式電話、音楽プレーヤ、ポケベル、パーソナル・デジタル・アシスタント、およびその他の新しいまたは既存の機能としてさまざまな異なる動作モードを備えることができる。さらに、これらの動作モードは、デバイスの物理的な場所に基づいて変化することができ、例えば、米国内で使用するCDMA携帯電話として構成されているACE100は、ヨーロッパで使用する場合にはGSM携帯電話として再構成することができる。
図1を再び参照すると、コントローラ120(有限状態機械として構成されているマトリックス(KARC)150Aおよびマトリックス(MARC)150Bであるのが好ましい)の機能については、(1)silverwareモジュール、つまり、単一情報ストリーム内のデータおよび構成情報の緊密な結合を参照して、(2)複数の潜在的動作モードを参照して、(3)再構成可能なマトリックス150を参照して、および(4)再構成可能な計算ユニット200および図3に示されている計算要素150を参照して、説明することができる。上記のように、ACE100は、silverwareモジュールを通じて、新しい技術標準へのアップグレードなどの新しいまたは追加機能、または移動体通信デバイスへの音楽機能の追加などの全く新しい機能の追加を実行するように構成または再構成することができる。このようなsilverwareモジュールは、メモリ140のマトリックス150に格納するか、または例えば、マトリックス相互接続ネットワーク110を通じて外部(有線または無線)送信元から入力することができる。第1の装置実施形態では、複数のマトリックス150のうちの1つは、セキュリティを目的としてそのようなモジュールの暗号解読を行い、その有効性を検証するように構成されている。次に、既存のACE100の資源の構成または再構成の前に、コントロール120は、マトリックス(KARC)150Aを通じて、音楽機能を追加すると既存の移動体通信機能に悪影響を及ぼさないかなど、既存の機能に悪影響を及ぼすことなく構成または再構成を実行できるかチェックし、確認することができる。第1の装置実施形態では、このような構成または再構成に対するシステム要件は、silverwareモジュールに含まれ、このような評価機能の実行の際にマトリックス(KARC)150Aにより使用される。そのような悪影響を生じることなく構成または再構成が実行できる場合、silverwareモジュールをメモリ140のマトリックス150にロードし、マトリックス(KARC)150Aによりメモリ140のマトリックス150Cおよび150D内のDMAエンジン(または従来のメモリの他のスタンドアロンのDMAエンジン)を設定することができる。構成または再構成がそのような悪影響を及ぼす、または及ぼすおそれがある場合、マトリックス(KARC)150Aでは、新しいモジュールをACE100内に組み込むことを許可しない。Kノードとしてのカーネル・コントローラの追加機能については、以下で詳述する。
引き続き図1を参照すると、マトリックス(MARC)150Bは、マトリックス150の資源のスケジューリングおよび対応するデータのタイミングを管理することで、さまざまな計算要素250および計算ユニット200の構成または再構成を対応する入力データおよび出力データに同期させる。第1の装置実施形態では、タイミング情報は、さらに、silverwareモジュールにも含まれており、このため、マトリックス(MARC)150Bは、さまざまな相互接続ネットワークを通じて、さまざまなマトリックス150の再構成を時を違えずに、また好ましくはちょうどの時間で指令し、対応するデータがさまざまな再構成された計算ユニット200の入力に現れる前に再構成が実行されるようにできる。さらに、マトリックス(MARC)150Bは、さまざまなマトリックス150の中で高速化されていない残りの処理を実行することもできる。したがって、マトリックス(MARC)150Bは、それらのさまざまな再構成可能なハードウェア・ユニットにより使用される対応するデータと同期して、リアルタイムで、マトリックス150の構成および再構成、計算ユニット200、および計算要素250を「呼び出し」、残りの、または他の制御処理を実行する、制御ユニットとしてみなすことができる。他のマトリックス150は、さらに、他のマトリックス150の構成および再構成を呼び出し、制御することができる所定のマトリックス150とともに、この制御機能を備えることもできる。このマトリックス制御機能は、さらに、後述のKノードなど、カーネル制御と組み合わせることもできる。
図3は、複数の計算ユニット200(計算ユニット200Aから200Nとして例示されている)および複数の計算要素250(計算要素250Aから250Zとして例示されている)を含む再構成可能マトリックス(またはノード)150を詳細に例示しているブロック図であり、計算要素250の例と有用な要約がさらに示されている。図3に例示されているように、マトリックス150は一般に、マトリックス・コントローラ230、複数の計算ユニット200、およびマトリックス相互接続ネットワーク110の論理的または概念的なサブセットまたは部分として、データ相互接続ネットワーク240およびブール相互接続ネットワーク210を含む。マトリックス・コントローラ230は、さらに、図10を参照して以下で説明しているハードウェア・タスク・マネージャとして実装することもできる。上述のように、第1の装置実施形態では、ACE100アーキテクチャ内の「深さ」がますます深くなると、相互接続ネットワークは、適応性および再構成のレベルが高くなり、次第に豊かになってくる。上でも説明したように、ブール相互接続ネットワーク210は、さまざまな計算ユニット200間の再構成およびデータ相互接続機能を実現し、小さいのが好ましいが(つまり、数ビット程度の幅)、データ相互接続ネットワーク240は、さまざまな計算ユニット200の間のデータ入力および出力に対する再構成およびデータ相互接続能を備え、比較的大きい(すなわちビットが大きい)ことが好ましい。しかし、概念上再構成およびデータ機能に分割されているが、ある時点でのマトリックス相互接続ネットワーク110の与えられた物理的部分は、ブール相互接続ネットワーク210、データ相互接続ネットワーク240、最下位レベル相互接続220(さまざまな計算要素250間の)、またはその他の入力、出力、または接続機能のいずれかとして動作することが可能であることに留意されたい。相互接続の他の形態例について図11乃至13で後述することにも留意されたい。
引き続き図3を参照すると、計算ユニット200には、計算要素250Aから250Z(計算要素250と個々に呼び、また総称する)、および追加相互接続220として例示されている、複数の計算要素250が含まれる。相互接続220は、再構成可能な相互接続機能およびさまざまな計算要素250間の入出力経路を備える。上述のように、さまざまな計算要素250はそれぞれ、指定されたタスクまたはある範囲のタスクを実行するように設計されている専用の、アプリケーション固有のハードウェアからなり、したがって複数の異なる固定された計算要素250がある。相互接続220を使用すると、固定された計算要素250は、再構成可能な形で接続し適応型および可変計算ユニット200にまとめることができ、これらはさらに、相互接続220、ブール・ネットワーク210、およびマトリックス相互接続ネットワーク110を使用して、図2のDFGの四重の乗算および加算などのアルゴリズムまたは他の機能をいつでも実行できるように再構成し、相互接続することもできる。例えば、後述の多重化または経路選択機能を使用することで、計算要素250の入出力は、第1の機能またはアルゴリズムを実行するように(他の)計算要素の第1の集合の入出力に結合され、その後、これらの入出力が(他の)計算要素250の第2の集合の入出力に結合され第2の機能またはアルゴリズムを実行するように適応または再構成することができる。
第1の装置実施形態では、さまざまな計算要素250は、設計で、さまざまな適応型および再構成可能計算ユニット200にまとめられる(例えば、図5Aから9に例示されている)。乗算または加算などの特定のアルゴリズムまたは機能を実行するように設計されている計算要素250のほかに、他の種類の計算要素250も、第1の装置実施形態では使用される。図3に例示されているように、計算要素250Aおよび250Bはメモリを実装し、所定の計算または処理機能に対し(より「リモートの」メモリ140と比べて)ローカルのメモリ要素を実現する。さらに、計算要素250I、250J、250K、および250Lは、有限状態機械を実装する(例えば、図7、8、および9に例示されている計算要素を使用して)ように構成されており、ローカルの処理機能(より「リモートの」マトリックス(MARC)150Bと比べて)を備え、複雑な制御処理に特に適し、後述のハードウェア・タスク・マネージャ内で使用できる。
ACE100の望む機能に応じて、利用可能な場合があるさまざまな種類の異なる計算要素250を使用し、計算ユニット200を大まかに分類することができる。第1のカテゴリの計算ユニット200は、乗算、加算、有限インパルス応答フィルタ処理などの線形オペレーションを実行する計算要素250を含む(例えば、以下で、図5Aから5Eおよび図6を参照して例示されているように)。第2のカテゴリの計算ユニット200は、離散コサイン変換、三角法計算、および複素乗算などの非線形オペレーションを実行する計算要素250を含む。第3の種類の計算ユニット200は、図3に示されているような、また図7から9に関して後で詳しく説明するような計算ユニット200Cなどの有限状態機械を実装し、特にこれは、複雑な制御シーケンス、動的スケジューリング、および入出力管理に使用されるが、第4の種類は図3に示されているような計算ユニット200Aなどのメモリおよびメモリ管理を実装することができる。最後に、第5の種類の計算ユニット200は、暗号化、暗号解読、チャネル符号化、Viterbi符号化、およびパケットおよびプロトコル処理(インターネット・プロトコル処理など)などのビット・レベルの操作を実行するため含めることができる。
第1の装置実施形態では、他のマトリックスまたはノード150からの制御に加えて、マトリックス・コントローラ230を所定のマトリックス150の中に含めることもでき、そうすることで、参照の局所性および再構成プロセスおよび対応するデータ操作の制御を高めることもできる。例えば、計算要素250の再構成が所定の計算ユニット200内で実行された後、マトリックス・コントローラ230は、例えば、指定されたアプリケーションに対して反復データ処理を続けさせるため、一定期間、特定のインスタンス化(または構成)が変化しないように指示することができる。
上記のように、相互接続ネットワークのレベル(110、210、220、240)により、線形オペレーション、非線形オペレーション、有限状態機械オペレーション、メモリおよびメモリ管理、およびビット・レベル操作などの複数の機能または動作モードを実行するように複数の異成分からなる計算要素250を構成および再構成することができる。しかし、相互接続ネットワーク(110、210、220、240)のレベルによる複数の異成分からなる計算要素250のこのような構成および再構成は、他のより高いまたはより抽象的なレベル、つまり、複数のアルゴリズム要素の実行に対する構成および再構成に基づいて概念化することができる。
アルゴリズム要素のこのようなより抽象的なレベルでは、複数のアルゴリズム要素のうちのいずれか1つを実行するために、メモリ、加算、乗算、複素乗算、減算、同期化、キュー操作、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの複数の固定されたアーキテクチャを備える計算要素の構成(および再構成)を使用して、移動、入力、出力、加算、減算、乗算、複素乗算、除算、シフト、積和などの複数の低レベルの機能またはオペレーションを同時に実行する必要があると考えられる。
このような複数の固定されたアーキテクチャが、アルゴリズム要素全体を実行するように構成および再構成された場合、比較的少ないクロック・サイクルで実行でき、通常であれば数桁分多いクロック・サイクルを必要とするところである。アルゴリズム要素は、例えば、基数2の高速フーリエ変換(Fast Fourier Transformation:FFT)、基数4の高速フーリエ変換(FFT)、基数2の逆高速フーリエ変換(Inverse-FFT:IFFT)、基数4のIFFT、1次元離散コサイン変換(Discrete Cosine Transformation:DCT)、多次元離散コサイン変換(DCT)、有限インパルス応答(Finite Impulse Response:FIR)フィルタ処理、畳み込み符号化、スクランブリング、パンクチャリング、インターリービング、変調マッピング、Golay相関、OVSF符号生成、アダマール変換、ターボ復号化、ビット訂正、Griffiths LMSアルゴリズム、可変長符号化、アップリンク・スクランブリング符号生成、ダウンリンク・スクランブリング符号生成、ダウンリンク逆拡散、アップリンク拡散、アップリンク連結(uplink concatenation)、Viterbi符号化、Viterbi復号化、巡回冗長符号化(CRC)、複素乗算、データ圧縮、動き補償、チャネル探索、チャネル収集、およびマルチパス補正などの複数のアルゴリズム要素から選択できる。多数の他のアルゴリズム要素例について、図10を参照しながら以下で詳しく説明する。
ACE100の他の実施形態では、マトリックス(またはノード)150の1つまたは複数は、アプリケーション固有のものとして設計することができ、複数のオペレーション、機能、またはアルゴリズム要素を実行するように構成および再構成することができる複数の異成分からなる計算要素で構成されるのではなく、対応する固定された機能(または所定のアプリケーション)を含む固定されたアーキテクチャを備える。例えば、アナログ−デジタル(A/D)またはデジタル−アナログ(D/A)コンバータは、適応型機能がなくても実装することができる。以下で詳述するように、共通ノード(マトリックス)機能も、後述のノード・ラッパ機能などの適応型機能なしで実装することができる。しかし、さまざまな状況において、固定された機能ノードは、所定のアプリケーションを実行するためパラメータ調整を行える。例えば、パラメータ調整では、多数のフィルタ係数、多数の並列入力ビット、多数の並列出力ビット、高速フーリエ変換の多数の選択された点、多数の精度ビット、符号レート、三角関数の多数の補間ビット、実数または複素数の評価のうち1つまたは複数のパラメータを変更することができる。この固定された機能ノード(またはマトリックス)150は、パラメータ化可能であり、通常は、ある種の通信またはコンピューティング・アプリケーションなどで、アルゴリズム要素が事実上連続的に使用される状況で使用される。
例えば、固定された機能ノード150としては、マイクロプロセッサ(RISCプロセッサなど)、デジタル・シグナル・プロセッサ(Digital Service Processor:DSP)、またはコ・プロセッサがあり、また組み込みオペレーティング・システムを搭載する場合もしない場合もある。このようなコントローラまたはプロセッサの固定された機能ノード150は、構成情報を相互接続ネットワークに供給する、さまざまな機能モードまたはアルゴリズム要素を実行するため他のノード150の複数の異成分からなる計算要素250の構成を指令しスケジュールする、または対応するデータとともに複数の異成分からなる計算要素の構成および再構成のタイミングを設定しスケジュールするなど、上述のさまざまなKARC150AまたはMARC150Bアプリケーションに使用することができる。他のアプリケーションでは、例えば、固定された機能ノードは、並列カスケード積分くし形(Cascaded Integrated Comb:CIC)フィルタまたはパラメータ化された並列カスケード積分くし形(CIC)フィルタ、有限インパルス応答(FIR)フィルタまたは可変フィルタ長用にパラメータ化された有限インパルス応答(FIR)フィルタ、またはA/DまたはD/Aコンバータとすることができる。
図4は、再構成可能なマトリックス150の計算ユニット200の例または代表的な計算ユニットを詳しく示すブロック図である。図4に例示されているように、計算ユニット200は、通常、複数メモリ計算要素250Aおよび250Bなどの複数の多様な、異成分からなる、固定された計算要素250を含み、計算ユニット(Computational Unit:CU)コア260、複数のアルゴリズムまたは有限状態機械計算要素250Cから250Kを形成する。上述のように、複数の多様な計算要素250のそれぞれの計算要素250は固定されたまたは専用の特定用途向け回路であり、加算または乗算などの特定の機能またはアルゴリズムを実行するように設計され、そのような対応する論理ゲート・レイアウトを備える。さらに、さまざまなメモリ計算要素250Aおよび250Bは、RAM(著しい深さを持つ)などさまざまなビット深さで、または深さが1または2ビットのレジスタとして実装することができる。
概念的なデータおよびブール相互接続ネットワーク240および210を形成する計算ユニット200の例はさらに、複数の入力マルチプレクサ280、複数の入力線(またはワイヤ)281、およびCUコア260(線またはワイヤ270として示されている)、複数の出力デマルチプレクサ285および295、および複数の出力線(またはワイヤ291)を備える。入力マルチプレクサ280を通じて、データ変換と構成および相互接続プロセスで入力に使用するのに適した入力線281を選択することができ、出力デマルチプレクサ285および290を通じて、1つまたは複数の出力を選択された出力線291に出すことができ、これはさらに、追加データ変換と構成および相互接続プロセスでも使用される。
第1の装置実施形態では、さまざまな入力および出力線281および291の選択、および相互接続(210、220、および240)によるさまざまな接続の確立は、後述のように、計算ユニット・コントローラ255からの制御ビット265によって制御される。これらの制御ビット265に基づき、入力イネーブル251、入力選択252、出力選択253、MUX選択254、DEMUXイネーブル256、DEMUX選択257、およびDEMUX出力選択258の有効または無効を設定できる。
計算ユニット200の例は、制御ビット265を通じて、各計算要素250、相互接続(210、220、および240)、およびその他の要素(上記)がクロック・サイクル毎に何を行うかを制御する計算ユニット・コントローラ255を含む。別々には示されていないが、相互接続(210、220、および240)を通じて、さまざまな制御ビット265が、必要に応じて、さまざまな入力イネーブル251、入力選択252、出力選択253、MUX選択254、DEMUXイネーブル256、DEMUX選択257、およびDEMUX出力選択258など、計算ユニット200のさまざまな部分に分配される。CUコントローラ255は、さらに、制御(または構成)情報を受信し、ステータス情報を送信するための1つまたは複数の信号線295を含む。
上述のように、相互接続は、上述のようなさまざまなビット幅のデータ相互接続ネットワーク240およびブール相互接続ネットワーク210への概念的分割を含むことができる。一般に、(より幅の広い)データ相互接続ネットワーク240は、構成可能および再構成可能な接続を確立するために使用され、データおよび構成情報の対応する経路選択が行われる。(より幅の狭い)ブール相互接続ネットワーク210は、構成可能および再構成可能接続の確立にも使用されるが、DFGの決定ノードを生成する、さまざまなデータ・フロー・グラフの論理(またはブール)決定の制御に使用され、またそのようなDFG内のデータ経路選択にも使用することができる。
図5A乃至5Eは、計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。これらの図を検討するとよくわかるように、同じ固定された計算要素の多くは、さまざまな構成とともに、異なるアルゴリズムの実行に使用される。
図5Aは、4点非対称有限インパルス応答(FIR)フィルタ計算ユニット300を例示するブロック図である。例示されているように、この計算ユニット300の例は、係数メモリ305、データ・メモリ310、レジスタ315、320、および325、乗算器330、加算器335、およびアキュムレータ・レジスタ340、345、350、および355をはじめとする、複数の固定された計算要素の特定の第1の構成を、相互接続ネットワーク(210、220、および240)の一部を形成するマルチプレクサ(MUX)360および365とともに、含む。
図5Bは、2点対称有限インパルス応答(FIR)フィルタ計算ユニット370を例示するブロック図である。例示されているように、この計算ユニット370の例は、係数メモリ305、データ・メモリ310、レジスタ315、320、および325、乗算器330、加算器335、第2の加算器375、およびアキュムレータ・レジスタ340および345をはじめとする、複数の固定された計算要素の第2の構成を、さらに相互接続ネットワーク(210、220、および240)の一部を形成するマルチプレクサ(MUltipleXer:MUX)360および365とともに、含む。
図5Cは、高速フーリエ変換(FFT)計算ユニット400のサブユニットを例示するブロック図である。例示されているように、この計算ユニット400の例は、係数メモリ305、データ・メモリ310、レジスタ315、320、325、および385、乗算器330、加算器335、および加算器/減算器380をはじめとする、複数の固定された計算要素の第3の構成を、相互接続ネットワーク(210、220、および240)の一部を形成するマルチプレクサ(MUX)360、365、390、395、および405とともに、含む。
図5Dは、複素有限インパルス応答(FIR)フィルタ計算ユニット440を例示するブロック図である。例示されているように、この計算ユニット440の例は、メモリ410、レジスタ315および320、乗算器330、加算器/減算器380、および実数アキュムレータ・レジスタ415、および虚数アキュムレータ・レジスタ420をはじめとする、複数の固定された計算要素の第4の構成を、さらに相互接続ネットワーク(210、220、および240)の一部を形成するマルチプレクサ(MUX)360および365とともに、含む。
図5Eは、対応するデータ・フロー・グラフ460を使用する、バイクアッド無限インパルス応答(biquad Infinite Impulse Response:biquad IIR)フィルタ計算ユニット450を例示するブロック図である。例示されているように、この計算ユニット450の例は、係数メモリ305、入力メモリ490、レジスタ470、475、480、および485、乗算器330、および加算器335をはじめとする、複数の固定された計算要素の第5の構成を、相互接続ネットワーク(210、220、および240)の一部を形成するマルチプレクサ(MUX)360、365、390、および395とともに、含む。
図6A乃至図6Dは、複数の異なる固定された計算要素を備える多機能適応型計算ユニット500の例を詳しく示すブロック図である。しかるべく構成された適応型計算ユニット500は、図5Aから5Eを参照してすでに例示されているさまざまな各機能に加えて、離散コサイン変換などの他の機能を実行する。例示されているように、この多機能適応型計算ユニット500は、入力メモリ520、データ・メモリ525、レジスタ530(レジスタ530Aから530Qとして例示されている)、乗算器540(乗算器540Aから540Dとして例示されている)、加算器545、第1の算術演算論理ユニット(Arithmetric Logic Unit:ALU)550(ALU_1s 550Aから550Dとして例示されている)、第2の算術演算論理ユニット(ALU)555(ALU_2s 555Aから555Dとして例示されている)、およびパイプライン(長さ1)レジスタ560をはじめとする、複数の固定された計算要素の複数の構成に対する機能を、相互接続ネットワーク(210、220、および240)を形成する入力505、線515、出力570、およびマルチプレクサ(MUXまたはMX)510(MUXおよびMX510Aから510KKとして例示されている)とともに、含む。例えば、加算と減算の並列オペレーションに2つの異なるALU550および555を使用するのが好ましく、特に離散コサイン変換の基数2のオペレーションに使用する。
図7は、複数の固定された計算要素を備える適応型論理プロセッサ(Adaptive Logic Processor:ALP)計算ユニット600の例を詳しく示すブロック図である。ALP600は適応性が高く、入出力構成、有限状態機械実装、一般的なフィールド・プログラマビリティ、およびビット操作に使用するのが好ましい。ALP600の固定された計算要素は、図9に別々に例示されているように、複数の適応型コア・セル(Core Cell:CC)610(図8)のそれぞれの一部(650)である。相互接続ネットワーク(210、220、および240)は、複数の垂直方向入力(Vertical Input:VI)615、垂直方向リピータ(Vertical Repeater:VR)620、垂直方向出力(Vertical Output:VO)625、水平方向リピータ(Horizontal Repeater:HR)630、水平方向ターミネータ(Horizontal Terminator:HT)635、および水平方向コントローラ(Horizontal Controller:HC)640のさまざまな組み合わせおよび順列置換から形成される。
図8は、固定された計算要素650を備える適応型論理プロセッサ計算ユニット600のコア・セル610の例を詳しく示すブロック図である。固定された計算要素は、3入力−2出力機能発生器550で、図9には別々に例示されている。好ましいコア・セル610は、制御論理回路655、制御入力665、制御出力670(出力相互接続を実現する)、出力675、および入力(相互接続マルチプレクサを備える)660(入力相互接続を実現する)も含む。
図9は、適応型論理プロセッサ計算ユニット600のコア・セル610の固定された計算要素650の例を詳しく示すブロック図である。固定された計算要素650は、複数の排他NOR(XNOR)ゲート680、NORゲート685、NANDゲート690、および排他OR(XOR)ゲート695の固定されたレイアウトからなり、3本の入力720と2本の出力710を備える。構成および相互接続は、MUX705および相互接続入力730を介して行われる。
図10は、第2の装置実施形態を含むプロトタイプであるノードまたはマトリックス800を例示するブロック図である。ノード800は、マトリックス相互接続ネットワーク110を通じてACE100内の他のノード150に接続される。プロトタイプであるノード800は、固定された(かつ再構成不可能な)「ノード・ラッパ」、適応型(再構成可能)実行ユニット840、およびメモリ845(可変でもよい)を含む。この固定された再構成不可能な「ノード・ラッパ」は、入力パイプライン・レジスタ815、データ復号器および分配器820、ハードウェア・タスク・マネージャ810、アドレス・レジスタ825(任意選択)、DMAエンジン830(任意選択)、データ集積器および選択器850、および出力パイプライン・レジスタ855を含む。ノード・ラッパを含むこれらのコンポーネントは、一般的に、ACE100のすべてのノードに共通であり、固定されたアーキテクチャで構成される(つまり、アプリケーション固有のまたは再構成不可能なアーキテクチャ)。したがって、ノードまたはマトリックス800は、固定された再構成不可能なノード・ラッパ・コンポーネント、メモリ、および適応型実行ユニット840の再構成可能コンポーネント(固定された計算要素および相互接続ネットワークで構成される)を一意に混合したものである。
さまざまなノード800は、一般に、1つまたは複数の特定のアプリケーションまたはアルゴリズムに合わせて修正された独特のサイズ変更可能な適応型実行ユニット840、および適応型実行ユニット840の要件に応じてさまざまなサイズで実装されるメモリ845を備える。与えられたノード800に対する適応型実行ユニット840は、一般に、他のノード800の適応型実行ユニット840とは異なる。各適応型実行ユニット840は、構成情報に応じて再構成可能であり、複数の計算要素250で構成される複数の計算ユニット200および対応する相互接続ネットワーク210、220、および240で構成される。実施例で使用される特定の適応型実行ユニット840、およびノード800およびノード・ラッパのオペレーションについて、以下で詳述する。
図11は、第1のシステム実施形態900を例示するブロック図である。第1のシステム900は、それよりも大きなシステムまたはホスト環境、例えばコンピュータまたは通信デバイスなどの一部として含まれる。図11は、大域的資源に接続能力がある(または他の何らかの手段により見つけられる)そのようなシステム100の「ルート」レベルを例示している。このルート・レベルで、第1のシステム900は、1つまたは複数の適応型コア950、外部(IC外付けまたはチップ外付け)メモリ905(SDRAMなど)、ホスト(システム)入力および出力接続、およびネットワーク(MIN110)入力および出力接続(追加適応型コア950の)を含む。各適応型コア950は、(オンICまたはオン・チップ)メモリ920、「Kノード」925、およびノード象限(node quadrant)930と呼ばれるノードの1つまたは複数の集合(150、800)を含む。Kノード925(カーネル・コントローラ150Aのような)は、適応型コア950用のオペレーティング・システムを備える。一般に、それぞれのノード象限930は、拡大可能な4倍(×4)フラクタル状配置からなる。このルート・レベルでは、これら(7つの)例示されている要素のそれぞれが、他のすべて(6つ)の要素との完全な接続性を持つ。したがって、ルート・レベル要素の出力は、他のすべてのルート・レベルの入力に供給され(そして、駆動することができ)、各ルート・レベルの入力は、他のすべてのルート・レベル要素の出力とともに供給される。別に例示されてはいないが、第1のシステム900のこのルート・レベルでは、MIN110は、ラウンド・ロビン、トークン・リング、クロス・ポイント・スイッチ、または他のアービタ要素などの経路選択(またはスイッチング)要素(935)を備えるネットワーク、およびリアルタイムのデータ転送(または伝送)を行うための(データ・ネットワーク240などの)ネットワーク(または経路)を含む。
図12は、経路選択要素935を含むノード象限930の例を示すブロック図である。ルート・レベルから、ノード象限930はツリー・トポロジを持ち、16個のノード(150または800)からなり、4つのノードはすべて、経路選択(またはスイッチング)要素935を持つノード「クワッド」940として接続されている。経路選択要素は、ラウンド・ロビン、トークン・リング、クロス・ポイント・スイッチ、(4路)スイッチング、(1/4、1/3、または1/2)アービトレーションまたは他のアービタまたはアービトレーション要素などを使用する、または許容可能な制御のオーバーヘッドの程度によっては、マルチプレクサおよびデマルチプレクサなどの他の経路選択またはスイッチング要素を使用するなど、さまざまな手段により実装することができる。この4倍フラクタル・アーキテクチャは、論理的な制限を受けることなく、経路選択機能、スケーラビリティ、および拡張に対応することができる。ノード象限930は、例示されているように、ルート・レベルにおいて第1のシステム900内で結合されている。この4倍フラクタル・アーキテクチャはさらに、重要で完全な接続性を備え、ノード間の最悪の場合の距離は、「k」ホップ(またはノード数)(線形距離ではなく)のlogであり、例えば、完全なクロスバー・スイッチまたはバスのオーバーヘッドおよびキャパシタンスを回避できる。
ノード象限930およびノード・クワッド940の構造は、スケーラビリティ、反復構造、および拡張に関してフラクタル自己類似性を示す。ノード象限930およびノード・クワッド940構造はさらに、複数の異成分からなる再構成可能なノード800の異質性、複数の異成分からなる計算ユニット200の異質性、および複数の異成分からなる計算要素250の異質性に関してもフラクタル自己類似性を示す。異質性の増大に関して、適応型計算集積回路900は、複数の異成分からなる再構成可能なマトリックスの第1のレベルから複数の異成分からなる計算ユニットの第2のレベルへ、さらに複数の異成分からなる計算要素の第3のレベルへの異質性の増大を示す。複数の相互接続レベルはさらに、複数の相互接続レベルのそれぞれの相互接続レベルに関してフラクタル自己類似性を示す。マトリックス150レベルから計算ユニット200レベルへ、さらに計算要素250レベルへACE100内の深さが増すと、相互接続ネットワークは次第に豊かになり、提供する帯域幅が増大し、またそれに対応して増大する再構成可能性のレベルに対する接続の数が増える、または接続性が高まる。したがって、マトリックス・レベル相互接続ネットワーク、計算ユニット・レベル相互接続ネットワーク、および計算要素レベル相互接続ネットワークも、フラクタル状配置をなす。
図11および12を参照すると、以下で詳述するように、システム実施形態900では、後述のデータ・パケット(またはデータ構造)を使用して、ストリーミング・データおよび構成情報の転送にポイントツーポイント・サービスを利用する。この通信にパケット交換プロトコルを使用するが、実施例では、データ・バッファリングの必要をなくすためパケット長を(長さ51ビットの)単一ワードに制限している。データ・パケット内の経路選択情報を利用して、特定の適応型コア950を選択し、その後、選択された適応型コア950のルート・レベルを選択し(または選択せず)、さらに選択された適応型コア950の特定のノード(110または800)を選択する。この選択経路は、図11および12の例示されている接続に従って視覚化することができる。特定のノードから出るデータ・パケットの経路選択は、これもまた同様に実行することができるが、後述のように、ノード800またはクワッド940内で交換またはアービトレーションを行うなどにより、より直接的に実行することもできる。
図13は、ノード800およびノード・クワッド940を出入りするネットワーク相互接続の例を示すブロック図である。図13を参照すると、経路選択要素935を介したMIN100とノードとの接続は、共通入力945(クワッド940内の4つのノード800すべてに供給される)と、特定のクワッド940内の他の(3つの)「ピア」ノードからの入力を含む。例えば、ピア・ノード1、2、および3からの出力は、ノード0への入力に使用されるという具合である。このレベルで、経路選択要素935は、例えば、ラウンド・ロビン、トークン・リング、アービタ、クロス・ポイント・スイッチ、または他の4路スイッチング要素として実装することができる。経路選択要素935からの出力は、対応するノード800のマルチプレクサ955(または他のスイッチング要素)に、対応するノード800からのフィードバック入力960および(データ・ネットワーク240からの)リアルタイム・データの入力とともに供給される(リアルタイム・データをノード800に入力するための高速トラックを実現する)。マルチプレクサ955(または他のスイッチング要素)は、3つの入力のうち1つを選択する(スイッチングまたはアービトレーション)、つまり、選択されたピアまたは共通入力945からの入力を選択するか、またはフィードバックと同じノードから入力を選択するか、またはリアルタイム・データの入力を選択し、マルチプレクサ955の出力を、対応するノード800に(ノードのパイプライン・レジスタ815を介して)入力されたネットワーク(MIN110)として供給する。
ノード800の出力は、ノード800内のデータ集積器および選択器(「DAS」)850に供給され、これにより、ノード自体(同じノード・フィードバック)、またはネットワーク(MIN110)(他のノードまたは他のシステム要素への経路選択のため)、またはデータ・ネットワーク240(リアルタイム・データ出力のため)への出力情報の経路選択が決定される。MIN110への経路選択のため出力情報が選択されると、DAS850からの出力は対応する出力経路選択要素935に送られ、そこで、出力情報の経路はクワッド940内のピア・ノードへの経路、または共通出力965を通して特定のクワッド940から外へ向かう経路選択(他のノード・クワッド940への経路選択、ノード象限930への経路選択、または適応型コア950への経路選択など)のため他の後続の経路選択要素935への経路に設定される。
図14は、データ構造の実施例を示すブロック図である。システム実施形態900では、データ・パケット(データ構造例としての)970を使用して、ポイントツーポイント・データおよび構成情報の転送を利用しており、本明細書ですでに説明しているように、「silverware」の形態例としてみなすことができる。データ・パケット970の例では、1パケット当たり51ビットを使用し、経路選択フィールド(971)に8ビット、セキュリティ・フィールド(972)に1ビット、サービス・コード・フィールド(973)に4ビット、補助フィールド(974)に6ビット、データ(データ・ペイロードまたはデータ・フィールドとして)(975)に32ビット(1ワード長)を確保する。上記のように、経路選択フィールド971は、さらに、適応型コア選択(976)、ルート選択(977)、およびノード選択(978)用のフィールドに分割できる。この選択された51ビットの実施形態では、最大4つまでの適応型コアを選択することができ、適応型コア1つにつき最大32ノードとすることができる。パケットの経路選択が行われるときに、経路選択プロセスでの使用と同時にパケットから経路選択ビットを剥ぎ取ることができる。サービス・コード・フィールド973では、ポイントツーポイント・プロセス間通信、データ・フロー制御の肯定応答、「peeks」および「pokes」(Kノードによるメモリ845への読み書きを意味する用語として作り出された)、DMA操作(メモリ移動用)、およびメモリ845への読み書きのためのランダム・アドレス指定などの指定を行う。補助(AUXiliary:AUX)フィールド974は、後述のように、適応型実行ユニット840上で実行される最大32個までのタスクに対し最大32本までのストリームをサポートし、構成情報ペイロードと考えられる。そこで、1ワード長(32ビット)データ・ペイロードがデータ・フィールド975で与えられる。データ構造970の例(データ・パケットとして)は、上述のように、データおよび構成/制御情報の相互デジタル化を例示している。
図10を参照し、上述の第1のシステム900の構造およびデータ構造をふまえ、第2の装置実施形態のノード800のアーキテクチャについて詳述できる。入力パイプライン・レジスタ815を使用して、ネットワーク相互接続110からデータおよび構成情報を受信する。入力パイプライン・レジスタ815ではデータのストールを許さないのが好ましい。より具体的には、本発明のデータ・フロー・モデリングによれば、入力パイプライン・レジスタ815は、クロック期間毎に相互接続ネットワーク110から新規データを受け入れる必要があり、したがって、データは生成されるとともに消費されなければならない。このため、ノード800内の入力パイプライン・レジスタ815と他の資源の間の争奪問題はその入力パイプライン・レジスタ815に有利な形で解決されなければならないという要件が課される、つまり、入力パイプライン・レジスタ内の入力データはさまざまな経路選択(またはスイッチング)要素935、マルチプレクサ955、または使用可能なその他のスイッチングまたはアービトレーション要素で実装される選択プロセスにおいて優先する。
データ復号器および分配器820は、51ビット・データ構造のサービスおよび補助フィールド内の値に基づき、入力パイプライン・レジスタ815とノード800内の各種メモリ(例えば、845)およびレジスタ(例えば、825)、ハードウェア・タスク・マネージャ810、およびDMAエンジン830とのインターフェースとなる。データ復号器820は、さらに、(構成情報またはオペランド・データの)51ビット・ネットワーク・データ構造のセキュリティ、サービス、および補助フィールドを復号化し、受け取ったワードをノード800内の目的の宛先に送る。
逆に、ノード800からネットワーク(MIN110または他のノード)へのデータ転送には、ノード800の各種メモリ(845)またはレジスタ(例えば、825または適応型実行ユニット840内のレジスタ)の1つからのデータを保持する出力パイプライン・レジスタ855、適応型実行ユニット840、DMAエンジン830、および/またはハードウェア・タスク・マネージャ810が使用される。出力パイプライン・レジスタ855にデータをロードする許可は、ノード800の各種(4つの)コンポーネントの競合する需要(つまり、ハードウェア・タスク・マネージャ810、適応型実行ユニット840、メモリ845、およびDMAエンジン830からの要求)を調停または選択するデータ集積器および選択器(DAS)850により与えられる。データ集積器および選択器850は、1つまたは複数の要求があり、出力パイプライン・レジスタ855が使用可能な場合に限りただ1つの許可を発行する。選択された実施形態では、このような許可の発行に対する優先度は、1番目に、Kノードのpeek(読み込み)データ、2番目に、適応型実行ユニット840の出力データ、3番目に送信元DMAデータ、4番目に、ハードウェア・タスク・マネージャ810のメッセージ・データの順である。出力パイプライン・レジスタ855は、空の場合、または現在のクロック・サイクルの終わりにその内容が他のレジスタに転送される場合に使用可能である。
ノード800のDMAエンジン830は任意選択のコンポーネントである。一般に、DMAエンジン830は、5レジスタ・モデルに従い、開始アドレス・レジスタ、アドレス・ストライド・レジスタ、転送カウント・レジスタ、デューティ・サイクル・レジスタ、および制御レジスタを備える。DMAエンジン830内の制御レジスタは、GOビット、ターゲット・ノード番号および/またはポート番号、およびDONEプロトコルを使用する。Kノード925は、データ転送が完了したときに、レジスタを書き込み、GOビットをセットし、DONEメッセージを受信する。DMAエンジン830を使用すると、ノード800のメモリから、オンチップ・バルク・メモリ、外部SDRAMメモリ、他のノードのメモリ、または診断および/または運用目的のKノード・メモリなどの他のメモリへのブロック移動が簡単になる。DMAエンジン830は、一般に、Kノード925により制御される。
ハードウェア・タスク・マネージャ810は、Kノード925により構成され、制御され、DMAエンジン830以外のすべてのノード・コンポーネントとインターフェースする。ハードウェア・タスク・マネージャ810は、各ノード800上で実行され、タスク・リストを処理し、先入れ先出し(FIFO)メモリとして実装されるタスク実行可キュー(task ready-to-run queue)を生成する。ハードウェア・タスク・マネージャ810は、個々のハードウェア・タスク・マネージャ・コンポーネントを制御する多数の下位有限状態機械とインターフェースする最上位レベルの有限状態機械を備える。ハードウェア・タスク・マネージャ810は、適応型実行ユニット840による指定されたタスクの実行のため適応型実行ユニット840内の計算要素250の構成および再構成を制御する。
Kノード925は、ハードウェア・タスク・マネージャ810を初期化し、通信プロセッサまたはMP3プレーヤとしての動作など、所定の動作モードに必要なタスクのセットアップ情報をマネージャに供給する。Kノード925は、メモリ845および適応型実行ユニット840内のローカル・メモリ内に格納されている(タスク)プログラムとして構成情報を供給する。Kノード925は、入力ポート、出力ポート、経路選択情報、実行されるオペレーション(タスク)の種類(例えば、FFT、DCT)、およびメモリ・ポインタを指定することにより、ハードウェア・タスク・マネージャ810を(パラメータ・テーブルとして)初期化する。Kノード925はさらに、DMAエンジン830も初期化する。
ハードウェア・タスク・マネージャ810は、ポート変換テーブルを保持し、ポイントツーポイント・データ配信のためのアドレスを生成し、入力ポート番号を、着信データを格納するメモリ845の場所の現在のアドレスにマッピングする。ハードウェア・タスク・マネージャ810は、データ・フロー制御サービスを実行し、対応する生成および消費カウンタを使用してデータの生成および消費の両方を追跡し、それにより、データ・バッファが指定されたタスクで使用可能かどうかを判別する。ハードウェア・タスク・マネージャ810は、タスクの、および選択された実施形態では最大32個までのタスクの状態テーブルを保持する。状態テーブルは、GOビット(Kノード925により有効化されるか、または有効化されない(サスペンド))、タスクの状態ビット(アイドル、実行可、実行(実行中))、入力ポート・カウント、および出力ポート・カウント(入力データおよび出力データを追跡するため)を含む。選択された実施形態では、最大32個までのタスクを所与の時間に有効にすることができる。指定され有効にされたタスクについては、状態がアイドルであれば、また十分な入力データ(入力ポートから)が利用でき、十分な出力ポートが出力データに利用できる場合、その状態は実行可に変更され、実行中のためキューに入れられる(実行可FIFOまたはキューに転送される)。通常、適応型実行ユニット840には、構成情報(またはコード)および2つのデータ・オペランド(xおよびy)が送られる。
実行可キューから、タスクはアクティブなタスク・キューに転送され、適応型実行ユニット840はそのタスク(セットアップ)について構成され、タスクは適応型実行ユニット840により実行され、出力データは、データ集積器および選択器850に供給される。この実行の後、適応型実行ユニット840は肯定応答メッセージをハードウェア・タスク・マネージャ810に送り、次の項目を要求する。その後、ハードウェア・タスク・マネージャ810は、適切に設定されている同じ構成でデータの処理を続行するか、または現在の構成を破棄し、その破棄の完了に関する肯定応答を送り、実行可キューに次のタスクを要求するよう、適応型実行ユニット840に指令を送る。選択されたアルゴリズムを実行するように構成した後、ハードウェア・タスク・マネージャ810からの新しい構成情報は必要でなく、適応型実行ユニット840は実際にASICのように機能し、ハードウェア・タスク・マネージャ810への肯定応答メッセージ伝送の追加オーバーヘッドはわずかである。これらのオペレーションについて、以下で詳述する。
モジュールは、自給型のコード・ブロック(プロセッサにより実行される)またはハードウェア実装機能(構成された計算要素250として実装)であり、実行ユニット840により処理または実行される。タスクはモジュールの1つのインスタンスであり、サスペンド、アイドル、使用可、または実行の4つの状態を持つ。タスクは、タスクを特定のノード800上の特定のモジュール(計算要素250)に関連付ける、モジュールの物理的メモリおよび論理入力バッファ、論理出力バッファ、論理入力ポート、および論理出力ポートを関連付ける、そのタスクに対する構成パラメータを初期化するという方法で生成される。タスクを形成するには、タスクが生成されるノード800内の制御レジスタをKノードが書き込み(つまり、タスクを実行する計算要素250の構成を有効にする)、そのタスクに対するデータを生成し、かつ/またはそのタスクからのデータを消費する他のノードがあれば、それらのノード内の制御レジスタにKノードが書き込む。これらのレジスタは、Kノードのアドレス空間にマッピングされたメモリであり、「peek and poke」ネットワーク・サービスを使用して、これらの値を読み書きする。新規に作成されたタスクは、「サスペンド」状態で開始する。
タスクが構成されると、Kノードは「go」コマンドを発行することができ、ハードウェア・タスク・マネージャ810内の制御レジスタのビットをセットする。このコマンドは、「サスペンド」状態から「アイドル」状態にタスクを移行させる動作をする。タスクが「アイドル」であり、すべての入力バッファおよび出力バッファが利用可能な場合、そのタスクは、FIFOとして実装されている「実行可」キューに追加され、タスク状態は「実行可/実行」に変更される。バッファは、後続のタスク実行で入力バッファ内に存在している以上のデータを消費しないか、または出力バッファ内のキャパシティを超えるデータを生成しないときにタスクで利用できる。
適応型実行ユニット840が使用中でなく、FIFOが空でない場合、FIFOから実行可状態の次のタスクに対するタスク番号が削除され、このタスクの状態は「実行」になる。「実行」状態では、タスク(構成された適応型実行ユニット840により実行される)は入力バッファからのデータを消費し、出力バッファ向けのデータを生成する。
適応型実行ユニット840は、実装されたノード800の種類に応じて異なる。異成分からなるノード800で使用する、例えば、プログラム可能RISC処理ノード、プログラム可能DSPノード、算術演算ノードなどの特定のドメインの適応型または再構成可能ノード、および適応型ビット操作ユニット(RBU)用に、さまざまな適応型実行ユニット840を専用設計で実装することができる。さまざまな適応型実行ユニット840について、以下で詳述する。
例えば、ノード800は、実行ユニット840を通じて、数百または数千クロック・サイクルを超える、独立のオペレーション、ロード/ストア、メモリ・フェッチなどの長いシーケンスを実行するのと比べて、1または2クロック・サイクルなど、比較的少ないクロック・サイクルでアルゴリズム要素全体を実行し、結局は、同じ最終結果が得られる。計算要素250を通じて、他の異なるアルゴリズム要素を実行するように実行ユニット840を再構成することができる。アルゴリズム要素は、例えば、基数2の高速フーリエ変換(FFT)、基数4の高速フーリエ変換(FFT)、基数2の逆高速フーリエ変換(IFFT)、基数4の逆高速フーリエ変換(IFFT)、1次元離散コサイン変換(DCT)、多次元離散コサイン変換(DCT)、有限インパルス応答(FIR)フィルタ処理、畳み込み符号化、スクランブリング、パンクチャリング、インターリービング、変調マッピング、Golay相関、OVSF符号生成、アダマール変換、ターボ復号化、ビット訂正、Griffiths LMSアルゴリズム、可変長符号化、アップリンク・スクランブリング符号生成、ダウンリンク・スクランブリング符号生成、ダウンリンク逆拡散、アップリンク拡散、アップリンク連結、Viterbi符号化、Viterbi復号化、巡回冗長符号化(CRC)、複素乗算、データ圧縮、動き補償、チャネル探索、チャネル収集、およびマルチパス補正などの複数のアルゴリズム要素から選択できる。
一実施例では、計算要素250の種類および量を変更し(計算ユニット200を形成する)、それぞれのノード800の実行ユニット840を形成する相互接続(スイッチングまたは経路選択要素を含む)の種類、量、および場所を変更することにより、複数の異なるそのようなノード800を生成する。この実施例では、2つの異なるノード800は、一般に、算術演算または数学的アルゴリズムを実行し、適応型(または再構成可能)算術演算ノード(AN)としてAN1およびAN1と呼ばれる。例えば、AN1ノードは、複数の異成分からなる再構成可能ノードの第1のノード800として、複数の異成分からなる計算要素から計算要素250をまず選択し、高速フーリエ変換(FFT)および離散コサイン変換(DCT)を実行する第1の再構成可能算術演算ノードを形成する。この例の続きでは、AN2ノードは、複数の異成分からなる再構成可能ノードの第2のノード800として、複数の異成分からなる計算要素から計算要素250の第2の選択を行い、第2の再構成可能算術演算ノードを形成するが、第2の選択は第1の選択とは異なり、多次元離散コサイン変換(DCT)、有限インパルス応答(FIR)フィルタ処理、OVSF符号生成、アダマール変換、ビットWCDMAターボ・インターリーブ、WCDMAアップリンク連結、WCDMAアップリンク反復、およびWCDMAアップリンク実拡散および利得スケーリングの算術演算要素のうちの少なくとも2つを実行する。
また、この実施例では、複数の他の種類のノード800も、例えば以下のように、定義されている。
ビット操作ノードは、複数の異成分からなる再構成可能ノードの第3のノードとして、複数の異成分からなる計算要素から計算要素250の第3の選択をし、第3の選択は第1の選択と異なり、可変および複数レート畳み込み符号化、スクランブリング符号生成、パンクチャリング、インターリービング、変調マッピング、複素乗算、Viterbiアルゴリズム、ターボ符号化、ターボ復号化、補正、非線形フィードバック・シフト、ダウンリンク逆拡散、アップリンク拡散、CRC符号化、逆パンクチャリング(de-puncturing)、および逆反復(de-repeating)のアルゴリズム要素のうち少なくとも2つを実行する。
再構成可能フィルタ・ノードは、複数の異成分からなる再構成可能ノードの第4のノードとして、複数の異成分からなる計算要素から計算要素250の第4の選択をし、第4の選択は第1の選択とは異なり、適応型有限インパルス応答(FIR)フィルタ処理、GriffithのLMSアルゴリズム、およびRRCフィルタ処理のアルゴリズム要素のうちの少なくとも2つを実行する。
再構成可能有限状態機械ノードは、複数の異成分からなる再構成可能ノードの第5のノードとして、複数の異成分からなる計算要素から計算要素250の第5の選択をし、第5の選択は第1の選択とは異なり、制御処理、複数の異成分からなる計算要素250の間のデータおよび制御情報の経路選択、第1のアルゴリズム要素を実行するための複数の異成分からなる計算要素の構成および第2のアルゴリズム要素を実行するための複数の異成分からなる計算要素の再構成の指令およびスケジューリング、対応するデータを使用した複数の異成分からなる計算要素の構成および再構成のタイミング設定およびスケジューリング、複数の異成分からなる計算要素および相互接続ネットワークへの電力分配の制御、および複数の構成情報と混合したデータを含む単一ビット・ストリームから第1の構成情報および第2の構成情報を選択する操作のアルゴリズム要素のうちの少なくとも2つを実行する。
再構成可能マルチメディア・ノードは、複数の異成分からなる再構成可能ノードの第6のノードとして、複数の異成分からなる計算要素から計算要素250の第6の選択をし、第6の選択は第1の選択とは異なり、基数4の高速フーリエ変換(FFT)、多次元の基数2の離散コサイン変換(DCT)、Golay補正、適応型有限インパルス応答(FIR)フィルタ処理、GriffithのLMSアルゴリズム、およびRRCフィルタ処理のアルゴリズム要素のうちの少なくとも2つを実行する。
再構成可能ハイブリッド・ノードは、複数の異成分からなる再構成可能ノードの第7のノードとして、複数の異成分からなる計算要素から計算要素250の第7の選択をし、第7の選択は第1の選択とは異なり、算術演算機能およびビット操作機能を実行する。
再構成可能入力および出力(I/O)ノードは、複数の異成分からなる再構成可能なノードの第8のノードとして、複数の異成分からなる計算要素から計算要素250の第8の選択をし、第8の選択は第1の選択とは異なり、複数の種類のI/O規格に入力および出力機能を適応させるが、複数の種類のI/O規格は、PCIバス、ユニバーサル・シリアル・バス・タイプ1およびタイプ2(USB1およびUSB2)、およびSmall Computer Systems Interface(SCSI)のうちの少なくとも2つに対応する規格を含む。
再構成可能オペレーティング・システム・ノードは、複数の異成分からなる再構成可能ノードの第9のノードとして、複数の異成分からなる計算要素から計算要素250の第9の選択をし、第9の選択は第1の選択とは異なり、複数のオペレーティング・システムのうち選択されたオペレーティング・システムを格納し実行する。
図15は、本発明による第2のシステム実施形態1000を例示するブロック図である。第2のシステム実施形態1000は、複数のサイズ可変のノード(またはマトリックス)1010(ノード1010Aから1010Xで例示されている)で構成され、また指定されたノード1010の例示されているサイズで、ノード1010内の計算要素250の個数とノード1010自体の中に含まれるメモリの量を示す。ノード1010は、上述のように、構成、再構成、経路選択などのために、相互接続ネットワーク110に結合されている。第2のシステム実施形態1000は、ノード800および上述の象限930およびクワッド940構成と異なっており、またより変化に富むシステム構成を例示している。
例示されているように、第2のシステム実施形態1000は、大規模システム内の他の回路とともに使用するように設計されており、その結果、構成可能な入出力(I/O)回路1025を備え、これはI/O機能に対する構成可能な(図に別に示されていないが、対応する相互接続を通じて)複数の異成分からなる計算要素で構成される。構成可能な入出力(I/O)回路1025は、システム・バス(外部)、外部SDRAMと接続し、通信し、リアルタイムの入出力を実現する。Kノード(KARC)1050は、上述のKノード(KARC)機能を備える。第2のシステム実施形態1000はさらに、メモリ1030(メモリ・コントローラ付きのオンチップRAMとして)およびメモリ・コントローラ1035(外部メモリ(SDRAM)とともに使用する)を備える。また、装置1000には、集積器/フォーマッタ1040および逆フォーマッタ/分配器1045が含まれ、データ集積器および選択器850およびデータ分配器および復号器820の機能にそれぞれ対応する機能を備えるが、ただし、大規模なシステム1000の場合である(ノード800の中でのことではなく)。
再び図10を参照すると、すでに述べたように、ノード800を手直しすることができるが、それには、適応型実行ユニット840の構成およびメモリ845のサイズを変更し、1つまたは複数の特定のアプリケーションまたはアルゴリズムを実行する。計算要素250の種類および量を変更し、また相互接続(110、210、220、240)の種類、量、および場所を変更することにより、さまざまな種類の多数のノード800を作成することができる。例えば、デジタル・カメラ、ビデオ・カメラ、ビデオ電話アプリケーション、デジタルTV、デジタル映画、ファクス機、コピー機、または可視スペクトル(光)信号からイメージを作成または再現する他の任意の個数のデバイスで使用することなどを目的として、光学データ処理を実行して処理されたデジタル・イメージを生成するようにACE100の1つまたは複数のノード800の適応型実行ユニット840およびメモリ845を構成することができる。
一眼レフ(Single Lens Reflex:SLR)とコンパクト・カメラの両タイプを含む代表的な従来のカメラはDSPまたはマイクロプロセッサ・ベースのデバイスである。一般に、電荷結合素子(「CCD」)などの1つまたは複数の光学センサは、カメラに入ってきた光の量を検出する。光の量は、カメラのレンズ系によって捕捉された物体像によって異なる。カメラの光学センサによって生成されたその結果のデータは、本明細書では、物体の検出イメージと呼び、マイクロプロセッサまたはDSPにより処理され、これを使用して、適切な露光および焦点などのカメラ設定を調整する(例えば、レンズ口径、シャッター速度、フラッシュ、オートフォーカスなど)。従来のデジタル・カメラの場合、その結果得られるCCDからの(アナログ)データはデジタル・データに変換され、マイクロプロセッサまたはDSPにより処理され、処理済みデジタル・イメージと本明細書では呼ぶオリジナルの検出されたイメージのデジタル形式を出力する。しかし、すでに述べたように、マイクロプロセッサは、実際のアルゴリズム・オペレーション−この場合、2値化されたイメージを出力するためにカメラ設定およびアルゴリズムを調整するために使用されるアルゴリズム−の実行に関して比較的不効率であり、したがって、ACE100などの他の種類のICに比べてICの専有面積および消費電力は著しく大きい。
図16Aは、本発明によるデジタル・カメラ1100の例を示すブロック図である。図16Bは、本発明によるデジタル・カメラ1100の例の透視図である。デジタル・カメラ1100の例では、適応型コンピューティング・エンジン(ACE)100を使用して、デジタル・イメージを処理し、処理済みデジタル・イメージをさまざまな出力に供給し、該当するカメラ設定を調整する。デジタル・カメラ1100は、焦点合わせ手段1102(例えば、レンズ、シャッター、絞り、フィルタ、モータなど)、CCDタイプの光学センサ1104、アナログ−デジタル(「A/D」)コンバータ1118(ACE100に付属する場合もある)、ACE100(例えば、1つまたは複数のノード800)、メモリIC1110などの1つまたは複数のメモリおよび取り外し可能メモリまたは記憶媒体1112(例えば、フラッシュ・メモリ、DRAM、SRAM、SDRAM、FeRAM、MRAM、ROM,EPROM、および/またはEEPROM)、ACE100のデジタル出力(処理済みデジタル・イメージまたは複数の処理済みデジタル・イメージ・データ・パケット)をテレビ出力ポート1116および表示(ファインダ)画面1106などの1つまたは複数のアナログ出力ポートとをインターフェースするアナログ出力インターフェース1108、いくつかの実施形態では、ACE100のデジタル出力を(複数の処理済みデジタル・イメージ・データ・パケットとして)コンピュータ出力ポート1114(または、別に例示されてはいないが、プリンタ・ポート、データ伝送ポートなど)などの1つまたは複数のデジタル出力ポートとインターフェースするデジタル出力インターフェース1120、および任意選択の光学ファインダ1118を備える。デジタル・カメラ1110の例のファインダ画面1106は、カラー液晶表示装置(LCD)画面であるのが好ましいが、他の種類の適当な画面を使用することもできる。さらに、フラッシュ・メモリは通常、デジタル・カメラ1110の例で作成される処理済みデジタル・イメージを格納するための取り外し可能メモリ1112として使用されるが、処理済みデジタル・イメージはさらに、他のメモリIC、ディスケット、CD、PCまたはPCMCIAカード(または物理的サイズ、重量、アスペクト、およびその他の特性が携帯型カメラなどの可搬性に適しているような特定のイメージ処理デバイスの設計に好適な他の適当な記憶媒体)などの他の形態のメモリに格納することもできる。
デジタル・カメラ1100では、露光すると化学的変化を生じるフィルムにイメージを捕捉するのではなく、後でデジタル形式に変換される各ピクセルまたは要素に対するある種の電気的信号を発生する感光アレイ(ピクセルとして編成されるかまたは通常ピクセルと呼ばれる)を備える光学センサ1104を使用する。物体を透過した、または物体から反射された光は、物体像として、光学センサ(1104、1204)上に投影または集束される(焦点合わせ手段1102により)。デジタル・カメラ1100内での感光は、通常、光学センサ1104に投影された物体像から電荷結合素子(CCD)により実行され、検出イメージを出力することができる。例えば、CCDとして実現される場合、光学センサ1104は、電荷が記憶領域内を移動する半導体材料である。次に、光学センサ1104から出力された電荷(つまり、電気的信号)は、A/Dコンバータ1108に送られる。A/Dコンバータ1118は、電気的信号をサンプリングし、その電気的信号をデジタル形式に変換し(つまり、それぞれの光学センサ要素上の電荷のレベルに対応するデジタル値を供給する)、(焦点合わせ手段1102により光学センサ1104上に投影された物体像から検出された)検出イメージを表すデジタル・イメージ情報を供給する。選択された実施形態に応じて、A/Dコンバータ1118からのこのデジタル・イメージ情報はまた、図14に例示されているデータ構造を持つデジタル・イメージ情報データ・パケットなどの複数のデジタル・イメージ情報データ・パケットとして(ノード800に)供給することもできる。
デジタル・イメージ情報(または複数のデジタル・イメージ情報データ・パケット)はACE100に供給され、そこで、処理され、処理済みデジタル・イメージ(または、同等のことであるが、複数の処理済みデジタル・イメージ・データ・パケット)を生成する。ACE100から、処理済みデジタル・イメージ(または複数の処理済みデジタル・イメージ・データ・パケット)がさまざまな出力、例えば、メモリ1110、長期記憶用のまたは処理済みデジタル・イメージからデジタル写真を印刷するために使用される取り外し可能(または交換可能)メモリ1112(場合によっては、デジタル出力インターフェース1120を介して)、デジタル出力インターフェース1120(任意選択)、さまざまなデジタル・ポート(コンピュータ・ポート1114またはプリンタ・ポートなど、ただし別に例示されていない)、表示(ファインダ)画面1106またはテレビ画面(テレビ出力ポート1116などのアナログ出力ポートを介する)のいずれかに表示するのに好適なアナログ形式に変換するためのアナログ出力インターフェース1108に送られる。
上記のように、データは一般に、MIN110上で、図14に例示されている構造を持つデータ・パケットのなどの、データ・パケットの形式で転送される。したがって、選択された実施形態に応じて、A/Dコンバータ1118からのデジタル・イメージ情報は、複数のデジタル・イメージ情報データ・パケットの形態をとることができ、これらは、ノード800の入力パイプライン・レジスタ815に送られる。
さらに、選択された実施形態に応じて、複数のノード800を使用してACE100を形成する場合などに、さまざまなノード800により出力データ・パケットが出力パイプライン・レジスタ855を介して供給される。デジタル・イメージ処理では、これらの出力データ・パケットは、処理済みデジタル・イメージを含む複数のデータ・ワードからなるデータ・ペイロードを持つ、つまり、出力データ・パケットは複数の処理済みデジタル・イメージ・データ・パケットである。次に、デジタル出力インターフェース(図17の1120または1222)は、複数の処理済みデジタル・イメージ・データ・パケットからなるデータ・ワードを組み立てて、全体的なまたは完全な処理済みデジタル・イメージを形成することができる(さらに、印刷、コピー、格納、アナログ形式への変換などを行える)。他の実施形態では、さまざまなデジタル・イメージ処理アプリケーションは、複数の処理済みデジタル・イメージ・データ・パケットを直接使用することができ、またもしそうならば、そのようなデジタル出力インターフェースを使用して、複数の処理済みデジタル・イメージ・データ・パケットから処理済みデジタル・イメージを組み立てることは、装置1100では必要ない。同様に、アナログ出力については、処理済みデジタル・イメージをアナログ形式に変換する(デジタル−アナログ(「D/A」)変換)アナログ出力インターフェース1108では、同様に、複数の処理済みデジタル・イメージ・データ・パケットからなるデータ・ワード・ペイロードから処理済みデジタル・イメージのそのような組み立てを行うことができる(その後、アナログ形式への変換が行われる)。
デジタル・カメラ1100の例で使用される光学センサ1104(CCDなど)(または、後述の光学センサ1204)の設計は、アプリケーション毎に異なり、本発明の目的については、光学センサは物体から(一般に、焦点合わせ手段1102を通じて)投影または反射された光信号を処理可能な電気的形態(蓄積された電荷または電圧など)に変換するだけでよく、そのようなすべての光学センサは本発明の範囲内にある。光学センサ1104、1204は、通常、CCD、電荷注入素子(「CID」)、光学CMOS(受動的または能動的ピクセル・センサ)、光学バイポーラ接合型トランジスタ(「BJT」)、フォトゲートまたはフォトダイオード・アレイなどのソリッドステートIC素子であり、そのうちどれかは、線形またはフル・フレーム・アレイ(full frame arrays)でよく、任意の種類の電荷または他の情報読み出し機能を備え、ダーク・ピクセル(dark pixels)およびアンチブルーム・ドレイン(antibloom drain)、マイクロレンズ、カラー・フィルタ・アレイなどを備えることもできる。さらに、異なる検出器アレイを利用する他の種類の光学センサは、さまざまな光学センサ・アプリケーションで使用される。例えば、1ページ分のテキストまたはグラフィックスからキャプチャされた輝度変動を電気的信号に変換するように構成されている光学センサを使用して、以下で詳述するコピー機、スキャナ、およびファクス機と一般に関連するゼログラフィ(つまり、乾式コピー)を実行できる。このような状況で光学センサを使用することで、光導電性(つまり、電流が流れることに耐えられるある種の物質は、光に晒されたときに導電性が高まる)をテキストおよびグラフィックス材料に応用し、テキストおよびグラフィックス材料の複数のコピーを生成することができる。
図17は、本発明によるファクシミリ、スキャナ、またはコピー機1200の例を示すブロック図である。ファクス機/スキャナ/コピー機1200の例では、適応型コンピューティング・エンジン(ACE)100(例えば、1つまたは複数のノード800)を使用して、デジタル・イメージ情報を処理し、処理済みデジタル・イメージを出力する。さまざまな実施形態ではさらに、紙への印刷または乾式コピーなどにより有形な媒体上に表示するため処理済みデジタル・イメージを変換する。ファクス機/スキャナ/コピー機1200の例は、一般に、光源1202、光学センサ1204、A/Dコンバータ1216(ACE100内に備えることもできる)、ACE100(例えば、1つまたは複数のノード800)、デジタル出力インターフェース(またはポート)1222(選択された実施形態に応じて)、レーザ・プリンタ、インクジェット・プリンタ、または他のプリンタ(レーザ、インクジェット、または他のプリント・ヘッドを含み、また選択された実施形態、ドラム荷電電極、回転ドラムなどの他の印刷メカニズムに応じて)などのプリンタ(または印刷手段)1210、乾式コピー機1220(ゼログラフィまたは他の乾式コピー・メカニズムまたは手段)、およびアナログ、デジタル、DSL、またはケーブル・モデムなどのデータ送信器1206(ACE100も含むことができる)(ファクス送受信または他のデータ送信用)を含む。選択された実施形態では、装置1200は、さらに、上述のように、焦点合わせメカニズムを備えることもできる。
さまざまな印刷メカニズム1210または乾式コピー機(ゼログラフィ)メカニズム1220は、当業で知られているように、または当業で知られることになるように実装することができ、一般に、紙またはその他の媒体の収納および供給、照合、ユーザ・インターフェース、および物理的イメージ生成(例えば、プリント・ヘッド(レーザ、インクジェット)、トナー・カートリッジ、ドラム、荷電電極など)のためのコンポーネントを備える。データ伝送メカニズム1206は、さらに、無線リンク(無線周波数(RF)リンクなど)、有線または他のバス・リンク、Ethernet(登録商標)リンク、またはインターネットなどの公衆通信回線リンクを含むこともできる。ファクス機/スキャナ/コピー機1200の例を、スキャンなどのためにコンピュータ1230に結合することもできる。ファクス機/スキャナ/コピー機1200の例には、本発明の範囲内にあるさまざまな実装が考えられることに留意されたい。これらのさまざまな実施形態については、本発明では、光学センサ(1104または1204)およびACE100(例えば、1つまたは複数のノード800)を必要とし、これらのコンポーネントは、1つまたは複数のプリンタ1210、乾式コピー機(または、それと同等の、ゼログラフィ手段)1220、またはデータ送信器1206に組み込むことで、選択された実施形態を形成することができる。
ファクス機/スキャナ/コピー機1200の例は、イメージをキャプチャする動作をし(また、テキストまたはグラフィックス材料の1つまたは複数のコピーを送信または生成する)、光学センサ1204は、光源1202を使用して物体(ここでは大きな「P」で示されている)から反射された光を(物体像として)受け取り、物体像の明暗領域を変化する電圧(または電荷)として登録する(そして検出イメージを形成する)。図16で説明されているデジタル・カメラ1100の例と全く同様に、電圧(または電荷)の変動は、検出イメージとして、光学センサ1204の感光ピクセルのアレイによりキャプチャされた明暗領域に相関する。光学センサ1204は、光学センサ1104に関してすでに説明したようにどのような種類の光学センサでもよい。光学センサ1204から出力されたアナログ電気的信号は、検出イメージの輝度変動を表す(そして、物体像の輝度変動に対応する)一連の電圧(または電荷)で構成される。アナログ電気的信号は、A/Dコンバータ1216によりデジタル・ビット列に変換されるか、またはすでに述べたように、複数のデジタル・イメージ情報データ・パケットに変換される。デジタル・ビット列は、本明細書ではデジタル・イメージ情報(または、それと同等であるが、複数のデジタル・イメージ情報データ・パケット)とも呼ばれ、ACE100によって受信され、処理されて、ファクス送受信の使用、スキャン・イメージとしての表示、印刷、またはコピー機としての乾式コピーに好適な処理済みデジタル・イメージまたは複数の処理済みデジタル・イメージ・データ・パケット(光学センサ1204上に投影または反射される物体像に対応する)を出力する。当業者には周知のように、光学センサ1204、ACE100、またはA/Dコンバータ1216は、チップ上のシステム(「SOC」)実施形態と同じ半導体(IC)上、または回路基板(例えば、プリント回路基板)上で結合されている複数のIC上の同じ場所に配置または集積化することができる。
ACE100による処理が完了した後、処理済みデジタル・イメージ(装置1100または1200のいずれかからの)は、プリンタ1210を介した印刷および乾式(ゼログラフィ)コピー機1220を介した乾式コピーを含む、さまざまなメカニズムを使用して有形な媒体上に物理的に実現または他の何らかの手段により表示するか、またはデータ伝送メカニズム1206を介して複数の場所に送信し、複数のアプリケーションで使用することができる。例えば、処理済みデジタル・イメージは、リモートのファクス機の受信側に、プリンタに、携帯電話に、コンピュータ画面上に表示するためコンピュータに、またはネットワーク(インターネットなど)に送信することができる。さらに、例えば、データ伝送メカニズム1206は、1つまたは複数のモデム1304、無線周波数(Radio Frequency:RF)リンク1306、有線バス・リンク1308、Ethernet(登録商標)リンク1310、またはインターネットなどの公衆通信回線リンク1312を含むこともできる。受信側デバイスは、1つまたは複数のコンピュータ1314を含むことができ、そのようなものとしては、ラップトップ、デスクトップ、またはハンドヘルド・コンピュータ、携帯電話1316、プリンタ1318、または受信用ファクス機1320、または物体像(そして、おそらく物体)に対応する(処理済みデジタル・イメージからの)最終コピーを表示または印刷する他のデバイスがある。
例えば、再び図17を参照すると、受信側デバイスが受信用ファクス機であれば、着信するデジタル・ビット列(処理済みデジタル・イメージを表す)に対応してレーザ・ビームがオン、オフし、イメージの明領域に対応する、ドラム電荷電極によりすでに帯電している回転ドラムの領域を放電する。オリジナルの物体像のピクセル化された最終コピーは、媒体、例えば、受信側で出力する紙の上に再現される。当業者であれば、印刷またはゼログラフィ(乾式コピー)手段の適当な種類のものを使用できること、およびすべてが本発明の範囲内にあることを理解するであろう。
一般に、本発明によれば、光景またはテキストまたはグラフィックス材料の物体像をキャプチャするなど、物体像を検出するための光学センサは、静止画撮影、動画撮影、印刷、スキャン、コピー、テレビ、ビデオ、ビデオ電話、デジタルTV、デジタル映画など、どのようなデジタル・イメージ処理アプリケーションでも、処理済みデジタル・イメージを生成するためにACE100とともに使用することができる。上記のように、アナログ−デジタル・コンバータ1118および1216は、別々に示されているが、光学センサの出力(検出イメージ)をデジタル・イメージ情報に変換する操作は、同じICまたはSOC上のACE100と同じ場所に配置または集積化されているA/Dコンバータにより実行することができる。さらに、使用される光学センサの種類によっては、光学センサをACE100および/またはA/Dコンバータと同じICに配置またはそこに集積化することもできる。例えば、ACE100を含むさまざまなノード800は、ルート・レベル(図11に示されている)の光学センサおよびA/Dコンバータと同じICに配置または集積化することができ、その際に、デジタル・イメージ情報(A/Dコンバータからの出力)をMIN110上で送信されるデータ・パケットの形式で埋め込む。他の実施形態では、光学センサ(A/Dコンバータを使用可能)は、デジタル・イメージ処理を実行する1つまたは複数の再構成可能なノード800とともに使用される1つまたは複数の固定された機能ノード800(例えば、複数の感光およびA/D変換計算要素250で構成される)である、またはそのようにみなすことができる。(しかし、固定された機能光学ノードとしては、光学センサは上述のノード・ラッパのコンポーネントの多くを必要としないと考えられる。)また、量子化されたデジタル読み出し値を直接与える光学センサを開発できるとも考えられ、しかもそれは本発明の範囲にある。
これらのさまざまな集積化(SOC)または非集積化の実施形態において、本明細書では、光学センサはアナログ出力(例えば、CCDまたは光学CMOSとして単独で実現する場合)またはデジタル出力(A/D変換機能と一体化したCCDまたは光学CMOSとして組み合わせで実現した場合)のいずれかを生成することができるということが暗黙の了解となっている。したがって、本明細書で使用しているように、光学センサは、より一般的に、物体像(例えば、焦点合わせ手段から、または物体から反射された)を、構成され再構成される複数の計算要素によりさらに処理するのに好適な「イメージ情報」に変換するものと考えられ、イメージ情報がアナログの場合、A/D変換の介在は暗黙のうちに存在する(アナログ検出イメージをデジタル・イメージ情報に変換する)。さらに、イメージ情報(またはデジタル・イメージ情報)を使用して、デジタル写真撮影、コピーまたは印刷などの1つまたは複数のイメージ処理アプリケーションに好適な処理済みデジタル・イメージを供給するために、複数の計算要素を第1のイメージ処理機能またはアルゴリズムに対して構成し、第2のイメージ処理機能またはアルゴリズムを実行するように再構成するが、第1のイメージ処理機能またはアルゴリズムは第2のイメージ処理機能またはアルゴリズムと異なる。
光学センサ1104、1204により実行される、イメージ感知、または光検出は、一般に、光を一連の電荷(または電圧)として表される変化するアナログ電気的信号に変換するピクセルまたは画素(「ペル」)と一般に呼ばれる数百万個の感光セルからなるアレイにより実現される。数百万個からなるアレイの各感光セルは、物体像からの(または対応する)光の量を検出する。カラー・アプリケーションでは、感光セルは、特定の色(または周波数帯域)に対応する光の量も検出する。その結果、光学センサ1104、1204によって生成されるアナログ電気的信号は、感光セルのアレイに当たる光のさまざまな量に対応する。光を検出した後、光学センサ1104、1204は、電荷を順次、光学センサ(後述)の出力増幅器に移動してから、デジタル・イメージ情報ストリーム(または複数のデジタル・イメージ情報データ・パケット)に変換し、最後に、ACE100で処理する。
光学センサ1104、1204の中央ビルディング・ブロックは、一般に、金属絶縁半導体材料である。一実施形態では、光学センサ1104、1204は、例えば、フォトダイオード・アレイまたはフォトゲート・アレイのいずれかを含むように構成することができる相補形金属酸化物半導体(CMOS)ICを使用する。光が光学センサ1104、1204の感光ピクセルに当たると、エネルギーが(光子の形態で)吸収され、その後、放出されるか、または半導体シリコン層内に励起された電子を与える。ピクセル上の光が強ければ強いほど、放出される電子は多く、その結果そのピクセルに対して生じる電荷は大きくなる。
その後、各ピクセルからの電荷(または電圧)が、例えば、カラムを読み出す、クロック・サイクル毎に一方のゲートから次のゲートへ電荷を移動する、水平シリアル読み出しロー・レジスタに送るなど、アレイ(線形またはフル・フレームなど)の種類に応じて、アレイから対応するレジスタ内に読み出される(または移動される)。これは、アレイ(CMOSゲートのカラムとロー)のゲート電圧を系統的方式で制御し、電子を一方のゲートから次のゲートへ、順繰りに移動させることにより行われる。CMOSゲートの各カラムの終わりで、シリアル読み出しロー・レジスタにより一度にロー1つずつピクセルの水平ローが収集され、そして、後でデジタル情報に変換するため(例えば、A/Dコンバータ1118、1216により)、出力増幅器(出力の増幅を行う)に送られる。このプロセスにより、イメージの写真撮影、コピー、または送信に関連する2次元イメージを表すシリアル・データ・ストリーム、デジタル・イメージ情報が生成される。さまざまな実施形態において、このデジタル・イメージ情報はさらに、図14に例示されているデータ構造例のデータ・ペイロード部分などで、MIN110上でさまざまなノード800に送信するため、データ・パケットで複数のデジタル・イメージ情報データ・パケットとして供給することもできる。
例えば、イメージ・ピクセルの3×3アレイを持ち、イメージ・ピクセルあたり3つのMOSゲートを備えるCCDの場合、CCDが点灯したときに9個のピクセル上に電子イメージが作成される。次に、3×3アレイのカラムのそれぞれが、一度に1クロック・パルスずつ、一度に1ゲートずつ、並列にシフト・ダウンされる。シリアル読み出しロー・レジスタに到達した後、ピクセルは、一度に1ローずつ出力増幅器にシフト・アウトされる。シリアル・ロー全体がクロックと同期して出力されてから、ピクセル内容(つまり、電荷)の次のローがシリアル読み出しロー・レジスタに転送される。このプロセスは、すべてのイメージ・ピクセルの電荷が出力増幅器に転送されるのが完了するまで続く。
上述の光学センサはカラムとローからなる単純なピクセル・アレイであるが、光学センサ1104、1204は、線形の1ライン・アレイ、フル・フレーム転送アレイ、フレーム転送アレイ(つまり、イメージ・ピクセル用に1つと記憶用に1つの、2つの同一アレイ)、またはインターライン転送アレイ(interline transfer array)(つまり、垂直転送レジスタにより隔てられているフォトダイオード)として構成することもできる。さらに、光学センサ1104、1204は、例えば、ニューロン・バイポーラ接合型トランジスタ(νBJT)構造またはサファイヤ上シリコンCMOS構造などの適当なトランジスタ構造による適当な技術を使用して製作することができる。
説明を簡単にするため、図16Aおよび16Bのデジタル・カメラ1100の例を使用して、対応する動作がファクス機、スキャナ、またはコピー機1200で行われる、処理済みデジタル・イメージを出力する光学センサとともに使用することができる多数のACE100の構成を例示することができる。しかし、当業者には周知のように、ファクス機、コピー機、スキャナ、プロジェクタ、ビデオ・カメラなどそのオペレーションで光学センサを使用する他のデバイスも同様に、ACE100で構成することができる。
再び、図16Aおよび16Bのデジタル・カメラ1100の例のオペレーションを参照すると、アナログ処理(上述の電荷読み出しおよび増幅)の完了後、検出イメージ(光学センサ1104出力として)は、アナログ−デジタル・コンバータ1118によりデジタル・イメージ情報に変換される。アナログ−デジタル・コンバータ1118は、光学センサの出力をサンプリングし、量子化して、アナログ電気的信号をデジタル・イメージ情報に変換する(つまり、電圧の高と低、または論理1と0の列であり、これはシリアル・ビット・ストリームまたは1つまたは複数のデジタル・イメージ情報データ・パケットである)。その後、デジタル・イメージ情報は、ACE100(後述)により処理され、例えば、デジタル・カメラ・アプリケーション、コピー・アプリケーション、印刷アプリケーション、ファクス送受信またはその他のデータ送信アプリケーションなど、多数のアプリケーションで使用するのに適している処理済みデジタル・イメージ(または、それと同等であるが、複数の処理済みデジタル・イメージ・データ・パケット)を生成することができ、コンピュータ画面に表示する、テレビ画面に表示する、メモリ1112に保存する、CDまたはディスクに格納する、ファインダ画面1106に表示する、レーザまたはインクジェット・プリンタにより写真として印刷する、紙に乾式コピーする、無線または有線リンクで送信するなど、有形の媒体に表示したり格納したりすることができる。上述のように、処理済みデジタル・イメージが複数の処理済みデジタル・イメージ・データ・パケットとして供給されるときに、パケットを組み立てて処理済みデジタル・イメージを形成し、これを、例えば、デジタル出力インターフェースを使用するか、または直接アプリケーションにより、アプリケーションの中で使用することができる。
処理済みデジタル・イメージは、さらに、マルチフレーム・アプリケーション(例えば、動いているイメージの写真撮影、ビデオ・カセット・レコーダ(VCR))、マルチチャネル・アプリケーション(例えば、陽電子放出断層撮影(PET)走査)で使用したり、あるいは離れた場所で表示するため、ファクス機、コンピュータなどを介してリモート受信器に送信することもできる。
また、図16Aおよび16Bを参照すると、オートフォーカス・システムは、デジタル・カメラ1100の例に備えられていれば、光学センサ1104およびACE100を使用して、小型モータ(別に示されていない)により焦点合わせ手段1102を調整または動かし、焦点の合っている物体像を入力として光学センサ1104に自動的に供給する。A/Dコンバータ1118(および光学センサ1104)により供給されるデジタル・イメージ情報を使用することで、ACE100はまず、「エッジ・ポイント」を検出する(つまり、黒の背景色に白いシャツのようなコントラストが大きく変化する領域)。エッジ・ポイントでは、1つのピクセルは1つの値(例えば、黒を表す)を持つが、隣接するピクセルは非常に異なる値(例えば、白を表す)を持つことになる。検出されたエッジ・ポイントに関連する値に基づき、ACE100は、モータで焦点合わせ手段1104を調整し、エッジでの値の差が最大になるようにする。つまり、ACE100による焦点合わせ手段1104に対する調整が正しくないと(例えば、イメージに向けて外へではなくイメージから中へ調整する)、隣接するピクセルの値の差は小さくなる。
さらに、図16Aおよび16Bのデジタル・カメラ1100の例に備えられている(または他の装置が光学センサおよびACE100を備える)場合、光学イメージ安定器システムは、動きセンサ(別に例示されていない)に結合されているACE100を使用して、レンズ・アクチュエータ(別に例示されていない)によりレンズ1104を上下、または左右に動かし、カメラの動きを補正する。
一般に、イメージ・キャプチャまたは検出プロセスには不備があるため、さらに処理を行わないと、記録されたイメージは、通常、オリジナル・イメージまたは物体が歪んだり、劣化したイメージとなる。したがって、さまざまな種類の歪み、人為的影響、ノイズまたはノイズのような劣化がイメージに入り込む可能性があるため、物体像の収集から処理済みデジタル・イメージの生成までの間に、イメージが一方の形式から他方の形式に変換されるときなどイメージ処理プロセス中に(例えば、イメージの取得、コピー、スキャン、デジタル化、送信、表示、印刷、または圧縮が行われるときに)、画像強調が一般に必要になる。例えば、さまざまな歪みがイメージ検出に入り込み、A/Dコンバータ1118により検出イメージ(アナログ信号としての)が変換されるときに、その結果得られるデジタル信号に量子化歪みまたはノイズが入り込むのが一般的である。同様に、イメージを通信チャネルを介して送信すると、例えば、受信したイメージにはチャネル・ノイズが含まれる。したがって、本明細書で使用しているように、「イメージ強調」という用語は、イメージに含まれる情報のある側面を増強または強調する、あるいはイメージを損なっている可能性のある信号取得に際しての誤りのせいで生じる不規則さ(例えば、ぼけ)、歪み、またはノイズを最小に抑える、記録されたイメージ(検出されたイメージまたはデジタル・イメージ情報など)に適用される1つまたは複数のプロセス、機能、またはアルゴリズムを意味する。
さまざまなノード800を手直しして1つまたは複数の選択されたアルゴリズムを実行するようにできるので、カメラ、ファクス機、コピー機などのデジタル・イメージ処理アプリケーションで使用されるイメージ検出、復元および強調機能、またはオペレーションの多くを実行するようにACE100を構成することができる。ACE100は、例えば、(1)ローパス・フィルタを使用して高周波ノイズを抑制する線形フィルタ処理、(2)モルフォロジーおよびメディアン・フィルタを使用してイメージ内の歪みを低減する(除去する)非線形フィルタ処理、および(3)マルチレート・フィルタ・バンクを使用するウェーブレット・ベースの歪み低減など、多数のイメージ復元アルゴリズム(例えば、ボケ除去、デバッグ)を実行するように構成することができる。ウェーブレット・ベースの歪み低減では、離散ウェーブレット変換(「DWT」)により、イメージ・エネルギーは大きな振幅を持つ少数のDWT係数に圧縮され、ノイズのエネルギーは小さな振幅を持つ多数のDWT係数に拡散され、調整可能な閾値フィルタを介してノイズおよび他の歪みが除去される。
例えば、写真撮影が露光不足、低光量状態だと、イメージに「グレイン・ノイズ」が含まれ、このノイズは、イメージ信号自体とともに、2値化プロセスのときに取り込まれる。グレイン・ノイズは、一般に、光学センサ1104を使用するイメージ取得システムにある程度の物理的ランダムさがあるため存在する。離散空間イメージ信号を、各重み付きインパルスがイメージの複数のピクセルのうちの1つを含む重み付きシフト・インパルスの総和として表すことができるので、線形フィルタ処理イメージ強調を使用して、そのような歪みおよびその他のノイズを除去することができる。ACE100のノード800は、インパルスからノイズを除去し歪みの少ないイメージを生成するように構成することができる。
さらに、例えば、ローパス・フィルタ処理を実行し、イメージ劣化の原因となるホワイト・ノイズまたは広帯域ノイズの高周波成分を除去するようにノード800の1つまたは複数を構成することができる。ノード800はさらに、2値化されたイメージの理想的ローパス・フィルタ処理またはガウス・フィルタ処理を実行するように構成することもできる。さらに、ACE100の時間的な特質のため、フィルタ処理を実行し、イメージ内容の劣化を最小限に抑えるように、ACE100のフィルタ処理機能を、イメージ状態に応じて実質的に「リアルタイムで」最適化することができる。
他の例では、イメージの表示を改善するために2値化されたイメージの非線形フィルタ処理、または平滑化を行う重み付きメディアン(Weighted Median:WM)フィルタを実現するようにノード800の1つまたは複数を構成することができる。一般に、WMフィルタは、ローカル・ウィンドウ内のピクセル値の一次結合を使用するのではなく、ローカルの重み付きメディアンを使用する。計算要素250に合った適切な構成を選択し、メディアン・フィルタ構成をとれるように計算ユニット200および相互接続を構成することにより、ACE100はインパルスノイズ除去(例えば、すべてのサンプルが等しい重みが付けられているわけではない中心WMフィルタによる)、エッジ劣化がほとんどないイメージ強調およびズーム、およびエッジ検出アルゴリズムの実行を含むイメージ分析を行うことができる。さらに、中心重み付きメディアン円滑化は、ACE100(重み付きメディアン・フィルタにより構成されている)によって実現することができ、これにより、特定の入力サンプルの強調および強調解除(deemphasize)を行うことができる。ウィンドウの中心サンプルは、他のすべてのサンプルの重み付き値を1に保持しながら中心重みをチューニングすることにより強調される。この概念は、ACE100にベクトル重み付きメディアン・フィルタを含めることで、カラー・イメージを含むように拡張できる。
さらに他の例では、ノード800の1つまたは複数は、イメージ検出および強調に対するモルフォロジー・フィルタを実現するように構成することができ、別に形態的イメージ処理とも呼ばれる。形態的イメージ検出および強調は、イメージをいくつかに分割したときのその分割されたさまざまな領域の視認性および認知性を高める非線形フィルタ(例えば、モルフォロジー・フィルタ)、設計方法論、およびアルゴリズムの広範な集合体を意味する。本質的に、イメージ分析の数理形態学は、イメージ・オブジェクトの幾何学的構造を定量的に記述することを目的としている。例えば、形状分析に対する線形フィルタよりも適しているモルフォロジー・フィルタ(つまり、形態的信号変換)は、幾何学に基づく強調および検出で主要な役割を果たす。モルフォロジー・フィルタは、また、非ガウス・ノイズ抑制にも適している。
場合によっては、光学センサ1104によって取得されたイメージは、デジタル処理の後、複数のフレームまたはチャネルを組み立てるか、または解決して、復元されたイメージを形成するマルチチャネルまたはマルチフレーム・アプリケーションで使用される。したがって、ACE100のノード800は、マルチチャネル・イメージ・アプリケーション(つまり、同一でないが、強いチャネル間相関を示すイメージの集合体があるアプリケーション)用のマルチチャネル・イメージ回復アルゴリズムを実行するように構成することができる。このようなイメージ回復アルゴリズムは、単独で一意的には望むイメージを確定しない観察データからイメージを計算する。マルチチャネル・イメージ回復アルゴリズムには、イメージ歪み低減(ノイズ除去)、イメージ・ボケ除去、圧縮イメージの復号化、および医療用イメージ再構成のためのアルゴリズムがある。例えば、暗黙のマルチチャネル回復は、陽電子放出断層撮影(Position Emission Tomography:PET)を使用して得られた医療用イメージ・シーケンスのマルチチャネル再構成を実現するためにACE100によって実行できる。
同様に、ACE100のノード800は、例えば、光学センサ1104によって取得されたイメージ・データのアンダー・サンプリングのせいで劣化の変動があった場合に取得されるイメージを改善するマルチフレーム・イメージ復元アルゴリズムを実行するように構成することができる。アンダー・サンプリングは、CCD1104のピクセル・サイズが視野の拡大とともに大きくなったときに視野とピクセル・サイズとのトレードオフの関係として生じることがある。アンダー・サンプリングされたイメージ・フレームのシーケンスを処理しイメージ解像度を復元するマイクロスキャニング・アルゴリズムは、一種のマルチフレーム・イメージ復元アルゴリズムであり、これは、発生しうるアンダー・サンプリング問題を克服するためにACE100で実行することができる。
ACE100によって用意できるまたは実行できる他のアルゴリズムとしては、反復イメージ復元アルゴリズム、記録されたイメージ・シーケンス(例えば、静止デジタル・カメラによりキャプチャされたビデオ、動画)の動き検出および推定アルゴリズム、ビデオ強調および復元アルゴリズム、3D再構成、およびイメージ・シーケンス安定化アルゴリズムがあるが、それらに限定されない。当業者には周知のように、ACE100を構成できるイメージ処理のタイプまたは種類には実質的に制限がなく、ACE100の1つまたは複数のノード800で実行するためのそのようなすべてのイメージ処理アルゴリズムは、本発明の範囲内にある。
要約すると、本発明では、例えば、デジタル・カメラ、スキャナ、プリンタ、乾式コピー機、またはデジタル・イメージ処理アプリケーションで使用される他の手段として実現できるデジタル・イメージ処理装置を実現するということである。本発明のデジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、複数の計算要素、および相互接続ネットワークを含む。光学センサは、物体像を検出イメージに変換することができる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージをデジタル・イメージ情報に変換することができる。複数の計算要素は、第1の固定アーキテクチャを備える第1の計算要素および第2の固定アーキテクチャを備える第2の計算要素を含み、第1の固定アーキテクチャは第2の固定アーキテクチャと異なる。相互接続ネットワークは、複数の計算要素およびアナログ−デジタル・コンバータに結合され、第1の構成情報への応答として複数のイメージ処理機能のうちの第1のイメージ処理機能を実行するように複数の計算要素を構成し、第2の構成情報への応答として複数のイメージ処理機能のうちの第2のイメージ処理機能を実行するように複数の計算要素を再構成することによりデジタル・イメージ情報からの処理済みのデジタル・イメージを供給することができるが、ただし、第1のイメージ処理機能は第2のイメージ処理機能と異なる。
デジタル・イメージ処理装置は、さらに、レンズ、シャッター、絞り、およびフォーカス・モータを備えるフォーカス・アセンブリなどの光学センサに物体像を供給することができる焦点合わせ手段も含むことができる。光学センサは、電荷結合素子(CCD)、電荷注入素子(CID)、光学相補型金属酸化シリコン(CMOS)アレイ、光学バイポーラ接合型トランジスタ(BJT)アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイなどの複数の光学センサのうちの少なくとも1つである。
デジタル・イメージ処理装置は、さまざまな実施形態において、相互接続ネットワークに結合され、処理済みのデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェース、アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるファインダ画面、およびアナログ出力インターフェースに結合され、テレビまたはその他のビデオ表示装置に接続することなどを目的として、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートを備えることもできる。デジタル・イメージ処理装置はさらに、相互接続ネットワークに結合され、コンピュータまたはデータ送信デバイスに接続することなどを目的として、処理済みデジタル・イメージを出力することができるデジタル出力ポートを備えることもできる。
処理済みデジタル・イメージは、さらに、複数の処理済みデジタル・イメージ・データ・パケットとして供給することもできる。この実施形態では、デジタル・イメージ処理装置は、さらに、相互接続ネットワークに結合されたデジタル出力インターフェースも備え、デジタル出力インターフェースは、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができる。
デジタル・イメージ処理装置は、さらに、例えば、有形の媒体上に処理済みデジタル・イメージを印刷することができるプリンタ、処理済みデジタル・イメージを有形媒体に転送することができる乾式コピー機、処理済みデジタル・イメージを離れた場所に送信することができるデータ送信器、処理済みデジタル・イメージを記憶媒体、コンピュータなどに転送することができるスキャナの中に組み込んだり、またはそれに結合することもできる。
さまざまな実施形態において、複数のイメージ処理機能として、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理、メディアン・フィルタ処理、局所重み付きメディアン・フィルタ処理、中心重み付きメディアン・フィルタ処理、ベクトル重み付きメディアン・フィルタ処理、マルチチャネル・イメージ回復、マルチフレーム・イメージ復元、反復イメージ復元、動き検出、動き推定、ローパス・フィルタ処理、マルチレート・フィルタ処理、ウェーブレット・ベースのマルチレート・フィルタ処理、オートフォーカス、コントラスト促進、ぼやけ除去などの機能うちの1つまたは複数がある。
また、さまざまな実施形態では、複数の計算要素の第1の固定されたアーキテクチャおよび第2の固定されたアーキテクチャは、線形フィルタ処理、非線形フィルタ処理、メモリ、加算、乗算、複素乗算、減算、同期化、キュー処理、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの対応する機能を備えるアーキテクチャなどの複数の特定のアーキテクチャから選択することができる。
さまざまな種類のメモリをデジタル・イメージ処理装置内に組み込むことができる。例えば、第1のメモリは、相互接続ネットワークに結合可能であり、処理済みデジタル・イメージを格納することができ、この第1のメモリは、選択的に取り外し可能なフラッシュ・メモリとすることができる。第2のメモリも、組み込み、相互接続ネットワークに結合可能であり、第1の構成情報および第2の構成情報を格納することができ、例えば、同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)とすることができる。
さらに要約すると、他の実施形態では、デジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、入力パイプライン・レジスタ、第1のメモリ、ハードウェア・タスク・マネージャ、データ分配器、適応型実行ユニット、データ選択器、および出力パイプライン・レジスタを備える。光学センサは、さらに、物体像を検出イメージに変換することもできる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージを複数のデジタル・イメージ情報データ・パケットに変換することができる。入力パイプライン・レジスタは、アナログ−デジタル・コンバータに結合され、複数のデジタル・イメージ情報データ・パケットを受信することができ、その一方で、第1のメモリは、複数のデジタル・イメージ情報データ・パケットを格納することができる。ハードウェア・タスク・マネージャは、複数のイメージ処理タスクを処理し、複数のイメージ処理タスクのうちの第1のイメージ処理タスクを実行することが可能であり、複数のイメージ処理タスクのうちの第2のイメージ処理タスクを実行することが可能であり、第1のイメージ処理タスクは第2のイメージ処理タスクと異なることを判別することができる。データ分配器は、入力パイプライン・レジスタ、第1のメモリ、およびハードウェア・タスク・マネージャに結合され、複数のデジタル・イメージ情報データ・パケットを第1のメモリに分配することができる。適応型実行ユニットは、ハードウェア・タスク・マネージャおよび第1のメモリに結合され、第1のイメージ処理タスクを実行するように構成することができ、また複数のデジタル・イメージ情報データ・パケットを使用して第1のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第2のイメージ処理タスクを実行するように再構成することができ、また第2のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第1のイメージ処理タスクおよび第2のイメージ処理タスクの実行で得られる複数の対応する処理済みデジタル・イメージ・データ・パケットを生成することができる。データ選択器は、ハードウェア・タスク・マネージャ、適応型実行ユニット、および第1のメモリに結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットの経路を決定することができる。出力パイプライン・レジスタは、データ選択器に結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットを受信することができる。
この実施形態では、適応型実行ユニットは、複数の計算要素および複数の計算要素に結合されている複数のスイッチング要素を含む。複数の計算要素において、第1の計算要素は第1の固定アーキテクチャを備え、第2の計算要素は第2の固定アーキテクチャを備え、第1の固定アーキテクチャは第2の固定アーキテクチャと異なる。複数のスイッチング要素は、第1の構成情報への応答として複数のイメージ処理機能のうちの第1のイメージ処理機能を実行するように複数の計算要素を構成し、第2の構成情報への応答として複数のイメージ処理機能のうちの第2のイメージ処理機能を実行するように複数の計算要素を再構成することができるが、第1のイメージ処理機能は第2のイメージ処理機能と異なる。
本発明に多数の利点のあることは、当業者であれば容易にわかるであろう。第1に、複数の異なるイメージ処理または光学機能およびアルゴリズムを実行するように計算要素を再構成することができるため、新しいまたは変更されたアルゴリズムをすぐに実装することが容易である。第2に、特定の構成がイメージ処理光学アルゴリズムの実行に適したものとなったら、さまざまなノードは、実装の自由度を保持しながら、非常に高い効率を持ち、それに対応して待ち時間が短縮され、ASICに匹敵するほどである。さらに、本発明は、また、IC面積と消費電力をかなり節減する実装も可能である。
前記のことから、多数のバリエーションおよび修正が、本発明の新規性のある概念の精神と範囲から逸脱することなく、実施することが可能であることがわかる。本明細書で例示している特定の方法および装置に関する制限はいっさい意図しておらず、またそのように推論されることはないことは理解されるであろう。もちろん、付属の請求項は、請求項の範囲内に収まるそのようなすべての修正を対象とするものとする。
本発明による第1の装置実施形態の例を示すブロック図である。 データ・フロー・グラフの例を示す概略図である。 再構成可能なマトリックス(またはノード)、複数の計算ユニット、および複数の計算要素を示すブロック図である。 再構成可能なマトリックスの計算ユニットを詳しく示すブロック図である。 計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。 計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。 計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。 計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。 計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。 複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。 複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。 複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。 複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。 複数の固定された計算要素を備える適応型論理プロセッサ計算ユニットの例を詳しく示すブロック図である。 固定された計算要素を備える適応型論理プロセッサ計算ユニットのコア・セルの例を詳しく示すブロック図である。 適応型論理プロセッサ計算ユニットのコア・セルの固定された計算要素の例を詳しく示すブロック図である。 本発明による第2の装置実施形態の例を示すブロック図である。 本発明による第1のシステム実施形態の例を示すブロック図である。 本発明による経路選択要素を含むノード象限の例を示すブロック図である。 本発明によるネットワーク相互接続の例を示すブロック図である。 本発明によるデータ構造実施形態の例を示すブロック図である。 本発明による第2のシステム実施形態の例を示すブロック図である。 本発明によるデジタル・カメラの例を示すブロック図である。 本発明によるデジタル・カメラの例を示す透視図である。 本発明によるファクシミリ、スキャナ、またはコピー機の例を示すブロック図である。

Claims (26)

  1. デジタル・イメージ情報入力装置と、
    処理済みのデジタル・イメージを生成するために、デジタル・イメージ情報を処理する複数の異成分からなる計算ユニットと、
    前記複数の計算ユニットと前記デジタル・イメージ情報入力装置に接続された相互接続ネットワークとを含むデジタル・イメージ処理装置であって、
    前記複数の異成分からなる計算ユニットは、
    それぞれが単純な計算のためのアルゴリズム、データ入力部及びデータ出力部を含む第1の複数の計算要素からなる第1のアーキテクチャを備えた第1の計算ユニット、及び、
    それぞれがデジタル信号処理のためのアルゴリズム・ロジック、データ入力部及びデータ出力部を含む第2の複数の計算要素からなる第2のデジタル信号処理アーキテクチャを備えた第2の計算ユニットを有し、
    前記相互接続ネットワークは、
    前記複数の異成分からなる計算ユニットへデジタル・イメージ情報を提供し、
    少なくとも第1の複数の計算要素間の相互接続を構成するための構成情報に応じ、及びそれと同時に、第2の複数の計算要素間の相互接続を構成するための別の構成情報に応じて、前記デジタル・イメージ情報に対して第1のイメージ処理機能を実行するように、前記複数の異成分からなる計算ユニットを構成し、そして、
    少なくとも前記第1の複数の計算要素間の相互接続を再構成するための構成情報に応じて、前記デジタル・イメージ情報に対して、前記第1のイメージ処理機能と異なる第2のイメージ処理機能を実行するように、前記複数の異成分からなる計算ユニットを再構成する、ことを特徴とするデジタル・イメージ処理装置
  2. さらに、
    物体像を光学センサに送ることができる焦点合わせ手段を備える請求項1に記載のデジタル・イメージ処理装置。
  3. 焦点合わせ手段は焦点合わせアセンブリを備え、焦点合わせアセンブリはさらに、レンズ、シャッター、絞り、および焦点合わせモータを備える請求項2に記載のデジタル・イメージ処理装置。
  4. 光学センサは、電荷結合素子(CCD)、電荷注入素子(CID)、光学相補型金属酸化シリコン(CMOS)アレイ、光学バイポーラ接合型トランジスタ(BJT)アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイを含む複数の光学センサのうちの少なくとも1つである請求項1に記載のデジタル・イメージ処理装置。
  5. さらに、
    相互接続ネットワークに結合され、処理済みデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェースと、
    アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるファインダ画面を備える請求項1に記載のデジタル・イメージ処理装置。
  6. さらに、
    相互接続ネットワークに結合され、処理済みデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェースと、
    アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートとを備える請求項1に記載のデジタル・イメージ処理装置。
  7. さらに、
    相互接続ネットワークに結合可能であり、処理済みデジタル・イメージを格納することができる第1のメモリを備える請求項1に記載のデジタル・イメージ処理装置。
  8. 選択的に取り外し可能なフラッシュ・メモリである第2のメモリをさらに含む、請求項7に記載のデジタル・イメージ処理装置。
  9. さらに、
    相互接続ネットワークに結合され、第1の構成情報および第2の構成情報を格納することができる第2のメモリを備える請求項7に記載のデジタル・イメージ処理装置。
  10. 第2のメモリは同期ダイナミック・ランダム・アクセス・メモリ(SDRAM)である請求項9に記載のデジタル・イメージ処理装置。
  11. 第1のメモリおよび第2のメモリは、フラッシュ・メモリ、DRAM、SRAM、SDRAM、FeRAM、MRAM、ROM、EPROM、およびE2PROMを含む複数のメモリ・タイプのうちの少なくとも1つである請求項9に記載のデジタル・イメージ処理装置。
  12. さらに、
    相互接続ネットワークに結合され、処理済みデジタル・イメージを出力することができるデジタル出力ポートを備える請求項1に記載のデジタル・イメージ処理装置。
  13. 処理済みデジタル・イメージは、複数の処理済みデジタル・イメージ・データ・パケットとして供給される請求項1に記載のデジタル・イメージ処理装置。
  14. さらに、
    相互接続ネットワークに結合され、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができるデジタル出力インターフェースを備える請求項13に記載のデジタル・イメージ処理装置。
  15. デジタル・イメージ情報は、複数のデジタル・イメージ情報データ・パケットとして供給される請求項1に記載のデジタル・イメージ処理装置。
  16. さらに、
    物体からの反射で物体像を形成する光を供給することができる光源を備える請求項1に記載のデジタル・イメージ処理装置。
  17. さらに、
    相互接続ネットワークに結合され、処理済みデジタル・イメージを有形の媒体に印刷することができるプリンタを備える請求項1に記載のデジタル・イメージ処理装置。
  18. さらに、
    相互接続ネットワークに結合され、処理済みデジタル・イメージを有形の媒体に転送することができる乾式コピー機を備える請求項1に記載のデジタル・イメージ処理装置。
  19. さらに、
    相互接続ネットワークに結合され、処理済みデジタル・イメージを離れた場所に送信することができるデータ送信器を備える請求項1に記載のデジタル・イメージ処理装置。
  20. データ送信器は、アナログ(音声帯域)モデム、デジタル・モデム、デジタル加入者回線モデム、およびケーブル・モデムの複数のデータ送信器のうちの少なくとも1つである請求項18に記載のデジタル・イメージ処理装置。
  21. 複数のイメージ処理機能は、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理、メディアン・フィルタ処理、局所重み付きメディアン・フィルタ処理、中心重み付きメディアン・フィルタ処理、ベクトル重み付きメディアン・フィルタ処理、マルチチャネル・イメージ回復、マルチフレーム・イメージ復元、反復イメージ復元、動き検出、動き推定、ローパス・フィルタ処理、マルチレート・フィルタ処理、ウェーブレット・ベースのマルチレート・フィルタ処理、オートフォーカス、コントラスト促進、ぼやけ除去などの機能うちの少なくとも2つを含む請求項1に記載のデジタル・イメージ処理装置。
  22. 第1の固定されたアーキテクチャおよび第2の固定されたアーキテクチャは、線形フィルタ処理、非線形フィルタ処理、メモリ、加算、乗算、複素乗算、減算、同期化、キュー処理、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの対応する機能のうち少なくとも2つを含む複数の特定のアーキテクチャから選択される請求項に記載のデジタル・イメージ処理装置。
  23. 検出イメージは、物体像の輝度および色の変化に対応する電気的信号を含む請求項1に記載のデジタル・イメージ処理装置。
  24. 少なくとも1つの集積回路として実現される請求項1に記載のデジタル・イメージ処理装置。
  25. デジタル・カメラとして実現される請求項1に記載のデジタル・イメージ処理装置。
  26. スキャナ、プリンタ、または乾式コピー機のうち1つまたは複数として実現される請求項1に記載のデジタル・イメージ処理装置。
JP2004160636A 2003-06-25 2004-05-31 デジタル・イメージ処理装置 Expired - Fee Related JP4495522B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/606,031 US7609297B2 (en) 2003-06-25 2003-06-25 Configurable hardware based digital imaging apparatus

Publications (3)

Publication Number Publication Date
JP2005020722A JP2005020722A (ja) 2005-01-20
JP2005020722A5 JP2005020722A5 (ja) 2007-09-06
JP4495522B2 true JP4495522B2 (ja) 2010-07-07

Family

ID=33539966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004160636A Expired - Fee Related JP4495522B2 (ja) 2003-06-25 2004-05-31 デジタル・イメージ処理装置

Country Status (2)

Country Link
US (2) US7609297B2 (ja)
JP (1) JP4495522B2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937274B2 (en) * 2001-12-17 2005-08-30 Motorola, Inc. Dynamic range compression of output channel data of an image sensor
US7403981B2 (en) * 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US8150907B2 (en) 2003-05-29 2012-04-03 Brother Kogyo Kabushiki Kaisha Composite service providing system for a plurality of communicatively connected electronic devices
US9071279B2 (en) * 2004-05-18 2015-06-30 Nxp, B.V. Turbo decoder input reordering
JP4583289B2 (ja) * 2005-10-31 2010-11-17 富士通株式会社 実行フロー生成プログラム、実行フロー生成方法、および実行フロー生成装置
US20070106720A1 (en) * 2005-11-10 2007-05-10 Samsung Electronics Co., Ltd. Reconfigurable signal processor architecture using multiple complex multiply-accumulate units
US20070165961A1 (en) * 2006-01-13 2007-07-19 Juwei Lu Method And Apparatus For Reducing Motion Blur In An Image
US7779099B2 (en) * 2006-03-16 2010-08-17 Us Beverage Net Inc. Distributed intelligent systems and methods therefor
US20070237527A1 (en) * 2006-03-31 2007-10-11 Sanjay Dabral Optical debug mechanism
US7778484B2 (en) * 2007-01-05 2010-08-17 Seiko Epson Corporation Method and apparatus for reducing noise in an image using wavelet decomposition
US7843611B2 (en) 2007-07-18 2010-11-30 Kuwait University High speed flatbed scanner comprising digital image-capture module with two-dimensional optical image photo-sensor or digital camera
US8144944B2 (en) * 2007-08-14 2012-03-27 Olympus Corporation Image sharing system and method
US7823092B1 (en) * 2007-11-23 2010-10-26 Altera Corporation Method and apparatus for implementing a parameterizable filter block with an electronic design automation tool
US20090135288A1 (en) * 2007-11-26 2009-05-28 San-Woei Shyu Optical scanning module with linear CMOS image
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8031952B2 (en) * 2008-04-21 2011-10-04 Broadcom Corporation Method and apparatus for optimizing memory usage in image processing
US8325801B2 (en) 2008-08-15 2012-12-04 Mediatek Inc. Adaptive restoration for video coding
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US8101902B2 (en) 2008-11-07 2012-01-24 Ifm Electronic Gmbh Light grid having photoreceivers and programmable logic unit
US8506799B2 (en) * 2009-09-09 2013-08-13 ClearCorp Suspended particle characterization system for a water processing facility
US20110156886A1 (en) * 2009-12-31 2011-06-30 Clinkscales William L Paging interface adapter
US8558889B2 (en) * 2010-04-26 2013-10-15 Sensormatic Electronics, LLC Method and system for security system tampering detection
KR101103624B1 (ko) * 2010-05-18 2012-01-09 엠텍비젼 주식회사 이미지 처리 장치, 이미지 신호 처리 칩 및 isp 체인 구성 방법
JP2012120057A (ja) * 2010-12-02 2012-06-21 Sony Corp 画像処理装置、および画像処理方法、並びにプログラム
JP5815390B2 (ja) 2011-12-08 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置及び画像処理方法
US8984344B2 (en) * 2012-02-09 2015-03-17 Freescale Semiconductor, Inc. Stack-based trace message generation for debug and device thereof
US9836433B1 (en) * 2012-04-02 2017-12-05 Rockwell Collins, Inc. Image processing using multiprocessor discrete wavelet transform
US11003459B2 (en) 2013-03-15 2021-05-11 Intel Corporation Method for implementing a line speed interconnect structure
US9753691B2 (en) 2013-03-15 2017-09-05 Intel Corporation Method for a stage optimized high speed adder
CN108255521B (zh) * 2013-03-15 2022-05-31 英特尔公司 一种用于实现线路速度互连结构的方法
US20140348181A1 (en) * 2013-05-22 2014-11-27 Calxeda, Inc. Time synchronization between nodes of a switched interconnect fabric
US10908946B2 (en) * 2016-12-30 2021-02-02 Texas Instruments Incorporated Scheduling of external block based data processing tasks on a hardware thread scheduler
KR102482896B1 (ko) 2017-12-28 2022-12-30 삼성전자주식회사 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치
CN109102474A (zh) * 2018-08-09 2018-12-28 乐山师范学院 一种兼具图像增强功能的图像处理系统及方法
CN109445748B (zh) * 2018-09-28 2020-07-14 北京空间飞行器总体设计部 一种快速求取中值方法及系统
US11838659B2 (en) * 2021-11-16 2023-12-05 Pixart Imaging Inc. Image sensing system and image sensing data processing method
CN115103097B (zh) * 2022-06-17 2024-04-05 深圳市雨滴科技有限公司 一种图像处理装置、方法、计算机设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62221063A (ja) * 1986-03-13 1987-09-29 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション アレイ・プロセツサ
JPH02292678A (ja) * 1989-05-02 1990-12-04 Minolta Camera Co Ltd 撮影画像編集装置
WO1998011719A1 (fr) * 1996-09-13 1998-03-19 Hitachi, Ltd. Dispositif de prise d'image
JP2001197479A (ja) * 2000-01-13 2001-07-19 Victor Co Of Japan Ltd 差分画像処理方法および差分画像処理装置
JP2003085560A (ja) * 2001-09-07 2003-03-20 Canon Inc 信号処理回路及びパターン認識装置

Family Cites Families (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3409175A (en) 1966-11-10 1968-11-05 Thomas M. Byrne Liquid dispensing device
US3666143A (en) 1970-06-22 1972-05-30 Murray Weston Automatic fluid dispensing apparatus with manual override
USRE30301E (en) 1972-03-10 1980-06-10 The Cornelius Company Beverage mixing and dispensing apparatus
US3960298A (en) 1972-10-25 1976-06-01 The Cornelius Company Container assembly for use with a separator dispenser
US3995441A (en) 1973-08-20 1976-12-07 The Cornelius Company Beverage dispensing system
US3991911A (en) 1973-09-07 1976-11-16 American Beverage Control Automatic drink dispensing apparatus having programming means
US3949903A (en) 1973-11-07 1976-04-13 General Motors Corporation Water and beverage concentrate dispenser
US3938639A (en) * 1973-11-28 1976-02-17 The Cornelius Company Portable dispenser for mixed beverages
US3967062A (en) 1975-03-05 1976-06-29 Ncr Corporation Method and apparatus for encoding data and clock information in a self-clocking data stream
US4076145A (en) * 1976-08-09 1978-02-28 The Cornelius Company Method and apparatus for dispensing a beverage
US4143793A (en) * 1977-06-13 1979-03-13 The Cornelius Company Apparatus and method for dispensing a carbonated beverage
US4377246A (en) * 1977-06-13 1983-03-22 The Cornelius Company Apparatus for dispensing a carbonated beverage
US4252253A (en) * 1978-02-21 1981-02-24 Mcneil Corporation Drink dispenser having central control of plural dispensing stations
US4174872A (en) 1978-04-10 1979-11-20 The Cornelius Company Beverage dispensing machine and cabinet therefor
US4181242A (en) * 1978-05-30 1980-01-01 The Cornelius Company Method and apparatus for dispensing a beverage
US4172669A (en) 1978-07-27 1979-10-30 The Cornelius Company Mixing and dispensing machine
US4237536A (en) 1978-10-12 1980-12-02 M.R.E. Enterprises, Inc. System for indicating and controlling dispensing of beverages
US4302775A (en) 1978-12-15 1981-11-24 Compression Labs, Inc. Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback
US4413752A (en) 1979-01-04 1983-11-08 The Cornelius Company Apparatus for dispensing a carbonated beverage
US4222972A (en) 1979-01-29 1980-09-16 Caldwell Michael C Method and means for carbonating liquids in situ
US4218014A (en) 1979-02-21 1980-08-19 The Cornelius Company Multiple flavor post-mix beverage dispensing head
US4380046A (en) 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4523697A (en) 1979-07-11 1985-06-18 Cadbury Schweppes Limited Liquid dispensing package
USRE32179E (en) 1979-10-12 1986-06-10 The Coca-Cola Company Post-mix beverage dispensing system syrup package, valving system, and carbonator therefor
US4333587A (en) 1980-01-31 1982-06-08 The Coca-Cola Company Beverage dispenser
US4354613A (en) 1980-05-15 1982-10-19 Trafalgar Industries, Inc. Microprocessor based vending apparatus
US4393468A (en) 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
US4560089A (en) 1981-05-11 1985-12-24 The Cornelius Company Apparatus for dispensing a carbonated beverage
JPS5916053A (ja) * 1982-07-16 1984-01-27 Nec Corp パイプライン演算装置
US4936488A (en) 1982-09-07 1990-06-26 The Cornelius Company Beverage dispensing valve
US5129549A (en) 1982-09-07 1992-07-14 Imi Cornelius Inc. Beverage dispensing valve
US4549675A (en) 1982-09-07 1985-10-29 The Cornelius Co. Beverage dispensing valve
US4509690A (en) 1982-12-06 1985-04-09 The Cornelius Company Carbonated beverage mixing nozzle for a dispenser
US4466342A (en) 1983-02-22 1984-08-21 General Foods Corporation Carbonation chamber with sparger for beverage carbonation
US4475448A (en) 1983-02-22 1984-10-09 General Foods Corporation Reactant/gas separation means for beverage carbonation device
US4458584A (en) 1983-02-22 1984-07-10 General Foods Corporation Beverage carbonation device
GB2137839B (en) 1983-04-09 1986-06-04 Schlumberger Measurement Digital signal processors
US4577782A (en) * 1983-05-02 1986-03-25 The Cornelius Company Beverage dispensing station
US4578799A (en) * 1983-10-05 1986-03-25 Codenoll Technology Corporation Method and apparatus for recovering data and clock information from a self-clocking data stream
US4553573A (en) 1983-10-20 1985-11-19 Pepsico Inc. Bulk syrup delivery system
US4824075A (en) 1984-02-14 1989-04-25 Walter Holzboog Tilt action dispensing valve assembly
US4870302A (en) 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4658988A (en) 1984-04-02 1987-04-21 The Cornelius Company Multiple flavor post-mix beverage dispensing apparatus
DK279985A (da) * 1984-06-25 1985-12-26 Isoworth Ltd Fremgangsmaade og apparat til carbonisering
US4694416A (en) 1985-02-25 1987-09-15 General Electric Company VLSI programmable digital signal processor
US4706216A (en) 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US4967340A (en) 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
US4713755A (en) 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US4765513A (en) 1985-08-26 1988-08-23 The Cornelius Company Post-mix beverage dispenser with nozzle
US4993604A (en) * 1985-09-13 1991-02-19 The Coca-Cola Company Low-cost post-mix beverage dispenser and syrup supply system therefor
US4711374A (en) 1985-09-13 1987-12-08 The Coca-Cola Company Low-cost post-mix beverage dispenser and syrup supply system therefor
US4747516A (en) 1985-12-23 1988-05-31 Liquid Motion Industries, Co. Soft drink maker
US4748585A (en) 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US4974643A (en) 1986-01-31 1990-12-04 The Cornelius Company Method of and apparatus for dispensing beverage into a tilted receptacle with automatic level responsive shut off
US4982876A (en) * 1986-02-10 1991-01-08 Isoworth Limited Carbonation apparatus
GB2186265B (en) * 1986-02-10 1989-11-01 Isoworth Ltd Beverage dispensing apparatus
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
US4960261A (en) 1986-03-17 1990-10-02 Isoworth Limited Gas cylinder connector
US5021947A (en) 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US4760525A (en) 1986-06-10 1988-07-26 The United States Of America As Represented By The Secretary Of The Air Force Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction
US4760544A (en) 1986-06-20 1988-07-26 Plessey Overseas Limited Arithmetic logic and shift device
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5165023A (en) 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US4766548A (en) 1987-01-02 1988-08-23 Pepsico Inc. Telelink monitoring and reporting system
US4781309A (en) 1987-02-19 1988-11-01 The Cornelius Company Dispenser with improved carbonated water manifold
US4856684A (en) 1987-04-06 1989-08-15 William Gerstung Valve for a pressurized dispensing can containing flowable materials
US5381546A (en) * 1987-04-13 1995-01-10 Gte Laboratories Incorporated Control process for allocating services in communications systems
US4800492A (en) * 1987-05-13 1989-01-24 The Coca-Cola Company Data logger for a post-mix beverage dispensing system
US4827426A (en) 1987-05-18 1989-05-02 The Coca-Cola Company Data acquisition and processing system for post-mix beverage dispensers
US4850269A (en) 1987-06-26 1989-07-25 Aquatec, Inc. Low pressure, high efficiency carbonator and method
GB2210441B (en) 1987-10-01 1992-03-04 Isoworth Ltd Pressure vessel
US4921315A (en) 1987-12-21 1990-05-01 Whirlpool Corporation Refrigerator door structure
US4905231A (en) * 1988-05-03 1990-02-27 American Telephone And Telegraph Company, At&T Bell Laboratories Multi-media virtual circuit
US4932564A (en) 1988-05-20 1990-06-12 The Cornelius Company Multiple flavor post-mix beverage dispensing head
US4901887A (en) * 1988-08-08 1990-02-20 Burton John W Beverage dispensing system
DE3829831A1 (de) 1988-09-02 1990-03-15 Hansa Metallwerke Ag Einrichtung zum zapfen einer vorwaehlbaren fluessigkeitsmenge, insbesondere wassermenge
US4930666A (en) 1988-10-28 1990-06-05 The Coca-Cola Company Juice dispensing system for a refrigerator door
US6986142B1 (en) * 1989-05-04 2006-01-10 Texas Instruments Incorporated Microphone/speaker system with context switching in processor
US5240144A (en) 1989-01-06 1993-08-31 Joseph Feldman Beverage dispensing apparatus
US5090015A (en) * 1989-02-06 1992-02-18 Motorola, Inc. Programmable array logic self-checking system
US5007560A (en) 1989-03-01 1991-04-16 Sassak John J Beer dispensing and monitoring method and apparatus
US5261099A (en) 1989-08-24 1993-11-09 International Business Machines Corp. Synchronous communications scheduler allowing transient computing overloads using a request buffer
US5193151A (en) 1989-08-30 1993-03-09 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
GB2236736A (en) 1989-09-27 1991-04-17 Isoworth Ltd Carbonation apparatus for dispensing drinks, with plural carbonation chambers
US4961533A (en) 1989-09-27 1990-10-09 Viac Inc. Inventory control system
US5044171A (en) 1989-11-06 1991-09-03 Eli Farkas Counter with integral carbonated beverage dispenser
EP0517856B1 (en) * 1990-02-27 1995-07-12 The Coca-Cola Company Multiple fluid space dispenser and monitor
US5099418A (en) * 1990-06-14 1992-03-24 Hughes Aircraft Company Distributed data driven process
US5203474A (en) 1990-06-16 1993-04-20 Alco Standard Corporation Beverage dispensing nozzle
US5190189A (en) 1990-10-30 1993-03-02 Imi Cornelius Inc. Low height beverage dispensing apparatus
US5218240A (en) 1990-11-02 1993-06-08 Concurrent Logic, Inc. Programmable logic cell and array with bus repeaters
US5245227A (en) 1990-11-02 1993-09-14 Atmel Corporation Versatile programmable logic cell for use in configurable logic arrays
US5144166A (en) 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5156301A (en) 1990-12-17 1992-10-20 Imi Cornelius Inc. Constant ratio post-mix beverage dispensing valve
US5202993A (en) 1991-02-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for cost-based heuristic instruction scheduling
US5156871A (en) 1991-05-01 1992-10-20 Imi Cornelius Inc. Low cost beverage carbonating apparatus and method
US5193718A (en) 1991-06-25 1993-03-16 Imi Cornelius Inc. Quick electronic disconnect for a beverage dispensing valve
WO1994009595A1 (en) * 1991-09-20 1994-04-28 Shaw Venson M Method and apparatus including system architecture for multimedia communications
US5253192A (en) 1991-11-14 1993-10-12 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Signal processing apparatus and method for iteratively determining Arithmetic Fourier Transform
US5278986A (en) * 1991-12-13 1994-01-11 Thinking Machines Corporation System and method for compiling a source code supporting data parallel variables
US5269442A (en) 1992-05-22 1993-12-14 The Cornelius Company Nozzle for a beverage dispensing valve
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5603043A (en) * 1992-11-05 1997-02-11 Giga Operations Corporation System for compiling algorithmic language source code for implementation in programmable hardware
US5263509A (en) 1992-11-12 1993-11-23 General Electric Company Refrigerator with door mounted dispenser supply mechanism
US5392960A (en) * 1992-11-13 1995-02-28 Wilshire Partners Postmix beverage dispenser and a method for making a beverage dispenser
US6192255B1 (en) * 1992-12-15 2001-02-20 Texas Instruments Incorporated Communication system and methods for enhanced information transfer
US5280711A (en) * 1993-02-25 1994-01-25 Imi Cornelius Inc. Low cost beverage dispensing apparatus
US5379343A (en) * 1993-02-26 1995-01-03 Motorola, Inc. Detection of unauthorized use of software applications in communication units
US5483658A (en) * 1993-02-26 1996-01-09 Grube; Gary W. Detection of unauthorized use of software applications in processing devices
JPH08507889A (ja) * 1993-03-15 1996-08-20 シーメンス アクチエンゲゼルシヤフト スーパースカラマイクロプロセッサ用のプログラムから並行的に処理可能な命令グループを機械的に生成する方法
US5870427A (en) * 1993-04-14 1999-02-09 Qualcomm Incorporated Method for multi-mode handoff using preliminary time alignment of a mobile station operating in analog mode
US5388062A (en) * 1993-05-06 1995-02-07 Thomson Consumer Electronics, Inc. Reconfigurable programmable digital filter architecture useful in communication receiver
US5517667A (en) * 1993-06-14 1996-05-14 Motorola, Inc. Neural network that does not require repetitive training
JP3159345B2 (ja) * 1993-07-02 2001-04-23 日本電気株式会社 パイプライン演算処理装置
CA2126265A1 (en) * 1993-09-27 1995-03-28 Michael Robert Cantone System for synthesizing field programmable gate array implementations from high level circuit descriptions
US5862961A (en) * 1993-10-26 1999-01-26 Imi Cornelius Inc. Connection device for dispensing fluid from a bottle
US5490165A (en) * 1993-10-28 1996-02-06 Qualcomm Incorporated Demodulation element assignment in a system capable of receiving multiple signals
US5721854A (en) * 1993-11-02 1998-02-24 International Business Machines Corporation Method and apparatus for dynamic conversion of computer instructions
US5491823A (en) * 1994-01-25 1996-02-13 Silicon Graphics, Inc. Loop scheduler
JP3525353B2 (ja) * 1994-09-28 2004-05-10 株式会社リコー デジタル電子スチル・カメラ
US5600810A (en) * 1994-12-09 1997-02-04 Mitsubishi Electric Information Technology Center America, Inc. Scaleable very long instruction word processor with parallelism matching
US5602833A (en) * 1994-12-19 1997-02-11 Qualcomm Incorporated Method and apparatus for using Walsh shift keying in a spread spectrum communication system
KR0146100B1 (ko) * 1995-01-07 1998-09-15 이헌조 가전기기의 실사용상태 정보수집 및 분석장치
US5706191A (en) * 1995-01-19 1998-01-06 Gas Research Institute Appliance interface apparatus and automated residence management system
US6021186A (en) * 1995-04-17 2000-02-01 Ricoh Company Ltd. Automatic capture and processing of facsimile transmissions
US5842004A (en) * 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US5734582A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Method and system for layout and schematic generation for heterogeneous arrays
US5706976A (en) * 1995-12-21 1998-01-13 Purkey; Jay Floyd Vending machine inventory control device
US6510510B1 (en) * 1996-01-25 2003-01-21 Analog Devices, Inc. Digital signal processor having distributed register file
US6393046B1 (en) * 1996-04-25 2002-05-21 Sirf Technology, Inc. Spread spectrum receiver with multi-bit correlator
US6346824B1 (en) * 1996-04-09 2002-02-12 Xilinx, Inc. Dedicated function fabric for use in field programmable gate arrays
US6181981B1 (en) * 1996-05-15 2001-01-30 Marconi Communications Limited Apparatus and method for improved vending machine inventory maintenance
US6175854B1 (en) * 1996-06-11 2001-01-16 Ameritech Services, Inc. Computer system architecture and method for multi-user, real-time applications
US6192388B1 (en) * 1996-06-20 2001-02-20 Avid Technology, Inc. Detecting available computers to participate in computationally complex distributed processing problem
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6021492A (en) * 1996-10-09 2000-02-01 Hewlett-Packard Company Software metering management of remote computing devices
US6016395A (en) * 1996-10-18 2000-01-18 Samsung Electronics Co., Ltd. Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor
US5860021A (en) * 1997-04-24 1999-01-12 Klingman; Edwin E. Single chip microcontroller having down-loadable memory organization supporting "shadow" personality, optimized for bi-directional data transfers over a communication channel
FI105251B (fi) * 1997-06-18 2000-06-30 Nokia Mobile Phones Ltd Menetelmä aikajakoisen solukkoverkon tukiasemien tunnistamiseksi matkaviestimessä ja matkaviestin
US6195788B1 (en) * 1997-10-17 2001-02-27 Altera Corporation Mapping heterogeneous logic elements in a programmable logic device
US5873045A (en) * 1997-10-29 1999-02-16 International Business Machines Corporation Mobile client computer with radio frequency transceiver
US6185418B1 (en) * 1997-11-07 2001-02-06 Lucent Technologies Inc. Adaptive digital radio communication system
US6173389B1 (en) * 1997-12-04 2001-01-09 Billions Of Operations Per Second, Inc. Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US6018783A (en) * 1997-12-12 2000-01-25 Advanced Micro Devices, Inc. Register access controller which prevents simultaneous coupling of more than one register to a bus interface
US6192070B1 (en) * 1998-01-02 2001-02-20 Mitsubishi Electric Research Laboratories, Inc. Universal modem for digital video, audio and data communications
US6691148B1 (en) * 1998-03-13 2004-02-10 Verizon Corporate Services Group Inc. Framework for providing quality of service requirements in a distributed object-oriented computer system
US6175892B1 (en) * 1998-06-19 2001-01-16 Hitachi America. Ltd. Registers and methods for accessing registers for use in a single instruction multiple data system
GB9818377D0 (en) * 1998-08-21 1998-10-21 Sgs Thomson Microelectronics An integrated circuit with multiple processing cores
JP3033575B1 (ja) * 1999-02-17 2000-04-17 日本電気株式会社 画像処理装置
US6718541B2 (en) * 1999-02-17 2004-04-06 Elbrus International Limited Register economy heuristic for a cycle driven multiple issue instruction scheduler
US6510138B1 (en) * 1999-02-25 2003-01-21 Fairchild Semiconductor Corporation Network switch with head of line input buffer queue clearing
US6349394B1 (en) * 1999-03-31 2002-02-19 International Business Machines Corporation Performance monitoring in a NUMA computer
KR100761328B1 (ko) * 1999-05-07 2007-09-27 모픽스 테크놀로지 아이엔씨 헤테로지니어스 프로그래머블 게이트 어레이
US6347346B1 (en) * 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US6507211B1 (en) * 1999-07-29 2003-01-14 Xilinx, Inc. Programmable logic device capable of preserving user data during partial or complete reconfiguration
US6507947B1 (en) * 1999-08-20 2003-01-14 Hewlett-Packard Company Programmatic synthesis of processor element arrays
US6694380B1 (en) * 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
AU2611201A (en) * 1999-12-30 2001-07-16 Morphics Technology, Inc. Method and apparatus to support multi standard, multi service base-stations for wireless voice and data networks
US6778212B1 (en) * 2000-02-22 2004-08-17 Pixim, Inc. Digital image sensor with on -chip programmable logic
US7181542B2 (en) * 2000-04-12 2007-02-20 Corente, Inc. Method and system for managing and configuring virtual private networks
US6691143B2 (en) * 2000-05-11 2004-02-10 Cyberguard Corporation Accelerated montgomery multiplication using plural multipliers
US20020010848A1 (en) * 2000-05-29 2002-01-24 Shoichi Kamano Data processing system
US6675265B2 (en) * 2000-06-10 2004-01-06 Hewlett-Packard Development Company, L.P. Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
US6684319B1 (en) * 2000-06-30 2004-01-27 Conexant Systems, Inc. System for efficient operation of a very long instruction word digital signal processor
US7003015B2 (en) * 2000-07-31 2006-02-21 Infineon Technologies Ag Apparatus and method for configurable multi-dwell search engine for spread spectrum applications
GB0019341D0 (en) * 2000-08-08 2000-09-27 Easics Nv System-on-chip solutions
JP3473695B2 (ja) * 2000-08-30 2003-12-08 Necエレクトロニクス株式会社 W−cdmaシステムにおけるセルサーチ方法及び回路
US6538470B1 (en) * 2000-09-18 2003-03-25 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US20030012270A1 (en) * 2000-10-06 2003-01-16 Changming Zhou Receiver
JP3415579B2 (ja) * 2000-11-09 2003-06-09 松下電器産業株式会社 マッチドフィルタおよび相関検出演算方法
US6753873B2 (en) * 2001-01-31 2004-06-22 General Electric Company Shared memory control between detector framing node and processor
US6925167B2 (en) * 2001-02-01 2005-08-02 Estech Systems, Inc. Service observing in a voice over IP telephone system
US7225279B2 (en) * 2002-06-25 2007-05-29 Nvidia Corporation Data distributor in a computation unit forwarding network data to select components in respective communication method type
US7653710B2 (en) * 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
WO2002077854A1 (en) * 2001-03-26 2002-10-03 Azurn Networks Inc. Unified xml voice and data media converging switch and application delivery system
US7969431B2 (en) * 2001-06-29 2011-06-28 National Instruments Corporation Graphical program node for generating a measurement program
US20030023830A1 (en) * 2001-07-25 2003-01-30 Hogenauer Eugene B. Method and system for encoding instructions for a VLIW that reduces instruction memory requirements
US7191313B2 (en) * 2001-08-28 2007-03-13 Sony Corporation Microprocessor
US6986021B2 (en) * 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US20040015970A1 (en) * 2002-03-06 2004-01-22 Scheuermann W. James Method and system for data flow control of execution nodes of an adaptive computing engine (ACE)
US6988139B1 (en) * 2002-04-26 2006-01-17 Microsoft Corporation Distributed computing of a job corresponding to a plurality of predefined tasks
US6859434B2 (en) * 2002-10-01 2005-02-22 Comsys Communication & Signal Processing Ltd. Data transfer scheme in a communications system incorporating multiple processing elements
WO2004090759A2 (en) * 2003-04-03 2004-10-21 Tufts University Circuit having hardware threading
US7200837B2 (en) * 2003-08-21 2007-04-03 Qst Holdings, Llc System, method and software for static and dynamic programming and configuration of an adaptive computing architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62221063A (ja) * 1986-03-13 1987-09-29 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション アレイ・プロセツサ
JPH02292678A (ja) * 1989-05-02 1990-12-04 Minolta Camera Co Ltd 撮影画像編集装置
WO1998011719A1 (fr) * 1996-09-13 1998-03-19 Hitachi, Ltd. Dispositif de prise d'image
JP2001197479A (ja) * 2000-01-13 2001-07-19 Victor Co Of Japan Ltd 差分画像処理方法および差分画像処理装置
JP2003085560A (ja) * 2001-09-07 2003-03-20 Canon Inc 信号処理回路及びパターン認識装置

Also Published As

Publication number Publication date
US20040268096A1 (en) 2004-12-30
US20100002100A1 (en) 2010-01-07
US7609297B2 (en) 2009-10-27
JP2005020722A (ja) 2005-01-20
US7961226B2 (en) 2011-06-14

Similar Documents

Publication Publication Date Title
JP4495522B2 (ja) デジタル・イメージ処理装置
US6791611B2 (en) Dual ported memory for digital image sensor
EP2533520B1 (en) Image sensor having HDR capture capability
WO2017101451A1 (zh) 成像方法、成像装置及电子装置
US9866740B2 (en) Image sensor having multiple output ports
US20050160406A1 (en) Programmable digital image processor
CN105144699A (zh) 阈值监测的有条件重置的图像传感器
AU2016369789B2 (en) Image sensor, imaging device, mobile terminal and imaging method
KR20150098094A (ko) 복수의 이미지 신호 프로세서들을 포함하는 이미지 처리 장치 및 이미지 처리 방법
Schmitz et al. A 1000 frames/s vision chip using scalable pixel-neighborhood-level parallel processing
WO2010037570A1 (fr) Dispositif de traitement en parallele d'un flux de donnees
JP7179071B2 (ja) 画像走査装置、画像走査光信号受信の制御方法及び装置
JP2024079754A (ja) 撮像素子、撮像装置、撮像方法及びプログラム
WO2024140724A1 (zh) 图像传感器、摄像头模组及电子设备
Khalifat et al. A dynamic partial reconfiguration design for camera systems
WO2011121165A1 (en) Image sensor optimization
US8610790B2 (en) Programmable data readout for an optical sensor
Cheng et al. Coarse-grained reconfigurable image stream processor architecture for high-definition cameras and camcorders
Le Hir et al. Distributed mixed-signal architecture for programmable smart image sensors
Schmitz et al. A programmable vision chip with pixel-neighborhood level parallel processing
CN115361533B (zh) 图像数据处理方法和电子设备
Dias et al. Reconfigurable architectures and processors for real-time video motion estimation
Shahnovich Real-Time Wide Dynamic Range Capture and Display System Based on Mantissa-Exponent Representation
Chary et al. Intelligent and Efficient Video Embedded Memory Software.
Kao et al. Reusable embedded software platform for versatile single-sensor digital cameras

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070530

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091102

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100203

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees