(57)【要約】【課題】  画像変形処理回路において比較的大きな割合を占めるプリフェッチの機構を持たずに任意の形状変形を実現するための技術を提供すること。【解決手段】  入力画像を複数の画素から成る画素ブロック毎に格納し、入力画像を変形させるための指示を取得する。入力画像中のそれぞれの画素位置に規定サイズの矩形領域を設けた場合、入力画像における着目画素ブロックの領域が変形に伴って写像される着目写像後領域、と重なる部分を有するそれぞれの矩形領域Ｐの入力画像中における位置をＸとする。この場合、変形画像上の位置Ｘにおける画素値を、矩形領域Ｐと重なる部分を有する写像後領域の写像元となる画素ブロック内の画素の画素値を用いて計算し、計算の後、着目画素ブロックを削除する。【選択図】  図１
2011253218.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を変形させて変形画像を生成する画像処理装置であって、
前記入力画像を、複数の画素から成る画素ブロック毎に格納する格納手段と、
前記入力画像を変形させるための指示を取得する取得手段と、
前記入力画像中のそれぞれの画素位置に規定サイズの矩形領域を設けた場合に、前記入力画像における着目画素ブロックの領域が前記指示が示す変形に伴って写像される写像先の前記入力画像中における着目写像後領域、と重なる部分を有するそれぞれの矩形領域Ｐの前記入力画像中における位置をＸとすると、前記変形画像上の位置Ｘにおける画素値を、前記矩形領域Ｐと重なる部分を有する写像後領域の写像元となる画素ブロック内の画素の画素値を用いて計算し、該計算の後、前記着目画素ブロックを前記格納手段から削除する計算手段と、
前記計算手段によりそれぞれの画素値が求まった前記変形画像を出力する手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記指示は、前記入力画像を回転させる指示であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
入力画像を変形させて変形画像を生成する画像処理装置が行う画像処理方法であって、前記画像処理装置が有する処理手段が、
前記入力画像を、複数の画素から成る画素ブロック毎に前記画像処理装置の記憶部に格納する格納工程と、
前記入力画像を変形させるための指示を取得する取得工程と、
前記入力画像中のそれぞれの画素位置に規定サイズの矩形領域を設けた場合に、前記入力画像における着目画素ブロックの領域が前記指示が示す変形に伴って写像される写像先の前記入力画像中における着目写像後領域、と重なる部分を有するそれぞれの矩形領域Ｐの前記入力画像中における位置をＸとすると、前記変形画像上の位置Ｘにおける画素値を、前記矩形領域Ｐと重なる部分を有する写像後領域の写像元となる画素ブロック内の画素の画素値を用いて計算し、該計算の後、前記着目画素ブロックを前記記憶部から削除する計算工程と、
前記計算工程でそれぞれの画素値が求まった前記変形画像を出力する工程と
を行うことを特徴とする画像処理方法。
【請求項４】
コンピュータを請求項１又は２に記載の画像処理装置が有する各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像管理技術に関するものである。
【背景技術】
【０００２】
幾何変形などの画像の変形を伴う処理では、入力画像と出力画像の画素位置が異なるため、フレームメモリなどの記憶部を介して出力画像を生成する方法が用いられる。フレームメモリ用の記憶部には入力画像と同等のデータサイズを格納できることが要求されるため、一般にダイナミックＲＡＭ（ＤＲＡＭ）等の安価で大容量な第一記憶部が使用される。ＤＲＡＭはスタティックＲＡＭ（ＳＲＡＭ）に対し、構造的に比較的安価にサイズの大きな記憶部を実現可能であるが、データのアクセスレイテンシが比較的長いという欠点をもつ。
【０００３】
ＤＲＡＭを用いた処理の場合、ＤＲＡＭのアクセスレイテンシが比較的長いため、ＤＲＡＭのメモリアクセスがボトルネックとなって処理のスループットが低下するという現象が通常起こりえる。具体的には、画像処理モジュールがＤＲＡＭ上の任意アドレスのデータを要求してからデータが帰ってくるまでのアクセスレイテンシが長いため、その間は画像処理モジュールの処理が停止し、処理モジュール単体の持つピーク性能に対しスループットが低下する。この問題を解決する方法として、スタティックＲＡＭ（ＳＲＡＭ）等の、サイズ当たりのコストは高価だがアクセスレイテンシが短い補助記憶部を持ち、必要なデータを予め部分的にＳＲＡＭ内に格納しておくことで処理のスループットを向上させる方法がある。
【０００４】
必要なデータを予めＳＲＡＭ内に格納するための１つ目の方法として、プリフェッチという方法がある。プリフェッチを用いると、処理モジュールが次に必要とするデータのＤＲＡＭ上のアドレスを前もって発行してＳＲＡＭにデータを格納し、処理モジュールが実際にこのデータを必要とするときまでにＳＲＡＭにこのデータを格納した状態にすることができる。この様にすることで、ＤＲＡＭのアクセスレイテンシを隠ぺいし、処理モジュールを停止する事無く動作させることが可能になるため、スループットを向上させることが出来る。
【０００５】
必要なデータを予めＳＲＡＭ内に格納するための２つ目の方法として特許文献１に記載の方法がある。特許文献１では、画像の回転処理を行う際に、入力画像を複数の画像ブロックに分割し、回転角度に応じた順序で画像ブロックを第一記憶部から読み出して補助記憶部（文献中にはバッファメモリと表記）に格納する。次に回転角度に応じた順序でバッファメモリの画像ブロックからピクセルデータを読み出す。第一記憶部からの画像ブロックの回転角度に応じた読み出しと、補助記憶部からのピクセルデータの回転角度に応じた読み出しを、入力画像の全ての画像ブロックに適用することで入力画像の回転を行う。
【０００６】
特許文献１の方法によれば、画像ブロックの読み出し順序は回転角度によって一意に決まる。また、個々の画像ブロックの回転処理は画像ブロック内で完結するため、第一記憶部上へのアクセスアドレスを記憶しておけば、アドレス計算を逐次行う事無くプリフェッチと同等の技術を実現できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−１２５１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
１つ目の従来技術では、画像処理モジュールはプリフェッチの為の機構を備えなければならない。プリフェッチは画像処理モジュールのデータ消費に先行して実行されなければならないため、画像処理モジュールは２つの独立したアドレス発行機構（フェッチ、プリフェッチ）を持つ必要がある。幾何変形などの画像の変形を伴う処理では、アドレス発行機構が画像処理モジュールの回路全体に占める割合は比較的大きく、コスト・消費電力の面で問題がある。
【０００９】
２つ目の従来技術では、アドレス計算を逐次行う事無くプリフェッチと同等のことが可能であるものの、画像の回転角度は単一の画像ブロック内で完結する角度に限られるという問題がある。具体的には画像ブロックが矩形であった場合、処理可能な回転角度は９０度の倍数に制限され、任意の形状変形は行えない。
【００１０】
本発明は以上の問題に鑑みてなされたものであり、画像変形処理回路において比較的大きな割合を占めるプリフェッチの機構を持たずに任意の形状変形を実現するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の目的を達成するために、本発明の一例としての画像処理装置は以下の構成を備える。即ち、入力画像を変形させて変形画像を生成する画像処理装置であって、前記入力画像を、複数の画素から成る画素ブロック毎に格納する格納手段と、前記入力画像を変形させるための指示を取得する取得手段と、前記入力画像中のそれぞれの画素位置に規定サイズの矩形領域を設けた場合に、前記入力画像における着目画素ブロックの領域が前記指示が示す変形に伴って写像される写像先の前記入力画像中における着目写像後領域、と重なる部分を有するそれぞれの矩形領域Ｐの前記入力画像中における位置をＸとすると、前記変形画像上の位置Ｘにおける画素値を、前記矩形領域Ｐと重なる部分を有する写像後領域の写像元となる画素ブロック内の画素の画素値を用いて計算し、該計算の後、前記着目画素ブロックを前記格納手段から削除する計算手段と、前記計算手段によりそれぞれの画素値が求まった前記変形画像を出力する手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成によれば、画像変形処理回路において比較的大きな割合を占めるプリフェッチの機構を持たずに任意の形状変形を実現することができ、これより回路規模を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】画像処理装置の機能構成例を示すブロック図。
【図２】アクセスシーケンスリストを説明する図。
【図３】アクセスシーケンス決定部１０４が行う処理のフローチャート。
【図４】アクセスシーケンスリストが作成される過程を示す図。
【図５】メモリリード部１０６が行う処理のフローチャート。
【図６】ブロックデータ管理部１０７が行う処理のフローチャート。
【図７】アクセスシーケンスリストを説明する図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１５】
［第１の実施形態］
先ず、本実施形態に係る画像処理装置について、図１のブロック図を用いて説明する。本実施形態に係る画像処理装置１１２は、画像入力部１００を介して外部の装置から入力された入力画像を先ず、第一記憶部１０５に格納する。そして画像処理装置１１２はブロックデータ処理部１１０を用いて、この入力画像の形状を幾何的に変形させる幾何変形処理を行い、変形画像を生成する。この変形内容を示す変形指示は、ユーザがユーザ操作入力部１０２を用いて行う。以下に、この画像処理装置１１２の動作について、より詳細に説明する。
【００１６】
上記の通り、入力画像のデータは、画像入力部１００を介して画像処理装置１１２内に取り込まれ、メモリライト部１０１は、この取り込まれた入力画像のデータを第一記憶部１０５に格納する。
【００１７】
第一記憶部１０５は、一般的にはダイナミックＲＡＭ（ＤＲＡＭ）で構成されており、本実施形態でもこの第一記憶部１０５はＤＲＡＭであるものとして説明するが、読み書き可能なメモリであれば他のタイプのメモリを第一記憶部１０５として用いても良い。なお、ＤＲＡＭは、アクセスレイテンシの比較的長いメモリである。また、メモリライト部１０１は、一般的にはＤＭＡコントローラ（ＤＭＡＣ）と呼ばれるものである。メモリライト部１０１は、このような第一記憶部１０５に対して入力画像のデータを、複数の画素から成る画素ブロック毎に格納する。
【００１８】
なお、個々の画素ブロックには、入力画像上における画素ブロックの位置を示す情報が添付されているものとするが、この情報は個々の画素ブロックに添付せずに１つのヘッダ情報としてまとめて第一記憶部１０５に格納しても良い。
【００１９】
ユーザ操作入力部１０２は、キーボードやマウスに代表される指示入力装置であり、入力画像をどのように幾何変形させるのかを示す指示（変形指示）を入力することができるのであれば、如何なる入力デバイスをユーザ操作入力部１０２として用いても良い。
【００２０】
ここで、画像の幾何変形を行うということは、画像上の画素位置が他の画素位置に写像されることに等価である。例えば、画像をθだけ回転させるような幾何変形を行うということは、θだけ回転させる回転行列を画像上の各画素位置に掛け合わせてこの各画素位置を他の画素位置に写像することである。これは、画像の任意の方向へのシフト、拡大などの他の幾何変形についても同じことである。然るに、この変形指示には、入力画像をＰ、変形画像をＱ、とすると、Ｑ＝Ｍ・Ｐを満たす写像行列Ｍを表す情報が含まれていることになる。ユーザ操作入力部１０２を介して入力されたこの変形指示は、座標変換部１０３に入力される。
【００２１】
座標変換部１０３は、この変形指示に含まれている写像行列Ｍを用いて、変形画像上の画素位置を入力画像上の画素位置に変換する為の写像行列（Ｍ−１）を求める。即ち、上記写像行列Ｍを用いて、入力画像上の画素位置Ｓ（入力系座標）が変形画像上の画素位置Ｔ（出力系座標）に写像されるとすると、画素位置Ｔから画素位置Ｓを求める為の写像行列を求めることになる。
【００２２】
なお、座標変換部１０３は、ユーザ操作入力部１０２から変形指示が入力される毎にこのような写像行列を求める演算を行う。即ち、座標変換部１０３は常に動作しているのではなく、ユーザ操作入力部１０２からの入力があればこの入力に対して１回のみ動作する。もちろん、座標変換部１０３は、前回入力された変形指示と今回入力された変形指示とに規定量以上の差があったときのみ動作するようにしても良い。
【００２３】
また、座標変換部１０３は、変形画像上の画素位置を入力画像上の画素位置に変換する為の情報（若しくはそれぞれの画素位置間の関係を示す情報）であれば、写像行列でなくても良く、他の情報を求めても良い。
【００２４】
アクセスシーケンス決定部１０４は、メモリリード部１０６が第一記憶部１０５に格納されている入力画像を複数の画素から成る画素ブロック毎に読み出す場合の、画素ブロックの読み出し順（アクセス順）等を規定するアクセスシーケンスリストを生成する。そしてアクセスシーケンス決定部１０４は、この生成したアクセスシーケンスリストを第一記憶部１０５に格納する。
【００２５】
このアクセスシーケンスリストについて、図７を用いて説明する。アクセスシーケンスリスト７９０には、第一記憶部１０５における画素ブロックｉ（ｉ＝１，２，…，Ｎ：Ｎは画素ブロックの総数）の格納アドレス７００と、画素ブロックｉの参照回数を示す参照回数情報７０１、のセットが、画素ブロック毎に格納されている。このセットは、より先に参照される画素ブロックについてのセットがより上に位置している。例えば、第一記憶部１０５内におけるメモリアドレス（ＢＡＳＥ＋（ＯＦＦＳＥＴ＊２））に格納されているセット中の格納アドレス７０２は、３番目に参照する画素ブロックの第一記憶部１０５におけるの格納アドレスを示す。また、第一記憶部１０５内におけるメモリアドレス（ＢＡＳＥ＋（ＯＦＦＳＥＴ＊２））に格納されているセット中の参照回数情報７０３は、３番目に参照する画素ブロックの参照回数を示す。
【００２６】
次に、図２を用いて、アクセスシーケンスリストについてより詳細に説明する。図２では、入力画像２００を回転させた変形画像２０１を作成する場合について示している。図２（ａ）に示す如く、変形画像２０１は、変形画像２０１を含む１つの矩形画面２９０の最上ラインから最下ラインまで走査順（出力走査順）に生成する。変形画像２０１における画素ブロックの生成には当然ながら、第一記憶部１０５に格納されているこの画素ブロックのデータを参照する必要がある。然るに、最上ラインにより近い画素ブロックから参照されることになる。例えば、入力画像２００において着目画素ブロック２０４は変形画像２０１上では「３」が付されている画素ブロックに写像されているが、この画素ブロックは最上ラインから３番目に近いので、この画素ブロックは３番目に参照する画素ブロックとなる。
【００２７】
然るにアクセスシーケンス決定部１０４は、第一記憶部１０５に格納されているそれぞれの画素ブロックに添付の情報から、それぞれの画素ブロックの入力画像上における位置を特定する。もちろん、画素ブロックの位置を他の管理方法で管理している場合には、他の方法でこの位置を取得する。そしてアクセスシーケンス決定部１０４は、この特定した位置を座標変換部１０３から受けた変形指示で写像した写像位置を求める。そして、最上ラインにより近い写像位置を求めた画素ブロックをより先の参照順として特定する。これにより、図７に示した各セットの並び順が決まる。
【００２８】
次に、図２（ｂ）を用いて、各画素ブロックの参照回数情報の決定方法について、上記の「３」が付された画素ブロック（写像後画素ブロック）を例に取り説明する。即ち、写像後画素ブロックを例に取った以下の説明は、他の画素ブロックについても同様に当てはまる。
【００２９】
本実施形態では、原理的には、矩形画面２９０内で２画素×２画素の矩形領域を１画素毎に出力走査順に移動させ、矩形領域が位置Ｘにある場合、この位置Ｘにおける画素値を、この矩形領域と重なる部分を有する画素ブロック内の画素値を用いて求める。これにより変形画像２０１を生成する。図２（ｂ）の例で、矩形領域が写像後画素ブロックと重なる部分を有する場合、矩形領域の位置における画素値を求めるためには、写像後画素ブロックの写像元である着目画素ブロック２０４を参照する必要がある。即ち、着目画素ブロック２０４を参照する回数は、写像後画素ブロックと矩形領域とが重なる回数に相当する。図２（ｂ）に示す如く、この矩形領域は写像後画素ブロックと１５回重なることが分かるので、この場合、着目画素ブロック２０４に対する参照回数は「１５」となる。このように、アクセスシーケンス決定部１０４は、それぞれの画素ブロックについて参照回数情報を求める。これにより、図７に示した各セットが確定することになる。
【００３０】
なお、アクセスシーケンス決定部１０４は、座標変換部１０３から変形指示が入力される毎にこのようなアクセスシーケンスリストを生成する。即ち、アクセスシーケンス決定部１０４は常に動作しているのではなく、座標変換部１０３からの入力があればこの入力に対して１回のみ動作する。
【００３１】
そしてアクセスシーケンス決定部１０４は、このようにして生成したアクセスシーケンスリストを第一記憶部１０５に格納する。なお、アクセスシーケンス決定部１０４が行う処理の詳細については後述する。
【００３２】
メモリリード部１０６は先ず第一記憶部１０５に格納されているアクセスシーケンスリストを読み出す。そしてメモリリード部１０６は、読み出したアクセスシーケンスリストに登録されているセット群を上から参照し、参照したセット中の格納アドレスに格納されている画素ブロックを第一記憶部１０５から読み出す。そして、メモリリード部１０６は、参照したセット中の参照回数情報と、このセット中の格納アドレスに格納されている画素ブロックと、をブロックデータ管理部１０７に送出する。メモリリード部１０６が行う処理の詳細については後述する。
【００３３】
ブロックデータ管理部１０７は、メモリリード部１０６から受けた画素ブロック及び参照回数情報をセットにして第二記憶部１０８に格納する。本実施形態では、第二記憶部１０８は、スタティックＲＡＭ（ＳＲＡＭ）であるものとして説明する。このＳＲＡＭはアクセスレイテンシの比較的短いメモリである。しかし、読み書き可能なメモリであれば他のタイプのメモリを第二記憶部１０８として用いても良い。
【００３４】
また、ブロックデータ管理部１０７は、ブロックデータ処理部１１０から要求された画素ブロックを第二記憶部１０８から読み出してブロックデータ処理部１１０に供給する。このとき、ブロックデータ管理部１０７は、供給した画素ブロックとセットにして第二記憶部１０８に格納した参照回数情報が示す参照回数を１つ減じることでこの参照回数情報を更新する。そしてブロックデータ管理部１０７は、この更新後の参照回数情報が示す参照回数が０になった場合には、この参照回数情報、及びこの参照回数情報とセットにして第二記憶部１０８に格納した画素ブロックを第二記憶部１０８から削除する。
【００３５】
ブロックデータ処理部１１０は、座標変換部１０３とのやり取りにより、変形指示に従って、ブロックデータ管理部１０７から受けた画素ブロックを用いて変形画像を生成する。
【００３６】
より詳しくは、ブロックデータ処理部１１０は、変形画像を包含する矩形領域（図２の場合、矩形領域２９０）内で出力走査順に２画素×２画素のサイズの矩形領域（参照領域）を移動させる。そして、変形画像内の各画素ブロックのうちこの参照領域と重なる部分を有する画素ブロックを特定し、特定した画素ブロックにおいて参照領域と重なっている部分を構成する各画素の画素位置に対して、座標変換部１０３が求めた写像行列を掛け合わせる。これにより、入力画像上の対応する画素位置を求めることができる。また、ブロックデータ処理部１１０は、この特定した画素ブロックのデータをブロックデータ管理部１０７に要求する。そして、この供給に応じてブロックデータ管理部１０７から受けた画素ブロックにおいて、この求めた画素位置の画素の画素値を用いて、参照領域の位置における画素値を求める。このような処理により各画素の画素値が確定した変形画像を生成することができる。
【００３７】
なお、この説明した処理は換言すれば次の処理に等価である。即ち先ず、入力画像における画素ブロックの領域が、変形指示が示す変形に伴って写像される写像先の、入力画像中における写像後領域を演算によって求める。ここで、入力画像中のそれぞれの画素位置に規定サイズ（例えば２画素×２画素）の矩形領域を設けた場合に、入力画像中の着目画素ブロックの領域の写像先である着目写像後領域と重なる部分を有するそれぞれの矩形領域Ｐの入力画像中における位置をＸとする。この場合、変形画像上（矩形領域２９０上）の位置Ｘにおける画素値を、矩形領域Ｐと重なる部分を有する写像後領域の写像元となる画素ブロック内の画素の画素値を用いて計算する。
【００３８】
なお、ブロックデータ処理部１１０は、上記の何れの演算で画素値を求めるにせよ、変形画像の各画素の画素値を確定させた後、この変形画像に対して画素値の補間処理やフィルタ処理などの画像処理を適宜適用しても良い。
【００３９】
そしてブロックデータ処理部１１０は、この生成した変形画像を表示部１１１に送出する。この表示部１１１はＣＲＴや液晶画面などにより構成されており、ブロックデータ処理部１１０から受けた変形画像のデータ（出力画像データ）に基づく画像を表示する。
【００４０】
次に、アクセスシーケンス決定部１０４が行う処理について、同処理のフローチャートを示す図３を用いて説明する。アクセスシーケンス決定部１０４は座標変換部１０３からの変形指示を受けない限りはステップＳ３０１で待機しているが、この変形指示を受けた場合には、処理はステップＳ３０１からステップＳ３０２に進む。
【００４１】
ステップＳ３０２でアクセスシーケンス決定部１０４は、それぞれの画素ブロックの参照順番を決めるために用いる変数である参照ブロックオーダカウンタを１に初期化する。更にアクセスシーケンス決定部１０４は、画素ブロック毎に設けられる変数である参照順番を示す変数、参照回数を示す変数を０に初期化する。
【００４２】
そしてアクセスシーケンス決定部１０４は、ステップＳ３０４〜ステップＳ３１０の処理を、変形画像を包含する矩形領域（図２の場合、矩形領域２９０）内の各画素位置について行う。なお、図３のフローチャートには示していないが、この矩形領域内で変形画像外の領域については０等の規定の画素値を与えるものとする。以下では、この矩形領域内の画素位置ｉ（ｉ＝１，…，Ｍ：Ｍはこの矩形領域の総画素数）についての処理を説明する。
【００４３】
ステップＳ３０４では画素位置ｉを、座標変換部１０３が求めた写像行列で変換し、変換画素位置ｉを求める。ステップＳ３０５ではアクセスシーケンス決定部１０４は、変換画素位置ｉが入力画像上の画素位置であるか否かを判断する。この判断の結果、変換画素位置ｉが入力画像上の画素位置である場合には処理はステップＳ３０６に進み、変換画素位置ｉが入力画像上の画素位置ではない場合には処理はステップＳ３０２に戻り、次の画素位置（ｉ＋１）について以降の処理を行う。
【００４４】
ステップＳ３０６ではアクセスシーケンス決定部１０４は、変形画像を包含する矩形領域内の画素位置ｉに参照領域を設定し、変形画像内の各画素ブロックのうちこの参照領域と重なる部分を有する画素ブロックを特定する。変形画像内の各画素ブロックは、入力画像における画素ブロックの領域が、変形指示が示す変形に伴って写像される写像先の領域に相当する。
【００４５】
ステップＳ３０７ではアクセスシーケンス決定部１０４は、ステップＳ３０６で特定した画素ブロックに対する参照回数を示す変数が０であるか否かを判断する。この判断の結果、０である場合には処理をステップＳ３０８に進め、０でない場合には処理はステップＳ３１０に進む。
【００４６】
ステップＳ３０８ではアクセスシーケンス決定部１０４は、ステップＳ３０６で特定した画素ブロックに対する参照順番を示す変数に、現在の参照ブロックオーダカウンタの値を設定する。
【００４７】
ステップＳ３０９ではアクセスシーケンス決定部１０４は、参照ブロックオーダカウンタの値を１つインクリメントしてこの参照ブロックオーダカウンタを更新する。ステップＳ３１０ではアクセスシーケンス決定部１０４は、参照回数を示す変数の値を１つインクリメントしてこの変数を更新する。
【００４８】
以上のステップＳ３０４〜Ｓ３１０の処理を、変形画像を包含する矩形領域内の各画素位置について行うことで、各画素ブロックについて参照順番情報、参照回数情報を求めることができる。然るにステップＳ３１２ではアクセスシーケンス決定部１０４は、画素ブロック毎の格納アドレス及び参照回数情報のセットを参照順番順に並べたアクセスシーケンスリストを作成し、この作成したアクセスシーケンスリストを第一記憶部１０５に格納する。
【００４９】
上記の処理によってアクセスシーケンスリストが作成される過程について、図４を用いて説明する。先ずはリスト４００に示す如く、各画素ブロックには画素ブロックの格納時などで付けられる識別情報（ブロックＩＤ）４０３が割り当てられていると共に、参照順番情報４０４、参照回数情報４０５が割り当てられている。これらの参照順番情報情報４０４、参照回数情報４０５は何れも上記の通り最初は初期化されている。
【００５０】
そして上記の処理を行うことで、リスト４０１に示す如く、各画素ブロックに対してステップＳ３０８で設定された参照順番が確定する。リスト４０１では、画素ブロック毎の情報は、参照順番でソートされている。
【００５１】
そしてリスト４０１の先頭に登録されているブロックＩＤ、参照順番情報、参照回数情報情報のセットのアドレスを（ＢＡＳＥ＋（ＯＦＦＳＥＴ＊０））として決定する。本実施形態では、リストのベースアドレスをＢＡＳＥ、各セットの先頭アドレス間をＯＦＦＳＥＴとしたとき、リストの先頭からｏｒｄｅｒ番目に登録されているセットのアドレスはＢＡＳＥ＋（ＯＦＦＳＥＴ＊ｏｒｄｅｒ）で求める。更に、それぞれの画素ブロックの第一記憶部１０５における格納アドレスを特定する。これによりリスト４０２に示す如く、リスト４０１におけるそれぞれのセットのアドレス４０６、画素ブロックの格納アドレス４０７が作成される。そして最終的には、不要なデータであるブロックＩＤ４０３と参照順番情報４０４を削除して残ったリスト４０８を、図７に示すようなアクセスシーケンスリストとする。図７ではアドレス４０６はアクセスシーケンスリストに含めていないが、含めても良い。
【００５２】
次に、メモリリード部１０６が行う処理について、同処理のフローチャートを示す図５を用いて説明する。ステップＳ５０１ではメモリリード部１０６は、第一記憶部１０５へのアクセスアドレスに、アクセスシーケンスリストの先頭アドレスであるベースアドレス（ＢＡＳＥ）を設定する。そしてメモリリード部１０６は、アクセスシーケンスリストに登録されている全てのセットについてステップＳ５０２〜Ｓ５０８の間の各処理を行う。
【００５３】
ステップＳ５０３ではメモリリード部１０６は、現在設定されているアクセスアドレス（最初はステップＳ５０１で設定したアクセスアドレス）に対してアクセスし、そこに格納されているセット（格納アドレスと参照回数情報のセット）を読み出す。
【００５４】
ステップＳ５０４ではメモリリード部１０６は、ステップＳ５０３で読み出した格納アドレスに対してアクセスし、そこに格納されている画素ブロックを読み出す。そしてブロックデータ管理部１０７からの要求がない限りはステップＳ５０５で待機し、要求があれば処理はステップＳ５０５を介してステップＳ５０６に進む。
【００５５】
ステップＳ５０６ではメモリリード部１０６は、ステップＳ５０４で読み出した画素ブロックと、ステップＳ５０３で読み出したセット中の参照回数情報と、をブロックデータ管理部１０７に送出する。ステップＳ５０７ではメモリリード部１０６は、現在のアクセスアドレスにオフセットアドレス（ＯＦＦＳＥＴ）を加算してこのアクセスアドレスを更新する。
【００５６】
次に、ブロックデータ管理部１０７が行う処理について、同処理のフローチャートを示す図６を用いて説明する。ステップＳ６０２ではブロックデータ管理部１０７は、第二記憶部１０８に充分な空き容量があるか否かを判断する。この判断の結果、充分な空き容量があると判断した場合には処理はステップＳ６０３に進み、無いと判断した場合には処理はステップＳ６０４に進む。
【００５７】
ステップＳ６０３ではブロックデータ管理部１０７は、メモリリード部１０６から受けた画素ブロック及び参照回数情報をセットにして第二記憶部１０８に格納する。ステップＳ６０４ではブロックデータ管理部１０７は、ブロックデータ処理部１１０から画素ブロックの転送要求があるか否かを判断する。この判断の結果、転送要求があった場合には処理はステップＳ６０５に進み、転送要求がない場合には処理はステップＳ６０２に戻る。
【００５８】
ステップＳ６０５ではブロックデータ管理部１０７は、この要求された画素ブロックが第二記憶部１０８に格納されているか否かを判断する。この判断の結果、格納されている場合には処理はステップＳ６０６に進み、格納されていない場合には、処理はステップＳ６０２に戻る。
【００５９】
ステップＳ６０６ではブロックデータ管理部１０７は、この転送要求によって要求された画素ブロックを第二記憶部１０８から読み出してブロックデータ処理部１１０に供給する。
【００６０】
ステップＳ６０７ではブロックデータ管理部１０７は、この供給した画素ブロックとセットにして第二記憶部１０８に格納した参照回数情報が示す参照回数を１つ減じてこの参照回数情報を更新する。ステップＳ６０８では、この減じた参照回数が０であるか否かを判断する。この判断の結果、０であれば処理はステップＳ６０９に進み、０でない場合（０より大きい場合）には処理はステップＳ６０２に戻る。
【００６１】
ステップＳ６０９でブロックデータ管理部１０７は、参照回数０を示す参照回数情報及びこの参照回数情報とセットにして第二記憶部１０８に格納した画素ブロックを第二記憶部１０８から削除し、第二記憶部１０８におけるこれらの情報の記憶領域を開放する。これにより、新たな画素ブロックを取得可能な状態にする。
【００６２】
以降の構成によれば、ブロックデータ処理部１１０が要求する順序で、画素ブロックをブロックデータ管理部１０７によって供給することができる。また、参照回数を用いることで、ブロックデータ処理部１１０が必要とする間は対応する画素ブロックが保持されることが保証されるため、処理の破綻が起きない。
【００６３】
以上の説明により、本実施形態によれば、画像変形処理を行う場合に比較的大きな割合を占めるプリフェッチの機構を持たずに任意の画像変形処理を行うことができる。また、これにより、画像処理装置の回路規模（上記処理をソフトウェアで実現する場合にはソフトウェアの規模）を削減することができる。
【００６４】
以上の説明では、画素ブロックを参照して変形画像上の画素値を求める毎にこの画素ブロックに対して設定された参照回数をカウントダウンしていた。しかし、画素ブロックに対して新たにカウントアップ用の変数を設け、この画素ブロックが画素値生成用に用いられる毎にこの変数の値をカウントアップしても良い。この場合、このカウントアップ後の変数の値が、この画素ブロックについて設定された上限回数に達した場合には、この画素ブロックを第一記憶部１０５から削除することになる。
【００６５】
また、本実施形態では、画像を取り扱った処理を例にとって説明した。しかし、以上の説明は、画像を取り扱った例に限定するものではなく、画像以外のデータを取り扱う場合にも適用することができる。
【００６６】
［第２の実施形態］
第１の実施形態では、図１に示した各部は何れもハードウェアで構成されているものとして説明した。しかし、その一部若しくは全部をコンピュータプログラムとして構成しても良い。この場合、このコンピュータプログラムは、ＰＣ（パーソナルコンピュータ）等の装置にインストールされ、この装置が有するＣＰＵなどにより実行され、これによりこの装置は、第１の実施形態で説明した各処理を実行することができる。
【００６７】
また、図１に示した各部のうち１以上をそれぞれ別個の装置としても良い。この場合、それぞれの装置間では有線や無線によるネットワークを介して互いにデータ通信を行いながら、第１の実施形態で説明した各処理を進めていくことになる。
【００６８】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011253218.tif 000003
【図２】
2011253218.tif 000004
【図３】
2011253218.tif 000005
【図４】
2011253218.tif 000006
【図５】
2011253218.tif 000007
【図６】
2011253218.tif 000008
【図７】
2011253218.tif 000009