(57)【要約】【課題】１ラインの複数画素を用いて画像処理を行う場合でも、一時保存のためのメモリを不要とする。【解決手段】画像処理装置は、画像データをライン毎に保持する記憶部と、記憶部から読み出された画像データに対し、１ラインのｎ（ｎ≧２）画素を用いる処理を行って出力画素を生成する画像処理部と、記憶部から画像データを読み出す際の第１クロック周波数を、記憶部に画像データを書き込む際の第２クロック周波数よりもｎ逓倍以上に制御する制御部と、を備える。【選択図】図６
2013190872.tif 000002
【特許請求の範囲】
【請求項１】
画像データをライン毎に保持する記憶部と、
前記記憶部から読み出された画像データに対し、１ラインのｎ（ｎ≧２）画素を用いる処理を行って出力画素を生成する画像処理部と、
前記記憶部から画像データを読み出す際の第１クロック周波数を、前記記憶部に画像データを書き込む際の第２クロック周波数よりもｎ逓倍以上に制御する制御部と、
を備える画像処理装置。
【請求項２】
前記画像処理部は、
２×２画素を用いたバイリニア補間処理、又は４×４画素を用いたバイキュービック補間処理を実行して画素位置変換処理を行う請求項１記載の画像処理装置。
【請求項３】
前記画像処理部は、
前記ｎ画素を処理して１画素の出力画素を生成する請求項１又は２記載の画像処理装置。
【請求項４】
前記画像処理部は、
複数の画像処理を実行可能であり、処理対象の画像データに対する画像処理で用いるｎの値を前記制御部に通知し、
前記制御部は、
前記画像処理部から通知されたｎの値により前記第１クロック周波数を決定する請求項１乃至３いずれか一項に記載の画像処理装置。
【請求項５】
画像データをライン毎に記憶部に記憶する記憶ステップと、
前記記憶部から読み出された画像データに対し、１ラインのｎ（ｎ≧２）画素を用いる処理を行って出力画素を生成する画像処理ステップと、
前記記憶部から画像データを読み出す際の第１クロック周波数を、前記記憶部に画像データを書き込む際の第２クロック周波数よりもｎ逓倍以上に制御する制御ステップと、
を有する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
ステレオカメラなどの画像処理装置においては、レンズの歪みや、イメージセンサとレンズ間の位置ズレ・回転ズレ、あるいはカメラ間の位置ズレ・回転ズレなどを補正する、いわゆるキャリブレーションが必要である。これは、予め撮影された既知の被写体の画像と理想画像との関係から、イメージセンサによって取得された画像データに対して画素位置変換処理を施すことにより補正を行う。
【０００３】
画像データに画素位置変換処理を施す場合、その変換前後の移動量に応じた数ラインのラインバッファ、もしくはフレームバッファが必要である。また、変換後の画素位置に対応する変換前の画素位置は、画素と画素の間になることが通常であり、その場合、なんらかの補間処理を行うことで滑らかな出力画像が得られるよう工夫されている。
【０００４】
上記のような補間処理を行うとき、例えば縦横２画素ずつの４画素を用いてバイリニアの補間処理を行う場合には、１ライン毎に２画素のデータが必要となる。しかし、通常、ラインバッファから画像データを読み出すのに１クロックで読み出せるのは１画素分のデータである。
【０００５】
そのため、１クロックで複数画素が必要となる補間処理などでは、同時に複数画素を取り出せるように、必要な画像データをラインバッファから他のバッファに格納するなどの技術がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の補間処理を含む画素位置変換処理においては、上記の通り複数画素を同時に取り出すことができる他のバッファが必要であった。これは、実際にはフリップフロップ群や、ＦＰＧＡなどの場合にはハードウェアマクロのメモリ（ＢＲＡＭ：Block RAM）などによって構成される。
【０００７】
例えば、画素位置変換処理の補正量の範囲が６５画素×５１ライン、画素ビット数１２ビット、２×２のバイリニア方式の補間処理であるとき、他のバッファがフリップフロップによって構成される場合には、１２ビットのフリップフロップが３３１５個必要である。
【０００８】
また、他のバッファがＢＲＡＭによって構成される場合には、ビット幅１２ビット、ビット深度６５のＢＲＡＭが５１ライン×２個必要である。
【０００９】
よって、従来技術では、１ラインの複数画素を用いて画像処理を行う場合、一時保存のためのメモリが必要であるという問題があった。
【００１０】
そこで、本発明は、上記問題に鑑みてなされたものであり、１ラインの複数画素を用いて画像処理を行う場合でも、一時保存のためのメモリを不要とする画像処理集積回路及び画像形成装置を提供することを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様における画像処理装置は、画像データをライン毎に保持する記憶部と、前記記憶部から読み出された画像データに対し、１ラインのｎ（ｎ≧２）画素を用いる処理を行って出力画素を生成する画像処理部と、前記記憶部から画像データを読み出す際の第１クロック周波数を、前記記憶部に画像データを書き込む際の第２クロック周波数よりもｎ逓倍以上に制御する制御部と、を備える。
【発明の効果】
【００１２】
本発明によれば、１ラインの複数画素を用いて画像処理を行う場合でも、一時保存のためのメモリを不要とする。
【図面の簡単な説明】
【００１３】
【図１】実施例における画像処理装置の構成の一例を示すブロック図。
【図２】歪み補正処理を説明するための図。
【図３】画素位置の最大の移動量の一例を示す図。
【図４】比較例における処理部の機能的構成の一例を示すブロック図。
【図５】補間処理の一例を示す図。
【図６】実施例における処理部の機能的構成の一例を示すブロック図。
【図７】ラインバッファの入出力信号を示す図。
【図８】実施例における画像処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１４】
以下、本発明の実施例を図面に基づいて説明する。
［実施例］
＜構成＞
図１は、実施例における画像処理装置１の構成の一例を示すブロック図である。図１に示す画像処理装置１は、レンズ１０と、イメージセンサ２０と、ＦＰＧＡ３０と、ＲＯＭ４０と、出力Ｉ／Ｆ５０とを有する。
【００１５】
レンズ１０は、被写体からの入射光をイメージセンサ２０に出力する光学系である。イメージセンサ２０は、入力された入射光を集光し、ディジタル画像信号（画像データ）に変換する。イメージセンサ２０は、例えば、ＣＣＤ（Charge Coupled Device）イメージセンサや、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサ等である。
【００１６】
ＦＰＧＡ（Field Programmable Gate Array）３０は、イメージセンサ２０から画像データを取得し、各画像処理を行う。画像処理には、レンズ１０の特性に起因する歪みや、イメージセンサ２０とレンズ１０などの光学系との相対的な位置ズレや回転ズレなどを補正する歪み補正処理（または画素位置変換処理とも称す）が含まれる。以降、ＦＰＧＡ３０は、単に処理部３０とも称す。
【００１７】
ＦＰＧＡ３０は、通常、ＲＯＭ（Read Only Memory）４０等の不揮発性メモリにコンフィギュレーションデータを格納している。ＦＰＧＡ３０は、電源が供給されると、コンフィギュレーションと呼ばれる動作が行われることによって、上記のような画像処理を実行するための内部回路を構成する。
【００１８】
ＲＯＭ４０は、上記のコンフィグレーションデータ以外に、歪み補正を実行するための画像補正パラメータを格納する。この画像補正パラメータは、レンズ１０の特性や、レンズ１０とイメージセンサ２０との位置ズレや回転ズレなどによる画像の歪みが画像処理装置１毎に異なるため、その画像処理装置１独自のパラメータである。
【００１９】
なお、ここでは画像処理を行う構成として、ＦＰＧＡ３０を例にしているが、ＡＳＩＣ（Application Specific Integrated Circuit）やＤＳＰ（Digital Signal Processor）等によって実現されてもよい。
【００２０】
出力Ｉ／Ｆ５０は、ＦＰＧＡ３０で画像処理が施された画像データを出力する。例えば、出力Ｉ／Ｆ５０は、ＤＡＣ（Digital to Analog Converter）によってアナログ映像信号に変換して図示しないディスプレイ装置に出力する。また、出力Ｉ／Ｆ５０は、画像データを後段の認識処理装置などに出力してもよい。
【００２１】
＜歪み補正＞
次に、歪み補正処理（画素位置変換処理）について説明する。図２は、歪み補正処理を説明するための図である。
【００２２】
図２（Ａ）は、ＦＰＧＡ３０で取得が期待される理想画像を示す図である。図２（Ｂ）は、ＦＰＧＡ３０で実際に取得される実画像を示す図である。図２（Ｃ）は、ＦＰＧＡ３０で行われる、歪みによる画素位置の補正を示す図である。なお、図２に示す例では、説明を簡単にするために格子模様を画像データの例として挙げた。
【００２３】
図２に示すように、実際に取得される画像には歪みが生じる（図２（Ｂ）参照）。これらの歪みは、光学系が持っている特性やバラツキ、或いはレンズ１０などの光学系とイメージセンサ２０との位置ズレや回転ズレなどによって生じる。
【００２４】
そして、この歪みによって、画像を構成する各画素の位置が移動する。図２（Ｃ）に示すように、歪みによる各画素の移動方向や移動量は、画像中の画素位置によって異なる。例えば、画像内の左上端近傍の点Ａにある画素は、歪みによって左上方向に大きく移動し、同様に画像内の左下端近傍点Ｂにある画素は、左下方向に大きく移動する。
【００２５】
一方、比較的画像中心に近い画像中心左上の点Ｅは、左上方向に移動するものの、点Ａに比べてその移動量が小さい。また、画像の中心近傍の点Oは、ほとんど移動しない。つまり、画像中心に近いほど歪みによる画素の移動量は小さく、中心から離れるにつれて移動量は大きくなる。
【００２６】
次に、画素位置が最大でどの程度移動するかについて説明する。図３は、画素位置の最大の移動量の一例を示す図である。図３に示す例では、移動前の画素位置を原点（０，０）、右方向をＸ軸、上方向をＹ軸とした場合、画像内の左上端の点は凡そ（−３０，２０）の位置に移動する。つまり、Ｘ方向に関して−３０、Ｙ方向に関して＋２０だけ移動する。
【００２７】
画像内の左上端の点より少し画像中心よりの点Ａ（図２（Ｃ）参照）は、これよりも少し小さい移動量となる。同様に、画像内の右上端の点は凡そ（３０，２０）の位置に、左下端の点は凡そ（−３０，−２０）の位置に、右下端の点は凡そ（３０，−２０）の位置に移動する。
【００２８】
つまり、画像内の全ての画素の最大移動量は、Ｘ方向に関して−３０〜＋３０、Ｙ方向に関して−２０〜＋２０の範囲内である。すなわち、画素位置変換処理を行う際には、画素位置変換処理の対象画素の画素位置に対して、この範囲内の周辺画素があれば画素位置変換処理を行うことが可能である。なお、図３で示した数値については例を示したものであって、実際にはこの限りではない。
【００２９】
＜比較例における処理部＞
次に、実施例におけるＦＰＧＡ３０の構成を説明する前に、比較例におけるＦＰＧＡ３０の構成について説明する。この比較例を説明することで、実施例との差異を分かりやすくする。
【００３０】
図４は、比較例における処理部の機能的構成の一例を示すブロック図である。図４に示す処理部３０は、ラインバッファ（ラインバッファ１〜Ｎ）１０２と、入力パッチバッファ１０４と、コントローラ１０６と、切替ネットワーク１０８と、画像処理部１１０と、タイミング信号生成部１１２とを有する。
【００３１】
ラインバッファ１０２は、入力されるラスタ画像（画像データ）をライン毎に記憶する記憶部である。このラインバッファ１０２のライン数は、図３を用いて説明したＹ方向の最大移動量で決定される。
【００３２】
図３に示す例では、Ｙ方向に関してプラス方向に２０画素、マイナス方向に２０画素であるため、対象画素のラインも含めて４１ラインのラインバッファ１０２が必要となる。ラインバッファ１０２は、処理部３０がＦＰＧＡで構成されている場合には、ハードウェアマクロのメモリリソース（ＢＲＡＭ：Block RAM）などによって構成される。
【００３３】
入力パッチバッファ１０４は、一次バッファとも呼ばれ、ラインバッファ１０２に格納された画像データのうち、図３に示した領域の画像データをラインバッファ１０２から読み出して保持する。
【００３４】
すなわち、図３に示す例においては、入力パッチバッファ１０４は、Ｘ方向に関してプラス方向に３０画素、マイナス方向に３０画素、対象の画素を含めて横方向で計６１画素、Ｙ方向に関してプラス方向に２０画素、マイナス方向に２０画素、対象の画素を含めて縦方向で計４１画素、つまり６１画素×４１ラインの画像データを保持する。
【００３５】
入力パッチバッファ１０４は、実際にはフリップフロップ群や、ＦＰＧＡなどの場合にはハードウェアマクロのメモリリソース（ＢＲＡＭ：Block RAM）などで構成される。
【００３６】
入力パッチバッファ１０４がフリップフロップ群により構成される場合は、例えば画素のビット深度が１２ビットの場合、１２ビット幅のフリップフロップが６１×４１個、つまり２，５０１個のフリップフロップが必要となる。
【００３７】
入力パッチバッファ１０４がＢＲＡＭにより実現される場合は、後述する画像処理部１１０の補間処理の方法にもよるが、１ライン上で必要となる画素数×ラインバッファ数のＢＲＡＭが必要となる。
【００３８】
例えば、画像処理部１１０の補間処理が２×２画素を必要とするバイリニア方式の場合、２×４１、すなわち８２個のＢＲＡＭが必要となる。
【００３９】
コントローラ１０６は、入力パッチバッファ１０４に保持された６１画素×４１ラインの画像データのうち、どの画素を出力するかを決定する信号（Ｘ制御ビット、Ｙ制御ビット）を出力する。
【００４０】
例えば、コントローラ１０６は、Ｘ座標の画素を出力するためのＸ制御ビット、Ｙ座標の画素を出力するためのＹ制御ビットを生成する。これらの制御ビットは、入力パッチバッファ１０４から切替ネットワーク１０８のモジュールを介する１つ以上の経路のスイッチをオンにする（経路をアクティブにする）。
【００４１】
より具体的には、コントローラ１０６は、Ｘ方向についての画素移動量、Ｙ方向に関しての画素移動量を出力する。それぞれの画素移動量には、整数部と小数部とが含まれている。画素移動量の整数部は切替ネットワーク１０８に送られ、小数部は画像処理部１１０に送られる。
【００４２】
切替ネットワーク１０８は、入力パッチバッファ１０４に保持された６１画素×４１ラインの画像データのうち、どの画素を出力するかを選択して出力する。ここでは例として、後段の画像処理部１１０で２×２の補間処理をするとして、切替ネットワーク１０８は、画素移動量の整数部分で決定する画素と、その隣接する画素の合計４画素の画像データとを出力する。
【００４３】
ここでは、画素移動量の整数部分によって決定される画素をａ００、その隣接する画素をそれぞれａ０１、ａ１０、ａ１１とし、それらの位置関係の例を、後述する図５（Ａ）に示す。
【００４４】
画像処理部１１０は、切替ネットワーク１０８で選択されて出力された４画素の、画素間の割合を考慮して１つの画像データを出力する。より具体的には、画像処理部１１０は、画素移動量で示される値が４画素のそれぞれの中心で構成される領域内のどこを示しているかによって、４画素の画素値の影響度を演算し、１画素分のデータとして出力する。画像処理部１１０による補間処理の詳細については後述する。
【００４５】
タイミング信号生成部１１２では、垂直同期信号Ｖｓｙｎｃ、水平同期信号Ｈｓｙｎｃ、有効ライン信号Ｈｒｅｆなどの出力画像の同期信号を、処理部３０での処理クロック数を考慮して生成する。
【００４６】
＜補間処理＞
次に、画像処理部１１０で行われる画像処理の一例としての補間処理について図５を用いて説明する。図５は、補間処理の一例を示す図である。
【００４７】
上述した通り、画像処理部１１０は、画素移動量で示される値が４画素のそれぞれの中心で構成される領域内のどこを示しているかによって、４画素の画素値の影響度を演算し、１画素分のデータとして出力する。補間処理の演算式は、次に式（１）である。
【００４８】
【数１】
2013190872.tif 000003
ｄｏｕｔ：出力画素値
ｃｘ：Ｘ方向の小数値
ｃｙ：Ｙ方向の小数値
ａ００、ａ０１、ａ１０、ａ１１：それぞれの画素の画素値
画素移動量で示される値が、図５（Ｂ）に示す位置である場合、出力画素値は、次の式（２）により計算される。
【００４９】
【数２】
2013190872.tif 000004
同様にして、画素移動量で示される値が、図５（Ｃ）に示す位置、すなわち、ａ００の中心である場合、出力画素値は次の式（３）により計算される。
【００５０】
【数３】
2013190872.tif 000005
つまり、この場合にはａ００がそのまま出力される。
以上のような補間処理が、画像処理部１１０で実行されうる。
【００５１】
＜実施例における処理部＞
次に、実施例における処理部３０の機能的構成について説明する。図６は、実施例における処理部３０の機能的構成の一例を示すブロック図である。図６に示す例では、処理部３０は、ラインバッファ（ラインバッファ１〜Ｎ）２０２と、コントローラ２０６と、切替ネットワーク２０８と、画像処理部２１０と、タイミング信号生成部２１２とを有する。
【００５２】
図６に示す処理部３０の構成は、図４に示す処理部の構成と比較して、入力パッチバッファ（一次バッファ）１０４がないことが分かる。比較例の処理部では、一次バッファ１０４があり、画素位置変換の最大移動量に応じた領域の画素を保持するようになっていた。
【００５３】
前述したように、一次バッファ１０４は、フリップフロップ群や、ＦＰＧＡなどの場合にはハードウェアマクロのメモリリソース（ＢＲＡＭ：Block RAM）などで構成される。
【００５４】
一次バッファ１０４がフリップフロップ群により構成される場合は、例えば画素のビット深度が１２ビットの場合、１２ビット幅のフリップフロップが６１×４１個、つまり２，５０１個のフリップフロップが必要となる。
【００５５】
一次バッファ１０４がＢＲＡＭにより実現される場合は、後述する画像処理部１１０の補間処理の方法にもよるが、１ライン上で必要となる画素数×ラインバッファ数のＢＲＡＭが必要となる。
【００５６】
例えば、画像処理部１１０の補間処理が２×２画素を必要とするバイリニア方式の場合、２×４１、すなわち８２個のＢＲＡＭが必要となる。
【００５７】
上記の通り、比較例において、フリップフロップで構成する場合とＢＲＡＭで構成する場合とのどちらにおいても一次バッファ１０４が必要な理由は、後段の画像処理部１１０での補間処理において同時に複数画素が必要だからである。
【００５８】
補間処理が行われない場合には、ラインバッファ１０２に格納された画像データから、コントローラ１０６及び切替ネットワーク１０８で決定された１画素を出力すればよい。そのため、一次バッファ１０４は不要である。
【００５９】
しかしながら、補間処理が行われる場合には、例えば２×２画素のバイリニア方式の補間の場合、異なるライン上の２画素は前述のように直接ラインバッファ１０２から同時に読み込むことは可能だが、同一ライン上の２画素は同時に読み込むことはできない。
【００６０】
そのため、同時に複数画素が読み出せる一次バッファ１０４が必要である。または、ラインバッファ１０２を２倍の容量に増加し、１つのラインを２つのラインバッファに格納することでも、同時に２画素の画像データを得ることができる。
【００６１】
しかしながら、この方法ではラインバッファ１０２が２倍必要となるため、メモリリソースを無駄に消費することになってしまう。
【００６２】
そこで、以下、一次バッファを必要としない実施例の仕組みについて説明する。図７は、ラインバッファ２０２の入出力信号を示す図である。図７に示す例では、ラインバッファ２０２として、ＦＰＧＡのハードウェアマクロのメモリリソース（ＢＲＡＭ）を使用した場合の例であり、Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭである。
【００６３】
図７に示す例では、ポートＡは、書き込み専用のポートであり、書き込みクロック信号ｃｌｋ＿ａ、アドレス信号ａｄｄｒ＿ａ、ライトイネーブル信号ｗｅ＿ａ、データ入力ｄｉｎ＿ａなどの入出力信号がある。
【００６４】
一方、ポートＢは、読み取り専用のポートであり、読み出しクロック信号ｃｌｋ＿ｂ、アドレス信号ａｄｄｒ＿ｂ、データ出力ｄｏｕｔ＿ｂなどの入出力信号がある。
【００６５】
比較例の処理部においては、書き込みクロックｃｌｋ＿ａと読み出しクロックｃｌｋ＿ｂは、同一の周波数のクロック信号であり、イメージセンサ２０からのピクセルクロック信号ｐｃｌｋとも同一の周波数である。
【００６６】
実施例においては、同一ライン上で必要となる画素数に応じて、読み取りクロック信号ｃｌｋ＿ｂを、書き込みクロック信号ｃｌｋ＿ａの２逓倍以上の周波数の信号を用いる。例えば、前述の２×２のバイリニア方式の補間処理が行われる場合には、同一ライン上で２画素の画像データが必要となる。そのため、書き込みクロック信号ｃｌｋ＿ａの周波数の２逓倍の読み出しクロック信号ｃｌｋ＿ｂが用いられる。
【００６７】
別の例では、４×４のバイキュービック方式の補間処理が行われる場合、同様に書き込みクロック信号ｃｌｋ＿ａの周波数の４逓倍の読み出しクロック信号ｃｌｋ＿ｂが用いられる。
【００６８】
これにより、従来の速度の２倍、４倍の速度でラインバッファ２０２から画像データを読み込むことができるようになるため、従来における１画素を読み込む時間間隔で必要画素を用いた補間処理などの画像処理を実行することが可能となる。
【００６９】
なお、上記の例ではラインバッファの読み取りクロック周波数を書き込みクロック周波数の２逓倍、４逓倍としたが、それ以上の読み取りクロック周波数であれば同様の効果が得られる。しかし、読み取りクロック周波数は、最低限の周波数にすることが望ましい。
【００７０】
図６に戻り、各構成における処理について説明する。タイミング信号生成部２１２は、予めｎの値を設定しておく。このｎは、画像処理部２１０の画像処理において、１ライン上で必要となる画素数を示す。
【００７１】
タイミング信号生成部２１２は、ラインバッファ（記憶部）２０２から画像データを読み出す際の読み出しクロック周波数（第１クロック周波数）を、記憶部に画像データを書き込む際の書き込みクロック周波数（第２クロック周波数）よりもｎ逓倍以上に制御する。タイミング信号生成部２１２は、制御した読み出しクロック周波数を、ラインバッファ２０２に通知する。書き込みクロック周波数は、例えば信号ｐｃｌｋのクロック周波数とする。
【００７２】
また、タイミング信号生成部２１２は、画像処理部２１０からｎの値を通知された場合、このｎの値に基づいて読み出しクロック周波数を決定してもよい。
【００７３】
ラインバッファ２０２は、画像データをライン毎に記憶する記憶部である。ラインバッファ２０２は、画像データの書き込みタイミングのｎ逓倍以上で、画像データが読み出される。
【００７４】
コントローラ２０６は、基本的には、比較例で説明したコントローラ１０６と同様の処理を行う。なお、コントローラ２０６は、タイミング信号生成部２１２で説明した読み出しクロック周波数の制御を、タイミング信号生成部２１２に代わって行ってもよい。この場合、コントローラ２０６は、画像処理部２１０からｎの値を通知されてもよい。
【００７５】
また、タイミング信号生成部２１２とコントローラ２０６とは、読み出しクロック周波数を制御するということで、制御部とも呼ばれる。
【００７６】
切替ネットワーク２０８は、ｎ逓倍で読み出された画像データを保持し、どの画素を出力するかを選択して画像処理部２１０に出力する。基本的な機能は、比較例の切替ネットワーク１０８と同様である。
【００７７】
画像処理部２１０は、記憶部から読み出された画像データに対し、１ラインのｎ（ｎ≧２）画素を処理して出力画素を生成する。画像処理部２１０の基本的な機能は、比較例の画像処理部１１０と同様である。
【００７８】
例えば、画像処理部２１０は、２×２画素を用いたバイリニア補間処理、又は４×４画素を用いたバイキュービック補間処理を実行して画素位置変換処理を行う。また、画像処理部２１０は、ラインバッファ２０２から読み出されたｎ画素を処理して１画素の出力画素を生成する。
【００７９】
なお、画像処理部２１０は、複数の画像処理を実行可能な場合、処理対象の画像データに対する画像処理で用いるｎの値をタイミング信号生成部２１２に通知する。
【００８０】
以上、実施例では、補間処理を含む画素位置変換処理において、フリップフロップ群やＢＲＡＭなどのハードウェアリソースを不要とする補間処理を実現することができる。
【００８１】
例えば、画像処理部２１０でバイリニアの補間処理を行う場合、２×２画素の入力画像データを用いて計算することによって、１画素分の出力画像データを得ることができる。この時、１ライン毎に２画素の入力画像データが必要であるが、ラインバッファ２０２が入力画像データのビット数と同じデータ幅を持つＲＡＭを用いて実現されている場合、読み出しクロック１クロックで出力される画像データは１画素分である。
【００８２】
つまり、上記補間処理を行う場合には、１ラインについて２画素必要であるため、２クロック必要となる。
【００８３】
しかしながら、実施例における画像処理装置１では、補間処理に必要な画素が１ライン上でｎ個のときには、書き込みクロック周波数のｎ逓倍以上の読み出しクロック周波数を用いて画像データを出力する。
【００８４】
そのため、画像処理装置１は、同一時間でｎ倍の数の画像データをラインバッファ２０２から出力できるようになり、元のクロックの１クロック分の時間で補間処理に必要な画素を出力することができる。
【００８５】
以上より、一次バッファがなくともラインバッファ２０２から直接必要な対象画素を読み出すことができるようになり、一次バッファのハードウェアリソースを削減することができる。
【００８６】
また、実施例では画像処理部２１０における補間処理を用いて説明したが、同一ライン上の複数の画素を用いる画像処理全般に有効である。また、画像処理部２１０では、１ライン上のｎ画素を用いて１画素の出力画素を生成していたが、出力画素は、１画素に限られない。例えば、画像処理部２１０が縮小処理を行う場合などは、１ライン上のｎ画素を用いて複数の出力画素を生成してもよい。
【００８７】
＜動作＞
次に、実施例における画像処理装置１の動作について説明する。図８は、実施例における画像処理の一例を示すフローチャートである。図８に示す処理は、１つの画像データに対して行われる処理である。
【００８８】
ステップＳ１０１で、タイミング信号生成部２１２は、画像処理部２１０から通知されたｎの値により読み出しクロック周波数を決定する。なお、タイミング信号生成部２１２は、ｎの値が予め設定されていてもよい。
【００８９】
ステップＳ１０２で、画像データが、書き込みクロック周波数に基づいて、ラインバッファに２０２に書き込まれる。この処理は、クロック信号のタイミングに応じて画像データがなくなるまでラインバッファ２０２に書き込まれる。
【００９０】
ステップＳ１０３で、ラインバッファ２０２から、読み出しクロック周波数に基づいて画像データが読み出され、画像データが切替ネットワーク２０８に出力される。このときの読み出しクロック周波数は、タイミング信号生成部２１２により制御された周波数が用いられる。
【００９１】
ステップＳ１０４で、画像処理部２１０は、ラインバッファ２０２から読み出された１ライン上のｎ画素を用いて画像処理を行う。例えば、画像処理部２１０は、２×２のバイリニア補間処理や、４×４のバイキュービック補間処理を行う。
【００９２】
以上、実施例によれば、書き込みクロック周波数を、同一ライン上で必要となる画素数分だけ逓倍したクロック周波数を用いてラインバッファからデータを読み出す。これにより、従来の一次バッファに用いられたフリップフロップ群やＢＲＡＭなどのメモリリソースを削減することができる。
【００９３】
なお、本発明は、上記実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施例に示される全構成要素からいくつかの構成要素を削除してもよい。
【符号の説明】
【００９４】
１  画像処理装置
１０  レンズ
２０  イメージセンサ
３０  処理部
４０  ＲＯＭ
２０２  ラインバッファ
２０６  コントローラ
２０８  切替ネットワーク
２１０  画像処理部
２１２  タイミング信号生成部
【先行技術文献】
【特許文献】
【００９５】
【特許文献１】米国特許第８，１１６，５８７号明細書
【図１】
2013190872.tif 000006
【図２】
2013190872.tif 000007
【図３】
2013190872.tif 000008
【図４】
2013190872.tif 000009
【図５】
2013190872.tif 000010
【図６】
2013190872.tif 000011
【図７】
2013190872.tif 000012
【図８】
2013190872.tif 000013