[go: up one dir, main page]

JP2007532053A - ジッター・バッファーの管理 - Google Patents

ジッター・バッファーの管理 Download PDF

Info

Publication number
JP2007532053A
JP2007532053A JP2007503956A JP2007503956A JP2007532053A JP 2007532053 A JP2007532053 A JP 2007532053A JP 2007503956 A JP2007503956 A JP 2007503956A JP 2007503956 A JP2007503956 A JP 2007503956A JP 2007532053 A JP2007532053 A JP 2007532053A
Authority
JP
Japan
Prior art keywords
data
buffer
amount
sample
predetermined amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007503956A
Other languages
English (en)
Inventor
スピツツアー,アンデイ
Original Assignee
スノーシヨア・ネツトワークス・インコーポレーテツド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by スノーシヨア・ネツトワークス・インコーポレーテツド filed Critical スノーシヨア・ネツトワークス・インコーポレーテツド
Publication of JP2007532053A publication Critical patent/JP2007532053A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9023Buffering arrangements for implementing a jitter-buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

サンプルのジッター・バッファーのマネージャーが多少攻撃的にジッター・バッファー内のデータの変動量に基づいて、ジッター・バッファー内のデータを保存し(割当て)、又は、廃棄する。ジッター・バッファーのマネージャーはパケット全体よりはむしろ個々のサンプル・データ・ユニットを計数し、供給し、廃棄し、及び(又は)他の方法で管理する。通常、受信器向けのデータ・パケットを満たすためにジッター・バッファーから十分なデータを取出す。しかしながら、ジッター・バッファー内のデータ量が少ない場合、ジッター・バッファーから取出して、パケットに置くデータが少なくなる。そして、パケット内又はジッター・バッファー内のデータの一部を複写してパケットの残りに充填する。ジッター・バッファーを有用な量を超えて充填したとき、ジッター・バッファーは段々に大量になったデータを廃棄し、必ずしも1以上のパケット全体を廃棄することはしない。ジッター・バッファー内でのこの微粒子形のデータ量管理がバッファー・サイズを維持し、受信器へのパケットの着実な流れを供給でき、データによって代表される信号の忠実度に有意な影響を与えず、又、パケットの相互到着時間の変動への影響を緩和する。

Description

関連出願書との相互参照
本出願書は特許文献1の特典を主張する。
本発明はコンピュータ・ネットワーク(computer network)のジッター・バッファー(jitter buffer)に、より特定すれば、ジッター・バッファーが、大きすぎる、又は、小さすぎるサンプル・データ(sample data)をそれぞれ含んでいるとき、サンプル・データを捨てる又はサンプル・データを複写するジッター・バッファーに関する。
(ローカル・エリア・ネットワーク(LAN)又はインターネットのような)パケット交換ネットワークはインターネット電話、又は、テレビ会議の信号のような音声、画像又は他の連続的信号を運搬するのに使用できる。そのような用途では、典型的にはRFC3550内で記載されている実時間輸送プロトコール(Real−time Transport Protocol: RTP)のようなプロトコールに基づいて、送信部と受信部がお互いに通信する。送信部は固定又は可変の間隔で行う信号サンプリングによるように連続的入力信号をデジタル化する。送信部は受信部にネットワーク上で一連のパケットを送る。各パケットは1以上の離散形信号サンプルを代表するデータを含む。(ある時には、10ミリ秒のセグメント(segment)のような信号のセグメントを代表するデータを「サンプル」という。そのようなサンプルが多くの離散していてデジタル化された数値を含むこともある。離散性のデジタル化した数値をここでは「サンプル」又は「サンプル・データ・ユニット(sample data units)」と呼ぶ。それは8ビットのバイト(byte)又は他のサイズ(size)のデータ・ユニットでありうる。送信部は典型的に規則的な間隔でパケットを送る。受信部は受信したサンプルから連続信号を再構築して、かつ、典型的には、スピーカー(speaker)又はコンピューターのスクリーン(screen)によるように再構築信号を出力する。
選択肢として、送信部は受信部にパケットを送る前にサンプルを圧縮(通常コード(code)とも言う)するために圧縮・解凍(コーデック(codec))を用いる。送信部がコーデックを用いる場合、受信部は信号を再構築する前にサンプルを解凍(デコード(decode))するのに互換性のあるコーデックを用いる。
送信部と受信部はデータを処理するレート(rates)を支配するためにクロック(clock)を用いる。しかしながら、これらのクロックは典型的に同期をとっていなくて、一般に種々の速度で動作している。この違いにより送信部が高い頻度又は低い頻度でパケットを送ることがある。受信部の見解としては、それにより、受信部のバッファー(buffer)がオーバーフロー(overflow)又はアンダーフロー(underflow)になる。さらに、インターネットと多くの他のネットワークは、その上でリアル・タイム・パケット(real−time packet)を送り、可変及び予測不能の伝送遅れを導入する。それにより、パケットは受信部のところに可変で予測不能な相互到着時間で到着する。この現象を通常「ジッター(jitter)」と云っている。
ジッター・バッファーは伝送部と受信部の間のクロック速度の違いと、パケットの相互到着時間の違いを補償するために普通に用いられる。ジッター・バッファーがいくつかのパケットを含むと、パケットを受信部に固定したレート(rate)で供給を始める。一般的に、送信部からのパケットがジッター・バッファーに可変レートで到着した場合でも、又は、短期間パケットが到着しない場合でも、ジッター・バッファーの弾性にそのバッ
ファーが固定レートで受信部にパケットを供給を続けることができる。
しかしながら、長期間(例えば、ネットワークが混雑した場合に生じるような)ジッター・バッファーに到着するパケットが無いか又は不十分な場合、バッファーが空になることがある(アンダーフロー)。空になったジッター・バッファーがパケットを受信部に供給できないので、他のパケットが受信部から到着するまでそれ以外では受信部による継続的信号出力で望ましくないギャップ(gap)を生じる。そのようなギャップは音響信号では無音として、又は、画像信号では、空白又は「凍結状態」のスクリーン(screen)として明らかになる。
他方、(例えば、混雑していたネットワークが突然繁忙で無くなった場合に生じるように)バッファーが対応できるようになった後の短期間ジッター・バッファーに到着するパケットが多くなる場合、ジッター・バッファーが「オーバーフロー」になって、到着パケットの一部を廃棄する。これにより、サンプルの1以上のパケット全体が喪失する。そうでなければ受信部が連続的信号を出力できる場合に、望ましくない不連続又は「ジャンプ(jump)」を生じうる。
いわゆる「適応性」ジッター・バッファーが、パケットの到着レートにより、(限界内で)拡張及び収縮できる。適応性ジッター・バッファーが、固定サイズ(size)のジッター・バッファーと比較し、オーバーフローになる可能性が少ないけれども、適応性ジッター・バッファーはアンダーフローを経験することがあり、受信器による信号出力内に上記のギャップを生じることがある。
米国暫定特許出願第60/554,024号
本発明はバッファーのアンダーフロー又はオーバーフローの可能性を低減し、ジッター・バッファーでのパケットの相互到着時間が変動する場合に受信部により生じる信号への影響を緩和するように、ジッター・バッファーを管理するための方法と装置を供給している。本発明の実施例は従来のジッター・バッファーよりも高い解決策を有するジッター・バッファー内でデータを監視し、制御する。例えば、一実施例では、ジッター・バッファーが、パケット全体よりはむしろ個々のバイト、サンプル又は他のサンプル・データ・ユニットのバッファー(buffer)処理をし、計数し、供給し、廃棄し、又、他の方法で管理することができる。
通常の環境では、対象のジッター・バッファーが受信部にデータのパケットを供給するために呼出されているとき、データ・パケットを充填するために、ジッター・バッファーから十分なデータが取出される。そして、そのパケットが受信部に供給される。しかしながら、もし、ネットワークの混雑度が一時的にジッター・バッファーへのパケットの送出が中止され、又は、遅らされた場合、又は、他の理由により、ジッター・バッファー内のデータ量が少ないと、ジッター・バッファーから取出され、受信部向けのパケットに置かれるデータが少なくなる。そして、パケットの残りの部分にはパケット内又はジッター・バッファー内のデータの一部を複写して充填される。それゆえ、ジッター・バッファー内で利用可能なデータが「支給されて」多くのパケットに利用可能なデータを「拡げられる」それゆえ、通常環境よりも受信部へのパケットが(データの一部が複写されているけれども)多く供給される。
結果として、ジッター・バッファーは、従来のジッター・バッファー管理に基づくよりは短時間で空になることはない。これにより、受信部へのパケットの流れが安定する。そ
の一方で、ネットワークが混雑を解消するための、及び(又は)ジッター・バッファーが追加のパケットを受信するための時間が追加される。少量のデータ複写は受信部が再生する信号の忠実度に有意な影響を与えない。パケット内の複写されたデータ量対ジッター・バッファーから取出されたデータ量の比は、パケットが受信部に供給される都度、ジッター・バッファー内のデータ量に基づいて、ダイナミック(dynamically)に調整できる。それゆえ、ジッター・バッファー内のデータ量が減少すると共に、入手可能なデータを拡げられたパケット数が多くなる。そして、ジッター・バッファー内のデータ量が増大すると共に、受信部に供給された各パケットのためにジッター・バッファーから取出されたデータが多くなる(パケット全体になるまで)。
他方、ジッター・バッファーが有用なレベル(level)を越えて充填された場合、ジッター・バッファーが捨てるデータ量が段々に多くなるが、必ずしも、1以上のパケット全体に価するデータを捨てるのではない。例えば、1以上のサンプル・データ・ユニットをパケットが受信部に供給された都度、及び(又は)、他の時点で廃棄できる。パケット全体の代わりに少量のサンプル・データを廃棄することは、信号の大きな不連続が生じるのを避けられる。さらに、ジッター・バッファー内の種々の位置のデータを選択して廃棄できる。それにより、信号の有意な不連続を避けることができる。
それゆえ、本発明の実施例では、多少積極的にジッター・バッファー内のデータの保存(支給)又は廃棄をジッター・バッファー内のデータ量の変動に基づいて行なう。このジッター・バッファー内のデータ量の微粒子形管理が、バッファーのサイズ(size)を受信部へのパケットの流れを安定化できるように維持して、過度の保存能力を必要とせず、かつ、信号の忠実度に有意に影響しないですむ。
本発明のこれら及び他の特徴、利点、側面及び実施例が、以下に示す本発明の詳細説明から当業界の技術者には明らかになるであろう。
本発明の詳細説明を添付図面と関連させて参照することにより完全に理解されよう。
特許文献1の内容は参照用として本明細書に含まれている。
バッファーのアンダーフロー又はオーバーフローの可能性を低くくして、ジッター・バッファーでのパケットの相互到着時間が変動する場合に受信部が作成する信号への影響を緩和する方法でジッター・バッファーを管理するための方法と装置がここに記載されている。ここで開示されたシステムは、従来のジッター・バッファー内よりも高い解決策を持ってサンプル・ジッター・バッファー内のデータを監視し、制御する。例えば、開示されたサンプル・ジッター・バッファーは、パケット全体の代わりに、個々のバイト、サンプル又は他のサンプル・データ・ユニットについてバッファー処理をし、計数し、供給し、廃棄し、及び、他の方法の管理をすることができる。本発明に基づくジッター・バッファーをここでは「サンプル・ジッター・バッファー」という。
図1は、サンプル・ジッター・バッファー100aの一実施例を使用できる例示的システムを示している。この実施例では、サンプル・ジッター・バッファー100aが受信部102の一部である。送信部104は連続的入力信号(図示せず)をデジタル化して、入力信号のデジタル化サンプルを含む一連のパケットをネットワーク106上を典型的には実時間プロトコールに基づいて受信部102に送信する。サンプル・ジッター・バッファー100aがパケット(データのグループ)を受信し、そのパケットからのデジタル化されたサンプル(データ)のバッファー処理をする。
この実施例で、受信部102はアプリケーション108を含む。そのサンプル・ジッター・バッファー100aが通常の時間的間隔で、又は、請求があれば、アプリケーション108にデータを供給する。送信部104により送られたのと同サイズであるパケット内で、必要な場合は他のサイズのパケットで、アプリケーション108にデータを供給できる。代わりに、「未加工の」フォーマット(format)即ちデータをパッケージ化していないでアプリケーション108にデータを供給できる。送信部104と通信するのに用いられた実時間プロトコールに基づいてアプリケーション108にデータを供給する。又は、異なるプロトコールを使用できる。
図2はサンプル・ジッター・バッファー100bの他の実施例を使用できる例示的手順を示している。この実施例で、サンプル・ジッター・バッファー100bはネットワーク106と受信部102の間に介入する。サンプル・ジッター・バッファー100bを直接に(図示せず)受信部102に直接接続(図示せず)するか、又は、(図2に示すように)低ジッター・ネットワーク経由のようなネットワーク200経由で接続できる。この実施例では、サンプル・ジッター・バッファー100bが受信部102に送出部104により送られたパケットと同じサイズであるパケットを、送出部104が用いるのと同じ実時間プロトコールを用いて受信部102に送る。代わりに、サンプル・ジッター・バッファー100bが受信部102に他のサイズのパケットを送ることができ、及び(又は)、異なるプロトコールを用いて受信部と通信をする。
いずれかの実施例でも、送信部104は、サンプル・ジッター・バッファー100a又はサンプル・ジッター・バッファー100b(以後、集合的にサンプル・ジッター・バッファー100と云う)に圧縮データを含むパケットを送る前に送信部104はサンプル・データを圧縮(コード化)できる。これらの事例では、以下で詳細に説明しているように、データのバッファー処理の前に、サンプル・ジッター・バッファー100がデータを解凍(コード解読)を行う。選択肢として、(圧縮された)データをアプリケーション108(図1)に、又は、適用できる場合、受信部102(図2)に供給する前に、サンプル・ジッター・バッファー100がデータを圧縮する。
気付かれたように、開示されたシステムが、従来のジッター・バッファーより高い解決策を持つサンプル・ジッター・バッファー内のデータを監視し、又、制御する。例えば、サンプル・ジッター・バッファーが、パケット全体の代わりに、個々のバイト、サンプル又は他のサンプル・データ・ユニットのバッファー処理をし、計数を行い、供給し、廃棄し、又、他の形で管理する。サンプル・ジッター・バッファーがデータのパケットを受取るとき、パケットとしてではなく、サンプル・ジッター・バッファーがパケット(必要ならデータを解凍して)からデータを抽出して、そのサンプル・データ・ユニットを個々に扱う。
図3は、サンプル・ジッター・バッファー100のブロック線図であり、サンプル・ジッター・バッファーが行う操作の一部を示している。サンプル・ジッター・バッファー100は、先入れ先出しの弾性的在庫管理(first−in/first out: FIFO)300及びジッター・バッファーのマネージャー302を含んでいる。以下で詳細に論じているように、リング・バッファー(ring buffer)を用いて、又は、他の適当なソフトウエア又はハードウエア構成を用いて、FIFO300を実施しうる。FIFO 300の各セル(cell)がひとつのサンプル・データ・ユニットを蓄積できる。ディメンジョン(dimension)Nが現在FIFO 300内に現在記憶されているサンプル・データの数を示している。
サンプル・ジッター・バッファー100がパケット304のようなパケットを受取るとき、パケットのサンプル・データ306がFIFO300に追加される。図4に示すよう
に、受取ったサンプル・データ306aが送信部104により圧縮されている(コード化されている)場合、受取ったサンプル・データ306aをFIFO300に加える前に解凍(コード化解消)するために適当なコーディック(codec)400を用いている。解凍されたデータ及びある種の圧縮アルゴリズム(algorithms)(G.726及びG.729のような)が単位時間の入力信号当たり固定された数のサンプル・データを生じる。他の圧縮アルゴリズム(AMRとMP3)が単位時間の入力信号当たり可変数のサンプル・データ・ユニットを生じる。それゆえ、それぞれの受取ったパケット304は典型的に固定された量(時間内の)の入力信号を示す。パケット304内のサンプル・データ・ユニットの数はパケットごとに異なる場合がある。
一般に、新たに到着したサンプル・データ・ユニットがFIFO300のテイル(tail)300に加えられる。しかしながら、種々のパケットが採用する種々のネットワーク通路、又は、他のネットワーク・ルーティング(network routing)異常により、ある場合にパケットの到着順序が狂う。ジッター・バッファーのマネージャー302はパケットのシーケンス(sequence)番号310,タイム・スタンプ(time stamp)312又は新たに到着したパケット304の到着順序が正常(又は異常)かどうかを決定するための適当な方法を使用できる。パケット304の順序が異常の場合、ジッター・バッファーのマネージャー302は受取ったサンプル・データ306(又は解凍されて受取ったサンプル・データ306a)をFIFO300のテイル308に追加しない。代わりにジッター・バッファーのマネージャー302はパケットのタイムスタンプ(timestamp)312及び(又は)シーケンス番号310を用いて、FIFO300内の適当な時間ベースの位置に(必要な場合は解凍して)受取ったサンプル・データ306aを挿入する。即ち、受取ったサンプル・データ306aの挿入位置は、その受取ったサンプル・データ306aのタイムスタンプより前の数のタイムスタンプを有するFIFO300内のサンプル・データとその受取ったサンプル・データのタイムスタンプより後のタイムスタンプを有するFIFO300内の他のサンプル・データの間である。それゆえ、サンプル・データはFIFO300内にタイムスタンプの順番で記憶され、FIFOのヘッド314に最古の(最小の数のタイムスタンプ)サンプルデータがあり、最新の(最大の数のタイムスタンプ)サンプル・データはFIFOのテイル308にある。
パケット304がタイムスタンプを含まない場合、受取ったサンプル・データ306aを時間順にFIFO300に正しく配置するのに適当な方法を使用できる。例えば、タイムスタンプを合成できる。各パケットが入力信号の固定長(時間)セグメント(segment)を代表する場合、パケット304に対するタイムスタンプをパケットのシーケンス番号310にパケットが代表する入力信号のセグメントの(時間内の)長さを乗ずることにより計算できる。各パケット304が入力の可変長セグメントを代表する場合、パケット内のサンプル・データ306aを解凍(コード解読)して、一連のサンプル・データ・ユニットを生じる。各サンプル・データ・ユニットは入力信号の固定長(時間)のセグメントを代表する。この場合、パケット304に対するタイプスタンプはこれらのサンプル・データ・ユニットの数に各サンプル・データ・ユニットとパケットのシーケンス番号310により代表される入力信号のセグメントの長さ(時間表示)を乗じることにより計算される。
例えば、サンプル・データ306が非圧縮である場合、又は、サンプル・データが入力信号の時間単位当たり固定数のサンプル・データ・ユニットを生じるアルゴリズムに基づいて圧縮される場合、タイムスタンプは、パケットのシーケンス番号310に、サンプル・データ306により代表される入力信号のセグメントの(時間単位の)長さを乗ずることにより計算できる。
同様に、タイムスタンプは、受信したサンプル・データ内のサンプル・データ・ユニットの位置を用いることにより、受信したサンプル・データ306内の各サンプル・データ・ユニットについて計算できる(又は、受信したサンプル・データ306aが解凍されていれば、解凍されたサンプル・データのセット(set)内での解凍されたサンプル・データ・ユニットの位置)。選択肢として、FIFO300の各セルも、対応するサンプル・データ・ユニットに対するタイムスタンプを記憶している。
サンプル・ジッター・バッファー100はアプリケーション108又は受信部102に対するサンプル・データ316を、規則的な時間間隔で、又は、請求時に供給する。気付かれたように、サンプル・データ316は未加工のフォーマットで、又は、特注のパケット318で供給できる。どの場合も、ディメンジョンSが、サンプル・データ・バッファー100により供給された(必要なら圧縮前の)サンプル・データ・ユニットの数を示している。一般的に、S個のサンプル・データ・ユニットがFIFO300のヘッド314から除去される。しかしながら、以下で論じるように、Sより多いか、又は少ないサンプル・データ・ユニットをFIFO300のヘッド314から除去することができる。ジッター・バッファーのマネージャー302が受信部102に供給された最後のサンプル・データ・ユニットのタイムスタンプ320を維持している。サンプル・ジッター・バッファー100がサンプル・データ316を受信部102に供給されるごとに、タイムスタンプ320が更新される。
受信したパケット304内のサンプル・データ306aの一部又は全部がサンプル・ジッター・バッファー100に到着したが、受信部102に供給するには遅すぎることがある。サンプル・データ・ユニットがサンプル・ジッター・バッファー100に到着したが、サンプル・ジッター・バッファーがその新たに到着したサンプル・データ・ユニットより新しい(大きな数のタイムスタンプを有する)サンプル・データ・ユニットを受信部102に既に供給している場合、新しく到着したサンプル・データ・ユニットはFIFO300に追加されない。代わりに、新たに到着したサンプル・データ・ユニットと、同じ受信したパケット304内の古いサンプル・データ・ユニットが廃棄される。例えば、新たに受信したパケット304が間違った順序で到着した場合、FIFO300が早い時期に保存していた新しいデータを有する。そして、サンプル・ジッター・バッファー100は既に受信部102にその新しいサンプル・データ306aを供給している。即ち、サンプル・データが新しく受信したサンプル・データ306aより大きな数のタイムスタンプを有している。(サンプル・ジッター・バッファー100に到着したサンプル・データが受信部に供給するには遅すぎる場合、本明細書では「遅延データ」と云う。)
サンプル・ジッター・バッファー100がパケット304を受信したとき、ジッター・バッファーのマネージャー302は、受信部102に供給された最後のサンプル・データ・ユニットのタイムスタンプ320と受信したサンプル・データ306aのタイムスタンプを調査して、遅延データがある場合、どれだけの受信したサンプル・データが遅延データであるかを確認する。遅延データは廃棄され、その遅延データをFIFO300に追加しない。残りの受信したサンプル・データ306aが、FIFO300内の正しい時間ベースの位置に置かれる。
サンプル・ジッター・バッファー100は未加工の(パッケージ化されていない)データを受信部102に供給できるけれども、以下の説明では簡略化するために、データはパケット内に入って受信部に供給されるとして示されている。一般的に受信部102に供給されたデータ量316はパケット間で一定のままである。即ち、非圧縮のデータと固定レートの圧縮アルゴリズムに対して、各パケットごとに受信部102に固定した数のサンプル・データ・ユニットが供給される(又は、圧縮されて、供給される)。可変レートの圧縮アルゴリズムの場合、信号の固定した長さ(時間)のセグメントを受信部102に供給するように十分なサンプル・データ・ユニットが圧縮される。気付かれたように、可変レ
ートの圧縮アルゴリズムの場合、受信部102に向けた信号の固定長(時間)セグメントを生じるのに必要なサンプル・データ・ユニットの数はパケットごとに変化する。選択肢として、FIFO300は受信部102向けのパケット内で可変データ量316を供給できる。
一般的に、受信部102向けのパケット内で供給されるデータ量は送信部104からのパケット内で受取るデータ量と同じである。即ち、受信部102に送られるパケットにより代表される信号の部分の長さ(期間)は、送信部104から受取ったパケットにより代表される信号の部分の長さ(期間)は同じである。代わりに、受信部102向けのパケットで供給されるデータ量は送信部104からのパケットで受取ったデータ量とは異なることがある。
受信部102向けのパケットを作るのに必要なサンプル・データ・ユニットの数は、ここではSと称するが、そのデータが非圧縮か、固定レートの圧縮アルゴリズム又は可変レートの圧縮アルゴリズムに基づく圧縮かに無関係である。それにより、S個のサンプル・データ・ユニットが受信部102のためのパケットを作るのに用いられる。ただし、Sの実際の値はパケットごとに異なる。しかしながら、FIFO300内のサンプル・データ・ユニットの数Nにより、丁度のS、S超過、又は、S未満のサンプル・データ・ユニットをFIFO300から除去して、受信部102向けのパケットを作成する。
一実施例の動作が図5−7に示されているが、FIFO300内のサンプル・データ・ユニットの希望数Dが決定される。一実施例では、Dは受信部の自然のパケット・サイズの整数倍である。代わりに、乗数は整数である必要はない。期待値又は実際に測定されたネットワーク106のジッター・レートに基づいて、又は、他の適当な方法により、乗数を選択できる。乗数は静的又は動的としうる。図5に示すように、FIFO300がD個のサンプル・データ・ユニットを含む場合、ジッター・バッファーのマネージャー302がFIFO300のヘッド314からS個のサンプル・データ・ユニットを除去する。ジッター・バッファーのマネージャー302が(必要な場合)圧縮し、これらのS個のサンプル・データ・ユニットを受信部102に供給する。
図6に示すように、FIFO300がD個未満のサンプル・データ・ユニットを含む場合、ジッター・バッファーのマネージャー302がFIFO300のヘッド314からS未満のサンプル・データ・ユニットを除去する。例えば、Sより1個少ないサンプル・データ・ユニットを除去する。ジッター・バッファーのマネージャー302がFIFO300から除去されたサンプル・データ・ユニットのひとつ(S−1)を複写する。即ち、600及び602で示されているように、ジッター・バッファーのマネージャーがサンプル・データ・ユニット(S−1)を2回受信者に供給した(圧縮がある場合と無い場合)。複写されたサンプル・データ・ユニット602は「加えられた」サンプル・データ・ユニットという。複写されたサンプル・データ・ユニット602は、サンプル・データ・ユニットのタイムスタンプが最も近くになる位置に挿入される。
それゆえ、パケット1個分のデータが受信部102に供給されるけれども、パケット1個未満のデータがFIFO300から除去される。これでFIFO300の利用できるサンプル・データ・ユニットを多数のパケットに支給される(拡げられる)。少量のデータ複写(即ち、追加されたサンプル・データ・ユニット602)は受信部102により作成された新語の忠実度に有意な影響を与えない。
代わりに、FIFO300から除去されたサンプル・データ・ユニットのひとつを複写する代わりに、依然としてFIFO内にあるサンプル・データ・ユニットを複写でき、追加されたサンプル・データ・ユニットとして使用できる。例えば、サンプル・データ・ユ
ニット1,2,3,・・・(S−1)がFIFO300から除去された後で、サンプル・データ・ユニットHはFIFOのヘッド314にある。サンプル・データ・ユニットHを複写して受信部102に(圧縮付き又は無しで)サンプル・データ・ユニットHをFIFO300から除去しないで供給する。追加されたサンプル・データ・ユニット604がそのサンプル・データ・ユニットのタイムスタンプに最も近い位置でパケット内に挿入される。この場合、サンプル・データ・ユニットHがその後のパケット内で受信部102にも供給される。それゆえ、1個のパケット内の受信部102にも供給されたデータ606が1個のサンプル・データ・ユニットの2個の複写を含まないけれども、FIFO300内のサンプル・データ・ユニットの部分集合が受信部に供給される。そして、少なくとも1個のサンプル・データ・ユニットHが受信部に供給された2以上の連続的パケットのコース(course)上で複写する。「複写する(Repeating)」データとは、そのデータが1個のパケット内で複写するか、2個以上のパケットのコース上で複写されるかには関係なく、1回を超えてデータが供給されることを意味する。
図7で示されるように、FIFO300がDより多いサンプル・データ・ユニットを含む場合、ジッター・バッファーのマネージャー302がSより多いサンプル・データ・ユニットをFIFO300のヘッド314から除去する。例えば、Sより多くなる1個のサンプル・データ・ユニットが除去される。ジッター・バッファーのマネージャーが除去されたサンプル・データ・ユニットの1個を廃棄する。S個のサンプル・データ・ユニットが受信部102に(圧縮がある場合又は無い場合に)供給される。それゆえ、パケット1個分のデータが受信部102に供給される。そして、1個のサンプル・データ・ユニットが廃棄される。1個のサンプル・データ・ユニットの喪失は受信部102により作成された信号の忠実度に有意な影響を与えない。さらに、FIFO300内のサンプル・データ・ユニットの数はパケット1個分のデータを廃棄しないで、好ましい値を維持できる。
それゆえ、Dは事前決定されたしきい値であると考えられる。さらに、FIFO300がD個のサンプル・データ・ユニットを含む場合、FIFOは基準に適合していると考えられる。FIFO300がDより少ないサンプル・データ・ユニットを含む場合、FIFOは他の基準に適合していると考えることができる。同様に、FIFO300がDより多いサンプル・データ・ユニットを含む場合、FIFOはまだ他の基準に適合していると考えることができる。
選択肢として、図8に示すように、FIFO300がDより有意に少ないサンプル・データ・ユニットを含んでいる場合、(例えば、FIFOがDより2個少ないサンプル・データ・ユニット又はDの80%より少ないサンプル・データ・ユニットを含む場合、)FIFO300のヘッド314から除去されるサンプル・データ・ユニットが、図6に示すより少ない。例えば、Sより2個少ないサンプル・データ・ユニットは除去される。FIFO300から除去されたサンプル・データ・ユニットのひとつ(S−2)が2回複写された。即ち、800、802、804と示すように、受信部102に(圧縮がある場合と無い場合に)3回供給された。この例では、Dより2個少ないが、別の事前決定されたしきい値T(LL)と考えることができる。そして、FIFO300がT(LL)より少ないサンプル・データ・ユニットを含む場合、FIFOが基準に適合すると考えられる。
代わりに、FIFO300から除去された((s−3)と(s−2)のような)2個の個別サンプル・データ・ユニットのそれぞれが複写できる。即ち、受信部102への(圧縮がある場合と無い場合の)2回がそれぞれ供給される。代わりに、FIFO300から除去されたサンプル・データ・ユニットを2回複写する代わりにFIFOに依然として存在する1以上のサンプル・データ・ユニットを複写でき、追加されたサンプル・データ・ユニットとして使用できる。又は、FIFOから除去されたサンプル・データ・ユニットとFIFO内に依然として存在しているサンプル・データ・ユニットの組合わせを複写し
、追加されたサンプル・データ・ユニットとして使用できる。
図7を参照して上記と類似した方法で、FIFO300がDより有意に多いサンプル・データ・ユニットを含んでいる場合(例えば、FIFOがDより2個多いサンプル・データ・ユニット、又は、Dの120%より多いサンプル・データ・ユニットを含む場合)、図7に示すよりもFIFO300のヘッド314から除去されるサンプル・データ・ユニットが多くなる。例えば、Sより2個多いサンプル・データ・ユニットが除去される。2個のサンプル・データ・ユニットが除去される。そして、S個のサンプル・データ・ユニットが受信部102に供給される。この例では、Dより2個多いことは別の事前決定されたしきい値T(HH)と見なされる可能性がある。
代わりに、又は、追加的に、サンプル・データ・ユニットは別の時点で、FIFO300から除去されることがありうる。例えば、定期的に、又は、パケットを送信部104から受取ったとき、ジッター・バッファーのマネージャー302がFIFO300内のサンプル・データ・ユニットの数Nを確認できて、適当な場合、1以上のサンプル・データ・ユニットを廃棄する。
サンプル・ジッター・バッファー100の機能を1個又は2個のサンプル・データ・ユニットの複写又は廃棄という立場で説明したけれども、サンプル・データ・ユニットの5及び10のような他の数字も複写又は廃棄されることがある。FIFO300から廃棄されるサンプル・データ・ユニットの数は、FISO内に現在あるサンプル・データ・ユニットの数Nにもよる。さらに、廃棄されたサンプル・データ・ユニットは信号に大きな不連続性を生じるのを避けるために、FIFO300内の種々の位置から除去できる。
図5−7を参照して述べた例では、FIFO300内で望ましいサンプル・データ・ユニットの数は1個の数(しきい値)Dである。FIFO300内でサンプル・データ・ユニットの実際の数字NがDより多いか、少ない場合、1以上のサンプル・データ・ユニットが廃棄されるか又は複写される。他の実施例では、FIFO300内のサンプル・データ・ユニットについて低しきい値T(L)と高しきい値T(H)を定義するように、ある範囲の望ましい数を定義できる。そのような実施例では、FIFO300内のサンプル・データ・ユニットの数がT(L)とT(H)の間にある場合、S個のサンプル・データ・ユニットがFIFOのヘッド314から除去されて、受信部102に供給される。
FIFO300内のサンプル・データ・ユニットの数がT(L)未満である場合、1以上のサンプル・データ・ユニットが複写される。又、FIFO内のサンプル・データ・ユニットの数がT(H)より上である場合、1以上のサンプル・データ・ユニットが廃棄される。同様に、図7及び8に関連して記載された例で、Dより有意に少ないサンプル・データ・ユニットを代表するしきい値T(LL)とDより有意に多いサンプル・データ・ユニットを代表するしきい値T(HH)をT(L)とT(H)に置換えて定義できる。選択肢として、T(HH)及びT(LL)よりそれぞれ上及び下の追加しきい値を定義できる。FIFO300が追加しきい値より多い又は少ないサンプル・データ・ユニットを含む場合、それでも多いサンプル・データ・ユニットを廃棄又は複写できる。FIFO300がこれらのしきい値の最小又は最大より多い、又は、少なく含んでいる場合、FIFOはそれぞれの基準に適合していると見なすことができる。
選択肢として、サンプル・データ・ユニットを廃棄又は複写すべきときに、FIFO300が、無音(音響信号内で)又は他の事前定義された値(画像信号の真っ黒又は真っ白のフレーム(frame)のような)を代表するサンプル・データ・ユニット、一組の同一のものとして接近し合ったサンプル・データ・ユニット又は一群のサンプル・データ・ユニット(画像信号の不変化場面の一組の接近した不変化フレームのようなもの)又は信
号の他の不変化又は最小変化の部分(以後、集合的に「重要でないサンプル・データ・ユニット」という。)「最小変化」とは例えば隣接するサンプル・データ・ユニット、サンプル、フレーム等の間の事前決定されている最大の差により定義しうる。1以上のサンプル・データ・ユニットが廃棄される場合、システムは優先的に適当な数の重要でないサンプル・データ・ユニットを廃棄する。結果として、信号の比較的重要でない部分が廃棄される。そして、信号の意味のある内容の多くが保存される。1以上のサンプル・データ・ユニットが複写される場合、システムは優先的に適当な数の重要でないサンプル・データ・ユニットを複写する。結果的に、信号の追加された部分は比較的目立たない。
図7に関連して論じたように、サンプル・データ・ユニットはFIFO300のヘッド314から廃棄される。代わりに、又は、追加的に、重要でないサンプル・データ・ユニットのようなサンプル・データ・ユニットがFIFO300内の任意の位置から廃棄される。例えば、サンプル・データ・ユニットの廃棄は、図7に示すように、必ずしもFIFOのヘッドから除去された第一のサンプル・データ・ユニット(S+1)からではく、受信部102に送るために、FIFO300のヘッド314から除去されたサンプル・データ・ユニットのセット内の任意の位置から行われる。サンプル・データ・ユニットの除去は、受信部102に送るためのFIFO300のヘッド314から除去されたサンプル・データ・ユニットのセットからでは必ずしもなくて、1以上の重要でないサンプル・データ・ユニットを含むFIFOの一部分のようなFIFO300の中間部又はテイル308から行なえる。気付かれたように、サンプル・データ・ユニットの廃棄は、受信部102に送るためにFIFO300からサンプル・データ・ユニットの除去をするときのみでは必ずしも無く、任意の時点で行なえる。同様に重要でないサンプル・データ・ユニットのようなサンプル・データ・ユニットの複写は、FIFO300内、又は、受信部102に送るためのFIFOのヘッド314から除去されたサンプル・データ・ユニット内の任意の位置で行なえる。さらに、サンプル・データ・ユニットをFIFO300内でいつでも複写できる。
気付かれたように、FIFO300は循環バッファーとして、又は他の適当なハードウエア又はソフトウエアの構成で実施できる。図9−11は循環バッファー900としてFIFO300の一実施例を示している。図9に示すように、循環バッファー900には事前決定されたセル数902が含まれている。セル数902は固定又は動的にしうる。セル902の一部又は全部がサンプル・データ・ユニットにより占められている。サンプル・データ・ユニットにより占められる。循環バッファー900内のセル902の最大数が「バッファー・リミット」904により代表されている。バッファー・リミット904はネットワーク106内で測定されたジッターに応じた場合のように、必要に応じて、増減できる。複写及び(又は)廃棄されるサンプル・データ・ユニットの数は受信部102の要求による期間又はサービスの質による。
循環バッファー900の占められたセルがFIFO300を構成する。FIFO300のヘッド314は「ネキスト・アウト・ポインター(next out pointer)」906により示されている。FIFO300が1以上のサンプル・データ・ユニットを供給するために呼出されたとき、ネキスト・アウト・ポインター906がFIFOから除去された第一サンプル・データ・ユニットを位置決めするのに用いる。サンプル・データ・ユニットがFIFO300から除去されるので、ネキスト・アウト・ポインター906がFIFOの新ヘッドを指定するために送られる。
「ネキスト・イン・ポインター(next in pointer)」908は循環バッファー900内で次ぎに利用できるセルを示す。サンプル・データ・ユニットをFIFO300に加えるべきときに、ネキスト・イン・ポインター908は循環バッファー900内で最初に利用可能なセルの位置決めに用いられる。サンプル・データ・ユニットがF
IFO300のテイル308に加えられるので、ネキスト・イン・ポインター908が送られる。
ネキスト・アウト・ポインター906又はネキスト・イン・ポインター908のどちらかがバッファー・リミット904に達すると、ポインターは循環バッファー900の第一セル910に「巻き戻る」。FIFO300が完全に空になったことはネキスト・アウト・ポインター906とネキスト・イン・ポインター908が同じ値になることにより示されている。同様に、FIFOが完全に充填されていることはネキスト・アウト・ポインター906とネキスト・イン・ポインター908が同じ値になることにより示されている。それゆえ、「バッファー・フル・フラッグ(buffer full flag)」912はこれらの両方の場合を区別するために用いられる。
図10に示すように、FIFO300が容量一杯又はほぼ一杯になると、バッファー・リミット904を新しい値904aに上昇して、図11に示すように、FIFOのために利用できるセル1100を多くする。
バッファー・リミット904aが上昇した後で、図11に示すように、FIFO300のテイル308とテイルに隣接している一部のサンプル・データ・ユニット1000を移動する必要があるだろう。
例示的実施例はインターネット電話、テレビ会議及び実時間輸送プロトコール(RTP)を参照して説明しているが、セルラー電話ネットワーク及びGlobal System for Mobile Communication(GSM)のように、他の実施例が他のパケット化媒体、信号、ネットワーク及びプロトコールと使用できる。
上記の機能は、ランダム・アクセス・メモリー(RAM)、リード・オンリー・メモリー(ROM)、フラッシュ・メモリー、制御用ソフトウエア又は他の命令及びデータを記憶するのに適当な他のメモリーのようなメモリーに記憶された命令を実行する中央処理装置(CPU)により実行できる。本発明の機能を定義する命令又はプログラムを多くの形でプロセッサーに送出できることは当業界の技術者であれば容易に理解しよう。プロセッサーは、書込み不能記憶媒体(例えば、コンピューターのI/Oアタッチメントにより読取り可能なROM又はCD−ROMディスクのようなコンピューター内の読取り専用記憶装置)に恒久的に記憶された情報、書込み可能な記憶媒体(例えば、フロッピー・ディスク及びハード・ドライブ)に変更可能に記憶された情報、又は、コンピューター・ネットワークのような通信媒体を通じてコンピューターに伝送される情報を含むがそれに限定されない。さらに、本発明はソフトウエアに具体化されているが、本発明を実行するのに必要な機能は特定用途向け集積回路(ASIC)、プログラムの現場入力用ゲート・アレー(FPGA)又は他のハードウエア又はハードウエア、ソフトウエア及び(又は)ファームウエアの要素の組合わせのようなファームウエア及び(又は)ハードウエアの要素を部分的又は全体的に二者択一的に用いて具体化しうる。
本発明は上記の例示的実施例により説明されているけれども、示された実施例の修正、変更、組合わせ及び部分的組合わせが、ここで開示された本発明のコンセプトから逸脱せずに行なえることは当業界の通常の技術者であれば理解しよう。さらに、好ましい実施例は種々の例示的データ構成と関連させて記載されているけれども、システムは種々のデータ構造を用いて具体化していることを当業界の技術者であれば理解しよう。従って、本発明は請求項の範囲と精神による場合を除き、限定的と見るべきでない。
本発明の一実施例を実施できる例示的手順のブロック線図である。 本発明の他の実施例を実施できる例示的手順のブロック線図である。 本発明に基づくサンプル・ジッター・バッファーの一実施例のブロック線図である。 本発明に基づくサンプル・ジッター・バッファーの他の実施例のブロック線図である。 図3及び4のサンプル・ジッター・バッファーの動作を示すデータ・フロー線図である。 図3及び4のサンプル・ジッター・バッファーのFIFOのリング・バッファーの実施に関するブロック線図である。

Claims (75)

  1. 複数のデータ・グループを受取ること、
    受取ったデータの少なくとも一部をバッファー内に記憶すること、
    バッファー内のデータ量を検出すること、
    バッファー内のデータ量が第一基準に適合する場合、第一部分集合内の少なくとも一部のデータを複写することを含めて、バッファー内のデータの少なくとも第一部分集合を受信部に供給すること、
    から成るバッファーを管理する方法。
  2. バッファー内のデータ量が第二基準に適合している場合、第一部分集合内のデータを複写しないこと、
    バッファー内のデータ量が第三基準に適合している場合、第一部分集合内の第一の事前決定されたデータ量を第一の回数複写すること、
    から成るデータの少なくとも一部を複写することを特徴とする請求項1の方法。
  3. 第一部分集合内の第一の事前決定されたデータ量を複写することが、第一部分集合内の第一の事前決定されたデータ量を1回複写することであることを特徴とする請求項2の方法。
  4. 第一部分集合内の第一の事前決定されたデータ量を複写することは1バイトを複写することから成ることを特徴とする請求項2の方法。
  5. 第一部分集合内の第一の事前決定されたデータ量を複写することは1サンプルを複写することから成ることを特徴とする請求項2の方法。
  6. 第一部分集合内の第一の事前決定されたデータ量を複写することは1サンプル・データ・ユニットを複写することから成ることを特徴とする請求項2の方法。
  7. 第一部分集合内の第一の事前決定されたデータ量を複写することは第一部分集合内の1バイトのデータを一回複写することから成ることを特徴とする請求項2の方法。
  8. 少なくとも一部のデータを複写することは、さらに、
    バッファー内のデータ量が第四基準に適合している場合、第一部分集合内の第一の事前決定されたデータ量を第一の回数より大きな第二の回数複写すること、
    から成る請求項2の方法。
  9. 第一部分集合内の第一の事前決定されたデータ量を複写することは、第一部分集合内の第一の事前決定されたデータ量を2回複写することから成ることを特徴とする請求項8の方法。
  10. 第一部分集合内の第一の事前決定されたデータ量を複写することは、第一部分集合内の1バイトのデータを2回複写することから成ることを特徴とする請求項8の方法。
  11. 少なくとも一部のデータを複写することは、さらに、
    バッファー内のデータ量が第五基準に適合する場合、第一部分集合内で第一の事前決定されたデータ量より大きな第二の事前決定されたデータ量を複写すること、
    であることを特徴とする請求項2の方法。
  12. 第一部分集合内の第一の事前決定されたデータ量が1バイトから成ることを特徴とする
    請求項11の方法。
  13. 第一部分集合内の第一の事前決定されたデータ量が1サンプルから成ることを特徴とする請求項11の方法。
  14. 第一部分集合内の第一の事前決定されたデータ量が1サンプル・データ・ユニットから成ることを特徴とする請求項11の方法。
  15. データの少なくとも一部を複写することは、
    少なくとも1個の重要でないサンプル・データ・ユニットを位置決めすること、
    位置決めされた少なくとも1個の重要でないサンプル・データ・ユニットを複写すること、
    から成ることを特徴とする請求項1の方法。
  16. 少なくとも1個の重要でないサンプル・データ・ユニットが事前決定された値を含むことを特徴とする請求項15の方法。
  17. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音であることを特徴とする請求項15の方法。
  18. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さな部分であることを特徴とする請求項15の方法。
  19. バッファー内の連続的で少なくとも1個の第一部分集合のデータを通常の間隔で供給すること、もし、バッファー内のデータ量が第一基準に適合している場合に、連続的な第一部分集合内の少なくとも一部のデータを複写すること、
    からさらに成る請求項1の方法。
  20. バッファー内の少なくともひとつの第一部分集合のデータを受信部に供給することは、実時間プロトコールに基づき少なくともひとつの第一部分集合のデータを受信部に送ることからなることを特徴とする請求項19の方法。
  21. バッファー内のデータ量が第六基準に適合している場合、バッファー内の少なくとも一部のデータを廃棄すること、廃棄されたデータ量が受取った複数のデータ・グループのそれぞれのサイズより小さいこと、
    からさらに成っている請求項1の方法。
  22. 廃棄されるデータ量がバッファー内のデータ量によることを特徴とする請求項21の方法。
  23. 少なくとも一部のデータを廃棄することが、
    バッファー内のデータ量が第七基準に適合する場合、バッファー内のデータを廃棄しないこと、
    バッファー内のデータ量が第八基準に適合する場合、バッファーから第三の事前決定されたデータ量を廃棄すること、
    から成る請求項21の方法。
  24. バッファーから第三の事前決定されたデータ量を廃棄することが、1バイトを廃棄することから成っている請求項23の方法。
  25. バッファーから第三の事前決定されたデータ量を廃棄することが、1サンプルを廃棄することから成っている請求項23の方法。
  26. バッファーから第三の事前決定されたデータ量を廃棄することが、1サンプル・データ・ユニットを廃棄することから成っている請求項23の方法。
  27. 少なくとも一部のデータを廃棄することが、さらに、
    バッファー内のデータ量が第九基準に適合する場合、バッファーから第三の事前決定されたデータ量より大きな第四の事前決定されたデータ量を廃棄すること、
    から成る請求項23の方法。
  28. バッファー内で第三の事前決定されたデータ量が1バイトから成ることを特徴とする請求項27の方法。
  29. バッファー内で第三の事前決定されたデータ量が1サンプルから成ることを特徴とする請求項27の方法。
  30. バッファー内で第三の事前決定されたデータ量が1サンプル・データ・ユニットから成ることを特徴とする請求項27の方法。
  31. データの少なくとも一部を廃棄することが、
    少なくとも1個の重要でないサンプル・データ・ユニットを位置決めすること、
    位置決めされた少なくとも1個の重要でないサンプル・データ・ユニットを廃棄すること、
    から成ることを特徴とする請求項21の方法。
  32. 少なくとも1個の重要でないサンプル・データ・ユニットが事前決定された値を含んでいる請求項31の方法。
  33. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音である請求項31の方法。
  34. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さな部分である請求項31の方法。
  35. バッファー内で受取ったデータの少なくとも一部を記憶することは、
    受取ったデータ・グループのひとつの少なくとも一部が受取ったデータ・グループのひとつを受取る前に受信部に供給されたデータより古い場合、受取ったデータ・グループのひとつの少なくとも一部分を廃棄すること、及び、バッファー内で受取ったデータ・グループのひとつの残りがあればその残りを記憶すること、
    から成る請求項1の方法。
  36. さらに、
    受取ったデータ・グループを解読すること、
    から成り、その場合、受取ったデータの少なくとも一部を記憶することはバッファー内で解読したデータを記憶することから成っている請求項1の方法。
  37. さらに、受信部にデータを供給する前に受信部に供給されたデータを符号化することから成っている請求項36の方法。
  38. 複数のデータ・グループを受取ること、
    バッファー内で受取ったデータの少なくとも一部を記憶すること、
    バッファー内でデータ量を検出すること、
    バッファー内のデータ量が第一基準に適合する場合、バッファー内でデータの少なくとも一部を廃棄すること、廃棄されたデータ量は、複数の受取ったデータ・グループのそれぞれのサイズより小さいこと、
    から成っているバッファーを管理する方法。
  39. 廃棄されるデータ量がバッファー内のデータ量によることを特徴とする請求項38の方法。
  40. データの少なくとも一部を廃棄することは、
    バッファー内のデータ量が第二基準に適合している場合、バッファー内のデータを廃棄しないこと、
    バッファー内のデータ量の第三基準に適合している場合、バッファーから第三の事前決定されたデータ量を廃棄すること、
    から成っている請求項38の方法。
  41. バッファーから第三の事前決定されたデータ量を廃棄することが1バイトを廃棄することから成っている請求項40の方法。
  42. バッファーから第三の事前決定されたデータ量を廃棄することが1サンプルを廃棄することから成っている請求項40の方法。
  43. バッファーから第三の事前決定されたデータ量を廃棄することが1サンプル・データ・ユニットを廃棄することから成っている請求項40の方法。
  44. データの少なくとも一部を廃棄することが、さらに、
    バッファー内のデータ量が第四基準に適合している場合、バッファーから第三の事前決定されたデータ量より大きな第四の事前決定されたデータ量を廃棄すること、
    から成っている請求項40の方法。
  45. バッファー内の第三の事前決定されたデータ量が1バイトから成っている請求項44の方法。
  46. バッファー内の第三の事前決定されたデータ量が1サンプルから成っている請求項44の方法。
  47. バッファー内の第三の事前決定されたデータ量が1サンプル・データ・ユニットから成っている請求項44の方法。
  48. 第四の事前決定された量を廃棄することが、2バイトを廃棄することから成っている請求項44の方法。
  49. 第四の事前決定された量を廃棄することが、2サンプル・データ・ユニットを廃棄することから成っている請求項44の方法。
  50. データの少なくとも一部を廃棄することは、
    少なくとも1個の重要でないサンプル・データ・ユニットを位置決めすること、
    位置決めされた少なくとも1個の重要でないサンプル・データ・ユニットを廃棄するこ
    と、
    から成ることを特徴とする請求項38の方法。
  51. 少なくとも1個の重要でないサンプル・データ・ユニットが事前決定された値を含むことを特徴とする請求項50の方法。
  52. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音である請求項50の方法。
  53. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さな部分である請求項50の方法。
  54. 複数のデータ・グループを受取ること、
    受取ったデータの少なくとも一部をバッファー内に記憶すること、
    バッファー内のデータ量を検出すること、
    バッファー内のデータ量が第一基準に適合する場合、バッファー内のデータの少なくとも一部を複写すること、
    から成っているバッファーを管理する方法。
  55. 複写されたデータ量は、バッファー内のデータ量によることを特徴とする請求項54の方法。
  56. データの少なくとも一部を複写することは1バイトを複写することから成っている請求項54の方法。
  57. データの少なくとも一部を複写することは1サンプルを複写することから成っている請求項54の方法。
  58. データの少なくとも一部を複写することは1サンプル・データ・ユニットを複写することから成っている請求項54の方法。
  59. データの少なくとも一部を複写することは、
    少なくとも1個の重要でないサンプル・データ・ユニットを位置決めすること、
    位置決めされた少なくとも1個の重要でないサンプル・データ・ユニットを複写すること、
    から成る請求項54の方法。
  60. 少なくとも1個の重要でないサンプル・データ・ユニットが事前決定された値を含んでいる請求項59の方法。
  61. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する音響信号内の無音である請求項59の方法。
  62. 少なくとも1個の重要でないサンプル・データ・ユニットが対応する信号の変化がごく小さい部分である請求項59の方法。
  63. バッファーを管理する方法で、以下から成る方法:
    複数のデータ・グループを受取ること、
    受取ったデータの少なくとも一部をバッファー内に記憶すること、
    バッファー内のデータ量を検出すること、
    受信部にデータを供給することで、以下から成る方法:
    バッファー内のデータ量が第一基準に適合する場合、
    バッファー内でデータの第一部分を指定すること、
    受信部に指定したデータを供給すること、及び、
    バッファーのデータ量が第二基準に適合している場合、
    バッファー内でデータの第一部分より小さい第二部分を指定すること、
    バッファー内でデータの第二指定部分の少なくとも部分集合の第一複写を作成すること、
    バッファー内でデータの第二指定部分及び受信部向けの第一複写を受信部に供給すること、
  64. 受信部にデータを供給することが、さらに、
    もしバッファー内のデータ量が第三基準に適合する場合、
    バッファー内のデータの第二部分より小さい第三部分を指定すること、
    バッファー内のデータの第三指定部分の少なくとも部分集合の第一複写より大きな第二複写を作成すること、
    バッファー内のデータの第三指定部分及び第二複写を受信部に供給すること、
    から成る請求項63の方法。
  65. さらに、
    もし、バッファー内のデータ量が第四基準に適合している場合、バッファー内のデータを廃棄しないこと、
    もし、バッファー内のデータ量が第五基準に適合している場合、バッファーから第三の事前決定されたデータ量を廃棄すること、廃棄されるそのデータ量は複数の受取ったデータ・グループのそれぞれのサイズより小さいこと、
    から成る請求項64の方法。
  66. さらに、
    もし、バッファー内のデータ量が第六基準に適合する場合、第四の事前決定されたデータ量をバッファーから廃棄すること、廃棄されたデータ量は第三の事前決定された量より大きいが、複数の受取ったデータ・グループのそれぞれのサイズより少ないこと、
    から成る請求項65の方法。
  67. 受信部にデータを供給することは、その受信部にデータ・グループを供給すること、受信部に供給されたデータの各グループが、複数の受取ったデータ・グループのそれぞれと同じデータ量を含むこと、
    から成る請求項66の方法。
  68. バッファー内に受取ったデータの少なくとも一部を記憶することは、
    もし、受取ったデータ・グループのひとつの少なくとも一部が、受取ったデータ・グループのひとつを受取る前に受信部に供給されたデータより古い場合、受取ったデータ・グループのひとつの少なくとも一部分を廃棄すること、及び、バッファー内で受取ったデータ・グループのひとつの残りがあれば、その残りを記憶すること、
    から成っている請求項67の方法。
  69. さらに、
    受取ったデータ・グループを解読すること、
    その場合、受取ったデータの少なくとも一部を記憶することが、解読したデータをバッファー内に記憶することを含んでいること、
    から成る請求項68の方法。
  70. さらに、受信部にデータを供給する前に受信部に供給されたデータのコーディングを行うことから成る請求項69の方法。
  71. バッファーを管理する方法で、
    複数のデータ・グループを受取ること、
    受取ったデータの少なくとも一部をバッファー内に記憶すること、
    バッファー内のデータ量を検出すること、
    受信部にデータを供給すること、
    から成り、
    もし、バッファー内のデータ量が第一基準に適合した場合、
    バッファー内のデータの第一部分を指定すること、
    指定されたデータを受信部に供給すること、及び、
    もし、バッファー内のデータ量が第二基準に適合する場合、
    バッファー内でデータの第一部分より小さい第二部分を指定すること、
    バッファー内でデータの第三部分を指定すること、
    バッファー内の第二及び第三の指定された部分を受信部に供給すること、
    その後、バッファー内のデータの第二と指定された部分以外のデータと共に、バッファー内のデータの第三に指定された部分を受信部に供給すること、
    から成る方法。
  72. さらに、バッファーからデータの第三部分を除去せずに、バッファーからデータの第二部分を除去することから成る請求項71の方法。
  73. 受信部にデータを供給すること、さらに、
    もし、バッファー内のデータ量が第三基準に適合する場合、
    バッファー内のデータの第二部分より小さな第四部分を指定すること、
    バッファー内のデータの第五部分を指定すること、
    バッファー内のデータの第四及び第五の指定部分を受信部に供給すること、
    から成る請求項71の方法。
  74. さらに、
    もし、バッファー内のデータ量が第四基準に適合する場合、バッファー内のデータを廃棄しないこと、及び、
    もし、バッファー内のデータ量が第五基準に適合する場合、第三の事前決定されたデータ量をバッファーから廃棄すること、廃棄されたデータ量は、複数の受取ったデータ・グループのそれぞれのサイズより小さいこと、
    から成る請求項71の方法。
  75. バッファー内の受取ったデータの少なくとも一部を記憶することは、
    もし、受取ったデータ・グループのひとつの少なくとも一部が、受取ったデータ・グループのひとつを受取る前に受信部に供給されたデータより古い場合、受取ったデータ・グループのひとつの少なくとも一部を廃棄すること及び受取ったデータ・グループのひとつの残りがあるとすれば、それをバッファー内に記憶すること、
    から成る請求項71の方法。
JP2007503956A 2004-03-16 2005-03-10 ジッター・バッファーの管理 Pending JP2007532053A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55402404P 2004-03-16 2004-03-16
PCT/US2005/007647 WO2005089158A2 (en) 2004-03-16 2005-03-10 Jitter buffer management

Publications (1)

Publication Number Publication Date
JP2007532053A true JP2007532053A (ja) 2007-11-08

Family

ID=34994174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007503956A Pending JP2007532053A (ja) 2004-03-16 2005-03-10 ジッター・バッファーの管理

Country Status (4)

Country Link
US (1) US7499472B2 (ja)
EP (1) EP1754327A2 (ja)
JP (1) JP2007532053A (ja)
WO (1) WO2005089158A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014511526A (ja) * 2011-02-18 2014-05-15 アビニシオ テクノロジー エルエルシー ソート
WO2021095754A1 (ja) * 2019-11-12 2021-05-20 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8130074B2 (en) * 2003-09-11 2012-03-06 Telefonaktiebolaget Lm Ericsson (Publ) Method for discarding all segments corresponding to same packet in a buffer
US7688820B2 (en) * 2005-10-03 2010-03-30 Divitas Networks, Inc. Classification for media stream packets in a media gateway
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US7929571B2 (en) * 2006-01-12 2011-04-19 Cisco Technology, Inc. System and method for implementing a preemptive retransmit for error recovery in a communications environment
JP4744332B2 (ja) * 2006-03-22 2011-08-10 富士通株式会社 ゆらぎ吸収バッファ制御装置
US20080317241A1 (en) * 2006-06-14 2008-12-25 Derek Wang Code-based echo cancellation
US20080140767A1 (en) * 2006-06-14 2008-06-12 Prasad Rao Divitas description protocol and methods therefor
US20090016333A1 (en) * 2006-06-14 2009-01-15 Derek Wang Content-based adaptive jitter handling
US8000238B2 (en) * 2006-08-04 2011-08-16 Cisco Technology, Inc. System and method for detecting and regulating congestion in a communications environment
US7944823B1 (en) * 2006-09-01 2011-05-17 Cisco Technology, Inc. System and method for addressing dynamic congestion abatement for GSM suppression/compression
US9154395B2 (en) * 2006-10-05 2015-10-06 Cisco Technology, Inc. Method and system for optimizing a jitter buffer
US7626942B2 (en) * 2006-11-22 2009-12-01 Spectra Link Corp. Method of conducting an audio communications session using incorrect timestamps
US20080151765A1 (en) * 2006-12-20 2008-06-26 Sanal Chandran Cheruvathery Enhanced Jitter Buffer
KR20120034084A (ko) * 2007-01-10 2012-04-09 콸콤 인코포레이티드 멀티미디어 전화 통신을 위한 컨텐트- 및 링크-의존 코딩 적응 구조
GB0705329D0 (en) 2007-03-20 2007-04-25 Skype Ltd Method of transmitting data in a communication system
US7813342B2 (en) * 2007-03-26 2010-10-12 Gadelrab Serag Method and apparatus for writing network packets into computer memory
JP4995637B2 (ja) * 2007-05-29 2012-08-08 京セラ株式会社 通信装置および無線通信方法
US7733893B2 (en) * 2007-06-29 2010-06-08 Global Ip Solutions (Gips) Ab Method and receiver for determining a jitter buffer level
US9106800B2 (en) * 2007-08-31 2015-08-11 At&T Intellectual Property I, L.P. System and method of monitoring video data packet delivery
US8160112B2 (en) * 2007-09-17 2012-04-17 Cisco Technology, Inc. Buffering a media stream
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
US20090215438A1 (en) * 2008-02-23 2009-08-27 Ajay Mittal Methods for performing transparent callback
JP5083097B2 (ja) * 2008-07-30 2012-11-28 日本電気株式会社 ジッターバッファ制御方法と通信装置
US20100222053A1 (en) * 2009-02-27 2010-09-02 Girisrinivasarao Athulurutirumala Arrangement and methods for establishing a telecommunication connection based on a heuristic model
US8661083B2 (en) * 2009-04-04 2014-02-25 Oracle International Corporation Method and system for implementing sequence start and increment values for a resequencer
US9124448B2 (en) * 2009-04-04 2015-09-01 Oracle International Corporation Method and system for implementing a best efforts resequencer
US20100254388A1 (en) * 2009-04-04 2010-10-07 Oracle International Corporation Method and system for applying expressions on message payloads for a resequencer
US8526976B1 (en) * 2010-09-15 2013-09-03 Sprint Spectrum L.P. Duplicative transmission of page records in a page message
GB2495927B (en) * 2011-10-25 2015-07-15 Skype Jitter buffer
GB2495929B (en) 2011-10-25 2014-09-03 Skype Jitter buffer
GB2495928B (en) 2011-10-25 2016-06-15 Skype Jitter buffer
CN103888381A (zh) 2012-12-20 2014-06-25 杜比实验室特许公司 用于控制抖动缓冲器的装置和方法
RU2663361C2 (ru) 2013-06-21 2018-08-03 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Блок управления джиттер-буфером, аудиодекодер, способ и компьютерная программа
WO2014202672A2 (en) 2013-06-21 2014-12-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Time scaler, audio decoder, method and a computer program using a quality control
US9294413B2 (en) 2013-10-23 2016-03-22 Qualcomm Incorporated Media playout for VOIP applications
US9264374B2 (en) * 2013-10-23 2016-02-16 Qualcomm Incorporated Media playout for VOIP applications
US20150256598A1 (en) * 2014-03-10 2015-09-10 JamKazam, Inc. Distributed Recording Server And Related Methods For Interactive Music Systems
CN105099795A (zh) * 2014-04-15 2015-11-25 杜比实验室特许公司 抖动缓冲器水平估计
GB2521883B (en) * 2014-05-02 2016-03-30 Imagination Tech Ltd Media controller
US9800482B2 (en) 2015-04-29 2017-10-24 Ixia Signature-based latency extraction systems and related methods for network packet communications
CN105939289B (zh) * 2015-12-21 2019-03-12 小米科技有限责任公司 网络抖动处理方法、装置和终端设备
KR102419595B1 (ko) 2016-01-07 2022-07-11 삼성전자주식회사 재생 지연 조절 방법 및 이를 적용한 전자 장치
US10448283B2 (en) * 2017-08-07 2019-10-15 T-Mobile Usa, Inc. Dynamic predictive buffering
US10560357B2 (en) 2017-11-28 2020-02-11 Marvell World Trade Ltd. Distributed checksum calculation for communication packets
US10673994B2 (en) 2018-03-29 2020-06-02 Marvell International Ltd. Network packet generator employing multiple header templates and configurable hardware registers
US10469633B2 (en) * 2018-03-29 2019-11-05 Marvell World Trade Ltd. Low-latency pipeline for media-to-ethernet frame packaging
US12271319B2 (en) * 2018-09-27 2025-04-08 Intel Corporation Data stored or free space based FIFO buffer
US11496936B2 (en) 2020-06-29 2022-11-08 T-Mobile Usa, Inc. Cache adjustment before encountering different circumstance

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088412A (en) * 1997-07-14 2000-07-11 Vlsi Technology, Inc. Elastic buffer to interface digital systems
US7423983B1 (en) * 1999-09-20 2008-09-09 Broadcom Corporation Voice and data exchange over a packet based network
US6658027B1 (en) * 1999-08-16 2003-12-02 Nortel Networks Limited Jitter buffer management
US6980569B1 (en) * 1999-10-18 2005-12-27 Siemens Communications, Inc. Apparatus and method for optimizing packet length in ToL networks
US6859460B1 (en) * 1999-10-22 2005-02-22 Cisco Technology, Inc. System and method for providing multimedia jitter buffer adjustment for packet-switched networks
US20020018474A1 (en) * 2000-06-01 2002-02-14 Seabridge Ltd. Efficient packet transmission over ATM
US7006511B2 (en) * 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US7263109B2 (en) * 2002-03-11 2007-08-28 Conexant, Inc. Clock skew compensation for a jitter buffer
US7496086B2 (en) * 2002-04-30 2009-02-24 Alcatel-Lucent Usa Inc. Techniques for jitter buffer delay management
US7013318B2 (en) * 2002-05-29 2006-03-14 Raytheon Company Method and system for encapsulating cells
US7274660B2 (en) * 2002-08-15 2007-09-25 Motorola, Inc. Method of flow control
US8520519B2 (en) * 2002-09-20 2013-08-27 Broadcom Corporation External jitter buffer in a packet voice system
US7289451B2 (en) * 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014511526A (ja) * 2011-02-18 2014-05-15 アビニシオ テクノロジー エルエルシー ソート
WO2021095754A1 (ja) * 2019-11-12 2021-05-20 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム
US12322409B2 (en) 2019-11-12 2025-06-03 Sony Group Corporation Data processing apparatus, data processing method, and data processing program

Also Published As

Publication number Publication date
WO2005089158A3 (en) 2006-11-23
WO2005089158A2 (en) 2005-09-29
US7499472B2 (en) 2009-03-03
EP1754327A2 (en) 2007-02-21
US20050207437A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
JP2007532053A (ja) ジッター・バッファーの管理
KR101461697B1 (ko) 버퍼 제어 방법, 시스템 및 컴퓨터 판독 가능한 매체
US8279884B1 (en) Integrated adaptive jitter buffer
CN100334571C (zh) 网络媒体播放
EP2936770B1 (en) Apparatus and methods for controlling jitter buffer
US7450601B2 (en) Method and communication apparatus for controlling a jitter buffer
US8160112B2 (en) Buffering a media stream
US7908147B2 (en) Delay profiling in a communication system
JP4782973B2 (ja) オーディオおよびビデオ信号の同期化
US20030169755A1 (en) Clock skew compensation for a jitter buffer
EP3466001B1 (en) Media buffering
JP2017518656A (ja) Mmtpデカプセル化バッファのシグナリング及び動作
KR100677179B1 (ko) Ip 전화를 위한 동적 지연 관리
CN100512423C (zh) 补偿报文分组时延变化的系统和方法
AU2002310383A1 (en) Dynamic latency management for IP telephony
EP1662484B1 (en) Method and apparatus for processing asynchronous audio stream
CN107112019A (zh) 信号处理装置、信号处理方法、以及程序
Sreenan et al. Internet stream synchronization using Concord
JP2023161219A (ja) 送信装置、受信装置及びそれらのプログラム
KR100538001B1 (ko) 데이터 동기화 방법 및 이를 저장한 컴퓨터 판독 가능기록매체