(57)【要約】【課題】  データ転送量を低減でき、オブジェクトの描画時間を短縮すること。【解決手段】描画済の画像に、描画命令に基づく画像を上書き描画する画像処理装置は、フレームの描画命令を受信する受信部と、描画命令を解析して、描画済の画像内の領域のうち更新する部分領域を抽出する抽出部と、部分領域と、描画命令の受信よりも前の描画命令の解析により抽出された部分領域との和をとることで取得される領域を更新領域として管理する管理部と、描画済の画像を保持する描画バッファを有する格納部と、描画バッファから更新領域に対応する領域の描画済の画像を読み出し、描画命令に基づく画像と描画命令の受信よりも前に受信した描画命令に基づく画像とを、読み出した画像に上書き描画する描画部と、を備える。【選択図】  図１
2015125509.tif 000002
【特許請求の範囲】
【請求項１】
描画済の画像に、描画命令に基づく画像を上書き描画する画像処理装置であって、
フレームの描画命令を受信する受信手段と、
前記描画命令を解析して、描画済の画像内の領域のうち更新する部分領域を抽出する抽出手段と、
前記部分領域と、前記描画命令の受信よりも前に受信した描画命令の解析により抽出された部分領域との和をとることで取得される領域を更新領域として管理する管理手段と、
描画済の画像を保持する描画バッファを有する格納手段と、
前記描画バッファから前記更新領域に対応する領域の描画済の画像を読み出し、前記描画命令に基づく画像と前記描画命令の受信よりも前に受信した描画命令に基づく画像とを、前記読み出した画像に上書き描画する描画手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記描画手段の描画結果を前記描画バッファに書き込む出力制御手段を更に備え、
前記出力制御手段は、前記上書き描画された画像を、描画結果として前記描画バッファに書き戻すことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記格納手段は、フレーム毎に描画済の画像を保持する複数の描画バッファを有することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記描画命令の解析により取得されるオブジェクト情報を保持するデータ保持手段を更に備え、
前記描画手段は、
前記データ保持手段から前記描画命令の受信よりも前の描画命令の解析により得られたオブジェクト情報を取得し、
前記オブジェクト情報に基づく画像を、前記描画命令の受信よりも前に受信した描画命令に基づく画像として上書き描画する
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記管理手段は、フレーム毎に前記抽出手段で抽出された前記部分領域を登録するリストを有し、
前記管理手段は、前記リストを参照して前記リストに含まれる前記部分領域の和をとることで取得される領域を更新領域として管理することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記更新領域は、前記部分領域を含む矩形領域のバウンディングボックスであることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記描画手段は、前記描画バッファから読み出す画像は背景を示す描画済の画像であることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記抽出手段は、前記描画命令を解析して、オブジェクトが描画される座標、前記オブジェクトの形状、前記オブジェクトの色、他のオブジェクトとの階層関係を、オブジェクト情報として前記描画命令から抽出し、
前記抽出手段は、前記抽出の結果により、描画結果に現れないオブジェクトの描画領域を、前記更新する部分領域から除く
ことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
フレームの描画命令を受信する受信手段と、描画済の画像を保持する描画バッファを有する格納手段と、を有し、描画済の画像に、描画命令に基づく画像を上書き描画する画像処理装置の画像処理方法であって、
前記画像処理装置の抽出手段が、前記描画命令を解析して、描画済の画像内の領域のうち更新する部分領域を抽出する抽出工程と、
前記画像処理装置の管理手段が、前記部分領域と、前記描画命令の受信よりも前の描画命令の解析により抽出された部分領域と、の和をとることで取得される領域を更新領域として管理する管理工程と、
前記画像処理装置の描画手段が、前記描画バッファから前記更新領域に対応する領域の描画済の画像を読み出し、前記描画命令に基づく画像と前記描画命令の受信よりも前に受信した描画命令に基づく画像とを、前記読み出した画像に上書き描画する描画工程と、
を有することを特徴とする画像処理方法。
【請求項１０】
前記画像処理装置の出力制御手段が、前記描画工程の描画結果を前記描画バッファに書き込む出力制御工程を更に有し、
前記出力制御工程は、前記上書き描画された画像を、描画結果として前記描画バッファに書き戻すことを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
コンピュータを、請求項１乃至８のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクタグラフィックスアニメーションの描画を行うための画像処理技術に関する。
【背景技術】
【０００２】
アニメーションの描画に、ベクタグラフィックスを用いるシステムが普及している。表示デバイスの大画面化や高解像度化に伴い、画像の描画に用いるレンダラが取り扱うピクセル数は今後も増大が予想される。描画対象のピクセル数が多い場合、座標情報や色情報を用いて描画図形(オブジェクト)の形状を指示するベクタグラフィックスのほうが、ビットマップを用いるラスタグラフィックスと比較して描画指示に用いるデータが小さい。
【０００３】
ベクタグラフィックスアニメーションを描画するレンダラは、アニメーションを構成する各フレームを順に描画する。フレームの描画は、アニメーションの更新対象領域に含まれる要素をすべて再描画する方法のほかに、以前に描画した画像に現在のフレームで更新される差分を描画する方法がある。特許文献１には、ある描画領域の一部分のみが更新される場合に、更新されない描画領域の他の部分を描画しないことで描画負荷を軽減する構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３５４８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
描画ピクセル数の増大に伴い、レンダラが描画時に参照する画像データや、描画済みデータの出力に必要となるデータ転送量が増大している。ダブルバッファやマルチバッファを用いるシステムでは、描画済み画像や背景画像のコピーのためのデータ転送も発生する。
【０００６】
更新対象となる領域に含まれるオブジェクトをすべて再描画する方法であっても、再描画対象のオブジェクトがフィルタ処理やビットマップ画像の重ね合わせであれば、画像データへのアクセスを毎フレーム繰り返す必要がある。このようなオブジェクトの再描画が発生すると、再描画のためのデータ転送量が大きくなる。また、処理負荷が大きいオブジェクトの再描画は、性能低下の原因にもなる。
【０００７】
本発明は、上記の課題を鑑み、データ転送量を低減でき、オブジェクトの描画時間を短縮することが可能な画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一つの側面に係る画像処理装置は、描画済の画像に、描画命令に基づく画像を上書き描画する画像処理装置であって、
フレームの描画命令を受信する受信手段と、
前記描画命令を解析して、描画済の画像内の領域のうち更新する部分領域を抽出する抽出手段と、
前記部分領域と、前記描画命令の受信よりも前に受信した描画命令の解析により抽出された部分領域との和をとることで取得される領域を更新領域として管理する管理手段と、
描画済の画像を保持する描画バッファを有する格納手段と、
前記描画バッファから前記更新領域に対応する領域の描画済の画像を読み出し、前記描画命令に基づく画像と前記描画命令の受信よりも前に受信した描画命令に基づく画像とを、前記読み出した画像に上書き描画する描画手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、データ転送量を低減でき、オブジェクトの描画時間を短縮することが可能な画像処理技術を提供することを目的とする。複数のバッファに対する描画であっても、描画済みのイメージの全面コピーが不要となり、データ転送量を低減できる。また、描画済みのイメージが多数のオブジェクトやイメージ処理を含む場合に、すべてのオブジェクトを再描画する方法に比べて描画時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態にかかる画像処理装置の機能構成を示すブロック図。
【図２】実施形態の画像処理装置の動作を説明する図。
【図３】描画部の処理を説明する図。
【図４】データ保持部の処理を説明する図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１２】
図１は本実施形態にかかる画像処理装置の機能構成を示すブロック図である。
【００１３】
画像処理装置は、描画済の画像に、描画命令に基づく画像を上書き描画する。図１において、画像入力部１０１はベクタグラフィックス描画命令（以下、単に描画命令ともいう）を受信する。更新領域抽出部１０２は描画命令を解析して、描画済の画像内の領域のうち更新する部分領域を抽出する。更新領域抽出部１０２は現在のフレームの描画命令で描画される領域を更新する領域（部分更新の対象となる領域）を部分更新領域として描画命令から抽出する。更新情報管理部１０３は、更新領域抽出部１０２で抽出された部分更新の対象となる領域（部分更新領域）を管理する。更新情報管理部１０３は部分領域と、描画命令の受信よりも前の描画命令の解析により抽出された部分領域との和をとることで取得される領域を更新領域として管理する。
【００１４】
描画部１０４は描画命令に基づいて描画処理を行う。描画部１０４は描画バッファから更新領域に対応する領域の描画済の画像を読み出し、描画命令に基づく画像を読み出した画像に上書き描画する。
【００１５】
データ保持部１０５は、描画命令の解析により取得されるオブジェクト情報として、１フレーム前からｎ−1フレーム前迄の描画命令によって定義されたオブジェクトの再描画に必要となるオブジェクト情報群を保持する。描画部１０４はデータ保持部１０５からオブジェクト情報を取得し、描画バッファから読み出した更新領域に対応する領域の描画済の画像に、画像入力部１０１で受信した描画命令に基づく画像と、オブジェクト情報に基づく画像とを上書き描画する。
【００１６】
出力制御部１０６は、描画部１０４の描画結果をデータ格納部１０７の描画バッファに出力する。出力制御部１０６は、描画部１０４により上書き描画された画像を、描画結果として描画バッファに書き戻す。データ格納部１０７は描画部１０４の描画結果を格納する描画バッファを複数有する(ｎ面、ｎは２以上の自然数)。
【００１７】
本実施形態では、例として、データ格納部１０７が保持する描画バッファの面数ｎを２とし、２面の描画バッファをフレーム毎に切り替えて出力バッファとして使用する構成を説明する。尚、本発明の趣旨は、描画バッファの面数ｎが２である場合に限定されるものではく、２以上の場合であってもよい。例えば、描画バッファの面数ｎは、システムの要求に応じて３面以上としてもよい。描画バッファの面数ｎが２である場合、再描画対象のフレームは描画中のフレームから数えて１フレーム前のフレームのみとなる。例えば、描画バッファの面数ｎを３とした場合、再描画対象のフレームは描画中のフレームから数えて１フレーム前と２フレーム前の２フレームとなる。
【００１８】
以上のように構成された画像処理装置の動作を、図２〜図４を用いて説明する。  まず、図２を用いて画像処理装置の主要な動作を説明する。ステップ２０１で、描画部１０４は描画時に参照するオブジェクト情報群を初期化する。次に、ステップ２０２で、更新領域抽出部１０２は描画命令を解析してオブジェクトが描画される座標、形状や色、他のオブジェクトとの階層関係を、オブジェクト情報として描画命令から抽出する。
【００１９】
ステップ２０３で、更新領域抽出部１０２は、ステップ２０２で抽出したオブジェクト情報に基づき、更新すべき領域の有無を判定する。更新領域抽出部１０２は描画命令の各オブジェクトが最終的な描画結果に寄与するものか否かを判定する。例えば、描画バッファの領域外への描画や、透明色による描画は最終描画結果に現れないため、このようなオブジェクトの描画領域に対する描画命令はステップ２０３で以降の処理の対象から除く。この場合、更新すべき領域は無いものとして処理はステップ２０５に進められる。一方、ステップ２０３の判定で、オブジェクト情報に基づき、描画命令のオブジェクトが最終的な描画結果に現れ、最終的な描画結果に寄与するものである場合、更新すべき領域が有るものとして処理はステップ２０４に進められる。
【００２０】
ステップ２０４で、更新情報管理部１０３は、抽出されたオブジェクトを描画中のフレームの部分更新領域としてリストに追加、登録する。
【００２１】
ステップ２０５で、更新領域抽出部１０２は描画命令を解析して、描画命令が１フレームの処理の完了を通知するものか否かを判定する。１フレームの処理が完了していない場合、ステップ２０２に戻り、ステップ２０２からステップ２０４までの処理を繰り返す。一方、ステップ２０５の判定で、１フレームの描画命令が完了した場合、更新情報管理部１０３は、部分更新領域のリストの更新を完了し、ステップ２０６に進む。
【００２２】
ステップ２０６で、更新情報管理部１０３は、ステップ２０４で生成した部分更新領域のリストと、更新対象フレームである１フレーム前で生成した部分更新領域のリストとを参照する。そして、更新情報管理部１０３は、リストに含まれる部分更新領域のオブジェクトの和を取ることで取得される領域（和領域）を更新領域として取得する。更新情報管理部１０３は、各フレームで求めた部分更新領域のリストを、描画バッファの面数と同じフレーム数分（例えば、描画バッファの面数は２つの場合、２フレーム分）を保持する。
【００２３】
部分更新領域のリストを保持する他の実装方法として、例えば、データ保持部１０５が保持するオブジェクト情報群に部分更新領域のリストを含めてもよい。また、オブジェクト情報群に含まれる座標情報や色情報を用いて描画部１０４がフレーム毎に部分更新領域のリストを生成し、更新情報管理部１０３にリストを渡す構成としてもよい。ステップ２０４で生成する部分更新領域は、各描画命令が描く正確なオブジェクトの形状を用いず、オブジェクトが更新し得る領域（部分領域）をすべて含む矩形領域のバウンディングボックス等を用いてもよい。
【００２４】
本実施形態の構成は、描画バッファの面数が２であるダブルバッファであるため、描画開始後の２フレームを除き、２フレーム前の描画済画像が描画バッファに残っている。ステップ２０７で、描画部１０４は描画バッファから更新領域で定義される領域に対応する部分の描画済の画像を読み込む。描画部１０４は、読み込んだ描画済の画像を背景とし、データ保持部１０５が保持するオブジェクト情報群と、描画命令が指示するオブジェクトを順に上書きする。描画部１０４の具体的な動作内容は、後に図３を用いて説明する。描画部１０４により、描画済画像を背景として、オブジェクト情報群と描画命令が指示するオブジェクトとが上書きされると、出力制御部１０６は、読み込みを行った描画バッファに書き戻す。描画バッファへの書き戻しが終了すると、描画部１０４は描画済画像を読み込むバッファを次の描画バッファに切り替える。
【００２５】
２フレーム以上前の描画命令によって描画されたオブジェクトは、描画部１０４が描画バッファから描画済画像として背景を読み込むため、描画部１０４で再描画する必要がない。このため、ステップ２０８で、出力制御部１０６は後述する方法でデータ保持部１０５に残っている２フレーム前のオブジェクト情報群を削除する。ステップ２０９で、描画部１０４は描画を継続するか否かを判定する。次のフレームの描画が続く場合、ステップ２０２に処理を戻し、ステップ２０２以降、同様の処理を継続する。
【００２６】
一般に、ｎ面の描画バッファを順に切り替えて描画する場合、ｎフレーム前の描画命令により描画したオブジェクトが描画バッファに残っている。描画バッファに残っているオブジェクトは、背景として読み込むことで再描画に代えることができる。このため、データ保持部１０５は描画バッファを切り替える際にnフレーム前のオブジェクト情報群を削除する。
【００２７】
次に図３を用いてステップ２０７における描画部１０４の動作を説明する。  図３は、ｎフレーム前のオブジェクト情報群の削除を、描画部１０４が挿入したクリップレベルでクリッピングする方法によって行う方法を示す。このほかの構成として、オブジェクト情報群からｎ番目のフレーム（フレームｎ）（ｎは自然数）で描画されたオブジェクトを検索し、削除する方法をとってもよい。
【００２８】
ベクタグラフィックスの描画命令では、描画オブジェクトの変形指示行列や、オブジェクトの色やスタイルなどは、必ずしも各オブジェクトの描画時に明示的に指示されず、描画命令実行時に描画部１０４が保持している設定パラメータを参照する場合がある。設定パラメータは描画部１０４の初期化時に初期値に設定され、その後は描画命令により変更された設定を描画部１０４が保持する。このため、描画部１０４は、ｎ−1フレーム前のオブジェクトを再描画する場合、描画に先だってｎ−1フレームの描画開始時の描画部１０４の設定パラメータを復元する必要がある。描画部１０４は、ステップ３０１でデータ保持部１０５が保持するオブジェクト情報群から、ｎ−1フレーム前の描画部１０４の設定パラメータを取得する。
【００２９】
ステップ３０２で、描画部１０４は、画像入力部１０１が受信した描画命令によって定義されるオブジェクト情報を、順にデータ保持部１０５に出力して記憶させる。本実施形態では、データ保持部１０５に記憶させる更新対象フレームのオブジェクト情報群には、各フレームの描画命令と各フレームの描画開始時の設定パラメータの組み合わせが含まれる。このほかのオブジェクト情報群の構成例として、描画部１０４が各フレームの描画命令を解釈し、オブジェクトの形状や階層、色情報を有する中間データ形式に変換したものが含まれる。
【００３０】
ステップ３０３で、描画部１０４は１フレームの描画命令が完了していない場合はステップ３０２に処理を戻し、同様の処理を繰り返す。一方、ステップ３０３の判定で、すべての描画命令の処理が完了した場合、描画部１０４はステップ３０４に処理を進める。
【００３１】
ステップ３０４で、描画部１０４は、画像入力部１０１が受信した１フレームの命令の最後に、現在のフレームｍ（ｍは自然数）に対するクリップレベルの描画命令を追加する。クリップレベルにはｎ面の描画バッファから、いずれの描画バッファを識別可能な識別情報（ＩＤ）を付与される。ダブルバッファの場合、識別情報（ＩＤ）は２面のバッファを識別する１ビットのフラグであればよい。
【００３２】
ステップ３０５で、描画部１０４は、オブジェクト描画処理を行う。描画部１０４は、描画バッファから読みこんだ更新領域の描画済画像を背景とし、データ保持部１０５が保持している１フレーム前のオブジェクトと、描画命令が指示するオブジェクトを順に上書き描画する。描画バッファが３面の場合は識別情報（ＩＤ）として２ビットの値を用意し、２フレーム前以降に描画命令が指示したオブジェクトを順に上書きする。
【００３３】
ステップ３０６で、描画部１０４は、ｍ−ｎフレームのクリップレベルが存在しない場合、処理を終了する。描画部１０４はデータ保持部１０５と更新情報管理部１０３に描画完了を通知する。
【００３４】
一方、ステップ３０６の判定で、ｍ−ｎフレームのクリップレベルが存在する場合、描画部１０４は処理をステップ３０７に進める。ステップ３０７で、描画部１０４は、クリップレベルｍ−ｎ以下のオブジェクト情報を消去し、処理を終了する。
【００３５】
描画部１０４は、描画完了時の描画部１０４の設定パラメータをデータ保持部１０５に出力する。描画部１０４は描画バッファを次の描画バッファに切り替え、描画部１０４は１フレームの描画を完了する。
【００３６】
次に、図４を用いて、データ保持部１０５が行うオブジェクト情報群の更新処理を説明する。ステップ４０１で、データ保持部１０５は、ｍ−1フレーム目（前フレーム）の描画時に描画部１０４から出力された設定パラメータを、次のフレームｍの設定パラメータとして取得する。データ保持部１０５は、以降のステップで、フレームｍについて入力されるオブジェクト情報にこの設定パラメータを対応付けてオブジェクト情報群として記録する。
【００３７】
ステップ４０２で、データ保持部１０５は、現在のフレームｍのオブジェクト情報を取得し、ステップ４０１で取得した設定パラメータを対応付けて記録する。ステップ４０３で、データ保持部１０５は、描画部１０４から描画完了通知が出力されるのを待つ。
【００３８】
ステップ４０４で、データ保持部１０５は、ｎフレーム前のＩＤを持つクリップレベルをデータ保持部１０５が保持するオブジェクト情報群から検索する。ｎフレーム前のＩＤを持つクリップレベルがオブジェクト情報群に存在する場合、データ保持部１０５は処理をステップ４０５に進める。ステップ４０５で、データ保持部１０５は、ｎフレーム前のＩＤを持つクリップレベルと、同クリップレベルの描画命令以前に、データ保持部１０５に入力されたｎフレーム前の描画命令を削除する。また、ステップ４０６でｎフレーム前の描画命令に対応付けられたｎフレーム前の設定パラメータも削除する。
【００３９】
ステップＳ４０４の判定で、  ｎフレーム前のＩＤを持つクリップレベルがデータ保持部１０５にない場合、描画バッファには背景として利用可能なデータが存在しない。このため、データ保持部１０５はオブジェクト情報群の削除処理を行わず処理を終了する。
【００４０】
データ転送量を低減でき、オブジェクトの描画時間を短縮することが可能になる。複数のバッファを用いた描画であっても、描画済みのイメージの全面コピーが不要となり、データ転送量を低減できる。また、描画済みのイメージが多数のオブジェクトやイメージ処理を含む場合に、すべてのオブジェクトを再描画する方法に比べて描画時間を短縮することが可能になる。
【００４１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015125509.tif 000003
【図２】
2015125509.tif 000004
【図３】
2015125509.tif 000005
【図４】
2015125509.tif 000006