(57)【要約】      （修正有）【課題】高速で、効率的で、再構成可能なハードウエアベースの画像処理システムを提供する。【解決手段】パイプライン型ビデオプリプロセッサ１００は、複数の構成可能な画像処理モジュール１１８を含む。これらのモジュールは、直接プロセッサ制御、ＤＭＡアクセス、または双方を用いて構成される。ＤＭＡでアクセス可能なブロック制御リストは、直接プロセッサ制御に類似した様式でこれらのモジュールの構成を容易化する。これらのモジュール中のパラメータは、フレーム毎に更新できる。【選択図】図１
2014238861.tif 000002
【特許請求の範囲】
【請求項１】
パイプライン中に配列された複数の画像処理モジュールと、
前記複数のモジュールに対する構成パラメータを受信するための入力ポートと、
前記構成パラメータを復号化するための画像パイプコントローラと、
前記構成パラメータを前記複数のモジュールに適用し、これにより前記モジュールの画像処理特徴を変更するためのシャドーレジスタと、
を備える、パイプライン型ビデオプリプロセッサ。
【請求項２】
前記パイプラインが、メモリからの画像データを処理するためのメモリパイプラインまたはデジタルカメラからの画像データを処理するためのカメラパイプラインである、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項３】
１つ以上の更なるパイプラインを更に備え、１つ以上の更なるパイプラインが、メモリパイプラインまたはカメラパイプラインである、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項４】
前記構成パラメータが、プロセッサまたは直接メモリアクセス（「ＤＭＡ」）エンジンから受信される、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項５】
前記構成パラメータが、ブロック制御構造中のメモリ中に配列され、かつＤＭＡチャネルを介してアクセスされる、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項６】
前記ブロック制御構造が、ブロック制御ヘッダおよび１つ以上のブロック制御語を含む、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項７】
前記ブロック制御構造中の前記ブロック制御語のオフセットが、メモリマップドレジスタ（「ＭＭＲ」）空間中のアドレスに対応する、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項８】
前記構成パラメータがビデオデータの第１のフレームに適用され、更新された構成パラメータがビデオデータの第２のフレームに適用される、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項９】
モジュール中の異なったパイプライン段階が、前記更新された構成パラメータをデータ境界に従って異なった時点で受信する、請求項１に記載のパイプライン型ビデオプリプロセッサ。
【請求項１０】
パイプライン型ビデオプリプロセッサ中で画像フレームを処理する方法であって、
前記パイプライン型ビデオプリプロセッサ中の複数の画像処理モジュールに対する構成パラメータを受信することと、
前記構成パラメータをシャドーレジスタに記憶することと、
前記構成パラメータを前記複数の画像処理モジュールに適用し、これにより前記モジュールの画像処理特徴を変更することと、
を含む、方法。
【請求項１１】
前記構成パラメータが、プロセッサまたはＤＭＡエンジンから受信される、請求項１に記載の方法。
【請求項１２】
前記モジュールを１つ以上のパイプライン中に配列することを更に含む、請求項１に記載の方法。
【請求項１３】
前記１つ以上のパイプラインが、メモリからの画像データを処理するためのメモリパイプラインまたはデジタルカメラからの画像データを処理するためのカメラパイプラインを含む、請求項１に記載の方法。
【請求項１４】
前記構成パラメータはブロック制御構造中のメモリ中に配列され、ＤＭＡチャネルを介してアクセスされる、請求項１に記載の方法。
【請求項１５】
前記ブロック制御構造が、ブロック制御ヘッダおよび１つ以上のブロック制御語を含む、請求項１に記載の方法。
【請求項１６】
前記ブロック制御構造中の前記ブロック制御語のオフセットが、メモリマップドレジスタ（「ＭＭＲ」）中のアドレスに対応する、請求項１に記載の方法。
【請求項１７】
前記構成パラメータをビデオデータの第１のフレームに適用し、更新された構成パラメータをビデオデータの第２のフレームに適用することを更に含む、請求項１に記載の方法。
【請求項１８】
モジュール中の異なったパイプライン段階が、前記更新された構成パラメータを、データ境界に従って異なった時点で受信する、請求項１に記載の方法。
【請求項１９】
パイプライン型ビデオプリプロセッサを備えるデジタル信号プロセッサであって、前記パイプライン型ビデオプリプロセッサが、
パイプライン中に配列された複数の画像処理モジュールと、
前記複数のモジュールに対する構成パラメータを受信するための入力ポートと、
前記構成パラメータを復号化するための画像パイプコントローラと、
前記構成パラメータを前記複数のモジュールに適用し、これにより前記モジュールの画像処理特徴を変更するためのシャドーレジスタと、
を備える、デジタル信号プロセッサ。
【請求項２０】
前記パイプラインが、メモリからの画像データを処理するためのメモリパイプラインまたはデジタルカメラからの画像データを処理するためのカメラパイプラインである、請求項１に記載のデジタル信号プロセッサ。
【請求項２１】
パイプライン型プリプロセッサ中でモジュールを構成するためのシステムであって、
第１の制御信号をプロセッサから受信するための第１の入力ポートと、
第２の制御信号をメモリから受信するための第２の入力ポートと、
前記第１の制御信号と前記第２の制御信号との間の矛盾を解決するための調停ユニットと、
前記第１の制御信号および前記第２の制御信号を復号化して、それから誘導された構成パラメータを前記モジュールに適用するためのコントローラと、
を備える、システム。
【請求項２２】
前記第１の制御入力を復号化するためのインターフェースを更に備える、請求項１に記載のシステム。
【請求項２３】
前記インターフェースが、アドバンストペリフェラルバス（「ＡＰＢ」）インターフェースである、請求項１に記載のシステム。
【請求項２４】
前記第１の制御信号が、メモリマップドレジスタ（「ＭＭＲ」）入力である、請求項１に記載のシステム。
【請求項２５】
前記第２の制御信号が、１つ以上の直接メモリアクセス（「ＤＭＡ」）チャネルから受信される、請求項１に記載のシステム。
【請求項２６】
前記第１の制御信号が前記モジュールの第１のサブ集合を制御し、同時に、前記第２の制御入力が前記モジュールの第２のサブ集合を制御する、請求項１に記載のシステム。
【請求項２７】
モジュールが、前記第１および第２の制御信号の双方によって制御される、請求項１に記載のシステム。
【請求項２８】
前記復号化された第１および第２の制御信号のうちの一方を受信するためのシャドーレジスタを更に備える、請求項１に記載のシステム。
【請求項２９】
前記シャドーレジスタが、少なくとも１つのモジュール中にアプリケーションレジスタを書き込み、これにより前記構成パラメータを前記モジュールに適用する、請求項１に記載のシステム。
【請求項３０】
前記調停ユニットが、矛盾が発生したら前記第２の制御信号を停止する、請求項１に記載のシステム。
【請求項３１】
パイプライン型プリプロセッサ中でモジュールを構成するための方法であって、
第１の制御信号をプロセッサから受信することと、
第２の制御信号をメモリから受信することと、
前記第１の制御信号と前記第２の制御信号との間の矛盾を解決することと、
前記第１および第２の制御信号を復号化して、それから誘導された構成パラメータを前記モジュールに適用することと、
を含む、方法。
【請求項３２】
シャドーレジスタに、前記第１および第２の制御信号のうちの１つから誘導された情報を充填すること更に含む、請求項１に記載の方法。
【請求項３３】
前記シャドーレジスタの内容に従ってモジュールを構成することを更に含む、請求項１に記載の方法。
【請求項３４】
前記モジュールの構成中は、前記第１の制御信号を無視することを更に含む、請求項１に記載の方法。
【請求項３５】
矛盾が発生したら、前記第２の制御信号を停止することを更に含む、請求項１に記載の方法。
【請求項３６】
前記第２の制御信号が、１つ以上のＤＭＡチャネルから受信される、請求項１に記載の方法。
【請求項３７】
前記第１の制御信号が前記モジュールの第１のサブ集合を制御し、同時に、前記第２の制御入力が前記モジュールの第２のサブ集合を制御する、請求項１に記載の方法。
【請求項３８】
モジュールが、前記第１および第２の制御信号の双方によって制御される、請求項１に記載の方法。
【請求項３９】
構成可能モジュールを有するパイプライン型ビデオプリプロセッサを備えるデジタル信号プロセッサであって、前記パイプライン型ビデオプリプロセッサが、
第１の制御信号を前記デジタル信号プロセッサから受信するための第１の入力ポートと、
第２の制御信号をメモリから受信するための第２の入力ポートと、
前記第１の制御信号と前記第２の制御信号との間の矛盾を解決するための調停ユニットと、
前記第１および第２の制御信号を復号化して、それから誘導される構成パラメータを前記モジュールに適用するためのコントローラと、
を備える、デジタル信号プロセッサ。
【請求項４０】
前記第１の制御信号がＭＭＲ入力であり、前記第２の制御信号がＤＭＡ入力である、請求項１に記載のデジタル信号プロセッサ。
【請求項４１】
パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするためのシステムであって、
ブロック制御構造をメモリから直接メモリアクセス（「ＤＭＡ」）チャネルを介して受信するための入力ポートと、
（ｉ）前記ブロック制御構造中のブロック制御ヘッダを復号化することおよび（ｉｉ）前記ブロック制御構造中のブロック制御語を、前記復号化されたブロック制御ヘッダに従って選択することのための画像パイプコントローラと、
前記ブロック制御語を受信して、前記ブロック制御語中のパラメータを再構成可能モジュール中のアプリケーションレジスタに適用し、これにより前記モジュールのパラメータを調整するためのシャドーレジスタと、
を備える、システム。
【請求項４２】
前記ブロック制御ヘッダが、前記モジュールを一意に識別するブロックアドレスを含む、請求項１に記載のシステム。
【請求項４３】
前記入力ポートが、複数ブロック制御の構造を含むブロック制御リストを更に受信する、請求項１に記載のシステム。
【請求項４４】
前記ブロック制御ヘッダが、いくつかのブロック制御構造を含む語カウント値を含む、請求項１に記載のシステム。
【請求項４５】
前記ブロック制御構造の順序が、パイプライン中でのモジュールの順序に対応する、請求項１に記載のシステム。
【請求項４６】
前記ブロック制御ヘッダが、どのアプリケーションレジスタが前記ブロック制御語を受信するかを示すオフセットを含む、請求項１に記載のシステム。
【請求項４７】
前記オフセットが、前記モジュール中のアプリケーションレジスタのメモリマップドレジスタ（「ＭＭＲ」）アドレスと前記モジュールのＭＭＲ基準アドレスとの間の差に等しい、請求項１に記載のシステム。
【請求項４８】
前記ブロック制御ヘッダが、どのように前記モジュールが第２のモジュールに接続するかを指定するマルチプレクサ選択情報を含む、請求項１に記載のシステム。
【請求項４９】
アプリケーションレジスタ用に意図されたブロック制御語のオフセットが、メモリマップドレジスタ（「ＭＭＲ」）空間中の同じアプリケーションレジスタのアドレスに対応する、請求項１に記載のシステム。
【請求項５０】
前記ブロック制御語の前記オフセットが、前記アドレスをシフトすることによって獲得される、請求項１に記載のシステム。
【請求項５１】
パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするための方法であって、
ブロック制御構造をメモリから直接メモリアクセス（「ＤＭＡ」）チャネルを介して受信することと、
前記ブロック制御構造中のブロック制御ヘッダを復号化することと、
前記ブロック制御構造中のブロック制御語を、前記復号化されたブロック制御ヘッダに従って選択することと、
前記ブロック制御語中のパラメータを再構成可能モジュール中のアプリケーションレジスタに適用し、これにより前記モジュールのパラメータを調整することと、
を含む、方法。
【請求項５２】
前記ブロック制御ヘッダを復号化することが、前記モジュールを一意に識別するブロックアドレスを復号化することを含む、請求項１に記載の方法。
【請求項５３】
複数のブロック制御構造を含むブロック制御リストを受信することを更に含む、請求項１に記載の方法。
【請求項５４】
前記ブロック制御ヘッダを復号化することが、いくつかのブロック制御構造を含む語カウント値を復号化することを含む、請求項１に記載の方法。
【請求項５５】
前記ブロック制御構造の各々の中のブロック制御語を複数のモジュールの各々に適用することをさらに含む、請求項１に記載の方法。
【請求項５６】
前記ブロック制御構造の順序が、パイプ中での前記モジュールの順序に対応する、請求項１に記載の方法。
【請求項５７】
前記ブロック制御語中のパラメータをマルチプレクサ選択に適用し、これにより２つのモジュール同士間での接続部を構成することを更に含む、請求項１に記載の方法。
【請求項５８】
ステータスレジスタを、前記ブロック制御ヘッダ中のステータスカウント値に従ってモジュールから読み出すことをさらに含む、請求項１に記載の方法。
【請求項５９】
複数の再構成可能モジュールを有するパイプライン型ビデオプリプロセッサを備えるデジタル信号プロセッサであって、前記パイプライン型ビデオプリプロセッサが、
ブロック制御構造をメモリから直接メモリアクセス（「ＤＭＡ」）チャネルを介して受信するための入力ポートと、
（ｉ）前記ブロック制御構造中のブロック制御ヘッダを復号化することおよび（ｉｉ）前記ブロック制御構造中のブロック制御語を、前記復号化されたブロック制御ヘッダに従って選択することのための画像パイプコントローラと、
前記ブロック制御語を受信して、前記ブロック制御語中のパラメータを再構成可能モジュール中のアプリケーションレジスタに適用し、これにより前記モジュールのパラメータを調整するためのシャドーレジスタと、
を備える、デジタル信号プロセッサ。
【請求項６０】
アプリケーションレジスタ用に意図されたブロック制御語のオフセットが、メモリマップドレジスタ（「ＭＭＲ」）空間中の同じアプリケーションレジスタのアドレスに対応する、請求項１に記載のデジタル信号プロセッサ。
【請求項６１】
パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするシステムであって、
画像データを処理するための再構成可能ハードウエアモジュールと、
更新されたモジュールパラメータの集合を記憶するためのシャドーレジスタと、
前記パラメータの更新された集合を前記モジュールに適用するための画像パイプコントローラと、
前記パラメータの更新された集合を受信するための前記モジュール内のアプリケーションレジスタと、を備え、
前記モジュール中の異なったパイプライン段階が、前記パイプラインを通るデータ境界の伝播に従って異なった時点で、前記パラメータの更新された集合を受信する、システム。
【請求項６２】
前記更新されたモジュールパラメータの集合が、プロセッサまたは直接メモリアクセス（「ＤＭＡ」）チャネルのうちの一方から受信される、請求項１に記載のシステム。
【請求項６３】
前記画像データが画像フレームを含み、前記データ境界がフレーム境界を含む、請求項１に記載のシステム。
【請求項６４】
前記更新されたモジュールパラメータの集合が、画像フレームの連続したシリーズのうちの１つに対してまたは固定した数の画像フレームに対して適用される、請求項１に記載のシステム。
【請求項６５】
前記更新されたモジュールパラメータの集合を用いて処理された画像データが、対応してタグ付けされる、請求項１に記載のシステム。
【請求項６６】
前記タグ付けされた情報が、ＤＭＡチャネルまたはプロセッサ出力部を用いて出力される、請求項１に記載のシステム。
【請求項６７】
前記パイプラインが、ドレイン指令に従ってフラッシュされる、請求項１に記載のシステム。
【請求項６８】
前記モジュールと第２のモジュールとの間の接続部が、前記パイプラインがフラッシュされるときに変更される、請求項１に記載のシステム。
【請求項６９】
前記モジュールは、前記更新されたパラメータの集合が自身のパイプライン中のすべての段階に対して適用されるときに、制御信号をアサートする、請求項１に記載のシステム。
【請求項７０】
下流のモジュールが、前記制御信号がアサートされると、前記更新されたパラメータの集合を適用し始める、請求項１に記載のシステム。
【請求項７１】
パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングする方法であって、
画像データを処理するためのモジュールのための更新されたパラメータの集合を、シャドーレジスタ中に受信することと、
前記更新されたパラメータの集合を前記モジュールに送出することと、
前記更新されたパラメータの集合を、前記パイプラインを通るデータ境界の伝播に従って異なった時点で前記モジュール中の異なったパイプライン段階に適用することと、
を含む、方法。
【請求項７２】
前記画像データが画像フレームを含み、前記データ境界がフレーム境界である、請求項１に記載の方法。
【請求項７３】
前記更新されたモジュールパラメータの集合を、画像フレームの連続したシリーズのうちの１つに対してまたは固定した数の画像フレームに対して適用することを更に含む、請求項１に記載の方法。
【請求項７４】
前記更新されたモジュールパラメータの集合を用いて処理された画像データにタグ付けすることを更に含む、請求項１に記載の方法。
【請求項７５】
ＤＭＡチャネルまたはプロセッサ出力部を用いて、前記タグ付けされた画像データを出力することをさらに含む、請求項１に記載の方法。
【請求項７６】
前記パイプラインをドレイン指令に従ってフラッシュさせることを更に含む、請求項１に記載のシステム。
【請求項７７】
前記モジュールと第２のモジュールとの間の接続部を、前記パイプラインがフラッシュされるときに変更することを更に含む、請求項１に記載のシステム。
【請求項７８】
複数の再構成可能モジュールを有するパイプライン型ビデオプリプロセッサを備えるデジタル信号プロセッサであって、前記パイプライン型ビデオプリプロセッサが、
画像データを処理するための再構成可能ハードウエアモジュールと、
更新されたモジュールパラメータの集合を記憶するためのシャドーレジスタと、
前記更新されたパラメータの集合を前記モジュールに対して適用するための画像パイプコントローラと、
前記更新されたパラメータの集合を受信するための前記モジュール内のアプリケーションレジスタであって、前記モジュール中の異なったパイプライン段階が、前記更新されたパラメータの集合を、前記パイプラインを通るデータ境界の伝播に従って異なった時点で受信する、アプリケーションレジスタと、
を備える、デジタル信号プロセッサ。
【請求項７９】
前記更新されたパラメータの集合が、前記デジタル信号プロセッサまた直接メモリアクセス（「ＤＭＡ」）チャネルのうちの一方から受信される、請求項１に記載のデジタル信号プロセッサ。
【請求項８０】
前記画像データが画像フレームを含み、前記データ境界がフレーム境界を含む、請求項１に記載のデジタル信号プロセッサ。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願
本出願は、２０１１年１０月１４日に提出された、米国仮特許出願第６１／５４７、４４２号に対する優先権を主張するものであり、これはその全体が参照により本明細書中に組み込まれる。
背景技術
【０００２】
ビデオカメラで生成されたりまたはメモリから読み出されたりしたものなどのビデオフレームのストリームは、ビデオの品質を改善したりまたはビデオから特徴を抽出したりするための処理をしばしば必要とする。この処理は従来、後処理動作でソフトウエアによって実施される。後処理動作は変動し得るが、その理由は、（ｉ）アルゴリズム処理モジュールのパラメータ／係数が修正する必要がある、（ｉｉ）所与のアルゴリズムの微細な変動を実施する必要がある、および／または（ｉｉｉ）ビデオに対して実施する必要がある動作を変更する必要がある、からである。しかしながら、ソフトウエアソリューションは、多用途ではあるが、処理能力という点で遅く、かつ高価である。ハードウエアベースのアルゴリズムは一般的には、より早く、かつより効率的であるが、ハードウエアは、本質的に、迅速に、かつ容易に再構成するのが難しく、ライブのストリーミング中のビデオに遅れを取らずについていかなければならないときには特にそうである。ハードウエアベースの画像処理システムは、したがって、そのフレキシビリティの制限のために非最適な結果を生じる。したがって、高速で、効率的で、再構成可能なハードウエアベースの画像処理システムに対する需要が存在する。
【発明の概要】
【０００３】
本発明の１つの実施形態では、パイプライン型のビデオプリプロセッサ（「ＰＶＰ」）は、互いに異なった様々なカスタマイズ可能な構成で互いに対して接続され得るいくつかのアルゴリズム変換画像処理モジュールから成る。これらのモジュールの各々は、所与のアルゴリズム実装物の限定された変動を制御する複数のパラメータレジスタを有する。これらモジュールのパラメータは、データ損失なしでフレーム毎に再構成され得るが、モジュールの構成は、最小のデータ損失でまたはデータ損失なしで変更され得る。これらパラメータは、接続されたプロセッサを介して、ＤＭＡアクセスを介して、または同時に双方を介して変更され得る。様々な制御スキームが、互いに互換性があり、互いにシームレスな移行が保証されるように設計されている。
【０００４】
１つの態様では、パイプライン型ビデオプリプロセッサは、パイプライン中に配列された複数の画像処理モジュールを含む。入力ポートは、複数のモジュールの構成パラメータを受信し、画像パイプコントローラは、これらの構成パラメータを復号化する。シャドーレジスタは、構成パラメータを複数のモジュールに適用し、これによりモジュールの画像処理特徴を変更する。
【０００５】
パイプラインは、メモリからの画像データを処理するためのメモリパイプライン、またはデジタルカメラからの画像データを処理するためのカメラパイプラインであり得る。パイプラインは、１つ以上の更なるパイプライン（例えば、メモリパイプラインまたはカメラパイプライン）が、含まれ得る。構成パラメータは、プロセッサまたは直接メモリアクセス（「ＤＭＡ」）エンジンから受信され得る。構成パラメータは、ブロック制御構造中のメモリ中に配列されて、ＤＭＡチャネルを介してアクセスされるが、ブロック制御構造は、ブロック制御ヘッダおよび１つ以上のブロック制御語を含み得る。ブロック制御構造中のブロック制御語のオフセットは、メモリマップドレジスタ（「ＭＭＲ」）空間中のアドレスに対応し得る。構成パラメータは、ビデオデータの第１のフレームに適用され、更新された構成パラメータは、ビデオデータの第２のフレームに適用され得る。モジュール中の異なったパイプライン段階は、更新された構成パラメータを、データ境界に従って異なった時点で受信し得る。
【０００６】
別の態様では、パイプライン型ビデオプリプロセッサ中で画像フレームを処理する方法は、パイプライン型ビデオプリプロセッサ中の複数の画像処理モジュールの構成パラメータを受信することを含む。構成パラメータはシャドーレジスタに記憶されて、複数の画像処理モジュールに適用され、これによりモジュールの画像処理特徴を変更し得る。
【０００７】
構成パラメータは、プロセッサまたはＤＭＡエンジンから受信され得るが、モジュールは、１つ以上のパイプライン中に配列され得る。１つ以上のパイプラインは、メモリからの画像データを処理するためのメモリパイプラインまたはデジタルカメラからの画像データを処理するためのカメラパイプラインを含み得る。構成パラメータは、ブロック制御構造中のメモリ中に配列され、ＤＭＡチャネルを介してアクセスされ得る。ブロック制御構造は、ブロック制御ヘッダおよび１つ以上のブロック制御語を含み得る。ブロック制御構造中のブロック制御語のオフセットは、メモリマップドレジスタ（「ＭＭＲ」）空間中のアドレスに対応し得る。構成パラメータは、ビデオデータの第１のフレームに適用され、更新された構成パラメータはビデオデータの第２のフレームに適用され得る。モジュール中の異なったパイプライン段階は、更新された構成パラメータを、データ境界に従って異なった時点で受信し得る。
【０００８】
別の態様では、デジタル信号プロセッサ中のパイプライン型ビデオプリプロセッサは、パイプライン中に配列された複数の画像処理モジュールと、これら複数のモジュールの構成パラメータを受信するための入力ポートとを含む。画像パイプコントローラは、構成パラメータを復号化し、シャドーレジスタは、構成パラメータを複数のモジュールに適用し、これによりモジュール中の画像処理特徴を変更する。パイプラインは、メモリからの画像データを処理するためのメモリパイプラインまたはデジタルカメラからの画像データを処理するためのカメラパイプラインであり得る。
【０００９】
別の態様では、パイプライン型プリプロセッサ中でモジュールを構成するシステムは、プロセッサから第１の制御信号を受信するための第１の入力ポートと、メモリから第２の制御信号を受信するための第２の入力ポートとを含む。調停ユニットが、第１の制御信号と第２の制御信号との間の矛盾を解決する。コントローラが、第１および第２の制御信号を復号化して、これらから誘導された構成パラメータをモジュールに適用する。
【００１０】
インターフェース（例えば、アドバンストペリフェラルバス（「ＡＰＢ」）インターフェース）が、第１の制御信号を復号化するために用いられ得る。第１の制御信号は、メモリマップドレジスタ（「ＭＭＲ」）入力であり、第２の制御信号は、１つ以上の直接メモリアクセス（「ＤＭＡ」）チャネルから受信され得る。第１の制御信号は、モジュールの第１のサブ集合を制御し、同時に、第２の制御入力は、モジュールの第２のサブ集合を制御し得る。モジュールは、第１および第２の制御信号の双方によって制御され得る。シャドーレジスタは、復号化された第１および第２の制御信号のうちの一方を受信し得る。シャドーレジスタは、アプリケーションレジスタを少なくとも１つのモジュールに書き込み、これにより構成パラメータをモジュールに適用し得る。調停ユニットは、矛盾が発生したら第２の制御信号を停止し得る。
【００１１】
別の態様では、パイプライン型プリプロセッサ中でモジュールを構成する方法は、プロセッサから第１の制御信号およびメモリからの第２の制御信号を受信することを含む。第１の制御信号と第２の制御信号との間の矛盾が解決される。第１および第２の制御信号は復号化され、これらから誘導された構成パラメータはモジュールに適用される。
【００１２】
シャドーレジスタは、第１の制御信号と第２の制御信号のうちの一方から誘導された情報で充填され得る。モジュールが、シャドーレジスタの内容物に従って構成され得る。第１の制御信号は、モジュールの構成中は無視され得る。第２の制御信号は、矛盾が発生すると停止され得る。第２の制御信号は、１つ以上のＤＭＡチャネルから受信され得る。第１の制御信号はモジュールの第１のサブ集合を制御し、同時に、第２の制御入力はモジュールの第２のサブ集合を制御し得る。モジュールは、第１の制御信号と第２の制御信号の双方によって制御され得る。
【００１３】
別の態様では、デジタル信号プロセッサ中の構成可能モジュールを有するパイプライン型ビデオプリプロセッサは、デジタル信号プロセッサから第１の制御信号を受信するための第１の入力ポートと、メモリから第２の制御信号を受信するための第２の入力ポートとを含む。調停ユニットが、第１の制御信号と第２の制御信号との間の矛盾を解決する。コントローラは、第１および第２の制御信号を復号化し、これらから誘導された構成パラメータがモジュールに適用される。第１の制御信号はＭＭＲ入力であり、第２の制御信号はＤＭＡ入力であり得る。
【００１４】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするシステムは、直接メモリアクセス（「ＤＭＡ」）チャネルを介してメモリからブロック制御構造を受信するための入力ポートを含む。画像パイプコントローラは、ブロック制御構造中のブロック制御ヘッダを復号化して、復号化されたブロック制御ヘッダに従ってブロック制御構造中のブロック制御語を選択する。シャドーレジスタはブロック制御語を受信して、ブロック制御語中のパラメータを再構成可能モジュール中のアプリケーションレジスタに適用し、これによりモジュールのパラメータを調整する。
【００１５】
ブロック制御ヘッダは、モジュールを一意に識別するブロックアドレスを含み得る。入力ポートは更に、複数のブロック制御構造を含むブロック制御リストを受信し得る。ブロック制御ヘッダは、いくつかのブロック制御構造を含む語カウント値を含み得る。ブロック制御構造の順序は、パオプライン中のモジュールの順序に対応し得る。ブロック制御ヘッダは、どのアプリケーションレジスタがブロック制御語を受信するかを示すオフセットを含み得る。このオフセットは、モジュール中のアプリケーションレジスタのメモリマップドレジスタ（「ＭＭＲ」）アドレスとモジュールのＭＭＲ基準アドレスとの間の差と等価であり得る。ブロック制御ヘッダは、モジュールがどのように第２のモジュールに接続するかを指定するためのマルチプレクサ選択情報を含み得る。アプリケーションレジスタ用に意図されたブロック制御語のオフセットは、メモリマップドレジスタ（「ＭＭＲ」）空間中の同じアプリケーションレジスタのアドレスに対応し得る。ブロック制御語のオフセットは、アドレスをシフトさせることによって獲得され得る。
【００１６】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングする方法は、直接メモリアクセス（「ＤＭＡ」）を介してメモリからブロック制御構造を受信して、ブロック制御構造中のブロック制御ヘッダを復号化することを含む。ブロック制御構造中のブロック制御語が、復号化されたブロック制御ヘッダに従って選択される。ブロック制御語中のパラメータが、再構成可能モジュール中のアプリケーションレジスタに適用され、これによりモジュールのパラメータを調整する。
【００１７】
ブロック制御ヘッダを復号化することは、モジュールを一意に識別するブロックアドレスを復号化することを含む。複数のブロック制御構造を含むブロック制御リストが、受信され得る。ブロック制御ヘッダを復号化することは、いくつかのブロック制御構造を含む語カウント値を復号化することを含み得る。ブロック制御構造の各々の中のブロック制御語は、複数のモジュールの各々に対して適用され得る。ブロック制御構造の順序は、パイプ中のモジュールの順序に対応し得る。ブロック制御語中のパラメータは、マルチプレクサ選択に適用され、これにより２つのモジュール間の接続部を構成し得る。ステータスレジスタは、ブロック制御ヘッダ中のステータスカウント値に従ってモジュールから読み出され得る。
【００１８】
別の態様では、デジタル信号プロセッサ中で複数の再構成可能モジュールを有するパイプライン型ビデオプリプロセッサは、直接メモリアクセス（「ＤＭＡ」）チャネルを介してメモリからブロック制御構造を受信するための入力ポートを含む。画像パイプコントローラは、ブロック制御構造中のブロック制御ヘッダを復号化して、復号化されたブロック制御ヘッダに従ってブロック制御構造中のブロック制御語を選択する。シャドーレジスタは、ブロック制御語を受信して、ブロック制御語中のパラメータを再構成可能モジュール中のアプリケーションレジスタに適用し、これによりモジュールのパラメータを調整する。アプリケーションレジスタ用に意図されたブロック制御語のオフセットは、メモリマップドレジスタ（「ＭＭＲ」）空間中の同じアプリケーションレジスタのアドレスに対応し得る。
【００１９】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするシステムは、画像データを処理するための再構成可能ハードウエアモジュールを含む。シャドーレジスタは、更新されたモジュールパラメータの集合を記憶する。画像パイプコントローラは、更新されたパラメータの集合をモジュールに適用する。モジュール内のアプリケーションレジスタは、更新されたパラメータの集合を受信する。モジュール中の異なったパイプラインは、更新されたパラメータの集合を、パイプラインを通るデータ境界の伝播に従って異なった時点で受信する。
【００２０】
更新されたモジュールパラメータの集合は、プロセッサまたは直接メモリアクセス（「ＤＭＡ」）チャネルのうちの一方から受信され得る。画像データは画像フレームを含み得るが、データ境界はフレーム境界である。更新されたモジュールパラメータの集合は、画像フレームの連続シリーズのうちに１つに対してまたは固定数の画像フレームに対して適用され得る。更新されたモジュールパラメータの集合を用いて処理された画像データは、対応してタグ付けされ、タグ付けされた情報は、ＤＭＡチャネルまたはプロセッサ出力部を用いて出力され得る。パイプラインは、ドレイン指令に従ってフラッシュされ得る。モジュールと第２のモジュールとの間の接続部は、パイプラインがフラッシュされるときに、変更され得る。モジュールは、更新されたパラメータの集合がそのパイプライン中のすべての段階に対して適用されたときに制御信号をアサートし得る。下流のモジュールは、制御信号がアサートされると、更新されたパラメータの集合を適用し始め得る。
【００２１】
別の態様では、パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングする方法は、画像データを処理するためのモジュールの更新されたパラメータの集合を、シャドーレジスタ中に受信することを含む。更新されたパラメータの集合は、モジュールに送出される。更新されたパラメータの集合は、パイプラインを通るデータ境界の伝播に従って異なった時点でモジュール中の異なったパイプライン段階に送出される。
【００２２】
画像データは画像フレームを含み、データ境界はフレーム境界であり得る。更新されたモジュールパラメータの集合は、画像フレームの連続したシリーズのうちの１つに対してまたは固定数の画像フレームに対して適用される。更新されたモジュールパラメータの集合を用いて処理された画像データはタグ付けされ、タグ付けされた画像データは、ＤＭＡチャネルまたはプロセッサ出力部を用いて出力され得る。パイプラインは、ドレイン指令に従ってフラッシュされ得るが、モジュールと第２のモジュールとの間の接続部は、パイプラインがフラッシュされるときに変更され得る。
【００２３】
別の態様では、デジタル信号プロセッサ中で複数の再構成可能モジュールを有するパイプライン型ビデオプリプロセッサシステムは、画像データを処理するための再構成可能ハードウエアモジュールを含む。シャドーレジスタは、更新されたモジュールパラメータの集合を記憶する。画像パイプコントローラは、更新されたパラメータの集合をモジュールに適用する。モジュール内のアプリケーションレジスタは、更新されたパラメータの集合を受信する。モジュール中の異なったパイプライン段階は、更新されたパラメータの集合を、パイプラインを通るデータ境界の伝播に従って異なった時点で受信する。更新されたモジュールパラメータの集合は、デジタル信号プロセッサまたは直接メモリアクセス（「ＤＭＡ」）チャネルのうちの一方から受信され得る。画像データは画像フレームを含み、データ境界はフレーム境界であり得る。
【００２４】
これらおよび他の目的、並びに本明細書に開示される本発明の長所および特徴は、次の説明、添付図面および請求の範囲を参照すればより明瞭になるであろう。更にその上、本明細書に説明する様々な実施形態の特徴は、互いに排他的なものではなく、様々な組み合わせと置き換えで存在することが可能であることを理解すべきである。
【図面の簡単な説明】
【００２５】
図面中、同様の参照符号は、様々な図全体にわたって同じ部品を一般的に参照する。以下の説明において、本発明の様々な実施形態は、以下の図面を参照して説明される。
【００２６】
【図１】本発明のある実施形態に係わるＰＶＰのブロック図である。
【００２７】
【図２】本発明のある実施形態に係わるモジュール構成のブロック図である。
【００２８】
【図３Ａ】本発明のある実施形態に係わる調停スキームの実装例である。
【図３Ｂ】本発明のある実施形態に係わる調停スキームの実装例である。
【００２９】
【図４】本発明のある実施形態に係わるブロック制御リストの図である。
【００３０】
【図５】本発明のある実施形態に係わるブロック制御ヘッダの図である。
【００３１】
【図６】本発明のある実施形態に係わるフレーム毎のパラメータ更新スキームのブロック図である。
【００３２】
【図７】本発明のある実施形態に係わるフレーム毎の更新のタイミング図である。
【００３３】
【図８】本発明のある実施形態に係わるクロックのゲーティングおよびブロックリセットの生成の論理回路８００である。
【００３４】
【図９】本発明のある実施形態に係わる例示のＰＶＰである。
【００３５】
【図１０】本発明のある実施形態に係わるＰＶＰを組み込むシステムのブロック図である。
【発明を実施するための形態】
【００３６】
図１は、パイプライン型ビデオプリプロセッサ（「ＰＶＰ」）１００の実施形態を図示する。このＰＶＰは、あらゆる入力データに基づいて動作し得るが、１つの実施形態では、このデータは、カメラセンサーからキャプチャされたビデオ画像データおよび／またはメモリからフェッチしたビデオ画像データである。ＰＶＰはスタンドアロンのシリコンチップ上に置かれ得るが、ＰＶＰが、デジタル信号プロセッサなどのプロセッサと一緒にチップ上に置かれる実施形態もある。第１の入力データフォーマッタ１０２は、カメラという供給源から入力されるカメラデータ１０４をフォーマッティングするために用いられ、第２の入力データフォーマッタ１０６は、メモリという供給源からのメモリデータ１０８をフォーマッティングするために用いられ得る。１つ以上の供給源からのデータは、同時に処理され得る。本発明は、いかなる特定の数のまたは種類の入力供給源にも制限されることはなく、入力データ供給源は、１つ以上のカメラという供給源１０４および／または１つ以上のメモリという供給源１０８を含み得る。各々の供給源１０４、１０８は、それ自身の入力データフォーマッタ１０２、１０６によって受信され、または入力データフォーマッタ１０２、１０６を他の供給源１０２、１０４と共有し得る。
【００３７】
入力データフォーマッタ１０２、１０６は、フォーマッティングされた入力データを１つ以上の再構成可能パイプライン１１０、１１２、１１４、１１６に出力する。各々のパイプライン１１０、１１２、１１４、１１６は、１つ以上の処理モジュール１１８を包含する。以下により詳しく説明するように、処理モジュール１１８は、互いに異なった様々な画像処理機能およびタスクを実施し、所望の画像処理結果に従って選択され、構成され得る。パイプライン毎のモジュール１１８の数、パイプライン内でのモジュール１１８の順序、およびパイプライン内でのモジュール１１８の構成は、必要に応じて再構成され、かつ所与のモジュール１１８は、互いに異なったパイプライン１１０、１１２、１１４、１１６での用途に応じて選択され得る。図１は、第１のパイプライン１１０中での４つのモジュール１１８（２つのモジュール１１８が、並行に動作するように構成されている）、第２のパイプライン１１２中での２つのモジュール１１８、第３のパイプライン１１４中での１つのモジュール１１８、第４のパイプライン１１６中での２つのモジュール１１８を図示している。このモジュール構成は、ＰＶＰ１００のたった１つの可能な構成として提示されているが、しかしながら、当業者は、他の構成が可能であることを理解するであろう。
【００３８】
パイプライン１１０、１１２、１１４、１１６の出力は、出力データフォーマッタ１２０、１２２、１２４、１２６によって受信されるが、これらのフォーマッタは、出力データを（例えば、それを圧縮したりパッキングしたりすることによって）準備して、それを、出力ポート１２８を介してオフチップで送出する。１つの実施形態では、出力データフォーマッタ１２０、１２２、１２４、１２６は、バスプロトコル（例えば、ＡＸＩバス）との接続用に用いられる動的データ交換（「ＤＤＥ」）モジュールに、ピアツーピア接続によって、接続される。１つの実施形態では、各々のパイプライン１１０、１１２、１１４、１１６は、それ自身の出力データフォーマッタ１２０、１２２、１２４、１２６を有しているが、１つ以上のパイプライン１１０、１１２、１１４、１１６が、（例えば、パイプライン同士間での選択のためのマルチプレクサを用いて）１つの出力データフォーマッタを共有し得る実施形態もある。
【００３９】
各々のモジュール１１８は、外部の供給源によって制御される中間構成パラメータを有し得る。各々のモジュール１１８は、所与のアルゴリズムの境界内でのこのモジュールによって提供される処理の性質を決定するそれ自身のローカルパラメータレジスタの集合を有し得るが、更なるパラメータレジスタが、モジュール１１８の一部または全てに共通であり得る。これらのパラメータレジスタには、アプリケーションレジスタ１３０および／またはステータスレジスタ１３２が含まれ得るが、これらのレジスタのたった１つの集合を解説目的で示すが、各々のモジュール１１８は、アプリケーションレジスタ１３０およびステータスレジスタ１３２のそれ自身の集合を含み得る。以下により詳しく説明するように、パラメータレジスタは、接続されたプロセッサを含む様々な供給源によって（アドバンストペリフェラルバスすなわち「ＡＰＢ」インターフェースなどのインターフェース１３４を介して）または、入力／出力モジュール１３６を用いることによる直接メモリアクセス（「ＤＭＡ」）を介して、読み出されたりまたは書き込まれたりし得る。１つの実施形態では、制御情報およびステータス情報は、シャドーレジスタ１３８を用いて入力されたり出力されたりするが、シャドーレジスタ１３８は、パイプライン１１０、１１２、１１４、１１６を通って現在移動中の画像データのタイミングに従ってアプリケーションレジスタ１３０および／またはステータスレジスタ１３２に読み出し、書き込みし、これにより、例えば、第１のパラメータ集合がパイプライン中の第１のフレームに適用され、第２のパラメータ集合がパイプライン中の第２のフレームに適用されるようにする。画像パイプコントローラ１４０は、以下により詳しく説明するように、モジュール１１８の制御を調整するために用いられ得る。
【００４０】
様々な実施形態では、モジュール１１８は、コンボリューション／ダウンスケーラーエンジン（「ＣＮＶ」）、画素の大きさおよび角度計算ユニット（「ＰＭＡ」）、しきい値、ヒストグラムおよび圧縮エンジン（「ＴＨＣ」）、算術計算ユニット（「ＡＣＵ」）、画素エッジ分類装置（「ＰＥＣ」）、統合画像計算（「ＩＩＭ」）、および／またはアップ／ダウンスケーラー（「ＵＤＳ」）を含み得る。当業者は、他のモジュールが含まれ得ること、および本発明はこれらのモジュールだけに限られるわけではないことを理解するであろう。モジュール１１８は、互いに対して選択的に接続されて、例えば、プログラム可能クロスバースイッチなどの技術上周知のいずれかの方法を用いて、互いに異なった１つ以上のパイプラインを作成し得る。１つの実施形態では、図２に図示するように、モジュール１１８は、これら同士間に置かれたマルチプレクサを用いて構成され得る。図２に示すシステム２００においては、３つの出力ポートを有する第１のモジュール２０２および１つの出力ポートを有する第２のモジュール２０４は、マルチプレクサ２０６のシステムを介して、２つの入力ポート（および３つの出力ポート）を有する第３のモジュール２０８に対して接続される。マルチプレクサ２０６の選択ライン２１０を制御することによって、第３のモジュール２０８は、第１および第２のモジュール２０２、２０４の出力のうちのいずれかをその２つの入力２１２のうちのどちらかとして受信し得る。選択ライン２１０は、他のモジュールパラメータの構成に類似した様式で、プロセッサまたはＤＭＡ制御装置を介して構成され得る。当業者は、マルチプレクサ２０６の他の構成も本発明の範囲内にあることを理解するであろう。
【００４１】
任意の所与のモジュールが、パイプ再構成物の一部としてのカメラパイプおよび／またはメモリパイプを横断し得る。カメラパイプは画素クロックに影響し、メモリパイプはシステムクロックに影響し得るが、クロックの双方が互いに対して非同期であり得る。ＰＶＰアーキテクチャは、モジュールがパイプ同士間で切り替えられ得るように、クロックドメイン全体にわたって適切に同期が取れることを保証し得る。
１．複数の供給源からのモジュールの制御
【００４２】
１つの実施形態では、ＰＶＰ中の画像処理モジュールは、（図１に示すインターフェース１３４などの）ＡＰＢインターフェースを介してアクセス可能な、例えばメモリマップドレジスタ（「ＭＭＲ」）を介して、リンクされたプロセッサによってアクセスされ得る。例えば、ハードウエア割り込みがアサートされ、例えば、プロセッサが、ステータス情報および制御情報を、ＰＶＰおよびそのモジュールに対して読み出したり書き込んだりし得る。一旦処理モジュールが適切に構成されると、画像データの流れは、プロセッサによってまたはＤＭＡエンジンによって指示され得る。
【００４３】
別の実施形態では、画像処理モジュールは、ＡＰＢインターフェース（すなわち、プロセッサを介して）および１つ以上のＤＭＡインターフェースのうちのいずれかまたは双方によって構成され得る。１つの実施形態では、処理モジュールの全てが、直接プロセッサ制御によって第１の時点で制御され、第２の時点では、ＤＭＡ制御によって制御される。別の実施形態では、モジュールの第１のサブ集合は、直接プロセッサ制御によって構成可能であり、同時に、第２のサブ集合はＤＭＡ制御によって構成可能である。例えば、ＰＶＰでは、モジュールの第１のサブ集合は、メモリ（すなわち、メモリパイプ）に記憶されているデータを処理するモジュールであり、第２のサブ集合は、カメラセンサー（すなわちカメラパイプ）から入力されるデータを処理するモジュールであり得る。別の実施形態では、複数の（例えば、２つ以上の）個別のＤＭＡ制御チャネルがあり得る。第１のＤＭＡ制御チャネルは、モジュールの第１のサブ集合を制御し、第２のＤＭＡ制御チャネルは、モジュールの第２のサブ集合を制御し得る。例えば、第１のＤＭＡ制御チャネルは、カメラパイプを制御し、第２は、メモリパイプを制御する。当業者は、読み出し制御および書き込み制御の他の組み合わせが可能であり、また、本発明が直接制御およびＤＭＡ制御のいかなる特定的な分割にも制限されないことを理解するであろう。
【００４４】
１つの実施形態では、レジスタの直接制御およびＤＭＡ制御は、最初にスクラッチレジスタの集合に読み出しまたは書き込みをすることによって遂行されるが、例えば、一旦これらのスクラッチレジスタが完全に書き込みされると、それらの内容物は、実際のアプリケーションレジスタに適用される。同様に、制御レジスタの読み出しは、最初に１つ以上のスクラッチレジスタを充填し、次に、これらのスクラッチレジスタがＤＭＡ制御によって読み出される。スクラッチレジスタは、図１に示すシャドーレジスタ１３０、１３２であり得る。１つの実施形態では、ＡＰＢインターフェースによる直接プロセッサ制御は、シャドーレジスタのロード中またはアンロード中は（すなわち、シャドーレジスタの内容物が、アプリケーションレジスタに適用されている時間中、またはステータスレジスタがシャドーレジスタを充填している時間中は）許容されない。
【００４５】
モジュールの制御は互いに異なった供給源からされ得るため、同時発生する複数のリクエスト同士間で矛盾が発生し得る。１つの実施形態では、調停によって、互いに異なった制御機構同士間の矛盾を解決し得る。図３Ａは、本発明のある実施形態に係わる解説的な調停スキーム３００を示す。この実施形態では、第１のＤＭＡチャネル３０２を用いて、カメラパイプライン中のモジュールを構成し、メモリパイプライン中のモジュールは、第２のＤＭＡチャネル３０４または、プロセッサによる直接制御用のＡＰＢリンク３０６を用いて構成され得る。調停ユニット３０８を用いて、第２のＤＭＡチャネル３０４とＡＰＢリンク３０６との間の矛盾を解決する。調停ユニット３０８は、自身のロードフェーズおよび／またはエラー通知の一部または全体の期間中にＤＭＡエンジンに対するアクセスを遅延させ、これによりＡＰＢリンク３０６によるあらゆる同時アクセスの有効性を保護するための停止機構または管制機構を含み得る。１つの実施形態では、調停モジュール３０８は、ＤＭＡエンジン３０４およびＡＰＢリンク３０６とインターフェースして、どのように制御データが画像処理モジュールに対してプログラムされるか／調停されるかを制御する。１つの実施形態では、調停モジュール３０８は、図１に示す画像パイプコントローラ（「ＩＰＣ」）１４０に組み込まれて、それぞれＰ２ＰバスおよびＡＰＢバスを介してＤＭＡエンジンおよびプロセッサと通信する。画像処理モジュールは、ＡＨＢバスなどの内部バスを用い得る。調停論理の実装の一実施形態を図３Ｂに示す。
【００４６】
画像処理モジュールの一部または全てを制御するクロックは、ＤＭＡインターフェースおよびプロセッサインターフェースのクロックドメインのそれとは異なったドメイン上にあり得る。この場合、クロックは、様々なドメイン全体にわたって非同期であり得る。１つの実施形態では、画像処理モジュールのサブ集合は互いに異なった長さの複数のパイプ中に配列され、データは、それが長い方のパイプで終了するより以前に短い方のパイプで処理を終了する（更に、例えば、ｌｏａｄ＿ｄｏｎｅ信号をアサートして、完了を示す）。同期モジュール３１０は、ｌｏａｄ＿ｄｏｎｅ信号の一部または全てが受信されたときに、例えば、ｌｏａｄ＿ｄｏｎｅ信号をパイプラインの各々から受信して、同期信号を調停ユニット３０８に送出することによって、後のデータもまた利用可能となるまでは早期のデータの同期を遅延させ得る。
【００４７】
パラメータレジスタのビットは、ポーリングまたは割り込みを用いて、プロセッサによって設定またはクリアされ得る。１つの実施形態では、ＤＭＡステータスチャネルは、パラメータレジスタ中の１つ以上の値をスキャンアウトするために用い得る。例えば、ヒストグラムステータスは、ＤＭＡステータスチャネル上でＴＨＣモジュールからスキャンアウトされ得る。ＤＭＡステータスチャネルのトリガーは、所与のモジュールの垂直同期（ｖｓｙｎｃ）出力部に基づき得る。２つのステータスが同じチャネル上でリクエストされると、識別フィールド（例えば、数字または文字）が各々のモジュールのステータスに対するステータスヘッダ中に含まれ、これら２つのステータスは、この事象を記録した後で、次々にシーケンスされ得る。
２．ＤＭＡを介してのプログラミング
【００４８】
ＤＭＡを介した制御を容易化するために、ブロック制御構造リスト（「ＢＣＬ」）と呼ばれる特殊な制御語形式が、システムメモリ中で定義され得る。ＢＣＬは、ＰＶＰ中の画像処理モジュール中のアプリケーションレジスタ用に意図された制御情報の配列であり、この制御情報はモジュールによってグループ化され、各々のグループは、どこで、そしてどのように制御情報を適用するかをＰＶＰに命令するヘッダ情報（例えば、ブロック制御ヘッダすなわち「ＢＣＨ」）を包含する。ＢＣＬは、ＤＭＡを介して読み出され、ヘッダ情報は画像パイプコントローラによって復号化され、これにより制御情報は、モジュールに適用される。ＢＣＬの構造は、例えば、新しいモジュールのＢＣＨをＢＣＬに添付するまたは挿入することによって、新しいモジュールを容易に追加することを許容し得る。
【００４９】
図４は、ＢＣＬ４００の１つの実施形態を図示する。いくつかのＢＣＨ４０２が示されているが、その各々が、ブロック制御語４０４の関連付けられたリストを有している。図５は、ＢＣＨ５００の拡大図を示す。第１のフィールドＢＬＯＣＫ５０２は、ＰＶＰ中の各々の画像処理モジュールに割り当てられた固有のアドレスを示し、これによりどのモジュールにパラメータを適用すべきであるかを画像パイプコントローラに命令する。第２のフィールドＷＣＮＴ５０４は、このブロックに包含される制御後の数を示し、これにより次のＢＣＨの位置を示す。ＷＣＮＴの使用によって、例えば、ブロックの終端にあるブロックの終了を示すフィールドに対する必要を回避し得る。別のフィールドＷＯＦＦ５０６は制御後に適用されるべきオフセットを示し、例えば、所与のモジュールが２５６個のレジスタの集合を有する場合、１０というオフセットを指定することは、制御語が１０個目のレジスタの最初に適用されることを意味する。ＷＣＮＴが（例えば）１２であれば、レジスタ１０〜２２がプログラムされている。
【００５０】
ＢＣＨ中の更なるフィールドは、例えば、図２に示すマルチプレクサ制御を用いてどのようにモジュールを上流および下流のモジュールに接続すべきであるかを示す。例えば、ＩＰＯＲＴフィールド５０８はマルチプレクサの第１のレベルを選択するために用いられ、ＩＢＬＯＣＫフィールド５１０はマルチプレクサの第２のレベルを選択するために用いられ得る。しかしながら、当業者は、選択ビットを用いるマルチプレクサプログラミングを指定する他のいかなる方法も本発明の範囲内にあることを理解するであろう。代替的には、すべてのＩＢＬＯＣＫ（複数可）およびＩＰＯＲＴ（複数可）が、ＢＣＨから除去され得るし、個別のクロスバー制御ヘッダ形式（すなわち、クロスバー制御構造すなわち「ＣＣＳ」パケット）が、定義され得る。他のフィールドには、モジュールがイネーブルされるべきかディスエーブルされるべきであるかを示すＳＴＡＲＴビット５１２と、どのパイプ（すなわちカメラパイプまたはメモリパイプ）に対してモジュールが所属すべきでありかを示すＰＩＰＥフィールド５１４が含まれる。別のフィールドＳＴＡＴＷＣＮＴ５１６は、モジュール中のいくつのステータスレジスタが読み出し動作で読み出されるべきであるかを示す。
【００５１】
１つの実施形態では、所与のパイプに対するＢＣＬは、入力データ形式の構成から始まり、１つ以上の画像処理モジュールの構成を含み、出力データ形式モジュールの構成で終了する。各々の画像処理モジュールの構成情報の順序は、パイプ中のモジュールの位置に対応し得る。モジュールのＢＣＨは、ＢＣＬ内で（例えば、２回以上）繰り返されて、パイプ内の所与のモジュール用のレジスタの２つの個別のグループのプログラミングを可能とし得る。例えば、第１のＢＣＨを用いて、モジュールのレジスタ１０〜２２をプログラムし、第２のＢＣＨを用いて、同じモジュールのレジスタ１００〜１１０をプログラムし得る。
【００５２】
所与のモジュールに対するＢＣＨの構成は、メモリマップドレジスタを介するモジュールの直接プロセッサ制御に相互関連し得る。例えば、所与のモジュールは、プロセッサを介するアクセス用の固定した基準アドレスを有し得るが、（ＤＭＡ制御用に用いられる）モジュールのＢＬＯＣＫ５０２の識別番号は、この基準アドレスから誘導し得る。１つの実施形態では、ＢＬＯＣＫ５０２の識別番号は、基準アドレスを５ビットだけ右にシフトすることによって発見され得る。同様に、実際のＭＭＲアドレスと規準アドレスとの間の差は、ＢＣＨ中のＷＯＦＦオフセットフィールドに直接に相互関連し得る。したがって、ＢＣＬ中の各々の制御後は、ＭＭＲアドレス空間中でのそれと同じ順序で配列され、これによりＢＣＨと、いずれかの制御スキームを用いてモジュール中のレジスタを構成するいずれかのソフトウエアとの設計を簡略化する。所与のレジスタが、ＭＭＲアドレス空間中で規準アドレスから３６のアドレス単位を除去したものであれば、同じレジスタは、ＤＭＡ制御スキームではＢＬＯＣＫ５０２の識別番号から３６単位だけオフセットされたものである。この構成を用いると、プログラマおよび／またはソフトウエアユーティリティは、２つの制御スキーム間を、例えば、スキーム間で翻訳するためのデコーダ／マッピングユーティリティを用いることなく、シームレスにシフトし得る。
【００５３】
ＤＭＡを介するステータスの読み出しは、ＤＭＡを介して制御情報を書き込むのと類似の様式で実施される。１つの実施形態では、モジュールステータス値は、所与のモジュールの出力能力に従って（すなわち、モジュールのクロックレートに従って）１つ以上のシャドーレジスタ中に移動される。次に、ステータス情報は、構成レジスタに従って定期的に（例えば、フレーム境界毎にまたはある数のフレーム毎に）ＤＭＡを介して送出される。ステータス情報は、１つのＤＭＡチャネル上でまたは同時に複数のＤＭＡチャネル上で送出され得る。上述したように、ＢＣＨ中のＳＴＡＴＷＣＮＴフィールド５１６は、読み出されて送出されるべきモジュール中のステータスレジスタの数を示す。
３．互いに異なったフレームに対するモジュールの再プログラミング
【００５４】
所与のパイプ構成に対して、本発明の実施形態は、任意のパイプを備えるモジュールに対するパラメータレジスタの再プログラミングを可能とし、これにより連続するフレームを、様々な係数で、または各々のモジュールが提供するアルゴリズムの変更によって処理し得る。所与のモジュールは、２クロックサイクル以上の待ち時間を有し得るが、モジュールの終端にあるパイプライン段階は、モジュールの最初にあるパイプライン段階が第２のフレームを処理している間に、例えば、第１のフレームを処理し得る。したがって、モジュールの行動に影響するアプリケーションレジスタは、モジュールの各々のパイプラインに対して互いに異なった時点で更新されて、各々のフレームが、その意図されるパラメータに従って処理されることを保証し得る。１つの実施形態では、各々のパイプライン中のアプリケーションレジスタは、フレーム境界がモジュール中のパイプラインを通って伝播するに連れて更新される。上述したように、シャドーレジスタは、適切な時点でアプリケーションレジスタを更新するために用いられ得るが、直接プロセッサＭＭＲ機構またはＤＭＡ制御機構は、シャドーレジスタだけを更新し、アプリケーションレジスタの更新は、時間がずらされる。
【００５５】
エンジンは、所与のパラメータ集合または所与の構成が適用される精度を、フレーム毎にまたは固定したフレーム集合毎に連続して制御し得る。一般的に、カメラパイプは、カメラセンサーからフレームを連続的に獲得し、一方、メモリパイプは、フレームの固定した集合を受信するが、しかしながら、どちらのモードもどちらかのパイプで用いられる。プロセッサは、ＰＶＰエンジン全体をディスエーブルさせることなく、連続モードから固定モードに（その逆にも）切り替えられ得る。パラメータをすべてのフレームに適用するために、フラグが設定され得る（例えば、フレームカウント値すなわち「ＦＮＣＴ」値はゼロにプログラムされ得る）。制御値の新しい集合がプログラムされると、これらの新しい値は、次のフレーム境界に適用され、また、この後で次のフレームに対して連続的に適用される。このアーキテクチャもまた、新しい制御パラメータで処理されたフレームの識別を容易にするために個別のステータスＤＭＡチャネル上にＴＡＧ機構を提供し得るが、プロセッサはこのＴＡＧ機構を用いて、どのフレームが、あるパラメータ集合を用いて処理を受信したかを決定し得る。ＴＡＧデータはステータスＤＭＡチャネル上で送出され、また、プロセッサ読み出しに利用可能であり得る。
【００５６】
パラメータを固定したフレーム集合に適用するために、ＦＣＮＴ値は非ゼロ値にプログラムされ、その後に監視され得る。一旦所定の数のフレームが処理されると、パイプラインは停止する（そして最後のフレームがパイプライン中に貼り付けられる）。一旦次のフレームグループが識別されて、処理のための待ち行列に入れられると、ＦＣＮＴ値が再度設定され、次のグループが（多分、異なったモジュールパラメータの集合で）
処理を開始する。次のフレームグループの処理は、パイプライン中に貼り付けられた前の集合最後のフレームを押し出す。
【００５７】
パイプラインは、別のパラメータ（例えば、ＤＲＡＩＮビット）が設定されるとフラッシュされ得る。例えば、有限のフレーム集合が処理用に識別され、ＤＲＡＩＮビットが設定されると、最後のフレームの完了時に、パイプラインはダミーの画素でフラッシュされ、これによりこの集合の最後のフレームがパイプラインによって出力されるようにする。最後のフレームがパイプラインを通過するに連れて、パイプライン中のモジュールがディスエーブルされる。１つの実施形態では、パイプラインが連続フレームモードにあり、ＤＲＡＩＮビットが設定されると、パイプラインは即座にフラッシュされてディスエーブルされる。どちらの場合も、次の制御後の集合は、パイプラインを（例えば、フレームのＢＣＨ中のＳＴＡＲＴビットを用いて）目覚めさせるように設定され得る。
【００５８】
図６は、第１のモジュール６０２、第２のモジュール６０４、これらを接続するデータ制御およびクロスバーユニット６０６、ならびに画像パイプコントローラ６０８の例示の実施形態６００を図示する。アプリケーションレジスタ値の新たな集合がＤＭＡまたは直接プロセッサ制御によってシャドーレジスタ中にロードされるとき、「連結ロード」信号がフレーム同期信号を一緒に第１のモジュール６０２に駆動される。第１のモジュール６０２は、入力データ中の第１の画素がモジュール６０２を通過するに連れて、そのアプリケーションレジスタをその内部パイプライン遅延に従って更新する（すなわち、第１のモジュールが５つのパイプリアン段階を含む場合、それは次に、画素データが完全に処理されるに連れて、アプリケーションレジスタ値をこれら５つの段階に適用する）。第１のモジュール６０２は、最初の画素の処理を完了するとき、連結ロード信号をその出力部にアサートし、これにより第２のモジュール６０４に対しても、新しいアプリケーションレジスタ値を（それ自身のパイプライン構成に従って）適用し始めるように命令する。連結ロード信号およびフレーム同期信号のタイミング図７００を図７に示し、図８に、クロックをゲーティングして、ドレイン完了および開始ビットに基づいてブロックリセットを生成する論理回路を図示する。
【００５９】
既存のパイプラインに対するモジュールのパラメータの再構成に加えて、パイプライン自身は、モジュールを追加するまたは削除することによって再構成され得る。リアルタイムパイプ（例えば、カメラパイプ、またはリアルタイムデータを取り扱う他のパイプ）の場合、エンジンは、たった１フレームデータの損失で、カメラパイプを含むモジュールのシームレスで動的な再構成を可能とする機構を含み得る。非リアルタイムパイプ（例えば、メモリパイプ）の場合、エンジンは、有限の停止とフレーム損失なしで、動的な再構成を可能とする機構を含み得る。
【００６０】
この機構は、レジスタ中のＤＲＡＩＮビットおよびそれぞれのモジュール中の自動ディスエーブルＳＴＡＲＴビットを用いて実装され得る。有限のフレーム集合の後、ＤＲＡＩＮ＝１を条件として、パイプ中のモジュールは（例えば、ＳＴＡＲＴビットを０に設定することによって）ディスエーブルされる。パイプの新しい構成を形成する新しいモジュールの集合は、そのＳＴＡＲＴビットが次のプログラミング構造中に設定され得る。
４．例
【００６１】
図９に、ＰＶＰアーキテクチャの例示の実施形態９００を図示する。このシステムは、カメラ入力部９０２およびメモリ入力部９０４を含む。カメラ入力部９０２は、３つのカメラパイプライン９０６、９０８、９１０にデータを入力し、メモリ入力部９０４は、２つのメモリパイプライン９１２、９１４にデータを入力する。第１のカメラパイプライン９０６は、２つのコンボリューション／ダウンスケーラーモジュール、画素の大きさおよび角度計算モジュール、および画素エッジ分類モジュールを含み、第２のカメラパイプライン９０８は、コンボリューション／ダウンスケーラーモジュールおよび統合画像計算モジュールを含み、第３のカメラパイプライン９１０は、しきい値、ヒストグラムおよび圧縮モジュールを含み、第１のメモリパイプ９１２は、コンボリューション／ダウンスケーラーモジュールおよび算術計算ユニットを含み、第２のメモリパイプラインは、アップ・ダウンスケーラーを含む。
【００６２】
図１０は、ＰＶＰ１００２およびそのサポートインターフェース回路を含むシステム１０００を図示する。プロセッサ１００４は、ＭＭＲインターフェースを介して直接的にＰＶＰ１００２を制御し得る。ＶＣＣクロスバー回路１００６はカメラパイプラインにデータを提供し、クロスバー１００６は、様々な入力供給源（例えば、ＰＰＩ入力部とＰＩＸＣ入力部）を選択し、これにより複数のカメラ入力部を提供する。ＤＤＥ調停ユニット１００８は、外部バス（例えば、ＡＸＩバス）とインターフェースして、ＤＭＡ制御を可能とし、ＤＤＥユニット１０１０は、ＰＶＰ１００２内の出力データ形式モジュールから出力データを取り除き、入力制御データおよび出力制御データならびにステータスデータを提供し、入力をメモリパイプラインに提供する。
【図１】
2014238861.tif 000003
【図２】
2014238861.tif 000004
【図３Ａ】
2014238861.tif 000005
【図３Ｂ】
2014238861.tif 000006
【図４】
2014238861.tif 000007
【図５】
2014238861.tif 000008
【図６】
2014238861.tif 000009
【図７】
2014238861.tif 000010
【図８】
2014238861.tif 000011
【図９】
2014238861.tif 000012
【図１０】
2014238861.tif 000013
【手続補正書】
【提出日】平成26年10月20日(2014.10.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングするシステムであって、
画像データを処理するための再構成可能ハードウエアモジュールと、
モジュールパラメータを記憶するためのシャドーレジスタと、
前記モジュールパラメータを前記モジュールに適用するためのコントローラと、
前記モジュールパラメータを受信するための前記モジュール内のアプリケーションレジスタと、を備え、
前記モジュール中の異なったパイプライン段階が、前記パイプラインを通るデータ境界の伝播に従って異なった時点で、前記モジュールパラメータを受信するように構成された、システム。
【請求項２】
アプリケーションレジスタが、前記モジュールパラメータを、プロセッサまたは直接メモリアクセス（ＤＭＡ）チャネルのうちの一方から受信するように構成された、請求項１に記載のシステム。
【請求項３】
前記画像データが画像フレームを含み、前記データ境界がフレーム境界を含む、請求項１に記載のシステム。
【請求項４】
コントローラが、前記モジュールパラメータを、画像フレームの連続したシリーズのうちの１つに対してまたは固定した数の画像フレームに対して適用するように構成された、請求項１に記載のシステム。
【請求項５】
コントローラが、前記モジュールパラメータを用いて処理された画像データをタグ付けし、タグ付けされた画像データが、ＤＭＡチャネルまたはプロセッサを用いて出力するように構成された、請求項１に記載のシステム。
【請求項６】
パイプラインビデオプロセッサが、ドレイン指令に従ってフラッシュするように構成された、請求項１に記載のシステム。
【請求項７】
前記モジュールと第２のモジュールとの間の接続部が、前記パイプラインがフラッシュされるときに変更されるように構成された、請求項１に記載のシステム。
【請求項８】
前記モジュールが、前記パラメータが自身のパイプライン中のすべての段階に対して適用されたときに、制御信号をアサートするように構成された、請求項１に記載のシステム。
【請求項９】
下流のモジュールが、前記制御信号がアサートされると、前記パラメータを適用し始めるように構成された、請求項８に記載のシステム。
【請求項１０】
パイプライン型ビデオプリプロセッサ中で再構成可能モジュールをプログラミングする方法であって、
画像データを処理するためのモジュールのためのパラメータを受信することと、
前記パラメータを前記モジュールに送出することと、
前記パラメータを、前記パイプラインを通るデータ境界の伝播に従って異なった時点で前記モジュール中の異なったパイプライン段階に適用することと、
を含む、前記方法。
【請求項１１】
前記画像データが画像フレームを含み、前記データ境界がフレーム境界である、請求項１０に記載の方法。
【請求項１２】
前記モジュールパラメータを、画像フレームの連続したシリーズのうちの１つに対してまたは固定した数の画像フレームに対して適用することを更に含む、請求項１０に記載の方法。
【請求項１３】
前記モジュールパラメータを用いて処理された画像データにタグ付けすることを更に含む、請求項１０に記載の方法。
【請求項１４】
ＤＭＡチャネルまたはプロセッサ出力部を用いて、前記タグ付けされた画像データを出力することをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記パイプラインをフラッシュさせることを更に含む、請求項１０に記載の方法。
【請求項１６】
前記モジュールと第２のモジュールとの間の接続部を、前記パイプラインがフラッシュされるときに変更することを更に含む、請求項１５に記載の方法。
【請求項１７】
パイプライン型ビデオプリプロセッサシステムを備えるデジタル信号プロセッサであって、前記パイプライン型ビデオプリプロセッサシステムが、
画像データを処理するための再構成可能モジュールと、
モジュールパラメータを記憶するためのレジスタと、
前記パラメータを前記再構成可能モジュールに対して適用するためのコントローラと、
前記パラメータを受信するための前記再構成可能モジュール内のアプリケーションレジスタであって、前記モジュール中の異なったパイプライン段階が、前記パラメータを、前記パイプラインを通るデータ境界の伝播に従って異なった時点で受信する、アプリケーションレジスタと、
を備える、前記デジタル信号プロセッサ。
【請求項１８】
アプリケーションレジスタが、前記パラメータを、前記デジタル信号プロセッサまた直接メモリアクセス（ＤＭＡ）チャネルのうちの一方から受信するように構成された、請求項１７に記載のデジタル信号プロセッサ。
【請求項１９】
前記画像データが画像フレームを含み、前記データ境界がフレーム境界を含む、請求項１７に記載のデジタル信号プロセッサ。
【外国語明細書】
2014238861000001.pdf