(57)【特許請求の範囲】
【請求項１】
画像センサからピクセルデータを受信するように構成された画像センサインタフェースと、
画像センサピクセルデータフォーマットである画像フレームに対するピクセルデータを受信し、及び
前記画像センサピクセルデータフォーマットである前記ピクセルデータを異なる色空間フォーマットに変換する、
ように構成されたフロントエンドピクセルデータ処理回路と、
前記フロントエンドピクセルデータ処理回路からの前記ピクセルデータに対して１つ以上の雑音フィルタリング又はカラー処理演算を実行するように構成されたバックエンドピクセルデータ処理回路と、
前記バックエンドピクセルデータ処理回路からピクセルデータを受信し、及びシステムメモリに前記画像フレームに対する前記ピクセルデータを出力するように構成された出力回路と、
前記画像センサインタフェースから前記画像センサピクセルデータフォーマットであるピクセルデータを受信し、又は前記フロントエンドピクセルデータ処理回路若しくは前記バックエンドピクセルデータ処理回路による処理の後のピクセルデータを受信し、
前記画像フレーム内の１つ以上のキーポイントを検出するように、前記受信されたピクセルデータに対してキーポイント検出演算を実行し、及び
前記システムメモリに前記１つ以上のキーポイントの記述を出力する、
ように構成されたキーポイント検出回路と、
を備える画像信号プロセッサ。
【請求項２】
前記キーポイント検出回路に接続されたマルチプレクサ回路を更に備え、前記マルチプレクサ回路は、
前記画像センサインタフェース、
前記システムメモリ、又は
前記バックエンドピクセルデータ処理回路
からのピクセルデータを選択し、及び
前記キーポイント検出回路に前記ピクセルデータを提供する、
ように構成されている、請求項１に記載の画像信号プロセッサ。
【請求項３】
前記マルチプレクサ回路と前記キーポイント検出回路との間に接続された前処理モジュールを更に備え、前記前処理モジュールは、前記ピクセルデータを輝度チャネルデータに変換するように構成されている、請求項２に記載の画像信号プロセッサ。
【請求項４】
前記キーポイント検出回路に接続されたキーポイント制御パラメータ記憶手段を更に備え、
前記キーポイント制御パラメータ記憶手段は、前記画像フレームのそれぞれの領域の第１の組に対応する複数のキーポイント感度閾値を記憶するように構成されており、
前記キーポイント検出回路は、前記画像フレームのそれぞれの領域の前記第１の組に対応する前記複数のキーポイント感度閾値のうちの１つを超える前記１つ以上のキーポイントのそれぞれのマグニチュード値に応じて、前記画像フレームのそれぞれの領域の前記第１の組内で検出された前記１つ以上のキーポイントの前記記述を選択的に出力する、請求項１に記載の画像信号プロセッサ。
【請求項５】
前記キーポイント検出回路は、前記画像フレームのそれぞれの領域の前記第１の組の各々の領域内で検出されたキーポイントのそれぞれの数を出力するように構成されており、
前記画像フレームのそれぞれの領域の前記第１の組の各々の領域内で検出されたキーポイントの前記それぞれの数は、前記複数のキーポイント感度閾値のうちの１つを動的に調節するようにプログラム命令によって使用可能である、請求項４に記載の画像信号プロセッサ。
【請求項６】
前記キーポイント制御パラメータ記憶手段は、
前記画像フレームのそれぞれの領域の第２の組ごとの許容可能なキーポイントのプログラム可能な最大限度であって、前記プログラム可能な最大限度は、前記画像フレームのそれぞれの領域の前記第２の組ごとのキーポイントの合計数の記述を出力するように、前記キーポイント検出回路によって使用可能であり、それぞれの領域の前記第２の組ごとのキーポイントの前記合計数は、許容可能なキーポイントの前記プログラム可能な最大限度を超えない、プログラム可能な最大限度と、
前記画像フレームのそれぞれの領域の前記第２の組のプログラム可能なサイズであって、許容可能なキーポイントの前記プログラム可能な最大限度に対応するそれぞれの領域の前記第２の組は、前記複数の調節可能なキーポイント感度閾値に対応するそれぞれの領域の前記第１の組よりも小さい前記画像フレームの領域である、プログラム可能な領域サイズと
を記憶するように構成されている、請求項４に記載の画像信号プロセッサ。
【請求項７】
前記画像信号プロセッサは、低電力モードで動作するように構成されており、前記低電力モードでは、
前記フロントエンドピクセルデータ処理回路及び前記バックエンドピクセルデータ処理回路の１つ以上のステージが非活性状態に入り、
前記フロントエンドピクセルデータ処理回路及び前記バックエンドピクセルデータ処理回路の前記１つ以上のステージが前記非活性状態に入る間に、前記画像センサインタフェース及び前記キーポイント検出回路が前記システムメモリに前記１つ以上のキーポイントの前記記述を出力することを継続するように構成された活性状態にとどまり、
前記キーポイント検出回路が１つ以上のキーポイントを検出したことに応じて、前記フロントエンドピクセルデータ処理回路及び前記バックエンドピクセルデータ処理回路の前記１つ以上のステージが活性状態に入る、請求項１に記載の画像信号プロセッサ。
【請求項８】
画像センサインタフェースによって、画像センサからピクセルデータを受信することと、
フロントエンドピクセルデータ処理回路によって、画像センサピクセルデータフォーマットである画像フレームに対するピクセルデータを受信することと、
前記フロントエンドピクセルデータ処理回路によって、前記画像センサピクセルデータフォーマットである前記ピクセルデータを異なる色空間フォーマットに変換することと、  バックエンドピクセルデータ処理回路によって、前記フロントエンドピクセルデータ処理回路からの前記ピクセルデータに対して１つ以上の雑音フィルタリング又はカラー処理演算を実行することと、
出力回路によって、前記バックエンドピクセルデータ処理回路からピクセルデータを受信し、及びシステムメモリに前記画像フレームに対する前記ピクセルデータを出力することと、
キーポイント検出回路によって、
前記画像センサインタフェースからの前記画像センサピクセルデータフォーマットであるピクセルデータ、
前記フロントエンドピクセルデータ処理回路による処理の後のピクセルデータ、又は    前記バックエンドピクセルデータ処理回路による処理の後のピクセルデータ
を受信することと、
前記キーポイント検出回路によって、前記画像フレーム内の１つ以上のキーポイントを検出するように、前記受信されたピクセルデータに対してキーポイント検出演算を実行することと、
前記キーポイント検出回路によって、前記システムメモリに前記１つ以上のキーポイントの記述を出力することと
を含む、画像信号プロセッサに対する方法。
【請求項９】
前記キーポイント検出回路に接続されたマルチプレクサ回路によって、
前記画像センサインタフェース、
前記システムメモリ、又は
前記バックエンドピクセルデータ処理回路
からのピクセルデータを選択することと、
前記マルチプレクサ回路によって、前記キーポイント検出回路に前記ピクセルデータを提供することと
を更に含む、請求項８に記載の方法。
【請求項１０】
前記マルチプレクサ回路と前記キーポイント検出回路との間に接続された前処理モジュールによって、前記ピクセルデータを輝度チャネルデータに変換することを更に含む、請求項９に記載の方法。
【請求項１１】
前記キーポイント検出回路に接続されたキーポイント制御パラメータ記憶手段によって、前記画像フレームのそれぞれの領域の第１の組に対応する複数のキーポイント感度閾値を記憶することと、
前記キーポイント検出回路によって、前記画像フレームのそれぞれの領域の前記第１の組に対応する前記複数のキーポイント感度閾値のうちの１つを超える前記１つ以上のキーポイントのそれぞれのマグニチュード値に応じて、前記画像フレームのそれぞれの領域の前記第１の組内で検出された前記１つ以上のキーポイントの前記記述を選択的に出力することと
を更に含む、請求項８に記載の方法。
【請求項１２】
前記キーポイント検出回路によって、前記画像フレームのそれぞれの領域の前記第１の組内で検出されたキーポイントの数を出力することを更に含み、
前記画像フレームのそれぞれの領域の前記第１の組内で検出されたキーポイントの前記数は、前記複数のキーポイント感度閾値のうちの１つを動的に調節するようにプログラム命令によって使用可能である、請求項１１に記載の方法。
【請求項１３】
前記キーポイント制御パラメータ記憶手段によって、前記画像フレームのそれぞれの領域の第２の組ごとの許容可能なキーポイントのプログラム可能な最大限度を記憶することであって、前記プログラム可能な最大限度は、前記画像フレームのそれぞれの領域の前記第２の組ごとのキーポイントの合計数の記述を出力するように、前記キーポイント検出回路によって使用可能であり、それぞれの領域の前記第２の組ごとのキーポイントの前記合計数は、許容可能なキーポイントの前記プログラム可能な最大限度を超えない、ことと、
前記キーポイント制御パラメータ記憶手段によって、前記画像フレームのそれぞれの領域の前記第２の組のプログラム可能なサイズを記憶することであって、許容可能なキーポイントの前記プログラム可能な最大限度に対応するそれぞれの領域の前記第２の組は、前記複数の調節可能なキーポイント感度閾値に対応するそれぞれの領域の前記第１の組よりも小さい前記画像フレームの領域である、ことと、
を更に含む、請求項１１に記載の方法。
【請求項１４】
中央処理装置と、
前記中央処理装置に接続されたディスプレイと、
前記中央処理装置に接続されたシステムメモリと、
前記中央処理装置に接続された画像信号プロセッサと
を備え、前記画像信号プロセッサは、
画像センサからピクセルデータを受信するように構成された画像センサインタフェースと、
画像センサピクセルデータフォーマットである画像フレームに対するピクセルデータを受信し、及び
前記画像センサピクセルデータフォーマットである前記ピクセルデータを異なる色空間フォーマットに変換する、
ように構成されたフロントエンドピクセルデータ処理回路と、
前記フロントエンドピクセルデータ処理回路からの前記ピクセルデータに対して１つ以上の雑音フィルタリング又はカラー処理演算を実行するように構成されたバックエンドピクセルデータ処理回路と、
前記バックエンドピクセルデータ処理回路からピクセルデータを受信し、及び前記システムメモリに前記画像フレームに対する前記ピクセルデータを出力するように構成された出力回路と、
前記画像センサインタフェースから前記画像センサピクセルデータフォーマットであるピクセルデータを受信し、又は前記フロントエンドピクセルデータ処理回路若しくは前記バックエンドピクセルデータ処理回路による処理の後のピクセルデータを受信し、
前記画像フレーム内の１つ以上のキーポイントを検出するように、前記受信されたピクセルデータに対してキーポイント検出演算を実行し、及び
前記システムメモリに前記１つ以上のキーポイントの記述を出力する
ように構成されたキーポイント検出回路と、
を含む、デバイス。
【請求項１５】
前記キーポイント検出回路に接続されたマルチプレクサ回路を更に備え、前記マルチプレクサ回路は、
前記画像センサインタフェース、
前記システムメモリ、又は
前記バックエンドピクセルデータ処理回路
からのピクセルデータを選択し、及び
前記キーポイント検出回路に前記ピクセルデータを提供する
ように構成されている、請求項１４に記載のデバイス。
【請求項１６】
前記マルチプレクサ回路と前記キーポイント検出回路との間に接続された前処理モジュールを更に備え、前記前処理モジュールは、前記ピクセルデータを輝度チャネルデータに変換するように構成されている、請求項１５に記載のデバイス。
【請求項１７】
前記キーポイント検出回路に接続されたキーポイント制御パラメータ記憶手段を更に備え、
前記キーポイント制御パラメータ記憶手段は、前記画像フレームのそれぞれの領域の第１の組に対応する複数のキーポイント感度閾値を記憶するように構成されており、
前記キーポイント検出回路は、前記画像フレームのそれぞれの領域の前記第１の組に対応する前記複数のキーポイント感度閾値のうちの１つを超える前記１つ以上のキーポイントのそれぞれのマグニチュード値に応じて、前記画像フレームのそれぞれの領域の前記第１の組内で検出された前記１つ以上のキーポイントの前記記述を選択的に出力する、請求項１４に記載のデバイス。
【請求項１８】
前記キーポイント検出回路は、前記画像フレームのそれぞれの領域の前記第１の組内で検出されたキーポイントの数を出力し、
前記画像フレームのそれぞれの領域の前記第１の組内で検出されたキーポイントの前記数は、前記複数のキーポイント感度閾値のうちの１つを動的に調節するようにプログラム命令によって使用可能である、請求項１７に記載のデバイス。
【請求項１９】
前記キーポイント制御パラメータ記憶手段は、
前記画像フレームのそれぞれの領域の第２の組ごとの許容可能なキーポイントのプログラム可能な最大限度であって、前記プログラム可能な最大限度は、前記画像フレームのそれぞれの領域の前記第２の組ごとのキーポイントの合計数の記述を出力するように、前記キーポイント検出回路によって使用可能であり、それぞれの領域の前記第２の組ごとのキーポイントの前記合計数は、許容可能なキーポイントの前記プログラム可能な最大限度を超えない、プログラム可能な最大限度と、
前記画像フレームのそれぞれの領域の前記第２の組のプログラム可能なサイズであって、許容可能なキーポイントの前記プログラム可能な最大限度に対応するそれぞれの領域の前記第２の組は、前記複数の調節可能なキーポイント感度閾値に対応するそれぞれの領域の前記第１の組よりも小さい前記画像フレームの領域である、プログラム可能なサイズと  を記憶するように構成されている、請求項１７に記載のデバイス。
【請求項２０】
前記画像信号プロセッサは、低電力モードで動作するように構成されており、前記低電力モードでは、
前記キーポイント検出回路が予め定義された期間の間に１つ以上のキーポイント検出しなかったことに応じて、前記フロントエンドピクセルデータ処理回路及び前記バックエンドピクセルデータ処理回路の１つ以上のステージが非活性状態に入り、
前記フロントエンドピクセルデータ処理回路及び前記バックエンドピクセルデータ処理回路の前記１つ以上のステージが前記非活性状態に入る間に、前記画像センサインタフェース及び前記キーポイント検出回路が前記システムメモリに前記１つ以上のキーポイントの前記記述を出力することを継続するように構成された活性状態にとどまり、
前記キーポイント検出回路が１つ以上のキーポイントを検出したことに応じて、前記フロントエンドピクセルデータ処理回路及び前記バックエンドピクセルデータ処理回路の前記１つ以上のステージが活性状態に入る、請求項１４に記載のデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
画像センサによってキャプチャされた画像データは、更なる処理又は消費のためのキャプチャされた画像データを作成するために画像処理パイプラインの一部として最初に処理されることが多い。このようにして、他のシステムリソースを消費することなくリアルタイムな補正又は拡張を行うことができる。例えば、未加工画像データは、符号化及びその後の表示のための適切にスケーリングされた画像データを、ビデオエンコーダなどの後続の構成要素に提供するために補正、フィルタリング、又は他の方法で、修正されることがあり、ビデオエンコーダにおいて画像データに対して実行されることになる後続の演算の数を削減する。
【０００２】
画像データをキャプチャするためのそれらの補正又は拡張を実装するために、様々な異なるデバイス、構成要素、ユニット、又は他のモジュールが、画像処理パイプラインの一部として実行される変化する演算を実行するために使用されることがある。画像信号プロセッサは、例えば、複数の異なるユニット又はステージを含むことがあり、そこにおいて、画像センサから取得された画像データに対して異なる画像の修正又は拡張を行うことができる。画像処理システムは、画像センサモジュールによって検出された画像に対する自動化分析及び検査機能を提供する、マシンビジョンのためのシステムを含むことがある。マシンビジョンアルゴリズムは、１つ以上の画像内のオブジェクトの識別及び／又は追跡を促進する、画像内の対象とする点（points of interest）（キーポイントと称されることがある）を識別することができる。マシンビジョンアルゴリズムの計算集約特性を考えると、それらのシステムの更に効率的な実施態様が望まれる。
【発明の概要】
【０００３】
画像データ内のキーポイントを検出する方法及びシステムが開示される。実施形態では、画像信号プロセッサシステムは、画像センサからピクセルデータを受信するように構成された画像センサインタフェースを含んでもよい。システムは、画像センサピクセルデータフォーマットである画像フレームに対するピクセルデータを受信し、及び画像センサピクセルデータフォーマットであるピクセルデータを異なる色空間フォーマットに変換するように構成されたフロントエンドピクセルデータ処理回路を含んでもよい。加えて、システムは、フロントエンドピクセルデータ処理回路からのピクセルデータに対して１つ以上の雑音フィルタリング又はカラー処理演算を実行するように構成されたバックエンドピクセルデータ処理回路を含んでもよい。更に、システムは、バックエンドピクセルデータ処理回路からピクセルデータを受信し、及びシステムメモリに画像フレームに対するピクセルデータを出力するように構成された出力回路を含んでもよい。実施形態では、システムは、画像センサインタフェースから画像センサピクセルデータフォーマットであるピクセルデータを受信し、又はフロントエンドピクセルデータ処理回路若しくはバックエンドピクセルデータ処理回路による処理の後のピクセルデータを受信するように構成されたキーポイント検出回路を含んでもよい。キーポイント検出回路は、画像フレーム内の１つ以上のキーポイントを検出するように、受信されたピクセルデータに対してキーポイント検出演算を実行してもよく、及びシステムメモリに１つ以上のキーポイントの記述を出力してもよい。
【０００４】
一実施形態では、システムは、キーポイント検出回路に接続されたマルチプレクサ回路を含んでもよく、マルチプレクサは、画像センサインタフェース、システムメモリ、又はバックエンドピクセルデータ処理回路からのピクセルデータを選択するように構成されてもよく、マルチプレクサは、キーポイント検出回路にピクセルデータを提供するように構成されてもよい。実施形態では、システムは、マルチプレクサとキーポイント検出回路との間に接続され、ピクセルデータを輝度チャネルデータに変換するように構成された前処理モジュールを含んでもよい。一実施形態では、システムは、キーポイント検出回路に接続されたキーポイント制御パラメータ記憶構造を含んでもよい。キーポイント制御パラメータ記憶構造は、画像フレームのそれぞれの領域の第１の組に対応する複数のキーポイント感度閾値を記憶し、及び画像フレームのそれぞれの領域の第１の組に対応する複数のキーポイント感度閾値のうちの１つを超える１つ以上のキーポイントのそれぞれのマグニチュード値に応じて、画像フレームのそれぞれの領域の第１の組内で検出された１つ以上のキーポイントの記述を出力するように構成されてもよい。加えて、キーポイント検出回路は、複数のキーポイント感度閾値のうちの１つを動的に調節するようにプログラム命令によって使用可能である画像フレームのそれぞれの領域の第１の組内で検出されたキーポイントの総数を出力してもよい。実施形態では、キーポイント制御パラメータ記憶構造は、画像フレームのそれぞれの領域の第２の組ごとのキーポイントの合計数の記述を出力するように、キーポイント検出回路によって使用可能な画像フレームのそれぞれの領域の第２の組ごとの許容可能なキーポイントのプログラム可能な最大限度を記憶するように構成されてもよく、それぞれの領域の第２の組ごとのキーポイントの合計数は、許容可能なキーポイントのプログラム可能な最大限度を超えない。キーポイント制御パラメータ記憶構造はまた、画像フレームのそれぞれの領域の第２の組のプログラム可能なサイズを記憶してもよく、許容可能なキーポイントのプログラム可能な最大限度に対応するそれぞれの領域の第２の組は、複数の調節可能なキーポイント感度閾値に対応するそれぞれの領域の第１の組よりも小さい画像フレームの領域である。一実施形態では、画像信号プロセッサは、低電力モードで動作するように構成されてもよく、それによって、キーポイント検出回路が、予め定義された期間の間に１つ以上のキーポイントを検出せずに、予め定義された期間の間に同一の数のキーポイントを検出したことに応じて、並びに／又は検出されたキーポイントの処理に基づいて、処理されたキーポイントが、他のフロントエンド及びバックエンド回路が低電力モードに留まるべき状態に対応すると判定したことに応じて、フロントエンドピクセルデータ処理回路及びバックエンドピクセルデータ処理回路の１つ以上のステージが非活性状態に入る。画像センサインタフェース及びキーポイント検出回路は、フロントエンドピクセルデータ処理回路及びバックエンドピクセルデータ処理回路の１つ以上のステージが非活性状態に入る間に、システムメモリに１つ以上のキーポイントの記述を出力することを継続するように構成された活性状態に残ってもよい。フロントエンドピクセルデータ処理回路及びバックエンドピクセルデータ処理回路の１つ以上のステージは、キーポイント検出回路が１つ以上のキーポイントを検出したこと、又は検出されたキーポイントの処理に基づいて、処理されたキーポイントが、フロントエンド及びバックエンド回路が活性状態に入るべきインジケーション（例えば、デバイスの視野上で若しくは視野内で何かしらの関心のあるものが発生した場合）に対応すると判定したことに応じて、活性状態に入ってもよい。
【０００５】
一実施形態では、画像データ内のキーポイントを検出する画像信号プロセッサに対する方法は、画像センサインタフェースによって、画像センサからピクセルデータを受信することを含んでもよい。方法は、フロントエンドピクセルデータ処理回路によって、画像センサピクセルデータフォーマットである画像フレームに対するピクセルデータを受信することを含んでもよい。加えて、方法は、フロントエンドピクセルデータ処理回路によって、画像センサピクセルデータフォーマットであるピクセルデータを異なる色空間フォーマットに変換することを含んでもよい。方法は、バックエンドピクセルデータ処理回路によって、フロントエンドピクセルデータ処理回路からのピクセルデータに対して１つ以上の雑音フィルタリング又はカラー処理演算を実行することを含んでもよい。更に、方法は、出力回路によって、バックエンドピクセルデータ処理回路からピクセルデータを受信し、及びシステムメモリに画像フレームに対するピクセルデータを出力することを含んでもよい。方法は、キーポイント検出回路によって、画像センサインタフェースからの画像センサピクセルデータフォーマットであるピクセルデータを受信すること、キーポイント検出回路によって、フロントエンドピクセルデータ処理回路による処理の後のピクセルデータを受信すること、又はキーポイント検出回路によって、バックエンドピクセルデータ処理回路による処理の後のピクセルデータを受信することを含んでもよい。方法は、キーポイント検出回路によって、画像フレーム内の１つ以上のキーポイントを検出するように、受信されたピクセルデータに対してキーポイント検出演算を実行することを含んでもよい。方法はまた、キーポイント検出回路がシステムメモリに１つ以上のキーポイントの記述を出力することを含んでもよい。
【０００６】
一実施形態では、デバイスは、中央処理装置（ＣＰＵ）、ＣＰＵに接続されたディスプレイ、ＣＰＵに接続されたシステムメモリ、及びＣＰＵに接続された画像信号プロセッサを含んでもよい。画像信号プロセッサは、画像センサからピクセルデータを受信するように構成された画像センサインタフェースを含んでもよい。デバイスは、画像センサピクセルデータフォーマットである画像フレームに対するピクセルデータを受信し、及び画像センサピクセルデータフォーマットであるピクセルデータを異なる色空間フォーマットに変換するように構成されたフロントエンドピクセルデータ処理回路を含んでもよい。加えて、デバイスは、フロントエンドピクセルデータ処理回路からのピクセルデータに対して１つ以上の雑音フィルタリング又はカラー処理演算を実行するように構成されたバックエンドピクセルデータ処理回路を含んでもよい。更に、デバイスは、バックエンドピクセルデータ処理回路からピクセルデータを受信し、及びシステムメモリに画像フレームに対するピクセルデータを出力するように構成された出力回路を含んでもよい。実施形態では、デバイスは、画像センサインタフェースから画像センサピクセルデータフォーマットであるピクセルデータを受信し、又はフロントエンドピクセルデータ処理回路若しくはバックエンドピクセルデータ処理回路による処理の後のピクセルデータを受信するように構成されたキーポイント検出回路を含んでもよい。キーポイント検出回路は、画像フレーム内の１つ以上のキーポイントを検出するように、受信されたピクセルデータに対してキーポイント検出演算を実行してもよく、及びシステムメモリに１つ以上のキーポイントの記述を出力してもよい。
【図面の簡単な説明】
【０００７】
【図１】いくつかの実施形態に係る、画像データ内のキーポイントを検出する実施例のシステムを例示する論理ブロック図である。
【図２】いくつかの実施形態に係る、画像データ内のキーポイントを検出するシステム内の実施例のデータ経路を例示する論理ブロック図である。
【図３】いくつかの実施形態に係る、実施例の画像信号プロセッサを例示する論理ブロック図である。
【図４】いくつかの実施形態に係る、画像信号プロセッサ内のマシンビジョンステージを例示する論理ブロック図である。
【図５】いくつかの実施形態に係る、画像信号プロセッサ内の前処理モジュールを例示する論理ブロック図である。
【図６】いくつかの実施形態に係る、画像データ内のキーポイントを検出する様々な方法及び技術を例示する高レベルフローチャートである。
【図７】いくつかの実施形態に係る、画像データ内のキーポイントを検出するための実施例の画像フレームを例示する論理ブロック図である。
【図８】いくつかの実施形態に係る、画像データ内のキーポイントを検出するための実施例の画像フレームを例示する論理ブロック図である。
【図９Ａ】いくつかの実施形態に係る、画像データ内のキーポイントを検出するための実施例の画像フレームを例示する論理ブロック図である。
【図９Ｂ】いくつかの実施形態に係る、画像データ内のキーポイントを検出するための実施例の画像フレームを例示する論理ブロック図である。
【０００８】
本明細書は、「一実施形態」又は「実施形態」に対する参照を含む。「一実施形態では」又は「実施形態では」の表現の外観は、必ずしも同じ実施形態を参照しない。特定の機能、構造又は特性は、本開示に整合する任意の好適な方法で組み合わせられてもよい。
【０００９】
「備える、含む（Comprising）」。この用語はオープンエンドである。添付の特許請求の範囲で使用されるように、この用語は、追加の構造又はステップを除外しない。「１つ以上のプロセッサユニット．．．を備えた装置」と記載される請求項を検討してみる。このような請求項は、装置が追加の構成要素（例えば、ネットワークインタフェースユニット、グラフィック回路機構など）を含むことを除外しない。
【００１０】
「ように構成されている（Configured To）」。様々なユニット、回路、又は他の構成要素は、タスク又はタスク（複数）を実行する「ように構成されている」と説明又は請求されてもよい。このような文脈では、「構成されている」は、ユニット／回路／構成要素が、演算の間にそれらのタスク又はタスク（複数）を実行する構造体（例えば、回路）を含むことを示すことによって構造体を暗示するときに使用される。したがって、ユニット／回路／構成要素は、指定されたユニット／回路／構成要素が現在動作していない（例えば、オンの状態でない）ときでさえ、タスクを実行するように構成されていると言うことができる。「構成されている」という言葉とともに使用されるユニット／回路／構成要素は、ハードウェア、例えば、演算を実施するように実行可能なプログラム命令を記憶した回路、メモリなどを含む。ユニット／回路／構成要素が１つ以上のタスクを実行するように「構成されている」と記述することは、そのユニット／回路／構成要素に対して米国特許法第１１２条、段落（ｆ）が適用されないことが明示的に意図されている。加えて、「構成されている」は、ソフトウェア及び／又はファームウェア（例えば、ＦＰＧＡ又はソフトウェアを実行する汎用プロセッサ）によって操作され、対象のタスク（単数又は複数）を実行可能な方式で動作する一般的な構造体（例えば、一般的な回路）を含むことができる。「構成されている」はまた、１つ以上のタスクを実施又は実行するように適合された装置（例えば、集積回路）を組み立てるように製造工程（例えば、半導体組み立て設備）を適合させることを含んでもよい。
【００１１】
「第１」、「第２」など。本明細書で使用されるように、これらの用語は、続く名詞の標識として使用され、いかなるタイプの順序付け（例えば、空間的、時間的、論理的など）も意味しない。例えば、バッファ回路は、「第１」及び「第２」の値に対する書き込み演算を実行するものとして本明細書で説明されてもよい。用語「第１」及び「第２」は、必ずしも第１の値が第２の値の前に書き込まれなければならないことを含意していない。
【００１２】
「基づいて」又は「従って」。本明細書で使用されるように、それらの用語は、判定に影響を及ぼす１つ以上の要因を説明するために使用される。それらの用語は、判定に影響を及ぼすことがある追加の要因を排除しない。すなわち、判定はそれらの要因のみに基づいているか、又は少なくとも部分的にそれらの要因に基づいていることがある。「Ｂに基づいてＡを判定する」というフレーズを検討してみる。このケースでは、ＢはＡの判定に影響を及ぼす要因であるが、このようなフレーズはＡの判定がＣにも基づいていることを排除しない。他の例では、ＡはＢだけに基づいて判定されてもよい。
【発明を実施するための形態】
【００１３】
画像信号プロセッサ又は他の画像処理パイプラインは、画像センサによってキャプチャされた画像データを補正又は強化するために多くの異なる技術又は構成要素を実装してもよい。しかしながら、画像センサによってキャプチャされた画像データは、同一の目的のために常に利用されない。例えば、画像センサは、より高い解像度の静止画像で画像センサによって何をキャプチャすることができるか、又はビデオで何を記録することができるかのプレビュー画像を表示するために、画像データのストリームを提供してもよい。一実施形態では、画像信号プロセッサなどの１つ以上のハードウェアモジュール（単数又は複数）は、画像内の対象とする点（キーポイントと称されることがある）を検出する計算集約型ステップを実行してもよい。実施形態では、ハードウェアモジュール（単数又は複数）は、キーポイントデータの更なる処理を提供するソフトウェアアプリケーションとインタフェースしてもよい。ハードウェアベースのキーポイント検出は、オブジェクト識別、オブジェクト追跡、画像安定化、パノラマスティッチング（panorama stitching）、複数の画像キャプチャからの高ダイナミックレンジ（ＨＤＲ）、及び他の用途に良好に適合される。
【００１４】
様々な実施形態では、画像信号プロセッサは、システム帯域幅を節約し、及び画像処理パイプラインの処理能力を更に効率的に活用するために、画像処理パイプラインにおいて複数のレートで画像データを処理してもよい。例えば、少なくともいくつかの実施形態では、１つ以上のフロントエンドパイプラインステージは、１クロックサイクルに２ピクセル（ｐｐｃ）などの初期のレートで画像データを処理してもよい。このようにしてより多くの量の画像データ（例えば、低速度の動画ビデオを記録するときにキャプチャすることができるものなど、大きな個々の画像フレーム又は高レートの画像フレームのいずれかとして）は、画像データを収集及び処理する結果として取り込まれることがある画像信号雑音、アーチファクト、及び他の画像不良を削減又は補正する初期処理を受けることができる。画像データは次いで、画像信号雑音を削減し、色及び画像不良を補正するとともに、様々な特殊効果を適用するために、所望のサイズにダウンスケーリングされ、及び１つ以上のバックエンドパイプラインステージにおいて、１ｐｐｃなどの異なるレートで処理されて画像フレームに対して他の演算を実行してもよく、それによって、破棄することができる画像データについて処理が実行されない。
【００１５】
少なくともいくつかの実施形態では、フロントエンドパイプラインステージを通じてキャプチャ及び処理された画像データは、未加工（例えば、画像センサピクセルデータフォーマット）又はフルカラーフォーマットでメモリに記憶されてもよく、スケーリングされたバージョンの画像データは、画像処理パイプラインのバックエンドパイプラインステージを通じて処理されることを続けてもよい。このようにして、いくつかの画像処理での高解像度のバージョンの画像フレームは、より低い解像度のバージョンの画像フレームに対する処理を同時に継続している間にキャプチャされてもよい（例えば、より低い解像度でも記録された画像フレームの高解像度の静止画をキャプチャする）。
【００１６】
少なくともいくつかの実施形態では、バックエンドインタフェースは、画像センサとは異なるソースから収集された画像データが画像処理パイプラインのバックエンドパイプラインステージ（単数又は複数）を通じて処理されることを可能にするように実装されてもよい。例えば、リモートデバイス（例えば、ウェブベースのビデオサービスなどのコンテンツプロバイダのコンテンツサーバ）から画像処理パイプラインを実行するデバイス（例えば、モバイルコンピューティングデバイス）において受信された画像データは、画像信号雑音を削減し、色及び画像不良を補正し、又は様々な特殊効果を適用する演算を実行するために、バックエンドインタフェースを介して受信されてもよく、及びバックエンドパイプラインステージ（単数又は複数）を通じて処理されてもよい。このようにして、画像処理パイプラインの専用画像処理構成要素は、多くの他のソースから受信された画像データに対して画像処理を効率的に実行するために利用されてもよい。
【００１７】
画像データ内のキーポイントを検出する本明細書で説明される技術は、それらを採用する実施例のシステムに関して更に例示されてもよい。上述したように、それらの技術は、ビデオクリップを含む画像データをキャプチャ又は処理する能力を含む、任意のタイプのカメラ、装置、又はコンピューティングシステムで実施されてもよい。
【００１８】
本明細書で説明される技術のいずれか又は全てを実施するように構成されたシステムの１つの実施例が図１に例示される。例えば、図１に例示されるシステム１００は、既存のＧＰＵ及びＣＰＵのアプローチによって必要とされる追加のシステムメモリ動作なしに、画像信号プロセッサを使用して画像処理を実行するように構成されてもよい。例示される実施形態では、システム１００は、画像センサ（単数又は複数）１０２、システムオンチップ（ＳＯＣ）構成要素１０４、システムメモリ（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ））１３０、永続的記憶装置（例えば、フラッシュメモリ）１２８、及びディスプレイ１１６（例えば、液晶ディスプレイ（ＬＣＤ））を含む。この実施例では、画像センサ（単数又は複数）１０２は、カメラ又はビデオカメラを含むカメラ、ビデオカメラ、又は他のデバイス上の能動ピクセルセンサ（例えば、相補型金属酸化膜半導体（ＣＭＯＳ）能動ピクセルセンサ）など、画像データをキャプチャするのに適切な任意のタイプの画像センサ（例えば、キャプチャされた光に反応する画像センサ）であってもよい。画像センサ（単数又は複数）１０２は、画像信号プロセッサ１０６の１つ以上の構成要素に、画像センサ（単数又は複数）１０２によってキャプチャされた画像データを提供するように構成されたそれぞれの画像センサインタフェース（単数又は複数）を含んでもよい。この実施例では、ディスプレイ１１６は、キャプチャされた静止画像又はビデオクリップのプレビュー（画像信号プロセッサ１０６からの出力として提供されてもよい）を表示するように構成されてもよい。ディスプレイ１１６はまた、メニュー、選択された動作パラメータ、又はシステムのユーザインタフェース（図示せず）から受信された他の情報を表示するように構成されてもよい。他の実施形態では、他のタイプのディスプレイデバイスは、それらの目的のためのシステムに含まれてもよい。異なる実施形態では、システム１００は、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップコンピュータ、ノートブック、タブレット、スレート若しくはノートブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、カメラ、セットトップボックス、携帯電話、ページャ、携帯情報端末（ＰＤＡ）、タブレットデバイス若しくはミュージックプレイヤなどのモバイルデバイス、デジタルカメラ、スキャナ、ビデオレコーダなどのＩ／Ｏデバイス、消費者デバイス、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイス、又は概して、カメラ若しくはビデオカメラの機能を含む任意のタイプのコンピューティング若しくは電子デバイスを含むがそれらに限定されない、様々なタイプのデバイスのいずれかであってもよい。
【００１９】
この実施例では、ＳＯＣ構成要素１０４は、画像信号プロセッサ（ＩＳＰ）１０６、中央プロセッサユニット（ＣＰＵ）１０８、ネットワークインタフェース１１０、向きインタフェース１２１（向きセンサ（単数又は複数）１３４に結合されてもよく、向きセンサ１３４から、動きデータのなどのシステム１００の向きデータを収集することができる）、ディスプレイコントローラ１１４（ディスプレイ１１６に結合されてもよく、及びディスプレイ１１６の動作を制御してもよい）、グラフィックプロセッサユニット（ＧＰＵ）１２０、メモリコントローラ１２２（システムメモリ１３０に結合されてもよい）、ビデオエンコーダ１２４、ストレージコントローラ１２６（フラッシュメモリ又は他の不揮発性ランダムアクセスメモリなどの永続的記憶装置１２８に結合されてもよく、及び永続的記憶装置１２８へのアクセスを制御してもよい）、並びに様々な他のＩ／Ｏデバイス（１１８として示される）を含み、それらのいずれか又は全てが相互接続１３２を通じて相互に通信してもよい。いくつかの実施形態では、システム１００又はＳＯＣ構成要素１０４は、図１に示される要素よりも多くの又は少ない要素を含んでもよい。
【００２０】
様々な実施形態では、ＳＯＣ構成要素１０４は、１つのプロセッサを含むユニプロセッサシステム、又はいくつかのプロセッサ（例えば、２個、４個、８個、若しくは別の適切な数）を含むマルチプロセッサシステムであってもよい。ＣＰＵ（単数又は複数）１０８は、任意の適切な命令セットアーキテクチャを実装してもよく、及びその命令セットアーキテクチャで定義された命令を実行するように構成されてもよい。例えば、様々な実施形態では、ＣＰＵ（単数又は複数）１０８は、様々な命令セットアーキテクチャ（ＩＳＡ）のいずれか、例えば、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、ＲＩＳＣ若しくはＭＩＰＳ  ＩＳＡ、又は任意の他の適切なＩＳＡなどを実装する汎用又は組み込み型プロセッサであってもよい。マルチプロセッサシステムでは、ＣＰＵ（単数又は複数）１０８の各々は、必ずしもそうではないが、同一のＩＳＡを共通して実装してもよい。ＣＰＵ１０８は、スカラ方式、スーパースカラ方式、パイプライン方式、スーパーパイプライン方式、アウトオブオーダ方式、インオーダ方式、スペキュレーティブ方式、非スペキュレーティブ方式など、又はそれらの組み合わせを含む、任意のマイクロアーキテクチャを採用してもよい。ＣＰＵ１０８は、マイクロコーディング技術を実施する回路を含んでもよい。ＣＰＵ１０８は、各々が命令を実行するように構成された１つ以上のプロセシングコアを含んでもよい。ＣＰＵ１０８は、任意のサイズ及び任意の構成（セットアソシアティブ方式、ダイレクトマップ方式など）を採用することができる、１つ以上のレベルのキャッシュを含んでもよい。
【００２１】
図１に例示される実施例では、システムメモリ１３０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＳＤＲＡＭ（ｍＤＤＲ３などのモバイルバージョンのＳＤＲＡＭ又はＬＰＤＤＲ２などの低電力バージョンのＳＤＲＡＭを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの、任意のタイプのメモリであってもよい。１つ以上のメモリデバイスは、単一のインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）などのメモリモジュールを形成するために回路基板上で結合されてもよい。代わりに、デバイスは、システム１００をチップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成で実装する集積回路を備えてもよい。いくつかの実施形態では、システムメモリ１３０は、ピクセルデータ又は他の画像データ若しくは統計を様々なフォーマットで記憶してもよい。同様に、図１に例示される実施例のシステム１００がシステムで使用される画像データ又は他のデータの不揮発性記憶のための永続的記憶装置１２８を含むとともに、他の実施形態では、システムは、それらの目的のための他のタイプの不揮発性メモリ（例えば、リードオンリメモリ（ＲＯＭ））を含んでもよい。
【００２２】
グラフィックプロセシングユニット（ＧＰＵ）１２０は、任意の適切なグラフィック処理回路を含んでもよい。概して、ＧＰＵ１２０は、フレームバッファに表示されることになるオブジェクト（例えば、フレーム全体に対してピクセルデータを含む１つ）をレンダリングするように構成されてもよい。ＧＰＵ１２０は、グラフィック演算の一部又は全てを実行するようにグラフィックソフトウェア又は特定のグラフィック演算のハードウェア高速化を実行することができる１つ以上のグラフィックプロセッサを含んでもよい。ハードウェア高速化の程度及びソフトウェアの実行は、実施形態ごとに変化してもよい。
【００２３】
Ｉ／Ｏデバイス１１８は、システム１００のタイプに応じて任意の所望の回路を含んでもよい。例えば、一実施形態では、システム１００は、モバイルコンピューティングデバイス（例えば、携帯情報端末（ＰＤＡ）、タブレットデバイス、スマートフォンなど）であってもよく、Ｉ／Ｏデバイス１１８は、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ(登録商標)、セルラ、グローバルポジショニングシステなどの様々なタイプの無線通信のためのデバイスを含んでもよい。いくつかの実施形態では、Ｉ／Ｏデバイス１１８はまた、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含む、追加の記憶装置を含んでもよい。いくつかの実施形態では、Ｉ／Ｏデバイス１１８は、タッチディスプレイスクリーン若しくはマルチタッチディスプレイスクリーン、キーボード、キーパッド、タッチパッド、スキャニングデバイス、音声若しくは光学認識デバイス、マイクロフォン、スピーカ、スキャナ、プリンティングデバイス、又はシステム１００によって若しくはシステム１００内でデータを入力若しくはアクセスするのに適切な任意の他のデバイスを含む、追加のディスプレイデバイスなどのユーザインタフェースデバイスを含んでもよい。
【００２４】
この実施例では、画像信号プロセッサ（ＩＳＰ）１０６は、本明細書で詳細に説明されるように、画像処理パイプラインの様々なステージの性能を促進することができる専用ハードウェアを含んでもよい。いくつかの実施例では、ＩＳＰ１０６は、画像センサ１０２から画像データを受信し、及びシステム１００の他の構成要素（ディスプレイ１１６又はビデオエンコーダ１２４を含む）によって使用可能な形式にデータを処理するように構成されてもよい。いくつかの実施形態では、ＩＳＰ１０６は、本明細書で説明されるように、画像移動演算、水平及び垂直スケーリング、キーポイント識別、オブジェクトマッピング、オブジェクト追跡、色空間変換若しくは他の非変形画像編集演算（non-warping image editing operations）、又は画像安定化変換などの様々な画像操作演算を実行するように構成されてもよい。画像信号プロセッサの一実施形態が図３に更に詳細に例示され、及び以下で説明される。
【００２５】
図１に例示される実施例では、相互接続１３２は、ＳＯＣ１０４に含まれる様々な機能的ユニット間の通信を促進するように構成されてもよい。様々な実施形態では、相互接続１３２は、メッシュ、チップファブリック上のネットワーク、共有バス、ポイントツーポイント相互接続などの任意の適切な相互接続回路を含んでもよい。いくつかの実施形態では、相互接続１３２は、１つの構成要素（例えば、システムメモリ１３０）からのデータ信号を別の構成要素（例えば、ＣＰＵ（単数又は複数）１０８又はＧＰＵ１２０）による使用に適切なフォーマットに変換するように、任意の必要なプロトコル、タイミング又は他のデータ変換を実行してもよい。いくつかの実施形態では、相互接続１３２は、例えば、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス標準又はユニバーサルシリアルバス（ＵＳＢ）標準の変形型などの様々なタイプの周辺バスを通じて接続されたデバイスに対するサポートを含んでもよい。いくつかの実施形態では、相互接続１３２の機能は、例えば、ノースブリッジ及びサウスブリッジなど、２つ以上の別個の構成要素に分割されてもよい。いくつかの実施形態では、相互接続１３２は、様々な機能的ユニットへの適切なフォーマットであるピクセルデータ又は他の画像データ若しくは統計の通信を促進することができる。
【００２６】
この実施例では、ネットワークインタフェース１１０は、システム１００と１つ以上のネットワークに接続された他のデバイス（例えば、キャリア若しくはエージェントデバイス）との間、又はシステム１００のノード若しくは構成要素の間でデータが交換されることを可能とするように構成されてもよい。例えば、ビデオ又は他の画像データは、ネットワークインタフェースの１１０を介して他のデバイス（例えば、コンテンツプロバイダネットワーク又は別のモバイルコンピューティングデバイス）から受信されてもよく、並びに後続の処理（例えば、図３で以下に議論されるような画像信号プロセッサ１０６へのバックエンドインタフェースを介した）及び表示のためにシステムメモリ１３０に記憶されてもよい。ネットワーク（単数又は複数）は、様々な実施形態では、ローカルエリアネットワーク（ＬＡＮ）（例えば、イーサネット(登録商標)若しくは企業ネットワーク）、ワイドエリアネットワーク（ＷＡＮ）（例えば、インターネット）、無線データネットワーク、いくつかの他の電子データネットワーク、又はそれらのいくつかの組み合わせを含んでもよいが、それらに限定されない。様々な実施形態では、ネットワークインタフェース１１０は、例えば、任意の適切なタイプのイーサネット(登録商標)ネットワークなどの有線若しくは無線汎用データネットワークを介した通信、アナログ音声ネットワーク若しくはデジタルファイバー通信ネットワークなどの電気通信／電話ネットワークを介した通信、ファイバーチャネルストレージエリアネットワーク（ＳＡＮ）などのストレージエリアネットワークを介した通信、又は任意の他の適切なタイプのネットワーク若しくはプロトコルを介した通信をサポートすることができる。
【００２７】
システム１００が例示に過ぎず、実施形態の範囲を限定することを意図していないことを当業者は認識するであろう。例えば、システム１００はまた、例示されない他のデバイスに結合されてもよく、又はスタンドアロンシステムとして動作してもよい。加えて、例示される構成要素によって提供される機能は、いくつかの実施形態では、より少ない構成要素で組み合わされてもよく、又は追加の構成要素において分散されてもよい。同様に、いくつかの実施形態では、例示される構成要素のいくつかの機能が提供されなくてもよく、又は他の追加の機能が利用可能であってもよい。いくつかの実施形態では、システムメモリ１３０に記憶されたプログラム命令は、システム１００の様々な機能を提供するようにＣＰＵ１０８又はＧＰＵ１２０によって実行されてもよい。
【００２８】
他の実施形態では、様々な機能は、別のデバイス上のメモリで実行し、及びコンピュータ間通信を介して例示されるシステムと通信するソフトウェア構成要素によって実行されてもよい。本明細書で説明されるそれらのソフトウェア構成要素又は任意のデータ構造のいくつか又は全ては、システムメモリ１３０、永続的記憶装置１２８に記憶されてもよく（例えば、命令若しくは構造化されたデータとして）、又は適切なドライブによって読み出されることになる非一時的コンピュータ可読媒体若しくは携帯品に記憶されてもよい。いくつかの実施形態では、システム１００とは別個のコンピュータアクセス可能媒体に記憶された命令は、ネットワーク又は無線リンクなどの通信媒体を介して搬送される電子、電磁気、又はデジタル信号などの伝送媒体又は信号を介してシステム１００に伝送されてもよい。様々な実施形態は、本明細書における説明に従って実行される命令又はデータを受信、送信、又は記憶することを更に含んでもよい。一般的に言えば、コンピュータアクセス可能媒体は、磁気又は光学媒体、例えば、ディスク又はＤＶＤ／ＣＤ−ＲＯＭなどの非一時的、コンピュータ可読記憶媒体又はメモリ媒体、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの揮発性又は不揮発性媒体などを含んでもよい。
【００２９】
図２は、いくつかの実施形態による、画像信号プロセッサ（特に、図１に例示されたシステム１００内の）を実装するシステム内のデータ経路を例示するブロック図である。破線２００によって例示されるように、一実施例では、画像データは、画像信号プロセッサ（１０６）を通じて画像センサ（１０２）からシステムメモリ１３０にわたってもよい（相互接続１３２及びメモリコントローラ１２２を経由して）。画像データがシステムメモリ１３０に記憶されたら、それは、ビデオエンコーダ１２４、ディスプレイ１１６によってアクセスされてもよい（例えば、相互接続１３２、及びディスプレイ１１６のケースでは、ディスプレイコントローラ１１４を経由して）。例えば、それは、様々な実施形態では、プレビューをディスプレイ１１６上で表示するためにディスプレイコントローラ１１４によってアクセスされてもよく、又はビデオエンコーダ１２４によってアクセスされてもよく、ビデオエンコーダ１２４は、永続的記憶装置１２８にビデオを記録し（例えば、記憶のために）又はネットワークを通じた伝送（例えば、ビデオ会議のために）若しくはその他のためにネットワークインタフェース１１０にデータを渡すのに適切なフォーマットでデータを符号化することができる。
【００３０】
別の実施例のデータ経路が点線２１０によって例示される。ビデオ画像若しくはデータ又は静止画像若しくはフレームなどの画像データは、画像センサ（単数又は複数）１０２以外のソースからシステム１００によって受信されてもよい。一実施形態では、画像データは、システムメモリ１３０から画像信号プロセッサ１０６によって受信されてもよい。別の実施形態では、ビデオデータは、有線又は無線ネットワーク接続を介してシステム１００と離れた他のソース（例えば、コンテンツプロバイダネットワーク又は他のモバイルコンピューティングデバイス）からシステム１００にストリーミング、ダウンロード、又は他の方法で、通信されてもよい。画像データは、ネットワークインタフェース１１０を介して受信されてもよく、及びメモリコントローラ１２２を介してメモリ１３０に書き込まれてもよい。画像データは次いで、いくつかの実施形態では、様々な画像補正、移動、変換、又は他の画像処理技術を実行するために、メモリ１３０から画像信号プロセッサ１０６によって取得されてもよく、及び１つ以上の画像処理パイプラインステージを通じて処理されてもよい。画像データは次いで、メモリ１３０、ビデオエンコーダ１２４、若しくはディスプレイ１１６における表示のためのディスプレイコントローラ１１３などの他の構成要素に、又は永続的記憶装置１２８における記憶のためのストレージコントローラ１２６に戻されてもよい（例示せず）。
【００３１】
いくつかの実施形態では、グラフィックプロセッサ１２０は、画像データにアクセス、操作、変換、又は他の方法で、処理してもよく、よって、追加の読み出し及び書き込み動作が図２に例示されるものを超えてシステムメモリ１３０上で実行されてもよい。システムメモリ１３０に記憶された画像データは、ＧＰＵ１２０によってアクセスされてもよく（相互接続１３２及びメモリコントローラ１２２を経由して）、ＧＰＵ１２０が画像データに対して１つ以上の画像変換を実行した後、画像データは、システムメモリ１３０に書き戻されてもよい（再度、相互接続１３２及びメモリコントローラ１２２を経由して）。画像処理が代わりにＣＰＵ１０８によって（例えば、ＣＰＵ１０８上で実行するソフトウェアによって）実行される場合、同様のデータ経路がシステム１００内のシステムメモリ１３０とＣＰＵ１０８との間で採用されてもよい。いくつかの実施形態では、（例示されないが）画像信号プロセッサ１０６からの画像データは、システムメモリ１３０に画像データを記憶することなく、別の機能的構成要素（例えば、ＣＰＵ１２０、グラフィックプロセッサ１２０、他のＩ／Ｏデバイス１１８、ネットワークインタフェース１１０、ビデオエンコーダ１２４、ストレージコントローラ１２６、又はディスプレイコントローラ１１４）に直接送信されてもよい（相互接続１３２を介して）。
【００３２】
画像信号プロセッサ１０６などの画像信号プロセシングユニット（ＩＳＰ）の一実施形態が、図３内のブロック図によって例示される。この実施例に例示されるように、ＩＳＰ１０６は、様々な実施形態では、画像センサ（単数又は複数）１０２（それが画像センサから画像データを受信する）に結合されてもよい。この実施例では、ＩＳＰ１０６は、出力する作成したもの、キャプチャしたもの、又は受信したものから画像情報を処理するステージの組を含むことができる画像処理パイプラインを実施する。例えば、ＩＳＰ１０６の構成要素として例示される様々な要素は、パイプライン内の他のステージ（例えば、画像統計３０４、未加工画像処理３０６、再サンプリング処理ステージ３０８、雑音処理ステージ３１０、カラー処理ステージ３１２、出力再スケーリング３１４、若しくはマシンビジョンステージ３１８）によって、出力インタフェース３１６（システムメモリからの変換されたデータがメモリコントローラインタフェース１２２を介してシステムメモリに書き込まれた後にそれにアクセスするもの、若しくは相互接続１３２を介して画像データを直接提供するものを含む）若しくはバックエンドインタフェース３４２を介してＩＳＰ１０６を含むシステムの他の構成要素によって、又はＩＳＰ１０６を含むシステムに結合された他のデバイスによって処理可能な画像データに、センサインタフェース（単数又は複数）３０２を通じて画像センサ１０２から受信されたソースデータを処理する。少なくともいくつかの実施形態では、センサインタフェース（単数又は複数）３０２は、パターン化された不良及び不良ラインのペア（例えば、焦点ピクセルのような特殊なピクセルによって生成される）を検出及び補正するためのピクセル不良補正、並びに画像データサイズを削減するための画像クロッピング又はビニングなどの様々な前処理演算を実行してもよい。いくつかの実施形態では、画像信号プロセッサ１０６は、ストリーミングデバイスであることに留意されたい。言い換えると、ピクセルは、センサインタフェース（単数又は複数）３０２を介して画像センサ１０２から画像信号プロセッサ１０６によってラスタ順で（すなわち、水平に、ラインごとに）受信されてもよく、及びラスタ順で最終的に出力されるまで、その様々なパイプラインステージを通じてラスタ順で全体的に処理されてもよい。
【００３３】
画像信号プロセッサ１０６は、異なるレートで、画像信号プロセッサ（ＩＳＰと称されることがある）において受信された画像データを処理してもよい。例えば、図３に例示される実施形態では、画像信号プロセッサは、初期のレートで画像データを処理する、未加工処理ステージ３０６及び再サンプリング処理ステージ３０８などの１つ以上のフロントエンドパイプラインステージ３３０を実施してもよい。よって、それらのフロントエンドパイプラインステージ（未加工処理ステージ３０６及び再サンプリング処理ステージ３０８などに関して以下で説明されるものなど）において実行される様々な異なる技術、調節、修正、又は他の処理演算は、それらのステージを通じて初期のレートで画像データを連続して処理することができるように実行されてもよい。例えば、フロントエンドパイプラインステージ３３０がクロックサイクルごとに２つのピクセルを処理する場合、次いで、ブラックレベル補償（black level compensation）、ハイライトリカバリ（highlight recovery）、不良ピクセル補正、及びその他のような未加工処理ステージ３０６の演算は、画像データの２つのピクセルを同時に処理してもよい。実施形態では、マシンビジョンステージ３１８内の異なるモジュールは、異なるレートで画像データを処理してもよい。例えば、マシンビジョンステージ３１８のフロントエンド内のモジュールは、初期のレートでデータを処理してもよく、マシンビジョンステージ３１８のバックエンド側のモジュールは、削減したレートで画像データを処理してもよい。
【００３４】
フロントエンドパイプラインステージにおいて初期のレートで画像データを処理することに加え、画像信号プロセッサ１０６は、異なるレートで画像データを処理する１つ以上のバックエンドパイプラインステージを実施してもよい。バックエンドパイプラインステージ３４０は、様々な実施形態では、初期のレートよりも少ない削減したレートで画像データを処理してもよい。例えば、図３に例示されるように、雑音処理ステージ３１０、カラー処理ステージ３１２、及び出力再スケーリング３１４などのバックエンドパイプラインステージ３４０は、削減したレートに従って画像データを処理するように実施されてもよい。２ｐｐｃで画像データを処理するフロントエンドステージ３３０の上記実施例を考えると、雑音処理ステージ３１０は次いで、１ｐｐｃなどの２ｐｐｃ未満のレートで画像データを処理するための時間フィルタリング及び輝度鮮明化（luma sharpening）などの演算を実施してもよい。
【００３５】
少なくともいくつかの実施形態では、画像信号プロセッサ１０６は、バックエンドインタフェース３４２を実装してもよい。バックエンドインタフェース３４２は、システムメモリ及び／又は画像センサ（単数又は複数）１０２以外の他の画像ソースから画像データを受信してもよい。例えば、図２に例示されるように、無線接続を通じて受信された画像データが受信されてもよく、及びメモリ１３０に記憶されてもよい。画像データは、画像信号プロセッサ１０６のバックエンドステージ３４０における処理のためにバックエンドインタフェース３４２を通じて受信されてもよい。未加工処理ステージ３０６は、いくつかの実施形態では、システムメモリ１３０から画像データを受信するように構成されてもよい。このようにして、画像データに対して実行されるＣＰＵ又はＧＰＵ処理の代わりに（又はそれに加えて）他の画像データソース（単数又は複数）から受信されたデータへのリソース効率の良い画像処理能力を提供するように画像信号プロセッサ１０６を構成することができる。様々な実施形態では、バックエンドインタフェース３４２は、バックエンド処理ステージによって利用されるフォーマットに画像データを変換してもよい。
【００３６】
様々な実施形態では、画像信号プロセッサ１０６は、中央制御モジュール３２０を実装してもよい。中央制御モジュール３２０は、いくつかの実施形態では、画像データの処理を構成及び開始してもよい。例えば、中央制御モジュール３２０は、クロックサイクル、メモリ待ち時間、サービス品質、及び状態情報のログを取るための性能モニタを実装してもよい。中央制御モジュール３２０は、ＩＳＰ１０６のユニット、モジュール、ステージ、又は他の構成要素に対する制御パラメータを更新又は管理してもよく、並びにユニット、モジュール、ステージ、又は他の構成要素の開始及び停止を制御するためにセンサインタフェース３０２とインタフェースしてもよい。例えば、いくつかの実施形態では、ユニット、モジュール、ステージ、又は他の構成要素は、アイドル状態に入ってもよく、アイドル状態の間は、プログラム可能なパラメータが中央制御モジュール３２０によって更新されてもよい。ユニット、モジュール、ステージ、又は他の構成要素は次いで、１つ以上の演算又はタスクを実行するように実行状態に置かれてもよい。他の実施例では、中央制御モジュール３２０は、再サンプリング処理ステージ３０８の前、間、又は後に画像データ（例えば、図２内のメモリ１３０などのメモリに書き込まれることになる）を記憶するように画像信号プロセッサ１０６を構成してもよい。このようにして、未加工（例えば、画像センサピクセルデータフォーマット）又はフルカラー領域フォーマットであるかに関わらずフル解像度の画像データは、バックエンドパイプラインステージを通じて画像データを処理することに加え、又はその代わりに記憶されてもよい。一実施形態では、画像信号プロセッサ１０６は、センサインタフェース（単数又は複数）３０２から未加工入力データを直接受信し、システムメモリ１３０から記憶された画像データを受信し、及び／又は出力再スケーリングステージ３１４、出力インタフェース３１６、又はバックエンド３４０の他のステージなどのバックエンド出力回路から処理された画像データを受信するように構成された、未加工処理ステージ３０６又はマシンビジョンステージ３１８などのフロントエンドピクセルデータ処理回路を含んでもよい。実施形態では、中央制御モジュール３２０は、プログラム命令１３６などのシステムメモリ１３０に記憶されたデータにアクセスしてもよい。一実施形態では、中央制御モジュール３２０は、マシンビジョンステージ３１８に制御信号を送信してもよく、それによって、マシンビジョンステージ３１８の１つ以上の性能パラメータを調節する。
【００３７】
様々な実施形態では、画像信号プロセッサ１０６は、画像統計モジュール（単数又は複数）３０４を実装してもよい。画像統計モジュール（単数又は複数）３０４は、様々な機能を実行してもよく、及びシステムメモリ１３０などのメモリに記憶されることになる情報を収集してもよい。画像統計モジュールは、いくつかの実施形態では、様々な演算の結果としての画像情報を収集するために、センサ線形化、不良ピクセル置換、ブラックレベル補償、レンズシェーディング補正、及び逆ブラックレベル補償を実行してもよい。３Ａ統計（オートホワイトバランス（ＡＷＢ）、自動露出（ＡＥ）、オートフォーカス（ＡＦ））などの統計、ヒストグラム（例えば、２Ｄカラー若しくは成分）、又は任意の他の画像データ情報が収集又は追跡されてもよい。よって、前の実施例は、限定することを意図していない。いくつかの実施形態では、特定のピクセル値又はピクセル値の範囲は、センサ線形化、不良ピクセル置換、ブラックレベル補償、レンズシェーディング補正、及び逆ブラックレベル補償のような統計演算がクリップされたピクセルを識別するときに、ＡＦ統計などの統計の収集から除外されてもよい。複数の画像統計モジュール３０４が実装されるシナリオでは、各々の統計モジュールは、同一の画像データ又は異なる画像について収集された異なる画像データ（例えば、画像センサ（単数又は複数）１０２の異なるものから収集された）についての異なる情報を収集するように中央制御モジュール３２０によってプログラミングされてもよい。
【００３８】
上述したように、画像信号プロセッサ１０６は、未加工又はフルカラー領域で画像データを処理することができる、未加工処理ステージ３０６、再サンプリング処理ステージ３０８、及びマシンビジョンステージ３１８などの１つ又は複数のフロントエンドパイプラインステージを実施してもよい。未加工処理ステージ３０６は、様々な実施形態では、未加工画像データに対して様々な演算、機能、又はタスクを実行するように様々なモジュール、ユニット、又は構成要素を実装してもよい。ベイヤー未加工フォーマットは、例えば、ピクセルセンサのベイヤーパターンを実装する画像センサ（単数又は複数）１０２から収集された画像データであってもよい。例えば、いくつかのセンサピクセルのみがピクセルのベイヤーパターンにある緑色光をキャプチャするとともに、他のピクセルがピクセルのベイヤーパターンにある赤色又は青色光をキャプチャする。このようにして、ベイヤー未加工画像フォーマット（又は、画像センサ内のカラーフィルタアレイによってキャプチャされた他の未加工画像フォーマット）である画像データは、特定の色（全ての色の代わりに）に特有の値を有するピクセルデータを提供する。
【００３９】
よって、未加工処理ステージ３０６などのフロントエンドピクセルデータ処理回路は、センサ線形化、ブラックレベル補償、固定パターン雑音削減、不良ピクセル補正、未加工雑音フィルタリング、レンズシェーディング補正、ホワイトバランスゲイン、及びハイライトリカバリを含むがそれらに限定されない様々な演算を適用する、未加工フォーマット（例えば、ベイヤー未加工フォーマットなどの画像センサピクセルデータフォーマット）である画像データを処理することができる。センサ線形化ユニットは、いくつかの実施形態では、他の処理のために（例えば、画像センサ（単数又は複数）１０２のうちの１つであってもよい高ダイナミックレンジ（ＨＤＲ）画像センサから収集された圧伸フォーマットから画像データを変換するために）非線形画像データを線形空間にマッピングしてもよい。ブラックレベル補償は、いくつかの実施形態では、ピクセル画像データ上の色成分（例えば、Ｇｒ、Ｒ、Ｂ、Ｇｂ）ごとに独立してデジタルゲイン、オフセット及びクリップ（センサ線形化の後に発生することがある）を提供するように実行されてもよい。いくつかの実施形態では、固定パターン雑音削減は、いくつかの実施形態では、入力画像からダークフレームを減算し、及び異なるゲインをピクセルに乗算することによってオフセット固定パターン雑音及びゲイン固定パターン雑音を除去するように実行されてもよい。不良ピクセル補正は、様々な実施形態では、不良ピクセルを判定及び識別することができ、並びに不良ピクセル値を置き換えることができる。未加工雑音フィルタリングは、様々な実施形態では、光度が類似の隣接したピクセルを平均化することによって画像データの雑音を削減することができる。ハイライトリカバリは、様々な実施形態では、他のチャネルからクリッピングされた（又は、ほぼクリッピングされた）それらのピクセルに対するピクセル値を推定してもよい。レンズシェーディング補正は、レンズの光学的中心からの距離にほぼ比例した明暗度の減少を補償するためにピクセルごとのゲインを適用することができる。ホワイトバランスゲインは、ホワイトバランスに対するデジタルゲイン、全ての色成分（例えば、ベイヤーフォーマットであるＧｒ、Ｒ、Ｂ、Ｇｂ）に対して独立してオフセット及びクリップを提供することができる。上記提供された様々な実施例及び説明が、未加工処理ステージ３０６などのフロントエンドピクセルデータ処理回路の様々な技術、構成要素、又はフォーマットについて限定することを意図しておらず、代わりに実施例として提供されるに過ぎないことに留意されたい。様々な構成要素、ユニット、又はモジュールは、複数の異なるパイプライン処理ステージに分離されてもよい。また、いくつかの実施形態では、構成要素、ユニット、又はモジュールのうちの様々なものは、未加工画像データ（例えば、画像センサピクセルデータフォーマットであるピクセルデータ）をフルカラー領域に変換してもよく、よって、未加工処理ステージ３０６は、様々な部分において、未加工画像データに加え、又はその代わりにフルカラー領域にある画像データを処理してもよい。例えば、単一のデモザイク処理（demosaic）ユニットは、画像データを未加工画像フォーマ���トに変換し戻す前にレンズシェーディング補正、ホワイトバランスゲイン、又はハイライトリカバリを実行するために未加工雑音フィルタリングからデータを受信してもよく、及び未加工画像データに対してフルカラー領域を補間してもよい。
【００４０】
様々な実施形態では、画像信号プロセッサ１０６は、再サンプリング処理ステージ３０８を実行してもよい。再サンプリング処理ステージ３０８は、未加工処理ステージ３０６などのフロントエンドピクセルデータ処理回路から受信された画像データを変換、再サンプリング、及び／又はスケーリングしてもよく、並びにバックエンドパイプラインステージ３４０などのバックエンドピクセルデータ処理回路（単数又は複数）で実行することができるものなどの削減されたレートに従って画像データを出力として提供してもよい。いくつかの実施形態では、再サンプリング処理ステージの部分のいくつか又は全ては、未加工処理ステージの一部として実行されてもよく、よって、前の説明は、画像データ内のキーポイントの検出を実施することができる画像処理パイプライン内のパイプラインステージの実施例として提供されることに留意されたい。
【００４１】
様々な実施形態では、画像信号プロセッサ１０６は、マシンビジョンステージ３１８などのフロントエンドピクセルデータ処理回路を実装してもよい。マシンビジョンステージ３１８は、図４に関して以下で更に詳細に議論されるように、センサインタフェース（単数又は複数）３０２、メモリ（例えば、システムメモリ１３０）、及び／又はバックエンド出力回路（例えば、出力再スケーリング３１４）を含む複数のソースから受信された画像データ（例えば、画像センサピクセルデータフォーマットである未加工ピクセルデータ）内のキーポイントを検出するように様々な演算を実行してもよい。様々な実施形態では、マシンビジョンステージ３１８はまた、ＩＳＰ１０６の他のフロントエンドパイプラインステージ又はＩＳＰ１０６の様々なバックエンドパイプラインステージから受信された画像データ内のキーポイントを検出するように構成されてもよい。一実施形態では、マシンビジョンステージ３１８は、バックエンドパイプラインステージ３４０において実施することができるものなど、削減されたレートに従って出力画像データを提供してもよい。
【００４２】
様々な実施形態では、画像信号プロセッサ１０６は、フロントエンドステージ３３０で画像データを処理するための初期のレート未満のレートで（例えば、４ｐｐｃの初期のレート＞３、２、又は１ｐｐｃの削減したレート）画像データを処理するために、バックエンドパイプラインステージ３４０などの１つ以上のバックエンドピクセルデータ処理回路（単数又は複数）を実装してもよい。少なくともいくつかの実施形態では、バックエンドパイプラインステージ３４０は、再サンプリング処理ステージ３０８又はバックエンドインタフェース３４２がバックエンドステージ３４０に提供することができる特定のフルカラーフォーマット（例えば、ＹＣｂＣｒの４：４：４又はＲＧＢ）に従って画像データを処理してもよい。いくつかの実施形態では、バックエンドステージ３４０のうちの様々なものは、画像データを特定のフルカラーフォーマットに変換するように構成されてもよく（又は、処理のための異なるフルカラーフォーマットを利用してもよい）、よって、前の実施例が限定することを意図していないことに留意されたい。
【００４３】
画像信号プロセッサ１０６は、いくつかの実施形態では、雑音処理ステージ３１０を実行してもよい。雑音処理ステージ３１０は、様々な実施形態では、ガンマ／逆ガンママッピング、色空間変換、時間フィルタリング、輝度鮮明化、及び彩度雑音削減などの様々な演算、機能、又はタスクを異なる順序で実行するように様々なモジュール、ユニット、又は構成要素を実装してもよい。色空間変換は、画像データを別のカラーフォーマット又は空間（例えば、ＲＧＢからＹＣｂＣｒに）に変換してもよい。ガンママッピングは、異なる画像効果を適用するために、ブラック及びホワイト変換、セピア階調変換、ネガティブ変換、又は露光変換を含むがそれらに限定されない、ピクセルデータの特定の色チャネル（例えば、Ｙ、Ｃｂ、及びＣｒチャネル）に対する非線形マッピング機能を提供することができる。時間フィルタリングは、様々な実施形態では、前にフィルタリングされた画像フレームからのピクセル値に基づいて、画像信号雑音をフィルタリングするように実行されてもよい。前にフィルタリングされた画像フレーム（本明細書では参照画像フレームと称されることがある）からのピクセル値は、ピクセル値の最良の推定値を取得するために、カレント画像フレームのピクセル値と組み合わされてもよい。例えば、時間フィルタは、カレント画像フレーム及び参照画像フレームが類似しているときに、カレント画像フレーム内のピクセル値及び参照画像フレーム内の対応するピクセルを平均化してもよい。少なくともいくつかの実施形態では、時間フィルタリングは、個々の色チャネルに対して実行されてもよい。例えば、時間フィルタは、Ｙ色チャネル値（ＹＣｂＣｒフォーマットである画像データからの）を参照フレーム内のＹ色チャネル値でフィルタリングしてもよい（Ｃｂ又はＣｒのような他のチャネルに対するフィルタリングなしで）。
【００４４】
空間雑音フィルタリングなどの他の雑音フィルタリングが実行されてもよい。少なくともいくつかの実施形態では、輝度鮮明化及び彩度抑制は、空間雑音フィルタリングの一部として同時に又はほぼ同時に実行されてもよい。輝度鮮明化は、いくつかの実施形態では、ピクセルデータの輝度値を鮮明化することができる。彩度抑制は、いくつかの実施形態では、彩度をグレーに減退することができる（すなわち、色なし）。雑音フィルタリングの度合（aggressiveness）は、いくつかの実施形態では、画像の異なる領域に対して異なって判定されてもよい。空間雑音フィルタリングは、上記議論されたような時間フィルタリングを実装する時間ループの一部に含まれてもよい。例えば、前の画像フレームは、処理されることになる次の画像フレームに対する参照フレームとして記憶される前に時間フィルタ及び空間雑音フィルタによって処理されてもよい。他の実施形態では、空間雑音フィルタリングは、時間フィルタリングに対する時間ループの一部として含まれなくてもよい（例えば、空間雑音フィルタは、画像フレームが参照画像フレームとして記憶された後にそれに適用されてもよい（よって、空間的にフィルタリングされた参照フレームではない））。上記提供された様々な実施例及び説明は、雑音処理ステージ３１０の一部として実装される様々な技術又は構成要素について限定することを意図しておらず、代わりに、実施例として提供されるに過ぎないことに留意されたい。
【００４５】
画像信号プロセッサ１０６は、いくつかの実施形態では、カラー処理ステージ３１２を実施してもよい。カラー処理ステージ３１２は、様々な実施形態では、局所階調マッピング、ゲイン／オフセット／クリップ、色補正、３次元カラールックアップ、ガンマ変換、及び色空間変換などの様々な演算、機能、又はタスクを異なる順序で実行するように様々なモジュール、ユニット、又は構成要素を実装してもよい。局所階調マッピングは、いくつかの実施形態では、画像をレンダリングするときの更なる制御を提供するために、空間的に変化する局所階調曲線を適用することができる。例えば、階調曲線の２次元グリッド（中央制御モジュール３２０によってプログラミングすることができる）は、平坦に変化する階調曲線が画像にわたって生成されるように双線形的に補間されてもよい。いくつかの実施形態では、局所階調マッピングは、例えば、画像内のハイライトを暗くし及びシャドウを明るくするために使用することができる、空間的に変化し、及び明暗度が変化する色補正行列を適用してもよい。デジタルゲイン、オフセット及びクリップは、いくつかの実施形態では、画像データの色チャネル又は成分ごとに提供されてもよい。いくつかの実施形態では、色補正変換行列を画像データに適用する色補正が実行されてもよい。３Ｄカラールックアップは、いくつかの実施形態では、拡張型階調マッピング、色空間変換、及び他の色変換を実行するために、色成分出力値（例えば、Ｒ、Ｇ、Ｂ）の３次元アレイを利用してもよい。ガンマ補正、階調マッピング、又はヒストグラムマッチングを実行するために、入力画像フレームデータ値を出力データ値にマッピングするガンマ変換が実行されてもよい。色空間変換は、１つの色空間から別へ（例えば、ＲＧＢからＹＣｂＣｒに）画像データを変換するために実行されてもよい。他の処理技術がまた、ブラック及びホワイト変換、セピア階調変換、ネガティブ変換、又は露光変換を含む、他の特殊画像効果を実行するようにカラー処理ステージ３１２の一部として実行されてもよい。
【００４６】
様々な実施形態では、画像信号プロセッサ１０６は、出力再スケーリングモジュール３１４などのバックエンド出力回路を実装してもよい。出力再スケーリングモジュール３１４は、ＩＳＰ１６０が画像データを処理するにつれて動作中（on the fly）の歪みを再サンプリング、変換及び補正してもよい。出力再スケーリングモジュール３１４は、いくつかの実施形態では、ピクセルごとの部分的入力座標を計算してもよく、及び多相再サンプリングフィルタを介して出力ピクセルを補間するためにこの部分的座標を使用してもよい。部分的入力座標は、画像をリサイズ又はトリミングすること（例えば、単純な水平及び垂直スケーリング変換を介して）、画像を回転及び刈り取ること（例えば、非分離可能行列変換を介して）、視点ワーピング（perspective warping）（例えば、追加の幅変換を介して）、及び画像データのキャプチャの間に画像センサにおける変化を原因とするストリップ（例えば、ロールシャッタに起因した）に区分的に適用されるピクセルごとの視野分割（per-pixel perspective divides）、並びに幾何学的歪み補正（補間された放射ゲインテーブルをインデックス付けするために光学的中心からの放射距離を計算すること、及び放射レンズ歪みを原因とする放射状摂動を座標に適用することを介して）など、出力座標の様々な考えられる変換から生成されてもよい。出力再スケーリング３１４は、図１及び２に関して上記議論されたように、出力インタフェース３１６を介してシステム１００の様々な他の構成要素に画像データを提供することができる。
【００４７】
一実施形態では、画像信号プロセッサ１０６は、「省電力」又は「低電力」モードを含むように構成されてもよく、それらのモードでは、ＩＳＰパイプラインの複数のステージが一時的に出力を下げてもよく（すなわち、非活性状態に入り又は停止される）、少なくとも画像センサ（単数又は複数）１０２及びフロントエンドピクセルデータ処理回路（例えば、マシンビジョンステージ３１８）を含む他のステージが、稼働したままであってもよく、及び活性したままであってもよい。マシンビジョンステージ３１８、及び時にシステムメモリ１３０のプログラム命令１３６は、画像センサインタフェースモジュールを介して画像センサ（単数又は複数）１０２から受信されたリアルタイムの画像データを監視してもよく、並びに１つ以上のキーポイント（単数又は複数）が検出されること、検出されたキーポイントの数における変化、キーポイントが検出される視野の位置若しくは領域における変化、キーポイントが検出された領域の近くの画像データにおける変化、及び／又はキーポイントが検出されているレートにおける変化に応じて、画像信号プロセッサ１０６の他のステージを「ウェイクアップ」するかを判定してもよい（すなわち、出力を上げ、起動し、又は活性状態に入るよう他のステージをトリガする）。同様に、キーポイント検出モジュールは、検出されたキーポイントの処理に基づいて（すなわち、後処理に基づいて）、他のフロントエンド及びバックエンド回路が低電力モードに留まるべき状況に処理されたキーポイントが対応すると判定してもよい。例えば、カメラ及びＩＳＰを備えた携帯電話がテーブルに置かれている場合、画像センサ（単数又は複数）は、データを記録していないことがあり（カメラが下向きである場合）又は固定画像を記録していることがあり（カメラが上向きである場合）、ディスプレイ並びに様々なフロントエンド及びバックエンドＩＳＰモジュールなどの電話機の他のモジュールは、非活性状態に一時的に出力を下げていることがある。予め定義された期間を通じてキーポイントがリアルタイムに検出されないこと、及び／又は予め定義された期間を通じてキーポイントデータが持続的に検出されないことに応じて検出されることがあるこの安定状態は、「スリープ」状態と考えられてもよい。次いで、ユーザが携帯電話を持ち上げる場合、次いで、画像センサ（単数又は複数）は、異なるシーンに向かって突然方向付けられることがあり、それによって、新たなキーポイントデータを検出する。同様に、キーポイント検出モジュールは、検出されたキーポイントの処理に基づいて、フロントエンド及びバックエンド回路が活性状態に入るべきである（例えば、何らかの関心のあるものがデバイスの視野上又は視野内で発生した場合）ことのインジケーションに処理されたキーポイントが対応すると判定してもよい。マシンビジョンステージ３１８によって検出されたキーポイントの数、位置及び／又は大きさにおけるリアルタイムの変化によって検出されることがあるこの突然のユーザの相互作用は、ウェイクアップ信号と考えられてもよい。よって、省電力モード（すなわち、低電力モード）によって、ユーザがモバイルデバイスを積極的に取り扱っていないときに１つ以上のＩＳＰパイプラインステージを一時的に停止することによって、並びに／又はユーザがモバイルデバイスを積極的に取り扱っているときに非活性のＩＳＰモジュール及び／若しくは電話機のディスプレイを起動することによって、画像信号プロセッサ１０６が電力を節約することが可能になる。
【００４８】
また、様々な実施形態では、ユニット３０２〜３４２の機能は、図３に例示された画像処理パイプライン内のそれらの機能的ユニットの順序によって暗示された順序とは異なる順序で実行されてもよく、又は図３に例示されたユニットとは異なる機能的ユニットによって実行されてもよいことに留意されたい。更に、図３（又は、後続の図４〜９）で説明される様々な構成要素、ユニット、処理、又は他の機能は、ハードウェア又はソフトウェアの様々な組み合わせで実装されてもよい。
【００４９】
上述したように、様々な実施形態では、フロントエンドパイプラインステージ３３０が初期のレートで画像データを処理し、バックエンドパイプラインステージ３４０が削減したレートで画像データを処理するなど、異なるステージが異なるレートで画像データを処理するように構成されてもよい。マシンビジョンステージ３１８は、様々な実施形態では、初期のデータレートで未加工処理ステージから画像データを受信し、削減した画像レートで画像データを処理し、及び出力画像データを提供するように構成されてもよい。図４は、いくつかの実施形態による、画像信号プロセッサ４００内のマシンビジョンステージ３１８を例示する論理ブロック図である。
【００５０】
様々な実施形態では、マシンビジョンステージ３１８などのフロントエンドピクセルデータ処理回路は、センサインタフェース（単数又は複数）３０２からの未加工画像データ４０２、システムメモリ１３０からの処理された画像データ（例えば、赤緑青（ＲＧＢ）若しくは輝度青色差赤色差彩度（ＹＣｂＣｒ））、又はバックエンドモジュール３４０からの処理された出力データ（例えば、パイプラインのバックエンドにおける出力回路からのＹデータ若しくはフルカラー出力データ）を含む、複数のソースから入力データを受信してもよい。実施形態では、マルチプレクサ４１０は、複数の入力ソースからデータを受け付け、及び前処理モジュール４２０に結合された単一のラインへのデータを動的に選択するように構成されてもよく、前処理モジュール４２０は、様々なピクセルフォーマット（例えば、未加工ピクセルデータ、ＲＧＢフォーマット、ＹＣＣフォーマット、及び単一のチャネルＹの入力データ）から輝度チャネルにデータを変換するように構成されてもよい。一実施形態では、前処理モジュール４２０は、入力画像データのサイズを削減するために（例えば、データをビニングダウンすることによって）、サブサンプリング又は他の機能を実行してもよい。一実施形態では、前処理モジュール４２０はまた、輝度計算のための１つ以上のサブモジュールを含んでもよい。いくつかの実施形態では、前処理モジュール４２０は、入力データをサブサンプリング及び／又はビニングしてもよく、次いで、入力チャネルの重み付け平均を介して輝度値を計算してもよい。実施形態では、前処理モジュール４２０は、輝度画像データの大域階調マッピング及び／又はガンマ補正を促進するためにルックアップテーブル（ＬＵＴ）を使用してもよい。よって、前処理モジュール４２０及びマルチプレクサ４１０は、マシンビジョンステージ３１８が複数のソースから画像データを受信すること及び１つ以上の色チャネル（単数又は複数）に画像データをダウンコンバートすることを可能にすることができ、特定の色チャネルを動的に選択及びプログラミングすることができる。前処理モジュール４２０のサブモジュール（輝度計算及び他の機能を実行するための）実施形態が、以下で詳細に議論される図５に例示される。
【００５１】
一実施形態では、前処理モジュール（例えば、前処理モジュール４２０）は、入力画像データを輝度画像又は輝度チャネルに変換してもよい。実施形態では、輝度画像を計算することは、複数の輝度チャネルの重み付け平均を含んでもよい。一実施形態では、チャネルの重み付け平均は、入力データがＹＣｂＣｒデータ又はＹ入力画像である場合にスキップされてもよい。別の実施形態では、サブサンプリングは、キーポイント検出回路に対する入力画像のサイズにおける更なる削減を生み出すために実行されてもよい。例えば、２０４８個のピクセル幅データが前処理モジュールに入力される場合、前処理モジュール及び／又はサブサンプリングモジュールは次いで、キーポイント検出回路による効率的な処理のためにデータを５１２個のピクセルの幅に削減することができる。
【００５２】
様々な実施形態では、出力再スケーリング３１４などのバックエンドスケーラモジュールは、同一又は異なるレートで画像データの１つ以上の出力を提供してもよい。例えば、いくつかの実施形態では、バックエンド３４０は、他の画像信号プロセッサパイプラインステージに、フルカラー領域にあり、及び更なる処理のために削減したレートでスケーリングされた画像データを提供してもよい。いくつかの実施形態では、フルカラーでスケーリングされた画像の単一のチャネル出力データ４３４は加えて（又は代わりに）、後の処理又は表示のために記憶されるようにシステムメモリ１３０に書き込まれてもよい。実施形態では、マシンビジョンステージ３１８によって受け付けられた単一のチャネルの色データのタイプは、動的に調節されてもよい（すなわち、プログラム可能）。一実施形態では、マルチプレクサ４１０及び前処理モジュール４２０など、マシンビジョンステージ３１８のフロントエンド内のモジュールは、初期のレートでデータを処理してもよく、キーポイント検出回路４３０などのマシンビジョンステージ３１８のバックエンド側のモジュールは、削減したレートで画像データを処理してもよく、それによって、画像信号プロセッサシステムにおける帯域幅を節約する。よって、マルチプレクサ４１０及び前処理モジュール４２０は、キーポイント検出回路４３０による処理のためにマシンビジョンステージ３１８が複数の入力ソース（例えば、１つ以上の画像センサ、メモリ、１つ以上のバックエンドパイプラインステージ、又は１つ以上のフロントエンドパイプラインステージ）から入力データを受け付けることを可能にするアップフロントデータマッサージングを提供することができる。実施形態では、よって、キーポイント検出回路４３０は、画像センサインタフェース（単数又は複数）３０２からの未加工データ（例えば、いまだ処理されておらず、又は他の方法で、いまだメモリに書き込まれていないピクセルデータ）に対して演算することが可能なマシンビジョンステージ３１８のサブモジュールであってもよいとともに、ＩＳＰ１０６内のメモリ及び／又は他のソースからの処理されたデータに対して選択的に演算するようにも構成されてもよい。
【００５３】
一実施形態では、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０は、画像の活性領域内のそれぞれのピクセルに対してヘッセ行列値のガウス導関数の近似値（効率の目的として）を計算するように構成された、「ボックスフィルタ」と称されることがある１つ以上の空間フィルタモジュールを含んでもよい。実施形態では、キーポイント検出回路４３０は、ヘッセ行列の要素への近似値を取得するために複数の空間フィルタ（例えば、３つの９×９空間フィルタ）を使用してもよく、フィルタ出力値は、Ｄｘｘ、Ｄｙｙ、及びＤｘｙであってもよい。様々な実施形態では、ボックスフィルタの出力データは、入力画像フレームデータを処理するために、キーポイント検出回路４３０のローカルメモリ（若しくは、システムメモリ１３０）に記憶されてもよく、及び／又はキーポイント検出回路４３０によって使用される調節可能な応答マップに含まれてもよい。キーポイント検出回路４３０は次いで、応答が局所的最大値であるか、及びそれぞれの局所的最大値が制御可能なキーポイント感度閾値を上回るかを判定してもよい。
【００５４】
実施形態では、キーポイント検出回路４３０は、画像データ内の１つ以上の対象とする点（キーポイントと称されることがある）を識別するためのキーポイント検出演算を実行してもよい。一実施形態では、キーポイント検出回路４３０は、ハードウェアベースであってもよく、及び入力画像の領域ごとにいくつかのキーポイントを出力するように構成されてもよい（例えば、画像の領域に対応するグリッドのそれぞれのエリア内のいくつかのキーポイントを出力することによって）。実施形態では、キーポイント検出回路４３０は、輝度計算のために画像データの１つのチャネル（例えば、動的にプログラミングされた単一のチャネル）に対して選択的に演算してもよい。例えば、キーポイント検出回路４３０は、ＲＧＢデータの入力信号に対するＲチャネル、Ｇチャネル、又はＢチャネルに対して演算してもよい。同様に、キーポイント検出回路４３０は、ＹＣｂＣｒデータの入力信号に対するＹチャネルに対して演算してもよい。
【００５５】
一実施形態では、キーポイント検出回路は、キーポイント制御パラメータ記憶構造４４０から１つ以上のプログラム可能な制御値を受信してもよい。実施形態では、キーポイント制御パラメータ記憶構造４４０は、複数のキーポイント感度閾値又は入力画像に対応するグリッドのプログラム可能なブロックサイズに対応する値などのキーポイント検出制御値を記憶するように構成されたファームウェア及び／又は１つ以上のレジスタを含んでもよい。いくつかの実施形態では、ＣＰＵ１０８は、キーポイント検出回路４３０及び／又はプログラム命令１３６からの出力に応じて、制御パラメータ記憶構造４４０の１つ以上の設定を調節するように構成されてもよい。同様に、ＣＰＵ１０８は、ＩＳＰステージのうちの１つ以上からの出力に基づいて、画像処理パイプラインの様々なステージ（マシンビジョンステージ３１８を含むがそれに限定されない）におけるＩＳＰ１０６の異なるモジュールの設定を制御又は他の方法で、調節するように構成されてもよい。一実施形態では、キーポイント検出回路４３０は、プログラム命令１３６及び／又は制御パラメータ記憶構造４４０から１つ以上のコマンドを受信するように構成されてもよい。例えば、キーポイント検出回路４３０は、画像のグリッド領域ごとに検出されたいくつかのキーポイントを出力／報告してもよく、プログラム命令１３６は、ハードウェアモジュールからの報告されたキーポイントの数に基づいて、画像の１つ以上の領域に対する調節可能なキーポイント検出閾値を動的に設定及び／又は調節してもよい。実施形態では、プログラム命令１３６及び／又は制御パラメータ記憶構造４４０は、グリッドに分割された画像の１つ以上の領域の、キーポイントの記述及び／又はキーポイントマグニチュードスコアなど、１つ以上の応答マップ値（単数又は複数）に基づいてキーポイント感度閾値のプログラム可能なシフト値を提供してもよい。よって、マシンビジョンステージ３１８のキーポイント感度閾値は、画像のそれぞれの領域の相対的明度、暗度、又は特徴形状のタイプ（単数又は複数）などの１つ以上の要因に基づいて、画像の領域ごとに調節可能であってもよい。様々な実施形態では、キーポイント検出回路４３０からの出力データは、システムメモリ１３０に記憶されてもよく、システムメモリ１３０内の異なる位置に記憶されてもよく、及び／又は画像信号プロセッサ１０６のパイプラインの他のステージに直接報告されてもよい。
【００５６】
更なる別の実施形態では、マシンビジョンステージ３１８は、画像の領域ごとの許容可能なキーポイント（例えば、ブロックごとの１つのキーポイント）のプログラム可能な最大限度（すなわち、数）を有する出力モードを含むように構成されてもよく（例えば、制御パラメータ記憶構造４４０の設定に基づいて）、それによって、過度な数のキーポイントが画像の領域に対して出力されることを防止することによって、キーポイント出力データの空間均一性を改善する。そのような実施形態は、以下で更に詳細に議論される図８、図９Ａ、及び図９Ｂに例示される。例えば、画像グリッドの領域ごとの単一の最大キーポイントの実施形態では、マシンビジョンステージ３１８、キーポイント検出回路４３０、及び／又はプログラム命令１３６は、調節可能なキーポイント感度閾値を上回る最高強度スコア（例えば、調節可能なキーポイント感度閾値の現在の設定を超える最高応答マグニチュード値）を有する単一のキーポイントのみを出力するように構成されてもよい。キーポイント検出回路４３０が画像の領域内のいずれのキーポイントを検出せず、及び／又は画像の領域が調節可能なキーポイント感度閾値の現在の設定を超える強度スコアを有するいずれのキーポイントを含まない場合、キーポイント検出回路４３０は次いで、画像のその特定の領域に対応するゼロのキーポイントを出力してもよい。
【００５７】
一実施形態では、バックエンドモジュール３４０は、フルカラー領域内の変換された画像データに対して様々なスケーリング、再サンプリング、又は他の画像データ演算を実行してもよい。少なくともいくつかの実施形態では、バックエンドモジュール３４０は、異なるタイプでスケーリングされ、再サンプリングされ、又は他の方法で、修正された画像データ出力を提供する複数のモードで動作してもよい。例えば、バックエンドモジュール３４０は、画像データをスケーリングすることなく、画像データ内のアーチファクトを補正又は抑制する（例えば、デモザイク処理ユニットによって取り入れられていることがあるエイリアシングアーチファクトの付近の輝度エッジを除去するために彩度エイリアシングアーチファクトを抑制すること、又はデモザイク処理ユニットによって取り入れられたドットアーチファクトを除去すること）モードを提供してもよい。バックエンドモジュール３４０に対する別のモードは、いくつかの実施形態では、画像ダウンスケーリング及び再サンプリングを実行してもよい（画像データ内のアーチファクトを補正又は抑制することに加え、又はその代わりに）。
【００５８】
図４がマシンビジョンステージ３１８の実施例に過ぎないものとして提供されることに留意されたい。例示される構成要素（例示されない構成要素とともに）の異なる組み合わせが未加工画像データからフルカラー領域への変換を実行し、又は画像データをスケーリングするために使用されてもよい。よって、図４の構成要素及びそれらのそれぞれのレイアウト又は順序は、マシンビジョンステージ３１８によって使用することができる様々な他の組み合わせに限定することを意図していない。
【００５９】
図５は、いくつかの実施形態による、画像信号プロセッサ内の前処理モジュール４２０を例示する論理ブロック図である。一実施形態では、前処理モジュール４２０は、未加工／ＲＧＢ／ＹＣＣ／Ｙデータ５０５などの複数のタイプのデータを受信するように構成されたサブサンプリング／ビニングモジュール５１０を含んでもよい。よって、未加工／ＲＧＢ／ＹＣＣ／Ｙデータ５０５に対して例示される単一の矢印は、マルチプレクサ４１０を含む他のモジュールによって提供される入力に部分的に基づいた異なる時間における異なるタイプのデータに対応することができる。様々な実施形態では、未加工データは、１つ以上の画像センサインタフェース（例えば、画像センサ（単数又は複数）１０２のインタフェース）から直のベイヤー未加工画像データ、システムメモリ１３０からのベイヤー未加工画像データ、デジタルネガティブ（ＤＮＧ）未加工フォーマットである画像データ、又は他のカラーフィルタタイプに対応する未加工画像データを含んでもよい。一実施形態では、サブサンプリング／ビニングモジュール５１０によって実行される処理は、未加工／ＲＧＢ／ＹＣＣ／Ｙデータ５０５で受信されたピクセルデータのフォーマットに依存することがある。例えば、未加工／ＲＧＢ／ＹＣＣ／Ｙデータ５０５がベイヤー未加工画像データに対応する場合、サブサンプリング／ビニングモジュール５１０は、水平に２倍で、及び垂直に２倍で入力ピクセルデータをサブサンプリングしてもよい。よって、ベイヤー未加工処理工程は、画像センサインタフェースから受信された入力ピクセルデータに対してクロックサイクルごとに２つのピクセルを取り扱うように構成されてもよい。実施形態では、未加工／ＲＧＢ／ＹＣＣ／Ｙデータ５０５が単一の輝度チャネル又はＹＣＣ画像に対応する場合、サブサンプリング又はビニングの工程が次いでバイパスされてもよく（すなわち、スキップされる）、又は任意選択で実行されてもよい。
【００６０】
一実施形態では、サブサンプリング／ビニングモジュール５１０は、ＲＧＢ／ＹＣＣ／Ｙデータ５１５などの出力データを生成してもよく、及び輝度計算モジュール５２０に出力データを提供してもよい。実施形態では、輝度計算モジュール５２０は、カラーフィルタベースの画像データの複数のチャネルの重み付け平均を実行するように構成されてもよい。例えば、輝度計算モジュール５２０は、輝度画像を計算するために、ベイヤー画像データの３つのチャネル（すなわち、Ｒ、Ｇ、及びＢチャネルデータ）の重み付け平均を計算してもよい。一実施形態では、輝度画像計算工程は、ＲＧＢ／ＹＣＣ／Ｙデータ５１５がＹＣＣ又はＹ入力画像フレームデータに対応する場合にバイパスされてもよい（すなわち、スキップされる）。言い換えると、輝度画像計算工程は、プログラム可能であってもよく、及び輝度チャネルフォーマットに対応する入力データに対してバイパスされてもよい。したがって、図５に例示された実施形態は、前処理モジュール４２０の１つの考えられる実施例に過ぎない。
【００６１】
実施形態では、輝度計算モジュール５２０は、第２のサブサンプリングモジュール５３０に、１６ビットフォーマットであるＹデータ５２５などの出力データを提供してもよく、第２のサブサンプリングモジュール５３０は、入力画像フレームデータのサイズの任意選択の更なる削減を実行するように構成されてもよい。様々な実施形態では、サブサンプリングモジュール５３０は、プログラム可能な制御レジスタ、システムメモリ１３０、又は中央制御３２０から受信された制御値に基づいて、水平及び垂直の両方でＹデータ５２５の１、２、４、又は８個のピクセルごとにサンプリングしてもよい。サブサンプリングモジュール５３０は、次いで、更なる処理及び８ビットデータへの変換のためにルックアップテーブル５４０に１６ビットフォーマットであるＹデータ５３５を提供してもよい。
【００６２】
一実施形態では、前処理モジュール４２０は、Ｙデータ５３５などの輝度画像データに対して大域階調マッピング及び／又はガンマ補正の機能を実行するように構成することができるルックアップテーブル５４０を含んでもよい。様々な実施形態では、ルックアップテーブル５４０は、ハードウェア、ファームウェア、若しくはソフトウェアで実装されてもよく、並びに／又はルックアップテーブル５４０の要素は、システムメモリ１３０に記憶されてもよい。実施形態では、ルックアップテーブル５４０は、それぞれの入力レベルに対する出力レベルを表す８ビット値の６５個のエントリを有する１次元（１Ｄ）ルックアップテーブルを含んでもよく、それによって、ルックアップテーブル５４０がガンマ補正の間に出力値を線形的に補間することが可能になる。よって、ルックアップテーブル５４０は、Ｙｇａｍデータ５４５などの出力データを生成することができる。様々な実施形態では、ガンマ補正工程はバイパスされてもよく、そのケースでは、入力データ（例えば、Ｙデータ５３５）の８個の最上位ビット（ＭＳＢ）がキーポイント検出回路４３０による更なる処理のために８ビットの出力データとしてＹｇａｍデータ５４５にわたって複製されてもよい。いくつかの実施形態では、よって、ルックアップテーブル５４０は、１６ビットの入力データを受信し、及びキーポイント検出回路４３０による更なる処理のために８ビットの出力データを提供するように構成されてもよい。
【００６３】
一実施形態では、キーポイントは、調節可能なキーポイント感度閾値を超える局所的最大マグニチュード（すなわち、強度）値を含んでもよい。実施形態では、キーポイント検出回路は、第１の画像内のオブジェクトの識別及び同一のオブジェクトを含む後続の画像への第１の画像内のオブジェクトのマッチングを促進する、画像内の対象とする１つ以上の位置（例えば、角又は接点）を識別することができる。一実施形態では、キーポイント検出演算は、ヘッセ行列の要素の近似値（例えば、Ｄｘｘ、Ｄｙｙ、Ｄｘｙ値）を取得するために空間フィルタへの応答を計算すること、１つ以上のピクセルにおけるヘッセの行列式への近似値を応答メトリックとして計算すること、各々のそれぞれの局所的最大マグニチュードが調節可能なキーポイント感度閾値を上回るかを判定すること、応答が実際に局所的最大値であるかを判定すること、及びキーポイント出力データをメモリに記憶するために、メモリモジュールと通信すること（例えば、ダイレクトメモリアクセス（ＤＭＡ）モジュールを介して）を含んでもよい。様々な実施形態では、キーポイント出力データは、キーポイントの記述、キーポイントのデカルト（Ｘ，Ｙ）座標、調節可能なキーポイント感度閾値を超える各々のそれぞれの局所的最大マグニチュード（すなわち、強度）値の応答マグニチュード（すなわち、強度）、キーポイントの符号ビット値（すなわち、極性）、及び／又は１つ以上の画像エッジスコアの記述（例えば、水平／垂直エッジデータ）を含んでもよい。実施形態では、符号ビット（極性）値は、キーポイント検出回路４３０が入力画像フレームのピクセルデータ内の明−暗転移及び／又は暗−明転移（light-to-dark and/or dark-to-light transitions）を検出することを可能にするように構成されたデータを含んでもよい。一実施形態では、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０は、キーポイントピクセル位置、水平エッジデータ、及び／又は垂直エッジデータを検出するように選択的に構成されるようプログラム可能であってもよい。
【００６４】
図１〜５は、画像処理パイプラインにおいて画像データ内のキーポイントの検出を実装することができる画像処理パイプライン、画像信号プロセッサ、及びシステムの実施例を提供する。しかしながら、画像処理パイプライン及び画像信号プロセッサを実装するシステム又はデバイスの多くの他のタイプ又は構成は、画像データに対してマルチレート処理を実行することができる。図６は、いくつかの実施形態による、画像データ内のキーポイントを検出する様々な方法及び技術を例示する高レベルフローチャートである。上記説明された様々な構成要素は、それらの技術（以下の図７、図８、及び図９Ａ〜９Ｂに関して説明される構成要素に加え）とともに、様々な他の画像処理パイプライン及び画像信号プロセッサを実装してもよい。
【００６５】
６１０に示されるように、画像センサインタフェース（例えば、センサインタフェース（単数又は複数）３０２）は、画像センサ（例えば、画像センサ（単数又は複数）１０２）から未加工ピクセルデータを受信してもよい。ブロック６２０に記述されるように、未加工処理ステージ３０６などのフロントエンドピクセルデータ処理回路は、画像センサピクセルデータフォーマットである画像フレームに対するピクセルデータを受信してもよい。ブロック６３０に例示されるように、フロントエンドピクセルデータ処理回路は、画像センサピクセルデータフォーマットであるピクセルデータを異なる色空間フォーマットに変換してもよい。
【００６６】
ブロック６４０に示されるように、雑音処理ステージ３１０又はカラー処理ステージ３１２などのバックエンドピクセルデータ処理回路は、フロントエンドピクセルデータ処理回路からのピクセルデータに対して１つ以上の雑音フィルタリング又はカラー処理演算を実行してもよい。ブロック６５０に記述されるように、出力再スケーリング３１４などの出力回路は、バックエンドピクセルデータ処理回路からピクセルデータを受信してもよく、及びシステムメモリ１３０などのシステムメモリに画像フレームに対するピクセルデータを出力してもよい。
【００６７】
ブロック６６０に示されるように、キーポイント検出回路４３０などのキーポイント検出回路又はマシンビジョンステージ３１８は、センサインタフェース（単数又は複数）３０２から画像センサピクセルデータフォーマットであるピクセルデータを受信してもよく、又はフロントエンドピクセルデータ処理回路若しくはバックエンドピクセルデータ処理回路による処理の後のピクセルデータを受信してもよい。実施形態では、マルチプレクサモジュール（例えば、マルチプレクサ４１０）は、複数の入力のうちの１つから入力画像データを受信してもよい。複数の入力は、画像センサモジュール（例えば、センサインタフェース（単数又は複数）３０２）からの未加工ピクセルデータ、メモリモジュール（例えば、システムメモリ１３０）からの画像データ、バックエンド出力回路（例えば、出力再スケーリング３１４若しくはバックエンドモジュール３４０）からの単一のチャネル及び／若しくはフルカラー出力データ、又はＩＳＰ１０６の１つ以上のフロントエンドパイプラインステージ及び／若しくはバックエンドパイプラインステージからの色空間フォーマットデータを含んでもよい。実施形態では、画像センサから収集された未加工ピクセルデータのストリームは、画像信号プロセッサ（ＩＳＰ）において受信されてもよい。未加工ピクセルデータは、それが画像センサにおいて収集されるのでストリームの形式でキャプチャ及び処理されてもよい。一実施形態では、上記議論されたような未加工画像ピクセルデータは、複数の色成分又はチャネルが個々のピクセルに対して含まれないようにフォーマットされてもよい。未加工画像データの実施例は、ベイヤー画像フォーマット（その多くの変形型があってもよい）であり、ベイヤー画像フォーマットは、画像センサの構成に依存する、異なる色、緑、赤、及び青の光を収集するためのピクセル値の異なる行を含む。それらのピクセル値（例えば、緑値、赤値、又は青値）は、いくつかの実施形態では、ラスタ順で画像信号プロセッサに収集及び提供されてもよい。
【００６８】
ブロック６７０に示されるように、キーポイント検出回路は、画像フレーム内の１つ以上のキーポイントを検出するように、受信されたピクセルデータに対してキーポイント検出演算を実行してもよい。ブロック６８０に例示されるように、キーポイント検出回路は、システムメモリに１つ以上のキーポイントの記述を出力してもよい。
【００６９】
一実施形態では、画像は、複数の領域（例えば、以下で議論される図７の画像フレーム７００）を有するグリッドに分割されてもよく、それによって、グリッドの各々のそれぞれのブロックは、調節可能なキーポイント感度閾値に基づいた１つ以上のキーポイントを有することができる。キーポイント検出回路４３０又はマシンビジョンステージ３１８などのハードウェアモジュールは、キーポイント感度閾値を調節するために、キーポイントを検出し、及びメモリモジュールに記憶されたソフトウェア（例えば、プログラム命令１３６）とインタフェースするように構成されてもよい。例えば、キーポイント感度閾値を高めることによって雑音感度を削減させることができ、それによって、画像雑音のみに起因した応答値の局所的最大値が意図せずにキーポイントとして識別されることを防止する。一実施形態では、画像のそれぞれの領域は、ソフトウェアアプリケーションによって設定された異なるキーポイント感度閾値を有してもよい。よって、ソフトウェアアプリケーションは、画像の異なる領域でハードウェアモジュール（例えば、マシンビジョンステージ３１８）によって検出されたキーポイントの数及び／又は強度に応じて、画像の様々な領域の１つ以上のキーポイント感度閾値を動的に調節することができる。
【００７０】
いくつかの実施形態では、キーポイント検出回路４３０からのキーポイント出力データなどの処理された画像データとともに画像信号プロセッサのパイプラインステージ（単数又は複数）のいくつか又は全てからの画像データは、メモリモジュール（例えば、システムメモリ１３０）に保存されてもよい。例えば、キーポイント出力データは、制御ユニット又は他のプログラム可能な構成要素が処理された画像データ及びキーポイントをメモリに記憶するようにＩＳＰに指示する場合にメモリに保存されてもよい。このようにして、ＣＰＵ又はＧＰＵなどの他の構成要素は、メモリにアクセスすることによって未加工画像及びキーポイントデータに対して画像処理を実行することができる。代わりに、画像データは、メモリから取り出されてもよく、及び様々なＩＳＰ要素を通じて処理を続けてもよい。
【００７１】
６４０に示されるように、キーポイント検出回路は、メモリモジュール（例えば、システムメモリ１３０）にキーポイント出力データを書き込む。一実施形態では、様々なタイプのキーポイント出力データは、キーポイントの記述、キーポイントの座標（例えば、画像内のキーポイントのｘ、ｙ座標）、キーポイントの応答マグニチュード（例えば、調節可能なキーポイント感度閾値を超える強度スコア値）、及びキーポイントの符号ビット値（例えば、中心が明るいか又は暗いかを識別する極性値）を含んでもよい。
【００７２】
図７は、いくつかの実施形態による、画像データ内のキーポイントを検出するための実施例の画像フレーム７００を例示する論理ブロック図である。実施形態では、画像フレーム７００は、複数の領域、ブロック、又はグリッドに分割された画像に対応してもよい。一実施形態では、画像フレーム７００は、複数のブロック７０２Ａ〜Ｎを含むように構成されてもよく、各々のブロックは、入力画像フレームの領域に対応する。一実施形態では、画像フレーム７００は、合計２５個のブロックを有する５×５のテーブルに対応してもよいが、任意の数のブロックが様々な実施形態で使用されてもよい。ブロック７０２Ａ〜Ｎの各々は、メモリモジュールに記憶された１つ以上のデータ値と関連付けられてもよい。それぞれのブロック（よって、入力画像フレームのそれぞれの領域）に対応するデータ値は、調節可能なキーポイント感度閾値及び画像のそれぞれの領域内で検出されたキーポイント出力値（単数又は複数）のデータを含んでもよい。いくつかの実施形態では、１つ以上のブロックは、マシンビジョンステージ３１８及び／若しくはキーポイント検出回路４３０が画像の対応する領域内でいずれのキーポイントを検出しなかった場合、並びに／又はその領域内のキーポイント（単数又は複数）が調節可能なキーポイント感度閾値を超えなかった場合にキーポイントデータを含まなくてもよい（すなわち、その特定のブロックに対してゼロのキーポイント）。反対に、いくつかの実施形態では、ブロックは、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０が画像の対応する領域内で調節可能なキーポイント感度閾値を上回る複数のキーポイントを検出した場合に複数のキーポイント値を含んでもよい。実施形態では、ブロック７０２Ａ〜Ｎの各々は、画像の対応する領域の属性に基づいて、調節可能なキーポイント感度閾値に異なって且つ独立して関連付けられてもよい。別の実施形態では、キーポイント検出回路４３０に記憶され、又はメモリ（例えば、システムメモリ１３０）に記憶されたレジスタ値によって、中央制御３２０、マシンビジョンステージ３１８、キーポイント検出回路４３０、及び／又はプログラム命令１３６が、ブロックごとに許容されたキーポイントの最大限度、グリッドのラインごとに許容されたキーポイントの最大数、並びに／又は画像ごとにマシンビジョンステージ３１８及び／若しくはキーポイント検出回路４３０によって書き出されることが許容されたキーポイントの最大数を動的に調節することが可能になる。例えば、ブロックごと又はグリッドのラインごとのキーポイントの最大数に対応するように構成されたレジスタ値は、安全なメモリ動作を保証することができ、それによって、システム（又はメモリアクセス）帯域幅が高レベルに到達するときにＩＳＰ１０６が失速することを防止する。同様に、最大許容可能数の画像ごとのキーポイントを制御することによって、ＩＳＰ１０６は、処理時間を節約することが可能になり、よって、省電力化する。
【００７３】
図８は、いくつかの実施形態による、画像データ内のキーポイントを検出するための実施例の画像フレーム８００を例示する論理ブロック図である。実施形態では、画像フレーム８００は、複数のブロック８０２Ａ〜Ｚのグリッドを含むように構成されてもよく、各々のブロックは、入力画像フレームの領域に対応する。一実施形態では、図８は、削減（pared）グリッドシステムに対応してもよく、そこでは、画像フレーム８００は、ブロック８０２Ａ〜Ｚの各々がキーポイント値（例えば、それぞれのブロックに対応する領域内の他の検出されたキーポイントに対する最大強度値を有する単一のキーポイント）のプログラム可能な最大限度を含むことができるように構成されてもよい。例えば、１０がブロックごとの最大数であり、及び１０以上のキーポイントがブロック内で発見される場合、最大応答値を有する１０が出力される。実施形態では、画像フレーム８００はまた、閾値領域８０４Ａ〜Ｎの各々がブロック８０４Ａ〜Ｚの複数を含むことを可能にする配置構成で、１つ以上の閾値領域８０４Ａ〜Ｎがブロック８０２Ａ〜Ｚに重なることができるように構成されてもよい。そのような実施形態では、閾値領域８０４Ａ〜Ｎは、ブロック８０２Ａ〜Ｚよりも大きくてもよく（画像ピクセルに関して）、よって、各々の閾値領域は、ブロックのサブセット又はグループを含んでもよく、各々のブロックは、最大で１つの（最大の）キーポイントに対応するデータを含んでもよく、閾値領域内のブロックのそれぞれのサブセットのキーポイントは各々、そのそれぞれの閾値領域に対する特定の動的に調節可能なキーポイント感度閾値に基づいてキーポイント検出回路４３０によって計算される。よって、図８に例示される実施形態によって、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０は、入力画像フレームのピクセルに関して更に粒度の細かい配置構成を利用することが可能になるとともに、調節可能なキーポイント感度閾値に対して領域ベースのモデルを維持することが可能になる（すなわち、より広いレベルでプログラム可能なキーポイント感度閾値と組み合わされた微細なレベルでプログラム可能な濃度を有するキーポイント検出スキーム）。
【００７４】
一実施形態では、画像フレーム８００は、図７に記述された実施例の画像フレームに対してより多くのブロックを有する（よって、キーポイントの増加した均一性及び／又はより高い解像度を有する）ように構成されてもよい。しかしながら、上述したように、任意の数のブロックが様々な実施形態で使用されてもよい。ブロック８０２Ａ〜Ｚの各々は、局所的キーポイント感度閾値及びブロックに対応する１つ以上の記述的キーポイント値などの１つ以上のデータ値と関連付けられてもよい。実施形態では、ブロック８０２Ａ〜Ｚは、調節可能なキーポイント感度閾値８０４Ａ〜Ｎに独立して関連付けられてもよい。キーポイント検出モジュール４３０及び／又はプログラム命令１３６は、キーポイント感度閾値８０４Ａ〜Ｎの各々に対応する画像フレームのそれぞれの領域内のブロック８０２Ａ〜Ｚのうちの１つ以上で検出されたキーポイントの総数に基づいて、キーポイント感度閾値８０４Ａ〜Ｎのレベルを設定してもよい。実施形態では、キーポイント感度閾値８０４Ａ〜Ｎに対応する画像フレームの領域は、ブロック８０２Ａ〜Ｚのサイズよりも相対的に大きくてもよく、それによって、ブロック８０２Ａ〜Ｚは、検出されたキーポイント値の増加した均一性を可能にするためのより微細なグリッドに対応することができる。
【００７５】
図８の実施形態では、画像フレーム８００は、ブロックごとに最大で１つのキーポイントを記憶するように構成されてもよい。様々な実施形態では、画像フレームは、ブロックごとに許容されたプログラム可能な最大数のキーポイントを含むように構成されてもよい。いくつかの実施形態では、プログラム可能な最大数のキーポイントは、グリッド内の全てのブロックに対して同一に設定されてもよく（すなわち、グリッド全体に対して均一な最大限度）、他の実施形態では、グリッドの各々のブロックは、異なるプログラム可能な最大数のキーポイントを含んでもよい（すなわち、グリッド内の様々なブロックに対する独立したプログラム可能な制限）。全てのケースでブロック内の最高スコアのキーポイントは、保存されたものである。実施形態では、ブロックごとに発見されたキーポイントの数を削減することは（例えば、最大でブロックごとに１つのキーポイントに）、画像のキーポイントデータに対して増加した空間均一性を順守することを支援することができる。そのような実施形態では、「削減グリッド（pared grid）」と称されることがあり、よって、それぞれのブロックに対応するデータ値（すなわち、入力画像フレームのそれぞれの領域）は、調節可能なキーポイント感度閾値及び画像の各々のそれぞれの領域内で検出された１つのキーポイント出力値の最大値に対応するデータを含むことができる。いくつかの実施形態では、ブロックごとの１つのキーポイントの最大値をマシンビジョンステージ３１８及び／又はキーポイント検出回路４３０によって順守することができるが、キーポイント検出回路４３０が画像の対応する領域内でいずれのキーポイントを検出しなかった場合、及び／又はその領域内のキーポイント（単数若又は複数）が調節可能なキーポイント感度閾値を超えなかった場合、１つ以上のブロックはいまだにいずれのキーポイントデータを含まないことがある（すなわち、ゼロのキーポイントが特定のブロックに対して報告されることがある）。ブロックごとの１つのキーポイント値の最大限度が順守される実施形態について、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０は、単一のブロックに対応する画像の領域内で調節可能なキーポイント感度閾値を上回る複数のキーポイントを検出することができ、及びそのブロック内で検出された他のキーポイントに対して最高マグニチュード値を有するキーポイント値を、そのブロックに対して報告された単一のキーポイントになると選択することによって衝突を解決することができる。一実施形態では、複数のキーポイントがブロックに対応する領域内で検出され、及び複数のキーポイントのうちの２つ以上がその特定のブロックに対して同一の最高応答マグニチュード値を共有する場合（すなわち、ブロック内の２つ以上のキーポイントが高マグニチュード値を等しく有する場合）、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０は次いで、ラスタ順に基づいてその特定のブロックに対して最初に発見されたキーポイントを、そのブロックに対して報告された単一のキーポイントになると選択してもよい。言い換えると、ブロック内の２つ以上のキーポイントがキーポイント感度閾値を超える��致した最高マグニチュード値を有する場合、次いで、タイブレーカ（tie breaker）が、キーポイントが検出されたラスタ順であってもよい。
【００７６】
一実施形態では、削減グリッドシステムは、入力画像フレームの領域に対応する様々なブロックに対する１つのキーポイントの最大限度を含んでもよく、ブロックのグリッドは、制御パラメータ記憶構造４４０に記憶され、キーポイント検出回路４３０のファームウェアに記憶され、又はメモリ（例えば、システムメモリ１３０）に記憶されたレジスタ値によって指定されてもよい。例えば、制御パラメータ記憶構造４４０のレジスタを有効にする削減グリッドは、一般的なラスタ順（例えば、レジスタを有効にする削減グリッドが「Ｆａｌｓｅ」値を含む場合のグリッド幅ラスタ出力）からそれぞれのブロック内でキーポイントがラスタ形式で出力されるキーポイント出力モードに（例えば、レジスタを有効にする削減グリッドが「Ｔｒｕｅ」値を含む場合のブロック集中ラスタ出力）にキーポイント出力順序を変更するように構成された削減グリッド出力モードを有効又は無効にするブール値を含んでもよい。１つ以上のレジスタ値は、ピクセル内で測定されるように、ブロックのサイズを指定することができる。同様に、１つ以上のレジスタ値は、入力画像フレームの領域に対応することができる水平及び／又は垂直の次元でブロックの数を指定することができる。
【００７７】
図９Ａは、いくつかの実施形態による、画像データ内のキーポイントを検出するための実施例の画像フレーム９００Ａを例示する論理ブロック図である。一実施形態では、画像フレーム９００Ａは、削減グリッドシステムに対応するように構成されてもよい（例えば、図８の実施形態と同様の形式で）。実施形態では、画像フレーム９００Ａは、１つ以上の閾値領域９０２Ａ〜Ｎを含んでもよく、その各々は、入力画像フレームのピクセルのグループに対応する複数のブロックのサブセットを含んでもよい。様々な実施形態では、閾値領域９０２Ａ〜Ｎの各々は、独立して動的に調節可能なキーポイント感度閾値に対応してもよく、それによって、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０は、閾値領域の１つ以上のブロック内で検出されたキーポイントの数、閾値領域の１つ以上のブロック内で検出されたキーポイントのマグニチュード（若しくは、強度）、閾値領域内で検出されたキーポイントの符号ビット（すなわち、極性）値、又は閾値領域内で検出されたキーポイントに対応する他の記述的データなどのリアルタイムな因子に応じて、画像の領域によってキーポイント感度閾値を選択的に調節することが可能になる。図９Ａ及び９Ｂに記述された様々な実施例のキーポイントのサイズ及び構成は、例示を目的としたキーポイント強度を示すものとして意図され、実際のオブジェクトを表すものではないことに留意されたい。
【００７８】
実施形態では、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０は、入力画像フレームの領域に対応する１つ以上のブロック内でキーポイントを検出してもよい。同様に、ゼロのキーポイントが、他のブロックに対応するピクセルデータ内で検出されてもよい。検出されたキーポイントの１つ以上の属性に対応するデータ（例えば、キーポイントの記述的情報、位置／座標情報、マグニチュード／強度情報、及び／又は符号／極性情報）は、マシンビジョンステージ３１８及び／又はキーポイント検出回路４３０による更なる処理のために制御パラメータ記憶構造４４０に記憶されてもよい。例えば、画像フレーム９００Ａの様々なブロックは、閾値領域９０２Ａ〜Ｎのうちのそれぞれの１つの動的に調節可能なキーポイント感度閾値の現在値を超えるマグニチュード値を有する検出されたキーポイントに対応する閾値を上回る（above-threshold）キーポイント値９０４Ａ〜Ｎを含んでもよい。反対に、画像フレームの様々なブロックは、閾値領域９０２Ａ〜Ｎのうちのそれぞれの１つの動的に調節可能なキーポイント感度閾値の現在値を下回るマグニチュード値を有する検出されたキーポイントに対応する閾値を下回る（below-threshold）キーポイント値９０６Ａ〜Ｎを含んでもよい。
【００７９】
複数のキーポイントが画像フレーム９００Ａの同一のブロック内で検出されるケースについて、ブロックは、画像フレーム９００Ａのそのそれぞれのブロック内の他の検出されたキーポイントのマグニチュードを超えるマグニチュード（又は、強度）を有する、最大マグニチュードキーポイント値９０８Ａ〜Ｎのうちの１つなどの最大マグニチュードキーポイント値を含んでもよい。実施形態では、キーポイント検出回路４３０は、以下で更に詳細に議論される図９Ｂに記述されるように、ブロックの最大マグニチュードキーポイント値のみを選択的に報告してもよい。図９Ａに戻ると、一実施形態では、画像フレーム９００Ａは、類似のマグニチュードキーポイント９１０Ａ及び９１０Ｂなどの類似のマグニチュード値を有する複数の検出されたキーポイントを有する１つ以上のブロックを含んでもよい。そのような実施形態では、キーポイント検出回路４３０は、そのブロックに対するピクセルのラスタ順に基づいて、そのブロック内で最初に検出された等しい値のキーポイントのみを選択的に報告してもよい。例えば、キーポイント検出回路４３０は、以下で議論される図９Ｂに記述されるように、類似のマグニチュードキーポイント９１０Ａを報告してもよく、及び類似のマグニチュードキーポイント９１０Ｂを報告しないことを選択してもよい。
【００８０】
様々な実施形態では、画像フレーム９００Ａの１つ以上のブロックは、異なるタイプの検出されたキーポイント、単一のタイプの検出されたキーポイント、又はゼロの検出されたキーポイントの組み合わせを含んでもよい。したがって、図９Ａの実施例は、限定することを意図していない。
【００８１】
図９Ｂは、いくつかの実施形態による、画像データ内のキーポイントを検出するための実施例の画像フレーム９００Ｂを例示する論理ブロック図である。一実施形態では、図９Ｂは、図９Ａの画像フレーム９００Ａの出力された（すなわち、処理された）バージョンに対応してもよい。例えば、閾値領域９０２Ａ〜Ｎのそれぞれの１つの動的に調節可能なキーポイント感度閾値の現在値を超えるマグニチュード値を有する検出されたキーポイントに対応する閾値を上回るキーポイント９０４Ａ〜Ｎは、閾値を上回るキーポイント９０４Ａ〜Ｎが検出されたそれぞれのブロックに残る。よって、キーポイント検出回路４３０は、閾値を上回るキーポイント値９０４Ａ〜Ｎが、キーポイント感度閾値を超えるそれらのそれぞれのブロック内の検出されたキーポイントであったこと、及びそれぞれのブロック内で検出されていることがある他のキーポイントよりも強くもあったことを判定したことに応じて、閾値を上回るキーポイント値９０４Ａ〜Ｎを出力データとして報告することを選択していることがある。反対に、キーポイント検出回路４３０による処理の間に図９Ａの閾値を下回るキーポイント値９０６Ａ〜Ｎは除去されている（すなわち、選択されておらず、及び／又は他の方法で、フィルタリングされている）。よって、閾値を下回るキーポイント値９０６Ａ〜Ｎは、図９Ｂに記述された出力データでは報告されない。
【００８２】
実施形態では、キーポイント検出回路４３０は、最大マグニチュードキーポイント値９０８Ａ〜Ｎの値よりも小さいマグニチュード値を有しているそれぞれのブロック（単数又は複数）内の１つ以上の他のキーポイントを除去する（すなわち、選択しない、又は他の方法で、フィルタリングする）間、それらのそれぞれのブロックに対する出力データ内の最大マグニチュードキーポイント値９０８Ａ〜Ｎを選択的に報告してもよい。よって、最大マグニチュードキーポイント値９０８Ａ〜Ｎは、図９Ｂに記述された出力データに残る（すなわち、報告される）。一実施形態では、キーポイント検出回路４３０は、それぞれのブロック内の類似のマグニチュード／強度値を有する１つ以上の他のキーポイントの代わりに、類似のマグニチュードキーポイント９１０Ａを選択的に報告してもよい。よって、処理の間、類似のマグニチュードキーポイント９１０Ａは、図９Ｂに記述された出力データに残るとともに（すなわち、報告される）、類似のマグニチュードキーポイント９１０Ｂは除去されている（すなわち、報告されず、又は他の方法で、フィルタリングされる）。図９Ｂに例示された図は、低マグニチュードキーポイント（例えば、画像雑音データ又は他のクラスタ）が処理の間に除去されているので、ペアのグリッドモデルに基づく増加した均一性を有するキーポイント出力データのバージョンを表すことができる。
【００８３】
いくつかの実施形態では、システムメモリ１３０に記憶されたプログラム命令１３６などのソフトウェアは、図４〜９に関して上記説明された様々な機能を実行してもよい。例えば、実施形態では、プログラム命令１３６は、入力画像フレームの１つ以上の領域に対する制御パラメータ記憶構造４４０の値及び／又はキーポイント感度閾値の調節を動的に促進することができる。一実施形態では、プログラム命令１３６及び／又はキーポイント検出回路４３０は、入力画像のグリッドごと、ブロックごと、又は領域ごとにいくつかの検出されたキーポイントを監視してもよく、並びにグリッドごと、ブロックごと、又は領域ごとのキーポイントの総数を、対応するグリッド、ブロック、又は領域に対する動的に調節可能なキーポイント感度閾値（単数又は複数）を調節するか（及び、どの程度調節するか）を判定するときの因子として利用してもよい。
【００８４】
よって、動的に調節可能なキーポイント感度閾値を有し、並びに複数のソース及び／又は画像信号処理パイプラインの異なるステージから入力データを受信するように構成されたキーポイント検出システムは、計算集中型キーポイント計算を効率的に実行することができる。そのようなシステムは、オブジェクト識別、オブジェクト追跡、画像安定化、パンラマスティッチング、複数の画像キャプチャからの高ダイナミックレンジ（ＨＤＲ）、及び他の用途を含む、複数の用途のために有益となることがある。例えば、動的に調節可能なキーポイント感度閾値を有するキーポイント検出回路は、雑音、スケール、又は明るさなどの画像属性における変化に関わらず、マシンビジョンステージが一連の画像内のオブジェクトを検出及び識別することを可能にすることができる。
【図１】
0006636637.tif 000002
【図２】
0006636637.tif 000003
【図３】
0006636637.tif 000004
【図４】
0006636637.tif 000005
【図５】
0006636637.tif 000006
【図６】
0006636637.tif 000007
【図７】
0006636637.tif 000008
【図８】
0006636637.tif 000009
【図９Ａ】
0006636637.tif 000010
【図９Ｂ】
0006636637.tif 000011