(57)【要約】【課題】受信した画像データに欠陥がある場合であっても、良質な画像を表示することができるようにする。【解決手段】受信制御部１４７は、通信部１４１が受信した画像データからロスを検出し、ロスに応じて受信を許可する。受信が許可されると、通信部１４１は、バッファに画像データを保持する。デコーダ制御部１５２は、閾値保持部１５１に保持された閾値に応じて、デコードを許可する。デコードを許可されると、デコーダ１４３は、バッファ１４２に保持された画像データをデコードし、フレームメモリ１４４に保持する。表示制御部１４５は、フレームメモリ１４４に保持された画像データに基づき、表示部１４６を制御し、画像を表示させる。本発明は、画像配信システムに適用することができる。【選択図】      図１０
2004193924.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを送信する送信装置と、前記コンテンツを受信する受信装置とからなる送受信システムにおいて、
前記送信装置は、
前記コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化手段と、
前記複数のレイヤの符号化データをパケット化し、前記符号化データの低域情報からパケットを出力するパケット化手段と、
前記パケットを送信する送信手段と
を備え、
前記受信装置は、
前記送信装置から送信されてくる前記パケットを受信する受信手段と、
前記受信手段により受信された前記パケットを保持する保持手段と、
前記受信手段が受信した前記パケットの、前記保持手段への書き込みを制御する書き込み制御手段と、
前記送信装置により送信されてくる前記パケットにパケットロスがあるか否かを判定する判定手段と
を備え、
前記書き込み制御手段は、前記コンテンツの１フレーム内に、パケットロスがある場合、前記１フレーム内のパケットロスが生じるまでの前記パケットを、前記保持手段に書き込み、前記１フレームの残りの前記パケットを前記保持手段に書き込まない
ことを特徴とする送受信システム。
【請求項２】
前記保持手段に保持された前記パケットに配置された前記符号化データのデコードを制御するデコード制御手段と、
前記符号化データをデコードするデコード手段と、
前記デコード手段のデコードに関する閾値を保持する閾値保持手段と
をさらに備え、
前記デコード制御手段は、前記デコード手段によるデコードを、前記閾値に基づいて制御する
ことを特徴とする請求項１に記載の送受信システム。
【請求項３】
前記送信装置は、前記複数のレイヤ毎の前記符号化データのパケット数と、前記符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報をさらに送信し、
前記受信手段は、前記フレーム情報をさらに受信し、
前記デコード制御手段は、前記閾値保持手段に保持された前記閾値と前記フレーム情報に基づいて、前記デコード手段によるデコードを制御する
ことを特徴とする請求項２に記載の送受信システム。
【請求項４】
コンテンツを送信する送信装置と、前記コンテンツを受信する受信装置とからなる送受信システムの送受信方法において、
前記送信装置の送信方法は、
前記コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、
前記複数のレイヤの符号化データをパケット化し、前記符号化データの低域情報からパケットを出力するパケット化ステップと、
前記パケットを送信する送信ステップと
を含み、
前記受信装置の受信方法は、
前記送信装置から送信されてくる前記パケットを受信する受信ステップと、
前記受信ステップの処理が受信した前記パケットの書き込みを制御する書き込み制御ステップと、
前記送信装置により送信されてくる前記パケットにパケットロスがあるか否かを判定する判定ステップと
を含み、
前記書き込み制御ステップは、前記コンテンツの１フレーム内に、パケットロスがある場合、前記１フレーム内のパケットロスが生じるまでの前記パケットを書き込み、前記１フレームの残りの前記パケットを書き込まない
ことを特徴とする送受信方法。
【請求項５】
コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化手段と、
前記複数のレイヤの符号化データをパケット化し、前記符号化データの低域情報からパケットを出力するパケット化手段と、
前記複数のレイヤ毎の前記符号化データのパケット数と、前記符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を保持する保持手段と、
前記パケットと前記フレーム情報を送信する送信手段とを備え、
前記符号化手段は、前記フレーム情報に基づいて、前記コンテンツを階層符号にし、前記パケット化手段は、前記フレーム情報に基づいて、前記複数のレイヤの符号化データをパケット化する
ることを特徴とする送信装置。
【請求項６】
コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、
前記複数のレイヤの符号化データをパケット化し、前記符号化データの低域情報からパケットを出力するパケット化ステップと、
前記複数のレイヤ毎の前記符号化データのパケット数と、前記符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を保持する保持ステップと、
前記パケットと前記フレーム情報を送信する送信ステップとを含み、
前記符号化ステップは、前記フレーム情報に基づいて、前記コンテンツを階層符号にし、前記パケット化ステップは、前記フレーム情報に基づいて、前記複数のレイヤの符号化データをパケット化する
ことを特徴とする送信方法。
【請求項７】
コンテンツを送信するプログラムであって、
コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、
前記複数のレイヤの符号化データをパケット化し、前記符号化データの低域情報からパケットを出力するパケット化ステップと、
前記パケットと保持された前記複数のレイヤ毎の前記符号化データのパケット数と、前記符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を送信する送信ステップとを含み、
前記符号化ステップは、前記フレーム情報に基づいて、前記コンテンツを階層符号にし、前記パケット化ステップは、前記フレーム情報に基づいて、前記複数のレイヤの符号化データをパケット化する
ことを特徴とするコンピュータが読み取り可能なプログラムが格納されているプログラム格納媒体。
【請求項８】
コンテンツを送信するプログラムであって、
コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、
前記複数のレイヤの符号化データをパケット化し、前記符号化データの低域情報からパケットを出力するパケット化ステップと、
前記パケットと保持された前記複数のレイヤ毎の前記符号化データのパケット数と、前記符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を送信する送信ステップとを含み、
前記符号化ステップは、前記フレーム情報に基づいて、前記コンテンツを階層符号にし、前記パケット化ステップは、前記フレーム情報に基づいて、前記複数のレイヤの符号化データをパケット化する
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
コンテンツを階層符号化して得られる複数のレイヤの符号化データをパケット化したパケットを送信する送信装置から送信されてくる前記パケットを受信する受信装置において、
前記送信装置から送信されてくる前記パケットを受信する受信手段と、
前記受信手段により受信された前記パケットを保持する保持手段と、
前記受信手段が受信した前記パケットの、前記保持手段への書き込みを制御する書き込み制御手段と、
前記送信装置により送信されてくる前記パケットにパケットロスがあるか否かを判定する判定手段とを備え、
前記書き込み制御手段は、前記コンテンツの１フレーム内に、パケットロスがある場合、前記１フレーム内のパケットロスが生じるまでの前記パケットを、前記保持手段に書き込み、前記１フレームの残りの前記パケットを前記保持手段に書き込まない
ことを特徴とする受信装置。
【請求項１０】
前記保持手段に保持された前記パケットに配置された前記符号化データのデコードを制御するデコード制御手段と、
前記符号化データをデコードするデコード手段と、
前記デコード手段のデコードに関する閾値を保持する閾値保持手段とをさらに備え、
前記デコード制御手段は、前記デコード手段によるデコードを、前記閾値に基づいて制御する
ことを特徴とする請求項９に記載の受信装置。
【請求項１１】
前記送信装置は、前記複数のレイヤ毎の前記符号化データのパケット数と、前記符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報をさらに送信し、
前記受信手段は、前記フレーム情報をさらに受信し、
前記デコード制御手段は、前記閾値保持手段に保持された前記閾値と前記フレーム情報に基づいて、前記デコード手段によるデコードを制御する
ことを特徴とする請求項１０に記載の受信装置。
【請求項１２】
前記デコード手段によりデコードされた前記コンテンツを記憶する記億手段と、
前記コンテンツの表示を制御する表示制御手段と、
前記コンテンツを表示する表示手段とをさらに備え、
前記表示制御手段は、前記デコード制御手段により前記符号化データのデコードが許可されない場合、その符号化データに対応するコンテンツより前に前記記憶手段に記憶された前記コンテンツを表示手段に表示させる
ことを特徴とする請求項１０に記載の受信装置。
【請求項１３】
コンテンツを階層符号化して得られる複数のレイヤの符号化データをパケット化したパケットを送信する送信装置から送信されてくる前記パケットを受信する受信装置の受信方法において、
前記送信装置から送信されてくる前記パケットを受信する受信ステップと、
前記受信ステップの処理により受信された前記パケットの書き込みを制御する書き込み制御ステップと、
前記送信装置により送信されてくる前記パケットにパケットロスがあるか否かを判定する判定ステップとを含み、
前記書き込み制御ステップの処理は、前記コンテンツの１フレーム内に、パケットロスがある場合、前記１フレーム内のパケットロスが生じるまでの前記パケットを書き込み、前記１フレームの残りの前記パケットを書き込まない
ことを特徴とする受信方法。
【請求項１４】
コンテンツを階層符号化して得られる複数のレイヤの符号化データをパケット化したパケットを送信する送信装置から送信されてくる前記パケットを受信するプログラムであって、
前記送信装置から送信されてくる前記パケットを受信する受信ステップと、
前記受信ステップの処理により受信された前記パケットの書き込みを制御する書き込み制御ステップと、
前記送信装置により送信されてくる前記パケットにパケットロスがあるか否かを判定する判定ステップとを含み、
前記書き込み制御ステップの処理は、前記コンテンツの１フレーム内に、パケットロスがある場合、前記１フレーム内のパケットロスが生じるまでの前記パケットを書き込み、前記１フレームの残りの前記パケットを書き込まない
ことを特徴とするコンピュータが読み取り可能なプログラムが格納されているプログラム格納媒体。
【請求項１５】
コンテンツを階層符号化して得られる複数のレイヤの符号化データをパケット化したパケットを送信する送信装置から送信されてくる前記パケットを受信するプログラムであって、
前記送信装置から送信されてくる前記パケットを受信する受信ステップと、
前記受信ステップの処理により受信された前記パケットの書き込みを制御する書き込み制御ステップと、
前記送信装置により送信されてくる前記パケットにパケットロスがあるか否かを判定する判定ステップとを含み、
前記書き込み制御ステップの処理は、前記コンテンツの１フレーム内に、パケットロスがある場合、前記１フレーム内のパケットロスが生じるまでの前記パケットを書き込み、前記１フレームの残りの前記パケットを書き込まない
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、送受信システム、送信装置および送信方法、受信装置および受信方法、記録媒体、並びにプログラムに関し、特に、受信した画像データが欠落している場合であっても、良質な画像を表示することができるようにした送受信システム、送信装置および送信方法、受信装置および受信方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
近年、インターネット等を用いて動画データを転送する際に発生する転送エラーについて、さまざまな処理が提案されている。
【０００３】
ＭＰＥＧ４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ４）では、再同期マーカとＲＶＬＣ（Ｒｅｖｅｒｓｉｂｌｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ）等を用いて、転送エラーが起きた箇所を廃棄し、エラー耐性の向上が図られている。
【０００４】
また、発生したエラーを目立たないように遮蔽するエラーコンシールメントの技術としては、動画の時間方向の相関性を利用し、１つ前のフレームを再生するか、または過去の画面の同一位置からの情報と置き換える処理が提案されている。
【０００５】
しかしながら、ＲＶＬＣを用いてエラー耐性を向上した場合、符号化効率が低下することが指摘されている。また、上述したエラーコンシールメントは、処理が煩雑であり、シーンチェンジ等の急峻な画像の変化には対応することが困難であるという課題があった。
【０００６】
そこで、階層符号化された画像データを転送する場合において、送信されたフレームの一部が欠落し、受信側に送信されない場合には、欠落する時までに受信側で受信され、記憶されたデータをもとに欠落した周波数成分を生成し、より上位の階層の周波成分を再構成するエラーコンシールメント技術が提案されている（例えば、特許文献１参照）。
【０００７】
【特許文献１】
特開平１０−２４３４００号公報（第７ページ）
【０００８】
【発明が解決しようとする課題】
しかしながら、画像情報に多く含まれる低域情報が欠落した場合、画質が劣化するという課題があった。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、受信した画像データに欠陥がある場合であっても、良質な画像を表示することができるようにするものである。
【００１０】
【課題を解決するための手段】
本発明の送受信システムは、送信装置は、コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化手段と、複数のレイヤの符号化データをパケット化し、符号化データの低域情報からパケットを出力するパケット化手段と、パケットを送信する送信手段とを備え、受信装置は、送信装置から送信されてくるパケットを受信する受信手段と、受信手段により受信されたパケットを保持する保持手段と、受信手段が受信したパケットの、保持手段への書き込みを制御する書き込み制御手段と、送信装置により送信されてくるパケットにパケットロスがあるか否かを判定する判定手段とを備え、書き込み制御手段は、コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットを、保持手段に書き込み、１フレームの残りのパケットを保持手段に書き込まないことを特徴とする。
【００１１】
保持手段に保持されたパケットに配置された符号化データのデコードを制御するデコード制御手段と、符号化データをデコードするデコード手段と、デコード手段のデコードに関する閾値を保持する閾値保持手段とをさらに備え、デコード制御手段は、デコード手段によるデコードを、閾値に基づいて制御するようにすることができる。
【００１２】
送信装置は、複数のレイヤ毎の符号化データのパケット数と、符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報をさらに送信し、受信手段は、フレーム情報をさらに受信し、デコード制御手段は、閾値保持手段に保持された閾値とフレーム情報に基づいて、デコード手段によるデコードを制御するようにすることができる。
【００１３】
本発明の送受信方法は、送信装置の送信方法は、コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、複数のレイヤの符号化データをパケット化し、符号化データの低域情報からパケットを出力するパケット化ステップと、パケットを送信する送信ステップとを含み、受信装置の受信方法は、送信装置から送信されてくるパケットを受信する受信ステップと、受信ステップの処理が受信したパケットの書き込みを制御する書き込み制御ステップと、送信装置により送信されてくるパケットにパケットロスがあるか否かを判定する判定ステップとを含み、書き込み制御ステップは、コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットを書き込み、１フレームの残りのパケットを書き込まないことを特徴とする。
【００１４】
本発明の送信装置は、コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化手段と、複数のレイヤの符号化データをパケット化し、符号化データの低域情報からパケットを出力するパケット化手段と、複数のレイヤ毎の符号化データのパケット数と、符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を保持する保持手段と、パケットとフレーム情報を送信する送信手段とを備え、符号化手段は、フレーム情報に基づいて、コンテンツを階層符号にし、パケット化手段は、フレーム情報に基づいて、複数のレイヤの符号化データをパケット化することを特徴とする。
【００１５】
本発明の送信方法は、コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、複数のレイヤの符号化データをパケット化し、符号化データの低域情報からパケットを出力するパケット化ステップと、複数のレイヤ毎の符号化データのパケット数と、符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を保持する保持ステップと、パケットとフレーム情報を送信する送信ステップとを含み、符号化ステップは、フレーム情報に基づいて、コンテンツを階層符号にし、パケット化ステップは、フレーム情報に基づいて、複数のレイヤの符号化データをパケット化することを特徴とする。
【００１６】
本発明の第１の記録媒体に記録されているプログラムは、コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、複数のレイヤの符号化データをパケット化し、符号化データの低域情報からパケットを出力するパケット化ステップと、パケットと保持された複数のレイヤ毎の符号化データのパケット数と、符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を送信する送信ステップとを含み、符号化ステップは、フレーム情報に基づいて、コンテンツを階層符号にし、パケット化ステップは、フレーム情報に基づいて、複数のレイヤの符号化データをパケット化することを特徴とする。
【００１７】
本発明の第１のプログラムは、コンテンツを階層符号にし、複数のレイヤの符号化データを出力する符号化ステップと、複数のレイヤの符号化データをパケット化し、符号化データの低域情報からパケットを出力するパケット化ステップと、パケットと保持された複数のレイヤ毎の符号化データのパケット数と、符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報を送信する送信ステップとを含み、符号化ステップは、フレーム情報に基づいて、コンテンツを階層符号にし、パケット化ステップは、フレーム情報に基づいて、複数のレイヤの符号化データをパケット化する処理をコンピュータに実行させることを特徴とする。
【００１８】
本発明の受信装置は、送信装置から送信されてくるパケットを受信する受信手段と、受信手段により受信されたパケットを保持する保持手段と、受信手段が受信したパケットの、保持手段への書き込みを制御する書き込み制御手段と、送信装置により送信されてくるパケットにパケットロスがあるか否かを判定する判定手段とを備え、書き込み制御手段は、コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットを、保持手段に書き込み、１フレームの残りのパケットを保持手段に書き込まないことを特徴とする。
【００１９】
保持手段に保持されたパケットに配置された符号化データのデコードを制御するデコード制御手段と、符号化データをデコードするデコード手段と、デコード手段のデコードに関する閾値を保持する閾値保持手段とをさらに備え、デコード制御手段は、デコード手段によるデコードを、閾値に基づいて制御するようにすることができる。
【００２０】
送信装置は、複数のレイヤ毎の符号化データのパケット数と、符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報をさらに送信し、受信手段は、フレーム情報をさらに受信し、デコード制御手段は、閾値保持手段に保持された閾値とフレーム情報に基づいて、デコード手段によるデコードを制御するようにすることができる。
【００２１】
デコード手段によりデコードされたコンテンツを記憶する記億手段と、コンテンツの表示を制御する表示制御手段と、コンテンツを表示する表示手段とをさらに備え、表示制御手段は、デコード制御手段により符号化データのデコードが許可されない場合、その符号化データに対応するコンテンツより前に記憶手段に記憶されたコンテンツを表示手段に表示させるようにすることができる。
【００２２】
本発明の受信方法は、送信装置から送信されてくるパケットを受信する受信ステップと、受信ステップの処理により受信されたパケットの書き込みを制御する書き込み制御ステップと、送信装置により送信されてくるパケットにパケットロスがあるか否かを判定する判定ステップとを含み、書き込み制御ステップの処理は、コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットを書き込み、１フレームの残りのパケットを書き込まないことを特徴とする。
【００２３】
本発明の第２の記録媒体に記録されているプログラムは、送信装置から送信されてくるパケットを受信する受信ステップと、受信ステップの処理により受信されたパケットの書き込みを制御する書き込み制御ステップと、送信装置により送信されてくるパケットにパケットロスがあるか否かを判定する判定ステップとを含み、書き込み制御ステップの処理は、コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットを書き込み、１フレームの残りのパケットを書き込まないことを特徴とする。
【００２４】
本発明の第２のプログラムは、送信装置から送信されてくるパケットを受信する受信ステップと、受信ステップの処理により受信されたパケットの書き込みを制御する書き込み制御ステップと、送信装置により送信されてくるパケットにパケットロスがあるか否かを判定する判定ステップとを含み、書き込み制御ステップの処理は、コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットを書き込み、１フレームの残りのパケットを書き込まない処理をコンピュータに実行させることを特徴とする。
【００２５】
第１の本願発明においては、コンテンツが階層符号にされて、複数のレイヤの符号化データが出力され、複数のレイヤの符号化データがパケット化されて、符号化データの低域情報からパケットが出力され、そのパケットが送信され、受信される。受信されたパケットにパケットロスがあるか否かが判定され、コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットが書き込まれ、１フレームの残りのパケットは、書き込まれない。
【００２６】
第２の本願発明においては、符号化データをデコードすることにより得られる画像の画質に関する情報を含むフレーム情報に基づいて、コンテンツが階層符号にされて、複数のレイヤの符号化データが出力される。また、フレーム情報に基づいて、複数のレイヤの符号化データがパケット化され、符号化データの低域情報からパケットが出力される。そして、そのパケットとフレーム情報が送信される。
【００２７】
第３の本願発明においては、記送信装置から送信されてくるパケットが受信され、受信されたパケットにパケットロスがあるか否かが判定される。コンテンツの１フレーム内に、パケットロスがある場合、１フレーム内のパケットロスが生じるまでのパケットが書き込まれ、１フレームの残りのパケットは、書き込まれない。
【００２８】
【発明の実施の形態】
図１は、本発明を適用した情報処理システム１の構成例を表わしている。
【００２９】
この情報処理システム１において、サーバ１２は、ビデオカメラ１１を介して入力された画像データを、パケット通信網等のネットワーク１４を介して、クライアント１３に送信する。
【００３０】
サーバ１２は、ビデオカメラ１１が撮影した画像のデータが入力されると、その画像データをエンコードして、ＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）パケット（後述する図８）を生成する。サーバ１２は、生成されたＲＴＰパケット（画像データ）を、ネットワーク１４を介して、クライアント１３に送信する。また、サーバ１２は、ユーザによって入力されたフレーム情報（後述する図５）をクライアント１３に送信する。
【００３１】
クライアント１３は、画像データを受信し、１フレーム内にパケットロスがある場合、パケットロスが生じるまでの画像データを保持する。クライアント１３は、受信したフレーム情報に基づいて、保持した画像データの画質またはデータ量が、ユーザによって設定された閾値以上であるか否かを判断し、閾値以上である場合、画像データをデコードし、ディスプレイ等の表示部に、デコードされた画像データを表示させる。閾値以上ではない場合、前のフレームの画像を表示させる。
【００３２】
図２は、サーバ１２の構成を示す図である。なお、図中、“Ｓ”の文字と数字からなる記号で示されている矢印は、後述する図３と図４のフローチャートの処理のステップに対応している。
【００３３】
制御部３１には、例えばユーザが入力するフレーム情報が供給される。制御部３１は、ユーザにより入力された画像データのフレーム情報を、フレーム情報保持部３２に供給する。フレーム情報保持部３２は、制御部３１から供給されるフレーム情報を保持する。ここで、フレーム情報は、１フレームのレイヤ毎のパケット数と画質から構成されているが、詳細は、図５で後述する。
【００３４】
エンコーダ３３は、ビデオカメラ１１が撮影した画像のデータが入力されると、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２０００等の階層符号化によって、画像データをエンコードする。なお、エンコーダ３３は、画像データの各フレームをどのような階層（レイヤ）に階層符号化するかを、フレーム情報保持部３２に記憶されたフレーム情報に基づいて決定する。
【００３５】
エンコーダ３３は、エンコードした画像データを、バッファ３４に供給して保持させる。ＲＴＰパケット生成部３５は、バッファ３４に記憶（保持）された画像データを取得し、フレーム情報保持部３２に保持されたフレーム情報におけるレイヤ毎のパケット数に基づいて、画像データをＲＴＰパケット化する。
【００３６】
そして、ＲＴＰパケット生成部３５は、画像データをＲＴＰパケット化することにより得られるパケットを、通信部３６に供給する。通信部３６は、ＲＴＰパケット生成部３５から供給された画像データのパケットを、ネットワーク１４を介して、クライアント１３に供給する。さらに、通信部３６は、フレーム情報保持部３２から、フレーム情報を取得し、ネットワーク１４を介して、クライアント１３にフレーム情報を送信する。
【００３７】
次に、図３と図４を参照して、図２のサーバ１２における画像データ送信処理を説明する。なお、この処理は、ビデオカメラ１１から、サーバ１２に画像データが入力されたとき、またはユーザにより、サーバ１２に画像データの送信処理が指令されたとき、開始される。
【００３８】
ステップＳ１において、制御部３１は、ユーザにより入力された各レイヤのパケット数と画質（以下、適宜、フレーム情報と称する）を、フレーム情報保持部３２に保持する。なお、フレーム情報は、例えば、ユーザが図示せぬ操作部等を操作して予め入力するものとする。
【００３９】
ここで、図５は、フレーム情報保持部３２に保持されるフレーム情報を示している。フレーム情報５０は、レイヤ（を表す情報）５１、パケット数（を表す情報）５２、画質（を表す情報）５３から構成されている。図５では、１フレームは、レイヤ「Ｌ０」、レイヤ「Ｌ１」、レイヤ「Ｌ２」の３つのレイヤから構成されるものとしてある。また、図５では、レイヤ「Ｌ０」のパケット数５２は「２０」とされており、従って、レイヤ「Ｌ０」は、「２０」個のパケットから構成される。また、レイヤ「Ｌ０」の画質は「０．５ｂｐｐ（ｂｉｔ−ｐｅｒ−ｐｉｘｅｌ）」とされている。
【００４０】
同様に、図５では、レイヤ「Ｌ１」は、「２５」個のパケットから構成され、画質５３は「０．７ｂｐｐ」とされている。レイヤ「Ｌ２」は、「４５」個のパケットから構成され、画質５３は、「１．０ｂｐｐ」とされている。以上から、図５のフレーム情報によれば、１フレームは、「２０＋２５＋４５＝９０」個のパケットから構成される。
【００４１】
図３に戻り、ステップＳ１の処理後は、ステップＳ２に進み、ＲＴＰパケット生成部３５は、フレーム毎に付加されるタイムスタンプを初期化して、ステップＳ３に進む。即ち、ＲＴＰパケット生成部３５は、最初のフレームに付加するタイムスタンプの値を設定する。
【００４２】
ステップＳ３において、通信部３６は、フレーム情報保持部３２からフレーム情報を取得し、ステップＳ４に進む。ステップＳ４において、通信部３６は、フレーム情報保持部３２から取得したフレーム情報を、ＲＴＳＰ（Ｒｅａｌ−ｔｉｍｅ  Ｓｔｒｅａｍｉｎｇ  Ｐｒｏｔｏｃｏｌ）等のストリーミングのセッション管理プロトコルを用い、ネットワーク１４を介して、クライアント１３に送信する。なお、ＲＴＳＰは、ＲＦＣ（Ｒｅｑｕｅｓｔ
Ｆｏｒ  Ｃｏｍｍｅｎｔ）２３２６で定義されている。
【００４３】
ここで、図６は、ＲＴＳＰを用いて、サーバ１２がクライアント１３にフレーム情報を送信する場合に、サーバ１２からクライアント１３に送信させるメッセージと、そのメッセージを受信したクライアント１３がサーバ１２に送信する了承のメッセージの例を示している。
【００４４】
「Ｓ→Ｃ」は、サーバ１２からクライアント１３に送信するメッセージであることを表し、「Ｃ→Ｓ」は、クライアント１３からサーバ１２に送信するメッセージであることを表している。なお、「ＯＰＴＩＯＮＳ」はメソッドを表し、「ＯＰＴＩＯＮＳ＊ＲＴＳＰ／１．０」は拡張メソッドであることを示している。また、「ＣＳｅｑ」は、ＲＴＳＰのメッセージ番号を示しており、「Ｐａｃｋｅｔ−１ｌａｙｅｒ−ｂｐｐ」は、ヘッダである。ヘッダには、レイヤ名、積算パケット数（レイヤ名のレイヤまでのパケット数）、レイヤの画質の３つの情報のセットが１セットまたは繰り返し記述される。
【００４５】
図６の例の場合、サーバ１２からクライアント１３に送信されるメッセージは、ＲＴＳＰ番号が「１」の拡張メソッドのメッセージである。ヘッダには、図５に示した情報が記述されている。即ち、図５では、レイヤＬ０は、積算パケット数（レイヤＬ０のパケット数）が「２０」であり、画質が「０．５ｂｐｐ」である。レイヤＬ１は、積算パケット数（レイヤＬ０とレイヤＬ１のパケット数の和）が「４５」（レイヤＬ１のパケット数は「２５」）であり、画質が「０．７ｂｐｐ」である。レイヤＬ２は、積算パケット数（レイヤＬ０、レイヤＬ１、レイヤＬ２のパケット数の和）が「９０」（レイヤＬ２のパケット数は「４５」）であり、画質が「１．０ｂｐｐ」である。このため、サーバ１２からクライアント１３に送信するメッセージのヘッダには、図６に示したように、Ｌ０  ２０  ０．５
Ｌ１  ４５  ０．７  Ｌ２  ９０  １．０が記述される。
【００４６】
また、クライアント１３からサーバ１２に送信される図６に示したメッセージは、ＲＴＳＰ番号が「１」の拡張メソッドのメッセージ（サーバ１２からクライアント１３に送信されたメッセージ）を受信したことを通知するメッセージである。
【００４７】
図３に戻り、ステップＳ４において、サーバ１２からクライアント１３にフレーム情報（が記述されたメッセージ）が送信された後は、ステップＳ５に進み、エンコーダ３３は、予め設定されたフレームレート（例えば、３０フレーム／秒）に基づいて、エンコーダ３３に設けられた不図示のタイマに、１フレーム分の時間（いまの場合、３３ｍｓ）を設定し、ステップＳ６に進む。ステップＳ６において、エンコーダ３３は、ビデオカメラ１１を介して撮影された画像のデータを取得し、ステップＳ７に進む。ステップＳ７において、エンコーダ３３は、タイマに設定された所定時間（いまの場合、３３ｍｓ）が経過した（タイマが終了した）か否かを判定し、所定時間が経過したと判定するまで、画像データを取得する処理を行なう。
【００４８】
ステップＳ７において、エンコーダ３３は、所定時間が経過したと判定した場合、ステップＳ８に進み、画像データの取得を終了し、取得した画像データをエンコードする。即ち、エンコーダ３３は、１フレーム分の画像データを、フレーム情報保持部３２に記憶されたフレーム情報に基づいて階層符号化することによりエンコードし、そのエンコード結果として符号化データを取得する。そして、図４のステップＳ９に進み、エンコーダ３３は、１フレーム分の画像データをエンコードすることにより得られた符号化データをバッファ３４に供給して保持させる。
【００４９】
ここで、図７は、バッファ３４に保持された１フレーム分の符号化データを示している。符号化データは、ＳＯＣ（Ｓｔａｒｔ  Ｏｆ  Ｃｏｄｅ  ｓｔｒｅａｍ）７１、Ｃｏｄｅ  ｓｔｒｅａｍ７２、およびＥＯＣ（Ｅｎｄ  Ｏｆ  Ｃｏｄｅ  ｓｔｒｅａｍ）から構成されている。ＳＯＣ７１は、符号化データの開始を示すデータであり、ＥＯＣ７３は、符号化データの終了を示すデータである。また、Ｃｏｄｅ  Ｓｔｒｅａｍ７２は、エンコードされた画像データである。
【００５０】
ここで、エンコーダ３３で行われる階層符号化である、例えば、ＪＰＥＧ２０００は、解像度や圧縮率などが異なる複数種類のプログレッシブ表示に対応している。またＪＰＥＧ２０００は、画質スケーラブル（ＳＮＲ（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ））に対応している。本実施の形態では、エンコーダ３３は、画像データを、例えば、ＪＰＥＧ２０００方式で、図５に示したフレーム情報にしたがい、画質スケーラブルに階層符号化し、各階層（レイヤ）のデータをＣｏｄｅ  Ｓｔｒｅａｍ７２に配置する。
【００５１】
その結果、図７では、Ｃｏｄｅ  Ｓｔｒｅａｍ７２は、図５に示したフレーム情報にしたがって、レイヤＬ０データ９１、レイヤＬ１データ９２、およびレイヤＬ２データ９３に階層化されている。レイヤＬ０データ９１は、画像データの低域情報となっており、レイヤＬ１データ９２は、中域情報となっている。そして、レイヤＬ２データ９３は、画像データの高域情報となっている。
【００５２】
従って、レイヤＬ０データ９１をデコードすると、画質の低い元の画像（図５の例の場合、０．５ｂｐｐの画質の画像）と同じ空間解像度の画像が得られる。また、レイヤＬ１データ９２まで（レイヤＬ０データとレイヤＬ１データ）をデコードすると、レイヤＬ０データ９１だけをデコードした場合よりも画質の良い画像（図５の例の場合、０．７５ｂｐｐの画質の画像）が得られる。さらに、レイヤＬ２データ９３まで（レイヤＬ０データ９１、レイヤＬ１データ９２、レイヤＬ３データ９３）をデコードすると、さらに良い画質の画像（図５の例の場合、１．０の画質の画像）を得ることができる。
【００５３】
なお、エンコーダ３３は、符号化データをデコードしたときに、フレーム情報における画質の画像を得ることができるように階層符号化を行い、レイヤＬ０データ、レイヤＬ１データ９２、レイヤＬ３データ９３を得る。
【００５４】
図４に戻り、ステップＳ９の処理後は、ステップＳ１０に進み、ＲＴＰパケット生成部３５は、フレーム情報保持部３２から、フレーム情報５０（図５）を取得し、ステップＳ１１に進む。ステップＳ１１において、ＲＴＰパケット生成部３５は、バッファ３４に保持されている１フレーム分の符号化データから、ステップＳ１０で取得したフレーム情報５０における各レイヤ毎のパケット数のパケットが得られるサイズのデータを取得し、ＲＴＰパケットを生成する。
【００５５】
即ち、ＲＴＰパケット生成部３５は、図５に示したフレーム情報５０を取得した場合、レイヤＬ０データ９１から２０個のＲＴＰパケットを、レイヤＬ１データ９２から２５個のＲＴＰパケットを、レイヤＬ２データ９３から４５個のＲＴＰパケットを生成する。
【００５６】
ステップＳ１１でＲＴＰパケットを生成した後は、ステップＳ１２に進み、ＲＴＰパケット生成部３５は、生成したＲＴＰパケットを、レイヤＬ０からレイヤＬ２の順で通信部３６に供給し、ステップＳ１３に進む。ステップＳ１３において、通信部３６は、ＲＴＰパケットを、ネットワーク１４を介してクライアント１３に送信する。
【００５７】
ここで、図８は、通信部３６がクライアント１３に送信するＲＴＰパケットのＲＴＰフォーマットの例を示している。ＲＴＰヘッダは、バージョン番号を示すｖ１１１、パディングを示すｐ１１２、拡張ヘッダの有無を示すｘ１１３、送信元数（Ｃｏｕｎｔｅｒ）を示すｃｃ１１４、マーカ情報（ｍａｒｋｅｒ  ｂｉｔ）を示すｍ１１５、ペイロードタイプを示すｐｔ１１６、シーケンス番号を示すｓｅｑｕｅｎｃｅ１１７、タイムスタンプを示すｔｉｍｅｓｔａｍｐ１１８、同期ソース（送信元）識別子を示すＳＳＲＣ１１９から構成される。ＲＴＰヘッダの後には、符号化データがＤａｔａ１２０として配置される。
【００５８】
クライアント１３は、ｔｉｍｅｓｔａｍｐ１１８に記述されたタイムスタンプにより、ＲＴＰパケットを展開するときの処理時間を制御し、リアルタイム画像、または音声の再生制御を行う。なお、タイムスタンプは、１フレーム毎に決定され、同一のフレームの符号化データを配置させる複数のＲＴＰパケットには、共通のタイムスタンプが設定される。
【００５９】
図９は、通信部３６が、図５に示したフレーム情報５０に基づいて生成されたＲＴＰパケットを、ネットワーク１４を介して、クライアント１３に、送信する例を示す図である。なお、横軸ｔは時間を表している。
【００６０】
まず、通信部３６は、レイヤＬ０の符号化データ（図７のレイヤＬ０データ９１）（画像データの低域情報）のパケットを２０個（シーケンス番号１乃至２０のパケット）送信する。次に、レイヤＬ１の符号化データ（図７のレイヤＬ１データ９２）（画像データの中域情報）のパケットを４５個（シーケンス番号２１乃至４５のパケット）送信する。最後に、通信部３６は、レイヤＬ３の画像データ（図７のレイヤＬ３データ９３）（画像データの高域情報）のパケットを４５個（シーケンス番号４６乃至９０のパケット）送信し、１フレームの符号化データの送信が終了する。なお、シーケンス番号は、エンコードされた最初の画像データ（図７のＳＯＣ７１の次のデータ）から生成されたパケットから順に付され、図８に示したＲＴＰパケットのｓｅｑｕｅｎｃｅ１１７に配置される。
【００６１】
図４に戻り、ステップＳ１３において、ＲＴＰパケットを送信した後は、ステップＳ１４に進み、ＲＴＰパケット生成部は、ＲＴＰパケットのｔｉｍｅｓｔａｍｐ１１８（図８）に記述するタイムスタンプを更新し、ステップＳ１５に進む。
【００６２】
ここで、図８のｓｅｑｕｅｎｃｅ１１７に配置されるシーケンス番号は、ＲＴＰパケットにシーケンシャルに付される。従って、このシーケンス番号によって、クライアント１３は、受信したＲＴＰパケットが、送信されたＲＴＰパケットに対して足りない（欠落している）かどうかを検出することができる。
【００６３】
ステップＳ１５において、サーバ１２は、全ての画像データを、クライアント１３に送信したか否かを判定する。サーバ１２は、全ての画像データをクライアント１３に送信していないと判定した場合、処理をステップＳ１５からＳ５に戻し、ビデオカメラ１１を介して撮影された画像データを、フレーム毎に取得し、ＲＴＰパケットを送信する処理を繰り返す。ステップＳ１５において、サーバ１２は、全ての画像データをクライアント１３に送信したと判定した場合、処理を終了する。
【００６４】
次に、図１０は、図１のクライアント１３の構成例を示している。なお、図中、“Ｓ”の文字と数字からなる記号で示されている矢印は、後述する図１１乃至図１３のフローチャートの処理のステップに対応している。
【００６５】
通信部１４１は、サーバ１２から送信されているフレーム情報とＲＴＰパケットを受信する。受信制御部１４７は、通信部１４１が受信したフレーム情報とＲＴＰパケットに基づいて受信処理を行ない、通信部１４１により受信されたＲＴＰパケット（画像データ）のバッファ１４２への書き込みを制御する。この受信処理の詳細は、図１４乃至図２１を参照して後述する。
【００６６】
また、受信制御部１４７は、フレーム情報を、通信部１４１から取得し、画像情報保持部１４８のフレーム情報保持部１５０に供給して保持させる。さらに、受信制御部１４７は、通信部１４１が受信したＲＴＰパケットのタイムスタンプ毎（１フレーム毎）に、画像情報保持部１４８のエントリ情報蓄積部１４９にエントリし、ＲＴＰパケットの形で受信した画像データの情報（以下、適宜、エントリ情報と称する）を保持する。
【００６７】
通信部１４１は、受信制御部１４７の制御にしたがい、受信したＲＴＰパケットをバッファ１４２に書き込み、これによりバッファ１４２は、通信部１４１から供給されるＲＴＰパケットを一時保持する。デコーダ１４３は、バッファ１４２に保持されたＲＴＰパケットを取得する。
【００６８】
閾値保持部１５１は、例えば、ユーザにより入力された、タイムスタンプ毎のデータ量（ＲＴＰパケット数）または画質の閾値を保持する。
【００６９】
デコーダ制御部１５２は、閾値保持部１５１で保持された閾値と、エントリ情報蓄積部１４９で保持されたエントリ情報（後述する図２１）に基づいて、デコーダ１４３で取得されＲＴＰパケットの、デコードを許可するか否かを判断する。
【００７０】
デコーダ１４３は、デコーダ制御部１５２によりデコードが許可されると、バッファ１４２から取得したＲＴＰパケットに配置された符号化データをデコードし、そのデコードの結果得られる画像データをフレームメモリ１４４に記億する。表示制御部１４５は、フレームメモリ１４４に記憶された画像データを取得し、ディスプレイ等の表示部１４６に画像を表示させる。
【００７１】
図１０のクライアント１３の画像表示処理を、図１１乃至図１３を用いて詳細に説明する。なお、この処理は、サーバ１１から画像データが送信されたとき、開始される。
【００７２】
ステップＳ３１において、クライアント１３は、自身を初期化し、ステップＳ３２に進む。これにより、バッファ１４２、フレームメモリ１４４、画像情報保持部１４８、および閾値保持部１５１に保持されているデータは消去される。ステップＳ３２において、閾値保持部１５１は、ユーザにより入力されたデータ量（ＲＴＰパケット数）または画質の閾値を保持し、ステップＳ３３に進む。なお、閾値は、例えば、ユーザが図示せぬ操作部等を操作して予め入力するものとする。
【００７３】
ステップＳ３３において、通信部１４１は、図３のステップＳ４の処理でサーバ１２から送信されたフレーム情報（図６）、または図４のステップＳ１３の処理でクライアント１３から送信されたＲＴＰパケット（図９）を、ネットワーク１４を介して受信し、ステップＳ３４に進む。
【００７４】
ステップＳ３４において、受信制御部１４７は、通信部１４１で受信されたフレーム情報を通信部１４１から取得し、フレーム情報保持部１５０に供給して保持させる。これにより、画像情報保持部１４８のフレーム情報保持部１５０は、図２のフレーム情報保持部３２に保持されたフレーム情報と同じフレーム情報を保持する。従って、図６に示したフレーム情報が通信部１４１で受信された場合、図５に示したフレーム情報が、フレーム情報保持部１５０に保持される。
【００７５】
ステップＳ３４の処理後は、ステップＳ３５に進み、受信制御部１４７は、受信処理を行ない、これにより通信部１４１により受信されたＲＴＰパケットの書き込み許可または不許可を決定するとともに、後述するエントリ情報を、エントリ情報蓄積部１４９に記憶させる。なお、受信処理の詳細は、図１４と図１５のフローチャートを用いて後述する。
【００７６】
ステップＳ３５の処理後は、ステップＳ３６に進み、通信部１４１は、ステップＳ３５の受信処理で、受信制御部１４７からＲＴＰパケットの書き込みが許可されたか否かを判定する。通信部１４１は、受信制御部１４７から書き込みが許可された場合、ステップＳ３６からＳ３７に進み、ステップＳ３３の処理で受信したＲＴＰパケットを、バッファ１４２に供給して書き込み、これによりバッファ１４２は、通信部１４１が受信したＲＴＰパケットを保持する。
【００７７】
そして、ステップＳ３８に進み、デコーダ１４３は、バッファ１４２に１フレーム分のＲＴＰパケットが保持されたか否かを判定する。即ち、デコーダ１４３は、１フレーム分の受信処理の時間を予め内蔵するタイマ（図示せず）に設定しておき、タイマによって、その設定した時間が計時されたか否かを判定する。デコーダ１４３は、１フレーム分のＲＴＰパケットが保持されるまで、ステップＳ３８の処理を繰り返し、１フレーム分のＲＴＰパケットが保持された場合、処理をステップＳ３８から図１２のＳ３９に進める。
【００７８】
ステップＳ３９において、デコーダ１４３は、ステップＳ３７の処理でバッファ１４２に保持された１フレーム分のＲＴＰパケットを、バッファ１４２から取得し、ステップＳ４０に進む。ステップＳ４０において、デコーダ制御部１５２は、画像情報保持部１４８から、図１１のステップＳ３４，Ｓ３５の処理で保持された画像情報、即ちエントリ情報蓄積部１４９に保持されたエントリ情報とフレーム情報保持部１５０に保持されたフレーム情報を取得し、ステップＳ４１に進む。
【００７９】
ステップＳ４１において、デコーダ制御部１５２は、ステップＳ３２の処理で閾値保持部１５１に保持されたデコーダ量（ＲＴＰパケット数）または画質の閾値を取得し、ステップＳ４２に進む。ステップＳ４２において、デコーダ制御部１５２は、ステップＳ３９の処理で取得した画像情報と、ステップＳ４１の処理で取得した閾値に基づいて、デコード判断処理を行い、これにより、デコーダ１４３によるデコードの許可または不許可を決定する。このデコード判断処理は、図２２のフローチャートを用いて後述する。
【００８０】
ステップＳ４２の処理後は、図１３のステップＳ４３に進み、デコーダ１４３は、ステップＳ４２の処理により、デコーダ制御部１５２からデコードが許可されたか否かを判定する。デコーダ１４３は、デコーダ制御部１５２からデコードが許可された場合、処理をステップＳ４３からＳ４４に進め、ステップＳ３９の処理でバッファ１４２から取得したＲＴＰパケットをデコードし、ステップＳ４５に進む。
【００８１】
ステップＳ４５において、デコーダ１４３は、デコードした画像データをフレームメモリ１４４に供給して記憶させ、ステップＳ４６に進む。ステップＳ４６において、表示制御部１４５は、ステップＳ４５でフレームメモリ１４４に記憶された画像データを取得し、ステップＳ４７に進む。ステップＳ４７において、表示制御部１４５は、ステップＳ４６で取得した画像データに基づいて、表示部１４６に画像を表示させ、処理を終了する。
【００８２】
一方、ステップＳ４３において、デコーダ制御部１５２からデコードが許可されていないと判定された場合、処理がステップＳ４８に進み、表示制御部１４５は、フレームメモリ１４４に前のフレーム（いま表示すべきフレームの、例えば、１フレーム前のフレームなど）の画像データが存在するか否かを判定する。ステップＳ４８において、フレームメモリ１４４に前のフレームの画像データが存在する（前のフレームの画像データを受信したとき、ステップＳ４５の処理が行なわれた）と判定された場合、ステップＳ４９に進み、表示制御部１４５は、前のフレームの画像（フレームメモリ１４４に記憶されている画像）を、表示部１４６に表示させ、処理を終了する。
【００８３】
また、ステップＳ４８において、フレームメモリ１４４に前のフレームの画像データが存在しないと判定された場合、ステップＳ４９をスキップして処理を終了する。従って、この場合、表示部１４６には何も表示されない。
【００８４】
一方、図１２のステップＳ３６において、通信部１４１は、受信制御部１４７からＲＴＰパケットの書き込みが許可されていないと判定した場合、ＲＴＰパケットをバッファに書きこまずに、処理を終了する。
【００８５】
なお、図１１および図１２の処理は、サーバ１２から、ＲＴＰパケットが送信されてこなくなるまで繰り返される。
【００８６】
次に、図１４のフローチャートを参照して、受信制御部１４７における受信処理について説明する。このフローチャートは、上述した図１１のステップＳ３４，Ｓ３５の処理を詳細に説明するものである。
【００８７】
ステップＳ６１において、受信制御部１４７は、通信部１４１が、図１１のステップＳ３３の処理により、フレーム情報を受信したか否かを判定する。ステップＳ６１において、フレーム情報を受信したと判定された場合、ステップＳ６２に進み、受信制御部１４７は、画像情報保持部１４８のフレーム情報保持部１５０に、通信部１４１が受信したフレーム情報を供給して保持させ、処理をステップＳ６１に戻す。
【００８８】
また、ステップＳ６１において、フレーム情報を受信していないと判定された場合、ステップＳ６３に進み、受信制御部１４７は、通信部１４１がＲＴＰパケットを受信したか否かを判定する。ステップＳ６３において、画像データを受信していないと判定された場合、通信部１４１が受信したデータは、必要のないデータであるので、受信制御部１４７は、以降の処理を行なわず、処理をステップＳ６１に戻し、以下、同様の処理を繰り返す。
【００８９】
また、ステップＳ６３において、受信制御部１４７は、通信部１４１が画像データを受信したと判定した場合、ステップＳ６４に進み、通信部１４１が受信したＲＴＰパケットのタイムスタンプを検出する。即ち、ＲＴＰパケットは、図８に示したフォーマットで送信されるので、受信制御部１４７は、ヘッダのｔｉｍｅｓｔａｍｐ１１８に記述されたタイムスタンプの値を検出する。なお、このタイムスタンプは、図３のステップＳ２の処理で初期化され、図４のステップＳ１４で１フレーム毎に更新されるものである。
【００９０】
ここで、図１６は、通信部１４１で受信されるＲＴＰパケットの例を、横軸を時間ｔとして示している。この例の場合、１フレームは９０個のＲＴＰパケットから構成されている。通信部１４１は、タイムスタンプが「１０００」のフレームの画像データのＲＴＰパケット群（シーケンス番号が１乃至９０のＲＴＰパケット）を受信し、その後は、タイムスタンプが「２０００」のフレームの画像データのＲＴＰパケット群（シーケンス番号が９１乃至１８０のＲＴＰパケット）を受信する。そして、通信部１４１は、タイムスタンプが「３０００」のフレームの画像データのＲＴＰパケット群（シーケンス番号が１８１乃至２７０のＲＴＰパケット）を受信し、最後にタイムスタンプが「４０００」のフレームの画像データのＲＴＰパケット群（シーケンス番号が２７１乃至３６０のＲＴＰパケット）を受信する。なお、図１６では、シーケンス番号１３１とシーケンス番号１９１のＲＴＰパケットは、ロス（欠落）している。
【００９１】
図１４に戻り、ステップＳ６４の処理後は、ステップＳ６５に進み、受信制御部１４７は、前回のステップＳ６４の処理で検出したタイムスタンプがあるか否かを判定する。ステップＳ６５において、前回検出したタイムスタンプがあると判定された場合、ステップＳ６６に進み、受信制御部１４７は、今回のステップＳ６４の処理で検出したタイムスタンプが、前回検出したタイムスタンプと一致するか否かを判定する。
【００９２】
ステップＳ６６において、今回検出したタイムスタンプが前回のタイムスタンプと一致しないと判定された場合、ステップＳ６７に進み、受信制御部１４７は、今回検出したタイムスタンプが、前回のタイムスタンプより大きいか否かを判定する。ステップＳ６７において、今回検出したタイムスタンプが、前回のタイムスタンプより大きくない（小さい）と判定された場合、受信された画像データは、既に受信され、処理された画像データなので、処理をステップＳ６１に戻す。
【００９３】
また、ステップＳ６７において、今回検出したタイムスタンプが、前回のタイムスタンプより大きいと判定された場合、またはステップＳ６５で前回のタイムスタンプがないと判定された場合、即ち、通信部１４１が受信したＲＴＰパケットがフレームの最初のＲＴＰパケットである場合、受信制御部１４７は、処理をステップＳ６８に進め、今回検出したタイムスタンプをエントリ情報蓄積部１４９にエントリする。
【００９４】
例えば、通信部１４１において、図１６に示したＲＴＰパケットのシーケンスが受信される場合、シーケンス番号１のＲＴＰパケットが受信されると、このＲＴＰパケットは、フレーム内の最初のパケットであるので、図１７に示すように、タイムスタンプ「１０００」が配置されたエントリ情報がエントリ情報蓄積部１４９にエントリ（登録）される。なお、エントリ情報は、タイムスタンプ１８１、受信データ量１８２、フラグ１８３から構成され、フラグ１８３は、ロスが検出されたか否かを示している（ステップＳ７３の処理で後述する）。また、受信データ量１８２は、受信した１フレーム内のＲＴＰパケットの数を示し、その１フレーム内の新たなＲＴＰパケットを受信したとき、インクリメントされる（後述するステップＳ７０の処理）。
【００９５】
また、図１６において、シーケンス番号９１のＲＴＰパケットが受信されると、そのＲＴＰパケットのタイムスタンプは、前回のタイムスタンプ「１０００」（シーケンス番号９０のタイムスタンプ）より大きいので、新たなタイムスタンプ「２０００」がエントリ情報蓄積部１４９にエントリされ、図１８に示されるようなエントリ情報がエントリ情報蓄積部１４９に保持される。
【００９６】
図１８では、受信されたタイムスタンプ１８１が「１０００」の画像データが、シーケンス番号１乃至９０のＲＴＰパケットから構成され、ロスはないので、受信データ量１８２が「９０」となっており、フラグ１８３は、ロスがないことを示す「０」となっている。そして、シーケンス番号９１のＲＴＰパケットが新たに受信されたので、タイムスタンプ１８１に「２０００」がエントリされている。
【００９７】
図１５に戻り、ステップＳ６８の処理後は、ステップＳ６９に進み、受信制御部１４７は、通信部１４１が受信したＲＴＰパケットのシーケンス番号（図８のフォーマットのｓｅｑｕｅｎｃｅ１１７に記述された番号）に基づいて、ＲＴＰパケットがロスしているか否かを判定する。即ち、ステップＳ６９では、通信部１４１が今回受信したＲＴＰパケットのシーケンス番号が、前回受信したＲＴＰパケットのシーケンス番号の次の番号である場合、ＲＴＰパケットがロスしていないと判定され、次の番号ではない場合、ＲＴＰパケットがロスしている（送信エラーにより、ＲＴＰパケットが欠落している）と判定される。ステップＳ６９において、ＲＴＰパケットがロスしていないと判定された場合は、ステップＳ７０に進み、ロスしていると判定された場合は、ステップＳ７３に進む。
【００９８】
一方、図１４のステップＳ６６において、今回検出したタイムスタンプが、前回のタイムスタンプと一致すると判定された場合、ステップＳ７２に進み、受信制御部１４７は、ＲＴＰパケットがロスしている（シーケンス番号が続き番号ではない）か否か、またはエントリ情報蓄積部１４９のフラグ１８２が「１」である（前回までにロスが検出された）か否かを判定する。
【００９９】
ステップＳ７２の処理において、ロスが検出されず、フラグ１８２が「１」ではない（「０」である）と判定された場合、図１５のステップＳ７０に進み、受信制御部１４７は、エントリ情報蓄積部１４９の受信データ量１８２を１だけインクリメントする。
【０１００】
例えば、シーケンス番号９１のＲＴＰパケットが受信され、これにより、ステップＳ６８の処理で、エントリ情報蓄積部１４９に、図１８に示したエントリ情報が保持された場合、ロスがないので、エントリ情報蓄積部１４９には、図１９に示すエントリ情報が保持される。即ち、タイムスタンプ１８１が「２０００」の受信データ量１８２は、「０」から「１」にインクリメントされる。
【０１０１】
また、図１６のケースで、シーケンス番号１乃至９４までが正常に受信されている場合、エントリ情報蓄積部１４９のタイムスタンプ「２０００」の受信データ量１８２は、「４」となっている。その後、シーケンス番号９５が受信されると、受信データ量１８２は、インクリメントされ、「５」となる。
【０１０２】
図１５に戻り、ステップＳ７０の処理後は、ステップＳ７１に進み、受信制御部１４７は、通信部１４１にバッファ１４２へのＲＴＰパケットの書き込みを許可し、処理を終了する。したがって、通信部１４１は、図１１のステップＳ３７の処理を行なって、受信した画像データ（ＲＴＰパケット）をバッファ１４２に書き込み、以降の処理を行なう。
【０１０３】
一方、図１４のステップＳ７２において、ＲＴＰパケットがロスしていると判定された場合、またはフラグ１８３が「１」であると判定された場合、受信制御部１４７は、処理をステップＳ７３に進め、エントリ情報蓄積部１４９のフラグを「１」に設定し、処理を終了する。このとき、受信制御部１４７は、通信部１４１にバッファ１４２へのＲＴＰパケットの書き込みを許可しない。従って、この場合、通信部１４１は、ＲＴＰパケットをバッファ１４２に書き込まない。
【０１０４】
例えば、図１６に示した画像データのシーケンス番号１３２のＲＴＰパケットが受信された場合、シーケンス番号１３１のＲＴＰパケットがロスしているので、エントリ情報蓄積部１４９に保持されたエントリ情報は、図２０に示すように、フラグ１８３が「０」から「１」に変更される。なお、ＲＴＰパケットはバッファ１４２に書き込まれないので、受信データ量１８２は、変更されない。
【０１０５】
また、図１６に示した画像データのシーケンス番号１３３のＲＴＰパケットが受信された場合も、フラグが「１」である（ロスしているＲＴＰパケットがある）ので、エントリ情報蓄積部のフラグ１８３は「１」のままであり、ＲＴＰパケットはバッファ１４２に書き込まれないので、受信データ量１８２も「４０」のまま変更されない。
【０１０６】
上述の処理は、全ての画像データが受信されるまで、パケット毎に行われる。
【０１０７】
図１６に示されるような画像データが通信部１４１で受信された場合のエントリ情報蓄積部１４９のエントリ情報の例を図２１に示す。
【０１０８】
この例の場合、タイムスタンプが「１０００」のフレームは、９０個のパケットから構成され、ロスがないので、タイムスタンプ１８１が「１０００」の受信データ量１８２は、「９０」となり、フラグ１８３は、「０」となる。また、タイムスタンプが「２０００」のフレームは、シーケンス番号１３１のＲＴＰパケットがロスしているので、シーケンス番号９１乃至１３０のＲＴＰパケットのみが書き込みを許可され（ステップＳ７０，Ｓ７１の処理）、タイムスタンプ１８１が「２０００」の受信データ量は、「４０」となる。また、このとき、ＲＴＰパケットのロスが検出されるので、フラグ１８３は、「１」となる。
【０１０９】
同様に、タイムスタンプ「３０００」のフレームは、１９１のＲＴＰパケットがロスしているので、シーケンス番号１８１乃至１９０のＲＴＰパケットのみが書き込みを許可され、タイムスタンプ１８１が「３０００」の受信データ量は、「１０」となり、ロスが検出されたので、フラグ１８３は、「１」となる。タイムスタンプ「４０００」のフレームは、ロスがないので、全てのＲＴＰパケットがバッファ１４２に書き込まれ、受信データ量１８２は、「９０」となり、フラグ１８３は、「０」となる。
【０１１０】
図１４と図１５の処理により、受信制御部１４７は、ロスするまでの画像データ（ロスのない画像データ）のみをバッファ１４２に書き込む。
【０１１１】
このように、シーケンス番号を検出することにより、ロスを検出することができる。また、ロスの検出の有無を示すフラグを判定することにより、ロスが検出されるまでの画像データのみを確実に保持することができる。
【０１１２】
次に、図２２のフローチャートを参照して、デコーダ制御部１５２におけるデコード判断処理について説明する。このフローチャートは、上述した図１２のステップＳ３９乃至Ｓ４２の処理を詳細に説明するものである。
【０１１３】
ステップＳ９１において、デコーダ制御部１５２は、デコーダ１４３のデコード対象のタイムスタンプを、初期値（いまの場合、「１０００」）に設定し、ステップＳ９２に進む。ステップＳ９２において、デコーダ制御部１５２は、閾値保持部１５１から、図１１のステップＳ３２の処理で保持されたデータ量（ＲＴＰパケット数）または画質の閾値を取得し、ステップＳ９３に進む。
【０１１４】
ステップＳ９３において、デコーダ制御部１５２は、画像情報保持部１４８から画像情報を取得する。即ち、エントリ情報蓄積部１４９からエントリ情報（図２１）を取得し、フレーム情報保持部１５０からフレーム情報（図５）を取得する。
【０１１５】
ステップＳ９３の処理の後は、ステップＳ９４に進み、デコーダ制御部１５２は、デコーダ１４３の不図示のタイマを所定時間（１フレーム分の画像データを取得するのに必要な時間）に設定し、開始させ、ステップＳ９５に進む。ステップＳ９５において、デコーダ制御部１５２は、デコーダ１４３を制御し、バッファ１４２から画像データを取得し、ステップＳ９６に進む。ステップＳ９６において、デコーダ制御部１５２は、タイマが終了したか否かを判定し、タイマが終了するまでステップＳ９５の処理を繰り返す。
【０１１６】
ステップＳ９６の処理において、タイマが終了した（１フレーム分のＲＴＰパケットが取得された）場合、デコーダ制御部１５２は、処理をステップＳ９６からＳ９７に進める。
【０１１７】
ステップＳ９７において、エントリ情報蓄積部１４９から取得された（ステップＳ９３）受信データ量１８２が、閾値保持部１５１から取得された（ステップＳ９２）閾値より大きいか否かを判定する。
【０１１８】
デコーダ制御部１５２は、閾値保持部１５１に保持された閾値が画質である場合、フレーム情報保持部１５０で保持された、フレーム情報のパケット数５２と画質５３の関係からパケット数の閾値を決定し、閾値より大きいか否かを判定する。
【０１１９】
このように、フレーム情報をサーバ１２からクライアント１３に送信することにより、フレーム情報が画像に応じて変更される場合であっても、ユーザが画質の閾値を決定しておくだけで、自動的にパケット数の閾値が決定され、画質の良い画像を表示させることができる。
【０１２０】
図２２に戻り、ステップＳ９７の処理において、受信データ量１８２が閾値より大きいと判定された場合、デコーダ制御部１５２はステップＳ９８に進み、デコーダ１４３にデコードを許可し、ステップＳ９９に進む。したがって、デコーダ１４３は、図１３のステップＳ４４の処理により、取得した画像データをデコードし、表示部１４６に表示することができる。
【０１２１】
一方、ステップＳ９７において、デコーダ制御部１５２は、受信データ量１８２が閾値以下であると判定された場合、ステップＳ９８をスキップし、ステップＳ９９に進む。したがって、デコーダ１４３は、デコードを許可されない。
【０１２２】
ステップＳ９９において、デコーダ制御部１５２は、デコード対象のタイムスタンプを次のフレームのタイムスタンプ（いまの場合、「２０００」）に更新する。
【０１２３】
上述の処理は、全ての画像がデコードされるまで、フレーム毎に繰り返される。
【０１２４】
例えば、図２１に示されるようなエントリ情報がエントリ情報蓄積部１４９に保持されており、閾値保持部１５１に保持された閾値が「３０」であった場合、タイムスタンプが「１０００」と「２０００」のフレームは、受信データ量１８２がそれぞれ「９０」と「４０」であり、閾値「３０」より大きいので、デコードが許可される。しかしながら、タイムスタンプ「３０００」のフレームは、受信データ量１８２が「１０」であり、閾値「３０」以下であるので、デコードは許可されない。そして、タイムスタンプが「４０００」のフレームは、受信データ量１８２が「９０」であり、閾値「３０」より大きいので、デコードが許可される。即ち、デコードされる画像データは、タイムスタンプが「１０００」、「２０００」、「４０００」のデータである。
【０１２５】
したがって、タイムスタンプ「３０００」の画像データを表示部１４６に表示させようとするとき、図１３のステップＳ４９の処理により、タイムスタンプ「２０００」の画像データの画像（前のフレームの画像）が表示される。
【０１２６】
このように、受信データ量に基づいて、デコーダが制御されるので、受信データ量の少ない（画質の悪い）画像のデコードを禁止し、画質の良い画像のみを表示することができる。
【０１２７】
なお、画質の単位は、「ｂｐｐ」を用いたが「ＰＳＮＲ（ｐｅｒ−ｓｑｕａｒｅ−ｎｏｉｓｅ−ｒａｔｉｏ）等、画質を表す単位であればよい。
【０１２８】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、上述した処理は、図２３に示されるようなパーソナルコンピュータ６００により実行される。
【０１２９】
図２３において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６０２に記憶されているプログラム、または、記憶部６０８からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６０３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ６０３にはまた、ＣＰＵ６０１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【０１３０】
ＣＰＵ６０１、ＲＯＭ６０２、およびＲＡＭ６０３は、内部バス６０４を介して相互に接続されている。この内部バス６０４にはまた、入出力インターフェース６０５も接続されている。
【０１３１】
入出力インターフェース６０５には、キーボード、マウスなどよりなる入力部６０６、ＣＲＴ，ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などよりなるディスプレイ、並びにスピーカなどよりなる出力部６０７、ハードディスクなどより構成される記憶部６０８、モデム、ターミナルアダプタなどより構成される通信部６０９が接続されている。通信部６０９は、電話回線やＣＡＴＶを含む各種のネットワークを介しての通信処理を行なう。
【０１３２】
入出力インターフェース６０５にはまた、必要に応じてドライブ６１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア６２１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部６０８にインストールされる。
【０１３３】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１３４】
この記録媒体は、図２３に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア６２１よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ６０２や記憶部６０８が含まれるハードディスクなどで構成される。
【０１３５】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１３６】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表わすものである。
【０１３７】
【発明の効果】
以上の如く、第１の本願発明によれば、送信されたコンテンツを受信するシステムを実現することができる。特に、送信時にコンテンツが欠落した場合においても、良質な画像を表示させることができる。
【０１３８】
第２の本願発明によれば、良質なコンテンツを表示させることができる。特に、送信時にコンテンツが欠落した場合においても、良質な画像を表示させることができる。
【０１３９】
第３の本願発明によれば、良質なコンテンツを表示させることができる。特に、送信時にコンテンツが欠落した場合においても、良質な画像のみを選択し、表示させることができる。
【図面の簡単な説明】
【図１】本発明を適用した情報処理システムの構成例を示すブロック図である。
【図２】図１のサーバの構成例を示すブロック図である。
【図３】図２のサーバにおける画像データ送信処理を説明するフローチャートである。
【図４】図２のサーバにおける画像データ送信処理を説明するフローチャートである。
【図５】フレーム情報保持部に保持されるフレーム情報の例を示す図である。
【図６】図１のサーバとクライアントが互いに送信するメッセージの例を示す図である。
【図７】図２のエンコーダがエンコードしたデータの例を示す図である。
【図８】図２の通信部が送信するＲＴＰパケットのフォーマットの例を示す図である。
【図９】図２の通信部が送信したデータの例を示す図である。
【図１０】図１のクライアントの構成例を示すブロック図である。
【図１１】図１０のクライアントにおける画像表示処理を説明するフローチャートである。
【図１２】図１０のクライアントにおける画像表示処理を説明するフローチャートである。
【図１３】図１０のクライアントにおける画像表示処理を説明するフローチャートである。
【図１４】図１０の受信制御部における画像データ受信処理を説明するフローチャートである。
【図１５】図１０の受信制御部における画像データ受信処理を説明するフローチャートである。
【図１６】図１０の通信部が受信するデータの例を示す図である。
【図１７】図１５のステップＳ６８の処理でエントリ情報蓄積部にエントリされたエントリ情報の例を示す図である。
【図１８】図１５のステップＳ６８の処理でエントリ情報蓄積部にエントリされたエントリ情報の例を示す図である。
【図１９】図１５のステップＳ７０の処理でインクリメントされたエントリ情報蓄積部のエントリ情報の例を示す図である。
【図２０】図１５のステップＳ７３の処理で設定されたエントリ情報蓄積部のエントリ情報の例を示す図である。
【図２１】図１０のエントリ情報蓄積部のエントリ情報の例を示す図である。
【図２２】図１０のデコーダ制御部におけるデコード判断処理を説明するフローチャートである。
【図２３】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
１１  ビデオカメラ，  １２  サーバ，  １３  クライアント，  １４  ネットワーク，  ３１  制御部，  ３２  フレーム情報保持部，  ３３  エンコーダ，  ３４  バッファ，  ３５  ＲＴＰパケット生成部，  ３６  通信部，  １４１通信部，  １４２  バッファ，  １４３  デコーダ，  １４４  フレームメモリ，  １４５  表示制御部，  １４６  表示部，  １４７  受信制御部，  １４８  画像情報保持部，  １４９  エントリ情報蓄積部，  １５０  フレーム情報保持部，  １５１  閾値保持部，  １５２  デコーダ制御部
【図１】
2004193924.tif 000003
【図２】
2004193924.tif 000004
【図３】
2004193924.tif 000005
【図４】
2004193924.tif 000006
【図５】
2004193924.tif 000007
【図６】
2004193924.tif 000008
【図７】
2004193924.tif 000009
【図８】
2004193924.tif 000010
【図９】
2004193924.tif 000011
【図１０】
2004193924.tif 000012
【図１１】
2004193924.tif 000013
【図１２】
2004193924.tif 000014
【図１３】
2004193924.tif 000015
【図１４】
2004193924.tif 000016
【図１５】
2004193924.tif 000017
【図１６】
2004193924.tif 000018
【図１７】
2004193924.tif 000019
【図１８】
2004193924.tif 000020
【図１９】
2004193924.tif 000021
【図２０】
2004193924.tif 000022
【図２１】
2004193924.tif 000023
【図２２】
2004193924.tif 000024
【図２３】
2004193924.tif 000025