(57)【要約】【課題】効率よく描画処理を実行する。【解決手段】画像の描画処理に係る処理負荷を解析する解析手段と、前記解析手段で解析された処理負荷を示す負荷情報に基づいて、前記描画処理を実行する複数の描画手段における各々の処理負荷が均等となるように、前記描画処理に係る描画処理領域を分割して前記複数の描画手段に分配する分割手段と、を有することによって課題を解決する。【選択図】図１
2015121976.tif 000002
【特許請求の範囲】
【請求項１】
画像の描画処理に係る処理負荷を解析する解析手段と、
前記解析手段で解析された処理負荷を示す負荷情報に基づいて、前記描画処理を実行する複数の描画手段における各々の処理負荷が均等となるように、前記描画処理に係る描画処理領域を分割して前記複数の描画手段に分配する分割手段と、
を有する画像処理装置。
【請求項２】
前記解析手段は、前記画像から抽出されたオブジェクトのオブジェクト情報に基づいて、前記画像の描画処理に係る処理負荷を解析する請求項１記載の画像処理装置。
【請求項３】
前記オブジェクト情報に基づいて、前記オブジェクトの境界に係る境界情報を生成する生成手段を更に有し、
前記解析手段は、前記オブジェクト情報に含まれる前記オブジェクトの属性情報と、前記生成手段で生成された境界情報とに基づいて、前記画像の描画処理に係る処理負荷を解析する請求項２記載の画像処理装置。
【請求項４】
前記解析手段は、前記オブジェクトの属性情報と、前記境界情報に含まれる前記境界の描画処理に係る属性情報とに基づいて、オブジェクトの属性情報と、境界の描画処理に係る属性情報と、描画処理に係る負荷情報とが予め関連付けられた関連情報を参照することにより、前記画像の描画処理に係る処理負荷を解析する請求項３記載の画像処理装置。
【請求項５】
前記解析手段は、前記オブジェクトがベクタ図形であるか又はビットマップ図形であるかを示す前記オブジェクトの属性情報を含む前記オブジェクト情報と、前記境界情報とに基づいて、前記画像の描画処理に係る処理負荷を解析する請求項３又は４記載の画像処理装置。
【請求項６】
前記解析手段は、前記オブジェクト情報と、前記境界の高さに係る高さ情報を含む前記境界情報とに基づいて、前記画像の描画処理に係る処理負荷を解析する請求項３又は４記載の画像処理装置。
【請求項７】
前記分割手段は、前記解析手段で解析された処理負荷を示す負荷情報に基づいて、前記複数の描画手段における各々の処理負荷の差が最小となるように、前記描画処理領域を分割して前記複数の描画手段に分配する請求項１乃至６何れか１項記載の画像処理装置。
【請求項８】
画像処理装置が実行する情報処理方法であって、
画像の描画処理に係る処理負荷を解析する解析ステップと、
前記解析ステップで解析された処理負荷を示す負荷情報に基づいて、前記描画処理を実行する複数の描画手段における各々の処理負荷が均等となるように、前記描画処理に係る描画処理領域を分割して前記複数の描画手段に分配する分割ステップと、
を含む情報処理方法。
【請求項９】
コンピュータに、
画像の描画処理に係る処理負荷を解析する解析ステップと、
前記解析ステップで解析された処理負荷を示す負荷情報に基づいて、前記描画処理を実行する複数の描画手段における各々の処理負荷が均等となるように、前記描画処理に係る描画処理領域を分割して前記複数の描画手段に分配する分割ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、デジタル機器の高機能化に伴い、デジタル機器のユーザーインターフェースや家庭用ゲームに用いられるコンピュータグラフィックスは複雑化の一途をたどっている。上記のようなユースケースで用いられるコンピュータグラフィックスは、複数の描画処理装置により並列化して描画される手法が一般的になっている。例として、複数のコアを持つＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等があげられる。また、その際用いられる描画命令として、複数のグラフィックスライブラリ関数群が標準化されている。
複数の描画処理装置による並列化を行う際には、それぞれの装置における描画処理負荷を均等にすることが望ましい。なぜなら、不均等であると最も描画処理負荷が大きい描画処理装置が全体の描画処理性能のボトルネックとなってしまうからである。
この描画処理装置間の処理負荷の不均等を回避する技術が、特許文献１に開示されている。この技術では、各グラフィックスプロセッサが、コマンド分配器により入力された属性データ及びグラフィックスコマンドからそれぞれの処理負荷を計算し、処理負荷が閾値を超えた場合、過重状態であることを示す信号をコマンド分配器に出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２２２５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されている技術では、コマンドが分配された後に処理装置側であるグラフィックプロセッサが処理負荷を算出しているため、送付されたコマンドによる各グラフィックプロセッサの処理負荷の不均衡が生じる可能性がある。この不均衡が生じると、描画処理装置全体の処理時間は描画処理負荷が最も大きいグラフィックプロセッサの処理時間に律速してしまい、描画処理装置全体の性能が低下してしまう。
本発明は、効率よく描画処理を実行することを目的とする。
【課題を解決するための手段】
【０００５】
そこで、本発明の画像処理装置は、画像の描画処理に係る処理負荷を解析する解析手段と、前記解析手段で解析された処理負荷を示す負荷情報に基づいて、前記描画処理を実行する複数の描画手段における各々の処理負荷が均等となるように、前記描画処理に係る描画処理領域を分割して前記複数の描画手段に分配する分割手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、効率よく描画処理を実行することができる。
【図面の簡単な説明】
【０００７】
【図１】描画処理装置におけるハードウェア構成の一部の一例を示す図である。
【図２】描画対象の描画画像の一例を示す図である。
【図３】オブジェクト情報の一例を示す図である。
【図４】描画画像上に生成されるエッジの配置の一例を示す図である。
【図５】エッジ情報が含む情報の一例を示す図である。
【図６】処理負荷の基準値の一例を示す図である。
【図７】エッジ描画処理負荷情報の一例を示す図である。
【図８】描画領域の分割結果の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
＜実施形態１＞
図１は、本実施形態の描画処理装置１におけるハードウェア構成の一部の一例を示す図である。なお、描画処理装置は、画像処理装置の一例である。
描画処理装置１は、グラフィックス描画命令１０８を入力として受け付け、描画処理を行い、出力画像１０９を出力する。
本実施形態における描画処理装置１は、２つの描画部１０５及び描画部１０６を有しているが、３つ以上の描画部を有していてもよい。
描画命令解析部１０１は、入力されたグラフィックス描画命令１０８を解析することで、描画画像の構成要素である各オブジェクトの描画に関する描画情報を含むオブジェクト情報を抽出する。そして、描画命令解析部１０１は、抽出したオブジェクト情報１１０をエッジ情報生成部１０２に出力し、オブジェクト情報１１１を描画処理負荷解析部１０３に出力する。なお、オブジェクト情報１１０と、オブジェクト情報１１１とは、同一のオブジェクト情報である。オブジェクト情報の詳細については、図３等を用いて後述する。
【０００９】
エッジ情報生成部１０２は、オブジェクト情報１１０を受け付け、オブジェクト情報１１０に含まれる各オブジェクトの描画情報から最終的な出力画像の画素情報を形成する処理を行うためのエッジ情報を生成する。そして、エッジ情報生成部１０２は、エッジ情報１１２を描画処理領域分割決定部１０４に出力し、エッジ情報１１３を描画処理負荷解析部１０３に対して出力する。なお、エッジ情報生成部１０２と、エッジ情報１１３とは、同一のエッジ情報である。ここで、エッジ情報とは、オブジェクトの境界位置を示す境界位置情報と、その境界から始まる又はその境界で終わる描画処理の処理情報とを有する。本実施形態の描画部は、このエッジ情報を用いて描画処理を行う。エッジ情報の詳細については、図５等を用いて後述する。また、エッジ情報は、オブジェクトの境界に関する境界情報の一例である。
【００１０】
描画処理負荷解析部１０３は、オブジェクト情報１１１及びエッジ情報１１３を受け付け、エッジ情報に対応するオブジェクト情報を参照し、各エッジに対して必要となる描画処理を解析する。より具体的にいうと、描画処理負荷解析部１０３は、前記解析により、描画対象のオブジェクトの種類や前記オブジェクトに対する処理効果の種類等、エッジに起因する描画処理の負荷に影響のある要素を解析する。ここでは、前記解析された要素に関する情報を、オブジェクトの属性情報という。例えば、オブジェクトの種類としては、ベクタ図形やビットマップ図形等がある。また、オブジェクトに対する処理効果の種類としては、アンチエイリアシング処理やフィルタ処理等がある。描画処理負荷解析部１０３は、以上の処理により、各エッジに対する描画処理負荷を算出し、エッジ描画処理負荷情報１１４として描画処理領域分割決定部１０４に対して出力する。
【００１１】
描画処理領域分割決定部１０４は、エッジ情報１１２及びエッジ描画処理負荷情報１１４を受け付け、描画処理装置１が有する複数の描画部における描画処理負荷が平準化されるように各描画部が描画処理を担当する描画処理領域を決定する。即ち、描画処理領域分割決定部１０４は、各描画部の処理負荷が均等となるように、各描画部が担当する描画処理領域を決定する。そして、描画処理領域分割決定部１０４は、前記決定に基づいて描画処理領域を分割し、各描画部に領域分割後エッジ情報として出力する。より具体的にいうと、描画処理領域分割決定部１０４は、領域分割後エッジ情報１１５を描画部１０５に出力し、領域分割後エッジ情報１１６を描画部１０６に出力する。
描画部１０５は、受け付けた領域分割後エッジ情報１１５に基づいて描画処理を行い、部分画像１１７を出力部１０７に対して出力する。同様に、描画部１０６は、受け付けた領域分割後エッジ情報１１６に基づいて描画処理を行い、部分画像１１８を出力部１０７に対して出力する。ここでいう描画処理は、描画部が入力されたエッジ情報に基づいて各エッジに起因する画素をラスタ方向に順次生成していく処理である。例えばあるエッジがベクタ図形を構成するエッジである場合、描画部は、そのベクタ図形を構成する色情報を順次画素情報に落とし込んでいく。一方、あるエッジがビットマップ図形を構成するエッジである場合、描画部は、必要となるビットマップ図形をメモリから読み出し、必要となる付加処理を施し、描画結果である画素を順次出力する。
出力部１０７は、受け付けた部分画像１１７と、部分画像１１８とを組み合わせて１画面とすることで１つの画像を生成し、出力画像１０９を出力する。
【００１２】
以上、本実施形態における描画処理装置１のハードウェア構成の一部について説明した。なお、上述した描画命令解析部１０１、エッジ情報生成部１０２、描画処理負荷解析部１０３、描画処理領域分割決定部１０４、描画部１０５、描画部１０６及び出力部１０７は、ソフトウェアで構成されていてもよい。即ち、描画処理装置１のＣＰＵが記憶領域に記憶されているプログラムを実行することにより実現されるソフトウェアで構成されていてもよい。
【００１３】
次に、実際の描画例を用いて、本実施形態における描画処理装置１の処理（情報処理）について説明する。
図２は、描画対象の描画画像の一例を示す図である。
描画画像２００には、ベクタ図形２０１からベクタ図形２０５まで、ビットマップ図形２０６からビットマップ図形２０９までが配置されている。
まず、描画命令解析部１０１における処理について説明する。
描画命令解析部１０１がグラフィックス描画命令１０８を解析して生成したオブジェクト情報１１０及びオブジェクト情報１１１を、オブジェクト情報３００として図３に示す。図３は、オブジェクト情報の一例を示す図である。
オブジェクト情報３００は、各オブジェクト３０１に対して、そのオブジェクトの描画に関する属性（ベクタ図形であるか、ビットマップ図形であるか）を示すオブジェクト属性情報（以下、単にオブジェクト属性という）３０２を含む。ここで、オブジェクトの描画に関する属性としては、上述したように、ベクタ図形やビットマップ図形があげられる。また、オブジェクト情報３００は、各オブジェクト３０１に対して、そのオブジェクトの配置位置を示す位置情報３０３、フィルタリング処理等の付加処理内容を示す付加処理情報３０４を含む。更に、オブジェクト情報３００は、各オブジェクト３０１に対して、そのオブジェクトのベクタ図形の形状情報やビットマップ図形のメモリ上での格納ポインタ等、オブジェクトの描画に必要な描画情報３０５を含む。
描画命令解析部１０１は、上記の処理により生成したオブジェクト情報３００を、オブジェクト情報１１０としてエッジ情報生成部１０２に出力し、また、オブジェクト情報１１１として描画処理負荷解析部１０３に出力する。
【００１４】
次に、エッジ情報生成部１０２における処理について説明する。
エッジ情報生成部１０２がオブジェクト情報１１０から生成するエッジ情報を図４及び図５に示す。
図４は、描画画像４００上に生成されるエッジの配置の一例を示す図である。
描画画像４００では、水平方向の左から右にｘ座標を、垂直方向の上から下にｙ座標をとるものとする。エッジ情報生成部１０２は、あるオブジェクトを形成する境界の中で垂直方向成分を持つ境界を直線となる単位で分解する。また、各エッジは必ずオブジェクトの始まりか終わりの何れかを形成することになり、エッジ情報は、その旨の情報を含む。描画部は、エッジ情報に基づいて、描画画像の左上端から順にラスタ方向にたどって行くことで、画像を描画することができる。
【００１５】
エッジ情報生成部１０２は、図２に示したベクタ図形２０１からエッジ４０１及びエッジ４２６を生成し、ベクタ図形２０２から、エッジ４０２からエッジ４０９までを生成する。また、エッジ情報生成部１０２は、ベクタ図形２０３から、エッジ４１０からエッジ４１５までを生成し、ベクタ図形２０４から、エッジ４１６からエッジ４２１までを生成する。また、エッジ情報生成部１０２は、ベクタ図形２０５から、エッジ４２２からエッジ４２５までを生成する。また、エッジ情報生成部１０２は、ビットマップ図形２０６から、エッジ４２７及びエッジ４３３を生成し、ビットマップ図形２０７から、エッジ４２９及びエッジ４３１を生成する。また、エッジ情報生成部１０２は、ビットマップ図形２０８から、エッジ４２８及びエッジ４３４を生成し、ビットマップ図形２０９から、エッジ４３０及びエッジ４３２を生成する。このように、エッジ情報生成部１０２は、オブジェクトがベクタ図形であるか、ビットマップ図形であるかに応じてエッジを生成することができる。
【００１６】
エッジ情報１１２及びエッジ情報１１３をエッジ情報５００として図５に示す。図５は、エッジ情報５００が含む情報の一例を示す図である。
エッジ情報５００には、各エッジ５０１に対して、そのエッジがどのオブジェクトから生成されたかを示す親オブジェクト情報（以下、単に親オブジェクトという）５０２を含む。また、エッジ情報５００には、エッジの開始位置である始点ｘ座標５０３及び始点ｙ座標５０４を示す始点座標情報、エッジの終端位置である終点ｘ座標５０５及び終点ｙ座標５０６を示す終点座標情報を含む。更に、エッジ情報５００には、エッジが形成するオブジェクトの左端となるのか右端となるのかを示すエッジ属性情報（以下、単にエッジ属性という）５０７を含む。
エッジ情報生成部１０２は、上記の処理により生成したエッジ情報５００を、エッジ情報１１２として描画処理領域分割決定部１０４に対して出力し、また、エッジ情報１１３として描画処理負荷解析部１０３に出力する。
【００１７】
次に、描画処理負荷解析部１０３における処理について説明する。
描画処理負荷解析部１０３は、エッジ情報生成部１０２から受信したエッジ情報１１３に含まれる各エッジに対して、描画命令解析部１０１から受信したオブジェクト情報１１１を基に、それぞれのエッジの処理負荷を算出する。
処理負荷の算出においては、オブジェクトの属性と、エッジの属性とに応じた処理負荷の基準値を予め定めておく必要がある。本実施形態における描画例では、図６に示すようなテーブル６００で基準値が予め設定されているものとする。図６は、処理負荷の基準値に関するテーブルの一例を示す図である。
より具体的には、描画処理装置１の記憶領域に、テーブル６００のようなエッジ属性６０１と、オブジェクト属性６０２と、エッジの単位高さ当たりの処理負荷の負荷情報（以下、単に処理負荷という）６０３とが関連付けられた関連情報が予め記憶されている。ここで、エッジ属性６０１は、エッジ情報５００のエッジ属性５０７に対応する。また、オブジェクト属性６０２は、オブジェクト情報３００のオブジェクト属性３０２に対応する。
【００１８】
ここで、単位高さ当たりの処理負荷６０３として設定した値について説明する。エッジ属性が下向き（左端）でオブジェクト属性がベクタであるエッジの場合、そのベクタ画像を形成する色情報の生成処理と、そのベクタを形成するエッジに対する境界処理とが生じる。また、エッジ属性が上向き（右端）でオブジェクト属性がベクタであるエッジの場合、そのベクタを形成するエッジに対する境界処理が生じる。また、エッジ属性が下向き（左端）でオブジェクト属性がビットマップである場合、そのビットマップの画像のコピー、即ち、読み出し処理と、書き込み処理を開始するための処理と、そのビットマップ図形の端部に対する境界処理とが生じる。また、エッジ属性が上向き（右端）でオブジェクト属性がビットマップである場合、そのビットマップの読み出し処理と、書き込み処理を終了するための処理と、そのビットマップ図形の端部に対する境界処理とが生じる。本実施形態の描画例では、それぞれの場合における単位高さ当たりの処理負荷を図６の処理負荷６０３に示す値とした。単位高さ当たりとしているのは、描画部がラスタ方向順に描画処理を行う際にエッジの高さ分の処理をするため、描画処理負荷解析部１０３が各エッジの高さに応じて処理負荷を算出することができるようにするためである。
【００１９】
これにより、描画処理負荷解析部１０３は、エッジの高さに応じて処理負荷を算出することができる。より具体的にいうと、描画処理負荷解析部１０３は、描画対象のエッジ属性と、オブジェクト属性とに基づいて、テーブル６００から単位高さ当たりの処理負荷６０３に関する情報を取得する。そして、描画処理負荷解析部１０３は、描画対象のエッジの高さと、取得した単位高さ当たりの処理負荷６０３とから、処理負荷を算出する。
なお、図６の数値は描画処理装置の実装方法により変化する。例えば、ベクタ図形形成用のＨＷ回路を実装したシステムであれば、前記ＨＷ回路を実装していない場合と比べて、オブジェクト属性がベクタである場合の処理負荷がよりも少なくなる。また、ビットマップ図形のメモリ読み出しと、書き込みとにおけるメモリレイテンシが小さいシステムであれば、前記メモリレイテンシが大きい場合と比べて、オブジェクト属性がビットマップである場合の処理負荷は少なくなる。そのため、単位高さ当たりの処理負荷６０３の値は、本実施形態の処理を実施する環境等に応じて任意に設定することができる値である。
【００２０】
図７は、エッジ描画処理負荷情報の一例を示す図である。ここでは、図１を用いて説明したエッジ描画処理負荷情報１１４をエッジ描画処理負荷情報７００として図７に示す。
エッジ描画処理負荷情報７００は、各エッジ７０１に対して、高さ７０２、エッジ属性７０３、オブジェクト属性７０４、単位高さ当たりの処理負荷７０５、エッジ当たりの処理負荷７０６に関する情報を含んでいる。
高さ７０２は、エッジの始点ｙ座標と、終点ｙ座標とから算出された値である。エッジ属性７０３、オブジェクト属性７０４及び単位高さ当たりの処理負荷７０５は、それぞれ上述した通りである。エッジ当たりの処理負荷７０６は、高さ７０２と、単位高さ当たりの処理負荷７０５との積により算出される値である。
描画処理負荷解析部１０３は、各エッジのエッジ描画処理負荷情報７００を、エッジ描画処理負荷情報１１４として描画処理領域分割決定部１０４に対して出力する。なお、エッジ描画処理負荷情報７００のうち、実際に描画処理領域分割決定部１０４が処理に要する情報は、各エッジ７０１と、エッジ当たりの処理負荷７０６とに関する情報である。そのため、実際には、描画処理負荷解析部１０３は、エッジ描画処理負荷情報７００のうち、各エッジ７０１と、エッジ当たりの処理負荷７０６とに関する情報を出力するようにすればよい。
【００２１】
次に、描画処理領域分割決定部１０４における処理について説明する。
描画処理領域分割決定部１０４は、エッジ情報１１２と、エッジ描画処理負荷情報１１４とに基づいて、描画処理装置１が有する複数の描画処理部が描画するエッジの分配を決定する。描画処理領域分割決定部１０４は、エッジ情報１１２と、エッジ描画処理負荷情報１１４に含まれる各エッジの処理負荷とにより、各描画処理部に分配するエッジの処理負荷の総和の差が最少となるように分配を決定する。また、描画処理領域分割決定部１０４は、描画処理領域を水平方向分割することで分配を行うため、エッジの分配を必ずｘ座標の昇順で整列したまま行わなければならない。
本実施形態の描画例では、描画処理領域分割決定部１０４は、図７に示したエッジ描画処理負荷情報７００におけるエッジ当たりの処理負荷７０６より、各描画処理部に分配するエッジの処理負荷の総和の差が最少となるように分配を決定する。
図８は、エッジの分配結果、即ち、描画領域の分割結果の一例を示す図である。
領域８０１に含まれるエッジ情報が、描画処理領域分割決定部１０４が描画部１０５に出力する領域分割後エッジ情報１１５となる。また、領域８０２に含まれるエッジ情報が、描画処理領域分割決定部１０４が描画部１０６に出力する領域分割後エッジ情報１１６となる。
以上の処理により、描画処理領域分割決定部１０４は、描画処理装置が有する複数の描画部における各々の処理負荷の差が最小となるように描画処理領域を分割して分配することができる。
描画部１０５、描画部１０６及び出力部１０７における処理については図１を用いて上述したため、詳細な説明を省略する。
【００２２】
以上、本実施形態によれば、複数の描画処理部を有する描画処理装置１は、描画処理負荷の平準化により、描画処理部間の処理負荷の不均衡を解消し、描画処理全体の性能を向上することができる。
【００２３】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２４】
以上、上述した各実施形態によれば、描画処理装置１は、効率よく描画処理を実行することができる。
【００２５】
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2015121976.tif 000003
【図２】
2015121976.tif 000004
【図３】
2015121976.tif 000005
【図４】
2015121976.tif 000006
【図５】
2015121976.tif 000007
【図６】
2015121976.tif 000008
【図７】
2015121976.tif 000009
【図８】
2015121976.tif 000010