(57)【要約】【課題】  任意の領域の画像を複製する複製処理を含む描画処理に必要なメモリのメモリサイズを小さくする。【解決手段】  画像処理装置は、スキャンラインに表示する画像の画像データを保持するラインバッファと、画像の複製を指示する複製指示および図形の図形データを受ける入力部と、図形データに基づいて生成した画像データをスキャンライン単位でラインバッファに書き込む描画部と、複製指示で指定される複製元の領域の画像データを保持するワークバッファと、複製元の領域に対応するラインバッファ上の領域の画像データをワークバッファに書き込む第１複製処理と、複製指示で指定される複製先の領域に対応するラインバッファ上の領域にワークバッファに保持された画像データを書き込む第２複製処理との少なくとも一方を複製指示に基づいて実行する複製処理部とを有している。【選択図】  図１
2014010520.tif 000002
【特許請求の範囲】
【請求項１】
スキャンラインに表示する画像の画像データを保持するラインバッファと、
画像の複製を指示する複製指示および図形の図形データを受ける入力部と、
前記図形データに基づいて生成した前記画像データをスキャンライン単位で前記ラインバッファに書き込む描画部と、
前記複製指示で指定される複製元の領域の前記画像データを保持するワークバッファと、
前記複製元の領域に対応する前記ラインバッファ上の領域の前記画像データを前記ワークバッファに書き込む第１複製処理と、前記複製指示で指定される複製先の領域に対応する前記ラインバッファ上の領域に前記ワークバッファに保持された前記画像データを書き込む第２複製処理との少なくとも一方を前記複製指示に基づいて実行する複製処理部と
を備えていることを特徴とする画像処理装置。
【請求項２】
前記描画部は、
前記図形の図形情報を前記図形データに基づいて生成し、前記図形情報および前記複製指示を格納する参照データをフレーム毎に生成し、前記参照データを前記スキャンライン単位で参照可能にするデータ生成部と、
前記参照データ内の前記図形情報に基づいて前記画像データを生成し、前記画像データを前記ラインバッファに書き込む画像生成部と
を備えていることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記データ生成部は、前記複製元の領域および前記複製先の領域の両方を指定した複製指示を検出したとき、前記複製指示を前記第１複製処理用の第１複製指示と前記第２複製処理用の第２複製指示とに分け、前記第２複製処理が実行されるフレームの前のフレームの前記参照データに前記第１複製指示を含めること
を特徴とする請求項２記載の画像処理装置。
【請求項４】
前記描画部は、前記複製元の領域の前記画像データの量が前記ワークバッファの容量より大きいとき、警告を出力すること
を特徴とする請求項１ないし請求項３のいずれか１項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
画像処理装置は、ディスプレイ等の表示面全体の画像データを保持するフレームメモリを有している（例えば、特許文献１参照。）。例えば、描画処理と表示処理とを同時に実行する画像処理装置は、２画面分のフレームメモリを有している。描画処理は、例えば、ディスプレイに表示する画像のデータ（以下、画像データとも称する）をフレームメモリ等に書き込む処理である。そして、表示処理は、例えば、フレームメモリ等に保持された画像データを読み出して画像をディスプレイに表示する処理である。
【０００３】
なお、ディスプレイ上に図形等を表示する画像処理装置では、画面内の領域の画像を複製する機能（以下、ビットブリットとも称する）を有するものがある。例えば、ビットブリット処理では、画面上の任意の領域に描かれた内容を別の領域に複製する。一般的な画像処理装置では、ビットブリット処理は、フレームメモリに保持されている画像データに対して実行される。例えば、画像処理装置は、複製元の領域（以下、ソース領域とも称する）および複製先の領域（以下、ディスティネーション領域とも称する）を画面全体の画像データを保持したフレームメモリ上に設定してビットブリット処理を実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−１２９４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ビットブリット処理等に使用されるフレームメモリの容量（メモリサイズ）は、表示面全体の画像データを保持するため、大きい。また、描画処理と表示処理とを同時に実行する画像処理装置では、２画面分のフレームメモリが必要であるため、メモリサイズはさらに増加する。メモリサイズの大きなフレームメモリを画像処理装置に内蔵することは困難である。このため、画像処理装置に外付けされるメモリが必要になる。この場合、フレームメモリを別チップとして実装することによるコストの増加等の問題がある。例えば、画像処理装置が搭載されるシステムのコストが増加する。なお、メモリサイズの大きなフレームメモリを画像処理装置内に配置したときには、回路面積が大幅に増加するため、画像処理装置のコストが増加する。
【０００６】
１つの側面では、本発明の目的は、任意の領域の画像を複製する複製処理を含む描画処理に必要なメモリのメモリサイズを小さくすることである。
【課題を解決するための手段】
【０００７】
本発明の一形態では、画像処理装置は、スキャンラインに表示する画像の画像データを保持するラインバッファと、画像の複製を指示する複製指示および図形の図形データを受ける入力部と、図形データに基づいて生成した画像データをスキャンライン単位でラインバッファに書き込む描画部と、複製指示で指定される複製元の領域の画像データを保持するワークバッファと、複製元の領域に対応するラインバッファ上の領域の画像データをワークバッファに書き込む第１複製処理と、複製指示で指定される複製先の領域に対応するラインバッファ上の領域にワークバッファに保持された画像データを書き込む第２複製処理との少なくとも一方を複製指示に基づいて実行する複製処理部とを有している。
【発明の効果】
【０００８】
任意の領域の画像を複製する複製処理を含む描画処理に必要なメモリのメモリサイズを小さくできる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態における画像処理装置の例を示している。
【図２】ビットブリット処理によるスクロールの一例を示している。
【図３】図１に示した画像処理装置の動作の一例を示している。
【図４】別の実施形態における画像処理装置の一例を示している。
【図５】図４に示したデータ生成部の動作の一例を示している。
【図６】図４に示したデータ生成部の動作の別の例を示している。
【発明を実施するための形態】
【００１０】
以下、実施形態を図面を用いて説明する。
【００１１】
図１は、一実施形態における画像処理装置１０の例を示している。画像処理装置１０は、例えば、３次元画像等を２次元表示面ＤＩＳ（以下、表示面ＤＩＳとも称する）に表示する。例えば、画像処理装置１０は、図１の表示面ＤＩＳ内の矢印で示すように、走査線（スキャンライン）の動きに従って、水平方向（図１のＸ方向）に１ラインずつ画像を表示する。例えば、ラインバッファ部４０の各ラインバッファ４２（４２ａ、４２ｂ）は、１ライン分の画像のデータＰＤＡＴＡ（以下、画像データＰＤＡＴＡとも称する）を保持する。すなわち、各ラインバッファ４２ａ、４２ｂは、スキャンラインに表示する画像の画像データＰＤＡＴＡを保持する。なお、各ラインバッファ４２ａ、４２ｂは、複数ライン分の画像データＰＤＡＴＡを保持してもよい。
【００１２】
この実施形態では、例えば、画像処理装置１０は、描画処理と表示処理とを同時に実行する。このため、ラインバッファ部４０は、２つのラインバッファ４２ａ、４２ｂを有している。描画処理は、例えば、ディスプレイ等の表示面ＤＩＳに表示する画像の画像データＰＤＡＴＡをラインバッファ部４０に書き込む処理である。そして、表示処理は、例えば、ラインバッファ部４０に保持された画像データＰＤＡＴＡを読み出して画像を表示面ＤＩＳに表示する処理である。
【００１３】
画像処理装置１０は、例えば、入力部２０、描画部３０、ラインバッファ部４０、複製処理部５０、ワークバッファ６０および表示部７０を有している。
【００１４】
入力部２０は、図形表示データＤＩＮを受け、受けた図形表示データＤＩＮを描画部３０に出力する。例えば、入力部２０は、グラフィックアプリケーションから図形表示データＤＩＮを１フレーム単位で受ける。１フレーム内に含まれる図形表示データＤＩＮは、任意の順に設定され、設定された順に描画される。フレームの切り替えは、例えば、１フレーム分の図形表示データＤＩＮの後に指示される。
【００１５】
図形表示データＤＩＮは、例えば、図形の図形データ、ビットブリット指示等である。図形データにより示される図形は、例えば、三角形、直線である。図形データは、例えば、図形の各頂点の３次元座標の情報（以下、座標情報とも称する）、各頂点の色の情報、テクスチャ座標の情報および法線ベクトルの情報等を有している。なお、図形データの座標情報は、例えば、２次元座標の情報でもよい。
【００１６】
また、ビットブリットとは、例えば、表示面ＤＩＳ内の領域の画像を複製することである。以下、複製元の領域および複製先の領域をソース領域およびディスティネーション領域ともそれぞれ称する。例えば、ビットブリット処理では、表示面ＤＩＳ上の任意の領域（ソース領域）に描かれた内容を別の領域（ディスティネーション領域）に複製する。したがって、ビットブリット指示は、例えば、画像の複製を指示する複製指示として機能する。
【００１７】
このように、入力部２０は、画像の複製を指示する複製指示（ビットブリット指示）および図形の図形データを受ける。ここで、ビットブリット指示は、例えば、描画結果のソース領域からワークバッファ６０への読み出しを行うための読み出しビットブリット指示と、ワークバッファ６０からディスティネーション領域へ書き込みを行うための書き込みビットブリット指示とに分けられる。
【００１８】
例えば、互いに対応する読み出しビットブリット指示および書き込みビットブリット指示は、互いに異なるフレームの図形表示データＤＩＮにそれぞれ含まれる。なお、互いに対応する読み出しビットブリット指示および書き込みビットブリット指示は、１つのビットブリット指示として図形表示データＤＩＮに含まれてもよい。
【００１９】
描画部３０は、表示部７０から受ける描画開始指示ＴＣＮＴに従って、スキャンライン毎に図形データの描画を実行する。例えば、描画部３０は、図形表示データＤＩＮが図形データのとき、図形表示データＤＩＮに基づいて、スキャンラインに表示する図形の画像データＰＤＡＴＡを生成する。そして、描画部３０は、生成した画像データＰＤＡＴＡをラインバッファ４２ａ、４２ｂにスキャンライン単位で交互に書き込む。すなわち、描画部３０は、図形データに基づいて生成した画像データＰＤＡＴＡをスキャンライン単位でラインバッファ４２に書き込む。
【００２０】
また、描画部３０は、図形表示データＤＩＮがビットブリット指示のとき、複製処理部５０に動作指示を実行する。例えば、描画部３０は、図形表示データＤＩＮがビットブリット指示のとき、ビットブリット指示に基づくビットブリット制御信号ＢＣＮＴを複製処理部５０に出力する。ビットブリット制御信号ＢＣＮＴは、例えば、ビットブリット処理の実行を指示する制御信号である。
【００２１】
ラインバッファ部４０は、２つのラインバッファ４２ａ、４２ｂを有している。ラインバッファ４２ａ、４２ｂは、入力ラインバッファおよび出力ラインバッファとして機能し、表示開始のタイミングで入力ラインバッファと出力ラインバッファとが入れ替わる。表示開始のタイミングは、例えば、表示面ＤＩＳの解像度とフレームレートにより決定される。このため、表示出力は、一定の間隔で実行される。すなわち、入力ラインバッファと出力ラインバッファとの切り替えは、画像の表示に同期して実行される。
【００２２】
例えば、表示面ＤＩＳのｎ行目のスキャンラインの画像データＰＤＡＴＡがラインバッファ４２ｂ（出力ラインバッファ）から読み出されている期間では、（ｎ＋１）行目のスキャンラインの画像データＰＤＡＴＡがラインバッファ４２ａ（入力ラインバッファ）に書き込まれる。そして、（ｎ＋１）行目のスキャンラインを表示する期間に、ラインバッファ４２ａ（出力ラインバッファ）に保持されている画像データＰＤＡＴＡが読み出され、（ｎ＋２）行目のスキャンラインの画像データＰＤＡＴＡがラインバッファ４２ｂ（入力ラインバッファ）に書き込まれる。この動作を繰り返すことにより、１画面の画像が表示面ＤＩＳに表示される。
【００２３】
以下、ラインバッファ４２ａ、４２ｂのうちの入力ラインバッファとして機能している方を、入力ラインバッファ４２とも称する。また、ラインバッファ４２ａ、４２ｂのうちの出力ラインバッファとして機能している方を、出力ラインバッファ４２とも称する。
【００２４】
ここで、入力ラインバッファ４２に対しては、画像データＰＤＡＴＡの読み出しが実行されるときもある。例えば、読み出しビットブリット指示が検出されたときには、入力ラインバッファ４２に保持されている画像データＰＤＡＴＡの読み出しが、複製処理部５０により実行される。
【００２５】
複製処理部５０は、ビットブリット指示で指定されるソース領域に対応する入力ラインバッファ４２上の領域の画像データＰＤＡＴＡをワークバッファ６０に書き込む複製処理と、ビットブリット指示で指定されるディスティネーション領域に対応する入力ラインバッファ４２上の領域にワークバッファ６０に保持された画像データＰＤＡＴＡを書き込む複製処理との少なくとも一方をビットブリット指示に基づいて実行する。これにより、この実施形態では、例えば、連続する２つのフレームのうちの先のフレームの任意の領域をソース領域として任意のタイミングで保持し、次のフレームの任意の領域をディスティネーション領域として任意のタイミングでビットブリット処理を実行できる。
【００２６】
例えば、複製処理部５０は、ビットブリット制御信号ＢＣＮＴが読み出しビットブリット指示のとき、ビットブリット制御信号ＢＣＮＴで指定されるソース領域に対応する入力ラインバッファ４２上の領域の画像データＰＤＡＤＡをワークバッファ６０に書き込む。ソース領域は、例えば、矩形で与えられ、矩形の左上を示す開始点（ＸＳ０、ＹＳ０）と矩形の幅および高さを示すサイズ（ＷＳ、ＨＳ）で表される。
【００２７】
ビットブリット制御信号ＢＣＮＴにより指定されたソース領域が開始点（ＸＳ０、ＹＳ０）、サイズ（ＷＳ、ＨＳ）で示される矩形の場合、複製処理部５０は、スキャンラインが“ＹＳ０”以上“ＹＳ０＋ＨＳ”未満の間で、水平方向（図１のＸ方向）の画素位置が“ＸＳ０”以上“ＸＳ０＋ＷＳ”未満の範囲のとき、入力ラインバッファ４２上の画素値（画像データＰＤＡＴＡ）を読み出す。そして、複製処理部５０は、入力ラインバッファ４２から読み出した画素値（画像データＰＤＡＴＡ）をワークバッファ６０に格納する。
【００２８】
これにより、ソース領域の画像データＰＤＡＤＡがワークバッファ６０に格納される。この際、複製処理部５０は、例えば、ソース領域のサイズ（ＷＳ、ＨＳ）の情報も、画像データＰＤＡＤＡとともに格納する。すなわち、ワークバッファ６０には、ソース領域の幅および高さの情報とソース領域の画像データＰＤＡＤＡとが格納される。
【００２９】
なお、ワークバッファ６０の書き込み位置は、ソース領域の開始位置（ＸＳ０、ＹＳ０）、ソース領域の幅ＷＳ、複製対象の画像データＰＤＡＴＡの入力ラインバッファ４２上の位置（複製元の画素の位置）から求められる。例えば、表示面ＤＩＳのｎ行ｍ列目の画像データＰＤＡＴＡをワークバッファ６０に書き込むときのワークバッファ６０上の書き込み位置ＰＷは、式（１）で表される。なお、式（１）は、ソース領域の開始位置（ＸＳ０、ＹＳ０）の画像データＰＤＡＴＡが書き込まれたワークバッファ６０上の位置を基準にしたときの書き込み位置ＰＷを示している。
【００３０】
ＰＷ＝ｍ−ＸＳ０＋（ｎ−ＹＳ０）・ＷＳ  ・・・（１）
ここで、式（１）の“ｎ”は、スキャンラインの行（行番号）に対応し、“ＹＳ０”以上“ＹＳ０＋ＨＳ”未満の値である。また、式（１）の“ｍ”は、入力ラインバッファ４２上の位置に対応し、“ＸＳ０”以上“ＸＳ０＋ＷＳ”未満の値である。
【００３１】
また、複製処理部５０は、ビットブリット制御信号ＢＣＮＴが書き込みビットブリット指示のとき、ビットブリット制御信号ＢＣＮＴで指定されるディスティネーション領域に対応する入力ラインバッファ４２上の領域にワークバッファ６０に保持された画像データＰＤＡＴＡを書き込む。入力ラインバッファ４２に対する書き込みの幅は、例えば、ワークバッファ６０に格納されたソース領域の幅の情報から求められる。
【００３２】
例えば、ソース領域の幅“ＷＳ”が、入力ラインバッファ４２に対する書き込みの幅として使用される。したがって、ビットブリット制御信号ＢＣＮＴにより指定されたディスティネーション領域が開始点（ＸＤ０、ＹＤ０）で示される場合、複製処理部５０は、スキャンラインが“ＹＤ０”以上“ＹＤ０＋ＨＳ”未満の間で、水平方向（図１のＸ方向）の画素位置が“ＸＤ０”以上“ＸＤ０＋ＷＳ”未満の範囲のとき、ワークバッファ６０から画素値（画像データＰＤＡＴＡ）を読み出す。そして、複製処理部５０は、ワークバッファ６０から読み出した画像データＰＤＡＴＡを入力ラインバッファ４２に書き込む。
【００３３】
なお、ワークバッファ６０の読み出し位置は、ディスティネーション領域の開始点（ＸＤ０、ＹＤ０）、ソース領域の幅ＷＳ（ディスティネーション領域の幅）、入力ラインバッファ４２上の位置（複製先の画素の位置）から求められる。例えば、表示面ＤＩＳのｉ行ｊ列目に表示する画像データＰＤＡＴＡをワークバッファ６０から読み出すときのワークバッファ６０上の読み出し位置ＰＲは、式（２）で表される。なお、式（２）は、ソース領域の開始位置（ＸＳ０、ＹＳ０）の画像データＰＤＡＴＡが書き込まれたワークバッファ６０上の位置を基準にしたときの読み出し位置ＰＲを示している。
【００３４】
ＰＷ＝ｊ−ＸＤ０＋（ｉ−ＹＤ０）・ＷＳ  ・・・（２）
ここで、式（２）の“ｉ”は、スキャンラインの行（行番号）に対応し、“ＹＤ０”以上“ＹＤ０＋ＨＳ”未満の値である。また、式（２）の“ｊ”は、入力ラインバッファ４２上の位置に対応し、“ＸＤ０”以上“ＸＤ０＋ＷＳ”未満の値である。
【００３５】
以下、ソース領域に対応する入力ラインバッファ４２上の領域の画像データＰＤＡＴＡをワークバッファ６０に書き込む複製処理を読み出し処理とも称する。また、ワークバッファ６０に保持された画像データＰＤＡＴＡをディスティネーション領域に対応する入力ラインバッファ４２上の領域に書き込む複製処理を書き込み処理とも称する。
【００３６】
ワークバッファ６０は、ビットブリット指示で指定されるソース領域の画像データＰＤＡＴＡを保持する。なお、ワークバッファ６０は、複数のソース領域の画像データＰＤＡＴＡを保持してもよい。この場合、読み出しビットブリット指示の処理（読み出し処理）と書き込みビットブリット指示の処理（書き込み処理）とを並行して実行できる。なお、複数のソース領域の画像データＰＤＡＴＡを保持するワークバッファ６０を使用する場合、ビットブリット指示は、読み出しおよび書き込みの対象となるワークバッファ６０上の領域を指定する。
【００３７】
表示部７０は、表示面ＤＩＳのスキャンラインの水平同期に従って出力ラインバッファ４２から画像データＰＤＡＴＡを読み出し、表示面ＤＩＳに画像を表示する。また、表示部７０は、例えば、スキャンラインの水平同期のタイミングで次のスキャンラインの描画開始を指示する描画開始指示ＴＣＮＴを描画部３０に出力する。これにより、描画部３０は、図形データの描画をスキャンライン単位で実行する。
【００３８】
なお、画像処理装置１０の構成は、この例に限定されない。例えば、ラインバッファ４２ａ、４２ｂの一方は、省かれてもよい。また、画像処理装置１０は、例えば、ビットブリット処理を正常に実行できないとき、グラフィックアプリケーション等に警告を通知してもよい。
【００３９】
図２は、ビットブリット処理によるスクロールの一例を示している。表示面ＤＩＳａは、スクロール前の表示画面である。例えば、表示面ＤＩＳａには、５行（行Ｌ１−Ｌ５）のテキスト画面が表示されている。表示面ＤＩＳａの表示画面を上に１行分スクロールさせる場合、下の４行（表示面ＤＩＳａの行Ｌ２−Ｌ５）を含む領域ＳＡＲＥをソース領域ＳＡＲＥとして指定した読み出しビットブリット指示が生成される。
【００４０】
また、１行分上の位置をディスティネーション領域ＤＡＲＥの開始点として指定した書き込みビットブリット指示が生成される。書き込みビットブリット指示は、例えば、読み出しビットブリット指示を含むフレームの次のフレームに含まれる。そして、画像処理装置１０は、例えば、読み出しビットブリット指示に基づくビットブリット処理と書き込みビットブリット指示に基づくビットブリット処理とをそれぞれ実行する。
【００４１】
例えば、読み出しビットブリット指示を含むフレームでは、先ず、描画部３０は、表示面ＤＩＳａの行Ｌ１に対応するスキャンラインの画像データＰＤＡＴＡを生成し、生成した画像データＰＤＡＴＡを入力ラインバッファ４２に書き込む。入力ラインバッファ４２と出力ラインバッファ４２とが切り替わった後、描画部３０は、表示面ＤＩＳａの行Ｌ２に対応するスキャンラインの画像データＰＤＡＴＡを生成し、生成した画像データＰＤＡＴＡを入力ラインバッファ４２に書き込む。さらに、描画部３０は、読み出しビットブリット指示に基づくビットブリット制御信号ＢＣＮＴを複製処理部５０に出力する。
【００４２】
そして、複製処理部５０は、入力ラインバッファ４２に書き込まれた画像データＰＤＡＴＡを、ワークバッファ６０に読み出す。これにより、表示面ＤＩＳａの行Ｌ２に対応する画像データＰＤＡＴＡがワークバッファ６０に書き込まれる。描画部３０および複製処理部５０は、表示面ＤＩＳａの行Ｌ３−Ｌ５に対応するスキャンラインに対しても、行Ｌ２に対応するスキャンラインと同様の処理をスキャンライン毎に実行する。これにより、ソース領域ＳＡＲＥの画像データＰＤＡＴＡがワークバッファ６０に保持される。
【００４３】
また、例えば、書き込みビットブリット指示を含むフレームでは、先ず、描画部３０は、書き込みビットブリット指示に基づくビットブリット制御信号ＢＣＮＴを複製処理部５０に出力する。そして、複製処理部５０は、表示面ＤＩＳｂの行Ｌ１に対応するスキャンラインの画像データＰＤＡＴＡをワークバッファ６０から読み出し、読み出した画像データＰＤＡＴＡを入力ラインバッファ４２に書き込む。これにより、表示面ＤＩＳｂの行Ｌ１に対応する画像データＰＤＡＴＡ（表示面ＤＩＳａの行Ｌ２に対応する画像データＰＤＡＴＡ）が入力ラインバッファ４２に書き込まれる。
【００４４】
そして、入力ラインバッファ４２と出力ラインバッファ４２とが切り替わり、表示面ＤＩＳｂの行Ｌ１に対応する画像データＰＤＡＴＡが出力ラインバッファ４２から読み出される。これにより、表示面ＤＩＳｂの行Ｌ１に画像が表示される。描画部３０および複製処理部５０は、表示面ＤＩＳｂの行Ｌ２−Ｌ４に対応するスキャンラインに対しても、行Ｌ１に対応するスキャンラインと同様の処理をスキャンライン毎に実行する。
【００４５】
これにより、表示面ＤＩＳａのソース領域ＳＡＲＥの画像が表示面ＤＩＳｂのディスティネーション領域ＤＡＲＥに表示される。このように、書き込みビットブリット指示を含むフレームでは、描画部３０は、行Ｌ１−Ｌ４の画像データＰＤＡＴＡを生成する処理を省略できる。
【００４６】
なお、表示面ＤＩＳｂの行Ｌ５に対応するスキャンラインでは、描画部３０は、例えば、５行目に表示するテキストの画像データＰＤＡＴＡを生成する。そして、描画部３０は、生成した画像データＰＤＡＴＡを入力ラインバッファ４２に書き込む。入力ラインバッファ４２に書き込まれた画像データＰＤＡＴＡは、入力ラインバッファ４２と出力ラインバッファ４２とが切り替わった後、読み出される。
【００４７】
これにより、表示面ＤＩＳの行Ｌ５に画像が表示され、スクロールは終了する。表示面ＤＩＳｃは、スクロール後の表示画面である。このように、この実施形態では、ビットブリット処理を用いることにより、全てのテキストの画像データＰＤＡＴＡを各フレームで新たに生成するときに比べて、高速なスクロール表示を実行できる。
【００４８】
図３は、図１に示した画像処理装置１０の動作の一例を示している。図３の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。なお、画像処理装置１０の動作は、図３の例に限定されない。
【００４９】
処理Ｓ１００では、例えば、描画部３０は、入力部２０から受けた１フレームの図形表示データＤＩＮをラインバッファ４２ａ、４２ｂでの描画が可能になるように整理する。例えば、描画部３０は、図形表示データＤＩＮが図形データのとき、図形データ（図形表示データＤＩＮ）に基づいて、入力図形の図形情報を生成する。図形情報は、例えば、図形の各頂点の２次元表示面ＤＩＳにおける座標の情報（以下、位置情報とも称する）等を有している。
【００５０】
例えば、描画部３０は、図形の位置情報に基づいて、図形情報とスキャンラインとの対応関係を算出できる。そして、描画部３０は、例えば、各スキャンラインに対応する図形情報およびビットブリット指示を、スキャンライン順に参照データに格納する。これにより、１フレーム分の参照データが生成される。なお、描画部３０は、例えば、各スキャンラインに対応する図形情報およびビットブリット指示を示す情報を、スキャンライン順に参照データに格納してもよい。
【００５１】
処理Ｓ２００では、画像処理装置１０は、描画対象のスキャンラインに対して、描画処理を開始する。処理Ｓ２１０では、例えば、描画部３０は、描画対象のスキャンラインに対応する情報（図形情報やビットブリット指示）を参照データから読み出し、読み出した情報がビットブリット指示か否かを判定する。
【００５２】
参照データから読み出した情報がビットブリット指示でないとき（処理Ｓ２１０のＮｏ）、画像処理装置１０の動作は、処理Ｓ２２０に移る。例えば、参照データから読み出した情報が図形情報のとき、画像処理装置１０の動作は、処理Ｓ２２０に移る。処理Ｓ２２０では、描画部３０は、参照データから読み出した図形情報に基づいて、図形の画像データＰＤＡＴＡを生成する。すなわち、描画部３０は、図形表示データＤＩＮが図形データのとき、図形の画像データＰＤＡＴＡを生成する。
【００５３】
一方、参照データから読み出した情報がビットブリット指示のとき（処理Ｓ２１０のＹｅｓ）、画像処理装置１０の動作は、処理Ｓ２３０に移る。処理Ｓ２３０では、例えば、複製処理部５０は、ビットブリット指示かソース領域ＳＡＲＥの複製を示しているか否かを判定する。すなわち、複製処理部５０は、ビットブリット指示か読み出しビットブリット指示か否かを判定する。
【００５４】
ビットブリット指示か読み出しビットブリット指示でないとき（処理Ｓ２３０のＮｏ）、画像処理装置１０の動作は、処理Ｓ２４０に移る。すなわち、ビットブリット指示か書き込みビットブリット指示のとき、画像処理装置１０の動作は、処理Ｓ２４０に移る。処理Ｓ２４０では、例えば、複製処理部５０は、ワークバッファ６０に保持された画像データＰＤＡＴＡ（画素）をディスティネーション領域ＤＡＲＥに対応する入力ラインバッファ４２上の領域に格納する。すなわち、描画部３０は、図形表示データＤＩＮが書き込みビットブリット指示のとき、ワークバッファ６０に保持された画像データＰＤＡＴＡをディスティネーション領域ＤＡＲＥに対応する入力ラインバッファ４２上の領域に書き込む。
【００５５】
一方、ビットブリット指示か読み出しビットブリット指示のとき（処理Ｓ２３０のＹｅｓ）、画像処理装置１０の動作は、処理Ｓ２５０に移る。処理Ｓ２５０では、例えば、複製処理部５０は、ソース領域ＳＡＲＥに対応する入力ラインバッファ４２上の領域の画像データＰＤＡＴＡをワークバッファ６０に格納する。すなわち、描画部３０は、図形表示データＤＩＮが読み出しビットブリット指示のとき、ソース領域ＳＡＲＥに対応する入力ラインバッファ４２上の領域の画像データＰＤＡＴＡをワークバッファ６０に書き込む。
【００５６】
処理Ｓ２６０では、例えば、描画部３０は、スキャンライン内の描画が終了したか否かを判定する。スキャンライン内の描画が終了していないとき（処理Ｓ２６０のＮｏ）、画像処理装置１０の動作は、処理Ｓ２１０に戻る。一方、スキャンライン内の描画が終了しているとき（処理Ｓ２６０のＹｅｓ）、画像処理装置１０の動作は、処理Ｓ３００に移る。
【００５７】
このように、画像処理装置１０は、ビットブリット指示を検出したとき、図形情報に基づく描画を一時的に中断し、その時点のラインバッファ４２内の画素に対してビットブリット処理を実行する。すなわち、画像処理装置１０は、スキャンラインの描画中（例えば、一部の図形の描画が終了し、他の図形の描画が開始される前）にも、ビットブリット処理を実行できる。
【００５８】
処理Ｓ３００では、例えば、ラインバッファ部４０は、入力ラインバッファ４２と出力ラインバッファ４２とを切り替える。入力ラインバッファ４２と出力ラインバッファ４２とが切り替わった後、表示部７０は、出力ラインバッファ４２に保持されている画像データＰＤＡＴＡを読み出し、スキャンラインの画像を表示する。このように、スキャンラインの描画処理が終了しとき、ラインバッファ４２の切り替えと表示が実行される。表示の開始と終了は、スキャンラインのタイミングに同期するため、ラインバッファ４２の切り替えもスキャンラインのタイミングに同期して実行される。
【００５９】
処理Ｓ３１０では、例えば、描画部３０は、全てのスキャンラインの描画が終了したか否かを判定する。全てのスキャンラインの描画が終了していないとき（処理Ｓ３１０のＮｏ）、画像処理装置１０の動作は、処理Ｓ２００に戻る。一方、全てのスキャンラインの描画が終了しているとき（処理Ｓ３１０のＹｅｓ）、１フレームの描画および表示に関する処理は、終了する。そして、画像処理装置１０の動作は、次のフレームの処理に移る。このように、画像処理装置１０は、処理Ｓ１００−Ｓ３１０を実行することにより、１フレームの画像を表示面ＤＩＳに表示する。
【００６０】
以上、この実施形態では、画像処理装置１０は、スキャンラインに表示する画像の画像データＰＤＡＴＡを保持するラインバッファ４２と、ビットブリット指示で指定されるソース領域ＳＡＲＥの画像データＰＤＡＴＡを保持するワークバッファ６０と、描画部３０と、複製処理部５０とを有している。
【００６１】
描画部３０は、図形データに基づいて生成した画像データＰＤＡＴＡをスキャンライン単位で入力ラインバッファ４２に書き込む。すなわち、この実施形態では、１画面分の画像データＰＤＡＴＡを保持するフレームメモリの代わりにスキャンライン分の画像ＰＤＡＴＡを保持するラインバッファ４２を用いて、画像を表示する。この結果、この実施形態では、画像を表示する際に用いるバッファのメモリサイズを小さくできる。
【００６２】
また、複製処理部５０は、読み出しビットブリット指示が検出されたとき、読み出しビットブリット指示で指定されるソース領域ＳＡＲＥに対応する入力ラインバッファ４２上の領域の画像データＰＤＡＴＡをワークバッファ６０に書き込む。また、複製処理部５０は、書き込みビットブリット指示が検出されたとき、書き込みビットブリット指示で指定されるディスティネーション領域ＤＡＲＥに対応する入力ラインバッファ４２上の領域にワークバッファ６０に保持された画像データＰＤＡＴＡを書き込む。
【００６３】
これにより、この実施形態では、画像を表示する際に用いるバッファのメモリサイズの増加を抑制しつつ、フレーム間でのビットブリット処理を実行できる。すなわち、この実施形態では、任意の領域の画像を複製する複製処理を含む描画処理に必要なメモリのメモリサイズを小さくできる。
【００６４】
例えば、解像度が１９２０×１０８０画素で、かつ、１画素が４ｂｙｔｅの場合、１フレームの画像データＰＤＡＴＡを格納するフレームメモリのサイズは、約８Ｍｂｙｔｅ（１９２０×１０８０×４）である。したがって、フレームメモリを用いて描画と表示を同時に実行する画像処理装置では、２面分のフレームメモリが必要であるため、約１６Ｍｂｙｔｅのメモリが必要である。
【００６５】
これに対し、この実施形態では、例えば、ソース領域ＳＡＲＥのサイズを８００×４００画素程度に制限した場合、ワークバッファ６０のサイズは、約１．２Ｍｂｙｔｅ（８００×４００×４）である。また、各ラインバッファ４２のサイズは、約７．５Ｋｂｙｔｅ（１９２０×４）であり、ラインバッファ４２ａ、４２ｂのサイズの合計は、約１５Ｋｂｙｔｅである。したがって、この実施形態では、ビットブリット処理等に必要なメモリ（ワークバッファ６０、ラインバッファ４２ａ、４２ｂの合計）のサイズを、２面分のフレームメモリが必要な画像処理装置のメモリサイズに比べて、約１３分の１にできる。この結果、この実施形態では、メモリにかかるコストを低減できる。
【００６６】
また、この実施形態では、ビットブリット処理等に必要なメモリ（ワークバッファ６０、ラインバッファ４２ａ、４２ｂ）のメモリサイズを小さくできるため、例えば、画像処理装置１０を含むＬＳＩに、ビットブリット処理等に必要なメモリも内蔵できる。これにより、この実施形態では、画像処理装置１０のコストを低減できる。
【００６７】
例えば、３次元画像等を２次元表示面ＤＩＳに表示する画像処理装置１０では、２次元画像を処理する装置に比べて、大量のデータが必要になる。このため、例えば、フレームメモリ等が画像処理ＬＳＩの外部に設けられる画像処理システムでは、メモリバンド幅の不足等により、複数の外付けメモリが必要になるときがある。あるいは、フレームメモリ等が画像処理ＬＳＩの外部に設けられる画像処理システムでは、２次元画像を処理する装置に比べて、高速な外付けメモリが必要になる。このため、外付けメモリを含むシステム全体のコストが増加する。これに対し、この実施形態では、ビットブリット処理等に必要なメモリ（ワークバッファ６０、ラインバッファ４２ａ、４２ｂ）も画像処理装置１０を含むＬＳＩに内蔵できるため、画像処理装置１０を含むシステム全体のコストを低減できる。
【００６８】
図４は、別の実施形態における画像処理装置１０Ａの一例を示している。図１−図３で説明した要素と同様の要素については、同様の符号を付し、これ等については、詳細な説明を省略する。例えば、画像処理装置１０Ａは、図１に示した描画部３０の代わりに、描画部３０Ａを有している。画像処理装置１０Ａのその他の構成は、図１−図３で説明した実施形態と同様である。例えば、入力部２０、ラインバッファ部４０、複製処理部５０、ワークバッファ６０および表示部７０は、図１−図３で説明した実施形態と同一である。したがって、図４では、描画部３０Ａについて説明する。例えば、描画部３０Ａは、データ生成部３２、シーンデータバッファ３４および画像生成部３６を有している。
【００６９】
データ生成部３２は、例えば、入力部２０から受けた図形表示データＤＩＮが図形の図形データのとき、図形の図形情報を図形データに基づいて生成する。図形情報は、図３で説明したように、図形の位置情報（表示面ＤＩＳにおける座標）等を有している。また、データ生成部３２は、図形情報およびビットブリット指示を格納する参照データＳＤ１をフレーム毎に生成し、参照データＳＤ１をスキャンライン単位で参照可能にする。以下、各フレームの参照データＳＤ１をシーンデータＳＤ１とも称する。
【００７０】
例えば、データ生成部３２は、入力部２０から受けた図形表示データＤＩＮを解析し、入力図形の図形情報等をフレーム毎に生成する。生成された１フレーム分の図形情報等は、シーンデータバッファ３４に保持される。例えば、データ生成部３２は、図形表示データＤＩＮが図形の図形データのとき、図形データに基づく図形情報をシーンデータバッファ３４に格納し、図形表示データＤＩＮがビットブリット指示のとき、ビットブリット指示をシーンデータバッファ３４に格納する。
【００７１】
そして、データ生成部３２は、例えば、シーンデータバッファ３４に保持されている図形情報等を順次読み出し、スキャンラインにかかる図形の図形情報やビットブリット指示をスキャンライン毎に列挙したシーンデータＳＤ１を生成する。なお、ビットブリット指示は、読み出しビットブリット指示と書き込みビットブリット指示とに分けて格納される。例えば、データ生成部３２は、読み出しビットブリット指示を検出したとき、読み出しビットブリット指示をシーンデータＳＤ１に格納し、書き込みビットブリット指示を検出したとき、書き込みビットブリット指示をシーンデータＳＤ１に格納する。
【００７２】
シーンデータＳＤ１は、例えば、フレーム毎に生成され、シーンデータバッファ３４に保持される。このように、データ生成部３２は、入力部２０から受けた１フレームの図形表示データＤＩＮをラインバッファ４２ａ、４２ｂでの描画が可能になるように整理し、図形情報やビットブリット指示を含むシーンデータＳＤ１を生成する。
【００７３】
また、データ生成部３２は、ビットブリット指示により複製される画像領域（ソース領域）の画像データＰＤＡＴＡの量がワークバッファ６０の容量より大きいとき、警告ＡＲＭを出力する。すなわち、データ生成部３２は、ビットブリット指示で指定されるソース領域の画像データＰＤＡＴＡの量がワークバッファ６０の容量より大きいとき、警告ＡＲＭを出力する。これにより、この実施形態では、ビットブリットの失敗による描画の失敗を防止できる。
【００７４】
画像生成部３６は、表示部７０から受ける描画開始指示ＴＣＮＴに従って、スキャンライン毎に図形の描画を実行する。例えば、画像生成部３６は、描画対象となるシーンデータＳＤ１をシーンデータバッファ３４から読み出す。そして、画像生成部３６は、シーンデータＳＤ１に基づいて画像データＰＤＡＴＡを生成し、生成した画像データＰＤＡＴＡを入力ラインバッファ４２に書き込む。これにより、スキャンラインに描画する図形の画像データＰＤＡＴＡは、入力ラインバッファ４２に保持される。
【００７５】
このように、画像生成部３６は、例えば、描画対象となるシーンデータＳＤ１からスキャンラインに描画する図形の図形情報等を読み出し、図形内で該当するスキャンラインにかかる部分を入力ラインバッファ４２に描画する。すなわち、画像生成部３６は、シーンデータＳＤ１内の図形情報に基づいて画像データＰＤＡＴＡを生成し、画像データＰＤＡＴＡを入力ラインバッファ４２に書き込む。
【００７６】
また、画像生成部３６は、シーンデータＳＤ１からビットブリット指示を読み出したとき、ビットブリット制御信号ＢＣＮＴを複製処理部５０に通知する。すなわち、画像生成部３６は、例えば、シーンデータＳＤ１から読み出した情報が三角形、直線等の描画図形の図形情報のとき、図形の描画を実行し、シーンデータＳＤ１から読み出した情報がビットブリット指示のとき、複製処理部５０にビットブリット制御信号ＢＣＮＴを通知する。
【００７７】
図５は、図４に示したデータ生成部３２の動作の一例を示している。図５の動作は、例えば、図３に示した処理Ｓ１００に対応している。なお、図５の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。
【００７８】
シーンデータＳＤ１の生成は、２段階で実行される。処理Ｓ１１０−Ｓ１２０は、シーンデータ生成の第１段階を示している。シーンデータ生成の第１段階では、例えば、スキャンライン単位で参照可能なシーンデータＳＤ１の前段階のシーンデータＳＤ０が生成される。例えば、処理Ｓ１１０では、データ生成部３２は、入力部２０から図形表示データＤＩＮを読み込む。
【００７９】
処理Ｓ１１２では、データ生成部３２は、図形表示データＤＩＮのうちの図形データに基づいて、図形の座標変換を実行する。これにより、図形の図形情報が生成される。また、データ生成部３２は、座標変換の結果に基づいて、図形が描画される位置を求める。これにより、図形が描画されるスキャンラインの場所が求められる。例えば、座標変換の結果が、図形のＹ座標の最小が５を示し、Ｙ座標の最大が１０を示している場合、５から１０までのスキャンラインに図形が描画される。図形が描画されるスキャンラインの場所を示す情報は、例えば、図形情報に含まれる。
【００８０】
処理Ｓ１１４では、データ生成部３２は、シーンデータＳＤ０を更新する。シーンデータＳＤ０は、例えば、シーンデータバッファ３４に一時的に記憶される。例えば、データ生成部３２は、図形が描画されるスキャンラインの場所を示す情報を含む図形情報やビットブリット指示を、シーンデータＳＤ０に格納する。
【００８１】
処理Ｓ１１６では、データ生成部３２は、ビットブリット範囲（ソース領域）の画像データＰＤＡＴＡをワークバッファ６０に格納可能か否かを判定する。例えば、データ生成部３２は、図形表示データＤＩＮが読み出しビットブリット指示のとき、ソース領域の画像データＰＤＡＴＡの量がワークバッファ６０の容量以下か否かを判定する。
【００８２】
ビットブリット範囲の画像データＰＤＡＴＡをワークバッファ６０に格納可能のとき（処理Ｓ１１６のＹｅｓ）、データ生成部３２の動作は、処理Ｓ１２０に移る。すなわち、ソース領域の画像データＰＤＡＴＡの量がワークバッファ６０の容量以下のとき、データ生成部３２の動作は、処理Ｓ１２０に移る。
【００８３】
一方、ビットブリット範囲の画像データＰＤＡＴＡをワークバッファ６０に格納不可のとき（処理Ｓ１１６のＮｏ）、データ生成部３２の動作は、処理Ｓ１１８に移る。すなわち、ソース領域の画像データＰＤＡＴＡの量がワークバッファ６０の容量より大きいとき、データ生成部３２の動作は、処理Ｓ１１８に移る。
【００８４】
処理Ｓ１１８では、データ生成部３２は、警告を出力する。例えば、データ生成部３２は、画像処理装置１０Ａを使用しているグラフィックアプリケーションに対して、警告を通知する。これにより、グラフィックアプリケーションは、次のフレームで明示的に再描画を実行できる。この結果、この実施形態では、ビットブリットの失敗による描画の失敗を防止できる。
【００８５】
なお、データ生成部３２は、ワークバッファ６２に格納できない範囲を指定した警告を、グラフィックアプリケーションに対して通知してもよい。このときには、画像処理装置１０Ａは、ワークバッファ６２に格納できる範囲に対して、ビットブリット処理を実行する。これにより、グラフィックアプリケーションおよび画像処理装置１０Ａの再描画の負荷を低減できる。
【００８６】
処理Ｓ１２０では、データ生成部３２は、１フレーム内の全ての図形に対して、処理Ｓ１１０−Ｓ１１８の図形処理が終了したか否かを判定する。処理Ｓ１１０−Ｓ１１８の図形処理が終了していない図形が存在するとき（処理Ｓ１２０のＮｏ）、データ生成部３２の動作は、処理Ｓ１１０に戻る。一方、処理Ｓ１１０−Ｓ１１８の図形処理が全ての図形で終了しているとき（処理Ｓ１２０のＹｅｓ）、データ生成部３２の動作は、処理Ｓ１２２（シーンデータ生成の第２段階の開始）に移る。
【００８７】
処理Ｓ１１０−Ｓ１１８の図形処理が１フレーム内の全ての図形に対して実行されることにより、例えば、図形が描画されるスキャンラインの場所を示す情報がシーンデータＳＤ０に図形毎に記述される。これにより、シーンデータ生成の第１段階が終了する。処理Ｓ１２２−Ｓ１３２は、シーンデータ生成の第２段階を示している。例えば、処理Ｓ１２２では、データ生成部３２は、スキャンライン処理を開始する。例えば、データ生成部３２は、処理対象のスキャンラインを決定する。処理対象のスキャンラインは、例えば、スキャンライン順に選択される。
【００８８】
処理Ｓ１２４では、データ生成部３２は、図形情報やビットブリット指示をシーンデータＳＤ０から読み込む。図形情報やビットブリット指示の読み込みは、例えば、図形の描画順に実行される。これにより、各スキャンライン内での図形の描画順は、グラフィックアプリケーション等で設定された描画順に維持される。
【００８９】
処理Ｓ１２６では、データ生成部３２は、処理Ｓ１２２で選択したスキャンラインが処理Ｓ１２６で読み込んだ図形情報に対応する図形内を通過するか否かを判定する。例えば、各図形の図形情報は、処理Ｓ１１０−Ｓ１２０で説明したように、図形が描画されるスキャンラインの場所を示す情報を有している。したがって、データ生成部３２は、スキャンラインが図形内を通過するか否かを、図形情報に基づいて判定できる。なお、ビットブリット指示に対しては、例えば、処理Ｓ１２２で選択したスキャンラインがビットブリット処理の対象か否かが判定される。例えば、データ生成部３２は、スキャンラインがビットブリット処理の対象のとき、スキャンラインが図形内を通過すると判定する。
【００９０】
スキャンラインが図形内を通過しないとき（処理Ｓ１２６のＮｏ）、データ生成部３２の動作は、処理Ｓ１３０に移る。すなわち、図形がスキャンラインに描画されないとき、データ生成部３２は、シーンデータＳＤ１を更新することなく、処理Ｓ１３０を実行する。
【００９１】
一方、スキャンラインが図形内を通過するとき（処理Ｓ１２６のＹｅｓ）、データ生成部３２の動作は、処理Ｓ１２８に移る。すなわち、図形がスキャンラインに描画されるとき、データ生成部３２は、処理Ｓ１２８において、シーンデータＳＤ１を更新する。処理Ｓ１２８では、データ生成部３２は、処理Ｓ１２６で読み込んだ図形情報やビットブリット指示を、シーンデータＳＤ１に格納する。
【００９２】
処理Ｓ１３０では、データ生成部３２は、１フレーム内の全ての図形に対して、処理Ｓ１２４−Ｓ１２８の一連の処理が終了したか否かを判定する。処理Ｓ１２４−Ｓ１２８の一連の処理が終了していない図形が存在するとき（処理Ｓ１３０のＮｏ）、データ生成部３２の動作は、処理Ｓ１２４に戻る。一方、処理Ｓ１２４−Ｓ１２８の一連の処理が全ての図形で終了しているとき（処理Ｓ１３０のＹｅｓ）、データ生成部３２の動作は、処理Ｓ１３２に移る。処理Ｓ１２４−Ｓ１３０の一連の処理の終了により、処理Ｓ１２２で選択されたスキャンラインに対する処理が終了する。
【００９３】
処理Ｓ１３２では、データ生成部３２は、全てのスキャンラインに対する処理が終了したか否かを判定する。全てのスキャンラインに対する処理が終了していないとき（処理Ｓ１３２のＮｏ）、データ生成部３２の動作は、処理Ｓ１２２に戻る。一方、全てのスキャンラインに対する処理が終了しているとき（処理Ｓ１３２のＹｅｓ）、１フレーム分のシーンデータＳＤ１の生成処理が終了する。
【００９４】
これにより、スキャンライン単位で参照可能なシーンデータＳＤ１が生成される。例えば、画像生成部３６は、シーンデータＳＤ１を参照することにより、各スキャンラインで、どの図形を描画するかを認識できる。シーンデータＳＤ１生成後の画像処理装置１０Ａの動作は、図３に示した処理Ｓ２００−Ｓ３１０と同様である。例えば、図３の処理Ｓ２００−Ｓ３１０において、描画部３０を画像生成部３６と読み替えることにより、画像生成部３６、ラインバッファ部４０、複製処理部５０等の動作が説明される。
【００９５】
なお、データ生成部３２の動作は、この例に限定されない。例えば、処理Ｓ１１６、Ｓ１１８は、処理Ｓ１１４の前に実行されてもよい。また、例えば、処理Ｓ１２４−Ｓ１３０は、図３に示した処理Ｓ２００と処理Ｓ２１０との間で実行されてもよい。このときには、例えば、処理Ｓ１２２、Ｓ１３２は、図３に示した処理Ｓ２００、Ｓ３１０にそれぞれ含まれる。あるいは、処理Ｓ１２２−Ｓ１３２は、図３に示した処理２００−Ｓ３１０の一連の処理と並行に実行されてもよい。
【００９６】
図６は、図４に示したデータ生成部３２の動作の別の例を示している。なお、図６は、互いに対応する読み出しビットブリット指示および書き込みビットブリット指示が１つのビットブリット指示として図形表示データＤＩＮに含まれているときのデータ生成部３２の動作の一例を示している。すなわち、図６は、ソース領域ＳＡＲＥおよびディスティネーション領域ＤＡＲＥの両方を指定したビットブリット指示が図形表示データＤＩＮから検出されたときのデータ生成部３２の動作の一例を示している。図６の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。
【００９７】
図６の動作では、データ生成部３２は、現在のフレームのシーンデータＳＤ１を生成する際に、次のフレームのシーンデータＳＤ０’を生成する。したがって、シーンデータバッファ３４には、２フレーム分のシーンデータが格納される。
【００９８】
処理Ｓ１５０では、データ生成部３２は、図５に示した処理Ｓ１１０−Ｓ１２０の一連の処理を実行し、現在のフレームのシーンデータＳＤ０を生成する。処理Ｓ１５２では、データ生成部３２は、図５に示した処理Ｓ１２２−Ｓ１３２の一連の処理を実行し、現在のフレームのシーンデータＳＤ１を生成する。
【００９９】
処理Ｓ１５４では、データ生成部３２は、図５に示した処理Ｓ１１０−Ｓ１２０の一連の処理を実行し、次のフレームのシーンデータＳＤ０’を生成する。処理Ｓ１５６では、データ生成部３２は、シーンデータＳＤ０’にビットブリット指示が存在するか否かを判定する。シーンデータＳＤ０’にビットブリット指示が存在しないとき（処理Ｓ１５６のＮｏ）、現在のフレームのシーンデータＳＤ１の生成処理は終了する。一方、シーンデータＳＤ０’にビットブリット指示が存在するとき（処理Ｓ１５６のＹｅｓ）、データ生成部３２の動作は、処理Ｓ１５８に移る。
【０１００】
処理Ｓ１５８では、データ生成部３２は、シーンデータＳＤ０’のビットブリット指示から読み出しビットブリット指示を生成する。処理Ｓ１６０では、データ生成部３２は、処理Ｓ１５８で生成した読み出しビットブリット指示を、シーンデータＳＤ１に反映する。例えば、データ生成部３２は、読み出しビットブリット指示を、シーンデータＳＤ１の該当するスキャンラインの最後に追加する。これにより、画像生成部３６および複製処理部５０は、追加された読み出しビットブリット指示に基づく読み出し処理を、現在のフレームの該当するスキャンラインに対して実行できる。
【０１０１】
なお、シーンデータＳＤ０’に元々存在するビットブリット指示に対応する書き込みビットブリット指示は、次のフレームのシーンデータＳＤ１（シーンデータＳＤ０’から生成されるシーンデータＳＤ１）に格納される。したがって、次のフレームでは、画像生成部３６および複製処理部５０は、元々存在するビットブリット指示に対応する書き込みビットブリット指示に基づく書き込み処理を、該当するスキャンラインに対して実行できる。
【０１０２】
このように、データ生成部３２は、ソース領域ＳＡＲＥおよびディスティネーション領域ＤＡＲＥの両方を指定したビットブリット指示を検出したとき、ビットブリット指示を読み出しビットブリット指示と書き込みビットブリット指示とに分ける。そして、データ生成部３２は、書き込みビットブリット指示に基づく書き込み処理が実行されるフレーム（図６では、次のフレーム）の前のフレーム（図６では、現在のフレーム）のシーンデータＳＤ１に読み出しビットブリット指示を含める。
【０１０３】
これにより、この実施形態では、互いに対応する読み出しビットブリット指示および書き込みビットブリット指示が１つのビットブリット指示として図形表示データＤＩＮに含まれているときにも、フレーム間でのビットブリット処理を実行できる。
【０１０４】
図６の動作では、読み出しビットブリット指示がスキャンラインの最後に追加されるため、ソース領域ＳＡＲＥの読み出しは、スキャンラインの描画結果に対して実行される。ビットブリット処理によるスクロール等の操作はフレームの描画結果に対して実行されるケースがほとんどである。このため、この実施形態では、ビットブリット処理によるスクロール等の操作に図６の動作を活用できる。なお、読み出しビットブリット指示および書き込みビットブリット指示が元々分かれているときには、読み出しビットブリット指示の挿入位置がスキャンラインの最後に限定されないため、スキャンラインの描画中にも、ソース領域ＳＡＲＥの読み出しを実行できる。
【０１０５】
データ生成部３２の動作は、この例に限定されない。例えば、データ生成部３２は、ビットブリット指示に基づいて生成した読み出しビットブリット指示を、ビットブリット指示が元々存在したフレームのシーンデータＳＤ１に反映してもよい。このときには、データ生成部３２は、ビットブリット指示に基づいて生成した書き込みビットブリット指示を、ビットブリット指示が元々存在したフレームの次のフレームのシーンデータＳＤ１に反映する。
【０１０６】
以上、この実施形態においても、図１−図３で説明した実施形態と同様の効果を得ることができる。例えば、この実施形態では、任意の領域の画像を複製する複製処理を含む描画処理に必要なメモリのメモリサイズを小さくできる。さらに、この実施形態では、画像処理装置１０Ａの描画部３０Ａは、データ生成部３２、シーンデータバッファ３４および画像生成部３６を有している。
【０１０７】
データ生成部３２は、スキャンライン単位で参照可能なシーンデータＳＤ１を生成する。画像生成部３６は、スキャンラインに描画される図形の画像データＰＤＡＴＡをシーンデータＳＤ１を参照して生成し、生成した画像データＰＤＡＴＡをスキャンライン単位で入力ラインバッファ４２に書き込む。このように、この実施形態では、シーンデータＳＤ１に格納された図形情報がスキャンライン単位で参照可能であるため、各スキャンラインに描画される図形の画像データＰＤＡＴＡを効率よく生成できる。
【０１０８】
また、図６の動作を実行するデータ生成部３２では、ソース領域ＳＡＲＥおよびディスティネーション領域ＤＡＲＥが１つのビットブリット指示で指定されているときにも、読み出しビットブリット指示と書き込みビットブリット指示とを別々のフレームのシーンデータＳＤ１に格納できる。これにより、この実施形態では、ソース領域ＳＡＲＥおよびディスティネーション領域ＤＡＲＥが１つのビットブリット指示で指定されているときにも、フレーム間でのビットブリット処理を実行できる。
【０１０９】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
スキャンラインに表示する画像の画像データを保持するラインバッファと、
画像の複製を指示する複製指示および図形の図形データを受ける入力部と、
前記図形データに基づいて生成した前記画像データをスキャンライン単位で前記ラインバッファに書き込む描画部と、
前記複製指示で指定される複製元の領域の前記画像データを保持するワークバッファと、
前記複製元の領域に対応する前記ラインバッファ上の領域の前記画像データを前記ワークバッファに書き込む第１複製処理と、前記複製指示で指定される複製先の領域に対応する前記ラインバッファ上の領域に前記ワークバッファに保持された前記画像データを書き込む第２複製処理との少なくとも一方を前記複製指示に基づいて実行する複製処理部と
を備えていることを特徴とする画像処理装置。
（付記２）
前記描画部は、
前記図形の図形情報を前記図形データに基づいて生成し、前記図形情報および前記複製指示を格納する参照データをフレーム毎に生成し、前記参照データを前記スキャンライン単位で参照可能にするデータ生成部と、
前記参照データ内の前記図形情報に基づいて前記画像データを生成し、前記画像データを前記ラインバッファに書き込む画像生成部と
を備えていることを特徴とする付記１記載の画像処理装置。
（付記３）
前記データ生成部は、前記複製元の領域および前記複製先の領域の両方を指定した複製指示を検出したとき、前記複製指示を前記第１複製処理用の第１複製指示と前記第２複製処理用の第２複製指示とに分け、前記第２複製処理が実行されるフレームの前のフレームの前記参照データに前記第１複製指示を含めること
を特徴とする付記２記載の画像処理装置。
（付記４）
前記描画部は、前記複製元の領域の前記画像データの量が前記ワークバッファの容量より大きいとき、警告を出力すること
を特徴とする付記１ないし付記３のいずれか１項に記載の画像処理装置。
（付記５）
前記データ生成部は、前記第１複製処理用の前記複製指示を検出したとき、前記第１複製処理用の前記複製指示を前記参照データに格納し、前記第２複製処理用の前記複製指示を検出したとき、前記第２複製処理用の前記複製指示を前記参照データに格納すること
を特徴とする付記２記載の画像処理装置。
【０１１０】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１１１】
１０、１０Ａ‥画像処理装置；２０‥入力部；３０、３０Ａ‥描画部；３２‥データ生成部；３４‥シーンデータバッファ；３６‥画像生成部；４０‥ラインバッファ部；４２ａ、４２ｂ‥ラインバッファ；５０‥複製処理部；６０‥ワークバッファ；７０‥表示部；ＤＩＳ‥表示面
【図１】
2014010520.tif 000003
【図２】
2014010520.tif 000004
【図３】
2014010520.tif 000005
【図４】
2014010520.tif 000006
【図５】
2014010520.tif 000007
【図６】
2014010520.tif 000008