(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-02
(45)【発行日】2022-09-12
(54)【発明の名称】情報処理装置、及び制御方法
(51)【国際特許分類】
G06F 13/12 20060101AFI20220905BHJP
G06F 15/78 20060101ALN20220905BHJP
【FI】
G06F13/12 330C
G06F15/78 513
(21)【出願番号】P 2021022473
(22)【出願日】2021-02-16
【審査請求日】2021-02-16
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100161207
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100169764
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100175824
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100206081
【氏名又は名称】片岡 央
(72)【発明者】
【氏名】今井 拓水
(72)【発明者】
【氏名】チュオン ゴック フィー
(72)【発明者】
【氏名】二見 恭平
【審査官】松平 英
(56)【参考文献】
【文献】特開2004-096690(JP,A)
【文献】特開2018-142831(JP,A)
【文献】アブラモフ ルシアン 他,Cisco ACI ポリシーベースのデータセンター,初版,日本,株式会社インプレス,2015年12月11日,pp. 296-297,ISBN: 978-4-8443-3961-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/00
3/18
13/10-13/14
13/20-13/42
15/78
G06T 1/00-5/50
9/00-9/40
H04M 3/00
3/16-3/20
3/38-3/58
7/00-7/16
11/00-11/10
H04N 5/222-5/257
7/10
7/14-7/56
21/00-21/858
(57)【特許請求の範囲】
【請求項1】
第1アプリケーションの処理に応じて撮像部から撮像データを取得する映像取得部と、
前記映像取得部が取得した前記撮像データを、
前記第1アプリケーションの実行中に前記第1アプリケーション以外に
実行されている第2アプリケーションの処理により使用可能なように共有メモリへ記憶させる第1映像処理部と、
前記第2アプリケーションに応じた時間間隔で前記共有メモリから前記撮像データを取得
する毎に前記第2アプリケーションへ送信する第2映像処理部と、
を備え
、
前記第2映像処理部は、
前記第2アプリケーションへ送信した前記撮像データを前記第2アプリケーションが取得する毎に処理を行った処理後の撮像データを、前記第2アプリケーションから取得する毎に前記共有メモリへ記憶させ、
前記第1映像処理部は、
前記共有メモリから前記処理後の撮像データを前記時間間隔で取得して前記第1アプリケーションへ送信する、
情報処理装置。
【請求項2】
前記第2映像処理部は、
前記第2アプリケーションから前記時間間隔に関する要求情報を取得し、取得した前記要求情報に基づく前記時間間隔で前記共有メモリから前記撮像データを取得して前記第2アプリケーションへ送信する、
請求項1に記載の情報処理装置。
【請求項3】
前記第2映像処理部は、
複数の前記第2アプリケーションのそれぞれの識別情報と、それぞれの前記時間間隔とが関連付けられた関連付けテーブルが予め設定されており、
前記第2映像処理部は、
前記第2アプリケーションから取得した前記識別情報と前記関連付けテーブルとに基づく前記時間間隔で前記共有メモリから前記撮像データを取得して前記第2アプリケーションへ送信する、
請求項1に記載の情報処理装置。
【請求項4】
前記第2映像処理部は、
前記第2アプリケーションへ送信した前記撮像データに対して前記第2アプリケーションが処理を行った処理後の撮像データを前記第2アプリケーションから取得して前記共有メモリへ記憶させ、
前記第1映像処理部は、
前記共有メモリから前記処理後の撮像データを取得して前記第1アプリケーションへ送信する、
請求項1から請求項3のいずれか一項に記載の情報処理装置。
【請求項5】
複数の前記第2アプリケーションのそれぞれに対応する複数の前記第2映像処理部を、備え、
複数の前記第2映像処理部のそれぞれは、
それぞれに対応する前記第2アプリケーションに応じた前記時間間隔で前記共有メモリから前記撮像データを取得してそれぞれの前記第2アプリケーションへ送信する、
請求項1から請求項4のいずれか一項に記載の情報処理装置。
【請求項6】
システムの状況に関するシステム情報を取得するシステム情報取得部、
をさらに備え、
前記第2映像処理部は、
前記システム情報取得部が取得する前記システム情報に基づいて、前記共有メモリから前記撮像データを取得する際の前記時間間隔をさらに変更する、
請求項1から請求項5のいずれか一項に記載の情報処理装置。
【請求項7】
前記システム情報は、通信ネットワークの品質に関する情報であり、
前記第2映像処理部は、
前記システム情報取得部が取得する前記システム情報に基づいて前記通信ネットワークの品質が所定の閾値以下に低下したと判定した場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くする、
請求項6に記載の情報処理装置。
【請求項8】
前記システム情報は、プロセッサの使用率に関する情報であり、
前記第2映像処理部は、
前記システム情報取得部が取得する前記システム情報に基づいて前記プロセッサの使用率が所定の閾値以上であると判定した場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くする、
請求項6に記載の情報処理装置。
【請求項9】
前記システム情報は、前記情報処理装置へ給電する二次電池の残容量に関する情報であり、
前記第2映像処理部は、
前記システム情報取得部が取得する前記システム情報に基づいて前記二次電池の残容量が所定の閾値より低下したと判定した場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くする、
請求項6に記載の情報処理装置。
【請求項10】
前記撮像データに基づく映像を表示する表示部と、
前記表示部または前記撮像部に対面する側に存在する人物を検出する人物検出部と、
をさらに備え、
前記第2映像処理部は、
前記人物検出部が人物の存在を検出できない場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くする、
請求項6に記載の情報処理装置。
【請求項11】
情報処理装置における制御方法であって、
映像取得部が、第1アプリケーションの処理に応じて撮像部から撮像データを取得するステップと、
第1映像処理部が、前記映像取得部が取得した前記撮像データを、
前記第1アプリケーションの実行中に前記第1アプリケーション以外に
実行されている第2アプリケーションの処理により使用可能なように共有メモリへ記憶させるステップと、
第2映像処理部が、前記第2アプリケーションに応じた時間間隔で前記共有メモリから前記撮像データを取得
する毎に前記第2アプリケーションへ送信するステップと、
前記第2映像処理部が、前記第2アプリケーションへ送信した前記撮像データを前記第2アプリケーションが取得する毎に処理を行った処理後の撮像データを、前記第2アプリケーションから取得する毎に前記共有メモリへ記憶させるステップと、
前記第1映像処理部が、前記共有メモリから前記処理後の撮像データを前記時間間隔で取得して前記第1アプリケーションへ送信するステップと、
を含む制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、及び制御方法に関する。
【背景技術】
【0002】
昨今、パーソナルコンピュータなどの情報処理装置では、カメラを用いるユースケースが増えている。例えば、静止画や動画の撮影を目的として利用だけでなく、ビデオ会議、人物検出、ユーザ認証、注視点の検出やジェスチャー認識など、多くの目的にカメラが使用されている。例えば、特許文献1には、カメラを用いて人物を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
カメラへのアクセスは排他的であるため、いずれかのアプリケーションがカメラを使用している場合、他のアプリケーションはカメラを使用することができない。この問題を解決するために、OS(Operating System)によっては、カメラを複数のアプリケーションで共有できるような拡張機能を使用する方法が考えられる。しかしながら、上述した拡張機能を用いて複数のアプリケーションがカメラを使用すると、処理負荷が大きくなる。
【0005】
本発明は上記した事情に鑑みてなされたもので、複数のアプリケーションがカメラを使用する際の処理を効率化する情報処理装置、及び制御方法を提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたものであり、本発明の第1態様に係る情報処理装置は、第1アプリケーションの処理に応じて撮像部から撮像データを取得する映像取得部と、前記映像取得部が取得した前記撮像データを、前記第1アプリケーション以外の第2アプリケーションの処理により使用可能なように共有メモリへ記憶させる第1映像処理部と、前記第2アプリケーションに応じた時間間隔で前記共有メモリから前記撮像データを取得して前記第2アプリケーションへ送信する第2映像処理部と、を備える。
【0007】
上記情報処理装置において、前記第2映像処理部は、前記第2アプリケーションから前記時間間隔に関する要求情報を取得し、取得した前記要求情報に基づく前記時間間隔で前記共有メモリから前記撮像データを取得して前記第2アプリケーションへ送信してもよい。
【0008】
上記情報処理装置において、前記第2映像処理部は、複数の前記第2アプリケーションのそれぞれの識別情報と、それぞれの前記時間間隔とが関連付けられた関連付けテーブルが予め設定されており、前記第2映像処理部は、前記第2アプリケーションから取得した前記識別情報と前記関連付けテーブルとに基づく前記時間間隔で前記共有メモリから前記撮像データを取得して前記第2アプリケーションへ送信してもよい。
【0009】
上記情報処理装置において、前記第2映像処理部は、前記第2アプリケーションへ送信した前記撮像データに対して前記第2アプリケーションが処理を行った処理後の撮像データを前記第2アプリケーションから取得して前記共有メモリへ記憶させ、前記第1映像処理部は、前記共有メモリから前記処理後の撮像データを取得して前記第1アプリケーションへ送信してもよい。
【0010】
上記情報処理装置は、複数の前記第2アプリケーションのそれぞれに対応する複数の前記第2映像処理部を、備え、複数の前記第2映像処理部のそれぞれは、それぞれに対応する前記第2アプリケーションに応じた前記時間間隔で前記共有メモリから前記撮像データを取得してそれぞれの前記第2アプリケーションへ送信してもよい。
【0011】
上記情報処理装置は、システムの状況に関するシステム情報を取得するシステム情報取得部、をさらに備え、前記第2映像処理部は、前記システム情報取得部が取得する前記システム情報に基づいて、前記共有メモリから前記撮像データを取得する際の前記時間間隔をさらに変更してもよい。
【0012】
上記情報処理装置において、前記システム情報は、通信ネットワークの品質に関する情報であり、前記第2映像処理部は、前記システム情報取得部が取得する前記システム情報に基づいて前記通信ネットワークの品質が所定の閾値以下に低下したと判定した場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くしてもよい。
【0013】
上記情報処理装置において、前記システム情報は、プロセッサの使用率に関する情報であり、前記第2映像処理部は、前記システム情報取得部が取得する前記システム情報に基づいて前記プロセッサの使用率が所定の閾値以上であると判定した場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くしてもよい。
【0014】
上記情報処理装置において、前記システム情報は、前記情報処理装置へ給電する二次電池の残容量に関する情報であり、前記第2映像処理部は、前記システム情報取得部が取得する前記システム情報に基づいて前記二次電池の残容量が所定の閾値より低下したと判定した場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くしてもよい。
【0015】
上記情報処理装置は、前記撮像データに基づく映像を表示する表示部と、前記表示部または前記撮像部に対面する側に存在する人物を検出する人物検出部と、をさらに備え、前記第2映像処理部は、前記人物検出部が人物の存在を検出できない場合、前記共有メモリから前記撮像データを取得する際の前記時間間隔を、前記第2アプリケーションに応じた前記時間間隔よりも長くしてもよい。
【0016】
また、本発明の第2態様に係る情報処理装置における制御方法は、映像取得部が、第1アプリケーションの処理に応じて撮像部から撮像データを取得するステップと、第1映像処理部が、前記映像取得部が取得した前記撮像データを、前記第1アプリケーション以外の第2アプリケーションの処理により使用可能なように共有メモリへ記憶させるステップと、第2映像処理部が、前記第2アプリケーションに応じた時間間隔で前記共有メモリから前記撮像データを取得して前記第2アプリケーションへ送信するステップと、を含む。
【発明の効果】
【0017】
本発明の上記態様によれば、複数のアプリケーションがカメラを使用する際の処理を効率化することができる。
【図面の簡単な説明】
【0018】
【
図1】第1の実施形態に係る情報処理装置の外観を示す斜視図。
【
図2】第1の実施形態に係る拡張機能を用いた処理の概要を示す模式図。
【
図3】第1の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図。
【
図4】第1の実施形態に係る機能拡張データ処理の構成の一例を示すブロック図。
【
図5】第1の実施形態に係る処理後撮像データの表示例を示す図。
【
図6】第1の実施形態に係るアプリケーションの種類とフレームレートの対応の一例を示す図。
【
図7】第1の実施形態に係る映像拡張機能処理の構成の一例を示すブロック図。
【
図8】第1の実施形態に係る映像拡張機能処理の第1例を示すシーケンス図。
【
図9】第1の実施形態に係る映像拡張機能処理の第2例を示すシーケンス図。
【
図10】第2の実施形態に係る映像拡張機能処理の構成の一例を示すブロック図。
【
図11】第3の実施形態に係る映像拡張機能処理の構成の一例を示すブロック図。
【
図12】第3の実施形態に係るCPU使用率の閾値とフレームレートの低下率との対応付けの一例を示す図。
【
図13】第3の実施形態に係るCPU使用率によるフレームレート変更処理の一例を示すフローチャート。
【
図14】第4の実施形態に係るバッテリ残容量の閾値とフレームレートの低下率との対応付けの一例を示す図。
【
図15】第4の実施形態に係るバッテリ残容量によるフレームレート変更処理の一例を示すフローチャート。
【
図16】第5の実施形態に係る通信ネットワークの品質によるフレームレート変更処理の一例を示すフローチャート。
【
図17】第6の実施形態に係る映像拡張機能処理の構成の一例を示すブロック図。
【
図18】第6の実施形態に係るユーザの存在とフレームレートの低下率との対応付けの一例を示す図。
【
図19】第6の実施形態に係る人物の存在の有無によるフレームレート変更処理の一例を示すフローチャート。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら本発明の実施形態について説明する。
<第1の実施形態>
図1は、本実施形態に係る情報処理装置の外観を示す斜視図である。図示する情報処理装置10は、クラムシェル型のノートPC(Personal Computer)である。情報処理装置10は、第1筐体11、第2筐体12、及びヒンジ機構13を備えている。第1筐体11及び第2筐体12は、略四角形の板状(例えば、平板状)の筐体である。第1筐体11の側面の一つと第2筐体12の側面の一つとがヒンジ機構13を介して結合(連結)されており、ヒンジ機構13がなす回転軸の周りに第1筐体11と第2筐体12とが相対的に回動可能である。第1筐体11と第2筐体12との回転軸の周りの開き角θが略0°の状態が、第1筐体11と第2筐体12とが重なり合って閉じた状態(「閉状態」と称する)である。閉状態において第1筐体11と第2筐体12との互いに対面する側の面を、それぞれの「内面」と呼び、内面に対して反対側の面を「外面」と称する。開き角θとは、第1筐体11の内面と第2筐体12の内面とがなす角とも言うことができる。閉状態に対して第1筐体11と第2筐体12とが開いた状態のことを「開状態」と称する。開状態とは、開き角θが予め設定された閾値(例えば、10°)より大きくなるまで、第1筐体11と第2筐体12とが相対的に回動された状態である。
【0020】
第1筐体11の内面には、表示部15が設けられている。表示部15は、情報処理装置10に実行される処理に基づく映像を表示する。また、第1筐体11の内面のうち表示部15の周縁の領域に、カメラ16(撮像部の一例)が設けられている。即ち、カメラ16は、情報処理装置10を使用するユーザと対面するような位置に設けられている。
【0021】
また、第2筐体12の内面にはキーボードが入力部19として設けられている。閉状態では、表示部15が視認できない状態、且つキーボードへの操作ができない状態となる。一方、開状態では、表示部15が視認可能な状態、且つキーボードへの操作が可能な状態(即ち、情報処理装置10を使用可能な状態)となる。情報処理装置10は、カメラ16により撮像される映像を用いる複数のアプリケーションのプログラムを実行することができる。
【0022】
例えば、複数のユーザのそれぞれが端末装置を用いて双方向に映像及び音声を通信するビデオ会議を行うためのアプリケーションがある。情報処理装置10を用いてユーザがビデオ会議アプリケーションを使用する場合、カメラ16は、表示部15に対面するユーザの映像を撮像する。情報処理装置10は、カメラ16により撮像された映像を、ビデオ会議に参加する他のユーザの端末装置で表示可能なように通信ネットワークを介して送信するとともに、当該他のユーザの映像を取得して表示部15に表示する。ビデオ会議に参加する各ユーザは、互いにユーザの映像を見ながら会話を行うことができる。
【0023】
ここで、情報処理装置10で実行可能なアプリケーションには、カメラ16を使用するアプリケーションが複数ある。従来、1つのアプリケーションがカメラ16の撮像データを使用した処理を行っているときには他のアプリケーションはカメラ16の撮像データを使用した処理を行うことができなかった。本実施形態に係る情報処理装置10は、拡張機能を用いることにより、複数のアプリケーションが同時にカメラ16の撮像データを使用した処理を実行する構成を適用する。
【0024】
図2は、本実施形態に係る拡張機能を用いた処理の概要を示す模式図である。本実施形態では、カメラ16で撮像された撮像データは、ドライバ110を介してアプリケーションで使用可能となる。ドライバ110から出力される撮像データは、1つのアプリケーションでしか使用できないが、機能拡張部120を設けることにより複数のアプリケーションで同時に使用可能となる。機能拡張部120は、撮像データを複数のアプリケーションで同時に使用可能なように機能拡張する機能拡張データ処理を実行する。具体的には、機能拡張部120は、ドライバ110から出力される撮像データを共有メモリ(Shared memry)にコピーすることにより、複数のアプリケーションから撮像データへのアクセスを可能とする。
【0025】
なお、機能拡張部120は、一例として、Windows(登録商標)の拡張機能としてサポートされているデバイスMFTを用いて設計される機能構成である。デバイスMFTは、カメラ16の撮像データを取得するドライバ110の拡張機能としてユーザモードで実行される。なお、カメラ16及びドライバ110はカーネルモードで実行される。一方、機能拡張部120(デバイスMFT)及びアプリケーションはユーザモードで実行される。機能拡張部120を用いた機能拡張データ処理の構成について詳しくは後述する。
【0026】
このような構成によれば、アプリケーション1がカメラ16の撮像データを使用した処理を行うのと同時に、アプリケーション2もカメラ16の撮像データを使用した処理を行うことができる。例えば、アプリケーション1は、ビデオ会議や撮影などを行うためのアプリケーションなどである。また、アプリケーション2は、撮像データの背景処理(例えば、背景ぼかしなど)や美肌補正などの画像処理を行うアプリケーション、ジェスチャーや物体などの認識処理を行うアプリケーション、人物カウントや人物の存在や離脱などの検出処理を行うアプリケーションなどである。
【0027】
例えば、情報処理装置10は、ビデオ会議を行うアプリケーションと背景処理を行うアプリケーションとを同時に実行することにより、ビデオ会議用のユーザの映像の背景部分をぼかした映像とすることができる。また例えば、情報処理装置10は、ビデオ会議を行うアプリケーションとジェスチャー認識を行うアプリケーションとを同時に実行することにより、ビデオ会議を行いながらジェスチャーを用いた操作入力を受け付けることができる。また例えば、情報処理装置10は、ビデオ会議を行うアプリケーションと人物の離脱検出を行うアプリケーションとを同時に実行することにより、ビデオ会議の最中にユーザが離脱したか否かを検出することができる。
【0028】
このように、複数のアプリケーションが同時にカメラ16の撮像データを使用することができると、1つのアプリケーションでは実行できない機能を同時に実現することや、不足している機能を他のアプリケーションで補うことが可能になる。しかしながら、複数のアプリケーションがカメラ16の撮像データを使用した処理を同時に行うと、情報処理装置10の処理負荷が大きくなる懸念がある。そこで、情報処理装置10は、アプリケーションに応じてカメラ16の撮像データのフレームレートを変更する。フレームレートは、1秒あたりフレーム数であり、フレームの時間間隔と相関する。フレームレートの値が高いほどフレームの時間間隔は短くなり、フレームレートの値が低いほどフレームの時間間隔は長くなる。フレームの時間間隔が短いほど、処理負荷は大きくなる。
【0029】
例えば、情報処理装置10は、高いフレームレートを必要とするアプリケーションの場合には高いフレームレートの撮像データを使用した処理とするが、高いフレームレートを必要としないアプリケーションの場合にはフレームレートを低下させることにより処理負荷を軽減する。このように、情報処理装置10は、アプリケーションに応じたフレームレートで撮像データを使用するように制御することで、複数のアプリケーションがカメラ16を使用する際の処理を効率化することができる。以下、本実施形態に係る情報処理装置10の構成について詳しく説明する。
【0030】
(情報処理装置10の構成)
図3は、本実施形態に係る情報処理装置10のハードウェア構成の一例を示すブロック図である。なお、この図において、
図1の各部に対応する構成には同一の符号を付している。図示する情報処理装置10は、表示部15と、カメラ16と、通信部17と、記憶部18と、入力部19と、EC(Embedded Controller)20と、電源部21と、バッテリ22と、システム処理部100とを備えている。
【0031】
表示部15は、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイなどを含んで構成されている。表示部15は、システム処理部100の制御に基づいて表示データに基づく映像を表示する。表示データには、OSの処理又はOS上で動作するアプリケーションの処理によって生成される画像及び文字のデータなどが含まれる。例えば、表示部15は、アプリケーションの処理に基づいてカメラ16の撮像データに基づく映像や、当該撮像データに画像処理を行った処理後の撮像データ(以下、「処理後撮像データ」と称する)に基づく映像などを表示する。
【0032】
カメラ16は、不図示のレンズ及び撮像素子を含んで構成され、レンズを介して入力される被写体像を撮像して電気信号に変化した撮像データを出力する。例えば、カメラ16は、第1筐体11の内面に対面する方向の所定の範囲(画角)を所定の時間間隔で撮像し、撮像した撮像データをシステム処理部100へ出力する。所定の時間間隔とは、例えば、撮像データのフレームレートに相当する。
【0033】
通信部17は、無線または有線による通信ネットワークを介して他の機器と通信可能に接続し、各種のデータの送信および受信を行う。例えば、通信部170は、イーサネット(登録商標)等の有線LANインターフェースやWi-Fi(登録商標)等の無線LANインターフェース等を含んで構成されている。
【0034】
記憶部18は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)などの記憶媒体を含んで構成される。例えば、記憶部18は、OS、各種ドライバ、各種サービス/ユーティリティ、アプリケーション等のプログラム、及び各種データ等を記憶する。
【0035】
入力部19は、ユーザの入力を受け付ける入力部であり、例えば
図1に示すようにキーボードを含んで構成されている。入力部19は、キーボードに対するユーザの操作を受け付けることに応じて、ユーザの操作に応じた操作信号をEC20へ出力する。なお、入力部19は、キーボードに代えて、または加えてタッチパネル、タッチパッド等を含んで構成されてもよい。また、入力部19は、マウスや外付けのキーボード等の外部の操作デバイスと有線または無線で接続され、接続された外部の操作デバイスに対するユーザの操作を受け付けてもよい。
【0036】
EC20は、OSのシステム状態に関わらず、各種デバイス(周辺装置やセンサ等)を監視及び制御するワンチップマイコン(One-Chip Microcomputer)である。なお、EC20は、不図示のCPU(Central Processing Unit)、RAM、ROMなどを含んで構成されるとともに、複数チャネルのA/D入力端子、D/A出力端子、タイマ、及びデジタル入出力端子などを備えている。EC20には、それらの入出力端子を介して、入力部19と、及び電源部21などが接続されている。EC20は、接続されている各部と各種信号の受信または送信を行う。
【0037】
例えば、EC20は、入力部19から出力された操作信号を取得し、取得した操作信号に基づく処理を実行する。EC20は、取得した操作信号のうちシステム処理部100の処理に関連する操作信号についてはシステム処理部100へ出力する。また、EC20は、OSのシステム状態などに応じて、電源部21を制御する。例えば、EC20は、システム状態などに応じた電力の供給を制御するための制御信号などを電源部21へ出力する。また、EC20は、電源部21と通信を行うことにより、バッテリ22の状態(残容量など)の情報を電源部21から取得する。
【0038】
電源部21は、例えば、DC/DCコンバータ、及びバッテリ22の充電または放電を制御するための充放電回路などを含んで構成される。電源部21は、バッテリ22から供給される直流電力または不図示の外部電源(ACアダプタ等)から供給される直流電力を、情報処理装置10の各部を動作させるために必要な複数の電圧に変換する。電源部21は、EC20の制御に基づいて情報処理装置10の各部に電力を供給する。
【0039】
バッテリ22は、外部電源(ACアダプタ等)から電力が供給されない時に、情報処理装置10の各部へ電力を供給するための二次電池である。外部電源(ACアダプタ等)から電力が供給されているときは、バッテリ22は、満充電になるまで電源部21を介して当該電力により充電される。外部電源(ACアダプタ等)から電力が供給されていない時には、バッテリ22に充電されている電力が放電され電源部21を介して情報処理装置10の各部に供給される。
【0040】
システム処理部100は、CPU101、GPU(Graphic Processing Unit)102、メモリコントローラ103、I/O(Input-Output)コントローラ104、及びシステムメモリ105を含んで構成されている。CPU101及びGPU102をプロセッサと総称することがある。
【0041】
CPU101は、OS、各種ドライバ、各種サービス/ユーティリティ、アプリケーション等のプログラムによる処理を実行する。GPU102は、表示部15に接続されている。GPU102は、CPU101の制御に基づいて画像処理を実行して表示データを生成する。GPU102は、生成した表示データを表示部15に出力する。なお、CPU101とGPU102は、一体化して1個のコアとして形成されてもよいし、個々のコアとして形成されたCPU101とGPU102の相互間で負荷が分担されてもよい。プロセッサの数は、1個に限られず、複数個であってもよい。
【0042】
メモリコントローラ103は、CPU101及びGPU102の処理によるシステムメモリ105及び記憶部360などからのデータの読出し及び書込みを制御する。
I/Oコントローラ104は、表示部15、カメラ16、通信部17、及びEC20等とのデータの入出力を制御する。
システムメモリ105は、CPU101及びGPU102等のプロセッサが実行するプログラムの読み込み領域として、又は、当該プログラムの処理データを書き込む作業領域として利用される書き込み可能なメモリである。例えば、システムメモリ105は、複数個のDRAM(Dynamic Random Access Memory)チップを含んで構成される。プログラムには、OS、周辺機器類を制御するための各種ドライバ、各種サービス/ユーティリティ、アプリケーションのプログラム等が含まれる。
【0043】
(機能拡張データ処理の構成)
次に、カメラ16の撮像データを複数のアプリケーションで同時に使用可能なように機能拡張する機能拡張データ処理の構成について詳しく説明する。
図4は、本実施形態に係る機能拡張データ処理の構成の一例を示すブロック図である。この図において、
図2に示す各部に対応する構成には同一の符号を付している。機能拡張部120は、カメラ16で撮像された撮像データのRawフレームを、ドライバ110を介して取得する。ドライバ110は、カメラ16をOSにより制御可能にするためのソフトウェアである。ドライバ110及び機能拡張部120は、それぞれのプログラムをCPU110が実行することにより実現される機能構成である。
【0044】
アプリケーション1のみがカメラ16の撮像データを使用する場合、機能拡張部120は、カメラ16から取得した撮像データのRawフレームをアプリケーション1へ出力する。この処理は、機能拡張部120が取得した撮像データのRawフレームをバススルーでそのままアプリケーション1へ出力する処理である。ここでは、アプリケーション1は、ビデオ会議を行うアプリケーションを例とする。機能拡張部120が取得した撮像データのRawフレームがバススルーでそのままアプリケーション1にストリーミングされる。
【0045】
一方、アプリケーション1及びアプリケーション2が同時にカメラ16の撮像データを使用する場合の処理を以下(1)~(4)に説明する。
(1)機能拡張部120は、ドライバ110を介してカメラ16から取得した撮像データのRawフレームを、アプリケーション2の処理により使用可能なように共有メモリ130へ記憶させる。例えば、機能拡張部120は、ドライバ110を介してカメラ16から取得した撮像データのRawフレームを共有メモリ130にコピーして書き込む。共有メモリ130は、例えば、システムメモリ105内に設定される。また、機能拡張部120は、撮像データを共有メモリ130にコピーした後、アプリケーション2による処理結果を待つ。
(2)アプリケーション2は、OSの処理により共有メモリ130から撮像データのRawフレームを読み出して処理を行う。例えば、アプリケーション2は、背景処理などの画像処理を行うアプリケーションの場合、予め設定された画像処理またはユーザにより選択された画像処理等を行う。ここでは、背景ぼかし処理を例として説明する。アプリケーション2は、撮像データのRawフレームから背景領域を検出し、検出した背景領域に対してぼかし処理を行う。
(3)アプリケーション2は、背景領域に対してぼかし処理を行ったデータを撮像データのRawフレームにオーバーレイした処理後撮像データのフレームを生成する。そして、アプリケーション2は、生成した処理後撮像データのフレームを共有メモリ130に書き込む。
(4)機能拡張部120は、アプリケーション2による処理結果として、共有メモリ130から処理後撮像データのフレームが入力されると、当該処理後撮像データのフレームを機能拡張部120内のフレームバッファに書き込む。機能拡張部120が処理後撮像データのフレームを取得した場合、この処理後撮像データのフレームがアプリケーション1にストリーミングされる。
【0046】
図5は、アプリケーション1にストリーミングされた処理後撮像データの表示例を示す図である。この図は、表示部15の表示画面15Gにおいて、ビデオ会議を行うアプリケーション1のウィンドウW1がアクティブウィンドウとして表示されている例を示している。ここでは、情報処理装置10を使用してビデオ会議を行うユーザU1自身の映像がウィンドウW1に表示されている。この映像は、背景領域BRに対してぼかし処理が行われた処理後撮像データに基づく映像である。背景ぼかし処理は、アプリケーション1ではなく、アプリケーション2の処理である。
図5に示すスイッチSW1は、アプリケーション1の機能としての背景ぼかし処理の有効と無効とを切り替える操作スイッチである。ここでは、アプリケーション1の機能としての背景ぼかし処理は、無効に設定されている。
【0047】
なお、アプリケーション2が、アプリケーション1でストリーミングされる撮像データに対する画像処理ではなく、ジェスチャーや物体などの認識処理、または人物カウントや人物の存在や離脱などの検出処理を行うアプリケーションの場合には、処理後撮像データを共有メモリ130へ戻す必要がない。この場合、
図4に示す(1)及び(2)の処理が行われ、(3)及び(4)の処理は行われない。(2)において、アプリケーション2は、画像処理に代えて、アプリケーション2が有する機能の処理を実行する。アプリケーション1には、機能拡張部120が取得した撮像データのRawフレームがバススルーでそのままストリーミングされる。
【0048】
このように、情報処理装置10は、拡張機能を用いることにより、複数のアプリケーションが同時にカメラ16の撮像データを使用した処理を実行することができるが、前述したように処理負荷が大きくなる懸念がある。そこで、情報処理装置10は、アプリケーションに応じてカメラ16の撮像データのフレームレートを変更する。例えば、アプリケーションの種類によってフレームレートを変更する。
【0049】
図6は、アプリケーションの種類とフレームレートの対応の一例を示す図である。アプリケーションの種類とは、例えば、アプリケーションの機能を実現するために必要なフレームレートによって分類される種類である。図示する例では、アプリA,アプリB、アプリCの3つの種類に分類している。
【0050】
アプリAに分類されるアプリケーションは、カメラ16の撮像データに対してリアルタイムに画像処理を行う必要があるアプリケーションである。例えば、撮像データに対して背景処理、人物の顔の美肌補正、効果映像の追加処理、拡大処理などを行うアプリケーションがアプリAとして例示できる。アプリAに分類されるアプリケーションで必要なフレームレートは、例えば15~30fps(frames per second)である。
【0051】
アプリBに分類されるアプリケーションは、カメラ16の撮像データを用いて認識処理を行うアプリケーションである。例えば、撮像データから人物のジェスチャーを認識する処理、視線を追跡する処理、人物の姿勢や物体を認識する処理、対象物を分類する処理などを行うアプリケーションがアプリBとして例示できる。アプリBに分類されるアプリケーションで必要なフレームレートは、アプリAほどリアルタイム性が求められないため、例えば1~15fpsである。
【0052】
アプリCに分類されるアプリケーションは、カメラ16の撮像データを用いて検出処理を行うアプリケーションである。例えば、撮像データから人物を検出して人数をカウントする処理、情報処理装置10使用するユーザの背後からの覗き込みを監視する処理、人物の存在や離脱を検出する処理などを行うアプリケーションがアプリCとして例示できる。アプリCに分類されるアプリケーションで必要なフレームレートは、アプリBよりさらに即時性が求められないため、例えば1fps以下である。
【0053】
例えば、アプリケーション2は、起動したときに、自身が必要とするフレームレートに関する要求情報を出力する。情報処理装置10は、その要求情報に基づくフレームレートの撮像データをアプリケーション2へ送信する。具体的には、情報処理装置10は、
図4に示す機能拡張データ処理の構成に、アプリケーション2へ送信する撮像データのフレームレートをアプリケーション毎に設定する映像設定処理部の構成を加えた映像拡張機能処理の構成を備える。
【0054】
図7は、本実施形態に係る映像拡張機能処理の構成の一例を示すブロック図である。この図において、
図4に示す各部に対応する構成には同一の符号を付している。符号EX1が示す機能拡張データ処理の構成は、
図4に示す機能拡張部120と共有メモリ130とを含む構成である。この機能拡張データ処理の構成に映像設定処理部140を加えた構成が、符号EX2が示す映像拡張機能処理の構成である。映像設定処理部140は、アプリケーション2に応じたフレームレートで共有メモリ130から撮像データを取得してアプリケーション2へ送信する。即ち、共有メモリ130とアプリケーション2との間に映像設定処理部140が設けられ、アプリケーション毎にフレームレートの設定等が可能となっている。ここでは、映像設定処理部140の構成について詳しく説明する。
【0055】
映像設定処理部140は、例えばライブラリとして提供することができる。映像設定処理部140は、ライブラリを呼び出して実行することにより実現する機能構成として、映像取得部141と、映像設定部142と、情報設定部143と、情報取得部144とを備えている。
【0056】
映像取得部141は、情報設定部143により設定されたフレームレートで共有メモリ130から撮像データを取得してアプリケーション2へ送信する。
【0057】
映像設定部142は、アプリケーション2で処理された処理後撮像データを共有メモリ130に書き込む。
【0058】
情報設定部143は、アプリケーション2からフレームレートに関する要求情報を取得し、要求情報に基づいてフレームレートを設定する。
【0059】
情報取得部144は、共有メモリ130から取得する撮像データの情報を取得してアプリケーション2へ送信する。撮像データの情報には、例えば、データ形式、解像度などの情報が含まれる。
【0060】
(映像拡張機能処理の動作)
次に
図8及び
図9を参照して、情報処理装置10における映像拡張機能処理の動作を説明する。
図8は、本実施形態に係る映像拡張機能処理の第1例を示すシーケンス図である。この図に示す映像拡張機能処理は、アプリケーション2の種類が
図6に示すアプリAに分類されるアプリケーションであって、アプリケーション2がリアルタイムに画像処理を行った処理後撮像データをアプリケーション1で使用する例である。ここでは、アプリケーション2は、30fpsのフレームレートの撮像データに対して画像処理を行うものを例として説明する。
【0061】
(ステップS101)カメラ16は、30fpsで撮像した撮像データのRawフレームを、ドライバ110を介して機能拡張部120へ送信する。機能拡張部120は、ドライバ110から撮像データのRawフレームを取得する。
【0062】
(ステップS102)機能拡張部120は、ドライバ110を介してカメラ16から取得する30fpsの撮像データのRawフレームを、取得する毎に共有メモリ130にコピーして書き込む。
【0063】
(ステップS103)アプリケーション2は、起動することに応じてフレームレートに関する要求情報を映像設定処理部140へ送信する。例えば、アプリケーション2は、必要とするフレームレートとして「30fps」を要求する要求情報を映像設定処理部140へ送信する。
【0064】
(ステップS104)映像設定処理部140は、アプリケーション2から取得した要求情報に基づいてフレームレートを「30fps」に設定し、設定した「30fps」のフレームレートで共有メモリ130から撮像データのRawフレームを読み出す。
【0065】
(ステップS105)映像設定処理部140は、「30fps」のフレームレートで共有メモリ130から撮像データのRawフレームを取得する。
【0066】
(ステップS106)映像設定処理部140は、共有メモリ130から撮像データのRawフレームを取得する毎にアプリケーション2へ送信する。
【0067】
(ステップS107)アプリケーション2は、映像設定処理部140から取得した撮像データのRawフレームに対して画像処理を行う。例えば、アプリケーション2は、映像設定処理部140から「30fps」で撮像データのRawフレームを取得する毎に画像処理を行い、処理後撮像データのフレームを生成する。
【0068】
(ステップS108)アプリケーション2は、生成した処理後撮像データのフレームを「30fps」のフレームレートで映像設定処理部140へ送信する。
【0069】
(ステップS109)映像設定処理部140は、アプリケーション2から送信された処理後撮像データのフレームを取得する毎に共有メモリ130へ書き込む。
【0070】
(ステップS110)機能拡張部120は、共有メモリ130から処理後撮像データのフレームを「30fps」のフレームレートで取得する。
【0071】
(ステップS111)機能拡張部120は、取得した処理後撮像データのフレームを「30fps」のフレームレートでアプリケーション1へ送信する。
【0072】
図9は、本実施形態に係る映像拡張機能処理の第2例を示すシーケンス図である。この図に示す映像拡張機能処理は、アプリケーション2の種類が
図6に示すアプリBまたはアプリCに分類されるアプリケーションであって、アプリケーション2による処理がアプリケーション1で使用される撮像データには影響しない例である。ここでは、アプリケーション2は、10fpsのフレームレートの撮像データを用いてジェスチャーなどの認識処理を行うものを例として説明する。
【0073】
(ステップS201)カメラ16は、30fpsで撮像した撮像データのRawフレームを、ドライバ110を介して機能拡張部120へ送信する。機能拡張部120は、ドライバ110から撮像データのRawフレームを取得する。
【0074】
(ステップS202)機能拡張部120は、ドライバ110を介してカメラ16から取得する30fpsの撮像データのRawフレームを、そのままアプリケーション1へ送信する。
【0075】
(ステップS203)機能拡張部120は、ドライバ110を介してカメラ16から取得する30fpsの撮像データのRawフレームを、取得する毎に共有メモリ130にコピーして書き込む。
【0076】
(ステップS204)アプリケーション2は、起動することに応じてフレームレートに関する要求情報を映像設定処理部140へ送信する。例えば、アプリケーション2は、必要とするフレームレートとして「10fps」を要求する要求情報を映像設定処理部140へ送信する。
【0077】
(ステップS205)映像設定処理部140は、アプリケーション2から取得した要求情報に基づいてフレームレートを「10fps」に設定し、設定した「10fps」のフレームレートで共有メモリ130から撮像データのRawフレームを読み出す。
【0078】
(ステップS206)映像設定処理部140は、「10fps」のフレームレートで共有メモリ130から撮像データのRawフレームを取得する。
【0079】
(ステップS207)映像設定処理部140は、共有メモリ130から撮像データのRawフレームを取得する毎にアプリケーション2へ送信する。
【0080】
(ステップS208)アプリケーション2は、映像設定処理部140から取得した撮像データのRawフレームを用いてジェスチャーなどの認識処理を行う。例えば、アプリケーション2は、映像設定処理部140から「30fps」で撮像データのRawフレームを取得する毎に認識処理を行い、認識結果を出力する。
【0081】
以上説明したように、本実施形態に係る情報処理装置10は、ドライバ110(映像取得部の一例)と、機能拡張部120(第1映像処理部の一例)と、映像設定処理部140(第2映像処理部の一例)を備えている。ドライバ110は、アプリケーション1(第1アプリケーション)の処理に応じてカメラ16(撮像部の一例)から撮像データを取得する。機能拡張部120は、ドライバ110が取得した撮像データを、アプリケーション1以外のアプリケーション2(第2アプリケーション)の処理により使用可能なように共有メモリ130へ記憶させる。映像設定処理部140は、アプリケーション2に応じたフレームレートで共有メモリ130から撮像データを取得してアプリケーション2へ送信する。即ち、映像設定処理部140は、アプリケーション2に応じた時間間隔で共有メモリ130から撮像データを取得してアプリケーション2へ送信する。
【0082】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、アプリケーション毎にフレームレートを最適化することにより処理負荷を低減させることができる。よって、本実施形態によれば、複数のアプリケーションがカメラ16を使用する際の処理を効率化することができる。
【0083】
例えば、映像設定処理部140は、アプリケーション2からフレームレート(上記時間間隔の一例)に関する要求情報を取得し、取得した要求情報に基づくフレームレートで共有メモリ130から撮像データを取得してアプリケーション2へ送信する。
【0084】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、アプリケーション毎にアプリケーションで必要なフレームレートに設定することができる。つまり、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、高フレームレートである必要が無いアプリケーションへ送信する撮像データのフレームレートを低下させることができるため、処理負荷を低減させることができる。
【0085】
なお、映像設定処理部140は、アプリケーション2からのフレームレートに関する要求情報を受け取るのではなく、アプリケーション2の識別情報などに基づいて、フレームレートを決めてもよい。例えば、複数のアプリケーション2のそれぞれの識別情報と、それぞれのフレームレート(上記時間間隔の一例)とが関連付けられた関連付けテーブルが予め設定されていてもよい。この場合、映像設定処理部140は、アプリケーション2から取得した識別情報と上記関連付けテーブルとに基づくフレームレートで共有メモリ130から撮像データを取得してアプリケーション2へ送信する。
【0086】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、アプリケーション毎にアプリケーションで必要なフレームレートに設定することができる。例えば、情報処理装置10は、フレームレートに関する要求情報の出力に対応していないアプリケーションであっても、上記の関連付けテーブルを設けることにより、アプリケーションで必要なフレームレートに設定することができる。つまり、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、高フレームレートである必要が無いアプリケーションへ送信する撮像データのフレームレートを低下させることができるため、処理負荷を低減させることができる。
【0087】
また、映像設定処理部140は、アプリケーション2へ送信した撮像データに対してアプリケーション2が処理を行った処理後撮像データをアプリケーション2から取得して共有メモリ130へ記憶させる。そして、機能拡張部120は、共有メモリ130から処理後撮像データを取得してアプリケーション1へ送信する。
【0088】
これにより、情報処理装置10は、アプリケーション1が使用するカメラ16の撮像データに対して、アプリケーション2(アプリケーション1以外のアプリケーション)の処理をリアルタイムに反映させることができる。
【0089】
本実施形態に係る情報処理装置10における制御方法は、ドライバ110が、アプリケーション1(第1アプリケーション)の処理に応じてカメラ16(撮像部の一例)から撮像データを取得するステップと、機能拡張部120が、ドライバ110が取得した撮像データを、アプリケーション1以外のアプリケーション2(第2アプリケーション)の処理により使用可能なように共有メモリ130へ記憶させるステップと、映像設定処理部140が、アプリケーション2に応じたフレームレートで共有メモリ130から撮像データを取得してアプリケーション2へ送信するステップと、を含む。即ち、映像設定処理部140は、アプリケーション2に応じた時間間隔で共有メモリ130から撮像データを取得してアプリケーション2へ送信する。
【0090】
これにより、情報処理装置10における制御方法は、複数のアプリケーションがカメラ16を使用する際に、アプリケーション毎にフレームレートを最適化することにより処理負荷を低減させることができる。よって、本実施形態によれば、複数のアプリケーションがカメラ16を使用する際の処理を効率化することができる。
【0091】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
第1の実施形態では、アプリケーション1とアプリケーション2の2つのアプリケーションがカメラ16の撮像データを同時に使用する例を説明したが、アプリケーション1と複数のアプリケーション2がカメラ16の撮像データを同時に使用することもできる。本実施形態では、アプリケーション2が複数である場合の態様を説明する。なお、情報処理装置10の基本的な構成は、
図1及び
図3に示す構成と同様である。
【0092】
図10は、本実施形態に係る映像拡張機能処理の構成の一例を示すブロック図である。この図において、
図7に示す各部に対応する構成には同一の符号を付している。この
図10に示す例は、3つのアプリケーション2が起動して、カメラ16の撮像データを同時に使用する場合の構成を示している。符号EX2が示す映像拡張機能処理の構成は、3つのアプリケーション2のそれぞれに対応して3つの映像設定処理部140を備えることにより、カメラ16の撮像データを同時に使用することができる。即ち、映像設定処理部140を増やした分だけ、アプリケーション2の数を増やすことができる。
【0093】
図示する例では、符号EX2が示す映像拡張機能処理の構成は、アプリケーション2-1に対して映像設定処理部140-1、アプリケーション2-2に対して映像設定処理部140-2、及びアプリケーション2-3に対して映像設定処理部140-3を備えている。アプリケーション2-1は、例えば
図6に示すアプリAに分類されるアプリケーションである。アプリケーション2-2は、例えば
図6に示すアプリBに分類されるアプリケーションである。アプリケーション2-3は、例えば
図6に示すアプリCに分類されるアプリケーションである。映像設定処理部140-1、140-2、及び140-3のそれぞれは、第1の実施形態で説明した映像設定処理部140と同様の処理を行う。これにより、アプリケーション1に加えて、アプリケーション2-1、2-2、及び2-3がカメラ16の撮像データを同時に使用することができる。
【0094】
以上説明したように、本実施形態に係る情報処理装置10は、複数のアプリケーション2(例えば2-1、2-2、及び2-3)のそれぞれに対応する複数の映像設定処理部140(例えば140-1、140-2、及び140-3)を備えている。複数の映像設定処理部140のそれぞれは、それぞれに対応するアプリケーション2に応じたフレームレートで共有メモリ130から撮像データを取得してそれぞれのアプリケーション2へ送信する。即ち、複数の映像設定処理部140のそれぞれは、それぞれに対応するアプリケーション2に応じた時間間隔で共有メモリ130から撮像データを取得してそれぞれのアプリケーション2へ送信する。
【0095】
これにより、情報処理装置10は、3以上の複数のアプリケーションがカメラ16を使用する際に、アプリケーション毎にフレームレートを最適化することができる。よって、本実施形態によれば、複数のアプリケーションがカメラ16を使用する際の処理を効率化することができる。
【0096】
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。
本実施形態では、システムの状況に応じてさらにフレームレートを変更する構成例を説明する。システムの状況とは、例えばプロセッサの使用率である。第1及び第2の実施形態で説明したように、複数のアプリケーションがカメラ16を同時に使用する際にアプリケーションに応じてフレームレートを設定することにより処理を効率化したとしても、プロセッサの使用率が所定の閾値以上になる懸念がある。その場合、情報処理装置10は、アプリケーション2のフレームレートをさらに低下させる。なお、情報処理装置10の基本的な構成は、
図1及び
図3に示す構成と同様である。
【0097】
図11は、本実施形態に係る映像拡張機能処理の構成の一例を示すブロック図である。この図において、
図7に示す各部に対応する構成には同一の符号を付している。
図11に示す例では、符号EX2が示す映像拡張機能処理の構成が、システム監視部150を備える点が
図7に示す構成と異なる。
【0098】
システム監視部150は、システムの状況に関するシステム情報を取得する。例えば、システム監視部150は、システムの状況に関するシステム情報として、プロセッサの使用率に関する情報をCPU101から取得する。プロセッサの使用率とは、例えば、CPU使用率、GPU使用率、またはVPU(Visual Processing Unit)使用率等である。
【0099】
映像設定処理部140は、システム監視部150からシステム情報を取得し、取得したシステム情報に含まれるプロセッサの使用率に基づいて、共有メモリ130から撮像データを取得する際のフレームレートをさらに変更してアプリケーション2へ送信する。なお、
図11に示す例は、アプリケーション2が1つの場合の構成を示しているが、
図10に示す構成にシステム監視部150を加えることにより、アプリケーション2が複数の場合も同様に適用できる。その場合、複数の映像設定処理部140のそれぞれが、システム監視部150が取得するシステム情報に基づいて、それぞれのアプリケーション2へ送信する撮像データのフレームレートをさらに変更する。ここでは、プロセッサの使用率の一例としてCPU使用率によってフレームレート変更する処理を説明する。
【0100】
図12は、CPU使用率の閾値とフレームレートの低下率との対応付けの一例を示す図である。図示する例は、CPU使用率が80%以上になった場合にはフレームレートを20%低下(-20%)させ、CPU使用率が90%以上になった場合にはフレームレートを50%低下(-50%)させることを示している。なお、この図に示すCPU使用率の閾値及びフレームレートの低下率は一例であって、これに限られるものではない。
【0101】
図13は、本実施形態に係るCPU使用率によるフレームレート変更処理の一例を示すフローチャートである。
(ステップS301)映像設定処理部140は、システム監視部150からシステム情報を取得する。
【0102】
(ステップS302)映像設定処理部140は、ステップS301で取得したシステム情報に含まれるCPU使用率が所定の閾値以上であるか否かを判定する。映像設定処理部140は、CPU使用率が所定の閾値以上であると判定した場合(YES)、ステップS303の処理に進む。一方、映像設定処理部140は、CPU使用率が所定の閾値未満であると判定した場合(NO)、ステップS303の処理を行わない。
【0103】
(ステップS303)映像設定処理部140は、アプリケーション2へ送信する撮像データのフレームレートを下げる。例えば、映像設定処理部140は、ステップS302でCPU使用率が80%以上であると判定した場合、フレームレートを20%低下させる。また例えば、映像設定処理部140は、ステップS302でCPU使用率が90%以上であると判定した場合、フレームレートを50%低下させる。
【0104】
具体的には、一例として、アプリケーション2へ送信する撮像データのフレームレートが30fpsであったとする。その場合、映像設定処理部140は、CPU使用率が80%以上になると30fpsを24fpsに変更し、CPU使用率が90%以上になると30fpsを15fpsに変更する。
【0105】
また一例として、アプリケーション2が複数の場合には、それぞれの映像設定処理部140は、それぞれのアプリケーション2へ送信する撮像データのフレームレートをCPU使用率に基づいて一律に変更する。例えば、
図10に示す構成にシステム監視部150を加えた構成を例に説明する。アプリケーション2-1のフレームレートが30fps、アプリケーション2-2のフレームレートが10fps、及びアプリケーション2-3のフレームレートが1fpsであったとする。その場合、映像設定処理部140-1は、アプリケーション2-1のフレームレートを、CPU使用率が80%以上になると24fpsに変更し、CPU使用率が90%以上になると15fpsに変更する。映像設定処理部140-2は、アプリケーション2-2のフレームレートを、CPU使用率が80%以上になると8fpsに変更し、CPU使用率が90%以上になると5fpsに変更する。映像設定処理部140-3は、アプリケーション2-3のフレームレートを、CPU使用率が80%以上になると0.8fpsに変更し、CPU使用率が90%以上になると0.5fpsに変更する。
【0106】
以上説明したように、本実施形態に係る情報処理装置10は、システムの状況に関するシステム情報を取得するシステム監視部150(システム情報取得部の一例)をさらに備えている。映像設定処理部140は、システム監視部150が取得するシステム情報に基づいて、共有メモリ130から撮像データを取得する際のフレームレートをさらに変更する。即ち、映像設定処理部140は、システム監視部150が取得するシステム情報に基づいて、共有メモリ130から撮像データを取得する際の時間間隔をさらに変更する。
【0107】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、システムの状況によってはさらに処理負荷を低減させることができる。よって、本実施形態によれば、複数のアプリケーションがカメラ16を使用する際の処理を効率化することができる。
【0108】
例えば、システム情報は、プロセッサの使用率に関する情報である。映像設定処理部140は、システム監視部150が取得するシステム情報に基づいてプロセッサの使用率(例えば、CPU使用率)が所定の閾値以上であると判定した場合、共有メモリ130から撮像データを取得する際のフレームレートを、アプリケーション2に応じたフレームレートよりも低下させる。即ち、映像設定処理部140は、システム監視部150が取得するシステム情報に基づいてプロセッサの使用率(例えば、CPU使用率)が所定の閾値以上であると判定した場合、共有メモリ130から撮像データを取得する際の時間間隔を、アプリケーション2に応じた時間間隔よりも長くする。
【0109】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、プロセッサの使用率が高くなった場合、さらに処理負荷を低減させプロセッサの使用率を低減させることができる。
【0110】
<第4の実施形態>
次に、本発明の第4の実施形態について説明する。
本実施形態は、第3の実施形態と同様にシステムの状況に応じてさらにフレームレートを変更する構成であるが、システムの状況がバッテリ22の残容量である。バッテリ22の残容量が減ってくると、給電状態を維持するために消費電力を低減させることが必要となり、それにはフレームレートを低下させることが有効である。そこで、情報処理装置10は、バッテリ22の残容量が所定の閾値以下に低下した場合、アプリケーション2のフレームレートをさらに低下させる。なお、本実施形態に係る映像拡張機能処理の構成は、
図11に示す構成と同様である。
【0111】
システム監視部150は、システムの状況に関するシステム情報として、バッテリ22の残容量に関する情報をEC20から取得する。映像設定処理部140は、システム監視部150からシステム情報を取得し、取得したシステム情報に含まれるバッテリ22の残容量に基づいて、共有メモリ130から撮像データを取得する際のフレームレートをさらに変更してアプリケーション2へ送信する。
【0112】
図14は、バッテリ22の残容量の閾値とフレームレートの低下率との対応付けの一例を示す図である。図示する例は、バッテリ22の残容量が20%以下になった場合にはフレームレートを20%低下(-20%)させ、バッテリ22の残容量が10%以下になった場合にはフレームレートを50%低下(-50%)させることを示している。なお、この図に示すバッテリ22の残容量の閾値及びフレームレートの低下率は一例であって、これに限られるものではない。
【0113】
図15は、本実施形態に係るバッテリ残容量によるフレームレート変更処理の一例を示すフローチャートである。
(ステップS401)映像設定処理部140は、システム監視部150からシステム情報を取得する。
【0114】
(ステップS402)映像設定処理部140は、ステップS401で取得したシステム情報に含まれるバッテリ22の残容量が所定の閾値以下であるか否かを判定する。映像設定処理部140は、バッテリ22の残容量が所定の閾値以下であると判定した場合(YES)、ステップS403の処理に進む。一方、映像設定処理部140は、バッテリ22の残容量が所定の閾値以上であると判定した場合(NO)、ステップS403の処理を行わない。
【0115】
(ステップS403)映像設定処理部140は、アプリケーション2へ送信する撮像データのフレームレートを下げる。例えば、映像設定処理部140は、ステップS402でバッテリ22の残容量が20%以下であると判定した場合、フレームレートを20%低下させる。また例えば、映像設定処理部140は、ステップS302でバッテリ22の残容量が10%以下であると判定した場合、フレームレートを50%低下させる。
【0116】
具体的には、一例として、アプリケーション2へ送信する撮像データのフレームレートが30fpsであったとする。その場合、映像設定処理部140は、バッテリ22の残容量が20%以下になると30fpsを24fpsに変更し、バッテリ22の残容量が10%以下になると30fpsを15fpsに変更する。なお、アプリケーション2が複数の場合には、
図10に示す構成にシステム監視部150を加えた構成とすることで、複数のアプリケーション2のそれぞれに対応する映像設定処理部140は、それぞれのアプリケーション2へ送信する撮像データのフレームレートをCPU使用率に基づいて一律に変更する。
【0117】
以上説明したように、本実施形態に係るシステム情報は、情報処理装置10へ給電するバッテリ22(二次電池の一例)の残容量に関する情報である。映像設定処理部140は、システム監視部150が取得するシステム情報に基づいてバッテリ22の残容量が所定の閾値より低下したと判定した場合、共有メモリ130から撮像データを取得する際のフレームレートを、アプリケーション2に応じたフレームレートよりも低下させる。即ち、映像設定処理部140は、システム監視部150が取得するシステム情報に基づいてバッテリ22の残容量が所定の閾値より低下したと判定した場合、共有メモリ130から撮像データを取得する際の時間間隔を、アプリケーション2に応じた時間間隔よりも長くする。
【0118】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、バッテリ22の残容量が少なくなった場合、さらに処理負荷を低減させ消費電力を低減させることができる。
【0119】
<第5の実施形態>
次に、本発明の第5の実施形態について説明する。
本実施形態は、第3及び第4の実施形態と同様にシステムの状況に応じてさらにフレームレートを変更する構成であるが、システムの状況が通信ネットワークの品質である。例えば、ビデオ会議を行うアプリケーションで通信ネットワークを介して他の参加者と映像を見ながら会議をしている場合、通信ネットワークの品質が低下してくると、フレームのコマ落ちが発生する。そのため、映像のフレームレートを高くして他の参加者の端末装置へ送信しても、送信先では、結果的にフレームレートが低下してしまう。そこで、情報処理装置10は、通信ネットワークの品質が所定の閾値以下に低下した場合、アプリケーション2のフレームレートをさらに低下させる。通信ネットワークの品質は、通信速度、帯域幅、ジッタ、パケット紛失率、遅延などの任意の指標を用いることができる。例えば、通信ネットワークの品質は、QoS(Quality of Service)等の通信品質の計測や評価指標に基づくものであってもよい。なお、本実施形態に係る映像拡張機能処理の構成は、
図11に示す構成と同様である。
【0120】
図16は、本実施形態に係る通信ネットワークの品質によるフレームレート変更処理の一例を示すフローチャートである。
(ステップS501)映像設定処理部140は、システム監視部150からシステム情報を取得する。
【0121】
(ステップS502)映像設定処理部140は、ステップS501で取得したシステム情報に含まれる通信ネットワークの品質が所定の閾値以下であるか否かを判定する。映像設定処理部140は、通信ネットワークの品質が所定の閾値以下であると判定した場合(YES)、ステップS503の処理に進む。一方、映像設定処理部140は、通信ネットワークの品質が所定の閾値以上であると判定した場合(NO)、ステップS503の処理を行わない。
【0122】
(ステップS503)映像設定処理部140は、アプリケーション2へ送信する撮像データのフレームレートを下げる。
【0123】
具体的には、一例として、アプリケーション2へ送信する撮像データのフレームレートが30fpsであったとする。しかしながら、通信ネットワークの品質が低下したことにより30fpsで送信できない場合、映像設定処理部140は、30fpsを15fpsに変更する。映像設定処理部140は、通信ネットワークの品質の低下に応じて、アプリケーション2へ送信する撮像データのフレームレートを通信でき得るフレームレート最大値まで低下させてもよい。
【0124】
なお、アプリケーション2が複数の場合には、
図10に示す構成にシステム監視部150を加えた構成とすることで、複数のアプリケーション2のそれぞれに対応する映像設定処理部140は、それぞれのアプリケーション2へ送信する撮像データのフレームレートをCPU使用率に基づいて一律に変更する。
【0125】
以上説明したように、本実施形態に係るシステム情報は、通信ネットワークの品質に関する情報である。映像設定処理部140は、システム監視部150が取得するシステム情報に基づいて通信ネットワークの品質が所定の閾値以下に低下したと判定した場合、共有メモリ130から撮像データを取得する際のフレームレートを、アプリケーション2に応じたフレームレートよりも低下させる。即ち、映像設定処理部140は、システム監視部150が取得するシステム情報に基づいて通信ネットワークの品質が所定の閾値以下に低下したと判定した場合、共有メモリ130から撮像データを取得する際の時間間隔を、アプリケーション2に応じた時間間隔よりも長くする。
【0126】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、通信ネットワークの品質が低下した場合にはフレームレートを低下させることにより、さらに処理負荷を低減させることができる。
【0127】
<第6の実施形態>
次に、本発明の第6の実施形態について説明する。
本実施形態では、ユーザが存在するか否かに応じてさらにフレームレートを変更する構成例を説明する。ユーザが存在しないとは、情報処理装置10を使用している人物が存在していない状態である。例えば、ユーザが存在しないとは、情報処理装置10を使用していたユーザが一時的に離席した状態等である。この状態では、高フレームレートである必要性が低下するため、情報処理装置10は、アプリケーション2のフレームレートをさらに低下させる。なお、情報処理装置10の基本的な構成は、
図1及び
図3に示す構成と同様である。
【0128】
図17は、本実施形態に係る映像拡張機能処理の構成の一例を示すブロック図である。この図において、
図7に示す各部に対応する構成には同一の符号を付している。
図17に示す例では、符号EX2が示す映像拡張機能処理の構成が、人物検出部160を備える点が
図7に示す構成と異なる。
【0129】
人物検出部160は、表示部15またはカメラ16に対面する側に人物が存在するか否かを検出する。例えば、赤外線などを利用して物体を検出する不図示の検出センサを第1筐体11の内面に設けられた構成としてもよい。そして、人物検出部160は、当該検出センサを用いて表示部15またはカメラ16に対面する側に人物が存在するか否かを検出してもよい。なお、人物検出部160は、人物の存在や離脱を検出するアプリケーション2を用いて、カメラ16の撮像データに基づいて表示部15またはカメラ16に対面する側に人物が存在するか否かを検出してもよい。
【0130】
映像設定処理部140は、人物検出部160により表示部15またはカメラ16に対面する側に人物の存在を検出できない場合、共有メモリ130から撮像データを取得する際のフレームレートを、アプリケーション2に応じたフレームレート低下させる。
【0131】
図18は、ユーザの存在とフレームレートの低下率との対応付けの一例を示す図である。図示する例は、ユーザが存在する場合にはフレームレートを変更せず、ユーザが存在しない場合にはフレームレートを50%低下(-50%)させることを示している。なお、この図に示すフレームレートの低下率は一例であって、これに限られるものではない。
【0132】
図19は、本実施形態に係るユーザの存在の有無によるフレームレート変更処理の一例を示すフローチャートである。
(ステップS601)映像設定処理部140は、人物検出部160から人物が存在するか否かの検出結果を取得する。
【0133】
(ステップS602)映像設定処理部140は、ステップS601で取得した検出結果が、人物が存在することを示す検出結果であるか否かを判定する。映像設定処理部140は、人物が存在しないことを示す検出結果であると判定した場合(NO)、ステップS603の処理に進む。一方、映像設定処理部140は、人物が存在することを示す検出結果であると判定した場合(YES)、ステップS603の処理を行わない。
【0134】
(ステップS603)映像設定処理部140は、アプリケーション2へ送信する撮像データのフレームレートを下げる。例えば、映像設定処理部140は、アプリケーション2へ送信する撮像データのフレームレートを50%低下させる。
【0135】
具体的には、一例として、アプリケーション2へ送信する撮像データのフレームレートが30fpsであったとする。しかしながら、映像設定処理部140は、表示部15またはカメラ16に対面する側に人物の存在を検出できない場合、例えば、30fpsを15fpsに変更する。
【0136】
なお、アプリケーション2が複数の場合には、
図10に示す構成にシステム監視部150を加えた構成とすることで、複数のアプリケーション2のそれぞれに対応する映像設定処理部140は、それぞれのアプリケーション2へ送信する撮像データのフレームレートをユーザの存在の有無に基づいて一律に変更する。
【0137】
以上説明したように、本実施形態に係る情報処理装置10は、撮像データに基づく映像を表示する表示部15と、表示部15またはカメラ16に対面する側に存在する人物を検出する人物検出部160と、をさらに備えている。映像設定処理部140は、人物検出部160が表示部15またはカメラ16に対面する側に人物の存在を検出できない場合、共有メモリ130から撮像データを取得する際のフレームレートを、アプリケーション2に応じたフレームレートよりも低下させる。即ち、映像設定処理部140は、人物検出部160が表示部15またはカメラ16に対面する側に人物の存在を検出できない場合、共有メモリ130から撮像データを取得する際の時間間隔を、アプリケーション2に応じた時間間隔よりも長くする。
【0138】
これにより、情報処理装置10は、複数のアプリケーションがカメラ16を使用する際に、ユーザが対面する側に存在しない場合にはフレームレートを低下させることにより、さらに処理負荷を低減させることができる。
【0139】
以上、図面を参照してこの発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。例えば、上記の各実施形態で説明した構成は、任意に組み合わせてもよい。
【0140】
なお、上記実施形態では、カメラ16で撮像された撮像データが動画であって、その動画のフレームレートを変更する構成例を説明したが、撮像データは、所定の時間間隔で撮像された静止画であって、その時間間隔を変更する構成としてもよい。
【0141】
また、上述した情報処理装置10は、内部にコンピュータシステムを有している。そして、上述した情報処理装置10のそれぞれが備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理装置10のそれぞれが備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。
【0142】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に情報処理装置10が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0143】
また、上述した実施形態における情報処理装置10が備える各機能の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0144】
また、上述した実施形態では、情報処理装置10がノートPCである例を説明したが、デスクトップ型やタブレット型のPCであってもよいし、カメラを有するテレビ会議システム、コミュニケーションデバイス、ロボット、スマートフォンやゲーム機などであってもよい。また、カメラ16は、情報処理装置10に内蔵されたものに限らず、USB(Universal Serial Bus)等で接続される外部機器であってもよい。
【符号の説明】
【0145】
10 情報処理装置、11 第1筐体、12 第2筐体、13 ヒンジ機構、15 表示部、16 カメラ、17 通信部、18 記憶部、19 入力部、20 EC、21 電源部、22 バッテリ、100 システム処理部、101 CPU、102 GPU、103 メモリコントローラ、104 I/Oコントローラ、105システムメモリ、110 ドライバ、120 機能拡張部、130 共有メモリ、140 映像設定処理部、141 映像取得部、142 映像設定部、143 情報設定部、144 情報取得部、150 システム監視部、160 人物検出部