しかし、上記従来の技術では以下のような問題が生じる。
上記特許文献1に記載の技術では、通信する装置のメモリサイズや処理能力に応じて音声や映像を連続再生することが可能となるが、あくまで装置のメモリサイズや処理能力に制限があることを前提とした技術であり、リアルタイム性が要求される通信において十分な通信帯域を確保できないような場合に適用することは困難であった。
また、上記特許文献2に記載の技術では、音声及び画像の遅延差を吸収して通信網に送出することが可能となるが、音声と画像との遅延差をなくすための処理を行うにあたり、音声データ及び画像データからなる多重化データとして取扱うことが前提となるという不都合があった。
本発明は、このような従来技術の問題点を解消するべく案出されたものであり、簡易な構成によりネットワーク帯域の状態を的確に判断し、音声等の通信帯域を確保するとともに映像データの遅延を抑制することができるデータ通信装置及びそれを用いたデータ通信システムを提供することを第1の目的とする。また、本発明は、簡易な構成により音声データまたは映像データに同期用の時刻情報を付加し、その同期用の時刻情報に基づき音声と映像との同期ずれを解消することができるデータ通信装置及びそれを用いたデータ通信システムを提供することを第2の目的とする。
このような課題を解決するために、本発明によるデータ通信装置は、請求項1に示すとおり、パケット化された映像データを相手側装置と通信回線を介して相互に送受信するためのデータ通信装置であって、相手側装置に対して映像データを複数の映像パケットとして順次送信するパケット送信部と、そのパケット送信部により送信される映像データを受信する相手側装置から当該映像データの1フレーム毎の受信間隔の情報を取得するフレーム受信間隔取得部と、そのフレーム受信間隔取得部により取得された映像データの1フレーム毎の受信間隔の情報と、相手側装置に送信した映像データのフレームレートの情報とに基づき、相手側装置に送信する映像データのデータ量を制御する制御部とを備えた構成とする。
これによると、相手側装置における映像データの1フレーム毎の受信間隔の情報と、相手側装置に送信した映像データのフレームレートの情報とに基づいてネットワーク帯域の状態を的確に判断し、ネットワーク帯域の状態に応じて相手側装置に送信する映像のデータ量を適正に制御することで、音声データ用の通信帯域を確保できるとともに映像データの遅延を抑制することができる。ここで、映像のデータ量の制御として、例えば、映像データの符号化におけるフレームレートやビットレートを制御することができる。
上記データ通信装置においては、請求項2に示すとおり、相手側装置から送信される映像データを映像パケットとして受信するパケット受信部を更に備え、フレーム受信間隔取得部は、パケット受信部により受信された映像パケットのヘッダの情報に基づき相手側装置における映像データの1フレーム毎の受信間隔の情報を取得する構成とすることができる。
これによると、相手側装置より受信する映像パケットによって、相手側装置から映像データの1フレーム毎の受信間隔の情報を容易に取得することができる。
上記データ通信装置においては、請求項3に示すとおり、制御部は、相手側装置における映像データの1フレーム毎の受信間隔が相手側装置に送信した映像データのフレームレートから算出したフレーム間時間の2倍以上となった場合に、相手側装置に送信する映像データのデータ量を減少させるように制御する構成とすることができる。
これによると、相手側装置における映像データの1フレーム毎の受信間隔が、相手側装置に送信した映像データのフレーム間時間の2倍となったときに、ネットワークの輻輳発生の恐れがあると判断して相手側装置に送信する映像のデータ量を減少させることで、簡易かつ適切に音声データ用の通信帯域を確保できるとともに映像データの遅延を抑制することができる。
上記データ通信装置においては、請求項4に示すとおり、制御部は、相手側装置における映像データの1フレーム毎の受信間隔が相手側装置に送信した映像データのフレームレートから算出したフレーム間時間以下となる状態が一定時間以上継続した場合に、相手側装置に送信する映像データのデータ量を増加させるように制御する構成とすることができる。
これによると、相手側装置における映像データの1フレーム毎の受信間隔が、相手側装置に送信した映像データのフレーム間時間以下となる状態が一定時間以上継続したときに、ネットワーク帯域に余裕があると判断して相手側装置に送信する映像のデータ量を増加させることで、より高画質な映像データの通信が可能となる。
また、本発明によるデータ通信装置は、請求項5に示すとおり、パケット化された映像データを相手側装置と通信回線を介して相互に送受信するためのデータ通信装置であって、相手側装置に対して映像データを複数の映像パケットとして順次送信するパケット送信部と、相手側装置から映像パケットとして送信される映像データを受信するパケット受信部と、そのパケット受信部が受信した映像データについて、1フレーム毎の受信間隔を計測するタイマ部と、そのタイマ部により計測された映像データの1フレーム毎の受信間隔の情報を、パケット送信部により相手側装置に送信される映像パケットのヘッダの情報として設定するフレーム受信間隔設定部とを備えた構成とする。
これによると、相手側装置に映像パケットを送信することで、相手側装置に対して1フレーム毎の受信間隔の情報を容易に取得させ、結果として相手側装置にネットワーク帯域の状態を認識させることが可能となる。
また、本発明によるデータ通信システムは、請求項6に示すとおり、パケット化された映像データを通信回線を介して相互に送受信する第1の装置及び第2の装置を有するデータ通信システムであって、第1の通信装置は、映像データを複数の映像パケットとして第2の通信装置に対して順次送信するパケット送信部と、そのパケット送信部により送信される映像データを受信する第2の通信装から当該映像データの1フレーム毎の受信間隔の情報を取得するフレーム受信間隔取得部と、そのフレーム受信間隔取得部により取得された映像データの1フレーム毎の受信間隔の情報と、第2の通信装置に送信した映像データのフレームレートの情報とに基づき、第2の通信装置に送信する映像データのデータ量を制御する制御部とを備え、第2の通信装置は、第1の通信装置に対して映像データを複数の映像パケットとして順次送信するパケット送信部と、第1の通信装置から映像パケットとして送信される映像データを受信するパケット受信部と、そのパケット受信部が受信した映像データについて、1フレーム毎の受信間隔を計測するタイマ部と、そのタイマ部により計測された映像データの1フレーム毎の受信間隔の情報を、パケット送信部により相手側装置に送信される映像パケットのヘッダの情報として設定するフレーム受信間隔設定部とを備えた構成とする。
本発明によるデータ通信装置は、パケット化された音声データ及び映像データを相手側装置と通信回線を介して相互に送受信するためのデータ通信装置であって、音声データまたは映像データを、それぞれのデータ内で同期をとるためのデータ内同期時刻情報を含む音声パケットまたは映像パケットとして相手側装置に順次送信するパケット送信部と、そのパケット送信部により音声パケット及び映像パケットが相手側装置に対して送信される際に、前記音声パケットまたは映像パケットの一方のパケットにおける前記データ内同期時刻情報を、前記音声データ及び映像データ間で同期をとるためのデータ間同期時刻情報として他方のパケットに付加する同期時刻情報設定部とを備えた構成とする。
これによると、音声データのデータ内同期時刻情報(例えば、データの生成時刻を示す情報)と映像データのデータ内同期時刻情報との間で互いに同期がとられていない構成であっても、音声パケット及び映像パケットを受信した相手側装置はデータ間同期時刻情報により音声データ及び映像データの同期をとることが可能となる。ここで、データ内同期時刻情報及びデータ間同期時刻情報は、パケットのヘッダ情報として設定可能である。
なお、一般に、音声パケット及び映像パケットにデータ内同期時刻情報として付加されるタイムスタンプは、それぞれ独立したタイムスタンプ(例えば、音声8kHz、映像90kHz等、異なる基準クロックに由来する)を使用する場合がある。このような場合には、音声のタイムスタンプと映像のタイムスタンプの間で時刻情報を比較すること(即ち、同期をとること)が困難となるが、本発明によるデータ通信装置により、そのような問題は解消される。
上記データ通信装置においては、前記同期時刻情報設定部が前記データ間同期時刻情報を前記他方のパケットに付加するタイミングを計測するタイマ部を更に備えた構成とすることができる。
これによると、データ間同期時刻情報をパケットのヘッダに適当な時間間隔で記録することができるので、データ間同期時刻情報が必要以上に多くのパケットに付加されて送信データ量を無駄に増大させることもなく、より効率的な通信動作が可能となる。
上記データ通信装置においては、前記同期時刻情報設定部は、前記データ間同期時刻情報が有効か否かを識別可能とする識別子を前記他方のパケットに更に付加する構成とすることができる。
これによると、相手側装置は、パケットに付加された識別子によりデータ間同期時刻情報が有効であることが示された場合にのみ、当該パケットにおけるデータ間同期時刻情報の格納領域を参照すればよいので、より効率的な通信動作が可能となる。
また、本発明によるデータ通信装置は、パケット化された音声データ及び映像データを相手側装置と通信回線を介して相互に送受信するためのデータ通信装置であって、音声データまたは映像データ内で同期をとるためのデータ内同期時刻情報を含む音声パケットまたは映像パケットとして、相手側装置より送信される音声データまたは映像データを受信するパケット受信部と、前記パケット受信部により受信された音声データを復号化するオーディオデコーダと、前記パケット受信部により受信された映像データを復号化するビデオデコーダと、前記パケット受信部が受信した音声パケットまたは映像パケットの一方のパケットに、他方のパケットのデータ内同期時刻情報が更に含まれているときに、当該データ内同期時刻情報を前記音声データ及び映像データ間で同期をとるためのデータ間同期時刻情報として検出する同期時刻情報検出部と、その同期時刻情報検出部が、前記データ間同期時刻情報を検出したときに、前記一方のパケットによるデータを、前記オーディオデコーダまたはビデオデコーダにより復号化させるとともに、前記他方のパケットによるデータについては、前記他方のパケットに含まれるデータ内同期時刻情報が前記データ間同期時刻情報と同一またはより遅い時刻を示している場合にのみ復号化させる制御部とを備えた構成とする。
これによると、音声データのデータ内同期時刻情報と映像データのデータ内同期時刻情報との間で互いに同期がとられていない構成において、ネットワークの輻輳により音声データまたは映像データに遅延が生じおそれのある場合でも、パケットに付加されたデータ間同期時刻情報により遅延したデータを判定してそれらの再生を行わないようにすることで、音声データと映像データとの同期を維持することが可能となる。
また、本発明によるデータ通信システムは、パケット化された音声データ及び映像データを通信回線を介して相互に送受信する第1の装置及び第2の装置を有するデータ通信システムであって、前記第1の通信装置は、音声データまたは映像データを、それぞれのデータ内で同期をとるためのデータ内同期時刻情報を含む音声パケットまたは映像パケットとして前記第2の通信装置に順次送信するパケット送信部と、そのパケット送信部により音声パケット及び映像パケットが前記第2の通信装置に対して送信される際に、前記音声パケットまたは映像パケットの一方のパケットにおける前記データ内同期時刻情報を、前記音声データ及び映像データ間で同期をとるためのデータ間同期時刻情報として他方のパケットに付加する同期時刻情報設定部とを備え、前記第2の通信装置は、音声データまたは映像データ内で同期をとるためのデータ内同期時刻情報を含む音声パケットまたは映像パケットとして、前記第1の通信装置より送信される音声データまたは映像データを受信するパケット受信部と、前記パケット受信部により受信された音声データを復号化するオーディオデコーダと、前記パケット受信部により受信された映像データを復号化するビデオデコーダと、前記同期時刻情報検出部が、前記データ間同期時刻情報を検出したときに、前記一方のパケットによるデータを、前記オーディオデコーダまたはビデオデコーダにより復号化させるとともに、前記他方のパケットによるデータについては、前記他方のパケットに含まれるデータ内同期時刻情報が前記データ間同期時刻情報と同一またはより遅い時刻を示している場合にのみ復号化させる制御部とを備えた構成とする。
このように本発明によれば、ネットワークを介して音声データや映像データの送受信を行うに際し、簡易な構成によりネットワーク帯域の状態を的確に判断し、音声等の通信帯域を確保するとともに映像の遅延を低減することができる。また、簡易な構成により音声データまたは映像データに同期用の時刻情報を付加し、その同期用の時刻情報に基づき音声と映像との同期ずれを解消することができる。
以下、本発明の実施の形態を、図面を参照しながら説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るデータ通信装置の概略構成を示すブロック図である。このデータ通信装置1は、LANやインターネット等のネットワークを介して音声データや映像データを相手側装置に送信する一方、受信した音声データや映像データをリアルタイムで再生することが可能であり、オーディオエンコーダ2、ビデオエンコーダ3、パケット送信部4、パケット受信部5、受信パケットフレーム合成部6、オーディオデコーダ7、ビデオデコーダ8、フレーム受信間隔計測タイマ9、フレーム受信間隔設定部10、フレーム受信間隔取得部11、積分カウンタ12、ネットワークインタフェース13、マイク14、ディスプレイ15、カメラ16、スピーカ17、及び制御部18を備える。ここで、本発明に好適な伝送プロトコルとして、RTP(Real-time Transport Protocol)を用いることができる。以下、本実施の形態においては、音声パケット及び映像パケットは、RTPパケットとして取扱うものとする。
オーディオエンコーダ2は、マイク14からの音声データの圧縮や暗号化等の処理を行い、符号化音声データを生成する。また、ビデオエンコーダ3は、カメラ16からのビデオフレーム(映像データ)の圧縮や暗号化等の処理を行い、フレーム単位で符号化映像データを生成する。
パケット送信部4は、オーディオエンコーダ2及びビデオエンコーダ3によってそれぞれ生成された符号化音声データ及び符号化映像データをパケット化し、生成した音声パケット及び映像パケットをネットワークを介して相手側装置に対して順次送信する。
パケット受信部5は、相手側装置から送られてくる音声パケット及び映像パケットを受信し、それらのパケットから符号化音声データ及び符号化映像データをそれぞれ取り出す。また、受信パケットフレーム合成部6は、パケット受信部5により映像パケットから取り出された複数の符号化映像データをフレーム単位で合成する。
オーディオデコーダ7は、相手側装置より受信した符号化音声データを復号化し、スピーカ15から出力するための音声データを生成する。また、ビデオデコーダ8は、相手側装置より受信した符号化映像データを復号化し、ディスプレイ15に表示するための映像データを生成する。
フレーム受信間隔計測タイマ9は、パケット受信部5により受信される映像パケットについて、1フレーム毎の受信間隔を計測する。本実施の形態では、1フレーム毎の受信間隔として、受信パケットフレーム合成部6によりフレーム単位で符号化映像データが合成される時間間隔を計測する。
フレーム受信間隔設定部10は、相手側装置にネットワーク帯域の状態を認識させるべく、タイマ9により計測された映像データの1フレーム毎の受信間隔の情報を、パケット送信部4により送信される映像パケットのヘッダに付加する。
フレーム受信間隔取得部11は、相手側装置から受信した映像パケットのヘッダに相手側装置における1フレーム毎の受信間隔の情報が含まれている場合に、その1フレーム毎の受信間隔の情報を取得する。
ネットワークインタフェース13は、データ通信装置1をLANやインターネット等のネットワークに接続するためのインタフェースである。
制御部18は、上記各部を統括的に制御する。また、制御部18は、相手側装置との通信において、フレーム受信間隔取得部11により取得された相手側装置における映像データの1フレーム毎の受信間隔の情報と、相手側装置に送信する映像データのフレームレートの情報とに基づき、相手側装置に送信する映像データのデータ量(例えば、フレームレート及びビットレートの少なくとも一方)を制御する。
図2は、図1に示したデータ通信装置を用いたデータ通信システムにおける映像データの流れの一例を示す模式図である。このデータ通信システム20は、図1に示したデータ通信装置1と同一の2つの装置(第1の通信装置1a及び第2の通信装置1b)がネットワーク21を介して相互に通信可能なように接続された構成を有する。説明の便宜上、ここでは主として第1の通信装置1aを送信側の装置とし、第2の通信装置1bを受信側の装置として音声データ及び映像データの流れを示す。また、これらの通信装置1a、1bについては必要な構成要素のみを示してある。
第1の通信装置1aのカメラ16aで撮影された映像は、複数のビデオフレームで構成される映像データとしてビデオエンコーダ3aに送られ、そこで、フレーム単位で符号化され複数のビデオパケットを含む符号化映像データが生成される。その符号化映像データは、パケット送信部4aに送られて複数の映像パケット(RTPパケット)に分割され、ネットワーク21を介して第2の通信装置1bに対して順次送信される。なお、ここでの説明は省略するが、RTPパケットは、さらにUDP(User Datagram Protocol)パケット化やIP(Internet Protocol)パケット化等の処理を行ってからネットワーク21に送出されるのが一般的である。
第1の通信装置1aから送られたそれらの映像パケットは、第2の通信装置1bのパケット受信部5bで受信され、そこで、そのパケット受信部5bにより映像パケットから符号化映像データが取り出され、それらの符号化映像データは受信パケットフレーム合成部6bによりフレーム単位で合成される。さらに、そのフレーム単位の符号化映像データは、ビデオデコーダ8bにより復号化され、そこで生成されたビデオフレームに基づきディスプレイ14bに映像が表示される。
その一方で、第2の通信装置1bにおいて、受信パケットフレーム合成部6bによってフレーム単位で符号化映像データが合成される時間間隔が、フレーム受信間隔計測タイマ9bにより計測され、その測定結果は、フレーム受信間隔情報としてフレーム受信間隔設定部10bに送られる。その受信間隔情報は、フレーム受信間隔設定部10bにより、図3に示すように、第2の通信装置1bから送信される映像パケットの拡張ヘッダに付加される。そこで、フレーム受信間隔情報が付加された映像パケットは、パケット送信部4bによりネットワーク21を介して第1の通信装置1aに対して送信される。
第2の通信装置1bから送られた映像パケットは、第1の通信装置1aのパケット受信部5aで受信され、そこで、その映像パケットの拡張ヘッダに含まれる第2の通信装置1bにおけるフレーム受信間隔情報がフレーム受信間隔取得部11aにより取得される。
第1の通信装置1aの制御部18aは、フレーム受信間隔取得部11aから得られたフレーム受信間隔情報と、ビデオエンコーダ3aから得られたフレームレートの情報とに基づき、第2の通信装置に送信する映像データのデータ量の変更指令をビデオエンコーダ3aに対して送る。
より詳細には、制御部18aは、第2の通信装置1bにおける映像データの1フレーム毎の受信間隔TR(sec)が、ビデオエンコーダ3aから得られたフレームレート(frame/sec)の逆数であるフレーム間時間TF(sec)よりも十分大きな値となった場合に、相手側装置に送信する映像データのフレームレート及びビットレートの少なくとも一方を減少させるようにビデオエンコーダ3aを制御する。ここで、「十分大きな値」としては、映像データの1フレーム毎の受信間隔TRが、フレーム間時間TFの2倍以上となることが好ましく、例えば、TFが33msec(フレームレート30frame/sec)のときに、TRが66msec以上となった場合が挙げられる。その一方で、制御部18aは、第2の通信装置1bにおける映像データの1フレーム毎の受信間隔TR(sec)が、ビデオエンコーダ3aから得られたフレームレートの逆数であるフレーム間時間TF(sec)以下の値となり、その状態が一定時間以上継続した場合に、相手側装置に送信する映像データのフレームレート及びビットレートの少なくとも一方を増大させるようにビデオエンコーダ3aを制御する。
図4は、図1に示したデータ通信装置を用いたデータ通信システムにおける音声データ及び映像データの通信動作を示すフロー図である。ここで、(a)及び(b)は、図1のデータ通信装置1と同一の2つの装置(データ通信装置A、データ通信装置B)が、データ通信システムにおいてネットワークを介して相互に通信する動作を示している。なお、ここでは説明の便宜上、データ通信装置Aが、通信相手であるデータ通信装置Bから映像データの1フレーム毎の受信間隔の情報を取得し、データ通信装置Bに対して送信する映像データのデータ量を変更する動作を主として示す。
まず、データ通信装置Aでは、映像及び音声の送信を行うために、ビデオエンコーダ3及びオーディオエンコーダ2がそれぞれ起動され、映像データ及び音声データの符号化が行われる(ST1、ST2)。続いて、データ通信装置Bに送信する映像データのデータ量を変更する指標として用いられる積分カウンタ12の値が初期化される(ST3)。一方、データ通信装置Bでは、データ通信装置Aから受信する符号化データの復号化を行う準備として、ビデオデコーダ8及びオーディオデコーダ7がそれぞれ起動される(ST31、ST32)。
次に、データ通信装置Aでは、ビデオエンコーダ3及びオーディオエンコーダ2において符号化された映像及び音声の符号化データが、パケット送信部4によりパケット化され、それぞれ映像パケット及び音声パケットとしてデータ通信装置Bに対して順次送信される(ST4、ST5)。
一方、データ通信装置Bでは、音声パケットを受信したか否かが判定され(ST33)、音声パケットを受信すると、オーディオデコーダ7により符号化音声データが復号化される(ST34)。ステップST34において、音声パケットを受信していないと判定された場合には、さらに、映像パケットを受信したか否かが判定され(ST35)、映像パケットを受信すると、受信パケットのフレーム化が実行される(ST36)。一方、映像パケットを受信していない場合には、再びステップST33に戻って音声パケットを受信したか否かが判定される。そこで、データ通信装置Bでは、受信した映像パケットのフレーム化が完了したか否かが判定され(ST37)、フレーム化が完了していない場合には、再びステップST33に戻ってフレーム化が完了するまで映像パケットの受信を繰り返し実行する。
ステップST37において、映像パケットのフレーム化が完了すると、フレームの受信間隔を計測中であるか否かが判定され(ST38)、計測が開始されていない場合には、タイマ9にフレーム受信間隔の計測を開始させる(ST39)。一方、ステップST38において、既にフレームの受信間隔の計測が開始されている場合には、その計測を停止し(ST40)、そこでの計測結果が、次にデータ通信装置Aに対して送信される映像パケットのヘッダの情報としてフレーム受信間隔設定部10により設定される(ST41)。そこで、次のフレームの受信間隔を計測するために、タイマ9が再び計測を開始する(ST42)。次に、フレーム化された符号化映像データが復号化され(ST43)、さらに、通信が終了したか否かが判定され(ST44)、通信が終了していない場合には、再びステップST33に戻って上記と同様の動作を繰り返し実行する。最終的に、ステップ44において、通信が終了していると判断されるとデータ通信装置Bの動作は完了する。
次に、データ通信装置Aでは、データ通信装置Bから受信した映像パケットのヘッダにフレームの受信間隔の情報(1フレーム毎の受信間隔TR(sec))が付加されているか否かが判定され(ST6)、フレームの受信間隔の情報が付加されている場合には、データ通信装置Bに送信される映像データのフレーム間時間TF(sec)よりも十分大きいか否かが判定される(ST7)。そこで、TRがTFよりも十分大きいと判定された場合には、制御部18は、ビデオエンコーダ3において映像の符号化のデータ量を低減するように制御する(ST8)。一方、ステップST7において、TRがTFよりも十分大きいとはいえない場合には、さらに、TRがTF以下であるか否かが判定される(ST9)。そこで、TRがTF以下であると判定された場合には、積分カウンタ12の値がカウントアップされ(ST10)、TRがTF以下でない場合には、積分カウンタ12の値がゼロに戻される(ST11)。次に、積分カウンタ12の値が予め設定した閾値N以上であるか否かが判定され(ST12)、積分カウンタ12の値が閾値N以上となった場合には、ネットワーク帯域に十分な余裕があると判断して、制御部18は、ビデオエンコーダ3において映像の符号化のデータ量を増大させるように制御する(ST13)。一方、積分カウンタ12の値が閾値N未満である場合には、続いて、通信が終了したか否かが判定され(ST14)、通信が終了していない場合には、再びステップST4に戻って上記と同様の動作を繰り返し実行する。同様に、ステップST6において、映像パケットのヘッダにフレームの受信間隔の情報が付加されていない場合にも、通信が終了したか否かが判定され(ST14)、通信が終了していない場合には、再びステップST4に戻って上記と同様の動作を繰り返し実行する。最終的に、ステップ14において、通信が終了していると判断されるとデータ通信装置Aの動作は完了する。
(第2の実施の形態)
図5は、本発明の第2の実施の形態に係るデータ通信装置の概略構成を示すブロック図である。このデータ通信装置101は、図1に示したデータ通信装置1と概ね同様の構成を有し、オーディオエンコーダ2、ビデオエンコーダ3、パケット送信部4、パケット受信部5、受信パケットフレーム合成部6、オーディオデコーダ7、ビデオデコーダ8、同期時刻情報設定部102、同期時刻情報設定用タイマ103、同期時刻情報検出部104、ネットワークインタフェース13、マイク14、ディスプレイ15、カメラ16、スピーカ17、及び制御部18を備える。ここで、図1に示したデータ通信装置1と同様の構成要素については同一の符号が付されており、これらの構成要素については、以下で特に言及しない限り同様の機能を果たすものとする。
同期時刻情報設定部102は、パケット送信部4により音声パケット及び映像パケットが相手側装置に対して送信される際に、音声パケットまたは映像パケットの一方のパケットにおけるデータ内タイムスタンプ(データ内同期時刻情報)を、音声データ及び映像データ間で同期をとるためのデータ間タイムスタンプ(データ間同期時刻情報)として他方のパケットの拡張ヘッダに記録する。さらに、同期時刻情報設定部102は、拡張ヘッダのデータ間タイムスタンプが有効であるか否かを識別するための有効フラグ(識別子)をパケットの拡張ヘッダに記録する。ここで、データ内タイムスタンプとしては、通常のRTPパケットのヘッダに付加されるタイムスタンプを用いることができる。
同期時刻情報設定用タイマ103は、同期時刻情報設定部102が音声パケット及び映像パケットの一方のパケットにおけるデータ内タイムスタンプを、他方のパケットの拡張ヘッダにデータ間タイムスタンプとして記録するタイミングを計測する。
同期時刻情報検出部104は、相手側装置からパケット受信部5が受信した音声パケットまたは映像パケットに付加されたデータ間タイムスタンプを検出する。このとき、同期時刻情報検出部104は、パケットに付された有効フラグによってデータ間タイムスタンプの有効または無効を判断することができる。
制御部18は、同期時刻情報検出部104により音声パケットまたは映像パケットに付された有効なデータ間タイムスタンプが検出されたときに、オーディオデコーダ7またはビデオデコーダ8により音声または映像の一方のパケットにより再構成されたデータの復号化を実行させる一方、他方のパケットにより再構成されたデータの復号化については、他方のパケットのヘッダに記録されたデータ内タイムスタンプがデータ間タイムスタンプと同一またはより遅い時刻を示している場合にのみ実行させる。
一般に、音声データに比べて映像データのデータ量が大きくなるため、ネットワーク等の通信回線での伝送遅延差等により、相手側装置における映像データと音声データの受信タイミングは、音声パケットの受信タイミングに対して映像パケットの受信タイミングの方が遅れる傾向にある。そこで、以下では、本発明によるデータ間タイムスタンプが音声パケットに付されるケースを典型例として説明する。なお、データ間タイムスタンプが映像パケットに付される場合については、音声のケースと同様にして実行可能である。
図6は、図5に示したデータ通信装置を用いたデータ通信システムにおける音声データ及び映像データの流れの一例を示す模式図である。このデータ通信システム120は、図5に示したデータ通信装置1と同一の2つの装置(第3の通信装置101a及び第4の通信装置101b)がネットワーク21を介して相互に通信可能なように接続された構成を有する。説明の便宜上、ここでは第3の通信装置101aを送信側の装置とし、第4の通信装置101bを受信側の装置として音声データ及び映像データの流れを示す。また、これらの通信装置101a、101bについては必要な構成要素のみを示してある。
第3の通信装置101aのマイク14aに入力された音声は、音声データとしてオーディオエンコーダ2aに送られて符号化され、その符号化された音声データがパケット送信部4aに送られる。一方、第3の通信装置101aのカメラ16aで撮影された映像は、映像データとしてビデオエンコーダ3aに送られて符号化され、その符号化された映像データがパケット送信部4aに送られる。ここで、タイマ103aは、同期時刻情報設定部102aに対し、所定の周期(例えば、1秒周期)で映像パケットのデータ内タイムスタンプTSRを音声パケットにデータ間タイムスタンプTSLとして記録するタイミングを示す信号を送る。
これにより、同期時刻情報設定部102aは、パケット送信部4aにより映像パケットが第4の通信装置101bに対して送信される際に、図7に示すように、映像パケットのヘッダに記録されたデータ内タイムスタンプTSRを音声パケットの拡張ヘッダにデータ間タイムスタンプTSLとして記録する。さらに、同期時刻情報設定部102aは、拡張ヘッダのデータ間タイムスタンプTSLが有効であることを示す有効フラグを拡張ヘッダに記録する。
第3の通信装置101aのパケット送信部4aにより送信された音声パケット及び映像パケットは、第4の通信装置101bのパケット受信部5bにより受信される。そこで、同期時刻情報検出部104bは、音声パケットの拡張ヘッダに記録された有効フラグを確認し、データ間タイムスタンプTSLが有効である場合には、拡張ヘッダに記録されたデータ間タイムスタンプTSLを検出して順次保存する。さらに、制御部18bは、保存された最新のデータ間タイムスタンプTSLとパケット受信部5bで受信された映像パケットのデータ内タイムスタンプTSRとを比較し、TSRがTSLと同一または遅い時刻を示している場合にのみ、ビデオエンコーダ8bにパケット受信部5bから送られる符号化映像データを復号化させる。従って、パケット受信部5bからの符号化音声データがオーディオデコーダ7bで復号化されてスピーカ17bから音声が出力される一方、符号化映像データは、その音声の出力に同期する映像のみがビデオエンコーダ8bにおいて復号化され、ディスプレイ15bに表示されることになる。
図8は、図5に示したデータ通信装置においてデータ間タイムスタンプを設定するタイミングを示すタイムチャートである。ここでは、パケット送信部4において音声パケット(音声1〜音声6)及び映像パケット(映像1〜映像4)が順次生成(送信)される様子が模式的に示されており、タイマ103により同期時刻情報検出部104に対して同期時刻情報を設定するタイミングが示されると(図中、破線参照)、同期時刻情報検出部104は、次に生成される映像パケット(映像3)のデータ内タイムスタンプTSL(映像タイムスタンプ情報)を、次に生成される音声パケット(音声4)の拡張ヘッダに記録する。同時に、拡張ヘッダのデータ間タイムスタンプTSLが有効であることを示す有効フラグを拡張ヘッダに記録する。
図9は、図5に示したデータ通信装置を用いたデータ通信システムにおける音声データ及び映像データの通信動作を示すフロー図である。ここで、(a)及び(b)は、図5のデータ通信装置1と同一の2つの装置(データ通信装置C、データ通信装置D)が、データ通信システムにおいてネットワークを介して相互に通信する動作を示している。なお、ここでは説明の便宜上、データ通信装置Cが、音声データ及び映像データ間で同期をとるためのデータ間タイムスタンプを記録した音声パケットをデータ通信装置Dに対して送信し、そのデータ間タイムスタンプに基づきデータ通信装置Dが、映像パケットを選択的に復号化して音声と映像との同期ずれを解消する動作を主として示す。
まず、データ通信装置Cでは、映像及び音声の送信を行うために、ビデオエンコーダ3及びオーディオエンコーダ2がそれぞれ起動され、映像データ及び音声データの符号化が行われる(ST101、ST102)。一方、データ通信装置Dでは、データ通信装置Cから受信する符号化データの復号化を行う準備として、ビデオデコーダ8及びオーディオデコーダ7がそれぞれ起動される(ST131、ST132)。
次に、データ通信装置Cでは、同期時刻情報の設定タイミングを指示するために、予め所定の周期が設定されたタイマ103が起動される(ST103)。そこで、タイマ103がタイムアウトしたか否かが判定され(ST104)、タイムアウトになると、同期時刻情報設定部102は、パケット送信部4により次に送信される映像パケットのヘッダのデータ内タイムスタンプTSRを、次に送信される音声パケットの拡張ヘッダにデータ間タイムスタンプTSLとして記録し、さらに、データ間タイムスタンプTSLが有効であることを示す有効フラグを付加する(ST105)。一方、ステップST104において、タイムアウトになっていない場合には、次に送信される音声パケットの拡張ヘッダには、データ間タイムスタンプTSLは記録されることはなく、データ間タイムスタンプTSLが無効であることを示す有効フラグが付加される。その後、それらの映像パケット及び音声パケットは、パケット送信部4によりデータ通信装置Dに対して順次送信される(ST106、ST107)。上記ステップST104〜ST107は、最終的に通信が終了したと判定されるまで(ST108:Yes)、繰り返し実行される。
一方、データ通信装置Dでは、データ通信装置Cのパケット送信部4により送信された音声パケットを受信したか否かが判定され(ST133)、音声パケットを受信すると、さらに、その音声パケットの拡張ヘッダにおける有効フラグを確認することにより、音声パケット上に有効なデータ間タイムスタンプTSLが存在するか否かが判定される(ST134)。そこで、データ間タイムスタンプが存在する場合には、そのデータ間タイムスタンプ情報が保存される(ST135)。ここで保存されるデータ間タイムスタンプ情報は、有効なデータ間タイムスタンプTSLを含む音声パケットを受信するたびに更新される。ステップST133において受信された音声パケットは、符号化音声データとしてオーディオデコーダ7に送られ復号化される(ST136)。一方、ステップST133において音声パケットを受信していない場合には、映像パケットの受信ステップに進む。
次に、データ通信装置Dでは、データ通信装置Cのパケット送信部4により送信された映像パケットを受信したか否かが判定され(ST137)、映像パケットを受信していない場合には、再びステップST133に戻り、音声パケットの受信動作を行う。一方、映像パケットを受信すると、先に音声パケットから取り出されたデータ間タイムスタンプTSLが保存されているか否かが判定され(ST138)、データ間タイムスタンプTSLが保存されている場合には、受信した映像パケットのデータ内タイムスタンプTSRの値が保存されているデータ間タイムスタンプTSLの値以上であるか否か(TSRがTSLと同一またはより遅い時刻を示しているか否か)が判定される(ST139)。
そこで、TSRがTSL未満である場合には、その映像パケットは復号化されずに、再びステップST133に戻り、音声パケットの受信動作を行う。一方、TSRがTSL以上である場合には、フレーム合成部6により映像パケットのフレーム化が実行され(ST140)、続いて、その映像パケットの受信により映像パケットのフレーム化が完了したか否かが判定される(ST141)。そこで、映像パケットのフレーム化が完了すると、フレーム単位の符号化映像データがビデオデコーダ8により復号化される(ST142)。上記ステップST133〜ST142は、最終的に通信が終了したと判定されるまで(ST143:Yes)、繰り返し実行される。
本発明を実施例に基づいて詳細に説明したが、これらの実施例はあくまでも例示であって本発明は実施例によって限定されるものではない。例えば、本発明によるデータ通信装置は、第1の実施の態様及び第2の実施の態様として示したデータ通信装置双方の構成要素及びそれらの機能を備えたものとして実現することも可能である。