(57)【要約】【課題】  ネットワーク伝送特有のクロックのズレに対処して、リアルタイム伝送による長時間の連続再生を可能にする。【解決手段】  本発明のリアルタイムデータ通信装置は、送信側端末からネットワークを介して送信されたリアルタイムデータを受信するデータ受信部２２と、受信されたリアルタイムデータを再生するサウンド再生部４１と、リアルタイムデータを受信するためにデータ受信部２２及びサウンド再生部４１の状態を制御する中央演算処理部２４とを有する受信側端末２１と、リアルタイムデータを伝送するのに送信側端末の記録部と受信側端末２１のサウンド再生部４１の同期をとるためにサウンドカード部４４のサウンドカードバッファ部４５のデータ量を監視する増加減少判断部４９及びメモリー部４３のデータを制御する間引き・補間部５０を備えた。【選択図】        図４
2005184383.tif 000002
【特許請求の範囲】
【請求項１】
送信側からネットワークを介して送信されるリアルタイムデータを受信側で受信して再生するリアルタイムデータ通信システムにおいて、
入力されたリアルタイムデータを記録する記録部と、上記リアルタイムデータを送信する送信部と、上記リアルタイムデータを送信するために上記記録部及び送信部の状態を制御する制御部とを有する送信部と、
上記送信部からネットワークを介して送信されたリアルタイムデータを受信する受信部と、受信されたリアルタイムデータを再生する再生部と、上記リアルタイムデータを受信するために上記受信部及び再生部の状態を制御する制御部とを有する受信部と、
上記リアルタイムデータを伝送するのに上記送信部の上記記録部と上記受信部の上記再生部の同期をとるための制御をする同期手段と
を備えたことを特徴とするリアルタイムデータ通信システム。
【請求項２】
請求項１記載のリアルタイムデータ通信システムにおいて、
上記同期手段は、上記受信部の上記再生部に設けたことを特徴とするリアルタイムデータ通信システム。
【請求項３】
請求項１記載のリアルタイムデータ通信システムにおいて、
上記同期手段は、上記送信部の上記制御部と上記受信部の上記制御部の同期をとる位相同期手段と共に用いることを特徴とするリアルタイムデータ通信システム。
【請求項４】
請求項２記載のリアルタイムデータ通信システムにおいて、
上記同期手段は、上記受信部の上記再生部の出力データ量の増加又は減少を判断する判断部を設けたことを特徴とするリアルタイムデータ通信システム。
【請求項５】
請求項４記載のリアルタイムデータ通信システムにおいて、
上記同期手段は、上記判断部による出力データ量の増加又は減少に基づいて上記出力データ量が一定となるようにデータ量の間引き又は補間を行う間引き・補間部を設けたことを特徴とするリアルタイムデータ通信システム。
【請求項６】
送信側からネットワークを介して送信されるリアルタイムデータを受信して再生する受信側のリアルタイムデータ通信装置において、
上記送信側からネットワークを介して送信されたリアルタイムデータを受信する受信部と、受信されたリアルタイムデータを再生する再生部と、上記リアルタイムデータを受信するために上記受信部及び再生部の状態を制御する制御部とを有する受信部と、
上記リアルタイムデータを伝送するのに上記送信側の入力されたリアルタイムデータを記録する記録部と上記受信部の上記再生部の同期をとるための制御をする同期手段と
を備えたことを特徴とするリアルタイムデータ通信装置。
【請求項７】
請求項６記載のリアルタイムデータ通信装置において、
上記同期手段は、上記送信側の制御を行う制御部と上記受信部の上記制御部の同期をとる位相同期手段と共に用いることを特徴とするリアルタイムデータ通信装置。
【請求項８】
請求項６記載のリアルタイムデータ通信装置において、
上記同期手段は、上記受信部の上記再生部の出力データ量の増加又は減少を判断する判断部を設けたことを特徴とするリアルタイムデータ通信装置。
【請求項９】
請求項８記載のリアルタイムデータ通信装置において、
上記同期手段は、上記判断部による出力データ量の増加又は減少に基づいて上記出力データ量が一定となるようにデータ量の間引き又は補間を行う間引き・補間部を設けたことを特徴とするリアルタイムデータ通信装置。
【請求項１０】
送信側からネットワークを介して送信されるリアルタイムデータを受信側で受信して再生するリアルタイムデータ通信システムにおけるリアルタイムデータ通信方法において、
送信部では、
入力されたリアルタイムデータを記録部により記録するステップと、上記リアルタイムデータを送信部により送信するステップと、上記リアルタイムデータを送信するために上記記録部及び送信部の状態を制御部により制御するステップとを有し、
受信部では、
上記送信部からネットワークを介して送信されたリアルタイムデータを受信部により受信するステップと、受信されたリアルタイムデータを再生部により再生するステップと、上記リアルタイムデータを受信するために上記受信部及び再生部の状態を制御部により制御するステップとを有すると共に、
上記リアルタイムデータを伝送するのに上記送信部の上記記録部と上記受信部の上記再生部の同期を同期手段によりとるための制御をするステップと
を備えたことを特徴とするリアルタイムデータ通信方法。
【請求項１１】
請求項１０記載のリアルタイムデータ通信方法において、
上記同期をとるステップは、上記受信部の上記再生するステップ中に設けたことを特徴とするリアルタイムデータ通信方法。
【請求項１２】
請求項１０記載のリアルタイムデータ通信方法において、
上記同期をとるための制御をするステップは、上記送信部の上記制御部と上記受信部の上記制御部の同期をとる位相同期をとるステップと共に用いることを特徴とするリアルタイムデータ通信方法。
【請求項１３】
請求項１１記載のリアルタイムデータ通信方法において、
上記同期をとるための制御をするステップ中に、上記受信部の上記再生部の出力データ量の増加又は減少を判断部により判断するステップを設けたことを特徴とするリアルタイムデータ通信方法。
【請求項１４】
請求項１３記載のリアルタイムデータ方法において、
上記同期をとるための制御をするステップ中に、上記判断するステップによる出力データ量の増加又は減少に基づいて上記出力データ量が一定となるように間引き・補間部によりデータ量の間引き又は補間を行うステップを設けたことを特徴とするリアルタイムデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、リアルタイムデータの通信を行うリアルタイムデータ通信システムに関するものである。
【背景技術】
【０００２】
従来、サーバから端末にサウンドデータを伝送して、端末側でサウンドデータを再生するシステムでは、ケーブルを介した近距離の接続ではサーバから端末にサウンドデータと共にクロックを送ってサーバと端末の同期を取るようにしていた。また、ネットワークを介した任意の距離の接続ではサーバから端末にサウンドデータのパケットにクロックを入れて送ってサーバと端末の同期を取るようにしていた。
【０００３】
このような同期方法は、位相同期と呼ばれ、サーバと端末の演算処理部間で動作クロックを合わせるように行われていた。また、サウンドデータとビデオデータとの間で同期をとるＡＶ（Audio／Video）同期と呼ばれる同期方法があった。
【０００４】
また、特許文献１には、コスト高とすることなく、データのアンダーフローまたはオーバーフローの発生を防止することができるようにするデータ処理装置が開示されている。このデータ処理装置では、そのために、クロックずれ測定部は、メモリーに格納されたデータ量の増減から、クロックのずれを測定する。そして、制御判定部は、クロックずれ測定部の判定結果、およびメモリーに格納されているデータに基づいて、補正処理を行う位置、およびどのような補正をするかを判定する。さらに、データ量制御部は、制御判定部の判定結果、およびメモリーに格納されているデータに基づいて、補正処理を行う位置におけるデータを削除するか、または生成することで、補正処理を実行し、メモリーのデータを補正データで書き換えるようにしている。
【特許文献１】特開2003-256191号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した従来の同期方法では、ネットワークを介した伝送では、ディジタル音声データは一般に一定のサンプリング周波数でサンプリングされ、そのクロック成分をディジタル音声データと共に送信することで回避していたが、このような同期方法では、ネットワークを介した伝送特有の各端末間で生じる微小なクロックのズレに対処することが出来ず、長時間の連続再生に耐えることができないため、リアルタイム伝送ができなくなるという不都合があった。
【０００６】
また、端末装置内部の中央演算処理部とサウンド再生部間で、クロックがずれている場合、それらの間で同期信号をやり取りすることで、回避することが考えられるが、リアルタイム伝送システムに用いる汎用端末では、そのような処理が不可能であるという不都合があった。
【０００７】
特許文献1では、装置内部のデータのアンダーフローまたはオーバーフローの発生を防止することができるが、ネットワークを介して伝送されるデータを処理する際の各端末間で生じる微小なクロックのズレに対処することが出来ないという不都合があった。
【０００８】
そこで、本発明は、かかる点に鑑みてなされたものであり、ネットワーク伝送特有のクロックのズレに対処して、リアルタイム伝送による長時間の連続再生を可能にするリアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決し、本発明の目的を達成するため、本発明のリアルタイムデータ通信システムは、入力されたリアルタイムデータを記録する記録部と、リアルタイムデータを送信する送信部と、リアルタイムデータを送信するために記録部及び送信部の状態を制御する制御部とを有する送信部と、送信部からネットワークを介して送信されたリアルタイムデータを受信する受信部と、受信されたリアルタイムデータを再生する再生部と、リアルタイムデータを受信するために受信部及び再生部の状態を制御する制御部とを有する受信部と、リアルタイムデータを伝送するのに送信部の記録部と受信部の再生部の同期をとるための制御をする同期手段とを備えたものである。
【００１０】
これにより、リアルタイムデータ通信システムにおいて、同期手段はリアルタイムデータを伝送するのに送信部の記録部と受信部の再生部の同期をとるための制御をするので、送信部の記録部と受信部の再生部の間でクロックのズレが生じることが無くなる。
【００１１】
また、本発明のリアルタイムデータ通信装置は、送信側からネットワークを介して送信されたリアルタイムデータを受信する受信部と、受信されたリアルタイムデータを再生する再生部と、リアルタイムデータを受信するために受信部及び再生部の状態を制御する制御部とを有する受信部と、リアルタイムデータを伝送するのに送信側の入力されたリアルタイムデータを記録する記録部と受信部の再生部の同期をとるための制御をする同期手段とを備えている。
【００１２】
これにより、リアルタイムデータ通信装置において、同期手段はリアルタイムデータを伝送するのに送信側の記録部と受信部の再生部の同期をとるための制御をするので、送信側の記録部と受信部の再生部の間でクロックのズレが生じることが無くなる。
【００１３】
また、本発明のリアルタイムデータ通信方法は、送信部では、入力されたリアルタイムデータを記録部により記録するステップと、リアルタイムデータを送信部により送信するステップと、リアルタイムデータを送信するために記録部及び送信部の状態を制御部により制御するステップとを有し、受信部では、送信部からネットワークを介して送信されたリアルタイムデータを受信部により受信するステップと、受信されたリアルタイムデータを再生部により再生するステップと、リアルタイムデータを受信するために受信部及び再生部の状態を制御部により制御するステップとを有すると共に、リアルタイムデータを伝送するのに送信部の記録部と受信部の再生部の同期を同期手段によりとるための制御をするステップとを備えたものである。
【００１４】
これにより、リアルタイムデータ通信方法において、同期を取るステップではリアルタイムデータを伝送するのに送信部の記録部と受信部の再生部の同期をとるための制御をするので、送信部の記録部と受信部の再生部の間でクロックのズレが生じることが無くなる。
【発明の効果】
【００１５】
本発明のリアルタイムデータ通信システムによれば、送信部の記録部と受信部の再生部の間でクロックのズレが生じることを無くすことができ、これにより、リアルタイム伝送の質を向上させることができ、長時間の連続再生を可能にするリアルタイムデータ通信システムを得ることができる。
【００１６】
本発明のリアルタイムデータ通信装置によれば、送信側の記録部と受信部の再生部の間でクロックのズレが生じることを無くすことができ、これにより、リアルタイム伝送による再生動作の質を向上させることができ、長時間の連続再生を可能にするリアルタイムデータ通信装置を得ることができる。
【００１７】
また、本発明のリアルタイムデータ通信方法によれば、送信部の記録部と受信部の再生部の間でクロックのズレが生じることを無くすことができ、これにより、リアルタイム伝送の質を向上させることができ、長時間の連続再生を可能にするリアルタイムデータ通信方法を得ることができる。
【発明を実施するための最良の形態】
【００１８】
以下に、本発明の実施の形態について、適宜、図面を参照しながら説明する。
図１は、本発明の実施の形態に適用されるリアルタイムデータ通信システムの構成を示す図である。
本発明では、サウンドデータのようなリアルタイムデータを伝送する機器構成を想定する。説明をわかりやすくするために、１及び３で示す双方の端末A,Bを送信側、受信側にしているが、どちらも同時に送受信できるものでも構わない。
【００１９】
図１において、ネットワーク２を介して１及び３で示す端末A,Bでサウンドデータを送受信する場合、端末間でのクロックの差によって生じる位相のずれを修正するために、同期を合わせるための同期モジュールが必要になる。一般的に、端末同士の演算処理部間で動作クロックを合わせる位相同期を行うことにより、ネットワーク２上の異なる端末間で、音声や映像などのデータをリアルタイムにやり取りすることが可能となる。
【００２０】
もし、同期モジュールなしで、音声データや画像データのやり取りを行うと、各端末間でのクロック差によって、送信側の動作に対して受信側の動作の遅延の増大が生じることが予想される。このため、受信側でリアルタイムの再生ができないことになる。または、リアルタイム伝送で要求される一定の再生タイミングにてデータが到着していないと受信側の演算処理部で誤認されることにより、リアルタイム再生の処理をすることができなくなる可能性がある。そこで、本発明では、受信側でリアルタイム再生を行うことができるように、以下に述べるような再生部での同期処理をするようにしている。
【００２１】
図２は、リアルタイムデータ通信システムにおける端末内部の構成を示す図である。
図２において、入力部１２から入力されたサウンドデータは、送信側、つまりキャプチャ側の端末内部１１のサウンド記録部１３に供給される。サウンド記録部１３は入力されたサウンドデータをエンコードなどの信号処理可能に一旦メモリに記憶して必要に応じて読み出しをする。中央演算処理部１５はサウンド記録部１３のサウンドデータに対するエンコードなどの信号処理及び書き込み又は読み出し動作を制御する。
【００２２】
サウンド記録部１３で読み出されてエンコードなどの信号処理を施されたサウンドデータはデータ送信部１４に供給される。データ送信部１４は、サウンドデータに対して送信のためのシャフリングやパケット生成などの信号処理を施して、送信のための信号処理を施されたサウンドデータを図１に示したネットワーク２を介して再生側の端末２１に伝送する。中央演算処理部１５はサウンド記録部１３のサウンドデータに対する送信のための信号処理動作を制御する。
【００２３】
また、受信側、つまり再生側の端末内部２１のデータ受信部２２はキャプチャ側の端末内部１１のデータ送信部１４からネットワーク２を介して伝送されたサウンドデータを受信する。データ受信部２２は、受信したサウンドデータに対して受信のためのパケット取出しやデシャフリングなどの信号処理を施して、受信のための信号処理を施されたサウンドデータをサウンド再生部２３に供給する。中央演算処理部２４はデータ受信部２２の受信のための動作を制御する。
【００２４】
サウンド再生部２３は、サウンドデータをデコードして再生し、音響出力信号を生成して出力部２５に供給する。中央演算処理部２４はサウンド再生部２３のデコード及び音響出力の動作を制御する。出力部２５は音響出力信号に基づいて音響出力を行う。
【００２５】
ここで、キャプチャ側の端末内部１１の中央演算処理部１５と再生側の端末内部２１の中央演算処理部２４は同期モジュールを用いて動作クロックを合わせて２６で示すように位相同期をとっている。しかし、キャプチャ側の端末内部１１のサウンド記録部１３と再生側の端末内部２１のサウンド再生部２３では２７で示すようにネットワーク伝送特有の同期ずれが生じることがある。
【００２６】
上述した同期モジュールにより送信側端末１１及び受信側端末２１同士の中央演算処理部１５、２４間で動作クロックを合わせて２６で示すように位相同期をとったとしても、サウンドデータを再生するサウンド再生部２３のクロックと中央演算処理部２４との間でクロックのズレがある場合、送受信間で微小な同期の誤差が生じることになる。
【００２７】
もし、サウンド再生部２３のクロックが中央演算処理部２４のクロックよりも早い場合は、受信端末２１でバッファーメモリに対してサウンドデータの蓄積データ量が少なくなりすぎるバッファーアンダーランが起こる可能性が高くなり、結果として音響出力が途切れることになる。逆に、サウンド再生部２３のクロックが遅い場合は、受信端末２１でバッファーメモリに対してサウンドデータの蓄積データ量が多くなりすぎるバッファーオーバーフローが起こり、結果として音響出力の遅延が生じる原因になる。同様にして、送信端末１１側でもクロックずれにより上述した受信側端末２１と同様の現象が起こる可能性がある。
【００２８】
一般的にネットワーク伝送に用いる位相同期を行う同期モジュールは、上述したように中央演算処理部１５、２４のクロックを送受信を行う各端末間で同期させるものであり、マスター側となる送信側の中央演算処理１５部とサウンド記録部１３との間で生じるクロックの差、スレーブ側となる受信側のサウンド再生部２３との間で生じるクロックの差に対しては、上述したネットワーク伝送に用いる位相同期を行う同期モジュールだけでは解決できない。
【００２９】
そこで、図３の３３で示すように、ネットワーク２を介して送受信を行う各端末１，３間でのサウンド記録再生部３１とサウンド記録再生部３２との間で同期を取る必要があるが、実際にサウンド記録再生部３１とサウンド記録再生部３２との間で直接同期を取る制御を行うことができないため、この方法は現実的な解決方法ではない。従って、上述した位相同期と端末内部の同期を行うことが直接的な解決方法であるといえる。
【００３０】
しかしながら、マスターとスレーブ間のクロック同期が行えないような端末の場合、必ず前述したような問題が発生する。そこで、以下に説明するような本発明の手法を用いることにより、ネットワークを介したサウンドデータのスムーズな記録及び再生を行うことが可能となる。
【００３１】
図４は、サウンド再生時の受信側端末の構成例を示す図である。
図４においては、サウンド再生部４１の後段のサウンドカード部４４が独自にサウンドカードバッファ部４５を備えていると構成を示しているが、これに限らず、サウンドカード部４４が独自のサウンドカードバッファ部４５を備えていない場合は、サウンド再生部４１がサウンドカード部４４のサウンドカードバッファ部４５の役割も担うことになる。
【００３２】
各々の機能を説明すると、サウンドカード部４４のサウンドカードバッファ部４５では、バッファに溜められているデータを随時ディジタル／アナログ変換を行うサウンドカード４６へと渡すことにより、出力部２５から音響出力を途切れることなく再生して出力する仕組みになっている。ユーザ空間（点線の左側）の中央演算処理部２４からはサウンドカード部４４のサウンドカードバッファ部４５へのサウンドデータの書き込み又は読み出し及びサウンドカード４６のディジタル／アナログ変換を行うタイミングを制御するのみでサウンドカード部４４のサウンドカードバッファ部４５におけるサウンドデータの流れを直接制御することは出来ない。
【００３３】
そこで、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量を監視しながらメモリー部４３を介してサウンドカードバッファ部４５へサウンドデータを転送していくようにメモリー制御する。
【００３４】
ここで、サウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０は、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ量の増加又は減少に基づいて４７で示すようにサウンドカードバッファ部４５へ転送されるサウンドデータ量が一定となるようにデータ量の間引き又は補間を行うようにメモリー制御する。
【００３５】
次にデータの流れを説明する。太線の矢印がデジタルサウンドデータの流れを示している。細線は中央演算処理部２４から各部への制御データの流れを示している。データ受信部２２にて、図１に示したネットワーク２を介して図２に示した送信側、つまりキャプチャ側の端末内部１１から送られてきたデータをデパケタイズ、つまりパケットからヘッダー部などを除いてデータ部分を取り出す。デパケタイズされたデジタルサウンドデータはサウンド再生部４１に渡される。
【００３６】
図５は、リアルタイム性のためのメモリー制御の例を示す図である。
図５において、予め、上述したようにネットワーク伝送に用いる同期モジュールを用いて、送信側５１のＣＰＵ（Central Processing Unit）５４と受信側５６のＣＰＵ５８のクロックとは位相同期を行うにより同期しているものとする。また、図５に示すＣＰＵ５４、５８は図２に示した中央演算処理部１５、２４に対応し、図５に示すバッファ５５、５７は図２に示したデータ送信部１４、データ受信部２２に対応し、図５に示すサウンドカードバッファ５３は図２に示したサウンド記録部１３に対応する。なお、以下に示すずれＤ１〜Ｄｎの値はデジタルサウンドデータの入力からの遅延時間の一例を示すものであり、これに限られるものではない。
【００３７】
ここで、送信側５１のサウンドカードバッファ５３とＣＰＵ５４との間で生じる遅延時間がずれＤ１で示すように３２ｍｓであるとし、また、受信側５６のＣＰＵ５８とバッファ５７との間で生じる遅延時間がずれＤ２で示すように３０ｍｓであるとしたとき、バッファ５７とサウンドカードバッファ５９との間で６５に示す上述したメモリー制御を行うことにより、ＣＰＵ５８とサウンドカードバッファ５９との間で生じる遅延時間がずれＤ３で示すように３８ｍｓ以内となるようにする。
【００３８】
その際、メモリー制御により、ずれＤ３の上限閾値が３８ｍｓとなるようにデータ量の間引きを行うようにし、又はずれＤ３の下限閾値が１５ｍｓとなるようにデータ量の補間を行うようにして、バッファ５７からサウンドカードバッファ５９にサウンドデータを供給する。
【００３９】
その結果、受信側５６の入力側のバッファ５７から出力側のスピーカ６０までの間で生じる遅延時間をＤ４（＝Ｄ２＋Ｄ３）で示すように６８ｍｓ以内にすることができる。これにより、このネットワーク伝送システムにおいて送信側５１の入力端子５２から受信側５６のスピーカ６０までの間で生じる遅延時間をＤｎ（＝Ｄ１＋Ｄ２＋Ｄ３）で示すように１００ｍｓ以内にすることができる。このＤｎ（＝Ｄ１＋Ｄ２＋Ｄ３）で示す１００ｍｓは例えばネットワーク伝送におけるリアルタイム伝送を保証する一定の時間とされる値となる。
【００４０】
なお、上述において、送信側５１のＣＰＵ５４バッファ５５との間で生じる遅延時間によるずれを問題としていないのは、最終的に、受信側５６の入力側のバッファ５７から出力側のスピーカ６０までの間で生じる遅延時間をＤ４（＝Ｄ２＋Ｄ３）で示すように６８ｍｓ以内にすることができれば問題ないからである。
【００４１】
図６は、サウンド再生部４１のサウンド制御部の制御を示すフローチャートである。
図６において、ステップＳ１で、データの受信をする。具体的には、図４に示したサウンド再生部４１のサウンド制御部及びデコード部４２は、データ受信部２２から供給されるサウンドデータの受信をする。
【００４２】
ステップＳ２で、デコードは必要であるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２は、受信したデータが圧縮符号化などのエンコード処理が施されていか否かを判断する。
【００４３】
ステップＳ２で受信したデータが圧縮符号化などのエンコード処理が施されていた場合は、ステップＳ３へ移行して、圧縮符号化などのエンコード処理が施されているデータのデコードを行う。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２は、伸張復号化などのデコード処理を行う。
【００４４】
その後、ステップＳ４で、サウンドカードバッファ部のデータ量lengthを調べる。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量を監視する。
【００４５】
ステップＳ５で、増加減少傾向であるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量を監視した結果が、増加又は減少傾向であるか否かを判断する。
【００４６】
ステップＳ５で監視結果が増加又は減少傾向である場合は、ステップＳ６へ移行して、
メモリー部の制御を行う。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、メモリー部４３の間引き・補間部５０に対してサウンドカードバッファ部４５へ転送されるサウンドデータ量が一定となるようにデータ量の間引き又は補間を行うようにメモリー制御を行う。ステップＳ５で監視結果が増加又は減少傾向でない場合は、直接ステップＳ７へ移行する。
【００４７】
ステップＳ７で、サウンドカードバッファ部へデータ転送を行う。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２は、メモリー部４３を介してデジタルサウンドデータをサウンドカード部４４のサウンドカードバッファ部４５に渡す。
【００４８】
図７は、サウンド制御部の増加・減少判断部の動作を示すフローチャートである。図７は、上述した図６のステップＳ５の増加・減少判断の具体的な処理を示すものである。
ステップＳ１１で、サウンドカードバッファ部のデータ量lengthを保持する。具体的には、図４に示したサウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量を保持する。
【００４９】
ステップＳ１２で、過去のデータ量の平均Aveとデータ量lengthから平均を求める。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量の過去の平均Aveと現在のデータ量lengthから平均を求める。平均を求める理由は、オペレーションシステムOSはタイムシェアリングで動作するため、監視タイミングが一定にならないためである。
【００５０】
ステップＳ１３で、タイムアウトであるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、監視期間がリアルタイム伝送を保証する一定の時間、例えば１００ｍｓを越えたか否かを判断する。
【００５１】
ステップＳ１３でタイムアウトでないときは、ステップＳ１４へ移行して、タイムアウトでない状態を認識する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、監視期間がリアルタイム伝送を保証する一定の時間、例えば図５に示したように１００ｍｓを越えていないことを認識する。
【００５２】
ステップＳ１３でタイムアウトであるときは、ステップＳ１５へ移行して、過去の平均Ave＞一つ前の時間区間の平均Ave_oldであるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、過去のデータ量の平均Aveが出力単位の一つ前の時間区間のデータ量の平均Ave_oldであるか否かを判断する。
【００５３】
ステップＳ１５で過去の平均Ave＞一つ前の時間区間の平均Ave_oldであるときは、ステップＳ１６へ移行して、過去の平均Ave＞上限閾値であるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、過去のデータ量の平均Aveが図５に示したずれＤ３の上限閾値３８ｍｓより大きいか否かを判断する。
【００５４】
ステップＳ１６で過去の平均Ave＞上限閾値であるときは、ステップＳ１７へ移行して、増加と判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量が増加したと判断する。
【００５５】
ステップＳ１５で過去の平均Ave＞一つ前の時間区間の平均Ave_oldでないときは、ステップＳ１８へ移行して、過去の平均Ave＜下限閾値であるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、過去のデータ量の平均Aveが図５に示したずれＤ３の下限閾値１５ｍｓより小さいか否かを判断する。
【００５６】
ステップＳ１８で過去の平均Ave＜下限閾値であるときは、ステップＳ１９へ移行して、減少と判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量が減少したと判断する。
【００５７】
ステップＳ１３でタイムアウトでないとき、ステップＳ１６で過去の平均Ave＞上限閾値でないとき、ステップＳ１８で過去の平均Ave＜下限閾値でないときは、直接ステップＳ１４へ移行する。
【００５８】
図７ではタイマーまたは再生したサウンドデータのサンプル数に相当するものを基準にある閾値を超えた場合にかぎり、増加減少傾向を調べるようにしている。このようにすることにより、全体の計算量の削減につながると共に、頻繁なサンプリング周波数の変更を抑制することが可能となる。具体的には定期的な時間間隔で、平均値Aveをもとめ、一つ前の時間区間の平均Ave_oldと比較し、かつ上限閾値と下限閾値とを比較することで、増加、減少を判断する。
【００５９】
実際に、複数のプロセスを使用するようなプログラムでは、オペレーションシステムOSのスケジューリングによっては制御部に回ってくるタイミングがずれる可能性がある。また、サウンドデータの遅着や早着により、バッファ量の変動は激しいものとなる場合がある。それによってサウンドカードバッファ部に溜められているデータ量にぶれが生じるため、上記のような増加減少を判断する機構が必要となる。さらに、ここで設定する上限下限閾値は、リアルタイム性をどこまで保持させるかに依存している。
【００６０】
つまり、上限閾値が大きいほど、遅延が増大することになるため、低遅延化を図るためにはある程度小さくする必要がある。また、下限閾値はサウンドカードバッファ部のバッファーアンダーランが起こらないようにするための閾値であるため、この値をあまりにも小さくするとサウンドカードバッファ部のバッファーアンダーランが頻発する恐れがあるためある程度の値に設定する必要がある。
【００６１】
図８は、サウンド制御部のメモリー部の間引き及び補間の制御を示すフローチャートである。
図８において、ステップＳ２１で、増加であるか否か判断する。具体的には、図４に示したサウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量が増加しているか否かを判断する。
【００６２】
ステップＳ２１で増加であるときは、ステップＳ２２へ移行し、メモリー部にためられたデータを間引く。具体的には、サウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０は、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ量の増加に基づいて４７で示すようにサウンドカードバッファ部４５へ転送されるサウンドデータ量が一定となるようにデータ量の間引きを行うようにメモリー制御する。
【００６３】
ステップＳ２１で増加でないときは、ステップＳ２３へ移行し、メモリー部にためられたデータを補間する。具体的には、サウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０は、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ量の減少に基づいて４７で示すようにサウンドカードバッファ部４５へ転送されるサウンドデータ量が一定となるようにデータ量の補間を行うようにメモリー制御する。
【００６４】
図８で示すサウンド制御部の制御方法では、メモリー部４３のサウンドデータ量を間引きや水増しによって補間する。バッファ量が増加傾向にある場合はメモリー部４３のサウンドデータ量を削減する方向へ、減少傾向にある場合は増加させる方向でサウンドカードバッファ部４５に供給されるサウンドデータ量を調節する。そのときの調整量は毎時間に扱うデジタルサウンドデータの量をDeltaとするとDelta/Divとする。ここでDivは整数であり、システムに依存するものとする。
【００６５】
図９は、サウンド制御部のメモリー部の具体的な制御を示すフローチャートである。
図９において、ステップＳ３１で、増加であるか否か判断する。具体的には、図４に示したサウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量が増加しているか否かを判断する。
【００６６】
ステップＳ３１で増加であるときは、ステップＳ３２へ移行し、急激な変化があるか否かを判断する。具体的には、図４に示したサウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量の増加が急激な変化をしているか否かを判断する。
【００６７】
ステップＳ３２で急激な変化がないときは、ステップＳ３３へ移行して、データを削除する。具体的には、サウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０は、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ量の増加の急激な変化のないことに基づいて４７で示すようにサウンドカードバッファ部４５へ転送されるサウンドデータ量が一定となるようにメモリー部４３のデータを削除する。
【００６８】
ステップＳ３１で増加でないときは、ステップＳ３４へ移行し、急激な変化があるか否かを判断する。具体的には、図４に示したサウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量の減少が急激な変化をしているか否かを判断する。
【００６９】
ステップＳ３４で急激な変化がないときは、ステップＳ３５へ移行して、前のデータを繰り返す。具体的には、サウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０は、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ量の減少の急激な変化のないことに基づいて４７で示すようにサウンドカードバッファ部４５へ転送されるサウンドデータ量が一定となるようにメモリー部４３の前の時間区間のデータを繰り返してコピーする。
ステップＳ３２で急激な変化があるとき、ステップＳ３４で急激な変化があるときは、直ちに終了する。
【００７０】
上述したように、メモリー部４３のデータを間引く場合は、そのデータの前の時間区間のデータ、多少の遅延を許すなら後ろの時間区間のデータも参照して急激な音量レベル等の変化がある場合はそのメモリー制御の処理を行わず、急激な変化が見られない場合はデータの削除をする。逆に、水増しする場合も同様に、急激な変化が起きていない場合に限り、以前の時間区間のデータを再挿入することで、水増しすることが可能である。
【００７１】
図１０は、全バッファをクリアする際のサウンド制御部の増加・減少判断部の動作を示すフローチャートである。
ステップＳ４１で、サウンドカードバッファ部のデータ量lengthを保持する。具体的には、図４に示したサウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量を保持する。
【００７２】
ステップＳ４２で、データ量length＞閾値であるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカードバッファ部４５のデータ量lengthが異常閾値より大きいか否かを判断する。この異常閾値は例えば図５に示したずれＤ３の上限閾値３８ｍｓの２倍の値となる。
【００７３】
ステップＳ４２でデータ量length＞閾値であるときは、ステップＳ４３へ移行して、サウンドカードバッファをクリアする。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカードバッファ部４５のデータをクリアする。
【００７４】
ステップＳ４５で、過去のデータ量の平均Aveとデータ量lengthから平均を求める。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量の過去の平均Aveと現在のデータ量lengthから平均を求める。平均を求める理由は、オペレーションシステムOSはタイムシェアリングで動作するため、監視タイミングが一定にならないためである。
【００７５】
ステップＳ４６で、タイムアウトであるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、監視期間がリアルタイム伝送を保証する一定の時間、例えば１００ｍｓを越えたか否かを判断する。
【００７６】
ステップＳ４６でタイムアウトでないときは、ステップＳ４４へ移行して、タイムアウトでない状態を認識する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、監視期間がリアルタイム伝送を保証する一定の時間、例えば図５に示したように１００ｍｓを越えていないことを認識する。
【００７７】
ステップＳ４６でタイムアウトであるときは、ステップＳ４７へ移行して、過去の平均Ave＞一つ前の時間区間の平均Ave_oldであるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、過去のデータ量の平均Aveが出力単位の一つ前の時間区間のデータ量の平均Ave_oldであるか否かを判断する。
【００７８】
ステップＳ４７で過去の平均Ave＞一つ前の時間区間の平均Ave_oldであるときは、ステップＳ４８へ移行して、過去の平均Ave＞上限閾値であるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、過去のデータ量の平均Aveが図５に示したずれＤ３の上限閾値３８ｍｓより大きいか否かを判断する。
【００７９】
ステップＳ４８で過去の平均Ave＞上限閾値であるときは、ステップＳ４９へ移行して、増加と判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量が増加したと判断する。
【００８０】
ステップＳ４７で過去の平均Ave＞一つ前の時間区間の平均Ave_oldでないときは、ステップＳ５０へ移行して、過去の平均Ave＜下限閾値であるか否かを判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、過去のデータ量の平均Aveが図５に示したずれＤ３の下限閾値１５ｍｓより小さいか否かを判断する。
【００８１】
ステップＳ５０で過去の平均Ave＜下限閾値であるときは、ステップＳ５１へ移行して、減少と判断する。具体的には、サウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９は、サウンドカード部４４のサウンドカードバッファ部４５のサウンドデータのデータ量が減少したと判断する。
【００８２】
ステップＳ４３でサウンドカードバッファをクリアしたとき、ステップＳ４６でタイムアウトでないとき、ステップＳ５０で過去の平均Ave＞上限閾値でないとき、ステップＳ４８で過去の平均Ave＜下限閾値でないときは、直接ステップＳ４４へ移行する。
【００８３】
図１１は、間引き・補間・クリアの例を示す図である。
図１１において、図４に示したメモリー部４３からサウンドカードバッファ部４５に供給されるサウンドデータ量をDeltaとするとDelta/Divとする。ここでDivは整数であり、システムに依存するものとする。
【００８４】
ここで、Ｔ時点で、サウンドカードバッファ部４５のサウンドデータ量が上限閾値１１１よりも大きいときメモリー部４３のサウンドデータ量を１１５に示すように間引く。このとき、１１２に示すように、現時点（Ｔ）の時間区間のデータを間引くようにし、１１３に示すように、前（Ｔ−１）の時間区間のデータは間引かないように処理される。
【００８５】
また、Ｔ−２時点で、サウンドカードバッファ部４５のサウンドデータ量が上限閾値１１１よりも小さいときメモリー部４３のサウンドデータ量を１１５に示すように水増しによって補間して、サウンドデータ量を例えば３２ｍｓ分に相当するデータ量Deltaにする。
【００８６】
また、Ｔn−３時点で、サウンドカードバッファ部４５のサウンドデータ量が下限閾値１１６よりも小さいときメモリー部４３のサウンドデータ量を１１７に示すように、Ｔn−２時点、Ｔn−１時点、及びＴn時点の下限閾値１１６を超えるまで補間する。
【００８７】
さらに、サウンドカードバッファ部４５のサウンドデータ量が１１８に示す異常閾値（＝上限閾値×２）を超えるときは、１１９に示すように現在のデータのみサウンドカードバッファ側に出力すると共に、１２０に示すように異常値をサウンドカードバッファでクリアする。
【００８８】
このように図４に示したサウンドカードバッファ部４５のサウンドデータ量が増加傾向にある場合はメモリー部４３のサウンドデータ量を削減する方向へ、減少傾向にある場合は増加させる方向でサウンドカードバッファ部４５に供給されるサウンドデータ量を調節する。
【００８９】
上述した処理は、図４に示したサウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０がメモリー部に対して、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ量の増加又は減少に基づいて行われる。
【００９０】
図１２は、急激な変化の例を示す図である。
図１２において、図４に示したサウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０は、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ１２５のサンプルレベル１２１を見て、サウンドデータ量の増加の急激な変化のないことに基づいて１２４で示すようにサウンドカードバッファ部４５へ転送されるサウンドデータ量が一定となるようにメモリー部４３のデータを間引くようにする。
【００９１】
また、サウンドデータ１２３のサンプルレベル１２１を見て、サウンドデータ量の急激な音量レベル等の変化がある場合は間引きの処理を行わないようにする。ここで、急激な変化の判断は、例えば、｜過去の平均Ave−一つ前の時間区間の平均Ave_old｜＞１０００バイトとなることで判断する。リアルタイム伝送においては、１０００バイトは１６ｍｓの時間に伝送されるデータ量に相当する。２０００バイトは上述した上限閾値３８ｍｓの時間に伝送されるデータ量に相当する。
【００９２】
ここでは、急激な増加の場合のみを示した急激な減少の場合も同様に処理される。この処理も、同様に、図４に示したサウンド再生部４１のメモリー部４３に設けられる間引き・補間部５０がメモリー部に対して、増加減少判断部４９によるサウンドカード部４４のサウンドカードバッファ部４５のサウンドデータ量の急激な増加又は減少に基づいて行われる。
【００９３】
上述したように、なんらかの突発的な不具合によりサウンドデータがサウンドカードバッファ部にたまった場合に対処するために、ある異常閾値を超えた場合は強制的に全サウンドカードバッファ部をクリアする。このようにすると、音響出力が、寸断される可能性が高いが、サウンドカードバッファ部にデジタルサウンドデータが溜まって遅延が発生するよりもリアルタイム通信を考えるとこのような安全弁的な機構を取り入れた方が、より安定的な動作が可能となる。さらに、このようにすることにより、送受信間での遅延を閾値以下に保つことが可能となる。
【００９４】
上述したメモリー制御を行うことにより、サウンドカードバッファ部のバッファーアンダーランやバッファーオーバーフローを回避することができる。また、サウンドデータの間引きや、水増しをさせるかの条件をサウンド再生部４１のサウンド制御部及びデコード部４２に設けられる増加減少判断部４９により判定をすることにより、ユーザには制御の状態が知覚することができないようになっている。
【００９５】
また、サウンドカードバッファ部のデータ量が大幅に増した場合に、異常閾値を設けることで突発的な遅延の増大を回避することも可能となる。
また、大量のバッファリングを必要としないため、ネットワークを介した、リアルタイムなコミュニケーションに適しているといえる。
【００９６】
本発明の実施の形態は、上述したサウンドデータに限らず、リアルタイム伝送に用いられる連続した他のデータ、例えば、ビデオデータに適用可能である。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施の形態に適用される位相同期を行うリアルタイムデータ通信システムの構成を示す図である。
【図２】リアルタイムデータ通信システムにおける端末内部の構成を示す図である。
【図３】非現実的な同期方法を示す図である。
【図４】サウンド再生時の受信側端末の構成例を示す図である。
【図５】リアルタイム性のためのメモリー制御の例を示す図である。
【図６】サウンド制御部の制御を示すフローチャートである。
【図７】サウンド制御部の増加・減少判断部の動作を示すフローチャートである。
【図８】サウンド制御部のメモリー部の間引き及び補間の制御を示すフローチャートである。
【図９】サウンド制御部のメモリー部の具体的な制御を示すフローチャートである。
【図１０】全バッファをクリアする際のサウンド制御部の増加・減少判断部の動作を示すフローチャートである。
【図１１】間引き・補間・クリアの例を示す図である。
【図１２】急激な変化の例を示す図である。
【符号の説明】
【００９８】
１……端末Ａ、２……ネットワーク、３……端末Ｂ、１１……端末内部（キャプチャ側）、１２……入力部、１３……サウンド記録部，１４……データ送信部、１５……中央演算処理部、２１……端末内部（再生側）、２２……データ受信部、２３……サウンド再生部、２４……中央演算処理部、２５……出力部、２６……位相同期とれる、２７……同期ずれる、３１……サウンド記録再生部、３２……サウンド記録再生部、３３……同期を行う、４１……サウンド再生部、４２……サウンド制御部及びデコード部、４３……メモリー部、４４……サウンドカード部、４５……サウンドカードバッファ部、４６……サウンドカード、４７……一定レート、４８……監視、４９……増加減少判断部、５０……間引き・補間部、５１……送信側、５２……入力端子、５３……サウンドカードバッファ、５４……ＣＰＵ、５５……バッファ、５６……受信側、５７……バッファ、５８……ＣＰＵ、５９……サウンドカードバッファ、６０……スピーカ、６１……位相同期、６２……一定レート、１１１……上限閾値、１１２……現時点（Ｔ）のデータを間引く、１１３……前（Ｔ−１）のデータは間引かない、１１４……間引、１１５……補間、１１６……下限閾値、……１１７……補間、１１８……異常閾値、１１９……現在のデータのみサウンドカードバッファ側に出力する、１２０……異常値をサウンドカードバッファでクリアする、１２１……サンプルレベルを見る、１２２……間引かない、１２３……急激な変化のあるデータ、１２４……間引く、１２５……急激な変化のないデータ、１２６……急激な変化の判断基準
【図１】
2005184383.tif 000003
【図２】
2005184383.tif 000004
【図３】
2005184383.tif 000005
【図４】
2005184383.tif 000006
【図５】
2005184383.tif 000007
【図６】
2005184383.tif 000008
【図７】
2005184383.tif 000009
【図８】
2005184383.tif 000010
【図９】
2005184383.tif 000011
【図１０】
2005184383.tif 000012
【図１１】
2005184383.tif 000013
【図１２】
2005184383.tif 000014