(57)【要約】  実施形態は、画像信号プロセッサに含まれるビジョンパイプのアーキテクチャに関する。アーキテクチャは、更新されたルミナンス画像データを生成する一対の画像信号パイプラインを含むフロントエンド部分を含む。ビジョンパイプアーキテクチャのバックエンド部分は、更新されたルミナンス画像をフロントエンド部分から受信し、更新されたルミナンス画像データに対するスケーリング及び様々なコンピュータビジョン演算を並列に実行する。バックエンド部分は、連続的にスケーリングされたルミナンス画像に対してコンピュータビジョン演算のこの並列演算を繰り返し実行して、ピラミッド画像を生成することができる。【選択図】図３
2019519862.tif 000002
【特許請求の範囲】
【請求項１】
画像を受信するように構成されたインターフェース回路と、
フロントエンド回路部分であって、
前記インターフェース回路を介して前記画像を受信し、前記受信した画像に基づいて現在のルミナンス画像を生成し、
前記現在のルミナンス画像のリサイズされたバージョンである更新されたルミナンス画像を生成する、ように構成されたフロントエンド回路部分と、
前記フロントエンド回路部分の出力に結合されたバックエンド回路部分と、を備える画像信号プロセッサであって、前記バックエンド回路部分が、
第１の時間周期中に前記更新されたルミナンス画像のリサイズされたバージョンであるスケーリングされたルミナンス画像を生成するように構成されたリサイザ回路であって、前記第１の時間周期の後の第２の時間周期中に前記スケーリングされたルミナンス画像をリサイズすることにより、更新されスケーリングされたルミナンス画像を生成するように更に構成された、リサイザ回路と、
前記第１の時間周期中に前記スケーリングされたルミナンス画像に対してコンピュータビジョン演算を実行し、前記第２の時間周期中に前記更新されスケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行するように構成されたコンピュータビジョン回路と、を含む、画像信号プロセッサ。
【請求項２】
前記リサイザ回路が、前記第２の時間周期の後の第３の時間周期中に前記更新されスケーリングされたルミナンス画像をリサイズするように更に構成された、請求項１に記載の画像信号プロセッサ。
【請求項３】
前記コンピュータビジョン回路が、前記第３の時間周期中に前記更新されスケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行するように構成された、請求項２に記載の画像信号プロセッサ。
【請求項４】
前記コンピュータビジョン回路が、前記リサイザ回路に結合された配向勾配ヒストグラム（ＨＯＧ）回路を含み、前記ＨＯＧ回路が、
前記第１の時間周期中に前記更新されたルミナンス画像の第１のＨＯＧデータを生成し、
前記第２の時間周期中に前記スケーリングされたルミナンス画像の第２のＨＯＧデータを生成する、ように構成された、請求項１に記載の画像信号プロセッサ。
【請求項５】
前記コンピュータビジョン回路が、前記ＨＯＧ回路に結合された畳み込み回路を更に含み、前記畳み込み回路が、前記第１の時間周期中に前記第１のＨＯＧデータに対して畳み込み演算を実行し、前記第２の時間周期中に前記第２のＨＯＧデータに対して前記畳み込み演算を実行するように構成された、請求項４に記載の画像信号プロセッサ。
【請求項６】
前記コンピュータビジョン回路が、前記フロントエンド回路部分の前記出力に結合された畳み込み回路を更に含み、前記畳み込み回路が、前記第１の時間周期中に、前記更新されたルミナンス画像を受信し、前記更新されたルミナンス画像データに対して畳み込み演算を実行するように構成された、請求項１に記載の画像信号プロセッサ。
【請求項７】
前記コンピュータビジョン回路が、
前記第１の時間周期中に、前記更新されたルミナンス画像内の１つ以上の画像位置であって、前記更新されたルミナンス画像内の検出される前記１つ以上の画像位置は、別の画像内の位置をマッチングするための候補位置を含む、１つ以上の画像位置を検出し、
前記第２の時間周期中に、前記スケーリングされたルミナンス画像内の１つ以上の画像位置であって、前記スケーリングされたルミナンス画像内の検出される前記１つ以上の画像位置は、前記もう１つの画像内の位置をマッチングするための候補位置を含む、１つ以上の画像位置を検出する、ように結合されたキーポイント検出回路を更に含む、請求項１に記載の画像信号プロセッサ。
【請求項８】
前記フロントエンド回路部分が、前記更新されたルミナンス画像を生成する一対の画像信号パイプラインを含み、前記画像信号パイプラインのそれぞれが、前記受信した画像の一部分を処理して前記更新されたルミナンス画像の一部分を生成するように構成された、請求項１に記載の画像信号プロセッサ。
【請求項９】
前記画像信号パイプラインのそれぞれが、前記インターフェース回路からの画像データを色補正されたルミナンスデータに変換するように構成されたプリプロセッサを更に含む、請求項８に記載の画像信号プロセッサ。
【請求項１０】
前記画像信号パイプラインのそれぞれが、前記現在のルミナンス画像の前記一部分のサイズを低減するリサイザ構成要素を含む、請求項８に記載の画像信号プロセッサ。
【請求項１１】
前記画像信号パイプラインのそれぞれが、前記現在のルミナンス画像の前記一部分の生ルミナンス画像を生成するように構成されたルックアップテーブルを更に含む、請求項１０に記載の画像信号プロセッサ。
【請求項１２】
前記画像信号パイプラインのそれぞれが、前記生ルミナンス画像内のノイズをフィルタリングする、前記ルックアップテーブルと前記リサイザ構成要素との間の双方向フィルタを更に含む、請求項１１に記載の画像信号プロセッサ。
【請求項１３】
前記インターフェース回路が、センサ又は前記画像信号プロセッサのロー現像ステージに結合された、請求項１に記載の画像信号プロセッサ。
【請求項１４】
前記インターフェース回路が、マルチプレクサである、請求項１３に記載の画像信号プロセッサ。
【請求項１５】
前記マルチプレクサが、前記第１の時間周期の後に前記スケーリングされたルミナンス画像を、及び前記第２の時間周期の後に前記更新されたルミナンス画像を、受信するように構成された、請求項１４に記載の画像信号プロセッサ。
【請求項１６】
インターフェース回路を介して画像信号プロセッサのフロントエンド回路部分で画像を受信することと、
前記受信した画像に対応する現在のルミナンス画像を生成することと、
前記現在のルミナンス画像をリサイズすることにより更新されたルミナンス画像を生成することと、
第１の時間周期中に、前記更新されたルミナンス画像のリサイズされたバージョンであるスケーリングされたルミナンス画像を生成することと、
前記第１の時間周期中に、前記更新されたルミナンス画像に対してコンピュータビジョン演算を実行することと、
前記第１の時間周期の後の第２の時間周期中に、前記スケーリングされたルミナンス画像のリサイズされたバージョンである更新されスケーリングされたルミナンス画像を生成することと、
前記第２の時間周期中に、前記スケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行することと、を含む、方法。
【請求項１７】
前記第１の時間周期中に、前記更新されたルミナンス画像の第１の配向勾配ヒストグラム（ＨＯＧ）データを生成することと、
前記第２の時間周期中に、前記スケーリングされたルミナンス画像の第２のＨＯＧデータを生成することと、を更に含む、請求項１６に記載の方法。
【請求項１８】
前記第１の時間周期中に、前記第１のＨＯＧデータに対して畳み込み演算を実行することと、
前記第２の時間周期中に、前記第２のＨＯＧデータに対して前記畳み込み演算を実行することと、を更に含む、請求項１７に記載の方法。
【請求項１９】
前記コンピュータビジョン演算を実行することが、
前記第１の時間周期中に、前記更新されたルミナンス画像内の１つ以上の画像位置を検出することであって、前記更新されたルミナンス画像内の検出される前記１つ以上の画像位置は、別の画像内の位置をマッチングするための候補位置を含む、ことと、
前記第２の時間周期中に、前記スケーリングされたルミナンス画像内の１つ以上の画像位置を検出することであって、前記スケーリングされたルミナンス画像内の検出される前記１つ以上の画像位置は、前記もう１つの画像内の位置をマッチングするための候補位置を含む、ことと、を更に含む、請求項１６に記載の方法。
【請求項２０】
画像センサと、
前記画像センサから画像を受信するように構成されたインターフェース回路と、
フロントエンド回路部分であって、
前記インターフェース回路を介して前記画像を受信し、前記受信した画像に基づいて現在のルミナンス画像を生成し、
前記現在のルミナンス画像のリサイズされたバージョンである更新されたルミナンス画像を生成する、ように構成されたフロントエンド回路部分と、
前記フロントエンド回路部分の出力に結合されたバックエンド回路部分と、を備える電子デバイスであって、前記バックエンド回路部分が、
第１の時間周期中に前記更新されたルミナンス画像のリサイズされたバージョンであるスケーリングされたルミナンス画像を生成するように構成されたリサイザ回路であって、前記第１の時間周期の後の第２の時間周期中に前記スケーリングされたルミナンス画像をリサイズすることにより、更新されスケーリングされたルミナンス画像を生成するように更に構成された、リサイザ回路と、
前記第１の時間周期中に前記スケーリングされたルミナンス画像に対してコンピュータビジョン演算を実行し、前記第２の時間周期中に前記更新されスケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行するように構成されたコンピュータビジョン回路と、を含む、電子デバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
画像センサによってキャプチャされた又は他のデータソースから受信された画像データは、更なる処理又は消費の前に、画像処理パイプラインにおいて処理されることが多い。例えば、生画像データは、ビデオエンコーダなどの後続の構成要素に提供される前に、補正される、フィルタリングされる、又は別の方法で変更されることがある。キャプチャされた画像データの補正又は強調を行うために、様々な構成要素、ユニットステージ、又はモジュールを用いることができる。
【０００２】
そのような画像処理パイプラインは、他のシステムリソースを消費することなく、キャプチャされた画像データに対する補正又は強調を好都合に実行することができるように構成することができる。多くの画像処理アルゴリズムは、中央処理装置（central processing unit）（ＣＰＵ）上でソフトウェアプログラムを実行することにより実行することができるが、ＣＰＵ上のそのようなプログラムの実行は、ＣＰＵの著しい帯域幅及び他の周辺装置リソースを消費すると共に電力消費を増大することになる。したがって、画像処理パイプラインは、ＣＰＵとは別個のハードウェア構成要素として実装されることが多く、１つ以上の画像処理アルゴリズムを実行するための専用のものである。
【０００３】
より複雑な画像信号処理アルゴリズムを処理するために装備された従来の画像信号処理パイプラインアーキテクチャは、より伝統的な画像信号処理アルゴリズムを処理する際の性能を犠牲にすることが多い。追加のハードウェア構成要素をアーキテクチャに追加して性能を増大させることはできるが、結果としてより大きなデバイスサイズとなる。しかし、追加のハードウェア構成要素は、著しいＣＰＵ帯域幅を消費し、電力消費を増加させ、デバイスサイズを増大させる。
【発明の概要】
【０００４】
実施形態は、リサイズ演算及びコンピュータビジョン演算を並列に実行する、画像信号プロセッサに含まれるビジョンパイプのアーキテクチャに関する。このアーキテクチャは、フロントエンド部分及びバックエンド部分を含む。フロントエンド部分は、現在のルミナンス画像を生成するプリプロセッサ、及び更新されたルミナンス画像を生成するリサイザを含む。バックエンド部分は、更新されたルミナンス画像データをフロントエンド部分から受信し、更新されたルミナンス画像データに対するスケーリング及び様々なコンピュータビジョン演算を並列に実行する。バックエンド部分は、更新されたルミナンス画像を更にスケーリングするリサイザ及びリサイザによって実行されるスケーリングと並列にコンピュータビジョン演算を実行するためのコンピュータビジョン構成要素を含む、１つ以上のコンピュータビジョン処理経路を含む。スケーリング及びコンピュータビジョンの並列演算は、リサイザによって出力された更新されスケーリングされたルミナンス画像に対して、繰り返し実行することができる。
【図面の簡単な説明】
【０００５】
【図１】一実施形態に係る、電子デバイスの概要図である。
【図２】一実施形態に係る、電子デバイスの構成要素を示すブロック図である。
【図３】一実施形態に係る、画像信号プロセッサを用いて実施された画像処理パイプラインを示すブロック図である。
【図４】一実施形態に係る、図３の画像処理パイプラインのビジョンモジュールの詳細図を示すブロック図である。
【図５】一実施形態に係る、画像スケーリング演算と並列にコンピュータビジョン演算を実行するためのフローチャートを示す。
【０００６】
種々の非限定的な実施形態を単に例示を目的として、図で示し、詳細な説明において説明する。
【発明を実施するための形態】
【０００７】
ここで、添付図面に実施例が示される実施形態への詳細な参照が行われる。以下の詳細な説明では、説明される様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかし、説明する実施形態は、これらの具体的な詳細なしに実施することができる。他の例では、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭にしないよう詳細には説明されていない。
【０００８】
本開示の実施形態は、画像スケーリングと並列にコンピュータビジョンを実行するためのビジョンパイプアーキテクチャに関する。ビジョンパイプアーキテクチャは、前処理を実行するためのフロントエンド回路部分と、更なるコンピュータビジョン回路及び現在のルミナンス画像に対して並列に演算するリサイザ回路を含むバックエンド回路部分とを含むことができる。コンピュータビジョン回路は、配向勾配ヒストグラム（histogram-of-oriented-gradients）（ＨＯＧ）データの生成、畳み込み演算、及びキーポイント検出などの演算を実行することができる。リサイズ及びコンピュータビジョン演算を並列に実行することにより、画像処理性能が向上する。
例示的な電子デバイス
【０００９】
電子デバイス、そのようなデバイス用のユーザインターフェース、及びそのようなデバイスを使用するための関連するプロセスの実施形態が説明される。いくつかの実施形態では、デバイスは、パーソナルデジタルアシスタント（ＰＤＡ）機能及び／又は音楽プレーヤ機能などの他の機能も含む、携帯電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態としては、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｉｎｃ．からのｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、Ａｐｐｌｅ  Ｗａｔｃｈ（登録商標）、及びｉＰａｄ（登録商標）のデバイスが挙げられるが、これらに限定されない。ウェアラブルコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータなどの他のポータブル電子デバイスが、任意選択的に使用される。いくつかの実施形態では、デバイスは、ポータブル通信デバイスではないが、デスクトップコンピュータ又はポータブル使用のために設計されていない他のコンピューティングデバイスである。いくつかの実施形態では、本開示の電子デバイスは、タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を含むことができる。図１に関連して以下に説明する例示的な電子デバイス（例えば、デバイス１００）は、ユーザ入力を受け取るためのタッチ感知面を含むことができる。電子デバイスは、物理キーボード、マウス、及び／又はジョイスティックなどの、１つ以上の他の物理ユーザインターフェースデバイスも含むことができる。
【００１０】
図１は、一実施形態に係る、電子デバイス１００の概要図である。デバイス１００は、「ホーム」又はメニューボタン１０４などの、１つ以上の物理ボタンを含んでもよい。メニューボタン１０４は、例えば、デバイス１００上で実行されるアプリケーションのセット内の任意のアプリケーションへナビゲートするために使用される。いくつかの実施形態では、メニューボタン１０４は、メニューボタン１０４上の指紋を識別する指紋センサを含む。指紋センサを使用して、メニューボタン１０４上の指がデバイス１００をロック解除するために記憶された指紋と一致する指紋を有するか否かを判定することができる。あるいは、いくつかの実施形態では、メニューボタン１０４は、タッチスクリーン上に表示されるグラフィカルユーザインターフェース（graphical user interface）（ＧＵＩ）内のソフトキーとして実装される。
【００１１】
いくつかの実施形態では、デバイス１００は、タッチスクリーン１５０、メニューボタン１０４、デバイスへの電源をオン／オフし、デバイスをロックするためのプッシュボタン１０６、音量調整ボタン１０８、加入者識別モジュール（Subscriber Identity Module）（ＳＩＭ）カードスロット１１０、ヘッドセットジャック１１２、及びドッキング／充電用外部ポート１２４を含む。プッシュボタン１０６は、ボタンを押し下げて、既定の時間間隔の間、ボタンを押し下げた状態で保持することによって、デバイス上の電源をオン／オフするため、ボタンを押し下げて、既定の時間間隔が経過する前にボタンを解放することによって、デバイスをロックするため、及び／又はデバイスをロック解除する、若しくはロック解除プロセスを開始するために、使用することができる。代替的実施形態では、デバイス１００はまた、マイクロフォン１１３を介して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力も受け入れる。デバイス１００は、メモリ（１つ以上のコンピュータ可読記憶媒体を含むことができる）、メモリコントローラ、１つ以上の中央処理装置（ＣＰＵ）、周辺機器インターフェース、ＲＦ回路、オーディオ回路、スピーカ１１１、マイクロフォン１１３、入出力（input／output）（Ｉ／Ｏ）サブシステム、及び他の入力又は制御デバイスを含むがこれらに限定されない、様々な構成要素を含む。デバイス１００は、１つ以上の画像センサ１６４と、１つ以上の近接センサ１６６と、１つ以上の加速度計１６８とを含むことができる。デバイス１００は、図１に示されていない構成要素を含んでもよい。
【００１２】
デバイス１００は、電子デバイスの単なる一実施例であり、デバイス１００は、上記に列挙したものより多い又は少ない構成要素を有することができ、それらの構成要素の一部は、１つの構成要素に組合わせる、又は異なる構成若しくは配置を有することができる。上記に列挙したデバイス１００の様々な構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路（application specific integrated circuits）（ＡＳＩＣ）を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合わせで具現化される。
【００１３】
図２は、一実施形態に係る、デバイス１００の構成要素を示すブロック図である。デバイス１００は、画像処理を含む様々な動作を実行することができる。この目的及び他の目的のために、デバイス１００は、他の構成要素の中でもとりわけ、画像センサ２０２、システムオンチップ（system-on-a chip）（ＳＯＣ）構成要素２０４、システムメモリ２３０、永続的記憶装置（例えば、フラッシュメモリ）２２８、方向センサ２３４、及びディスプレイ２１６を含むことができる。図２に示すような構成要素は、単なる例示である。例えば、デバイス１００は、図２に示されていない他の構成要素（スピーカ又はマイクロフォンなど）を含んでもよい。更に、いくつかの構成要素（方向センサ２３４など）は、デバイス１００から省略してもよい。
【００１４】
画像センサ２０２は、画像データをキャプチャするための構成要素であり、例えば、相補的金属酸化物半導体（complementary metal-oxide-semiconductor）（ＣＭＯＳ）アクティブピクセルセンサ、カメラ、ビデオカメラ、又は他のデバイスとして、具現化することができる。画像センサ２０２は、更なる処理のためにＳＯＣ構成要素２０４に送信される生画像データを生成する。いくつかの実施形態では、ＳＯＣ構成要素２０４によって処理された画像データは、ディスプレイ２１６上に表示され、システムメモリ２３０、永続的記憶装置２２８に記憶され、又は、ネットワーク接続を介してリモートコンピューティングデバイスに送信される。画像センサ２０２によって生成された生画像データは、ベイヤーカラーフィルタ配列（color filter array）（ＣＦＡ）パターン（以降、「ベイヤーパターン」とも呼ばれる）とすることができる。
【００１５】
動きセンサ２３４は、デバイス１００の動きを感知するための構成要素又は構成要素のセットである。動きセンサ２３４は、デバイス１００の向き及び／又は加速度を示すセンサ信号を生成することができる。センサ信号は、デバイス１００をオンにする、又はディスプレイ２１６上に表示された画像を回転するなどの、様々な動作のためにＳＯＣ構成要素２０４に送信される。
【００１６】
ディスプレイ２１６は、ＳＯＣ構成要素２０４によって生成されたような画像を表示するための構成要素である。ディスプレイ２１６は、例えば、液晶ディスプレイ（liquid crystal display）（ＬＣＤ）デバイス又は有機発光ダイオード（organic light emitting diode）（ＯＬＥＤ）デバイスを含むことができる。ＳＯＣ構成要素２０４から受信したデータに基づいて、ディスプレイ１１６は、メニュー、選択された動作パラメータ、画像センサ２０２によってキャプチャされＳＯＣ構成要素２０４によって処理された画像、及び／又はデバイス１００のユーザインターフェース（図示せず）から受信した他の情報などの、様々な画像を表示することができる。
【００１７】
システムメモリ２３０は、ＳＯＣ構成要素２０４によって実行するための命令を記憶するため、及びＳＯＣ構成要素２０４によって処理されたデータを記憶するための構成要素である。システムメモリ２３０は、例えば、ダイナミックランダムアクセスメモリ（dynamic random access memory）（ＤＲＡＭ）、シンクロナスＤＲＡＭ（synchronous DRAM）（ＳＤＲＡＭ）、ダブルデータレート（double data rate）（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（static RAM）（ＳＲＡＭ）、又はそれらの組合せを含む、任意の種類のメモリとして具現化することができる。いくつかの実施形態では、システムメモリ２３０は、ピクセルデータ又は他の画像データ若しくは統計を様々なフォーマットで記憶してもよい。
【００１８】
永続的記憶装置２２８は、不揮発的にデータを記憶するための構成要素である。永続的記憶装置２２８は、電源が使用可能でないときでもデータを保持する。永続的記憶装置２２８は、読み出し専用メモリ（read-only memory）（ＲＯＭ）、フラッシュメモリ、又は他の不揮発性ランダムアクセスメモリデバイスとして具現化することができる。
【００１９】
ＳＯＣ構成要素２０４は、１つ以上の集積回路（integrated circuit）（ＩＣ）チップとして具現化され、様々なデータ処理プロセスを実行する。ＳＯＣ構成要素２０４は、他のサブコンポーネントの中でもとりわけ、画像信号プロセッサ（image signal processor）（ＩＳＰ）２０６、中央プロセッサユニット（central processor unit）（ＣＰＵ）２０８、ネットワークインターフェース２１０、センサインターフェース２１２、ディスプレイコントローラ２１４、グラフィックプロセッサ（graphics processor）（ＧＰＵ）２２０、メモリコントローラ２２２、ビデオエンコーダ２２４、ストレージコントローラ２２６、及び様々な他の入出力（Ｉ／Ｏ）インターフェース２１８、並びにこれらのサブコンポーネントを接続するバス２３２を含むことができる。ＳＯＣ構成要素２０４は、図２に示されるサブコンポーネントよりも多くの又は少ないサブコンポーネントを含んでもよい。
【００２０】
ＩＳＰ２０６は、画像処理パイプラインの様々なステージを実行するハードウェアである。いくつかの実施形態では、ＩＳＰ２０６は、画像センサ２０２から生画像データを受信して、その生画像データをＳＯＣ構成要素２０４の他のサブコンポーネント又はデバイス１００の構成要素によって使用可能なフォーマットに処理することができる。ＩＳＰ２０６は、図３を参照して以下に詳細に説明するように、画像変換演算、水平及び垂直スケーリング、色空間変換、並びに／又は画像安定化変換などの、様々な画像操作演算を実行することができる。
【００２１】
ＣＰＵ２０８は、任意の好適な命令セットアーキテクチャを使用して具現化してもよく、その命令セットアーキテクチャで定義された命令を実行するように構成されてもよい。ＣＰＵ２０８は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、ＲＩＳＣ、ＡＲＭ、若しくはＭＩＰＳ命令セットアーキテクチャ（instruction set architectures）（ＩＳＡ）、又は任意の他の好適なＩＳＡなどの様々なＩＳＡのいずれかを使用する汎用又は組み込み型プロセッサであってもよい。単一のＣＰＵを図２に示すが、ＳＯＣ構成要素２０４は、複数のＣＰＵを含むことができる。マルチプロセッサシステムでは、ＣＰＵの各々は、必ずしもそうではないが、同一のＩＳＡを共通して実装してもよい。
【００２２】
グラフィック処理ユニット（Graphics processing unit）（ＧＰＵ）２２０は、グラフィックデータを実行するためのグラフィック処理回路である。例えば、ＧＰＵ２２０は、フレームバッファに表示されることになるオブジェクト（例えば、フレーム全体に対してピクセルデータを含むもの）をレンダリングすることができる。ＧＰＵ２２０は、グラフィック演算の一部又は全てを実行するようにグラフィックソフトウェア又は特定のグラフィック演算のハードウェア高速化を実行することができる１つ以上のグラフィックプロセッサを含んでもよい。
【００２３】
Ｉ／Ｏインターフェース２１８は、デバイス１００の様々な入出力構成要素とインターフェースするためのハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せである。Ｉ／Ｏ構成要素は、キーパッド、ボタン、オーディオデバイス、及び全地球測位システムなどのセンサなどのデバイスを含むことができる。Ｉ／Ｏインターフェース２１８は、データをそのようなＩ／Ｏ構成要素に送信するためにデータを処理する、又は、そのようなＩ／Ｏ構成要素から受信したデータを処理する。
【００２４】
ネットワークインターフェース２１０は、１つ以上のネットワーク（例えば、キャリア又はエージェントデバイス）を介してデータをデバイス１００と他のデバイスとの間で交換することを可能にするサブコンポーネントである。例えば、ビデオ又は他の画像データは、ネットワークインターフェース２１０を介して他のデバイスから受信して、後続の処理（例えば、図３で以下に議論されるなどのＩＳＰ２０６へのバックエンドインターフェースを介した）及び表示のためにシステムメモリ２３０に記憶してもよい。ネットワークとしては、ローカルエリアネットワーク（Local Area Networks）（ＬＡＮ）（例えば、イーサネット（登録商標）又は企業ネットワーク）及びワイドエリアネットワーク（Wide Area Networks）（ＷＡＮ）を挙げることができるが、これらに限定されない。ネットワークインターフェース２１０を介して受信した画像データは、ＩＳＰ２０６によって画像処理プロセスにかけることができる。
【００２５】
センサインターフェース２１２は、動きセンサ２３４とインターフェースするための回路である。センサインターフェース２１２は、動きセンサ２３４からセンサ情報を受信し、このセンサ情報を処理して、デバイス１００の向き又は移動を判定する。
【００２６】
ディスプレイコントローラ２１４は、ディスプレイ２１６上に表示されることになる画像データを送信するための回路である。ディスプレイコントローラ２１４は、ＩＳＰ２０６、ＣＰＵ２０８、グラフィックプロセッサ、又はシステムメモリ２３０から画像データを受信し、ディスプレイ２１６上に表示するために好適なフォーマットに画像データを処理する。
【００２７】
メモリコントローラ２２２は、システムメモリ２３０と通信するための回路である。メモリコントローラ２２２は、ＳＯＣ構成要素２０４のＩＳＰ２０６、ＣＰＵ２０８、ＧＰＵ２２０、又は他のサブコンポーネントによって処理するためにシステムメモリ２３０からデータを読み取ることができる。メモリコントローラ２２２はまた、ＳＯＣ構成要素２０４の様々なサブコンポーネントから受信したデータをシステムメモリ２３０に書き込むことができる。
【００２８】
ビデオエンコーダ２２４は、ビデオデータを永続的記憶装置１２８に記憶するために好適なフォーマットにエンコードするため、又はネットワークを介して別のデバイスに伝送するためにネットワークインターフェースｗ１０にデータを渡すための、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せである。
【００２９】
いくつかの実施形態では、ＳＯＣ構成要素２０４の１つ以上のサブコンポーネント又はこれらのサブコンポーネントのいくつかの機能は、ＩＳＰ２０６、ＣＰＵ２０８、又はＧＰＵ２２０上で実行されるソフトウェア構成要素によって実行することができる。そのようなソフトウェア構成要素は、システムメモリ２３０、永続的記憶装置２２８、又はネットワークインターフェース２１０を介してデバイス１００と通信する別のデバイスに記憶することができる。
【００３０】
画像データ又はビデオデータは、ＳＯＣ構成要素２０４内の様々なデータ経路を介して流れることができる。一実施例では、生画像データは、画像センサ２０２から生成して、ＩＳＰ２０６によって処理し、その後、バス２３２及びメモリコントローラ２２２を介してシステムメモリ２３０に送信することができる。画像データがシステムメモリ２３０に記憶された後で、画像データは、エンコードするためにビデオエンコーダ２２４によって、又は表示するためにディスプレイ１１６によって、バス２３２を介してアクセスすることができる。
【００３１】
別の実施例では、画像データは、画像センサ２０２以外のソースから受信される。例えば、ビデオデータは、有線又は無線ネットワークを介してＳＯＣ構成要素２０４に、ストリーミングする、ダウンロードする、又は別の方法で通信することができる。画像データは、ネットワークインターフェース２１０を介して受信し、メモリコントローラ２２２を介してシステムメモリ２３０に書き込むことができる。その後、画像データは、図３を参照して以下に詳細に説明するように、ＩＳＰ２０６によってシステムメモリ２３０から取得して、１つ以上の画像処理パイプラインステージを介して処理することができる。その後、画像データは、システムメモリ２３０に戻す、又は、ビデオエンコーダ２２４、ディスプレイコントローラ２１４（ディスプレイ２１６上に表示するために）、若しくは永続的記憶装置２２８に記憶するためにストレージコントローラ２２６に送信することができる。
例示的な画像信号処理パイプライン
【００３２】
図３は、一実施形態に係る、ＩＳＰ２０６を用いて実施された画像処理パイプラインを示すブロック図である。図３の実施形態では、ＩＳＰ２０６は、生画像データを受信するために画像センサ２０２に結合される。ＩＳＰ２０６は、出力する作成したもの、キャプチャしたもの、又は受信したものから画像情報を処理するステージのセットを含むことができる画像処理パイプラインを実装する。ＩＳＰ２０６は、他の構成要素の中でもとりわけ、センサインターフェース３０２、中央制御３２０、フロントエンドパイプラインステージ３３０、バックエンドパイプラインステージ３４０、画像統計モジュール３０４、ビジョンモジュール３２２、バックエンドインターフェース３４２、及び出力インターフェース３１６を含むことができる。ＩＳＰ２０６は、図３に示されていない他の構成要素を含むことができる、又は、図３に示す１つ以上の構成要素を省略することができる。
【００３３】
１つ以上の実施形態では、ＩＳＰ２０６の異なる構成要素は、画像データを異なる速度で処理する。図３の実施形態では、フロントエンドパイプラインステージ３３０（例えば、ロー現像ステージ３０６及びリサンプリング処理ステージ３０８）は、画像データを初期速度で処理することができる。したがって、様々な異なる技術、調整、修正、又は他の処理演算は、これらのフロントエンドパイプラインステージ３３０によって初期速度で実行される。例えば、フロントエンドパイプラインステージ３３０がクロックサイクルごとに２つのピクセルを処理する場合、ロー現像ステージ３０８の演算（例えば、ブラックレベル補償（black level compensation）、ハイライトリカバリ（highlight recovery）、及び不良ピクセル補正）は、画像データの２つのピクセルを同時に処理してもよい。対照的に、１つ以上のバックエンドパイプラインステージ３４０は、画像データを初期データレート未満の異なる速度で処理することができる。例えば、図３の実施形態では、バックエンドパイプラインステージ３４０（例えば、ノイズ処理ステージ３１０、カラー処理ステージ３１２、及び出力リスケーリング３１４）は、低減した速度（例えば、クロックサイクルごとに１ピクセル）で処理することができる。
【００３４】
センサインターフェース３０２は、画像センサ２０２から生画像データを受信して、生画像データをパイプライン内の他のステージによって処理可能な画像データに処理する。センサインターフェース３０２は、画像データサイズを低減するために画像トリミング、ビニング、又はスケーリングなどの様々な前処理演算を実行することができる。いくつかの実施形態では、ピクセルは、画像センサ２０２からセンサインターフェース３０２にラスター順に（すなわち、水平に、１行ごとに）送信される。パイプライン内の後続のプロセスも、ラスター順に実行することができ、結果もまた、ラスター順に出力することができる。単一の画像センサ及び単一のセンサインターフェース３０２のみが図３に示されているが、１つより多くの画像センサがデバイス１００に設けられている場合、それぞれの画像センサからの生画像データを処理するために、対応する数のセンサインターフェースをＩＳＰ２０６に設けることができる。
【００３５】
フロントエンドパイプラインステージ３３０は、ロードメイン又はフルカラードメインで画像データを処理する。フロントエンドパイプラインステージ３３０は、ロー現像ステージ３０６及びリサンプリング処理ステージ３０８を含むことができるが、これらに限定されない。生画像データは、例えば、ベイヤーローフォーマットとすることができる。ベイヤーロー画像フォーマットでは、特定の色（全ての色の代わりに）に対して特定の値を有するピクセルデータが、それぞれのピクセルに与えられる。画像キャプチャセンサでは、画像データは、典型的には、ベイヤーパターンで提供される。ロー現像ステージ３０８は、画像データをベイヤーローフォーマットで処理することができる。
【００３６】
ロー現像ステージ３０８によって実行される演算としては、センサ線形化、ブラックレベル補償、固定パターンノイズ低減、不良ピクセル補正、ローノイズフィルタリング、レンズシェーディング補正、ホワイトバランスゲイン、及びハイライトリカバリが挙げられるが、これらに限定されない。センサ線形化は、他の処理のために非線形画像データを線形空間にマッピングすることを指す。ブラックレベル補償は、画像データのそれぞれの色成分（例えば、Ｇｒ、Ｒ、Ｂ、Ｇｂ）に対して独立にデジタルゲイン、オフセット、及びクリップを提供することを指す。固定パターンノイズ低減は、入力画像からダークフレームを減算し異なるゲインをピクセルに乗算することによってオフセット固定パターンノイズ及びゲイン固定パターンノイズを除去することを指す。不良ピクセル補正は、不良ピクセルを検出し、次に不良ピクセル値を置き換えることを指す。ローノイズフィルタリングは、輝度が類似の隣接したピクセルを平均化することによって画像データのノイズを低減することを指す。ハイライトリカバリは、他のチャネルからクリッピングされた（又は、ほぼクリッピングされた）それらのピクセルに対するピクセル値を推定することを指す。レンズシェーディング補正は、レンズの光学的中心からの距離にほぼ比例した明暗度の減少を補償するためにピクセルごとのゲインを適用することを指す。ホワイトバランスゲインは、全ての色成分（例えば、ベイヤーフォーマットのＧｒ、Ｒ、Ｂ、Ｇｂ）に対して独立してホワイトバランスのためのデジタルゲイン、オフセット及びクリップを提供することを指す。ＩＳＰ２０６の構成要素は、生画像データをフルカラードメインの画像データに変換することができ、したがって、ロー現像ステージ３０８は、生画像データに加えて又はその代わりに、フルカラードメインの画像データを処理することができる。
【００３７】
リサンプリング処理ステージ３０８は、様々な演算を実行して、ロー現像ステージ３０６から受信した画像データを変換、リサンプリング、又はスケーリングする。リサンプリング処理ステージ３０８によって実行される演算としては、デモザイク演算、ピクセルごとの色補正演算、ガンママッピング演算、色空間変換、及び縮小又はサブバンド分割を挙げることができるが、これらに限定されない。デモザイク演算は、生画像データから欠落した色サンプルを（例えば、ベイヤーパターンに）変換又は補間して、画像データをフルカラードメインに出力することを指す。デモザイク演算は、フルカラーピクセルを得るための補間されたサンプルに対するローパス指向性フィルタリングを含むことができる。ピクセルごとの色補正演算は、それぞれの色チャネルの相対ノイズ標準偏差に関する情報を用いてピクセルごとに色補正を実行して、画像データ内のノイズを増幅することなしに色を補正するプロセスを指す。ガンママッピングは、画像データを入力画像データ値から出力データ値に変換して、ブラック及びホワイト変換、セピア階調変換、ネガティブ変換、又は露光変換を含む、特殊画像効果を実行することを指す。ガンママッピングの目的のために、それぞれのピクセルの異なる色成分又はチャネルに対するルックアップテーブル（又はピクセル値を別の値にインデックス付けする他の構造）（例えば、Ｙ、Ｃｂ、及びＣｒの色成分に対する別個のルックアップテーブル）を使用することができる。色空間変換は、入力画像データの色空間を異なるフォーマットに変換することを指す。一実施形態では、リサンプリング処理ステージ３０８は、更なる処理のためにＲＢＤフォーマットをＹＣｂＣｒフォーマットに変換する。
【００３８】
中央制御モジュール３２０は、ＩＳＰ２０６内の他の構成要素の全体の動作を制御して連係させることができる。中央制御モジュール３２０は、ＩＳＰ２０６の他の構成要素の開始及び停止を制御するために、様々な動作パラメータを監視すること（例えば、クロックサイクル、メモリ待ち時間、サービスの品質、及び状態情報をログ記録すること）、ＩＳＰ２０６の他の構成要素に対する制御パラメータを更新又は管理すること、及びセンサインターフェース３０２とインターフェースすることを含むがこれらに限定されない動作を実行する。例えば、中央制御モジュール３２０は、他の構成要素がアイドル状態にある間に、ＩＳＰ２０６内の他の構成要素に対するプログラム可能なパラメータを更新することができる。プログラム可能なパラメータを更新した後で、中央制御モジュール３２０は、ＩＳＰ２０６のこれらの構成要素を実行状態にして、１つ以上の動作又はタスクを実行することができる。中央制御モジュール３２０はまた、リサンプリング処理ステージ３０８の前、その間、又はその後に、画像データを記憶する（例えば、図２のシステムメモリ２３０に書き込むことにより）ようにＩＳＰ２０６の他の構成要素に命令することができる。このようにして、リサンプリング処理ステージ３０８からの画像データ出力を、バックエンドパイプラインステージ３４０を介して処理することに加えて又はその代わりに、ロー又はフルカラードメインフォーマットのフル解像度の画像データを記憶することができる。
【００３９】
画像統計モジュール３０４は、様々な動作を実行して、画像データに関連付けられた統計情報を収集する。統計情報を収集するための動作としては、センサ線形化、マスクパターン化不良ピクセル、サブサンプル生画像データ、非パターン化不良ピクセルの検出及び置き換え、ブラックレベル補償、レンズシェーディング補正、並びに逆ブラックレベル補償を挙げることができるが、これらに限定されない。そのような動作のうちの１つ以上を実行した後で、３Ａ統計（オートホワイトバランス（Auto white balance）（ＡＷＢ）、自動露出（auto exposure）（ＡＥ）、オートフォーカス（auto focus）（ＡＦ））などの統計情報、ヒストグラム（例えば、２Ｄカラー若しくは成分）、又は任意の他の画像データ情報が収集又は追跡されてもよい。いくつかの実施形態では、特定のピクセルの値又はピクセル値のエリアは、先行する動作がクリップされたピクセルを識別する場合、特定の統計データ（例えば、ＡＦ統計）の収集から除外することができる。単一の統計モジュール３０４のみが図３に示されているが、複数の画像統計モジュールがＩＳＰ２０６に含まれていてもよい。そのような実施形態では、それぞれの統計モジュールは、同じ又は異なる画像データに対して異なる情報を収集するように中央制御モジュール３２０によってプログラムすることができる。
【００４０】
ビジョンモジュール３２２は、様々な演算を実行して、画像データ内の対象物検出などのＣＰＵ２０８でのコンピュータビジョン演算を容易にする。ビジョンモジュール３２２は、前処理、包括的階調マッピング及びガンマ補正、ビジョンノイズフィルタリング、リサイズ、キーポイント検出、畳み込み、並びに配向勾配ヒストグラム（ＨＯＧ）の生成を含む、様々な演算を実行することができる。前処理は、入力画像データがＹＣｒＣｂフォーマットでない場合、サブサンプリング又はビニング演算、及びルミナンスの計算を含むことができる。包括的マッピング及びガンマ補正は、ルミナンス画像に対して前処理したデータに対して実行することができる。ビジョンノイズフィルタリングは、ピクセル不良を除去して画像データ内に存在するノイズを低減し、それによって後続のコンピュータビジョンアルゴリズムの品質及び性能を向上するために実行される。そのようなビジョンノイズフィルタリングは、ドット又は不良ピクセルを検出して修復すること、及び類似の輝度の隣接するピクセルを平均化することによりノイズを低減するために双方向フィルタリングを実行することを含むことができる。様々なビジョンアルゴリズムは、異なるサイズ及びスケールの画像を使用する。画像のリサイズは、例えば、ビニング又は線形補間動作により実行される。キーポイントは、同じシーン又は対象物の他の画像内のマッチングに良好に適合した画像パッチによって囲まれた画像内の位置である。そのようなキーポイントは、画像位置調整、カメラ姿勢を計算すること、及び対象物追跡に有用である。キーポイント検出は、画像内のそのようなキーポイントを特定するプロセスを指す。畳み込みは、画像／ビデオ処理及びマシンビジョンに頻繁に使用されるツールである。畳み込みは、例えば、画像のエッジマップを生成する又は画像を平滑化するために実行することができる。ＨＯＧは、画像解析及びコンピュータビジョンのタスクのための画像パッチの記述を提供する。ＨＯＧは、例えば、（ｉ）簡単な差分フィルタを用いて水平及び垂直勾配を計算すること、（ｉｉ）水平及び垂直勾配から勾配の向き及び大きさを計算すること、並びに（ｉｉｉ）勾配の向きをビニングすることにより、生成することができる。ビジョンモジュール３２２の更なる説明は、図４に記載されている。
【００４１】
バックエンドインターフェース３４２は、画像センサ１０２以外の画像ソースから画像データを受信し、それを処理のためにＩＳＰ２０６の他の構成要素に転送する。例えば、画像データは、ネットワーク接続を介して受信して、システムメモリ２３０に記憶することができる。バックエンドインターフェース３４２は、システムメモリ２３０に記憶された画像データを取得して、それを処理のためにバックエンドパイプラインステージ３４０に提供する。バックエンドインターフェース３４２によって実行される多くの演算のうちの１つは、取得された画像データをバックエンド処理ステージ３４０によって利用することができるフォーマットに変換することである。例えば、バックエンドインターフェース３４２は、ＲＧＢ、ＹＣｂＣｒ  ４：２：０、又はＹＣｂＣｒ  ４：２：２にフォーマットされた画像データをＹＣｂＣｒ  ４：４：４カラーフォーマットに変換することができる。
【００４２】
バックエンドパイプラインステージ３４０は、特定のフルカラーフォーマット（例えば、ＹＣｂＣｒ  ４：４：４又はＲＧＢ）に従って画像データを処理する。いくつかの実施形態では、バックエンドパイプラインステージ３４０の構成要素は、更なる処理の前に、画像データを特定のフルカラーフォーマットに変換することができる。バックエンドパイプラインステージ３４０は、他のステージの中でもとりわけ、ノイズ処理ステージ３１０及びカラー処理ステージ３１２を含むことができる。バックエンドパイプラインステージ３４０は、図３に示されていない他のステージを含むことができる。
【００４３】
ノイズ処理ステージ３１０は、様々な演算を実行して、画像データ内のノイズを低減する。ノイズ処理ステージ３１０によって実行される演算としては、色空間変換、ガンマ／デガンママッピング、時間フィルタリング、ノイズフィルタリング、ルマ鮮鋭化、及びクロマノイズ低減が挙げられるが、これらに限定されない。色空間変換は、画像データを１つの色空間フォーマットから別の色空間フォーマットに変換（例えば、ＲＧＢフォーマットをＹＣｂＣｒフォーマットに変換）することができる。ガンマ／デガンマ演算は、特殊画像効果を実行するために、画像データを入力画像データ値から出力データ値に変換する。時間フィルタリングは、ノイズを低減するために、前にフィルタリングされた画像フレームを用いてノイズをフィルタリングする。例えば、前の画像フレームのピクセル値が、現在の画像フレームのピクセル値と混合される。ノイズフィルタリングは、例えば、空間ノイズフィルタリングを含むことができる。ルマ鮮鋭化は、ピクセルデータのルマ値を鮮鋭化することができ、クロマ抑制は、クロマをグレー（すなわち、色がない）に減衰させることができる。いくつかの実施形態では、ルマ鮮鋭化及びクロマ抑制は、空間ノイズフィルタリングと同時に実行することができる。ノイズフィルタリングの度合（aggressiveness）は、画像の異なる領域に対して異なって判定されてもよい。空間ノイズフィルタリングは、時間フィルタリングを実装する時間ループの一部に含まれてもよい。例えば、前の画像フレームは、処理されることになる次の画像フレームに対する参照フレームとして記憶される前に時間フィルタ及び空間ノイズフィルタによって処理されてもよい。他の実施形態では、空間ノイズフィルタリングは、時間フィルタリングに対する時間ループの一部として含まれなくてもよい（例えば、空間ノイズフィルタは、画像フレームが参照画像フレームとして記憶された後にそれに適用されてもよい（よって、空間的にフィルタリングされた参照フレームではない））。
【００４４】
カラー処理ステージ３１２は、画像データ内の色情報を調整することに関連付けられた様々な演算を実行することができる。カラー処理ステージ３１２で実行される演算としては、局所階調マッピング、ゲイン／オフセット／クリップ、色補正、３次元カラールックアップ、ガンマ変換、及び色空間変換が挙げられるが、これらに限定されない。局所階調マッピングは、画像をレンダリングするときの更なる制御を提供するために、空間的に変化する局所階調曲線を指す。例えば、階調曲線の２次元グリッド（中央制御モジュール３２０によってプログラミングすることができる）は、平坦に変化する階調曲線が画像にわたって生成されるように双線形的に補間されてもよい。いくつかの実施形態では、局所階調マッピングはまた、例えば、画像内のシャドウの青色を暗くしながら空をより青くするために使用することができる、空間的に変化し、かつ明暗度が変化する色補正行列を適用してもよい。デジタルゲイン／オフセット／クリップは、画像データの色チャネル又は成分ごとに提供されてもよい。色補正は、色補正変換行列を画像データに適用することができる。３Ｄカラールックアップは、拡張型階調マッピング、色空間変換、及び他の色変換を実行するために、色成分出力値（例えば、Ｒ、Ｇ、Ｂ）の３次元アレイを利用してもよい。ガンマ変換は、例えば、ガンマ補正、階調マッピング、又はヒストグラムマッチングを実行するために、入力画像データ値を出力データ値にマッピングすることにより、実行することができる。色空間変換は、１つの色空間から別へ（例えば、ＲＧＢからＹＣｂＣｒに）画像データを変換するために実行されてもよい。他の処理技術がまた、ブラック及びホワイト変換、セピア階調変換、ネガティブ変換、又は露光変換を含む、他の特殊画像効果を実行するようにカラー処理ステージ３１２の一部として実行されてもよい。
【００４５】
出力リスケーリングモジュール３１４は、ＩＳＰ２０６が画像データを処理するにつれて動作中（on the fly）の歪みをリサンプリング、変換及び補正してもよい。出力リスケーリングモジュール３１４は、ピクセルごとの部分的入力座標を計算して、多相リサンプリングフィルタを介して出力ピクセルを補間するためにこの部分的座標を使用してもよい。部分的入力座標は、画像をリサイズ又はトリミングすること（例えば、単純な水平及び垂直スケーリング変換を介して）、画像を回転及び刈り取ること（例えば、非分離可能行列変換を介して）、視点ワーピング（perspective warping）（例えば、追加の幅変換を介して）、及び画像データのキャプチャの間に画像センサにおける変化を原因とするストリップ（例えば、ロールシャッタに起因した）に区分的に適用されるピクセルごとの視野分割（per−pixel perspective divides）、並びに幾何学的歪み補正（補間された放射ゲインテーブルをインデックス付けするために光学的中心からの放射距離を計算すること、及び放射レンズ歪みを原因とする放射状摂動を座標に適用することを介して）など、出力座標の様々な考えられる変換から生成されてもよい。
【００４６】
出力リスケーリングモジュール３１４は、出力リスケーリングモジュール３１４で画像データが処理される際に、画像データに変換を適用することができる。出力リスケーリングモジュール３１４は、水平及び垂直スケーリング成分を含むことができる。設計の垂直部分は、垂直フィルタによって必要とされる「支持」を保持するために、画像データ線バッファの列を実装することができる。ＩＳＰ２０６をストリーミングデバイスとすることができるので、行の有限長のスライディングウインドウ内の画像データの行のみをフィルタが使用するために利用可能であってもよい。新しい入力行のための余裕を設けるために行が破棄されると、その行は、利用可能でなくてもよい。出力リスケーリングモジュール３１４は、前の行にわたる計算された入力Ｙ座標を統計的に監視し、それを使用して垂直支持ウィンドウを保持するために行の最適なセットを計算することができる。それぞれの後続の行に対して、出力リスケーリングモジュール３１４は、垂直支持ウィンドウの中心に関する推量を自動的に生成することができる。いくつかの実施形態では、出力リスケーリングモジュール３１４は、画像フレームのキャプチャ中のセンサの動きによって生じたアーチファクト及び動きを補正するために、入力画像データと出力画像データとの間のピクセルごとの視野変換を実行するデジタル微分解析器（digital difference analyzer）（ＤＤＡ）ステッパとしてエンコードされた区分的視野変換のテーブルを実装することができる。出力リスケーリングモジュール３１４は、図１及び図２に関して上記議論されたように、出力インターフェース３１６を介してシステム１００の様々な他の構成要素に画像データを提供することができる。
【００４７】
各種実施形態では、構成要素３０２〜３４２の機能は、図３に示す画像処理パイプライン内のこれらの機能的ユニットの順序によって暗示された順序とは異なる順序で実行されてもよく、又は図３に示すユニットとは異なる機能的構成要素によって実行されてもよい。更に、図３に記載されたような様々な構成要素は、ハードウェア、ファームウェア、又はソフトウェアの様々な組合せで具現化することができる。
例示的なビジョンモジュールアーキテクチャ
【００４８】
図４は、一実施形態に係る、図３の画像処理パイプラインのビジョンモジュール３２２の詳細図を示すブロック図である。ビジョンモジュール３２２は、なんら追加の画像処理に依存せずにコンピュータビジョン及び／又はコンピュータ学習を１つ以上の画像に対して実行することを可能にする。
【００４９】
一実施形態では、ビジョンモジュール３２２は、フロントエンド回路部分４３０及びバックエンド回路部分４４０を含む。フロントエンド回路部分４３０は、ロー現像ステージ３０６、バックエンド処理ステージ３４０、又はＳＯＣ構成要素２０４の他の部分から受信した画像データ４０１に対して前処理、包括的階調マッピング及びガンマ補正、ビジョンノイズフィルタリング、並びにリサイズなどの１つ以上の演算を実行することができる。図４の実施形態では、フロントエンド回路部分４３０は、それぞれの画像信号パイプラインが１つ以上の受信した画像データ４０１の一部分を処理することにより更新されたルミナンス画像４５４Ａ、４５４Ｂを生成する、一対の画像信号パイプラインを含む。画像信号パイプラインのそれぞれによって生成された更新されたルミナンス画像４５４Ａ、４５４Ｂは、コンピュータビジョン演算を実行するバックエンド回路部分４４０に別々に提供することができる。そのようなアーキテクチャにより、同じ画像、同じ画像の異なる部分、又は異なる画像に対して、画像スケーリングを異なるコンピュータビジョン演算と並列に実行することを可能にする。図４の実施形態のフロントエンド回路部分４３０内に２つのパイプラインのみが設けられているが、画像データ４０１の処理速度及び／又はサイズに依存して、フロントエンド回路部分４３０内に単一のパイプライン又は２つより多くのパイプラインを設けることができる。
【００５０】
フロントエンド回路部分４３０内のそれぞれの画像信号パイプラインは、インターフェース回路４０２、パターン不良ピクセル（pattern defect pixel）（ＰＤＰ）回路４０４、前処理（pre−processing）（ＰＲＥ）回路４０６、ルックアップテーブル（lookup table）（ＬＵＴ）４０８、ビジョンノイズフィルタ（vision noise filter）（ＶＮＦ）４１０、及びリサイザ（resizer）（ＲＥＳ）回路４１２を含むことができる。インターフェース回路４０２は、ソース（例えば、永続的記憶装置２２８、システムメモリ２３０、画像センサ、ロー現像ステージ３０６、又はバックエンド回路部分４４０の出力）から画像データ４０１を受信して、この画像データ４０１をフロントエンド回路部分４３０の後続のステージに転送するように構成される。インターフェース回路４０２は、画像データ４０１のソースを選択するために中央制御３２０からの制御信号に結合された選択入力（図示せず）を含むマルチプレクサとして具現化することができる。
【００５１】
ＰＤＰ回路４０４は、画像データ４０１全体にわたって周期的に配置されたパターン化不良ピクセル（例えば、フォーカスピクセル）を補正する。画像データ４０１がパターン化不良ピクセルを含まない場合、ＰＤＰ回路４０４での処理は、回避する又は省略することができる。ＰＤＰ回路４０４はまた、システムメモリ２３０又は永続的記憶装置２２８から読み込むことができる既知の位置を有する不良を補正する。
【００５２】
ＰＲＥ回路４０６は、当該技術分野で公知のように、様々なピクセルフォーマットの画像データをルミナンス画像データ４５０に変換する。一実施形態では、ルミナンス画像データ４５０は、ＶＮＦ４１０に含まれた行バッファの幅に対応する最大幅を上回らない幅を有する。ＰＤＰ回路４０４から受信した画像データがＶＮＦ４１０に含まれた行バッファの最大幅を上回る場合、ＰＲＥ回路４０６は、ビニングを実行して、ルミナンス画像データ４５０の幅を低減することができる。
【００５３】
ＬＵＴ４０８は、ルミナンス画像データ４５０を非線形空間（例えば、ガンマ補正された）に変換して、ピクセル値が最終のレンダリングされた画像の類似の階調曲線に従うように、ピクセル値を変更する、又は、所望であれば、非線形画像を線形に戻すために使用することができる。
【００５４】
ＶＮＦ回路４１０は、バックエンド回路部分４４０に含まれたコンピュータビジョン構成要素の品質及び性能を改善する。ＶＮＦ回路４１０は、変換されたルミナンス情報をＬＵＴ４０８から受信し、ピクセル不良を除去して画像データ内のノイズを低減する。ピクセル不良は、ノイズ除去のプロセス中にフィルタリングされないことになるノイズ分布のロングテールの結果として生じるドット不良を含むことができる。一実施形態では、ＶＮＦ回路４１０は、１つ以上のアルゴリズムを用いて、ピクセルのグループごとに任意のドット又は不良ピクセルを修復するためにドット検出及び補正を実行する。例えば、１つのアルゴリズムは、３×３のアレイなどのアレイに配置されたピクセルのグループ内の画像を評価する。それぞれの３×３のアレイに対して、アルゴリズムは、３×３のアレイ内の中央ピクセルがドット又は不良を含むかを判定する。判定を行うために、アルゴリズムは、（１）中央ピクセルのピクセル明暗度値から閾値を引いたものが隣接するピクセルの最大ピクセル明暗度値より大きい、かつ（２）中央ピクセルのピクセル明暗度値に閾値を加えたものが隣接するピクセルの最小ピクセル明暗度値未満であるかを判定する。閾値は、１次元（１Ｄ）ルックアップテーブル（ＬＵＴ）をルックアップ明暗度で補間することにより、判定することができる。中央ピクセルがドット又は不良ピクセルとして特定される場合、ＶＮＦ回路４１０は、中央ピクセルを最低勾配方向に沿って置き換える。そうでなければ、ＶＮＦ回路４１０は、中央ピクセルを通過する。
【００５５】
ＶＮＦ回路４１０は、双方向フィルタリングを実行して、３×３のアレイ内の中央ピクセルに対して類似の輝度の隣接するピクセルを平均化することによりノイズを低減することができる。例えば、ＶＮＦ回路４１０は、中央ピクセルと隣接するピクセルとの間のピクセル差が閾値を上回らない場合、中央ピクセルに対して幾何学的かつ測光的に類似のピクセル値の加重平均を実行することができる。一方、中央ピクセルと隣接するピクセルとの間のピクセル差が閾値を上回る場合、ピクセル値の加重平均を計算するそのような演算は、実行されない。ＶＮＦ回路４１０の出力は、マルチプレクサ４２４を介してメモリシステム２３０に、又はＲＥＳ回路４１２に送信することができる。
【００５６】
ＲＥＳ回路４１２は、ＶＮＦ回路４１０から受信したルミナンス出力を特定のスケール比にリサイズ又はスケーリングする。ＲＥＳ回路４１２は、水平及び垂直方向でリサイズを別々に実行する。ＲＥＳ回路４１２によって生成されたリサイザされた出力は、マルチプレクサ４２４を介してシステムメモリ２３０に送信する、又は更なる処理のためにバックエンド回路部分４４０に含まれたコンピュータビジョン構成要素に提供することができる。一実施例では、バックエンド回路部分４４０での更なる処理は、バックエンド回路部分４４０に配置された追加のリサイザを使用することにより画像ピラミッドを生成して、可変のスケール比でルミナンス画像を繰り返しリサイズすることを含み、ＲＥＳ回路４１２の出力は、画像ピラミッドの基底に対応する第１レベルの解像度のルミナンス画像として作用する。
【００５７】
バックエンド回路部分４４０は、フロントエンド回路部分４３０に含まれた画像信号パイプラインによって出力されたスケーリングされたルミナンス画像に対して様々なコンピュータビジョンアルゴリズムを実行する構成要素を含む。バックエンド回路部分４４０で実行される例示的なコンピュータビジョンアルゴリズムとしては、とりわけ、キーポイント検出、配向勾配ヒストグラム（ＨＯＧ）データ生成、及び畳み込みを挙げることができる。様々なコンピュータビジョンアルゴリズムのそれぞれに対応する別個のコンピュータビジョン処理経路は、画像信号パイプラインの対のそれぞれのパイプラインの出力を受信して、複数のコンピュータビジョン演算を並列に実行することができる。
【００５８】
キーポイント検出処理経路は、ＲＥＳ回路４１２Ａによって出力された更新されたルミナンス画像４５４Ａ若しくはＲＥＳ回路４１２Ｂによって出力された更新されたルミナンス画像４５４Ｂ、又はメモリシステム２３０から取得されたＲＥＳ回路４１８Ａによって生成された更新されスケーリングされたルミナンス画像に対してキーポイント検出を実行する。キーポイント検出処理経路は、マルチプレクサ（multiplexer）（ＭＵＸ）４１４Ａ、ＬＵＴ４１６、キーポイント（keypoint）（ＫＥＹ）４２０、及びＲＥＳ回路４１８Ａを含む。ＭＵＸ４１４Ａは、第１の画像信号パイプライン内のＲＥＳ回路４１２Ａの出力を受信するために結合された第１の入力、第２の画像信号パイプライン内のＲＥＳ回路４１２Ｂの出力を受信するために結合された第２の入力、及びデータを読み取るためにメモリシステム２３０に結合された第３の入力を含む。ＭＵＸ４１４Ａは、キーポイント検出及びリサイズの更なる処理のために下流に供給する入力を選択する。
【００５９】
ＭＵＸ４１４Ａの出力は、ＬＵＴ４１６に供給されて、例えば、ＬＵＴ４１６がビット変換（例えば、１２ビットから８ビットへの変換）を実行することもできる以外はＬＵＴ４０８で実行される演算と類似の演算を実行する。ＫＥＹ４２０は、ＬＵＴ４１６の出力を受信して、受信した画像内のキーポイントと呼ばれる対象とする対象物を特定する。１つ以上の実施形態では、ＬＵＴ４１６は、省略することができる。一般的に、キーポイントは、同じシーン又は対象物の他の画像内のマッチングに良好に適合した画像パッチによって囲まれた画像内の位置を指す。ＫＥＹ４２０は、第１の時間周期にＲＥＳ回路４１２Ａによって出力された更新されたルミナンス画像４５４Ａを受信する。第１の時間周期中に、ＫＥＹ４２０は、更新されたルミナンス画像４５４Ａに対してキーポイント検出を実行することができる。ＲＥＳ回路４１８Ａは、ＲＥＳ回路４１２と同様に動作し、ＲＥＳ回路４１２Ａ又は４１２Ｂの出力から更新されスケーリングされたルミナンス画像を生成する。
【００６０】
第１の時間周期にＲＥＳ回路４１８Ａによって生成されたスケーリングされたルミナンス画像４５６Ａは、メモリシステム２３０に保存され、その後、ＲＥＳ回路４１８Ａ及びＫＥＹ４２０でのその後の処理並びにＲＥＳ回路４１８Ａでのリサイズ演算のために後続の第２の時間周期に更新されスケーリングされたルミナンス画像としてＭＵＸ４１４Ａに送信して、戻される（図４の破線により示すように）。ＲＥＳ回路４１８Ａは、更新されスケーリングされたルミナンス画像をスケーリングし、ＫＥＹ４２０は、更新されスケーリングされたルミナンス画像に対してキーポイント検出を並列に実行する。第２の時間周期に、スケーリングされたルミナンス画像４５６Ｂは、ＲＥＳ回路４１８Ｂによって生成され、メモリシステム２３０に保存され、その後、後続の第３の時間周期にＭＵＸ  ４１４Ａに送信して、戻される。このプロセスは、ＲＥＳ回路４１８Ａによって生成されるような画像ピラミッドの連続的にスケーリングされたルミナンス画像に対してキーポイント検出を実行するように、ＲＥＳ回路４１８Ａ及びＫＥＹ４２０によって繰り返すことができる。
【００６１】
一実施形態では、ＫＥＹ４２０は、８ビットルミナンス画像のサブサンプリングを実行して、入力画像のサイズを低減することができる。例えば、ＫＥＹ４２０は、水平及び垂直ともに、１、２、４、又は８個のピクセルごとにサブサンプリングすることができる。サブサンプリングのタイプは、プログラム可能なレジスタを用いて設定することができる。ＫＥＹ４２０はまた、対象とするキーポイントのタイプ又は特性に依存して様々なモードで動作することができる。様々な動作モードは、２Ｄマッチングのための第１又は標準のモード、垂直エッジを特定するための第２のモード、及び水平エッジを特定するための第３のモードを含む。ＫＥＹ４２０は、様々なモードのうちの１つで動作する場合に、マルチステップアルゴリズムを用いて、キーポイントを検出する。ＫＥＹ４２０は、ＫＥＹ４２０の動作モードに依存して、当該技術分野で公知の１つ以上のアルゴリズムを用いて、キーポイントを特定する。ＫＥＹ４２０の出力は、ＩＳＰ２０６による更なる処理のためにメモリシステム２３０に書き込むために結合することができる。
【００６２】
ＨＯＧ処理経路は、それぞれの連続的にスケーリングされたルミナンス画像でＨＯＧデータ又はピラミッド画像を計算する。ＨＯＧ処理経路は、ＭＵＸ４１４Ｂ、ＲＥＳ回路４１８Ｂ、及びＨＯＧ４２２を含む。ＭＵＸ４１４Ａのように、ＭＵＸ４１４Ｂは、ＲＥＳ回路４１２Ａ、ＲＥＳ回路４１２Ｂ、又はメモリシステム２３０にそれぞれ結合された３つの入力を含み、下流のＨＯＧ４２２及びＲＥＳ回路４１８Ｂに送信されることになる入力を選択する。ピラミッド画像に対してＨＯＧデータ４６０Ａ、４６０Ｂを計算するために、ＲＥＳ回路４１８Ｂの出力は、ＭＵＸ４１４Ｂによってアクセス可能とすることができるメモリシステム２３０に結合される。スケーリングされたルミナンス画像４５８Ａは、更新されたルミナンス画像４５４に基づいて第１のタイムフレームにＲＥＳ回路４１８Ｂの出力として生成され、更新されスケーリングされたルミナンス画像４５８Ｂは、後続の第２のタイムフレームにスケーリングされたルミナンス画像４５８Ａに基づいてＲＥＳ回路４１８Ｂの出力として生成される。ＭＵＸ４１４Ｂは、前の時間周期にＲＥＳ回路４１８Ｂによって出力されたルミナンス画像を取得して（破線によって示すように）、ルミナンス画像をＲＥＳ回路４１８Ｂ及びＨＯＧ４２２に出力することができる。ＲＥＳ回路４１８Ｂは、更新されスケーリングされたルミナンス画像をスケーリングし、ＨＯＧ４２２は、更新されスケーリングされたルミナンス画像のＨＯＧデータを並列に計算する。ＨＯＧ４２２は、その出力をメモリシステム２３０に書き込み、その出力は、バックエンド回路部分４４０に含まれた他のコンピュータビジョン構成要素によって更に処理することができる。このプロセスは、画像ピラミッドの連続的にスケーリングされたルミナンス画像に対してＨＯＧ特徴検出を実行するように、ＲＥＳ回路４１８Ｂ及びＨＯＧ４２２によって繰り返すことができる。
【００６３】
畳み込み（convolution）（ＣＯＮＶ）処理経路は、フロントエンド回路部分４３０からの更新されたルミナンス画像、ＨＯＧ４２２からのＨＯＧデータ４６０Ａ、４６０Ｂ、及びＣＯＮＶ処理経路からの画像データに対して畳み込みアルゴリズムを実行する構成要素を含む。ＣＯＮＶ処理経路は、ＭＵＸ４２６及びＣＯＮＶ４２８を含む。ＣＯＮＶ回路４２８は、当該技術分野で公知のアルゴリズムを用いて畳み込み演算を実行する。ＭＵＸ４２６は、ＲＥＳ回路４１２Ａの出力に結合された第１の入力、ＲＥＳ回路４１２Ｂの出力に結合された第２の入力、ＨＯＧ４２２の出力に結合された第３の入力、及び前の時間周期に得られたＣＯＮＶ４２８の出力を受信するために（破線によって示すように）メモリシステム２３０に結合された第４の入力を含む。ＭＵＸ４２６は、ＣＯＮＶ４２８に送信されることになる入力を選択し、ＣＯＮＶ４２８は、次に、ＭＵＸ  ４２６から受信した入力画像データに対して畳み込み演算を実行する。
【００６４】
ＣＯＮＶ４２８は、ＫＥＹ４２０及びＨＯＧ４２２などの他のコンピュータビジョン構成要素と並列に、畳み込み演算を実行することができる。一実施形態では、ＣＯＮＶ４２８は、第１の時間周期中に第１のＨＯＧデータ４６０Ａに対して畳み込み演算を実行して、第１の結果４６２を生成する。後続の第２の時間周期中に、ＣＯＮＶ４２８は、ＨＯＧデータ４６０Ｂに対して畳み込み演算を実行して、第２の結果４６４を生成する。
【００６５】
バックエンド回路部分４４０で実行される動作は、単なる例示である。バックエンド回路部分４４０は、キーポイント検出、ＨＯＧ、及び畳み込み演算のサブセットのみを実行する回路を含むことができる。あるいは、バックエンド回路部分４４０は、追加の記述子生成、顔の検出などの追加のコンピュータビジョン演算を実行する更なる回路を含むことができる。
コンピュータビジョン演算を実行する例示的なプロセス
【００６６】
図５は、一実施形態に係る、画像スケーリングと並列にコンピュータビジョン演算を実行するためのフローチャートを示す。他の実施形態では、図５に示すステップ以外のステップを実行することができることに留意されたい。
【００６７】
一実施形態では、フロントエンド回路部分４３０は、インターフェース回路４０２を介して画像データを受信する（５０２）。受信した画像データは、同じ画像又は異なる画像の異なる部分を含むことができる。フロントエンド回路部分４３０に含まれたプリプロセッサ４０６は、受信した画像データから現在のルミナンス画像を生成する（５０４）。ＲＥＳ回路４１２は、最初のルミナンス画像に基づいて更新されたルミナンス画像を生成する（５０６）。更新されたルミナンス画像は、現在のルミナンス画像のリサイズされたバージョンである。
【００６８】
バックエンド回路部分４４０は、画像ピラミッドを形成する連続的にスケーリングされたルミナンス画像を生成し、並列に、それぞれのスケーリングされた画像に対してコンピュータビジョン演算を実行することができる。例えば、バックエンド回路部分４４０は、第１の時間周期中に、フロントエンド回路部分４３０によって出力された更新されたルミナンス画像のリサイザされたバージョンである、スケーリングされたルミナンス画像を生成する（５０８）、ＲＥＳ回路４１８を含む。ＲＥＳ回路４１８は、更なる処理のために、スケーリングされたルミナンス画像をメモリシステムに書き込む（５１２）。
【００６９】
第１の時間周期中に、バックエンド回路部分４４０はまた、更新されたルミナンス画像のコンピュータビジョン演算を実行する（５１０）。バックエンド回路部分４４０に含まれた異なるコンピュータビジョン構成要素は、それぞれのスケーリングされたルミナンス画像に対して異なるコンピュータビジョン演算を並列に実行することができる。例えば、ＫＥＹ４２０は、更新されたルミナンス画像のキーポイント検出を実行することができ、ＨＯＧ４２２は、同じ更新されたルミナンス画像、又は異なる受信した画像若しくは同じ受信した画像の異なる部分の異なる更新されたルミナンス画像に対してＨＯＧ演算を実行する。別の実施例では、ＫＥＹ４２０、ＨＯＧ４２２、及びＣＯＮＶ４２８のうちの１つ又は組合わせは、第１の時間周期中に並列に動作して、ＲＥＳ回路４１２Ａ及びＲＥＳ回路４１２Ｂの出力に対応する画像信号処理パイプラインのうちの１つ又は組合わせによって出力された更新されたルミナンスデータに対してそれらの対応するコンピュータビジョン演算を実行することができる。
【００７０】
次に、バックエンド回路部分４４０は、スケーリングされたルミナンス画像がスケーリング限界を上回るか否かを判定する（５１４）。一実施例では、スケーリングされたルミナンス画像のスケーリング限界は、３２ピクセルの幅である。スケーリング限界に到達していない場合、更新されスケーリングされたルミナンス画像は、更新されスケーリングされたルミナンス画像としてメモリシステムから取得され（５１６）、この更新されスケーリングされたルミナンス画像は、ステップ５０８、５１０、及び５１２に従って、第２の時間周期中にＲＥＳ回路４１８によってリスケーリングして、コンピュータビジョン構成要素によって演算することができる。バックエンド回路部分４４０は、スケーリング限界に到達しているという判定５１４が行われるまでステップ５０８、５１０、及び５１２によって形成されるループを繰り返す。スケーリング限界に到達していると判定される（５１４）場合、プロセスは、終了する。
【００７１】
本明細書において使用される文言は、専ら読みやすさ及び説明の目的で選択されたものであり、本発明の主題を限定又は制限するために選択されたものではない。したがって、本発明の実施形態の開示の範囲は、この発明を実施する形態によってではなく、むしろ本明細書に基づく出願において発行するいずれかの特許請求の範囲によって制限されるものとする。したがって、本発明の実施形態の開示は、以下の特許請求の範囲に記載される本発明の範囲を例示することを目的としたものであって、その限定を目的としたものではない。
【図１】
2019519862.tif 000003
【図２】
2019519862.tif 000004
【図３】
2019519862.tif 000005
【図４】
2019519862.tif 000006
【図５】
2019519862.tif 000007
【手続補正書】
【提出日】平成30年12月26日(2018.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像を受信するように構成されたインターフェース回路と、
フロントエンド回路部分であって、
前記インターフェース回路を介して前記画像を受信し、前記受信した画像に基づいて現在のルミナンス画像を生成し、
前記現在のルミナンス画像のリサイズされたバージョンである更新されたルミナンス画像を生成する、ように構成されたフロントエンド回路部分と、
前記フロントエンド回路部分の出力に結合されたバックエンド回路部分と、を備える画像信号プロセッサであって、前記バックエンド回路部分が、リサイズ演算及びコンピュータビジョン演算を並列に実行するように構成された、リサイザ回路と、コンピュータビジョン回路とを含み、
前記リサイザ回路が、第１の時間周期中に前記更新されたルミナンス画像のリサイズされたバージョンであるスケーリングされたルミナンス画像を生成するように構成されており、前記第１の時間周期の後の第２の時間周期中に前記スケーリングされたルミナンス画像をリサイズすることにより、更新されスケーリングされたルミナンス画像を生成するように更に構成されており、
前記コンピュータビジョン回路が、前記第１の時間周期中に前記更新されたルミナンス画像に対してコンピュータビジョン演算を実行し、前記第２の時間周期中に前記スケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行するように構成された、画像信号プロセッサ。
【請求項２】
前記リサイザ回路が、前記第２の時間周期の後の第３の時間周期中に前記更新されスケーリングされたルミナンス画像をリサイズするように更に構成された、請求項１に記載の画像信号プロセッサ。
【請求項３】
前記コンピュータビジョン回路が、前記第３の時間周期中に前記更新されスケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行するように構成された、請求項２に記載の画像信号プロセッサ。
【請求項４】
前記コンピュータビジョン回路が、前記リサイザ回路に結合された配向勾配ヒストグラム（ＨＯＧ）回路を含み、前記ＨＯＧ回路が、
前記第１の時間周期中に前記更新されたルミナンス画像の第１のＨＯＧデータを生成し、
前記第２の時間周期中に前記スケーリングされたルミナンス画像の第２のＨＯＧデータを生成する、ように構成された、請求項１に記載の画像信号プロセッサ。
【請求項５】
前記コンピュータビジョン回路が、前記ＨＯＧ回路に結合された畳み込み回路を更に含み、前記畳み込み回路が、前記第１の時間周期中に前記第１のＨＯＧデータに対して畳み込み演算を実行し、前記第２の時間周期中に前記第２のＨＯＧデータに対して前記畳み込み演算を実行するように構成された、請求項４に記載の画像信号プロセッサ。
【請求項６】
前記コンピュータビジョン回路が、前記フロントエンド回路部分の前記出力に結合された畳み込み回路を更に含み、前記畳み込み回路が、前記第１の時間周期中に、前記更新されたルミナンス画像を受信し、前記更新されたルミナンス画像データに対して畳み込み演算を実行するように構成された、請求項１に記載の画像信号プロセッサ。
【請求項７】
前記コンピュータビジョン回路が、
前記第１の時間周期中に、前記更新されたルミナンス画像内の１つ以上の画像位置であって、前記更新されたルミナンス画像内の検出される前記１つ以上の画像位置は、別の画像内の位置をマッチングするための候補位置を含む、１つ以上の画像位置を検出し、
前記第２の時間周期中に、前記スケーリングされたルミナンス画像内の１つ以上の画像位置であって、前記スケーリングされたルミナンス画像内の検出される前記１つ以上の画像位置は、前記もう１つの画像内の位置をマッチングするための候補位置を含む、１つ以上の画像位置を検出する、ように結合されたキーポイント検出回路を更に含む、請求項１に記載の画像信号プロセッサ。
【請求項８】
前記フロントエンド回路部分が、前記更新されたルミナンス画像を生成する一対の画像信号パイプラインを含み、前記画像信号パイプラインのそれぞれが、前記受信した画像の一部分を処理して前記更新されたルミナンス画像の一部分を生成するように構成された、請求項１に記載の画像信号プロセッサ。
【請求項９】
前記画像信号パイプラインのそれぞれが、前記インターフェース回路からの画像データを色補正されたルミナンスデータに変換するように構成されたプリプロセッサを更に含む、請求項８に記載の画像信号プロセッサ。
【請求項１０】
前記画像信号パイプラインのそれぞれが、前記現在のルミナンス画像の前記一部分のサイズを低減するリサイザ構成要素を含む、請求項８に記載の画像信号プロセッサ。
【請求項１１】
前記画像信号パイプラインのそれぞれが、前記現在のルミナンス画像の前記一部分の生ルミナンス画像を生成するように構成されたルックアップテーブルを更に含む、請求項１０に記載の画像信号プロセッサ。
【請求項１２】
前記画像信号パイプラインのそれぞれが、前記生ルミナンス画像内のノイズをフィルタリングする、前記ルックアップテーブルと前記リサイザ構成要素との間の双方向フィルタを更に含む、請求項１１に記載の画像信号プロセッサ。
【請求項１３】
前記インターフェース回路が、センサ又は前記画像信号プロセッサのロー現像ステージに結合された、請求項１に記載の画像信号プロセッサ。
【請求項１４】
前記インターフェース回路が、マルチプレクサである、請求項１３に記載の画像信号プロセッサ。
【請求項１５】
前記マルチプレクサが、前記第１の時間周期の後に前記スケーリングされたルミナンス画像を、及び前記第２の時間周期の後に前記更新されたルミナンス画像を、受信するように構成された、請求項１４に記載の画像信号プロセッサ。
【請求項１６】
インターフェース回路を介して画像信号プロセッサのフロントエンド回路部分で画像を受信することと、
前記受信した画像に対応する現在のルミナンス画像を生成することと、
前記現在のルミナンス画像をリサイズすることにより更新されたルミナンス画像を生成することと、
第１の時間周期中に、前記更新されたルミナンス画像のリサイズされたバージョンであるスケーリングされたルミナンス画像を生成することと、
前記第１の時間周期中に、前記スケーリングされたルミナンス画像の生成と並列に、前記更新されたルミナンス画像に対してコンピュータビジョン演算を実行することと、
前記第１の時間周期の後の第２の時間周期中に、前記スケーリングされたルミナンス画像のリサイズされたバージョンである更新されスケーリングされたルミナンス画像を生成することと、
前記第２の時間周期中に、前記更新されスケーリングされたルミナンス画像の生成と並列に、前記スケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行することと、を含む、方法。
【請求項１７】
前記第１の時間周期中に、前記更新されたルミナンス画像の第１の配向勾配ヒストグラム（ＨＯＧ）データを生成することと、
前記第２の時間周期中に、前記スケーリングされたルミナンス画像の第２のＨＯＧデータを生成することと、を更に含む、請求項１６に記載の方法。
【請求項１８】
前記第１の時間周期中に、前記第１のＨＯＧデータに対して畳み込み演算を実行することと、
前記第２の時間周期中に、前記第２のＨＯＧデータに対して前記畳み込み演算を実行することと、を更に含む、請求項１７に記載の方法。
【請求項１９】
前記コンピュータビジョン演算を実行することが、
前記第１の時間周期中に、前記更新されたルミナンス画像内の１つ以上の画像位置を検出することであって、前記更新されたルミナンス画像内の検出される前記１つ以上の画像位置は、別の画像内の位置をマッチングするための候補位置を含む、ことと、
前記第２の時間周期中に、前記スケーリングされたルミナンス画像内の１つ以上の画像位置を検出することであって、前記スケーリングされたルミナンス画像内の検出される前記１つ以上の画像位置は、前記もう１つの画像内の位置をマッチングするための候補位置を含む、ことと、を更に含む、請求項１６に記載の方法。
【請求項２０】
画像センサと、
前記画像センサから画像を受信するように構成されたインターフェース回路と、
フロントエンド回路部分であって、
前記インターフェース回路を介して前記画像を受信し、前記受信した画像に基づいて現在のルミナンス画像を生成し、
前記現在のルミナンス画像のリサイズされたバージョンである更新されたルミナンス画像を生成する、ように構成されたフロントエンド回路部分と、
前記フロントエンド回路部分の出力に結合されたバックエンド回路部分と、を備える電子デバイスであって、前記バックエンド回路部分が、リサイズ演算及びコンピュータビジョン演算を並列に実行するように構成された、リサイザ回路と、コンピュータビジョン回路とを含み、
前記リサイザ回路が、第１の時間周期中に前記更新されたルミナンス画像のリサイズされたバージョンであるスケーリングされたルミナンス画像を生成するように構成されており、前記第１の時間周期の後の第２の時間周期中に前記スケーリングされたルミナンス画像をリサイズすることにより、更新されスケーリングされたルミナンス画像を生成するように更に構成されており、
前記コンピュータビジョン回路が、前記第１の時間周期中に前記更新されたルミナンス画像に対してコンピュータビジョン演算を実行し、前記第２の時間周期中に前記スケーリングされたルミナンス画像に対して前記コンピュータビジョン演算を実行するように構成された、電子デバイス。
【国際調査報告】
2019519862.tif 000008
2019519862.tif 000009
2019519862.tif 000010