(57)【要約】  目標表示範囲を設定し、当該設定された目標表示範囲の情報を用いて、画像データに基づくラスタライズ処理を実行して、整数化された情報で表されるサイズのビットマップ画像を生成し、当該生成されたビットマップ画像を、設定された目標表示範囲に描画する画像処理装置である。
2021006160.tif 000002
【特許請求の範囲】
【請求項１】
ビットマップ画像を表す画像データと、所定の方法で定められた初期表示範囲とを受け入れる手段と、
前記初期表示範囲とは異なる目標表示範囲を設定する設定手段と、
前記設定された目標表示範囲の情報を用いて、前記画像データに基づくラスタライズ処理を実行して、整数化された情報で表されるサイズのビットマップ画像を生成するラスタライズ処理手段と、
前記ラスタライズ処理手段が生成したビットマップ画像を、前記設定手段が設定した目標表示範囲に描画する描画手段と、
を含む画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記設定手段は、前記初期表示範囲とは異なるサイズであって、整数値によりサイズが規定される目標表示範囲を設定し、
前記ラスタライズ処理手段は、前記初期表示範囲と、前記設定手段が設定した目標表示範囲との情報をそれぞれ用いて、前記初期表示範囲に対応する初期ビットマップ画像と、前記目標表示範囲に対応する目標ビットマップ画像とを、前記画像データに基づくラスタライズ処理を実行してそれぞれ生成し、
前記描画手段は、前記初期表示範囲から前記目標表示範囲まで逐次的に表示範囲を変更しつつ、前記ラスタライズ処理手段が生成した初期ビットマップ画像または目標ビットマップ画像を、前記表示範囲に描画する画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記設定手段は、前記初期表示範囲とは異なる位置であって、整数値によって規定される位置に、目標表示範囲を設定し、
前記ラスタライズ処理手段は、前記初期表示範囲と、前記設定手段が設定した目標表示範囲との情報をそれぞれ用いて、前記初期表示範囲に対応する初期ビットマップ画像と、前記目標表示範囲に対応する目標ビットマップ画像とを、前記画像データに基づくラスタライズ処理を実行してそれぞれ生成し、
前記描画手段は、前記初期表示範囲から前記目標表示範囲まで逐次的に表示範囲を変更しつつ、前記ラスタライズ処理手段が生成した初期ビットマップ画像または目標ビットマップ画像を、前記表示範囲に描画する画像処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の画像処理装置であって、
前記設定手段は、目標表示範囲を規定する規定情報を受け入れて、当該受け入れた規定情報に基づいて、整数値によって位置を規定した目標表示範囲を設定し、
前記描画手段は、前記規定情報が表す位置と、前記設定手段が設定した、整数値のサイズまたは位置との差を表す誤差の情報を用いて、前記目標表示範囲に対応する目標ビットマップ画像の表示範囲を定める画像処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の画像処理装置であって、
前記描画手段は、前記初期表示範囲から前記目標表示範囲まで逐次的に表示範囲を変更している間、前記ラスタライズ処理手段が生成した初期ビットマップ画像と目標ビットマップ画像とを合成したビットマップ画像を、前記表示範囲に描画する画像処理装置。
【請求項６】
受入手段によりビットマップ画像を表す画像データと、所定の方法で定められた初期表示範囲とを受け入れ、
設定手段により前記初期表示範囲とは異なる目標表示範囲を設定し、
ラスタライズ処理手段により、前記設定された目標表示範囲の情報を用いて、前記画像データに基づくラスタライズ処理を実行して、整数化された情報で表されるサイズのビットマップ画像を生成し、
描画手段により前記ラスタライズ処理手段が生成したビットマップ画像を、前記設定手段が設定した目標表示範囲に描画する画像処理方法。
【請求項７】
コンピュータを、
ビットマップ画像を表す画像データと、所定の方法で定められた初期表示範囲とを受け入れる手段と、
前記初期表示範囲とは異なる目標表示範囲を設定する設定手段と、
前記設定された目標表示範囲の情報を用いて、前記画像データに基づくラスタライズ処理を実行して、整数化された情報で表されるサイズのビットマップ画像を生成するラスタライズ処理手段と、
前記ラスタライズ処理手段が生成したビットマップ画像を、前記設定手段が設定した目標表示範囲に描画する描画手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータや家庭用ゲーム機、携帯電話機、その他種々の電子機器において、画像データの表示が行われている。ここで表示しようとする画像データとして、例えばベクタデータ等、ラスタライズと呼ばれる処理によってビットマップ画像に変換されてから表示されることを前提としたデータも用いられている。【０００３】
ベクタデータは、描画範囲が拡大・縮小される場合も、それぞれの描画範囲に合わせてラスタライズを行うことで、一つのビットマップ画像を拡大・縮小する場合に比べて品質の劣化の少ない画像データとすることができる。しかしベクタデータのラスタライズは負荷の高い処理であるため、描画範囲のサイズや位置を変化させつつアニメーション描画する際に、変化中の描画範囲に合わせてラスタライズ処理を一々行うことは現実的でない。【０００４】
そこで従来から、ベクタデータについては、当初予定されている表示範囲に合わせたラスタライズ処理を行ってビットマップ画像を得ておき、当該ビットマップ画像を実際の描画範囲のサイズや位置に拡大・縮小、あるいは移動して描画することが行われている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来例の方法では、拡大・縮小の程度等によっては、画像データがぼやけるなど劣化してしまっていた。【０００６】
本発明は上記実情に鑑みて為されたもので、アニメーション描画する際などにおいて、ラスタライズによる処理負荷の上昇を抑制しつつ、描画される画像データの劣化を低減できる画像処理装置、画像処理方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００７】
上記従来例の問題点を解決するための本発明の一態様は、ビットマップ画像を表す画像データと、所定の方法で定められた初期表示範囲とを受け入れる手段と、前記初期表示範囲とは異なる目標表示範囲を設定する設定手段と、前記設定された目標表示範囲の情報を用いて、前記画像データに基づくラスタライズ処理を実行して、整数化された情報で表されるサイズのビットマップ画像を生成するラスタライズ処理手段と、前記ラスタライズ処理手段が生成したビットマップ画像を、前記設定手段が設定した目標表示範囲に描画する描画手段と、を含むこととしたものである。
【発明の効果】
【０００８】
本発明によると、アニメーション描画する際などにおいて、ラスタライズによる処理負荷の上昇を抑制しつつ、描画される画像データの劣化を低減できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る画像処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る画像処理装置の例を表す機能ブロック図である。
【図３】本発明の実施の形態に係る画像処理装置による描画処理の例を表す説明図である。
【図４】本発明の実施の形態に係る画像処理装置が行うアニメーションの描画処理の概要例を表す説明図である。
【発明を実施するための形態】
【００１０】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置１は、例えばパーソナルコンピュータや家庭用ゲーム機、あるいはスマートフォンやタブレット等の携帯端末であって、図１に例示するように、制御部１１と、記憶部１２と、操作部１３と、表示部１４とを含んで構成されている。
【００１１】
制御部１１は、ＣＰＵやＧＰＵ（Graphics Processing Unit）などのプログラム制御デバイスを含んで構成される。この制御部１１は、記憶部１２に格納されたプログラムに従って動作し、例えばゲーム等のアプリケーションの処理を実行し、また、各種アプリケーションの処理等の過程で、画像データを描画し、表示する処理を実行する。
【００１２】
本実施の形態では、この制御部１１は、ビットマップ画像を表す画像データと、所定の方法で定められた初期表示範囲の設定とを受け入れ、上記受け入れた画像データが表すビットマップ画像を、上記初期表示範囲とは異なる目標表示範囲に描画して、当該描画の結果を表示する処理を実行する。この処理は例えば初期表示範囲から目標表示範囲に描画範囲を移動させるアニメーション描画の処理などである。
【００１３】
本実施の形態の制御部１１は、初期表示範囲とは異なる目標表示範囲を設定する。制御部１１は、当該設定した目標表示範囲の情報を用いて、処理の対象となった画像データに基づくラスタライズ処理を実行する。制御部１１は、このラスタライズ処理により、整数化された情報で表されるサイズのビットマップ画像を生成する。またこの制御部１１は、当該生成されたビットマップ画像を、設定された目標表示範囲に描画する処理を実行する。この制御部１１の動作については、後に詳しく述べる。
【００１４】
記憶部１２は、ＲＡＭ等のメモリデバイスを少なくとも一つ含む。この記憶部１２は、制御部１１が実行するプログラム、及び当該プログラムによって処理されるデータを格納する。記憶部１２はまた、制御部１１のワークメモリとしても動作する。ここで、記憶部１２に格納されたプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供されて、この記憶部１２に複写されたものであってもよい。
【００１５】
操作部１３は、キーボードやマウス、あるいはゲームコントローラ等から入力されるユーザの操作を表す情報を受け入れる。そして操作部１３は、当該情報を制御部１１に出力する。表示部１４は、制御部１１から入力される指示に従い、画像をディスプレイや、家庭用テレビジョン等に対して出力して表示させる。また、本実施の形態の画像処理装置１は、ネットワーク等を介して他の情報処理装置等と通信を行う通信手段を備えてもよい。
【００１６】
本実施の形態の画像処理装置１の制御部１１は、記憶部１２に格納されたプログラムを実行することで、機能的に、図２に例示するような構成を実現する。すなわちこの制御部１１は、機能的には、設定処理部１１０と、ラスタライズ処理部１１１と、描画処理部１１２とを含んで構成される。ここで制御部１１がＣＰＵと、ＧＰＵとを備える場合、設定処理部１１０とラスタライズ処理部１１１とをＣＰＵにより実現し、描画処理部１１２をＧＰＵによって実現してもよい。
【００１７】
また本実施の形態のここでの例では、記憶部１２には描画する画面の情報を保持するためのフレームバッファ２１０の記憶領域が設定されているものとする。また、画像処理装置１は、アプリケーションやオペレーティングシステム等の処理として、ラスタライズの処理の対象となるベクタデータの指示と、その表示範囲の指示とが得られるものとする。ここでは、このベクタデータが、ビットマップ画像を表す画像データに相当する。
【００１８】
以下の例では、画像処理装置１は、アプリケーションやオペレーティングシステム等の処理により、表示範囲の指示を行う。具体的な例として、以下の説明では、画像処理装置１は、図３（ａ）に例示するように、フレームバッファ２１０上で第１の表示範囲（初期表示範囲と呼ぶ）を指示した後、図３（ｂ）または（ｃ）に例示するように、フレームバッファ２１０の領域を拡大・縮小（図３では６０％縮小）した、第２の表示範囲（目標表示範囲と呼ぶ）を指示するものとする。
【００１９】
さらに、画像処理装置１は、アプリケーションやオペレーティングシステム等の処理として、上記初期表示範囲から上記目標表示範囲まで表示範囲を時間経過とともに徐々に変化させる（アニメーション描画させる）ために、時間経過に対応する変化量を表す関数ｆ（ｔ）を併せて指示してもよい。この関数ｆ（ｔ）は例えば図４に示される。図４は、位置の変化量を表す例であり、初期表示範囲に対応する値Ｐ0から、目標表示範囲に対応するＰ1までの時刻０からＴまでのΔｔ（Δｔ＝Ｔ／Ｎ（Ｎは予め定めた自然数））ごとの変化量を表す。この図４の例では、時刻ｔが「０」に近い時間では比較的急速に変化し、時刻ｔがＴに近づくほど変化量が小さくなるように指定されている。
【００２０】
設定処理部１１０は、ラスタライズして得たビットマップ画像の表示範囲を設定する。具体的にこの設定処理部１１０は、アプリケーションやオペレーティングシステム等から入力される指示に従い、フレームバッファ２１０上の所定の領域を表示範囲として設定する。
【００２１】
具体的に図３に例示するように、初期表示範囲が例えば左上隅の位置座標が（８，８）で、高さ１６ピクセル（ｐｘ）、幅２４ｐｘのサイズの矩形の領域であるとする場合、入力される指示は、これをそのまま６０％縮小したものとなり、図３（ｂ）に示すように、左上隅の位置座標が（４．８，４．８）、高さ９．６ｐｘ、幅１４．４ｐｘの領域を指示するものとなる。
【００２２】
しかしながらこのような小数点以下を含む値（非整数値）で位置やサイズが規定された領域に描画する場合、いわゆるサブピクセルレンダリング等の処理を行うこととなり、画像が劣化した状態となる。そこで本実施の形態の一例では、この設定処理部１１０は、目標表示範囲を規定する位置（例えば左上隅の座標値）や、サイズ（幅・高さ）の情報を、整数値とする（図３（ｃ））。小数点以下を含む非整数値を整数値とする方法としては、切り捨て（floor）、四捨五入法（round）、切り上げ法（ceiling）など広く知られた方法を採用してよい。図３（ｃ）の例では、切り上げを行って、左上隅の位置座標を（５，５）、サイズを高さ１０ｐｘ，幅１５ｐｘとした例を示している。
【００２３】
この場合、設定処理部１１０は、関数ｆ（ｔ）も併せて補正する。具体的に関数ｆ（ｔ）は、指示された値では、Ｐ0＝８（図４の例はＸ軸方向についての例を示すものとする）からＰ1＝４．８（図４破線）となっている。そこで、設定処理部１１０は、Ｐ1を整数値とした値Ｐ′1＝５を用いて、Δｔごとの変化量の各点を、Ｐ′1／Ｐ1倍する。この結果、ｆ（ｔ）は図４の実線で示される変化を表すものとなる。
【００２４】
ラスタライズ処理部１１１は、設定処理部１１０により設定された表示範囲の情報を用い、アプリケーションやオペレーティングシステム等から指示されたベクタデータ（画像データ）をラスタライズしてビットマップ画像を生成する。
【００２５】
具体的にこのラスタライズ処理部１１１は、時刻ｔ＝０より以前に、設定処理部１１０により設定された初期表示範囲（幅・高さ）の指示されたベクタデータのラスタライズを行って、初期表示範囲のサイズのビットマップ画像を生成して、描画処理部１１２に出力している。また、設定処理部１１０が目標表示範囲を設定すると、ラスタライズ処理部１１１は、当該設定された目標表示範囲のサイズ（幅・高さ）の領域に、指示されたベクタデータのラスタライズを行って、目標表示範囲のサイズ（整数化された情報で表されるサイズ）のビットマップ画像を生成し、描画処理部１１２に出力する。
【００２６】
描画処理部１１２は、設定処理部１１０が設定（補正）した、関数ｆ（ｔ）に従って、時刻Δｔごとのフレームバッファ２１０上の表示範囲を定める。また描画処理部１１２は、ラスタライズ処理部１１１が出力するビットマップ画像（初期表示範囲のサイズに描画されたもの、あるいは目標表示範囲のサイズに描画されたもののいずれかを選択する）を時刻ｔでの表示範囲のサイズに拡大または縮小し、当該時刻ｔでの表示範囲のフレームバッファ２１０上の位置に描画する。ここで時刻ｔが０＜ｔ＜Ｔの間は、サイズが小数点を含む非整数となる場合があるが、アニメーション描画中（サイズが時間とともに変化している間）は、非整数のサイズへの拡大・縮小を行うものとする。
【００２７】
また描画処理部１１２は、拡大・縮小に利用するビットマップ画像を、ラスタライズ処理部１１１が出力するビットマップ画像のうち、初期表示範囲に描画されたもの（初期ビットマップ画像）、あるいは目標表示範囲に描画されたもの（最終ビットマップ画像）のいずれかを選択するが、この選択は、時刻０≦ｔ＜ｔcの間（ｔc≦Ｔ）は初期ビットマップ画像を選択し、時刻ｔcより後の時刻０＜ｔc≦ｔ≦Ｔの期間に最終ビットマップ画像を選択するよう切り替えて、以降は最終ビットマップ画像を選択するようにすればよい。
【００２８】
本実施の形態では、描画処理部１１２は、次のようにして切り替えのタイミングｔcを定める。すなわち描画処理部１１２は、関数ｆ（ｔ）の単位時間Δｔごとの値の差分（ｆ（ｔ）−ｆ（ｔ−Δｔ）、ただし（ｔ≧Δｔ＞０）を求める。つまり描画処理部１１２は、ｆ（ｔ）を微分する。そして描画処理部１１２は、当該差分が最大となる（あるいは所定のしきい値を超える）ｔm（単位時間あたりのｆ（ｔ）の変化量が最も大きくなる時点）を見出す。
【００２９】
ここで描画処理部１１２は、どのｔにおいても差分が同じであれば、ｔc＝Ｔとする。また描画処理部１１２は、上記の方法で差分が最大（あるいは所定のしきい値を超える）ｔmを見出したときには、ｔc＝ｔmとする。なお、ｔmが複数見出されたときには、描画処理部１１２は、そのうちから任意の方法で（例えば最も早い時刻を、あるいは最も遅い時刻を、またはランダムに）選択した時刻ｔmを用いて、ｔc＝ｔmとする。
【００３０】
本実施の形態のこの例によると、画像の位置やサイズの変化が比較的速いときにビットマップ画像の差し替えを行うことで、ユーザが差し替えによる違和感を感じにくくしている。
【００３１】
［動作］
本発明の実施の形態は以上の構成を基本的に備えており、次のように動作する。
【００３２】
本実施の形態の画像処理装置１は、アプリケーションやオペレーティングシステム等の処理として、ラスタライズの対象となるベクタデータ（画像データ）の指示と、その表示範囲の指示とを出力するとともに、初期表示範囲から目標表示範囲まで表示範囲の時間変化を表す、関数ｆ（ｔ）を併せて指示する。関数ｆ（ｔ）は位置のＸ座標値、Ｙ座標値、サイズの幅の値、高さの値ごとに指示される。
【００３３】
以下の例では、この関数ｆ（ｔ）はいずれの値に対するものも、図４に例示したように時刻ｔが「０」に近い時間では比較的急速に変化し、時刻ｔがＴ（アニメーション終了時点）に近づくほど変化量が小さくなるように指定されたものであるとする。
【００３４】
画像処理装置１は、このベクタデータに基づく描画の処理として、アプリケーションやオペレーティングシステム等から入力される指示に従い、フレームバッファ２１０上で、整数値で表される位置及びサイズで規定される所定の領域を表示範囲として設定する。
【００３５】
具体的に初期表示範囲が例えば左上隅の位置座標が（８，８）で、高さ１６ピクセル（ｐｘ）、幅２４ｐｘのサイズの矩形の領域であるとし、これを６０％縮小する場合、左上隅の位置座標を（５，５）、サイズを高さ１０ｐｘ，幅１５ｐｘとした例を示している。
【００３６】
このとき画像処理装置１は、関数ｆ（ｔ）の各々も併せて補正し、整数値とした値Ｐ′1＝５を用いて、各ｆ（ｔ）のΔｔごとの変化量の各点を、５／（４．８）倍する。
【００３７】
また画像処理装置１は、整数値で設定した表示範囲の情報を用い、アプリケーションやオペレーティングシステム等から指示されたベクタデータ（画像データ）をラスタライズしてビットマップ画像を生成する。すなわち画像処理装置１は、時刻ｔ＝０より以前には、そのとき設定された初期表示範囲（幅・高さ）の指示されたベクタデータのラスタライズを行って、初期表示範囲のサイズのビットマップ画像を生成している。
【００３８】
またこの初期表示範囲とは異なる目標表示範囲が設定されると、画像処理装置１は、当該設定された目標表示範囲のサイズ（幅・高さ）の領域に、指示されたベクタデータのラスタライズを行って、目標表示範囲のサイズのビットマップ画像を生成する。
【００３９】
画像処理装置１は、上記設定（補正）した、関数ｆ（ｔ）に従って、時刻Δｔごとのフレームバッファ２１０上の表示範囲を定める。画像処理装置１は、各時刻Δｔの時点で描画する、初期表示範囲のサイズのビットマップ画像と、目標表示範囲のサイズのビットマップ画像とのいずれかを選択する。
【００４０】
本実施の形態のここでの例では、画像処理装置１は、単位時間あたりのｆ（ｔ）の変化量が最も大きくなる時点までは初期表示範囲のサイズのビットマップ画像を用いる。また画像処理装置１は、当該時点以後は目標表示範囲のサイズのビットマップ画像を用いて描画を行うこととする。既に述べたように、ここでは、ｆ（ｔ）の単位時間あたりの変化量は、ｔが０に近いほど大きいものとしたので、画像処理装置１は、アニメーションの描画を開始してすぐの時点（ｔ＝Δｔの時点）以降、目標表示範囲のサイズのビットマップ画像を用いて描画を行う。
【００４１】
すなわちここでの例では、画像処理装置１は、Δｔごとに逐次的に、目標表示範囲のサイズのビットマップ画像を、その時刻ｔでの表示範囲のサイズに拡大または縮小して、当該時刻ｔでの表示範囲のフレームバッファ２１０上の位置に描画する。ここで時刻ｔが０＜ｔ＜Ｔの間は、サイズが小数点を含む非整数となる場合があるが、アニメーション描画中（サイズが時間とともに変化している間）は、非整数のサイズへの拡大・縮小を行うものとする。
【００４２】
そしてｔ＝Ｔとなったときには、画像処理装置１は、目標表示範囲のサイズ（整数化されたサイズ）の領域にラスタライズされたビットマップ画像を、目標表示範囲の位置（整数化された位置）に、目標表示範囲のサイズ（整数化されたサイズ）で描画する。これにより、アニメーション描画の終了後（６０％縮小後）の画面では、劣化の比較的少ないビットマップ画像が描画された状態となる。
【００４３】
また、この目標表示範囲のサイズまでの変化を規定する関数ｆ（ｔ）が、目標表示範囲の位置やサイズに基づいて補正されているので、アニメーション描画中の変化も違和感なく表示されることとなる。
【００４４】
［整数化の誤差を補正する例］
なお、上述のように位置・サイズを規定する情報を整数化すると、ラスタライズ処理により得たビットマップ画像が複数ある場合に、個々のビットマップ画像に係る整数化の処理を行った際に、整数化前の値との差が互いに異なっていると、各ビットマップ画像を配列したときに違和感が生じる場合がある。
【００４５】
例えば同じ６０％縮小を行う場合に、元の位置のＸ座標が８ｐｘであったビットマップ画像Ａ（縮小後のＸ座標は非整数の状態で４．８ｐｘ、四捨五入により整数化したときに５ｐｘ）と、元の位置のＸ座標が２４ｐｘであったビットマップ画像Ｂ（縮小後のＸ座標は非整数の状態で１４．４ｐｘ、四捨五入により整数化したときに１４ｐｘ）とがある場合、ビットマップ画像Ａの整数化の誤差（整数化後の値から整数化前の値を引いた値とする）は−０．２ｐｘであり、ビットマップ画像Ｂの整数化の誤差は、＋０．４ｐｘとなっている。従って、これらが配列されると、画像の間隔が０．６ｐｘだけ広くなって見えることとなり、違和感が生じる場合がある。
【００４６】
そこで本実施の形態の一例では、設定処理部１１０が、ラスタライズしたビットマップ画像の目標表示範囲を規定する位置（例えば左上隅の座標値）や、サイズ（幅・高さ）の情報を、整数化して設定する際に、整数値とした位置及びサイズの情報とともに、整数化前の値と整数化した値との差（誤差）の情報を出力する。
【００４７】
具体的な例として、図３の例を用いて説明すると、左上隅の位置座標が（８，８）、高さ１６ピクセル（ｐｘ）、幅２４ｐｘのサイズの矩形の領域を６０％縮小して目標表示範囲とする場合、整数化前の左上隅の位置座標は（４．８，４．８）となる。一方、整数化を行って、左上隅の位置座標を（５，５）、サイズを高さ１０ｐｘ，幅１４ｐｘとした場合、設定処理部は、位置座標の値の誤差を整数化後の値から整数化前の値を差し引いて（−０．２，−０．２）と求め、上記整数化後の値（目標表示範囲を規定する情報）とともに、この位置の誤差の情報を併せてラスタライズ処理部１１１及び描画処理部１１２に出力する。
【００４８】
そしてこの例のラスタライズ処理部１１１は、設定処理部１１０により設定された目標表示範囲の情報を用い、アプリケーションやオペレーティングシステム等から指示されたベクタデータ（画像データ）をラスタライズしてビットマップ画像を生成する。このラスタライズ処理部１１１の動作は既に述べたものと同じであるので、ここでの繰り返しての説明は省略する。
【００４９】
すなわち、この例のラスタライズ処理部１１１は、設定された目標表示範囲サイズ（幅・高さ）の領域に、指示されたベクタデータのラスタライズを行ってビットマップ画像を生成し、描画処理部１１２に出力する。
【００５０】
描画処理部１１２は、設定処理部１１０が表示範囲を整数化して設定した関数ｆ（ｔ）、及び誤差の情報に従って、ビットマップ画像の、時刻Δｔごとのフレームバッファ２１０上の表示範囲を定める。
【００５１】
本実施の形態のここでの例でも、描画処理部１１２は、ラスタライズ処理部１１１が出力するビットマップ画像（初期ビットマップ画像、あるいは目標ビットマップ画像のいずれかを選択する）を時刻ｔでの表示範囲のサイズに拡大または縮小し、当該時刻ｔでの表示範囲のフレームバッファ２１０上の位置に描画する。この選択は既に述べたものと同様に行ってよい。
【００５２】
本実施の形態のこの例において特徴的なことの一つは、描画処理部１１２がラスタライズ画像の描画位置を、表示範囲を整数化して設定された関数ｆ（ｔ）に基づいて仮に定めた後、当該仮に定めた位置を、誤差の情報に基づいて補正し、当該補正後の位置にラスタライズ画像を描画することである。
【００５３】
つまり、描画処理部１１２は、補正後の位置を、関数ｆ（ｔ）と、対応する初期表示範囲に関する誤差の情報（時刻ｔ＝０での表示範囲の誤差の情報）ｄ0または目標表示範囲に関する誤差の情報ｄ1とを用いて定める。
【００５４】
具体的に描画処理部１１２は、初期ビットマップ画像を選択してフレームバッファ２１０に描画している間は、左上隅の座標ｐ（ｘ，ｙ）を
ｐ（ｘ，ｙ）＝（ｆｘ（ｔ），ｆｙ（ｔ））−（ｄｘ0，ｄｙ0）
と定める。ここでｆｘ（ｔ）は、表示範囲の左上隅のｘ軸方向の位置に関する関数ｆ（ｔ）の値、ｆｙ（ｔ）は、表示範囲の左上隅のｙ軸方向の位置に関する関数ｆ（ｔ）の値を表す。またｄｘ0は、初期表示範囲に係るｘ軸方向の誤差の情報、ｄｙ0は初期表示範囲に係るｙ軸方向の誤差の情報である：
（ｄｘ0，ｄｙ0）＝（ｉｎｔ［ｆｘ（０），ｆｙ（０）］−（ｆｘ（０），ｆｙ（０）））
ここでｉｎｔ［Ｘ，Ｙ］は、Ｘ，Ｙをそれぞれ所定の方法（切り捨て、四捨五入または切り上げなど）で整数化することを意味する。
【００５５】
また描画処理部１１２は、目標ビットマップ画像を選択してフレームバッファ２１０に描画している間は、左上隅の座標ｐ（ｘ，ｙ）を
ｐ（ｘ，ｙ）＝（ｆｘ（ｔ），ｆｙ（ｔ））−（ｄｘT，ｄｙT）
と定める。ここでｆｘ（ｔ）は、表示範囲の左上隅のｘ軸方向の位置に関する関数ｆ（ｔ）の値、ｆｙ（ｔ）は、表示範囲の左上隅のｙ軸方向の位置に関する関数ｆ（ｔ）の値を表す。またｄｘTは、目標表示範囲に係るｘ軸方向の誤差の情報、ｄｙTは目標表示範囲にｙ軸方向の誤差の情報である。つまり、
（ｄｘT，ｄｙT）＝（ｉｎｔ［ｆｘ（Ｔ），ｆｙ（Ｔ）］−（ｆｘ（Ｔ），ｆｙ（Ｔ）））
である。
【００５６】
図３の例では、初期表示範囲についての誤差の情報は（ｄｘ0，ｄｙ0）＝（０，０）であり、目標表示範囲についての誤差の情報は（ｄｘT，ｄｙT）＝（−０．２，−０．２）となる。
【００５７】
この例によると、アニメーション描画が終了した時点で、整数化の誤差を考慮した非整数値で表される位置に描画が行われることとなる（所与のビットマップ画像を非整数値で表されるフレームバッファ上の領域に描画する方法はサブピクセル描画の方法として広く知られた方法を採用できる）。この例では、画像処理装置１は、目標表示範囲のサイズ（整数化されたサイズ）の領域にラスタライズされた、目標ビットマップ画像を、目標表示範囲を誤差分だけ補正した位置（非整数の位置）に、目標表示範囲のサイズ（整数化されたサイズ）で描画することとなる。この例では、複数のラスタライズ画像を配置する場合に、その間隔を維持でき、また、整数化された領域にラスタライズされたビットマップ画像を用いるので、アニメーション描画の終了後（６０％縮小後）の画面でも、劣化が比較的少ないビットマップ画像を表示できる。
【００５８】
［サイズ変化に対応する描画のさらに別の例］
さらに本実施の形態のここまでの例では、サイズを変化させるアニメーション描画を行う際に、描画処理部１１２が初期ビットマップ画像、あるいは目標ビットマップ画像のいずれかを選択して拡大縮小し、フレームバッファに描画することとしていたが、本実施の形態はこれに限られない。
【００５９】
すなわち本実施の形態の一例では、描画処理部１１２は、少なくともビットマップ画像のサイズを変化させるアニメーション描画中（ｔ＝０からｔ＝Ｔまでアニメーション描画を行う場合、０＜ｔ＜Ｔの間）は、初期ビットマップ画像と目標ビットマップ画像とをクロスフェードするように合成して、各時点で定めた表示範囲に描画することとしてもよい。
【００６０】
具体的に描画処理部１１２は、時刻ｔ（０＜ｔ＜Ｔ）において、初期ビットマップ画像と目標ビットマップ画像とを当該時刻ｔにおける表示範囲のサイズに拡大または縮小し、当該拡大または縮小した後の各ビットマップ画像の対応する画素の画素値Ｃ0（ｘ，ｙ）とＣT（ｘ，ｙ）とを用いて、合成後のビットマップ画像の、当該時刻ｔにおける対応する画素の値Ｃ（ｘ，ｙ）を、
Ｃ（ｘ，ｙ）＝（Ｃ0（ｘ，ｙ）×（Ｔ−ｔ）＋ＣT（ｘ，ｙ）×ｔ）／Ｔ
と定める（なお、Ｃは、一般にはＲＧＢ及び透明度を表すアルファチャンネルの値を含む、色空間の値を表すベクトル量である）。
【００６１】
このようにする場合に、さらに誤差の情報に基づく位置の補正を行うときには、例えば０≦ｔ＜Ｔ／２までは表示範囲の左上隅の座標を、
ｐ（ｘ，ｙ）＝（ｆｘ（ｔ），ｆｙ（ｔ））−（ｄｘ0，ｄｙ0）
とし、Ｔ／２≦ｔ≦Ｔの間は、表示範囲の左上隅の座標を、
ｐ（ｘ，ｙ）＝（ｆｘ（ｔ），ｆｙ（ｔ））−（ｄｘT，ｄｙT）
としてもよい。
【００６２】
この例では、初期ビットマップ画像と目標ビットマップ画像との解像度の相違がなまされるため、比較的滑らかに視認されるアニメーション描画が行われることとなる。
【符号の説明】
【００６３】
１  画像処理装置、１１  制御部、１２  記憶部、１３  操作部、１４  表示部、１６  高さ、１１０  設定処理部、１１１  ラスタライズ処理部、１１２  描画処理部、２１０  フレームバッファ。
【図１】
2021006160.tif 000003
【図２】
2021006160.tif 000004
【図３】
2021006160.tif 000005
【図４】
2021006160.tif 000006
【国際調査報告】
2021006160.tif 000007
2021006160.tif 000008
2021006160.tif 000009
2021006160.tif 000010