(57)【特許請求の範囲】
【請求項１】
通信装置が、
第１の回線又は第２の回線を用いてデータを取得し、
取得したデータをストリーミング再生し、
取得した前記データをストリーミング再生する再生位置付近の未取得のデータを分割し、分割した位置毎に、前記データの取得を実行するタスクを前記第１の回線又は前記第２の回線で発行し、
前記データの取得を開始する際に、前記データの先頭データの取得を実行する測定タスクを前記第１の回線及び前記第２の回線で発行し、
前記第１の回線及び前記第２の回線の内、前記測定タスクを先に完了した一方の回線を主回線、他方の回線を副回線に決定する、
処理を実行することを特徴とする通信方法。
【請求項２】
前記主回線の通信状態に基づき、当該主回線で実行中のタスクの未実行部分の一部を新規タスクとして前記副回線で発行する
処理を実行することを特徴とする請求項１に記載の通信方法。
【請求項３】
前記主回線で実行中のタスク毎の処理の進捗度に基づき、前記主回線の通信状態を検出することを特徴とする請求項２に記載の通信方法。
【請求項４】
前記第１の回線の回線品質及び前記第２の回線の回線品質に基づき、前記主回線の通信状態を検出することを特徴とする請求項２に記載の通信方法。
【請求項５】
現在の再生位置から連続して所定量以上のデータを取得したか否かを判定し、
前記再生位置から連続して前記所定量以上のデータを取得した場合に、前記主回線で発行可能なタスク数を増やすと共に、前記再生位置から連続して前記所定量以上のデータを取得しなかった場合に、前記主回線で発行可能なタスク数を減らす
処理を実行することを特徴とする請求項２〜４の何れか一つに記載の通信方法。
【請求項６】
前記第１の回線及び前記第２の回線の内、回線毎に発行するタスク毎に、当該タスクを
実行する優先度を設定し、
前記優先度の高い順に前記タスクを実行することを特徴とする請求項１〜５の何れか一つに記載の通信方法。
【請求項７】
第１の回線を用いてデータを取得する第１の取得部と、
第２の回線を用いてデータを取得する第２の取得部と、
前記第１の取得部又は前記第２の取得部にて取得したデータをストリーミング再生する再生部と、
前記取得した前記データをストリーミング再生する再生位置付近の未取得のデータを分割し、分割した位置毎に、前記第１の取得部又は前記第２の取得部に対して前記データの取得を実行するタスクを発行する発行部と、
前記データの取得を開始する際に、前記データの先頭データの取得を実行する測定タスクを前記第１の回線及び前記第２の回線で発行し、前記第１の回線及び前記第２の回線の内、前記測定タスクを先に完了した一方の回線を主回線、他方の回線を副回線に決定する決定部と、
を有することを特徴とする通信装置。
【請求項８】
通信装置に、
第１の回線又は第２の回線を用いてデータを取得し、
取得したデータをストリーミング再生し、
取得した前記データをストリーミング再生する再生位置付近の未取得のデータを分割し、分割した位置毎に、前記データの取得を実行するタスクを前記第１の回線又は前記第２の回線で発行し、
前記データの取得を開始する際に、前記データの先頭データの取得を実行する測定タスクを前記第１の回線及び前記第２の回線で発行し、
前記第１の回線及び前記第２の回線の内、前記測定タスクを先に完了した一方の回線を主回線、他方の回線を副回線に決定する、
処理を実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信方法、通信装置及び通信プログラムに関する。
【背景技術】
【０００２】
携帯端末には、例えば、１個のコンテンツをＮ個のデータに分割して同時にダウンロードする方式がある。この方式は、Ｎ個に分割されたデータを同時にダウンロードすることで高速なデータ通信を実現している。また、携帯端末には、動画等のデータをダウンロードしながら、そのデータを再生するストリーミング通信がある。携帯端末では、ストリーミング通信を実行する場合、データをダウンロードしながら、そのデータを再生できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００９／１４２０５９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、携帯端末では、分割したデータ毎に、例えば、ダウンロード等のタスクを均等に実行することになるため、再生位置でのタスクが実行できない場合、ストリーミング再生が行えなくなる。従って、再生位置でのタスクを優先的に実行する仕組みが求められているのが実情である。
【０００５】
一つの側面では、高速なストリーミング通信を実現できる通信方法、通信装置及び通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの案の通信方法は、通信装置が、第１の回線又は第２の回線を用いてデータを取得し、取得したデータをストリーミング再生する処理を実行する。更に、通信装置が、取得した前記データをストリーミング再生する再生位置付近の未取得のデータを分割し、分割した位置毎に、前記データの取得を実行するタスクを前記第１の回線又は前記第２の回線で発行する処理を実行する。
【発明の効果】
【０００７】
高速なストリーミング通信を実現できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施例の携帯情報機器の構成の一例を示す説明図である。
【図２】図２は、ストリーミングデータの一例を示す説明図である。
【図３】図３は、各タスクの優先度の一例を示す説明図である。
【図４】図４は、副回線の無線部に発行する補助タスクの一例を示す説明図である。
【図５】図５は、開始処理に関わるＣＰＵの処理動作の一例を示すフローチャートである。
【図６】図６は、決定処理に関わるＣＰＵの処理動作の一例を示すフローチャートである。
【図７】図７は、分割タスク発行処理に関わるＣＰＵの処理動作の一例を示すフローチャートである。
【図８】図８は、補助タスク発行処理に関わるＣＰＵの処理動作の一例を示すフローチャートである。
【図９】図９は、タスク実行処理に関わるＣＰＵの処理動作の一例を示すフローチャートである。
【図１０】図１０は、シーク動作時のタスク実行処理の動作の一例を示す説明図である。
【図１１】図１１は、通信プログラムを実行する端末装置の一例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本願の開示する通信方法、通信装置及び通信プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例】
【００１０】
図１は、本実施例の携帯情報機器１の構成の一例を示す説明図である。図１に示す携帯情報機器１は、例えば、携帯電話機、ＰＤＡ（Personal  Digital  Assistants）、パソコンやカーナビ等である。携帯情報機器１は、第１の無線部１１と、第２の無線部１２と、音響出力部１３と、表示部１４と、ＲＯＭ（Read  Only  Memory）１５と、ＲＡＭ（Random  Access  Memory）１６と、記憶部１７と、ＣＰＵ（Central  Processing  Unit）１８とを有する。
【００１１】
第１の無線部１１は、第１の回線、例えば、Ｗｉ‐Ｆｉ（登録商標）を用いて無線通信する無線部である。第１の無線部１１は、第１の回線を用いて、図示せぬコンテンツサーバにアクセスし、そのコンテンツサーバからストリーミングデータを取得（ダウンロード）できる。第２の無線部１２は、第２の回線、例えば、ＬＴＥ（Long  Term  Evolution）を用いて無線通信する無線部である。第２の無線部１２は、第２の回線を用いて、図示せぬコンテンツサーバにアクセスし、そのコンテンツサーバからストリーミングデータを取得できる。音響出力部１３は、例えば、映像データや音声データ等を音響出力する出力インタフェースである。表示部１４は、各種情報を表示する出力インタフェースである。ＲＯＭ１５は、各種情報、例えば、プログラム等を格納した記憶領域である。ＲＡＭ１６は、各種情報を記憶する領域である。記憶部１７は、ストリーミングデータ等の各種データを記憶する領域である。記憶部１７内には、取得したストリーミングデータを一時記憶するキャッシュ１７Ａがある。ＣＰＵ１８は、携帯情報機器１全体を制御する。
【００１２】
ＲＯＭ１５は、例えば、通信プログラムを記憶する領域である。ＣＰＵ１８は、ＲＯＭ１５に記憶された通信プログラムを読み出し、読み出した通信プログラムに基づき各種プロセスを機能として動作するものである。ＣＰＵ１８は、取得部２１と、再生部２２と、発行部２３と、決定部２４と、判定部２５と、制御部２６とを機能として動作するものである。
【００１３】
取得部２１は、第１の無線部１１を通じて第１の回線経由でデータを取得し、取得したデータをキャッシュ１７Ａに記憶する。取得部２１は、第２の無線部１２を通じて第２の回線経由でデータを取得し、取得したデータをキャッシュ１７Ａに記憶する。尚、キャッシュ１７Ａは、第１の回線で取得したデータと、第２の回線で取得したデータとを分別して記憶する。再生部２２は、キャッシュ１７Ａに記憶したデータをストリーミング再生し、その再生内容を音響出力部１３及び表示部１４に出力する。
【００１４】
図２は、ストリーミングデータの一例を示す説明図である。図２に示すストリーミングデータは、その先頭から末尾までの各位置、例えば、１２９カ所の位置に優先度０〜１２８を設定し、その先頭位置に優先度「１２８」、その末尾位置に優先度「０」が設定される。つまり、ストリーミングデータ全体を１２９に分割し、その先頭位置から末尾位置までの１２９カ所の位置に「１２８」〜「０」の優先度を設定した。そして、優先度「１２８」を最上位、優先度「０」を最下位とする。つまり、優先度「１２８」のタスクを最優先に実行することになる。取得部２１は、ストリーミングデータの先頭位置からｘＭＢ分、例えば、１０２４バイト分の先頭データを第１の回線及び第２の回線を用いて同時に取得動作を開始する。尚、先頭データは、ストリーミングデータであるコンテンツファイルのヘッダに相当し、そのヘッダにファイルのサイズ及び分割の可否が記録されているものとする。
【００１５】
発行部２３は、ストリーミング再生する再生位置付近の未取得のデータを分割し、分割した位置毎に、第１の無線部１１又は第２の無線部１２にタスクを発行する。
【００１６】
決定部２４は、第１の回線及び第２の回線の内、一方の回線を主回線、他方の回線を副回線に決定する。決定部２４は、高速ストリーミング開始後、１秒周期で第１の回線及び第２の回線の回線品質を比較して、主回線及び副回線を決定する。決定部２４は、各回線の通信量を集計し、集計した通信量に基づき、各回線のスループットを算出する。尚、スループットの算出方法は、例えば、（［直近の前回のスループット］×３＋［直近１秒間の通信量］）／４で算出する。更に、決定部２４は、［スループット］×Ｍａｔｈ．ｐｏｗ（１．０１，［直近の１秒間のタスク成功数］）×Ｍａｔｈ．ｐｏｗ（０．８，［直近の１秒間のタスク失敗数］）の式を用いて、算出したスループットを補正して１秒毎の各回線信頼度を算出する。
【００１７】
更に、決定部２４は、［回線信頼度］／［１タスクを実行するのに必要な最低スループット（固定値）］の式を用いて各回線の最適な分割タスク発行数、すなわち最適タスク数を算出する。更に、決定部２４は、各回線の最適タスク数に基づき、各回線の品質を比較する。決定部２４は、第１の回線（Ｗｉ−Ｆｉ回線）の最適タスク数が２未満、かつ第２の回線（ＬＴＥ回線）の最適タスク数が２以上の決定条件を満たす場合、第２の回線を主回線に、第１の回線を副回線に決定する。尚、決定条件内で最適タスク数の閾値を「２」に設定する理由は、ストリーミングデータを分割して高速化する際に少なくとも２個のタスクを同時に実行できない場合は能力不足となる。
【００１８】
また、決定部２４は、決定条件を満たさない場合、第１の回線を主回線に、第２の回線を副回線に決定する。尚、第１の回線（Ｗｉ−Ｆｉ回線）に最低限の性能がある場合は、ＬＴＥ回線に比較して通信コストが安価な第１の回線（Ｗｉ−Ｆｉ回線）を主回線に決定するものとする。
【００１９】
発行部２３は、主回線及び副回線の無線部にタスクを発行する。発行部２３は、ストリーミングの再生位置の取得を優先しながら高速ダウンロードを可能にすべく、主回線の無線部にタスクを発行する。更に、発行部２３は、副回線を活用した更なる高速ダウンロードを可能にすべく、副回線の無線部にタスクを発行する。
【００２０】
発行部２３は、第１の回線及び第２の回線の内、回線毎に発行するタスク毎に、当該タスクを実行する優先度を設定する。第１の無線部１１及び第２の無線部１２は、優先度の高い順に、回線に発行したタスクを実行する。図３は、各タスクの優先度の一例を示す説明図である。第１の無線部１１は、図３に示すように優先度「５８」のタスクＡが上位のため、優先度「５７」のタスクＢを実行しながら、優先度「５８」のタスクＡを優先的に実行する。
【００２１】
制御部２６は、ＣＰＵ１８全体を制御する。制御部２６は、ストリーミングデータの取得を開始する際に、ストリーミングデータの先頭データの取得を実行するタスクを第１の無線部１１及び第２の無線部１２に発行すべく、発行部２３を制御する。制御部２６は、主回線の通信状態に基づき、当該タスクの未実行部分の一部を補助タスクとして、第１の無線部１１及び第２の無線部１２の内、副回線の無線部に発行すべく、発行部２３を制御する。
【００２２】
判定部２５は、現在の再生位置から連続する所定量以上のデータを取得したか否かを判定する。尚、所定量は、例えば、現在の再生位置から連続する取得済みキャッシュ量（ｙＭＢ）、例えば、２ＭＢである。制御部２６は、現在再生位置から連続する所定量以上のデータを取得した場合、すなわち、ストリーミングの再生位置から連続する取得済みキャッシュがｙＭＢ、例えば２ＭＢ以上の場合、最大発行数をＭ２、例えば「４」に設定する。つまり、取得済みキャッシュ量がｙＭＢ以上であるため、キャッシュの進捗が遅くなっても、ある程度、許容できるため、最大発行数を増やすことができる。
【００２３】
また、制御部２６は、再生位置から連続する所定量以上のデータでない場合、すなわちストリーミング再生位置から連続する取得済みキャッシュがｙＭＢ以上でない場合、最大発行数を減らしてＭ１、例えば「２」に設定する。つまり、タスク数が増えると、回線のスループットが良くても、再生位置や、その周辺のタスクに割り当てるＣＰＵ１８のリソースが減るため、ＣＰＵ１８の性能に依存し、優先すべき再生位置でのタスクが遅くなる。
【００２４】
図４は、副回線の無線部に発行する補助タスクの一例を示す説明図である。制御部２６は、第１の回線を主回線としてタスク実行中に、そのタスクの進捗を確認する。更に、制御部２６は、そのタスクの進捗が１／４以下の場合、そのタスクの末尾から未実行部分の１／２のタスクを補助タスクとして副回線の無線部に発行すべく、発行部２３を制御する。この際、発行部２３は、主回線内のタスク及び副回線内のタスクの優先度を再度設定する。
【００２５】
制御部２６は、データの任意の再生位置でシーク再生する際、その再生位置、すなわちシーク先のデータがキャッシュ１７Ａにキャッシュ済みであるか否かを判定する。制御部２６は、シーク先のデータがキャッシュ済みの場合、実行中のタスクの処理を継続する。また、制御部２６は、シーク先のデータがキャッシュ済みでない場合、実行中のタスクの処理を中断し、そのシーク先の未取得のデータを取得するタスクを発行すべく、発行部２３を制御する。
【００２６】
次に本実施例の携帯情報機器１の動作について説明する。図５は、開始処理に関わるＣＰＵ１８の処理動作の一例を示すフローチャートである。図５に示す開始処理は、高速ストリーミングを開始する際に複数の回線を駆使してストリーミングデータの先頭データを優先的に取得する処理である。図５においてＣＰＵ１８内の取得部２１は、対象データがストリーミング対象であるか否かを判定する（ステップＳ１１）。尚、ストリーミング対象は、携帯情報機器１の高速ストリーミングのＯＮ／ＯＦＦの設定や、使用するアプリケーション等の使用状況に応じて判定するものである。
【００２７】
制御部２６は、対象データがストリーミング対象の場合（ステップＳ１１肯定）、データの先頭データ、例えば、データ先頭からｘＭＢ分を第１の回線及び第２の回線で取得すべく、第１の無線部１１及び第２の無線部１２にタスクを要求する（ステップＳ１２）。第１の無線部１１は、第１の回線を用いて先頭データの取得動作を開始し、第２の無線部１２も、第２の回線を用いて同一の先頭データの取得動作を開始する。
【００２８】
取得部２１は、先頭データの取得が完了したか否かを判定する（ステップＳ１３）。決定部２４は、先頭データの取得が完了した場合（ステップＳ１３肯定）、取得完了の回線は第１の回線であるか否かを判定する（ステップＳ１４）。決定部２４は、取得完了の回線が第１の回線の場合（ステップＳ１４肯定）、第１の回線を主回線に決定し（ステップＳ１５）、第２の回線を副回線に決定する（ステップＳ１６）。
【００２９】
更に、決定部２４は、両回線、すなわち第１の回線及び第２の回線の回線品質を測定して比較する（ステップＳ１７）。決定部２４は、比較結果に基づき、第１の回線の回線品質の方が第２の回線の回線品質よりも良好の場合（ステップＳ１８肯定）、第１の回線を主回線に決定し（ステップＳ１９）、第２の回線を副回線に決定し（ステップＳ２０）、図５に示す処理動作を終了する。
【００３０】
更に、決定部２４は、取得完了の回線が第１の回線でない場合（ステップＳ１４否定）、第２の回線で先頭データの取得が完了したと判定する。決定部２４は、第２の回線を主回線に決定し（ステップＳ２１）、第１の回線を副回線に決定し（ステップＳ２２）、両回線の回線品質を測定すべく、ステップＳ１７に移行する。
【００３１】
また、決定部２４は、比較結果に基づき、第１の回線の回線品質の方が良好でない場合（ステップＳ１８否定）、第２の回線を主回線に決定し（ステップＳ２３）、第１の回線を副回線に決定し（ステップＳ２４）、図５に示す処理動作を終了する。
【００３２】
また、取得部２１は、対象データがストリーミング対象でない場合（ステップＳ１１否定）、図５に示す処理動作を終了する。また、決定部２４は、先頭データの取得が完了していない場合（ステップＳ１３否定）、取得完了したか否かを判定すべく、ステップＳ１３に移行する。
【００３３】
開始処理を実行するＣＰＵ１８は、第１の回線及び第２の回線を用いてストリーミングデータの先頭データを取得するタスクを第１の無線部１１及び第２の無線部１２に同時要求する。その結果、ＣＰＵ１８は、片方の回線での通信を無駄にしたとしても、先頭データを最優先に取得できる。
【００３４】
図６は、決定処理に関わるＣＰＵ１８の処理動作の一例を示すフローチャートである。図６に示す決定処理は、高速ストリーミング開始後、１秒周期で各回線の回線品質を比較し、その比較結果に基づき、主回線を決定する処理である。
【００３５】
図６においてＣＰＵ１８内の決定部２４は、各回線のスループットを算出する（ステップＳ３１）。更に、決定部２４は、ステップＳ３１の処理と並行して各回線の直近のタスク成功数及びタスク失敗数を取得する（ステップＳ３２）。
【００３６】
決定部２４は、回線毎のスループット、タスク成功数及びタスク失敗数に基づき、各回線の回線信頼度を算出する（ステップＳ３３）。尚、回線信頼度は、例えば、［スループット］×Ｍａｔｈ．ｐｏｗ（１．０１，［直近の１秒間のタスク成功数］）×Ｍａｔｈ．ｐｏｗ（０．８，［直近の１秒間のタスク失敗数］）の式で算出する。決定部２４は、回線毎の回線信頼度に基づき、各回線の最適タスク数を算出する（ステップＳ３４）。尚、最適タスク数は、例えば、［回線信頼度］／［１タスクを実行するのに必要な最低スループット（固定値）］の式で算出する。
【００３７】
決定部２４は、決定条件を満たしたか否かを判定する（ステップＳ３５）。尚、決定条件は、第１の回線（Ｗｉ−Ｆｉ回線）の最適タスク数が２未満、かつ、第２の回線（ＬＴＥ回線）の最適タスク数が２以上の条件である。決定部２４は、決定条件を満たした場合（ステップＳ３５肯定）、第２の回線（ＬＴＥ回線）を主回線に決定し（ステップＳ３６）、第１の回線（Ｗｉ−Ｆｉ回線）を副回線に決定し（ステップＳ３７）、図６に示す処理動作を終了する。
【００３８】
決定部２４は、決定条件を満たさない場合（ステップＳ３５否定）、第１の回線（Ｗｉ−Ｆｉ回線）を主回線に決定し（ステップＳ３８）、第２の回線（ＬＴＥ回線）を副回線に決定し（ステップＳ３９）、図６に示す処理動作を終了する。
【００３９】
図６に示す決定処理を実行するＣＰＵ１８は、各回線のスループット、直近のタスク成功数及びタスク失敗数に基づき、各回線の回線信頼度を算出し、算出した回線信頼度に基づき、各回線の最適タスク数を算出する。ＣＰＵ１８は、第１の回線の最適タスク数が２未満、かつ、第２の回線の最適タスク数が２以上の決定条件を満たした場合、第２の回線を主回線、第１の回線を副回線に決定する。その結果、第１の回線に最低限の性能がなくても、第２の回線に最低限の性能がある場合には自動的に第２の回線を主回線、第１の回線を副回線に決定できる。
【００４０】
ＣＰＵ１８は、決定条件を満たさなかった場合、第１の回線を主回線、第２の回線を副回線に決定する。その結果、自動的に第１の回線を主回線、第２の回線を副回線に決定できる。つまり、ＣＰＵ１８は、１秒周期で、しかも、回線のスループットだけでなく、タスク実績を反映した回線信頼度に基づき、精度良く主回線及び副回線を決定できる。
【００４１】
図７は、分割タスク発行処理に関わるＣＰＵ１８の処理動作の一例を示すフローチャートである。図７に示す分割タスク発行処理は、現在再生位置以降の取得済みキャッシュに基づき、主回線の最大発行数を設定し、最大発行数の範囲内で主回線に分割タスクを発行する処理である。図７においてＣＰＵ１８内の判定部２５は、再生位置以降の連続する取得済みキャッシュが所定量、例えば、ｙＭＢ以上であるか否かを判定する（ステップＳ４１）。制御部２６は、再生位置以降の取得済みキャッシュがｙＭＢ以上でない場合（ステップＳ４１否定）、分割タスクの最大発行数をＭ１に設定する（ステップＳ４２）。尚、最大発行数Ｍ１は、Ｍ１＜Ｍ２の関係である。つまり、取得済みキャッシュ量が少なく、ストリーミング再生に余裕がないため、再生位置の取得を優先しながら、最大発行数を減らしてＣＰＵ１８のリソースを節減できる。
【００４２】
発行部２３は、分割タスクを発行し（ステップＳ４３）、発行した分割タスクの位置に基づき、各分割タスクに優先度を設定し（ステップＳ４４）、図７に示す処理動作を終了する。
【００４３】
制御部２６は、再生位置以降の連続する取得済みキャッシュがｙＭＢ以上の場合（ステップＳ４１肯定）、分割タスクの最大発行数をＭ２に設定し（ステップＳ４５）、発行部２３に分割タスクを発行させるべく、ステップＳ４３に移行する。つまり、取得済みキャッシュ量が多く、ストリーミング再生に余裕があるため、再生位置の取得を優先しながら、最大発行数を増加できる。
【００４４】
図７に示す分割タスク発行処理を実行するＣＰＵ１８は、現在再生位置以降の連続する取得済みのキャッシュが所定量以上でない場合に、主回線の最大発行数を少なくしてＭ１に設定する。その結果、取得済みのキャッシュが所定量以上でない場合、ストリーミング再生に余裕なしと判断し、再生位置の取得を優先しながら、最大発行数を少なくしてＣＰＵ１８のリソースを節減できる。
【００４５】
ＣＰＵ１８は、現在再生位置以降の連続する取得済みのキャッシュが所定量以上の場合、主回線の最大発行数を増やしてＭ２に設定する。その結果、取得済みのキャッシュが所定量以上の場合、ストリーミング再生に余裕があると判断し、最大発行数を増やして高速ストリーミングを実現できる。
【００４６】
ＣＰＵ１８は、発行した分割タスクの位置に基づき、その分割タスクに優先度を設定する。その結果、ＣＰＵ１８は、優先度の高い順に各分割タスクを実行できる。
【００４７】
図８は、補助タスク発行処理に関わるＣＰＵ１８の処理動作の一例を示すフローチャートである。図８に示す補助タスク発行処理は、主回線内の各タスクの実行中の処理の進捗に基づき、その進捗に応じてタスクの未実行部分の一部を副回線に発行する処理である。図８においてＣＰＵ１８内の制御部２６は、副回線でタスク発行が可能であるか否かを判定する（ステップＳ５１）。制御部２６は、副回線でタスク発行が可能な場合（ステップＳ５１肯定）、主回線のタスクの内、優先度が最上位のタスクを指定し（ステップＳ５２）、優先度が最上位の指定タスクを実行する（ステップＳ５３）。
【００４８】
制御部２６は、指定タスクの実行中の処理の進捗を確認し（ステップＳ５４）、指定タスクの進捗が指定タスク全体の１／４以下であるか否かを判定する（ステップＳ５５）。尚、進捗が指定タスク全体の１／４以下とは、指定タスクの未実行部分が３／４以上残っていることを示す。
【００４９】
発行部２３は、指定タスクの進捗が指定タスク全体の１／４以下の場合（ステップＳ５５肯定）、指定タスクの末尾のタスク位置から未実行部分の１／２を補助タスクとして副回線の無線部に発行する（ステップＳ５６）。尚、副回線の補助タスクは、そのタスク位置に応じて優先度を設定し、その優先度の高い順に補助タスクを実行することになる。主回線のタスクについても、そのタスクの未実行部分の内、補助タスクの残り部分をタスクとして実行する。
【００５０】
そして、制御部２６は、各回線のタスクの位置に基づき優先度を再設定し（ステップＳ５７）、主回線のタスクの内、未指定のタスクがあるか否かを判定する（ステップＳ５８）。制御部２６は、未指定のタスクがある場合（ステップＳ５８肯定）、主回線の未指定のタスクの内、優先度が最上位のタスクを指定し（ステップＳ５９）、指定タスクを実行すべく、ステップＳ５３に移行する。
【００５１】
制御部２６は、指定タスクの進捗が指定タスク全体の１／４以下でない場合（ステップＳ５５否定）、指定タスクの進捗が指定タスク全体の３／４以下であるか否かを判定する（ステップＳ６０）。尚、進捗が指定タスク全体の３／４以下とは、指定タスクの未実行部分が１／４以上残っていることを示す。
【００５２】
発行部２３は、指定タスクの進捗が指定タスク全体の３／４以下の場合（ステップＳ６０肯定）、指定タスクの末尾のタスク位置から未実行部分の１／４を補助タスクとして副回線の無線部に発行する（ステップＳ６１）。そして、発行部２３は、タスク位置の優先度を設定すべく、ステップＳ５７に移行する。
【００５３】
発行部２３は、指定タスクの進捗が指定タスク全体の３／４以下でない場合（ステップＳ６０否定）、指定タスクの未実行部分を補助タスクとして副回線の無線部に発行し（ステップＳ６２）、タスク位置の優先度を設定すべく、ステップＳ５７に移行する。
【００５４】
また、制御部２６は、主回線のタスクの内、未指定のタスクがない場合（ステップＳ５８否定）、図８に示す処理動作を終了する。また、制御部２６は、副回線でタスクの発行が可能でない場合（ステップＳ５１否定）、図８に示す処理動作を終了する。
【００５５】
図８に示す補助タスク発行処理を実行するＣＰＵ１８は、主回線の指定タスクの進捗を確認し、そのタスクの進捗に応じて当該タスクの未実行部分の一部を補助タスクとして副回線の無線部に発行する。その結果、主回線の指定タスクの進捗に応じて当該タスクの未実行部分の一部を補助リスクとして副回線の無線部に発行し、主回線のタスクを副回線の無線部で補助することで、更なる高速ストリーミングを実現できる。
【００５６】
ＣＰＵ１８は、主回線内の複数のタスクの内、優先度の高い順にタスクを実行できる。更に、ＣＰＵ１８は、副回線内の複数のタスクの内、優先度の高い順にタスクを実行するため、補助タスクを優先的に実行し、高速ストリーミングを実現できる。
【００５７】
図９は、タスク実行処理に関わるＣＰＵ１８の処理動作の一例を示すフローチャートである。図９に示すタスク実行処理は、回線毎に、現在のタスク数と最適タスク数とを比較し、その比較結果に基づき、その回線内の発行タスク数を調整する処理である。図９においてＣＰＵ１８内の制御部２６は、主回線内のタスクの内、優先度が最上位のタスクを実行し（ステップＳ７１）、決定部２４で算出した最適タスク数を取得する（ステップＳ７２）。
【００５８】
制御部２６は、取得した最適タスク数に基づき、主回線の現在のタスク数が不足しているか否かを判定する（ステップＳ７３）。尚、タスク数の不足は、現在タスク数が最適タスク数未満であるか否かで判定できる。発行部２３は、主回線の現在のタスク数が不足している場合（ステップＳ７３肯定）、すなわち、現在タスク数が最適タスク数未満の場合、主回線のタスクを追加すべく、タスク追加処理を実行し（ステップＳ７４）、図９に示す処理動作を終了する。
【００５９】
制御部２６は、主回線の現在タスク数が不足していない場合（ステップＳ７３否定）、取得した最適タスク数に基づき、主回線の現在タスク数が過剰であるか否かを判定する（ステップＳ７５）。尚、タスク数の過剰は、現在タスク数が最適タスク数を超えているか否かで判定できる。発行部２３は、主回線の現在タスク数が過剰の場合（ステップＳ７５肯定）、すなわち、現在タスク数が最適タスク数を超えている場合、主回線のタスクの内、優先度の低いタスクから中断し（ステップＳ７６）、図９に示す処理動作を終了する。また、制御部２６は、主回線の現在のタスク数が過剰でない場合（ステップＳ７５否定）、図９に示す処理動作を終了する。
【００６０】
図９に示すタスク実行処理を実行するＣＰＵ１８は、主回線内の現在タスク数が最適タスク数に比較して不足している場合、主回線内に新規のタスクを追加する。その結果、最適タスク数の範囲内で新規のタスクを追加できるため、高速ストリーミングを実現できる。
【００６１】
ＣＰＵ１８は、主回線内の現在タスク数が最適タスク数に比較して過剰な場合、主回線から優先度の低いタスクの処理を中断する。その結果、ＣＰＵ１８のリソースを節減できるため、ＣＰＵ１８の負荷を軽減して高速ストリーミングを実現できる。しかも、優先度の低いタスクを中断するため、そのタスクの再開時は効率良く実行できる。
【００６２】
尚、図９に示すタスク実行処理は、説明の便宜上、主回線内の優先度に応じてタスクを実行し、主回線内のタスク数を最適タスク数の範囲内で調整した。しかしながら、副回線内の優先度に応じてタスクを実行し、副回線内のタスク数を最適タスク数の範囲内で調整できる。
【００６３】
図１０は、シーク動作時のタスク実行処理の動作の一例を示す説明図である。シーク動作は、ストリーミングデータの内、所望の再生位置にシークする処理である。図１０の（Ａ）のシークパターンは、シーク先がキャッシュ取得済みの場合、通常通り、未取得部分のタスクを継続して実行する。図１０の（Ｂ）のシークパターンは、シーク先がキャッシュ取得済みでない場合、シーク動作前のタスクを中断し、そのシーク先のタスクの優先度を最上位に設定し、そのシーク先のデータを最優先に取得できる。
【００６４】
本実施例では、ストリーミング通信時において、ストリーミングデータ全体をＮ分割するのではなく、再生位置付近を分割して優先して取得する。その結果、再生位置付近のデータ取得を優先することで高速ストリーミングを実現できる。更に、再生位置付近のデータを取得する際に他のタスクを実行せずに再生位置付近のタスクを優先するため、ＣＰＵ１８のリソースの消費を抑制できる。その結果、ＣＰＵ１８のリソースの消費を抑制するため、高速ストリーミングを実現できる。
【００６５】
本実施例のＣＰＵ１８は、ストリーミング再生する再生位置付近の未取得のデータを分割し、分割した位置毎にタスクを主回線又は副回線の無線部に発行する。その結果、ＣＰＵ１８は、再生位置付近のタスクを優先的に実行するため、高速ストリーミング通信を実現できる。
【００６６】
更に、ＣＰＵ１８は、主回線のタスク進捗に基づき、当該タスクの未実行部分の一部を補助タスクとして副回線の無線部に発行する。その結果、ＣＰＵ１８は、主回線のタスク進捗に応じて未実行部分の一部を補助タスクとして副回線の無線部に発行するため、主回線の処理負担を軽減しながら、副回線を活用して高速ストリーミングを実現できる。
【００６７】
ＣＰＵ１８は、ストリーミングデータの取得を開始する際に、ストリーミングデータの先頭データを取得するタスクを第１の回線及び第２の回線の無線部に発行する。その結果、ＣＰＵ１８は、片方の回線での通信を無駄にしたとしても、先頭データを最優先に取得できる。
【００６８】
ＣＰＵ１８は、各回線の回線信頼度に基づき、主回線及び副回線を決定する。その結果、ＣＰＵ１８は、回線のスループットだけでなく、タスク実績を反映した回線信頼度に基づき、精度良く、主回線及び副回線を決定できる。
【００６９】
ＣＰＵ１８は、現在の再生位置から連続して所定量以上のデータを取得したか否かを判定し、再生位置から連続して所定量以上のデータを取得した場合に、主回線に発行可能なタスク数を増やす。その結果、所定量以上のデータを取得するため、ストリーミング再生に余裕があると判断し、最大発行数を増やして高速ストリーミングを実現できる。
【００７０】
ＣＰＵ１８は、再生位置から連続して所定量以上のデータを取得しなかった場合に、主回線に発行可能なタスク数を減らす。その結果、所定量以上のデータを取得していないため、ストリーミング再生に余裕なしと判断し、再生位置の取得を優先しながら、最大発行数を少なくしてＣＰＵ１８のリソースを節減できる。
【００７１】
ＣＰＵ１８は、回線毎に発行したタスク毎に優先度を設定し、優先度の高い順にタスクを実行する。その結果、ＣＰＵ１８は、優先度の高い順に各タスクを優先的に実行できる。
【００７２】
ＣＰＵ１８は、ストリーミング再生のシーク時において、そのシーク先の再生位置付近を優先的に取得する。また、ＣＰＵ１８は、ストリーミング再生のシーク時に、そのシーク先のデータの取得が未取得の場合、そのシーク先のデータの取得を最優先に実行する。その結果、高速ストリーミングを実現しながら、シーク再生にも対応できる。
【００７３】
尚、上記実施例では、第１の回線及び第２の回線として、例えば、Ｗｉ−ＦｉやＬＴＥを例示したが、３Ｇ回線、赤外線やブルートゥース（登録商標）等の無線回線でも良く、光回線や電気回線等の有線回線にも適用可能である。
【００７４】
上記実施例として、携帯情報機器１を例示したが、携帯情報機器に限定されるものではなく、複数の回線の通信機能を有する通信機器に適用可能である。
【００７５】
上記実施例では、第１の回線及び第２の回線の２回線を例示し、一方の回線に主回線、他方の回線に副回線を割り当てるようにしたが、これら２回線に限定されるものではなく、３回線以上にしても良い。例えば、３回線にした場合、３回線の内、一本の回線に主回線、残りの二本の回線に副回線を割り当てる。
【００７６】
上記実施例の決定処理では、Ｗｉ−Ｆｉ（第１の回線）へのオフロードを考慮して主回線を決定したが、利用者の設定で回線優先度を設定し、その設定した回線優先度に基づき、主回線を決定しても良く、適宜変更可能である。
【００７７】
上記実施例の補助タスク発行処理では、主回線内の指定タスクの進捗度に応じて未実行部分の一部を副回線のタスクとして発行した。つまり、未実行部分の長さで副回線の補助タスクの長さを設定した。しかしながら、各回線のスループットに基づき副回線に発行する補助タスクの長さを変更しても良い。例えば、［副回線での補助タスクの長さ］＝［主回線タスクの残り部分］×［副回線のスループット］／（［主回線のスループット］＋［副回線のスループット］）で副回線での補助タスクの長さを変更しても良い。
【００７８】
上記実施例では、第１の回線をＷｉ−Ｆｉ回線、第２の回線をＬＴＥ回線の別方式の回線としたが、第１の回線及び第２の回線を同一方式の回線にしても良い。
【００７９】
上記実施例では、ストリーミングデータの先頭位置の優先度を「１２８」、末尾位置の優先度を「０」とし、先頭位置から末尾位置までの１２９カ所の固定位置に「１２８」〜「０」の優先度を設定した。しかしながら、ストリーミングデータ全体の位置で固定するのではなく、未取得部分のデータ内の位置で適宜優先度を設定しても良い。また、優先度を「０」〜「１２８」で設定したが、この数値に限定されるものではなく、適宜変更可能である。
【００８０】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８１】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【００８２】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムを端末装置内のＣＰＵ等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する端末装置の一例を説明する。図１１は、通信プログラムを実行する端末装置の一例を示す説明図である。
【００８３】
図１１に示す通信プログラムを実行する端末装置１００は、第１の通信部１１０と、第２の通信部１２０と、ＲＯＭ１３０と、ＲＡＭ１４０と、ＣＰＵ１５０とを有する。更に、第１の通信部１１０、第２の通信部１２０、ＲＯＭ１３０、ＲＡＭ１４０及びＣＰＵ１５０は、バスを介して接続される。第１の通信部１１０は、第１の回線を用いて図示せぬコンテンツサーバにアクセスし、そのコンテンツサーバからデータを取得する。第２の通信部１２０は、第２の回線を用いて図示せぬコンテンツサーバにアクセスし、そのコンテンツサーバからデータを取得する。
【００８４】
そして、ＲＯＭ１３０には、上記実施例と同様の機能を発揮する通信プログラムが予め記憶されている。ＲＯＭ１３０は、通信プログラムとして取得プログラム１３０Ａ、再生プログラム１３０Ｂ及び発行プログラム１３０Ｃが記憶されている。尚、ＲＯＭ１３０ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に通信プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。
【００８５】
そして、ＣＰＵ１５０は、取得プログラム１３０ＡをＲＯＭ１３０から読み出して取得プロセス１５０Ａとして機能する。更に、ＣＰＵ１５０は、再生プログラム１３０ＢをＲＯＭ１３０から読み出して再生プロセス１５０Ｂとして機能する。ＣＰＵ１５０は、発行プログラム１３０ＣをＲＯＭ１３０から読み出して発行プロセス１５０Ｃとして機能する。
【００８６】
ＣＰＵ１５０は、第１の回線又は第２の回線を用いてデータを取得する。ＣＰＵ１５０は、取得したデータをストリーミング再生する。更に、ＣＰＵ１５０は、取得した前記データをストリーミング再生する再生位置付近の未取得のデータを分割し、分割した位置毎に、前記データの取得を実行するタスクを前記第１の回線又は前記第２の回線で発行する。その結果、ＣＰＵ１５０は、再生位置付近の未取得のデータを分割し、その分割した位置毎にタスクを発行するため、高速ストリーミングを実現できる。
【符号の説明】
【００８７】
１  携帯情報機器
１１  第１の無線部
１２  第２の無線部
１７  記憶部
１８  ＣＰＵ
２１  取得部
２２  再生部
２３  発行部
２４  決定部
２５  判定部
２６  制御部
【図１】
0006601068.tif 000002
【図２】
0006601068.tif 000003
【図３】
0006601068.tif 000004
【図４】
0006601068.tif 000005
【図５】
0006601068.tif 000006
【図６】
0006601068.tif 000007
【図７】
0006601068.tif 000008
【図８】
0006601068.tif 000009
【図９】
0006601068.tif 000010
【図１０】
0006601068.tif 000011
【図１１】
0006601068.tif 000012