(57)【要約】【課題】  回路規模を増加させることなく、画像処理の高機能化を実現する。【解決手段】  画像分割手段１２は、入力画像２ａの水平方向画素数幅がラインバッファ１１より大きい場合には、入力画像２ａを垂直に等分割し、分割領域がラインバッファ１１の水平方向画素数幅より小さくなるようにする。そして、入力データ転送手段１３を制御し、等分割した分割領域ごとに、入力画像２ａの画素データをラインバッファ１１へ順次データ転送する。画素処理手段１４は、ラインバッファ１１に一時記憶された入力画像２ａの画素データを順次画素処理し、出力画素データを出力する。画像結合手段１５は、出力データ転送手段１６を制御し、分割領域ごとに順次出力される出力画素データを結合し、出力画像２ｂを生成する。【選択図】  図１
2006186917.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理装置において、
水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶する一時記憶手段と、
入力画像の水平方向の画素数が前記一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割し、分割領域ごとに前記入力画像の画素データの前記一時記憶手段へのデータ転送を制御する画像分割手段と、
前記画像分割手段に従って、指示された前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送する入力データ転送手段と、
前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施す画素処理手段と、
前記分割領域ごとに順次出力される前記画素処理手段の出力画素データのデータ転送を制御し、前記分割領域ごとの前記出力画素データを結合して出力画像を生成する画像結合手段と、
前記画像結合手段に従って、前記画素処理手段より出力される前記出力画素データを指示された出力画像記憶領域に転送する出力データ転送手段と、
を具備することを特徴とする画像処理装置。
【請求項２】
前記画像分割手段は、前記入力画像を前記一時記憶手段の前記所定の水平方向画素数幅を超えない水平方向画素数幅の偶数個の領域に分割することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記入力データ転送手段は、等分割された前記分割領域の水平方向画素数幅を単位として、前記分割領域に属する前記入力画像の画素データをラインごとにデータ転送することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記画像分割手段は、等分割された前記分割領域の水平方向画素数幅に応じたオフセット値を用いて前記分割領域に相当する前記入力画像の画素データが格納される位置を算出し、読み出し起点として前記入力データ転送手段に指示することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記画像結合手段は、等分割された前記分割領域の水平方向画素数幅に応じたオフセット値を用いて前記分割領域に相当する前記出力画像の前記出力画素データが格納される位置を算出し、書き込み起点として前記出力データ転送手段に指示することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記画像分割手段は、等分割する前記入力画像もしくは前記分割領域の水平方向画素数が奇数である場合には、等分割する領域の水平方向の中心に位置する画素データ列を双方の前記分割領域に含めて分割し、
前記画像結合手段は、結合する前記分割領域の双方に共通する前記水平方向の中心に位置する画素データ列が含まれていた場合には、双方の前記分割領域の前記水平方向の中心に位置する画素データ列を重ね合わせて結合する、
ことを特徴とする請求項１記載の画像処理装置。
【請求項７】
前記入力データ転送手段及び前記出力データ転送手段のうち少なくとも一つは、ＤＭＡ（Direct Memory Access）コントローラであることを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記入力データ転送手段及び前記出力データ転送手段は、共通のＤＭＡコントローラであり、前記画像分割手段及び前記画像結合手段によって、排他的に入力データ転送と出力データ転送を行うことを特徴とする請求項７記載の画像処理装置。
【請求項９】
前記一時記憶手段は、前記所定の水平方向画素数幅が、少なくともＶＧＡ（Video Graphics Array）サイズの水平方向画素数幅より大きいことを特徴とする請求項１記載の画像処理装置。
【請求項１０】
入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理方法において、
画像分割手段が、前記入力画像の水平方向の画素数が、水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶する一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割するステップと、
前記画像分割手段が、入力データ転送手段を制御して、等分割された分割領域ごとに、前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送するステップと、
画素処理手段が、前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施すステップと、
画像結合手段が、出力データ転送手段を制御し、前記分割領域ごとに出力される前記画素処理手段の出力画素データを結合するステップと、
を有し、
前記分割領域ごとに、前記分割領域の水平方向画素数幅を単位として前記入力画像の画素データをラインごとにデータ転送して画素処理し、画素処理が終了して前記分割領域ごとに出力される前記出力画素データを結合して前記出力画像を生成する、
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及び画像処理方法に関し、特に入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
マルチメディア処理システム、とりわけ携帯機器向けシステムにおいては、カメラ機能に関して静止画撮影の高画素化・動画処理性能の向上がますます強く求められている。しかし、一方で、１チップあたりの機能の高密度化要求も強いため、カメラ機能の向上のためにむやみに回路面積を増加させることはできない。
【０００３】
従来のマルチメディア処理システムの画像処理では、ＣＣＤ（Charge Coupled Device）／ＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサからのベイヤー入力に対してγ補正や色空間変換、画素補間などの画像処理を行う場合、ベイヤーデータをブロック単位もしくはライン単位で読み出して処理を行っていた。
【０００４】
ブロック単位の読み出しを行う画像処理装置について説明する。
図１５は、従来のブロック読み出しにおけるデータ読み出し順を示す図であり、図１６は、従来のブロック読み出し処理回路例のブロック図である。ブロック読み出しでは、１画像分のベイヤーデータ８００を、水平方向及び垂直方向に所定数の画素領域を有するブロック単位８０１に分割し、ブロックごとに順に読み出しを行う。図の例では、ブロック番号の順に読み出しが行われ、ベイヤーデータ８００左上のブロック１から右方向にブロック２、３と順に読み出す。なお、このとき、複数画素単位で行う画像処理のために、所定のオーバーラップ領域を確保して読み出しが行われる。
【０００５】
ブロック読み出し処理回路では、システムバス９０１ａ経由でブロック単位のベイヤーデータを上記のブロック順に読み出し、ブロックバッファ０（９０２ａ）もしくはブロックバッファ１（９０２ｂ）に一時保存する。選択器９０３は、一方のバッファのデータを選択して画像処理を行うカラー処理部９０４に出力する。このとき、処理効率を上げるため、カラー処理部９０４に接続されていない他方のバッファには、システムバス９０１ａ経由でデータの書き込みが行われる。カラー処理部９０４は、入力画素データを用いて画像処理を実行し、生成されたデータをシステムバス９０１ｂ経由で出力する。
【０００６】
次に、ライン単位で読み出しを行う画像処理装置について説明する。図１７は、従来のライン読み出しにおけるデータ読み出し順を示す図であり、図１８は、従来のライン読み出し処理回路例のブロック図である。ライン読み出しでは、ベイヤーデータ８００の水平方向の１ライン単位８１０ごとに順に読み出しが行われる。
【０００７】
ライン読み出し処理回路では、システムバス９０１ａ経由でライン単位のベイヤーデータを上から順に読み出し、ラインバッファ９０５に一時保存する。ラインバッファ９０５には、カラー処理部９０４における処理で必要なライン数分のデータを格納することができる。カラー処理部９０４は、ラインバッファ９０５に格納された入力画素データを用いて画像処理を行い、生成されたデータをシステムバス９０１ｂ経由で出力する。
【０００８】
また、ライン読み出しにおいて、ラインメモリの容量（読み出し可能な水平方向画素数）を超えた原画像データをラインメモリ容量分の領域と、容量を超えた領域とに分割して処理する画像処理装置が提案されている（たとえば、特許文献１参照）。
【特許文献１】特開２００２−２５２７４９号公報（段落番号〔００２１〕〜〔００２９〕、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、従来のブロック読み出し及びライン読み出しでは、回路規模を増加させることなく、画像処理の高機能化を実現することが難しいという問題点がある。
ブロック読み出しでは、カラー処理部の入力バッファのブロックサイズを抑えることができるので実装面積を小さくすることできるが、入力画像及び出力画像が格納されるフレームバッファにアクセスする回数が多くなり、処理に時間がかかるという問題点がある。このため、処理対象の画像が高画素になればなるほど、処理時間が膨大になる傾向があり、たとえば、シャッターを押してから画像処理が行われて記憶媒体に格納されるまでの時間が長大になってしまう。また、高速処理が必要な動画像には向かないという問題点もある。
【００１０】
一方、ライン読み出しでは、フレームバッファの読み書きの際のバースト効果が大きいため、処理時間を短縮することができるが、カラー処理部の入力バッファとしてフルラインサイズのバッファが数本必要となるため、実装面積が大きくなるという問題点がある。このため、処理対象の画像が高画素になるほど、実装面積が大きくなり、製品の小型・軽量化の実現が難しくなる。とりわけ、携帯電話機やディジタルカメラなど、小型・軽量化が進む携帯機器にライン読み出しを適用することは現実的でない。
【００１１】
また、ラインメモリの容量を超えた原画像データをラインメモリ容量分の領域と、容量を超えた超過領域とに分割して処理する場合、ラインメモリ容量分の領域と超過領域とのサイズが異なるため、サイズ等のパラメータの切替えが煩雑になるという問題点がある。また、ラインメモリ容量分の領域と超過領域とに２分割して処理を行うので、少なくとも、想定される１ラインの半分の領域のラインメモリ容量を確保しておかなければならない。また、さらに高画素の画像に対応することができないという問題点もある。
【００１２】
本発明はこのような点に鑑みてなされたものであり、回路規模を増加させることなく、画像処理の高機能化を実現することが可能な画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では上記課題を解決するために、図１に示すような画像処理装置が提供される。画像処理装置１は、ラインバッファ１１、画像分割手段１２、入力データ転送手段１３、画素処理手段１４、画像結合手段１５及び出力データ転送手段１６を有し、対象の入力画像２ａを読み込み、画像処理を行った後、出力画像２ｂとして出力する。
【００１４】
ラインバッファ１１は、水平方向に所定の水平方向画素数幅の記憶領域を備え、入力画像２ａの画素データの複数ラインを最大で所定の水平方向画素数幅で一時記憶する一時記憶手段である。画像分割手段１２は、入力画像２ａの水平方向の画素数がラインバッファ１１の水平方向画素数幅より多い場合に、ラインバッファ１１の水平方向画素数幅に応じて入力画像２ａを垂直に等分割し、分割領域ごとに入力画像の画素データをラインバッファ１１へ転送するデータ転送を制御する。入力データ転送手段１３は、画像分割手段１２に従って、指示された分割領域に属する入力画像２ａの画素データをラインバッファ１１に転送する。画素処理手段１４は、ラインバッファ１１に転送された画素データに単一画素単位及び複数画素単位で画像処理を施し、出力画素データを順次出力する。画像結合手段１５は、分割領域ごとに順次出力される画素処理手段１４の出力画素データのデータ転送を制御し、出力画素データを結合して出力画像２ｂを生成する。出力データ転送手段１６は、画像結合手段１５に従って、画素処理手段１４より出力される出力画素データを、指示された出力画像２ｂの格納領域に転送する。
【００１５】
このような画像処理装置によれば、画像分割手段１２は、入力画像２ａの水平方向画素数とラインバッファ１１の水平方向画素数幅とを比較し、入力画像２ａが大きい場合には、ラインバッファ１１の水平方向画素数幅に応じて入力画像２ａを垂直に等分割し、分割領域がラインバッファ１１の水平方向画素数幅以下になるようにする。そして、入力データ転送手段１３を制御し、等分割した分割領域ごとに、分割領域に属する入力画像２ａの画素データをラインバッファ１１へ順次データ転送する。画素処理手段１４は、ラインバッファ１１に一時記憶された入力画像２ａの画素データを単一画素単位及び複数画素単位で順次画素処理し、出力画素データを出力する。画像結合手段１５は、出力データ転送手段１６を制御し、分割領域ごとに順次出力される出力画素データを出力画像２ｂの対応するデータ格納領域へデータ転送することによって結合し、出力画像２ｂを生成する。
【００１６】
また、上記課題を解決するために、入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理方法において、画像分割手段が、前記入力画像の水平方向の画素数が、水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶する一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割するステップと、前記画像分割手段が、入力データ転送手段を制御して、等分割された分割領域ごとに、前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送するステップと、画素処理手段が、前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施すステップと、画像結合手段が、出力データ転送手段を制御し、前記分割領域ごとに出力される前記画素処理手段の出力画素データを結合するステップと、を有し、前記分割領域ごとに、前記分割領域の水平方向画素数幅を単位として前記入力画像の画素データをラインごとにデータ転送して画素処理し、画素処理が終了して前記分割領域ごとに出力される前記出力画素データを結合して前記出力画像を生成する、ことを特徴とする画像処理方法、が提供される。
【００１７】
このような手順の画像処理方法では、入力画像の水平方向の画素数が一時記憶手段の水平方向画素数幅より大きい場合に、画素分割手段によって入力画像が垂直に等分割されるとともに、入力データ転送手段が制御され、分割領域ごとに入力画像の画素データが一時記憶手段に転送される。一時記憶手段に転送された分割領域の画素データは、画素処理手段によって単一画素単位及び複数画素単位で画素処理が施される。分割領域ごとに出力される出力画素データは、画像結合手段が出力データ転送手段を制御することによって、出力画像の相当する位置に転送され、他の分割領域と結合される。これにより、入力画像が分割され、分割領域ごとに画素処理された後、結合されて出力画像が生成される。
【発明の効果】
【００１８】
本発明では、所定の水平方向画素数幅で入力画像の複数ラインの画素データを一時記憶可能なラインバッファの水平方向画素数幅に応じて入力画像を垂直に等分割し、分割領域ごとにラインバッファに順次転送して画素処理を行う。そして、画素処理された出力画素データを結合して出力画像を生成する。
【００１９】
このように、入力画像を垂直分割して短冊状となった画像をそれぞれ処理し、結合して１つの画像に戻すことにより、限られた水平方向画素数幅のラインバッファでいかなるサイズの画像も高速処理が可能なライン単位の読み出しで画像処理することができる。これにより、回路規模を増加させることなく、画像処理の高機能化が実現できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。
【００２１】
本発明に係る画像処理装置１は、フレームバッファ２に格納される入力画像２ａを所定の単位で入力して画像処理を施した後、出力画像２ｂとしてフレームバッファ２の所定の領域に書き込む機能を有す。このような画像処理装置１は、ラインバッファ１１、画像分割手段１２、入力データ転送手段１３、画素処理手段１４、画像結合手段１５及び出力データ転送手段１６を具備する。
【００２２】
ラインバッファ１１は、画素処理の対象となる画素データを画像処理装置１内に一時的に記憶するための一時記憶手段であり、所定の水平方向画素数幅で入力画像２ａの複数ラインの画素データをこの水平方向画素数幅で一時記憶することができる。たとえば、動画は大きく見積もってもＶＧＡサイズ（６４０×４８０画素）まで処理できれば十分であることから、ラインバッファ１１は水平方向に少なくともＶＧＡサイズ以上の水平方向画素数幅（ラインサイズ）を備える。また、垂直方向に、少なくとも画素処理手段１４の複数画素単位の垂直画素数幅を備え、たとえば、５×５画素のマトリクス処理を行う場合は、５または６ラインで構成される。
【００２３】
画像分割手段１２は、入力画像２ａの水平方向の画素数に応じて、入力画像２ａを垂直に偶数（以下、２Ｎとする）個の分割領域に分割する。すなわち、入力画像２ａの水平方向の画素数とラインバッファ１１の水平方向画素数幅とを比較し、入力画像２ａの水平方向の画素数の方が大きい場合は、入力画像２ａを垂直に等分割する。このとき、等分割する分割領域の数は、２Ｎ個となるようにする。図の例では、入力画像２ａを１Ａ、２Ａ、３Ａ、４Ａの４領域に分割している。そして、分割領域ごとの読み出し起点と、読み出しのライン幅（水平方向画素数幅）を指示することによって入力データ転送手段１３を制御し、入力画像２ａの画素データを分割領域ごとに順にラインバッファ１１へデータ転送させる。なお、ラインサイズは、分割数で指示することもできる。
【００２４】
入力データ転送手段１３は、入力画像２ａの画素データを、画像分割手段１２が指定した分割領域の読み出し起点のラインから順に、ラインごとにラインバッファ１１へデータ転送する。なお、入力データ転送手段１３は、ＣＰＵがデータ転送プログラムを実行することによって実現されてもよいし、ＤＭＡコントローラによって実現されてもよい。
【００２５】
画素処理手段１４は、ラインバッファ１１に格納される画素データを用いて、画素補間や輪郭強調等のマトリクス処理と、γ補正や色空間変換等の画素単位演算を実行し、出力画素データを算出する。
【００２６】
画像結合手段１５は、画像分割手段１２によって分割制御され、画素処理手段１４によって分割領域ごとに演算処理されて出力される出力画素データを結合する制御を行う。図の例では、入力画像２ａの分割領域１Ａの出力画素データを、対応する出力画像２ｂの分割領域１Ｂに転送されるように、画像分割手段１２とは逆に書き込み起点とラインサイズを出力データ転送手段１６に指示する。
【００２７】
出力データ転送手段１６は、画像結合手段１５に従って、画素処理手段１４が分割領域ごとに出力する出力画素データを、出力画像２ｂの格納領域の該当領域に転送する。なお、出力データ転送手段１６は、ＣＰＵがデータ転送プログラムを実行することによって実現されてもよいし、ＤＭＡコントローラによって実現されてもよい。
【００２８】
また、入力データ転送手段１３および出力データ転送手段１６の代わりに、ＤＭＡを２チャンネル設けて読み出しと書き込みを独立して行わせることもできるし、共通で設けて１チャンネルのＤＭＡコントローラを読み出しと書き込みで排他的に使用してもよい。
【００２９】
このような構成の画像処理装置１の動作について説明する。
画像処理装置１には、ライン読み出しを行うためのラインバッファ１１が設けられており、所定の水平方向画素数を単位とするラインが複数ライン分一時記憶できる。画像分割手段１２は、フレームバッファ２に格納される対象の入力画像２ａの水平方向の画素数がラインバッファ１１のラインサイズより大きい場合、入力画像２ａを垂直に２Ｎ分割し、ラインサイズ以下の幅の短冊状に分ける。図の例では、４分割し、１Ａ、２Ａ、３Ａ、４Ａの４分割領域にしている。そして、入力データ転送手段１３を制御し、分割領域ごとに入力画像２ａの画素データを転送する。
【００３０】
たとえば、最初に分割領域１Ａのデータ転送を行うとすると、分割領域１Ａの任意の画素位置（たとえば、左上）を読み出し起点、読み出しのラインの単位を分割領域の水平方向画素数幅とし、ラインバッファ１１へのデータ転送を入力データ転送手段１３に指示する。入力データ転送手段１３は、指示された読み出し起点から、分割領域の水平方向画素数幅をライン読み出しの単位とし、ラインごとに順次分割領域１Ａのデータをラインバッファ１１にデータ転送する。画素処理手段１４は、ラインバッファ１１に一時記憶された画素に対して単一画素単位及び複数画素単位で画素処理を行い、出力画素データを出力する。画像結合手段１５は、出力される出力画素データの出力画像２ｂに対応する分割領域に応じて出力データ転送手段１６を制御し、該当領域に出力画素データを転送させる。分割領域１Ａが入力している場合、これに相当する分割領域１Ｂに出力画素データが転送されるように指示を行う。こうして、入力画像２ａの分割領域１Ａが画素処理され、出力画像２ｂの分割領域１Ｂが設定されると、続いて、分割領域２Ａの処理が行われる。画像分割手段１２は、分割領域の水平方向画素数幅と同時に求めたオフセット値分だけ読み出し起点を移動し、分割領域１Ａと同様の処理を行う。画像結合手段１５もまた、オフセット値で書き込み起点を移動し、分割領域２Ｂに出力画素データを格納する。以下、他の分割領域も同様の処理を行う。
【００３１】
ここで、データ転送順について説明する。図２は、画像を２分割した場合のデータ転送順を示した図である。
図の例では、ベイヤーデータ２１を分割領域Ａ（２１ａ）と分割領域Ｂ（２１ｂ）とに２分割してデータ転送処理を行う。画像分割手段１２では、分割の際に、分割対象の画像の水平方向画素数が偶数の場合には、水平方向画素数を２分割した値＋ｍが分割領域の水平方向画素数幅になる。ここで、ｍはマトリクス処理のサイズに依存するパラメータで、５×５画素の場合はｍ＝２となる。しかしながら、画像の水平方向画素数が奇数の場合には、水平方向画素数を２分割することができないので、水平方向の中心に位置する画素データ列を双方の領域に含め、同様に＋ｍを行って分割領域を設定する。図の例では、オーバーラップ部２１ｃが、分割領域Ａ（２１ａ）及び分割領域Ｂ（２１ｂ）の双方の領域に含まれるように分割される。
【００３２】
こうして分割領域が決定されると、分割領域Ａ（２１ａ）、分割領域Ｂ（２１ｂ）の順にラインバッファへのデータ転送が行われる。まず、分割領域Ａ（２１ａ）のライン１の分割領域の水平方向画素数幅分の画素からデータ転送が開始され、ラインごとに順に、ライン３８までデータ転送が行われる。続いて、分割領域Ｂ（２１ｂ）のデータ転送が開始され、上（図ではライン３９）から順にラインごとにデータ転送が行われ、最終ライン（図ではライン７６）の画素データが転送されて、データ転送が終了する。
【００３３】
また、画素処理手段１４からは、同じ順番で分割領域Ａ（２１ａ）、分割領域Ｂ（２１ｂ）の出力画素データが出力される。画像結合手段１５は、分割領域Ａ（２１ａ）及び分割領域Ｂ（２１ｂ）の出力画素データを、出力画像の相当する位置に転送されるようにデータ転送を制御して画像結合を行う。このとき、分割領域Ｂ（２１ｂ）は、双方の分割領域に含めた、水平方向の中心に位置していた画素データ列を分割領域Ａ(２１ａ)に重ね合わせるようにデータ転送を行う。
【００３４】
以上のように、所定のラインサイズのラインバッファを設け、このラインバッファのラインサイズに応じて入力画像を垂直に等分割して画素処理を行うことによって、ラインバッファの容量を極力抑えつつ、高画素の画像処理を比較的高速に処理することが可能となる。ラインバッファのラインサイズに応じて入力画像は分割されるので、処理可能な画像の画素数に上限はない。また、画素数の小さな動画は、フルライン方式（分割せずにそのまま全ラインの読み出しを行う）が可能であるので、高フレームレートの実現が可能となる。このように、バッファ容量を増大させることなく、画像処理の高機能化が図れる。なお、入力画像は、ＹＵＶ等の、ベイヤー以外の画素データに適用することもできる。
【００３５】
以下、実施の形態を、ラインサイズが１０２４＋α画素のラインバッファを具備し、入力画像を４分割まで分割可能な画像処理装置に適用した場合を例に図面を参照して詳細に説明する。また、複数画素単位で行う画素処理は、５×５画素で行うとする。
【００３６】
ここで、画像処理装置のラインバッファのラインサイズは、入力画像を垂直に２分割し、短冊状になった画像をそれぞれ処理して１つの画像に戻すことを考えると、入力画像の水平方向画素数幅の半分強あればよい。たとえば、一般に広く用いられている画像サイズにＶＧＡ（６４０×４８０画素）や、ＳＶＧＡ（Super Video Graphics Array）（１０２４×７６８画素）がある。少なくともこれらのサイズにフルラインで対応するため、実施の形態では、ラインバッファの水平方向画素数幅を１０２４＋α（αは若干数の余裕分）としている。
【００３７】
ラインバッファのサイズが１０２４＋α画素であれば、静止画の場合、４分割まで行ったとして、水平方向画素数が４０９６画素まで対応することができる。また、動画は大きく見積もってもＶＧＡサイズまで処理できれば十分であるので、１０２４＋αであればフルラインで高速に処理することができる。
【００３８】
処理対象の画像について説明する。図３は、入力画像と出力画像のサイズ関係を示した図である。画素処理では、５×５画素のマトリクス処理を行うので、入力画像２００ａのサイズ（水平方向＝Ｈ画素、垂直方向＝Ｖ画素）に対して、出力画像２００ｂのサイズは、上下に２画素、左右に２画素小さいサイズ（水平方向＝Ｈ−４画素、垂直方向＝Ｖ−４画素）になる。以下、入力画像の水平方向画素数をＨ、垂直方向画素数をＶとする。
【００３９】
次に、画像処理装置のハードウェア構成について説明する。図４は、実施の形態の画像処理装置のハードウェア構成例を示すブロック図である。
画像処理装置は、画像処理回路１０、フレームバッファ２０、ＣＰＵ（Central Processing Unit）３０、ＤＭＡ４０、ＲＡＭ（Random Access Memory）５０、ＲＯＭ（Read Only Memory）６０が、システムバス７０によって接続されており、ＣＰＵ３０によって装置全体が制御されている。
【００４０】
画像処理回路１０は、所定のラインサイズのラインバッファ１１を有し、フレームバッファ２０に格納される入力画像の画素データを所定のライン単位でラインバッファ１１にデータ転送し、画素処理を行った後、フレームバッファ２０の出力画像格納領域にデータ転送する。フレームバッファ２０には、処理対象の入力画像の画素データ及び画像処理が行われた出力画像の画素データが一時的に格納される。ＣＰＵ３０は、装置全体を制御するとともに、プログラムを実行することにより画像分割手段、画像結合手段、画素処理手段として機能させることができる。ＤＭＡ４０は、転送先と転送元のアドレスと転送サイズが指定されるとＣＰＵ３０を介さずにデータ転送を行う。ＲＡＭ５０には、ＣＰＵ３０による処理に必要な各種データが格納される。ＲＯＭ６０には、ＯＳ（Operating System）やアプリケーションのプログラムが格納される。
【００４１】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、上記構成は一例であり、ＤＭＡ４０は、読み出しと書き出しを独立して行う２チャンネル構成としても、読み出しと書き出しを排他的に行う１チャンネル構成とするとしてもよい。また、データ転送をＣＰＵ３０が行うとしてもよい。さらに、入力画像の分割を行う画像分割手段は、ＣＰＵ３０がプログラムを実行するソフトウェア構成としても、画像分割回路のハードウェア構成としてもよい。同様に、画像結合手段もソフトウェアもしくはハードウェアのいずれで構成されてもよい。
【００４２】
ここで、画像分割手段をハードウェア構成とした場合の一例を示す。図５は、実施の形態の垂直２Ｎ分割回路のブロック図である。
垂直２Ｎ分割回路は、入力画像左上原点アドレスレジスタ１０１、垂直方向画素数（Ｖ）レジスタ１０２、水平方向画素数（Ｈ）レジスタ１０３、２分割水平方向画素数（以下、Ｈ２とする）レジスタ１０４及び４分割水平方向画素数（以下、Ｈ４とする）レジスタ１０５の各レジスタと、入力値を２分割する２分割関数１０６、１０７と、選択回路１０８、分割数決定を判定する判定回路１０９、データ転送を制御するアドレスカウンタ１１０を有する。
【００４３】
入力画像左上原点アドレスレジスタ１０１、Ｖレジスタ１０２及びＨレジスタ１０３の値は、ＣＰＵ３０が入力画像に応じたそれぞれの値を設定する。入力画像左上原点アドレスレジスタ１０１には、読み出し原点となるフレームバッファ上で入力画像が格納される領域の左上のアドレスが設定される。Ｖレジスタ１０２には入力画像の垂直方向の画素数、Ｈレジスタ１０３には入力画像の水平方向の画素数が設定される。
【００４４】
Ｎは、０から順に１、２とカウントアップするカウンタで、判定回路１０９の出力Ｈｓｅｌが１（分割数決定）した場合にストップする。
２分割関数１０６、１０７は、カウンタＮのカウント値が対応する値であって、かつ判定回路１０９の出力Ｈｓｅｌが０（分割数未決定）のとき、入力される水平方向画素数を２分割した値ＨＳｉｚｅを算出し、判定回路１０９へ出力する。２分割関数１０６は、Ｎ＝１、Ｈｓｅｌ＝０のとき動作し、Ｈレジスタ１０３の値を２分割した値を、Ｈ２レジスタ１０４へ格納する。２分割関数１０７は、Ｎ＝２、Ｈｓｅｌ＝０のとき動作し、Ｈ２レジスタ１０４の値を２分割した値を、Ｈ４レジスタ１０５へ格納する。
【００４５】
選択回路１０８は、カウンタＮの値に対応するＨＳｉｚｅの値を判定回路１０９に出力する。Ｎ＝０の場合はフルラインのＨレジスタ１０３、Ｎ＝１の場合はＨ２レジスタ１０４、Ｎ＝２の場合はＨ４レジスタ１０５に格納される値が出力される。
【００４６】
判定回路１０９は、入力されるＨＳｉｚｅと、ラインバッファのラインサイズ（１０２４＋α）を比較し、ＨＳｉｚｅがラインサイズより小さければ、その分割数に決定する。すなわち、ＨＳｉｚｅ＜＝１０２４＋αが成立すれば、Ｈｓｅｌ＝１（分割数決定）を出力し、成立しなければＨｓｅｌ＝０（分割数未決定）を出力する。
【００４７】
アドレスカウンタ１１０は、判定回路１０９の出力Ｈｓｅｌが１となり、分割数が決定すると、その水平方向画素数ＨＳｉｚｅと、入力画像左上原点アドレスレジスタ１０１及びＶレジスタ１０２の値を用いて、転送データの格納アドレスを算出する。
【００４８】
垂直２Ｎ分割回路の動作について説明する。
まず、Ｎ＝０となり、Ｈレジスタ１０３に格納される入力画像の水平方向画素数（Ｈ）が判定回路１０９に入力する。判定回路１０９は、ＨＳｉｚｅ＝Ｈと１０２４＋αを比較し、Ｈが１０２４＋αより小さければ、Ｈｓｅｌ＝１を出力し、分割数０を決定する。
【００４９】
このとき、Ｈｓｅｌ＝１とならなければ、カウンタＮは１カウントアップし、Ｎ＝１となる。これにより、２分割関数１０６がＨ２を算出し、算出されたＨ２は、Ｈ２レジスタ１０４に格納された後、判定回路１０９に入力される。判定回路１０９は、ＨＳｉｚｅ＝Ｈ２と１０２４＋αを比較し、Ｈ２が１０２４＋αより小さければ、Ｈｓｅｌ＝１を出力し、分割数１を決定する。
【００５０】
このとき、Ｈｓｅｌ＝１とならなければ、カウンタＮは１カウントアップし、Ｎ＝２となる。これにより、２分割関数１０７がＨ４を算出し、算出されたＨ４は、Ｈ４レジスタ１０５に格納された後、判定回路１０９に入力される。判定回路１０９は、ＨＳｉｚｅ＝Ｈ４と１０２４＋αを比較し、Ｈ４が１０２４＋αより小さければ、Ｈｓｅｌ＝１を出力し、分割数２を決定する。
【００５１】
アドレスカウンタ１１０は、Ｈｓｅｌ＝１となると、決定された分割数に応じたＨＳｉｚｅ（Ｈ、Ｈ２、またはＨ４）と、入力画像左上原点アドレスレジスタ１０１及びＶレジスタ１０２の値を用いて、データ転送制御を行う。以下、それぞれの場合について説明する。
【００５２】
まず、図６を用いて、分割なし（分割数＝０）の場合のアドレスカウンタの動作について説明する。実施の形態では、入力画像２００のＨが１０２４＋αより小さい場合、たとえば、ＶＧＡ、ＳＶＧＡなどが分割なしで処理される。動画像も最大でＶＧＡサイズを考えておけばよいことから、分割なしで処理される。
【００５３】
分割なしの場合、入力画像左上原点アドレスレジスタ１０１の値を読み出し起点、ラインサイズをＨとして、ラインごとにデータ転送を行われるようにアドレス制御を行う。これにより、入力画像２００の原点アドレス（０，０）から水平方向にＨ番目の画素までが１ラインとして読み出され、ラインバッファに転送される。続いて、次のラインの読み出し起点アドレス（０，１）を指示すると、ここからＨ単位の１ライン分のデータ転送が行われる。このようにして、最終画素（Ｈ−１，Ｖ−１）までデータ転送が行われる。
【００５４】
次に、図７を用いて、２分割（分割数＝１）の場合のアドレスカウンタの動作について説明する。実施の形態では、入力画像のＨが１０２４＋αから２０４８までの場合、たとえば、ＳＶＧＡ（１２８０×１０２４画素）などが２分割で処理される。
【００５５】
２分割の場合のデータ転送は、入力画像が２分割された分割領域１（２１１）、分割領域２（２１２）の順に実行される。図７の（Ａ）に示したように、分割領域１（２１１）では、原点アドレス（０，０）を読み出し起点、ラインサイズをＨ２として、ラインごとにデータ転送されるようにアドレス制御を行う。なお、上記の説明のように、Ｈ２は入力画像を２分割した値＋ｍ（マトリクス処理のサイズに依存するパラメータ）で設定され、オフセットＳ２は、ｍに応じてＨ２とともに算出されている。これにより、原点アドレス（０，０）から水平方向にＨ２番目の画素までが１ラインとして読み出され、ラインバッファに転送される。Ｈ２単位の１ラインが終了したら、次のラインの読み出し起点が順次指示され、分割領域１（２１１）の最終画素（Ｈ２−１，Ｖ−１）までデータ転送が行われる。次に、図７の（Ｂ）に示したように、分割領域２（２１２）では、オフセットＳ２を用いて読み出し起点アドレス（Ｓ２，０）を設定し、ここを起点としてＨ２単位の１ラインごとにデータ転送が行われるように制御を行う。分割領域１と同様に、ラインごとに垂直方向に順次データ転送され、最終画素（Ｈ−１，Ｖ−１）までデータ転送が行われる。
【００５６】
そして、図８を用いて、４分割（分割数＝２）の場合のアドレスカウンタの動作について説明する。実施の形態では、入力画像のＨが２０４８から４０９６までの場合、４分割で処理される。
【００５７】
４分割の場合のデータ転送は、入力画像が４分割された分割領域１（２２１）、分割領域２（２２２）、分割領域３（２２３）、分割領域４（２２４）の順に実行される。図８（Ａ）に示したように、分割領域１（２２１）では、原点アドレス（０，０）を読み出し起点、ラインサイズをＨ４として、ラインごとにデータ転送されるようにアドレス制御を行う。なお、Ｈ２と同様に、Ｈ４はｍを含んで設定され、オフセットＳ４は、ｍに応じてＨ４とともに算出されている。これにより、原点アドレス（０，０）から水平方向にＨ４番目の画素までが１ラインとして読み出され、ラインバッファに転送される。そして、Ｈ４単位のラインごとに垂直方向に順次データ転送され、分割領域１（２２１）のデータ転送が終了する。続いて、図８（Ｂ）に示したように、分割領域２（２２２）では、オフセットＳ４を用いて読み出し起点アドレス（Ｓ４，０）を設定し、ここを起点としてＨ４単位の１ラインごとにデータ転送が行われるように制御を行う。分割領域１（２２１）と同様に、Ｈ４単位のラインごとに垂直方向に順次データ転送され、分割領域２（２２２）のデータ転送が終了する。続いて、図８（Ｃ）に示したように、分割領域３（２２３）では、オフセットＳ２を用いて読み出し起点アドレス（Ｓ２，０）を設定し、ここを起点としてＨ４単位の１ラインごとにデータ転送が行われるように制御を行う。分割領域１（２２１）と同様に、Ｈ４単位のラインごとに垂直方向に順次データ転送され、分割領域３（２２３）のデータ転送が終了する。続いて、図８（Ｄ）に示したように、分割領域４（２２４）では、オフセットＳ２＋Ｓ４を用いて読み出し起点アドレス（Ｓ２＋Ｓ４，０）を設定し、ここを起点としてＨ４単位の１ラインごとにデータ転送が行われるように制御を行う。分割領域１（２２１）と同様に、Ｈ４単位のラインごとに垂直方向に順次データ転送され、最終画素（Ｈ−１，Ｖ−１）までデータ転送が行われる。
【００５８】
このように、入力画像を水平方向の画素数が同じとする垂直２Ｎ分割するので、フレームバッファから入力画像の画素データを読み出す際のアドレスのインクリメント方法は、いずれの分割処理においても、水平方向の座標のオフセット値が異なる以外、カウンタの動作は共通になる。このように、アドレス指示のパラメータの更新はオフセット値のみで行うため、高速処理が可能である。また、入力画像サイズに合わせて分割領域を増加させれば、限られたリソース（ラインバッファ）でいかなるサイズの画像も処理することができる。
【００５９】
次に、上記の手順で垂直２Ｎ分割され、画素処理された出力画素データの画像結合について説明する。画素処理手段からは、上記のデータ転送順に従って、順次出力画素データが出力される。
【００６０】
分割なしの場合は、フレームバッファの出力画像領域の原点アドレス（０，０）を書き込み基点として、Ｈ単位の１ラインごとに出力画素データのデータ転送が行われる。
２分割以上の場合は、分割前の水平方向画素数（Ｈ２単位の分割領域の結合の場合はＨ、Ｈ４単位の分割領域の結合の場合はＨ２）が偶数であるか奇数であるかにより処理が２種類ある。つまり、偶数の場合は、そのまま結合すればよい。他方、奇数である場合は、合わせ目が１列分だけ重なり合うように結合すればよい。
【００６１】
まず、図９を用いて、水平方向画素数Ｈが偶数の入力画像を２分割して処理した場合の画像結合について説明する。Ｈ（偶数）を２分割した分割領域の画像結合を行う場合は、そのまま結合すればよいので、水平方向にＨ２−４、垂直方向にＶ−４の領域を有する分割領域１（３０１）の出力画素データと、水平方向にＨ２−４、垂直方向にＶ−４の領域を有する分割領域２（３０２）の出力画素データとを結合し、水平方向にＨ−４、垂直方向にＶ−４の出力画像３０３の画素データを得る。なお、分割領域２（３０２）の画像結合は、フレームバッファへのデータ転送時に指示する出力アドレスをオフセットＨ２−４により水平方向にＨ２−４ずらして行う。
【００６２】
次に、図１０を用いて、水平方向画素数Ｈが奇数の入力画像を２分割して処理した場合の画像結合について説明する。Ｈ（奇数）を２分割した場合は、合わせ目となる１列分を重なり合うように結合するので、分割領域１（３１１）の出力画素データをフレームバッファへ転送した後、オフセット値をＨ２−３として１列分重なるようにアドレスを指示し、分割領域２（３１２）の出力画素データをフレームバッファへ転送する。これにより、合わせ目３１４が１列分重なり合った出力画像３１３が生成される。なお、上記の手順では、合わせ目３１４の１列の出力画素データは、分割領域２（３１２）の画素データが設定されるが、合わせ目３１４となる１列に関しては、お互いに同じ画素値が算出されているので、どちらが選択されてもよい。
【００６３】
そして、図１１を用いて、水平方向画素数Ｈが偶数の入力画像を２分割し、さらに分割領域の水平方向画素数Ｈ２（奇数）を２分割して処理した場合の画像結合について説明する。まず、分割領域１（３２１）の出力画素データは、書き出し起点アドレスを出力画像の原点アドレス（０，０）としてデータ転送される。次の、分割領域２（３２２）と分割領域１（３２１）が結合するＨ２は奇数であるので、分割領域２（３２２）は、分割領域１（３２１）と１列重なり合うように、オフセット値をＨ４−３としてアドレスが制御され、データ転送される。次の分割領域３（３２３）と分割領域２（３２２）の結合は、ここを分割したときのＨが偶数であるので、フレームバッファへのデータ転送時に指示する出力アドレスをオフセット（Ｈ４−４）×２により水平方向に（Ｈ４−４）×２ずらし、重ね合わせずに結合する。そして、分割領域４（３２４）と分割領域３（３２３）が結合するＨ２は奇数であるので、分割領域４（３２４）は分割領域３（３２３）と１列重なり合うようにデータ転送される。これにより、合わせ目３１６と合わせ目３１７が重なり合った出力画像３１５が生成される。
【００６４】
このように、フレームバッファに出力する出力画像の画素データの転送も、分割領域ごとにオフセット値を用いて書き込み起点のアドレスを変更する以外のデータ転送処理は共通であるので、処理を高速化することができる。また、結合もデータ転送先のオフセット処理のみで行うことができるため、結合のために中間データを一時保存するための記憶領域を持つ必要がなく、メモリの有効活用が図れる。
【００６５】
次に、このような画像処理装置による画像処理方法について説明する。
図１２は、本実施の形態の画像処理方法の手順を示したフローチャートである。
入力画像がフレームバッファに設定された後、処理が起動される。
【００６６】
［ステップＳ０１］  入力画像のＨと、ラインバッファのサイズ（１０２４＋α）とを比較する。Ｈが１０２４＋αより小さい場合、すなわち分割なしで処理できる場合は、後述する処理Ａに進む。Ｈが１０２４＋αを超えている場合、処理をステップＳ０２へ進める。
【００６７】
［ステップＳ０２］  入力画像のＨが１０２４＋αを超える静止画である場合、入力画像を垂直２分割したＨ２を算出する。Ｈが偶数の場合には、
Ｈ２＝Ｉｎｔ（Ｈ／２）＋２                                    ・・・（１）
により算出し、Ｈが奇数の場合には、
Ｈ２＝Ｉｎｔ（Ｈ／２）＋１＋２                                ・・・（２）
により算出する。なお、Ｉｎｔは、引数の整数部を取り出す操作（小数部切捨て）を行う関数である。式（１）または式（２）より、Ｈ２が算出される。
【００６８】
［ステップＳ０３］  ２分割の水平方向画素数Ｈ２と、ラインバッファのサイズ（１０２４＋α）とを比較する。Ｈ２が１０２４＋αを超えている場合、すなわち２分割で処理できない場合は、後述する処理Ｂに進む。Ｈ２が１０２４＋αより小さい場合、処理をステップＳ０４へ進める。
【００６９】
［ステップＳ０４］  入力画像は、垂直２分割で処理できるので、以下の垂直２分割処理を行う。まず、実行処理中の分割領域を示す分割処理回数Ｎを初期値の０に設定する。なお、Ｎ＝０は分割領域１、Ｎ＝１は分割領域２の処理を行うことを示す。
【００７０】
［ステップＳ０５］  データ転送の転送元の読み出し起点として、入力画像の左上原点（０，０）を設定する。また、対応する出力画素データの書き込み起点として、読み出し起点に対応する出力画像の左上原点を設定する。
【００７１】
［ステップＳ０６］  Ｈ２単位でライン読み出しを行い、該当する入力画像の画素データをラインバッファに転送する。すなわち、水平方向に並んだＨ２画素分の画素データをライン単位でラインバッファの空き領域分だけ垂直方向に読み出し、読み出した画素データをラインバッファに書き込む。
【００７２】
［ステップＳ０７］  ラインバッファに転送された画素データを用いて、画素補間、輪郭強調などのマトリクス処理を行うとともに、γ補正や色空間変換などの画素単位演算といった画素処理を行い、出力画素データを生成する。
【００７３】
［ステップＳ０８］  出力画素データをライン単位でフレームバッファに書き出し、画像結合を行う。すなわち、水平方向に並んだＨ２−４画素分の出力画素データをライン単位でフレームバッファに書き込む。
【００７４】
［ステップＳ０９］  最終ラインまで終了したかどうかを判定する。終了していない場合は、ステップＳ０６に戻って、まだデータ転送されていないラインのデータ転送処理からの手順を行う。
【００７５】
［ステップＳ１０］  最終ラインまで終了した場合、分割処理回数Ｎをインクリメントする。
［ステップＳ１１］  分割処理回数Ｎが２であるかどうか、すなわち、Ｎ＝１で表される分割領域２までの処理を終了したかどうかを判定する。Ｎ＝２の場合、処理を終了する。Ｎ＝１であれば、分割領域２のデータ転送処理を行う。
【００７６】
［ステップＳ１２］  分割領域２のデータ転送処理を行うため、読み出し起点をオフセットＳ２で移動し、入力画像の座標（Ｓ２，０）を読み出し起点とし、ステップＳ０６に戻って、Ｈ２単位のライン読み出しからの手順を行う。なお、Ｓ２は、Ｈを用いて、
Ｓ２＝Ｉｎｔ（Ｈ／２）−２                                      ・・・（３）
により算出する。
【００７７】
以上の手順が実行されることにより、水平方向画素数が１０２４＋αから２０４８である入力画像が、垂直２分割して画素処理が行われた後、１つの出力画像として出力される。
【００７８】
次に、処理Ａについて説明する。処理Ａでは、入力画像のサイズが１０２４＋α以下の静止画もしくは動画を分割なしで処理する。図１３は、本実施の形態の画像処理方法による分割なしの場合の処理手順を示したフローチャートである。
【００７９】
［ステップＳ２１］  データ転送の転送元の読み出し起点として、入力画像の左上原点（０，０）を設定する。また、対応する出力画素データの書き込み起点として、読み出し起点に対応する出力画像の左上原点を設定する。
【００８０】
［ステップＳ２２］  Ｈ単位でライン読み出しを行い、該当する入力画像の画素データをラインバッファに転送する。すなわち、水平方向に並んだＨ画素分の画素データをライン単位でラインバッファの空き領域分だけ垂直方向に読み出し、読み出した画素データをラインバッファに書き込む。
【００８１】
［ステップＳ２３］  ラインバッファに転送された画素データを用いて、画素補間、輪郭強調などのマトリクス処理を行うとともに、γ補正や色空間変換などの画素単位演算といった画素処理を行い、出力画素データを生成する。
【００８２】
［ステップＳ２４］  出力画素データをライン単位でフレームバッファに書き出し、画像結合を行う。すなわち、水平方向に並んだＨ−４画素分の出力画素データをライン単位でフレームバッファに書き込む。
【００８３】
［ステップＳ２５］  最終ラインまで終了したかどうかを判定する。終了していない場合は、ステップＳ２２に戻って、まだデータ転送されていないラインのデータ転送処理からの手順を行う。
【００８４】
以上の手順が実行されることにより、水平方向画素数が１０２４＋αより小さい静止画や動画像などの入力画像が、分割なしで画素処理され、出力画像が出力される。
次に、処理Ｂについて説明する。処理Ｂでは、入力画像のサイズが２０４８を超える静止画を垂直４分割で処理する。図１４は、本実施の形態の画像処理方法による垂直４分割の場合の処理手順を示したフローチャートである。
【００８５】
［ステップＳ３１］  ２分割されたＨ２が１０２４＋αを超える静止画である場合、入力画像を垂直４分割したＨ４を算出する。Ｈ２が偶数の場合には、
Ｈ４＝Ｉｎｔ（Ｈ２／２）＋２                                    ・・・（４）
により算出し、Ｈ２が奇数の場合には、
Ｈ４＝Ｉｎｔ（Ｈ２／２）＋１＋２                                ・・・（５）
により算出する。
【００８６】
［ステップＳ３２］  ４分割のＨ４と、ラインバッファのサイズ（１０２４＋α）とを比較する。Ｈ４が１０２４＋αを超えている場合、すなわち４分割で処理できない場合は、処理Ｃに進む。なお、処理Ｃでは、さらに、Ｈ４を２分割した後、４分割の場合と同様の処理を行うので処理手順の説明は省略する。Ｈ４が１０２４＋αより小さい場合、処理をステップＳ３３へ進める。
【００８７】
［ステップＳ３３］  入力画像は、垂直４分割で処理できるので、以下の垂直４分割処理を行う。まず、分割処理回数Ｎを初期値の０に設定する。Ｎ＝０は分割領域１、Ｎ＝１は分割領域２、Ｎ＝２は分割領域３、Ｎ＝３は分割領域４の処理を行うことを示す。
【００８８】
［ステップＳ３４］  データ転送の転送元の読み出し起点として、入力画像の左上原点（０，０）を設定する。また、対応する出力画素データの書き込み起点として、読み出し起点に対応する出力画像の左上原点を設定する。
【００８９】
［ステップＳ３５］  Ｈ４単位でライン読み出しを行い、該当する入力画像の画素データをラインバッファに転送する。すなわち、水平方向に並んだＨ４画素分の画素データをライン単位でラインバッファの空き領域分だけ垂直方向に読み出し、読み出した画素データをラインバッファに書き込む。
【００９０】
［ステップＳ３６］  ラインバッファに転送された画素データを用いて、画素補間、輪郭強調などのマトリクス処理を行うとともに、γ補正や色空間変換などの画素単位演算といった画素処理を行い、出力画素データを生成する。
【００９１】
［ステップＳ３７］  出力画素データをライン単位でフレームバッファに書き出し、画像結合を行う。すなわち、水平方向に並んだＨ４−４画素分の出力画素データをライン単位でフレームバッファに書き込む。
【００９２】
［ステップＳ３８］  最終ラインまで終了したかどうかを判定する。終了していない場合は、ステップＳ３５に戻って、データ転送未完のラインのデータ転送処理からの手順を行う。
【００９３】
［ステップＳ３９］  最終ラインまで終了した場合、分割処理回数Ｎをインクリメントする。
［ステップＳ４０］  分割処理回数Ｎが４であるかどうか、すなわち、Ｎ＝３で表される分割領域４までの処理を終了したかどうかを判定する。Ｎ＝４の場合、処理を終了する。また、Ｎ＝１であればステップＳ４１、Ｎ＝２であればステップＳ４２、Ｎ＝３であればステップＳ４３へ処理を進め、それぞれ対応する分割領域のデータ転送処理を行う。
【００９４】
［ステップＳ４１］  Ｎ＝１の場合、分割領域２のデータ転送処理を行うため、読み出し起点をオフセットＳ４で移動し、入力画像の座標（Ｓ４，０）を読み出し起点とし、ステップＳ３５に戻って、Ｈ４単位のライン読み出しからの手順を行う。なお、Ｓ４は、Ｈ２を用いて、
Ｓ４＝Ｉｎｔ（Ｈ２／２）−２                                    ・・・（６）
により算出する。
【００９５】
［ステップＳ４２］  Ｎ＝２の場合、分割領域３のデータ転送処理を行うため、読み出し起点をオフセットＳ２で移動し、入力画像の座標（Ｓ２，０）を読み出し起点とし、ステップＳ３５に戻って、Ｈ４単位のライン読み出しからの手順を行う。なお、Ｓ２は、式（３）を用いて算出する。
【００９６】
［ステップＳ４３］  Ｎ＝３の場合、分割領域４のデータ転送処理を行うため、読み出し起点をオフセットＳ２＋Ｓ４で移動し、入力画像の座標（Ｓ２＋Ｓ４，０）を読み出し起点とし、ステップＳ３５に戻って、Ｈ４単位のライン読み出しからの手順を行う。なお、Ｓ２は式（３）、Ｓ４は式（６）を用いて算出する。
【００９７】
以上の処理手順が実行されることにより、水平方向画素数が２０４８から４０９６である入力画像が、垂直４分割して画素処理が行われた後、１つの出力画像として出力される。
【００９８】
さらに、画像領域を２Ｎ分割することにより、いかなるサイズの入力画像も同様の手順で処理することができる。
なお、以上の説明の画像処理装置を、少なくとも垂直２Ｎ分割処理を含む画像処理の各機能を実現する回路を半導体集積回路として組込んだ半導体装置として提供することもできる。半導体装置としてチップ化された画像処理装置は、たとえば、携帯電話機やディジタルカメラなどに適用され、回路規模を増加させることなく、画像処理の高機能化に寄与することができる。
【００９９】
（付記１）  入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理装置において、
水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを前記所定の水平方向画素数幅で一時記憶する一時記憶手段と、
入力画像の水平方向の画素数が前記一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割し、分割領域ごとに前記入力画像の画素データの前記一時記憶手段へのデータ転送を制御する画像分割手段と、
前記画像分割手段に従って、指示された前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送する入力データ転送手段と、
前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施す画素処理手段と、
前記分割領域ごとに順次出力される前記画素処理手段の出力画素データのデータ転送を制御し、前記分割領域ごとの前記出力画素データを結合して出力画像を生成する画像結合手段と、
前記画像結合手段に従って、前記画素処理手段より出力される前記出力画素データを指示された出力画像記憶領域に転送する出力データ転送手段と、
を具備することを特徴とする画像処理装置。
【０１００】
（付記２）  前記画像分割手段は、前記入力画像を前記一時記憶手段の前記所定の水平方向画素数幅を超えない水平方向画素数幅の偶数個の領域に分割することを特徴とする付記１記載の画像処理装置。
【０１０１】
（付記３）  前記入力データ転送手段は、等分割された前記分割領域の水平方向画素数幅を単位として、前記分割領域に属する前記入力画像の画素データをラインごとにデータ転送することを特徴とする付記１記載の画像処理装置。
【０１０２】
（付記４）  前記画像分割手段は、等分割された前記分割領域の水平方向画素数幅をオフセットとして、前記分割領域に相当する前記入力画像の画素データが格納される位置を示すポインタを算出し、読み出し起点として前記入力データ転送手段に指示することを特徴とする付記１記載の画像処理装置。
【０１０３】
（付記５）  前記画像結合手段は、等分割された前記分割領域の水平方向画素数幅をオフセットとして、前記分割領域に相当する前記出力画像の前記出力画素データが格納される位置を示すポインタを算出し、書き込み起点として前記出力データ転送手段に指示することを特徴とする付記１記載の画像処理装置。
【０１０４】
（付記６）  前記画像分割手段は、等分割する前記入力画像もしくは前記分割領域の水平方向画素数が奇数である場合には、等分割する領域の水平方向の中心に位置する画素データ列を双方の前記分割領域に含めて分割し、
前記画像結合手段は、結合する前記分割領域の双方に共通する前記水平方向の中心に位置する画素データ列が含まれていた場合には、双方の前記分割領域の前記水平方向の中心に位置する画素データ列を重ね合わせて結合する、
ことを特徴とする付記１記載の画像処理装置。
【０１０５】
（付記７）  前記入力データ転送手段及び前記出力データ転送手段のうち少なくとも一つは、ＤＭＡコントローラであることを特徴とする付記１記載の画像処理装置。
（付記８）  前記入力データ転送手段及び前記出力データ転送手段は、共通のＤＭＡコントローラであり、前記画像分割手段及び前記画像結合手段によって、排他的に入力データ転送と出力データ転送を行うことを特徴とする付記７記載の画像処理装置。
【０１０６】
（付記９）  前記一時記憶手段は、前記所定の水平方向画素数幅が、少なくともＶＧＡサイズの水平方向画素数幅より大きいことを特徴とする付記１記載の画像処理装置。
（付記１０）  入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理方法において、
画像分割手段が、入力画像の水平方向の画素数が、水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを前記所定の水平方向画素数幅で一時記憶する一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割するステップと、
前記画像分割手段が、入力データ転送手段を制御して、等分割された分割領域ごとに、前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送するステップと、
画素処理手段が、前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施すステップと、
画像結合手段が、出力データ転送手段を制御し、前記分割領域ごとに出力される前記画素処理手段の出力画素データを結合するステップと、
を有し、
前記分割領域ごとに、前記分割領域の水平方向画素数幅を単位として前記入力画像の画素データをラインごとにデータ転送して画素処理し、画素処理が終了して前記分割領域ごとに出力される前記出力画素データを結合して前記出力画像を生成する、
ことを特徴とする画像処理方法。
【０１０７】
（付記１１）  入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する半導体装置において、
水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶するバッファと、
入力画像の水平方向の画素数が前記バッファの前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割し、分割領域ごとに前記入力画像の画素データの前記バッファへのデータ転送を制御する画像分割回路と、
前記画像分割回路によって指示された前記分割領域に属する前記入力画像の画素データを前記バッファに順次転送する入力データ転送回路と、
前記バッファに転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施す画素処理回路と、
前記分割領域ごとに順次出力される前記画素処理回路の出力画素データのデータ転送を制御し、前記分割領域ごとの前記出力画素データを結合して出力画像を生成する画像結合回路と、
前記画像結合回路に従って、前記画素処理回路より出力される前記出力画素データを指示された出力画像記憶領域に転送する出力データ転送回路と、
を具備することを特徴とする半導体装置。
【図面の簡単な説明】
【０１０８】
【図１】実施の形態に適用される発明の概念図である。
【図２】画像を２分割した場合のデータ転送順を示した図である。
【図３】入力画像と出力画像のサイズ関係を示した図である。
【図４】実施の形態の画像処理装置のハードウェア構成例を示すブロック図である。
【図５】実施の形態の垂直２Ｎ分割回路のブロック図である。
【図６】本実施の形態における分割なしの場合のアドレスカウンタの動作を示した図である。
【図７】本実施の形態における２分割の場合のアドレスカウンタの動作を示した図である。
【図８】本実施の形態における４分割の場合のアドレスカウンタの動作を示した図である。
【図９】本実施の形態における水平方向画素数Ｈが偶数の入力画像を２分割して処理した場合の画像結合の動作を示した図である。
【図１０】本実施の形態における水平方向画素数Ｈが奇数の入力画像を２分割して処理した場合の画像結合の動作を示した図である。
【図１１】本実施の形態における水平方向画素数Ｈが偶数の入力画像を２分割し、さらに分割領域の水平方向画素数Ｈ２（奇数）を２分割して処理した場合の画像結合の動作を示した図である。
【図１２】本実施の形態の画像処理方法の手順を示したフローチャートである。
【図１３】本実施の形態の画像処理方法による分割なしの場合の処理手順を示したフローチャートである。
【図１４】本実施の形態の画像処理方法による垂直４分割の場合の処理手順を示したフローチャートである。
【図１５】従来のブロック読み出しにおけるデータ読み出し順を示す図である。
【図１６】従来のブロック読み出し処理回路例のブロック図である。
【図１７】従来のライン読み出しにおけるデータ読み出し順を示す図である。
【図１８】従来のライン読み出し処理回路例のブロック図である。
【符号の説明】
【０１０９】
１  画像処理装置
２  フレームバッファ
２ａ  入力画像
２ｂ  出力画像
１１  ラインバッファ
１２  画像分割手段
１３  入力データ転送手段
１４  画素処理手段
１５  画像結合手段
１６  出力データ転送手段
【図１】
2006186917.tif 000003
【図２】
2006186917.tif 000004
【図３】
2006186917.tif 000005
【図４】
2006186917.tif 000006
【図５】
2006186917.tif 000007
【図６】
2006186917.tif 000008
【図７】
2006186917.tif 000009
【図８】
2006186917.tif 000010
【図９】
2006186917.tif 000011
【図１０】
2006186917.tif 000012
【図１１】
2006186917.tif 000013
【図１２】
2006186917.tif 000014
【図１３】
2006186917.tif 000015
【図１４】
2006186917.tif 000016
【図１５】
2006186917.tif 000017
【図１６】
2006186917.tif 000018
【図１７】
2006186917.tif 000019
【図１８】
2006186917.tif 000020