(57)【要約】  サンプルのジッター・バッファーのマネージャーが多少攻撃的にジッター・バッファー内のデータの変動量に基づいて、ジッター・バッファー内のデータを保存し（割当て）、又は、廃棄する。ジッター・バッファーのマネージャーはパケット全体よりはむしろ個々のサンプル・データ・ユニットを計数し、供給し、廃棄し、及び（又は）他の方法で管理する。通常、受信器向けのデータ・パケットを満たすためにジッター・バッファーから十分なデータを取出す。しかしながら、ジッター・バッファー内のデータ量が少ない場合、ジッター・バッファーから取出して、パケットに置くデータが少なくなる。そして、パケット内又はジッター・バッファー内のデータの一部を複写してパケットの残りに充填する。ジッター・バッファーを有用な量を超えて充填したとき、ジッター・バッファーは段々に大量になったデータを廃棄し、必ずしも１以上のパケット全体を廃棄することはしない。ジッター・バッファー内でのこの微粒子形のデータ量管理がバッファー・サイズを維持し、受信器へのパケットの着実な流れを供給でき、データによって代表される信号の忠実度に有意な影響を与えず、又、パケットの相互到着時間の変動への影響を緩和する。【特許請求の範囲】
【請求項１】
複数のデータ・グループを受取ること、
受取ったデータの少なくとも一部をバッファー内に記憶すること、
バッファー内のデータ量を検出すること、
バッファー内のデータ量が第一基準に適合する場合、第一部分集合内の少なくとも一部のデータを複写することを含めて、バッファー内のデータの少なくとも第一部分集合を受信部に供給すること、
から成るバッファーを管理する方法。
【請求項２】
バッファー内のデータ量が第二基準に適合している場合、第一部分集合内のデータを複写しないこと、
バッファー内のデータ量が第三基準に適合している場合、第一部分集合内の第一の事前決定されたデータ量を第一の回数複写すること、
から成るデータの少なくとも一部を複写することを特徴とする請求項１の方法。
【請求項３】
第一部分集合内の第一の事前決定されたデータ量を複写することが、第一部分集合内の第一の事前決定されたデータ量を１回複写することであることを特徴とする請求項２の方法。
【請求項４】
第一部分集合内の第一の事前決定されたデータ量を複写することは１バイトを複写することから成ることを特徴とする請求項２の方法。
【請求項５】
第一部分集合内の第一の事前決定されたデータ量を複写することは１サンプルを複写することから成ることを特徴とする請求項２の方法。
【請求項６】
第一部分集合内の第一の事前決定されたデータ量を複写することは１サンプル・データ・ユニットを複写することから成ることを特徴とする請求項２の方法。
【請求項７】
第一部分集合内の第一の事前決定されたデータ量を複写することは第一部分集合内の１バイトのデータを一回複写することから成ることを特徴とする請求項２の方法。
【請求項８】
少なくとも一部のデータを複写することは、さらに、
バッファー内のデータ量が第四基準に適合している場合、第一部分集合内の第一の事前決定されたデータ量を第一の回数より大きな第二の回数複写すること、
から成る請求項２の方法。
【請求項９】
第一部分集合内の第一の事前決定されたデータ量を複写することは、第一部分集合内の第一の事前決定されたデータ量を２回複写することから成ることを特徴とする請求項８の方法。
【請求項１０】
第一部分集合内の第一の事前決定されたデータ量を複写することは、第一部分集合内の１バイトのデータを２回複写することから成ることを特徴とする請求項８の方法。  
【請求項１１】
少なくとも一部のデータを複写することは、さらに、
バッファー内のデータ量が第五基準に適合する場合、第一部分集合内で第一の事前決定されたデータ量より大きな第二の事前決定されたデータ量を複写すること、
であることを特徴とする請求項２の方法。
【請求項１２】
第一部分集合内の第一の事前決定されたデータ量が１バイトから成ることを特徴とする
請求項１１の方法。
【請求項１３】
第一部分集合内の第一の事前決定されたデータ量が１サンプルから成ることを特徴とする請求項１１の方法。
【請求項１４】
第一部分集合内の第一の事前決定されたデータ量が１サンプル・データ・ユニットから成ることを特徴とする請求項１１の方法。
【請求項１５】
データの少なくとも一部を複写することは、
少なくとも１個の重要でないサンプル・データ・ユニットを位置決めすること、
位置決めされた少なくとも１個の重要でないサンプル・データ・ユニットを複写すること、
から成ることを特徴とする請求項１の方法。
【請求項１６】
少なくとも１個の重要でないサンプル・データ・ユニットが事前決定された値を含むことを特徴とする請求項１５の方法。
【請求項１７】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音であることを特徴とする請求項１５の方法。
【請求項１８】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さな部分であることを特徴とする請求項１５の方法。
【請求項１９】
バッファー内の連続的で少なくとも１個の第一部分集合のデータを通常の間隔で供給すること、もし、バッファー内のデータ量が第一基準に適合している場合に、連続的な第一部分集合内の少なくとも一部のデータを複写すること、
からさらに成る請求項１の方法。
【請求項２０】
バッファー内の少なくともひとつの第一部分集合のデータを受信部に供給することは、実時間プロトコールに基づき少なくともひとつの第一部分集合のデータを受信部に送ることからなることを特徴とする請求項１９の方法。
【請求項２１】
バッファー内のデータ量が第六基準に適合している場合、バッファー内の少なくとも一部のデータを廃棄すること、廃棄されたデータ量が受取った複数のデータ・グループのそれぞれのサイズより小さいこと、
からさらに成っている請求項１の方法。
【請求項２２】
廃棄されるデータ量がバッファー内のデータ量によることを特徴とする請求項２１の方法。
【請求項２３】
少なくとも一部のデータを廃棄することが、
バッファー内のデータ量が第七基準に適合する場合、バッファー内のデータを廃棄しないこと、
バッファー内のデータ量が第八基準に適合する場合、バッファーから第三の事前決定されたデータ量を廃棄すること、
から成る請求項２１の方法。
【請求項２４】
バッファーから第三の事前決定されたデータ量を廃棄することが、１バイトを廃棄することから成っている請求項２３の方法。
【請求項２５】
バッファーから第三の事前決定されたデータ量を廃棄することが、１サンプルを廃棄することから成っている請求項２３の方法。
【請求項２６】
バッファーから第三の事前決定されたデータ量を廃棄することが、１サンプル・データ・ユニットを廃棄することから成っている請求項２３の方法。
【請求項２７】
少なくとも一部のデータを廃棄することが、さらに、
バッファー内のデータ量が第九基準に適合する場合、バッファーから第三の事前決定されたデータ量より大きな第四の事前決定されたデータ量を廃棄すること、
から成る請求項２３の方法。
【請求項２８】
バッファー内で第三の事前決定されたデータ量が１バイトから成ることを特徴とする請求項２７の方法。
【請求項２９】
バッファー内で第三の事前決定されたデータ量が１サンプルから成ることを特徴とする請求項２７の方法。
【請求項３０】
バッファー内で第三の事前決定されたデータ量が１サンプル・データ・ユニットから成ることを特徴とする請求項２７の方法。
【請求項３１】
データの少なくとも一部を廃棄することが、
少なくとも１個の重要でないサンプル・データ・ユニットを位置決めすること、
位置決めされた少なくとも１個の重要でないサンプル・データ・ユニットを廃棄すること、
から成ることを特徴とする請求項２１の方法。
【請求項３２】
少なくとも１個の重要でないサンプル・データ・ユニットが事前決定された値を含んでいる請求項３１の方法。
【請求項３３】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音である請求項３１の方法。
【請求項３４】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さな部分である請求項３１の方法。
【請求項３５】
バッファー内で受取ったデータの少なくとも一部を記憶することは、
受取ったデータ・グループのひとつの少なくとも一部が受取ったデータ・グループのひとつを受取る前に受信部に供給されたデータより古い場合、受取ったデータ・グループのひとつの少なくとも一部分を廃棄すること、及び、バッファー内で受取ったデータ・グループのひとつの残りがあればその残りを記憶すること、
から成る請求項１の方法。
【請求項３６】
さらに、
受取ったデータ・グループを解読すること、
から成り、その場合、受取ったデータの少なくとも一部を記憶することはバッファー内で解読したデータを記憶することから成っている請求項１の方法。
【請求項３７】
さらに、受信部にデータを供給する前に受信部に供給されたデータを符号化することから成っている請求項３６の方法。
【請求項３８】
複数のデータ・グループを受取ること、
バッファー内で受取ったデータの少なくとも一部を記憶すること、
バッファー内でデータ量を検出すること、
バッファー内のデータ量が第一基準に適合する場合、バッファー内でデータの少なくとも一部を廃棄すること、廃棄されたデータ量は、複数の受取ったデータ・グループのそれぞれのサイズより小さいこと、
から成っているバッファーを管理する方法。
【請求項３９】
廃棄されるデータ量がバッファー内のデータ量によることを特徴とする請求項３８の方法。
【請求項４０】
データの少なくとも一部を廃棄することは、
バッファー内のデータ量が第二基準に適合している場合、バッファー内のデータを廃棄しないこと、
バッファー内のデータ量の第三基準に適合している場合、バッファーから第三の事前決定されたデータ量を廃棄すること、
から成っている請求項３８の方法。
【請求項４１】
バッファーから第三の事前決定されたデータ量を廃棄することが１バイトを廃棄することから成っている請求項４０の方法。
【請求項４２】
バッファーから第三の事前決定されたデータ量を廃棄することが１サンプルを廃棄することから成っている請求項４０の方法。
【請求項４３】
バッファーから第三の事前決定されたデータ量を廃棄することが１サンプル・データ・ユニットを廃棄することから成っている請求項４０の方法。
【請求項４４】
データの少なくとも一部を廃棄することが、さらに、
バッファー内のデータ量が第四基準に適合している場合、バッファーから第三の事前決定されたデータ量より大きな第四の事前決定されたデータ量を廃棄すること、
から成っている請求項４０の方法。
【請求項４５】
バッファー内の第三の事前決定されたデータ量が１バイトから成っている請求項４４の方法。
【請求項４６】
バッファー内の第三の事前決定されたデータ量が１サンプルから成っている請求項４４の方法。
【請求項４７】
バッファー内の第三の事前決定されたデータ量が１サンプル・データ・ユニットから成っている請求項４４の方法。
【請求項４８】
第四の事前決定された量を廃棄することが、２バイトを廃棄することから成っている請求項４４の方法。
【請求項４９】
第四の事前決定された量を廃棄することが、２サンプル・データ・ユニットを廃棄することから成っている請求項４４の方法。
【請求項５０】
データの少なくとも一部を廃棄することは、
少なくとも１個の重要でないサンプル・データ・ユニットを位置決めすること、
位置決めされた少なくとも１個の重要でないサンプル・データ・ユニットを廃棄するこ
と、
から成ることを特徴とする請求項３８の方法。
【請求項５１】
少なくとも１個の重要でないサンプル・データ・ユニットが事前決定された値を含むことを特徴とする請求項５０の方法。
【請求項５２】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音である請求項５０の方法。
【請求項５３】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さな部分である請求項５０の方法。
【請求項５４】
複数のデータ・グループを受取ること、
受取ったデータの少なくとも一部をバッファー内に記憶すること、
バッファー内のデータ量を検出すること、
バッファー内のデータ量が第一基準に適合する場合、バッファー内のデータの少なくとも一部を複写すること、
から成っているバッファーを管理する方法。
【請求項５５】
複写されたデータ量は、バッファー内のデータ量によることを特徴とする請求項５４の方法。
【請求項５６】
データの少なくとも一部を複写することは１バイトを複写することから成っている請求項５４の方法。
【請求項５７】
データの少なくとも一部を複写することは１サンプルを複写することから成っている請求項５４の方法。
【請求項５８】
データの少なくとも一部を複写することは１サンプル・データ・ユニットを複写することから成っている請求項５４の方法。
【請求項５９】
データの少なくとも一部を複写することは、
少なくとも１個の重要でないサンプル・データ・ユニットを位置決めすること、
位置決めされた少なくとも１個の重要でないサンプル・データ・ユニットを複写すること、
から成る請求項５４の方法。
【請求項６０】
少なくとも１個の重要でないサンプル・データ・ユニットが事前決定された値を含んでいる請求項５９の方法。
【請求項６１】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音である請求項５９の方法。
【請求項６２】
少なくとも１個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さい部分である請求項５９の方法。
【請求項６３】
バッファーを管理する方法で、以下から成る方法：
複数のデータ・グループを受取ること、
受取ったデータの少なくとも一部をバッファー内に記憶すること、
バッファー内のデータ量を検出すること、
受信部にデータを供給することで、以下から成る方法：
バッファー内のデータ量が第一基準に適合する場合、
バッファー内でデータの第一部分を指定すること、
受信部に指定したデータを供給すること、及び、
バッファーのデータ量が第二基準に適合している場合、
バッファー内でデータの第一部分より小さい第二部分を指定すること、
バッファー内でデータの第二指定部分の少なくとも部分集合の第一複写を作成すること、
バッファー内でデータの第二指定部分及び受信部向けの第一複写を受信部に供給すること、
【請求項６４】
受信部にデータを供給することが、さらに、
もしバッファー内のデータ量が第三基準に適合する場合、
バッファー内のデータの第二部分より小さい第三部分を指定すること、
バッファー内のデータの第三指定部分の少なくとも部分集合の第一複写より大きな第二複写を作成すること、
バッファー内のデータの第三指定部分及び第二複写を受信部に供給すること、
から成る請求項６３の方法。
【請求項６５】
さらに、
もし、バッファー内のデータ量が第四基準に適合している場合、バッファー内のデータを廃棄しないこと、
もし、バッファー内のデータ量が第五基準に適合している場合、バッファーから第三の事前決定されたデータ量を廃棄すること、廃棄されるそのデータ量は複数の受取ったデータ・グループのそれぞれのサイズより小さいこと、
から成る請求項６４の方法。
【請求項６６】
さらに、
もし、バッファー内のデータ量が第六基準に適合する場合、第四の事前決定されたデータ量をバッファーから廃棄すること、廃棄されたデータ量は第三の事前決定された量より大きいが、複数の受取ったデータ・グループのそれぞれのサイズより少ないこと、
から成る請求項６５の方法。
【請求項６７】
受信部にデータを供給することは、その受信部にデータ・グループを供給すること、受信部に供給されたデータの各グループが、複数の受取ったデータ・グループのそれぞれと同じデータ量を含むこと、
から成る請求項６６の方法。
【請求項６８】
バッファー内に受取ったデータの少なくとも一部を記憶することは、
もし、受取ったデータ・グループのひとつの少なくとも一部が、受取ったデータ・グループのひとつを受取る前に受信部に供給されたデータより古い場合、受取ったデータ・グループのひとつの少なくとも一部分を廃棄すること、及び、バッファー内で受取ったデータ・グループのひとつの残りがあれば、その残りを記憶すること、
から成っている請求項６７の方法。
【請求項６９】
さらに、
受取ったデータ・グループを解読すること、
その場合、受取ったデータの少なくとも一部を記憶することが、解読したデータをバッファー内に記憶することを含んでいること、
から成る請求項６８の方法。
【請求項７０】
さらに、受信部にデータを供給する前に受信部に供給されたデータのコーディングを行うことから成る請求項６９の方法。
【請求項７１】
バッファーを管理する方法で、
複数のデータ・グループを受取ること、
受取ったデータの少なくとも一部をバッファー内に記憶すること、
バッファー内のデータ量を検出すること、
受信部にデータを供給すること、
から成り、
もし、バッファー内のデータ量が第一基準に適合した場合、
バッファー内のデータの第一部分を指定すること、
指定されたデータを受信部に供給すること、及び、
もし、バッファー内のデータ量が第二基準に適合する場合、
バッファー内でデータの第一部分より小さい第二部分を指定すること、
バッファー内でデータの第三部分を指定すること、
バッファー内の第二及び第三の指定された部分を受信部に供給すること、
その後、バッファー内のデータの第二と指定された部分以外のデータと共に、バッファー内のデータの第三に指定された部分を受信部に供給すること、
から成る方法。
【請求項７２】
さらに、バッファーからデータの第三部分を除去せずに、バッファーからデータの第二部分を除去することから成る請求項７１の方法。
【請求項７３】
受信部にデータを供給すること、さらに、
もし、バッファー内のデータ量が第三基準に適合する場合、
バッファー内のデータの第二部分より小さな第四部分を指定すること、
バッファー内のデータの第五部分を指定すること、
バッファー内のデータの第四及び第五の指定部分を受信部に供給すること、
から成る請求項７１の方法。
【請求項７４】
さらに、
もし、バッファー内のデータ量が第四基準に適合する場合、バッファー内のデータを廃棄しないこと、及び、
もし、バッファー内のデータ量が第五基準に適合する場合、第三の事前決定されたデータ量をバッファーから廃棄すること、廃棄されたデータ量は、複数の受取ったデータ・グループのそれぞれのサイズより小さいこと、
から成る請求項７１の方法。
【請求項７５】
バッファー内の受取ったデータの少なくとも一部を記憶することは、
もし、受取ったデータ・グループのひとつの少なくとも一部が、受取ったデータ・グループのひとつを受取る前に受信部に供給されたデータより古い場合、受取ったデータ・グループのひとつの少なくとも一部を廃棄すること及び受取ったデータ・グループのひとつの残りがあるとすれば、それをバッファー内に記憶すること、
から成る請求項７１の方法。
【発明の詳細な説明】
【関連出願書との相互参照】
【０００１】
本出願書は特許文献１の特典を主張する。
【技術分野】
【０００２】
本発明はコンピュータ・ネットワーク（ｃｏｍｐｕｔｅｒ  ｎｅｔｗｏｒｋ）のジッター・バッファー（ｊｉｔｔｅｒ  ｂｕｆｆｅｒ）に、より特定すれば、ジッター・バッファーが、大きすぎる、又は、小さすぎるサンプル・データ（ｓａｍｐｌｅ  ｄａｔａ）をそれぞれ含んでいるとき、サンプル・データを捨てる又はサンプル・データを複写するジッター・バッファーに関する。
【背景技術】
【０００３】
（ローカル・エリア・ネットワーク（ＬＡＮ）又はインターネットのような）パケット交換ネットワークはインターネット電話、又は、テレビ会議の信号のような音声、画像又は他の連続的信号を運搬するのに使用できる。そのような用途では、典型的にはＲＦＣ３５５０内で記載されている実時間輸送プロトコール（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ：  ＲＴＰ）のようなプロトコールに基づいて、送信部と受信部がお互いに通信する。送信部は固定又は可変の間隔で行う信号サンプリングによるように連続的入力信号をデジタル化する。送信部は受信部にネットワーク上で一連のパケットを送る。各パケットは１以上の離散形信号サンプルを代表するデータを含む。（ある時には、１０ミリ秒のセグメント（ｓｅｇｍｅｎｔ）のような信号のセグメントを代表するデータを「サンプル」という。そのようなサンプルが多くの離散していてデジタル化された数値を含むこともある。離散性のデジタル化した数値をここでは「サンプル」又は「サンプル・データ・ユニット（ｓａｍｐｌｅ  ｄａｔａ  ｕｎｉｔｓ）」と呼ぶ。それは８ビットのバイト（ｂｙｔｅ）又は他のサイズ（ｓｉｚｅ）のデータ・ユニットでありうる。送信部は典型的に規則的な間隔でパケットを送る。受信部は受信したサンプルから連続信号を再構築して、かつ、典型的には、スピーカー（ｓｐｅａｋｅｒ）又はコンピューターのスクリーン（ｓｃｒｅｅｎ）によるように再構築信号を出力する。
【０００４】
選択肢として、送信部は受信部にパケットを送る前にサンプルを圧縮（通常コード（ｃｏｄｅ）とも言う）するために圧縮・解凍（コーデック（ｃｏｄｅｃ））を用いる。送信部がコーデックを用いる場合、受信部は信号を再構築する前にサンプルを解凍（デコード（ｄｅｃｏｄｅ））するのに互換性のあるコーデックを用いる。
【０００５】
送信部と受信部はデータを処理するレート（ｒａｔｅｓ）を支配するためにクロック（ｃｌｏｃｋ）を用いる。しかしながら、これらのクロックは典型的に同期をとっていなくて、一般に種々の速度で動作している。この違いにより送信部が高い頻度又は低い頻度でパケットを送ることがある。受信部の見解としては、それにより、受信部のバッファー（ｂｕｆｆｅｒ）がオーバーフロー（ｏｖｅｒｆｌｏｗ）又はアンダーフロー（ｕｎｄｅｒｆｌｏｗ）になる。さらに、インターネットと多くの他のネットワークは、その上でリアル・タイム・パケット（ｒｅａｌ−ｔｉｍｅ  ｐａｃｋｅｔ）を送り、可変及び予測不能の伝送遅れを導入する。それにより、パケットは受信部のところに可変で予測不能な相互到着時間で到着する。この現象を通常「ジッター（ｊｉｔｔｅｒ）」と云っている。
ジッター・バッファーは伝送部と受信部の間のクロック速度の違いと、パケットの相互到着時間の違いを補償するために普通に用いられる。ジッター・バッファーがいくつかのパケットを含むと、パケットを受信部に固定したレート（ｒａｔｅ）で供給を始める。一般的に、送信部からのパケットがジッター・バッファーに可変レートで到着した場合でも、又は、短期間パケットが到着しない場合でも、ジッター・バッファーの弾性にそのバッ
ファーが固定レートで受信部にパケットを供給を続けることができる。
【０００６】
しかしながら、長期間（例えば、ネットワークが混雑した場合に生じるような）ジッター・バッファーに到着するパケットが無いか又は不十分な場合、バッファーが空になることがある（アンダーフロー）。空になったジッター・バッファーがパケットを受信部に供給できないので、他のパケットが受信部から到着するまでそれ以外では受信部による継続的信号出力で望ましくないギャップ（ｇａｐ）を生じる。そのようなギャップは音響信号では無音として、又は、画像信号では、空白又は「凍結状態」のスクリーン（ｓｃｒｅｅｎ）として明らかになる。
【０００７】
他方、（例えば、混雑していたネットワークが突然繁忙で無くなった場合に生じるように）バッファーが対応できるようになった後の短期間ジッター・バッファーに到着するパケットが多くなる場合、ジッター・バッファーが「オーバーフロー」になって、到着パケットの一部を廃棄する。これにより、サンプルの１以上のパケット全体が喪失する。そうでなければ受信部が連続的信号を出力できる場合に、望ましくない不連続又は「ジャンプ（ｊｕｍｐ）」を生じうる。
【０００８】
いわゆる「適応性」ジッター・バッファーが、パケットの到着レートにより、（限界内で）拡張及び収縮できる。適応性ジッター・バッファーが、固定サイズ（ｓｉｚｅ）のジッター・バッファーと比較し、オーバーフローになる可能性が少ないけれども、適応性ジッター・バッファーはアンダーフローを経験することがあり、受信器による信号出力内に上記のギャップを生じることがある。
【特許文献１】米国暫定特許出願第６０／５５４，０２４号
【発明の開示】
【課題を解決するための手段】
【０００９】
本発明はバッファーのアンダーフロー又はオーバーフローの可能性を低減し、ジッター・バッファーでのパケットの相互到着時間が変動する場合に受信部により生じる信号への影響を緩和するように、ジッター・バッファーを管理するための方法と装置を供給している。本発明の実施例は従来のジッター・バッファーよりも高い解決策を有するジッター・バッファー内でデータを監視し、制御する。例えば、一実施例では、ジッター・バッファーが、パケット全体よりはむしろ個々のバイト、サンプル又は他のサンプル・データ・ユニットのバッファー（ｂｕｆｆｅｒ）処理をし、計数し、供給し、廃棄し、又、他の方法で管理することができる。
【００１０】
通常の環境では、対象のジッター・バッファーが受信部にデータのパケットを供給するために呼出されているとき、データ・パケットを充填するために、ジッター・バッファーから十分なデータが取出される。そして、そのパケットが受信部に供給される。しかしながら、もし、ネットワークの混雑度が一時的にジッター・バッファーへのパケットの送出が中止され、又は、遅らされた場合、又は、他の理由により、ジッター・バッファー内のデータ量が少ないと、ジッター・バッファーから取出され、受信部向けのパケットに置かれるデータが少なくなる。そして、パケットの残りの部分にはパケット内又はジッター・バッファー内のデータの一部を複写して充填される。それゆえ、ジッター・バッファー内で利用可能なデータが「支給されて」多くのパケットに利用可能なデータを「拡げられる」それゆえ、通常環境よりも受信部へのパケットが（データの一部が複写されているけれども）多く供給される。
【００１１】
結果として、ジッター・バッファーは、従来のジッター・バッファー管理に基づくよりは短時間で空になることはない。これにより、受信部へのパケットの流れが安定する。そ
の一方で、ネットワークが混雑を解消するための、及び（又は）ジッター・バッファーが追加のパケットを受信するための時間が追加される。少量のデータ複写は受信部が再生する信号の忠実度に有意な影響を与えない。パケット内の複写されたデータ量対ジッター・バッファーから取出されたデータ量の比は、パケットが受信部に供給される都度、ジッター・バッファー内のデータ量に基づいて、ダイナミック（ｄｙｎａｍｉｃａｌｌｙ）に調整できる。それゆえ、ジッター・バッファー内のデータ量が減少すると共に、入手可能なデータを拡げられたパケット数が多くなる。そして、ジッター・バッファー内のデータ量が増大すると共に、受信部に供給された各パケットのためにジッター・バッファーから取出されたデータが多くなる（パケット全体になるまで）。
【００１２】
他方、ジッター・バッファーが有用なレベル（ｌｅｖｅｌ）を越えて充填された場合、ジッター・バッファーが捨てるデータ量が段々に多くなるが、必ずしも、１以上のパケット全体に価するデータを捨てるのではない。例えば、１以上のサンプル・データ・ユニットをパケットが受信部に供給された都度、及び（又は）、他の時点で廃棄できる。パケット全体の代わりに少量のサンプル・データを廃棄することは、信号の大きな不連続が生じるのを避けられる。さらに、ジッター・バッファー内の種々の位置のデータを選択して廃棄できる。それにより、信号の有意な不連続を避けることができる。
【００１３】
それゆえ、本発明の実施例では、多少積極的にジッター・バッファー内のデータの保存（支給）又は廃棄をジッター・バッファー内のデータ量の変動に基づいて行なう。このジッター・バッファー内のデータ量の微粒子形管理が、バッファーのサイズ（ｓｉｚｅ）を受信部へのパケットの流れを安定化できるように維持して、過度の保存能力を必要とせず、かつ、信号の忠実度に有意に影響しないですむ。
【００１４】
本発明のこれら及び他の特徴、利点、側面及び実施例が、以下に示す本発明の詳細説明から当業界の技術者には明らかになるであろう。
【００１５】
本発明の詳細説明を添付図面と関連させて参照することにより完全に理解されよう。
【実施例１】
【００１６】
特許文献１の内容は参照用として本明細書に含まれている。
【００１７】
バッファーのアンダーフロー又はオーバーフローの可能性を低くくして、ジッター・バッファーでのパケットの相互到着時間が変動する場合に受信部が作成する信号への影響を緩和する方法でジッター・バッファーを管理するための方法と装置がここに記載されている。ここで開示されたシステムは、従来のジッター・バッファー内よりも高い解決策を持ってサンプル・ジッター・バッファー内のデータを監視し、制御する。例えば、開示されたサンプル・ジッター・バッファーは、パケット全体の代わりに、個々のバイト、サンプル又は他のサンプル・データ・ユニットについてバッファー処理をし、計数し、供給し、廃棄し、及び、他の方法の管理をすることができる。本発明に基づくジッター・バッファーをここでは「サンプル・ジッター・バッファー」という。
【００１８】
図１は、サンプル・ジッター・バッファー１００ａの一実施例を使用できる例示的システムを示している。この実施例では、サンプル・ジッター・バッファー１００ａが受信部１０２の一部である。送信部１０４は連続的入力信号（図示せず）をデジタル化して、入力信号のデジタル化サンプルを含む一連のパケットをネットワーク１０６上を典型的には実時間プロトコールに基づいて受信部１０２に送信する。サンプル・ジッター・バッファー１００ａがパケット（データのグループ）を受信し、そのパケットからのデジタル化されたサンプル（データ）のバッファー処理をする。
【００１９】
この実施例で、受信部１０２はアプリケーション１０８を含む。そのサンプル・ジッター・バッファー１００ａが通常の時間的間隔で、又は、請求があれば、アプリケーション１０８にデータを供給する。送信部１０４により送られたのと同サイズであるパケット内で、必要な場合は他のサイズのパケットで、アプリケーション１０８にデータを供給できる。代わりに、「未加工の」フォーマット（ｆｏｒｍａｔ）即ちデータをパッケージ化していないでアプリケーション１０８にデータを供給できる。送信部１０４と通信するのに用いられた実時間プロトコールに基づいてアプリケーション１０８にデータを供給する。又は、異なるプロトコールを使用できる。
【００２０】
図２はサンプル・ジッター・バッファー１００ｂの他の実施例を使用できる例示的手順を示している。この実施例で、サンプル・ジッター・バッファー１００ｂはネットワーク１０６と受信部１０２の間に介入する。サンプル・ジッター・バッファー１００ｂを直接に（図示せず）受信部１０２に直接接続（図示せず）するか、又は、（図２に示すように）低ジッター・ネットワーク経由のようなネットワーク２００経由で接続できる。この実施例では、サンプル・ジッター・バッファー１００ｂが受信部１０２に送出部１０４により送られたパケットと同じサイズであるパケットを、送出部１０４が用いるのと同じ実時間プロトコールを用いて受信部１０２に送る。代わりに、サンプル・ジッター・バッファー１００ｂが受信部１０２に他のサイズのパケットを送ることができ、及び（又は）、異なるプロトコールを用いて受信部と通信をする。
【００２１】
いずれかの実施例でも、送信部１０４は、サンプル・ジッター・バッファー１００ａ又はサンプル・ジッター・バッファー１００ｂ（以後、集合的にサンプル・ジッター・バッファー１００と云う）に圧縮データを含むパケットを送る前に送信部１０４はサンプル・データを圧縮（コード化）できる。これらの事例では、以下で詳細に説明しているように、データのバッファー処理の前に、サンプル・ジッター・バッファー１００がデータを解凍（コード解読）を行う。選択肢として、（圧縮された）データをアプリケーション１０８（図１）に、又は、適用できる場合、受信部１０２（図２）に供給する前に、サンプル・ジッター・バッファー１００がデータを圧縮する。
【００２２】
気付かれたように、開示されたシステムが、従来のジッター・バッファーより高い解決策を持つサンプル・ジッター・バッファー内のデータを監視し、又、制御する。例えば、サンプル・ジッター・バッファーが、パケット全体の代わりに、個々のバイト、サンプル又は他のサンプル・データ・ユニットのバッファー処理をし、計数を行い、供給し、廃棄し、又、他の形で管理する。サンプル・ジッター・バッファーがデータのパケットを受取るとき、パケットとしてではなく、サンプル・ジッター・バッファーがパケット（必要ならデータを解凍して）からデータを抽出して、そのサンプル・データ・ユニットを個々に扱う。
【００２３】
図３は、サンプル・ジッター・バッファー１００のブロック線図であり、サンプル・ジッター・バッファーが行う操作の一部を示している。サンプル・ジッター・バッファー１００は、先入れ先出しの弾性的在庫管理（ｆｉｒｓｔ−ｉｎ／ｆｉｒｓｔ  ｏｕｔ：  ＦＩＦＯ）３００及びジッター・バッファーのマネージャー３０２を含んでいる。以下で詳細に論じているように、リング・バッファー（ｒｉｎｇ  ｂｕｆｆｅｒ）を用いて、又は、他の適当なソフトウエア又はハードウエア構成を用いて、ＦＩＦＯ３００を実施しうる。ＦＩＦＯ  ３００の各セル（ｃｅｌｌ）がひとつのサンプル・データ・ユニットを蓄積できる。ディメンジョン（ｄｉｍｅｎｓｉｏｎ）Ｎが現在ＦＩＦＯ  ３００内に現在記憶されているサンプル・データの数を示している。
【００２４】
サンプル・ジッター・バッファー１００がパケット３０４のようなパケットを受取るとき、パケットのサンプル・データ３０６がＦＩＦＯ３００に追加される。図４に示すよう
に、受取ったサンプル・データ３０６ａが送信部１０４により圧縮されている（コード化されている）場合、受取ったサンプル・データ３０６ａをＦＩＦＯ３００に加える前に解凍（コード化解消）するために適当なコーディック（ｃｏｄｅｃ）４００を用いている。解凍されたデータ及びある種の圧縮アルゴリズム（ａｌｇｏｒｉｔｈｍｓ）（Ｇ．７２６及びＧ．７２９のような）が単位時間の入力信号当たり固定された数のサンプル・データを生じる。他の圧縮アルゴリズム（ＡＭＲとＭＰ３）が単位時間の入力信号当たり可変数のサンプル・データ・ユニットを生じる。それゆえ、それぞれの受取ったパケット３０４は典型的に固定された量（時間内の）の入力信号を示す。パケット３０４内のサンプル・データ・ユニットの数はパケットごとに異なる場合がある。
【００２５】
一般に、新たに到着したサンプル・データ・ユニットがＦＩＦＯ３００のテイル（ｔａｉｌ）３００に加えられる。しかしながら、種々のパケットが採用する種々のネットワーク通路、又は、他のネットワーク・ルーティング（ｎｅｔｗｏｒｋ  ｒｏｕｔｉｎｇ）異常により、ある場合にパケットの到着順序が狂う。ジッター・バッファーのマネージャー３０２はパケットのシーケンス（ｓｅｑｕｅｎｃｅ）番号３１０，タイム・スタンプ（ｔｉｍｅ  ｓｔａｍｐ）３１２又は新たに到着したパケット３０４の到着順序が正常（又は異常）かどうかを決定するための適当な方法を使用できる。パケット３０４の順序が異常の場合、ジッター・バッファーのマネージャー３０２は受取ったサンプル・データ３０６（又は解凍されて受取ったサンプル・データ３０６ａ）をＦＩＦＯ３００のテイル３０８に追加しない。代わりにジッター・バッファーのマネージャー３０２はパケットのタイムスタンプ（ｔｉｍｅｓｔａｍｐ）３１２及び（又は）シーケンス番号３１０を用いて、ＦＩＦＯ３００内の適当な時間ベースの位置に（必要な場合は解凍して）受取ったサンプル・データ３０６ａを挿入する。即ち、受取ったサンプル・データ３０６ａの挿入位置は、その受取ったサンプル・データ３０６ａのタイムスタンプより前の数のタイムスタンプを有するＦＩＦＯ３００内のサンプル・データとその受取ったサンプル・データのタイムスタンプより後のタイムスタンプを有するＦＩＦＯ３００内の他のサンプル・データの間である。それゆえ、サンプル・データはＦＩＦＯ３００内にタイムスタンプの順番で記憶され、ＦＩＦＯのヘッド３１４に最古の（最小の数のタイムスタンプ）サンプルデータがあり、最新の（最大の数のタイムスタンプ）サンプル・データはＦＩＦＯのテイル３０８にある。
【００２６】
パケット３０４がタイムスタンプを含まない場合、受取ったサンプル・データ３０６ａを時間順にＦＩＦＯ３００に正しく配置するのに適当な方法を使用できる。例えば、タイムスタンプを合成できる。各パケットが入力信号の固定長（時間）セグメント（ｓｅｇｍｅｎｔ）を代表する場合、パケット３０４に対するタイムスタンプをパケットのシーケンス番号３１０にパケットが代表する入力信号のセグメントの（時間内の）長さを乗ずることにより計算できる。各パケット３０４が入力の可変長セグメントを代表する場合、パケット内のサンプル・データ３０６ａを解凍（コード解読）して、一連のサンプル・データ・ユニットを生じる。各サンプル・データ・ユニットは入力信号の固定長（時間）のセグメントを代表する。この場合、パケット３０４に対するタイプスタンプはこれらのサンプル・データ・ユニットの数に各サンプル・データ・ユニットとパケットのシーケンス番号３１０により代表される入力信号のセグメントの長さ（時間表示）を乗じることにより計算される。
【００２７】
例えば、サンプル・データ３０６が非圧縮である場合、又は、サンプル・データが入力信号の時間単位当たり固定数のサンプル・データ・ユニットを生じるアルゴリズムに基づいて圧縮される場合、タイムスタンプは、パケットのシーケンス番号３１０に、サンプル・データ３０６により代表される入力信号のセグメントの（時間単位の）長さを乗ずることにより計算できる。
【００２８】
同様に、タイムスタンプは、受信したサンプル・データ内のサンプル・データ・ユニットの位置を用いることにより、受信したサンプル・データ３０６内の各サンプル・データ・ユニットについて計算できる（又は、受信したサンプル・データ３０６ａが解凍されていれば、解凍されたサンプル・データのセット（ｓｅｔ）内での解凍されたサンプル・データ・ユニットの位置）。選択肢として、ＦＩＦＯ３００の各セルも、対応するサンプル・データ・ユニットに対するタイムスタンプを記憶している。
【００２９】
サンプル・ジッター・バッファー１００はアプリケーション１０８又は受信部１０２に対するサンプル・データ３１６を、規則的な時間間隔で、又は、請求時に供給する。気付かれたように、サンプル・データ３１６は未加工のフォーマットで、又は、特注のパケット３１８で供給できる。どの場合も、ディメンジョンＳが、サンプル・データ・バッファー１００により供給された（必要なら圧縮前の）サンプル・データ・ユニットの数を示している。一般的に、Ｓ個のサンプル・データ・ユニットがＦＩＦＯ３００のヘッド３１４から除去される。しかしながら、以下で論じるように、Ｓより多いか、又は少ないサンプル・データ・ユニットをＦＩＦＯ３００のヘッド３１４から除去することができる。ジッター・バッファーのマネージャー３０２が受信部１０２に供給された最後のサンプル・データ・ユニットのタイムスタンプ３２０を維持している。サンプル・ジッター・バッファー１００がサンプル・データ３１６を受信部１０２に供給されるごとに、タイムスタンプ３２０が更新される。
【００３０】
受信したパケット３０４内のサンプル・データ３０６ａの一部又は全部がサンプル・ジッター・バッファー１００に到着したが、受信部１０２に供給するには遅すぎることがある。サンプル・データ・ユニットがサンプル・ジッター・バッファー１００に到着したが、サンプル・ジッター・バッファーがその新たに到着したサンプル・データ・ユニットより新しい（大きな数のタイムスタンプを有する）サンプル・データ・ユニットを受信部１０２に既に供給している場合、新しく到着したサンプル・データ・ユニットはＦＩＦＯ３００に追加されない。代わりに、新たに到着したサンプル・データ・ユニットと、同じ受信したパケット３０４内の古いサンプル・データ・ユニットが廃棄される。例えば、新たに受信したパケット３０４が間違った順序で到着した場合、ＦＩＦＯ３００が早い時期に保存していた新しいデータを有する。そして、サンプル・ジッター・バッファー１００は既に受信部１０２にその新しいサンプル・データ３０６ａを供給している。即ち、サンプル・データが新しく受信したサンプル・データ３０６ａより大きな数のタイムスタンプを有している。（サンプル・ジッター・バッファー１００に到着したサンプル・データが受信部に供給するには遅すぎる場合、本明細書では「遅延データ」と云う。）
サンプル・ジッター・バッファー１００がパケット３０４を受信したとき、ジッター・バッファーのマネージャー３０２は、受信部１０２に供給された最後のサンプル・データ・ユニットのタイムスタンプ３２０と受信したサンプル・データ３０６ａのタイムスタンプを調査して、遅延データがある場合、どれだけの受信したサンプル・データが遅延データであるかを確認する。遅延データは廃棄され、その遅延データをＦＩＦＯ３００に追加しない。残りの受信したサンプル・データ３０６ａが、ＦＩＦＯ３００内の正しい時間ベースの位置に置かれる。
【００３１】
サンプル・ジッター・バッファー１００は未加工の（パッケージ化されていない）データを受信部１０２に供給できるけれども、以下の説明では簡略化するために、データはパケット内に入って受信部に供給されるとして示されている。一般的に受信部１０２に供給されたデータ量３１６はパケット間で一定のままである。即ち、非圧縮のデータと固定レートの圧縮アルゴリズムに対して、各パケットごとに受信部１０２に固定した数のサンプル・データ・ユニットが供給される（又は、圧縮されて、供給される）。可変レートの圧縮アルゴリズムの場合、信号の固定した長さ（時間）のセグメントを受信部１０２に供給するように十分なサンプル・データ・ユニットが圧縮される。気付かれたように、可変レ
ートの圧縮アルゴリズムの場合、受信部１０２に向けた信号の固定長（時間）セグメントを生じるのに必要なサンプル・データ・ユニットの数はパケットごとに変化する。選択肢として、ＦＩＦＯ３００は受信部１０２向けのパケット内で可変データ量３１６を供給できる。
【００３２】
一般的に、受信部１０２向けのパケット内で供給されるデータ量は送信部１０４からのパケット内で受取るデータ量と同じである。即ち、受信部１０２に送られるパケットにより代表される信号の部分の長さ（期間）は、送信部１０４から受取ったパケットにより代表される信号の部分の長さ（期間）は同じである。代わりに、受信部１０２向けのパケットで供給されるデータ量は送信部１０４からのパケットで受取ったデータ量とは異なることがある。
【００３３】
受信部１０２向けのパケットを作るのに必要なサンプル・データ・ユニットの数は、ここではＳと称するが、そのデータが非圧縮か、固定レートの圧縮アルゴリズム又は可変レートの圧縮アルゴリズムに基づく圧縮かに無関係である。それにより、Ｓ個のサンプル・データ・ユニットが受信部１０２のためのパケットを作るのに用いられる。ただし、Ｓの実際の値はパケットごとに異なる。しかしながら、ＦＩＦＯ３００内のサンプル・データ・ユニットの数Ｎにより、丁度のＳ、Ｓ超過、又は、Ｓ未満のサンプル・データ・ユニットをＦＩＦＯ３００から除去して、受信部１０２向けのパケットを作成する。
【００３４】
一実施例の動作が図５−７に示されているが、ＦＩＦＯ３００内のサンプル・データ・ユニットの希望数Ｄが決定される。一実施例では、Ｄは受信部の自然のパケット・サイズの整数倍である。代わりに、乗数は整数である必要はない。期待値又は実際に測定されたネットワーク１０６のジッター・レートに基づいて、又は、他の適当な方法により、乗数を選択できる。乗数は静的又は動的としうる。図５に示すように、ＦＩＦＯ３００がＤ個のサンプル・データ・ユニットを含む場合、ジッター・バッファーのマネージャー３０２がＦＩＦＯ３００のヘッド３１４からＳ個のサンプル・データ・ユニットを除去する。ジッター・バッファーのマネージャー３０２が（必要な場合）圧縮し、これらのＳ個のサンプル・データ・ユニットを受信部１０２に供給する。
【００３５】
図６に示すように、ＦＩＦＯ３００がＤ個未満のサンプル・データ・ユニットを含む場合、ジッター・バッファーのマネージャー３０２がＦＩＦＯ３００のヘッド３１４からＳ未満のサンプル・データ・ユニットを除去する。例えば、Ｓより１個少ないサンプル・データ・ユニットを除去する。ジッター・バッファーのマネージャー３０２がＦＩＦＯ３００から除去されたサンプル・データ・ユニットのひとつ（Ｓ−１）を複写する。即ち、６００及び６０２で示されているように、ジッター・バッファーのマネージャーがサンプル・データ・ユニット（Ｓ−１）を２回受信者に供給した（圧縮がある場合と無い場合）。複写されたサンプル・データ・ユニット６０２は「加えられた」サンプル・データ・ユニットという。複写されたサンプル・データ・ユニット６０２は、サンプル・データ・ユニットのタイムスタンプが最も近くになる位置に挿入される。
【００３６】
それゆえ、パケット１個分のデータが受信部１０２に供給されるけれども、パケット１個未満のデータがＦＩＦＯ３００から除去される。これでＦＩＦＯ３００の利用できるサンプル・データ・ユニットを多数のパケットに支給される（拡げられる）。少量のデータ複写（即ち、追加されたサンプル・データ・ユニット６０２）は受信部１０２により作成された新語の忠実度に有意な影響を与えない。
【００３７】
代わりに、ＦＩＦＯ３００から除去されたサンプル・データ・ユニットのひとつを複写する代わりに、依然としてＦＩＦＯ内にあるサンプル・データ・ユニットを複写でき、追加されたサンプル・データ・ユニットとして使用できる。例えば、サンプル・データ・ユ
ニット１，２，３，・・・（Ｓ−１）がＦＩＦＯ３００から除去された後で、サンプル・データ・ユニットＨはＦＩＦＯのヘッド３１４にある。サンプル・データ・ユニットＨを複写して受信部１０２に（圧縮付き又は無しで）サンプル・データ・ユニットＨをＦＩＦＯ３００から除去しないで供給する。追加されたサンプル・データ・ユニット６０４がそのサンプル・データ・ユニットのタイムスタンプに最も近い位置でパケット内に挿入される。この場合、サンプル・データ・ユニットＨがその後のパケット内で受信部１０２にも供給される。それゆえ、１個のパケット内の受信部１０２にも供給されたデータ６０６が１個のサンプル・データ・ユニットの２個の複写を含まないけれども、ＦＩＦＯ３００内のサンプル・データ・ユニットの部分集合が受信部に供給される。そして、少なくとも１個のサンプル・データ・ユニットＨが受信部に供給された２以上の連続的パケットのコース（ｃｏｕｒｓｅ）上で複写する。「複写する（Ｒｅｐｅａｔｉｎｇ）」データとは、そのデータが１個のパケット内で複写するか、２個以上のパケットのコース上で複写されるかには関係なく、１回を超えてデータが供給されることを意味する。
【００３８】
図７で示されるように、ＦＩＦＯ３００がＤより多いサンプル・データ・ユニットを含む場合、ジッター・バッファーのマネージャー３０２がＳより多いサンプル・データ・ユニットをＦＩＦＯ３００のヘッド３１４から除去する。例えば、Ｓより多くなる１個のサンプル・データ・ユニットが除去される。ジッター・バッファーのマネージャーが除去されたサンプル・データ・ユニットの１個を廃棄する。Ｓ個のサンプル・データ・ユニットが受信部１０２に（圧縮がある場合又は無い場合に）供給される。それゆえ、パケット１個分のデータが受信部１０２に供給される。そして、１個のサンプル・データ・ユニットが廃棄される。１個のサンプル・データ・ユニットの喪失は受信部１０２により作成された信号の忠実度に有意な影響を与えない。さらに、ＦＩＦＯ３００内のサンプル・データ・ユニットの数はパケット１個分のデータを廃棄しないで、好ましい値を維持できる。
【００３９】
それゆえ、Ｄは事前決定されたしきい値であると考えられる。さらに、ＦＩＦＯ３００がＤ個のサンプル・データ・ユニットを含む場合、ＦＩＦＯは基準に適合していると考えられる。ＦＩＦＯ３００がＤより少ないサンプル・データ・ユニットを含む場合、ＦＩＦＯは他の基準に適合していると考えることができる。同様に、ＦＩＦＯ３００がＤより多いサンプル・データ・ユニットを含む場合、ＦＩＦＯはまだ他の基準に適合していると考えることができる。
【００４０】
選択肢として、図８に示すように、ＦＩＦＯ３００がＤより有意に少ないサンプル・データ・ユニットを含んでいる場合、（例えば、ＦＩＦＯがＤより２個少ないサンプル・データ・ユニット又はＤの８０％より少ないサンプル・データ・ユニットを含む場合、）ＦＩＦＯ３００のヘッド３１４から除去されるサンプル・データ・ユニットが、図６に示すより少ない。例えば、Ｓより２個少ないサンプル・データ・ユニットは除去される。ＦＩＦＯ３００から除去されたサンプル・データ・ユニットのひとつ（Ｓ−２）が２回複写された。即ち、８００、８０２、８０４と示すように、受信部１０２に（圧縮がある場合と無い場合に）３回供給された。この例では、Ｄより２個少ないが、別の事前決定されたしきい値Ｔ（ＬＬ）と考えることができる。そして、ＦＩＦＯ３００がＴ（ＬＬ）より少ないサンプル・データ・ユニットを含む場合、ＦＩＦＯが基準に適合すると考えられる。
【００４１】
代わりに、ＦＩＦＯ３００から除去された（（ｓ−３）と（ｓ−２）のような）２個の個別サンプル・データ・ユニットのそれぞれが複写できる。即ち、受信部１０２への（圧縮がある場合と無い場合の）２回がそれぞれ供給される。代わりに、ＦＩＦＯ３００から除去されたサンプル・データ・ユニットを２回複写する代わりにＦＩＦＯに依然として存在する１以上のサンプル・データ・ユニットを複写でき、追加されたサンプル・データ・ユニットとして使用できる。又は、ＦＩＦＯから除去されたサンプル・データ・ユニットとＦＩＦＯ内に依然として存在しているサンプル・データ・ユニットの組合わせを複写し
、追加されたサンプル・データ・ユニットとして使用できる。
【００４２】
図７を参照して上記と類似した方法で、ＦＩＦＯ３００がＤより有意に多いサンプル・データ・ユニットを含んでいる場合（例えば、ＦＩＦＯがＤより２個多いサンプル・データ・ユニット、又は、Ｄの１２０％より多いサンプル・データ・ユニットを含む場合）、図７に示すよりもＦＩＦＯ３００のヘッド３１４から除去されるサンプル・データ・ユニットが多くなる。例えば、Ｓより２個多いサンプル・データ・ユニットが除去される。２個のサンプル・データ・ユニットが除去される。そして、Ｓ個のサンプル・データ・ユニットが受信部１０２に供給される。この例では、Ｄより２個多いことは別の事前決定されたしきい値Ｔ（ＨＨ）と見なされる可能性がある。
【００４３】
代わりに、又は、追加的に、サンプル・データ・ユニットは別の時点で、ＦＩＦＯ３００から除去されることがありうる。例えば、定期的に、又は、パケットを送信部１０４から受取ったとき、ジッター・バッファーのマネージャー３０２がＦＩＦＯ３００内のサンプル・データ・ユニットの数Ｎを確認できて、適当な場合、１以上のサンプル・データ・ユニットを廃棄する。
【００４４】
サンプル・ジッター・バッファー１００の機能を１個又は２個のサンプル・データ・ユニットの複写又は廃棄という立場で説明したけれども、サンプル・データ・ユニットの５及び１０のような他の数字も複写又は廃棄されることがある。ＦＩＦＯ３００から廃棄されるサンプル・データ・ユニットの数は、ＦＩＳＯ内に現在あるサンプル・データ・ユニットの数Ｎにもよる。さらに、廃棄されたサンプル・データ・ユニットは信号に大きな不連続性を生じるのを避けるために、ＦＩＦＯ３００内の種々の位置から除去できる。
【００４５】
図５−７を参照して述べた例では、ＦＩＦＯ３００内で望ましいサンプル・データ・ユニットの数は１個の数（しきい値）Ｄである。ＦＩＦＯ３００内でサンプル・データ・ユニットの実際の数字ＮがＤより多いか、少ない場合、１以上のサンプル・データ・ユニットが廃棄されるか又は複写される。他の実施例では、ＦＩＦＯ３００内のサンプル・データ・ユニットについて低しきい値Ｔ（Ｌ）と高しきい値Ｔ（Ｈ）を定義するように、ある範囲の望ましい数を定義できる。そのような実施例では、ＦＩＦＯ３００内のサンプル・データ・ユニットの数がＴ（Ｌ）とＴ（Ｈ）の間にある場合、Ｓ個のサンプル・データ・ユニットがＦＩＦＯのヘッド３１４から除去されて、受信部１０２に供給される。
【００４６】
ＦＩＦＯ３００内のサンプル・データ・ユニットの数がＴ（Ｌ）未満である場合、１以上のサンプル・データ・ユニットが複写される。又、ＦＩＦＯ内のサンプル・データ・ユニットの数がＴ（Ｈ）より上である場合、１以上のサンプル・データ・ユニットが廃棄される。同様に、図７及び８に関連して記載された例で、Ｄより有意に少ないサンプル・データ・ユニットを代表するしきい値Ｔ（ＬＬ）とＤより有意に多いサンプル・データ・ユニットを代表するしきい値Ｔ（ＨＨ）をＴ（Ｌ）とＴ（Ｈ）に置換えて定義できる。選択肢として、Ｔ（ＨＨ）及びＴ（ＬＬ）よりそれぞれ上及び下の追加しきい値を定義できる。ＦＩＦＯ３００が追加しきい値より多い又は少ないサンプル・データ・ユニットを含む場合、それでも多いサンプル・データ・ユニットを廃棄又は複写できる。ＦＩＦＯ３００がこれらのしきい値の最小又は最大より多い、又は、少なく含んでいる場合、ＦＩＦＯはそれぞれの基準に適合していると見なすことができる。
【００４７】
選択肢として、サンプル・データ・ユニットを廃棄又は複写すべきときに、ＦＩＦＯ３００が、無音（音響信号内で）又は他の事前定義された値（画像信号の真っ黒又は真っ白のフレーム（ｆｒａｍｅ）のような）を代表するサンプル・データ・ユニット、一組の同一のものとして接近し合ったサンプル・データ・ユニット又は一群のサンプル・データ・ユニット（画像信号の不変化場面の一組の接近した不変化フレームのようなもの）又は信
号の他の不変化又は最小変化の部分（以後、集合的に「重要でないサンプル・データ・ユニット」という。）「最小変化」とは例えば隣接するサンプル・データ・ユニット、サンプル、フレーム等の間の事前決定されている最大の差により定義しうる。１以上のサンプル・データ・ユニットが廃棄される場合、システムは優先的に適当な数の重要でないサンプル・データ・ユニットを廃棄する。結果として、信号の比較的重要でない部分が廃棄される。そして、信号の意味のある内容の多くが保存される。１以上のサンプル・データ・ユニットが複写される場合、システムは優先的に適当な数の重要でないサンプル・データ・ユニットを複写する。結果的に、信号の追加された部分は比較的目立たない。
【００４８】
図７に関連して論じたように、サンプル・データ・ユニットはＦＩＦＯ３００のヘッド３１４から廃棄される。代わりに、又は、追加的に、重要でないサンプル・データ・ユニットのようなサンプル・データ・ユニットがＦＩＦＯ３００内の任意の位置から廃棄される。例えば、サンプル・データ・ユニットの廃棄は、図７に示すように、必ずしもＦＩＦＯのヘッドから除去された第一のサンプル・データ・ユニット（Ｓ＋１）からではく、受信部１０２に送るために、ＦＩＦＯ３００のヘッド３１４から除去されたサンプル・データ・ユニットのセット内の任意の位置から行われる。サンプル・データ・ユニットの除去は、受信部１０２に送るためのＦＩＦＯ３００のヘッド３１４から除去されたサンプル・データ・ユニットのセットからでは必ずしもなくて、１以上の重要でないサンプル・データ・ユニットを含むＦＩＦＯの一部分のようなＦＩＦＯ３００の中間部又はテイル３０８から行なえる。気付かれたように、サンプル・データ・ユニットの廃棄は、受信部１０２に送るためにＦＩＦＯ３００からサンプル・データ・ユニットの除去をするときのみでは必ずしも無く、任意の時点で行なえる。同様に重要でないサンプル・データ・ユニットのようなサンプル・データ・ユニットの複写は、ＦＩＦＯ３００内、又は、受信部１０２に送るためのＦＩＦＯのヘッド３１４から除去されたサンプル・データ・ユニット内の任意の位置で行なえる。さらに、サンプル・データ・ユニットをＦＩＦＯ３００内でいつでも複写できる。
【００４９】
気付かれたように、ＦＩＦＯ３００は循環バッファーとして、又は他の適当なハードウエア又はソフトウエアの構成で実施できる。図９−１１は循環バッファー９００としてＦＩＦＯ３００の一実施例を示している。図９に示すように、循環バッファー９００には事前決定されたセル数９０２が含まれている。セル数９０２は固定又は動的にしうる。セル９０２の一部又は全部がサンプル・データ・ユニットにより占められている。サンプル・データ・ユニットにより占められる。循環バッファー９００内のセル９０２の最大数が「バッファー・リミット」９０４により代表されている。バッファー・リミット９０４はネットワーク１０６内で測定されたジッターに応じた場合のように、必要に応じて、増減できる。複写及び（又は）廃棄されるサンプル・データ・ユニットの数は受信部１０２の要求による期間又はサービスの質による。
【００５０】
循環バッファー９００の占められたセルがＦＩＦＯ３００を構成する。ＦＩＦＯ３００のヘッド３１４は「ネキスト・アウト・ポインター（ｎｅｘｔ  ｏｕｔ  ｐｏｉｎｔｅｒ）」９０６により示されている。ＦＩＦＯ３００が１以上のサンプル・データ・ユニットを供給するために呼出されたとき、ネキスト・アウト・ポインター９０６がＦＩＦＯから除去された第一サンプル・データ・ユニットを位置決めするのに用いる。サンプル・データ・ユニットがＦＩＦＯ３００から除去されるので、ネキスト・アウト・ポインター９０６がＦＩＦＯの新ヘッドを指定するために送られる。
【００５１】
「ネキスト・イン・ポインター（ｎｅｘｔ  ｉｎ  ｐｏｉｎｔｅｒ）」９０８は循環バッファー９００内で次ぎに利用できるセルを示す。サンプル・データ・ユニットをＦＩＦＯ３００に加えるべきときに、ネキスト・イン・ポインター９０８は循環バッファー９００内で最初に利用可能なセルの位置決めに用いられる。サンプル・データ・ユニットがＦ
ＩＦＯ３００のテイル３０８に加えられるので、ネキスト・イン・ポインター９０８が送られる。
【００５２】
ネキスト・アウト・ポインター９０６又はネキスト・イン・ポインター９０８のどちらかがバッファー・リミット９０４に達すると、ポインターは循環バッファー９００の第一セル９１０に「巻き戻る」。ＦＩＦＯ３００が完全に空になったことはネキスト・アウト・ポインター９０６とネキスト・イン・ポインター９０８が同じ値になることにより示されている。同様に、ＦＩＦＯが完全に充填されていることはネキスト・アウト・ポインター９０６とネキスト・イン・ポインター９０８が同じ値になることにより示されている。それゆえ、「バッファー・フル・フラッグ（ｂｕｆｆｅｒ  ｆｕｌｌ  ｆｌａｇ）」９１２はこれらの両方の場合を区別するために用いられる。
【００５３】
図１０に示すように、ＦＩＦＯ３００が容量一杯又はほぼ一杯になると、バッファー・リミット９０４を新しい値９０４ａに上昇して、図１１に示すように、ＦＩＦＯのために利用できるセル１１００を多くする。
【００５４】
バッファー・リミット９０４ａが上昇した後で、図１１に示すように、ＦＩＦＯ３００のテイル３０８とテイルに隣接している一部のサンプル・データ・ユニット１０００を移動する必要があるだろう。
【００５５】
例示的実施例はインターネット電話、テレビ会議及び実時間輸送プロトコール（ＲＴＰ）を参照して説明しているが、セルラー電話ネットワーク及びＧｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ（ＧＳＭ）のように、他の実施例が他のパケット化媒体、信号、ネットワーク及びプロトコールと使用できる。
【００５６】
上記の機能は、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリー・メモリー（ＲＯＭ）、フラッシュ・メモリー、制御用ソフトウエア又は他の命令及びデータを記憶するのに適当な他のメモリーのようなメモリーに記憶された命令を実行する中央処理装置（ＣＰＵ）により実行できる。本発明の機能を定義する命令又はプログラムを多くの形でプロセッサーに送出できることは当業界の技術者であれば容易に理解しよう。プロセッサーは、書込み不能記憶媒体（例えば、コンピューターのＩ／Ｏアタッチメントにより読取り可能なＲＯＭ又はＣＤ−ＲＯＭディスクのようなコンピューター内の読取り専用記憶装置）に恒久的に記憶された情報、書込み可能な記憶媒体（例えば、フロッピー・ディスク及びハード・ドライブ）に変更可能に記憶された情報、又は、コンピューター・ネットワークのような通信媒体を通じてコンピューターに伝送される情報を含むがそれに限定されない。さらに、本発明はソフトウエアに具体化されているが、本発明を実行するのに必要な機能は特定用途向け集積回路（ＡＳＩＣ）、プログラムの現場入力用ゲート・アレー（ＦＰＧＡ）又は他のハードウエア又はハードウエア、ソフトウエア及び（又は）ファームウエアの要素の組合わせのようなファームウエア及び（又は）ハードウエアの要素を部分的又は全体的に二者択一的に用いて具体化しうる。
【００５７】
本発明は上記の例示的実施例により説明されているけれども、示された実施例の修正、変更、組合わせ及び部分的組合わせが、ここで開示された本発明のコンセプトから逸脱せずに行なえることは当業界の通常の技術者であれば理解しよう。さらに、好ましい実施例は種々の例示的データ構成と関連させて記載されているけれども、システムは種々のデータ構造を用いて具体化していることを当業界の技術者であれば理解しよう。従って、本発明は請求項の範囲と精神による場合を除き、限定的と見るべきでない。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施例を実施できる例示的手順のブロック線図である。
【図２】本発明の他の実施例を実施できる例示的手順のブロック線図である。
【図３】本発明に基づくサンプル・ジッター・バッファーの一実施例のブロック線図である。
【図４】本発明に基づくサンプル・ジッター・バッファーの他の実施例のブロック線図である。
【図５−８】図３及び４のサンプル・ジッター・バッファーの動作を示すデータ・フロー線図である。
【図９−１１】図３及び４のサンプル・ジッター・バッファーのＦＩＦＯのリング・バッファーの実施に関するブロック線図である。
【図１】
2007532053.tif 000002
【図２】
2007532053.tif 000003
【図３】
2007532053.tif 000004
【図４】
2007532053.tif 000005
【図５】
2007532053.tif 000006
【図６】
2007532053.tif 000007
【図７】
2007532053.tif 000008
【図８】
2007532053.tif 000009
【図９】
2007532053.tif 000010
【図１０】
2007532053.tif 000011
【図１１】
2007532053.tif 000012
【国際調査報告】
2007532053.tif 000013