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