(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-14
(45)【発行日】2023-06-22
(54)【発明の名称】ラウンドトリップ推定
(51)【国際特許分類】
H04L 43/00 20220101AFI20230615BHJP
H04N 21/2385 20110101ALI20230615BHJP
H04N 21/24 20110101ALI20230615BHJP
【FI】
H04L43/00
H04N21/2385
H04N21/24
【外国語出願】
(21)【出願番号】P 2021075742
(22)【出願日】2021-04-28
【審査請求日】2023-03-27
(32)【優先日】2020-05-05
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ベラン, ヤロスラフ
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2014-023032(JP,A)
【文献】特開2013-197643(JP,A)
【文献】特開2012-005087(JP,A)
【文献】米国特許出願公開第2008/0212480(US,A1)
【文献】米国特許出願公開第2019/0089643(US,A1)
【文献】米国特許出願公開第2017/0366650(US,A1)
【文献】米国特許第9197559(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 43/00
H04N 21/2385
H04N 21/24
(57)【特許請求の範囲】
【請求項1】
第1のネットワークデバイスによって実施される方法において、前記第1のネットワークデバイスは或るビットレートでネットワークを通じて第2のネットワークデバイスにデータストリームを送信するように構成される、方法であって、
-前記ネットワークを通じて前記第2のネットワークデバイスに一連の第1のパケットを送信することであって、前記第1のパケットのそれぞれは、関連する送信時間を有し、一意の識別値を含む、一連の第1のパケットを送信すること、
ここで、前記一連の第1のパケットは、第1のリアルタイムトランスポート制御プロトコル(RTCP)パケットと1つまたは複数のリアルタイムトランスポートプロトコル(RTP)パケットを含み、かつ、前記1つまたは複数のRTPパケットのそれぞれの一意の識別値はシーケンス番号であり、
-第2のパケットを前記第2のネットワークデバイスから受信することであって、前記第2のパケットは、前記第2のネットワークデバイスによる前記
一連の第1のパケット
の前記第1のRTCPパケットのうちの少なくとも1つの受信を示し、前記第2のパケットは
前記第1のネットワークデバイスでの受信時間
T
4
を有する、第2のパケットを受信すること、
ここで、前記第2のパケットは、前記第2のネットワークデバイスで受信された前記一連の第1のパケットのRTPパケットの最大のシーケンス番号をさらに含む第2のRTCPパケットであり、
-標準的なラウンドトリップ時間を、少なくとも、
前記一連の第1のパケットの前記第1の
RTCPパケットの送信時間
T
1
、
前記第2のネットワークデバイスにおける前記一連の第1のパケットの前記第1のRTCPパケットの受信時間T
2
、
前記第2のネットワークデバイスからの前記第2のRTCPパケットの送信時間T
3
、および、
T
4
-(T
3
-T
2
)-T
1
として計算される、前記第2の
RTCPパケットの受信時間
T
4
に応じて決定すること、
-送信時間T
1α
>T
1
を有する第1のパケットについて、前記第2のRTCPパケットにおけるT
4
で受信の指示が受信されなかったことを示すこと、
前記第2のRTCPパケットの前記受信時間T
4
の後であって次の第2のRTCPパケットを受信するまでの期間中に、
-現在のラウンドトリップ時間を、
前記第1のネットワークデバイスで受信の指示
が受信されなかった
前記一連の第1のパケットの最も古い
RTPパケットの送信時間
T
1α
(ここでT
1
<T
1α
<T
4
である)、および、
前記第2の
RTCPパケットの
前記受信時間
T
4
に応じて決定すること、
ここで前記現在のラウンドトリップ時間はT
4
-T
1α
として計算され、
-前記現在のラウンドトリップ時間および前記標準的なラウンドトリップ時間に応じて、前記第1のネットワークデバイスと前記第2のネットワークデバイスとの間の未使用ネットワーク帯域幅が存在するか否かを判定すること、
ここで、前記標準的なラウンドトリップ時間が第1の閾値を超え、かつ/または前記現在のラウンドトリップ時間が第2の閾値を超えるとき、未使用ネットワーク帯域幅は存在せず、および
-前記未使用ネットワーク帯域幅の前記存在に応じて
、送信された前
記データストリームについての前記ビットレートを更新すること
を含む、方法。
【請求項2】
前記第2の閾値は前記第1の閾値より大きい、請求項
1に記載の方法。
【請求項3】
前記未使用ネットワーク帯域幅の前記存在に応じて
、送信された前
記データストリームについての前記ビットレートを更新することは、
- 前記未使用ネットワーク帯域幅が存在しないときに前記データストリームについての前記ビットレートを減少させることを含む、請求項
1に記載の方法。
【請求項4】
前記未使用ネットワーク帯域幅の前記存在に応じて
、送信された前
記データストリームについての前記ビットレートを更新することは、
- 前記未使用ネットワーク帯域幅が存在するときに前記データストリームについての前記ビットレートを増加させることを含む、請求項
1に記載の方法。
【請求項5】
前記未使用ネットワーク帯域幅の前記存在に応じて
、送信された前
記データストリームについての前記ビットレートを更新することは、
- 前記標準的なラウンドトリップ時間および/または前記現在のラウンドトリップ時間が増加するときに前記データストリームについての前記ビットレートを減少させることを含む、請求項
1に記載の方法。
【請求項6】
前記データストリームは、ビデオストリームおよびオーディオストリームの少なくとも一方を含む、請求項
1に記載の方法。
【請求項7】
送信された前
記データストリームについての前記ビットレートを更新することは、ターゲットビットレート、平均ビットレート、解像度、カラー深度、フレームレート、サンプリング周波数、ビット深度、およびチャネルカウントのうちの少なくとも1つを更新することを含む、請求項
6に記載の方法。
【請求項8】
-前記第1のネットワークデバイスと前記第2のネットワークデバイスとの間で送信される、1秒当たりのデータパケットの合計サイズに基づいて、前記第1のネットワークデバイスと前記第2のネットワークデバイスとの間での使用されるネットワーク帯域幅を決定すること、
-前記使用されるネットワーク帯域幅に応じてネットワークスループット値を決定することであって、前記ネットワークスループット値は、前記第1のネットワークデバイスが前記第2のネットワークデバイスに送出することができる、1秒当たりのデータ量である、ネットワークスループット値を決定すること、
-前記第1のネットワークデバイスによって送信されるデータパケットの合計サイズおよび前記第2のネットワークデバイスに送出されるデータパケットの合計サイズに基づいて、前記ネットワーク内でバッファリングされるデータパケットの合計サイズを決定すること、
-前記ネットワーク内のバッファを空にするのに妥当な時間間隔内で、前記ネットワーク内でバッファリングされたデータパケットを前記第2のネットワークデバイスに送出するために必要とされる予約帯域幅を決定すること、
-前記ネットワークスループット値および前記予約帯域幅に基づいて、また
場合によっては、さらなるデータストリームによって使用される帯域幅に基づいて、前記データストリームについての残留帯域幅を決定すること、および、
-決定された前記データストリームについての
前記残留帯域幅に応じて前記データストリームについての前記ビットレートを更新すること
をさらに含む、請求項
1に記載の方法。
【請求項9】
或るビットレートでネットワークを通じて第2のネットワークデバイスにデータストリームを送信するように構成される第1のネットワークデバイスであって、
当該第1のネットワークデバイスはさらにプロセッサとメモリを備え、かつ
-前記ネットワークを通じて前記第2のネットワークデバイスに
一連の第1のパケット
を送信することであって、
前記第1のパケットのそれぞれは、関連する送信時間を有し、一意の識別値を含む、
一連の第1のパケットを送信
すること、
ここで、前記一連の第1のパケットは、第1のリアルタイムトランスポート制御プロトコル(RTCP)パケットと1つまたは複数のリアルタイムトランスポートプロトコル(RTP)パケットを含み、かつ、前記1つまたは複数のRTPパケットのそれぞれの一意の識別値はシーケンス番号であり、
-第2のパケット
を前記第2のネットワークデバイスから受信することであって、
前記第2のパケットは、前記第2のネットワークデバイスによる前記
一連の第1のパケット
の前記第1のRTCPパケットのうちの最後の
1つの受信を示し、第2のパケッ
トは前記第1のネットワークデバイスでの受信時間
T
4
を有する、第2のパケット
を受信
すること、
ここで、前記第2のパケットは、前記第2のネットワークデバイスで受信された前記一連の第1のパケットのRTPパケットの最大のシーケンス番号をさらに含む第2のRTCPパケットであり、
-標準的なラウンドトリップ時間を、少なくとも、
前記一連の第1のパケットの前記第1の
RTCPパケットの送信時間
T
1
、
前記第2のネットワークデバイスにおける前記一連の第1のパケットの前記第1のRTCPパケットの受信時間T
2
、
前記第2のネットワークデバイスからの前記第2のRTCPパケットの送信時間T
3
、および、
T
4
-(T
3
-T
2
)-T
1
として計算される、前記第2の
RTCPパケットの受信時間
T
4
に応じて決定
すること、
-送信時間T
1α
>T
1
を有する第1のパケットについて、前記第2のRTCPパケットにおけるT
4
で受信の指示が受信されなかったことを示すこと、
前記第2のRTCPパケットの前記受信時間T
4
の後であって次の第2のRTCPパケットを受信するまでの期間中に、
-現在のラウンドトリップ時間を、
前記第1のネットワークデバイスで受信の指示
が受信されなかった
前記一連の第1のパケットの最も古い
RTPパケットの送信時間
T
1α
(ここでT
1
<T
1α
<T
4
である)、および、
前記第2の
RTCPパケットの
前記受信時間
T
4
に応じて決定
すること、
ここで前記現在のラウンドトリップ時間はT
4
-T
1α
として計算され、
-前記標準的なラウンドトリップ時間および前記現在のラウンドトリップ時間に応じて、前記第1のネットワークデバイスと前記第2のネットワークデバイスとの間の未使用ネットワーク帯域幅が存在するか否かを判定
すること、
ここで、前記標準的なラウンドトリップ時間が第1の閾値を超え、かつ/または前記現在のラウンドトリップ時間が第2の閾値を超えるとき、未使用ネットワーク帯域幅は存在せず、および
-前記未使用ネットワーク帯域幅の前記存在に応じて
、送信された前
記データストリームについての前記ビットレートを更新する
こと
を行うように構成される、第1のネットワークデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
述べる実施形態は、2つのネットワーク接続されたデバイス間の利用可能なネットワーク帯域幅の使用最適化に関する。特に、述べる実施形態の一部は、ネットワーク通信のためのラウンドトリップ時間の改善された決定、および、ラウンドトリップ時間を考慮するための対応するメディアストリーム構成変更に関する。
【背景技術】
【0002】
リアルタイムトランスポートプロトコル(RTP:Real-time Transport Protocol)は、オーディオおよびビデオ等のメディアを、インテーネットプロトコル(IP:Internet Protocol)ネットワークを通じて送出するためのネットワーク化プロトコルである。RTPは、テレフォニー、ビデオ遠隔会議、およびネットワークカメラアプリケーション等のストリーミングメディアを含む、通信、娯楽、および監視システムで一般に使用される。
【0003】
RTPは、典型的には、ユーザーデータグラムプロトコル(UDP:User Datagram Protocol)を通じて実行される。UDPは、単純なコネクションレス通信(connectionless communication)モデルを使用し、パケット肯定応答(packet acknowledgement)を提供しない。したがって、伝送制御プロトコル(TCP:Transmission Control Protocol)または同等の代替的のプロトコルと違って、プロトコル層におけるエラー訂正またはモニタリングは存在しない。
【0004】
例えば、ビデオ通話(video call)中にオーディオおよびビデオを送信するために使用されるときのRTPに関する問題は、RTPが、リソース予約(resource reservation)に対処せず、リアルタイムサービスのためのサービス品質を保証しないことである。例えば、オーディオおよびビデオ品質は、ネットワーク輻輳によって影響を受ける可能性がある。エラー訂正またはモニタリングの欠如に対処するために、RTPは、RTP制御プロトコル(RTCP)と共に使用することができる。RTPがメディアストリーム(例えば、オーディオストリームおよびビデオストリーム)を運ぶ間、RTCPは、伝送統計量(transmission statistics)およびサービス品質(QoS:quality of service)をモニターするために使用され、複数のストリームの同期を支援する。これは、パケットカウント、パケット損失、パケット遅延変動、およびラウンドトリップ遅延時間等の統計情報をストリーミングマルチメディアセッションの参加者に周期的に送信することによって、ビデオ配信におけるサービス品質(QoS)に関するフィードバックを使用することによって達成される。
【0005】
図1は、RTCPによるラウンドトリップ遅延時間計算の例を示す。ネットワーク化セッションの各メンバー、例えば、送信側デバイス20および受信側デバイス30は、RTCP送信側/受信側レポートを周期的に送信する。ラウンドトリップ時間(RTT:round-trip time)は、RTCPレポートで送信されるタイムスタンプを使用して計算することができる、すなわち、
1)送信側デバイスは、第1のRTPまたはRTCPパケットを受信側デバイスに送信する。
2)受信側デバイスは、第1のRTPまたはRTCPパケットに肯定応答して、対応する第2のRTCPレポートを受信側デバイスに返送する。
3)送信側デバイスは、第1および第2のRTCPレポートのタイムスタンプに基づいてラウンドトリップを計算する。
【0006】
RTTは、ネットワーク輻輳、例えば、待ち行列遅延(queueing delay)の良好な指標であるため、メディアストリームを送信するための適切なビットレートを決定するために使用することができる。しかしながら、RTCPレポートは、周期的に送信されるかまたは送信されない場合がある。RTCPレポートは、定期的スケジュールに従って送信することができる、または、RTCPレポートは、必要とされるときに、例えば、要求されるときに、送信することができる。いずれにしても、ネットワークレイテンシーが突然増加する場合、ネットワークレイテンシーの増加を検出することができる前に、送信側デバイスと受信側デバイスとの間で、必要なRTCPレポートが交換されてしまう前に、遅延が存在する可能性がある。これらの状況下で、被送信オーディオおよびビデオストリームの品質が損なわれる可能性がある。
【0007】
必要とされるものは、送信側デバイスと受信側デバイスとの間でRTCPレポートの次のセットが交換されるまで待つことなく、ネットワークレイテンシーをモニターし更新する方法である。
【発明の概要】
【0008】
本開示の第1の態様は、第1のネットワークデバイスによって実施される方法であり、第1のネットワークデバイスは或るビットレートでネットワークを通じて第2のネットワークデバイスにデータストリームを送信するように構成され、方法は、ネットワークを通じて第2のネットワークデバイスに一連の第1のパケットを送信することであって、第1のパケットのそれぞれは、関連する送信時間を有し、一意の識別値を含む、送信すること、第2のパケットを第2のネットワークデバイスから受信することであって、第2のパケットは、第2のネットワークデバイスによる第1のパケットのうちの少なくとも1つの第1のパケットの受信を示し、第2のパケットは関連する受信時間を有する、受信すること、標準的なラウンドトリップ時間を、少なくとも、受信の指示がそれについて受信された第1のパケットの送信時間、および、第1のパケットの受信の指示を含む第2のパケットの受信時間に応じて決定すること、現在のラウンドトリップ時間を、受信の指示がそれについて受信されなかった最も古い第1のパケットの送信時間、および、直近に受信された第2のパケットの受信時間に応じて決定すること、現在のラウンドトリップ時間および標準的なラウンドトリップ時間に応じて、第1のネットワークデバイスと第2のネットワークデバイスとの間の未使用ネットワーク帯域幅が存在するか否かを判定すること、判定された未使用ネットワークに応じて被送信データストリームについてのビットレートを更新することを含む。この実施形態の利点は、第1のネットワークデバイスが、第1のネットワークデバイスと第2のネットワークデバイスとの間の利用可能な帯域幅の変化に応答することができる速度である。標準的なラウンドトリップ時間と現在のラウンドトリップ時間の両方を評価することによって、第1のネットワークデバイスは、標準的なラウンドトリップ時間のみを用いた場合に比べて、ネットワーク帯域幅の変化に迅速に応答することができる。例えば、大規模プレバッファがレイテンシーのために望ましくないライブスポーツ等の、低レイテンシーのライブストリーミングビデオを含む状況において、ネットワーク化システムが、未使用ネットワーク帯域幅の可用性の変化にできる限り迅速に応答することができることが極めて重要である。
【0009】
任意選択で、現在のラウンドトリップ時間を決定するステップは、受信の指示がそれについて受信されなかった最も古い第1のパケットの送信時間と、直近に受信された第2のパケットの受信時間との間の時間差である現在のラウンドトリップ時間を決定することをさらに含む。これは、標準的なラウンドトリップ時間によって典型的には使用される技法によって使用される第1のパケットに比べてより最近の第1のパケットの使用を可能にする。この差は、より最近送信されたパケットを使用するラウンドトリップ時間の「より新鮮な(fresher)」評価を可能にする。
【0010】
任意選択で、標準的なラウンドトリップ時間は、第1のパケットの送信時間値、第2のネットワークデバイスにおける第1のパケットの受信時間、第1のパケットの受信の指示を含む第2のパケットの送信時間値、および第1のネットワークデバイスにおける第2のパケットの受信時間に応じて決定される。
【0011】
任意選択で、第2のパケットはリアルタイムトランスポート制御プロトコル(RTCP:Real-time Transport Control Protocol)パケットを含み、一連の第1のパケットは、1つまたは複数のリアルタイムトランスポートプロトコル(RTP:Real-time Transport Protocol)パケットおよび少なくとも1つのRTCPパケットを含む。既存のRTP評価技法は制限され、RTCPと組み合わせた、述べる方法の使用は、RTPの利点が、欠点のうちの少数の欠点と共に使用されることを可能にする。
【0012】
任意選択で、第1のネットワークデバイスと第2のネットワークデバイスとの間の未使用ネットワーク帯域幅が存在するか否かを判定するステップは、標準的なラウンドトリップ時間が第1の閾値を超える、および/または、現在のラウンドトリップ時間が第2の閾値を超える、と判定することを含む。任意選択で、第2の閾値は第1の閾値より大きい。複数の閾値の使用は、変化するネットワーク帯域幅可用性に対する、より複雑なプログラム的応答を可能にする。
【0013】
任意選択で、未使用ネットワーク帯域幅の存在に応じて被送信データストリームについてのビットレートを更新するステップは、未使用ネットワーク帯域幅が存在しないときにデータストリームについてのビットレートを減少させることを含む。これは、有利には、利用可能なネットワーク帯域幅が減少するときに、データストリームが途絶(disruption)を回避することを可能にする。
【0014】
任意選択で、未使用ネットワーク帯域幅の存在に応じて被送信データストリームについてのビットレートを更新するステップは、未使用ネットワーク帯域幅が存在するときにデータストリームについてのビットレートを増加させることを含む。これは、有利には、利用可能なネットワーク帯域幅が増加するときに、データストリームがメディア品質を改善することを可能にする。
【0015】
任意選択で、未使用ネットワーク帯域幅の存在に応じて被送信データストリームについてのビットレートを更新するステップは、標準的なラウンドトリップ時間および/または現在のラウンドトリップ時間が増加するときにデータストリームについてのビットレートを減少させることを含む。これは、有利には、ネットワークバッファリングが行われるときに、データストリームが途絶を回避することを可能にする。
【0016】
任意選択で、データストリームは、ビデオストリームおよびオーディオストリームの少なくとも一方を含む。被送信データストリームについてのビットレートを更新することは、ターゲットビットレート、平均ビットレート、解像度、カラー深度、フレームレート、サンプリング周波数、ビット深度、およびチャネルカウントのうちの少なくとも1つを更新することを含むことができる。これらの構成オプションの調整を可能にすることは、有利には、メディアビューワの体験のために最適化される、ネットワーク途絶に対する応答を可能にする。
【0017】
任意選択で、上記方法は、第1のネットワークデバイスと第2のネットワークデバイスとの間で送信される、1秒当たりのデータパケットの合計サイズに基づいて、第1のネットワークデバイスと第2のネットワークデバイスとの間での使用されるネットワーク帯域幅を決定すること;使用されるネットワーク帯域幅に応じてネットワークスループット値を決定することであって、ネットワークスループット値は、第1のネットワークデバイスが第2のネットワークデバイスに送出することができる、1秒当たりのデータ量である、決定すること;第1のネットワークデバイスによって送信されるデータパケットの合計サイズおよび第2のネットワークデバイスに送出されるデータパケットの合計サイズに基づいて、ネットワーク内でバッファリングされるデータパケットの合計サイズを決定すること;ネットワーク内のバッファを空にするのに妥当な時間間隔内で、ネットワーク内でバッファリングされたデータパケットを第2のネットワークデバイスに送出するために必要とされる予約帯域幅を決定すること;ネットワークスループット値および予約帯域幅に基づいて、またおそらくは、さらなるデータストリームによって使用される帯域幅に基づいて、データストリームについての残留帯域幅を決定すること;および、データストリームについての決定された残留帯域幅に応じてデータストリームについてのビットレートを更新することをさらに含む。これは、有利には、使用されるネットワーク帯域幅に応じて、データストリームのよりバランスのとれた最適化を可能にする。これは、バッファを空にすることによって、妥当な時間間隔内で標準的なラウンドトリップ時間および/または現在のラウンドトリップ時間の減少を可能にする。
【0018】
本開示の第2の態様は、或るビットレートでネットワークを通じて第2のネットワークデバイスにデータストリームを送信するように構成される第1のネットワークデバイスであり、第1のネットワークデバイスは、ネットワークを通じて第2のネットワークデバイスに、第1のパケットであって、第1のパケットのそれぞれは、関連する送信時間を有し、一意の識別値を含む、第1のパケットを送信し、第2のパケットであって、第2のネットワークデバイスによる第1のパケットのうちの最後の第1のパケットの受信を示し、第2のパケットのそれぞれは関連する受信時間を有する、第2のパケットを第2のネットワークデバイスから受信し、標準的なラウンドトリップ時間を、少なくとも、受信の指示がそれについて受信された第1のパケットの送信時間、および、第1のパケットの受信の指示を含む第2のパケットの受信時間に応じて決定し、現在のラウンドトリップ時間を、受信の指示がそれについて受信されなかった最も古い第1のパケットの送信時間、および、直近に受信された第2のパケットの受信時間に応じて決定し、標準的なラウンドトリップ時間および現在のラウンドトリップ時間に応じて、第1のネットワークデバイスと第2のネットワークデバイスとの間の未使用ネットワーク帯域幅が存在するか否かを判定し、未使用ネットワーク帯域幅の存在に応じて被送信データストリームについてのビットレートを更新するように構成される。
【0019】
本発明の他の特徴および利点は、添付図面を参照して、或る例の以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【0020】
【
図1】RTCPによる標準的なラウンドトリップ決定を示すシーケンスダイアグラムである。
【
図2】説明の或る態様によるネットワークシステムの図である。
【
図3】説明の或る態様による、増加したネットワークレイテンシーを判定し、増加したネットワークレイテンシーに相応して対応するための技法についてのフローチャートである。
【
図4】説明の或る態様によるCRTTのために使用されるパケットについてのシーケンスダイアグラムである。
【
図5】パケット送信および肯定応答データを有する表である。
【
図6】説明の或る態様による、被送信メディアストリームのビットレートを決定するための技法のフローチャートである。
【
図7】ラウンドトリップ時間閾値および対応する帯域幅可用性のセットを示すダイアグラムである。
【
図8】ネットワーク上でのメディアストリームパケットのバッファリングを低減するために、適切なビットレートを選択する方法のフローチャートである。
【発明を実施するための形態】
【0021】
本説明は、2つのネットワーク接続されたデバイス間の利用可能なネットワーク帯域幅の使用最適化のための装置および技法に関する。説明全体を通して、同じ参照符号は、対応する要素を特定するために使用される。
【0022】
図2は、ネットワーク10によって第2のネットワークデバイス30に接続された第1のネットワークデバイス20を備えるネットワーク化システム100のダイアグラムである。1つの実施形態において、ネットワーク10は、ネットワーク層のためのインターネットプロトコル(IP)、トランスポート層としてのユーザーデータグラムプロトコル(UDP)、およびアプリケーション層におけるリアルタイムトランスポートプロトコル(RTP)を使用するイーサネットネットワークである。しかしながら、同じまたは実質的に同等の技法を適用することができる他のプロトコルスタックを想定することができる。
図2において、第1のネットワークデバイス20は、ネットワーク10によって第2のネットワークデバイス30にデータストリーム25を送信するように構成される。
【0023】
1つの実施形態において、データストリーム25は、ビデオストリームおよび/またはオーディオストリームを含むメディアストリームである。メディアストリームは、第1のネットワークデバイス20によって第1のメディア形式からメディアストリームに変換される連続するビデオまたはオーディオコンテンツを含む。この変換は、メディアエンコーディングとして知られ、コーデックとして知られるデバイスまたはコンピュータプログラムによって実施することができる。コーデックによって実施される変換プロセスは、結果得られるメディアストリームに影響を及ぼす多数の構成オプションを使用して実施することができる。これらのオプションは、メディアをエンコードするために使用されるビットレートを含む。ビットレートオプションは、ターゲットビットレート、平均ビットレートの使用を含むことができる。他のコーデックオプションは、ビデオ解像度、ビデオカラー深度、ビデオフレームレート、オーディオサンプリング周波数、オーディオビット深度、オーディオチャネルカウントの選択、エンコーディングアルゴリズムの選択等を含むことができる。1つの実施形態において、メディアをエンコードするために使用される構成は、ストリーミングメディアの特性に対する動的変化を可能にするために、ストリーミング中に任意の時間に変更することができる。これは、ストリーミングメディアが、それを通じて送信されているネットワーク環境に適合することを可能にするという有意の利点を提供する。本開示は、ここで、ネットワーク環境に応答する、ストリーミングされるメディアのビットレート構成の適合に的を絞ることになるが、利用可能なネットワーク帯域幅のよりよい使用を可能にするために、コーデック構成オプションの任意のオプションを、変化するネットワーク環境に応答して調整することができることが理解される。
【0024】
ネットワーク10にわたってエンコードされ送信された後に、データストリーム25は、その後、第2のネットワークデバイス30によって受信され、第2のネットワークデバイス30においてまたは第2のネットワークデバイス30に接続されたデバイスにおいてデコードされ、ユーザーに表示される。代替的に、第2のネットワークデバイス30によって受信されるメディアストリームは、第2のネットワークデバイス30によってまたは第2のネットワークデバイス30に接続されたデバイスによって記憶することができる。
【0025】
図3は、増加したメットワークレイテンシーを迅速に判定し、増加したメットワークレイテンシーに相応して応答するための本開示の或る実施形態を示す。
図3は、
図4を参照して以下で述べられることになり、説明の或る態様による、CRTTのために使用されるパケットについてのシーケンスダイアグラムを示す。
【0026】
ステップ310にて、一連の第1のパケット40は、ネットワーク10を通じて第2のネットワークデバイス30に第1のネットワークデバイス20によって送信される。第1のパケット40はストリーミングメディアを形成するデータを含むことができる。1つの実施形態において、第1のパケット40はRTPパケットおよび少なくとも1つのRTCPパケットを含む。第1のパケット40のそれぞれは、第1のパケット40を一意に識別することが可能な一意の識別値60を含む。一意の識別値60は、
図5に示す実施形態において、「RTPパケットシーケンス番号(RTP packet sequence number)」として示される。
【0027】
1つの実施形態において、第1のネットワークデバイス20は、一意の識別値60および第1のパケット40のそれぞれの送信時間T1を記録する。
【0028】
ステップ320にて、第2のネットワークデバイス30は、第2のパケット50を第1のネットワークデバイス20に送信する。第2のパケット50はリアルタイムトランスポート制御プロトコル(RTCP)パケットであるとすることができる。1つの実施形態において、第2のパケット50は、第2のネットワークデバイス30による第1のパケット40の受信の指示を含む。これは、対応する第1のパケット40の一意の識別値60を含むことができる。第2のパケット50は、第2のネットワークデバイス30における第1のパケット40の受信時間T2をさらに含むことができる。第2のパケット50は、第2のネットワークデバイス30からの第2のパケット50の送信時間T3をさらに含むことができる。代替の実施形態において、受信時間T2および送信時間T3の代わりに、第2のパケット50は、受信時間T2と送信時間T3との間の時間、すなわち、(T3-T2)を記録する「処理時間(processing time)」を含む。1つの実施形態において、第1のネットワークデバイス20は、第2のパケット50のそれぞれの受信時間T4を記録する。
【0029】
ステップ330にて、第1のネットワークデバイス20は、標準的なラウンドトリップ時間(RTT)を、少なくとも1つの第1のパケット40、および、
- 第1のパケット40の送信時間T1
- 第1のパケット40に対応する受信の指示を含んだ第2のパケット50の受信時間T4
- 第2のネットワークデバイス30からの第2のパケット50の送信時間T3から減算された第2のネットワークデバイス30における第1のパケット40の受信時間T2、すなわち、(T3-T2)
を使用して決定する。
【0030】
RTTは、その後、T
4-(T
3-T
2)-T
1として計算することができる。
図4のシーケンスダイアグラムおよび
図5のパケット表に示す例において、第1のパケット40は、第1のネットワークデバイス20上のクロックに従って時間15.608353秒(T
1)に送信された。その後、第2のパケット50は、第2のネットワークデバイス30から送信され、第1のネットワークデバイス20上のクロックに従って時間16.43566秒(T
4)に受信された。第2のパケット50は、最後の送信側レポートパケット以来の遅延(DLSR:Delay Since Last Sender Report Packet)としても知られる処理時間(T
3-T
2)を含む。この例のDLSRは0.826秒である。ラウンドトリップ時間は、その後、第2のネットワークデバイス30が第1のパケット40を受信することと第2のパケット50を送信することとの間の遅延を減算することによって決定され、
図5に述べるように0.001307秒または1.307ミリ秒≒1.31ミリ秒である。
【0031】
ステップ340にて、代替の方法は、ラウンドトリップ時間を推定するために同様に使用される。ステップ340にて、現在のラウンドトリップ時間は、受信の指示がそれについて受信されなかった第1のパケット40の送信時間(T
1)に応じて、かつ、直近に受信された第2のパケット50の受信時間(T
4a)に応じて決定される。この代替の方法のステップは
図6に示される。
【0032】
図6のステップ610にて、第2のネットワークデバイス30から、受信の指示がそれについてまだ受信されなかった、送信時間(T
1a)を有する第1のパケット40を識別する。
【0033】
ステップ620にて、第1のネットワークデバイス20は、直近に受信された第2のパケット50の受信時間(T4a)を(そのコンテンツに関わらず)識別する。
【0034】
ステップ630にて、第1のネットワークデバイス20は、受信の指示がそれについて受信されなかった、最も古い第1のパケット40の送信時間(T
1a)と、直近に受信された第2のパケット50の受信時間(T
4a)との間の時間差である現在のラウンドトリップ時間(CRTT:current round-trip time)を決定する。第1のネットワークデバイス20上のクロックに従って、第1のパケット40が時間16.136001秒(T
1a)で送信され、第2のパケット50が時間16.43566秒(T
4a)で受信された
図6にも示す例において、ラウンドトリップ時間は0.299659秒または300ミリ秒である。
【0035】
直近に受信された第2のパケット50(例えば、RTCPレポート)を使用して計算されるRTTだけに依存するかまたは次の第2のパケット50が到着するときに計算される次のRTTを待つ代わりに、上記技法は、最も古い非肯定応答データパケット(すなわち、RTCPレポートではなく通常のRTPパケット)の送信時間と、直近の受信されたRTCPレポートの受信時間を比較して、ネットワーク10のレイテンシーの別の有用な決定を提供する。これは、より古い第1のパケット40および対応する第2のパケット50を使用して計算される新鮮でないRTTを使用することを必要とせず、RTTのために使用されるデータパケットより最近に送信されたデータパケットを使用して計算することができる。
【0036】
少なくとも1つの状況において、未使用ネットワーク帯域幅が存在するか否かを検出することは、特に有利である場合がある。例えば、大規模プレバッファがレイテンシーのために望ましくないライブスポーツ等の、低レイテンシーのライブストリーミングビデオを含む状況において、ネットワーク化システム100が、未使用ネットワーク帯域幅90の可用性の変化にできる限り迅速に応答することができることが極めて重要である。
【0037】
図7に示すように、任意選択で、未使用ネットワーク帯域幅90の存在(すなわち可用性)を判定するステップは、標準的なRTTが第1の閾値710を超える、および/または、CRTTが第2の閾値720を超える、と判定することを含む。第1の閾値710および/または第2の閾値720が超えられる場合、未使用ネットワーク帯域幅90が存在しないかまたは利用可能でない、と判定される。任意選択で、第2の閾値720は第1の閾値710より大きい。1つの実施形態において、適切な第1の閾値710の値は200ミリ秒である。1つの実施形態において、適切な第2の閾値720の値は300ミリ秒である。適切な閾値の値は、システム設計および試験に応じて選択することができる。
【0038】
図3に戻って、ステップ350にて、第1のネットワークデバイス20は、CRTTと標準的なRTTの両方に応じて、第1のネットワークデバイス20と第2のネットワークデバイス30との間の未使用ネットワーク帯域幅90の存在または非存在を判定する。第1の閾値710および/または第2の閾値720が超えられる場合、未使用ネットワーク帯域幅90が存在しないかまたは利用可能でない、と判定される。第1の閾値710も超えられないし第2の閾値720も超えられない場合、未使用ネットワーク帯域幅90が存在するとすることができる、と判定される。
【0039】
ステップ360にて、第1のネットワークデバイス20は、判定された未使用ネットワーク帯域幅90に応じて、被送信データストリーム25についてのビットレートを更新するためにコーデック構成を変更するように構成することができる。
【0040】
任意選択で、未使用ネットワーク帯域幅90の判定された可用性を考慮して被送信データストリーム25についてのビットレートを更新するステップは、未使用ネットワーク帯域幅90が利用可能でないときにデータストリーム25についてのビットレートを減少させることを含む。未使用ネットワーク帯域幅90が利用可能でないことは、未使用ネットワーク帯域幅90が或るビットレートでのデータストリームの送信にとって不十分であり、したがって、送信を可能にするために、データストリームについてのビットレートを減少させなければならないこととして述べることできる。換言すれば、或るビットレートでのデータストリームの送信のための利用可能なネットワーク帯域幅が不十分であり、したがって、データストリームの送信を可能にするために、ビットレートを減少させなければならない。未使用ネットワーク帯域幅90が利用可能である(または存在する)ことは、利用可能な未使用ネットワーク帯域幅の量が、より高いビットレートでデータストリームを送信するのに十分であり、したがって、データストリームのビットレートを増加させることを意味する。1つの実施形態において、被送信データストリーム25についてのビットレートは、標準的なラウンドトリップ時間および/または現在のラウンドトリップ時間が増加するときに減少する。例えば、これは、未使用ネットワーク帯域幅90が依然として利用可能である場合でも、標準的なラウンドトリップ時間および/または現在のラウンドトリップ時間が増加するときに当てはまる可能性がある。ビットレートを減少させる理由は、ネットワークを通じた遅延および輻輳を回避または低減することである。
【0041】
1つの実施形態において、オーディオストリームのためではなく、ビデオストリームのみのためのビットレートは、ネットワークレイテンシーの変化に応答して調整される。これは、受取人が、オーディオストリームにおける減少したビットレートにより敏感であることができる一方、ビデオストリームにおける減少したビットレートを検出することができず、ストリーミングされるメディアの体験の低下をもたらすという利点を有する。
【0042】
図8に示す或る実施形態において、データストリーム25のエンコーディングのために適切なビットレートを選択するための方法が提供され、方法は、ネットワーク10上での第1のパケット40のバッファリングをシステムが低減することを可能にすることになる。
【0043】
図8のステップ810にて、第1のネットワークデバイス20と第2のネットワークデバイス30との間の使用されるネットワーク帯域幅95が決定される。使用されるネットワーク帯域幅95は、第1のネットワークデバイス20と第2のネットワークデバイス30との間で送信される、1秒当たりのデータパケットの合計サイズに基づいて決定することができる。代替的に、当技術分野で知られている、ネットワーク10を通じた使用されるネットワーク帯域幅95を決定する他の方法の使用を想定することができる。
【0044】
ステップ820にて、ネットワークスループット値96は、使用されるネットワーク帯域幅95に応じて決定される。ネットワークスループット値96は、第1のネットワークデバイス20が第2のネットワークデバイス30に送出することができる、1秒当たりのデータ量に対応する。この値は、例えば、理論的ネットワーク帯域幅の一部として前もって知ることができる、または、この値は、周期的に決定することができる。当技術分野で知られている、ネットワーク10のネットワークスループット値96を決定するための方法の使用を想定することができる。
【0045】
ステップ830にて、ネットワーク10内にバッファリングされる第1のパケット40の合計サイズは、第1のネットワークデバイス20によって送信されるデータパケットの合計サイズおよび第2のネットワークデバイス30に送出されるデータパケットの合計サイズに基づいて決定される。第1のパケット40の合計サイズは、第1のパケット40の合計数、第1のパケット40の平均サイズ、および/または第1のパケット40を使用して送信されるデータ量の関数として決定することができる。
【0046】
ステップ840にて、ネットワーク10内のバッファを空にするのに妥当な時間間隔内で、ネットワーク10内でバッファリングされた第1のパケット40の、第2のネットワークデバイス30への送出を可能にすることになる予約帯域幅97の量が決定される。
【0047】
ステップ850にて、残留帯域幅98の量は、少なくともネットワークスループット値96および予約帯域幅97に基づいて、データストリーム25について決定される。1つの実施形態において、残留帯域幅98は、ネットワークスループット値96、予約帯域幅97、およびさらなるデータストリーム25によって使用される帯域幅に基づいてデータストリーム25について決定される。
【0048】
ステップ860にて、データストリーム25についてのビットレートは、データストリーム25についての、決定された残留帯域幅98に応じて更新される。
【0049】
1つの実施形態において、ステップ610~630にて決定されたCRTTは、未使用ネットワーク帯域幅90を決定し、ネットワーク10を通じた適切なメディアストリーミングビットレートを決定するために、RTTと独立に使用することができる。この実施形態において、CRTTは、単独で、または、当技術分野で知られている未使用ネットワーク帯域幅90を決定する他の方法と組み合わせて使用することができる。