JP5465723B2 - 経時変化するトランスポートメディアによるデータのストリーミング - Google Patents

経時変化するトランスポートメディアによるデータのストリーミング Download PDF

Info

Publication number
JP5465723B2
JP5465723B2 JP2011520286A JP2011520286A JP5465723B2 JP 5465723 B2 JP5465723 B2 JP 5465723B2 JP 2011520286 A JP2011520286 A JP 2011520286A JP 2011520286 A JP2011520286 A JP 2011520286A JP 5465723 B2 JP5465723 B2 JP 5465723B2
Authority
JP
Japan
Prior art keywords
value
metric
current
connection
coefficient
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
JP2011520286A
Other languages
English (en)
Other versions
JP2011529307A (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
Priority claimed from US12/180,704 external-priority patent/US7844725B2/en
Priority claimed from US12/180,697 external-priority patent/US8001260B2/en
Application filed by ヴァントリックス コーポレーション filed Critical ヴァントリックス コーポレーション
Publication of JP2011529307A publication Critical patent/JP2011529307A/ja
Application granted granted Critical
Publication of JP5465723B2 publication Critical patent/JP5465723B2/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • 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/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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/38Flow control; Congestion control by adapting coding or compression rate
    • 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

Description

本国際出願は、2008年7月28日出願のLABONTE,Francis等による「Flow-Rate Adaptation for a Connection of Time-Varying Capacity」なる名称の米国特許出願第12/180,697号明細書、および、「Data Streaming Through Time-Varying Transport Media」なる名称の米国特許出願第12/180,704号明細書の優先権を主張しており、これらをここに参照として組み込む。
本発明は、ソースが自身のフローレートを自身から個々のシンクへの経路の条件に応じて適合させることができるような、ソースから複数のシンクへのデータ通信に係る。
データストリーミングシステムにおいては、サーバは複数のシンクと通信することがある。一般的には、サーバに関連付けられたデータソースから個々のデータシンクへの経路は、ソースから共有ネットワークの第1のスイッチノードへの第1のスパン、共有ネットワークを経由する第1のスイッチノードから共有ネットワークの第2のスイッチノードへのスイッチ経路、および、第2のスイッチノードから個々のシンクへの第2のスパンを含む。ある経路が維持可能な最大フローレートは、共有ネットワークの負荷条件および送信媒体の物理的条件に応じて経時変化しうる。経路のどのセグメントも、複数の異なる優先順位が指定された接続により共有されうる。
接続が遅延可能なデータ(例えばコンピュータファイル)を搬送する場合には、経路条件が変動したとしても、失われたデータまたは失われることが分かっているデータの再送信が可能な公知のエンドツーエンドプロトコルを利用することで、送信されるデータの整合性を維持することができる。接続が、データの再送信が望ましくないようなリアルタイムビデオ信号等の遅延不可能なデータを搬送する場合には、信号ソースまたは信号ソースに関連付けられた信号符号器が、それぞれの接続で分かっている容量に応じて信号の内容を適合させることが非常に重要になる。
従って、接続状態のリアルタイムな評価および信号の内容の適合を行うための応答手段を設けて、接続状態が経時変化した場合であってもサービスの品質を維持できるようにする必要がある。
本発明は、ソースからシンクへの経路の条件に応じてソースからシンクへのデータのフローレートを制御する方法および装置を提供する。
一態様によると、本発明は、経時変化する接続により、符号器から復号器へとデータをストリーミングする方法を提供する。方法は、接続を特徴付ける計測値を得る段階と、計測値によって接続のトランスミッタンスの変化を推定する段階と、トランスミッタンスの変化と符合する符号器の現在の符号化レートの調節を決定して好適な符号化レートを得る段階と、符号器に命じて、好適な符号化レートに従って信号を符号化させる段階とを備える。この接続は、元々は公称符号化レートを割り当てられており、これは符号器の分類に応じて交渉または決定されうる。
計測値は、符号器と復号器との間の転送遅延、データ損失比率、または復号器の受信バッファの占有率等のパフォーマンス特性を含みうる。計測値は、予め定義された期間に相当する時間窓で得られると好適である。
符号化レートは、公称符号化レートを、計測値から導出された第1のメトリックに従って決定される第1の符号化係数で乗算することにより更新することができる。第1の符号化係数は、第1のメトリックの予め定義された関数に従って決定することができる。時間窓における計測値の平均値を、第1のメトリックとして選択することができる。
符号化レートは、公称符号化レートを、時間窓における計測値の傾向に基づく第2のメトリックに従って決定される第2の符号化係数で乗算することにより更新することもできる。符号化係数は、現在の値を、第2のメトリックの予め定義された関数に従って決定される係数で乗算することによって更新することもできる。計測値の傾向は、計測値を時間窓の時間に関連付ける回帰線の傾きに基づいて決定されてよい。計測値の傾向は、回帰線の傾きと、時間窓内の短期間中の計測値の勾配とに基づいて決定されてもよい。
別の態様によると、本発明は、経時変化する接続により、データストリーミングサーバからクライアントデバイスへ送信される信号の適合可能な符号化レートを決定する方法を提供する。方法は、接続の現在の符号化レートを決定する段階と、第1の時点と第2の時点との間の時間窓における転送遅延計測値を得る段階と、時間窓におけるデータ損失比率計測値を得る段階とを備える。そして転送遅延計測値を時間窓内の各時点に関連付ける回帰線を決定し、その傾きを、計測値の傾向を示すものとみなす。さらに第2の時点の直前で選択された転送遅延計測値の勾配を決定する。
傾きおよび勾配に従って、第1の仮の符号化レートを決定し、データ損失比率計測値に従って、第2の仮の符号化レートを決定してよい。そして、第1の仮の符号化レートおよび第2の仮の符号化レートのうち小さいほうを、好適な符号化レートとして選択することで、転送遅延要件およびデータ損失要件のうち、より厳しい要件に適合させることができる。
方法はさらに、クライアントデバイスに関連付けられたバッファの占有率に関する計測値を得る段階を備える。転送遅延要件およびデータ損失パフォーマンス要件を満たす好適な符号化レートが公称符号化レートを超え、占有率が予め定義されたバッファ占有率の閾値を越えている場合には、好適な符号化レートを公称符号化レートに等しくなるまで低減させることで、バッファのオーバフローを回避することができる。第1の仮の符号化レートは、現在の符号化レートを、予め定義された関数E=Г(α,β)に従って決定される第1の符号化係数Eで乗算することにより決定され、αは回帰線の前記傾きであり、βは勾配である。
方法ではさらに、Θで表す前記データ損失比率計測値を、予め定義されたデータ損失比率の許容インターバルの下限値Θminおよび上限値Θmaxと比較する。Θ>Θmaxであれば、第2の符号化係数E**をE**=(1−Θ)と決定する。Θ<Θminであれば、第2の符号化係数E**をE**=x>1と決定し、xは設計パラメータである。そして、現在の符号化レートを第2の符号化レートE**で乗算して第2の符号化レートを決定することができる。
さらなる態様によると、本発明は、データストリーミングシステムを提供する。システムは、複数のクライアントと通信するストリーミングサーバを備え、各クライアントは復号器、データバッファ、およびシンクレポータを有する。
ストリーミングサーバは、信号ソースと、信号ソースが生成する信号を符号化する適応符号器と、複数のクライアントを対象とする複数のダウンストリーム制御パケットを作成するソースレポータと、複数のクライアントから複数のアップストリーム制御パケットを受信して、複数のクライアントそれぞれに個々に符号化係数を決定するフローコントローラとを備える。各符号化係数は、各クライアントを対象とする信号の符号化レートを決定する。
特定のクライアントに関連付けられたシンクレポータは、フローコントローラを対象とする複数のアップストリーム制御パケットを作成する。フローコントローラは、ストリーミングサーバと特定のクライアントとの間で交換された複数のダウンストリーム制御パケットと対応する複数のアップストリーム制御パケットとを利用して、接続の現在の状態を判断する。
ソースレポータから特定のクライアントに送られるダウンストリーム制御パケットはパケット識別子を含む。特定のダウンストリーム制御パケットに呼応して特定のクライアントのシンクレポータから送られる対応するアップストリーム制御パケットは、パケット識別子を含む。
アップストリーム制御パケットも、特定のクライアントに関連付けられたデータバッファの占有率の表示を含んでよい。フローコントローラは、特定のクライアントのアップストリーム制御パケットを処理して、ストリーミングサーバから特定のクライアントへの転送遅延と、損失したダウンストリーム制御パケットの比率とから、転送遅延のインジケータを決定する。
別の態様によると、本発明は、経時変化する接続により、符号器から復号器へデータストリーミングする方法を提供する。方法は、符号器の出力のフローレートを決定するべく符号化係数を符号器に関連づける段階と、接続のパフォーマンスメトリックと、下限値および上限値を有するパフォーマンスメトリックの許容インターバルとを定義する段階と、現在の符号化係数で時間窓における接続の1セットのパフォーマンス計測値を得る段階と、1セットの計測値に従って接続のメトリックの現在の値を決定する段階と、メトリックの現在の値と許容インターバルとに従って、符号化係数を好適な符号化係数に調節する段階とを備える。
メトリックの現在の値が許容インターバルの下限値を下回る場合、現在の符号化係数を第1の係数で乗算して、好適な符号化係数を生成する。メトリックの現在の値が上限値を上回る場合、現在の符号化係数を第2の係数で乗算して、好適な符号化係数を生成する。第1の係数は1より大きく、第2の係数は1より小さい。好適には、第1の係数と第2の係数との間の積は1未満である。メトリックの現在の値が許容インターバル内にある場合には、現在の符号化係数を変更しなくてよい。
第1の係数は、メトリックの現在の値と下限値との間の差異の関数として決定することができる。第2の係数は、メトリックの現在の値と上限値との間の差異の関数として決定することができる。メトリックは、時間窓中の転送遅延の平均値、時間窓中のデータ損失の平均値、または時間窓の最後に計測された復号器のバッファの占有率のインジケータとして決定することもでき、ここで復号器のバッファは、接続により受信したデータを保持する。
方法はさらに、好適な符号化係数が現在の符号化係数とかなり異なっている場合に、符号器に命じて、好適な符号化係数と公称符号化係数とに従って信号を符号化させる段階を備える。
さらなる態様によると、本発明は、接続の複数のパフォーマンス特性の測定に基づいて経時変化する接続により、符号器から復号器へデータストリーミングする方法を提供する。方法は、符号器の出力のフローレートを決定する符号化係数を接続に関連付ける段階と、複数のパフォーマンス特性を接続と関連付ける段階と、複数のパフォーマンス特性と一対一の関係にある複数のパフォーマンスメトリックを定義する段階とを備える。
現在の符号化係数で、時間窓における接続のパフォーマンス計測値の複数のセットを得るが、ここでパフォーマンス計測値の各セットは、複数のパフォーマンス特性のいずれか1つに対応している。各パフォーマンスメトリックの現在の値を、計測値の対応するセットを用いて決定して、パフォーマンスメトリックの現在の値のセットを生成する。そして好適な符号化係数を、各パフォーマンスメトリックの現在の値に従って決定する。
方法ではさらに、複数のパフォーマンスメトリックの現在の値それぞれを許容インターバルそれぞれと比較することにより、符号化係数が調節される。各々が複数のパフォーマンスメトリックのいずれか1つに対応しているような許容インターバルのセットを定義する。各許容インターバルは、下限値と上限値それぞれから定義される。パフォーマンスメトリックの現在の値のセットの各エレメントが対応する許容インターバルの下限値を下回る場合、現在の符号化係数を、1より大きい第1の係数で乗算して、好適な符号化係数を生成する。パフォーマンスメトリックの現在の値のセットの少なくとも1つのエレメントが対応する許容インターバルの上限値を上回る場合、現在の符号化係数を、1より小さい第2の係数で乗算して、好適な符号化係数を生成する。
第1の係数は1より大きく、第2の係数は1より小さい。符号化係数を遅いペースで増加させ、比較的速いペースで低下させるには、第1の係数と第2の係数との間の積が1未満になるよう選択するとよい。
複数のパフォーマンス特性には、符号器から復号器への転送遅延、データ損失、接続により受信したデータを保持する復号器のバッファの占有率が含まれてよい。複数のパフォーマンスメトリックには、時間窓中の転送遅延の平均値、時間窓中のデータ損失の平均値、および、時間窓中の復号器のバッファの占有率値が含まれてよい。パフォーマンス計測値の複数のセットは、符号器と復号器との間の制御データの交換により得られて良い。データの交換は、リアルタイムトランスポートプロトコル(RTP)およびリアルタイムトランスポート制御プロトコル(RTCP)の利用に基づき行われてよい。
別の態様によると、本発明は、経時変化する接続により、データストリーミングサーバからクライアントデバイスへ送信される信号の適合可能な符号化レートを決定する方法を提供する。方法は、接続の現在の符号化レートを決定する段階と、第1時点と第2時点の間のW個の計測値を含む時間窓における接続の特定の特徴の計測値を得る段階と、計測値から特定の特徴のメトリックμを決定する段階とを含む。
μが、下限値μと上限値μとを有する予め定義された許容インターバル内にある場合、現在の符号化レートは変更する必要がない。一方、μが許容インターバルの上限値μを上回っている場合には、現在の符号化レートを係数x<1で乗算して、μが許容インターバルの下限値μを下回っている場合には、現在の符号化レートを係数x>1で乗算することができる。
特定の特徴が接続による転送遅延である場合、メトリックは、転送遅延の計測値σを得る段階と、計測値σを加算して循環アレイVの現在のインデックスのエントリを減算することにより総計Σを更新する段階であって、循環アレイは、特定の特徴の前の計測値を格納するW>1個のエントリを有する段階と、循環アレイの現在のインデックスに計測値σを格納する段階とにより決定される。計測値の累積数を表すカウンタは1増分され、現在のインデックスは1増分することにより更新される(つまりインデックスが値モジュロWに達すると0にリセットする)。インデックス、モジュロWを利用することにより、最新のW個の計測値が格納され、カウンタの目的は、メトリックを決定するための連続する時間窓の間を離散させること(space)である。従って、メトリックμとして利用される総計Σを利用することで、カウンタが閾値P以上である場合のみに、符号化レートの調節が必要であると決定することができる。平均値Σ/Wの代わりに総計Σを利用する目的は、計算を減らすことである。下限値μを、Wで乗算された許容可能な転送遅延の下限値として決定して、上限値μを、Wで乗算された許容可能な転送遅延の上限値として決定する。現在の符号化レートの調節が終わるごとに、カウンタをゼロにリセットする。閾値Pは、現在の符号化レートを調節する任意の連続する2つのステップ間の時間間隔が予め定義された最小の時間間隔より大きくなる程度に十分大きい値とする。係数xは、(μ−Σ)の関数として決定されてよく、係数xは(Σ−μ の関数として決定される。
特定の特徴がデータ損失比率である場合、メトリックμは、時間窓において決定されたデータ損失比率Θである。下限値および上限値μおよびμ>μは、許容可能なデータ損失比率の限界値である。係数xは、Θがμ未満であるとき所定の乗数x>1として決定され、係数xは、Θ>μであるとき(1−Θ)として決定される。
本発明の実施形態を、添付する例示的な図面を参照しながら以下に記載する。
本発明の一実施形態における経時変化する容量を有する接続のフローレート適合システムを組み込むネットワークを示す。 本発明の一実施形態における、符号化レートが接続状態に適合されるよう、可変容量を有する接続による復号器に接続する符号器を含むシステムを示す。 本発明の一実施形態における、接続を特徴付ける選択された計測値を格納する図2の符号器に関連付けられた循環バッファを示す。 本発明の一実施形態における、図2のシステムの符号器で受信された接続の計測値を示し、これら計測値は、互いに分離した、あるいは重複する時間窓で分析されている。 本発明の一実施形態における、時間窓内における計測値の変動に基づいて符号化係数を決定する方法を示すフローチャートである。 複数の時間窓における連続する計測値の複数の回帰線の一例を示しており、本発明の一実施形態においては、この回帰線の傾きを図5の方法で利用して、符号化レートの好適な値を決定する。 本発明の一実施形態において利用される正および負の傾き両方を有する複数の回帰線の別の例を示す。 図5の方法を示す正の傾きおよび負の勾配を有する回帰線の元である、時間窓における計測値を例示する。 図5の方法を示す負の傾きおよび正の勾配を有する回帰線の元である、時間窓における計測値を例示する。 本発明の一実施形態における、線形回帰の傾きおよび計測値の勾配の両方が定義する領域に従って決定される離散ステップにおいて、符号化係数のデクリメントが生じる図5の方法を示す。 本発明の一実施形態における、線形回帰の傾きおよび計測値の勾配の両方が定義する領域に従って決定される離散ステップにおいて、符号化係数のインクリメントが生じる図5の方法を示す。 本発明の一実施形態における、リアルタイムトランスポートプロトコル(RTP)を利用して接続の計測値を得るステップを示すフローチャートである。 本発明の一実施形態における、リアルタイム制御トランスポートプロトコル(RTCP)を利用して接続の計測値を得るステップを示すフローチャートである。 本発明の一実施形態における、符号器から送られるRTPパケット、および、復号器から受信するRTCPパケットに基づいて接続のパフォーマンス計測値を判断する処理を示すフローチャートである。 本発明の一実施形態における、接続メトリックと対応する符号化係数とを決定するステップを示すフローチャートである。 本発明の一実施形態における、符号化係数を決定するための、互いに分離した、あるいは重複する時間窓で採られた計測値を処理する別の方法を示す。 本発明の一実施形態における、重複する時間窓の計測値の移動平均値の計算を示す。 本発明の一実施形態における、接続のメトリックと予め定義された限界値との比較に基づき好適な符号化係数を決定する方法を示す。 本発明の一実施形態における、図17の方法の基本的なステップを示すフローチャートである。 本発明の一実施形態における、計算を最小限にするさらなるステップを含む図17の方法のステップを詳述するフローチャートである。 2つのメトリックの現在の値に応じて符号化係数を調節する図17を参照して記載されたプロセスの拡張を示す。 3つのメトリックの現在の値に応じて符号化係数を調節する図17を参照して説明するプロセスの拡張を示す。 本発明の一実施形態の説明に利用される、パケット損失比率、対、ストリーミングサーバから送信される信号の符号化レートの接続トランスミッタンス(connection transmittance)に対する比率の間の変動を示す。
<用語>
符号フローレート:符号化される信号のビットレートは経時的に変動するので、本明細書では、符号化される信号の最大ビットレートをフローレートと称することにする。
適応符号器:適応符号器は、信号を、予め定義されたフローレート範囲内の特定のフローレートに符号化する機能を有するデバイスのことである。符号化により、符号化および信号の忠実度(encode-signal fidelity)が最大化されるよう試みられる。
公称フローレート:クライアントとストリーミングサーバとの間で交渉されたフローレート、あるいは、クライアントの知っている範囲でストリーミングサーバが自動的に決定するフローレートを、本明細書では公称フローレートと称する。
符号化係数:Eで表される符号化係数は、ストリーミングサーバとクライアントとの間の接続の現在の状態に適合する好適なフローレートを決定するための、公称フローレートで乗算されたスケールファクタである。
接続トランスミッタンス(connection transmittance):ストリーミングサーバからクライアントまでの接続を、所期のパフォーマンス上の目的に背くことなく維持することのできる最大フローレートのことを、本明細書では接続トランスミッタンスと称する。
パフォーマンス特性:本明細書では、パフォーマンス特性は、転送遅延の変化、データ損失比率、信号歪曲等の計測値可能な接続特性として定義される。
スカラー計測値:1つの接続特性に関する接続計測値を、スカラー計測値と称する。
ベクトル計測値:ベクトル計測値は、同時発生する複数の接続計測値により構成される。
統計値:統計値とは、データサンプル1セットから導出される値(例えば平均値)である。
メトリック:メトリックとは、電話通信ネットワークにおける経路または接続の品質の計測値のことである。メトリックは、経路または経路内の接続のレインテンシー、信頼性、容量等の接続特性に関するものであってよい。
スカラーメトリック:ある接続特性に関するメトリックのことを本明細書ではスカラーメトリックと称する。スカラーメトリックは、複数のスカラー計測値から決定される。
ベクトルメトリック:少なくとも2つの接続特性に関するメトリックのことを本明細書ではベクトルメトリックと称する。ベクトルメトリックは複数のベクトル計測値から決定される。
許容インターバル:許容可能な経路または接続パフォーマンスを示すと考えられる、予め定義された低いほうの限界値と予め定義された高いほうの限界値との間のメトリックの範囲が、本明細書でいうところの許容インターバルである。
ダウンストリーム制御パケット:ストリーミングサーバからクライアントに送られる制御パケットがダウンストリーム制御信号である。
アップストリーム制御パケット:クライアントからストリーミングサーバに送られる制御パケットがアップストリーム制御信号である。
勾配(gradient):従来、連続関数の2つの変数の間の傾き(slope)が勾配として知られている。サンプルの関数の場合の勾配は、少数のサンプルにおける傾きを決定することで近似することができる。本明細書でいうところの勾配は、少数のサンプルをカバーする期間における計測値サンプルの傾きのこととする。
回帰線:1セットのデータを通るように引かれ、且つ、一定の基準(例えば、直線からのデータの偏差の二乗和を最小とするような基準)により決定される直線が回帰線である。回帰線の傾きは、データの分散が一定の条件を満たすときにはデータの傾向を示す信頼できる指標となりうる。
リアルタイムトランスポートプロトコル(RTP):RTPは、オーディオおよびビデオをインターネットで配信する標準的なパケットフォーマットを定義する(IETF(Internet Engineering Task Force)による定義、RFC3550)。
リアルタイムトランスポート制御プロトコル(RTCP):RTCPは、RTPフローのアウトオブバンド制御情報を提供し、ストリーミングセッションで制御パケットを送信するために期間的に利用される。RTCPの主な役割は、接続品質に対するフィードバックを提供することである。
図1は、データストリーミングシステムを示しており、ストリーミングサーバコンピューティングデバイス120(ストリーミングサーバ120とも称される)が、共有ネットワーク180(例えばインターネット)を介してクライアントデバイス160(クライアント160とも称される)にデータを送信する。クライアント160は、プロセッサおよびコンピュータ可読媒体を含み、有線アクセス媒体150または無線アクセス媒体152を介して基地局140経由でネットワーク180に接続され、基地局140はネットワーク180に、有線または無線媒体により接続される。好適な実施形態では、サーバ120は既存のプロトコルを利用して、クライアント160と制御データを交換する。例えば、ストリーミングサーバ120は、リアルタイムトランスポートプロトコル(RTP)を利用して、クライアント160に制御データを送り、クライアントはリアルタイムトランスポート制御プロトコル(RTCP)を利用してストリーミングサーバに制御データを送ることができる。他のプロトコルを接続品質制御に利用することもできる。本発明においては、クライアントはストリーミングサーバとの間でデータ符号化レートについて交渉し、ストリーミングサーバが、ストリーミングサーバ120とクライアントとの間の接続の状態の変化に応じて符号化レートを調節することができる。特に、ストリーミングサーバ120は、交渉された公称フローレート(ビットレート)およびストリーミングサーバ120からクライアント160への個々の接続状態に応じて、クライアント160に対して個別に符号化レートを割り当てることができる。ストリーミングサーバはさらに、クライアントの機器タイプを認識しており、これによって公称フローレートを決定することができる。
図2は、ストリーミングサーバ120からクライアント160への単一の接続のインスタンスを示す。ストリーミングサーバ120は信号ソース204を含み、チャネル206を介して適応符号器220に接続する。適応符号器220は、ソース204からの信号を、フローコントローラ246が決定した符号化係数および公称フローレートに基づいて符号化する。ストリーミングサーバ120は、経時変化する容量を有しうるチャネル260を介してクライアント160に接続する。クライアント160はレシーバ226を含み、レシーバ226は、情報信号(例えばビデオ信号)を検出して、検出した信号を復号器240に送り、復号器240は、検出した信号をユーザ280にとって適切なフォーマットに整える。バッファ238は復号器240と関連付けられていてよく、短期間の間データを保持する。検出された信号はさらに、シンクレポータ242を対象とする制御パケットを含みうる。シンクレポータは、ソースレポータ224から受信した制御パケットを処理して、受領確認と特定の計測値とを制御パケットに含めて、制御チャネル270経由でフローコントローラ246に送ることができる。
接続260の容量が経時変化することから、フローコントローラ246は、経時変化するチャネル260のトランスミッタンスを正確に推定して、適切な符号化係数Eを計算することが非常に重要となる。適応符号器220は、クライアントに割り当てられた公称符号化レートおよび符号化係数の現在の値に応じて信号を符号化する。フローコントローラ246は、コンピュータ可読媒体に格納されたコンピュータ可読命令を含み、許容可能なフローレート(ビットレート)全体を決定する、あるいは、情報内容を選択的に調節することで一定の信号品質を保つ。ビデオ信号の場合には、符号器はフレームレート、フレーム毎の内容、あるいはこれら両方を修正することができる。
フローコントローラ246は、サーバ120とクライアント160との間での制御パケットの交換で得た計測値を利用する。ソースレポータ228は、コンピュータ可読媒体に格納されたコンピュータ可読命令を含み、クライアント160を対象とするダウンストリーム制御パケット(不図示)を作成(formulate)する。シンクレポータ242は、コンピュータ可読媒体に格納されたコンピュータ可読命令を含み、各クライアント160に関連付けられて、フローコントローラ246に送るべきアップストリーム制御パケット(不図示)を作成する。フローコントローラ246は、ストリーミングサーバとクライアント160との間の接続を介して交換されたアップストリーム制御パケットとダウンストリーム制御パケットとを利用して、接続の現在の状態およびクライアント160の個々の適切な符号化係数を決定する。各符号化係数は、各クライアントを対象とする信号の符号化レートを決定する。
特定のクライアント160に対してソースレポータ228が送信する特定のダウンストリーム制御パケットは、ダウンストリーム制御パケット識別子と、ダウンストリームパケットを送信する時点の指標とを含む。この特定のクライアント160のシンクレポータ242が特定のダウンストリーム制御パケットに呼応して送信する、対応するアップストリーム制御パケットは、ダウンストリーム制御パケット識別子をエコーしており、この特定のクライアントがこの特定のダウンストリーム制御パケットを受信した時点を示している。
フローコントローラは、符号化係数Eの計算を、予め定義された幅Wを有する時間窓中に受信した計測値に基づいて行うことができる。幅Wは、時間インターバル(例:数ミリ秒)、あるいは、複数の得られた計測値(例:最新の128個の計測値)で定義される。今後、本明細書では時間窓の幅を、計測値のインスタンス数で表すこととする。
ストリーミングサーバ120は、少なくとも1つのプロセッサ(不図示)と、コンピュータ可読命令が格納されたコンピュータ可読媒体(不揮発性メモリ素子、DVD,CD−ROM、またはフロッピー(登録商標)ディスク等)とを含む。コンピュータ可読媒命令は、少なくとも1つのプロセッサにより実行されて、適応符号器220、ソースレポータ228、およびフローコントローラ246に後述する機能を実行させる。
図3は、フローコントローラ246が維持する循環バッファ320に格納される計測値を示す。説明を簡潔にする都合上、図示されている例における循環バッファは、時点tからtj+7の間に得られた8つの計測値342のみを含むものとして示している((j+7)が現在の観察時点である)。しかし循環バッファは多数(v個)のレコードを保持することができる。1つのレコードは、1つの計測値(スカラー計測値)あるいは1セットの同時発生した計測値(複数のベクトル計測値)を対応する時間の指標とともに含んでもよい。インデックスjの新たなレコードは、前のインデックス(j−v)のレコードを上書きする。従って循環バッファ320は、最新のv個の計測値(スカラー計測値またはベクトル計測値)を維持する。復号器240に関連付けられているバッファ238の占有率等、幾らかの計測値のなかには、クライアント160から受信するアップストリーム制御パケットから抽出できるものもある。さらに、フローコントローラ246は、クライアント160に対するダウンストリーム制御パケットが送られた時点を、サーバ120がクライアント160から対応するアップストリーム制御パケットを受信した時点と比較することで、転送遅延を判断してもよい。パケット損失(データ損失)は、クライアント160に送られた連続するダウンストリーム制御パケットの数と、クライアント160から受信され抽出された連続するアップストリームパケットの数とを比較することで検出することができる。損失パケット数の、ダウンストリーム制御パケットの数に対する比率はパケット損失比率として定義され、ここではΘという記号で表す。
循環バッファ320の各レコードは、(1)ダウンストリーム制御パケットのシリアル番号340(j、j+1、j+2、…等)、(2)同じレコードのシリアル番号340を示すアップストリーム制御パケットがサーバ120で受信された時点342(t、tj+1等)、および、(3)バッファ238の占有率等のアップストリーム制御パケットに含まれる計測値344が含まれる。
十分な数のシリアル番号340を維持することにより、任意の幅の時間窓でパケット損失比率を合理的な範囲内で計算することができる。ダウンストリーム制御パケットの送信時間と、対応するアップストリーム制御パケットの受信時間342とを維持することにより、転送遅延を計算することができる。従って、接続を特徴付ける計測値には、フローコントローラ246で計算された計測値(例えば転送遅延またはパケット損失比率)、および、直接アップストリーム制御パケットから読み出された計測値344が含まれてよい。
時間窓は、所期の制御パケットの最大数または所期の期間をカバーするような範囲としてよい。図19を参照して後述するようにこの2つの条件を利用してより厳しい条件で時間窓を定義する。
図4は、フローコントローラ246が受信した制御パケットから抽出された連続する計測値を示す。経時変化するチャネルを特徴付けるメトリックを時間窓の最後に計算する。図4の例では、各窓が8つの計測値をカバーしている。メトリックは、遅延、データ損失、復号器240のバッファ占有率、および復号器の出力を分析することで判断された信号品質等の幾らかの属性の一部または全てをカバーしていてよい。計測値は、データ損失比率等の1つの接続特徴に関しているスカラーであっても、転送遅延、データ損失、および、接続に関連付けられたバッファの占有率等の複数の接続特徴をカバーするベクトルであってもよい。
現在の窓における計測値データの分析結果によって、後続する時間窓を選択してもよい。ある窓における計測値の分析の結果符号化レートを修正した場合には(つまり、符号化係数Eを修正した場合には)、後続する窓を、現在の窓から大幅な時間インターバル分離れるように設けることもできる。また後続する窓は、現在の窓に隣接して設けたり、現在の窓に重複するような移動窓として設けたりすることもできる。
図4の例では、窓420の最後の計測値の後に決定された接続のメトリックによって、符号化係数が更新される場合がある。窓240Aの最後に決定されたメトリックによって、現在の接続の符号化係数Eが更新されている。従って新たな窓240Bは、窓240Aの直後に設けられている。窓240Bの最後に決定されたメトリックによっても符号化係数が更新されているので、窓240Cは窓240Bの直後に設けられている。窓240Cの最後に決定されたメトリックによっても符号化係数が更新されているので、窓240Dは窓240Cの直後に設けられている。窓240Dの最後に決定されたメトリックでは、符号化係数が変更されなかった。従って後続する窓240Eは窓240Dに重複している。窓240Eの最後に決定されたメトリックでは符号化係数が変更されなかった。同様に、窓240Fの最後に決定されたメトリックでは符号化係数が変更されなかった。重複する窓240Gの最後に決定されたメトリックによって、符号化係数が修正された。従って新たな窓240Hは、窓240Gの直後に設けられている。窓240Hの最後に決定されたメトリックにより符号化係数が修正されたので、後続する窓240Iがその直後に設けられている。重複する窓(移動窓)240I、240J、240K、240L、および240Mの全てによっても(I、J、K、L、およびMという符号を付される計測値で終わっているが)、符号化係数は修正されなかった。重複する窓240Nの最後に決定されたメトリックによって、符号化係数が修正されたので、新たな窓(不図示)はその直後に設けられることになる。
図5は符号化係数の好適な現在の値を決定する基本的なステップを示す。ステップ520で、符号化係数Eを1.0に等しくなるよう設定する(このときの符号化レートは、接続が確立されたとき決定される公称符号化レートである)。符号器は当然ながら符号化された信号の性質に従って変化するレートでデータを生成する。しかしこの符号化係数Eによって、符号器は、符号化された信号のダイナミクス(変動するビットレート)に関わらず自身の出力フローレートを独立して修正することになる。循環バッファ320(図3のインデックスも、ステップ520でゼロに(あるいは、バッファ長を越えない任意の所期の値に)初期化される。ステップ522で、フローコントローラ246は、シンクレポータ242が送ってくる制御データを取得して、制御パケットから接続計測値を抽出して、循環バッファのアドレス「インデックス」に該計測値を格納して、その後ステップ524でインデックスが1に増分される。アドレスインデックスは、Wに達すると、0にリセットされる。ステップ526で、インデックスの値が窓の幅Wより小さいと判断されると、ステップ522に戻り、新たな計測値(スカラー計測値)または1セットの同時発生した計測値(ベクトル計測値)を受信して処理する。窓の幅は、複数のバッファレコードとして表すことができ、ここでは各レコードがスカラー計測値またはベクトル計測値を持っている。ステップ526でインデックスの値が窓の幅Wに少なくとも等しいと判断されると、ステップ528で、窓の最後に先立つ短期間の間にβで表される勾配を決定する。勾配βの絶対値が第1の予め定義された閾値
Figure 0005465723
より小さい場合には、符号化係数は更新せず、ステップ522に戻る。さもなくば、ステップ532で、線形回帰法により最新のW個の計測値の傾向を判断する。ステップ540で、αで表される回帰線の傾きの絶対値を、第2の予め定義された閾値
Figure 0005465723
と比較する。αの絶対値(|α|で表す)が
Figure 0005465723
より小さい場合には、ステップ522に戻り、フローコントローラが受信した新たな制御パケットからスカラー計測値またはベクトル計測値を得て格納する。一方
Figure 0005465723
である場合には、ステップ542で、予め定義された関数Г(α,β)によって新たな符号化係数Eを決定して、インデックスを0にリセットする。ステップ546で、Eの値を予め定義された最小値Eminより大きく予め定義された最大値Emaxより小さい範囲に設定する。
計測値が高い接続トランスミッタンスを示す場合に関数Г(α,β)によりEの値が連続増加する場合には、Eの値が所期の設計値である上限値Emaxを超えることになる。次いでステップ546で、Eの値をEmax(E←min(E,Emax))に低減させる。
符号化レートを一定の値未満にまで低減させると、計測値が低い接続トランスミッタンスを示す場合に関数Г(α,β)によりEの値が連続減少する場合には、Eの値は所期の設計値である下限値Emin未満になる。その場合にはステップ546でEの値をEmin(E←max(E,Emin))に増加させる。
αおよびβの絶対値の小さな値から推論されるように、接続トランスミッタンスの変化が無視できる範囲である場合には、ステップ542をかなり長期間の間起動しなくてよい。ただし循環バッファ320で新たな計測値で、処理済みの前の計測値を上書きし、ステップ532で回帰線の傾きαを最新のW個のスカラー計測値(またはW個のベクトル計測値)から決定する。
図5のステップは、記憶媒体に格納されているコンピュータ可読命令に従って、フローコントローラ246に関連付けられたプロセッサによって実装される。
図6は、クライアント160における遅延、データ損失比率、またはバッファ占有率といった接続特徴の連続する計測値を示す。回帰線620の傾きは正の値であり、これは接続条件が低下していること(接続トランスミッタンスが低下していること)を示すので、符号化レートを下げることで(つまり、符号化係数Eを下げることで)フローレートを下げる必要があることを意味している。
図7はクライアント160の接続特徴の連続する計測値を示す。回帰線620の傾きは、正の値から複数の負の値へと変化しており、これは接続条件が一旦低下した後で向上していることを示す。
図8は、図4の窓420における8つのスカラー計測値を示す。計測値からの偏差の二乗和を最小にするよう選択された回帰線620の時点t、tj+1,…tj+7は、傾きα=1.64である。最後の2つの計測値から決定された勾配βは負である。Eの値を予め定義された関数Г(α,β)から決定する。関数Г(α,β)の一例を、表形式で図10に示す。
図9は、回帰線の傾きα=−1.64である窓における8つのスカラー計測値を示す。最後の2つの計測値から決定された勾配βは正である。Eの値を予め定義された関数Г(α,β)から決定する。
図10は、回帰線の傾きαが正の値である場合の関数Г(α,β)の一例を示す。本図から、勾配βが1.0未満でありα≧0である場合、または、勾配βが1以上でありαが0.1未満である場合には、符号化係数Eを変えない。図8の計測値においては、回帰線の傾きαが正であり勾配βが負になっている。従って図10の関数Г(α,β)では、符号化係数Eを変更しない。
同様に図11は、αが負の値である場合の関数Г(α,β)の一例を示す。β≧(−1.2)の場合、または、β<(−1.2)であるがα>(−0.2)である場合には、Eの値は変えない。図9の計測値においては、回帰線の傾きαが負であり勾配βが正になっている。従って図11の関数Г(α,β)においては、符号化係数Eは変えない。
図12Aおよび図12Bは、既知のプロトコルを利用してストリーミングサーバ120とクライアント160との間で制御パケットを交換するプロセスを示す。図12Aは、RTP(リアルタイムトランスポートプロトコル)制御パケットをクライアント160に送信するプロセスを示し、図12BはRTCP(リアルタイム制御トランスポートプロトコル)パケットをクライアント160から受信して、フローコントローラ246でRTCPパケットの内容を処理するプロセスを示す。図12Aのプロセスはステップ1220でソースレポータ228(図2)がRTP制御パケットを準備することから開始される。ステップ1222で、符号化係数の現在の値を判断する。ステップ1224でRTPパケットのシーケンス番号およびRTPパケットを送信する時間を記録する。ステップ1226でRTPパケットがクライアント160それぞれに対して送信される。
図12Bのプロセスはステップ1240でフローコントローラ246(図2)がRTCPパケットをシンクレポータ242から受信することから開始される。ステップ1242で計測値データをRTCPパケットから抽出する。ステップ1244で、現在の時点と、符号化係数が前に更新された時点との差異を判断する。時間の差異が予め定義された最小更新インターバルよりも小さい場合には、ステップ1240に戻り、待ち状態のRTCPパケットについて検討する、あるいは今後到達するRTCPパケットを待つ。一方で時間の差異が最小更新インターバル以上である場合には、ステップ1246で新たに許可可能な符号化レートを決定する。ステップ1248では符号化係数の更新が必要か否かを判断する。判断結果が肯定的である場合には新たな符号化係数を決定する。判断結果が否定的であった場合にはステップ1240に戻る。ステップ1260で符号化係数を更新して符号器220に伝え、フローコントローラ246(図2)が新たなRTCPパケットを検討する準備が整う(ステップ1240)。
図12Aおよび図12Bのステップは図13および図14でさらに詳しく示すが、フローコントローラ246に関連付けられている上述したプロセッサにより、記憶媒体に格納されているコンピュータ可読命令に従って実装される。
図13は図12Bのステップ1242をより詳しく示す。ステップ1320で、受信されたRTCPパケットに、シンクレポータ242からの「レシーバレポート」が含まれていないか調べる。RTCPパケットがレシーバレポートを含んでいない場合にはステップ1340を実行して、RTCPパケットがバッファ占有率レポートを含んでいないか調べる。RTCPパケットがレシーバレポートを含んでいる場合には、ステップ1322で、転送遅延を、RTCPパケットの現在の到着時点と、対応するRTPパケットを送信する時点との間の時間の差異として決定する。この、対応するRTPパケットとは、RTCPレシーバレポートの「拡張された最高シーケンス番号が受信された(extended highest sequence number received)」フィールドに示される番号と符合するシーケンス番号を有するRTPパケットのことである。ステップ1326で最小転送遅延を、ステップ1322で計算された転送遅延および接続の最小転送遅延の前の値のうち小さいほうの値に決定する。最小転送遅延を任意の大きな値に初期化する。最小転送遅延は、変動転送遅延の測定用の参照値として将来利用するために維持しておく。
図14は、接続メトリックおよび対応する符号化係数を決定するステップの概略を示すフローチャートである。ステップ1420で、ある時間窓におけるパフォーマンス計測値の回帰線の傾きを、任意の公知の分析法により計算する。さらに時間窓の最後付近における計測値の勾配も決定する。さらにステップ1422で、この時間窓におけるデータ損失の統計値を決定する。ステップ1424で、符号化係数のある好適な値(Eと称する)を、回帰線の傾きと勾配とに基づいて、図10および図11を参照して上述したように決定する。ステップ1426で、符号化係数のある好適な値(E**と称する)をステップ1422で決定したデータ損失統計値に従って決定する。ステップ1428で、EおよびE**のうちの小さいほうを選択して新たな符号化係数Eとする。好適な接続条件下では、好適な符号化係数は1.0を超えてよい(つまり、符号器は、接続に割り当てられる公称フローレートを超えるフローレート(ビットレート)を瞬間的に有するようなストリームを生成してもよい、ということである)。
こうして決定された符号化係数Eを、さらに接続のクライアント側に配置されているバッファの占有率に従って修正する。ステップ1432では、バッファ占有率データが利用不可能である場合、プロセスをステップ1260(図12B)に送る。さもなくば、ステップ1434で、時間窓でのバッファ占有率計測値が予め定義された閾値を超えるか否かを判断する。超えると判断される場合であってステップ1428で決定された符号化係数が1.0を超える場合には、ステップ1440で好適な符号化係数を1に低減し、プロセスは図12Bのステップ1260に戻る。ステップ1434および1440は一例である規則に従う。バッファ占有率統計値の利用に関する他の規則を利用することもできる。
図15は、別の実施形態における接続計測値の処理方法を示し、これによって、連続または重複する窓における計測値の平均値を利用して符号化係数の新たな値が決定される。時間窓1520において採られた、特定の接続特徴(例えば転送遅延またはデータ損失)に対応する計測値の平均値に基づく統計値を、特定の接続特徴の予め定義された許容可能な参照値と比較する。統計値が参照値よりも大幅に超える場合には、符号化係数を下げ、この結果符号化レートが公称フローレート未満に下がる。統計値が参照値よりも大幅に小さい場合には、符号化係数を上げることができる。従って特定の特徴に対応して2つの限界点μおよびμ(μ<μ)を定義することができる。統計値がμを下回る場合には符号化係数を上げ、統計値がμを上回る場合には符号化係数を下げる。差異(μ−μ)の選択が重要となる。この差異を非常に小さくすると、低い値と高い値との間に不当に急速なフラッピングが生じうる。この差異を非常に大きくすると、応答が遅くなり、応答が全くなってしまう場合すらあり、これは接続条件を著しく変化させる。
図16は、各窓が8つの計測値をカバーするような連続且つ重複する窓におけるスカラー計測値の平均値として定義される移動平均を示す(単位は自由である)。それぞれ最初の4つの重複する窓の平均値16.25、17.0、16.75、および17.75は遅い変化を示しており、符号化係数の現在の値を変えなくてよい。しかし、複数の計測値から決定される21.5という平均値は(図16参照)、符号化係数の修正をトリガして、適応符号器220のパラメータを調節させる。図4を参照して上述したように、時間窓の最後に決定されたメトリックに応じて、後続する時間窓が選択される。
図17は、符号化係数Eを、経時変化する接続260のメトリックμの現在の値に調和させる方法を示す。任意の接続条件において、メトリックμの値は、符号化係数Eの増加につれて増加する。図17でそれぞれ線1720および1740として示されている2つの限界点μおよびμは、許容可能な接続パフォーマンスの範囲の定義である。図17は、5つの接続トランスミッタンスの値(η、η、η、η、ηで表し、η>η>η>η>ηである)についての符号化係数Eに対するメトリックμの依存関係の一例を示す。当初はEが1に等しく設定されており、対象クライアントに割り当てられた公称符号化レートで符号器は動作していた。公称符号化レートは、通常の接続条件下で接続パフォーマンスが許容可能になるように選択され、この場合トランスミッタンスはηに等しい。図17で、接続メトリックμのサンプル値を、インデックス(0)から(9)で表す。トランスミッタンスが最大値ηである場合には、E=1.0であり、現在のメトリックの値は{インデックス(0)}となり、μとμとの間にある。その後、接続条件が低下して、接続のトランスミッタンスが値ηに下がり、メトリックμは上限値μを超える新たな値{インデックス(1)}となる。フローコントローラ246は、値eだけ符号化係数Eを減少させ、これによりメトリックμの新たな値{インデックス(2)}がインターバル(μ,μ)範囲に収まるようになる。接続条件は低下を続け、接続トランスミッタンスがη<ηにまで低下し、メトリックμの新たな値{インデックス(3)}がインターバル(μ,μ)をかなり超えるようになる。増加したメトリックに呼応して、フローコントローラ246は、符号化係数をe分低下させる。メトリックμの値は{インデックス(4)}下がるが、依然としてμより高い。符号化係数がさらに2回eおよびe下がると、インデックス(5)および(6)が表す値となり、符号化係数は約0.56となり、メトリックμは、インターバル(μ,μ)の範囲内である{インデックス(6)}の値に下がる。その後、接続条件は向上し、符号化係数Eの同じ値0.56にて、メトリックμが値{インデックス(7)}に下がり、これはインターバル(μ,μ)より下回っている。フローコントローラ246は、符号化係数をe分増やし、これによりμ{インデックス(8)}の値は増加するが、依然としてμ未満である。フローコントローラ246はさらに符号化係数をe分増やして0.75の値として、μの値{インデックス(9)}をインターバル(μ,μ)の範囲で増加させる。符号化係数Eは、接続トランスミッタンスにその後変化が生じてメトリックが変化するまでは、0.75の値に留まる。
図18は、図17のプロシージャのステップ1820から始まる主要なステップのフローチャートである。ステップ1820で、メトリックμの新たな値を、図15および図16を参照して上述した窓における計測値から決定する。ステップ1824で、この新たな値を上限値μと比較して、μ>μである場合には、ステップ1860で、Eの現在の値を係数x<1乗算することで符号化係数を低くして、プロセスはステップ1820に戻る。μ≦μである場合には、ステップ1826でメトリックμの新たな値を、許容可能なインターバル(μ,μ)の下限値μと比較する。μ≧μである場合には、メトリックの新たな値が許容可能なインターバル(μ,μ)の範囲内にあると判断され、プロセスはステップ1820に戻り、メトリックμの新たな値を処理する。μ<μである場合には、ステップ1840で、Eの現在の値を係数x>1で乗算することで符号化係数Eを更新して、プロセスはステップ1820に戻る。係数xおよびx(x>1、x<1)は、(μ−μ)および(μ−μ)の差異にそれぞれ依存してよい。積(x×x)が1未満である場合、μ<μのとき、Eの値は比較的小さなステップで上昇し、μ>μのときEは比較的大きなステップで低下する。
図19は、図17のプロセスをさらに詳しく示す。予め定義された数の計測値をカバーする窓における計測値の平均値をメトリックμとすることにする。フローコントローラ246の計算を低減させるべく、この平均値を窓における計測値の総計Σで置換え、許容可能なインターバル(μ,μ)をインターバル(Σ,Σ)で置換えると、Σ=w×μおよびΣ=w×μとなり、ここでwは1つの時間窓あたりの計測値の数である。
ステップ1920で、値Eを1に初期化する(つまり、符号器が最初は対象クライアントに割り当てられた公称符号化レートで動作することを要求されている、ということになる)。長さwである循環アレイV(図3の循環バッファ320を表す)の全てのエントリをゼロに設定し、アレイVのw個のエントリの総計Σをゼロに設定する。整数「インデックス」は、アレイVの現在位置をトラックし、整数「期間(period)」は、最新の符号化係数更新時点をトラックする。ステップ1920で2つの整数「インデックス」および「期間」をゼロに設定する。
ステップ1922で計測値σをフローコントローラ246が受信した制御パケットから抽出する。ステップ1924で、メトリックμに比例する総計Σを、アレイVの位置「インデックス」のエントリを減算して、新たな計測値σを加算することにより更新する。アレイVは循環するので、第1の時間窓の後、位置インデックスで減算されたエントリは、現在の窓の前に計測された計測値を表す。第1の時間窓の後、第1の窓の総計Σは、wでメトリックμを乗算した値を正しく示す値となる。
ステップ1926で、新たな計測値σをアレイVの位置「インデックス」に書き込む。ステップ1928で、整数「期間」を1増分させて、循環アレイVの現在の位置「インデックス」を1(モジュロw)増分させる(つまり、インデックスの値がwに達すると、インデックスをゼロとする、ということである)。ステップ1930で、符号化係数更新の直前の時点までの計測値の数が、予め定義された限界値P未満であると判断されると、プロセスはステップ1922に戻り、新たな計測値を処理する。さもなくばプロセスはステップ1932に進む。ステップ1932に達すると循環アレイVは最新の計測値をw個有しており、現在の時点と、符号化係数Eが修正される直前の時点との間の時間インターバルは、少なくとも閾値Pに等しくなっている。Pの値は、過剰な更新レートを回避可能な程度に大きく、接続状態の変化に対応可能な程度に小さくなるように選択される。Pの値は、フローコントローラ246の設計者が設定する設計パラメータである。
ステップ1932では、現在の総計Σを、許容可能な総計インターバル(Σ,Σ)の上限値Σと比較する。Σ>Σである場合には、ステップ1940で現在の値を係数x<1で乗算することでEを低減させ、ステップ1950で整数「期間」をゼロに等しくなるようリセットして、プロセスはステップ1922に戻る。Σ≦Σである場合には、ステップ1934で、現在の総計Σを、許容可能な総計インターバル(Σ,Σ の下限値Σと比較する。Σ<Σである場合には、ステップ1942で現在の値を係数x>1で乗算することでEを増加させ、ステップ1950で整数「期間」をゼロに等しくなるようリセットして、プロセスはステップ1922に戻る。ステップ1934でΣ≧Σであると判断した場合には、現在の総計Σが許容可能な総計インターバル(Σ,Σ の範囲内であると結論付けられる。プロセスはステップ1922に戻り、Eの値は変えない。
図19のステップは、各コンピュータ可読記憶媒体に格納されているコンピュータ可読命令に従ってフローコントローラ246に関連付けられた上述したプロセッサにより実装される。
<複数の接続メトリック>
図17に示したメトリックμは、転送遅延、データ損失比率、または復号器240におけるバッファ占有率等の接続パフォーマンスの複数の態様の1つを表すスカラーである。従って、限界点μおよびμもまたスカラーである。符号化係数を修正する基準は、符号化係数を修正し(図18および図19)、メトリックの現在の値と、該メトリックの許容可能な範囲との偏差の関数である、係数xおよびxを有するあるパフォーマンスに関する接続メトリックμに基づいて決定されてよい。接続パフォーマンスの複数の態様を考慮に入れるために、対応するメトリックを正規化して、複合メトリックを、このようにして選択した限界点μおよびμを有する複数の正規化メトリックとの重み付け合計として定義することができる。例えば、遅延メトリックを複数の公称遅延値(例えば、対象となる接続に推定される最小遅延)に関して正規化して、サイズをなくす(becoming dimensionless)ことができる。その性質上サイズのないデータ損失メトリックを正規化メトリックとして利用することができ、バッファ占有率メトリックを(これもサイズがない)各バッファの容量に関して正規化することができる。例えば、遅延、データ損失比率、バッファ占有率に関して同時発生した計測値がそれぞれ20ミリ秒、0.02、および200であったとする。この場合に、20ミリセカンドの遅延メトリックは、公称(参照)遅延10ミリセカンドに基づいて値2.0に正規化することができ、200ユニットのデータのバッファ占有率は、250ユニットのデータのバッファ容量に基づいて0.8と正規化することができる。複合メトリックμは、μ=μdelay+a×μloss+b×μbufferとして定義することができ、本式においてμdelay、μloss、μbufferは、それぞれ、正規化された遅延ベースのメトリック、データ損失メトリック、および、正規化されたバッファ占有率メトリックを表す。パラメータaおよびbをそれぞれ80.0および2.5とすると、上述した例におけるメトリックの複合メトリックμは、μ=2.0+80.0×0.02+2.5×0.8=5.6となる。
接続パフォーマンスの複数の態様を考慮する、より完全な方法では、パフォーマンスの各態様に対して、別個のメトリックを導出し、別個の許容可能なインターバルを特定する。一セットの現在のメトリックのうちの任意の現在のメトリックが許容インターバルを超えている場合、符号化係数Eを低減させる。後続する時間窓において決定される新たなメトリックは、符号化係数Eの変化および接続トランスミッタンスの変化に応じて、符号化レートの変化の影響を受けることがある。そこで、新たなメトリックのうち許容インターバルを上回るものがなくなるまで、再度符号化係数Eを低減させることができる。これに対して、符号化係数Eの増加は、全ての現在のメトリックそれぞれが銘々の許容インターバルを下回ったときに初めて可能であるとする。この結果、新たなメトリックの少なくとも1つが許容インターバル内にあり、残りの新たなメトリックがいずれも許容インターバルを上回らないときに、Eは不変となる。
図20は、2つのメトリックμ(1)およびμ(2)の現在の値における上述した符号化係数Eの調節方法を示す。図20では、μ(1)が上方に増加して、μ(2)が下方に増加している。第1のメトリックμ(1)の許容インターバル2020を、ここでは第1の許容インターバルと称し、これは下限値μ (1)と上限値μ (1)とを有する。第2のメトリックμ(2)の許容インターバル2040を、ここでは第2の許容インターバルと称し、これは下限値μ (2)と上限値μ (2)とを有する。参照番号2022、2024、2026、および2028は、値E、E、E、およびEを有する符号化係数にそれぞれ対応する第1のメトリックの値を示している(E<E<E<E)。参照番号2042、2044、2046、および2048は、値E、E、E、およびEを有する符号化係数にそれぞれ対応する第2のメトリックの値を示している(E<E<E<E)。
例えば符号化係数を値Eに設定すると、第1のメトリックの値(2028)は各上限値μ (1)を超える値に決定され、第2のメトリックの値(2048)は第2の許容インターバル(μ (2),μ (2))の範囲内に決定される。2つのメトリックのうちいずれかの値が対応する許容上限値よりも高いので、現在の値を係数x<1で乗算することで符号化係数を低減させる。符号器220はこのようにして符号フローレートを調節して、2つのメトリックの新たな値を、フローレートを調節した後の未加工(fresh)計測値から決定する。符号化係数が値E<Eに低減した場合には、第1のメトリックの値(2026)を第1の許容インターバル(μ (1),μ (1))内に決定して、第2のメトリックの値(2046)を第2の許容インターバル(μ (2),μ (2))の下限値μ (2)をかなり下回る値に決定する。(1)接続状態が悪くなり、メトリックのいずれかが許容上限値を超えるようになり、符号化係数も低下して符号化係数をさらに低減させる場合、あるいは、(2)接続状態が向上して、第1および第2のメトリック両方の値がそれぞれの許容下限値を下回り、符号化係数を増加させることができるようになった場合、以外には、これ以上符号化係数を変更しない。
符号化係数を値Eに設定した場合、第1のメトリックμ(1)の値(2022)は下限値μ (1)を下回る値に決定され、第2のメトリックの値(2042)は下限値μ (2)を下回る値に決定される。符号化係数は値Eに増加させる。この結果、第2のメトリックμ(2)の値は、許容インターバル(μ (2),μ (2))内の、上限値μ (2)に近い値(2044)に増加する。第1のメトリックμ(1)の値は値(2024)まで増加したものの、下限値μ (1)を依然として下回っている。接続トランスミッタンスに変更がない場合には、符号化係数をさらに増加させることで、第2のメトリックμ(2)を上限値μ (2)を上回る値に増加させうる。接続状態の変化が大きく、符号化係数を増加させることができるようになる、または、強制的に符号化係数を低下させる必要が出てくるまでは、符号化係数はこれ以上変更させない。
図21は、3つのメトリックμ(1)、μ(2)、μ(3)の現在の値による符号化係数調節法を示す。説明を簡潔にする目的から、第1のメトリックμ(1)、第2のメトリックμ(2)、および第3のメトリックμ(3)の3つの許容インターバル2102、2122、および2142が、それぞれ重複しないストライプとして示されている。しかし、3つのメトリックは、1つの接続の異なる特徴を表しうるので、別個に処理される。従って、メトリックμ(1)、μ(2)、μ(3)の許容インターバル2102、2122、および2142のそれぞれの位置は互いに関連している値を反映しているわけではない。第1の許容インターバル2102は下限値μ (1)、および上限値μ (1)を有する。第2のメトリックμ(2)の第2の許容インターバル2122は下限値μ (2)、および上限値μ (2)を有する。第3のメトリックμ(3)の第3の許容インターバル2142は下限値μ (3)、および上限値μ (3)を有する。参照番号2104、2106、2108、2110、2112、2114、2116、および2118は、符号化係数の値EからEに対応する第1のメトリックμ(1)の値を示す(E<Ej+1、1≦j≦6)。同様に、参照番号2124、2126、2128、2130、2132、2134、2136、および2138は、EからEに対応する第2のメトリックμ(2)の値を示し、参照番号2144、2146、2148、2150、2152、2154、2156、および2158は、EからEに対応する第3のメトリックμ(3)の値を示す。
適応符号器220が、公称レートと符号化係数Eとに従って符号化パラメータを調節した場合を考慮する。特定の窓の最後に決定されたメトリックベクトルは、2104、2124、2144が示すμ(1)、μ(2)、μ(3)のメトリック値を有する。値2104、2124、2144は、それぞれ許容インターバルの下限値を下回る値である。従って、符号化係数は、各ステップにおける計測値から決定される3つのメトリック{μ(1)、μ(2)、μ(3)}いずれかがそれぞれの許可可能ゾーンの上限値に十分近づくまで、段階的に増加させる。図21の例においては、この条件は、適応符号器220が自身のフローレートを符号化係数Eに対応するよう調節した後の2126が示すメトリックμ(2)の値に適合している。
適応符号器220が、公称レートと符号化係数Eとに従って符号化パラメータを調節した場合であれば、2108、2128、2148が示すメトリックμ(1)、μ(2)、μ(3)の値は、それぞれの許容インターバルを下回る。符号化係数を値Eに増加させ、この値においては、メトリックμ(1)の値(参照番号2110)は自身の許容インターバルの上限値に近く、メトリックμ(2)、μ(3)の値(2130および2150)がそれぞれの許容インターバル内にある。
適応符号器220が、公称レートと符号化係数Eとに従って符号化パラメータを調節した場合であれば、2138が示すメトリックμ(2)の値は、許容インターバル2122の上限値を上回る。符号化係数を値E<Eに低減させる。メトリックμ(1)およびμ(3)はそれぞれの許容インターバルを下回る値2116および2156に低減したが、メトリックμ(2)は、許容インターバル2122内の値2136に低減した。従って、値Eにおいては符号化係数を変えない。接続トランスミッタンスが低下し、結果としてそれぞれメトリックが2114、2134、および2154が示す値にまで増加した。メトリックμ(2)が上限値を超えているので、符号化係数がEの値まで低下した。
図22は、クライアント160への接続においてストリーミングサーバ120が送信した信号のピーク符号化レート(ピークフローレート)の関数でパケット損失比率Θを示す。前に定義したように、接続トランスミッタンスは、ストリーミングサーバからクライアントまでの接続を、所期のパフォーマンス上の目的に背くことなく維持することができるピークフローレートのことである。図22の例におちえは、トランスミッタンスはパケット損失パフォーマンスのみによって定義される。図22は、接続のトランスミッタンスに関して正規化されたピーク符号化レートとパケット損失比率との間の関係の一例を示している。ピーク符号化レートを既知とする。しかし、接続のトランスミッタンスは経時的に変化することがあり、分からないことがある。ピーク符号化レートがトランスミッタンスより高い場合、パケット損失比率Θはゼロより大きく、ピーク符号化レートのトランスミッタンスに対する比率は、1/(1−Θ)として決定することができ、符号化レートは係数(1−Θ)分低減し、パケット損失がなくなる。パケット損失比率は上述したように選択される時間窓において計測されてよい。線2210は、パケット損失比率Θをピーク符号化レートの現在のトランスミッタンスに対する比率ρの関数として示したものである。ρ≦1.0のときにΘの値はゼロである。ρ=1.5でΘ=0.33であり、ρ=2.0ではΘ=0.5である。
Θの計測値がゼロの場合には、ピーク符号化レートのトランスミッタンスに対する比率は、0より大きく1.0未満であるいずれかの値となり、パケット損失を回避しつつ信号の忠実度を向上させることができる符号化レートの適切な増分(符号化係数Eの増分)を正確に判断し難くなる。符号化レートは、パケット損失の計測値が(Θ>0)となり、符号化レートを正確に補正することができるようになるまで段階的に増加させることができる。Θの計測値がかなり小さくなると(例えば0.001のオーダにまで小さくなると)、符号化レート補正は不要とすることができる。パケット損失比率の下限値Θmin(線2220)および上限値Θmax(線2230)が定義する許容インターバルによって、小さなΘの値を不要に処理してしまうことが回避されるようになる。ΘminおよびΘmaxの値は、設計パラメータである。Θminについて0.001、およびΘmaxについて0.02が適切な値であると思われる。
本発明は、プロセッサにより実行されると上述した方法のステップを実行する命令を格納したDVD、CD−ROM、フロッピー(登録商標)等のコンピュータ可読媒体、あるいは不揮発性メモリ等のメモリも提供する。
本発明の特定の実施形態について詳述してきたが、記載した実施形態は例示を意図しており限定は意図していない。図面に示し明細書に記載した実施形態の変更例および変形例は、広義の本発明の範囲から逸脱することなく以下の請求項の範囲に含まれうる。

Claims (17)

  1. 容量が経時変化する接続により、データストリーミングサーバからクライアントデバイスへ送信される信号の適合可能な符号化レートを決定する方法であって、
    前記接続の現在の符号化レートを決定する段階と、
    第1の時点と第2の時点との間のW個の計測値を含む時間窓における前記接続の特定の特徴の計測値を得る段階と、
    前記計測値から前記特定の特徴のメトリックを決定する段階と、
    前記メトリックの値が、下限値と上限値とを有する予め定義された許容インターバル内にあることを条件に、前記現在の符号化レートを許容する段階と、
    前記メトリックの値が前記許容インターバル外であることを条件に、前記メトリックの値が前記下限値を下回っている場合には第1の係数により、前記メトリックの値が前記上限値を上回っている場合には第2の係数により、前記現在の符号化レート調節する段階と
    を備え
    前記第1の係数を、前記メトリックの値と前記下限値との偏差の関数として決定し、
    前記第2の係数を、前記メトリックの値と前記上限値との偏差の関数として決定する
    方法。
  2. 前記特定の特徴は、前記接続における転送遅延であり、
    前記メトリックを決定する段階は、
    前記転送遅延の計測値σを得る段階と、
    前記計測値σを加算して循環アレイVの現在のインデックスのエントリを減算することにより総計Σを更新する段階であって、前記循環アレイは、ゼロに初期化されるエントリの個数が前記時間窓内の前記計測値σの個数と少なくとも等しいものである段階と、
    前記循環アレイの前記現在のインデックスに前記計測値σを格納する段階と、
    前記現在のインデックスを、1増分する段階と、
    前記循環アレイの前記現在のインデックスが前記Wの値に達すると前記現在のインデックスをゼロにリセットする段階と、
    計測値の累積数を表すカウンタを1増分する段階と、
    前記カウンタが所定の閾値P*未満である場合、前記得る段階を繰り返す段階と、
    前記カウンタが前記閾値P*に少なくとも等しい場合、前記メトリックを前記総計Σとして決定する段階とをさらに有する請求項1に記載の方法。
  3. 前記下限値を、Wで乗算された許容可能な転送遅延の下限値として決定して、前記上限値を、Wで乗算された許容可能な転送遅延の上限値として決定する請求項2に記載の方法。
  4. 前記現在の符号化レートを調節する段階の後に、前記カウンタをゼロにリセットする段階をさらに備える請求項2または3に記載の方法。
  5. 前記閾値P*を、前記現在の符号化レートを調節する任意の連続する2つの段階間の時間間隔が予め定義された最小の時間間隔より大きくなるよう決定する段階をさらに備える請求項2から請求項4のいずれか一項に記載の方法。
  6. 前記特定の特徴がデータ損失比率であり、前記メトリックは、前記時間窓において決定されたデータ損失比率Θであり、前記下限値と前記上限値は、許容可能なデータ損失比率の限界値であり、前記第1の係数は、Θが前記下限値未満であるとき1より大きい所定の乗数として決定され、前記第2の係数は、Θが前記上限値より大きいとき(1−Θ)として決定される請求項1から請求項のいずれか一項に記載の方法。
  7. 容量が経時変化する接続により符号器から復号器へデータをストリーミングする方法であって、
    前記符号器の出力のフローレートを決定する符号化係数を前記接続に関連付ける段階と、
    転送遅延、データ損失、及び前記接続により受信したデータを保持する復号器のバッファの占有率を含む複数のパフォーマンス特性を前記接続と関連付ける段階と、
    前記複数のパフォーマンス特性と一対一の関係にある複数のパフォーマンスメトリックを定義する段階と、
    現在の符号化係数で、時間窓における同時発生した前記接続のパフォーマンス計測値の複数のセットを得る段階であって、パフォーマンス計測値の各セットが、前記複数のパフォーマンス特性のいずれか1つに対応している段階と、
    各パフォーマンスメトリックの現在の値を、パフォーマンス計測値の対応するセットを用いて決定して、パフォーマンスメトリックの現在の値のセットを生成する段階と、
    好適な符号化係数を、各パフォーマンスメトリックの前記現在の値に従って決定する段階と
    を備え、
    前記複数のパフォーマンスメトリックには、
    前記時間窓中の前記符号器から前記復号器への転送遅延の関数と、
    前記時間窓中のデータ損失の値と、
    前記時間窓中の前記復号器のバッファの占有率の関数とが含まれる
    方法。
  8. 許容インターバルのセットを定義する段階であって、各許容インターバルがそれぞれ下限値および上限値を有し、前記複数のパフォーマンスメトリックのそれぞれに対応する段階と、
    前記パフォーマンスメトリックの現在の値のセットの各エレメントが、対応する許容インターバルの下限値を下回る場合、前記現在の符号化係数を、1より大きい第1の係数で乗算して、前記好適な符号化係数を生成する段階と、
    前記パフォーマンスメトリックの現在の値のセットの少なくとも1つのエレメントが、対応する許容インターバルの上限値を上回る場合、前記現在の符号化係数を、1より小さい第2の係数で乗算して、前記好適な符号化係数を生成する段階とをさらに備える請求項に記載の方法。
  9. 前記第1の係数および前記第2の係数の積が1未満である請求項に記載の方法。
  10. 前記時間窓を、少なくとも予め定義された最小時間間隔をおいて前の時間窓に後続するように選択する段階をさらに備える請求項から請求項のいずれか一項に記載の方法。
  11. 前記パフォーマンス計測値の複数のセットは、リアルタイムトランスポートプロトコル(RTP)およびリアルタイムトランスポート制御プロトコル(RTCP)を利用する前記符号器と前記復号器との間の制御データの交換により得られる請求項から請求項10のいずれか一項に記載の方法。
  12. 容量が経時変化する接続により符号器から復号器へデータをストリーミングする方法であって、
    前記符号器の出力のフローレートを決定する符号化係数を前記符号器に関連付ける段階と、
    前記接続のパフォーマンスメトリックを定義する段階と、
    下限値と上限値とを有する前記パフォーマンスメトリックの許容インターバルを定義する段階と、
    現在の符号化係数で、時間窓における前記接続のパフォーマンス計測値の1つのセットを得る段階と、
    前記計測値の1つのセットに従って前記接続の前記メトリックの現在の値を決定する段階と、
    前記メトリックの前記現在の値が前記下限値を下回る場合、前記現在の符号化係数を1より大きい第1の係数で乗算して、好適な符号化係数を生成する段階、および、前記メトリックの前記現在の値が前記上限値を上回る場合、前記現在の符号化係数を、1より小さい第2の係数で乗算して、前記好適な符号化係数を生成する段階の2つのステップのいずれかにより前記好適な符号化係数を決定する段階と
    を備え
    前記第1の係数を、前記メトリックの現在の値と前記下限値との間の差異の関数として決定し、
    前記第2の係数を、前記メトリックの現在の値と前記上限値との間の差異の関数として決定する
    方法。
  13. 前記符号器に命じて、前記好適な符号化係数および公称符号化レートに従って信号を符号化させる段階をさらに備える請求項12に記載の方法。
  14. 前記メトリックは、前記時間窓中の転送遅延の平均値、前記時間窓中のデータ損失の平均値、または前記時間窓の最後に計測された復号器のバッファの占有率の値のいずれか1つであり、前記復号器のバッファは、前記接続により受信したデータを保持する請求項12または13に記載の方法。
  15. 容量が経時変化する接続により、データストリーミングサーバからクライアントデバイスへ送信される信号の適合可能な符号化レートを決定する方法であって、
    前記接続の現在の符号化レートを決定する段階と、
    第1の時点と第2の時点との間のW個の計測値を含む時間窓における前記接続の特定の特徴の計測値を得る段階と、
    前記計測値から前記特定の特徴のメトリックμを決定する段階と、
    μの値が、下限値μと上限値μとを有する予め定義された許容インターバル内にあることを条件に、前記現在の符号化レートを許容する段階と、
    μの値が前記許容インターバルの前記上限値μを上回っている場合には、前記現在の符号化レートを係数x<1で調節して、μの値が前記許容インターバルの前記下限値μを下回っている場合には、前記現在の符号化レートを係数x>1で調節する段階と
    を備え
    前記特定の特徴は、前記接続における転送遅延であり、
    前記メトリックを決定する段階は、
    前記転送遅延の計測値を得る段階と、
    前記計測値を加算して循環アレイVの現在のインデックスのエントリを減算することにより総計Σを更新する段階であって、前記循環アレイは、ゼロに初期化されるエントリの個数が前記時間窓内の前記計測値の個数と少なくとも等しいものである段階と、
    前記循環アレイの前記現在のインデックスに前記計測値を格納する段階と、
    前記現在のインデックスを、1増分する段階と、
    前記循環アレイの前記現在のインデックスが前記Wの値に達すると前記現在のインデックスをゼロにリセットする段階と、
    計測値の累積数を表すカウンタを1増分する段階と、
    前記カウンタが所定の閾値P 未満である場合、前記得る段階を繰り返す段階と、
    前記カウンタが前記閾値P に少なくとも等しい場合、前記メトリックを前記総計Σとして決定する段階と
    を備える方法。
  16. 容量が経時変化する接続により、データストリーミングサーバからクライアントデバイスへ送信される信号の適合可能な符号化レートを決定する方法であって、
    前記接続の現在の符号化レートを決定する段階と、
    第1の時点と第2の時点との間のW個の計測値を含む時間窓における前記接続の特定の特徴の計測値を得る段階と、
    前記計測値から前記特定の特徴のメトリックμを決定する段階と、
    μの値が、下限値μと上限値μとを有する予め定義された許容インターバル内にあることを条件に、前記現在の符号化レートを許容する段階と、
    μの値が前記許容インターバルの前記上限値μを上回っている場合には、前記現在の符号化レートを係数x<1で調節して、μの値が前記許容インターバルの前記下限値μを下回っている場合には、前記現在の符号化レートを係数x>1で調節する段階と
    を備え、
    前記特定の特徴がデータ損失比率であり、前記メトリックは、前記時間窓において決定されたデータ損失比率Θであり、μ およびμ >μ は、許容可能なデータ損失比率の限界値であり、前記係数x は、Θがμ 未満であるとき所定の乗数x>1として決定され、前記係数x は、Θ>μ であるとき(1−Θ)として決定される
    方法。
  17. 容量が経時変化する接続により符号器から復号器へデータをストリーミングする方法であって、
    前記符号器の出力のフローレートを決定する符号化係数を前記符号器に関連付ける段階と、
    前記接続のパフォーマンスメトリックを定義する段階と、
    下限値と上限値とを有する前記パフォーマンスメトリックの許容インターバルを定義する段階と、
    現在の符号化係数で、時間窓における前記接続のパフォーマンス計測値の1つのセットを得る段階と、
    前記計測値の1つのセットに従って前記接続の前記メトリックの現在の値を決定する段階と、
    前記メトリックの前記現在の値が前記下限値を下回る場合、前記現在の符号化係数を1より大きい第1の係数で乗算して、好適な符号化係数を生成する段階、および、前記メトリックの前記現在の値が前記上限値を上回る場合、前記現在の符号化係数を、1より小さい第2の係数で乗算して、前記好適な符号化係数を生成する段階の2つのステップのいずれかにより前記好適な符号化係数を決定する段階と
    を備え
    前記メトリックは、前記時間窓中の転送遅延の平均値、前記時間窓中のデータ損失の平均値、または前記時間窓の最後に計測された復号器のバッファの占有率の値のいずれか1つであり、前記復号器のバッファは、前記接続により受信したデータを保持する
    方法。
JP2011520286A 2008-07-28 2008-10-16 経時変化するトランスポートメディアによるデータのストリーミング Active JP5465723B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12/180,704 2008-07-28
US12/180,697 2008-07-28
US12/180,704 US7844725B2 (en) 2008-07-28 2008-07-28 Data streaming through time-varying transport media
US12/180,697 US8001260B2 (en) 2008-07-28 2008-07-28 Flow-rate adaptation for a connection of time-varying capacity
PCT/CA2008/001824 WO2010012067A1 (en) 2008-07-28 2008-10-16 Data streaming through time-varying transport media

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014009236A Division JP5768292B2 (ja) 2008-07-28 2014-01-22 経時変化するトランスポートメディアによるデータのストリーミング

Publications (2)

Publication Number Publication Date
JP2011529307A JP2011529307A (ja) 2011-12-01
JP5465723B2 true JP5465723B2 (ja) 2014-04-09

Family

ID=41609870

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2011520286A Active JP5465723B2 (ja) 2008-07-28 2008-10-16 経時変化するトランスポートメディアによるデータのストリーミング
JP2011520285A Active JP5536059B2 (ja) 2008-07-28 2008-10-16 経時変化する容量を有する接続のフローレート適合
JP2014009236A Active JP5768292B2 (ja) 2008-07-28 2014-01-22 経時変化するトランスポートメディアによるデータのストリーミング

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2011520285A Active JP5536059B2 (ja) 2008-07-28 2008-10-16 経時変化する容量を有する接続のフローレート適合
JP2014009236A Active JP5768292B2 (ja) 2008-07-28 2014-01-22 経時変化するトランスポートメディアによるデータのストリーミング

Country Status (7)

Country Link
EP (2) EP2308200B1 (ja)
JP (3) JP5465723B2 (ja)
KR (2) KR101519903B1 (ja)
CN (2) CN102106112B (ja)
CA (2) CA2723788C (ja)
IL (2) IL209628A (ja)
WO (2) WO2010012066A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2493504B (en) 2011-07-25 2017-11-29 Qualcomm Technologies Int Ltd Data flow control
US9306994B2 (en) * 2012-06-06 2016-04-05 Cisco Technology, Inc. Stabilization of adaptive streaming video clients through rate limiting
WO2015034405A1 (en) * 2013-09-05 2015-03-12 Telefonaktiebolaget L M Ericsson (Publ) Adaptive multimedia codec parameter adaptation
GB2524958A (en) 2014-04-03 2015-10-14 Orbital Multi Media Holdings Corp Data flow control method
JP5896055B2 (ja) * 2015-02-24 2016-03-30 住友電気工業株式会社 優先度設定装置及びコンピュータプログラム
US20160259453A1 (en) 2015-03-06 2016-09-08 Sony Computer Entertainment America Llc Dynamic adjustment of cloud game data streams to output device and network quality
US10135890B2 (en) * 2015-03-06 2018-11-20 Sony Interactive Entertainment LLC Latency-dependent cloud input channel management
US10756997B2 (en) * 2015-09-28 2020-08-25 Cybrook Inc. Bandwidth adjustment for real-time video transmission
US10506257B2 (en) 2015-09-28 2019-12-10 Cybrook Inc. Method and system of video processing with back channel message management
US10516892B2 (en) 2015-09-28 2019-12-24 Cybrook Inc. Initial bandwidth estimation for real-time video transmission
CN107438187B (zh) * 2015-09-28 2020-06-30 苏州踪视通信息技术有限公司 实时视频传输的带宽调整
US9397973B1 (en) * 2015-10-16 2016-07-19 Machine Zone, Inc. Systems and methods for transferring message data
KR20180079320A (ko) * 2015-11-02 2018-07-10 밴트릭스 코오퍼레이션 콘텐츠 제어 스트리밍 네트워크에 있어서 흐름율 조정을 위한 방법 및 시스템
CN107170460B (zh) * 2017-06-30 2020-12-08 深圳Tcl新技术有限公司 音质调整方法、系统、主机端、及存储介质
KR102119661B1 (ko) * 2018-10-31 2020-06-08 한국전력공사 회전기기 고장 예지를 위한 건전성 지표 추이 및 잔존수명 예측 기법
CN110113777B (zh) * 2019-04-29 2022-03-01 深圳广熵科技有限公司 一种数据采集方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6400954B1 (en) * 1998-05-15 2002-06-04 Tlelefonaktiebolaget Lm Ericsson (Publ) Methods and systems for mode selection based on access network capacity
JP3520986B2 (ja) * 2000-12-08 2004-04-19 タイコエレクトロニクスアンプ株式会社 電気コネクタ
JP3900413B2 (ja) * 2002-02-14 2007-04-04 Kddi株式会社 映像情報伝送方式およびプログラム
KR20030095995A (ko) * 2002-06-14 2003-12-24 마츠시타 덴끼 산교 가부시키가이샤 미디어 전송방법 및 그 송신장치 및 수신장치
SG111978A1 (en) * 2002-11-20 2005-06-29 Victor Company Of Japan An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control
JP4069444B2 (ja) * 2002-12-10 2008-04-02 ソニー株式会社 符号化制御方法及び符号化制御プログラム
AU2003288595A1 (en) * 2002-12-18 2004-07-09 Koninklijke Philips Electronics N.V. Adaptive encoding of digital multimedia information
JP2004215224A (ja) * 2002-12-20 2004-07-29 Nippon Telegr & Teleph Corp <Ntt> 符号誤り訂正方法、符号誤り訂正システム、プログラム及びそのプログラムを記録した記録媒体
JP3769752B2 (ja) * 2002-12-24 2006-04-26 ソニー株式会社 情報処理装置および情報処理方法、データ通信システム、並びに、プログラム
JP3894130B2 (ja) * 2003-02-13 2007-03-14 日本電信電話株式会社 パス容量増減判断方法
US7558869B2 (en) * 2003-02-13 2009-07-07 Nokia Corporation Rate adaptation method and device in multimedia streaming
KR100916274B1 (ko) * 2004-06-07 2009-09-10 슬링 미디어 인코퍼레이티드 퍼스널 미디어 브로드캐스팅 시스템
KR100608821B1 (ko) * 2004-07-22 2006-08-08 엘지전자 주식회사 휴대단말기의 왕복지연시간 측정장치 및 방법
JP2006129439A (ja) * 2004-09-28 2006-05-18 Kyocera Corp 通信システム、基地局装置、サーバ装置、移動局装置、及び送信データ量決定方法
EP1821442A4 (en) * 2004-11-17 2011-07-20 Sharp Kk TRANSMITTER APPARATUS, RECEIVER APPARATUS AND COMMUNICATION SYSTEM
KR100631514B1 (ko) * 2004-12-16 2006-10-09 엘지전자 주식회사 실시간 스트리밍 서비스의 전송률 제어 방법
GB2423219B (en) * 2005-02-10 2007-04-18 Motorola Inc A network proxy client, a communication system and a method for providing a service between a server and an end client
JP4697525B2 (ja) * 2005-04-20 2011-06-08 ソニー株式会社 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
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
US8381047B2 (en) * 2005-11-30 2013-02-19 Microsoft Corporation Predicting degradation of a communication channel below a threshold based on data transmission errors

Also Published As

Publication number Publication date
KR101399509B1 (ko) 2014-05-27
KR20110044258A (ko) 2011-04-28
CA2723628A1 (en) 2010-02-04
EP2308200B1 (en) 2013-12-11
IL209628A (en) 2017-04-30
JP5536059B2 (ja) 2014-07-02
CA2723788A1 (en) 2010-02-04
EP2308200A1 (en) 2011-04-13
IL209628A0 (en) 2011-02-28
JP2014123957A (ja) 2014-07-03
JP2011529307A (ja) 2011-12-01
IL209722A0 (en) 2011-02-28
JP2011529306A (ja) 2011-12-01
IL209722A (en) 2014-12-31
CN102106113B (zh) 2014-06-11
JP5768292B2 (ja) 2015-08-26
KR20110044257A (ko) 2011-04-28
EP2308200A4 (en) 2012-03-21
CN102106112B (zh) 2014-07-09
KR101519903B1 (ko) 2015-05-14
WO2010012066A1 (en) 2010-02-04
EP2308199A1 (en) 2011-04-13
EP2308199B1 (en) 2013-12-18
CN102106112A (zh) 2011-06-22
WO2010012067A1 (en) 2010-02-04
CA2723628C (en) 2015-12-22
CN102106113A (zh) 2011-06-22
CA2723788C (en) 2016-10-04
EP2308199A4 (en) 2012-03-21

Similar Documents

Publication Publication Date Title
JP5768292B2 (ja) 経時変化するトランスポートメディアによるデータのストリーミング
US8135856B2 (en) Data streaming through time-varying transport media
US9112947B2 (en) Flow-rate adaptation for a connection of time-varying capacity
JP4513725B2 (ja) パケット送信装置、通信システム及びプログラム
CN110192394B (zh) 通过网络传送媒体内容的方法和服务器
US20030165150A1 (en) Multi-threshold smoothing
JP2008545356A (ja) ワイヤレス・ネットワーク上のマルチメディア・ストリーミングの前方エラー訂正を最適化する方法およびシステム
JP2005513876A (ja) クライアント又はネットワーク環境に基づいて映像ストリームを修正するシステム及び方法
JP4834013B2 (ja) 送信装置、送信プログラム、受信装置及び受信プログラム
JP2011259239A (ja) 通信処理装置、通信処理システム、通信処理方法及びプログラム
JPWO2018042885A1 (ja) 送信端末、送信方法および送信プログラム
WO2022168306A1 (ja) 伝送システム、伝送方法、および、伝送プログラム
Sullivan A protocol for simultaneous real time playback and full quality storage of streaming media

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131107

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: 20131224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140122

R150 Certificate of patent or registration of utility model

Ref document number: 5465723

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250