(57)【要約】      （修正有）【課題】再生装置側の処理能力によらずにコンテンツを円滑且つ高品質にストリーミング再生する。【解決手段】第１記憶装置１７０と、第１記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第２記憶装置１６０とを備えてなるストリーミング再生装置１００は、コンテンツの再生開始データを含むフラグメントＮａと、該フラグメントＮａと連続するフラグメントＮｂを夫々取得する手段と、取得されたフラグメントＮａ及びＮｂを夫々第１及び第２記憶装置に記憶させる手段と、フラグメントＮａからＮｂへフラグメントを順次読み出してコンテンツの再生を開始する手段と、フラグメントＮａの読み出しが終了する以前に又は終了するのと同時にフラグメントＮｂの蓄積が終了するようにフラグメントＮａ及びＮｂ並びにその転送速度を決定する手段とを具備する。【選択図】図２
2012080417.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第１記憶装置と、不揮発性記憶領域を有し、前記第１記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第２記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、
前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントＮａと、少なくとも該フラグメントＮａと連続するデータ部分を含むフラグメントＮｂとの転送を要求する要求手段と、
前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントＮａ及びＮｂを夫々取得する取得手段と、
前記取得されたフラグメントＮａが前記揮発性記憶領域に蓄積されるように前記第１記憶装置を制御する第１記憶制御手段と、
前記取得されたフラグメントＮｂが前記不揮発性記憶領域に蓄積されるように前記第２記憶装置を制御する第２記憶制御手段と、
前記再生開始データが蓄積された時点で前記蓄積されたフラグメントＮａを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントＮａに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントＮｂを前記蓄積されたフラグメントＮａに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、
前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第１特定手段と、
前記第１及び第２記憶装置の状態を特定する第２特定手段と、
前記コンテンツの状態を特定する第３特定手段と、
前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントＮａの読み出しが終了する以前に又は終了するのと同時に前記フラグメントＮｂの蓄積が終了するように、前記フラグメントＮａ及びＮｂ並びにその転送速度を決定する決定手段と
を具備し、
前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントＮａ及びＮｂの転送を要求する
ことを特徴とするストリーミング再生装置。
【請求項２】
前記データ提供ノードは前記ネットワークに複数収容され、
前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントＮａの一部を夫々割り当てる第１割り当て手段と、
前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントＮｂの一部を夫々割り当てる第２割り当て手段と
を更に具備し、
前記要求手段は、前記選択されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントＮａの一部を要求すると共に、前記選択されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントＮｂの一部を要求する
ことを特徴とする請求項１に記載のストリーミング再生装置。
【請求項３】
前記第１割り当て手段は、前記選択されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントＮａの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントＮａのうち転送が完了していないフラグメントの一部を再度割り当て、
前記第２割り当て手段は、前記選択されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントＮｂの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントＮｂのうち転送が完了していないフラグメントの一部を再度割り当てる
ことを特徴とする請求項２に記載のストリーミング再生装置。
【請求項４】
前記フラグメントは、前記フラグメントＮａ及び前記フラグメントＮｂのうち少なくとも一方に含まれる
ことを特徴とする請求項１から３のいずれか一項に記載のストリーミング再生装置。
【請求項５】
前記フラグメントＮａの転送速度は、前記コンテンツの再生速度であり、前記フラグメントＮｂの転送速度は、前記ストリーミング再生装置の受信帯域のうち前記再生速度に相当する帯域を除く残余の受信帯域に相当する転送速度である
ことを特徴とする請求項１から４のいずれか一項に記載のストリーミング再生装置。
【請求項６】
前記フラグメントＮａは、前記再生開始データを含むフラグメントＮ０と、該フラグメントＮ０を除くフラグメントＮ１から構成され、
前記要求手段は、前記フラグメントＮ０の取得が完了するまで前記フラグメントＮｂの要求を待機する
ことを特徴とする請求項１から５のいずれか一項に記載のストリーミング再生装置。
【請求項７】
前記フラグメントＮ０の転送速度は、前記データ提供ノードの間で規定される最大転送速度である
ことを特徴とする請求項６に記載のストリーミング再生装置。
【請求項８】
前記要求手段は、前記フラグメントＮａが前記コンテンツデータの先頭から順次取得されるように前記フラグメントＮａを要求すると共に、前記フラグメントＮｂが最後尾の前記フラグメントから順次取得されるように前記フラグメントＮｂを要求し、
前記取得手段は、前記フラグメントＮａと前記フラグメントＮｂとが重複しないように前記フラグメントＮａと前記フラグメントＮｂを取得する
ことを特徴とする請求項１から７のいずれか一項に記載のストリーミング再生装置。
【請求項９】
前記第１特定手段は、前記ストリーミング再生装置の受信帯域幅及び前記データ提供ノードの送信帯域幅を特定する
ことを特徴とする請求項１から８のいずれか一項に記載のストリーミング再生装置。
【請求項１０】
前記第２特定手段は、前記第１及び第２記憶装置の残容量及び負荷状態を特定する
ことを特徴とする請求項１から９のいずれか一項に記載のストリーミング再生装置。
【請求項１１】
前記第３特定手段は、前記コンテンツのデータサイズ及び再生速度を特定する
ことを特徴とする請求項１から１０のいずれか一項に記載のストリーミング再生装置。
【請求項１２】
前記第２記憶制御手段は、前記順次読み出されたフラグメントＮａが前記第２記憶装置に蓄積されるように前記第２記憶装置を制御する
ことを特徴とする請求項１から１１のいずれか一項に記載のストリーミング再生装置。
【請求項１３】
前記第２制御手段は、所定の消去要求に応じて前記不揮発性記憶領域に蓄積されたフラグメントを消去する
ことを特徴とする請求項１から１２のいずれか一項に記載のストリーミング再生装置。
【請求項１４】
コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第１記憶装置と、不揮発性記憶領域を有し、前記第１記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第２記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、
前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントＮａと、少なくとも該フラグメントＮａと連続するデータ部分を含むフラグメントＮｂとの転送を要求する要求工程と、
前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントＮａ及びＮｂを夫々取得する取得工程と、
前記取得されたフラグメントＮａが前記揮発性記憶領域に蓄積されるように前記第１記憶装置を制御する第１記憶制御工程と、
前記取得されたフラグメントＮｂが前記不揮発性記憶領域に蓄積されるように前記第２記憶装置を制御する第２記憶制御工程と、
前記再生開始データが蓄積された時点で前記蓄積されたフラグメントＮａを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントＮａに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントＮｂを前記蓄積されたフラグメントＮａに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、
前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第１特定工程と、
前記第１及び第２記憶装置の状態を特定する第２特定工程と、
前記コンテンツの状態を特定する第３特定工程と、
前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントＮａの読み出しが終了する以前に又は終了するのと同時に前記フラグメントＮｂの蓄積が終了するように前記フラグメントＮａ及びＮｂ並びにその転送速度を決定する決定工程と
を具備し、
前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントＮａ及びＮｂの転送を要求する
ことを特徴とするストリーミング再生方法。
【請求項１５】
コンピュータシステムを請求項１から１３のいずれか一項に記載のストリーミング再生装置として機能させることを特徴とするコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを記録してなる記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、映像や音声等に係る各種コンテンツのストリーミング再生を行うためのストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体の技術分野に関する。
【背景技術】
【０００２】
コンテンツのストリーミング再生方法として、コンテンツストリームを再生レートよりも大きいレートで搬送する方法１と、同じく再生レートで搬送する方法２とを用いたリアルタイムストリーミング方式を採用したものが提案されている（例えば、特許文献１参照）。特許文献１に開示されたコンテンツ配信システムによれば、再生開始時に上記方法１を選択することによりバッファにキャッシュを蓄積すると共に、バッファにキャッシュが蓄積された後は上記方法２を選択することにより、ネットワークが途切れた場合でも、バッファ内のキャッシュを用いて再生を継続させることができるとされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２４４５４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、コンテンツの再生速度でバッファへの書き込みを行う場合、書き込みに要する時間は、コンテンツの再生時間と等しくなる。従って、この種のリアルタイムストリーミングにおいては、ネットワークに接続している必要のある時間が総じて長大化し易い。無論、この種のリアルタイムストリーミングに用いられるバッファの容量を、コンテンツのデータ量に対して十分に大きく採ることができれば、再生速度に同期した書き込みは必ずしも必要ではないが、例えば各種映像コンテンツのように比較的大容量のコンテンツを考えた場合、バッファの容量はコンテンツのデータ量に対して十分に小さいのが一般的である。
【０００５】
一方、ネットワークの状態は、時間的に安定しない場合も多く、ネットワークへの接続が不意に中断する等、何らかの障害が発生する可能性は低くない。従って、ネットワークへの接続時間が相対的に長くならざるを得ないこの種のリアルタイムストリーミングにおいては、コンテンツの再生品質が、ネットワークの状態に依存することになる。
【０００６】
ここで特に、特許文献１に開示された装置によれば、ネットワークに障害が発生したとしても、バッファに蓄積されたキャッシュによって一定時間はコンテンツの再生を継続し得るが、上述したようにバッファの容量はコンテンツのデータ量に対して大きくないから、その効果は限定的であって、コンテンツの安定的再生を目的とするには実践的にみて不十分であると言わざるを得ない。
【０００７】
ところで、この種のリアルタイムストリーミング方式とは別に、ＨＤＤ（Hard Disk Drive）等の大容量記憶装置に一定単位のコンテンツをダウンロードしつつ順次再生するプログレッシブダウンロード方式も公知である。この方式であれば、バッファとしてのＨＤＤの容量をコンテンツのデータ量よりも大きく採ることも容易であり、ネットワークへの接続時間を短縮化することも可能である。
【０００８】
ところが、この場合、ＨＤＤへのコンテンツの書き込みとＨＤＤからのコンテンツの読み出しとが同時に実行される必要がある。読み出しと書き込みとを同時に行うには、制御装置側に大きな処理能力が必要であるから、プログレッシブダウンロード方式の恩恵を享受できるのは、現実的には、高い処理能力を有する一部の高性能な（言うなれば、高価な）再生装置だけである。即ち、例えば携帯型端末装置や比較的安価なネットワーク対応型家庭用電機機器等の、機器性能が少なからず制限されざるを得ない装置環境においては、コンテンツの書き込みと読み出しとのいずれかが円滑に行われない可能性が高くなり、結果的にコンテンツの円滑なストリーミングが難しくなる。
【０００９】
即ち、従来の再生装置には、再生装置側の処理能力に影響されない、コンテンツの高品質なストリーミング再生が困難であるという技術的問題点がある。
【００１０】
本発明は、係る問題点に鑑みてなされたものであり、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生を実現し得るストリーミング再生装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するため、請求項１のストリーミング再生装置は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第１記憶装置と、不揮発性記憶領域を有し、前記第１記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第２記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントＮａと、少なくとも該フラグメントＮａと連続するデータ部分を含むフラグメントＮｂとの転送を要求する要求手段と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントＮａ及びＮｂを夫々取得する取得手段と、前記取得されたフラグメントＮａが前記揮発性記憶領域に蓄積されるように前記第１記憶装置を制御する第１記憶制御手段と、前記取得されたフラグメントＮｂが前記不揮発性記憶領域に蓄積されるように前記第２記憶装置を制御する第２記憶制御手段と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントＮａを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントＮａに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントＮｂを前記蓄積されたフラグメントＮａに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第１特定手段と、前記第１及び第２記憶装置の状態を特定する第２特定手段と、前記コンテンツの状態を特定する第３特定手段と、前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントＮａの読み出しが終了する以前に又は終了するのと同時に前記フラグメントＮｂの蓄積が終了するように前記フラグメントＮａ及びＮｂ並びにその転送速度を決定する決定手段とを具備し、前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントＮａ及びＮｂの転送を要求することを特徴とする。
【００１２】
上述した課題を解決するため、請求項１４のストリーミング再生方法は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第１記憶装置と、不揮発性記憶領域を有し、前記第１記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第２記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントＮａと、少なくとも該フラグメントＮａと連続するデータ部分を含むフラグメントＮｂとの転送を要求する要求工程と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントＮａ及びＮｂを夫々取得する取得工程と、前記取得されたフラグメントＮａが前記揮発性記憶領域に蓄積されるように前記第１記憶装置を制御する第１記憶制御工程と、前記取得されたフラグメントＮｂが前記不揮発性記憶領域に蓄積されるように前記第２記憶装置を制御する第２記憶制御工程と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントＮａを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントＮａに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントＮｂを前記蓄積されたフラグメントＮａに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第１特定工程と、前記第１及び第２記憶装置の状態を特定する第２特定工程と、前記コンテンツの状態を特定する第３特定工程と、前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントＮａの読み出しが終了する以前に又は終了するのと同時に前記フラグメントＮｂの蓄積が終了するように前記フラグメントＮａ及びＮｂ並びにその転送速度を決定する決定工程とを具備し、前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントＮａ及びＮｂの転送を要求することを特徴とする。
【００１３】
上述した課題を解決するため、請求項１５のコンピュータプログラムは、コンピュータシステムを請求項１から１３のいずれか一項に記載のコンテンツ再生装置として機能させることを特徴とする。
【００１４】
上述した課題を解決するため、請求項１６の記録媒体は、請求項１５のコンピュータプログラムを記録することを特徴とする。
＜ストリーミング再生装置の実施形態＞
【００１５】
本発明のストリーミング再生装置に係る実施形態は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第１記憶装置と、不揮発性記憶領域を有し、前記第１記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第２記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントＮａと、少なくとも該フラグメントＮａと連続するデータ部分を含むフラグメントＮｂとの転送を要求する要求手段と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントＮａ及びＮｂを夫々取得する取得手段と、前記取得されたフラグメントＮａが前記揮発性記憶領域に蓄積されるように前記第１記憶装置を制御する第１記憶制御手段と、前記取得されたフラグメントＮｂが前記不揮発性記憶領域に蓄積されるように前記第２記憶装置を制御する第２記憶制御手段と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントＮａを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントＮａに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントＮｂを前記蓄積されたフラグメントＮａに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第１特定手段と、前記第１及び第２記憶装置の状態を特定する第２特定手段と、前記コンテンツの状態を特定する第３特定手段と、前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントＮａの読み出しが終了する以前に又は終了するのと同時に前記フラグメントＮｂの蓄積が終了するように前記フラグメントＮａ及びＮｂ並びにその転送速度を決定する決定手段とを具備し、前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントＮａ及びＮｂの転送を要求する。
【００１６】
実施形態に係る、揮発性記憶領域を有する第１記憶装置とは、例えば、ＲＡＭ（Random Access Memory）等の各種メモリデバイスであり、不揮発性記憶領域を有する第２記憶装置とは、例えば、ＨＤＤ等を指す。但し、これらの実践的態様は、書き込み速度と蓄積容量との相対関係が満たされる限りにおいて如何様にも限定されない趣旨である。
【００１７】
実施形態に係る「ネットワーク」とは、例えばＷＡＮ（Wide Area Network）網、ＬＡＮ（Local Area Network）網、又はこれらＷＡＮ網又はＬＡＮ網を介して或いは電話回線、ＡＤＳＬ（Asymmetric Digital Subscriber Line）又は光ファイバーケーブル等を介して適宜に接続されるインターネット網等の各種データ通信網を包括する概念である。
【００１８】
実施形態に係る「データ提供ノード」とは、例えば、各種サーバ装置やパーソナルコンピュータ装置等を意味する。サーバ装置は、接続者を限定しない開かれたサーバ装置であってもよいし、接続者が限定される閉じられたサーバ装置であってもよい。尚、データ提供ノードは、予め決まった装置であってもよいし、然るべき候補の中から、その都度適宜選択或いは決定される装置であってもよい。
【００１９】
実施形態に係るストリーミング再生装置によれば、その動作時には、要求手段により、一又は複数のデータ提供ノードに対し、フラグメントＮａ及びフラグメントＮｂの転送が要求される。
【００２０】
転送が要求される、フラグメントＮａ及びＮｂは、夫々コンテンツデータを分割してなる断片データとしてのフラグメントであり、好適には、複数の転送単位データの集合である。フラグメントＮａは、コンテンツのストリーミング再生を開始するために必要となる再生開始データ（ストリーミング再生装置に固有のデータ量に相当するデータである）を含むデータである。また、フラグメントＮｂは、このフラグメントＮａと連続するデータ部分を含むデータである。
【００２１】
尚、フラグメントＮｂについて補足すると、フラグメントＮｂは、好適には、フラグメントＮａの最終データ部分と連続性を有するデータ部分からコンテンツデータの最終位置を規定するデータ部分までを含むフラグメントである。但し、フラグメントＮａとの連続部分を含む限りにおいて、一部がフラグメントＮａと重複していてもよい。また、必ずしも当該最終位置を規定するデータ部分を含まずともよい。
【００２２】
一又は複数のデータ提供ノードにおいては、この転送要求によって指定されたフラグメントを、順次ネットワークを介して、ストリーミング再生装置の実施形態に対し転送する。この際、少なくともフラグメントＮａに関して言えば、好適には、コンテンツデータの先頭に相当するデータから順次転送される。各データ提供ノードから転送されてくるフラグメントは、取得手段によりその各々について順次取得される。尚、転送要求を含む、データ提供ノードとの間の各種データの送受信形態は、例えば然るべきサーバ装置を介したものであってもよいし、例えばＰ２Ｐ（Peer To Peer）等サーバ装置を介さないものであってもよい。
【００２３】
一方、実施形態によれば、転送されるフラグメントのうち、フラグメントＮａが、第１記憶装置における揮発性記憶領域に記憶され、フラグメントＮｂが、第２記憶装置における不揮発性記憶領域に記憶される。尚、一又は複数のデータ提供ノードから転送されるフラグメントがいずれのフラグメントであるかは、各データ提供ノードがフラグメントを転送するにあたって送信するプロトコル等に記述されたフラグメント位置等の情報により判別される。
【００２４】
他方、取得されたフラグメントが、夫々然るべき記憶領域（記憶装置）へ蓄積される過程において、再生手段は、コンテンツのストリーミングを然るべき開始タイミングで開始する。より具体的には、再生手段は、再生開始データが第１記憶装置の揮発性記憶領域に蓄積された時点以降、揮発性記憶領域からフラグメントＮａを順次読み出してコンテンツのストリーミング再生を開始する。
【００２５】
ストリーミング再生が開始されると、第１記憶装置の揮発性記憶領域に蓄積されたフラグメント量（即ち、キャッシュ量）は、フラグメントＮａの転送速度と、コンテンツの再生速度（好適には、コンテンツのエンコードビットレート）との相対関係で決まる増減速度で増減する。
【００２６】
例えば、キャッシュ量が揮発性記憶領域の蓄積容量（ハードウェア上の容量或いはその時点の負荷状況等に応じて許可される容量）に到達するまでコンテンツの再生速度よりも広帯域でフラグメントＮａを取得し、それ以降、再生速度とフラグメントＮａの転送速度とを一致させる等の措置を講じる場合、再生済みのキャッシュデータが順次揮発性記憶領域から破棄されるとすれば、キャッシュ量は、第１記憶装置に許容される蓄積容量に到達して以降、暫時この蓄積容量に維持される。また、フラグメントＮａの書き込み終了後は、キャッシュ量は漸減する。
【００２７】
この第１記憶装置のキャッシュ量の減少に伴い、キャッシュ量がゼロとなると、所謂再生バッファとしての記憶装置が、第１記憶装置から第２記憶装置へ切り替えられ、第２記憶装置の不揮発性記憶領域に記憶されたフラグメントＮｂが、最後に読み出されたフラグメントＮａに連続する部分から順次読み出されてストリーミング再生が継続される。
【００２８】
ここで、このようにフラグメントＮａとフラグメントＮｂとを、その少なくとも一部において相互に並行して然るべき記憶領域に記憶することにより、例えば、相対的に蓄積容量が小さい第１記憶装置のみにコンテンツデータを蓄積する場合や、相対的に書き込み速度の遅い第２記憶装置のみにコンテンツデータを蓄積する場合と較べて、コンテンツデータの取得に要する時間は短縮化され得る。その結果、ネットワーク障害等に影響され難い高品質なストリーミング再生が可能となる。
【００２９】
ところで、不揮発性記憶領域へのフラグメントの書き込み及び読み出しに係る処理は、揮発性記憶領域に対するそれと比べて高負荷な処理であり、これらを並行して実行するには、ストリーミング再生装置側に高い処理能力が要求されることが多い。従って、必ずしもデータ処理能力が最優先されない各種の携帯型端末や比較的安価なネットワーク対応型家庭用電気機器等においては、フラグメントの書き込み速度が低下する或いはフラグメントの読み出しが円滑に行われない等の問題が新たに発生し、結局のところ、コンテンツの再生品質が低下し易いといった問題が解決され難い。
【００３０】
そこで、本実施形態においてストリーミング再生装置では、第１、第２及び第３特定手段の作用により、ネットワークを介したデータ提供ノードとの間の通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態が夫々特定され、決定手段が、これら特定された要素に基づいて、データ提供ノードに要求すべきフラグメントＮａ及びフラグメントＮｂを、その転送速度と共に決定する仕組みとなっている。
【００３１】
第１特定手段により特定されるネットワークの通信状態とは、例えば、データ提供ノードの送信帯域、ストリーミング再生装置の受信帯域、ネットワークの伝送速度、ＲＴＴ（Round Trip Time）、ＴＴＬ（Time To Live）及びハードウェア性能等を意味する。また、第２特定手段により特定される各記憶装置の状態とは、例えば、各記憶装置における使用可能な蓄積容量や負荷状態等を意味する。更に、第３特定手段により特定されるコンテンツの状態とは、コンテンツのデータサイズや再生速度（エンコードビットレート）等を意味する。これら各種の被特定要素は、いずれも、単独で或いは複数の要素を組み合わせることによって、第１記憶装置におけるフラグメントＮａの読み出し終了タイミングと、第２記憶装置におけるフラグメントＮｂの書き込み終了タイミングとの時間軸上の関係を推定し得る情報となる。
【００３２】
ここで、決定手段は、これら各特定手段により特定された情報に基づいて、フラグメントＮａの読み出しが終了する以前に又は終了するのと同時にフラグメントＮｂの蓄積が終了するように、フラグメントＮａ及びＮｂ並びにその転送速度を決定する。要求手段は、データ提供ノードに対し、この決定されたフラグメントＮａ及びＮｂの、この決定された転送速度による転送を要求する。
【００３３】
上述した第２記憶装置におけるフラグメントの書き込み処理と読み出し処理との重複は、フラグメントＮａの読み出しが、フラグメントＮｂの書き込み終了以前に終了してしまうことによって発生する。従って、このような事態を回避すれば、即ち、フラグメントＮａの読み出し終了以前に又は読み出し終了と同時にフラグメントＮｂの書き込みが終了すれば、第２記憶装置におけるフラグメントの書き込み処理と読み出し処理とは、相互に異なる時間帯に行われることとなる。これらが時間軸上で重複して実行されることがなければ、フラグメントの書き込み処理と読み出し処理とが相互いに阻害し合うことはなくなり、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現されるのである。
【００３４】
このような時間軸上の関係を実現し得るフラグメントＮａ及びＮｂは、要求手段による転送要求時における両フラグメントの転送速度を規定することにより求めることができる。また逆に、予めフラグメントＮａ及びＮｂが規定されていれば、このような時間軸上の関係を実現し得る両フラグメントの転送速度を求めることができる。但し、通常、ストリーミング再生装置とデータ提供ノードとの間のデータ転送速度には各種の制約があるから、後者よりも前者の方が現実的であることは言うまでも無い。即ち、好適な一形態としては、予め設定される、或いはその都度適宜設定される（いずれにせよ、「決定」の範疇である）両フラグメントの転送速度に基づいた各種演算処理の結果として、フラグメントＮａ及びＮｂが決定される。
【００３５】
尚、決定手段は、少なくともフラグメントＮｂの書き込み中にフラグメントＮａの読み出しが終了しない限りにおいて、比較的自由にコンテンツデータをその断片たる各フラグメントに分割することができる。
【００３６】
この際、第２記憶装置の不揮発性記憶領域に対する書き込み処理の終了タイミングと、第１記憶装置の揮発性記憶領域に対する読み出し処理の終了タイミング（即ち、一義的に、第２記憶装置の不揮発性記憶領域に対する読み出し処理の開始タイミングである）との間に生じる時間間隔は、コンテンツデータの総体的な転送時間を短縮する観点からは小さい方がよい。
【００３７】
一方、ネットワークを介した通信状態や、記憶装置各々の負荷状態等は、必ずしも一定でないから、係る時間間隔に冗長度が全く無いと、例えば第２記憶装置における書き込み処理が何らかの理由により一時的に遅延した場合等において、第１記憶装置から第２記憶装置へのバッファの切り替え時を含む過渡的な期間について、第２記憶装置の不揮発性記憶領域に対する書き込み処理と読み出し処理とが並存して、コンテンツの円滑なストリーミングが阻害される可能性がある。そのような観点から言えば、予め実験的に、経験的に、理論的に又はシミュレーション等に基づいて、転送時間と再生品質とが共に要求値を満たし得る、当該時間間隔の適当な基準が設けられていてもよい。
【００３８】
尚、特定手段に係る特定プロセスは、例えば一定又は不定の周期で周期的に実行されてもよいし、然るべき条件が満たされた場合においてオンデマンドで実行されるものであってもよい。また、実施形態に係る「特定」とは、特定対象を、直接的に又は間接的に制御上の参照値として確定させることを意味しており、検出、算出、導出、推定、同定、選択或いは取得等、その実践上のプロセスは何ら限定されない趣旨である。
【００３９】
尚、ストリーミング再生装置の実施形態に係る各手段は、夫々が或いは全体として、例えばＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等の各種演算処理装置、各種プロセッサ、コントローラ又は各種機能モジュール等として構成されていてもよい。
【００４０】
ストリーミング再生装置に係る実施形態の一の態様では、前記データ提供ノードは前記ネットワークに複数収容され、前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントＮａの一部を夫々割り当てる第１割り当て手段と、前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントＮｂの一部を夫々割り当てる第２割り当て手段とを更に具備し、前記要求手段は、前記選択されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントＮａの一部を要求すると共に、前記選択されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントＮｂの一部を要求する。
【００４１】
データ提供ノードがネットワークに複数収容される場合、フラグメントＮａ及びＮｂを要求するノードを、これら複数のデータ提供ノードから比較的自由に選択することができる。特に、特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいてデータ提供ノードを選択する場合、フラグメントの転送を要求するのに最も適した一のデータ提供ノードを、或いは、フラグメントの転送を要求するのに比較的適した複数のデータ提供ノードを、確実に選択することができる。
【００４２】
従って、例えば、ストリーミング再生装置の受信帯域幅が、各データ提供ノードの送信帯域幅よりも大きい場合等に、フラグメントＮａ或いはＮｂを適宜分割して、複数のデータ提供ノードから当該分割されたフラグメントを取得する等を措置を講じることにより、受信帯域をより効率的に使用することが可能となる。
【００４３】
第１割り当て手段及び第２割り当て手段に係る、データ提供ノードの選択及びフラグメントの割り当てに関する実践的態様は、決定手段により決定されるフラグメントＮａ及びＮｂ並びにその転送速度が担保される限りにおいて如何様にも限定されない。フラグメントＮａ及びＮｂのデータサイズと、その転送速度とが担保される限りにおいて、第２記憶装置においてフラグメントの書き込みと読み出しとが同時に発生することはないからである。
【００４４】
尚、この態様では、前記第１割り当て手段は、前記選択されたフラグメントＮａの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントＮａの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントＮａのうち転送が完了していないフラグメントの一部を再度割り当て、前記第２割り当て手段は、前記選択されたフラグメントＮｂの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントＮｂの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントＮｂのうち転送が完了していないフラグメントの一部を再度割り当ててもよい。
【００４５】
複数のデータ提供ノードからフラグメントを取得し得る構成においては、上述のように、ストリーミング再生装置の受信帯域を有効利用することが可能となるが、その一方で、一時的又は長期的な各種のネットワーク障害の影響を受ける可能性もまた高くなる。
【００４６】
例えば、フラグメントＮｂを要求すべきものとして選択されたデータ提供ノードの一部との間でネットワーク障害が生じた場合、フラグメントＮｂの取得完了が遅れてフラグメントＮｂの読み出しと書き込みとが一時的にせよ同時に発生しかねない。或いは、フラグメントＮａを要求すべきものとして選択されたデータ提供ノードの一部との間でネットワーク障害が生じた場合、フラグメントＮａの取得完了が遅れて、コンテンツの再生が中断しかねない。
【００４７】
この態様によれば、第１及び第２割り当て手段に、データ提供ノードの再選択及び再選択されたデータ提供ノードに対するフラグメントの再割り当て機能が備わるため、各瞬のネットワーク障害の発生に際しても、迅速且つ柔軟に対処することが可能となり、コンテンツのストリーミング再生を安定して継続させることができる。尚、ネットワーク障害の検出は、転送を要求したデータ（フラグメントの一部）が転送されたか否か等の情報に基づいて、常時遅滞なく検出可能である。
【００４８】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントは、前記フラグメントＮａ及び前記フラグメントＮｂのうち少なくとも一方に含まれる。
【００４９】
この態様によれば、相互いに連続する断片データのみからなるフラグメントＮａと、同じく相互いに連続する断片データのみからなるフラグメントＮｂとによって、コンテンツデータが形成される。従って、データ提供ノードへ各フラグメントを要求するにあたっての処理負荷が軽減され得る。また、この際、理想的には、フラグメントＮａとフラグメントＮｂとの間には、重複部分が存在しないのが望ましい。
【００５０】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントＮａの転送速度は、前記コンテンツの再生速度であり、前記フラグメントＮｂの転送速度は、前記ストリーミング再生装置の受信帯域のうち前記再生速度に相当する帯域を除く残余の受信帯域に相当する転送速度である。
【００５１】
この態様によれば、フラグメントＮａがコンテンツの再生速度に相当する転送速度で転送され、フラグメントＮｂが、使用可能な受信帯域のうちフラグメントＮａの転送に使用される帯域を除く残余の受信帯域に相当する転送速度で転送される。
【００５２】
第１記憶装置の揮発性記憶領域は、通常、再生開始データと比較して大きく且つコンテンツのデータサイズと比較して小さい。このため、取得されたフラグメントＮａが第１記憶装置に許容される記憶容量に達してしまえば、再生済みのキャッシュを順次破棄したとして、フラグメントＮａの転送速度はコンテンツの再生速度に律束される。逆に、コンテンツの再生速度でフラグメントＮａを取得すれば、基本的に、第１記憶装置に蓄積されるコンテンツのキャッシュは、フラグメントＮａの取得完了まで減少することがないから、コンテンツの再生は安定的に継続される。
【００５３】
この態様によれば、ストリーミング再生装置の受信帯域のうち、再生速度に相当する帯域を除く残余の帯域を利用してフラグメントＮｂが取得される。従って、一方でコンテンツを安定的に再生しつつ、第２記憶装置に効率的にフラグメントＮｂを蓄積し、コンテンツデータの全体的なダウンロード時間を短縮化することが可能となる。
【００５４】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントＮａは、前記再生開始データを含むフラグメントＮ０と、該フラグメントＮ０を除くフラグメントＮ１から構成され、前記要求手段は、前記フラグメントＮ０の取得が完了するまで前記フラグメントＮｂの要求を待機する。
【００５５】
この態様によれば、フラグメントＮａが、再生開始データを含むフラグメントＮ０とそれ以外のフラグメントＮ１とに分割され、データ提供ノードへフラグメントを要求するにあたっては、先ずフラグメントＮ０のみの転送が要求される。即ち、フラグメントＮ０の取得が完了するまでは、フラグメントＮａの取得が、フラグメントＮｂの取得に優先される。従って、ストリーミング再生装置の受信帯域を、フラグメントＮ０の取得のために優先的に使用することが可能となり、フラグメントＮ０の取得完了に要する時間を可及的に短縮化することができる。
【００５６】
ここで特に、フラグメントＮ０は、フラグメントＮａのうち再生開始データを含む断片であるから、このようにその取得が優先され、その取得時期が早められることにより、コンテンツの再生開始時期を可及的に早めることが可能となる。
【００５７】
尚、再生手段は、再生開始データの取得（蓄積）完了をトリガとしてコンテンツのストリーミング再生を開始する。従って、フラグメントＮ０のうち再生開始データの取得完了後は、フラグメントＮ０の転送速度とコンテンツの再生速度との差分に相当する速度でフラグメントＮ０の取得が進行する。ここで、第１記憶装置における揮発性記憶領域の蓄積容量が、この再生開始データに対して十分に大きくない場合（無論、少なくとも再生開始データよりは大きい）、コンテンツの再生開始から間を置かずして当該揮発性記憶領域はフラグメントＮ０で満たされる。それ以降は、再生速度以上でのフラグメントの蓄積は出来なくなる。その点に鑑みれば、フラグメントＮ０のデータサイズは、好適には、第１記憶装置の蓄積容量がフラグメントＮ０で満たされた時点における、フラグメントの総取得量（当該蓄積容量よりは、再生による読み出し分だけ大きい）であるのが望ましい。
【００５８】
尚、上述したフラグメントＮａをコンテンツの再生速度に相当する転送速度で転送し、フラグメントＮｂを受信帯域の残余の帯域に相当する転送速度で転送する態様において本態様が適用されるにあたっては、フラグメントＮ１の転送速度をコンテンツの再生速度相当とし、フラグメントＮｂをフラグメントＮ０の取得完了以降、残余の帯域に相当する転送速度で転送するようにするのが好適である。
【００５９】
このようにすれば、再生済みのキャッシュを順次第１記憶装置から破棄することによって、第１記憶装置におけるフラグメントの蓄積量は、フラグメントＮ１の取得完了時点まで時間的に不変となる。従って、第１記憶装置におけるバッファオーバーフローやバッファアンダーフローを考慮することなく、ストリーミング再生装置の残余の受信帯域又はデータ提供ノードの残余の送信帯域を、フラグメントＮｂの取得又は転送に効率的に使用することができる。また、フラグメントＮｂがその時点の最大転送速度で転送されることとなるため、フラグメントＮｂを可及的迅速に取得することができ、コンテンツデータのダウンロード時間を短縮化することが可能となる。
【００６０】
尚、この際、前述したように、フラグメントＮ０の取得完了時点で第１記憶装置の蓄積容量が最大限に使用されていれば、フラグメントＮ１の取得完了時点まで、第１記憶装置は、その蓄積容量を最大限に使用した状態が維持され、より好適である。
【００６１】
尚、この態様では、前記フラグメントＮ０の転送速度は、前記データ提供ノードの間で規定される最大転送速度であってもよい。
【００６２】
最大転送速度による転送とは、ストリーミング再生装置の受信帯域の利用効率が理論的に又は何らか制約の範囲で実質的に最大であることと等価である。従って、この場合、許容される条件下でフラグメントＮ０を最短時間で取得することが可能となり、コンテンツの再生要求が生じた時点から、ストリーミング再生が開始されるまでの時間的遅延を最大限に短縮化することができる。
【００６３】
尚、受信帯域の利用効率は、受信帯域全域をフラグメントＮ０の取得に供した場合に１００％で最大となる（この場合の転送速度が、理論的な最大転送速度である）。例えば、データ提供ノードが一つで且つその送信帯域幅がストリーミング再生装置の受信帯域幅を超える場合、フラグメントＮ０の転送速度を当該受信帯域に等しくすることが可能となり、受信帯域の利用効率は１００％となる。一方、データ提供ノードが一つで且つその送信帯域がストリーミング再生装置の受信帯域よりも小さければ、当該受信帯域の全域を使用することはできず、利用効率としては１００％未満となるが、データ提供ノードが一つである場合に、実質的にその送信帯域の全てをフラグメントＮ０の転送に供しているのであれば、結局は、フラグメントＮ０が最大転送速度で転送されることに変わりはない。
【００６４】
他方、例えば上述した一態様の如く、データ提供ノードが複数存在する場合、データ提供ノードの送信帯域の総和が当該受信帯域を越えるまで、データ提供ノードの数量を増やすことができる。この場合、個々のデータ提供ノードの送信帯域に関係なく、受信帯域の全域をフラグメントＮ０の取得に利用することが可能となり、効果的である。
【００６５】
尚、複数のデータ提供ノードに対してフラグメントＮ０を要求する場合、フラグメントＮ０を構成するフラグメントのデータ位置は、基本的にはノード間で異ならしめられる。但し、データの伝送プロトコルによっては、フラグメントを転送する際にパケットエラーが頻繁に生じることがある。このような場合に、フラグメントの再送要求を頻繁に行われるのは、必ずしも効率的なデータ転送に繋がらない場合もある。そのような観点から、最大転送速度での転送を要求するにあたり、予め複数のノードに対し一部又は全体が重複するフラグメントＮ０が要求されてもよい。
【００６６】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記要求手段は、前記フラグメントＮａが前記コンテンツデータの先頭から順次取得されるように前記フラグメントＮａを要求すると共に、前記フラグメントＮｂが最後尾の前記フラグメントから順次取得されるように前記フラグメントＮｂを要求し、前記取得手段は、前記フラグメントＮａと前記フラグメントＮｂとが重複しないように前記フラグメントＮａと前記フラグメントＮｂを取得する。
【００６７】
この態様によれば、フラグメントＮａ（先述した、フラグメントＮ０及びＮ１に分割される場合も含む）がコンテンツデータの先頭位置から、フラグメントＮｂは、コンテンツデータの最後尾の位置から夫々取得される。従って、フラグメントＮａとフラグメントＮｂとは、その並行取得の過程において、最終的に、コンテンツデータの一のデータ位置で出会うことになる。
【００６８】
即ち、この態様におけるフラグメントＮａとは、予め設定されたデータ量のフラグメントではなく、コンテンツデータの先頭位置からフラグメントＮｂの先頭（コンテンツの再生順序としての先頭であり、取得順序としては即ち最後尾である）のデータまでのデータ量を有するフラグメントである。同様に、この態様におけるフラグメントＮｂとは、予め設定されたデータ量のフラグメントではなく、コンテンツデータの最後尾の位置からフラグメントＮａの最後尾のデータまでのデータ量を有するフラグメントである。
【００６９】
ここで、先に述べたように、ネットワークの伝送状態や、第１及び第２記憶装置の負荷状態等は、時間的に決して不変ではなく、コンテンツデータのダウンロード時間の範囲において、変動することも珍しくない。このような場合、予めフラグメントＮａ及びＮｂのデータ量を定めてしまうと、フラグメントＮｂの書き込み終了前にフラグメントＮａの読み出しが終了してしまう可能性がある。
【００７０】
その点、このように、フラグメントＮａを先頭から、フラグメントＮｂを最後尾から夫々転送するように転送要求が構築されていれば、ネットワークの伝送状態や各記憶装置の負荷状態を反映した現実的なデータ転送プロセスの中で、フラグメントＮｂの書き込み終了前にフラグメントＮａの読み出しが終了する事態を確実に防止することができる。
【００７１】
即ち、何らかの理由で第２記憶装置の不揮発性記憶領域へのフラグメントＮｂの書き込みが遅滞すれば、その分フラグメントＮａが大きくなり、何らかの理由で第１記憶装置の揮発性記憶領域へのフラグメントＮａの書き込みが遅滞すれば、その分フラグメントＮｂが大きくなるのである。
【００７２】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第１特定手段は、前記ストリーミング再生装置の受信帯域及び前記データ提供ノードの送信帯域を特定する。
【００７３】
この態様によれば、第１特定手段により、通信状態として、ストリーミング再生装置の受信帯域及びデータ提供ノードの送信帯域が特定される。これらは、フラグメントＮａの読み出し終了タイミング及びフラグメントＮｂの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「通信状態」の好適な一例となる。
【００７４】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第２特定手段は、前記第１及び第２記憶装置の残容量及び負荷状態を特定する。
【００７５】
この態様によれば、第２特定手段により、各記憶装置の状態として、残容量及び定性的又は定量的な負荷状態が特定される。これらは、フラグメントＮａの読み出し終了タイミング及びフラグメントＮｂの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「第１及び第２記憶装置の状態」の好適な一例となる。
【００７６】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第３特定手段は、前記コンテンツのデータサイズ及び再生速度を特定する。
【００７７】
この態様によれば、第３特定手段により、コンテンツの状態として、コンテンツのデータサイズ及び再生速度が特定される。これらは、フラグメントＮａの読み出し終了タイミング及びフラグメントＮｂの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「コンテンツの状態」の好適な一例となる。
【００７８】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第２記憶制御手段は、前記順次読み出されたフラグメントＮａが前記第２記憶装置に蓄積されるように前記第２記憶装置を制御する。
【００７９】
第１記憶装置の記憶領域は揮発性記憶領域であり、フラグメントＮａをあくまで一時的に保持するに過ぎず、フラグメントＮａのうち読み出されたデータ断片は、基本的に消失することになる。結果的に、コンテンツデータのうち、再生後にストリーミング再生装置に残存するデータは、フラグメントＮｂのみとなる。従って、次回、同一のコンテンツを再生しようとした場合には、フラグメントＮａを再度取得する必要が生じ、効率的でない。
【００８０】
この態様によれば、例えば、フラグメントＮａのデータ断片が第１記憶装置の揮発性記憶領域から読み出される毎に、当該データ断片が複製され、第２記憶制御手段の作用により、第２記憶装置の不揮発性記憶領域に書き込まれる。
【００８１】
従って、コンテンツのストリーミング再生終了後は、コンテンツデータ全体が第２記憶装置の不揮発性記憶領域に蓄積された状態となり、再度コンテンツの再生が所望される場合において、冗長なデータ転送が不要となり、極めて円滑且つ効率的な再生が可能となる。
【００８２】
尚、このように読み出し後のフラグメントＮａが第２記憶装置に書き込まれる構成としても、第２記憶装置の不揮発性記憶領域に対する書き込み処理と読み出し処理とが並行して実行されることはなく、円滑且つ高品質なストリーミング再生を可能とする旨の実施形態の効果は確実に担保される。
【００８３】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第２制御手段は、所定の消去要求に応じて前記不揮発性記憶領域に蓄積されたフラグメントを消去する。
【００８４】
この態様によれば、キーボード、各種ポインティングデバイス、或いは各種スイッチ等の各種入力手段を介した人為操作をトリガとして、或いは何らかの消去条件が満たされた場合に各種コントローラ等を介して自動的に生成される消去要求に応じて、第２記憶装置の不揮発性記憶領域に蓄積されたフラグメント、例えばフラグメントＮｂ或いはそれに加えてフラグメントＮａ（即ち、この場合、実質的にコンテンツデータそのもの）が消去される。従って、第２記憶装置の不揮発性記憶領域を効率的に使用することができる。
【００８５】
本発明のストリーミング再生方法に係る実施形態は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第１記憶装置と、不揮発性記憶領域を有し、前記第１記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第２記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントＮａと、少なくとも該フラグメントＮａと連続するデータ部分を含むフラグメントＮｂとの転送を要求する要求工程と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントＮａ及びＮｂを夫々取得する取得工程と、前記取得されたフラグメントＮａが前記揮発性記憶領域に蓄積されるように前記第１記憶装置を制御する第１記憶制御工程と、前記取得されたフラグメントＮｂが前記不揮発性記憶領域に蓄積されるように前記第２記憶装置を制御する第２記憶制御工程と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントＮａを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントＮａに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントＮｂを前記蓄積されたフラグメントＮａに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第１特定工程と、前記第１及び第２記憶装置の状態を特定する第２特定工程と、前記コンテンツの状態を特定する第３特定工程と、前記特定された通信状態、第１及び第２記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントＮａの読み出しが終了する以前に又は終了するのと同時に前記フラグメントＮｂの蓄積が終了するように前記フラグメントＮａ及びＮｂ並びにその転送速度を決定する決定工程とを具備し、前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントＮａ及びＮｂの転送を要求する。
【００８６】
本発明のストリーミング再生方法に係る実施形態は、本発明のストリーミング再生装置に係る実施形態における各手段の動作に対応する各工程によって、本発明のストリーミング再生装置に係る実施形態と同等の効果を奏し得る。
＜コンピュータプログラムの実施形態＞
【００８７】
本発明のコンピュータプログラムに係る実施形態は、コンピュータシステムを上記いずれかのストリーミング再生装置として機能させる。
【００８８】
当該コンピュータプログラムを格納するＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク等の記録媒体或いはＵＳＢ（Universal Serial Bus）メモリ等コンピュータシステムに着脱可能な固体型記憶装置から、当該コンピュータプログラムをコンピュータシステムに読み込んで実行させれば、或いは、当該コンピュータプログラムを、例えば、通信手段等を介してコンピュータシステムにダウンロードさせた後に実行させれば、上述した本発明のストリーミング再生装置に係る実施形態を比較的簡単に実現できる。
【００８９】
尚、上述した本発明のストリーミング再生装置に係る各実施形態における各種態様に対応して、本発明のコンピュータプログラムに係る実施形態も各種態様を採ることが可能である。
＜記録媒体の実施形態＞
【００９０】
本発明の記録媒体に係る実施形態は、本発明のコンピュータプログラムに係る実施形態を記録する。
【００９１】
本発明の記録媒体に係る実施形態によれば、コンピュータシステムに装着又は接続することによって、或いはコンピュータシステムに備わる又は接続された然るべき読取装置に挿入することによって、記録している本発明のコンピュータプログラムに係る実施形態を、コンピュータシステムに読み込ませて実行させることができ、上述した本発明のストリーミング再生装置に係る実施形態を比較的簡単に実現できる。
【００９２】
以上説明したように、本発明のストリーミング再生装置に係る実施形態によれば、要求手段、取得手段、第１記憶制御手段、第２記憶制御手段、再生手段、第１特定手段、第２特定手段、第３特定手段及び決定手段を具備するので、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現される。
【００９３】
以上説明したように、本発明のストリーミング再生方法に係る実施形態によれば、要求工程、取得工程、第１記憶制御工程、第２記憶制御工程、再生工程、第１特定工程、第２特定工程、第３特定工程及び決定工程を具備するので、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現される。
【００９４】
以上説明したように、本発明のコンピュータプログラムに係る実施形態によれば、コンピュータシステムを本発明のストリーミング再生装置に係る実施形態として機能させることができる。
【００９５】
以上説明したように、本発明の記録媒体に係る実施形態によれば、本発明のコンピュータプログラムに係る実施形態を記録することにより、コンピュータシステムを本発明のストリーミング再生装置に係る実施形態として機能させることができる。
【００９６】
本発明のこのような作用及び他の利得は次に説明する実施例から明らかにされる。
【図面の簡単な説明】
【００９７】
【図１】本発明の第１実施例に係るストリーミングシステムの構成を概念的に表してなる概略構成図である。
【図２】図１のストリーミングシステムにおけるコンテンツ再生装置の構成を概念的に表してなるブロック図である。
【図３】図２のコンテンツ再生装置において実行されるストリーミング再生制御のフローチャートである。
【図４】図２のストリーミング再生制御のサブルーチンたる準備処理のフローチャートである。
【図５】図２のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図６】図２のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図７】図２のストリーミング再生制御のサブルーチンたる受信後処理のフローチャートである。
【図８】図２のストリーミング再生制御における各フラグメントの流れの概念図である。
【図９】図２のストリーミング再生制御における各データ量の一時間推移を例示する図である。
【図１０】本発明の第２実施例に係るストリーミング再生制御のフローチャートである。
【図１１】図１０のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図１２】図１０のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図１３】図１０のストリーミング再生制御のサブルーチンたる受信後処理のフローチャートである。
【図１４】図１０のストリーミング再生制御における各フラグメントの流れの概念図である。
【図１５】本発明の第３実施例に係るストリーミングシステムの構成を概念的に表してなる概略構成図である。
【図１６】図１５のコンテンツ再生装置において実行されるストリーミング再生制御のフローチャートである。
【図１７】図１６のストリーミング再生制御のサブルーチンたる準備処理のフローチャートである。
【図１８】図１６のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図１９】図１６のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図２０】図１６のストリーミング再生制御における各フラグメントの流れの概念図である。
【発明を実施するための形態】
【実施例】
【００９８】
以下、適宜図面を参照して、本発明の好適な各種実施例について説明する。
＜第１実施例＞
＜実施例の構成＞
始めに、図１を参照し、本発明の第１実施例に係るストリーミングシステム１の構成について説明する。ここに、図１は、ストリーミングシステム１の構成を概念的に表してなる概略構成図である。
【００９９】
図１において、ストリーミングシステム１は、夫々が広域ネットワーク２００（本実施例ではＩＰ（Internet Protocol）網である）に収容された、コンテンツ再生装置１００並びにデータ提供ノード３００（即ち、本発明に係る「データ提供ノード」の一例である）を備え、コンテンツ再生装置１００で映像或いは音声に係る各種コンテンツのストリーミング再生を実現するためのシステムである。より具体的には、コンテンツ再生装置１００は、データ提供ノード３００に対してコンテンツデータを要求し、データ提供ノード３００から転送されるコンテンツデータの断片的データに基づいて、ストリーミング再生を行う構成となっている。
【０１００】
尚、図１に例示されるストリーミングシステム１の構成は、コンテンツ再生装置１００でストリーミング再生を行うための一例に過ぎない。例えば、ストリーミングシステム１では、コンテンツ再生装置１００とデータ提供ノード３００とが、特定のサーバ装置を介することなく個別にＰ２Ｐ通信を行う構成となっているが、コンテンツ再生装置１００とデータ提供ノード３００とは、ネットワーク２００に収容された、然るべきサーバ装置を介して通信を行ってもよい。また、図１においては、一つのデータ提供ノード３００が示されるが、現実的な制約を除けば、基本的にデータ提供ノードの数に制限はなく、データ提供ノードは複数であってもよい。Ｐ２Ｐ通信によりストリーミングシステムを構築する場合、ネットワーク２００に収容された不特定多数のノード（例えば、個人所有のパーソナルコンピュータ等）が適宜データ提供ノードとなり得る同時に、コンテンツ再生装置１００も、他のノードに対してデータ提供ノードの一つとなり得る。尚、データ提供ノードが複数である場合については、第３実施例において説明することとする。
【０１０１】
次に、図２を参照し、コンテンツ再生装置１００の構成について、その動作を交えて説明する。ここに、図２は、コンテンツ再生装置１００の構成を概念的に表してなるブロック図である。尚、同図において、図１と重複する箇所には、同一の符合を付してその説明を適宜省略することとする。
【０１０２】
図２において、コンテンツ再生装置１００は、制御部１１０、プロトコル生成部１２０、送信部１３０、受信部１４０、受信データ処理部１５０、ＨＤＤ１６０、高速メモリ１７０及び再生部１８０を備えた、本発明に係る「ストリーミング再生装置」の一例である。
【０１０３】
制御部１１０は、ＣＰＵ又はＭＰＵ等の演算処理装置と、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等の記憶装置を備えた、コンテンツ再生装置１０の動作全体を制御する電子制御装置であり、ＲＯＭに格納されたコンピュータプログラムに従って、後述するストリーミング再生制御を実行可能に構成される。当該コンピュータプログラムは、本発明に係る「ストリーミング再生方法」を実現するための、本発明に係る「コンピュータプログラム」の一例である。
【０１０４】
このコンピュータプログラムは、ハードディスク、ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭ等の各種記録媒体（本発明に係る「記録媒体」の一例である）に記録することが可能であり、この種の記録媒体が、例えば各種のコンピュータシステムに内蔵又は付設される然るべき記録再生装置に設置、格納又は挿入された状態において、当該コンピュータシステムを、本発明に係る「ストリーミング再生装置」の一例として機能させることもまた可能である。
【０１０５】
尚、制御部１１０は、このストリーミング再生制御の実行過程において、本発明に係る「決定手段」、「第１特定手段」、「第２特定手段」及び「第３特定手段」の夫々一例として機能する構成となっている。
【０１０６】
プロトコル生成部１２０は、データ提供ノード３００に対してコンテンツデータの断片データたる各種フラグメントを要求するためのデータ要求プロトコルを生成する処理ユニットであり、本発明に係る「要求手段」の一例である。尚、プロトコル生成部１２０は、制御部１１０によってその動作が上位に制御される構成となっている。
【０１０７】
送信部１３０は、出力端子（符合省略）がネットワーク２００に接続された送信インターフェイスであり、ネットワーク２００を介し、制御部１１０から指定される各種のデータをデータ提供ノード３００へ送信可能に構成されている。尚、制御部１１０がストリーミング再生制御を実行する過程においてプロトコル生成部１２０により生成されるデータ要求プロトコルも、このデータの一つとして送信部１３０から送信される構成となっている。即ち、送信部１３０は、プロトコル生成部１２０と共に、本発明に係る「要求手段」の一例として機能するように構成されている。
【０１０８】
受信部１４０は、出力端子（符合省略）がネットワーク２００に接続された、本発明に係る「取得手段」の一例たる受信インターフェイスであり、ネットワーク２００を介し、データ提供ノード３００から転送される各種のデータを受信可能に構成されている。尚、データ提供ノード３００からネットワーク２００を介して転送される各種フラグメントも、このデータの一つとして受信部１４０で受信される構成となっている。
【０１０９】
受信データ処理部１５０は、受信部１４０を介して受信された受信データの内容を解析する処理ユニットである。受信データ処理部１５０は、制御部１１０によってその動作が上位に制御される構成となっている。受信データ処理部１５０は、例えば、データ提供ノード３００がフラグメントと共に転送する送信プロトコルを解析して、転送されたフラグメントの断片位置やデータサイズを特定することができる。
【０１１０】
ＨＤＤ１６０は、比較的大容量（例えば、数十〜数百ＧＢ或いは数ＴＢ）の不揮発性記憶領域を有するハードディスクと、当該ハードディスクに対する情報の記録再生処理を実行する光ピックアップ装置と、その制御系とを含んでなる、本発明に係る「第２記憶装置」の一例たる記憶装置である。
【０１１１】
高速メモリ１７０は、ＨＤＤ１６０と較べて（厳密には、ＨＤＤ１６０に備わるハードディスクと較べて）小容量（例えば、数百ＭＢ〜数ＧＢ）の蓄積容量Ｍ（byte）を有する揮発性記憶領域を備えたメモリ素子であり、本発明に係る「第１記憶装置」の一例である。尚、高速メモリ１７０は、その揮発性記憶領域に対し、ＨＤＤ１６０の書き込み速度より十分に速い（例えば、数倍〜数十倍）速度で情報を書き込むことができる。その一方で、高速メモリ１７０は、読み出されたデータが揮発性記憶領域から消去される構成となっている。
【０１１２】
再生部１８０は、コンテンツデータ或いはその断片データを、そのエンコードビットレートに等しい再生速度Ｐ（byte/sec）でデコードして出力可能なデコーダ部を備えたコンテンツ再生ユニットであり、本発明に係る「再生手段」の一例である。尚、再生部１８０は、制御部１１０によりその動作が上位に制御される構成となっている。
＜実施例の動作＞
以下、本実施例の動作として、ストリーミング再生制御について説明する。
【０１１３】
＜ストリーミング再生制御の概要＞
始めに、ストリーミング再生制御の概要について説明する。
【０１１４】
ストリーミング再生制御は、コンテンツ再生装置１００においてコンテンツのストリーミング再生を実現するための制御である。コンテンツの再生に必要なコンテンツデータは、コンテンツ再生装置１００に蓄積されておらず、ネットワーク２００を介してデータ提供ノード３００から取得される。この際、データ提供ノード３００から取得されるデータは、コンテンツデータを所定の基準に従って細分化してなる断片データを一単位として取得される。この断片データは、フラグメントと称されるデータ単位を構築する。
【０１１５】
フラグメントは、フラグメントＮ０、フラグメントＮ１及びフラグメントＮ２から構成され、これらの総和は、コンテンツデータに等しくなっている。フラグメント相互間のデータの割り当て（データ量及びデータ位置）は、プロトコル生成部１２０において生成されるデータ要求プロトコルによって規定される。
【０１１６】
コンテンツ再生装置１００は、取得されるコンテンツデータのうち、先頭のデータからＭ０（ｂｉｔ）のデータ量（以下、適宜「再生開始データ量Ｍ０」と称する）に相当する再生開始データが取得された時点で、コンテンツの再生を開始することができる。ストリーミング再生制御は、データ要求プロトコルの送信時点からコンテンツデータのダウンロード完了までの時間を抑制しつつ、制御部１１０の処理能力によらない円滑且つ高品質なストリーミング再生の実現を目的とした制御である。
【０１１７】
＜ストリーミング再生制御の詳細＞
次に、図３を参照し、ストリーミング再生制御の詳細について説明する。ここに、図３は、ストリーミング再生制御のフローチャートである。尚、本実施例では、データ提供ノード３００が再生すべきコンテンツに係るコンテンツデータを全て保持しているものとする。
【０１１８】
図３において、制御部１１０は、準備処理（ステップＳ１００）、初期フラグメント処理（ステップＳ２００）、並列フラグメント処理（ステップＳ３００）及び受信後処理（ステップＳ４００）の順で順次各サブルーチンを実行する。受信後処理が終了すると、ストリーミング再生制御は終了する。
【０１１９】
＜準備処理の詳細＞
次に、図４を参照し、準備処理の詳細について説明する。ここに、図４は、準備処理のフローチャートである。
【０１２０】
図４において、制御部１１０は、ノード情報を取得する（ステップＳ１０１）。
【０１２１】
ここで、ノード情報とは、データ提供ノード３００のＩＰアドレス、保持するフラグメントの情報及び各種ハードウェア性能に関する情報（ＣＰＵの処理速度やメモリの情報）等を意味する。ノード情報は、データ提供ノード３００自身が保持しており、制御部１１０は、データ提供ノードに対してこれらの情報の提供を要求することができる。要求に応じてこれらの情報が提供されると、制御部１１０は、これらを順次受信データ解析部１５０を介して解析し、ノード情報としてＲＡＭに格納する。
【０１２２】
次に、制御部１１０は、コンテンツ情報を取得する（ステップＳ１０２）。本実施例において、コンテンツ情報とは、コンテンツの再生速度Ｐ（byte/sec）及びコンテンツサイズＮ（byte）であるとする。ステップＳ１０２は、コンテンツの状態を特定する旨の、本発明に係る「第３特定手段」の動作の一例である。尚、この際、制御部１１０は、送信部１３０を介して、コンテンツ情報の送信を促すリクエストを送信し、受信部１４０を介し、当該リクエストに応じてデータ転送ノード３００から送信されるコンテンツ情報を取得すると共に、その内容を受信データ解析部１５０により解析することによって、コンテンツ情報を取得し、ＲＡＭに格納する。
【０１２３】
次に、制御部１１０は、バッファ状態を取得する（ステップＳ１０３）。本実施例において、バッファ状態とは、ＨＤＤ１６０及び高速メモリ１７０の空き容量及び負荷状態（ビジー状態）であるとする。ステップＳ１０３は、第１及び第２記憶装置の状態を特定する旨の、本発明に係る「第２特定手段」の動作の一例である。尚、ＨＤＤ１６０及び高速メモリ１７０共にコンテンツ再生装置１００の構成要素であるので、制御部１１０は、コンテンツ再生装置１００の動作状態を制御する過程で常にこれらの情報を取得することができる。尚、先に述べた高速メモリ１７０の蓄積容量Ｍ（byte）とは、この段階でコンテンツの再生に供し得ると判断された空き容量であるとする。
【０１２４】
次に、制御部１１０は、ネットワーク状態を取得する（ステップＳ１０４）。本実施例において、ネットワーク状態とは、ネットワーク２００を介したコンテンツ再生装置１００とデータ提供ノード３００との通信状態を意味し、より具体的には、コンテンツ再生装置１００の受信帯域幅Ｂ（byte/sec）、データ提供ノード３００の送信帯域幅Ｃ（byte/sec）、ネットワーク２００の伝送遅延としてのＲＴＴ（Round Trip Time）及びＴＴＬ（Time To Live）であるとする。ステップＳ１０４は、ネットワークを介したデータ提供ノードとの間の通信状態を特定する旨の、本発明に係る「第１特定手段」の動作の一例である。
【０１２５】
尚、受信帯域幅Ｂ及び送信帯域幅Ｃは、コンテンツ再生装置１００及びデータ提供ノード３００における設定値である。また、ＲＴＴは、ＲＴＣＰ（Real-time Transport Control Protocol）のＳＲ（Sender Report）やＲＲ（Receiver Report）を利用する等して測定される。尚、各通信帯域幅については、ネットワーク２００を介してランダムにデータの送受信を行った際のデータの実際の伝送状態に基づいて適宜推定されてもよい。
【０１２６】
ステップＳ１０１乃至Ｓ１０４において必要な情報を取得すると、制御部１１０は、コンテンツデータのフラグメントサイズを決定する（ステップＳ１０５）。ここで、本実施例におけるフラグメントサイズの決定方法について説明する。制御部１１０は先ず、コンテンツデータを、フラグメントＮ０、フラグメントＮ１及びフラグメントＮ２の三種類のフラグメントに分割する。即ち、下記（１）式が成立する。尚、下記（１）式において、Ｎ０、Ｎ１及びＮ２は、各フラグメントのデータ量（bit）を表すものとする。尚、フラグメントＮ０とフラグメントＮ１とにより、本発明に係る「フラグメントＮａ」が、フラグメントＮ２により本発明に係るフラグメントＮｂが、夫々構成される。
【０１２７】
Ｎ＝Ｎ０＋Ｎ１＋Ｎ２・・・（１）
次に、制御部１１０は、フラグメントＮ０を下記（２）式に従って決定する。
【０１２８】
Ｎ０＝ｍｉｎ（Ｍ＋（Ｍ−Ｍ０）／（Ｂ−Ｐ）×Ｐ，Ｎ）・・・（２）
ここで、（２）式右辺の左側の比較項のデータ量が、コンテンツサイズＮよりも大きければ、Ｎ０＝Ｎとなり、フラグメントＮ０とは即ちコンテンツデータそのものとなるが、通常、コンテンツサイズＮは、高速メモリ１７０の蓄積容量Ｍよりも十分に大きいため、Ｎ０は、（２）式右辺の左側の比較項となる。
【０１２９】
尚、本実施例では、データ提供ノード３００の送信帯域幅Ｃがコンテンツ再生装置１００の受信帯域幅Ｂよりも十分に大きいものとし、これらの間の最大の転送速度は、受信帯域幅Ｂに等しいものとする。また、フラグメントＮ０の転送速度は、最大転送速度である受信帯域幅Ｂに相当する速度に、フラグメントＮ１の転送速度はコンテンツの再生速度Ｐに、フラグメントＮ２の転送速度は受信帯域幅Ｂから再生速度Ｐに相当する帯域幅を除く残余の帯域幅（即ち、Ｂ−Ｐである）に相当する速度に、夫々予め決定されている。
【０１３０】
尚、データ提供ノード３００が単一のノードである場合、その送信帯域幅Ｃがコンテンツ再生ノード１００の受信帯域幅Ｂ未満であれば、当然ながらこれらの間のデータ伝送速度は、送信帯域幅Ｃに律束される。
【０１３１】
次に、制御部１１０は、フラグメントＮ１及びＮ２を下記（３）及び（４）式に従って決定する。
【０１３２】
Ｎ１＝（Ｎ−Ｎ０）／Ｂ×Ｐ・・・（３）
Ｎ２＝（Ｎ−Ｎ０）／Ｂ×（Ｂ―Ｐ）・・・（４）
上記（３）式及び（４）式は、フラグメントＮ０を除いた残余のフラグメントを、フラグメントＮ１及びＮ２に割り当てられる受信帯域幅（即ち、転送速度である）の比率でフラグメントＮ１及びＮ２に割り当てることを意味している。別言すれば、本実施例において、フラグメントＮ１の取得完了タイミングと、フラグメントＮ２の取得完了タイミングとは、理想的には一致する。
【０１３３】
フラグメントサイズが決定されると、制御部１１０は、ＨＤＤ１６０及び高速メモリ１７０に然るべきバッファ領域を確保して（ステップＳ１０６）、準備処理を終了する。
【０１３４】
＜初期フラグメント処理の詳細＞
次に、図５を参照し、初期フラグメント処理の詳細について説明する。ここに、図５は、初期フラグメント処理のフローチャートである。
【０１３５】
始めに、制御部１１０は、データ提供ノード３００に対し、フラグメントＮ０を要求する（ステップＳ２０１）。この際、制御部１１０は、プロトコル生成部１２０を介して、先に決定されたフラグメントサイズをデータ提供ノード３００に伝達するプロトコルを生成し、送信部１３０を介してデータ提供ノード３００に送信する。このプロトコルには、フラグメントＮ０のデータサイズＮ０、コンテンツデータにおけるフラグメントＮ０の断片位置及びフラグメントＮ０を構成する各断片データの断片位置が記述されている。
【０１３６】
フラグメントＮ０の転送を要求すると、制御部１１０は、データ提供ノード３００から要求に応じたフラグメントＮ０の転送が開始されるのを待ち、データ転送単位たる一パケットに収まる断片データサイズ毎に受信部１４０に到着するフラグメントＮ０を受信する（ステップＳ２０２）。受信されたフラグメントＮ０は、高速メモリ１７０に順次蓄積される（ステップＳ２０３）。このフラグメントＮ０の受信及び高速メモリ１７０への蓄積に係る処理は、データ提供ノード３００からのフラグメントＮ０の転送が終了するまで継続する。
【０１３７】
尚、この段階でデータ提供ノード３００に要求されるフラグメントはフラグメントＮ０のみであるから、フラグメントＮ０は、最大転送速度、即ち、この場合、コンテンツ再生装置１００の受信帯域幅Ｂ全域を使用して取得される。
【０１３８】
一方、制御部１１０は、高速メモリ１７０へのフラグメントＮ０の蓄積と並行して、高速メモリ１７０に蓄積されたフラグメント量たるメモリキャッシュ量が、再生開始データ量Ｍ０よりも大きいか否かを判別する（ステップＳ２０４）。メモリキャッシュ量がＭ０以下である場合には（ステップＳ２０４：ＮＯ）、処理はステップＳ２０２に戻される。
【０１３９】
メモリキャッシュ量が再生開始データ量Ｍ０より大きい場合（ステップＳ２０４：ＹＥＳ）、制御部１１０は、高速メモリ１７０に蓄積されたフラグメントＮ０たるメモリキャッシュを、先頭データから順次読み出して再生する（ステップＳ２０５）。即ち、この段階で、コンテンツのストリーミング再生が開始される。
【０１４０】
コンテンツのストリーミング再生が開始されると、制御部１１０は、受信データ量がフラグメントＮ０のデータ量Ｎ０以上であるか否かを判別する（ステップＳ２０６）。受信データ量がＮ０未満であれば（ステップＳ２０６：ＮＯ）、処理はステップＳ２０２に戻され、受信データ量がＮ０以上であれば（ステップＳ２０６：ＹＥＳ）、即ち、高速メモリ１７０の蓄積容量Ｍに相当するフラグメントが蓄積されると、初期フラグメント処理は終了する。
【０１４１】
＜並列フラグメント処理の詳細＞
次に、図６を参照し、並列フラグメント処理の詳細について説明する。ここに、図６は、並列フラグメント処理のフローチャートである。
【０１４２】
始めに、制御部１１０は、データ提供ノード３００に対し、フラグメントＮ１及びＮ２を要求する（ステップＳ３０１）。この際、制御部１１０は、プロトコル生成部１２０を介して、先に決定されたフラグメントサイズをデータ提供ノード３００に伝達するプロトコルを生成し、送信部１３０を介してデータ提供ノード３００に送信する。このプロトコルには、フラグメントＮ１及びＮ２のデータサイズＮ１及びＮ２、コンテンツデータにおけるフラグメントＮ１及びＮ２の断片位置並びに各フラグメントにおける断片データの断片位置が記述されている。また、制御部１１０は、これと合わせて、フラグメントＮ１の転送速度をコンテンツの再生速度Ｐとし、フラグメントＮ２の転送速度を受信帯域幅Ｂから再生速度Ｐを除外した残余の帯域幅とする旨をデータ提供ノード３００に対し指示する。
【０１４３】
制御部１１０は、フラグメントの受信が開始されると（ステップＳ３０２）、受信データ解析部１５０を介して、受信したフラグメントがフラグメントＮ１であるかフラグメントＮ２であるかを判別する（ステップＳ３０３）。
【０１４４】
受信したフラグメントが、フラグメントＮ１である場合（ステップＳ３０３：ＹＥＳ）、制御部１１０は、フラグメントを高速メモリ１７０に蓄積する（ステップＳ３０４）と共に、高速メモリ１７０からキャッシュを読み出して、メモリキャッシュを再生速度Ｐで再生する（ステップＳ３０６）。即ち、高速メモリ１７０には、再生速度Ｐでフラグメントが読み出される一方で、再生速度Ｐでフラグメントが書き込まれる。従って、高速メモリ１７０に蓄積されているフラグメント量は、基本的に蓄積容量Ｍに維持される。
【０１４５】
一方、受信したフラグメントがフラグメントＮ２である場合（ステップＳ３０３：ＹＥＳ）、制御部１１０は、受信したフラグメントをＨＤＤ１６０に蓄積する（ステップＳ３０５）。
【０１４６】
ステップＳ３０５又はステップＳ３０７が実行されると、制御部１１０は、ストリーミング再生制御の開始時点以降に受信されたデータ量たる受信データ量が、コンテンツサイズＮ以上であるか否かを判別する（ステップＳ３０７）。尚、上記（１）式の関係に鑑みれば、ステップＳ３０７に係る判別処理は、フラグメントＮ１及びＮ２の取得が完了したか否かを意味する。
【０１４７】
受信データ量がＮ未満であれば（ステップＳ３０７：ＮＯ）、制御部１１０は、処理をステップＳ３０２に戻し、一連の処理を繰り返す。一方、受信データ量がＮ以上である場合（ステップＳ３０７：ＹＥＳ）、並列フラグメント処理は終了する。
【０１４８】
＜受信後処理の詳細＞
次に、図７を参照し、受信後処理の詳細について説明する。ここに、図７は、受信後処理のフローチャートである。
【０１４９】
図７において、制御部１１０は、ネットワーク２００を介したデータ提供ノード３００との通信回線を切断する（ステップＳ４０１）。続いて、高速メモリ１７０から蓄積されたフラグメントであるメモリキャッシュを読み出して再生する（ステップＳ４０２）。尚、ステップＳ４０２は、ステップＳ３０６から継続される処理である。ここで、ステップＳ４０２における再生処理は、ステップＳ３０６に係る処理と違い、新たなフラグメントの書き込みを伴わない。従って、ステップＳ４０２の実行過程においては、高速メモリ１７０のフラグメント蓄積量は、蓄積容量Ｍから再生速度Ｐで漸減する。
【０１５０】
制御部１１０は、メモリキャッシュが漸減した結果、メモリキャッシュ量がゼロとなったか否かを判別する（ステップＳ４０３）。メモリキャッシュ量がゼロでなければ（ステップＳ４０３：ＮＯ）、即ち、フラグメントＮ２よりも再生順序が早いフラグメントが未だ高速メモリ１７０に残存していれば、制御部１１０は、メモリキャッシュの再生を継続する。
【０１５１】
一方、メモリキャッシュ量がゼロとなった場合（ステップＳ４０３：ＹＥＳ）、制御部１１０は、ＨＤＤ１６０に蓄積されたフラグメントＮ２、即ち、ＨＤＤキャッシュを順次読み出して再生する（ステップＳ４０４）。ＨＤＤキャッシュの再生が開始されると、制御部１１０は、ＨＤＤキャッシュの再生が終了したか否かを判別し（ステップＳ４０５）、再生が終了していなければ（ステップＳ４０５：ＮＯ）、処理をステップＳ４０４に戻してフラグメントＮ２の再生を継続すると共に、再生が終了した場合には（ステップＳ４０５：ＹＥＳ）、受信後処理を終了する。
【０１５２】
＜ストリーミング再生制御の効果＞
次に、図８を参照し、ストリーミング再生制御の効果について説明する。ここに、図８は、ストリーミング再生制御における各フラグメントの流れの概念図である。尚、図８において、既出の各図と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１５３】
図８において、フラグメントＮ０、Ｎ１及びＮ２の流れが、ストリーミング再生制御における該当ステップに係るステップ番号と共に示される。このステップ番号の百の位は、サブルーチンの識別番号となっており、小さい程時系列上早く実行されることを意味している。
【０１５４】
これから明らかなように、データ提供ノード３００から転送されたフラグメントＮ０の高速メモリ１７０への書き込み処理（ステップＳ２０３）及び高速メモリ１７０からのフラグメントＮ０の読み出し処理（ステップＳ２０５）は、他のフラグメントに先んじて実行される（厳密には、高速メモリ１７０に蓄積されたキャッシュにＮ０とＮ１との区別はないから、Ｎ０の一部はステップＳ３０６でも読み出される）。
【０１５５】
一方、フラグメントＮ１は、ステップＳ３０４において高速メモリ１７０に書き込まれ、ステップＳ３０６において高速メモリ１７０から読み出される。即ち、高速メモリ１７０の揮発性記憶領域に対するフラグメントの書き込み処理及び読み出し処理は、相互に並行して実行される。高速メモリ１７０におけるフラグメントの書き込み速度及び読み出し速度は十分に速く、これらが時間軸上で重複して実行されても、実践上問題は生じない。
【０１５６】
他方、制御系及び光ピックアップ等の駆動を介してなされる、不揮発性記憶領域に対するフラグメントの書き込み処理及び読み出し処理は、制御部１１０に要求される負荷が高速メモリ１７０に対するそれと較べて大きい。従って、これらが時間軸上で重複して実行されると、フラグメントの読み出しが遅れてコンテンツの円滑な再生が阻害される、或いはフラグメントの書き込みが遅れてこれらが時間軸上で重複する期間が更に長大化する等、コンテンツの再生品質が低下する要因となる。とりわけ、制御部１１０の処理能力が現実的な各種制約の範囲で律束される、携帯型端末や比較的安価なネットワーク対応型家庭用電気機器等においてはその傾向が強くなる。
【０１５７】
その点、本実施例によれば、ＨＤＤ１６０の不揮発性記憶領域に対するフラグメントＮ２の書き込み処理は、ステップＳ３０５で実行され、ＨＤＤ１６０の不揮発性記憶領域からのフラグメントＮ２の読み出し処理は、ステップＳ４０３で実行される。即ち、後者は前者よりも時系列上確実に遅くなる。従って、本実施例によれば、ＨＤＤ１６０の不揮発性記憶領域に対する書き込み処理と読み出し処理とが重複することはなく、コンテンツの再生品質が制御部１１０の処理能力に応じて低下する懸念が生じない。即ち、コンテンツの再生品質が好適に確保されるのである。
【０１５８】
次に、図９を参照し、ストリーミング再生制御におけるデータ量の時間推移について説明する。ここに、図９は、ストリーミング再生制御における各データ量の一時間推移を例示する図である。尚、同図において、既出の各図と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１５９】
図９において、縦軸はデータ量（byte）であり、横軸は時刻である。
【０１６０】
時刻Ｔ０において、初期フラグメント処理が開始されたとする。時刻Ｔ１で受信データ量が再生開始データ量Ｍ０に達し、コンテンツの再生が開始される。コンテンツの再生開始以降も、受信帯域Ｂの全域を使用したフラグメントＮ０の取得は継続され、時刻Ｔ２において、メモリキャッシュ量（図示ハッチング領域参照）が蓄積容量Ｍに到達すると、フラグメントＮ０の取得も完了する（上記（２）式は、このような関係が満たされるように規定されている）。
【０１６１】
取得したフラグメントの総量がコンテンツサイズＮに達した時刻Ｔ３において、高速メモリ１７０の揮発性記憶領域に対するフラグメントＮ１の書き込み処理とＨＤＤ１６０の不揮発性記憶領域に対するフラグメントＮ２の書き込み処理とが終了すると、時刻Ｔ４にかけて高速メモリ１７０のメモリキャッシュ量が再生速度Ｐで漸減する。メモリキャッシュ量がゼロとなる時刻Ｔ４において、再生用のバッファがＨＤＤ１６０に切り替えられ、それ以後、時刻Ｔ５において再生データ量がコンテンツサイズＮに達するまで、ＨＤＤキャッシュによるコンテンツ再生が継続される。
【０１６２】
尚、ＨＤＤ１６０の容量は、コンテンツサイズＮに対して十分に大きいため、ＨＤＤキャッシュが読み出されても、読み出し済み（再生済み）のＨＤＤキャッシュを消去する必要はなく、図示するように、その量は減少しない。また、このように再生済みのＨＤＤキャッシュを消去する必要がないから、ＨＤＤキャッシュに基づいたコンテンツの再生中に、ＨＤＤ１６０に対する読み出し処理と書き込み処理とが同時に発生する事態が回避される。
【０１６３】
図９から明らかなように、ＨＤＤ１６０においてフラグメントＮ２の書き込み処理が終了する時刻Ｔ４と、ＨＤＤキャッシュの読み出し処理が開始される時刻Ｔ５との間には、Ｔ５−Ｔ４に相当する時間遅延があり、両者が重複して実行されることはない。
＜第２実施例＞
次に、図１０を参照し、本発明の第２実施例に係るストリーミング再生制御について説明する。ここに、図１０は、ストリーミング再生制御のフローチャートである。尚、同図において、図３と重複する箇所には同一の符合を付してその説明を適宜省略することとする。尚、第２実施例に係るハードウェア構成は、第１実施例と同等であるとする。
【０１６４】
図１０において、準備処理を実行した後、制御部１１０は、初期フラグメント処理を実行し（ステップＳ２１０）、並列フラグメント処理を実行し（ステップＳ３１０）、受信後処理を実行する（ステップＳ４１０）。
【０１６５】
続いて、図１１を参照し、第２実施例に係る初期フラグメント処理について説明する。ここに、図１１は、初期フラグメント処理のフローチャートである。尚、同図において、図５と重複する箇所については同一の符号を付してその説明を適宜省略することとする。
【０１６６】
図１１において、メモリキャッシュの再生を実行すると（ステップＳ２０５）、制御部１１０は、コンテンツの保存要求の有無を判別する（ステップＳ２１１）。コンテンツの保存要求は、例えば、コンテンツ再生装置１００のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部１１０が自動的に生成するものであってもよい。
【０１６７】
コンテンツの保存要求が無い場合（ステップＳ２１１：ＮＯ）、制御部１００は、第１実施例と同様に処理をステップＳ２０６に移行させる。一方、コンテンツの保存要求が有る場合（ステップＳ２１１：ＹＥＳ）、制御部１１０は、再生済みのメモリキャッシュをＨＤＤ１６０の不揮発性記憶領域に複製して書き込み、保存する（ステップＳ２１２）。
【０１６８】
次に、図１２を参照し、第２実施例に係る並列フラグメント処理について説明する。ここに、図１２は、並列フラグメント処理のフローチャートである。尚、同図において、図６と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１６９】
図１２において、メモリキャッシュの再生を実行すると（ステップＳ３０６）、制御部１１０は、コンテンツの保存要求の有無を判別する（ステップＳ３１１）。コンテンツの保存要求は、例えば、コンテンツ再生装置１００のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部１１０が自動的に生成するものであってもよい。
【０１７０】
コンテンツの保存要求が無い場合（ステップＳ３１１：ＮＯ）、制御部１００は、第１実施例と同様に処理をステップＳ３０７に移行させる。一方、コンテンツの保存要求が有る場合（ステップＳ３１１：ＹＥＳ）、制御部１１０は、再生済みのメモリキャッシュをＨＤＤ１６０の不揮発性記憶領域に複製して書き込み、保存する（ステップＳ３１２）。
【０１７１】
次に、図１３を参照し、第２実施例に係る受信後処理について説明する。ここに、図１３は、受信後処理のフローチャートである。尚、同図において、図７と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１７２】
図１３において、ＨＤＤキャッシュの再生が終了すると（ステップＳ４０５：ＹＥＳ）、制御部１１０は、コンテンツの消去要求の有無を判別する（ステップＳ４１１）。コンテンツの消去要求は、例えば、コンテンツ再生装置１００のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部１１０が自動的に生成するものであってもよい。
【０１７３】
コンテンツの消去要求が有る場合（ステップＳ４１１：ＹＥＳ）、制御部１１０はＨＤＤ１６０からＨＤＤキャッシュ（この場合、フラグメントＮ０、Ｎ１及びＮ２からなるコンテンツデータそのもの）を消去する（ステップＳ４１２）。コンテンツの消去要求が無い場合（ステップＳ４１１：ＮＯ）、制御部１００は、受信後処理を終了させる。
【０１７４】
次に、図１４を参照し、第２実施例に係るストリーミング再生制御の効果について説明する。ここに、図１４は、第２実施例に係るストリーミング再生制御における各フラグメントの流れの概念図である。尚、図１４において、図８と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１７５】
図１４から明らかなように、第２実施例に係るストリーミング再生制御によれば、第１実施例においては高速メモリ１７０にのみ蓄積されていたフラグメントＮ０及びＮ１（尚、図１４では、高速メモリ１７０にフラグメントＮ０及びＮ１が全量格納されているように描かれているが、実際に蓄積されるデータ量は、蓄積容量Ｍに相当するデータのみである）が、順次ＨＤＤ１６０の不揮発性記憶領域に複製され蓄積される、従って、一度ダウンロードしたコンテンツについては、再度のダウンロードが不要となり、効率的である。
＜第３実施例＞
次に、本発明の第３実施例について説明する。
【０１７６】
＜実施例の構成＞
始めに、図１５を参照し、本発明の第３実施例に係るストリーミングシステム２の構成について説明する。ここに、図１５は、ストリーミングシステム２の構成を概念的に表してなる概略構成図である。尚、同図において、図１と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１７７】
図１５において、ストリーミングシステム２は、第１実施例と異なり、複数のデータ提供ノード３００Ａ、３００Ｂ、３００Ｃ及び３００Ｄを備えており、これら複数のデータ提供ノードからコンテンツデータをダウンロードすることが可能である。
【０１７８】
＜実施例の動作＞
次に、図１６を参照し、本発明の第２実施例に係るストリーミング再生制御について説明する。ここに、図１６は、ストリーミング再生制御のフローチャートである。尚、同図において、図１０と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１７９】
図１６において、制御部１１０は、準備処理を実行し（ステップＳ１２０）、初期フラグメント処理を実行し（ステップＳ２２０）、並列フラグメント処理を実行する（ステップＳ３２０）。その後、第２実施例と同様に受信後処理を実行する（ステップＳ４１０）。
【０１８０】
次に、図１７を参照し、第３実施例に係る準備処理の詳細について説明する。ここに、図１７は、準備処理のフローチャートである。尚、同図において、図４と重複する箇所には、同一の符合を付してその説明を適宜省略することとする。
【０１８１】
図１７において、ステップＳ１０１、Ｓ１０２及びＳ１０４は、各データ提供ノードについて実行される。
【０１８２】
ステップＳ１０５においてフラグメントサイズが決定されると、制御部１１０は、決定されたフラグメントＮ０、Ｎ１及びＮ２に対し、夫々データ提供ノードを割り当てる（ステップＳ１２１）。この際、制御部１１０は、下記（Ａ）（Ｂ）（Ｃ）の規則に従って、各フラグメントに対し適切なデータ提供ノードを割り当てる。
【０１８３】
（Ａ）フラグメントＮ０を提供するノードの決定
フラグメントＮ０を提供するノードは、以下（ア）〜（エ）の要領で決定される。
【０１８４】
（ア）コンテンツを保持するデータ提供ノードの中で、送信帯域幅Ｃの大きい順に優先順位を付与する
（イ）（ア）で設定された優先順位の高いデータ提供ノードから、送信帯域幅Ｃの総和がコンテンツ再生装置１００の受信帯域幅Ｂ以上となるまでのノードを選択する
（ウ）（イ）で選択された各コンテンツ提供ノードに対して、送信帯域幅Ｃ、ＲＴＴ、ハードウェア性能の順に優先順位を付与する
（エ）（ウ）で付与された優先順位の高いノードから順に、送信帯域幅Ｃの比率でフラグメントＮ０の先頭から断片データを割り当てる
この規則に従った場合、送信帯域幅Ｃがコンテンツ再生装置１００の受信帯域幅Ｂよりも大きいデータ提供ノードが存在すれば、第１実施例と同様、単一のデータ提供ノードからフラグメントＮ０が取得される。一方、送信帯域幅Ｃが受信帯域幅Ｂ未満である場合には、受信帯域幅Ｂの利用効率が最大（１００％）となるように、複数のデータ提供ノードが選択される。第１実施例のようにデータ提供ノードが単一であれば、このような場合に受信帯域幅Ｂの利用効率は理論的最大値には達さない（但し、送信帯域幅全域を使用してフラグメントＮ０を転送するので、与えられた環境下では受信帯域幅の利用効率は最大である）が、本実施例では、複数のノードからフラグメントＮ０を取得することによって、再生開始データを含むフラグメントＮ０を可及的迅速に取得することが可能となり、コンテンツの再生開始に要する時間を短縮することが可能となる。
【０１８５】
（Ｂ）フラグメントＮ１を提供するノードの決定
フラグメントＮ１を提供するノードは、以下（ア）〜（エ）の要領で決定される。
【０１８６】
（ア）コンテンツを保持するデータ提供ノードの中で、コンテンツの再生速度Ｐ以上の送信帯域幅を有するノードを選択し、その中から更に、最もＲＴＴの小さいノードを選択する
（イ）（ア）において、再生速度Ｐ以上の送信帯域を有するデータ提供ノードが存在しない場合、送信帯域幅Ｃ、ＲＴＴの順に優先順位を付与する
（ウ）（イ）において付与された優先順位が大きいものから、送信帯域幅Ｃの総和が再生速度Ｐ以上になるまでデータ提供ノードを選択する
（エ）（ウ）で選択されたデータ提供ノードに対し、送信帯域幅Ｃの比率でフラグメントＮ１の先頭から断片データを割り当てる
フラグメントＮ１は、高速メモリ１７０の揮発性記憶領域に対し、再生速度Ｐに同期した書き込み速度で書き込まれるフラグメントであるから、データ提供ノードは、再生速度Ｐ以上の送信帯域幅を有するノードであれば問題はない。但し、データ提供ノードが複数あれば、再生速度Ｐ以上の送信帯域幅を有するデータ提供ノードが存在しない場合であっても、このように再生速度Ｐ以上の送信帯域幅が確保されるまでデータ提供ノードを増やすことができるため、コンテンツの再生品質を低下させずに済む。例えば、データ提供ノードが、再生速度Ｐ未満の送信帯域幅を有する単一のノードである場合、コンテンツの再生と共に、高速メモリ１７０のメモリキャッシュは減少してしまうから、任意のタイミングで再生を中止してメモリキャッシュ量を増やす以外にないのである。
【０１８７】
（Ｃ）フラグメントＮ２を提供するノードの決定
フラグメントＮ２を提供するノードは、以下（ア）〜（ウ）の如くにして決定される。
【０１８８】
（ア）複数のコンテンツ提供ノードに対して、送信帯域幅Ｃ、ハードウェア性能、ＲＴＴの順に優先順位を付与する
（イ）（ア）で付与された優先順位の高いデータ提供ノードから順に、送信帯域幅Ｃの総和が、受信帯域幅Ｂの残余の帯域幅を超えるまでデータ提供ノードを選択する
（ウ）（イ）で選択されたデータ提供ノードに対し、送信帯域幅の比率でフラグメントＮ２の先頭から断片データを割り当てる
ノードの割り当てが終了すると、制御部１１０は、ＨＤＤ１６０及び高速メモリ１７０に然るべきバッファ領域を確保して（ステップＳ１０６）、準備処理を終了する。
【０１８９】
続いて、図１８を参照し、第３実施例に係る初期フラグメント処理について説明する。ここに、図１８は、初期フラグメント処理のフローチャートである。尚、同図において、図１１と重複する箇所については同一の符号を付してその説明を適宜省略することとする。
【０１９０】
図１８において、準備処理によって割り当てられた一又は複数のデータ提供ノードに対し、フラグメントＮ０の要求を行うと（ステップＳ２０１）、制御部１１０は、ネットワーク２００に障害（通信回線の切断や安定性の低下や帯域幅の低下等）が発生したか否かを判別する（ステップＳ２２１）。ネットワーク障害が発生していない場合（ステップＳ２２１：ＮＯ）、処理はステップＳ２０２に移行される。
【０１９１】
一方、ネットワーク障害が発生している場合（ステップＳ２２１：ＹＥＳ）、制御部１１０は、フラグメントＮ０を要求するデータ提供ノードを再度割り当てる（ステップＳ２２２）。データ提供ノードを再度割り当てた後、制御部１１０は、再度割り当てたデータ提供ノードに対してフラグメントＮ０を要求する（ステップＳ２２３）。それ以降の処理は、第２実施例と同様である。
【０１９２】
ここで、ステップＳ２２２におけるデータ提供ノードの再割り当ては、上記（Ａ）のプロセスを再度実行することによって行われる。即ち、ネットワーク障害が発生したデータ提供ノードを除外したデータ提供ノードの中から、適切なデータ提供ノードが選択され、既に高速メモリ１７０にキャッシュとして蓄積された断片データ以降の断片データから転送が要求される。この際、その時点で高速メモリ１７０に蓄積されたメモリキャッシュの再生を開始してもよい。
【０１９３】
次に、図１９を参照し、第３実施例に係る並列フラグメント処理について説明する。ここに、図１９は、並列フラグメント処理のフローチャートである。尚、同図において、図１２と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０１９４】
図１９において、準備処理によって割り当てられた一又は複数のデータ提供ノードに対し、フラグメントＮ１及びＮ２の要求を行うと（ステップＳ３０１）、制御部１１０は、ネットワーク２００に障害（通信回線の切断や安定性の低下や帯域幅の低下等）が発生したか否かを判別する（ステップＳ３２１）。ネットワーク障害が発生していない場合（ステップＳ３２１：ＮＯ）、処理はステップＳ３０２に移行される。
【０１９５】
一方、ネットワーク障害が発生している場合（ステップＳ３２１：ＹＥＳ）、制御部１１０は、フラグメントＮ1及びＮ２を要求するデータ提供ノードを再度割り当てる（ステップＳ３２２）。データ提供ノードを再度割り当てた後、制御部１１０は、再度割り当てたデータ提供ノードに対してフラグメントＮ１及びＮ２を要求する（ステップＳ３２３）。それ以降の処理は、第３実施例と同様である。
【０１９６】
ここで、ステップＳ３２２におけるデータ提供ノードの再割り当ては、フラグメントＮ１の場合とフラグメントＮ２の場合とで異なる。
【０１９７】
フラグメントＮ１を提供するノードにネットワーク障害が発生した場合、制御部１１０は、コンテンツの円滑な再生を維持するため、メモリキャッシュの再生を継続する。その一方で、データ提供ノードの中から最も送信帯域の大きいデータ提供ノードを選択し、フラグメントＮ１のうち、高速メモリ１７０に蓄積された最後の断片データ以降の断片データを要求する。この際、高速メモリ１７０のメモリキャッシュ量が蓄積容量Ｍに復活するまで、フラグメントＮ２の取得は中断される。即ち、受信帯域幅Ｂを全て使用して、最速で高速メモリ１７０のメモリキャッシュの復活が図られる。
【０１９８】
高速メモリ１７０のメモリキャッシュ量が蓄積容量Ｍまで復活すると、制御部１１０は、上記（Ｂ）のプロセスに従って一又は複数のデータ提供ノードを選択して再生速度Ｐに同期したフラグメントＮ１の取得を再開する。それと同時に、フラグメントＮ２の取得が再開される。
【０１９９】
一方、フラグメントＮ２を提供するノードにネットワーク障害が発生した場合、制御部１１０は、上記（Ｃ）のプロセスに従って、優先順位が下位となる一又は複数のノードを選択し、ネットワーク障害が発生したノードに割り当てられた断片データのうち、既にＨＤＤ１６０にＨＤＤキャッシュとして蓄積されたデータ以降のデータを要求する。
【０２００】
次に、図２０を参照し、第３実施例に係るストリーミング再生制御の効果について説明する。ここに、図２０は、第３実施例に係るストリーミング再生制御における各フラグメントの流れの概念図である。尚、図２０において、図１４と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【０２０１】
図２０から明らかなように、第３実施例に係るストリーミング再生制御によれば、複数のデータ提供ノード（図中では３００Ａ及び３００Ｂ）から、フラグメントＮ０、Ｎ１及びＮ２が転送される。このため、既に述べたように、各データ転送ノードの送信帯域幅がコンテンツ再生装置１００の受信帯域幅Ｂ未満である場合にも、受信帯域幅Ｂの利用効率を最大に維持することが可能となり、コンテンツデータ全体のダウンロード時間を短縮化することが可能となる。
【０２０２】
また、一又は複数のコンテンツ提供ノードとの間の通信が切断された場合等においても、単一なデータ提供ノードとの間でデータ転送を行う場合と異なり、他のコンテンツ提供ノードを代替ノードとして使用することができる。従って、コンテンツの再生が途切れることが防止され、よりロバストなコンテンツ再生が担保される。また、例えば、高品質な映像コンテンツ等、ネットワーク２００に収容された各データ提供ノードの送信帯域幅がいずれもコンテンツの再生速度未満となるような場合にも、コンテンツ再生装置１００側では再生速度以上の速度でコンテンツデータを取得することが可能となり、コンテンツの再生に関する制約がより緩和される。
【０２０３】
尚、いずれにせよ、ＨＤＤ１６０の不揮発性記憶領域に対する書き込み処理及び読み出し処理の重複は生じることがなく、本発明に特有の実践上利益が担保されることは言うまでもない。
＜第４実施例＞
次に、本発明の第４実施例について説明する。
【０２０４】
フラグメントの伝送態様を規定するプロトコルが、例えば、ＵＤＰ（User Datagram Protocol）等、パケットロスの発生が回避され難いプロトコルである場合、予めこのようなパケットロスへの対策を講じておくのが望ましい。
【０２０５】
そこで、第４実施例では、上記第３実施例において、フラグメントＮ０、Ｎ１及びＮ２を夫々複数のデータ提供ノードから取得する。この場合、フラグメントサイズが２倍になったことと等価であるから、コンテンツの再生開始に要する時間や、コンテンツデータのダウンロードに要する時間は第３実施例と較べて長くなるが、パケットロスが減少するため、パケットの再送要求が生じる頻度を減少させることができ、コンテンツの円滑な再生には効果的である。
【０２０６】
また、応用として、ＭＰＥＧ１ピクチャやＧＯＰヘッダ等、パケットロスが大きなエラーに繋がる場合に限って、複数ノードからの取得を行ってもよい。
＜第５実施例＞
上記各種実施例では、フラグメントＮ１及びフラグメントＮ２は、予め準備処理の実行段階で、その時点のネットワークの状態等に基づいて、そのデータ量が決定されている。然るに、ネットワーク環境は、時間的に変化し得るため、フラグメントＮ１及びＮ２が、コンテンツデータのダウンロード期間中に最適値を維持する保証はない。そこで、第５実施例では、そのようなネットワーク環境の変化にロバストなストリーミング再生制御について説明する。
【０２０７】
第５実施例では、フラグメントサイズの決定に際して、先ずフラグメントＮ０のみが決定される。
【０２０８】
フラグメントＮ０の取得が完了すると、制御部１１０は、一方で、フラグメントＮ０から連続する位置から再生速度Ｐに同期した速度でデータ断片を順次取得し、他方で、残余の受信帯域幅を使用してコンテンツデータの最後尾の位置から遡って断片データを取得する。このようにフラグメントＮ０を除く残余のコンテンツデータの両端部から断片データの取得を実行すると、残余のコンテンツデータの一断片データが重複して取得されることになる（重複する前にその旨を検出してもよい）。
【０２０９】
この重複データ位置に相当する断片データから最後尾までの断片データがフラグメントＮ２であり、この重複位置に相当する断片データよりも先頭側のデータがフラグメントＮ１である。このようにフラグメントＮ１及びＮ２を成り行きに任せた可変値として設定すれば、ネットワークの状態の変化（例えば、帯域幅の変化）に応じてフラグメントＮ１及びＮ２のデータ量が自動的に変化するため、予めこれらのデータ量を規定しておくよりも、ネットワークの状態変化に対してロバストとなる。
【０２１０】
また、この場合も、メモリキャッシュは再生速度Ｐで再生されており、上記重複データ位置の断片データが読み出されるタイミングは、取得する断片データが重複するタイミングよりも、メモリキャッシュのデータ量を再生速度Ｐで乗じた時間分後になる。即ち、この場合も、ＨＤＤ１６０における書き込み処理と読み出し処理との重複が生じることはなく、円滑なコンテンツの再生が約束される。
【０２１１】
本発明は、上述した実施例に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴うストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体もまた、本発明の技術的範囲に含まれるものである。
【産業上の利用可能性】
【０２１２】
本発明は、コンテンツのストリーミング再生を行う装置に適用可能である。
【符号の説明】
【０２１３】
１…ストリーミングシステム、２…ストリーミングシステム、１００…再生装置、２００…ネットワーク、３００、３００Ａ、３００Ｂ、３００Ｃ、３００Ｄ…データ提供ノード、１１０…制御部、１２０…プロトコル生成部、１３０…送信部、１４０…受信部、１５０…受信データ解析部、１６０…ＨＤＤ，１７０…高速メモリ。
【図１】
2012080417.tif 000003
【図２】
2012080417.tif 000004
【図３】
2012080417.tif 000005
【図４】
2012080417.tif 000006
【図５】
2012080417.tif 000007
【図６】
2012080417.tif 000008
【図７】
2012080417.tif 000009
【図８】
2012080417.tif 000010
【図９】
2012080417.tif 000011
【図１０】
2012080417.tif 000012
【図１１】
2012080417.tif 000013
【図１２】
2012080417.tif 000014
【図１３】
2012080417.tif 000015
【図１４】
2012080417.tif 000016
【図１５】
2012080417.tif 000017
【図１６】
2012080417.tif 000018
【図１７】
2012080417.tif 000019
【図１８】
2012080417.tif 000020
【図１９】
2012080417.tif 000021
【図２０】
2012080417.tif 000022