(第1の実施形態)
図1は、第1の実施形態に係る通信装置の構成を示した図である。図1に示すように、通信装置100は、通信I/F部101と、通信部102と、制御部103と、記憶部104と、ユーザインターフェイス部106と、再生部107と、を備える。
通信I/F部101は、有線LANや無線LANなど種々の手法を用いて、ネットワークと接続する。通信I/F部101を備えたことで通信装置100は、ネットワークと接続可能となる。
図2は、通信装置100が接続するネットワークを模式的に示した図である。図2に示すように、通信装置100は、ネットワーク200を介して、コンテンツ管理サーバ201と、メタ情報管理サーバ202と、接続されている。
コンテンツ管理サーバ201は、コンテンツを管理するサーバとする。
メタ情報管理サーバ202は、コンテンツの内容やコンテンツの構造が示されたメタ情報を管理するサーバとする。本実施形態では、コンテンツを管理するコンテンツ管理サーバ201と、メタ情報管理サーバ202と、が別構成の例について説明するが、1つのサーバでコンテンツ及びメタ情報を提供しても良い。
また、本実施形態では、コンテンツの内容や構造を認識するための構造情報としてメタ情報を用いた例について説明した。しかしながら、メタ情報に制限するものではなく、例えば、コンテンツデータの先頭に、当該コンテンツの構造等が含まれていても良い。
メタ情報には、コンテンツの構造を示す情報が含まれている。例えば、メタ情報には、コンテンツ全体のデータサイズ又はコンテンツの再生時間が情報として含まれている。さらに、メタ情報には、当該コンテンツが複数のチャプタ(区間)に分かれており、各チャプタの開始位置(換言すれば、コンテンツを区切る位置)が含まれている。具体的には、メタ情報には、コンテンツを区切る位置として、例えば各チャプタの開始時刻又は開始バイトが、各チャプタと対応付けて記憶されている。このように、メタ情報は、コンテンツを視聴時、別の場面に移動する際、移動先として用いられる可能性が高い区切り位置の情報を含んでいる。
つまり、本実施形態にかかる通信装置100は、ユーザから、当該区切り位置の選択を受け付け、当該区切り位置からコンテンツの再生を開始した場合、ユーザが所望する内容を視聴できる可能性が高くなる。なお、区切り位置は、チャプタの区切り位置に制限するものではなく、例えばCMの開始、終了する位置等でも良い。
さらには、通信装置100以外のユーザにより設定された区切り位置を用いても良い。例えば、アップロードされているコンテンツに対して、ユーザがおすすめの場面の閲覧等のために区切り位置を設定する技術が提案されている。そこで、メタ情報管理サーバ202が、お薦め場面閲覧等のためにユーザにより設定された区切り位置を取得し、取得した区切り位置等をメタ情報内に記憶する。そして、メタ情報管理サーバ202が、通信装置100に対して、当該メタ情報を送信する。これにより、ユーザは、他のユーザが設定した区切り位置を含むメタ情報を利用して、コンテンツを視聴することができる。
さらに、メタ情報には、コンテンツのビットレートが含まれている。CBR(Constant Bit Rate)の場合には、コンテンツ1つについて1つのビットレートが含まれている。一方、VBR(Variable Bit Rate)の場合には、コンテンツを区切る区間毎に平均ビットレートが含まれている。
図3は、メタ情報により特定される、コンテンツファイルの構造を示した図である。図3に示す例では、長さL・再生時間Tを持つコンテンツファイルが、8個の区間に分割される例を示している。各区間は、開始時刻ti(i=0,..,7)、又は開始バイトアドレスbi(i=0,..,7)により特定される。本実施形態にかかる通信装置100は、分割された各区間をチャプタとして認識する。そして、通信装置100は、ユーザインターフェイス部106を介して、ユーザから任意のチャプタに移動する操作を受け付けた場合に、当該チャプタに対応する、上述した開始時刻又は開始バイトアドレスからコンテンツの再生を行う。
コンテンツの各区間は、さらに区間を分割した小区間(細かい破線で区切られた領域)を含んでいる。通信装置100は、この小区間のデータをコンテンツ管理サーバ201からダウンロードする。
小区間のデータサイズは、所定の基準に従って定められている。つまり、小区間のデータサイズは、ユーザが再生対象として各区間を選択した際、当該小区間のデータの再生が終了する前に、コンテンツ管理サーバ201から当該小区間の続きのデータを取得し、シームレスに再生可能とすることを基準として定められている。当該小区間のデータサイズは、コンテンツ管理サーバ201側で決定しても良いし、通信装置100側で決定しても良い。コンテンツ管理サーバ201側が決定する場合に、上述した基準を満たすものとして予め定めた固定サイズでも良い。また、通信装置100側で決定する場合、コンテンツ管理サーバ201と通信装置100との間のネットワーク速度、及びコンテンツのビットレートを考慮して、上述した条件を満たすようデータサイズを決定する。
図1に戻り、通信部102は、通信I/F部101を介して、通信プロトコル、例えばTCP/IPで定められた処理を行って、ネットワーク200に接続されたコンテンツ管理サーバ201又はメタ情報管理サーバ202との間で、データの送受信を制御する。
記憶部104は、RAMまたはハードディスクなどにより構成され、コンテンツ管理サーバ201から取得したコンテンツや、メタ情報管理サーバ202から取得したメタ情報を記憶する。
制御部103は、取得部111と、ダウンロード制御部112と、を備え、通信装置100全体を制御する。例えば、制御部103は、再生部107を制御して、取得したコンテンツを再生したり、ユーザインターフェイス部106を介して入力されたユーザから要求に対応する処理を行ったり、記憶部104を用いてコンテンツのバッファ状態を管理する。
取得部111は、通信部102を制御して、メタ情報を取得する。取得したメタ情報は、記憶部104に記憶される。そして、メタ情報を解析することで、コンテンツを分割する複数の区間を特定できる。
ダウンロード制御部112は、メタ情報に基づいて特定された、コンテンツを区切る複数のチャプタ(区間)のうち、チャプタ間の区切り位置をダウンロードの開始位置として、3個の区間のデータを並行してダウンロードする。
本実施形態は、並行してダウンロード可能な数を3個とするが、3個に制限するものではない。2個であっても良いし、4個以上であっても良い。このように、並列数は設計事項であり、必要に応じて増減させて良い。なお、本実施形態の目的を効果的に実現するためには、2以上の並列数が好ましい。さらに並列ダウンロードは、複数のTCPコネクションを確立して行っても良いし、1つのコネクションの中で多重化してダウンロードするようにしても良い。なお、1つずつしかダウンロードできない場合であっても、ダウンロード速度と再生速度との間に十分な差が確保できれば適用可能である。次に、ダウンロード制御の手順について例を用いて説明する。
図4は、コンテンツのダウンロードの過程を示した図である。図4の(1)は、コンテンツのダウンロード前を示している。上述したように、当該コンテンツは、8チャプタ(区間)で構成されている。そして、ダウンロード制御部112は、当該コンテンツうち、最初から3個のチャプタについて、各チャプタの開始位置(開始位置401、402、403)から、並行してダウンロードを行う。
その後、図4の(2)に示すように、タウンロード制御部112は、最初から3個のチャプタ(区間)について、小区間分(小区間404、405、406)のダウンロードが済んだ段階で、当該3個のチャプタについてのダウンロードを停止する。これにより、再生部107により、ダウンロード済みのチャプタの再生が開始された場合、ダウンロード制御部112により、ダウンロード済みの小区間以降についてダウンロードが再開されれば、当該チャプタについてはシームレスに再生可能となる。
その後、図4の(3)に示すように、再生部107により最初のチャプタについて再生が開始されると共に、ダウンロード制御部112は、それ以降のチャプタについて、開始位置(開始位置407、408、409)からのダウンロードを並行して行う。これ以降も同様の手順でダウンロード制御部112がダウンロードを行い、図4の(4)に示すように、ダウンロード制御部112が、コンテンツのチャプタ毎に小区間分のダウンロードを完了させる。これにより、ユーザから各チャプタに移動する操作を受け付けた場合であっても、移動先のチャプタについて待機することなく、シームレスに再生を可能とする。
図5は、従来のコンテンツのダウンロードを示した図である。図5に示すように、従来、コンテンツをダウンロードする場合、開始位置から継続してダウンロードが行われる。このため、ユーザが、コンテンツの再生位置501から再生位置502に変更した場合、再生位置502からのデータがまだダウンロードされていないため、コンテンツの再生が停止する。これに対し、本実施形態にかかる通信装置100は、複数のチャプタについて、開始位置から小区間分のコンテンツを並行してダウンロードすることとした。これにより、通信装置100は、ユーザから各チャプタへの移動を受け付けた場合であってもシームレスにコンテンツを再生することができる。
ユーザインターフェイス部106は、通信装置100を操作するユーザに対するインターフェイスとする。例えば、ユーザインターフェイス部106は、再生部107が再生しているコンテンツに対して、当該コンテンツを区切るチャプタの開始位置の選択を受け付ける。
再生部107は、記憶部104に保存されたコンテンツを再生する。再生部107は、ユーザインターフェイス部106により選択を受け付けた、チャプタの開始位置から、データを再生(出力)する。
図6は、通信装置100の動作を示したシーケンス図である。まず、通信装置100は、再生対象となるコンテンツのメタ情報を取得する。この取得手法としては、どのような手法を用いても良い。本実施形態では、上述したように、メタ情報管理サーバ202に予め用意されているものとする。
まず、通信装置100の取得部111が、通信部102を介して、コンテンツのメタ情報を取得するため、メタ情報管理サーバ202に対して、メタ情報のダウンロードの要求を送信する(ステップS601)。当該要求に応じて、メタ情報管理サーバ202は、要求されたコンテンツに対応するメタ情報を送信する(ステップS602)。
そして、通信装置100の取得部111が、通信部102を介して、メタ情報を取得して記憶部104に記憶した場合、制御部103が、メタ情報を解析して、再生対象のコンテンツの構造を把握する(ステップS603)。これにより、再生対象のコンテンツの各チャプタの開始位置を把握できる。
そして、本実施形態にかかる通信装置100のダウンロード制御部112は、再生対象のコンテンツについて、ダウンロードを要求する。本実施形態では通信装置100では上述したように最大3個まで並行してダウンロード可能とする。その上、ダウンロード制御部112のダウンロードは、同時に処理できる最大数(本実施形態では3個とする)まで並列して行う。そこで、ダウンロード制御部112は、チャプタ1(Ch.1)を構成する最初の小区間(Ch.1-1)のダウンロード要求(ステップS604)と、チャプタ2(Ch.2)を構成する最初の小区間(Ch.2-1)のダウンロード要求(ステップS605)と、チャプタ3(Ch.3)を構成する最初の小区間(Ch.3-1)のダウンロード要求(ステップS606)と、を並行して行う。
そして、本実施形態にかかる通信装置100のダウンロード制御部112は、ファイルの先頭のチャプタ(区間)を構成する小区間から順次にダウンロードする。すなわちb0バイトで特定される区間の最初の小区間のデータからダウンロードする。その後も他の区間についてダウンロードを行い、ダウンロード制御部112は、チャプタ1(Ch.1)〜チャプタ3(Ch.3)の3つの区間それぞれの、最初の小区間(Ch.1-1, Ch.2-1, Ch.3-1,)のデータを並行してダウンロードすることとなる(ステップS607〜S609)。
そして、最初の区間(Ch.1)について再生できる量のダウンロードが完了すると、通信装置100の再生部107が、当該コンテンツの先頭(最初のチャプタの開始位置)から順に再生を開始する(ステップS610)。
さらに時間が経過し、ダウンロード中のチャプタのうち、いずれかの小区間に対するダウンロードが完了したとする。この場合、通信装置100の制御部103は、コンテンツに含まれる各チャプタ(区間)のうち、最初の小区間のダウンロードが完了していないチャプタ(区間)の有無を判定する。
図6に示す例では、ダウンロード制御部112が、通信部102を介して、チャプタ(区間)1(Ch.1)の最初の小区間の最後のデータのダウンロード制御まで行い、チャプタ(区間)1(Ch.1)の最初の小区間のダウンロードが完了したものとする(ステップS611)。
当該ダウンロードが完了した後、制御部103が、ダウンロードが完了していない区間の有無を判定する(ステップS612)。図6に示す例では、制御部103が、チャプタ(区間)4(Ch.4)の最初の小区間のダウンロードが完了していないことを検出する。なお、チャプタ(区間)1(Ch.1)の再生で、当該チャプタ1をシームレスに再生するだけのデータサイズがなくなりそうな場合には、チャプタ1の最初の小区間以降について、継続してダウンロードしても良い。
そこで、ダウンロード制御部112は、チャプタ4(Ch.4)を構成する最初の小区間のダウンロード要求を行う(ステップS613)。当該要求に対応して、ダウンロード制御部112は、チャプタ4(Ch.4)を構成する、最初の小区間について、ダウンロードが終了していない他のチャプタの小区間と並行してダウンロードする(ステップS614)。
また、制御部103が、ダウンロードが完了していない他の区間が無いと判定した場合、現在再生中の小区間に継続する小区間のうち、ダウンロードが完了していないものから順次にダウンロードしていく。
このように本実施形態にかかる通信装置100では、再生するコンテンツの構造を考慮して、移動先の各チャプタの開始位置から小区間分のデータを優先的に取得することとした。これにより、再生部107によるコンテンツの再生中に、ユーザインターフェイス部106が、チャプタを移動するなどの操作を受け付けたとしても、再バッファリングが発生する可能性を抑止し、データの遅延を隠蔽し、コンテンツのシームレスな再生を提供できる。
次に、通信装置100における再生するまでの処理について説明する。図7は、通信装置100における、コンテンツの再生が開始されるまでのフローチャートである。本フローチャートでは、動画コンテンツをインデックスiとjで表現する。インデックスiが、区間のインデックスであり、インデックスjが小区間のインデックスとする。
まず、通信装置100の取得部111が、通信部102を介して、コンテンツのメタ情報のダウンロード要求を、メタ情報管理サーバ202に対して送信する(ステップS701)。そして、取得部111が取得したメタ情報を、記憶部104に保存する(ステップS702)。その後、制御部103が、メタ情報を解析して、再生対象のコンテンツの構造を把握する(ステップS703)。その後、制御部103が、コンテンツのインデックスi、jを‘1’で初期化する(ステップS704)。さらに、制御部103が、ダウンロード数のカウンタ(以降、ダウンロードカウンタn)を‘0’で初期化する(ステップS705)。
その後、ダウンロード制御部112が、コンテンツの各チャプタの小区間Dijのダウンロードを開始する(ステップS706)。そして、正常にダウンロードが開始された場合、制御部103は、ダウンロードカウンタnに‘1’追加する(ステップS707)。
その後、制御部103が、ダウンロードカウンタnが、最大ダウンロード数N(上限値‘3’)より小さいか否かを判定する(ステップS708)。ダウンロードカウンタnが、最大ダウンロード数Nより小さいと判定した場合(ステップS708:Yes)、インデックスiに‘1’追加する(ステップS709)。そして、制御部103が、インデックスiが、コンテンツ内の区間の数以上か否かを判定する(ステップS710)。区間の数以上ではないと判定した場合(ステップS710:No)、ダウンロード制御部112が、異なるチャプタの小区間Dijのダウンロードを開始する(ステップS706)。このようにステップS706〜S710まで処理を繰り返して行うことで、複数のチャプタの小区間についてダウンロードが並行して行われる。
そして、制御部103が、ダウンロードカウンタnが、最大ダウンロード数N以上となった場合(ステップS708:No)、またはインデックスiがコンテンツ内の区間数以上となった場合(ステップS710:Yes)、制御部103が、コンテンツの最初のチャプタ1の小区間D11が再生可能か否かを判定する(ステップS711)。制御部103が、再生できないと判定した場合(すなわち、ダウンロード済みのサイズが不足していると判定した場合)(ステップS711:No)、条件が満たされるまで待機する(ステップS712)。その後、制御部103が、再生可能か否かの判定を定期的に行う。
制御部103が、再生可能と判定した場合(ステップS711:Yes)、再生部107が、チャプタ1の小区間D11の再生を開始して(ステップS713)、次の処理に移る。
以上が、通信装置100における再生を開始するまでの処理である。なお、図7に示すフローチャートでは、一連の処理の間に小区間のダウンロードは完了しないと仮定している。仮にダウンロードが完了することを考慮する場合には、後述する再生中の処理と同様の処理で対応する。
次に、通信装置100における再生中の処理について説明する。図8は、通信装置100における、コンテンツの再生中の処理を示したフローチャートである。
本実施形態にかかる通信装置100では、再生中の処理フローは、イベントドリブンになっている。そこで、制御部103が、イベントが発生するまで待機する(ステップS801)。なお、この図8に示すフローチャートでは、不要なイベントは省略し、イベントとして「小区間ダウンロード完了」及び「Dx1に移動するユーザ操作」が発生する場合に限って示した。
その後、制御部103が、発生したイベントを判定する(ステップS802)。制御部103が「小区間ダウンロード完了」のイベントが発生したと判定した場合(ステップS802:下)、ダウンロードカウンタnを‘1’減算する(ステップS803)。その後、制御部103が、他のチャプタの先頭に位置する小区間D*1のうち未ダウンロードのものがあるか否かを判定する(ステップS804)。未ダウンロードの小区間があると判定した場合(ステップS804:Yes)、ダウンロード制御部112は、未ダウンロードの小区間D*1の一つに対してダウンロードを開始する(ステップS805)。そして、制御部103は、ダウンロードカウンタnに‘1’加算する(ステップS806)。なお、クライアントがダウンロードした最初の小区間だけでは十分な再生時間を確保できないと判断した場合、例えば先頭から2つの小区間を連続してダウンロードするように変更しても良い。
一方、制御部103が、他のチャプタの先頭に位置する小区間D*1のうち、未ダウンロードのものが無いと判定した場合(ステップS804:No)、他にダウンロードを行っていない小区間D*y(y!=1)があるか否かを判定する(ステップS807)。ないと判定した場合(ステップS807:No)、イベントの発生まで待機する(ステップS801)。一方、小区間D*y(y!=1)があると判定した場合(ステップS807:Yes)、ダウンロード制御部112が、これら小区間D*y(y!=1)のうち少なくとも一つに対してダウンロードを開始する(ステップS808)。さらに、制御部103が、ダウンロードカウンタnに‘1’を加算する(ステップS809)。なお、ステップS808でダウンロードする小区間は、現在の再生が継続した場合に再生されるタイミングが早いものから順にダウンロードしていくものとする。
次に、ステップS802で、制御部103が、「Dx1に移動するユーザ操作」のイベントが発生したと判定した場合(ステップS802:右)の処理について述べる。この処理は、移動先である区間Dxの先頭にある小区間のデータDx1がダウンロードされているか否かによって処理が異なる。つまり、制御部103が、小区間のデータDx1が再生可能か否かを判定する(ステップS810)。
制御部103が小区間のデータDx1を再生可能と判定した場合、換言すればDx1が再生可能なバイト数以上ダウンロード済みの場合(ステップS810:Yes)、Dx1の再生を開始する(ステップS811)。その後、制御部103が、再生を開始した小区間のデータDx1と同一区間に属する他の小区間Dx*で、未ダウンロードのものがあるか否かを判定する(ステップS812)。そして、制御部103が、全てがダウンロードされていると判定した場合(ステップS812:No)、イベントの発生まで待機する(ステップS801)。
一方、制御部103が小区間Dx*で未ダウンロードのものがあると判定した場合(ステップS812:Yes)、現在のダウンロードカウンタnが、最大ダウンロード数N以上であるか否かを判定する(ステップS813)。最大ダウンロード数N以上ではないと判定した場合(ステップS813:No)、イベントの発生まで待機する(ステップS801)。また最大ダウンロード数Nより小さいと判定した場合(ステップS813:No)、ダウンロード制御部112が、小区間Dx*のダウンロードを開始する(ステップS814)。そして、制御部103が、ダウンロードカウンタnに‘1’加算する(ステップS815)。
また、ステップS810で、制御部103が小区間のデータDx1を再生できないと判定した場合、換言すれば、小区間のデータDx1が全くダウンロードされていない又は再生可能なバイト数に満たないと判定した場合(ステップS810:No)、小区間のデータDx1がダウンロード中であるか否かを判定する(ステップS823)。ダウンロード中ではないと判定した場合(ステップS823:No)、制御部103が、ダウンロードカウンタnが、最大ダウンロード数Nより小さいか否かを判定する(ステップS816)。ダウンロードカウンタnが、最大ダウンロード数N以上と判定された場合(ステップS816:No)、ダウンロード中の小区間の1つをキャンセルする(ステップS817)。キャンセルする対象を決める基準としては、最もダウンロードが進んでいない小区間、もっとも最近にダウンロードが開始された小区間、現在再生中の区間よりも時間的に前の区間に含まれる小区間、現在再生中の区間からの時間的距離が最も遠い小区間、など種々の基準を用いて良い。そして、制御部103が、当該キャンセルに伴いダウンロードカウンタnから‘1’減算する(ステップS818)。
そして、ステップS818の処理の後、又はダウンロードカウンタnが、最大ダウンロード数Nより小さいと判定された場合(ステップS816:Yes)、ダウンロード制御部112が、移動先の小区間のデータDx1のダウンロードを開始する(ステップS819)。その際、制御部103が、ダウンロードカウンタnに‘1’加算する(ステップS820)。その後、同小区間のデータDx1が再生できるようになるまで待機する(ステップS821)。その後、同小区間のデータDx1が再生できるようになった場合、再生部107が、再生を開始して(ステップS822)、元に戻る(ステップS821〜ステップS822)。
現在ダウンロード中だった場合(ステップS823:Yes)、再生可能になるまで待機し(ステップS821)、再生可能となった場合に再生を開始する(ステップS822)。その後、イベントの発生まで待機する(ステップS801)。
このように通信装置100では、ユーザ操作によって移動する可能性がある、各チャプタの開始部分に対応する小区間を予めダウンロードしておくこととした。これにより、ユーザからチャプタ移動の操作を受け付けた場合に、移動操作の直後にダウンロードが実行される可能性を低減させることができる。結果的に、ダウンロードに要する遅延をユーザに対して隠蔽することができる。
引き続き、本実施形態にかかる通信装置100を構成する各構成要素の役割と動作について詳細に述べる。図9と図10は、通信装置100において、図8の処理を実行する際の構成要素間の動作を示したシーケンス図である。
ユーザインターフェイス部106が、ユーザからのコンテンツの再生要求の選択を受け付ける(ステップS901)。そして、ユーザインターフェイス部106が、再生要求の選択を受け付けたことを、制御部103に通知する(ステップS902)。そして、制御部103の取得部111が、コンテンツの再生要求を解析し、ユーザに選択されたコンテンツと、当該コンテンツに対応するメタ情報を取得する要求を生成する(ステップS903)。その後、取得部111が、メタ情報の取得要求を、通信部102に出力する(ステップS904)。
これにより、通信部102が、通信I/F部101を介してコンテンツ管理サーバ201にメタ情報の取得要求を送信する(ステップS905〜ステップS906)。
メタ情報の取得要求を受信したメタ情報管理サーバ202は、メタ情報を通信装置100に送り返す(ステップS907)。そして、通信部102が、通信I/F部101を介して、メタ情報を受信し(ステップS908)、取得部111の制御に従って、受信したメタ情報を記憶部104に記憶する(ステップS909)。その後、通信部102は、制御部103の取得部111に、メタ情報を受信したことを通知する(ステップS910)。
制御部103の取得部111が、受信通知を受け取った場合にメタ情報が適切に取得できたものと判定する。そして、制御部103が、記憶部104に記憶されたメタ情報を読み出す(ステップS911)。そして、制御部103が、メタ情報を解析し、コンテンツ内の各チャプタの開始バイト(区切り位置)を特定する(ステップS912)。その結果、制御部103は、コンテンツが例えば図3に示すような構造を有していることを認識する。なお、解析結果は記憶部104に保存する。さらに、制御部103は、各チャプタにおけるダウンロード単位である小区間を特定する(ステップS913)。なお、小区間の特定手法は、上述したように様々な手法が考えられる。そして、制御部103は、特定されたコンテンツ内の各チャプタ、及び各チャプタの小区間を、特定結果として、記憶部104に記憶する(ステップS914)。
ところで、本実施形態では、各チャプタの小区間3個を並行してダウンロード可能としている。そこで、制御部103のダウンロード制御部112は、通信部102に対して、異なるチャプタについての小区間取得要求を、3回出力する(ステップS915、S918、S921)。そして、通信部102が、これら3個の取得要求を、通信I/F部101を介して、コンテンツ管理サーバ201に送信する(ステップS916、S917、S919、S920、S922、S923)。なお、図8に示したダウンロードカウンタnの増減は、制御部103で適切に実行されているものとして、説明を省略する。
これに伴い、コンテンツ管理サーバ201が、通信装置100に対して、3個の小区間のデータを、並行して送信する(ステップS924、S927、S930)。そして、通信部102が、通信I/F部101を介して、3個の小区間のデータを、並行して受信する(ステップS924、S925、S927、S928、S930、S931)。そして、通信部102が、ダウンロード制御部112による制御に従って、3個の小区間のデータを並行して、記憶部104に記憶させる(ステップS926、S929、S932)。
さらに通信部102は、制御部103のダウンロード制御部112に、小区間のデータを受信したことを通知する(ステップS933)。通知を受けた制御部103は、コンテンツのダウンロード状態を更新し、確認する(ステップS934〜S935)。これ以降の処理については、図10で説明する。
制御部103が、図9のステップS935でダウンロードの状態確認で、コンテンツの先頭チャプタの小区間が再生可能と判定した場合、制御部103は、再生部107にコンテンツの再生を指示する(ステップS1001)。再生部107は、当該指示に従って、小区間のデータを、記憶部104から読出し(ステップS1002)、再生する(ステップS1003)。
次に、小区間のデータのダウンロード終了後に他のチャプタの小区間のデータをダウンロードする際の処理について述べる。まず図9で示した処理(ステップS924〜S932)と同様に、小区間のデータのダウンロードから保存するまでの処理を行う(ステップS1004〜S1006)。その後、通信部102による小区間のデータを受信したことを通知(ステップS1007)、コンテンツのダウンロード状態の更新(ステップS1008)、及びコンテンツのダウンロード状態の確認(ステップS1009)が行われる。当該確認で、制御部103が、小区間全体がダウンロードできたことを確認できる。
そして、制御部103は、ダウンロードすべき小区間のデータが存在するか否かを判定する(ステップS1010)。当該判定は、図8のステップS804やステップS807に相当し、状況に応じて判定基準が異なる。
そして、制御部103が、ダウンロードすべき小区間のデータが存在すると判定した場合、ダウンロード制御部112が、小区間のデータの取得要求を、通信部102と通信I/F部101を介して、コンテンツ管理サーバ201に送信する(ステップS1011〜S1013)。これにより、コンテンツ管理サーバ201からの取得要求の対象となった小区間のデータのダウンロードが開始される。
次に、図8のステップS802で、「Dx1に移動するユーザ操作」のイベントが発生したと判定した場合(ステップS802:右)の処理について説明する。図11は、制御部103が、「Dx1に移動するユーザ操作」のイベントの発生を検出した場合の処理を示したシーケンス図である。
まず、ユーザインターフェイス部106がユーザによるDx1への移動させる選択を受け付ける(ステップS1101)。そして、ユーザインターフェイス部106が、制御部103に対して、選択された移動先を通知する(ステップS1102)。制御部103は、記憶部104に取得要求を出力することで(ステップS1103)、通知された移動先(本処理手順ではDx1とする)のダウンロード状態を、記憶部104から取得する(ステップS1104)。そして、制御部103は、保存された状態情報に基づいて、再生のためにダウンロードが必要か否かを判定する(ステップS1105)。なお、本シーケンス図では、図8のステップS810で、制御部103が、ダウンロードが不要と判断した場合(ステップS810:Yes)について説明する。
そして、制御部103が、ダウンロードが不要と判断した場合、再生部107に再生指示を出力する(ステップS1106)。そして、再生部107が、記憶部104から小区間のデータDx1を読み出して(ステップS1107)、当該小区間のデータDx1の再生を開始する(ステップS1108)。その後、制御部103は、区間Dxに属する小区間Dxy(y!=1)についてダウンロード要否を判定する(ステップS1109)。なお、本シーケンス図では、制御部103が、ダウンロードが必要と判定した場合について説明する。
そして、制御部103が、ダウンロードが必要と判定した場合、制御部103のダウンロード制御部112による制御に従って、通信部102が、コンテンツ管理サーバ201に対して、小区間のデータのダウンロードの要求を送信する(ステップS1110〜S1112)。
さらに、図12を用いて、制御部103が、「Dx1に移動するユーザ操作」のイベントの発生を検出した場合の処理を継続して説明する。
次に、図8のステップS810で、制御部103が、移動先のDx1のダウンロードが必要と判断した場合(ステップS810:No)について説明する。なお、移動先のDx1のダウンロードについては未だ実行されていなかったものとする(ステップS823:No)。この場合、制御部103が移動先のDx1のダウンロードが必要と判定した場合、ダウンロードカウンタnが最大ダウンロード数N以上であるか、換言すればダウンロードが即座に開始できるか否かを判定する(ステップS1201)。なお、当該処理は、図8のステップS816に相当する。当該処理手順では、ダウンロードが即座に開始できる例とする。
そして、制御部103が、即座にダウンロードできると判定した場合、制御部103のダウンロード制御部112の制御に従って、通信部102が、通信I/F部101を介して取得要求を、コンテンツ管理サーバ201に対して送信する(ステップS1202〜S1204)。これにより、コンテンツ管理サーバ201から、小区間のデータDx1のダウンロードが開始される。
一方、制御部103が、ステップS1201で即座にダウンロードできないと判定した場合、キャンセルの対象となるダウンロード中の小区間のデータを特定する(ステップS1205)、そして、制御部103の制御に従って、通信部102が、通信I/F部101を介して、コンテンツ管理サーバ201に対して、特定された小区間のデータのキャンセルを通知する(ステップS1206〜S1208)。通信部102が、通信I/F部101を介して、コンテンツ管理サーバ201からキャンセル応答を受信し(ステップS1209〜S1210)、受信したキャンセル応答を、制御部103に通知する(ステップS1211)。
そして、制御部103が、当該キャンセル応答に従って、記憶部104に記憶された状態情報を更新する(ステップS1212)。その後、制御部103が状態情報を確認する(ステップS1213)。ダウンロードを1つキャンセルしたことで、小区間のデータDx1のダウンロードが可能となった。これにより、制御部103のダウンロード制御部112による制御に従って、通信部102が、コンテンツ管理サーバ201に対して、小区間のデータDx1のダウロード要求を送信する(ステップS1214〜S1216)。これにより、コンテンツ管理サーバ201から、小区間のデータDx1のダウンロードが開始される。
一定時間が経過し、制御部103が小区間のデータDx1が再生可能なだけダウンロードできたと判断した場合、再生部107に再生指示を出力する(ステップS1217)。そして、再生部107が、記憶部104から小区間のデータDx1を読み出して(ステップS1218)、当該小区間のデータDx1の再生を開始する(ステップS1219)。
一連の説明において、通信装置100で、再生中の小区間に対する再生が終了した場合には、自動的に次の小区間の再生を開始する。同様に、通信装置100で、再生中の区間を構成する最後の小区間に対する再生が終了した場合には、自動的に次の区間の再生を開始する。その際、各区間の最初の小区間は事前にダウンロードされている可能性が高いが、ダウンロードされていない場合もありうる。この場合、Dx1に移動するユーザ操作が発生した場合と同様に処理することで対応できる。
次に、通信装置100の記憶部104に保存する各種情報について説明する。図13〜図18は、記憶部104で管理する状態情報の一例を示した図である。図13〜図18に示す状態情報は、図3に示す構造をもったコンテンツファイルを例として用いている。
図13〜図18では、各小区間を一つのエントリとする表形式で表現しているが、同等の情報を扱うことができれば他の形式であっても良い。当該状態情報は、制御部103がメタ情報の解析が終了した時点(図9のステップS903)で、当該状態情報を生成し、記憶部104に記憶させる。
そして、図9のステップS915〜S923に示すように、各小区間取得要求が、ダウンロード制御部112による制御で通信部102から送信された場合、図14で示した状態となる(なお、図9では、煩雑になるのを抑止するため状態情報の更新は省略している)。このように、チャプタ1〜3の最初の小区間のデータについては、ダウンロードが開始される。
この後、制御部103が、小区間のデータを受信するごとに、状態情報において対応するエントリを受信済みバイト数で更新する(図9のステップS934)。さらに、制御部103が、再生するために十分なバイト数を受信したと判定した場合、再生部107に指示する(図10のステップS1001)。これにより再生部107が小区間D11の再生を開始する(図10のステップS1003)。これに伴い、制御部103が、状態情報において該当するエントリを「再生中」で更新する(図10では当該処理を省略する)。
そして、小区間D11のダウンロードが終了すると、ダウンロード制御部112の制御により、通信部102が、次の区間の最初の小区間のデータの受信(ダウンロード)を開始する(ステップS1010〜S1013)。この結果、状態情報は図15のように更新される。つまり、チャプタ4の最初の小区間のエントリが、「ダウンロード中」と更新される。
通信装置100において、ユーザインターフェイス部106が、別のチャプタ(区間)に移動する操作を受け付けた際、当該区間の最初の小区間のデータのダウンロードが、再生可能な程度に完了している場合、制御部103が、状態情報で、移動先を示す小区間に対応するエントリを「再生中」に変更する。例えば、小区間のデータD51への移動が指示された場合、小区間のデータD51が再生開始に足るサイズをダウンロードされていた場合、制御部103は、図16に示す状態情報から、図17に示す状態情報のように、チャプタ2の最初の小区間及びチャプタ5の最初の小区間を更新する。
一方、移動先の区間の小区間のデータDx1が再生可能な程度にダウンロードされておらず(図8のステップS810:No)、小区間のデータDx1はダウンロード中ではなく、さらに、ダウンロードカウンタnが最大ダウンロード数N以上の場合(ステップS816:No)、状態情報のエントリでダウンロード中の示されている小区間のうち、適当な小区間のデータのダウンロードをキャンセルし(ステップS817)、ダウンロードカウンタnから‘1’を減算した後(ステップS818)、ダウンロード制御部112の制御により、通信部102が、小区間のデータDx1のダウンロードを新たに開始する(ステップS819)。
図16は、当該処理の例として、小区間D21を再生中で、チャプタ3〜5がダウンロード中の例とする。そして、移動先として小区間D51が選択された場合、図17の状態情報に示されるように、制御部103が、小区間D21のエントリを「ダウンロード済」に更新し、小区間D51のエントリを「ダウンロード・再生中」に更新する。
一方、図16に示す状況で、移動先として小区間D61が選択された場合、小区間D31に対するダウンロードがキャンセルされ、小区間D61に対するダウンロードが開始される。そこで、図18の状態情報に示されるように、制御部103が、小区間D21のエントリを「ダウンロード済」に更新し、小区間D61のエントリを「ダウンロード中」に更新し、小区間D31のエントリを「ダウンロード停止中」に更新する。
上述した第1の実施形態では、通信装置100が複数の小区間を並列にダウンロードする際、各ダウンロードの速度を制御できるように実装しても良い。例えば、再生中の区間に対するダウンロードを優先する、各区間の先頭の小区間を優先する、再生場所に近い順に帯域を割り当てる、などの制御方法が考えられる。
第1の実施形態にかかる通信装置100では、各チャプタ(区間)の最初の小区間のデータを早くダウンロードすることが重要となる。そのため、最初は低品質のコンテンツをダウンロードするなどしてダウンロード容量と時間を減らすようにしても良い。その際、コンテンツ管理サーバ201側に品質が異なる複数のコンテンツファイルを準備しておく方式と、スケーラブル符号化方式を用いてエンコードしたコンテンツを用意する方法の2通りが考えられる。いずれの場合も、事前のダウンロードを低品質のコンテンツに対して行うことで、容量と時間を削減できる。そして、通信装置100が再生を行う際、事前にダウンロードしておいたコンテンツに置き換えもしくは追加する形で高品質なコンテンツを再生する。
(第1の実施形態の変形例)
第1の実施形態では、メタ情報のコンテンツを区切るチャプタ毎に、開始時刻又は開始バイト数が含まれている例について説明した。しかしながら、メタ情報は、各チャプタ(区分)の開始時刻又は開始バイト数が含まれていることに制限するものではない。このようにメタ情報に、データの区切りの位置を含むのではなく、コンテンツの内部を示す情報のみが含まれていても良い。
この場合、本変形例にかかるダウンロード制御部112は、メタ情報の解析結果に基づいて、コンテンツを区切り、当該区切り位置を特定し、特定した区切り位置に従ってダウンロード制御を行っても良い。なお、ダウンロード手法は、第1の実施形態と同様として説明を省略する。
上述した手法以外にも様々な手法が考えられる。例えば、コンテンツの区切り位置を特定する手法として、一度再生した過去のコンテンツの構造に関する情報を、通信装置100自ら蓄積しておき、当該コンテンツの再利用の際に利用しても良い。
(第2の実施形態)
第1の実施形態にかかる通信装置100では、ダウンロードの対象となる各チャプタの小区間は、チャプタ1から順に選択されていた。しかしながら、このような選択手法に制限するものではない。そこで、第2の実施形態では、通信装置100が、ダウンロード対象となるチャプタの順序を決定する例について説明する。
図19は、第2の実施形態にかかる通信装置1900のブロック構成を示した図である。図19に示すように、通信装置1900は、第1の実施形態の通信装置100と比べて、制御部103が制御部1910に変更された例とする。なお、第1の実施形態と同一の構成については、同一の符号を付与し、説明を省略する。
制御部1910は、第1の実施形態の制御部103と比べて、決定部1911が追加された構成とする。
決定部1911は、コンテンツを構成する複数のチャプタ(区分)に対して、ダウンロード制御部112がダウンロードする順序を決定する。
本実施形態では、制御部103がメタ情報を解析して、抽出した各区分の優先順位に従って、決定部1911がダウンロードする順番を決定する。
ところで、現在、ユーザが、お気に入りのシーンを視聴するために、コンテンツに対して区分を設定し、ネットワークを介して他のユーザと共有する技術が提案されている。さらに、ユーザが設定した区分毎に、視聴数や人気を保持する技術も提案されている。そこで、本実施形態にかかるメタ情報管理サーバ202では、通信装置1900に対して提供するメタ情報に、他のユーザが設定した区分や、視聴数や人気に基づく各区分の優先順位が設定されているものとする。この優先順位が高い区分は、他のユーザからも評判が高い区分である。そのため、通信装置1900で当該コンテンツを視聴するユーザも当該区分について興味を有している可能性が高く、当該区分について優先的に視聴される可能性が高い。
そこで、本実施形態にかかる決定部1911は、メタ情報に含まれていた、このようにユーザが設定した区分と、当該区分の人気順等に基づく優先順位に従って、コンテンツに含まれている各区分のダウンロード順を決定する。
そして、ダウンロード制御部112は、決定部1911に決定されたダウンロード順に従った上で、第1の実施形態と同様に3個の小区間のデータを並行してダウンロードする。
このように、本実施形態にかかる通信装置1900では、決定部1911で決定された順序に従って、小区間のデータをダウンロードすることとした。これにより、ユーザが視聴する可能性の高い小区間のデータを優先的にダウンロードすることが可能となり、コンテンツ移動をする際にシームレスな再生の可能性を向上させることができる。
(第3の実施形態)
次に、第3の実施形態について説明する。図20は、第3の実施形態にかかる通信装置2000のブロック構成を示した図である。図20に示すように、通信装置2000は、第1の実施形態の通信装置100と比べて、制御部1910が制御部2010に変更された例とする。なお、第2の実施形態と同一の構成については、同一の符号を付与し、説明を省略する。
制御部2010は、第2の実施形態の制御部1910と比べて、コマンド送信制御部2011が追加された構成とする。
コマンド送信制御部2011は、図21に示すコンテンツ管理サーバ2101に対する復帰指示や休止指示のコマンドを生成し、通信部102を制御して、当該復帰指示や休止指示を送信制御する。
図21は、第3の実施形態にかかるネットワークを模式的に示した図である。図21に示すように、通信装置2000と、コンテンツ管理サーバ2101と、は、家庭又は事業所内のLAN等の小規模ネットワークで接続されている。このようなネットワーク構成において、コンテンツ管理サーバ2101を常時起動させておくのは、消費電力等の観点から望ましくない。
そこで、本実施形態にかかるコンテンツ管理サーバ2101は、休止状態と、動作中の状態とを切り替え可能とする。その上で、コンテンツ管理サーバ2101は、通信装置2000からの制御指示により、少なくとも動作状態と、休止状態と、の2つの状態の間で状態遷移を可能とした。
このように、コマンド送信制御部2011は、通信装置2000のコンテンツのダウンロード状況に応じてコンテンツ管理サーバ2101の動作状態を制御するように指示を出す機能を有する。その際、コマンド送信制御部2011は、動作状態又は休止状態に遷移させる制御コマンドを生成して、通信部102を介してコンテンツ管理サーバ2101に向けて送信させる機能を有する。
コマンド送信制御部2011は、コンテンツ管理サーバ2101に合わせた制御方法を使用する。また、コマンド送信制御部2011が行う制御内容もコンテンツ管理サーバ2101の能力に依存する。例えば、コンテンツ管理サーバ2101が外部からの指示を受信して「休止状態」(外部からの問い合わせに応答できない状態の総称とする)から「動作状態」(コンテンツを速やかに提供できる状態)に復帰可能とするために、コマンド送信制御部2011は、はコンテンツ管理サーバ2101に応じた復帰指示機能を有している。
例えば、コンテンツ管理サーバ2101がマジックパケット(登録商標)を用いたWake on LANで復帰可能な場合、コマンド送信制御部2011はマジックパケットの生成機能と、通信部102を介したマジックパケットの送信機能と、を備えている。他にも赤外線や電波などの無線媒体、電力線を含む様々な有線媒体を介した復帰指示方法が考えられる。これらの方法で通常の通信とは異なる通信インターフェイスを必要とする場合には、通信装置2000は、通信I/F部101に加えて、復帰指示機能に対応した別の通信インターフェイスも備える必要がある。
なお、通信装置2000が、「休止状態→動作状態」、「動作状態→休止状態」のいずれか一方でも対応する手段を具備しない場合、本実施形態にかかるコマンド送信制御部2011が当該いずれか一方に対応する動作を行わないように実装しても良い。又は対応する手段を具備した別の通信装置に対して、コマンド送信制御部2011が処理の代行を依頼するよう実装しても良い。
そして、コマンド送信制御部2011は、コンテンツ管理サーバ2101に対して、必要に応じて、休止指示を行うためのコマンドを生成する。例えば、コンテンツ管理サーバ2101が、コンテンツをHTTPでダウンロード可能とするサーバとする。そして、コンテンツ管理サーバ2101が、休止状態への指示を、HTTPのメッセージとして受信できる。その場合、コマンド送信制御部2011は、休止指示を行うためのHTTPメッセージを生成して、通信部102を介して送信する機能を有する。
さらにコンテンツ管理サーバ2101が「動作状態」と「休止状態」以外の様々な状態に遷移可能な場合、コマンド送信制御部2011がこれらの状態に遷移するための制御指示の手法を備えていても良い。
なお、コマンド送信制御部2011が、通信I/F部101を介して直接制御指示を送信するか、通信部102に送信を依頼して制御指示を送信するかは、使用する制御手法および実装に依存する事項である。
なお、コンテンツ管理サーバ2101がこのような状態制御機能を備えていることに伴い、通信装置2000に送信するメタ情報を第1の実施形態と異ならせても良い。例えば、メタ情報の形式は第1の実施形態と同様であるが、小区間をサーバの状態遷移の都合に基づいて決定しても良い。すなわち、小区間に対して、各区間の最小のデータサイズとして、コンテンツ管理サーバ2101が「動作状態→休止状態→動作状態」という遷移を行い、エネルギー消費を節約できる最低の再生時間が確保できる長さのデータを定めても良い。また、小区間のデータサイズは、コンテンツ管理サーバ2101と通信装置2000との間の通信路の帯域や帯域遅延積に依存して決定しても良い。
このように遷移に要する時間を通信装置2000が認識するために、本実施形態においては、コンテンツ管理サーバ2101が、通信装置2000に対して、「動作状態→休止状態」の遷移に要する時間と、「休止状態→動作状態」の遷移に要する時間と、が含まれたサーバ情報を、送信する。
サーバ情報は、コンテンツ管理サーバ2101がサポートしている状態(例えば動作状態、休止状態)間での遷移手段(休止指示の方法、復帰指示の方法など)や各状態間での遷移に要する時間などを含んでいる。通信装置2000は、サーバ情報を解析することで、コマンド送信制御部2011が対応可能であるか否かを判断できる。その上、サーバ情報は、コマンド送信制御部2011が、コマンドを送信するタイミングを制御する際にも用いられる。
図22は、コンテンツのダウンロード状況に応じた、コンテンツ管理サーバ2101の動作状態と休止状態との遷移タイミングを説明した図である。図22に示す例では、既にデータ2201がダウンロード済みとする。これにより、再生されていないデータ2202が存在する。この再生されていないデータ2202のサイズに基づいて、コンテンツ管理サーバ2101の状態の切り替え制御を行う。なお、当該切り替え制御の前に、通信装置2000は、コンテンツ管理サーバ2101からサーバ情報を受信し、状態遷移に要する時間を認識しているものとする。
さらに、通信装置2000の制御部2010は、コンテンツ管理サーバ2101との間のネットワークの回線速度と、コンテンツのビットレートと、に基づいて、コンテンツ管理サーバ2101が状態遷移(例えば、動作状態→休止状態→動作状態)に要する時間の間、コンテンツをシームレスに再生するために必要なデータサイズを特定する。
そして、図22に示すように、通信装置2000は、当該コンテンツのチャプタ1について、データサイズ2201だけダウンロード済みであり、未再生のデータサイズ2202とする。
そして、制御部2010は、未再生のデータサイズ2202が、状態遷移(例えば、動作状態→休止状態→動作状態)に要する時間をシームレスに再生するために必要なデータサイズより大きいと判定した場合、コマンド送信制御部2011が、休止状態に遷移するためのコマンドを生成し、コンテンツ管理サーバ2101に対して通信部102を介して送信制御する。
そして、コンテンツの再生2203がなされた後、制御部2010は、未再生のデータサイズ2204が、状態遷移(例えば、休止状態→動作状態)に要する時間をシームレスに再生するために必要なデータサイズより小さくならない、所定のタイミングで、コマンド送信制御部2011が、動作状態に遷移するためのコマンドを生成し、コンテンツ管理サーバ2101に対して通信部102を介して送信制御する。
なお、制御部2010による判定では、データサイズを用いることに制限するものではなく、再生時間を用いて判定を行っても良い。後述する図25では、データサイズの代わりに再生時間を用いた例について説明する。このようにコンテンツがシームレスに再生できるか否かの判定ができれば、データサイズを用いても、再生時間を用いても良い。
また、ユーザインターフェイス部106で、他のチャプタに移動する操作を受け付けた場合も、移動先のチャプタの未再生のデータサイズ2205に基づいて、コマンド送信制御部2011が、状態遷移するためのコマンドを生成し、コンテンツ管理サーバ2101に対して通信部102を介して送信制御する。コマンドを生成する条件については、上述した条件と同様として説明を省略する。コマンド送信制御部2011が、コマンドの生成及び送信を行う際に、5,10秒ぐらいの余裕を持たせても良い。
図23は、本実施形態の通信装置2000とコンテンツ管理サーバ2101との間の動作を表したシーケンスを示した図である。図23に示すシーケンスでは、まず通信装置2000の通信部102が、制御部2010の制御に従って、コンテンツ管理サーバ2101に対して、サーバ情報の要求を送信する(ステップS2301)。これにより、コンテンツ管理サーバ2101が、通信装置2000に対して、サーバ情報を送信する(ステップS2302)。このサーバ情報は、記憶部104に記憶される。
そして、通信装置2000の制御部2010は、記憶部104に記憶されたサーバ情報を解析する(ステップS2303)。これにより、制御部2010は、コンテンツ管理サーバ2101を動作状態に遷移させるコマンド、休止状態に遷移させるコマンド、さらにコンテンツ管理サーバ2101の状態遷移に要する時間を認識できる。
その後、第1の実施形態の図6で示した処理(ステップS601〜S610)と同様の手順で再生の開始まで行われる(ステップS2304〜2313)。
そして、通信装置2000の通信部102が、チャプタ8(Ch.8)の最初の小区間における最後のデータを受信する(ステップS2314)。その後、制御部2010が、コンテンツ管理サーバ2101を休止させるべきか否かを判定する(ステップS2315)。判定手法は上述した通りとして説明を省略する。
休止させるべきと判定した場合、コマンド送信制御部2011が、休止状態に遷移させるための休止指示コマンドを生成し、通信部102を介してコンテンツ管理サーバ2101に対して、休止指示コマンドを送信する(ステップS2316)。
その後、制御部2010が、コンテンツ管理サーバ2101の復帰が必要か否かを判定する(ステップS2317)。この判定基準は、上述した基準と同様として説明を省略する。以降、復帰が必要と判定された場合について説明する。
まず、コマンド送信制御部2011が、動作状態に復帰させるための復帰指示コマンドを生成し、コンテンツ管理サーバ2101に送信する(ステップS2318)。これにより、コンテンツ管理サーバ2101が動作状態に移動する。
その後、通信装置2000は動作状態に遷移するまでの時間を待機する。なお、当該待機時間はサーバ情報に基づいて決定される。そして、ダウンロード制御部112が、通信部102を制御して、チャプタ1の2番目(Ch.1−2)の小区間についてのダウンロード要求を、コンテンツ管理サーバ2101に対して送信する(ステップS2319)。これにより、ダウンロード制御部112が通信部102を制御して、コンテンツ管理サーバ2101から、チャプタ1の2番目の小区間のデータをダウンロードする(ステップS2320)。
このように、本実施形態にかかる通信装置2000は、コンテンツ管理サーバ2101からのダウンロードが不要と判断したタイミングにおいて休止指示のコマンドを送信し、必要と判断したタイミングにおいて復帰指示のコマンドを送信する。これにより、コンテンツ管理サーバ2101側の不要な待機状態を減らすことができる。
本実施形態にかかる通信装置2000の再生開始までの処理手順について説明する。図24は、通信装置2000の再生開始までのフローチャートを示した図である。本実施形態では、制御部2010による制御で、通信部102がサーバ情報を予め要求しておく必要があるが、すでにサーバ情報を得ているサーバについては再取得する必要が無い。そこで、制御部2010が、すでにサーバ情報を得ている既知のサーバであるか否かを判定する(ステップS2401)。既存のサーバと判定した場合(ステップS2401:Yes)、ステップS2405以降の処理を行う。なお、当該判定は、必須ではなく毎回取得しても良い。
一方、制御部2010が、サーバ情報の取得が必要と判断した場合(ステップS2401:No)、制御部2010がサーバ情報の取得要求を生成し、コンテンツ管理サーバ2101に送信する(ステップS2402)。これにより、通信部102が、取得要求先のコンテンツ管理サーバ2101から、サーバ情報を受信し、記憶部104に保存する(ステップS2403)。その後、制御部2010が、取得したサーバ情報を解析し、保存する(S2404)。
この後の処理については、第1の実施形態と同様の手順(ステップS701〜S713)で、メタ情報のタウンロード及びコンテンツのダウンロードが行われ、コンテンツの再生が開始される(ステップS2405〜S2408)。
図24のステップS2404で示した制御部2010によるサーバ情報の解析結果について説明する。図26は、制御部2010によるサーバ情報の解析結果として記憶部104に保存された情報の第1の例を示した図である。図26に示す例では、コンテンツ管理サーバ2101が2つの状態「動作」と「休止」とを備えている。そして、それぞれの状態毎に、各状態間での遷移手段と、遷移時間と、が対応付けて記憶されている。
図27は、制御部2010によるサーバ情報の解析結果として記憶部104に保存された情報の第2の例を示した図である。図27に示す例では、状態が「動作」、「休止1」及び「休止2」の3種類の状態を備えている。そして、図26と同様に、それぞれの状態毎に、各状態間での遷移手段と、遷移時間と、が対応付けて記憶されている。なお、2つの状態間での遷移ができない場合は遷移手段として「遷移不可」を設定されているものとする。
図28は、図27に示すサーバ情報に従った各状態の遷移を示した図である。図28に示すように、動作状態及び休止1では、HTTPによるコマンドで、状態遷移を行うことができる。これに対し、休止2では、HTTPによるコマンドを認識できないため、Wake on LANにより起動させることとする。
なお、サーバ情報はいずれの形式でも良いが、例えば、XML形式を用いることができる。
本実施形態にかかる通信装置2000の再生中の処理手順について説明する。図25は、通信装置2000の再生中のフローチャートを示した図である。まずは、図8のステップS801〜S806までの処理と同様に、未ダウンロードの小区間のデータD*1のダウンロードが開始される(ステップS2501〜S2506)。ただし、図8と異なる点として、トリガーとなるイベントとして、再生中の区間に含まれるダウンロード済みの小区間の再生可能な時間が、閾値よりも小さくなった場合を追加し、当該イベントの発生に対応する処理が、ステップS2513〜S2516に追加されたものとする。なお、このイベントは、休止中のコンテンツ管理サーバ2101を復帰させるためのイベントである。このイベントが発生した際の処理については後述する。
そして、ステップS2504で、制御部2010が、小区間のデータD*1で未ダウンロードのものが無いと判定した場合(ステップS2504:No)の場合、制御部2010は、再生中の区間でダウンロード済みの小区間で、未再生な部分による再生可能な時間と、コンテンツ管理サーバ2101が状態遷移を経て、復帰するまでに要する時間(休止遷移時間及び復帰遷移時間の合計)と、を比較する(ステップS2507)。さらに復帰するまでに要する時間として、消費電力の削減効果が得られる最低時間などの他のパラメータを加えても良い。
そして、制御部2010が、再生時間の方が長いと判定した場合(ステップS2507:Yes)、制御部2010が、現在のダウンロードカウンタnが‘0'か否かを判定する(ステップS2512)。制御部2010が、‘0'ではないと判定した場合(ステップS2512:No)、イベントの発生まで待機する(ステップS2501)。一方、制御部2010が、‘0’であると判定した場合(ステップS2512:Yes)、コマンド送信制御部2011が、コンテンツ管理サーバ2101に対して、休止状態に遷移させる休止指示コマンドの生成、送信を行う(ステップS2511)。なお、ステップS2512におけるダウンロードカウンタnによる判定処理は、制御部2010が記憶部104に保存されているカウンタ値を参照することで行う。また、休止指示コマンドの送信は、上述した通りとする。休止指示コマンドによる送信は、サーバ情報から読み出した設定に基づいて行う。
また、ステップS2507で、制御部2010が、再生時間の方が短いと判定した場合い(ステップS2507:No)、未ダウンロードの小区間のデータD*y(y!=1)があるか否かを判定する(ステップS2508)。
そして、制御部2010が、未ダウンロードの小区間のデータD*y(y!=1)が無いと判定した場合(ステップS2508:No)、全ての小区間のデータD*y(y!=1)がダウンロード完了していることになるため、コマンド送信制御部2011が、コンテンツ管理サーバ2101に対して、休止指示コマンドの生成、送信を行う(ステップS2511)。
また、ステップS2508で、未ダウンロードの小区間のデータD*y(y!=1)があると判定した場合(ステップS2508:Yes)、第1の実施形態と同様(図8のステップS808及びステップS809)に小区間のデータD*y(y!=1)のダウンロードの開始と、ダウンロードカウンタnへの‘1’追加と、を行う(ステップS2509、ステップS2510)。
ステップS2501でイベント発生の基準となる再生時間の算出は、上述したようにメタ情報に基づいて行う。つまり、メタ情報に含まれている各区間の時間情報を用いて、ダウンロードしたコンテンツのデータサイズと、再生時間と、の関係を導出する。例えば、コンテンツがCBR方式でエンコードされていれば、区間の再生時間を区間のバイト数で割ればバイト当たりの再生時間を算出できる。VBR方式でエンコードされている場合にも小区間毎の平均的なビットレートを用いれば、CBRと同様の手法でバイト当たりの再生時間を算出できる。また、コンテンツを再生したことで得られる情報を用いてバイト数あたりの再生時間を算出しても良い。いずれかの方法で算出した再生時間の情報を使って、状態遷移に要する時間との比較を行う。
そして、ステップS2502において、制御部2010が、「再生中の区間の再生時間が少ない場合」のイベントが発生したと判定した場合(ステップS2502)、通信装置2000のコマンド送信制御部2011が、通信部102を制御して、コンテンツ管理サーバ2101に対して、動作状態に遷移する復帰指示コマンドを直ちに送信する(ステップS2513)。この復帰指示コマンドは、サーバ情報に基づいて生成する。
その後、制御部2010が、サーバ情報に基づき、コンテンツ管理サーバ2101が動作状態への復帰を待機する一方、再生部107が、コンテンツの再生を継続して行う(ステップS2514)。待機が完了すると、ダウンロード制御部112は、コンテンツ管理サーバ2101に対して、小区間のデータのダウンロードを要求する。これにより、ダウンロード制御部112は、コンテンツ管理サーバ2101から小区間のデータのダウンロードを開始する(ステップS2515)。ここで要求する小区間のデータは、現在の再生が継続した場合に必要になる、未ダウンロードの小区間のうち、最も早く再生が行われる小区間のデータとする。そして、制御部2010が、ダウンロードカウンタnに‘1’追加する(ステップS2516)。
さらに、本実施形態では、コンテンツ管理サーバ2101と通信装置2000との双方がダウンロードを任意の場所で停止・再開できる場合には、その機能を利用して任意のタイミングでコンテンツ管理サーバ2101を休止状態にしても良い。すなわち、図25のダウンロードカウンタnが‘0’であることを判定する処理の代わりに、通信中の全てのダウンロードを停止させて、コンテンツ管理サーバ2101に休止状態に遷移するように指示するように実現しても良い。
そして、ステップS2502において、制御部2010が、「Dx1に移動するユーザ操作」のイベントが発生したと判定した場合(ステップS2502)、第1の実施形態の図8のステップS810〜S823の処理と同様、小区間のデータDx1の再生と各小区間のダウンロードを行う(ステップS2517)。
このように第3の実施形態では、第1の実施形態の効果の他に、コンテンツを提供するコンテンツ管理サーバ2101を休止状態に遷移させることで、システム全体としての消費電力を低減できる。第1の実施形態で述べた方法を使用して小区間ごとにダウンロードしているため、コンテンツ管理サーバ2101の状態遷移に要する時間を隠蔽することもできる。
上述した実施形態及び変形例においては、コンテンツをダウンロードする際に、当該コンテンツを分割する区間毎に最初の小区間をダウンロードすることとした。これにより、コンテンツの再生中に、区間の移動の選択を受け付けた場合でも、移動先の位置からのコンテンツの再生を停止することなく実行できる。これによりユーザの利便性を向上させることができる。
上述した実施形態の通信装置は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
上述した実施形態の通信装置で実行される通信制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、上述した実施形態の通信装置で実行される通信制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の実施形態の通信装置で実行される通信制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施形態の通信制御プログラムを、ROM等に予め組み込んで提供するように構成しても良い。
本実施形態の通信装置で実行される通信制御プログラムは、上述した各部(通信部、制御部、再生部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から通信制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、通信部、制御部、再生部が主記憶装置上に生成されるようになっている。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。