【解決手段】マルチウィンドウ・マルチタスクをサポートしているオペレーティング・システム(OS)と、表示部に複数のウィンドウが表示されている場合、前記表示部の奥行方向における前記複数のウィンドウの位置関係を検出する検出部と、前記複数のウィンドウが動的に処理されるコンテンツを含む第1のウィンドウを含む場合、前記位置関係に基づき、前記第1のウィンドウの表示状態が所定の要件を満たしているかを判定する判定部と、前記所定の要件を満たしていると判定された場合、前記第1のウィンドウに対して、省電力化処理を実行する省電力化処理部と、を備える、情報処理装置。
前記第1のウィンドウがブラウザのウィンドウである場合、前記省電力化処理は、前記ブラウザのウィンドウ内の最前面にダミータブを開かせることである、請求項2から請求項4のいずれか1項に記載の情報処理装置。
前記所定の要件は、前記第1のウィンドウの前記表示部に表示されている表示領域の割合が所定の閾値以下であることを含む、請求項1から請求項6のいずれか1項に記載の情報処理装置。
前記所定の要件は、前記表示部に表示されている前記動的に処理されるコンテンツの割合が所定の閾値以下であることを含む、請求項1から請求項6のいずれか1項に記載の情報処理装置。
前記第1のウィンドウと、前記奥行方向において前記第1のウィンドウよりも手前に位置する第2のウィンドウとの前記位置関係に基づき、前記第1のウィンドウの前記表示領域の面積を算出し、前記表示領域の面積を前記第1のウィンドウの面積で除算して前記割合を算出する算出部、
をさらに備える、請求項7に記載の情報処理装置。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
【0012】
<<1.情報処理装置の構成>>
本発明の実施形態に係る情報処理装置の構成について説明する。なお、本実施形態では、情報処理装置の一例として、ノート型PC(Personal Computer)について説明する。なお、本発明の実施形態に係る情報処理装置は、ノート型PCに限定されない。例えば、情報処理装置は、デスクトップ型PC、タブレット、スマートフォン等の端末により実現されてもよい。なお、本実施形態に係る情報処理装置は、マルチウィンドウ・マルチタスクシステムを実現するためにマルチウィンドウ・マルチタスクOSを搭載した端末である。
【0013】
<1−1.外部構成>
まず、
図1を参照して、ノート型PC1の外部構成の一例について説明する。
図1は、本発明の実施形態に係るノート型PC1の外部構成の一例を示す図である。以下の説明において、表示部14の長辺方向をX軸方向とし、表示部14の短辺方向をY軸とし、表示部の表面に垂直な方向をZ軸方向として説明する。
【0014】
図1に示すように、ノート型PC1は、表示部14を備える。ノート型PC1は、マルチウィンドウ・マルチタスクOSを搭載している。ノート型PC1は、マルチウィンドウ・マルチタスクOSの機能により、表示部14に複数のウィンドウを表示することができる。例えば、ノート型PC1は、
図1に示すように、1つのブラウザウィンドウBWと1つのアプリケーションウィンドウAWを表示部14に表示する。
【0015】
なお、ノート型PC1が表示部14に表示するウィンドウの数は、かかる例に限定されない。例えば、ノート型PC1は複数のブラウザウィンドウBWと複数のアプリケーションウィンドウAWを表示部14に表示してもよい。
【0016】
本実施形態に係るブラウザウィンドウBWは、ノート型PC1に搭載されているブラウザの機能により表示されるウィンドウである。また、本実施形態に係るアプリケーションウィンドウAWは、ブラウザ以外のアプリケーション等の機能により表示されるウィンドウである。
【0017】
<1−2.ハードウェア構成>
続いて、
図2を参照して、ノート型PC1のハードウェア構成の一例について説明する。
図2は、本実施形態に係るノート型PC1のハードウェア構成の一例を示す図である。
【0018】
図2に示すように、ノート型PC1は、CPU11、メインメモリ12、GPU13、表示部14、チップセット21、BIOSメモリ22、HDD23、オーディオシステム24、マイクロフォン241、スピーカ242、WLANカード25、USBコネクタ26、EC31、入力部32、センサ部33、電源回路34、及びバッテリ35を備える。
【0019】
CPU(Central Processing Unit)11は、プログラム制御により種々の演算処理を実行し、ノート型PC1全体を制御している。
【0020】
メインメモリ12は、CPU11の実行プログラムの読み込み領域として、又は、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ12は、例えば、複数個のDRAM(Dynamic Random Access Memory)チップで構成される。この実行プログラムには、OS、周辺機器類をハードウェア操作するための各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム等が含まれる。
【0021】
GPU(Graphic Processing Unit)13は、CPU11の制御に基づいて画像処理を実行して表示データを生成する。GPU13は、表示部14に接続されており、生成した表示データを表示部14に出力する。
【0022】
表示部14は、例えば、液晶ディスプレイであり、GPU13から出力された表示データに基づく表示画面を表示する。
【0023】
チップセット21は、USB(Universal Serial Bus)、シリアルATA(AT Attachment)、SPI(Serial Peripheral Interface)バス、PCI(Peripheral Component Interconnect)バス、PCI−Expressバス、及びLPC(Low Pin Count)バス等のコントローラを備えており複数のデバイスが接続される。
図2では、BIOSメモリ22と、HDD23と、オーディオシステム24と、WLANカード25と、USBコネクタ26と、チップセット21に接続されている。
【0024】
BIOS(Basic Input Output System)メモリ22は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)やフラッシュROM(Read Only Memory)等の電気的に書き換え可能な不揮発性メモリで構成される。BIOSメモリ22は、BIOS、及びEC31等を制御するためのシステムファームウェア等を記憶する。
【0025】
HDD(Hard Disk Drive)23(不揮発性記憶装置の一例)は、OS、各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム、及び各種データを記憶する。
【0026】
オーディオシステム24は、マイクロフォン241及びスピーカ242が接続され、音データの記録、再生、出力を行う。なお、マイクロフォン241及びスピーカ242は、一例として、ノート型PC1に内蔵されているものとする。
【0027】
WLAN(Wireless Local Area Network)カード25は、ワイヤレス(無線)LANにより、ネットワークに接続して、データ通信を行う。WLANカード25は、例えば、ネットワークからのデータを受信した際に、データを受信したことを示すイベントトリガを発生する。
【0028】
USBコネクタ26は、USBを利用した周辺機器類を接続するためのコネクタである。
【0029】
EC(組込みコントローラ:Embedded Controller)31は、ノート型PC1のシステム状態に関わらず、各種デバイス(周辺装置やセンサ等)を監視し制御するワンチップマイクロコンピュータ(One-Chip Microcomputer)である。EC31は、不図示のCPU、ROM(Read only Memory)、RAM(Random Access memory)を備えている。
【0030】
EC31は、CPU11とは独立して動作して主としてノート型PC1の内部の動作環境を管理する制御部として機能する。EC31は、予めROMに記憶された制御プログラムを読み出し、読み出した制御プログラムに記述された各種の命令で指示される処理を実行して各種の機能を実現する。
【0031】
また、EC31は、複数チャネルのA/D入力端子、D/A出力端子、タイマ、及びデジタル入出力端子を備えている。EC31には、それらの入出力端子を介して、例えば、入力部32、センサ部33、電源回路34等が接続されており、EC31は、これらの動作を制御する。
【0032】
また、EC31は、複数チャネルのA/D入力端子、D/A出力端子、タイマ、及びデジタル入出力端子等を備えている。EC31には、それらの入出力端子を介して、例えば、入力部32、センサ部33、電源回路34等が接続されており、EC31は、これらの動作を制御する。
【0033】
入力部32は、例えば、HID(Human Interface Device)である。具体的に、HIDは、マウス及びタッチパッド等のポインティングデバイスや、キーボードなどの入力デバイスである。
【0034】
センサ部33は、例えば、物体の接近を検出する近接センサや、加速度を検出する加速度センサ等の多様なセンサを備える。
【0035】
電源回路34は、例えば、DC/DCコンバータ、充放電ユニット、電池ユニット、AC/DCアダプタ等を含んでおり、外部電源から、又はバッテリ35から供給される直流電圧を、ノート型PC1を動作させるために必要な複数の電圧に変換する。また、電源回路34は、EC31からの制御に基づいて、ノート型PC1の各部に電力を供給する。
【0036】
バッテリ35は、例えば、リチウムバッテリであり、ノート型PC1に外部電源から電力供給されている場合に、電源回路34を介して充電され、ノート型PC1に外部電源から電力供給されていない場合に、電源回路34を介して、充電された電力をノート型PC1の動作電力として出力する。
【0037】
<1−3.機能構成>
続いて、
図3を参照して、ノート型PC1の機能構成の一例について説明する。
図3は、本実施形態に係るノート型PC1の機能構成の一例を示すブロック図である。
【0038】
図3に示すように、ノート型PC1は、ソフトウェアにより実現される、OS40、Window Manager41、ブラウザ処理部42、及びブラウザ43(43−1〜43−n(nは自然数))を備える。また、ノート型PC1は、本実施形態の主要なハードウェアとして、入力部32、CPU11、GPU13、表示部14、スピーカ242を備えている。
【0039】
なお、OS40、Window Manager41、ブラウザ処理部42、及びブラウザ43は、HDD23又はBIOSメモリ22に記憶されているプログラムをメインメモリ12に読み込み、CPU11が実行することにより実現される。
【0040】
OS40は、例えば、Windows(登録商標)、Linux(登録商標)等のオペレーティングシステムであり、各種ハードウェアとの間で情報の入出力を行う。
【0041】
Window Manager41は、OS40に基づいて実行されるプログラムである。Window Manager41は、各種コンテンツを出力するためのウィンドウに関する処理を行う。当該ウィンドウは、例えば、ブラウザウィンドウBWとアプリケーションウィンドウAWである。
【0042】
例えば、Window Manager41は、ブラウザ処理部42が生成したブラウザウィンドウBWや、各種アプリケーションが生成したアプリケーションウィンドウAWをOS40及びGPU13を介して表示部14に表示させる。
【0043】
また、Window Manager41は、ウィンドウの外観、位置関係、大きさ、操作方法等の管理を行う。例えば、ユーザが入力部32を介して表示部14に表示されているブラウザウィンドウBWの表示位置を変更する操作を行ったとする。この場合、ユーザの操作内容は、入力部32、CPU11、及びOS40を介してWindow Manager41に入力される。Window Manager41は、入力された操作内容に基づき、表示位置の変更後のブラウザウィンドウBWの情報をブラウザ処理部42へ出力する。
【0044】
ブラウザ処理部42にてユーザの操作内容がブラウザウィンドウBWに反映されると、反映後のブラウザウィンドウBWの情報がWindow Manager41に入力される。当該情報が入力されると、Window Manager41は、OS40及びGPU13を介して、表示部14にブラウザウィンドウBWを表示させる。
【0045】
なお、ブラウザ処理部42から入力される情報に音声データが含まれる場合、Window Manager41は、OS40及びCPU11を介して、スピーカ242に音声を出力させてもよい。
【0046】
ブラウザ処理部42は、ブラウザ43の出力に関する処理を行う。例えば、ブラウザ43は、WLANカード25の通信によりWebサーバから取得されるリソースに基づき、ブラウザ43を描画したブラウザウィンドウBWを生成する。当該機能を実現するために、ブラウザ処理部42は、描画処理部50を備える。
【0047】
描画処理部50は、ブラウザ43を描画してブラウザウィンドウBWを生成するためのレンダリングを行う。ブラウザ43には、ブラウザ43に関する情報を有するDOM60(60−1〜60−n(nは自然数))及びCSS61(61−1〜61−n(nは自然数))が含まれる。DOM(Document Object Model)60は、ブラウザ43における文書の構造を示す情報である。CSS(Cascading Style Sheets)61は、ブラウザ43のスタイルを設定する情報である。
【0048】
ブラウザ43は、DOM60及びCSS61に基づくレンダリングにより、ブラウザ43を描画してブラウザウィンドウBWを生成する。ブラウザウィンドウBWの生成後、ブラウザ処理部42は、生成したブラウザウィンドウBWをWindow Manager41へ出力する。
【0049】
また、ブラウザ処理部42は、ノート型PC1のマルチウィンドウ・マルチタスクシステムにおけるアクティブウィンドウ以外のウィンドウにおける消費電力を削減するための機能を有する。本実施形態に係るアクティブウィンドウは、例えば、ユーザが使用しているとみなされたウィンドウである。当該機能を実現するために、ブラウザ処理部42は、検出部51、算出部52、判定部53、及び省電力化処理部54を備える。
【0050】
検出部51は、表示部14に複数のウィンドウが表示されている場合、表示部14の奥行方向における複数のウィンドウの位置関係を検出する。表示部14に表示されている複数のウィンドウは、ウィンドウ全体を視認可能に表示されているウィンドウ、表示部14に表示されているが一部しか視認できないウィンドウ、及び表示部14に表示されているが視認できないウィンドウ等を含む。表示部14に表示されているが一部しか視認できないウィンドウは、例えば、自身のウィンドウの一部が他のウィンドウに隠れるように表示されているウィンドウである。表示部14に表示されているが視認できないウィンドウは、例えば、自身のウィンドウの全体が他のウィンドウに隠れるように表示されているウィンドウである。
【0051】
一例として、検出部51は、表示部14に表示されている複数のウィンドウの内のいずれかのウィンドウの表示が変化した場合に、複数のウィンドウの位置関係の検出を行う。ウィンドウの表示の変化とは、例えば、ウィンドウの表示位置の変化、ウィンドウの表示サイズの変化、他のウィンドウとの前後関係の変化等である。検出部51は、Window Manager41から入力されるユーザの操作内容に基づく情報により、ウィンドウの表示が変化したか否かを特定する。
【0052】
検出部51は、例えば、コマンドを発行して得られる情報に基づき、複数のウィンドウの位置関係を検出する。一例として、検出部51は、OS40で定義されている、複数のウィンドウを列挙して位置関係を検出するためのコマンドを発行する。例えば、OS40がWindowsである場合、当該コマンドは、Windowsで定義されている「EnumWindows API」である。検出部51は、検出結果を算出部52へ出力する。
【0053】
なお、検出部51が「EnumWindows API」を発行すると列挙されたウィンドウごとにCallback処理が行われる。本実施形態では、当該Callback処理により、後述する算出部52、判定部53、及び省電力化処理部54の処理を列挙されたウィンドウごとに行う。
【0054】
なお、検出部51は、ウィンドウの表示が変化してから所定の時間が経過後に、複数のウィンドウの位置関係の検出を開始してもよい。また、ウィンドウの表示が変化しても、ユーザによる入力が行われている間は、複数のウィンドウの位置関係の検出を開始しなくてもよい。
【0055】
算出部52は、動的に処理されるコンテンツ(以下、「動的コンテンツ」とも称される)を含む第1のウィンドウと、表示部14の奥行方向において第1のウィンドウよりも手前に位置する第2のウィンドウとの位置関係に基づき、第1のウィンドウの表示領域の面積を算出する。ここで、動的コンテンツは、例えば、動画を出力する動画コンテンツ、音声を出力する音声コンテンツ、スクリプト言語により動作するコンテンツ等である。なお、手前は、奥行方向において表示部14を視認しているユーザに近づく方向であり、奥は、奥行方向において当該ユーザから離れる方向である。また、表示領域は、第1のウィンドウの視認可能に表示されている領域の面積である。
【0056】
算出部52は、複数のウィンドウの各々のサイズと表示位置を示す位置情報を取得する。一例として、算出部52は、OS40で定義されている、ウィンドウの平面上の位置とサイズを取得するためのコマンドを発行する。例えば、OS40がWindowsである場合、当該コマンドは、Windowsで定義されている「GetWindowRect API」である。
【0057】
算出部52は、取得したウィンドウのサイズに基づき、各々のウィンドウの面積を算出する。算出部52は、取得した位置情報に基づき、第1のウィンドウと第2のウィンドウとが重畳している領域と重畳していない領域とを特定する。特定後、算出部52は、第1のウィンドウと第2のウィンドウとが重畳していない領域の面積を、第1のウィンドウの表示領域の面積として算出する。
【0058】
第1のウィンドウの表示領域の面積の算出後、算出部52は、第1のウィンドウの表示領域の面積を第1のウィンドウの全体の面積で除算して、第1のウィンドウの表示領域の割合を算出する。算出部52は、算出結果を判定部53へ出力する。
【0059】
ここで、
図4を参照して、表示領域の一例について説明する。
図4は、本実施形態に係る表示領域の一例を示す図である。
図4には、第1のウィンドウとしてブラウザウィンドウBWが示され、第2のウィンドウとしてアプリケーションウィンドウAWが示されている。
【0060】
図4に示すように、第1のウィンドウであるブラウザウィンドウBWにおいて、第2のウィンドウであるアプリケーションウィンドウAWと重畳しておらず、視認可能な領域が表示領域DAである。
【0061】
判定部53は、複数のウィンドウが第1のウィンドウを含む場合、複数のウィンドウの位置関係に基づき、第1のウィンドウの表示状態が所定の要件を満たしているか否かを判定する。判定後、判定部53は、各々のウィンドウに対する判定結果を、省電力化処理部54へ出力する。
【0062】
所定の要件は、例えば、第1のウィンドウの表示領域の割合が所定の閾値以下であることを含む。具体的に、判定部53は、算出部52が算出した第1のウィンドウの表示領域の割合が、所定の閾値以下であるか否かを判定する。表示領域の割合が所定の閾値以下である場合、判定部53は、第1のウィンドウが所定の要件を満たしていると判定する。
【0063】
一方、表示領域の割合が所定の閾値以下でない場合、判定部53は、第1のウィンドウが所定の要件を満たしていないと判定する。所定の要件を満たす第1のウィンドウは、後述する省電力化処理部54における省電力化処理の対象(以下、「処理対象」とも称される)である。即ち、判定部53は、第1のウィンドウが省電力化処理部54における処理対象であるかを判定している。なお、処理対象となるウィンドウには、ブラウザウィンドウBW及びアプリケーションウィンドウAWが含まれる。
【0064】
なお、第1のウィンドウの表示領域の割合に基づき第1のウィンドウが所定の要件を満たすか否かを判定するための所定の閾値の値は、特に限定されず、ユーザによって任意の値が設定されてよい。例えば、完全に表示されていないウィンドウを処理対象と判定させたい場合、ユーザは、所定の閾値として100%を設定すればよい。また、半分以上表示されていないウィンドウを処理対象と判定させたい場合、ユーザは、所定の閾値として50%を設定すればよい。
【0065】
また、所定の要件は、第1のウィンドウに音声コンテンツが含まれないことを含んでもよい。具体的に、判定部53は、音声コンテンツが第1のウィンドウに含まれているか否かを判定する。音声コンテンツが第1のウィンドウに含まれている場合、判定部53は、第1のウィンドウが所定の要件を満たしていないと判定する。
【0066】
一方、音声コンテンツが第1のウィンドウに含まれていない場合、判定部53は、第1のウィンドウが所定の要件を満たしていると判定する。即ち、判定部53は、第1のウィンドウが処理対象であると判定する。
【0067】
音声コンテンツは、例えば、動画を再生するコンテンツや音楽を再生するコンテンツ等である。ユーザが音声コンテンツの含まれるウィンドウを用いてバックグラウンド再生を行っている際に、当該ウィンドウが処理対象と判定されたとする。この場合、後述する省電力化処理により、バックグラウンド再生が停止してしまう。そこで、判定部53が音楽コンテンツを含む第1のウィンドウを処理対象と判定しないことで、ユーザが意図せずにバックグラウンド再生が停止することを防ぐことができる。
【0068】
また、所定の要件は、第1のウィンドウが表示部14の最前面に表示されていないことを含んでもよい。具体的に、判定部53は、複数のウィンドウの位置関係に基づき、第1のウィンドウが表示部14の最前面に表示されているか否かを判定する。第1のウィンドウが表示部14の最前面に表示されている場合、判定部53は、第1のウィンドウが所定の要件を満たしていないと判定する。
【0069】
一方、第1のウィンドウが表示部14の最前面に表示されていない場合、判定部53は、第1のウィンドウが所定の要件を満たしていると判定する。即ち、判定部53は、第1のウィンドウが処理対象であると判定する。
【0070】
このように、所定の要件が、第1のウィンドウに音声コンテンツが含まれないこと、あるいは、第1のウィンドウが表示部14の最前面に表示されていないことである場合、判定部53は、算出部52が算出する表示領域の割合を用いない。そのため、算出部52における表示領域の割合の算出処理を省略することができる。よって、ブラウザ処理部42における処理速度を早くすることができるとともに、表示領域の割合の算出処理にかかる電力を削減することができる。
【0071】
また、所定の要件は、第1のウィンドウに含まれる動的コンテンツが表示部14に表示されている表示領域の割合が所定の閾値以下であることを含んでもよい。具体的に、判定部53は、表示部14に表示されている動的コンテンツの表示領域の割合が所定の閾値以下であるか否かを判定する。表示部14に表示されている動的コンテンツの表示領域の割合が所定の閾値以下である場合、判定部53は、第1のウィンドウが所定の要件を満たしていると判定する。即ち、判定部53は、第1のウィンドウが処理対象であると判定する。
【0072】
一方、表示部14に表示されている動的コンテンツの表示領域の割合が所定の閾値以下でない場合、判定部53は、第1のウィンドウが所定の要件を満たしていないと判定する。
【0073】
なお、表示部14に表示されている動的コンテンツの表示領域の割合に基づき第1のウィンドウが所定の要件を満たすか否かを判定するための所定の閾値の値は、特に限定されず、ユーザによって任意の値が設定されてよい。例えば、動的コンテンツが完全に表示されていないウィンドウを処理対象と判定させたい場合、ユーザは、所定の閾値として100%を設定すればよい。また、動的コンテンツが半分以上表示されていないウィンドウを処理対象と判定させたい場合、ユーザは、所定の閾値として50%を設定すればよい。
【0074】
なお、動的コンテンツが表示部14に表示されている割合は、例えば、CSSあるいはDOMから取得される動的コンテンツに関する情報に基づき、算出部52により算出される。
【0075】
具体的に、算出部52は、動的コンテンツのサイズを示す情報を取得し、動的コンテンツの面積を算出する。算出部52は、動的コンテンツが表示されている位置を示す位置情報を取得し、動的コンテンツと第2のウィンドウとが重畳している領域と重畳していない領域とを特定する。特定後、算出部52は、動的コンテンツと第2のウィンドウとが重畳していない領域の面積を、動的コンテンツの表示領域の面積として算出する。
【0076】
動的コンテンツの表示領域の面積の算出後、算出部52は、動的コンテンツの表示領域の面積を動的コンテンツの全体の面積で除算して、動的コンテンツの表示領域の割合を算出する。
【0077】
省電力化処理部54は、判定部53により所定の要件を満たしていると判定された第1のウィンドウ(即ち処理対象)に対して、省電力化処理を実行する。例えば、省電力化処理は、処理対象と判定された第1のウィンドウの動作を停止させることである。ここで、第1のウィンドウの動作は、例えば、第1のウィンドウの内部のコンテンツに関する動作である。内部のコンテンツに関する動作の一例として、当該コンテンツの生成、描画、及び表示等の処理が挙げられる。
【0078】
なお、第1のウィンドウに対して省電力化処理が実行されても、第1のウィンドウ自身に関する表示等の動作は、Window Manager41による制御により継続される。
【0079】
これにより、第1のウィンドウが動作するために必要な電力が消費されなくなる。よって、省電力化処理部54は、第1のウィンドウに対する省電力化処理によって消費電力を削減することができる。
なお、省電力化処理は、かかる例に限定されない。
【0080】
例えば、省電力化処理は、第1のウィンドウのプロセスの実行を停止させることであってもよい。省電力化処理部54は、例えば、コマンドを発行することで、第1のウィンドウのプロセスの実行を停止させる。
【0081】
一例として、省電力化処理部54は、実行中のプロセスを停止させるためのコマンドを発行する。例えば、OS40がWindowsである場合、当該コマンドは、Windowsで定義されている「NTSuspendProcess」である。なお、OS40がLinuxである場合、省電力化処理部54は、第1のウィンドウのプロセスに対して、STOPシグナルを発行する。
【0082】
なお、第1のウィンドウのプロセスの実行を再開させる場合、省電力化処理部54は、停止中のプロセスの実行を再開させるためのコマンドを発行する。例えば、OS40がWindowsである場合、当該コマンドは、Windowsで定義されている「NTResumeProcess」である。なお、OS40がLinuxである場合、省電力化処理部54は、第1のウィンドウのプロセスに対して、CONTシグナルを発行する。
【0083】
また、省電力化処理は、第1のウィンドウを最小化させることであってもよい。省電力化処理部54は、例えば、メッセージを発行することで、第1のウィンドウを最小化させる。
【0084】
一例として、省電力化処理部54は、ウィンドウを最小化させるためのメッセージを発行する。例えば、OS40がWindowsである場合、当該メッセージは、Windowsで定義されている「SendMessage(WM_SYSCOMMAND,SC_MINIMIZE)」である。
【0085】
また、省電力化処理は、処理対象と判定された第1のウィンドウがブラウザウィンドウである場合、ブラウザウィンドウ内の最前面にダミータブを開かせることであってもよい。省電力化処理部54は、例えば、コマンドを発行することで、処理対象であるブラウザウィンドウにダミータブを開かせる。
【0086】
一例として、省電力化処理部54は、ダミータブを開かせるためのショートカットキーを仮想的に入力させるためのコマンドを発行する。例えば、OS40がWindowsである場合、当該コマンドは、Windowsで定義されている「keybd_event API」である。また、ブラウザがChrome(登録商標)である場合、当該コマンドは、Chromeで定義されている「chrome.windows API」である。
【0087】
また、省電力化処理部54は、省電力化処理が実行された後のウィンドウの動作を制御してもよい。例えば、省電力化処理部54は、省電力化処理が実行された後のウィンドウの表示をぼかしてもよい。これにより、ユーザは、表示部14に表示されている複数のウィンドウの中から、省電力化処理が実行されているウィンドウを容易に区別することができる。
【0088】
上述のように、ブラウザ処理部42は、各種情報の取得や省電力化処理のためのAPIをWindow Manager41を介してOS40に実行させることができる。また、ブラウザ処理部42は、当該APIをOS40に実行させることで、ブラウザウィンドウBWやアプリケーションウィンドウAW等のブラウザの種類に関わらず、ウィンドウに対して省電力化処理を実行することができる。
【0089】
<<2.処理の流れ>>
以上、情報処理装置の構成の一例について説明した。続いて、
図5を参照して、本実施形態に係るノート型PC1における処理の流れの一例について説明する。
図5は、本実施形態に係るノート型PC1における処理の流れの一例を示すフローチャートである。なお、以下で説明するフローは、表示部14に複数のウィンドウが表示されていること、及び当該複数のウィンドウの各々が第1のウィンドウであることが前提のフローであるとする。
【0090】
図5に示すように、ノート型PC1は、まず、ウィンドウの表示が変化したか否かを判定する(S102)。ウィンドウの表示が変化した場合(S102/YES)、ノート型PC1は、S104の処理を実行する。一方、ウィンドウの表示が変化していない場合(S102/NO)、ノート型PC1は、S102から処理を繰り返す。
【0091】
ノート型PC1は、表示部14に表示中の複数のウィンドウを列挙する(S104)。次いで、ノート型PC1は、列挙した複数のウィンドウの位置関係を検出する(S106)。検出後、ノート型PC1は、検出したウィンドウごとにCallback処理を実行する(S108)。
【0092】
Callback処理にて、ノート型PC1は、まず、ウィンドウの表示位置を示す位置情報とサイズを取得し、ウィンドウの面積を算出する(S110)。次いで、ノート型PC1は、算出した面積とウィンドウの位置関係に基づき、ウィンドウの表示領域の割合を算出する(S112)。
【0093】
表示領域の割合の算出後、ノート型PC1は、表示領域の割合が所定の閾値以下であるか否かを判定する(S114)。表示領域の割合が所定の閾値以下である場合(S114/YES)、ノート型PC1は、第1のウィンドウが音声コンテンツを含むか否かを判定する(S116)。第1のウィンドウが音声コンテンツを含まない場合(S116/NO)、ノート型PC1は、第1のウィンドウに対して省電力化処理を実行する(S118)。
【0094】
一方、表示領域の割合が所定の閾値以下でない場合(S114/NO)、ノート型PC1は、第1のウィンドウに行われている省電力化を解除する(S120)。また、第1のウィンドウが音声コンテンツを含む場合(S116/YES)、ノート型PC1は、第1のウィンドウに対する省電力化を解除する(S120)。
【0095】
S118及びS120のいずれかの処理を実行後、ノート型PC1は、Callback処理の対象が列挙した最後のウィンドウであるか否かを判定する(S122)。Callback処理の対象が列挙した最後のウィンドウである場合、(S122/YES)、ノート型PC1は、Callback処理を終了し(S124)、S102から処理を繰り返す。一方、Callback処理の対象が列挙した最後のウィンドウでない場合(S122/NO)、ノート型PC1は、次のウィンドウのCallback処理を開始し(S126)、S110から処理を繰り返す。
【0096】
なお、
図5を参照して説明した処理は、所定の条件を満たすときに実行されてもよい。例えば、電源回路34に対して外部電源から直流電圧が供給されていない場合に、当該処理が実行されてもよい。また、電源回路34に対して外部電源から直流電圧が供給されておらず、かつ、バッテリ35の残量が所定の閾値以下である場合に、当該処理が実行されてもよい。これにより、ノート型PC1における消費電力が削減され、バッテリ35に充電された電力の消費速度を遅くすることができ、ノート型PC1の使用可能時間を延ばすことができる。
【0097】
<<3.具体例>>
以上、情報処理装置における処理の流れの一例について説明した。続いて、
図6A〜
図7Bを参照して、本実施形態に係る具体例について説明する。
【0098】
(1)第1の具体例
まず、
図6A及び
図6Bを参照して、本実施形態に係る第1の具体例について説明する。
図6Aは、本実施形態に係る第1の具体例における複数のウィンドウの表示の一例を示す図である。
図6Bは、本実施形態に係る第1の具体例における表示領域の一例を示す図である。第1の具体例における所定の閾値は、例えば、75%であるとする。
【0099】
図6Aに示すように、ノート型PC1の表示部14には、手前からブラウザウィンドウBW1、ブラウザウィンドウBW2、及びアプリケーションウィンドウAWの順に複数のウィンドウが表示されている。第1の具体例では、
図6Aに示す状態が、ウィンドウの表示が変化した直後の状態であるとする。
【0100】
この場合、検出部51は、表示中の複数のウィンドウを列挙し、列挙した複数のウィンドウの前後関係を検出する。続いて、Callback処理にて、表示部14の奥行方向の手前に位置するウィンドウから順に、省電力化処理を行うか否かの判定が行われる。
【0101】
具体的に、まず、1番手前の位置に表示されているブラウザウィンドウBW1が第1のウィンドウであるとする。この場合、まず、算出部52は、ブラウザウィンドウBW1の位置情報とサイズを取得して面積を算出する。面積の算出後、算出部52は、ブラウザウィンドウBW1の表示領域の割合を算出する。
【0102】
なお、ブラウザウィンドウBW1は表示部14における最前面に表示されている。そのため、算出部52は、表示領域の割合を100%と算出する。よって、表示領域の割合が所定の閾値以下ではないため、判定部53は、ブラウザウィンドウBW1に対して省電力化処理を行わないと判定する。
【0103】
続いて、手前から2番目の位置に表示されているブラウザウィンドウBW2が第1のウィンドウであるとすると、ブラウザウィンドウBW1が第2のウィンドウである。この場合、まず、算出部52は、ブラウザウィンドウBW2の位置情報とサイズを取得して面積を算出する。
【0104】
面積の算出後、算出部52は、ブラウザウィンドウBW2の表示領域の割合を算出する。この時、算出部52は、ブラウザウィンドウBW1とブラウザウィンドウBW2との位置関係に基づき、ブラウザウィンドウBW2の表示領域の割合を算出する。なお、ブラウザウィンドウBW2の表示領域は、
図6Bに示す表示領域DA1である。
【0105】
ブラウザウィンドウBW2の表示領域DA1の割合が所定の閾値以下であり、かつ、ブラウザウィンドウBW2が音声コンテンツを含まない場合、判定部53は、ブラウザウィンドウBW2に対して、省電力化処理を実行すると判定する。
【0106】
一方、ブラウザウィンドウBW2の表示領域DA1の割合が所定の閾値以下でない場合、判定部53は、ブラウザウィンドウBW2に対して、省電力化処理を実行しないと判定する。また、ブラウザウィンドウBW2の表示領域DA1の割合が所定の閾値以下であるがブラウザウィンドウBW2が音声コンテンツを含む場合も、判定部53は、ブラウザウィンドウBW2に対して、省電力化処理を実行しないと判定する。
【0107】
続いて、手前から3番目の位置に表示されているアプリケーションウィンドウAWが第1のウィンドウであるとすると、ブラウザウィンドウBW1及びブラウザウィンドウBW2が第2のウィンドウである。この場合、まず、算出部52は、アプリケーションウィンドウAWの位置情報とサイズを取得して面積を算出する。
【0108】
面積の算出後、算出部52は、アプリケーションウィンドウAWの表示領域の割合を算出する。この時、算出部52は、ブラウザウィンドウBW1、ブラウザウィンドウBW2、及びアプリケーションウィンドウAWの位置関係に基づき、アプリケーションウィンドウAWの表示領域の割合を算出する。なお、アプリケーションウィンドウAWの表示領域は、
図6Bに示す表示領域DA2である。
【0109】
アプリケーションウィンドウAWの表示領域DA2の割合が所定の閾値以下であり、かつ、アプリケーションウィンドウAWが音声コンテンツを含まない場合、判定部53は、アプリケーションウィンドウAWに対して、省電力化処理を実行すると判定する。
【0110】
一方、アプリケーションウィンドウAWの表示領域DA2の割合が所定の閾値以下でない場合、判定部53は、アプリケーションウィンドウAWに対して、省電力化処理を実行しないと判定する。また、アプリケーションウィンドウAWの表示領域DA2の割合が所定の閾値以下であるがアプリケーションウィンドウAWが音声コンテンツを含む場合も、判定部53は、アプリケーションウィンドウAWに対して、省電力化処理を実行しないと判定する。
【0111】
(2)第2の具体例
続いて、
図7A及び
図7Bを参照して、本実施形態に係る第2の具体例について説明する。
図7Aは、本実施形態に係る第2の具体例における複数のウィンドウの表示の一例を示す図である。
図7Bは、本実施形態に係る第2の具体例における表示領域の一例を示す図である。第2の具体例における所定の閾値は、例えば、75%であるとする。
【0112】
図7Aに示すように、ノート型PC1の表示部14には、アプリケーションウィンドウAWが全体に表示されている。しかしながら、
図7Bに示すように、アプリケーションウィンドウAWの後ろには、ブラウザウィンドウBWが視認できない状態で表示されている。第2の具体例では、
図7Aに示す状態が、ウィンドウの表示が変化した直後の状態であるとする。
【0113】
この場合、検出部51は、表示中の複数のウィンドウを列挙し、列挙した複数のウィンドウの前後関係を検出する。続いて、Callback処理にて、表示部14の奥行方向の手前に位置するウィンドウから順に、省電力化処理を行うか否かの判定が行われる。
【0114】
具体的に、まず、1番手前の位置に表示されているアプリケーションウィンドウAWが第1のウィンドウであるとする。この場合、まず、算出部52は、アプリケーションウィンドウAWの位置情報とサイズを取得して面積を算出する。面積の算出後、算出部52は、アプリケーションウィンドウAWの表示領域の割合を算出する。
【0115】
なお、アプリケーションウィンドウAWは表示部14における最前面に表示されている。そのため、算出部52は、アプリケーションウィンドウAWの表示領域の割合を100%と算出する。よって、表示領域の割合が所定の閾値以下ではないため、判定部53は、アプリケーションウィンドウAWに対して省電力化処理を行わないと判定する。
【0116】
続いて、手前から2番目の位置に表示されているブラウザウィンドウBWが第1のウィンドウであるとすると、アプリケーションウィンドウAWが第2のウィンドウである。この場合、まず、算出部52は、ブラウザウィンドウBWの位置情報とサイズを取得して面積を算出する。
【0117】
面積の算出後、算出部52は、ブラウザウィンドウBWの表示領域の割合を算出する。この時、算出部52は、ブラウザウィンドウBWとアプリケーションウィンドウAWとの位置関係に基づき、ブラウザウィンドウBWの表示領域の割合を算出する。
【0118】
なお、ブラウザウィンドウBWは、アプリケーションウィンドウAWの後ろに完全に隠れて表示されている。そのため、算出部52は、ブラウザウィンドウBWの表示領域の割合を0%と算出する。よって、表示領域の割合が所定の閾値以下であるため、判定部53は、ブラウザウィンドウBWに対して省電力化処理を行うと判定する。
【0119】
<<4.変形例>>
以上、本発明の実施形態について説明した。続いて、本発明の実施形態の変形例について説明する。なお、以下に説明する各変形例は、単独で本発明の実施形態に適用されてもよいし、組み合わせで本発明の実施形態に適用されてもよい。また、各変形例は、本発明の実施形態で説明した構成に代えて適用されてもよいし、本発明の各実施形態で説明した構成に対して追加的に適用されてもよい。
【0120】
(1)第1の変形例
ノート型PC1は、カメラを備えてもよい。カメラは、例えば、ユーザの目を撮像可能にノート型PC1の筐体に設けられる。また、カメラは、チップセット21に接続される。カメラが撮像したユーザの目の撮像画像は、チップセット21、CPU11、OS40、及びWindow Manager41を介して、ブラウザ処理部42の検出部51へ入力される。
【0121】
検出部51は、入力される撮像画像に基づき、表示部14の表面におけるユーザの視線の位置を検出する。この場合、所定の要件は、表示部14の表面におけるユーザの視線の位置が、第1のウィンドウの表示領域内に含まれないことを含んでもよい。なお、ユーザの視線の位置が第1のウィンドウの表示領域内に含まれないことは、ユーザが第1のウィンドウを視認していないことを示している。
【0122】
判定部53は、表示部14の表面におけるユーザの視線の位置が、第1のウィンドウの表示領域内に含まれるか否かを判定する。ユーザの視線の位置が、第1のウィンドウの表示領域内に含まれる場合、判定部53は、第1のウィンドウが所定の要件を満たしていないと判定する。
【0123】
一方、ユーザの視線の位置が、第1のウィンドウの表示領域内に含まれない場合、判定部53は、第1のウィンドウが所定の要件を満たしていると判定する。即ち、判定部53は、第1のウィンドウが処理対象であると判定する。そして、省電力化処理部54は、所定の要件を満たしていると判定された第1のウィンドウに対して、省電力化処理を実行する。このように、処理対象となる第1のウィンドウは、ユーザの視線に基づき判定されてもよい。
【0124】
(2)第2の変形例
上述した実施形態では、処理対象の第1のウィンドウ全体の動作を停止させる例について説明したが、かかる例に限定されない。処理対象の第1のウィンドウの動作は、部分的に停止されてもよい。
【0125】
省電力化処理部54は、例えば、処理対象の第1のウィンドウに含まれるコンテンツの内、消費電力が高いコンテンツの動作のみを停止する。消費電力が高いコンテンツは、例えば、動画コンテンツ、WebGL(Web Graphics Library)によって描画されるコンテンツ(例えば3次元画像)等である。
【0126】
消費電力の高いコンテンツは、例えば、CPU11やGPU13の使用率に基づき特定することができる。ブラウザ処理部42は、例えば、Window Manager41を介して、OS40からCPU11やGPU13の使用率の情報を取得する。
【0127】
また、省電力化処理部54は、処理対象の第1のウィンドウに含まれるコンテンツの内、表示領域に含まれるコンテンツの動作を停止させず、手前に表示されているウィンドウによって隠れている領域に含まれるコンテンツの動作のみを停止させてもよい。
【0128】
以上説明したように、本実施形態に係る情報処理装置は、マルチウィンドウ・マルチタスクOSを搭載している。表示部14に複数のウィンドウが表示されている場合、情報処理装置は、表示部14の奥行方向における複数のウィンドウの位置関係を検出する。複数のウィンドウが動的コンテンツを含む第1のウィンドウを含む場合、情報処理装置は、検出した位置関係に基づき、第1のウィンドウの表示状態が所定の要件を満たしているかを判定する。所定の要件を満たしていると判定された場合、情報処理装置は、第1のウィンドウに対して、省電力化処理を実行する。
【0129】
かかる構成により、本実施形態に係る情報処理装置は、表示部14に表示されている複数のウィンドウの内、ユーザがコンテンツを視認できないと判定されたウィンドウの消費電力を削減することができる。
【0130】
よって、本実施形態に係る情報処理装置は、マルチウィンドウ・マルチタスクOSにおいて複数のウィンドウを表示するための消費電力を削減することができる。
【0131】
以上、本発明の実施形態について説明した。なお、上述した実施形態における情報処理装置をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0132】
以上、図面を参照してこの発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
前記第1のウィンドウと、前記奥行方向において前記第1のウィンドウよりも手前に位置する第2のウィンドウとの前記位置関係に基づき、前記第1のウィンドウの前記表示領域の面積を算出し、前記表示領域の面積を前記第1のウィンドウの面積で除算して前記割合を算出する算出部、
をさらに備える、請求項5に記載の情報処理装置。
上述の課題を解決するために、本発明の一態様に係る情報処理装置は、マルチウィンドウ・マルチタスクをサポートしているオペレーティング・システム(OS)と、表示部に複数のウィンドウが表示されている場合、前記表示部の奥行方向における前記複数のウィンドウの位置関係を検出する検出部と、前記複数のウィンドウが動的に処理されるコンテンツを含む第1のウィンドウを含む場合、前記位置関係に基づき、前記第1のウィンドウの表示状態が所定の要件を満たしているかを判定する判定部と、前記所定の要件を満たしていると判定された場合、前記第1のウィンドウに対して、
本発明の一態様に係る情報処理方法は、オペレーティング・システム(OS)が、マルチウィンドウ・マルチタスクをサポートしていることと、検出部が、表示部に複数のウィンドウが表示されている場合、前記表示部の奥行方向における前記複数のウィンドウの位置関係を検出することと、判定部が、前記複数のウィンドウが動的に処理されるコンテンツを含む第1のウィンドウを含む場合、前記位置関係に基づき、前記第1のウィンドウの表示状態が所定の要件を満たしているかを判定することと、省電力化処理部が、前記所定の要件を満たしていると判定された場合、前記第1のウィンドウに対して、