JP2006135974A - 適応的バッファ遅延を有する音声受信機 - Google Patents

適応的バッファ遅延を有する音声受信機 Download PDF

Info

Publication number
JP2006135974A
JP2006135974A JP2005318033A JP2005318033A JP2006135974A JP 2006135974 A JP2006135974 A JP 2006135974A JP 2005318033 A JP2005318033 A JP 2005318033A JP 2005318033 A JP2005318033 A JP 2005318033A JP 2006135974 A JP2006135974 A JP 2006135974A
Authority
JP
Japan
Prior art keywords
delay
packet
interval
recommended
buffer delay
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
JP2005318033A
Other languages
English (en)
Inventor
Alexander Talalai
アレクサンダー・タラライ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZULTYS TECHNOLOGIES
Original Assignee
ZULTYS TECHNOLOGIES
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 ZULTYS TECHNOLOGIES filed Critical ZULTYS TECHNOLOGIES
Publication of JP2006135974A publication Critical patent/JP2006135974A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • 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
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6489Buffer Management, Threshold setting, Scheduling, Shaping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Telephone Function (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Abstract

【課題】一般的に言えば、ジッタ・バッファ遅延の増加および減少のための体系的技法を提供する。
【解決手段】開示の技法は、典型的には、指定された区間上の受信されたデータを評価すること、区間遅延が第1の閾値を超えた場合は推奨バッファ遅延を増加させ、区間遅延が第2の閾値より小さい場合は推奨遅延バッファを減少させること、アンダーフロー状態が識別されるまでの時間にわたり推奨バッファ遅延を減少させること、および/または、アンダーフロー状態の識別に応答して推奨バッファ遅延を減少させることのうちからの様々な組合わせを用いる。
【選択図】図3

Description

本発明は、適応的バッファ遅延を有する音声受信機に関し、特に、インターネットを介した電話通信に使用することができるような、ボイス・オーバIP(インターネット・プロトコル)即ちVoIP受信機に適用される。
近年、インターネットを介した電話通信およびVoIPが、オフィス環境において、ますます普及しつつある。前者は、主に、以前の電話システムによって提供できるコストよりも低いコストのためであり、後者は、主に、以前の電話システムよりも優れた柔軟性(オフィスのコンピュータ・システムとの、よりシームレスな統合を含む)のためである。
従来のVoIPシステムの受信部分の単純なブロック図が、図1に示されている。図1では、音声通信は、典型的にはインターネットまたは他の何らかのインターネット・プロトコル(IP)ネットワークである通信チャネル2を介して、パケット・ベースのデジタル・データとして受信される。ネットワーク・インターフェース回路/ソフトウェア3は、このようなパケットを、一般にジッタ・バッファと呼ばれる遅延バッファ5に提供する。バッファ5の出力は、デジタル処理されたデジタル音声データのストリームであり、次いで、スピーカ、ヘッドフォン・セット、または他の音声出力装置8によって再生される前に、音声チャネル7においてアナログ音声信号に変換される。
従来から、ジッタ・バッファ5は、VoIP受信機の本質的なコンポーネントであった。その用途は、データ・パケットの遅延の変化、パケットの損失、およびパケット順序の変更のような、ネットワークまたは他の通信チャネル2によって引き起こされる歪みを補償することである。それを行うために、ジッタ・バッファ5は、受け取った音声データを、音声チャネル7に転送するのに先立って、ある期間にわたり保持する。この遅延は、理想的には、データ・パケットの適切な並替えと、関連のパケット遅延の調整を可能にし、それによって、送信された音声信号を、できる限り厳密に(即ち、データ・パケットが、損なわれない、あるいは望みが持てないほど遅延しない範囲で)複製するために充分である。
次に、このプロセスは、図2A〜Cを参照して、更に詳しく説明される。送信機(図示せず)は、音声データを断片に分割する。通常、このような断片は、同じ時間の長さを有する。次いで、送信機エンコーダは、これらの音声断片を、デジタル・パケット11〜28に変換し、これらのパケットを、ネットワークまたは他の通信チャネル2を介して受信機に送る。パケットを符号化し送信するために必要な時間量の変化を無視した場合、2つの連続するパケットの送信の時間区間は、第2のパケットの音声断片としての時間の長さである(即ち、パケットは、その音声断片の終端で準備ができる)。従って、送信データは、図2Aに示されるように、規則正しく時間指定された一連のデータ・パケット11〜28として現れる。
受信機1が、送信機がこれらのパケットを送信した後、即座に(または一定の遅延の後)獲得したとする場合、すべてのパケットは、同じ長さを有し、受信側の音声の再生は、直進的である。受信機1は、単純に、各デジタル・パケットを受け取った後に直ちに音声断片に変換する。次いで、音声断片は、受信側の音声チャネル7によって直ちに再生される。音声チャネル7がその断片の再生を終えるとすぐに、受信機1は、次のデジタル・パケットを受け取り、音声断片に変換する。
このような理想的シナリオは、様々な理由によって頓挫し得る。そのうち最も重大な理由は、ネットワークの歪みの存在である。パケット長の変化も、原因となり得る。
このような歪みの一部が図2Bに示されており、図2Bは、(図2Aに示される)最初に送信されたパケットが、いつ受信されるかを表す時間線を示している。均一の遅延を有する理想的通信チャネル2では、図2Bは、均一の遅延によって右方向にシフトした図2Aの正確な複製となる。しかし、図2Bは、そうではなく、より正確に、パケットが様々な時間の長さで遅延する現実の通信チャネル2を反映している。実際、幾つかの事例では、他のパケット20に先立ち送信されたパケット19は、後続して送信されたパケット20の後で、受信機1に到達することがある。通信チャネル2において幾つかの送信されたパケットが完全に失われる、つまり、受信機1に決して到達しない状況は、図2Bに示されていない。
観察できる2つの主要な問題がある。第1の問題は、アンダーフローである。音声チャネル7は、現行の音声断片に関して終了しているが、次のパケットは、まだ受信されていない。第2の問題は、オーバーフローである。パケットは、受信されているが、音声チャネル7は、先行の音声断片に関して終了していない。上記から分かるように、この2つの問題は関係しており、ジッタ・バッファ5の遅延時間を調整することにより、これらの間のトレードオフが可能になる。
第2の問題は、容易に解決することができる。受信機は、単純に、音声チャネルでパケットが処理される前に、到着したパケットを格納するための格納ユニットを含む。このユニットをジッタ・バッファ5と呼ぶ。ジッタ・バッファ5の用途は、パケットを、格納し、適切な順序に分類し、適切な時間に音声チャネル7に転送することである。それにより、オーバーフローを受信機1の動作の通常のモードに変換する。
ジッタ・バッファ5が、データ・フローを制御し、適切な順序および時間に、デジタル・パケットを音声チャネル7に供給することを可能にするために、送信機は、各デジタル・パケット内に、タイムスタンプ、即ち、音声断片の開始時間、ならびにパケット・ストリームにおけるパケットのシーケンス番号を含む。
従来のジッタ・バッファ5は、パケットが受信機によって受信されたときと、音声チャネルが開始しパケットを再生するときの間の遅延を与える。この遅延は、ジッタ・バッファ遅延である。
ジッタ・バッファ遅延を、通信チャネル2の最大の期待される遅延に設定することによって、アンダーフローの問題は、完全に除去することができ、バッファは、単に、期待されるオーバーフローを収容するのに充分な大きさであることが必要とされる。しかし、この解決策は、一般に、以下の理由のため不充分である。
一方向の音声遅延は、音声チャネル遅延を別とすれば、以下の3つの遅延の和を含む。
計量遅延 各パケットが、その音声断片の終了後にのみ送信され得るため、この遅延は、断片の長さおよび結果と等しい。
ネットワーク遅延 これは、パケットを送信機から受信機に運ぶために必要な時間量である。
ジッタ・バッファ遅延 この遅延は、上記に述べたものであり、後で更に詳しく説明する。
電話の会話では、一方向遅延の両方向の和である往復遅延が、応答時間を規定する。この遅延は、ある閾値を上回る場合、明らかに否定的なものとなる。これは、上記で示唆されたように、バッファ遅延が、通信チャネル2の最大の期待される遅延に単純に設定された場合にしばしば当てはまる。
従って、通常、バッファ遅延は、パケット損失の最小化と、一方向または両方向の遅延の最小化の間のトレードオフとして選択される。図2Cは、このようなトレードオフが行われた後の、バッファ5の典型的な出力を示す。図2Cでは、バッファ5が一定の遅延を有することが想定される。次いで、(下記のものを除く)受信データ・パケット11〜28は、図2Bに示された時間線に従って、受信され、バッファ5に格納される。最後に、データ・パケットは、図2Cに示される時間線の、(下記のものを除く)図2Aに全体的に示される順序がシフトされたバージョンに従って、バッファ5から読み出される。
バッファ5の遅延は、通信チャネル2の最大の期待される遅延よりも小さく制限されているため、幾つかの特定のデータ・パケット(即ち、この例では、パケット16、17、19)が受信機1に到着するのは、図2Cに示された再生される順序で提供するためには遅すぎる。結果として、遅れたこれらのパケットは、受信機1で再生される音声において省略され、この音声出力における無音ギャップ(あるいは、雑音または他の人工コンテンツで充たされたギャップ)をもたらす。言い換えれば、廃棄されたパケットのこの特定の期待周波数に起因する音声の劣化は、電話の会話に2方向の遅延が追加的に導入されるよりも、聞き手にとって不快ではないという判断が行われる。
上述の例は、固定遅延ジッタ・バッファ5に関係する。(変化する遅延時間を有する)適応的バッファはまた、通信チャネル2の状態の変更を調整するために提案されている。
(発明の概要)
しかし、本発明者は、既存の適応的ジッタ・バッファについての非効率な点を見出した。従って、本発明は、従来の適応的ジッタ・バッファに対する改善に関する。一般的に言えば、本発明は、ジッタ・バッファの遅延の増加および減少を行うための体系的な技法を提供し、その技法は、指定された区間で受け取ったデータを評価すること、区間遅延が第1の閾値を超えた場合、推奨バッファ遅延を増加し、区間遅延が第2の閾値より小さい場合、推奨バッファ遅延を減少すること、アンダーフロー状態が識別されるまでの時間にわたり推奨バッファ遅延の減少させること、および/または、アンダーフロー状態の識別に応答して推奨バッファ遅延を増加することのうち様々な組合せを利用する。
従って、本発明は、一態様では、デジタル音声信号を受信し処理することを対象にし、伝送チャネルを介した様々なパケット遅延を収容するように、デジタル音声データのパケットは、伝送チャネルを介して受信され、バッファ遅延を用いてバッファされる。次いで、バッファされたパケットは、出力音声信号を作成するために処理される。バッファ遅延は、推奨バッファ遅延に基づいて周期的に調整される。この推奨バファ遅延は、初期値から開始し、以下のように反復的に更新される。最初に、受信されたパケットの区間が選択され、区間パケット遅延を生成するために、選択された区間における少なくとも1つのパケット遅延の関数が計算される(例えば、選択された区間における最大のパケット遅延)。推奨バッファ遅延は、区間パケット遅延が、第1の閾値(例えば、推奨バッファ遅延の現行値)を超えた場合、(例えば、予め定められた定数値のような、区間におけるパケット遅延と独立している量が)増加され、また、区間パケット遅延が、第2の閾値(第2の閾値は、第1の閾値よりも大きくない。)より小さい場合、減少される。次いで、上述の推奨バッファ遅延の更新ステップが、(例えば、複数の受信パケットの後続の隣接区間にわたって実質的に連続して)反復される。本発明の一態様によれば、受信されたパケットの各区間は、このような区間における少なくとも1つのパケット遅延に基づく期間を有する。対象のパケットに対するパケット遅延は、対象のパケット内に含まれる送信タイムスタンプに基づいて決定されることが好ましい。
前述の構成、特に推奨バッファ遅延の更新ステップによって、ジッタ・バッファ遅延は、多くの場合、適切なレベルに維持されることが可能であり、従って、パケット損失の最小化と通信遅延の最小化との間の適切なトレードオフが与えられる。
本発明のより具体的な幾つかの態様において、各連続区間の長さは、第1の受信パケットに対するパケット遅延を用いて、最初に遅延ベースとして決定され、次いで、遅延ベースが、後続の受信パケットに対するパケット遅延(例えば、生のパケット遅延)を超えるまで、連続した各受信パケットに対する遅延ベースを体系的に増加する。後続の受信パケットに対するパケット遅延を超える時点で、指定された区間は完了し、新しい区間が開始すると見なされ、遅延ベースは、先行の区間の最後のパケットに対するパケット遅延に設定される。このような技法は、ジッタ・バッファの実際の遅延を修正するために、適切な時間で終了する傾向がある可変長の区間を定義することができる。
各受信パケットに対する遅延ベースの増分量は、現行の区間の期間の寸法に基づくことが好ましく、現行の区間の期間の寸法は、現在受け取ったパケットに関する受信時間の差異(代わりに送信時間の差異を用いることもできる)に基づいている。結果として、区間は、増加した充分な長さの期間の遅延時間の後に完了すると見なされ得る。
また、好ましくは、範囲は、第1の閾値と第2の閾値の間に存在し、そのような範囲に区間パケット遅延が含まれる場合、推奨バッファ遅延は、より少量だけ増加される。このような技術は、より著しく大きいパケット遅延が検出されない場合、推奨バッファ遅延を、かなり狭い範囲内に維持するために役立つことができる。
上記の推奨バッファ遅延における減少量は、推奨バッファ遅延が最後に増加されてからの時間に基づくことが好ましい。例えば、この減少量は、そうした時間に基づいて単調に増加させることができる。
本発明の好ましい実施形態では、新しい区間は、受信パケットにおけるパケット遅延時間の突然の増大があるときに開始すると見なされ、以下の条件、即ち(1)パケット遅延時間の増加が、ある充分な期間にわたり継続している、または(2)パケット遅延時間が、許容レベルまで減少している、のうち1つまたは幾つかが発生するまで続く。
他の態様では、本発明は、デジタル音声信号を受信し処理することを対象とし、送信チャネルを介して複数の異なるパケット遅延を収容するために、デジタル音声データのパケットは、送信チャネルを介して受信され、バッファ遅延を用いてバッファされる。次いで、バッファされたパケットは、出力音声信号を生成するために処理される。バッファ遅延は、推奨バッファ遅延に基づいて調整され、この推奨バッファ遅延は、以下のように、反復的に更新され、初期値から開始する。最初に、推奨バッファ遅延は、アンダーフロー状態(例えば、観測される区間にわたるパケット遅延の関数が、指定の閾値を超える)が識別されるまで、(例えば、線形的減少のような、少なくとも拡張された期間に固定の関数に従って、)時間とともに減少される。アンダーフロー状態を識別すると、それに応答し、推奨バッファ遅延は、(例えば、定数値など特定のパケット遅延と独立した量だけ)増加される。次いで、上記の推奨バッファ遅延更新ステップが、反復される。
連続的かつ漸進的に推奨バッファ遅延を減少させることにより、上述のような周期的な増加に従って、本発明は、推奨バッファ遅延を、妥当な範囲内にしばしば維持することができる。つまり、バッファ遅延は、一般的には、損失パケットの最小化と通信遅延の最小化との間の適切なトレードオフを表す値に持続的に維持され得る。
対象のパケットに対するパケット遅延は、そのパケット内に含まれる送信タイムスタンプに基づいて決定されることが好ましい。上述の推奨バッファ遅延の増加は、(例えば、増加を引き起こす閾値条件を充たすこと以外の)特定のパケット遅延に依存しないが、代替実施形態では、このような増加は、(観測される区間に発生する)パケット遅延の関数、例えば、継続的に変化する関数、または各閾値毎に異なる増分を有する複数の閾値の使用などに、実際に基づくことができる。
本発明のある実施形態では、送信における休止が識別されるまで、推奨遅延の変更に対する実際のバッファ遅延調整は、行われない。他の実施形態では、バッファ遅延は、推奨バッファ遅延の任意の変更に基づいて即座に調整される。
なお、上述の要約は、単に、本発明の一般的性質の簡単な説明を提供することを目的としている。特許請求の範囲と以下の好ましい実施形態の詳細な説明を、添付の図面と併せて参照することにより、本発明のより完全な理解を得ることができる。
ジッタ・バッファ遅延の制御
この節では、ジッタ・バッファ遅延の制御に関連する幾つかの概念について論じる。単純な言明から始める。送信機、ネットワーク、および受信機の何れも、音声の順序を損なうことも変更することもしていない場合、一方向遅延のみが、適切な時に増加することができる。
実際、A0およびB0(B0は、A0の後である。)は、ソース音声(送信入力)における、あるポイントであり、A1およびA0は、受信機出力音声における対応するポイントであり、T(X)は、イベントXの時間とすると、時間区間[T(A0),T(B0)]を充たすすべての音声は、[T(A1),T(B1)]にあるので、
T(B1)−T(A1)≧T(B0)−T(A0)
が成り立つ。つまり、
T(B1)−T(B0)≧T(A1)−T(A0)
であり、これにより上記の言明が証明される。
これは、デジタルの場合には、送信機と受信機が異なるタイマを有するため、必ずしも当てはまらない。しかし、分析を簡単にするために、少なくともそれらのクロックが同期していると仮定した場合、近似的に成り立つ。
ジッタ・バッファが空のとき、アンダーフロー状態で音声チャネルを維持する以外の選択肢はない。最終的にパケットが受信されたとき、パケットは、音声チャネルに送られる。この時点から、少なくともこのパケットの遅延と等しい量だけ、すべての他のパケットが遅延される。
音声信号は、アンダーフロー状態にあるとき、ある種の音、即ち、完全な無音、雑音、または他の何らかの人工音におけるギャップを埋める。何れにしても、音質のいくらかの劣化が、そのギャップの間にある。
次のギャップは、現行のギャップをもたらしたパケットが有する遅延よりも大きい遅延を有するパケットによってのみ、もたらされ得る。ジッタ・バッファ遅延がより大きいほど、ギャップによってもたらされる音声劣化の可能性が低くなる。つまり、充分なジッタ・バッファ遅延は、音質の損失なしにネットワーク時間ジッタから回復することに役立つことができる。この議論から、2つの結論を導くことができる。
第1に、ジッタ・バッファ遅延の増大は、任意の適切なジッタ・バッファの実装で、多かれ少なかれ自動的に起きるべき重大な効果である。第2に、累積された遅延を減少させるために、いくらかの音声が廃棄されるべきである。これは、送信機、ジッタ・バッファ、または受信機音声チャネルによって、行われる。
もちろん、いくらかの音声データを廃棄することも、音質の劣化をもたらすが、大きい遅延によって引き起こされる長期の不快を除去するための一時的劣化となり得る。また、音声データの除去は、音声データが重大ではない期間に(例えば、想定されている休止または他の無音の間に)行われるようにスケジュールすることができる。ジッタ・バッファ遅延を増加または減少する能力は、新規の遅延はどれほど大きくすべきか?という非常に重要な問題を、提起する。遅延が非常に短い場合、遅延が適切なサイズに達する前に、ネットワーク時間ジッタによって追加のギャップがもたらされることになる。選ばれた遅延が、依然として大きすぎる場合、再度それを減少させる必要があり、それは音声の他の劣化を生じることになる。
送信機は、DTX(不連続伝送、Discontinuous Transmission)機能をサポートする場合、一部の音声を廃棄することができる。送信機は、入力音声において無音を検出したとき、その無音セグメントの間、パケットを通信チャネル2に送信するのを停止する。それにより、無音区間の後に音声を再開するための適切な時点を選択する自由を受信機は、与えられる。その時点で、累積された遅延を減少することが可能である。
しかし、DTX機能の使用が、常に許容されるとは限らない。更に、その機能が使用された場合でも、許容される遅延を維持するために充分な無音があることは保証されない。最後に、同じ問題、即ち遅延の減少の際にどんなサイズの遅延を選ぶべきかという問題が、依然として残る。従って、ジッタ・バッファは、ジッタ・バッファ遅延に対する望ましいレベルの制御を可能にするために、それ自体で音声パケットの廃棄を開始すべきである。
「固定遅延」(fixed delay)と呼ばれるジッタ・バッファ方式は、概念として最も単純であるが、実装においてはそうではない。セッションの開始に当たり、ジッタ・バッファは、予め定められた時間量にわたり、着信パケットを維持する。その初期遅延は、ネットワークにおける時間ジッタよりも、大きくすべきである。その場合、音声におけるギャップを有することは決してない。このような固定的方式は、ネットワークにおける遅延が、予期される遅延を超えるとき、問題が発生することになる。この方式はまた、送信機と受信機のタイマの差異を補償することに関して、技術的問題がある。最終的に、ネットワーク状態が良好なときでも、大きな遅延をもたらすことになる。
従来の最も典型的な「適応的遅延」(adaptive delay)ジッタ・バッファ技法は、遅延蓄積の生来のプロセスを利用する。それらの技法では、通常、小さい(またはゼロの)遅延でセッションを開始する。次いで、その遅延は、ジッタ・バッファが空になったときに自動的に増加され、その瞬間における音声の劣化を引き起こす。受信機は、最終的に、音声ストリームの任意の部分を再生することができる。しかし、遅延の減少のための何らかの準備なしには、この成果の代償として遅延が無制限に増大する。
本発明の主題は、バッファの遅延を適切な境界に維持する傾向がある遅延減少を有する、技法および適応的ジッタ・バッファである。本発明による技法は、例えば、送信機がDTX機能を利用するとき、または受信機自体が無音の期間を検出するとき、無音セグメント後の継続的な遅延の評価および修正のために用いることができる。
推奨バッファ遅延調整
図3は、本発明による、VoIP受信機50の簡単なブロック図を示す。図示のように、受信機50は、バッファ4の遅延を調整するための(ハードウェア、またはソフトウェアもしくはファームウェアに全体が実装される、あるいはそれらの任意の組合せに実装され得る)要素52を含むことを除いて、図1に示される受信機1と同じである。より詳細には、要素52は、本発明による技法を利用して、インターフェース3から出力されるデータ・パケットを、つまりパケットが受け取られる順序を監視し、推奨バッファ遅延を維持し更新し、次いで、それに従ってバッファ4の実際の遅延を変更する。
このような調整を達成するために、要素52は、推奨遅延を決定し、次いでこの推奨遅延に基づいてバッファ4の実際の遅延を修正する、2段階のプロセスを用いる。以下でより詳細に論じるように、実際の遅延修正を行うためのより適切な時間まで、推奨遅延が変更されるべきあるいは保留され得るという各決定の後、即座にそのような修正を行うことができる。
図4は、本発明の典型的な実施形態による、推奨遅延を生成するための流れ図を示す。最初に、ステップ71で、(例えば、インターフェース3からの出力として)受信されたデータ・パケットの区間が、選択される。このような区間を選択するための好ましい技法は、下記でより詳細に論じられる。しかし、一般に、オンザフライで受け取ったパケットデータの隣接区間を選択すること、即ち、新しいデータ・パケットを受け取る毎に、先行の区間が完了しかつ新しい区間が開始したと見なされるブレーク・ポイントを選択することが好ましい。従って、本発明の好ましい実施形態においては、区間は、異なる期間を有しかつ有することができ、区間が完了と見なされるとすぐに、本発明の技法の他の幾つかのステップに従う処理ができる状態になる。
ステップ72で、「区間遅延」dが、区間におけるパケット遅延に基づいて決定される。この目的のために、各受信パケットは、任意の様々な異なる方法で定義することができるパケット遅延を有すると見なされる。本発明の好ましい実施形態では、個別のパケットに対するパケット遅延は、下記に定義されるような、そのパケットの相対的パケット遅延RelativeDelayである。しかし、パケット遅延を決定するために、他の任意の様々な技法も利用され得る。
本発明の好ましい実施形態では、区間遅延dは、区間における最大パケット遅延(例えば、最大RelativeDelay)として定義される。しかし、対象の区間において受け取ったパケットに対し、任意の他のパケット遅延の関数、例えば、平均値や中央値などを代わりに用いることもできる。
ステップ74で、ステップ72で識別された区間遅延dが、指定された第1の閾値TH1より大きいかどうかを決定する。好ましくは、TH1は、ジッタ・バッファ4に対する現行の推奨遅延Rdlyの値である。しかし、TH1は、代わりに、ジッタ・バッファ4に対する現行の推奨遅延Rdlyの倍数や他の関数など任意の他の値とすることもできる。
ステップ74の試験に合格した場合、ステップ76で、推奨遅延Rdlyが増加される。これは、本発明の好ましい実施形態では、推奨遅延Rdlyを、固定量RDLY_BIG_BUMPずつ単純に増分していくことによって達成される。この量は、例えば、10〜400ミリ秒(ms)とすることができるが、より好ましくは、典型的な通信チャネル2に対しては20ミリ秒(即ち、この実施形態において160サンプル)であり、非常に良好な通信チャネル2に対しては10ミリ秒まで短縮される。使用される値RDLY_BIG_BUMPがより大きくなると、より早くジッタ・バッファがその推奨遅延の適切なレベルに達するが、より大きな値により、行過ぎ量の危険が生じる。
あるいは、ステップ76における増加を、区間遅延dとTH1との差の関数のような変数とすることができる。何れにしても、ステップ76の後、次の区分を選択し処理するために、ステップ71に、処理が戻る。
ステップ74の試験に合格しない場合、代わりにステップ78に、処理が進み、区間遅延dが第2の閾値TH2より小さいかどうかについて決定が行われる。TH2は、安全マージンRDLY_SAFEより少ない、ジッタ・バッファ4に対する現行の推奨遅延Rdlyの値であることが好ましい。このような安全マージンRDLY_SAFEは、好ましくは、およそRDLY_BIG_BUMPと同じであるか、又は、それより大きい固定値である。この値は、例えば、デフォルトとして、40ミリ秒とすることができる。しかし、TH2は、代わりに、固定であれ可変であれ任意の他の値とすることができる。例えば、TH2は、0とすることもでき、代替形態では、ジッタ・バッファ4に対する現行の推奨遅延Rdlyの倍数または他の関数とすることもできる。
ステップ78の試験に合格した場合、ステップ79に、処理が進み、推奨遅延Rdlyが減少される。本発明の好ましい実施形態では、このような減少の量は、区間の期間に基づき、より好ましくは、区間の期間に比例し、即ち、Rdly=Rdlyj−1−l/TCdlyである。ここで、式中、lは、ミリ秒単位の区間の期間であり、TCdlyは、システムの挙動パラメータである。時間定数TCdlyがより小さくなると、ジッタ・バッファ4は、より積極的に遅延を減少させる。本発明の好ましい実施形態では、TCdlyは、区間100〜1000から選択される(やはり、lはミリ秒単位で表される)。この実施形態では、TCdly時間定数に対してデフォルトとして240の値を用いる。RDLY_BIG_BUMP値は、上記で示唆された公称値を超えて増加される場合、行過ぎ量を補正するために、時間定数TCdlyを減少することが望ましい。
ステップ78の試験に合格しない場合、ステップ81に、処理が進み、推奨遅延Rdlyが増分されるが、この増分は、ステップ76で適用される増分より少ない(好ましくは、大幅により小さい量であり、例えば一桁小さい)量RDLY_SMALL_BUMPで行われる。本発明の好ましい実施形態では、RDLY_SMALL_BUMPが固定されている。例えば、それは、数ミリ秒(即ち、RDLY_BIG_BUMPより一桁少ない)にすることができ、より好ましくは、1ミリ秒である。
あるいは、ステップ81における増加は、区間遅延d、TH1、および/またはTH2の間の差異の関数のような変数とすることができる。何れにしても、ステップ78の後、次の区間を選択し処理するために、ステップ71に、処理が戻る。
更に、ステップ81は、(例えば、RDLY_SMALL_BUMPを0にして)完全に省略され得ることに留意されたい。
この特定の好ましい実施形態を要約すると、推奨遅延の値Rdlyは、下記のように、区間遅延d、および区間の期間lに基づいて、各区間の終わりで反復的に更新される。
・ If d>Rdlyj−1,then
Rdly=Rdlyj−1+RDLY_BIG_BUMP;
・ Else if d>(Rdlyj−1−RDLY_SAFE),then
Rdly=Rdlyj−1+RDLY_SMALL_BUMP;
・ Else Rdly=Rdlyj−1−l/TCdly
上式において、RDLY_BIG_BUMP、RDLY_SMALL_BUMP、RDLY_SAFEおよびTCdlyは、ジッタ・バッファ4の挙動パラメータである。推奨遅延Rdlyは、事例毎に増加される。それは、区間中に多数回は更新されず、区間遅延dは、上述の2つの閾値と比較するときを除いて、どれほど大きいか考慮されない。ジッタ・バッファ4におけるdまたはより大きい遅延を有することを推奨するために、RDLY_BIG_BUMPとTCdlyとの比率は、Rdlyに近い遅延dを有する区間が生じる頻度を定義する。
オプションのパラメータRDLY_SAFEおよびRDLY_SMALL_BUMPは、推奨遅延Rdlyが、区間遅延で比較的小さい量の変化が起きるとき、減少するまたは過度に増分されるのを防止する。RDLY_SMALL_BUMPの値は、RDLY_BIG_BUMPの値より小さく(好ましくは非常に小さく)、上述のように、0までの小さい値とすることができる。
区間の選択
前述の技法では、推奨遅延Rdlyは、区間遅延dに基づいて、各区間jの終わりで更新される。ここで、個々の区間を選択するための選択肢について論じる。最も単純な技法では、固定期間を有する通常の区間を利用することである。この技法を用いる場合、推奨遅延Rdlyは、周期的な区間で更新される。その結果、バッファ4の実際の遅延を変更するための適切な時間は、しばしば、推奨遅延Rdlyの更新と一致しない。このような場合、(後で詳しく述べる)図8に示される技法を、実際のバッファ遅延を変更するための適切な時間を選択するために利用することができる。
より好ましくは、本発明に利用される区間は、バッファ遅延を調整するための適切な時点におよそ一致するように選択された可変の期間を有する。現行の区間を終了する時、および新しい区間を開始する時を選択するための技法を、図5を参照して説明する。
ステップ101で、初期値が、「sliding delay base(スライディング遅延ベース)」変数dmに割り当てられる。この初期値は、後述するように、短時間の後、その値が通信チャネル2の特性に合わせて調整されるため、重要ではない。その値は、例えば、受信された第1のパケットの生の遅延、このような遅延の関数、または、履歴の傾向に基づいて選択された値に設定され得る。
これに関連して、好ましくは、受信されたパケットiの生の遅延RawDelayは、パケットが受信機50によって受信された時間と、送信機によってパケット内に含められたタイムスタンプの間の差異として定義される。パケットの生の遅延は、一般に、絶対値としての意味はなく、生の遅延の間の差異としてのみ意味がある。リアルタイム・トランスポート・プロトコル(RTP)の仕様によれば、送信機は、現行セッションにおいて、すべてのタイムスタンプに対して同じ任意の値を加えるべきである。
以下で分かるように、スライディング遅延ベースは、ある期間における最小の生の遅延として大まかに定義される。本発明の好ましい実施形態において計算される反復的方法については、後でより詳しく論じられる。
ステップ103で、新しいパケットが受信され、その新しい遅延RawDelayが識別される。更に、この値は、埋め込まれたタイムスタンプを、パケットが受信された時間から単純に差し引くことによって決定される。
ステップ105で、スライディング遅延ベースは、現在のパケットに基づいて増分される。スライディング遅延ベースの増分は、好ましくは、現在のパケットの受信時間と、先行の受信パケットの受信時間との差に基づいて行われる。より好ましくは、その遅延ベースは、受信パケット間で定率で線形的に増大する。従って、
dm=dT/TCr+dmi−1
であり、ここで、式中、
dmは、遅延ベースの新しい値であり、
dTは、受信時間における、現在のパケットと、dmの値を更新するために最後に使用された先行のパケットとの間の差分であり(あるいは、代わりに送信時間における差分を用いることもできる)、
TCrは、スライディングベースdmが、より小さな遅延が発生しなかった場合、1ms上昇するために必要な時間区間を定義する挙動パラメータであり、
dmi−1は、先行の遅延ベースの値である。
送信クロックと受信クロックの間の(0.1%オフまでの)あり得る差異に対処するために、TCrの値は、(dTがミリ秒単位で表されると想定して)1000未満であることが好ましい。ネットワーク状態がより良好になれば、より大きなTCrの値を使用することができる。区間における値は、100から1000までが妥当に思われる。240などの値が、デフォルト値として考えられる。
ステップ107で、新しい生のパケット遅延RawDelayが、現行の遅延ベースdmより小さいまたは等しいかどうかについて決定が行われる。決定の回答が否定の場合、処理は、ステップ108に進んで、(下記で論じる)新しいパケットの相対的パケット遅延を決定し、その後、次のパケットを受信し処理するためにステップ103に戻る。一方、ステップ107で決定の回答が肯定である場合、パケットは、「フロア・パケット(floor packet)」として参照することができ、新しいフロア・パケットの識別に基づいてステップ109に処理が進む。
ステップ109で、遅延ベースdmは、新しい生のパケット遅延RawDelayに対して調整され、つまり、dm=RawDelayとなる。次いで、ステップ110で、新しいパケットに対する相対的パケット遅延が、決定される。
ステップ108及びステップ110の処理は、好ましくは同じであることに留意されたい。より好ましくは、新しいパケットRelativeDelayに対する相対的パケット遅延は、所与のパケットiについての、生の遅延RawDelayとスライディング遅延ベースdmとの間の差として決定される。この計算は、ステップ109における対象のパケットに対してスライディング遅延ベースの調整がある場合は、それを行った後で実行されるべきである。その結果、相対的パケット遅延は、負になり得ない。相対的パケット遅延が0の場合、パケットは、「フロア・パケット」として参照される。
ステップ111で、(ステップ107で行われた決定のため)現在のパケットが、現行区間で最後のパケットと見なされる。次いで、例えば図4に関連して先に述べた技法に従って、この現行区間を処理することができる。同時に、新しい区間が開始したと見なされ、つまり、新しい区間に対する初期遅延ベースdmとして現在のパケットの生の遅延が使用される。その後、新しい区間に対する最初のパケットを受信し処理するために、処理は、ステップ103に戻る。
次に、区間を選択しそれらに基づいて推奨遅延を更新するための、前述の技法の好ましい実施形態を示すために、図6および図7を参照して例を説明する。具体的には、図6は、受信されたパケット131〜144の時間線を表しており、水平軸は、各パケット131〜144の受信時点を示し、垂直軸は、それらのパケットについての生のパケット遅延を示す。図7は、推奨ジッタ・バッファ遅延171〜177の時間線を表し、水平軸は、時間を示し、図6の水平軸と位置合わせされており、垂直軸は、その時点の推奨ジッタバファ遅延を示す。
図6を参照すると、スライディング遅延ベースdmは、受信パケット131の生の遅延によって示されるポイントで開始し、それが次に受信されるパケット133の生の遅延を超えるまで線形的に増加し、このポイントでパケット133は、フロア・パケットとして指定され(区間151の終端がマーク付けされ次の区間152が開始する)、スライディング遅延ベースdmの値は、パケット133の生の遅延にリセットされる。このプロセスは、ある期間にわたって繰り返されて、最終的に区間151〜156を定義する。
図7に示されるように、初期値171から開始し、各区間151〜156の終端毎に、推奨バッファ遅延Rdlyは、調整される。例えば、区間151に関して、(この実施形態における区間151での最大の相対的遅延である)区間遅延181は、パケット132によって与えられる。区間遅延181は、現行の推奨バッファ遅延Rdly171より明らかに大きい。従って、推奨遅延171は、RDLY_BIG_BUMPが増加されて、値172になる。
次に、区間152において、(パケット134によって与えられる)区間遅延182は、現行の推奨バッファ遅延Rdly172と等しい。従って、推奨遅延172は、RDLY_SMALL_BUMPが増加されて、値173になる。
区間153において、(パケット137によって与えられる)区間遅延183は、現行の推奨バッファ遅延Rdly173より小さい。従って、推奨遅延173は、区間153の期間にわたって線形的に減少されて、値174になる。このプロセスが、後続の推奨バッファ遅延Rdlyを定義するために反復される。
本発明による区間選択は、実際のバッファ遅延に対する更新が適切になる時点で、推奨バッファ遅延に対して更新を自動的に提供する傾向がある。例えば、図6に示されるように、新しい区間(例えば、区間155)は、通常、受信パケットの遅延時間にかなり突然の増大があるとき、開始する。スライディング遅延ベースは、時間の経過につれて増大するので、このような新しい区間は、パケット遅延がより一般的な値にまで低下するまで、または、増大したパケット遅延が充分に長い時間にわたり継続するまで、あるいは上記の基準のある種の組合わせに従って継続する。何れにせよ、ジッタ・バッファ4は、推奨バッファ遅延が増加される時間までに、使い果たされるまたはほぼ使い果たされる可能性が高い。その結果、その時点での実際のバッファ遅延の増加は、一般に、通信チャネル2における遅延の増加の結果として既に発生している劣化よりも、更に重大な劣化をもたらさない。
しかしながら、本発明により、音声ストリームにおける休止が検出されるときのような、より適切な時間まで、推奨遅延が有効にならない、実装形態を企図することもできる。このような技法は、図8を参照して、より詳細に説明される。
ステップ201で、推奨バッファ遅延が、定期的に更新される。このステップは、例えば、上述の図4および図5と関連して説明された技法に従って、実行され得る。
ステップ203で、現在の時間が、実際のバッファ遅延を修正するために適切であるかどうかについて決定が行われる。これに関連して、バッファ遅延の増加は、一般に、出力音声ストリームにおける一時的休止をもたらし、一方、バッファ遅延の減少は、ジッタ・バッファ4にある一部のパケットを破棄することを伴う。従って、何れの事例も、送信された音声における元々の休止があるならば、容易に収容することができる。つまり、(バッファ遅延を増加させるとき)このような休止の期間を増加させることも、(バッファ遅延を減少させるとき)単に無音の音声データの廃棄することも、一般に、このような休止の発生において、非常に注目に値することにはならない。上記のように、バッファ遅延の増加または減少は、例えば、バッファ4がデータ・パケットを読み出して既に空になっているような周囲の状況のコンテキストでは、非常に注目に値することにはならない。
無音または休止の期間の検出に関連して、このような期間は、送信機がDTXモードで動作している場合、送信機によって示される。あるいは、受信機自体が、指定された閾値より少ない量を有する1つまたは一連のパケットを検出することによって、このような期間を検出することができる。
ステップ203の試験に不合格の場合、処理は、推奨バッファ遅延の更新を続行するためにステップ201に戻る。一方、この試験に合格した場合、処理はステップ204に進み、実際のバッファ遅延は、推奨遅延に基づいて修正される。本発明の幾つかの実施形態では、このような修正を範囲内に制限することができる。例えば、バッファ遅延を80個のパケットに相当する量について減少させることが推奨され、60個の「無音」パケットだけが検出される場合、実際の遅延の調整は、60個の「無音」パケットのみを廃棄するだけに制限することができる。
システム環境
本明細書に記載のほとんど全ての方法および技法は、汎用コンピュータ・システムを用いて実施され得る。このようなコンピュータは、典型的には、例えば、下記のコンポーネントのうち少なくとも一部を含み、これらのコンポーネントは、例えば共通バスを介して互いに接続されている。これらのコンポーネントは、1つまたは複数の中央処理装置(CPU)と、ROM(リードオンリメモリ)と、RAM(ランダムアクセスメモリ)と、他のデバイスとのインターフェースを取り、また(インターネットまたは他の任意のネットワークに接続し得る)1つまたは複数のネットワークに接続するための入出力ソフトウェアおよび/または回路と、表示装置(例えば、CRT表示装置、液晶ディスプレイ、有機発光ディスプレイ、高分子発光ディスプレイ、または他の任意の薄膜ディスプレイなど)と、他の出力装置(例えば、1つまたは複数のスピーカ、ヘッドフォン・セット、および/またはプリンタなど)と、1つまたは複数の入力装置(例えば、マウス、タッチパッド、タブレット、タッチ検知ディスプレイ、もしくは他のポインティングデバイス、キーボード、マイク、および/またはスキャナ)と、大容量記憶装置(例えば、ハードディスクドライブなど)と、リアルタイムクロックと、(例えば、RAM、磁気ディスク、磁気テープ、光磁気ディスク、光ディスクなどから読み取り/それらに書き込むための)リムーバル記憶読取り/書込み装置と、(ダイアルアップ接続を介してやはりインターネットまたは他の任意のコンピュータネットワークに接続することができる)モデムと、を含む。動作に際して、上記の方法を実装するための処理ステップは、典型的には、最初に大容量記憶装置(例えば、ハードディスク)に格納され、RAM内にダウンロードされ、次いで、RAMから取り出されCPUで実行される。
本発明を実装するのに用いる適切なコンピュータは、様々なベンダから入手することができる。しかし、様々なタイプのコンピュータが、課題の大きさおよび複雑さに応じて使用され得る。適切なコンピュータには、スタンドアロンの、あるいはネットワークに配線接続または無線接続された、メインフレームコンピュータ、マルチプロセッサコンピュータ、ワークステーション、パーソナルコンピュータ、及び、例えばPDA、無線電話、または他の任意の機器もしくは装置などの更に小型のコンピュータを含む。更に、上記では汎用コンピュータ・システムについて述べたが、専用コンピュータも使用され得る。特に、上記の機能は何れも、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組合わせで実装することができ、特定の実装形態は、既知の技術の兼合いに基づいて選択される。これに関連して、主に上記の機能は、固定論理ステップを介して実装されており、従って、当分野で周知の、プログラミング(例えば、ソフトウェアまたはファームウェア)、論理コンポーネント(ハードウェア)の適切な構成、またはこの2つの組合わせによって、達成することができる。
本発明は、本発明の方法を実施するためのプログラム命令を格納する、マシン可読媒体に関係することを理解されたい。このような媒体は、例えば、磁気ディスク、磁気テープ、CD ROMやDVD ROMなどの光学的に読み取り可能な媒体、PCMCIAカードなどの半導体メモリなどを含む。各事例において、これらの媒体は、小型ディスク、ディスケット、カセットのような可搬のアイテムの形態、あるいは、コンピュータに設けられる、ハードディスクドライブ、ROMまたはRAMのような比較的大きいまたは固定のアイテムの形態を取ることができる。
上記の説明は、主に電子コンピュータに重点を置いている。しかし、電子的、光学的、生物学的、および/または化学的処理の任意の組合わせを用いるような、他の任意のタイプのコンピュータを代わりに使用することもできることを理解されたい。
補足の検討
上述の実施形態において、ジッタ・バッファの挙動を規定する幾つかのパラメータがある。これらのパラメータは、好ましくは、特定のネットワーク状態(例えば、ネットワークまたは他の通信チャネル2の品質)に基づいて選択される。これらパラメータを上記に示唆された名目値から劇的に変更することは、ジッタ・バッファの挙動を改善するが、それらの値が不合理に選択された(例えば、上記の範囲から大きく外れる)場合、望ましくない結果が生じるおそれがあるようには見えない。
上記の説明は、本発明の多数の変形形態および実施形態を範囲に含む。しかし、他の変形形態も可能であることを理解されたい。例えば、上記の実施形態は、最大のジッタ・バッファ遅延に対する準備をしていない。このような遅延を特定の値に制限することは、実装に当たり単純明快であり、しばしば望ましいことである。
上記の実施形態では、バッファ遅延は、離散的な各時点で修正される。同時に、上記の実施形態は、ジッタ・バッファ遅延の「解放」を企図し、区間遅延(またはパケット遅延の同様の観測結果)が指定の基準(例えば、アンダーフロー状態)を充たすという検出結果に基づいて推奨遅延を増やすまで、連続で単調で漸進的に推奨遅延を効果的に減少させる。代替の実装形態では、(例えば、推奨遅延の減少のための上記で示されたのと同じ割合で)ジッタ・バッファの実際の遅延を漸進的に連続して減少させることが可能であり、(上記で示されたのと同じやり方で)離散時点でのみ、このような遅延を増加させる。上記のコメントと同様に、このような連続的で単調な減少は、下限によって制限されることがあり、つまり、実際のバッファ遅延は、ある指定された最小遅延より減少することは許容されない。
更に、上記の実施形態は、区間の開始の際に(即ち区間におけるどの減少にも先立って)、区間遅延を、推奨遅延と比較するが、代わりに、区間の開始の際に、区間遅延を、区間で適用可能な「解放」により減少させられる推奨遅延と比較することが可能である。
上述のように、本発明の好ましい実施形態において区間を選択するための技法は、しばしば、本来的に、実際のバッファ遅延を修正するための有効な時点を提供する傾向がある。例えば、パケット遅延時間の増加が充分な期間継続するまで待機することにより、(任意の所望の基準に従う)パケット遅延時間が、許容できるレベルまで減少するあるいは、前述の任意の組合わせにより、休止が何らかの方法で発生したときに、しばしば変更が行われる。代わりに、同様の結果をもたらす同様の技法を利用することもできる。
前述の実施形態では、推奨バッファ遅延は、区間遅延に基づいてかなり単純明快なやり方で調整され、それでも定義される。代わりに、より複雑な処理を実装できることも理解されたい。このような処理の正確な性質は、一般に、区間遅延がどのように定義されるかによって変わる。例えば、区間遅延が、区間において最大の生のパケット遅延であり、異常に大きな遅延を有する単一のパケットが受信された場合、このような状況は、異常として認識されることがあり、従って、このパケットに関連する遅延は、無視される。
同様に、大きな遅延を有する幾つかのパケットに遭遇し、しかし、(例えば、これらのパケットを再生するための時間が既に過ぎてしまっているため、)これらのパケットを再生するのは、バッファ遅延が増加されたとしても遅すぎる場合、この時間において推奨バッファ遅延を増加しないという決定を行うことができ、代わりに、この情報を格納し、後で、例えば、長い遅延を有する追加のグループのパケットに遭遇した場合、決定を行う。次いで、より長い遅延のパケットのグループが、(例えば、幾つかの特定のグループのパケットが、通信チャネル2を介して異なる経路を取るため)定期的に継続して受信されると決定された場合、その時点で、推奨バッファ遅延が増加され得る。あるいは、より長く遅延されたパケットからなる1つのグループが、最終的に真の異常であると決定された場合、その時間にジッタ・バッファ遅延を増加しないという決定が、正しい決定であったことになる。
上述の技法は、VoIPに適用することができるが、任意の様々な異なるチャネルを介して送信される他のパケット・ベースでリアルタイムの音声および/またはビデオ信号にも適用することができる。従って、上述の個々の実施形態は、限定を意図するものではない。
本発明の幾つかの異なる実施形態は、幾つかの特定の特徴をそれぞれが含むものとして上記に説明されている。しかし、どの単一の実施形態の説明に関連して述べられた特徴も、その実施形態に限定されず、当業者には理解されるように、それらは、他の任意の実施形態における様々な組合わせに含むかつ/または配置することもできる。
同様に、上記の議論において、機能は、特定のモジュールまたはコンポーネントに帰属し得る。しかし、任意の特定の機能が、関連するモジュールまたはコンポーネントに対し重要なものとして上記に記述されていない限り、機能は、異なる任意のモジュールまたはコンポーネントの間で所望に応じて再分配することができ、このとき、場合によっては、特定のコンポーネントまたはモジュールを全く必要とせず、かつ/または、新しいコンポーネントまたはモジュールの追加を必要としない。機能の正確な分配は、好ましくは、本発明の特定の実施形態を参照し、既知の技術のトレードオフの関係に従って行われることは当業者には理解されよう。
従って、本発明は、その例示的実施形態と添付の図面に関連して詳細に説明されたが、本発明の趣旨および範囲から逸脱することなく、本発明の様々な適合および修正が可能であることは当業者には明らかなはずである。従って、本発明は、図面に示されまた以上に記述された具体的な実施形態に限定されない。本発明の趣旨から逸脱することのないそれらのすべての変形形態は、添付の特許請求の範囲のみによって限定される本発明の範囲に含まれると見なされるものである。
従来のVoIPシステムの受信部分を示す簡単なブロック図である。 図2Aは、送信機の時間線を示す図であり、図2Bは、受信パケットの時間線を示す図であり、図2Cは、従来の固定遅延ジッタ・バッファを用いた、バッファリング後の受信パケットの時間線を示す図である。 本発明によるVoIP受信機を示す簡単なブロック図である。 本発明による、推奨ジッタ・バッファ遅延を修正するための技法を示す流れ図である。 本発明による、受信パケットの区間を選択するための技法を示す流れ図である。 受信データ・パケットの時間線を示し、図5に示される技法の例を与える図である。 推奨ジッタ・バッファ遅延の時間線を示し、図4に示される技法の例を与える図である。 推奨遅延に基づいてジッタ・バッファ遅延を修正するための技法を示す流れ図である。
符号の説明
2 通信チャネル
3 インターフェース
4 バッファ
4 ジッタ・バッファ
5 バッファ
5 ジッタ・バッファ
7 音声チャネル
8 音声出力装置
52 要素
52 遅延調整

Claims (33)

  1. デジタル音声信号を受信し処理するための装置であって、
    (a)伝送チャネルを介してデジタル音声データのパケットを受信するための受信手段と、
    (b)前記伝送チャネルを介する複数の異なるパケット遅延を収容するように、バッファ遅延を用いて前記受信パケットをバッファするためのバッファリング手段と、
    (c)推奨バッファ遅延に基づいて前記バッファ遅延を周期的に調節するための調節手段であって、
    前記推奨バッファ遅延は、初期値から開始し、
    (i)前記受信パケットの区間を選択するステップと、
    (ii)前記選択された区間上の少なくとも1つのパケット遅延の関数を計算し、区間パケット遅延を生成するステップと、
    (iii)前記区間パケット遅延が、第1の閾値を超える場合、前記推奨バッファ遅延を増加させるステップと、
    (iv)前記区間パケット遅延が、第2の閾値より小さく、前記第2の閾値が前記第1の閾値より小さい場合、前記推奨バッファ遅延を減少させるステップと、
    (v)ステップ(i)〜(iv)を反復するステップと、
    に従って反復的に更新される、調節手段と、
    を含み、
    前記受信パケットの各区間は、前記各区間中の少なくとも1つのパケットに基づく期間を有する、装置。
  2. 請求項1に記載の装置であって、前記区間パケット遅延は、前記選択された区間上の前記パケット遅延の最大値である、装置。
  3. 請求項1に記載の装置であって、ステップ(i)〜(iv)は、実質的に連続して反復される、装置。
  4. 請求項3に記載の装置であって、ステップ(i)〜(iv)は、前記受信パケットの後続の隣接区分にわたって、実質的に連続して反復される、装置。
  5. 請求項4に記載の装置であって、各後続区間は、最初に、第1の受信パケットに対する遅延値を遅延ベースとして使用し、次いで、前記遅延ベースが、後続の受信パケットに対する遅延値を超えるまで、各後続の受信パケットに対する前記遅延ベースを体系的に増加させることによって決定され、前記後続の受信パケットに対する遅延値を超えるポイントにおいて、前記指定された区間は、完了したと見なされる、装置。
  6. 請求項5に記載の装置であって、先行の区間が完了したと見なされると、新しい区間は、開始するように見なされ、前記遅延ベースは、前記先行区間の最後のパケットに対する遅延値に設定される、装置。
  7. 請求項5に記載の装置であって、各受信パケットに対する前記遅延ベースの漸進的増加の量は、現行の区間の期間の寸法に基づく、装置。
  8. 請求項7に記載の装置であって、前記現行区間の期間の寸法は、現在受信されたパケットについての受信時間の差異に基づく、装置。
  9. 請求項1に記載の装置であって、範囲は、前記第1の閾値と前記第2の閾値の間に存在し、前記区間パケット遅延が前記範囲に含まれる場合、前記推奨バッファ遅延は、ステップ(iii)に従って適用できる量より小さい量だけ増加される、装置。
  10. 請求項1に記載の装置であって、前記第1の閾値は、前記推奨バッファ遅延の現行の値である、装置。
  11. 請求項10に記載の装置であって、範囲は、前記第1の閾値と前記第2の閾値の間に存在し、前記区間パケット遅延が前記範囲に含まれる場合、前記推奨バッファ遅延は、ステップ(iii)に従って適用できる量より小さい量だけ増加される、装置。
  12. 請求項1に記載の装置であって、ステップ(iv)における減少量は、前記推奨バッファ遅延が最後に増加されてからの時間の量に基づく、装置。
  13. 請求項12に記載の装置であって、ステップ(iv)における減少量は、前記推奨遅延が最後に増加されてからの時間の量に基づいて単調に増加する、装置
  14. 請求項1に記載の装置であって、ステップ(iii)における増加量は、前記区間におけるパケット遅延と独立している、装置。
  15. 請求項1に記載の装置であって、ステップ(iii)における増加量は、予め定められた定数値である、装置。
  16. 請求項1に記載の装置であって、対象のパケットに対するパケット遅延は、前記対象のパケット内に含まれる送信タイムスタンプに基づいて決定される、装置。
  17. 請求項1に記載の装置であって、前記調整手段は、前記推奨バッファ遅延に基づいて前記バッファ遅延を調整するのに先立ち、送信における休止を識別するまで待機する、装置。
  18. 請求項1に記載の装置であって、前記調整手段は、前記推奨バッファ遅延における任意の変更に基づいて、前記バッファ遅延を即座に調整する、装置。
  19. 請求項1に記載の装置であって、新しい区間は、前記受信パケットでのパケット遅延時間の突然の増加があるときいつでも開始し、以下の条件、即ち、(a)パケット遅延時間の増加が充分な期間にわたり継続した、または、(b)前記パケット遅延時間が許容可能なレベルまで減少した、の少なくとも一方が発生するまで続く、装置。
  20. 請求項1に記載の装置であって、
    出力音声信号を生成するために、前記バッファされたパケットを処理するための音声チャネル手段を、
    更に含む装置。
  21. デジタル音声信号を受信し処理するための装置であって、
    (a)伝送チャネルを介してデジタル音声データのパケットを受信するための受信手段と、
    (b)前記伝送チャネルを介する複数の異なるパケット遅延を収容するように、バッファ遅延を用いて前記受信パケットをバッファするためのバッファリング手段と、
    (c)推奨バッファ遅延に基づいて前記バッファ遅延を周期的に調整するための調節手段であって、
    前記推奨バッファ遅延は、初期値から開始し、
    (i)アンダーフロー状態が識別されるまでの時間にわたって、前記推奨バッファ遅延を減少させるステップと、
    (ii)前記アンダーフロー状態の識別に応答して、前記推奨バッファ遅延を増加するステップと、
    (iii)ステップ(i)および(ii)を反復するステップと、
    に従って反復的に更新される、調節手段と、
    を含む装置。
  22. 請求項21に記載の装置であって、ステップ(i)において前記推奨バッファ遅延を減少させる関数は、少なくとも延長された期間にわたり固定される、装置。
  23. 請求項21に記載の装置であって、測定された区間上のパケット遅延の関数が、指定された閾値を超える場合、前記アンダーフロー状態は、識別される、装置。
  24. 請求項23に記載の装置であって、対象のパケットに対するパケット遅延は、前記対象のパケット内に含まれる送信タイムスタンプに基づいて決定される、装置。
  25. 請求項21に記載の装置であって、ステップ(ii)における増加量は、特定のパケット遅延と独立している、装置。
  26. 請求項21に記載の装置であって、ステップ(ii)における増加量は、予め定められた定数値である、装置。
  27. 請求項21に記載の装置であって、前記推奨遅延は、ステップ(i)において、線形的に減少する、装置。
  28. 請求項21に記載の装置であって、ステップ(ii)における増加量は、観測される区間上のパケット遅延の関数である、装置
  29. 請求項28に記載の装置であって、対象のパケットに対するパケット遅延は、前記対象のパケットに含まれる送信タイムスタンプに基づいて決定される、装置。
  30. 請求項21に記載の装置であって、前記調整手段は、前記推奨バッファ遅延に基づいて前記バッファ遅延が調整されるのに先立ち、送信における休止を識別するまで待機する、装置。
  31. 請求項21に記載の装置であって、
    出力音声信号を生成するために前記バッファされたパケットを処理するための音声チャネル手段を、
    更に含む装置。
  32. デジタル音声信号を受信し処理するためのコンピュータ実行可能処理ステップを格納するコンピュータ可読媒体であって、前記処理ステップは、
    (a)受信パケットの区間を選択するステップと、
    (b)前記選択区間上の少なくとも1つのパケット遅延の関数を計算し、区間パケット遅延を生成するステップと、
    (c)前記区間パケット遅延が第1の閾値を超える場合、推奨バッファ遅延を増加させるステップと、
    (d)前記区間パケット遅延が、第2の閾値より小さく、前記第2の閾値は、前記第1の閾値より小さい場合、前記推奨バッファ遅延を減少させるステップと、
    (e)ステップ(a)〜(d)を反復するステップと、
    を含み、
    前記受信パケットの各区間は、前記各区間における少なくとも1つのパケット遅延に基づく期間を有する、コンピュータ可読媒体。
  33. デジタル音声信号を受信し処理するためのコンピュータ実行可能処理ステップを格納するコンピュータ可読媒体であって、前記処理ステップは、
    (a)アンダーフロー状態が識別されるまでの時間にわたり推奨バッファ遅延を減少させるステップと、
    (b)前記アンダーフロー状態の識別に応答して、前記推奨バッファ遅延を増加させるステップと、
    (c)ステップ(a)および(b)を連続して反復するステップと、
    を含む、コンピュータ可読媒体。
JP2005318033A 2004-11-04 2005-11-01 適応的バッファ遅延を有する音声受信機 Pending JP2006135974A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/981,163 US20060092918A1 (en) 2004-11-04 2004-11-04 Audio receiver having adaptive buffer delay

Publications (1)

Publication Number Publication Date
JP2006135974A true JP2006135974A (ja) 2006-05-25

Family

ID=35717709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005318033A Pending JP2006135974A (ja) 2004-11-04 2005-11-01 適応的バッファ遅延を有する音声受信機

Country Status (3)

Country Link
US (1) US20060092918A1 (ja)
EP (1) EP1655911A3 (ja)
JP (1) JP2006135974A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048265A (ja) * 2006-08-18 2008-02-28 Mitsubishi Electric Corp リアルタイム通話装置
JP2009272764A (ja) * 2008-05-01 2009-11-19 Fujitsu Ltd 通信システム及び呼制御装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI305101B (en) * 2006-03-10 2009-01-01 Ind Tech Res Inst Method and apparatus for dynamically adjusting playout delay
US7634227B2 (en) * 2006-03-29 2009-12-15 Sony Ericsson Mobile Communications Ab Method and system for controlling audio data playback in an accessory device
US8121115B2 (en) * 2006-07-10 2012-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Compressed delay packet transmission scheduling
US7573907B2 (en) * 2006-08-22 2009-08-11 Nokia Corporation Discontinuous transmission of speech signals
EP1919137A1 (en) * 2006-10-30 2008-05-07 Nokia Siemens Networks Gmbh & Co. Kg Method for estimating jitter buffer management performance
US20080170562A1 (en) * 2007-01-12 2008-07-17 Accton Technology Corporation Method and communication device for improving the performance of a VoIP call
US8085803B2 (en) * 2007-01-29 2011-12-27 Intel Corporation Method and apparatus for improving quality of service for packetized voice
US8566695B2 (en) * 2007-03-30 2013-10-22 Sandisk Technologies Inc. Controlling access to digital content
US8027267B2 (en) * 2007-11-06 2011-09-27 Avaya Inc Network condition capture and reproduction
US8406715B2 (en) * 2008-03-27 2013-03-26 Panasonic Automotive Systems of America, division of Panasonic Corporation of North America Method and apparatus for dynamically adapting FM tuner sensitivity to a local environment for a single-tuner system
KR101522754B1 (ko) * 2008-03-27 2015-05-26 파나소닉 오토모티브 시스템즈 컴퍼니 오브 어메리카, 디비젼 오브 파나소닉 코포레이션 오브 노쓰 어메리카 단일-튜너 시스템을 위하여 로컬 환경에 fm 튜너 감도를 동적으로 적응시키기 위한 방법 및 장치
US8611337B2 (en) * 2009-03-31 2013-12-17 Adobe Systems Incorporated Adaptive subscriber buffering policy with persistent delay detection for live audio streams
US9838784B2 (en) 2009-12-02 2017-12-05 Knowles Electronics, Llc Directional audio capture
US9210503B2 (en) * 2009-12-02 2015-12-08 Audience, Inc. Audio zoom
US8798290B1 (en) 2010-04-21 2014-08-05 Audience, Inc. Systems and methods for adaptive signal equalization
US9558755B1 (en) 2010-05-20 2017-01-31 Knowles Electronics, Llc Noise suppression assisted automatic speech recognition
US20140082504A1 (en) * 2012-09-14 2014-03-20 Kevin B. Stanton Continuous data delivery with energy conservation
GB2518410B (en) * 2013-09-20 2015-10-28 Sony Comp Entertainment Europe Entertainment Device and Method
US9508345B1 (en) 2013-09-24 2016-11-29 Knowles Electronics, Llc Continuous voice sensing
US9953634B1 (en) 2013-12-17 2018-04-24 Knowles Electronics, Llc Passive training for automatic speech recognition
US9437188B1 (en) 2014-03-28 2016-09-06 Knowles Electronics, Llc Buffered reprocessing for multi-microphone automatic speech recognition assist
DE112015004185T5 (de) 2014-09-12 2017-06-01 Knowles Electronics, Llc Systeme und Verfahren zur Wiederherstellung von Sprachkomponenten
US9668048B2 (en) 2015-01-30 2017-05-30 Knowles Electronics, Llc Contextual switching of microphones
US10686897B2 (en) 2016-06-27 2020-06-16 Sennheiser Electronic Gmbh & Co. Kg Method and system for transmission and low-latency real-time output and/or processing of an audio data stream
US10616123B2 (en) * 2017-07-07 2020-04-07 Qualcomm Incorporated Apparatus and method for adaptive de-jitter buffer
CN110351595B (zh) * 2019-07-17 2023-08-18 北京百度网讯科技有限公司 一种缓冲处理方法、装置、设备和计算机存储介质
CN110620793B (zh) * 2019-10-31 2022-03-15 苏州浪潮智能科技有限公司 一种提高音频质量的方法、设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0921666A3 (en) * 1997-12-02 1999-07-14 Nortel Networks Corporation Speech reception via a packet transmission facility
US6859460B1 (en) * 1999-10-22 2005-02-22 Cisco Technology, Inc. System and method for providing multimedia jitter buffer adjustment for packet-switched networks
US6683889B1 (en) * 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers
US6862298B1 (en) * 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
US6757292B2 (en) * 2001-07-11 2004-06-29 Overture Networks, Inc. Automatic adjustment of buffer depth for the correction of packet delay variation
US7006511B2 (en) * 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US7079486B2 (en) * 2002-02-13 2006-07-18 Agere Systems Inc. Adaptive threshold based jitter buffer management for packetized data
US20040129309A1 (en) * 2003-01-07 2004-07-08 Eckert Mark T. Pneumatic wheel and tire overpressure protection method and apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048265A (ja) * 2006-08-18 2008-02-28 Mitsubishi Electric Corp リアルタイム通話装置
JP4629633B2 (ja) * 2006-08-18 2011-02-09 三菱電機株式会社 リアルタイム通話装置
JP2009272764A (ja) * 2008-05-01 2009-11-19 Fujitsu Ltd 通信システム及び呼制御装置

Also Published As

Publication number Publication date
EP1655911A2 (en) 2006-05-10
US20060092918A1 (en) 2006-05-04
EP1655911A3 (en) 2006-06-07

Similar Documents

Publication Publication Date Title
JP2006135974A (ja) 適応的バッファ遅延を有する音声受信機
JP5591897B2 (ja) 適応デジッタバッファの方法及び装置
US8279884B1 (en) Integrated adaptive jitter buffer
KR100902456B1 (ko) 단 대 단 VoIP 매체 지연을 관리하는 방법 및 장치
JP4944243B2 (ja) わかりやすさに影響を及ぼすことなくセンテンス内のトークスパートの再生タイミングを変更するための方法および装置
JP4462996B2 (ja) パケット受信方法及びパケット受信装置
CN103888381A (zh) 用于控制抖动缓冲器的装置和方法
JP2007511939A (ja) 時間順に並んだコンテンツを含むパケットに対するスムーズな適応型管理を受信端末において提供する方法及び装置
US10212552B2 (en) Methods and devices for controlling speech quality
CN101636990A (zh) 在通信系统中传输数据的方法
TWI480861B (zh) 用於控制聲頻信號之時間縮放的方法、裝置及系統
JP4076981B2 (ja) 通信端末装置およびバッファ制御方法
KR20080012920A (ko) 무선 통신 디바이스의 적응적 폴링을 위한 방법 및 장치
EP2070294B1 (en) Supporting a decoding of frames
CN110875860B (zh) 一种处理网络抖动的方法及装置
JP4561301B2 (ja) 音声の再生及び停止を制御する音声再生装置及びプログラム
CN107112019B (zh) 信号处理装置、信号处理方法、以及存储有程序的计算机可读存储介质
US20080170562A1 (en) Method and communication device for improving the performance of a VoIP call
WO2016151852A1 (ja) 音声再生装置、画像表示装置及びその音声再生方法