[go: up one dir, main page]

JP2015158751A - 描画方法、描画装置及びプログラム - Google Patents

描画方法、描画装置及びプログラム Download PDF

Info

Publication number
JP2015158751A
JP2015158751A JP2014032317A JP2014032317A JP2015158751A JP 2015158751 A JP2015158751 A JP 2015158751A JP 2014032317 A JP2014032317 A JP 2014032317A JP 2014032317 A JP2014032317 A JP 2014032317A JP 2015158751 A JP2015158751 A JP 2015158751A
Authority
JP
Japan
Prior art keywords
unit
image
image creation
images
processing
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.)
Ceased
Application number
JP2014032317A
Other languages
English (en)
Inventor
正明 野呂
Masaaki Noro
正明 野呂
岳生 村上
Takeo Murakami
岳生 村上
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 JP2014032317A priority Critical patent/JP2015158751A/ja
Priority to US14/591,096 priority patent/US20150241951A1/en
Publication of JP2015158751A publication Critical patent/JP2015158751A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/18Timing circuits for raster scan displays
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • 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/14Display of multiple viewports
    • 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)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Power Sources (AREA)

Abstract

【課題】単位期間内に実行されるべき画像データの処理が完了したことを検出し、プロセッサの消費電力を抑制する技術を提供する。【解決手段】所定期間毎に発行される同期信号に基づいて画面を更新する描画方法であって、第1同期信号の発行時から所定期間が経過するまでの第1期間にプロセッサにより作成されることが予定される予定画像数を算出する工程と、第1期間において前記プロセッサにより作成された実績画像数をカウントする工程と、実績画像数が予定画像数に達したことを検出する工程と、実績画像数が予定画像数に達したことの検出に基づき、プロセッサの消費電力を低下させる工程を含む。【選択図】図6

Description

本願は、描画方法、描画装置及びプログラムに関する。
ノート型コンピュータやスマートフォン等の携帯端末においては、バッテリーによる駆動を維持するために、消費電力を抑制する技術が開発されている。携帯端末にて消費される電力の一つに、ディスプレイに表示させる画像のデータ作成を行うプロセッサの消費電力が含まれる。例えばスマートフォン上で起動するアプリケーションソフトウェア(以下、アプリ)がディスプレイ上の画像を更新する場合、スマートフォンが有するプロセッサは、新たな画像データの作成処理を行い、作成された画像データに基づき、新しい画像をディスプレイに表示する。画像の更新は、所定の時間間隔で発行される垂直同期信号等の同期信号に同期して行われる。
同期信号に同期して更新される画像データを作成するプロセッサの消費電力を抑制する技術として、実行すべき画像データの作成処理が、次の同期信号の発行前に完了したときは、プロセッサの動作モードを低消費電力モードに切り替える技術がある(例えば、特許文献1参照)。
特開2005−62798号公報
上述した特許文献1には、単位期間の終了よりも前に、その期間内に処理すべき画像データの処理が完了した場合は、プロセッサを低消費電力モードへ移行させることが記載されている。しかし特許文献1には、処理すべき画像データの処理が全て完了したことを認識する具体的な方法については開示がなされていない。そのため、特許文献1に開示された方法は、消費電力を抑制する技術として十分な利便性があるとは言えない。
本願は、単位期間内に実行されるべき画像データの処理が完了したことを検出し、プロセッサの消費電力を抑制する技術を提供することを目的とするものである。
開示の描画方法は、所定期間毎に発行される同期信号に基づいて画面を更新する描画方法であって、第1同期信号の発行時から所定期間が経過するまでの第1期間にプロセッサにより作成されることが予定される予定画像数を算出する工程と、第1期間において前記プロセッサにより作成された実績画像数をカウントする工程と、実績画像数が予定画像数に達したことを検出する工程と、実績画像数が予定画像数に達したことの検出に基づき、プロセッサの消費電力を低下させる工程とを有する。
本願の技術により、所定期間内に実行されるべき画像データの処理が全て完了したことを検出し、画像データ処理を行うプロセッサの消費電力を抑制することができる。
第1実施例で使用する用語の定義について説明する図である。 第1実施例における、表示装置のハードウェア構成図である。 第1実施例における、グラフィックデータ処理部の動作モードと、グラフィックデータ処理部にて消費される電力等との関係を示す図である。 第1実施例における、表示装置が行う画面作成及び表示に関する処理手順を示す図である。 図4に示した処理に、図3に示した動作モードを対応付けて示す図である。 第1実施例における、CPUの機能ブロック図である。 第1実施例における、画像作成開始通知部の機能ブロック図である。 第1実施例における、分配先登録表の一例である。 第1実施例における、複数のアプリが画像作成開始通知を受信した際の処理タイミングについて説明する図である。 第1実施例における、各アプリによる画像作成処理の詳細を示す図である。 第1実施例における、画像作成処理終了通知部の機能ブロック図である。 第1実施例における、完了検出部の機能ブロック図である。 第1実施例における、モード管理部の機能ブロック図である。 第1実施例における、画像作成開始通知部によって行われる処理のフローチャートである。 第1実施例における、画像作成終了通知部によって行われる処理のフローチャートである。 第1実施例における、完了検出部によって行われる処理のフローチャートである。 第1実施例における、モード管理部によって行われる処理のフローチャートである。 第1実施例における、データ処理が終了した場合にグラフィックデータ処理部の動作モードを休止モードとした場合の様子を示す図である。 第2実施例で使用する用語の定義について説明する図である。 一つのアプリが複数回の画像作成処理を行う場合の、画像作成処理総数について説明する図である。 第2実施例における、CPUの機能ブロック図である。 第2実施例における、再分配処理部の機能ブロック図である。 第2実施例における、再分配先登録表の一例を示す。こ。 第2実施例における、再分配処理部によって行われる処理のフローチャートである。 第2実施例における、完了検出部によって行われる処理のフローチャートである。 第2実施例の変形例における、CPUの機能ブロック図である。 第2実施例の変形例における、通知転送部の機能ブロック図である。 第2実施例の変形例における、通知転送部によって行われる処理のフローチャートである。 第3実施例における、CPUの機能ブロック図である。 第3実施例における、完了検出部の機能ブロック図である。 第3実施例における、コーデック変換処理部によって行われる処理のフローチャートである。 第3実施例における、完了検出部によって行われる処理のフローチャートである。
図1は、第1実施例で使用する用語の定義について説明する図である。図1は、表示装置1として、スマートフォン等のような携帯端末を例示するものである。ディスプレイ2の全体に表示される像を「画面」と呼ぶ。ディスプレイ2上には常に一枚の「画面」が表示され、同期信号が毎秒60回発行される場合であれば、毎秒60枚の「画面」がディスプレイ上で順次更新される。但し、静止画の状態であれば「画面」は更新されず、同一の「画面」が一定時間表示される。一枚の「画面」には、アプリが個別に描画する像3が含まれる。個々のアプリが描画する像3のそれぞれを「画像」と呼ぶ。図1に示す例では一つの「画面」内に3つのアプリのそれぞれが「画像」を表示している。
本実施例では、ある同期信号(以下、Vsyncと呼ぶ)から次に発行される同期信号までの期間(以下、単位期間と呼ぶ)内に処理されるべき画面作成に関するデータ処理が完了したことを検出するための具体的な手法を開示する。画面作成に関するデータ処理が完了したことを検出することにより、プロセッサを休止させることができる期間を適切に認識することができ、表示装置1の消費電力を抑制することができる。
単位期間内で一つの画像のデータを作成する処理が終了しても、必ずしも画面作成に関するデータ処理が全て完了したとはいえない。複数のアプリの各々が画像を更新する場合のように、複数の画像データの作成が同一の単位期間内に行われる場合があるからである。また単位期間内に画像作成を行うアプリの数も、単位期間毎で一定ではない。このような状況において本実施例は、単位期間内に実行される画像作成が全て終了したことを検出して、表示装置1の消費電力を抑制する方法を開示するものである。具体的には、単位期間毎に作成されることが予定される予定画像数を把握し、実際に作成された実績画像数をカウントし、予定画像数が予定画像数に達したことを以て、全ての画像作成処理が終了したことを検出する。予定画像数の把握手法や実績画像数のカウント手法等について、以下、図面に基づいて詳述する。
図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及び210は、Central Processing Unit(CPU)、Micro−Processing Unit(MPU)、Digital Signal Processor(DSP)、Field−Programmable Gate Array(FPGA)等の電子回路部品である。メモリ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動作モードを待機モードと呼ぶ。尚、クロックの停止とは、クロック供給源となるクロック生成回路の停止と、クロック生成回路を稼働させたままでクロック供給経路を経つ、所謂クロックゲーティングの何れの場合も含む意味である。第3動作モードは、GPU210に供給されるクロックが停止され、かつ内部バス230に供給されるクロックも停止された状態である。この状態ではGPU210はデータ処理を行っておらず、また第1VRAM220へのアクセスも行えない状態である。本明細書では、第3動作モードを休止モードと呼ぶ。第4動作モードは、GPU210への電力供給が停止され、かつ内部バス230への電力供給も停止される状態である。本明細書では、第4動作モードを電源オフモードと呼ぶ。尚、電力供給の停止とは、電力の供給源となる電源回路の停止と、電源回路を稼働させたままで電力供給経路を経つ、所謂パワーゲーティングの何れの場合も含む意味である。
図3に示すように、グラフィックデータ処理部200で消費される電力は、第1動作モードが一番大きく、第4モードが一番小さい。また、第1動作モードへの遷移に要する時間は、第2動作モードが一番短く、第4動作モードが一番長い。尚、図3に示した4つの動作モードは、消費電力が異なる複数の動作モードについて説明するための例示であり、表示装置1がここに開示される動作モードを必須の要件として有することを意図するものではない。また各動作モードの呼称についても実施形態を限定する意図はなく、他の呼称が付されてもよい。
図4に基づいて、表示装置1における画面作成及び表示に関する処理手順を説明する。表示装置1は、所定間隔で発行されるVsyncに同期して1フレームの画面を作成してディスプレイ600に表示する。図4においては、横軸を時間軸とし、順次発行されるVsync毎に実行される画面作成及び表示に関する処理の流れを示している。尚本明細書においては、「画像作成」とは、画像データを作成する処理を意味し、「合成処理」とは、画像データを合成して最終的にディスプレイ600に表示させる画面データを作成する処理を意味し、「表示」とは、画面データをディスプレイ600に実際に表示することを意味する。
図4において、まずVsync1の発行に基づき、画像作成処理が行われる。ここでは複数の画像作成処理がシリアルに行われる例を示している。例えば表示装置1上で複数のアプリが起動している場合であって、複数のアプリがそれぞれディスプレイ600上に表示されている画像を更新する必要がある場合は、複数のアプリの各々が画像作成処理を行う。複数のアプリの各々が画像作成処理によって生成した画像データは、そのままディスプレイ600上に表示される訳ではなく、他のアプリによる画像データと重ね合わせる合成処理を行う必要がある。そのため、作成された画像データは、一旦第1VRAM220に格納される。
次にVsync2の発行に基づき、合成処理が行われる。合成処理により、Vsync1に基づいて生成されて第1VRAM220に格納された画像データから画面データが作成される。画面データは、第1VRAM220に格納された後、第2VRAM300に転送されるか、もしくは第1VRAM220に格納されることなく第2VRAM300に格納される。合成処理が終了した後に、各アプリが画像を更に更新する場合には、続いて画像作成処理が行われて、新しい画像データを第1VRAM220に格納する。図4に示す例では2つの画像作成処理が行われる。
次にVsync3の発行に基づき、画面表示処理が行われる。具体的には、Vsync2に基づいて生成されて第2VRAM300に格納された画面データが、ディスプレイ600に表示される。また、Vsync2に基づいて生成されて第1VRAM220に格納された画像データについての合成処理が行われる。合成処理が終了すると、同様に画像作成処理が行われる。この例では、Vsync3に対応する単位期間では画像作成処理が一つのみ行われる例を示している。
図4に示されるように、合成処理と画像作成処理は、時間的に重なって処理を行うことはできない。これは、合成処理と画像作成処理はいずれも、GPU210を含むグラフィックデータ処理部200にて実行されるものであるためである。両処理がグラフィックデータ処理部200にて競合することを避けるため、Vsyncが発行された際には、まず合成処理が行われ、その後に画像作成処理が行われる。また複数の画像作成処理同士についても、グラフィックデータ処理部200での処理が競合することを避けるために、排他的に処理が行われる。尚、画面表示処理は、第2VRAMに格納された画面データに基づいてディスプレイコントローラ500によって実行される処理であり、グラフィックデータ処理部200と独立して処理が行えるため、合成処理や画像作成処理と時間的に重なった処理とすることが可能である。
図5は、図4に示した処理に、図3に示した動作モードを対応付けて示す図である。図5中の「α」の表記は、画像作成処理を意味し、「β」の表記は合成処理を意味するものとする。グラフィックデータ処理部200が画像作成処理を実行する期間は、グラフィックデータ処理部200の動作モードはアクティブモードである。またグラフィックデータ処理部200が合成処理を実行する期間も、動作モードはアクティブモードである。一方、画像作成処理や合成処理が行われていない期間は、グラフィックデータ処理部200は待機モードとなる。ここで、グラフィックデータ処理部200で消費される電力を削減するためには、画像作成処理や合成処理以外の期間を、待機モードよりも消費電力が小さい休止モードや電源オフモードに制御することが考えられる。但し図3にて示したように、消費電力が小さい動作モードほど、アクティブモードへの移行に要する時間が長くなることを考慮する必要がある。例えば図4において、Vsync2に基づいて実行される一つ目の画像作成処理が終了した時点で、動作モードをアクティブモードから例えば休止モードに移行させたとする。この場合は、待機モードに比べて消費電力を削減することができる。しかし図5に示す例では、グラフィックデータ処理部200は、次のVsync3が発行されるまでにもう一つの画像作成処理を実行しなければならない。そのため、動作モードを休止モードからアクティブモードへ戻す必要があるが、休止モードからアクティブモードへ移行させるために要する時間は、待機モードからアクティブモードへ移行させるために要する時間よりも長い。そのため、図5内に表記した期間Xが長くなり、2つ目の画像作成処理がVsync3の発行までに完了しなくなることが生じ得る。このような場合は、画像作成処理の遅延に起因して、後続のVsyncにて実行される合成処理及び画面表示処理が遅延し、ディスプレイ600の画面表示が円滑に行えないという問題が生じる。そこで本実施例では、各Vsyncにおいて画像作成処理の終了を検知した際に、処理待ちの他の画像作成処理があるか否かを判定する。そして処理待ちの他の画像作成処理がない、つまり次のVsync発行までに処理すべき全ての画像作成処理を実行したと判定した場合には、動作モードを、より消費電力の小さいモードへ移行させる。これにより、図5内に示す期間A、期間B、期間C、期間Dにおけるグラフィックデータ処理部200の消費電力を削減することがきる。また図5内に示す期間Xにおいては、処理待ちの画像作成処理が存在するため、動作モードはアクティブモードへの移行に要する時間が他のモードよりも短い待機状態とすることで、期間Xが延伸することを防止することができる。処理待ちの画像作成処理の存否を確認する方法について、以下に説明する。
図6は、CPU100の機能ブロック図である。CPU100は、メモリ400またはCPU100がアクセス可能な他の記憶装置に格納された所定のプログラムを実行することにより、図6に示す各機能を実現する。CPU100は、画像作成処理部110、グラフィックライブラリ120、画像作成処理終了通知部125、合成処理部130、完了検出部140、タイマ部150、画像作成開始通知部160、モード管理部170、グラフィックデータ処理部ドライバ180として機能する。
画像作成処理部110はアプリ層により実現される。画像作成処理部110は、表示装置1上で起動している各アプリが画像を更新する際に、グラフィックライブラリ120及びグラフィックデータ処理部ドライバ180を介してグラフィックデータ処理部200を用いて画像作成処理を実行し、新しい画像データを作成する。また画像作成処理部110はVsyncが発行される前に、画像の更新を行う必要があるアプリを、コールバック関数等により画像作成開始通知部160へ通知しておく。例えばアプリ1とアプリ2が画像を更新する必要がある場合は、画像作成を開始できるタイミングになった時点でアプリ1とアプリ2に対して画像作成開始通知を送付するよう、画像作成開始通知部160へ通知しておく。画像作成開始通知部160は、画像作成処理部110からの通知に基づき、画像作成開始通知の送付先を記憶する。
タイマ部150はカーネル層により実現され、所定の時間間隔でVsyncを発行し、合成処理部130へ送付する。合成処理部130はサービス層により実現され、タイマ部150から送付されたVsyncに基づいて、画像作成処理部110が作成した画像データの合成処理を行う。画像データの合成処理が終了すると、合成処理の終了通知を画像作成開始通知部160へ送付する。
画像作成開始通知部160はカーネル層により実現される。画像作成開始通知部160は、合成処理部130から合成処理の終了通知を受けると、先に画像作成処理部110から通知された画像作成処理を行うアプリに対して、画像作成開始通知を分配する。この画像作成開始通知のアプリに対する分配は、図6に示すようにグラフィックライブラリ120を介して行ってもよく、またグラフィックライブラリ120を介さずに画像作成処理部110のアプリに分配してもよい。また画像作成開始通知部160は、先に画像作成処理部110から通知された、画像作成処理を行うアプリの数を、当該Vsyncに対応する単位期間に作成されるべき画像の数である予定画像数として、完了検出部140に通知する。
グラフィックライブラリ120に設けられた画像作成処理終了通知部125は、各画像作成処理の終了を検出し、画像作成処理終了通知を完了検出部140に対して送信する。完了検出部140は、先に画像作成開始通知部160から通知された予定画像数と、画像作成終了通知部125から受けた画像作成終了通知の数、すなわち実際に作成された画像の数に基づき、当該Vsyncに対応する単位期間で処理されるべき画像作成処理が全て終了したことを検出し、モード管理部170に完了通知を送付する。
カーネル層で実現されるモード管理部170は、受信した完了通知に基づき、グラフィックデータ処理部200の動作モードの制御を行う。
図7は、画像作成開始通知部160の機能ブロック図である。画像作成開始通知部160は、分配部161と、分配先管理部162と、分配数計数部163とを有する。また、画像作成開始通知部160は分配先登録表164を保持する。分配先管理部162は画像作成処理部110から、コールバック関数等により、次に発行されるVsyncに基づいて画像作成処理を行うアプリを特定する情報を受信する。分配先管理部162は、受信した当該情報に基づき、分配先登録表164を作成する。分配先登録表164は、画像作成を行うアプリを特定する情報を格納した表であり、画像作成開始指示を送付する先となるアプリを特定する情報でもある。図8は、分配先登録表164の一例である。ここでは、画像作成開始通知の分配先として、アプリ1とアプリ2が登録されている例を示す。図7において分配部161は、合成処理部130から合成処理の終了通知を受けると、分配数計数部163へ分配数を計数するよう指示する。分配数計数部163は、分配部161からの指示に従い分配先登録表164を参照し、画像作成開始通知の分配数を特定する。図8に示す例では、分配数は「2」となる。分配数計数部163は、特定した分配数を完了検出部140へ通知する。
一方、分配部161は分配先登録表164を参照することによって画像作成開始通知の分配先となるアプリを特定する。そしてグラフィックライブラリ120を介して画像作成処理部110の特定のアプリに、画像作成開始通知を分配する。
図9は、複数のアプリが画像作成開始通知を受信した際の処理タイミングについて説明する図である。合成処理部130の処理に引き続き、画像作成開始通知部160から画像作成開始通知が、事前に分配先登録表164に登録された特定のアプリに対して送付される。これら画像作成開始通知はそれぞれのアプリにより受信される。しかし既に述べたように、画像作成処理はグラフィックデータ処理部200のGPU210を使用して実行されるものであり、複数の画像作成処理がGPU210で競合することを避けるための排他処理が行われる。そのため、図9の例ではまずアプリ1による画像作成処理が行われ、アプリ1による画像作成処理が終了した後、アプリ2による画像作成処理が行われる。
図10は、各アプリによる画像作成処理の詳細を示す図である。画像作成処理は、画像作成前処理と、画像作成本処理と、画像作成後処理とを含む。画像作成前処理の一例として、画像の背景となる絵の選択や、使用するメモリ領域のデータ消去等が挙げられる。画像作成前処理が終了すると、画像作成本処理により画像データが形成される。画像データは第1VRAM220の特定の領域に格納される。画像作成本処理が終了した後、画像作成後処理が行われる。画像作成後処理の一例として、第1VRAM220のデータ格納領域の切替え作業が挙げられる。データ格納領域の切替えとは、画像作成処理部110が作成した画像データを格納する第1VRAM内のデータ領域を切り替える作業を言う。具体的には、画像作成処理部110が作成した画像データを第1VRAM220に格納する場合に、まず第1VRAM220の第1のデータ格納領域に画像データを格納した後、第1のデータ領域を合成処理部130に対して解放する。画像作成処理部110は、次に作成する画像データを第1VRAM220の他の第2のデータ格納領域に格納する。画像作成処理部110は、第2のデータ格納領域に画像データを格納した後は、第2のデータ格納領域を合成処理部130に対して解放して再度第1のデータ格納領域に画像データを格納する。このように画像作成本処理が終了した後には、画像作成後処理として第1VRAM220のデータ格納領域の切替え作業が行われる。但し画像作成後処理は、ここで説明したデータ格納領域の切替え作業に限定されるものではない。以下に説明するように、画像作成処理の終了を検出するために利用できる処理であれば、他の種の画像作成後処理であっても本実施例に適用可能である。
尚、図10の下段に示したのは、画像作成前処理、画像作成本処理、画像作成後処理におけるグラフィックデータ処理部200の動作モードの例である。画像作成前処理においてGPU210がデータ処理を行わない場合は待機モードとなり、画像作成本処理においてGPU210がデータ処理を行っている期間はアクティブモードとなる。また画像作成後処理においてもGPU210が必要な処理を行うタイミングで動作モードがアクティブとなる。尚、画像作成本処理の途中においても、処理すべきデータについてGPU210が処理を完了し、次に処理するデータをGPU210が待っている状態においては、動作モードは待機モードとなる。
図11は、ライブラリ層に設けられた画像作成処理終了通知部125の機能ブロック図である。画像作成処理終了通知部125は、後処理指示受信部126と、通知部127と、後処理実行部128とを含む。画像作成処理部110は、図10にて示した画像作成本処理が終了した後、後処理指示を画像作成処理終了通知部125へ送付する。この後処理指示は、作成した画像データを第1VRAM220の所定のデータ格納領域へ格納したアプリが個別に送付するものであり、複数のアプリがそれぞれ画像データを作成した場合は、複数のアプリがそれぞれ後処理指示を送付する。後処理指示受信部126が画像作成処理部110から後処理指示を受信すると、通知部127は当該画像作成処理が終了したことを完了検出部140へ通知する。この通知を画像作成終了通知と呼ぶ。この画像作成終了通知は、個々の画像データが作成されたことを示す通知であり、後述する完了検出部140が全ての画像データが作成された際に行う完了通知とは異なるものである。通知部127が画像作成終了通知を行った後、後処理実行部128は画像作成後処理を実行し、画像作成後処理を実行した旨を画像作成処理部110へ通知する。
図12は、完了検出部140の機能ブロック図である。完了検出部140は、予定画像数保持部141と、実績画像数カウント部142と、判定部143とを有する。予定画像数保持部141は、先に画像作成開始通知部160から通知された予定画像数を保持する。実績画像数カウント部142は、画像作成処理終了通知部125から受けた画像作成処理終了通知の数をカウントする。判定部143は、予定画像数保持部141に保持された数と、実績画像数カウント部142によってカウントされた数が一致するか否かを判定する。予定画像数保持部141に保持された数と、実績画像数カウント部142によってカウントされた数が一致する場合は、当該Vsyncに対応する単位期間で処理されるべき画像作成処理が全て終了したと判断し、モード管理部170に完了通知を送付する。
図13は、モード管理部170の機能ブロック図である。モード管理部170は、割込み受信部171と、設定部172と、制御部173とを有する。割込み受信部171は、グラフィックデータ処理部200内のGPU210から処理終了の割込み通知を受ける。例えば画像作成処理に関するデータ処理が行われる際、GPU210に与えられたデータについての処理がなされ、GPU210が処理すべきデータが存在しない状況になると、GPU210は処理終了の割込み通知をモード管理部170に対して送付する。また図10及び図11にて説明した画像作成後処理が実行された際にも、GPU210からの終了の割込み通知が行われる。割込み受信部171は割込み通知を受けると、制御部173にグラフィックデータ処理部200の動作モードを切り替えるよう指示する。制御部173は、動作モードの切り替えの指示を受けると、設定部172に設定されている動作モードを参照する。設定部172には、グラフィックデータ処理部200の動作モードが設定されている。例えば設定部172に「待機モード」が設定されている場合には、制御部173はグラフィックデータ処理部200の動作モードを待機モードに切り替える。
グラフィックデータ処理部ドライバ180は、新たにグラフィックデータ処理部200にデータ処理をさせる場合は、必要なデータをグラフィックデータ処理部200に送信するとともに、制御部173にデータ処理の開始を伝える。これにより制御部173は、動作モードを待機モードからアクティブモードへ移行させ、グラフィックデータ処理部200でのデータ処理が開始される。
このような制御において、あるVsyncに対応する単位期間に実行されるべき画像作成処理のうち、最後の画像作成処理の画像作成後処理に対応して完了検出部140から完了通知がなされると、設定部172は設定されている動作モードを、例えば「待機モード」から「休止モード」に変更する。その後、グラフィックデータ処理部200から処理終了の割込み通知、具体的には最後の画像作成処理の画像作成後処理の実行に伴う処理終了の割込み通知がなされる。制御部173は設定部172を参照し、設定されている動作モードが「休止モード」であることに従い、グラフィックデータ処理部200の動作モードを休止モードに制御する。このような一連の動作により、各Vsyncに対応して行われる画像作成処理が全て終了した場合に、グラフィックデータ処理部200の動作モードを、より消費電力の小さいモードに移行させることが可能となる。
そして次のVsyncに起因して新たな合成処理や画像作成処理が発生した場合は、グラフィックデータ処理部ドライバ180は、必要なデータをグラフィックデータ処理部200に送信するとともに、制御部173にデータ処理の開始を伝える。これにより、制御部173は、動作モードを休止モードからアクティブモードへ移行させ、グラフィックデータ処理部200でのデータ処理が再開する。またこの際、グラフィックデータ処理部ドライバ180は、設定部172の設定を「休止モード」から「待機モード」に戻す処理を行っておく。これにより、次にグラフィックデータ処理部200から処理終了の割込み通知が発生した場合には、動作モードは休止モードではなく待機モードに切り替わることになる。
図14は、画像作成開始通知部160によって行われる処理のフローチャートである。画像作成開始通知部160による処理は処理1000により開始される。処理1001において分配先管理部162が、画像作成処理部110からの通知に基づき、画像作成開始通知の分配先となるアプリを分配先登録表164に登録する。処理1002において分配部161が、合成処理部130から合成処理の終了通知を受信する。処理1003において分配数計数部163が、分配先登録表164を参照することにより画像作成開始通知の分配数を確認する。処理1004において分配数計数部163が、完了検出部140に対して画像作成開始通知の分配数を通知する。処理1005において分配部161が、分配先登録表164に登録されているアプリに対して画像作成開始通知を分配し、処理1006にて処理を終了する。
図15は、画像作成終了通知部125によって行われる処理のフローチャートである。画像作成終了通知部125による処理は処理1100により開始される。処理1101において後処理指示受信部126が、画像作成後処理の実行指示を画像作成処理部110より受信する。処理1102において通知部127が、画像作成終了通知を完了検出部140に対して送信する。処理1103において後処理実行部128が、画像作成後処理を実行する。処理1104において後処理実行部128が、画像作成処理部110に対して後処理が終了した旨を通知し、処理1105にて処理を終了する。
図16は、完了検出部140によって行われる処理のフローチャートである。完了検出部140による処理は処理1200により開始される。処理1201において完了検出部140は外部から通知を受信する。処理1202にて完了検出部140は、通知の種別を判定する。受信した通知が画像作成開始通知部160から送信された画像作成開始信号の分配数の通知である場合は処理1203へ進み、受信した通知が画像作成処理終了通知部125から送信された画像作成処理終了通知である場合は処理1204へ進む。処理1203において予定画像数保持部141は、通知された画像作成開始通知の分配数を、画像作成処理の予定画像数として保持し、処理1201へ戻る。処理1204において実績画像数カウント部142は、受信した画像作成処理終了通知の数を、実際に作成された画像の数である実績画像数としてカウントする。処理1205において判定部143が、予定画像数保持部141に保持された予定画像数と、実績画像数カウント部142によってカウントされた実績画像数が一致しているか否かを判定する。予定画像数と実績画像数が一致していないと判定された場合は処理1201へ戻り、予定画像数と実績画像数が一致したと判定された場合は、処理1206へ進む。処理1206において判定部143が、モード管理部170に画像作成処理の完了通知を行い、処理1207にて処理を終了する。
図17は、モード管理部170によって行われる処理のフローチャートである。モード管理部170による処理は処理1300により開始される。処理1301においてモード管理部170は、外部からの通知を受信する。処理1302においてモード管理部170は、受信した通知の種別を判定する。受信した通知が、完了検出部140から送信された完了通知である場合は処理1303へ進み、受信した通知が、グラフィックデータ処理部200から送信された処理終了の割込み通知である場合は処理1304へ進み、受信した通知が、グラフィックデータ処理部ドライバ180からの開始通知である場合は処理1307へ進む。
処理1303において設定部172は、完了検出部140からの完了通知に基づき、グラフィックデータ処理部200の動作モードを「待機モード」から「休止モード」へ変更し、処理1301へ戻る。処理1304において制御部173は、グラフィックデータ処理部200からの終了通知と、設定部172の設定内容に基づき、グラフィックデータ処理部200の動作モードを選択する。設定部172に設定された動作モードが「休止モード」である場合は休止モードが選択され、処理1305へ移行し、設定部172に設定された動作モードが「待機モード」である場合は待機モードが選択され、処理1306へ移行する。処理1305において制御部173はグラフィックデータ処理部200の動作モードを休止モードに切り替えて処理1301へ戻る。また処理1306において制御部173は、グラフィックデータ処理部200の動作モードを待機モードに切り替えて処理1301へ戻る。
処理1307において設定部172は、グラフィックデータ処理部ドライバ180から送信される開始通知に基づいて、グラフィックデータ処理部200をアクティブモードにて制御する。処理1308において設定部172は、グラフィックデータ処理部200の動作モードの設定が「休止モード」になっている場合は、設定を「待機モード」に変更する。
このように、本実施例によれば、1フレーム内にて作成されることが予定される画像の数を予定画像数として認識し、実際に作成された画像の数である実績画像数が予定画像数に一致したことを検出することにより、画像作成処理の全てが終了したことを検出することができる。これにより、完了検出のタイミングから少なくとも次のVsyncが発行されるまでの期間は、グラフィックデータ処理部200の動作モードを、休止モードや電源オフモードのように待機モードに比べて消費電力を抑えることができるモードへ移行させることができる。
図18は、全てのデータ処理が終了した後、次にデータ処理が必要になるまで、グラフィックデータ処理部200の動作モードを休止モードとした場合の様子を示す図である。図4に示した動作モードの制御に比べ、期間A、期間B、期間C及び期間Dにおいては休止モードとなるため、消費電力を抑えることができる。図18においては、休止モードからアクティブモードへの移行時間、及び待機モードからアクティブモードへの移行時間は表現されていない。しかし図3にて説明したように、待機モードからアクティブモードへの移行時間は、休止モードからアクティブモードへの移行時間よりも長い。そこで本実施例の手法によって、単位期間内に実行すべき他の画像作成処理が残っている状態で休止モードへ移行することを避けることにより、他の画像作成処理の開始及び終了が遅延することを抑制できる。
尚、図18に示す動作例では、休止モードに入った後、次に発行されるVsyncの後に開始される合成処理の開始タイミングでアクティブモードへ移行しているが、他の動作例も考えられる。例えば休止モードに移行した後、次に発行されるVsyncに基づいてまず休止モードから待機モードへ移行させておき、合成処理の開始時には待機モードからアクティブモードへ移行させてもよい。これにより、合成処理の開始タイミングの遅延を抑制することができる。この場合は、例えば図13に示したモード管理部170において、設定部172がタイマ部150からVsyncの受信するよう改変し、Vsyncに基づいて動作モードを休止モードから待機モードへ変更するようにする。またVsyncを割込み信号として割込み受信部171が受信するよう改変し、Vsyncの受信に応じて、制御部173が動作モードを切り替えるようにすることにより実現できる。この動作例においては更に、全ての画像作成処理が終了した時点で、次のVsyncが発行されるまでの期間が所定の閾値よりも短い場合は、休止モードへの変更を行わずに待機モードを維持するように制御してもよい。
また、図11、図13及び図17では、画像作成処理終了通知部125が、まず完了検出部140に画像作成終了通知を出し、その後に画像作成後処理が行われる動作例を示したが、他の動作例も考えらえる。例えば画像作成処理終了部125は、画像作成後処理が終了した後に画像作成処理終了通知を行ってもよい。この場合は、グラフィックデータ処理部200でのデータ処理は、モード管理部170が完了検出部140から完了通知を受信した時点で、画像作成後処理を含め全て終了している。そのため、グラフィックデータ処理部200からの処理終了の割込み通知を待つことなく、制御部173が動作モードを休止モードに切り替えるよう制御を行う。
また本実施例では、画像作成処理部110から画像作成開始通知部160に通知された画像作成開始通知の分配先アプリの数を、完了検出部140へ通知する方法について説明したが、他の方法も考えられる。例えば画像作成処理部110は、画像作成開始通知部160に画像作成開始通知の分配先アプリを通知するとともに、同じ情報を完了検出部140へ通知し、完了検出部140が直接予定画像数を判断して予定画像数保持部141に保持してもよい。
次に第2実施例として、画像作成処理を行う一つのアプリが複数の画像作成処理を行う場合に、全ての画像作成処理が終了したことを検出する方法について開示する。
第1実施例は、アプリはそれぞれ一つの画像作成処理を行うという前提に基づいて説明した。ところが、一つのアプリが複数の画像作成処理を行う場合がある。例えばアプリがゲームアプリのように、背景画像と、その背景画像上を背景画像とは独立して移動するキャラクター画像とを合成した画像データを、当該アプリの画像としてディスプレイ上に表示するような場合である。このように一つのアプリが複数の画像作成処理を行う場合は、画像作成処理を行うアプリの数と実際に実行される画像作成処理の数は一致しない。
図19は、第2実施例で使用する用語の定義について説明する図である。図19は図1と同様に表示装置1を示している。第1実施例と同様に、ディスプレイ2に表示される像全体を「画面」と呼び、個々のアプリが描画する像3を「画像」と呼ぶ。更に、1つの「画像」を構成する複数のオブジェクト4を「要素画像」と呼ぶ。
図20は、一つのアプリが複数回の画像作成処理を行う場合の、画像作成処理総数について説明する図である。画像作成開始通知部160の分配登録表164にアプリ1とアプリ2が登録されている場合は、アプリ1とアプリ2のそれぞれに画像作成開始通知が分配される。アプリ1とアプリ2はそれぞれ画像1と画像2を作成し、アプリ1は画像1を作成するために、画像1に含まれる要素画像1a及び要素画像1bを作成するものとする。この場合、アプリ1とアプリ2により合計3回の画像作成処理が行われることになる。第2実施例では、このように一つのアプリが複数回の画像作成処理を行う場合もグラフィックデータ処理部200の完了タイミングを適切に把握するものである。尚、本実施例において、「画像数」とは、要素画像を含めた画像数を意味し、上記の例のようにアプリ1が要素画像1aと要素画像1bを作成し、アプリ2が画像2を作成した場合は、作成された合計の画像数は「3」とカウントすることとする。すなわち画像数は、画像作成処理の回数と等しくなる。
図21は、第2実施例におけるCPU100の機能ブロック図である。第1実施例において開示した機能ブロックと同一の機能ブロックについては同一の参照符号を付し、説明を省略する。CPU100は、画像作成処理部110、グラフィックライブラリ120、画像作成処理終了通知部125、合成処理部130、完了検出部140、タイマ部150、画像作成開始通知部160、モード管理部170、グラフィックデータ処理部ドライバ180に加え、ライブラリ層により実現される再分配処理部190として機能する。再分配処理部190は、画像作成開始通知部160から送信された画像作成開始通知を、画像作成処理部110のアプリに再分配する機能を有する。また再分配処理部190は、例えばアプリ1に含まれるスレッド1aが要素画像1aを作成し、スレッド1bが要素画像1bを作成する場合は、それぞれのスレッドに対して画像作成開始通知を送信する。更に再分配処理部190は、再分配を行うことによって増加する画像の数を、完了検出部140に通知する。
図22は、再分配処理部190の機能ブロック図である。再分配処理部190は、再分配先管理部191と、再分配部192と、再分配数計数部193とを有する。また再分配処理部190は、再分配先登録表194を保持する。再分配先管理部191は、画像作成処理部110から画像の更新を行うアプリ、すなわち次に発行されるVsyncに基づいて画像作成処理を行うアプリ毎に、再分配先に関する情報を受信する。再分配先管理部191は、受信した当該情報に基づき、再分配先登録表194を作成する。再分配先登録表194は、画像作成を行うアプリ毎に再分配先を特定する表である。図23に、再分配先登録表194の一例を示す。この例においては、再分配先として、アプリ1に含まれるスレッド1a及びスレッド1bと、アプリ2に含まれるスレッド2が登録されている。図22において再分配部192は、画像作成開始通知部160から画像作成開始通知を受けると、再分配数計数部193へ再分配数を計数するよう指示する。再分配数計数部193は、再分配部192からの指示に従い再分配登録表194を参照し、画像作成開始通知の分配数を特定する。図23に示す例では、再分配数は「3」となる。再分配数計数部193は、再分配数から、登録されているアプリ数である「2」を減算した値である「1」を、加算値として完了検出部140へ通知する。これは、再分配を行うことにより、作成される画像数が1だけ増加したことを意味する。完了検出部140は、画像作成開始通知部160から通知されて予定画像数保持部141に保持していた値である「2」に、再分配処理部190から通知された加算値「1」を加算し、最終的な予定画像数として「3」を予定画像数保持部141に保持する。
図24は、再分配処理部190によって行われる処理のフローチャートである。再分配処理部190による処理は処理1500により開始される。処理1501において再分配先管理部191が、画像作成処理部110からの通知に基づき、画像作成開始通知の再分配先を特定し、再分配先登録表194に登録する。処理1502において再分配部192が、画像作成開始通知部160から画像作成開始通知を受信する。処理1503において再分配数計数部193が、再分配先登録表194を参照することにより画像作成開始通知の再分配数を確認する。処理1504において再分配数計数部193が、完了検出部140に対して予定画像数の加算値を通知する。処理1505において再分配処理部190が、再分配先登録表194に登録されている再分配先であるスレッドに対して画像作成開始通知を再分配し、処理1506にて処理を終了する。
図25は、第2実施例における完了検出部140によって行われる処理のフローチャートである。第1実施例における完了通知140部の処理と同一の処理については同一の符号を付し、説明を省略する。第1実施例での処理に対して、処理1208が更に行われる。処理1202で行われる通知の種別判定において、通知が再分配処理部190からの加算通知であった場合は、処理1208において予定画像数保持部141が、保持している予定画像数に加算値を加算した値を新たな予定画像数として保持する。
これにより、一つのアプリが複数回の画像作成処理を行う場合であっても、画像作成処理の総数を適切に把握することができ、よって全ての画像作成処理が終了したことを完了検出部140により検出することができる。
次に第2実施例の変形例について開示する。図21から図25では、再分配によって増加する画像数を、再分配処理部190が完了検出部140に通知する例を開示した。ここでは、一つのアプリに対して再分配が行われた場合は、再分配に基づいて実行される複数の画像作成処理の全てが終了した時点で、単一の画像作成終了通知が完了検出部140に送信される例について説明する。
図26は、第2実施例の変形例におけるCPU100の機能ブロック図である。第2実施例において開示した機能ブロックと同一の機能ブロックについては同一の参照符号を付し、説明を省略する。CPU100は、図21にて示した機能に加え、ライブラリ層により実現される通知転送部195として機能する。通知転送部195は、再分配処理部190から得られる再分配数に関する情報と、画像作成処理終了通知部125から受信する画像作成終了通知とに基づき、各アプリの画像作成処理が終了した場合に、画像作成終了通知を完了検出部140に転送する。例えばアプリ1が要素画像1aと要素画像1bを作成する場合は、要素画像1aと要素が像1bの両方が作成された時点で、通知転送部195は単一の画像作成処理終了通知を完了検出部140に送付する。
図27は、第2実施例の変形例における通知転送部195の機能ブロック図である。通知転送部195は、再分配数保持部196と、終了通知カウント部197と、転送部198とを有する。終了通知転送部195は、再分配処理部190から通知されたアプリ毎の再分配数を再分配数保持部196に保持する。終了通知カウント部197は、画像作成処理終了通知部125から受けた画像作成処理終了通知の数をアプリ毎にカウントする。転送部198はアプリ毎に、再分配数保持部196に保持された数と、終了通知カウント部197によってカウントされた数が一致した場合に、当該アプリに関する全ての画像作成処理が終了したと判断し、完了検出部140に画像作成処理終了通知を転送する。
図28は、第2実施例の変形例における通知転送部195によって行われる処理のフローチャートである。通知転送部195による処理は処理1400により開始される。処理1401において通知転送部195は外部から通知を受信する。処理1402において通知転送部195は、通知の種別を判定する。受信した通知が再分配処理部190から送信された再分配数の通知である場合は処理1403へ進み、受信した通知が画像作成処理終了通知部125から送信された画像作成処理終了通知である場合は処理1404へ進む。処理1403において再分配数保持部196は、通知された再分配数を保持し、処理1401へ戻る。処理1404において終了通知数カウント部197は、受信した画像作成処理終了通知の数をアプリ毎にカウントする。処理1405において転送部198が、再分配数保持部196に保持された数と、終了通知カウント部197によってカウントされた数が一致しているか否かを判定する。再分配数保持部196に保持された数と画像作成終了通知の数が一致していないと判定された場合は処理1401へ戻り、再分配数保持部196に保持された数と画像作成終了通知の数が一致したと判定された場合は、処理1406へ進む。処理1406において転送部198が、完了検出部140に画像作成処理通知をアプリ毎に転送し、処理1407にて処理を終了する。
これにより、一つのアプリが複数の画像作成処理を行う場合であっても、各アプリが複数の画像作成処理の全てを終了した時点で単一の画像作成処理終了通知を完了検出部140に送信することができ、グラフィックデータ処理部200の全ての処理が終了したことを完了検出部140により検出することができる。
次に第3実施例を開示する。第1及び第2実施例では、GPU210を含むグラフィックデータ処理部200による画面作成及び画像作成に関する処理が完了した場合に、グラフィックデータ処理部200の動作モードを変更し、消費電力を抑制する動作例について説明した。第3実施例では、グラフィックデータ処理部200による画像作成に関する処理が完了した場合に、グラフィックデータ処理部を画面作成及び画像作成処理以外の他の目的に利用する動作例を開示する。
画面作成及び画像作成以外の目的にも使用し得るGPUを、一般にGeneral Purpose GPU(以下、GPGPU)と呼ぶ。GPGPUは、画面作成及び画像作成に関する処理が行われていない期間を、他の目的で利用するものである。第1及び第2実施例にて示した完了検出の技術は、GPUをGPGPUとして使用する場合にも用いることができる。以下、他の目的の処理として、デジタルテレビ放送の録画アプリXによる処理を例として説明する。
図29は、第3実施例におけるCPU100の機能ブロック図である。第1実施例において開示した機能ブロックと同一の機能ブロックについては同一の参照符号を付し、説明を省略する。CPU100は、第1実施例にて示した機能に加え、アプリ層により実現されるアプリXによるコーデック変換処理部800と、ライブラリ層により実現されるGPGPUライブラリ850として機能する。コーデック変換処理部800は、GPGPUライブラリ850及びグラフィックデータ処理部ドライバ180を介して、グラフィックデータ処理部200に対して必要な指示及びデータを送信し、コーデック変換処理を行う。またコーデック変換処理部800は、自身がグラフィックデータ処理部200を利用したい場合、完了検出部140に対してグラフィックデータ処理部200の利用申請の登録を行う。そして完了検出部140からグラフィックデータ処理部200の利用許可の通知を受け、グラフィックデータ処理部200を用いてコーデック変換処理を実行する。
図30は、第3実施例における完了検出部140の機能ブロック図である。第1実施例にて示した機能ブロックと同一の機能ブロックについては同一の参照符号を付し、説明を省略する。完了検出部140は、予定画像数保持部141、実績画像数カウント部142に加え、利用許可部144を有する。また完了検出部140は、利用申請登録表145を保持する。利用許可部144は、コーデック変換処理部800から利用申請を受けると、利用申請登録表145に登録する。そして予定画像数保持部141に保持された数と、実績画像数カウント部のカウント数が一致すると、コーデック変換処理部800に対して利用許可通知を送信する。
図31は、コーデック変換処理部800によって行われる処理のフローチャートである。コーデック変換処理部800による処理は処理1600により開始し、処理1601においてコーデック変換処理部800は、完了検出部140に対してグラフィックデータ処理部200の利用申請を行う。処理1602においてコーデック変換処理部800は、完了検出部140から利用許可通知を受信する。処理1603においてコーデック変換処理部800は、グラフィックデータ処理部200を利用してコーデック変換処理を行う。処理1604においてコーデック変換処理部800は、自身が行う処理の全てが終了したか否かを判定する。全ての処理が終了している場合は、処理1605にて処理が終了し、全ての処理が終了していない場合は、処理1601に戻る。
図32は、第3実施例における完了検出部140によって行われる処理のフローチャートである。第1実施例における処理と同一の処理については同一の参照符号を付し、説明を省略する。処理1202で行われる通知の種別判定において、通知がコーデック変換処理部800からの利用申請と判定された場合は、処理1209において利用許可部144が、利用申請登録表145に当該申請を登録して処理1201へ戻る。そして処理1205にて実績画像数と予定画像数が一致した場合は処理1210へ進む。処理1210において利用許可部144は、利用申請登録表145に登録されているアプリに利用許可を通知する。処理1211において利用許可部144は、利用申請登録表145から、利用許可を通知した登録アプリを削除して処理1201へ戻る。
このように、グラフィックデータ処理部200を利用したい他のアプリが利用申請を行い、グラフィックデータ処理部200での画像作成に関する全ての処理が終了したことを検出した際に、利用申請を行った他のアプリに対して利用許可を通知する。このような処理により、グラフィックデータ処理部200のGPU210をGPGPUとして利用することができる。
尚、ここまでに開示した技術では、アプリが画像作成を行うものとして説明したが、画像作成を行うソフトウェアはアプリに限定されるものではない、例えばオペレーティングシステム(OS)が画像作成を行う場合にも開示の技術は適用可能である。
開示の実施例に基づき、更に以下の付記を開示する。
(付記1)
コンピュータにより実行され、所定期間毎に発行される同期信号に基づいて画面を更新する描画方法において、第1同期信号の発行時から前記所定期間が経過するまでの第1期間にプロセッサにより作成されることが予定される予定画像数を算出する工程と、前記第1期間において前記プロセッサにより作成された実績画像数をカウントする工程と、前記実績画像数が前記予定画像数に達したことを検出する工程と、前記実績画像数が前記予定画像数に達したことの検出に基づき、前記プロセッサの消費電力を低下させる工程とを有することを特徴とする描画方法。
(付記2)
前記画像は、前記コンピュータ上で動作するソフトウェアが作成する画像であり、前記ソフトウェアが作成した前記画像に基づき、ディスプレイに表示させる前記画面を作成する工程を更に有することを特徴とする付記1に記載の描画方法。
(付記3)
前記画面を作成する工程は、前記第1同期信号の次に発行される第2同期信号に基づいて実行されることを特徴とする付記1又は2に記載の描画方法。
(付記4)
前記画面の作成は前記プロセッサにより実行され、前記画面を作成する工程は、前記第2同期信号の発行から前記所定期間が経過するまでの第2期間において実行される他の画像を作成する処理よりも先に終了することを特徴とする付記3に記載の描画方法。
(付記5)
前記ソフトウェアは、前記第1同期信号の発行の前に、前記第1期間に前記画像を作成する旨の作成通知を前記コンピュータに送信し、前記コンピュータは、前記作成通知の数を、前記予定画像数として保持することを特徴とする付記2乃至4いずれか一に記載の描画方法。
(付記6)
前記コンピュータは、前記ソフトウェアによる前記画像の作成が終了し、作成した前記画像のデータのメモリ領域への格納が終了したことを検出することにより、前記実績画像数をカウントすることを特徴とする付記2乃至5いずれか一に記載の描画方法。
(付記7)
前記ソフトウェアは、前記第1期間に自身が作成する前記画像に含まれる個別画像の数を、前記コンピュータに通知し、前記コンピュータは、前記作成通知の数と前記個別画像の数とに基づき前記予定画像数を算出して保持することを特徴とする付記5に記載の描画方法。
(付記8)
所定期間毎に発行される同期信号に基づいて画面を更新する描画装置において、第1同期信号の発行時から前記所定期間が経過するまでの第1期間に第1プロセッサにより作成されることが予定される予定画像数を算出する算出部と、前記第1期間において前記第1プロセッサにより実行された作成された実績画像数をカウントするカウント部と、前記実績画像数が前記予定画像数に達したことを検出する完了検出部と、前記完了検出部による検出に基づき、前記第1プロセッサの消費電力を低下させるモード管理部とを有することを特徴とする描画装置。
(付記9)
前記画像は、前記描画装置上にて動作するソフトウェアが作成する画像であり、前記ソフトウェアが作成した前記画像に基づき、ディスプレイに表示させる前記画面を作成する合成処理部を更に有することを特徴とする付記8に記載の描画装置。
(付記10)
前記合成処理部による前記画面の作成は、前記第1同期信号の次に発行される第2同期信号に基づいて実行されることを特徴とする付記9に記載の描画装置。
(付記11)
前記画面の作成は、前記合成処理部が前記第1プロセッサを用いることにより実行され、
前記画面の作成は、前記第2同期信号の発行から前記所定期間が経過するまでの第2期間において実行される他の画像の作成よりも先に終了することを特徴とする付記10に記載の描画装置。
(付記12)
前記画像を作成する画像作成部と、画像作成開始通知部を更に有し、前記画像作成部は、前記画像作成開始通知部に対し、次に発行される前記同期信号に対して作成する前記画像の数を通知し、前記合成処理部は、前記画面の作成が終了した際に合成処理終了通知を発行し、前記画像作成開始通知部は、前記合成処理終了通知に基づき画像作成開始通知を前記画像作成部に送信することを特徴とする付記9乃至11何れか一に記載の描画装置。
(付記13)
前記画像作成部が前記画像作成開始通知部に対して通知した前記画像の数が2以上である場合は、前記画像作成開始通知部は、前記画像作成部から通知された前記画像の数と同数の前記画像作成開始通知を前記画像作成部に送信することを特徴とする付記12に記載の描画装置。
(付記14)
前記画像作成開始通知部は、前記画像作成部から通知された前記画像の数を、前記完了検出部に通知することを特徴とする付記13に記載の描画装置。
(付記15)
前記画像作成部による前記画像の作成が終了した場合に、前記完了検出部に終了通知を送信する終了通知部を更に有し、前記完了検出部は、前記モード管理部に前記第1期間に処理すべき前記画像作成処理が全て終了した旨の完了通知を送信することを特徴とする付記8乃至14何れか一に記載の描画装置。
(付記16)
前記終了通知部は、前記ソフトウェアによる前記画像の作成が終了し、作成した前記画像のデータのメモリ領域への格納が終了したことに基づき、前記終了通知を送信することを特徴とする付記9乃至15いずれか一に記載の描画装置。
(付記17)
前記ソフトウェアは、前記第1期間に自身が作成する前記画像に含まれる個別画像の数を、前記完了検出部に通知することを特徴とする付記9乃至16何れか一に記載の描画装置。
(付記18)
コンピュータに、所定期間毎に発行される同期信号に基づいて画面を更新させる描画プログラムであって、第1同期信号の発行時から前記所定期間が経過するまでの第1期間にプロセッサにより作成されることが予定される予定画像数を算出する工程と、前記第1期間において前記プロセッサにより作成された実績画像数をカウントする工程と、前記実績画像数が前記予定画像数に達したことを検出する工程と、前記実績画像数が前記予定画像数に達したことの検出に基づき、前記プロセッサの消費電力を低下させる工程とをコンピュータに実行させることを特徴とするプログラム。
(付記19)
前記画像は、前記コンピュータ上にて動作するソフトウェアが作成する画像であり、前記ソフトウェアが作成した前記画像に基づき、ディスプレイに表示させる前記画面を作成する工程を更に有することを特徴とする付記18に記載のプログラム。
(付記20)
前記画面を作成する工程は、前記第1同期信号の次に発行される第2同期信号に基づいて実行されることを特徴とする付記18又は19に記載のプログラム。
1 表示装置
2、600 ディスプレイ
3 像
4 オブジェクト
100 プロセッサ(CPU)
200 グラフィックデータ処理部
210 プロセッサ(GPU)
220、300 メモリ(VRAM)
230 内部バス
400 メモリ
500 ディスプレイコントローラ
700 バス
800 コーデック変換処理部
850 GPGPUライブラリ
110 画像作成処理部
120 グラフィックライブラリ
125 画像作成処理終了通知部
126 後処理指示受信部
127 通知部
128 後処理実行部
130 合成処理部
140 完了検出部
141 予定画像数保持部
142 実績画像数カウント部
143 判定部
144 利用許可部
145 利用申請登録表
150 タイマ部
160 画像作成開始通知部
161 分配部
162 分配先管理部
163 分配数計数部
164 分配先登録表
170 モード管理部
171 割込み受信部
172 設定部
173 制御部
180 グラフィックデータ処理部ドライバ
190 再分配処理部
191 再分配先管理部
192 再分配部
193 再分配数計数部
194 再分配登録表
195 通知転送部
196 再分配数保持部
197 終了通知カウント部
198 転送部

Claims (10)

  1. コンピュータにより実行され、所定期間毎に発行される同期信号に基づいて画面を更新する描画方法において、
    第1同期信号の発行時から前記所定期間が経過するまでの第1期間にプロセッサにより作成されることが予定される予定画像数を算出する工程と、
    前記第1期間において前記プロセッサにより作成された実績画像数をカウントする工程と、
    前記実績画像数が前記予定画像数に達したことを検出する工程と、
    前記実績画像数が前記予定画像数に達したことの検出に基づき、前記プロセッサの消費電力を低下させる工程と
    を有することを特徴とする描画方法。
  2. 前記画像は、前記コンピュータ上で動作するソフトウェアが作成する画像であり、
    前記ソフトウェアが作成した前記画像に基づき、ディスプレイに表示させる前記画面を作成する工程を更に有することを特徴とする請求項1に記載の描画方法。
  3. 前記ソフトウェアは、前記第1同期信号の発行の前に、前記第1期間に前記画像を作成する旨の作成通知を前記コンピュータに送信し、前記コンピュータは、前記作成通知の数を、前記予定画像数として保持することを特徴とする請求項2に記載の描画方法。
  4. 前記コンピュータは、前記ソフトウェアによる前記画像の作成が終了し、作成した前記画像のデータのメモリ領域への格納が終了したことを検出することにより、前記実績画像数をカウントすることを特徴とする請求項2又は3に記載の描画方法。
  5. 所定期間毎に発行される同期信号に基づいて画面を更新する描画装置において、
    第1同期信号の発行時から前記所定期間が経過するまでの第1期間に第1プロセッサにより作成されることが予定される予定画像数を算出する算出部と、
    前記第1期間において前記第1プロセッサにより実行された作成された実績画像数をカウントするカウント部と、
    前記実績画像数が前記予定画像数に達したことを検出する完了検出部と、
    前記完了検出部による検出に基づき、前記第1プロセッサの消費電力を低下させるモード管理部と
    を有することを特徴とする描画装置。
  6. 前記画像は、前記描画装置上にて動作するソフトウェアが作成する画像であり、
    前記ソフトウェアが作成した前記画像に基づき、ディスプレイに表示させる前記画面を作成する合成処理部を更に有することを特徴とする請求項5に記載の描画装置。
  7. 前記画像を作成する画像作成部と、
    画像作成開始通知部を更に有し、
    前記画像作成部は、前記画像作成開始通知部に対し、次に発行される前記同期信号に対して作成する前記画像の数を通知し、
    前記合成処理部は、前記画面の作成が終了した際に合成処理終了通知を発行し、
    前記画像作成開始通知部は、前記合成処理終了通知に基づき画像作成開始通知を前記画像作成部に送信することを特徴とする請求項6に記載の描画装置。
  8. 前記画像作成開始通知部は、前記画像作成部から通知された前記画像の数を、前記完了検出部に通知することを特徴とする請求項7に記載の描画装置。
  9. 前記画像作成部による前記画像の作成が終了した場合に、前記完了検出部に終了通知を送信する終了通知部を更に有し、
    前記完了検出部は、前記モード管理部に前記第1期間に処理すべき前記画像作成が全て終了した旨の完了通知を送信することを特徴とする請求項5に記載の描画装置。
  10. コンピュータに、所定期間毎に発行される同期信号に基づいて画面を更新させる描画プログラムであって、
    第1同期信号の発行時から前記所定期間が経過するまでの第1期間にプロセッサにより作成されることが予定される予定画像数を算出する工程と、
    前記第1期間において前記プロセッサにより作成された実績画像数をカウントする工程と、
    前記実績画像数が前記予定画像数に達したことを検出する工程と、
    前記実績画像数が前記予定画像数に達したことの検出に基づき、前記プロセッサの消費電力を低下させる工程と
    をコンピュータに実行させることを特徴とするプログラム。
JP2014032317A 2014-02-21 2014-02-21 描画方法、描画装置及びプログラム Ceased JP2015158751A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014032317A JP2015158751A (ja) 2014-02-21 2014-02-21 描画方法、描画装置及びプログラム
US14/591,096 US20150241951A1 (en) 2014-02-21 2015-01-07 Data processing method, drawing device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014032317A JP2015158751A (ja) 2014-02-21 2014-02-21 描画方法、描画装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2015158751A true JP2015158751A (ja) 2015-09-03

Family

ID=53882159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014032317A Ceased JP2015158751A (ja) 2014-02-21 2014-02-21 描画方法、描画装置及びプログラム

Country Status (2)

Country Link
US (1) US20150241951A1 (ja)
JP (1) JP2015158751A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10332296B2 (en) 2016-07-05 2019-06-25 Ubitus Inc. Overlaying multi-source media in VRAM
US20180012327A1 (en) * 2016-07-05 2018-01-11 Ubitus Inc. Overlaying multi-source media in vram
US12079642B2 (en) * 2016-10-31 2024-09-03 Ati Technologies Ulc Method and apparatus for dynamically reducing application render-to-on screen time in a desktop environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005062798A (ja) * 2003-07-30 2005-03-10 Sony Computer Entertainment Inc 回路動作制御装置および情報処理装置
JP2005322144A (ja) * 2004-05-11 2005-11-17 Namco Ltd 画像生成プログラム、情報記憶媒体及び画像生成システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8885103B2 (en) * 2010-12-28 2014-11-11 Sharp Kabushiki Kaisha Display device and television receiver
US8786620B2 (en) * 2011-11-14 2014-07-22 Microsoft Corporation Discarding idle graphical display components from memory and processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005062798A (ja) * 2003-07-30 2005-03-10 Sony Computer Entertainment Inc 回路動作制御装置および情報処理装置
JP2005322144A (ja) * 2004-05-11 2005-11-17 Namco Ltd 画像生成プログラム、情報記憶媒体及び画像生成システム

Also Published As

Publication number Publication date
US20150241951A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
WO2020207251A1 (zh) 图像更新方法、装置、终端及存储介质
EP3681143A1 (en) Method and apparatus for improving image fluency
CN110018874A (zh) 垂直同步方法、装置、终端及存储介质
US20100153761A1 (en) Multiprocessor control unit, control method performed by the same, and integrated circuit
TWI507992B (zh) 同步化媒體處理技術
JP6349908B2 (ja) データ処理方法、データ処理装置及びプログラム
US9811872B2 (en) Apparatus and method for generating image data in a region including a plurality of partial regions based on synchronization signals
US10725525B2 (en) Method of operating system-on-chip, system-on-chip performing the same and electronic system including the same
KR20220143667A (ko) 지연된 그래픽 프로세싱 유닛 렌더 시간을 보상하기 위한 감소된 디스플레이 프로세싱 유닛 전달 시간
US9407863B2 (en) System and method for processing visual information
JP6151465B1 (ja) プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニット、ならびに関連する方法およびシステム
WO2021139691A1 (zh) 用于控制显示屏的显示频率的方法、装置及电子设备
JP2016173836A (ja) 中央処理ユニット及び画像処理ユニットの同期機構
KR20170125881A (ko) 공유 셰이더 코어에서의 비동기 디스플레이 셰이더 기능 제공
CN115777098A (zh) 通过循环fifo分散和聚集流式传输数据
WO2016182683A1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (pcd)
CN113610699B (zh) 一种硬件图层渲染调度方法、装置、设备及储存介质
CN110008027B (zh) 进程的运行方法、装置、终端及存储介质
JP2015158751A (ja) 描画方法、描画装置及びプログラム
CN114265568B (zh) 显示处理单元、方法、加速单元和片上系统
WO2016122859A1 (en) Timer-based processing unit operational scaling employing timer resetting on idle process scheduling
CN114610255A (zh) 画面绘制方法、装置、存储介质以及终端
US11467621B2 (en) Computer processing unit intra-frame clock and voltage scaling based on graphics application awareness
JP6291992B2 (ja) スマート端末、消費電力の状態の制御方法、および、消費電力状態制御プログラム
CN115699158A (zh) 用于显示器的图像生成的功率需求降低

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: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170919

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171219

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20180424