(57)【要約】【課題】低遅延、且つ確実なデータ保存が可能なストリームデータの配信を行なうことを目的とする。【解決手段】記憶装置を有する撮像装置であって、ネットワークを介して通信可能な通信装置に対して送信する、複数のパケットから構成される映像ストリームを、記憶装置に記憶する記憶手段と、通信装置に対する送信が成功したか否かを判定する判定手段と、判定手段において通信装置に対する送信に成功したと判定されたパケットを、記憶装置から削除する削除手段と、通信装置に対する送信が中断したときに、記憶装置に記憶されているパケットを、通信装置に再送する再送手段と、を有することによって前記課題を解決する。【選択図】図２
2007300549.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を有する撮像装置であって、
ネットワークを介して通信可能な通信装置に対して送信する、複数のパケットから構成される映像ストリームを、前記記憶装置に記憶する記憶手段と、
前記通信装置に対する送信が成功したか否かを判定する判定手段と、
前記判定手段において前記通信装置に対する送信に成功したと判定された前記パケットを、前記記憶装置から削除する削除手段と、
前記通信装置に対する送信が中断したときに、前記記憶装置に記憶されているパケットを、前記通信装置に再送する再送手段と、
を有することを特徴とする撮像装置。
【請求項２】
前記再送手段は、前記記憶装置に記憶されている、前記通信装置に対する送信に失敗した前記パケットを、前記通信装置に再送することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記記憶装置に記憶する前記パケットに対して、シーケンス情報を付与する付与手段を更に有することを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
記憶装置を有する通信装置であって、
ネットワークを介して通信可能な撮像装置から送信された、映像ストリームを構成する複数のパケットを受信する受信手段と、
前記撮像装置からの受信が成功したか否かを判定する判定手段と、
前記判定手段において前記撮像装置からの受信に失敗したと判定された前記パケットの前後で前記映像ストリームを分割して、前記映像ストリームに関するパケットを前記記憶装置に記憶する記憶手段と、
を有することを特徴とする通信装置。
【請求項５】
前記受信手段は、前記判定手段において受信に失敗したと判定された前記パケットに関して、前記撮像装置から再送されたパケットを受信し、
前記記憶手段は、前記記憶装置に記憶されている、前記判定手段において前記撮像装置からの受信に失敗したと判定された前記パケットを、前記再送されたパケットで置き換えることを特徴とする請求項４に記載の通信装置。
【請求項６】
前記記憶手段は、置き換えた前記再送されたパケットと、前記記憶装置に記憶されている、前記再送されたパケットに関する前記映像ストリームに係るパケットと、を繋ぎ合わせて、１つの映像ストリームとして、前記記憶装置に記憶することを特徴とする請求項５に記載の通信装置。
【請求項７】
前記パケットには、シーケンス情報が付与されており、前記記憶手段は、前記シーケンス情報に応じて、パケットを繋ぎ合せて１つの映像ストリームとすることを特徴とする請求項６に記載の通信装置。
【請求項８】
記憶装置を有する撮像装置における通信方法であって、
ネットワークを介して通信可能な通信装置に対して送信する、複数のパケットから構成される映像ストリームを、処理ユニットが前記記憶装置に記憶させる記憶ステップと、
前記通信装置に対する送信が成功したか否かを前記処理ユニットが判定する判定ステップと、
前記判定ステップにおいて前記通信装置に対する送信に成功したと判定された前記パケットを、前記記憶装置から前記処理ユニットが削除する削除ステップと、
前記通信装置に対する送信が中断したときに、前記記憶装置に記憶されているパケットを、前記通信装置に前記処理ユニットが再送する再送ステップと、
を有することを特徴とする通信方法。
【請求項９】
記憶装置を有する通信装置における通信方法であって、
ネットワークを介して通信可能な撮像装置から送信された、映像ストリームを構成する複数のパケットを受信する受信ステップと、
前記撮像装置からの受信が成功したか否かを処理ユニットが判定する判定ステップと、
前記処理ユニットは、前記判定ステップにおいて前記撮像装置からの受信に失敗したと判定された前記パケットの前後で前記映像ストリームを分割し、前記映像ストリームに関するパケットを前記記憶装置に記憶させる記憶ステップと、
を有することを特徴とする通信方法。
【請求項１０】
請求項８に記載の通信方法を前記撮像装置のコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
請求項９に記載の通信方法を前記通信装置のコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
請求項１０又は１１に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、通信装置及び通信方法に関する。
【背景技術】
【０００２】
映像サーバやネットワークカメラからの映像情報をリアルタイムにネットワーク配信し、ディスプレイ装置等で視聴したり、ストレージ装置等で記録したりする際に、通信路等でエラーが発生すると再送が実施されるシステムがある。
【０００３】
【特許文献１】特開平１０−７０５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら高品位画像等の大容量なストリームデータを配信する場合、再送を実施するとリアルタイム性が損なわれ、映像遅延が大きくなるといった不具合が発生する問題がある。
【０００５】
本発明はこのような問題点に鑑みなされたもので、低遅延、且つ確実なデータ保存が可能なストリームデータの配信を行なうことを目的とする。
【課題を解決するための手段】
【０００６】
そこで、前記問題を解決するため、本発明は、記憶装置を有する撮像装置であって、ネットワークを介して通信可能な通信装置に対して送信する、複数のパケットから構成される映像ストリームを、前記記憶装置に記憶する記憶手段と、前記通信装置に対する送信が成功したか否かを判定する判定手段と、前記判定手段において前記通信装置に対する送信に成功したと判定された前記パケットを、前記記憶装置から削除する削除手段と、前記通信装置に対する送信が中断したときに、前記記憶装置に記憶されているパケットを、前記通信装置に再送する再送手段と、を有することを特徴とする。
【０００７】
係る構成とすることにより、低遅延、且つ確実なデータ保存が可能なストリームデータの配信を行なうことができる。
【０００８】
なお、撮像装置とは、例えば、後述するデジタルビデオカメラ装置、又はカメラ装置等に対応する。また、通信装置とは、例えば、後述するストレージ装置、又はディスプレイ装置等に対応する。
【０００９】
また、前記問題を解決するため、本発明は、通信装置、通信方法、プログラム及び記憶媒体としてもよい。
【発明の効果】
【００１０】
本発明によれば、低遅延、且つ確実なデータ保存が可能なストリームデータの配信を行なうことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について図面に基づいて説明する。
【００１２】
（第１の実施形態）
図１は、本実施形態に係るシステムを構成する各装置の一例のハードウェア構成図である。デジタルビデオカメラ装置（撮像装置）１は、撮像した映像をネットワークに出力する。ディスプレイ装置（表示装置）２は、ネットワークを介して転送された映像ストリームデータをデコードして表示する。ストレージ装置（記憶装置）３は、ネットワークを介して転送された映像ストリームデータを蓄積保存する。なお、本実施の形態における映像ストリームデータとは、ネットワークを介して転送された映像データを受信処理と並行して、ディスプレイ装置２ではディスプレイ上に映像を表示処理したり、ストレージ装置３上に記憶処理したりするためのデータを指す。
【００１３】
ＣＰＵ４は、デジタルビデオカメラ装置１の制御を実行するコントローラ（処理ユニット）である。ＣＰＵ４は、例えばローカルストレージ８等に記憶されているプログラムを実行することにより、後述するデジタルビデオカメラ装置１の機能を提供したり、後述するフローチャート等の処理を実行したりする。
【００１４】
撮像部５は、撮像素子、Ａ/Ｄ変換器等からなり、デジタルビデオカメラ装置１への画像取り込みを行う。エンコーダ６は、撮像部５で撮像した画像をＭＰＥＧやＨ．２６４等の映像ストリームデータへエンコードする回路である。通信部７は、デジタルビデオカメラ装置１と外部機器との通信処理を行う回路を有する。ローカルストレージ８は、デジタルビデオカメラ装置１に設けられたＦｌａｓｈメモリ等の比較的低容量な記憶装置である。
【００１５】
ＣＰＵ１０は、ディスプレイ装置２の全体を統括制御するコントローラ（処理ユニット）。ＣＰＵ１０は、例えばディスプレイ装置２の不図示のメモリ等に記憶されているプログラムを実行することにより、後述するディスプレイ装置２の機能を提供する。
【００１６】
ディスプレイ１１は、ディスプレイ装置２の表示を受け持つ液晶デバイス等である。デコーダ１２は、ネットワークを介して転送された映像ストリームデータを映像情報へ復号する回路である。通信部１３は、ディスプレイ装置２に設けられ、通信処理を行う回路を有する。
【００１７】
ＣＰＵ１５は、ストレージ装置３全体の統括制御を行うコントローラ（処理ユニット）である。ＣＰＵ１５は、例えばストレージ１７等に記憶されているプログラムを実行することにより、後述するストレージ装置３の機能を提供する。
【００１８】
通信部１６は、ストレージ装置３に設けられ、通信処理を行う回路を有する。大容量ストレージ１７は、ＨＤＤ等の記録デバイスである。
【００１９】
ここで、デジタルビデオカメラ装置１は、撮像した映像に関する映像ストリームデータを、ディスプレイ装置２と、ストレージ装置３とへ、ユニキャスト通信する。ディスプレイ装置２は、映像ストリームデータを受け取ると、リアルタイムな映像をディスプレイ１１に表示する。また、ストレージ装置３は、映像ストリームデータをストレージ１７に蓄積する。
【００２０】
図２は、ユニキャスト通信に係るシーケンス図である。図２に示す様に、デジタルビデオカメラ装置１と、ディスプレイ装置２と、ストレージ装置３とは、映像ストリームデータの転送に先立ち、それぞれ調停フェイズ（１００、１０１）を実行する。この調停フェイズ（１００、１０１）の目的は、映像ストリームデータのソースとなるデジタルビデオカメラ装置１を中心に構成される映像ストリームネットワークの構成を各構成デバイス（１、２、３）に伝達し、設定することである。
【００２１】
調停フェイズ（１００、１０１）を経て各構成デバイス（１、２、３）には、図３のテーブルに示す様な情報が記憶される。図３は、テーブルの一例を示す図（その１）である。
【００２２】
なお、これらの調停フェイズは、デジタルビデオカメラ装置１とディスプレイ装置２との間（１０１）、デジタルビデオカメラ装置１とストレージ装置３との間（１００）でそれぞれユニキャスト通信を用いて実施される。
【００２３】
以上の調停が終了すると、デジタルビデオカメラ装置１における映像ストリームデータのエンコード処理が開始される。
【００２４】
エンコーダ６でエンコードされた映像ストリームデータは、ＣＰＵ４によって読み出され、出力する通信形式に合わせてパケット形式に加工された後、ローカルストレージ８へ移される。その後、ＣＰＵ４は、ローカルストレージ８に記憶された通信パケットを随時読み出し、通信部７へ送る。通信パケット（映像ストリームデータ１）を受けた通信部７は、ネットワークを介して映像ストリームデータ１の転送を開始（１０２、１０３）する。
【００２５】
映像ストリームデータ１（１０２）を受けたストレージ装置３のＣＰＵ１５は、通信部１６で受信した映像ストリームデータ１（１０２）に対してＣＲＣ等の計算を行いデータの信憑性を検証する。その検証に基づいて、ＣＰＵ１５は、映像ストリームデータ１を正しく受信できたか否かを判断する。
【００２６】
ＣＰＵ１５は、映像ストリームデータ１を正しく受信できたと判断すると、デジタルビデオカメラ装置１へＡＣＫ（１０４）を返す。更に、ＣＰＵ１５は、正常に受信できた映像ストリームデータ１を通信パケットスタイルから映像ストリームスタイルに変更し、随時ストレージ１７へ保存する。
【００２７】
一方、映像ストリームデータ１（１０３）を受けたディスプレイ装置２のＣＰＵ１０は、通信部１３で受信した映像ストリームデータ１（１０３）の信憑性検査を行わず、受信データを通信パケットスタイルから映像ストリームスタイルに変更する。又は、ＣＰＵ１０は、通信部１３で受信した映像ストリームデータ１（１０３）の信憑性検査を実施し、パケットエラーが発生していても何もせず、受信データを通信パケットスタイルから映像ストリームスタイルに変更する。なお、ここで、信憑性検査等の処理は、ディスプレイ装置２のＣＰＵ１０ではなく、通信部１３等において行うようにしてもよい。但し、以下では説明の簡略化のため、ＣＰＵ１０が行うものとして説明を行なう。
【００２８】
デコーダ１２は、ＣＰＵ１０から受け取った映像ストリームデータ１を映像化し、ディスプレイ１１に表示する。
【００２９】
ここで、映像ストリームデータを送信するデジタルビデオカメラ装置１のＣＰＵ４は、調停フェイズ（１００、１０１）によって、ＭＡＣアドレス００：３５：６２：４５：１ｅ：３２がストレージ装置３であると認識している。よって、ＣＰＵ４は、ストレージ装置３のＭＡＣアドレス（又はＩＰアドレス）からのＡＣＫを待ち、ＡＣＫ（１０４）が返されたら映像ストリームデータ１のワークエリアをローカルストレージ８から削除する（１０５）。
【００３０】
以降、ＣＰＵ４によって、順次映像ストリームデータの転送が実施される。映像ストリームデータ２の送信（１０６、１０７）を受けたストレージ装置３のＣＰＵ１５において、ＣＲＣエラー等が検出された場合、その旨を伝えるためにＣＰＵ１５は、デジタルビデオカメラ装置１へＮＡＣＫ（１０８）を返す。ＮＡＣＫ（１０８）を受けたデジタルビデオカメラ装置１のＣＰＵ４は、ローカルストレージ８上の映像ストリームデータ２に対応するワークエリアの削除処理を行わず、前記ワークエリアをそのまま保存する。なお、ローカルストレージ８をＦｌａｓｈメモリ等のシリコンディスクを用いて実装する場合、ワークエリアの作成や削除は、デジタルビデオカメラ装置１に搭載したＯＳのファイル管理システム等を用いて実現する。これについては後でより詳細に述べる。
【００３１】
図２に示されるように、映像ストリームデータ３の送信（１０９、１１０）では、ディスプレイ装置２で受信エラーが発生している。しかしながら、前述したように、ディスプレイ装置２のＣＰＵ１０では信憑性検査は実施せず、受信データを通信パケットスタイルから映像ストリームスタイルに変更した後、無条件にデコーダ１２へ送るため、ディスプレイ１１に表示される映像に乱れが生じる。
【００３２】
一方、ストレージ装置３のＣＰＵ１５では、映像ストリームデータ３の受信に成功しているため、その旨を伝えるべくＡＣＫ（１１１）を返す。ＡＣＫ（１１１）を受けたデジタルビデオカメラ装置１のＣＰＵ４は、映像ストリームデータ３のワークエリアをローカルストレージ８から削除する（１１２）。
【００３３】
また、映像ストリームデータ４の送信（１１３、１１４）では、ストレージ装置３のＣＰＵ１５は、通信があったことさえ認識できない状況に合った場合の例を示している。このような状況でＣＰＵ１５は、ＡＣＫやＮＡＣＫを返すことができないため、デジタルビデオカメラ装置１（又はＣＰＵ４）は、一定のタイムアウト時間を予め設けておき、その期間にＡＣＫ／ＮＡＣＫが返らない場合は、通信に失敗したと判断する。したがって、デジタルビデオカメラ装置１では、ＮＡＣＫ受信時と同様にローカルストレージ８上の映像ストリームデータ４に対応するワークエリアの削除処理を行わず、前記ワークエリアをそのまま保存する。
【００３４】
これまで、デジタルビデオカメラ装置１と、ストレージ装置３と、の間の通信エラー発生した場合に実施される処理について述べてきたが、ここで、ディスプレイ１１がオフ（１１７）された場合を考える。ディスプレイ１１がオフ（１１７）されるとは、以下のケースが考えら得る。
１：ディスプレイの電源がオフされる（但し、主電源ではない。）。
２：ディスプレイに表示しているカメラ映像がその他の映像に切り替わる。
３：ディスプレイで視聴中の映像が一時停止状態に設定される。
４：ディスプレイの前から人がいなくなる（赤外線センサ等を利用。）。
【００３５】
ディスプレイがオフ（１１７）されると、ディスプレイ装置２のＣＰＵ１０からストレージ装置３に対してＤｉｓｐｌａｙ  Ｏｆｆを通知するパケット（１２０）が送信される。パケット（１２０）を受けたストレージ装置３のＣＰＵ１５は、デジタルビデオカメラ装置１に対してＲｅｓｅｎｄ  Ｒｅｑｕｅｓｔ通知パケット（１２２）を送信する。
【００３６】
Ｒｅｓｅｎｄ  Ｒｅｑｕｅｓｔ通知パケット（１２２）を受けたデジタルビデオカメラ装置１のＣＰＵ４は、ローカルストレージ８に蓄積された、これまで発生したエラーパケット（映像ストリームデータ）を順次読み出す。そして、ＣＰＵ４は、エラーパケット（映像ストリームデータ）を通信部７からストレージ装置３に再送信（１２３、１２６）する。ＣＰＵ４は、再送信に成功したエラーパケットを随時ローカルストレージから削除する（１２５、１２８）。
【００３７】
デジタルビデオカメラ装置１のＣＰＵ４は、蓄積されたエラーパケットの再送（１２３〜１２８）が完了したら、引き続き映像ストリームデータ６の転送（１２９）を行うが、ディスプレイ１１がオフ状態の間は、転送エラーが発生する度に再送を行う。
【００３８】
ディスプレイ１１がオン状態へ移行すると（１３１）、ディスプレイ装置２のＣＰＵ１０は、Ｄｉｓｐｌａｙ  Ｏｎ通知パケット（１３２）をストレージ装置３へ送信する。パケット（１３２）を受けたストレージ装置３のＣＰＵ１５は、デジタルビデオカメラ装置１に対してＲｅｓｅｎｄ  Ｓｕｓｐｅｎｄ  Ｒｅｑｕｅｓｔ通知パケット（１３４）を送信する。
【００３９】
Ｒｅｓｅｎｄ  Ｓｕｓｐｅｎｄ  Ｒｅｑｕｅｓｔ通知パケット（１３４）を受けたデジタルビデオカメラ装置１のＣＰＵ４は、それ以降の映像ストリームデータの転送先をディスプレイ２に対しても割り当てる。また、同時に、ＣＰＵ４は、ストレージ装置３への転送エラー発生毎の再送処理を停止し、ローカルストレージ８へのエラーパケット蓄積を再開する。
【００４０】
以上の処理を実施することで、デジタルビデオカメラ装置１から転送された映像の表示遅延の少ないディスプレイ装置２への表示と、確実なストレージ装置３へのデータストリームの保存が可能となる。
【００４１】
ここで、デジタルビデオカメラ装置１に設けられたローカルストレージ８の管理方法について２種類の方法を説明する。一つめの方法は、前述した様に、ＣＰＵ４等が、ＯＳのファイルシステムを利用して、エンコード後にパケット形式へ変更したパケット毎に、ローカルストレージ８に保存する際の時刻情報をファイル名として適用し保存する方法である。この場合のファイル名の例を以下に示す。
【００４２】
ファイル名（日時＋シリアルナンバー）  ２２１０１５＿ＸＸＸＸＸ等
【００４３】
ＣＰＵ４は、ＯＳのファイルシステムを利用して、このようなファイル名を適用したファイルをパケット毎に作成してローカルストレージ８に保存し、転送に成功したファイルを削除していけば、転送に失敗したファイル名だけが残る。そのため、ＣＰＵ４が、再送処理を行う際は、古い日時を示すファイル名を検索し、同一の日時のファイル名が複数有る場合は、シリアル番号の小さいファイルを優先して再送すればよい。ＣＰＵ４が、このようなファイルシステムを利用して再送データの管理を行う方法は、可変長のパケットを利用して映像ストリームデータの転送する場合には効率的である。
【００４４】
もう一つの方法は、ＣＰＵ４が、ローカルストレージ８を固定長に予め分割しておき、そのそれぞれにＩｎｄｅｘをつけて、そのステータスを管理する方法である。図４は、ローカルストレージ管理テーブルの一例を示す図である。なお、ローカルストレージ管理テーブルは、ローカルストレージ８の所定のエリア、又は図示されていない、デジタルビデオカメラ装置１のメモリ等に格納されている。
【００４５】
図４に示されるように、実際のローカルストレージ８は、５１２ｂｙｔｅｓのセクタ単位で管理されると仮定する。無線ＬＡＮ等の通信手段を用いた場合の最大ペイロード値は１５００ｂｙｔｅｓであるため、ヘッダを付加する余地を考慮して、４セクタを１管理単位として使用／未使用テーブル上の１ｂｙｔｅを対応させる。なお、ローカルストレージ管理テーブル（使用／未使用テーブル）は、使用中のＩｎｄｅｘは、"１"にセットされ、未使用のＩｎｄｅｘは、"０"にクリアされるものとする。
【００４６】
このようなローカルストレージ管理テーブルを設けた上でデジタルビデオカメラ装置１のＣＰＵ４が映像ストリームデータをリアルタイム転送する際の処理の一例を、図５を用いて説明する。図５は、映像ストリームデータのリアルタイム転送処理の一例を示すフローチャートである。
【００４７】
ＣＰＵ４は、エンコーダ６でエンコードされた映像ストリームデータを、通信形式に合わせてパケット形式に加工するためにローカルストレージ８へ移す際に、図４に示したローカルストレージ管理テーブル（使用／未使用テーブル）を参照する。即ち、ＣＰＵ４は、ローカルストレージ管理テーブルの内、"０"クリアされているＩｎｄｅｘを検索する（１５０）。
【００４８】
そして、ＣＰＵ４は、検索結果に基づいて、未使用エリアが有るか否かを判定する（１５１）。ＣＰＵ４は、未使用エリアが有ると判定すると（１５１においてＹ）、１５２に進み、未使用エリアが無いと判定すると（１５１においてＮ）、１６０に進む。
【００４９】
１５２において、ＣＰＵ４は、発見した空きセクタをワークエリアとして設定すると共に、前記ワークエリアに対応するＩｎｄｅｘをセットする。一方、１６０において、ＣＰＵ４は、エラー処理（Ｅｒｒｏｒ処理）を実行して、図５に示す処理を終了する。
【００５０】
ワークエリアが決定した後、ＣＰＵ４は、エンコーダ６にエンコード済データが存在するか否かを判定する（１５３）。ＣＰＵ４は、エンコーダ６にエンコード済データが存在すると判定すると（１５３においてＹ）、１５４に進み、エンコーダ６にエンコード済データが存在しないと判定すると（１５３においてＮ）、図５に示す処理を終了する。
【００５１】
１５４において、ＣＰＵ４は、エンコード済データをエンコーダ６からワークメモリへ移動する。続いて、ＣＰＵ４は、前記ワークメモリを利用して、エンコード済みデータから映像ストリームパケットを生成する（１５５）。なお、このとき、ＣＰＵ４は、後で、ストレージ装置３において、映像ストリームデータの修復時に利用できる様、パケットの一部にシーケンス番号を付加する。
【００５２】
次に、ＣＰＵ４は、生成した映像ストリームデータパケットを通信部７へコピーする（１５６）。１５６の処理は、コピーであるため、ワークメモリ上に生成した映像ストリームデータパケットは消去されない。通信部７は、入手した映像ストリームデータパケットに対する通信処理を実施し（１５７）、その結果をＣＰＵ４へ通知する。
【００５３】
ＣＰＵ４は、通信部７からの通知に基づいて、通信が成功したか否かを判定する（１５８）。ＣＰＵ４は、通信が成功したと判定すると（１５８においてＹ）、１５９に進み、通信が成功しなかったと判定すると（１５８においてＮ）、次の映像ストリームデータパケット生成に利用可能な新たなワークエリアを検索するため、１５０に戻る。１５９において、ＣＰＵ４は、同一のワークエリアを用いて次の映像ストリームデータパケットを生成する様に設定する（１５９）。
【００５４】
以上の処理を繰り返すことによって、ＣＰＵ４は、通信に失敗した映像ストリームデータパケットが保存されたワークエリアのみを残しながら、映像ストリームデータの通信を継続することができる。
【００５５】
また、ディスプレイ１１がオフ状態中に、デジタルビデオカメラ装置１のＣＰＵ４が映像ストリームデータを再送する際の処理の一例を、図６を用いて説明する。図６は、映像ストリームデータの再送処理の一例を示すフローチャートである。
【００５６】
ＣＰＵ４は、図４に示したローカルストレージ管理テーブル（使用／未使用テーブル）を参照する。即ち、ＣＰＵ４は、ローカルストレージ管理テーブルの内、"１"にセットされているＩｎｄｅｘを検索する（１７０）。
【００５７】
そして、ＣＰＵ４は、検索結果に基づいて、使用エリアが有ると判定すると（１７１においてＹ）、１７２に進み、使用エリアが無いと判定すると（１７１においてＮ）、図６に示す処理を終了する。ここで、使用エリアが無いということは、再送に必要な映像ストリームデータパケットが存在しないことを表す。
【００５８】
１７２において、ＣＰＵ４は、Ｉｎｄｅｘが"１"にセットされているワークエリアを次の再送用データエリアとして決定して（１７２）、前記ワークエリアに保存された映像ストリームデータパケットを通信部７へコピー（１７３）する。
【００５９】
ここで、再送は確実に行われる必要があるため、ＣＰＵ４（又は通信部７）は、再送カウンタＣを適当な値に初期化する（１７４）。通信部７は、入手した映像ストリームデータパケットに対する再送処理を実施し（１７５）、その結果をＣＰＵ４へ通知する。
【００６０】
ＣＰＵ４は、通信部７からの通知に基づいて、再送処理が成功したか否かを判定する。ＣＰＵ４は、再送処理に成功したと判定すると（１７６においてＹ）、１８０に進み、再送処理に失敗したと判定すると（１７６においてＮ）、１７７に進む。
【００６１】
１８０において、ＣＰＵ４は、前記ワークエリアに対応するＩｎｄｅｘを"０"クリアする。続いて、ＣＰＵ４は、ディスプレイ１１がオフ状態のままか否かを判定する（１８１）。ＣＰＵ４は、例えば、ストレージ装置３より、Ｒｅｓｅｎｄ  Ｓｕｓｐｅｎｄ  Ｒｅｑｕｅｓｔ通知パケットを受け取ったか否かに応じて、ディスプレイ１１がオフ状態のままか否かを判定する。
【００６２】
ＣＰＵ４は、ディスプレイ１１がオフ状態のままであると判定すると（１８１においてＮ）、１８２に進み、ディスプレイ１１がオン状態になったと判定すると（１８１においてＹ）、図６に示す再送処理を終了する。
【００６３】
１８２において、ＣＰＵ４は、エンコーダ６にエンコード済データが存在するか否かを判定する（１８２）。ＣＰＵ４は、エンコーダ６にエンコード済データが存在すると判定すると（１８２においてＹ）、エンコード済データを優先して送信するため、図６に示す再送処理を終了する。ＣＰＵ４は、エンコーダ６にエンコード済データが存在しないと判定すると（１８２においてＮ）、次の再送ワークエリア検索のため１７０の処理に戻る。
【００６４】
一方、１７７において、ＣＰＵ４は、再送カウンタＣをカウントダウンする。続いて、ＣＰＵ４は、再送カウンタＣが０か否かを判定する（１７８）。ＣＰＵ４は、再送カウンタＣが０であると判定すると（１７８においてＹ）、１７９に進み、再送カウンタＣが０でないと判定すると（１７８においてＮ）、１７５の処理に戻る。
【００６５】
１７９において、ＣＰＵ４は、再送カウンタＣをカウントダウンさせながら、再送を繰り返したが、正常な再送を行うことができなかったとして、エラー処理（Ｅｒｒｏｒ処理）を実行し、図６に示す処理を終了する。
【００６６】
以上の処理を繰り返すことによって、ＣＰＵ４は、ディスプレイ１１がオフ状態の際に、通信に失敗した映像ストリームデータパケットをワークエリアから逐次読み出して、映像ストリームデータパケットの再送を実行することができる。
【００６７】
次に、ストレージ装置３で受信する映像ストリームデータにエラーが有った場合のストレージ１７への保存処理について説明する。デジタルビデオカメラ装置１は、ディスプレイ装置２において映像ストリームの表示を行っている間、通信中の映像ストリームデータにエラーが発生しても再送を行わない。したがって、ストレージ装置３には、欠落部の存在する映像ストリームデータが保存される。
【００６８】
この保存した映像ストリームデータの欠落部の補填は、ディスプレイ装置２の停止又は休止中に行われる通信エラーした映像ストリームデータパケットの再送によって行われる。この際、ストレージ装置３（又はＣＰＵ１５）は、映像ストリームデータパケットに付加されたシーケンス番号（１５５）を利用することで、映像ストリームデータの欠落部の補填を効率的に行うことができる。
【００６９】
しかしながら、何らかの原因でデジタルビデオカメラ装置１との通信リンクが切断され、映像ストリームデータの欠落部の補填が不可能な状況に陥ると、欠落の存在する映像ストリームデータがストレージ装置３保存されることになる。このような場合、欠落部以降の映像が正常に再生できない等の不具合が生じることがある。
【００７０】
このような不具合を無くすため、ＣＰＵ１５は、通信エラー発生部分の前後で映像を一旦カットして、別ファイルとしてストレージ１７に保存する。そして、ＣＰＵ１５は、全てのデータを受信してから映像ストリームデータ全体を一本の映像ストリームとして再結合する。
【００７１】
図７は、代表的なビデオストリーム方式であるＭＰＥＧ−２のビデオストリームの構造の一例を示す図である。図７に示されるように、通常、１本の映像ストリームは、１本のプログラム、即ちシーケンスレイヤの１単位と同一となる。１本のプログラムは複数のＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅ）ユニットに分割可能であり、通常ＭＰＥＧ−２のビデオストリームを分割する場合、ＧＯＰ単位で分割される。以下、フレーム又はフィールド単位のピクチャーレイヤ、変換単位の複数ラインからなるスライスレイヤ、変換単位の最低ブロックから成るマクロブロックレイヤ、各ＤＣＴ変換単位からなるブロックレイヤ、と続く。
【００７２】
ここで、図８は、欠落部の存在する映像ストリームデータをストレージ１７に保存した場合のＧＯＰレイヤ構成の一例を示す図である。図８に示す様な分布で通信エラーが発生した場合、ＣＰＵ１５は、欠落部が含まれる直前のＧＯＰユニットまでをＦｉｌｅ１としてストレージ１７に保存する。また、ＣＰＵ１５は、通信エラーが発生したＧＯＰユニット（複数でも可）をＦｉｌｅ２として保存し、欠落部が含まれる次のＧＯＰユニット以降をＦｉｌｅ３としてストレージ１７に保存する。
【００７３】
その後、ＣＰＵ１５は、再送によって、欠落部のあるＦｉｌｅ２の補填が完了したら、Ｆｉｌｅ１、Ｆｉｌｅ２、Ｆｉｌｅ３を繋ぎ合わせて一本の映像ストリームデータとして、この映像ストリームデータをストレージ１７に再保存する。
【００７４】
以上の処理を行うことで、何らかの理由によって通信エラー部分の補填が行われなくても、エラー部分以外の映像ストリームを確実にストレージ１７に保存することができる。
【００７５】
（第２の実施形態）
第１の実施形態では、常時、ストレージ１７が動作してデジタルビデオカメラ装置１の撮像データを保存しているが、ディスプレイ１１は切り換え等の理由で休止時間が存在する様なケース（監視カメラ等）についての例を示した。第２の実施形態では、玄関等に配置されたカメラ装置を例に、カメラ装置からディスプレイ装置と、ストレージ装置と、にマルチキャスト通信で映像ストリームデータを通信する例を示す。
【００７６】
図９は、本実施形態に係るシステムを構成する各装置の一例のハードウェア構成図である。２０１は、撮像した映像をネットワーク出力する、玄関等に配置されたカメラ装置である。２０２は、ネットワーク入力された映像ストリームデータをデコードして表示する、リビング等に配置されたディスプレイ装置である。２０３は、ネットワーク出力された映像ストリームデータを蓄積保存する、書斎等に配置されたストレージ装置である。
【００７７】
２０４は、玄関ドア等に付けられた呼び出しスイッチである。２０５は、カメラ装置２０１の制御を受け持つＣＰＵである。ＣＰＵ２０４は、例えばローカルストレージ２０９等に記憶されているプログラムを実行することにより、後述するカメラ装置２０１の機能を提供したり、後述するフローチャート等の処理を実行したりする。
【００７８】
２０６は、カメラ装置１への画像取り込みを行う撮像部である。２０７は、撮像部２０６で撮像した画像をＭＰＥＧやＨ．２６４等の映像ストリームデータへエンコードするエンコーダである。２０８は、カメラ装置２０１と外部機器との通信処理を行う通信部である。２０９は、カメラ装置２０１に設けられたＦｌａｓｈメモリ等の比較的低容量なローカルストレージである。
【００７９】
２１０は、ディスプレイ装置２０２の制御を受け持つＣＰＵである。ＣＰＵ２１０は、例えばディスプレイ装置２０２のメモリ等に記憶されているプログラムを実行することにより、後述するディスプレイ装置２０２の機能を提供する。
【００８０】
２１１は、ディスプレイ装置２０２の表示を受け持つディスプレイである。２１２は、ネットワーク入力された映像ストリームデータを映像情報へ復号するデコーダである。２１３は、ディスプレイ装置２０２に設けられ、通信処理を行う通信部である。
【００８１】
２１５は、ストレージ装置２０３の制御を受け持つＣＰＵである。ＣＰＵ２１５は、例えばストレージ２１７等に記憶されているプログラムを実行することにより、後述するストレージ装置２０３の機能を提供する。
【００８２】
２１６は、ストレージ装置２０３に設けられ、通信処理を行う通信部である。２１７は、ストレージ装置２０３に設けられたＨＤＤ等の大容量ストレージである。
【００８３】
２２０は、ディスプレイ装置２０２の設置されたリビング等から無線でカメラ装置２０１を制御するリモコンである。
【００８４】
ここで、デジタルビデオカメラ装置２０１は、撮像した映像に関する映像ストリームデータを、ディスプレイ装置２０２と、ストレージ装置２０３とへ、マルチキャスト通信する。ディスプレイ装置２０２は、映像ストリームデータを受け取ると、リアルタイムな映像をディスプレイ１１に表示する。また、ストレージ装置３は、映像ストリームデータをストレージ１７に蓄積する。
【００８５】
図１０は、マルチキャスト通信に係るシーケンス図である。図１０に示す様に、カメラ装置２０１と、ディスプレイ装置２０２と、ストレージ装置２０３と、リモコン２２０とは、映像ストリームデータの転送に先立ち、それぞれ調停フェイズ（２９９、３００、３０１）を実行する。この調停フェイズ（２９９、３００、３０１）の目的は、映像ストリームデータのソースとなるカメラ装置２０１を中心に構成される映像ストリームネットワークの構成を各構成デバイス（２０１、２０２、２０３、２２０）に伝達し、設定することである。
【００８６】
調停フェイズ（２９９、３００、３０１）を経て各構成デバイス（２０１、２０２、２０３、２２０）には、図１１に示す様なテーブルが記憶される。図１１は、テーブルの一例を示す図（その２）である。
【００８７】
なお、調停フェイズは、カメラ装置２０１と、ディスプレイ装置２０２と、の間（３００）で、ユニキャスト通信を用いて実施される。また、調停フェイズは、カメラ装置２０１と、ストレージ装置２０３と、の間（２９９）で、ユニキャスト通信を用いて実施される。また、調停フェイズは、カメラ装置２０１と、リモートコントローラ２２０と、の間（３０１）で、ユニキャスト通信を用いて実施される。
【００８８】
以上の調停が終了し、カメラ装置２０１に接続された呼び出しスイッチ２０４が押されると、カメラ装置２０１における映像ストリームデータのエンコード処理が開始される。
【００８９】
エンコーダ２０７でエンコードされた映像ストリームデータは、ＣＰＵ２０５によって読み出され、出力する通信形式に合わせてパケット形式に加工された後、ローカルストレージ２０９へ移される。その後、ＣＰＵ２０５は、ローカルストレージ２０９に用意した通信パケットを随時読み出し、通信部２０８へ送る。通信パケット（映像ストリームデータ１）を受けた通信部２０８は、映像ストリームデータ１のネットワーク出力を開始（３０３）する。
【００９０】
なお、同映像ストリームデータ１の通信はマルチキャストにて行われ、再送に関する手当を必要とするのはストレージ装置２０３のみなので、ＣＰＵ２０５は、複数パケットに対応したＡＣＫをまとめて入手可能なブロック転送（Ｂｌｏｃｋ  ＡＣＫ転送）を行う。このため、カメラ装置２０１（又はＣＰＵ２０５）は、ＡＣＫを待つことなく、映像ストリームデータ１に引き続き、映像ストリームデータ２〜４をマルチキャスト送信（３０３）する。
【００９１】
一方、映像ストリームデータ１〜４（３０３）を受けたストレージ装置２０３のＣＰＵ２１５は、通信部２１６で受信した映像ストリームデータ１〜４（３０３）のＣＲＣ等の計算をそれぞれ行いデータの信憑性を検証する。そして、ＣＰＵ２１５は、検証結果等に基づいて、映像ストリームデータ１〜４を正しく受信できたか否かを判断する。
【００９２】
そして、ＣＰＵ２１５は、映像ストリームデータ１〜４の各々の映像ストリームデータの受信可否の判断結果を、ストレージ２１７等に記憶しておく。更に、ＣＰＵ２１５は、正常に受信できた映像ストリームデータを通信パケットスタイルから映像ストリームスタイルに変更し、随時ストレージ２１７へ保存する。
【００９３】
その後、カメラ装置２０１のＣＰＵ２０５は、これまで送信した映像ストリームデータ群の受信状況を知るため、Ｂｌｏｃｋ  ＡＣＫリクエストをストレージ装置２０３へユニキャスト送信（３０４）する。Ｂｌｏｃｋ  ＡＣＫリクエスト（３０４）を受けたストレージ装置２０３のＣＰＵ２１５は、先ほど記憶しておいた各々の映像ストリームデータの受信可否の判断結果に基づいて、返信用のパケットを生成する。そして、ＣＰＵ２１５は、Ｂｌｏｃｋ  ＡＣＫ（３０５）をカメラ装置２０１へ返送する。
【００９４】
ここで、カメラ装置２０１（又はＣＰＵ２０５）は、返送されたＢｌｏｃｋ  ＡＣＫパケット（３０５）を解析することで、通信に失敗した映像ストリームデータの有無とその番号を知ることができる。よって、ＣＰＵ２０５は、通信に成功した映像ストリームデータを順次ローカルストレージ２０９上から削除する（３０８）。
【００９５】
ここで、ユーザ等のリモートコントローラ２２０操作によって、リモートコントローラ２２０から、Ｄｉｓｐｌａｙ  Ｏｎ（Ｒｅｓｅｎｄ  Ｓｕｓｐｅｎｄ  Ｒｅｑｕｅｓｔ）パケット（３０７）がそれぞれの装置（２０１、２０２、２０３）へ、マルチキャスト通信される。Ｄｉｓｐｌａｙ  Ｏｎパケット（３０７）を受けたディスプレイ装置２０２のＣＰＵ２１０は、ディスプレイ２１１を起動し、映像の表示を開始する。Ｄｉｓｐｌａｙ  Ｏｎパケット（３０７）を受けたカメラ装置２０１ＣＰＵ２０５は、ストレージ装置２０３との映像ストリームデータ通信において通信エラーが発生しても、再送処理を逐次行わず、ディスプレイ２１１がＯｆｆされるまで再送処理を禁止する。
【００９６】
このため、ＣＰＵ２０５は、以降の映像ストリームデータ５〜８のマルチキャスト送信（３０９）において、映像ストリームデータ６の送信にエラーが発生したことがＢｌｏｃｋ  ＡＣＫパケット（３１２）から判明しても、その再送は行わない。そして、ＣＰＵ２０５は、通信に成功した映像ストリームデータ５、７、８に対応するローカルストレージのみを削除する（３１３）。
【００９７】
一方、映像ストリームデータ５〜８（３０９）を受けたディスプレイ装置２０２のＣＰＵ２１０は、通信部２１３で受信した映像ストリームデータ５〜８（３０９）の信憑性検査を行わない。そして、ＣＰＵ２１０は、受信データを通信パケットスタイルから映像ストリームスタイルに変更する。又は、ＣＰＵ２１０は、通信部２１３で受信した映像ストリームデータ５〜８（３０９）の信憑性検査を実施し、パケットエラーが発生していても何もせず、受信データを通信パケットスタイルから映像ストリームスタイルに変更する。なお、ここで、信憑性検査等の処理は、ディスプレイ装置２０２のＣＰＵ２１０ではなく、通信部２１３等において行うようにしてもよい。但し、以下では説明の簡略化のため、ＣＰＵ２１０が行うものとして説明を行なう。
【００９８】
デコーダ２１２は、ＣＰＵ２１０から受け取った映像ストリームデータ５〜８を映像化し、ディスプレイ２１１に表示する。
【００９９】
以降、リモートコントローラ２２０からＤｉｓｐｌａｙ  Ｏｆｆ（Ｒｅｓｅｎｄ  Ｒｅｑｕｅｓｔ）のパケット（３１９）が、カメラ装置２０１に送信されるまで、ＣＰＵ２０５において、順次映像ストリームデータの転送が行われる。前述した通り、その間に通信エラーした映像ストリームデータパケット（映像ストリームデータ６、１２）は、カメラ装置２０１のローカルストレージ２０９へ蓄積される。
【０１００】
ここで、リモートコントローラ２２０からＤｉｓｐｌａｙ  Ｏｆｆ（Ｒｅｓｅｎｄ  Ｒｅｑｕｅｓｔ）のパケット（３１９）がそれぞれ装置（２０１、２０２、２０３）へマルチキャスト送信される。Ｄｉｓｐｌａｙ  Ｏｆｆパケット（３１９）を受けたディスプレイ装置２０２のＣＰＵ２１０は、ディスプレイ２１１における映像の表示を停止し、休止状態に入る。
【０１０１】
また、Ｄｉｓｐｌａｙ  Ｏｎパケット（３０７）を受けたカメラ装置２０１のＣＰＵ２０５は、ローカルストレージ２０９に蓄積された通信エラーした映像ストリームデータパケットの再送を実施する（３２０）。なお、カメラ装置２０１における、ストレージ装置２０３への映像ストリームデータの保存は、呼び出しスイッチ２０４が押されたタイミング（３０２）から開始され、次の何れかの条件が成立するまで継続される。
１：リモートコントローラ２２０からＤｉｓｐｌａｙ  Ｏｆｆパケットが送信（３１９）されるまで。
２：呼び出しスイッチ２０４が押されてから一定時間（１分間等）経過するまで。
３：カメラ装置２０１の撮像映像に動きが無くなるまで。
【０１０２】
前記１の条件でストレージ装置２０３への保存を中止する場合、カメラ装置２０１は、図１０のシーケンス図における（３２４）以降の処理は行わず終了する。また、前記２、３の条件でストレージ装置２０３への保存を中止する場合、カメラ装置２０１は、タイムアウト又は動き検出がオフとなる（３２８）まで、同様の処理を継続し、終了する。
【０１０３】
なお、システムは、マルチキャスト通信と、ユニキャスト通信と、を混在させて、ディスプレイ装置２０２が有効な場合だけ、マルチキャスト通信を行うようにすることもできる。この場合のシーケンス図を図１２に示す。図１２は、マルチキャスト通信と、ユニキャスト通信と、を混在させた場合のシーケンス図である。
【０１０４】
図１２に示されるシーケンス図と、図１０に示されるシーケンス図と、の相違は、ディスプレイ装置２０２が稼働状態にある時だけマルチキャスト通信が実施され、ディスプレイ装置２０２が休止状態にあるときはユニキャスト通信が実施される点である。
【０１０５】
以上、上述した各実施形態によれば、低遅延、且つ確実なデータ保存が可能なストリームデータの配信を行なうことができる。
【０１０６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１０７】
【図１】本実施形態に係るシステムを構成する各装置の一例のハードウェア構成図である。
【図２】ユニキャスト通信に係るシーケンス図である。
【図３】テーブルの一例を示す図（その１）である。
【図４】ローカルストレージ管理テーブルの一例を示す図である。
【図５】映像ストリームデータのリアルタイム転送処理の一例を示すフローチャートである。
【図６】映像ストリームデータの再送処理の一例を示すフローチャートである。
【図７】代表的なビデオストリーム方式であるＭＰＥＧ−２のビデオストリームの構造の一例を示す図である。
【図８】欠落部の存在する映像ストリームデータをストレージ１７に保存した場合のＧＯＰレイヤ構成の一例を示す図である。
【図９】本実施形態に係るシステムを構成する各装置の一例のハードウェア構成図である。
【図１０】マルチキャスト通信に係るシーケンス図である。
【図１１】テーブルの一例を示す図（その２）である。
【図１２】マルチキャスト通信と、ユニキャスト通信と、を混在させた場合のシーケンス図である。
【符号の説明】
【０１０８】
１      デジタルビデオカメラ装置
２      ディスプレイ装置
３      ストレージ装置
２０１  カメラ装置
２０２  ディスプレイ装置
２０３  ストレージ装置
【図１】
2007300549.tif 000003
【図２】
2007300549.tif 000004
【図３】
2007300549.tif 000005
【図４】
2007300549.tif 000006
【図５】
2007300549.tif 000007
【図６】
2007300549.tif 000008
【図７】
2007300549.tif 000009
【図８】
2007300549.tif 000010
【図９】
2007300549.tif 000011
【図１０】
2007300549.tif 000012
【図１１】
2007300549.tif 000013
【図１２】
2007300549.tif 000014