JP4219887B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP4219887B2
JP4219887B2 JP2004381070A JP2004381070A JP4219887B2 JP 4219887 B2 JP4219887 B2 JP 4219887B2 JP 2004381070 A JP2004381070 A JP 2004381070A JP 2004381070 A JP2004381070 A JP 2004381070A JP 4219887 B2 JP4219887 B2 JP 4219887B2
Authority
JP
Japan
Prior art keywords
image
pixel
output
divided
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004381070A
Other languages
English (en)
Other versions
JP2006186917A (ja
Inventor
聡夫 工藤
淳 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2004381070A priority Critical patent/JP4219887B2/ja
Priority to US11/086,585 priority patent/US7583851B2/en
Priority to CNB2005100646062A priority patent/CN100379246C/zh
Publication of JP2006186917A publication Critical patent/JP2006186917A/ja
Application granted granted Critical
Publication of JP4219887B2 publication Critical patent/JP4219887B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は画像処理装置及び画像処理方法に関し、特に入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理装置及び画像処理方法に関する。
マルチメディア処理システム、とりわけ携帯機器向けシステムにおいては、カメラ機能に関して静止画撮影の高画素化・動画処理性能の向上がますます強く求められている。しかし、一方で、1チップあたりの機能の高密度化要求も強いため、カメラ機能の向上のためにむやみに回路面積を増加させることはできない。
従来のマルチメディア処理システムの画像処理では、CCD(Charge Coupled Device)/CMOS(Complementary Metal Oxide Semiconductor)センサからのベイヤー入力に対してγ補正や色空間変換、画素補間などの画像処理を行う場合、ベイヤーデータをブロック単位もしくはライン単位で読み出して処理を行っていた。
ブロック単位の読み出しを行う画像処理装置について説明する。
図15は、従来のブロック読み出しにおけるデータ読み出し順を示す図であり、図16は、従来のブロック読み出し処理回路例のブロック図である。ブロック読み出しでは、1画像分のベイヤーデータ800を、水平方向及び垂直方向に所定数の画素領域を有するブロック単位801に分割し、ブロックごとに順に読み出しを行う。図の例では、ブロック番号の順に読み出しが行われ、ベイヤーデータ800左上のブロック1から右方向にブロック2、3と順に読み出す。なお、このとき、複数画素単位で行う画像処理のために、所定のオーバーラップ領域を確保して読み出しが行われる。
ブロック読み出し処理回路では、システムバス901a経由でブロック単位のベイヤーデータを上記のブロック順に読み出し、ブロックバッファ0(902a)もしくはブロックバッファ1(902b)に一時保存する。選択器903は、一方のバッファのデータを選択して画像処理を行うカラー処理部904に出力する。このとき、処理効率を上げるため、カラー処理部904に接続されていない他方のバッファには、システムバス901a経由でデータの書き込みが行われる。カラー処理部904は、入力画素データを用いて画像処理を実行し、生成されたデータをシステムバス901b経由で出力する。
次に、ライン単位で読み出しを行う画像処理装置について説明する。図17は、従来のライン読み出しにおけるデータ読み出し順を示す図であり、図18は、従来のライン読み出し処理回路例のブロック図である。ライン読み出しでは、ベイヤーデータ800の水平方向の1ライン単位810ごとに順に読み出しが行われる。
ライン読み出し処理回路では、システムバス901a経由でライン単位のベイヤーデータを上から順に読み出し、ラインバッファ905に一時保存する。ラインバッファ905には、カラー処理部904における処理で必要なライン数分のデータを格納することができる。カラー処理部904は、ラインバッファ905に格納された入力画素データを用いて画像処理を行い、生成されたデータをシステムバス901b経由で出力する。
また、ライン読み出しにおいて、ラインメモリの容量(読み出し可能な水平方向画素数)を超えた原画像データをラインメモリ容量分の領域と、容量を超えた領域とに分割して処理する画像処理装置が提案されている(たとえば、特許文献1参照)。
特開2002−252749号公報(段落番号〔0021〕〜〔0029〕、図2)
しかし、従来のブロック読み出し及びライン読み出しでは、回路規模を増加させることなく、画像処理の高機能化を実現することが難しいという問題点がある。
ブロック読み出しでは、カラー処理部の入力バッファのブロックサイズを抑えることができるので実装面積を小さくすることできるが、入力画像及び出力画像が格納されるフレームバッファにアクセスする回数が多くなり、処理に時間がかかるという問題点がある。このため、処理対象の画像が高画素になればなるほど、処理時間が膨大になる傾向があり、たとえば、シャッターを押してから画像処理が行われて記憶媒体に格納されるまでの時間が長大になってしまう。また、高速処理が必要な動画像には向かないという問題点もある。
一方、ライン読み出しでは、フレームバッファの読み書きの際のバースト効果が大きいため、処理時間を短縮することができるが、カラー処理部の入力バッファとしてフルラインサイズのバッファが数本必要となるため、実装面積が大きくなるという問題点がある。このため、処理対象の画像が高画素になるほど、実装面積が大きくなり、製品の小型・軽量化の実現が難しくなる。とりわけ、携帯電話機やディジタルカメラなど、小型・軽量化が進む携帯機器にライン読み出しを適用することは現実的でない。
また、ラインメモリの容量を超えた原画像データをラインメモリ容量分の領域と、容量を超えた超過領域とに分割して処理する場合、ラインメモリ容量分の領域と超過領域とのサイズが異なるため、サイズ等のパラメータの切替えが煩雑になるという問題点がある。また、ラインメモリ容量分の領域と超過領域とに2分割して処理を行うので、少なくとも、想定される1ラインの半分の領域のラインメモリ容量を確保しておかなければならない。また、さらに高画素の画像に対応することができないという問題点もある。
本発明はこのような点に鑑みてなされたものであり、回路規模を増加させることなく、画像処理の高機能化を実現することが可能な画像処理装置及び画像処理方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような画像処理装置が提供される。画像処理装置1は、ラインバッファ11、画像分割手段12、入力データ転送手段13、画素処理手段14、画像結合手段15及び出力データ転送手段16を有し、対象の入力画像2aを読み込み、画像処理を行った後、出力画像2bとして出力する。
ラインバッファ11は、水平方向に所定の水平方向画素数幅の記憶領域を備え、入力画像2aの画素データの複数ラインを最大で所定の水平方向画素数幅で一時記憶する一時記憶手段である。画像分割手段12は、入力画像2aの水平方向の画素数がラインバッファ11の水平方向画素数幅より多い場合に、ラインバッファ11の水平方向画素数幅に応じて入力画像2aを垂直に等分割し、分割領域ごとに入力画像の画素データをラインバッファ11へ転送するデータ転送を制御する。入力データ転送手段13は、画像分割手段12に従って、指示された分割領域に属する入力画像2aの画素データをラインバッファ11に転送する。画素処理手段14は、ラインバッファ11に転送された画素データに単一画素単位及び複数画素単位で画像処理を施し、出力画素データを順次出力する。画像結合手段15は、分割領域ごとに順次出力される画素処理手段14の出力画素データのデータ転送を制御し、出力画素データを結合して出力画像2bを生成する。出力データ転送手段16は、画像結合手段15に従って、画素処理手段14より出力される出力画素データを、指示された出力画像2bの格納領域に転送する。
このような画像処理装置によれば、画像分割手段12は、入力画像2aの水平方向画素数とラインバッファ11の水平方向画素数幅とを比較し、入力画像2aが大きい場合には、ラインバッファ11の水平方向画素数幅に応じて入力画像2aを垂直に等分割し、分割領域がラインバッファ11の水平方向画素数幅以下になるようにする。そして、入力データ転送手段13を制御し、等分割した分割領域ごとに、分割領域に属する入力画像2aの画素データをラインバッファ11へ順次データ転送する。画素処理手段14は、ラインバッファ11に一時記憶された入力画像2aの画素データを単一画素単位及び複数画素単位で順次画素処理し、出力画素データを出力する。画像結合手段15は、出力データ転送手段16を制御し、分割領域ごとに順次出力される出力画素データを出力画像2bの対応するデータ格納領域へデータ転送することによって結合し、出力画像2bを生成する。
また、上記課題を解決するために、入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理方法において、画像分割手段が、前記入力画像の水平方向の画素数が、水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶する一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割するステップと、前記画像分割手段が、入力データ転送手段を制御して、等分割された分割領域ごとに、前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送するステップと、画素処理手段が、前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施すステップと、画像結合手段が、出力データ転送手段を制御し、前記分割領域ごとに出力される前記画素処理手段の出力画素データを結合するステップと、を有し、前記分割領域ごとに、前記分割領域の水平方向画素数幅を単位として前記入力画像の画素データをラインごとにデータ転送して画素処理し、画素処理が終了して前記分割領域ごとに出力される前記出力画素データを結合して前記出力画像を生成する、ことを特徴とする画像処理方法、が提供される。
このような手順の画像処理方法では、入力画像の水平方向の画素数が一時記憶手段の水平方向画素数幅より大きい場合に、画素分割手段によって入力画像が垂直に等分割されるとともに、入力データ転送手段が制御され、分割領域ごとに入力画像の画素データが一時記憶手段に転送される。一時記憶手段に転送された分割領域の画素データは、画素処理手段によって単一画素単位及び複数画素単位で画素処理が施される。分割領域ごとに出力される出力画素データは、画像結合手段が出力データ転送手段を制御することによって、出力画像の相当する位置に転送され、他の分割領域と結合される。これにより、入力画像が分割され、分割領域ごとに画素処理された後、結合されて出力画像が生成される。
本発明では、所定の水平方向画素数幅で入力画像の複数ラインの画素データを一時記憶可能なラインバッファの水平方向画素数幅に応じて入力画像を垂直に等分割し、分割領域ごとにラインバッファに順次転送して画素処理を行う。そして、画素処理された出力画素データを結合して出力画像を生成する。
このように、入力画像を垂直分割して短冊状となった画像をそれぞれ処理し、結合して1つの画像に戻すことにより、限られた水平方向画素数幅のラインバッファでいかなるサイズの画像も高速処理が可能なライン単位の読み出しで画像処理することができる。これにより、回路規模を増加させることなく、画像処理の高機能化が実現できる。
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
本発明に係る画像処理装置1は、フレームバッファ2に格納される入力画像2aを所定の単位で入力して画像処理を施した後、出力画像2bとしてフレームバッファ2の所定の領域に書き込む機能を有す。このような画像処理装置1は、ラインバッファ11、画像分割手段12、入力データ転送手段13、画素処理手段14、画像結合手段15及び出力データ転送手段16を具備する。
ラインバッファ11は、画素処理の対象となる画素データを画像処理装置1内に一時的に記憶するための一時記憶手段であり、所定の水平方向画素数幅で入力画像2aの複数ラインの画素データをこの水平方向画素数幅で一時記憶することができる。たとえば、動画は大きく見積もってもVGAサイズ(640×480画素)まで処理できれば十分であることから、ラインバッファ11は水平方向に少なくともVGAサイズ以上の水平方向画素数幅(ラインサイズ)を備える。また、垂直方向に、少なくとも画素処理手段14の複数画素単位の垂直画素数幅を備え、たとえば、5×5画素のマトリクス処理を行う場合は、5または6ラインで構成される。
画像分割手段12は、入力画像2aの水平方向の画素数に応じて、入力画像2aを垂直に偶数(以下、2Nとする)個の分割領域に分割する。すなわち、入力画像2aの水平方向の画素数とラインバッファ11の水平方向画素数幅とを比較し、入力画像2aの水平方向の画素数の方が大きい場合は、入力画像2aを垂直に等分割する。このとき、等分割する分割領域の数は、2N個となるようにする。図の例では、入力画像2aを1A、2A、3A、4Aの4領域に分割している。そして、分割領域ごとの読み出し起点と、読み出しのライン幅(水平方向画素数幅)を指示することによって入力データ転送手段13を制御し、入力画像2aの画素データを分割領域ごとに順にラインバッファ11へデータ転送させる。なお、ラインサイズは、分割数で指示することもできる。
入力データ転送手段13は、入力画像2aの画素データを、画像分割手段12が指定した分割領域の読み出し起点のラインから順に、ラインごとにラインバッファ11へデータ転送する。なお、入力データ転送手段13は、CPUがデータ転送プログラムを実行することによって実現されてもよいし、DMAコントローラによって実現されてもよい。
画素処理手段14は、ラインバッファ11に格納される画素データを用いて、画素補間や輪郭強調等のマトリクス処理と、γ補正や色空間変換等の画素単位演算を実行し、出力画素データを算出する。
画像結合手段15は、画像分割手段12によって分割制御され、画素処理手段14によって分割領域ごとに演算処理されて出力される出力画素データを結合する制御を行う。図の例では、入力画像2aの分割領域1Aの出力画素データを、対応する出力画像2bの分割領域1Bに転送されるように、画像分割手段12とは逆に書き込み起点とラインサイズを出力データ転送手段16に指示する。
出力データ転送手段16は、画像結合手段15に従って、画素処理手段14が分割領域ごとに出力する出力画素データを、出力画像2bの格納領域の該当領域に転送する。なお、出力データ転送手段16は、CPUがデータ転送プログラムを実行することによって実現されてもよいし、DMAコントローラによって実現されてもよい。
また、入力データ転送手段13および出力データ転送手段16の代わりに、DMAを2チャンネル設けて読み出しと書き込みを独立して行わせることもできるし、共通で設けて1チャンネルのDMAコントローラを読み出しと書き込みで排他的に使用してもよい。
このような構成の画像処理装置1の動作について説明する。
画像処理装置1には、ライン読み出しを行うためのラインバッファ11が設けられており、所定の水平方向画素数を単位とするラインが複数ライン分一時記憶できる。画像分割手段12は、フレームバッファ2に格納される対象の入力画像2aの水平方向の画素数がラインバッファ11のラインサイズより大きい場合、入力画像2aを垂直に2N分割し、ラインサイズ以下の幅の短冊状に分ける。図の例では、4分割し、1A、2A、3A、4Aの4分割領域にしている。そして、入力データ転送手段13を制御し、分割領域ごとに入力画像2aの画素データを転送する。
たとえば、最初に分割領域1Aのデータ転送を行うとすると、分割領域1Aの任意の画素位置(たとえば、左上)を読み出し起点、読み出しのラインの単位を分割領域の水平方向画素数幅とし、ラインバッファ11へのデータ転送を入力データ転送手段13に指示する。入力データ転送手段13は、指示された読み出し起点から、分割領域の水平方向画素数幅をライン読み出しの単位とし、ラインごとに順次分割領域1Aのデータをラインバッファ11にデータ転送する。画素処理手段14は、ラインバッファ11に一時記憶された画素に対して単一画素単位及び複数画素単位で画素処理を行い、出力画素データを出力する。画像結合手段15は、出力される出力画素データの出力画像2bに対応する分割領域に応じて出力データ転送手段16を制御し、該当領域に出力画素データを転送させる。分割領域1Aが入力している場合、これに相当する分割領域1Bに出力画素データが転送されるように指示を行う。こうして、入力画像2aの分割領域1Aが画素処理され、出力画像2bの分割領域1Bが設定されると、続いて、分割領域2Aの処理が行われる。画像分割手段12は、分割領域の水平方向画素数幅と同時に求めたオフセット値分だけ読み出し起点を移動し、分割領域1Aと同様の処理を行う。画像結合手段15もまた、オフセット値で書き込み起点を移動し、分割領域2Bに出力画素データを格納する。以下、他の分割領域も同様の処理を行う。
ここで、データ転送順について説明する。図2は、画像を2分割した場合のデータ転送順を示した図である。
図の例では、ベイヤーデータ21を分割領域A(21a)と分割領域B(21b)とに2分割してデータ転送処理を行う。画像分割手段12では、分割の際に、分割対象の画像の水平方向画素数が偶数の場合には、水平方向画素数を2分割した値+mが分割領域の水平方向画素数幅になる。ここで、mはマトリクス処理のサイズに依存するパラメータで、5×5画素の場合はm=2となる。しかしながら、画像の水平方向画素数が奇数の場合には、水平方向画素数を2分割することができないので、水平方向の中心に位置する画素データ列を双方の領域に含め、同様に+mを行って分割領域を設定する。図の例では、オーバーラップ部21cが、分割領域A(21a)及び分割領域B(21b)の双方の領域に含まれるように分割される。
こうして分割領域が決定されると、分割領域A(21a)、分割領域B(21b)の順にラインバッファへのデータ転送が行われる。まず、分割領域A(21a)のライン1の分割領域の水平方向画素数幅分の画素からデータ転送が開始され、ラインごとに順に、ライン38までデータ転送が行われる。続いて、分割領域B(21b)のデータ転送が開始され、上(図ではライン39)から順にラインごとにデータ転送が行われ、最終ライン(図ではライン76)の画素データが転送されて、データ転送が終了する。
また、画素処理手段14からは、同じ順番で分割領域A(21a)、分割領域B(21b)の出力画素データが出力される。画像結合手段15は、分割領域A(21a)及び分割領域B(21b)の出力画素データを、出力画像の相当する位置に転送されるようにデータ転送を制御して画像結合を行う。このとき、分割領域B(21b)は、双方の分割領域に含めた、水平方向の中心に位置していた画素データ列を分割領域A(21a)に重ね合わせるようにデータ転送を行う。
以上のように、所定のラインサイズのラインバッファを設け、このラインバッファのラインサイズに応じて入力画像を垂直に等分割して画素処理を行うことによって、ラインバッファの容量を極力抑えつつ、高画素の画像処理を比較的高速に処理することが可能となる。ラインバッファのラインサイズに応じて入力画像は分割されるので、処理可能な画像の画素数に上限はない。また、画素数の小さな動画は、フルライン方式(分割せずにそのまま全ラインの読み出しを行う)が可能であるので、高フレームレートの実現が可能となる。このように、バッファ容量を増大させることなく、画像処理の高機能化が図れる。なお、入力画像は、YUV等の、ベイヤー以外の画素データに適用することもできる。
以下、実施の形態を、ラインサイズが1024+α画素のラインバッファを具備し、入力画像を4分割まで分割可能な画像処理装置に適用した場合を例に図面を参照して詳細に説明する。また、複数画素単位で行う画素処理は、5×5画素で行うとする。
ここで、画像処理装置のラインバッファのラインサイズは、入力画像を垂直に2分割し、短冊状になった画像をそれぞれ処理して1つの画像に戻すことを考えると、入力画像の水平方向画素数幅の半分強あればよい。たとえば、一般に広く用いられている画像サイズにVGA(640×480画素)や、SVGA(Super Video Graphics Array)(1024×768画素)がある。少なくともこれらのサイズにフルラインで対応するため、実施の形態では、ラインバッファの水平方向画素数幅を1024+α(αは若干数の余裕分)としている。
ラインバッファのサイズが1024+α画素であれば、静止画の場合、4分割まで行ったとして、水平方向画素数が4096画素まで対応することができる。また、動画は大きく見積もってもVGAサイズまで処理できれば十分であるので、1024+αであればフルラインで高速に処理することができる。
処理対象の画像について説明する。図3は、入力画像と出力画像のサイズ関係を示した図である。画素処理では、5×5画素のマトリクス処理を行うので、入力画像200aのサイズ(水平方向=H画素、垂直方向=V画素)に対して、出力画像200bのサイズは、上下に2画素、左右に2画素小さいサイズ(水平方向=H−4画素、垂直方向=V−4画素)になる。以下、入力画像の水平方向画素数をH、垂直方向画素数をVとする。
次に、画像処理装置のハードウェア構成について説明する。図4は、実施の形態の画像処理装置のハードウェア構成例を示すブロック図である。
画像処理装置は、画像処理回路10、フレームバッファ20、CPU(Central Processing Unit)30、DMA40、RAM(Random Access Memory)50、ROM(Read Only Memory)60が、システムバス70によって接続されており、CPU30によって装置全体が制御されている。
画像処理回路10は、所定のラインサイズのラインバッファ11を有し、フレームバッファ20に格納される入力画像の画素データを所定のライン単位でラインバッファ11にデータ転送し、画素処理を行った後、フレームバッファ20の出力画像格納領域にデータ転送する。フレームバッファ20には、処理対象の入力画像の画素データ及び画像処理が行われた出力画像の画素データが一時的に格納される。CPU30は、装置全体を制御するとともに、プログラムを実行することにより画像分割手段、画像結合手段、画素処理手段として機能させることができる。DMA40は、転送先と転送元のアドレスと転送サイズが指定されるとCPU30を介さずにデータ転送を行う。RAM50には、CPU30による処理に必要な各種データが格納される。ROM60には、OS(Operating System)やアプリケーションのプログラムが格納される。
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、上記構成は一例であり、DMA40は、読み出しと書き出しを独立して行う2チャンネル構成としても、読み出しと書き出しを排他的に行う1チャンネル構成とするとしてもよい。また、データ転送をCPU30が行うとしてもよい。さらに、入力画像の分割を行う画像分割手段は、CPU30がプログラムを実行するソフトウェア構成としても、画像分割回路のハードウェア構成としてもよい。同様に、画像結合手段もソフトウェアもしくはハードウェアのいずれで構成されてもよい。
ここで、画像分割手段をハードウェア構成とした場合の一例を示す。図5は、実施の形態の垂直2N分割回路のブロック図である。
垂直2N分割回路は、入力画像左上原点アドレスレジスタ101、垂直方向画素数(V)レジスタ102、水平方向画素数(H)レジスタ103、2分割水平方向画素数(以下、H2とする)レジスタ104及び4分割水平方向画素数(以下、H4とする)レジスタ105の各レジスタと、入力値を2分割する2分割関数106、107と、選択回路108、分割数決定を判定する判定回路109、データ転送を制御するアドレスカウンタ110を有する。
入力画像左上原点アドレスレジスタ101、Vレジスタ102及びHレジスタ103の値は、CPU30が入力画像に応じたそれぞれの値を設定する。入力画像左上原点アドレスレジスタ101には、読み出し原点となるフレームバッファ上で入力画像が格納される領域の左上のアドレスが設定される。Vレジスタ102には入力画像の垂直方向の画素数、Hレジスタ103には入力画像の水平方向の画素数が設定される。
Nは、0から順に1、2とカウントアップするカウンタで、判定回路109の出力Hselが1(分割数決定)した場合にストップする。
2分割関数106、107は、カウンタNのカウント値が対応する値であって、かつ判定回路109の出力Hselが0(分割数未決定)のとき、入力される水平方向画素数を2分割した値HSizeを算出し、判定回路109へ出力する。2分割関数106は、N=1、Hsel=0のとき動作し、Hレジスタ103の値を2分割した値を、H2レジスタ104へ格納する。2分割関数107は、N=2、Hsel=0のとき動作し、H2レジスタ104の値を2分割した値を、H4レジスタ105へ格納する。
選択回路108は、カウンタNの値に対応するHSizeの値を判定回路109に出力する。N=0の場合はフルラインのHレジスタ103、N=1の場合はH2レジスタ104、N=2の場合はH4レジスタ105に格納される値が出力される。
判定回路109は、入力されるHSizeと、ラインバッファのラインサイズ(1024+α)を比較し、HSizeがラインサイズより小さければ、その分割数に決定する。すなわち、HSize<=1024+αが成立すれば、Hsel=1(分割数決定)を出力し、成立しなければHsel=0(分割数未決定)を出力する。
アドレスカウンタ110は、判定回路109の出力Hselが1となり、分割数が決定すると、その水平方向画素数HSizeと、入力画像左上原点アドレスレジスタ101及びVレジスタ102の値を用いて、転送データの格納アドレスを算出する。
垂直2N分割回路の動作について説明する。
まず、N=0となり、Hレジスタ103に格納される入力画像の水平方向画素数(H)が判定回路109に入力する。判定回路109は、HSize=Hと1024+αを比較し、Hが1024+αより小さければ、Hsel=1を出力し、分割数0を決定する。
このとき、Hsel=1とならなければ、カウンタNは1カウントアップし、N=1となる。これにより、2分割関数106がH2を算出し、算出されたH2は、H2レジスタ104に格納された後、判定回路109に入力される。判定回路109は、HSize=H2と1024+αを比較し、H2が1024+αより小さければ、Hsel=1を出力し、分割数1を決定する。
このとき、Hsel=1とならなければ、カウンタNは1カウントアップし、N=2となる。これにより、2分割関数107がH4を算出し、算出されたH4は、H4レジスタ105に格納された後、判定回路109に入力される。判定回路109は、HSize=H4と1024+αを比較し、H4が1024+αより小さければ、Hsel=1を出力し、分割数2を決定する。
アドレスカウンタ110は、Hsel=1となると、決定された分割数に応じたHSize(H、H2、またはH4)と、入力画像左上原点アドレスレジスタ101及びVレジスタ102の値を用いて、データ転送制御を行う。以下、それぞれの場合について説明する。
まず、図6を用いて、分割なし(分割数=0)の場合のアドレスカウンタの動作について説明する。実施の形態では、入力画像200のHが1024+αより小さい場合、たとえば、VGA、SVGAなどが分割なしで処理される。動画像も最大でVGAサイズを考えておけばよいことから、分割なしで処理される。
分割なしの場合、入力画像左上原点アドレスレジスタ101の値を読み出し起点、ラインサイズをHとして、ラインごとにデータ転送を行われるようにアドレス制御を行う。これにより、入力画像200の原点アドレス(0,0)から水平方向にH番目の画素までが1ラインとして読み出され、ラインバッファに転送される。続いて、次のラインの読み出し起点アドレス(0,1)を指示すると、ここからH単位の1ライン分のデータ転送が行われる。このようにして、最終画素(H−1,V−1)までデータ転送が行われる。
次に、図7を用いて、2分割(分割数=1)の場合のアドレスカウンタの動作について説明する。実施の形態では、入力画像のHが1024+αから2048までの場合、たとえば、SVGA(1280×1024画素)などが2分割で処理される。
2分割の場合のデータ転送は、入力画像が2分割された分割領域1(211)、分割領域2(212)の順に実行される。図7の(A)に示したように、分割領域1(211)では、原点アドレス(0,0)を読み出し起点、ラインサイズをH2として、ラインごとにデータ転送されるようにアドレス制御を行う。なお、上記の説明のように、H2は入力画像を2分割した値+m(マトリクス処理のサイズに依存するパラメータ)で設定され、オフセットS2は、mに応じてH2とともに算出されている。これにより、原点アドレス(0,0)から水平方向にH2番目の画素までが1ラインとして読み出され、ラインバッファに転送される。H2単位の1ラインが終了したら、次のラインの読み出し起点が順次指示され、分割領域1(211)の最終画素(H2−1,V−1)までデータ転送が行われる。次に、図7の(B)に示したように、分割領域2(212)では、オフセットS2を用いて読み出し起点アドレス(S2,0)を設定し、ここを起点としてH2単位の1ラインごとにデータ転送が行われるように制御を行う。分割領域1と同様に、ラインごとに垂直方向に順次データ転送され、最終画素(H−1,V−1)までデータ転送が行われる。
そして、図8を用いて、4分割(分割数=2)の場合のアドレスカウンタの動作について説明する。実施の形態では、入力画像のHが2048から4096までの場合、4分割で処理される。
4分割の場合のデータ転送は、入力画像が4分割された分割領域1(221)、分割領域2(222)、分割領域3(223)、分割領域4(224)の順に実行される。図8(A)に示したように、分割領域1(221)では、原点アドレス(0,0)を読み出し起点、ラインサイズをH4として、ラインごとにデータ転送されるようにアドレス制御を行う。なお、H2と同様に、H4はmを含んで設定され、オフセットS4は、mに応じてH4とともに算出されている。これにより、原点アドレス(0,0)から水平方向にH4番目の画素までが1ラインとして読み出され、ラインバッファに転送される。そして、H4単位のラインごとに垂直方向に順次データ転送され、分割領域1(221)のデータ転送が終了する。続いて、図8(B)に示したように、分割領域2(222)では、オフセットS4を用いて読み出し起点アドレス(S4,0)を設定し、ここを起点としてH4単位の1ラインごとにデータ転送が行われるように制御を行う。分割領域1(221)と同様に、H4単位のラインごとに垂直方向に順次データ転送され、分割領域2(222)のデータ転送が終了する。続いて、図8(C)に示したように、分割領域3(223)では、オフセットS2を用いて読み出し起点アドレス(S2,0)を設定し、ここを起点としてH4単位の1ラインごとにデータ転送が行われるように制御を行う。分割領域1(221)と同様に、H4単位のラインごとに垂直方向に順次データ転送され、分割領域3(223)のデータ転送が終了する。続いて、図8(D)に示したように、分割領域4(224)では、オフセットS2+S4を用いて読み出し起点アドレス(S2+S4,0)を設定し、ここを起点としてH4単位の1ラインごとにデータ転送が行われるように制御を行う。分割領域1(221)と同様に、H4単位のラインごとに垂直方向に順次データ転送され、最終画素(H−1,V−1)までデータ転送が行われる。
このように、入力画像を水平方向の画素数が同じとする垂直2N分割するので、フレームバッファから入力画像の画素データを読み出す際のアドレスのインクリメント方法は、いずれの分割処理においても、水平方向の座標のオフセット値が異なる以外、カウンタの動作は共通になる。このように、アドレス指示のパラメータの更新はオフセット値のみで行うため、高速処理が可能である。また、入力画像サイズに合わせて分割領域を増加させれば、限られたリソース(ラインバッファ)でいかなるサイズの画像も処理することができる。
次に、上記の手順で垂直2N分割され、画素処理された出力画素データの画像結合について説明する。画素処理手段からは、上記のデータ転送順に従って、順次出力画素データが出力される。
分割なしの場合は、フレームバッファの出力画像領域の原点アドレス(0,0)を書き込み基点として、H単位の1ラインごとに出力画素データのデータ転送が行われる。
2分割以上の場合は、分割前の水平方向画素数(H2単位の分割領域の結合の場合はH、H4単位の分割領域の結合の場合はH2)が偶数であるか奇数であるかにより処理が2種類ある。つまり、偶数の場合は、そのまま結合すればよい。他方、奇数である場合は、合わせ目が1列分だけ重なり合うように結合すればよい。
まず、図9を用いて、水平方向画素数Hが偶数の入力画像を2分割して処理した場合の画像結合について説明する。H(偶数)を2分割した分割領域の画像結合を行う場合は、そのまま結合すればよいので、水平方向にH2−4、垂直方向にV−4の領域を有する分割領域1(301)の出力画素データと、水平方向にH2−4、垂直方向にV−4の領域を有する分割領域2(302)の出力画素データとを結合し、水平方向にH−4、垂直方向にV−4の出力画像303の画素データを得る。なお、分割領域2(302)の画像結合は、フレームバッファへのデータ転送時に指示する出力アドレスをオフセットH2−4により水平方向にH2−4ずらして行う。
次に、図10を用いて、水平方向画素数Hが奇数の入力画像を2分割して処理した場合の画像結合について説明する。H(奇数)を2分割した場合は、合わせ目となる1列分を重なり合うように結合するので、分割領域1(311)の出力画素データをフレームバッファへ転送した後、オフセット値をH2−3として1列分重なるようにアドレスを指示し、分割領域2(312)の出力画素データをフレームバッファへ転送する。これにより、合わせ目314が1列分重なり合った出力画像313が生成される。なお、上記の手順では、合わせ目314の1列の出力画素データは、分割領域2(312)の画素データが設定されるが、合わせ目314となる1列に関しては、お互いに同じ画素値が算出されているので、どちらが選択されてもよい。
そして、図11を用いて、水平方向画素数Hが偶数の入力画像を2分割し、さらに分割領域の水平方向画素数H2(奇数)を2分割して処理した場合の画像結合について説明する。まず、分割領域1(321)の出力画素データは、書き出し起点アドレスを出力画像の原点アドレス(0,0)としてデータ転送される。次の、分割領域2(322)と分割領域1(321)が結合するH2は奇数であるので、分割領域2(322)は、分割領域1(321)と1列重なり合うように、オフセット値をH4−3としてアドレスが制御され、データ転送される。次の分割領域3(323)と分割領域2(322)の結合は、ここを分割したときのHが偶数であるので、フレームバッファへのデータ転送時に指示する出力アドレスをオフセット(H4−4)×2により水平方向に(H4−4)×2ずらし、重ね合わせずに結合する。そして、分割領域4(324)と分割領域3(323)が結合するH2は奇数であるので、分割領域4(324)は分割領域3(323)と1列重なり合うようにデータ転送される。これにより、合わせ目316と合わせ目317が重なり合った出力画像315が生成される。
このように、フレームバッファに出力する出力画像の画素データの転送も、分割領域ごとにオフセット値を用いて書き込み起点のアドレスを変更する以外のデータ転送処理は共通であるので、処理を高速化することができる。また、結合もデータ転送先のオフセット処理のみで行うことができるため、結合のために中間データを一時保存するための記憶領域を持つ必要がなく、メモリの有効活用が図れる。
次に、このような画像処理装置による画像処理方法について説明する。
図12は、本実施の形態の画像処理方法の手順を示したフローチャートである。
入力画像がフレームバッファに設定された後、処理が起動される。
[ステップS01] 入力画像のHと、ラインバッファのサイズ(1024+α)とを比較する。Hが1024+αより小さい場合、すなわち分割なしで処理できる場合は、後述する処理Aに進む。Hが1024+αを超えている場合、処理をステップS02へ進める。
[ステップS02] 入力画像のHが1024+αを超える静止画である場合、入力画像を垂直2分割したH2を算出する。Hが偶数の場合には、
H2=Int(H/2)+2 ・・・(1)
により算出し、Hが奇数の場合には、
H2=Int(H/2)+1+2 ・・・(2)
により算出する。なお、Intは、引数の整数部を取り出す操作(小数部切捨て)を行う関数である。式(1)または式(2)より、H2が算出される。
[ステップS03] 2分割の水平方向画素数H2と、ラインバッファのサイズ(1024+α)とを比較する。H2が1024+αを超えている場合、すなわち2分割で処理できない場合は、後述する処理Bに進む。H2が1024+αより小さい場合、処理をステップS04へ進める。
[ステップS04] 入力画像は、垂直2分割で処理できるので、以下の垂直2分割処理を行う。まず、実行処理中の分割領域を示す分割処理回数Nを初期値の0に設定する。なお、N=0は分割領域1、N=1は分割領域2の処理を行うことを示す。
[ステップS05] データ転送の転送元の読み出し起点として、入力画像の左上原点(0,0)を設定する。また、対応する出力画素データの書き込み起点として、読み出し起点に対応する出力画像の左上原点を設定する。
[ステップS06] H2単位でライン読み出しを行い、該当する入力画像の画素データをラインバッファに転送する。すなわち、水平方向に並んだH2画素分の画素データをライン単位でラインバッファの空き領域分だけ垂直方向に読み出し、読み出した画素データをラインバッファに書き込む。
[ステップS07] ラインバッファに転送された画素データを用いて、画素補間、輪郭強調などのマトリクス処理を行うとともに、γ補正や色空間変換などの画素単位演算といった画素処理を行い、出力画素データを生成する。
[ステップS08] 出力画素データをライン単位でフレームバッファに書き出し、画像結合を行う。すなわち、水平方向に並んだH2−4画素分の出力画素データをライン単位でフレームバッファに書き込む。
[ステップS09] 最終ラインまで終了したかどうかを判定する。終了していない場合は、ステップS06に戻って、まだデータ転送されていないラインのデータ転送処理からの手順を行う。
[ステップS10] 最終ラインまで終了した場合、分割処理回数Nをインクリメントする。
[ステップS11] 分割処理回数Nが2であるかどうか、すなわち、N=1で表される分割領域2までの処理を終了したかどうかを判定する。N=2の場合、処理を終了する。N=1であれば、分割領域2のデータ転送処理を行う。
[ステップS12] 分割領域2のデータ転送処理を行うため、読み出し起点をオフセットS2で移動し、入力画像の座標(S2,0)を読み出し起点とし、ステップS06に戻って、H2単位のライン読み出しからの手順を行う。なお、S2は、Hを用いて、
S2=Int(H/2)−2 ・・・(3)
により算出する。
以上の手順が実行されることにより、水平方向画素数が1024+αから2048である入力画像が、垂直2分割して画素処理が行われた後、1つの出力画像として出力される。
次に、処理Aについて説明する。処理Aでは、入力画像のサイズが1024+α以下の静止画もしくは動画を分割なしで処理する。図13は、本実施の形態の画像処理方法による分割なしの場合の処理手順を示したフローチャートである。
[ステップS21] データ転送の転送元の読み出し起点として、入力画像の左上原点(0,0)を設定する。また、対応する出力画素データの書き込み起点として、読み出し起点に対応する出力画像の左上原点を設定する。
[ステップS22] H単位でライン読み出しを行い、該当する入力画像の画素データをラインバッファに転送する。すなわち、水平方向に並んだH画素分の画素データをライン単位でラインバッファの空き領域分だけ垂直方向に読み出し、読み出した画素データをラインバッファに書き込む。
[ステップS23] ラインバッファに転送された画素データを用いて、画素補間、輪郭強調などのマトリクス処理を行うとともに、γ補正や色空間変換などの画素単位演算といった画素処理を行い、出力画素データを生成する。
[ステップS24] 出力画素データをライン単位でフレームバッファに書き出し、画像結合を行う。すなわち、水平方向に並んだH−4画素分の出力画素データをライン単位でフレームバッファに書き込む。
[ステップS25] 最終ラインまで終了したかどうかを判定する。終了していない場合は、ステップS22に戻って、まだデータ転送されていないラインのデータ転送処理からの手順を行う。
以上の手順が実行されることにより、水平方向画素数が1024+αより小さい静止画や動画像などの入力画像が、分割なしで画素処理され、出力画像が出力される。
次に、処理Bについて説明する。処理Bでは、入力画像のサイズが2048を超える静止画を垂直4分割で処理する。図14は、本実施の形態の画像処理方法による垂直4分割の場合の処理手順を示したフローチャートである。
[ステップS31] 2分割されたH2が1024+αを超える静止画である場合、入力画像を垂直4分割したH4を算出する。H2が偶数の場合には、
H4=Int(H2/2)+2 ・・・(4)
により算出し、H2が奇数の場合には、
H4=Int(H2/2)+1+2 ・・・(5)
により算出する。
[ステップS32] 4分割のH4と、ラインバッファのサイズ(1024+α)とを比較する。H4が1024+αを超えている場合、すなわち4分割で処理できない場合は、処理Cに進む。なお、処理Cでは、さらに、H4を2分割した後、4分割の場合と同様の処理を行うので処理手順の説明は省略する。H4が1024+αより小さい場合、処理をステップS33へ進める。
[ステップS33] 入力画像は、垂直4分割で処理できるので、以下の垂直4分割処理を行う。まず、分割処理回数Nを初期値の0に設定する。N=0は分割領域1、N=1は分割領域2、N=2は分割領域3、N=3は分割領域4の処理を行うことを示す。
[ステップS34] データ転送の転送元の読み出し起点として、入力画像の左上原点(0,0)を設定する。また、対応する出力画素データの書き込み起点として、読み出し起点に対応する出力画像の左上原点を設定する。
[ステップS35] H4単位でライン読み出しを行い、該当する入力画像の画素データをラインバッファに転送する。すなわち、水平方向に並んだH4画素分の画素データをライン単位でラインバッファの空き領域分だけ垂直方向に読み出し、読み出した画素データをラインバッファに書き込む。
[ステップS36] ラインバッファに転送された画素データを用いて、画素補間、輪郭強調などのマトリクス処理を行うとともに、γ補正や色空間変換などの画素単位演算といった画素処理を行い、出力画素データを生成する。
[ステップS37] 出力画素データをライン単位でフレームバッファに書き出し、画像結合を行う。すなわち、水平方向に並んだH4−4画素分の出力画素データをライン単位でフレームバッファに書き込む。
[ステップS38] 最終ラインまで終了したかどうかを判定する。終了していない場合は、ステップS35に戻って、データ転送未完のラインのデータ転送処理からの手順を行う。
[ステップS39] 最終ラインまで終了した場合、分割処理回数Nをインクリメントする。
[ステップS40] 分割処理回数Nが4であるかどうか、すなわち、N=3で表される分割領域4までの処理を終了したかどうかを判定する。N=4の場合、処理を終了する。また、N=1であればステップS41、N=2であればステップS42、N=3であればステップS43へ処理を進め、それぞれ対応する分割領域のデータ転送処理を行う。
[ステップS41] N=1の場合、分割領域2のデータ転送処理を行うため、読み出し起点をオフセットS4で移動し、入力画像の座標(S4,0)を読み出し起点とし、ステップS35に戻って、H4単位のライン読み出しからの手順を行う。なお、S4は、H2を用いて、
S4=Int(H2/2)−2 ・・・(6)
により算出する。
[ステップS42] N=2の場合、分割領域3のデータ転送処理を行うため、読み出し起点をオフセットS2で移動し、入力画像の座標(S2,0)を読み出し起点とし、ステップS35に戻って、H4単位のライン読み出しからの手順を行う。なお、S2は、式(3)を用いて算出する。
[ステップS43] N=3の場合、分割領域4のデータ転送処理を行うため、読み出し起点をオフセットS2+S4で移動し、入力画像の座標(S2+S4,0)を読み出し起点とし、ステップS35に戻って、H4単位のライン読み出しからの手順を行う。なお、S2は式(3)、S4は式(6)を用いて算出する。
以上の処理手順が実行されることにより、水平方向画素数が2048から4096である入力画像が、垂直4分割して画素処理が行われた後、1つの出力画像として出力される。
さらに、画像領域を2N分割することにより、いかなるサイズの入力画像も同様の手順で処理することができる。
なお、以上の説明の画像処理装置を、少なくとも垂直2N分割処理を含む画像処理の各機能を実現する回路を半導体集積回路として組込んだ半導体装置として提供することもできる。半導体装置としてチップ化された画像処理装置は、たとえば、携帯電話機やディジタルカメラなどに適用され、回路規模を増加させることなく、画像処理の高機能化に寄与することができる。
(付記1) 入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理装置において、
水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを前記所定の水平方向画素数幅で一時記憶する一時記憶手段と、
入力画像の水平方向の画素数が前記一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割し、分割領域ごとに前記入力画像の画素データの前記一時記憶手段へのデータ転送を制御する画像分割手段と、
前記画像分割手段に従って、指示された前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送する入力データ転送手段と、
前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施す画素処理手段と、
前記分割領域ごとに順次出力される前記画素処理手段の出力画素データのデータ転送を制御し、前記分割領域ごとの前記出力画素データを結合して出力画像を生成する画像結合手段と、
前記画像結合手段に従って、前記画素処理手段より出力される前記出力画素データを指示された出力画像記憶領域に転送する出力データ転送手段と、
を具備することを特徴とする画像処理装置。
(付記2) 前記画像分割手段は、前記入力画像を前記一時記憶手段の前記所定の水平方向画素数幅を超えない水平方向画素数幅の偶数個の領域に分割することを特徴とする付記1記載の画像処理装置。
(付記3) 前記入力データ転送手段は、等分割された前記分割領域の水平方向画素数幅を単位として、前記分割領域に属する前記入力画像の画素データをラインごとにデータ転送することを特徴とする付記1記載の画像処理装置。
(付記4) 前記画像分割手段は、等分割された前記分割領域の水平方向画素数幅をオフセットとして、前記分割領域に相当する前記入力画像の画素データが格納される位置を示すポインタを算出し、読み出し起点として前記入力データ転送手段に指示することを特徴とする付記1記載の画像処理装置。
(付記5) 前記画像結合手段は、等分割された前記分割領域の水平方向画素数幅をオフセットとして、前記分割領域に相当する前記出力画像の前記出力画素データが格納される位置を示すポインタを算出し、書き込み起点として前記出力データ転送手段に指示することを特徴とする付記1記載の画像処理装置。
(付記6) 前記画像分割手段は、等分割する前記入力画像もしくは前記分割領域の水平方向画素数が奇数である場合には、等分割する領域の水平方向の中心に位置する画素データ列を双方の前記分割領域に含めて分割し、
前記画像結合手段は、結合する前記分割領域の双方に共通する前記水平方向の中心に位置する画素データ列が含まれていた場合には、双方の前記分割領域の前記水平方向の中心に位置する画素データ列を重ね合わせて結合する、
ことを特徴とする付記1記載の画像処理装置。
(付記7) 前記入力データ転送手段及び前記出力データ転送手段のうち少なくとも一つは、DMAコントローラであることを特徴とする付記1記載の画像処理装置。
(付記8) 前記入力データ転送手段及び前記出力データ転送手段は、共通のDMAコントローラであり、前記画像分割手段及び前記画像結合手段によって、排他的に入力データ転送と出力データ転送を行うことを特徴とする付記7記載の画像処理装置。
(付記9) 前記一時記憶手段は、前記所定の水平方向画素数幅が、少なくともVGAサイズの水平方向画素数幅より大きいことを特徴とする付記1記載の画像処理装置。
(付記10) 入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理方法において、
画像分割手段が、入力画像の水平方向の画素数が、水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを前記所定の水平方向画素数幅で一時記憶する一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割するステップと、
前記画像分割手段が、入力データ転送手段を制御して、等分割された分割領域ごとに、前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送するステップと、
画素処理手段が、前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施すステップと、
画像結合手段が、出力データ転送手段を制御し、前記分割領域ごとに出力される前記画素処理手段の出力画素データを結合するステップと、
を有し、
前記分割領域ごとに、前記分割領域の水平方向画素数幅を単位として前記入力画像の画素データをラインごとにデータ転送して画素処理し、画素処理が終了して前記分割領域ごとに出力される前記出力画素データを結合して前記出力画像を生成する、
ことを特徴とする画像処理方法。
(付記11) 入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する半導体装置において、
水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶するバッファと、
入力画像の水平方向の画素数が前記バッファの前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割し、分割領域ごとに前記入力画像の画素データの前記バッファへのデータ転送を制御する画像分割回路と、
前記画像分割回路によって指示された前記分割領域に属する前記入力画像の画素データを前記バッファに順次転送する入力データ転送回路と、
前記バッファに転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施す画素処理回路と、
前記分割領域ごとに順次出力される前記画素処理回路の出力画素データのデータ転送を制御し、前記分割領域ごとの前記出力画素データを結合して出力画像を生成する画像結合回路と、
前記画像結合回路に従って、前記画素処理回路より出力される前記出力画素データを指示された出力画像記憶領域に転送する出力データ転送回路と、
を具備することを特徴とする半導体装置。
実施の形態に適用される発明の概念図である。 画像を2分割した場合のデータ転送順を示した図である。 入力画像と出力画像のサイズ関係を示した図である。 実施の形態の画像処理装置のハードウェア構成例を示すブロック図である。 実施の形態の垂直2N分割回路のブロック図である。 本実施の形態における分割なしの場合のアドレスカウンタの動作を示した図である。 本実施の形態における2分割の場合のアドレスカウンタの動作を示した図である。 本実施の形態における4分割の場合のアドレスカウンタの動作を示した図である。 本実施の形態における水平方向画素数Hが偶数の入力画像を2分割して処理した場合の画像結合の動作を示した図である。 本実施の形態における水平方向画素数Hが奇数の入力画像を2分割して処理した場合の画像結合の動作を示した図である。 本実施の形態における水平方向画素数Hが偶数の入力画像を2分割し、さらに分割領域の水平方向画素数H2(奇数)を2分割して処理した場合の画像結合の動作を示した図である。 本実施の形態の画像処理方法の手順を示したフローチャートである。 本実施の形態の画像処理方法による分割なしの場合の処理手順を示したフローチャートである。 本実施の形態の画像処理方法による垂直4分割の場合の処理手順を示したフローチャートである。 従来のブロック読み出しにおけるデータ読み出し順を示す図である。 従来のブロック読み出し処理回路例のブロック図である。 従来のライン読み出しにおけるデータ読み出し順を示す図である。 従来のライン読み出し処理回路例のブロック図である。
符号の説明
1 画像処理装置
2 フレームバッファ
2a 入力画像
2b 出力画像
11 ラインバッファ
12 画像分割手段
13 入力データ転送手段
14 画素処理手段
15 画像結合手段
16 出力データ転送手段

Claims (10)

  1. 入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理装置において、
    水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶する一時記憶手段と、
    入力画像の水平方向の画素数が前記一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割し、分割領域ごとに前記入力画像の画素データの前記一時記憶手段へのデータ転送を制御する画像分割手段と、
    前記画像分割手段に従って、指示された前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送する入力データ転送手段と、
    前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施す画素処理手段と、
    前記分割領域ごとに順次出力される前記画素処理手段の出力画素データのデータ転送を制御し、前記分割領域ごとの前記出力画素データを結合して出力画像を生成する画像結合手段と、
    前記画像結合手段に従って、前記画素処理手段より出力される前記出力画素データを指示された出力画像記憶領域に転送する出力データ転送手段と、
    を具備することを特徴とする画像処理装置。
  2. 前記画像分割手段は、前記入力画像を前記一時記憶手段の前記所定の水平方向画素数幅を超えない水平方向画素数幅の偶数個の領域に分割することを特徴とする請求項1記載の画像処理装置。
  3. 前記入力データ転送手段は、等分割された前記分割領域の水平方向画素数幅を単位として、前記分割領域に属する前記入力画像の画素データをラインごとにデータ転送することを特徴とする請求項1記載の画像処理装置。
  4. 前記画像分割手段は、等分割された前記分割領域の水平方向画素数幅に応じたオフセット値を用いて前記分割領域に相当する前記入力画像の画素データが格納される位置を算出し、読み出し起点として前記入力データ転送手段に指示することを特徴とする請求項1記載の画像処理装置。
  5. 前記画像結合手段は、等分割された前記分割領域の水平方向画素数幅に応じたオフセット値を用いて前記分割領域に相当する前記出力画像の前記出力画素データが格納される位置を算出し、書き込み起点として前記出力データ転送手段に指示することを特徴とする請求項1記載の画像処理装置。
  6. 前記画像分割手段は、等分割する前記入力画像もしくは前記分割領域の水平方向画素数が奇数である場合には、等分割する領域の水平方向の中心に位置する画素データ列を双方の前記分割領域に含めて分割し、
    前記画像結合手段は、結合する前記分割領域の双方に共通する前記水平方向の中心に位置する画素データ列が含まれていた場合には、双方の前記分割領域の前記水平方向の中心に位置する画素データ列を重ね合わせて結合する、
    ことを特徴とする請求項1記載の画像処理装置。
  7. 前記入力データ転送手段及び前記出力データ転送手段のうち少なくとも一つは、DMA(Direct Memory Access)コントローラであることを特徴とする請求項1記載の画像処理装置。
  8. 前記入力データ転送手段及び前記出力データ転送手段は、共通のDMAコントローラであり、前記画像分割手段及び前記画像結合手段によって、排他的に入力データ転送と出力データ転送を行うことを特徴とする請求項7記載の画像処理装置。
  9. 前記一時記憶手段は、前記所定の水平方向画素数幅が、少なくともVGA(Video Graphics Array)サイズの水平方向画素数幅より大きいことを特徴とする請求項1記載の画像処理装置。
  10. 入力画像を所定の単位で取り込んで画像処理を施し、出力画像を生成する画像処理方法において、
    画像分割手段が、前記入力画像の水平方向の画素数が、水平方向に所定の水平方向画素数幅の記憶領域を備え、前記入力画像の画素データの複数ラインを最大で前記所定の水平方向画素数幅で一時記憶する一時記憶手段の前記所定の水平方向画素数幅より大きい場合に、前記所定の水平方向画素数幅に応じて前記入力画像を垂直に等分割するステップと、
    前記画像分割手段が、入力データ転送手段を制御して、等分割された分割領域ごとに、前記分割領域に属する前記入力画像の画素データを前記一時記憶手段に順次転送するステップと、
    画素処理手段が、前記一時記憶手段に転送された前記入力画像の画素データに対し、単一画素単位及び複数画素単位で画像処理を施すステップと、
    画像結合手段が、出力データ転送手段を制御し、前記分割領域ごとに出力される前記画素処理手段の出力画素データを結合するステップと、
    を有し、
    前記分割領域ごとに、前記分割領域の水平方向画素数幅を単位として前記入力画像の画素データをラインごとにデータ転送して画素処理し、画素処理が終了して前記分割領域ごとに出力される前記出力画素データを結合して前記出力画像を生成する、
    ことを特徴とする画像処理方法。
JP2004381070A 2004-12-28 2004-12-28 画像処理装置及び画像処理方法 Expired - Fee Related JP4219887B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004381070A JP4219887B2 (ja) 2004-12-28 2004-12-28 画像処理装置及び画像処理方法
US11/086,585 US7583851B2 (en) 2004-12-28 2005-03-23 Apparatus and method for processing an image
CNB2005100646062A CN100379246C (zh) 2004-12-28 2005-04-15 用于处理图像的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004381070A JP4219887B2 (ja) 2004-12-28 2004-12-28 画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2006186917A JP2006186917A (ja) 2006-07-13
JP4219887B2 true JP4219887B2 (ja) 2009-02-04

Family

ID=36611585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004381070A Expired - Fee Related JP4219887B2 (ja) 2004-12-28 2004-12-28 画像処理装置及び画像処理方法

Country Status (3)

Country Link
US (1) US7583851B2 (ja)
JP (1) JP4219887B2 (ja)
CN (1) CN100379246C (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007053536A (ja) * 2005-08-17 2007-03-01 Winbond Electron Corp 画像信号の符号化処理装置におけるラスタ/ブロック変換用のバッファメモリシステム
US8406489B2 (en) * 2005-09-09 2013-03-26 Olympus Medical Systems Corp Image display apparatus
US7595805B2 (en) * 2006-04-11 2009-09-29 Qualcomm Incorporated Techniques to facilitate use of small line buffers for processing of small or large images
US7834873B2 (en) * 2006-08-25 2010-11-16 Intel Corporation Display processing line buffers incorporating pipeline overlap
JP4360410B2 (ja) * 2007-03-16 2009-11-11 セイコーエプソン株式会社 画像処理回路、表示装置及び印刷装置
JP2009042338A (ja) * 2007-08-07 2009-02-26 Victor Co Of Japan Ltd 画素数変換方法、画素数変換装置及び画素数変換プログラム
US8280181B2 (en) * 2007-12-13 2012-10-02 Seiko Epson Corporation Efficient filtering of image data
JP4900722B2 (ja) * 2008-03-12 2012-03-21 株式会社メガチップス 画像処理装置
JP4952627B2 (ja) * 2008-03-21 2012-06-13 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP5109104B2 (ja) * 2008-04-15 2012-12-26 株式会社メガチップス 一眼レフデジタルカメラ
US20100061650A1 (en) * 2008-09-05 2010-03-11 Barinder Singh Rai Method And Apparatus For Providing A Variable Filter Size For Providing Image Effects
TWI413943B (zh) * 2009-02-11 2013-11-01 Silicon Motion Inc 影像處理系統及其影像處理方法
US8514896B2 (en) * 2009-03-06 2013-08-20 Thomson Licensing Device to synchronize audio and video pulses in a receiver
JP2010239362A (ja) * 2009-03-31 2010-10-21 Panasonic Corp 画像処理装置及びその画像処理方法
JP5564998B2 (ja) * 2010-03-03 2014-08-06 株式会社リコー 画像処理デバイス及び画像処理装置
CN102215324B (zh) * 2010-04-08 2013-07-31 安凯(广州)微电子技术有限公司 用于对视频图像进行滤波操作的滤波电路及其滤波方法
KR101230397B1 (ko) * 2010-09-29 2013-02-07 (주) 인텍플러스 영상 데이터 고속 송/수신 방법 및 장치
JP4856776B1 (ja) * 2010-11-29 2012-01-18 エピクロス株式会社 画像処理装置およびその方法
JP2012129906A (ja) * 2010-12-17 2012-07-05 Samsung Electronics Co Ltd 画像処理装置、画像処理方法、及びプログラム
US8990435B2 (en) * 2011-01-17 2015-03-24 Mediatek Inc. Method and apparatus for accessing data of multi-tile encoded picture stored in buffering apparatus
US9497466B2 (en) * 2011-01-17 2016-11-15 Mediatek Inc. Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof
JP5703769B2 (ja) * 2011-01-19 2015-04-22 ソニー株式会社 画像変換装置、画像変換方法、プログラム、および電子機器
US9538177B2 (en) 2011-10-31 2017-01-03 Mediatek Inc. Apparatus and method for buffering context arrays referenced for performing entropy decoding upon multi-tile encoded picture and related entropy decoder
CN102566958B (zh) * 2011-12-23 2015-06-03 广东威创视讯科技股份有限公司 一种基于sgdma的图像分割处理装置
JP5845910B2 (ja) * 2012-01-13 2016-01-20 富士通株式会社 画像描画装置、画像描画プログラム、及び、画像描画方法
JP2013195963A (ja) * 2012-03-22 2013-09-30 Seiko Epson Corp 画像処理装置、集積回路装置及び画像表示システム
CN103474049B (zh) * 2012-06-08 2017-05-17 晨星软件研发(深圳)有限公司 影像处理装置与影像处理方法
JP5561353B2 (ja) * 2012-12-27 2014-07-30 凸版印刷株式会社 画像生成装置、画像配信システム、及び画像配信方法
JP6048236B2 (ja) * 2013-03-13 2016-12-21 株式会社リコー メモリアクセス制御装置、画像形成装置及びメモリアクセス制御方法
EP2822287A1 (en) * 2013-07-01 2015-01-07 Thomson Licensing Method and apparatus for frame accurate advertisement insertion
EP2876890A1 (en) 2013-11-21 2015-05-27 Thomson Licensing Method and apparatus for frame accurate synchronization of video streams
JP2015109037A (ja) 2013-12-05 2015-06-11 キヤノン株式会社 画像処理装置
JP6273881B2 (ja) * 2014-02-13 2018-02-07 株式会社リコー 画像処理装置、画像処理方法、及びプログラム
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US9772852B2 (en) 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
CN106611401B (zh) * 2015-10-22 2020-12-25 阿里巴巴集团控股有限公司 一种在纹理内存中存储图像的方法及装置
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
CN108463836B (zh) * 2016-03-24 2022-04-01 富士胶片商业创新有限公司 图像处理装置、图像处理方法和图像处理程序
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
US20180005346A1 (en) 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
EP3422258B1 (en) * 2017-06-27 2021-08-11 Canon Production Printing Holding B.V. Roll-fed printing apparatus, software medium, and method for controlling a roll-fed printing apparatus
WO2019000357A1 (zh) * 2017-06-30 2019-01-03 深圳市大疆创新科技有限公司 处理图像的方法和装置
KR102442625B1 (ko) * 2017-07-05 2022-09-13 삼성전자주식회사 영상 처리 장치 및 상기 영상 처리 장치의 제어 방법
CN110383330A (zh) * 2018-05-30 2019-10-25 深圳市大疆创新科技有限公司 池化装置和池化方法
KR102637732B1 (ko) 2018-09-21 2024-02-19 삼성전자주식회사 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 애플리케이션 프로세서
US10652535B1 (en) * 2019-02-27 2020-05-12 Google Llc Memory-efficient filtering approach for image and video coding
US11558589B2 (en) * 2019-06-20 2023-01-17 Google Llc Systems, devices, and methods for driving projectors
CN114500886A (zh) * 2022-01-28 2022-05-13 北京拙河科技有限公司 一种按列分段的图像处理系统与方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4658430A (en) * 1984-12-27 1987-04-14 International Business Machines Corp. System for rotating binary images
US5077810A (en) * 1990-07-19 1991-12-31 Eastman Kodak Company Distributed digital signal processing system using standard resolution processors for a high resolution sensor
CA2063621C (en) * 1991-10-03 1999-03-16 Wayne M. Doran Method and modular system for high speed processing of item images
US5359694A (en) * 1992-07-27 1994-10-25 Teknekron Communications Systems, Inc. Method and apparatus for converting image data
WO1995024017A2 (en) * 1994-03-02 1995-09-08 THE UNITED STATES OF AMERICA, represented by THE SECRETARY, DEPARTMENT OF HEALTH AND HUMAN SERVICES NATIONAL INSTITUTES OF HEALTH A top down preprocessor for a machine vision system
US5523788A (en) * 1994-09-27 1996-06-04 Eastman Kodak Company Image processor with input buffering to multiple digital signal processors
US6148118A (en) * 1995-07-05 2000-11-14 Minolta Co., Ltd. Image processing apparatus capable of reproducing large-sized document
US5892851A (en) * 1997-05-23 1999-04-06 Hewlett-Packard Company Parallelized error diffusion
US6366702B1 (en) * 1997-06-24 2002-04-02 Minolta Co., Ltd. Method of and apparatus for image processing
JP3748489B2 (ja) * 1998-03-11 2006-02-22 キヤノン株式会社 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体
US6404909B2 (en) * 1998-07-16 2002-06-11 General Electric Company Method and apparatus for processing partial lines of scanned images
KR100311478B1 (ko) * 1999-10-01 2001-10-18 구자홍 디지털 티브이의 포맷 변환장치
JP3720268B2 (ja) * 2001-02-26 2005-11-24 株式会社メガチップス 画像処理装置
US7164489B2 (en) * 2001-10-19 2007-01-16 Seiko Epson Corporation Rectangular partitioning in printing rotated images
US7130072B2 (en) * 2002-02-08 2006-10-31 Canon Kabushiki Kaisha Multifunction system, image processing method, computer program and memory medium
JP2004021149A (ja) * 2002-06-20 2004-01-22 Nec Micro Systems Ltd 画像処理装置及び画像処理方法
JP4245139B2 (ja) * 2003-03-31 2009-03-25 株式会社メガチップス 画像処理装置

Also Published As

Publication number Publication date
JP2006186917A (ja) 2006-07-13
CN100379246C (zh) 2008-04-02
US20060140498A1 (en) 2006-06-29
US7583851B2 (en) 2009-09-01
CN1798236A (zh) 2006-07-05

Similar Documents

Publication Publication Date Title
JP4219887B2 (ja) 画像処理装置及び画像処理方法
JP3748489B2 (ja) 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体
US9082206B2 (en) Image processing apparatus having a buffer memory for image data storage
JP3781634B2 (ja) 画像処理装置および画像処理方法並びに携帯用映像機器
JP2007228019A (ja) 撮像装置
JP2000092376A (ja) 撮像装置
JP6722278B2 (ja) 画像処理装置
JPWO2017149591A1 (ja) 画像処理装置
CN102291531A (zh) 图像处理装置、图像处理方法和程序
CN101490708A (zh) 图像处理设备、图像处理方法和程序
JP2000092375A (ja) 信号処理装置及びその制御方法
KR101615466B1 (ko) 비디오 분석 및 인코딩을 위한 복수의 비디오 채널의 캡쳐
JP2010097311A (ja) 半導体装置及び半導体集積回路
JP4749701B2 (ja) オンスクリーンディスプレイ装置
JP3986325B2 (ja) 画像処理装置、画像処理方法および画像処理システム
JP2012155604A (ja) データ転送制御装置
US7573513B2 (en) Image processing device and image processing method
JP6762775B2 (ja) 画像処理装置、撮像装置、制御方法及びプログラム
JP2000092349A (ja) 画像処理装置
JP4137097B2 (ja) 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体
JP2009081596A (ja) 画像処理装置および画像処理方法
JP2005227479A (ja) 画像処理装置、画像処理方法及び画像処理方法をコンピュータに実行させるためのプログラム
JP4155856B2 (ja) 画像処理装置及び画像処理方法
JP2016009957A (ja) 画像処理装置
JP2009140046A (ja) 画像処理装置および画像データのメモリアクセス方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees