ストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体
【課題】再生装置側の処理能力によらずにコンテンツを円滑且つ高品質にストリーミング再生する。
【解決手段】第1記憶装置170と、第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置160とを備えてなるストリーミング再生装置100は、コンテンツの再生開始データを含むフラグメントNaと、該フラグメントNaと連続するフラグメントNbを夫々取得する手段と、取得されたフラグメントNa及びNbを夫々第1及び第2記憶装置に記憶させる手段と、フラグメントNaからNbへフラグメントを順次読み出してコンテンツの再生を開始する手段と、フラグメントNaの読み出しが終了する以前に又は終了するのと同時にフラグメントNbの蓄積が終了するようにフラグメントNa及びNb並びにその転送速度を決定する手段とを具備する。
【解決手段】第1記憶装置170と、第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置160とを備えてなるストリーミング再生装置100は、コンテンツの再生開始データを含むフラグメントNaと、該フラグメントNaと連続するフラグメントNbを夫々取得する手段と、取得されたフラグメントNa及びNbを夫々第1及び第2記憶装置に記憶させる手段と、フラグメントNaからNbへフラグメントを順次読み出してコンテンツの再生を開始する手段と、フラグメントNaの読み出しが終了する以前に又は終了するのと同時にフラグメントNbの蓄積が終了するようにフラグメントNa及びNb並びにその転送速度を決定する手段とを具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、映像や音声等に係る各種コンテンツのストリーミング再生を行うためのストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体の技術分野に関する。
【背景技術】
【0002】
コンテンツのストリーミング再生方法として、コンテンツストリームを再生レートよりも大きいレートで搬送する方法1と、同じく再生レートで搬送する方法2とを用いたリアルタイムストリーミング方式を採用したものが提案されている(例えば、特許文献1参照)。特許文献1に開示されたコンテンツ配信システムによれば、再生開始時に上記方法1を選択することによりバッファにキャッシュを蓄積すると共に、バッファにキャッシュが蓄積された後は上記方法2を選択することにより、ネットワークが途切れた場合でも、バッファ内のキャッシュを用いて再生を継続させることができるとされている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−244548号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、コンテンツの再生速度でバッファへの書き込みを行う場合、書き込みに要する時間は、コンテンツの再生時間と等しくなる。従って、この種のリアルタイムストリーミングにおいては、ネットワークに接続している必要のある時間が総じて長大化し易い。無論、この種のリアルタイムストリーミングに用いられるバッファの容量を、コンテンツのデータ量に対して十分に大きく採ることができれば、再生速度に同期した書き込みは必ずしも必要ではないが、例えば各種映像コンテンツのように比較的大容量のコンテンツを考えた場合、バッファの容量はコンテンツのデータ量に対して十分に小さいのが一般的である。
【0005】
一方、ネットワークの状態は、時間的に安定しない場合も多く、ネットワークへの接続が不意に中断する等、何らかの障害が発生する可能性は低くない。従って、ネットワークへの接続時間が相対的に長くならざるを得ないこの種のリアルタイムストリーミングにおいては、コンテンツの再生品質が、ネットワークの状態に依存することになる。
【0006】
ここで特に、特許文献1に開示された装置によれば、ネットワークに障害が発生したとしても、バッファに蓄積されたキャッシュによって一定時間はコンテンツの再生を継続し得るが、上述したようにバッファの容量はコンテンツのデータ量に対して大きくないから、その効果は限定的であって、コンテンツの安定的再生を目的とするには実践的にみて不十分であると言わざるを得ない。
【0007】
ところで、この種のリアルタイムストリーミング方式とは別に、HDD(Hard Disk Drive)等の大容量記憶装置に一定単位のコンテンツをダウンロードしつつ順次再生するプログレッシブダウンロード方式も公知である。この方式であれば、バッファとしてのHDDの容量をコンテンツのデータ量よりも大きく採ることも容易であり、ネットワークへの接続時間を短縮化することも可能である。
【0008】
ところが、この場合、HDDへのコンテンツの書き込みとHDDからのコンテンツの読み出しとが同時に実行される必要がある。読み出しと書き込みとを同時に行うには、制御装置側に大きな処理能力が必要であるから、プログレッシブダウンロード方式の恩恵を享受できるのは、現実的には、高い処理能力を有する一部の高性能な(言うなれば、高価な)再生装置だけである。即ち、例えば携帯型端末装置や比較的安価なネットワーク対応型家庭用電機機器等の、機器性能が少なからず制限されざるを得ない装置環境においては、コンテンツの書き込みと読み出しとのいずれかが円滑に行われない可能性が高くなり、結果的にコンテンツの円滑なストリーミングが難しくなる。
【0009】
即ち、従来の再生装置には、再生装置側の処理能力に影響されない、コンテンツの高品質なストリーミング再生が困難であるという技術的問題点がある。
【0010】
本発明は、係る問題点に鑑みてなされたものであり、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生を実現し得るストリーミング再生装置を提供することを課題とする。
【課題を解決するための手段】
【0011】
上述した課題を解決するため、請求項1のストリーミング再生装置は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求手段と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得手段と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御手段と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御手段と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定手段と、前記第1及び第2記憶装置の状態を特定する第2特定手段と、前記コンテンツの状態を特定する第3特定手段と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定手段とを具備し、前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求することを特徴とする。
【0012】
上述した課題を解決するため、請求項14のストリーミング再生方法は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求工程と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得工程と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御工程と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御工程と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定工程と、前記第1及び第2記憶装置の状態を特定する第2特定工程と、前記コンテンツの状態を特定する第3特定工程と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定工程とを具備し、前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求することを特徴とする。
【0013】
上述した課題を解決するため、請求項15のコンピュータプログラムは、コンピュータシステムを請求項1から13のいずれか一項に記載のコンテンツ再生装置として機能させることを特徴とする。
【0014】
上述した課題を解決するため、請求項16の記録媒体は、請求項15のコンピュータプログラムを記録することを特徴とする。
<ストリーミング再生装置の実施形態>
【0015】
本発明のストリーミング再生装置に係る実施形態は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求手段と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得手段と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御手段と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御手段と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定手段と、前記第1及び第2記憶装置の状態を特定する第2特定手段と、前記コンテンツの状態を特定する第3特定手段と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定手段とを具備し、前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する。
【0016】
実施形態に係る、揮発性記憶領域を有する第1記憶装置とは、例えば、RAM(Random Access Memory)等の各種メモリデバイスであり、不揮発性記憶領域を有する第2記憶装置とは、例えば、HDD等を指す。但し、これらの実践的態様は、書き込み速度と蓄積容量との相対関係が満たされる限りにおいて如何様にも限定されない趣旨である。
【0017】
実施形態に係る「ネットワーク」とは、例えばWAN(Wide Area Network)網、LAN(Local Area Network)網、又はこれらWAN網又はLAN網を介して或いは電話回線、ADSL(Asymmetric Digital Subscriber Line)又は光ファイバーケーブル等を介して適宜に接続されるインターネット網等の各種データ通信網を包括する概念である。
【0018】
実施形態に係る「データ提供ノード」とは、例えば、各種サーバ装置やパーソナルコンピュータ装置等を意味する。サーバ装置は、接続者を限定しない開かれたサーバ装置であってもよいし、接続者が限定される閉じられたサーバ装置であってもよい。尚、データ提供ノードは、予め決まった装置であってもよいし、然るべき候補の中から、その都度適宜選択或いは決定される装置であってもよい。
【0019】
実施形態に係るストリーミング再生装置によれば、その動作時には、要求手段により、一又は複数のデータ提供ノードに対し、フラグメントNa及びフラグメントNbの転送が要求される。
【0020】
転送が要求される、フラグメントNa及びNbは、夫々コンテンツデータを分割してなる断片データとしてのフラグメントであり、好適には、複数の転送単位データの集合である。フラグメントNaは、コンテンツのストリーミング再生を開始するために必要となる再生開始データ(ストリーミング再生装置に固有のデータ量に相当するデータである)を含むデータである。また、フラグメントNbは、このフラグメントNaと連続するデータ部分を含むデータである。
【0021】
尚、フラグメントNbについて補足すると、フラグメントNbは、好適には、フラグメントNaの最終データ部分と連続性を有するデータ部分からコンテンツデータの最終位置を規定するデータ部分までを含むフラグメントである。但し、フラグメントNaとの連続部分を含む限りにおいて、一部がフラグメントNaと重複していてもよい。また、必ずしも当該最終位置を規定するデータ部分を含まずともよい。
【0022】
一又は複数のデータ提供ノードにおいては、この転送要求によって指定されたフラグメントを、順次ネットワークを介して、ストリーミング再生装置の実施形態に対し転送する。この際、少なくともフラグメントNaに関して言えば、好適には、コンテンツデータの先頭に相当するデータから順次転送される。各データ提供ノードから転送されてくるフラグメントは、取得手段によりその各々について順次取得される。尚、転送要求を含む、データ提供ノードとの間の各種データの送受信形態は、例えば然るべきサーバ装置を介したものであってもよいし、例えばP2P(Peer To Peer)等サーバ装置を介さないものであってもよい。
【0023】
一方、実施形態によれば、転送されるフラグメントのうち、フラグメントNaが、第1記憶装置における揮発性記憶領域に記憶され、フラグメントNbが、第2記憶装置における不揮発性記憶領域に記憶される。尚、一又は複数のデータ提供ノードから転送されるフラグメントがいずれのフラグメントであるかは、各データ提供ノードがフラグメントを転送するにあたって送信するプロトコル等に記述されたフラグメント位置等の情報により判別される。
【0024】
他方、取得されたフラグメントが、夫々然るべき記憶領域(記憶装置)へ蓄積される過程において、再生手段は、コンテンツのストリーミングを然るべき開始タイミングで開始する。より具体的には、再生手段は、再生開始データが第1記憶装置の揮発性記憶領域に蓄積された時点以降、揮発性記憶領域からフラグメントNaを順次読み出してコンテンツのストリーミング再生を開始する。
【0025】
ストリーミング再生が開始されると、第1記憶装置の揮発性記憶領域に蓄積されたフラグメント量(即ち、キャッシュ量)は、フラグメントNaの転送速度と、コンテンツの再生速度(好適には、コンテンツのエンコードビットレート)との相対関係で決まる増減速度で増減する。
【0026】
例えば、キャッシュ量が揮発性記憶領域の蓄積容量(ハードウェア上の容量或いはその時点の負荷状況等に応じて許可される容量)に到達するまでコンテンツの再生速度よりも広帯域でフラグメントNaを取得し、それ以降、再生速度とフラグメントNaの転送速度とを一致させる等の措置を講じる場合、再生済みのキャッシュデータが順次揮発性記憶領域から破棄されるとすれば、キャッシュ量は、第1記憶装置に許容される蓄積容量に到達して以降、暫時この蓄積容量に維持される。また、フラグメントNaの書き込み終了後は、キャッシュ量は漸減する。
【0027】
この第1記憶装置のキャッシュ量の減少に伴い、キャッシュ量がゼロとなると、所謂再生バッファとしての記憶装置が、第1記憶装置から第2記憶装置へ切り替えられ、第2記憶装置の不揮発性記憶領域に記憶されたフラグメントNbが、最後に読み出されたフラグメントNaに連続する部分から順次読み出されてストリーミング再生が継続される。
【0028】
ここで、このようにフラグメントNaとフラグメントNbとを、その少なくとも一部において相互に並行して然るべき記憶領域に記憶することにより、例えば、相対的に蓄積容量が小さい第1記憶装置のみにコンテンツデータを蓄積する場合や、相対的に書き込み速度の遅い第2記憶装置のみにコンテンツデータを蓄積する場合と較べて、コンテンツデータの取得に要する時間は短縮化され得る。その結果、ネットワーク障害等に影響され難い高品質なストリーミング再生が可能となる。
【0029】
ところで、不揮発性記憶領域へのフラグメントの書き込み及び読み出しに係る処理は、揮発性記憶領域に対するそれと比べて高負荷な処理であり、これらを並行して実行するには、ストリーミング再生装置側に高い処理能力が要求されることが多い。従って、必ずしもデータ処理能力が最優先されない各種の携帯型端末や比較的安価なネットワーク対応型家庭用電気機器等においては、フラグメントの書き込み速度が低下する或いはフラグメントの読み出しが円滑に行われない等の問題が新たに発生し、結局のところ、コンテンツの再生品質が低下し易いといった問題が解決され難い。
【0030】
そこで、本実施形態においてストリーミング再生装置では、第1、第2及び第3特定手段の作用により、ネットワークを介したデータ提供ノードとの間の通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態が夫々特定され、決定手段が、これら特定された要素に基づいて、データ提供ノードに要求すべきフラグメントNa及びフラグメントNbを、その転送速度と共に決定する仕組みとなっている。
【0031】
第1特定手段により特定されるネットワークの通信状態とは、例えば、データ提供ノードの送信帯域、ストリーミング再生装置の受信帯域、ネットワークの伝送速度、RTT(Round Trip Time)、TTL(Time To Live)及びハードウェア性能等を意味する。また、第2特定手段により特定される各記憶装置の状態とは、例えば、各記憶装置における使用可能な蓄積容量や負荷状態等を意味する。更に、第3特定手段により特定されるコンテンツの状態とは、コンテンツのデータサイズや再生速度(エンコードビットレート)等を意味する。これら各種の被特定要素は、いずれも、単独で或いは複数の要素を組み合わせることによって、第1記憶装置におけるフラグメントNaの読み出し終了タイミングと、第2記憶装置におけるフラグメントNbの書き込み終了タイミングとの時間軸上の関係を推定し得る情報となる。
【0032】
ここで、決定手段は、これら各特定手段により特定された情報に基づいて、フラグメントNaの読み出しが終了する以前に又は終了するのと同時にフラグメントNbの蓄積が終了するように、フラグメントNa及びNb並びにその転送速度を決定する。要求手段は、データ提供ノードに対し、この決定されたフラグメントNa及びNbの、この決定された転送速度による転送を要求する。
【0033】
上述した第2記憶装置におけるフラグメントの書き込み処理と読み出し処理との重複は、フラグメントNaの読み出しが、フラグメントNbの書き込み終了以前に終了してしまうことによって発生する。従って、このような事態を回避すれば、即ち、フラグメントNaの読み出し終了以前に又は読み出し終了と同時にフラグメントNbの書き込みが終了すれば、第2記憶装置におけるフラグメントの書き込み処理と読み出し処理とは、相互に異なる時間帯に行われることとなる。これらが時間軸上で重複して実行されることがなければ、フラグメントの書き込み処理と読み出し処理とが相互いに阻害し合うことはなくなり、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現されるのである。
【0034】
このような時間軸上の関係を実現し得るフラグメントNa及びNbは、要求手段による転送要求時における両フラグメントの転送速度を規定することにより求めることができる。また逆に、予めフラグメントNa及びNbが規定されていれば、このような時間軸上の関係を実現し得る両フラグメントの転送速度を求めることができる。但し、通常、ストリーミング再生装置とデータ提供ノードとの間のデータ転送速度には各種の制約があるから、後者よりも前者の方が現実的であることは言うまでも無い。即ち、好適な一形態としては、予め設定される、或いはその都度適宜設定される(いずれにせよ、「決定」の範疇である)両フラグメントの転送速度に基づいた各種演算処理の結果として、フラグメントNa及びNbが決定される。
【0035】
尚、決定手段は、少なくともフラグメントNbの書き込み中にフラグメントNaの読み出しが終了しない限りにおいて、比較的自由にコンテンツデータをその断片たる各フラグメントに分割することができる。
【0036】
この際、第2記憶装置の不揮発性記憶領域に対する書き込み処理の終了タイミングと、第1記憶装置の揮発性記憶領域に対する読み出し処理の終了タイミング(即ち、一義的に、第2記憶装置の不揮発性記憶領域に対する読み出し処理の開始タイミングである)との間に生じる時間間隔は、コンテンツデータの総体的な転送時間を短縮する観点からは小さい方がよい。
【0037】
一方、ネットワークを介した通信状態や、記憶装置各々の負荷状態等は、必ずしも一定でないから、係る時間間隔に冗長度が全く無いと、例えば第2記憶装置における書き込み処理が何らかの理由により一時的に遅延した場合等において、第1記憶装置から第2記憶装置へのバッファの切り替え時を含む過渡的な期間について、第2記憶装置の不揮発性記憶領域に対する書き込み処理と読み出し処理とが並存して、コンテンツの円滑なストリーミングが阻害される可能性がある。そのような観点から言えば、予め実験的に、経験的に、理論的に又はシミュレーション等に基づいて、転送時間と再生品質とが共に要求値を満たし得る、当該時間間隔の適当な基準が設けられていてもよい。
【0038】
尚、特定手段に係る特定プロセスは、例えば一定又は不定の周期で周期的に実行されてもよいし、然るべき条件が満たされた場合においてオンデマンドで実行されるものであってもよい。また、実施形態に係る「特定」とは、特定対象を、直接的に又は間接的に制御上の参照値として確定させることを意味しており、検出、算出、導出、推定、同定、選択或いは取得等、その実践上のプロセスは何ら限定されない趣旨である。
【0039】
尚、ストリーミング再生装置の実施形態に係る各手段は、夫々が或いは全体として、例えばCPU(Central Processing Unit)又はMPU(Micro Processing Unit)等の各種演算処理装置、各種プロセッサ、コントローラ又は各種機能モジュール等として構成されていてもよい。
【0040】
ストリーミング再生装置に係る実施形態の一の態様では、前記データ提供ノードは前記ネットワークに複数収容され、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNaの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNaの一部を夫々割り当てる第1割り当て手段と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNbの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNbの一部を夫々割り当てる第2割り当て手段とを更に具備し、前記要求手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNaの一部を要求すると共に、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNbの一部を要求する。
【0041】
データ提供ノードがネットワークに複数収容される場合、フラグメントNa及びNbを要求するノードを、これら複数のデータ提供ノードから比較的自由に選択することができる。特に、特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいてデータ提供ノードを選択する場合、フラグメントの転送を要求するのに最も適した一のデータ提供ノードを、或いは、フラグメントの転送を要求するのに比較的適した複数のデータ提供ノードを、確実に選択することができる。
【0042】
従って、例えば、ストリーミング再生装置の受信帯域幅が、各データ提供ノードの送信帯域幅よりも大きい場合等に、フラグメントNa或いはNbを適宜分割して、複数のデータ提供ノードから当該分割されたフラグメントを取得する等を措置を講じることにより、受信帯域をより効率的に使用することが可能となる。
【0043】
第1割り当て手段及び第2割り当て手段に係る、データ提供ノードの選択及びフラグメントの割り当てに関する実践的態様は、決定手段により決定されるフラグメントNa及びNb並びにその転送速度が担保される限りにおいて如何様にも限定されない。フラグメントNa及びNbのデータサイズと、その転送速度とが担保される限りにおいて、第2記憶装置においてフラグメントの書き込みと読み出しとが同時に発生することはないからである。
【0044】
尚、この態様では、前記第1割り当て手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNaのうち転送が完了していないフラグメントの一部を再度割り当て、前記第2割り当て手段は、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNbのうち転送が完了していないフラグメントの一部を再度割り当ててもよい。
【0045】
複数のデータ提供ノードからフラグメントを取得し得る構成においては、上述のように、ストリーミング再生装置の受信帯域を有効利用することが可能となるが、その一方で、一時的又は長期的な各種のネットワーク障害の影響を受ける可能性もまた高くなる。
【0046】
例えば、フラグメントNbを要求すべきものとして選択されたデータ提供ノードの一部との間でネットワーク障害が生じた場合、フラグメントNbの取得完了が遅れてフラグメントNbの読み出しと書き込みとが一時的にせよ同時に発生しかねない。或いは、フラグメントNaを要求すべきものとして選択されたデータ提供ノードの一部との間でネットワーク障害が生じた場合、フラグメントNaの取得完了が遅れて、コンテンツの再生が中断しかねない。
【0047】
この態様によれば、第1及び第2割り当て手段に、データ提供ノードの再選択及び再選択されたデータ提供ノードに対するフラグメントの再割り当て機能が備わるため、各瞬のネットワーク障害の発生に際しても、迅速且つ柔軟に対処することが可能となり、コンテンツのストリーミング再生を安定して継続させることができる。尚、ネットワーク障害の検出は、転送を要求したデータ(フラグメントの一部)が転送されたか否か等の情報に基づいて、常時遅滞なく検出可能である。
【0048】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントは、前記フラグメントNa及び前記フラグメントNbのうち少なくとも一方に含まれる。
【0049】
この態様によれば、相互いに連続する断片データのみからなるフラグメントNaと、同じく相互いに連続する断片データのみからなるフラグメントNbとによって、コンテンツデータが形成される。従って、データ提供ノードへ各フラグメントを要求するにあたっての処理負荷が軽減され得る。また、この際、理想的には、フラグメントNaとフラグメントNbとの間には、重複部分が存在しないのが望ましい。
【0050】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントNaの転送速度は、前記コンテンツの再生速度であり、前記フラグメントNbの転送速度は、前記ストリーミング再生装置の受信帯域のうち前記再生速度に相当する帯域を除く残余の受信帯域に相当する転送速度である。
【0051】
この態様によれば、フラグメントNaがコンテンツの再生速度に相当する転送速度で転送され、フラグメントNbが、使用可能な受信帯域のうちフラグメントNaの転送に使用される帯域を除く残余の受信帯域に相当する転送速度で転送される。
【0052】
第1記憶装置の揮発性記憶領域は、通常、再生開始データと比較して大きく且つコンテンツのデータサイズと比較して小さい。このため、取得されたフラグメントNaが第1記憶装置に許容される記憶容量に達してしまえば、再生済みのキャッシュを順次破棄したとして、フラグメントNaの転送速度はコンテンツの再生速度に律束される。逆に、コンテンツの再生速度でフラグメントNaを取得すれば、基本的に、第1記憶装置に蓄積されるコンテンツのキャッシュは、フラグメントNaの取得完了まで減少することがないから、コンテンツの再生は安定的に継続される。
【0053】
この態様によれば、ストリーミング再生装置の受信帯域のうち、再生速度に相当する帯域を除く残余の帯域を利用してフラグメントNbが取得される。従って、一方でコンテンツを安定的に再生しつつ、第2記憶装置に効率的にフラグメントNbを蓄積し、コンテンツデータの全体的なダウンロード時間を短縮化することが可能となる。
【0054】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントNaは、前記再生開始データを含むフラグメントN0と、該フラグメントN0を除くフラグメントN1から構成され、前記要求手段は、前記フラグメントN0の取得が完了するまで前記フラグメントNbの要求を待機する。
【0055】
この態様によれば、フラグメントNaが、再生開始データを含むフラグメントN0とそれ以外のフラグメントN1とに分割され、データ提供ノードへフラグメントを要求するにあたっては、先ずフラグメントN0のみの転送が要求される。即ち、フラグメントN0の取得が完了するまでは、フラグメントNaの取得が、フラグメントNbの取得に優先される。従って、ストリーミング再生装置の受信帯域を、フラグメントN0の取得のために優先的に使用することが可能となり、フラグメントN0の取得完了に要する時間を可及的に短縮化することができる。
【0056】
ここで特に、フラグメントN0は、フラグメントNaのうち再生開始データを含む断片であるから、このようにその取得が優先され、その取得時期が早められることにより、コンテンツの再生開始時期を可及的に早めることが可能となる。
【0057】
尚、再生手段は、再生開始データの取得(蓄積)完了をトリガとしてコンテンツのストリーミング再生を開始する。従って、フラグメントN0のうち再生開始データの取得完了後は、フラグメントN0の転送速度とコンテンツの再生速度との差分に相当する速度でフラグメントN0の取得が進行する。ここで、第1記憶装置における揮発性記憶領域の蓄積容量が、この再生開始データに対して十分に大きくない場合(無論、少なくとも再生開始データよりは大きい)、コンテンツの再生開始から間を置かずして当該揮発性記憶領域はフラグメントN0で満たされる。それ以降は、再生速度以上でのフラグメントの蓄積は出来なくなる。その点に鑑みれば、フラグメントN0のデータサイズは、好適には、第1記憶装置の蓄積容量がフラグメントN0で満たされた時点における、フラグメントの総取得量(当該蓄積容量よりは、再生による読み出し分だけ大きい)であるのが望ましい。
【0058】
尚、上述したフラグメントNaをコンテンツの再生速度に相当する転送速度で転送し、フラグメントNbを受信帯域の残余の帯域に相当する転送速度で転送する態様において本態様が適用されるにあたっては、フラグメントN1の転送速度をコンテンツの再生速度相当とし、フラグメントNbをフラグメントN0の取得完了以降、残余の帯域に相当する転送速度で転送するようにするのが好適である。
【0059】
このようにすれば、再生済みのキャッシュを順次第1記憶装置から破棄することによって、第1記憶装置におけるフラグメントの蓄積量は、フラグメントN1の取得完了時点まで時間的に不変となる。従って、第1記憶装置におけるバッファオーバーフローやバッファアンダーフローを考慮することなく、ストリーミング再生装置の残余の受信帯域又はデータ提供ノードの残余の送信帯域を、フラグメントNbの取得又は転送に効率的に使用することができる。また、フラグメントNbがその時点の最大転送速度で転送されることとなるため、フラグメントNbを可及的迅速に取得することができ、コンテンツデータのダウンロード時間を短縮化することが可能となる。
【0060】
尚、この際、前述したように、フラグメントN0の取得完了時点で第1記憶装置の蓄積容量が最大限に使用されていれば、フラグメントN1の取得完了時点まで、第1記憶装置は、その蓄積容量を最大限に使用した状態が維持され、より好適である。
【0061】
尚、この態様では、前記フラグメントN0の転送速度は、前記データ提供ノードの間で規定される最大転送速度であってもよい。
【0062】
最大転送速度による転送とは、ストリーミング再生装置の受信帯域の利用効率が理論的に又は何らか制約の範囲で実質的に最大であることと等価である。従って、この場合、許容される条件下でフラグメントN0を最短時間で取得することが可能となり、コンテンツの再生要求が生じた時点から、ストリーミング再生が開始されるまでの時間的遅延を最大限に短縮化することができる。
【0063】
尚、受信帯域の利用効率は、受信帯域全域をフラグメントN0の取得に供した場合に100%で最大となる(この場合の転送速度が、理論的な最大転送速度である)。例えば、データ提供ノードが一つで且つその送信帯域幅がストリーミング再生装置の受信帯域幅を超える場合、フラグメントN0の転送速度を当該受信帯域に等しくすることが可能となり、受信帯域の利用効率は100%となる。一方、データ提供ノードが一つで且つその送信帯域がストリーミング再生装置の受信帯域よりも小さければ、当該受信帯域の全域を使用することはできず、利用効率としては100%未満となるが、データ提供ノードが一つである場合に、実質的にその送信帯域の全てをフラグメントN0の転送に供しているのであれば、結局は、フラグメントN0が最大転送速度で転送されることに変わりはない。
【0064】
他方、例えば上述した一態様の如く、データ提供ノードが複数存在する場合、データ提供ノードの送信帯域の総和が当該受信帯域を越えるまで、データ提供ノードの数量を増やすことができる。この場合、個々のデータ提供ノードの送信帯域に関係なく、受信帯域の全域をフラグメントN0の取得に利用することが可能となり、効果的である。
【0065】
尚、複数のデータ提供ノードに対してフラグメントN0を要求する場合、フラグメントN0を構成するフラグメントのデータ位置は、基本的にはノード間で異ならしめられる。但し、データの伝送プロトコルによっては、フラグメントを転送する際にパケットエラーが頻繁に生じることがある。このような場合に、フラグメントの再送要求を頻繁に行われるのは、必ずしも効率的なデータ転送に繋がらない場合もある。そのような観点から、最大転送速度での転送を要求するにあたり、予め複数のノードに対し一部又は全体が重複するフラグメントN0が要求されてもよい。
【0066】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記要求手段は、前記フラグメントNaが前記コンテンツデータの先頭から順次取得されるように前記フラグメントNaを要求すると共に、前記フラグメントNbが最後尾の前記フラグメントから順次取得されるように前記フラグメントNbを要求し、前記取得手段は、前記フラグメントNaと前記フラグメントNbとが重複しないように前記フラグメントNaと前記フラグメントNbを取得する。
【0067】
この態様によれば、フラグメントNa(先述した、フラグメントN0及びN1に分割される場合も含む)がコンテンツデータの先頭位置から、フラグメントNbは、コンテンツデータの最後尾の位置から夫々取得される。従って、フラグメントNaとフラグメントNbとは、その並行取得の過程において、最終的に、コンテンツデータの一のデータ位置で出会うことになる。
【0068】
即ち、この態様におけるフラグメントNaとは、予め設定されたデータ量のフラグメントではなく、コンテンツデータの先頭位置からフラグメントNbの先頭(コンテンツの再生順序としての先頭であり、取得順序としては即ち最後尾である)のデータまでのデータ量を有するフラグメントである。同様に、この態様におけるフラグメントNbとは、予め設定されたデータ量のフラグメントではなく、コンテンツデータの最後尾の位置からフラグメントNaの最後尾のデータまでのデータ量を有するフラグメントである。
【0069】
ここで、先に述べたように、ネットワークの伝送状態や、第1及び第2記憶装置の負荷状態等は、時間的に決して不変ではなく、コンテンツデータのダウンロード時間の範囲において、変動することも珍しくない。このような場合、予めフラグメントNa及びNbのデータ量を定めてしまうと、フラグメントNbの書き込み終了前にフラグメントNaの読み出しが終了してしまう可能性がある。
【0070】
その点、このように、フラグメントNaを先頭から、フラグメントNbを最後尾から夫々転送するように転送要求が構築されていれば、ネットワークの伝送状態や各記憶装置の負荷状態を反映した現実的なデータ転送プロセスの中で、フラグメントNbの書き込み終了前にフラグメントNaの読み出しが終了する事態を確実に防止することができる。
【0071】
即ち、何らかの理由で第2記憶装置の不揮発性記憶領域へのフラグメントNbの書き込みが遅滞すれば、その分フラグメントNaが大きくなり、何らかの理由で第1記憶装置の揮発性記憶領域へのフラグメントNaの書き込みが遅滞すれば、その分フラグメントNbが大きくなるのである。
【0072】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第1特定手段は、前記ストリーミング再生装置の受信帯域及び前記データ提供ノードの送信帯域を特定する。
【0073】
この態様によれば、第1特定手段により、通信状態として、ストリーミング再生装置の受信帯域及びデータ提供ノードの送信帯域が特定される。これらは、フラグメントNaの読み出し終了タイミング及びフラグメントNbの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「通信状態」の好適な一例となる。
【0074】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第2特定手段は、前記第1及び第2記憶装置の残容量及び負荷状態を特定する。
【0075】
この態様によれば、第2特定手段により、各記憶装置の状態として、残容量及び定性的又は定量的な負荷状態が特定される。これらは、フラグメントNaの読み出し終了タイミング及びフラグメントNbの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「第1及び第2記憶装置の状態」の好適な一例となる。
【0076】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第3特定手段は、前記コンテンツのデータサイズ及び再生速度を特定する。
【0077】
この態様によれば、第3特定手段により、コンテンツの状態として、コンテンツのデータサイズ及び再生速度が特定される。これらは、フラグメントNaの読み出し終了タイミング及びフラグメントNbの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「コンテンツの状態」の好適な一例となる。
【0078】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第2記憶制御手段は、前記順次読み出されたフラグメントNaが前記第2記憶装置に蓄積されるように前記第2記憶装置を制御する。
【0079】
第1記憶装置の記憶領域は揮発性記憶領域であり、フラグメントNaをあくまで一時的に保持するに過ぎず、フラグメントNaのうち読み出されたデータ断片は、基本的に消失することになる。結果的に、コンテンツデータのうち、再生後にストリーミング再生装置に残存するデータは、フラグメントNbのみとなる。従って、次回、同一のコンテンツを再生しようとした場合には、フラグメントNaを再度取得する必要が生じ、効率的でない。
【0080】
この態様によれば、例えば、フラグメントNaのデータ断片が第1記憶装置の揮発性記憶領域から読み出される毎に、当該データ断片が複製され、第2記憶制御手段の作用により、第2記憶装置の不揮発性記憶領域に書き込まれる。
【0081】
従って、コンテンツのストリーミング再生終了後は、コンテンツデータ全体が第2記憶装置の不揮発性記憶領域に蓄積された状態となり、再度コンテンツの再生が所望される場合において、冗長なデータ転送が不要となり、極めて円滑且つ効率的な再生が可能となる。
【0082】
尚、このように読み出し後のフラグメントNaが第2記憶装置に書き込まれる構成としても、第2記憶装置の不揮発性記憶領域に対する書き込み処理と読み出し処理とが並行して実行されることはなく、円滑且つ高品質なストリーミング再生を可能とする旨の実施形態の効果は確実に担保される。
【0083】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第2制御手段は、所定の消去要求に応じて前記不揮発性記憶領域に蓄積されたフラグメントを消去する。
【0084】
この態様によれば、キーボード、各種ポインティングデバイス、或いは各種スイッチ等の各種入力手段を介した人為操作をトリガとして、或いは何らかの消去条件が満たされた場合に各種コントローラ等を介して自動的に生成される消去要求に応じて、第2記憶装置の不揮発性記憶領域に蓄積されたフラグメント、例えばフラグメントNb或いはそれに加えてフラグメントNa(即ち、この場合、実質的にコンテンツデータそのもの)が消去される。従って、第2記憶装置の不揮発性記憶領域を効率的に使用することができる。
【0085】
本発明のストリーミング再生方法に係る実施形態は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求工程と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得工程と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御工程と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御工程と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定工程と、前記第1及び第2記憶装置の状態を特定する第2特定工程と、前記コンテンツの状態を特定する第3特定工程と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定工程とを具備し、前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する。
【0086】
本発明のストリーミング再生方法に係る実施形態は、本発明のストリーミング再生装置に係る実施形態における各手段の動作に対応する各工程によって、本発明のストリーミング再生装置に係る実施形態と同等の効果を奏し得る。
<コンピュータプログラムの実施形態>
【0087】
本発明のコンピュータプログラムに係る実施形態は、コンピュータシステムを上記いずれかのストリーミング再生装置として機能させる。
【0088】
当該コンピュータプログラムを格納するROM、CD−ROM、DVD−ROM、ハードディスク等の記録媒体或いはUSB(Universal Serial Bus)メモリ等コンピュータシステムに着脱可能な固体型記憶装置から、当該コンピュータプログラムをコンピュータシステムに読み込んで実行させれば、或いは、当該コンピュータプログラムを、例えば、通信手段等を介してコンピュータシステムにダウンロードさせた後に実行させれば、上述した本発明のストリーミング再生装置に係る実施形態を比較的簡単に実現できる。
【0089】
尚、上述した本発明のストリーミング再生装置に係る各実施形態における各種態様に対応して、本発明のコンピュータプログラムに係る実施形態も各種態様を採ることが可能である。
<記録媒体の実施形態>
【0090】
本発明の記録媒体に係る実施形態は、本発明のコンピュータプログラムに係る実施形態を記録する。
【0091】
本発明の記録媒体に係る実施形態によれば、コンピュータシステムに装着又は接続することによって、或いはコンピュータシステムに備わる又は接続された然るべき読取装置に挿入することによって、記録している本発明のコンピュータプログラムに係る実施形態を、コンピュータシステムに読み込ませて実行させることができ、上述した本発明のストリーミング再生装置に係る実施形態を比較的簡単に実現できる。
【0092】
以上説明したように、本発明のストリーミング再生装置に係る実施形態によれば、要求手段、取得手段、第1記憶制御手段、第2記憶制御手段、再生手段、第1特定手段、第2特定手段、第3特定手段及び決定手段を具備するので、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現される。
【0093】
以上説明したように、本発明のストリーミング再生方法に係る実施形態によれば、要求工程、取得工程、第1記憶制御工程、第2記憶制御工程、再生工程、第1特定工程、第2特定工程、第3特定工程及び決定工程を具備するので、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現される。
【0094】
以上説明したように、本発明のコンピュータプログラムに係る実施形態によれば、コンピュータシステムを本発明のストリーミング再生装置に係る実施形態として機能させることができる。
【0095】
以上説明したように、本発明の記録媒体に係る実施形態によれば、本発明のコンピュータプログラムに係る実施形態を記録することにより、コンピュータシステムを本発明のストリーミング再生装置に係る実施形態として機能させることができる。
【0096】
本発明のこのような作用及び他の利得は次に説明する実施例から明らかにされる。
【図面の簡単な説明】
【0097】
【図1】本発明の第1実施例に係るストリーミングシステムの構成を概念的に表してなる概略構成図である。
【図2】図1のストリーミングシステムにおけるコンテンツ再生装置の構成を概念的に表してなるブロック図である。
【図3】図2のコンテンツ再生装置において実行されるストリーミング再生制御のフローチャートである。
【図4】図2のストリーミング再生制御のサブルーチンたる準備処理のフローチャートである。
【図5】図2のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図6】図2のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図7】図2のストリーミング再生制御のサブルーチンたる受信後処理のフローチャートである。
【図8】図2のストリーミング再生制御における各フラグメントの流れの概念図である。
【図9】図2のストリーミング再生制御における各データ量の一時間推移を例示する図である。
【図10】本発明の第2実施例に係るストリーミング再生制御のフローチャートである。
【図11】図10のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図12】図10のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図13】図10のストリーミング再生制御のサブルーチンたる受信後処理のフローチャートである。
【図14】図10のストリーミング再生制御における各フラグメントの流れの概念図である。
【図15】本発明の第3実施例に係るストリーミングシステムの構成を概念的に表してなる概略構成図である。
【図16】図15のコンテンツ再生装置において実行されるストリーミング再生制御のフローチャートである。
【図17】図16のストリーミング再生制御のサブルーチンたる準備処理のフローチャートである。
【図18】図16のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図19】図16のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図20】図16のストリーミング再生制御における各フラグメントの流れの概念図である。
【発明を実施するための形態】
【実施例】
【0098】
以下、適宜図面を参照して、本発明の好適な各種実施例について説明する。
<第1実施例>
<実施例の構成>
始めに、図1を参照し、本発明の第1実施例に係るストリーミングシステム1の構成について説明する。ここに、図1は、ストリーミングシステム1の構成を概念的に表してなる概略構成図である。
【0099】
図1において、ストリーミングシステム1は、夫々が広域ネットワーク200(本実施例ではIP(Internet Protocol)網である)に収容された、コンテンツ再生装置100並びにデータ提供ノード300(即ち、本発明に係る「データ提供ノード」の一例である)を備え、コンテンツ再生装置100で映像或いは音声に係る各種コンテンツのストリーミング再生を実現するためのシステムである。より具体的には、コンテンツ再生装置100は、データ提供ノード300に対してコンテンツデータを要求し、データ提供ノード300から転送されるコンテンツデータの断片的データに基づいて、ストリーミング再生を行う構成となっている。
【0100】
尚、図1に例示されるストリーミングシステム1の構成は、コンテンツ再生装置100でストリーミング再生を行うための一例に過ぎない。例えば、ストリーミングシステム1では、コンテンツ再生装置100とデータ提供ノード300とが、特定のサーバ装置を介することなく個別にP2P通信を行う構成となっているが、コンテンツ再生装置100とデータ提供ノード300とは、ネットワーク200に収容された、然るべきサーバ装置を介して通信を行ってもよい。また、図1においては、一つのデータ提供ノード300が示されるが、現実的な制約を除けば、基本的にデータ提供ノードの数に制限はなく、データ提供ノードは複数であってもよい。P2P通信によりストリーミングシステムを構築する場合、ネットワーク200に収容された不特定多数のノード(例えば、個人所有のパーソナルコンピュータ等)が適宜データ提供ノードとなり得る同時に、コンテンツ再生装置100も、他のノードに対してデータ提供ノードの一つとなり得る。尚、データ提供ノードが複数である場合については、第3実施例において説明することとする。
【0101】
次に、図2を参照し、コンテンツ再生装置100の構成について、その動作を交えて説明する。ここに、図2は、コンテンツ再生装置100の構成を概念的に表してなるブロック図である。尚、同図において、図1と重複する箇所には、同一の符合を付してその説明を適宜省略することとする。
【0102】
図2において、コンテンツ再生装置100は、制御部110、プロトコル生成部120、送信部130、受信部140、受信データ処理部150、HDD160、高速メモリ170及び再生部180を備えた、本発明に係る「ストリーミング再生装置」の一例である。
【0103】
制御部110は、CPU又はMPU等の演算処理装置と、ROM(Read Only Memory)及びRAM(Random Access Memory)等の記憶装置を備えた、コンテンツ再生装置10の動作全体を制御する電子制御装置であり、ROMに格納されたコンピュータプログラムに従って、後述するストリーミング再生制御を実行可能に構成される。当該コンピュータプログラムは、本発明に係る「ストリーミング再生方法」を実現するための、本発明に係る「コンピュータプログラム」の一例である。
【0104】
このコンピュータプログラムは、ハードディスク、CD−ROM及びDVD−ROM等の各種記録媒体(本発明に係る「記録媒体」の一例である)に記録することが可能であり、この種の記録媒体が、例えば各種のコンピュータシステムに内蔵又は付設される然るべき記録再生装置に設置、格納又は挿入された状態において、当該コンピュータシステムを、本発明に係る「ストリーミング再生装置」の一例として機能させることもまた可能である。
【0105】
尚、制御部110は、このストリーミング再生制御の実行過程において、本発明に係る「決定手段」、「第1特定手段」、「第2特定手段」及び「第3特定手段」の夫々一例として機能する構成となっている。
【0106】
プロトコル生成部120は、データ提供ノード300に対してコンテンツデータの断片データたる各種フラグメントを要求するためのデータ要求プロトコルを生成する処理ユニットであり、本発明に係る「要求手段」の一例である。尚、プロトコル生成部120は、制御部110によってその動作が上位に制御される構成となっている。
【0107】
送信部130は、出力端子(符合省略)がネットワーク200に接続された送信インターフェイスであり、ネットワーク200を介し、制御部110から指定される各種のデータをデータ提供ノード300へ送信可能に構成されている。尚、制御部110がストリーミング再生制御を実行する過程においてプロトコル生成部120により生成されるデータ要求プロトコルも、このデータの一つとして送信部130から送信される構成となっている。即ち、送信部130は、プロトコル生成部120と共に、本発明に係る「要求手段」の一例として機能するように構成されている。
【0108】
受信部140は、出力端子(符合省略)がネットワーク200に接続された、本発明に係る「取得手段」の一例たる受信インターフェイスであり、ネットワーク200を介し、データ提供ノード300から転送される各種のデータを受信可能に構成されている。尚、データ提供ノード300からネットワーク200を介して転送される各種フラグメントも、このデータの一つとして受信部140で受信される構成となっている。
【0109】
受信データ処理部150は、受信部140を介して受信された受信データの内容を解析する処理ユニットである。受信データ処理部150は、制御部110によってその動作が上位に制御される構成となっている。受信データ処理部150は、例えば、データ提供ノード300がフラグメントと共に転送する送信プロトコルを解析して、転送されたフラグメントの断片位置やデータサイズを特定することができる。
【0110】
HDD160は、比較的大容量(例えば、数十〜数百GB或いは数TB)の不揮発性記憶領域を有するハードディスクと、当該ハードディスクに対する情報の記録再生処理を実行する光ピックアップ装置と、その制御系とを含んでなる、本発明に係る「第2記憶装置」の一例たる記憶装置である。
【0111】
高速メモリ170は、HDD160と較べて(厳密には、HDD160に備わるハードディスクと較べて)小容量(例えば、数百MB〜数GB)の蓄積容量M(byte)を有する揮発性記憶領域を備えたメモリ素子であり、本発明に係る「第1記憶装置」の一例である。尚、高速メモリ170は、その揮発性記憶領域に対し、HDD160の書き込み速度より十分に速い(例えば、数倍〜数十倍)速度で情報を書き込むことができる。その一方で、高速メモリ170は、読み出されたデータが揮発性記憶領域から消去される構成となっている。
【0112】
再生部180は、コンテンツデータ或いはその断片データを、そのエンコードビットレートに等しい再生速度P(byte/sec)でデコードして出力可能なデコーダ部を備えたコンテンツ再生ユニットであり、本発明に係る「再生手段」の一例である。尚、再生部180は、制御部110によりその動作が上位に制御される構成となっている。
<実施例の動作>
以下、本実施例の動作として、ストリーミング再生制御について説明する。
【0113】
<ストリーミング再生制御の概要>
始めに、ストリーミング再生制御の概要について説明する。
【0114】
ストリーミング再生制御は、コンテンツ再生装置100においてコンテンツのストリーミング再生を実現するための制御である。コンテンツの再生に必要なコンテンツデータは、コンテンツ再生装置100に蓄積されておらず、ネットワーク200を介してデータ提供ノード300から取得される。この際、データ提供ノード300から取得されるデータは、コンテンツデータを所定の基準に従って細分化してなる断片データを一単位として取得される。この断片データは、フラグメントと称されるデータ単位を構築する。
【0115】
フラグメントは、フラグメントN0、フラグメントN1及びフラグメントN2から構成され、これらの総和は、コンテンツデータに等しくなっている。フラグメント相互間のデータの割り当て(データ量及びデータ位置)は、プロトコル生成部120において生成されるデータ要求プロトコルによって規定される。
【0116】
コンテンツ再生装置100は、取得されるコンテンツデータのうち、先頭のデータからM0(bit)のデータ量(以下、適宜「再生開始データ量M0」と称する)に相当する再生開始データが取得された時点で、コンテンツの再生を開始することができる。ストリーミング再生制御は、データ要求プロトコルの送信時点からコンテンツデータのダウンロード完了までの時間を抑制しつつ、制御部110の処理能力によらない円滑且つ高品質なストリーミング再生の実現を目的とした制御である。
【0117】
<ストリーミング再生制御の詳細>
次に、図3を参照し、ストリーミング再生制御の詳細について説明する。ここに、図3は、ストリーミング再生制御のフローチャートである。尚、本実施例では、データ提供ノード300が再生すべきコンテンツに係るコンテンツデータを全て保持しているものとする。
【0118】
図3において、制御部110は、準備処理(ステップS100)、初期フラグメント処理(ステップS200)、並列フラグメント処理(ステップS300)及び受信後処理(ステップS400)の順で順次各サブルーチンを実行する。受信後処理が終了すると、ストリーミング再生制御は終了する。
【0119】
<準備処理の詳細>
次に、図4を参照し、準備処理の詳細について説明する。ここに、図4は、準備処理のフローチャートである。
【0120】
図4において、制御部110は、ノード情報を取得する(ステップS101)。
【0121】
ここで、ノード情報とは、データ提供ノード300のIPアドレス、保持するフラグメントの情報及び各種ハードウェア性能に関する情報(CPUの処理速度やメモリの情報)等を意味する。ノード情報は、データ提供ノード300自身が保持しており、制御部110は、データ提供ノードに対してこれらの情報の提供を要求することができる。要求に応じてこれらの情報が提供されると、制御部110は、これらを順次受信データ解析部150を介して解析し、ノード情報としてRAMに格納する。
【0122】
次に、制御部110は、コンテンツ情報を取得する(ステップS102)。本実施例において、コンテンツ情報とは、コンテンツの再生速度P(byte/sec)及びコンテンツサイズN(byte)であるとする。ステップS102は、コンテンツの状態を特定する旨の、本発明に係る「第3特定手段」の動作の一例である。尚、この際、制御部110は、送信部130を介して、コンテンツ情報の送信を促すリクエストを送信し、受信部140を介し、当該リクエストに応じてデータ転送ノード300から送信されるコンテンツ情報を取得すると共に、その内容を受信データ解析部150により解析することによって、コンテンツ情報を取得し、RAMに格納する。
【0123】
次に、制御部110は、バッファ状態を取得する(ステップS103)。本実施例において、バッファ状態とは、HDD160及び高速メモリ170の空き容量及び負荷状態(ビジー状態)であるとする。ステップS103は、第1及び第2記憶装置の状態を特定する旨の、本発明に係る「第2特定手段」の動作の一例である。尚、HDD160及び高速メモリ170共にコンテンツ再生装置100の構成要素であるので、制御部110は、コンテンツ再生装置100の動作状態を制御する過程で常にこれらの情報を取得することができる。尚、先に述べた高速メモリ170の蓄積容量M(byte)とは、この段階でコンテンツの再生に供し得ると判断された空き容量であるとする。
【0124】
次に、制御部110は、ネットワーク状態を取得する(ステップS104)。本実施例において、ネットワーク状態とは、ネットワーク200を介したコンテンツ再生装置100とデータ提供ノード300との通信状態を意味し、より具体的には、コンテンツ再生装置100の受信帯域幅B(byte/sec)、データ提供ノード300の送信帯域幅C(byte/sec)、ネットワーク200の伝送遅延としてのRTT(Round Trip Time)及びTTL(Time To Live)であるとする。ステップS104は、ネットワークを介したデータ提供ノードとの間の通信状態を特定する旨の、本発明に係る「第1特定手段」の動作の一例である。
【0125】
尚、受信帯域幅B及び送信帯域幅Cは、コンテンツ再生装置100及びデータ提供ノード300における設定値である。また、RTTは、RTCP(Real-time Transport Control Protocol)のSR(Sender Report)やRR(Receiver Report)を利用する等して測定される。尚、各通信帯域幅については、ネットワーク200を介してランダムにデータの送受信を行った際のデータの実際の伝送状態に基づいて適宜推定されてもよい。
【0126】
ステップS101乃至S104において必要な情報を取得すると、制御部110は、コンテンツデータのフラグメントサイズを決定する(ステップS105)。ここで、本実施例におけるフラグメントサイズの決定方法について説明する。制御部110は先ず、コンテンツデータを、フラグメントN0、フラグメントN1及びフラグメントN2の三種類のフラグメントに分割する。即ち、下記(1)式が成立する。尚、下記(1)式において、N0、N1及びN2は、各フラグメントのデータ量(bit)を表すものとする。尚、フラグメントN0とフラグメントN1とにより、本発明に係る「フラグメントNa」が、フラグメントN2により本発明に係るフラグメントNbが、夫々構成される。
【0127】
N=N0+N1+N2・・・(1)
次に、制御部110は、フラグメントN0を下記(2)式に従って決定する。
【0128】
N0=min(M+(M−M0)/(B−P)×P,N)・・・(2)
ここで、(2)式右辺の左側の比較項のデータ量が、コンテンツサイズNよりも大きければ、N0=Nとなり、フラグメントN0とは即ちコンテンツデータそのものとなるが、通常、コンテンツサイズNは、高速メモリ170の蓄積容量Mよりも十分に大きいため、N0は、(2)式右辺の左側の比較項となる。
【0129】
尚、本実施例では、データ提供ノード300の送信帯域幅Cがコンテンツ再生装置100の受信帯域幅Bよりも十分に大きいものとし、これらの間の最大の転送速度は、受信帯域幅Bに等しいものとする。また、フラグメントN0の転送速度は、最大転送速度である受信帯域幅Bに相当する速度に、フラグメントN1の転送速度はコンテンツの再生速度Pに、フラグメントN2の転送速度は受信帯域幅Bから再生速度Pに相当する帯域幅を除く残余の帯域幅(即ち、B−Pである)に相当する速度に、夫々予め決定されている。
【0130】
尚、データ提供ノード300が単一のノードである場合、その送信帯域幅Cがコンテンツ再生ノード100の受信帯域幅B未満であれば、当然ながらこれらの間のデータ伝送速度は、送信帯域幅Cに律束される。
【0131】
次に、制御部110は、フラグメントN1及びN2を下記(3)及び(4)式に従って決定する。
【0132】
N1=(N−N0)/B×P・・・(3)
N2=(N−N0)/B×(B―P)・・・(4)
上記(3)式及び(4)式は、フラグメントN0を除いた残余のフラグメントを、フラグメントN1及びN2に割り当てられる受信帯域幅(即ち、転送速度である)の比率でフラグメントN1及びN2に割り当てることを意味している。別言すれば、本実施例において、フラグメントN1の取得完了タイミングと、フラグメントN2の取得完了タイミングとは、理想的には一致する。
【0133】
フラグメントサイズが決定されると、制御部110は、HDD160及び高速メモリ170に然るべきバッファ領域を確保して(ステップS106)、準備処理を終了する。
【0134】
<初期フラグメント処理の詳細>
次に、図5を参照し、初期フラグメント処理の詳細について説明する。ここに、図5は、初期フラグメント処理のフローチャートである。
【0135】
始めに、制御部110は、データ提供ノード300に対し、フラグメントN0を要求する(ステップS201)。この際、制御部110は、プロトコル生成部120を介して、先に決定されたフラグメントサイズをデータ提供ノード300に伝達するプロトコルを生成し、送信部130を介してデータ提供ノード300に送信する。このプロトコルには、フラグメントN0のデータサイズN0、コンテンツデータにおけるフラグメントN0の断片位置及びフラグメントN0を構成する各断片データの断片位置が記述されている。
【0136】
フラグメントN0の転送を要求すると、制御部110は、データ提供ノード300から要求に応じたフラグメントN0の転送が開始されるのを待ち、データ転送単位たる一パケットに収まる断片データサイズ毎に受信部140に到着するフラグメントN0を受信する(ステップS202)。受信されたフラグメントN0は、高速メモリ170に順次蓄積される(ステップS203)。このフラグメントN0の受信及び高速メモリ170への蓄積に係る処理は、データ提供ノード300からのフラグメントN0の転送が終了するまで継続する。
【0137】
尚、この段階でデータ提供ノード300に要求されるフラグメントはフラグメントN0のみであるから、フラグメントN0は、最大転送速度、即ち、この場合、コンテンツ再生装置100の受信帯域幅B全域を使用して取得される。
【0138】
一方、制御部110は、高速メモリ170へのフラグメントN0の蓄積と並行して、高速メモリ170に蓄積されたフラグメント量たるメモリキャッシュ量が、再生開始データ量M0よりも大きいか否かを判別する(ステップS204)。メモリキャッシュ量がM0以下である場合には(ステップS204:NO)、処理はステップS202に戻される。
【0139】
メモリキャッシュ量が再生開始データ量M0より大きい場合(ステップS204:YES)、制御部110は、高速メモリ170に蓄積されたフラグメントN0たるメモリキャッシュを、先頭データから順次読み出して再生する(ステップS205)。即ち、この段階で、コンテンツのストリーミング再生が開始される。
【0140】
コンテンツのストリーミング再生が開始されると、制御部110は、受信データ量がフラグメントN0のデータ量N0以上であるか否かを判別する(ステップS206)。受信データ量がN0未満であれば(ステップS206:NO)、処理はステップS202に戻され、受信データ量がN0以上であれば(ステップS206:YES)、即ち、高速メモリ170の蓄積容量Mに相当するフラグメントが蓄積されると、初期フラグメント処理は終了する。
【0141】
<並列フラグメント処理の詳細>
次に、図6を参照し、並列フラグメント処理の詳細について説明する。ここに、図6は、並列フラグメント処理のフローチャートである。
【0142】
始めに、制御部110は、データ提供ノード300に対し、フラグメントN1及びN2を要求する(ステップS301)。この際、制御部110は、プロトコル生成部120を介して、先に決定されたフラグメントサイズをデータ提供ノード300に伝達するプロトコルを生成し、送信部130を介してデータ提供ノード300に送信する。このプロトコルには、フラグメントN1及びN2のデータサイズN1及びN2、コンテンツデータにおけるフラグメントN1及びN2の断片位置並びに各フラグメントにおける断片データの断片位置が記述されている。また、制御部110は、これと合わせて、フラグメントN1の転送速度をコンテンツの再生速度Pとし、フラグメントN2の転送速度を受信帯域幅Bから再生速度Pを除外した残余の帯域幅とする旨をデータ提供ノード300に対し指示する。
【0143】
制御部110は、フラグメントの受信が開始されると(ステップS302)、受信データ解析部150を介して、受信したフラグメントがフラグメントN1であるかフラグメントN2であるかを判別する(ステップS303)。
【0144】
受信したフラグメントが、フラグメントN1である場合(ステップS303:YES)、制御部110は、フラグメントを高速メモリ170に蓄積する(ステップS304)と共に、高速メモリ170からキャッシュを読み出して、メモリキャッシュを再生速度Pで再生する(ステップS306)。即ち、高速メモリ170には、再生速度Pでフラグメントが読み出される一方で、再生速度Pでフラグメントが書き込まれる。従って、高速メモリ170に蓄積されているフラグメント量は、基本的に蓄積容量Mに維持される。
【0145】
一方、受信したフラグメントがフラグメントN2である場合(ステップS303:YES)、制御部110は、受信したフラグメントをHDD160に蓄積する(ステップS305)。
【0146】
ステップS305又はステップS307が実行されると、制御部110は、ストリーミング再生制御の開始時点以降に受信されたデータ量たる受信データ量が、コンテンツサイズN以上であるか否かを判別する(ステップS307)。尚、上記(1)式の関係に鑑みれば、ステップS307に係る判別処理は、フラグメントN1及びN2の取得が完了したか否かを意味する。
【0147】
受信データ量がN未満であれば(ステップS307:NO)、制御部110は、処理をステップS302に戻し、一連の処理を繰り返す。一方、受信データ量がN以上である場合(ステップS307:YES)、並列フラグメント処理は終了する。
【0148】
<受信後処理の詳細>
次に、図7を参照し、受信後処理の詳細について説明する。ここに、図7は、受信後処理のフローチャートである。
【0149】
図7において、制御部110は、ネットワーク200を介したデータ提供ノード300との通信回線を切断する(ステップS401)。続いて、高速メモリ170から蓄積されたフラグメントであるメモリキャッシュを読み出して再生する(ステップS402)。尚、ステップS402は、ステップS306から継続される処理である。ここで、ステップS402における再生処理は、ステップS306に係る処理と違い、新たなフラグメントの書き込みを伴わない。従って、ステップS402の実行過程においては、高速メモリ170のフラグメント蓄積量は、蓄積容量Mから再生速度Pで漸減する。
【0150】
制御部110は、メモリキャッシュが漸減した結果、メモリキャッシュ量がゼロとなったか否かを判別する(ステップS403)。メモリキャッシュ量がゼロでなければ(ステップS403:NO)、即ち、フラグメントN2よりも再生順序が早いフラグメントが未だ高速メモリ170に残存していれば、制御部110は、メモリキャッシュの再生を継続する。
【0151】
一方、メモリキャッシュ量がゼロとなった場合(ステップS403:YES)、制御部110は、HDD160に蓄積されたフラグメントN2、即ち、HDDキャッシュを順次読み出して再生する(ステップS404)。HDDキャッシュの再生が開始されると、制御部110は、HDDキャッシュの再生が終了したか否かを判別し(ステップS405)、再生が終了していなければ(ステップS405:NO)、処理をステップS404に戻してフラグメントN2の再生を継続すると共に、再生が終了した場合には(ステップS405:YES)、受信後処理を終了する。
【0152】
<ストリーミング再生制御の効果>
次に、図8を参照し、ストリーミング再生制御の効果について説明する。ここに、図8は、ストリーミング再生制御における各フラグメントの流れの概念図である。尚、図8において、既出の各図と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0153】
図8において、フラグメントN0、N1及びN2の流れが、ストリーミング再生制御における該当ステップに係るステップ番号と共に示される。このステップ番号の百の位は、サブルーチンの識別番号となっており、小さい程時系列上早く実行されることを意味している。
【0154】
これから明らかなように、データ提供ノード300から転送されたフラグメントN0の高速メモリ170への書き込み処理(ステップS203)及び高速メモリ170からのフラグメントN0の読み出し処理(ステップS205)は、他のフラグメントに先んじて実行される(厳密には、高速メモリ170に蓄積されたキャッシュにN0とN1との区別はないから、N0の一部はステップS306でも読み出される)。
【0155】
一方、フラグメントN1は、ステップS304において高速メモリ170に書き込まれ、ステップS306において高速メモリ170から読み出される。即ち、高速メモリ170の揮発性記憶領域に対するフラグメントの書き込み処理及び読み出し処理は、相互に並行して実行される。高速メモリ170におけるフラグメントの書き込み速度及び読み出し速度は十分に速く、これらが時間軸上で重複して実行されても、実践上問題は生じない。
【0156】
他方、制御系及び光ピックアップ等の駆動を介してなされる、不揮発性記憶領域に対するフラグメントの書き込み処理及び読み出し処理は、制御部110に要求される負荷が高速メモリ170に対するそれと較べて大きい。従って、これらが時間軸上で重複して実行されると、フラグメントの読み出しが遅れてコンテンツの円滑な再生が阻害される、或いはフラグメントの書き込みが遅れてこれらが時間軸上で重複する期間が更に長大化する等、コンテンツの再生品質が低下する要因となる。とりわけ、制御部110の処理能力が現実的な各種制約の範囲で律束される、携帯型端末や比較的安価なネットワーク対応型家庭用電気機器等においてはその傾向が強くなる。
【0157】
その点、本実施例によれば、HDD160の不揮発性記憶領域に対するフラグメントN2の書き込み処理は、ステップS305で実行され、HDD160の不揮発性記憶領域からのフラグメントN2の読み出し処理は、ステップS403で実行される。即ち、後者は前者よりも時系列上確実に遅くなる。従って、本実施例によれば、HDD160の不揮発性記憶領域に対する書き込み処理と読み出し処理とが重複することはなく、コンテンツの再生品質が制御部110の処理能力に応じて低下する懸念が生じない。即ち、コンテンツの再生品質が好適に確保されるのである。
【0158】
次に、図9を参照し、ストリーミング再生制御におけるデータ量の時間推移について説明する。ここに、図9は、ストリーミング再生制御における各データ量の一時間推移を例示する図である。尚、同図において、既出の各図と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0159】
図9において、縦軸はデータ量(byte)であり、横軸は時刻である。
【0160】
時刻T0において、初期フラグメント処理が開始されたとする。時刻T1で受信データ量が再生開始データ量M0に達し、コンテンツの再生が開始される。コンテンツの再生開始以降も、受信帯域Bの全域を使用したフラグメントN0の取得は継続され、時刻T2において、メモリキャッシュ量(図示ハッチング領域参照)が蓄積容量Mに到達すると、フラグメントN0の取得も完了する(上記(2)式は、このような関係が満たされるように規定されている)。
【0161】
取得したフラグメントの総量がコンテンツサイズNに達した時刻T3において、高速メモリ170の揮発性記憶領域に対するフラグメントN1の書き込み処理とHDD160の不揮発性記憶領域に対するフラグメントN2の書き込み処理とが終了すると、時刻T4にかけて高速メモリ170のメモリキャッシュ量が再生速度Pで漸減する。メモリキャッシュ量がゼロとなる時刻T4において、再生用のバッファがHDD160に切り替えられ、それ以後、時刻T5において再生データ量がコンテンツサイズNに達するまで、HDDキャッシュによるコンテンツ再生が継続される。
【0162】
尚、HDD160の容量は、コンテンツサイズNに対して十分に大きいため、HDDキャッシュが読み出されても、読み出し済み(再生済み)のHDDキャッシュを消去する必要はなく、図示するように、その量は減少しない。また、このように再生済みのHDDキャッシュを消去する必要がないから、HDDキャッシュに基づいたコンテンツの再生中に、HDD160に対する読み出し処理と書き込み処理とが同時に発生する事態が回避される。
【0163】
図9から明らかなように、HDD160においてフラグメントN2の書き込み処理が終了する時刻T4と、HDDキャッシュの読み出し処理が開始される時刻T5との間には、T5−T4に相当する時間遅延があり、両者が重複して実行されることはない。
<第2実施例>
次に、図10を参照し、本発明の第2実施例に係るストリーミング再生制御について説明する。ここに、図10は、ストリーミング再生制御のフローチャートである。尚、同図において、図3と重複する箇所には同一の符合を付してその説明を適宜省略することとする。尚、第2実施例に係るハードウェア構成は、第1実施例と同等であるとする。
【0164】
図10において、準備処理を実行した後、制御部110は、初期フラグメント処理を実行し(ステップS210)、並列フラグメント処理を実行し(ステップS310)、受信後処理を実行する(ステップS410)。
【0165】
続いて、図11を参照し、第2実施例に係る初期フラグメント処理について説明する。ここに、図11は、初期フラグメント処理のフローチャートである。尚、同図において、図5と重複する箇所については同一の符号を付してその説明を適宜省略することとする。
【0166】
図11において、メモリキャッシュの再生を実行すると(ステップS205)、制御部110は、コンテンツの保存要求の有無を判別する(ステップS211)。コンテンツの保存要求は、例えば、コンテンツ再生装置100のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部110が自動的に生成するものであってもよい。
【0167】
コンテンツの保存要求が無い場合(ステップS211:NO)、制御部100は、第1実施例と同様に処理をステップS206に移行させる。一方、コンテンツの保存要求が有る場合(ステップS211:YES)、制御部110は、再生済みのメモリキャッシュをHDD160の不揮発性記憶領域に複製して書き込み、保存する(ステップS212)。
【0168】
次に、図12を参照し、第2実施例に係る並列フラグメント処理について説明する。ここに、図12は、並列フラグメント処理のフローチャートである。尚、同図において、図6と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0169】
図12において、メモリキャッシュの再生を実行すると(ステップS306)、制御部110は、コンテンツの保存要求の有無を判別する(ステップS311)。コンテンツの保存要求は、例えば、コンテンツ再生装置100のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部110が自動的に生成するものであってもよい。
【0170】
コンテンツの保存要求が無い場合(ステップS311:NO)、制御部100は、第1実施例と同様に処理をステップS307に移行させる。一方、コンテンツの保存要求が有る場合(ステップS311:YES)、制御部110は、再生済みのメモリキャッシュをHDD160の不揮発性記憶領域に複製して書き込み、保存する(ステップS312)。
【0171】
次に、図13を参照し、第2実施例に係る受信後処理について説明する。ここに、図13は、受信後処理のフローチャートである。尚、同図において、図7と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0172】
図13において、HDDキャッシュの再生が終了すると(ステップS405:YES)、制御部110は、コンテンツの消去要求の有無を判別する(ステップS411)。コンテンツの消去要求は、例えば、コンテンツ再生装置100のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部110が自動的に生成するものであってもよい。
【0173】
コンテンツの消去要求が有る場合(ステップS411:YES)、制御部110はHDD160からHDDキャッシュ(この場合、フラグメントN0、N1及びN2からなるコンテンツデータそのもの)を消去する(ステップS412)。コンテンツの消去要求が無い場合(ステップS411:NO)、制御部100は、受信後処理を終了させる。
【0174】
次に、図14を参照し、第2実施例に係るストリーミング再生制御の効果について説明する。ここに、図14は、第2実施例に係るストリーミング再生制御における各フラグメントの流れの概念図である。尚、図14において、図8と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0175】
図14から明らかなように、第2実施例に係るストリーミング再生制御によれば、第1実施例においては高速メモリ170にのみ蓄積されていたフラグメントN0及びN1(尚、図14では、高速メモリ170にフラグメントN0及びN1が全量格納されているように描かれているが、実際に蓄積されるデータ量は、蓄積容量Mに相当するデータのみである)が、順次HDD160の不揮発性記憶領域に複製され蓄積される、従って、一度ダウンロードしたコンテンツについては、再度のダウンロードが不要となり、効率的である。
<第3実施例>
次に、本発明の第3実施例について説明する。
【0176】
<実施例の構成>
始めに、図15を参照し、本発明の第3実施例に係るストリーミングシステム2の構成について説明する。ここに、図15は、ストリーミングシステム2の構成を概念的に表してなる概略構成図である。尚、同図において、図1と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0177】
図15において、ストリーミングシステム2は、第1実施例と異なり、複数のデータ提供ノード300A、300B、300C及び300Dを備えており、これら複数のデータ提供ノードからコンテンツデータをダウンロードすることが可能である。
【0178】
<実施例の動作>
次に、図16を参照し、本発明の第2実施例に係るストリーミング再生制御について説明する。ここに、図16は、ストリーミング再生制御のフローチャートである。尚、同図において、図10と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0179】
図16において、制御部110は、準備処理を実行し(ステップS120)、初期フラグメント処理を実行し(ステップS220)、並列フラグメント処理を実行する(ステップS320)。その後、第2実施例と同様に受信後処理を実行する(ステップS410)。
【0180】
次に、図17を参照し、第3実施例に係る準備処理の詳細について説明する。ここに、図17は、準備処理のフローチャートである。尚、同図において、図4と重複する箇所には、同一の符合を付してその説明を適宜省略することとする。
【0181】
図17において、ステップS101、S102及びS104は、各データ提供ノードについて実行される。
【0182】
ステップS105においてフラグメントサイズが決定されると、制御部110は、決定されたフラグメントN0、N1及びN2に対し、夫々データ提供ノードを割り当てる(ステップS121)。この際、制御部110は、下記(A)(B)(C)の規則に従って、各フラグメントに対し適切なデータ提供ノードを割り当てる。
【0183】
(A)フラグメントN0を提供するノードの決定
フラグメントN0を提供するノードは、以下(ア)〜(エ)の要領で決定される。
【0184】
(ア)コンテンツを保持するデータ提供ノードの中で、送信帯域幅Cの大きい順に優先順位を付与する
(イ)(ア)で設定された優先順位の高いデータ提供ノードから、送信帯域幅Cの総和がコンテンツ再生装置100の受信帯域幅B以上となるまでのノードを選択する
(ウ)(イ)で選択された各コンテンツ提供ノードに対して、送信帯域幅C、RTT、ハードウェア性能の順に優先順位を付与する
(エ)(ウ)で付与された優先順位の高いノードから順に、送信帯域幅Cの比率でフラグメントN0の先頭から断片データを割り当てる
この規則に従った場合、送信帯域幅Cがコンテンツ再生装置100の受信帯域幅Bよりも大きいデータ提供ノードが存在すれば、第1実施例と同様、単一のデータ提供ノードからフラグメントN0が取得される。一方、送信帯域幅Cが受信帯域幅B未満である場合には、受信帯域幅Bの利用効率が最大(100%)となるように、複数のデータ提供ノードが選択される。第1実施例のようにデータ提供ノードが単一であれば、このような場合に受信帯域幅Bの利用効率は理論的最大値には達さない(但し、送信帯域幅全域を使用してフラグメントN0を転送するので、与えられた環境下では受信帯域幅の利用効率は最大である)が、本実施例では、複数のノードからフラグメントN0を取得することによって、再生開始データを含むフラグメントN0を可及的迅速に取得することが可能となり、コンテンツの再生開始に要する時間を短縮することが可能となる。
【0185】
(B)フラグメントN1を提供するノードの決定
フラグメントN1を提供するノードは、以下(ア)〜(エ)の要領で決定される。
【0186】
(ア)コンテンツを保持するデータ提供ノードの中で、コンテンツの再生速度P以上の送信帯域幅を有するノードを選択し、その中から更に、最もRTTの小さいノードを選択する
(イ)(ア)において、再生速度P以上の送信帯域を有するデータ提供ノードが存在しない場合、送信帯域幅C、RTTの順に優先順位を付与する
(ウ)(イ)において付与された優先順位が大きいものから、送信帯域幅Cの総和が再生速度P以上になるまでデータ提供ノードを選択する
(エ)(ウ)で選択されたデータ提供ノードに対し、送信帯域幅Cの比率でフラグメントN1の先頭から断片データを割り当てる
フラグメントN1は、高速メモリ170の揮発性記憶領域に対し、再生速度Pに同期した書き込み速度で書き込まれるフラグメントであるから、データ提供ノードは、再生速度P以上の送信帯域幅を有するノードであれば問題はない。但し、データ提供ノードが複数あれば、再生速度P以上の送信帯域幅を有するデータ提供ノードが存在しない場合であっても、このように再生速度P以上の送信帯域幅が確保されるまでデータ提供ノードを増やすことができるため、コンテンツの再生品質を低下させずに済む。例えば、データ提供ノードが、再生速度P未満の送信帯域幅を有する単一のノードである場合、コンテンツの再生と共に、高速メモリ170のメモリキャッシュは減少してしまうから、任意のタイミングで再生を中止してメモリキャッシュ量を増やす以外にないのである。
【0187】
(C)フラグメントN2を提供するノードの決定
フラグメントN2を提供するノードは、以下(ア)〜(ウ)の如くにして決定される。
【0188】
(ア)複数のコンテンツ提供ノードに対して、送信帯域幅C、ハードウェア性能、RTTの順に優先順位を付与する
(イ)(ア)で付与された優先順位の高いデータ提供ノードから順に、送信帯域幅Cの総和が、受信帯域幅Bの残余の帯域幅を超えるまでデータ提供ノードを選択する
(ウ)(イ)で選択されたデータ提供ノードに対し、送信帯域幅の比率でフラグメントN2の先頭から断片データを割り当てる
ノードの割り当てが終了すると、制御部110は、HDD160及び高速メモリ170に然るべきバッファ領域を確保して(ステップS106)、準備処理を終了する。
【0189】
続いて、図18を参照し、第3実施例に係る初期フラグメント処理について説明する。ここに、図18は、初期フラグメント処理のフローチャートである。尚、同図において、図11と重複する箇所については同一の符号を付してその説明を適宜省略することとする。
【0190】
図18において、準備処理によって割り当てられた一又は複数のデータ提供ノードに対し、フラグメントN0の要求を行うと(ステップS201)、制御部110は、ネットワーク200に障害(通信回線の切断や安定性の低下や帯域幅の低下等)が発生したか否かを判別する(ステップS221)。ネットワーク障害が発生していない場合(ステップS221:NO)、処理はステップS202に移行される。
【0191】
一方、ネットワーク障害が発生している場合(ステップS221:YES)、制御部110は、フラグメントN0を要求するデータ提供ノードを再度割り当てる(ステップS222)。データ提供ノードを再度割り当てた後、制御部110は、再度割り当てたデータ提供ノードに対してフラグメントN0を要求する(ステップS223)。それ以降の処理は、第2実施例と同様である。
【0192】
ここで、ステップS222におけるデータ提供ノードの再割り当ては、上記(A)のプロセスを再度実行することによって行われる。即ち、ネットワーク障害が発生したデータ提供ノードを除外したデータ提供ノードの中から、適切なデータ提供ノードが選択され、既に高速メモリ170にキャッシュとして蓄積された断片データ以降の断片データから転送が要求される。この際、その時点で高速メモリ170に蓄積されたメモリキャッシュの再生を開始してもよい。
【0193】
次に、図19を参照し、第3実施例に係る並列フラグメント処理について説明する。ここに、図19は、並列フラグメント処理のフローチャートである。尚、同図において、図12と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0194】
図19において、準備処理によって割り当てられた一又は複数のデータ提供ノードに対し、フラグメントN1及びN2の要求を行うと(ステップS301)、制御部110は、ネットワーク200に障害(通信回線の切断や安定性の低下や帯域幅の低下等)が発生したか否かを判別する(ステップS321)。ネットワーク障害が発生していない場合(ステップS321:NO)、処理はステップS302に移行される。
【0195】
一方、ネットワーク障害が発生している場合(ステップS321:YES)、制御部110は、フラグメントN1及びN2を要求するデータ提供ノードを再度割り当てる(ステップS322)。データ提供ノードを再度割り当てた後、制御部110は、再度割り当てたデータ提供ノードに対してフラグメントN1及びN2を要求する(ステップS323)。それ以降の処理は、第3実施例と同様である。
【0196】
ここで、ステップS322におけるデータ提供ノードの再割り当ては、フラグメントN1の場合とフラグメントN2の場合とで異なる。
【0197】
フラグメントN1を提供するノードにネットワーク障害が発生した場合、制御部110は、コンテンツの円滑な再生を維持するため、メモリキャッシュの再生を継続する。その一方で、データ提供ノードの中から最も送信帯域の大きいデータ提供ノードを選択し、フラグメントN1のうち、高速メモリ170に蓄積された最後の断片データ以降の断片データを要求する。この際、高速メモリ170のメモリキャッシュ量が蓄積容量Mに復活するまで、フラグメントN2の取得は中断される。即ち、受信帯域幅Bを全て使用して、最速で高速メモリ170のメモリキャッシュの復活が図られる。
【0198】
高速メモリ170のメモリキャッシュ量が蓄積容量Mまで復活すると、制御部110は、上記(B)のプロセスに従って一又は複数のデータ提供ノードを選択して再生速度Pに同期したフラグメントN1の取得を再開する。それと同時に、フラグメントN2の取得が再開される。
【0199】
一方、フラグメントN2を提供するノードにネットワーク障害が発生した場合、制御部110は、上記(C)のプロセスに従って、優先順位が下位となる一又は複数のノードを選択し、ネットワーク障害が発生したノードに割り当てられた断片データのうち、既にHDD160にHDDキャッシュとして蓄積されたデータ以降のデータを要求する。
【0200】
次に、図20を参照し、第3実施例に係るストリーミング再生制御の効果について説明する。ここに、図20は、第3実施例に係るストリーミング再生制御における各フラグメントの流れの概念図である。尚、図20において、図14と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0201】
図20から明らかなように、第3実施例に係るストリーミング再生制御によれば、複数のデータ提供ノード(図中では300A及び300B)から、フラグメントN0、N1及びN2が転送される。このため、既に述べたように、各データ転送ノードの送信帯域幅がコンテンツ再生装置100の受信帯域幅B未満である場合にも、受信帯域幅Bの利用効率を最大に維持することが可能となり、コンテンツデータ全体のダウンロード時間を短縮化することが可能となる。
【0202】
また、一又は複数のコンテンツ提供ノードとの間の通信が切断された場合等においても、単一なデータ提供ノードとの間でデータ転送を行う場合と異なり、他のコンテンツ提供ノードを代替ノードとして使用することができる。従って、コンテンツの再生が途切れることが防止され、よりロバストなコンテンツ再生が担保される。また、例えば、高品質な映像コンテンツ等、ネットワーク200に収容された各データ提供ノードの送信帯域幅がいずれもコンテンツの再生速度未満となるような場合にも、コンテンツ再生装置100側では再生速度以上の速度でコンテンツデータを取得することが可能となり、コンテンツの再生に関する制約がより緩和される。
【0203】
尚、いずれにせよ、HDD160の不揮発性記憶領域に対する書き込み処理及び読み出し処理の重複は生じることがなく、本発明に特有の実践上利益が担保されることは言うまでもない。
<第4実施例>
次に、本発明の第4実施例について説明する。
【0204】
フラグメントの伝送態様を規定するプロトコルが、例えば、UDP(User Datagram Protocol)等、パケットロスの発生が回避され難いプロトコルである場合、予めこのようなパケットロスへの対策を講じておくのが望ましい。
【0205】
そこで、第4実施例では、上記第3実施例において、フラグメントN0、N1及びN2を夫々複数のデータ提供ノードから取得する。この場合、フラグメントサイズが2倍になったことと等価であるから、コンテンツの再生開始に要する時間や、コンテンツデータのダウンロードに要する時間は第3実施例と較べて長くなるが、パケットロスが減少するため、パケットの再送要求が生じる頻度を減少させることができ、コンテンツの円滑な再生には効果的である。
【0206】
また、応用として、MPEG1ピクチャやGOPヘッダ等、パケットロスが大きなエラーに繋がる場合に限って、複数ノードからの取得を行ってもよい。
<第5実施例>
上記各種実施例では、フラグメントN1及びフラグメントN2は、予め準備処理の実行段階で、その時点のネットワークの状態等に基づいて、そのデータ量が決定されている。然るに、ネットワーク環境は、時間的に変化し得るため、フラグメントN1及びN2が、コンテンツデータのダウンロード期間中に最適値を維持する保証はない。そこで、第5実施例では、そのようなネットワーク環境の変化にロバストなストリーミング再生制御について説明する。
【0207】
第5実施例では、フラグメントサイズの決定に際して、先ずフラグメントN0のみが決定される。
【0208】
フラグメントN0の取得が完了すると、制御部110は、一方で、フラグメントN0から連続する位置から再生速度Pに同期した速度でデータ断片を順次取得し、他方で、残余の受信帯域幅を使用してコンテンツデータの最後尾の位置から遡って断片データを取得する。このようにフラグメントN0を除く残余のコンテンツデータの両端部から断片データの取得を実行すると、残余のコンテンツデータの一断片データが重複して取得されることになる(重複する前にその旨を検出してもよい)。
【0209】
この重複データ位置に相当する断片データから最後尾までの断片データがフラグメントN2であり、この重複位置に相当する断片データよりも先頭側のデータがフラグメントN1である。このようにフラグメントN1及びN2を成り行きに任せた可変値として設定すれば、ネットワークの状態の変化(例えば、帯域幅の変化)に応じてフラグメントN1及びN2のデータ量が自動的に変化するため、予めこれらのデータ量を規定しておくよりも、ネットワークの状態変化に対してロバストとなる。
【0210】
また、この場合も、メモリキャッシュは再生速度Pで再生されており、上記重複データ位置の断片データが読み出されるタイミングは、取得する断片データが重複するタイミングよりも、メモリキャッシュのデータ量を再生速度Pで乗じた時間分後になる。即ち、この場合も、HDD160における書き込み処理と読み出し処理との重複が生じることはなく、円滑なコンテンツの再生が約束される。
【0211】
本発明は、上述した実施例に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴うストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体もまた、本発明の技術的範囲に含まれるものである。
【産業上の利用可能性】
【0212】
本発明は、コンテンツのストリーミング再生を行う装置に適用可能である。
【符号の説明】
【0213】
1…ストリーミングシステム、2…ストリーミングシステム、100…再生装置、200…ネットワーク、300、300A、300B、300C、300D…データ提供ノード、110…制御部、120…プロトコル生成部、130…送信部、140…受信部、150…受信データ解析部、160…HDD,170…高速メモリ。
【技術分野】
【0001】
本発明は、例えば、映像や音声等に係る各種コンテンツのストリーミング再生を行うためのストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体の技術分野に関する。
【背景技術】
【0002】
コンテンツのストリーミング再生方法として、コンテンツストリームを再生レートよりも大きいレートで搬送する方法1と、同じく再生レートで搬送する方法2とを用いたリアルタイムストリーミング方式を採用したものが提案されている(例えば、特許文献1参照)。特許文献1に開示されたコンテンツ配信システムによれば、再生開始時に上記方法1を選択することによりバッファにキャッシュを蓄積すると共に、バッファにキャッシュが蓄積された後は上記方法2を選択することにより、ネットワークが途切れた場合でも、バッファ内のキャッシュを用いて再生を継続させることができるとされている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−244548号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、コンテンツの再生速度でバッファへの書き込みを行う場合、書き込みに要する時間は、コンテンツの再生時間と等しくなる。従って、この種のリアルタイムストリーミングにおいては、ネットワークに接続している必要のある時間が総じて長大化し易い。無論、この種のリアルタイムストリーミングに用いられるバッファの容量を、コンテンツのデータ量に対して十分に大きく採ることができれば、再生速度に同期した書き込みは必ずしも必要ではないが、例えば各種映像コンテンツのように比較的大容量のコンテンツを考えた場合、バッファの容量はコンテンツのデータ量に対して十分に小さいのが一般的である。
【0005】
一方、ネットワークの状態は、時間的に安定しない場合も多く、ネットワークへの接続が不意に中断する等、何らかの障害が発生する可能性は低くない。従って、ネットワークへの接続時間が相対的に長くならざるを得ないこの種のリアルタイムストリーミングにおいては、コンテンツの再生品質が、ネットワークの状態に依存することになる。
【0006】
ここで特に、特許文献1に開示された装置によれば、ネットワークに障害が発生したとしても、バッファに蓄積されたキャッシュによって一定時間はコンテンツの再生を継続し得るが、上述したようにバッファの容量はコンテンツのデータ量に対して大きくないから、その効果は限定的であって、コンテンツの安定的再生を目的とするには実践的にみて不十分であると言わざるを得ない。
【0007】
ところで、この種のリアルタイムストリーミング方式とは別に、HDD(Hard Disk Drive)等の大容量記憶装置に一定単位のコンテンツをダウンロードしつつ順次再生するプログレッシブダウンロード方式も公知である。この方式であれば、バッファとしてのHDDの容量をコンテンツのデータ量よりも大きく採ることも容易であり、ネットワークへの接続時間を短縮化することも可能である。
【0008】
ところが、この場合、HDDへのコンテンツの書き込みとHDDからのコンテンツの読み出しとが同時に実行される必要がある。読み出しと書き込みとを同時に行うには、制御装置側に大きな処理能力が必要であるから、プログレッシブダウンロード方式の恩恵を享受できるのは、現実的には、高い処理能力を有する一部の高性能な(言うなれば、高価な)再生装置だけである。即ち、例えば携帯型端末装置や比較的安価なネットワーク対応型家庭用電機機器等の、機器性能が少なからず制限されざるを得ない装置環境においては、コンテンツの書き込みと読み出しとのいずれかが円滑に行われない可能性が高くなり、結果的にコンテンツの円滑なストリーミングが難しくなる。
【0009】
即ち、従来の再生装置には、再生装置側の処理能力に影響されない、コンテンツの高品質なストリーミング再生が困難であるという技術的問題点がある。
【0010】
本発明は、係る問題点に鑑みてなされたものであり、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生を実現し得るストリーミング再生装置を提供することを課題とする。
【課題を解決するための手段】
【0011】
上述した課題を解決するため、請求項1のストリーミング再生装置は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求手段と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得手段と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御手段と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御手段と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定手段と、前記第1及び第2記憶装置の状態を特定する第2特定手段と、前記コンテンツの状態を特定する第3特定手段と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定手段とを具備し、前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求することを特徴とする。
【0012】
上述した課題を解決するため、請求項14のストリーミング再生方法は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求工程と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得工程と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御工程と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御工程と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定工程と、前記第1及び第2記憶装置の状態を特定する第2特定工程と、前記コンテンツの状態を特定する第3特定工程と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定工程とを具備し、前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求することを特徴とする。
【0013】
上述した課題を解決するため、請求項15のコンピュータプログラムは、コンピュータシステムを請求項1から13のいずれか一項に記載のコンテンツ再生装置として機能させることを特徴とする。
【0014】
上述した課題を解決するため、請求項16の記録媒体は、請求項15のコンピュータプログラムを記録することを特徴とする。
<ストリーミング再生装置の実施形態>
【0015】
本発明のストリーミング再生装置に係る実施形態は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求手段と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得手段と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御手段と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御手段と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定手段と、前記第1及び第2記憶装置の状態を特定する第2特定手段と、前記コンテンツの状態を特定する第3特定手段と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定手段とを具備し、前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する。
【0016】
実施形態に係る、揮発性記憶領域を有する第1記憶装置とは、例えば、RAM(Random Access Memory)等の各種メモリデバイスであり、不揮発性記憶領域を有する第2記憶装置とは、例えば、HDD等を指す。但し、これらの実践的態様は、書き込み速度と蓄積容量との相対関係が満たされる限りにおいて如何様にも限定されない趣旨である。
【0017】
実施形態に係る「ネットワーク」とは、例えばWAN(Wide Area Network)網、LAN(Local Area Network)網、又はこれらWAN網又はLAN網を介して或いは電話回線、ADSL(Asymmetric Digital Subscriber Line)又は光ファイバーケーブル等を介して適宜に接続されるインターネット網等の各種データ通信網を包括する概念である。
【0018】
実施形態に係る「データ提供ノード」とは、例えば、各種サーバ装置やパーソナルコンピュータ装置等を意味する。サーバ装置は、接続者を限定しない開かれたサーバ装置であってもよいし、接続者が限定される閉じられたサーバ装置であってもよい。尚、データ提供ノードは、予め決まった装置であってもよいし、然るべき候補の中から、その都度適宜選択或いは決定される装置であってもよい。
【0019】
実施形態に係るストリーミング再生装置によれば、その動作時には、要求手段により、一又は複数のデータ提供ノードに対し、フラグメントNa及びフラグメントNbの転送が要求される。
【0020】
転送が要求される、フラグメントNa及びNbは、夫々コンテンツデータを分割してなる断片データとしてのフラグメントであり、好適には、複数の転送単位データの集合である。フラグメントNaは、コンテンツのストリーミング再生を開始するために必要となる再生開始データ(ストリーミング再生装置に固有のデータ量に相当するデータである)を含むデータである。また、フラグメントNbは、このフラグメントNaと連続するデータ部分を含むデータである。
【0021】
尚、フラグメントNbについて補足すると、フラグメントNbは、好適には、フラグメントNaの最終データ部分と連続性を有するデータ部分からコンテンツデータの最終位置を規定するデータ部分までを含むフラグメントである。但し、フラグメントNaとの連続部分を含む限りにおいて、一部がフラグメントNaと重複していてもよい。また、必ずしも当該最終位置を規定するデータ部分を含まずともよい。
【0022】
一又は複数のデータ提供ノードにおいては、この転送要求によって指定されたフラグメントを、順次ネットワークを介して、ストリーミング再生装置の実施形態に対し転送する。この際、少なくともフラグメントNaに関して言えば、好適には、コンテンツデータの先頭に相当するデータから順次転送される。各データ提供ノードから転送されてくるフラグメントは、取得手段によりその各々について順次取得される。尚、転送要求を含む、データ提供ノードとの間の各種データの送受信形態は、例えば然るべきサーバ装置を介したものであってもよいし、例えばP2P(Peer To Peer)等サーバ装置を介さないものであってもよい。
【0023】
一方、実施形態によれば、転送されるフラグメントのうち、フラグメントNaが、第1記憶装置における揮発性記憶領域に記憶され、フラグメントNbが、第2記憶装置における不揮発性記憶領域に記憶される。尚、一又は複数のデータ提供ノードから転送されるフラグメントがいずれのフラグメントであるかは、各データ提供ノードがフラグメントを転送するにあたって送信するプロトコル等に記述されたフラグメント位置等の情報により判別される。
【0024】
他方、取得されたフラグメントが、夫々然るべき記憶領域(記憶装置)へ蓄積される過程において、再生手段は、コンテンツのストリーミングを然るべき開始タイミングで開始する。より具体的には、再生手段は、再生開始データが第1記憶装置の揮発性記憶領域に蓄積された時点以降、揮発性記憶領域からフラグメントNaを順次読み出してコンテンツのストリーミング再生を開始する。
【0025】
ストリーミング再生が開始されると、第1記憶装置の揮発性記憶領域に蓄積されたフラグメント量(即ち、キャッシュ量)は、フラグメントNaの転送速度と、コンテンツの再生速度(好適には、コンテンツのエンコードビットレート)との相対関係で決まる増減速度で増減する。
【0026】
例えば、キャッシュ量が揮発性記憶領域の蓄積容量(ハードウェア上の容量或いはその時点の負荷状況等に応じて許可される容量)に到達するまでコンテンツの再生速度よりも広帯域でフラグメントNaを取得し、それ以降、再生速度とフラグメントNaの転送速度とを一致させる等の措置を講じる場合、再生済みのキャッシュデータが順次揮発性記憶領域から破棄されるとすれば、キャッシュ量は、第1記憶装置に許容される蓄積容量に到達して以降、暫時この蓄積容量に維持される。また、フラグメントNaの書き込み終了後は、キャッシュ量は漸減する。
【0027】
この第1記憶装置のキャッシュ量の減少に伴い、キャッシュ量がゼロとなると、所謂再生バッファとしての記憶装置が、第1記憶装置から第2記憶装置へ切り替えられ、第2記憶装置の不揮発性記憶領域に記憶されたフラグメントNbが、最後に読み出されたフラグメントNaに連続する部分から順次読み出されてストリーミング再生が継続される。
【0028】
ここで、このようにフラグメントNaとフラグメントNbとを、その少なくとも一部において相互に並行して然るべき記憶領域に記憶することにより、例えば、相対的に蓄積容量が小さい第1記憶装置のみにコンテンツデータを蓄積する場合や、相対的に書き込み速度の遅い第2記憶装置のみにコンテンツデータを蓄積する場合と較べて、コンテンツデータの取得に要する時間は短縮化され得る。その結果、ネットワーク障害等に影響され難い高品質なストリーミング再生が可能となる。
【0029】
ところで、不揮発性記憶領域へのフラグメントの書き込み及び読み出しに係る処理は、揮発性記憶領域に対するそれと比べて高負荷な処理であり、これらを並行して実行するには、ストリーミング再生装置側に高い処理能力が要求されることが多い。従って、必ずしもデータ処理能力が最優先されない各種の携帯型端末や比較的安価なネットワーク対応型家庭用電気機器等においては、フラグメントの書き込み速度が低下する或いはフラグメントの読み出しが円滑に行われない等の問題が新たに発生し、結局のところ、コンテンツの再生品質が低下し易いといった問題が解決され難い。
【0030】
そこで、本実施形態においてストリーミング再生装置では、第1、第2及び第3特定手段の作用により、ネットワークを介したデータ提供ノードとの間の通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態が夫々特定され、決定手段が、これら特定された要素に基づいて、データ提供ノードに要求すべきフラグメントNa及びフラグメントNbを、その転送速度と共に決定する仕組みとなっている。
【0031】
第1特定手段により特定されるネットワークの通信状態とは、例えば、データ提供ノードの送信帯域、ストリーミング再生装置の受信帯域、ネットワークの伝送速度、RTT(Round Trip Time)、TTL(Time To Live)及びハードウェア性能等を意味する。また、第2特定手段により特定される各記憶装置の状態とは、例えば、各記憶装置における使用可能な蓄積容量や負荷状態等を意味する。更に、第3特定手段により特定されるコンテンツの状態とは、コンテンツのデータサイズや再生速度(エンコードビットレート)等を意味する。これら各種の被特定要素は、いずれも、単独で或いは複数の要素を組み合わせることによって、第1記憶装置におけるフラグメントNaの読み出し終了タイミングと、第2記憶装置におけるフラグメントNbの書き込み終了タイミングとの時間軸上の関係を推定し得る情報となる。
【0032】
ここで、決定手段は、これら各特定手段により特定された情報に基づいて、フラグメントNaの読み出しが終了する以前に又は終了するのと同時にフラグメントNbの蓄積が終了するように、フラグメントNa及びNb並びにその転送速度を決定する。要求手段は、データ提供ノードに対し、この決定されたフラグメントNa及びNbの、この決定された転送速度による転送を要求する。
【0033】
上述した第2記憶装置におけるフラグメントの書き込み処理と読み出し処理との重複は、フラグメントNaの読み出しが、フラグメントNbの書き込み終了以前に終了してしまうことによって発生する。従って、このような事態を回避すれば、即ち、フラグメントNaの読み出し終了以前に又は読み出し終了と同時にフラグメントNbの書き込みが終了すれば、第2記憶装置におけるフラグメントの書き込み処理と読み出し処理とは、相互に異なる時間帯に行われることとなる。これらが時間軸上で重複して実行されることがなければ、フラグメントの書き込み処理と読み出し処理とが相互いに阻害し合うことはなくなり、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現されるのである。
【0034】
このような時間軸上の関係を実現し得るフラグメントNa及びNbは、要求手段による転送要求時における両フラグメントの転送速度を規定することにより求めることができる。また逆に、予めフラグメントNa及びNbが規定されていれば、このような時間軸上の関係を実現し得る両フラグメントの転送速度を求めることができる。但し、通常、ストリーミング再生装置とデータ提供ノードとの間のデータ転送速度には各種の制約があるから、後者よりも前者の方が現実的であることは言うまでも無い。即ち、好適な一形態としては、予め設定される、或いはその都度適宜設定される(いずれにせよ、「決定」の範疇である)両フラグメントの転送速度に基づいた各種演算処理の結果として、フラグメントNa及びNbが決定される。
【0035】
尚、決定手段は、少なくともフラグメントNbの書き込み中にフラグメントNaの読み出しが終了しない限りにおいて、比較的自由にコンテンツデータをその断片たる各フラグメントに分割することができる。
【0036】
この際、第2記憶装置の不揮発性記憶領域に対する書き込み処理の終了タイミングと、第1記憶装置の揮発性記憶領域に対する読み出し処理の終了タイミング(即ち、一義的に、第2記憶装置の不揮発性記憶領域に対する読み出し処理の開始タイミングである)との間に生じる時間間隔は、コンテンツデータの総体的な転送時間を短縮する観点からは小さい方がよい。
【0037】
一方、ネットワークを介した通信状態や、記憶装置各々の負荷状態等は、必ずしも一定でないから、係る時間間隔に冗長度が全く無いと、例えば第2記憶装置における書き込み処理が何らかの理由により一時的に遅延した場合等において、第1記憶装置から第2記憶装置へのバッファの切り替え時を含む過渡的な期間について、第2記憶装置の不揮発性記憶領域に対する書き込み処理と読み出し処理とが並存して、コンテンツの円滑なストリーミングが阻害される可能性がある。そのような観点から言えば、予め実験的に、経験的に、理論的に又はシミュレーション等に基づいて、転送時間と再生品質とが共に要求値を満たし得る、当該時間間隔の適当な基準が設けられていてもよい。
【0038】
尚、特定手段に係る特定プロセスは、例えば一定又は不定の周期で周期的に実行されてもよいし、然るべき条件が満たされた場合においてオンデマンドで実行されるものであってもよい。また、実施形態に係る「特定」とは、特定対象を、直接的に又は間接的に制御上の参照値として確定させることを意味しており、検出、算出、導出、推定、同定、選択或いは取得等、その実践上のプロセスは何ら限定されない趣旨である。
【0039】
尚、ストリーミング再生装置の実施形態に係る各手段は、夫々が或いは全体として、例えばCPU(Central Processing Unit)又はMPU(Micro Processing Unit)等の各種演算処理装置、各種プロセッサ、コントローラ又は各種機能モジュール等として構成されていてもよい。
【0040】
ストリーミング再生装置に係る実施形態の一の態様では、前記データ提供ノードは前記ネットワークに複数収容され、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNaの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNaの一部を夫々割り当てる第1割り当て手段と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNbの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNbの一部を夫々割り当てる第2割り当て手段とを更に具備し、前記要求手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNaの一部を要求すると共に、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNbの一部を要求する。
【0041】
データ提供ノードがネットワークに複数収容される場合、フラグメントNa及びNbを要求するノードを、これら複数のデータ提供ノードから比較的自由に選択することができる。特に、特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいてデータ提供ノードを選択する場合、フラグメントの転送を要求するのに最も適した一のデータ提供ノードを、或いは、フラグメントの転送を要求するのに比較的適した複数のデータ提供ノードを、確実に選択することができる。
【0042】
従って、例えば、ストリーミング再生装置の受信帯域幅が、各データ提供ノードの送信帯域幅よりも大きい場合等に、フラグメントNa或いはNbを適宜分割して、複数のデータ提供ノードから当該分割されたフラグメントを取得する等を措置を講じることにより、受信帯域をより効率的に使用することが可能となる。
【0043】
第1割り当て手段及び第2割り当て手段に係る、データ提供ノードの選択及びフラグメントの割り当てに関する実践的態様は、決定手段により決定されるフラグメントNa及びNb並びにその転送速度が担保される限りにおいて如何様にも限定されない。フラグメントNa及びNbのデータサイズと、その転送速度とが担保される限りにおいて、第2記憶装置においてフラグメントの書き込みと読み出しとが同時に発生することはないからである。
【0044】
尚、この態様では、前記第1割り当て手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNaのうち転送が完了していないフラグメントの一部を再度割り当て、前記第2割り当て手段は、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNbのうち転送が完了していないフラグメントの一部を再度割り当ててもよい。
【0045】
複数のデータ提供ノードからフラグメントを取得し得る構成においては、上述のように、ストリーミング再生装置の受信帯域を有効利用することが可能となるが、その一方で、一時的又は長期的な各種のネットワーク障害の影響を受ける可能性もまた高くなる。
【0046】
例えば、フラグメントNbを要求すべきものとして選択されたデータ提供ノードの一部との間でネットワーク障害が生じた場合、フラグメントNbの取得完了が遅れてフラグメントNbの読み出しと書き込みとが一時的にせよ同時に発生しかねない。或いは、フラグメントNaを要求すべきものとして選択されたデータ提供ノードの一部との間でネットワーク障害が生じた場合、フラグメントNaの取得完了が遅れて、コンテンツの再生が中断しかねない。
【0047】
この態様によれば、第1及び第2割り当て手段に、データ提供ノードの再選択及び再選択されたデータ提供ノードに対するフラグメントの再割り当て機能が備わるため、各瞬のネットワーク障害の発生に際しても、迅速且つ柔軟に対処することが可能となり、コンテンツのストリーミング再生を安定して継続させることができる。尚、ネットワーク障害の検出は、転送を要求したデータ(フラグメントの一部)が転送されたか否か等の情報に基づいて、常時遅滞なく検出可能である。
【0048】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントは、前記フラグメントNa及び前記フラグメントNbのうち少なくとも一方に含まれる。
【0049】
この態様によれば、相互いに連続する断片データのみからなるフラグメントNaと、同じく相互いに連続する断片データのみからなるフラグメントNbとによって、コンテンツデータが形成される。従って、データ提供ノードへ各フラグメントを要求するにあたっての処理負荷が軽減され得る。また、この際、理想的には、フラグメントNaとフラグメントNbとの間には、重複部分が存在しないのが望ましい。
【0050】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントNaの転送速度は、前記コンテンツの再生速度であり、前記フラグメントNbの転送速度は、前記ストリーミング再生装置の受信帯域のうち前記再生速度に相当する帯域を除く残余の受信帯域に相当する転送速度である。
【0051】
この態様によれば、フラグメントNaがコンテンツの再生速度に相当する転送速度で転送され、フラグメントNbが、使用可能な受信帯域のうちフラグメントNaの転送に使用される帯域を除く残余の受信帯域に相当する転送速度で転送される。
【0052】
第1記憶装置の揮発性記憶領域は、通常、再生開始データと比較して大きく且つコンテンツのデータサイズと比較して小さい。このため、取得されたフラグメントNaが第1記憶装置に許容される記憶容量に達してしまえば、再生済みのキャッシュを順次破棄したとして、フラグメントNaの転送速度はコンテンツの再生速度に律束される。逆に、コンテンツの再生速度でフラグメントNaを取得すれば、基本的に、第1記憶装置に蓄積されるコンテンツのキャッシュは、フラグメントNaの取得完了まで減少することがないから、コンテンツの再生は安定的に継続される。
【0053】
この態様によれば、ストリーミング再生装置の受信帯域のうち、再生速度に相当する帯域を除く残余の帯域を利用してフラグメントNbが取得される。従って、一方でコンテンツを安定的に再生しつつ、第2記憶装置に効率的にフラグメントNbを蓄積し、コンテンツデータの全体的なダウンロード時間を短縮化することが可能となる。
【0054】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記フラグメントNaは、前記再生開始データを含むフラグメントN0と、該フラグメントN0を除くフラグメントN1から構成され、前記要求手段は、前記フラグメントN0の取得が完了するまで前記フラグメントNbの要求を待機する。
【0055】
この態様によれば、フラグメントNaが、再生開始データを含むフラグメントN0とそれ以外のフラグメントN1とに分割され、データ提供ノードへフラグメントを要求するにあたっては、先ずフラグメントN0のみの転送が要求される。即ち、フラグメントN0の取得が完了するまでは、フラグメントNaの取得が、フラグメントNbの取得に優先される。従って、ストリーミング再生装置の受信帯域を、フラグメントN0の取得のために優先的に使用することが可能となり、フラグメントN0の取得完了に要する時間を可及的に短縮化することができる。
【0056】
ここで特に、フラグメントN0は、フラグメントNaのうち再生開始データを含む断片であるから、このようにその取得が優先され、その取得時期が早められることにより、コンテンツの再生開始時期を可及的に早めることが可能となる。
【0057】
尚、再生手段は、再生開始データの取得(蓄積)完了をトリガとしてコンテンツのストリーミング再生を開始する。従って、フラグメントN0のうち再生開始データの取得完了後は、フラグメントN0の転送速度とコンテンツの再生速度との差分に相当する速度でフラグメントN0の取得が進行する。ここで、第1記憶装置における揮発性記憶領域の蓄積容量が、この再生開始データに対して十分に大きくない場合(無論、少なくとも再生開始データよりは大きい)、コンテンツの再生開始から間を置かずして当該揮発性記憶領域はフラグメントN0で満たされる。それ以降は、再生速度以上でのフラグメントの蓄積は出来なくなる。その点に鑑みれば、フラグメントN0のデータサイズは、好適には、第1記憶装置の蓄積容量がフラグメントN0で満たされた時点における、フラグメントの総取得量(当該蓄積容量よりは、再生による読み出し分だけ大きい)であるのが望ましい。
【0058】
尚、上述したフラグメントNaをコンテンツの再生速度に相当する転送速度で転送し、フラグメントNbを受信帯域の残余の帯域に相当する転送速度で転送する態様において本態様が適用されるにあたっては、フラグメントN1の転送速度をコンテンツの再生速度相当とし、フラグメントNbをフラグメントN0の取得完了以降、残余の帯域に相当する転送速度で転送するようにするのが好適である。
【0059】
このようにすれば、再生済みのキャッシュを順次第1記憶装置から破棄することによって、第1記憶装置におけるフラグメントの蓄積量は、フラグメントN1の取得完了時点まで時間的に不変となる。従って、第1記憶装置におけるバッファオーバーフローやバッファアンダーフローを考慮することなく、ストリーミング再生装置の残余の受信帯域又はデータ提供ノードの残余の送信帯域を、フラグメントNbの取得又は転送に効率的に使用することができる。また、フラグメントNbがその時点の最大転送速度で転送されることとなるため、フラグメントNbを可及的迅速に取得することができ、コンテンツデータのダウンロード時間を短縮化することが可能となる。
【0060】
尚、この際、前述したように、フラグメントN0の取得完了時点で第1記憶装置の蓄積容量が最大限に使用されていれば、フラグメントN1の取得完了時点まで、第1記憶装置は、その蓄積容量を最大限に使用した状態が維持され、より好適である。
【0061】
尚、この態様では、前記フラグメントN0の転送速度は、前記データ提供ノードの間で規定される最大転送速度であってもよい。
【0062】
最大転送速度による転送とは、ストリーミング再生装置の受信帯域の利用効率が理論的に又は何らか制約の範囲で実質的に最大であることと等価である。従って、この場合、許容される条件下でフラグメントN0を最短時間で取得することが可能となり、コンテンツの再生要求が生じた時点から、ストリーミング再生が開始されるまでの時間的遅延を最大限に短縮化することができる。
【0063】
尚、受信帯域の利用効率は、受信帯域全域をフラグメントN0の取得に供した場合に100%で最大となる(この場合の転送速度が、理論的な最大転送速度である)。例えば、データ提供ノードが一つで且つその送信帯域幅がストリーミング再生装置の受信帯域幅を超える場合、フラグメントN0の転送速度を当該受信帯域に等しくすることが可能となり、受信帯域の利用効率は100%となる。一方、データ提供ノードが一つで且つその送信帯域がストリーミング再生装置の受信帯域よりも小さければ、当該受信帯域の全域を使用することはできず、利用効率としては100%未満となるが、データ提供ノードが一つである場合に、実質的にその送信帯域の全てをフラグメントN0の転送に供しているのであれば、結局は、フラグメントN0が最大転送速度で転送されることに変わりはない。
【0064】
他方、例えば上述した一態様の如く、データ提供ノードが複数存在する場合、データ提供ノードの送信帯域の総和が当該受信帯域を越えるまで、データ提供ノードの数量を増やすことができる。この場合、個々のデータ提供ノードの送信帯域に関係なく、受信帯域の全域をフラグメントN0の取得に利用することが可能となり、効果的である。
【0065】
尚、複数のデータ提供ノードに対してフラグメントN0を要求する場合、フラグメントN0を構成するフラグメントのデータ位置は、基本的にはノード間で異ならしめられる。但し、データの伝送プロトコルによっては、フラグメントを転送する際にパケットエラーが頻繁に生じることがある。このような場合に、フラグメントの再送要求を頻繁に行われるのは、必ずしも効率的なデータ転送に繋がらない場合もある。そのような観点から、最大転送速度での転送を要求するにあたり、予め複数のノードに対し一部又は全体が重複するフラグメントN0が要求されてもよい。
【0066】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記要求手段は、前記フラグメントNaが前記コンテンツデータの先頭から順次取得されるように前記フラグメントNaを要求すると共に、前記フラグメントNbが最後尾の前記フラグメントから順次取得されるように前記フラグメントNbを要求し、前記取得手段は、前記フラグメントNaと前記フラグメントNbとが重複しないように前記フラグメントNaと前記フラグメントNbを取得する。
【0067】
この態様によれば、フラグメントNa(先述した、フラグメントN0及びN1に分割される場合も含む)がコンテンツデータの先頭位置から、フラグメントNbは、コンテンツデータの最後尾の位置から夫々取得される。従って、フラグメントNaとフラグメントNbとは、その並行取得の過程において、最終的に、コンテンツデータの一のデータ位置で出会うことになる。
【0068】
即ち、この態様におけるフラグメントNaとは、予め設定されたデータ量のフラグメントではなく、コンテンツデータの先頭位置からフラグメントNbの先頭(コンテンツの再生順序としての先頭であり、取得順序としては即ち最後尾である)のデータまでのデータ量を有するフラグメントである。同様に、この態様におけるフラグメントNbとは、予め設定されたデータ量のフラグメントではなく、コンテンツデータの最後尾の位置からフラグメントNaの最後尾のデータまでのデータ量を有するフラグメントである。
【0069】
ここで、先に述べたように、ネットワークの伝送状態や、第1及び第2記憶装置の負荷状態等は、時間的に決して不変ではなく、コンテンツデータのダウンロード時間の範囲において、変動することも珍しくない。このような場合、予めフラグメントNa及びNbのデータ量を定めてしまうと、フラグメントNbの書き込み終了前にフラグメントNaの読み出しが終了してしまう可能性がある。
【0070】
その点、このように、フラグメントNaを先頭から、フラグメントNbを最後尾から夫々転送するように転送要求が構築されていれば、ネットワークの伝送状態や各記憶装置の負荷状態を反映した現実的なデータ転送プロセスの中で、フラグメントNbの書き込み終了前にフラグメントNaの読み出しが終了する事態を確実に防止することができる。
【0071】
即ち、何らかの理由で第2記憶装置の不揮発性記憶領域へのフラグメントNbの書き込みが遅滞すれば、その分フラグメントNaが大きくなり、何らかの理由で第1記憶装置の揮発性記憶領域へのフラグメントNaの書き込みが遅滞すれば、その分フラグメントNbが大きくなるのである。
【0072】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第1特定手段は、前記ストリーミング再生装置の受信帯域及び前記データ提供ノードの送信帯域を特定する。
【0073】
この態様によれば、第1特定手段により、通信状態として、ストリーミング再生装置の受信帯域及びデータ提供ノードの送信帯域が特定される。これらは、フラグメントNaの読み出し終了タイミング及びフラグメントNbの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「通信状態」の好適な一例となる。
【0074】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第2特定手段は、前記第1及び第2記憶装置の残容量及び負荷状態を特定する。
【0075】
この態様によれば、第2特定手段により、各記憶装置の状態として、残容量及び定性的又は定量的な負荷状態が特定される。これらは、フラグメントNaの読み出し終了タイミング及びフラグメントNbの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「第1及び第2記憶装置の状態」の好適な一例となる。
【0076】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第3特定手段は、前記コンテンツのデータサイズ及び再生速度を特定する。
【0077】
この態様によれば、第3特定手段により、コンテンツの状態として、コンテンツのデータサイズ及び再生速度が特定される。これらは、フラグメントNaの読み出し終了タイミング及びフラグメントNbの書き込み開始タイミングを推定するために重要な情報であり、実施形態に係る「コンテンツの状態」の好適な一例となる。
【0078】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第2記憶制御手段は、前記順次読み出されたフラグメントNaが前記第2記憶装置に蓄積されるように前記第2記憶装置を制御する。
【0079】
第1記憶装置の記憶領域は揮発性記憶領域であり、フラグメントNaをあくまで一時的に保持するに過ぎず、フラグメントNaのうち読み出されたデータ断片は、基本的に消失することになる。結果的に、コンテンツデータのうち、再生後にストリーミング再生装置に残存するデータは、フラグメントNbのみとなる。従って、次回、同一のコンテンツを再生しようとした場合には、フラグメントNaを再度取得する必要が生じ、効率的でない。
【0080】
この態様によれば、例えば、フラグメントNaのデータ断片が第1記憶装置の揮発性記憶領域から読み出される毎に、当該データ断片が複製され、第2記憶制御手段の作用により、第2記憶装置の不揮発性記憶領域に書き込まれる。
【0081】
従って、コンテンツのストリーミング再生終了後は、コンテンツデータ全体が第2記憶装置の不揮発性記憶領域に蓄積された状態となり、再度コンテンツの再生が所望される場合において、冗長なデータ転送が不要となり、極めて円滑且つ効率的な再生が可能となる。
【0082】
尚、このように読み出し後のフラグメントNaが第2記憶装置に書き込まれる構成としても、第2記憶装置の不揮発性記憶領域に対する書き込み処理と読み出し処理とが並行して実行されることはなく、円滑且つ高品質なストリーミング再生を可能とする旨の実施形態の効果は確実に担保される。
【0083】
本発明のストリーミング再生装置に係る実施形態の他の態様では、前記第2制御手段は、所定の消去要求に応じて前記不揮発性記憶領域に蓄積されたフラグメントを消去する。
【0084】
この態様によれば、キーボード、各種ポインティングデバイス、或いは各種スイッチ等の各種入力手段を介した人為操作をトリガとして、或いは何らかの消去条件が満たされた場合に各種コントローラ等を介して自動的に生成される消去要求に応じて、第2記憶装置の不揮発性記憶領域に蓄積されたフラグメント、例えばフラグメントNb或いはそれに加えてフラグメントNa(即ち、この場合、実質的にコンテンツデータそのもの)が消去される。従って、第2記憶装置の不揮発性記憶領域を効率的に使用することができる。
【0085】
本発明のストリーミング再生方法に係る実施形態は、コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求工程と、前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得工程と、前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御工程と、前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御工程と、前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定工程と、前記第1及び第2記憶装置の状態を特定する第2特定工程と、前記コンテンツの状態を特定する第3特定工程と、前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定工程とを具備し、前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する。
【0086】
本発明のストリーミング再生方法に係る実施形態は、本発明のストリーミング再生装置に係る実施形態における各手段の動作に対応する各工程によって、本発明のストリーミング再生装置に係る実施形態と同等の効果を奏し得る。
<コンピュータプログラムの実施形態>
【0087】
本発明のコンピュータプログラムに係る実施形態は、コンピュータシステムを上記いずれかのストリーミング再生装置として機能させる。
【0088】
当該コンピュータプログラムを格納するROM、CD−ROM、DVD−ROM、ハードディスク等の記録媒体或いはUSB(Universal Serial Bus)メモリ等コンピュータシステムに着脱可能な固体型記憶装置から、当該コンピュータプログラムをコンピュータシステムに読み込んで実行させれば、或いは、当該コンピュータプログラムを、例えば、通信手段等を介してコンピュータシステムにダウンロードさせた後に実行させれば、上述した本発明のストリーミング再生装置に係る実施形態を比較的簡単に実現できる。
【0089】
尚、上述した本発明のストリーミング再生装置に係る各実施形態における各種態様に対応して、本発明のコンピュータプログラムに係る実施形態も各種態様を採ることが可能である。
<記録媒体の実施形態>
【0090】
本発明の記録媒体に係る実施形態は、本発明のコンピュータプログラムに係る実施形態を記録する。
【0091】
本発明の記録媒体に係る実施形態によれば、コンピュータシステムに装着又は接続することによって、或いはコンピュータシステムに備わる又は接続された然るべき読取装置に挿入することによって、記録している本発明のコンピュータプログラムに係る実施形態を、コンピュータシステムに読み込ませて実行させることができ、上述した本発明のストリーミング再生装置に係る実施形態を比較的簡単に実現できる。
【0092】
以上説明したように、本発明のストリーミング再生装置に係る実施形態によれば、要求手段、取得手段、第1記憶制御手段、第2記憶制御手段、再生手段、第1特定手段、第2特定手段、第3特定手段及び決定手段を具備するので、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現される。
【0093】
以上説明したように、本発明のストリーミング再生方法に係る実施形態によれば、要求工程、取得工程、第1記憶制御工程、第2記憶制御工程、再生工程、第1特定工程、第2特定工程、第3特定工程及び決定工程を具備するので、再生装置側の処理能力によらずにコンテンツの円滑且つ高品質なストリーミング再生が実現される。
【0094】
以上説明したように、本発明のコンピュータプログラムに係る実施形態によれば、コンピュータシステムを本発明のストリーミング再生装置に係る実施形態として機能させることができる。
【0095】
以上説明したように、本発明の記録媒体に係る実施形態によれば、本発明のコンピュータプログラムに係る実施形態を記録することにより、コンピュータシステムを本発明のストリーミング再生装置に係る実施形態として機能させることができる。
【0096】
本発明のこのような作用及び他の利得は次に説明する実施例から明らかにされる。
【図面の簡単な説明】
【0097】
【図1】本発明の第1実施例に係るストリーミングシステムの構成を概念的に表してなる概略構成図である。
【図2】図1のストリーミングシステムにおけるコンテンツ再生装置の構成を概念的に表してなるブロック図である。
【図3】図2のコンテンツ再生装置において実行されるストリーミング再生制御のフローチャートである。
【図4】図2のストリーミング再生制御のサブルーチンたる準備処理のフローチャートである。
【図5】図2のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図6】図2のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図7】図2のストリーミング再生制御のサブルーチンたる受信後処理のフローチャートである。
【図8】図2のストリーミング再生制御における各フラグメントの流れの概念図である。
【図9】図2のストリーミング再生制御における各データ量の一時間推移を例示する図である。
【図10】本発明の第2実施例に係るストリーミング再生制御のフローチャートである。
【図11】図10のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図12】図10のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図13】図10のストリーミング再生制御のサブルーチンたる受信後処理のフローチャートである。
【図14】図10のストリーミング再生制御における各フラグメントの流れの概念図である。
【図15】本発明の第3実施例に係るストリーミングシステムの構成を概念的に表してなる概略構成図である。
【図16】図15のコンテンツ再生装置において実行されるストリーミング再生制御のフローチャートである。
【図17】図16のストリーミング再生制御のサブルーチンたる準備処理のフローチャートである。
【図18】図16のストリーミング再生制御のサブルーチンたる初期フラグメント処理のフローチャートである。
【図19】図16のストリーミング再生制御のサブルーチンたる並列フラグメント処理のフローチャートである。
【図20】図16のストリーミング再生制御における各フラグメントの流れの概念図である。
【発明を実施するための形態】
【実施例】
【0098】
以下、適宜図面を参照して、本発明の好適な各種実施例について説明する。
<第1実施例>
<実施例の構成>
始めに、図1を参照し、本発明の第1実施例に係るストリーミングシステム1の構成について説明する。ここに、図1は、ストリーミングシステム1の構成を概念的に表してなる概略構成図である。
【0099】
図1において、ストリーミングシステム1は、夫々が広域ネットワーク200(本実施例ではIP(Internet Protocol)網である)に収容された、コンテンツ再生装置100並びにデータ提供ノード300(即ち、本発明に係る「データ提供ノード」の一例である)を備え、コンテンツ再生装置100で映像或いは音声に係る各種コンテンツのストリーミング再生を実現するためのシステムである。より具体的には、コンテンツ再生装置100は、データ提供ノード300に対してコンテンツデータを要求し、データ提供ノード300から転送されるコンテンツデータの断片的データに基づいて、ストリーミング再生を行う構成となっている。
【0100】
尚、図1に例示されるストリーミングシステム1の構成は、コンテンツ再生装置100でストリーミング再生を行うための一例に過ぎない。例えば、ストリーミングシステム1では、コンテンツ再生装置100とデータ提供ノード300とが、特定のサーバ装置を介することなく個別にP2P通信を行う構成となっているが、コンテンツ再生装置100とデータ提供ノード300とは、ネットワーク200に収容された、然るべきサーバ装置を介して通信を行ってもよい。また、図1においては、一つのデータ提供ノード300が示されるが、現実的な制約を除けば、基本的にデータ提供ノードの数に制限はなく、データ提供ノードは複数であってもよい。P2P通信によりストリーミングシステムを構築する場合、ネットワーク200に収容された不特定多数のノード(例えば、個人所有のパーソナルコンピュータ等)が適宜データ提供ノードとなり得る同時に、コンテンツ再生装置100も、他のノードに対してデータ提供ノードの一つとなり得る。尚、データ提供ノードが複数である場合については、第3実施例において説明することとする。
【0101】
次に、図2を参照し、コンテンツ再生装置100の構成について、その動作を交えて説明する。ここに、図2は、コンテンツ再生装置100の構成を概念的に表してなるブロック図である。尚、同図において、図1と重複する箇所には、同一の符合を付してその説明を適宜省略することとする。
【0102】
図2において、コンテンツ再生装置100は、制御部110、プロトコル生成部120、送信部130、受信部140、受信データ処理部150、HDD160、高速メモリ170及び再生部180を備えた、本発明に係る「ストリーミング再生装置」の一例である。
【0103】
制御部110は、CPU又はMPU等の演算処理装置と、ROM(Read Only Memory)及びRAM(Random Access Memory)等の記憶装置を備えた、コンテンツ再生装置10の動作全体を制御する電子制御装置であり、ROMに格納されたコンピュータプログラムに従って、後述するストリーミング再生制御を実行可能に構成される。当該コンピュータプログラムは、本発明に係る「ストリーミング再生方法」を実現するための、本発明に係る「コンピュータプログラム」の一例である。
【0104】
このコンピュータプログラムは、ハードディスク、CD−ROM及びDVD−ROM等の各種記録媒体(本発明に係る「記録媒体」の一例である)に記録することが可能であり、この種の記録媒体が、例えば各種のコンピュータシステムに内蔵又は付設される然るべき記録再生装置に設置、格納又は挿入された状態において、当該コンピュータシステムを、本発明に係る「ストリーミング再生装置」の一例として機能させることもまた可能である。
【0105】
尚、制御部110は、このストリーミング再生制御の実行過程において、本発明に係る「決定手段」、「第1特定手段」、「第2特定手段」及び「第3特定手段」の夫々一例として機能する構成となっている。
【0106】
プロトコル生成部120は、データ提供ノード300に対してコンテンツデータの断片データたる各種フラグメントを要求するためのデータ要求プロトコルを生成する処理ユニットであり、本発明に係る「要求手段」の一例である。尚、プロトコル生成部120は、制御部110によってその動作が上位に制御される構成となっている。
【0107】
送信部130は、出力端子(符合省略)がネットワーク200に接続された送信インターフェイスであり、ネットワーク200を介し、制御部110から指定される各種のデータをデータ提供ノード300へ送信可能に構成されている。尚、制御部110がストリーミング再生制御を実行する過程においてプロトコル生成部120により生成されるデータ要求プロトコルも、このデータの一つとして送信部130から送信される構成となっている。即ち、送信部130は、プロトコル生成部120と共に、本発明に係る「要求手段」の一例として機能するように構成されている。
【0108】
受信部140は、出力端子(符合省略)がネットワーク200に接続された、本発明に係る「取得手段」の一例たる受信インターフェイスであり、ネットワーク200を介し、データ提供ノード300から転送される各種のデータを受信可能に構成されている。尚、データ提供ノード300からネットワーク200を介して転送される各種フラグメントも、このデータの一つとして受信部140で受信される構成となっている。
【0109】
受信データ処理部150は、受信部140を介して受信された受信データの内容を解析する処理ユニットである。受信データ処理部150は、制御部110によってその動作が上位に制御される構成となっている。受信データ処理部150は、例えば、データ提供ノード300がフラグメントと共に転送する送信プロトコルを解析して、転送されたフラグメントの断片位置やデータサイズを特定することができる。
【0110】
HDD160は、比較的大容量(例えば、数十〜数百GB或いは数TB)の不揮発性記憶領域を有するハードディスクと、当該ハードディスクに対する情報の記録再生処理を実行する光ピックアップ装置と、その制御系とを含んでなる、本発明に係る「第2記憶装置」の一例たる記憶装置である。
【0111】
高速メモリ170は、HDD160と較べて(厳密には、HDD160に備わるハードディスクと較べて)小容量(例えば、数百MB〜数GB)の蓄積容量M(byte)を有する揮発性記憶領域を備えたメモリ素子であり、本発明に係る「第1記憶装置」の一例である。尚、高速メモリ170は、その揮発性記憶領域に対し、HDD160の書き込み速度より十分に速い(例えば、数倍〜数十倍)速度で情報を書き込むことができる。その一方で、高速メモリ170は、読み出されたデータが揮発性記憶領域から消去される構成となっている。
【0112】
再生部180は、コンテンツデータ或いはその断片データを、そのエンコードビットレートに等しい再生速度P(byte/sec)でデコードして出力可能なデコーダ部を備えたコンテンツ再生ユニットであり、本発明に係る「再生手段」の一例である。尚、再生部180は、制御部110によりその動作が上位に制御される構成となっている。
<実施例の動作>
以下、本実施例の動作として、ストリーミング再生制御について説明する。
【0113】
<ストリーミング再生制御の概要>
始めに、ストリーミング再生制御の概要について説明する。
【0114】
ストリーミング再生制御は、コンテンツ再生装置100においてコンテンツのストリーミング再生を実現するための制御である。コンテンツの再生に必要なコンテンツデータは、コンテンツ再生装置100に蓄積されておらず、ネットワーク200を介してデータ提供ノード300から取得される。この際、データ提供ノード300から取得されるデータは、コンテンツデータを所定の基準に従って細分化してなる断片データを一単位として取得される。この断片データは、フラグメントと称されるデータ単位を構築する。
【0115】
フラグメントは、フラグメントN0、フラグメントN1及びフラグメントN2から構成され、これらの総和は、コンテンツデータに等しくなっている。フラグメント相互間のデータの割り当て(データ量及びデータ位置)は、プロトコル生成部120において生成されるデータ要求プロトコルによって規定される。
【0116】
コンテンツ再生装置100は、取得されるコンテンツデータのうち、先頭のデータからM0(bit)のデータ量(以下、適宜「再生開始データ量M0」と称する)に相当する再生開始データが取得された時点で、コンテンツの再生を開始することができる。ストリーミング再生制御は、データ要求プロトコルの送信時点からコンテンツデータのダウンロード完了までの時間を抑制しつつ、制御部110の処理能力によらない円滑且つ高品質なストリーミング再生の実現を目的とした制御である。
【0117】
<ストリーミング再生制御の詳細>
次に、図3を参照し、ストリーミング再生制御の詳細について説明する。ここに、図3は、ストリーミング再生制御のフローチャートである。尚、本実施例では、データ提供ノード300が再生すべきコンテンツに係るコンテンツデータを全て保持しているものとする。
【0118】
図3において、制御部110は、準備処理(ステップS100)、初期フラグメント処理(ステップS200)、並列フラグメント処理(ステップS300)及び受信後処理(ステップS400)の順で順次各サブルーチンを実行する。受信後処理が終了すると、ストリーミング再生制御は終了する。
【0119】
<準備処理の詳細>
次に、図4を参照し、準備処理の詳細について説明する。ここに、図4は、準備処理のフローチャートである。
【0120】
図4において、制御部110は、ノード情報を取得する(ステップS101)。
【0121】
ここで、ノード情報とは、データ提供ノード300のIPアドレス、保持するフラグメントの情報及び各種ハードウェア性能に関する情報(CPUの処理速度やメモリの情報)等を意味する。ノード情報は、データ提供ノード300自身が保持しており、制御部110は、データ提供ノードに対してこれらの情報の提供を要求することができる。要求に応じてこれらの情報が提供されると、制御部110は、これらを順次受信データ解析部150を介して解析し、ノード情報としてRAMに格納する。
【0122】
次に、制御部110は、コンテンツ情報を取得する(ステップS102)。本実施例において、コンテンツ情報とは、コンテンツの再生速度P(byte/sec)及びコンテンツサイズN(byte)であるとする。ステップS102は、コンテンツの状態を特定する旨の、本発明に係る「第3特定手段」の動作の一例である。尚、この際、制御部110は、送信部130を介して、コンテンツ情報の送信を促すリクエストを送信し、受信部140を介し、当該リクエストに応じてデータ転送ノード300から送信されるコンテンツ情報を取得すると共に、その内容を受信データ解析部150により解析することによって、コンテンツ情報を取得し、RAMに格納する。
【0123】
次に、制御部110は、バッファ状態を取得する(ステップS103)。本実施例において、バッファ状態とは、HDD160及び高速メモリ170の空き容量及び負荷状態(ビジー状態)であるとする。ステップS103は、第1及び第2記憶装置の状態を特定する旨の、本発明に係る「第2特定手段」の動作の一例である。尚、HDD160及び高速メモリ170共にコンテンツ再生装置100の構成要素であるので、制御部110は、コンテンツ再生装置100の動作状態を制御する過程で常にこれらの情報を取得することができる。尚、先に述べた高速メモリ170の蓄積容量M(byte)とは、この段階でコンテンツの再生に供し得ると判断された空き容量であるとする。
【0124】
次に、制御部110は、ネットワーク状態を取得する(ステップS104)。本実施例において、ネットワーク状態とは、ネットワーク200を介したコンテンツ再生装置100とデータ提供ノード300との通信状態を意味し、より具体的には、コンテンツ再生装置100の受信帯域幅B(byte/sec)、データ提供ノード300の送信帯域幅C(byte/sec)、ネットワーク200の伝送遅延としてのRTT(Round Trip Time)及びTTL(Time To Live)であるとする。ステップS104は、ネットワークを介したデータ提供ノードとの間の通信状態を特定する旨の、本発明に係る「第1特定手段」の動作の一例である。
【0125】
尚、受信帯域幅B及び送信帯域幅Cは、コンテンツ再生装置100及びデータ提供ノード300における設定値である。また、RTTは、RTCP(Real-time Transport Control Protocol)のSR(Sender Report)やRR(Receiver Report)を利用する等して測定される。尚、各通信帯域幅については、ネットワーク200を介してランダムにデータの送受信を行った際のデータの実際の伝送状態に基づいて適宜推定されてもよい。
【0126】
ステップS101乃至S104において必要な情報を取得すると、制御部110は、コンテンツデータのフラグメントサイズを決定する(ステップS105)。ここで、本実施例におけるフラグメントサイズの決定方法について説明する。制御部110は先ず、コンテンツデータを、フラグメントN0、フラグメントN1及びフラグメントN2の三種類のフラグメントに分割する。即ち、下記(1)式が成立する。尚、下記(1)式において、N0、N1及びN2は、各フラグメントのデータ量(bit)を表すものとする。尚、フラグメントN0とフラグメントN1とにより、本発明に係る「フラグメントNa」が、フラグメントN2により本発明に係るフラグメントNbが、夫々構成される。
【0127】
N=N0+N1+N2・・・(1)
次に、制御部110は、フラグメントN0を下記(2)式に従って決定する。
【0128】
N0=min(M+(M−M0)/(B−P)×P,N)・・・(2)
ここで、(2)式右辺の左側の比較項のデータ量が、コンテンツサイズNよりも大きければ、N0=Nとなり、フラグメントN0とは即ちコンテンツデータそのものとなるが、通常、コンテンツサイズNは、高速メモリ170の蓄積容量Mよりも十分に大きいため、N0は、(2)式右辺の左側の比較項となる。
【0129】
尚、本実施例では、データ提供ノード300の送信帯域幅Cがコンテンツ再生装置100の受信帯域幅Bよりも十分に大きいものとし、これらの間の最大の転送速度は、受信帯域幅Bに等しいものとする。また、フラグメントN0の転送速度は、最大転送速度である受信帯域幅Bに相当する速度に、フラグメントN1の転送速度はコンテンツの再生速度Pに、フラグメントN2の転送速度は受信帯域幅Bから再生速度Pに相当する帯域幅を除く残余の帯域幅(即ち、B−Pである)に相当する速度に、夫々予め決定されている。
【0130】
尚、データ提供ノード300が単一のノードである場合、その送信帯域幅Cがコンテンツ再生ノード100の受信帯域幅B未満であれば、当然ながらこれらの間のデータ伝送速度は、送信帯域幅Cに律束される。
【0131】
次に、制御部110は、フラグメントN1及びN2を下記(3)及び(4)式に従って決定する。
【0132】
N1=(N−N0)/B×P・・・(3)
N2=(N−N0)/B×(B―P)・・・(4)
上記(3)式及び(4)式は、フラグメントN0を除いた残余のフラグメントを、フラグメントN1及びN2に割り当てられる受信帯域幅(即ち、転送速度である)の比率でフラグメントN1及びN2に割り当てることを意味している。別言すれば、本実施例において、フラグメントN1の取得完了タイミングと、フラグメントN2の取得完了タイミングとは、理想的には一致する。
【0133】
フラグメントサイズが決定されると、制御部110は、HDD160及び高速メモリ170に然るべきバッファ領域を確保して(ステップS106)、準備処理を終了する。
【0134】
<初期フラグメント処理の詳細>
次に、図5を参照し、初期フラグメント処理の詳細について説明する。ここに、図5は、初期フラグメント処理のフローチャートである。
【0135】
始めに、制御部110は、データ提供ノード300に対し、フラグメントN0を要求する(ステップS201)。この際、制御部110は、プロトコル生成部120を介して、先に決定されたフラグメントサイズをデータ提供ノード300に伝達するプロトコルを生成し、送信部130を介してデータ提供ノード300に送信する。このプロトコルには、フラグメントN0のデータサイズN0、コンテンツデータにおけるフラグメントN0の断片位置及びフラグメントN0を構成する各断片データの断片位置が記述されている。
【0136】
フラグメントN0の転送を要求すると、制御部110は、データ提供ノード300から要求に応じたフラグメントN0の転送が開始されるのを待ち、データ転送単位たる一パケットに収まる断片データサイズ毎に受信部140に到着するフラグメントN0を受信する(ステップS202)。受信されたフラグメントN0は、高速メモリ170に順次蓄積される(ステップS203)。このフラグメントN0の受信及び高速メモリ170への蓄積に係る処理は、データ提供ノード300からのフラグメントN0の転送が終了するまで継続する。
【0137】
尚、この段階でデータ提供ノード300に要求されるフラグメントはフラグメントN0のみであるから、フラグメントN0は、最大転送速度、即ち、この場合、コンテンツ再生装置100の受信帯域幅B全域を使用して取得される。
【0138】
一方、制御部110は、高速メモリ170へのフラグメントN0の蓄積と並行して、高速メモリ170に蓄積されたフラグメント量たるメモリキャッシュ量が、再生開始データ量M0よりも大きいか否かを判別する(ステップS204)。メモリキャッシュ量がM0以下である場合には(ステップS204:NO)、処理はステップS202に戻される。
【0139】
メモリキャッシュ量が再生開始データ量M0より大きい場合(ステップS204:YES)、制御部110は、高速メモリ170に蓄積されたフラグメントN0たるメモリキャッシュを、先頭データから順次読み出して再生する(ステップS205)。即ち、この段階で、コンテンツのストリーミング再生が開始される。
【0140】
コンテンツのストリーミング再生が開始されると、制御部110は、受信データ量がフラグメントN0のデータ量N0以上であるか否かを判別する(ステップS206)。受信データ量がN0未満であれば(ステップS206:NO)、処理はステップS202に戻され、受信データ量がN0以上であれば(ステップS206:YES)、即ち、高速メモリ170の蓄積容量Mに相当するフラグメントが蓄積されると、初期フラグメント処理は終了する。
【0141】
<並列フラグメント処理の詳細>
次に、図6を参照し、並列フラグメント処理の詳細について説明する。ここに、図6は、並列フラグメント処理のフローチャートである。
【0142】
始めに、制御部110は、データ提供ノード300に対し、フラグメントN1及びN2を要求する(ステップS301)。この際、制御部110は、プロトコル生成部120を介して、先に決定されたフラグメントサイズをデータ提供ノード300に伝達するプロトコルを生成し、送信部130を介してデータ提供ノード300に送信する。このプロトコルには、フラグメントN1及びN2のデータサイズN1及びN2、コンテンツデータにおけるフラグメントN1及びN2の断片位置並びに各フラグメントにおける断片データの断片位置が記述されている。また、制御部110は、これと合わせて、フラグメントN1の転送速度をコンテンツの再生速度Pとし、フラグメントN2の転送速度を受信帯域幅Bから再生速度Pを除外した残余の帯域幅とする旨をデータ提供ノード300に対し指示する。
【0143】
制御部110は、フラグメントの受信が開始されると(ステップS302)、受信データ解析部150を介して、受信したフラグメントがフラグメントN1であるかフラグメントN2であるかを判別する(ステップS303)。
【0144】
受信したフラグメントが、フラグメントN1である場合(ステップS303:YES)、制御部110は、フラグメントを高速メモリ170に蓄積する(ステップS304)と共に、高速メモリ170からキャッシュを読み出して、メモリキャッシュを再生速度Pで再生する(ステップS306)。即ち、高速メモリ170には、再生速度Pでフラグメントが読み出される一方で、再生速度Pでフラグメントが書き込まれる。従って、高速メモリ170に蓄積されているフラグメント量は、基本的に蓄積容量Mに維持される。
【0145】
一方、受信したフラグメントがフラグメントN2である場合(ステップS303:YES)、制御部110は、受信したフラグメントをHDD160に蓄積する(ステップS305)。
【0146】
ステップS305又はステップS307が実行されると、制御部110は、ストリーミング再生制御の開始時点以降に受信されたデータ量たる受信データ量が、コンテンツサイズN以上であるか否かを判別する(ステップS307)。尚、上記(1)式の関係に鑑みれば、ステップS307に係る判別処理は、フラグメントN1及びN2の取得が完了したか否かを意味する。
【0147】
受信データ量がN未満であれば(ステップS307:NO)、制御部110は、処理をステップS302に戻し、一連の処理を繰り返す。一方、受信データ量がN以上である場合(ステップS307:YES)、並列フラグメント処理は終了する。
【0148】
<受信後処理の詳細>
次に、図7を参照し、受信後処理の詳細について説明する。ここに、図7は、受信後処理のフローチャートである。
【0149】
図7において、制御部110は、ネットワーク200を介したデータ提供ノード300との通信回線を切断する(ステップS401)。続いて、高速メモリ170から蓄積されたフラグメントであるメモリキャッシュを読み出して再生する(ステップS402)。尚、ステップS402は、ステップS306から継続される処理である。ここで、ステップS402における再生処理は、ステップS306に係る処理と違い、新たなフラグメントの書き込みを伴わない。従って、ステップS402の実行過程においては、高速メモリ170のフラグメント蓄積量は、蓄積容量Mから再生速度Pで漸減する。
【0150】
制御部110は、メモリキャッシュが漸減した結果、メモリキャッシュ量がゼロとなったか否かを判別する(ステップS403)。メモリキャッシュ量がゼロでなければ(ステップS403:NO)、即ち、フラグメントN2よりも再生順序が早いフラグメントが未だ高速メモリ170に残存していれば、制御部110は、メモリキャッシュの再生を継続する。
【0151】
一方、メモリキャッシュ量がゼロとなった場合(ステップS403:YES)、制御部110は、HDD160に蓄積されたフラグメントN2、即ち、HDDキャッシュを順次読み出して再生する(ステップS404)。HDDキャッシュの再生が開始されると、制御部110は、HDDキャッシュの再生が終了したか否かを判別し(ステップS405)、再生が終了していなければ(ステップS405:NO)、処理をステップS404に戻してフラグメントN2の再生を継続すると共に、再生が終了した場合には(ステップS405:YES)、受信後処理を終了する。
【0152】
<ストリーミング再生制御の効果>
次に、図8を参照し、ストリーミング再生制御の効果について説明する。ここに、図8は、ストリーミング再生制御における各フラグメントの流れの概念図である。尚、図8において、既出の各図と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0153】
図8において、フラグメントN0、N1及びN2の流れが、ストリーミング再生制御における該当ステップに係るステップ番号と共に示される。このステップ番号の百の位は、サブルーチンの識別番号となっており、小さい程時系列上早く実行されることを意味している。
【0154】
これから明らかなように、データ提供ノード300から転送されたフラグメントN0の高速メモリ170への書き込み処理(ステップS203)及び高速メモリ170からのフラグメントN0の読み出し処理(ステップS205)は、他のフラグメントに先んじて実行される(厳密には、高速メモリ170に蓄積されたキャッシュにN0とN1との区別はないから、N0の一部はステップS306でも読み出される)。
【0155】
一方、フラグメントN1は、ステップS304において高速メモリ170に書き込まれ、ステップS306において高速メモリ170から読み出される。即ち、高速メモリ170の揮発性記憶領域に対するフラグメントの書き込み処理及び読み出し処理は、相互に並行して実行される。高速メモリ170におけるフラグメントの書き込み速度及び読み出し速度は十分に速く、これらが時間軸上で重複して実行されても、実践上問題は生じない。
【0156】
他方、制御系及び光ピックアップ等の駆動を介してなされる、不揮発性記憶領域に対するフラグメントの書き込み処理及び読み出し処理は、制御部110に要求される負荷が高速メモリ170に対するそれと較べて大きい。従って、これらが時間軸上で重複して実行されると、フラグメントの読み出しが遅れてコンテンツの円滑な再生が阻害される、或いはフラグメントの書き込みが遅れてこれらが時間軸上で重複する期間が更に長大化する等、コンテンツの再生品質が低下する要因となる。とりわけ、制御部110の処理能力が現実的な各種制約の範囲で律束される、携帯型端末や比較的安価なネットワーク対応型家庭用電気機器等においてはその傾向が強くなる。
【0157】
その点、本実施例によれば、HDD160の不揮発性記憶領域に対するフラグメントN2の書き込み処理は、ステップS305で実行され、HDD160の不揮発性記憶領域からのフラグメントN2の読み出し処理は、ステップS403で実行される。即ち、後者は前者よりも時系列上確実に遅くなる。従って、本実施例によれば、HDD160の不揮発性記憶領域に対する書き込み処理と読み出し処理とが重複することはなく、コンテンツの再生品質が制御部110の処理能力に応じて低下する懸念が生じない。即ち、コンテンツの再生品質が好適に確保されるのである。
【0158】
次に、図9を参照し、ストリーミング再生制御におけるデータ量の時間推移について説明する。ここに、図9は、ストリーミング再生制御における各データ量の一時間推移を例示する図である。尚、同図において、既出の各図と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0159】
図9において、縦軸はデータ量(byte)であり、横軸は時刻である。
【0160】
時刻T0において、初期フラグメント処理が開始されたとする。時刻T1で受信データ量が再生開始データ量M0に達し、コンテンツの再生が開始される。コンテンツの再生開始以降も、受信帯域Bの全域を使用したフラグメントN0の取得は継続され、時刻T2において、メモリキャッシュ量(図示ハッチング領域参照)が蓄積容量Mに到達すると、フラグメントN0の取得も完了する(上記(2)式は、このような関係が満たされるように規定されている)。
【0161】
取得したフラグメントの総量がコンテンツサイズNに達した時刻T3において、高速メモリ170の揮発性記憶領域に対するフラグメントN1の書き込み処理とHDD160の不揮発性記憶領域に対するフラグメントN2の書き込み処理とが終了すると、時刻T4にかけて高速メモリ170のメモリキャッシュ量が再生速度Pで漸減する。メモリキャッシュ量がゼロとなる時刻T4において、再生用のバッファがHDD160に切り替えられ、それ以後、時刻T5において再生データ量がコンテンツサイズNに達するまで、HDDキャッシュによるコンテンツ再生が継続される。
【0162】
尚、HDD160の容量は、コンテンツサイズNに対して十分に大きいため、HDDキャッシュが読み出されても、読み出し済み(再生済み)のHDDキャッシュを消去する必要はなく、図示するように、その量は減少しない。また、このように再生済みのHDDキャッシュを消去する必要がないから、HDDキャッシュに基づいたコンテンツの再生中に、HDD160に対する読み出し処理と書き込み処理とが同時に発生する事態が回避される。
【0163】
図9から明らかなように、HDD160においてフラグメントN2の書き込み処理が終了する時刻T4と、HDDキャッシュの読み出し処理が開始される時刻T5との間には、T5−T4に相当する時間遅延があり、両者が重複して実行されることはない。
<第2実施例>
次に、図10を参照し、本発明の第2実施例に係るストリーミング再生制御について説明する。ここに、図10は、ストリーミング再生制御のフローチャートである。尚、同図において、図3と重複する箇所には同一の符合を付してその説明を適宜省略することとする。尚、第2実施例に係るハードウェア構成は、第1実施例と同等であるとする。
【0164】
図10において、準備処理を実行した後、制御部110は、初期フラグメント処理を実行し(ステップS210)、並列フラグメント処理を実行し(ステップS310)、受信後処理を実行する(ステップS410)。
【0165】
続いて、図11を参照し、第2実施例に係る初期フラグメント処理について説明する。ここに、図11は、初期フラグメント処理のフローチャートである。尚、同図において、図5と重複する箇所については同一の符号を付してその説明を適宜省略することとする。
【0166】
図11において、メモリキャッシュの再生を実行すると(ステップS205)、制御部110は、コンテンツの保存要求の有無を判別する(ステップS211)。コンテンツの保存要求は、例えば、コンテンツ再生装置100のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部110が自動的に生成するものであってもよい。
【0167】
コンテンツの保存要求が無い場合(ステップS211:NO)、制御部100は、第1実施例と同様に処理をステップS206に移行させる。一方、コンテンツの保存要求が有る場合(ステップS211:YES)、制御部110は、再生済みのメモリキャッシュをHDD160の不揮発性記憶領域に複製して書き込み、保存する(ステップS212)。
【0168】
次に、図12を参照し、第2実施例に係る並列フラグメント処理について説明する。ここに、図12は、並列フラグメント処理のフローチャートである。尚、同図において、図6と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0169】
図12において、メモリキャッシュの再生を実行すると(ステップS306)、制御部110は、コンテンツの保存要求の有無を判別する(ステップS311)。コンテンツの保存要求は、例えば、コンテンツ再生装置100のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部110が自動的に生成するものであってもよい。
【0170】
コンテンツの保存要求が無い場合(ステップS311:NO)、制御部100は、第1実施例と同様に処理をステップS307に移行させる。一方、コンテンツの保存要求が有る場合(ステップS311:YES)、制御部110は、再生済みのメモリキャッシュをHDD160の不揮発性記憶領域に複製して書き込み、保存する(ステップS312)。
【0171】
次に、図13を参照し、第2実施例に係る受信後処理について説明する。ここに、図13は、受信後処理のフローチャートである。尚、同図において、図7と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0172】
図13において、HDDキャッシュの再生が終了すると(ステップS405:YES)、制御部110は、コンテンツの消去要求の有無を判別する(ステップS411)。コンテンツの消去要求は、例えば、コンテンツ再生装置100のユーザが然るべき入力装置を介して与えるコマンドに対応するものであってもよいし、予め設定された条件等に従って制御部110が自動的に生成するものであってもよい。
【0173】
コンテンツの消去要求が有る場合(ステップS411:YES)、制御部110はHDD160からHDDキャッシュ(この場合、フラグメントN0、N1及びN2からなるコンテンツデータそのもの)を消去する(ステップS412)。コンテンツの消去要求が無い場合(ステップS411:NO)、制御部100は、受信後処理を終了させる。
【0174】
次に、図14を参照し、第2実施例に係るストリーミング再生制御の効果について説明する。ここに、図14は、第2実施例に係るストリーミング再生制御における各フラグメントの流れの概念図である。尚、図14において、図8と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0175】
図14から明らかなように、第2実施例に係るストリーミング再生制御によれば、第1実施例においては高速メモリ170にのみ蓄積されていたフラグメントN0及びN1(尚、図14では、高速メモリ170にフラグメントN0及びN1が全量格納されているように描かれているが、実際に蓄積されるデータ量は、蓄積容量Mに相当するデータのみである)が、順次HDD160の不揮発性記憶領域に複製され蓄積される、従って、一度ダウンロードしたコンテンツについては、再度のダウンロードが不要となり、効率的である。
<第3実施例>
次に、本発明の第3実施例について説明する。
【0176】
<実施例の構成>
始めに、図15を参照し、本発明の第3実施例に係るストリーミングシステム2の構成について説明する。ここに、図15は、ストリーミングシステム2の構成を概念的に表してなる概略構成図である。尚、同図において、図1と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0177】
図15において、ストリーミングシステム2は、第1実施例と異なり、複数のデータ提供ノード300A、300B、300C及び300Dを備えており、これら複数のデータ提供ノードからコンテンツデータをダウンロードすることが可能である。
【0178】
<実施例の動作>
次に、図16を参照し、本発明の第2実施例に係るストリーミング再生制御について説明する。ここに、図16は、ストリーミング再生制御のフローチャートである。尚、同図において、図10と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0179】
図16において、制御部110は、準備処理を実行し(ステップS120)、初期フラグメント処理を実行し(ステップS220)、並列フラグメント処理を実行する(ステップS320)。その後、第2実施例と同様に受信後処理を実行する(ステップS410)。
【0180】
次に、図17を参照し、第3実施例に係る準備処理の詳細について説明する。ここに、図17は、準備処理のフローチャートである。尚、同図において、図4と重複する箇所には、同一の符合を付してその説明を適宜省略することとする。
【0181】
図17において、ステップS101、S102及びS104は、各データ提供ノードについて実行される。
【0182】
ステップS105においてフラグメントサイズが決定されると、制御部110は、決定されたフラグメントN0、N1及びN2に対し、夫々データ提供ノードを割り当てる(ステップS121)。この際、制御部110は、下記(A)(B)(C)の規則に従って、各フラグメントに対し適切なデータ提供ノードを割り当てる。
【0183】
(A)フラグメントN0を提供するノードの決定
フラグメントN0を提供するノードは、以下(ア)〜(エ)の要領で決定される。
【0184】
(ア)コンテンツを保持するデータ提供ノードの中で、送信帯域幅Cの大きい順に優先順位を付与する
(イ)(ア)で設定された優先順位の高いデータ提供ノードから、送信帯域幅Cの総和がコンテンツ再生装置100の受信帯域幅B以上となるまでのノードを選択する
(ウ)(イ)で選択された各コンテンツ提供ノードに対して、送信帯域幅C、RTT、ハードウェア性能の順に優先順位を付与する
(エ)(ウ)で付与された優先順位の高いノードから順に、送信帯域幅Cの比率でフラグメントN0の先頭から断片データを割り当てる
この規則に従った場合、送信帯域幅Cがコンテンツ再生装置100の受信帯域幅Bよりも大きいデータ提供ノードが存在すれば、第1実施例と同様、単一のデータ提供ノードからフラグメントN0が取得される。一方、送信帯域幅Cが受信帯域幅B未満である場合には、受信帯域幅Bの利用効率が最大(100%)となるように、複数のデータ提供ノードが選択される。第1実施例のようにデータ提供ノードが単一であれば、このような場合に受信帯域幅Bの利用効率は理論的最大値には達さない(但し、送信帯域幅全域を使用してフラグメントN0を転送するので、与えられた環境下では受信帯域幅の利用効率は最大である)が、本実施例では、複数のノードからフラグメントN0を取得することによって、再生開始データを含むフラグメントN0を可及的迅速に取得することが可能となり、コンテンツの再生開始に要する時間を短縮することが可能となる。
【0185】
(B)フラグメントN1を提供するノードの決定
フラグメントN1を提供するノードは、以下(ア)〜(エ)の要領で決定される。
【0186】
(ア)コンテンツを保持するデータ提供ノードの中で、コンテンツの再生速度P以上の送信帯域幅を有するノードを選択し、その中から更に、最もRTTの小さいノードを選択する
(イ)(ア)において、再生速度P以上の送信帯域を有するデータ提供ノードが存在しない場合、送信帯域幅C、RTTの順に優先順位を付与する
(ウ)(イ)において付与された優先順位が大きいものから、送信帯域幅Cの総和が再生速度P以上になるまでデータ提供ノードを選択する
(エ)(ウ)で選択されたデータ提供ノードに対し、送信帯域幅Cの比率でフラグメントN1の先頭から断片データを割り当てる
フラグメントN1は、高速メモリ170の揮発性記憶領域に対し、再生速度Pに同期した書き込み速度で書き込まれるフラグメントであるから、データ提供ノードは、再生速度P以上の送信帯域幅を有するノードであれば問題はない。但し、データ提供ノードが複数あれば、再生速度P以上の送信帯域幅を有するデータ提供ノードが存在しない場合であっても、このように再生速度P以上の送信帯域幅が確保されるまでデータ提供ノードを増やすことができるため、コンテンツの再生品質を低下させずに済む。例えば、データ提供ノードが、再生速度P未満の送信帯域幅を有する単一のノードである場合、コンテンツの再生と共に、高速メモリ170のメモリキャッシュは減少してしまうから、任意のタイミングで再生を中止してメモリキャッシュ量を増やす以外にないのである。
【0187】
(C)フラグメントN2を提供するノードの決定
フラグメントN2を提供するノードは、以下(ア)〜(ウ)の如くにして決定される。
【0188】
(ア)複数のコンテンツ提供ノードに対して、送信帯域幅C、ハードウェア性能、RTTの順に優先順位を付与する
(イ)(ア)で付与された優先順位の高いデータ提供ノードから順に、送信帯域幅Cの総和が、受信帯域幅Bの残余の帯域幅を超えるまでデータ提供ノードを選択する
(ウ)(イ)で選択されたデータ提供ノードに対し、送信帯域幅の比率でフラグメントN2の先頭から断片データを割り当てる
ノードの割り当てが終了すると、制御部110は、HDD160及び高速メモリ170に然るべきバッファ領域を確保して(ステップS106)、準備処理を終了する。
【0189】
続いて、図18を参照し、第3実施例に係る初期フラグメント処理について説明する。ここに、図18は、初期フラグメント処理のフローチャートである。尚、同図において、図11と重複する箇所については同一の符号を付してその説明を適宜省略することとする。
【0190】
図18において、準備処理によって割り当てられた一又は複数のデータ提供ノードに対し、フラグメントN0の要求を行うと(ステップS201)、制御部110は、ネットワーク200に障害(通信回線の切断や安定性の低下や帯域幅の低下等)が発生したか否かを判別する(ステップS221)。ネットワーク障害が発生していない場合(ステップS221:NO)、処理はステップS202に移行される。
【0191】
一方、ネットワーク障害が発生している場合(ステップS221:YES)、制御部110は、フラグメントN0を要求するデータ提供ノードを再度割り当てる(ステップS222)。データ提供ノードを再度割り当てた後、制御部110は、再度割り当てたデータ提供ノードに対してフラグメントN0を要求する(ステップS223)。それ以降の処理は、第2実施例と同様である。
【0192】
ここで、ステップS222におけるデータ提供ノードの再割り当ては、上記(A)のプロセスを再度実行することによって行われる。即ち、ネットワーク障害が発生したデータ提供ノードを除外したデータ提供ノードの中から、適切なデータ提供ノードが選択され、既に高速メモリ170にキャッシュとして蓄積された断片データ以降の断片データから転送が要求される。この際、その時点で高速メモリ170に蓄積されたメモリキャッシュの再生を開始してもよい。
【0193】
次に、図19を参照し、第3実施例に係る並列フラグメント処理について説明する。ここに、図19は、並列フラグメント処理のフローチャートである。尚、同図において、図12と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0194】
図19において、準備処理によって割り当てられた一又は複数のデータ提供ノードに対し、フラグメントN1及びN2の要求を行うと(ステップS301)、制御部110は、ネットワーク200に障害(通信回線の切断や安定性の低下や帯域幅の低下等)が発生したか否かを判別する(ステップS321)。ネットワーク障害が発生していない場合(ステップS321:NO)、処理はステップS302に移行される。
【0195】
一方、ネットワーク障害が発生している場合(ステップS321:YES)、制御部110は、フラグメントN1及びN2を要求するデータ提供ノードを再度割り当てる(ステップS322)。データ提供ノードを再度割り当てた後、制御部110は、再度割り当てたデータ提供ノードに対してフラグメントN1及びN2を要求する(ステップS323)。それ以降の処理は、第3実施例と同様である。
【0196】
ここで、ステップS322におけるデータ提供ノードの再割り当ては、フラグメントN1の場合とフラグメントN2の場合とで異なる。
【0197】
フラグメントN1を提供するノードにネットワーク障害が発生した場合、制御部110は、コンテンツの円滑な再生を維持するため、メモリキャッシュの再生を継続する。その一方で、データ提供ノードの中から最も送信帯域の大きいデータ提供ノードを選択し、フラグメントN1のうち、高速メモリ170に蓄積された最後の断片データ以降の断片データを要求する。この際、高速メモリ170のメモリキャッシュ量が蓄積容量Mに復活するまで、フラグメントN2の取得は中断される。即ち、受信帯域幅Bを全て使用して、最速で高速メモリ170のメモリキャッシュの復活が図られる。
【0198】
高速メモリ170のメモリキャッシュ量が蓄積容量Mまで復活すると、制御部110は、上記(B)のプロセスに従って一又は複数のデータ提供ノードを選択して再生速度Pに同期したフラグメントN1の取得を再開する。それと同時に、フラグメントN2の取得が再開される。
【0199】
一方、フラグメントN2を提供するノードにネットワーク障害が発生した場合、制御部110は、上記(C)のプロセスに従って、優先順位が下位となる一又は複数のノードを選択し、ネットワーク障害が発生したノードに割り当てられた断片データのうち、既にHDD160にHDDキャッシュとして蓄積されたデータ以降のデータを要求する。
【0200】
次に、図20を参照し、第3実施例に係るストリーミング再生制御の効果について説明する。ここに、図20は、第3実施例に係るストリーミング再生制御における各フラグメントの流れの概念図である。尚、図20において、図14と重複する箇所には同一の符合を付してその説明を適宜省略することとする。
【0201】
図20から明らかなように、第3実施例に係るストリーミング再生制御によれば、複数のデータ提供ノード(図中では300A及び300B)から、フラグメントN0、N1及びN2が転送される。このため、既に述べたように、各データ転送ノードの送信帯域幅がコンテンツ再生装置100の受信帯域幅B未満である場合にも、受信帯域幅Bの利用効率を最大に維持することが可能となり、コンテンツデータ全体のダウンロード時間を短縮化することが可能となる。
【0202】
また、一又は複数のコンテンツ提供ノードとの間の通信が切断された場合等においても、単一なデータ提供ノードとの間でデータ転送を行う場合と異なり、他のコンテンツ提供ノードを代替ノードとして使用することができる。従って、コンテンツの再生が途切れることが防止され、よりロバストなコンテンツ再生が担保される。また、例えば、高品質な映像コンテンツ等、ネットワーク200に収容された各データ提供ノードの送信帯域幅がいずれもコンテンツの再生速度未満となるような場合にも、コンテンツ再生装置100側では再生速度以上の速度でコンテンツデータを取得することが可能となり、コンテンツの再生に関する制約がより緩和される。
【0203】
尚、いずれにせよ、HDD160の不揮発性記憶領域に対する書き込み処理及び読み出し処理の重複は生じることがなく、本発明に特有の実践上利益が担保されることは言うまでもない。
<第4実施例>
次に、本発明の第4実施例について説明する。
【0204】
フラグメントの伝送態様を規定するプロトコルが、例えば、UDP(User Datagram Protocol)等、パケットロスの発生が回避され難いプロトコルである場合、予めこのようなパケットロスへの対策を講じておくのが望ましい。
【0205】
そこで、第4実施例では、上記第3実施例において、フラグメントN0、N1及びN2を夫々複数のデータ提供ノードから取得する。この場合、フラグメントサイズが2倍になったことと等価であるから、コンテンツの再生開始に要する時間や、コンテンツデータのダウンロードに要する時間は第3実施例と較べて長くなるが、パケットロスが減少するため、パケットの再送要求が生じる頻度を減少させることができ、コンテンツの円滑な再生には効果的である。
【0206】
また、応用として、MPEG1ピクチャやGOPヘッダ等、パケットロスが大きなエラーに繋がる場合に限って、複数ノードからの取得を行ってもよい。
<第5実施例>
上記各種実施例では、フラグメントN1及びフラグメントN2は、予め準備処理の実行段階で、その時点のネットワークの状態等に基づいて、そのデータ量が決定されている。然るに、ネットワーク環境は、時間的に変化し得るため、フラグメントN1及びN2が、コンテンツデータのダウンロード期間中に最適値を維持する保証はない。そこで、第5実施例では、そのようなネットワーク環境の変化にロバストなストリーミング再生制御について説明する。
【0207】
第5実施例では、フラグメントサイズの決定に際して、先ずフラグメントN0のみが決定される。
【0208】
フラグメントN0の取得が完了すると、制御部110は、一方で、フラグメントN0から連続する位置から再生速度Pに同期した速度でデータ断片を順次取得し、他方で、残余の受信帯域幅を使用してコンテンツデータの最後尾の位置から遡って断片データを取得する。このようにフラグメントN0を除く残余のコンテンツデータの両端部から断片データの取得を実行すると、残余のコンテンツデータの一断片データが重複して取得されることになる(重複する前にその旨を検出してもよい)。
【0209】
この重複データ位置に相当する断片データから最後尾までの断片データがフラグメントN2であり、この重複位置に相当する断片データよりも先頭側のデータがフラグメントN1である。このようにフラグメントN1及びN2を成り行きに任せた可変値として設定すれば、ネットワークの状態の変化(例えば、帯域幅の変化)に応じてフラグメントN1及びN2のデータ量が自動的に変化するため、予めこれらのデータ量を規定しておくよりも、ネットワークの状態変化に対してロバストとなる。
【0210】
また、この場合も、メモリキャッシュは再生速度Pで再生されており、上記重複データ位置の断片データが読み出されるタイミングは、取得する断片データが重複するタイミングよりも、メモリキャッシュのデータ量を再生速度Pで乗じた時間分後になる。即ち、この場合も、HDD160における書き込み処理と読み出し処理との重複が生じることはなく、円滑なコンテンツの再生が約束される。
【0211】
本発明は、上述した実施例に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴うストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体もまた、本発明の技術的範囲に含まれるものである。
【産業上の利用可能性】
【0212】
本発明は、コンテンツのストリーミング再生を行う装置に適用可能である。
【符号の説明】
【0213】
1…ストリーミングシステム、2…ストリーミングシステム、100…再生装置、200…ネットワーク、300、300A、300B、300C、300D…データ提供ノード、110…制御部、120…プロトコル生成部、130…送信部、140…受信部、150…受信データ解析部、160…HDD,170…高速メモリ。
【特許請求の範囲】
【請求項1】
コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、
前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求手段と、
前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得手段と、
前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御手段と、
前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御手段と、
前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、
前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定手段と、
前記第1及び第2記憶装置の状態を特定する第2特定手段と、
前記コンテンツの状態を特定する第3特定手段と、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように、前記フラグメントNa及びNb並びにその転送速度を決定する決定手段と
を具備し、
前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する
ことを特徴とするストリーミング再生装置。
【請求項2】
前記データ提供ノードは前記ネットワークに複数収容され、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNaの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNaの一部を夫々割り当てる第1割り当て手段と、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNbの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNbの一部を夫々割り当てる第2割り当て手段と
を更に具備し、
前記要求手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNaの一部を要求すると共に、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNbの一部を要求する
ことを特徴とする請求項1に記載のストリーミング再生装置。
【請求項3】
前記第1割り当て手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNaのうち転送が完了していないフラグメントの一部を再度割り当て、
前記第2割り当て手段は、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNbのうち転送が完了していないフラグメントの一部を再度割り当てる
ことを特徴とする請求項2に記載のストリーミング再生装置。
【請求項4】
前記フラグメントは、前記フラグメントNa及び前記フラグメントNbのうち少なくとも一方に含まれる
ことを特徴とする請求項1から3のいずれか一項に記載のストリーミング再生装置。
【請求項5】
前記フラグメントNaの転送速度は、前記コンテンツの再生速度であり、前記フラグメントNbの転送速度は、前記ストリーミング再生装置の受信帯域のうち前記再生速度に相当する帯域を除く残余の受信帯域に相当する転送速度である
ことを特徴とする請求項1から4のいずれか一項に記載のストリーミング再生装置。
【請求項6】
前記フラグメントNaは、前記再生開始データを含むフラグメントN0と、該フラグメントN0を除くフラグメントN1から構成され、
前記要求手段は、前記フラグメントN0の取得が完了するまで前記フラグメントNbの要求を待機する
ことを特徴とする請求項1から5のいずれか一項に記載のストリーミング再生装置。
【請求項7】
前記フラグメントN0の転送速度は、前記データ提供ノードの間で規定される最大転送速度である
ことを特徴とする請求項6に記載のストリーミング再生装置。
【請求項8】
前記要求手段は、前記フラグメントNaが前記コンテンツデータの先頭から順次取得されるように前記フラグメントNaを要求すると共に、前記フラグメントNbが最後尾の前記フラグメントから順次取得されるように前記フラグメントNbを要求し、
前記取得手段は、前記フラグメントNaと前記フラグメントNbとが重複しないように前記フラグメントNaと前記フラグメントNbを取得する
ことを特徴とする請求項1から7のいずれか一項に記載のストリーミング再生装置。
【請求項9】
前記第1特定手段は、前記ストリーミング再生装置の受信帯域幅及び前記データ提供ノードの送信帯域幅を特定する
ことを特徴とする請求項1から8のいずれか一項に記載のストリーミング再生装置。
【請求項10】
前記第2特定手段は、前記第1及び第2記憶装置の残容量及び負荷状態を特定する
ことを特徴とする請求項1から9のいずれか一項に記載のストリーミング再生装置。
【請求項11】
前記第3特定手段は、前記コンテンツのデータサイズ及び再生速度を特定する
ことを特徴とする請求項1から10のいずれか一項に記載のストリーミング再生装置。
【請求項12】
前記第2記憶制御手段は、前記順次読み出されたフラグメントNaが前記第2記憶装置に蓄積されるように前記第2記憶装置を制御する
ことを特徴とする請求項1から11のいずれか一項に記載のストリーミング再生装置。
【請求項13】
前記第2制御手段は、所定の消去要求に応じて前記不揮発性記憶領域に蓄積されたフラグメントを消去する
ことを特徴とする請求項1から12のいずれか一項に記載のストリーミング再生装置。
【請求項14】
コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、
前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求工程と、
前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得工程と、
前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御工程と、
前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御工程と、
前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、
前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定工程と、
前記第1及び第2記憶装置の状態を特定する第2特定工程と、
前記コンテンツの状態を特定する第3特定工程と、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定工程と
を具備し、
前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する
ことを特徴とするストリーミング再生方法。
【請求項15】
コンピュータシステムを請求項1から13のいずれか一項に記載のストリーミング再生装置として機能させることを特徴とするコンピュータプログラム。
【請求項16】
請求項15に記載のコンピュータプログラムを記録してなる記録媒体。
【請求項1】
コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置であって、
前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求手段と、
前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得手段と、
前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御手段と、
前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御手段と、
前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生手段と、
前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定手段と、
前記第1及び第2記憶装置の状態を特定する第2特定手段と、
前記コンテンツの状態を特定する第3特定手段と、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように、前記フラグメントNa及びNb並びにその転送速度を決定する決定手段と
を具備し、
前記要求手段は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する
ことを特徴とするストリーミング再生装置。
【請求項2】
前記データ提供ノードは前記ネットワークに複数収容され、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNaの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNaの一部を夫々割り当てる第1割り当て手段と、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記複数のデータ提供ノードの中から、前記決定されたフラグメントNbの転送を要求すべき複数のデータ提供ノードを選択すると共に、該選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき前記決定されたフラグメントNbの一部を夫々割り当てる第2割り当て手段と
を更に具備し、
前記要求手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNaの一部を要求すると共に、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、夫々前記割り当てられたフラグメントNbの一部を要求する
ことを特徴とする請求項1に記載のストリーミング再生装置。
【請求項3】
前記第1割り当て手段は、前記選択されたフラグメントNaの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNaの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNaのうち転送が完了していないフラグメントの一部を再度割り当て、
前記第2割り当て手段は、前記選択されたフラグメントNbの転送を要求すべき複数のデータ提供ノードのうち少なくとも一つのデータ提供ノードとの間でネットワーク障害が発生した場合に、前記複数のデータ提供ノードの中から、該発生したネットワーク障害に対応する少なくとも一つのデータ提供ノードに代替すべき少なくとも一つのデータ提供ノードを再選択すると共に、該再選択されたデータ提供ノードを含む、新たに前記フラグメントNbの転送を要求すべき複数のデータ提供ノードの各々に対し、該各々が転送すべき、前記決定されたフラグメントNbのうち転送が完了していないフラグメントの一部を再度割り当てる
ことを特徴とする請求項2に記載のストリーミング再生装置。
【請求項4】
前記フラグメントは、前記フラグメントNa及び前記フラグメントNbのうち少なくとも一方に含まれる
ことを特徴とする請求項1から3のいずれか一項に記載のストリーミング再生装置。
【請求項5】
前記フラグメントNaの転送速度は、前記コンテンツの再生速度であり、前記フラグメントNbの転送速度は、前記ストリーミング再生装置の受信帯域のうち前記再生速度に相当する帯域を除く残余の受信帯域に相当する転送速度である
ことを特徴とする請求項1から4のいずれか一項に記載のストリーミング再生装置。
【請求項6】
前記フラグメントNaは、前記再生開始データを含むフラグメントN0と、該フラグメントN0を除くフラグメントN1から構成され、
前記要求手段は、前記フラグメントN0の取得が完了するまで前記フラグメントNbの要求を待機する
ことを特徴とする請求項1から5のいずれか一項に記載のストリーミング再生装置。
【請求項7】
前記フラグメントN0の転送速度は、前記データ提供ノードの間で規定される最大転送速度である
ことを特徴とする請求項6に記載のストリーミング再生装置。
【請求項8】
前記要求手段は、前記フラグメントNaが前記コンテンツデータの先頭から順次取得されるように前記フラグメントNaを要求すると共に、前記フラグメントNbが最後尾の前記フラグメントから順次取得されるように前記フラグメントNbを要求し、
前記取得手段は、前記フラグメントNaと前記フラグメントNbとが重複しないように前記フラグメントNaと前記フラグメントNbを取得する
ことを特徴とする請求項1から7のいずれか一項に記載のストリーミング再生装置。
【請求項9】
前記第1特定手段は、前記ストリーミング再生装置の受信帯域幅及び前記データ提供ノードの送信帯域幅を特定する
ことを特徴とする請求項1から8のいずれか一項に記載のストリーミング再生装置。
【請求項10】
前記第2特定手段は、前記第1及び第2記憶装置の残容量及び負荷状態を特定する
ことを特徴とする請求項1から9のいずれか一項に記載のストリーミング再生装置。
【請求項11】
前記第3特定手段は、前記コンテンツのデータサイズ及び再生速度を特定する
ことを特徴とする請求項1から10のいずれか一項に記載のストリーミング再生装置。
【請求項12】
前記第2記憶制御手段は、前記順次読み出されたフラグメントNaが前記第2記憶装置に蓄積されるように前記第2記憶装置を制御する
ことを特徴とする請求項1から11のいずれか一項に記載のストリーミング再生装置。
【請求項13】
前記第2制御手段は、所定の消去要求に応じて前記不揮発性記憶領域に蓄積されたフラグメントを消去する
ことを特徴とする請求項1から12のいずれか一項に記載のストリーミング再生装置。
【請求項14】
コンテンツに係るコンテンツデータを保持し、転送が要求された該コンテンツデータのフラグメントを転送可能な少なくとも一つのデータ提供ノードと共にネットワークに収容され、揮発性記憶領域を有する第1記憶装置と、不揮発性記憶領域を有し、前記第1記憶装置と較べて書き込み速度が遅く且つ蓄積容量が大きい第2記憶装置とを備えてなる、前記コンテンツのストリーミング再生が可能なストリーミング再生装置におけるストリーミング再生方法であって、
前記データ提供ノードに対し、前記フラグメントとして、前記コンテンツのストリーミング再生を開始可能な再生開始データを含むフラグメントNaと、少なくとも該フラグメントNaと連続するデータ部分を含むフラグメントNbとの転送を要求する要求工程と、
前記ネットワークを介し、前記データ提供ノードから転送される前記フラグメントNa及びNbを夫々取得する取得工程と、
前記取得されたフラグメントNaが前記揮発性記憶領域に蓄積されるように前記第1記憶装置を制御する第1記憶制御工程と、
前記取得されたフラグメントNbが前記不揮発性記憶領域に蓄積されるように前記第2記憶装置を制御する第2記憶制御工程と、
前記再生開始データが蓄積された時点で前記蓄積されたフラグメントNaを順次読み出して前記コンテンツのストリーミング再生を開始すると共に、前記蓄積されたフラグメントNaに対応する前記コンテンツのストリーミング再生が終了した時点で、前記蓄積されたフラグメントNbを前記蓄積されたフラグメントNaに連続する部分から順次読み出して前記コンテンツのストリーミング再生を継続する再生工程と、
前記ネットワークを介した前記データ提供ノードとの間の通信状態を特定する第1特定工程と、
前記第1及び第2記憶装置の状態を特定する第2特定工程と、
前記コンテンツの状態を特定する第3特定工程と、
前記特定された通信状態、第1及び第2記憶装置の状態並びにコンテンツの状態に基づいて、前記フラグメントNaの読み出しが終了する以前に又は終了するのと同時に前記フラグメントNbの蓄積が終了するように前記フラグメントNa及びNb並びにその転送速度を決定する決定工程と
を具備し、
前記要求工程は、前記データ提供ノードに対し、前記決定された転送速度による前記決定されたフラグメントNa及びNbの転送を要求する
ことを特徴とするストリーミング再生方法。
【請求項15】
コンピュータシステムを請求項1から13のいずれか一項に記載のストリーミング再生装置として機能させることを特徴とするコンピュータプログラム。
【請求項16】
請求項15に記載のコンピュータプログラムを記録してなる記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2012−80417(P2012−80417A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−225104(P2010−225104)
【出願日】平成22年10月4日(2010.10.4)
【出願人】(000005016)パイオニア株式会社 (3,620)
【Fターム(参考)】
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願日】平成22年10月4日(2010.10.4)
【出願人】(000005016)パイオニア株式会社 (3,620)
【Fターム(参考)】
[ Back to top ]