(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6106779
(24)【登録日】2017年3月10日
(45)【発行日】2017年4月5日
(54)【発明の名称】動的に再構成可能なパイプライン型プリプロセッサ
(51)【国際特許分類】
G06F 15/78 20060101AFI20170327BHJP
G06F 15/173 20060101ALI20170327BHJP
G06F 11/00 20060101ALI20170327BHJP
G06F 7/57 20060101ALI20170327BHJP
G06F 13/36 20060101ALI20170327BHJP
【FI】
G06F15/78 560
G06F15/173 673
G06F9/06 630A
G06F7/57 204
G06F13/36 310E
G06F13/36 320Z
【請求項の数】21
【外国語出願】
【全頁数】19
(21)【出願番号】特願2016-42460(P2016-42460)
(22)【出願日】2016年3月4日
(62)【分割の表示】特願2014-155142(P2014-155142)の分割
【原出願日】2012年10月14日
(65)【公開番号】特開2016-167809(P2016-167809A)
(43)【公開日】2016年9月15日
【審査請求日】2016年4月1日
(31)【優先権主張番号】61/547,442
(32)【優先日】2011年10月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】501144003
【氏名又は名称】アナログ・デバイシズ・インコーポレーテッド
(74)【代理人】
【識別番号】100102842
【弁理士】
【氏名又は名称】葛和 清司
(72)【発明者】
【氏名】ラオ,サティシュチャンドラ,ジー.
(72)【発明者】
【氏名】マイヤー−パンサック,ミヒャエル
(72)【発明者】
【氏名】クスタッシャー,ベノ
(72)【発明者】
【氏名】カザイール,スリージス
(72)【発明者】
【氏名】ムスサミー,ゴクル
(72)【発明者】
【氏名】ブッシー,ロバート
(72)【発明者】
【氏名】カラナム,ゴパール グドゥール
(72)【発明者】
【氏名】サンジーヴ,プラヴィーン
(72)【発明者】
【氏名】ラーナー,ボリス
【審査官】
佐田 宏史
(56)【参考文献】
【文献】
特開平7−160249(JP,A)
【文献】
特開2003−050258(JP,A)
【文献】
特開2007−257549(JP,A)
【文献】
特開2010−213993(JP,A)
【文献】
特開2010−009247(JP,A)
【文献】
特開2008−140601(JP,A)
【文献】
国際公開第95/009390(WO,A1)
【文献】
特開2011−186850(JP,A)
【文献】
特開2006−302132(JP,A)
【文献】
特開2007−128124(JP,A)
【文献】
特開2001−236496(JP,A)
【文献】
特開2007−274215(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 7/57,9/38,9/46,11/00
G06F 13/36,15/173,15/78
G06T 1/20
(57)【特許請求の範囲】
【請求項1】
パイプライン型プリプロセッサ中でモジュールを構成するためのシステムであって、
第1の制御信号をプロセッサから受信するための第1の入力ポートと、
第2の制御信号をメモリから受信するための第2の入力ポートと、
前記第1の制御信号と前記第2の制御信号との間の矛盾を解決するための調停ユニットと、
前記矛盾を解決する前記調停ユニットの成果に従って前記第1の制御信号および前記第2の制御信号を復号化して、それから誘導された構成パラメータを前記モジュールに適用するためのコントローラと、
を備える、システム。
【請求項2】
前記第1の制御信号が、前記モジュールによって処理される画像データ上で第1の画像処理アルゴリズムを実行するために、少なくとも1つの前記モジュールをイネーブルする構成パラメータを備え、
前記第2の制御信号が、前記モジュールによって処理される画像データ上で第2の画像処理アルゴリズムを実行するために、前記少なくとも1つの前記モジュールをイネーブルする構成パラメータを備え、および
前記構成パラメータを適用することが、前記矛盾を解決する前記調停ユニットの成果に従って前記第1の画像処理アルゴリズムと前記第2の画像処理アルゴリズムのうち1つを実行するために前記少なくとも1つの前記モジュールを構成することを備える、
請求項1に記載のシステム。
【請求項3】
前記第1の制御信号を復号化するためのインターフェースを更に備える、請求項1または2に記載のシステム。
【請求項4】
前記インターフェースが、アドバンストペリフェラルバス(「APB」)インターフェースである、請求項1〜3のいずれか一項に記載のシステム。
【請求項5】
前記第1の制御信号が、メモリマップドレジスタ(「MMR」)入力である、請求項1〜4のいずれか一項に記載のシステム。
【請求項6】
前記第1の制御信号が前記モジュールの第1のサブ集合を制御し、同時に、前記第2の制御信号が前記モジュールの第2のサブ集合を制御する、請求項1〜5のいずれか一項に記載のシステム。
【請求項7】
前記モジュールのそれぞれが、前記第1および第2の制御信号の双方によって制御される、請求項1〜6のいずれか一項に記載のシステム。
【請求項8】
前記復号化された第1および第2の制御信号のうちの一方を受信するためのシャドーレジスタを更に備える、請求項1〜7のいずれか一項に記載のシステム。
【請求項9】
前記シャドーレジスタが、少なくとも1つのモジュール中にアプリケーションレジスタを書き込み、これにより前記構成パラメータを前記モジュールに適用する、請求項8に記載のシステム。
【請求項10】
前記調停ユニットが、矛盾が発生したら前記第2の制御信号を停止するように構成される、請求項1〜9のいずれか一項に記載のシステム。
【請求項11】
少なくとも1つの画像処理モジュールを構成するための前記コントローラが、前記第1の制御信号と前記第2の制御信号から誘導された前記構成パラメータを、前記矛盾を解決する前記調停ユニットの成果に従って前記少なくとも1つの画像処理モジュールのパイプライン段階のアプリケーションレジスタに適用するための前記コントローラを備える、請求項2に記載のシステム。
【請求項12】
前記構成パラメータを適用するための前記コントローラが、前記矛盾を解決する前記調停ユニットの成果に従って、前記第1の制御信号と前記第2の制御信号から誘導された構成パラメータをシャドーレジスタに提供するための、および、前記シャドーレジスタからの前記構成パラメータを前記アプリケーションレジスタに提供するための、前記コントローラを備える、請求項11に記載のシステム。
【請求項13】
前記矛盾を解決する前記調停ユニットの成果に従って、前記第1の制御信号と前記第2の制御信号から誘導された構成パラメータを前記シャドーレジスタに提供することが、前記第2の画像処理アルゴリズムを実行するために前記少なくとも1つの画像処理モジュールをイネーブルする構成パラメータでシャドーレジスタをロードすることを備え、
前記シャドーレジスタから前記アプリケーションレジスタに前記構成パラメータを提供することが、前記シャドーレジスタをアンロードすることを備え、および
前記シャドーレジスタのロード中またはアンロード中は、前記コントローラが、前記第1の制御信号を介して前記少なくとも1つの画像処理モジュールの制御を禁止する、
請求項12に記載のシステム。
【請求項14】
画像フレーム境界が前記少なくとも1つの画像処理モジュールの前記パイプライン段階を通って伝播するときに、前記構成パラメータが前記少なくとも1つの画像処理モジュールに適用される、請求項11に記載のシステム。
【請求項15】
前記第1の画像処理アルゴリズムを実行するために前記少なくとも1つの画像処理モジュールをイネーブルする前記構成パラメータが、前記少なくとも1つの画像処理モジュールによって実行されるアルゴリズム処理の係数の第1の集合を備え、および
前記第2の画像処理アルゴリズムを実行するために前記少なくとも1つの画像処理モジュールをイネーブルする前記構成パラメータが、前記少なくとも1つの画像処理モジュールによって実行される前記アルゴリズム処理の係数の第2の集合を備える、
請求項11に記載のシステム。
【請求項16】
パイプライン型プリプロセッサ中でモジュールを構成するための方法であって、
第1の制御信号をプロセッサから受信することと、
第2の制御信号をメモリから受信することと、
前記第1の制御信号と前記第2の制御信号との間の矛盾を解決することと、
前記矛盾を解決することの成果に従って前記第1および第2の制御信号を復号化して、それから誘導された構成パラメータを前記モジュールに適用することと、
を含む、方法。
【請求項17】
シャドーレジスタに、前記第1および第2の制御信号のうちの1つから誘導された情報を充填することを更に含む、請求項16に記載の方法。
【請求項18】
前記シャドーレジスタの内容に従ってモジュールを構成することを更に含む、請求項17に記載の方法。
【請求項19】
前記モジュールの構成中は、前記第1の制御信号を無視することを更に含む、請求項16〜18のいずれか一項に記載の方法。
【請求項20】
構成可能モジュールを有するパイプライン型プリプロセッサを備えるデジタル信号プロセッサであって、前記パイプライン型プリプロセッサが、
第1の制御信号を前記デジタル信号プロセッサから受信するための第1の入力ポートと、
第2の制御信号をメモリから受信するための第2の入力ポートと、
前記第1の制御信号と前記第2の制御信号との間の矛盾を解決するための調停ユニットと、
前記矛盾を解決する前記調停ユニットの成果に従って前記第1および第2の制御信号を復号化して、それから誘導される構成パラメータを前記モジュールに適用するためのコントローラと、
を備える、デジタル信号プロセッサ。
【請求項21】
前記第1の制御信号がMMR入力であり、前記第2の制御信号がDMA入力である、請求項20に記載のデジタル信号プロセッサ。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願
本出願は、2011年10月14日に提出された、米国仮特許出願第61/547、442号に対する優先権を主張するものであり、これはその全体が参照により本明細書中に組み込まれる。
背景技術
【0002】
ビデオカメラで生成されたりまたはメモリから読み出されたりしたものなどのビデオフレームのストリームは、ビデオの品質を改善したりまたはビデオから特徴を抽出したりするための処理をしばしば必要とする。この処理は従来、後処理動作でソフトウエアによって実施される。後処理動作は変動し得るが、その理由は、(i)アルゴリズム処理モジュールのパラメータ/係数が修正する必要がある、(ii)所与のアルゴリズムの微細な変動を実施する必要がある、および/または(iii)ビデオに対して実施する必要がある動作を変更する必要がある、からである。しかしながら、ソフトウエアソリューションは、多用途ではあるが、処理能力という点で遅く、かつ高価である。ハードウエアベースのアルゴリズムは一般的には、より早く、かつより効率的であるが、ハードウエアは、本質的に、迅速に、かつ容易に再構成するのが難しく、ライブのストリーミング中のビデオに遅れを取らずについていかなければならないときには特にそうである。ハードウエアベースの画像処理システムは、したがって、そのフレキシビリティの制限のために非最適な結果を生じる。したがって、高速で、効率的で、再構成可能なハードウエアベースの画像処理システムに対する需要が存在する。
【発明の概要】
【0003】
本発明の1つの実施形態では、パイプライン型のビデオプリプロセッサ(「PVP」)は、互いに異なった様々なカスタマイズ可能な構成で互いに対して接続され得るいくつかのアルゴリズム変換画像処理モジュールから成る。これらのモジュールの各々は、所与のアルゴリズム実装物の限定された変動を制御する複数のパラメータレジスタを有する。これらモジュールのパラメータは、データ損失なしでフレーム毎に再構成され得るが、モジュールの構成は、最小のデータ損失でまたはデータ損失なしで変更され得る。これらパラメータは、接続されたプロセッサを介して、DMAアクセスを介して、または同時に双方を介して変更され得る。様々な制御スキームが、互いに互換性があり、互いにシームレスな移行が保証されるように設計されている。
【0004】
1つの態様では、パイプライン型ビデオプリプロセッサは、パイプライン中に配列された複数の画像処理モジュールを含む。入力ポートは、複数のモジュールの構成パラメータを受信し、画像パイプコントローラは、これらの構成パラメータを復号化する。シャドーレジスタは、構成パラメータを複数のモジュールに適用し、これによりモジュールの画像処理特徴を変更する。
【0005】
パイプラインは、メモリからの画像データを処理するためのメモリパイプライン、またはデジタルカメラからの画像データを処理するためのカメラパイプラインであり得る。パイプラインは、1つ以上の更なるパイプライン(例えば、メモリパイプラインまたはカメラパイプライン)が、含まれ得る。構成パラメータは、プロセッサまたは直接メモリアクセス(「DMA」)エンジンから受信され得る。構成パラメータは、ブロック制御構造中のメモリ中に配列されて、DMAチャネルを介してアクセスされるが、ブロック制御構造は、ブロック制御ヘッダおよび1つ以上のブロック制御語を含み得る。ブロック制御構造中のブロック制御語のオフセットは、メモリマップドレジスタ(「MMR」)空間中のアドレスに対応し得る。構成パラメータは、ビデオデータの第1のフレームに適用され、更新された構成パラメータは、ビデオデータの第2のフレームに適用され得る。モジュール中の異なったパイプライン段階は、更新された構成パラメータを、データ境界に従って異なった時点で受信し得る。
【0006】
別の態様では、パイプライン型ビデオプリプロセッサ中で画像フレームを処理する方法は、パイプライン型ビデオプリプロセッサ中の複数の画像処理モジュールの構成パラメータを受信することを含む。構成パラメータはシャドーレジスタに記憶されて、複数の画像処理モジュールに適用され、これによりモジュールの画像処理特徴を変更し得る。
【0007】
構成パラメータは、プロセッサまたはDMAエンジンから受信され得るが、モジュールは、1つ以上のパイプライン中に配列され得る。1つ以上のパイプラインは、メモリからの画像データを処理するためのメモリパイプラインまたはデジタルカメラからの画像データを処理するためのカメラパイプラインを含み得る。構成パラメータは、ブロック制御構造中のメモリ中に配列され、DMAチャネルを介してアクセスされ得る。ブロック制御構造は、ブロック制御ヘッダおよび1つ以上のブロック制御語を含み得る。ブロック制御構造中のブロック制御語のオフセットは、メモリマップドレジスタ(「MMR」)空間中のアドレスに対応し得る。構成パラメータは、ビデオデータの第1のフレームに適用され、更新された構成パラメータはビデオデータの第2のフレームに適用され得る。モジュール中の異なったパイプライン段階は、更新された構成パラメータを、データ境界に従って異なった時点で受信し得る。
【0008】
別の態様では、デジタル信号プロセッサ中のパイプライン型ビデオプリプロセッサは、パイプライン中に配列された複数の画像処理モジュールと、これら複数のモジュールの構成パラメータを受信するための入力ポートとを含む。画像パイプコントローラは、構成パラメータを復号化し、シャドーレジスタは、構成パラメータを複数のモジュールに適用し、これによりモジュール中の画像処理特徴を変更する。パイプラインは、メモリからの画像データを処理するためのメモリパイプラインまたはデジタルカメラからの画像データを処理するためのカメラパイプラインであり得る。
【0009】
別の態様では、パイプライン型プリプロセッサ中でモジュールを構成するシステムは、プロセッサから第1の制御信号を受信するための第1の入力ポートと、メモリから第2の制御信号を受信するための第2の入力ポートとを含む。調停ユニットが、第1の制御信号と第2の制御信号との間の矛盾を解決する。コントローラが、第1および第2の制御信号を復号化して、これらから誘導された構成パラメータをモジュールに適用する。
【0010】
インターフェース(例えば、アドバンストペリフェラルバス(「APB」)インターフェース)が、第1の制御信号を復号化するために用いられ得る。第1の制御信号は、メモリマップドレジスタ(「MMR」)入力であり、第2の制御信号は、1つ以上の直接メモリアクセス(「DMA」)チャネルから受信され得る。第1の制御信号は、モジュールの第1のサブ集合を制御し、同時に、第2の制御入力は、モジュールの第2のサブ集合を制御し得る。モジュールは、第1および第2の制御信号の双方によって制御され得る。シャドーレジスタは、復号化された第1および第2の制御信号のうちの一方を受信し得る。シャドーレジスタは、アプリケーションレジスタを少なくとも1つのモジュールに書き込み、これにより構成パラメータをモジュールに適用し得る。調停ユニットは、矛盾が発生したら第2の制御信号を停止し得る。
【0011】
別の態様では、パイプライン型プリプロセッサ中でモジュールを構成する方法は、プロセッサから第1の制御信号およびメモリからの第2の制御信号を受信することを含む。第1の制御信号と第2の制御信号との間の矛盾が解決される。第1および第2の制御信号は復号化され、これらから誘導された構成パラメータはモジュールに適用される。
【0012】
シャドーレジスタは、第1の制御信号と第2の制御信号のうちの一方から誘導された情報で充填され得る。モジュールが、シャドーレジスタの内容物に従って構成され得る。第1の制御信号は、モジュールの構成中は無視され得る。第2の制御信号は、矛盾が発生すると停止され得る。第2の制御信号は、1つ以上のDMAチャネルから受信され得る。第1の制御信号はモジュールの第1のサブ集合を制御し、同時に、第2の制御入力はモジュールの第2のサブ集合を制御し得る。モジュールは、第1の制御信号と第2の制御信号の双方によって制御され得る。
【0013】
別の態様では、デジタル信号プロセッサ中の構成可能モジュールを有するパイプライン型ビデオプリプロセッサは、デジタル信号プロセッサから第1の制御信号を受信するための第1の入力ポートと、メモリから第2の制御信号を受信するための第2の入力ポートとを含む。調停ユニットが、第1の制御信号と第2の制御信号との間の矛盾を解決する。コントローラは、第1および第2の制御信号を復号化し、これらから誘導された構成パラメータがモジュールに適用される。第1の制御信号はMMR入力であり、第2の制御信号はDMA入力であり得る。
【0014】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするシステムは、直接メモリアクセス(「DMA」)チャネルを介してメモリからブロック制御構造を受信するための入力ポートを含む。画像パイプコントローラは、ブロック制御構造中のブロック制御ヘッダを復号化して、復号化されたブロック制御ヘッダに従ってブロック制御構造中のブロック制御語を選択する。シャドーレジスタはブロック制御語を受信して、ブロック制御語中のパラメータを再構成可能モジュール中のアプリケーションレジスタに適用し、これによりモジュールのパラメータを調整する。
【0015】
ブロック制御ヘッダは、モジュールを一意に識別するブロックアドレスを含み得る。入力ポートは更に、複数のブロック制御構造を含むブロック制御リストを受信し得る。ブロック制御ヘッダは、いくつかのブロック制御構造を含む語カウント値を含み得る。ブロック制御構造の順序は、パオプライン中のモジュールの順序に対応し得る。ブロック制御ヘッダは、どのアプリケーションレジスタがブロック制御語を受信するかを示すオフセットを含み得る。このオフセットは、モジュール中のアプリケーションレジスタのメモリマップドレジスタ(「MMR」)アドレスとモジュールのMMR基準アドレスとの間の差と等価であり得る。ブロック制御ヘッダは、モジュールがどのように第2のモジュールに接続するかを指定するためのマルチプレクサ選択情報を含み得る。アプリケーションレジスタ用に意図されたブロック制御語のオフセットは、メモリマップドレジスタ(「MMR」)空間中の同じアプリケーションレジスタのアドレスに対応し得る。ブロック制御語のオフセットは、アドレスをシフトさせることによって獲得され得る。
【0016】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングする方法は、直接メモリアクセス(「DMA」)を介してメモリからブロック制御構造を受信して、ブロック制御構造中のブロック制御ヘッダを復号化することを含む。ブロック制御構造中のブロック制御語が、復号化されたブロック制御ヘッダに従って選択される。ブロック制御語中のパラメータが、再構成可能モジュール中のアプリケーションレジスタに適用され、これによりモジュールのパラメータを調整する。
【0017】
ブロック制御ヘッダを復号化することは、モジュールを一意に識別するブロックアドレスを復号化することを含む。複数のブロック制御構造を含むブロック制御リストが、受信され得る。ブロック制御ヘッダを復号化することは、いくつかのブロック制御構造を含む語カウント値を復号化することを含み得る。ブロック制御構造の各々の中のブロック制御語は、複数のモジュールの各々に対して適用され得る。ブロック制御構造の順序は、パイプ中のモジュールの順序に対応し得る。ブロック制御語中のパラメータは、マルチプレクサ選択に適用され、これにより2つのモジュール間の接続部を構成し得る。ステータスレジスタは、ブロック制御ヘッダ中のステータスカウント値に従ってモジュールから読み出され得る。
【0018】
別の態様では、デジタル信号プロセッサ中で複数の再構成可能モジュールを有するパイプライン型ビデオプリプロセッサは、直接メモリアクセス(「DMA」)チャネルを介してメモリからブロック制御構造を受信するための入力ポートを含む。画像パイプコントローラは、ブロック制御構造中のブロック制御ヘッダを復号化して、復号化されたブロック制御ヘッダに従ってブロック制御構造中のブロック制御語を選択する。シャドーレジスタは、ブロック制御語を受信して、ブロック制御語中のパラメータを再構成可能モジュール中のアプリケーションレジスタに適用し、これによりモジュールのパラメータを調整する。アプリケーションレジスタ用に意図されたブロック制御語のオフセットは、メモリマップドレジスタ(「MMR」)空間中の同じアプリケーションレジスタのアドレスに対応し得る。
【0019】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするシステムは、画像データを処理するための再構成可能ハードウエアモジュールを含む。シャドーレジスタは、更新されたモジュールパラメータの集合を記憶する。画像パイプコントローラは、更新されたパラメータの集合をモジュールに適用する。モジュール内のアプリケーションレジスタは、更新されたパラメータの集合を受信する。モジュール中の異なったパイプラインは、更新されたパラメータの集合を、パイプラインを通るデータ境界の伝播に従って異なった時点で受信する。
【0020】
更新されたモジュールパラメータの集合は、プロセッサまたは直接メモリアクセス(「DMA」)チャネルのうちの一方から受信され得る。画像データは画像フレームを含み得るが、データ境界はフレーム境界である。更新されたモジュールパラメータの集合は、画像フレームの連続シリーズのうちに1つに対してまたは固定数の画像フレームに対して適用され得る。更新されたモジュールパラメータの集合を用いて処理された画像データは、対応してタグ付けされ、タグ付けされた情報は、DMAチャネルまたはプロセッサ出力部を用いて出力され得る。パイプラインは、ドレイン指令に従ってフラッシュされ得る。モジュールと第2のモジュールとの間の接続部は、パイプラインがフラッシュされるときに、変更され得る。モジュールは、更新されたパラメータの集合がそのパイプライン中のすべての段階に対して適用されたときに制御信号をアサートし得る。下流のモジュールは、制御信号がアサートされると、更新されたパラメータの集合を適用し始め得る。
【0021】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングする方法は、画像データを処理するためのモジュールの更新されたパラメータの集合を、シャドーレジスタ中に受信することを含む。更新されたパラメータの集合は、モジュールに送出される。更新されたパラメータの集合は、パイプラインを通るデータ境界の伝播に従って異なった時点でモジュール中の異なったパイプライン段階に送出される。
【0022】
画像データは画像フレームを含み、データ境界はフレーム境界であり得る。更新されたモジュールパラメータの集合は、画像フレームの連続したシリーズのうちの1つに対してまたは固定数の画像フレームに対して適用される。更新されたモジュールパラメータの集合を用いて処理された画像データはタグ付けされ、タグ付けされた画像データは、DMAチャネルまたはプロセッサ出力部を用いて出力され得る。パイプラインは、ドレイン指令に従ってフラッシュされ得るが、モジュールと第2のモジュールとの間の接続部は、パイプラインがフラッシュされるときに変更され得る。
【0023】
別の態様では、デジタル信号プロセッサ中で複数の再構成可能モジュールを有するパイプライン型ビデオプリプロセッサシステムは、画像データを処理するための再構成可能ハードウエアモジュールを含む。シャドーレジスタは、更新されたモジュールパラメータの集合を記憶する。画像パイプコントローラは、更新されたパラメータの集合をモジュールに適用する。モジュール内のアプリケーションレジスタは、更新されたパラメータの集合を受信する。モジュール中の異なったパイプライン段階は、更新されたパラメータの集合を、パイプラインを通るデータ境界の伝播に従って異なった時点で受信する。更新されたモジュールパラメータの集合は、デジタル信号プロセッサまたは直接メモリアクセス(「DMA」)チャネルのうちの一方から受信され得る。画像データは画像フレームを含み、データ境界はフレーム境界であり得る。
【0024】
これらおよび他の目的、並びに本明細書に開示される本発明の長所および特徴は、次の説明、添付図面および請求の範囲を参照すればより明瞭になるであろう。更にその上、本明細書に説明する様々な実施形態の特徴は、互いに排他的なものではなく、様々な組み合わせと置き換えで存在することが可能であることを理解すべきである。
【図面の簡単な説明】
【0025】
図面中、同様の参照符号は、様々な図全体にわたって同じ部品を一般的に参照する。以下の説明において、本発明の様々な実施形態は、以下の図面を参照して説明される。
【0026】
【
図1】本発明のある実施形態に係わるPVPのブロック図である。
【0027】
【
図2】本発明のある実施形態に係わるモジュール構成のブロック図である。
【0028】
【
図3A】本発明のある実施形態に係わる調停スキームの実装例である。
【
図3B】本発明のある実施形態に係わる調停スキームの実装例である。
【0029】
【
図4】本発明のある実施形態に係わるブロック制御リストの図である。
【0030】
【
図5】本発明のある実施形態に係わるブロック制御ヘッダの図である。
【0031】
【
図6】本発明のある実施形態に係わるフレーム毎のパラメータ更新スキームのブロック図である。
【0032】
【
図7】本発明のある実施形態に係わるフレーム毎の更新のタイミング図である。
【0033】
【
図8】本発明のある実施形態に係わるクロックのゲーティングおよびブロックリセットの生成の論理回路800である。
【0034】
【
図9】本発明のある実施形態に係わる例示のPVPである。
【0035】
【
図10】本発明のある実施形態に係わるPVPを組み込むシステムのブロック図である。
【発明を実施するための形態】
【0036】
図1は、パイプライン型ビデオプリプロセッサ(「PVP」)100の実施形態を図示する。このPVPは、あらゆる入力データに基づいて動作し得るが、1つの実施形態では、このデータは、カメラセンサーからキャプチャされたビデオ画像データおよび/またはメモリからフェッチしたビデオ画像データである。PVPはスタンドアロンのシリコンチップ上に置かれ得るが、PVPが、デジタル信号プロセッサなどのプロセッサと一緒にチップ上に置かれる実施形態もある。第1の入力データフォーマッタ102は、カメラという供給源から入力されるカメラデータ104をフォーマッティングするために用いられ、第2の入力データフォーマッタ106は、メモリという供給源からのメモリデータ108をフォーマッティングするために用いられ得る。1つ以上の供給源からのデータは、同時に処理され得る。本発明は、いかなる特定の数のまたは種類の入力供給源にも制限されることはなく、入力データ供給源は、1つ以上のカメラという供給源104および/または1つ以上のメモリという供給源108を含み得る。各々の供給源104、108は、それ自身の入力データフォーマッタ102、106によって受信され、または入力データフォーマッタ102、106を他の供給源102、104と共有し得る。
【0037】
入力データフォーマッタ102、106は、フォーマッティングされた入力データを1つ以上の再構成可能パイプライン110、112、114、116に出力する。各々のパイプライン110、112、114、116は、1つ以上の処理モジュール118を包含する。以下により詳しく説明するように、処理モジュール118は、互いに異なった様々な画像処理機能およびタスクを実施し、所望の画像処理結果に従って選択され、構成され得る。パイプライン毎のモジュール118の数、パイプライン内でのモジュール118の順序、およびパイプライン内でのモジュール118の構成は、必要に応じて再構成され、かつ所与のモジュール118は、互いに異なったパイプライン110、112、114、116での用途に応じて選択され得る。
図1は、第1のパイプライン110中での4つのモジュール118(2つのモジュール118が、並行に動作するように構成されている)、第2のパイプライン112中での2つのモジュール118、第3のパイプライン114中での1つのモジュール118、第4のパイプライン116中での2つのモジュール118を図示している。このモジュール構成は、PVP100のたった1つの可能な構成として提示されているが、しかしながら、当業者は、他の構成が可能であることを理解するであろう。
【0038】
パイプライン110、112、114、116の出力は、出力データフォーマッタ120、122、124、126によって受信されるが、これらのフォーマッタは、出力データを(例えば、それを圧縮したりパッキングしたりすることによって)準備して、それを、出力ポート128を介してオフチップで送出する。1つの実施形態では、出力データフォーマッタ120、122、124、126は、バスプロトコル(例えば、AXIバス)との接続用に用いられる動的データ交換(「DDE」)モジュールに、ピアツーピア接続によって、接続される。1つの実施形態では、各々のパイプライン110、112、114、116は、それ自身の出力データフォーマッタ120、122、124、126を有しているが、1つ以上のパイプライン110、112、114、116が、(例えば、パイプライン同士間での選択のためのマルチプレクサを用いて)1つの出力データフォーマッタを共有し得る実施形態もある。
【0039】
各々のモジュール118は、外部の供給源によって制御される中間構成パラメータを有し得る。各々のモジュール118は、所与のアルゴリズムの境界内でのこのモジュールによって提供される処理の性質を決定するそれ自身のローカルパラメータレジスタの集合を有し得るが、更なるパラメータレジスタが、モジュール118の一部または全てに共通であり得る。これらのパラメータレジスタには、アプリケーションレジスタ130および/またはステータスレジスタ132が含まれ得るが、これらのレジスタのたった1つの集合を解説目的で示すが、各々のモジュール118は、アプリケーションレジスタ130およびステータスレジスタ132のそれ自身の集合を含み得る。以下により詳しく説明するように、パラメータレジスタは、接続されたプロセッサを含む様々な供給源によって(アドバンストペリフェラルバスすなわち「APB」インターフェースなどのインターフェース134を介して)または、入力/出力モジュール136を用いることによる直接メモリアクセス(「DMA」)を介して、読み出されたりまたは書き込まれたりし得る。1つの実施形態では、制御情報およびステータス情報は、シャドーレジスタ138を用いて入力されたり出力されたりするが、シャドーレジスタ138は、パイプライン110、112、114、116を通って現在移動中の画像データのタイミングに従ってアプリケーションレジスタ130および/またはステータスレジスタ132に読み出し、書き込みし、これにより、例えば、第1のパラメータ集合がパイプライン中の第1のフレームに適用され、第2のパラメータ集合がパイプライン中の第2のフレームに適用されるようにする。画像パイプコントローラ140は、以下により詳しく説明するように、モジュール118の制御を調整するために用いられ得る。
【0040】
様々な実施形態では、モジュール118は、コンボリューション/ダウンスケーラーエンジン(「CNV」)、画素の大きさおよび角度計算ユニット(「PMA」)、しきい値、ヒストグラムおよび圧縮エンジン(「THC」)、算術計算ユニット(「ACU」)、画素エッジ分類装置(「PEC」)、統合画像計算(「IIM」)、および/またはアップ/ダウンスケーラー(「UDS」)を含み得る。当業者は、他のモジュールが含まれ得ること、および本発明はこれらのモジュールだけに限られるわけではないことを理解するであろう。モジュール118は、互いに対して選択的に接続されて、例えば、プログラム可能クロスバースイッチなどの技術上周知のいずれかの方法を用いて、互いに異なった1つ以上のパイプラインを作成し得る。1つの実施形態では、
図2に図示するように、モジュール118は、これら同士間に置かれたマルチプレクサを用いて構成され得る。
図2に示すシステム200においては、3つの出力ポートを有する第1のモジュール202および1つの出力ポートを有する第2のモジュール204は、マルチプレクサ206のシステムを介して、2つの入力ポート(および3つの出力ポート)を有する第3のモジュール208に対して接続される。マルチプレクサ206の選択ライン210を制御することによって、第3のモジュール208は、第1および第2のモジュール202、204の出力のうちのいずれかをその2つの入力212のうちのどちらかとして受信し得る。選択ライン210は、他のモジュールパラメータの構成に類似した様式で、プロセッサまたはDMA制御装置を介して構成され得る。当業者は、マルチプレクサ206の他の構成も本発明の範囲内にあることを理解するであろう。
【0041】
任意の所与のモジュールが、パイプ再構成物の一部としてのカメラパイプおよび/またはメモリパイプを横断し得る。カメラパイプは画素クロックに影響し、メモリパイプはシステムクロックに影響し得るが、クロックの双方が互いに対して非同期であり得る。PVPアーキテクチャは、モジュールがパイプ同士間で切り替えられ得るように、クロックドメイン全体にわたって適切に同期が取れることを保証し得る。
1.複数の供給源からのモジュールの制御
【0042】
1つの実施形態では、PVP中の画像処理モジュールは、(
図1に示すインターフェース134などの)APBインターフェースを介してアクセス可能な、例えばメモリマップドレジスタ(「MMR」)を介して、リンクされたプロセッサによってアクセスされ得る。例えば、ハードウエア割り込みがアサートされ、例えば、プロセッサが、ステータス情報および制御情報を、PVPおよびそのモジュールに対して読み出したり書き込んだりし得る。一旦処理モジュールが適切に構成されると、画像データの流れは、プロセッサによってまたはDMAエンジンによって指示され得る。
【0043】
別の実施形態では、画像処理モジュールは、APBインターフェース(すなわち、プロセッサを介して)および1つ以上のDMAインターフェースのうちのいずれかまたは双方によって構成され得る。1つの実施形態では、処理モジュールの全てが、直接プロセッサ制御によって第1の時点で制御され、第2の時点では、DMA制御によって制御される。別の実施形態では、モジュールの第1のサブ集合は、直接プロセッサ制御によって構成可能であり、同時に、第2のサブ集合はDMA制御によって構成可能である。例えば、PVPでは、モジュールの第1のサブ集合は、メモリ(すなわち、メモリパイプ)に記憶されているデータを処理するモジュールであり、第2のサブ集合は、カメラセンサー(すなわちカメラパイプ)から入力されるデータを処理するモジュールであり得る。別の実施形態では、複数の(例えば、2つ以上の)個別のDMA制御チャネルがあり得る。第1のDMA制御チャネルは、モジュールの第1のサブ集合を制御し、第2のDMA制御チャネルは、モジュールの第2のサブ集合を制御し得る。例えば、第1のDMA制御チャネルは、カメラパイプを制御し、第2は、メモリパイプを制御する。当業者は、読み出し制御および書き込み制御の他の組み合わせが可能であり、また、本発明が直接制御およびDMA制御のいかなる特定的な分割にも制限されないことを理解するであろう。
【0044】
1つの実施形態では、レジスタの直接制御およびDMA制御は、最初にスクラッチレジスタの集合に読み出しまたは書き込みをすることによって遂行されるが、例えば、一旦これらのスクラッチレジスタが完全に書き込みされると、それらの内容物は、実際のアプリケーションレジスタに適用される。同様に、制御レジスタの読み出しは、最初に1つ以上のスクラッチレジスタを充填し、次に、これらのスクラッチレジスタがDMA制御によって読み出される。スクラッチレジスタは、
図1に示すシャドーレジスタ130、132であり得る。1つの実施形態では、APBインターフェースによる直接プロセッサ制御は、シャドーレジスタのロード中またはアンロード中は(すなわち、シャドーレジスタの内容物が、アプリケーションレジスタに適用されている時間中、またはステータスレジスタがシャドーレジスタを充填している時間中は)許容されない。
【0045】
モジュールの制御は互いに異なった供給源からされ得るため、同時発生する複数のリクエスト同士間で矛盾が発生し得る。1つの実施形態では、調停によって、互いに異なった制御機構同士間の矛盾を解決し得る。
図3Aは、本発明のある実施形態に係わる解説的な調停スキーム300を示す。この実施形態では、第1のDMAチャネル302を用いて、カメラパイプライン中のモジュールを構成し、メモリパイプライン中のモジュールは、第2のDMAチャネル304または、プロセッサによる直接制御用のAPBリンク306を用いて構成され得る。調停ユニット308を用いて、第2のDMAチャネル304とAPBリンク306との間の矛盾を解決する。調停ユニット308は、自身のロードフェーズおよび/またはエラー通知の一部または全体の期間中にDMAエンジンに対するアクセスを遅延させ、これによりAPBリンク306によるあらゆる同時アクセスの有効性を保護するための停止機構または管制機構を含み得る。1つの実施形態では、調停モジュール308は、DMAエンジン304およびAPBリンク306とインターフェースして、どのように制御データが画像処理モジュールに対してプログラムされるか/調停されるかを制御する。1つの実施形態では、調停モジュール308は、
図1に示す画像パイプコントローラ(「IPC」)140に組み込まれて、それぞれP2PバスおよびAPBバスを介してDMAエンジンおよびプロセッサと通信する。画像処理モジュールは、AHBバスなどの内部バスを用い得る。調停論理の実装の一実施形態を
図3Bに示す。
【0046】
画像処理モジュールの一部または全てを制御するクロックは、DMAインターフェースおよびプロセッサインターフェースのクロックドメインのそれとは異なったドメイン上にあり得る。この場合、クロックは、様々なドメイン全体にわたって非同期であり得る。1つの実施形態では、画像処理モジュールのサブ集合は互いに異なった長さの複数のパイプ中に配列され、データは、それが長い方のパイプで終了するより以前に短い方のパイプで処理を終了する(更に、例えば、load_done信号をアサートして、完了を示す)。同期モジュール310は、load_done信号の一部または全てが受信されたときに、例えば、load_done信号をパイプラインの各々から受信して、同期信号を調停ユニット308に送出することによって、後のデータもまた利用可能となるまでは早期のデータの同期を遅延させ得る。
【0047】
パラメータレジスタのビットは、ポーリングまたは割り込みを用いて、プロセッサによって設定またはクリアされ得る。1つの実施形態では、DMAステータスチャネルは、パラメータレジスタ中の1つ以上の値をスキャンアウトするために用い得る。例えば、ヒストグラムステータスは、DMAステータスチャネル上でTHCモジュールからスキャンアウトされ得る。DMAステータスチャネルのトリガーは、所与のモジュールの垂直同期(vsync)出力部に基づき得る。2つのステータスが同じチャネル上でリクエストされると、識別フィールド(例えば、数字または文字)が各々のモジュールのステータスに対するステータスヘッダ中に含まれ、これら2つのステータスは、この事象を記録した後で、次々にシーケンスされ得る。
2.DMAを介してのプログラミング
【0048】
DMAを介した制御を容易化するために、ブロック制御構造リスト(「BCL」)と呼ばれる特殊な制御語形式が、システムメモリ中で定義され得る。BCLは、PVP中の画像処理モジュール中のアプリケーションレジスタ用に意図された制御情報の配列であり、この制御情報はモジュールによってグループ化され、各々のグループは、どこで、そしてどのように制御情報を適用するかをPVPに命令するヘッダ情報(例えば、ブロック制御ヘッダすなわち「BCH」)を包含する。BCLは、DMAを介して読み出され、ヘッダ情報は画像パイプコントローラによって復号化され、これにより制御情報は、モジュールに適用される。BCLの構造は、例えば、新しいモジュールのBCHをBCLに添付するまたは挿入することによって、新しいモジュールを容易に追加することを許容し得る。
【0049】
図4は、BCL400の1つの実施形態を図示する。いくつかのBCH402が示されているが、その各々が、ブロック制御語404の関連付けられたリストを有している。
図5は、BCH500の拡大図を示す。第1のフィールドBLOCK502は、PVP中の各々の画像処理モジュールに割り当てられた固有のアドレスを示し、これによりどのモジュールにパラメータを適用すべきであるかを画像パイプコントローラに命令する。第2のフィールドWCNT504は、このブロックに包含される制御後の数を示し、これにより次のBCHの位置を示す。WCNTの使用によって、例えば、ブロックの終端にあるブロックの終了を示すフィールドに対する必要を回避し得る。別のフィールドWOFF506は制御後に適用されるべきオフセットを示し、例えば、所与のモジュールが256個のレジスタの集合を有する場合、10というオフセットを指定することは、制御語が10個目のレジスタの最初に適用されることを意味する。WCNTが(例えば)12であれば、レジスタ10〜22がプログラムされている。
【0050】
BCH中の更なるフィールドは、例えば、
図2に示すマルチプレクサ制御を用いてどのようにモジュールを上流および下流のモジュールに接続すべきであるかを示す。例えば、IPORTフィールド508はマルチプレクサの第1のレベルを選択するために用いられ、IBLOCKフィールド510はマルチプレクサの第2のレベルを選択するために用いられ得る。しかしながら、当業者は、選択ビットを用いるマルチプレクサプログラミングを指定する他のいかなる方法も本発明の範囲内にあることを理解するであろう。代替的には、すべてのIBLOCK(複数可)およびIPORT(複数可)が、BCHから除去され得るし、個別のクロスバー制御ヘッダ形式(すなわち、クロスバー制御構造すなわち「CCS」パケット)が、定義され得る。他のフィールドには、モジュールがイネーブルされるべきかディスエーブルされるべきであるかを示すSTARTビット512と、どのパイプ(すなわちカメラパイプまたはメモリパイプ)に対してモジュールが所属すべきでありかを示すPIPEフィールド514が含まれる。別のフィールドSTATWCNT516は、モジュール中のいくつのステータスレジスタが読み出し動作で読み出されるべきであるかを示す。
【0051】
1つの実施形態では、所与のパイプに対するBCLは、入力データ形式の構成から始まり、1つ以上の画像処理モジュールの構成を含み、出力データ形式モジュールの構成で終了する。各々の画像処理モジュールの構成情報の順序は、パイプ中のモジュールの位置に対応し得る。モジュールのBCHは、BCL内で(例えば、2回以上)繰り返されて、パイプ内の所与のモジュール用のレジスタの2つの個別のグループのプログラミングを可能とし得る。例えば、第1のBCHを用いて、モジュールのレジスタ10〜22をプログラムし、第2のBCHを用いて、同じモジュールのレジスタ100〜110をプログラムし得る。
【0052】
所与のモジュールに対するBCHの構成は、メモリマップドレジスタを介するモジュールの直接プロセッサ制御に相互関連し得る。例えば、所与のモジュールは、プロセッサを介するアクセス用の固定した基準アドレスを有し得るが、(DMA制御用に用いられる)モジュールのBLOCK502の識別番号は、この基準アドレスから誘導し得る。1つの実施形態では、BLOCK502の識別番号は、基準アドレスを5ビットだけ右にシフトすることによって発見され得る。同様に、実際のMMRアドレスと規準アドレスとの間の差は、BCH中のWOFFオフセットフィールドに直接に相互関連し得る。したがって、BCL中の各々の制御後は、MMRアドレス空間中でのそれと同じ順序で配列され、これによりBCHと、いずれかの制御スキームを用いてモジュール中のレジスタを構成するいずれかのソフトウエアとの設計を簡略化する。所与のレジスタが、MMRアドレス空間中で規準アドレスから36のアドレス単位を除去したものであれば、同じレジスタは、DMA制御スキームではBLOCK502の識別番号から36単位だけオフセットされたものである。この構成を用いると、プログラマおよび/またはソフトウエアユーティリティは、2つの制御スキーム間を、例えば、スキーム間で翻訳するためのデコーダ/マッピングユーティリティを用いることなく、シームレスにシフトし得る。
【0053】
DMAを介するステータスの読み出しは、DMAを介して制御情報を書き込むのと類似の様式で実施される。1つの実施形態では、モジュールステータス値は、所与のモジュールの出力能力に従って(すなわち、モジュールのクロックレートに従って)1つ以上のシャドーレジスタ中に移動される。次に、ステータス情報は、構成レジスタに従って定期的に(例えば、フレーム境界毎にまたはある数のフレーム毎に)DMAを介して送出される。ステータス情報は、1つのDMAチャネル上でまたは同時に複数のDMAチャネル上で送出され得る。上述したように、BCH中のSTATWCNTフィールド516は、読み出されて送出されるべきモジュール中のステータスレジスタの数を示す。
3.互いに異なったフレームに対するモジュールの再プログラミング
【0054】
所与のパイプ構成に対して、本発明の実施形態は、任意のパイプを備えるモジュールに対するパラメータレジスタの再プログラミングを可能とし、これにより連続するフレームを、様々な係数で、または各々のモジュールが提供するアルゴリズムの変更によって処理し得る。所与のモジュールは、2クロックサイクル以上の待ち時間を有し得るが、モジュールの終端にあるパイプライン段階は、モジュールの最初にあるパイプライン段階が第2のフレームを処理している間に、例えば、第1のフレームを処理し得る。したがって、モジュールの行動に影響するアプリケーションレジスタは、モジュールの各々のパイプラインに対して互いに異なった時点で更新されて、各々のフレームが、その意図されるパラメータに従って処理されることを保証し得る。1つの実施形態では、各々のパイプライン中のアプリケーションレジスタは、フレーム境界がモジュール中のパイプラインを通って伝播するに連れて更新される。上述したように、シャドーレジスタは、適切な時点でアプリケーションレジスタを更新するために用いられ得るが、直接プロセッサMMR機構またはDMA制御機構は、シャドーレジスタだけを更新し、アプリケーションレジスタの更新は、時間がずらされる。
【0055】
エンジンは、所与のパラメータ集合または所与の構成が適用される精度を、フレーム毎にまたは固定したフレーム集合毎に連続して制御し得る。一般的に、カメラパイプは、カメラセンサーからフレームを連続的に獲得し、一方、メモリパイプは、フレームの固定した集合を受信するが、しかしながら、どちらのモードもどちらかのパイプで用いられる。プロセッサは、PVPエンジン全体をディスエーブルさせることなく、連続モードから固定モードに(その逆にも)切り替えられ得る。パラメータをすべてのフレームに適用するために、フラグが設定され得る(例えば、フレームカウント値すなわち「FNCT」値はゼロにプログラムされ得る)。制御値の新しい集合がプログラムされると、これらの新しい値は、次のフレーム境界に適用され、また、この後で次のフレームに対して連続的に適用される。このアーキテクチャもまた、新しい制御パラメータで処理されたフレームの識別を容易にするために個別のステータスDMAチャネル上にTAG機構を提供し得るが、プロセッサはこのTAG機構を用いて、どのフレームが、あるパラメータ集合を用いて処理を受信したかを決定し得る。TAGデータはステータスDMAチャネル上で送出され、また、プロセッサ読み出しに利用可能であり得る。
【0056】
パラメータを固定したフレーム集合に適用するために、FCNT値は非ゼロ値にプログラムされ、その後に監視され得る。一旦所定の数のフレームが処理されると、パイプラインは停止する(そして最後のフレームがパイプライン中に貼り付けられる)。一旦次のフレームグループが識別されて、処理のための待ち行列に入れられると、FCNT値が再度設定され、次のグループが(多分、異なったモジュールパラメータの集合で)
処理を開始する。次のフレームグループの処理は、パイプライン中に貼り付けられた前の集合最後のフレームを押し出す。
【0057】
パイプラインは、別のパラメータ(例えば、DRAINビット)が設定されるとフラッシュされ得る。例えば、有限のフレーム集合が処理用に識別され、DRAINビットが設定されると、最後のフレームの完了時に、パイプラインはダミーの画素でフラッシュされ、これによりこの集合の最後のフレームがパイプラインによって出力されるようにする。最後のフレームがパイプラインを通過するに連れて、パイプライン中のモジュールがディスエーブルされる。1つの実施形態では、パイプラインが連続フレームモードにあり、DRAINビットが設定されると、パイプラインは即座にフラッシュされてディスエーブルされる。どちらの場合も、次の制御後の集合は、パイプラインを(例えば、フレームのBCH中のSTARTビットを用いて)目覚めさせるように設定され得る。
【0058】
図6は、第1のモジュール602、第2のモジュール604、これらを接続するデータ制御およびクロスバーユニット606、ならびに画像パイプコントローラ608の例示の実施形態600を図示する。アプリケーションレジスタ値の新たな集合がDMAまたは直接プロセッサ制御によってシャドーレジスタ中にロードされるとき、「連結ロード」信号がフレーム同期信号を一緒に第1のモジュール602に駆動される。第1のモジュール602は、入力データ中の第1の画素がモジュール602を通過するに連れて、そのアプリケーションレジスタをその内部パイプライン遅延に従って更新する(すなわち、第1のモジュールが5つのパイプリアン段階を含む場合、それは次に、画素データが完全に処理されるに連れて、アプリケーションレジスタ値をこれら5つの段階に適用する)。第1のモジュール602は、最初の画素の処理を完了するとき、連結ロード信号をその出力部にアサートし、これにより第2のモジュール604に対しても、新しいアプリケーションレジスタ値を(それ自身のパイプライン構成に従って)適用し始めるように命令する。連結ロード信号およびフレーム同期信号のタイミング
図700を
図7に示し、
図8に、クロックをゲーティングして、ドレイン完了および開始ビットに基づいてブロックリセットを生成する論理回路を図示する。
【0059】
既存のパイプラインに対するモジュールのパラメータの再構成に加えて、パイプライン自身は、モジュールを追加するまたは削除することによって再構成され得る。リアルタイムパイプ(例えば、カメラパイプ、またはリアルタイムデータを取り扱う他のパイプ)の場合、エンジンは、たった1フレームデータの損失で、カメラパイプを含むモジュールのシームレスで動的な再構成を可能とする機構を含み得る。非リアルタイムパイプ(例えば、メモリパイプ)の場合、エンジンは、有限の停止とフレーム損失なしで、動的な再構成を可能とする機構を含み得る。
【0060】
この機構は、レジスタ中のDRAINビットおよびそれぞれのモジュール中の自動ディスエーブルSTARTビットを用いて実装され得る。有限のフレーム集合の後、DRAIN=1を条件として、パイプ中のモジュールは(例えば、STARTビットを0に設定することによって)ディスエーブルされる。パイプの新しい構成を形成する新しいモジュールの集合は、そのSTARTビットが次のプログラミング構造中に設定され得る。
4.例
【0061】
図9に、PVPアーキテクチャの例示の実施形態900を図示する。このシステムは、カメラ入力部902およびメモリ入力部904を含む。カメラ入力部902は、3つのカメラパイプライン906、908、910にデータを入力し、メモリ入力部904は、2つのメモリパイプライン912、914にデータを入力する。第1のカメラパイプライン906は、2つのコンボリューション/ダウンスケーラーモジュール、画素の大きさおよび角度計算モジュール、および画素エッジ分類モジュールを含み、第2のカメラパイプライン908は、コンボリューション/ダウンスケーラーモジュールおよび統合画像計算モジュールを含み、第3のカメラパイプライン910は、しきい値、ヒストグラムおよび圧縮モジュールを含み、第1のメモリパイプ912は、コンボリューション/ダウンスケーラーモジュールおよび算術計算ユニットを含み、第2のメモリパイプラインは、アップ・ダウンスケーラーを含む。
【0062】
図10は、PVP1002およびそのサポートインターフェース回路を含むシステム1000を図示する。プロセッサ1004は、MMRインターフェースを介して直接的にPVP1002を制御し得る。VCCクロスバー回路1006はカメラパイプラインにデータを提供し、クロスバー1006は、様々な入力供給源(例えば、PPI入力部とPIXC入力部)を選択し、これにより複数のカメラ入力部を提供する。DDE調停ユニット1008は、外部バス(例えば、AXIバス)とインターフェースして、DMA制御を可能とし、DDEユニット1010は、PVP1002内の出力データ形式モジュールから出力データを取り除き、入力制御データおよび出力制御データならびにステータスデータを提供し、入力をメモリパイプラインに提供する。