JP6349908B2 - データ処理方法、データ処理装置及びプログラム - Google Patents

データ処理方法、データ処理装置及びプログラム Download PDF

Info

Publication number
JP6349908B2
JP6349908B2 JP2014088101A JP2014088101A JP6349908B2 JP 6349908 B2 JP6349908 B2 JP 6349908B2 JP 2014088101 A JP2014088101 A JP 2014088101A JP 2014088101 A JP2014088101 A JP 2014088101A JP 6349908 B2 JP6349908 B2 JP 6349908B2
Authority
JP
Japan
Prior art keywords
unit
period
image
data processing
images
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.)
Active
Application number
JP2014088101A
Other languages
English (en)
Other versions
JP2015206931A (ja
Inventor
正明 野呂
正明 野呂
岳生 村上
岳生 村上
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014088101A priority Critical patent/JP6349908B2/ja
Priority to US14/631,173 priority patent/US9875517B2/en
Publication of JP2015206931A publication Critical patent/JP2015206931A/ja
Application granted granted Critical
Publication of JP6349908B2 publication Critical patent/JP6349908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/10Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Power Sources (AREA)

Description

本願は、データ処理方法、データ処理装置及びプログラムに関する。
ノート型コンピュータやスマートフォン等の携帯端末においては、バッテリーによる駆動を維持するために、消費電力を抑制する技術が開発されている。携帯端末にて消費される電力の一つに、ディスプレイに表示させる画像のデータ作成を行うプロセッサの消費電力が含まれる。例えばスマートフォン上で起動するアプリケーションソフトウェアがディスプレイ上の画像を更新する場合、スマートフォンが有するプロセッサは、新たな画像データの作成処理を行い、作成された画像データに基づき、新しい画像をディスプレイに表示する。画像の更新は、所定の時間間隔で発行される垂直同期信号等の同期信号に同期して行われる。
同期信号に同期して更新される画像データを作成するプロセッサの消費電力を抑制する技術として、実行すべき画像データの作成処理が次の同期信号の発行前に完了した場合に、プロセッサの動作モードを低消費電力モードに切り替える技術がある。これにより、次の同期信号が発行されるまでの期間の消費電力を削減することができる(例えば、特許文献1参照)。
特開2005−62798号公報
上述した特許文献1には、単位期間の終了よりも前に、その期間内に処理すべき画像データの処理が完了した場合は、プロセッサを低消費電力モードへ移行させることが記載されている。しかし特許文献1には、処理すべき画像データの処理が全て完了したことを認識する具体的な方法についての開示がなされていない。そのため、特許文献1に開示された方法は、消費電力を抑制する技術として十分な利便性があるとは言えない。
本願は、単位期間内に実行されるべき画像データの処理が完了したと判定できる場合に、プロセッサの消費電力を抑制することを目的とするものである。
開示の技術の一観点によれば所定の時間間隔で発行される同期信号に同期して画像を作成する処理を行うプロセッサを制御するデータ処理装置によって行われるデータ処理方法であって、前記所定の時間間隔の一つに対応する第1期間に前記プロセッサによって時系列に作成された第1画像の数を測定する工程と、前記第1画像の数に基づいて、前記第1期間に続く第2期間に前記プロセッサによって実行される第2画像の作成処理の終了タイミングを予測する工程と、前記第2期間が開始された後、前記第2期間に前記プロセッサによって時系列に作成された前記第2画像の数をカウントする工程と、前記第2画像の数に基づいて、前記終了タイミングが経過したかを判定する工程と、前記終了タイミングが経過したと判定された場合、前記プロセッサの動作モードを、少なくとも前記第2期間が終了するまで、前記画像を作成している間の動作モードの電力消費よりも電力消費が低い動作モードに切り替える工程とを有する。
本願の技術により、所定期間内に実行されるべき画像データの処理が全て完了したと判定された場合に、画像データ処理を行うプロセッサの動作モードを変更することにより、消費電力を抑制することができる。
第1実施例で使用する用語の定義について説明する図である。 第1実施例における表示装置のハードウェア構成図である。 第1実施例におけるグラフィックデータ処理部の動作モードと、グラフィックデータ処理部にて消費される電力等との関係を示す図である。 第1実施例における画像作成処理、合成処理及び画面表示処理に関する処理手順を示す図である。 図4に示した処理に、図3に示した動作モードを対応付けて示す図である。 単位期間毎に作成された画像の数の測定例を示す図である。 第1実施例におけるCPUの機能ブロック図である。 第1実施例において、複数の画像が作成される場合の処理タイミングについて説明する図である。 第1実施例における各アプリによる画像作成処理の詳細を示す図である。 第1実施例における合成処理部の機能ブロック図である。 第1実施例における画像作成処理終了通知部の機能ブロック図である。 第1実施例における完了判定部の機能ブロック図である。 第1実施例におけるモード管理部の機能ブロック図である。 第1実施例における合成処理部の処理フローチャートである。 第1実施例における画像作成終了通知部の処理フローチャートである。 第1実施例における完了判定部の処理フローチャートである。 第1実施例におけるモード管理部の処理フローチャートである。 第1実施例において、データ処理が終了したと判定された場合にグラフィックデータ処理部の動作モードを休止モードとした場合の様子を示す図である。 第1実施例における用語の定義について説明する図である。 各Vsyncの発行タイミングと、画像作成処理と合成処理の実行タイミングの関係を示す図である。 第2実施例における合成処理部の処理フローチャートである。 第3実施例におけるCPUの機能ブロック図である。 第3実施例における統計処理部の機能ブロック図である。 第3実施例における統計処理部の処理フローチャートである。 第3実施例における完了判定部及び統計処理部の処理フローチャートである。 第3実施例におけるカウント値に対する出現頻度の分布の一例を示す図である。 第3実施例の変形例における統計処理部の機能ブロック図である。 第3実施例の変形例における統計処理部の処理フローチャートである。 第3実施例の変形例におけるカウント値に対する出現頻度の分布の一例を示す図である。 第4実施例におけるモード管理部の機能ブロック図である。 単位期間に含まれる4つの状態を説明する図である。 第4実施例において、状態記憶部が記憶する値と、状態記憶部が記憶する値に対応する状態と、各状態であることを認定するための条件との関係を示す図である。 第4実施例におけるモード管理部の処理フローチャートである。 第4実施例におけるモード管理部の処理フローチャートである。 第4実施例の変形例におけるモード管理部の機能ブロック図である。 第4実施例の変形例におけるモード管理部の処理フローチャートである。 単位期間毎に作成された画像の数及び的中率の挙動の例を示す図である。 第5実施例におけるCPUの機能ブロック図である。 第5実施例における変動判定部の機能ブロック図である。 第5実施例における完了判定部及び変動判定部の処理フローチャートである。 第5実施例における変動判定部の処理フローチャートである。
<第1実施例>
本実施例では、ある垂直同期信号(以下、Vsync)から次に発行されるVsyncまでの期間(以下、単位期間)内に処理されるべき画面作成に関するデータ処理が完了したと判定するための具体的な手法を開示する。画面作成に関するデータ処理が完了したと判定することにより、プロセッサを休止させることができる期間を適切に認識することができ、表示装置の消費電力を抑制することができる。
図1は、第1実施例で使用する用語の定義について説明する図である。図1は、表示装置1として、スマートフォン等のような携帯端末を例示するものである。表示装置1の表示部であるディスプレイ2の全体に表示される像を「画面」と呼ぶ。ディスプレイ2上には一枚の「画面」が表示され、Vsyncが毎秒60回発行される場合であれば、毎秒60枚の「画面」がディスプレイ上で順次更新される。但し、静止画の状態であれば「画面」の内容は更新されず、同一内容の「画面」が一定時間表示される。
一枚の「画面」には、アプリケーションソフトウェア(以下、アプリ)が個別に描画する像3が含まれる。個々のアプリが描画する像3のそれぞれを「画像」と呼ぶ。図1に示す例では、一つの「画面」内に三つのアプリのそれぞれが「画像」を表示している。個々のアプリが描画した「画像」を合成することにより、ディスプレイ2上に表示される「画面」が作成される。
図2は、第1実施例における表示装置1のハードウェア構成図である。表示装置1は、例えばノート型コンピュータやタブレットコンピュータ、スマートフォン等の携帯端末である。表示装置1は、バス700及び内部バス230と、プロセッサ100及びプロセッサ210と、メモリ220及びメモリ300及びメモリ400と、ディスプレイコントローラ500とディスプレイ600とを有する。プロセッサ210とメモリ220は、内部バス230を介してバス700に接続される。プロセッサ100は表示装置1全体の管理やデータ処理を行う。メモリ400は表示装置1のメインメモリとして用いられる。プロセッサ210は画像及び画面の作成に関するデータ処理を主に行うプロセッサであり、Graphic Processing Unit(GPU)と呼ばれる。メモリ220は、画像データ及び画面データを主に格納するメモリであり、Video Random Access Memory(VRAM)と呼ばれる。またメモリ300は画面データを主に格納するVRAMである。ディスプレイコントローラ500は、作成された画面をディスプレイ600上に表示する。
プロセッサ100は、Central Processing Unit(CPU)、Micro Processing Unit(MPU)、Digital Signal Processor(DSP)、Field−Programmable Gate Array(FPGA)等の電子回路部品である。プロセッセ210は、MPU、DSP、FPGA等の電子回路部品である。尚、プロセッサ210はCPUであってもよい。メモリ220、300、及び400は、Dynamic Random Access Memory(DRAM)、Static Random Access Memory(SRAM)等の電子回路部品である。本明細書の以降の部分において、便宜上、プロセッサ100をCPUと呼び、プロセッサ210をGPUと呼ぶこととする。また便宜上、メモリ220を第1VRAMと呼び、メモリ300を第2VRAMと呼ぶこととする。
図2に示すCPU100、GPU210、第1VRAM220及び内部バス230は、System On Chip(SoC)として単一の半導体チップにて形成されてもよい。尚、GPU210、第1VRAM220及び内部バス230を併せて、本明細書では便宜上、グラフィックデータ処理部200と呼ぶこととする。
図3は、グラフィックデータ処理部200の動作モードと、グラフィックデータ処理部200にて消費される電力等との関係を示す図である。本実施例では、動作モードとして4つのモードを例示する。第1動作モードは、GPU210及び内部バス230が何れも稼働するモードである。本明細書では、第1動作モードを「アクティブモード」と呼ぶ。第2動作モードは、GPU210に供給されるクロックが停止された状態である。この状態ではGPU210はデータ処理を行わない。本明細書では、第2動作モードを「待機モード」と呼ぶ。第2動作モードでは、内部バス230にはクロックが供給される。尚、クロックの停止とは、クロック供給源となるクロック生成回路を停止させることや、クロック生成回路を稼働させたままでクロック供給経路を経つ、所謂クロックゲーティングの何れの場合も含む意味である。第3動作モードは、GPU210に供給されるクロックが停止され、かつ内部バス230に供給されるクロックも停止された状態である。この状態ではGPU210はデータ処理を行っておらず、また第1VRAM220へのアクセスも行えない状態である。本明細書では、第3動作モードを「休止モード」と呼ぶ。第4動作モードは、GPU210への電力供給が停止され、かつ内部バス230への電力供給も停止される状態である。本明細書では、第4動作モードを「電源オフモード」と呼ぶ。尚、電力供給の停止とは、電力の供給源となる電源回路を停止することや、電源回路を稼働させたままで電力供給経路を経つ、所謂パワーゲーティングの何れの場合も含む意味である。
図3に示すように、グラフィックデータ処理部200で消費される電力は、4つの動作モードのなかで、第1動作モードが一番大きく、第4動作モードが一番小さい。また、第1動作モードへの遷移に要する時間は、第2動作モードが一番短く、第4動作モードが一番長い。尚、図3に示した4つの動作モードは、消費電力が異なる複数の動作モードについて説明するための例示であり、表示装置1がここに開示される動作モードを必須の要件として有することを意図するものではない。また各動作モードの呼称についても実施形態を限定する意図はなく、他の呼称が付されてもよい。
図4に基づいて、表示装置1における画像作成処理、合成処理及び画面表示処理に関する処理手順を説明する。表示装置1は、所定間隔で発行されるVsyncに同期して1フレームの画面を作成してディスプレイ600に表示する。図4においては、横軸を時間軸とし、順次発行されるVsync毎に実行される画像作成処理、合成処理及び画面表示処理に関する処理の流れを示している。尚本明細書においては、「画像作成処理」とは、画像データを作成する処理を意味し、「合成処理」とは、画像データを合成して画面データを作成する処理を意味し、「画面表示処理」とは、画面データをディスプレイ600に実際に表示する処理を意味する。
図1で説明したように、一つの画面を作成するために実行されるデータ処理には、個々の画像を作成するためのデータ処理と、作成された個々の画像を合成して画面を作成するためのデータ処理とが含まれる。画像を作成するデータ処理と、画像を合成するデータ処理がどのような手順で実行されるかについて、図4に沿って説明する。まずVsync1の発行に基づき、画像作成処理が行われる。ここでは複数の画像作成処理がシリアルに行われる例を示している。例えば表示装置1上で複数のアプリが起動している場合であって、複数のアプリがそれぞれディスプレイ600上に表示されている画像を更新する必要がある場合は、複数のアプリの各々が画像作成処理を行う。図4に示す例では二つの画像について作成処理が行われる。複数のアプリの各々が画像作成処理によって生成した画像データは、そのままディスプレイ600上に表示される訳ではなく、他のアプリによる画像データと重ね合わせる合成処理を行う必要がある。そのため、作成された画像データは、一旦第1VRAM220に格納される。
次にVsync2の発行に基づき、合成処理が行われる。合成処理により、Vsync1に基づいて生成されて第1VRAM220に格納された画像データから画面データが作成される。画面データは、第1VRAM220に格納された後、第2VRAM300に転送されるか、もしくは第1VRAM220に格納されることなく第2VRAM300に格納される。合成処理が終了した後に、各アプリが画像を更に更新する場合には、続いて画像作成処理が行われて、新しい画像データを第1VRAM220に格納する。図4に示す例では二つの画像について作成処理が行われる。
次にVsync3の発行に基づき、画面表示処理が行われる。具体的には、Vsync2に基づいて生成されて第2VRAM300に格納された画面データが、ディスプレイ600に表示される。また、Vsync2に基づいて生成されて第1VRAM220に格納された画像データについての合成処理が行われる。合成処理が終了すると、同様に画像作成処理が行われる。この例では、Vsync3に対応する単位期間では一つの画像の作成処理が実行される例を示している。
図4に示されるように、合成処理と画像作成処理は、時間的に重なって実行されることとはない。これは、合成処理と画像作成処理はいずれも、GPU210を含むグラフィックデータ処理部200にて実行されるものであるためである。両処理がグラフィックデータ処理部200にて競合することを避けるため、Vsyncが発行された際には、先に合成処理が行われ、その後に画像作成処理が行われる。また複数の画像作成処理同士についても、グラフィックデータ処理部200での処理が競合することを避けるために、排他的に処理が行われる。尚、画面表示処理は、第2VRAM300に格納された画面データに基づいてディスプレイコントローラ500によって実行される処理であり、グラフィックデータ処理部200の処理と独立して実行可能なため、合成処理や画像作成処理と時間的に重なった処理とすることができる。
このように単位期間内におけるデータ処理の順序は、合成処理により画面データを作成する処理が先に行われ、その後、画像データを作成する処理が行われる。そのため、単位期間において、画像データの作成に関する処理が終了した後、次の単位期間が開始されるまでの間は、GPU210はデータ処理を行っていない。
しかし、単位期間に作成される画像の数は不定であるため、一つの「画像」のデータを作成する処理が終了しても、必ずしも一つの「画面」の作成に関するデータ処理が全て完了したとはいえない。このような状況においてGPU210を休止させるためには、全ての画像作成処理が終了したことを認知する技術の確立が有用である。本実施例は、単位期間内に実行される画像データの作成処理が全て終了したと判定するための技術的手段を開示するものである。
図5は、図4に示した処理に、図3に示した動作モードを対応付けて示す図である。図5中の「α」の表記は、画像作成処理を意味し、「β」の表記は合成処理を意味するものとする(後述する図18、図20及び図31でも同様)。グラフィックデータ処理部200が画像作成処理を実行する期間は、グラフィックデータ処理部200の動作モードはアクティブモードである。またグラフィックデータ処理部200が合成処理を実行する期間も、動作モードはアクティブモードである。一方、画像作成処理や合成処理が行われていない期間は、グラフィックデータ処理部200は待機モードとなる。ここで、グラフィックデータ処理部200で消費される電力を削減するためには、合成処理及び画像作成処理が終了した後、次のVsyncが発行されるまでの期間を、待機モードよりも消費電力が小さい休止モードや電源オフモードに制御することが有効である。但し図3にて示したように、消費電力が小さい動作モードほど、アクティブモードへの移行に要する時間が長くなることを考慮する必要がある。例えば図4において、Vsync2に基づいて実行される一つ目の画像作成処理が終了した時点で、動作モードをアクティブモードから休止モードに移行させたとする。この場合は、動作モードを待機モードとした場合に比べて消費電力を削減することができる。しかし図5に示す例では、グラフィックデータ処理部200は、次のVsync3が発行されるまでにもう一つの画像作成処理を実行しなければならない。そのため、動作モードを休止モードからアクティブモードへ戻す必要があるが、休止モードからアクティブモードへ移行させるために要する時間は、待機モードからアクティブモードへ移行させるために要する時間よりも長い。そのため、図5内に表記した期間Xが長くなり、2つ目の画像作成処理がVsync3の発行までに完了しなくなることが生じ得る。このような画像作成処理の遅延に起因して、後続のVsyncにて実行される合成処理及び画面表示処理が遅延し、ディスプレイ600の画面表示の切り替えが円滑に行えなくなる場合もある。そこで本実施例では、各Vsyncにおいて画像作成処理の終了を検知した際に処理待ちの他の画像作成処理があるか否かを予測する。そして処理待ちの他の画像作成処理がない、つまり次のVsync発行までに処理すべき全ての画像作成処理を実行したと判断される場合には、動作モードを、待機モードよりも消費電力の小さいモードへ移行させる。これにより、グラフィックデータ処理部200がデータ処理を行っていない期間(期間A,B,C,D)の少なくとも一部における消費電力を削減することがきる。また、処理待ちの他の画像作成処理が存在すると判断される場合は、動作モードを待機モードとすることで、期間Xが延伸することを防止することができる。本実施例にて開示される、単位期間内に実行すべき他の画像作成処理の存否を判定する方法は、過去の単位期間内に作成された画像数の実績を記録する工程と、作成画像数の実績に基づいて次の単位期間内に作成される画像数を予測する工程と、当該単位期間内に実際に作成された画像数をカウントする工程と、カウントされた画像数が予測数に達したことを以て全ての画像作成処理が終了したと判定する工程とを有する。
図6は、単位期間毎に作成された画像の数の測定例を示す図である。図6の横軸は時間(Vsync数)を示し、縦軸は画像数を示す。この例では、画像数は発行されるVsync毎で変動する場合はあるものの、一定値を示す場合が多いケースを示している。このように各Vsyncに対応して作成された画像数の記録を取ることにより、次回のVcyncの発行に基づいて作成される画像の数をある程度予測することが可能である。本実施例では、単位期間で作成される画像の数を、過去の実績に基づいて予測し、当該単位期間に作成された画像の数が予測した画像の数に一致したことを検出し、GPU210の動作モードを変更するよう制御することにより、GPU210を含むグラフィックデータ処理部200の消費電力を削減することができる。
図7は、CPU100の機能ブロック図である。CPU100は、メモリ400又はCPU100がアクセス可能な他の記憶装置に格納された所定のプログラムを実行することにより、図7に示す各機能を実現する。CPU100は、画像作成処理部110、グラフィックライブラリ120、画像作成処理終了通知部125、合成処理部130、完了判定部140、タイマ部150、モード管理部170、グラフィックデータ処理部ドライバ180として機能する。
画像作成処理部110は表示装置1上で起動している各アプリが画像を更新する際に、グラフィックライブラリ120及びグラフィックデータ処理部ドライバ180を介してグラフィックデータ処理部200を用いて画像作成処理を実行し、新しい画像データを作成する。画像作成処理部110は例えばアプリ層により実現される。
タイマ部150は例えばカーネル層により実現され、所定の時間間隔でVsyncを発行し、合成処理部130へ送付する。合成処理部130は例えばサービス層により実現され、タイマ部150からVsyncを受け付けると、Vsyncを受けたことを示すVsync通知を完了判定部140及びモード管理部170へ送信する。Vsync通知を受けた完了判定部140は、当該Vsyncに対応する単位期間で作成されることが予測される画像の数を予測数として特定して保持する。予測数の特定方法については後述する。モード管理部170は例えばカーネル層で実現され、Vsync通知の受信に基づき、グラフィックデータ処理部200の動作モードを制御する。
合成処理部130は、受信したVsyncに基づき、画像作成処理部110が作成した画像データの合成処理を行う。画像データの合成処理が終了すると、合成処理の終了通知をグラフィックライブラリ120へ送信する。合成処理の終了通知を受信したグラフィックライブラリ120は、画像作成処理部110の指示に従い、画像作成処理を行う。
グラフィックライブラリ120に設けられた画像作成処理終了通知部125は、各画像作成処理の終了を検出し、画像作成処理終了通知を完了判定部140に対して送信する。完了判定部140は、画像作成終了通知部125から受けた画像作成終了通知の数、すなわち実際に作成された画像の数である実測数が、先に登録された予測数と一致したか否かを判定する。そして完了判定部140は、画像の実測数と予測数が一致した場合に、当該Vsyncに対応する単位期間で実行されるべき画像作成処理が全て終了したと判定し、モード管理部170に完了通知を送付する。モード管理部170は、受信した完了通知に基づき、グラフィックデータ処理部200の動作モードの制御を行う。グラフィックデータ処理部200の動作モードの制御の詳細については後述する。
図8は、合成処理部130からの合成処理終了通知に基づいて、複数の画像が作成される場合の処理タイミングについて説明する図である。合成処理部130の合成処理に引き続き、合成処理終了通知が、合成処理部130からグラフィックライブラリ120に送付される。そしてグラフィックライブイラリ120が、画像作成処理部110の指示に基づき、画像作成の処理を実行する。既に述べたように、画像作成処理はグラフィックデータ処理部200のGPU210を共通で使用して実行されるものであり、複数の画像作成処理がGPU210上で競合することを避けるための排他処理が行われる。図8においては、まずアプリ1による画像作成処理が行われ、アプリ1による画像作成処理が終了した後、アプリ2による画像作成処理が行われる例が示されている。
図9は、グラフィックデータ処理部200によって実行される各画像作成処理の詳細を示す図である。画像作成処理は、画像作成前処理と、画像作成本処理と、画像作成後処理とを含む。画像作成前処理の一例として、画像の背景となる絵の選択や、使用するメモリ領域のデータ消去等が挙げられる。画像作成前処理が終了すると、画像作成本処理により画像データが形成される。画像データは第1VRAM220の特定の領域に格納される。画像作成本処理が終了した後、画像作成後処理が行われる。画像作成後処理の一例として、第1VRAM220のデータ格納領域の切替え作業が挙げられる。データ格納領域の切替えとは、画像作成処理部110が作成した画像データを格納する第1VRAM220内のデータ領域を切り替える作業を言う。具体的には、画像作成処理部110が作成した画像データを第1VRAM220に格納する場合に、まず第1VRAM220の第1のデータ格納領域に画像データを格納した後、第1のデータ領域を合成処理部130に対して解放する。画像作成処理部110は、次に作成する画像データを第1VRAM220の他の第2のデータ格納領域に格納する。画像作成処理部110は、第2のデータ格納領域に画像データを格納した後は、第2のデータ格納領域を合成処理部130に対して解放して再度第1のデータ格納領域に画像データを格納する。このように画像作成本処理が終了した後には、画像作成後処理として第1VRAM220のデータ格納領域の切替え作業が行われる。但し画像作成後処理は、ここで説明したデータ格納領域の切替え作業に限定されるものではない。以下に説明するように、画像作成処理の終了を検出するために利用できる処理であれば、他の種の画像作成後処理であっても本実施例に適用可能である。
尚、図9の下段は、画像作成前処理、画像作成本処理、画像作成後処理におけるグラフィックデータ処理部200の動作モードの例である。画像作成前処理においてGPU210がデータ処理を行わない期間は待機モードとなり、画像作成本処理においてGPU210がデータ処理を行っている期間はアクティブモードとなる。また画像作成後処理においてもGPU210が必要な処理を行うタイミングで動作モードがアクティブとなる。尚、画像作成本処理の途中においても、処理すべきデータについてGPU210が処理を完了し、次に処理するデータをGPU210が待っている状態においては、動作モードは待機モードとなる。
図10は、合成処理部130の機能ブロック図である。合成処理部130は、Vsync受信部131、通知部132、判定部133、処理部134、画面データ送信部135、及び合成処理終了通知部136として機能する。Vsync受信部131は、タイマ部150からVsyncを受信する。通知部132は、Vsyncの受信に基づき、完了判定部140及びモード管理部170に対してVsync通知を送信する。判定部133は、Vsyncの受信に基づき、合成するための画像データがあるか否かを判定する。合成するための画像データがある場合は、処理部134が画像の合成処理を行って画面データを作成し、第1VRAM220に格納する。画面データ送信部135は、第1VRAM220に格納された画面データを、第2VRAM300へ送信する。合成処理終了通知部136は、合成処理が終了したことをグラフィックライブラリ120へ通知する。
図11は、ライブラリ層に設けられた画像作成処理終了通知部125の機能ブロック図である。画像作成処理終了通知部125は、後処理指示受信部126と、通知部127と、後処理実行部128とを含む。画像作成処理部110は、図10にて示した画像作成本処理が終了した後、後処理指示を画像作成処理終了通知部125へ送付する。この後処理指示は、作成した画像データを第1VRAM220の所定のデータ格納領域へ格納したアプリが個別に送付するものであり、複数のアプリがそれぞれ画像データを作成した場合は、複数のアプリがそれぞれ後処理指示を送付する。後処理指示受信部126が画像作成処理部110から後処理指示を受信すると、通知部127は当該画像作成処理が終了したことを完了判定部140へ通知する。この通知を画像作成終了通知と呼ぶ。この画像作成終了通知は、個々の画像データが作成されたことを示す通知であり、後述する完了判定部140が全ての画像データが作成された際に行う完了通知とは異なるものである。通知部127が画像作成終了通知を行った後、後処理実行部128は画像作成後処理を実行し、画像作成後処理を実行した旨を画像作成処理部110へ通知する。
図12は、完了判定部140の機能ブロック図である。完了判定部140は、カウンタ141、カウント値保持部142、予測数保持部143、及び判定部144として機能する。カウンタ141は、画像作成処理終了通知部125から受信した画像作成処理終了通知の数をカウントする。またカウンタ141は、合成処理部130からVsync通知を受信すると、その時点でのカウント値をカウント値保持部142へ通知したうえで、カウント値を初期化する。その後再度、画像作成処理終了通知部125から受信した画像作成処理終了通知の数をカウントする。カウント値保持部142は、保持するカウント値を予測数保持部143へ通知する。予測数保持部143は、カウント値保持部142から通知された値を、当該Vsyncに対応する単位期間内に作成される画像の数の予測数として保持する。言い換えると、本実施例においては、ある単位期間に作成された画像の数が、次の単位期間に作成される画像の数の予測数として採用される。カウント値保持部142と予測数保持部143とを併せて予測部と呼ぶ。
判定部144は、カウンタ141のカウント値、すなわち実際に作成された画像の数である実測値を、予測数保持部143に保持された予測数と比較し、実測値が予測数に達した場合に、単位期間内に作成すべき画像が全て作成されたと判定して、モード管理部170へ完了通知を行う。
図13は、モード管理部170の機能ブロック図である。モード管理部170は、割込み受信部171、設定部172、及び制御部173として機能する。割込み受信部171は、グラフィックデータ処理部200内から処理終了の割込み通知を受ける。例えばグラフィックデータ処理部200のGPU210に与えられたデータについての処理がなされ、GPU210にて処理されるべきデータが存在しない状況になると、グラフィックデータ処理部200は割込み通知として処理終了をモード管理部170に対して送付する。また図9及び図11にて説明した画像作成後処理が終了した際にも、グラフィックデータ処理部200からの処理終了の割込み通知が行われる。割込み受信部171は、グラフィックデータ処理部200から終了通知を受けると、制御部173にグラフィックデータ処理部200の動作モードを切り替えるよう指示する。制御部173は、動作モードの切り替えの指示を受けると、設定部172に設定されている動作モードを参照する。設定部172には、データ処理を終了したグラフィックデータ処理部200が、どの動作モードで制御されるかが設定されている。例えば設定部172に「待機モード」が設定されている場合には、制御部173はグラフィックデータ処理部200の動作モードを待機モードに切り替える。
グラフィックデータ処理部ドライバ180は、新たにグラフィックデータ処理部200にデータ処理をさせる場合は、必要なデータをグラフィックデータ処理部200に送信するとともに、制御部173にデータ処理の開始を伝える。これにより制御部173は、動作モードを待機モードからアクティブモードへ移行させ、グラフィックデータ処理部200でのデータ処理が開始される。
このような制御において、あるVsyncに対応する単位期間に実行されるべき画像作成処理のうち、最後の画像作成処理の画像作成後処理に対応して完了判定部140から完了通知がなされると、設定部172は設定されている動作モードを、例えば「待機モード」から「休止モード」に変更する。その後、グラフィックデータ処理部200から処理の終了通知、具体的には最後の画像作成処理の画像作成後処理の実行に伴う処理の終了通知が割込み受信部171に対してなされる。制御部173は設定部172を参照し、設定されている動作モードが「休止モード」であることに従い、グラフィックデータ処理部200の動作モードを休止モードに制御する。このような一連の動作により、各Vsyncに対応して行われる画像作成処理が全て終了した場合に、グラフィックデータ処理部200の動作モードを、より消費電力の小さいモードに移行させることが可能となる。
そして次に発行されるVsyncに起因して、モード管理部170に合成処理130からVsync通知が送付されると、設定部172は設定されている動作モードを、「休止モード」から「待機モード」へ書き戻す。その後、グラフィックデータ処理部ドライバ180が、必要なデータをグラフィックデータ処理部200に送信するとともに、制御部173にデータ処理の開始を伝える。これにより、制御部173は、動作モードを休止モードからアクティブモードへ移行させ、グラフィックデータ処理部200でのデータ処理が実行される。グラフィックデータ処理部200でのデータ処理が終了すると、グラフィックデータ処理部200から処理の終了通知が割込み受信部171に対して送信される。制御部173は、設定部172の設定が「待機モード」に書き戻されていることにより、グラフィックデータ処理部200を、休止モードではなく待機モードにて制御する。
図14は、合成処理部130の処理フローチャートである。合成処理部130の処理は処理1000により開始され、処理1001においてVsync受信部131が、タイマ部150からVsyncを受信する。処理1002において通知部132が、Vsyncを受信したことを示すVsync通知を、完了判定部140へ送信する。処理1003において通知部132が、Vsync通知をモード管理部170へ送信する。処理1004において判定部133が、合成する画像データ、すなわち画面を作成するためのデータが有るか否かを判定する。画面作成のためのデータがない場合は処理1001へ戻り、画像作成のためのデータがある場合は処理1007へ進む。処理1007において処理部134が、合成処理を実行して画面データを作成する。処理1008において合成処理終了通知部136が、合成処理が終了したことをグラフィックライブラリ120へ通知する。この合成処理が終了したことの通知を受信したグラフィックライブラリ120は、画像作成処理部110の指示に従い、画像作成を順次行う。処理1009において画面データ送信部135が、作成した画面データを第2VRAM300へ送信して処理1001へ戻る。
図15は、画像作成終了通知部125の処理フローチャートである。画像作成終了通知部125による処理は処理1100により開始され、処理1101において後処理指示受信部126が、画像作成後処理の実行指示を画像作成処理部110より受信する。処理1102において通知部127が、画像作成終了通知を完了判定部140に対して送信する。処理1103において後処理実行部128が、画像作成後処理を実行する。処理1104において後処理実行部128が、画像作成処理部110に対して後処理が終了した旨を通知し、処理1101へ戻る。
図16は、完了判定部140の処理フローチャートである。完了判定部140による処理は処理1200により開始され、処理1201において完了判定部140は外部から通知を受信する。処理1202において完了判定部140は、受信した通知の種別を判定する。受信した通知が合成処理部130から送信されたVsync通知である場合は処理1203へ進み、受信した通知が画像作成処理終了通知部125から送信された画像作成処理終了通知である場合は処理1208へ進む。処理1203においてカウント値保持部142は、Vsyncを受信した時点でのカウンタ141のカウント値を保持する。処理1206において予測数保持部143は、カウント値保持部142に登録された値を、単位期間内に作成される画像数の予測数として保持する。処理1207においてカウンタ141は、カウント値を初期化して処理1201へ戻る。
処理1202において受信した通知が画像作成処理終了通知であると判定された場合は、処理1208においてカウンタ141が、受信した画像作成処理終了通知の数を、実際に作成された画像の数である実測数としてカウントする。処理1209において判定部144が、カウンタ141によってカウントされた実測数が、予測数保持部141に保持された予測数に一致しているか否かを判定する。実測数と予測数が一致していないと判定された場合は処理1201へ戻り、実測数と予測数が一致したと判定された場合は、処理1211へ進む。処理1211において判定部144が、モード管理部170に画像作成処理の完了通知を行い、処理1201へ戻る。
図17は、モード管理部170の処理フローチャートである。モード管理部170による処理は処理1300により開始され、処理1301においてモード管理部170は、外部からの通知を受信する。処理1302においてモード管理部170は、受信した通知の種別を判定する。受信した通知が完了判定部140から送信された完了通知である場合は処理1303へ進み、受信した通知が合成処理部130からのVsync通知である場合は、処理1314へ進み、受信した通知がそれ以外の通知である場合は処理1305へ進む。
モード管理部170が受信した通知が完了判定部140からの完了通知である場合、処理1303において設定部172は、動作モードの設定を「待機モード」から「休止モード」へ変更する。尚、この時点では、設定部172の設定内容が変更されるだけであって、グラフィックデータ処理部200の動作モードが休止モードへ移行する訳ではない。後述するように、グラフィックデータ処理部200からの終了通知の割込みに基づいて、制御部173が設定部172の設定内容を読み取ることにより、グラフィックデータ処理部200の動作モードは休止モードへと移行することになる。
処理1305においてモード管理部170は、受信した通知がグラフィックデータ処理部ドライバ180からのデータ処理の開始通知であるのか、グラフィックデータ処理部200からのデータ処理の終了通知であるのかを判定する。通知が開始通知である場合は処理1311へ進み、通知が終了通知である場合は処理1306へ進む。処理1311において制御部173は、グラフィックデータ処理部200をアクティブモードにて制御する。グラフィックデータ処理部200は、グラフィックデータ処理部ドライバ180から与えられたデータの処理を実行する。一方、通知が終了通知である場合は、処理1306において制御部173は、設定部172の設定内容に基づき、グラフィックデータ処理部200の制御モードを選択する。設定部172に設定された動作モードが「待機モード」である場合は、処理1310において制御部173は、グラフィックデータ処理部200を待機モードにて制御して処理1301へ戻る。また、設定部172に設定された動作モードが「休止モード」である場合は、処理1307において制御部173は、グラフィックデータ処理部200を休止モードにて制御して処理1301へ戻る。
処理1302において、通知が合成処理部130からのVsync通知である場合は、処理1314において設定部172は、設定されている動作モードを「休止モード」から「待機モード」へと書き戻して処理1301へ戻る。
このように、本実施例によれば、過去の単位期間に作成された画像数に基づいて、現時点での単位期間に作成される画像の数を予測し、実際に作成された画像の数が予測された画像の数に一致したことを検出し、画像作成処理の全てが終了したものと判定する。そして、次のVsyncが発行されるまでの期間は、グラフィックデータ処理部200の動作モードを、待機モードに比べて消費電力を抑えることができるモード、例えば休止モードへ移行させることにより、GPU210を含むグラフィックデータ処理部200の消費電力を抑制することができる。
図18は、予測した数の画像の作成が終了した後、次にデータ処理が必要になるまで、グラフィックデータ処理部200を休止モードにて制御した場合の様子を示す図である。Vsync1とVsync2の間の単位期間(第1単位期間とする)では、2個の画像が作成されていることに基づき、Vsync2とVsync3の間の単位期間(第2単位期間とする)で作成される画像の数を「2」と予測する。そして第2単位期間において2個の画像の作成が終了したことに基づき、グラフィックデータ処理部200を休止モードにて制御する。これにより、図4に示した制御に比べて、期間Bにおける消費電力を抑えることができる。尚、図18においては、第1単位期間に対しても予測数が「2」と設定されたものと仮定して、期間Aにおいても休止モードにて制御がなされた状態を表している。
但し、ある単位期間で作成されると予測した画像の数が、実際に当該単位期間にて作成される画像の数と一致しない場合もあり得る。例えば図18において、第2単位期間で作成された画像の数に基づき、Vsync3とVsync4の間の単位期間(第3単位期間とする)で作成される画像の数を「2」と予測する。しかし、第3単位期間で作成された画像の数は「1」であり、予測は的中しなかったことになる。この場合は、期間Cの動作モードは休止モードではなく、待機モードにて制御される。
尚、図18においては、休止モードからアクティブモードへの移行時間、及び待機モードからアクティブモードへの移行時間は表現されていない。しかし図3にて説明したように、休止モードからアクティブモードへの移行時間は、待機モードからアクティブモードへの移行時間よりも長い。そのため、画像作成処理が終了する度に動作モードを休止モードへ移行させると、全ての画像作成処理が終了するまでの時間が遅延する一因となる。これに対して本実施例では、単位期間内に実行すべき全ての画像作成処理が終了したと判定されるまでは、休止モードへ移行することを避けることにより、処理の遅延を抑制している。
ここまで第1実施例を説明したが、以下、第1実施例の変形例について説明する。第1実施例では、作成された画像の数が予測数に達した場合に、グラフィックデータ処理部200の動作モードを休止モードとする例を示したが、休止モードよりも消費電力の低い電源オフモードへ移行させてもよい。もしくは、ある一定期間、例えば所定回数の単位期間に渡って、画像の更新が行われていない場合等には、グラフィックデータ処理部200の動作モードを休止モードもしくは電源オフモードへ移行させてもよい。その他、作成された画像の数が予測数に達した時点で、次のVsyncが発行されるまでの期間が所定の閾値よりも短い場合は、休止モードへの変更を行わずに待機モードを維持するように制御してもよい。
また図17及び図18に示す動作例では、休止モードに入った後、次に発行されるVsyncの後に開始される合成処理の開始タイミングでアクティブモードへ移行しているが、他の動作例も考えられる。例えば休止モードに移行した後、次に発行されるVsyncが発行された場合は、当該Vsyncに基づいてまず休止モードから待機モードへ移行させておき、合成処理の開始時には待機モードからアクティブモードへ移行させてもよい。これにより、合成処理の開始タイミングの遅延を抑制することができる。この場合は、例えば図13に示したモード管理部170において、合成処理部130からのVsync通知を割込み信号として割込み受信部171が受信するよう改変し、Vsync通知の受信に応じて、制御部173が動作モードを切り替えるようにすることにより実現できる。
また、図11、図13及び図17では、画像作成処理終了通知部125が、まず完了判定部140に画像作成終了通知を送信し、その後に画像作成後処理が行われる動作例を示したが、他の動作例も考えらえる。例えば画像作成処理終了通知部125は、画像作成後処理が終了した後に画像作成処理終了通知を行ってもよい。この場合は、モード管理部170が完了判定部140からの完了通知を受信した時点で、グラフィックデータ処理部200でのデータ処理は画像作成後処理を含めて既に終了している。そのため、グラフィックデータ処理部200からの処理の終了通知を待つことなく、制御部173が動作モードを休止モードに切り替えるよう制御を行う。
次に、第1実施例における用語の定義について補足説明を行う。図19は、一つのアプリが複数の画像を作成する場合について、用語の定義を説明する図である。図1と同じ用語については同一の参照符号を付し、説明は省略する。図1では、アプリはそれぞれ一つの画像作成処理を行うという前提に基づいて説明した。ところが、一つのアプリが複数の画像作成処理を行う場合がある。例えばアプリがゲームアプリのように、背景画像と、背景画像とは独立して移動するキャラクター画像とを合成した画像データを、当該アプリの画像としてディスプレイ上に表示するような場合である。図19では、一つのアプリが描画する画像(像3)に複数のオブジェクト4が含まれる例を示しており、本明細書ではオブジェクト4を「要素画像」と呼ぶ。画像作成処理部110は、複数の要素画像をそれぞれ作成し、各画像作成処理の最後に、図9にて説明したように画像作成後処理を行う。よって、例えば図19に示す例であれば、三つのアプリの各々が画像を作成し、かつそのうちの一つの画像が三つの要素画像を含むことから、全体としては五つの画像が作成されることになる。つまり、第1実施例において、「画像」の「数」とは、要素画像を含めた画像の数を意味する。この用語の定義は、以下に開示する第2実施例以降の実施例にも適用される。
<第2実施例>
図20は、各Vsyncの発行タイミングと、画像作成処理と合成処理の実行タイミングの関係を示す図である。図20において括弧内に記載された数は、単位期間毎に作成された画像を第1実施例に示した手法を用いてカウントした値を示す。図20の(a)において、各単位期間において処理されるべき画像作成処理は、次のVsyncが発行される前に終了している。そして各単位期間内の数は「2」を示しており、各画面に含まれる画像の数を正しく表している。これに対して図20の(b)は、Vsync2に応じて実行される二つの画像の作成処理のうち、二つ目の画像の作成処理がVsync3の発行までに完了しなかった様子を示している。この場合、Vsync2からVsync3までの期間で作成が完了した画像の数として「1」とカウントされ、Vsync3からVsync4の間の単位期間に作成された画像の数が「3」としてカウントされる。このように、各画面を構成する画像の数が一定値の「2」を継続していたとしても、画像作成処理の終了タイミングがVsyncを超えてずれ込んだ場合は、カウント値が「1」や「3」に変動することが有り得る。このようなカウント値の変動は、予測数と実測数の不一致の原因となり、適正な消費電力抑制の効果を軽減させることになる。
図20の(c)は、画像作成処理を行う単位期間と、合成処理を行う単位期間とが交互に発生する処理シーケンスを用いた場合の、各Vsyncの発行タイミングと、画像作成処理と合成処理の実行タイミングの関係を示している。この例では、Vsync1とVsync3に基づいて画像作成処理が実行され、Vsync2とVsync4に基づいて合成処理が実行される。例えば動画共有サイトであるYouTube(登録商標)に関する動画面表示では、サーバから提供されたデータに対し、表示装置1が図20(c)に示すような処理シーケンスにてデータ処理を行う。この場合、各画面を構成する画像は、図20の(a)と同様に全て「2」であるにも関わらず、Vsync毎に作成された画像の数をカウントすると「2」と「0」が交互に繰り返されることになる。この場合も、第1実施例のカウント手法では、予測数と実測数とが一致しないこととなる。
第2実施例では、図20の(b)や(c)のようなケースでも、各画面に含まれる画像の数を正しくカウントするための手法を開示する。第2実施例では、画像数のカウントを、Vsyncの間隔ではなく、合成処理の間隔、例えば合成処理の開始のタイミングの間隔で行うようにする。言い換えれば、合成処理の開始タイミングの間隔を「単位期間」として認識する。このようにすることで、仮に画像作成処理の終了タイミングが次のVsyncの発行時よりも後にずれ込んだとしても、カウントされる画像数を、画面に含まれる画像の数と一致させることができ、予測数を適切に設定することが可能となる。このような処理を実行するためには、第1実施例にて開示した図7、図12、図13、図16及び図17において、合成処理部130から完了判定部140のカウンタ141及びモード管理部170の設定部172に入力される信号を、Vsync通知に代えて合成処理の開始を示す合成処理開始通知とする。他の構成については第1実施例にて説明した構成が第2実施例においても適用される。
図21は、第2実施例における合成処理部130の処理フローチャートである。図14にて示した処理と同一の処理については同一の参照符号を付し、説明を適宜省略する。処理1001の後、処理1004へ進み、処理1004において画面作成のためのデータがある場合と判定された場合は処理1005へ進む。処理1005において通知部132が、合成処理の開始を示す合成処理開始通知を、完了判定部140へ送信する。処理1006において通知部132が、合成処理開始通知をモード管理部170へ送信し、処理1007へと移行する。
このように、画像作成処理終了通知のカウントを開始するトリガーとして、第1実施例におけるVsync通知に代えて合成処理開始通知を用いることで、Vsyncの間隔で画像の数をカウントするのではなく、合成処理と次の合成処理との間に作成される画像の数をカウントすることができる。これにより、各画面に含まれる画像数を適切にカウントすることができる。
<第3実施例>
第1実施例及び第2実施例では、ある単位期間において作成された画像の数を、その次の単位期間で作成されることが予測される画像の数として用いる例を示した。第3実施例では、過去の複数回の単位期間での実測数の統計に基づき、予測数を設定する例を説明する。
図22は、第3実施例におけるCPU100の機能ブロック図である。図7において開示した機能ブロックと同一の機能ブロックについては同一の参照符号を付し、説明を適宜省略する。CPU100は、画像作成処理部110、グラフィックライブラリ120、画像作成処理終了通知部125、合成処理部130、完了判定部140、タイマ部150、モード管理部170、グラフィックデータ処理部ドライバ180に加え、統計処理部160として機能する。統計処理部160は、例えばミドルウェア層により実現され、完了判定部140によってカウントされた画像の数を、複数の単位期間分、格納する。また統計処理部160は、格納した画像の数について統計処理を行い、次の単位期間に作成される画像数を予測し、予測数を完了判定部140へ通知する。統計処理の方法としては、例えば過去の複数の単位期間における実測数の平均値を予測数として採用する方法等、複数の手法が考えられるが、ここでは、過去の複数の単位期間における実測数の分布を作成し、出現頻度が最大となる実測数を、予測数として設定する手法を例に挙げて説明する。
図23は、統計処理部160の機能ブロック図である。統計処理部160は、カウント値バッファ161、分布取得部162、最大頻度選択部163として機能する。カウント値バッファ161は、各単位期間でカウントされたカウント値を、完了判定部140のカウント値保持部142から取得し、順次格納する。カウント値フバッファ161は、例えばFirst In First Out(FIFO)方式のデータバッファにより実現される。分布取得部162は、カウント値バッファ161に格納された値に基づき、カウント値の分布を求める。最大頻度選択部163は、分布取得部162が求めた分布に基づき、出現頻度が最大となるカウント値を選定し、完了判定部140の予測数保持部143へ通知する。本実施例では、カウント値保持部142とカウント値バッファ161と分布取得部162と最大頻度選択部163と予測数保持部143とが予測部に相当する。
図24は、統計処理部160の処理フローチャートである。統計処理部160の処理は処理1400により開始され、処理1401においてカウント値バッファ161が、カウント値保持部142のカウント値を格納する。カウント値バッファ161には、過去の複数のカウント値が順次格納される。処理1402において分布取得部162が、カウント値の分布を求める。処理1403において最大頻度選定部163が、分布取得部162が求めたカウント値の分布に基づき、出現頻度が最大であるカウント値を選択する。処理1405において最大頻度選択部163が、選択されたカウント値を予測数保持部143へ通知し、処理1406にて終了する。
図25は、第3実施例における完了判定部140及び統計処理部160の処理フローチャートである。図16にて示した処理と同一の処理については同一の参照符号を付し、説明を適宜省略する。処理1203においてカウント値保持部142がカウンタ141のカウント値を保持した後、処理1204において統計処理部160が、統計処理を行って予測数を特定する。処理1206において予測数保持部143が、統計処理部160が特定した予測数を保持する。処理1207においてカウンタ141は、カウント値を初期化して処理1201へ戻る。
図26は、分布取得部162により求められた、カウント値に対する出現頻度の分布の一例を示す図である。図26の例では、カウント値が「3」において、出現頻度が最大となっている。この場合は、過去の複数回の単位期間において、作成された画像の数が「3」であった単位期間が最も多いことを示している。そのため、次の単位期間において作成される画像数も「3」となる可能性が高いと判断され、予測数として「3」が選択される。
図27は、第3実施例の変形例における統計処理部160の機能ブロック図である。第3実施例では、出現頻度が最大となるカウント値が予測数として選択された。これに対して本変形例では、出現頻度に閾値を設け、出現頻度が閾値を上回るカウント値が複数存在する場合に、複数のカウント値のうち最大の値を予測数として特定する。図27において、図23にて説明した機能ブロックと同一の機能ブロックについては同一の参照符号を付し説明を省略する。統計処理部160は、カウント値バッファ161と分布取得部162に加え、ハイパスフィルタ164及び最大値選択部165として機能する。ハイパスフィルタ164は、分布取得部162によって求められた分布に対して、出現頻度が一定の閾値以上となるカウント値だけをフィルタリングして最大値選択部165へ通知する。最大値選択部165は、ハイパスフィルタ164を通過したカウント値のうち、最大のカウント値を選択し、予測数として予測数保持部143へ通知する。本変形例では、カウント値保持部142とカウント値バッファ161と分布取得部162とハイパスフィルタ164と最大値選択部165と予測数保持部143とが予測部に相当する。
図28は、第3実施例の変形例における統計処理部160の処理フローチャートである。図24にて示した処理と同一の処理については同一の参照符号を付し、説明を適宜省略する。処理1402の後、処理1404において最大値選択部165が、ハイパスフィルタ164でフィルタリングされた一定の閾値以上の出現頻度を有するカウント値のうち最大の値を選択する。そして処理1405において選択された値を予測数保持部143に通知する。
図29は、分布取得部162により求められた、カウント値に対する出現頻度の分布の一例を示す図である。点線が出現頻度の閾値を示す。カウント値が「3」及び「4」において、出現頻度が閾値を上回っている。この場合は、カウント値「3」と「4」のうち、最大の値、つまり「4」が予測数として選択される。このように予測数を選択することにより、未だ画像作成の処理が完了していないにも関わらず動作モードが休止モードとなる、ということが発生する回数を抑制することができる。
<第4実施例>
第1乃至第3実施例において、過去の単位期間毎の画像数に基づいて、次の単位期間で作成される画像の数を予測して動作モードを変更する手法について説明した。これらの実施例においては、予測した画像の数が的中して適切に動作モードを変更できる場合もあるが、予測数が的中しない場合も発生し得る。予測数が的中しなかった場合の動作について、第1実施例を例に挙げて説明する。
予測数が実際に作成される画像の数よりも高く設定された場合は、例えば図18の期間Cや期間Dに示すように、動作モードを休止モードに変更することができない。逆に予測数が実際に作成される画像の数よりも低く設定された場合は、未だ作成すべき画像が残っている状態にもかかわらず、グラフィックデータ処理部200は休止モードに移行することになる。この場合であってもグラフィックデータ処理部200は、処理すべきデータがグラフィックデータ処理部ドライバ180から与えられた場合は、アクティブモードへ遷移して画像データの作成処理を実行する。しかし設定部172に設定された動作モードは、完了判定部140からの完了通知に基づき「休止モード」に変更されているため、グラフィックデータ処理部ドライバ180から与えられたデータについての処理が終了した時点で、グラフィックデータ処理部200は再度休止モードに遷移することになる。このように、一度完了判定部140から完了通知が発行されると、その後画像作成のためのデータ処理が継続される場合には、休止モードとアクティブモードとの間の移行が繰り返されることになる。図3に示したように、休止モードからアクティブモードへの移行は、待機モードからアクティブモードへの移行に比べて、長い時間を要する。そのため、休止モードからアクティブモードへの移行を繰り返すことにより、単位期間内に所定の画像作成処理を終了させることができなくなる場合や、更に後続の処理を遅延させてしまう場合も起こり得る。
そこで第4実施例では、予測した画像数よりも多くの画像が作成される場合であっても、画像作成処理の遅延を抑制することができる手法を開示する。
図30は、第4実施例におけるモード管理部170の機能ブロック図である。図13にて示した機能ブロックと同一の機能ブロックについては同一の参照符号を付し説明を適宜省略する。モード管理部170は、割込み受信部171、設定部172、制御部173に加えて、状態記憶部174として機能する。また図31は、単位期間に含まれる4つの状態を説明する図である。図31において、Vsyncが発行された後、完了判定部140から完了通知が発行されるまでの状態を第1状態と呼ぶこととする。図31において(1)と表記される期間が第1状態に相当する。次に、完了判定部140から完了通知が発行された後、グラフィックデータ処理部200からの終了通知に応じて制御部173が、グラフィックデータ処理部200の動作モードを休止モードに変更するまでの状態を第2状態と呼ぶこととする。図31において(2)と表記される期間が第2状態に相当する。次に、グラフィックデータ処理部200の動作モードが休止モードに変更された後、グラフィックドライバ180からのデータ処理の開始通知に基づいて画像作成処理が再開するまでの状態を第3状態と呼ぶこととする。図31において(3)と表記される期間が第3状態に相当する。最後に、画像作成処理が再開した後、次のVsyncが発行されるまでの状態を第4状態と呼ぶこととする。図31において(4)と表記される期間が第4状態に相当する。図30に示す状態記憶部174は、現在の状態が上述した4つの状態のうちのどの状態にあるかを記憶するブロックである。そして第4実施例は、第4状態においてグラフィックデータ処理部200のデータ処理が終了しても、グラフィックデータ処理部200を休止モードへは移行させず、待機モードにて制御するための手法を開示するものである。
図32は、状態記憶部174が記憶する値と、状態記憶部174が記憶する値に対応する状態と、各状態であることを認定するための条件との関係を示す図である。モード管理部170が合成処理部130からVsync通知を受けた場合は、状態が第1状態であると認定できるため、状態記憶部174は第1状態を意味する値「1」を記憶する。モード管理部170が完了判定部140から完了通知を受けた場合は、状態は第2状態であると認定できるため、状態記憶部174は第2状態を意味する値「2」を記憶する。モード管理部170がグラフィックデータ処理部200から終了通知を受け、かつその時点での状態が第2状態である場合は、状態は第3状態であると認定できるため、状態記憶部174は、第3状態を意味する値「3」を記憶する。モード管理部170がグラフィックデータ処理部ドライバ180から開始通知を受け、かつその時点での状態が第3状態である場合は、状態は第4状態であると認定できるため、状態記憶部174は、第4状態を意味する値「4」を記憶する。
図33及び図34は、第4実施例におけるモード管理部170の処理フローチャートである。図17にて示した処理と同一の処理については同一の参照符号を付し、説明を適宜省略する。尚、図33及び図34は一連の処理フローチャートであり、図33の「A」は図34の「A」へ接続され、図34の「B」は図33の「B」へ接続される。
処理1314において、合成処理部130からのVsync通知の受信に基づいて設定部172に設定されている動作モードが「休止モード」から「待機モード」へと書き戻された後に、処理1315において状態記憶部174が、自身が記憶する値を「1」に変更し、処理1301へ戻る。その後、完了判定部140からの完了通知が発行された場合、処理1303において設定部172の設定が「待機モード」から「休止モード」へ変更された後に、処理1304において状態記憶部174は、自身が記憶する値を「2」に変更する。更に、処理1307において、グラフィックデータ処理部200からの終了通知に基づいてグラフィックデータ処理部200の動作モードが休止モードへ変更された後に、処理1308において状態記憶部174は、自身が記憶する値が「2」であるか否かを判定する。状態記憶部174に記憶されている値が「2」である場合は、処理1309において状態記憶部174は、自身が記憶する値を「3」に変更する。処理1308において状態記憶部174に記憶されている値が「2」以外の場合は、処理1301へ戻る。更に処理1311においてグラフィックデータ処理部200の動作モードがアクティブモードへ変更された後に、処理1312において状態記憶部174は、自身が記憶する値が「3」であるか否かを判定する。状態記憶部174に記憶されている値が「3」である場合は、処理1313において状態記憶部174は、自身が記憶する値を「4」に変更する。処理1312において記憶されている値が「3」以外の場合は、処理1301へ戻る。
そして、処理1305においてモード管理部170が、グラフィックデータ処理部200からのデータ処理の終了通知を受けたと判定した際、処理1316において制御部173は、状態記憶部174に記憶されている値が「4」であるか否かを判定する。状態記憶部174に記憶されている値が「4」でない場合は、処理1306へ進み、設定部172の設定内容に基づいて動作モードが選択される。一方、状態記憶部174に記憶されている値が「4」である場合は、処理1310へ進む。処理1310において制御部173は、設定部172の設定内容にかかわらず、待機モードにてグラフィックデータ処理部200を制御する。すなわち、完了判定部140からの完了通知が発行された後に更に画像作成のためのデータ処理を行った場合は、制御部173は、グラフィックデータ処理部200からの終了通知を受けても、休止モードへの移行は行わない。
このような制御により、予測数が実際に作成される画像数よりも少なく設定された場合であっても、繰り返し休止モードへ移行することを防止し、画像作成処理の終了が遅延することを抑制することができる。
次に、第4実施例の変形例を説明する。この変形例も第4実施例と同様に、完了判定部140からの完了通知が発行された後に更に画像作成のためのデータ処理を行った場合は、制御部173は、グラフィックデータ処理部200からの終了通知を受けても、グラフィックデータ処理部200を休止モードへ移行させない。
図35は、第4実施例の変形例におけるモード管理部170の機能ブロック図である。図13に開示したモード管理部170と同一の機能ブロックについては同一の参照符号を付し、説明は省略する。本変形例におけるモード管理部170の設定部172及び制御部173は、グラフィックデータ処理部ドライバ180からの開始通知を受信する。この開始通知に基づき制御部173は、グラフィックデータ処理部200の動作モードを休止モードからアクティブモードへ移行させ、グラフィックデータ処理部200でのデータ処理が再開する。またこの開始通知に基づき、設定部172にされた設定が「休止モード」から「待機モード」に変更される。これにより、次にグラフィックデータ処理部200から処理の終了通知が発生した場合には、グラフィックデータ処理部200の動作モードは休止モードではなく待機モードに切り替わることになる。
図36は、第4実施例の変形例における、モード管理部170の処理フローチャートである。図17及び図33にて説明した処理と同一の処理については同一の参照符号を付し説明を適宜省略する。処理1311において制御部173が、グラフィックデータ処理部200の動作モードをアクティブモードへ移行させた後、処理1317において設定部172は、設定される動作モードを「待機モード」に変更する。これにより、完了判定部140の完了通知が発行された後に、更に画像作成のためのデータ処理が行われた場合は、グラフィックデータ処理部200の動作モードを休止モードへ移行させないように制御することができる。
<第5実施例>
第1乃至第4実施例において、過去の作成画像数に基づいて画像数を予測する手法について説明した。この場合、単位期間毎に作成される画像の数に変動がない場合は、予測数が実測数と一致する確率(以下、的中率)が高くなるが、単位期間毎に作成される画像の数が変動する場合は、的中率は低下する。的中率が低い状態でも消費電力を抑制するための制御が実行されると、消費電力の削減効果が期待できない他、画像作成の処理の遅延が生じるリスクが高くなる。そこで第5実施例では予測数の的中率を算出し、的中率が所定の値に満たない場合は消費電力を削減する制御を一時休止する手法について説明する。
図37は、単位期間毎に作成された画像の数及び的中率の挙動の例を示す図である。図37の(a)において、横軸は時間(Vsync数)を示し、縦軸は単位期間毎に作成された画像数を示す。また図37の(b)において、横軸は時間を示し、縦軸は的中率を示す。発行されるVsync毎で画像数が変動する期間においては、予測数の的中率が低下する。本実施例では、的中率が所定値を下回る場合には、消費電力を削減する手法、つまり、作成された画像の数が予測数に達したことに基づきグラフィックデータ処理部200の動作モードを休止モードへ移行させる、という制御を行わないこととする。
図38は、第5実施例におけるCPU100の機能ブロック図である。図7にて示した機能ブロックと同一の機能ブロックについては同一の参照符号を付し説明を適宜省略する。CPU100は、画像作成処理部110、グラフィックライブラリ120、画像作成処理終了通知部125、合成処理部130、完了判定部140、タイマ部150、モード管理部170、グラフィックデータ処理部ドライバ180に加え、変動判定部190として機能する。変動判定部190は、例えばミドルウェア層により実現され、単位期間毎に作成された画像数が変動しているか否かを、予測数の的中率に基づいて判定し、完了判定部140へ通知する。
図39は、変動判定部190の機能ブロック図である。変動判定部190は、カウント値バッファ191と、的中判定部192と、的中率算出部193として機能する。カウント値バッファ191は、完了判定部140のカウント値保持部142に保持されたカウント値を順次取得して格納する。カウント値バッファ191は、例えばFIFO方式のデータバッファにより実現される。的中判定部192は、カウント値バッファ191に格納されたカウント値に基づき、予測数が的中したか否かを判定する。例えば、FIFO方式のデータバッファ内に連続して格納された二つのデータが一致している場合は予測が的中したと判定する。的中率算出部193は、的中判定部192が行った所定期間に渡る的中の判定結果に基づいて的中率の算出を行い、的中率が所定の値に満たない場合は、完了判定部140の判定部144に通知する。
図40は、完了判定部140及び変動判定部190の処理フローチャートである。図16にて示した処理と同一の処理については同一の参照符号を付し、説明を適宜省略する。処理1203においてカウント値保持部142がカウンタ141のカウント値を保持した後、処理1205において的中率算出部193が、的中率の算出処理を行う。そして処理1209において完了判定部140の判定部144が、実測数と予測数とが一致したと判定した場合、処理1210において判定部144は、的中率が所定値以上であるか否かを判定する。的中率が所定値以上である場合は処理1211において判定部144が、モード管理部170へ完了通知を送信する。処理1210において的中率が所定値に満たないと判定された場合は、判定部144によるモード管理部170への通知が行われることなく、処理1201へ戻る。
図41は、変動判定部190の処理フローチャートである。判定部190の処理は処理1500により開始され、処理1501において的中判定部192は、予測数が的中したか否かを判定する。処理1502において的中率算出部193は、的中判定部192の判定結果に基づき、的中率を算出する。処理1503において的中率算出部193が、的中率が所定値以上であるか否かを判定する。的中率が所定値以上である場合は、処理1504へ進み、的中率が所定値未満である場合は、処理1505へ進む。処理1504において的中率算出部193は、単位期間毎の画像数が変動中ではないと判断する。また処理1505において的中率算出部193は、単位期間毎の画像数が変動中であると判断する。そして処理1506において的中率算出部193は、判断結果を完了判定部140へ通知する。
このような制御により、単位期間毎に作成される画像数が変動し、的中率が所定値を下回る場合には、モード管理部170による消費電力抑制の制御を一時停止することができる。また、画像数の変動が収まり、的中率が所定値まで回復した場合にモード管理部170による消費電力抑制の制御を再開するように制御することができる。
以上、第1乃至第5実施例について説明した。これらの実施例では、アプリが画像作成を行うものとして説明したが、画像作成を行うソフトウェアはアプリに限定されるものではない、例えばオペレーティングシステム(OS)が画像作成を行う場合にも開示の技術は適用可能である。
また第1乃至第5実施例では、過去の単位期間における画像作成処理の実績に基づいて画像の数を予測することにより画像作成処理の終了タイミングを予測した。しかし過去の実績に基づいて画像作成処理の終了タイミングを予測する方法は、画像の数に基づくものに限定されるものではない。例えば、過去の各単位期間において画像作成に関するデータ処理に要した時間を記録し、記録された時間に基づいて画像作成処理の終了時刻を予測し、予測した時刻に画像処理が終了したものと判定してグラフィックデータ処理部200の動作モードを変更してもよい。
開示の実施例に基づき、更に以下の付記を開示する。
(付記1)
第1期間にプロセッサが実行した画像作成処理の実績に基づき、第2期間に前記プロセッサが行う画像作成処理の終了タイミングを予測する工程と、前記第2期間において、前記終了タイミングに前記プロセッサの消費電力を低下させる工程とを有することを特徴とするデータ処理方法。
(付記2)
前記終了タイミングを予測する工程は、前記第1期間に前記プロセッサが行った画像作成処理により作成された第1画像の数に基づき、前記第2期間に前記プロセッサが行う画像作成処理により作成される第2画像の数を予測する工程を含み、前記終了タイミングに前記プロセッサの消費電力を低下させる工程は、前記第2期間において作成された前記第2画像の数が前記予測された数に達したことにより前記終了タイミングの検出を行う工程を含むことを特徴とする付記1に記載のデータ処理方法。
(付記3)
前記終了タイミングを予測する工程は、前記第1期間における前記プロセッサの画像作成処理の終了時刻に基づき、前記第2期間における前記プロセッサの画像作成処理の予測終了時刻を特定する工程を含み、前記終了タイミングに前記プロセッサの消費電力を低下させる工程は、特定された前記予測終了時刻に基づいて前記終了タイミングの検知を行う工程を含むことを特徴とする付記1に記載のデータ処理方法。
(付記4)
前記第1画像は、前記プロセッサを有するコンピュータ上で動作するソフトウェアに基づき作成された画像であり、前記第1画像と他の画像を合成することによりディスプレイに表示させる第1画面を作成する合成処理を、前記プロセッサにより実行する工程を更に有することを特徴とする付記2に記載のデータ処理方法。
(付記5)
前記画像作成処理及び前記合成処理は、所定の時間間隔で発行される同期信号に基づいて実行されることを特徴とする付記4に記載のデータ処理方法。
(付記6)
第1同期信号に基づいて前記第1画像が作成され、前記第1同期信号の次に発行される第2同期信号に基づいて前記第1画面が作成されることを特徴とする付記5に記載のデータ処理方法。
(付記7)
前記第1期間は、前記第1同期信号と前記第2同期信号との間の期間であり、前記第2期間は、前記第2同期信号と、前記第2同期信号の次に発行される第3同期信号との間の期間であることを特徴とする付記6に記載のデータ処理方法。
(付記8)
前記第1画面を作成する工程は、前記第2画像を作成する処理よりも先に終了することを特徴とする付記4乃至7何れか一つに記載のデータ処理方法。
(付記9)
前記第1期間は、前記第1同期信号に基づいて実行された前記合成処理の開始時刻と、前記第2同期信号に基づいて実行された前記合成処理の開始時刻との間の期間であり、前記第2期間は、前記第2同期信号に基づいて実行された前記合成処理の開始時刻と、前記第2同期信号の次に発行される第3同期信号に基づいて実行された前記合成処理の開始時刻との間の期間であることを特徴とする付記6又は8に記載のデータ処理方法。
(付記10)
前記予測数は、前記第2期間より前の、前記第1期間を含む複数の期間に作成された画像の数に基づき特定されることを特徴とする付記2乃至9何れか一つに記載のデータ処理方法。
(付記11)
前記第2期間より前の、前記第1期間を含む複数の期間に作成された画像の数に基づき、前記プロセッサの消費電力を低下させる工程の実行を禁止することを特徴とする付記2乃10何れか一つに記載のデータ処理方法。
(付記12)
第1期間にプロセッサが実行した画像作成処理の実績に基づき、第2期間に前記プロセッサが行う画像作成処理の終了タイミングを予測する予測部と、前記第2期間において、前記終了タイミングに前記プロセッサの消費電力を低下させるモード管理部とを有することを特徴とするデータ処理装置。
(付記13)
前記第2期間において作成された前記第2画像の数をカウントするカウンタを更に含み、
前記予測部は、前記第1期間に前記プロセッサが行った画像作成処理により作成された第1画像の数に基づき、前記第2期間に前記プロセッサが行う画像作成処理により作成される第2画像の数を予測数として保持し、前記モード管理部は、前記第2期間において前記カウンタによってカウントされた前記第2画像の数が前記予測数に達したことに基づき前記プロセッサの消費電力を低下させることを特徴とする付記12に記載のデータ処理装置。
(付記14)
前記第1画像は、前記データ処理装置上にて動作するソフトウェアに基づき作成された画像であり、前記第1画像と他の画像を合成する合成処理によりディスプレイに表示させる第1画面を作成する合成処理部を更に有することを特徴とする付記12又は13に記載のデータ処理装置。
(付記15)
前記画像作成処理及び前記合成処理は、所定の時間間隔で発行される同期信号に基づいて実行されることを特徴とする付記14に記載のデータ処理装置。
(付記16)
第1同期信号に基づいて前記第1画像が作成され、前記第1同期信号の次に発行される第2同期信号に基づいて前記第1画面が作成されることを特徴とする付記14又は15に記載のデータ処理装置。
(付記17)
前記第1期間は、前記第1同期信号と前記第2同期信号との間の期間であり、
前記第2期間は、前記第2同期信号と、前記第2同期信号の次に発行される第3同期信号との間の期間であることを特徴とする付記16に記載のデータ処理装置。
(付記18)
前記第1期間は、前記第1同期信号に基づいて実行された前記合成処理の開始時刻と、前記第2同期信号に基づいて実行された前記合成処理の開始時刻との間の期間であり、前記第2期間は、前記第2同期信号に基づいて実行された前記合成処理の開始時刻と、前記第2同期信号の次に発行される第3同期信号に基づいて実行された前記合成処理の開始時刻との間の期間であることを特徴とする付記16に記載のデータ処理装置。
(付記19)
第1期間にプロセッサが実行した画像作成処理の実績に基づき、第2期間に前記プロセッサが行う画像作成処理の終了タイミングを予測する工程と、前記第2期間において、前記終了タイミングに前記プロセッサの消費電力を低下させる工程とをコンピュータに実行させることを特徴とするプログラム。
(付記20)
前記終了タイミングを予測する工程は、前記第1期間に前記プロセッサが行った画像作成処理により作成された第1画像の数に基づき、前記第2期間に前記プロセッサが行う画像作成処理により作成される第2画像の数を予測する工程を含み、前記終了タイミングに前記プロセッサの消費電力を低下させる工程は、前記第2期間において作成された前記第2画像の数が前記予測された数に達したことにより前記終了タイミングの検出を行う工程を含むことを特徴とする付記19に記載のプログラム。
1 表示装置
2、600 ディスプレイ
3 像
4 オブジェクト
100 プロセッサ(CPU)
200 グラフィックデータ処理部
210 プロセッサ(GPU)
220、300 メモリ(VRAM)
230 内部バス
400 メモリ
500 ディスプレイコントローラ
700 バス
110 画像作成処理部
120 グラフィックライブラリ
125 画像作成処理終了通知部
126 後処理指示受信部
127 通知部
128 後処理実行部
130 合成処理部
131 Vsync受信部
132 通知部
133 判定部
134 処理部
135 画面データ送信部
136 合成処理終了通知部
140 完了判定部
141 カウンタ
142 カウント値保持部
143 予測数保持部
144 判定部
150 タイマ部
160 統計処理部
161 カウント値バッファ
162 分布取得部
163 最大頻度選択部
164 ハイパスフィルタ
165 最大値選択部
170 モード管理部
171 割込み受信部
172 設定部
173 制御部
174 状態記憶部
180 グラフィックデータ処理部ドライバ
190 変動判定部
191 カウント値バッファ
192 的中判定部
193 的中率算出部




Claims (13)

  1. 所定の時間間隔で発行される同期信号に同期して画像を作成する処理を行うプロセッサを制御するデータ処理装置によって行われるデータ処理方法であって、
    前記所定の時間間隔の一つに対応する第1期間に前記プロセッサによって時系列に作成された第1画像の数を測定する工程と、
    前記第1画像の数に基づいて、前記第1期間に続く第2期間に前記プロセッサによって実行される第2画像の作成処理の終了タイミングを予測する工程と、
    前記第2期間が開始された後、前記第2期間に前記プロセッサによって時系列に作成された前記第2画像の数をカウントする工程と、
    前記第2画像の数に基づいて、前記終了タイミングが経過したかを判定する工程と、
    前記終了タイミングが経過したと判定された場合に、前記プロセッサの動作モードを、少なくとも前記第2期間が終了するまで、前記画像を作成している間の動作モードの電力消費よりも電力消費が低い動作モードに切り替える工程と、
    を有することを特徴とするデータ処理方法。
  2. 前記終了タイミングを予測する工程は、前記第1期間に前記プロセッサが行った画像作成処理により作成された前記第1画像の数に基づき、前記第2期間に前記プロセッサが行う画像作成処理により作成される前記第2画像の数を予測する工程を含み、
    前記画像を作成している間の動作モードの電力消費よりも電力消費が低い動作モードに切り替える工程は、前記第2期間において作成された前記第2画像の数が前記予測された数に達したことにより前記終了タイミングの検出を行う工程を含む
    ことを特徴とする請求項1に記載のデータ処理方法。
  3. 前記第1画像は、前記プロセッサを有するコンピュータ上で動作するソフトウェアに基づき作成された画像であり、
    前記第1画像と他の画像を合成することによりディスプレイに表示させる第1画面を作成する合成処理を、前記プロセッサにより実行する工程を更に有することを特徴とする請求項1又は2に記載のデータ処理方法。
  4. 前記第1画像作成処理及び前記合成処理は、所定の時間間隔で発行される同期信号に基づいて実行されることを特徴とする請求項3に記載のデータ処理方法。
  5. 第1同期信号に基づいて前記第1画像が作成され、前記第1同期信号の次に発行される第2同期信号に基づいて前記第1画面が作成されることを特徴とする請求項4に記載のデータ処理方法。
  6. 前記第1期間は、前記第1同期信号に基づいて実行された前記合成処理の開始時刻と、前記第2同期信号に基づいて実行された前記合成処理の開始時刻との間の期間であり、
    前記第2期間は、前記第2同期信号に基づいて実行された前記合成処理の開始時刻と、前記第2同期信号の次に発行される第3同期信号に基づいて実行された前記合成処理の開始時刻との間の期間である
    ことを特徴とする請求項5に記載のデータ処理方法。
  7. 前記第2期間より前の、前記第1期間を含む複数の期間に作成された画像の数に基づき、前記プロセッサの消費電力を低下させる工程の実行を禁止することを特徴とする請求項2〜6の何れか一項に記載のデータ処理方法。
  8. 所定の時間間隔で発行される同期信号に同期して画像を作成する処理を行うプロセッサを制御するデータ処理装置であって、
    前記所定の時間間隔の一つに対応する第1期間に前記プロセッサによって時系列に作成された第1画像の数を保持する保持部と、
    前記第1画像の数に基づいて、前記第1期間に続く第2期間に前記プロセッサによって実行される第2画像の作成処理の終了タイミングを予測する予測部と、
    前記第2期間が開始された後、前記第2期間に前記プロセッサによって時系列に作成された前記第2画像の数をカウントするカウンタと、
    前記第2画像の数に基づいて、前記終了タイミングが経過したかを判定する判定部と、
    前記終了タイミングが経過したと判定された場合に、前記プロセッサの動作モードを、少なくとも前記第2期間が終了するまで、前記画像を作成している間の動作モードの電力消費よりも電力消費が低い動作モードに切り替えるモード管理部と、
    を有することを特徴とするデータ処理装置。
  9. 前記第2期間において作成された前記第2画像の数をカウントするカウンタを更に含み、
    前記予測部は、前記第1期間に前記プロセッサが行った画像作成処理により作成された前記第1画像の数に基づき、前記第2期間に前記プロセッサが行う画像作成処理により作成される前記第2画像の数を予測数として保持し、
    前記モード管理部は、前記第2期間において前記カウンタによってカウントされた前記第2画像の数が前記予測数に達したことに基づき、前記プロセッサの消費電力を低下させる
    ことを特徴とする請求項8に記載のデータ処理装置。
  10. 前記第1画像は、前記データ処理装置上にて動作するソフトウェアに基づき作成された画像であり、
    前記第1画像と他の画像を合成する合成処理によりディスプレイに表示させる第1画面を作成する合成処理部を更に有することを特徴とする請求項8又は9に記載のデータ処理装置。
  11. 前記第1画像作成処理及び前記合成処理は、所定の時間間隔で発行される同期信号に基づいて実行されることを特徴とする請求項10に記載のデータ処理装置。
  12. 所定の時間間隔で発行される同期信号に同期して画像を作成する処理を行うプロセッサを制御するデータ処理装置に、
    前記所定の時間間隔の一つに対応する第1期間に前記プロセッサによって時系列に作成された第1画像の数を測定する工程と、
    前記第1画像の数に基づいて、前記第1期間に続く第2期間に前記プロセッサによって実行される第2画像の作成処理の終了タイミングを予測する工程と、
    前記第2期間が開始された後、前記第2期間に前記プロセッサによって時系列に作成された前記第2画像の数をカウントする工程と、
    前記第2画像の数に基づいて、前記終了タイミングが経過したかを判定する工程と、
    前記終了タイミングが経過したと判定された場合に、前記プロセッサの動作モードを、少なくとも前記第2期間が終了するまで、前記画像を作成している間の動作モードの電力消費よりも電力消費が低い動作モードに切り替える工程と、
    を実行させるためのプログラム。
  13. 前記終了タイミングを予測する工程は、前記第1期間に前記プロセッサが行った画像作成処理により作成された第1画像の数に基づき、前記第2期間に前記プロセッサが行う画像作成処理により作成される前記第2画像の数を予測する工程を含み、
    前記画像を作成している間の動作モードの電力消費よりも電力消費が低い動作モードに切り替える工程は、前記第2期間において作成された前記第2画像の数が前記予測された数に達したことにより前記終了タイミングの検出を行う工程を含む
    ことを特徴とする請求項12に記載のプログラム。
JP2014088101A 2014-04-22 2014-04-22 データ処理方法、データ処理装置及びプログラム Active JP6349908B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014088101A JP6349908B2 (ja) 2014-04-22 2014-04-22 データ処理方法、データ処理装置及びプログラム
US14/631,173 US9875517B2 (en) 2014-04-22 2015-02-25 Data processing method, data processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014088101A JP6349908B2 (ja) 2014-04-22 2014-04-22 データ処理方法、データ処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2015206931A JP2015206931A (ja) 2015-11-19
JP6349908B2 true JP6349908B2 (ja) 2018-07-04

Family

ID=54322007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014088101A Active JP6349908B2 (ja) 2014-04-22 2014-04-22 データ処理方法、データ処理装置及びプログラム

Country Status (2)

Country Link
US (1) US9875517B2 (ja)
JP (1) JP6349908B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2947580A1 (en) * 2014-05-23 2015-11-25 Canon Europa N.V. A method, an apparatus for labelling images, a program, and a computer-readable medium
US10614772B2 (en) 2016-03-08 2020-04-07 Huawei Technologies Co., Ltd. Display method and terminal device
WO2017166210A1 (zh) * 2016-03-31 2017-10-05 华为技术有限公司 应用程序的处理方法及终端设备
KR102606693B1 (ko) * 2016-08-23 2023-11-28 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 제어 방법
US10740146B2 (en) * 2017-02-10 2020-08-11 Xilinx, Inc. Migrating virtual machines between compute systems by transmitting programmable logic accelerator state
US10600236B2 (en) * 2018-08-06 2020-03-24 Valve Corporation Prediction and throttling adjustments based on application rendering performance

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3833483B2 (ja) 2001-03-06 2006-10-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像表示システム、画像データ送信装置、表示画像データ送信方法、差分転送方法、プログラム、および記憶媒体
US20030233592A1 (en) * 2002-06-14 2003-12-18 Hung-Ming Lin Power saving method using frame rate control in computer graphics systems
JP3919740B2 (ja) 2003-07-30 2007-05-30 株式会社ソニー・コンピュータエンタテインメント 回路動作制御装置および情報処理装置
GB2406184B (en) * 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
WO2008129786A1 (ja) * 2007-04-09 2008-10-30 Panasonic Corporation マルチプロセッサ制御装置、その制御方法および集積回路
JP5481751B2 (ja) * 2010-05-27 2014-04-23 富士通株式会社 隠蔽処理プログラム、可視化処理方法及び装置
US8954980B2 (en) * 2011-11-11 2015-02-10 Qualcomm Incorporated Conserving power through work load estimation for a portable computing device using scheduled resource set transitions
US20140184629A1 (en) * 2012-12-31 2014-07-03 Nvidia Corporation Method and apparatus for synchronizing a lower bandwidth graphics processor with a higher bandwidth display using framelock signals
KR20140088691A (ko) * 2013-01-03 2014-07-11 삼성전자주식회사 Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법

Also Published As

Publication number Publication date
US20150301585A1 (en) 2015-10-22
US9875517B2 (en) 2018-01-23
JP2015206931A (ja) 2015-11-19

Similar Documents

Publication Publication Date Title
JP6349908B2 (ja) データ処理方法、データ処理装置及びプログラム
TWI552136B (zh) 用以控制自我刷新顯示功能之技術(二)
JP4383853B2 (ja) 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
CN113791667B (zh) 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性
US10409353B2 (en) Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems
US9298556B2 (en) Graphics processing watchdog active reset
JP6477495B2 (ja) 情報処理装置、および情報処理方法、並びにプログラム
JP2020507244A (ja) 画像円滑性向上方法および装置
JPWO2008105092A1 (ja) グラフィックス描画装置及びグラフィックス描画方法
TW201140555A (en) Techniques for aligning frame data
US9811872B2 (en) Apparatus and method for generating image data in a region including a plurality of partial regions based on synchronization signals
WO2021139691A1 (zh) 用于控制显示屏的显示频率的方法、装置及电子设备
KR20220027964A (ko) 성능 보장 전력 관리를 갖는 실시간 gpu 렌더링
KR20220143667A (ko) 지연된 그래픽 프로세싱 유닛 렌더 시간을 보상하기 위한 감소된 디스플레이 프로세싱 유닛 전달 시간
US11763414B2 (en) Glitchless GPU switching at a multiplexer
CN104572150B (zh) 一种信息处理方法和装置
CN108268119B (zh) 操作片上***的方法、片上***和电子***
JP2015195003A (ja) コマンド制御装置、コマンド制御方法および集積回路
US20190018443A1 (en) Image transmission apparatus, image transmission system, and method of controlling image transmission apparatus
JP5543241B2 (ja) 通信装置、通信制御方法、およびプログラム
JP6291992B2 (ja) スマート端末、消費電力の状態の制御方法、および、消費電力状態制御プログラム
JP2015158751A (ja) 描画方法、描画装置及びプログラム
US10212316B2 (en) Video processing apparatus
WO2021000226A1 (en) Methods and apparatus for optimizing frame response
JP2022536283A (ja) 可変レートリフレッシュディスプレイのためのフレーム再生

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180521

R150 Certificate of patent or registration of utility model

Ref document number: 6349908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150