JP2016541213A - メディアストリーミングのための改良された要求取消し方法 - Google Patents

メディアストリーミングのための改良された要求取消し方法 Download PDF

Info

Publication number
JP2016541213A
JP2016541213A JP2016546905A JP2016546905A JP2016541213A JP 2016541213 A JP2016541213 A JP 2016541213A JP 2016546905 A JP2016546905 A JP 2016546905A JP 2016546905 A JP2016546905 A JP 2016546905A JP 2016541213 A JP2016541213 A JP 2016541213A
Authority
JP
Japan
Prior art keywords
cost
representation
determining
switching
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016546905A
Other languages
English (en)
Other versions
JP2016541213A5 (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 JP2016541213A publication Critical patent/JP2016541213A/ja
Publication of JP2016541213A5 publication Critical patent/JP2016541213A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/1069Session establishment or de-establishment
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)

Abstract

概して、様々な実施形態は、レシーバデバイスのリソース(たとえば、帯域幅、バッテリー電力など)の変化に関係する1つまたは複数の性能目標および/または最適化を実現するために、レシーバデバイスのリソースの変化を考慮して、現在のセグメントを現在の表現でダウンロードすることを取り消すかまたは放棄し、現在のセグメントの異なる表現でのダウンロードを再開することをいつ行うかを判定するための、レシーバデバイス上でDASHクライアントを実行するプロセッサによって実施される方法を提供する。様々な実施形態では、レシーバデバイスプロセッサは、現在のセグメントの進行中のダウンロード中に表現を切り替えることがレシーバデバイスの性能に便益をもたらすかどうかを判定するための費用対効果分析を実行してもよく、レシーバデバイスプロセッサは、表現を切り替えるとレシーバデバイスの性能が向上すると判定したことに応答して表現を切り替えてもよい。

Description

「ハイパーテキスト転送プロトコル」(「HTTP」)は現在、インターネットを介してビデオ、ピクチャ、テキストなどのコンテンツを配信する方法として普及している。ストリーミングビデオファイルなどの多くの現在のアプリケーションでは、コンテンツの順次セグメントを求めるレシーバデバイスからHTTPサーバへの反復的な要求によってコンテンツが漸進的に利用可能になる。セグメントの利用可能性は、各々の連続するセグメントがHTTPサーバにおいていつ利用可能になるかを示すタイムラインに従う。
Dynamic Adaptive Streaming Over Hypertext Transfer Protocol(「DASH」)は、HTTPストリーミングを実装する規格である。DASHは、メディアプレゼンテーション記述(「MPD」)においてレシーバデバイスに送信されるセグメントの利用可能性を知らせる。MPDは、DASHメディアプレゼンテーションに関連するメディアコンポーネントを記述し、セグメント、セグメントが利用可能である時間、およびセグメントのサイズを知らせるセグメント利用可能性タイムラインを示す。
現在、レシーバデバイスは、コンテンツの現在のセグメントを再生しつつコンテンツプロバイダにコンテンツの次のセグメントを継続的に要求することによってコンテンツのストリームをレンダリングする場合がある。レシーバデバイス上で実行されるDASH対応アプリケーション/クライアントは、コンテンツをレンダリングするのに必要なセグメントを収集するために、MPDにおいて識別される次のセグメントを要求するためのHTTP要求をHTTPサーバに送信する。HTTPサーバは、要求されたセグメントによって応答するか、またはDASHクライアントがセグメントを求める以後のHTTP要求を送信すべきである別のユニフォームリソースロケータ(「URL」)を示すHTTPリダイレクトメッセージによって応答する。
DASHはまた、各セグメントの複数の表現(たとえば、ビデオ品質バージョン)を利用できるようにするのを可能にする。たとえば、あるサーバ上(たとえば、URL)のセグメントの高ビットレート/品質バージョンおよび別のサーバ上の同じセグメントの低ビットレート/品質バージョンをホスティングすることによって、各セグメントの複数の表現が利用可能にされてもよい。DASHアプリケーション/クライアントは次いで、セグメントの高ビットレート/品質バージョン(たとえば、受信帯域幅が高いとき)または低ビットレート/品質バージョン(たとえば、受信帯域幅が低いとき)のいずれかを検索し、いずれかのバージョンをレンダリングしてもよい。レシーバデバイスは、帯域幅が非常に高い場合、高品質表現と低品質表現の両方をダウンロードしてもよい。
様々な実施形態は、レシーバデバイスのリソースの変化に関係する1つまたは複数の性能目標および/または最適化を実現するために、レシーバデバイスのリソースの変化を考慮して、現在のセグメントを現在の表現でダウンロードすることを取り消すかまたは放棄し、現在のセグメントの異なる表現でのダウンロードを再開することをいつ行うかを判定するための、レシーバデバイス上でDASHクライアントを実行するプロセッサによって実施される方法を提供する。様々な実施形態では、レシーバデバイスプロセッサは、現在のセグメントの進行中のダウンロード中に表現を切り替えることがレシーバデバイスの性能に便益をもたらすかどうかを判定するための費用対効果分析を実行してもよく、レシーバデバイスプロセッサは、表現を切り替えるとレシーバデバイスの性能が向上すると判定したことに応答して表現を切り替えてもよい。
一実施形態では、レシーバデバイスプロセッサは、表現を切り替えるかどうかを判定する前にレシーバデバイス上で切替え状況が発生したことを認識する場合がある。一実施形態では、レシーバデバイスの利用可能なリソース(たとえば、帯域幅、バッテリー電力など)の変化が現在のセグメントダウンロード中において1つまたは複数の性能目標に影響を与えているか、あるいは影響を与えることになるときに切替え状況が生じる場合があり、切替え状況は、1つまたは複数の性能目標を満たすために現在のセグメントの現在の表現でのダウンロードを取り消して現在のセグメントの異なる表現のダウンロードを再開することが必要になる場合がある機会を表すことがある。
一実施形態では、レシーバデバイスプロセッサは、切替え状況を認識したことに応答して、現在のセグメントのダウンロード中に表現を切り替えると1つまたは複数の性能目標が実現されるかまたはレシーバデバイス上で所望の性能が得られるかどうかを判定するために費用対効果分析を実行してもよい。さらなる実施形態では、レシーバデバイスプロセッサは、現在のセグメントの進行中のダウンロードを放棄するのに必要な時間および現在のセグメント全体を新しい表現でそのサーバからダウンロードするための時間など、1つまたは複数の性能目標(たとえば、1つまたは複数のコストしきい値)を実現するのに必要な最低条件を求めるかまたは算出してもよい。
別の実施形態では、レシーバデバイスプロセッサは、表現を切り替えることが1つまたは複数の性能目標を実現するための望ましい方式であるかどうかを判定するために表現を切り替えることのコストをコストしきい値と比較してもよく、レシーバデバイスプロセッサは、切替えの便益がコストを超えると判定したとき(たとえば、算出されたコストがコストしきい値を超えていないとき)にのみ現在のセグメント要求を取り消して現在のセグメントの別の表現に切り替えればよい。場合によっては、コストがコストしきい値を超えるとき、レシーバデバイスプロセッサは何も措置を講じず、進行中のダウンロードを継続してもよい。
本明細書に組み込まれ、本明細書の一部を構成する添付図面は、本発明の例示的な実施形態を例示し、上記の一般的な説明および以下の詳細な説明と共に、本発明の特徴を説明するのに役立つ。
様々な実施形態とともに使用するのに適したネットワークの通信システムのブロック図である。 プレイアウト停止の保留状態を認識したことに応答して次のセグメントのより低いビットレートを有する表現でのダウンロードを要求するための代表的な方法を示すプロセスフロー図である。 現在のセグメントの別の表現に切り替えるコストがコストしきい値を超えていないときに現在のセグメントの別の表現に切り替えるための方法実施形態を示すプロセスフロー図である。 現在のセグメントの最低コスト表現に切り替えるコストがコストしきい値を超えているかどうかを判定するための方法実施形態を示すプロセスフロー図である。 現在のセグメントの利用可能性の最も高い表現に切り替えるための方法実施形態を示すプロセスフロー図である。 表現を切り替えるのに必要な動作を示すタイムライン図である。 プレイアウト停止の保留状態を回避するために表現を切り替えるための一実施形態の方法を示すプロセスフロー図である。 ある表現に切り替えるコストが1つまたは複数の性能目標および/または最適化に関連する1つまたは複数のコストしきい値を超えていないときにその表現に切り替えるための方法実施形態を示すプロセスフロー図である。 レシーバデバイスが利用できるリソースが増大することを特徴とする切替え状況を認識したことに応答して表現を切り替えるかどうかを判定するための方法実施形態を示すプロセスフロー図である。 帯域幅が急激に広くなったことに応答して現在のセグメントを現在の表現およびより高いビットレートを有する表現で同時にダウンロードするかどうかを判定するための方法実施形態を示すプロセスフロー図である。 様々な実施形態とともに使用するのに適した例示的なレシーバデバイスの構成要素図である。
様々な実施形態について、添付図面の参照とともに詳細に説明する。可能な限り、同じ参照番号が、同じまたは同様の部分を指すために、図面全体を通して使用される。特定の例および実施態様になされる参照は例示目的のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
本明細書で使用される場合、「レシーバデバイス」という用語は、携帯電話、スマートフォン、個人用マルチメディアプレーヤーまたはモバイルマルチメディアプレーヤー、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、パーソナルコンピュータ、テレビジョンセットトップボックス、テレビジョン、ケーブルテレビジョン受像機、ならびにメディアコンテンツを表示するためのプログラム可能なプロセッサおよびメモリおよび回路を含む同様の個人用電子デバイスのうちのいずれか1つまたはすべてを指す。
本明細書で使用する「表現を切り替える」という用語は、現在のセグメントの第1の表現でのダウンロードを取り消して現在のセグメントの第2の表現でのダウンロードを再開するプロセスを指す。
それぞれに異なるアプリケーション/クライアント、ミドルウェア、セグメント利用可能性タイムライン、無線技術、および転送プロトコルの様々な例、特に、DASHクライアント、MPD、およびHTTPについて本明細書で説明する。DASHクライアント、MPD、およびHTTPの説明は、様々な実施形態の態様をより良好に示すための例としてのみ与えられ、いかなる方法でも様々な実施形態を限定することは意図されない。他のアプリケーション/クライアント、ミドルウェア、セグメント利用可能性タイムライン、無線技術、および転送プロトコルが、様々な実施形態とともに使用されてもよく、他のアプリケーション/クライアント、ミドルウェア、セグメント利用可能性タイムライン、無線技術、および転送プロトコルが、本発明の趣旨または範囲から逸脱することなく、様々な例において置換されてもよい。
DASHクライアントは一般に、一度に3つの異なるセグメント、すなわち、プレイバックバッファからプレイアウトされているセグメント、現在HTTPサーバからダウンロードしているセグメント、および次にダウンロードを要求すべきセグメントに対処する。本明細書で使用する「現在のセグメント」という用語は、現在ダウンロードされプレイバックバッファに記憶されているセグメントを指す。一般に、現在のダウンロードセグメントは、次に再生されるセグメントまたは以後のある時点で再生されるセグメントのように後で再生される。部分的にダウンロードされたセグメントの再生をサポートするメディアアプリケーションシステムを有するレシーバデバイスでは、メディアセグメントが、プレイバックバッファにおけるセグメントのすでにダウンロードされた部分へのアクセスが、セグメントの残りが受信され記憶されるのと同時に開始する場合があるので、現在のセグメント(すなわち、ダウンロードされ記憶されているセグメント)は、ダウンロードが完了する前に再生が開始する場合がある。
レシーバデバイスは、コンテンツ(たとえば、ビデオ)をストリーミングしている間、様々な理由で利用可能な帯域幅が変動することがある。レシーバデバイス上で実行されるDASHクライアントは一般に、DASHクライアントがストリーミングコンテンツの次のセグメントを要求したときに現在の利用可能な帯域幅に基づいてストリーミングコンテンツの様々な表現から次にダウンロードするセグメントの表現を選択することによって帯域幅の変動に対処する。たとえば、クライアントデバイスは、利用可能な帯域幅の縮小を認識したことに応答してストリーミングコンテンツの次のセグメントのより低いビットレートのバージョンを要求してもよい。各セグメントの適切なバージョンのこのような選択は、そのセグメントをダウンロードするのにかかる時間とそのセグメントの再生を開始するまでの残り時間(または再生中のセグメントの残りの再生時間)との比較に基づいて行われてもよく、一方、各セグメントをダウンロードするための時間は、セグメントにおいてダウンロードすべきデータの量を現在の帯域幅によってサポートされる推定されるビットレートで除した値に基づいて推定されてもよい。したがって、DASHクライアントは現在、コンテンツの次のセグメントに関するビットレート表現を変更することしかできない。本明細書で説明するように、次にダウンロードすべきセグメントの別の表現を選択するプロセスを「メインレート選択アルゴリズム」と呼ぶ。
場合によっては、DASHクライアントが現在のセグメントを特定のビットレートでダウンロードしている間に、現在のセグメントの完全なダウンロードを現在のセグメントの再生を開始する予定時間よりも前に完遂できないほど、利用可能な帯域幅が著しく狭くなる。この状態が生じると、帯域幅の縮小を考慮すると現在のセグメントのダウンロードが間に合わないのでビデオ再生が停止する。現在の実装形態では、DASHクライアントは、現在の帯域幅(ダウンロードビットレート)、HTTPサーバから受信すべき現在のセグメントのデータの量、および現在のセグメントが開始する予定時間までの残り時間の推定に基づいて、再生の停止が生じる可能性があるときにそれを予測することができる。しかし、DASHクライアントは、上述のようにメインレート選択アルゴリズムを使用しない限り再生問題を解決することができない。したがって、DASHクライアントが最終的に、より低いビットレートを有する表現に切り替えることによって再生停止を解決する場合があるにもかかわらず、その時点までにユーザにおける性能が低下している(たとえば、再生停止)場合がある。したがって、ユーザにとって、現在のセグメントダウンロード中に生じる帯域幅の急激な縮小に対処する方法が有利である場合がある。
概して、様々な実施形態は、レシーバデバイスのリソース(たとえば、帯域幅、バッテリー電力など)の変化に関係する1つまたは複数の性能目標および/または最適化を実現するために、レシーバデバイスのリソースの変化を考慮して、現在のセグメントを現在の表現でダウンロードすることを取り消すかまたは放棄し、現在のセグメントの異なる表現でのダウンロードを再開することをいつ行うかを判定するための、レシーバデバイス上でDASHクライアントを実行するプロセッサによって実施される方法を提供する。様々な実施形態では、レシーバデバイスプロセッサは、現在のセグメントの進行中のダウンロード中に表現を切り替えることがレシーバデバイスの性能に便益をもたらすかどうかを判定するための費用対効果分析を実行してもよく、レシーバデバイスプロセッサは、表現を切り替えるとレシーバデバイスの性能が向上すると判定したことに応答して表現を切り替えてもよい。
一実施形態では、レシーバデバイスプロセッサは、表現を切り替えるかどうかを判定する前にレシーバデバイス上で切替え状況が発生したことを認識する場合がある。一実施形態では、レシーバデバイスの利用可能なリソース(たとえば、帯域幅、バッテリー電力など)の変化が現在のセグメントダウンロード中に1つまたは複数の性能目標に影響を与えているか、あるいは影響を与えることになるときに切替え状況が生じる場合がある。例示的な性能目標には、特定の電力消費率を維持すること、プレイアウトに関するターゲットビットレートを確保すること、データ使用量を制限すること、および円滑なプレイアウトを実現すること(たとえば、プレイアウト停止を回避すること)が含まれる。詳細には、切替え状況は、1つまたは複数の性能目標を満たすために現在のセグメントの現在の表現でのダウンロードを取り消して現在のセグメントの異なる表現のダウンロードを再開することが必要になる場合がある機会を表すことがある。たとえば、帯域幅が狭くなると、現在のセグメントがプレイアウトされる予定時間よりも前にレシーバデバイスが現在のビットレート表現を有する現在のセグメントのダウンロードを完了することができなくなるので、帯域幅が急激に狭くなったためにプレイアウト停止が生じるであろうことをレシーバデバイスプロセッサが認識したときに切替え状況が生じる場合がある。
一実施形態では、レシーバデバイスプロセッサは、切替え状況を認識したことに応答して、現在のセグメントのダウンロード中に表現を切り替えると1つまたは複数の性能目標が実現されるかまたはレシーバデバイス上で所望の性能が得られるかどうかを判定するために費用対効果分析を実行してもよい。さらなる実施形態では、レシーバデバイスプロセッサは、1つまたは複数の性能目標(たとえば、コストしきい値)を実現するのに必要な最低条件を求めるかまたは算出してもよい。たとえば、円滑な再生を実現するためのコストしきい値は、プレイアウト停止が生じるまでの時間に換算してもよく、プレイアウト停止を防止する円滑な再生の目標を実現するには、表現を切り替えるのに必要な時間がプレイアウト停止が生じることが予期される時点までの時間を超えないことが必要である。以下の説明および特許請求の範囲では、「コスト」の参照は、バッテリー電力消費量および以下に説明するような様々なタスクを完遂するための時間を含む、金銭に関係しない様々な因子を包含するものである。
一実施形態では、レシーバデバイスプロセッサは、実現すべき1つまたは複数の性能目標に基づいて表現の切替えに関連する様々なコストを算出してもよい。性能目標がプレイアウトを円滑に行うことである例では、レシーバデバイスプロセッサは、表現を切り替えることに関連するコストを、(TCP/IP接続を閉じて新しい接続を開くことを伴う場合がある)現在のセグメントの進行中のダウンロードを放棄するのに必要な時間、別の表現を求める要求をHTTPサーバに伝送するのに必要な時間、およびHTTPサーバから新しい表現における現在のセグメント全体をダウンロードするための時間などの、表現を切り替えるのに必要な時間に換算して算出してもよい。様々な実施形態では、レシーバデバイスプロセッサは、同じくまたは代替的に、コストを、表現を切り替えるのに必要な電力、プレイアウトの平均ビットレートに対する効果、または様々な他の性能目標もしくは最適化に対する影響に換算して求めてもよい。
別の実施形態では、レシーバデバイスプロセッサは、表現を切り替えることが1つまたは複数の性能目標を実現するうえで望ましい方式であるかどうかを判定するために表現を切り替えるコストを所定のコストしきい値と比較してもよい。レシーバデバイスプロセッサは、切替え状況が検出されるたびに表現を切り替えると、多くの場合、何の措置を講じない場合よりもユーザエクスペリエンスが悪化することがあるので、表現を切り替える前に費用対効果分析を実行してもよい。したがって、レシーバデバイスプロセッサは、切替えの便益がコストを超えると判定したとき(たとえば、算出されたコストがコストしきい値を超えていないとき)にのみ現在のセグメント要求を取り消して現在のセグメントの別の表現に切り替えればよい。そうでない場合、コストがコストしきい値を超えているときには、レシーバデバイスプロセッサは、さらなる措置を講じなくてもよく、上述のようにメインレート選択アルゴリズムを実行することなどによって、通常通りに動作してもよい。
さらなる実施形態では、レシーバデバイスプロセッサは、レシーバデバイスプロセッサがメインレート選択アルゴリズムを実行する能力に干渉せずに表現を切り替える場合がある。一実施形態では、レシーバデバイスプロセッサは、現在のセグメントダウンロード中に表現を切り替えるかどうかを判定する際に、メインレート選択アルゴリズムを実行するときと同じ情報源を使用してもよい。この実施形態は、レシーバデバイスプロセッサが現在のセグメントのダウンロード中に表現を切り替え、次いで次のセグメントを選択するためにメインレート選択アルゴリズムを実行する間に表現を元に戻す「ピンポン」状況を回避する場合がある。
図1は、様々な実施形態とともに使用するのに適したワイヤレスネットワークシステム100を示す。通信ネットワークシステム100は、レシーバデバイス102、1つまたは複数のセルラータワーまたは基地局104、1つまたは複数のワイヤレスアクセスポイント114、1つまたは複数のルータ109、ならびに、インターネット110に接続されたサーバ108および112のような、複数のデバイスを含んでもよい。レシーバデバイス102は、CDMA、TDMA、GSM(登録商標)、PCS、3G、4G、LTE、または任意の他のタイプの接続を含む、1つまたは複数のセルラー接続106を介して、セルラータワーまたは基地局104とデータを交換してもよい。セルラータワーまたは基地局104は、インターネット110に接続してもよいルータ(図示せず)と通信してもよい。レシーバデバイス102は、Wi-Fi(登録商標)または任意の他のタイプの接続を含む、1つまたは複数の接続118を介して、ワイヤレスアクセスポイント114とデータを交換してもよい。ワイヤレスアクセスポイント114は、インターネット110に接続してもよいルータ(図示せず)と通信してもよい。レシーバデバイス102は、インターネット110に接続する場合があるルータ109との1つまたは複数の有線接続117を介してデータを交換してもよい。このようにして、セルラータワーもしくは基地局104、ワイヤレスアクセスポイント114、ルータ109、および/またはインターネット110との接続を介して、レシーバデバイス102とサーバ108および112との間でデータが交換されてもよい。一実施形態では、サーバ108は、DASHクライアントを介して出力されるメディアを生成するコンテンツプロバイダサーバおよび/またはエンコーダであってもよい。一実施形態では、サーバ108は、カメラなどのメディアキャプチャデバイス116からメディアを受信してもよい。一実施形態では、サーバ112は、コンテンツサーバまたはエンコーダからメディア出力を受信しレシーバデバイス102へのメディアのプロビジョニングを制御する場合があるメディアサーバであってもよい。
図2は、プレイアウト停止が検出されたときに次のセグメントを異なる表現でダウンロードするためにレシーバデバイス上でDASHクライアントを実行するプロセッサによって実施されてもよい従来の方法200を示す。方法200の各動作は、現在実施されているようなメインレート選択アルゴリズムの動作を示す。
ブロック202において、レシーバデバイスプロセッサは、現在のセグメントの現在の表現でのダウンロードを開始してもよい。たとえば、レシーバデバイスプロセッサは、いつどのURL/アドレスにおける特定のメディアセグメントをダウンロードできるかを判定するためにHTTPサーバから受信されるMPDを参照してもよい。レシーバデバイスプロセッサは、ロケーション(たとえば、メディアセグメントのロケーションを示すURL)を判定した後、所与の表現(たとえば、512kビット)での特定のメディアセグメントを求めるHTTP要求を送信してもよい。レシーバデバイスプロセッサは次いで、特定のメディアセグメント(たとえば、現在のセグメント)に関するデータパケットをHTTPサーバから受信することを開始してもよい。
ブロック204において、レシーバデバイスプロセッサは、現在の表現において現在のセグメントのダウンロードがいつ終了するかを推定してもよい。レシーバデバイスプロセッサは、現在のセグメントのダウンロードの様々な態様に関する情報を収集してもよい。たとえば、レシーバデバイスプロセッサは、現在のセグメントのダウンロードの開始時間および終了時間ならびに現在のセグメントの公称表現ビットレートをMPDから求めてもよい。レシーバデバイスプロセッサは、レシーバデバイスとHTTPサーバとの間の推定往復時間(たとえば、RTT)を求めてもよい。レシーバデバイスプロセッサは、現在の推定帯域幅と往復時間の積として算出される場合がある帯域幅-遅延積を求めてもよい。レシーバデバイスプロセッサは、あらゆるアクティブTCP接続(たとえば、進行中のデータ転送を有すると見なされるアクティブTCP接続)からすべてのレシーバ-バッファサイズの総計を求めてもよい。レシーバデバイスプロセッサは、メディアプレゼンテーションの現在の再生時間、すでにダウンロードされた現在のセグメント中のバイト数、および現在のセグメントが属する適応セットの相対重み(たとえば、0と1との間の値)を求めてもよい。
したがって、レシーバデバイスプロセッサは、現在のセグメントがいつダウンロードを終了するかを推定するためにレシーバデバイス上で得られる情報(たとえば、上述の情報など)を使用してもよい。
ブロック206において、レシーバデバイスプロセッサは、推定に基づいてプレイアウト停止の保留状態を認識する場合がある。停止する傾向を予測する際、セグメントが部分的にダウンロードされたときにセグメントの再生を開始することが可能であってもよく、再生がセグメントの終了位置に達する前にセグメントが完全にダウンロードされる限り停止が生じない場合もある。したがって、プレイアウトに利用できると推定されるバイト数がプレイアウト停止を回避するのに必要なバイト数よりも少ないとき、レシーバデバイスプロセッサは、プレイアウト停止が保留中であると判定してもよい。
プレイアウト停止の保留状態が認識されたときには、レシーバデバイスプロセッサは、ブロック208において、次のセグメントの、より低いビットレートの表現でのダウンロードを要求してもよい。言い換えれば、現在の方式では、プレイアウト停止の保留状態を認識する場合があるが、上述のメインレート選択アルゴリズムに基づいて次のダウンロードセグメントのより低いビットレートの表現を要求することによって狭帯域幅/プレイアウト停止の問題を解決するために待機してもよい。
メインレート選択アルゴリズムが将来狭帯域幅によって生じる問題(プレイアウト停止など)を解決する場合があるが、従来のメインレート選択アルゴリズムおよびその他の現在の方式は、現在のセグメントの現在の表現でのダウンロードを取り消して現在のセグメントをより低いビットレートで再ダウンロードすることによってプレイアウト停止の保留状態を回避できるかどうかを判定しない。さらに、現在のメインレート選択アルゴリズムおよびその他の現在の解決策は、現在のセグメントのダウンロード中に表現を切り替えることによって他の性能目標または最適化が実現される可能性があるかどうかを判定するための機構を含まない。
図3は、レシーバデバイスの性能を向上させるために、現在のセグメントの表現を切り替えるべきかどうかを判定するために費用対効果分析を実行するためのDASHクライアントを実行するレシーバデバイス上のプロセッサによって実施されてもよい方法実施形態300を示す。特に、方法実施形態300は、プロセッサが現在のセグメントを異なる表現でダウンロードすることによって現在のダウンロードを取り消してもう一度やり直すべきかどうかを判定するのを可能にする。
ブロック302において、レシーバデバイスプロセッサは、現在のセグメントの現在の表現でのダウンロード中に切替え状況を認識する場合がある。上述のように、レシーバデバイスのプロセッサが、現在の動作が継続した場合に1つまたは複数の性能目標(たとえば、円滑なプレイアウト、特定の電力消費率、平均ビットレートなど)が損なわれると判定したときに、切替え状況が生じる場合がある。たとえば、レシーバデバイスプロセッサは、図2を参照しながら上記で説明したように現在の帯域幅および現在のセグメントのうちでまだダウンロードされていない残りのデータの推定に基づいて現在のセグメントのダウンロードが終了する前にプレイアウト停止が生じることを検出してもよい。
一実施形態では、レシーバデバイスプロセッサは、レシーバデバイスが利用できる動作またはリソースの特定の変化を検出したことに応答してブロック302において切替え状況を認識する場合がある。たとえば、レシーバデバイスプロセッサは、セグメントをダウンロードするのに利用できる帯域幅の増減を検出してもよく、応じてレシーバデバイスプロセッサは、1つもしくは複数の性能目標または最適化が帯域幅の増減の影響を受ける場合があるかどうかを判定してもよい。別の例では、レシーバデバイスプロセッサは、レシーバデバイスの利用可能なバッテリー寿命が特定のしきい値よりも短くなったことを検出してもよく、その場合、レシーバデバイスプロセッサは、1つもしくは複数の性能目標または最適化を実現するためにレシーバデバイスのバッテリー充電状態に基づいて現在のセグメントを異なる(たとえば、より電力効率の高い)表現でダウンロードすべきであることを認識する場合がある。したがって、一実施形態では、ブロック302において認識される切替え状況は、レシーバデバイスの動作または利用可能なリソースの変化がレシーバデバイスの1つもしくは複数の性能目標または最適化にどのような影響を与えるかに基づく状況であってもよい。
ブロック304において、レシーバデバイスプロセッサは、切替え状況に基づくコストしきい値を求めてもよい。一実施形態では、コストしきい値は、現在のセグメントのダウンロード中に表現を切り替えることの1つまたは複数の基礎的な性能目標(たとえば、円滑な再生または特定のエネルギー消費量を実現する)の実現を妨げるか、あるいは場合によっては現在のセグメントのダウンロード中に別の表現に切り替えることを望ましくないものにする条件または基準であってもよい。
一実施形態では、プロセッサは、切替え状況に関係する性能目標および/または最適化に基づくコストしきい値を求めてもよい。たとえば、レシーバデバイスプロセッサは、帯域幅の急激な縮小を考慮して円滑なプレイアウトを実現するために表現を切り替えることが必要になる場合があることを認識したときに、現在のダウンロードを取り消して現在のセグメントを異なる表現でダウンロードするのにどのくらいの時間が利用できるかに基づくコストしきい値を算出してもよい。さらなる一例では、バッファに記憶されたコンテンツにおいて、現在のセグメントがプレイアウトされる予定時間よりも前にレシーバデバイスにおいて再生できるコンテンツが3秒分であるとき、コストしきい値は3秒であってもよい。
より高度な実施形態では、ブロック304において検討されるコストしきい値は、レシーバデバイスが現在のセグメントの異なる表現の受信を開始するまでの最大時間およびプレイアウト停止を回避するために現在のセグメントの異なる表現のダウンロードが終了しておかなければならない時間などの、複数の部分および/または条件を含んでもよい。そのような例において、コストしきい値では、現在のセグメントの異なる表現でのダウンロードの開始に3秒を見込み、ダウンロードの完了に2秒を見込んでもよい。
性能目標がプレイアウトの特定の平均品質を維持することである実施形態では、コストしきい値は特定の平均ビットレートであってもよい。たとえば、現在のセグメントの最低ビットレート表現に切り替えると、ダウンロード時間が短縮され、総電力消費量が低下する場合があるが、表現を切り替えた後のプレイアウトビットレートが許容される/望ましい最低平均ビットレートよりも低くなる可能性があるほどに再生の品質を低下させる場合もある。
さらなる実施形態では、レシーバデバイスプロセッサは、ブロック304において、性能目標および/または最適化を表すのに複数のコストしきい値を利用してもよい。言い換えれば、レシーバデバイスプロセッサは、レシーバデバイス上で関与することになる複数の性能/品質規格に対処してもよい。たとえば、レシーバデバイスプロセッサは、表現を切り替える前に(たとえば、基本的に現在のセグメントを2度ダウンロードする前に)、(たとえば、円滑な再生に関する性能目標に関して)プレイアウト停止の保留状態を解消するのに利用できる時間およびレシーバデバイスが表現を切り替えるのに消費する場合がある最大電力量を求めてもよい。複数のコストしきい値を求めるための動作について、図8を参照しながら以下でさらに説明する。
さらなる実施形態では、レシーバデバイスプロセッサは、表現を切り替えるのに必要な予測できない追加コストを考慮するために1つまたは複数のコストしきい値を控えめに求めてもよい。たとえば、プロセッサは、サーバに接続するのに失敗することなどの不測の遅延を考慮するために時間コストしきい値に追加時間(たとえば、「緩衝作用」)を追加してもよい。したがって、ブロック304において検討されたコストしきい値は、時間および表現を切り替えるのに必要なその他のリソースの理想的な評価値ならびに不測の追加コストに関する調整値を含んでもよい。
ブロック305において、レシーバデバイスプロセッサは、切替え状況の特性に基づいて現在のセグメントの別の表現を選択してもよい。たとえば、レシーバデバイスプロセッサは、現在ダウンロードしているセグメントが現在の帯域幅ではサポートできないビットレートであることに起因してプレイアウト停止が予測されるときには、現在のセグメントに利用できるより低いビットレートまたは最低ビットレートを有する表現を選択してもよい。別の例として、レシーバデバイスプロセッサは、帯域幅が急激に広くなったことが検出されたときには現在のセグメントに利用できるより高いビットレートまたは最高ビットレートを有する表現を選択してもよい。
ブロック306において、レシーバデバイスプロセッサは、現在のダウンロードを取り消すことと選択された表現の現在のセグメントのダウンロードを再開することとを含む、現在のセグメントのダウンロードのための選択された表現に切り替えるコストを求めてもよい。現在のセグメントの現在の表現でのダウンロードを取り消して現在のセグメントを選択された表現で再ダウンロードするプロセスでは、特定の時間がかかり、レシーバデバイスがタスクを実現するにはリソース(たとえば、追加の電力)を費やす必要がある。たとえば、切替えのコストは、1つのTCPセッションをティアダウンして新しいTCPセッションを確立するための時間に、現在のセグメント全体を選択された表現でダウンロードするための時間を加えた時間を含む、表現の切替えを実施するのに必要な時間を含んでもよい。その理由として、レシーバデバイスプロセッサが現在のセグメントにおいてすでに受信されたあらゆる部分を破棄する。さらなるコストには、現在レシーバデバイスに送信されているレシーバデバイスへの最初に要求された表現のデータ(たとえば、「インフライト」バイト)を受信し破棄するのに必要な追加時間を含めてもよい。表現を切り替えるコストを時間に換算して求めることについて、図7を参照しながら以下でさらに説明する。
他の例では、表現を切り替えるコストは、電力消費量および平均ビットレートの観点から、様々な他の性能目標および/または最適化に関して算出されてもよい。
レシーバデバイスプロセッサは、現在のセグメント表現を切り替えるコストを求める際、算出される総コストに追加の「緩衝作用」を含めてもよい。たとえば、表現を切り替えるのに必要な総時間を推定する際、不測の遅延または追加の処理時間を考慮するために1つまたは複数の個々のコスト(たとえば、レシーバデバイスからHTTPサーバに送信されHTTPサーバからレシーバデバイスに送り返されるメッセージの往復時間)を水増しさせてもよい。別の実施形態では、レシーバデバイスプロセッサは、ブロック304を参照しながら上記で説明したようにコストしきい値を水増しすることに加えてまたはその代わりに総算出コストにこの「緩衝作用」を含めてもよい。
判定ブロック308において、レシーバデバイスプロセッサは、選択された表現に切り替えるコストが1つまたは複数のコストしきい値を超えているかどうかを判定してもよい。言い換えれば、レシーバデバイスプロセッサは、セグメントの別の表現に直ちに切り替えることが、何らかの再生停止または生じることが予測されるその他の影響を含む現在選択されている表現を継続することよりも適切なオプションであるかどうかを評価してもよい。たとえば、レシーバデバイスプロセッサは、低バッテリー状態に入ることを考慮して、表現を切り替えるのに必要な電力が与えられる場合により低いビットレートを有する表現に切り替えることがレシーバデバイスに便益をもたらすかどうかを判定してもよい。別の例として、レシーバデバイスプロセッサは、表現を切り替えるのに必要な時間がプレイアウト停止の保留状態が生じるまでの時間を超えているかどうかおよび表現を切り替えるのに必要な電力の量が電力しきい値よりも少ないかどうかを判定してもよい。そのような実施形態では、レシーバデバイスプロセッサは、表現を切り替えることは、表現を切り替えるコストが1つまたは複数のコストしきい値のいずれかを超えているときには適切ではないと判定してもよい。表現を切り替えるコストが1つまたは複数のコストしきい値を超えているかどうかを判定するプロセスについて、図8を参照しながら以下でさらに説明する。
レシーバデバイスプロセッサは、現在のセグメントの別の表現に切り替えるコストがコストしきい値を超えていないと判定したときには(すなわち、判定ブロック308=「No」)、ブロック310において、現在のセグメントの現在の表現での進行中のダウンロードを取り消すかまたは放棄し、現在のセグメントの選択された表現でのダウンロードを要求するプロセスを開始することなどによって、選択された表現に切り替えてもよい。
一実施形態では、レシーバデバイスプロセッサの切り替え先の表現は、切替えの求められたコストおよび1つまたは複数のコストしきい値と整合してもよい。したがって、この実施形態では、ブロック305における別の表現の選択は、ブロック306において切替えのコストが求められた後にこのコストに基づいて実行されてもよい。
さらなる実施形態では、ブロック305において別の表現を選択し、ブロック306において切替えのコストを求めるプロセスは、破線によって示されるように判定ブロック308において実行されるコストを許容できるかどうかの判定の後など、反復的に実行されてもよい。この実施形態では、各プロセスによって、コストしきい値を超えていない最良の表現が選択されてもよい。たとえば、256kBビットレートが2番目に良いビットレート表現であり、256kBビットレートに切り替えてもコストしきい値を超えないので、プロセッサは、512kBビットレート表現から256kBビットレート表現に切り替えてもよい。利用可能な最良の表現に切り替えることについて、図5および図9を参照しながら以下にさらに説明する。
レシーバデバイスプロセッサは、現在のセグメントの別の表現に切り替えるコストがコストしきい値を超えていると判定する(すなわち、判定ブロック308=「Yes」)か、またはプレイアウト停止の保留状態(または別の性能目標に対する影響)を回避する表現が他にないと判定したときには、ブロック312において何の措置も講じず進行中のダウンロードを継続してもよい。この状況では、レシーバデバイスプロセッサは、次のセグメント用の適切な表現を選択するためにメインレート選択アルゴリズムを実行することによって次のセグメントによるセグメントダウンロードに関する問題を解決するために待機してもよい。たとえば、プロセッサは、再生停止を予測しているにもかかわらず、現在のセグメントの新しい表現が、ダウンロードされず、予測される再生停止が生じることが予期される時点までに再生できないときには何も実行しなくてもよい。
図4は、受信帯域幅が狭くなったことに起因する切替え状況を認識したことに応答して最低ビットレートを有する表現に切り替えるかどうかを判定するためにレシーバデバイスによって実施されてもよい方法実施形態400を示す。方法400の動作は、図3を参照しながら上で説明した方法300の動作の実施形態を実現する。一実施形態では、レシーバデバイスプロセッサは、帯域幅の劣化による切替え状況を認識したことを考慮して表現を切り替えるかどうかを判定するための時間がほとんどないときに方法400の動作を実行してもよい。
レシーバデバイスプロセッサは、ブロック302において、図3を参照しながら上記で説明したように現在のセグメントの現在の表現でのダウンロード中に切替え状況を認識する場合がある。たとえば、レシーバデバイスプロセッサは、帯域幅が急激に狭くなったことを認識するか、あるいはレシーバデバイスが低電力状態に入ったときにそれを認識するか、あるいはレシーバデバイスの1つもしくは複数の性能目標および/または最適化に影響を与える場合がある様々な他の事象を認識することがある。
ブロック304において、レシーバデバイスプロセッサは、上述のように切替え状況および切替え状況に関係する1つもしくは複数の性能目標および/または最適化に基づくコストしきい値を求めてもよい。たとえば、レシーバデバイスプロセッサは、帯域幅が急激に狭くなったことを踏まえて特定の安定した電力消費率を実現するのに表現を切り替えることが必要になる場合があることを認識することがある。
ブロック402において、レシーバデバイスプロセッサは、現在のセグメントに利用できる最低ビットレートを有する表現を選択してもよい。レシーバデバイスプロセッサは、切替え状況を認識した後、表現を切り替えることが、1つもしくは複数の性能目標および/または最適化を実現することなどによって、レシーバデバイスの性能に便益をもたらす可能性があるかどうかを非常に短時間の間に判定してもよい。そのような状況では、レシーバデバイスプロセッサには最適な表現を判定するための時間がなく、したがって、最低ビットレート表現に切り替えることがレシーバデバイスの性能に便益をもたらすかどうかを判定する時間しかない場合がある。一実施形態では、表現を現在の表現から最低ビットレート表現(たとえば、最低コスト表現)に切り替える場合、最低ビットレート表現では受信すべきデータ量が最も少なくなり、それによって、他の表現よりも必要な時間が短くなりかつ必要な受信電力が少なくなるので、必要な時間が最も短くなりならびに/あるいは必要なリソースが最も少なくなる。
判定ブロック306において、レシーバデバイスプロセッサは、最低ビットレートを有する選択された表現に切り替えるコストを求めてもよい。上記で説明したように、レシーバデバイスプロセッサは、認識された切替え状況に関係する特定の性能目標および/または最適化に応じて、最低コスト表現に切り替えるコストを時間(たとえば、最低コスト表現に切り替えるにはどのくらい時間がかかるか)、電力(たとえば、最低コスト表現に切り替えるのにはどのくらいの電力が必要か)、および/または上記で説明したようなその他の因子に換算して求めてもよい。
判定ブロック407において、レシーバデバイスプロセッサは、最低ビットレート表現に切り替えるコストがコストしきい値を超えているかどうかを判定してもよい。図3を参照しながら上記で説明したように、レシーバデバイスプロセッサは、切替えが、レシーバデバイスの性能に便益をもたらすか、あるいはさもなければ1つもしくは複数の性能目標および/または最適化を実現するときにのみ表現を切り替えればよい。一実施形態では、選択された表現は最低コスト表現であるので、ブロック306において求められたコストは、別の表現に切り替えるための最低コストを表してもよく、それによって、レシーバデバイスプロセッサは、最低ビットレート表現に切り替えるコストがコストしきい値を超えていると判定した場合、他の表現は最低ビットレート表現以上のコストを有する可能性が高いので他の表現に切り替えることから便益を得られない場合がある。
レシーバデバイスプロセッサは、最低ビットレート表現に切り替えるコストがコストしきい値を超えていると判定したときには(すなわち、判定ブロック407=「Yes」)、ブロック312において進行中のダウンロードを継続してもよい。レシーバデバイスプロセッサは、最低ビットレート表現に切り替えるコストがコストしきい値を超えていないと判定したときには(すなわち、判定ブロック407=「No」)、ブロック408において、現在のセグメントの現在の表現での進行中のダウンロードを取り消すための取消し要求をサーバに送信してもよい。HTTPの場合のように取消し機能がない実施形態では、レシーバデバイスプロセッサは、現在のセグメントの現在の表現でのダウンロードを停止するために単にTCPティアダウンを実行してもよい。
ブロック410において、レシーバデバイスプロセッサは、現在のセグメントの最低ビットレート表現のダウンロードを要求してもよい。一実施形態では、レシーバデバイスプロセッサは、HTTPサーバとの新しいTCP接続を確立してもよく、現在のセグメントの最低ビットレート表現のダウンロードを要求してもよい。
図5は、切替え状況を認識したことに応答して1つもしくは複数の性能目標および/または最適化を実現する場合がある最高ビットレート表現を判定するためにレシーバデバイス上で動作するプロセッサによって実施されてもよい方法実施形態500を示す。方法500の動作は、図3を参照しながら上で説明した方法300の動作の実施形態を実現する。
ブロック302において、レシーバデバイスプロセッサは、図3を参照しながら上記で説明したように現在のセグメントの現在の表現でのダウンロード中に切替え状況を認識する場合がある。一実施形態では、レシーバデバイスプロセッサは、現在の表現よりも高いかまたは低いビットレートを有する表現に切り替えることがレシーバデバイスに便益をもたらす場合があることを切替え状況が示すとき(たとえば、帯域幅が急激に広くなるかまたは狭くなったとき、レシーバデバイスが低電力状態に入ったとき、レシーバデバイスが充電器に接続されたとき、あるいは1つもしくは複数の性能目標および/または最適化に影響を与える場合がある様々な他の事象が発生したとき)に方法500を実行してもよい。
ブロック304において、レシーバデバイスプロセッサは、切替え状況に基づくコストしきい値を求めてもよい。上述のように、レシーバデバイスプロセッサは、切替え状況に関係する1つもしくは複数の性能目標および/または最適化に基づくコストしきい値を求めてもよい。
ブロック502において、レシーバデバイスプロセッサは、現在のセグメントに利用できる表現の順位リストをビットレートの降順に生成してもよい。一実施形態では、ブロック502におけるセグメントに利用できる表現の順位リストの生成は、ビデオストリームのダウンロードの開始時またはレシーバデバイスプロセッサがコンテンツ表現のすべてのソースを通知される別の時点など、切替え状況が生じる前に実行されてもよい。
ブロック504において、レシーバデバイスプロセッサは、表現の順位リストにおける次の順位である表現を選択してもよい。一実施形態では、レシーバデバイスプロセッサはまず、リストにおいて最高ビットレートを有する表現を選択してもよく、その後ビットレートの高い順に他の表現を選択してもよい。一実施形態では、レシーバデバイスプロセッサは、利用可能な表現をビットレートの降順に反復的にチェックしてもよい。切替え状況が帯域幅が急激に広くなったことに起因するとき、プロセッサは、利用可能な表現のチェックを最高ビットレートから開始してもよい。切替え状況が帯域幅が急激に狭くなったことに起因するとき、プロセッサは、利用可能な表現のチェックを、現在の表現のビットレートよりも低いビットレートを有する表現から開始してもよい。
ブロック306において、レシーバデバイスプロセッサは、選択された表現に切り替えるコストを求めてもよい。判定ブロック308において、レシーバデバイスプロセッサは、選択された表現に切り替えるコストがコストしきい値を超えているかどうかを判定してもよい。一実施形態では、レシーバデバイスプロセッサは、順位リストにおける表現を選択する際、上述のようにレシーバデバイスが選択された表現に切り替えることによって便益を得る可能性があるかどうかを判定するために選択された各表現を試験してもよい。
レシーバデバイスプロセッサは、選択された表現に切り替えるコストがコストしきい値を超えていないと判定したときには(すなわち、判定ブロック308=「No」)、ブロック408において、図4を参照しながら上記で説明したように、現在のセグメントの現在の表現での進行中のダウンロードを取り消すための取消し要求をサーバに送信してもよい。たとえば、レシーバデバイスプロセッサは、現在のセグメントの現在の表現でのダウンロードを停止するためにTCPティアダウンを実行してもよい。レシーバデバイスプロセッサは、ブロック410において現在のセグメントの選択された表現でのダウンロードを要求してもよい。
レシーバデバイスプロセッサは、選択された表現に切り替えるコストがコストしきい値を超えていると判定したときには(すなわち、判定ブロック308=「Yes」)、判定ブロック506において表現の順位リストにおける各表現が選択されたかどうかを判定してもよい。言い換えれば、レシーバデバイスプロセッサは、選択された表現に切り替えるコストがコストしきい値を超えていないと判定するまで、またはすべての表現が評価されるまで、表現の順位リストにおける各表現を順次選択してもよい。
レシーバデバイスプロセッサは、順位リスト内に評価すべき別の表現があると判定したときには(すなわち、判定ブロック506=「No」)、ブロック504において順位リストにおける次の表現を選択し、上述のブロック306および308における評価を繰り返してもよい。
レシーバデバイスプロセッサは、表現の順位リストにおける各表現が選択されたと判定したときには(すなわち、判定ブロック506=「Yes」)、ブロック312において進行中のダウンロードを継続してもよく、その場合、上述のメインレート選択アルゴリズムの動作を実行することによって切替え状況の原因である問題が対処される。
さらなる実施形態(図示せず)では、レシーバデバイスプロセッサは、レシーバデバイスがリストにおける選択された表現のうちの1つに切り替えることによって1つもしくは複数の性能目標および/または最適化に便益をもたらすかあるいはさもなければこれらの性能目標および/または最適化を実現する可能性があるかどうかを判定するのに十分な時間を有するときに方法500の動作を実行してもよい。一実施形態では、レシーバデバイスプロセッサは、表現の順位リストにおける各表現を試験するのに十分な時間がないと判定したときには、図4を参照しながら上記で説明したように方法400の動作を実行してもよい。
図6は、現在のセグメントに関する表現を切り替えるのに必要な時間を表すタイムライン図600である。一実施形態では、レシーバデバイスプロセッサは、帯域幅が急激に狭くなることによって生じたプレイアウト停止の保留状態を認識したことに応答して、プレイアウト停止を回避するために現在のセグメントの現在ダウンロード中の表現からより低いビットレートを有する表現に切り替えるのに十分な時間があるかどうかを判定してもよい。レシーバデバイスプロセッサは、この判定を下すために、図6に示す表現を切り替えるのに必要な様々な動作を実行するのに必要な時間を推定してもよい。表現を切り替えるプロセスは、第1の時間604(たとえば、時間T1)に、(たとえば、TCPティアダウンプロセスの一部として)HTTPサーバに取消しメッセージを送信することによって開始してもよい。HTTPサーバに送信される取消しメッセージについては、レシーバデバイスが第1の時間604に取消し要求を送信する瞬間から、HTTPサーバが第2の時間606(たとえば、時間T2)に取消し要求を受信し処理するまでに、推定で2分の1ラウンドトリップタイム(1/2RTT)だけかかる場合がある。
レシーバデバイスプロセッサが取消し要求を送信してからHTTPサーバが取消し要求を受信するまでの間(たとえば、時間T1から時間T2の間)、HTTPサーバは、レシーバデバイスが第3の時間608(たとえば、時間T3)に受信する現在のセグメントデータ(たとえば、インフライトデータ)をレシーバデバイスに送信し続ける場合がある。たとえば、HTTPサーバは、現在のセグメントに関するデータをルータに送信する場合があり、ルータは、HTTPサーバが現在の表現での現在のセグメントに関するダウンロードデータの送信を停止しているかどうかにかかわらず、現在のセグメントを現在の表現でダウンロードできるようにインフライトデータをレシーバデバイスに送信し続ける場合がある。その結果、レシーバデバイスは、レシーバデバイスが最終的に第4の時間610(たとえば、時間T4)に新しい表現での現在のセグメントに関するダウンロードデータの受信を開始するまで第3の時間608(すなわち、時間T3)からインフライトデータのすべてを破棄する場合がある。一例として、データパイプラインからインフライトデータをフラッシュするのに必要な時間(たとえば、第3の時間608から第4の時間610の間の期間)は、約2ラウンドトリップタイム(たとえば、2RTT)である場合がある。
一実施形態では、現在のセグメントの現在の表現での進行中のダウンロードを取り消すのに必要な時間は、レシーバデバイスが第1の時間T1604に取消し要求を送信してからレシーバデバイスが第4の時間T4610に現在のセグメントの新しい表現での受信を開始するまでの時間を含む、時間T1から時間T4の間の期間612であってもよい。別の実施形態では、現在のセグメントを新しい表現でダウンロードするのに必要な時間は、第4の時間T4610から現在のセグメントの新しい表現でのダウンロードが終了する第5の時間T5614までの間の期間616であってもよい。したがって、表現を新しい表現に切り替えるコストは、第1のダウンロードを取り消して異なる表現のダウンロードを要求するための期間612と異なる表現のダウンロードを完了するための期間616との和として算出される、表現を切り替えるのに必要な総時間であってもよい。表現を切り替えるコストを時間に換算して算出することについて、図7を参照しながら以下でさらに説明する。
タイムライン図600は、時間に関する表現を切り替えるコストを示すが、レシーバデバイスプロセッサは、表現を切り替えるコストを新しい表現に切り替えるのに必要な電力などの他の単位に換算して算出する場合があることが予期される。
図7は、表現を切り替えるのに必要な総時間が時間コストしきい値を超えていないときにプレイアウト停止を回避するために、表現を切り替えるためにレシーバデバイスプロセッサによって実施されてもよい方法実施形態700を示す。方法700の動作は、図3を参照しながら上で説明した方法300の動作の実施形態を実現する。
ブロック702において、レシーバデバイスプロセッサは、現在のセグメントの現在の表現での進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識する場合がある。言い換えれば、レシーバデバイスプロセッサは、現在のセグメントをダウンロードするときに、現在のセグメントの一部または全体がプレイアウトに利用できるようになる前にプレイアウトバッファが空になること(たとえば、メディアがすべて再生されたこと)を検出してもよい。
一実施形態では、レシーバデバイスプロセッサは、プレイアウト停止の保留状態を認識するために、図2を参照しながら上記で説明したように、帯域幅推定値、現在の再生時間、再生モデル(たとえば、部分的にダウンロードされたセグメントをプレイアウトできるかどうか)、および総メディアバッファ持続時間などの、いくつかの入力変数を取得してもよい。上記で説明したように、レシーバデバイスプロセッサは、この情報を構成パラメータまたはオンデバイス測定から取得してもよい。
一実施形態では、レシーバデバイスプロセッサは、停止する傾向を予測したときには、セグメントが部分的にダウンロードされたときにプレイアウトされる可能性があると仮定してもよく、その場合、レシーバデバイスプロセッサは、再生が現在のセグメントの終了位置に到達する前に現在のセグメントが完全にダウンロードされる限り停止は生じないと判定してもよい。さらなる実施形態では、レシーバデバイスプロセッサは、プレイアウト停止が生じるかどうかを判定する際に控えめな予測モデルを使用してもよい。
一実施形態では、レシーバデバイスプロセッサは、プレイアウト停止の保留状態を予測するために以下の情報、すなわち、現在のパケットレート帯域幅推定値(「pkerrate」)、ダウンロード中のセグメントのプレイアウト停止開始時間および終了時間(「segment_start_time」および「segment_end_time」)、MPDから取得した現在のセグメントの公称表現ビットレート(「rep_bit_rate」)、キューイング遅延をカウントしないレシーバデバイスとHTTPサーバとの間の推定ラウンドトリップタイム(「rtt」)、およびpkerrateとRTTの積として算出される帯域幅-遅延-積(「bdp」)を取得してもよい。レシーバデバイスプロセッサは、あらゆるアクティブTCP接続からすべてのレシーバ-バッファサイズの総計(「total_rcvbuf」)を求めてもよく、この場合、「アクティブ」TCP接続は、進行中のデータ転送を有するTCP接続を指す場合がある。レシーバデバイスプロセッサは、メディアプレゼンテーションの現在の再生時間(「current_ptime」)、すでにダウンロードされた現在のセグメント中のバイト数(「bytes_downloaded」)、および現在のセグメントが属する適応セットの相対重み(「as_weight」)を求めてもよい。一実施形態では、as_weightは、0から1の間の値であってもよい。レシーバデバイスプロセッサは、適応セットに関する相対重み(「as_pkerrate」)をpkerrateとas_weightの積として求めてもよい。
一実施形態では、レシーバデバイスプロセッサは、疑似コードで示される以下のアルゴリズムにおいて上述の情報を使用することによってプレイアウト停止を予測してもよい。
segment_duration = segment_end_ptime - segment_start_ptime;
nominal_segment_size = rep_bit_rate * segment_duration;
bytes_available = as_pkerrate * (segment_end_ptime - current_ptime);
bytes_needed = nominal_segment_size - bytes_downloaded;
if (bytes_available < bytes_needed)
stall_prediction = true;
言い換えれば、レシーバデバイスプロセッサは、プレイアウトに利用できるバイト数(たとえば、「bytes_available」)がプレイアウトを円滑に行うのに必要なバイト数(たとえば、「bytes_needed」)よりも少ないときにプレイアウト停止を予測してもよい(たとえば、「stall_prediction = true」)。
図7に戻るとわかるように、レシーバデバイスプロセッサは、ブロック704において、プレイアウト停止の保留状態に基づく時間コストしきい値を求めてもよい。一実施形態では、時間コストしきい値は、レシーバデバイスプロセッサが現在のセグメントの再生を開始するまでの時間などの、プレイアウト停止が生じるまでの時間を表してもよい。さらなる実施形態では、時間コストしきい値は複数の条件/しきい値を含んでもよい。たとえば、時間コストしきい値では、現在のセグメントの異なる表現での再ダウンロードが特定の時間よりも前に開始することが必要になる場合があり、また、ダウンロードが別の特定の時間よりも前に終了することが必要になる場合がある。そのような例では、表現を切り替えることによって、現在のセグメントの異なる表現でのダウンロードが、レシーバデバイスプロセッサが現在のセグメントのプレイアウトを始める前に開始するときに限り、かつ現在のセグメントの異なる表現でのダウンロードが、プレイアウトが現在のセグメントの終了点に達する前に終了するときに限りプレイアウト停止が回避される場合がある。
ブロック705において、レシーバデバイスプロセッサは、現在のセグメントに利用できる表現の順位リストを、現在の表現よりも低いビットレートを有する各表現について降順に生成してもよい。一実施形態では、レシーバデバイスプロセッサは、レシーバデバイスプロセッサが表現を切り替えてもよい利用可能な最良の表現を判定するために利用できる表現をビットレートの降順に反復的にチェックしてもよい。
別の実施形態では、レシーバデバイスプロセッサは、表現の順位リストを最低ビットレートを有する表現のみを含むように生成してもよい。そのような実施形態では、レシーバデバイスプロセッサは、図4を参照しながら上記で説明したように最低コスト表現に切り替えるとプレイアウト停止が回避されるかどうかを迅速に判定する場合がある。
図5のブロック502を参照しながら上記で説明したように、ブロック705におけるセグメントに利用できる表現の順位リストの生成は、ビデオストリームのダウンロードの開始時またはレシーバデバイスプロセッサがコンテンツ表現のすべてのソースを通知される別の時点など、切替え状況が生じる前に実行されてもよい。
ブロック504において、レシーバデバイスプロセッサは、表現の順位リストにおける次の順位である表現を選択してもよい。一実施形態では、レシーバデバイスプロセッサはまず、リストにおいて最高ビットレートを有する表現を選択してもよく、その後ビットレートの高い順に他の表現を選択してもよい。
ブロック706において、レシーバデバイスプロセッサは、現在のセグメントの現在の表現での進行中のダウンロードを取り消すコストを求めてもよい。一実施形態では、ダウンロードを取り消すコストは、2つの部分、すなわち、HTTPサーバとの新しいTCP接続をティアダウンして新しいTCP接続をセットアップするのに必要な時間(「RTT間接費」)およびデータパイプラインからインフライトデータをフラッシングするのに必要な時間(「インフライトデータ間接費」)を含む場合がある。
一実施形態では、RTT間接費は、HTTPサーバとのTCP接続をティアダウンする/リセットするのに必要な時間を含む場合があり、このティアダウン/リセットは、HTTPサーバに達するのにほぼ2分の1RTTかかる取消しメッセージをHTTPサーバに送信することを含む場合がある。RTT間接費は、現在のセグメントの選択された表現でのダウンロードを要求するためにHTTPサーバとの新しいTCP接続を開始するのに必要な時間を含む場合がある。新しいTCP接続を開始するために、レシーバデバイスプロセッサおよびHTTPサーバが新しい接続を確立する(たとえば、ハンドシェイク手順を受ける)場合があり、これには1RTT〜2RTTかかる場合がある。さらに、新しいTCP接続は、「スロースタート」アルゴリズムを実装する場合があり、すなわち、TCP接続は、ほぼ2RTT〜3RTTかけて最大機能まで徐々にランプする。さらなる実施形態では、上述のRTT間接費の1つまたは複数の態様は、既存のTCP接続をティアダウンしHTTPサーバとの新しいTCP接続を開始するのに必要な時間を控えめに推定するのに使用される追加の時間を含む場合がある(たとえば、緩衝)。
インフライトデータ間接費は、図6を参照しながら上記で説明したようにデータパイプラインからインフライトデータをフラッシングするのに必要な時間を含む場合がある。したがって、インフライトデータは、レシーバデバイスにおいて破棄されるにもかかわらず、インフライトデータを受信し破棄するには時間と帯域幅がかかる場合があり、それによって、現在のセグメントを異なる表現で再ダウンロードするのに必要な間接費が増大する。
ブロック708において、レシーバデバイスプロセッサは、現在のセグメントを選択された表現でダウンロードするコストを求めてもよい。一実施形態では、レシーバデバイスプロセッサは、現在のセグメントの選択された表現でのサイズを選択された表現のビットレートと現在のセグメントのプレイアウト開始時間および終了時間との積として算出してもよい。レシーバデバイスプロセッサは次いで、現在のセグメントの選択された表現でのサイズを現在のセグメントが属する適応セットに関する推定帯域幅で除算することによって、現在のセグメントを選択された表現でダウンロードするのに必要な時間(たとえば、現在のセグメントをダウンロードするコスト)を算出してもよい。
ブロック710において、レシーバデバイスプロセッサは、現在のセグメントを選択された表現でダウンロードするコストと現在のセグメントの現在の表現でのダウンロードを取り消すコストとの和に基づく総時間コストを算出してもよい。
別の実施形態(図示せず)では、レシーバデバイスプロセッサは、総時間コストが時間の単位(たとえば、秒またはミリ秒)になるように上記の計算の様々な単位を時間の単位に変換してもよい。
判定ブロック712において、レシーバデバイスプロセッサは、総時間コストが時間コストしきい値を超えているかどうか(たとえば、表現を選択された表現に切り替えることによってプレイアウト停止が回避される場合があるかどうか)を判定してもよい。一実施形態では、レシーバデバイスプロセッサは、表現を選択された表現に切り替えるとプレイアウト停止が完全に回避される可能性が高いときにのみ表現を切り替えることがレシーバデバイスの性能に便益をもたらす場合があると判定してもよい。そのような実施形態では、レシーバデバイスプロセッサは、表現を切り替えることによってプレイアウト停止に加えて生じるビットレート/品質の低下が、予想されるプレイアウト停止よりも全体的に悪い影響をユーザエクスペリエンスにもたらす恐れがあることに起因して、プレイアウト停止が回避できないかまたは回避されないことがあるときには表現を切り替えないことが適切である場合があるというポリシーを実施してもよい。
レシーバデバイスプロセッサは、総時間コストが時間コストしきい値を超えていないと判定したときには(すなわち、判定ブロック712=「No」)、ブロック310において、図3を参照しながら上記で説明したように、選択された表現に切り替えてもよい。
レシーバデバイスプロセッサは、総時間コストが時間コストしきい値を超えていると判定したときには(すなわち、判定ブロック712=「Yes」)、判定ブロック506において表現の順位リストにおける各表現が選択されたかどうかを判定してもよい。一実施形態では、レシーバデバイスプロセッサは、プレイアウト停止を回避する現在のセグメントに利用できる最高ビットレートを有する表現を判定するために現在の表現よりも低いビットレートを有する各表現を降順に選択してもよい。
レシーバデバイスプロセッサは、順位リスト内に選択すべき別の表現があると判定したときには(すなわち、判定ブロック506=「No」)、ブロック504において表現の順位リストにおける次の表現を選択してもよい。このプロセスは、表現の順位リストにおける各表現においてレシーバデバイスが選択していない表現がある限りループ状に継続してもよい。
レシーバデバイスプロセッサは、表現の順位リストにおける各表現が選択されたと判定したときには(すなわち、判定ブロック506=「Yes」)、ブロック312において進行中のダウンロードを継続してもよい。言い換えれば、レシーバデバイスプロセッサは、プレイアウト停止の回避を試みなくてもよく、その代わり、メインレート選択アルゴリズムを実行することによって将来のプレイアウト問題を解消してもよい。
図8は、複数の性能目標および/または最適化を実現するために別の表現に切り替えるためにレシーバデバイスプロセッサによって実施されてもよい方法実施形態800を示す。方法800の動作は、図3を参照しながら上で説明した方法300の動作の実施形態を実現する場合がある。
ブロック302において、レシーバデバイスプロセッサは、現在のセグメントの現在の表現でのダウンロード中に切替え状況を認識する場合がある。図3を参照しながら上記で説明したように、プロセッサが、レシーバデバイスの利用可能なリソースの変化に基づいて現在のセグメントのダウンロード中に1つまたは複数の性能目標(たとえば、円滑なプレイアウト、特定の電力消費率、平均ビットレートなど)が損なわれる恐れがあると判定したときに、切替え状況が生じる場合がある。
ブロック802において、レシーバデバイスプロセッサは、切替え状況に基づく複数のコストしきい値を求めてもよい。たとえば、レシーバデバイスプロセッサは、平均ビットレート/プレイアウト品質を維持することと、特定の電力消費量性能目標および円滑なプレイアウトを実現することとを試みてもよい。以下でさらに説明する実施形態では、レシーバデバイスプロセッサは、表現を切り替えることが様々な性能目標および/または最適化を実現するかどうかを判定するために複数のコストしきい値を使用してもよい。
ブロック305において、レシーバデバイスプロセッサは、現在のセグメントの別の表現を選択してもよい。たとえば、レシーバデバイスプロセッサは、現在のセグメントに利用できる最低ビットレートまたは最高ビットレートを有する表現を選択してもよい。図5および図7を参照しながら上記で説明した実施形態では、レシーバデバイスプロセッサは、現在のセグメントに利用できる表現の順位リストを、現在の表現よりも低いビットレートを有する各表現について降順に生成してもよい。この実施形態では、レシーバデバイスプロセッサは、以下にさらに説明するように、切り替える際のコストが複数のコストしきい値のいずれも超えていない表現(もしあれば)を選択するためにビットレートの降順に順位リストにおける表現を反復的にチェックしてもよい。
ブロック804では、レシーバデバイスプロセッサは、複数のコストしきい値のうちでまだ選択されていないコストしきい値を選択し、選択された表現に切り替えるコストが複数のコストしきい値のいずれかを超えているかどうかを判定してもよい。言い換えれば、レシーバデバイスプロセッサは、選択された表現が複数のコストしきい値の各々によって表される性能目標および/または最適化を実現するかどうかを試験してもよい。
ブロック806において、レシーバデバイスプロセッサは、選択されたコストしきい値に基づいて選択された表現に切り替えるコストを求めてもよい。たとえば、レシーバデバイスプロセッサは、(たとえば、図7を参照しながら上記で説明したように)円滑な再生に関する性能目標に関連するコストしきい値を選択する際、選択された表現に切り替えるコストを、現在の表現のダウンロードを取り消して現在のセグメントを選択された表現で再ダウンロードするのに必要な時間に換算して求めてもよい。別の例では、レシーバデバイスプロセッサは、電力消費量に関する性能目標に関連するコストしきい値を選択する際、表現を選択された表現に切り替えるコストを、現在のセグメントのダウンロードを取り消すのに必要な電力および選択された表現での現在のセグメントに関するデータを受信し復号するのに必要な電力に換算して求めてもよい。
判定ブロック808では、レシーバデバイスプロセッサは、選択された表現に切り替えるコストが選択されたコストしきい値を超えているかどうかを判定してもよい。上述のように、レシーバデバイスプロセッサは、切替えが選択されたコストしきい値に関係する性能目標を実現するときにのみある表現に切り替えればよい。
一実施形態では、レシーバデバイスプロセッサは、選択された表現に切り替えたときに複数のコストしきい値のうちのいずれかを超えるかどうかをチェックしてもよい。言い換えれば、レシーバデバイスプロセッサでは、選択された表現に切り替えたときに複数のコストしきい値に関連するあらゆる性能目標を実現しなければならない場合がある。たとえば、レシーバデバイスプロセッサは、選択された表現に切り替えるとプレイアウト停止が回避されるが、電力消費量が多すぎて切替えを行う価値がなくなる場合があると判定してもよい。そのような状況では、切替えによってあらゆる性能目標が実現されるとは限らないので、レシーバデバイスプロセッサは、選択された表現に切り替えないことに決定してもよい。
レシーバデバイスプロセッサは、選択された表現に切り替えるコストが選択されたコストしきい値を超えていると判定したときには(すなわち、判定ブロック808=「Yes」)、ブロック312において進行中のダウンロードを継続してもよい。言い換えれば、レシーバデバイスプロセッサは、現在のセグメントを取り消して再ダウンロードするコストがレシーバデバイスの性能に便益をもたらさないと判定したときには(たとえば、コストが複数のコストしきい値において1つまたは複数のコストしきい値を超えるとき)、メインレート選択アルゴリズムを実行することによって切替え状況を生じさせる問題を解決するために待機してもよい。
レシーバデバイスプロセッサが表現の順位リストを実装する実施形態では、レシーバデバイスプロセッサは、表現の順位リストにおける各表現が複数のコストしきい値のうちのいずれも超えていないかどうかを判定するために順位リストにおける表現の選択を継続してもよい。
レシーバデバイスプロセッサは、選択された表現に切り替えるコストが選択されたコストしきい値を超えていないと判定したときには(すなわち、判定ブロック808=「No」)、判定ブロック810において複数のコストしきい値の各々が選択された表現に関して評価されたかどうかを判定してもよい。
レシーバデバイスプロセッサは、複数のコストしきい値に、選択された表現に対して評価すべき別のコストしきい値が含まれていると判定したときには(すなわち、判定ブロック810=「No」)、ブロック804において複数のコストしきい値における次のコストしきい値を選択してもよい。レシーバデバイスプロセッサは、すべてのコストしきい値が評価されるかまたはレシーバデバイスプロセッサが、選択された表現に切り替えるコストが複数のコストしきい値のうちの少なくとも1つを超えていると判定するまで、上記のようにしてコストしきい値の選択および評価を続行してもよい。
レシーバデバイスプロセッサは、すべてのコストしきい値が選択された表現に対して評価されたと判定したときには(すなわち、判定ブロック810=「Yes」)、図3を参照しながら上記で説明したように、ブロック310において選択された表現に切り替えて表現を選択された表現に切り替えるプロセスを開始してもよい。
図9は、レシーバデバイスプロセッサが、追加のリソースをレシーバデバイスが利用できるときに表現を切り替えるかどうかを判定するためにレシーバデバイスプロセッサによって実施されてもよい方法実施形態900を示す。方法900の動作は、図3を参照しながら上で説明した方法300の動作の実施形態を実現する。
ブロック902において、レシーバデバイスプロセッサは、現在のセグメントの現在の表現での進行中のダウンロード中にレシーバデバイスプロセッサが利用できるリソースが増大することを特徴とする切替え状況を認識する場合がある。たとえば、レシーバデバイスプロセッサは、帯域幅が急激に増大したとき、レシーバデバイスが「高バッテリー」状態で動作しているかまたは壁コンセントに挿入された状態で動作しているとき、およびレシーバデバイスがリソースが急激に増大したことを利用するためにより高いビットレート表現に切り替えるのを可能にする場合がある様々な他の変化がレシーバデバイスの状態に生じたときに、切替え状況を認識することもある。これらの状況およびその他の状況では、利用可能なリソースが増大した場合、レシーバデバイスプロセッサは、表現をより高いビットレートを有する表現に切り替えることによってレシーバデバイスの性能が向上する可能性があるかどうかを判定してもよい。
ブロック304において、レシーバデバイスプロセッサは、現在のセグメントがプレイアウトされるまでの時間などのコストしきい値を切替え状況に基づいて判定してもよい。
ブロック904において、レシーバデバイスプロセッサは、現在のセグメントに利用できる表現の順位リストを、現在の表現よりも低いビットレートを有する各表現について降順に生成してもよい。上記で説明したように、表現の順位リストの生成は、ストリーミングビデオダウンロードの開始時またはレシーバデバイスプロセッサがコンテンツ表現のすべてのソースを通知される別の時点など、切替え状況が生じる前に実施されてもよい。
ブロック504において、レシーバデバイスプロセッサは、表現の順位リストにおける次の順位である表現を選択してもよい。一実施形態では、レシーバデバイスプロセッサは、表現を(たとえば、現在のセグメントに利用できる最高のビットレートを有する表現から始まる)ビットレートの降順に選択してもよく、判定ブロック308を参照しながら上記で説明したように、最高のビットレートを有する表現に切り替えるコストがコストしきい値を超えないようにその表現を識別することを試みるために表現を降順に反復的にチェックしてもよい。
ブロック306において、レシーバデバイスプロセッサは、選択された表現に切り替えるコストを求めてもよい。レシーバデバイスプロセッサが追加のリソースを利用できることをレシーバデバイスプロセッサが認識したにもかかわらず、依然として選択された表現への切替えに関連するコストが存在する場合がある。たとえば、表現を切り替えることによって時間、バッテリー電力などが失われることがある。
判定ブロック308において、レシーバデバイスプロセッサは、選択された表現に切り替えるコストがコストしきい値を超えているかどうかを判定してもよい。たとえば、レシーバデバイスプロセッサは、帯域幅が急激に増大したことを認識することがあるが、表現をより高いビットレートを切り替えた場合、現在のセグメントの選択された表現でのダウンロードを取り消し、再開し、終了するための十分な時間がないのでプレイアウト停止が生じる可能性があると最終的に判定することがある。
レシーバデバイスプロセッサは、選択された表現に切り替えるコストがコストしきい値を超えていないと判定したときには(すなわち、判定ブロック308=「No」)、ブロック310において、取消し要求を送信して、現在のセグメントの選択された表現でのダウンロードを要求することなどによって、選択された表現に切り替えてもよい。
レシーバデバイスプロセッサは、選択された表現に切り替えるコストがコストしきい値を超えていると判定したときには(すなわち、判定ブロック308=「Yes」)、判定ブロック506において、図5を参照しながら上記で説明したように表現の順位リストにおける各表現が選択されたかどうかを判定してもよい。
レシーバデバイスプロセッサは、表現の順位リスト内に評価すべき別の表現があると判定したときには(すなわち、判定ブロック506=「No」)、ブロック504において順位リストにおける次の表現を選択してもよい。一実施形態では、レシーバデバイスプロセッサは、順位リストにおけるすべての表現が評価されるまで、あるいはプロセッサが、選択された表現に切り替えるコストがコストしきい値を超えていないと判定するまで、表現の選択および評価を実行することを継続してもよい。
レシーバデバイスプロセッサは、表現の順位リストにおけるすべての表現が選択され、評価されたと判定したときには(すなわち、判定ブロック506=「Yes」)、ブロック312において進行中のダウンロードの現在の動作を継続してもよい。この場合、レシーバデバイスプロセッサは、レシーバデバイスが追加のリソースを利用できるにもかかわらず、選択された表現とは無関係に、現在のセグメントを取り消して再ダウンロードするコストがレシーバデバイスの性能に便益をもたらさないと判定してもよく、次のセグメント境界においてメインレート選択アルゴリズムを実行することによって次のセグメントが要求されたときにレシーバデバイスが利用できる追加のリソースを利用するために待機してもよい。
図10は、レシーバデバイスプロセッサが帯域幅が急激に増大したことを認識したときに、現在のセグメントを現在の表現および異なる表現で同時にダウンロードするかどうかを判定するためにレシーバデバイス上で動作するプロセッサによって実施されてもよい方法実施形態1000を示す。方法1000の動作は、図3を参照しながら上で説明した方法300の動作の実施形態を実現する。
ブロック1002において、レシーバデバイスプロセッサは、現在のセグメントの現在の表現でのダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識する場合がある。
ブロック304において、レシーバデバイスプロセッサは、図3を参照しながら上記で説明したように切替え状況に基づくコストしきい値を求めてもよい。たとえば、レシーバデバイスプロセッサは、帯域幅の急激な増大を認識したことに応答して、現在のセグメントがプレイアウトされるまでの時間を求めてもよくならびに/あるいは表現を切り替えるのに利用できる電力の量を求めてもよい。
ブロック305において、レシーバデバイスプロセッサは、現在のセグメントに利用できる最高ビットレートを有する表現などの、現在のセグメントの別の表現を選択してもよい。レシーバデバイスプロセッサが現在のセグメントに利用できる表現の順位リストを生成する上述の実施形態では、レシーバデバイスプロセッサは、表現の順位リストにおける次の表現を選択することなどの、図9に示す方法900のブロック904を参照しながら上記で説明した動作と同様の動作を実行してもよい。
ブロック1004において、レシーバデバイスプロセッサは、現在のセグメントを現在の表現および選択された表現で同時にダウンロードするコストを求めてもよい。この動作では、レシーバデバイスプロセッサは、レシーバデバイスプロセッサが、現在のセグメントの現在の表現でのダウンロードを取り消す必要なしに現在のセグメントのプレイアウトを現在の表現から選択された表現に切り替えるのを可能にするために、現在のセグメントを現在の表現および選択された表現で同時にダウンロードするのに急激に増大した帯域幅を活用すると有利であるかどうかを判定してもよい。レシーバデバイスプロセッサは、現在のセグメントの現在の表現でのダウンロードを取り消さずに同時に現在のセグメントを選択された表現でダウンロードすることによって、ダウンロードを取り消すコスト(たとえば、TCP接続をティアダウンするのに必要な時間)およびダウンロードを取り消すことによってプレイアウト停止を生じさせる可能性を回避してもよい。
判定ブロック1006において、レシーバデバイスプロセッサは、現在のセグメントを同時にダウンロードするコストがコストしきい値を超えているかどうかを判定してもよい。たとえば、レシーバデバイスプロセッサは、レシーバデバイスのバッテリー電力が低くなる場合があり、かつ2つの表現をダウンロードし復号するとレシーバデバイスのバッテリーに不要な負担をかける場合があるので、2つの表現を同時にダウンロードすることはレシーバデバイスに便益をもたらさないと判定してもよい。
レシーバデバイスプロセッサは、現在のセグメントを同時にダウンロードするコストがコストしきい値を超えていないと判定したときには(すなわち、判定ブロック1006=「No」)、ブロック1008において、引き続き現在のセグメントを現在の表現でダウンロードしつつ選択された表現での現在のセグメントに関するダウンロード要求をHTTPサーバに送信することによって、進行中のダウンロードを継続しつつ選択された表現のダウンロードを開始してもよい。
ブロック1010において、レシーバデバイスプロセッサは、現在のセグメントを現在の表現および選択された表現で同時にダウンロードしつつ現在のセグメントのプレイアウトを選択された表現に切り替えてもよい。一実施形態では、レシーバデバイスプロセッサは、選択された表現での現在のセグメントがセグメント境界などの適切な時点でプレイアウトに利用できるようになった直後にプレイアウトを選択された表現での現在のダウンロードに切り替えてもよい。一実施形態では、レシーバデバイスプロセッサは、選択された表現での現在のセグメントのうちの十分な部分がダウンロードされるまで現在のセグメントの現在の表現での再生を開始してもよく、かつレシーバデバイスプロセッサは、その時点でプレイアウトを選択された表現に切り替えてもよい。
レシーバデバイスプロセッサは、現在のセグメントを同時にダウンロードするコストがコストしきい値を超えていると判定したときには(すなわち、判定ブロック1006=「Yes」)、ブロック312において進行中のダウンロードを継続し、次のセグメント境界においてメインレート選択アルゴリズムを実行することによって急激に増大した帯域幅を活用してもよい。
一実施形態では、レシーバデバイスプロセッサは、順位リストにおける各表現が評価されるまで、または現在のセグメントを現在の表現および特定の表現で同時にダウンロードするコストがコストしきい値以下になるまで、表現の順位リストにおける表現のコストしきい値に対する評価を継続してもよい。
様々な態様は、様々なモバイルコンピューティングデバイスのいずれにも実装することができ、その一例が図11に示される。モバイルコンピューティングデバイス1100は、タッチスクリーンコントローラ1104および内部メモリ1106に結合されたプロセッサ1102を含む場合がある。プロセッサ1102は、汎用または特定の処理タスクに指定された1つもしくは複数のマルチコア集積回路であってもよい。内部メモリ1106は揮発性もしくは不揮発性メモリであってもよく、また、安全保護および/もしくは暗号化メモリであっても、または非安全保護および/もしくは非暗号化メモリであっても、あるいはそれらの任意の組合せであってもよい。タッチスクリーンコントローラ1104およびプロセッサ1102は、抵抗感知タッチスクリーン、容量感知タッチスクリーン、赤外線感知タッチスクリーンなどの、タッチスクリーンパネル1112に結合される場合もある。加えて、モバイルコンピューティングデバイス1100のディスプレイは、タッチスクリーン機能を有する必要はない。
モバイルコンピューティングデバイス1100は、互いに結合され、かつ/またはプロセッサ1102に結合された、通信を送信および受信するための1つまたは複数の無線信号トランシーバ1108(たとえば、Peanut、Bluetooth(登録商標)、Zigbee(登録商標)、Wi-Fi、RF無線など)と、アンテナ1110とを有する場合がある。トランシーバ1108およびアンテナ1110は、様々なワイヤレス送信のプロトコルスタックおよびインターフェースを実装するために、上述の回路とともに使用される場合がある。モバイルコンピューティングデバイス1100は、セルラーネットワークを介する通信を可能にし、プロセッサに結合されたセルラーネットワークワイヤレスモデムチップ1116を含む場合がある。
モバイルコンピューティングデバイス1100は、プロセッサ1102に結合された周辺デバイス接続インターフェース1118を含む場合がある。周辺デバイス接続インターフェース1118は、1つのタイプの接続を受け入れるように単独で構成される場合があるか、または、USB、FireWire、Thunderbolt、もしくはPCIeなどの様々なタイプの物理接続および通信接続を共通もしくはプロプライエタリに受け入れるように、構成される場合がある。周辺デバイス接続インターフェース1118は、単独で構成された周辺デバイス接続ポート(図示せず)に結合される場合もある。
モバイルコンピューティングデバイス1100は、オーディオ出力を提供するためのスピーカ1114を含む場合もある。モバイルコンピューティングデバイス1100は、本明細書で説明された構成要素のすべてまたはいくつかを収容するための、プラスチック、金属、または材料の組合せから構築された筐体1120を含む場合もある。モバイルコンピューティングデバイス1100は、使い捨てまたは充電可能なバッテリーなどの、プロセッサ1102に結合された電源1122を含む場合もある。充電可能なバッテリーは、モバイルコンピューティングデバイス1100の外部にある電源から充電電流を受けるために、周辺デバイス接続ポートに結合される場合もある。モバイルコンピューティングデバイス1100は、ユーザ入力を受け取るための物理ボタン1124を含む場合もある。モバイルコンピューティングデバイス1100は、モバイルコンピューティングデバイス1100をオンオフするための電源ボタン1126を含む場合もある。
前述の方法の説明およびプロセスフロー図は、単に例示的な例として提示され、様々な実施形態のステップが提示された順序で実行されなければならないことを必要とする、または意味することは意図されていない。当業者によって理解されるように、前述の実施形態におけるステップの順序は、任意の順序において実行されてもよい。「その後」、「次いで」、「次に」などの単語は、ステップの順序を制限することを意図しておらず、これらの単語は単に、方法の説明を通じて読者を導くために使用される。さらに、たとえば、冠詞「a」、「an」、または「the」を用いる、単数形における特許請求の範囲の要素への任意の参照は、要素を単数形に限定するものとして解釈されるべきではない。
本明細書で開示された実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装されてもよい。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的構成要素、ブロック、モジュール、回路、およびステップについてそれらの機能の観点から概略的に上記で説明した。そのような機能がハードウェアとして実装されるか、それともソフトウェアとして実装されるかは、特定の応用分野およびシステム全体に対して課される設計制限に依存する。当業者は、説明された機能を各々の特定の用途のために様々な方法で実装してもよいが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
本明細書において開示されている態様に関連して説明されている様々な実例論理、論理ブロック、モジュールおよび回路を実現するために使用されるハードウェアは、本明細書において説明されている機能を実施するために設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブル論理デバイス、離散ゲートまたはトランジスタ論理、離散ハードウェア構成要素、またはそれらの任意の組合せを使用して実現または実施してもよい。汎用プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、1つまたは複数のマイクロプロセッサとDSPコア、あるいは任意の他のそのような構成として実装されてもよい。あるいは、いくつかのステップまたは方法は、所与の機能に固有の回路網によって実行されてもよい。
1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装されてもよい。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読媒体上または非一時的プロセッサ可読媒体上の1つまたは複数の命令またはコードとして記憶されてもよい。本明細書で開示する方法またはアルゴリズムのステップは、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に常駐する場合があるプロセッサ実行可能ソフトウェアモジュール内で具現化されてもよい。非一時的なサーバ可読のコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であってよい。限定ではなく例として、そのような非一時的なサーバ可読のコンピュータ可読媒体またはプロセッサ可読媒体は、RAM、ROM、EEPROM、FLASHメモリ、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用される場合があり、かつコンピュータによってアクセスされる場合がある任意の他の媒体を含んでもよい。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(「CD」)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、非一時的なサーバ可読のコンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれる場合がある、非一時的なサーバ可読のプロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の、1つまたは任意の組合せ、またはそのセットとして存在してもよい。
開示された実施形態の前述の説明は、任意の当業者が本発明を作成または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は当業者には容易に明らかとなり、本明細書で定義した一般的な原理は、本発明の要旨または範囲から逸脱することなく他の実施形態に適用されてもよい。したがって、本発明は、本明細書に示す実施形態に限定されることを意図しておらず、以下の特許請求の範囲、ならびに本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
100 通信ネットワークシステム
102 レシーバデバイス
104 基地局
108 サーバ
109 ルータ
110 インターネット
112 メディアサーバ
114 ワイヤレスアクセスポイント
116 メディアキャプチャデバイス
600 タイムライン図
604 第1の時間
606 第2の時間
608 第3の時間
610 第4の時間
612 期間
616 期間
1100 モバイルコンピューティングデバイス
1102 プロセッサ
1104 タッチスクリーンコントローラ
1106 内部メモリ
1108 トランシーバ
1112 タッチスクリーンパネル
1116 セルラーネットワークワイヤレスモデムチップ
1118 周辺デバイス接続インターフェース
1120 筐体
1122 電源
1124 物理ボタン
1126 電源ボタン
T1 第1の時間
T4 第4の時間
T5 第5の時間

Claims (28)

  1. コンテンツの現在のセグメントの現在の表現での進行中のダウンロードを取り消し、切替え状況を認識したことに応答して前記現在のセグメントの別の表現に切り替えるかどうかをレシーバデバイス上で判定する方法であって、
    前記現在のセグメントの別の表現を選択するステップと、
    前記選択された表現に切り替えるコストを求めるステップと、
    前記選択された表現に切り替える前記コストが前記切替え状況に基づくコストしきい値を超えているかどうかを判定するステップと、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップ、または
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップ
    のうちの一方を実行するステップとを含む方法。
  2. 前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識するステップであって、
    前記切替え状況に基づく前記コストしきい値は、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むステップをさらに含み、
    前記選択された表現に切り替えるコストを求めるステップは、
    前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めるステップと、
    前記現在のセグメントを前記選択された表現でダウンロードするコストを求めるステップと、
    前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出するステップと、
    前記総時間コストが前記時間コストしきい値を超えているかどうかを判定するステップとを含む、請求項1に記載の方法。
  3. 切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップは、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップを含み、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップは、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップを含む、請求項2に記載の方法。
  4. 前記切替え状況に基づく複数のコストしきい値を求めるステップと、
    前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するステップと、
    前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めるステップであって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するステップは、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定するステップを含むステップと、
    前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定するステップと、
    前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するステップとをさらに含み、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップは、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えるステップを含む、請求項1に記載の方法。
  5. 前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成するステップであって、前記現在のセグメントの別の表現を選択するステップは、表現の前記順位リストにおける次の表現を選択するステップを含むステップと、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するステップと、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するステップ、または
    表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続するステップ
    のうちの一方を実行するステップとをさらに含む、請求項1に記載の方法。
  6. 前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスが利用できるリソースが増大することを特徴とする切替え状況を認識するステップと、
    前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成するステップであって、前記現在のセグメントの別の表現を選択するステップは、表現の前記順位リストにおける次の表現を選択するステップを含むステップと、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するステップと、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するステップとをさらに含み、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップは、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続するステップを含む、請求項1に記載の方法。
  7. 前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識するステップであって、
    前記選択された表現に切り替えるコストを求めるステップは、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めるステップを含み、
    前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するステップは、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定するステップを含むステップと、
    前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップ、または
    前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えるステップ
    のうちの一方を実行するステップとをさらに含む、請求項1に記載の方法。
  8. メモリと、
    前記メモリに結合され、動作を実施するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備え、前記動作は、
    現在の表現でのコンテンツの現在のセグメントの別の表現を選択することと、
    前記選択された表現に切り替えるコストを求めることと、
    前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定することと、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることと、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続することとを含むレシーバデバイス。
  9. 前記プロセッサは、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
    前記プロセッサは、
    前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むように動作を実行するためのプロセッサ実行可能命令を有するように構成され、
    前記選択された表現に切り替えるコストを求めることは、
    前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めることと、
    前記現在のセグメントを前記選択された表現でダウンロードするコストを求めることと、
    前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出することと、
    前記総時間コストが前記時間コストしきい値を超えているかどうかを判定することとを含む、請求項8に記載のレシーバデバイス。
  10. 前記プロセッサは、ように動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることを含み、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することを含む、請求項9に記載のレシーバデバイス。
  11. 前記プロセッサは、
    前記切替え状況に基づく複数のコストしきい値を求めることと、
    前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することと、
    前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めることと、
    前記選択された表現に切り替えるコストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定することと、
    前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することとをさらに含む動作を実行するためにプロセッサ実行可能命令を有するように構成され、
    前記プロセッサは、
    前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することが、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することと、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えることを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項8に記載のレシーバデバイス。
  12. 前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
    前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成することであって、前記プロセッサは、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、生成することと、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することと、
    表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続することとをさらに含む、請求項8に記載のレシーバデバイス。
  13. 前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
    前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスが利用できるリソースが増大することを特徴とする切替え状況を認識することと、
    前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成することであって、前記プロセッサは、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、生成することと、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することとをさらに含み、
    前記プロセッサは、切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項8に記載の方法。
  14. 前記プロセッサは、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
    前記プロセッサは、
    前記選択された表現に切り替えるコストを求めることが、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めることを含み、
    前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することが、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成され、
    前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
    前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することと、
    前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始することと、
    前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードしつつ前記現在のセグメントのプレイアウトを前記選択された表現に切り替えることとをさらに含む、請求項8に記載のレシーバデバイス。
  15. 現在の表現でのコンテンツの現在のセグメントの別の表現を選択するための手段と、
    前記選択された表現に切り替えるコストを求めるための手段と、
    前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定するための手段と、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段と、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続するための手段とを備えるレシーバデバイス。
  16. 前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識するための手段であって、
    前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含む手段をさらに備え、
    前記選択された表現に切り替えるコストを求めるための手段は、
    前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めるための手段と、
    前記現在のセグメントを前記選択された表現でダウンロードするコストを求めるための手段と、
    前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出するための手段と、
    前記総時間コストが前記時間コストしきい値を超えているかどうかを判定するための手段とを備える、請求項15に記載のレシーバデバイス。
  17. 切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替える手段は、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段を備え、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段は、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段を備える、請求項16に記載のレシーバデバイス。
  18. 前記切替え状況に基づく複数のコストしきい値を求めるための手段と、
    前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するための手段と、
    前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めるための手段であって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するための手段は、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定するための手段を備える手段と、
    前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定するための手段と、
    前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するための手段とをさらに備え、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段は、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えるための手段を備える、請求項15に記載のレシーバデバイス。
  19. 前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成するための手段であって、前記現在のセグメントの別の表現を選択するための手段は、表現の前記順位リストにおける次の表現を選択するための手段を備える手段と、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するための手段と、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するための手段と、
    表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続するための手段とをさらに備える、請求項15に記載のレシーバデバイス。
  20. 前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスプロセッサが利用できるリソースが増大することを特徴とする切替え状況を認識するための手段と、
    前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成するための手段であって、前記現在のセグメントの別の表現を選択するための手段は、表現の前記順位リストにおける次の表現を選択するための手段を備える手段と、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するための手段と、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するための手段とをさらに備え、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段は、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続するための手段を備える、請求項15に記載のレシーバデバイス。
  21. 前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識するための手段であって、
    前記選択された表現に切り替えるコストを求めるための手段は、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めるための手段を備え、
    前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するための手段は、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定するための手段を備える手段と、
    前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段と、
    前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えるための手段とをさらに備える、請求項15に記載のレシーバデバイス。
  22. レシーバデバイスプロセッサに動作を実行させるように構成されたプロセッサ実行可能命令が記憶された非一時的プロセッサ可読記憶媒体であって、前記動作は、
    現在の表現でのコンテンツの現在のセグメントの別の表現を選択することと、
    前記選択された表現に切り替えるコストを求めることと、
    前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定することと、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることと、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続することとを含む非一時的プロセッサ可読記憶媒体。
  23. 前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識することをさらに含む動作を実行させるように構成され、
    前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
    前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むように動作を実行させるように構成され、
    前記選択された表現に切り替えるコストを求めることは、
    前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めることと、
    前記現在のセグメントを前記選択された表現でダウンロードするコストを求めることと、
    前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出することと、
    前記総時間コストが前記時間コストしきい値を超えているかどうかを判定することとを含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
  24. 前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
    切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることを含み、
    切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行させるように構成される、請求項23に記載の非一時的プロセッサ可読記憶媒体。
  25. 前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
    前記切替え状況に基づく複数のコストしきい値を求めることと、
    前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することと、
    前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めることであって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することは、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することを含むことと、
    前記選択された表現に切り替えるコストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定することと、
    前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することとをさらに含み、
    前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えることを含むように動作を実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
  26. 前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は、
    前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成することであって、前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行させるように構成されることと、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することと、
    表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続することとをさらに含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
  27. 前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
    前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスプロセッサが利用できるリソースが増大することを特徴とする切替え状況を認識することと、
    前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成することであって、前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行させるように構成されることと、
    前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
    表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することとをさらに含み、
    前記記憶されたプロセッサ実行可能命令は、切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
  28. 前記記憶されたプロセッサ実行可能命令は、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識することをさらに含む動作を実行させるように構成され、
    前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
    前記選択された表現に切り替えるコストを求めることが、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めることを含み、
    前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することが、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定することを含むように動作を実行させるように構成され、
    前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
    前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することと、
    前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えることとをさらに含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
JP2016546905A 2013-10-07 2014-10-06 メディアストリーミングのための改良された要求取消し方法 Pending JP2016541213A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/047,061 US9756102B2 (en) 2013-10-07 2013-10-07 Request cancellation method for media streaming
US14/047,061 2013-10-07
PCT/US2014/059365 WO2015054160A1 (en) 2013-10-07 2014-10-06 Improved request cancellation method for media streaming

Publications (2)

Publication Number Publication Date
JP2016541213A true JP2016541213A (ja) 2016-12-28
JP2016541213A5 JP2016541213A5 (ja) 2017-10-26

Family

ID=51790870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016546905A Pending JP2016541213A (ja) 2013-10-07 2014-10-06 メディアストリーミングのための改良された要求取消し方法

Country Status (5)

Country Link
US (1) US9756102B2 (ja)
EP (1) EP3055966B1 (ja)
JP (1) JP2016541213A (ja)
CN (1) CN105594182A (ja)
WO (1) WO2015054160A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022545623A (ja) * 2019-08-15 2022-10-28 フル・エルエルシー ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542953B2 (en) * 2014-01-22 2017-01-10 Comcast Cable Communications, Llc Intelligent data delivery
US9860294B2 (en) * 2014-12-24 2018-01-02 Intel Corporation Media content streaming
US10389785B2 (en) * 2016-07-17 2019-08-20 Wei-Chung Chang Method for adaptively streaming an audio/visual material
US10530683B2 (en) * 2016-08-31 2020-01-07 Citrix Systems, Inc. High-quality adaptive bitrate video through multiple links
US10397286B2 (en) * 2017-05-05 2019-08-27 At&T Intellectual Property I, L.P. Estimating network data streaming rate
US10382517B2 (en) 2017-06-09 2019-08-13 At&T Intellectual Property I, L.P. Estimating network data encoding rate
US11109088B2 (en) * 2019-06-07 2021-08-31 Roku, Inc. Content-modification system with unscheduling feature
US11076188B1 (en) * 2019-12-09 2021-07-27 Twitch Interactive, Inc. Size comparison-based segment cancellation
CN111225243B (zh) * 2020-01-20 2021-02-02 中南大学 一种视频块调度方法及系统
WO2021156194A1 (en) * 2020-02-04 2021-08-12 Dolby International Ab Method and device for adaptive playout of media content
US11153581B1 (en) 2020-05-19 2021-10-19 Twitch Interactive, Inc. Intra-segment video upswitching with dual decoding
US11146839B1 (en) * 2020-07-06 2021-10-12 Comcast Cable Communications, Llc Adaptive bitrate streaming

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013130473A1 (en) * 2012-02-27 2013-09-06 Qualcomm Incorporated Improved dash client and receiver with a download rate estimator

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526565B2 (en) * 2003-04-03 2009-04-28 International Business Machines Corporation Multiple description hinting and switching for adaptive media services
US8024483B1 (en) * 2004-10-01 2011-09-20 F5 Networks, Inc. Selective compression for network connections
US7477598B2 (en) * 2005-03-25 2009-01-13 International Business Machines Corporation Adaptive stream switching with minimized switching delay
US7577632B2 (en) * 2006-06-05 2009-08-18 Microsoft Corporation Updating estimated process runtime
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9047236B2 (en) * 2008-06-06 2015-06-02 Amazon Technologies, Inc. Client side stream switching
US9294526B2 (en) * 2009-12-28 2016-03-22 Microsoft Technology Licensing, Llc Managing multiple dynamic media streams
JP5996439B2 (ja) 2010-02-19 2016-09-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Httpストリーミングにおける表現切り替えのための方法及び装置
EP2360923A1 (en) 2010-02-24 2011-08-24 Thomson Licensing Method for selectively requesting adaptive streaming content and a device implementing the method
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
TW201720194A (zh) 2011-06-01 2017-06-01 內數位專利控股公司 內融傳遞網路互連(cdni)機制
CN103139177B (zh) * 2011-11-30 2016-02-17 中国联合网络通信集团有限公司 多媒体数据下载方法和通信系统
WO2013090280A2 (en) 2011-12-15 2013-06-20 Dolby Laboratories Licensing Corporation Bandwidth adaptation for dynamic adaptive transferring of multimedia
US9450997B2 (en) 2012-02-27 2016-09-20 Qualcomm Incorporated Dash client and receiver with request cancellation capabilities
US9571827B2 (en) * 2012-06-08 2017-02-14 Apple Inc. Techniques for adaptive video streaming
US9294531B2 (en) * 2012-07-12 2016-03-22 Futurewei Technologies, Inc. Signaling and processing content with variable bitrates for adaptive streaming
TWI528798B (zh) * 2012-10-11 2016-04-01 緯創資通股份有限公司 串流資料下載方法及其電腦可讀取儲存媒體

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013130473A1 (en) * 2012-02-27 2013-09-06 Qualcomm Incorporated Improved dash client and receiver with a download rate estimator

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022545623A (ja) * 2019-08-15 2022-10-28 フル・エルエルシー ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理
JP7354411B2 (ja) 2019-08-15 2023-10-02 フル・エルエルシー ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理

Also Published As

Publication number Publication date
EP3055966B1 (en) 2017-10-04
WO2015054160A1 (en) 2015-04-16
US20150100701A1 (en) 2015-04-09
US9756102B2 (en) 2017-09-05
CN105594182A (zh) 2016-05-18
EP3055966A1 (en) 2016-08-17

Similar Documents

Publication Publication Date Title
JP2016541213A (ja) メディアストリーミングのための改良された要求取消し方法
US11153154B1 (en) Techniques to dynamically configure target bitrate for streaming network connections
KR101326390B1 (ko) 유저 행동 이력에 기초한 송신 요청 지연을 이용한 모바일 디바이스의 전력 최적화
CA2843594C (en) System and method for adapting video communications
US8732274B2 (en) Method and apparatus for generating and handling streaming media quality-of-experience metrics
US9699236B2 (en) System and method of adaptive bit-rate streaming
US11916743B2 (en) Profile generation for bandwidth management
EP2740265A1 (en) System and method for adapting video communications
WO2008110871A2 (en) Method of transmitting data in a communication system
US20160065642A1 (en) Systems and methods for conditional download using idle network capacity
JP2015520964A (ja) Http疑似ストリーミング用の一体型コントローラベースのペーシング
KR20170101192A (ko) 링크 인식 스트리밍 적응
JP2017524280A (ja) 再生ユーザ経験への影響を最小限に抑えたマルチメディアストリーミングデータのプリフェッチを減らすための方法
KR20220158275A (ko) 네트워크에서 스트리밍되는 콘텐츠를 클라이언트 디바이스의 플레이어에서 재생하기 위한 방법
JP2017535133A (ja) クライアントへのメディアコンテンツのアダプティブストリーミングのためのサーバ、方法、およびコンピュータプログラム製品
US11082474B2 (en) Data buffering method and apparatus in adaptive streaming service
US20160381177A1 (en) Managing data requests
KR20220130837A (ko) 네트워크에서 스트리밍되는 콘텐츠를 클라이언트 디바이스의 플레이어에서 재생하기 위한 방법
Kennedy et al. Household bandwidth and the'need for speed': evaluating the impact of active queue management for home internet traffic
TW201501527A (zh) 用戶終端機用以檢索多媒體內容之內容組件之方法
JP6233652B2 (ja) デバイスサーバとその制御方法
Kennedy et al. Household bandwidth and the'need for speed'
Tapia et al. Smartphone Performance

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190311