以下、添付の図面を参照して、実施形態について詳細に説明する。尚、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
本実施形態のシステム全体の処理について、図1を用いて説明する。
図1は、本実施形態に係る、送信装置100と受信装置102との接続形態の一例を示す図である。本実施形態において、送信装置100と受信装置102とは、ネットワーク101を介して相互に接続されている。
送信装置100及び受信装置102は、コンテンツデータを所定の時間間隔毎に分割して取得したセグメントデータと、各セグメントデータに関する再生区間情報を含むメタデータ(以下、プレイリストと称す)とをネットワーク101を介して夫々送受信する。これにより、送信装置100及び受信装置102はコンテンツデータのストリーミングを行う。コンテンツデータとは、映像データ、音声データ等を示す。本実施形態では、送信装置100が、コンテンツデータとして映像データを受信装置102へ送信する例について以下に説明するが、本発明はこれに限定されない。即ち、送信装置100が、コンテンツデータとして音声データを受信装置102へ送信する場合も同様の処理方法を用いることができる。また、プレイリストは、各セグメントデータの再生順序、所在情報(URL等)、再生時間等が記載されたメタデータである。本実施形態では、プレイリストのフォーマットとしてテキストベースのM3U8形式を用いる。M3U8形式のプレイリストの詳細は図6を用いて後述する。
ネットワーク101は、例えば、インターネットや有線LAN(Local AreaNetwork)、または無線LAN(Wireless LAN)等により構成される。尚、本実施形態において、ネットワーク101はホームネットワークとしての有線LAN、または無線LANを想定しているが、本発明はネットワーク101の通信規格、規模、構成を問わない。即ち、ネットワーク101の通信規格として、WAN(Wide Area Network)、アドホックネットワーク、Bluetooth(登録商標)、Zigbee(登録商標)、UWB(Urtra Wide Band)等を用いてもよい。
送信装置100は、受信装置102からネットワーク101を介して送信されるプレイリストの取得要求、及びセグメントデータの取得要求に基づいて、プレイリストの送信、及びセグメントデータの送信を行う。送信装置100としては、例えば、カメラ、ビデオカメラ、スマートフォン、携帯電話、PC(Personal Computer)等が挙げられるが、本発明はこれに限定されない。即ち、送信装置100は、後述のハードウェア構成、及びモジュール構成を満たすものであればよい。また、送信装置100が送信する映像データは、送信装置100内で生成されてもよいし、他のサーバ装置等で生成されて送信装置100へ送信されてもよい。
受信装置102は、送信装置100からネットワーク101を介して送信されるプレイリストの受信(メタデータ受信)、及びセグメントデータの受信(セグメント受信)を行う。さらに、本実施形態において受信装置102は、受信した映像データを再生、及び保存を行う機能を有する。尚、受信装置102が受信した映像データを別の装置に送信して再生、及び保存させることとしてもよい。受信装置102としては、例えば、スマートフォン、携帯電話、PC、テレビ等が挙げられるが、本発明はこれに限定されない。即ち、受信装置102は、後述のハードウェア構成、及びモジュール構成を満たすものであればよい。また、ネットワーク101に接続される受信装置102は一台のみであってもよいし、複数台存在してもよい。
次に、本実施形態の送信装置100について、図2、及び図3を用いて説明する。
図2は、本実施形態に係る、送信装置100の内部構成の一例を示すブロック図である。
201は中央処理装置(CPU)であり、以下に記す各部を統括的に制御する。202はRAMであり、CPU201の主メモリ、ワークエリア等として機能する。203はROMであり、CPU201で実行される制御プログラム等を格納している。204はユーザの指示を受け取る操作部であり、ボタンやモードダイヤル等が含まれる。
205は撮像部であり、被写体の光情報(信号)をセンサ(撮像素子)で受光し、受光した信号をA/D変換して、映像データを取得する。206は画像処理部であり、撮像部205で取得された映像データ、またはデジタル信号処理部211から出力される映像データを利用して画像処理を行う。207は各種データの転送経路となるバスである。例えば、撮像部205によって取得された映像データはこのバス207を介して所定の処理部に送られる。
208は表示制御部であり、表示部209に表示される、画像や文字の表示を制御する。209は撮像部205で取得された画像や文字の表示を行う表示部であり、例えば、液晶ディスプレイが用いられる。表示部209はタッチスクリーン機能を有していてもよく、その場合はタッチスクリーンを用いたユーザ指示を操作部204の入力として扱うことも可能である。210は撮像部制御部であり、フォーカスを合わせる、シャッターを開く・閉じる、絞りを調節する等の、CPU201からの指示に基づいた撮像系の制御を行う。211はデジタル信号処理部であり、バス207を介して撮像部205から受信した映像データに対し、ホワイトバランス処理、ガンマ処理、ノイズ提言処理等の各種処理を行う。
212はエンコーダ部であり、撮像部205、またはデジタル信号処理部211から出力される映像データをMPEG−2方式で圧縮符号化(以下、符号化)し、MPEG−2TS方式で多重化することにより、各セグメントデータを生成する。MPEG−2はMoving Picture Experts Group−2の略称である。一般的に、映像データは情報量が大きいため、ネットワークを介して映像データを送受信する場合には、符号化されたデータを用いる。MPEG−2 TSは、Moving Picture Experts Group−2 Transport Streamの略称である。MPEG−2 TSは、符号化された映像データを多重化し、伝送するためのコンテナ形式である。本実施形態において、エンコーダ部212は、符号化した映像データを所定の時間間隔毎にセグメントデータに分割する。尚、映像データの分割方法は所定の時間間隔毎に限られず、任意の方法により分割することができる。即ち、所定の情報量間隔毎に分割されても構わない。
213は外部メモリ制御部であり、パーソナルコンピュータ(以下、PC)やその他のメディア(例えば、ハードディスク、メモリカード、CFカード、SDカード、USBメモリ)に繋ぐためのインターフェースである。
214は通信制御部であり、通信部215の制御を行う。通信制御部214は、受信装置102からの映像配信リクエストに対する通信制御、及び受信装置102へ送信する映像データに対する通信制御を行う。通信制御部214における通信制御処理の詳細については後述する。
215は通信部であり、受信装置102生成部216で生成されたプレイリストや、エンコーダ部212で生成されたセグメントデータを取得し、当該プレイリスト、及び当該セグメントデータを受信装置102へ送信する。また、通信部215は受信装置102から送信された制御情報の受信を行う。尚、本実施形態において通信部215は、通信プロトコルとしてHTTP(HyperText Transfer Protocol)を用いるものとする。
216は生成部であり、エンコーダ部212において生成されたセグメントデータに関する再生区間情報を含むプレイリストを生成する。生成部216におけるプレイリストの生成処理の詳細については後述する。
尚、送信装置100の構成要素は上記の各処理部以外にも存在するが、本発明の主眼ではないので、説明を省略する。
次に、本実施形態の送信装置100によるプレイリストの生成処理の詳細について説明する。
図3は、本実施形態に係る、送信装置100の生成部216におけるプレイリストの生成処理手順の一例を示すフローチャートである。
まず、生成部216は、エンコーダ部212においてセグメントデータが生成されたか否かを判定する(ステップS301)。本実施形態において、生成部216は、エンコーダ部212において所定の時間間隔毎に分割されたセグメントデータの生成が完了したか否かを判定する。
ステップS301でセグメントデータが生成されたと判定された場合(ステップS301のYES)、生成部216は、新しく生成されたセグメントデータに関する再生区間情報をプレイリストへ追加する(ステップS302)。一方、ステップS301でセグメントデータが生成されていないと判定された場合(ステップS301のNO)、ステップS303の処理を行う。
ステップS303において、生成部216は、プレイリストに示されたセグメントデータのうち、受信装置102へ送信済みのセグメントデータがあるか否かを判定する。
ステップS303で送信済みのセグメントデータがあると判定された場合(ステップS303のYES)、生成部216は、送信済みのセグメントデータに関する再生区間情報をプレイリストから削除する(ステップS304)。
ステップS303で送信済みのセグメントデータがないと判定された場合(ステップS303のNO)やステップS304の処理を完了した場合、生成部216は、ストリーミングが終了されたか否かを判定する(ステップS305)。ここで、生成部216は、ユーザのストリーミング終了指示を操作部204が受信したかを判定したり、受信装置102からのストリーミング終了リクエストを通信部215が受信したかを判定したりすることにより、終了の判定を行うことが可能である。
ステップS305でストリーミングを終了しないと判定された場合には、ステップS301へと処理を戻し、以降のセグメントデータに関するプレイリストの生成処理を行う。生成されるプレイリストの例については、図6の説明で後述する。
次に、本実施形態の受信装置102について、図4、及び図5を用いて説明する。
図4は、本実施形態に係る、受信装置102の内部構成の一例を示すブロック図である。
401は中央処理装置(CPU)であり、以下に記す各部を統括的に制御する。
402はRAMであり、CPU401の主メモリ、ワークエリア等として機能する。
403はROMであり、CPU401で実行される制御プログラム等を格納している。
404はユーザの指示を受け取る操作部であり、ボタンやモードダイヤル等が含まれる。
405は保存部であり、通信部412によって受信した映像データを、外部メモリ制御部410を介して保存する。
406は各種データの転送経路となるバスである。例えば、通信部412によって受信された映像データはこのバス406を介して所定の処理部に送られる。
407は表示制御部であり、表示部408に表示される、画像や文字の表示を制御する。
408は通信部412で受信された画像や文字の表示を行う表示部であり、例えば、液晶ディスプレイが用いられる。表示部408はタッチスクリーン機能を有していてもよく、その場合はタッチスクリーンを用いたユーザ指示を操作部404の入力として扱うことも可能である。
409はデコーダ部である。デコーダ部409は、通信部412で受信された映像データをMPEG−2 TS方式で逆多重化し、さらに逆多重化した映像データをMPEG−2方式で復号する。
410は外部メモリ制御部であり、PCやその他のメディア(例えば、ハードディスク、メモリカード、CFカード、SDカード、USBメモリ)に繋ぐためのインターフェースである。
411は通信制御部であり、通信部412の制御を行う。通信制御部411は、送信装置100から受信する映像データや、送信装置100へ送信する映像配信リクエスト及び制御情報に対する通信制御を行う。通信制御部411における通信制御処理の詳細については図5で後述する。
412は通信部であり、送信装置100から送信されるプレイリストやセグメントデータの受信、及び送信装置100へ制御情報の送信を行う。
413はセグメントデータ制御部であり、送信装置100から送信されたプレイリストから、各セグメントデータの再生順序、所在情報(URL等)、再生時間(時間長)等を解析し、受信するセグメントデータを制御する。
続いて、本実施形態の受信装置102による映像データの受信制御の詳細について説明する。
図5は、実施形態の受信装置102におけるセグメントデータの受信制御処理手順の一例を示すフローチャートである。
まず、通信制御部411は、送信装置100へプレイリストの取得要求(以下、プレイリスト要求)を送信する(ステップS501)。ここで、プレイリスト要求の送信には、HTTP GETメソッドを使用し、プレイリスト要求のURLが予め送信装置100から通知されているものとする。また、プレイリスト要求の送信タイミングは任意であるが、セグメントデータが生成される時間間隔に合わせて送信することにより、無駄な通信を削減することが可能である。
次に、通信部412は、ステップS501におけるプレイリスト要求に基づいて送信装置100から送信されたプレイリストを受信する(ステップS502)。
続いて、セグメントデータ制御部413は、ステップS502において通信部412が受信したプレイリストに、複数のセグメントデータに関する再生区間情報が記載されているか否かを判定する(ステップS503)。
本実施形態において送信装置100は、セグメントデータを所定の時間間隔毎に定期的に生成している。そのため、送信装置100と受信装置102との間の通信遅延や受信装置102の処理遅延等が原因で、送信装置100におけるセグメントデータの生成タイミングよりも受信装置102におけるプレイリスト要求の送信タイミングが遅れることがある。このような場合には、送信装置100で生成されるプレイリストに、複数のセグメントデータに関する再生区間情報が記載されることになる。一方、送信装置100におけるセグメントデータの生成タイミングと受信装置102におけるプレイリスト要求の送信タイミングとが一致する場合には、送信装置100で生成されるプレイリストに、単一のセグメントデータに関する再生区間情報が記載される。
ステップS503でプレイリストに複数のセグメントデータの再生区間情報が記載されていると判定した場合(ステップS503のYES)、セグメントデータ制御部413は受信装置102が受信した映像データを保存するか否かを判定する(ステップS504)。ここで、セグメントデータ制御部413は、ユーザが操作部404で選択し、RAM402に設定された保存モード(保存情報)を判定することにより、受信装置102で受信された映像データを保存するか否かを判定することが可能である。尚、本発明はこれに限定されない。即ち、予めRAM402等に保存モードを設定して、セグメントデータ制御部413が当該RAM等に設定された保存モードに基づいて、受信装置102が受信した映像データを保存するか否かを判定してもよい。また、受信装置102が、映像データを受信しながら、同時に、受信した映像データを再生するストリーミング再生モードであるか否かに基づいて、受信装置102が受信した映像データを保存するか否かを判定してもよい。即ち、受信装置102がストリーミング再生モードである場合は、受信装置102が受信した映像データを保存しないと判定する。一方、受信装置102がストリーミング再生モードでない場合は、受信装置102が受信した映像データを保存すると判定する。
ステップS504で受信装置102が受信した映像データを保存すると判定された場合(ステップS504のYES)、セグメントデータ制御部413は、ステップS505の処理を行う。ステップS505においてセグメントデータ制御部413は、プレイリストに記載された複数のセグメントデータに関する再生区間情報から、未受信であり、且つ再生順序が最上位のセグメントデータを選択し、選択した当該セグメントデータの取得要求を送信する。尚、セグメントデータの取得要求を、以下、セグメントデータ要求と記載する。また、再生順序は、プレイリストに記載された各セグメントデータに関する再生区間情報に含まれるが、再生順序が最上位のセグメントデータとは、当該プレイリストに記載の複数のセグメントデータのうち、最初に再生されるべきセグメントデータのことを示す。さらに、本実施形態のように、エンコーダ部において、再生順序と同じ順序で各セグメントデータが生成される場合、再生順序が最上位のセグメントデータは、エンコーダ部において最も古くに生成されたセグメントデータのことを示す。このため、本実施形態では、再生順序が最上位のセグメントデータ、つまりエンコーダ部において最も古くに生成されたセグメントデータを最古のセグメントデータと称す。
ステップS504におけるセグメントデータ要求も、ステップS501におけるプレイリスト要求と同様にHTTP GETメソッドを使用する。これにより、ステップS504においてセグメントデータ制御部413は、ステップS502で受信したプレイリストに記載のセグメントデータに関するURL情報等の所在情報を参照して、セグメントデータ要求を送信する。
ステップS506において、通信部412は、ステップS505において送信したセグメントデータ要求に基づいて送信装置100から送信された、セグメントデータを受信する。
ステップS507においてセグメントデータ制御部413は、ステップS506で受信したセグメントデータが、ステップS502で受信したプレイリストに記載された複数のセグメントデータのうち、再生順序が最下位のセグメントデータであるか否かを判定する。尚、再生順序が最下位のセグメントデータとは、プレイリストに記載の複数のセグメントデータのうち、最後に再生されるべきセグメントデータのことを示す。さらに、本実施形態のように、エンコーダ部において、再生順序と同じ順序で各セグメントデータが生成される場合、再生順序が最下位のセグメントデータは、エンコーダ部において最も新しく生成されたセグメントデータのことを示す。このため、本実施形態では、再生順序が最下位のセグメントデータ、つまりエンコーダ部において最も新しく生成されたセグメントデータを最新のセグメントデータと称す。
ステップS507で、受信したセグメントデータがプレイリスト中の最新のセグメントデータであると判定された場合(ステップS507のYES)、デコーダ部409及び表示部408は、当該セグメントデータを復号及び再生する(ステップS508)。
更に、保存部405はステップS506で受信した映像データのセグメントデータを保存し(ステップS509)、セグメントデータ受信処理を終了する。
一方、ステップS507で、受信したセグメントデータがプレイリスト中の最新のセグメントデータでないと判定された場合(ステップS507のNO)、保存部405が当該セグメントデータの保存のみを行う(ステップS510)。そして、未受信のセグメントデータを受信するべくステップS505へ処理を戻し、ステップS505〜507を繰り返す。即ち、この場合、デコーダ部409及び表示部408は、当該セグメントデータの復号及び再生を行わない。
各ステップS507〜509の処理により、受信装置102が受信した映像データを保存する場合の通信遅延及び処理遅延時に、所定のセグメントデータに対してのみ復号及び再生の処理を行うことで、再生される映像データの不連続性を最小にすることができる。加えて、受信装置102が受信した映像データを保存する場合において上記の処理を行うことで、再生される映像データのリアルタイム性を向上させることができる。
また、ステップS503及びステップS504へと説明を戻す。
ステップS503においてプレイリストに複数のセグメントデータに関する再生区間情報が記載されていないと判定した場合(ステップS503のNO)、セグメントデータ制御部413はステップS511の処理を行う。また、ステップS504において受信装置102が映像データを保存しないと判定された場合(ステップS504のNO)にも、セグメントデータ制御部413はステップS511の処理を行う。
ステップS511においてセグメントデータ制御部413は、プレイリストに記載された複数のセグメントデータに関する再生区間情報から、再生順序が最下位のセグメントデータまたは最下位から所定数分上位のセグメントデータを選択する。さらに、セグメントデータ制御部413は、選択した当該セグメントデータに基づいて、セグメントデータ要求を送信する。また、再生順序が最下位から所定数分上位のセグメントデータとは、プレイリストに記載の複数のセグメントデータのうち、最後から所定数番目に再生されるべきセグメントデータを示す。そして、当該所定数は受信した映像データの再生において許容される遅延時間に基づいて設定されるものであり、本実施形態においてはRAM402に設定される。
ここで、セグメントデータ要求において、常に最新のセグメントデータを選択するよう設定することにより、最古のセグメントデータを選択するよりも遅延を解消することができ、リアルタイム性の高い映像データのストリーミングを実現できる。また、再生順序が最下位から所定数分上位のセグメントデータを選択するよう設定することで、映像データの再生においてユーザが許容する遅延時間を考慮したストリーミングを実現できる。
ステップS512において、通信部412は、ステップS511において送信したセグメントデータ要求に基づいて送信装置100から送信された、セグメントデータを受信する。
ステップS513において、デコーダ部409及び表示部408は、ステップS512で受信したセグメントデータを復号及び再生する。
各ステップS511〜513の処理により、受信装置102が受信した映像データを保存しない場合の通信遅延及び処理遅延時に、最古のセグメントデータや設定された許容遅延時間を超えるセグメントデータの送受信、復号、再生を行わないよう制御する。このため、受信装置102が受信した映像データを保存しない場合において、再生映像のリアルタイム性を向上させることができる。また、通信帯域節約や処理負荷軽減が可能になる。
次に、本実施形態の送信装置100と受信装置102との間における映像データの送受信処理について、図6、及び図7を用いて説明する。
図6は、本実施形態に係る、受信装置102が受信した映像データを保存しない場合の、送信装置100と受信装置102との間の各セグメントデータの送受信処理の一例を時間経過と共に示す図である。
各ステップS601〜603は、セグメントデータ1、セグメントデータ2、セグメントデータ3の生成タイミングを夫々示している。本実施形態において、各セグメントデータ1〜3の生成タイミングは所定の時間間隔で一定である。即ち、ステップS601とステップS602との時間間隔は、ステップS602とステップS603との時間間隔と同じであるとする。
ステップS604は、ネットワーク101における通信遅延や受信装置102における処理遅延が発生していない場合の、送信装置100及び受信装置102における映像データの送受信を示す。
まず、受信装置102はプレイリスト要求を送信装置100へ送信し(ステップS608)、当該プレイリスト要求を受信した送信装置100はプレイリストの応答(以下、プレイリスト応答)を受信装置102へ送信する(ステップS609)。
605は、送信装置100においてセグメントデータ1が生成された後に、送信装置100と受信装置102との間で送受信されるプレイリストである。プレイリスト605は、エンコーダ部212で生成された複数のセグメントデータのうち受信装置102が受信可能なセグメントデータを示すメタデータである。
本実施形態において、プレイリスト605には、セグメントデータ1に関する再生区間情報として、再生時間と所在情報とが記載されている。図6に示すように、プレイリスト605の1行目”#EXTINF:1”はセグメントデータ1の再生時間が1秒間であることを示しており、2行目の”http://xxx/segment1.ts”はセグメントデータ1の所在情報(URL)を示している。
次に、受信装置102は、受信したプレイリスト605の内容に基づいてセグメントデータ1の取得要求を送信装置100へ送信する(ステップS610)。そして、当該セグメントデータ1の取得要求を受信した送信装置100は、セグメントデータ1を受信装置102へ送信する(ステップS611)。
また、ステップS606は、ネットワーク101において通信遅延が発生した場合の、送信装置100及び受信装置102における映像データの送受信を示す。図6のように、送信装置100によってセグメントデータ2が生成された(ステップS602)後に受信装置102から送信されたプレイリスト要求(ステップS612)は、送信装置100によってセグメントデータ3が生成された(ステップS603)後に届く。
607は、この場合(図6に示すようにネットワーク101において通信遅延が発生した場合)に送信装置100から送信されるプレイリストである。プレイリスト607にはセグメントデータ2とセグメントデータ3とに関する再生区間情報(再生時間とURL)が記載されている。詳細には、プレイリスト607の1行目及び3行目の”#EXTINF:1”は、セグメントデータ2及びセグメントデータ3の再生時間が夫々1秒間であることを示している。また、2行目の”http://xxx/segment2.ts”がセグメントデータ2のURL、4行目の”http://xxx/segment3.ts”がセグメントデータ3のURLを示している。このように、前回、ステップS609で受信装置102が受信したプレイリスト605に記載のセグメントデータ1に関する再生区間情報はプレイリスト607から削除される。ステップS613で受信装置102が受信するプレイリスト607には、送信装置100で新たに生成されたセグメントデータ2とセグメントデータ3に関する再生区間情報が追加されている。
次に、受信装置102は、受信したプレイリスト607に複数のセグメントデータに関する再生区間情報が記載されていることを判定し、さらに自身が映像データを保存しない設定であることを判定する。このため、受信装置102は、プレイリスト607に記載された再生区間情報に対応する複数のセグメントデータのうち、再生順序がより下位であるセグメントデータ3の取得要求を送信装置100へ送信する(ステップS614)。本実施形態において、エンコーダ部は、再生順序と同じ順序で各セグメントデータを生成するため、再生順序がより下位のセグメントデータは、エンコーダ部においてより新しく生成されたセグメントデータを示す。
そして、当該セグメントデータ3の取得要求を受信した送信装置100は、セグメントデータ3を受信装置102へ送信する(ステップS615)。
このように、本実施形態において受信装置102は、プレイリスト607に複数のセグメントデータに関する再生区間情報が記載されていた場合、当該複数のセグメントデータのうち再生順序がより上位であるセグメントデータ2の復号及び再生をしない。このため、本実施形態によって、受信装置102が受信した映像データを保存しない場合に、遅延を解消することができ、再生される映像データのリアルタイム性を確保することができる。さらに、再生するセグメントデータを選抜することにより、全てのセグメントデータを再生する場合と比較して、復号及び再生における処理負荷を軽減することができる。
一方、図7は、実施形態に係る、受信装置102が受信した映像データを保存する場合の、送信装置100と受信装置102との間の各セグメントデータの送受信処理の一例を時間経過と共に示す図である。尚、図7において、図6と同じシーケンス部分については、同じ符号を付与し、説明を省略する。
ステップS701は、ネットワーク101において通信遅延が発生した場合の、送信装置100及び受信装置102における映像データの送受信を示す。受信装置102は図6に示した、受信装置102が受信した映像データを保存しない場合と同様に、ステップS613においてセグメントデータ2とセグメントデータ3とに関する再生区間情報が記載された、プレイリスト607を受信する。
次に、受信装置102は、ステップS613で受信したプレイリスト607に複数のセグメントデータに関する再生区間情報が記載されていることを判定し、さらに自身が映像データを保存する設定であることを判定する。このため、受信装置102は、プレイリスト607に記載された再生区間情報に対応する複数のセグメントデータのうち、再生順序がより上位であるセグメントデータ2の取得要求を送信装置100へ送信する(ステップS702)。本実施形態において、エンコーダ部は、再生順序と同じ順序で各セグメントデータを生成するため、再生順序が上位のセグメントデータは、エンコーダ部においてより古くに生成されたセグメントデータを示す。
そして、当該セグメントデータ2の取得要求を受信した送信装置100は、セグメントデータ2を受信装置102へ送信する(ステップS703)。
続いて、受信装置102は、プレイリスト607に記載された再生区間情報に対応する複数のセグメントデータのうち、送信装置100によって再生順序がより下位であるセグメントデータ3の取得要求を送信装置100へ送信する(ステップS704)。そして、当該セグメントデータ3の取得要求を受信した送信装置100は、セグメントデータ3を受信装置102へ送信する(ステップS705)。
上述した本実施形態によって、受信装置102が受信した映像データを保存する場合に、再生順序がより上位のセグメントデータ2の復号及び再生を行わずに保存のみ行い、再生順序がより下位のセグメントデータ3の復号及び再生と、保存とを行うよう制御する。これにより、保存される映像データの連続性を確保しつつ、再生される映像データのリアルタイム性を向上させることができる。さらに、再生するセグメントデータを選抜することにより、全てのセグメントデータを再生する場合と比較して、復号及び再生における処理負荷を軽減することができる。
以上のように、本実施形態の受信装置102のセグメントデータの受信制御処理により、受信装置102が受信した映像データを保存するか否かに応じて、取得要求を送信するセグメントデータを決定する。これにより、通信遅延や受信装置102の処理遅延時に、受信装置102において受信装置102が受信した映像データを保存する場合に保存する映像データの不連続性を最小にすることができる。また、受信装置102において受信装置102が受信した映像データを保存しない場合に再生する映像データのリアルタイム性を向上させることが可能になる。
<実施形態2>
前述の実施形態では、受信装置102が映像データの受信を制御する構成とした。これに対して本実施形態では、受信装置102が受信した映像データを保存するか否かを示す保存モードに基づいて、送信装置100が送信するセグメントデータを決定するように制御する。
図8は、本実施形態に係る、送信装置800の内部構成の一例を示すブロック図である。図8に示すように、本実施形態の送信装置800は、保存モード判定部801を備える。尚、図8において、図2と同じ処理部については、同じ符号を付与し、説明を省略する。 次に、本実施形態の送信装置800によるプレイリストの生成処理の詳細について説明する。
図9は、本実施形態に係る、送信装置800の生成部216におけるプレイリストの生成処理手順の一例を示すフローチャートである。尚、図9において、図3と同じ処理を行うステップについては、同じ符号を付与し、説明を省略する。
生成部216が新しく生成されたセグメントデータの再生区間情報をプレイリストへ追加(ステップS302)した後、保存モード判定部801は、受信装置102から、受信した映像データを保存するか否かを示す保存モードを取得する(ステップS901)。ここで、例えば、保存モード判定部801は、ユーザが操作部404で選択した保存モードに関する再生区間情報を受信装置102から受信することにより、受信装置102が受信した映像データを保存するか否かを判定することが可能である。
続いて、保存モード判定部801は、ステップS901で取得した保存モードから、受信装置102が受信した映像データを保存するか否かを判定する(ステップS902)。
ステップS902において受信装置102が映像データを保存すると判定された場合(ステップS902のYES)、生成部216はステップS303の処理を行う。
一方、ステップS902において受信装置102が映像データを保存しないと判定された場合(ステップS902のNO)、生成部216はステップS903の処理を行う。ステップS903において、生成部216は、プレイリストに記載された複数のセグメントデータに関する再生区間情報から最も古いセグメントデータに関する再生区間情報を削除する。
各ステップS901〜S903の処理により、本実施形態の送信装置800が生成するプレイリストは、受信装置102が映像データを保存しない場合における通信遅延及び処理遅延時に、新しく生成されたセグメントデータに関する再生区間情報のみが記載される。また、受信装置102が映像データを保存する場合には、本実施形態の送信装置800が生成するプレイリストは、実施形態1の送信装置100が生成するプレイリストと同様になる。
次に、本実施形態の送信装置800と受信装置102との間における映像データの送受信処理について、図10を用いて説明する。
図10は、本実施形態に係る、受信装置102が受信した映像データを保存しない場合の、送信装置800と受信装置102との間の各セグメントデータの送受信処理の一例を時間経過と共に示す図である。尚、図10において、図6と同じシーケンス部分については、同じ符号を付与し、説明を省略する。
尚、本実施形態に係る受信装置102が映像データを保存する場合の、送信装置800と受信装置102の送受信データの関係は、図7と同様のため説明は省略する。
ステップS1001は、ネットワーク101において通信遅延が発生した場合の、送信装置800及び受信装置102における映像データの送受信を示す。尚、セグメントデータ2が生成された(ステップS602)後に受信装置102から送信されたプレイリスト要求(ステップS612)は、第1の実施形態と同様に送信装置800によってセグメントデータ3が生成された(ステップS603)後に届くものとする。
ステップS1002において、送信装置800及び受信装置102は、受信装置102に設定された保存モードに関する情報を送受信する。
さらに、ステップS1003において、送信装置800及び受信装置102は、送信装置800の生成部216によって生成されたプレイリストを送受信する。プレイリスト1003には、セグメントデータ3に関する再生区間情報のみが記載されており、セグメントデータ2に関する再生区間情報は削除されている。
続いて、受信装置102は、プレイリスト1003に記載されたセグメントデータ3の取得要求を送信装置800へ送信する(ステップS1005)。そして、当該セグメントデータ3の取得要求を受信した送信装置800は、セグメントデータ3を受信装置102へ送信する(ステップS1006)。
上述のように、本実施形態の送信装置800により、受信装置102が受信した映像データを保存するか否かに応じて、送信装置800が送信するセグメントデータを切り換えるようプレイリストを生成する。これにより、通信遅延や受信装置102の処理遅延時に、受信装置102において受信した映像データを保存する場合に保存する映像データの不連続性を最小にすることができる。また、通信遅延や受信装置102の処理遅延時に、受信装置102において受信した映像データを保存しない場合の再生する映像データのリアルタイム性を向上させることが可能になる。さらに、再生するセグメントデータを選抜することにより、全てのセグメントデータを再生する場合と比較して、復号及び再生における処理負荷を軽減することができる。
<実施形態3>
上記実施形態1、及び実施形態2において、其々図2、図4、及び図8に示した各処理部212、214、216、409、411、413、801はハードウェアでもって構成しているものとして説明した。しかし、これらの図に示した各処理部212、214、216、409、411、413、801で行う処理をコンピュータプログラムで実行しても良い。
この場合において、図2のCPU201は、RAM202やROM203に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上述した実施形態に係る送信装置が行うものとして上述した各処理を実行する。即ち、CPU201は、各処理部212、214、216として機能することになる。
また、図4のCPU401は、RAM402やROM403に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上述した実施形態に係る受信装置が行うものとして上述した各処理を実行する。即ち、CPU401は、各処理部409、411,413として機能する。
また、図8のCPU201は、RAM202やROM203に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上述した実施形態に係る送信装置が行うものとして上述した各処理を実行する。即ち、CPU201は、各処理部212、214、216、801として機能する。
上述の構成における作動は、前述のフローチャートで説明した作動をCPU201、401が中心となってその制御を行う。
<その他の実施形態>
上述の各実施形態において、映像データの符号化・復号化方式としてMPEG−2を用いたが、MPEG−2に限らず、MPEG−4 AVC/H.264、VC−1等、他の映像データの符号化・復号化方式を用いることが可能である。
また、上述の各実施形態において、符号化された映像データのコンテナ形式としてMPEG−2 TSを用いたが、MPEG−2に限らず、MP4形式、MOV形式等、ストリーミングに適した他のコンテナ形式を用いることも可能である。
また、上述の各実施形態において、プレイリストのフォーマットとしてM3U8形式を用いたが、M3U8形式に限らず、M3U形式、WPL形式等、他のプレイリストフォーマットを用いることも可能である。
また、上述の各実施形態において、各プレイリスト605、607、1003には、受信装置102が受信可能なセグメントデータを示すメタデータとして、当該セグメントデータの再生時間と所在情報とが記載されているが、本発明はこれに限定されない。即ち、各プレイリスト605、607、1003は、例えば、セグメントデータの再生時間、所在情報(URL、アドレス情報等)、再生順序、終端情報等を含んでいてもよく、これら全てを含む必要もない。
また、上述の各実施形態において、受信装置102が受信した映像データを保存するか否かを示す保存モードに基づいて、送信装100が送信するセグメントデータを決定したが、本発明はこれに限定されない。即ち、受信装置102が受信した映像データをリアルタイムで再生するモードであるか否かに基づいて、送信装置100が送信するセグメントデータを決定しても構わない。よって、受信装置102が受信した映像データをリアルタイムで再生するモードである場合に、当該映像データをリアルタイムで再生するモードでない場合よりも、再生順序が下位のセグメントデータを取得するよう、送信装置100及び受信装置102を制御してもよい。
また、受信装置102が映像データの受信における遅延を許可するモードであるか否かに基づいて、送信装100が送信するセグメントデータを決定しても構わない。よって、受信装置102が映像データの受信における遅延を許可するモードである場合に、当該遅延を許可するモードでない場合よりも、再生順序が上位のセグメントデータを取得するよう、送信装置100及び受信装置102を制御してもよい。
さらに、受信装置102が受信した映像データを途切れずに全て再生するモードであるか否かに基づいて、送信装置100が送信するセグメントデータを決定しても構わない。よって、受信装置102が受信した映像データを途切れずに全て再生するモードである場合に、当該全てを再生するモードでない場合よりも、再生順序が上位のセグメントデータを取得するよう、送信装置100及び受信装置102を制御してもよい。
また、上述の各実施形態において、受信装置102が受信した映像モードを保存するか否かを示す保存モードに基づいて、送信装置100が送信するセグメントデータを決定する際に、プレイリストに記載された再生順序を用いたが、本発明はこれに限定されない。即ち、セグメントデータの再生順序ではなく、送信装置100におけるセグメントデータの生成順序や、受信装置102におけるセグメントデータの記録順序等、他の順序を用いて、送信装100が送信するセグメントデータを決定しても構わない。
また、上述の各実施形態において、データ転送プロトコルとしてHTTPを用いたが、HTTPに限らず、HTTPS、TCP、UDP等、OSI参照モデルの同一レイヤーの他のプロトコルまたは別レイヤーの他のプロトコルを用いることが可能である。
また、上述の各実施形態において、送信装置100及び送信装置800は、図2及び図8に示すように撮像部205を有するが、本発明はこれに限定されない。即ち、撮像部205の代わりに、映像データを取得する取得部を有していてもよい。この場合、当該取得部で取得された映像データは、撮像部205で取得された映像データと同様に、バス207を介して所定の処理部に送られる。
また、上述の各実施形態において、送信装置100及び送信装置800は、図2及び図8に示すようにエンコーダ部212を有するが、本発明はこれに限定されない。即ち、エンコーダ部212の代わりに、セグメントデータを取得するセグメント取得部を有していてもよい。この場合、送信装置100外の他の装置によって生成されたセグメントデータを当該セグメント取得部で取得する。そして、セグメント取得部で取得されたセグメントデータは、エンコーダ部212で生成されたセグメントデータと同様に、バス207を介して所定の処理部に送られる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワークまたは各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。