(57)【特許請求の範囲】
【請求項１】
動画信号を含むマルチメディアデータをパケット化して送信側から受信側に送信し、送信側で取り込む時間と受信側で再生する時間との差が所定時間以内である実時間の通信システムであって、
送信側は、入力された動画信号に対しての画質を選択又はコマ落とし数を可変する可変手段と、この可変手段を介して得られた動画信号のパケットを受信側に送信する送信手段と、上記可変手段を制御する制御手段と、上記制御手段への受信側からの制御信号が入力される制御信号入力手段とを備え、
受信側は、上記送信側から送信された動画信号を取り込む取り込み手段と、上記取り込まれた動画信号をメモリに書き込んで読み出すことによりバッファリングするバッファ手段と、このバッファリングされた動画信号を再生する再生手段と、上記バッファ手段の読出アドレスと書き込みアドレスとの差から求められる入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が上限としての第１の時間内であることを検出する第１の検出手段と、上記バッファ手段での入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が下限としての第２の時間内であることを検出する第２の検出手段と、動画信号の取り込み時間と再生する時間との差が上記第１の時間を越えたこと及び／又は上記第２の時間を下回ったことを検出したときに、上記バッファ手段での入力から出力までの時間遅れに基づく上記信号の取り込み時間と再生する時間との差を上記第１の時間と第２の時間との間となすために上記送信側に対して画質又は単位時間内の送信コマ数を制御するための制御信号を送る制御信号送信手段とを備えてなる
ことを特徴とする通信システム。
【請求項２】
上記制御信号送信手段は、動画信号の取り込み時間と再生する時間との差が上記第１の時間を越えたことを検出したときに、上記送信側に対して送信データ量を減らすように画質又は単位時間内の送信コマ数を制御するための制御信号を送り、動画信号の取り込み時間と再生する時間との差が上記第２の時間を下回ったことを検出したときに、上記送信側に対して送信データ量を増やすように画質又は単位時間内の送信コマ数を制御するための制御信号を送ることを特徴とする請求項１記載の通信システム。
【請求項３】
受信側には、上記送信側から送信された動画信号が入力され、この動画信号の重要な部分であることを検出する第４の検出手段を設け、
受信側では、上記第４の検出手段によって上記動画信号の重要な部分を検出したときには、当該重要な部分以外の他の部分を上記バッファ手段での入力から出力までの時間遅れに応じて廃棄することを特徴とする請求項１又は２記載の通信システム。
【請求項４】
送信側より送信された動画信号を含むパケット化されたマルチメディアデータを受信する受信装置において、
上記送信側から送信されたパケット化された動画信号を取り込む取り込み手段と、
上記取り込まれた動画信号をメモリに書き込んで読み出すことによりバッファリングするバッファ手段と、
上記バッファリングされた動画信号を再生する再生手段と、
上記バッファ手段の読出アドレスと書き込みアドレスとの差から求められる入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が上限としての第１の時間内であることを検出する第１の検出手段と、
上記バッファ手段での入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が下限としての第２の時間内であることを検出する第２の検出手段と、
動画信号の取り込み時間と再生する時間との差が上記第１の時間を越えたこと及び／又は上記第２の時間を下回ったことを検出したときに、上記バッファ手段での入力から出力までの時間遅れに基づく上記信号の取り込み時間と再生する時間との差を上記第１の時間と第２の時間との間となすために上記送信側に対して画質又は単位時間内の送信コマ数を制御するための制御信号を送る制御信号送信手段と
を有することを特徴とする受信装置。
【請求項５】
送信側より送信された動画信号を含むパケット化されたマルチメディアデータを受信する受信方法において、
上記送信側から送信されたパケット化された動画信号を取り込む取り込み工程と、
上記取り込まれた動画信号をバッファ手段のメモリに書き込んで読み出すことによりバッファリングする工程と、
上記バッファリングされた動画信号を再生する再生工程と、
上記バッファ手段の読出アドレスと書き込みアドレスとの差から求められる入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が上限としての第１の時間内であることを検出する第１の検出工程と、
上記バッファ手段での入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が下限としての第２の時間内であることを検出する第２の検出工程と、
動画信号の取り込み時間と再生する時間との差が上記第１の時間を越えたこと及び／又は上記第２の時間を下回ったことを検出したときに、上記バッファ手段での入力から出力までの時間遅れに基づく上記信号の取り込み時間と再生する時間との差を上記第１の時間と第２の時間との間となすために上記送信側に対して画質又は単位時間内の送信コマ数を制御するための制御信号を送る制御信号送信工程と
を有することを特徴とする受信方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えば、コンピュータネットワークのような通信の技術分野で用いられる通信システム、受信装置及び方法に関し、特に、オーディオやビデオデータのようなマルチメディアデータに対応できる通信システム、受信装置及び方法に関するものである。
【０００２】
【従来の技術】
近年、パーソナルコンピュータやワークステーションなどの性能は格段に向上し、また、身近に普及しつつある。また、最近は、それらをテレビジョンや電話と同じように日常的なコミュニケーションに利用したいという要求や、これら情報処理システムをより広範囲の用途に活用したいという要求が出てきている。したがって、上記パーソナルコンピュータやワークステーションなどにおいては、これらの要求を実現するために、音声や動画などのマルチメディアデータを分散環境上でインタラクティブに扱えるようにする事が必要となっている。
【０００３】
ここで、従来のマルチメディアの通信で用いられる情報処理通信システムとしては、図１３に示す構成のものが知られている。
【０００４】
この図１３において、入力装置１００や１０１からは例えば音声データ、動画データ等が供給される。この入力装置１００，１０１としては、例えばマイクロホンからのアナログの音声信号やビデオカメラからのアナログの映像信号をディジタル信号に変換するＡ／Ｄコンバータを挙げることができる。この入力装置１００，１０１からのデータは、それぞれ入力データ処理装置１０２，１０３に送られ、それぞれ所定のデータ処理が施される。この入力データ処理装置１０２，１０３でのデータ処理としては、例えばデータ圧縮処理を挙げることができる。上記入力データ処理装置１０２，１０３からの圧縮データは、マルチプレクサ１０４によってマルチプレクス処理され、送信バッファメモリ１０５に蓄えられた後に読み出されて、ネットワーク送信部１０６から例えばイーサーネットなどのネットワークを介して受信側のネットワーク受信部１１１に送られる。
【０００５】
上記ネットワーク受信部１１１で受信されたデータは、受信バッファメモリ１１２に一旦蓄えられた後に読み出され、さらに分離装置１１３によって上記送信側のマルチプレクス処理に対応する分離処理がなされて、出力データ処理装置１１４，１１５に送られる。当該出力データ処理装置１１４，１１５は上記入力データ処理装置１０２，１０３に対応するデータ伸張処理を施し、その後再生装置１１６，１１７に送る。なお、当該再生装置１１６，１１７としては、Ｄ／Ａコンバータを例に挙げることができる。
【０００６】
【発明が解決しようとする課題】
ところで、上述した従来の情報処理通信システムにおいては、以下のような問題点がある。
【０００７】
先ず、上記従来の情報処理通信システムにおいては、例えば受信側の上記出力データ処理装置１１４，１１５などの負荷の変動によって処理が遅れ、受信バッファメモリ１１２において内容が増えすぎるようになる場合がある。このように、受信バッファメモリ１１２の内容が増えすぎるようになると、当該受信バッファメモリ１１２におけるデータの入力から出力までの時間遅れが大きくなる。
【０００８】
また、図１３の例では、受信バッファメモリは単数となっているが、受信バッファメモリが複数ある様な場合において、例えばこの複数の受信バッファメモリの間で内容量の差が大きくなりすぎるようになると、これら複数の受信バッファメモリは本来同期していなければならないものであるにもかかわらず、出力の際のバッファメモリ間の時間のずれ（すなわちメディア間の時間のずれ）が大きくなる。
【０００９】
この従来の欠点についてより具体的に説明する。例えば、動画や音声などのマルチメディアデータは、コンピュータがこれまで処理してきた数値データやテキストデータとは本質的に異なる性質を持っている。すなわち、マルチメディアデータは、
第一に、マルチメディアデータは単なるバイト列ではなく、明示的あるいは暗示的に時間の属性を持っていること、
第二に、本質的にデータ量が莫大かつ冗長で、ハードウェアの処理能力が向上したとしても、効率良く扱うためにはデータ圧縮をする必要があること、
第三に、インタラクティブな処理を必要とされ、スループットだけでなくレスポンスや遅れなどの性能が重視されること、
などの性質を持っている。
【００１０】
このため、これらを分散環境で扱うためには、メディア間同期、通信、処理、リーソス管理などに新たな手法を導入する必要がある。
【００１１】
そこで、本発明は、上述のような実情に鑑みてなされたものであり、入力から出力までの時間遅れが少なく、出力でのメディア間の時間のずれも小さい通信システム、受信装置及び方法を提供することを目的とするものである。
【００１２】
【課題を解決するための手段】
本発明は上述した目的を達成するために提案されたものであり、動画信号を含むマルチメディアデータをパケット化して送信側から受信側に送信し、送信側で取り込む時間と受信側で再生する時間との差が所定時間以内である実時間の通信システムであって、送信側は、入力された動画信号に対しての画質を選択又はコマ落とし数を可変する可変手段と、この可変手段を介して得られた動画信号のパケットを受信側に送信する送信手段と、上記可変手段を制御する制御手段と、上記制御手段への受信側からの制御信号が入力される制御信号入力手段とを備え、受信側は、上記送信側から送信された動画信号を取り込む取り込み手段と、上記取り込まれた動画信号をメモリに書き込んで読み出すことによりバッファリングするバッファ手段と、このバッファリングされた動画信号を再生する再生手段と、上記バッファ手段の読出アドレスと書き込みアドレスとの差から求められる入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が上限としての第１の時間内であることを検出する第１の検出手段と、上記バッファ手段での入力から出力までの時間遅れに基づき動画信号の取り込み時間と再生する時間との差が下限としての第２の時間内であることを検出する第２の検出手段と、動画信号の取り込み時間と再生する時間との差が上記第１の時間を越えたこと及び／又は上記第２の時間を下回ったことを検出したときに、上記バッファ手段での入力から出力までの時間遅れに基づく上記信号の取り込み時間と再生する時間との差を上記第１の時間と第２の時間との間となすために上記送信側に対して画質又は単位時間内の送信コマ数を制御するための制御信号を送る制御信号送信手段とを備えてなることを特徴とするものである。
【００１３】
また、本発明の通信システムの受信側には、受信信号が動画信号を除く信号であることを検出する第３の検出手段を設け、受信側では動画信号を除く信号をも受信すると共に、上記第３の検出手段によって受信信号が動画信号を除く信号であることを検出したときには、当該動画信号を除く信号をそのまま処理するようにしている。
【００１４】
さらに、受信側には動画信号の所定の部分であることを検出する第４の検出手段を設け、当該受信側では、上記第４の検出手段によって上記動画信号の所定の部分を検出したときには当該所定の部分のみをそのまま処理し、他の部分を廃棄するようにする。
【００１５】
【作用】
本発明の通信システムによれば、受信側において、信号の取り込み時間と再生する時間との差が第１の時間内を越えたこと及び／又は第２の時間内を下回ったことを検出すると、信号の取り込み時間と再生する時間との差を第１の時間と第２の時間との間となすために送信側に対して画質又は単位時間内の送信コマ数を制御するための制御信号を送るようにする。これを受けた送信側は、送信する動画信号に対して動画の画質を選択又はコマ落とし数を可変する制御を行う。
【００１６】
すなわち、本発明の通信システムによれば、受信側において信号の取り込み時間と再生する時間との差が上限である第１の時間内を越えると、バッファ手段での入力から出力までの時間遅れが大きくなるので、受信側で信号の取り込み時間と再生する時間との差が第１の時間内を越えるようになったときには、送信側において送る動画の画質を落とすか又はコマ落としを行うことで、受信側のバッファ手段の入力から出力までの時間遅れを適正値に回復させるようにしている。
【００１７】
さらに、本発明の通信システムによれば、受信側において信号の信号の取り込み時間と再生する時間との差が第２の時間内を下回ると、映像が途切れるおそれが出てくるので、受信側で信号の取り込み時間と再生する時間との差が第２の時間内を下回るようになったときには、送信側において送る動画の画質を上げるか又はコマ落とし数を無くす（若しくは少なくする）ことで、受信側で映像が途切れるのを防ぐようにしている。
【００１８】
また、本発明の通信システムによれば、受信側に第３の検出手段を設け、この第３の検出手段によって受信信号が動画信号を除く信号であることを検出したときには、そのまま処理することで、受信信号が例えばテキストデータやプログラムデータ，数値データ，他のバイナリデータなどである場合に、これらデータの内容が変化することを防いでいる。
【００１９】
さらに、本発明の通信システムによれば、受信側にさらに第４の検出手段を設け、この第４の検出手段によって受信信号の動画信号の所定の部分を検出したときには、その所定の部分を除く他の部分を廃棄することで、バッファ手段の入力から出力までの時間遅れを適正値に回復させるようにし、その所定の部分についてはそのまま処理することで、この所定の部分の信号については破棄しないようにする。
【００２０】
【実施例】
以下、図面を参照し、本発明に係る通信システム、受信装置及び方法の実施例について詳述する。
【００２１】
図１には、本発明実施例の通信システムの構成を示す。
本実施例の通信システムは、図１に示すように、動画信号を、送信側９０で取り込む時間と受信側９１で再生する時間との差が所定時間以内となるように、少なくとも受信側において、例えばバッファメモリに対する書き込み時間と読み出し時間との差を所定の時間範囲内に制御するような実時間の通信システムであり、送信側９０は、動画信号を取り込む取り込み手段としてのＡ／Ｄ変換回路６６及びフレームバッファ６８と、フレームバッファ６８において動画の画質を選択又はコマ落とし数を可変する可変手段してのフレーム取り込みクロック発生回路７０と、上記フレーム取り込みクロック発生回路７０を制御する制御手段としての取り込み周期指定回路７１と、上記取り込み周期指定回路７１への受信側９１からの制御信号が入力される制御信号入力手段としてのネットワーク受信部７２とを備えてなるものである。
【００２２】
また、本実施例の通信システムの受信側９１は、送信側９０から送信された動画信号を取り込む取り込み手段としてのネットワーク受信部１１と、動画信号を再生する再生手段としての分離回路１２及び伸張Ｄ／Ａ変換回路１９と、動画信号の取り込み時間と再生する時間との差（後述する測定値Ｖ）が上限（後述するＶｍａｘ）の第１の時間内であることを検出する第１の検出手段、及び動画信号の取り込み時間と再生する時間との差（測定値Ｖ）が下限（後述するＶｍｉｎ）の第２の時間内であることを検出する第２の検出手段としてのバッファメモリ内容量測定回路２０と、分離された映像データ（動画データ）をバッファリングするバッファ手段である映像データバッファメモリ１４と、信号の取り込み時間と再生する時間との差が上記第１の時間内を越えたこと（Ｖ＞Ｖｍａｘ）又は第２の時間内を下回ったこと（Ｖ＜Ｖｍｉｎ）を検出すると、上記信号の取り込み時間と再生する時間との差を上記第１の時間と第２の時間との間となすために、上記送信側９０に対して画質の選択又は単位時間内の送信コマ数を制御するための制御信号を送る制御信号送信手段としての演算判断回路８１及びネットワーク送信部７３とを備えている。
【００２３】
すなわち、本実施例の通信システムは、送信側９０が上記受信側９１からの制御信号を受信すると、フレームバッファ６８において動画の画質選択又はコマ落とし数を可変することで、受信側９１に送る動画データの量を制御するようにしている。
【００２４】
なお、本実施例の通信システムでは、動画データと共に、音声データをも扱うようにしている。
【００２５】
また、本発明実施例の通信システムは、音声及び動画の信号を除く信号をも受信可能であり、したがって、送信側９０には音声及び動画の信号を除く信号を処理するデータ処理回路９４を設けると共に、受信側９１には受信信号が音声及び動画の信号を除く信号であることを検出する第３の検出手段としての検出回路２５をさらに設けている。なお、上記音声及び動画の信号を除く信号としては、例えばテキストデータやプログラムデータや数値データ，他のバイナリデータ等を挙げることができる。受信側９１は、上記検出回路２５において上記受信信号が動画の信号を除く信号であることを検出したときには、当該検出回路２５からの検出出力に応じて分離回路１２でこのテキストデータなどの部分のみを分離させ、当該分離したテキストデータなどの部分についてはデータ処理回路２６によってそのまま処理するようにしている。
【００２６】
さらに、本発明実施例の通信システムの受信側９１の上記検出回路２５は、受信信号から所定の部分として例えば映像や音声の重要な部分を検出する第４の検出手段としても動作し、当該第４の検出手段としての検出回路２５からの検出出力を、上記演算判断回路８１に送る。当該演算判断回路８１においては、音声データバッファメモリ１３及び映像データバッファメモリ１４に対して上記所定の部分のみはそのまま処理し、他の部分を廃棄するような読み出し制御を行う。
【００２７】
ここで、先ず、図１と図９〜図１２に示す本発明実施例の通信システムの具体的に説明に先立ち、本発明の通信システムが適用される情報処理通信システムのマルチメディアデータ対応の情報処理装置の基本機能と、該情報処理装置のモデルといわゆるアプリケーション・プログラミング・インタフェース（ＡＰＩ:application programming interface) と、情報処理通信システムにおける当該マルチメディア対応の情報処理装置の位置付け、当該情報処理の評価について、以下に項目に分けて説明する。
【００２８】
１．情報処理通信システムにおけるマルチメディア対応の情報処理装置の機能
この情報処理装置が実現する目標は、
(1) いろいろな制約はあるが、標準のパーソナルコンピュータやワークステーションにおいて構築し、既存のシステムとの親和性を保つこと、
(2) 音声や動画の通信や特有の処理は、当該情報処理装置にまかせ、クライアントプログラムはそのコントロールだけを行うこと、
(3) メディアデータの属性と、クライアントプログラムの目的に応じて柔軟に対処できること、
(4) プロセッサやネットワークなどのリソースの負荷の変動に対して、対応できること、
(5) モデルが単純なこと、
などである。
【００２９】
これらの要求から、情報処理装置は以下に述べるような機能を持つことが必要となる。
【００３０】
１．１  メディアタイプ
情報処理装置で扱うメディアデータとして、基本的には音声と動画がある。これらには、単位時間あたりのデータ量や生成時刻などの時間的な属性をつけ、これを情報処理装置での処理に利用する。例えば、データ幅８ビット、サンプリング周波数８ｋＨｚの音声データの場合には、単位時間は１／８０００（ｓｅｃ）、単位時間あたりのデータ量は１バイトという属性がつけられる。
【００３１】
１．２  情報処理装置とメディアデバイス
情報処理装置は、複数の入力デバイスからのデータを、時間的な同期を取りながら、出力デバイスに出力する。
【００３２】
入力デバイスとしては、
(1) オーディオインタフェースやビデオ入力インタフェースなどのハードウェアデバイス、
(2) サウンドファイルや動画ファイルやムービーファイルのようなマルチメディアデータファイル、
(3) マルチキャストアドレス、
(4) クライアントプロセス
などをサポートする。
【００３３】
出力デバイスとしては、
(1) オーディオインタフェースやウィンドウなどのデバイス、
(2) マルチメディアファイル、
(3) マルチキャストアドレス、
(4) クライアントプロセス、
などをサポートする。
【００３４】
あるホストには情報処理装置はただ一つだけ存在し、それが直接に取り扱うデバイスは、そのホスト上にあることが必要である。入力デバイスと出力デバイスが別々のホストにあることを必要とする場合には、クライアントがそれぞれのホスト上のそれぞれの情報処理装置にアクセスして情報処理装置同志を接続させる。
【００３５】
１．３  メディアデータの転送と同期
マルチメディアシステムとしてユーザに提供する物の品質の評価規準として以下のものが考えられる。
例えば、
(1) 転送の遅れの許容限度、
(2) メディア間同期の許容限度、
(3) スループット、
(4) データの欠損が許される場合と許されない場合
である。
【００３６】
与えられた転送路で満足できる品質を得るために、データ量、圧縮方式、プロトコルやパケットサイズなどの転送の際の種々のパラメータをコントロールする。情報処理装置は、品質の評価基準に従って、メディア間同期を行う。
【００３７】
１．４  ネットワークプロトコール
上記情報処理装置が利用するマルチメディアデータのネットワークプロトコールは、品質の評価基準を考慮しながらフローなどを動的にコントロールできる必要がある。現状のネットワーク環境のＩＥＥＥ  ８０２．３規格に準拠したいわゆるイーサ・ネット(Ethernet)や、国際標準化機構（ＩＳＯ）のＳＣ１３において提案されている光ファイバを用いた１００Ｍビット／秒トークンパッシング方式のファイバ・ディストリィビューテッド・データ・インタフェース（ＦＤＤＩ:fiber-distributed data interface)などネットワークデバイスは、分散環境上で個々に資源を取り合って共有しているため、あらかじめネットワーク資源を確保するようなサービスが難しい。しかし、現状のネットワーク環境との親和性を考えるとインターネット・プロトコール（ＩＰ:internet protocol) を利用する必要があり、今回はネットワークプロトコールとしていわゆるトランスミッション・コントロール・プロトコール（ＴＣＰ:transmission control protocol) と、コネクションレス形式のプロトコールであるいわゆるユーザ・データグラム・プロトコール（ＵＤＰ:user datdgram protocol)を利用した。
【００３８】
１．５  データの圧縮伸張
情報処理装置は、ソフトウェアまたはハードウェアによる、音声データや動画データの圧縮伸張機能を持つ。音声の圧縮方式としては、国際電信電話通信諮問委員会（ＣＣＩＴＴ）の音声符号化標準の勧告Ｇ．７１１，Ｇ．７２１，Ｇ．７２２，Ｇ．７２８などの規格をサポートする。また、画像の圧縮方式としては、国際電信電話通信諮問委員会（ＣＣＩＴＴ）のカラー静止画像符号化方式の国際標準化作業グループのいわゆるＪＰＥＧ(Joint Picture Expert Group)や、テレビ会議システム用映像符号化勧告Ｈ．２６１、カラー動画像符号化方式の国際標準化作業グループのＭＰＥＧ（Moving Picture Expert Group)などの方式がある。圧縮方式ごとに特徴があるので、用途によって使い分ける必要がある。
【００３９】
１．６  リソースのコントロール
情報処理装置は、複数のクライアントプログラムからの入出力要求を処理する機能をもつ。例えば、音声入力デバイスは一つしかないのに複数のクライアントから音声入力要求があった場合には、以下のような処理方法が考えられる。
(1) すべての要求元にコピーして配る。
(2) 先着の要求を優先し、後着の要求を拒絶する。
(3) クライアントを順次切り替える。この機能は、ウィンドウシステムでのウィンドウマネージャに相当するマルチメディアマネージャなどのプログラムが利用する。
【００４０】
１．７  物理デバイスのコントロール
音声や動画などのマルチメディアデータを扱う場合には、ビデオカメラやビデオデッキのようないわゆるオーディオ・ビジュアル機器（ＡＶ機器）を接続することが必要になる。情報処理装置は、これらのコントロールのために、ＡＶ機器制御用の所定のプロトコールをサポートする。
【００４１】
２. 情報処理装置のモデルとＡＰＩ
２．１  ＡＶ機器が接続される情報処理装置のモデル
情報処理装置は、図２に示すように、クライアントそれぞれに対し１つの実行制御単位(AVobj）を生成する。クライアントがマルチメディアデータの入出力を行いたい場合には、次のような手順で情報処理装置に要求をだす。まず、実行制御単位（AVobj)において仮想的なメディアデバイス(AVdev) をオープンする。当該仮想的なメディアデバイス(AVdev) は物理的なデバイスではないため、排他制御や複数からのオープンなどが実現出来る。
【００４２】
また、図３に示すように、入力用に上記仮想的なメディアデバイス(AVdev) をオープンした実行制御単位(AVobj) と出力用にメディアデバイス(AVdev) をオープンした実行制御単位(AVobj) とを接続することによりマルチメディアデータの転送路が確保される。同一の実行制御単位(AVobj) でオープンされているデバイス間のメディアの同期は保証される。
【００４３】
さらに、図４のようにネットワークでつながれた異なるホスト上の情報処理装置において実行制御単位(AVobj) を生成し、接続することにより分散環境上のワークステーションにおいてマルチメディアデータの転送が行われる。
【００４４】
送信、受信側の実行制御単位(AVobj) がオープンするデバイス(AVdev) としてサウンドデバイスを用いると電話が実現できる。さらに、ビデオデバイスをオープンするとテレビ電話が実現できる。また、入力デバイスとして映画(Movie) ファイルを指定し、出力デバイスにサウンドデバイスとビデオデバイスをオープンすると映画(Movie) プレーヤとなる。このように入出力のデバイスを組み替えることにより各種マルチメディアアプリケーションを容易に作成することが可能となる。
【００４５】
２．２  情報処理装置のＡＰＩ
情報処理装置のライブラリには、例えば次のものが用意されている。
【００４６】
int avs ＿new(char *hostname);
これは、ホスト名(hostname)上で起動されている情報処理装置において実行制御単位(AVobj) を生成する。エラーが発生した場合にはヌル(null)が返される。正常終了した場合には実行制御単位(AVobj) のＩＤ（識別情報）が返される。実行制御単位(AVobj) に対する命令はすべてこの実行制御単位(AVobj) のＩＤを用いて行なわれる。
【００４７】
int avs ＿open(int net, char *devname, int mode);
これは、デバイス(AVdev) をオープンする。引数は実行制御単位(AVobj) のＩＤ、デバイス名、モードである。
【００４８】
int avs ＿connect(int net1, int net2);
これは、２つの実行制御単位(AVobj) をポイント・ツウ・ポイント(point-to-point)接続する。これによって接続した実行制御単位(AVobj) の一方が以下に述べる関数（avs ＿transfer) によって転送状態になると、もう一方の実行制御単位(AVobj) がそのデータを受けとれるようになり自動的に受けとったデータを処理する。ひとつの送信実行制御単位(AVobj) に対して複数の受信実行制御単位(AVobj) を接続することが可能なため、１対多のデータ転送を処理できる。
【００４９】
int avs ＿transfer(int net, int dev, int length);
これは、実行制御単位(AVobj) の送信を制御する。デバイスＩＤとして０を指定すると、実行制御単位(AVobj) がオープンしたすべてのデバイスに対して有効となる。長さ(length)に正の数を指定するとその長さだけデータ転送が行なわれる（単位はｍｓｅｃ）。ここでゼロを指定すると、次の関数(av ＿transfer) が与えられるまで転送します。負の数を指定すると即座に停止する。
【００５０】
int avs ＿destroy(int net);
これは、関数(av ＿new)によって生成した実行制御単位(AVobj) を解放する。
【００５１】
int avs ＿interval(int net, int dev, int interval);
これは、転送インターバルの設定を行なう。単位はｍｓｅｃである。デバイスＩＤとしてゼロを設定すると、その実行制御単位(AVobj) でオープンされたすべてのデバイスに対して適応される。
【００５２】
int avs ＿resize(int net, int dev, int width, int height);
これは、ビデオデバイスに対してサイズ変更を要求する。サイズの単位はピクセルである。デバイスＩＤとしてゼロを設定すると、その実行制御単位(AVobj) でオープンされたすべてのビデオデバイスに対して適応される。
【００５３】
int avs ＿nettype(int net, char *type);
これは、実行制御単位(AVobj) 同志を接続するネットワークのタイプを設定する。現在のところ前記ＴＣＰとＵＤＰがサポートされている。これは関数(avs＿connect)を実行する以前に行なわなければならない。
【００５４】
int avs ＿fd(int net);
これは、クライアントと実行制御単位(AVobj) とのコントロール接続コネクションのファイル記述子を返す。
【００５５】
int avs ＿codec(int net, char *type, int quality);
これは、メディアデータの圧縮方式を指定する。ここでは、画像データに対して前記ＪＰＥＧの圧縮伸張のみがサポートされている。
【００５６】
その他、デバイス(AVdev) に対し直接メディアデータにアクセスするためのライブラリとして次のものがある。
例えば、
int avs ＿read(int net, int dev, int shmid, int size);
int avs ＿write(int net, int dev, int shmid, int size);
int avs ＿ioctl(int net, int dev, int request, int shmi);
である。
【００５７】
３．情報処理装置の実装
システム全体における情報処理装置の位置付けは次の図５のようになる。
３．１  スレッド(Thread)の利用
スレッドを用いると、複数プロセスを用いて実現するよりもコンテキスト・スイッチの時間が短く、各スレッド間でメモリなどの環境を共有でき、プログラミングが容易になる。情報処理装置を実現するにあたってスレッドのモデルへの割り当て方法として次の２通りが考えられる。
【００５８】
例えば、
機能毎にスレッドに割り当てる、
データストリーム毎にスレッドを割り当てる、
がある。
前者では画面入出力・音声入出力・ネットワークなどの機能毎にスレッドを割り当て、パイプラインを形成する方法であり、後者はメディアデータ毎の入力から出力までを行う処理にスレッドに割り当てる方法である。
【００５９】
機能毎にパイプラインを形成してもマルチプロセッサ環境下でないと利点はなく、複数のストリームにおいてストリーム単位のスケジュール・プライオリティ制御を行うには、後者が適しているため、今回の実装ではデータストリーム毎にスレッドを割り当てる方法も用いた。
【００６０】
３．２  ＴＣＰ／ＩＰの送信受信バッファと遅延
前記ＴＣＰ／ＩＰでは高信頼性を実現するため、パケットの順序付け、チェックサム、タイムアウトそして再転送を行い、オーバヘッドが大きくデータの転送遅延が問題となる。
【００６１】
したがって、ここでは送信および受信のためにバッファが用意されている。例えばワークステーションでは、デフォルトで８Ｋ（バイト）となっている。このバッファにデータがたまることによって遅延が生じる。例えば、解像度が１６０×１２０、深さ１６ビットの画面ならば、一画面でおよそ３８Ｋバイトとなり、送信側と受信側両方のバッファを合わせても１フレームもバッファリングされない。この場合にはバッファサイズを大きくすると転送効率は向上する。ところが、画像圧縮をかけて１／１０程の４Ｋバイト程度の大きさにすると両方のバッファ合わせておよそ４フレームが溜まることとなる。１秒間に５フレームのスピードで転送を行うならばこれだけで約１秒間の遅延となる。
【００６２】
しかし、逆にあまりバッファを小さくすると、転送効率が悪くなるため、ここにトレードオフがある。この送信、受信バッファのサイズは関数(setsockopt)で変更可能である。
【００６３】
４．  情報処理装置の評価
情報処理装置をワークステーション上に実装した場合の評価は以下のようになる。
【００６４】
４．１  送受信バッファと転送遅延、効率
実際に送受信バッファのサイズと転送遅延、効率の測定をした例として、同一ネットワークに接続された２台のワークステーションの間で動画像データの転送を行なった。ここで、ワークステーションをイーサネットで接続し、解像度は１６０×１２０、１６ビットの深さの無圧縮とＪＰＥＧ圧縮画像で転送して測定し、１フレームのサイズは無圧縮でおよそ３８Ｋバイト、ＪＰＥＧ圧縮でおよそ５Ｋバイトとしている。
【００６５】
また、転送遅延は関数(timed(8))を用いて時計を合わせ、画像取り込みから転送を行いリモート側で表示を行うまでの時間を測定した。さらに、転送効率としては最大転送フレームレートを測定している。図６には無圧縮、図７にはＪＰＥＧ圧縮の画像の送受信バッファサイズと転送遅延、効率の関係を示す。
【００６６】
図６に示すように、無圧縮で１フレームの大きさが大きい場合には、送受信バッファに１フレームが入り切らないためバッファのサイズに対する転送遅延の差はほとんど変わらない。バッファサイズが８Ｋバイトの時には、転送遅延、効率ともに良い結果が現れる。この図６によれば、デフォルトの送受信バッファサイズが８ＫバイトということからもＴＣＰ／ＩＰでの転送がその場合に一番効率が良くなるようになっていることがわかる。
【００６７】
それに比べ、図７に示すＪＰＥＧ圧縮を行なった画像を転送する場合には、ソフトウェアでＪＰＥＧの圧縮伸張を行うため最大フレームレートは少ない。また、送受信バッファに数フレームが溜まってしまうため、バッファのサイズが大きいほど遅延は増大する。そこでＪＰＥＧなどの圧縮を行い画像データがネットワークのバンド幅より充分小さい場合には、送受信のバッファサイズを転送効率が下がらない程度に小さくすることにより、メディアデータの転送遅延を短縮できる。
【００６８】
４．２  画面転送スピード
同様の環境で、画面サイズとフレームレートおよび転送遅延を測定している。まず、ネットワークとしてイーサネットを用いた場合は、次の表の結果が得られた。表１には１６ビットの深さの無圧縮画像、表２にはＪＰＥＧ圧縮した画像の転送最大フレームレートと遅延の性能を示す。
【００６９】
【表１】
0003715332.tif 000002
【００７０】
【表２】
0003715332.tif 000003
【００７１】
次に、ネットワークとしてサービス総合ディジタル網（ＩＳＤＮ:integrated service digitial network) の１Ｂ（６４Ｋ）を用いた場合の性能は表３のようになる。なお、ＩＳＤＭを用いた場合には、画像データを圧縮しないと最小の画面サイズ（８０×６０）においてもフレームレートが０．２（fps)となり、実用的でないため、深さ１６ビットの無圧縮画像の転送性能の評価は省いた。
【００７２】
【表３】
0003715332.tif 000004
【００７３】
このような情報処理装置を用いることにより、画像と音声の取り込みや圧縮伸張、またネットワークプログラミングを意識することなく容易にマルチメディアアプリケーションが作成可能となった。
【００７４】
４．４  メディア間同期の実現
この情報処理装置では同期をとりメディアデータは、単一のストリームにインターリーブして転送している。また、ネットワークプロトコルとしてＴＣＰ／ＩＰを用いているため、パケットの順序は保証される。さらに、複数のメディアデータの取り込みを同時に行い、インターリーブしてデータ送信時に同期を保証できれば、データ受取側でも複数のメディアデータの同期はとれているものと仮定できる。実際この方法で単一ネットワーク上にて転送した音声と動画のメディアデータの同期は満足のいく結果となった。
【００７５】
４．５  遅延との関係
上述の実装では、ネットワークプロトコルとしてオペレーティングシステムのＵＮＩＸで標準的なＴＣＰ／ＩＰを用いている。ここで、図８に示すように、メディアデータを直接送ることの出来る環境では、送信側と受信側のバッファの制御を情報処理装置が行うことができ、細かな流量制御が行える。
【００７６】
以下、図１に戻って、上述したようなことを具体的に実現する本発明実施例の通信システムについて説明する。
【００７７】
図１において、マイクロホン１やビデオカメラ２からの音声信号や映像信号（動画信号）は、それぞれ対応するＡ／Ｄ変換回路６５，６６に送られて、Ａ／Ｄ変換される。Ａ／Ｄ変換回路６５からの音声データは、音声データ圧縮回路６７に送られ、ここで前述したように音声の圧縮方式として例えばＧ．７１１，Ｇ．７２１，Ｇ．７２２，Ｇ．７２８などのうちのいずれかを用いた圧縮が施される。また、上記Ａ／Ｄ変換回路６６からの映像データは、後述のフレームバッファ６８を介して映像データ圧縮回路６９に送られ、ここで前述したように動画の圧縮方式として例えばＪＰＥＧ，Ｈ．２６１，ＭＰＥＧなどのうちのいずれかを用いた圧縮が施される。
【００７８】
これら圧縮回路６７，６９からの圧縮された音声データと映像データは、マルチプレクサ５によってマルチプレクスされ、その後データバッファメモリ（例えばＦＩＦＯメモリ）６を介してネットワーク送信部７に送られ、当該ネットワーク送信部７から例えばイーサネットなどのネットワーク８を経て、受信側９１のネットワーク受信部１１に送られる。
【００７９】
また、この図１の通信システムにおいては、入力端子８９には上記音声や動画を除く信号として例えばテキストデータやプログラムデータ，数値データ，他のバイナリデータ等が供給される。これらデータは、データ処理回路９４において例えば誤り訂正符号が付加される等の処理が施された後、マルチプレクサ５を介し、さらにネットワーク送信部７から出力されるようにもなっている。
【００８０】
当該受信側９１のネットワーク受信部１１で受信したデータは、分離回路１２によって上記圧縮された音声データと映像データとに分離され、それぞれ対応する音声データバッファメモリ（ＦＩＦＯメモリ）１３と映像データバッファメモリ（ＦＩＦＯメモリ）１４に送られる。
【００８１】
また、バッファメモリ内容量測定回路２０は、映像データバッファメモリ１４の書き込みアドレス及び読み出しアドレスから当該メモリ１４の内容量の測定を行い、その測定結果（後述する測定値Ｖ）を演算判断回路８１に送る。当該演算判断回路８１は、上記測定回路２０からのメモリ１４の内容量測定結果から上記映像データバッファメモリ１４の内容量が上記上限（後述するＶｍａｘ）を越えたことが検出されると、その旨の信号を制御信号としてネットワーク送信部７３を介して送信側９１に送る。
【００８２】
さらに、上記演算判断回路８１では、上記測定回路２０からのメモリ１４の内容量測定結果（後述する測定値Ｖ）から映像データバッファメモリ１４の内容量が上記下限（後述するＶｍｉｎ）を下回ることが検出されると、映像が途切れるおそれがあるので、その旨（下限を下回った旨）の信号を制御信号としてネットワーク送信部７３を介して送信側９０に送る。
【００８３】
ここで、上記バッファメモリ内容量測定回路２０及び演算判断回路８１においては、図９に示すようなフローチャートによって、映像データバッファメモリ１４の内容量を測定し、上記制御信号を生成するようにしている。
【００８４】
この図９において、ステップＳ１１では、映像データのバッファメモリ１４の内容量の測定値Ｖ（単位は再生時間）を求める。なお、上記測定値Ｖは以下の式で求める。
Ｖ＝（バッファ読み出しアドレス）−（バッファ書き込みアドレス）
【００８５】
次のステップＳ２では、当該測定値Ｖと映像データのバッファメモリ１４の内容量の適正範囲の上限値ＶｍａｘとからＶ＞Ｖｍａｘを判定し、ノーと判定した場合にはステップＳ３２に進み、逆にイエスと判定した場合にはステップＳ３５に進む。
【００８６】
上記ステップＳ３５では、送信側９０に対して、Ｖ＞Ｖｍａｘである旨を表す信号を制御信号として送り、その後ステップＳ１１に戻る。
【００８７】
また、上記ステップＳ１２でノーと判断されてステップＳ３２に進むと、このステップＳ３２では、上記測定値Ｖと映像データのバッファメモリ１４の内容量の適正範囲の下限値ＶｍｉｎとからＶ＜Ｖｍｉｎを判定する。当該ステップＳ３２で、ノーと判定した場合にはステップＳ１１に戻り、イエスと判断した場合にはステップＳ３６に進む。
【００８８】
ステップＳ３６では、送信側９０に対してＶ＜Ｖｍｉｎである旨を表す信号を制御信号として送り、その後ステップＳ１１に戻る。
【００８９】
なお、映像データのバッファメモリ１４の内容量の適正範囲の適正値をＶｓｔａとすると、上記上限値Ｖｍａｘと上記適正値Ｖｓｔａと下限値Ｖｍｉｎとの関係はＶｍｉｎ＜Ｖｓｔａ＜Ｖｍａｘとなる。
【００９０】
上記受信側９１からの制御信号は、送信側９０のネットワーク受信部７２にて受信され、取り込み周期指定回路７１に送られる。当該取り込み周期指定回路７１は、上記制御信号に基づいて、フレーム取り込みクロック発生回路７０を制御する。当該フレーム取り込みクロック発生回路７０は、上記取り込み周期指定回路７１からの信号を受けると、フレームバッファ６８においてコマ落とし数を可変させるようなフレーム取り込みクロックを発生する。ここで例えば、コマ落としを行う（若しくはコマ落とし数を増やす）ことで、送信する映像データの量を減らすことができき、コマ落としを行わないか若しくはコマ落とし数を減らすことで送信する映像データの量を増やすことができる。
【００９１】
すなわち、上記送信側９０では、上記受信側９１からの制御信号によって図１０に示すようなフローチャートの処理を行う。
【００９２】
この図１０において、ステップＳ４１では受信側９１からの制御信号を受ける。
【００９３】
次のステップＳ４２では、受信した制御信号がＶ＞Ｖｍａｘを表す信号か否かを判断し、当該Ｖ＞Ｖｍａｘを表す信号であると判断した場合には、ステップＳ４３に進み、否と判断した場合にはステップＳ４４に進む。
【００９４】
ステップＳ４３では、上記取り込み周期指定回路７１が、フレーム取り込みクロック発生回路７０に対して、フレームバッファ６８におけるフレームの取り込みクロックの周期をＰだけ長くさせるように制御する。このステップＳ４３の後はステップＳ４１に戻る。なお、このＰの値は、例えば１％とする。
【００９５】
一方、上記ステップＳ４２においてノーと判断された場合のステップＳ４４では、上記受信した制御信号がＶ＜Ｖｍｉｎを表す信号か否かを判断し、当該Ｖ＜Ｖｍｉｎを表す信号であると判断した場合には、ステップＳ４５に進み、否と判断した場合にはステップＳ４１に戻る。
【００９６】
ステップＳ４４では、上記取り込み周期指定回路７１が、フレーム取り込みクロック発生回路７０に対して、フレームバッファ６８におけるフレームの取り込みクロックの周期をＰだけ短くさせるように制御する。このステップＳ４４の後はステップＳ４１に戻る。なお、このＰの値は、例えば１％とする。
【００９７】
これにより、本実施例の通信システムにおいては、受信側９１の映像データバッファメモリ１４の内容量が多くなって当該映像データバッファメモリ１４における入力から出力までの時間遅れ及び時間のずれが適正な値を越えるようになっても、当該時間送り及び時間のずれを適正な値に回復することができ、また、映像データバッファメモリ１４の内容量が少なくなって映像が途切れるおそれがでてきても、当該映像の途切れを防ぐことができるようになる。
【００９８】
また、受信側９１において、音声データバッファメモリ１３や映像データバッファメモリ１４から読み出された音声データと映像データは、それぞれ対応する伸張処理及びＤ／Ａ変換を施す伸張Ｄ／Ａ変換回路１８，１９に送られる。これら伸張Ｄ／Ａ変換回路１８，１９では、前記Ａ／Ｄ変換圧縮回路３，４での各圧縮処理に対応する伸張処理がそれぞれ施され、その後Ｄ／Ａ変換して出力する。
【００９９】
上記伸張Ｄ／Ａ変換回路１８からの音声信号はスピーカ２７に送られ、上記伸張Ｄ／Ａ変換回路１９からの映像信号はモニタディスプレイ２４に送られる。
【０１００】
また、上記図１の構成では、送信側９０において映像のコマ落とし数を可変することで、上記映像データバッファメモリ１４における入力から出力までの時間遅れ及び時間のずれを適正な値に回復したり、映像の途切れを防ぐようにしているが、例えば、送信側９０から受信側９１に送る画像の画質を選択することでも同様のことを行うことができる。
【０１０１】
すなわち、この画質を選択する場合には、例えば、フレームバッファ６８において取り込む各画素データを間引くことで送信するデータ量を減らしたり、逆に間引きを行わないようにすることで画質を確保する。この場合、受信側９１では、画素データを間引いたときには、例えば補間等の処理を行って画像を復元する。
【０１０２】
また、この図１の通信システムにおいて、受信側９１の上記分離回路１２に供給された受信信号は、当該分離回路１２を介して前記検出回路２５にも送られる。当該検出回路２５では、上記受信信号から音声及び動画の信号を除く信号として例えばテキストデータやプログラムデータ，数値データ，他のバイナリデータのような信号を検出する。
【０１０３】
この検出回路２５において上記音声や動画の信号を除くデータを検出すると、当該検出回路２５からは、上記分離回路１２に対して検出信号が出力される。上記分離回路１２は、上記検出回路２５からの検出信号が供給されると、上記受信信号から当該検出信号に応じたデータのみを分離して、データ処理回路２６に送る。
【０１０４】
当該データ処理回路２６では、供給されたデータに対して所定の処理を施した後、出力端子から出力する。なお、上記所定の処理としては、例えば誤り訂正処理等を挙げることができる。
【０１０５】
このように、本実施例の受信側９１においては、上記検出回路２５を有し、上記分離回路１２が当該検出回路２５からの検出信号に応じて、受信信号から音声や動画を除くデータを分離することによって、これら音声や動画を除くデータに応じた処理を行うことが可能となっている。
【０１０６】
また、本実施例の受信側９１の分離回路１２において分離された音声と映像のデータも、上記検出回路２５に送られる。
【０１０７】
このときの上記検出回路２５では、音声データに対しては例えば人間の聴覚特性を考慮して当該音声データから低域の部分を検出したり、人間の声の部分のように特に重要な音声部分を検出したりする。また、映像データに対しては例えば人間の視覚特性を考慮して当該映像データから特に視覚的に重要な映像部分を検出したり、映像内容で特に重要な部分を検出したりする。この検出回路２５からは、上記演算判断回路８１に対して上記映像データと音声データの各々に対応する検出信号が送られる。
【０１０８】
上記演算判断回路８１では、上記検出回路２５からの音声データに対応する検出信号を受けると、音声データバッファメモリ１３に対して上記検出信号に対応した音声部分が破棄されないような制御を行う。すなわち、上記検出信号に対応する音声の重要な部分については、上記音声データバッファメモリ１３からそのまま後段の音声データの伸張Ｄ／Ａ変換回路１８に送られるような制御を行う。一方、これら重要な部分以外の音声のデータに対しては、バッファメモリ１３の内容量が例えば適正値を越えた場合に破棄することで当該バッファメモリ１３の内容量の適正化を図っている。
【０１０９】
これによっても、本実施例の通信システムの受信側９１では、上記バッファメモリ１３の入力から出力までの時間遅れを適正値に回復させることができ、また、上記音声の重要部分については破棄されないために、後のスピーカ２７から出力される音声は、高品質を保つことができるようになる。
【０１１０】
一方、演算判断回路８１では、上記検出回路２５からの映像データに対応する検出信号を受けると、映像データバッファメモリ１４に対して上記検出信号に対応した映像部分が破棄されないような制御を行う。すなわち、上記検出信号に対応する映像の重要な部分については、上記映像データバッファメモリ１４からそのまま後段の映像データの伸張Ｄ／Ａ変換回路１９に送られるような制御を行う。また、これら重要な部分以外の映像のデータに対しては、バッファメモリ１４の内容量が適正値を越えた場合に破棄することで当該バッファメモリ１４の内容量の適正化を図っている。
【０１１１】
これによっても、本実施例の通信システムの受信側９１では、上記バッファメモリ１４の入力から出力までの時間遅れを適正値に回復させることができ、また、上記映像の重要部分については破棄されないために、後のモニタディスプレイ２４に表示される映像は、高品質を保つことができるようになる。
【０１１２】
さらに、本発明の通信システムにおいて、送信側９０から受信側９１に送る画像の画質を選択する具体例としては、例えば図１１に示すように、映像データ圧縮回路６９における圧縮率を可変する構成とすることもできる。なお、この図１１において、前述した図１と同様の構成要素には同一の指示符号を付してその詳細な説明については省略する。
【０１１３】
すなわちこの図１１において、送信部９０では、上記受信部９１からの制御信号を、圧縮のパラメータを指定する圧縮パラメータ指定回路８５で受ける。この圧縮パラメータ指定回路８５は、上記制御信号に応じて映像データ圧縮回路６９における圧縮率を可変する。例えば、圧縮率を高くすることで受信側９１に送る映像データの量を減らすことができ、また、圧縮率を低くすることで受信側９１に送る映像データの量を増やすことができる。言い換えれば、圧縮率を高くすることは画質を落とすことであり、圧縮率を低くすることは画質を高めることである。なお、この図１１のように映像データの圧縮率を可変した場合には、その圧縮パラメータを受信側９１に送る必要があり、受信側９１の伸張Ｄ／Ａ変換回路１９ではこの圧縮パラメータに基づいて圧縮された映像データの伸張を行うことになる。
【０１１４】
また、図１１の構成では、音声データを圧縮する音声データ圧縮回路６７に対しても同様に可変した圧縮パラメータを送るようにすれば、受信側９１の音声データバッファメモリ１３の内容量の制御が可能となる。
【０１１５】
次に、本発明の他の実施例の構成を図１２に示す。
【０１１６】
この図１２において、送信側ホストコンピュータには、モニタディスプレイ４０とマイクロホン４１とビデオカメラ４２が接続され、またネットワーク４３を介して受信側ホストコンピュータと接続される。
【０１１７】
当該送信側ホストコンピュータにおいて、ＣＰＵ３０は、メインメモリ３１に保持されているプログラムデータを用いて各部を制御すると共に、動画の画質選択又はコマ落とし数を可変する可変手段及び上記可変手段を制御する制御手段としての機能を備えている。すなわち、このＣＰＵ３０は、前記図１の取り込み周期指定回路７１及びフレーム取り込みクロック発生回路７０やデータ処理回路９４と同様の機能をも有する。
【０１１８】
ビデオカメラ４２からの映像信号は、Ａ／Ｄ変換圧縮処理部３８によってＡ／Ｄ変換されると共に前述したような映像データ用の圧縮処理が施され、バッファメモリ３４に一時蓄えられる。さらに、このバッファメモリ３４は、前記動画信号を取り込む取り込み手段としても動作するものである。なお、図１の実施例では、前記取り込み手段としてのフレームバッファ６８には圧縮前の映像データが取り込まれる例を挙げているが、この図１２に示すバッファメモリ３４の例では圧縮後の映像データを取り込むようにしている。
【０１１９】
一方、マイクロホン４１からの音声信号は、Ａ／Ｄ変換圧縮処理部３７によってＡ／Ｄ変換されると共に前述したような音声データ用の圧縮処理が施され、バッファメモリ３３に一時蓄えられる。
【０１２０】
また、フレームメモリ３２には、例えばＣＰＵ３０によって形成された映像フレームデータや、ビデオカメラ４２によって撮影された映像に基づく映像フレームデータが記憶される。当該フレームメモリ３２からの映像フレームデータは、ディスプレイインタフェース３６を介してモニタディスプレイ４０に送られて表示される。
【０１２１】
さらに、上記バッファメモリ３３，３４に蓄えられた圧縮された音声データと映像データは、例えばＣＰＵ３０によってマルチプレクスされた後にバッファメモリ３５に一旦蓄えられてから読み出される。当該バッファメモリ３５から読み出されたデータは、ネットワークインタフェース３９に接続されたネットワーク４３を介して、受信側ホストコンピュータに送られる。このネットワークインタフェース３９が、前記図１のネットワーク送信部７及びネットワーク受信部７２と同様の機能を有している。
【０１２２】
次に、受信側ホストコンピュータには、モニタディスプレイ６１とスピーカ６２が接続され、さらにネットワーク４３を介して送信側ホストコンピュータと接続される。
【０１２３】
当該受信側ホストコンピュータにおいて、ＣＰＵ５２は、メインメモリ５３に保持されているプログラムデータを用いて各部を制御したり、また、各種の演算を行う。また、このＣＰＵ５２は、前記図１のバッファメモリ内容量の測定回路２０及び演算判断回路８１や検出回路２５，データ処理回路２６としての機能をも有している。
【０１２４】
上記ネットワーク４３を介して上記送信側ホストコンピュータから送られてきたデータは、ネットワークインタフェース５０を介してバッファメモリ５１に一旦蓄えられた後、読み出される。なお、このネットワークインタフェース５０は、前記図１のネットワーク受信部１１及びネットワーク送信部７３と同様の機能を有するものである。
【０１２５】
当該バッファメモリ５１から読み出された受信データからは、例えばＣＰＵ５２によって上記圧縮された音声データと映像データとが分離され、それぞれ対応するバッファメモリ５４，５５に送られる。
【０１２６】
バッファメモリ５４に送られた圧縮された映像データは、当該バッファメモリ５４から読み出されてデータ伸張処理部５６に送られて上記送信側ホストコンピュータでの圧縮に対応する伸張処理がなされる。当該伸張された映像データは、フレームメモリに蓄えられてフレームとなされ、ディスプレイインタフェース５８を介してモニタディスプレイ６１に送られて表示される。
【０１２７】
また、バッファメモリ５５に送られた圧縮された音声データは、当該メモリ５５から読み出されてデータ伸張処理部５９に送られて上記送信側ホストコンピュータでの圧縮に対応する伸張処理がなされる。当該伸張された音声データは、Ｄ／Ａ変換処理部６０によってアナログの音声信号に変換された後、スピーカ６２に送られる。
【０１２８】
上述したように、本発明の各実施例によれば、受信側は、送信側から送られてくる動画信号の取り込み時間と再生する時間との差である測定値Ｖが、上限（Ｖｍａｘ）内を越えたこと又は下限（Ｖｍｉｖ）内を下回ったことを検出すると、これら上限と下限との間にあるように画質又は単位時間内の送信コマ数を制御するための制御信号を送信側に送るようにし、受信側ではこの制御信号を受けて画質又は送信コマ数制御を行うことで、入力から出力までの時間遅れ及び時間のずれを適正な値に回復し、また映像の途切れを防ぐことを可能としている。
【０１２９】
また、本実施例の通信システムにおいては、受信側９１にデータ検出回路２５を設け、このデータ検出回路２５によって受信信号が音声又は動画のうちいずれかの信号を除くデータであることを検出したときには、データ処理回路２６においてそのまま処理するようにしたことで、受信信号が例えばテキストデータなどである場合に、データの内容が変化することを防いでいる。
【０１３０】
さらに、本実施例の通信システムにおいては、検出回路２５によって受信信号から音声，映像において特に重要な部分を検出したときには、演算判断回路８１においてこれら重要な部分を除く他の部分を音声データバッファメモリ１３及び映像データバッファメモリ１４に対して廃棄させることで、これらバッファメモリ１３及び１４の入力から出力までの時間遅れを適正値に回復させるようにし、上記特に重要な部分についてはそのまま処理することで、この部分の信号については破棄されることを防いでいる。
【０１３１】
【発明の効果】
上述のように本発明の通信システムにおいては、受信側において、動画信号の取り込み時間と再生する時間との差が第１の時間内を越えたこと及び／又は第２の時間内を下回ったことを検出すると、第１の時間と第２の時間との間に画質又は単位時間内の送信コマ数を制御するための制御信号を送信側に送るようにし、これを受けた送信側は、送信する動画信号から動画の画質選択又はコマ落とし数を可変する制御を行うようにしているため、受信側におけるバッファ手段の入力から出力までの時間遅れを適正値に回復させることができ、また、映像の途切れを防ぐことが可能となる。
【０１３２】
また、本発明の通信システムにおいては、受信側に第３の検出手段を設け、この第３の検出手段によって受信信号が動画信号を除く信号であることを検出したときにはそのまま処理することで、受信信号が例えばテキストデータやプログラムデータなどである場合に、データの内容が変化することを防止できる。
【０１３３】
さらに、本発明の通信システムにおいては、受信側にさらに第４の検出手段を設け、この第４の検出手段によって受信信号の動画信号の所定の部分を検出したときには、その所定の部分を除く他の部分を廃棄することで、バッファ手段の入力から出力までの時間遅れを適正値に回復させるようにし、その所定の部分についてはそのまま処理することで、この所定の部分の信号については破棄されることを防止できる。
【図面の簡単な説明】
【図１】本発明実施例の通信システムの送信側及び受信側の概略構成を示すブロック回路図である。
【図２】本発明通信システムが適用される情報処理通信システムの情報処理装置のモデルを示す図である。
【図３】マルチメディアデータの転送について説明するための図である。
【図４】ネットワークでつながれたホスト間のマルチメディアデータの転送について説明するための図である。
【図５】システム全体における情報処理装置の位置付けについて説明するための図である。
【図６】無圧縮の場合の送受信バッファサイズと転送遅延、効率の関係を示す特性図である。
【図７】ＪＰＥＧ圧縮の画像の送受信バッファサイズと転送遅延、効率の関係を示す特性図である。
【図８】情報処理装置と遅延との関係を説明するための図である。
【図９】本実施例通信システムの受信側における映像データバッファメモリの内容量測定とこの測定値が上限を越えた旨又は下限を下回った旨を示す制御信号の出力の処理を説明するためのフローチャートである。
【図１０】本実施例通信システムの送信側における画質選択又はコマ落とし制御の処理を説明するためのフローチャートである。
【図１１】本実施例の通信システムの送信側における画質選択を行う具体的構成を示すブロック回路図である。
【図１２】本発明の他の実施例の送信側ホストコンピュータと受信側ホストコンピュータの概略構成を示すブロック回路図である。
【図１３】従来の送信側と受信側からなる通信システムの概略構成を示すブロック回路図である。
【符号の説明】
１，４１・・・マイクロホン
２，４２・・・ビデオカメラ
５・・・マルチプレクサ
６・・・データバッファメモリ
７，７３・・・ネットワーク送信部
８・・・ネットワーク
９，７２・・・ネットワーク受信部
１２・・・分離回路
１３・・・音声データバッファメモリ
１４・・・映像データバッファメモリ
２０・・・バッファメモリ内容量測定回路
１８・・・音声データの伸張Ｄ／Ａ変換回路
１９・・・ビデオデータの伸張Ｄ／Ａ変換回路
２４，４０，６１・・・モニタディスプレイ
２５・・・検出回路
２６・・・受信側のデータ処理回路
２７，６２・・・スピーカ
３０・・・ＣＰＵ
３１，５３・・・メインメモリ
３２，５７・・・フレームメモリ
３３，３４，３５，５１，５４，５５・・・バッファメモリ
３６，５８・・・ディスプレイインタフェース
３７・・・音声データＡ／Ｄ変換圧縮部
３８・・・動画データＡ／Ｄ変換圧縮部
５６・・・音声データ用データ伸張部
５９・・・映像データ用データ伸張部
６０・・・音声データＤ／Ａ変換部
６５，６６・・・Ａ／Ｄ変換回路
６７・・・音声データ圧縮回路
６８・・・フレームバッファ
６９・・・映像データ圧縮回路
７０・・・フレーム取り込みクロック発生回路
７１・・・取り込み周期指定回路
８１・・・演算判断回路
９０・・・送信側
９１・・・受信側
９４・・・送信側のデータ処理回路
【図１】
0003715332.tif 000005
【図２】
0003715332.tif 000006
【図３】
0003715332.tif 000007
【図４】
0003715332.tif 000008
【図５】
0003715332.tif 000009
【図６】
0003715332.tif 000010
【図７】
0003715332.tif 000011
【図８】
0003715332.tif 000012
【図９】
0003715332.tif 000013
【図１０】
0003715332.tif 000014
【図１１】
0003715332.tif 000015
【図１２】
0003715332.tif 000016
【図１３】
0003715332.tif 000017