JP2009075888A - 描画処理装置及びその方法、プログラム、記録媒体 - Google Patents

描画処理装置及びその方法、プログラム、記録媒体 Download PDF

Info

Publication number
JP2009075888A
JP2009075888A JP2007244446A JP2007244446A JP2009075888A JP 2009075888 A JP2009075888 A JP 2009075888A JP 2007244446 A JP2007244446 A JP 2007244446A JP 2007244446 A JP2007244446 A JP 2007244446A JP 2009075888 A JP2009075888 A JP 2009075888A
Authority
JP
Japan
Prior art keywords
drawing processing
command
priority
groups
command unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007244446A
Other languages
English (en)
Other versions
JP2009075888A5 (ja
Inventor
Tatsuya Takechi
辰哉 武市
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2007244446A priority Critical patent/JP2009075888A/ja
Priority to US12/173,167 priority patent/US20090079763A1/en
Publication of JP2009075888A publication Critical patent/JP2009075888A/ja
Publication of JP2009075888A5 publication Critical patent/JP2009075888A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【課題】 演算資源が限られていても、優先度の高い描画処理命令による描画に関するコマ落ちを防ぎ、品質の高い描画処理を実行可能な技術を提供する。
【解決手段】 複数の描画処理命令を入力して描画処理を行う描画処理装置は、前記複数の描画処理命令を複数の描画命令群にグループ化し、前記複数の描画命令群のそれぞれに対して描画処理命令を実行するための演算資源を割り当て、前記複数の描画命令群毎に、割り当てた演算資源を使用して、描画命令群に含まれる描画処理命令に基づいて描画処理を行い画像を生成し、生成した画像を前記複数の描画命令群毎に記憶手段に格納し、前記記憶手段に前記複数の描画命令群毎に格納された画像を合成する。ただし、より優先度の高い前記描画命令群に対して、より大きな演算資源を割り当てる。
【選択図】 図2

Description

本発明は、描画処理装置及びその方法、プログラム、記録媒体に関する。
従来、一連の描画処理命令が入力され、順次描画処理を実行するものとして、Painter's algorithmと呼ばれる描画アルゴリズムが一般的に知られている。Painter's algorithmは、1つの描画用バッファに対して、入力された描画処理命令の順に上書き処理を行うことによって、1フレーム分の静止画を生成するというものである。アニメーションのような動的に変化する表示を実現するには、描画処理命令のパラメータを変更してから一連の描画処理命令を入力することを繰り返し行う。
Painter's algorithmの概要について図13を参照して説明する。図13は、Painter's algorithmについて説明した模式図である。
図13(a)は、入力される一連の描画処理命令の一例を示している。図13(a)では、多角形描画処理命令、楕円描画処理命令、動画描画処理命令、矩形描画処理命令の順に描画処理命令が入力される例が示されている。
図13(b)は、図13(a)に例示した描画処理命令が順に入力された場合に実行する描画処理を模式的に示している。Painter's algorithmに従うと、まず多角形描画処理命令を受信し(ステップ1301)、描画する(ステップ1302)。次に楕円描画処理命令を受信し(ステップ1303)、描画する(ステップ1304)。次に動画描画処理命令を受信し(ステップ1305)、描画する(ステップ1306)。最後に矩形描画処理命令を受信し(ステップ1307)、描画する(ステップ1308)。これらステップ1301〜1308の処理により、1フレーム分の描画が完了する。
一方、動画とグラフィックスをコンピュータ上で混在して合成して表示させる技術が知られている。一般的には、動画データとグラフィックスデータが独立して存在し、入力された動画データを変換し、グラフィックスの上に重ねて、モニタに表示している(特許文献1参照)。
特開2005−321481号公報
しかし、一連の描画処理命令が入力され、順次描画処理を実行するのに、Painter's algorithmをそのまま実行すると、描画処理命令の中に時間のかかる処理が含まれていた場合に、いわゆるコマ落ちが発生する場合があった。例えば、動画のフレームレートよりも表示のフレームレートが低くなり、動画がいわゆるコマ落ちを起こすことがあった。このことについて図14を参照して説明する。図14は、Painter's algorithmの課題を説明した模式図である。
図14(a)はコマ落ちが発生する様子を説明した模式図である。動画がある一定のフレームレートで再生されており、1フレーム当たりの時間をΔT1とし、描画装置が1フレーム描画するのにかかる時間をΔT2とする。ΔT2>ΔT1となった場合、時刻t0でNフレーム目を表示した次に表示を行うのがN+2フレーム目になり、N+1フレーム目が飛ばされる可能性がある。
また、表示するコンテンツに重要なグラフィックスのアニメーションが含まれていた場合に、アニメーションの効果が適切に表示されないことがあった。図14(b)は、アニメーションの効果が適切に表示されない状況を説明した模式図である。
図14(b)では、グラフィックスのアニメーションが、時間ΔT1ごとに点滅を繰り返すように設定されている。描画装置が1フレームの描画にかかる時間をΔT2とし、ΔT2>ΔT1が成立するとき、時刻T0で表示されていたグラフィックスが、次の描画のタイミングである時刻T0+ΔT2においても表示状態となっている。しかしΔT2の時間内にグラフィックスが非表示にならなければならないため、実質的にコマ落ちのような現象が発生してしまう。
これらの現象は、描画処理装置の演算資源が、要求された描画処理を実行するのに十分でないことに起因するものである。
本発明は上記課題に鑑みなされたものであり、演算資源が限られていても、優先度の高い描画処理命令による描画に関するコマ落ちを防ぎ、品質の高い描画処理を実行可能な技術を提供することを目的とする。
上記目的を達成するため、本発明による描画処理装置は以下の構成を備える。即ち、
複数の描画処理命令を入力して描画処理を行う描画処理装置であって、
前記複数の描画処理命令を複数の描画命令群にグループ化するグループ化手段と、
前記複数の描画命令群のそれぞれに対して、描画処理命令を実行するための演算資源を割り当てる割当手段と、
前記複数の描画命令群毎に、前記割当手段が割り当てた演算資源を使用して、描画命令群に含まれる描画処理命令に基づいて描画処理を行い、画像を生成する生成手段と、
前記生成手段が生成した画像を、前記複数の描画命令群毎に記憶手段に格納する格納手段と、
前記記憶手段に前記複数の描画命令群毎に格納された画像を合成する合成手段と、
を備え、
前記割当手段は、より優先度の高い前記描画命令群に対して、より大きな演算資源を割り当てる
ことを特徴とする。
本発明によれば、演算資源が限られていても、優先度の高い描画処理命令による描画に関するコマ落ちを防ぎ、品質の高い描画処理を実行可能な技術を提供することができる。
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。また、本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
<<実施形態1>>
以下、本発明の実施形態1について、図面を参照しながら説明する。
〔ハードウェア構成〕
まず、本実施形態に係る描画処理装置200のハードウェア構成について、図1を参照して説明する。図1は本実施形態に係る描画処理装置200のハードウェア構成について説明したブロック図である。
図1において、CPU102は、描画処理装置200が装備している各機能を実行、制御する。ROM103は読み出し専用メモリであり、変更を必要としないプログラムや各種パラメータを格納する。RAM104は書き込み可能メモリであり、SDRAM、DRAMなどによって構成され、外部装置などから供給されるプログラムやデータを一時記憶する。
表示ユニット105はプログラムによって描画された表示画面をディスプレイへ出力する。バス101は、システムバスであって、CPU102、ROM103、RAM104、表示ユニット105を接続する。
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
本実施形態では、本実施形態に係るプログラムをROM103に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU102で実行する例を想定するが、これに限られない。例えば、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているROM103からRAM104にロードするようにしてもよい。
また、本実施形態では、説明の便宜のため、本実施形態に係る描画処理装置200を1つの装置で実現した構成について述べるが、複数の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、描画処理装置200上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。
〔機能構成〕
次に、本実施形態に係る描画処理装置200の機能構成について、図2を用いて説明する。図2は描画処理装置200の機能構成を示すブロック図である。図2のように、描画処理装置200は以下の機能ブロックを備える。
・プログラムの実行によって呼び出される描画処理命令を受信する描画処理命令受信部201。
・受信した描画処理命令をグループ化し、複数の描画処理命令単位(描画命令群)を生成する描画処理命令単位生成部202。
・生成された描画処理命令単位毎(描画命令群毎)にRAM104上に描画バッファを確保する描画バッファ確保部203。
・描画処理命令単位を実行し、描画バッファへの描画処理を実行する描画処理命令単位実行部204。
・描画処理命令単位を優先度によって制御する描画処理命令単位制御部205。
・複数生成された描画バッファを1つに合成する描画バッファ合成部206。
・合成結果を外部モニタに出力する合成結果出力部207。
〔全体処理〕
次に、本実施形態に係る描画処理装置200が実行する処理について、図3を参照して説明する。図3は、描画処理装置200の処理の流れを示すフローチャートである。描画処理装置200は、ビデオ(動画像)データの描画処理命令(動画像描画処理命令)とグラフィックスデータ(図形)の描画処理命令(図形描画処理命令)を順次受信する。ここでは、ビデオの再生がコマ落ちしないよう、ビデオの描画命令の優先順位を高くして描画処理を行う場合について説明する。以下の各ステップの処理は、CPU102の制御に基づいて行われる。なお、描画処理装置200は、静止画を描画する静止画描画処理命令も入力してもよい。また、図形描画処理命令には、時間経過に従って図形が変化するアニメーション処理が含まれてもよい。
はじめに、描画処理命令を受信する(ステップS301)。図4は、入力される描画処理命令と、それらに対する処理について説明した模式図であり、図4(a)は描画処理命令のシーケンスを例示している。
図4(a)の例では、多角形描画処理命令401、楕円描画処理命令402、ビデオ(動画)描画処理命令403、矩形描画処理命令404の順に描画処理命令が呼び出される。それぞれの描画処理命令を実行した場合の描画内容を、描画領域と共に図示すると図4(b)のようになる。なお、これらの描画処理命令は時間経過と共に変化するアニメーションを含んでいてもよい。
次に、各描画処理命令をグループ化し、描画処理命令単位を生成する(ステップS302)。ここでは、ビデオの描画処理命令の優先順位を高くするので、ビデオ描画の命令の前後でグループに分ける。すなわち、ビデオ描画の命令の前に呼び出される一連の描画処理命令を一つのグループ、ビデオ描画の描画処理命令を一つのグループ、ビデオ描画の命令の後に呼び出される一連の描画処理命令を一つのグループに分ける。そして、各グループを描画処理命令単位とする。なお、描画処理装置は、描画処理命令の種類毎に優先度を記憶する優先度記憶部(不図示)を備えており、ここ記憶された優先度に基づいて、グループ化した描画処理命令単位の優先度を決定する優先度決定処理を行う。
具体的には、図4(c)に示したように、まずビデオ描画処理命令403より前に呼び出される多角形描画処理命令401と楕円描画処理命令402をグループ化し、描画処理命令単位Eaとする。次にビデオ描画処理命令403を描画処理命令単位Ebとする。次に、ビデオ描画処理命令403より後に呼び出される矩形描画処理命令404を描画処理命令単位Ecとする。
次に、それぞれの描画処理命令単位に対して描画用のバッファをRAM104に確保する(ステップS303)。図4(c)の例では、描画処理命令単位Eaに対応する描画バッファを描画バッファBa410、描画処理命令単位Ebに対応する描画バッファを描画バッファBb411、描画処理命令単位Ecに対応する描画バッファを描画バッファBc412としている。
次に、目標フレームレートを設定する(ステップS304)。例えば、優先順位の高い描画処理命令を含んだ描画処理命令単位によって描画処理される画像をコマ落ちなく表示するためのフレームレートを目標フレームレートとして設定する。ここでの例ではビデオの描画処理命令の優先順位が高いため、ビデオ描画処理命令403を含んだ描画処理命令単位Ebによって描画処理されるビデオをコマ落ちなく表示するために、ビデオのフレームレートを目標フレームレートとして設定する。
次に、各描画処理命令単位を起動する(ステップS305)。ここでは、各描画処理命令単位をそれぞれ別個のスレッドとし、各スレッドに対して描画処理命令を実行するための演算資源を割り当てる割当処理を行う。本実施形態では、CPU時間を細かく分割して各スレッドに割り当てる。これにより、各描画処理命令単位の処理を並列に実行し、描画処理命令単位に含まれる描画処理命令に基づいて描画処理を行った結果生成される画像を描画バッファに格納する。
ここで、描画処理命令単位がそれぞれ実行する処理について、図5を参照して説明する。図5はステップS305において起動された各描画処理命令単位の一連の処理の流れを示したフローチャートである。
まず、描画処理命令単位の更新回数を0にクリアする(ステップS501)。次に描画処理命令単位を実行し、対応する描画バッファに描画する(ステップS502)。即ち、描画処理命令により描かれる画像を対応する描画バッファに格納する。次に、タイマーシグナルの受信待機を行う(ステップS503)。ここでタイマーシグナルは、ステップS304で決定した目標フレームレートに基づいて、一定の間隔で送信されるシグナルである。描画処理装置200は時刻を計時し、タイマーシグナルを生成する計時手段(不図示)を備えており、各描画処理命令単位は、この計時手段からタイマーシグナルを受信する。
続いて更新回数を1加算する(ステップS504)。そして、描画処理命令単位の実行を停止、終了するように信号が送られるまでステップS502〜ステップS504の処理を繰り返す(ステップS505)。以上の処理を、描画処理命令単位毎に並列かつ非同期に実行する。
図3の説明に戻る。ステップS305における各描画処理命令単位の起動を終えると、次に各描画処理命令単位に対するCPU時間の割り当ての初期値を設定する(ステップS306)。ここでは初期化処理として、すべての描画処理命令単位に対し、均一のCPU時間を割り当てる。
次に、各描画処理命令単位に対応した描画バッファの合成を行う(ステップS307)。すなわち、描画バッファBa410に格納された画像、描画バッファBb411に格納された画像、描画バッファBc412に格納された画像を順に合成する。そして、その合成した結果をRAM104に格納する。
描画バッファの合成の詳細について、図6を参照して説明する。図6は、描画バッファを合成する手順について示した模式図である。
まず、合成結果を格納するための出力用バッファ611をRAM104上に確保し、描画バッファBa410の内容(画像)を出力用バッファ611に転送しコピーする(ステップ601)。次に、出力用バッファ611上に描画バッファBb411の内容(画像)を上から合成する(ステップ602)。次に、描画バッファBc412の内容(画像)を出力用バッファ511上に合成する(ステップ603)。これらの処理を行うことによって、1フレーム出力するためのフレーム合成結果612を取得する。
図3の説明に戻る。ステップS307における描画バッファの合成を終えると、次にタイマーシグナルを受信するまで待機する(ステップS308)。ただし、タイマーシグナルは、ステップS304で決定した目標フレームレートに基づき、一定の間隔で生成されるシグナルである。ステップS308でタイマーシグナルを受信すると、合成結果出力部207へ出力する(309)。
次に、各描画処理命令単位に配分するCPU時間を計算する(ステップS310)。以下、描画処理命令単位へのCPU時間の配分方法について、図7に示したフローチャートに従って説明する。図7は、描画処理命令単位へCPU時間を配分する処理の流れを示したフローチャートである。ここでは描画処理命令単位Ebの優先度が高いため、描画処理命令単位Ebに配分するCPU時間を計算する場合について説明する。
まず、図5のフローチャートのステップS501およびステップS504においてRAM104上に格納される描画処理命令単位Ebの更新回数を取得する(ステップS701)。
次に、前回に各処理へのCPU時間割り当て決定処理(ステップS308)が行われたときの描画処理命令単位Ebの更新回数を取得する(ステップS702)。もしステップS308の処理が1回目であれば、取得する値は0である。
次に、描画処理命令単位Ebの更新処理が完了しているかどうかを、ステップS701とステップS702で取得した値を比較して判定する(ステップS703)。すなわち、ステップS701で取得した値がステップS702で取得した値を上回っている場合は、更新回数が変化しているため、描画処理命令単位Ebの更新処理が完了していると判定する。一方、両者の値が一致する場合は、更新回数が変化していないため、更新処理は完了していないと判定する。
なお、図5のように、更新回数のカウントアップ(S504)は、描画処理命令単位を実行した後にタイマーシグナルを受信してから行う(S502、S503)。一方で、図7の処理(図3のS310)もタイマーシグナルに同期して行う(S308)。従って、ステップS703で更新処理が完了していないことは、タイマーシグナル、即ち、描画処理命令単位に含まれる各描画処理命令で規定されるフレームレートに合わせて、描画処理命令単位が実行できていないことを示している。このため、本実施形態では、フレームレートに合わせて、描画処理命令単位が実行できず、画像を生成できなかった場合は、それに応じて、描画処理命令単位にそれぞれ割り当てられたCPU時間の割り当てを更新する処理を行う。これにより、CPU時間の割り当てを最適化することができる。
図8は、図7のステップS701〜S703における処理を説明した模式図である。描画処理命令単位Ebはタイマーシグナルを時間ΔT間隔で受信している。描画処理命令単位Ebが1フレーム分の描画を行うのにかかる処理時間をTとする。TはCPUが描画処理命令単位Ebのために消費した時間Jを描画処理命令単位EbのCPU使用率Rで割ったものである。ここでは、2ΔT≧T>ΔTとなる場合について説明する。
まず描画処理命令単位Ebは、シグナル801を受信して、描画処理命令単位を実行する。このときのシグナル802は描画処理命令単位を実行中であるため、無視される。シグナル803を受信したときには描画処理命令単位の実行を完了しているので、更新回数を1加算し、N+1とする(図5のステップS504)。
一方、ステップS310におけるCPU時間割り当て決定処理は、ステップS308で受信するタイマーシグナルと同期して行われ、その間隔はΔTである。シグナル801が発生する時刻をTsし、更新回数取得を行う時刻をt(Ts<t<Ts+ΔT)とする。
例えば、図8では、時刻tにおいて取得する更新回数はNであり、前回取得した更新回数はN−1である。このため、ステップS703において描画処理命令単位Ebの更新処理が完了していると判断することになる。
また、図8では、時刻t+ΔTにおいて、取得する更新回数はNであり、前回取得した更新回数もNである。このため、ステップS703において描画処理命令単位Ebの更新処理が完了していないと判断することになる。なお、T<ΔTであれば、更新回数取得時に毎回描画処理命令単位Ebの更新処理が完了していることになる。
図7に戻り、ステップS703において、描画処理命令単位Ebの更新処理が完了していないと判定された場合(ステップS703でNO)はステップS704へ進み、完了していると判定された場合(ステップS703でYES)はステップS705へ進む。
ステップS704では、描画処理命令単位Ebに対するCPU使用率の割り当てを増加させ、各描画処理命令単位のCPU使用率の再割り当てを行う。
図9はCPU使用率の割り当てを増加させる方法について説明した模式図である。図9の例の初期状態では、ステップS305において、3つの描画処理命令単位に対して均一に割り当てられているので、各描画処理命令単位のCPU使用率はそれぞれ1/3である。この場合、ステップS704において、描画処理命令単位Eaおよび描画処理命令単位EcのCPU使用率をそれぞれ1/4に減少させ、描画処理命令単位EbのCPU使用率を1/2にする。
2回目以降にステップS703で同じように更新処理が完了していないと判定をされた場合は、描画処理命令単位EbのCPU使用率を更に増加させる。ステップS703での判定の時点での描画処理命令単位Eaおよび描画処理命令単位EcのCPU使用率が1/M、描画処理命令単位EbのCPU使用率が(M−2)/Mであるとする。この場合、描画処理命令単位Eaおよび描画処理命令単位EcのCPU使用率を1/(M+1)、描画処理命令単位EbのCPU使用率を(M−1)/(M+1)にする。
描画処理命令単位Ebがフレーム分の描画を行うのにかかった処理時間をT、CPUが描画処理命令単位Ebのために消費した時間をJ、描画処理命令単位EbのCPU使用率をRとすると、J=T×Rが成立しており、Jが不変あるいはほぼ一定とする。この場合、CPU使用率Rを増加させることによってTを減少させることができる。
なお、CPU時間の割り当てを更新する方法は、ここに例示したものに限られない。例えば、CPU時間を増加させる必要がある場合、CPU時間を一定の割合(例えば、10%)ずつ増加させてもよい。
次に、ステップS701で取得した描画処理命令単位Ebの更新回数を保存し、ステップS310の処理を完了する。プログラムの終了処理が行われるまでステップS307からステップS310の処理を繰り返し行う。
上記のように、本実施形態の構成は、優先度に基づいて各描画処理命令単位に描画処理を行うための演算資源を割り当てる。このため、演算資源が限られていても、優先度の高い描画処理命令による描画に関するコマ落ちを防ぎ、品質の高い描画処理を実行可能である。従って、以上の処理により、ビデオをコマ落ちすることなく表示することが可能になる。
また、本実施形態では、描画処理命令を複数の描画処理命令単位にグループ化し、各描画処理命令単位の優先度に基づいて描画処理を行うための演算リソースを割り当てる。このため、グラフィックスと動画1つのコンテンツの中に混在し、それらを描画するときに、1フレームごとに一連の描画処理命令として入力され、入力された順に描画処理を行う場合も、品質の高い描画処理を行うことができる。
なお、描画処理命令を描画処理命令単位にグループ化せずに、描画処理命令毎に、その優先度に基づいて、描画処理命令を実行するための演算資源を割り当て、描画処理を行うようにしてもよい。この場合も、演算資源が限られていても、優先度の高い描画処理命令による描画に関するコマ落ちを防ぎ、品質の高い描画処理を実行可能である。
また、本実施形態では、連続する1以上の前記描画処理命令を1つの描画処理命令単位にグループ化する。このため、描画処理順序を維持することができる。
ここで、上記構成の効果について、図10を用いて説明する。図10(a)、(b)、(c)は本実施形態の構成による効果を説明するための模式図である。
図10(a)において、描画処理命令単位Eaが1フレーム分の描画を完了するのに要するCPU時間をTaとする。同様に、描画処理命令単位Ebが1フレーム分の描画を完了するのに要するCPU時間をTv、描画処理命令単位Ecが1フレーム分の描画を完了するのに要するCPU時間をTbとする。図3のステップS304において設定された目標フレームレートから求まる1フレーム当たりの時間をΔTとすると、ΔT<Ta+Tv+Tbの場合、すべての描画処理命令単位を時間ΔT以内に完了させることはできない。
そこで、時間ΔTを時分割し、各処理に均等に割り当てたのが図10(b)である。図10(b)のように、時分割したCPU時間のうち、描画処理命令単位Ebに割り当てたものを集めても、Tvより小さくなる場合は、ΔT内に処理を完了できない。一方で優先順位の低い、例えば描画処理命令単位Eaに割り当てたCPU時間を集めてもTaより大きくなる。
そこで、CPU時間の割り当てを変更したのが図10(c)に示した模式図である。例えば描画処理命令単位Eaに割り当てたCPU時間を集めてもTaより小さくなり、ΔT内に処理を完了しない。しかし、優先順位の高い描画処理命令単位Ebに割り当てたものを集めると、Tvよりも大きくなり、ΔT内に処理を完了させることが可能になる。
なお、本実施形態では、単一のビデオ描画処理命令と複数のグラフィックス描画処理命令が入力され、ビデオ描画処理命令を優先度の高い描画処理命令であるとし、ビデオ描画処理命令にCPU時間を多く割り当てるための方法について説明した。しかし、入力される描画処理命令の種類や優先順位の高低は、これに限られない。例えば、入力される描画処理命令がすべてグラフィックス描画処理命令であり、その中の1つが優先度の高い描画処理命令であるとしても構わない。また、入力される描画処理命令がビデオ描画処理命令であり、その中の1つが優先度の高い描画処理命令であるとしても構わない。
また、本実施形態では入力される描画処理命令の中に、単一の優先度の高い描画処理命令が含まれている場合について説明したが、優先度の高い描画処理命令は複数含まれていてもよく、さらに優先度を細かく設定してもよい。
図11(a)は、多段階の優先度が与えられた描画処理命令が、描画処理命令A、描画処理命令B、描画処理命令C、描画処理命令D、描画処理命令E、描画処理命令Fの順に入力されることを示した模式図である。ここで、優先度は数値が大きい方が、優先度が高いとする。
図11(a)のように入力された描画処理命令は、図3におけるステップS302の描画処理命令単位へのグループ化処理によって、優先度が同じで、連続した描画処理命令がグループ化される。グループ化の結果は、図11(b)のようになる。すなわち、描画処理命令Aと描画処理命令Bはともに優先度1で、入力が連続しているので描画処理命令単位Epとしてグループ化される。描画処理命令Cと描画処理命令Dはともに優先度2で、入力が連続しているので描画処理命令単位Eqとしてグループ化される。描画処理命令Eは単独で描画処理命令単位Erとされ、描画処理命令単位Fも単独で描画処理命令単位Esされる。
また、それぞれの描画処理命令単位に対して描画用バッファをRAM104に確保する。具体的には、描画バッファBp、描画バッファBq、描画バッファBr、描画バッファBsを確保する。
さらに、各描画処理命令単位の優先度は、グループに含まれる描画処理命令の優先度の和であるとする。従って、描画処理命令単位Epには1×2=2、描画処理命令単位Eqには2×2=4、描画処理命令単位Erには1、描画処理命令単位Esには3の優先度を割り当てる。
図3の各描画処理命令単位へのCPU時間割り当て決定処理(ステップS310)において、まずCPU時間割り当ての初期値として、各描画処理命令単位の優先度の値の比で割り当てる。例えば、描画処理命令単位Epは全体の2/10、描画処理命令単位Eqは全体の4/10、描画処理命令単位Erは全体の1/10、描画処理命令単位Esは全体の3/10のCPU時間を占めるように配分する。これを図示したものが図12(a)である。
優先度の高い描画処理命令単位Esの1フレーム分の描画時間内に処理を完了しない場合、CPU時間の再割り当てを行う。ここでは、各描画処理命令単位のCPU時間割り当ての比を、各描画処理命令単位が含んでいる描画処理命令の優先度をそれぞれ2乗して和を計算したものを用いる。
上記の例では、描画処理命令A、Bの優先度をそれぞれ12=1として、描画処理命令単位Epの優先度を12×2=2とする。同様に、描画処理命令C、Dの優先度をそれぞれ22=4として、描画処理命令単位Eqの優先度を22×2=8とする。描画処理命令Eの優先度をそれぞれ12=1として、描画処理命令単位Erの優先度を12=1とする。描画処理命令Fの優先度をそれぞれ32=9として、描画処理命令単位Esの優先度を32=9とする。
これにより、描画処理命令単位Epは全体の2/20、描画処理命令単位Eqは全体の8/20、描画処理命令単位Erは全体の1/20、描画処理命令単位Esは全体の9/20のCPU時間が与えられる。これにより、優先度の高い描画処理をコマ落ちすることなくフレームレートを維持して行うことができる。
<<その他の実施形態>>
なお、上記実施形態では、処理を開始してからフレームレートに合わせて描画処理命令単位を実行できなかった場合に、優先度に基づいてCPU時間の割り当てを更新していくが、初めから割り当ててもよい。例えば、描画処理命令又は描画処理命令単位に対するCPU時間の割当を、はじめからその優先度に基づいて増減しておいてもよい。
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
尚、本発明の目的は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成してもよい。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、次のものが含まれる。即ち、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)等が含まれる。
その他、プログラムの供給形態としては、次のようなものも考えられる。即ち、クライアント装置のブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明に係るコンピュータプログラム、或いは、圧縮され自動インストール機能を含むファイルをHD等の記録媒体にダウンロードする形態も考えられる。また、本発明に係るプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、次のような供給形態も考えられる。即ち、まず、本発明に係るプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報の使用により暗号化されたプログラムを実行してコンピュータにインストールさせて本発明に係る構成を実現する。このような供給形態も可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、次のような実現形態も想定される。即ち、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づいても前述した実施形態の機能が実現される。即ち、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
以上のように、描画処理装置200によれば、一連の描画処理命令が入力され、順次描画処理を実行するのに、アニメーションや動画を描画するときにコマ落ちを防ぐことによって、高品位なアニメーション表示や動画表示が可能となる。
描画処理装置のハードウェア構成について説明したブロック図である。 描画処理装置の機能構成を示すブロック図である。 描画処理装置の処理の流れを示すフローチャートである。 入力される描画処理命令と、それらに対する処理について説明した模式図である。 各描画処理命令単位の一連の処理の流れを示したフローチャートである。 描画バッファを合成する手順について示した模式図である。 描画処理命令単位へCPU時間を配分する処理の流れを示したフローチャートである。 図7のステップS701〜S703における処理を説明した模式図である。 CPU使用率の割り当てを増加させる方法について説明した模式図である。 本実施形態の構成による効果を説明するための模式図である。 描画処理命令、描画処理命令単位の一例を示す模式図である。 各描画処理命令単位に対するCPU使用率の割り当てを示す模式図である。 Painter's algorithmについて説明した模式図である。 Painter's algorithmの課題を説明した模式図である。

Claims (12)

  1. 複数の描画処理命令を入力して描画処理を行う描画処理装置であって、
    前記複数の描画処理命令を複数の描画命令群にグループ化するグループ化手段と、
    前記複数の描画命令群のそれぞれに対して、描画処理命令を実行するための演算資源を割り当てる割当手段と、
    前記複数の描画命令群毎に、前記割当手段が割り当てた演算資源を使用して、描画命令群に含まれる描画処理命令に基づいて描画処理を行い、画像を生成する生成手段と、
    前記生成手段が生成した画像を、前記複数の描画命令群毎に記憶手段に格納する格納手段と、
    前記記憶手段に前記複数の描画命令群毎に格納された画像を合成する合成手段と、
    を備え、
    前記割当手段は、より優先度の高い前記描画命令群に対して、より大きな演算資源を割り当てる
    ことを特徴とする描画処理装置。
  2. 描画命令群に含まれる各描画処理命令で規定されるフレームレートに合わせて前記生成手段が画像を生成できなかったことに応じて、前記複数の描画命令群にそれぞれ割り当てられた演算資源の割り当てを更新する更新手段を更に備えることを特徴とする請求項1に記載の描画処理装置。
  3. 前記グループ化手段は、連続する1以上の前記描画処理命令を1つの描画命令群にグループ化することを特徴とする請求項1又は2に記載の描画処理装置。
  4. 前記グループ化手段は、優先度の等しい前記描画処理命令を同じ描画命令群にグループ化することを特徴とする請求項3に記載の描画処理装置。
  5. 前記複数の描画処理命令には、図形を描画する図形描画処理命令と、動画像を描画する動画描画処理命令と、静止画を描画する静止画描画処理命令と、の少なくともいずれかが含まれることを特徴とする請求項1乃至4のいずれか1項に記載の描画処理装置。
  6. 前記図形描画処理命令には、時間経過に従って図形が変化するアニメーション処理が含まれることを特徴とする請求項5に記載の描画処理装置。
  7. 前記複数の描画処理命令には動画像を描画する動画描画処理命令が含まれ、
    前記動画描画処理命令を含む描画命令群の優先度は、他の描画命令群の優先度よりも大きい
    ことを特徴とする請求項1乃至4のいずれか1項に記載の描画処理装置。
  8. 前記描画処理命令の種類毎に優先度を記憶する優先度記憶手段と、
    前記優先度記憶手段に記憶された優先度に基づいて、前記グループ化手段がグループ化した描画命令群の優先度を決定する優先度決定手段と、
    を更に備え、
    前記割当手段は、前記優先度決定手段が決定した描画命令群の優先度に基づいて、前記演算資源を割り当てる
    ことを特徴とする請求項1乃至7のいずれか1項に記載の描画処理装置。
  9. 複数の描画処理命令を入力して描画処理を行う描画処理装置であって、
    前記複数の描画処理命令のそれぞれに対して、描画処理命令を実行するための演算資源を割り当てる割当手段と、
    前記複数の描画処理命令毎に、前記割当手段が割り当てた演算資源を使用して描画処理命令に基づいて描画処理を行い、画像を生成する生成手段と、
    前記生成手段が生成した画像を、前記複数の描画処理命令毎に記憶手段に格納する格納手段と、
    前記記憶手段に前記複数の描画処理命令毎に格納された画像を合成する合成手段と、
    を備え、
    前記割当手段は、より優先度の高い前記描画処理命令に対して、より大きな演算資源を割り当てる
    ことを特徴とする描画処理装置。
  10. 複数の描画処理命令を入力して描画処理を行う描画処理装置の描画処理方法であって、
    前記複数の描画処理命令を複数の描画命令群にグループ化するグループ化工程と、
    前記複数の描画命令群のそれぞれに対して、描画処理命令を実行するための演算資源を割り当てる割当工程と、
    前記複数の描画命令群毎に、前記割当工程において割り当てた演算資源を使用して、描画命令群に含まれる描画処理命令に基づいて描画処理を行い、画像を生成する生成工程と、
    前記生成工程において生成した画像を、前記複数の描画命令群毎に記憶手段に格納する格納工程と、
    前記記憶手段に前記複数の描画命令群毎に格納された画像を合成する合成工程と、
    を備え、
    前記割当工程においては、より優先度の高い前記描画命令群に対して、より大きな演算資源を割り当てる
    ことを特徴とする描画処理方法。
  11. コンピュータを請求項1乃至9のいずれか1項に記載の描画処理装置として機能させるためのプログラム。
  12. 請求項11に記載のプログラムを格納したコンピュータで読み取り可能な記録媒体。
JP2007244446A 2007-09-20 2007-09-20 描画処理装置及びその方法、プログラム、記録媒体 Withdrawn JP2009075888A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007244446A JP2009075888A (ja) 2007-09-20 2007-09-20 描画処理装置及びその方法、プログラム、記録媒体
US12/173,167 US20090079763A1 (en) 2007-09-20 2008-07-15 Rendering processing device and its method, program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007244446A JP2009075888A (ja) 2007-09-20 2007-09-20 描画処理装置及びその方法、プログラム、記録媒体

Publications (2)

Publication Number Publication Date
JP2009075888A true JP2009075888A (ja) 2009-04-09
JP2009075888A5 JP2009075888A5 (ja) 2010-08-19

Family

ID=40471124

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007244446A Withdrawn JP2009075888A (ja) 2007-09-20 2007-09-20 描画処理装置及びその方法、プログラム、記録媒体

Country Status (2)

Country Link
US (1) US20090079763A1 (ja)
JP (1) JP2009075888A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110073324A (zh) * 2016-10-31 2019-07-30 Ati科技无限责任公司 用于在桌面环境中动态地减少应用程序渲染到屏幕上时间的方法设备
JP2021026577A (ja) * 2019-08-07 2021-02-22 三菱電機株式会社 制御装置、演算装置、制御方法、及び制御プログラム
CN117215426A (zh) * 2023-01-28 2023-12-12 荣耀终端有限公司 一种显示方法及电子设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5430083B2 (ja) * 2008-06-12 2014-02-26 キヤノン株式会社 画像処理装置及び画像処理方法
US8332608B2 (en) * 2008-09-19 2012-12-11 Mediatek Inc. Method of enhancing command executing performance of disc drive
US8723886B2 (en) * 2010-09-08 2014-05-13 Navteq B.V. Generating a multi-layered geographic image and the use thereof
CN102043631A (zh) * 2010-12-31 2011-05-04 富泰华工业(深圳)有限公司 窗口控制系统及其控制方法
US10417306B1 (en) * 2013-01-03 2019-09-17 Amazon Technologies, Inc. Determining load completion of dynamically updated content
JP5466786B1 (ja) * 2013-08-28 2014-04-09 株式会社 ディー・エヌ・エー 画像処理装置及び画像処理プログラム
US9734798B2 (en) * 2015-03-17 2017-08-15 Dreamworks Animation Llc Timing-based scheduling for computer-generated animation
CN105741227A (zh) * 2016-01-26 2016-07-06 网易(杭州)网络有限公司 渲染方法和装置
WO2019228497A1 (en) * 2018-05-31 2019-12-05 Huawei Technologies Co., Ltd. Apparatus and method for command stream optimization and enhancement
CN109739505B (zh) * 2019-01-08 2019-11-29 网易(杭州)网络有限公司 一种用户界面的处理方法和装置
CN112784200A (zh) * 2021-01-28 2021-05-11 百度在线网络技术(北京)有限公司 页面数据处理方法、装置、设备、介质和计算机程序产品
EP4292039A1 (en) * 2021-02-12 2023-12-20 Qualcomm Incorporated Composition strategy searching based on dynamic priority and runtime statistics

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPM701394A0 (en) * 1994-07-22 1994-08-18 Monash University A graphical display system
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6064393A (en) * 1995-08-04 2000-05-16 Microsoft Corporation Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline
US6016150A (en) * 1995-08-04 2000-01-18 Microsoft Corporation Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110073324A (zh) * 2016-10-31 2019-07-30 Ati科技无限责任公司 用于在桌面环境中动态地减少应用程序渲染到屏幕上时间的方法设备
JP2020502553A (ja) * 2016-10-31 2020-01-23 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置
JP7198202B2 (ja) 2016-10-31 2022-12-28 エーティーアイ・テクノロジーズ・ユーエルシー デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置
CN110073324B (zh) * 2016-10-31 2023-08-15 Ati科技无限责任公司 用于在桌面环境中动态地减少应用程序渲染到屏幕上时间的方法设备
JP2021026577A (ja) * 2019-08-07 2021-02-22 三菱電機株式会社 制御装置、演算装置、制御方法、及び制御プログラム
CN117215426A (zh) * 2023-01-28 2023-12-12 荣耀终端有限公司 一种显示方法及电子设备

Also Published As

Publication number Publication date
US20090079763A1 (en) 2009-03-26

Similar Documents

Publication Publication Date Title
JP2009075888A (ja) 描画処理装置及びその方法、プログラム、記録媒体
JP4383853B2 (ja) 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
JP4568711B2 (ja) 複数のグラフィックス処理装置を用いたビデオ処理
WO2020207251A1 (zh) 图像更新方法、装置、终端及存储介质
WO2020207250A1 (zh) 垂直同步方法、装置、终端及存储介质
KR100668002B1 (ko) 그래픽 문맥 관리자를 구비하는 그래픽스-렌더링 엔진을갖는 장치, 방법, 및 시스템
KR102628899B1 (ko) 다중-헤드 마운트 디스플레이 가상 현실 구성에서의 디스플레이 맞추기
JP5545555B2 (ja) 三次元コンピュータ映像を発生するシステムのためのメモリマネージメントの改良
JP4372043B2 (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
JP5300438B2 (ja) 画像処理装置、画像処理方法及びプログラム
US8259123B2 (en) Image processing apparatus
WO2022048097A1 (zh) 一种基于多显卡的单帧画面实时渲染方法
KR101475544B1 (ko) 공유 메모리 풀을 사용한 디지털 데이터 관리
US9984651B2 (en) Method and apparatus for displaying composition screen image by composing screen images of operating systems (OSs)
TW202024866A (zh) 飛行中適應性注視點顯像
US8364865B2 (en) Data simulation using host data storage chain
US20130063463A1 (en) Real-time atlasing of graphics data
US9830880B1 (en) Method and system for adjusting the refresh rate of a display device based on a video content rate
KR20140145584A (ko) 재생속도 변경이 가능한 실시간 온라인 비디오 재생 방법 및 시스템
JP4789777B2 (ja) タスクの分配方法および情報処理装置
US20150189012A1 (en) Wireless display synchronization for mobile devices using buffer locking
CN114237532A (zh) 基于Linux嵌入式系统的多窗口实现方法、装置及介质
JP4011082B2 (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
JP2006092217A (ja) メモリ制御方法、グラフィックプロセッサおよび情報処理装置
JP2007206255A (ja) 表示制御装置及び負荷分散方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100702

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100702

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110812