(57)【要約】【課題】データ伝送の遅延を少なくさせることができるようにする。【解決手段】受信部２５２ｂは、ネットワークを介してサーバから送信されてくるストリーミングデータを受信し、バッファ２５５は、受信されたストリーミングデータを一時的に蓄積した後に出力する。制御部２５１は、ユーザによってストリーミングデータの切り替え要求の操作が行なわれたか否かを検出し、再生速度制御部２５６は、バッファ２５５における出力速度を制御するとともに、制御部２５１により操作が行われたことが検出された場合には、バッファ２５５に蓄積されているストリーミングデータが早送りされるように、蓄積されているストリーミングデータの再生速度を制御することで、データ伝送の遅延を少なくさせることができる。本発明は、受信装置に適用できる。【選択図】図１１
2008022507.tif 000002
【特許請求の範囲】
【請求項１】
送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置において、
前記送信装置から送信されてくるストリーミングデータを受信する受信部と、
受信された前記ストリーミングデータを一時的に蓄積した後に出力する蓄積部と、
ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを検出する操作検出部と、
前記蓄積部における出力速度を制御する制御部であって、前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する制御部と
を備える受信装置。
【請求項２】
操作検出部により前記操作が行われたことが検出された場合、前記操作が行われたことを示す通知を前記送信装置に送信し、前記送信装置において、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加させる送信部をさらに備え、
前記制御部は、前記蓄積部に蓄積されている前記ストリーミングデータに付加されている付加情報が検出されるまで、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御する
請求項１に記載の受信装置。
【請求項３】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御する
請求項２に記載の受信装置。
【請求項４】
操作検出部により前記操作が行われたことが検出された場合、前記操作が行われたことを示す通知を前記送信装置に送信し、前記送信装置において、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加させる送信部をさらに備え、
前記制御部は、前記蓄積部に蓄積されている前記ストリーミングデータに付加されている付加情報が当該受信装置に到着したことが検出されたてから、蓄積されている前記ストリーミングデータの早送りを開始させ、前記付加情報が付加されている部分まで所定の時間で再生されるように前記再生速度を制御する
請求項１に記載の受信装置。
【請求項５】
前記所定の時間は、１秒以下である
請求項４に記載の受信装置。
【請求項６】
前記制御部は、前記ストリーミングデータの早送りが完了した後に、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御する
請求項４に記載の受信装置。
【請求項７】
前記操作が行なわれたことが検出された場合、前記蓄積部に蓄積されている前記ストリーミングデータのなかの、前記送信装置から最後に受信した前記ストリーミングデータに対して、前記操作が行われたことを示す付加情報を付加する情報付加部をさらに備え、
前記制御部は、蓄積されている前記ストリーミングデータに付加されている前記付加情報が検出されるまで、蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御する
請求項１に記載の受信装置。
【請求項８】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御する
請求項７に記載の受信装置。
【請求項９】
前記操作が行なわれたことが検出された場合、前記蓄積部に蓄積されている前記ストリーミングデータのなかの、前記送信装置から最後に受信した前記ストリーミングデータに付加されている時刻を記憶する記憶部をさらに備え、
前記制御部は、再生される前記ストリーミングデータに付加されている時刻が、記憶されている前記時刻を経過するまで、蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御する
請求項１に記載の受信装置。
【請求項１０】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御する
請求項９に記載の受信装置。
【請求項１１】
ユーザによって操作される、前記ストリーミングデータを送信する機器の切り替え、チャンネルの切り替え、または前記送信装置に接続された外部機器の再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作部をさらに備え、
前記操作は、前記ストリーミングデータを送信する機器の切り替えを指示する操作、チャンネルの切り替えを指示する操作、または前記送信装置に接続された外部機器の再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作である
請求項１に記載の受信装置。
【請求項１２】
送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置の受信方法において、
前記送信装置から送信されてくるストリーミングデータを受信部で受信し、
受信された前記ストリーミングデータを蓄積部に一時的に蓄積した後に出力し、
ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを操作検出部により検出し、
前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する
各ステップを含む受信方法。
【請求項１３】
送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置の制御を、コンピュータに実行させるプログラムにおいて、
前記送信装置から送信されてくるストリーミングデータを受信部で受信し、
受信された前記ストリーミングデータを蓄積部に一時的に蓄積した後に出力し、
ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを操作検出部により検出し、
前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する
各ステップをコンピュータに実行させるためのプログラム。
【請求項１４】
受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置において、
前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加する情報付加部と、
前記付加情報が付加されたストリーミングデータを前記受信装置に送信する送信部と
を備える送信装置。
【請求項１５】
前記ストリーミングデータを一時的に蓄積する蓄積部をさらに備え、
前記蓄積部は、前記操作が行われた場合、蓄積されている前記ストリーミングデータをフラッシュする
請求項１４に記載の送信装置。
【請求項１６】
前記蓄積部は、前記操作が行われた場合、１枚の画像を完全に構成できる画像だけを残してフラッシュする
請求項１５に記載の送信装置。
【請求項１７】
前記受信装置から送信されてくる、前記操作を行われたことを示す通知を受信する受信部をさらに備え、
前記情報付加部は、受信した前記通知にしたがって、前記付加情報を前記ストリーミングデータに付加する
請求項１４に記載の送信装置。
【請求項１８】
前記操作は、前記ストリーミングデータを送信する機器の切り替えを指示する操作、チャンネルの切り替えを指示する操作、または前記ストリーミングデータに対する、再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作である
請求項１４に記載の送信装置。
【請求項１９】
受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置の送信方法において、
前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を情報付加部により前記ストリーミングデータに付加し、
前記付加情報が付加されたストリーミングデータを送信部により前記受信装置に送信する
各ステップを含む送信方法。
【請求項２０】
受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置の制御を、コンピュータに実行させるプログラムにおいて、
前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を情報付加部により前記ストリーミングデータに付加し、
前記付加情報が付加されたストリーミングデータを送信部により前記受信装置に送信する
各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置および方法、送信装置および方法、並びにプログラムに関し、特に、データ伝送の遅延を少なくさせることができるようにした受信装置および方法、送信装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、映像や音声などのデータをストリーミング方式で配信するサービスが多く提供されるようになってきた。一般的に、ストリーミング方式のストリーミングデータを受信する端末においては、ネットワークにおけるデータの送受信の不安定さを解消し、ストリーミングデータを滑らかに再生するため、ストリーミングデータを一時的に蓄積するバッファが設けられている。
【０００３】
図１は、従来のストリーミングシステム１の構成を示すブロック図である。
【０００４】
従来のストリーミングシステム１においては、映像や音声などのストリーミングデータを配信するサーバ１１は、クライアント１３からの要求に応じて、ネットワーク１２を介してストリーミングデータをクライアント１３に送信する。
【０００５】
なお、サーバ１１は、例えば、テレビジョンチューナを内蔵するとともに、DVD（Digital Versatile Disk）プレーヤなどの外部機器からの画音信号を受信できるようになっている。さらに、外部から供給される制御信号により、テレビジョンチューナからの画音信号とDVDプレーヤからの画音信号を切り替えたり、テレビジョンチューナのチャンネルを切り替えたりすることができるようになっている。また、サーバ１１を介して、DVDプレーヤなどの外部機器の動作を制御できるようになっている。
【０００６】
クライアント１３においては、図２に示すように、受信部２１は、ネットワーク１２を介してサーバ１１から送信されるストリーミングデータを受信し、そのストリーミングデータを復調して、バッファ２２に蓄積させる。
【０００７】
バッファ２２に蓄積されたストリーミングデータは、デコーダ２３が処理を行うタイミングに応じて、デコーダ２３に供給される。デコーダ２３は、バッファ２２より供給されるストリーミングデータから映像データと音声データを個別に復号し、復号されたストリーミングデータをバッファ２４に蓄積させる。
【０００８】
そして、バッファ２４に蓄積されたストリーミングデータは、再生部２６に供給される。再生部２６は、バッファ２４から供給されるストリーミングデータを再生し、その再生されたストリーミングデータを出力部２７に供給する。
【０００９】
出力部２７は、画像を表示するディスプレイや音声を出力するスピーカなどからなり、ストリーミングデータによる画像と、その画像に対応する音声を出力する。
【００１０】
ここで、バッファ２４は、ネットワーク１２の通信状態が安定している場合、クライアント１３がストリーミングデータを受信するための十分な通信速度を確保できるので、図３のバッファ２４におけるハッチングされたストリーミングデータの領域で示すように、十分なバッファ量を蓄積する。その後、ネットワーク１２の通信状態が不安定になった場合、クライアント１３がストリーミングデータを受信するための通信速度が低下するので、図４のバッファ２４におけるハッチングされたストリーミングデータの領域で示すように、蓄積しているバッファ量は減少する。
【００１１】
このように、バッファ２４が蓄積しているストリーミングデータのバッファ量は減少するが、再生部２６は、再生速度制御部２５から供給される、バッファ２４に蓄積されているストリーミングデータを再生するので、バッファ２４に蓄積されているストリーミングデータのバッファ量が減少したとしても再生動作が停止することなく、ストリーミングデータを滑らかに再生できる。すなわち、ストリーミングデータは、一度、バッファ２４に蓄積され、一定時間経過した後に、再生部２６により再生される。
【００１２】
なお、図３および図４では、説明を簡略化するために、図２のクライアント１３を構成するブロックのうち、バッファ２４と再生部２６だけを表現しているが、バッファ２２についても同様である。また、図３および図４においては、バッファ２４の下側に付された三角印は、バッファ量を示しており、図中左側から図中右側にいくほどその量が大きくなることを示している。
【００１３】
ところで、上述したように、再生部２６は、バッファ２４に蓄積され、一定時間経過した後のストリーミングデータを再生するので、ユーザによって、テレビジョンチューナのチャンネルの切り替えなどの指示を行うための所定の操作がされた場合、バッファ２４に蓄積されている操作前のストリーミングデータの再生が終わってからでないと、その操作に対応する操作後のストリーミングデータの再生を行うことができない。
【００１４】
このため、ユーザは、バッファ２４に蓄積されている操作前のストリーミングデータを一定時間視聴した後で、すなわち、操作前のストリーミングデータの再生が終了してから、操作後のストリーミングデータを視聴することになる。
【００１５】
図５は、ユーザ操作時における、バッファ２４に蓄積されるストリーミングデータを説明する図である。
【００１６】
図５においては、図中上側から図中下側が時間方向となり、図中の１番上に示される、サーバ１１、ネットワーク１２、バッファ２４、および再生部２６の状態を「状態１」と称し、その状態１の下側のサーバ１１、ネットワーク１２、バッファ２４、および再生部２６の状態を「状態２」と称し、順次、それらの状態を、「状態３」、「状態４」、「状態５」と称する。すなわち、図５においては、サーバ１１、ネットワーク１２、バッファ２４、および再生部２６は、それぞれ、時間の経過とともに、状態１、状態２、状態３、状態４、状態５の順に状態を遷移することになる。
【００１７】
なお、図５では、図３および図４と同様に、説明を簡略化するために、図２のクライアント１３を構成するブロックのうち、バッファ２４と再生部２６だけを表現している。また、図中下側に示すように、図中の白四角は、ユーザによる操作前のストリーミングデータを示し、図中の黒四角は、ユーザによる操作後のストリーミングデータを示している。
【００１８】
図５において、サーバ１１は、状態１に示すように、ユーザによって、チャンネルの切り替えなどの所定の操作がされた場合、クライアント１３からのチャンネル切り替えの通知に応じて、送信するストリーミングデータを、操作前のストリーミングデータから操作後のストリーミングデータに切り替える。このとき、クライアント１３においては、サーバ１１から操作後のストリーミングデータを受信していないので、バッファ２４は、操作前のストリーミングデータを蓄積し、再生部２６は、操作前のストリーミングデータを再生する。
【００１９】
その後、クライアント１３においては、ネットワーク１２を介して、サーバ１１から操作後のストリーミングデータを受信すると、状態２乃至状態４に示すように、バッファ２４は、FIFO（First-In First-Out）型のメモリであり、古く蓄積した順にデータを読み出すので、操作前のストリーミングデータを順次読み出す。このとき、再生部２６は、バッファ２４から読み出したデータが全て操作前のストリーミングデータであるので、その操作前のストリーミングデータを再生する。
【００２０】
そして、再生部２６は、状態５に示すように、バッファ２４に蓄積されたストリーミングデータのなかで、操作後のストリーミングデータが最も古いデータとなったとき、バッファ２４からその操作後のストリーミングデータを読み出し、再生する。
【００２１】
以上のようにして、従来のストリーミングシステム１においては、クライアント１３は、ネットワーク１２を介してサーバ１１からのストリーミングデータを受信し、再生していた。このため、ユーザによって、テレビジョンチューナのチャンネルの切り替えなどの指示を行うための所定の操作がされた場合、バッファ２４に蓄積されている操作前のストリーミングデータの再生が終わってからでないと、その操作に対応する操作後のストリーミングデータの再生を行うことができないという問題があった。
【００２２】
また、ユーザ操作時に、操作前のストリーミングデータを蓄積しているバッファ２４の内容を捨てる、いわゆるフラッシュすることで、操作後のストリーミングデータを遅延なく再生させる方法がある。
【００２３】
図６は、ユーザ操作時における、バッファ２４のフラッシュを説明する図である。なお、図６においては、説明を簡略にするために、クライアント１３の構成要素として、バッファ２４と再生部２６のみを図示している。
【００２４】
図６においては、図５と同様に、図中の１番上に示される、サーバ１１、ネットワーク１２、バッファ２４、再生部２６の状態を「状態１」と称し、順次、それらの状態を、「状態２」、「状態３」と称する。すなわち、図６においては、サーバ１１、ネットワーク１２、バッファ２４、再生部２６は、それぞれ、時間の経過とともに、状態１、状態２、状態３の順に状態を遷移することになる。
【００２５】
図６において、サーバ１１は、状態１に示すように、ユーザによって、チャンネルの切り替えなどの所定の操作がされた場合、クライアント１３からのチャンネル切り替えの通知に応じて、送信するストリーミングデータを、操作前のストリーミングデータから操作後のストリーミングデータに切り替える。このとき、クライアント１３においては、バッファ２４は、フラッシュされ、再生部２６は、操作前のストリーミングデータを再生する。
【００２６】
その後、クライアント１３においては、ネットワーク１２を介して、サーバ１１から操作後のストリーミングデータを受信すると、バッファ２４は、状態２に示すように、フラッシュされているので、バッファ２４に最も古く蓄積されたストリーミングデータとして、操作後のストリーミングデータを蓄積する。そして、再生部２６は、状態３に示すように、フラッシュされたバッファ２４から操作後のストリーミングデータを直ぐに読み出し、再生する。
【００２７】
このように、図６に示されるバッファ２４のフラッシュを行う従来のクライアント１３においては、バッファ２４は、ユーザによって所定の操作がされた場合、蓄積している操作前のストリーミングデータをフラッシュしてから操作後のストリーミングデータを蓄積し、再生部２６は、蓄積されている操作後のストリーミングデータを再生していた。
【００２８】
また、本出願人は、リモートコントローラが操作された場合、オーバーフロー閾値を通常の閾値よりも小さい操作時の閾値に変更し、バッファ内のストリーミングデータの量が操作時の閾値を超えていると判定された場合、再生処理を速くするように制御することで、コンテンツを表示装置に表示させるまでの時間を短縮させるデータ配信システムを先に提案している（例えば、特許文献１参照）。
【００２９】
【特許文献１】特開２００４−３５６６９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００３０】
しかしながら、先に述べたように、図５に示されるクライアント１３においては、ユーザ操作時において、バッファに蓄積されている操作前のストリーミングデータを再生してから操作後のストリーミングデータを再生するので、直ぐには操作後のストリーミングデータに切り替わらないため、ユーザ操作が直ちに反映されず、このデータ伝送の遅延により操作性が悪くなるという問題があった。
【００３１】
具体的には、図５に示したように、クライアント１３においては、再生部２６は、バッファ２４に蓄積され、一定時間経過した後のストリーミングデータを再生するので、ユーザによって所定の操作がされた場合、バッファ２４に蓄積されている操作前のストリーミングデータの再生が終わってからでないと、その操作に対応する操作後のストリーミングデータの再生を行うことができないため、操作性が悪くなっていた。
【００３２】
この問題を解決するために、先に説明した図６に示したように、ユーザ操作時において、操作前のストリーミングデータを蓄積しているバッファ２４をフラッシュすることで、操作後のストリーミングデータを即座に再生させる方法が提案されている。
【００３３】
この方法により、操作前のストリーミングデータを蓄積しているバッファ２４をフラッシュして、サーバ１１からの操作後のストリーミングデータを即座に再生することはできるが、フラッシュすることによって失われた操作前のストリーミングデータを再生することができなくなるという問題も出てくる。すなわち、操作前のストリーミングデータが失われることにより、ユーザは、フラッシュされた部分の画像データを視聴することができず、さらに、時間的に断裂した音声を視聴することになるという問題が出てくる。
【００３４】
特に、ユーザによって、例えば、サーバ１１に接続されたDVDレコーダなどの早送り、巻き戻し、一時停止、スロー再生などの同一コンテンツ内における再生スピードを変更する指示がクライアント１３側で行われた場合、操作前のストリーミングデータと操作後ストリーミングデータとの間で、時間的な断裂が生じ、ユーザによる操作に不便が生じる可能性が出てくる。例えば、図７に示すように、位置１と位置２との間の操作前のストリーミングデータがフラッシュされた場合、位置１のストリーミングデータを再生しているときに、ユーザによって一時停止の操作がされると、位置１と位置２との間の操作前のストリーミングデータがフラッシュされており存在しないので、位置２で一時停止したストリーミングデータが視聴されることになる。
【００３５】
本発明はこのような状況に鑑みてなされたものであり、ユーザ操作時に、バッファに蓄積されているストリーミングデータの再生速度を動的に変化させることにより、データ伝送の遅延を少なくさせるとともに、データが時間的に断裂することがないようにするものである。
【課題を解決するための手段】
【００３６】
本発明の第１の側面の受信装置は、送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置において、前記送信装置から送信されてくるストリーミングデータを受信する受信部と、受信された前記ストリーミングデータを一時的に蓄積した後に出力する蓄積部と、ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを検出する操作検出部と、前記蓄積部における出力速度を制御する制御部であって、前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する制御部とを備える。
【００３７】
操作検出部により前記操作が行われたことが検出された場合、前記操作が行われたことを示す通知を前記送信装置に送信し、前記送信装置において、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加させる送信部をさらに設け、前記制御部は、前記蓄積部に蓄積されている前記ストリーミングデータに付加されている付加情報が検出されるまで、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御することができる。
【００３８】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００３９】
操作検出部により前記操作が行われたことが検出された場合、前記操作が行われたことを示す通知を前記送信装置に送信し、前記送信装置において、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加させる送信部をさらに設け、前記制御部は、前記蓄積部に蓄積されている前記ストリーミングデータに付加されている付加情報が当該受信装置に到着したことが検出されたてから、蓄積されている前記ストリーミングデータの早送りを開始させ、前記付加情報が付加されている部分まで所定の時間で再生されるように前記再生速度を制御することができる。
【００４０】
前記所定の時間は、１秒以下であるようにすることができる。
【００４１】
前記制御部は、前記ストリーミングデータの早送りが完了した後に、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００４２】
前記操作が行なわれたことが検出された場合、前記蓄積部に蓄積されている前記ストリーミングデータのなかの、前記送信装置から最後に受信した前記ストリーミングデータに対して、前記操作が行われたことを示す付加情報を付加する情報付加部をさらに設け、前記制御部は、蓄積されている前記ストリーミングデータに付加されている前記付加情報が検出されるまで、蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御することができる。
【００４３】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００４４】
前記操作が行なわれたことが検出された場合、前記蓄積部に蓄積されている前記ストリーミングデータのなかの、前記送信装置から最後に受信した前記ストリーミングデータに付加されている時刻を記憶する記憶部をさらに設け、前記制御部は、再生される前記ストリーミングデータに付加されている時刻が、記憶されている前記時刻を経過するまで、蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御することができる。
【００４５】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００４６】
ユーザによって操作される、前記ストリーミングデータを送信する機器の切り替え、チャンネルの切り替え、または前記送信装置に接続された外部機器の再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作部をさらに備え、
前記操作は、前記ストリーミングデータを送信する機器の切り替えを指示する操作、チャンネルの切り替えを指示する操作、または前記送信装置に接続された外部機器の再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作であるようにすることができる。
【００４７】
本発明の第１の側面の受信方法は、送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置の受信方法において、前記送信装置から送信されてくるストリーミングデータを受信部で受信し、受信された前記ストリーミングデータを蓄積部に一時的に蓄積した後に出力し、ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを操作検出部により検出し、前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する。
【００４８】
本発明の第１の側面のプログラムは、送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置の制御を、コンピュータに実行させるプログラムにおいて、前記送信装置から送信されてくるストリーミングデータを受信部で受信し、受信された前記ストリーミングデータを蓄積部に一時的に蓄積した後に出力し、ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを操作検出部により検出し、前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する。
【００４９】
本発明の第１の側面においては、前記送信装置から送信されてくるストリーミングデータが受信され、受信された前記ストリーミングデータが一時的に蓄積した後に出力され、ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かが検出され、出力速度が制御されるとともに、前記操作が行われたことが検出された場合には、蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度が制御される。
【００５０】
本発明の第２の側面の送信装置は、受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置において、前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加する情報付加部と、前記付加情報が付加されたストリーミングデータを前記受信装置に送信する送信部とを備える。
【００５１】
前記ストリーミングデータを一時的に蓄積する蓄積部をさらに設け、前記蓄積部は、前記操作が行われた場合、蓄積されている前記ストリーミングデータをフラッシュすることができる。
【００５２】
前記蓄積部は、前記操作が行われた場合、１枚の画像を完全に構成できる画像だけを残してフラッシュすることができる。
【００５３】
前記受信装置から送信されてくる、前記操作を行われたことを示す通知を受信する受信部をさらに設け、前記情報付加部は、受信した前記通知にしたがって、前記付加情報を前記ストリーミングデータに付加することができる。
【００５４】
前記操作は、前記ストリーミングデータを送信する機器の切り替えを指示する操作、チャンネルの切り替えを指示する操作、または前記ストリーミングデータに対する、再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作であるようにすることができる。
【００５５】
本発明の第２の側面の送信方法は、受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置の送信方法において、前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を情報付加部により前記ストリーミングデータに付加し、前記付加情報が付加されたストリーミングデータを送信部により前記受信装置に送信する。
【００５６】
本発明の第２の側面のプログラムは、受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置の制御を、コンピュータに実行させるプログラムにおいて、前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を情報付加部により前記ストリーミングデータに付加し、前記付加情報が付加されたストリーミングデータを送信部により前記受信装置に送信する。
【００５７】
本発明の第２の側面においては、前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報が前記ストリーミングデータに付加され、前記付加情報が付加されたストリーミングデータが前記受信装置に送信される。
【発明の効果】
【００５８】
以上のように、本発明の第１の側面によれば、データ伝送の遅延を少なくさせることができるとともに、データが時間的に断裂することがないようにすることができる。
【００５９】
本発明の第２の側面によれば、データ伝送の遅延を少なくさせることができるとともに、データが時間的に断裂することがないようにすることができる。
【発明を実施するための最良の形態】
【００６０】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００６１】
本発明の第１の側面の受信装置は、送信装置（例えば、図８のサーバ１１１）から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置（例えば、図８のクライアント１１４）において、前記送信装置から送信されてくるストリーミングデータを受信する受信部（例えば、図１１の受信部２５２ｂ）と、受信された前記ストリーミングデータを一時的に蓄積した後に出力する蓄積部（例えば、図１１のバッファ２５５）と、ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを検出する操作検出部（例えば、図１１の制御部２５１）と、前記蓄積部における出力速度を制御する制御部であって、前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する制御部（例えば、図１１の再生速度制御部２５６）とを備える。
【００６２】
操作検出部により前記操作が行われたことが検出された場合、前記操作が行われたことを示す通知を前記送信装置に送信し、前記送信装置において、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加させる送信部（例えば、図１１の送信部２５２ａ）をさらに備え、前記制御部は、前記蓄積部に蓄積されている前記ストリーミングデータに付加されている付加情報が検出されるまで、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御することができる。
【００６３】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００６４】
操作検出部により前記操作が行われたことが検出された場合、前記操作が行われたことを示す通知を前記送信装置に送信し、前記送信装置において、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加させる送信部（例えば、図１１の送信部２５２ａ）をさらに備え、前記制御部は、前記蓄積部に蓄積されている前記ストリーミングデータに付加されている付加情報が当該受信装置に到着したことが検出されたてから、蓄積されている前記ストリーミングデータの早送りを開始させ、前記付加情報が付加されている部分まで所定の時間で再生されるように前記再生速度を制御することができる。
【００６５】
前記所定の時間は、１秒以下であるようにすることができる。
【００６６】
前記制御部は、前記ストリーミングデータの早送りが完了した後に、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００６７】
前記操作が行なわれたことが検出された場合、前記蓄積部に蓄積されている前記ストリーミングデータのなかの、前記送信装置から最後に受信した前記ストリーミングデータに対して、前記操作が行われたことを示す付加情報を付加する情報付加部（例えば、図２０のマーク情報付加部３０１）をさらに備え、前記制御部は、蓄積されている前記ストリーミングデータに付加されている前記付加情報が検出されるまで、蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御することができる。
【００６８】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００６９】
前記操作が行なわれたことが検出された場合、前記蓄積部に蓄積されている前記ストリーミングデータのなかの、前記送信装置から最後に受信した前記ストリーミングデータに付加されている時刻を記憶する記憶部（例えば、図２３のタイムスタンプ記憶部３１１）をさらに備え、前記制御部は、再生される前記ストリーミングデータに付加されている時刻が、記憶されている前記時刻を経過するまで、蓄積されている前記ストリーミングデータが早送りされるように前記再生速度を制御することができる。
【００７０】
前記制御部は、前記付加情報が検出された場合、前記蓄積部に蓄積される前記ストリーミングデータが所定の量となるまで、蓄積されている前記ストリーミングデータがスロー再生されるように前記再生速度を制御することができる。
【００７１】
ユーザによって操作される、前記ストリーミングデータを送信する機器の切り替え、チャンネルの切り替え、または前記送信装置に接続された外部機器の再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作部（例えば、図１１の操作部１１５）をさらに備え、前記操作は、前記ストリーミングデータを送信する機器の切り替えを指示する操作、チャンネルの切り替えを指示する操作、または前記送信装置に接続された外部機器の再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作であるようにすることができる。
【００７２】
本発明の第１の側面の受信方法または本発明の第１の側面のプログラムは、送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置の受信方法において、または、送信装置から送信されてくるストリーミングデータを受信するとともに、前記送信装置に対してストリーミングデータの切り替えを要求を送信する受信装置の制御を、コンピュータに実行させるプログラムにおいて、前記送信装置から送信されてくるストリーミングデータを受信部で受信し（例えば、図１５のステップＳ３３の処理）、受信された前記ストリーミングデータを蓄積部に一時的に蓄積した後に出力し（例えば、図１５のステップＳ３８の処理）、ユーザによって前記ストリーミングデータの切り替え要求の操作が行なわれたか否かを操作検出部により検出し（例えば、図１５のステップＳ３４の処理）、前記操作検出部により前記操作が行われたことが検出された場合には、前記蓄積部に蓄積されている前記ストリーミングデータが早送りされるように、蓄積されている前記ストリーミングデータの再生速度を制御する（例えば、図１５のステップＳ３９の処理）。
【００７３】
本発明の第２の側面の送信装置は、受信装置（例えば、図８のクライアント１１４）に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置（例えば、図８のサーバ１１１）において、前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を前記ストリーミングデータに付加する情報付加部（例えば、図１０のマーク情報付加部２１７）と、前記付加情報が付加されたストリーミングデータを前記受信装置に送信する送信部（例えば、図１０の送信部２１２ａ）とを備える。
【００７４】
前記ストリーミングデータを一時的に蓄積する蓄積部（例えば、図１０のバッファ２１６）をさらに備え、前記蓄積部は、前記操作が行われた場合、蓄積されている前記ストリーミングデータをフラッシュすることができる。
【００７５】
前記蓄積部は、前記操作が行われた場合、１枚の画像を完全に構成できる画像だけを残してフラッシュすることができる。
【００７６】
前記受信装置から送信されてくる、前記操作を行われたことを示す通知を受信する受信部（例えば、図１０の受信部２１２ｂ）をさらに備え、前記情報付加部は、受信した前記通知にしたがって、前記付加情報を前記ストリーミングデータに付加することができる。
【００７７】
前記操作は、前記ストリーミングデータを送信する機器の切り替えを指示する操作、チャンネルの切り替えを指示する操作、または前記ストリーミングデータに対する、再生、巻き戻し、早送り、一時停止、若しくは停止を指示する操作であるようにすることができる。
【００７８】
本発明の第２の側面の受信方法または本発明の第２の側面のプログラムは、受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置の送信方法において、または、受信装置に対してストリーミングデータを送信する送信装置であって、前記受信装置から送信されてくるストリーミングデータの切り替え要求に応じてストリーミングデータを切り替えて送信する送信装置の制御を、コンピュータに実行させるプログラムにおいて、前記受信装置から前記ストリーミングデータの切り替え要求の操作が行われたことを示す通知が受信された場合、前記操作が行われたことを示す付加情報を情報付加部により前記ストリーミングデータに付加し（例えば、図１２のステップＳ１６の処理）、前記付加情報が付加されたストリーミングデータを送信部により前記受信装置に送信する（例えば、図１２のステップＳ２０の処理）。
【００７９】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００８０】
図８は、本発明を適用したストリーミングシステム１０１の一実施の形態の構成を示すブロック図である。
【００８１】
ストリーミングシステム１０１は、サーバ１１１、画音ソース１１２、ネットワーク１１３、およびクライアント１１４を含むようにして構成される。クライアント１１３は、操作部１１５および出力部１１６を含んでいる。
【００８２】
サーバ１１１は、例えば、動画などのコンテンツをストリーミング方式で配信する専用のサーバなどからなる。サーバ１１１は、画音ソース１１２から供給される画音信号に対して所定の処理を施すことにより得られたストリーミングデータを、ネットワーク１１３を介して、クライアント１１４に送信する。
【００８３】
画音ソース１１２は、アナログまたはデジタル形式の映像または音声の情報の信号源である。なお、画音ソース１１２は、例えば、放送信号をアンテナ（図示せず）を介して受信して、画音信号を出力するチューナや、DVDレコーダ、ハードディスクレコーダ、ビデオテープレコーダなどの外部機器とすることができる。また、種々のファイル形式の画音情報を供給する情報源を画音ソース１１２とすることもできる。また、画音ソース１１２は、サーバ１１１自身に内蔵させることもできる。
【００８４】
ネットワーク１１３には、サーバ１１１およびクライアント１１４が接続される。ネットワーク１１３は、例えば、無線の通信を用いるネットワークである、いわゆる無線LAN（Local Area Network）などからなり、例えば、RTP（Real-time Transport Protocol）などのプロトコルにしたがって、サーバ１１１およびクライアント１１４を相互に通信させる。
【００８５】
なお、無線LANの規格としては、例えば、IEEE（The Institute of Electrical and Electronic Engineers , Inc.）802.11規格に準拠した無線LANが用いられる。また、ネットワーク１１３は、無線LANに限らず、例えば、イーサネット（登録商標）などの規格に準拠した有線の通信を用いるネットワークの他、インターネットなどの、相互に接続されているネットワークまたは通信回線などとすることができる。また、利用されるプロトコルは、RTPに限らず、タイムスタンプなどの時間情報を含むプロトコルであれば、他のプロトコルを用いることができる。
【００８６】
クライアント１１４は、例えば、パーソナルコンピュータ、ゲーム機、または携帯電話機などのネットワーク１１３に接続可能な機器である。クライアント１１４は、ネットワーク１１３を介して、サーバ１１１から送信されるストリーミングデータを受信する。クライアント１１４は、受信したストリーミングデータをクライアント１１４に設けられた出力部１１６に供給する。そして、出力部１１６は、クライアント１１４から供給されるストリーミングデータによる画像を、例えば、LCD（Liquid Crystal Display）などのディスプレイに表示するとともに、その画像に対応する音声をスピーカから出力する。これにより、ユーザは、サーバ１１１からのストリーミングデータを視聴することができる。
【００８７】
また、クライアント１１４は、ユーザによって、自分に設けられた操作部１１５が操作された場合、その操作に対応する要求を、ネットワーク１１３を介してサーバ１１１に送信する。これにより、サーバ１１１は、クライアント１１４からの要求に応じたストリーミングデータを、ネットワーク１１３を介して、クライアント１１４に送信する。
【００８８】
なお、ストリーミングシステム１０１は、図８の例では、説明を簡略にするために、サーバ１１１、画音ソース１１２、ネットワーク１１３、クライアント１１４、操作部１１５、および出力部１１６が１つずつ設けられているが、それぞれ、複数設けるようにしてもよい。
【００８９】
図９は、クライアント１１４のハードウェア構成の例を示すブロック図である。
【００９０】
クライアント１１４のCPU（Central Processing Unit）１５１は、ROM（Read Only Memory）１５２、または記録部１５８に記録されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）１５３には、CPU１５１が実行するプログラムやデータなどが適宜記憶される。これらのCPU１５１、ROM１５２、およびRAM１５３は、バス１５４により相互に接続されている。
【００９１】
CPU１５１にはまた、バス１５４を介して入出力インターフェース１５５が接続されている。入出力インターフェース１５５には、キーボード、マウス、マイクロホンなどよりなる入力部１５６、ディスプレイ、スピーカなどよりなる出力部１５７が接続されている。CPU１５１は、入力部１５６から入力される指令に対応して各種の処理を実行する。そして、CPU１５１は、処理の結果得られた画像や音声等を出力部１５７に出力する。なお、入力部１５６と出力部１５７は、図８に示される操作部１１５と出力部１１６に対応している。
【００９２】
入出力インターフェース１５５に接続されている記録部１５８は、例えば、ハードディスクなどで構成され、CPU１５１が実行するプログラムや各種のデータを記録する。通信部１５９は、ネットワーク１１３を介して外部の装置と通信する。
【００９３】
また、外部に設けられたダウンロード用のサーバから通信部１５９を介してプログラムを取得し、記録部１５８に記録してもよい。
【００９４】
入出力インターフェース１５５に接続されているドライブ１６０は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア１６１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部１５８に転送され、記録される。
【００９５】
なお、サーバ１１１は、クライアント１１４と同様のハードウェア構成を有しており、その記載および説明は繰り返しになるので省略する。また、サーバ１１１およびクライアント１１４は、図９に示した内部構造に限らず、必要に応じて、機能を追加したり削除したりすることは可能であり、その機能に対応した構成を持つことが可能である。
【００９６】
すなわち、サーバ１１１のハードウェアの構成は、図９の例に限定されず、後述する図１０の機能的構成を少なくとも有していればよい。
【００９７】
図１０は、サーバ１１１の機能的構成の例を示すブロック図である。
【００９８】
サーバ１１１は、制御部２１１、通信部２１２、入力部２１３、エンコーダ２１４、パケタイザ２１５、バッファ２１６、およびマーク情報付加部２１７を含むようにして構成される。
【００９９】
制御部２１１は、サーバ１１１の各部の動作を制御する。
【０１００】
通信部２１２は、制御部２１１の制御にしたがって、ネットワーク１１３を介して、クライアント１１４などの外部の装置と通信する。通信部２１２は、各種のパケットを送信する送信部２１２ａおよび各種のパケットを受信する受信部２１２ｂを含むようにして構成される。
【０１０１】
入力部２１３は、図９の入力部１５６に対応し、制御部２１１の制御にしたがって、画音ソース１１２からの画音信号をエンコーダ２１４に供給する。なお、画音ソース１１２からの画音信号がアナログのデータである場合、図示せぬA/D（Analog/Digital）変換部が、画音ソース１１２からの画音信号を、アナログからデジタルのデータに変換し、変換により得られたデジタルのデータをエンコーダ２１４に供給する。
【０１０２】
エンコーダ２１４は、入力部２１３からの画音信号を所定の符号化方式により符号化し、符号化された画像データをパケタイザ２１５に供給する。なお、本実施の形態では、画音信号の符号化方式として、MPEG4（Moving Picture Experts Group phase 4）を例にして説明するが、例えば、MPEG2，AVC（Advanced Video Coding），H.264などのその他の符号化方式を用いることも可能である。
【０１０３】
パケタイザ２１５は、エンコーダ２１４から供給された画像データを、RTP方式のパケットに格納することにより、RTPパケットを生成する。パケタイザ２１５は、生成したRTPパケットをバッファ２１６に蓄積させる。
【０１０４】
なお、パケタイザ２１５は、画音ソース１１２からの画音信号が既にMPEG4形式となっている場合、エンコーダ２１４による符号化の処理を行う必要がないので、入力部２１３から供給されるMPEG4形式のデータを、RTP方式のパケットに格納し、RTPパケットを生成する。
【０１０５】
受信部２１２ｂは、ネットワーク１１３を介して、クライアント１１４から切り替え操作要求を受信する。受信部２１２ｂは、受信した切り替え操作要求をマーク情報付加部２１７に供給する。
【０１０６】
ここで、切り替え操作要求は、クライアント１１４を操作するユーザによって、例えばクライアント１１４の出力部１１６に表示された遠隔操作用の画面を利用して、例えばチューナのチャンネルの切り替えなどの所定の操作がされた場合、ネットワーク１１３を介して、クライアント１１４からサーバ１１１に送信される要求であって、サーバ１１１に対して、それらの操作に対応する動作を実行させるための要求である。ユーザによる所定の操作は、例えば、チャンネルの切り替え、ストリーミングデータを供給する外部機器の切り替え、またはストリーミングデータを出力するDVDレコーダ、ハードディスクレコーダ、ビデオテープレコーダなどの外部機器に対する、再生、巻き戻し、早送り、一時停止、若しくは停止などのトリックプレイなどの操作である。
【０１０７】
マーク情報付加部２１７は、受信部２１２ｂから供給される切り替え操作要求に応じて、パケタイザ２１５によって生成されたRTPパケットにマーク情報を付加する。
【０１０８】
ここで、マーク情報とは、クライアント１１４を操作するユーザによって、所定の操作がされたことを示す情報である。ユーザによる所定の操作は、上述したように、例えば、チューナのチャンネルの切り替えや、トリックプレイなどの操作である。
【０１０９】
パケタイザ２１５は、マーク情報付加部２１７によってRTPパケットにマーク情報が付加された場合、そのマーク情報が付加されたRTPパケットをバッファ２１６に蓄積させる。
【０１１０】
バッファ２１６は、例えば、リングバッファ構成をとるFIFO型のメモリであり、パケタイザ２１５から供給されるRTPパケットを一時的に蓄積する。すなわち、バッファ２１６に蓄積されたRTPパケットは、最初に蓄積されたものから順に通信部２１２に供給される。
【０１１１】
送信部２１２ａは、バッファ２１６に蓄積されているRTPパケットを、ネットワーク１１３を介して、クライアント１１４に送信する。これにより、サーバ１１１は、ストリーミングデータを、ネットワーク１１３を介して、クライアント１１４に送信する。
【０１１２】
また、クライアント１１４のハードウェアの構成は、図９の例に限定されず、後述する図１１の機能的構成を少なくとも有していればよい。
【０１１３】
図１１は、クライアント１１４の機能的構成の例を示すブロック図である。
【０１１４】
クライアント１１４は、操作部１１５、出力部１１６、制御部２５１、通信部２５２、バッファ２５３、デコーダ２５４、バッファ２５５、再生速度制御部２５６、および再生部２５７を含むようにして構成される。
【０１１５】
制御部２５１は、クライアント１１４の各部の動作を制御する。
【０１１６】
通信部２５２は、図９の通信部１５９に対応し、制御部２５１の制御にしたがって、ネットワーク１１３を介して、外部の装置と通信する。通信部２５２は、各種のパケットを送信する送信部２５２ａおよび各種のパケットを受信する受信部２５２ｂを含むようにして構成される。
【０１１７】
受信部２５２ｂは、ネットワーク１１３を介して、サーバ１１１から送信されるストリーミングデータを受信し、そのストリーミングデータを復調して、バッファ２５３に蓄積させる。バッファ２５３に蓄積されたストリーミングデータは、デコーダ２５４が処理を行うタイミングに応じて、デコーダ２５４に供給される。
【０１１８】
デコーダ２５４は、バッファ２５３に蓄積されているストリーミングデータから映像データと音声データを個別に復号し、復号により得られたストリーミングデータをバッファ２５５に蓄積させる。
【０１１９】
なお、デコーダ２５４は、制御部２５１の制御にしたがって、バッファ２５３に蓄積されたストリーミングデータのなかから、例えばＩフレームだけを復号したり、バッファ２５３に蓄積されたストリーミングデータを復号し、復号により得られたストリーミングデータのうち、例えば８枚のフレームのうちの１枚のフレームなどの特定のフレームだけをバッファ２５５に蓄積させることもできる。
【０１２０】
バッファ２５５は、例えば、リングバッファ構成をとるFIFO型のメモリであり、デコーダ２５４からのストリーミングデータを蓄積する。すなわち、バッファ２５５に蓄積されたストリーミングデータは、最初に受信したものから順に、再生速度制御部２５６に供給される。
【０１２１】
なお、このバッファ２５５の容量は、ネットワーク１１３の伝送速度や、サーバ１１１とクライアント１１４の処理能力などを考慮して、ある程度の余裕を持つように定められる。
【０１２２】
再生速度制御部２５６は、再生モード（詳細は後述する）に応じた再生速度で、バッファ２５５に蓄積されているストリーミングデータが再生されるように再生速度を制御する。すなわち、バッファ２５５に蓄積されているストリーミングデータは、再生速度制御部２５６によって取り出され、再生部２５７に供給される。
【０１２３】
ここで、再生モードは、本実施の形態では、「通常再生モード」、「早送り再生モード」、「スロー再生モード」の３つのモードがある。再生速度制御部２５６は、再生モードが通常再生モードであるときは、実時間に沿って再生されるように、バッファ２５５に蓄積されているストリーミングデータを再生する。また、再生速度制御部２５６は、再生モードが早送り再生モードであるときは、実時間よりも短い時間で再生される。すなわち、早送り再生になるようにバッファ２５５に蓄積されているストリーミングデータを再生する。さらに、再生速度制御部２５６は、再生モードがスロー再生モードであるときは、実時間よりも長い時間で再生される、すなわち、スロー再生になるようにバッファ２５５に蓄積されているストリーミングデータを再生する。
【０１２４】
なお、再生モードがスロー再生モードとなる場合、再生速度制御部２５６は、バッファ２５５に蓄積されているストリーミングデータを、それが本来再生されるべき時間よりも長い時間で再生する必要がある。ストリーミングデータのうち、画像については、画像が更新される時間の間隔であるインターバルタイムをインターバルが長くなるように調整することで、スロー再生モードが実現される。
【０１２５】
また、音声については、例えば、サンプル数を増加させることで、音声を擬似的に延長させることが可能となる。すなわち、疑似的に延長された音声のフレームを連続的に再生することにより、音声のスロー再生モードが実現される。
【０１２６】
これにより、スロー再生時においても音声の途切れが発生せずに、音声を再生することができる。また、サンプル数が増加すると音声の周波数は低下するが、スロー再生の度合いを適切に調整することで、ユーザに違和感を与えることなく音声の再生を行うことができる。ここで、スロー再生の度合いは、例えば、105％などの一定の値であってもよいし、バッファ２５５に蓄積されているストリーミングデータの量に応じて、100％乃至120％などの所定の範囲で連続的または段階的に変化させてもよい。なお、例えば、105％とは、本来の標準再生時間よりも、再生時間が５％長くなることを示している。
【０１２７】
また、再生モードは、本実施の形態では、「通常再生モード」、「早送り再生モード」、「スロー再生モード」の３つのモードを有するとして説明するが、それ以外の再生モードを設けるようにしてもよい。
【０１２８】
再生部２５７は、再生速度調整部２５６から供給されるストリーミングデータを再生し、その再生されたストリーミングデータを出力部１１６に供給する。
【０１２９】
出力部１１６は、図９の出力部１５７に対応し、例えば、LCDなどのディスプレイやスピーカなどからなる。出力部１１６は、再生部２５７から供給されるストリーミングデータによる画像をディスプレイに表示するとともに、その画像に対応する音声を出力する。
【０１３０】
操作部１１５は、図９の入力部１５６に対応し、ユーザによる所定の操作に対応する操作信号を制御部２５１に供給する。なお、所定の操作は、上述したように、例えば、チャンネルの切り替えや、トリックプレイなどの操作である。
【０１３１】
制御部２５１は、操作部１１５からの操作信号に応じて、切り替え操作要求を送信部２５２ａに供給する。送信部２５２ａは、制御部２５１から供給される切り替え操作要求を、ネットワーク１１３を介して、サーバ１１１に送信する。
【０１３２】
次に、ストリーミングシステム１０１を構成する、サーバ１１１とクライアント１１４の動作について説明する。
【０１３３】
まず、図１０のブロック図および図１２のフローチャートを参照して、サーバ１１１による、ストリーミングデータ送信の処理について説明する。
【０１３４】
ステップＳ１１において、制御部２１１は、ネットワーク１１３を介して、クライアント１１４からストリーミング開始の要求を受信したか否かを判定する。
【０１３５】
ステップＳ１１において、クライアント１１４からストリーミング開始の要求を受信していないと判定された場合、ステップＳ１１に戻り、上述した処理が繰り返される。すなわち、ユーザよって、ストリーミングデータをクライアント１１４に受信させる操作され、ステップＳ１１において、ストリーミング開始の要求を受信したと判定されるまで、ステップＳ１１の処理が繰り返される。
【０１３６】
その後、ステップＳ１１において、クライアント１１４からストリーミング開始の要求を受信したと判定された場合、ステップＳ１２において、入力部２１３は、画音ソース１１２からの画音信号を読み出して、その画音信号をエンコーダ２１４に供給する。
【０１３７】
ステップＳ１３において、エンコーダ２１４は、入力部２１３から供給される画音信号を、例えば、MPEG4などの所定の符号化方式にしたがって符号化し、それにより得られた画音信号のストリーミングデータをパケタイザ２１５に供給する。
【０１３８】
ところで、サーバ１１１から送信されるストリーミングデータは、１枚の画像を構成するフレームが複数枚集められることで構成される。ストリーミングデータは、それらの複数のフレームを連続して表示させることで、動画としての動きを表現する。
【０１３９】
また、１秒間にどれだけのフレームを表示させるかは、使用する機器やアプリケーションプログラムの特性などによって決定することができる。例えば、１秒間に表示させるフレームの数を示すフレームレートを上げることで、表示する画像の画質をより滑らかにすることができ、フレームレートを下げると、画質が滑らかにならず、コマ落ちする可能性がでてくる。例えば、フレームレートは、１秒間あたり３０フレームとすることができる。すなわち、このとき、各フレームは、それぞれ、1/30秒ごとに表示される。
【０１４０】
さらに、１秒間にどれだけのデータ量のデータを流れるようにするかによっても、表示する画像の画質が変化する。例えば、１秒間に流れるデータ量を示すビットレートを上げることで、表示する画像の画質を高画質にすることができ、ビットレートを下げると画質が悪くなる可能性がでてくる。すなわち、ビットレートと表示する画像の画質とはトレードオフの関係にあり、ビットレートを上げるとデータ量が増加し、ビットレートを下げるとデータ量が減るようになる。
【０１４１】
またそれらのフレームは、各フレームが独立しているのではなく、GOP（Group Of Picture）単位で圧縮と伸張が行われる。GOPは、Ｉフレーム、Ｐフレーム、Ｂフレームから構成される。
【０１４２】
Ｉフレームは、そのフレームだけで、１枚の画像を完全に構成できる情報を持っており、GOPおいて基準になるフレームである。Ｉフレームは、フレーム内圧縮だけしか行わないため、圧縮率が低くなり、データ量が多くなる。
【０１４３】
Ｐフレームは、過去のフレームとの差分の情報だけを持っており、過去のフレームに依存するフレームである。Ｐフレームは、フレーム内圧縮の他に、時間軸方向のみの予測を取り入れ、Ｉフレームとの差異を元にしたフレーム間圧縮を採用している。これにより、Ｐフレームの圧縮率は、Ｉフレームと比べると高くなり、データ量が削減される。
【０１４４】
Ｂフレームは、過去と未来のフレームとの差分の情報を持っており、過去と未来のフレームに依存するフレームである。Ｂフレームは、フレーム内圧縮の他に、前後のフレームとの差異を利用した双方向予測的圧縮を採用している。これにより、Ｂフレームの圧縮率は、Ｉフレームよりもさらに高くなる。
【０１４５】
すなわち、ＰフレームとＢフレームは、単独では画像を再現することができず、これらのフレームから画像を再現するには、フレームのシーケンス（順序列）が必要となる。
【０１４６】
図１３は、フレームの詳細を説明する図である。
【０１４７】
図中の四角はフレームを示し、それらのフレームに付されているＩ，Ｐ，Ｂのアルファベットは、それぞれ、それのフレームが、Ｉフレーム、Ｐフレーム、Ｂフレームであることを示す。また、時間は、図中左側から図中右側に向かって経過するとして説明する。
【０１４８】
GOPは、図１３の例では、Ｉフレーム、Ｂフレーム、Ｂフレーム、Ｐフレーム、Ｂフレーム、およびＢフレームの６つのフレームから構成される。
【０１４９】
GOPにおいて、先頭のＩフレームは、自分だけで１枚の画像を構成できる情報を持っているので、他のフレームに依存していない。先頭のＩフレームの次の２番目のＢフレームは、前後のフレームに依存するフレームであるので、図中の点線で示すように、その前のＢフレームと、その後のＩフレームに依存する。また、２番目のＢフレームの次の３番目のＢフレームは、同様に、図中の点線で示すように、その前のＰフレームと、その後のＢフレームに依存する。
【０１５０】
３番目のＢフレームの次の４番目のＰフレームは、後ろのフレームに依存するフレームであるので、図中の点線で示すように、Ｉフレームに依存する。４番目のＰフレームの次の５番目のＢフレームは、図中の点線で示すように、その前のＢフレームと、その後ろのＰフレームに依存する。５番目のＢフレームの次の６番目のＢフレームは、図中の点線で示すように、その前のＩフレームと、その後ろのＢフレームに依存する。
【０１５１】
エンコーダ２１４は、例えば、図１３に示すようなフレームから構成されるストリーミングデータをパケタイザ２１５に供給する。
【０１５２】
図１２のフローチャートに戻り、ステップＳ１４において、パケタイザ２１５は、エンコーダ２１４から供給されたストリーミングデータを、RTP方式のパケットに格納することにより、RTPパケットを生成する。
【０１５３】
ステップＳ１５において、制御部２１１は、受信部２１２ｂの状態を監視することで、ネットワーク１１３を介してクライアント１１４から切り替え操作要求を受信したか否かを判定する。
【０１５４】
ステップＳ１５において、クライアント１１４から切り替え操作要求を受信していないと判定された場合、ステップＳ１６乃至ステップＳ１８をスキップし、ステップＳ１９において、バッファ２１６は、パケタイザ２１５からのRTPパケットを蓄積する。これにより、サーバ１１１においては、パケタイザ２１５によって生成されるクライアント１１４に送信されるべきRTPパケットが、バッファ２１６に蓄積される。
【０１５５】
ステップＳ２０において、送信部２１２ａは、バッファ２１６に蓄積されているRTPパケットを、ネットワーク１１３を介して、クライアント１１４に送信する。これにより、サーバ１１１は、クライアント１１４からのストリーミング開始の要求に応じて、ネットワーク１１３を介して、ストリーミングデータをクライアント１１４に送信する。
【０１５６】
ステップＳ２１において、制御部２１１は、入力部２１３の状態を監視することで、入力部２１３によって読み出される画音ソース１１２からの画音信号が終了したか否かを判定する。
【０１５７】
ステップＳ２１において、画音ソース１１２からの画音信号が終了していないと判定された場合、ステップＳ１２に戻り、上述した処理が繰り返される。
【０１５８】
すなわち、ステップＳ１２乃至ステップＳ２１において、サーバ１１１は、画音ソース１１２からの画音信号を符号化し、その符号化された画音信号からRTPパケットを生成する。そして、サーバ１１１は、生成したRTPパケットをバッファ２１６に蓄積しながら、その蓄積されたRTPパケットを、ネットワーク１１３を介して、クライアント１１４に送信する。これにより、ストリーミングデータは、ネットワーク１１３を介して、サーバ１１１からクライアント１１４に送信される。なお、ステップＳ１６乃至ステップＳ１８の説明は追って行う。
【０１５９】
その後、図１１に示されるクライアント１１４において、ユーザによる操作部１１５への操作によって、例えば、クライアント１１４の受信するストリーミングデータのチャンネルが、他のチャンネルに切り替えられ、ステップＳ１５において、クライアント１１４から切り替え操作要求を受信したと判定された場合、ステップＳ１６において、マーク情報付加部２１７は、受信部２１２ｂから供給される切り替え操作要求に応じて、パケタイザ２１５によって生成されたRTPパケットにマーク情報を付加する。
【０１６０】
図１４は、RTPパケットを説明する図である。RTPパケットの先頭には、図１４において“V”で表される、２ビットのバージョン情報が配置される。バージョン情報は、RTPパケットのバージョンを示す。
【０１６１】
バージョン情報の次には、“P”で表される１ビットのパディングが配置され、パディングに続いて、１ビットの拡張情報がRTPパケットに配置される。拡張情報は図１４において、“X”で表される。拡張情報は、拡張ヘッダの有無を表し、RTPパケットに拡張ヘッダを配置する場合に、所定の値に設定される。
【０１６２】
拡張情報に続いて、CSRC（Contributing Source）カウントがRTPパケットに配置される。CSRCカウントは、“CC”で表される。CSRCカウントは、CSRC識別子の数を表す。
【０１６３】
CSRCカウントに続いて配置される、１ビットのメーカー情報は、プロファイルによって定義される。メーカー情報は、“m”で表される。
【０１６４】
メーカー情報に続いて配置される、７ビットのペイロードタイプは、RTPパケットのフォーマットを定義するための情報である。ペイロードタイプは、図１４において、RTPパケットにおいて、ペイロードタイプは、３３とされる。
【０１６５】
シーケンス番号は、ペイロードタイプの次に配置される、１６ビットの情報である。シーケンス番号は、RTPパケットの再生の順番を示す番号であり、送信の度に、１ずつ増える。シーケンス番号は、パケットロスを検出し、RTPパケットの順序を修復するために使用される。
【０１６６】
シーケンス番号の次に配置される、３２ビットのタイムスタンプは、そのRTPパケットに格納されているストリーミングデータの最初のオクテットがサンプルされた時刻を示す情報であり、タイムスタンプを基に、RTPパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御が行われる。また、同じフレームのストリーミングデータを格納しているRTPパケットには、共通のタイムスタンプが設定される。
【０１６７】
SSRC（Synchronization Source）識別子は、タイムスタンプの次に配置される、３２ビットの情報であって、RTPパケットに格納されるストリーミングデータのソースを示す。
【０１６８】
RTPパケットにおいて、SSRC識別子の次には、マーク情報が配置される。マーク情報は、図１４において、“マーク情報”で表される。マーク情報は、クライアント１１４を操作するユーザによって、所定の操作がされたことを示す情報であり、例えば１乃至65535からなる所定の範囲のシーケンス番号が設定される。例えば、マーク情報付加部２１７は、切り替え操作要求に応じて、RTPパケットに格納させるマーク情報のシーケンス番号を１インクリメントし、そのインクリメントされたシーケンス番号を、マーク情報として、RTPパケットに付加する。
【０１６９】
RTPパケットにおいて、マーク情報の次には、ストリーミングデータが格納される。図１４において、“Original Data”はストリーミングデータを示す。
【０１７０】
なお、RTPパケットは、クライアント１１４に送信するストリーミングデータを格納するパケットの一例である。従って、本実施の形態では、ストリーミングデータを送信するプロトコルとして、RTPを用いる例を説明するが、例えば、RTSP（Real Time Streaming Protocol）、SDP（Session Description Protocol）などのプロトコルを用いることもできる。
【０１７１】
図１２のフローチャートに戻り、ステップＳ１７において、バッファ２１６は、自分の蓄積しているRTPパケットをフラッシュする。これにより、バッファ２１６に蓄積されていたRTPパケットは、すべて破棄される。
【０１７２】
なお、このとき、バッファ２１６は、自分の蓄積しているRTPパケットを全てフラッシュするのではなく、ある特定のデータだけをフラッシュすることもできる。例えば、バッファ２１６は、特定のデータとして、前後のフレームとの依存関係を持っていないＩフレームだけを残して、それ以外のデータをフラッシュする。これにより、バッファ２１６に残っている映像の再生に利用できるデータを利用して、クライアント１１４を操作しているユーザは、ストリーミングデータの時間的な断裂を感じることなく視聴することが可能となる。
【０１７３】
また、バッファ２１６は、自分に複数のＩフレームが蓄積されている場合、例えば、全てのＩフレームを残したり、最新のＩフレームだけを残したりすることができる。最新のＩフレームだけを残す場合、サーバ１１１においては、例えば、バッファ２１６にストリーミングデータを蓄積させるとき、蓄積しているＩフレームのうち、最新のＩフレームを１枚別のバッファ（図示せず）に蓄積させる。これにより、バッファ２１６は、自分の蓄積しているデータをフラッシュするとき、全てのデータをフラッシュした後、別のバッファに蓄積されている最新のＩフレームを自分に蓄積させる。その結果、バッファ２１６は、最新のＩフレームだけを蓄積する。
【０１７４】
ステップＳ１８において、入力部２１３は、制御部２１１の制御にしたがって、自分の読み出す画音信号を切り替える。具体的には、入力部２１３は、例えば、ユーザによる操作部１１５への操作によって、例えば、クライアント１１４の受信するストリーミングデータのチャンネルが、他のチャンネルに切り替えられた場合、他のチャンネルの画音信号を読み出すようにする。
【０１７５】
ステップＳ１９において、バッファ２１６は、パケタイザ２１５からのRTPパケットを蓄積する。これにより、バッファ２１６に蓄積されているRTPパケットは、マーク情報付加部２１７によって、マーク情報が付加されたRTPパケットだけになる。その結果、このマーク情報が付加されたRTPパケットにより生成されるフレームがもっともはやく、ネットワーク１１３を介して、クライアント１１４に送信される。
【０１７６】
ステップＳ２０において、送信部２１２ａは、バッファ２１６に蓄積されているRTPパケットを、ネットワーク１１３を介して、クライアント１１４に送信し、ステップＳ２１において、入力部２１３によって読み出される画音ソース１１２からの画音信号が終了したと判定されるまで、上述した、ステップＳ１２乃至ステップＳ２１の処理が繰り返される。
【０１７７】
すなわち、バッファ２１６は、マーク情報が付加されたRTPパケット以降、ユーザによって他のチャンネルに切り替えられたストリーミングデータが格納されたRTPパケットを蓄積し、送信部２１２ａは、その蓄積されたRTPパケットを、ネットワーク１１３を介して、クライアント１１４に送信する。
【０１７８】
そして、入力部２１３によって読み出される画音ソース１１２からの画音信号が終了し、ステップＳ２１において、画音信号が終了したと判定された場合、サーバ１１１による、ストリーミングデータ送信の処理は終了する。
【０１７９】
以上のようにして、サーバ１１１は、ネットワーク１１３を介して、ストリーミングデータをクライアント１１４に送信する。
【０１８０】
次に、図１１のブロック図および図１５のフローチャートを参照して、図１１のクライアント１１４による、ストリーミングデータ受信の処理について説明する。
【０１８１】
ステップＳ３１において、制御部２５１は、操作部１１５からの操作信号に基づいて、ユーザによって、ストリーミングの開始が指示されたか否かを判定する。
【０１８２】
ステップＳ３１において、ユーザによって、ストリーミングの開始が指示されていないと判定された場合、ステップＳ３１に戻り、上述した処理が繰り返される。すなわち、ユーザによる操作部１１５への操作によって、ストリーミングの開始が指示され、ステップＳ３１において、ストリーミングの開始が指示されたと判定されるまで、ステップＳ３１の処理が繰り返される。
【０１８３】
ステップＳ３１において、ユーザによって、ストリーミングの開始が指示されたと判定された場合、ステップＳ３２において、送信部２５２ａは、制御部２５１の制御にしたがって、ストリーミング開始の要求を、ネットワーク１１３を介して、サーバ１１１に送信する。
【０１８４】
ステップＳ３３において、制御部２５１は、通信部２５２の状態を監視することで、ストリーミング開始の要求に応じて、ネットワーク１１３を介してサーバ１１１からストリーミングデータを受信したか否かを判定する。
【０１８５】
ステップＳ３３において、サーバ１１１からストリーミングデータを受信していないと判定された場合、ステップＳ３３に戻り、上述した処理が繰り返される。すなわち、ネットワーク１１３を介して、サーバ１１１からストリーミングデータが送信され、ステップＳ３３において、サーバ１１１からのストリーミングデータを受信したと判定されるまで、ステップＳ３３の処理が繰り返される。
【０１８６】
一方、ステップＳ３３において、ストリーミングデータを受信したと判定された場合、ステップＳ３４において、制御部２５１は、操作部１１５からの操作信号に基づいて、ユーザによって、例えばチャンネルの切り替えなどの切り替え操作、すなわち、上述した所定の操作が行われたか否かを判定する。
【０１８７】
ステップＳ３４において、ユーザによって、切り替え操作が行われたと判定された場合、ステップＳ３５において、送信部２５２ａは、操作部１１５からの操作信号に基づいた制御部２５１の制御にしたがって、ネットワーク１１３を介して、切り替え操作要求をサーバ１１１に送信する。これにより、クライアント１１４は、ユーザによって、所定の操作が行われたことをサーバ１１１に通知する。
【０１８８】
一方、ステップＳ３４において、ユーザによって、切り替え操作が行われていないと判定された場合、ステップＳ３５の処理をスキップし、ステップＳ３６において、バッファ２５３は、ネットワーク１１３を介してサーバ１１１から受信したストリーミングデータであって、受信部２５２ｂから供給されるストリーミングデータを蓄積する。
【０１８９】
ステップＳ３７において、デコーダ２５４は、バッファ２５３に蓄積されているストリーミングデータを、自分が処理を行うタイミングで読みだし、読み出したストリーミングデータを所定の復号方式で復号する。デコーダ２５４は、復号により得られたストリーミングデータをバッファ２５５に供給し、蓄積させる。
【０１９０】
ステップＳ３８において、バッファ２５５は、デコーダ２５４からの復号されたストリーミングデータを蓄積する。なお、バッファ２５５に蓄積されているストリーミングデータは、バッファ２５５がFIFO型のメモリであるので、最初に蓄積されたものから順に、再生速度制御部２５６に供給される。
【０１９１】
ステップＳ３９において、再生速度制御部２５６は、再生速度制御処理を行う。具体的には、再生速度制御部２５６は、通常再生モード、早送り再生モード、またはスロー再生モードに応じた再生速度で、バッファ２５５に蓄積されたストリーミングデータが再生されるように再生速度を制御する。
【０１９２】
ここで、図１６のフローチャートを参照して、ステップＳ３９の処理に対応する、図１１の再生速度制御部２５６による、再生速度制御処理の詳細について説明する。
【０１９３】
ステップＳ５１において、再生速度制御部２５６は、操作部１１５からの操作信号に基づいた制御部２５１の制御にしたがって、ユーザによって、例えばチャンネルの切り替えなどの切り替え操作、すなわち、上述した所定の操作がされたか否かを判定する。
【０１９４】
ステップＳ５１において、ユーザによって、切り替え操作がされたと判定された場合、ステップＳ５２において、再生速度制御部２５６は、再生モードを早送り再生モードに設定する。具体的には、再生速度制御部２５６は、図１７に示すように、例えば、バッファ２５５に蓄積されているフレーム１乃至フレーム１３のうち、先頭のフレーム１を選択し、それから３つのフレームおきに、フレーム５、フレーム９、フレーム１３を選択する。そして、再生速度制御部２５６は、それらの選択した、フレーム１、フレーム５、フレーム９、およびフレーム１３をそれぞれ、再生部２５７に供給する。
【０１９５】
すなわち、再生速度制御部２５６は、バッファ２５５に蓄積されているフレーム１乃至フレーム１３のうち、フレーム１、フレーム５、フレーム９、およびフレーム１３だけを選択することで、バッファ２５５に蓄積されたストリーミングデータが早送り再生される。
【０１９６】
これにより、クライアント１１４は、ユーザによって、切り替え操作がされた場合、バッファ２５５に蓄積されているストリーミングデータの再生速度を早送り再生にするので、サーバ１１１から切り替え操作後のストリーミングデータを受信後、即座に再生させることができる。
【０１９７】
その結果、サーバ１１１からネットワーク１１３を経由で、ストリーミングデータが送信されるとき、バッファ２５５によって安定したストリーミングデータの視聴をさせることができると同時に、ユーザによって、画音ソース１１２からの画音信号に対する操作がされたとき、十分に小さい遅延のうちにその操作に対する結果を視聴させることができる。これにより、ユーザによって、切り替え操作がされたときのレスポンスが向上し、操作性能を向上させることができる。
【０１９８】
また、その切り替え操作による遅延を縮小する動作を、バッファ２５５をフラッシュするのではなく、早送り再生によって行うので、ユーザは、切り替え操作前と、切り替え操作後の画像と音声を時間的な断裂なしに連続的に視聴することができる。これにより、ユーザは、トリックプレイを行ったとき、コンテンツの時間的な前後関係を正確に把握することができるようになり、画音ソース１１２からの画音信号の早送り、巻き戻しなどの操作性を向上させることができる。
【０１９９】
なお、再生速度制御部２５６は、図１７の例では、バッファ２５５に蓄積されているフレーム１乃至フレーム１３のうち、フレーム１、フレーム５、フレーム９、およびフレーム１３だけを選択するとして説明したが、それに限らず、例えば、バッファ２５５に蓄積されているストリーミングデータを構成するＩフレームだけを選択したり、システム内部のクロックを早送りし、そのクロックの示す時間と、各フレームが持っているタイムスタンプを比較することで、適当なフレームを選択するようにしてもよい。
【０２００】
一方、ステップＳ５１において、ユーザによって、切り替え操作がされていないと判定された場合、ステップＳ５３において、再生速度制御部２５６は、バッファ２５５の先頭（再生位置）に蓄積されているストリーミングデータからマーク情報が検出されたか否かを判定する。
【０２０１】
すなわち、上述したように、サーバ１１１は、切り替え操作要求を受信したとき、RTPパケットにマーク情報を付加しているので、切り替え操作後のストリーミングデータを格納しているRTPパケットの先頭には、マーク情報が付加されており、クライアント１１４は、そのマーク情報が検出されたか否かを判定することで、切り替え操作後のストリーミングデータを受信したかがわかる。
【０２０２】
ステップＳ５３において、ストリーミングデータからマーク情報が検出されたと判定された場合、ステップＳ５４において、再生速度制御部２５６は、再生モードをスロー再生モードに設定する。具体的には、再生速度制御部２５６は、図１８に示すように、例えば、バッファ２５５に蓄積されているフレーム１乃至フレーム１３の全フレームを再生する。このとき、再生速度制御部２５６は、各フレームを再生部２５７に供給する前に、各フレームの再生時間が、本来の再生時間よりも長くかかるようにストリーミングデータを変更する処理を施してから、変更処理により得られたストリーミングデータを再生し、再生部２５７に供給する。
【０２０３】
変更処理は、ビデオフレームの場合、各フレームの間隔を、例えば２倍などに拡げることで、スロー再生を実現する。また、変更処理は、オーディオフレームの場合、オーディオフレームに含まれるサンプリング数を増加させることにより、より長いオーディオフレームを生成し、生成されたオーディオフレームを再生部２５７に供給する。例えば、再生速度制御部２５６は、100個のサンプルが含まれているオーディオフレームに対して、５％長いオーディオフレームを生成する場合、５個のオーディオフレームを生成し、生成したオーディオフレームを元のオーディオフレームに付加する。この５個のオーディオフレームの生成方法は、例えば、前後のサンプルの値を平均して算出する方法や、線形補間、スプライン補間、ベジェ補間などの一般的な補間方法を用いることができる。
【０２０４】
一方、ステップＳ５３において、ストリーミングデータからマーク情報が検出されていないと判定された場合、ステップＳ５５において、再生速度制御部２５６は、バッファ２５６に蓄積されているストリーミングデータのバッファ量が所定の量を超えるか否かを判定する。
【０２０５】
ステップＳ５５において、ストリーミングデータのバッファ量が所定の量を超えていると判定された場合、バッファ２５５に十分な量のストリーミングデータが蓄積されたので、ステップＳ５６において、再生速度制御部２５６は、再生モードを通常再生モードに設定する。具体的には、再生速度制御部２５６は、図１９に示すように、バッファ２５５に蓄積されたフレーム１乃至フレーム１３の全フレームを通常再生し、再生部２５７に供給する。
【０２０６】
一方、ステップＳ５５において、ストリーミングデータのバッファ量が所定の量を超えていないと判定された場合、処理は、図１５のフローチャートに戻り、ステップＳ３９以降の処理が実行される。なお、ステップＳ４０乃至ステップＳ４２の説明は追って行う。
【０２０７】
以上のように、再生速度制御部２５６は、ユーザによって、切り替え操作がされた場合、バッファ２５５に蓄積されているストリーミングデータの再生モードを早送り再生モードに切り替えて、ストリーミングデータが実時間よりも短い時間で再生されるようにする。その後、再生速度制御部２５６は、バッファ２５５に蓄積されているストリーミングデータからマーク情報を検出した場合、それ以降のストリーミングデータが切り替え操作後のストリーミングデータであり、それは早送りすべきストリーミングデータが全て再生されたこと示しているので、再生モードを早送り再生モードからスロー再生モードに切り替え、バッファ２５５に蓄積されるストリーミングデータのデータ量を増加させる。
【０２０８】
すなわち、再生モードを早送り再生モードに切り替えると、バッファ２５５に蓄積されているストリーミングデータが実時間よりも短い時間で再生されるため、バッファ２５５に蓄積されているバッファ量は非常に少ない状態となるので、再生速度制御部２５６は、そのバッファ量を増やすために、再生モードを早送り再生モードからスロー再生モードに切り替える。これにより、バッファ２５５は、自分から読み出されるデータよりも、自分に蓄積されるデータのほうが多くなり、再生部２５７によるストリーミングデータの再生を停止することなく、蓄積しているバッファ量を徐々に増加させることができる。
【０２０９】
そして、再生速度制御部２５６は、バッファ２５５に蓄積されているストリーミングデータのバッファ量が所定の量を超えたことを確認できると、ネットワーク１１３を介してサーバ１１１から送信されるストリーミングデータを受信するのに十分なバッファ量を確保できたと判断する。そのような状態になると、それ以上のバッファ量の確保は不要であるので、再生速度制御部２５６は、再生モードをスロー再生モードから通常再生モードに切り替える。これにより、通常再生モードでの再生では、バッファ２５５に追加されるストリーミングデータと、バッファ２５５から消費されるストリーミングデータのデータ量は等しくなるので、再生部２５７は、一定のバッファ量を確保しながらストリーミングデータを連続再生することができる。
【０２１０】
なお、再生速度制御部２５６は、バッファ２５５における最新位置のストリーミングデータのタイムスタンプと、再生位置のストリーミングデータのタイムスタンプの差分をとることにより、バッファ２５５に蓄積されているストリーミングデータのバッファ量を検知する。
【０２１１】
また、バッファ量と再生モードの関係であるが、再生速度制御部２５６は、バッファ２５５に蓄積されたストリーミングデータのバッファ量が所定の量を超えているかによって、再生モードを切り替えるのではなく、そのバッファ量に応じて連続的に再生モードを切り替えるようにしてもよい。具体的には、再生速度制御部２５６は、バッファ量が所定の量よりも少ない状態となっている場合、再生モードをスロー再生モードに切り替える。このとき、再生速度制御部２５６は、バッファ量が所定の量よりも大きく割り込んでいる状態となっている場合、バッファ２５５に蓄積されているストリーミングデータを、より遅い再生速度でスロー再生にし、バッファ量が所定の量により近づいている状態となっている場合、バッファ２５５に蓄積されているストリーミングデータを、よりはやいスロー再生にすることで、バッファ量を調整することもできる。
【０２１２】
さらに、再生速度制御部２５６は、バッファ２５５に蓄積されたストリーミングデータのバッファ量が所定の量よりも多い場合においても同様にバッファ量を調整することができる。具体的には、再生速度制御部２５６は、バッファ量が所定の量よりも大幅に蓄積された状態となっている場合、バッファ２５５に蓄積されているストリーミングデータを、よりはやい早送り再生にし、バッファ量が所定の量に近づいている状態となっている場合、バッファ２５５に蓄積されているストリーミングデータを、より通常再生に近い再生速度での早送り再生にする。
【０２１３】
また、再生速度制御部２５６は、上述した例では、ユーザによって切り替え操作がされた場合、再生モードを早送り再生モードに切り替えるとして説明したが、それに限らず、例えば、バッファ２５５に蓄積されているストリーミングデータであって、ネットワーク１１３を介してサーバ１１１から最後に送信されてきたストリーミングデータからマーク情報が検出された場合、再生モードを早送り再生モードに切り替えるようにしてもよい。
【０２１４】
図１５のフローチャートに戻り、ステップＳ４０において、再生部２５７は、バッファ２５５に蓄積されていたストリーミングデータであって、再生速度制御部２５６から供給される供給されるストリーミングデータを再生し、そのストリーミングデータを出力部１１６に供給する。
【０２１５】
ステップＳ４１において、出力部１１６は、再生部２５７から供給されるストリーミングデータによる画像をディスプレイに表示するとともに、その画像に対応する音声を出力することで、再生されたストリーミングデータを出力する。
【０２１６】
ステップＳ４２において、制御部２５１は、通信部２５２の状態を監視することにより、ネットワーク１１３を介して、サーバ１１１から送信されるストリーミングデータが終了したか否かを判定する。
【０２１７】
ステップＳ４２において、ストリーミングデータが終了していないと判定された場合、ステップＳ３４に戻り、上述したステップＳ３４乃至ステップＳ４２の処理が繰り返される。
【０２１８】
一方、ステップＳ４２において、ストリーミングデータが終了したと判定された場合、図１１のクライアント１１４による、ストリーミングデータ受信の処理は終了する。
【０２１９】
以上のようにして、クライアント１１４は、ネットワーク１１３を介して、サーバ１１１からストリーミングデータを受信する。
【０２２０】
これにより、クライアント１１４は、ユーザによって、所定の操作がされた場合、バッファに蓄積されたストリーミングデータをフラッシュするのではなく、早送り再生することで、操作前のストリーミングデータを失わずに、操作後のストリーミングデータを再生することができる。その結果、ユーザによって、例えば、早送りなどの同一コンテンツ内の再生スピードを変更する操作がされた場合、操作前のストリーミングデータと操作後のストリーミングデータとの間の時間的な断裂が発生しないので、ユーザは、ストリーミングデータを違和感なく視聴することができる。
【０２２１】
ところで、上述した例では、サーバ１１１がマーク情報をストリーミングデータに付加するとして説明したが、マーク情報は、クライアント１１４によって、ストリーミングデータに付加させることもできる。そこで、次に、図２０乃至図２２を参照して、マーク情報をストリーミングデータに付加するクライアント１１４の動作について説明する。なお、クライアント１１４がマーク情報を付加する場合、クライアント１１４に存在する全てのストリーミングデータが時間的に短縮して視聴したいストリーミングデータとなる。
【０２２２】
図２０は、クライアント１１４の機能的構成の他の例を示すブロック図である。
【０２２３】
なお、図２０では、図１１と同様の箇所には、同一の符号が付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。すなわち、図２０において、クライアント１１４は、図１１のクライアント１１４と比較して、マーク情報付加部３０１を追加するようにして構成される。
【０２２４】
マーク情報付加部３０１は、ユーザによって、所定の操作が行われた場合、操作部１１５からの操作信号に基づいた制御部２５１の制御にしたがって、バッファ２５５に蓄積されているストリーミングデータのうち、ネットワーク１１３を介してサーバ１１１から最後に受信したストリーミングデータに対して、マーク情報を付加する。
【０２２５】
次に、図２０のブロック図および図２１のフローチャートを参照して、図２０のクライアント１１４による、ストリーミングデータ受信の処理について説明する。
【０２２６】
ステップＳ７１乃至ステップＳ７３において、図１５のステップＳ３１乃至ステップＳ３３と同様に、ユーザによって、ストリーミング開始の指示がされた場合、ストリーミングデータを受信する処理が行われる。
【０２２７】
ステップＳ７４において、ユーザによって、切り替え操作が行われたと判定された場合、ステップＳ７５において、マーク情報付加部３０１は、バッファ２５５に蓄積されているストリーミングデータのうち、ネットワーク１１３を介してサーバ１１１から最後に受信したストリーミングデータに対して、マーク情報を付加する。
【０２２８】
また、このとき、送信部２５２ａは、操作部１１５からの操作信号に基づいた制御部２５１の制御にしたがって、ネットワーク１１３を介して、切り替え操作要求をサーバ１１１に送信する。そして、切り替え操作要求を受信したサーバ１１１は、操作後のストリーミングデータを送信するが、そのストリーミングデータには、マーク情報が付加されていないことになる。
【０２２９】
すなわち、クライアント１１４は、ユーザによって切り替え操作が行われた場合、ネットワーク１１３を介してサーバ１１１から、マーク情報が付加されていない操作後のストリーミングデータを受信する。
【０２３０】
図２２は、バッファ２５５に蓄積されるストリーミングデータの詳細を説明する図である。
【０２３１】
図２２においては、バッファ２５５の状態が３つ表現されているが、図中上側から状態１、状態２、状態３と称するとすると、バッファ２５５に蓄積されているストリーミングデータは、時間の経過とともに、状態１、状態２、状態３の順に変化する。
【０２３２】
また、図２２では、点線で区切られた９つの四角がバッファ２５５に蓄積されているストリーミングデータを示し、図中左側から図中右側が時間方向となる。すなわち、バッファ２５５は、FIFO型のメモリであり古く蓄積したストリーミングデータから順にストリーミングデータを読み出すので、９つの四角のうち、１番左側の四角がバッファ２５５の末尾に蓄積されたストリーミングデータとなり、右側の四角ほど古く蓄積されたストリーミングデータとなる。したがって、バッファ２５５において、９つの四角のうち、１番右側の四角がバッファ２５５の先頭のストリーミングデータとなり、再生部２５７は、その先頭のストリーミングデータを再生する。
【０２３３】
マーク情報付加部３０１は、図２２の状態１に示すように、バッファ２５５に蓄積されているストリーミングデータのうち、ネットワーク１１３を介してサーバ１１１から最後に受信したストリーミングデータであって、バッファ２５５の末尾に蓄積されたストリーミングデータに対して、アスタリスク（「＊」）で示すマーク情報を付加する。具体的には、マーク情報付加部３０１は、例えば、ストリーミングデータを構成するRTPパケットに対して、上述した、図１４に示すように、マーク情報を付加する。
【０２３４】
図２１のフローチャートに戻り、ステップＳ７６乃至ステップＳ７８において、図１５のステップＳ３６乃至ステップＳ３８と同様に、受信したストリーミングデータを一時的に蓄積しながら復号する処理が行われる。
【０２３５】
ステップＳ７９において、再生速度制御部２５６は、再生速度制御処理を行って、バッファ２５５に蓄積されたストリーミングデータが所定の再生速度となるように再生速度を制御し、ストリーミングデータを再生部２５７に供給する。
【０２３６】
ここで、ステップＳ７９の処理に対応する、図２０の再生速度制御部２５６による再生速度調整処理は、図１６のフローチャートを参照して説明した再生速度調整処理と同様であるので、その詳細な説明は省略するが、ステップＳ５３において、再生速度制御部２５６は、バッファ２５５の先頭（再生位置）に蓄積されているストリーミングデータからマーク情報が検出されたか否かを判定する。このとき、再生速度制御部２５６によって検出されるマーク情報は、サーバ１１１によって付加されたものではなく、クライアント１１４のマーク情報付加部３０１によって付加されたマーク情報となる。
【０２３７】
すなわち、マーク情報付加部３０１は、ユーザによって切り替え操作が行われたとき、ストリーミングデータにマーク情報を付加しているので、切り替え操作後のストリーミングデータの先頭には、マーク情報が付加されている。これにより、クライアント１１４は、そのマーク情報が検出されたか否かを判定することで、切り替え操作後のストリーミングデータであるかがわかる。
【０２３８】
具体的には、図１６のステップＳ５２において、再生速度制御部２５６は、図２２の状態２に示すように、アスタリスクで示すマーク情報が付加されたストリーミングデータがバッファ２５５の先頭にくるまで、再生モードを早送り再生モードにする。換言すれば、再生速度制御部２５６は、ユーザによって、切り替え操作がされた場合、バッファ２５５に蓄積されているストリーミングデータの再生速度を早送り再生にする。これにより、クライアント１１４は、サーバ１１１から切り替え操作後のストリーミングデータを受信後、即座に再生を行うことができる。
【０２３９】
その後、図１６のステップＳ５４において、再生速度制御部２５６は、図２２の状態３に示すように、アスタリスクで示されるマーク情報が付加されたストリーミングデータがバッファ２５５の先頭にきた場合、再生モードをスロー再生モードにする。すなわち、再生速度制御部２５６は、ストリーミングデータからマーク情報を検出した場合、それ以降のストリーミングデータはユーザによる切り替え操作後のストリーミングデータであり、早送りすべきストリーミングデータが全て再生されたことになるので、再生モードを早送り再生モードからスロー再生モードに切り替えて、バッファ２５５に蓄積されるストリーミングデータのデータ量を増加させる。
【０２４０】
そして、図１６のステップＳ５６において、再生速度制御部２５６は、ストリーミングデータのバッファ量が所定の量を超えていると判定された場合、バッファ２５５に十分な量のストリーミングデータが蓄積されたので、再生モードを通常再生モードに切り替える。これにより、再生速度制御部２５６は、通常の再生速度で、バッファ２５５に蓄積されているストリーミングデータを再生する。
【０２４１】
図２１のフローチャートに戻り、ステップＳ８０乃至ステップＳ８２において、図１５のステップＳ４０乃至ステップＳ４２と同様に、ネットワーク１１３を介してサーバ１１１から受信しているストリーミングデータが終了するまで、ストリーミングデータを再生し出力する。
【０２４２】
このように、クライアント１１４自身がマーク情報を付加することにより、サーバ１１１との協調動作をする必要がないため、ユーザは、クライアント１１４の独立性を高くして設計を行うことができる。
【０２４３】
なお、クライアント１１４がマーク情報を付加する場合、ユーザによって切り替え操作がされた時点と、マーク情報が付加されるストリーミングデータに時間的な差分が生じるが、ネットワーク１１３の遅延が少なく、サーバ１１１で生成されたストリーミングデータが、ネットワーク１１３を介して順調にクライアント１１４に送信されている場合には、サーバ１１１がマーク情報を付加する場合と同等の効果を得ることができる。
【０２４４】
また、上述した例では、マーク情報をストリーミングデータに付加することにより、ユーザによって切り替え操作がされたことを通知する例について説明したが、マーク情報に限らず、ユーザによって切り替え操作が行われた時点におけるタイムスタンプを記憶させることで、切り替え操作がされたことを通知することもできる。そこで、次に、図２３乃至図２６を参照して、タイムスタンプによって、ユーザによる切り替え操作を通知する場合のクライアント１１４の動作について説明する。
【０２４５】
図２３は、クライアント１１４の機能的構成の他の例を示すブロック図である。
【０２４６】
なお、図２３では、図１１と同様の箇所には、同一の符号が付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。すなわち、図２３において、クライアント１１４は、図１１のクライアント１１４と比較して、タイムスタンプ記憶部３１１を追加するようにして構成される。
【０２４７】
タイムスタンプ記憶部３１１は、ユーザによって、所定の操作が行われた場合、操作部１１５からの操作信号に基づいた制御部２５１の制御にしたがって、バッファ２５５に蓄積されているストリーミングデータのうち、ネットワーク１１３を介してサーバ１１１から最後に受信したストリーミングデータであって、バッファ２５５の末尾に蓄積されたストリーミングデータのタイムスタンプを記憶する。
【０２４８】
次に、図２３のブロック図および図２４のフローチャートを参照して、図２３のクライアント１１４による、ストリーミングデータ受信の処理について説明する。
【０２４９】
ステップＳ９１乃至ステップＳ９３において、図１５のステップＳ３１乃至ステップＳ３３と同様に、ユーザによって、ストリーミング開始の指示がされた場合、ストリーミングデータを受信する処理が行われる。
【０２５０】
ステップＳ９４において、ユーザによって、切り替え操作が行われたと判定された場合、ステップＳ９５において、タイムスタンプ記憶部３１１は、バッファ２５５に蓄積されているストリーミングデータのうち、ネットワーク１１３を介してサーバ１１１から最後に受信したストリーミングデータのタイムスタンプを記憶する。
【０２５１】
また、このとき、送信部２５２ａは、操作部１１５からの操作信号に基づいた制御部２５１の制御にしたがって、ネットワーク１１３を介して、切り替え操作要求をサーバ１１１に送信する。そして、切り替え操作要求を受信したサーバ１１１は、操作後のストリーミングデータを送信するが、そのストリーミングデータには、マーク情報が付加されていないことになる。
【０２５２】
すなわち、クライアント１１４は、ユーザによって切り替え操作が行われた場合、ネットワーク１１３を介してサーバ１１１から、マーク情報が付加されていない操作後のストリーミングデータを受信する。
【０２５３】
図２５は、バッファ２５５に蓄積されるストリーミングデータの詳細を説明する図である。
【０２５４】
図２５においては、バッファ２５５の状態が３つ表現されているが、図中上側から状態１、状態２、状態３と称するとすると、バッファ２５５に蓄積されているストリーミングデータは、時間の経過とともに、状態１、状態２、状態３の順に変化する。
【０２５５】
また、状態１では、点線で区切られた番号１０乃至番号１８からなる９つの四角がバッファ２５５に蓄積されているストリーミングデータを示し、図中左側から図中右側が時間方向となる。すなわち、バッファ２５５は、FIFO型のメモリであり古く蓄積したストリーミングデータから順にデータを読み出すので、９つの四角のうち、１番左側のストリーミングデータ１８がバッファ２５５の末尾に蓄積されたデータとなり、右側の四角ほど古く蓄積されたデータとなる。したがって、バッファ２５５において、９つの四角のうち、１番右側のストリーミングデータ１０がバッファ２５５の先頭のストリーミングデータとなり、再生部２５７は、その先頭のデータを再生する。
【０２５６】
同様に、バッファ２５５において、状態２では、１番右側のストリーミングデータ１４がバッファ２５５の先頭のストリーミングデータとなり、状態３では、１番右側のストリーミングデータ１８がバッファ２５５の先頭のストリーミングデータとなる。
【０２５７】
タイムスタンプ記憶部３１１は、ユーザによって切り替え操作がされた場合、図２５の状態１に示すように、バッファ２５５に蓄積されているストリーミングデータのうち、ネットワーク１１３を介してサーバ１１１から最後に受信したデータであって、バッファ２５５の末尾に蓄積されたストリーミングデータ１８のタイムスタンプを記憶する。具体的には、タイムスタンプ記憶部３１１は、例えば、上述した、図１４に示すような、バッファ２５５の末尾に蓄積されたストリーミングデータを構成するRTPパケットのタイムスタンプを記憶する。
【０２５８】
これにより、再生速度制御部２５６は、例えば、タイムスタンプ記憶部３１１に記憶されているRTPパケットのタイムスタンプと、バッファ２５５の先頭に蓄積されているストリーミングデータであって、再生部２５７によって再生されるストリーミングデータを構成するRTPパケットのタイムスタンプとを比較することで、切り替え操作後のストリーミングデータであるかがわかる。
【０２５９】
図２４のフローチャートに戻り、ステップＳ９６乃至ステップＳ９８において、図１５のステップＳ３６乃至ステップＳ３８と同様に、受信したストリーミングデータを一時的に蓄積しながら復号する処理が行われる。
【０２６０】
ステップＳ９９において、再生速度制御部２５６は、再生速度制御処理を行って、バッファ２５５に蓄積されたストリーミングデータが所定の再生速度となるように再生速度を制御し、ストリーミングデータを再生部２５７に供給する。
【０２６１】
ここで、図２６のフローチャートを参照して、ステップＳ９９の処理に対応する、図２３の再生速度制御部２５６による、再生速度制御処理の詳細について説明する。
【０２６２】
ステップＳ１１１およびステップＳ１１２において、図１６のステップＳ５１およびステップＳ５２と同様に、ユーザによって切り替え操作がされた場合、再生モードを早送り再生モードに切り替える処理が行われる。
【０２６３】
ステップＳ１１３において、再生速度制御部２５６は、バッファ２５５の先頭（再生位置）のストリーミングデータのタイムスタンプが、タイムスタンプ記憶部３１１に記憶しているタイムスタンプを経過したか否かを判定する。すなわち、再生速度制御部２５６は、図２５の状態２で示すように、タイムスタンプ記憶部３１１にタイムスタンプが記憶されているストリーミングデータ１８が、バッファ２５５の先頭にくるまで、再生モードを早送り再生モードにする。
【０２６４】
換言すれば、再生速度制御部２５６は、ユーザによって、切り替え操作がされた場合、バッファ２５５に蓄積されているストリーミングデータの再生速度を早送り再生にする。これにより、クライアント１１４は、サーバ１１１から切り替え操作後のストリーミングデータを受信後、即座に再生を行うことができる。
【０２６５】
図２６のフローチャートに戻り、その後、ステップＳ１１３およびステップＳ１１４において、再生速度制御部２５６は、図２５の状態３に示すように、ストリーミングデータ１８がバッファ２５５の先頭にきた場合、再生モードをスロー再生モードにする。すなわち、再生速度制御部２５６は、バッファ２５５に蓄積されているストリーミングデータのタイムスタンプが、タイムスタンプ記憶部３１１に記憶されているタイムスタンプを経過した場合、それ以降のストリーミングデータはユーザによる切り替え操作後のストリーミングデータであり、早送りすべきストリーミングデータが全て再生されたことになるので、再生モードを早送り再生モードからスロー再生モードに切り替えて、バッファ２５５に蓄積されるストリーミングデータのデータ量を増加させる。
【０２６６】
図２６のフローチャートに戻り、ステップＳ１１５およびステップＳ１１６において、再生速度制御部２５６は、ストリーミングデータのバッファ量が所定の量を超えていると判定された場合、バッファ２５５に十分な量のストリーミングデータが蓄積されたので、再生モードを通常再生モードに切り替える。これにより、再生速度制御部２５６は、通常の再生速度で、バッファ２５５に蓄積されているストリーミングデータを再生する。
【０２６７】
図２４のフローチャートに戻り、ステップＳ１００乃至ステップＳ１０２において、図１５のステップＳ４０乃至ステップＳ４２と同様に、ネットワーク１１３を介してサーバ１１１から受信しているストリーミングデータが終了するまで、ストリーミングデータを再生し出力する。
【０２６８】
このように、クライアント１１４自身がタイムスタンプを記憶することにより、サーバ１１１との協調動作をする必要がないため、ユーザは、クライアント１１４の独立性を高くして設計を行うことができる。すなわち、サーバ１１１側の動作に関係なく、クライアント１１４は、本機能を実装することができる。
【０２６９】
また、クライアント１１４がタイムスタンプを記憶する場合、マーク情報を付加する場合と同様に、ユーザによって切り替え操作がされた時点と、記憶するタイムスタンプに時間的な差分が生じるが、ネットワーク１１３の遅延が少なく、サーバ１１１で生成されたストリーミングデータが、ネットワーク１１３を介して順調にクライアント１１４に送信されている場合には、サーバ１１１がマーク情報を付加する場合と同等の効果を得ることができる。
【０２７０】
ところで、上述した例では、図１６および図２６のフローチャートに示されるように、再生速度制御部２５６は、切り替え操作がされたと判定された場合、再生モードを早送り再生モードに設定している（図１６のステップＳ５２または図２６のステップＳ１１２の処理）が、これに代えて、ネットワーク１１３を介してサーバ１１１から、マーク情報が付加されたRTPパケットを受信したか否かを判定し、マーク情報が付加されたRTPパケットを受信したと判定された場合、再生モードを早送り再生モードにするようにしてもよい。そこで、次に、図２７を参照して、マーク情報が付加されたRTPパケットを受信した場合に再生モードを早送り再生モードに切り替えるクライアント１１４の動作について説明する。
【０２７１】
なお、この場合のクライアント１１４の構成は、上述した図１１の構成と同様であり、また、クライアント１１４の動作についても、上述した図１５のフローチャートで示した動作と同様であるので、それらの説明は繰り返しになるので適宜省略する。
【０２７２】
すなわち、図２７は、図１５のステップＳ３９の処理に対応する、図１１の再生速度制御部２５６による、再生速度制御処理の詳細の他の例を説明するフローチャートである。
【０２７３】
ステップＳ１３１において、再生速度制御部２５６は、ネットワーク１１３を介して、サーバ１１１からマーク情報が付加されたストリーミングデータを受信したか否かを判定する。
【０２７４】
ステップＳ１３１において、マーク情報が付加されたストリーミングデータを受信したと判定された場合、ステップＳ１３２において、再生速度制御部２５６は、再生モードを早送り再生モードに設定する。そして、ステップＳ１３３において、バッファ２５５の先頭（再生位置）に蓄積されているストリーミングデータからマーク情報が検出されたと判定されるまで、再生速度制御部２５６は、再生モードを早送り再生モードにする。
【０２７５】
その後、ステップＳ１３３において、バッファ２５５の先頭（再生位置）に蓄積されているストリーミングデータからマーク情報が検出されたと判定された場合、ステップＳ１３４において、再生速度制御部２５６は、再生モードをスロー再生モードにする。
【０２７６】
ステップＳ１３５およびステップＳ１３６において、図１６のステップＳ５５およびステップＳ５６と同様に、バッファ２５５に蓄積されるストリーミングデータが所定の量を超えていると判定されるまで、再生モードがスロー再生モードに設定される。
【０２７７】
そして、処理は、図１５のステップＳ３９に戻り、それ以降の処理が実行される。
【０２７８】
すなわち、再生速度制御部２５６は、マーク情報がサーバ１１１からクライアント１１４に到着したか否かを判定し、マーク情報が到着したと判定された場合には、早送り再生モードに設定して早送り再生を開始させ、ストリーミングデータを、マーク情報が付された部分が再生される位置まで所定の時間で早送り再生させる。そして、ストリーミングデータがマーク情報を付された部分まで再生された場合、再生速度制御部２５６は、再生モードをスロー再生モードに設定する。
【０２７９】
このように、所定の時間をかけて早送り再生を行うことにより、所定の時間の間に新しいストリーミングデータがバッファ２５５に蓄積されるので、ネットワーク１１３の状態が不安定な場合でも、ストリーミングデータを連続して再生することができる。なお、上記所定の時間は、１秒以下、例えば300ms乃至600msとするのが望ましく、特に、400ms前後が望ましい。なお、この所定の時間は、長くし過ぎると操作性が悪くなり、逆に、短くし過ぎるとネットワーク１１３の状態が悪いときに再生が断裂する恐れがでてくる。
【０２８０】
なお、図２７のフローチャートに示されるステップＳ１３３に代えて、マーク情報が到着して上記所定の時間が経過したか否かを判定し、上記所定の時間が経過したと判定されたときに、ステップＳ１３３に進む処理を採用することもできる。この場合には、マーク情報が到着して上記所定の時間が経過すると、自動的に早送り再生モードからスロー再生モードに移行することになる。
【０２８１】
以上のように、画音ソース１１２に接続されたサーバ１１１から、ネットワーク１１３経由で、クライアント１１４にストリーミングデータが送信されるとき、クライアント１１４においては、バッファを持つことによって、安定したストリーミングデータの再生を行えるとともに、ユーザの画音ソース１１２に対する操作に対しても、十分に小さい遅延のうちにその操作に応じたストリーミングデータの再生を行うことができる。これにより、画音ソース１１２に対して所定の操作がされたときのレスポンスが向上し、操作性が向上する。
【０２８２】
また、ユーザの操作による遅延を縮小する動作を、バッファに蓄積されたストリーミングデータを早送り再生することで行っているので、ユーザは、操作前のストリーミングデータと、操作後のストリーミングデータを時間的な断裂なしに連続的に視聴することができる。これにより、ユーザは、トリックプレイを行う際のコンテンツの時間的な前後関係を正確に把握することができるようになり、画音ソース１１２の早送りや巻き戻しなどの操作性を向上させることができる。
【０２８３】
なお、再生速度制御部２５６は、本実施の形態では、バッファ２５５に蓄積されているストリーミングデータの再生速度を制御するとして説明したが、主に送受信用に用いられるバッファ２５３に蓄積されているストリーミングデータの再生速度を、バッファ２５５に蓄積されているストリーミングデータの再生速度と同様に変更するようにしてもよい。
【０２８４】
また、クライアント１１４は、本実施の形態では、バッファ２５３とバッファ２５５の２つのバッファを設けるとして説明したが、それに限らず、１つまたは３つ以上設けるようにしてもよい。再生速度制御部２５６は、バッファを１つまたは３つ以上設ける場合であっても、それらのバッファに蓄積されているストリーミングデータの再生速度を、バッファ２５５に蓄積されているストリーミングデータの再生速度と同様に変更するようにしてもよい。
【０２８５】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２８６】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD）を含む）、光磁気ディスク（MD（Mini-Disk）（商標）を含む）、若しくは半導体メモリなどよりなる図９のリムーバブルメディア１６１により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されている図９のROM１５２や記録部１５８などで構成される。
【０２８７】
また、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインターフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２８８】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２８９】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２９０】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２９１】
【図１】従来のストリーミングシステムの構成を示すブロック図である。
【図２】従来のクライアントの構成を示すブロック図である。
【図３】バッファの状態を説明する図である。
【図４】バッファの状態を説明する図である。
【図５】ユーザ操作時における、バッファに蓄積されるストリーミングデータを説明する図である。
【図６】ユーザ操作時における、バッファのフラッシュを説明する図である。
【図７】フラッシュ後のストリーミングデータを説明する図である。
【図８】本発明を適用したストリーミングシステムの一実施の形態の構成を示すブロック図である。
【図９】クライアントのハードウェア構成の例を示すブロック図である。
【図１０】サーバの機能的構成の例を示すブロック図である。
【図１１】クライアントの機能的構成の例を示すブロック図である。
【図１２】ストリーミングデータ送信の処理を説明するフローチャートである。
【図１３】フレームの詳細を説明する図である。
【図１４】RTPパケットを説明する図である。
【図１５】図１１のクライアントによる、ストリーミングデータ受信の処理を説明するフローチャートである。
【図１６】図１１の再生速度制御部による、再生速度制御処理の詳細を説明するフローチャートである。
【図１７】早送り再生モードを説明する図である。
【図１８】スロー再生モードを説明する図である。
【図１９】通常再生モードを説明する図である。
【図２０】クライアントの機能的構成の他の例を示すブロック図である。
【図２１】図２０のクライアントによる、ストリーミングデータ受信の処理を説明するフローチャートである。
【図２２】バッファに蓄積されるストリーミングデータの詳細を説明する図である。
【図２３】クライアントの機能的構成の他の例を示すブロック図である。
【図２４】図２３のクライアントによる、ストリーミングデータ受信の処理を説明するフローチャートである。
【図２５】バッファに蓄積されるストリーミングデータの詳細を説明する図である。
【図２６】図２３の再生速度制御部による、再生速度制御処理の詳細について説明するフローチャートである。
【図２７】図１１の再生速度制御部による、再生速度制御処理の詳細を説明するフローチャートである。
【符号の説明】
【０２９２】
１０１  ストリーミングシステム，  １１１  サーバ，  １１２  画音ソース，  １１３  ネットワーク，  １１４  クライアント，  １１５  操作部，  １１６  出力部，  ２１１  制御部，  ２１２  通信部，  ２１２ａ  送信部，  ２１２ｂ  受信部，  ２１３  入力部，  ２１４  エンコーダ，  ２１５  パケタイザ，  ２１６  バッファ，  ２１７  マーク情報付加部，  ２５１  制御部，  ２５２  通信部，  ２５２ａ  送信部，  ２５２ｂ  受信部，  ２５３  バッファ，  ２５４  デコーダ，  ２５５  バッファ，  ２５６  再生速度制御部，  ２５７  再生部，  ３０１  マーク情報付加部，  ３１１  タイムスタンプ記憶部
【図１】
2008022507.tif 000003
【図２】
2008022507.tif 000004
【図３】
2008022507.tif 000005
【図４】
2008022507.tif 000006
【図５】
2008022507.tif 000007
【図６】
2008022507.tif 000008
【図７】
2008022507.tif 000009
【図８】
2008022507.tif 000010
【図９】
2008022507.tif 000011
【図１０】
2008022507.tif 000012
【図１１】
2008022507.tif 000013
【図１２】
2008022507.tif 000014
【図１３】
2008022507.tif 000015
【図１４】
2008022507.tif 000016
【図１５】
2008022507.tif 000017
【図１６】
2008022507.tif 000018
【図１７】
2008022507.tif 000019
【図１８】
2008022507.tif 000020
【図１９】
2008022507.tif 000021
【図２０】
2008022507.tif 000022
【図２１】
2008022507.tif 000023
【図２２】
2008022507.tif 000024
【図２３】
2008022507.tif 000025
【図２４】
2008022507.tif 000026
【図２５】
2008022507.tif 000027
【図２６】
2008022507.tif 000028
【図２７】
2008022507.tif 000029