JP5739723B2 - 画像処理装置、画像処理方法、及びプログラム - Google Patents

画像処理装置、画像処理方法、及びプログラム Download PDF

Info

Publication number
JP5739723B2
JP5739723B2 JP2011105645A JP2011105645A JP5739723B2 JP 5739723 B2 JP5739723 B2 JP 5739723B2 JP 2011105645 A JP2011105645 A JP 2011105645A JP 2011105645 A JP2011105645 A JP 2011105645A JP 5739723 B2 JP5739723 B2 JP 5739723B2
Authority
JP
Japan
Prior art keywords
image
pixel data
input image
deformation
cache memory
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
JP2011105645A
Other languages
English (en)
Other versions
JP2012238118A (ja
JP2012238118A5 (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2011105645A priority Critical patent/JP5739723B2/ja
Publication of JP2012238118A publication Critical patent/JP2012238118A/ja
Publication of JP2012238118A5 publication Critical patent/JP2012238118A5/ja
Application granted granted Critical
Publication of JP5739723B2 publication Critical patent/JP5739723B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は画像処理技術に関し、特に、画像変形処理における処理制御技術に関する。
拡大縮小処理、アフィン変形処理、及びキーストーン補正処理などの画像変形処理では、出力画像の各座標についての画素データは、入力画像の対応する座標についての画素データから求められる。具体的には、入力画像データをフレームメモリに格納し、出力画像の各座標に対応する入力画像の画素データを読み出す。このとき、入力画像の画素データの読み出しは、ランダムアクセスによって行われることが多い。メモリへのランダムアクセスを高速化するための一般的な技術として、キャッシュ技術がある(例えば特許文献1)。キャッシュ技術によれば、外部メモリから、高速にアクセスできる内部メモリ(キャッシュ)へとデータが複製される。キャッシュに必要なデータが存在する場合には、時間のかかる外部メモリへのアクセスが必要ない。このため、キャッシュを用いることによりデータへのアクセス速度が向上する。
特開平10−51685号公報
キャッシュ技術を用いる際には、キャッシュメモリに必要なデータが存在する確率(キャッシュヒット率)を高めることが、データアクセス速度向上のために必要である。図1(A)に、キャッシュヒット率を高めるための技術の1つを示す。図1(A)の例では、入力画像101に対して画像変形処理を行うことにより、変形画像103が得られる。102は、外部メモリに格納された入力画像101を示す。
図1(A)の例で行われている画像変形処理は、縦方向への縮小処理である。ここで、変形画像の画像領域が複数のタイルに分割される。そして、それぞれのタイルについて順番にタイル内の画像が求められる。例えばタイル105内の画像を求める場合には、領域104内の画像のみが参照されるため、領域104内の画像データにのみアクセスが行われる。このように、小さい領域内の画像データに対して集中的にアクセスを行う(局所性を高める)ことにより、キャッシュヒット率を高めることができる。
しかしながら、タイルが大きすぎると、タイルに対応する入力画像データのデータ量が、キャッシュメモリの容量を超えてしまうことがある。例えば図4の場合、タイル404には入力画像405の領域408が対応する。しかしながら、キャッシュメモリの容量は領域409の画像データ量と同等であり、キャッシュメモリは領域408内の画像データを全て格納できない。すなわち、外部メモリからキャッシュに複製したデータ(データAと呼ぶ)を次に再利用するまでに、このデータAが破棄される可能性がある。このような場合、キャッシュのヒット率は著しく低下し、処理時間も著しく長くなってしまう。特に動画に対して画像変形処理を行う場合、画像表示処理に画像変形処理が追いつけなる可能性がある。この場合、コマ落ちなどの画像劣化が発生する可能性がある。
本発明は、キャッシュ技術を用いて画像変形処理を行う際に、処理速度を向上させることを目的とする。
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。すなわち、
入力画像に変形処理を行って出力画像を生成する画像処理装置であって、
入力画像の画素データを取得する取得手段と、
前記入力画像の変形パラメータに基づく変形後の変形画像の分割領域ごとに、前記変形画像の画素データを、前記入力画像の画素データのうちの一部を記憶するキャッシュメモリを参照して求める変形手段と、
前記分割領域のサイズを前記キャッシュメモリの容量と前記変形パラメータに基づいて決定する決定手段とを有し、
前記キャッシュメモリには、所定画素数を単位として、前記入力画像の画素データのうち一部が記憶され、
前記決定手段は、第1サイズの分割領域に対応する変形画像の画素データを確定するために前記所定画素数を単位として前記キャッシュメモリから参照される入力画像の画素データのデータ量が前記キャッシュメモリの容量を超え、前記第1サイズよりも所定サイズ小さい第2サイズの分割領域に対応する変形画像の画素データを確定するために前記所定画素数を単位として前記キャッシュメモリから参照される入力画像の画素データのデータ量が前記キャッシュメモリの容量を超えない場合、前記第2サイズを前記分割領域のサイズとして決定する
ことを特徴とする。
キャッシュ技術を用いて画像変形処理を行う際に、処理速度を向上させることができる。
従来技術を示す図。 実施例1に係るステップS1010の詳細なフローチャート。 実施例1に係るタイル分割方法の一例を示す図。 従来技術における課題を示す図。 実施例1に係る画像処理装置500の構成例を示すブロック図。 画像変形処理の説明図。 本実施例に係るタイルの大きさを決定する処理の説明図。 実施例2に係るタイル分割方法の一例を示す図。 実施例3に係るコンピュータの構成例を示すブロック図。 実施例1に係る処理のフローチャート。
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
本実施例によれば、変形画像の画像領域を複数の部分領域(タイル)に分割し、それぞれのタイル内の変形画像データを求める場合に、適切なタイルの大きさを決定することができる。すなわち、タイルに対応する入力画像データをキャッシュメモリに格納できるように、タイルの大きさが決定される。こうして、キャッシュヒット率を向上させることができ、画像変形処理の速度を向上させることができる。さらに本実施例によれば、タイルの大きさを小さくしすぎることも防止することができる。タイルが小さすぎる場合、処理順序は例えば通常のラスタスキャンに近くなってしまうため、かえってキャッシュヒット率は低くなってしまう可能性がある。
図5は実施例1に係る画像処理装置の構成を表す。画像処理装置500は入力画像520を、変形パラメータ513に基づき変形して変形画像526(出力画像)として出力するための装置である。本実施例における画像変形には、拡大縮小処理、アフィン変形処理、及びキーストーン補正処理などが含まれる。
画像処理装置500について、まず大まかな処理の流れを説明する。本実施例において、画像処理装置500が出力する変形画像526のそれぞれの画素は、画像処理装置500に入力される入力画像520の画素に対応付けられている。この対応関係は、変形パラメータ513として格納されてメモリ(不図示)に格納されている。
例えば座標変換部509は、変形パラメータ513に基づいて、変形画像526のそれぞれの画素の座標を、対応する入力画像520の画素の座標に変換することができる。本明細書では、変形画像526の画素の座標を変形後座標529と呼ぶ。また、変形後座標529を持つ変形画像526の画素に対応する、入力画像520の画素の座標を、変形前座標528と呼ぶ。
カウンタ508は、変形画像526の各画素を順次走査する。ここで、カウンタ508の走査方法について説明する。図3に示すように、本実施例において変形画像526は、複数の領域(タイル304)に分割される。各タイルの大きさは、後述するようにタイル決定部510が決定する。カウンタ508は、分割された各タイルのそれぞれを、順に走査する。
カウンタ508は、走査されている画素の変形後座標529に対応する変形前座標528を、座標変換部509から取得する。そしてカウンタ508は出力部550に、走査されている画素の変形後座標529と、変形後座標529に対応する変形前座標528とを、出力部550に送信する。
出力部550は、変形前座標528に従って、フレームメモリ501における画像のデータ(イメージデータ)のアドレスを示すリードアドレス情報527を算出する。すなわち、変形前座標528を持つ画素を含むイメージデータのアドレスを、出力部550は算出する。そして出力部550は、算出したリードアドレス情報527をキャッシュ制御部506に送信する。フレームメモリ501には、複数のイメージデータに分割された入力画像520が格納されている。DMAC504は、イメージデータ単位で、フレームメモリ501に格納された入力画像520を読み出すことができる。
キャッシュ制御部506は、リードアドレス情報527の示すイメージデータが、キャッシュメモリ507に格納されているか否かを判定する。リードアドレス情報527の示すイメージデータがキャッシュメモリ507に格納されている場合、キャッシュ制御部506はリードアドレス情報527の示すイメージデータ525をキャッシュメモリ507から取得する。リードアドレス情報527の示すイメージデータがキャッシュメモリ507に格納されていない場合、キャッシュ制御部506はリードアドレス情報527の示すイメージデータ524を、DMAC504を介してフレームメモリ501から取得する。キャッシュメモリ507のデータ読み出し速度はフレームメモリ501のデータ読み出し速度よりも高速である。キャッシュ制御部は、読み出したイメージデータ524,525を、出力部550へと出力する。
出力部550は、変形前座標528に対応する画素値をイメージデータ524,525から取得し(変形手段)、変形画像526の変形後座標529における画素値として、メモリ560に出力する(出力手段)。このように、変形画像526の各画素の画素値を出力部550が出力することにより、メモリ560内に変形画像526が生成される。
次に、画像処理装置500が行う動作について、図10のフローチャートを参照して詳細に説明する。ステップS1005においてメモリ格納部505は入力画像520を入力し(入力手段)、フレームメモリ501に入力画像520を格納する(格納手段)。具体的には、メモリ格納部505は入力画像520をピクセル単位で順次取得する。メモリ格納部505は、ピクセル単位で入力された入力画像520を一旦バッファする。そしてメモリ格納部505は、入力画像520を複数のイメージデータ521に分割し、それぞれのイメージデータ521をDMAC503に出力する。イメージデータ521とは、上述のようにメモリアクセスのためのデータ単位である。すなわちメモリ格納部505は、入力画像520をブロック単位(イメージデータ単位)で格納する。
入力画像520とイメージデータ521との関係について、図7を用いて説明する。図7(B)は入力画像520の例である。また、図7(A)は複数のイメージデータに分割された入力画像520の例である。図7の例では1つのイメージデータは縦1画素×横6画素を有するが、イメージデータの大きさは異なっていてもよい。
またメモリ格納部505は、DMAC503に対してDMAC制御情報522を出力する。DMAC制御情報522は、イメージデータ521をフレームメモリ501のどの領域に配置するかを指定するためのアドレス情報を含む。DMAC503は、Bus502を介して、フレームメモリ501のDMAC制御情報522で指定されるアドレスに、入力されたイメージデータ521を書き込む。
ステップS1010でタイル決定部510は、タイルの大きさを示すタイル高情報532及びタイル幅情報533を生成する(決定手段)。本実施例においては、1つの入力画像520を処理する際には、1組のタイル高情報532及びタイル幅情報533のみが用いられるものとする。ステップS1010のこの処理については後述する。
ステップS1015でカウンタ508は、タイル高情報532及びタイル幅情報533に従って、変形画像526の画像領域を複数のタイルに分割する(分割手段)。例えばカウンタ508は、変形画像526の画像領域を、タイル高情報532が示す高さ及びタイル幅情報533が示す幅を持つ複数の矩形領域に分割することができる。もっとも、画素領域の周辺部において、タイルの大きさは、タイル高情報532及びタイル幅情報533が示す大きさより小さくてもよい。
ステップS1020でカウンタ508は、タイルのうち1つを選択する。選択は任意の方法で行うことができる。例えばカウンタ508は、ラスタ順にタイルを選択してもよい。
ステップS1025でカウンタ508は、選択されたタイルに含まれる画素(部分領域内の画素、着目画素)を1つ選択する(選択手段)。選択は任意の方法で行うことができる。例えばカウンタ508は、ラスタ順に画素を順次選択してもよい。以降で、ステップS1025で選択された画素の座標を、変形画像526の変形後座標529と呼ぶ。
ステップS1030でカウンタ508は、変形後座標529に対応する、入力画像520の座標である、変形前座標528を取得する。以下に、この処理について詳しく説明する。本実施例において変形前座標528のそれぞれは、1つの変形後座標529と対応している。変形後座標529と変形前座標528の関係は、変形パラメータ513で指定されている。そして、変形画像526の変形後座標529の画素値は、入力画像520の対応する変形前座標528の画素値から求められる。カウンタ508は、変形後座標529から変形前座標528への変換を、座標変換部509に行わせる。
座標変換部509の処理について、具体的な一例を用いて説明する。本実施例においては画像処理装置500で行う変形処理は、拡大縮小、回転、及びシフトのうちの少なくとも1つを含むアフィン変形である。この場合、変形後座標529から変形前座標528への変換は、以下の式に従って行うことができる。
Figure 0005739723
上式において、xsrc,ysrcは変形前座標528であり、xdst,ydstは変形後座標529である。上式のように、変形パラメータ513はDst2Src[0][0]〜Dst2Src[1][2]の6つの係数で表現される。
ステップS1035で出力部550は、カウンタ508から変形前座標528及び変形後座標529を取得する。そして出力部550は、変形前座標528に対応するイメージデータのアドレスを計算し、算出されたアドレスを含むリードアドレス情報527を生成する。出力部550はさらに、リードアドレス情報527をキャッシュ制御部506に出力する。変形前座標528とイメージデータのアドレスとの関係は、出力部550が予め知っていてもよい。代わりに出力部550は、変形前座標528とイメージデータのアドレスとの関係を、例えばDMAC504のようなメモリ制御部に問い合わせてもよい。
ステップS1040でキャッシュ制御部506は、リードアドレス情報527が示すイメージデータが、キャッシュメモリ507に格納されているか否かを判定する(制御手段)。格納されている場合、処理はステップS1045に進む。格納されていない場合、処理はステップS1050に進む。
ステップS1045でキャッシュ制御部506は、キャッシュメモリ507から、リードアドレス情報527が示すイメージデータ525を取得する。
ステップS1050でキャッシュ制御部506は、フレームメモリ501から、リードアドレス情報527が示すイメージデータ524を取得する。具体的にはキャッシュ制御部506は、DMAC504を介してフレームメモリ501からイメージデータ524取得するために、DMAC504に対してDMAC制御情報523を出力する。DMAC504は、入力されたDMAC制御情報523に従って、フレームメモリ501から、リードアドレス情報527が示すイメージデータ524を取得する。ステップS1055でキャッシュ制御部506は、DMAC504を介して取得したイメージデータ524を、キャッシュメモリ507に格納する。例えばキャッシュ制御部506は、イメージデータ524をリードアドレス情報527と関連づけて、キャッシュメモリ507に格納することができる。
ステップS1060で出力部550は、イメージデータ524,525から変形前座標528に対応する画素値を取得する。そして出力部550は、変形後座標529における画素値として、取得した画素値をメモリ560に出力する(出力手段)。
ステップS1065でカウンタ508は、ステップS1025で、ステップS1020で選択したタイル内の全ての画素を選択しているか否かを判定する。全ての画素を選択している場合、処理はステップS1065に進む。全ての画素を選択していない場合、処理はステップS1025に戻る。ステップS1025〜ステップS1065の処理の繰り返しによって、ステップS1020で選択したタイル内の変形画像(部分画像)が生成される。
ステップS1070でカウンタ508は、ステップS1020で、変形画像526の全てのタイルが選択されているか否かを判定する。全てのタイルを選択している場合、処理は終了する。全ての画素を選択していない場合、処理はステップS1020に戻る。ステップS1020〜ステップS1070の処理の繰り返しによって、それぞれのタイルによって構成される変形画像526が生成される。
次に、ステップS1010の処理について、以下に詳しく説明する。まず、ステップS1010の概略を説明する。ステップS1010においてタイル決定部510は、タイルのタイル幅Sw及びタイル高Shを決定する。図6(C)にタイル幅Sw及びタイル高Shを持つタイル630を示す。図6(C)に示す変形画像内のタイル630は、図6(B)に示す入力画像内の領域620に対応する。すなわち、領域620内の画像を変形処理することにより、タイル630内の画像が得られる。
また上述のように、フレームメモリ501及びキャッシュメモリ507において、入力画像は複数のイメージデータに分割されている。したがって、タイル630内の画像を生成するためには、図6(A)に示すように、領域620内の画像を全て含むイメージデータ群610を参照することになる。タイル630内の画像を生成する際には、イメージデータ群610を繰り返し参照する可能性が高いため、イメージデータ群610をキャッシュすることにより、タイル630内の画像を高速に生成することができる。
ところが、キャッシュメモリの容量は予め定められているので、タイル630に対応するイメージデータ群610の全てをキャッシュできないことがある。図7を用いて、このことを詳しく説明する。図7(A)は、タイル高がSh1である場合の例を示す。図7(A)において、変形画像内のタイル710は、入力画像内の領域720に対応する。ところが、図7(A)の場合、キャッシュメモリ507の容量は、イメージデータ群730のデータ量に一致する。したがってキャッシュメモリ507は、領域720内の画像を全て含むイメージデータ群を格納することができない。この場合、タイル710内の画像を生成する際に、処理に必要なイメージデータがキャッシュメモリ507に入っている可能性が下がってしまう。このことは、処理速度の低下につながる。
図7(B)は、タイル高をSh1からSh2に減らした場合の例を示す。ここで、Sh1<Sh2である。図7(B)において、変形画像内のタイル740は、入力画像内の領域750に対応する。この場合もキャッシュメモリ507は、領域750内の画像を全て含むイメージデータ群を格納することができない。
図7(C)は、タイル高をSh2からSh3に減らした場合の例を示す。ここで、Sh2<Sh3である。図7(B)において、変形画像内のタイル770は、入力画像内の領域780に対応する。この場合キャッシュメモリ507は、領域750内の画像を全て含むイメージデータ群を格納することができる。したがって、タイル710内の画像を生成する際に、処理に必要なイメージデータがキャッシュメモリ507に入っている可能性が高くなり、処理速度が向上することが期待される。
このように、タイルの大きさを小さくすることにより、キャッシュメモリ507に、タイルに対応する入力画像を含むイメージデータ群を全て格納させることができるようになる。ステップS1010においてタイル決定部510は、キャッシュメモリ507がタイルに対応する入力画像を含むイメージデータ群を全て格納できるように、タイル幅Sw及びタイル高Shを決定する。
次にステップS1010について、図2のフローチャートを参照して詳しく説明する。本実施例においては、タイル幅Swは固定値とし、タイル高さShを決定するものとする。ステップS201においてタイル決定部510は、初期設定処理を行う。具体的にはタイル決定部510は、タイル上限情報511及びキャッシュサイズ情報512を取得する。タイル上限情報には、タイル高上限値Shmaxと、タイル幅上限値Swmaxとが含まれる。もっとも、Shmaxは変形画像526の高さであってもよいし、Swmaxは変形画像526の幅であってもよい。
また、タイル決定部510は、タイル高ShをShmaxとし、タイル幅SwをSwmaxとする。すなわち本実施例においては、タイル高Shmax及びタイル幅Swmaxを初期値として用いる。さらにタイル決定部510は、変形画像526の画像領域のうち任意の画素を原点(1,1)に設定する。本実施例においては、右方向をX軸正方向、下方向をY軸正方向とし、変形画像526の画像領域の左上隅の画素を原点(1,1)に設定するものとする。このようにしてタイル決定部510は、変形画像526の画像領域)に高さSh、幅Swの領域を設定する。
ステップS202a〜S202bはタイル高Shが0以上の間繰り返されるループである。ステップS202a〜S202bの間にShが0となった場合にはループ処理を中断し、タイル高Sh=1を出力する。もっとも、ステップS202a〜S202bの間にShが0となった場合にはエラーを通知してもよい。
ステップS203でタイル決定部510は、イメージデータリストを初期化する。具体的にはタイル決定部510は、イメージデータリストに含まれるアドレスをクリアする。そしてタイル決定部510は、イメージデータリストに含まれるアドレスの数を示すイメージデータ数を0にセットする。イメージデータリストとは、後に説明されるように、タイルに対応するアドレスを記憶するためのリストである。
ステップS204a〜S204bは、タイル内の全ての画素に対して行われる処理のループである。具体的には、ステップS201で設定された原点座標(1,1)と、座標(Sw,Sh)と、を頂点とする矩形領域内の全ての画素に対して、ステップS204a〜S204bの処理が行われる。以下では、座標(x,y)を有する画素に対して処理を行う場合について説明する。
ステップS205でタイル決定部510は、変形画像526における座標(x,y)の画素を含む、イメージデータのアドレスを取得する。アドレスの取得方法については前に説明した。このようにタイル決定部510は、矩形領域内のそれぞれの画素について、この画素を含むイメージデータを特定する。
ステップS206でタイル決定部510は、ステップS205で取得したアドレスがイメージデータリストに含まれているか否かを判定する。含まれている場合、処理はステップS204bに進む。含まれていない場合、処理はステップS207に進む。
ステップS207でタイル決定部510は、ステップS205で取得したアドレスをイメージデータリストに追加する。さらにタイル決定部510は、イメージデータ数に1を追加する。そして、まだ処理されていない画素がある場合には、処理はステップS204bからS204aに戻る。ステップS204a〜ステップS204bの処理を繰り返すことによって、タイルに含まれる画素に対応するイメージデータの数が求められる。
ステップS208でタイル決定部510は、ステップS204a〜ステップS204bの処理を繰り返すことによって求められたイメージデータの数(イメージデータのデータ量)を、所定の閾値と比較する。ここでこの所定の閾値は、キャッシュメモリ507が記憶できるイメージデータの数であり、イメージデータのデータ量がキャッシュメモリ507の容量以下であるか否かが判定される。イメージデータの数が閾値以下である場合、処理はステップS202a〜S202bのループを抜け、ステップS210に進む。イメージデータの数が閾値を超える場合、処理はステップS209に進む。
ステップS209でタイル決定部510は、タイル高Shから所定値を減らす。本実施例ではタイル決定部510は、タイル高Shから1を減じるものとする。このようにしてタイル決定部510は、変形画像526の画像領域内に高さSh、幅Swの領域を再設定する。もっとも、この所定の値は任意の値であってよい。所定の値が大きいほどタイルの大きさをより高速に決定することができる。また、所定の値が小さいほどキャッシュメモリ507の容量によりよく適合したタイルの大きさを決定することができる。そして、処理はステップS202bからS202aに戻る。
ステップS210でタイル決定部510は、得られたタイル高Shを含むタイル高情報532と、タイル幅Swを含むタイル幅情報533とを生成する。以上の処理によってタイル決定部510は、タイル高Sh及びタイル幅Swを求める。
上述の実施例1でタイル決定部510は、タイル幅Swは固定値とし、タイル高Shを決定した。しかしながらタイル決定部510は、タイル高Shを固定値とし、タイル幅Swを決定してもよい。またタイル決定部510は、タイル幅Swとタイル高Shとの双方を決定してもよい。
[実施例1の変形例]
実施例1では、ステップS201において、変形画像526の画像領域の左上隅の画素を原点(1,1)に設定した。しかしながら上述のように、変形画像526の画像領域の任意の画素を原点(1,1)に設定することができる。例えば、変形画像526の画像領域の中央を原点に設定してもよい。また、変形画像526の画像領域の四隅の画素のいずれかを原点に設定してもよい。例えば、変形画像526の左方向をX軸正方向、下方向をY軸正方向として、右上隅の画素を原点(1,1)に設定してもよい。変形画像526の右方向をX軸正方向、上方向をY軸正方向として、左下隅の画素を原点(1,1)に設定してもよい。さらに、変形画像526の左方向をX軸正方向、上方向をY軸正方向として、右下隅の画素を原点(1,1)に設定してもよい。
原点の位置は、変形の種類に応じて予め設定されていてもよいし、ユーザによって設定されてもよい。例えば、タイルに対応する入力画像内の領域がより大きくなるように原点の位置を定めることにより、決定されるタイルの大きさが大きすぎることを防止することができる。従って、より縮小率が高い変形画像526の一領域が原点となるように、原点の位置が予め設定されていてもよい。
[実施例2]
実施例1においては、1つの入力画像520を処理する際には、1組のタイル高情報532及びタイル幅情報533のみが用いられた。すなわち1つの入力画像520は、同じ大きさの複数のタイルに分割された。実施例2では、1つの入力画像520を、異なる大きさの複数のタイルに分割する。
図8を参照して実施例2について説明する。図8において、800は入力画像を表し、801は変形画像を表す。図8の変形画像801は、入力画像800に対してピンクッション変形をかけることにより得られる。800’は、変形画像801において、入力画像800に対応する領域を示す。
ピンクッション変形の場合、変形画像801の四隅により近い領域はより強く縮小される。逆に、変形画像801の中心により近い領域はより弱く縮小される。縮小率の高い領域は、より多くのイメージデータに対応する。したがってキャッシュヒット率を高めるためには、縮小率の高い領域においてはタイルの大きさをより小さくする必要がある。逆に縮小率の低い領域においては、タイルの大きさはより大きくてもよい。本実施例によれば、このように画像の縮小率に応じてタイルの大きさを設定することができる。
本実施例の具体的な処理について説明する。本実施例に係る画像処理装置500は、実施例1に係る画像処理装置500と同様の構成をとりうる。また、本実施例に係る処理も、ステップS1010を除いて実施例1と同様に行うことができる。本実施例においては、ステップS1010において、ステップS201〜S210を繰り返すことにより、分割領域802,803,…の高さをそれぞれ決定する。
まずタイル決定部510は、ステップS201で原点の座標を変形画像526の画像領域の上端の任意の画素に設定する。そしてタイル決定部510は、ステップS202a〜S210の処理を行う。この処理によって得られるタイル高Shが、分割領域802の高さSh802となる。タイル幅Swは固定値であるから、Sh802とSwとを用いて分割領域802を複数のタイルに分割することができる。
次にタイル決定部510は、分割領域803の高さを決定するために、ステップS201〜S210を繰り返す。ここでタイル決定部510は、既に高さが決定している分割領域(分割領域802)の下に隣接する任意の画素に、原点の座標を設定する。そしてタイル決定部510は、ステップS202a〜S210の処理を行う。この処理によって得られるタイル高Shが、この分割領域803の高さSh803となる。
同様にステップS201〜S210を繰り返すことにより、タイル決定部510は分割領域804以降の高さを決定することができる。高さが決定している分割領域の高さの合計が変形画像526の画像領域の高さ以上となった際に、タイル決定部510は、ステップS201〜S210の繰り返しを終了する。図8の例では、分割領域806の高さを決定すると、ステップS1010の処理は終了する。
本実施例においては、分割領域の高さSh802,Sh803,…はタイル高Shに一致する。すなわち、1つの分割領域802,803,…には、横1行のタイルが含まれている。しかしながら、例えば分割領域の高さSh802,Sh803,…を、タイル高Shの複数倍としてもよい。この場合、1つの分割領域には複数行のタイルが含まれる。
[実施例3]
本実施形態では、上述の各実施形態に係る処理をコンピュータにより行わせる。図9はコンピュータの基本構成を示す図である。このコンピュータにおいて上述の各実施形態の機能を実行するためには、各機能構成をプログラムにより表現し、このコンピュータに読み込ませればよい。こうして、このコンピュータで上述の実施形態の全ての機能を実現することができる。この場合、図9をはじめとする構成要素の各々は関数、若しくはCPUが実行するサブルーチンで機能させればよい。
また、コンピュータプログラムは通常、CD−ROM等のコンピュータが読み取り可能な記憶媒体に格納されている。この記憶媒体を、コンピュータが有する読み取り装置(CD−ROMドライブ等)にセットし、システムにコピー若しくはインストールすることで実行可能になる。従って、係るコンピュータが読み取り可能な記憶媒体も本発明の範疇にあることは明らかである。
図9においてCPU901は、コンピュータ全体の動作をコントロールする。例えばCPU901は、一次記憶902に格納されたプログラムの実行等を行う。一次記憶902は、主にRAM等のメモリであり、二次記憶903に記憶されたプログラム等を読み込んで格納する。二次記憶903は、例えばハードディスク、CD−ROM等がこれに該当する。本実施形態では、実施形態の処理手順を実現するプログラムは二次記憶903に格納し、プログラム実行時に一次記憶902に読み込んで、CPU901が実行処理を行う。
入力デバイス904とはコンピュータに情報を入力するデバイスであって、例えばマウスやキーボード等がこれに該当する。入力デバイス904を用いることにより、ユーザがコンピュータに情報を入力することが可能であってもよい。出力デバイス905とはコンピュータが情報を出力するデバイスであって、モニタ及びプリンタを含む。読込デバイス906は、外部の情報を取得するためのデバイスである。読込デバイス906は、メモリカードリーダ及びネットワークカードを含む。バス908は、上述の各部を接続し、データのやりとりを可能とする。
[その他の実施例]
上述の実施例では、フレームメモリ501及びキャッシュメモリ507に格納した画像データには、イメージデータ単位でアクセスできるものとした。また、フレームメモリ501とキャッシュメモリ507とについて、一度にアクセスできるデータ量(イメージデータの大きさ)は同じであるものとした。しかしながら、フレームメモリ501とキャッシュメモリ507とについて、一度にアクセスできるデータ量は異なっていてもよい。
また上述の実施例において、1つの変形前座標528には1つの変形後座標529が対応しているものとした。しかしながら、1つの変形前座標528に1つの変形後座標529が対応していなくてもよい。例えば、変形後座標529は、複数の変形前座標528を用いた補間処理によって求められてもよい。補間処理を行う場合には、補間処理を行わない場合と比べて、入力画像へのアクセス回数がより増えることから、上述の実施例を適用することは処理速度向上のためにより有利である。
上述の実施例においては画像変形処理について説明した。一般的に、画像変形処理を行った後に、さらにフィルタ処理を行うことがよくある。フィルタ処理においても、画像を複数のタイルに分割し、それぞれのタイルに対して順番にフィルタ処理を行うことにより、キャッシュヒット率を高めることができる。この場合、画像変形処理が完全に終了してからフィルタ処理を開始する必要はない。すなわち、画像の一部分について画像変形処理が終了したら、その部分のフィルタ処理を開始することができる。このようにして一連の画像処理をより高速に行うことができる。このとき、2つの処理における走査順序を整合させるために、画像変形処理とフィルタ処理とにおいて同じ方法で画像領域を分割することが有利である。すなわち、同じ方法でタイルの大きさを決定することが有利である。
このためには、上述の実施例の方法でタイルの大きさを決定し、決定されたタイルの大きさに従って変形画像の画像領域を分割する。そして、こうして分割されたそれぞれのタイルに対して、画像変形処理を行い、さらにフィルタ処理を行えばよい。またタイル決定部510は、画像変形処理で用いられるキャッシュメモリの容量を考慮してタイルの大きさを決定してもよい。例えばステップS208においてタイル決定部510は、ステップS204a〜ステップS204bの処理を繰り返すことによって求められたイメージデータの数を、所定の閾値と比較する。ここでの所定の閾値を、キャッシュメモリ507が記憶できるイメージデータの数と、画像変形処理で用いられるキャッシュメモリが記憶できるイメージデータの数とのうち、小さい方としてもよい。
タイルの大きさが大きすぎないことは、フィルタ処理においてもキャッシュヒット率を高めるために有利である。また、タイルの大きさが小さすぎないことも、フィルタ処理においてキャッシュヒット率を高めるために有利である。したがって、上述の実施例の方法を、画像変形処理とフィルタ処理とを組み合わせた画像処理に適用することは、いっそう有利となる。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。

Claims (6)

  1. 入力画像に変形処理を行って出力画像を生成する画像処理装置であって、
    入力画像の画素データを取得する取得手段と、
    前記入力画像の変形パラメータに基づく変形後の変形画像の分割領域ごとに、前記変形画像の画素データを、前記入力画像の画素データのうちの一部を記憶するキャッシュメモリを参照して求める変形手段と、
    前記分割領域のサイズを前記キャッシュメモリの容量と前記変形パラメータに基づいて決定する決定手段とを有し、
    前記キャッシュメモリには、所定画素数を単位として、前記入力画像の画素データのうち一部が記憶され、
    前記決定手段は、第1サイズの分割領域に対応する変形画像の画素データを確定するために前記所定画素数を単位として前記キャッシュメモリから参照される入力画像の画素データのデータ量が前記キャッシュメモリの容量を超え、前記第1サイズよりも所定サイズ小さい第2サイズの分割領域に対応する変形画像の画素データを確定するために前記所定画素数を単位として前記キャッシュメモリから参照される入力画像の画素データのデータ量が前記キャッシュメモリの容量を超えない場合、前記第2サイズを前記分割領域のサイズとして決定する
    ことを特徴とする画像処理装置。
  2. 前記決定手段は、前記分割領域の幅と高さのうち一方は、一定のサイズとし、他方を前記キャッシュメモリの容量に基づいて決定することを特徴とする請求項に記載の画像処理装置。
  3. 前記変形手段は、前記分割領域の座標に対応する前記入力画像の座標を算出し、当該算出された座標の入力画像の画素データを前記キャッシュメモリにアクセスして取得し、前記分割領域の画素データを確定すると共に、前記算出された座標の入力画像の画素データが前記キャッシュメモリに記憶されていない場合、前記入力画像の画素データをフレーム単位で記憶可能なフレームメモリであって、前記キャッシュメモリよりもアクセス時間が長いフレームメモリから、前記算出された座標の入力画像の画素データを取得し、
    前記フレームメモリから前記入力画像の画素データが取得された場合、当該取得された入力画像の画素データに対応する分割領域の入力画像の画素データを、前記フレームメモリから前記キャッシュメモリへ格納させる制御手段を有することを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記変形処理には、前記入力画像の拡大、縮小、及び、回転のうち、少なくとも何れかが含まれ、
    前記変形手段は、前記変形の種別と当該変形の度合いに応じた前記変形パラメータに基づいて、前記変形画像の座標に対応する前記入力画像の座標を特定し、当該特定された座標の画素データを前記キャッシュメモリから取得して前記変形画像の画素データを求めることを特徴とする請求項1乃至のうちいずれか1項に記載の画像処理装置。
  5. 入力画像に変形処理を行って出力画像を生成する画像処理装置の制御方法であって、
    入力画像の画素データを取得する取得工程と、
    前記入力画像の変形パラメータに基づく変形後の変形画像の分割領域ごとに、前記変形画像の画素データを、前記入力画像の画素データのうちの一部を記憶するキャッシュメモリを参照して求める変形工程と、
    前記分割領域のサイズを前記キャッシュメモリの容量と前記変形パラメータに基づいて決定する決定工程とを有し、
    前記キャッシュメモリには、所定画素数を単位として、前記入力画像の画素データのうち一部が記憶され、
    前記決定工程では、第1サイズの分割領域に対応する変形画像の画素データを確定するために前記所定画素数を単位として前記キャッシュメモリから参照される入力画像の画素データのデータ量が前記キャッシュメモリの容量を超え、前記第1サイズよりも所定サイズ小さい第2サイズの分割領域に対応する変形画像の画素データを確定するために前記所定画素数を単位として前記キャッシュメモリから参照される入力画像の画素データのデータ量が前記キャッシュメモリの容量を超えない場合、前記第2サイズを前記分割領域のサイズとして決定する
    ことを特徴とする制御方法。
  6. コンピュータを請求項1乃至のうちいずれか1項に記載の画像処理装置として動作させるためのプログラム。
JP2011105645A 2011-05-10 2011-05-10 画像処理装置、画像処理方法、及びプログラム Expired - Fee Related JP5739723B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011105645A JP5739723B2 (ja) 2011-05-10 2011-05-10 画像処理装置、画像処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011105645A JP5739723B2 (ja) 2011-05-10 2011-05-10 画像処理装置、画像処理方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2012238118A JP2012238118A (ja) 2012-12-06
JP2012238118A5 JP2012238118A5 (ja) 2014-06-26
JP5739723B2 true JP5739723B2 (ja) 2015-06-24

Family

ID=47460979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011105645A Expired - Fee Related JP5739723B2 (ja) 2011-05-10 2011-05-10 画像処理装置、画像処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5739723B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4202033B2 (ja) * 2001-09-05 2008-12-24 三菱電機株式会社 並列画像処理装置および並列画像処理方法
JP2007028449A (ja) * 2005-07-20 2007-02-01 Fuji Xerox Co Ltd 画像処理装置、画像処理方法、及びプログラム
JP2010176547A (ja) * 2009-01-30 2010-08-12 Dainippon Printing Co Ltd 画像処理装置に含まれる制御装置、制御方法、及び制御処理プログラム
JP5455213B2 (ja) * 2009-11-17 2014-03-26 Necシステムテクノロジー株式会社 画像描画装置、画像描画方法およびプログラム

Also Published As

Publication number Publication date
JP2012238118A (ja) 2012-12-06

Similar Documents

Publication Publication Date Title
JP7175197B2 (ja) 画像処理方法および装置、記憶媒体、コンピュータ装置
US9667841B2 (en) Image processing apparatus and image processing method
JP2007193508A (ja) 画像処理装置及び画像処理プログラム
JP5388835B2 (ja) 情報処理装置及び情報処理方法
JP2008079026A (ja) 画像処理装置、画像処理方法、及び、プログラム
JP2009211626A (ja) 画像処理装置及び方法
JP2017200042A (ja) 画像形成装置
WO2011062205A1 (ja) 画像描画装置、画像描画方法および記録媒体
US7825928B2 (en) Image processing device and image processing method for rendering three-dimensional objects
JP4686624B2 (ja) 情報処理装置、画像処理方法およびプログラム
JP2007198912A (ja) 画像検査装置、画像検査方法、コンピュータを画像検査装置として機能させるためのプログラムおよび記録媒体
JP2010176547A (ja) 画像処理装置に含まれる制御装置、制御方法、及び制御処理プログラム
JP5703705B2 (ja) 画像特徴検出システム、画像認識システム、画像特徴検出方法、およびプログラム
JP5739723B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2010244251A (ja) 顔の特徴部位の座標位置を検出する画像処理装置
JP2011119824A (ja) 画像処理装置及び画像処理プログラム
JPWO2019041842A5 (ja)
JP6116271B2 (ja) 特徴量算出装置、方法及びプログラム
JP7140491B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US9270900B2 (en) Movie processing apparatus and control method therefor
KR100685858B1 (ko) 원근 왜곡 보정 방법 및 시스템
JP3318248B2 (ja) 画質改善装置及び記録媒体
JP5349931B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4865021B2 (ja) 画像処理装置および画像処理方法
JP5370294B2 (ja) 画像処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140509

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140509

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150305

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: 20150327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150424

R151 Written notification of patent or utility model registration

Ref document number: 5739723

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees