(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-28
(54)【発明の名称】ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理
(51)【国際特許分類】
H04N 21/2385 20110101AFI20221021BHJP
H04N 21/24 20110101ALI20221021BHJP
【FI】
H04N21/2385
H04N21/24
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022507638
(86)(22)【出願日】2020-08-10
(85)【翻訳文提出日】2022-03-18
(86)【国際出願番号】 US2020045666
(87)【国際公開番号】W WO2021030294
(87)【国際公開日】2021-02-18
(32)【優先日】2019-08-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】512333560
【氏名又は名称】フル・エルエルシー
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100212705
【氏名又は名称】矢頭 尚之
(74)【代理人】
【識別番号】100219542
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】シエ、ラン
(72)【発明者】
【氏名】フアン、ションラン
(72)【発明者】
【氏名】ジャン、ウェンハオ
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164SB22P
5C164SB41P
5C164YA21
(57)【要約】
いくつかの実施形態では、方法は、1つまたは複数のビデオがメディアプレーヤにおいてプレイされることに基づいて複数の表現についてのプレイバック情報を受信する。複数の表現は、ビデオのプレイバックに影響を及ぼす少なくとも1つの異なる特性を有する。プレイバック情報に基づいて複数の表現についてドロップフレーム測定値が予測される。次いで、ドロップフレーム測定値は、複数の表現についてのしきい値と比較される。本方法は、比較することに基づいて複数の表現の第1のセットを利用可能でないとしてマークする。メディアプレーヤがプレイバックのためのビデオを要求し、ビデオについての複数の表現の第1のセットが、メディアプレーヤによって要求されるのをブロックされたとき、複数の表現の第2のセットがメディアプレーヤに与えられる。
【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって、1つまたは複数のビデオがメディアプレーヤにおいてプレイされることに基づいて複数の表現についてのプレイバック情報を受信することと、ここにおいて、前記複数の表現が、前記ビデオのプレイバックに影響を及ぼす少なくとも1つの異なる特性を有する、
前記コンピューティングデバイスによって、前記プレイバック情報に基づいて前記複数の表現についてのドロップフレーム測定値を予測することと、
前記コンピューティングデバイスによって、前記ドロップフレーム測定値を前記複数の表現についてのしきい値と比較することと、
前記コンピューティングデバイスによって、前記比較することに基づいて前記複数の表現の第1のセットを利用可能でないとしてマークすることと、ここにおいて、前記メディアプレーヤがプレイバックのためのビデオを要求し、前記ビデオについての前記複数の表現の前記第1のセットが、前記メディアプレーヤによって要求されるのをブロックされたとき、前記複数の表現の第2のセットが前記メディアプレーヤに与えられる、
を備える、方法。
【請求項2】
前記複数の表現についての前記ドロップフレーム測定値を予測するように予測ネットワークをトレーニングすること
をさらに備える、請求項1に記載の方法。
【請求項3】
前記予測ネットワークをトレーニングすることが、
トレーニングのためのプレイバック情報のリストを選択することと、
プレイバック情報の前記リストからトレーニングサンプルを生成することと、
前記予測ネットワークをトレーニングするために前記トレーニングサンプルを使用することと
を備える、請求項2に記載の方法。
【請求項4】
前記トレーニングサンプルを生成することが、
前記プレイバック情報に基づいてトレーニングサンプルについてのドロップフレーム測定値を生成することと、
前記プレイバック情報に基づいて前記トレーニングサンプルについての時間値を生成することと
を備える、請求項3に記載の方法。
【請求項5】
前記ドロップフレーム測定値が、プレイバック情報の第1のインスタンスからのドロップフレーム測定値を備える、請求項4に記載の方法。
【請求項6】
前記時間値が、プレイバック情報の前記第1のインスタンスおよびプレイバック情報の第2のインスタンスからの時間値の差を備える、請求項5に記載の方法。
【請求項7】
前記トレーニングサンプルを生成することは、
プレイバック情報の複数のインスタンスを含むトレーニングサンプルを生成すること、ここにおいて、前記複数のインスタンスの数が前記予測ネットワークの入力の数に等しい、
を備える、請求項3に記載の方法。
【請求項8】
前記トレーニングサンプルが複数の時間値を含み、ここにおいて、時間値の数が前記予測ネットワークの入力の前記数に等しい、請求項7に記載の方法。
【請求項9】
前記複数の表現の前記第1のセットを利用可能でないとしてマークすることは、
前記予測されたドロップするフレーム測定値が前記しきい値を満たすとき、前記表現を利用不可能としてマークすること
を備える、請求項1に記載の方法。
【請求項10】
前記ビデオのためのプレイバックについての要求を受信することと、
前記ビデオについての前記複数の表現の前記第2のセットを選択することと
をさらに備える、請求項1に記載の方法。
【請求項11】
前記ビデオについての前記複数の表現の前記第2のセットを選択することが、
前記ビデオについて記憶された表現を決定することと、
どの表現が利用不可能としてマークされるかを決定することと、
記憶され、利用不可能としてマークされない表現から、表現の前記第2のセットを選択することと
を備える、請求項10に記載の方法。
【請求項12】
前記ビデオについての前記複数の表現の前記第2のセットを、前記メディアプレーヤがプレイバックのための前記複数の表現の前記第2のセットのうちの1つを選択することを可能にするために、前記メディアプレーヤに送ること
をさらに備える、請求項10に記載の方法。
【請求項13】
前記ビデオについての前記複数の表現の前記第2のセットについての前記予測されたドロップするフレーム測定値を前記メディアプレーヤに送ること、ここにおいて、前記メディアプレーヤが、前記ビデオのプレイバック中に前記複数の表現の前記第2のセットのうちの1つを選択するために、前記予測されたドロップするフレーム測定値を使用する、
をさらに備える、請求項12に記載の方法。
【請求項14】
前記複数の表現が解像度とフレームレートとの異なる組合せを有する、請求項12に記載の方法。
【請求項15】
命令を含んでいる非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、
1つまたは複数のビデオがメディアプレーヤにおいてプレイされることに基づいて複数の表現についてのプレイバック情報を受信することと、ここにおいて、前記複数の表現が、前記ビデオのプレイバックに影響を及ぼす少なくとも1つの異なる特性を有する、
前記プレイバック情報に基づいて前記複数の表現についてのドロップフレーム測定値を予測することと、
前記ドロップフレーム測定値を前記複数の表現についてのしきい値と比較することと、
前記比較することに基づいて前記複数の表現の第1のセットを利用可能でないとしてマークすることと、ここにおいて、前記メディアプレーヤがプレイバックのためのビデオを要求し、前記ビデオについての前記複数の表現の前記第1のセットが、前記メディアプレーヤによって要求されるのをブロックされたとき、前記複数の表現の第2のセットが前記メディアプレーヤに与えられる、
を行うために動作可能であるようにコンピュータシステムを制御する、非一時的コンピュータ可読記憶媒体。
【請求項16】
前記複数の表現についての前記ドロップフレーム測定値を予測するように予測ネットワークをトレーニングすること
を行うためにさらに動作可能である、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記複数の表現の前記第1のセットを利用可能でないとしてマークすることは、
前記予測されたドロップするフレーム測定値が前記しきい値を満たすとき、前記表現を利用不可能としてマークすること
を備える、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記ビデオについての前記複数の表現の前記第2のセットを、前記メディアプレーヤがプレイバックのための前記複数の表現の前記第2のセットのうちの1つを選択することを可能にするために、前記メディアプレーヤに送ること
を行うためにさらに動作可能である、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記ビデオについての前記複数の表現の前記第2のセットについての前記予測されたドロップするフレーム測定値を前記メディアプレーヤに送ること、ここにおいて、前記メディアプレーヤが、前記ビデオのプレイバック中に前記複数の表現の前記第2のセットのうちの1つを選択するために、前記予測されたドロップするフレーム測定値を使用する、
を行うためにさらに動作可能である、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
1つまたは複数のコンピュータプロセッサと、
命令を備える非一時的コンピュータ可読記憶媒体と
を備える装置であって、前記命令は、実行されたとき、
1つまたは複数のビデオがメディアプレーヤにおいてプレイされることに基づいて複数の表現についてのプレイバック情報を受信することと、ここにおいて、前記複数の表現が、前記ビデオのプレイバックに影響を及ぼす少なくとも1つの異なる特性を有する、
前記プレイバック情報に基づいて前記複数の表現についてのドロップフレーム測定値を予測することと、
前記ドロップフレーム測定値を前記複数の表現についてのしきい値と比較することと、
前記比較することに基づいて前記複数の表現の第1のセットを利用可能でないとしてマークすることと、ここにおいて、前記メディアプレーヤがプレイバックのためのビデオを要求し、前記ビデオについての前記複数の表現の前記第1のセットが、前記メディアプレーヤによって要求されるのをブロックされたとき、前記複数の表現の第2のセットが前記メディアプレーヤに与えられる、
を行うために動作可能であるよう前記1つまたは複数のコンピュータプロセッサを制御する、装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本開示は、すべての目的のために、その内容全体が参照により本明細書に組み込まれる、2019年8月15日に出願された、「Prediction-Based Dropped Frame Handling Logic in Video Playback」と題する、米国非仮出願第16/541,999号の優先権を主張する。
【背景技術】
【0002】
[0002]ビデオをプレイするとき、メディアプレーヤは、適時に復号されないビデオフレームをドロップし得る。ビデオフレームがドロップされたとき、メディアプレーヤは、ビデオフレームを表示することを試みない。メディアプレーヤは、異なる理由でビデオフレームをドロップし得る。たとえば、メディアプレーヤは、ビデオフレームの復号が表示最終期限に間に合わなかった場合、ビデオフレームをドロップし得る。たとえば、フレームの復号が、指定された時間期間よりも長くかかった場合、フレームはドロップされる。別の例では、ビデオ中の前のフレームを表示すると、メディアプレーヤは、前のフレームの表示後のある時間期間内に、後のフレームが復号され、表示のために利用可能であることを必要とし得る。
【0003】
[0003]番組またはムービーなど、ビデオは、異なる解像度、フレームレートなど、異なる特性を含む複数の表現において符号化され得る。それらの特性の異なる組合せが使用され得る。すなわち、番組は、第1の解像度および第1のフレームレート、第1の解像度および第2のフレームレート、第2の解像度および第1のフレームレート、第2の解像度および第2のフレームレート、第3の解像度および第1のフレームレートなどにおいて符号化され得る。プレイバック中に、これらのビデオ表現のうちのいくつかは、表現について表示されるフレームの数に対するドロップされるフレームの数の測定値である、高ドロップフレーム(dropped-frame)比につながり得る。ビデオフレームのドロップは、高解像度または高フレームレートなど、いくつかの特性を有するビデオ表現をプレイするときに発生し得る。より高い解像度は、より多くのピクセルがフレーム中に含まれることを意味し、より高いフレームレートは、より多くのフレームが時間期間ごとに送られることを意味する。より高い解像度またはより高いフレームレートは、時間期間中にフレームを復号するためにメディアプレーヤにおいてより多くのコンピューティングリソースを必要とする。コンピューティングリソースが十分でないとき、メディアプレーヤは、必要とされる時間期間内にフレームを復号することができず、フレームのドロップが生じる。
【0004】
[0004]プレイバック中のフレームのドロップは、プレイバックの不連続性につながり、ユーザのエクスペリエンスの品質を低下させ得る。たとえば、フレームがドロップされるので、ユーザは、いくつかのフレームがビデオ中に表示されないために不安定になり得るコンテンツを見ることになる。また、メディアプレーヤは、ドロップフレームがバッファ中のフレームの量を減少させるので、再バッファリング(rebuffering)を経験することがあり、メディアプレーヤは、プレイバックを続けるために、いくつかのフレームが復号され、バッファに記憶されるまで、待たなければならないことがある。
【図面の簡単な説明】
【0005】
【
図1】[0005]いくつかの実施形態による、ドロップフレーム測定値を予測するための簡略化されたシステムを示す図。
【
図2】[0006]いくつかの実施形態による、クライアントデバイスのより詳細な例を示す図。
【
図3】[0007]いくつかの実施形態による、予測ドロップフレームハンドリング論理(handling logic)のより詳細な例を示す図。
【
図4】[0008]いくつかの実施形態による、予測ネットワークをトレーニングするための簡略フローチャート。
【
図5】[0009]いくつかの実施形態による、履歴プレイバック性能(historical playback performance)サンプルとタイムスタンプとの間の関係の一例を示す図。
【
図6】[0010]いくつかの実施形態による、トレーニングサンプルの一例を示す図。
【
図7】[0011]いくつかの実施形態による、予測ネットワークの一例を示す図。
【
図8】[0012]いくつかの実施形態による、ドロップフレームハンドリング予測のより詳細な例を示す図。
【
図9】[0013]いくつかの実施形態による、表現を更新するための方法の簡略フローチャート。
【
図10】[0014]いくつかの実施形態による、プレイバック中にドロップフレーム予測を使用するための方法の簡略フローチャート。
【
図11】[0015]一実施形態による、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信しているビデオストリーミングシステムを示す図。
【
図12】[0016]ビデオコンテンツおよび広告を視聴するための装置の概略図。
【発明を実施するための形態】
【0006】
[0017]ビデオプレイバックシステムのための技法が本明細書で説明される。以下の説明では、説明の目的で、いくつかの実施形態の完全な理解を与えるために、多数の例および具体的な詳細が記載される。特許請求の範囲によって定義されるいくつかの実施形態は、単独で、または以下で説明される他の特徴との組合せで、これらの例における特徴の一部または全部を含み得、本明細書で説明される特徴と概念との変更形態と等価物とをさらに含み得る。
【0007】
[0018]いくつかの実施形態は、ビデオについてのどの表現が、しきい値を上回るドロップフレーム比を生じ得るかを予測する。たとえば、ビデオは、ビデオのそれぞれの表現のプレイバックに影響を及ぼし得る、解像度、フレームレートなど、特性の異なる組合せを有する複数の表現において符号化され得る。いくつかの実施形態は、ビデオについての1つまたは複数の表現が、プレイバック中に、ビデオをプレイしているメディアプレーヤにとって利用不可能であるべきであるかどうかを決定するために、そのメディアプレーヤについての履歴プレイバック性能を使用し得る。たとえば、予測ネットワークは、ユーザがプレイバックのためのビデオを要求する前に、ビデオの表現についての、ドロップフレーム比など、ドロップフレーム測定値を予測し得る。予測されたドロップフレーム比がしきい値を上回る場合、システムは、その表現を利用不可能であるとしてマークし得る。メディアプレーヤがプレイバックのためのビデオを要求したとき、システムは、メディアプレーヤから利用可能でない表現をブロックしながら、プレイバックのために利用可能であるビデオについての表現のリストを与え得る。
【0008】
[0019]したがって、高ドロップフレーム比を生じることが予測されたいくつかの表現をメディアプレーヤが要求することを可能にしないことによって、メディアプレーヤにおけるビデオのプレイバックは改善され得る。たとえば、メディアプレーヤは、高ドロップフレーム比を生じ得る表現を要求しないことがある。その表現がブロックされなかった場合、メディアプレーヤはその表現を要求し得、その場合、ビデオをプレイする間、メディアプレーヤは高ドロップフレーム比を経験し得る。これを検出すると、メディアプレーヤは別の表現を要求し得る。しかしながら、メディアプレーヤは、表現を使用する間に経験されたドロップフレームにより、プレイバック問題を経験していることがある。表現が高ドロップフレーム比を生じ得ることを予測することによって、いくつかの実施形態は、高ドロップフレーム比を生じ得る表現をメディアプレーヤに要求させることを回避し、それにより、いくつかのプレイバック問題を回避する。
【0009】
[0020]システム
[0021]
図1は、いくつかの実施形態による、ドロップフレーム測定値を予測するための簡略化されたシステム100を示す。システム100はサーバシステム102とクライアントデバイス104とを含むが、複数のサーバシステム102および複数のクライアント104が使用され得る。クライアントデバイス104は、スマートフォン、タブレットデバイス、セットトップボックス、テレビジョンなど、または上記の任意の組合せなど、ビデオをプレイすることができるコンピューティングデバイスであり得る。クライアントデバイス104は、ビデオをプレイすることができるメディアプレーヤ110を含み得る。たとえば、メディアプレーヤ110は、ビデオ配信システムのサーバシステム102にビデオを要求し得る。いくつかの実施形態では、ビデオ配信システムは、メディアプレーヤ110がそこに要求することができるビデオのライブラリを提供し得る。
【0010】
[0022]サーバシステム102は、ストレージ108中にビデオの異なるビデオ表現を含み得る。ビデオ表現は特性の組合せを含む。たとえば、特性は、解像度およびフレームレートを含み得る。フレームレートは、毎秒など、時間期間ごとに送られるフレームの数であり得る。解像度は、ビデオフレーム中のピクセルの測定値である。たとえば、解像度は、1024×768、1920×1080などであり得る。解像度720pは、1280個のピクセルの幅および720個のピクセルの高さであり得る、1280×720ピクセルであり得る。1080pの解像度は、ビデオフレーム中の1920個のピクセルの幅および1080個のピクセルの高さである、1920×1080であり得る。ビットレートは、毎秒送られるデータの量であり得、使用される解像度およびフレームレートに依存し得る。特性から、異なる組合せが形成され得る。
【0011】
[0023]各表現は、表現の特性を含むビデオファイルに関連し得、たとえば、ビデオファイルのビデオは、表現に関連する解像度およびフレームレートを有し得る。すなわち、同じムービーが、異なる解像度および/またはフレームレートを有する異なるファイルに記憶され得る。また、複数の異なるビデオが同じ表現に関連し得る。たとえば、ビデオのライブラリにおいて提供される各ビデオ(たとえば、番組、ムービーなど)について、サーバシステム102は、異なる特性を有する異なる表現を記憶する。すなわち、第1のムービーと第2のムービーとは、両方とも、第1の表現において符号化される。
【0012】
[0024]異なる特性は、メディアプレーヤ110におけるプレイバックに影響を及ぼし得る。たとえば、より高い解像度の表現は、メディアプレーヤ110において復号するのにより長くかかり得る。また、より高いフレームレートは、復号のためにメディアプレーヤ110に、毎秒など、時間期間ごとにより多くのフレームを配信し得る。解像度とフレームレートとの異なる組合せは、ビデオフレームが復号されるのにどのくらいの時間がかかるかに応じて、フレームの復号時間、したがってビデオの表示に影響を及ぼし得る。また、他のファクタがドロップフレームの数に影響を及ぼし得、たとえば、サーバシステム102とクライアントデバイス104との間の利用可能帯域幅は、フレームについての情報を受信するのにどのくらいの時間がかかるかに影響を及ぼし得、これは、ビデオフレームの復号に影響を及ぼし得る。たとえば、高解像度または高フレームレートの表現がクライアントデバイス104に送られている場合、低帯域幅接続は、より少数のビデオフレームが、毎秒など、時間期間ごとにクライアントデバイス104によって受信されることを生じ得、これは、ビデオフレームが表示されるべきであったときにそれが受信されなかったことを意味し得る。さらに、クライアントデバイス104におけるコンピューティングリソース使用は、コンピューティングリソースが利用可能でない場合またはコンピューティングリソース使用スパイク(computing resource usage spike)がある場合、復号時間がより長くかかることになるので、復号時間に影響を及ぼし得る。たとえば、ドロップフレームの数は、コンピュータ処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ストレージなど、ハードウェアの性能によって影響を及ぼされ得る。たとえば、高リソース負荷が発生している場合、デコーダは、指定された時間間隔内にフレームを復号することが可能でないことがある。
【0013】
[0025]メディアプレーヤ110がビデオの表現をプレイしているとき、適応ストリーミング論理112が、ドロップされているフレームの数を分析し得る。適応ストリーミング論理112は、新しい表現に切り替えるべきかどうかを決定するために、時間ウィンドウ中にドロップされているフレームの数に基づくドロップフレーム測定値を使用し得る。ドロップフレーム測定値は、時間ウィンドウ中にドロップされることなしにプレイされるフレームの数に対するドロップされているフレームの数の比を測定し得る、ドロップフレーム比であり得る。ドロップフレーム比は説明の目的で使用されるが、時間期間におけるドロップフレームのカウントなど、ドロップフレームの他の測定値が使用され得る。ドロップフレーム比がしきい値を超える場合、適応ストリーミング論理112は、別の表現に切り替えることを決定し得る。適応ストリーミング論理112は、ビデオのプレイバック中に上記の論理を実施する。したがって、メディアプレーヤ110は、フレームがビデオのプレイバック中にドロップされているいくらかの時間を経験し得、これは、ユーザのためのプレイバックエクスペリエンスに影響を及ぼし得る。たとえば、フレームがドロップされた場合、ビデオのプレイバックは、いくつかのフレームがビデオ中に表示されないことにより、不安定になり得る。メディアプレーヤ110がより低い解像度をもつ表現に切り替えた場合、ドロップフレームの数は、より低い解像度のフレームが、復号されるべきより少数のピクセルを有することにより、減少し始め得る。高使用率を経験しているハードウェアをもつクライアントデバイス104は、より低い解像度のフレームをより高速に復号することが可能であり得る。ドロップフレームの数の低減は、プレイバックエクスペリエンスを改善し得る。
【0014】
[0026]クライアントデバイス104があるビデオの表現をプレイしており、高ドロップフレーム比が検出されたとき、同じ表現において符号化される別のビデオをプレイしているときに高ドロップフレーム比が発生し得る高い確率があり得る。すなわち、ドロップフレーム比は、ビデオ表現とクライアントデバイス性能とに依存し得、どのコンテンツがプレイされているかに依存しない。
【0015】
[0027]別の表現に切り替える前に多数のドロップフレームを生じ得る表現をプレイすることを回避するために、予測ドロップフレームハンドリング論理106は、ビデオについての表現のプレイバックの前に、プレイバックの品質を劣化させるドロップフレーム比を生じ得るビデオの表現を予測し得る。たとえば、ビデオのプレイバックが開始する前に、予測ドロップフレームハンドリング論理106は、どの表現がしきい値を上回るドロップフレーム比を生じ得るかを決定するために、ビデオの表現を分析し得る。予測ドロップフレームハンドリング論理106は、次いで、これらの表現を利用不可能であるとしてマークし得、これは、メディアプレーヤ110がプレイバックのためにこれらの表現を要求することができないことを意味する。メディアプレーヤ110がビデオのプレイバックを開始するとき、メディアプレーヤ110は、予測ドロップフレームハンドリング論理106によって利用不可能とマークされなかった表現を要求することができる。したがって、メディアプレーヤ110は、高ドロップフレーム比を生じ得る表現を要求することを回避し得、これは、高ドロップフレーム比を生じるある表現から、それほど多くのフレームをドロップしないことがある別の表現に切り替える必要がないことによって、ビデオのプレイバック品質を改善し得る。
【0016】
[0028]クライアントデバイス
[0029]
図2は、いくつかの実施形態による、クライアントデバイス104のより詳細な例を示す。メディアプレーヤ110は、ビデオを表示し得るユーザインターフェース202を含み得る。さらに、ユーザインターフェース202は、ユーザが、プレイするためのビデオを選択するためにビデオライブラリをブラウズすることを可能にし得る。ユーザインターフェース202においてビデオフレームを表示する前に、メディアプレーヤ110は、符号化されたビデオフレームを受信し、そのビデオフレームを復号する。たとえば、ダウンローダー210は、コンテンツ配信ネットワークなど、サーバシステム102または別のシステムからビデオの表現のためのビデオフレームをダウンロードし得る。
【0017】
[0030]メディアプレーヤ110が受信するビデオフレームは、符号化され、次いで、メディアプレーヤ110がユーザインターフェース202においてそれらのフレームを表示することができるようになる前にデコーダ212によって復号される必要がある。復号時間は、表現の特性に基づいて変動し得る。たとえば、より高い解像度のビデオフレームは、より低い解像度をもつフレームと比較してより多くの情報が復号されるので、デコーダ212がビデオフレームを復号するのにより長くかかり得る。高フレームレート表現は、時間期間にわたってより多くのフレームをデコーダ212に送り得、これは、より低いフレームレートの表現と比較して、時間期間中により多数のフレームを復号するためにより多くのコンピューティングリソースが必要とされるので、デコーダ212が、ビデオフレームを復号するのにより長くかかることを引き起こし得る。また、フレームレートと復号時間とドロップフレーム比との間の関係は、デコーダ212の設定によって決定される。デコーダ212が、30フレーム毎秒(fps)の最大フレームレートをもつビデオを復号するように構成された場合、30fpsよりも高いフレームレートをもつビデオをプレイするとき、復号時間とドロップフレーム比とは、高くなることになる。一方、デコーダ212が、60fpsの最大フレームレートをもつビデオを復号するように構成された場合、デコーダ212は60fpsビデオを復号することができるので、30fpsの最大フレームレートをもつビデオをプレイするとき、復号時間とドロップフレーム比とは、高くならないことがある。デコーダ212がビデオフレームを復号すると、メディアプレーヤ110は、ユーザインターフェース202においてビデオフレームを表示することができる。ビデオフレームが順次復号されるにつれて、メディアプレーヤ110は、ユーザインターフェース202において連続的にビデオフレームをプレイする。
【0018】
[0031]適応ビットレート論理206が、ビデオの異なる表現を要求し得る。たとえば、適応ビットレート論理206が、利用可能帯域幅が低下していることを検出した場合、適応ビットレート論理206は、より低い解像度および/またはフレームレートを含む表現を要求し得る。また、マルチコンテンツ配信ネットワーク(CDN)切替え論理208が、異なるコンテンツ配信ネットワークにいつ切り替えるべきかを決定し得る。たとえば、CDNが低下し、メディアプレーヤ110にビデオを配信することができないとき、マルチCDN切替え論理208は、ビデオを要求すべき別のCDNを決定し得る。
【0019】
[0032]プレイバック中(in-playback)ドロップフレームハンドリング論理204が、ビデオのプレイバック中にドロップされているフレームの数を分析し得る。ドロップフレーム比(または、1秒当たりのドロップフレームの数など、別の測定値)が、ドロップフレーム比が時間ウィンドウ中にしきい値よりも大きくなるなど、しきい値を満たす場合、プレイバック中ドロップフレームハンドリング論理204は、ビデオの異なる表現を要求するための指示を適応ビットレート論理206に送り得る。たとえば、適応ビットレート論理206は、より低い解像度またはより低いフレームレートを有する表現を要求し得る。また、プレイバック中ドロップフレームハンドリング論理204は、ビデオのプレイバックの残りの間、適応ビットレート論理206がその表現を要求するのをブロックし得る。
【0020】
[0033]いくつかの実施形態では、プレイバック中ドロップフレームハンドリング論理204は、表現をブロックすべきかどうかを決定するために、以下のプロセスを使用し得る。i番目の間隔において、プレーヤは、特定のビデオ表現Rをプレイしている。変数diはドロップフレームの数を示し、変数fiは総フレーム数を示す。間隔の持続時間は、定数T、たとえば、1秒である。ドロップフレーム比は、以下のように、スライディングウィンドウにおける測定値に従って計算される。
【0021】
【0022】
ここで、スライディングウィンドウのサイズはΔであり、SMOOTH_PARAMの値は、結果を平滑化するための定数である。上記は、スライディングウィンドウにおけるフレームの総数にわたるドロップフレームの数を測定する。ドロップフレーム比がしきい値よりも大きい場合、その特定のビデオ表現は、プレイバックの残りの間ブロックされることになる。
【0023】
[0034]サーバシステム
[0035]
図3は、いくつかの実施形態による、予測ドロップフレームハンドリング論理106のより詳細な例を示す。予測ドロップフレームハンドリング論理106は、ビデオについての、メディアプレーヤ110にとって利用不可能としてマークされるべきである表現を選択し得る。予測ドロップフレームハンドリング論理106は、どの表現がクライアントデバイス104のメディアプレーヤ110にとって利用不可能としてマークされるべきであるかを決定するために、ビデオの表現のすべてなど、ビデオについての表現を分析し得る。クライアントデバイス104中の1つのメディアプレーヤ110についての1つの分析が説明されたが、予測ドロップフレームハンドリング論理106は、複数のクライアントデバイス104中で動作している複数のメディアプレーヤ110についての分析を実施し得る。たとえば、各メディアプレーヤ110とクライアントデバイス104との組合せは、異なる状態を経験し、ビデオのプレイバックに影響を及ぼし得る異なるコンピューティングリソースを有し得る。
【0024】
[0036]ビデオ表現セレクタ302が、ストレージ108中のビデオについて要求され得るビデオ表現から表現を選択し得る。いくつかの実施形態では、表現は、ビデオ表現の特性について説明する特徴リストに関連し得る。いくつかの実施形態では、特徴リストは、フレームレートと、解像度と、デコーダタイプとを含み得る。解像度は、ピクセルの幅および高さによって表され得、フレームレートは、毎秒配信されるフレームの数によって表され、デコーダタイプは、表現を復号するために必要とされるデコーダのタイプに基づき得る。
【0025】
[0037]履歴プレイバック性能セレクタ304が、表現について、ストレージ108から履歴プレイバック性能情報を選択し得る。たとえば、クライアントデバイス104のためのメディアプレーヤ110は、同じ解像度またはフレームレートなど、同じ特性をもつ表現を有する異なるビデオをプレイしていることがある。履歴プレイバック性能セレクタ304は、それらのビデオからの表現について、プレイバック性能情報を選択し得る。履歴プレイバック性能は、サンプルが、プレイバック中のドロップフレーム比と対応するタイムスタンプとのリストであり得るなど、プレイバックの部分からのサンプルであり得る。プレイバック性能リストは、次のように示され得る。
【0026】
【0027】
ここで、変数
【0028】
【0029】
は、ユーザiについてのビデオ表現Rのプレイバック中の平均ドロップフレーム比であり、変数jは、表現をプレイするセッションのインデックスであり、変数
【0030】
【0031】
は、ビデオ表現のプレイバックの開始タイムスタンプであり、niは、特定の表現をプレイするi番目のユーザのセッションの数である。
【0032】
[0038]次いで、履歴プレイバック性能セレクタ304は、予測ネットワーク306に表現と履歴性能情報とを与える。予測ネットワーク306は、次いで、その表現についてのドロップフレーム比を予測し得る。たとえば、ドロップフレーム比は、ビデオの表現がクライアントデバイス104によってプレイされる場合の予測である。予測ネットワーク306の使用は、以下でより詳細に説明される。
【0033】
[0039]ビデオ表現利用可能性論理310は、ドロップフレーム比に基づいて、表現を利用可能または利用可能でないとしてマークし得る。たとえば、ドロップフレーム比が、しきい値を上回るなど、しきい値を満たす場合、ビデオ表現利用可能性論理310は、表現を利用不可能としてマークし得る。たとえば、正常に復号され、プレイされるフレームの数と比較したドロップフレームの数が比を上回ることをドロップフレーム比が示す場合、ビデオ表現利用可能性論理310は、表現を利用不可能としてマークする。すなわち、その表現を使用するプレイバックは、プレイバックの品質を劣化させ得るいくつかのドロップフレームを生じ得る。ストレージ108は、次いで、表現についての利用可能性を記憶する。たとえば、ビデオ表現利用可能性論理310は、表現が利用不可能であることを示すために、その表現に伴うフラグを記憶し得る。
【0034】
[0040]トレーニング
[0041]ドロップフレーム比予測を実施する前に、予測ネットワーク306がトレーニングされ得る。たとえば、予測ネットワーク306は、ネットワークのパラメータのトレーニングに基づいてドロップフレーム比を予測することができるニューラルネットワークであり得る。ニューラルネットワークが説明されたが、ルールベースの方法など、他の予測方法が使用され得る。いくつかの実施形態では、トレーニングは、異なるユーザに関連する異なるクライアントデバイスからの、または使用されているクライアントデバイスのみからのサンプルを使用して実施され得る。
【0035】
[0042]
図4は、いくつかの実施形態による、予測ネットワーク306をトレーニングするための簡略フローチャート400を示す。402において、予測ドロップフレームハンドリング論理106は、1つまたは複数のクライアントデバイスによるプレイバックからの表現について、履歴プレイバック性能サンプルを選択する。プレイバック性能サンプルは、ビデオの部分についてのドロップフレーム比および時間をリストし得る。
【0036】
[0043]404において、予測ドロップフレームハンドリング論理106は、タイムスタンプによって履歴プレイバック性能サンプルを編成する。たとえば、予測ドロップフレームハンドリング論理106は、タイムスタンプによって連続的に履歴プレイバック性能サンプルを編成し得る。同様のタイムスタンプとともにサンプルをグループ化することなどによる、履歴プレイバック性能サンプルを編成する他の方法が諒解され得る。タイムスタンプは、時間とともに増加する時間測定値であり得る。たとえば、時間とともに増加する、UNIX(登録商標)タイムスタンプなどのタイムスタンプが使用され得る。UNIXタイムスタンプは、オペレーティングシステムによって生成され、時間とともに連続的に増加する。たとえば、第1の日のある時間が1,000,000の第1のタイムスタンプを含み得、その日のもっと後の後続の時間が1,000,010のタイムスタンプを含み得、別のタイムスタンプ翌日がタイムスタンプ1,000,100を含み得、以下同様である。特徴としてのタイムスタンプの使用は、コンピュータ処理ユニット(CPU)使用率が短い時間期間中に鋭く増加するときなど、ランダムコンピューティングリソース使用スパイクの影響を回避し得る。たとえば、ユーザが、表現#1をもつビデオを見、メディアプレーヤ110が、CPUリソース使用スパイクによって引き起こされる、タイムスタンプ#1における高ドロップフレーム比を検出する場合である。メディアプレーヤ110は、ビデオのプレイバックセッションの残りの間、表現#1を無効にし得る。別の日に、クライアントデバイス104は、表現#1をもつ別のビデオを見る。メディアプレーヤ110は、タイムスタンプ#2において高ドロップフレーム比を検出し、これも、CPUリソース使用スパイクによって引き起こされ得る。タイムスタンプ#1とタイムスタンプ#2との間の差が大きい場合、表現#1が次に使用されるときにその表現が高ドロップフレーム比につながることになると言うことは、あまり予測的でない。これは、表現がCPUリソース使用スパイクにランダムに関連していることがあり、表現がドロップフレーム問題を有することなしに2つの時間の間にプレイされていることがあるからである。しかしながら、表現#1が短い時間期間内に複数の高ドロップフレーム比を生じた場合、その表現が常に高ドロップフレーム比を生じることになることは、より予測的であり得る。短い時間期間はしきい値よりも大きくなり得ることに留意されたい。しかしながら、表現はビデオのプレイバックの残りの間使用されないので、その場合、その表現が次に高ドロップフレーム比を経験し得るときは、プレイされる次のビデオである。これは、表現が使用されるときはいつでも、クライアントデバイス104がその表現についてのドロップフレーム問題を有し得ることを示し得る。
【0037】
[0044]406において、予測ドロップフレームハンドリング論理106は、サンプルおよびタイムスタンプに基づいてトレーニングセットを作成する。トレーニングセットを作成する1つの方法は、以下の通りである。K個のサンプル
【0038】
【0039】
を仮定すれば、予測ドロップフレームハンドリング論理106は、タイムスタンプ
【0040】
【0041】
におけるドロップフレーム比
【0042】
【0043】
を予測することを希望する。トレーニングセットを構築するために、予測ドロップフレームハンドリング論理106は、Liとして示されるサンプル中のポイントをグランドトゥルースとして使用し、たとえば、
【0044】
【0045】
である。サンプル中のポイントLは、予測ネットワーク306への入力されたサンプルの後の、次のドロップフレーム比であり得る。すなわち、予測ネットワーク306への入力は、グランドトゥルースの前のK個のサンプルであり、たとえば、
【0046】
【0047】
であり、ここで、
【0048】
【0049】
は、2つの連続するサンプル間の時間差であり、たとえば、
【0050】
【0051】
である。
【0052】
[0045]
図5は、いくつかの実施形態による、履歴プレイバック性能サンプルとタイムスタンプとの間の関係の例500を示す。502において、履歴プレイバック性能サンプルが示されており、504において、対応するタイムスタンプが示されている。タイムスタンプ間の差は、予測において使用され得る。したがって、506において、ドロップフレーム比に関連する連続するタイムスタンプ間のデルタが計算される。
【0053】
[0046]トレーニング入力は、502におけるドロップフレーム比と、506におけるタイムスタンプデルタとから与えられる。508において、予測ネットワーク306が、予測されたドロップフレーム比を出力する。
【0054】
[0047]
図6は、いくつかの実施形態による、トレーニングサンプルの一例を示す。602において、いくつかの実施形態による、クライアントデバイス104についてのプレイバックサンプル#1~#6が示されている。予測ドロップフレームハンドリング論理106が、それらのサンプルからトレーニングセットを作成する。たとえば、各トレーニングセットは、予測ネットワーク306のための入力の数に基づくサンプルの数からの情報を含み得る。いくつかの実施形態では、予測ネットワーク306は入力の数K=Nを含み得、ここで、Nは数である。予測ドロップフレームハンドリング論理106は、この例では「3」であるNの値に基づくプレイバックサンプルの数を含むトレーニングセットを作成する。たとえば、入力セクション606が予測ネットワーク306への入力サンプルを示し、出力セクション608が予測ネットワーク306の出力を示す。
【0055】
[0048]608-1における第1のトレーニングサンプルが、最初の3つのプレイバックサンプル#1、#2、および#3に関連する。たとえば、トレーニングサンプル#1についてのドロップフレーム比は、プレイバックサンプル#1からの0.02であり、時間差は、プレイバックサンプル#2のタイムスタンプとプレイバックサンプル#1のタイムスタンプとの間の時間差である。たとえば、タイムスタンプ差は、1554618591-1554560982であり得る。次のトレーニングサンプルは、プレイバックサンプル#2のドロップフレーム比であり、プレイバックサンプル#3とプレイバックサンプル#2との間のタイムスタンプ差であり得る。たとえば、ドロップフレーム比は0.06であり得、タイムスタンプ差は1554625728-1554618591であり得る。同様に、第3のトレーニングサンプルは、0.06のプレイバックサンプル#3についてのドロップフレーム比であり得、タイムスタンプ差は、プレイバックサンプル#4とプレイバックサンプル#3との間のタイムスタンプ差(たとえば、1554647330-1554625728)であり得る。トレーニングセット中の予測ネットワーク306の予測された出力は、プレイバックサンプル#4のドロップフレーム比である。出力は、予測ネットワーク306が表現のプレイバックのために次のドロップフレーム比を予測することを試みているので、プレイバックサンプル#4のドロップフレーム比である。
【0056】
[0049]同様に、608-2における第2のトレーニングセットは、プレイバックサンプル#2、#3、および#4から生成される。タイムスタンプ差は、それぞれ、プレイバックサンプル#2と#3との間の、#3と#4との間の、および#4と#5との間のタイムスタンプ差に基づく。610-2における出力は、プレイバックサンプル#5からのドロップフレーム比である。608-3におけるトレーニングサンプルは、プレイバックサンプル#3、#4、および#5から構築され、タイムスタンプ差は、プレイバックサンプル#3、#4、#5、および#6からのタイムスタンプから構築される。610-3における出力は、プレイバックサンプル#6からのドロップフレーム比である。したがって、トレーニングセット604は、入力トレーニングサンプル608と、ラベリングされた出力610とを含む。
【0057】
[0050]再び
図4を参照すると、408において、予測ドロップフレームハンドリング論理106は、出力を予測するために、トレーニングセットを予測ネットワーク306に入力する。次いで、410において、予測ドロップフレームハンドリング論理106は、出力に基づいて予測ネットワーク306のパラメータを調整する。たとえば、610におけるラベリングされた出力は、予測ネットワーク306の出力と比較される。何らかの差が発生する場合、予測ドロップフレームハンドリング論理106は、ラベリングされた出力により近い出力を予測するように、予測ネットワーク306のパラメータを調整し得る。たとえば、608-1におけるトレーニングセットは予測ネットワーク306に入力され、予測ネットワーク306は出力を生成する。その出力は、610-1における出力と比較される。同様に、608-2におけるトレーニングセットは予測ネットワーク306に入力され、予測ネットワーク306は出力を生成する。その出力は、610-2における出力と比較され、以下同様である。比較に基づいて、予測ネットワーク306のパラメータは、別様に調整され得る。たとえば、パラメータは、予測ネットワーク306が、ラベリングされた結果をトレーニングサンプルから予測することにおいてより正確になるように、調整される。
【0058】
[0051]予測ネットワーク
[0052]
図7は、いくつかの実施形態による、予測ネットワーク306の一例を示す。予測ネットワーク306は、ドロップフレーム比とタイムスタンプとの入力に基づいてドロップフレーム比を予測するモデルを学習し得る。異なる予測ネットワークが使用され得る。いくつかの実施形態では、長時間短期記憶(時間LSTM)ネットワークが使用される。時間LSTMは、予測において時間を使用するLSTMネットワークの変形態であり得る。時間LSTMネットワークは、時間間隔をモデル化するために、その時間についての入力を使用する。
【0059】
[0053]予測ネットワーク306は、各々が予測を生成することができる、複数のユニット702-1~702-3を含み得る。3つのユニットが説明されるが、任意の数のユニットが使用され得る。
【0060】
[0054]各ユニット702は、ドロップフレーム比を受信する入力704を含み得る。また、ユニット702-1~702-3は、各ドロップフレーム比に関連する時間差を受信する時間入力706-1~706-3を含む。各ユニット702-1~702-3は、出力708を含む。出力708-1~708-3は、予測されたドロップフレーム比である。いくつかの実施形態では、各ユニット702は、前の予測プロセスからの情報を次のユニットに受け渡し得る論理を含む。これは、予測ネットワーク306が、予測を実施するときに入力の連続様式を使用することを可能にし、時間差が、予測されたドロップフレーム比を決定する際に使用されることをも可能にする。たとえば、ユニット702-2は、予測を行うときにユニット702-1からの前のタイムスタンプ差を使用し得る。
【0061】
[0055]予測プロセス
[0056]
図8は、いくつかの実施形態による、ドロップフレームハンドリング予測のより詳細な例を示す。802において、予測ドロップフレームハンドリング論理106は、クライアントデバイス上で表現についての履歴プレイバック性能を取り出す。
【0062】
[0057]804において、予測ドロップフレームハンドリング論理106は、リストの長さが数Kよりも小さいかどうかを決定する。たとえば、クライアントデバイス104は、表現が利用不可能としてマークされ得る前に、表現を何度も使用してビデオをプレイすることを必要とされ得る。この要件は、ランダムCPU使用スパイクなどのランダムイベントが、表現が利用不可能としてマークされることを引き起こさないことを保証することになる。リストの長さが数K以上である場合、806において、予測ドロップフレームハンドリング論理106は、表現についてのトレーニングされたモデルを取り出す。たとえば、各表現は、その表現についての特別にトレーニングされたモデルを有し得る。リストの長さが数Kよりも小さい場合、予測ドロップフレームハンドリング論理106は816に進む。
【0063】
[0058]808において、予測ドロップフレームハンドリング論理106は、履歴プレイバック性能からK個の記録を取り出す。いくつかの実施形態では、履歴プレイバック性能における最新のK個の記録が使用されるが、他の記録が使用され得る。たとえば、K個の記録が決定されるまで、履歴プレイバック性能におけるあらゆる他の記録が使用され得る。最新の記録は、表現を使用するクライアントデバイス104の直近の性能を表し得るので、これらの最新の記録が使用され得る。
【0064】
[0059]810において、予測ドロップフレームハンドリング論理106は、それらの記録を、トレーニングされたモデルを使用している予測ネットワーク306に入力する。予測ネットワーク306は、次いで、予測されたドロップフレーム比を生成する。812において、予測ドロップフレームハンドリング論理106は、測定値がしきい値Dよりも大きいかどうかを決定する。しきい値は、時間ウィンドウ中に正常にプレイされるフレームの数に対するドロップフレームの数のドロップフレーム比に基づき得る。
【0065】
[0060]測定値がしきい値以下である場合、予測ドロップフレームハンドリング論理106は、表現を利用不可能としてマークせず、816に進む。しかしながら、測定値が、しきい値よりも大きいなど、しきい値を満たす場合、814において、予測ドロップフレームハンドリング論理106は、表現を利用不可能としてマークする。表現を利用不可能としてマークすることは、その表現が、クライアントデバイス104によって使用される場合、望ましくないドロップフレーム比を生じ得ることが予測されることを意味する。たとえば、その表現を使用することは、プレイバック中ドロップフレームハンドリング論理204が、その表現がプレイバックの残りの間使用されるべきでないと決定することを生じ得、メディアプレーヤ110は、ドロップフレーム比により、異なる表現に切り替える。
【0066】
[0061]816において、予測ドロップフレームハンドリング論理106は、さらなる表現が分析されるべきであるかどうかを決定する。さらなる表現が分析されるべきである場合、プロセスは、繰り返して802に進んで、異なる表現を取り出し、その表現を分析する。さらなる表現が分析されるべきでない場合、818において、予測ドロップフレームハンドリング論理106は、表現についての利用可能性決定を記憶する。たとえば、利用不可能であるとして予測された表現は、そのようなものとしてマークされる。
【0067】
[0062]ビデオプレイバック
[0063]予測ドロップフレーム比は、プレイバックの前におよびプレイバック中に使用され得る。
図9は、いくつかの実施形態による、表現を更新するための方法の簡略フローチャート900を示す。902において、サーバシステム102は、ビデオについての要求を受信する。たとえば、メディアプレーヤ110は、ユーザによって使用されているクライアントデバイス104から、ビデオについての選択を受信することになる。904において、サーバシステム102は、ビデオについての利用可能な表現を選択し得る。たとえば、サーバシステム102は、クライアントデバイス104についてどの表現が利用不可能としてマークされなかったかを決定する。利用不可能な表現の決定は、クライアントデバイス、ユーザアカウント、メディアプレーヤなど、またはそれらの任意の組合せに基づき得る。次いで、906において、サーバシステム102は、利用可能な表現のリストをメディアプレーヤ110に与える。908において、サーバシステム102は、表現の選択を受信し、その表現を使用してビデオのストリーミングを開始する。
【0068】
[0064]ビデオのストリーミング中に、910において、1つまたは複数のドロップフレームがビデオのプレイバック中に発生し得る。ドロップフレームがビデオにおいて発生しなかった場合、サーバシステム102は、908に戻って、表現およびビデオの別の選択を受信し得る。しかしながら、1つまたは複数のドロップフレームが発生した場合、サーバシステム102は、1つまたは複数のドロップフレームが発生したという指示を受信し得る。912において、サーバシステム102は、プレイされている表現についての記録リストを更新する。これは、履歴プレイバック性能情報における、表現についてのドロップフレーム比の記録である。次いで、914において、サーバシステム102は、新しいドロップフレーム比測定値を予測するために、更新された記録を予測ネットワーク306に入力する。916において、サーバシステム102は、測定値がしきい値Dよりも大きいかどうかを決定する。測定値がしきい値Dよりも大きい場合、918において、サーバシステム102は、ストレージ中で表現を利用不可能としてマークする。測定値がしきい値Dよりも大きくない場合、プロセスは908において続き、ここで、ユーザは表現を要求し、別のビデオのストリーミングを開始することができる。
【0069】
[0065]メディアプレーヤ110は、表現のプレイバック中にドロップフレーム予測を使用し得る。
図10は、いくつかの実施形態による、プレイバック中にドロップフレーム予測を使用するための方法の簡略フローチャート1000を示す。1002において、メディアプレーヤ110は、ドロップフレーム予測を受信する。たとえば、メディアプレーヤ110が表現を要求したとき、サーバシステム102は、各表現についてのドロップフレーム予測に加えて、利用可能である表現のリストを送り得る。
【0070】
[0066]1004において、メディアプレーヤ110は、プレイバックのためのビデオの表現を選択するためにドロップフレーム予測を分析し得る。メディアプレーヤ110は、ドロップフレーム予測に基づいて最適表現を決定し得る。たとえば、第1の表現が第2の表現よりも高いドロップフレーム比を有する場合、メディアプレーヤ110は、第2の表現を選択することを選び得る。いくつかの例では、第1の表現は第2の表現よりも高い解像度に関連し得るが、より低い解像度をもつ表現は、より少数のフレームがドロップされ得、メディアプレーヤ110がプレイバック中に表現における切替えを行う必要がないことがあるので、より良いことがある。
【0071】
[0067]1006において、メディアプレーヤ110は、ビデオのプレイバックを開始する。1008において、メディアプレーヤ110は、表現を切り替えるべきかどうかを決定し得る。いくつかの実施形態では、メディアプレーヤ110は、表現を切り替えるときに表現についての予測ドロップフレーム比を考慮し得る。たとえば、上記と同様に、メディアプレーヤ110は、新しい表現を選択するときにドロップフレーム比を考慮し得る。表現における切替えが実施されるべきでない場合、プロセスはビデオのプレイバックを続ける。しかしながら、決定が、表現を切り替えることである場合、1010において、メディアプレーヤ110は、予測されたドロップフレーム比に基づいて新しい表現を選択する。
【0072】
[0068]結論
[0069]したがって、予測されたドロップフレーム比は、プレイバックプロセスを改善し得る。たとえば、表現は、プレイバックの前に利用不可能としてマークされ得、プレイバック中の、それらの表現を使用するドロップフレームが回避され得る。また、予測は、利用可能な表現についての予測ドロップフレーム比に基づいてプレイバックの前に表現を選択するために使用され得る。さらに、プレイバック中に、別の表現への切替えに遭遇したとき、予測されたドロップフレーム比は、新しい表現を選択するためにも使用され得る。予測されたドロップフレーム比を使用することは、多数のドロップフレームを生じ得る表現を選択することを回避すること、または他の表現よりも少数のドロップフレームを生じ得る最適表現を選択することによって、プレイバックを改善する。
【0073】
[0070]実施形態
[0071]いくつかの実施形態では、方法は、コンピューティングデバイスによって、1つまたは複数のビデオがメディアプレーヤにおいてプレイされることに基づいて複数の表現についてのプレイバック情報を受信することと、ここにおいて、複数の表現が、ビデオのプレイバックに影響を及ぼす少なくとも1つの異なる特性を有する、コンピューティングデバイスによって、プレイバック情報に基づいて複数の表現についてのドロップフレーム測定値を予測することと、コンピューティングデバイスによって、ドロップフレーム測定値を複数の表現についてのしきい値と比較することと、コンピューティングデバイスによって、比較することに基づいて複数の表現の第1のセットを利用可能でないとしてマークすることと、ここにおいて、メディアプレーヤがプレイバックのためのビデオを要求し、ビデオについての複数の表現の第1のセットが、メディアプレーヤによって要求されるのをブロックされたとき、複数の表現の第2のセットがメディアプレーヤに与えられる、を含む。
【0074】
[0072]いくつかの実施形態では、本方法は、複数の表現についてのドロップフレーム測定値を予測するように予測ネットワークをトレーニングすることを含む。
【0075】
[0073]いくつかの実施形態では、予測ネットワークをトレーニングすることは、トレーニングのためのプレイバック情報のリストを選択することと、プレイバック情報のリストからトレーニングサンプルを生成することと、予測ネットワークをトレーニングするためにトレーニングサンプルを使用することとを含む。
【0076】
[0074]いくつかの実施形態では、トレーニングサンプルを生成することは、プレイバック情報に基づいてトレーニングサンプルについてのドロップフレーム測定値を生成することと、プレイバック情報に基づいてトレーニングサンプルについての時間値を生成することとを含む。
【0077】
[0075]いくつかの実施形態では、ドロップフレーム測定値は、プレイバック情報の第1のインスタンスからのドロップフレーム測定値を備える。
【0078】
[0076]いくつかの実施形態では、時間値は、プレイバック情報の第1のインスタンスおよびプレイバック情報の第2のインスタンスからの時間値の差を備える。
【0079】
[0077]いくつかの実施形態では、トレーニングサンプルを生成することは、プレイバック情報の複数のインスタンスを含むトレーニングサンプルを生成すること、ここにおいて、複数のインスタンスの数が予測ネットワークの入力の数に等しい、を含む。
【0080】
[0078]いくつかの実施形態では、トレーニングサンプルは複数の時間値を含み、ここにおいて、時間値の数は予測ネットワークの入力の数に等しい。
【0081】
[0079]いくつかの実施形態では、複数の表現の第1のセットを利用可能でないとしてマークすることは、以下を含む。
【0082】
[0080]いくつかの実施形態では、本方法は、予測されたドロップするフレーム測定値がしきい値を満たすとき、表現を利用不可能としてマークすることを含む。
【0083】
[0081]いくつかの実施形態では、本方法は、ビデオのためのプレイバックについての要求を受信することと、ビデオについての複数の表現の第2のセットを選択することとを含む。
【0084】
[0082]いくつかの実施形態では、ビデオについての複数の表現の第2のセットを選択することは、ビデオについて記憶された表現を決定することと、どの表現が利用不可能としてマークされるかを決定することと、記憶され、利用不可能としてマークされない表現から、表現の第2のセットを選択することとを含む。
【0085】
[0083]いくつかの実施形態では、本方法は、ビデオについての複数の表現の第2のセットを、メディアプレーヤがプレイバックのための複数の表現の第2のセットのうちの1つを選択することを可能にするために、メディアプレーヤに送ることを含む。
【0086】
[0084]いくつかの実施形態では、本方法は、ビデオについての複数の表現の第2のセットについての予測されたドロップするフレーム測定値をメディアプレーヤに送ること、ここにおいて、メディアプレーヤが、ビデオのプレイバック中に複数の表現の第2のセットのうちの1つを選択するために、予測されたドロップするフレーム測定値を使用する、を含む。
【0087】
[0085]いくつかの実施形態では、複数の表現は解像度とフレームレートとの異なる組合せを有する。
【0088】
[0086]いくつかの実施形態では、非一時的コンピュータ可読記憶媒体は命令を含み、命令は、実行されたとき、1つまたは複数のビデオがメディアプレーヤにおいてプレイされることに基づいて複数の表現についてのプレイバック情報を受信することと、ここにおいて、複数の表現が、ビデオのプレイバックに影響を及ぼす少なくとも1つの異なる特性を有する、プレイバック情報に基づいて複数の表現についてのドロップフレーム測定値を予測することと、ドロップフレーム測定値を複数の表現についてのしきい値と比較することと、比較することに基づいて複数の表現の第1のセットを利用可能でないとしてマークすることと、ここにおいて、メディアプレーヤがプレイバックのためのビデオを要求し、ビデオについての複数の表現の第1のセットが、メディアプレーヤによって要求されるのをブロックされたとき、複数の表現の第2のセットがメディアプレーヤに与えられる、を行うために動作可能であるようにコンピュータシステムを制御する。
【0089】
[0087]いくつかの実施形態では、命令は、複数の表現についてのドロップフレーム測定値を予測するように予測ネットワークをトレーニングすることを行うためにさらに動作可能である。
【0090】
[0088]いくつかの実施形態では、複数の表現の第1のセットを利用可能でないとしてマークすることは、予測されたドロップするフレーム測定値がしきい値を満たすとき、表現を利用不可能としてマークすることを含む。
【0091】
[0089]いくつかの実施形態では、命令は、ビデオについての複数の表現の第2のセットを、メディアプレーヤがプレイバックのための複数の表現の第2のセットのうちの1つを選択することを可能にするために、メディアプレーヤに送ることを行うためにさらに動作可能である。
【0092】
[0090]いくつかの実施形態では、命令は、ビデオについての複数の表現の第2のセットについての予測されたドロップするフレーム測定値をメディアプレーヤに送ること、ここにおいて、メディアプレーヤが、ビデオのプレイバック中に複数の表現の第2のセットのうちの1つを選択するために、予測されたドロップするフレーム測定値を使用する、を行うためにさらに動作可能である。
【0093】
[0091]いくつかの実施形態では、装置は、1つまたは複数のコンピュータプロセッサと、命令を備える非一時的コンピュータ可読記憶媒体とを含み、命令は、実行されたとき、1つまたは複数のビデオがメディアプレーヤにおいてプレイされることに基づいて複数の表現についてのプレイバック情報を受信することと、ここにおいて、複数の表現が、ビデオのプレイバックに影響を及ぼす少なくとも1つの異なる特性を有する、プレイバック情報に基づいて複数の表現についてのドロップフレーム測定値を予測することと、ドロップフレーム測定値を複数の表現についてのしきい値と比較することと、比較することに基づいて複数の表現の第1のセットを利用可能でないとしてマークすることと、ここにおいて、メディアプレーヤがプレイバックのためのビデオを要求し、ビデオについての複数の表現の第1のセットが、メディアプレーヤによって要求されるのをブロックされたとき、複数の表現の第2のセットがメディアプレーヤに与えられる、を行うために動作可能であるように1つまたは複数のコンピュータプロセッサを制御する。
【0094】
[0092]システム
[0093]本明細書で開示される特徴および態様は、
図11に示されているように、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信しているビデオストリーミングシステム1100とともに実装され得る。ビデオストリーミングシステム1100の態様は、本開示に従って準備されたコンテンツの分配および配信を可能にするためのアプリケーションの一例を与えるために説明されるにすぎない。本技術はストリーミングビデオアプリケーションに限定されず、他のアプリケーションおよび配信機構のために適応され得ることを諒解されたい。
【0095】
[0094]一実施形態では、メディアプログラムプロバイダは、メディアプログラムのライブラリを含み得る。たとえば、メディアプログラムは、サイト(たとえば、ウェブサイト)、アプリケーション、またはブラウザを通してアグリゲートされ、与えられ得る。ユーザは、メディアプログラムプロバイダのサイトまたはアプリケーションにアクセスし、メディアプログラムを要求することができる。ユーザは、メディアプログラムプロバイダによって提供されるメディアプログラムのみを要求することに限定され得る。
【0096】
[0095]システム1100では、ビデオデータは、ビデオコンテンツサーバ1102への入力として使用するために、1つまたは複数のソースから、たとえばビデオソース1110から取得され得る。入力ビデオデータは、任意の好適なデジタルフォーマット、たとえば、ムービングピクチャエキスパートグループ(MPEG)-1、MPEG-2、MPEG-4、VC-1、H.264/アドバンストビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、または他のフォーマットにおける、生のまたは編集されたフレームベースビデオデータを備え得る。一代替では、ビデオは、非デジタルフォーマットにおいて与えられ、スキャナおよび/またはトランスコーダを使用してデジタルフォーマットに変換され得る。入力ビデオデータは、様々なタイプのビデオクリップまたはプログラム、たとえば、テレビジョンエピソード、映画、および消費者にとって関心のある1次コンテンツとして製作された他のコンテンツを備え得る。ビデオデータはオーディオをも含み得るか、またはオーディオのみが使用され得る。
【0097】
[0096]ビデオストリーミングシステム1100は、1つまたは複数のコンピュータにわたって分散された1つまたは複数のコンピュータサーバまたはモジュール1102、1104、および/または1107を含み得る。各サーバ1102、1104、1107は、1つまたは複数のデータストア1109、たとえばデータベース、インデックス、ファイル、または他のデータ構造を含み得るか、あるいはそれらに動作可能に結合され得る。ビデオコンテンツサーバ1102は、様々なビデオセグメントのデータストア(図示せず)にアクセスし得る。ビデオコンテンツサーバ1102は、クライアントデバイスと通信しているユーザインターフェースコントローラによって指示されるようにビデオセグメントをサービスし得る。本明細書で使用されるビデオセグメントは、テレビジョンエピソード、映画、録画されたライブパフォーマンス、または他のビデオコンテンツを視聴するためにストリーミングビデオセッションにおいて使用され得るものなど、フレームベースビデオデータの明確な部分を指す。
【0098】
[0097]いくつかの実施形態では、ビデオ広告サーバ1104は、特定の広告主またはメッセージのための広告として構成された比較的短いビデオ(たとえば、10秒、30秒、または60秒のビデオ広告)のデータストアにアクセスし得る。広告は、何らかの種類の支払いと引き換えに広告主に与えられ得るか、あるいは、システム1100のための販売促進メッセージ、公共サービスメッセージ、または何らかの他の情報を備え得る。ビデオ広告サーバ1104は、ユーザインターフェースコントローラ(図示せず)によって指示されるようにビデオ広告セグメントをサービスし得る。
【0099】
[0098]ビデオストリーミングシステム1100は、予測ドロップフレームハンドリング論理106をも含み得る。
【0100】
[0099]ビデオストリーミングシステム1100は、ビデオコンテンツおよびビデオ広告をストリーミングビデオセグメントに統合する統合およびストリーミング構成要素1107をさらに含み得る。たとえば、ストリーミング構成要素1107は、コンテンツサーバまたはストリーミングメディアサーバであり得る。コントローラ(図示せず)は、任意の好適なアルゴリズムまたはプロセスに基づいてストリーミングビデオにおける広告の選択または構成を決定し得る。ビデオストリーミングシステム1100は、
図11に示されていない他のモジュールまたはユニット、たとえば、管理サーバ、商業サーバ、ネットワークインフラストラクチャ、広告選択エンジンなどを含み得る。
【0101】
[00100]ビデオストリーミングシステム1100は、データ通信ネットワーク1112に接続し得る。データ通信ネットワーク1112は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、たとえば、インターネット、電話ネットワーク、ワイヤレスセルラー電気通信ネットワーク(WCS)1114、あるいはこれらのまたは同様のネットワークの何らかの組合せを備え得る。
【0102】
[00101]1つまたは複数のクライアントデバイス1120は、データ通信ネットワーク1112、ワイヤレスセルラー電気通信ネットワーク1114、および/または別のネットワークを介してビデオストリーミングシステム1100と通信していることがある。そのようなクライアントデバイスは、たとえば、LANのためのルータ1118を介した、ワイヤレスセルラー電気通信ネットワーク1114のための基地局1117を介した、または何らかの他の接続を介した、1つまたは複数のラップトップコンピュータ1120-1、デスクトップコンピュータ1120-2、「スマート」モバイルフォン1120-3、タブレットデバイス1120-4、ネットワーク対応テレビジョン1120-5、またはそれらの組合せを含み得る。動作中、そのようなクライアントデバイス1120は、ユーザ入力デバイスから受信されたユーザ入力または他の入力に応答して、システム1100にデータまたは命令を送り、受信し得る。応答して、システム1100は、クライアントデバイス1120に、メディアプログラムの選択に応答して、データストア1109からのビデオセグメントおよびメタデータをサービスし得る。クライアントデバイス1120は、ディスプレイスクリーン、プロジェクタ、または他のビデオ出力デバイスを使用するメディアプレーヤにおいてストリーミングビデオセグメントからビデオコンテンツを出力し、ビデオコンテンツと対話するためのユーザ入力を受信し得る。
【0103】
[00102]コンピュータネットワーク、電気通信ネットワーク、およびそのようなネットワークの組合せを介したストリーミング構成要素1107からリモートクライアントデバイスへのオーディオビデオデータの分配が、様々な方法、たとえばストリーミングを使用して実装され得る。ストリーミングでは、コンテンツサーバが、少なくとも部分的にクライアントデバイス上で動作するメディアプレーヤ構成要素に連続的にオーディオビデオデータをストリーミングし、メディアプレーヤ構成要素は、サーバからストリーミングデータを受信すると同時にオーディオビデオデータをプレイし得る。ストリーミングが説明されたが、配信の他の方法が使用され得る。メディアプレーヤ構成要素は、コンテンツプロバイダからデータの初期部分を受信した直後にビデオデータのプレイを始動し得る。旧来のストリーミング技法は、エンドユーザのセットにデータのストリームを配信する単一のプロバイダを使用する。多数のオーディエンスに単一のストリームを配信するために、高い帯域幅および処理電力が必要とされ得、プロバイダの必要とされる帯域幅は、エンドユーザの数が増加するにつれて増加し得る。
【0104】
[00103]ストリーミングメディアは、オンデマンドまたはライブで配信され得る。ストリーミングは、ファイル内の任意のポイントにおける即時のプレイバックを可能にする。エンドユーザは、プレイバックを開始するかまたはプレイバックをメディアファイル中の任意のポイントに変更するために、メディアファイルをスキップし得る。したがって、エンドユーザは、ファイルが漸進的にダウンロードするのを待つ必要がない。一般に、ストリーミングメディアは、ビデオファイルについての要求を受け付け、それらのファイルのフォーマット、帯域幅および構造に関する情報とともに、ビデオをプレイするために必要とされるレートにおいて、それをプレイするのに必要なデータの量だけを配信する特殊なデバイスを介して、高帯域幅能力を有する数個の専用サーバから配信される。また、ストリーミングメディアサーバは、宛先クライアント上のメディアプレーヤの送信帯域幅および能力を考慮し得る。ストリーミング構成要素1107は、ビデオがプレイされるとき、変化するネットワーク状態に順応するために、制御メッセージおよびデータメッセージを使用してクライアントデバイス1120と通信し得る。これらの制御メッセージは、早送り、早戻し、一時停止などの制御機能を有効にすること、またはクライアントにおいてファイルの特定の部分を探索することを行うためのコマンドを含むことができる。
【0105】
[00104]ストリーミング構成要素1107は、必要に応じておよび必要とされるレートにおいてのみビデオデータを送信するので、サービスされるストリームの数の正確な制御が維持され得る。視聴者は、より低いデータレートの伝送媒体上で高データレートビデオを視聴することが可能でない。しかしながら、ストリーミングメディアサーバは、(1)ビデオファイルへのランダムアクセスをユーザに与え、(2)誰が何のビデオプログラムを視聴しているか、およびそれらがどのくらいの時間見られたかを監視することを可能にし、(3)視聴エクスペリエンスをサポートするために必要とされるデータの量のみが送信されるので、より効率的に送信帯域幅を使用し、(4)ビデオファイルは視聴者のコンピュータに記憶されないが、メディアプレーヤによって廃棄され、したがって、コンテンツのさらなる制御が可能になる。
【0106】
[00105]ストリーミング構成要素1107は、HTTPおよびリアルタイムメッセージングプロトコル(RTMP)など、TCPベースプロトコルを使用し得る。ストリーミング構成要素1107は、ライブウェブキャストをも配信することができ、マルチキャストすることができ、これは、2つ以上のクライアントが単一のストリームに同調することを可能にし、したがって、帯域幅を節約する。ストリーミングメディアプレーヤは、メディアプログラム中の任意のポイントへのランダムアクセスを与えるためにビデオ全体をバッファすることに依拠しないことがある。代わりに、これは、メディアプレーヤからストリーミングメディアサーバに送信される制御メッセージの使用によって達成される。ストリーミングのために使用される他のプロトコルは、ハイパーテキスト転送プロトコル(HTTP)ライブストリーミング(HLS)または動的適応ストリーミングオーバーHTTP(DASH)である。HLSおよびDASHプロトコルは、一般に1つまたは複数のコンテンツ配信ネットワーク(CDN)から様々なビットレートにおいて利用可能にされる小さいセグメントのプレイリストを介して、HTTP上でビデオを配信する。これは、メディアプレーヤが、セグメントごとにビットレートとコンテンツソースの両方を切り替えることを可能にする。切り替えることは、ネットワーク帯域幅変動、また、ビデオのプレイバック中に発生し得るインフラストラクチャ障害を補償するのを助ける。
【0107】
[00106]ストリーミングによるビデオコンテンツの配信は、様々なモデルの下で達成され得る。あるモデルでは、ユーザは、ビデオプログラムの視聴の代金を支払い、たとえば、メディアプログラムのライブラリまたは制限付きメディアプログラムの一部分へのアクセスのための料金を支払うか、あるいはペイパービューサービスを使用する。放送テレビジョン(broadcast television)によって、それの開始直後に広く採用された別のモデルでは、スポンサーが、メディアプログラムの提示中にまたはそれの前後に広告を提示するための権利と引き換えに、そのプログラムの提示の代金を支払う。いくつかのモデルでは、広告はビデオプログラム中の所定の時間において挿入され、その時間は「広告スロット(ad slot)」または「広告ブレーク(ad break)」と呼ばれることがある。ストリーミングビデオの場合、メディアプレーヤは、クライアントデバイスが、指定された広告スロット中に所定の広告を同じくプレイすることなしにビデオをプレイすることができないように構成され得る。
【0108】
[00107]
図12を参照すると、ビデオコンテンツおよび広告を視聴するための装置1200の概略図が示されている。選択された実施形態では、装置1200は、プロセッサメモリ1204に動作可能に結合されたプロセッサ(CPU)1202を含み得、プロセッサメモリ1204は、プロセッサ1202が実行するためのバイナリコード化機能モジュールを保持する。そのような機能モジュールは、入出力およびメモリアクセスなどのシステム機能をハンドリングするためのオペレーティングシステム1206と、ウェブページを表示するためのブラウザ1208と、ビデオをプレイするためのメディアプレーヤ1210とを含み得る。モジュールは、適応ストリーミング論理112をさらに含み得る。メモリ1204は、
図12に示されていない追加のモジュール、たとえば本明細書の他の場所で説明される他の動作を実施するためのモジュールを保持し得る。
【0109】
[00108]バス1214または他の通信構成要素が、装置1200内の情報の通信をサポートし得る。プロセッサ1202は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって、本明細書で開示される特徴および態様による特定のタスクを実施するように構成されたかまたは動作可能な特殊または専用マイクロプロセッサであり得る。プロセッサメモリ1204(たとえば、ランダムアクセスメモリ(RAM)または他のダイナミックストレージデバイス)は、バス1214に接続されるかまたはプロセッサ1202に直接接続され、情報、およびプロセッサ1202によって実行されるべき命令を記憶し得る。メモリ1204は、そのような命令の実行中に一時的変数または他の中間情報をも記憶し得る。
【0110】
[00109]ストレージデバイス1224中のコンピュータ可読媒体は、バス1214に接続され、プロセッサ1202のための静的情報および命令を記憶し得、たとえば、ストレージデバイス(CRM)1224は、装置1200が電源切断されたときにモジュール1206、1208、1210および1212を記憶し得、そこからそれらのモジュールは、装置1200が電源投入されたときにプロセッサメモリ1204にロードされ得る。ストレージデバイス1224は、情報、命令、またはそれらの何らかの組合せ、たとえば、プロセッサ1202によって実行されたとき、装置1200が、本明細書で説明される方法の1つまたは複数の動作を実施するように構成されるかまたは動作可能であることを引き起こす命令を保持する、非一時的コンピュータ可読記憶媒体を含み得る。
【0111】
[00110]通信インターフェース1216もバス1214に接続され得る。通信インターフェース1216は、随意にルータ/モデム1226およびワイヤードまたはワイヤレス接続を介して、装置1200と1つまたは複数の外部デバイス、たとえば、ストリーミングシステム1100との間の二方向データ通信を与えるか、またはサポートし得る。代替として、または追加として、装置1200は、アンテナ1229に接続されたトランシーバ1218を含み得、それを通して、装置1200は、ワイヤレス通信システムのための基地局と、またはルータ/モデム1226とワイヤレス通信し得る。代替として、装置1200は、ローカルエリアネットワーク、仮想プライベートネットワーク、または他のネットワークを介してビデオストリーミングシステム1100と通信し得る。別の代替では、装置1200は、システム1100のモジュールまたは構成要素として組み込まれ、バス1214を介してまたは何らかの他のモダリティによって他の構成要素と通信し得る。
【0112】
[00111]装置1200は、ディスプレイユニット1228に(たとえば、バス1214およびグラフィックス処理ユニット1220を介して)接続され得る。ディスプレイ1228は、装置1200のオペレータに情報を表示するための任意の好適な構成を含み得る。たとえば、ディスプレイ1228は、視覚ディスプレイにおいて装置1200のユーザに情報を提示するために、液晶ディスプレイ(LCD)、タッチスクリーンLCD(たとえば、容量性ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、または他のディスプレイデバイスを含むかまたは利用し得る。
【0113】
[00112]装置1200に情報およびコマンドを通信するために、1つまたは複数の入力デバイス1230(たとえば、英数字キーボード、マイクロフォン、キーパッド、リモートコントローラ、ゲームコントローラ、カメラまたはカメラアレイ)がユーザ入力ポート1222を介してバス1214に接続され得る。選択された実施形態では、入力デバイス1230は、カーソルの位置決めの制御を与えるかまたはサポートし得る。ポインティングデバイスとも呼ばれる、そのようなカーソル制御デバイスは、物理的移動を受信または追跡し、その移動を、カーソル移動を示す電気信号に変換するための、マウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キーまたは他のデバイスとして構成され得る。カーソル制御デバイスは、たとえばタッチセンシティブスクリーンを使用して、ディスプレイユニット1228に組み込まれ得る。カーソル制御デバイスは、方向情報およびコマンド選択をプロセッサ1202に通信し、ディスプレイ1228上のカーソル移動を制御し得る。カーソル制御デバイスは、たとえば、デバイスが平面または3次元空間中のカーソル位置を指定することを可能にする、2つまたはそれ以上の自由度を有し得る。
【0114】
[00113]いくつかの実施形態は、命令実行システム、装置、システム、または機械によって、あるいはそれらとともに使用するために、非一時的コンピュータ可読記憶媒体において実装され得る。コンピュータ可読記憶媒体は、いくつかの実施形態によって説明された方法を実施するようにコンピュータシステムを制御するための命令を含んでいる。コンピュータシステムは、1つまたは複数のコンピューティングデバイスを含み得る。命令は、1つまたは複数のコンピュータプロセッサによって実行されたとき、いくつかの実施形態において説明されたものを実施するように構成されるかまたは動作可能であり得る。
【0115】
[00114]本明細書の説明において、および以下の特許請求の範囲全体にわたって使用される、「a」、「an」、および「the」は、文脈が別段に明確に規定しない限り、複数形の参照を含む。また、本明細書の説明において、および以下の特許請求の範囲全体にわたって使用される、「中(in)」の意味は、文脈が別段に明確に規定しない限り、「中(in)」と「上(on)」とを含む。
【0116】
[00115]上記の説明は、いくつかの実施形態の態様がどのように実装され得るかの例とともに、様々な実施形態を示した。上記の例および実施形態は、上記実施形態のみであると見なされるべきではなく、以下の特許請求の範囲によって定義されたいくつかの実施形態の柔軟性と利点とを示すために提示された。上記の開示および以下の特許請求の範囲に基づいて、特許請求の範囲によって定義された本出願の範囲から逸脱することなく、他の構成、実施形態、実装形態、および等価物が採用され得る。
【国際調査報告】