(57)【要約】  様々な実施形態のシステム、方法、およびデバイスは、受信器デバイスが、選択されたメディアインスタンスに関連するデータに基づいて、キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定し、決定された高ウォーターマークマージンおよび低ウォーターマークマージンに少なくとも部分的に基づいてメディアインスタンスの部分のダウンロードを制御することを可能にする。高ウォーターマークマージンおよび低ウォーターマークマージンは、それぞれ、メディアインスタンスの決定された再生レートと、高ウォーターマークマージン時間値および低ウォーターマークマージン時間値とに基づいて決定され得る。低ウォーターマークマージンは、メディアインスタンスのバッファリングされた部分の変化のレートに基づいて決定され得、高ウォーターマークマージンは、決定された低ウォーターマークマージンおよび再生レートに基づいて決定され得る。
2017524280.tif 000002
【特許請求の範囲】
【請求項１】
受信器デバイス上でメディアインスタンスをプリフェッチするための方法であって、
前記受信器デバイスのプロセッサ内で、ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記受信器デバイスのキャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップと、
前記プロセッサ内で、前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するステップと
を含む方法。
【請求項２】
前記プロセッサ内で、ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンおよび前記低ウォーターマークマージンを決定するステップは、
前記プロセッサ内で、メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するステップと、
前記プロセッサ内で、高ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップと、
前記プロセッサ内で、低ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記高ウォーターマークマージン時間値および前記低ウォーターマークマージン時間値は、前記メディアインスタンスまたは前記受信器デバイスに関連する打切りパターンに少なくとも部分的に基づく、請求項2に記載の方法。
【請求項４】
前記プロセッサ内で、ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンおよび前記低ウォーターマークマージンを決定するステップは、
前記プロセッサ内で、メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するステップと、
前記プロセッサ内で、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップと、
前記プロセッサ内で、前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップと
を含む、請求項1に記載の方法。
【請求項５】
前記プロセッサ内で、前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップは、前記プロセッサ内で、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップを含む、請求項4に記載の方法。
【請求項６】
前記プロセッサ内で、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップは、前記プロセッサ内で、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数に少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップを含む、請求項5に記載の方法。
【請求項７】
前記プロセッサ内で、前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するステップをさらに含む、請求項5に記載の方法。
【請求項８】
前記打切りパターン係数をサーバから受信するステップをさらに含み、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項5に記載の方法。
【請求項９】
メディアインスタンスの部分をバッファリングするように構成されたキャッシュと、
メディアインスタンスのプリフェッチされた部分を受信するように構成されたネットワークインターフェースと、
前記キャッシュおよび前記ネットワークインターフェースに結合され、
ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップと、
前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するステップと
を含む動作を実行するようにプロセッサ実行可能命令を用いて構成されたプロセッサと
を含む受信器デバイス。
【請求項１０】
ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップは、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するステップと、
高ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記キャッシュの前記高ウォーターマークマージンを決定するステップと、
低ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記キャッシュの前記低ウォーターマークマージンを決定するステップと
を含む、請求項9に記載の受信器デバイス。
【請求項１１】
前記高ウォーターマークマージン時間値および前記低ウォーターマークマージン時間値は、前記メディアインスタンスまたは前記受信器デバイスに関連する打切りパターンに少なくとも部分的に基づく、請求項10に記載の受信器デバイス。
【請求項１２】
ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップは、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するステップと、
前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記キャッシュの前記低ウォーターマークマージンを決定するステップと、
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するステップと
を含む、請求項9に記載の受信器デバイス。
【請求項１３】
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するステップは、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するステップを含む、請求項12に記載の受信器デバイス。
【請求項１４】
前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記キャッシュの前記低ウォーターマークマージンを決定するステップは、前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数に少なくとも部分的に基づいて前記キャッシュの前記低ウォーターマークマージンを決定するステップを含む、請求項13に記載の受信器デバイス。
【請求項１５】
前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するステップをさらに含む、請求項13に記載の受信器デバイス。
【請求項１６】
前記打切りパターン係数をサーバから受信するステップをさらに含み、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項13に記載の受信器デバイス。
【請求項１７】
メディアインスタンスの部分をバッファリングするように構成されたキャッシュと、
ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための手段と、
前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するための手段と
を含む受信器デバイス。
【請求項１８】
ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記キャッシュの前記高ウォーターマークマージンおよび前記低ウォーターマークマージンを決定するための手段は、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するための手段と、
高ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記キャッシュの前記高ウォーターマークマージンを決定するための手段と、
低ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記キャッシュの前記低ウォーターマークマージンを決定するための手段と
を含み、前記高ウォーターマークマージン時間値および前記低ウォーターマークマージン時間値は、前記メディアインスタンスまたは前記受信器デバイスに関連する打切りパターンに少なくとも部分的に基づく、請求項17に記載の受信器デバイス。
【請求項１９】
ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記キャッシュの前記高ウォーターマークマージンおよび前記低ウォーターマークマージンを決定するための手段は、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するための手段と、
前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記キャッシュの前記低ウォーターマークマージンを決定するための手段と、
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するための手段と
を含む、請求項17に記載の受信器デバイス。
【請求項２０】
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するための手段は、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するための手段を含む、請求項19に記載の受信器デバイス。
【請求項２１】
前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記キャッシュの低ウォーターマークマージンを決定するための手段は、前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数に少なくとも部分的に基づいて前記キャッシュの低ウォーターマークマージンを決定するための手段を含む、請求項20に記載の受信器デバイス。
【請求項２２】
前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するための手段をさらに含む、請求項20に記載の受信器デバイス。
【請求項２３】
前記打切りパターン係数をサーバから受信するための手段をさらに含み、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項20に記載の受信器デバイス。
【請求項２４】
受信器デバイスのプロセッサに、
ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記受信器デバイスのキャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップと、
前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するステップと
を含む動作を実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令は、ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記受信器デバイスの前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップが、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するステップと、
高ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップと、
低ウォーターマークマージン時間値および前記メディアインスタンスの前記決定された再生レートに基づいて、前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップと
を含むように動作を受信器デバイスのプロセッサに実行させるように構成され、
前記高ウォーターマークマージン時間値および前記低ウォーターマークマージン時間値は、前記メディアインスタンスまたは前記受信器デバイスに関連する打切りパターンに少なくとも部分的に基づく、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令は、ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記受信器デバイスのキャッシュの前記高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップが、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの再生レートを決定するステップと、
前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの低ウォーターマークマージンを決定するステップと、
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップと
を含むように動作を受信器デバイスのプロセッサに実行させるように構成される、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令は、前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップが、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップを含むように動作を受信器デバイスのプロセッサに実行させるように構成される、請求項26に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令は、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップが、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数に少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップを含むように動作を受信器デバイスのプロセッサに実行させるように構成される、請求項27に記載の非一時的プロセッサ可読記憶媒体。
【請求項２９】
前記記憶されたプロセッサ実行可能命令は、前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するステップをさらに含む動作を受信器デバイスのプロセッサに実行させるように構成される、請求項27に記載の非一時的プロセッサ可読記憶媒体。
【請求項３０】
前記記憶されたプロセッサ実行可能命令は、前記打切りパターン係数をサーバから受信するステップをさらに含む動作を受信器デバイスのプロセッサに実行させるように構成され、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項27に記載の非一時的プロセッサ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
人々は、自身のモバイルデバイス上でビデオおよび映画をますます視聴するようになっている。その結果、主にスマートフォンユーザによるオーディオおよびビデオのストリーミングおよび消費が寄与するトラフィックボリュームの増加をサポートするために、モバイルオペレータは、そのネットワークに対する指数関数的に増加する需要を満たすように要求されている。モバイルデバイス上でビデオを視聴する時のユーザの使用パターンに関する最近の統計は、ほとんどのユーザが、ビデオが完了するよりかなり前に、ビデオの再生を打ち切ることを明らかにした。YouTube(登録商標)およびPandora(登録商標)を含むアプリケーションによって使用されるAndroid(登録商標)プラットフォームのプリフェッチャなど、アプリケーションによって使用される現在のメディアプリフェッチャは、すべての使用可能な帯域幅を使用してマルチメディアストリームをダウンロードし、一般に、ユーザによって再生されない可能性が高いデータを過剰にプリフェッチする。このデータの過剰なプリフェッチに対する一般的な解決策は、サーバ側から監視されたネットワーク条件に従ってストリーミングをスロットリングする、いわゆるサーバ側「ペーシング」技法である。これらのサーバ側の解決策は、実施するのに複雑になる可能性があり、高コストのサーバ側ネットワーク監視システムを必要とする可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００２】
様々な実施形態のシステム、方法、およびデバイスは、受信器デバイスが、選択されたメディアインスタンスに関連するデータに基づいて、キャッシュの高ウォーターマークマージン(watermark margin)および低ウォーターマークマージンを決定し、決定された高ウォーターマークマージンおよび低ウォーターマークマージンに少なくとも部分的に基づいてメディアインスタンスの部分のダウンロードを制御することを可能にする。一実施形態において、高ウォーターマークマージンおよび低ウォーターマークマージンは、それぞれ、メディアインスタンスの再生レートと、高ウォーターマークマージン時間値および低ウォーターマークマージン時間値とに基づいて決定され得る。一実施形態において、高ウォーターマークマージン時間値および/または低ウォーターマークマージン時間値は、打切りパターンなどの使用統計に基づくものとすることができる。一実施形態において、低ウォーターマークマージンは、メディアインスタンスのバッファリングされた部分の変化のレートに基づいて決定され得、高ウォーターマークマージンは、決定された低ウォーターマークマージンおよび再生レートに基づいて決定され得る。一実施形態において、高ウォーターマークマージンおよび/または低ウォーターマークマージンは、打切りパターン係数にも少なくとも部分的に基づくものとすることもできる。打切りパターン係数は、使用統計に基づくものとすることができ、受信器デバイスで決定され、かつ/またはサーバから受信され得る。
【０００３】
本明細書に組み込まれ、本明細書の一部を構成する添付図面は、本発明の例示的実施形態を示し、上で与えた全般的な説明および下で与える詳細な説明と一緒に、本発明の特徴を説明するように働く。
【図面の簡単な説明】
【０００４】
【図１】様々な実施形態と共に使用するのに適するネットワークを示す通信システムブロック図である。
【図２】様々な実施形態と共に使用するのに適する受信器デバイスの例のシステムアーキテクチャを示す図である。
【図３】一実施形態による、メディアインスタンスと、受信器デバイスのキャッシュと、高ウォーターマークマージンと、低ウォーターマークマージンとの間の相互作用を示す、メディアインスタンスを示すブロック図である。
【図４】受信器デバイス上でメディアをプリフェッチするための実施方法を示すプロセスフロー図である。
【図５】決定された高ウォーターマークマージンおよび決定された低ウォーターマークマージンに少なくとも部分的に基づいて、キャッシュへのメディアインスタンスの部分のダウンロードを制御するための実施方法を示すプロセスフロー図である。
【図６】メディアインスタンスに関連するデータに基づいて受信器デバイスのキャッシュに関する高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための実施方法を示すプロセスフロー図である。
【図７】メディアインスタンスに関連するデータに基づいて受信器デバイスのキャッシュに関する高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための別の実施方法を示すプロセスフロー図である。
【図８】メディアインスタンスに関連するデータに基づいて受信器デバイスのキャッシュに関する高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための第3の実施方法を示すプロセスフロー図である。
【図９】使用統計に基づいて打切りパターン係数ならびに/または高ウォーターマークマージンおよび低ウォーターマークマージン時間値を生成するための実施方法を示すプロセスフロー図である。
【図１０】様々な実施形態と共に使用するのに適する例の受信器デバイスを示すコンポーネント図である。
【図１１】様々な実施形態と共に使用するのに適する例のサーバを示すコンポーネント図である。
【発明を実施するための形態】
【０００５】
様々な実施形態を、添付図面を参照して詳細に説明する。可能な場合にはいつでも、同一のまたは同様の部分を参照するために、図面全体を通して同一の参照番号を使用する。特定の例および実施態様に対して行われる参照は、例示のためのものであって、本発明または特許請求の範囲の範囲を限定することは意図されていない。
【０００６】
「例示的な」という単語は、本明細書において、「例、実例、または例証として働く」を意味するために使用される。本明細書において「例示的な」として説明されるすべての実施態様は、必ずしも、他の実施態様より好ましいまたは有利として解釈されるべきではない。
【０００７】
本明細書において使用される時に、「受信器デバイス」という用語は、セルラー電話機、スマートフォン、パーソナルもしくはモバイルのマルチメディアプレイヤ、携帯情報端末(「PDA」)、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、パームトップコンピュータ、ワイヤレス電子メール受信器、マルチメディアインターネット対応セルラー電話機、ワイヤレスゲームコントローラ、パーソナルコンピュータ、テレビジョンセットトップボックス、テレビジョン、ケーブルテレビジョン受信器、および、メディアのプリフェッチ媒体など、本明細書において説明される動作を実行するためのプログラマブルプロセッサとメモリと回路網とを含む同様のパーソナル電子デバイスのいずれか1つまたはすべてを指すのに使用される。
【０００８】
「サーバ」という用語は、本明細書において、マスタエクスチェンジサーバ、ウェブサーバ、メールサーバ、文書サーバ、コンテンツサーバ、または任意の他のタイプのサーバなど、サーバとして機能することのできるすべてのコンピューティングデバイスを指すのに使用される。サーバは、専用のコンピューティングデバイスまたは、コンピューティングデバイスにサーバとして動作させることのできるアプリケーションなどのサーバモジュールを含むコンピューティングデバイスとすることができる。サーバモジュール(たとえば、サーバアプリケーション)は、全機能を搭載したサーバモジュール、または、モバイルデバイス上の動的データベースの間で同期サービスを提供するように構成された軽量サーバモジュールもしくは副サーバモジュール(たとえば、軽量サーバアプリケーションまたは副サーバアプリケーション)とすることができる。軽量サーバまたは副サーバは、モバイルデバイス上で実施され得、これによって、本明細書において説明される機能性を提供するのに必要な範囲でのみインターネットサーバ(たとえば、企業電子メールサーバ)としてそのモバイルデバイスが機能することを可能にする、サーバタイプ機能性のスリムダウンバージョンとすることができる。
【０００９】
本明細書において使用される時に、「メディアインスタンス」という用語は、ビデオストリーミングデータ、オーディオストリーミングデータ、マルチメディアストリーミングデータ、その他など、受信器デバイス上で再生され得る任意のタイプのメディアデータを指すのに使用される。メディアインスタンスは、受信器デバイスにダウンロードされ、ビデオプレイヤ(たとえば、YouTube(登録商標))、音楽プレイヤ(たとえば、Pandora(登録商標))、ウェブブラウザ、その他などの受信器デバイスのプロセッサ上で実行されるアプリケーションまたはクライアントによって再生され得るデータの部分を含むことができる。メディアインスタンスを構成するデータの部分は、Android(登録商標)プラットフォーム内で使用されるStageFrightなどのプリフェッチャモジュールによってキャッシュにダウンロードされ、クライアントまたはアプリケーションによる再生のために使用可能にされ得る。様々な実施形態および例が、StageFrightおよびAndroid(登録商標)プラットフォームならびにYouTube(登録商標)またはPandora(登録商標)などのアプリケーションまたはクライアントを参照して本明細書において議論されるが、StageFright、Android(登録商標)プラットフォーム、YouTube(登録商標)、およびPandora(登録商標)の議論は、単に、様々な実施形態の諸態様をより良く示すための例として使用され、特許請求の範囲の範囲を限定することは意図されていない。他のプリフェッチャ、iOS(登録商標)プラットフォームなどの他のプラットフォーム、および他のアプリケーションまたはクライアントが、本発明の趣旨または範囲から逸脱せずに、様々な例および実施形態において置換され得る。
【００１０】
様々な実施形態のシステム、方法、およびデバイスは、受信器デバイスが、選択されたメディアインスタンスに関連するデータに基づいて、キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定し、決定された高ウォーターマークマージンおよび低ウォーターマークマージンに少なくとも部分的に基づいてメディアインスタンスの部分のダウンロードを制御することを可能にする。様々な実施形態は、ストリーム再生特性および受信器デバイスにおける監視されたネットワーク条件に従って、メディアインスタンスの部分のダウンロードが高ウォーターマークマージンをオーバーシュートし、かつ/または低ウォーターマークマージンをアンダーシュートするのを停止させるために、プリフェッチングバッファリングアルゴリズムを変更することを可能にする、デバイス側の解決策を提供することができる。高ウォーターマークマージンおよび/または低ウォーターマークマージンを動的に構成することによって、様々な実施形態は、キャッシュからのメディアインスタンスの連続再生を維持しながら、キャッシュ内に残っているデータのサイズが、高ウォーターマークマージンと低ウォーターマークマージンとの間に維持されることを保証することができる。様々な実施形態は、統合がより簡単であり、サーバ側から監視されたネットワーク条件に従ってストリーミングをスロットリングするサーバによって実施される技法よりコストを低下させることのできる、データの過剰なプリフェッチングに対する受信器デバイスによって実施される解決策を提供することができる。様々な実施形態は、キャッシュの最大サイズから高ウォーターマークマージンのサイズをリンク解除することができ、一時にプリフェッチされるデータの量を削減することができ、これによって、メディアインスタンスが終了する前にユーザがメディアインスタンスの再生を打ち切る時に消費され得るダウンロード帯域幅の量を最小にする。
【００１１】
様々な実施形態において、キャッシュへのメディアインスタンスの部分のダウンロード状態は、2つの限度すなわち低ウォーターマークマージンおよび高ウォーターマークマージンによって制御され得る。様々な実施形態において、高ウォーターマークマージンは、最大キャッシュサイズ未満とすることのできる、キャッシュの末尾からのサイズオフセット(たとえば、バイトオフセットなど)を表す値とすることができる。この形において、高ウォーターマークマージンは、キャッシュ内に記憶された最後のアクセス点の前のメディアインスタンスのバッファリングされた部分の最大量の目標を表すことができる。最後のアクセス点とキャッシュの末尾との間のマージン(たとえば、バッファリングされた部分のサイズ)が高ウォーターマークマージンに達する時に、メディアインスタンスのダウンロードは、一時停止され得る(たとえば、未ダウンロード部分の次の部分のダウンロードを停止することによって)。様々な実施形態において、低ウォーターマークマージンは、高ウォーターマークマージン未満とすることのできる、キャッシュの末尾からのサイズオフセット(たとえば、バイトオフセットなど)を表す値とすることができる。この形において、低ウォーターマークマージンは、最後のアクセス点の前のメディアインスタンスのバッファリングされた部分の最小量の目標を表すことができる。最後のアクセス点とキャッシュの末尾との間のマージン(たとえば、バッファリングされた部分のサイズ)が低ウォーターマークマージンに達する時に、メディアインスタンスのダウンロードは、開始(または、再開)され得る(たとえば、メディアインスタンスの未ダウンロード部分の次の部分を要求することによって)。
【００１２】
一実施形態において、高ウォーターマークマージンおよび低ウォーターマークマージンは、それぞれ、メディアインスタンスの再生レートおよび高ウォーターマークマージン時間値と、および低ウォーターマークマージン時間値とに基づいて決定され得る。メディアインスタンスの再生レートは、メディアインスタンスに関連するデータに基づいて決定され得る。たとえば、メディアインスタンスのヘッダ情報内で示されるメディアインスタンスのサイズおよび持続時間を使用することによって、再生レートは、メディアインスタンスのサイズをメディアインスタンスの持続時間で除算したものとして決定され得る。一実施形態において、高ウォーターマークマージン時間値および/または低ウォーターマークマージン時間値は、それぞれ高ウォーターマークマージンおよび/または低ウォーターマークマージンを決定するのに、メディアインスタンスの再生レートに関連して使用され得る。高ウォーターマークマージン時間値は、再生を再開するためのメディアプレイヤの時間セッティングを考慮に入れるために選択された時間値とすることができ、受信器デバイスのメモリ内に記憶され得る。たとえば、高ウォーターマークマージン時間値は、10秒とすることができる。
【００１３】
一実施形態において、高ウォーターマークマージンは、高ウォーターマークマージン時間値にメディアインスタンスの決定された再生レートを乗算することによって決定され得る。低ウォーターマークマージン時間値は、再生を一時停止するためのメディアプレイヤの時間セッティングを考慮に入れるために選択された時間値とすることができ、受信器デバイスのメモリ内に記憶され得る。たとえば、低ウォーターマークマージン時間値は、2秒とすることができる。一実施形態において、低ウォーターマークマージンは、低ウォーターマークマージン時間値にメディアインスタンスの決定された再生レートを乗算することによって決定され得る。代替案では、高ウォーターマークマージン時間値および/または低ウォーターマークマージン時間値は、メディアインスタンスのヘッダ情報内で示され得る。
【００１４】
一実施形態において、高ウォーターマークマージンおよび/または低ウォーターマークマージンの初期デフォルト値は、メディアインスタンスが最初に選択される時および/または最初の再生時に使用され得、再生レートが決定された後に、新しいメディアインスタンス固有の高ウォーターマークマージンおよび/または低ウォーターマークマージンが、決定された再生レートに基づいて決定され、高ウォーターマークマージンおよび/または低ウォーターマークマージンの初期デフォルト値と置換される。
【００１５】
様々な実施形態において、メディアインスタンスを再生している間の受信器デバイス挙動(および、拡張によってユーザ挙動)は、追跡され得る。たとえば、メディアインスタンスは、メディアインスタンスを再生しつつあるメディアプレイヤアプリケーションもしくはクライアントを閉じることによって、メディアプレイヤアプリケーションもしくはクライアントがしきい時間期間の間再生を一時中断する(たとえば、再生を停止するユーザコマンドに応答して)ことによって、または、アプリケーションもしくはクライアントによる再生のための新しいメディアインスタンスの選択によって、打ち切られ得る。したがって、プロセッサまたはサーバは、メディアインスタンスの再生中にこれらのイベントのいずれかを検出しまたは認識することによって、特定のメディアインスタンスの再生がいつ打ち切られたのかを決定することができる。一実施形態において、挙動(たとえば、再生打切り)は、受信器デバイスのプロセッサがそのようなイベントもしくは他のイベントを検出する動作またはメディアインスタンスの再生が打ち切られたことを示す動作を実行することによって追跡され得る。別の実施形態において、サーバは、メディアインスタンスの部分の要求が、完全なメディアファイルが配送され終える前に終了する時を認識し、記録することによって、再生打切り挙動を認識する(したがって、追跡する)ことができる。サーバは、最後のダウンロード要求依頼からの時間がしきい値を超える(たとえば、所定の時間または最後に要求されたダウンロードの再生時間)時、ダウンロードが停止しなければならないこともしくは再生が一時中断されたことをサーバに通知する信号が受信器デバイスから受信される時、および/または完全なメディアファイルが転送され終える前に、異なるメディアインスタンスのダウンロード要求が受信器デバイスから受信される時に、メディアインスタンスの部分の要求が終了したことを認識することができる。
【００１６】
メディアインスタンスが打ち切られた、当初の再生からの時間を示す打切りパラメータなど、メディアインスタンス再生に関する決定された受信器デバイス挙動に関連するパラメータが、決定され得る。一実施形態において、パラメータ(たとえば、打切りパラメータ)は、受信器デバイスにおいて決定され得る。別の実施形態において、パラメータ(たとえば、打切りパラメータ)は、1つまたは複数の受信器デバイスから受信された決定された受信器デバイス挙動の指示に基づいて、サーバにおいて決定され得る。これらの決定されたパラメータは、再生が打ち切られた平均時間を示す打切りパターンなど、受信器デバイスおよび/またはメディアインスタンスに関連する使用統計を更新するのに使用され得る。
【００１７】
使用統計(たとえば、打切りパラメータ)は、打切りが特定のメディアインスタンスの再生中に発生する平均時間など、メディアインスタンスに固有とすることができる。メディアインスタンスに固有の使用統計は、異なる時刻(たとえば、朝、昼、および夕方)における打切りの平均時間、異なる地理的領域または位置における打切りの平均時間、および、既知の場合に、異なる人口統計カテゴリ(たとえば、男対女、年齢グループなど)に関する打切りの平均時間など、他の打切りパターン詳細をも反映することができる。メディアインスタンスに固有の使用統計は、打切りが再生の時間期間の後に発生する尤度およびタイミングをも反映することができる。たとえば、視聴者は、メディアを即座に嫌うか、その全体を見るかのいずれかなので、視聴者が、最初の5分以内に特定のメディアインスタンスの再生を頻繁に打ち切るが、その後にはめったに打ち切らない場合がある。別の例として、一部のメディアインスタンスは、そのメディアインスタンスの残りの打切りパターンが一貫しまたは平均的である一方で、多数の視聴者が再生をその間に打ち切るシーンまたはセグメント(たとえば、多くの人が不快または退屈と認めるシーンまたはセグメント)を含む場合がある。
【００１８】
さらに、使用統計(たとえば、打切りパターン)は、様々なタイプまたはカテゴリのメディアインスタンスの再生の挙動追跡に基づく、異なるメディアのタイプまたはジャンルの打切りパターンなど、メディアインスタンスのタイプまたはカテゴリに関するものとすることができる。メディアのタイプまたはカテゴリは、同様のメディアインスタンスをグループ化するのに使用されるメディアインスタンスの属性の記述とすることができる。タイプまたはカテゴリの例は、「広告」、「映画」、「ニュース」、「ポピュラーソング」、その他を含むことができる。
【００１９】
さらに、使用統計(たとえば、打切りパターン)は、特定の受信器デバイス上で再生されたすべてのメディアインスタンスの平均打切り時間を示す打切りパターン(所有者の打切りパターンを反映することができる)など、受信器デバイスに全般的に関するものとすることができる。さらに、使用統計(たとえば、打切りパターン)は、受信器デバイス上で再生された所与のカテゴリ内のすべてのメディアインスタンスの平均打切り時間など、受信器デバイスと、同様のタイプまたはカテゴリのメディアインスタンスのその受信器デバイスによる処理とに関するものとすることができる。
【００２０】
一実施形態において、高ウォーターマークマージン時間値および/または低ウォーターマークマージン時間値は、上で説明した、メディアインスタンスまたは受信器デバイスに関連する打切りパターンなどの使用統計に基づくものとすることができる。一例として、あるメディアインスタンスの高ウォーターマークマージン時間値および/または低ウォーターマークマージン時間値は、サーバにおいて決定され、メディアインスタンスの部分メタデータ(たとえば、ヘッダ情報)としてまたは別々の伝送の一部として受信器デバイスに供給され得る。別の例として、受信器デバイスの高ウォーターマークマージン時間値および/または低ウォーターマークマージン時間値は、受信器デバイスにおけるメディアインスタンス打切りパターンの監視に基づいて、受信器デバイスにおいて決定され得る。
【００２１】
一実施形態において、低ウォーターマークマージンは、メディアインスタンスのバッファリングされた部分の変化のレートに基づいて決定され得る。一実施形態において、低ウォーターマークマージンは、受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートの関数として決定され得る。一実施形態において、この関数は、受信器デバイスにおいて事前にプロビジョニングされ、すべてのメディアインスタンスに関して使用される単一の関数とすることができる。別の実施形態において、この関数は、低ウォーターマークマージンを決定するための関数のグループから選択され得、選択は、メディアインスタンスのメタデータ(たとえば、ヘッダ)内で示されたメディアインスタンスのタイプまたはカテゴリに基づく。
【００２２】
一実施形態において、キャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートの関数としての低ウォーターマークマージンの決定の結果にかかわりなく、低ウォーターマークマージンは、最小低ウォーターマークマージン値と最大低ウォーターマークマージン値との間に制約され得る。たとえば、最小低ウォーターマークマージン値は、256Kとすることができ、最大低ウォーターマークマージン値は、4Mとすることができる。最小低ウォーターマークマージン値および最大低ウォーターマークマージン値は、製造業者またはサービスプロバイダによって事前に決定され、サービスプロバイダ(たとえば、無線更新を介して)またはユーザ(たとえば、ユーザプリファレンスセッティングに応答して)によって調整可能とされ、あるいは、サービスプロバイダ、メディアプロバイダ(たとえば、メディアインスタンスの一部として配送されるパラメータフィールド内で)、受信器デバイス(たとえば、検出されたリンク品質または再生条件に応答して)またはユーザによって動的にセットされ得る。
【００２３】
一実施形態において、高ウォーターマークマージンは、決定された低ウォーターマークマージンおよび再生レートに基づいて決定され得る。一実施形態において、高ウォーターマークマージンは、低ウォーターマークマージンに再生レートの関数を加えたものと等しいものとすることができる。再生レートは、メディアインスタンスのサイズをメディアインスタンスの持続時間で除算したものとして決定され得る。一実施形態において、この関数は、受信器デバイスにおいて事前にプロビジョニングされ、すべてのメディアインスタンスに関して使用される単一の関数とすることができる。別の実施形態において、この関数は、高ウォーターマークマージンを決定するための関数のグループから選択され得、選択は、メディアインスタンスのメタデータ(たとえば、ヘッダ)内で示されたメディアインスタンスのタイプまたはカテゴリに基づく。一実施形態において、高ウォーターマークマージンおよび/または低ウォーターマークマージンは、打切りパターン係数にも少なくとも部分的に基づくものともされ得る。一実施形態において、再生レートの関数は、1Mなどの最小値によって制約され得る。
【００２４】
一実施形態において、高ウォーターマークマージンおよび/または低ウォーターマークマージンは、打切りパターン係数にも少なくとも部分的に基づくものともされ得る。たとえば、1つまたは複数の打切りパターン係数は、低ウォーターマークマージンおよび/または高ウォーターマークマージンを決定するのに使用される関数の係数とすることができる。上で説明したように、使用統計は、受信器デバイスにおいて決定され、かつ/またはサーバから受信され、打切りパターン係数を決定するのに使用され得る。一実施形態において、打切りパターン係数は、サーバにおいて決定され、メディアインスタンスのメタデータの一部として(たとえば、ヘッダ情報内で)または別々の伝送の一部として受信器デバイスに供給され得る。別の例として、打切りパターン係数は、別のデバイス(たとえば、サーバ)から受信された使用統計および/または受信器デバイスにおいて決定された使用統計に基づいて、受信器デバイスにおいて決定され得る。
【００２５】
一実施形態において、高ウォーターマークマージンおよび/または低ウォーターマークマージンは、メディアインスタンスの各部分がダウンロードされた後またはメディアインスタンスの部分のグループがダウンロードされた後など、メディアインスタンスの部分がダウンロードされる時に再決定されまたは改訂され得る。この形において、高ウォーターマークマージンおよび/または低ウォーターマークマージンは、ダウンロードレートの変化、キャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートの変化、その他など、メディアインスタンスのダウンロードに影響する変化に適合することができる。この実施形態は、高ウォーターマークマージンおよび/または低ウォーターマークマージンが、再生中のメディアインスタンスの打切りパターンの変化に適合することをも可能にすることができる。たとえば、高ウォーターマークマージンは、打切りの可能性が高いので帯域幅を節約するために多数の視聴者が再生を打ち切るシーンまたはセグメントの直前およびその間に減少され、再生の質を高めるために他の時に増加され得る。別の例として、高ウォーターマークマージンは、再生が長く進行すればするほど、より多くの視聴者が最後まで見るという事実を打切りパターンが反映する時に、再生が進行するにつれて増加され得る。
【００２６】
一実施形態において、キャッシュの高ウォーターマークマージンおよび/または低ウォーターマークマージンを決定する動作は、異なるメディアインスタンスが受信器デバイス上での出力のために選択される時に、メディアインスタンスにまたがって使用され得る。一実施形態において、キャッシュ内のメディアインスタンスのダウンロードされた部分は、メディアインスタンス内のシークをサポートするために、一緒にグループ化され得る。
【００２７】
図1に、様々な実施形態と共に使用するのに適する通信ネットワークシステム100を示す。通信ネットワークシステム100は、インターネット110に接続された、1つまたは複数の受信器デバイス102、1つまたは複数のセルラー塔または基地局104、1つまたは複数のワイヤレスアクセスポイント114、1つまたは複数のルータ109、ならびにサーバ108および112などの複数のデバイスを含むことができる。受信器デバイス102は、CDMA、TDMA、GSM（登録商標）、PCS、3G、4G、LTE、または任意の他のタイプの接続を含む1つまたは複数のセルラー接続106を介して、セルラー塔または基地局104とデータを交換することができる。セルラー塔または基地局104は、インターネット110に接続することができるルータと通信しているものとすることができる。受信器デバイス102は、Wi-Fi(登録商標)または任意の他のタイプの接続を含む1つまたは複数の接続118を介して、ワイヤレスアクセスポイント114とデータを交換することができる。ワイヤレスアクセスポイント114は、インターネット110に接続することができるルータと通信しているものとすることができる。受信器デバイス102は、1つまたは複数の有線接続117を介して、インターネット110に接続することができるルータ109とデータを交換することができる。この形において、セルラー塔または基地局104、ワイヤレスアクセスポイント114、ルータ109、および/またはインターネット110への接続を介して、データは、受信器デバイス102とサーバ108および112との間で交換され得る。
【００２８】
一実施形態において、サーバ108は、受信器デバイス102のプロセッサ上で実行されるクライアントまたはアプリケーションを介する出力(たとえば、再生)のためにメディアインスタンスを提供するコンテンツプロバイダサーバおよび/または符号器とすることができる。一実施形態において、サーバ108は、カメラなどのメディア取込デバイス116からメディアを受け取り、そのメディアを、受信器デバイス102のプロセッサ上で実行されるクライアントまたはアプリケーションによって出力(たとえば、再生)されるように構成されたメディアインスタンス(たとえば、ビデオ、オーディオ、またはマルチメディアストリーム)に符号化することができる。インターネット110、ルータ109、ワイヤレスアクセスポイント114、および/またはセルラー塔もしくは基地局104を使用して確立される様々なネットワークを介して、サーバ108は、受信器デバイス102にメディアインスタンスを提供することができる。一実施形態において、サーバ112は、受信器デバイス102によるネットワーク使用を監視し、受信器デバイス102および/またはサーバ108からメディアインスタンスおよびメディアインスタンス消費に関連するデータ(たとえば、打切りパラメータ、使用統計など)を受信し、受信器デバイスおよび/またはサーバ108にメディアインスタンスおよびメディアインスタンス消費ならびに/またはネットワーク条件に関連するデータを送ることができる、ネットワークサーバとすることができる。
【００２９】
図2に、様々な実施形態と共に使用するのに適する受信器デバイスの例のシステムアーキテクチャ200を示す。受信器デバイスは、プリフェッチャモジュール206とデータを交換することができる1つまたは複数のクライアント202と、受信器デバイスのキャッシュ204として機能するように構成されたメモリとを含むことができる。プリフェッチャモジュール206は、キャッシュ204および受信器デバイスのモデムインターフェース208とデータを交換することができる。YouTube(登録商標)アプリケーションなどのクライアント202は、メディアインスタンスが受信器デバイスのユーザによって再生のために選択されること(たとえば、ビデオまたは音楽に関する「再生」または「進む」のユーザ選択)に応答して、プリフェッチャモジュール206にユニフォームリソースインジケータ(URI)などのメディアインスタンス選択指示を送ることができる。Android(登録商標)プラットフォーム内で使用されるStageFrightなどのプリフェッチャモジュール206は、メディアインスタンスの部分のダウンロードを開始するためにモデムインターフェース208を制御することができ、メディアインスタンスの部分が受信される時に、プリフェッチャモジュール206は、メディアインスタンスの部分をキャッシュ204内に記憶することができる。プリフェッチャモジュール206は、ハイパーテキスト転送プロトコル(HTTP)または任意の他の通信プロトコルなど、任意の通信プロトコルを使用して、メディアインスタンスの部分をダウンロードし、メディアインスタンスの部分をキャッシュ204内に記憶することができる。クライアント202は、受信器デバイス上でメディアインスタンスを出力するためにキャッシュ204内に記憶されたメディアインスタンスの部分を再生することによって、メディアインスタンスの部分を消費することができる。
【００３０】
クライアント202によってまだ再生されていない、キャッシュ204内のメディアインスタンスの部分は、メディアインスタンスの新しい部分がプリフェッチャモジュール206によってキャッシュ204にダウンロードされ、メディアインスタンスの部分がクライアント202によってキャッシュ204から再生される時に変化する、メディアインスタンスのバッファリングされた部分とすることができる。
【００３１】
図3は、メディアインスタンス302と、受信器デバイスのキャッシュと、高ウォーターマークマージン(HWM)318と、低ウォーターマークマージン(LWM)320との間の実施形態相互作用を示す、メディアインスタンス302のブロック図である。所与の時に、受信器デバイスのキャッシュは、メディアインスタンス302の部分を記憶することができる。キャッシュ内のメディアインスタンス302の部分は、再生された部分304(たとえば、受信器デバイス上でビデオを表示し、かつ/またはオーディオを出力することによってクライアントまたはアプリケーションによって消費された)と、再生のためにバッファリングされる部分306(すなわち、クライアントまたはアプリケーションによって消費されていない)とを含むことができる。再生された部分304は、キャッシュの先頭(SOC)310(たとえば、キャッシュ内のメディアインスタンス302の最も古い部分)から、最終アクセス点(LAP)312(たとえば、再生されつつあるメディアインスタンス302の最新の部分)まで延びることができる。バッファリングされる部分306は、最終アクセス点312からキャッシュの終り(EOC)314(たとえば、キャッシュ内のメディアインスタンス302の最も新しい部分)まで延びることができる。まだキャッシュにダウンロードされていない、メディアインスタンス302の部分は、未ダウンロード部分308とすることができる。キャッシュは、キャッシュ内に記憶され得るデータの最大サイズを表すことができる、5.0MB、20.0MB、100.0MB、その他などの、キャッシュに割り振られた最大キャッシュサイズ316を有することができる。
【００３２】
様々な実施形態において、キャッシュ内のメディアインスタンス302の部分のダウンロード状態ならびにメディアパケットがダウンロードされ、キャッシュ内に記憶される時は、2つの限度、低ウォーターマークマージン320および高ウォーターマークマージン318によって制御され得る。
【００３３】
様々な実施形態において、高ウォーターマークマージン318は、最大キャッシュサイズ316未満とすることができる、キャッシュの終り314からのサイズオフセット(たとえば、バイトオフセットなど)を表す値とすることができる。この形において、高ウォーターマークマージン318は、キャッシュ内に記憶された最終アクセス点312の前のバッファリングされた部分306の最大量の目標を表すことができる。最終アクセス点312とキャッシュの終り314との間のマージン(たとえば、バッファリングされた部分306のサイズ)が、高ウォーターマークマージン318に達する時に、メディアインスタンス302のダウンロードは、一時停止され得る(たとえば、未ダウンロード部分308の次の部分のダウンロードを停止することによって)。
【００３４】
様々な実施形態において、低ウォーターマークマージン320は、高ウォーターマークマージン318未満とすることのできる、キャッシュの終り314からのサイズオフセット(たとえば、バイトオフセットなど)を表す値とすることができる。この形において、低ウォーターマークマージン320は、最終アクセス点312の前のバッファリングされた部分306の最小量の目標を表すことができる。最終アクセス点312とキャッシュの終り314との間のマージン(たとえば、バッファリングされた部分306のサイズ)が、低ウォーターマークマージン320に達する時に、メディアインスタンス302のダウンロードは、開始(または再開)され得る(たとえば、未ダウンロード部分308の次の部分のダウンロードを要求することによって)。
【００３５】
図4に、受信器デバイスのプロセッサ上で実行されるプリフェッチャモジュールによるなど、受信器デバイスのプロセッサによって実行され得る、受信器デバイス上でメディアをプリフェッチするための実施方法400を示す。ブロック402において、プロセッサは、メディアインスタンス選択指示を受け取ることができる。一例として、メディアインスタンス選択指示は、メディアプレイヤによる出力のためのビデオの選択の、メディアプレイやなどのクライアントアプリケーションから受け取られる指示とすることができる。メディアインスタンス選択指示は、メディアインスタンスがそこから取り出され得る、URLなどのアドレスを示すことができる。
【００３６】
ブロック404において、プロセッサは、メディアインスタンスに関連するデータを決定することができる。このデータは、メディアインスタンスのサイズ、メディアインスタンスの持続時間、メディアインスタンスに関連する打切りパターン、1つまたは複数の打切りパターン係数、低ウォーターマークマージン時間値、高ウォーターマークマージン時間値、高ウォーターマークマージン、低ウォーターマークマージン、メディアインスタンスのタイプもしくはカテゴリ、および/またはメディアインスタンスに関する任意の他の情報を含む、メディアインスタンスに関する様々な情報を含むことができる。一実施形態において、プロセッサは、メディアインスタンスの要求に応答して、要求されたメディアインスタンスの最初の部分を受信することができ、最初の部分は、ヘッダ内にメディアインスタンスに関連するデータ(たとえば、メタデータ)を含むことができる。一実施形態において、プロセッサは、メディアインスタンスの最初の部分内で受信されたデータに少なくとも部分的に基づいて、メディアインスタンスに関連するデータを決定することができる。別の実施形態において、プロセッサは、1つまたは複数の打切りパターン、1つまたは複数の打切りパターン係数、その他など、受信器デバイスのメモリ内に記憶されたデータに少なくとも部分的に基づいて、メディアインスタンスに関連するデータを決定することができる。さらなる実施形態において、プロセッサは、受信器デバイスのメモリ内に記憶されたデータとメディアインスタンスの最初の部分内で受信されたデータとの組合せに少なくとも部分的に基づいて、メディアインスタンスに関連するデータを決定することができる。
【００３７】
ブロック406において、プロセッサは、メディアインスタンスに関連するデータに基づいて、受信器デバイスのキャッシュの高ウォーターマークマージン(HWM)および低ウォーターマークマージン(LWM)を決定することができる。一実施形態において、メディアインスタンスに関連するデータは、メディアインスタンスの再生レートを決定するのに使用され得る。一実施形態において、受信器デバイスのキャッシュの高ウォーターマークマージンは、高ウォーターマークマージン時間値とメディアインスタンスの決定された再生レートとに基づいて決定され得、受信器デバイスのキャッシュの低ウォーターマークマージンは、低ウォーターマークマージン時間値とメディアインスタンスの決定された再生レートとに基づいて決定され得る。別の実施形態において、受信器デバイスのキャッシュの低ウォーターマークマージンは、受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて決定され得、受信器デバイスのキャッシュの高ウォーターマークマージンは、低ウォーターマークマージンと決定された再生レートとに少なくとも部分的に基づいて決定され得る。さらなる実施形態において、低ウォーターマークマージンおよび高ウォーターマークマージンは、メディアインスタンスまたは受信器デバイスに関連する打切りパターンまたは打切りパターン係数に少なくとも部分的に基づいて決定され得る。
【００３８】
ブロック408において、プロセッサは、決定された高ウォーターマークマージンおよび決定された低ウォーターマークマージンに少なくとも部分的に基づいて、キャッシュへのメディアインスタンスの部分のダウンロードを制御することができる。たとえば、プロセッサは、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが、低ウォーターマークマージン以下である時に、メディアインスタンスの部分のダウンロードを開始することができ、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが、高ウォーターマークマージン未満であり、メディアインスタンスのバッファリングされた部分のサイズが、低ウォーターマークマージン以下である間に、メディアインスタンスの部分のダウンロードを継続することができ、メディアインスタンスのバッファリングされた部分のサイズが、高ウォーターマークマージン以上である時に、メディアインスタンスの部分のダウンロードを一時停止することができる。オプションの実施形態において、プロセッサは、メディアインスタンスに関連するデータに基づいてキャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを再決定するために、ブロック406に戻ることができる。この形において、高ウォーターマークマージンおよび低ウォーターマークマージンは、動的に調整され得、これによって、様々なパラメータ値が変化する時に、メディアインスタンスの部分のキャッシングおよびダウンロードを適応的に制御することを可能にする。
【００３９】
図5は、決定された高ウォーターマークマージンおよび決定された低ウォーターマークマージンに少なくとも部分的に基づいて、キャッシュへのメディアインスタンスの部分のダウンロードを制御するための実施方法500を示す。一実施形態において、方法500の動作は、受信器デバイスのプロセッサ上で実行されるプリフェッチャモジュールによるなど、受信器デバイスのプロセッサによって実行され得る。
【００４０】
上で説明したように、ブロック402において、プロセッサは、メディアインスタンス選択指示を受け取ることができる。判定ブロック502において、プロセッサは、メディアインスタンスが打ち切られたかどうかを判定することができる。メディアインスタンスは、メディアビューイングアプリケーションまたはクライアント閉じられること、新しいメディアインスタンス選択指示が受け取られること、その他によるなど、様々な形において打ち切られ得る。この反復プロセス(ブロック502において開始される)は、図4を参照して上で説明した方法400内のプロセスと並列に発生する再生と同期して発生する。
【００４１】
メディアインスタンスが打ち切られないとの判定に応答して(すなわち、判定ブロック502=「No」)、プロセッサは、ブロック504において、受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分のサイズを決定し、記憶することができる。受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分のサイズは、キャッシュ内に記憶されたが、まだメディアインスタンスを出力するクライアントまたはアプリケーションによって再生されていない部分とすることができる。プロセッサは、受信器デバイスのキャッシュの内容を分析することによって、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズを決定することができ、たとえばメディアインスタンスのバッファリングされた部分の以前に決定されたサイズを上書きすることによって、受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分の決定されたサイズを記憶することができる。
【００４２】
上で説明したように、ブロック406において、プロセッサは、メディアインスタンスに関連するデータに基づいて、キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定することができる。判定ブロック506において、プロセッサは、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが高ウォーターマークマージン以上であるかどうかを判定することができる。たとえば、プロセッサは、メディアインスタンスのバッファリングされた部分のサイズが高ウォーターマークマージン以上であるかどうかを判定するために、キャッシュ内に記憶されたメディアインスタンスのバッファリングされた部分の決定されたサイズの値を高ウォーターマークマージンと比較することができる。キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが高ウォーターマークマージン未満であるとの判定に応答して(すなわち、判定ブロック506=「No」)、プロセッサは、判定ブロック508において、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが低ウォーターマークマージンを超えるかどうかを判定することができる。たとえば、プロセッサは、メディアインスタンスのバッファリングされた部分のサイズが低ウォーターマークマージンを超えるかどうかを判定するために、キャッシュ内に記憶されたメディアインスタンスのバッファリングされた部分の決定されたサイズの値を低ウォーターマークマージンと比較することができる。
【００４３】
キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが低ウォーターマークマージン以下であるとの判定に応答して(すなわち、判定ブロック508=「No」)、プロセッサは、ブロック510においてキャッシュへのメディアインスタンスのダウンロード(すなわち、プリフェッチ)を再開することができ、したがってメディアインスタンスの次の部分をダウンロード/プリフェッチすることができる。たとえば、プロセッサは、メディアインスタンスの次の部分の、Get()要求などの要求を送ることによってメディアのダウンロードを再開することができ、これに応答して、メディアインスタンスの次の部分を受信し、データをキャッシュ内に記憶することができる。ブロック510においてキャッシュにメディアインスタンスの次の部分をダウンロードする際に、プロセッサは、判定ブロック502において、メディアインスタンスが打ち切られたかどうかを再び判定することができ、メディアインスタンスが打ち切られないとの判定に応答して(すなわち、判定ブロック502=「No」)、プロセッサは、ブロック504において、メディアインスタンスのバッファリングされた部分の新しいサイズを決定し、記憶し、ブロック406において、メディアインスタンスに関連するデータに基づいて、キャッシュの新しい高ウォーターマークマージンおよび低ウォーターマークマージンを決定し、判定ブロック506において、メディアインスタンスのバッファリングされた部分のサイズが高ウォーターマークマージン以上であるかどうかを判定することができる。
【００４４】
キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが高ウォーターマークマージン以上であるとの判定に応答して(すなわち、判定ブロック506=「Yes」)、ブロック512において、メディアインスタンスの部分のダウンロード/プリフェッチは、一時停止され得る。後続の反復において、再生がバッファから継続される間にダウンロードが一時停止され、メディアインスタンスのバッファリングされた部分のサイズが、高ウォーターマークマージン未満である(すなわち、判定ブロック506=「No」)が、メディアインスタンスのバッファリングされた部分のサイズが、低ウォーターマークマージンを超えるままである(すなわち、判定ブロック508=「Yes」)時には、ブロック512において、メディアのダウンロード/プリフェッチは、一時停止されたままになることができる。
【００４５】
受信器デバイスプロセッサは、メディアインスタンスが打ち切られない限り(すなわち、判定ブロック502=「No」である限り)、プロセッサが、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが高ウォーターマークマージンを超えまたは低ウォーターマークマージン未満であるかどうかを継続的に判定できるようにするために、ループ内で方法500の動作を実行し、ダウンロード(すなわち、プリフェッチ)は、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが高ウォーターマークマージン以上である(すなわち、判定ブロック506=「Yes」)時にブロック512において一時停止され、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズが低ウォーターマークマージン未満である(すなわち、判定ブロック508=「No」)時に再開される。言い換えると、ダウンロードおよび再生は、同時に発生し、ブロック510およびブロック512は、メディアインスタンスが完全にダウンロードされるか再生が打ち切られるまで、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズ、決定された高ウォーターマークマージン、および決定された低ウォーターマークマージンに基づいて、メディアインスタンスの部分のプリフェッチを制御する一時停止機構および再開機構を提供する。したがって、低ウォーターマークマージンは、メディアインスタンスの再生におけるストールを回避するのに十分なデータがキャッシュ内でバッファリングされることを保証するために、いつダウンロード(すなわち、プリフェッチ)を再開すべきかを決定するのに使用され、高ウォーターマークマージンは、メディアインスタンスの過剰なバッファリングに対して保護するために、いつダウンロードを一時停止すべきかを決定するのに使用される。
【００４６】
メディアインスタンスが打ち切られたとの判定に応答して(すなわち、判定ブロック502=「Yes」)、プロセッサは、ブロック516において、打切りパラメータを決定することができる。打切りパラメータは、打切りが発生した、再生の始めからの時間、メディアインスタンスのタイプもしくはカテゴリ、および/あるいは受信器デバイスおよび/またはメディアインスタンス自体によるメディアインスタンスの消費に関する他のデータ、ならびに本明細書で説明される他のパラメータを含むことができる。打切りパラメータは、メディアインスタンスおよび/または受信器デバイスに関連する使用統計(たとえば、打切りパラメータ)を生成/更新するために、受信器デバイスおよび/またはリモートサーバなどのリモートデバイスによって使用され得る。ブロック518において、プロセッサは、打切りパラメータを送り、かつ/または記憶することができる。一例として、プロセッサは、打切りパラメータをリモートデバイスに送り、打切りパラメータを受信器デバイスのメモリ内に記憶し、かつ/または受信器デバイスプロセッサ上で実行される別のアプリケーションに打切りパラメータを送ることができる。オプションのブロック520において、プロセッサは、打切りパラメータに基づいて使用統計(たとえば、打切りパラメータ)を更新することができる。たとえば、メディアインスタンスが打ち切られる、再生の開始からの平均時間が、新たに決定された打切りパラメータに基づいて更新され得る。
【００４７】
図6に、メディアインスタンスに関連するデータに基づいて受信器デバイスのキャッシュに関する高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための実施方法600を示す。一実施形態において、方法600の動作は、受信器デバイスのプロセッサ上で実行されるプリフェッチャモジュールによるなど、受信器デバイスのプロセッサによって実行され得る。一実施形態において、方法600の動作は、上で説明した方法400または方法500の動作に関連して実行され得る。
【００４８】
上で議論したように、高ウォーターマークマージン時間値(hwm)および/または低ウォーターマークマージン時間値(lwm)は、受信器デバイスにおいて決定され得、あるいは、受信器デバイスからリモートに(たとえば、サーバにおいて)決定され、受信器デバイスに供給され得る。したがって、オプションの実施形態において、ブロック601aにおいて、プロセッサは、打切りパターンに基づいて、高ウォーターマークマージン時間値および低ウォーターマークマージン時間値を決定し、記憶することができる。打切りパターンは、メディアインスタンスまたは受信器デバイスに関連付けられ得る。代替のオプションの実施形態において、ブロック601bにおいて、プロセッサは、高ウォーターマークマージン時間値および低ウォーターマークマージン時間値を受信し、記憶することができる。たとえば、プロセッサは、高ウォーターマークマージン時間値および低ウォーターマークマージン時間値をリモートサーバから受信することができ、その値を受信器デバイスのメモリ内に記憶することができる。ブロック601aにおいて受信器デバイスによって決定される、またはブロック601bにおいて受信器デバイスによって受信されるのいずれであるのかにかかわりなく、低ウォーターマークマージン時間値は、メディアプレイヤによる再生の一時停止を考慮に入れるためにセットされる時間(たとえば、2秒)とすることができ、高ウォーターマークマージン時間値は、メディアプレイヤによる再生の再開を考慮に入れるためにセットされる時間(たとえば、10秒)とすることができる。
【００４９】
ブロック602において、プロセッサは、メディアインスタンスの再生レートを決定することができる。たとえば、再生レートは、メディアインスタンスヘッダから抽出された、メディアインスタンスのサイズ(Size)および持続時間(Duration)に基づくものとすることができる。次いで、再生レート(Rplayback)は、次式に従って計算され得る。
【００５０】
【数１】
2017524280.tif 000003
【００５１】
ブロック604において、プロセッサは、メディアインスタンスの高ウォーターマークマージン時間値および決定された再生レートに基づいて、受信器デバイスのキャッシュの高ウォーターマークマージンを決定することができる。たとえば、高ウォーターマークマージン時間値(hwm)および再生レート(Rplayback)を使用して、高ウォーターマークマージン(HWM)は、次式に従って計算され得る。
HWM=hwm×Rplayback
【００５２】
ブロック606において、プロセッサは、メディアインスタンスの低ウォーターマークマージン時間値および決定された再生レートに基づいて、受信器デバイスのキャッシュの低ウォーターマークマージンを決定することができる。たとえば、低ウォーターマークマージン時間値(lwm)および再生レート(Rplayback)を使用して、低ウォーターマークマージン(LWM)は、次式に従って計算され得る。
LWM=lwm×Rplayback
【００５３】
図7に、メディアインスタンスに関連するデータに基づいて受信器デバイスのキャッシュに関する高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための実施方法700を示す。一実施形態において、方法700の動作は、受信器デバイスのプロセッサによって、たとえば、受信器デバイスのプロセッサ上で実行されるプリフェッチャモジュールによって、実行され得る。一実施形態において、方法700の動作は、上で説明した方法400または方法500の動作に関連して実行され得る。
【００５４】
図6を参照して上で説明したように、ブロック602において、プロセッサは、メディアインスタンスの再生レートを決定することができる。ブロック702において、プロセッサは、受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートを決定することができる。一例として、メディアインスタンスのバッファリングされた部分の変化のレート
【００５５】
【数２】
2017524280.tif 000004
【００５６】
は、現在の部分要求が送られる時のキャッシュ内のメディアインスタンスのバッファリングされた部分の量を、最後の部分要求が送られた時のキャッシュ内のメディアインスタンスのバッファリングされた部分の量と比較することによって決定され得る。メディアインスタンスの部分の要求(たとえば、Get()要求)が送られる時に、プロセッサは、要求のタイムスタンプと共に、キャッシュ内のメディアインスタンスのバッファリングされた部分のサイズを記憶することができる。この形において、キャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートは、バッファリングされた部分のサイズの変化を、異なるタイムスタンプに基づいて決定される要求の間の時間間隔で除算することによって決定され得る。代替案において、要求は、一定の周期性で送られ得、タイムスタンプは、不要とされ得、この場合に、バッファリングされた部分のサイズの変化は、メディアインスタンスのバッファリングされた部分の変化のレートを決定するために、周期性で除算され得る。
【００５７】
ブロック704において、プロセッサは、受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて受信器デバイスのキャッシュの低ウォーターマークマージンを決定することができる。一例として、低ウォーターマークマージン(LWM)は、次式に従って、メディアインスタンスのバッファリングされた部分の変化のレート
【００５８】
【数３】
2017524280.tif 000005
【００５９】
の関数(f1)として決定され得る。
【００６０】
【数４】
2017524280.tif 000006
【００６１】
一実施形態において、関数(f1)は、すべてのメディアインスタンスに関して使用される、受信器デバイスのメモリ内に記憶された関数とすることができる。別の実施形態において、関数(f1)は、タイプまたはカテゴリなど、メディアインスタンスの属性に基づいて、受信器デバイスのメモリ内に記憶された関数のグループから選択される関数とすることができる。一実施形態において、低ウォーターマークマージンの値は、関数(f1)の結果にかかわりなく、最小値(たとえば、256K)と最大値(たとえば、4M)との間に制約され得る。
【００６２】
ブロック706において、プロセッサは、低ウォーターマークマージンおよび決定された再生レートに少なくとも部分的に基づいて、受信器デバイスのキャッシュの高ウォーターマークマージンを決定することができる。一例として、高ウォーターマークマージン(HWM)は、次式に従って、低ウォーターマークマージン(LWM)に、再生レート(Rplayback)の関数(f2)を加えたものとして決定され得る。
HWM=LWM+f2 (Rplayback)
【００６３】
一実施形態において、関数(f2)は、すべてのメディアインスタンスに関して使用される、受信器デバイスのメモリ内に記憶された関数とすることができる。別の実施形態において、関数(f2)は、タイプまたはカテゴリなど、メディアインスタンスの属性に基づいて、受信器デバイスのメモリ内に記憶された関数のグループから選択される関数とすることができる。一実施形態において、f2(Rplayback)の値は、少なくとも最小値(たとえば、1M)になるように制約され得る。
【００６４】
図8に、メディアインスタンスに関連するデータに基づいて受信器デバイスのキャッシュに関する高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための実施方法を示す。一実施形態において、方法800の動作は、受信器デバイスのプロセッサ上で実行されるプリフェッチャモジュールによるなど、受信器デバイスのプロセッサによって実行され得る。一実施形態において、方法800の動作は、上で説明した方法400または方法500の動作に関連して実行され得る。
【００６５】
上で議論したように、打切りパターン係数は、受信器デバイスによって決定され得、あるいは、受信器デバイスからリモートのコンピュータ(たとえば、サーバ)によって決定され、受信器デバイスに供給され得る。したがって、オプションの実施形態において、ブロック801aにおいて、プロセッサは、受信器デバイスから使用可能な使用統計に基づいて、1つまたは複数の打切りパターン係数を決定し、記憶することができる。打切りパターンは、メディアインスタンスまたは受信器デバイスに関連付けられ得る。代替のオプションの実施形態において、ブロック801bにおいて、プロセッサは、1つまたは複数の打切りパターン係数を受信し、記憶することができる。たとえば、プロセッサは、リモートサーバから1つまたは複数の打切りパターン係数を受信し、その係数を受信器デバイスのメモリ内に記憶することができる。
【００６６】
上で説明したように、ブロック602において、プロセッサは、メディアインスタンスの再生レートを決定することができ、ブロック702において、プロセッサは、メディアインスタンスのバッファリングされた部分の変化のレートを決定することができる。ブロック802において、プロセッサは、受信器デバイスのキャッシュ内のメディアインスタンスのバッファリングされた部分の変化のレートおよび打切りパターン係数に少なくとも部分的に基づいて、受信器デバイスのキャッシュの低ウォーターマークマージンを決定することができる。たとえば、1つまたは複数の打切りパターン係数は、図7のブロック704を参照して上で議論した関数f1の係数とすることができる。この形において、決定される低ウォーターマークマージンは、打切りパターン係数に基づいて変化することができる。
【００６７】
ブロック804において、プロセッサは、打切りパターン係数、低ウォーターマークマージン、および決定された再生レートに少なくとも部分的に基づいて、受信器デバイスのキャッシュの高ウォーターマークマージンを決定することができる。たとえば、1つまたは複数の打切りパターン係数は、図7のブロック704およびブロック706を参照して上で議論した関数f1または関数f2の係数とすることができる。この形において、決定される高ウォーターマークマージンは、打切りパターン係数に基づいて変化することができる。
【００６８】
図9に、使用統計に基づいて打切りパターン係数ならびに/または高ウォーターマークマージンおよび低ウォーターマークマージン時間値を生成するための実施方法を示す。一実施形態において、方法900の動作は、ネットワークサーバまたはコンテンツプロバイダサーバなど、受信器デバイスからリモートなサーバによって実行され得る。一実施形態において、方法900の動作は、上で説明した方法400、方法500、方法600、および/または方法800の動作に関連して実行され得る。
【００６９】
ブロック902において、サーバは、打切りパラメータを受信し、かつ/または決定することができる。一実施形態において、サーバは、特定のメディアインスタンスを出力する複数の受信器デバイスから打切りパラメータを受信することができる。別の実施形態において、サーバは、受信器デバイスによって要求された最後の部分を判定するためなど、複数の受信器デバイスによるメディアインスタンスの部分のダウンロードを監視することによって、打切りパラメータを決定することができる。この形において、サーバは、メディアインスタンスが受信器デバイス上で打ち切られる時を識別することができる。ブロック904において、サーバは、受信された/判定された打切りパラメータに基づいて、使用統計(たとえば、打切りパターン)を更新することができる。たとえば、サーバは、具体的にあるメディアインスタンスに関しておよび/またはメディアインスタンスのタイプもしくはカテゴリに関して、平均打切り時間を追跡することができる。新しい打切りパラメータが受信される時に、使用統計は、打切りパラメータの増大するデータセットに基づいて更新され得る。
【００７０】
ブロック906において、サーバは、使用統計に基づいて、打切りパターン係数ならびに/または高ウォーターマークマージン時間値および低ウォーターマークマージン時間値を生成することができる。ブロック908において、サーバは、打切りパターン係数ならびに/または高ウォーターマークマージン時間値および低ウォーターマークマージン時間値を受信器デバイスに送ることができる。一実施形態において、打切りパターン係数ならびに/または高ウォーターマークマージン時間値および低ウォーターマークマージン時間値は、メディアサービスに関するオーバーヘッドシグナリング情報内などで、メディアインスタンスの要求とは独立に受信器デバイスに送られ得る。別の実施形態において、打切りパターン係数ならびに/または高ウォーターマークマージン時間値および低ウォーターマークマージン時間値は、メディアインスタンスのメタデータ内(たとえば、ヘッダ情報内)に含められ、メディアインスタンスと共に受信器デバイスに提供され得る。
【００７１】
様々な実施形態は、様々な受信器デバイスのいずれにおいても実施され得、その一例が図10に示されている。たとえば、受信器デバイス1000は、内部メモリ1004および1006に結合されたプロセッサ1002を含むことができ、内部メモリ1004および1006のうちの1つまたは複数は、説明したようにプリフェッチされたメディアインスタンスの部分を記憶するためのバッファとして機能するように構成され得る。内部メモリ1004および1006は、揮発性メモリまたは不揮発性メモリとすることができ、セキュアメモリおよび/または暗号化されたメモリ、アンセキュアメモリおよび/または暗号化されないメモリ、あるいはその任意の組合せとすることもできる。プロセッサ1002は、抵抗感知タッチスクリーン、静電容量感知タッチスクリーン、赤外線感知タッチスクリーン、または類似物などのタッチスクリーンディスプレイ1012にも結合され得る。さらに、受信器デバイス1000のディスプレイは、タッチスクリーン機能を有する必要はない。受信器デバイス1000は、プロセッサ1002に結合された、送り、受信するための、1つまたは複数の無線信号トランシーバ1008(たとえば、Peanut(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、Wi-Fi、RFラジオ)およびアンテナ1010を有することができる。受信器デバイス1000は、データネットワーク(たとえば、CDMA、TDMA、GSM（登録商標）、PCS、3G、4G、LTE、または任意の他のタイプのデータネットワーク)を介する通信を可能にする、プロセッサ1002に結合された、ワイヤレスモデムチップなどのネットワークインターフェース1016を含むことができる。ネットワークインターフェース1016は、説明したようにプリフェッチされるメディアインスタンスのダウンロードされた部分を受信するように構成され得る。受信器デバイス1000は、プロセッサ1002に結合された周辺デバイス接続インターフェース1018を含むことができる。周辺デバイス接続インターフェース1018は、1タイプの接続を受け入れるように単独で構成され、またはUSB、FireWire、Thunderbolt、PCIe、その他などの一般的なまたはプロプライエタリな様々なタイプの物理接続および通信接続を受け入れるように多様に構成され得る。周辺デバイス接続インターフェース1018は、同様に構成された周辺デバイス接続ポートにも結合され得、周辺デバイス接続インターフェース1018は、受信器デバイス1000およびプロセッサ1002を様々なネットワークに接続するためにネットワークインターフェースとして動作することができる。いくつかの実施形態において、周辺デバイス接続インターフェース1018は、説明したようにプリフェッチされるメディアインスタンスのダウンロードされた部分を受信するように構成され得る。受信器デバイス1000は、オーディオ出力を提供するためのスピーカ1014およびオーディオ入力を受け取るためのマイクロホン1015をも含むことができる。受信器デバイス1000は、プラスチック、金属、または材料の組合せで構築された、本明細書において議論されるコンポーネントのすべてまたはいくつかを収容するためのハウジング1020をも含むことができる。受信器デバイス1000は、使い捨てまたは再充電可能なバッテリなどの、プロセッサ1002に結合された電源1022を含むことができる。再充電可能なバッテリは、受信器デバイス1000の外部にある電源から充電電流を受けるために、周辺デバイス接続ポートにも結合され得る。
【００７２】
様々な実施形態は、図11に示されたサーバ1100など、様々な市販サーバデバイスのいずれにおいても実施され得る。そのようなサーバ1100は、通常、揮発性メモリ1102と、ディスク(disk)ドライブ1103などの大容量不揮発性メモリとに結合された、プロセッサ1101を含む。サーバ1100は、プロセッサ1101に結合された、フロッピディスク(disk)ドライブ、コンパクトディスク(disc)(CD)またはDVDディスク(disc)ドライブ1106をも含むことができる。サーバ1100は、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワーク、インターネット、公衆交換電話網、ならびに/またはセルラーデータネットワーク(たとえば、CDMA、TDMA、GSM（登録商標）、PCS、3G、4G、LTE、または任意の他のタイプのセルラーデータネットワーク)などのネットワーク1107とのネットワークインターフェース接続を確立するためにプロセッサ1101に結合されたネットワークアクセスポート1104をも含むことができる。
【００７３】
プロセッサ1002および1101は、上で説明した様々な実施形態の機能を含む様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または複数のプロセッサチップとすることができる。いくつかのデバイスにおいて、ワイヤレス通信機能専用の1つのプロセッサおよび他のアプリケーションの実行専用の1つのプロセッサなどの複数のプロセッサが、設けられてもよい。通常、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ1002および1101にロードされる前に、内部メモリ1004、1006、1102、および1103内に記憶され得る。プロセッサ1002および1101は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含むことができる。多数のデバイスにおいて、内部メモリは、揮発性メモリ、フラッシュメモリなどの不揮発性メモリ、またはその両方の混合とすることができる。本明細書において、メモリへの一般的な言及は、内部メモリ、またはデバイスに差し込まれるリムーバブルメモリと、プロセッサ1002および1101自体の中のメモリとを含む、プロセッサ1002および1101によってアクセス可能なメモリを指す。
【００７４】
前述の方法の説明およびプロセスフロー図は、単に例示的な例として提供され、様々な実施形態のステップを提示される順序で実行しなければならないことを要求または示唆することは意図されていない。当業者によって了解されるように、前述の実施形態におけるステップの順序は、任意の順序で実行され得る。「thereafter(その後)」、「then(次いで)」、「next(次に)」、その他などの単語は、ステップの順序を制限することを意図されたものではなく、これらの単語は、単に、方法の説明を通じて読者を案内するのに使用される。さらに、たとえば冠詞「a」、「an」、または「the」を使用する、単数形の請求項要素への言及は、その要素を単数に限定するものと解釈されてはならない。
【００７５】
本明細書において開示される実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施され得る。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、一般にそれらの機能性に関して上で説明された。そのような機能が、ハードウェアまたはソフトウェアのいずれとして実施されるのかは、特定の応用例およびシステム全体に課された設計制約に依存する。当業者は、特定の応用例ごとに様々な形で説明された機能性を実施することができるが、そのような実施判断が、本発明の範囲からの逸脱を引き起こすと解釈してはならない。
【００７６】
本明細書において開示される態様に関連して説明された様々な例示的な論理、論理ブロック、モジュール、および回路を実施するのに使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理、ディスクリートハードウェアコンポーネント、または本明細書において説明される機能を実行するように設計された、それらの任意の組合せを用いて実施されまたは実行され得る。汎用プロセッサは、マイクロプロセッサとすることができるが、代替案において、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアに関連する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成としても実施され得る。代替案においては、いくつかのステップまたは方法が、所与の機能に固有の回路網によって実行され得る。
【００７７】
1つまたは複数の例示的な態様において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せにおいて実施され得る。ソフトウェアにおいて実施される場合に、機能は、非一時的コンピュータ可読媒体上または非一時的プロセッサ可読媒体上の1つまたは複数の命令またはコードとして記憶され得る。本明細書において開示される方法またはアルゴリズムのステップは、非一時的コンピュータ可読記憶媒体上または非一時的プロセッサ可読記憶媒体上に存在することができるプロセッサ実行可能ソフトウェアモジュール内で実施され得る。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体とすることができる。限定ではなく例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROMもしくは他の光ディスク(disc)ストレージ、磁気ディスク(disk)ストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形で所望のプログラムコードを記憶するのに使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。ディスク(disk)およびディスク(disc)は、本明細書において使用される時に、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常はデータを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲内に含まれる。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品内に組み込まれ得る、非一時的プロセッサ可読媒体および/または非一時的コンピュータ可読媒体上の1つのコードおよび/または命令、コードおよび/または命令の任意の組合せ、あるいはコードおよび/または命令のセットとして存在することができる。
【００７８】
開示される実施形態の前述の説明は、当業者が本発明を作りまたは使用することを可能にするために提供される。これらの実施形態に対する様々な変更は、当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の趣旨または範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本発明は、本明細書において示される実施形態に限定されるものではなく、以下の特許請求の範囲、ならびに本明細書において開示される原理および新規な特徴と一致する最も広い範囲が与えられるべきである。
【符号の説明】
【００７９】
100  通信ネットワークシステム
102  受信器デバイス
104  セルラー塔または基地局
106  セルラー接続
108  サーバ
109  ルータ
110  インターネット
112  サーバ
114  ワイヤレスアクセスポイント
116  メディア取込デバイス
117  有線接続
118  接続
200  システムアーキテクチャ
202  クライアント
204  キャッシュ
206  プリフェッチャモジュール
208  モデムインターフェース
302  メディアインスタンス
304  再生された部分
306  バッファリングされた部分
308  未ダウンロード部分
310  キャッシュの先頭(SOC)
312  最終アクセス点(LAP)
314  キャッシュの終り(EOC)
316  最大キャッシュサイズ
318  高ウォーターマークマージン(HWM)
320  低ウォーターマークマージン(LWM)
400  実施方法
500  実施方法
600  実施方法
700  実施方法
800  方法
900  方法
1000  受信器デバイス
1002  プロセッサ
1004  内部メモリ
1006  内部メモリ
1008  無線信号トランシーバ
1010  アンテナ
1012  タッチスクリーンディスプレイ
1014  スピーカ
1015  マイクロホン
1016  ネットワークインターフェース
1018  周辺デバイス接続インターフェース
1020  ハウジング
1022  電源
1100  サーバ
1101  プロセッサ
1102  揮発性メモリ
1103  ディスクドライブ
1104  ネットワークアクセスポート
1106  コンパクトディスク(CD)またはDVDディスクドライブ
1107  ネットワーク
【図１】
2017524280.tif 000007
【図２】
2017524280.tif 000008
【図３】
2017524280.tif 000009
【図４】
2017524280.tif 000010
【図５】
2017524280.tif 000011
【図６】
2017524280.tif 000012
【図７】
2017524280.tif 000013
【図８】
2017524280.tif 000014
【図９】
2017524280.tif 000015
【図１０】
2017524280.tif 000016
【図１１】
2017524280.tif 000017
【手続補正書】
【提出日】平成28年12月1日(2016.12.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
受信器デバイス上でメディアインスタンスをプリフェッチするための方法であって、
前記受信器デバイスのプロセッサ内で、ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記受信器デバイスのキャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップであって、前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンは、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートの関数として決定され、前記関数は、前記メディアインスタンスの属性に基づいて選択される、決定するステップと、
前記プロセッサ内で、前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するステップと
を含む方法。
【請求項２】
前記プロセッサ内で、ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンおよび前記低ウォーターマークマージンを決定するステップは、
前記プロセッサ内で、メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて、前記メディアインスタンスの持続時間で除算された前記メディアインスタンスのサイズとして前記メディアインスタンスの再生レートを決定するステップと、
前記プロセッサ内で、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンを決定するステップと、
前記プロセッサ内で、前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記プロセッサ内で、前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップは、前記プロセッサ内で、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップを含み、打切りパターンは、再生が打ち切られた平均時間を示す、請求項2に記載の方法。
【請求項４】
前記受信器デバイスのキャッシュの前記低ウォーターマークマージンは、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数の関数として決定される、請求項3に記載の方法。
【請求項５】
前記プロセッサ内で、前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するステップをさらに含む、請求項3に記載の方法。
【請求項６】
前記打切りパターン係数をサーバから受信するステップをさらに含み、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項3に記載の方法。
【請求項７】
メディアインスタンスの部分をバッファリングするように構成されたキャッシュと、
メディアインスタンスのプリフェッチされた部分を受信するように構成されたネットワークインターフェースと、
前記キャッシュおよび前記ネットワークインターフェースに結合され、
ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップであって、前記キャッシュの前記低ウォーターマークマージンは、前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートの関数として決定され、前記関数は、前記メディアインスタンスの属性に基づいて選択される、決定するステップと、
前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するステップと
を含む動作を実行するようにプロセッサ実行可能命令を用いて構成されたプロセッサと
を含む受信器デバイス。
【請求項８】
ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップは、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの持続時間で除算された前記メディアインスタンスのサイズとして前記メディアインスタンスの再生レートを決定するステップと、
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するステップと
を含む、請求項7に記載の受信器デバイス。
【請求項９】
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するステップは、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するステップを含み、打切りパターンは、再生が打ち切られた平均時間を示す、請求項8に記載の受信器デバイス。
【請求項１０】
前記キャッシュの前記低ウォーターマークマージンは、前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数の関数として決定される、請求項9に記載の受信器デバイス。
【請求項１１】
前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するステップをさらに含む、請求項9に記載の受信器デバイス。
【請求項１２】
前記打切りパターン係数をサーバから受信するステップをさらに含み、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項9に記載の受信器デバイス。
【請求項１３】
メディアインスタンスの部分をバッファリングするように構成されたキャッシュと、
ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記キャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するための手段であって、前記キャッシュの前記低ウォーターマークマージンは、前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートの関数として決定され、前記関数は、前記メディアインスタンスの属性に基づいて選択される、決定するための手段と、
前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するための手段と
を含む受信器デバイス。
【請求項１４】
ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記キャッシュの前記高ウォーターマークマージンおよび前記低ウォーターマークマージンを決定するための手段は、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの持続時間で除算された前記メディアインスタンスのサイズとして前記メディアインスタンスの再生レートを決定するための手段と、
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するための手段と
を含む、請求項13に記載の受信器デバイス。
【請求項１５】
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記キャッシュの前記高ウォーターマークマージンを決定するための手段は、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するための手段を含み、打切りパターンは、再生が打ち切られた平均時間を示す、請求項14に記載の受信器デバイス。
【請求項１６】
前記キャッシュの前記低ウォーターマークマージンは、前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数の関数として決定される、請求項15に記載の受信器デバイス。
【請求項１７】
前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するための手段をさらに含む、請求項15に記載の受信器デバイス。
【請求項１８】
前記打切りパターン係数をサーバから受信するための手段をさらに含み、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項15に記載の受信器デバイス。
【請求項１９】
受信器デバイスのプロセッサに、
ダウンロードされるメディアインスタンスに関連するデータに基づいて、前記受信器デバイスのキャッシュの高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップであって、前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンは、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートの関数として決定され、前記関数は、前記メディアインスタンスの属性に基づいて選択される、決定するステップと、
前記決定された高ウォーターマークマージンおよび前記決定された低ウォーターマークマージンに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュへの前記メディアインスタンスの部分のダウンロードを制御するステップと
を含む動作を実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体。
【請求項２０】
前記記憶されたプロセッサ実行可能命令は、ダウンロードされる前記メディアインスタンスに関連するデータに基づいて、前記受信器デバイスのキャッシュの前記高ウォーターマークマージンおよび低ウォーターマークマージンを決定するステップが、
メディアインスタンス選択指示の受取りに応答して、前記メディアインスタンスに関連するデータに基づいて前記メディアインスタンスの持続時間で除算された前記メディアインスタンスのサイズとして前記メディアインスタンスの再生レートを決定するステップと、
前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップと
を含むように動作を受信器デバイスのプロセッサに実行させるように構成される、請求項19に記載の非一時的プロセッサ可読記憶媒体。
【請求項２１】
前記記憶されたプロセッサ実行可能命令は、前記低ウォーターマークマージンおよび前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップが、打切りパターン係数、前記低ウォーターマークマージン、および前記決定された再生レートに少なくとも部分的に基づいて前記受信器デバイスの前記キャッシュの前記高ウォーターマークマージンを決定するステップを含むように動作を受信器デバイスのプロセッサに実行させるように構成され、打切りパターンは、再生が打ち切られた平均時間を示す、請求項20に記載の非一時的プロセッサ可読記憶媒体。
【請求項２２】
前記記憶されたプロセッサ実行可能命令は、前記受信器デバイスの前記キャッシュの前記低ウォーターマークマージンが、前記受信器デバイスの前記キャッシュ内の前記メディアインスタンスのバッファリングされた部分の変化のレートおよび前記打切りパターン係数の関数として決定されるように動作を受信器デバイスのプロセッサに実行させるように構成される、請求項21に記載の非一時的プロセッサ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能命令は、前記受信器デバイスの使用統計に基づいて前記打切りパターン係数を決定するステップをさらに含む動作を受信器デバイスのプロセッサに実行させるように構成される、請求項21に記載の非一時的プロセッサ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能命令は、前記打切りパターン係数をサーバから受信するステップをさらに含む動作を受信器デバイスのプロセッサに実行させるように構成され、前記打切りパターン係数は、他の受信器デバイスの使用統計に少なくとも部分的に基づく、請求項21に記載の非一時的プロセッサ可読記憶媒体。
【国際調査報告】
2017524280.tif 000018
2017524280.tif 000019
2017524280.tif 000020