(57)【特許請求の範囲】
【請求項１】
所定の処理を実行する処理部と、
前記所定の処理を実行可能な外部装置と通信網を介して接続するための接続部と、
所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記処理部又は前記接続部により接続された外部装置を選択する選択部と、
を備え、
前記所定の処理を施すべきデータを出力するデータ出力部をさらに備え、
前記選択部により前記外部装置から前記処理部へと依頼先が変更された際、前記接続部は、前記データ出力部によるデータの出力を停止させ、前記処理部により前記所定の処理を続けて実行させるために必要なデータを前記外部装置から取得する、
端末装置。
【請求項２】
前記処理部の負荷状態を検知する負荷状態検知部をさらに備え、
前記選択部は、前記負荷状態検知部により検知された前記処理部の負荷状態が閾値より高い場合に前記接続部により接続された外部装置を選択し、前記負荷状態検知部により検知された前記処理部の負荷状態が閾値より低い場合に前記処理部を選択する、
請求項１に記載の端末装置。
【請求項３】
前記接続部による接続状態を検知する接続状態検知部をさらに備え、
前記選択部は、前記接続状態検知部により検知された接続状態に応じて前記処理部又は前記接続部により接続された外部装置を選択する、
請求項１に記載の端末装置。
【請求項４】
前記接続状態検知部は、前記外部装置との間で閾値より高速な通信が可能か否かを検知し、
前記選択部は、前記接続状態検知部により前記外部装置との間で前記閾値より高速な通信が可能であることが検知された場合に前記接続部により接続された外部装置を選択する、
請求項３に記載の端末装置。
【請求項５】
前記接続状態検知部は、前記外部装置との通信に利用可能な帯域幅を検知し、
前記選択部は、前記接続状態検知部により検知された帯域幅が所定の閾値を上回っている場合に前記接続部により接続された外部装置を選択する、
請求項３に記載の端末装置。
【請求項６】
少なくとも前記処理部の動作に利用される電力が蓄えられる蓄電部と、
前記蓄電部に蓄えられている電力の量を検知する残量検知部と、
をさらに備え、
前記選択部は、前記残量検知部により検知された電力の量が所定値を下回っている場合に前記接続部により接続された外部装置を選択する、
請求項１に記載の端末装置。
【請求項７】
前記選択部により前記外部装置から前記処理部へと依頼先が変更された際、前記外部装置から前記処理部へと処理主体を変更可能なタイミングを当該外部装置に問い合わせ、当該タイミングを示す情報を前記外部装置から取得するタイミング取得部をさらに備え、
前記接続部は、前記タイミング取得部により取得された情報が示すタイミングで前記データ出力部にデータの出力を再開させ、前記処理部に前記所定の処理を実行させる、
請求項１に記載の端末装置。
【請求項８】
前記外部装置が前記所定の処理を実行する際に利用するアルゴリズムのバージョン情報を取得するバージョン情報取得部と、
前記バージョン情報取得部により取得されたバージョン情報が示すバージョンと、前記処理部が前記所定の処理を実行する際に利用するアルゴリズムのバージョンとを比較するバージョン比較部と、
をさらに備え、
前記選択部は、前記バージョン比較部による比較結果に基づき、前記バージョン情報取得部により取得されたバージョン情報が示すバージョンの方が新しいことが判明した場合には前記外部装置を選択する、
請求項１に記載の端末装置。
【請求項９】
所定の処理を実行する第１の処理部を有する外部装置と；
前記所定の処理を実行する第２の処理部と、
前記外部装置と通信網を介して接続するための接続部と、
所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記第２の処理部又は前記接続部により接続された外部装置を選択する選択部と、
を有する、端末装置と；
を含み、
前記端末装置は、
前記所定の処理を施すべきデータを出力するデータ出力部をさらに備え、
前記選択部により前記外部装置から前記第２の処理部へと依頼先が変更された際、前記接続部は、前記データ出力部によるデータの出力を停止させ、前記第２の処理部により前記所定の処理を続けて実行させるために必要なデータを前記外部装置から取得する、
情報処理システム。
【請求項１０】
所定の処理を実行する処理部と、前記所定の処理を実行可能な外部装置と通信網を介して接続するための接続部と、選択部と、前記所定の処理を施すべきデータを出力するデータ出力部と、を有する端末装置が、
前記選択部により、所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記処理部又は前記接続部により接続された外部装置を選択する選択ステップを含み、
前記選択部により前記外部装置から前記処理部へと依頼先が変更された際、前記接続部により、前記データ出力部によるデータの出力を停止させ、前記処理部により前記所定の処理を続けて実行させるために必要なデータを前記外部装置から取得するステップを含む、
依頼先選択方法。
【請求項１１】
所定の処理を実行する処理部と、
前記所定の処理を実行可能な外部装置と通信網を介して接続するための接続部と、
所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記処理部又は前記接続部により接続された外部装置を選択する選択部と、
を備え、
前記所定の処理を施すべきデータを出力するデータ出力部をさらに備え、
前記選択部により前記外部装置から前記処理部へと依頼先が変更された際、前記接続部は、前記データ出力部によるデータの出力を停止させ、前記処理部により前記所定の処理を続けて実行させるために必要なデータを前記外部装置から取得する、
端末装置として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、情報処理システム、依頼先選択方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングという言葉をよく耳にするようになった。クラウドコンピューティングとは、ネットワークを介して接続されたサーバ装置又はサーバ装置群により提供されるサービス（以下、クラウドサービス）を利用してユーザが所望の処理を実現する形態のことを言う。最近では様々なアプリケーションをクラウドサービスとして利用できるようになった。例えば、電子メール、文書編集アプリケーション、表計算アプリケーション、画像管理アプリケーション、画像編集アプリケーション、翻訳アプリケーションなど、様々なアプリケーションがクラウドサービスとして利用できるようになっている。
【０００３】
クラウドサービスを利用すると、ユーザは、自身が保有する端末装置にアプリケーションをインストールせずに済むようになる。また、クラウドサービスを利用してアプリケーションを実行する場合、アプリケーションの実行に関する処理は、主にクラウドサービスを提供するサーバ装置により実行される。そのため、クラウドサービスを利用すれば、端末装置の処理能力が低かったり、メモリの空き領域が足りずにアプリケーションをインストールすることができなかったりしても、ユーザは、所望のアプリケーションを利用することができるようになる。
【０００４】
クラウドコンピューティングシステムのようなクライアント・サーバ型のシステムは様々な場面で広く利用されている。このようなシステムにおいては、ネットワーク上のアドレス解決、コネクションの確立、データの送受信などを担う通信仲介手段の存在が欠かせない。例えば、下記の特許文献１には、ＯＲＢ（Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ）と呼ばれる通信仲介手段の構成が記載されている。このＯＲＢは、主に分散コンピューティングの分野で利用されるものであり、ネットワークを介してコンピュータ間におけるプログラムの呼び出しを実現するためのミドルウェアである。ＪＡＶＡ（登録商標）に含まれるＲＭＩ（Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ）は、ＯＲＢの一例である。
【０００５】
また、複数のサーバ装置がシステムに存在するクライアント・サーバ型のシステムにおいては、利用すべきサーバ装置を適切に選択することも重要になる。下記の特許文献２には、各サーバ装置の処理能力、処理負荷、ネットワークトラフィックの状況などに応じて処理を実行させるサーバ装置を切り替える方法が開示されている。また、クライアント・サーバ型のシステムに関し、下記の特許文献３には、クライアント側とサーバ側とでコンポーネントの呼び出しインターフェースが異なっていても、呼び出し元のインターフェースを改変せずに利用できるようにする方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−７６５６３号公報
【特許文献２】特開２０００−４７８９０号公報
【特許文献３】特許第４０４２５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
クラウドコンピューティングシステムや分散コンピューティングシステムなど、クライアント・サーバ型のシステムに対する需要は高まってきている。また、上記のように、クライアント・サーバ型のシステムの利便性や効率性を高めるために様々な研究開発が進められている。しかしながら、クライアント側の端末装置が持つ処理能力を生かすようなシステム構成や、クライアント側の端末装置がおかれている環境に応じて動的に処理を分散するシステム構成については未だ十分に研究開発が進められているとは言えない。例えば、端末装置がおかれている状況に応じて、その時点で実行すべき処理を端末装置に実行させるか、サーバ装置に実行させるかを適切に選択する方法については知られていない。
【０００８】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、端末装置がおかれている状況に応じて処理主体をより適切に選択することが可能な、新規かつ改良された端末装置、情報処理システム、依頼先選択方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある観点によれば、所定の処理を実行する処理部と、前記所定の処理を実行可能な外部装置と通信網を介して接続するための接続部と、所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記処理部又は前記接続部により接続された外部装置を選択する選択部と、を備える、端末装置が提供される。
【００１０】
また、上記の端末装置は、前記所定の処理を施すべきデータを出力するデータ出力部をさらに備えていてもよい。この場合、前記選択部により前記外部装置から前記処理部へと依頼先が変更された際、前記接続部は、前記データ出力部によるデータの出力を停止させ、前記処理部により前記所定の処理を続けて実行させるために必要なデータを前記外部装置から取得する。
【００１１】
また、上記の端末装置は、前記処理部の負荷状態を検知する負荷状態検知部をさらに備えていてもよい。この場合、前記選択部は、前記負荷状態検知部により検知された前記処理部の負荷状態が高い場合に前記接続部により接続された外部装置を選択し、前記負荷状態検知部により検知された前記処理部の負荷状態が低い場合に前記処理部を選択する。
【００１２】
また、上記の端末装置は、前記接続部による接続状態を検知する接続状態検知部をさらに備えていてもよい。この場合、前記選択部は、前記接続状態検知部により検知された接続状態に応じて前記処理部又は前記接続部により接続された外部装置を選択する。
【００１３】
また、前記接続状態検知部は、前記外部装置との間で高速な通信が可能か否かを検知し、前記選択部は、前記接続状態検知部により前記外部装置との間で高速な通信が可能であることが検知された場合に前記接続部により接続された外部装置を選択する、ように構成されていてもよい。
【００１４】
また、前記接続状態検知部は、前記外部装置との通信に利用可能な帯域幅を検知し、前記選択部は、前記接続状態検知部により検知された帯域幅が所定の閾値を上回っている場合に前記接続部により接続された外部装置を選択する、ように構成されていてもよい。
【００１５】
また、上記の端末装置は、少なくとも前記処理部の動作に利用される電力が蓄えられる蓄電部と、前記蓄電部に蓄えられている電力の量を検知する残量検知部と、をさらに備えていてもよい。この場合、前記選択部は、前記残量検知部により検知された電力の量が所定値を下回っている場合に前記接続部により接続された外部装置を選択する。
【００１６】
また、上記の端末装置は、前記選択部により前記外部装置から前記処理部へと依頼先が変更された際、前記外部装置から前記処理部へと処理主体を変更可能なタイミングを当該外部装置に問い合わせ、当該タイミングを示す情報を前記外部装置から取得するタイミング取得部をさらに備えていてもよい。この場合、前記接続部は、前記タイミング取得部により取得された情報が示すタイミングで前記データ出力部にデータの出力を再開させ、前記処理部に前記所定の処理を実行させる。
【００１７】
また、上記の端末装置は、前記外部装置が前記所定の処理を実行する際に利用するアルゴリズム（あるいは、プログラム、ソフトウェアとも言う。以下同様）のバージョン情報を取得するバージョン情報取得部と、前記バージョン情報取得部により取得されたバージョン情報が示すバージョンと、前記処理部が前記所定の処理を実行する際に利用するアルゴリズムのバージョンとを比較するバージョン比較部と、をさらに備えていてもよい。この場合、前記選択部は、前記バージョン比較部による比較結果に基づき、前記バージョン情報取得部により取得されたバージョン情報が示すバージョンの方が新しいことが判明した場合には前記外部装置を選択する。
【００１８】
また、上記課題を解決するために、本発明の別の観点によれば、所定の処理を実行する第１の処理部を有する外部装置と；前記所定の処理を実行する第２の処理部と、前記外部装置と通信網を介して接続するための接続部と、所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記第２の処理部又は前記接続部により接続された外部装置を選択する選択部と、を有する、端末装置と；を含む、情報処理システムが提供される。
【００１９】
また、上記課題を解決するために、本発明の別の観点によれば、所定の処理を実行する処理部と、前記所定の処理を実行可能な外部装置と通信網を介して接続するための接続部と、を有する端末装置が、所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記処理部又は前記接続部により接続された外部装置を選択する選択ステップを含む、依頼先選択方法が提供される。
【００２０】
また、上記課題を解決するために、本発明の別の観点によれば、所定の処理を実行する処理機能と、前記所定の処理を実行可能な外部装置と通信網を介して接続するための接続機能と、所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記処理機能又は前記接続機能により接続された外部装置を選択する選択機能と、をコンピュータに実現させるためのプログラムが提供される。
【００２１】
また、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【００２２】
以上説明したように本発明によれば、端末装置がおかれている状況に応じて処理主体をより適切に選択することが可能になる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１実施形態に係る情報処理システムの構成について説明するための説明図である。
【図２】同実施形態に係る端末装置の機能構成について説明するための説明図である。
【図３】同実施形態に係るサーバ装置の機能構成について説明するための説明図である。
【図４】同実施形態に係る端末装置の動作について説明するための説明図である。
【図５】同実施形態に係る判定方法の一例について説明するための説明図である。
【図６】同実施形態に係る判定方法の一例について説明するための説明図である。
【図７】同実施形態に係る判定方法の一例について説明するための説明図である。
【図８】同実施形態に係る判定方法の一例について説明するための説明図である。
【図９】本発明の第２実施形態に係る端末装置の機能構成について説明するための説明図である。
【図１０】同実施形態に係るサーバ装置の機能構成について説明するための説明図である。
【図１１】同実施形態に係る端末装置の動作について説明するための説明図である。
【図１２】同実施形態に係る判定方法の一例について説明するための説明図である。
【図１３】本発明の第３実施形態に係る端末装置の機能構成について説明するための説明図である。
【図１４】同実施形態に係るサーバ装置の機能構成について説明するための説明図である。
【図１５】同実施形態に係る動画生成部の詳細な機能構成について説明するための説明図である。
【図１６】同実施形態に係る端末装置の動作について説明するための説明図である。
【図１７】同実施形態に係る動画生成方法の一例について説明するための説明図である。
【図１８】本発明の第４実施形態に係る端末装置の機能構成について説明するための説明図である。
【図１９】同実施形態に係るサーバ装置の機能構成について説明するための説明図である。
【図２０】同実施形態に係る端末装置の動作について説明するための説明図である。
【図２１】本発明の各実施形態に係る端末装置及びサーバ装置の機能を実現することが可能なハードウェア構成について説明するための説明図である。
【発明を実施するための形態】
【００２４】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２５】
［説明の流れについて］
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図１を参照しながら、本発明の第１実施形態に係る情報処理システム１０の構成について説明する。次いで、図２を参照しながら、同実施形態に係る端末装置１００の機能構成について説明する。次いで、図３を参照しながら、同実施形態に係るサーバ装置２００の機能構成について説明する。次いで、図４、図５を参照しながら、同実施形態に係る端末装置１００の動作について説明する。また、図６〜図８を参照しながら、同実施形態に係る判定方法について説明する。
【００２６】
次いで、図９を参照しながら、本発明の第２実施形態に係る端末装置１００の機能構成について説明する。次いで、図１０を参照しながら、同実施形態に係るサーバ装置２００の機能構成について説明する。次いで、図１１、図１２を参照しながら、同実施形態に係る端末装置１００の動作について説明する。
【００２７】
次いで、図１３を参照しながら、本発明の第３実施形態に係る端末装置１００の機能構成について説明する。次いで、図１４を参照しながら、同実施形態に係るサーバ装置２００の機能構成について説明する。次いで、図１５を参照しながら、同実施形態に係る動画生成部１５５、２０２の詳細な機能構成について説明する。次いで、図１６、図１７を参照しながら、同実施形態に係る端末装置１００の動作について説明する。
【００２８】
次いで、図１８を参照しながら、本発明の第４実施形態に係る端末装置１００の機能構成について説明する。次いで、図１９を参照しながら、同実施形態に係るサーバ装置２００の機能構成について説明する。次いで、図２０を参照しながら、同実施形態に係る端末装置１００の動作について説明する。
【００２９】
次いで、本発明の各実施形態に係る端末装置１００及びサーバ装置２００の機能を実現することが可能なハードウェア構成について説明する。最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【００３０】
（説明項目）
１：第１実施形態
１−１：情報処理システム１０の機能構成
１−２：端末装置１００の構成
１−３：サーバ装置２００の機能構成
１−４：端末装置１００の動作
１−４−１：全体的な処理の流れ
１−４−２：判定方法について
２：第２実施形態
２−１：端末装置１００の機能構成
２−２：サーバ装置２００の機能構成
２−３：端末装置１００の動作
２−３−１：全体的な処理の流れ
２−３−２：判定方法について
３：第３実施形態
３−１：端末装置１００の機能構成
３−２：サーバ装置２００の機能構成
３−３：端末装置１００の動作
３−３−１：全体的な処理の流れ
３−３−２：動画生成方法について
４：第４実施形態
４−１：端末装置１００の機能構成
４−２：サーバ装置２００の機能構成
４−３：端末装置１００の動作
５：ハードウェア構成
６：まとめ
【００３１】
＜１：第１実施形態＞
本発明の第１実施形態について説明する。
【００３２】
［１−１：情報処理システム１０の構成］
まず、図１を参照しながら、本実施形態に係る情報処理システム１０の構成について説明する。図１は、本実施形態に係る情報処理システム１０の構成について説明するための説明図である。
【００３３】
図１に示すように、情報処理システム１０は、主に、端末装置１００と、サーバ装置２００とにより構成される。また、端末装置１００とサーバ装置２００とは、ネットワーク５０を介して接続されている。なお、図１の例では複数のサーバ装置２００が記載されているが、サーバ装置２００が１台のシステム構成であってもよい。また、ネットワーク５０に複数台の端末装置１００が接続されたシステム構成であってもよい。
【００３４】
端末装置１００は、ネットワーク５０を介してサーバ装置２００と通信することができる。また、端末装置１００は、ある情報に対する処理をサーバ装置２００に依頼し、その処理をサーバ装置２００に代行させることができる。例えば、端末装置１００は、画像データをサーバ装置２００に送信し、その画像データのエンコードをサーバ装置２００に依頼する。この依頼を受けたサーバ装置２００は、受信した画像データをエンコードし、エンコードされた画像データを端末装置１００に送信する。多くの場合、画像データのエンコードは、端末装置１００にとって非常に負担の大きい処理である。しかし、サーバ装置２００に処理を代行させることで、その処理結果を端末装置１００で利用可能になる。
【００３５】
但し、常にネットワーク５０が効率的に利用できるとは限らない。例えば、ネットワーク５０が無線通信を利用したものである場合、環境の変化に応じて通信速度が大きく低減してしまったり、通信不可の状態になってしまったりする。また、ネットワーク５０が有線回線により構築されていても、ネットワークトラフィックが増大することにより、利用可能な帯域が制限されたり、通信エラーが多発して通信速度が低下したりする。このように、通信環境が不安定な場合、サーバ装置２００に処理を代行させると、通信時間がボトルネックになって処理時間が増大してしまうことがある。このような場合、処理能力の低い端末装置１００で処理を実行させた方が高速に処理できることがある。
【００３６】
また、端末装置１００は、バッテリに蓄えた電力を利用して駆動していることがある。この場合、処理を端末装置１００で実行するよりも、サーバ装置２００に処理を代行させる方が端末装置１００で消費される電力を低く抑えることができる。つまり、サーバ装置２００に処理を代行させることにより、バッテリによる端末装置１００の駆動時間を延ばすことが可能になる。また、端末装置１００の処理負荷が高い場合、一部の処理をサーバ装置２００に代行させることにより効率的に処理を遂行することが可能になる。例えば、負荷の低い処理を端末装置１００で処理し、負荷の高い処理をサーバ装置２００に代行させることで、より効率的に処理を遂行することが可能になる。
【００３７】
また、ある処理を実行する際に利用されるアルゴリズムのバージョンが端末装置１００とサーバ装置２００とで異なる場合がある。最新のアルゴリズムをサーバに随時保存する構成の場合、サーバ装置２００で利用されているアルゴリズムの方が、端末装置１００で利用されているアルゴリズムよりも新しい。このような場合、処理をサーバ装置２００に代行させることで、新しいアルゴリズムに基づく処理結果が得られる。例えば、画像から顔を自動検出する顔認識アルゴリズムなどは、バージョン毎に検出精度が大きく異なることがある。つまり、新しい顔認識アルゴリズムを利用することにより、より高い精度で顔を検出することが可能になる。
【００３８】
このように、サーバ装置２００に処理を代行させることにより様々なメリット、デメリットが生じる。そのため、よりメリットが得られる場合にはサーバ装置２００に処理を代行させ、デメリットが生じる場合やメリットの薄い場合には端末装置１００が処理を実行するように制御する方法が求められる。なお、一般的な分散コンピューティングシステムにおいて、ロードバランスを保ちながら複数のサーバに処理を分担させる管理方法が知られている。しかし、この管理方法は、通信環境が時々刻々と変化したり、端末装置１００の電源状態が変化したり、端末装置１００とサーバ装置２００とでアルゴリズムが異なったりする情報処理システム１０の管理には適さない。
【００３９】
そこで、本件発明者は、サーバ装置２００に処理を代行させることが可能な端末装置１００により、状況に応じて適切に処理主体を選択する方法を考案した。以下では、本実施形態に係る端末装置１００、サーバ装置２００の機能構成、及び本実施形態に係る処理主体の選択方法について順次説明する。
【００４０】
［１−２：端末装置１００の機能構成］
まず、図２を参照しながら、本実施形態に係る端末装置１００の機能構成について説明する。図２は、本実施形態に係る端末装置１００の機能構成について説明するための説明図である。
【００４１】
図２に示すように、端末装置１００は、主に、情報入力部１０１と、依頼先切替部１０２と、判定部１０３と、通信部１０４と、情報処理部１０５と、記憶部１０６と、負荷検知部１０７と、蓄電量検知部１０８と、蓄電部１０９とにより構成される。
【００４２】
情報入力部１０１は、処理すべき情報を入力するための手段である。情報入力部１０１に入力された情報は、依頼先切替部１０２に入力される。依頼先切替部１０２は、入力された情報の処理を情報処理部１０５に依頼するか、サーバ装置２００に依頼するかを切り替える手段である。但し、依頼先切替部１０２は、判定部１０３による判定結果に応じて処理の依頼先を切り替える。判定部１０３は、通信環境、処理負荷、蓄電量、及び、処理に用いるアルゴリズムのバージョンに応じて処理の依頼先を判定する手段である。
【００４３】
判定部１０３には、通信部１０４から通信環境が通知される。また、判定部１０３には、負荷検知部１０７から情報処理部１０５の負荷状況を示す情報が入力される。さらに、判定部１０３には、蓄電量検知部１０８から蓄電部１０９の蓄電量を示す情報が入力される。そして、判定部１０３には、情報処理部１０５において処理に用いているアルゴリズムのバージョンを示す情報が入力される。これらの情報が入力されると、判定部１０３は、入力された情報に基づき、処理主体を情報処理部１０５にするか、サーバ装置２００にするかを判定する。判定部１０３による判定結果は、依頼先切替部１０２に入力される。
【００４４】
判定部１０３による判定結果が情報処理部１０５を示す場合、依頼先切替部１０２は、情報入力部１０１から入力された情報を情報処理部１０５に入力する。情報が入力されると、情報処理部１０５は、記憶部１０６に格納されたアルゴリズムに基づき、入力された情報を処理し、その処理結果を出力する。なお、処理を実行する際、情報処理部１０５は、必要に応じて記憶部１０６を利用する。一方、判定部１０３による判定結果がサーバ装置２００を示す場合、依頼先切替部１０２は、情報入力部１０１から入力された情報を通信部１０４に入力する。情報が入力された通信部１０４は、ネットワーク５０を通じて、入力された情報をサーバ装置２００に送信する。また、通信部１０４は、サーバ装置２００から送信された処理結果を受信し、その処理結果を出力する。
【００４５】
≪判定部１０３の機能≫
ここで、判定部１０３の機能について、より詳細に説明する。上記の通り、判定部１０３は、通信部１０４から入力される通信環境の情報、情報処理部１０５から入力されるバージョンの情報、負荷検知部１０７から入力される負荷の情報、蓄電量検知部１０８から入力される蓄電量の情報に基づいて処理主体を選択する。
【００４６】
通信環境の情報とは、通信回線が利用可能な状態にあるのか否か、低速な回線を利用しているのか、高速な回線を利用しているのか、利用可能な帯域幅がどのくらいかなどを示す情報である。これら通信環境の情報は、通信部１０４により検知される。また、負荷の情報とは、情報処理部１０５の負荷が高い状況にあるか、負荷が低い状況にあるかなどを示す情報である。これら負荷の情報は、負荷検知部１０７により検知される。また、蓄電量の情報とは、蓄電部１０９に蓄えられている電力量を示す情報である。なお、蓄電部１０９は、端末装置１００の各構成要素を駆動させるための電力を蓄えておく手段である。また、蓄電部１０９に蓄えられた電力量は、蓄電量検知部１０８により検知される。
【００４７】
（通信環境に応じた選択）
例えば、通信回線が利用可能な状態にない場合、判定部１０３は、処理主体として情報処理部１０５を選択する。また、低速な回線を利用している場合、判定部１０３は、処理主体として情報処理部１０５を選択する。一方、高速な回線を利用している場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。但し、高速な回線を利用していても、利用可能な帯域幅が狭い場合、判定部１０３は、処理主体として情報処理部１０５を選択する。また、低速な回線を利用していても、情報処理部１０５の負荷が高い場合や蓄電部１０９の蓄電量が少ない場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。このようにして選択された処理主体の情報は、判定結果として依頼先切替部１０２に入力される。
【００４８】
（負荷に応じた選択）
例えば、情報処理部１０５の負荷が高い場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。一方、情報処理部１０５の負荷が低い場合、判定部１０３は、処理主体として情報処理部１０５を選択する。但し、情報処理部１０５の負荷が高くても、通信回線が利用できない場合、判定部１０３は、処理主体として情報処理部１０５を選択する。また、情報処理部１０５の負荷が低くても、蓄電部１０９の蓄電量が少ない場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。さらに、情報処理部１０５の負荷が低くても、サーバ装置２００で利用しているアルゴリズムの方が新しい場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。このようにして選択された処理主体の情報は、判定結果として依頼先切替部１０２に入力される。
【００４９】
（蓄電量に応じた選択）
例えば、蓄電部１０９の蓄電量が多い場合、判定部１０３は、処理主体として情報処理部１０５を選択する。一方、蓄電部１０９の蓄電量が少ない場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。但し、蓄電部１０９の蓄電量が多くても、情報処理部１０５の負荷が高い場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。また、蓄電部１０９の蓄電量が少なくても、通信回線が利用できない場合、判定部１０３は、処理主体として情報処理部１０５を選択する。さらに、蓄電部１０９の蓄電量が多くても、サーバ装置２００で利用しているアルゴリズムの方が新しい場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。このようにして選択された処理主体の情報は、判定結果として依頼先切替部１０２に入力される。
【００５０】
（バージョンに応じた選択）
例えば、サーバ装置２００で利用しているアルゴリズムの方が新しい場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。一方、情報処理部１０５で利用しているアルゴリズムとサーバ装置２００で利用しているアルゴリズムとが同じバージョンの場合、判定部１０３は、処理主体として情報処理部１０５を選択する。但し、サーバ装置２００で利用しているアルゴリズムの方が新しくても、通信回線が利用できない場合や低速な回線を利用している場合、判定部１０３は、処理主体として情報処理部１０５を選択する。また、情報処理部１０５で利用しているアルゴリズムとサーバ装置２００で利用しているアルゴリズムとが同じバージョンでも、情報処理部１０５の負荷が高い場合や蓄電部１０９の蓄電量が少ない場合、判定部１０３は、処理主体としてサーバ装置２００を選択する。このようにして選択された処理主体の情報は、判定結果として依頼先切替部１０２に入力される。
【００５１】
≪処理主体の切り替え≫
上記のように、判定部１０３は、通信環境、情報処理部１０５の負荷、蓄電部１０９の蓄電量、及び情報処理部１０５が利用しているバージョンに応じて処理主体を選択してもよい。但し、通信環境、情報処理部１０５の負荷、及び蓄電部１０９の蓄電量は時々刻々と変化する。また、サーバ装置２００において、処理に利用しているアルゴリズムが更新されるとアルゴリズムのバージョンも変化する。これらの変化が生じた場合、判定部１０３は、その変化に応じて判定結果を更新する。例えば、高速な回線が利用できなくなり、通信回線が低速な回線に切り替わった場合、判定部１０３は、処理主体をサーバ装置２００から情報処理部１０５に変更した処理結果を依頼先切替部１０２に入力する。
【００５２】
変更後の処理結果が入力されると、依頼先切替部１０２は、情報入力部１０１による情報の入力を停止させる。次いで、依頼先切替部１０２は、情報処理部１０５が処理を継続するために必要な情報をサーバ装置２００から取得する。例えば、ある種の動画像処理の場合において、情報入力部１０１から連続して入力される情報に相関が期待される場合、次に入力される情報を処理するために前に入力された情報が必要になることがある。このような場合、それ以前に入力された相関に関する情報をサーバ装置２００から取得し、その情報を情報処理部１０５に入力しておく必要がある。そのため、依頼先切替部１０２によりサーバ装置２００から取得された情報は、情報処理部１０５に入力される。
【００５３】
必要な情報が情報処理部１０５に入力されると、依頼先切替部１０２は、情報入力部１０１による情報の入力を再開させる。そして、依頼先切替部１０２は、情報入力部１０１から入力された情報を情報処理部１０５に入力して処理を実行させる。
【００５４】
なお、ここでは相関のある情報をサーバ装置２００から取得する構成を紹介したが、相関のある一連の情報を全てサーバ装置２００に処理させてから処理主体を切り替える方法も考えられる。例えば、依頼先切替部１０２は、相関のある一連の情報をサーバ装置２００に送信し、送信し終えたタイミングで情報入力部１０１による情報の入力を停止させる。次いで、依頼先切替部１０２は、サーバ装置２００に対し、相関のある一連の情報を処理し終えたタイミングを通知させ、その通知に応じて情報入力部１０１による情報の入力を再開させる。そして、依頼先切替部１０２は、情報入力部１０１から入力された情報を情報処理部１０５に入力して処理を実行させる。
【００５５】
このように、処理主体を切り替える際に情報入力部１０１による情報の入力を一時停止させ、区切りの良いところまで切り替え前に処理を完了させることにより、処理主体が切り替わっても処理の連続性が失われずに済むようになる。つまり、処理主体の切り替えに伴って処理に漏れが生じたり、処理結果に不整合が生じたりすることを防止できる。ここでより具体的には、動画像処理の場合、区切りの良いところとは、例えば、場前が切り替わり、それまでに入力された画像と、新たに入力される画像の相関関係が期待されない場合である。
【００５６】
以上、端末装置１００の機能構成について説明した。
【００５７】
［１−３：サーバ装置２００の機能構成］
次に、図３を参照しながら、本実施形態に係るサーバ装置２００の機能構成について説明する。図３は、本実施形態に係るサーバ装置２００の機能構成について説明するための説明図である。
【００５８】
図３に示すように、サーバ装置２００は、主に、通信部２０１と、情報処理部２０２と、記憶部２０３とにより構成される。なお、図１に示した情報処理システム１０には複数のサーバ装置２００が記載されていたが、これら複数のサーバ装置２００は、いずれも図３に示すサーバ装置２００と実質的に同じ構成を有するものとする。
【００５９】
先に述べたように、端末装置１００により処理主体としてサーバ装置２００が選択されると、端末装置１００からサーバ装置２００に処理すべき情報が送信される。端末装置１００から送信された処理すべき情報は、ネットワーク５０を介してサーバ装置２００に伝送され、通信部２０１により受信される。処理すべき情報を受信すると、通信部２０１は、受信した処理すべき情報を情報処理部２０２に入力する。
【００６０】
処理すべき情報が入力されると、情報処理部２０２は、記憶部２０３に格納されたアルゴリズムに基づき、入力された処理すべき情報を処理し、その処理結果を出力する。なお、処理を実行する際、情報処理部２０２は、必要に応じて記憶部２０３を利用する。情報処理部２０２により出力された処理結果は、通信部２０１に入力される。処理結果が入力されると、通信部２０１は、ネットワーク５０を介して、入力された処理結果を端末装置１００に送信する。
【００６１】
また、端末装置１００からアルゴリズムのバージョンに関する問い合わせを受けた場合、サーバ装置２００は、情報処理部２０２が処理に利用しているアルゴリズムのバージョンを端末装置１００に通知する。まず、ネットワーク５０を介して問い合わせを受けると、通信部２０１は、その問い合わせを受信し、情報処理部２０２に通知する。この通知を受けた情報処理部２０２は、処理に利用しているアルゴリズムのバージョンを確認し、そのバージョンを示す情報を通信部２０１に入力する。バージョンを示す情報が入力されると、通信部２０１は、ネットワーク５０を介して、バージョンを示す情報を端末装置１００に送信する。
【００６２】
以上、サーバ装置２００の機能構成について説明した。
【００６３】
［１−４：端末装置１００の動作］
次に、図４、図５を参照しながら、本実施形態に係る端末装置１００の動作について説明する。図４、図５は、本実施形態に係る端末装置１００の動作について説明するための説明図である。
【００６４】
（１−４−１：全体的な処理の流れ）
まず、端末装置１００による全体的な処理の流れについて説明する。
【００６５】
図４に示すように、まず、情報入力部１０１を介して処理すべき情報が入力される（Ｓ１０１）。処理すべき情報が入力されると、端末装置１００は、通信部１０４から通信環境の情報を取得し、負荷検知部１０７から負荷の情報を取得し、蓄電量検知部１０８から蓄電量の情報を取得し、情報処理部１０５からバージョンの情報を取得する（Ｓ１０２）。次いで、端末装置１００は、判定部１０３の機能により、処理すべき情報の処理主体を情報処理部１０５（端末装置１００）にするか、サーバ装置２００にするかを判定する（Ｓ１０３）。そして、端末装置１００は、その判定の結果を確認し、処理主体として情報処理部１０５（判定結果＝端末装置）が選択されたか否かを判断する（Ｓ１０４）。
【００６６】
処理主体として情報処理部１０５が選択された場合（判定結果＝端末装置）、端末装置１００は、処理をステップＳ１０５に進める。一方、処理主体としてサーバ装置２００が選択された場合（判定結果＝サーバ装置）、端末装置１００は、処理をステップＳ１０６に進める。処理をステップＳ１０５に進めた場合、端末装置１００は、依頼先切替部１０２の機能により、処理すべき情報を情報処理部１０５に入力する（Ｓ１０５）。処理すべき情報が入力されると、情報処理部１０５は、入力された処理すべき情報に対する処理を実行する。情報処理部１０５の機能により処理を実行した端末装置１００は、処理をステップＳ１０８に進める。
【００６７】
一方、処理をステップＳ１０６に進めた場合、端末装置１００は、依頼先切替部１０２の機能により、処理すべき情報に対する処理をサーバ装置２００に依頼する（Ｓ１０６）。このとき、端末装置１００は、通信部１０４の機能により、処理すべき情報をサーバ装置２００に送信する。処理すべき情報を受信したサーバ装置２００は、情報処理部２０２の機能により、受信した処理すべき情報に対する処理を実行する。サーバ装置２００による処理の結果は、ネットワーク５０を介して端末装置１００に送信される。端末装置１００は、通信部１０４の機能によりサーバ装置２００から処理結果を受信し（Ｓ１０７）、処理をステップＳ１０８に進める。
【００６８】
処理をステップＳ１０８に進めると、端末装置１００は、情報処理部１０５の機能により実行した処理の結果、又は通信部１０４により受信した処理結果を出力する（Ｓ１０８）。
【００６９】
以上、端末装置１００による全体的な処理の流れについて説明した。
【００７０】
（１−４−２：判定方法について）
次に、判定部１０３による判定方法（上記のステップＳ１０３）について、より詳細に説明する。
【００７１】
図５に示すように、判定の動作が開始されると、判定部１０３は、通信環境が高速であるか否かを判断する（Ｓ１１１）。例えば、判定部１０３は、利用可能な通信回線が低速な回線であるか、高速な回線であるか、通信回線自体が利用不可能であるか、帯域幅が狭いか、帯域幅が広いかなどを判定し、実質的に高速な通信が可能な通信環境にあるか否かを判断する。通信回線が低速な回線である場合や通信回線自体が利用不可能な場合、判定部１０３は、通信環境≠高速と判断する。また、高速な回線を利用可能であっても、帯域幅が狭い場合、判定部１０３は、通信環境≠高速と判断する。一方、高速な回線を利用可能であり、帯域幅が広い場合、判定部１０３は、通信環境＝高速と判断する。
【００７２】
通信環境≠高速と判断した場合、判定部１０３は、処理をステップＳ１１２に進める。一方、通信環境＝高速と判断した場合、判定部１０３は、処理をステップＳ１１３に進める。処理をステップＳ１１２に進めた場合、判定部１０３は、処理主体として情報処理部１０５を選択し（Ｓ１１２；判定結果＝端末装置）、一連の処理を終了する。一方、処理をステップＳ１１３に進めた場合、判定部１０３は、情報処理部１０５の処理負荷が低いか否かを判断する（Ｓ１１３）。処理負荷が低い場合、判定部１０３は、処理をステップＳ１１４に進める。一方、処理負荷が高い場合、判定部１０３は、処理をステップＳ１１５に進める。
【００７３】
ステップＳ１１４に処理を進めた場合、判定部１０３は、処理主体として情報処理部１０５を選択し（Ｓ１１４；判定結果＝端末装置）、一連の処理を終了する。一方、処理をステップＳ１１５に進めた場合、判定部１０３は、蓄電部１０９の蓄電量が所定量よりも多いか否かを判断する（Ｓ１１５）。蓄電量が所定量よりも多い場合、判定部１０３は、処理をステップＳ１１６に進める。一方、蓄電量が所定量よりも少ない場合、判定部１０３は、処理をステップＳ１１７に進める。処理をステップＳ１１６に進めた場合、判定部１０３は、処理主体として情報処理部１０５を選択し（Ｓ１１６；判定結果＝端末装置）、一連の処理を終了する。
【００７４】
一方、処理をステップＳ１１７に進めた場合、判定部１０３は、情報処理部１０５が処理に利用しているアルゴリズムのバージョンと、サーバ装置２００が処理に利用しているアルゴリズムのバージョンとを比較する（Ｓ１１７）。情報処理部１０５が処理に利用しているアルゴリズムのバージョンに対して、サーバ装置２００が処理に利用しているアルゴリズムのバージョンが同じか新しい場合、判定部１０３は、処理をステップＳ１１９に進める。一方、情報処理部１０５が処理に利用しているアルゴリズムのバージョンに対してと、サーバ装置２００が処理に利用しているアルゴリズムのバージョンが古い場合、判定部１０３は、処理をステップＳ１１８に進める。
【００７５】
処理をステップＳ１１８に進めた場合、判定部１０３は、処理主体として情報処理部１０５を選択し（Ｓ１１８；判定結果＝端末装置）、一連の処理を終了する。一方、処理をステップＳ１１９に進めた場合、判定部１０３は、処理主体としてサーバ装置２００を選択し（Ｓ１１９；判定結果＝サーバ装置）、一連の処理を終了する。なお、ステップＳ１１１、Ｓ１１３、Ｓ１１５、Ｓ１１７の順番は任意に変更することができる。つまり、図５の処理フローは一例であり、通信環境、処理負荷、蓄電量、バージョンに関する判定処理は、どのような順番で実行されてもよい。また、ステップＳ１１１、Ｓ１１３、Ｓ１１５、Ｓ１１７の全ての処理を行う必要はなく、そのうち１つ以上の処理だけを選択的に行っても構わない。その場合であっても端末装置がおかれている状況に応じて処理主体を適切に選択することが可能である。ここでは、冗長を避けるために全てのパターンについて記載することは控える。
【００７６】
図５の例では、通信環境＝高速の場合、処理主体としてサーバ装置２００が選択されるように判定方法が決められていた。しかしながら、状況によっては通信環境≠高速であってもサーバ装置２００を利用した方が効率的な場合がある。逆に、状況によっては通信環境＝高速であっても情報処理部１０５を利用した方が効率的な場合もある。そのため、判定部１０３による判定方法は、図６〜図８のような構成にしてもよい。
【００７７】
（判定方法＃１：通信環境と蓄電量の組み合わせ）
まず、図６を参照する。図６の例は、処理負荷が低く、情報処理部１０５とサーバ装置２００とで利用しているアルゴリズムのバージョンが同じであることを前提としている。
【００７８】
当然のことながら、通信回線が利用不可の場合、サーバ装置２００を利用することはできない。そのため、通信環境＝通信不可の場合、判定部１０３は、処理主体として情報処理部１０５を選択する（判定結果＝端末装置）。また、通信回線が高速な回線の場合、少ない通信コストでサーバ装置２００を利用することができる。この状況ではサーバ装置２００を利用した方が効率的な場合がある。例えば、サーバ装置２００を利用することで消費電力を低減させることが可能になる。そのため、判定部１０３は、処理主体としてサーバ装置２００を選択する（判定結果＝サーバ装置）。
【００７９】
一方、通信回線が低速な回線の場合、高速な回線を利用している場合に比べて通信コストが大きい。例えば、高速な回線を利用している場合に比べ、サーバ装置２００との間で情報をやり取りする際に発生する通信時間が長い。情報処理部１０５で処理を実行するよりも、処理能力の高いサーバ装置２００で処理を実行する方が短い時間で処理を完了させることができるが、通信時間が長い場合には、情報処理部１０５で処理を実行する方が短い時間で処理が完了することになる。但し、情報処理部１０５で処理を実行する場合、蓄電部１０９の蓄電量がより早く減少することになる。
【００８０】
そこで、図６の例では、通信環境＝低速の場合、蓄電量が所定量よりも多いときには処理主体として情報処理部１０５を選択し（判定結果＝端末装置）、蓄電量が所定量よりも少ないときには処理主体としてサーバ装置２００を選択する（判定結果＝サーバ装置）。このような構成にすると、蓄電量が少ない場合には、蓄電部１０９に蓄えられた電力で駆動可能な時間を延ばすことができる。一方、蓄電量が多い場合には、処理結果を短い時間で得ることが可能になる。なお、蓄電量が多い場合と同様に、外部電源が端末装置１００に接続されている場合にも、蓄電量が多い場合と同じ判定結果が出るように構成される。
【００８１】
（判定方法＃２：通信環境と処理負荷の組み合わせ）
次に、図７を参照する。図７の例は、蓄電量が多く、情報処理部１０５とサーバ装置２００とで利用しているアルゴリズムのバージョンが同じであることを前提としている。
【００８２】
当然のことながら、通信回線が利用不可の場合、サーバ装置２００を利用することはできない。そのため、通信環境＝通信不可の場合、判定部１０３は、処理主体として情報処理部１０５を選択する（判定結果＝端末装置）。また、通信回線が高速な回線の場合、少ない通信コストでサーバ装置２００を利用することができる。この状況ではサーバ装置２００を利用した方が効率的な場合がある。例えば、サーバ装置２００を利用することで消費電力を低減させることが可能になる。そのため、判定部１０３は、処理主体としてサーバ装置２００を選択する（判定結果＝サーバ装置）。
【００８３】
一方、通信回線が低速な回線の場合、高速な回線を利用している場合に比べて通信コストが大きい。例えば、高速な回線を利用している場合に比べ、サーバ装置２００との間で情報をやり取りする際に発生する通信時間が長い。情報処理部１０５で処理を実行するよりも、処理能力の高いサーバ装置２００で処理を実行する方が短い時間で処理を完了させることができるが、通信時間が長い場合には、情報処理部１０５で処理を実行する方が短い時間で処理が完了することになる。但し、情報処理部１０５の処理負荷が高い場合、情報処理部１０５で処理を実行すると、処理の完了までに長い時間がかかってしまう。
【００８４】
そこで、図７の例では、通信環境＝低速の場合、処理負荷が高いときには処理主体としてサーバ装置２００を選択し（判定結果＝サーバ装置）、処理負荷が低いときには処理主体として情報処理部１０５を選択する（判定結果＝端末装置）。このような構成にすると、状況に応じて効率的に処理を実行できる処理主体が選択されることにより、処理結果を得るまでに要する時間を短縮することが可能になる。
【００８５】
（判定方法＃３：通信環境とバージョンの組み合わせ）
次に、図８を参照する。図８の例は、処理負荷が低く、蓄電量が多いことを前提としている。
【００８６】
当然のことながら、通信回線が利用不可の場合、サーバ装置２００を利用することはできない。そのため、通信環境＝通信不可の場合、判定部１０３は、処理主体として情報処理部１０５を選択する（判定結果＝端末装置）。また、通信回線が高速な回線の場合、少ない通信コストでサーバ装置２００を利用することができる。この状況ではサーバ装置２００を利用した方が効率的な場合がある。例えば、サーバ装置２００を利用することで消費電力を低減させることが可能になる。但し、情報処理部１０５の処理能力が高い場合、通信コストを省略できる分だけ、サーバ装置２００を利用するよりも情報処理部１０５を利用する方が効率的に処理を実行できる場合もある。
【００８７】
しかし、サーバ装置２００により利用されているアルゴリズムの方が情報処理部１０５により利用されているアルゴリズムよりも新しいことがある。新しいアルゴリズムは、新しい機能が利用可能になっていたり、処理の効率化が図られていたりする。そのため、古いアルゴリズムを利用するよりも、新しいアルゴリズムを利用する方が好ましい。但し、新しいアルゴリズムを利用する際、処理主体の能力が問われることがある。例えば、情報処理部１０５の処理能力や、新しいアルゴリズムを格納しておく記憶部１０６の記憶容量が足りない場合、情報処理部１０５で新しいアルゴリズムを利用できないことがある。
【００８８】
多くの場合、新しいアルゴリズムが開発されると、サーバ装置２００から端末装置１００に提供されるが、上記のような理由で端末装置１００に新しいアルゴリズムを適用できないことがある。このような場合、端末装置１００は、処理を情報処理部１０５で実行せず、サーバ装置２００に処理を代行させる方が好ましい。こうした理由から、図８の例では、サーバ装置２００が利用しているアルゴリズムのバージョンが新しい場合（サーバ＞端末）、通信が可能な状況であればサーバ装置２００を積極的に利用するように構成されている。このような構成にすることにより、新しいアルゴリズムを利用できない端末装置１００であっても、新しいアルゴリズムを利用して処理を実行することが可能になる。
【００８９】
以上、端末装置１００による判定方法の詳細について説明した。
【００９０】
以上、本発明の第１実施形態について説明した。上記のように、本実施形態に係る技術を適用することにより、端末装置１００がおかれている状況に応じて処理主体を適切に切り替えることが可能になる。その結果、情報を効率的に処理することが可能になり、処理の高速化や省電力化に寄与する。
【００９１】
＜２：第２実施形態＞
次に、本発明の第２実施形態について説明する。なお、本実施形態に係る情報処理システム１０の構成は、上記の第１実施形態に係る情報処理システム１０の構成と実質的に同じであるため説明を省略する。また、その他の点についても、上記の第１実施形態と実質的に同じ構成要素に関する詳細な説明は省略する。
【００９２】
［２−１：端末装置１００の機能構成］
まず、図９を参照しながら、本実施形態に係る端末装置１００の機能構成について説明する。図９は、本実施形態に係る端末装置１００の機能構成について説明するための説明図である。
【００９３】
図９に示すように、端末装置１００は、主に、情報入力部１３１と、依頼先切替部１３２と、判定部１３３と、通信部１３４と、情報処理部１３５と、記憶部１３６と、負荷検知部１３７と、蓄電量検知部１３８と、蓄電部１３９と、アルゴリズム取得部１４０とにより構成される。
【００９４】
情報入力部１３１は、処理すべき情報を入力するための手段である。情報入力部１３１に入力された情報は、依頼先切替部１３２に入力される。依頼先切替部１３２は、入力された情報の処理を情報処理部１３５に依頼するか、サーバ装置２００に依頼するかを切り替える手段である。但し、依頼先切替部１３２は、判定部１３３による判定結果に応じて処理の依頼先を切り替える。判定部１３３は、通信環境、処理負荷、及び蓄電量に応じて処理の依頼先を判定する手段である。
【００９５】
判定部１３３には、通信部１３４から通信環境が通知される。また、判定部１３３には、負荷検知部１３７から情報処理部１３５の負荷状況を示す情報が入力される。さらに、判定部１３３には、蓄電量検知部１３８から蓄電部１３９の蓄電量を示す情報が入力される。そして、判定部１３３には、情報処理部１３５において処理に用いているアルゴリズムのバージョンを示す情報が入力される。これらの情報が入力されると、判定部１３３は、入力された情報に基づき、処理主体を情報処理部１３５にするか、サーバ装置２００にするかを判定する。判定部１３３による判定結果は、依頼先切替部１３２に入力される。
【００９６】
判定部１３３による判定結果が情報処理部１３５を示す場合、依頼先切替部１３２は、情報入力部１３１から入力された情報を情報処理部１３５に入力する。情報が入力されると、情報処理部１３５は、記憶部１３６に格納されたアルゴリズムに基づき、入力された情報を処理し、その処理結果を出力する。なお、処理を実行する際、情報処理部１３５は、必要に応じて記憶部１３６を利用する。一方、判定部１３３による判定結果がサーバ装置２００を示す場合、依頼先切替部１３２は、情報入力部１３１から入力された情報を通信部１３４に入力する。情報が入力された通信部１３４は、ネットワーク５０を通じて、入力された情報をサーバ装置２００に送信する。また、通信部１３４は、サーバ装置２００から送信された処理結果を受信し、その処理結果を出力する。
【００９７】
また、判定部１３３は、情報処理部１３５により利用されているアルゴリズムのバージョンと、サーバ装置２００により利用されているアルゴリズムのバージョンとを比較する。情報処理部１３５により利用されているアルゴリズムよりも、サーバ装置２００により利用されているアルゴリズムの方が新しい場合、判定部１３３は、その比較結果をアルゴリズム取得部１４０に入力する。比較結果が入力されると、アルゴリズム取得部１４０は、通信部１３４を介してサーバ装置２００に最新のアルゴリズムを要求する。この要求に応じてサーバ装置２００から最新のアルゴリズムが送信されると、アルゴリズム取得部１４０は、通信部１３４を介して最新のアルゴリズムを受信する。
【００９８】
最新のアルゴリズムを受信すると、アルゴリズム取得部１４０は、受信した最新のアルゴリズムを情報処理部１３５に入力し、情報処理部１３５にアルゴリズムを更新させる。最新のアルゴリズムが入力されると、情報処理部１３５は、記憶部１３６に格納されているアルゴリズムを最新のアルゴリズムに更新する。このように、バージョンの比較結果に応じてアルゴリズムを更新することにより、情報処理部１３５でも最新のアルゴリズムを利用した処理を実行することが可能になる。
【００９９】
以上、本実施形態に係る端末装置１００の機能構成について説明した。なお、判定部１３３の判定処理は上記の第１実施形態に係る判定部１０３の判定処理と実質的に同じであるため、判定部１３３の判定処理に係る詳細な説明は省略した。
【０１００】
［２−２：サーバ装置２００の機能構成］
次に、図１０を参照しながら、本実施形態に係るサーバ装置２００の機能構成について説明する。図１０は、本実施形態に係るサーバ装置２００の機能構成について説明するための説明図である。
【０１０１】
図１０に示すように、サーバ装置２００は、主に、通信部２３１と、情報処理部２３２と、記憶部２３３と、アルゴリズム提供部２３４とにより構成される。なお、図１に示した情報処理システム１０には複数のサーバ装置２００が記載されていたが、これら複数のサーバ装置２００は、いずれも図１０に示すサーバ装置２００と実質的に同じ構成を有するものとする。
【０１０２】
先に述べたように、端末装置１００により処理主体としてサーバ装置２００が選択されると、端末装置１００からサーバ装置２００に処理すべき情報が送信される。端末装置１００から送信された処理すべき情報は、ネットワーク５０を介してサーバ装置２００に伝送され、通信部２３１により受信される。処理すべき情報を受信すると、通信部２３１は、受信した処理すべき情報を情報処理部２３２に入力する。
【０１０３】
処理すべき情報が入力されると、情報処理部２３２は、記憶部２３３に格納されたアルゴリズムに基づき、入力された処理すべき情報を処理し、その処理結果を出力する。なお、処理を実行する際、情報処理部２３２は、必要に応じて記憶部２３３を利用する。情報処理部２３２により出力された処理結果は、通信部２３１に入力される。処理結果が入力されると、通信部２３１は、ネットワーク５０を介して、入力された処理結果を端末装置１００に送信する。
【０１０４】
また、端末装置１００からアルゴリズムのバージョンに関する問い合わせを受けた場合、サーバ装置２００は、情報処理部２３２が処理に利用しているアルゴリズムのバージョンを端末装置１００に通知する。まず、ネットワーク５０を介して問い合わせを受けると、通信部２３１は、その問い合わせを受信し、情報処理部２３２に通知する。この通知を受けた情報処理部２３２は、処理に利用しているアルゴリズムのバージョンを確認し、そのバージョンを示す情報を通信部２３１に入力する。バージョンを示す情報が入力されると、通信部２３１は、ネットワーク５０を介して、バージョンを示す情報を端末装置１００に送信する。
【０１０５】
また、端末装置１００から最新のアルゴリズムを要求された場合、その要求は、通信部２３１を介してアルゴリズム提供部２３４に通知される。この通知を受けると、アルゴリズム提供部２３４は、情報処理部２３２から最新のアルゴリズムを取得する。そして、アルゴリズム提供部２３４は、通信部２３１を介して、取得した最新のアルゴリズムを端末装置１００に提供する。
【０１０６】
以上、サーバ装置２００の機能構成について説明した。
【０１０７】
［２−３：端末装置１００の動作］
次に、図１１、図１２を参照しながら、本実施形態に係る端末装置１００の動作について説明する。図１１、図１２は、本実施形態に係る端末装置１００の動作について説明するための説明図である。
【０１０８】
（２−３−１：全体的な処理の流れ）
まず、端末装置１００による全体的な処理の流れについて説明する。
【０１０９】
図１１に示すように、まず、情報入力部１３１を介して処理すべき情報が入力される（Ｓ２０１）。処理すべき情報が入力されると、端末装置１００は、通信部１３４から通信環境の情報を取得し、負荷検知部１３７から負荷の情報を取得し、蓄電量検知部１３８から蓄電量の情報を取得し、情報処理部１３５からバージョンの情報を取得する（Ｓ２０２）。次いで、端末装置１００は、判定部１３３の機能により、処理すべき情報の処理主体を情報処理部１３５（端末装置１００）にするか、サーバ装置２００にするかを判定する（Ｓ２０３）。そして、端末装置１００は、その判定の結果を確認し、処理主体として情報処理部１３５（判定結果＝端末装置）が選択されたか否かを判断する（Ｓ２０４）。
【０１１０】
処理主体として情報処理部１３５が選択された場合（判定結果＝端末装置）、端末装置１００は、処理をステップＳ２０５に進める。一方、処理主体としてサーバ装置２００が選択された場合（判定結果＝サーバ装置）、端末装置１００は、処理をステップＳ２０６に進める。処理をステップＳ２０５に進めた場合、端末装置１００は、依頼先切替部１３２の機能により、処理すべき情報を情報処理部１３５に入力する（Ｓ２０５）。処理すべき情報が入力されると、情報処理部１３５は、入力された処理すべき情報に対する処理を実行する。情報処理部１３５の機能により処理を実行した端末装置１００は、処理をステップＳ２０８に進める。
【０１１１】
一方、処理をステップＳ２０６に進めた場合、端末装置１００は、依頼先切替部１３２の機能により、処理すべき情報に対する処理をサーバ装置２００に依頼する（Ｓ２０６）。このとき、端末装置１００は、通信部１３４の機能により、処理すべき情報をサーバ装置２００に送信する。処理すべき情報を受信したサーバ装置２００は、情報処理部２０２の機能により、受信した処理すべき情報に対する処理を実行する。サーバ装置２００による処理の結果は、ネットワーク５０を介して端末装置１００に送信される。端末装置１００は、通信部１３４の機能によりサーバ装置２００から処理結果を受信し（Ｓ２０７）、処理をステップＳ２０８に進める。
【０１１２】
処理をステップＳ２０８に進めると、端末装置１００は、情報処理部１３５の機能により実行した処理の結果、又は通信部１３４により受信した処理結果を出力する（Ｓ２０８）。
【０１１３】
以上、端末装置１００による全体的な処理の流れについて説明した。
【０１１４】
（２−３−２：判定方法について）
次に、判定部１３３による判定方法（上記のステップＳ２０３）について、より詳細に説明する。
【０１１５】
図１２に示すように、判定の動作が開始されると、判定部１３３は、情報処理部１３５が処理に利用しているアルゴリズムのバージョンと、サーバ装置２００が処理に利用しているアルゴリズムのバージョンとを比較する（Ｓ２１１）。情報処理部１３５が処理に利用しているアルゴリズムのバージョンが、サーバ装置２００が処理に利用しているアルゴリズムのバージョンに対して同じか新しい場合、判定部１３３は、処理をステップＳ２１３に進める。一方、情報処理部１３５が処理に利用しているアルゴリズムのバージョンが、サーバ装置２００が処理に利用しているアルゴリズムのバージョンよりも古い場合、判定部１３３は、処理をステップＳ２１２に進める。処理がステップＳ２１２に進められた場合、端末装置１００は、アルゴリズム取得部１４０の機能により、最新のアルゴリズムをサーバ装置２００からダウンロードし、処理をステップＳ２１３に進める。
【０１１６】
次いで、判定部１３３は、通信環境が高速であるか否かを判断する（Ｓ２１３）。例えば、判定部１３３は、利用可能な通信回線が低速な回線であるか、高速な回線であるか、通信回線自体が利用不可能であるか、帯域幅が狭いか、帯域幅が広いかなどを判定し、実質的に高速な通信が可能な通信環境にあるか否かを判断する。通信回線が低速な回線である場合や通信回線自体が利用不可能な場合、判定部１３３は、通信環境≠高速と判断する。また、高速な回線を利用可能であっても、帯域幅が狭い場合、判定部１３３は、通信環境≠高速と判断する。一方、高速な回線を利用可能であり、帯域幅が広い場合、判定部１３３は、通信環境＝高速と判断する。
【０１１７】
通信環境≠高速と判断した場合、判定部１３３は、処理をステップＳ２１４に進める。一方、通信環境＝高速と判断した場合、判定部１３３は、処理をステップＳ２１５に進める。処理をステップＳ２１４に進めた場合、判定部１３３は、処理主体として情報処理部１３５を選択し（Ｓ２１４；判定結果＝端末装置）、一連の処理を終了する。一方、処理をステップＳ２１５に進めた場合、判定部１３３は、情報処理部１３５の処理負荷が低いか否かを判断する（Ｓ２１５）。処理負荷が低い場合、判定部１３３は、処理をステップＳ２１６に進める。一方、処理負荷が高い場合、判定部１３３は、処理をステップＳ２１７に進める。
【０１１８】
ステップＳ２１６に処理を進めた場合、判定部１３３は、処理主体として情報処理部１３５を選択し（Ｓ２１６；判定結果＝端末装置）、一連の処理を終了する。一方、処理をステップＳ２１７に進めた場合、判定部１３３は、蓄電部１３９の蓄電量が所定量よりも多いか否かを判断する（Ｓ２１７）。蓄電量が所定量よりも多い場合、判定部１３３は、処理をステップＳ２１８に進める。一方、蓄電量が所定量よりも少ない場合、判定部１３３は、処理をステップＳ２１９に進める。処理をステップＳ２１８に進めた場合、判定部１３３は、処理主体として情報処理部１３５を選択し（Ｓ２１８；判定結果＝端末装置）、一連の処理を終了する。
【０１１９】
一方、処理をステップＳ２１９に進めた場合、判定部１３３は、処理主体としてサーバ装置２００を選択し（Ｓ２１９；判定結果＝サーバ装置）、一連の処理を終了する。なお、ステップＳ２１１、Ｓ２１３、Ｓ２１５、Ｓ２１７の順番は任意に変更することができる。つまり、図１２の処理フローは一例であり、通信環境、処理負荷、蓄電量、バージョンに関する判定処理は、どのような順番で実行されてもよい。また、ステップＳ２１１、Ｓ２１３、Ｓ２１５、Ｓ２１７の全ての処理を行う必要はなく、そのうち１つ以上の処理だけを選択的に行っても構わない。その場合であっても端末装置がおかれている状況に応じて処理主体を適切に選択することが可能である。ここでは、冗長を避けるために全てのパターンについて記載することは控える。
【０１２０】
以上、端末装置１００による判定方法の詳細について説明した。
【０１２１】
以上、本発明の第１実施形態について説明した。上記のように、本実施形態に係る技術を適用することにより、端末装置１００がおかれている状況に応じて処理主体を適切に切り替えることが可能になる。その結果、情報を効率的に処理することが可能になり、処理の高速化や省電力化に寄与する。
【０１２２】
＜３：第３実施形態＞
次に、本発明の第３実施形態について説明する。なお、本実施形態に係る情報処理システム１０の構成は、上記の第１実施形態に係る情報処理システム１０の構成と実質的に同じであるため説明を省略する。また、その他の点についても、上記の第１実施形態と実質的に同じ構成要素に関する詳細な説明は省略する。
【０１２３】
［３−１：端末装置１００の機能構成］
まず、図１３を参照しながら、本実施形態に係る端末装置１００の機能構成について説明する。図１３は、本実施形態に係る端末装置１００の機能構成について説明するための説明図である。なお、本実施形態に係る端末装置１００は、入力された静止画から動画を生成する動画生成装置として機能する。
【０１２４】
図１３に示すように、端末装置１００は、主に、画像入力部１５１と、依頼先切替部１５２と、判定部１５３と、通信部１５４と、動画生成部１５５と、記憶部１５６と、負荷検知部１５７と、蓄電量検知部１５８と、蓄電部１５９とにより構成される。
【０１２５】
画像入力部１５１は、静止画を入力するための手段である。画像入力部１５１に入力された静止画は、依頼先切替部１５２に入力される。依頼先切替部１５２は、入力された静止画の処理を動画生成部１５５に依頼するか、サーバ装置２００に依頼するかを切り替える手段である。但し、依頼先切替部１５２は、判定部１５３による判定結果に応じて処理の依頼先を切り替える。判定部１５３は、通信環境、処理負荷、蓄電量、及び、処理に用いるアルゴリズムのバージョンに応じて処理の依頼先を判定する手段である。
【０１２６】
判定部１５３には、通信部１５４から通信環境が通知される。また、判定部１５３には、負荷検知部１５７から動画生成部１５５の負荷状況を示す情報が入力される。さらに、判定部１５３には、蓄電量検知部１５８から蓄電部１５９の蓄電量を示す情報が入力される。そして、判定部１５３には、動画生成部１５５において処理に用いているアルゴリズムのバージョンを示す情報が入力される。これらの情報が入力されると、判定部１５３は、入力された情報に基づき、処理主体を動画生成部１５５にするか、サーバ装置２００にするかを判定する。判定部１５３による判定結果は、依頼先切替部１５２に入力される。
【０１２７】
判定部１５３による判定結果が動画生成部１５５を示す場合、依頼先切替部１５２は、画像入力部１５１から入力された静止画を動画生成部１５５に入力する。静止画が入力されると、動画生成部１５５は、記憶部１５６に格納されたアルゴリズムに基づき、入力された静止画から動画を生成し、その動画を出力する。なお、動画の生成処理を実行する際、動画生成部１５５は、必要に応じて記憶部１５６を利用する。一方、判定部１５３による判定結果がサーバ装置２００を示す場合、依頼先切替部１５２は、画像入力部１５１から入力された静止画を通信部１５４に入力する。静止画が入力された通信部１５４は、ネットワーク５０を通じて、入力された静止画をサーバ装置２００に送信する。また、通信部１５４は、サーバ装置２００から送信された動画を受信し、その動画を出力する。
【０１２８】
以上、端末装置１００の機能構成について説明した。
【０１２９】
［３−２：サーバ装置２００の機能構成］
次に、図１４を参照しながら、本実施形態に係るサーバ装置２００の機能構成について説明する。図１４は、本実施形態に係るサーバ装置２００の機能構成について説明するための説明図である。なお、本実施形態に係るサーバ装置２００は、入力された静止画から動画を生成する動画生成装置として機能する。
【０１３０】
図１４に示すように、サーバ装置２００は、主に、通信部２５１と、動画生成部２５２と、記憶部２５３とにより構成される。
【０１３１】
先に述べたように、端末装置１００により処理主体としてサーバ装置２００が選択されると、端末装置１００からサーバ装置２００に静止画が送信される。端末装置１００から送信された静止画は、ネットワーク５０を介してサーバ装置２００に伝送され、通信部２５１により受信される。静止画を受信すると、通信部２５１は、受信した静止画を動画生成部２５２に入力する。
【０１３２】
静止画が入力されると、動画生成部２５２は、記憶部２５３に格納されたアルゴリズムに基づき、入力された静止画から動画を生成し、その動画を出力する。なお、動画の生成処理を実行する際、動画生成部２５２は、必要に応じて記憶部２５３を利用する。動画生成部２５２により出力された動画は、通信部２５１に入力される。動画が入力されると、通信部２５１は、ネットワーク５０を介して、入力された動画を端末装置１００に送信する。
【０１３３】
また、端末装置１００からアルゴリズムのバージョンに関する問い合わせを受けた場合、サーバ装置２００は、動画生成部２５２が動画の生成処理に利用しているアルゴリズムのバージョンを端末装置１００に通知する。まず、ネットワーク５０を介して問い合わせを受けると、通信部２５１は、その問い合わせを受信し、動画生成部２５２に通知する。この通知を受けた動画生成部２５２は、動画の生成処理に利用しているアルゴリズムのバージョンを確認し、そのバージョンを示す情報を通信部２５１に入力する。バージョンを示す情報が入力されると、通信部２５１は、ネットワーク５０を介して、バージョンを示す情報を端末装置１００に送信する。
【０１３４】
以上、サーバ装置２００の機能構成について説明した。
【０１３５】
≪動画生成部１５５、２５２の機能≫
ここで、図１５を参照しながら、動画生成部１５５、２５２の機能について、より詳細に説明する。図１５は、動画生成部１５５、２５２の機能について説明するための説明図である。
【０１３６】
図１５に示すように動画生成部１５５、２５２は、ＪＰＥＧデコーダ３０１と、エフェクタ３０２と、ＡＶＣエンコーダ３０３と、バッファ３０４とにより構成される。なお、エフェクタ３０２には、エフェクトテンプレートが入力されるものとする。また、動画生成部１５５、２５２に入力される静止画は、ＪＰＥＧ形式でエンコードされているものとする。但し、ＪＰＥＧは、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐの略である。また、ＡＶＣは、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇの略である。
【０１３７】
まず、動画生成部１５５、２５２に静止画が入力されると、その静止画はＪＰＥＧデコーダ３０１に入力される。静止画が入力されると、ＪＰＥＧデコーダ３０１は、ＪＰＥＧ形式で符号化されている静止画に復号処理を施し、静止画のベースバンドデータ（以下、ベースバンド静止画）を生成する。ＪＰＥＧデコーダ３０１により生成されたベースバンド静止画は、エフェクタ３０２に入力される。ベースバンド静止画が入力されると、エフェクタ３０２は、エフェクトテンプレートを利用してベースバンド静止画から動画のベースバンドデータ（以下、ベースバンド動画）を生成する。
【０１３８】
エフェクタ３０２により生成されたベースバンド動画は、ＡＶＣエンコーダ３０３に入力される。ベースバンド動画が入力されると、ＡＶＣエンコーダ３０３は、入力されたベースバンド動画をＨ．２６４／ＡＶＣなどの形式で符号化し、動画（ＡＶＣビットストリーム）を生成する。このとき、ＡＶＣエンコーダ３０３は、バッファ３０４を利用して、ベースバンド動画にフレーム内圧縮符号化やフレーム間圧縮符号化などの処理を施す。そして、ＡＶＣエンコーダ３０３により生成された動画（ＡＶＣビットストリーム）は、動画生成部１５５、２５２から出力される。
【０１３９】
以上、動画生成部１５５、２５２の機能について説明した。なお、上記の説明では、説明の都合上、入力される静止画の形式がＪＰＥＧであるとし、出力される動画の形式がＡＶＣであると仮定した。しかし、本実施形態に係る技術の適用範囲はこれに限定されず、入力される静止画の形式がＪＰＥＧ以外であってもよいし、出力される動画の形式がＡＶＣ以外であってもよい。
【０１４０】
［３−３：端末装置１００の動作］
次に、図１６、図１７を参照しながら、本実施形態に係る端末装置１００の動作について説明する。図１６、図１７は、本実施形態に係る端末装置１００の動作について説明するための説明図である。
【０１４１】
（３−３−１：全体的な処理の流れ）
まず、端末装置１００による全体的な処理の流れについて説明する。
【０１４２】
図１６に示すように、まず、画像入力部１５１を介して静止画が入力される（Ｓ３０１）。静止画が入力されると、端末装置１００は、通信部１５４から通信環境の情報を取得し、負荷検知部１５７から負荷の情報を取得し、蓄電量検知部１５８から蓄電量の情報を取得し、動画生成部１５５からバージョンの情報を取得する（Ｓ３０２）。次いで、端末装置１００は、判定部１５３の機能により、静止画の処理主体を動画生成部１５５（端末装置１００）にするか、サーバ装置２００にするかを判定する（Ｓ３０３）。そして、端末装置１００は、その判定の結果を確認し、処理主体として動画生成部１５５（判定結果＝端末装置）が選択されたか否かを判断する（Ｓ３０４）。
【０１４３】
処理主体として動画生成部１５５が選択された場合（判定結果＝端末装置）、端末装置１００は、処理をステップＳ３０５に進める。一方、処理主体としてサーバ装置２００が選択された場合（判定結果＝サーバ装置）、端末装置１００は、処理をステップＳ３０６に進める。処理をステップＳ３０５に進めた場合、端末装置１００は、依頼先切替部１５２の機能により、静止画を動画生成部１５５に入力する（Ｓ３０５）。静止画が入力されると、動画生成部１５５は、入力された静止画から動画を生成する。動画生成部１５５の機能により動画を生成した端末装置１００は、処理をステップＳ３０８に進める。
【０１４４】
一方、処理をステップＳ３０６に進めた場合、端末装置１００は、依頼先切替部１５２の機能により、静止画に対する処理をサーバ装置２００に依頼する（Ｓ３０６）。このとき、端末装置１００は、通信部１５４の機能により、静止画をサーバ装置２００に送信する。静止画を受信したサーバ装置２００は、情報処理部２０２の機能により、受信した静止画から動画を生成する。サーバ装置２００により生成された動画は、ネットワーク５０を介して端末装置１００に送信される。端末装置１００は、通信部１５４の機能によりサーバ装置２００から動画を受信し（Ｓ３０７）、処理をステップＳ３０８に進める。
【０１４５】
処理をステップＳ３０８に進めると、端末装置１００は、動画生成部１５５の機能により生成された動画、又は通信部１５４から受信した動画を出力する（Ｓ３０８）。
【０１４６】
以上、端末装置１００による全体的な処理の流れについて説明した。
【０１４７】
（３−３−２：動画生成方法について）
次に、動画生成方法について簡単に説明を補足する。
【０１４８】
図１７に示すように、まず、動画生成部１５５、２５２に静止画が入力される（Ｓ３１１）。次いで、動画生成部１５５、２５２は、ＪＰＥＧデコーダ３０１の機能により、入力された静止画からベースバンド静止画を生成する（Ｓ３１２）。次いで、動画生成部１５５、２５２は、エフェクタ３０２の機能により、ベースバンド静止画からベースバンド動画を生成する（Ｓ３１３）。次いで、動画生成部１５５、２５２は、ＡＶＣエンコーダ３０３の機能により、ベースバンド動画をエンコードして動画（ＡＶＣビットストリーム）を生成する（Ｓ３１４）。次いで、動画生成部１５５、２５２は、生成した動画（ＡＶＣビットストリーム）を出力し（Ｓ３１５）、動画生成に係る一連の処理を終了する。
【０１４９】
以上、動画生成処理の流れについて説明した。
【０１５０】
以上、本発明の第３実施形態について説明した。上記のように、本実施形態に係る技術を適用することにより、端末装置１００がおかれている状況に応じて処理主体を適切に切り替えることが可能になる。その結果、静止画から動画を効率的に生成することが可能になり、処理の高速化や省電力化に寄与する。なお、ここでは静止画から動画を生成する方法を例に挙げて説明したが、動画、静止画、音声などを組み合わせて映像コンテンツを制作する際にも本実施形態の技術を効果的に利用することができる。
【０１５１】
＜４：第４実施形態＞
次に、本発明の第４実施形態について説明する。なお、本実施形態に係る情報処理システム１０の構成は、上記の第１実施形態に係る情報処理システム１０の構成と実質的に同じであるため説明を省略する。また、その他の点についても、上記の第１実施形態と実質的に同じ構成要素に関する詳細な説明は省略する。
【０１５２】
［４−１：端末装置１００の機能構成］
まず、図１８を参照しながら、本実施形態に係る端末装置１００の機能構成について説明する。図１８は、本実施形態に係る端末装置１００の機能構成について説明するための説明図である。なお、本実施形態に係る端末装置１００は、入力された画像に含まれる顔を認識し、顔が含まれる領域を出力する顔認識装置として機能する。
【０１５３】
図１８に示すように、端末装置１００は、主に、画像入力部１７１と、依頼先切替部１７２と、判定部１７３と、通信部１７４と、顔認識部１７５と、記憶部１７６と、負荷検知部１７７と、蓄電量検知部１７８と、蓄電部１７９とにより構成される。
【０１５４】
画像入力部１７１は、画像を入力するための手段である。画像入力部１７１に入力された画像は、依頼先切替部１７２に入力される。依頼先切替部１７２は、入力された画像の処理を顔認識部１７５に依頼するか、サーバ装置２００に依頼するかを切り替える手段である。但し、依頼先切替部１７２は、判定部１７３による判定結果に応じて処理の依頼先を切り替える。判定部１７３は、通信環境、処理負荷、蓄電量、及び、処理に用いるアルゴリズムのバージョンに応じて処理の依頼先を判定する手段である。
【０１５５】
判定部１７３には、通信部１７４から通信環境が通知される。また、判定部１７３には、負荷検知部１７７から顔認識部１７５の負荷状況を示す情報が入力される。さらに、判定部１７３には、蓄電量検知部１７８から蓄電部１７９の蓄電量を示す情報が入力される。そして、判定部１７３には、顔認識部１７５において処理に用いているアルゴリズムのバージョンを示す情報が入力される。これらの情報が入力されると、判定部１７３は、入力された情報に基づき、処理主体を顔認識部１７５にするか、サーバ装置２００にするかを判定する。判定部１７３による判定結果は、依頼先切替部１７２に入力される。
【０１５６】
判定部１７３による判定結果が顔認識部１７５を示す場合、依頼先切替部１７２は、画像入力部１７１から入力された画像を顔認識部１７５に入力する。画像が入力されると、顔認識部１７５は、記憶部１７６に格納された顔認識アルゴリズムに基づき、入力された画像から顔を認識し、顔を含む領域を出力する。なお、顔の認識処理を実行する際、顔認識部１７５は、必要に応じて記憶部１７６を利用する。一方、判定部１７３による判定結果がサーバ装置２００を示す場合、依頼先切替部１７２は、画像入力部１７１から入力された画像を通信部１７４に入力する。画像が入力された通信部１７４は、ネットワーク５０を通じて、入力された画像をサーバ装置２００に送信する。また、通信部１７４は、サーバ装置２００から送信された顔認識の結果を受信し、その結果を出力する。
【０１５７】
以上、端末装置１００の機能構成について説明した。
【０１５８】
［４−２：サーバ装置２００の機能構成］
次に、図１９を参照しながら、本実施形態に係るサーバ装置２００の機能構成について説明する。図１９は、本実施形態に係るサーバ装置２００の機能構成について説明するための説明図である。なお、本実施形態に係るサーバ装置２００は、入力された画像に含まれる顔を認識し、顔が含まれる領域を出力する顔認識装置として機能する。
【０１５９】
図１９に示すように、サーバ装置２００は、主に、通信部２７１と、顔認識部２７２と、記憶部２７３とにより構成される。
【０１６０】
先に述べたように、端末装置１００により処理主体としてサーバ装置２００が選択されると、端末装置１００からサーバ装置２００に画像が送信される。端末装置１００から送信された画像は、ネットワーク５０を介してサーバ装置２００に伝送され、通信部２７１により受信される。画像を受信すると、通信部２７１は、受信した画像を顔認識部２７２に入力する。
【０１６１】
画像が入力されると、顔認識部２７２は、記憶部２７３に格納された顔認識アルゴリズムに基づき、入力された画像から顔を検出し、その顔を含む領域を出力する。なお、顔認識の処理を実行する際、顔認識部２７２は、必要に応じて記憶部２７３を利用する。顔認識部２７２により出力された顔認識の結果は、通信部２７１に入力される。顔認識の結果が入力されると、通信部２７１は、ネットワーク５０を介して、入力された顔認識の結果を端末装置１００に送信する。
【０１６２】
また、端末装置１００からアルゴリズムのバージョンに関する問い合わせを受けた場合、サーバ装置２００は、顔認識部２７２が顔認識の処理に利用している顔認識アルゴリズムのバージョンを端末装置１００に通知する。まず、ネットワーク５０を介して問い合わせを受けると、通信部２７１は、その問い合わせを受信し、顔認識部２７２に通知する。この通知を受けた顔認識部２７２は、顔認識の処理に利用している顔認識アルゴリズムのバージョンを確認し、そのバージョンを示す情報を通信部２７１に入力する。バージョンを示す情報が入力されると、通信部２７１は、ネットワーク５０を介して、バージョンを示す情報を端末装置１００に送信する。
【０１６３】
以上、サーバ装置２００の機能構成について説明した。
【０１６４】
［４−３：端末装置１００の動作］
次に、図２０を参照しながら、本実施形態に係る端末装置１００の動作について説明する。図２０は、本実施形態に係る端末装置１００の動作について説明するための説明図である。
【０１６５】
図２０に示すように、まず、画像入力部１７１を介して画像が入力される（Ｓ４０１）。画像が入力されると、端末装置１００は、通信部１７４から通信環境の情報を取得し、負荷検知部１７７から負荷の情報を取得し、蓄電量検知部１７８から蓄電量の情報を取得し、顔認識部１７５からバージョンの情報を取得する（Ｓ４０２）。次いで、端末装置１００は、判定部１７３の機能により、画像の処理主体を顔認識部１７５（端末装置１００）にするか、サーバ装置２００にするかを判定する（Ｓ４０３）。そして、端末装置１００は、その判定の結果を確認し、処理主体として顔認識部１７５（判定結果＝端末装置）が選択されたか否かを判断する（Ｓ４０４）。
【０１６６】
処理主体として顔認識部１７５が選択された場合（判定結果＝端末装置）、端末装置１００は、処理をステップＳ４０５に進める。一方、処理主体としてサーバ装置２００が選択された場合（判定結果＝サーバ装置）、端末装置１００は、処理をステップＳ４０６に進める。処理をステップＳ４０５に進めた場合、端末装置１００は、依頼先切替部１７２の機能により、画像を顔認識部１７５に入力する（Ｓ４０５）。画像が入力されると、顔認識部１７５は、入力された画像に含まれる顔を認識する。顔認識部１７５の機能により画像に含まれる顔を認識した端末装置１００は、処理をステップＳ４０８に進める。
【０１６７】
一方、処理をステップＳ４０６に進めた場合、端末装置１００は、依頼先切替部１７２の機能により、画像に含まれる顔の認識処理をサーバ装置２００に依頼する（Ｓ４０６）。このとき、端末装置１００は、通信部１７４の機能により、画像をサーバ装置２００に送信する。画像を受信したサーバ装置２００は、情報処理部２０２の機能により、受信した画像に含まれる顔を認識する。サーバ装置２００による顔認識の結果は、ネットワーク５０を介して端末装置１００に送信される。端末装置１００は、通信部１７４の機能によりサーバ装置２００から顔認識の結果を受信し（Ｓ４０７）、処理をステップＳ４０８に進める。
【０１６８】
処理をステップＳ４０８に進めると、端末装置１００は、顔認識部１７５の機能による顔認識の結果、又は通信部１７４から受信した顔認識の結果を出力する（Ｓ４０８）。
【０１６９】
以上、端末装置１００による全体的な処理の流れについて説明した。
【０１７０】
以上、本発明の第４実施形態について説明した。上記のように、本実施形態に係る技術を適用することにより、端末装置１００がおかれている状況に応じて処理主体を適切に切り替えることが可能になる。その結果、顔認識の処理を効率的に実行することが可能になり、処理の高速化や省電力化に寄与する。このように、本実施形態に係る技術は、画像処理、音声処理、顔認識など、負荷の高い処理を実行するシステムにおいて有効に機能する。
【０１７１】
＜５：ハードウェア構成＞
上記の端末装置１００、サーバ装置２００が有する各構成要素の機能は、例えば、図２１に示すハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図２１に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、ＰＨＳ、ＰＤＡ等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のＰＨＳは、Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。また、上記のＰＤＡは、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔの略である。
【０１７２】
図２１に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０と、を有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６と、を有する。但し、上記のＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。また、上記のＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。そして、上記のＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【０１７３】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【０１７４】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【０１７５】
出力部９１８としては、例えば、ＣＲＴ、ＬＣＤ、ＰＤＰ、又はＥＬＤ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略である。また、上記のＬＣＤは、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略である。そして、上記のＰＤＰは、Ｐｌａｓｍａ  Ｄｉｓｐｌａｙ  Ｐａｎｅｌの略である。さらに、上記のＥＬＤは、Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略である。
【０１７６】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【０１７７】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。但し、上記のＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【０１７８】
接続ポート９２４は、例えば、ＵＳＢポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。但し、上記のＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略である。また、上記のＳＣＳＩは、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅの略である。
【０１７９】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ用の通信カード、光通信用のルータ、ＡＤＳＬ用のルータ、又は各種通信用のモデム等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、上記のＷＵＳＢは、Ｗｉｒｅｌｅｓｓ  ＵＳＢの略である。そして、上記のＡＤＳＬは、Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅの略である。
【０１８０】
＜６：まとめ＞
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、ＰＣ、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の端末装置に対して適用することができる。
【０１８１】
上記の端末装置の機能構成は次のように表現することができる。当該端末装置は、次のような処理部と、接続部と、選択部とを有する。当該処理部は、所定の処理を実行するものである。また、上記の接続部は、前記所定の処理を実行可能な外部装置と通信網を介して接続するためのものである。そして、上記の選択部は、所定の条件に基づき、前記所定の処理の実行を依頼する依頼先として、前記処理部又は前記接続部により接続された外部装置を選択するものである。このように、所定の条件に基づいて処理主体を切り替えられるようにすることで、所定の処理を効率的に実行することが可能になる。
【０１８２】
（備考）
上記の情報処理部１０５、１３５、動画生成部１５５、顔認識部１７５は、処理部、第２の処理部の一例である。上記の通信部１０４、１３４、１５４、１７４、依頼先切替部１０２、１３２、１５２、１７２は、接続部の一例である。上記の判定部１０３、１５３、１７３は、選択部の一例である。上記の情報入力部１０１、１３１、画像入力部１５１、１７１は、データ出力部の一例である。上記の負荷検知部１０７、１３７、１５７、１７７は、負荷状態検知部の一例である。上記の通信部１０４、１３４、１５４、１７４は、接続状態検知部の一例である。
【０１８３】
上記の蓄電量検知部１０８、１３８、１５８、１７８は、残量検知部の一例である。上記の判定部１０３、１３３、１５３、１７３、通信部１０４、１３４、１５４、１７４は、タイミング取得部、バージョン情報取得部の一例である。上記の判定部１０３、１３３、１５３、１７３は、バージョン比較部の一例である。上記のサーバ装置２００は、外部装置の一例である。上記の情報処理部２０２、２３２、動画生成部２５２、顔認識部２７２は、第１の処理部の一例である。
【０１８４】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１８５】
１０      情報処理システム
５０      ネットワーク
１００    端末装置
１０１、１３１    情報入力部
１０２、１３２、１５２、１７２    依頼先切替部
１０３、１３３、１５３、１７３    判定部
１０４、１３４、１５４、１７４    通信部
１０５、１３５    情報処理部
１０６、１３６、１５６、１７６    記憶部
１０７、１３７、１５７、１７７    負荷検知部
１０８、１３８、１５８、１７８    蓄電量検知部
１０９、１３９、１５９、１７９    蓄電部
１４０    アルゴリズム取得部
１５１、１７１    画像入力部
１５５    動画生成部
１７５    顔認識部
２００    サーバ装置
２０１、２３１、２５１、２７１    通信部
２０２、２３２    情報処理部
２０３、２３３、２５３、２７３    記憶部
２３４    アルゴリズム提供部
２５２    動画生成部
２７２    顔認識部
３０１    ＪＰＥＧデコーダ
３０２    エフェクタ
３０３    ＡＶＣエンコーダ
３０４    バッファ
【図１】
0005569269.tif 000002
【図２】
0005569269.tif 000003
【図３】
0005569269.tif 000004
【図４】
0005569269.tif 000005
【図５】
0005569269.tif 000006
【図６】
0005569269.tif 000007
【図７】
0005569269.tif 000008
【図８】
0005569269.tif 000009
【図９】
0005569269.tif 000010
【図１０】
0005569269.tif 000011
【図１１】
0005569269.tif 000012
【図１２】
0005569269.tif 000013
【図１３】
0005569269.tif 000014
【図１４】
0005569269.tif 000015
【図１５】
0005569269.tif 000016
【図１６】
0005569269.tif 000017
【図１７】
0005569269.tif 000018
【図１８】
0005569269.tif 000019
【図１９】
0005569269.tif 000020
【図２０】
0005569269.tif 000021
【図２１】
0005569269.tif 000022