(57)【要約】  概して、様々な実施形態は、レシーバデバイスのリソース(たとえば、帯域幅、バッテリー電力など)の変化に関係する1つまたは複数の性能目標および/または最適化を実現するために、レシーバデバイスのリソースの変化を考慮して、現在のセグメントを現在の表現でダウンロードすることを取り消すかまたは放棄し、現在のセグメントの異なる表現でのダウンロードを再開することをいつ行うかを判定するための、レシーバデバイス上でDASHクライアントを実行するプロセッサによって実施される方法を提供する。様々な実施形態では、レシーバデバイスプロセッサは、現在のセグメントの進行中のダウンロード中に表現を切り替えることがレシーバデバイスの性能に便益をもたらすかどうかを判定するための費用対効果分析を実行してもよく、レシーバデバイスプロセッサは、表現を切り替えるとレシーバデバイスの性能が向上すると判定したことに応答して表現を切り替えてもよい。
2016541213.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツの現在のセグメントの現在の表現での進行中のダウンロードを取り消し、切替え状況を認識したことに応答して前記現在のセグメントの別の表現に切り替えるかどうかをレシーバデバイス上で判定する方法であって、
前記現在のセグメントの別の表現を選択するステップと、
前記選択された表現に切り替えるコストを求めるステップと、
前記選択された表現に切り替える前記コストが前記切替え状況に基づくコストしきい値を超えているかどうかを判定するステップと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップ、または
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップ
のうちの一方を実行するステップとを含む方法。
【請求項２】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識するステップであって、
前記切替え状況に基づく前記コストしきい値は、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むステップをさらに含み、
前記選択された表現に切り替えるコストを求めるステップは、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めるステップと、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めるステップと、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出するステップと、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定するステップとを含む、請求項1に記載の方法。
【請求項３】
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップは、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップを含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップは、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップを含む、請求項2に記載の方法。
【請求項４】
前記切替え状況に基づく複数のコストしきい値を求めるステップと、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するステップと、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めるステップであって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するステップは、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定するステップを含むステップと、
前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定するステップと、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するステップとをさらに含み、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップは、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えるステップを含む、請求項1に記載の方法。
【請求項５】
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成するステップであって、前記現在のセグメントの別の表現を選択するステップは、表現の前記順位リストにおける次の表現を選択するステップを含むステップと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するステップと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するステップ、または
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続するステップ
のうちの一方を実行するステップとをさらに含む、請求項1に記載の方法。
【請求項６】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスが利用できるリソースが増大することを特徴とする切替え状況を認識するステップと、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成するステップであって、前記現在のセグメントの別の表現を選択するステップは、表現の前記順位リストにおける次の表現を選択するステップを含むステップと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するステップと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するステップとをさらに含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップは、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続するステップを含む、請求項1に記載の方法。
【請求項７】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識するステップであって、
前記選択された表現に切り替えるコストを求めるステップは、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めるステップを含み、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するステップは、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定するステップを含むステップと、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップ、または
前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えるステップ
のうちの一方を実行するステップとをさらに含む、請求項1に記載の方法。
【請求項８】
メモリと、
前記メモリに結合され、動作を実施するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備え、前記動作は、
現在の表現でのコンテンツの現在のセグメントの別の表現を選択することと、
前記選択された表現に切り替えるコストを求めることと、
前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定することと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることと、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続することとを含むレシーバデバイス。
【請求項９】
前記プロセッサは、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、
前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むように動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記選択された表現に切り替えるコストを求めることは、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出することと、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定することとを含む、請求項8に記載のレシーバデバイス。
【請求項１０】
前記プロセッサは、ように動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることを含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することを含む、請求項9に記載のレシーバデバイス。
【請求項１１】
前記プロセッサは、
前記切替え状況に基づく複数のコストしきい値を求めることと、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することと、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めることと、
前記選択された表現に切り替えるコストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定することと、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することとをさらに含む動作を実行するためにプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、
前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することが、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えることを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項8に記載のレシーバデバイス。
【請求項１２】
前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成することであって、前記プロセッサは、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、生成することと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することと、
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続することとをさらに含む、請求項8に記載のレシーバデバイス。
【請求項１３】
前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスが利用できるリソースが増大することを特徴とする切替え状況を認識することと、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成することであって、前記プロセッサは、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、生成することと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することとをさらに含み、
前記プロセッサは、切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項8に記載の方法。
【請求項１４】
前記プロセッサは、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、
前記選択された表現に切り替えるコストを求めることが、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めることを含み、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することが、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することと、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始することと、
前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードしつつ前記現在のセグメントのプレイアウトを前記選択された表現に切り替えることとをさらに含む、請求項8に記載のレシーバデバイス。
【請求項１５】
現在の表現でのコンテンツの現在のセグメントの別の表現を選択するための手段と、
前記選択された表現に切り替えるコストを求めるための手段と、
前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定するための手段と、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段と、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続するための手段とを備えるレシーバデバイス。
【請求項１６】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識するための手段であって、
前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含む手段をさらに備え、
前記選択された表現に切り替えるコストを求めるための手段は、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めるための手段と、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めるための手段と、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出するための手段と、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定するための手段とを備える、請求項15に記載のレシーバデバイス。
【請求項１７】
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替える手段は、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段を備え、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段は、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段を備える、請求項16に記載のレシーバデバイス。
【請求項１８】
前記切替え状況に基づく複数のコストしきい値を求めるための手段と、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するための手段と、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めるための手段であって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するための手段は、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定するための手段を備える手段と、
前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定するための手段と、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するための手段とをさらに備え、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段は、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えるための手段を備える、請求項15に記載のレシーバデバイス。
【請求項１９】
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成するための手段であって、前記現在のセグメントの別の表現を選択するための手段は、表現の前記順位リストにおける次の表現を選択するための手段を備える手段と、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するための手段と、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するための手段と、
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続するための手段とをさらに備える、請求項15に記載のレシーバデバイス。
【請求項２０】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスプロセッサが利用できるリソースが増大することを特徴とする切替え状況を認識するための手段と、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成するための手段であって、前記現在のセグメントの別の表現を選択するための手段は、表現の前記順位リストにおける次の表現を選択するための手段を備える手段と、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するための手段と、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するための手段とをさらに備え、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段は、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続するための手段を備える、請求項15に記載のレシーバデバイス。
【請求項２１】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識するための手段であって、
前記選択された表現に切り替えるコストを求めるための手段は、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めるための手段を備え、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するための手段は、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定するための手段を備える手段と、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段と、
前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えるための手段とをさらに備える、請求項15に記載のレシーバデバイス。
【請求項２２】
レシーバデバイスプロセッサに動作を実行させるように構成されたプロセッサ実行可能命令が記憶された非一時的プロセッサ可読記憶媒体であって、前記動作は、
現在の表現でのコンテンツの現在のセグメントの別の表現を選択することと、
前記選択された表現に切り替えるコストを求めることと、
前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定することと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることと、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続することとを含む非一時的プロセッサ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むように動作を実行させるように構成され、
前記選択された表現に切り替えるコストを求めることは、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出することと、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定することとを含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることを含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行させるように構成される、請求項23に記載の非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
前記切替え状況に基づく複数のコストしきい値を求めることと、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することと、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めることであって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することは、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することを含むことと、
前記選択された表現に切り替えるコストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定することと、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することとをさらに含み、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えることを含むように動作を実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成することであって、前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行させるように構成されることと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することと、
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続することとをさらに含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスプロセッサが利用できるリソースが増大することを特徴とする切替え状況を認識することと、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成することであって、前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行させるように構成されることと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することとをさらに含み、
前記記憶されたプロセッサ実行可能命令は、切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令は、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
前記選択された表現に切り替えるコストを求めることが、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めることを含み、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することが、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定することを含むように動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することと、
前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えることとをさらに含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
「ハイパーテキスト転送プロトコル」(「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の時間
【図１】
2016541213.tif 000003
【図２】
2016541213.tif 000004
【図３】
2016541213.tif 000005
【図４】
2016541213.tif 000006
【図５】
2016541213.tif 000007
【図６】
2016541213.tif 000008
【図７】
2016541213.tif 000009
【図８】
2016541213.tif 000010
【図９】
2016541213.tif 000011
【図１０】
2016541213.tif 000012
【図１１】
2016541213.tif 000013
【手続補正書】
【提出日】平成28年4月8日(2016.4.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツの現在のセグメントの現在の表現での進行中のダウンロードを取り消し、切替え状況を認識したことに応答して前記現在のセグメントの別の表現に切り替えるかどうかをレシーバデバイスで判定する方法であって、
前記進行中のダウンロードを受ける前記現在のセグメントの別の表現を選択するステップと、
前記進行中のダウンロードを受ける前記現在のセグメントの前記選択された表現に切り替えるコストを求めるステップであって、切替えの前記コストは、プレイアウトコスト、電力コスト、データ使用量コスト、および平均ビットレートコストからなるグループから選択されるステップと、
前記選択された表現に切り替える前記コストが前記切替え状況に基づくコストしきい値を超えているかどうかを判定するステップと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップ、または
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップ
のうちの一方を実行するステップとを含む方法。
【請求項２】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識するステップであって、
前記切替え状況に基づく前記コストしきい値は、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むステップをさらに含み、
前記選択された表現に切り替えるコストを求めるステップは、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めるステップと、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めるステップと、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出するステップと、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定するステップとを含む、請求項1に記載の方法。
【請求項３】
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップは、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップを含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップは、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップを含む、請求項2に記載の方法。
【請求項４】
前記切替え状況に基づく複数のコストしきい値を求めるステップと、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するステップと、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めるステップであって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するステップは、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定するステップを含むステップと、
前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定するステップと、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するステップとをさらに含み、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるステップは、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えるステップを含む、請求項1に記載の方法。
【請求項５】
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成するステップであって、前記現在のセグメントの別の表現を選択するステップは、表現の前記順位リストにおける次の表現を選択するステップを含むステップと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するステップと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するステップ、または
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続するステップ
のうちの一方を実行するステップとをさらに含む、請求項1に記載の方法。
【請求項６】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスが利用できるリソースが増大することを特徴とする切替え状況を認識するステップと、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成するステップであって、前記現在のセグメントの別の表現を選択するステップは、表現の前記順位リストにおける次の表現を選択するステップを含むステップと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するステップと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するステップとをさらに含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップは、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続するステップを含む、請求項1に記載の方法。
【請求項７】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識するステップであって、
前記選択された表現に切り替えるコストを求めるステップは、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めるステップを含み、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するステップは、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定するステップを含むステップと、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するステップ、または
前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えるステップ
のうちの一方を実行するステップとをさらに含む、請求項1に記載の方法。
【請求項８】
メモリと、
前記メモリに結合され、動作を実施するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備え、前記動作は、
進行中のダウンロードを受ける現在の表現でのコンテンツの現在のセグメントの別の表現を選択することと、
前記進行中のダウンロードを受ける前記現在のセグメントの前記選択された表現に切り替えるコストを求めることであって、切替えの前記コストは、プレイアウトコスト、電力コスト、データ使用量コスト、および平均ビットレートコストからなるグループから選択されることと、
前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定することと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることと、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続することとを含むレシーバデバイス。
【請求項９】
前記プロセッサは、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、
前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むように動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記選択された表現に切り替えるコストを求めることは、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出することと、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定することとを含む、請求項8に記載のレシーバデバイス。
【請求項１０】
前記プロセッサは、ように動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることを含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することを含む、請求項9に記載のレシーバデバイス。
【請求項１１】
前記プロセッサは、
前記切替え状況に基づく複数のコストしきい値を求めることと、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することと、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めることと、
前記選択された表現に切り替えるコストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定することと、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することとをさらに含む動作を実行するためにプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、
前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することが、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えることを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項8に記載のレシーバデバイス。
【請求項１２】
前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成することであって、前記プロセッサは、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、生成することと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することと、
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続することとをさらに含む、請求項8に記載のレシーバデバイス。
【請求項１３】
前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスが利用できるリソースが増大することを特徴とする切替え状況を認識することと、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成することであって、前記プロセッサは、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、生成することと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することとをさらに含み、
前記プロセッサは、切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項8に記載のレシーバデバイス。
【請求項１４】
前記プロセッサは、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、
前記選択された表現に切り替えるコストを求めることが、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めることを含み、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することが、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定することを含むように動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記プロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することと、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始することと、
前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードしつつ前記現在のセグメントのプレイアウトを前記選択された表現に切り替えることとをさらに含む、請求項8に記載のレシーバデバイス。
【請求項１５】
進行中のダウンロードを受ける現在の表現でのコンテンツの現在のセグメントの別の表現を選択するための手段と、
前記進行中のダウンロードを受ける前記現在のセグメントの前記選択された表現に切り替えるコストを求めるための手段であって、切替えの前記コストは、プレイアウトコスト、電力コスト、データ使用量コスト、および平均ビットレートコストからなるグループから選択される手段と、
前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定するための手段と、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段と、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続するための手段とを備えるレシーバデバイス。
【請求項１６】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識するための手段であって、
前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含む手段をさらに備え、
前記選択された表現に切り替えるコストを求めるための手段は、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めるための手段と、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めるための手段と、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出するための手段と、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定するための手段とを備える、請求項15に記載のレシーバデバイス。
【請求項１７】
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替える手段は、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段を備え、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段は、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段を備える、請求項16に記載のレシーバデバイス。
【請求項１８】
前記切替え状況に基づく複数のコストしきい値を求めるための手段と、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するための手段と、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めるための手段であって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するための手段は、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定するための手段を備える手段と、
前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定するための手段と、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択するための手段とをさらに備え、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えるための手段は、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えるための手段を備える、請求項15に記載のレシーバデバイス。
【請求項１９】
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成するための手段であって、前記現在のセグメントの別の表現を選択するための手段は、表現の前記順位リストにおける次の表現を選択するための手段を備える手段と、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するための手段と、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するための手段と、
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続するための手段とをさらに備える、請求項15に記載のレシーバデバイス。
【請求項２０】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスのプロセッサが利用できるリソースが増大することを特徴とする切替え状況を認識するための手段と、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成するための手段であって、前記現在のセグメントの別の表現を選択するための手段は、表現の前記順位リストにおける次の表現を選択するための手段を備える手段と、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定するための手段と、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択するための手段とをさらに備え、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段は、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続するための手段を備える、請求項15に記載のレシーバデバイス。
【請求項２１】
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識するための手段であって、
前記選択された表現に切り替えるコストを求めるための手段は、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めるための手段を備え、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定するための手段は、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定するための手段を備える手段と、
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続するための手段と、
前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えるための手段とをさらに備える、請求項15に記載のレシーバデバイス。
【請求項２２】
レシーバデバイスプロセッサに動作を実行させるように構成されたプロセッサ実行可能命令が記憶された非一時的プロセッサ可読記憶媒体であって、前記動作は、
進行中のダウンロードを受ける現在の表現でのコンテンツの現在のセグメントの別の表現を選択することと、
前記進行中のダウンロードを受ける前記現在のセグメントの前記選択された表現に切り替えるコストを求めることであって、切替えの前記コストは、プレイアウトコスト、電力コスト、データ使用量コスト、および平均ビットレートコストからなるグループから選択されることと、
前記選択された表現に切り替える前記コストが切替え状況に基づくコストしきい値を超えているかどうかを判定することと、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることと、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記現在のセグメントの進行中のダウンロードを継続することとを含む非一時的プロセッサ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中にプレイアウト停止の保留状態が生じるときにそれを認識することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
前記切替え状況に基づく前記コストしきい値が、前記プレイアウト停止の保留状態に基づく時間コストしきい値を含むように動作を実行させるように構成され、
前記選択された表現に切り替えるコストを求めることは、
前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消すコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードするコストを求めることと、
前記現在のセグメントを前記選択された表現でダウンロードする前記コストと前記現在のセグメントの前記現在の表現での前記進行中のダウンロードを取り消す前記コストとの和に基づく総時間コストを算出することと、
前記総時間コストが前記時間コストしきい値を超えているかどうかを判定することとを含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記総時間コストが前記時間コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることを含み、
切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、前記総時間コストが前記時間コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行させるように構成される、請求項23に記載の非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
前記切替え状況に基づく複数のコストしきい値を求めることと、
前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することと、
前記選択されたコストしきい値に基づいて前記選択された表現に切り替えるコストを求めることであって、前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することは、前記選択された表現に切り替える前記コストが前記選択されたコストしきい値を超えているかどうかを判定することを含むことと、
前記選択された表現に切り替えるコストが前記選択されたコストしきい値を超えていないと判定したことに応答して前記複数のコストしきい値の各々が前記選択された表現に関して評価されたかどうかを判定することと、
前記複数のコストしきい値の各々において、前記選択された表現に関して評価されていないコストしきい値があると判定したことに応答して、前記複数のコストしきい値においてまだ選択されていないコストしきい値を選択することとをさらに含み、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、切替えの前記コストが前記コストしきい値を超えていないと判定したことに応答して前記選択された表現に切り替えることが、前記複数のコストしきい値の各々が前記選択された表現に関して評価されたと判定したことに応答して前記選択された表現に切り替えることを含むように動作を実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも低いビットレートを有する各表現について降順に生成することであって、前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行させるように構成されることと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することと、
表現の前記順位リストにおける各表現が選択されたと判定したことに応答して、前記進行中のダウンロードを継続することとをさらに含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に前記レシーバデバイスプロセッサが利用できるリソースが増大することを特徴とする切替え状況を認識することと、
前記現在のセグメントに利用できる表現の順位リストを前記現在の表現よりも高いビットレートを有する各表現について降順に生成することであって、前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、前記現在のセグメントの別の表現を選択することが、表現の前記順位リストにおける次の表現を選択することを含むように動作を実行させるように構成されることと、
前記選択された表現に切り替える前記コストが前記コストしきい値を超えていると判定したことに応答して表現の前記順位リストにおける各表現が選択されたかどうかを判定することと、
表現の前記順位リストにおける各表現において選択されていない表現があると判定したことに応答して表現の前記順位リストにおける次の表現を選択することとをさらに含み、
前記記憶されたプロセッサ実行可能命令は、切替えの前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することが、表現の前記順位リストにおける各表現が選択されたと判定したことに応答して前記進行中のダウンロードを継続することを含むように動作を実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令は、前記現在のセグメントの前記現在の表現での前記進行中のダウンロード中に帯域幅が急激に増大することを特徴とする切替え状況を認識することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに、
前記選択された表現に切り替えるコストを求めることが、前記現在のセグメントを前記現在の表現および前記選択された表現で同時にダウンロードするコストを求めることを含み、
前記選択された表現に切り替える前記コストがコストしきい値を超えているかどうかを判定することが、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えているかどうかを判定することを含むように動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、レシーバデバイスプロセッサに動作を実行させるように構成され、前記動作は
前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていると判定したことに応答して前記進行中のダウンロードを継続することと、
前記進行中のダウンロードを継続しつつ前記選択された表現のダウンロードを開始し、前記現在のセグメントを同時にダウンロードする前記コストが前記コストしきい値を超えていないと判定したことに応答して、前記現在のセグメントを前記現在の表現でダウンロードしつつ、同時に前記現在のセグメントのプレイアウトを前記選択された表現に切り替えることとをさらに含む、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【国際調査報告】
2016541213.tif 000014
2016541213.tif 000015