(57)【要約】【課題】  描画を高速に行うために描画結果のイメージや描画コマンドを保存する方法は、消費メモリが比較的多く、また、再利用可能な条件が限定される。【解決手段】  メモリに格納する計算パラメータを変換行列の特性に応じて変更する。再描画時、または、別のオブジェクトの描画時に、変換行列の特性を判断し、格納したパラメータの一部または全部を利用して計算を行う。【選択図】  図１
2011107378.tif 000002
【特許請求の範囲】
【請求項１】
変換行列を用いて描画オブジェクトに変形を施した上で描画を行う情報処理装置において、
前記変換行列とともにＸ座標またはＹ座標の各値に対応した計算値を格納する格納手段と、
前記変換行列の特性を判断する行列判断手段と、
描画オブジェクトの変形処理を行う際に、前記格納手段は、前記行列判断手段が変換行列が第一の形式であると判断した場合にはＸ座標ごとに第一の演算結果を格納し、変換行列が第二の形式であると判断した場合にはＹ座標ごとに第二の演算結果を格納することを特徴とする情報処理装置。
【請求項２】
請求項１において、
前記格納手段に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断手段と、
前記描画オブジェクトと同一のオブジェクトの再描画処理を行う際に、前記格納判断手段が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする情報処理装置。
【請求項３】
請求項１において、
前記格納手段に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断手段と、
前記描画オブジェクトとは異なる第二の描画オブジェクトの変形処理を行う際に、前記格納判断手段が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする情報処理装置。
【請求項４】
請求項１において、前記行列判断手段が、前記変換行列は第一の形式でも第二の形式でもないと判断した場合には、前記格納手段は計算値の格納を行わないことを特徴とする情報処理装置。
【請求項５】
変換行列を用いて描画オブジェクトに変形を施した上で描画を行う情報処理装置において、
前記変換行列とともにＸ座標またはＹ座標の各値に対応した計算値を格納する格納工程と、
前記変換行列の特性を判断する行列判断工程と、
描画オブジェクトの変形処理を行う際に、前記格納工程は、前記行列判断工程が変換行列が第一の形式であると判断した場合にはＸ座標ごとに第一の演算結果を格納し、変換行列が第二の形式であると判断した場合にはＹ座標ごとに第二の演算結果を格納することを特徴とする情報処理方法。
【請求項６】
請求項５において、
前記格納工程に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断工程と、
前記描画オブジェクトと同一のオブジェクトの再描画処理を行う際に、前記格納判断工程が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする情報処理方法。
【請求項７】
請求項５において、
前記格納工程に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断工程と、
前記描画オブジェクトとは異なる第二の描画オブジェクトの変形処理を行う際に、前記格納判断工程が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする情報処理方法。
【請求項８】
請求項５において、前記行列判断工程が、前記変換行列は第一の形式でも第二の形式でもないと判断した場合には、前記格納工程は計算値の格納を行わないことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックス描画を行う情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来、画像データや図形データ、文字データ等の描画オブジェクトを含むグラフィックスの描画処理においては、再描画時の処理高速化のために描画オブジェクトごとに描画結果のイメージを保存し利用する方法があった（たとえば特許文献１）。また、描画オブジェクトごとに描画コマンドを保存し再描画時に利用する方法があった（たとえば特許文献２）。これらの方法では、一度グラフィックスの描画処理を行った際に、描画結果のイメージや、描画処理の際に呼ばれる描画コマンドをメモリに格納していた。そして、再描画時にメモリに格納されたイメージデータや描画コマンドを使用することにより、描画速度の高速化を行っていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０５−２０４３５６号公報
【特許文献２】特開平０６−３０８９３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、描画結果のイメージをメモリに保存する方法では、一般にイメージデータのデータサイズは大きくなるため、相応のメモリが必要となるという課題があった。また、イメージデータや描画コマンドを保存する方法では、元となる描画オブジェクトに変更が発生した場合に再利用できなくなるという課題があった。例えば、写真などの画像データを拡大または縮小して表示するようなケースで描画結果のイメージを保存したとしても、元の画像データそのものが入れ替わった場合には保存したイメージを再利用することができなくなっていた。
【０００５】
また、描画結果のイメージや描画コマンドを保存する方法は、そのオブジェクトを再描画する際には使用可能であったが、他のオブジェクトの描画で使用することは通常はできない。
【０００６】
そこで本件は、特に行列変換を用いたグラフィックスにおいて、比較的少ないメモリ使用量で元データの変更にも対応可能な方法で、高速に再描画を行うことが可能な装置および方法を提供することを目的とする。また、メモリに保存したデータを他の描画オブジェクトでも容易に使用可能な装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の請求項１記載の情報処理装置は、変換行列を用いて描画オブジェクトに変形を施した上で描画を行う情報処理装置において、前記変換行列とともにＸ座標またはＹ座標の各値に対応した計算値を格納する格納手段と、前記変換行列の特性を判断する行列判断手段と、描画オブジェクトの変形処理を行う際に、前記格納手段は、前記行列判断手段が変換行列が第一の形式であると判断した場合にはＸ座標ごとに第一の演算結果を格納し、変換行列が第二の形式であると判断した場合にはＹ座標ごとに第二の演算結果を格納することを特徴とする。
【０００８】
本発明の請求項２記載の情報処理装置は、請求項１において、前記格納手段に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断手段と、前記描画オブジェクトと同一のオブジェクトの再描画処理を行う際に、前記格納判断手段が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする。
【０００９】
本発明の請求項３記載の情報処理装置は、請求項１において、前記格納手段に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断手段と、前記描画オブジェクトとは異なる第二の描画オブジェクトの変形処理を行う際に、前記格納判断手段が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする。
【００１０】
本発明の請求項４記載の情報処理装置は、請求項１において、前記行列判断手段が、前記変換行列は第一の形式でも第二の形式でもないと判断した場合には、前記格納手段は計算値の格納を行わないことを特徴とする。
【００１１】
本発明の請求項５記載の情報処理方法は、変換行列を用いて描画オブジェクトに変形を施した上で描画を行う情報処理装置において、前記変換行列とともにＸ座標またはＹ座標の各値に対応した計算値を格納する格納工程と、前記変換行列の特性を判断する行列判断工程と、描画オブジェクトの変形処理を行う際に、前記格納工程は、前記行列判断工程が変換行列が第一の形式であると判断した場合にはＸ座標ごとに第一の演算結果を格納し、変換行列が第二の形式であると判断した場合にはＹ座標ごとに第二の演算結果を格納することを特徴とする。
【００１２】
本発明の請求項６記載の情報処理方法は、請求項５において、前記格納工程に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断工程と、前記描画オブジェクトと同一のオブジェクトの再描画処理を行う際に、前記格納判断工程が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする。
【００１３】
本発明の請求項７記載の情報処理方法は、請求項５において、前記格納工程に利用可能なＸ座標またはＹ座標に対応する計算値が格納されているか否かを判断する格納判断工程と、前記描画オブジェクトとは異なる第二の描画オブジェクトの変形処理を行う際に、前記格納判断工程が計算値が格納されていると判断した場合には、格納された値を用いて座標計算を行うことを特徴とする。
【００１４】
本発明の請求項８記載の情報処理方法は、請求項５において、前記行列判断工程が、前記変換行列は第一の形式でも第二の形式でもないと判断した場合には、前記格納工程は計算値の格納を行わないことを特徴とする。
【発明の効果】
【００１５】
本発明により、行列変換を用いたグラフィックスにおいて、比較的少ないメモリ使用量で描画処理を高速に行うことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態による情報処理装置の構成を示すブロック図である。
【図２】本発明の実施形態による情報処理装置の座標変換の様子を示した例である。
【図３】図２に示した座標変換が施された場合の、座標変換後の座標値（ｘ，ｙ）と座標変換前の座標値（Ｘ，Ｙ）の関係を示した行列および式である。
【図４】図３に示した変換行列の成分が特定の値を持つ場合の、ＸおよびＹの値を示した式である。
【図５】本発明の実施形態による情報処理装置のコンテンツの描画の結果を示した図である。
【図６】本発明の実施形態による情報処理装置の処理の流れを示したフローチャートである。
【図７】本発明の実施形態による情報処理装置の処理の流れを示したフローチャートである。
【図８】本発明の実施形態による情報処理装置の描画した結果の一例を示した図である。
【図９】本発明の実施形態による情報処理装置の処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００１７】
（実施例１）
以下、図面を参照して本発明に係る情報処理装置の第一の実施形態を説明する。
【００１８】
本実施形態の情報処理装置の構成について、図１のブロック図を参照して説明する。
【００１９】
図１において、ＣＰＵ１０１はシステム制御部であり装置全体を制御する。ＲＯＭ１０２は、ＣＰＵ１０１の制御プログラムや各種固定データを格納する読取専用のメモリである。ＲＡＭ１０３は、ＳＲＡＭ、ＤＲＡＭ等で構成された書換え可能なメモリであり、プログラム制御変数等を格納するためのものである。各種設定パラメータ、各種ワーク用バッファ等もＲＡＭ１０３に格納されるものである。表示部１０４は、ＬＣＤ等を用いてオペレータに表示通知するためのものである。操作部１０５は、キーボードやポインティングデバイス等で構成され、オペレータが各種入力操作を行うためのものである。１０６は１０１〜１０５の各ユニットを通信可能に接続するシステムバスである。
【００２０】
図２は、本実施例で用いる座標変換の様子を示した例である。同図において、２０１および２０３は描画領域を示した枠線である。２０２は座標変換前の画像の配置を示した矩形である。すなわち、仮に座標変換を行わなかった場合の描画結果を示すものである。２０４は行列による座標変換を行った後の画像の配置を示した矩形である。２０２および２０４では、便宜上枠線のみの矩形で表現しているが、これらは画像を意味する。座標変換後の座標値（ｘ，ｙ）は、座標変換前の座標値（Ｘ，Ｙ）に対応する。すなわち、座標（ｘ，ｙ）の描画処理を行う際には、座標変換前の座標（Ｘ，Ｙ）の値を求め、その座標の色を座標変換後の座標（ｘ，ｙ）の色とする。特に画像データの場合には座標（Ｘ，Ｙ）の色は一般に不連続であるから、とり得るすべての範囲の（ｘ，ｙ）について（Ｘ，Ｙ）の色の取得を行わなければならない。本実施例では、座標変換前の座標（Ｘ，Ｙ）の色を座標変換後の座標（ｘ，ｙ）の色としているが、座標（Ｘ，Ｙ）の周辺の複数の点から座標（ｘ，ｙ）の色を決定するようにしても良い。本実施例においては、描画するコンテンツは、ＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）などの形式で記述される。ＲＯＭ１０２に格納されたプログラムがそのコンテンツを解析し、描画処理を行った上で、表示部１０４に描画結果を表示する。座標変換は行列によって表現され、その行列はコンテンツを解析することによって得られる。
【００２１】
図３は、図２に示したような座標変換が施された場合の、座標変換後の座標値（ｘ，ｙ）と座標変換前の座標値（Ｘ，Ｙ）の関係を示した行列および式である。図３（ａ）は変換行列Ｔを示したものである。行列Ｔは３×３の行列である。図２に示したように矩形を別の矩形に変換する場合には、３×３の行列がしばしば用いられる。図３（ａ）において、ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ、ｉは行列の成分である。本実施例では、これらの行列の成分は定数とする。ただし、アニメーション表示を行うようなコンテンツでは、これら行列の成分を変数とし、その値を変化させるようにしても良い。
【００２２】
図３（ｂ）は、座標変換後の座標値（ｘ，ｙ）と座標変換前の座標値（Ｘ，Ｙ）の関係を示した行列式である。同図に示したとおり、変換行列Ｔと（ｘ，ｙ，１）の積を（ｘ’、ｙ’、ｐ）とするとＸ＝ｘ’／ｐ、Ｙ＝ｙ’／ｐとなる。
【００２３】
図３（ｃ）は図３（ｂ）に示した行列式を展開し、（Ｘ，Ｙ）と（ｘ，ｙ）の関係を抽出したものである。同図に示したとおり、ＸおよびＹの値は、行列Ｔの成分とｘおよびｙの値から求めることができる。なお、同図において、例えばａｘはａとｘの積を意味する。
図４は、図３に示した変換行列の成分が特定の値を持つ場合の、ＸおよびＹの値を示した式である。図３（ｃ）の式は、図４（ａ）に示した条件を満たす場合、図４（ｂ）のように表すことができる。すなわち、ｂ＝０、ｃ＝０のとき、Ａ＝１／（ｆｙ＋ｉ）、Ｂ＝ｄｙ＋ｇ、Ｃ＝ｅｙ＋ｈとすると、Ｘ＝（ａｘ＋Ｂ）×Ａ、Ｙ＝Ａ×Ｃとなる。
【００２４】
同様に図３（ｄ）の式は、図４（ｃ）に示した条件を満たす場合、図４（ｄ）のように表すことができる。すなわち、ｄ＝０、ｆ＝０のとき、Ｄ＝１／（ｃｘ＋ｉ）、Ｅ＝ｂｘ＋ｈ、Ｆ＝ａｘ＋ｇとすると、Ｘ＝Ｄ×Ｆ、Ｙ＝（ｅｙ＋Ｅ）×Ｄとなる。
【００２５】
図５（ａ）は、本実施例におけるコンテンツの描画の結果を示した図である。図５（ｂ）は、図５（ａ）に示したコンテンツに仮に座標変換を施さなかった場合の描画結果を示した図である。図５においては、５０１〜５０６および５０７〜５１２は便宜上矩形で表現しているが、実際にはこれらは画像である。図５に示したとおり、本実施例で描画するコンテンツは６個の画像からなる。図５において、５０１〜５０６の画像は５０７〜５１２にそれぞれ対応する。すなわち、画像５０１に仮に座標変換を施さなかった場合は、画像５０７の位置および形状で描画されることになる。
【００２６】
図６および図７は、本実施例における処理の流れを示したフローチャートである。図６および図７で示した処理は、図５（ａ）に示したコンテンツ内の一つの画像を描画する際の処理である。
【００２７】
例えば画像５０１を描画する際には、図６に示したとおり、まず、その画像データに与えられた変換行列を取得する（Ｓ６０１）。すなわち、コンテンツの解析を行って画像５０１の変換座標を取得する。ここで取得した変換行列は、図３（ａ）の形式である。
【００２８】
次に、Ｓ６０１で取得した変換行列の成分ｂおよび成分ｃがともに０であるか否かを判断する（Ｓ６０２）。Ｓ６０２において、変換行列の成分ｂおよび成分ｃの少なくとも一つが０ではないと判断されれば、変換行列の成分ｄおよび成分ｆがともに０であるか否かを判断する（Ｓ６０３）。このように変換行列の特性に応じて、以後の処理を切り替えている。
【００２９】
Ｓ６０３において、変換行列の成分ｄおよび成分ｆの少なくとも一つが０ではないと判断された場合には、キャッシュ用メモリにはデータの格納を行わずに描画処理を行う。これは一般的な処理であるため、その具体的な処理内容は図示していない。
【００３０】
Ｓ６０２において変換行列の成分ｂおよび成分ｃがともに０であると判断されれば、描画処理で利用可能なデータがキャッシュ用メモリに存在するか否かを判断する（Ｓ６０４）。キャッシュ用メモリにデータを格納するのは、後述するＳ６０９などで行うものであるため、１回目の描画処理ではキャッシュ用メモリには利用可能なデータは存在しない。２回目以降の描画処理、すなわち再描画を行う場合などにおいては、キャッシュ用メモリに格納されている変換行列の値やＹ座標の範囲に基づいて、利用可能か否かを判断する。具体的には、変換行列が同一であり、かつ、Ｙ座標の範囲が同一であれば利用可能と判断する。Ｙ座標の範囲の一部のみが重なっている場合に、その範囲の値のみを利用するようにしても良い。
【００３１】
Ｓ６０４において、利用可能なデータがキャッシュ用メモリに存在しないと判断されれば、キャッシュ用メモリ領域を確保し、基本情報を格納する（Ｓ６０５）。ここで基本情報とは、変換行列の各成分の値と、キャッシュするデータに対応するＹ座標値の最小値および最大値である。
【００３２】
続いて、変数ｙにｙ座標の最小値をセットする（ｓ６０６）。ｙ座標の最小値は、図６および図７のフローチャートにおいては、ｙｍｉｎと表記されている。同様に、ｙ座標の最大値はｙｍａｘ、ｘ座標の最小値はｘｍｉｎ、ｘ座標の最大値はｘｍａｘと、それぞれ表記されている。ｘおよびｙは、図５（ａ）に示した描画結果の座標系におけるｘ座標およびｙ座標の値に相当する。
【００３３】
Ｓ６０６の処理に続いて、ｙの値に対応するパラメータを計算しキャッシュ用メモリに格納する（Ｓ６０７）。ここでパラメータとは、後述するＳ６０９で使用可能な計算値であり、図４（ａ）に示したＡおよびＢ、Ｃの３つの値である。図４（ａ）に示したとおり、Ａ＝１／（ｆｙ＋ｉ）、Ｂ＝ｄｙ＋ｇ、Ｃ＝ｅｙ＋ｈであるから、ｙの値が与えられれば、Ａ、Ｂ、Ｃのいずれも値が決定される。なお、パラメータＡは除算であり、その結果が極小になった場合には計算誤差が大きくなる恐れがある。そのため、パラメータＡとして定数６５５３６を掛けた値、すなわち６５５３６／（ｆｙ＋ｉ）を格納し、以後パラメータＡの値を使用する際には定数６５５３６で割る処理を加えても良い。
【００３４】
続いて、変数ｘにｘ座標の最小値をセットし（Ｓ６０８）、メモリに格納されたパラメータＡ、Ｂ、Ｃおよびｘを用いてＸおよびＹを算出する（Ｓ６０９）。パラメータＡ、Ｂ、Ｃおよびｘの値からＸおよびＹを算出可能であることは、図４（ｂ）に示したとおりである。Ｓ６０９で求めたＸおよびＹの値から、座標変換前の座標系における（Ｘ，Ｙ）の色を取得し、その色を座標（ｘ，ｙ）の色として描画する（Ｓ６１０）。なお、Ｓ６０９で算出した座標（Ｘ，Ｙ）が、座標変換前の画像の領域外であれば、描画すべき色が存在しないことになるためＳ６１０の描画処理は行わない（不図示）。
【００３５】
Ｓ６１０に続いて、ｘに１を加え（Ｓ６１１）、ｘがｘの最大値を超えているか否かを判断する（Ｓ６１２）。ここでｘの最大値を超えていないと判断されれば、再びＳ６０９の処理を行い、Ｓ６１２までの処理を繰り返す。Ｓ６１２において、ｘの最大値を超えていると判断されれば、ｙに１を加え（Ｓ６１３）、ｙがｙの最大値を超えているか否かを判断する（Ｓ６１４）。ここでｙの最大値を超えていないと判断されれば、再びＳ６０７の処理を行い、Ｓ６１４までの処理を繰り返す。Ｓ６１４において、ｙの最大値を超えていると判断されれば、画像の描画領域の範囲をすべて描画したことになるため、処理を終了する。
【００３６】
Ｓ６０４において、利用可能なデータがキャッシュ用メモリにあると判断されれば、Ｓ６０５やＳ６０７の処理は行う必要がなく、すでにメモリにあるデータを利用して（ｘ，ｙ）の描画を行う。
【００３７】
Ｓ６０４で、利用可能なデータがメモリにあると判断されれば、ｙにｙ座標の最小値をセットし（Ｓ６１５）、ｘにｘ座標の最小値をセットする（Ｓ６１６）。そして、メモリに格納済みのパラメータＡ、Ｂ、ＣおよびｘからＸおよびＹの値を算出し（Ｓ６１７）、変換前の座標（Ｘ，Ｙ）の色に基づいて（ｘ，ｙ）の色を描画する（Ｓ６１８）。以後、Ｓ６１９〜Ｓ６２２の処理は、Ｓ６１１〜Ｓ６１４の処理と同様であるので、説明を省略する。ただし、Ｓ６２２でｙがｙ座標の最大値を超えていないと判断された場合のジャンプ先は、ｘ座標の初期化処理（Ｓ６１６）である。
【００３８】
図７は、図６のＳ６０３で変換行列の成分ｄおよびｆがともに０であると判断された場合の処理を示したフローチャートである。
【００３９】
同図に示したとおり、まず、描画処理で利用可能なデータがキャッシュ用メモリにあるか否かを判断する（Ｓ７０１）。キャッシュ用メモリにデータを格納するのは、後述するＳ７０４などで行うものであるため、１回目の描画処理ではキャッシュ用メモリには利用可能なデータは存在しない。２回目以降の描画処理、すなわち再描画を行う場合などにおいては、キャッシュ用メモリに格納されている変換行列の値やＸ座標の範囲に基づいて、利用可能か否かを判断する。具体的には、変換行列が同一であり、かつ、Ｘ座標の範囲が同一であれば利用可能と判断する。Ｘ座標の範囲の一部のみが重なっている場合に、その範囲の値のみを利用するようにしても良い。
【００４０】
Ｓ７０１において、利用可能なデータがキャッシュ用メモリに存在しないと判断されれば、キャッシュ用メモリ領域を確保し、基本情報を格納する（Ｓ７０２）。ここで基本情報とは、変換行列の各成分の値と、キャッシュするデータに対応するＸ座標値の最小値および最大値である。図６のＳ６０７においては、Ｙ座標の最小値および最大値をメモリに格納したが、Ｓ７０２においてはＸ座標の最小値および最大値を格納する。以後の処理では、図６に示したループ処理と比較すると、ｘとｙを入替えたような処理になっている。
【００４１】
続いて、変数ｘにｘ座標の最小値をセットする（ｓ７０３）。そして、ｘの値に対応するパラメータを計算しキャッシュ用メモリに格納する（Ｓ７０４）。ここでパラメータとは、後述するＳ７０６で使用可能な計算値であり、図４（ｃ）に示したＤおよびＥ、Ｆの３つの値である。図４（ｃ）に示したとおり、Ｄ＝１／（ｃｘ＋ｉ）、Ｅ＝ｂｘ＋ｈ、Ｆ＝ａｘ＋ｇであるから、ｘの値が与えられれば、Ｄ、Ｅ、Ｆのいずれも値が決定される。
【００４２】
続いて、変数ｙにｙ座標の最小値をセットし（Ｓ７０５）、メモリに格納されたパラメータＤ、Ｅ、Ｆおよびｙを用いてＸおよびＹを算出する（Ｓ７０６）。パラメータＤ、Ｅ、Ｆおよびｙの値からＸおよびＹを算出可能であることは、図４（ｄ）に示したとおりである。Ｓ７０６で求めたＸおよびＹの値から、座標変換前の座標系における（Ｘ，Ｙ）の色を取得し、その色を座標（ｘ，ｙ）の色として描画する（Ｓ７０７）。なお、Ｓ７０６で算出した座標（Ｘ，Ｙ）が、座標変換前の画像の領域外であれば、描画すべき色が存在しないことになるためＳ７０７の描画処理は行わない（不図示）。
【００４３】
Ｓ７０７に続いて、ｙに１を加え（Ｓ７０８）、ｙがｘｙの最大値を超えているか否かを判断する（Ｓ７０９）。ここでｙの最大値を超えていないと判断されれば、再びＳ７０６の処理を行い、Ｓ７０９までの処理を繰り返す。Ｓ７０９において、ｙの最大値を超えていると判断されれば、ｘに１を加え（Ｓ７１０）、ｘがｘの最大値を超えているか否かを判断する（Ｓ７１１）。ここでｘの最大値を超えていないと判断されれば、再びＳ７０４の処理を行い、Ｓ７１１までの処理を繰り返す。Ｓ７１１において、ｘの最大値を超えていると判断されれば、画像の描画領域の範囲をすべて描画したことになるため、処理を終了する。
【００４４】
Ｓ７０１において、利用可能なデータがキャッシュ用メモリにあると判断されれば、Ｓ７０２やＳ７０４の処理は行う必要がなく、すでにメモリにあるデータを利用して（ｘ，ｙ）の描画を行う。
【００４５】
Ｓ７０１で、利用可能なデータがメモリにあると判断されれば、ｘにｘ座標の最小値をセットし（Ｓ７１２）、ｙにｙ座標の最小値をセットする（Ｓ７１３）。そして、メモリに格納済みのパラメータＤ、Ｅ、ＦおよびｙからＸおよびＹの値を算出し（Ｓ７１４）、変換前の座標（Ｘ，Ｙ）の色に基づいて（ｘ，ｙ）の色を描画する（Ｓ７１５）。以後、Ｓ７１６〜Ｓ７１９の処理は、Ｓ７０８〜Ｓ７１１の処理と同様であるので、説明を省略する。ただし、Ｓ７１９でｘがｘ座標の最大値を超えていないと判断された場合のジャンプ先は、ｙ座標の初期化処理（Ｓ７１３）である。
【００４６】
図８は、本実施例で描画した結果の一例を示した図である。
【００４７】
変換行列の成分ｂおよび成分ｃがともに０である場合には、図８（ａ）に示したように、Ｘ軸と平行な軸を中心に空間的に回転させたような描画結果となる。変換行列の成分ｄおよび成分ｆがともに０である場合には、図８（ｂ）に示したように、Ｙ軸と平行な軸を中心に空間的に回転させたような描画結果となる。
【００４８】
以上、説明したとおり、本発明を用いれば、再描画時の計算処理が減少し、再描画の処理を高速に行うことができる。また、変換行列の特性に応じてメモリに格納するデータの種類を変更しているため、使用するメモリは必要最小限にとどめることができる。本発明においては、変換行列に基づいた値をメモリに格納しているため、仮に画像データが入れ替わった場合であっても、比較的少ないメモリ使用量で描画処理を高速に行うことが可能となる。
【００４９】
（実施例２）
以下、図面を参照して本発明に係る情報処理装置の第二の実施形態を説明する。
【００５０】
本実施形態の情報処理装置の構成については、図１に示した第一の実施形態の構成と同様である。また、図２から図８についても第一の実施形態と同様であるため、説明を省略する。
【００５１】
図９は、本実施形態における処理の流れを示したフローチャートである。
【００５２】
第二の実施形態においては、第一の実施形態と同様、図６および図７に示したフローチャートの処理を行う。第一の実施形態では、図６のＳ６０４において、変換行列およびＹ座標の範囲が同一であれば利用可能と判断していた。第二の実施形態では、この部分の処理の内容が第一の実施形態とは異なる。同様に、Ｓ７０１の処理も第一の実施形態とは異なる。図９は、図６のＳ６０４内の処理を具体的に示したものである。
【００５３】
図９に示したとおり、まず、パラメータＡが利用可能か否かを判断する（Ｓ９０１）。パラメータＡは１／（ｆｙ＋ｉ）であるから、変換行列のｆおよびｉについて、キャッシュ用メモリに格納された行列と一致するか否かを判断する。ここで、パラメータＡが利用可能と判断されれば、その旨を意味するフラグを立てる（Ｓ９０２）。変換行列のｆまたはｉがキャッシュ用メモリに格納された行列の値と異なることが検出されれば、パラメータＡが利用可能でないと判断され、フラグは立てない。
【００５４】
次に、パラメータＢが利用可能か否かを判断する（Ｓ９０３）。パラメータＢは、ｄｙ＋ｇであるから、変換行列のｄおよびｇについて、キャッシュ用メモリに格納された行列と一致するか否かを判断する。ここで、パラメータＢが利用可能と判断されれば、その旨を意味するフラグを立てる（Ｓ９０４）。変換行列のｄまたはｇがキャッシュ用メモリに格納された行列の値と異なることが検出されれば、パラメータＢが利用可能でないと判断され、フラグは立てない。
【００５５】
続いて、パラメータＣが利用可能か否かを判断する（Ｓ９０５）。パラメータＣは、ｅｙ＋ｈであるから、変換行列のｅおよびｈについて、キャッシュ用メモリに格納された行列と一致するか否かを判断する。ここで、パラメータＣが利用可能と判断されれば、その旨を意味するフラグを立てる（Ｓ９０６）。変換行列のｅまたはｈがキャッシュ用メモリに格納された行列の値と異なることが検出されれば、パラメータＣが利用可能でないと判断され、フラグは立てない。
【００５６】
そして、Ｓ９０７において、パラメータＡ〜Ｃのフラグの少なくとも一つが立っているか否かを判断する。少なくとも一つのフラグが立っていれば利用可能なデータが存在すると判断し（Ｓ９０８）、一つもフラグが立っていなければ利用可能なデータは存在しないと判断する（Ｓ９０９）。
【００５７】
この後、Ｓ６１７において、フラグを参照して利用可能なパラメータを判断した上で、そのパラメータに基づいてＸ、Ｙを算出する。このとき、利用可能を意味するフラグが立っていないパラメータの値については、計算により取得する（不図示）。
【００５８】
図示していないが、Ｓ７０１においても、パラメータＤ、Ｅ、Ｆについて、図９に示したフローチャートと同様の処理を行い、利用可能なデータがメモリに存在するか否かを判断する。また、Ｓ７１４においてもＳ６１７と同様の処理を行う。
【００５９】
以上説明したような処理を行うことによって、変換行列のすべてのパラメータが一致している場合でなくてもデータを再利用することができ、高速に描画を行うことが可能となる。例えば、図５（ａ）の画像５０１を描画した後で画像５０２を描画するようなケースでは、変換行列の一部が一致する場合が多く、計算パラメータを再利用できる。
【００６０】
これらの実施形態では、表示部を有する情報処理装置を例に説明したが、本発明は、印刷装置、カメラ、複写機、スキャナ、テレビ等、表示部を有するあらゆる装置に適用可能である。また、これらの実施形態では、コンテンツに含まれる画像の変換を例に説明したが、本発明は、画像に限らず、動画や図形などのグラフィックスにも適用可能である。
【００６１】
本発明はソフトウエアにより実現しても良い。すなわち、ソフトウエアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のＣＰＵが記録媒体に格納されたプログラムコードを読み出し実行することで実現しても良い。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、メモリカードなどを用いることができる。
【００６３】
また、本発明は、プログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステムなどが実際の処理の一部または全部を行い、その処理によって機能が実現される場合にも適用され得る。
【符号の説明】
【００６４】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  表示部
１０５  操作部
１０６  システムバス
【図１】
2011107378.tif 000003
【図２】
2011107378.tif 000004
【図３】
2011107378.tif 000005
【図４】
2011107378.tif 000006
【図５】
2011107378.tif 000007
【図６】
2011107378.tif 000008
【図７】
2011107378.tif 000009
【図８】
2011107378.tif 000010
【図９】
2011107378.tif 000011