(57)【要約】【課題】  セグメントとプレイリストを生成する撮像装置において、端末からの要求に応じて、セグメントの管理をする技術を提供する。【解決手段】  撮像装置は、撮像した映像情報を例えば０．５秒を単位とするセグメント単位に一時的に記憶し、外部装置がそのセグメントを取得するためのプレイリストを作成する。外部装置からプレイリストの送信要求があるたびに、それを送信し、且つ、セグメントの要求があるたびに該当するセグメントを送信する。撮像装置は、撮像手段により新たなセグメントが得られた場合にはプレイリストに該当するセグメントに関する記述を追記し、セグメントを送信した場合には送信済みのセグメントに関する情報をプレイリストから削除する。【選択図】  図６
2014116805.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段と、外部装置と通信する通信手段を有する撮像装置であって、
前記撮像手段により得られた映像データを、所定時間を単位とするセグメントに分割して所定のメモリに一時的に記憶する記憶手段と、
該記憶手段で記憶されたセグメントを外部装置が取得するために参照する情報を記述したリストを管理する管理手段と、
前記通信手段を介して外部装置から前記リストの要求を受信した場合に、前記リストを前記外部装置に送信する第１の送信手段と、
前記通信手段を介して前記外部装置から、前記リストに記述されたセグメントの要求を受信した場合には、要求されたセグメントを前記外部装置に送信する第２の送信手段とを有し、
前記管理手段は、
前記撮像手段から新たなセグメントを得るたびに、前記リストに当該新たなセグメントを取得するための情報を追記し、
前記第２の送信手段によってセグメントの送信した場合、前記リストから当該送信済みとなったセグメントを前記メモリから削除すると共に当該削除するセグメントに係る情報を前記リストから削除する
ことを特徴とする撮像装置。
【請求項２】
前記管理手段は、
前記リストを解析し、時間的に連続する未送信の複数のセグメントがあるか否かを判定する判定手段と、
該判定手段で時間的に連続する未送信の複数のセグメントがあると判定した場合、前記保持手段に保持された該当するセグメントを結合して、前記リストにおける記述を、結合した後のセグメントに係る情報で更新する更新手段と
を含むことを特徴とする請求項１に記載の撮像装置。
【請求項３】
撮像装置と通信するための通信手段と、当該通信手段を介して受信した映像データを表示する表示手段とを有する情報処理装置であって、
前記撮像装置に一時的に記憶される所定時間の映像データを表わすセグメントを取得するため、当該セグメントに関する情報を記述したリストの要求を、前記通信手段を介して前記撮像装置に送信することで、前記要求した前記リストを取得するリスト取得手段と、
該リスト取得手段で取得したリストの中の最新のセグメントの要求を前記通信手段を介して前記撮像装置に送信することで、前記要求したセグメントを前記撮像装置から取得する第１の映像取得手段と、
該第１の映像取得手段で取得したセグメントを前記表示手段で表示する映像表示手段と、
前記リスト取得手段、前記第１の映像取得手段、及び、前記映像表示手段による、１つのセグメントの受信と表示に係る１セット分の再生処理を繰り返し実行する制御手段と、
前記リスト中に非最新のセグメントがあったことに起因する未取得のセグメントがあるか否かを判定する判定手段と、
前記判定手段の判定の結果が、未取得のセグメントがあることを示している場合、当該未取得となっていたセグメントの要求を前記撮像装置に送信し、取得する第２の映像取得手段と
を有することを特徴とする情報処理装置。
【請求項４】
前記第１の映像取得手段、及び、前記第２の映像取得手段で取得したセグメントを、時間順に結合して、１つのストリーミングデータとして保存する保存手段を更に有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
撮像手段と、外部装置と通信する通信手段を有する撮像装置の制御方法であって、
前記撮像手段により得られた映像データを、所定時間を単位とするセグメントに分割して所定のメモリに一時的に記憶する記憶工程と、
該記憶工程で記憶されたセグメントを外部装置が取得するために参照する情報を記述したリストを管理する管理工程と、
前記通信手段を介して外部装置から前記リストの要求を受信した場合に、前記リストを前記外部装置に送信する第１の送信工程と、
前記通信手段を介して前記外部装置から、前記リストに記述されたセグメントの要求を受信した場合には、要求されたセグメントを前記外部装置に送信する第２の送信工程とを有し、
前記管理工程は、
前記撮像手段から新たなセグメントを得るたびに、前記リストに当該新たなセグメントを取得するための情報を追記し、
前記第２の送信工程によってセグメントの送信した場合、前記リストから当該送信済みとなったセグメントに係る情報を削除する
ことを特徴とする撮像装置の制御方法。
【請求項６】
撮像装置と通信するための通信手段と、当該通信手段を介して受信した映像データを表示する表示手段とを有する情報処理装置の制御方法であって、
前記撮像装置に一時的に記憶される所定時間の映像データを表わすセグメントを取得するため、当該セグメントに関する情報を記述したリストの要求を、前記通信手段を介して前記撮像装置に送信することで、前記要求した前記リストを取得するリスト取得工程と、
該リスト取得工程で取得したリストの中の最新のセグメントの要求を前記通信手段を介して前記撮像装置に送信することで、前記要求したセグメントを前記撮像装置から取得する第１の映像取得工程と、
該第１の映像取得工程で取得したセグメントを前記表示手段で表示する映像表示工程と、
前記リスト取得工程、前記第１の映像取得工程、及び、前記映像表示工程による、１つのセグメントの受信と表示に係る１セット分の再生処理を繰り返し実行する制御工程と、
前記リスト中に非最新のセグメントがあったことに起因する未取得のセグメントがあるか否かを判定する判定工程と、
前記判定工程の判定の結果が、未取得のセグメントがあることを示している場合、当該未取得となっていたセグメントの要求を前記撮像装置に送信し、取得する第２の映像取得工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項７】
撮像手段と、外部装置と通信する通信手段を有するコンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１又は２に記載の撮像装置として機能させるためのプログラム。
【請求項８】
撮像装置と通信するための通信手段と、当該通信手段を介して受信した映像データを表示する表示手段とを有するコンピュータに読み込ませ実行させることで、前記コンピュータを、請求項３に記載の情報処理装置として機能させるためのプログラム。
【請求項９】
請求項７又は８に記載のプログラムを格納したことを特徴とするコンピュータが読み込み可能な記憶媒体。
【請求項１０】
撮像手段を有し外部と通信する手段を有する撮像装置と、当該撮像装置と通信するための手段及び前記撮像装置より受信した映像データを表示する表示手段とを有する情報処理装置とで構成される映像処理システムであって、
前記撮像手段は、
前記撮像手段により得られた映像データを、所定時間を単位とするセグメントに分割して所定のメモリに一時的に記憶する記憶手段と、
該記憶手段で記憶されたセグメントを前記情報処理装置が取得するために参照する情報を記述したリストを管理する管理手段と、
前記情報処理装置から前記リストの要求を受信した場合に、前記リストを前記情報処理装置に送信する第１の送信手段と、
前記情報処理装置から、前記リストに記述されたセグメントの要求を受信した場合には、要求されたセグメントを前記情報処理装置に送信する第２の送信手段とを有し、
前記管理手段は、
前記撮像手段から新たなセグメントを得るたびに、前記リストに当該新たなセグメントを取得するための情報を追記し、
前記第２の送信手段によってセグメントを送信した場合、前記リストから当該送信済みとなったセグメントに係る情報を削除し、
前記情報処理装置は、
前記撮像装置に一時的に記憶される所定時間の映像データを表わすセグメントを取得するため、当該セグメントに関する情報を記述したリストの要求を、前記撮像装置に送信することで、前記要求した前記リストを取得するリスト取得手段と、
該リスト取得手段で取得したリストの中の最新のセグメントの要求を前記撮像装置に送信することで、前記要求したセグメントを前記撮像装置から取得する第１の映像取得手段と、
該第１の映像取得手段で取得したセグメントを前記表示手段で表示する映像表示手段と、
前記リスト取得手段、前記第１の映像取得手段、及び、前記映像表示手段による、１つのセグメントの受信と表示に係る１セット分の再生処理を繰り返し実行する制御手段と、
前記リスト中に非最新のセグメントがあったことに起因する未取得のセグメントがあるか否かを判定する判定手段と、
前記判定手段の判定の結果が、未取得のセグメントがあることを示している場合、当該未取得となっていたセグメントの要求を前記撮像装置に送信し、取得する第２の映像取得手段とを有する
ことを特徴とする映像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークを介した二つの機器間におけるライブストリーミングに関するものである。
【背景技術】
【０００２】
従来のライブストリーミングにおいては、リアルタイム性が重視されるため、ストリームデータの転送にはＲＴＰ（Realtime Transport Protocol）／ＵＤＰ（User Datagram Protocol）プロトコルが用いられていた。このライブストリーミングは視聴用として利用されるのが一般的であった。しかしこの方法では、データ欠損などが発生することがあり、ストリームデータを受信端末で記録したい場合などには不向きであった。これに対して、カメラが取り込んだ映像を連続的に送信する通常モードと、クライアントからの指示でカメラが一旦ファイルを格納し、そのファイルを転送するファイル転送モードとを切り替えて動作させるものがあった。（特許文献１）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３４１６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、例えばストリーミングデータを一定時間に分割したセグメントデータとその情報を記述したプレイリストなどを利用してストリーミングを実現する方法も考えられる。
しかしながら、上記従来例では、通信プロトコルとしてＨＴＴＰを利用しており、ネットワーク状況により遅延が大きくなることがあったため、プレイリスト方式の場合にはセグメントの取得が遅延し、ライブ視聴に適さないという問題点があった。
【０００５】
しかしながら、上記従来例では、通信プロトコルとしてＨＴＴＰを利用しており、ネットワーク状況により遅延が大きくなることがあったため、プレイリスト方式の場合にはセグメントの取得が遅延し、ライブ視聴に適さないという問題点があった。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の撮像装置は以下の構成を備える。すなわち、
撮像手段と、外部装置と通信する通信手段を有する撮像装置であって、
前記撮像手段により得られた映像データを、所定時間を単位とするセグメントに分割して所定のメモリに一時的に記憶する記憶手段と、
該記憶手段で記憶されたセグメントを外部装置が取得するために参照する情報を記述したリストを管理する管理手段と、
前記通信手段を介して外部装置から前記リストの要求を受信した場合に、前記リストを前記外部装置に送信する第１の送信手段と、
前記通信手段を介して前記外部装置から、前記リストに記述されたセグメントの要求を受信した場合には、要求されたセグメントを前記外部装置に送信する第２の送信手段とを有し、
前記管理手段は、
前記撮像手段から新たなセグメントを得るたびに、前記リストに当該新たなセグメントを取得するための情報を追記し、
前記第２の送信手段によってセグメントの送信した場合、前記リストから当該送信済みとなったセグメントを前記メモリから削除すると共に当該削除するセグメントに係る情報を前記リストから削除することを特徴とする。
【０００７】
また、本発明に係る情報処理装置は以下の構成を有する。すなわち、
撮像装置と通信するための通信手段と、当該通信手段を介して受信した映像データを表示する表示手段とを有する情報処理装置であって、
前記撮像装置に一時的に記憶される所定時間の映像データを表わすセグメントを取得するため、当該セグメントに関する情報を記述したリストの要求を、前記通信手段を介して前記撮像装置に送信することで、前記要求した前記リストを取得するリスト取得手段と、
該リスト取得手段で取得したリストの中の最新のセグメントの要求を前記通信手段を介して前記撮像装置に送信することで、前記要求したセグメントを前記撮像装置から取得する第１の映像取得手段と、
該第１の映像取得手段で取得したセグメントを前記表示手段で表示する映像表示手段と、
前記リスト取得手段、前記第１の映像取得手段、及び、前記映像表示手段による、１つのセグメントの受信と表示に係る１セット分の再生処理を繰り返し実行する制御手段と、
前記リスト中に非最新のセグメントがあったことに起因する未取得のセグメントがあるか否かを判定する判定手段と、
前記判定手段の判定の結果が、未取得のセグメントがあることを示している場合、当該未取得となっていたセグメントの要求を前記撮像装置に送信し、取得する第２の映像取得手段とを有する。
【発明の効果】
【０００８】
本発明によれば、外部装置と通信可能な撮像装置において、とくにライブストリーミングでストリーミングデータを外部装置に記録する場合に、視聴への影響を抑えつつ、欠損のないデータを保存することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態を適用可能なカメラ１０００の構成例を示す図。
【図２】第１の実施形態を適用可能な/端末２０００の構成例を示す図。
【図３】第１の実施形態に係る通信システムの通信シーケンスを示す図。
【図４】第１の実施形態に係るプレイリストの例を示す図。
【図５】第１の実施形態に係る輻輳時を含んだプレイリストの推移の例を示す図。
【図６】第１の実施形態に係るカメラ１０００の処理フローチャートを示す図。
【図７】第１の実施形態に係る端末２０００の処理フローチャートを示す図。
【図８】第１の実施形態に係る端末２０００における画面例を示す図。
【図９】第２の実施形態に係る輻輳時を含んだプレイリストの推移の例を示す図。
【図１０】第２の実施形態に係るカメラ１０００の処理フローチャートを示す図。
【図１１】第２の実施形態に係る端末２０００の処理フローチャートを示す図。
【発明を実施するための形態】
【００１０】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１１】
［第１の実施形態］
図１、図２は、第１の実施形態の映像処理システムを構成メンバである撮像装置としてのカメラ１０００、並びに、当該カメラ１０００から受信した映像を表示する情報処理装置としての端末２０００の一例の構成を示している。撮像装置としてはいわゆる撮影機能をメインとするスチルカメラやビデオカメラの他、カメラ付き携帯電話やいわゆるタブレット端末を用いることもできる。また端末２０００は、一般的なパーソナルコンピュータの他、いわゆるスマートフォンなどの携帯電話やいわゆるタブレット端末、テレビなどを用いることもできる。
【００１２】
図１のカメラ１０００において、内部バス１０１０に対してＣＰＵ(Central Processing Unit)１００１、ＲＯＭ(Read Only Memory)１００２、ＲＡＭ(Random Access Memory)１００３、入力処理部１００４、出力処理部１００６、通信制御部１００８、記録媒体制御部１０１１、カメラ信号処理部１０１５、記録・再生信号処理部１０１６が接続される。内部バス１０１０に接続される各部は、内部バス１０１０を介して互いにデータのやりとりを行うことができるようにされている。
【００１３】
ＲＯＭ１００２は、ＣＰＵ１００１が動作するための各種プログラムや設定データが格納される。また、フラッシュメモリなども含まれる。ＲＡＭ１００３は、ＣＰＵ１００１が動作時に必要とするプログラムや変数、作業用の一時データなどが適宜記憶される。
【００１４】
ＣＰＵ１００１は、ＲＯＭ１００２または記録媒体１０１２に格納されるプログラムに従い、ＲＡＭ１００３をワークメモリとして用いて、このカメラ１０００の各部を制御する。
【００１５】
光学系１０１３は、フォーカス、絞り機構などを含む撮影レンズであり、被写体の光学像を形成する。撮像素子１０１４は、ＣＣＤやＣＭＯＳ素子等で構成され、ここではA/D変換器を含み、光学像をアナログ電気信号に変換した後、デジタル信号に変換する。
【００１６】
カメラ信号処理部１０１５は、ＣＰＵ１００１の制御に基づき、撮像素子１０１４で変換されたデジタル信号に対し、所定の画素補間・縮小といったリサイズ処理や色変換、各種補正処理等を行う。
【００１７】
符号・復号処理部１０１６は、ＣＰＵ１００１の制御に基づき、カメラ信号処理部１０１５で処理されたデジタル信号を所定のビットレート、フォーマット形式で圧縮符号化、または映像圧縮符号化データの復号化を行う。
【００１８】
なお、音声についてはとくに図示していないが、音声付き映像を配信する場合には、マイクロホン、音声のアナログ信号をデジタル化するＡ／Ｄ変換器、デジタルデータを符号化する構成を持つことになる。当然、映像記録時には映像と共に音声も同時に収録され、符号・復号処理部１０１６で映像と音声を多重化することで、音声付映像データを生成することになる。
【００１９】
入力処理部１００４は、操作部１００５でのユーザ操作を受け付け、操作に応じた制御信号を生成し、ＣＰＵ１００１に供給する。例えば、操作部１００５は、ユーザ操作を受け付ける入力デバイスとして、キーボードといった文字情報入力デバイスや、マウスやタッチパネルといったポインティングデバイスなどを有する。また、赤外線リモコンなどの遠隔操作可能なものも含む。なお、タッチパネルは、例えば平面的に構成された入力部に対して接触された位置に応じた座標情報が出力されるようにした入力デバイスである。これにより、カメラ１０００に対し、ユーザ操作に応じた動作を行わせることが出来る。
【００２０】
出力処理部１００６は、ＣＰＵ１００１がプログラムに従い生成したＧＵＩ(Graphical User Interface)などの表示データに基づき、表示部１００７に対して表示させるための表示信号を出力する。
【００２１】
なお、操作部１００５としてタッチパネルを用いる場合、操作部１００５と表示部１００７とを一体的に構成することができる。例えば、タッチパネルを光の透過率が表示部１００７の表示を妨げないように構成し、表示部１００７の表示面の上層に取り付ける。そして、タッチパネルにおける入力座標と、表示部１００７上の表示座標とを対応付ける。これにより、恰もユーザが表示部１００７上に表示された画面を直接的に操作可能であるかのようなＧＵＩを構成することができる。
【００２２】
記録媒体制御部１０１１は、ＨＤＤや不揮発性の半導体メモリなどの記録媒体１０１２が接続され、ＣＰＵ１００１の制御に基づき、接続された記録媒体１０１２からのデータの読み出しや、当該記録媒体１０１２に対するデータの書き込みを行う。なお、記録媒体制御部１０１１が接続可能な記録媒体１０１２は、不図示のソケットなどを介して、例えばメモリカードなどの着脱可能な不揮発性の半導体メモリを接続するものとしてもよい。
【００２３】
記録媒体１０１２は、撮影した映像データのほか、ＣＰＵ１００１の制御に必要な情報も記録することが可能である。
【００２４】
通信制御部１００８は、ＣＰＵ１００１の制御に基づき、コネクタ(有線)/アンテナ(無線)１００９を介して、外部装置（実施形態では端末２０００）との通信を行う。通信方法としては、無線のＩＥＥＥ８０２．１１やＢｌｕｅｔｏｏｔｈ、有線のＩＥＥＥ８０２．３などを用いることが可能である。
【００２５】
図２の端末２０００において、多くの部分はカメラ１０００と同様となるため、カメラ１０００と説明が重複するＣＰＵ２００１〜記録媒体２０１２までの説明は省略する。符号・復号処理部２０１３は、ＣＰＵ２００１の制御に基づき、映像圧縮符号化データの復号化、および必要に応じて復号化したデータの再符号化を行う。
【００２６】
図３は第１の実施形態に係る通信システムの一例を示す図である。本実施形態の通信システムは、プレイリストを利用したライブストリーミングを実行する。まず、プレイリストを用いたストリーミングの基本的な動作は下記の通りである。
１．サーバーは、ストリーミングデータを一定時間のセグメントに分割し、そのセグメント取得先を列挙したプレイリストを作成する。ライブの場合には、定期的にセグメントが生成されるため、新しいセグメントが生成されると、動的に新しい内容のプレイリストに更新（削除、追記）するスライドウインドウ型プレイリストを用いる。
２．クライアントは、プレイリストを取得・解析し、列挙順にセグメントデータ取得先からデータ取得を行う。
３．クライアントは、取得したデータの再生表示、または保存を行う。
４．サーバーとクライアントは、プレイリスト終了（ストリーミング終了）まで、１〜３を繰り返す。
【００２７】
以下、プレイリストを利用したライブストリーミングの概略動作について説明する。
【００２８】
上記の基本的な動作を踏まえ、以下、図１、図２、図３、図８を用いて、本実施形態におけるプレイリストを利用したライブストリーミングの概略動作について説明する。
【００２９】
ユーザがカメラ１０００において、操作部１００５からライブストリーミングモードを実行すると、カメラ１０００は、ＣＰＵ１００１の制御により、通信制御部１００８を通信可能状態とする。
【００３０】
さらにユーザは端末２０００において、操作部２００５を操作して通信接続処理およびライブストリーミングに必要なアプリケーションの起動を行う。これに応じて、端末２０００のＣＰＵ２００１は、ＲＯＭ２００２または記録媒体２０１２に格納された当該プログラムに従い、通信制御部２００８を制御し、カメラ１０００との通信を開始し、接続処理を行う。
【００３１】
ここで、カメラ１０００と端末２０００は、通信プロトコルとしてＨＴＴＰ（Hypertext Transfer Protocol）を使用するものとする。また、通信接続においてＵＰｎＰ（Universal Plug and Play）に対応しているものとする。ＵＰｎＰ対応の端末２０００は、機器をネットワークに接続すると、ＤＨＣＰ(Dynamic Host Configuration Protocol)または、ＡｕｔｏＩＰによるＩＰ(Internet Protocol)アドレスの設定を行う。ＩＰアドレスを取得した機器は、ネットワーク上の他の機器を相互に認識するために、「デバイスディスカバリーとコントロール」によって、デバイス検索と応答デバイスの種別、サービス機能などの情報取得を行う（ステップ３００３）。カメラ１０００は、端末２０００のデバイス検索要求に対して、機器情報と機器固有情報のプレイリスト取得先情報などを応答する（ステップ３００４）。
【００３２】
カメラ１０００と端末２０００の接続処理が完了すると、カメラ１０００はライブストリーミングを開始する。
【００３３】
図８は、端末２０００における、ライブストリーミングにおけるアプリケーション画面例であり、操作部２００５、表示部２００７が一体化された例を示している。ライブストリーミングデータは、表示エリア８００１に表示され、カメラのステータスはズーム位置情報（８００２）、記録状態（８００３）、バッテリー情報（８００４）等を表示している。
【００３４】
ライブストリーミングにおいて、カメラ１０００のＣＰＵ１００１は、撮像素子１０１４からの信号出力を開始し、その出力をカメラ信号処理部１０１５により適切な映像データに処理し、符号・復号処理部１０１６へデータを渡す。このとき、ズーム倍率（もしくは焦点距離）等のカメラステータスに関する情報も合わせて渡す。
【００３５】
符号・復号処理部１０１６では、受け取った映像データ等を所定のビットレート、フォーマット形式で圧縮符号化し、さらに所定の時間長Ｔｓで分割し、セグメントデータ（３００２）としてＲＡＭ１００３または記録媒体１０１２に保存する。なお、本実施形態ではＴｓ＝０．５秒として、以下説明する。
【００３６】
ＣＰＵ１００１は、前記セグメントデータ保存先と関連させたパス情報を生成する。パス情報は、端末２０００がセグメント取得する際の取得先情報として使用するもので、ＣＰＵ１００１は、プレイリスト３００１を作成し、前記パス情報と併せてセグメント情報を記録する。
【００３７】
ここで、プレイリスト３００１について詳細に説明する。図４は、本第１の実施形態に係るプレイリストの一例である。
【００３８】
プレイリスト４０１０は、Ｅｘｔｅｎｄｅｄ  Ｍ３Ｕ形式のプレイリストであり、最初の行（４０１１）に識別子タグを記述し、２行目（４０１２）にはプレイリストバージョンを示すタグとバージョンを記述する。本例ではバージョンを“３”としている。３行目（４０１３）はセグメントデータ３００２の時間を示すタグとその時間（秒）を整数または小数で記述する。本実施形態では、セグメントデータ時間長をＴｓ＝０．５（秒）としていることから、本例でも“０．５”としている。４行目（４０１４）はセグメントデータ３００２の取得先パス（クエリパラメータを含む）を記述する。３行目（４０１３）、４行目（４０１４）はセグメントデータ３００２に関する情報として、必ず続けて記述する必要がある。
【００３９】
また、プレイリスト４０１０は、セグメント情報（４０１３，４０１４）を記録した図３のプレイリスト３００１の内容例となる。
【００４０】
端末２０００は、セグメントデータ３００２の所定の時間長Ｔｓを事前に記憶しているか、カメラ１０００の機器情報に含めることで機器情報取得時に得ることが出来ているものとする。
【００４１】
端末２０００は、ライブストリーミング開始後、約Ｔｓ（秒）後にステップ３００４で取得したプレイリスト取得先へ、プレイリスト取得要求（ＨＴＴＰ  ＧＥＴメソッド）を行う（ステップ３００５）。
【００４２】
カメラ１０００は、応答プレイリストとして、セグメント情報（４０１３，４０１４）が一つ記述されたプレイリスト３００１（＝４０１０）を送信する（ステップＳ３００６）。
【００４３】
端末２０００は、受信したプレイリスト４０１０を解析し、セグメント情報の取得先に対して、セグメント取得要求（ＨＴＴＰ  ＧＥＴメソッド）を行う（ステップ３００７）。
【００４４】
カメラ１０００は、応答セグメントとして、要求されたセグメント３００２を送信する（ステップ３００８）。
【００４５】
端末２０００は、受信したセグメント３００２を符号・復号処理部２０１３に渡し、復号化した後、出力処理部２００６を介して、表示部２００７で再生表示を行う。ライブストリーミングアプリケーションにより、ユーザから端末ＲＥＣ８００７への指示入力があると、復号化したデータ、またはセグメント３００２からヘッダなどを除いたデータ部を、記録媒体２０１２に記録保存する。そして、順次受信したセグメントデータを結合し記録していく。
【００４６】
ストリーミング中、カメラ１０００は、約Ｔｓ（秒）毎にセグメント生成、プレイリスト更新を行う。また、端末２０００に取得されたセグメント情報はプレイリストから削除する。
【００４７】
端末２０００は、カメラ１０００にてプレイリストの更新を行う度、その約Ｔｓ（秒）毎にそのプレイリスト取得（ステップ３００５）を行い、プレイリスト３００１に記載されたセグメント情報に基づき、当該セグメントデータを取得要求する。
【００４８】
通信状況が良好である場合、前記プレイリスト取得（ステップ３００５）から応答セグメント（ステップ３００８）までの一連の処理が定期的に行われることになる。しかし、実際には、輻輳などにより通信が定期的に行えなくなることがある。図５は、輻輳時を含んだプレイリストの例を示している。
【００４９】
なお、端末２０００の要求処理（ステップ３００５，３００７）には端末、またはアプリケーションの固有のＩＤを付加する。そして、本実施形態のカメラ１０００は、最初に要求のあったＩＤの要求のみに対してストリーミングを行う。つまり、本実施形態のカメラ１０００と端末２０００は１対１接続でのみストリーミングを行うものとする。
【００５０】
図６及び図７は、本発明の第１の実施形態に適用可能な処理フローの一例であり、以下、これらフローに従って説明する。図６は、カメラ１０００が端末２０００と接続確立後、ＣＰＵ１００１が実行する処理フローである。
【００５１】
ステップＳ６００１では、ライブストリーミング開始に伴う、セグメントデータ生成の開始処理を行う。ＣＰＵ１００１は、撮像素子１０１４からの信号出力を開始し、その出力をカメラ信号処理部１０１５により適切な映像データに処理し、符号・復号処理部１０１６へデータを渡す。符号・復号処理部１０１６では、受け取った映像データを所定のビットレート、フォーマット形式で圧縮符号化し、さらに所定の時間長Ｔｓ（本実施形態では０．５秒とする）で分割する処理を開始する。
【００５２】
ステップＳ６００２では、一つのセグメント（０．５秒）生成が完了したか否かの判定を行う。０．５秒で分割されたデータが、ＲＡＭ１００３または記録媒体１０１２に一時的に保存されたことを確認し、完了していた場合にはステップＳ６００３へ進み、完了していない場合にはステップＳ６００５へ進む。なお、本ステップは問い合わせ（ポーリング）による判定で説明したが、分割したセグメントデータを書き込んだことを検出して割り込み通知を行う等の方法によって、生成完了を判定することも可能である。
【００５３】
ステップＳ６００３では、セグメント情報の生成を行う。生成されたセグメントデータの時間長と、当該セグメントデータを特定できる保存先アドレス、またはファイル名などに関連付けたパス情報を生成する。ここで、本実施形態の説明では、セグメントの時間長は０．５秒固定となる。
【００５４】
ステップＳ６００４では、前記ステップＳ６００３で生成したセグメント情報をプレイリストに追記する。例えば図５のプレイリスト例５０１１はプレイリスト例５０２０となり、プレイリスト例５０３０はプレイリスト例５０４０となる。
【００５５】
ステップＳ６００５では、端末２０００からのプレイリスト取得要求（ステップ３００５）有無の判定を行う。プレイリスト取得要求があった場合にはステップＳ６００６へ進み、なかった場合にはステップＳ６００７へ進む。
【００５６】
ステップＳ６００６（第１の送信処理）では、プレイリスト取得要求（ステップ３００５）に対する応答として、プレイリストの送信を行う（ステップ３００６）。
【００５７】
ステップＳ６００７では、端末２０００からのセグメント取得要求（ステップ３００７）有無の判定を行う。セグメント取得要求があった場合にはステップＳ６００８へ進み、なかった場合にはステップＳ６００２へ戻る。
【００５８】
ステップＳ６００８では、前記ステップＳ６００７で要求されたセグメントが有効か否かの判定を行う。セグメントが有効の場合にはステップＳ６００９へ進み、無効の場合にはステップＳ６０１０へ進む。
【００５９】
ステップＳ６００９（第２の送信処理）では、セグメント取得要求（ステップ３００７）に対する応答として、該当するセグメント送信（ステップ３００８）を行う。その後、当該送信済みとなったセグメントを削除するとともに、当該セグメントに関する情報をプレイリストから削除し、ステップＳ６００２へ戻る。例えばプレイリスト例５０１０はプレイリスト例５０１１となり、プレイリスト例５０４０はプレイリスト例５０５０となる。
【００６０】
ステップＳ６０１０では、セグメント取得要求（ステップ３００７）に対する応答として、エラーステータスの送信（ステップ３００８）を行い、ステップＳ６００２へ戻る。
【００６１】
なお、本フローでの各イベント判定ステップＳ６００２、Ｓ６００５，Ｓ６００７は、順に問い合わせによる判定で説明したが、各条件のイベント待ちを同時に行う場合には、イベント発生順に各処理を実行してもよい。上記の説明からわかるように、撮像装置１０００は撮像素子１０１３より新たなセグメントが取得した場合、並びに、セグメントを端末２０００に送信した場合の両タイミングで、プレイリストの更新する処理（管理処理）を行っている点に注意されたい。
【００６２】
図７は、端末２０００がカメラ１０００と接続確立後、ＣＰＵ２００１が実行する処理フローである。
【００６３】
ステップＳ７００１では、接続時に取得した機器・プレイリスト取得先情報（ステップ３００４）から、プレイリスト取得先情報を取得し、保持する。ステップＳ７００２では、所定時間経過したか否かの判定を行う。所定時間が経過した場合にはステップＳ７００３へ進み、経過していない場合には再度ステップＳ７００２を繰り返す。ここで所定時間とは、カメラ１０００が生成する所定の時間長Ｔｓと同等の値にすることが望ましい。
【００６４】
ステップＳ７００３では、ステップＳ７００１で取得したプレイリスト取得先情報を用いて、プレイリストの取得要求（ステップ３００５）を行い、カメラ１０００から取得したプレイリスト（Ｐ１）の解析を行う。プレイリストの解析では、識別タグによるプレイリスト形式とバージョンの確認を行ったあと、セグメント情報を取得する。
【００６５】
ステップＳ７００４では、ステップＳ７００３でセグメント情報が存在したか否かの判定を行う。セグメント情報が存在した場合にはステップＳ７００５に進み、存在しない場合にはステップＳ７００３へ戻る。
【００６６】
ステップＳ７００５（第１の映像取得処理）では、取得したセグメント情報が１つならば、そのセグメントを最新セグメントとする。また、取得したセグメント情報が複数ならば最後のセグメント情報を最新セグメントとする。そして、最新セグメント情報の取得先パスに対してセグメントの取得要求（ステップ３００７）を行い、カメラ１０００からセグメントを取得する。最新のセグメントを取得するわけであるから、非最新のセグメントはこの段階では非取得状態になっている点に注意されたい。この最新のセグメント取得に起因する未取得のセグメントの取得処理は後述するステップＳ７００９にて行われる。
【００６７】
取得したセグメントは、ＲＡＭ２００３、または記録媒体２０１２に記録した後、符号・復号処理部２０１３に渡され、復号化した後、出力処理部２００６を介して、表示部２００７で再生表示（映像表示）を行う。また、ライブストリーミングアプリケーションにより端末ＲＥＣ８００７が実行されている場合、本処理フローとは別の処理により、復号化したデータ、またはセグメントからヘッダなどを除いたデータ部を、記録媒体２０１２に保存する。
【００６８】
ステップＳ７００６では、ストリーミングされている映像が端末２０００において保存されているか否かの判定を行う。つまり、端末２０００で動作するライブストリーミングアプリケーションによる、端末ＲＥＣ８００７が実行されているか否かの判定を行う。ストリーミング保存されている場合にはステップＳ７００７へ進み、保存されていない場合にはステップＳ７００２へ戻る。つまり、１つのプレイリストの取得と１つのセグメントの取得は、再生処理ための１セット分の処理ということができる。
【００６９】
ステップＳ７００７では、前記ステップＳ７００３で取得したセグメント情報が複数あるか否かの判定を行う。情報が複数ある場合には、ステップＳ７００８へ進み、情報が１つの場合にはステップＳ７００２へ戻る。
【００７０】
ステップＳ７００８では、前記ステップＳ７００２と同様に、所定時間経過したか否かの判定を行う。所定時間が経過した場合にはステップＳ７００３へ戻り、経過していない場合にはステップＳ７００９へ進む。ここで所定時間とは、カメラ１０００が生成する所定の時間長Ｔｓと同等の値にすることが望ましい。
【００７１】
ステップＳ７００９（第２の映像取得処理）では、プレイリスト内の最古のセグメント情報の取得先パスに対してセグメントの取得要求（ステップ３００７）を行い、カメラ１０００からセグメントを取得する。
【００７２】
取得したセグメントは、ＲＡＭ２００３、または記録媒体２０１２に記録する。ここで取得したセグメントは、ステップＳ７００５で取得したセグメントよりも古いものであるため再生には使わず、本処理フローとは別の処理により、復号化したデータ、またはセグメントからヘッダなどを除いたデータ部を、記録媒体２０１２に保存する。この時、受信したセグメントデータを元の順、すなわち、撮像した時間順に結合する処理を行う。これにより、再生とは別に途切れのないデータ復元が可能となる。
【００７３】
以上、本発明に係る好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【００７４】
上記実施形態では、ステップＳ７００９を実行するタイミングは、保存中であると判定され（Ｓ７００６がＹｅｓ）、プレイリスト中に複数のセグメントがあり（Ｓ７００７がＹｅｓ）、且つ、所定時間が経過していない場合（Ｓ７００８がＮｏ）としたが、これに本願は限定されない。例えば、ユーザにより、「保存（記録）終了」の指示を受けた場合に行っても良い。この結果、保存終了の指示があった以降に撮像されるセグメントは受信しなくても構わないので、未受信セグメントをまとめて受信でき、全セグメントが揃ったときに一本のストリーミングデータのファイルとして保存することができる。
【００７５】
また、図７のステップＳ７００９を実行する条件の１つに、端末２０００にてストリーミング保存されている（ステップＳ７００６がＹｅｓ）ことを要件にする例を説明した。しかし、再生を行っている最中に過去に遡って再生を行う、いわゆる追っかけ再生を行うことをも可能にするため、ステップＳ７００９の条件は省略しても構わない。
【００７６】
［第２の実施形態］
上記の第１の実施形態によれば、ネットワークの輻輳等の要因で、端末２０００が取得できなかったセグメントを示す情報が、カメラ１０００にてプレイリストに追記されていく。つまり、場合によっては、プレイリストのサイズが膨れることになる。
【００７７】
本第２の実施形態では、カメラ１０００にて、未送信のセグメントのうち、時間的に連続しているセグメントについては１つのセグメントに書き直すことで、プレイリストのサイズが大きくなることを抑制する例を説明する。なお、カメラ１０００、端末２０００は上記第１の実施形態と同様の構成であるものとし、その説明は省略する。また、セグメントの長さＴｓは、０．５秒とする点も第１の実施形態と同じである。
【００７８】
図９は、本第２の実施形態を説明する上で典型的な輻輳時のプレイリストの推移を示している。
【００７９】
なお、本実施形態のカメラ１０００と端末２０００も１対１接続でのみストリーミングを行うものとする。
【００８０】
図１０及び図１１のフローチャートは、上記第１の実施形態における図６、図７に置き換わるものであるので、同じ処理については同一参照符号を付している。
【００８１】
先ず、図１０のフローチャートに従い、カメラ１０００が端末２０００と接続確立後、ＣＰＵ１００１が実行する処理フローを説明する。
【００８２】
ステップＳ６００１では、ライブストリーミング開始に伴う、セグメントデータ生成の開始処理を行う。ＣＰＵ１００１は、撮像素子１０１４からの信号出力開始し、その出力をカメラ信号処理部１０１５により適切な映像データに処理し、符号・復号処理部１０１６へデータを渡す。符号・復号処理部１０１６では、受け取った映像データを所定のビットレート、フォーマット形式で圧縮符号化し、さらに所定の時間長Ｔｓ（本第２の実施形態でも０．５秒）で分割する処理を開始する。要するに、ＣＰＵ１００１は、撮像素子１０４１より得られた映像データを０，５秒単位に符号化し、それを１つのファイルとしてＲＡＭ１００３または記録媒体１０１２に蓄積する処理を行う。
【００８３】
ステップＳ６００２では、一つのセグメント（０．５秒）生成が完了したか否かの判定を行う。０．５秒で分割されたデータが、ＲＡＭ１００３または記録媒体１０１２に保存されたことを確認し、完了していた場合にはステップＳ６００３へ進み、完了していない場合にはステップＳ６００５へ進む。なお、本ステップは問い合わせ（ポーリング）による判定で説明したが、分割したセグメントデータを書き込んだことを検出して割り込み通知を行う等の方法によって、生成完了を判定することも可能である。
【００８４】
ステップＳ６００３では、セグメント情報の生成を行う。生成されたセグメントデータの時間長と、当該セグメントデータを特定できる保存先アドレス、またはファイル名などに関連付けたパス情報を生成する。ここで、本第２の実施形態の説明では、セグメントの時間長は０．５秒の固定となる。
【００８５】
ステップＳ６０１０では、端末２０００が未取得のセグメントが２つ以上存在するか否かの判定を行う。つまり、プレイリスト内のセグメント情報（４０１３，４０１４）のセットが２つ以上存在するか否かの判定を行う。セグメント情報（４０１３，４０１４）のセットが２つ以上存在する（プレイリスト例９０３０）場合にはステップＳ６１０１に進み、存在しない（プレイリスト例９０１１）、または１つのみ存在する（プレイリスト例９０２０）場合にはステップＳ６００４に進む。
【００８６】
ステップＳ６１０１では、前記未取得の連続したセグメントの結合と、セグメント情報であるセグメント時間長、およびセグメントパス情報の結合を行う。ステップＳ６１０２では、ステップＳ６１０１で結合した情報をプレイリストに反映するための更新処理を行う。なお、セグメント自体の結合は、実際にセグメントの要求を受けてからでもよい。
【００８７】
ステップＳ６００４では、ステップＳ６００３で生成したセグメント情報をプレイリストに追記する。本ステップ終了後、前記ステップＳ６１００で判定した各プレイリストのセグメント情報は、最新のセグメント情報と、未取得セグメントが存在した場合には、連続したセグメントが結合された複数の未取得セグメント情報になる。つまり、プレイリスト例９０３０はプレイリスト例９０４０となり、プレイリスト例９０１１はプレイリスト例９０２０となり、プレイリスト例９０２０はプレイリスト例９０３０となり、プレイリスト例９０６０はプレイリスト例９０７０となる。
【００８８】
ステップＳ６００５では、端末２０００からのプレイリスト取得要求（ステップ３００５）有無の判定を行う。プレイリスト取得要求があった場合にはステップＳ６００６へ進み、なかった場合にはステップＳ６００７へ進む。
【００８９】
ステップＳ６００６では、プレイリスト取得要求（ステップ３００５）に対する応答として、プレイリストの送信を行う（ステップ３００６）。
【００９０】
ステップＳ６００７では、端末２０００からのセグメント取得要求（ステップ３００７）有無の判定を行う。セグメント取得要求があった場合にはステップＳ６００８へ進み、なかった場合にはステップＳ６００２へ戻る。
【００９１】
ステップＳ６００８では、ステップＳ６００７で要求されたセグメントが有効か否かの判定を行う。セグメントが有効の場合にはステップＳ６００９へ進み、無効の場合にはステップＳ６０１０へ進む。
【００９２】
ステップＳ６００９では、セグメント取得要求（ステップ３００７）に対する応答として、該当するセグメント送信（ステップ３００８）を行った後、当該セグメントを削除するとともに、当該セグメント情報をプレイリストから削除し、ステップＳ６００２へ戻る。一方、ステップＳ６０１０では、セグメント取得要求（ステップ３００７）に対する応答として、エラーステータスの送信（ステップ３００８）を行い、ステップＳ６００２へ戻る。
【００９３】
なお、本フローでの各イベント判定であるステップＳ６００２、Ｓ６００５、Ｓ６００７は、順に問い合わせによる判定で説明したが、各条件のイベント待ちを同時に行う場合には、イベント発生順に各処理を実行してもよい。
【００９４】
図１１は、端末２０００がカメラ１０００と接続確立後、ＣＰＵ２００１が実行する処理フローである。
【００９５】
ステップＳ７００１では、接続時に取得した機器・プレイリスト取得先情報（３００４）から、プレイリスト取得先情報を取得、保持する。
【００９６】
ステップＳ７００２では、所定時間経過したか否かの判定を行う。所定時間が経過した場合にはステップＳ７００３へ進み、経過していない場合には再度ステップＳ７００２を繰り返す。ここで所定時間とは、カメラ１０００が生成する所定の時間長Ｔｓと同等の値にすることが望ましい。
【００９７】
ステップＳ７００３では、ステップＳ７００１で取得したプレイリスト取得先情報を用いて、プレイリストの取得要求（３００５）を行い、カメラ１０００から取得したプレイリスト（Ｐ１）の解析を行う。プレイリストの解析では、識別タグによるプレイリスト形式とバージョンの確認を行ったあと、セグメント情報を取得する。
【００９８】
ステップＳ７００４では、ステップＳ７００３でセグメント情報が存在したか否かの判定を行う。セグメント情報が存在した場合にはステップＳ７００５に進み、存在しない場合にはステップＳ７００３へ戻る。
【００９９】
ステップＳ７００５では、取得したセグメント情報が１つならば、そのセグメントを最新セグメントとする。また、取得したセグメント情報が複数ならば最後のセグメント情報を最新セグメントとする。そして、最新セグメント情報の取得先パスに対してセグメントの取得要求（ステップ３００７）を行い、カメラ１０００からセグメントを取得する。
【０１００】
取得したセグメントは、ＲＡＭ２００３、または記録媒体２０１２に記録した後、符号・復号処理部２０１３に渡し、復号化した後、出力処理部２００６を介して、表示部２００７で再生表示を行う。また、ライブストリーミングアプリケーションにより端末ＲＥＣ８００７が実行されている場合、本処理フローとは別の処理により、復号化したデータ、またはセグメントからヘッダなど除いたデータ部を、記録媒体２０１２に保存する。
【０１０１】
ステップＳ７００６では、ストリーミングされている映像が端末２０００において保存されているか否かの判定を行う。つまり、端末２０００で動作するライブストリーミングアプリケーションによる、端末ＲＥＣ８００７が実行されているか否かの判定を行う。ストリーミング保存されている場合にはステップＳ７１００へ進み、保存されていない場合にはステップＳ７００２へ戻る。
【０１０２】
ステップＳ７１００では、ステップＳ７００３で取得したセグメント情報が２つ以上あるか否かの判定を行う。情報が２つ以上ある場合には、ステップＳ７１０１へ進み、情報が１つの場合にはステップＳ７００２へ戻る。ここでセグメント情報数をＳｎとする。
ステップＳ７１０１では、ステップＳ７００３と同様に、再度プレイリストの取得要求（ステップ３００５）を行い、カメラ１０００からプレイリスト（Ｐ２）を取得し、セグメント情報を取得する。
【０１０３】
ステップＳ７１０２では、ステップＳ７１０１で取得したセグメント情報数が新規に追加されたか否かの判定を行う。情報数がＳｎ−１より多い場合には、ステップＳ７００３でプレイリストを取得してから、ステップＳ７１０１でプレイリストを取得するまでに新規セグメントが生成されたことを意味するため、ステップＳ７００５へ戻る。情報数がＳｎ−１の場合には古い未取得のセグメントがあると判断し、ステップＳ７１０３へ進む。
【０１０４】
ステップＳ７１０３では、未取得セグメント情報の取得先パスに対してセグメントの取得要求（ステップ３００７）を行い、カメラ１０００から古いセグメントを取得し、ＲＡＭ２００３、または記録媒体２０１２に記録する。ここで取得したセグメントは、ステップＳ７００５で取得したセグメントよりも古いものであるため、再生には使わず、本処理フローとは別の処理により、復号化したデータ、またはセグメントからヘッダなど除いたデータ部を、記録媒体２０１２に保存する。この時、受信したセグメントデータを元の順に結合することにより、再生とは別に途切れのないデータ復元が可能となる。
【０１０５】
なお、本実施形態では未取得のセグメントをまとめて１つのセグメント情報とする形態を説明したが、この形態だと１つのセグメント情報に対するセグメントのサイズが大きくなる可能性がある。そこで、１つのセグメント情報の上限、例えば５秒分のセグメント、またはセグメント１０個分などという閾値を予め設定し、その閾値を超えた場合は新たなセグメント情報を作成してもよい。そして以降のセグメント情報は新たに作成したセグメント情報に統合していけばよい。
【０１０６】
また、本実施形態ではプレイリストに既に２つ以上のセグメント情報がある場合にセグメント情報を結合することとした。これに対し、例えば２秒分以上のセグメントがある場合や、４つ以上のセグメントがある場合に結合するようにしてもよい。
【０１０７】
以上、第２の実施形態を詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【０１０８】
また、上述の第１，第２の実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。
【０１０９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【０１１０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１１１】
プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光／光磁気記憶媒体、不揮発性の半導体メモリでもよい。
【０１１２】
また、プログラムの供給方法としては、コンピュータネットワーク上のサーバーに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータがコンピュータプログラムをダウンロードしてプログラムするような方法も考えられる。
【図１】
2014116805.tif 000003
【図２】
2014116805.tif 000004
【図３】
2014116805.tif 000005
【図４】
2014116805.tif 000006
【図５】
2014116805.tif 000007
【図６】
2014116805.tif 000008
【図７】
2014116805.tif 000009
【図８】
2014116805.tif 000010
【図９】
2014116805.tif 000011
【図１０】
2014116805.tif 000012
【図１１】
2014116805.tif 000013