(57)【要約】【課題】画素の属性を示す値を適切に伝送することが出来るようにする。【解決手段】多数の演算回路を通過するリコンフィギュラブル回路１０４の内部では、画素アトリビュートの値をフラグとしてデータにバインドする形態（第２の画素アトリビュート形態）で画素アトリビュートの値を伝送する。リコンフィギュラブル回路１０４と外部との間では、画素アトリビュートの値として画素値に０値を割り当てる形態（第１の画素アトリビュート形態）で画素アトリビュートの値を伝送する。【選択図】図１
2020057958.tif 000002
【特許請求の範囲】
【請求項１】
画素の属性を示す値が第１の形態で表現されたデータを、当該画素の属性を示す値が当該第１の形態とは異なる第２の形態で表現されたデータに変換する第１の変換手段と、
画素の属性を示す値が前記第２の形態で表現されたデータを、当該画素の属性を示す値が前記第１の形態で表現されたデータに変換する第２の変換手段と、
前記第１の形態で表現されたデータを第１の伝送路に伝送する第１の伝送手段と、
前記第２の形態で表現されたデータを前記第１の伝送路と異なる第２の伝送路に伝送する第２の伝送手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記第１の伝送路には、前記第２の形態で表現されたデータは伝送されず、前記第２の伝送路には、前記第１の形態で表現されたデータは伝送されないことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の変換手段は、前記第１の変換手段により変換された、前記第２の形態で表現されたデータを、前記第１の形態で表現されたデータに変換することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第１の変換手段は、前記第２の変換手段により変換された、前記第１の形態で表現されたデータを、前記第２の形態で表現されたデータに変換することを特徴とする請求項１〜３の何れか１項に記載の画像処理装置。
【請求項５】
前記第１の形態は、画素のデータにおける当該画素の画素値として、当該画素の属性に対応する値を割り当てる形態であることを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項６】
前記第２の形態は、画素のデータに当該画素の属性を示す値が付加される形態、または、画素のデータの一部を当該画素の属性に対応する値に置換する形態であることを特徴とする請求項１〜５の何れか１項に記載の画像処理装置。
【請求項７】
前記画素の属性を示す値は、欠陥画素であることを示す値、飽和画素であることを示す値、および、記録あるいは表示のための撮像画像を構成する用途とは異なる用途に使用する信号を出力する画素である機能画素であることを示す値の少なくとも何れか１つのであることを特徴とする請求項１〜６の何れか１項に記載の画像処理装置。
【請求項８】
前記データが伝送されるデータパスとして複数の処理手段を更に有し、
前記複数の処理手段の少なくとも１つは、処理機能が更新される処理手段であることを特徴とする請求項１〜７の何れか１項に記載の画像処理装置。
【請求項９】
前記第１の形態で表現されたデータは、処理機能が更新される処理手段と、その他の前記処理手段との間において伝送され、
前記第２の形態で表現されたデータは、前記処理機能が更新される処理手段を構成する複数の回路の間において伝送されることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
画素の属性を示す値が第１の形態で表現されたデータを、当該画素の属性を示す値が当該第１の形態とは異なる第２の形態で表現されたデータに変換する第１の変換工程と、
画素の属性を示す値が前記第２の形態で表現されたデータを、当該画素の属性を示す値が前記第１の形態で表現されたデータに変換する第２の変換工程と、
前記第１の形態で表現されたデータを第１の伝送路に伝送する第１の伝送工程と、
前記第２の形態で表現されたデータを前記第１の伝送路と異なる第２の伝送路に伝送する第２の伝送工程と、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、特に、画素の属性を示す値を伝送するために用いて好適なものである。
【背景技術】
【０００２】
例えば、フレームデータの処理において、画素の属性（以下、画素アトリビュートと称する）を継承したい場合がある。例えば、デジタルカメラで撮影したＲＡＷデータ中の画素の状態に係る画素アトリビュートとしては、欠陥画素（傷）、飽和画素（感度不良）、機能画素（像面位相差ＡＦ用の視差取得画素）等が挙げられる。
画素アトリビュートを付加したい画素データを、有効データとしない場合が存在する。例示の欠陥画素、飽和画素、機能画素にあたる画素値は、画像を記録する際には、当該画素の周辺の参照画素の画素値を用いて補間した画素値に置換する必要がある。
伝送した画素アトリビュートは、画像処理時に注目画素の状態を知るために使われる。例えば、欠陥画素の補正処理において、注目画素が工程で既知の傷の場合に周辺の参照画素から注目画素の画素値を補間する場合、データパスにおいて事前に当該画素値を欠陥画素の画素アトリビュートに置換しておく。そして、当該画素アトリビュートを傷補正処理部においてデコードすることで当該注目画素の画素アトリビュートを検出する（特許文献１を参照）。
【０００３】
また、画素毎に、データに画素アトリビュートを直接バインドする方法も提案されている（特許文献２を参照）。例えば、画素が傷状態であることを示すフラグを１ｂｉｔ分、データの下位ｂｉｔに付加する。この場合、途中の演算処理においては、フラグｂｉｔを分離して保持し、演算処理後に、分離したフラグｂｉｔをマージする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２１８５８号公報
【特許文献２】特開２０１２−１２４７９５号公報
【特許文献３】特開２００１−８３４０７号公報
【特許文献４】特開２０１７−１０７２０４号公報
【特許文献５】特開２０１７−１５６７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の方法では、画素アトリビュートに置換してから画素アトリビュートを検出するまでの間に別の処理が入る場合、途中の処理（演算回路）において当該画素アトリビュートの保存・保持が必要となる。特に、画素アトリビュートとして任意の設定値に画素値を置換する方法においては、途中の演算結果で設定値と同値が出現した場合にはそれをキャンセルする仕組みが必要である。このため、回路規模（コスト）が増大する虞がある。また、演算回路の実装工数や、検証工数が増大する虞がある。
一方、特許文献２に記載の方法では、画素アトリビュートをデータにバインドするため、画素アトリビュートの伝送に際し、データの帯域が増大する虞がある。
以上のように従来の技術では、画素アトリビュートの値（画素の属性を示す値）を適切に伝送することが出来ないという問題点がある。
本発明は、このような問題点に鑑みてなされたものであり、画素の属性を示す値を適切に伝送することが出来るようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、画素の属性を示す値が第１の形態で表現されたデータを、当該画素の属性を示す値が当該第１の形態とは異なる第２の形態で表現されたデータに変換する第１の変換手段と、画素の属性を示す値が前記第２の形態で表現されたデータを、当該画素の属性を示す値が前記第１の形態で表現されたデータに変換する第２の変換手段と、前記第１の形態で表現されたデータを第１の伝送路に伝送する第１の伝送手段と、前記第２の形態で表現されたデータを前記第１の伝送路と異なる第２の伝送路に伝送する第２の伝送手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画素の属性を示す値を適切に伝送することが出来る。
【図面の簡単な説明】
【０００８】
【図１】画像処理装置の構成を示す図である。
【図２】リコンフィギュラブル回路の構成を示す図である。
【図３】第１の画素アトリビュート形態を示す図である。
【図４】第２の画素アトリビュート形態の第１の例を示す図である。
【図５】第１の変換部の構成の第１の例を示す図である。
【図６】第２の変換部の構成の第１の例を示す図である。
【図７】ＡＬＵの内部構成を示す図である。
【図８】パルス生成回路を示す図である。
【図９】距離マップを作成する処理を示すフローチャートである。
【図１０】Ｙ値（輝度値）を取得する際の処理を示すフローチャートである。
【図１１】視差画像間の相関演算を行う際の処理を示すフローチャートである。
【図１２】第２の画素アトリビュート形態の第２の例を示す図である。
【図１３】第１の変換部の構成の第２の例を示す図である。
【図１４】第２の変換部の構成の第２の例を示す図である。
【発明を実施するための形態】
【０００９】
以下の各実施形態では、ハードワイヤードで実現したデータパス中に、リコンフィギュラブル回路を通して処理を完成させる場合を例示する。ハードワイヤード（固定回路）は、論理構成（命令）をハードウェアにより実現したものである。リコンフィギュラブル回路は、ソフトウェアによる回路再構成（リコンフィギュラブル）によって論理構成（命令）を実現するものである。
リコンフィギュラブル回路は、回路内のサブモジュールにＡＬＵ（算術演算回路）を多く敷き詰めている。リコンフィギュラブル回路は、ＣＰＵと連携して、例えば揮発性の大容量の記憶部（ＤＲＡＭ等）に一時保持したフレームデータを大量に高速に読み出して、ＡＬＵの組合せで所望の演算処理を実行する。リコンフィギュラブル回路は、当該演算処理が実行された後にフレームデータを再び記憶部に書き戻す。そして、リコンフィギュラブル回路は、ＡＬＵの組合せをソフトウェアで再構成した後に、再構成後のＡＬＵの組合せで再び記憶部のフレームデータを演算処理する。
【００１０】
記憶部へは、リコンフィギュラブル回路を含めシステム中の様々な処理部からのアクセス要求がある。従って、それらを許容帯域内で処理しなければならない。そのため、夫々の処理部におけるデータの帯域増大を避けなければシステムは成立しない。
そこで、画素データを画素アトリビュートに置換することが考えられる。しかしながら、リコンフィギュラブル回路はＡＬＵの集合体であり、画素データを画素アトリビュートに置換する形態では、ＡＬＵ毎に当該画素アトリビュートを保存・保持する仕組みが必要になる。具体的には、ＡＬＵに入力された画素アトリビュートを後段のＡＬＵへ継承する仕組みや、ＡＬＵの演算結果が画素アトリビュート状態を疑似しないように回避するする仕組みが必要になる。従って、リコンフィギュラブル回路全体の回路規模（コスト）が増大にする虞がある。また、各ＡＬＵへの実装工数や、検証工数が増大する虞がある。
【００１１】
一方、ＡＬＵに適した画素アトリビュートを画素データにバインドする方法では、例えば、画素データの他にフラグｂｉｔをバインドした場合には、記憶部への記憶情報が増加し、データの転送帯域を圧迫する。フラグｂｉｔを、本来の画素データのＬＳＢ（Least Significant Bit）と置換した場合には、データの本来の転送帯域と数値は変わらないが、データパス全体において本来の画素値の分解能をフラグｂｉｔ分捨てることになる。
【００１２】
そこで、以下の実施形態では、画素アトリビュートの値を、相互に異なる２つの形態（第１の画素アトリビュート形態および第２の画素アトリビュート形態）で表現する。第１の画素アトリビュート形態は、画素データの画素値に対し、画素アトリビュートの値として任意の別の画素値を割り当てる形態である。第２の画素アトリビュート形態は、画素アトリビュートの値を画素値の一部のｂｉｔ値（例えばＬＳＢのｂｉｔ値）と置換する形態、または、画素アトリビュートの値をフラグとしてデータにバインド（付加）する形態である。そして、リコンフィギュラブル回路と外部との間の画素アトリビュートの伝送を、（第２のアトリビュート形態では行わずに）第１の画素アトリビュート形態で行う。また、リコンフィギュラブル回路の内部における画素アトリビュートの伝送を、（第１のアトリビュート形態では行わずに）第２の画素アトリビュート形態で行う。このため、リコンフィギュラブル回路において、第１の画素アトリビュート形態から第２の画素アトリビュート形態への変換と、第２の画素アトリビュート形態から第１の画素アトリビュート形態への変換とを行う。
【００１３】
以下、添付の図面を参照して、実施形態を詳細に説明する。
（第１の実施形態）
まず、第１の実施形態を説明する。
図１は、画像処理装置の構成の一例を示す図である。本実施形態では、画像処理装置が撮像装置に搭載される場合を例に挙げて説明する。撮像装置は、例えば、デジタルスチルカメラ、デジタルムービーカメラ、工業用カメラ、車載用カメラ、または医療用カメラなどである。ただし、撮像部で撮像された画像に対する画像処理を行う機能を有する装置であれば、画像処理装置が搭載される装置は、携帯端末（携帯電話やタブレット端末など）またはパーソナルコンピュータなどの情報処理装置であっても良い。また、画像処理装置は、撮像装置に搭載されるものに限定されない。例えば、画像処理装置は、撮像部（図１に示す例では撮像ユニット１０５）を有していなくても良い。この場合、画像処理装置は、撮像部を有する装置と通信することが出来る。
【００１４】
図１において、撮像装置は、ＣＰＵ１００、ＲＯＭ１０１、ＲＡＭ１０２、記録メディア１０３、リコンフィギュラブル回路１０４、撮像ユニット１０５、および画像処理回路１０６を有する。画像処理装置は、例えば、ＣＰＵ１００、ＲＯＭ１０１、ＲＡＭ１０２、記録メディア１０３、リコンフィギュラブル回路１０４、および画像処理回路１０６を用いて構成される。
【００１５】
ＲＯＭ１０１は、不揮発性記憶媒体の一例である。ＲＡＭ１０２は、揮発性記憶媒体の一例であり、データを一時記憶する。ＲＡＭ１０２は、例えば、大容量のＤＲＡＭ等である。ＲＯＭ１０１およびＲＡＭ１０２は共にＣＰＵ１００の一次記憶部（ＣＰＵ１００が直接アクセスする記憶媒体）である。ＲＯＭ１０１には、リコンフィギュラブル回路１０４の設定情報１０１１が記憶される。また、ＲＡＭ１０２は、ＣＰＵ１００にｗｏｒｋ領域を提供する他、リコンフィギュラブル回路１０４の設定情報１０１１や、画像処理対象であるフレームデータも一時記憶する。
【００１６】
記録メディア１０３は、補助記憶装置の一例である。記録メディア１０３は、例えば、ＣＦ（コンパクトフラッシュ（登録商標））やＳＤカード等である。本実施形態では、記録メディア１０３に記憶されているフレームデータ１０３１が、一旦ＲＡＭ１０２に展開されて、データパスに通される処理を例示する。記録メディア１０３の（ｗｒｉｔｅ、ｒｅａｄの）アクセス速度が高速であれば、ＲＡＭ１０２を通す必要は無い。ただし、記録メディア１０３が、ＮＡＮＤフラッシュ等のメモリ技術を用いた記録メディアの場合、書き換え（消去して書き込む行為）自体が素子のデータ保持寿命を縮める。このため、フレームデータ１０３１を、一旦ＲＡＭ１０２に展開することは、データの保持寿命を縮めることを回避することになる。尚、ＲＯＭ１０１、ＲＡＭ１０２、および記録メディア１０３は、夫々データｗｒｉｔｅ、ｒｅａｄをするための制御部を備える。
【００１７】
不揮発性であり、一次記憶部にも適した記憶媒体が開発されている。例えば、記憶素子技術に「相変化メモリ」を用いると共に、セル選択技術に「オボニックスイッチ」を用いたメモリがある。このようなメモリは、ＮＡＮＤフラッシュの欠点を改善し、書き換え回数の向上（高寿命）と、ランダムアクセスの改善（短レイテンシ化）とを実現するメモリである。この様なメモリを、ＲＯＭ１０１、ＲＡＭ１０２、および記録メディア１０３の少なくとも何れか１つとして用いても良い。本実施形態では、以上のＲＯＭ１０１、ＲＡＭ１０２、および記録メディア１０３を用いて画像処理装置が構成される場合を例示する。
【００１８】
撮像ユニット１０５は、光学系（レンズ等）、撮像素子（イメージセンサー）、およびＡ／Ｄ変換回路等を有する。撮像ユニット１０５は、画像を撮像し、撮像した画像の画像信号（デジタル信号）を生成する。尚、光学系は、撮像装置から取り外し可能となっていても良い。
画像処理回路１０６は、画像信号に対して画像処理を行う。画像処理回路１０６は、例えば、ハードワイヤードのロジック回路構成（サブモジュール）として、シェーディング補正回路や、リニアリティー補正回路等センサー補正用の信号処理回路も含んで良い。画像処理回路１０６は、リコンフィギュラブル回路１０４の前後にカスケードに接続されていても良い。
データバス１０７は、ＣＰＵ１００、ＲＯＭ１０１、ＲＡＭ１０２、記録メディア１０３、リコンフィギュラブル回路１０４、撮像ユニット１０５、および画像処理回路１０６を相互に通信可能に接続する。例えばデータバス１０７を用いることにより第１の伝送路に対し第１の伝送（第１のアトリビュート形態のデータの伝送）が行われる。
【００１９】
本実施形態の画像処理装置のデジタル回路は、システムクロック（不図示）による同期回路であり、同相転送が成立するものとする。また、本実施形態では、モジュール間Ｉ／Ｆは、データ信号の他に、データが有効であることを示すステータス信号（有効ステータス信号（不図示））を入出力するものとする。システムによっては、モジュール間Ｉ／Ｆは、前段回路に対してデータ転送の停止を要求する停止要求信号を送出しても良い。
【００２０】
図２は、リコンフィギュラブル回路１０４の構成の一例を示す図である。
リコンフィギュラブル回路１０４は、入力部に第１の変換部１０４１を有し、出力部に第２の変換部１０４２を有する。ＡＬＵ群１０４３は、複数のＡＬＵ１０４３１を選択的に接続可能に配したＡＬＵアレイ（ALU Array）である。第１の変換部１０４１と任意のＡＬＵ１０４３１との間、第２の変換部１０４２と任意のＡＬＵ１０４３１との間、複数のＡＬＵ１０４３１中の任意の２点間は、セレクタ（後述有り）を介して接続することで伝送路を形成する。例えばこの伝送路を用いることにより第２の伝送路に対し第２の伝送（第２のアトリビュート形態のデータの伝送）が行われる。
【００２１】
第１の変換部１０４１については、図５で後述する。第２の変換部１０４２については、図６で後述する。また、ＡＬＵ１０４３１の内部構成については、図７で後述する。
ＳＲＡＭ１０４４は、任意のＡＬＵ１０４３１の演算結果を一時的に記憶するためのメモリ（揮発性記憶媒体）の一例である。制御部１０４０は、回路のコンフィギュレーションを行う。
【００２２】
制御部１０４０は、例えば、第１の変換部１０４１および第２の変換部１０４２やＡＬＵ群１０４３内に存在するレジスタ情報を書き換えることで、全体の演算処理（処理機能）を変更・更新する。また、制御部１０４０は、レジスタ情報の変更・更新のタイミングを事前に設定することで、ファームウェアの介在無く、レジスタ情報の変更・更新を実施することが可能であるよう、カウンタやコンパレータ等のロジック回路を有する。レジスタ情報の変更・更新のタイミングの設定は、例えば、設定情報１０１１中に命令（インストラクション・コード）として記述しておくことにより実現される。
【００２３】
回路のアップデート要求については、ＡＬＵ１０４３１内でパルス信号を生成し、当該パルス信号を制御部１０４０に伝達することで実現することが可能である。
制御部１０４０は、設定情報１０１１に記述されたインストラクション・コードをデコードして、命令を実行する。命令として、ＡＬＵ１０４３１に対するレジスタへのＷｒｉｔｅ／Ｒｅａｄ命令の他、自身のＷａｉｔ命令（完了通知待ち等）や、Ｌｏｏｐ命令（同一回路処理を複数回実行すること等）を定義しても良い。これらの所作は、ＣＰＵの命令処理同様の公知の技術であり、詳細な説明は省略する。制御部１０４０は、レジスタの更新をＡＬＵ１０４３１に知らせるための更新ステータス信号を発行しても良い。
【００２４】
図３は、第１の画素アトリビュート形態のフォーマットの一例を示す図である。本実施形態では、データバス１０７を伝送する信号のデータ幅を１６ｂｉｔと定義する（１６ｂｉｔで例示する）。図３（ａ）では、データバス１０７に、１６ｂｉｔ幅の画像データまたは画素アトリビュートの値が画素アトリビュート情報として出現することを示す。例えば、或る画素の画素値が飽和してしいるために正しい値を示していない場合に、当該画素を感度不良画素であるとして「飽和画素」を示す値を当該画素の画素アトリビュート情報として割り当てることにより画素アトリビュート情報が出現する。第１の画素アトリビュート形態では、画素データを画素アトリビュートの値で置換するものとする。本実施形態では、「飽和画素」を示す画素アトリビュートの値として０値が割り当てる場合を例示する。
【００２５】
図３（ｂ）はデータ値のダイナミックレンジを例示する。１６ｂｉｔのデータ値中１〜６５５３５の範囲を符号なしの画像データの値として扱い、０値を飽和画素フラグとして定義する。つまり、全体（０〜６５５３５値）から１値分のダイナミックレンジを放棄して、その分を画素アトリビュート情報に割り当てる。そのため、第１の画素アトリビュート形態のときには、画素値として０になった場合には、当該画素値を１値に置換するものとする。このように画素値を置換しても、後に現像処理が行われる。従って、１値程度のダイナミックレンジの破棄は目視的には問題とならない。
【００２６】
図４は、第２の画素アトリビュート形態のフォーマットの一例を示す図である。本実施形態では、ＡＬＵ群１０４３で扱うデータ幅を符号付きの１７ｂｉｔ（符号ｂｉｔと画素データ１６ｂｉｔ）と定義する。符号付きデータは、後述する第１の変換部１０４１でのオフセットクランプ減算を考慮したものである。
図４（ａ）では、画素データが符号付きの１７ｂｉｔのデータ（最上位ｂｉｔは符号ｂｉｔ）であることと、画素データにバインドする画素アトリビュートの値が１ｂｉｔであることを示す。図４（ｂ）は、画素値のダイナミックレンジが６５５３５〜−６５５３６の範囲であることと、画素データに付随する飽和画素情報は、その値が０値で通常画素であり、その値が１値で飽和画素であることとを示す。図４（ｂ）において、データ値と飽和画素情報との間の「＆」記号は、それらが（Verilog RTL記述等で）連接処理されることを例示しており、論理回路上は１つの信号として扱われることを例示している。
【００２７】
図５は、第１の変換部１０４１の構成の一例を示す図である。
信号ｓｉｇ＿５００は、リコンフィギュラブル回路１０４への入力信号であり、被処理データにあたる（図２を参照）。入力信号ｓｉｇ＿５００は、図３に示すように定義される第１の画素アトリビュート形態をとり、有効ステータス信号（不図示）と共に１６ｂｉｔデータとして前段回路より送信される。
【００２８】
信号ｓｉｇ＿５０４は、リコンフィギュラブル可能なレジスタ値であり、図２に示した制御部１０４０から不図示の更新ステータス信号と共に転送される。当該更新ステータスの指示によってＦＦ回路１０４１１のレジスタ値は更新される。
ＦＦ回路（フリップフロップ回路）１０４１０は、有効ステータス信号の状態によって（例えば、Ｈｉｇｈ状態時のクロックの立ち上がりで）、信号ｓｉｇ＿５０１の値をそのときの信号ｓｉｇ＿５００値に更新する。ＦＦ回路１０４１０は、信号ｓｉｇ＿５００に対するタイミング改善や配線混雑緩和対策のための信号（ＬＳＩ化のための実装技術）である。図５および図６には、ＦＦ回路１０４１０と同様に、タイミング改善や配線混雑緩和対策用のＦＦ回路を示す。これらは、内部に選択的な切り替え部を多用するリコンフィギュラブル回路の構成としては、必要な構成要素である。但し、ＦＦ回路の実装（位置、有無、個数等）について、ここで限定するものではない。
【００２９】
ＦＦ回路１０４１１は、データパス中のオフセットクランプ値を保持するために実装される。信号ｓｉｇ＿５０５のｂｉｔ幅は、信号ｓｉｇ＿５００のｂｉｔ幅と同じで構わない。例えば、信号ｓｉｇ＿５０５のｂｉｔ幅は、１６ｂｉｔ相当であり、画像に対する設定黒レベルによってはそれ以下のｂｉｔ数でも構わない。イメージセンサーからの撮像データは、暗電流等のオフセット成分が重畳されるため本来の黒レベルにならない。ＦＦ回路１０４１１は、ＡＬＵによる信号処理中に乗算が入った場合に、このオフセット成分までゲインがかからないようにするため、前処理として目標値（レジスタ１０４１１のレジスタ設定値）をクランプする。
【００３０】
既にクランプされたデータが入力される場合には、レジスタ値を０に設定することでこの機能をキャンセルすることが出来る。本実施形態では、加算器（減算器）１０４１５の出力は、１７ｂｉｔの符号付きデータであり、演算結果を示す信号ｓｉｇ＿５０６のＭＳＢ（Most-Significant Bit）は符号ｂｉｔとして扱われる。
【００３１】
尚、以上のクランプ処理自体は、画素アトリビュート形態の変換処理とは直接は関係しないが、ハードウェアとしての実装位置はちょうどこの位置に来る。即ち、クランプ前のデータの画素アトリビュートの値を検出し、クランプ後のデータに対して画素アトリビュートの値を示すフラグを添付する。そこで、クランプ処理も例示に含めている。また、信号ｓｉｇ＿５０５が示すレジスタ値は、信号ｓｉｇ＿５０６のｂｉｔ幅で加算（減算）結果がクリップしない様に設定されているものとする。または、この位置に正負クリップ回路（リミッタ）を挿入しても良い。
【００３２】
信号ｓｉｇ＿５０２は、比較器１０４１４における比較値（基準値）を示す信号である。信号ｓｉｇ＿５０１が０値（図３（ａ）に示す「飽和画素」を示す値）であること検出するために、信号ｓｉｇ＿５０２の値は、０値に設定される。図５では、この値が固定値であるとして縮退表現しているが、必要に応じて、信号ｓｉｇ＿５０５と同様に制御部１０４０からレジスタ値として設定する様にしても良い。
【００３３】
信号ｓｉｇ＿５０３は、任意の画素の飽和状態を示すフラグ信号である。信号ｓｉｇ＿５０３は、第１の変換部１０４１が第１の画素アトリビュート形態として０値を受信したときに、飽和画素であることを示すフラグ値として１値を伝送するためのものである。信号ｓｉｇ＿５０７は、クランプ後の信号ｓｉｇ＿５０６と、フラグ値を示す信号ｓｉｇ＿５０３とをバインドした信号である。この信号のデータ幅は、図４を参照しながら説明したように合計１８ｂｉｔである。信号ｓｉｇ＿５０７は、ＦＦ回路１０４１３で一旦保持され、信号ｓｉｇ＿５０８として後段（ＡＬＵ群１０４３）に出力される。信号ｓｉｇ＿５０８は、ＡＬＵ群１０４３内にバラ撒かれる信号（ファンアウトが大きい信号）である。ＦＦ回路１０４１３は、そのタイミング改善や配線混雑緩和対策のためのものである。
【００３４】
図６は、第２の変換部１０４２の構成の一例を示す図である。
信号ｓｉｇ＿６０１は、任意のＡＬＵ１０４３１から出力される信号である。信号ｓｉｇ＿６０１は、ＡＬＵ群１０４３内のセレクタ１０４３２によって選択されたＡＬＵ１０４３１の出力（前述の様、符号付きデータ１７ｂｉｔと飽和フラグ１ｂｉｔ）である。セレクタ１０４３２にはＡＬＵ群１０４３中のＡＬＵ１０４３１の全てまたは一部が接続される。
ＦＦ回路１０４２１は、信号ｓｉｇ＿６０１に対するタイミング改善や配線混雑緩和対策のためのものである。ＦＦ回路１０４２１からの出力は、画素データを示す上位１７ｂｉｔの信号ｓｉｇ＿６０２と、飽和画素フラグを示す最下位ｂｉｔの信号ｓｉｇ＿６０６とに分離される。信号ｓｉｇ＿６０２は、加算器１０４２２へ出力され、信号ｓｉｇ＿６０６はセレクタ１０４２４へ出力される。
【００３５】
ＦＦ回路１０４２０は、信号ｓｉｇ＿６０２に対する信号処理中の設定黒レベルを再現するためのポストセットアップ値を示す信号ｓｉｇ＿６１１を保持するレジスタである。ＦＦ回路１０４０２０のレジスタ値は、制御部１０４０より（信号ｓｉｇ＿６０３として）供給され、回路コンフィギュレーション時に必要に応じて更新される。
信号ｓｉｇ＿６０４は、画素データを示す信号ｓｉｇ＿６０２に、設定黒レベルを再現するためのポストセットアップ値を示す信号ｓｉｇ＿６１１を加算した結果を示す信号である。リミッタ回路１０４２７は、当該ポストセットアップ値を加算してもなお信号ｓｉｇ＿６０４が負値の場合に、信号ｓｉｇ＿６０４の値を０値にクリップする。また、リミッタ回路１０４２７は、ポストセットアップ値が加算された後の信号の値の最大値を６５５３５値にクリップする。リミッタ回路１０４２７から出力される信号ｓｉｇ＿６１２は、符号なしの（正の）１６ｂｉｔデータとする。
【００３６】
比較器１０４２６は、リミッタ回路１０４２７から出力される信号ｓｉｇ＿６１２と信号ｓｉｇ＿６１０とを比較する。本実施形態では、第１の画素アトリビュート形態において、信号の値が０値の場合には、当該信号で示される画素は飽和画素であるとしている。そこで、ここでは、信号ｓｉｇ＿６１０の値を固定値の０値とする。比較器１０４２６は、リミッタ回路１０４２７から出力される信号ｓｉｇ＿６１２の値が０値のときに、ｓｉｇ＿６０５に１値を出力し、そうでないときに、０値を出力する。回路的には、信号ｓｉｇ＿６１０を０値に縮退しておけば良いが、信号ｓｉｇ＿６１０の値を制御部１０４０からのレジスタ設定値としても良い。
【００３７】
セレクタ１０４２３は、比較器１０４２６から出力される信号ｓｉｇ＿６０５が０値であれば信号ｓｉｇ＿６１２の値を信号ｓｉｇ＿６０７として出力し、１値であれば信号ｓｉｇ＿６１３の値を信号ｓｉｇ＿６０７として出力する。本実施形態では、信号ｓｉｇ＿６１３の値は、１値の固定値である。これは前述の様に、飽和画素を示す値として０値を割り当てたための回避措置で、ＡＬＵ１０４３１の演算結果、０値となった画素を１値に置換して疑似的な画素アトリビュートを発生させないためである。比較器１０４２６から出力される信号ｓｉｇ＿６０５が１値である場合に信号ｓｉｇ＿６０７に割り当てる値を変更する場合には、信号ｓｉｇ＿６１３の値を制御部１０４０からのレジスタ設定値としても良い。
【００３８】
セレクタ１０４２４は、信号ｓｉｇ＿６０６の値が０値であれば信号ｓｉｇ＿６０７の値を信号ｓｉｇ＿６０８として出力し、１値であればｓｉｇ＿６１０の値を信号ｓｉｇ＿６０８として出力する。信号ｓｉｇ＿６０６は、図４に示す画素データにバインドされた画素アトリビュートの値を当該画素データから分離した１ｂｉｔのステータスフラグである。従って、飽和画素のステータスを持つデータは、画素アトリビュートの値としてここで置換される。ＦＦ回路１０４２５は、タイミング改善や配線混雑緩和対策のため（外部モジュールまでのバスがクリティカルパスにならない様にするため）のものである。ＦＦ回路１０４２５から信号ｓｉｇ＿６０９が出力される。
【００３９】
図７は、ＡＬＵ１０４３１の内部構成の一例を示す図である。
ＡＬＵ群１０４３には、大抵、数１０〜数１００のＡＬＵが含まれ、かなりの回路規模を割いて実装されるため、省電対策が求められる。ＡＬＵ群１０４３に供給されるクロックは、例えば、図５を参照しながら説明した不図示の有効ステータス信号の受信時にのみ投入される様、ゲーテッドクロック構成を用いても良い（尚、実際には、内部レイテンシを考慮したクロックの供給が必要である）。
【００４０】
信号ｓｉｇ＿７１０〜７１６およびｓｉｇ＿７１９は、制御部１０４０から配給される回路パラメータであり、夫々、ＦＦ回路７１３〜７１９および７２１で、当該信号の値が保持される。図が煩雑になるので、図５、図６と同様にこれらＦＦ回路の更新ステータスは不図示とする。また、制御部１０４０への回路アップデート要求は、幾つかのＡＬＵを用いて図８を参照しながら後述するパルス生成回路を用いても行われる様にしても良い。
【００４１】
本実施形態では、ＡＬＵ１０４３１は、２入力１出力の算術演算回路であるものとする。ＡＬＵ１０４３１の２入力中の各入力の遅延量を独立して調整することが可能であり、該２入力は内部の演算器の直前で位相が揃う様に設定される。信号ｓｉｇ＿７０１は、第１の入力信号であり、前段のＡＬＵからの出力や、第１の変換部１０４１からの出力のうちの１つである。
セレクタ７００は、信号ｓｉｇ＿７０１を含む入力信号群から、ＦＦ回路７１６の設定値に従い信号を選択して信号ｓｉｇ＿７０２として出力する。多段の遅延素子７０１は、データｂｉｔ幅のＦＦ回路をカスケード接続したシフトレジスタ構成で実現される。このときの何段目のＦＦ回路の出力を後段に出力するのかを、ＦＦ回路７１５に設定することで遅延量が調整される。
【００４２】
本実施形態におけるＡＬＵ１０４３１は、第２の画素アトリビュート形態をとる。従って、信号ｓｉｇ＿７０３のＬＳＢ（ｂｉｔ０）は画素アトリビュートを示すフラグとなっている。当該フラグｂｉｔは、後段に伝達するために演算器には入力せず、同位相状態で演算後の信号ｓｉｇ＿７０７にマージされ、信号ｓｉｇ＿７０８としてＦＦ回路７０９に入力される。
画素アトリビュートを示すフラグである信号ｓｉｇ＿７０３のＬＳＢ（ｂｉｔ０）は、途中、ＡＮＤ素子７１０と、ＯＲ素子７１２とを経由する。これは、ＦＦ回路７１３の設定値によって画素アトリビュートを示す信号の伝送をマスクすることと、必要に応じてＡＬＵ１０４３１の他方の入力信号（信号ｓｉｇ＿７０４）の画素アトリビュートの状態とマージ（または置換）することを可能にするためである。これらを反映した状態の信号ｓｉｇ＿７１７が、信号ｓｉｇ＿７０７にマージされ、信号ｓｉｇ＿７０８としてＦＦ回路７０９に入力される。
【００４３】
ＡＬＵ１０４３１の２入力信号の他方である信号ｓｉｇ＿７０４側についても信号ｓｉｇ＿７０１側と同様であり、前述の説明の符号を図７に例示の様に読み替えるのみなので重複する説明は省略する。信号ｓｉｇ＿７０１側との差異部分として、セレクタ７２２は、演算器単体に信号ｓｉｇ＿７０６の信号値を通す代わりに付随してきた画素アトリビュートの値を選択出来る様に設定されている。信号ｓｉｇ＿７１８は、最下位ｂｉｔに画素アトリビュートの値が与えられ、それ以外のｂｉｔは０値で縮退されても良いし、画素アトリビュートの値を全ｂｉｔに展開しても良い。必要であればその両方を選択肢としても良いし、不要であればセレクタ７２２自体を設けなくても良い。セレクタ７２２は、制御部１０４０から信号ｓｉｇ＿７１９で設定されたＦＦ回路７２１の値で切り替えることが出来る。
【００４４】
信号ｓｉｇ＿７０１、ｓｉｇ＿７０４をＦＦ回路で受けていないのは、ＡＬＵ１０４３１や第１の変換部１０４１において、ＦＦ回路から信号ｓｉｇ＿７０１、ｓｉｇ＿７０４を出力しているためである。ただし、実際の半導体の配置配線時の状況によっては、信号ｓｉｇ＿７０１、ｓｉｇ＿７０４を受信するＦＦ回路をＡＬＵ１０４３１に配置しても良い。
【００４５】
本実施形態では、演算器７０４〜７０７および７２０を、実際にどの様に搭載するかは限定されない。図７に示すブロック図中の図示もイメージである。これら演算器中に記載の丸印は、加減算器や乗算器等を示し、三角形は、比較器等を示し、論理素子は、ＡＮＤ・ＯＲ・ＸＯＲ回路等を示す。ただし、これらは、実装時の要求に応じて適宜、変更、追加、削除される。また、演算器の後にビットシフトする機構を設けても良い。また、ビットシフトによる正規化や演算精度の削減において、丸め機構（四捨五入等）を設けても良い。これらＡＬＵの演算の実装についての詳細は特に限定されない。
セレクタ７０８は、演算器７０４〜７０７および７２０の演算結果をＦＦ回路７１９の設定値によって選択して信号ｓｉｇ＿７０７として出力する。
前述した様に、信号ｓｉｇ＿７０７は、画素アトリビュートを示す信号ｓｉｇ＿７１７とマージされた信号ｓｉｇ＿７０８としてＦＦ回路７０９に一旦保持される。ＦＦ回路７０９からの出力は、信号ｓｉｇ＿７０９として他のＡＬＵに入力される他、第２の変換部１０４２に入力される。第２の変換部１０４２への出力は、図６に示したセレクタ１０４３２の例示の様に、ＡＬＵ群１０４３内での選択後で良い。
また、ＦＦ回路７０９からの出力は、回路のアップデート要求信号として利用可能な様に、制御部１０４０に出力される。制御部１０４０への出力は、ＡＬＵ群１０４３内において、図８を参照しながら後述するセレクタ８０２を介した後で良い。
【００４６】
図８は、ＡＬＵ１０４３１により構成されるパルス生成回路の一例を示す図である。
図８において、ＡＬＵ１０４３１ａ、１０４３１ｂは、ＡＬＵ１０４３１の機能のうち、ＡＬＵ１０４３１にレジスタ経由でパラメータ指示を与えることにより得られる要部機能のみを例示するものである。ＡＬＵ１０４３１ａ、１０４３１ｂの内部において夫々に描写している小さい四角形は、ＦＦ回路を示す。特に入力側の四角形は、遅延素子７０１（または７０３）を示す。
【００４７】
ＡＬＵ１０４３１ａは、カウンタ（積算回路）を構成する。ＡＬＵ１０４３１ａは、２入力のうちの１入力のみ使用し、演算器における他方の入力はＡＬＵ自身の出力段のＦＦ回路の出力とする（ＡＬＵ１０４３１ａが、図７に示す演算器７２０である場合を例示する）。ＡＬＵ群１０４３がゲーテッドクロック動作をしている場合、有効データを処理する毎にクロックが１周期分発生する（不図示）。従って、この様な構成の場合、信号ｓｉｇ＿８０１を１値に固定とすることで有効データを処理する毎に１値ずつインクリメントするカウンタを実現することが出来る。
【００４８】
ＡＬＵ１０４３１ｂは、比較器を構成する。ＡＬＵ１０４３１ｂは、ＡＬＵ１０４３１ａのカウント値が信号ｓｉｇ＿８０３と等価なときに「Ｔｒｕｅ」、それ以外のときに「Ｆａｌｓｅ」と判定し、「Ｔｒｕｅ」と判定したときにのみ１値を出力する。信号ｓｉｇ＿８０１が有効データとして連続して処理される場合、信号ｓｉｇ＿８０４は、パルスとしてセレクタ８０２に入力され、セレクタ８０２が信号ｓｉｇ＿８０４を選択している状態にあれば、信号ｓｉｇ＿８０５として制御部１０４０へ出力される。図８に示す例では、ＡＬＵ１０４３１ｂ（比較器）が「Ｔｒｕｅ」と判定したときの出力は１値、「Ｆａｌｓｅ」と判定したときの出力は０値のフラグステータスとして後段に転送できる。信号ｓｉｇ＿８０５が制御部１０４０への制御信号使途のみであれば、セレクタ８０２はＬＳＢ（ｂｉｔ０）のみを取り扱わせる、といった実装でも良い。
【００４９】
本実施形態におけるＡＬＵ１０４３１のセレクタ７００または／および７０２は、入力される信号の選択に際し、制御部１０４０の持つ多目的レジスタ（不図示）のレジスタ値を用いることが出来る。信号ｓｉｇ＿８０１、ｓｉｇ＿８０３の値は、制御部１０４０で設定された多目的レジスタ値とすることが出来る。
ＡＬＵ１０４３１ａ（カウンタ）における積算値の上限は、内部処理ｂｉｔ幅による。内部を符号付きの１７ｂｉｔで処理する場合には、正の６５５３５値が積算値の上限である。６５５３５値を超える積算をするのであれば、ＡＬＵ１０４３１ａ、１０４３１ｂを１セットとするカウンタ構成を複数用意してカスケードに接続し、信号ｓｉｇ＿８０４相当のパルスを後段のカウンタにカウントさせれば良い。
【００５０】
ゲーテッドクロック構成の場合、クロックがこない場合のロジックは保持される。そのため、図８の構成のままだと、信号ｓｉｇ＿８０４（ｓｉｇ＿８０５）が「Ｔｒｕｅ」を示す値の状態のまま保持される場合がある。そこで、信号ｓｉｇ＿８０４（ｓｉｇ＿８０５）を受信する回路が随時クロック入力される回路であれば、該信号ｓｉｇ＿８０４（ｓｉｇ＿８０５）とクロックを止めた要因とのＡＮＤ（論理積）として１クロックサイクル分のパルスとする必要がある。尚、信号ｓｉｇ＿８０４（ｓｉｇ＿８０５）を受信する回路は、制御部１０４０等である。また、これらの構成は公知の技術で実現することが出来るので、その詳細な説明を省略する。
【００５１】
本実施形態では、図７に示す様にＡＬＵ１０４３１を構成する場合を例示した。しかしながら、ＡＬＵ１０４３１の構成要素は多岐にわたる。リコンフィギュラブル回路１０４のＡＬＵ群１０４３内に複数の異なる仕様のＡＬＵが存在しても良い。例えば、ＡＬＵは、精度の高い乗算器や、比較器の比較結果をフラグとして出力するものや、複数サイクルをかけて除算する機能を有するもの等であっても良く、任意のＡＬＵの持つ演算の種類を限定はしない。
【００５２】
また、本実施形態では、説明の簡素化のために、入力選択・遅延調整・演算をひとつのＡＬＵ１０４３１内に実装する場合を例示した。しかしながら、夫々が別のエレメントとしてＡＬＵ群１０４３内に配置されていても良く、１ＡＬＵの機能の構成を限定はしない。また、同様に、図６に示すセレクタ１０４３２や、図８に示すセレクタ８０２の様なセレクタがＡＬＵ群１０４３の階層に実装されていても良い。不図示であるが、図２に示すＳＲＡＭ１０４４へのＩ／Ｆとして、任意のＡＬＵとＳＲＡＭ１０４４とを選択的に接続するセレクタを実装しても良い。画素アトリビュートのＳＲＡＭ１０４４を介在した伝送は、フラグｂｉｔも記憶対象としてＳＲＡＭ１０４４に格納・読出しをすることで可能である。ＳＲＡＭ１０４４にアクセスするためのアドレスの生成はＡＬＵで行っても良いし、別途制御部を設けて行っても良い。ＳＲＡＭ１０４４への書き込み・読出しステータス信号は、ＡＬＵで生成しても良い。ＡＬＵ群１０４３とＳＲＡＭ１０４４とのＩ／Ｆとしては、データ線の他、アドレス信号、ステータス信号等がある。
【００５３】
＜リコンフィギュラブル回路１０４の処理例＞
本実施形態では、イメージセンサーの分割画素を用いた瞳分割方式によるデフォーカス量を用いて距離マップを形成する処理の一部をリコンフィギュラブル回路１０４で実施する際の飽和画素の画素アトリビュートの伝送を例示する。分割画素を持つイメージセンサーについては、例えば、特許文献３に記載されている。また、視差画像に対応した距離マップの取得については、例えば、特許文献４に記載されている。飽和画素の相関演算への影響低減については、例えば、特許文献５に記載されている。
【００５４】
図９は、撮影画像（視差画像）からデフォーカス量を検出して距離マップを作成する処理の一例を示すフローチャートである。前述した公報に記載の様に、撮像面からの視差画素の取得、および、距離マップの生成自体は、公知の技術である。ここでは、距離マップの取得のための演算処理（の一部）をリコンフィギュラブル回路１０４で実施する際の画素アトリビュートの伝送を実現する処理の部分のみを説明し、距離マップの生成自体の詳細な説明を行わない。視差画像は分割画素の形状にもよるが、本実施形態では、縦目、横目等２分割画素を例示し、夫々の像をＡ像、Ｂ像とする。
【００５５】
図９において、リコンフィギュラブル回路１０４は、視差画像（Ａ像、Ｂ像夫々）から輝度値（以下、Ｙ値と称する）を取得する信号処理を行う（ステップＳ９０１、Ｓ９０５）。次に、リコンフィギュラブル回路１０４は、視差間の相関演算を行う（ステップＳ９０２）。次に、リコンフィギュラブル回路１０４は、ステップＳ９０３の相関演算で得た視差間の相対的な像ずれ量からデフォーカス量を推定し（ステップＳ９０３）、レンズ収差による面内のデフォーカス量のムラを補正する（ステップＳ９０４）。
【００５６】
本実施形態では、図９のステップＳ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０４の夫々のステップにて、リコンフィギュラブル回路１０４内のＡＬＵ１０４３１の構成を切り替える様にする。そこで、ステップＳ９０１（およびＳ９０５）、Ｓ９０２、Ｓ９０３、Ｓ９０４において、それぞれ、ＡＬＵ１０４３１の構成に係る回路情報９０１、９０２、９０３、９０４を用いる。全体の画像処理を完遂するための、夫々の回路情報９０１〜９０４を含む回路情報や、制御部１０４０への制御命令（インストラクション・コード）は、１つの設定情報１０１１としてコンパイルされた状態でＲＯＭ１０１に格納される。装置が動作する際には、高速にリコンフィギュラブル回路１０４に必要な情報を転送する必要がある。従って、ＣＰＵ１００は、装置立ち上げ時（または任意の準備段階）にＲＡＭ１０２に設定情報１０１１を展開しておく。回路情報９０１〜９０４は、リコンフィギュラブル回路１０４の初期化要求時含む回路更新要求時に、適宜ＲＡＭ１０２から読み出される。尚、回路情報９０１〜９０４の読み出し開始のイベント自体は、制御部１０４０に対してＣＰＵ１００が指示することにより実行されるようにしても良い。
【００５７】
リコンフィギュラブル回路１０４内の制御部１０４０は、回路情報９０１に基づいて、図５、６、７を参照しながら例示した様なレジスタ値を各モジュールに配送する。リコンフィギュラブル回路１０４の回路コンフィギュレーションに係るレジスタは、制御部１０４０内のプライマリレジスタ（不図示）、セカンダリレジスタのダブルバッファの構成を取ることで、現在回路が動作中に次期回路展開を実行することが可能である。尚、セカンダリレジスタは、図５〜７等でＦＦ回路として例示した夫々のレジスタである。これにより、回路更新にかかる処理時間を画像処理から隠すことが出来る。制御部１０４０は、回路情報９０１に基づいて、プライマリレジスタに値を展開後、プライマリレジスタに展開した値を各モジュールに搭載したセカンダリレジスタにも展開する。制御部１０４０は、プライマリレジスタ値をセカンダリレジスタに展開した後に、プライマリレジスタの値を次の回路情報に更新すべく、ＲＡＭ１０２に対して回路情報９０２の転送を要求する。この一連の動作指示命令は、設定情報１０１１中にインストラクション・コードとして記載しておくことが出来る。ステップＳ９０１およびＳ９０５の処理の後に、ステップＳ９０２で用いられる回路情報９０２をＡＬＵ群１０４３に展開する、といったシーケンスは、インストラクション・コードを用いると良い。
【００５８】
図９の夫々のステップの完了時に、任意のＡＬＵ１０４３１において図８で例示した様なパルス生成回路を用いて、各モジュールのセカンダリレジスタの更新要求を制御部１０４０に対して出力する。例えば、受信画素数によって回路を切り替えることが出来る（フレーム処理完了を含む）。パルスの生成のための処理イベントは、適宜、システムの要求に沿う様に定義すれば良い。また、制御部１０４０への回路の更新要求は、パルス信号に限定するものではない（信号のレベル受けとしても良い）。
【００５９】
図９において、飽和画素の画素アトリビュートを扱う処理として、Ｙ値の取得処理（ステップＳ９０１（およびＳ９０５））、相関演算の処理（ステップＳ９０２）の一例を、夫々、図１０、図１１に例示する。尚、ここでは、飽和画素の画素アトリビュートの扱いを主眼とするので、デフォーカス量の推定処理（ステップＳ９０３）とレンズ収差の補正処理（ステップＳ９０４）については、詳細な説明を省略する。
【００６０】
図９の処理ルーチンは、ステップ単位が処理回路の構成単位であり、各ステップでフレーム全体の処理が進められるよう、適宜回路情報が更新される。図１０、図１１は、夫々図９の１ステップ（サブルーチン）であり、ＡＬＵ１０４３１で構成する回路、および、第１の変換部１０４１、第２の変換部１０４２で行われる処理を１つのステップとして例示している。従って、図１０、図１１では、各ステップで、任意の画素（または任意のブロック等処理単位）の処理が行われるよう、所望の回路パスが適用される。
【００６１】
図１０は、Ｙ値を取得する際の処理（ステップＳ９０１およびＳ９０５）の一例を示すフローチャートである。本実施形態では、図１において、処理対象のフレームデータ１０３１（ＲＡＷ画像・視差像データ）は、記録メディア１０３からＲＡＭ１０２に展開され、リコンフィギュラブル回路１０４へ読み出される場合を例示する。この視差像データのＡ像、Ｂ像夫々の画素は、既にセンサー補正（黒レベル再現、シェーディング補正、リニアリティー補正、欠陥補正等）が施されているものとする。
【００６２】
ステップＳ１００１において、リコンフィギュラブル回路１０４は、飽和画素処理を行う。具体的にリコンフィギュラブル回路１０４は、各画素の信号値（画素値）が予め設定された一定の飽和レベル（閾値）に達した否かを判定する。リコンフィギュラブル回路１０４は、画素が飽和レベルに達している場合には、その画素を飽和画素であると判定し、第２の画素アトリビュート形態に則り（図４（ｂ）参照）、フラグｂｉｔ値を１値とする。
【００６３】
次に、ステップＳ１００２において、リコンフィギュラブル回路１０４は、輝度シェーディング補正（光学系に対する補正）を行う。このとき、像高が高い位置での口径食の影響や、マイクロレンズへの光束の入射角が大きい場合の分割画素間のクロストーク等の補正を含めても良い。像高をパラメータとするが、実力的に水平方向のシェーディング補正で事足りるならば、ＡＬＵ１０４３１の消費量を節約出来る。飽和画素を示す画素アトリビュートの値は、ステップＳ１００２の処理後も保存される。
【００６４】
次に、ステップＳ１００３において、リコンフィギュラブル回路１０４は、ビニング処理によるＹ値の生成を行う。例えば、ベイヤー配列の撮像素子から取得したＲＡＷ画像であれば、格子状の４画素単位を輝度値の最小単位と定義して、リコンフィギュラブル回路１０４は、各色（Ｒ／Ｇｒ／Ｇｂ／Ｂ）の値加算することでＹ値を取得する。このとき、加算対象の画素の何れかに画素アトリビュートを示すフラグの立った（画素アトリビュートの値が１値である）画素が存在する場合には、生成したＹ値の画素アトリビュートの値も１値とする。
【００６５】
本実施形態では、既に記録メディア１０３に記録済みのＲＡＷ画像からＹ値を生成する場合を例示する。従って、Ｙ値は、ＡＦ用途のような解像度ではなく、現像時のアプリケーション用途（画像認識等で主被写体の位置を把握する等の用途）として画像ファイルに添付し、記録しておける程度の情報量に圧縮しても良い。アプリケーションの許容範囲内で画像圧縮もかねて複数ベイヤーから１つのＹ値を生成する様にしても良い。
【００６６】
次に、ステップＳ１００４において、リコンフィギュラブル回路１０４は、画素アトリビュート形態の変換（画素アトリビュートの値の第２の画素アトリビュート形態から第１の画素アトリビュート形態への変換）を行う。この変換は、データが第２の変換部１０４２を通過すれば成立する。ステップＳ１００４の処理後のリコンフィギュラブル回路１０４から出力されるデータは、第１の画素アトリビュート形態となり、ＲＡＭ１０２に一時的に格納される。
図１０の処理ステップは、ステップＳ９０１、Ｓ９０５において、各視差画像（本実施例では、Ａ像・Ｂ像）に対して実施される。
【００６７】
図１１は、視差画像間の相関演算を行う際の処理（ステップＳ９０２）の一例を示すフローチャートである。リコンフィギュラブル回路１０４は、ステップＳ９０１、Ｓ９０５を経たＡ像、Ｂ像のＹ値データの夫々を、一時的に格納したＲＡＭ１０２より読み出す。ＡＦ用途であれば、ＡＦ枠単位に相関演算を実施する。一方、距離マップの取得の際には、画像全体の相関演算の結果を取得するため、任意のブロック単位で像ずれ量が導出される。
【００６８】
ステップＳ１１０１において、リコンフィギュラブル回路１０４は、画素アトリビュート形態の変換（画素アトリビュートの値の第１の画素アトリビュート形態から第２の画素アトリビュート形態への変換）を行う。任意のブロック単位でＲＡＭ１０２から読み出すＹ値データは第１の画素アトリビュート形態になっている。リコンフィギュラブル回路１０４は、第１の変換部１０４１で画素アトリビュートの値を第２の画素アトリビュート形態に変換する。
【００６９】
次に、ステップＳ１１０２において、リコンフィギュラブル回路１０４は、帯域選択のためのバンドパスフィルタ（以下、ＢＰＦと称する）をＡ像、Ｂ像のＹ値データに適用する。周波数帯域は撮影条件によって変更することが出来る。撮影条件が、ＲＡＷ画像ファイル中の撮影情報として記録されている場合、当該撮影条件に応じた周波数帯域を選択することが出来る。例えば、Ｓ／Ｎが悪いと予想される様な撮影条件下（高ＩＳＯ撮影等）では、より低域のフィルタを適用するのが好ましい。
バンドパスフィルタはデジタルフィルタである。バンドパスフィルタの垂直方向のＴＡＰは、リコンフィギュラブル回路１０４内のＳＲＡＭ１０４４で複数本のラインバッファを構成して割り当てる（不図示）。ＳＲＡＭ１０４４はメモリ制御部を含んでも良いし、前述の様にＳＲＡＭ１０４４にアクセスするためのアドレスの生成はＡＬＵで行っても良い。
【００７０】
次に、ステップＳ１１０３において、リコンフィギュラブル回路１０４は、ブロック単位の像ずれ量を算出する。像ずれ量を算出する代表的な方法としてはＳＡＤ（Sum of Absolute Difference）によるテンプレートマッチングによる方法がある。例えば、Ａ像のブロックに対してＢ像のブロックを（Ｙ画素）１画素毎にシフトしつつずれ量（差分値）の総和を取る。任意のブロック内のＡ像の画素毎に当該ブロック中のＢ像の画素との像ずれ量が求まる。分割画素が左右２分割のイメージセンサーによって得た視差画像を処理しているとすると、任意のブロックの水平方向の相関曲線が得られる。
【００７１】
次に、ステップＳ１１０４において、リコンフィギュラブル回路１０４は、サブピクセルの推定のための演算を行う。これにより、画素以下の分解能が得られる。サブピクセルの推定は、ステップＳ１１０３で得られた相関曲線に対して、等角直線フィッティングやパラボラフィッティング等の既存のフィッティングの手法から導出した演算式をＡＬＵで実行することにより実現することが出来る。距離マップの解像度はこの相関演算に入力するＹ値のフレームデータ量をどの大きさのブロックに分割するかで決定される。水平２０００画素を２０シフト程度で像ずれ量を取得するならば、出力は１００画素程度となる。ただし、本実施形態においてこの辺りの仕様は制限されない。
【００７２】
本実施形態に係る画素アトリビュートの適用として、ステップＳ１１０３の相関演算がある。飽和画素値は相関結果を狂わせ、推定される像ずれ量に誤差を発生させる虞がある。そこで、例えば、リコンフィギュラブル回路１０４は、ＳＡＤの最中に、注目画素が飽和画素値である場合に注目画素の画素値を当該注目画素の前後の画素の画素値と置換することが出来る。また、リコンフィギュラブル回路１０４は、処理ブロック中の飽和画素を計数しておき、飽和画素の計数値を信頼度の判定に使用したりすることが出来る。リコンフィギュラブル回路１０４は、或るブロックにおいて、飽和画素の計数値が所定数以上となった場合、当該ブロックより得られた距離マップ値を信頼しないものとすることが出来る。
【００７３】
例えば、任意のＡＬＵ１０４３１において、図７に例示したセレクタ７２２を画素アトリビュート側に選択し、演算器７２０が加算器であるとしてセレクタ７０８で演算器７２０を選択すれば、ＦＦ回路７０９で飽和画素の計数値を積算することが出来る。
【００７４】
図１１に例示する全てのステップを賄うＡＬＵが無い場合には、回路情報をステップで分割して、コンフィギュレーションのステージを増やしても良い。例えば、ＳＲＡＭ１０４４の容量の都合上、ステップＳ１１０２とステップＳ１１０３との間で一旦データをＲＡＭ１０２に格納して、回路のコンフィギュレーションを挟む必要な場合が想定される。この場合、リコンフィギュラブル回路１０４は、ステップＳ１１０２の後に一旦第２の変換部１０４２を介して、飽和画素の画素アトリビュートの値を第１の画素アトリビュート形態に変換し、ＲＡＭ１０２に再格納させる。そして、リコンフィギュラブル回路１０４は、ＲＡＭ１０２から、第１の画素アトリビュート形態に変換された飽和画素の画素アトリビュートの値を入力し、第１の変換部１０４１を介して、第２の画素アトリビュート形態に変換する。
【００７５】
以上のように本実施形態では、多数の演算回路を通過するリコンフィギュラブル回路１０４の内部では、画素アトリビュートの値をフラグとしてデータにバインドする形態（第２の画素アトリビュート形態）で画素アトリビュートの値を伝送する。リコンフィギュラブル回路１０４と外部との間では、画素アトリビュートの値として画素値に０値を割り当てる形態（第１の画素アトリビュート形態）で画素アトリビュートの値を伝送する。そのために、リコンフィギュラブル回路１０４は、第１の画素アトリビュート形態を第１の変換部１０４１により第２の画素アトリビュート形態に変換可能な回路構成とする。また、リコンフィギュラブル回路１０４は、この変換された第２の画素アトリビュート形態を第２の変換部１０４２により第１の画素アトリビュート形態に変換可能な回路構成とする。従って、ＡＬＵを多数含むリコンフィギュラブル回路と、一次記憶部と、を含むデータパスにおいて、画素アトリビュートの値の伝送による、バス帯域の増加の回避・コストの低減・設計および検証工数の削減を実現することが可能になる。よって、画素アトリビュートの値を伝送環境に応じて適切に伝送することが出来る。
【００７６】
第１の画素アトリビュート形態および第２の画素アトリビュート形態の適用対象は、本実施形態で説明したものに限定されない。例えば、リコンフィギュラブル回路以外の多数の演算回路を備える部分に第２の画素アトリビュート形態を適用し、当該演算回路と外部との通信を行う部分に第１の画素アトリビュート形態を適用することが出来る。
また、画素アトリビュート（属性）は、飽和画素（感度不良）に限定されない。例えば、欠陥画素（傷）および機能画素（像面位相差ＡＦ用の視差取得画素）の少なくとも１つを飽和画素（感度不良）に代えてまたは加えて画素アトリビュート（属性）としても良い。尚、機能画素は、記録あるいは表示のための撮像画像を構成する用途とは異なる用途に使用する信号を出力する画素である。複数の画素アトリビュートを扱う場合、第１の画素アトリビュート形態においては、画素アトリビュートに応じた相互に異なる２つの画素値を画素アトリビュートの値として割り当てる。また、第２の画素アトリビュート形態においては、各画素アトリビュートの値をバインドして１つの信号として取り扱う。
【００７７】
（第２の実施形態）
次に、第２の実施形態を説明する。第１の実施形態では、第２の画素アトリビュート形態として、図４に例示した様に、画素データとしての符号付き１７ｂｉｔのデータに、画素アトリビュートの値を示す値として１ｂｉｔのデータをバインドする形態を例に挙げて説明した。これに対し、本実施形態では、第２の画素アトリビュート形態が、画素アトリビュートの値を画像データ中の一部のｂｉｔ値と置換する形態を例に挙げて説明する。
【００７８】
画像処理装置が大規模なＳＲＡＭ（複数ライン分のラインバッファ等）を搭載する場合、データにステータスをバインドしたままＳＲＡＭに格納する様にシステム構成するのはコスト増に繋がる虞がある。この場合、第２の画素アトリビュート形態として、画素値の一部をステータスと置換する形態は、第１の実施形態で説明した第２の画素アトリビュート形態よりも有利である。ただし、画像データの有効ｂｉｔの一部をステータスに置換することは、演算精度を落とすことに繋がる虞がある。従って、本実施形態の第２の画素アトリビュート形態は、例えば、画素アトリビュートの値を使用しない使途が主であるパス構成や、データのｂｉｔ幅が十分にあるパス構成に有効である。尚、データのｂｉｔ幅が十分にあるパス構成としては、例えば、処理の途中では演算精度を得るために小数点以下まで演算し、出力段で小数点以下を丸める様なパス構成が挙げられる。
【００７９】
以上のように本実施形態と第１の実施形態とは、第２の画素アトリビュート形態が異なることによる構成および処理が主として異なる。従って、本実施形態の説明において、第１の実施形態と同一の部分については、詳細な説明を省略する。
【００８０】
図１２は、本実施形態における第２の画素アトリビュート形態のフォーマットの一例を示す図である。図１２（ａ）は、元の画素データの各ｂｉｔの扱いの一例を示す。図１２（ｂ）は、第２の画素アトリビュート形態として、最下位ｂｉｔ（ｂｉｔ０）を画素アトリビュートの値に置換した形態の一例を示す。
図１２（ａ）では、画素データが、符号付きの１７ｂｉｔのデータである場合を例示する。第１の実施形態でも言えることであるが、リコンフィギュラブル回路１０４に対して入出力されるデータのｂｉｔ幅と、ＡＬＵ１０４３１内のデータのｂｉｔ幅とが整合している必要は無い。また、ＡＬＵ１０４３１内において精度の高いｂｉｔ（例えば２０ｂｉｔ等）で演算処理を実施して、第２の変換部１０４２（リコンフィギュラブル回路１０４の出口）において、リコンフィギュラブル回路１０４から出力すべきｂｉｔ幅にデータを丸めても良い。
【００８１】
図１３は、本実施形態における第１の変換部１３００の構成の一例を示す図である。図１３に例示する第１の変換部１３００は、図５に例示する第１の変換部１０４１に替わるものである。図１３に例示する部分のうち、図５に例示する部分と同じ部分についての詳細な説明を省略する。
図１３において、信号ｓｉｇ＿１３０１は、図３（ａ）に示す形態のデータである。画素アトリビュートの値の伝送を不要とする回路コンフィギュレーション時には、ＦＦ回路１３０７に０値を設定して、セレクタ１３０５に、画素データのＬＳＢを通す様にすれば良い。
ＦＦ回路１３０１は、図５におけるＦＦ回路１０４１０と同じである。信号ｓｉｇ＿１３０２は、オフセットクランプ値であり、ＦＦ回路１３０２に保持される。信号ｓｉｇ＿１３０２、ＦＦ回路１３０２、加算器（減算器）１３０３は、それぞれ図５における信号ｓｉｇ＿５０４、ＦＦ回路１０４１１、加算器（減算器）１０４１５と同じである。ただし、図１３における出力データのｂｉｔ幅は、図１２の設定に整合しているものとする。また、信号ｓｉｇ＿１３０８、比較器１３０４、信号ｓｉｇ＿１３０４は、それぞれ図５における信号ｓｉｇ＿５０２、比較器１０４１４、フラグ信号ｓｉｇ＿５０３と同じである。
【００８２】
本実施形態では、ＦＦ回路１３０７とセレクタ１３０５とを設けて、画素アトリビュートの値を、画像データの最下位ｂｉｔに置換する。第１の実施形態と同様、第１の画素アトリビュート形態の値（飽和画素を示す値）として、０値を割り当てる場合（図３と同様）を例示する。信号ｓｉｇ＿１３０８は０値に縮退しているとして、信号ｓｉｇ＿１３０１が０値のときに信号ｓｉｇ＿１３０４は１値となる。画素アトリビュートの扱いが有効とするならば、制御部１０４０は、ＦＦ回路１３０７を１値に設定する。これにより、セレクタ１３０５は、信号ｓｉｇ＿１３０４を選択し、信号ｓｉｇ＿１３０５として出力する。一方、画素アトリビュートを用いない場合、セレクタ１３０５は、信号ｓｉｇ＿１３０３の最下位ｂｉｔを選択し、信号ｓｉｇ＿１３０５として出力する。
【００８３】
信号ｓｉｇ＿１３０６は、信号ｓｉｇ＿１３０３のｂｉｔ０を除く上位ｂｉｔの値として当該ｓｉｇ＿１３０３の各ビットの値を有し、ｂｉｔ０の値として信号ｓｉｇ＿１３０５の値を有する信号であり、ＦＦ回路１３０６の入力となる。ＦＦ回路１３０６は、図５に例示したＦＦ回路１０４１３と同じである。ＦＦ回路１３０６の出力がそのまま第１の変換部１３００から出力される信号ｓｉｇ＿１３０７となる。
本実施形態では、ＦＦ回路１３０７の設定によって、画素アトリビュートの値の伝送のＯＮ／ＯＦＦを行うことが出来る。第１の実施形態においても、比較器１０４１４の出力を常時０値とするマスク機能を実装することで、同様の制御は可能である。
【００８４】
図１４は、本実施形態における第２の変換部１４００の構成の一例を示す図である。図１４に例示する第２の変換部１４００は、図６に例示する第２の変換部１０４２に替わるものである。図１４に例示する部分のうち、図６に例示する部分と同じ部分についての詳細な説明を省略する。
図１４において、ＦＦ回路１４０１・１４０３・１４１１、加算器１４０４、リミッタ回路１４０５は、それぞれ、図６に例示したＦＦ回路１０４２１・１０４２０・１０４２５、加算器１０４２２、リミッタ回路１０４２７と同じである。また、比較器１４０６、セレクタ１４０９・１４１０は、それぞれ、図６に例示した比較器１０４２６、セレクタ１０４２３・１０４２４と同じである。ただし、図１４における入力データのｂｉｔ幅は、図１２の設定に整合しているものとする。
【００８５】
信号ｓｉｇ＿１４０１は、図１２（ａ）および図１２（ｂ）に示す何れかの形態のデータである。ここでは信号ｓｉｇ＿１４０１は、符号付きの１７ｂｉｔのデータであるものとする。そして、本実施形態における第２の画素アトリビュート形態は、図１２（ｂ）の例示する様であり、画素アトリビュートの有効時には、ＦＦ回路１４０２に１値が設定される（制御部１０４０より、信号ｓｉｇ＿１４０２が転送される）。ＡＮＤ素子１４１２は、画素アトリビュートの有効時には０値を出力する。この場合、画素データの信号ｓｉｇ＿１４０４のＬＳＢは０値で固定となる。画素アトリビュートの無効時には、ＡＮＤ素子１４１２の出力は、ＦＦ回路１４０１の出力のｂｉｔ０と等価となり、信号ｓｉｇ＿１４０１の全ｂｉｔは画素データとして取り扱われる。
【００８６】
信号ｓｉｇ＿１４０７、信号ｓｉｇ＿１４０８は、それぞれ、図６に例示した信号ｓｉｇ＿６０４、信号ｓｉｇ＿６１２と同様の画素データである。
信号ｓｉｇ＿１４０９は、演算結果の画素値が第１の画素アトリビュート形態で定義した画素アトリビュートの値と重なったことを示すフラグ信号である。本実施形態では、飽和画素として０値が割り当てられる。例えば、信号ｓｉｇ＿１４１０の値を０値で固定として比較器１４０６で画素値が０値のときに信号ｓｉｇ＿１４０９の値が１値となる（このことは、図６の信号ｓｉｇ＿６０５と同様である）。このとき、画素アトリビュートの値の伝送が無効（ＦＦ回路１４０２のレジスタ値が１値）のときには、信号ｓｉｇ＿１４０９は、ＡＮＤ素子１４０７でマスクされる。その結果、セレクタ１４０９は常時信号ｓｉｇ＿１４０８を選択し、信号ｓｉｇ＿１４１２として出力する。画素アトリビュートの値の伝送が有効のときには、セレクタ１４０９の選択信号として信号ｓｉｇ＿１４０９の値が入力され、飽和画素と判断されたときには、演算結果である０値が１値に変更される。これにより、疑似的な画素アトリビュートが生成されることが回避される（このことは、図６の信号ｓｉｇ＿６０７と同様である）。
【００８７】
ＡＮＤ素子１４０８は、画素アトリビュートの値をマスクするためのものである。ＡＮＤ素子１４０８は、画素アトリビュートの値の伝送が無効のときには、信号ｓｉｇ＿１４１５の値を常時０値とする。セレクタ１４１０は、常時信号ｓｉｇ＿１４１２を選択し、信号ｓｉｇ＿１４１３として出力する。ＦＦ回路１４０２のレジスタ値が１値（画素アトリビュートの値の伝送が有効）であり、処理対象の画素が飽和画素であるときには、セレクタ１４１０は、信号ｓｉｇ＿１４１０を選択する。この信号ｓｉｇ＿１４１０の値は、０値であり、第１の画素アトリビュート形態での画素アトリビュートの値に相当する。セレクタ１４１０は、入力信号ｓｉｇ＿１４０１の最下位ｂｉｔのフラグ値を画素アトリビュート値に置換した信号ｓｉｇ＿１４１３として出力する。信号ｓｉｇ＿１４１３は、ＦＦ回路１４１１で保持され、信号ｓｉｇ＿１４１４として第２の変換部１４００の出力となる。
【００８８】
本実施形態では、ＦＦ回路１４０２によって画素アトリビュートの値の伝送のＯＮ／ＯＦＦを行うことが出来る。第１の実施形態においても（図６に例示した回路においても）当該ＦＦ回路１４０２、および、ＡＮＤ素子１４０７・１４０８相当のマスク機能を実装することで同様の制御が可能である。
本実施形態における第２の画素アトリビュート形態を用いる場合には、図７に例示したＡＬＵ１０４３１における、信号ｓｉｇ＿７０８の生成において、最下位ｂｉｔの扱いを画素とするか画素アトリビュートとするかを制御する仕組みが必要である。例えば、図１３に例示するＦＦ回路１３０７およびセレクタ１３０５の様な構成である。第２の画素アトリビュート形態について、演算精度の確保が重要な装置への実装には第１の実施形態を、通常は画素アトリビュートを使わない（画素アトリビュートが特殊用途の様な位置付け）装置への実装には第２の実施形態を選択すれば良い。  
【００８９】
第２の実施形態においても、第１の実施形態で説明した種々の変形例を採用することが出来る。第２の実施形態において複数の画素アトリビュートを扱う場合、第２の画素アトリビュート形態においては、例えば、画素アトリビュートごとに、画像データにおける置換対象のｂｉｔを異ならせる。
【００９０】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することが出来る。
【００９１】
（その他の実施例）
本発明は、前述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９２】
１００：ＣＰＵ。１０１：ＲＯＭ、１０２：ＲＡＭ、１０３：記録メディア、１０４：リコンフィギュラブル回路
【図１】
2020057958.tif 000003
【図２】
2020057958.tif 000004
【図３】
2020057958.tif 000005
【図４】
2020057958.tif 000006
【図５】
2020057958.tif 000007
【図６】
2020057958.tif 000008
【図７】
2020057958.tif 000009
【図８】
2020057958.tif 000010
【図９】
2020057958.tif 000011
【図１０】
2020057958.tif 000012
【図１１】
2020057958.tif 000013
【図１２】
2020057958.tif 000014
【図１３】
2020057958.tif 000015
【図１４】
2020057958.tif 000016