(57)【要約】【課題】情報処理装置の使いやすさを向上させる。【解決手段】情報処理装置１０は、メモリとプロセッサとを有する。メモリは、指紋読取センサ１１０に対応付けて、省電力状態からの復帰を指示する復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納する。プロセッサは、指紋認証アプリケーション２４２および指紋読取ドライバ２３２を実行する。指紋読取ドライバ２３２は、復帰指示に応じて指紋認証アプリケーション２４２から指紋読取センサ１１０の起動が指示された場合、指紋読取センサ１１０が初期化済であることを示す初期化情報がメモリに格納されているか否かを判定する。指紋読取ドライバ２３２は、指紋読取センサ１１０が初期化済であることを示す初期化情報がメモリに格納されている場合、指紋読取センサ１１０の初期化をスキップし指紋読取センサ１１０の起動完了を指紋認証アプリケーション２４２に通知する。【選択図】図１
2019008380.tif 000002
【特許請求の範囲】
【請求項１】
デバイスに対応付けて、省電力状態からの復帰を指示する復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納する第１の格納部と、
前記復帰指示に応じてアプリケーションからデバイスの起動が指示された場合、前記デバイスが初期化済であることを示す前記初期化情報が前記第１の格納部に格納されているか否かを判定し、前記デバイスが初期化済であることを示す前記初期化情報が前記第１の格納部に格納されていない場合、前記デバイスの初期化を行い前記デバイスの起動完了を前記アプリケーションに通知し、前記デバイスが初期化済であることを示す前記初期化情報が前記第１の格納部に格納されている場合、前記デバイスの初期化をスキップし前記デバイスの起動完了を前記アプリケーションに通知するプロセッサと
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の格納部には、
前記デバイスに対応付けて、前記復帰指示が発生した場合にデバイスの初期化を行うか否かを示す制御情報がさらに格納され、
前記プロセッサは、
ユーザからの入力に応じて、前記第１の格納部に前記制御情報を格納し、
前記復帰指示が発生した場合に前記第１の格納部を参照し、前記プロセッサが制御するデバイスに、前記復帰指示が発生した場合に前記デバイスの初期化を行うことを示す前記制御情報が対応付けられている場合、前記デバイスの初期化を行い、初期化済であることを示す前記初期化情報を前記デバイスに対応付けて前記第１の格納部に格納することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
スイッチを有し、
前記プロセッサは、
省電力状態において前記スイッチが操作された場合に、前記復帰指示の発生を検出し、
前記復帰指示が発生した場合に起動し、起動後に前記第１の格納部を参照し、前記プロセッサが制御するデバイスに、前記復帰指示が発生した場合に前記デバイスの初期化を行うことを示す前記制御情報が対応付けられているか否かを判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記プロセッサは、複数のドライバを実行し、
前記情報処理装置は、複数の前記ドライバのそれぞれに起動を指示する順番を格納する第２の格納部を有し、
前記プロセッサは、ユーザからの入力に応じて、前記第２の格納部に格納されている前記順番を変更し、前記復帰指示の発生を検出した場合に、前記第２の格納部に格納された前記順番に従って、それぞれの前記ドライバに起動を指示することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記スイッチは、押しボタンスイッチであり、
前記デバイスは、前記押しボタンスイッチの表面に設けられた指紋読取センサであることを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
カメラを有し
前記スイッチは、前記カメラを起動させるためのスイッチであることを特徴とする請求項３から５のいずれか一項に記載の情報処理装置。
【請求項７】
情報処理装置が、
省電力状態からの復帰を指示する復帰指示に応じてアプリケーションからデバイスの起動が指示された場合、デバイスに対応付けて、前記復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納する格納部を参照して、前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記格納部に格納されているか否かを判定し、
前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記格納部に格納されていない場合、前記デバイスの初期化を行い前記デバイスの起動完了を前記アプリケーションに通知し、前記デバイスが初期化済であることを示す前記初期化情報が前記格納部に格納されている場合、前記デバイスの初期化をスキップし前記デバイスの起動完了を前記アプリケーションに通知する
処理を実行することを特徴とするデバイス起動制御方法。
【請求項８】
情報処理装置に、
省電力状態からの復帰を指示する復帰指示に応じてアプリケーションからデバイスの起動が指示された場合、デバイスに対応付けて、前記復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納する格納部を参照して、前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記格納部に格納されているか否かを判定し、
前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記格納部に格納されていない場合、前記デバイスの初期化を行い前記デバイスの起動完了を前記アプリケーションに通知し、前記デバイスが初期化済であることを示す前記初期化情報が前記格納部に格納されている場合、前記デバイスの初期化をスキップし前記デバイスの起動完了を前記アプリケーションに通知する
処理を実行させることを特徴とするデバイス起動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、デバイス起動制御方法およびデバイス起動制御プログラムに関する。
【背景技術】
【０００２】
スマートフォン等の情報処理装置は、消費電力を抑えるために、操作等が所定期間行われなかった場合に省電力状態に移行する。そして、省電力状態にある情報処理装置は、電源キー等のハードウェアキーが押下される等により、省電力状態から省電力状態に移行する前の状態に復帰する。また、セキュリティの観点から、省電力状態からの復帰の処理（以下、復帰処理と記載する）の開始前にパスワードや指紋等によりユーザ認証が行われ、ユーザ認証に成功すると、復帰処理が開始される場合もある。
【０００３】
しかし、ユーザ認証に成功してから復帰処理が開始されると、ユーザは、復帰処理が完了するまで情報処理装置の使用開始を待たされることになる。そこで、ユーザ認証を行っている間に、予め設定されたパスワードで復帰処理の一部を実行し、認証に成功した場合に、残りの処理を実行することにより、ユーザの待ち時間を削減する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、情報処理装置の復帰処理では、最初に全てのドライバの起動および初期化が行われる。例えば、カメラの起動ボタンや指紋読取センサ等が操作された場合、全てのドライバの起動および初期化が終了した後に、アプリケーションが、カメラや指紋読取センサなどのデバイスの起動をドライバに指示する。ドライバは、アプリケーションからデバイスの起動を指示された場合、デバイスの起動および初期化を行い、デバイスを使用可能な状態に移行させる。
【０００６】
このように、従来は、復帰処理の際に全てのドライバの起動および初期化が終了した後にデバイスの初期化が行われるため、復帰処理の開始からデバイスの初期化が完了するまでには１秒程度かかることがある。そのため、ユーザは、デバイスの初期化が終了する前にデバイスを用いた操作を行ってしまう場合がある。初期化の前に行われた操作は無駄になってしまうため、ユーザは、デバイスの初期化が完了した後に再び同じ操作を行うことになり、情報処理装置の使いやすさが低下する。
【０００７】
開示の技術は、かかる点に鑑みてなされたものであって、情報処理装置の使いやすさを向上させることができる情報処理装置、デバイス起動制御方法およびデバイス起動制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願が開示する情報処理装置は、１つの態様において、格納部と、プロセッサとを有する。格納部は、デバイスに対応付けて、省電力状態からの復帰を指示する復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納する。プロセッサは、復帰指示に応じてアプリケーションからデバイスの起動が指示された場合、デバイスが初期化済であることを示す初期化情報が格納部に格納されているか否かを判定する。デバイスが初期化済であることを示す初期化情報が格納部に格納されていない場合、プロセッサは、デバイスの初期化を行いデバイスの起動完了をアプリケーションに通知する。一方、デバイスが初期化済であることを示す初期化情報が格納部に格納されている場合、プロセッサは、デバイスの初期化をスキップしデバイスの起動完了をアプリケーションに通知する。
【発明の効果】
【０００９】
本願が開示する情報処理装置、デバイス起動制御方法およびデバイス起動制御プログラムの１つの態様によれば、情報処理装置の使いやすさを向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１における情報処理装置の一例を示すブロック図である。
【図２】図２は、フラグテーブルの一例を示す図である。
【図３】図３は、設定画面の一例を示す図である。
【図４】図４は、フラグテーブルの一例を示す図である。
【図５】図５は、比較例における情報処理装置の動作の一例を示すシーケンス図である。
【図６】図６は、実施例１における情報処理装置の動作の一例を示すシーケンス図である。
【図７】図７は、実施例１における情報処理装置の動作の一例を示すシーケンス図である。
【図８】図８は、実施例２における情報処理装置の一例を示すブロック図である。
【図９】図９は、順番テーブルの一例を示す図である。
【図１０】図１０は、設定画面の一例を示す図である。
【図１１】図１１は、実施例２における情報処理装置の動作の一例を示すシーケンス図である。
【図１２】図１２は、実施例３における情報処理装置の一例を示すブロック図である。
【図１３】図１３は、実施例３における情報処理装置の動作の一例を示すシーケンス図である。
【図１４】図１４は、実施例３における情報処理装置の動作の一例を示すシーケンス図である。
【図１５】図１５は、情報処理装置の本体のハードウェアの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本願が開示する情報処理装置、デバイス起動制御方法およびデバイス起動制御プログラムの実施形態について、実施例毎に図面を参照して詳細に説明する。なお、以下の各実施例により開示の技術が限定されるものではない。また、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
［情報処理装置１０］
図１は、実施例１における情報処理装置１０の一例を示すブロック図である。本実施例における情報処理装置１０は、ボタン１１、入力装置１２、表示装置１３、および本体２０を有する。ボタン１１は、表面に指紋読取センサ１１０が設けられた押しボタンスイッチである。指紋読取センサ１１０は、デバイスの一例である。また、本実施例における指紋読取センサ１１０は、表面に指が押し当てられることにより、指紋を読み取るエリア型の指紋センサである。入力装置１２は、ハードウェアキーまたはタッチパネル等である。表示装置１３は、例えばＬＣＤ（Liquid  Crystal  Display）や有機ＥＬ（Electro  Luminescence）ディスプレイ等である。本実施例において、情報処理装置１０は、例えばスマートフォンである。なお、情報処理装置１０は、例えば、携帯電話機、タブレット型ＰＣ（Personal  Computer）、またはノート型ＰＣ等であってもよい。また、情報処理装置１０がタブレット型ＰＣまたはノート型ＰＣ等である場合、情報処理装置１０には、必ずしも通信機能が設けられていなくてもよい。
【００１３】
本体２０は、プロセッサ、メモリ、および入出力インターフェイス（Ｉ／Ｆ）等を有するコンピュータにより実現される。本体２０は、例えば図１に示すように、カーネルＯＳ（Operating  System）２１、アプリケーションＯＳ２２、ドライバ群２３、アプリケーション群２４、および格納部２５を有する。カーネルＯＳ２１、アプリケーションＯＳ２２、ドライバ群２３、およびアプリケーション群２４の各機能は、例えば、プロセッサがメモリから読み出されたプログラムを実行することにより実現される。格納部２５内のデータは、例えば本体２０内のＲＡＭ（Random  Access  Memory）等のメモリ内に格納される。ドライバ群２３には、検出ドライバ２３０、カメラドライバ２３１、および指紋読取ドライバ２３２等が含まれる。アプリケーション群２４には、カメラアプリケーション２４０、データ管理アプリケーション２４１、および指紋認証アプリケーション２４２等が含まれる。なお、以下では、ドライバ群２３に含まれる複数のドライバのそれぞれを区別することなく総称する場合に単にドライバと記載する。また、以下では、アプリケーション群２４に含まれる複数のアプリケーションのそれぞれを区別することなく総称する場合に単にアプリケーションと記載する。
【００１４】
格納部２５には、例えば図２に示すようなフラグテーブル２５０が格納される。図２は、フラグテーブル２５０の一例を示す図である。フラグテーブル２５０には、情報処理装置１０が有するそれぞれのデバイスを識別するデバイスＩＤに対応付けて、制御フラグおよび初期化フラグが格納される。制御フラグは、復帰処理時に、ドライバの起動に引き続いてデバイスの初期化が行われるか否かを識別するためのフラグである。初期化フラグは、デバイスが初期化済であるか否かを識別するためのフラグである。格納部２５は、第１の格納部の一例である。また、制御フラグおよび初期化フラグは、それぞれ、制御情報および初期化情報の一例である。
【００１５】
制御フラグに「１」が設定されているデバイスは、復帰処理におけるドライバの起動時に、ドライバによって初期化される。そのため、制御フラグに「１」が設定されているデバイスは、アプリケーションからデバイスの起動が指示される前に、デバイスの初期化が開始される。一方、制御フラグに「０」が設定されているデバイスは、復帰処理におけるドライバの起動時にはドライバによって初期化されない。そのため、制御フラグに「０」が設定されているデバイスは、アプリケーションからデバイスの起動を指示された後に、デバイスの初期化が開始される。また、復帰処理におけるドライバの起動時にデバイスの初期化が完了した場合、当該デバイスに対応する初期化フラグには、初期化済であることを示す「１」が設定される。
【００１６】
図２の例では、指紋読取センサ１１０のデバイスＩＤである「Ｄ００２」に対応付けられている制御フラグには、指紋読取センサ１１０を制御する指紋読取ドライバ２３２の起動時に指紋読取センサ１１０の初期化が行われることを示す「１」が設定されている。また、「Ｄ００２」に対応付けられている初期化フラグには、指紋読取センサ１１０が初期化済でないことを示す「０」が設定されている。
【００１７】
フラグテーブル２５０内の制御フラグの値は、例えば図３に示す設定画面を用いて、情報処理装置１０のユーザ等により設定可能である。図３は、設定画面５０の一例を示す図である。図３に示した設定画面５０は、例えばデータ管理アプリケーション２４１によって作成されて表示装置１３に表示される。また、データ管理アプリケーション２４１は、入力装置１２を介して入力された操作に応じて、デバイス毎の制御フラグの値を、本体２０内のｅＭＭＣ（embedded  Multi  Media  Card）等の不揮発性メモリに保存する。データ管理アプリケーション２４１は、入力部の一例である。
【００１８】
具体的には、図３に例示された設定画面５０において、ユーザが入力装置１２を介してプルダウンボタン５００を押下すると、データ管理アプリケーション２４１は、プルダウンメニューに、デバイス名の一覧を表示する。ユーザは、表示されたデバイス名の一覧の中から、入力装置１２を介して１つのデバイスの名称を選択する。次に、ユーザは、入力装置１２を介して、ラジオボタン５０１またはラジオボタン５０２のいずれかを選択する。ラジオボタン５０１が選択されると、データ管理アプリケーション２４１は、選択された名称のデバイスに対応付けられた制御フラグに「１」を設定する。一方、ラジオボタン５０２が選択されると、データ管理アプリケーション２４１は、選択された名称のデバイスに対応付けられた制御フラグに「０」を設定する。
【００１９】
そして、ユーザが、入力装置１２を介して設定ボタン５０３を押下すると、データ管理アプリケーション２４１は、ラジオボタン５０１または５０２で選択された項目に対応する制御フラグの値を、デバイスＩＤに対応付けて不揮発性メモリに保存する。一方、ユーザが、入力装置１２を介してキャンセルボタン５０４を押下すると、データ管理アプリケーション２４１は、ラジオボタン５０１または５０２で選択された項目に対応する制御フラグの値の設定をキャンセルする。
【００２０】
図１に戻って説明を続ける。カーネルＯＳ２１は、情報処理装置１０の操作が所定期間以上行われなかった等の所定の条件が満たされた場合に、情報処理装置１０を、低消費電力の状態である省電力状態に移行させる。また、カーネルＯＳ２１は、情報処理装置１０が省電力状態にある場合に、省電力状態からの復帰指示（以下、復帰指示と記載する）を検出すると、ドライバ群２３内のそれぞれのドライバに、所定の順番で起動指示を送信する。カーネルＯＳ２１は、指示部の一例である。復帰指示とは、省電力状態から省電力状態に移行する前の状態への復帰を指示する信号である。カーネルＯＳ２１は、起動指示が送信された全てのドライバから起動完了が通知された場合、アプリケーションＯＳ２２に画面表示を要求する。
【００２１】
本実施例において、カーネルＯＳ２１は、例えばボタン１１が押下されたことを示す信号を復帰指示として検出する。なお、情報処理装置１０がノートパソコンである場合、カーネルＯＳ２１は、リッドが閉じられた状態から開かれた状態に変化したことを示す信号を復帰指示として検出してもよい。また、情報処理装置１０が折りたたみ式の携帯電話である場合、カーネルＯＳ２１は、情報処理装置１０が折りたたまれた状態から開かれた状態に変化したことを示す信号を復帰指示として検出してもよい。
【００２２】
ドライバ群２３に含まれるそれぞれのドライバは、カーネルＯＳ２１から起動指示を受信した場合に起動し、ドライバの初期化を行う。そして、それぞれのドライバは、初期化が終了した場合に、ドライバの起動完了をカーネルＯＳ２１に通知する。そして、それぞれのドライバは、格納部２５内のフラグテーブル２５０を参照し、ドライバが制御するデバイスに対応する制御フラグに「１」が設定されているか否かを判定する。制御フラグに「１」が設定されているデバイスは、当該デバイスを制御するドライバの初期化後に、当該ドライバによって起動および初期化される。デバイスの初期化が実行されることにより、デバイスが使用可能な状態となる。そして、デバイスの初期化が完了した場合、ドライバは、フラグテーブル２５０において、初期化が完了したデバイスに対応する初期化フラグの値を、初期化済であることを示す値である「１」に書き換える。
【００２３】
例えば、デバイスＩＤが「Ｄ００３」のデバイスについて初期化が完了していない場合、例えば図２のフラグテーブル２５０に示したように、デバイスＩＤが「Ｄ００３」に対応付けられている初期化フラグには「０」が格納されている。そして、例えば、デバイスＩＤが「Ｄ００３」のデバイスについて初期化が完了した場合、例えば図４のフラグテーブル２５０に示すように、デバイスＩＤが「Ｄ００３」に対応付けられている初期化フラグが「０」から「１」に書き換えられる。
【００２４】
また、それぞれのドライバは、アプリケーション群２４内のアプリケーションからデバイスの起動を指示された場合、フラグテーブル２５０を参照し、当該デバイスに対応する初期化フラグに「１」が設定されているか否かを判定する。初期化フラグに「１」が設定されている場合、当該初期化フラグに対応するデバイスは初期化済であり、デバイスは起動している。そのため、ドライバは、デバイスの初期化をスキップし、デバイスの起動完了をアプリケーションに通知する。そして、ドライバは、デバイスの初期化の処理をスキップし、使用可能となっているデバイスを用いて、アプリケーションから指示された処理を実行する。
【００２５】
一方、初期化フラグに「０」が設定されている場合、当該初期化フラグに対応するデバイスの初期化は完了しておらず、デバイスは起動もしていない。そのため、ドライバは、デバイスの初期化を実行する。そして、デバイスの初期化が完了した後に、ドライバは、初期化により使用可能となったデバイスを用いて、アプリケーションから指示された処理を実行する。本実施例において、カーネルＯＳ２１およびドライバ群２３内の各ドライバは、カーネル層における処理を実行する。
【００２６】
例えば、ドライバ群２３に含まれる指紋読取ドライバ２３２は、カーネルＯＳ２１から起動指示を受信した場合に起動し、指紋読取ドライバ２３２の初期化を行う。そして、指紋読取ドライバ２３２は、初期化が終了した場合に、起動完了をカーネルＯＳ２１に通知する。そして、指紋読取ドライバ２３２は、格納部２５内のフラグテーブル２５０を参照し、指紋読取ドライバ２３２が制御するデバイスである指紋読取センサ１１０に対応する制御フラグに「１」が設定されているか否かを判定する。
【００２７】
制御フラグに「１」が設定されている場合、指紋読取ドライバ２３２は、指紋読取ドライバ２３２の初期化に引き続き、指紋読取センサ１１０の起動および初期化を実行する。指紋読取センサ１１０の起動および初期化では、指紋読取センサ１１０に電源が投入され、指紋読取センサ１１０内のデータの消去等が行われる。指紋読取センサ１１０の起動および初期化が完了した場合、指紋読取ドライバ２３２は、フラグテーブル２５０において、指紋読取センサ１１０に対応する初期化フラグの値を、デバイスが初期化済であることを示す値である「１」に書き換える。また、初期化が完了した場合、指紋読取センサ１１０は、指紋データの読み取りを開始する。指紋読取ドライバ２３２は、指紋読取センサ１１０によって読み取られた指紋データの取得を開始する。
【００２８】
また、指紋読取ドライバ２３２は、指紋認証アプリケーション２４２から指紋読取センサ１１０の起動を指示された場合、フラグテーブル２５０を参照して、指紋読取センサ１１０に対応する初期化フラグの値が「１」であるか否かを判定する。初期化フラグの値が「１」である場合、指紋読取センサ１１０は初期化済である。そのため、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化をスキップし、指紋読取センサ１１０の起動完了を指紋認証アプリケーション２４２に通知する。即ち、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化の処理をスキップし、指紋読取センサ１１０によって読み取られた指紋データと共に起動完了を指紋認証アプリケーション２４２に通知する。なお、初期化フラグの値が「０」である場合、指紋読取センサ１１０の初期化が完了していないため、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化を実行する。そして、指紋読取センサ１１０の初期化が完了した後に、指紋読取ドライバ２３２は、指紋読取センサ１１０によって読み取られた指紋データと共に起動完了を指紋認証アプリケーション２４２に通知する。
【００２９】
アプリケーションＯＳ２２は、情報処理装置１０が省電力状態へ移行した場合、各デバイスの制御フラグの値を、例えばｅＭＭＣ等の不揮発性メモリから読み出す。そして、アプリケーションＯＳ２２は、デバイス毎に、不揮発性メモリから読み出された制御フラグの値を、格納部２５内のフラグテーブル２５０の制御フラグに設定する。また、アプリケーションＯＳ２２は、デバイス毎に、フラグテーブル２５０の初期化フラグの値を０にリセットする。
【００３０】
また、アプリケーションＯＳ２２は、復帰処理において、カーネルＯＳ２１から画面表示が要求された場合、表示装置１３を制御して画面表示を有効にする。そして、アプリケーションＯＳ２２は、予め設定された復帰処理時の状態遷移に従って、各アプリケーションに処理の実行を指示する。本実施例において、アプリケーションＯＳ２２は、復帰処理において指紋認証アプリケーション２４２に認証処理の実行を指示する。
【００３１】
アプリケーション群２４内のそれぞれのアプリケーションはアプリケーションＯＳ２２から指示された処理を実行する。アプリケーションＯＳ２２およびアプリケーション群２４に含まれる各アプリケーションは、例えばユーザ層の処理を実行する。例えば、指紋認証アプリケーション２４２は、復帰処理時にアプリケーションＯＳ２２から認証処理を要求された場合、指紋読取ドライバ２３２に指紋読取センサ１１０の起動指示を送信する。そして、指紋読取ドライバ２３２から指紋データと共に指紋読取センサ１１０の起動完了を受信した場合、指紋認証アプリケーション２４２は、例えばｅＭＭＣ等の不揮発性メモリに予め登録されている指紋データを取得する。そして、指紋認証アプリケーション２４２は、指紋読取ドライバ２３２から取得された指紋データと、不揮発性メモリから読み出された指紋データとを比較することにより、ユーザ認証を実行する。ユーザ認証に成功した場合、指紋認証アプリケーション２４２は、情報処理装置１０のロックを解除する。一方、ユーザ認証に失敗した場合、指紋認証アプリケーション２４２は、認証失敗を表示装置１３に表示する。
【００３２】
［比較例における情報処理装置１０’の動作］
ここで、比較例における情報処理装置１０’の動作について説明する。図５は、比較例における情報処理装置１０’の動作の一例を示すシーケンス図である。図５では、情報処理装置１０’の処理は、ソフトウェアの処理とハードウェアの処理とに分けて示されており、ソフトウェアの処理は、ユーザ層の処理とカーネル層の処理とに分けて示されている。また、図５では、ドライバ群２３に含まれるドライバの処理の一例として、検出ドライバ２３０および指紋読取ドライバ２３２の処理が示されている。また、図５では、アプリケーション群２４に含まれるアプリケーションの処理の一例として、指紋認証アプリケーション２４２の処理が示されている。
【００３３】
まず、カーネルＯＳ２１およびアプリケーションＯＳ２２は、情報処理装置１０’の操作が所定期間以上行われなかった等の所定の条件が満たされた場合に、情報処理装置１０’を省電力状態に移行させる（Ｓ３００）。
【００３４】
次に、省電力状態の情報処理装置１０’において、例えばボタン１１が押下される（Ｓ３０１）。カーネルＯＳ２１は、ボタン１１が押下されたことを検出すると（Ｓ３０２）、ドライバ群２３内のそれぞれのドライバに、起動指示を送信する（Ｓ３０３、Ｓ３０４）。なお、検出ドライバ２３０は、情報処理装置１０に設けられた複数のハードウェアボタンのいずれが押下されたのかを検出するドライバである。
【００３５】
次に、検出ドライバ２３０は、起動指示を受信した場合に起動し、検出ドライバ２３０の初期化を行う（Ｓ３０５）。指紋読取ドライバ２３２も同様に、起動指示を受信した場合に起動し、指紋読取ドライバ２３２の初期化を行う（Ｓ３０６）。そして、初期化が終了した場合、検出ドライバ２３０および指紋読取ドライバ２３２は、起動完了をカーネルＯＳ２１に通知する（Ｓ３０７、Ｓ３０８）。
【００３６】
起動指示が送信された全てのドライバから起動完了が通知された場合、カーネルＯＳ２１は、ドライバの起動完了を検出する（Ｓ３０９）。そして、カーネルＯＳ２１は、アプリケーションＯＳ２２に画面表示を要求する（Ｓ３１０）。
【００３７】
カーネルＯＳ２１から画面表示が要求された場合、アプリケーションＯＳ２２は、表示装置１３を制御して画面表示を有効にする（Ｓ３１１）。そして、アプリケーションＯＳ２２は、予め設定された復帰処理時の状態遷移に従って、指紋認証アプリケーション２４２に認証処理の実行を要求する認証要求を送信する（Ｓ３１２）。指紋認証アプリケーション２４２は、アプリケーションＯＳ２２から認証要求を受信した場合、指紋読取ドライバ２３２に指紋読取センサ１１０の起動指示を送信する（Ｓ３１３）。
【００３８】
指紋認証アプリケーション２４２から指紋読取センサ１１０の起動指示を受信した場合、指紋読取ドライバ２３２は、指紋読取センサ１１０へ初期化指示を送信する（Ｓ３１４）。
【００３９】
指紋読取ドライバ２３２から初期化指示を受信した指紋読取センサ１１０は、起動し内部のデータの消去等の初期化を行う（Ｓ３１５）。そして、指紋読取センサ１１０は、指紋データの読み取りを開始する（Ｓ３１６）。そして、指紋読取センサ１１０は、読み取られた指紋データを指紋読取ドライバ２３２へ出力する（Ｓ３１７）。
【００４０】
指紋読取センサ１１０から指紋データが出力された場合、指紋読取ドライバ２３２は、出力された指紋データと共に、起動完了を指紋認証アプリケーション２４２へ出力する（Ｓ３１８）。
【００４１】
次に、指紋認証アプリケーション２４２は、指紋読取ドライバ２３２から起動完了と共に受信した指紋データと、予め登録された指紋データとを比較することにより、ユーザ認証を実行する（Ｓ３１９）。ユーザ認証に成功した場合、指紋認証アプリケーション２４２は、情報処理装置１０のロックを解除する（Ｓ３２０）。
【００４２】
上記したように、カーネルＯＳ２１は、省電力状態において、ボタン１１が押下されたことを検出した場合に、各ドライバに起動指示を送信する。そして、カーネルＯＳ２１は、全てのドライバから起動完了が通知された場合に、アプリケーションＯＳ２２に画面表示を要求する。アプリケーションＯＳ２２は、予め定められた復帰処理時の状態遷移に従って、指紋認証アプリケーション２４２に認証要求を送信し、指紋認証アプリケーション２４２は、指紋読取ドライバ２３２に起動指示を送信する。
【００４３】
ここで、ドライバ群２３に含まれている複数のドライバの中には、初期化の処理に時間がかかるドライバも存在する。また、カーネルＯＳ２１は、省電力状態においてボタン１１が押下されたことを検出した場合、ファイルシステムの準備やＯＳのスケジュールリングの調整等、カーネルＯＳ２１自体の設定も行う。そのため、カーネルＯＳ２１が、ボタン１１が押下されたことを検出してから、起動指示が送信された全てのドライバから起動完了が送信されたことを検出するまでには、数百ミリ秒程度かかる場合がある。また、指紋読取センサ１１０の初期化には百ミリ秒程度かかる。従って、ボタン１１が押下されたことをカーネルＯＳ２１が検出してから、指紋読取センサ１１０の初期化が完了し、指紋読取センサ１１０によって指紋の読み取りが可能になるまでの時間（図５に示す時間Ｔ）は、数百ミリ秒から１秒程度に達する場合がある。
【００４４】
［実施例１における情報処理装置１０の動作］
図６および図７は、実施例１における情報処理装置１０の動作の一例を示すシーケンス図である。図６および図７においても、情報処理装置１０の処理は、ソフトウェアの処理とハードウェアの処理とに分けて示されており、ソフトウェアの処理は、ユーザ層の処理とカーネル層の処理とに分けて示されている。また、図６および図７においても、ドライバ群２３に含まれるドライバの処理の一例として、検出ドライバ２３０および指紋読取ドライバ２３２の処理が示されている。また、図６および図７においても、アプリケーション群２４に含まれるアプリケーションの処理の一例として、指紋認証アプリケーション２４２の処理が示されている。
【００４５】
まず、カーネルＯＳ２１およびアプリケーションＯＳ２２は、情報処理装置１０の操作が所定期間以上行われなかった等の所定の条件が満たされた場合に、情報処理装置１０を省電力状態に移行させる（Ｓ１００）。そして、アプリケーションＯＳ２２は、各デバイスの制御フラグの値を、ｅＭＭＣから読み出し、デバイス毎に、ｅＭＭＣから読み出された制御フラグの値を、格納部２５内のフラグテーブル２５０の制御フラグに設定する（Ｓ１０１）。また、アプリケーションＯＳ２２は、デバイス毎に、フラグテーブル２５０内の初期化フラグの値を０にリセットする。
【００４６】
次に、省電力状態の情報処理装置１０において、例えばボタン１１が押下される（Ｓ１０２）。カーネルＯＳ２１は、ボタン１１が押下されたことを検出すると（Ｓ１０３）、ドライバ群２３内のそれぞれのドライバに、起動指示を送信する（Ｓ１０４、Ｓ１０５）。
【００４７】
次に、検出ドライバ２３０は、起動指示を受信した場合に起動し、検出ドライバ２３０の初期化を行う（Ｓ１０６）。指紋読取ドライバ２３２も同様に、起動指示を受信した場合に起動し、指紋読取ドライバ２３２の初期化を行う（Ｓ１０７）。そして、初期化が終了した場合、検出ドライバ２３０および指紋読取ドライバ２３２は、起動完了をカーネルＯＳ２１に通知する（Ｓ１０８、Ｓ１０９）。
【００４８】
次に、検出ドライバ２３０は、格納部２５内のフラグテーブル２５０を参照する（Ｓ１１０）。そして、検出ドライバ２３０は、検出ドライバ２３０が制御するデバイスに対応する制御フラグに「１」が設定されているか否かを判定する。図６および図７に示したシーケンス図では、検出ドライバ２３０が制御するデバイスに対応する制御フラグには「０」が設定されていると仮定する。そのため、検出ドライバ２３０は、デバイスの初期化を行わず、起動した状態で待機する。
【００４９】
また、指紋読取ドライバ２３２は、格納部２５内のフラグテーブル２５０を参照する（Ｓ１１１）。そして、指紋読取ドライバ２３２は、指紋読取ドライバ２３２が制御するデバイス（本実施例では指紋読取センサ１１０）に対応する制御フラグに「１」が設定されているか否かを判定する。図６および図７に示したシーケンス図では、指紋読取センサ１１０に対応する制御フラグには「１」が設定されていると仮定する。そのため、指紋読取ドライバ２３２は、指紋読取センサ１１０へ初期化指示を送信する（Ｓ１１２）。
【００５０】
指紋読取ドライバ２３２から初期化指示を受信した指紋読取センサ１１０は、起動し内部のデータの消去等の初期化を行う（Ｓ１１３）。そして、指紋読取センサ１１０は、指紋データの読み取りを開始する（Ｓ１１４）。そして、指紋読取センサ１１０は、読み取られた指紋データを指紋読取ドライバ２３２へ出力する（Ｓ１１５）。そして、指紋読取センサ１１０から指紋データが出力された場合、指紋読取ドライバ２３２は、フラグテーブル２５０において、指紋読取ドライバ２３２に対応する初期化フラグの値を、初期化済であることを示す値である「１」に更新する（Ｓ１１６）。また、指紋読取ドライバ２３２は、指紋読取センサ１１０によって読み取られた指紋データを保持する（Ｓ１１７）。
【００５１】
また、起動指示が送信された全てのドライバから起動完了が通知された場合、カーネルＯＳ２１は、ドライバの起動完了を検出する（Ｓ１１８）。そして、カーネルＯＳ２１は、アプリケーションＯＳ２２に画面表示を要求する（Ｓ１１９）。
【００５２】
カーネルＯＳ２１から画面表示が要求された場合、アプリケーションＯＳ２２は、表示装置１３を制御して画面表示を有効にする（Ｓ１２０）。そして、アプリケーションＯＳ２２は、予め設定された復帰処理時の状態遷移に従って、指紋認証アプリケーション２４２に認証処理の実行を要求する認証要求を送信する（図７のＳ１２１）。指紋認証アプリケーション２４２は、アプリケーションＯＳ２２から認証要求を受信した場合、指紋読取ドライバ２３２に指紋読取センサ１１０の起動指示を送信する（Ｓ１２２）。
【００５３】
指紋認証アプリケーション２４２から指紋読取センサ１１０の起動指示を受信した場合、指紋読取ドライバ２３２は、格納部２５内のフラグテーブル２５０を参照する（Ｓ１２３）。そして、指紋読取ドライバ２３２は、指紋読取センサ１１０に対応する初期化フラグに「１」が設定されているか否かを判定する。指紋読取センサ１１０に対応する初期化フラグの値は、ステップＳ１１６において「１」に更新されている。そのため、指紋読取ドライバ２３２は、指紋読取センサ１１０の起動および初期化の処理をスキップし、指紋読取センサ１１０によって読み取られた指紋データと共に起動完了を指紋認証アプリケーション２４２に通知する（Ｓ１２４）。
【００５４】
次に、指紋認証アプリケーション２４２は、指紋読取ドライバ２３２から起動完了と共に受信した指紋データと、予め登録された指紋データとを比較することにより、ユーザ認証を実行する（Ｓ１２５）。ユーザ認証に成功した場合、指紋認証アプリケーション２４２は、情報処理装置１０のロックを解除する（Ｓ１２６）。
【００５５】
ここで、例えば図６を用いて説明した比較例のように、指紋読取ドライバ２３２の起動時に、指紋読取センサ１１０の初期化が行われなかった場合、指紋読取ドライバ２３２は、指紋認証アプリケーション２４２から起動指示を受信した後に、指紋読取センサ１１０の初期化を開始することになる。そのため、ボタン１１が押下されてから、指紋読取センサ１１０が使用可能な状態となるまでには、数百ミリ秒から１秒程度かかることになる。そのため、ユーザは、ボタン１１を押下した後に、指紋読取センサ１１０が使用可能な状態となるまで、指紋の読み取りの操作を待たされることになる。これにより、情報処理装置１０の使いやすさが低下する。
【００５６】
これに対し、本実施例の情報処理装置１０では、指紋読取ドライバ２３２が初期化された後に、引き続き、指紋読取センサ１１０の初期化が行われる。これにより、起動指示が送信された全てのドライバから起動完了が送信されたことをカーネルＯＳ２１が検出する前に、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化を開始することができる。また、指紋読取センサ１１０の初期化が終了すれば、指紋の読み取りが可能となる。
【００５７】
しかし、指紋読取センサ１１０が早期に初期化されたとしても、指紋認証アプリケーション２４２からの起動指示により指紋読取センサ１１０が再び初期化されると、それまでに読み取られた指紋データが消去されてしまう。そこで、本実施例の指紋読取ドライバ２３２は、指紋読取センサ１１０を初期化した場合、指紋読取センサ１１０が初期化済であることを示す初期化フラグを、格納部２５内のフラグテーブル２５０に格納する。そして、指紋読取ドライバ２３２は、指紋認証アプリケーション２４２から指紋読取センサ１１０の起動指示を受信した場合、フラグテーブル２５０を参照する。そして、フラグテーブル２５０に指紋読取センサ１１０が初期化済であることを示す初期化フラグが格納されていれば、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化をスキップする。これにより、本実施例の情報処理装置１０は、指紋読取センサ１１０の再度の初期化を防止することができる。
【００５８】
例えば、指紋読取ドライバ２３２の初期化に十ミリ秒程度かかると仮定すると、本実施例の情報処理装置１０では、ボタン１１が押下されてから百ミリ秒程度で指紋読取センサ１１０が使用可能な状態となる。これにより、復帰処理時の指紋認証において、ユーザの認証に成功する確率を向上させることができる。特に、復帰処理を開始させるためにボタン１１を押し込んだユーザの指が指紋読取センサ１１０から離れるまでの間に、指紋読取センサ１１０は、ユーザの指から指紋の情報を読み取ることも可能となる。これにより、情報処理装置１０の使いやすさを向上させることができる。
【００５９】
［実施例１の効果］
以上、実施例１について説明した。上記したように、本実施例の情報処理装置１０は、プロセッサおよびメモリを有する。メモリは、フラグテーブル２５０を格納する格納部２５を有する。プロセッサは、指紋認証アプリケーション２４２および指紋読取ドライバ２３２を実行する。フラグテーブル２５０は、それぞれのデバイスに対応付けて、復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化フラグを格納する。指紋読取ドライバ２３２は、復帰指示に応じて指紋認証アプリケーション２４２からデバイスの一例である指紋読取センサ１１０の起動が指示された場合、フラグテーブル２５０を参照する。そして、指紋読取ドライバ２３２は、フラグテーブル２５０に、指紋読取センサ１１０が初期化済であることを示す初期化フラグが格納されているか否かを判定する。指紋読取センサ１１０が初期化済であることを示す初期化フラグがフラグテーブル２５０に格納されていない場合、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化を行い指紋読取センサ１１０の起動完了を指紋認証アプリケーション２４２に通知する。一方、指紋読取センサ１１０が初期化済であることを示す初期化情報がフラグテーブル２５０に格納されている場合、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化をスキップし起動完了を指紋認証アプリケーション２４２に通知する。これにより、復帰処理時に指紋読取センサ１１０を迅速に使用可能な状態にすることができ、情報処理装置１０の使いやすさを向上させることができる。
【００６０】
また、本実施例においてフラグテーブル２５０には、それぞれのデバイスに対応付けて、復帰指示が発生した場合にデバイスの初期化を行うか否かを示す制御フラグがさらに格納される。また、情報処理装置１０は、ユーザからの入力に応じて、フラグテーブル２５０に制御フラグを格納させるデータ管理アプリケーション２４１をさらに有する。また、指紋読取ドライバ２３２は、復帰指示が発生した場合にフラグテーブル２５０を参照し、指紋読取センサ１１０に、復帰指示が発生した場合にデバイスの初期化を行うことを示す制御フラグが対応付けられているか否かを判定する。指紋読取センサ１１０に、復帰指示が発生した場合にデバイスの初期化を行うことを示す制御フラグが対応付けられている場合、指紋読取ドライバ２３２は、指紋読取センサ１１０の初期化を行う。そして、指紋読取ドライバ２３２は、初期化済であることを示す初期化フラグを指紋読取センサ１１０に対応付けてフラグテーブル２５０に格納する。これにより、復帰処理時に初期化されるデバイスを、ユーザの意図に沿って任意に指定することができる。これにより、情報処理装置１０の使いやすさをさらに向上させることができる。
【００６１】
また、本実施例において情報処理装置１０は、ボタン１１と、カーネルＯＳ２１とを有する。カーネルＯＳ２１は、省電力状態においてボタン１１が操作された場合に、復帰指示の発生を検出し、指紋読取ドライバ２３２に起動を指示する。指紋読取ドライバ２３２は、カーネルＯＳ２１から起動を指示された場合に起動する。そして、指紋読取ドライバ２３２は、起動後にフラグテーブル２５０を参照し、指紋読取センサ１１０に、復帰指示が発生した場合に指紋読取センサ１１０の初期化を行うことを示す制御フラグが対応付けられているか否かを判定する。これにより、ユーザは、省電力状態にある情報処理装置１０に、容易に復帰処理を開始させることができる。
【００６２】
また、本実施例において、ボタン１１は、押しボタンスイッチであり、指紋読取ドライバ２３２が使用するデバイスは、ボタン１１の表面に設けられた指紋読取センサ１１０である。これにより、ユーザは、ボタン１１の押下による情報処理装置１０の復帰処理の開始と、指紋読取センサ１１０による指紋情報の読み取りとを１回の操作で行うことができ、情報処理装置１０の使いやすさをさらに向上させることができる。
【実施例２】
【００６３】
上記した実施例１において、カーネルＯＳ２１は、復帰処理時に、ドライバ群２３内のそれぞれのドライバに、所定の順番で起動指示を送信する。これに対し、本実施例２では、復帰処理時にカーネルＯＳ２１が起動指示を送信するドライバの順番がユーザによって任意に変更可能である。これにより、ユーザは、復帰処理時により早く使用を開始したいと考えるデバイスを制御するドライバに優先して起動指示を送信させることができ、情報処理装置１０の使いやすさをさらに向上させることができる。
【００６４】
［情報処理装置１０］
図８は、実施例２における情報処理装置１０の一例を示すブロック図である。なお、以下に説明する点を除き、図８において、図１と同じ符号を付したブロックは、図１におけるブロックと同一または同様の機能を有するため説明を省略する。
【００６５】
本実施例において、格納部２５には、例えば図９に示すような順番テーブル２５１が格納される。図９は、順番テーブル２５１の一例を示す図である。順番テーブル２５１には、順番を示す数字に対応付けて、起動指示が送信されるドライバのドライバＩＤが格納される。順番テーブル２５１は、本体２０内のｅＭＭＣ等の不揮発性メモリに格納され、情報処理装置１０が省電力状態に移行する際に本体２０内のＲＡＭにロードされる。格納部２５は、第１の格納部および第２の格納部の一例である。
【００６６】
カーネルＯＳ２１は、情報処理装置１０が省電力状態にある場合に、復帰指示を検出すると、格納部２５内の順番テーブル２５１を参照する。そして、順番テーブル２５１に格納された順番に従って、それぞれのドライバに起動指示を順次送信する。これにより、他のドライバより先に起動指示を受信したドライバは、ドライバの初期化を早期に開始することができ、デバイスのフラグテーブル２５０の制御フラグに「１」が設定されている場合には、デバイスの初期化を早期に開始することができる。これにより、ユーザが希望するデバイスを早期に使用可能な状態にすることができる。
【００６７】
順番テーブル２５１内の順番を示す数字は、例えば図１０に示す設定画面を用いて、情報処理装置１０のユーザ等により設定可能である。図１０は、設定画面５１の一例を示す図である。図１０に示した設定画面５１は、例えばデータ管理アプリケーション２４１によって作成されて表示装置１３に表示される。また、データ管理アプリケーション２４１は、入力装置１２を介して入力された操作に応じて、起動指示が送信されるドライバの順番を変更する。データ管理アプリケーション２４１は、変更部の一例である。
【００６８】
具体的には、図１０に例示された設定画面５１において、ユーザが入力装置１２を介してスライダ５１０を操作すると、データ管理アプリケーション２４１は、ドライバのドライバ名を、起動指示が送信される順番と共に設定画面５１に表示する。そして、ユーザは、入力装置１２を介して各ドライバ名に対応付けられた順番の数字５１１を変更する。そして、ユーザが入力装置１２を介して設定ボタン５１２を押下すると、データ管理アプリケーション２４１は、各ドライバのドライバ名に対応付けられた数字で、情報処理装置１０のｅＭＭＣ内に格納された順番テーブル２５１内の数字を更新する。一方、ユーザが入力装置１２を介してキャンセルボタン５１３を押下すると、データ管理アプリケーション２４１は、順番テーブル２５１の更新をキャンセルする。
【００６９】
［情報処理装置１０の動作］
図１１は、実施例２における情報処理装置１０の動作の一例を示すシーケンス図である。なお、以下に説明する点を除き、図１１において、図６と同じ符号を付した処理は、図６において説明した処理と同様であるため説明を省略する。
【００７０】
ステップＳ１０１において、各デバイスの制御フラグがフラグテーブル２５０内に設定された後、アプリケーションＯＳ２２は、ｅＭＭＣからＲＡＭに順番テーブル２５１をロードする（Ｓ１３０）。
【００７１】
次に、省電力状態の情報処理装置１０において、例えばボタン１１が押下される（Ｓ１０２）。カーネルＯＳ２１は、ボタン１１が押下されたことを検出すると（Ｓ１０３）、ステップＳ１３０でＲＡＭにロードされた順番テーブル２５１を参照する（Ｓ１３１）。そして、カーネルＯＳ２１は、順番テーブル２５１に格納された順番に従って、各ドライバに起動指示を順次送信する（Ｓ１０４、Ｓ１０５）。そして、図６および図７に示したステップＳ１０６以降の処理と同様の処理が実行される。
【００７２】
［実施例２の効果］
以上、実施例２について説明した。上記したように、本実施例の情報処理装置１０は、複数のドライバと、順番テーブル２５１と、データ管理アプリケーション２４１とを有する。順番テーブル２５１は、複数のドライバのそれぞれに起動を指示する順番を格納する。データ管理アプリケーション２４１は、ユーザからの入力に応じて、順番テーブル２５１に格納されている順番を変更する。カーネルＯＳ２１は、省電力状態において復帰指示の発生を検出した場合に、順番テーブル２５１に格納されている順番に従って、複数のドライバのそれぞれに起動を指示する。これにより、ユーザは、復帰処理時により早く使用を開始したいと考えるデバイスを使用するドライバに優先して起動指示を送信させることができる。そのため、情報処理装置１０は、ユーザが希望するデバイスを早期に使用可能な状態にすることができ、情報処理装置１０の使いやすさをさらに向上させることができる。
【実施例３】
【００７３】
上記した実施例１および２では、復帰処理におけるドライバの起動時に初期化されるデバイスとして、指紋読取センサ１１０を一例に説明したが、開示の技術はこれに限られない。実施例３では、復帰処理におけるドライバの起動時に初期化されるデバイスとして、カメラを一例に説明する。
【００７４】
［情報処理装置１０］
図１２は、実施例３における情報処理装置１０の一例を示すブロック図である。本実施例における情報処理装置１０は、入力装置１２、表示装置１３、ボタン１４、カメラ１５、および本体２０を有する。カメラ１５は、デバイスの一例である。なお、以下に説明する点を除き、図１２において、図１と同じ符号を付したブロックは、図１におけるブロックと同一または同様の機能を有するため説明を省略する。ボタン１４は、カメラ１５を起動させるためのスイッチである。なお、ボタン１４は、実施例１におけるボタン１１と同様に、表面に指紋読取センサ１１０が設けられた押しボタンスイッチであってもよい。
【００７５】
本体２０は、例えば図１２に示すように、カーネルＯＳ２１、アプリケーションＯＳ２２、ドライバ群２３、アプリケーション群２４、および格納部２５を有する。格納部２５には、例えば図２に示したフラグテーブル２５０が格納される。本実施例のフラグテーブル２５０において、カメラ１５に対応する制御フラグには、カメラ１５を制御するカメラドライバ２３１の起動時にカメラ１５の初期化が行われることを示す「１」が設定されている。
【００７６】
［情報処理装置１０の動作］
図１３および図１４は、実施例３における情報処理装置１０の動作の一例を示すシーケンス図である。図１３および図１４では、情報処理装置１０の処理は、ソフトウェアの処理とハードウェアの処理とに分けて示されており、ソフトウェアの処理は、ユーザ層の処理とカーネル層の処理とに分けて示されている。また、図１３および図１４では、ドライバ群２３に含まれるドライバの処理の一例として、検出ドライバ２３０およびカメラドライバ２３１の処理が示されている。また、図１３および図１４では、アプリケーション群２４に含まれるアプリケーションの処理の一例として、カメラアプリケーション２４０の処理が示されている。
【００７７】
まず、カーネルＯＳ２１およびアプリケーションＯＳ２２は、情報処理装置１０の操作が所定期間以上行われなかった等の所定の条件が満たされた場合に、情報処理装置１０を省電力状態に移行させる（Ｓ２００）。そして、アプリケーションＯＳ２２は、各デバイスの制御フラグの値を、ｅＭＭＣから読み出し、デバイス毎に、ｅＭＭＣから読み出された制御フラグの値を、格納部２５内のフラグテーブル２５０の制御フラグに設定する（Ｓ２０１）。また、アプリケーションＯＳ２２は、デバイス毎に、格納部２５内のフラグテーブル２５０の初期化フラグの値を０にリセットする。
【００７８】
次に、省電力状態の情報処理装置１０において、例えばボタン１４が操作される（Ｓ２０２）。カーネルＯＳ２１は、ボタン１４が操作されたことを検出すると（Ｓ２０３）、ドライバ群２３内のそれぞれのドライバに、起動指示を送信する（Ｓ２０４、Ｓ２０５）。
【００７９】
次に、検出ドライバ２３０は、起動指示を受信した場合に起動し、検出ドライバ２３０の初期化を行う（Ｓ２０６）。カメラドライバ２３１も同様に、起動指示を受信した場合に起動し、カメラドライバ２３１の初期化を行う（Ｓ２０７）。そして、初期化が終了した場合、検出ドライバ２３０およびカメラドライバ２３１は、起動完了をカーネルＯＳ２１に通知する（Ｓ２０８、Ｓ２０９）。
【００８０】
次に、検出ドライバ２３０は、格納部２５内のフラグテーブル２５０を参照する（Ｓ２１０）。そして、検出ドライバ２３０は、検出ドライバ２３０が制御するデバイスに対応する制御フラグに「１」が設定されているか否かを判定する。図１３および図１４に示したシーケンス図では、検出ドライバ２３０が制御するデバイスに対応する制御フラグには「０」が設定されていると仮定する。そのため、検出ドライバ２３０は、デバイスの初期化を行わず、起動した状態で待機する。
【００８１】
また、カメラドライバ２３１は、格納部２５内のフラグテーブル２５０を参照する（Ｓ２１１）。そして、カメラドライバ２３１は、カメラドライバ２３１が制御するカメラ１５に対応する制御フラグに「１」が設定されているか否かを判定する。図１３および図１４に示したシーケンス図では、カメラ１５に対応する制御フラグには「１」が設定されていると仮定する。そのため、カメラドライバ２３１は、カメラ１５へ初期化指示を送信する（Ｓ２１２）。
【００８２】
カメラドライバ２３１から初期化指示を受信したカメラ１５は、起動し内部の各素子の初期化を行う（Ｓ２１３）。ステップＳ２１３では、画像の取り込みが可能な状態（例えばファインダーオープンの状態）となる前までの初期化が行われ、画像の取り込みはまだ開始されない。そして、カメラ１５は、起動完了をカメラドライバ２３１に通知する（Ｓ２１４）。カメラドライバ２３１は、カメラ１５から起動完了が通知された場合、フラグテーブル２５０において、カメラ１５に対応する初期化フラグの値を、カメラ１５が初期化済であることを示す値である「１」に更新する（Ｓ２１５）。
【００８３】
また、起動指示が送信された全てのドライバから起動完了が通知された場合、カーネルＯＳ２１は、ドライバの起動完了を検出する（Ｓ２１６）。そして、カーネルＯＳ２１は、アプリケーションＯＳ２２に画面表示を要求する（Ｓ２１７）。
【００８４】
カーネルＯＳ２１から画面表示が要求された場合、アプリケーションＯＳ２２は、表示装置１３を制御して画面表示を有効にする（Ｓ２１８）。そして、アプリケーションＯＳ２２は、省電力状態においてボタン１４が操作された場合の状態遷移に従って、カメラ１５によって取り込まれた画像を要求する画像要求をカメラアプリケーション２４０へ送信する（図１４のＳ２１９）。ステップＳ２１９において送信される画像要求には、カメラ１５によって取り込まれる画像のサイズ等の情報が含まれている。カメラアプリケーション２４０は、アプリケーションＯＳ２２から画像要求を受信した場合、カメラドライバ２３１にカメラ１５の起動指示を送信する（Ｓ２２０）。ステップＳ２２０において送信される起動指示には、カメラ１５によって取り込まれる画像のサイズ等の情報が含まれている。
【００８５】
カメラアプリケーション２４０からカメラ１５の起動指示を受信した場合、カメラドライバ２３１は、格納部２５内のフラグテーブル２５０を参照する（Ｓ２２１）。そして、カメラドライバ２３１は、カメラ１５に対応する初期化フラグに「１」が設定されているか否かを判定する。カメラ１５に対応する初期化フラグの値は、ステップＳ２１５において「１」に更新されている。そのため、カメラ１５では、画像の取り込みが可能な状態となるまでの初期化の処理は完了している。そこで、カメラドライバ２３１は、カメラ１５の初期化をスキップし、カメラ１５の起動完了をカメラアプリケーション２４０に通知する。
【００８６】
具体的には、カメラドライバ２３１は、カメラ１５への初期化指示の送信をスキップし、カメラアプリケーション２４０から受信した起動指示に含まれている画像のサイズ等の情報を含む画像設定をカメラ１５へ送信する（Ｓ２２２）。画像設定を受信したカメラ１５は、画像設定に従って取り込まれる画像のサイズ等を設定する。これにより、カメラ１５は、画像の取り込みが可能な状態となる。そして、カメラ１５は、設定されたサイズの画像の取り込みを開始する（Ｓ２２３）。そして、カメラ１５は、取り込まれた画像のデータをカメラドライバ２３１へ出力する（Ｓ２２４）。
【００８７】
カメラドライバ２３１は、起動完了と共に、カメラ１５から出力された画像のデータをカメラアプリケーション２４０へ出力する（Ｓ２２５）。カメラアプリケーション２４０は、カメラドライバ２３１から出力された画像のデータをアプリケーションＯＳ２２へ出力する（Ｓ２２６）。アプリケーションＯＳ２２は、カメラアプリケーション２４０から出力されたデータに基づいて画像を表示装置１３に表示する（Ｓ２２７）。
【００８８】
［実施例３の効果］
以上、実施例３について説明した。上記したように、本実施例の情報処理装置１０において、カーネルＯＳ２１は、省電力状態においてボタン１４が操作されたことを検出した場合に、各ドライバに起動指示を送信する。そして、カーネルＯＳ２１は、全てのドライバから起動完了が通知された場合に、アプリケーションＯＳ２２に画面表示を要求する。アプリケーションＯＳ２２は、予め定められた状態遷移に従って、カメラアプリケーション２４０に画像要求を送信し、カメラアプリケーション２４０は、カメラドライバ２３１に起動指示を送信する。
【００８９】
ここで、カーネルＯＳ２１が、ボタン１４が操作されたことを検出してから、起動指示が送信された全てのドライバから起動完了が送信されたことを検出するまでには、数百ミリ秒程度かかる場合がある。また、カメラ１５が起動してから画像の取り込みが可能となるまでには、数百ミリ秒から１秒程度かかる。
【００９０】
例えば、カメラドライバ２３１の起動時に、カメラ１５の初期化が行われなかった場合、カメラドライバ２３１は、カメラアプリケーション２４０からカメラ１５の起動指示を受信した後に、カメラ１５の初期化を開始することになる。そのため、ボタン１４が操作されてから、カメラ１５が使用可能な状態となるまでには、１秒以上かかることになる。そのため、ユーザは、ボタン１４を操作した後に、カメラ１５が使用可能な状態となるまで、カメラ１５を用いた撮影を待たされることになる。これにより、シャッターチャンスを逃してしまう場合があり、情報処理装置１０の使いやすさが低下する。
【００９１】
これに対し、本実施例の情報処理装置１０では、カメラドライバ２３１の初期化後に、引き続きカメラ１５の初期化が行われる。カメラ１５の初期化では、画像の取り込みが可能な状態となる前までの処理が行われる。これにより、カーネルＯＳ２１が、起動指示が送信された全てのドライバから起動完了が送信されたことを検出する前に、カメラドライバ２３１は、カメラ１５の初期化を開始することができる。そして、カメラドライバ２３１から画像設定を受信した場合、カメラ１５は、画像設定に従ったサイズの画像の取り込みを迅速に開始することができる。
【００９２】
しかし、カメラドライバ２３１の起動に続けてカメラ１５の初期化が実行されたとしても、カメラアプリケーション２４０からのカメラ１５の起動指示によりカメラ１５が再び初期化されると、初期化の処理が２回行われることになる。そのため、省電力状態からカメラ１５が使用可能な状態となるまでの時間を短縮することが難しい。そこで、本実施例のカメラドライバ２３１は、カメラ１５を初期化した場合、カメラ１５が初期化済であることを示す初期化フラグを、格納部２５内のフラグテーブル２５０に格納する。そして、カメラドライバ２３１は、カメラアプリケーション２４０からカメラ１５の起動指示を受信した場合、フラグテーブル２５０にカメラ１５が初期化済であることを示す初期化フラグが格納されていれば、カメラ１５の初期化をスキップする。これにより、本実施例の情報処理装置１０は、カメラ１５の再度の初期化を防止することができる。これにより、省電力状態からのカメラ１５の起動を迅速に行うことができ、情報処理装置１０の使いやすさを向上させることができる。
【００９３】
［ハードウェア］
上記した実施例１から実施例３に示した情報処理装置１０の本体２０は、例えば図１５に示すようなハードウェアにより実現される。図１５は、情報処理装置１０の本体２０のハードウェアの一例を示す図である。本体２０は、プロセッサ２００、ＲＡＭ２０１、ｅＭＭＣ２０２、無線通信回路２０３、入出力インターフェイス（Ｉ／Ｆ）２０４、およびメディアインターフェイス（Ｉ／Ｆ）２０５を有する。プロセッサ２００、ＲＡＭ２０１、ｅＭＭＣ２０２、無線通信回路２０３、入出力Ｉ／Ｆ２０４、およびメディアＩ／Ｆ２０５は、バス２０６に接続されている。
【００９４】
プロセッサ２００は、例えばＣＰＵ（Central  Processing  Unit）、ＦＰＧＡ（Field  Programmable  Gate  Array）、またはＤＳＰ（Digital  Signal  Processor）等を有する。プロセッサ２００は、ｅＭＭＣ２０２に格納されたプログラムをＲＡＭ２０１にロードし、ＲＡＭ２０１にロードされたプログラムを実行することにより所定の機能を実現する。ｅＭＭＣ２０２は、プロセッサ２００によって実行されるプログラム、および、プログラムによって使用されるデータ等を格納する。
【００９５】
無線通信回路２０３は、基地局等の他の通信装置と無線通信し、他の通信装置から受信したデータをプロセッサ２００へ出力する。また、無線通信回路２０３は、プロセッサ２００から出力されたデータを、他の通信装置へ無線送信する。
【００９６】
入出力Ｉ／Ｆ２０４は、本体２０に接続されたボタン１１、入力装置１２、表示装置１３、ボタン１４、およびカメラ１５等の各機器を制御する。また、入出力Ｉ／Ｆ２０４は、本体２０に接続される各機器から送信されたデータをプロセッサ２００へ出力し、プロセッサ２００から出力されたデータを、各機器へ送信する。
【００９７】
メディアＩ／Ｆ２０５は、記憶媒体２０７に格納されたプログラムを読み取り、読み取られたプログラムをｅＭＭＣ２０２に格納する。プロセッサ２００は、メディアＩ／Ｆ２０５を介して記憶媒体２０７からｅＭＭＣ２０２へ格納されたプログラムを、ｅＭＭＣ２０２からＲＡＭ２０１にロードする。そして、プロセッサ２００は、ＲＡＭ２０１にロードされたプログラムを実行する。記憶媒体２０７は、例えば半導体メモリである。
【００９８】
プロセッサ２００は、ｅＭＭＣ２０２からＲＡＭ２０１にロードされたプログラムを実行することにより、カーネルＯＳ２１、アプリケーションＯＳ２２、ドライバ群２３、およびアプリケーション群２４等の各機能を実現する。上記した実施例１または実施例３において、ｅＭＭＣ２０２には、各デバイスの制御フラグのデータが格納される。また、上記した実施例２において、ｅＭＭＣ２０２には、各デバイスの制御フラグのデータ、および、順番テーブル２５１のデータが格納される。
【００９９】
プロセッサ２００は、実行されるプログラムを、記憶媒体２０７から読み出してｅＭＭＣ２０２に格納するが、他の例として、他の装置から、通信回線を介して、プログラムを取得してｅＭＭＣ２０２に格納してもよい。なお、図１５に例示された本体２０には、無線通信回路２０３が設けられるが、無線通信回路２０３に代えて、あるいは、無線通信回路２０３の他に、有線通信回路が本体２０内に設けられてもよい。また、本体２０は、無線通信回路および有線通信回路を持たず、スタンドアロンで動作する装置であってもよい。
【０１００】
［その他］
なお、開示の技術は、上記した各実施例に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【０１０１】
例えば、上記した実施例１および２において、ボタン１１に設けられた指紋読取センサ１１０は、ライン型の指紋センサであってもよい。また、上記した実施例１および２において、ボタン１１は、表面に指紋読取センサ１１０が設けられていれば、スライドスイッチやソフトウェアスイッチ等であってもよい。
【０１０２】
また、上記した実施例３において、カメラドライバ２３１は、カメラ１５が前回使用された際の画像サイズ等の設定情報をｅＭＭＣ等に格納し、省電力状態に移行する際に、画像サイズ等の設定情報をｅＭＭＣ等から読み出してＲＡＭに格納してもよい。そして、カメラドライバ２３１は、復帰処理時に、カメラ１５に、画像の取り込みが可能な状態となる前までの初期化を行わせた後、引き続き、ＲＡＭに格納された設定情報をカメラ１５へ送信してもよい。これにより、カメラドライバ２３１は、カメラアプリケーション２４０から起動指示が送信される前に、前回使用された際の画像サイズ等の設定情報を用いてカメラ１５に画像の取り込みを開始させることができる。
【０１０３】
また、上記した各実施例において、情報処理装置１０が有するそれぞれの処理ブロックは、実施例における情報処理装置１０の理解を容易にするために、主な処理内容に応じて機能別に区分したものである。そのため、処理ブロックの区分方法やその名称によって、開示の技術が制限されることはない。また、上記した各実施例における情報処理装置１０が有する各処理ブロックは、処理内容に応じてさらに多くの処理ブロックに細分化することもできるし、複数の処理ブロックを１つの処理ブロックに統合することもできる。また、上記した各実施例において、各処理ブロックによって実行される処理は、ソフトウェアによって実現されるが、少なくとも一部の処理はＡＳＩＣ（Application  Specific  Integrated  Circuit）等の専用のハードウェアにより実現されてもよい。
【０１０４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０５】
（付記１）プロセッサおよびメモリを有する情報処理装置において、
前記メモリは、デバイスに対応付けて、省電力状態からの復帰を指示する復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納し、
前記プロセッサは、アプリケーションおよびドライバを実行し、
前記ドライバは、前記復帰指示に応じてアプリケーションからデバイスの起動が指示された場合、前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されているか否かを判定し、前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されていない場合、前記デバイスの初期化を行い前記デバイスの起動完了を前記アプリケーションに通知し、前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されている場合、前記デバイスの初期化をスキップし前記デバイスの起動完了を前記アプリケーションに通知することを特徴とする情報処理装置。
【０１０６】
（付記２）前記情報処理装置には、前記デバイスが複数設けられ、
前記メモリは、それぞれのデバイスに対応付けて、省電力状態からの復帰を指示する復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納することを特徴とする付記１に記載の情報処理装置。
【０１０７】
（付記３）前記メモリは、前記デバイスに対応付けて、前記復帰指示が発生した場合にデバイスの初期化を行うか否かを示す制御情報がさらに格納し、
前記プロセッサは、ユーザからの入力に応じて、前記メモリに前記制御情報を格納させる入力部をさらに実行し、
前記ドライバは、
前記復帰指示が発生した場合に前記メモリを参照し、前記ドライバが制御するデバイスに、前記復帰指示が発生した場合に前記デバイスの初期化を行うことを示す前記制御情報が対応付けられている場合、前記デバイスの初期化を行い、初期化済であることを示す前記初期化情報を前記デバイスに対応付けて前記メモリに格納することを特徴とする付記１または２に記載の情報処理装置。
【０１０８】
（付記４）スイッチを有し、
前記プロセッサは、省電力状態において前記スイッチが操作された場合に、前記復帰指示の発生を検出し、前記ドライバに起動を指示する指示部をさらに実行し、
前記ドライバは、
前記指示部から起動を指示された場合に起動し、起動後に前記メモリを参照し、前記ドライバが制御するデバイスに、前記復帰指示が発生した場合に前記デバイスの初期化を行うことを示す前記制御情報が対応付けられているか否かを判定することを特徴とする付記３に記載の情報処理装置。
【０１０９】
（付記５）前記プロセッサは、複数のドライバを実行し、
前記メモリは、複数の前記ドライバのそれぞれに起動を指示する順番をさらに格納し、
前記プロセッサは、ユーザからの入力に応じて、前記メモリに格納されている前記順番を変更する変更部をさらに実行し、
前記指示部は、前記復帰指示の発生を検出した場合に、前記メモリに格納された前記順番に従って、それぞれの前記ドライバに起動を指示することを特徴とする付記４に記載の情報処理装置。
【０１１０】
（付記６）前記スイッチは、押しボタンスイッチであり、
前記デバイスは、前記押しボタンスイッチの表面に設けられた指紋読取センサであることを特徴とする付記４または５に記載の情報処理装置。
【０１１１】
（付記７）カメラを有し
前記スイッチは、前記カメラを起動させるためのスイッチであることを特徴とする付記４から６のいずれか一つに記載の情報処理装置。
【０１１２】
（付記８）情報処理装置が、
省電力状態からの復帰を指示する復帰指示に応じてアプリケーションからデバイスの起動が指示された場合、デバイスに対応付けて、前記復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納するメモリを参照して、前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されているか否かを判定し、
前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されていない場合、前記デバイスの初期化を行い前記デバイスの起動完了を前記アプリケーションに通知し、前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されている場合、前記デバイスの初期化をスキップし前記デバイスの起動完了を前記アプリケーションに通知する
処理を実行することを特徴とするデバイス起動制御方法。
【０１１３】
（付記９）情報処理装置に、
省電力状態からの復帰を指示する復帰指示に応じてアプリケーションからデバイスの起動が指示された場合、デバイスに対応付けて、前記復帰指示に応じて起動したドライバによって初期化済であるか否かを示す初期化情報を格納するメモリを参照して、前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されているか否かを判定し、
前記アプリケーションから起動が指示された前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されていない場合、前記デバイスの初期化を行い前記デバイスの起動完了を前記アプリケーションに通知し、前記デバイスが初期化済であることを示す前記初期化情報が前記メモリに格納されている場合、前記デバイスの初期化をスキップし前記デバイスの起動完了を前記アプリケーションに通知する
処理を実行させることを特徴とするデバイス起動制御プログラム。
【符号の説明】
【０１１４】
１０  情報処理装置
１１  ボタン
１１０  指紋読取センサ
１２  入力装置
１３  表示装置
１４  ボタン
１５  カメラ
２０  本体
２００  プロセッサ
２０１  ＲＡＭ
２０２  ｅＭＭＣ
２０３  無線通信回路
２０４  入出力Ｉ／Ｆ
２０５  メディアＩ／Ｆ
２０６  バス
２０７  記憶媒体
２１  カーネルＯＳ
２２  アプリケーションＯＳ
２３  ドライバ群
２３０  検出ドライバ
２３１  カメラドライバ
２３２  指紋読取ドライバ
２４  アプリケーション群
２４０  カメラアプリケーション
２４１  データ管理アプリケーション
２４２  指紋認証アプリケーション
２５  格納部
２５０  フラグテーブル
２５１  順番テーブル
５０  設定画面
５００  プルダウンボタン
５０１  ラジオボタン
５０２  ラジオボタン
５０３  設定ボタン
５０４  キャンセルボタン
５１  設定画面
５１０  スライダ
５１１  数字
５１２  設定ボタン
５１３  キャンセルボタン
【図１】
2019008380.tif 000003
【図２】
2019008380.tif 000004
【図３】
2019008380.tif 000005
【図４】
2019008380.tif 000006
【図５】
2019008380.tif 000007
【図６】
2019008380.tif 000008
【図７】
2019008380.tif 000009
【図８】
2019008380.tif 000010
【図９】
2019008380.tif 000011
【図１０】
2019008380.tif 000012
【図１１】
2019008380.tif 000013
【図１２】
2019008380.tif 000014
【図１３】
2019008380.tif 000015
【図１４】
2019008380.tif 000016
【図１５】
2019008380.tif 000017