JP4681044B2 - データパケットの送信を動的に制御する技術 - Google Patents

データパケットの送信を動的に制御する技術 Download PDF

Info

Publication number
JP4681044B2
JP4681044B2 JP2008504623A JP2008504623A JP4681044B2 JP 4681044 B2 JP4681044 B2 JP 4681044B2 JP 2008504623 A JP2008504623 A JP 2008504623A JP 2008504623 A JP2008504623 A JP 2008504623A JP 4681044 B2 JP4681044 B2 JP 4681044B2
Authority
JP
Japan
Prior art keywords
data
bit rate
client buffer
client
server
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.)
Active
Application number
JP2008504623A
Other languages
English (en)
Other versions
JP2008536389A5 (ja
JP2008536389A (ja
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 JP2008536389A publication Critical patent/JP2008536389A/ja
Publication of JP2008536389A5 publication Critical patent/JP2008536389A5/ja
Application granted granted Critical
Publication of JP4681044B2 publication Critical patent/JP4681044B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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/29Flow control; Congestion control using a combination of thresholds
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Communication Control (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

本発明はデータの通信に関しており、より具体的には、連続するデータパケットの送信(streaming data packet transmissions)を制御する技術に関するものである。
パケットに基づくインターネット・プロトコル(IP)ネットワーク等の通信インフラを介して、ますます大量のデータがサーバからクライアントへと送信されている。特に人気が高まっているアプリケーションに、マルチメディア・ストリーミングがある。しかし、そのようなサービスが広く受容されるには、先ず信頼できるデータ・ストリームを提供することでの向上がなされねばならない。例えば、IPネットワークとユーザのクライアント装置との間のデータ送信リンクのレートが変動しがちなことから、ユーザへのデータ配信に乱れがあると、端末ユーザへのプレイアウトの厳しい悪化、すなわち、ユーザが視聴するメディアの品質低下に結びつき兼ねない。特に、プレイアウト(playout: すなわち、マルチメディア・アプリケーションまたはプレーヤによるマルチメディアファイルの表示)の進行中は、マルチメディア・アプリケーションが取り寄せるパケットデータがクライアント装置に十分に供給されることが重要である。
多くの場合、パケット送信レートは変更できない(または、パケット送信レートを変更することは、少なくとも実際的ではない)。というのは、このレートは通信リンクの帯域幅に依存するからである。しかし、データがユーザの出力装置に供給されるレートは、しばしば変更されねばならない。通常、ストリーミング・アプリケーションでは、そのような調整は「ストリーム切り替え(stream switching)」を使って達成される。ストリーム切り替えでは、同じメディア内容、例えば特定の映像の連なり、が幾つかの異なるビットレートで予め符号化されて、サーバに格納される。したがって、同じストリームについて幾つかの異なるバージョンが利用可能である。送信中には、サーバが、ネットワークで現時点に使用可能な帯域幅とクライアントバッファの状態とに基づいて、最も適したデータ・ビットレートを有する特定バージョンを選択する。サーバが使用する切り替えの論理では、別バージョンのストリームへ切り替えるべきか、およびいつ切り替えるかを判定する。いわゆる「ダウンスイッチ(down-switch)」の場合、ストリームはより低い符号化ビットレートのバージョンへ切り替えられる。「アップスイッチ(up-switch)」の場合は、より高い符号化ビットレートのバージョンへ切り替えられる。多くの実施形態において、切り替えの基準としてはクライアントバッファの状態に関して定義された所定の閾値を使用する。1つの例としては、閾値はクライアントバッファ中のデータ量をバイト単位で示すバッファ・フィルレベルに基づいている。他の例としては、閾値はクライアントバッファ中に格納されたメディアのプレイアウト長(PT:playout length)に基づいている。このPTは、既にクライアントバッファ中に存在するデータをユーザにプレイアウトするのに要する時間を秒単位で示される。代わりにバッファ・フィルレベルまたはその他の適当なパラメータを使うこともできるが、ここでは、プレイアウト長に関する例を述べる。
クライアントバッファの状態を判定する従来技術には、実時間トランスポート制御プロトコル(Real Time Transport Control Protocol:RTCP)の受信者レポート(receiver reports:RRs)中の情報を利用するものがある。このRRと一緒に、クライアントバッファ中の次のシーケンス番号(next sequence number:NSN)または最も古くバッファされたシーケーンス番号(oldest buffered sequence number:OBSN)、およびクライアントバッファ中の最大受信のシーケンス番号(highest received sequence number:HRSN)に関する情報が含まれており、この情報が、HRSNからNSN/OBSNの範囲内の各パケットの大きさがわかっているので、消費バッファ空間を決定するのに使用される。もしクライアントバッファ中の未使用空間が望ましいクライアントバッファ・フィルレベルより小さい場合、別バージョンのストリームが選択される。例えば、バッファのプレイアウト長(PT)が所定の最小閾値(PTDOWN)より低下すると、バッファの枯渇の危険、すなわち、クライアントバッファが空になりユーザに流すべきデータがないという危険が生じる。これはプレイアウトのフリーズにつながる。そうなると、通常は、十分な量のデータがクライアントバッファに追加されてユーザが使用する出力装置へのストリーミングが再開されるまで、ユーザに表示された最終イメージにフリーズすることになる。すなわち、クライアントバッファの「再バッファリング(rebuffering)」が必要となる。再バッファリングは、ユーザの立場からすると極めて不愉快なものとなり得る。
クライアントバッファの枯渇による再バッファリングの可能性を回避するために、サーバは、クライアントバッファ中のプレイアウト長(PT)が閾値PTDOWNより低下したことを検出し、クライアントバッファが完全に枯渇しないようにするため、ビットレートを調整する(すなわち、別のビットレートのストリームのバージョンを選択する)。より具体的には、サーバは、ダウンスイッチを実行する。すなわち、より低いビットレートのストリームへ切り替える。アップスイッチではなくダウンスイッチが実行される理由は、クライアントバッファが枯渇しそうになる最もありそうな理由が、サーバとクライアントバッファとの間のリンクレートが予想より小さい、すなわち、実効帯域幅が現時点で使用されるビットレートに必要とされる帯域幅より小さいことにあるからである。その結果、クライアントバッファがユーザの出力装置に対してデータを供給するのと同じレートで、データがクライアントバッファに受信されない。したがって、データが十分に存在する状態にあるべきクライアントバッファが枯渇する。低いビットレートへ切り替えることにより、クライアントバッファはより低いレートで表示ユニットへデータを供給し、これにより、データをサーバから受信するのにより多く時間が掛かってもよいようにし、クライアントバッファが完全に枯渇しないようにする。ユーザの立場からは、ダウンスイッチのためにメディア・ストリームの品質が低下することになる。例えば、ビデオ・ストリームの表示イメージのサイズが小さくなったり、イメージの解像度が小さくなったり、またはイメージ中の歪みが大きくなったりする。それでも、これは、再バッファリング中に発生する、前述のプレイアウトのフリーズよりはましである。
一方、もしバッファのプレイアウト長(PT)が所定の最大閾値(PTUP)を越えると、バッファ溢れ(overflow)の危険が生じる。すなわち、クライアントバッファが満杯になり、追加パケット用の空間がなくなる。クライアントバッファが受信していながらそこに格納されないパケットは、通常、サーバによって再送されることはなく、したがって、それらのパケットのデータはユーザの出力装置へは転送されないままとなる。クライアントバッファがパケットを再度格納可能になると、データ・ストリームは新しいパケットを受け入れるようになる。こうして、ユーザから見ると、ストリームが先へ飛ぶというような、内容の突然の欠落が生じる。フィルムまたは映画の場合、対話が途切れてユーザが物語に追随し難くなる。音楽の場合は、歌が先に飛んでしまう。お分かりのように、これもまたユーザから見て、極めて不愉快なものとなり得る。
クライアントバッファの溢れに起因するストリームの混乱を回避し、また同時にメディア品質を増進するために、サーバは、クライアントバッファ中のプレイアウト長(PT)が閾値PTUPを超過するとそれを検出し、アップスイッチ、すなわち、より高いビットレート・ストリームへの切り替えを実施する。ダウンスイッチでなくアップスイッチが実施される理由は、クライアントバッファが溢れそうになる最もありそうな理由が、サーバとクライアントバッファとの間のリンクレートが予想より大きい、すなわち、実効帯域幅が現時点で使用されるビットレートに必要とされる帯域幅より大きいことにあるからである。その結果、クライアントバッファがユーザの出力装置にデータを供給するのより高いレートで、クライアントバッファはデータを受信する。したがって、クライアントバッファが溢れる。より高いビットレートへ切り替えることにより、クライアントバッファはより高いレートでデータを出力装置へ供給し、これにより、クライアントバッファが溢れないようにする。ユーザから見ると、メディア・ストリームの品質がアップスイッチにより改善する。例えば、ビデオ・ストリームの表示イメージのサイズが大きくなったり、イメージの解像度が大きくなる。したがって、アップスイッチはストリームの混乱が生じないようにし、またメディア品質を向上する。これらはいずれもユーザには利益となる。
アップスイッチおよびダウンスイッチを実行する簡単な論理を、以下のように表現してもよかろう:
If PT>PTUP then
Perfirm up-switch
else if PT<PTDOWN
Perform down-switch
end if.
これらの閾値を適切に選択することはユーザの総合的なメディア印象に非常に重要である。ダウンスイッチの実行時期が遅れた場合、再バッファリングの事態が起こる。アップスイッチの実行時期が遅れた場合、ユーザは、そうでない場合に必要とされる品質より低い品質のメディアを受信し、先述のように、バッファ溢れの結果としてデータ・ストリームの途切れが生じることにもなる。同様に、ダウンスイッチが不必要に早く実行された場合、ユーザは、そうでない場合に必要とされる品質より低い品質のメディアを受信する。アップスイッチが不必要に早く実行されると、直ぐにダウンスイッチが必要になってメディア品質が不愉快に変動する結果となる。これらの問題を回避するために、複数のダウンスイッチ閾値および複数のアップスイッチ閾値を使用できる可能性が潜在する。プレイアウト長が減少してバッファの枯渇に向かうに伴い、次々とダウンスイッチ閾値を通過し、それらの各々がダウンスイッチを起動する。その逆に、プレイアウト長が増加してバッファ溢れに向かうに伴い、次々とアップスイッチ閾値を通過し、それらの各々がアップスイッチを起動する。
しかし、切り替えが生じて新しいビットレートのストリームが送信された後も、その切り替えがクライアントバッファのプレイアウト長に何らかの効果をもたらすにはいくらかの時間が掛かる。第一に、新しいビットレートで符号化されたデータを含む最初のパケットがクライアントバッファに到達する迄の伝送遅延がある。この期間中、クライアントバッファ中の格納メディアのプレイアウト長は新しいレートの影響を受けない。したがって、プレイアウト長が増加中でバッファ溢れも見込まれていたとするなら、プレイアウト長は増加し続けそうである。逆に、プレイアウト長が減少中でバッファの枯渇も見込まれていたとするなら、プレイアウト長は減少し続けそうである。また、新しいビットレートの最初のパケットが到達した後でも、プレイアウト長は当初は緩慢にしか変化しない場合もある。例えば、以前のビットレートのデータで送信されたパケットがまだ幾らか存在し、クライアントバッファにまだ到達していないこともあり得る。それゆえ、切り替え状態がまだ有効になっていないこともしばしばであり、それにも拘わらず最初の切り替えに続いていくつもの切り替えが起こるが、それらが不必要であることも多い。最初がダウンスイッチの場合、複数のダウンスイッチがさらに実行され、ストリームのビットレートが必要なものより遥かに減少することがある。最低速のビットレートのストリームが選択されるまでダウンスイッチが止まらないことも多い。この動作によりユーザへのメディア・ストリーム品質が不必要に低下してしまう。アップスイッチの場合、複数のアップスイッチがさらに起こり、高過ぎるビットレートのストリームになってしまい、取り得る最高レートに至ることも多い。この結果、ストリームのビットレートが現時点で利用可能なネットワーク帯域幅と比べて遥かに高くなり、一連のダウンスイッチを起動することになる。
結果として、ユーザは頻繁で不愉快なストリーム品質の変動を視聴することになる。さらに、高過ぎるビットレートが選択された場合、その後のダウンスイッチを十分迅速には実行できず、その結果、不愉快なバッファ溢れとそれに伴うデータ欠落が発生する。アップスイッチ閾値が1つでダウンスイッチ閾値も1つだけであってもこの種の問題は起こり得る、特に、閾値が相互に近接して設定された場合に起こる。
したがって、より安定し信頼できるコンテンツをユーザに提供できるための、ストリーム切り替えを制御する改善された技術が必要であり、本発明が主たるねらいとするのはこの目的に対してである。
本発明は、サーバからクライアントバッファを有するクライアントへのパケット送信を制御する方法であって、パケットで送信されるデータのビットレートが、サーバによりクライアントバッファの状態に基づいて選択される方法によって具体化される。本方法に従えば、パケットは、最初、送信時点のビットレートに従って符号化されたデータを含んで送信される。クライアントバッファは、送信後の時点においてクライアントバッファ中のデータ量を示す基準値(PTCH)を検出するために監視される。現時点のクライアントバッファ中のデータ量を示す値(PT)もまた追跡される。その時、送信中のデータのビットレートの調整は、動的モード(dynamic mode)に応じて、現時点のクライアントバッファ中のデータ量を示す値(PT)と、基準値(PTCH)とに基づいて制御される。前記値(PT)に加えて基準値(PTCH)をも考慮に入れることにより、ビットレートの調整を制御する時に、ビットレートの不必要な調整を実質的に回避することができる。
1つの実施形態では、送信後の時点におけるクライアントバッファ中のデータ量を示す基準値(PTCH)を検出するステップは、送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点を検出するために、クライアントバッファ(115)を監視するステップ(202)と、送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点で、クライアントバッファ中のデータ量を示す基準値(PTCH)を検出するステップ(204)とを含む。別案として、基準値(PTCH)を、現時点の(新しい)ビットレートでパケットの送信を開始した直後の時点および/または直後の時点と到達した時点の2つの時点間の任意の時点において、検出することも可能である。
動的モードがアップスイッチの例では、ビットレートの調整を制御するステップは、現時点のクライアントバッファ中のデータ量(PT)が、基準値(PTCH)に一部が基づいて設定された調整可能なアップスイッチ閾値(PTUP-ADJ)を超過した場合に、より高いビットレートへ切り替えることにより実行される。調整可能なアップスイッチ閾値(PTUP-ADJ)は、所定の安全マージン(S)と基準値(PTCH)との積に等しく設定されてよい。所定の安全マージンは、通常、1.0より大きいかまたは等しく設定されるが、1.2に設定された特定の例もある。またその例では、動的モードにおいてより高いビットレートへ切り替えるステップが、現時点のクライアントバッファ中のデータ量(PT)が所定の最小閾値、これは固定的なダウンスイッチ閾値(PTDOWN)であってよい、を超えた場合にのみ実行される。
動的モードがダウンスイッチの例では、パケットのビットレートの調整を制御するステップは、現時点のクライアントバッファ中のデータ量(PT)が、基準値(PTCH)に一部が基づいて設定された調整可能なダウンスイッチ閾値(PTDOWN-ADJ)より低下した場合に、より低いビットレートへ切り替えることにより実行される。調整可能なダウンスイッチ閾値(PTDOWN-ADJ)は、所定の最小閾値(PTDOWN)と基準値(PTCH)とのほぼ中間に設定されてよい。またその例では、別案として、動的モードにおいてより低いビットレートへ切り替えるステップが、現時点のクライアントバッファ中のデータ量(PT)が所定の最小閾値、これは固定的なダウンスイッチ閾値(PTDOWN)であってよい、より低下した場合にも実行される。
好ましくは、動的モードに応じてパケットのビットレートの調整を制御するステップは、送信時点のビットレートに従って符号化されたデータを含むパケットがクライアントバッファに到達した後にのみ実行される。ビットレートの調整の以後と調整されたビットレートに従って符号化されたデータを含むパケットがクライアントバッファに到達する以前との間の時間帯では、調整は、代わりに待機モード(waiting mode)に応じて制御される。待機モードでは、現時点のクライアントバッファ中のデータ量(PT)がダウンスイッチ閾値(PTDOWN)より低下した場合に、ビットレートの低減が実行される。しかし、待機モードでは、ビットレートの増加は無能化される。
様々な実施形態において、クライアントバッファ中のデータ量を示す値は、データのプレイアウト長(PT)またはバッファ・フィルレベルを示す。
実施形態に依っては、クライアントは、携帯電話機等の移動通信端末であってもよく、さらにはまたは別案として、サーバが移動通信端末に統合されて、サーバとネットワークとの間のリンクが無線であってもよい。さらに、本方法が、サーバとクライアントとの間に設けられた1つまたはそれ以上の中間ネットワーク・ノード(プロキシ等)によって実行されてよい。本方法はまた、クライアントバッファ(または、クライアントの構成に依っては多重のクライアントバッファ)によってバッファされる複数のデータ・ストリームを有するアーキテクチャにおいて利用されてもよい。
本発明はまた、コンピュータ読み取り可能な記録媒体上に格納され、それがコンピュータシステム上で走る時に上述の方法の諸ステップのいずれをも実行するためのプログラム・コード部を含むコンピュータプログラム製品で実現されてもよい。
本発明はさらに、コンピュータ処理装置およびその処理装置に結ばれた記憶装置を含む装置を含んでもよい。ここで、記憶装置は、上述の方法の諸ステップのいずれをも実行する1つまたはそれ以上のプログラムに符号化されている。
さらに別の実施形態では、本発明は、サーバからクライアントバッファを有するクライアントへのパケット送信を制御するための装置であって、現時点のクライアントバッファの状態に基づいて、サーバからクライアントへのパケットのビットレートがサーバによって調整可能である装置に関連する。本装置は、送信時点のビットレートでパケットによるデータの送信を開始するビットレート制御部と、送信後の時点のクライアントバッファ中のデータ量を示す基準値を検出するために、クライアントバッファを監視するクライアントバッファ監視部と、現時点のクライアントバッファ中のデータ量を示す値を追跡する追跡部と、現時点のクライアントバッファ中のデータ量を示す値と、基準値とに基づいて、パケットのビットレートの調整を制御する動的モード制御部とを含む。
1つの実施形態では、本装置は、パケットのビットレートの調整を待機モードに応じて制御する待機モード制御部をさらに含む。
本装置は、ネットワーク・サーバおよび/または無線端末等の固定または移動体ネットワークの構成要素として構成されてもよい。さらに、本装置は、プロキシ等の中間ネットワーク・ノードによって構成されてもよい。
以下では、本発明を、図面に示された例示的な実施形態を参照しながら説明する。
以下の記述においては、説明を目的としており限定を目的とするものではないので、本発明を完全に理解できるようにするために、特定のステップ順序や種々の構成等の具体例を詳細に説明する。本発明がこれらの具体的な詳細例とは別の実施形態においても実施可能なことは、当業者には明白であろう。さらに、当業者は、ここで以下に説明される諸機能がプログラム可能なマイクロプロセッサまたは汎用コンピュータで働くソフトウェアを使用して、および/または特定用途向け集積回路(ASIC)を使用して、実施される場合があることを理解できよう。また、本発明は第一義には方法として説明されるが、コンピュータプログラム製品や、コンピュータ処理装置と処理装置に結合された記憶装置、ここで記憶装置はここに開示される方法を実行する1つまたはそれ以上のプログラムに符号化されている、を含むシステムまたは装置の形で実施されてもよいことも理解されよう。
図1は、本発明に関連して使用されるアーキテクチャ例100を示している。
アーキテクチャ例100には、IPネットワーク110等の通信経路を介してクライアント115に接続されるサーバ105が含まれる。サーバは、ある種のメディア・コンテンツ(例えば、マルチメディア・データ・ファイル)にRTP/UDPモジュール125(Real time Transport Protocol:実時間トランスポート・プロトコル/User Datagram Protocol:ユーザ・データグラム・プロトコル)を介してアクセスしたり送信したりするメディア・コンテンツ・モジュール120を含む。RTP/UDPモジュール125は、UDP上のRTP、または(UDP等のトランスポート・レイヤ・プロトコルを使って)マルチメディア・データの実時間転送を管理するその他のデータ・トランスポート・プロトコルのようなストリーミング標準を使用する。
パケットは、公衆ネットワーク130(例えば、インターネット、ただし、サーバが事業者ネットワーク(operator network)135に直接接続される場合は、外部の公衆ネットワークは不要)へ送信される。公衆ネットワーク130は、公衆ネットワークに接続された移動通信事業者の「有線(wired)」ネットワーク等の事業者ネットワーク135にパケットを配信する。
事業者ネットワーク135は、サーバ105とクライアント115との間の通信リンクを提供するコアネットワーク140を含む。オプションとしてバッファを有してよいコアネットワーク140は、無線送信機150によりそれらを送信する前にRAN(radio access network: 無線アクセス・ネットワーク)145中のバッファ(SGSN中またはRNC中のバッファ等)にバッファリングするために、RTP/UDPモジュール125から受信したパケットを提供する。コアネットワーク140(バッファリングが使用される場合の)およびRAN145のバッファは直列接続されて、ネットワーク・バッファを形成する。
クライアント115は、無線送信機150が送信したパケットをクライアントバッファ155中に受信する。パケットは、メディア・アプリケーション・モジュール165(すなわちマルチメディア・プレーヤ)へ配信して使用するため、クライアントバッファ155からRTP/UDPモジュール160へ転送される。
本出願の目的では、「パケット送信レート」という用語は、サーバ105からIPネットワーク110へのパケットの送信レートを指し、「リンクレート」という用語は、IPネットワーク110からクライアント115へのパケットの送信レートを指し、「ビットレート」という用語は、メディア・アプリケーション・モジュール165によるプレイアウトのために、データがクライアントバッファ155からメディア・アプリケーション・モジュール165へ転送されるレートを指す。これはまた「コンテンツレート」と呼ばれることもある。
図2を参照して、例えば、図1のシステムによって実行される、本発明の方法の実施形態200が図示されている。
図2の方法は、本発明を処理する動的モードを表わしており、動的モード単独で、または図3に示される待機モードと組み合わせて実施される。本方法は、好ましくは、図1のサーバ105等のサーバにより実施されるが、その他のどのような適当なネットワーク構成要素によって実施されてもよい。以下の記述では、サーバが本方法のステップを実施するものとする。
まず、ステップ202で、サーバは、送信時点のビットレートに従って符号化されたメディア・ストリームのパケットの送信を開始し、クライアントバッファ155(図1)を監視する。送信時点のビットレートは、例えば、特定のビットレートを持つストリームの予め符号化されたバージョンを選択することにより設定されてよい。ステップ204で、サーバは、送信後の時点、例えば、上記送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点における、クライアントバッファ中のデータ量を示す基準値を格納する。上記送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点を検出するために、サーバは、クライアントバッファから受信した信号を処理する。
1つの例では、クライアントバッファがRTCPプロトコルに準拠して実施される場合、サーバは、クライアントバッファからフィードバック情報を受信し、そのフィードバック情報はNSNまたはHRSNデータ・フィールドを含んでいる。サーバは、これらのデータ・フィールド中の情報を使って、上記送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点を、少なくとも近似的に検出することができる。先述のように、クライアントバッファ中のデータ量は、例えば、プレイアウト長(PT)、クライアントバッファ・フィルレベル、またはその他の適当な値を使って示される場合がある。以下の記述では、プレイアウト長を使用する例について述べる。プレイアウト長を使用する場合、ステップ204で検出される基準値をPTCHとして参照する。
ステップ206で、サーバは、現時点のクライアントバッファ中のデータ量を示す値、すなわちPTを追跡する。これは、ほかの従来技術により、例えば、NSNおよびHRSNデータ・フィールド中の情報を使用して実行してもよい。
ステップ208で、サーバは、現時点のクライアントバッファ中のデータ量を示す値(ステップ206で検出)と、基準値(ステップ204で検出)とに基づいて、ビットレートの調整を制御する。言い換えれば、サーバは、PTとPTCHの両者に基づいてビットレートの調整を制御する。PTに加えてPTCHをも考慮することにより、サーバは、固定的なレート切り替え閾値のみを使用する従来システムで発生する不必要なレート切り替えの多くを回避することができる。例えば、PTCHは調整可能なアップスイッチ閾値およびダウンスイッチ閾値を設定するのに使用されてよく、これにより不必要なレート切り替えが最小化する。
好ましくは、調整可能な閾値は、前回のアップスイッチの後、クライアントバッファのプレイアウト長がなおも増加している場合にのみ、追加のアップスイッチが実行されるよう設定される。こうして、クライアントバッファのプレイアウト長が既に減少に転じたにも拘わらず追加のアップスイッチが実行されるようなことが回避される。一方、前回のダウンスイッチの後、クライアントバッファのプレイアウト長がなおも減少している場合にのみ、追加のダウンスイッチが実行される。こうして、クライアントバッファのプレイアウト長が既に増加に転じたにも拘わらず追加のダウンスイッチが実行されるようなことは回避される。これは、以下で図5の好ましい実施形態を参照しながらもっと詳細に述べる。
図2について、最後にステップ210で、ステップ208で実行されたビットレートのいずれの調整によっても、サーバは待機モード300へ切り替わる。
図3を参照して、待機モード300について要約する。
以下で議論されるように、待機モード単独でも、すなわち、図2を参照して示された動的モードとは独立に実施することができる。
図3のステップ302で、サーバは、また現時点のクライアントバッファ中のデータ量、すなわちプレイアウト長(PT)を示す値を追跡する。ステップ304で、サーバは、調整されたビットレートに従って符号化されたデータを有するパケットがクライアントバッファに到達したかを検出するために、クライアントバッファを監視する。ステップ304で参照される調整されたレートは、図2のステップ208で実行されたビットレートの調整(これが、動的モードから待機モードへの切り替えを起動した)の結果である新しいビットレートである。特定のビットレートで符号化されたパケットがクライアントバッファにすでに到達したかの判定は、NSNおよびHRSNデータ・フィールド中のデータを調べることにより実行される。
ステップ306で、調整されたビットレートで符号化されたデータのパケットがまだクライアントバッファに到達していない間、サーバは、現時点のクライアントバッファ中のデータ量を示す値(PT)に基づくビットレート低減の実行によるビットレートのいずれの追加的調整をも制御する一方、ビットレートのいずれの増加をも無能化する。ステップ308で、最も新しく調整されたビットレートで符号化されたデータを有するパケットがクライアントバッファに一旦到達すると、サーバは、図2の動的モードへ戻るよう切り替える。
言い換えるならば、ステップ306は、前回実行されたレート調整(すなわち、アップスイッチまたはダウンスイッチ)の時点と、調整されたビットレートで符号化されたデータを含むパケットがクライアントバッファに初めて到達する時点との間の期間でだけ実行される。この期間では、レートの増加は無能化される。したがって、クライアントバッファの状態に関わらず、アップスイッチが実行されることはない。しかし、ダウンスイッチは依然として実行される。ダウンスイッチが、ほかの従来技術に従って実行される場合もある。その場合は、PTは固定的なPTDOWN閾値と比較され、PTがPTDOWNより低下した場合にダウンスイッチが実行される。調整されたビットレートで符号化されたデータを有するパケットがクライアントバッファに一旦到達すると、動的モードの処理が再度実行され、アップスイッチおよびダウンスイッチの両者が許される。
したがって、一旦ビットレートの調整(アップスイッチかダウンスイッチのいずれか)が実行されると、調整されたビットレートに従って符号化されたデータを含むパケットがクライアントバッファに受信されるまで、アップスイッチは無能化される。これにより、前回のレート調整が効果を発揮する前に、クライアントバッファのプレイアウト長の途中での変化に基づいて、追加的なアップスイッチを実行することがないようにする。
上述の「発明の開示」の項で説明したように、前回のレート調整が効果を発揮する前に、クライアントバッファのプレイアウト長が変化する状況が起こり得る。そのような変化は、往々にして追加的なアップスイッチを起動することがあり、それらが不必要で逆効果を有することもしばしばである。実際に、一連のダウンスイッチが必要となるまでビットレートが増加することもよくあり、それらのダウンスイッチが十分迅速に実行できないため、バッファ溢れを防止できないことも多い。
一方、待機モードであっても、ダウンスイッチは実行されてよい。通常、再バッファリングの発生が端末ユーザに惹き起こす不愉快さのレベルは高いことから、再バッファリングの発生はいかなる状況においても回避されるべきであり、その発生の可能性を防ぐために追加的なダウンスイッチが許される。
調整されたビットレート(すなわち、図2のステップ208で設定されたレート)に従って符号化されたデータを含むパケットが最終的にクライアントバッファに受信され、動的モードへ戻る切り替えが起動される以前には、一連のダウンスイッチがステップ306で実行されることがあってもよいことに注意されたい。1つの例では、サーバが切り替えにより動的モードへ戻る時、動的モードの論理が使用する新しい「現時点の(current)」レートは、最新の、すなわち最も最近のダウンスイッチに従うレートである。
本例では、待機モードの間に一連のダウンスイッチが実行された場合、最新のダウンスイッチに従って送信されたパケットが最終的にクライアントバッファに受信されるまで、サーバはPTCHを更新しない。
別の例では、サーバが切り替えにより動的モードへ戻る時、動的モードの論理が使用する新しい「現時点の」レートは、先の例とは違って、待機モードで実行された最初のダウンスイッチに従うレートである。この第2の例では、待機モード中に一連のダウンスイッチが実行された場合、最初のダウンスイッチに従って送信されたパケットがクライアントバッファに受信されると、サーバは直ぐにPTCHを更新する。
以上のように、図2および図3に本発明の動的モードおよび待機モードが要約される。好ましい実施形態では、サーバは両方のモードを実施でき、ビットレートが調整された時点と、送信時点のビットレートで符号化されたデータのパケットがクライアントバッファに到達した時点とに基づいて、両モード間の行き来を切り替える。
図4は、2つの動作モードを要約する状態図を示す。
サーバは、レートの調整310(アップスイッチかダウンスイッチのいずれか)が実行されるまで動的モード200に留まり、レートの調整により待機モードへの遷移が起動される。その後、サーバは、送信時点のビットレートに従って符号化されたデータを含むパケットがクライアントバッファに到達する312まで待機モードに留まり、上記到達により動的モードへ戻る遷移が起動される。
以上のようにして、サーバは、バッファ溢れを防ぐ働きをしながら、不必要なレート切り替えを最小化するために常に動作モードを選択して動作し、そして最も重要なことは、再バッファリングの発生を防ぐ働きをすることである。
しかし、別の実施形態では、サーバが動的モードのみを実施するかまたは待機モードのみを実施するよう構成される場合もある。
動的モードのみが実施される場合、好ましくは、サーバが常に動的モードに留まるよう構成される。言い換えるならば、ビットレートの調整(これは、例えば、図2のステップ208で起動される)が他のモードへの遷移を起動することはない。処理は動的モード中でのみ続けられ、調整されたビットレートに従って符号化されたデータを含むパケットがクライアントバッファに到達する時点を検出するために、サーバはクライアントバッファを監視し、それに従ってPTCHを更新する。
しかし、待機モードのみが実施される場合、好ましくは、サーバが待機モードに常に留まる(これでは、アップスイッチが永久に実行されない)ことはない。むしろ、好ましくは、サーバの動作は待機モードと通常モード(normal mode)との間を行ったり来たりするよう切り替わる。ここで、通常モードは、ほかの従来型の動作モード(固定的なアップスイッチの閾値およびダウンスイッチの閾値が、プレイアウト長またはクライアントバッファ・フィルレベルとともに使用される)であってよい。通常モードは、図5の閾値メカニズムに加えてまたはその代わりに、この技術分野でよく知られるレート評価メカニズムを使用することがあってよい。言い換えれば、動的モードを通常モードに置き換えることを除いて、システムは、図4の状態図に類似した状態図に従って実施される。
図5に移り、図2のステップ208で使用される動的モードの論理の実施形態例について述べる。
この実施形態例では、基準値PTCHは、送信時点のレートで送信されたパケットが初めてクライアントバッファに到達した時点の、クライアントバッファ中のデータ量を示す。別の例では、基準値PTCHを検出するのに別の基準時点(reference points)が代わりに使用される。例えば、レート切り替えの時点と新しいレートで送信されたパケットが初めてクライアントバッファに到達した時点との間に定義された基準時点、および新しいレートで送信されたパケットが初めてクライアントバッファに到達した後に定義された基準時点、等である。
まず、ステップ400で、サーバは、PTUP、PTDOWN、PTCH、および安全値Sへ値を入力する。PTUPおよびPTDOWNは、それぞれ所定の固定的なアップスイッチ閾値およびダウンスイッチ閾値であり、これらはほかの従来技術に従って設定される場合もある。PTCHは、図2のステップ204で判定された値であり、送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点の、クライアントバッファ中のデータ量を示す。Sは安全値であり、1.0より大きく設定され、1.2に設定した例もある。ステップ402で、サーバは、調整可能なアップスイッチ閾値(PTUP-ADJ)をPTCHに安全値Sを乗じたものに等しいと設定する。ステップ404で、サーバは、調整可能なダウンスイッチ閾値(PTDOWN-ADJ)を、PTCHにPTDOWNを加え全体を2で除算したものに等しいと設定する。すなわち、PTDOWN-ADJは、PTCHとPTDOWNとの中ほどに設定される。一般的には、PTDOWN-ADJは、PTCHとPTDOWNの間のどの点に設定されてもよい。
それらの閾値が図6に示される。図6は、図1のクライアントバッファ155をブロック図で表わしたものである。
図6の例では、PTCHは、サーバによってPTUPより大きい値として見いだされた。したがって、PTCHとPTDOWNとの中ほどに設定されるPTDOWN-ADJは、PTDOWNより大きい。一方、PTCHがPTDOWNより小さい場合は、同様にPTDOWN-ADJもPTDOWNより小さくなる。また、図6の例では、PTUP-ADJ(これはPTCH*Sに等しい)は、PTUPより大きい。
一方、別の例で、PTCHがPTUPよりかなり小さい場合は、PTUP-ADJはPTUPより小さいかもしれない。これは、安全係数Sに使用される値のみならずPTCHの正確な値にも依存する。したがって、PTCHおよびその他の係数の値に依って、PTUPおよびPTDOWNの調整可能バージョンは、それらの固定的な相手より大きい場合もあり小さい場合もある。PTCH*Sがクライアントバッファの最大値(MAX)より大きいような状況が生じ得ることにも注意されたい。それが事実の場合、PTUP-ADJは、単に、MAXに等しいかまたは他のもっと小さいデフォルト値に設定される。
図5に戻って、ステップ406で、サーバは、図2のステップ206で追跡されたPT(すなわち、クライアントバッファ中に既に含まれるデータの現時点のプレイアウト長)の値の入力を開始する。判定ステップ408では、PTがPTDOWNより大きく、且つPTがPTUP-ADJよりも大きい場合、ステップ410でアップスイッチが起動される。そうでない場合は、判定ステップ412が実行され、PTがPTDOWNより小さいか、またはPTがPTUP-ADJより小さい場合、ステップ414でダウンスイッチが起動される。
判定ステップ408および412の論理は、以下のように表現されてもよい。
If PT>PTDOWN AND PT>PTUP-ADJ then
Perform up-switch
else if PT<PTDOWN OR PT<PTDOWN-ADJ
Perform down-switch
end if
ここで、先述のように、
PTUP-ADJ=PTCH*S であり、且つ
PTDOWN-ADJ=(PTCH+PTDOWN)/2
である。
このように、アップスイッチは、現時点のクライアントバッファのプレイアウト長(PT)が調整されたアップスイッチ閾値(PTUP-ADJ)を超過した場合に、PTがPTDOWNをも超過していると、起動される。この後者の条件は、ダウンスイッチの方がより適切かもしれない状況での不適切なアップスイッチを防止する。固定的なアップスイッチ閾値ではなく、調整されたアップスイッチ閾値に基づいてアップスイッチを起動することにより、サーバは、現時点のクライアントバッファの状態(PTで示される)を考慮に入れる一方、クライアントバッファの状態の動的な変化をも(アップスイッチ閾値の調整を通して)考慮に入れる。これにより、その他の不適切なアップスイッチの防止に役立つ。
調整可能なアップスイッチ閾値が固定的なアップスイッチ閾値にぴったり等しく初期設定される例を考えよう。ここで、クライアントバッファのプレイアウト長がその閾値レベルを超過した場合、アップスイッチが実行される。その後、そのより高いビットレートで送信された最初のパケットがクライアントバッファに到達する以前にプレイアウト長が増加しても、その時には調整可能なアップスイッチ閾値は固定的な閾値より大きくなっていよう。その場合、プレイアウト長がその新しいより高い閾値を超過した場合にのみ、追加的なアップスイッチが実行される。言い換えるならば、より高い閾値を超過せねばならないため、アップスイッチはより起動され難くなる。こうして、追加的なアップスイッチが遅れることになる。これは、アップスイッチの遅れが正当化される状況だからである。
一方、固定的なアップスイッチ閾値がここでも使用されたとすると、クライアントバッファのプレイアウト長の増加は、その固定的な閾値を再度超過する新しい値をPTがとる結果となる。こうして、アップスイッチをもう1回起動することになろう。本例では、パケットが最初に受信された時点のプレイアウト長に基づいて閾値を再設定するので、プレイアウト長がさらに増加した場合にのみアップスイッチをもう1回起動できる。先述の安全係数は、アップスイッチをもう1回起動する前には、プレイアウト長がPTCHとの対比で有意に増加しなければならないことを確実にするための備えである。このようにして、最初のアップスイッチの後では、これに続くアップスイッチは、バッファのプレイアウト長がなおも増加している場合に実行される。これにより、不必要なアップスイッチが回避される。
さて、調整可能なアップスイッチ閾値は今度も固定的なアップスイッチ閾値に等しく初期設定されるが、より高いビットレートで送信された最初のパケットがクライアントバッファに到達する以前にプレイアウト長が有意に減少する例を考えよう。この場合には、調整可能なアップスイッチ閾値は固定的な閾値より低くなる。その場合は、プレイアウト長が新しいより低い閾値を超過するので(固定的な閾値PTDOWNも超過するとして)、追加的なアップスイッチが実行される。言い換えるならば、アップスイッチはより起動し易くなり、アップスイッチが遅滞なく実行される。これは、アップスイッチが正当化される状況だからである。
さてダウンスイッチであるが、ダウンスイッチは、現時点のクライアントバッファのプレイアウト長(PT)が、固定的な閾値PTDOWNか、または調整されたダウンスイッチ閾値(PTDOWN-ADJ)より低下した場合に、起動される。言い換えるならば、ダウンスイッチは、PTが2つのダウンスイッチ閾値の大きいものより低下すると起動される。ダウンスイッチが遅延するのを防止して再バッファリングの発生を防止し易くするため、固定的な閾値がダウンスイッチの起動のためになお使用される。
しかし、ダウンスイッチの促進が可能であり、このダウンスイッチの促進は、PTが調整されたダウンスイッチ閾値より低下した場合に起こる。先述のように、調整されたダウンスイッチ閾値は固定的なダウンスイッチ閾値より結果的に大きい場合も小さい場合もある。調整されたダウンスイッチ閾値が固定的なダウンスイッチ閾値より小さい場合、とにかく固定的なダウンスイッチ閾値を使用して直ちにダウンスイッチが起動されるので、それは余分である。しかし、調整可能なダウンスイッチ閾値が固定的なダウンスイッチ閾値を超過している場合は、調整可能なダウンスイッチ閾値は促進されたダウンスイッチ、すなわち、従来の切り替え論理を使用していてはダウンスイッチが起こらない状況において生起するダウンスイッチ、を起動することができる。促進されたダウンスイッチは、先述のように、プレイアウト長が調整可能なダウンスイッチ閾値より低下した場合に生起する。
判定ステップ408および412のいずれの条件も満たさない場合、処理はステップ406へ戻り、そこでPTの最新値が入力されて種々の閾値に適用される。しかし、アップスイッチとダウンスイッチのいずれかが起動されたとすると、ステップ416が実行され、そこでサーバは待機モードに切り替わる。待機モードの論理は、以下で図7を参照しつつ述べる。
簡単にまとめると、図5の動的モードの判定論理は、現時点のクライアントバッファ中のデータ量が調整されたアップスイッチ閾値を超過した場合に、パケットのビットレートをより高いビットレートへ切り替えるよう調整を制御する手段を与える。ここで、この調整されたアップスイッチ閾値は、送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点で、クライアントバッファ中のデータ量を示す値に基づいて設定されたものである。しかし、より高いビットレートへの切り替えは、現時点のクライアントバッファ中のデータ量が最低閾値をも超過した場合にのみ実行される。
動的モードの判定論理は、また、現時点のクライアントバッファ中のデータ量が調整されたダウンスイッチ閾値より低下した場合に、ビットレートをより低いビットレートに切り替えるよう調整を制御する手段を与える。ここで、この調整されたダウンスイッチ閾値は、送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点で、クライアントバッファ中のデータ量を示す値に基づいて設定されたものである。
次は図7であり、図3のステップ306で使用した待機モードの論理の好ましい実施形態について説明する。
まず、ステップ500で、サーバは、PTUPおよびPTDOWNへ値を入力する。それらは図6で使用されたのと同じ固定的な閾値である。ステップ502では、サーバは、図2のステップ206で追跡されたPT、すなわち、現時点のクライアントバッファに既に含まれるデータのプレイアウト長の値の入力を開始する。
判定ステップ504では、プレイアウト長(PT)がPTDOWNより低下した場合、ステップ506でダウンスイッチが起動される。そうでない場合、判定ステップ508で、サーバが、最新の調整されたビットレートで送信されたパケットがクライアントバッファに到達したかを判定する。もし到達したならば、ステップ510で、処理はすぐに動的モードへ戻る。到達してなければ、処理はステップ502へ戻り、プレイアウト長の更新された値が、ステップ504での固定的なダウンスイッチ閾値との比較のために入力される。
図7の論理で特に注意すべきことは、アップスイッチ閾値については比較は行われず、アップスイッチは実行されないことである。既に説明したように、待機モードの間は不適切なアップスイッチを防止するために、アップスイッチは無能化される。ダウンスイッチは、再バッファリングの生起の可能性を回避するためにダウンスイッチが確実に実行されるよう、固定的なダウンスイッチ閾値により起動される。待機モードでは、調整可能な閾値は使用されない。
以上により、パケット中の符号化されたデータのビットレートを増加または減少させることにより、パケットベース・システムのデータ送信レートを総合的に調整する技術について、方法の例示的な実施形態を説明した。パケットの送信レートは、通信リンクの帯域幅に依存するので、通常は変化しない。しかし、パケットの送信レートが、例えば、適応技術を使用して調整される実施形態があってよい。
主に方法の実施形態に関して本発明を説明してきたが、装置の実施形態もまた本発明に含まれる。図8は、例示的な装置の実施形態を大まかなレベルで示す。
簡単に言えば、図1のサーバ105に含まれてよいネットワーク構成要素600は、送信時点のビットレートでパケット中のデータの送信を開始するためのビットレート制御部602と、送信時点のビットレートに従って符号化されたデータを含むパケットが初めてクライアントバッファに到達した時点等の、送信後の時点のクライアントバッファ中のデータ量を示す基準値を検出するために、クライアントバッファを監視するためのクライアントバッファ監視部604とを含む。追跡部606は、現時点のクライアントバッファ中のデータ量を示す値を追跡する。
動的モード制御部608は、現時点のクライアントバッファ中のデータ量を示す値と、基準値とに基づいて、パケットのビットレートの調整を制御するために装備される。本装置は、また、待機モードにおいてパケットのビットレートの調整を制御するための待機モード制御部610を含む場合もある。動的モード制御部608が図5の動的モードの論理を実施し、一方、待機モード制御部610が図7の待機モードの論理を実施する。動的モード制御部608を含まなかったり、または待機モード制御部610を含まなかったりする、別の実施形態例があってもよい。
通常の当業者には理解できるように、本発明およびこれに関わる技術は、クライアントバッファの溢れや枯渇を回避することにより、マルチメディア・ストリーミング等のアプリケーションに対する、末端ユーザが知覚できるより増進させた経験を提供するものである。
さらに、当業者は、また、クライアントバッファ・フィルレベルの判定に使用される、RRsおよび送信者レポート(Sender Reports)中のデータに基づく評価を含む多くの異なる技術が存在すること、および、本発明が、1つまたはそれ以上のクライアントに送信するため、1つまたはそれ以上のネットワーク・バッファに同時にバッファされる複数のデータパケット・ストリームで並列に実施されること、を理解するであろう。また、バッファ溢れを回避するために、以上で説明したアップスイッチに加えて、送信レート制御メカニズムが使用される場合もある。通常の当業者は、さらに、本発明が、ネットワーク端末、ネットワーク・ノード等の種々のタイプのネットワーク構成要素において、またそれらのネットワーク構成要素によって、実施されることを理解しよう。特に、本発明は、移動端末、プロキシ(これにより送信経路を分割することもできる)、および固定端末によって実施される場合もある。
本発明を特定の実施形態について説明してきたが、当業者には、本発明がここで説明されまた例示された特定の実施形態に限定されるものでないことは理解されよう。従って、本発明についてその好ましい実施形態を説明してきたが、この開示がその例を示すにすぎないことを理解されたい。したがって、本発明は、ここに添付の請求項によってのみ限定されるよう意図するものである。
本発明を理解し実施するのに有用な通信システムの概略図である。 本発明の動的モードでの方法の実施形態の概要を示す処理の流れの図である。 本発明の待機モードでの方法の実施形態の概要を示す処理の流れの図である。 動的モードと待機モードとの間の相互関係の概要を示す状態図である。 本発明の動的モードの論理の例示的な実施形態を示す処理の流れの図である。 特に本発明によって使用される種々の閾値を示している、例示的なクライアントバッファのブロック図である。 本発明の待機モードの論理の例示的な実施形態を示す処理の流れの図である。 本発明のサーバ構成要素の例示的な装置の実施形態を示すブロック図である。

Claims (20)

  1. サーバ(105)からクライアントバッファ(155)を有するクライアント(115)へのパケット送信を制御する方法であって、パケットで送信されるデータの符号化ビットレートが前記クライアントバッファの状態に基づいて前記サーバにより選択され、前記サーバと、前記サーバと前記クライアントの間に設けられたネットワーク・ノードとの少なくとも何れかによって実行される方法において、
    送信時点の符号化ビットレートに従って符号化されたデータを含むパケットの送信を開始するステップ(202)と、
    前記送信時点の符号化ビットレートに従って符号化された前記データを含むパケットが初めて前記クライアントバッファに到達する時点を検出するために、前記クライアントから受信されるフィードバック情報を用いて前記クライアントバッファ(155)を監視するステップ(202)と、
    前記送信時点の符号化ビットレートに従って符号化された前記データを含むパケットが初めて前記クライアントバッファに到達した時点における、前記クライアントバッファ(155)中のデータ量を示す基準値(PTCH)を、前記フィードバック情報を用いて検出するステップ(204)と、
    現時点の前記クライアントバッファ中のデータ量を示す値(PT)を、前記フィードバック情報を用いて追跡するステップ(206)と、
    動的モード(200)に応じて、現時点の前記クライアントバッファ(155)中のデータ量を示す前記値(PT)と、前記基準値(PTCH)とに基づき、送信中のデータの前記符号化ビットレートの調整を制御するステップ(208)と
    を含むことを特徴とする方法。
  2. 前記動的モードにおける調整を制御する前記ステップ(208)は、
    現時点の前記クライアントバッファ中の前記データ量(PT)が、前記基準値(PTCH)に基づいて設定された調整可能なアップスイッチ閾値(PTUP-ADJ)を超過した場合、より高い符号化ビットレートへ切り替えるステップ(410)を含むことを特徴とする請求項1に記載の方法。
  3. 前記調整可能なアップスイッチ閾値(PTUP-ADJ)が、所定の安全マージン(S)と前記基準値(PTCH)との積にほぼ等しく設定されることを特徴とする請求項2に記載の方法。
  4. 前記動的モードにおいてより高い符号化ビットレートへ切り替える前記ステップは、現時点の前記クライアントバッファ中の前記データ量(PT)が最小閾値を超過した場合(408)にのみ実行されることを特徴とする請求項2または3に記載の方法。
  5. 前記動的モード(200)において調整を制御する前記ステップ(208)は、
    現時点の前記クライアントバッファ中の前記データ量(PT)が、前記基準値(PTCH)に基づいて設定された調整可能なダウンスイッチ閾値(PTDOWN-ADJ)より低下した場合、より低い符号化ビットレートへ切り替えるステップ(414)を含むことを特徴とする請求項1乃至4のいずれか1項に記載の方法。
  6. 前記調整可能なダウンスイッチ閾値(PTDOWN-ADJ)が、所定の最小閾値(PTDOWN)と前記基準値(PTCH)とのほぼ中央に設定される(404)ことを特徴とする請求項5に記載の方法。
  7. 前記動的モード(200)においてより低い符号化ビットレートへ切り替える前記ステップ(414)は、現時点の前記クライアントバッファ中の前記データ量(PT)が前記所定の最小閾値(PTDOWN)より低下した場合にも実行されることを特徴とする請求項5または6に記載の方法。
  8. 前記最小閾値(PTDOWN)が固定的ダウンスイッチ閾値である(400)ことを特徴とする請求項6または7に記載の方法。
  9. 前記動的モード(200)においてパケットの前記符号化ビットレートの調整を制御する前記ステップ(208)は、前記送信時点の符号化ビットレートに従って符号化されたデータを含んで送信されたパケットが前記クライアントバッファに到達した(312)後にのみ実行されることを特徴とする請求項1乃至8のいずれか1項に記載の方法。
  10. 待機モード(300)において、データの前記符号化ビットレートの追加的な調整を制御するステップ(306)をさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記待機モード(300)における、データの前記符号化ビットレートの追加的な調整を制御する前記ステップ(306)は、レート調整の以後および新しく調整された符号化ビットレートに従って符号化されたデータを含んで送信されたパケットが前記クライアントバッファに到達する以前にのみ実行される(310)ことを特徴とする請求項10に記載の方法。
  12. 前記待機モード(300)における、パケットの前記符号化ビットレートの追加的な調整を制御する前記ステップ(306)は、現時点の前記クライアントバッファ中の前記データ量(PT)が固定的なダウンスイッチ閾値(PTDOWN)より低下した場合、より低い符号化ビットレートへ切り替えるステップを含むことを特徴とする請求項11に記載の方法。
  13. 前記待機モード(300)における、パケットの前記符号化ビットレートの追加的な調整を制御する前記ステップ(306)は、前記符号化ビットレートの増加を無能化するステップ(306)を含むことを特徴とする請求項11または12に記載の方法。
  14. 前記クライアントバッファ中の前記データ量を示す前記値が、前記データのプレイアウト長(PT)またはバッファ・フィルレベルを示すことを特徴とする請求項1乃至13のいずれか1項に記載の方法。
  15. 前記サーバは無線端末であることを特徴とする請求項1乃至14のいずれか1項に記載の方法。
  16. 請求項1乃至15のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータプログラム。
  17. 請求項16に記載のコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
  18. コンピュータ処理装置と該コンピュータ処理装置と接続した記憶装置とを含む装置(600)であって、
    前記記憶装置が、請求項1乃至15のいずれか1項に記載の方法の各ステップを前記コンピュータ処理装置に実行させるためのコンピュータプログラムを記憶していることを特徴とする装置。
  19. サーバ(105)からクライアントバッファ(155)を有するクライアント(115)へのパケット送信を制御する装置(600)であって、前記サーバにより、前記サーバから前記クライアントへパケットで送信されるデータの符号化ビットレートが現時点の前記クライアントバッファの状態に基づいて調整され、前記サーバと、前記サーバと前記クライアントの間のネットワークとの少なくとも何れかに含まれる装置(600)において、
    送信時点の符号化ビットレートでパケットでのデータの送信を開始するビットレート制御部(602)と、
    前記送信時点の符号化ビットレートに従って符号化された前記データを含むパケットが初めて前記クライアントバッファに到達する時点を検出するために、前記クライアントから受信されるフィードバック情報を用いて前記クライアントバッファ(155)を監視し(202)、前記送信時点の符号化ビットレートに従って符号化された前記データを含むパケットが初めて前記クライアントバッファに到達した時点における、前記クライアントバッファ(155)中のデータ量を示す基準値(PTCH)を、前記フィードバック情報を用いて検出する(204)クライアントバッファ監視部(604)と、
    現時点の前記クライアントバッファ(155)中のデータ量を示す値を、前記フィードバック情報を用いて追跡する追跡部(606)と、
    前記現時点の前記クライアントバッファ中のデータ量を示す前記値と、前記基準値とに基づいて、パケットで送信中のデータの前記符号化ビットレートの調整を制御する動的モード制御部(608)と
    を含むことを特徴とする装置。
  20. 前記サーバは無線端末であることを特徴とする請求項19に記載の装置。
JP2008504623A 2005-04-11 2005-04-11 データパケットの送信を動的に制御する技術 Active JP4681044B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2005/003785 WO2006108434A1 (en) 2005-04-11 2005-04-11 Technique for dynamically controlling data packet transmissions

Publications (3)

Publication Number Publication Date
JP2008536389A JP2008536389A (ja) 2008-09-04
JP2008536389A5 JP2008536389A5 (ja) 2010-07-29
JP4681044B2 true JP4681044B2 (ja) 2011-05-11

Family

ID=35124355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008504623A Active JP4681044B2 (ja) 2005-04-11 2005-04-11 データパケットの送信を動的に制御する技術

Country Status (7)

Country Link
US (1) US8804515B2 (ja)
EP (1) EP1872537B1 (ja)
JP (1) JP4681044B2 (ja)
CN (1) CN101160848B (ja)
AT (1) ATE406022T1 (ja)
DE (1) DE602005009264D1 (ja)
WO (1) WO2006108434A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9462032B2 (en) 2013-07-24 2016-10-04 Google Inc. Streaming media content

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8218657B2 (en) * 2005-09-02 2012-07-10 Netgear, Inc. System and method for automatic adjustment of streaming video bit rate
US8484335B2 (en) * 2006-11-06 2013-07-09 At&T Intellectual Property I, L.P. Methods, systems, and computer products for download status notification
US7952998B2 (en) * 2007-01-10 2011-05-31 International Business Machines Corporation InfiniBand credit-less flow control for long distance links
US8023482B2 (en) * 2007-03-15 2011-09-20 Cisco Technology, Inc. Dynamic rate limiting in wireless mesh networks
US8472325B2 (en) * 2007-05-10 2013-06-25 Futurewei Technologies, Inc. Network availability enhancement technique for packet transport networks
US8438301B2 (en) * 2007-09-24 2013-05-07 Microsoft Corporation Automatic bit rate detection and throttling
US9003051B2 (en) 2008-04-11 2015-04-07 Mobitv, Inc. Content server media stream management
US9015335B1 (en) * 2009-06-17 2015-04-21 Amazon Technologies, Inc. Server side stream switching
US8527649B2 (en) * 2010-03-09 2013-09-03 Mobixell Networks Ltd. Multi-stream bit rate adaptation
US8688074B2 (en) 2011-02-28 2014-04-01 Moisixell Networks Ltd. Service classification of web traffic
US8769144B2 (en) * 2011-05-19 2014-07-01 Mobitv, Inc. Contextually aware client buffer thresholds
CN103002272A (zh) * 2011-09-15 2013-03-27 上海聚力传媒技术有限公司 一种切换音视频信息的码率的方法、装置和设备
FR2980936A1 (fr) * 2011-09-30 2013-04-05 France Telecom Technique de distribution d'un contenu dans un reseau de communication
US10051519B2 (en) 2012-08-27 2018-08-14 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US9247448B2 (en) 2012-08-27 2016-01-26 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US9131251B2 (en) * 2012-09-20 2015-09-08 Google Technology Holdings LLC Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
CN105393583B (zh) * 2013-02-22 2019-07-05 瑞典爱立信有限公司 具有媒体突发传送能力的媒体分发网络
US9756112B2 (en) 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
US10334287B2 (en) * 2017-04-17 2019-06-25 Plex, Inc. Digital data streaming using server driven adaptive bitrate
US10965749B2 (en) 2018-04-10 2021-03-30 Ie Limited Dynamic data batching
US10693575B2 (en) 2018-08-31 2020-06-23 At&T Intellectual Property I, L.P. System and method for throughput prediction for cellular networks
US10868726B2 (en) 2018-12-07 2020-12-15 At&T Intellectual Property I, L.P. Apparatus and method for selecting a bandwidth prediction source
US11490149B2 (en) 2019-03-15 2022-11-01 At&T Intellectual Property I, L.P. Cap-based client-network interaction for improved streaming experience
US11420647B2 (en) * 2020-08-13 2022-08-23 Argo AI, LLC Enhanced static object classification using lidar
US20230345075A1 (en) * 2022-04-25 2023-10-26 Avago Technologies International Sales Pte. Limited Rebuffering reduction in adaptive bit-rate video streaming

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184780A (ja) * 1997-03-25 1999-07-09 Matsushita Electric Ind Co Ltd ストリームデータ転送方法およびシステム
JP2003188731A (ja) * 2001-12-18 2003-07-04 Yrp Mobile Telecommunications Key Tech Res Lab Co Ltd 可変レート符号化方法、符号化装置および復号装置
JP2003289380A (ja) * 2002-03-28 2003-10-10 Nec Corp 音声符号化方式の変更方法、通信システム、通信網および通信端末
JP2004187286A (ja) * 2002-11-20 2004-07-02 Victor Co Of Japan Ltd エンド−トゥ−エンドビットレート基準の輻輳制御を備えた、無線ネットワークにおけるmpeg−4ライブユニキャストビデオストリーミングシステム
JP2005020056A (ja) * 2003-06-23 2005-01-20 Matsushita Electric Ind Co Ltd データ符号化装置及びデータ符号化制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003794B2 (en) * 2000-06-27 2006-02-21 Bamboo Mediacasting, Inc. Multicasting transmission of multimedia information
KR100408525B1 (ko) * 2001-10-31 2003-12-06 삼성전자주식회사 네트워크에 적응적인 실시간 멀티미디어 스트리밍 시스템및 방법
US6996173B2 (en) * 2002-01-25 2006-02-07 Microsoft Corporation Seamless switching of scalable video bitstreams
US20030151753A1 (en) * 2002-02-08 2003-08-14 Shipeng Li Methods and apparatuses for use in switching between streaming video bitstreams
JP3943980B2 (ja) 2002-04-09 2007-07-11 富士通株式会社 符号分割多元接続通信システムならびに符号分割多元接続通信システムにおける基地局制御装置および基地局
WO2004039034A1 (en) 2002-10-24 2004-05-06 Telefonaktiebolaget Lm Ericsson (Publ) System and method for reducing initial buffering time for a streaming application
US7542435B2 (en) * 2004-05-12 2009-06-02 Nokia Corporation Buffer level signaling for rate adaptation in multimedia streaming
US7536469B2 (en) * 2004-12-10 2009-05-19 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a limited number of supported coding bit rates

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184780A (ja) * 1997-03-25 1999-07-09 Matsushita Electric Ind Co Ltd ストリームデータ転送方法およびシステム
JP2003188731A (ja) * 2001-12-18 2003-07-04 Yrp Mobile Telecommunications Key Tech Res Lab Co Ltd 可変レート符号化方法、符号化装置および復号装置
JP2003289380A (ja) * 2002-03-28 2003-10-10 Nec Corp 音声符号化方式の変更方法、通信システム、通信網および通信端末
JP2004187286A (ja) * 2002-11-20 2004-07-02 Victor Co Of Japan Ltd エンド−トゥ−エンドビットレート基準の輻輳制御を備えた、無線ネットワークにおけるmpeg−4ライブユニキャストビデオストリーミングシステム
JP2005020056A (ja) * 2003-06-23 2005-01-20 Matsushita Electric Ind Co Ltd データ符号化装置及びデータ符号化制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9462032B2 (en) 2013-07-24 2016-10-04 Google Inc. Streaming media content

Also Published As

Publication number Publication date
CN101160848B (zh) 2013-02-06
DE602005009264D1 (de) 2008-10-02
US20080186849A1 (en) 2008-08-07
US8804515B2 (en) 2014-08-12
JP2008536389A (ja) 2008-09-04
ATE406022T1 (de) 2008-09-15
EP1872537A1 (en) 2008-01-02
WO2006108434A1 (en) 2006-10-19
CN101160848A (zh) 2008-04-09
EP1872537B1 (en) 2008-08-20

Similar Documents

Publication Publication Date Title
JP4681044B2 (ja) データパケットの送信を動的に制御する技術
JP4819873B2 (ja) 可変ビットレート・データのデータパケット送信を制御する技術
US9191664B2 (en) Adaptive bitrate management for streaming media over packet networks
EP2719144B1 (en) On-demand adaptive bitrate management for streaming media over packet networks
CN100438504C (zh) 一种流媒体发送速率控制方法
US8949452B2 (en) System and method for progressive download with minimal play latency
US20080133766A1 (en) Method and apparatus for streaming media to a plurality of adaptive client devices
US20030067877A1 (en) Communication system and techniques for transmission from source to destination
US20030198184A1 (en) Method of dynamically determining real-time multimedia streaming rate over a communications networks
KR100652574B1 (ko) 스트리밍 시스템 및 적응적 대역 할당 방법
US20060031564A1 (en) Methods and systems for streaming data at increasing transmission rates
WO2004039034A1 (en) System and method for reducing initial buffering time for a streaming application
RU2389145C2 (ru) Способ управления передачами пакетов данных для данных с переменным битрейтом
RU2378781C2 (ru) Методика для динамического управления пакетными передачами данных
Ye et al. Receiver-buffer-driven approach to adaptive Internet video streaming
Abd et al. Supporting real-time video in SCTP networks
Abd et al. Streaming Low-Delay Video over AIMD Transport Protocols.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110107

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110203

R150 Certificate of patent or registration of utility model

Ref document number: 4681044

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250