(57)【要約】      （修正有）【課題】ネットワーク受信用バッファのサイズを、ネットワークなどの環境に適応し、できるだけ遅延を小さくし、かつ、安定して動作する最適な値に設定する。【解決手段】バッファサイズ決定システムでは、他のセッション端末との通信開始に応じて、一定時間の間にネットワーク受信用バッファのデータ蓄積状態がフル乃至エンプティになった回数（満空発生回数）を満空カウンタで計測し、計測した満空発生回数に応じてバッファサイズを調整する（Ｓ２〜Ｓ５）。例えば、満空発生回数がＮ以上のときはバッファサイズを拡張し、バッファサイズを拡張しても満空発生回数がＮ以上のときはバッファサイズを更に拡張する（Ｓ２〜Ｓ４）。そして、満空発生回数がＮ未満のときはバッファサイズをそのときの値に確定し（Ｓ５）、最大バッファサイズまで拡張しても満空発生回数がＮ以上の場合はバッファサイズの調整を中止する（Ｓ６）。【選択図】図５
2014110526.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークから受信したデータをバッファリングして再生デバイスに出力するネットワーク受信用バッファのバッファサイズ決定方法であって、
ネットワーク受信用バッファのデータ蓄積状態が満杯及び／又は空になった回数を計測する回数計測ステップと、
回数計測ステップで計測された回数に応じて、ネットワーク受信用バッファのバッファサイズを調整するバッファサイズ調整ステップと
から成ることを特徴とするネットワーク受信用バッファのバッファサイズ決定方法。
【請求項２】
通信ネットワークから受信したデータをバッファリングして再生デバイスに出力するネットワーク受信用バッファのバッファサイズ決定装置であって、
ネットワーク受信用バッファのデータ蓄積状態が満杯及び／又は空になった回数を計測する回数計測手段と、
回数計測手段により計測された回数に応じて、ネットワーク受信用バッファのバッファサイズを調整するバッファサイズ調整手段と
を具備することを特徴とするネットワーク受信用バッファのバッファサイズ決定装置。
【請求項３】
回数計測手段は、通信開始に応じて、所定時間の間に、ネットワーク受信用バッファのデータ蓄積状態が満杯及び／又は空になった回数を計測することを特徴とする請求項２に記載のネットワーク受信用バッファのバッファサイズ決定装置。
【請求項４】
バッファサイズ調整手段は、回数計測手段により計測された回数が所定値以上のときは、バッファサイズを拡張し、所定値未満のときには、バッファサイズの調整を行わずにバッファサイズを確定し、最大バッファサイズまで拡張しても回数計測手段により所定値以上の回数が計測された場合は、バッファサイズの調整を中止することを特徴とする請求項２又は３に記載のネットワーク受信用バッファのバッファサイズ決定装置。
【請求項５】
通信ネットワークを介して通信可能に接続された複数のセッション端末により構成されるネットワークセッションシステムであって、
各セッション端末は、通信ネットワークから受信したデータをバッファリングしてデータ再生部に出力するネットワーク受信用バッファのバッファサイズ決定装置を備え、
各ネットワーク受信用バッファのバッファサイズ決定装置は、
ネットワーク受信用バッファのデータ蓄積状態が満杯及び／又は空になった回数を計測する回数計測手段と、
回数計測手段により計測された回数に応じて、ネットワーク受信用バッファのバッファサイズを調整するバッファサイズ調整手段と
を具備する
ことを特徴とするネットワークセッションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、インターネットなどの通信ネットワークに接続された電子楽器などの通信端末におけるネットワーク受信用バッファのバッファサイズ決定技術及び該バッファサイズ決定技術を用いたネットワークセッションシステムに関する。
【背景技術】
【０００２】
従来より、インターネットなどの通信ネットワークを介した楽器の演奏（合奏）やデュエット等の合唱などの音楽的なセッションを可能としたネットワークセッションシステムが知られている。例えば、特許文献１のネットワークセッションシステムでは、自端末Ａは、自らの演奏情報を相手端末Ｂに送信すると共に所定時間だけ遅延させてから再生し、相手端末Ｂは、送信されてきた演奏データを直ちに再生することにより、自端末Ａの演奏情報が、両端末Ａ，Ｂにおいて同時に再生されるようになっている。
【０００３】
このようなネットワーク越しの演奏データの伝達などでは、送信されてきたデータに通信上のデータの送信間隔のよれ（ジッタとも呼ばれる時間的な揺らぎ）が発生する。この問題に対して、例えば、非特許文献１には、ネットワークから受信したパケットを受ける再生バッファについて、（１）予想されるジッタよりもかなり大きい値を遅延時間に選んで補正すればうまく動作すること、（２）パケット到着間隔に対するジッタの発生頻度が正規分布するとみなし、再生遅延として、例えば、パケット到着間隔の標準偏差を３倍した値を選択すると、破棄されるパケットが０．５％以下になることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２４２５６０号公報
【非特許文献】
【０００５】
【非特許文献１】Ｃｏｌｉｎ  Ｐｅｒｋｉｎｓ著、小川晃通監訳、「マスタリングＴＣＰ／ＩＰ  ＲＴＰ編」、株式会社オーム社、平成１６年４月１５日、ｐ．１６０−１６１
【０００６】
しかしながら、（１）の手法は、十分に大きく安全なバッファサイズを設定するので、シンプルで安定するが、遅延が大きくなってしまう。また、（２）の手法では、ジッタのみを評価しているため、例えば、バッファサイズは、最低限、「送信されてくる間隔」と「受信端末の再生デバイスが一度に要求するサイズ」よりは大きくなければならないが、ジッタが十分に小さい場合このバッファサイズより小さくなってしまうことがある。
【０００７】
つまり、データを受信し再生する側の端末では、ある程度のバッファサイズをもつ受信用バッファを用意して、ジッタを吸収する必要があるが、その一方で、リアルタイム音楽セッションなどのように遅延について要求の厳しいアプリケーションでは、このバッファサイズをできるだけ小さく押さえる必要があるが、このように相反する要求を満足するネットワーク受信用バッファは現われていない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
この発明は、このような事情に鑑み、インターネットなどの通信ネットワークを介して音楽的なセッションを行うネットワークセッションシステムなどのネットワーク受信用バッファに、ネットワークなどの環境に適応し、できるだけ遅延を小さくし、かつ、安定して動作する最適なバッファサイズを設定することができるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
この発明の主たる特徴に従うと、通信ネットワーク（ＣＮ）から受信したデータ（Ｄｉ）をバッファリングして再生デバイス（９）に出力するネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定方法であって、ネットワーク受信用バッファ（ＢＦ）のデータ蓄積状態が満杯（フル）及び／又は空（エンプティ）になった回数（満空発生回数）を計測する回数計測ステップ（ＣＴ）と、回数計測ステップ（ＣＴ）で計測された回数（満空発生回数）に応じて、ネットワーク受信用バッファ（ＢＦ）のバッファサイズ（Ｔｂｆ）を調整するバッファサイズ調整ステップ（Ｓ２〜Ｓ５）とから成るネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定方法〔請求項１〕、並びに、通信ネットワーク（ＣＮ）から受信したデータ（Ｄｉ）をバッファリングして再生デバイス（９）に出力するネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定装置（ＳＣ）であって、ネットワーク受信用バッファ（ＢＦ）のデータ蓄積状態が満杯（フル）及び／又は空（エンプティ）になった回数（満空発生回数）を計測する回数計測手段（ＣＴ）と、回数計測手段（ＣＴ）により計測された回数（満空発生回数）に応じて、ネットワーク受信用バッファ（ＢＦ）のバッファサイズ（Ｔｂｆ）を調整するバッファサイズ調整手段（Ｓ２〜Ｓ５）とを具備するネットワーク受信用バッファのバッファサイズ決定装置（ＳＣ）〔請求項２〕が提供される。なお、括弧書きは、理解の便のために付記した実施例の参照記号や箇所等を表わし、以下においても同様である。
【００１０】
この発明によるネットワーク受信用バッファのバッファサイズ決定装置（ＳＣ）において、回数計測手段（ＣＴ）は、通信開始に応じて、所定時間（Ｔｒ）の間にネットワーク受信用バッファ（ＢＦ）のデータ蓄積状態が満杯（フル）及び／又は空（エンプティ）になった回数（満空発生回数）を計測する〔請求項３〕ように構成することができる。
【００１１】
また、この発明によるネットワーク受信用バッファのバッファサイズ決定装置（ＳＣ）において、バッファサイズ調整手段は、回数計測手段（ＣＴ）により計測された回数（満空発生回数）が所定値（Ｎ）以上のときは、バッファサイズ（Ｔｂｆ）を拡張し（Ｓ２〜Ｓ４）、所定値（Ｎ）未満のときには、バッファサイズ（Ｔｂｆ）の調整を行わずにバッファサイズ（Ｔｂｆ）を確定し（Ｓ２＝ＮＯ→Ｓ５）、最大バッファサイズ（Ｔｂｆｍ）まで拡張しても回数計測手段（ＣＴ）により所定値（Ｎ）以上の回数が計測された場合は、バッファサイズ（Ｔｂｆ）の調整を中止する（Ｓ２＝ＹＥＳ→Ｓ３＝ＹＥＳ→Ｓ６）〔請求項４〕ように構成することができる。
【００１２】
この発明の別の特徴に従うと、通信ネットワーク（ＣＮ）を介して通信可能に接続された複数のセッション端末（ＴＭ：ＴＭａ〜ＴＭｄ）により構成されるネットワークセッションシステムであって、各セッション端末（ＴＭ）は、通信ネットワーク（Ｃ）から受信したデータ（Ｄｉ）をバッファリングしてデータ再生部（９）に出力するネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定装置（ＳＣ）を備え、各ネットワーク受信用バッファのバッファサイズ決定装置（ＳＣ）は、ネットワーク受信用バッファ（ＢＦ）のデータ蓄積状態が満杯（フル）及び／又は空（エンプティ）になった回数（満空発生回数）を計測する回数計測手段（ＣＴ）と、回数計測手段（ＣＴ）により計測された回数（満空発生回数）に応じて、ネットワーク受信用バッファ（ＢＦ）のバッファサイズ（Ｔｂｆ）を調整するバッファサイズ調整手段（Ｓ２〜Ｓ５）とを具備するネットワークセッションシステム〔請求項５〕が提供される。
【発明の効果】
【００１３】
この発明によるネットワーク受信用バッファのバッファサイズ決定システムでは（請求項１，２）、ネットワークセッションシステムなどの各端末において通信ネットワーク（ＣＮ）から受信したデータ（Ｄｉ）をバッファリングして再生デバイス（９）に出力するネットワーク受信用バッファ（ＢＦ）について、データ蓄積状態が満杯（フル）及び／又は空（エンプティ）になった回数（満空発生回数）を計測し、計測された回数（満空発生回数）に応じて、バッファサイズ（Ｔｂｆ）を調整するようにしている。従って、この発明によれば、簡単な構成で、ネットワークなどの環境に適応し、できるだけ遅延を小さくし且つ安定して動作する最適なバッファサイズをネットワーク受信用バッファに設定することができる。
【００１４】
この発明によるネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定装置（ＳＣ）において、通信開始に応じて、所定時間（Ｔｒ）の間、例えば、５秒間、ネットワーク受信用バッファ（ＢＦ）のデータ蓄積状態が満杯（フル）及び／又は空（エンプティ）になった回数（満空発生回数）を計測するようにしている（請求項３）。従って、この発明によれば、通信開始から僅かな時間の間に、簡単な構成で、ネットワークなどの環境に適応し最適なバッファリングを行うバッファサイズをネットワーク受信用バッファに設定することができる。
【００１５】
また、この発明によるネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定装置（ＳＣ）において、計測した満杯（フル）及び／又は空（エンプティ）の回数（満空発生回数）が所定値（Ｎ）以上のときは、バッファサイズ（Ｔｂｆ）を拡張し（Ｓ２〜Ｓ４）、所定値（Ｎ）未満のときには、バッファサイズ（Ｔｂｆ）の調整を行わずにバッファサイズ（Ｔｂｆ）を確定し（Ｓ２＝ＮＯ→Ｓ５）、最大バッファサイズ（Ｔｂｆｍ）まで拡張しても所定値（Ｎ）以上の回数が計測された場合はバッファサイズ（Ｔｂｆ）の調整を中止する（Ｓ２＝ＹＥＳ→Ｓ３＝ＹＥＳ→Ｓ６）ようにしている（請求項４）。従って、この発明によれば、簡単な処理によって僅かな時間で最適なバッファサイズに調整すると共に、最適なバッファサイズが得られないときには直ちに調整を中止し、ユーザは、他の条件に設定し直して、再度バッファサイズ（Ｔｂｆ）の調整を試みることができる
【００１６】
この発明の別の特徴に従うと、通信ネットワーク（ＣＮ）を介して通信可能に接続されてネットワークセッションシステムを構成する複数のセッション端末（ＴＭ：ＴＭａ〜ＴＭｄ）のそれぞれは、通信ネットワーク（ＣＮ）から受信したデータ（Ｄｉ）をバッファリングしてデータ再生部（９）に出力するネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定装置（ＳＣ）を備え、各ネットワーク受信用バッファ（ＢＦ）のバッファサイズ決定装置（ＳＣ）は、ネットワーク受信用バッファ（ＢＦ）のデータ蓄積状態が満杯（フル）及び／又は空（エンプティ）になった回数（満空発生回数）を計測し（ＣＴ）、計測した回数（満空発生回数）に応じて、ネットワーク受信用バッファ（ＢＦ）のバッファサイズ（Ｔｂｆ）を調整する（Ｓ２〜Ｓ５）ようにしている。従って、この発明によれば、簡単な構成で、ネットワークなどの環境に適応し而も小さな最適値に押さえられたバッファサイズを各セッション端末ＴＭに設定することができ、リアルタイム音楽セッションをスムースに行うことができる。
【図面の簡単な説明】
【００１７】
【図１】この発明の一実施例によるネットワークセッションシステムの構成を示す。
【図２】この発明の一実施例によるネットワーク受信用バッファの機能を説明するための模式図の一部である。
【図３】この発明の一実施例によるネットワーク受信用バッファの機能を説明するための模式図の他部である。
【図４】この発明の一実施例によるバッファサイズの決め方を説明するための模式図である。
【図５】この発明の一実施例によるバッファ管制部におけるバッファサイズ決定処理の動作例を示す。
【発明を実施するための形態】
【００１８】
〔システム構成の概要〕
図１は、この発明の一実施例によるネットワークセッションシステムの構成を示す。このネットワークセッションシステムは、図１（１）に示すように、セッション管理サーバＳＶと複数のセッション端末ＴＭ（記号“ＴＭ”はセッション端末を代表的に表わす）：ＴＭａ〜ＴＭｄで構成され、セッション管理サーバＳＶは、メンバーとなるセッション端末ＴＭ間の接続支援、例えば、セッションの開始に先立って行われる各セッション端末ＴＭ同士の接続手続きなどを行う。各セッション端末ＴＭ間、例えば、セッション端末ＴＭａ〜ＴＭｄ間で接続が成立した後は、セッション管理サーバＳＶを介することなく、これらセッション端末ＴＭａ〜ＴＭｄ間において、オーディオデータなどの演奏情報が送受信される。セッション管理サーバＳＶの動作は、よく知られているので、ここでは、より詳細な動作については説明を省略する。また、ネットワークセッションのメンバーとなる複数のセッション端末ＴＭａ〜ＴＭｄは、それぞれ、楽器演奏乃至カラオケが可能な電子音楽装置である。なお、セッション端末ＴＭの数（メンバー数）は、図１（１）には４つ例示されているが、これに限らない（多くても少なくてもよい）。
【００１９】
図１（２）は、このネットワークセッションシステムを構成するセッション端末のハードウエア構成例を示すブロック図である。この発明の一実施例によるネットワークセッションシステムを構成するセッション端末ＴＭは、電子的な音楽情報処理機能を有する一種のコンピュータであり、電子楽器や音楽情報処理アプリケーションがインストールされたパーソナルコンピュータ（ＰＣ）のような電子音楽装置を用いることができる。このセッション端末ＴＭは、図示のように、中央処理装置（ＣＰＵ）１、ランダムアクセスメモリ（ＲＡＭ）２、読出専用メモリ（ＲＯＭ）３、記憶装置４、設定操作検出回路５、演奏操作検出回路６、アナログ−ディジタル（Ａ／Ｄ）変換回路７、表示回路８、音源・効果回路９、通信インターフェース（Ｉ／Ｆ）１０などを備え、これらの要素１〜１０はバス１１を介して互いに接続される。
【００２０】
ＣＰＵ１は、ＲＡＭ２及ＲＯＭ３と共にデータ処理部を構成し、バッファサイズ決定プログラムを含む所定の制御プログラムに従って他の要素４〜１０を制御し、バッファサイズ決定処理を含む種々の情報処理を実行する。ＲＡＭ２は、これらの処理に際して必要なデータを利用可能に保持するための記憶管理領域や各種データを一時記憶するためのワーク領域として用いられ、ＲＯＭ３には、種々の処理を実行するために、各種制御プログラムやプリセットされたデータ等が予め記憶される。
【００２１】
記憶装置４は、ＨＤ（ハードディスク）、ＦＤ（フレキシブルディスク）、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多目的ディスク）、フラッシュメモリなどの半導体メモリなどの記憶媒体と、その駆動装置を含み、バッファサイズ決定プログラムを含む任意の制御プログラムや演奏データなどを任意の記憶媒体に記憶することができる。また、記憶媒体は、着脱可能であってもよいし、セッション端末ＴＭに内蔵されていてもよい。
【００２２】
設定操作検出回路５は、スイッチやマウス等の設定操作子（パネル操作子）１２と共に設定操作部（パネル操作部）を構成し、設定操作子１２の操作を検出して設定操作に対応する設定操作情報をデータ処理部（１〜３）に導入し、データ処理部は、この設定操作情報に基づき種々の設定を行う。演奏操作検出回路６は、鍵盤などの演奏操作子１３と共に楽器演奏入力部を構成し、端末ユーザによる演奏操作子１３の操作を検出して演奏操作に対応する演奏操作情報をデータ処理部に導入し、データ処理部は、演奏操作情報に基づく演奏データを音源・効果回路９に送る。
【００２３】
Ａ／Ｄ変換回路７は、マイクロフォン１４と共に歌唱入力部を構成し、端末ユーザによる歌唱の演奏によりマイクロフォン１４から入力された歌唱音声信号をディジタル信号に変換してデータ処理部に導入し、データ処理部は、ディジタル歌唱音声信号に基づくオーディオデータを音源・効果回路９の効果部に送る。表示回路８は、種々の設定、楽器演奏や歌唱などの演奏入力に必要な各種画面を表示するＬＣＤ等のディスプレイ１５や、インジケータ／ランプ（図示せず）を備え、これらの表示・点灯内容をデータ処理部からの指令に従って制御し、設定や演奏入力などに関する表示援助を行う。
【００２４】
音源・効果回路９は、演奏データからオーディオデータを生成する音源部と、ＤＳＰを含み種々のオーディオデータ処理を行う効果部とを有する。例えば、音源部は、演奏操作検出回路６からの演奏操作情報から得られる演奏データ、或いは、ＲＯＭ３、記憶装置４又は通信Ｉ／Ｆ１０から得られる演奏データに基づいて、オーディオデータを生成し、効果部は、マイクロフォン１４から入力されたオーディオデータや、音源部で生成されたオーディオデータ、或いは、通信Ｉ／Ｆ１０などから得られるオーディオデータについて、所定の効果を付与したりミキシングを行い、オーディオ出力データを生成する。サウンドシステム１６は、Ｄ／Ａ変換部やアンプ、スピーカ（ヘッドフォンを含む）等を備え、音源・効果回路９からのオーディオ出力データに基づく楽音（楽器演奏音や歌唱音声）を発生する。音源・効果回路９の効果部及びサウンドシステム１６はオーディオ再生部（再生デバイス、データ再生部ともいう）として機能する。
【００２５】
通信Ｉ／Ｆ１０は、ＩＥＥＥ１３９４等の汎用近距離有線Ｉ／Ｆ、Ｅｔｈｅｒｎｅｔ（登録商標）等の汎用ネットワークＩ／Ｆ、無線ＬａｎやＢｌｕｅｔｏｏｔｈ（登録商標）等の汎用近距離無線Ｉ／Ｆなどの１又は複数を含み、インターネットなどの通信ネットワークＣＮを介して他のセッション端末との間でオーディオデータを授受したり、サーバコンピュータ等の外部機器から制御プログラムやデータ等を受信して記憶装置４に保存することができる。通信Ｉ／Ｆ１０の所定のデータ受信部には、他のセッション端末から送信されてくるオーディオデータをバッファリングして音源・効果回路９の効果部（再生デバイス、データ再生部）に出力するネットワーク受信用バッファ（単に受信用バッファともいう）ＢＦと、データ処理部（１〜３）からの制御指令に従って受信用バッファＢＦの状態を監視し最適に制御するバッファ管制部ＳＣを備えている。
【００２６】
なお、セッション端末ＴＭとして電子楽器を使用しカラオケを行わない場合は歌唱入力部１４−７は不要であり、セッション端末ＴＭとして音楽情報処理アプリケーション付きＰＣを使用しカラオケのみを行う場合には楽器演奏入力部１３−６は不要である。また、セッション管理サーバＳＶのハードウエア構成については、図２（２）とほぼ同様に構成されるが、楽器演奏入力部１３−６や演奏再生部９−１６は不要である。
【００２７】
〔受信用バッファの機能〕
図２及び図３は、この発明の一実施例によるネットワーク受信用バッファの機能を模式的に表わした図である。或るセッション端末ＴＭ、例えば端末ＴＭａのデータ受信部（１０）に備えられたネットワーク受信用バッファＢＦは、図２（１）に示すように、相手のセッション端末ＴＭ、例えば端末ＴＭｂから通信ネットワークＣＮを介して送信されてくるオーディオデータＤｉをバッファリングし、バッファリングしたオーディオデータＤｏを再生デバイス（音源・効果回路９の効果部）に出力する。
【００２８】
つまり、ネットワークＣＮからバッファＢＦに届くデータＤｉは、相手端末ＴＭｂとの設定に準じた間隔で送られてくるのに対して、バッファＢＦから再生デバイスが取得し再生するデータＤｏは、再生デバイス側の設定などによって、取得する間隔が決まり、送られてくるデータＤｉの間隔と、再生するデータＤｏの取得間隔及びタイミングが必ずしも一致しない。また、ネットワーク上にはデータのよれ（ジッタ、時間的な揺らぎ。以下、ジッタという。）が存在するので、ある程度の余裕を持つ必要がある。そこで、受信したデータＤｉを受信用バッファＢＦに書き込んで（ｗｒｉｔｅ）一時的に蓄えておき、再生デバイス側の処理に対応したタイミングで順次先着のデータから読み出して（ｒｅａｄ）、データＤｏとして再生デバイス側に出力する。この場合、バッファ管制部ＳＣによって決定されるバッファＢＦの大きさ（Ｔｂｆ）に従って遅延時間を調整することができる。
【００２９】
受信用バッファＢＦは、基本的には、図２（２）に示すように、定常時のバッファ量、即ち、バッファＢＦに蓄積されるデータの量（Ｔｄ）が、予め設定した遅延量Ｔｓとなるように動作する。つまり、バッファＢＦが設定通り動作している場合は、図示のように、設定遅延量Ｔｓに対応する「バッファの定位置Ｐｓ」から最新のデータＤｉが書き込まれ（ｗｒｉｔｅ）、バッファＢＦの前端Ｐｆから最先のデータＤｏが読み出される（ｒｅａｄ）。ここで、バッファＢＦの前端Ｐｆから後端Ｐｅまでの蓄積可能な最大データ量を時間に換算したものが「バッファサイズＴｂｆ」である。なお、受信用バッファＢＦにはリングバッファが用いられ、書込み位置、読出し位置及びデータ蓄積範囲は、リングバッファ上で動的に変動するが、読出し位置を前端Ｐｆに固定すれば、バッファＢＦは、図２及び図３のように、模式的に表わすことができる。
【００３０】
この場合、ネットワークのジッタなどがあると、一時的に蓄積データ量が増えることがあるので、バッファＢＦの定位置Ｐｓの前後に余裕を持たせておく。バッファサイズＴｂｆは、式（１）のように設定遅延量Ｔｓに所定の係数Ｋｓ（例えば、Ｋｓ＝２．５）を掛けて決定する：
Ｔｂｆ  ＝  Ｋｓ  ×  Ｔｓ                                            （１）
【００３１】
図２（３）（ａ）は、バッファＢＦが、データ蓄積量Ｔｄ＝０の初期状態から、ネットワークＣＮから相手端末ＴＭのデータＤｉの受信を開始して入力（ｗｒｉｔｅ）を始め、だんだんバッファにデータが溜まっていく様子を模式的に示している。そして、バッファＢＦは、図２（３）（ｂ）のように、蓄積データで定位置Ｐｓまで埋まったところ、即ち、設定遅廷量Ｔｓ（Ｔｓ＝Ｔｄ）で、初めてデータＤｏを出力し（ｒｅａｄ）、再生デバイスがデータＤｏに従ってオーディオ再生を開始する。
【００３２】
通常は、ネットワークＣＮからのデータＤｉの受信（ｗｒｉｔｅ）も再生デバイスでのオーディオ再生（ｒｅａｄ）も、同じレート（44,100ｋＨｚのオーディオ）であるので、バッファの定位置Ｐｓのあたりで安定している。従って、この方法で、設定した遅延量Ｔｓでのバッファリングを行うことができる。
【００３３】
バッファサイズＴｂｆの値が小さい場合、ネットワークＣＮ上の伝送状態によってジッタが生じると、図３（１）（ａ）に示すように、再生より早くデータＤｉが一気に届き、データ蓄積量ＴｄがバッファサイズＴｂｆに達してしまい、新たなデータＤｉがバッファＢＦに書き切れずに棄却されてしまうことがある。このように、蓄積データがバッファＢＦの後端Ｐｅまで到達して満杯になった状態は、「バッファフル」或いは単に「フル」（Ｆｕｌｌ）と呼ばれ、「満杯」とも言われる。また、これとは逆に、ジッタにより、データＤｉの到来間隔が長くなり過ぎると、図３（１）（ｂ）に示すように、蓄積データがバッファＢＦ内から無くなってしまい、再生側がデータＤｏを取得できないこともある。このように再生に間に合うようにデータＤｉが届いておらずバッファＢＦが空になった状態は、「バッファエンプティ」或いは単に「エンプティ」（Ｅｍｐｔｙ）と呼ばれ、「空」とも言われる。
【００３４】
＜受信用バッファのレート調整＞
ネットワーク受信用バッファＢＦにおいて、ＲＴＰ（Real-time Transport Protocol）などの通信方式に従ってオーディオデータＤｉを受信する場合、受信するオーディオデータＤｉのデータレートと再生デバイスが要求するオーディオデータＤｏのデータレートには微妙な差が生じる。例えば、データＤｏの読出し速度の方が早い場合はバッファアンダーの状態が進み、また、データＤｉの書込み速度の方が早い場合はバッファオーバの状態が進んでいく。そのため、そのままではバッファＢＦがエンプティ／フルのどちらかになってしまうため、バッファ管制部ＳＣにより、定期的に入力レートの調整を行う。この場合、ネットワークのジッタによる一時的なバッファ量増加乃至減少の影響を緩和するために、図３（２）に示すように、閾値（ threshold）を設けてデータ蓄積状態を監視し、レート調整に「遊び」を持たせる。
【００３５】
つまり、バッファの定位置Ｐｓの前方及び後方に、それぞれ、下限閾値Ｔｈ１及び上限閾値Ｔｈ２を設定し、データ蓄積量Ｔｄが定位置Ｐｓ側から下限閾値Ｔｈ１或いは上限閾値Ｔｈ２まで行くと、閾値分の不足サンプル数或いは過剰サンプル数だけ、再生するサンプルを少しずつ追加するか或いは間引く。具体的には、前回バッファの定位置Ｐｓになった時刻から下限閾値Ｔｈ１或いは上限閾値Ｔｈ２に到達するまでの閾値到達時間Ｔ１，Ｔ２を記録しておき、閾値到達時間の半分の時間Ｔ１／２，Ｔ２／２でバッファの定位置Ｐｓまで戻せるように、サンプルを追加するか或いは間引く。ここで、目標時間を閾値到達時間の半分としているのは、かかった時間と同じ時間で戻そうとすると、サンプルの追加或いは間引きがデータ蓄積量Ｔｄの減少或いは増大に追い付かず、データ蓄積量Ｔｄが定位置Ｐｓ（設定遅延量Ｔｓ）に戻れない可能性があることによる。
【００３６】
例えば、バッファの定位置Ｐｓから上限閾値Ｔｈ２までの間隔が１００サンプル分に設定されている場合、Ｔ２＝５００００サンプル時間かかって定位置Ｐｓから上限閾値Ｔｈ２に達した場合、５００００サンプル時間の半分のＴ２／２=２５０００サンプル時間の
間に１００サンプル間引く、即ち、２５０サンプルで１サンプル間引く処理を加える。
【００３７】
〔バッファサイズの自動調整〕
この発明の一実施例によるネットワーク受信用バッファでは、動的にバッファサイズを変更することができる。つまり、ネットワーク受信用バッファＢＦのバッファサイズＴｂｆは、ユーザが設定するのではなく、バッファ管制部ＳＣによるバッファサイズの自動調整機能により、自動的に、できるだけ小さく且つ問題の発生しない値に決定される。
【００３８】
このネットワーク受信用バッファＢＦの出力データＤｏによりオーディオ再生部が再生を開始するのは、バッファＢＦの定位置Ｐｓまでデータが溜まってからであり、バッファＢＦの定位置Ｐｓの前後には余裕があるはずであり、さらに、データ蓄積量Ｔｄが閾値Ｔｈ１，Ｔｈ２を超えると、バッファＢＦにはレート調整機能が作用する。にも拘わらず、レート調整の作用が間に合わず、図３（１）（ａ）のように、現在設定されているバッファＢＦの後端Ｐｅまでデータが到達してしまうバッファフルや、図３（１）（ｂ）のように、バッファＢＦが空になってしまうバッファエンプティが起きるということは、そもそも、バッファサイズＴｂｆが適切ではなく小さ過ぎる可能性が高い。
【００３９】
そこで、このネットワーク受信用バッファＢＦでは、データ蓄積状態を監視する際、バッファフルやバッファエンプティが起きて現在のバッファサイズＴｂｆが適切ではなく異常な状況が発生したと判断される場合には、図４に示すように、バッファサイズＴｂｆを大きく引き伸ばす。そして、もう一度、バッファＢＦのデータ蓄積状態の監視を行い、問題が発生しなくなるまで蓄積状態の監視とサイズの拡張を繰り返す自動調整を行って、適切なバッファサイズＴｂｆを自動的に決定する。
【００４０】
この場合、データ蓄積状態を監視する際は、バッファフル乃至バッファエンプティの発生回数（満空発生回数という）を計測する満空カウンタ（図５：ＣＴ）がセットされる。また、サイズ拡張を繰り返してバッファサイズＴｂｆが最大バッファサイズＴｂｆｍまで拡張されても異常な状況が発生する場合は自動調整を中止する。
【００４１】
バッファサイズＴｂｆを拡張する際は、図示のように、バッファの定位置Ｐｓ即ち設定遅延量Ｔｓを所定量だけ拡張し、それに合わせてバッファサイズＴｂｆも比例的に拡張する。また、レート調整を併用する場合は、さらに、閾値Ｔｈ１，Ｔｈ２をバッファサイズＴｂｆの拡張に比例して拡大する。また、最大バッファサイズＴｂｆｍは、初期バッファサイズＴｂｆ０を元に決定し、例えば、式（２）のように、初期バッファサイズＴｂｆ０に所定の係数Ｋｂ（例えば、Ｋｂ＝２．５）を掛けた値に設定しておく：
Ｔｂｆｍ  ＝  Ｋｂ  ×  Ｔｂｆ０                                      （２）
【００４２】
バッファサイズの自動調整は、具体的には、下記の手順（１）〜（７）に従って行う：
（１）ネットワーク受信用バッファＢＦの初期バッファサイズＴｂｆ０として小さめのバッファサイズ値（例えば、数ｍｓ）を設定する。つまり、初期バッファサイズＴｂｆ０は、小さめの値を設定し、相手端末ＴＭからのパケットの受信間隔、自端末ＴＭのオーディオデバイスの再生するデータ補充間隔よりは、最低でも、大きくなければならない。
（２）データ受信部（１０）の受信動作及びオーディオ再生部（９）の再生動作を開始すると、これに応じて、バッファサイズの自動調整を開始し、満空カウンタ（ＣＴ）をセットしてその計数動作をスタートさせる。なお、バッファサイズの自動調整は、ユーザの指示により開始するようにしてもよい。
（３）満空カウンタ（ＣＴ）は、セットされると、一定時間Ｔｒ（例えば、Ｔｒ＝５秒）の間、受信バッファＢＦがフル乃至エンプティになった回数（満空発生回数）をカウントする。
（４）満空カウンタ（ＣＴ）をセットした後、一定時間Ｔｒが経過したときに、満空カウンタ（ＣＴ）のカウント値（満空発生回数）を参照する。
（５）満空カウンタ（ＣＴ）のカウント値（満空発生回数）を参照して、一定時間Ｔｒ内に、所定回数Ｎ（例えば、Ｎ＝３回）以上フル乃至エンプティが発生していたことが分った場合は、図４のように、バッファの定位置Ｐｓ（設定遅延量Ｔｓ）を所定の遅延量ΔＴｓ（例えば、ΔＴｓ＝１ｍｓ）分だけ拡張し、それに合わせて、バッファサイズＴｂｆ、下限及び上限閾値Ｔｈ１，Ｔｈ２を拡張すると共に、満空カウンタ（ＣＴ）をセットして（３）に戻る。
（６）満空カウンタ（ＣＴ）のカウント値（満空発生回数）を参照して、所定回数Ｎ未満の満空発生回数であったことが分った場合は、この自動調整を終了し、バッファの定位置Ｐｓ（設定遅延量Ｔｓ）、バッファサイズＴｂｆ、下限及び上限閾値Ｔｈ１，Ｔｈ２を確定する。
（７）バッファサイズＴｂｆを最大バッファサイズＴｂｆｍまで拡張しても、満空カウンタ（ＣＴ）のカウント値（満空発生回数）を参照して所定回数Ｎ以上の満空発生回数であったことが分った場合には、この自動調整を中止する。なお、この場合、ユーザ操作により、各種設定値を変更した後や、任意の時間が経過したときに、再度、このバッファサイズの自動調整を試行してみることができる。
【００４３】
なお、上述した手順（１）〜（７）は、ユーザが所望する任意のタイミングで、再度、実行することができる。また、バッファサイズの自動調整に関わる各種設定値（例えば、Ｋｓ，Ｋｂ，Ｔｂｆ０，Ｔｂｆｍ，Ｔｒ，Ｎ，ΔＴｓ等）は、所定の制限範囲内で、ユーザが所望する任意の値に変更することができる。
【００４４】
また、あるタイミングを契機にして、最新の状況に適応するために自動的に再実行されるように構成してもよい。このタイミングは、たとえば無音を検出した場合（バッファサイズを変更しても音声に影響を与えないタイミング）、一定間隔ごと、ネットワークの状況の変化（たとえば、回線が混雑し、ジッタの幅が大きくなったなど）を検出した場合などが考えられる。
【００４５】
〔動作例〕
図５は、この発明の一実施例によるバッファ管制部におけるバッファサイズ決定処理の動作例を示し、同図の左上にあるブロックＣＴは、バッファ管制部ＳＣに備えられた満空カウンタを示す。満空カウンタＣＴは、ＣＰＵ１による制御に従って、セッション端末ＴＭが他の端末ＴＭとの通信を開始したとき及びバッファ拡張動作が行われたときに（Ｓ４）セットされ、セットに応じて、所定時間Ｔｒの間（例えば、５秒間）に受信バッファがＢＦがフル乃至エンプティになった回数をカウントする。バッファサイズ決定処理がスタートすると、バッファ管制部ＳＣは、ＣＰＵ１による制御に従って、最初のステップＳ１で、予め初期バッファサイズＴｂｆ０として小さめの値が設定されたバッファを確保し、セッション端末ＴＭが他の端末ＴＭとの通信を開始するのに応じて、データ受信部（１０）の受信動作及びオーディオ再生部（９）の再生動作がスタートすると、満空カウンタＣＴをセットし、ステップＳ２に進む。
【００４６】
ステップＳ２では、満空カウンタＣＴの計数結果を参照して、所定回数Ｎ（例えば、３回）以上、バッファフル乃至バッファエンプティが発生したか否かを判定し、発生したときには（Ｓ２＝ＹＥＳ）ステップＳ３に進んで、現在、設定されているバッファサイズＴｂｆが最大バッファサイズＴｂｆｍまで到達しているか否かを判定する。ここで、最大バッファサイズＴｂｆｍには到達していないと判定したときは（Ｓ３＝ＮＯ）、ステップＳ４に進む。
【００４７】
ステップＳ４では、バッファの定位置Ｐｓ即ち設定遅延量Ｔｓを、所定の遅延量ΔＴｓ（例えば、＋１ｍｓ）分だけ拡張した値に設定し、それに合わせてバッファサイズＴｂｆも所定量だけ拡張した値に設定すると共に、満空カウンタＣＴを再びセットする。レート調整を行っている場合は、更に設定遅延量Ｔｓの拡張に合わせて下上限閾値Ｔｈ１，Ｔｈ２も拡張する。ステップＳ４の処理の後は、ステップＳ２に戻り、バッファサイズＴｂｆを拡張してもＮ回以上バッファフル乃至バッファエンプティが発生し（Ｓ２＝ＹＥＳ）且つ拡張後のバッファサイズＴｂｆが最大バッファサイズＴｂｆに到達しない間は（Ｓ３＝ＮＯ）、ステップＳ２〜Ｓ４の処理による自動調整を繰り返し、設定遅延量ＴｓをΔＴｓずつ拡張していく（Ｓ４）。
【００４８】
ステップＳ２で、バッファフル乃至バッファエンプティの発生回数は０回乃至Ｎ回未満（例えば、０〜２回）であると判定したきは（Ｓ２＝ＮＯ）、ステップＳ５で、一定時間Ｔｒが経過したか否かを判定し、経過していなければ（Ｓ５＝ＮＯ）ステップＳ２に戻る。ここで、バッファフル乃至バッファエンプティの発生回数がＮ回未満のまま一定時間Ｔｒが経過すると（Ｓ５＝ＹＥＳ）、ステップＳ６に進んで自動調整を終了し、バッファの定位置Ｐｓ即ち設定遅延量Ｔｓ及びバッファサイズＴｂｆを、そのときに設定されている値に確定する。そして、今回のバッファサイズ決定処理を終了する。
【００４９】
また、ステップＳ３で、現在、設定されているバッファサイズＴｂｆが最大バッファサイズＴｂｆｍまで到達していると判定したときは（Ｓ３＝ＹＥＳ）、ステップＳ７に進んで自動調整を中止し、今回のバッファサイズ決定処理を終了する。
【００５０】
以上説明したように、この発明の一実施例によるバッファサイズ決定システム（ＳＣ）は、通信ネットワークＣＮを介して通信可能に接続され、ネットワークセッションシステムを構成する複数のセッション端末ＴＭａ〜ＴＭｄの夫々に構築され、通信ネットワークＣＮから受信したデータＤｉをバッファリングして再生デバイス（９）に出力するネットワーク受信用バッファＢＦについて、他のセッション端末ＴＭとの通信開始に応じて、一定時間Ｔｒの間にデータ蓄積状態が「フル」（満杯）乃至「空」（エンプティ）になった回数（満空発生回数）を満空カウンタＣＴにより計測し、計測した満空発生回数に応じてバッファサイズＴｂｆを自動調整する（Ｓ２〜Ｓ５）。例えば、満空発生回数がＮ以上のときは、バッファサイズＴｂｆを拡張し、バッファサイズＴｂｆを拡張しても満空発生回数がＮ以上のときは再度バッファサイズＴｂｆを拡張する（Ｓ２〜Ｓ４）。そして、満空発生回数がＮ未満のときは、バッファサイズＴｂｆをそのときの値に確定し（Ｓ５）、最大バッファサイズＴｂｆｍまで拡張しても満空発生回数がＮ以上の場合は、バッファサイズＴｂｆの自動調整を中止し（Ｓ６）、ユーザは、他の条件に設定し直した上、再度、バッファサイズＴｂｆの自動調整を試みることができる。
【００５１】
〔種々の実施態様〕
以上、この発明の好適な一実施例について説明したが、これは単なる一例であって、この発明は、発明の精神を逸脱しない範囲で種々の変更が可能であり、種々の態様で実施することができる。例えば、実施例では、バッファフルの発生数とバッファエンプティの発生数の両方（満空発生回数）を用いてバッファサイズの調整を行っているが、何れか一方のみを用いるようにしてもよい。
【００５２】
実施例では、バッファサイズ（Ｔｂｆ）の自動調整において、初期バッファサイズ（Ｔｂｆ０）を小さい値に設定して拡張していくようにしたが、初期バッファサイズ（Ｔｂｆ０）をある程度の大きさの値に設定しておき、この値から縮小していくようにしてもよい。この場合は、例えば、所定期間内に、下限閾値（Ｔｈ１）まで減少するか、或いは、上限閾値（Ｔｈ２）まで増大しない場合は、バッファサイズ（Ｔｂｆ）を縮小する等の手法を採用すればよい。また、これらを組み合わせて、バッファフル、バッファエンプティの発生数（満空発生回数）並びに下限及び上限閾値（Ｔｈ１，Ｔｈ２）への到達の有無に応じて、バッファサイズを拡張又は縮小させて自動調整するようにしてもよい。
【符号の説明】
【００５３】
ＴＭ：ＴＭａ〜ＴＭｄ  セッション端末、
ＢＦ，ＳＣ  ［ネットワーク］受信用バッファ及びバッファ管制部、
Ｔｂｆ，Ｔｂｆｍ  バッファサイズ及び最大バッファサイズ、
Ｐｆ，Ｐｅ  バッファの前端及び後端、
Ｔｓ，Ｐｓ  設定遅延量及びバッファの定位置、
Ｔｈ，Ｔｈ２  上限閾値及び下限閾値。
【図１】
2014110526.tif 000003
【図２】
2014110526.tif 000004
【図３】
2014110526.tif 000005
【図４】
2014110526.tif 000006
【図５】
2014110526.tif 000007