IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ロヴィ ガイズ, インコーポレイテッドの特許一覧

特開2024-75512短待ち時間の双方向体験のための場面変更におけるビデオ圧縮
<>
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図1A
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図1B
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図2
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図3
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図4
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図5
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図6
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図7
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図8
  • 特開-短待ち時間の双方向体験のための場面変更におけるビデオ圧縮 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024075512
(43)【公開日】2024-06-03
(54)【発明の名称】短待ち時間の双方向体験のための場面変更におけるビデオ圧縮
(51)【国際特許分類】
   H04N 19/115 20140101AFI20240527BHJP
   H04N 19/179 20140101ALI20240527BHJP
   H04N 19/124 20140101ALI20240527BHJP
   H04N 19/136 20140101ALI20240527BHJP
【FI】
H04N19/115
H04N19/179
H04N19/124
H04N19/136
【審査請求】未請求
【請求項の数】52
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023197121
(22)【出願日】2023-11-21
(31)【優先権主張番号】17/992,582
(32)【優先日】2022-11-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】518345664
【氏名又は名称】ロヴィ ガイズ, インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】タオ チェン
(72)【発明者】
【氏名】クリストファー フィリップス
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159PP04
5C159RC11
5C159SS08
5C159TA46
5C159TA60
5C159TB04
5C159TC24
5C159TC30
5C159UA02
5C159UA05
(57)【要約】
【課題】クラウドコンピューティング環境において改良された短待ち時間の双方向体験を提供するための、場面変更におけるビデオ圧縮のための方法およびシステムを提供する。
【解決手段】例示的使用事例は、クラウド対応双方向スポーツイベント、eスポーツ、ファンタジースポーツ、ゲーミング、および機能拡張を含む、全ての形態のクラウドゲーミングを含む。性能および体験における改良は、極端に短待ち時間のレートコントローラ、極端に短待ち時間のレートコントローラ方法、場面変更におけるフレームパーティション化、場面変更におけるエンコードの予防的(比較的に早期の)終了、デコーダとエンコーダとの間の双方向シグナリング、または双方向シグナリングのうちの少なくとも1つを用いて達成される。関連する装置、デバイス、技法、および物品もまた、説明される。
【選択図】なし
【特許請求の範囲】
【請求項1】
ビデオ圧縮のための方法であって、前記方法は、
エンコーダと動作的に接続されるレートコントローラを用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
前記ピクチャのエンコードされたピクチャサイズを決定することと、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、要求されるレートを決定することと、
前記可変ビットレート入力の上限の可変ビットレートを決定することと、
前記要求されるビットレートを前記上限の可変ビットレートと比較することと、
前記比較に基づいて、前記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を含む、方法。
【請求項2】
前記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定することを含む、請求項1に記載の方法。
【請求項3】
前記間隔は、整数であり、前記整数は、1である、請求項2に記載の方法。
【請求項4】
最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定することを含む、請求項2に記載の方法。
【請求項5】
前記開始量子化パラメータを前記終了量子化パラメータと比較することを含む、請求項4に記載の方法。
【請求項6】
前記開始量子化パラメータが前記終了量子化パラメータを上回ることを決定することに応答して、前記開始量子化パラメータ対前記終了量子化パラメータの比に等しい新しい量子化パラメータを設定することを含む、請求項5に記載の方法。
【請求項7】
前記比は、1:2である、請求項6に記載の方法。
【請求項8】
前記新しい量子化パラメータを伴うイントラピクチャ発生要求を前記エンコーダに送信し、前記エンコーダを用いて、前記新しい量子化パラメータを伴うイントラピクチャを発生させることを含む、請求項6に記載の方法。
【請求項9】
前記開始量子化パラメータが前記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、前記ピクチャの分解能を変更すること、前記ピクチャのフレームレートを変更すること、または前記ピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、前記ピクチャを修正し、前記修正されたピクチャを前記エンコーダに伝送することを含む、請求項5に記載の方法。
【請求項10】
前記レートコントローラから、マルチプレクサを用いて前記エンコードされたピクチャを受信することと、
前記マルチプレクサを用いて、前記エンコードされたピクチャと前記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
前記エンコードされたビデオストリームをクライアントに伝送することと
を含む、請求項1に記載の方法。
【請求項11】
前記クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備えるシンクライアントであり、前記シンクライアントは、前記ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、請求項10に記載の方法。
【請求項12】
前記クラウドゲーミングプラットフォームを用いて、前記ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いて前記ユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、前記ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いて前記ゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
前記エンコーダを用いて前記レンダリングされた場面を受信することと
を含む、請求項11に記載の方法。
【請求項13】
前記エンコーダを用いた前記レンダリングされた場面の受信後、次のピクチャに関して、
前記エンコーダに動作的に接続される前記レートコントローラを用いて、前記可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
前記次のピクチャのエンコードされたピクチャサイズを決定することと、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、前記要求されるレートを決定することと、
前記可変ビットレート入力の上限の可変ビットレートを決定することと、
前記要求されるビットレートを前記上限の可変ビットレートと比較することと、
前記比較に基づいて、前記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返すことを含む、請求項12に記載の方法。
【請求項14】
ビデオ圧縮のためのシステムであって、前記システムは、
エンコーダと動作的に接続されるレートコントローラであって、前記レートコントローラは、
可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
前記ピクチャのエンコードされたピクチャサイズを決定することと、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、要求されるレートを決定することと、
前記可変ビットレート入力の上限の可変ビットレートを決定することと、
前記要求されるビットレートを前記上限の可変ビットレートと比較することと、
前記比較に基づいて、前記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を行うように構成される、レートコントローラ
を備える、システム。
【請求項15】
前記レートコントローラは、
前記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定するように構成される、請求項14に記載のシステム。
【請求項16】
前記間隔は、整数であり、前記整数は、1である、請求項15に記載のシステム。
【請求項17】
前記レートコントローラは、
最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定するように構成される、請求項15に記載のシステム。
【請求項18】
前記レートコントローラは、
前記開始量子化パラメータを前記終了量子化パラメータと比較するように構成される、請求項17に記載のシステム。
【請求項19】
前記レートコントローラは、
前記開始量子化パラメータが前記終了量子化パラメータを上回ることを決定することに応答して、前記開始量子化パラメータ対前記終了量子化パラメータの比に等しい新しい量子化パラメータを設定するように構成される、請求項18に記載のシステム。
【請求項20】
前記比は、1:2である、請求項19に記載のシステム。
【請求項21】
前記レートコントローラは、
前記新しい量子化パラメータを伴うイントラピクチャ発生要求を前記エンコーダに送信し、前記エンコーダを用いて、前記新しい量子化パラメータを伴うイントラピクチャを発生させるように構成される、請求項19に記載のシステム。
【請求項22】
前記レートコントローラは、
前記開始量子化パラメータが前記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、前記ピクチャの分解能を変更すること、前記ピクチャのフレームレートを変更すること、または前記ピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、前記ピクチャを修正し、前記修正されたピクチャを前記エンコーダに伝送するように構成される、請求項18に記載のシステム。
【請求項23】
マルチプレクサであって、
前記レートコントローラから、前記エンコードされたピクチャを受信することと、
前記エンコードされたピクチャと前記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
前記エンコードされたビデオストリームをクライアントに伝送することと
を行うように構成される、マルチプレクサ
を備える、請求項14に記載のシステム。
【請求項24】
前記クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備えるシンクライアントであり、前記シンクライアントは、前記ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、請求項23に記載のシステム。
【請求項25】
前記クラウドゲーミングプラットフォームは、
前記ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いて前記ユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、前記ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いて前記ゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
前記エンコーダを用いて前記レンダリングされた場面を受信することと
を行うように構成される、請求項24に記載のシステム。
【請求項26】
前記エンコーダを用いた前記レンダリングされた場面の受信後、次のピクチャに関して、
前記エンコーダに動作的に接続される前記レートコントローラを用いて、前記可変ビットレート入力の次のピクチャの量子化パラメータを推定すること、
前記次のピクチャのエンコードされたピクチャサイズを決定すること、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、前記要求されるレートを決定すること、
前記可変ビットレート入力の上限の可変ビットレートを決定すること、
前記要求されるビットレートを前記上限の可変ビットレートと比較すること、または、
前記比較に基づいて、前記次のピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うこと
を繰り返すこと
を含む、請求項25に記載のシステム。
【請求項27】
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、エンコーダと動作的に接続されるレートコントローラを用いたビデオ圧縮のために、前記非一過性コンピュータ可読媒体上にエンコードされる非一過性コンピュータ可読命令を有し、前記非一過性コンピュータ可読命令は、実行されると、
前記エンコーダと動作的に接続されるレートコントローラを用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
前記ピクチャのエンコードされたピクチャサイズを決定することと、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、要求されるレートを決定することと、
前記可変ビットレート入力の上限の可変ビットレートを決定することと、
前記要求されるビットレートを前記上限の可変ビットレートと比較することと、
前記比較に基づいて、前記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を行う、非一過性コンピュータ可読媒体。
【請求項28】
実行されると、前記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定する命令
を備える、請求項27に記載の非一過性コンピュータ可読媒体。
【請求項29】
前記間隔は、整数であり、前記整数は、1である、請求項28に記載の非一過性コンピュータ可読媒体。
【請求項30】
実行されると、最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定する命令
を備える、請求項28に記載の非一過性コンピュータ可読媒体。
【請求項31】
実行されると、前記開始量子化パラメータを前記終了量子化パラメータと比較する命令
を備える、請求項30に記載の非一過性コンピュータ可読媒体。
【請求項32】
実行されると、前記開始量子化パラメータが前記終了量子化パラメータを上回ることを決定することに応答して、前記開始量子化パラメータ対前記終了量子化パラメータの比に等しい新しい量子化パラメータを設定する命令
を備える、請求項31に記載の非一過性コンピュータ可読媒体。
【請求項33】
前記比は、1:2である、請求項32に記載の非一過性コンピュータ可読媒体。
【請求項34】
実行されると、前記新しい量子化パラメータを伴うイントラピクチャ発生要求を前記エンコーダに送信し、前記エンコーダを用いて、前記新しい量子化パラメータを伴うイントラピクチャを発生させる命令
を備える、請求項32に記載の非一過性コンピュータ可読媒体。
【請求項35】
実行されると、前記開始量子化パラメータが前記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、前記ピクチャの分解能を変更すること、前記ピクチャのフレームレートを変更すること、または前記ピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、前記ピクチャを修正し、前記修正されたピクチャを前記エンコーダに伝送する命令
を備える、請求項31に記載の非一過性コンピュータ可読媒体。
【請求項36】
実行されると、
前記レートコントローラから、マルチプレクサを用いて前記エンコードされたピクチャを受信することと、
前記マルチプレクサを用いて、前記エンコードされたピクチャと前記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
前記エンコードされたビデオストリームをクライアントに伝送することと
を行う命令
を備える、請求項27に記載の非一過性コンピュータ可読媒体。
【請求項37】
前記クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備えるシンクライアントであり、前記シンクライアントは、前記ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、請求項36に記載の非一過性コンピュータ可読媒体。
【請求項38】
実行されると、
前記クラウドゲーミングプラットフォームを用いて、前記ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いて前記ユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、前記ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いて前記ゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
前記エンコーダを用いて前記レンダリングされた場面を受信することと
を行う命令
を備える、請求項36に記載の非一過性コンピュータ可読媒体。
【請求項39】
実行されると、前記エンコーダを用いた前記レンダリングされた場面の受信後、次のピクチャに関して、
前記エンコーダに動作的に接続される前記レートコントローラを用いて、前記可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
前記次のピクチャのエンコードされたピクチャサイズを決定することと、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、前記要求されるレートを決定することと、
前記可変ビットレート入力の上限の可変ビットレートを決定することと、
前記要求されるビットレートを前記上限の可変ビットレートと比較することと、
前記比較に基づいて、前記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返す命令
を備える、請求項38に記載の非一過性コンピュータ可読媒体。
【請求項40】
ビデオ圧縮のためのデバイスであって、前記デバイスは、
エンコードのための手段と動作的に接続されるレート制御のための手段を用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定するための手段と、
前記ピクチャのエンコードされたピクチャサイズを決定するための手段と、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、要求されるレートを決定するための手段と、
前記可変ビットレート入力の上限の可変ビットレートを決定するための手段と、
前記要求されるビットレートを前記上限の可変ビットレートと比較するための手段と、
前記比較に基づいて、前記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うための手段と
を備える、デバイス。
【請求項41】
前記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定するための手段を備える、請求項40に記載のデバイス。
【請求項42】
前記間隔は、整数であり、前記整数は、1である、請求項41に記載のデバイス。
【請求項43】
最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定するための手段を備える、請求項41に記載のデバイス。
【請求項44】
前記開始量子化パラメータを前記終了量子化パラメータと比較するための手段を備える、請求項43に記載のデバイス。
【請求項45】
前記開始量子化パラメータが前記終了量子化パラメータを上回ることを決定することに応答して、前記開始量子化パラメータ対前記終了量子化パラメータの比に等しい新しい量子化パラメータを設定するための手段を備える、請求項44に記載のデバイス。
【請求項46】
前記比は、1:2である、請求項45に記載のデバイス。
【請求項47】
前記新しい量子化パラメータを伴うイントラピクチャ発生要求を前記エンコーダに送信し、前記エンコーダを用いて、前記新しい量子化パラメータを伴うイントラピクチャを発生させるための手段を備える、請求項45に記載のデバイス。
【請求項48】
前記開始量子化パラメータが前記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、前記ピクチャの分解能を変更するための手段、前記ピクチャのフレームレートを変更するための手段、または前記ピクチャのエンコードされたピクチャサイズを低減させるための手段のうちの少なくとも1つによって、前記ピクチャを修正し、前記修正されたピクチャを前記エンコーダに伝送するための手段を備える、請求項44に記載のデバイス。
【請求項49】
前記レートコントローラから、マルチプレクサを用いて前記エンコードされたピクチャを受信するための手段と、
前記マルチプレクサを用いて、前記エンコードされたピクチャと前記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせるための手段と、
前記エンコードされたビデオストリームをクライアントに伝送するための手段と
を備える、請求項40に記載のデバイス。
【請求項50】
前記クライアントは、ビデオデコードのための手段と、ユーザ相互作用のための手段とを備えるシンクライアントであり、前記シンクライアントは、前記ユーザ相互作用モジュールから前記デバイスにユーザコマンドを伝送するように構成される、請求項40に記載のデバイス。
【請求項51】
前記デバイスは、
前記クラウドゲーミングプラットフォームを用いて、前記ユーザコマンドを受信するための手段と、
シンクライアント相互作用モジュールを用いて前記ユーザコマンドを処理し、ゲームアクションを発生させるための手段と、
ゲーム論理モジュールを用いて、前記ゲームアクションを受信し、ゲーム世界変更を発生させるための手段と、
グラフィック処理ユニットレンダリングモジュールを用いて前記ゲーム世界変更を処理し、レンダリングされた場面を発生させるための手段と、
前記エンコードのための手段を用いて前記レンダリングされた場面を受信することと
を備える、請求項50に記載のデバイス。
【請求項52】
前記エンコードのための手段を用いた前記レンダリングされた場面の受信後、前記デバイスを用いて、次のピクチャに関して、
前記エンコードのための手段のレート制御のための手段を用いて、前記可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
前記次のピクチャのエンコードされたピクチャサイズを決定することと、
前記エンコードされたピクチャサイズおよび前記エンコーダのフレームレートに基づいて、前記要求されるレートを決定することと、
前記可変ビットレート入力の上限の可変ビットレートを決定することと、
前記要求されるビットレートを前記上限の可変ビットレートと比較することと、
前記比較に基づいて、前記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または前記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返すことを含む、請求項51に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の詳細な説明
本開示は、ビデオ圧縮に関し、より具体的には、スポーツイベント、eスポーツ、ファンタジースポーツ、ゲーミング(オンラインゲーミングを含む)、スポーツおよび/またはゲームのためのオーディオおよび/または視覚機能拡張、および同等物に関連する双方向体験等の双方向体験のためのビデオ圧縮に関する。多くの実装の中でも、ある実施例は、eスポーツ、ファンタジースポーツ、ギャンブル、ベッティング、ゲーミング、それのライブストリーミング、それのためのビデオ機能拡張、および同等物を対象とするが、それらに限定されない。
【背景技術】
【0002】
クラウドゲーミングは、非常に双方向的かつ魅力的な体験を提供する。本来、ゲーミングコンテンツは、多くの場合、迅速な場面変更を備える。しかしながら、従来のアプローチでは、クラウドゲーミング環境における迅速な場面変更は、短待ち時間および最小バッファリングのために構成される、ビデオ圧縮およびライブストリーミングシステムに関して課題を提示する。ネットワーク条件が、不十分である、および/または増減する帯域幅をもたらすとき、比較的に大きいピクチャ(すなわち、比較的に大きいビット数でエンコードされたもの)は、コマ落ちし、これは、クライアントデバイスが、ゲームプレーをリフレッシュおよび再開するために、イントラまたは瞬間的デコーダリフレッシュ(IDR)フレームを要求する結果をもたらす。
【0003】
従来の本来のゲーミング体験は、ディスクに落とされたゲームまたはプレーヤの機械にダウンロードされたゲームファイルを実行する一方、クラウドゲーミングは、ブラウザまたはゲームアプリケーションウェブクライアントを通してアクセスされるサーバ上でホストされ、ゲームプレーが、次いで、ユーザのデバイスにストリーミングされる。プレーヤは、高い算出能力を伴う従来のデスクトップコンピュータまたはコンソールを必要としない。タブレット、テレビ、またはモバイル電話が、クラウドゲーミングのために十分である。クラウドプラットフォームは、ゲームをダウンロードまたはインストールすることの必要性を除去するオプションを提供し、したがって、プレーを開始するために必要とされる時間を有意に低減させる。
【0004】
クラウドゲーミングは、快適かつ円滑なゲームプレーを可能にするために、一定かつ信頼性のあるネットワーク接続に完全に依存する。クラウドゲーミングプラットフォーム等のサービスプロバイダは、様々なレベルの性能を要求する。例えば、本願の出願の時点で、Boosteroidを通して、フル高精細(FHD)および1秒あたり60フレーム(fps)においてプレーするために、最低15Mbpsが、要求される(Boosteroid、「FAQ」、2022年11月10日アクセス時点、https://boosteroid.com/faq/)。NVIDIA GeForce NOW(NVIDIA、「System Requirements」、2022年11月10日アクセス時点、www.nvidia.com/en-us/geforce-now/system-reqs/)の場合では、少なくとも60fpsにおける720pに関して15Mbpsおよび60fpsにおける1,080pに関して25Mbpsが、要求される。短待ち時間(例えば、80マイクロ秒(ミリ秒)未満、好ましくは、40ミリ秒未満)が、推奨される。コンテンツ配信において、Netflixは、UHD 4K分解能において動画を視聴するために15Mbpsの帯域幅を推奨している(Netflix、「Internet connection speed recommendations」、2022年11月10日アクセス時点、help.netflix.com/en/node/306)。
【0005】
待ち時間が、20ミリ秒を下回り、帯域幅が、10Mbpsを上回ると、本来のものに近い体験の可能性が、存在する。クラウドゲーミングは、多くの場合、ミリ秒単位のゲームである。上記に規定されるようなラウンドトリップのための回復等のいかなる待ち時間または不連続も、体験を不満足なものにし、関与の瞬間を中断させる。最悪の場合では、待ち時間および/または不連続のリスクは、プレーする意欲の低減をもたらす。
【0006】
短待ち時間は、開始時のIDRフレーム後に、Pフレームのみをエンコードおよび送信することによって達成される。効率的なインター予測を用いることで、Pフレームは、通常、Iフレームよりもはるかに低いビットレートにおいてエンコードされる。場面変更において、現在のフレームと以前のフレームとの間の相関が、低減され、従来のインター予測の効率をはるかに低くし、Pフレーム内のマクロブロックをイントラブロックとしてエンコードさせ、したがって、本Pフレームに関するビット数を増加させる。
【0007】
その結果、本Pフレームを伝送することは、はるかに高い帯域幅を要求する。しかしながら、比較的に大きいピクチャと関連付けられるスパイクが、ビットレートの変動を可能にするネットワークプロビジョニングを超えると、問題が、生じる。大きいピクチャは、時間内に到着しない場合があり、したがって、ビットの欠落に起因してデコードされることができず、ゲームプレーにおける望ましくない失速につながる。これらの条件下で、クライアント側デバイスは、回復のためにIDRを要求し始める。IDRフレームは、再び、大きいピクチャとしてエンコードされ、より高いビットレートをもたらす。本明細書に使用されるような用語「ピクチャ」または同等物が、「フレーム」または同等物を指すために使用され得ることに留意されたい。
【0008】
QPは、マクロブロックレベルにおいて変動し得、必ずしもピクチャ全体に関して固定されない。例えば、MPEG AVCは、スライスまたはマクロブロック毎にQPをサポートする。また、MPEG HEVCは、AVCに加えて、タイル毎にQPを追加する。ピクチャあたり1つまたはそれを上回るスライスが、提供され、ピクチャ、スライス、またはマクロブロック毎のQPの調節を可能にし得る。「Rate Control and H.264」(PixelTools、2022年11月10日アクセス時点、www.pixeltools.com/rate_control_paper.html)に記述されるように、「Basic Unit」が、説明され(n. 4におけるPixelTools)、Basic Unitは、H.264レート制御推奨に関する基礎である(n. 6におけるPixelTools、G. Sullivan、T. Wiegand、およびK.P. Lim「Joint Model Reference Encoding Methods and Decoding Concealment Methods; Section 2.6: Rate Control」JVT-I049、San Diego、2003年9月を引用)。本アプローチを用いることで、スケーラブルなレート制御が、ピクチャ、スライス、マクロブロック行、またはマクロブロックの任意の連続するセット等の異なるレベルの粒度に対して追求され得る。そのレベルは、レート制御が解決され、QPの明確に異なる値が計算されるBasic Unitと称される。また、Park、Sang-hyo、およびEuee S. Jang「Efficient QP-per-frame Assignment Method for Low-delay HEVC Encoder」Journal of Broadcast Engineering 21.3 (2016年): 349-356 (韓国語原文、英訳あり)を参照されたい。すなわち、レートコントローラは、異なる粒度において調節を行うように構成され得る。
【0009】
したがって、これらの問題を克服し、重要となる双方向機能に対する影響を殆ど伴わない改良された性能をもたらす方法およびシステムに関する必要性が、生じている。
【発明の概要】
【課題を解決するための手段】
【0010】
他の利点の中でもとりわけ、クラウドプラットフォームおよび動作的に接続されるクライアントを介した短待ち時間の消費体験のための場面変更における効率的なビデオ圧縮を提供する、方法、システム、デバイス、技法、および物品が、説明される。本明細書に開示される利点は、種々の実施形態において、単独で、または任意の好適な組み合わせにおいてのいずれかで、極端に短待ち時間のレートコントローラ、極端に短待ち時間のレートコントローラ方法、場面変更におけるフレームパーティション化、場面変更におけるエンコードの予防的(比較的に早期の)終了、またはクライアントのデコーダとクラウドベースのサービスのエンコーダとの間の双方向シグナリングのうちの少なくとも1つを用いて達成される。関連する装置、デバイス、技法、および物品もまた、説明される。
【0011】
いくつかの実施形態では、本明細書に開示される方法およびシステムのうちの1つまたはそれを上回るものを含む、改良されたサービスの品質(QoS)の補完が、不十分なネットワーク条件のために提供される。
【0012】
ビデオ圧縮のための方法が、提供される。本方法は、エンコーダと動作的に接続されるレートコントローラを用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定するステップを含む。ピクチャのエンコードされたピクチャサイズが、決定される。エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づく要求されるレートが、決定される。可変ビットレート入力の上限の可変ビットレートが、決定される。要求されるビットレートは、上限の可変ビットレートと比較される。要求されるビットレートおよび上限の可変ビットレートの比較に基づいて、ピクチャは、伝送される、または量子化パラメータは、調節される。
【0013】
量子化パラメータが、調節されるとき、いくつかの実施形態では、開始量子化パラメータが、ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しく設定される。間隔は、必ずしも限定されない。いくつかの実施形態では、間隔は、整数であり、整数は、1である。終了量子化パラメータが、最大のサポートされるエンコーダ量子化パラメータ値に等しく設定される。開始量子化パラメータは、終了量子化パラメータと比較される。開始量子化パラメータが終了量子化パラメータを上回ることを決定することに応答して、新しい量子化パラメータが、決定される。新しい量子化パラメータの決定の様式は、必ずしも限定されない。いくつかの実施形態では、新しい量子化パラメータは、開始量子化パラメータから終了量子化パラメータに基づいて決定される。新しい量子化パラメータの決定は、必ずしも限定されない。いくつかの実施形態では、新しい量子化パラメータは、開始量子化パラメータ対終了量子化パラメータの比を使用して決定される。いくつかの実施形態では、新しい量子化パラメータは、開始量子化パラメータおよび終了量子化パラメータの和を2等の整数(整数は、2に限定されない)で除算することによって決定される。新しい量子化パラメータが決定された後、新しい量子化パラメータを伴うイントラピクチャが、破損したビデオストリームを修復するために発生される。いくつかの実施形態では、新しい量子化パラメータを伴うイントラピクチャ発生要求が、エンコーダに送信され、新しい量子化パラメータを伴うイントラピクチャが、エンコーダを用いて発生される。
【0014】
開始量子化パラメータが終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、ピクチャは、ピクチャの分解能を変更するステップ、ピクチャのフレームレートを変更するステップ、またはピクチャのエンコードされたピクチャサイズを低減させるステップのうちの少なくとも1つによって修正され、修正されたピクチャをエンコーダに伝送する。
【0015】
いくつかの実施形態では、エンコードされたピクチャは、マルチプレクサを用いてレートコントローラから受信される。マルチプレクサを用いて、エンコードされたピクチャは、可変ビットレート入力からのマルチメディアストリームデータとともに、エンコードされたビデオストリームに組み合わせられる。エンコードされたビデオストリームは、クライアントに伝送される。
【0016】
クラウドゲーミングでは、クライアントは、多くの場合、ビデオデコーダと、ユーザ相互作用モジュールとを備える、「シン」クライアントであり、これは、最小クライアント側算出能力および容易な実装を可能にする。シンクライアントは、ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される。クラウドゲーミングプラットフォームは、ユーザコマンドを受信する。ユーザコマンドは、シンクライアント相互作用モジュールを用いてクラウドゲーミングプラットフォームによって処理され、ゲームアクションを発生させる。ゲーム論理モジュールが、ゲームアクションを受信し、ゲーム世界変更を発生させる。ゲーム世界変更は、グラフィック処理ユニット(GPU)レンダリングモジュールを用いて処理され、レンダリングされた場面を発生させる。レンダリングされた場面は、エンコーダを用いて受信される。
【0017】
エンコーダを用いたレンダリングされた場面の受信後、プロセスは、次のピクチャに関して繰り返されてもよい。すなわち、クラウドゲーミングストリームのピクチャを処理した後、プロセスは、エンコーダに動作的に接続されるレートコントローラを用いて、可変ビットレート入力の次のピクチャの量子化パラメータを推定するステップと、次のピクチャのエンコードされたピクチャサイズを決定するステップと、エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定するステップと、可変ビットレート入力の上限の可変ビットレートを決定するステップと、要求されるビットレートを上限の可変ビットレートと比較するステップと、比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化するステップ、フレームを再構成するステップ、または量子化パラメータを調節するステップのうちの少なくとも1つを行うステップとを続ける。
【0018】
関連するビデオ圧縮システム、装置、デバイス、技法、および物品もまた、説明される。
【0019】
「クラウドゲーミングプラットフォーム」および同等物が、本明細書に言及されるが、その言及は、例示的および非限定的であることを意図している。本方法、システム、装置、デバイス、技法、および物品は、クラウドゲーミングプラットフォームに限定されず、ゲーミングまたはその他のために提供されるかどうかにかかわらず、任意の遠隔またはクラウドベースのプラットフォーム、特に、本明細書に開示される利点が所望されるものに関して実装されてもよい。
【0020】
本発明は、本明細書に列挙されるような要素の組み合わせに限定されず、本明細書に説明されるような要素の任意の組み合わせにおいて組み立てられてもよい。
【0021】
開示される主題のこれらおよび他の能力は、以下の図、詳細な説明、および請求項の精査の後により完全に理解されるであろう。
本発明は、例えば、以下の項を提供する。
(項目1)
ビデオ圧縮のための方法であって、上記方法は、
エンコーダと動作的に接続されるレートコントローラを用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
上記ピクチャのエンコードされたピクチャサイズを決定することと、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、要求されるレートを決定することと、
上記可変ビットレート入力の上限の可変ビットレートを決定することと、
上記要求されるビットレートを上記上限の可変ビットレートと比較することと、
上記比較に基づいて、上記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を含む、方法。
(項目2)
上記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定することを含む、上記項目に記載の方法。
(項目3)
上記間隔は、整数であり、上記整数は、1である、上記項目のいずれか一項に記載の方法。
(項目4)
最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定することを含む、上記項目のいずれか一項に記載の方法。
(項目5)
上記開始量子化パラメータを上記終了量子化パラメータと比較することを含む、上記項目のいずれか一項に記載の方法。
(項目6)
上記開始量子化パラメータが上記終了量子化パラメータを上回ることを決定することに応答して、上記開始量子化パラメータ対上記終了量子化パラメータの比に等しい新しい量子化パラメータを設定することを含む、上記項目のいずれか一項に記載の方法。
(項目7)
上記比は、1:2である、上記項目のいずれか一項に記載の方法。
(項目8)
上記新しい量子化パラメータを伴うイントラピクチャ発生要求を上記エンコーダに送信し、上記エンコーダを用いて、上記新しい量子化パラメータを伴うイントラピクチャを発生させることを含む、上記項目のいずれか一項に記載の方法。
(項目9)
上記開始量子化パラメータが上記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、上記ピクチャの分解能を変更すること、上記ピクチャのフレームレートを変更すること、または上記ピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、上記ピクチャを修正し、上記修正されたピクチャを上記エンコーダに伝送することを含む、上記項目のいずれか一項に記載の方法。
(項目10)
上記レートコントローラから、マルチプレクサを用いて上記エンコードされたピクチャを受信することと、
上記マルチプレクサを用いて、上記エンコードされたピクチャと上記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
上記エンコードされたビデオストリームをクライアントに伝送することと
を含む、上記項目のいずれか一項に記載の方法。
(項目11)
上記クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備えるシンクライアントであり、上記シンクライアントは、上記ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、上記項目のいずれか一項に記載の方法。
(項目12)
上記クラウドゲーミングプラットフォームを用いて、上記ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いて上記ユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、上記ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いて上記ゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
上記エンコーダを用いて上記レンダリングされた場面を受信することと
を含む、上記項目のいずれか一項に記載の方法。
(項目13)
上記エンコーダを用いた上記レンダリングされた場面の受信後、次のピクチャに関して、
上記エンコーダに動作的に接続される上記レートコントローラを用いて、上記可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
上記次のピクチャのエンコードされたピクチャサイズを決定することと、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、上記要求されるレートを決定することと、
上記可変ビットレート入力の上限の可変ビットレートを決定することと、
上記要求されるビットレートを上記上限の可変ビットレートと比較することと、
上記比較に基づいて、上記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返すことを含む、上記項目のいずれか一項に記載の方法。
(項目14)
ビデオ圧縮のためのシステムであって、上記システムは、
エンコーダと動作的に接続されるレートコントローラであって、上記レートコントローラは、
可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
上記ピクチャのエンコードされたピクチャサイズを決定することと、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、要求されるレートを決定することと、
上記可変ビットレート入力の上限の可変ビットレートを決定することと、
上記要求されるビットレートを上記上限の可変ビットレートと比較することと、
上記比較に基づいて、上記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を行うように構成される、レートコントローラ
を備える、システム。
(項目15)
上記レートコントローラは、
上記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定するように構成される、上記項目のいずれか一項に記載のシステム。
(項目16)
上記間隔は、整数であり、上記整数は、1である、上記項目のいずれか一項に記載のシステム。
(項目17)
上記レートコントローラは、
最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定するように構成される、上記項目のいずれか一項に記載のシステム。
(項目18)
上記レートコントローラは、
上記開始量子化パラメータを上記終了量子化パラメータと比較するように構成される、上記項目のいずれか一項に記載のシステム。
(項目19)
上記レートコントローラは、
上記開始量子化パラメータが上記終了量子化パラメータを上回ることを決定することに応答して、上記開始量子化パラメータ対上記終了量子化パラメータの比に等しい新しい量子化パラメータを設定するように構成される、上記項目のいずれか一項に記載のシステム。
(項目20)
上記比は、1:2である、上記項目のいずれか一項に記載のシステム。
(項目21)
上記レートコントローラは、
上記新しい量子化パラメータを伴うイントラピクチャ発生要求を上記エンコーダに送信し、上記エンコーダを用いて、上記新しい量子化パラメータを伴うイントラピクチャを発生させるように構成される、上記項目のいずれか一項に記載のシステム。
(項目22)
上記レートコントローラは、
上記開始量子化パラメータが上記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、上記ピクチャの分解能を変更すること、上記ピクチャのフレームレートを変更すること、または上記ピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、上記ピクチャを修正し、上記修正されたピクチャを上記エンコーダに伝送するように構成される、上記項目のいずれか一項に記載のシステム。
(項目23)
マルチプレクサであって、
上記レートコントローラから、上記エンコードされたピクチャを受信することと、
上記エンコードされたピクチャと上記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
上記エンコードされたビデオストリームをクライアントに伝送することと
を行うように構成される、マルチプレクサ
を備える、上記項目のいずれか一項に記載のシステム。
(項目24)
上記クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備えるシンクライアントであり、上記シンクライアントは、上記ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、上記項目のいずれか一項に記載のシステム。
(項目25)
上記クラウドゲーミングプラットフォームは、
上記ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いて上記ユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、上記ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いて上記ゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
上記エンコーダを用いて上記レンダリングされた場面を受信することと
を行うように構成される、上記項目のいずれか一項に記載のシステム。
(項目26)
上記エンコーダを用いた上記レンダリングされた場面の受信後、次のピクチャに関して、
上記エンコーダに動作的に接続される上記レートコントローラを用いて、上記可変ビットレート入力の次のピクチャの量子化パラメータを推定すること、
上記次のピクチャのエンコードされたピクチャサイズを決定すること、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、上記要求されるレートを決定すること、
上記可変ビットレート入力の上限の可変ビットレートを決定すること、
上記要求されるビットレートを上記上限の可変ビットレートと比較すること、または、
上記比較に基づいて、上記次のピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うこと
を繰り返すこと
を含む、上記項目のいずれか一項に記載のシステム。
(項目27)
非一過性コンピュータ可読媒体であって、上記非一過性コンピュータ可読媒体は、エンコーダと動作的に接続されるレートコントローラを用いたビデオ圧縮のために、上記非一過性コンピュータ可読媒体上にエンコードされる非一過性コンピュータ可読命令を有し、上記非一過性コンピュータ可読命令は、実行されると、
上記エンコーダと動作的に接続されるレートコントローラを用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
上記ピクチャのエンコードされたピクチャサイズを決定することと、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、要求されるレートを決定することと、
上記可変ビットレート入力の上限の可変ビットレートを決定することと、
上記要求されるビットレートを上記上限の可変ビットレートと比較することと、
上記比較に基づいて、上記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を行う、非一過性コンピュータ可読媒体。
(項目28)
実行されると、上記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定する命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目29)
上記間隔は、整数であり、上記整数は、1である、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目30)
実行されると、最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定する命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目31)
実行されると、上記開始量子化パラメータを上記終了量子化パラメータと比較する命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目32)
実行されると、上記開始量子化パラメータが上記終了量子化パラメータを上回ることを決定することに応答して、上記開始量子化パラメータ対上記終了量子化パラメータの比に等しい新しい量子化パラメータを設定する命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目33)
上記比は、1:2である、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目34)
実行されると、上記新しい量子化パラメータを伴うイントラピクチャ発生要求を上記エンコーダに送信し、上記エンコーダを用いて、上記新しい量子化パラメータを伴うイントラピクチャを発生させる命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目35)
実行されると、上記開始量子化パラメータが上記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、上記ピクチャの分解能を変更すること、上記ピクチャのフレームレートを変更すること、または上記ピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、上記ピクチャを修正し、上記修正されたピクチャを上記エンコーダに伝送する命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目36)
実行されると、
上記レートコントローラから、マルチプレクサを用いて上記エンコードされたピクチャを受信することと、
上記マルチプレクサを用いて、上記エンコードされたピクチャと上記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
上記エンコードされたビデオストリームをクライアントに伝送することと
を行う命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目37)
上記クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備えるシンクライアントであり、上記シンクライアントは、上記ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目38)
実行されると、
上記クラウドゲーミングプラットフォームを用いて、上記ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いて上記ユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、上記ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いて上記ゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
上記エンコーダを用いて上記レンダリングされた場面を受信することと
を行う命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目39)
実行されると、上記エンコーダを用いた上記レンダリングされた場面の受信後、次のピクチャに関して、
上記エンコーダに動作的に接続される上記レートコントローラを用いて、上記可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
上記次のピクチャのエンコードされたピクチャサイズを決定することと、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、上記要求されるレートを決定することと、
上記可変ビットレート入力の上限の可変ビットレートを決定することと、
上記要求されるビットレートを上記上限の可変ビットレートと比較することと、
上記比較に基づいて、上記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返す命令
を備える、上記項目のいずれか一項に記載の非一過性コンピュータ可読媒体。
(項目40)
ビデオ圧縮のためのデバイスであって、上記デバイスは、
エンコードのための手段と動作的に接続されるレート制御のための手段を用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定するための手段と、
上記ピクチャのエンコードされたピクチャサイズを決定するための手段と、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、要求されるレートを決定するための手段と、
上記可変ビットレート入力の上限の可変ビットレートを決定するための手段と、
上記要求されるビットレートを上記上限の可変ビットレートと比較するための手段と、
上記比較に基づいて、上記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うための手段と
を備える、デバイス。
(項目41)
上記ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定するための手段を備える、上記項目のいずれか一項に記載のデバイス。
(項目42)
上記間隔は、整数であり、上記整数は、1である、上記項目のいずれか一項に記載のデバイス。
(項目43)
最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定するための手段を備える、上記項目のいずれか一項に記載のデバイス。
(項目44)
上記開始量子化パラメータを上記終了量子化パラメータと比較するための手段を備える、上記項目のいずれか一項に記載のデバイス。
(項目45)
上記開始量子化パラメータが上記終了量子化パラメータを上回ることを決定することに応答して、上記開始量子化パラメータ対上記終了量子化パラメータの比に等しい新しい量子化パラメータを設定するための手段を備える、上記項目のいずれか一項に記載のデバイス。
(項目46)
上記比は、1:2である、上記項目のいずれか一項に記載のデバイス。
(項目47)
上記新しい量子化パラメータを伴うイントラピクチャ発生要求を上記エンコーダに送信し、上記エンコーダを用いて、上記新しい量子化パラメータを伴うイントラピクチャを発生させるための手段を備える、上記項目のいずれか一項に記載のデバイス。
(項目48)
上記開始量子化パラメータが上記終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、上記ピクチャの分解能を変更するための手段、上記ピクチャのフレームレートを変更するための手段、または上記ピクチャのエンコードされたピクチャサイズを低減させるための手段のうちの少なくとも1つによって、上記ピクチャを修正し、上記修正されたピクチャを上記エンコーダに伝送するための手段を備える、上記項目のいずれか一項に記載のデバイス。
(項目49)
上記レートコントローラから、マルチプレクサを用いて上記エンコードされたピクチャを受信するための手段と、
上記マルチプレクサを用いて、上記エンコードされたピクチャと上記可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせるための手段と、
上記エンコードされたビデオストリームをクライアントに伝送するための手段と
を備える、上記項目のいずれか一項に記載のデバイス。
(項目50)
上記クライアントは、ビデオデコードのための手段と、ユーザ相互作用のための手段とを備えるシンクライアントであり、上記シンクライアントは、上記ユーザ相互作用モジュールから上記デバイスにユーザコマンドを伝送するように構成される、上記項目のいずれか一項に記載のデバイス。
(項目51)
上記デバイスは、
上記クラウドゲーミングプラットフォームを用いて、上記ユーザコマンドを受信するための手段と、
シンクライアント相互作用モジュールを用いて上記ユーザコマンドを処理し、ゲームアクションを発生させるための手段と、
ゲーム論理モジュールを用いて、上記ゲームアクションを受信し、ゲーム世界変更を発生させるための手段と、
グラフィック処理ユニットレンダリングモジュールを用いて上記ゲーム世界変更を処理し、レンダリングされた場面を発生させるための手段と、
上記エンコードのための手段を用いて上記レンダリングされた場面を受信することと
を備える、上記項目のいずれか一項に記載のデバイス。
(項目52)
上記エンコードのための手段を用いた上記レンダリングされた場面の受信後、上記デバイスを用いて、次のピクチャに関して、
上記エンコードのための手段のレート制御のための手段を用いて、上記可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
上記次のピクチャのエンコードされたピクチャサイズを決定することと、
上記エンコードされたピクチャサイズおよび上記エンコーダのフレームレートに基づいて、上記要求されるレートを決定することと、
上記可変ビットレート入力の上限の可変ビットレートを決定することと、
上記要求されるビットレートを上記上限の可変ビットレートと比較することと、
上記比較に基づいて、上記ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または上記量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返すことを含む、上記項目のいずれか一項に記載のデバイス。
(摘要)
クラウドコンピューティング環境において改良された短待ち時間の双方向体験を提供するための場面変更におけるビデオ圧縮のための方法およびシステム。例示的使用事例は、クラウド対応双方向スポーツイベント、eスポーツ、ファンタジースポーツ、ゲーミング、および機能拡張を含む、全ての形態のクラウドゲーミングを含む。性能および体験における改良は、極端に短待ち時間のレートコントローラ、極端に短待ち時間のレートコントローラ方法、場面変更におけるフレームパーティション化、場面変更におけるエンコードの予防的(比較的に早期の)終了、デコーダとエンコーダとの間の双方向シグナリング、または双方向シグナリングのうちの少なくとも1つを用いて達成される。関連する装置、デバイス、技法、および物品もまた、説明される。
【図面の簡単な説明】
【0022】
本開示は、1つまたはそれを上回る種々の実施形態に従って、以下の図を参照して詳細に説明される。図面は、図示の目的のみのために提供され、単に、典型的または例示的実施形態を描写する。これらの図面は、本明細書に開示される概念の理解を促進するために提供され、これらの概念の範疇、範囲、または適用性の限定と見なされるべきではない。明確化および容易な図示のために、これらの図面が、必ずしも縮尺通りに作製されないことに留意されたい。
【0023】
本明細書の実施形態は、同様の参照番号が、同様にまたは機能的に類似する要素を示す、付随の図面と併せて、以下の説明を参照することによってより深く理解され得る。
【0024】
図1A図1Aは、本開示のいくつかの実施形態による、クライアントデバイスに動作的に接続されるクラウドベースのゲーミングプラットフォームを介して短待ち時間の双方向体験を享受している、ゲーマのグループを描写する。
【0025】
図1B図1Bは、本開示のいくつかの実施形態による、図1Aのグループに短待ち時間の双方向体験を配信するように構成される、短待ち時間のクラウドプラットフォームを含む、クラウドを描写する。
【0026】
図2図2は、本開示のいくつかの実施形態による、ビデオエンコーダと、極端に短待ち時間のレートコントローラと、随意に、マルチプレクサとを含む、短待ち時間のレートコントローラシステムを描写する。
【0027】
図3図3は、本開示のいくつかの実施形態による、図2の極端に短待ち時間のレートコントローラに関するレートコントローラプロセスを描写する。
【0028】
図4図4は、第1の実施例(図4A)、第2の実施例(図4B)、第3の実施例(図4C)、第4の実施例(図4D)、第5の実施例(図4E)、第6の実施例(図4F)、第7の実施例(図4G)、第8の実施例(図4H)、第9の実施例(図4I)、第10の実施例(図4J)、第11の実施例(図4K)、および第12の実施例(図4L)を含む、本開示のいくつかの実施形態による、フレームのパーティション化の実施例を描写する。
【0029】
図5図5は、第1の実施例(図5A)、第2の実施例(図5B)、第3の実施例(図5C)、第4の実施例(図5D)、第5の実施例(図5E)、第6の実施例(図5F)、第7の実施例(図5G)、第8の実施例(図5H)、第9の実施例(図5I)、第10の実施例(図5J)、第11の実施例(図5K)、第12の実施例(図5L)、第13の実施例(図5M)、第14の実施例(図5N)、および第15の実施例(図5O)を含む、本開示のいくつかの実施形態による、比較的に大きいピクチャを回避するための場面変更におけるエンコードの予防的(比較的に早期の)終了を描写する。
【0030】
図6図6は、本開示のいくつかの実施形態による、クラウドゲーミングプラットフォームのエンコーダとクライアントのデコーダとの間の双方向シグナリングを描写する。
【0031】
図7図7は、本開示のいくつかの実施形態による、クラウドゲーミングフレームワークを描写する。
【0032】
図8図8は、本開示のいくつかの実施形態による、人工知能システムを描写する。
【0033】
図9図9は、本開示のいくつかの実施形態による、本方法およびプロセスを実施するためのサーバと、通信ネットワークと、コンピューティングデバイスとを含む、システムを描写する。
【0034】
図面は、本明細書に開示される主題の典型的な側面のみを描写することを意図しており、したがって、本開示の範囲を限定するものとして見なされるべきではない。当業者は、本明細書に具体的に説明され、付随の図面に図示される構造、システム、デバイス、および方法が、非限定的例示的実施形態であり、本発明の範囲が、請求項によってのみ定義されることを理解するであろう。
【発明を実施するための形態】
【0035】
詳細な説明
クラウドゲーミングプラットフォームを含む、クラウドプラットフォームは、人気が高まっている。広帯域接続が改良されても、クラウドプラットフォームの性能の待ち時間および劣化は、課題のままである。例えば、クラウドゲーミングでは、サーバおよびクライアントは、ユーザデバイスからの要求およびコマンドを含む、通信のための確立されたチャネルと、クライアントがビデオコンテンツを受信するための限定された利用可能な帯域幅とを有する。
【0036】
ゲーマは、より円滑なゲームプレー体験を得るために、ビデオ品質を妥協することを好む。本方法およびシステムは、慎重に制御された劣化および自己回復ピクチャ品質を伴う連続的ゲーミングを確実にするために、予防的かつ予応的であるエンコードオプションを実装する。改良されたエンコーダが、上記に言及される問題を軽減し、関連付けられるシステムが双方向かつ魅力的な体験を失速させることを防止するために提供される。最小限にされた制御された劣化を助長し、場面変更において比較的に大きいサイズのピクチャを発生させることを回避するためのソリューションが、提供される。
【0037】
限定された帯域幅に起因して、エンコーダは、ピクチャサイズを低減させるために、量子化パラメータ(QP)を増加させ得る。しかしながら、全てのコーダ/デコーダ(コーデック)仕様によって許容されるQP値の上限が、存在する。時として、最大のQPおよび非常に劣化されたピクチャ品質であっても、結果として生じるピクチャサイズは、時間内に伝送され得るものを有意に超える。
【0038】
場面変更が生じると、エンコーダは、新しい場面の最初のフレームをエンコードすることから、大きいピクチャを予期するはずである。ライブおよび比較的に短待ち時間のクラウドゲーミングは、望ましくは、シングルパスエンコードをもたらす。望ましい性能を達成するために、ビット配分およびレート制御における有意な課題が、存在する。新しい場面の未知の特性は、結果として生じるフレームあたりのビットの予測不可能性を課す。
【0039】
インター予測が、効率がより低い状態になると、新しいコンテンツのマクロブロックは、イントラコーディングされ、Pフレームは、Iフレームを伝送するために、高いビットレートを等しく要求するであろう。大きいピクチャは、デコーダにおけるフレーム落ちを引き起こし得る。デコーダにおけるフレーム落ちが生じるとき、最も重要なことは、ゲームプレーが、最小限にされた制御された劣化を伴って、ノンストップで継続することを確実にすることである。
【0040】
エンコードにおける予測および予応的動作が、提供される。場面変更におけるPフレームエンコードの完了に応じて、エンコーダは、フレームが時間内、例えば、60fpsのゲーミングに関して16.67ミリ秒以内に受信およびデコードされる確率を予測するように構成される。フレームがコマ落ちする高い確率は、次のフレームをIDRにエンコードすることを直ちにトリガし、これは、以前のPフレームの損失によって影響を受けることなく、デコードをリフレッシュする。
【0041】
予応的動作は、クライアントまたはユーザデバイスが要求を開始した後の可能性として考えられるラウンドトリップからの待ち時間を低減させる。すなわち、予防的イントラエンコードは、続くイントラコーティングされたフレームが高いビットレートを要求することを予想する。したがって、予応的動作および予防的イントラエンコードは、ゲームプレーを継続するために時間内にIフレームを終わらせ、それがデコードされる増加された確率を確実にするために、非常に望ましい。エンコーダは、エンコーダが、連続して複数のイントラフレームを要求することが予測され、したがって、それらを強制的にエンコードするとき、低減されたピクチャサイズにつながる量子化を増加させるための機構を実装する。
【0042】
同一の場面における近隣のフレームの類似する特性に起因して、以前のイントラフレームをエンコードすることからの統計値は、ビットをより良好に配分し、現在のフレームをエンコードする際のレート制御を改良することに役立つであろう。
【0043】
図1Aは、クライアントデバイスに動作的に接続されるクラウドベースのゲーミングプラットフォームを介して短待ち時間の双方向体験を享受している、ゲーマのグループ100を描写する。図1Bは、図1Aのグループ100に短待ち時間の双方向体験を配信するように構成される、短待ち時間のクラウドプラットフォームを含む、クラウド105を描写する。
【0044】
図2は、ネットワークレートコントローラとビデオエンコーダとの間の相互作用の実施例を示す。図3のフローチャートは、計算されたビットレート割当量内でエンコードされたフレームを配信する目標を達成するための動作を図示する。最も高いQP値であっても、結果として生じるピクチャサイズが時間内に伝送され得るものを有意に超える可能性が、依然として存在する。これは、本質的に、失速を強制し、修復を要求する。失速および修復プロセスが要求されることを防止するために、エンコーダは、種々の形態においてフレームをパーティション化および構成するためのオプションを実装し、各エンコードされたフレームが時間内に受信およびデコードされることを保証するために、必要なときに早期の終了を可能にする。
【0045】
極端に短待ち時間のレートコントローラおよびレートコントローラ計算が、提供される。図2は、ビデオエンコーダ205と相互作用する極端に短待ち時間のレートコントローラ225を含む、システム200のブロック図である。図3は、ビデオ圧縮において標的ピクチャサイズを達成するためのQPの推定および計算のプロセス300を描写する。
【0046】
例示的実施形態によると、システム200は、レートコントローラ225に動作的に接続される、ビデオエンコーダ205を含む。レートコントローラ225は、入力として上限の可変ビットレートストリーム230を受信するように構成される。レートコントローラ225は、ビデオエンコーダ205からエンコードされたピクチャ210を受信するように構成される。レートコントローラ225は、量子化パラメータ値215をビデオエンコーダ205に伝送するように構成される。レートコントローラ225は、いくつかの実施形態では、レートコントローラプロセス300(下記により詳細に説明される)を伴って構成される。レートコントローラプロセス300を実行するレートコントローラ225は、イントラピクチャ修復が要求されるかどうかを決定するように構成される。レートコントローラ225は、QP値を用いてイントラピクチャを修復するように構成される。レートコントローラ225は、イントラフレームの有無を問わず、QP値を用いて修復された(いくつかの実施形態では、下記に説明される、図3のプロセス300の論理に応じて)、エンコードされたピクチャ235をクライアントデバイスに送信するように構成される。いくつかの実施形態では、マルチメディアストリーム250を伝送する前に、マルチプレクサ240が、提供される。マルチプレクサ240は、他のマルチメディアストリームデータ245を受信し、レートコントローラ225からのエンコードされたピクチャ235を伝送されるマルチメディアストリーム250に組み合わせるように構成される。
【0047】
コンテンツをパーティション化および再構成するプロセスが、提供される。図4は、新しいフレームが改良されたエンコードのためにパーティション化および再作成される方法のいくつかの実施例を示す。例えば、60fpsの短待ち時間のクラウドゲーミングでは、各フレームは、表示され、次いで、16.67ミリ秒単位でリフレッシュされる。実施例に図示されるようないくつかの連続的フレームの遷移は、視覚効果において最小限にされた制御された劣化を表すであろう。開示されるオプションは、ゲームプレーが停止することを防止する。したがって、コンテンツをパーティション化および再構成するプロセスは、劣化が予測される、および/または別様に不可避である場合の速やかな回復のための予防的手段である。
【0048】
図3は、レートコントローラプロセス300を描写する。レートコントローラプロセス300は、レートコントローラを用いて、上限の可変ビットレートストリーム230等の可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定するステップ305を含む。レートコントローラプロセス300は、ピクチャのエンコードされたピクチャサイズを決定するステップ310を含む。レートコントローラプロセス300は、エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定するステップ315を含む。レートコントローラプロセス300は、可変ビットレート入力の上限の可変ビットレートを決定するステップ(図示せず)を含む。レートコントローラプロセス300は、要求されるビットレートを上限の可変ビットレートと比較するステップ320を含む。レートコントローラプロセス300は、ピクチャを伝送するステップ325を含む。レートコントローラプロセス300は、比較に基づいて、フレームをパーティション化するステップ(例えば、図4)、フレームを再構成するステップ(例えば、図5)、または量子化パラメータを調節するステップのうちの少なくとも1つ(例えば、図3のステップ330-360)を含む。
【0049】
比較に基づいて量子化パラメータを調節するステップを含む実施形態に関して、レートコントローラプロセス300は、ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定するステップ330を含む。いくつかの実施形態では、間隔は、整数であり、整数は、1である。レートコントローラプロセス300は、最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定するステップ335を含む。レートコントローラプロセス300は、開始量子化パラメータを終了量子化パラメータと比較するステップ340を含む。レートコントローラプロセス300は、開始量子化パラメータが終了量子化パラメータを上回る(340=該当)ことを決定することに応答して、新しい量子化パラメータを設定するステップ365を含む。いくつかの実施形態では、新しい量子化パラメータは、開始量子化パラメータおよび終了量子化パラメータに基づいて決定される。例えば、新しい量子化パラメータは、開始量子化パラメータ対終了量子化パラメータの比を使用して決定される。比は、一実施形態では、開始量子化パラメータおよび終了量子化パラメータの和を2等の整数(整数は、2に限定されない)で除算することによって決定される。一実施形態では、開始量子化パラメータ対終了量子化パラメータの比は、1:2に設定される。レートコントローラプロセス300は、(破損したビデオストリームを修復するために)新しい量子化パラメータを伴うイントラピクチャを発生させるステップを含む。レートコントローラプロセス300は、新しい量子化パラメータを伴うイントラピクチャ発生要求をエンコーダ205に送信し、新しい量子化パラメータを伴うイントラピクチャを発生させるステップ370を含む。いくつかの実施形態では、イントラピクチャは、少なくとも1つの損失されたパケットの修復のために送信される。いくつかの事例では、Pピクチャは、時間内に到着せず、クライアント上でバッファリングされることができなかったため、Pピクチャの完全な損失が、生じ得る。クライアントは、バッファを伴わずに実行され、クライアントは、可能な限りすぐにスライスまたはタイルをデコードおよびレンダリングする。遅れて到着するいかなるデータも、修復プロセスの目的を損なうことなく損失されることができる。
【0050】
レートコントローラプロセス300は、開始量子化パラメータが終了量子化パラメータを下回らない、またはそれに等しい(ステップ340=該当せず)ことを決定することに応答して、ピクチャの分解能を変更するステップ350、ピクチャのフレームレートを変更する(例えば、フレームレートを低減させる)ステップ355、またはピクチャのエンコードされたピクチャサイズを低減させるステップ360のうちの少なくとも1つによって、ピクチャを修正するステップを含む、代替手段を行うステップ345を含む。レートコントローラプロセス300は、修正されたピクチャまたは低減されたフレームレートにおけるピクチャを伝送するステップ325を含む。いくつかの実施形態では、修正されたピクチャまたは低減されたフレームレートにおけるピクチャは、エンコードされたビデオとして伝送される。
【0051】
いくつかの実施形態では、レートコントローラプロセス300は、レートコントローラ225から、マルチプレクサ240を用いてエンコードされたピクチャ235を受信するステップを含む。レートコントローラプロセス300は、マルチプレクサ240を用いて、エンコードされたピクチャ235と可変ビットレート入力230からのマルチメディアストリームデータ245とをエンコードされたビデオストリームまたはマルチメディアストリームに組み合わせるステップを含む。レートコントローラプロセス300は、エンコードされたビデオストリームまたはマルチメディアストリームをクライアント(本明細書に説明される)に伝送するステップ250を含む。
【0052】
図7に示されるように、クラウドゲーミングフレームワーク700が、提供される。クラウドゲーミングフレームワーク700は、ビデオデコーダ720と、ユーザ相互作用モジュール715とを備える、シンクライアント710を含む。シンクライアント710は、ユーザ相互作用モジュール715からクラウドゲーミングプラットフォーム730にユーザコマンド725を伝送するように構成される。クラウドゲーミングプラットフォーム730は、ユーザコマンド725を受信するように構成される。ユーザコマンド725は、シンクライアント相互作用モジュール735を用いて処理され、ゲームアクション740を発生させる。ゲーム論理モジュール745が、ゲームアクション740を受信および処理し、ゲーム世界変更750を発生させる。ゲーム世界変更750は、ビデオエンコーダ765に伝送される、レンダリングされた場面760を発生させるように構成される、グラフィック処理ユニットレンダリングモジュール755を用いて処理される。ビデオエンコーダ765は、エンコードされたビデオ770を発生させ、ビデオストリーミングモジュール775に伝送するように構成される。ビデオストリーミングモジュール775は、ビデオストリーム780を出力するように構成される。
【0053】
レンダリングされた場面760がエンコーダ765を用いて受信された後、レートコントローラプロセス300は、次のピクチャに関して繰り返すように構成される(図3)。すなわち、レートコントローラプロセス300は、エンコーダに動作的に接続されるレートコントローラを用いて、可変ビットレート入力の次のピクチャの量子化パラメータを推定し(305)、次のピクチャのエンコードされたピクチャサイズを決定し(310)、エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定し(315)、可変ビットレート入力の上限の可変ビットレートを決定し、要求されるビットレートを上限の可変ビットレートと比較し(320)、比較に基づいて、ピクチャを伝送する(325)、または量子化パラメータを調節する(例えば、ステップ330-360)。
【0054】
図4は、場面変更において連続してフレームをパーティション化するステップ400の実施例を描写する。より濃い色のエリアは、イントラコーディングされることが予期される、場面変更からの新しいピクチャデータを表す。より薄い色のエリアは、以前の場面からのピクチャデータを繰り返し、スキップされたマクロブロックを用いてエンコードされる。スキップされたマクロブロックは、シグナリングのために最小ビット数を要求する。
【0055】
本質的に、場面変更において開始されるフレームのシーケンスにおいて、イントラコーディングされたマクロブロックの数は、柔軟に制約されることができる。言い換えると、イントラコーディングされたマクロブロックは、ここでは、単一のフレームにおけるビットの劇的な増加が、回避されるように、連続する複数のフレームに再分配される。簡略化のために、これらのマクロブロックが、より効率の低いインター予測に起因して、イントラコーディングされたマクロブロックと称されることに留意されたい。一般性を失うことなく、イントラコーディングされたマクロブロックは、インター予測がモード選択によって決定される場合であっても、任意の大きいサイズのマクロブロックに適用可能である。
【0056】
図4は、第1の実施例(図4A)、第2の実施例(図4B)、第3の実施例(図4C)、第4の実施例(図4D)、第5の実施例(図4E)、第6の実施例(図4F)、第7の実施例(図4G)、第8の実施例(図4H)、第9の実施例(図4I)、第10の実施例(図4J)、第11の実施例(図4K)、および第12の実施例(図4L)を含む、マクロブロックを集約する異なる方法からの効果を図示する。マクロブロックを集約する異なる方法は、計算された帯域幅、例えば、ゲームプレーを停止させることなく適応され得る新しいコンテンツのパーセンテージに基づいて、柔軟である。そのようなスキップされないイントラマクロブロックのエンコードは、フレーム内の任意の場所から開始するように構成される。
【0057】
結果として、フレーム持続時間内に安全に伝送およびデコードされ得る計算されたフレームあたりのビットを用いることで、更新のためにエンコードされるマクロブロックの領域またはカバレッジは、フレームのエンコードの開始時に構成される。例示的パターンが、図4に示されるが、パターンは、図4に図示されるものに限定されない。
【0058】
構成における複数のオプションが、結果として生じる経時的な視覚効果の単一のパターンを回避するために、ともに使用される。言い換えると、変動が、いくつかの実施形態では、許容され、異なる場面変更においてランダムに実装される。
【0059】
図4の実施例のそれぞれでは、フレームが、60fpsのゲーミングに関して16.67ミリ秒未満で受信およびデコードされる。第1の実施例(図4A)では、フレームが、M個の行に分割され、M=8であり(簡略化のため、但し、任意の好適な数のMが、採用されてもよい)、行1-3および6-8は、スキップされたマクロブロック(MB)を用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、行4および5は、場面変更からの新しいピクチャデータを表す。M=8である、第2の実施例(図4B)では、行1-2および7-8は、スキップされたMBを用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、行3-6は、場面変更からの新しいピクチャデータを表す。M=8である、第3の実施例(図4C)では、行1および8は、スキップされたMBを用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、行2-7は、場面変更からの新しいピクチャデータを表す。M=8である、第4の実施例(図4D)では、全ての行1-8は、場面変更からの新しいピクチャデータを表す。
【0060】
第5の実施例(図4E)では、フレームが、N個の列に分割され、N=10であり(簡略化のため、但し、任意の好適な数のNが、フレームフォーマットに応じて採用されてもよい)、列1-4および7-10は、スキップされたマクロブロック(MB)を用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、列5および6は、場面変更からの新しいピクチャデータを表す。N=10である、第6の実施例(図4F)では、列1-3および8-10は、スキップされたMBを用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、列4-7は、場面変更からの新しいピクチャデータを表す。N=10である、第7の実施例(図4G)では、列1-2および9-10は、スキップされたMBを用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、列3-8は、場面変更からの新しいピクチャデータを表す。N=10である、第8の実施例(図4H)では、列1および10は、スキップされたMBを用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、列2-9は、場面変更からの新しいピクチャデータを表す。
【0061】
第9の実施例(図4I)では、フレームが、M個の行×N個の列に分割され、M=6、N=10であり(簡略化のため、但し、任意の好適な数のM、Nが、採用されてもよい)、行1および6および列1-3および8-10は、スキップされたマクロブロック(MB)を用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、行2-5の中心部分および列4-7の対応する中心部分は、場面変更からの新しいピクチャデータを表す。M=6、N=10である、第10の実施例(図4J)では、列1-2および9-10は、スキップされたMBを用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、列3-8は、場面変更からの新しいピクチャデータを表す。M=6、N=10である、第11の実施例(図4K)では、列1および10は、スキップされたMBを用いてエンコードされる、以前の場面からの繰り返しピクチャデータを表し、列2-9は、場面変更からの新しいピクチャデータを表す。M=6、N=10である、第12の実施例(図4L)では、全ての行1-6または全ての列1-10は、場面変更からの新しいピクチャデータを表す。
【0062】
図5を参照すると、エンコードの早期の終了が、提供される。シングルパスエンコードにおける予測不可能性が、存在し、予測不可能性は、場面変更からのフレームのエンコードにおいて増加する。いくつかの実施形態では、ビット配分、モード選択、およびレート制御の組み合わせは、計算された割当量を超えるビット数を発生させる結果をもたらす。エンコードからのデータサイズのより厳密な管理を可能にするためのプロセスが、実装される。
【0063】
具体的には、図5は、現在のフレームに関するビットの増加を回避するための早期の終了の実施例(図5A-5O)を提示する。図5のプロセスは、マクロブロックをパーティション化するステップから独立し、ラスタ走査順序における最初のマクロブロックの開始から開始されることができる。いくつかの実施形態では、図5のプロセスは、図4に示されるようなマクロブロックの再構成と結合される。簡略化のために、各フレームは、6つの行(M=6)に分割されるが、上記の図4におけるように、任意の好適な数または構成が、提供されてもよく、図4に示されるフォーマットのうちのいずれかが、6つの行の代わりに採用されてもよい。
【0064】
図5A-5Eの実施例では、図5Aに示されるように、第1の16.67ミリ秒において、Pフレームの全ての6つの行は、以前の場面からの繰り返しピクチャデータを含み、スキップされたMBを用いてエンコードされる。16.67ミリ秒の第2の間隔(図5B)に始まって、各後続の間隔(図5C-5E)では、場面変更が、ピクチャサイズにおける比較的に大きい増加をもたらし、典型的なI:P比は、5~20:1である。
【0065】
図5F-5Jの実施例では、図5Fに示されるように、第1の16.67ミリ秒において、再び、Pフレームの全ての6つの行は、以前の場面からの繰り返しピクチャデータを含み、スキップされたMBを用いてエンコードされるが、しかしながら、本実施例では、帯域幅は、Iフレームの約半分(50%)に関して利用可能である。16.67ミリ秒の第2の間隔(図5G)において、エンコードは、累積ビット/フレームが中止点に到達するときに終了し、フレームの残りの部分は、ほぼゼロのコストにおいてコピーされる、またはスキップされたMBを含むことができる。16.67ミリ秒の第3の間隔(図5H)において、次のフレームは、帯域幅が可能にする場合、エンコードを完了し、上半分が、インター予測され、すなわち、低コストであり、下半分が、新しい。16.67ミリ秒の第4および第5の間隔(図5Iおよび5J)において、通常のPフレームが、効率的なインター予測を用いてエンコードされる。
【0066】
図5K-5Oの実施例は、帯域幅がIフレームの約3分の1(33.3%)に関して利用可能であることを除いて、図5F-5Jの実施例に類似する。図5Kに示されるように、第1の16.67ミリ秒において、再び、Pフレームの全ての6つの行は、以前の場面からの繰り返しピクチャデータを含み、スキップされたMBを用いてエンコードされる。16.67ミリ秒の第2の間隔(図5L)において、エンコードは、累積ビット/フレームが中止点に到達するときに終了し、フレームの残りの部分は、ほぼゼロのコストにおいてコピーされる、またはスキップされたMBを含むことができる。16.67ミリ秒の第3の間隔(図5M)において、上の3分の1が、インター予測され、すなわち、中間の3分の1は、新しく、下の3分の1は、コピーされたMBのままである。16.67ミリ秒の第4の間隔(図5N)において、フレームは、帯域幅が可能にする場合、エンコードを完了し、下の3分の1のみが、新しい。16.67ミリ秒の第5の間隔(図5)において、通常のPフレームが、効率的なインター予測を用いてエンコードされる。
【0067】
協働的エンコードおよびデコードが、提供される。開示される予防的エンコードは、シングルエンドである。いくつかの実施形態では、さらにより効率的な適合が、改良された体験のために協働するようにサーバおよびクライアントを実装することによって可能にされる。
【0068】
シングルエンドの場合では、最適化は、事前知識に対して推定される帯域幅に基づき、最適化はまた、デコーダが、フレームのビットがバッファにおいて完全に利用可能であるときにデコードを開始すると仮定する。フレームは、一部のビットが時間内に利用可能ではない、例えば、次のフレームの開始コードが欠落する場合、コマ落ちし得る。
【0069】
図6は、デコーダとエンコーダとの間の双方向シグナリング、すなわち、協働的エンコードおよびデコードを図示する。システム600は、クライアント675に動作的に接続される、ネットワーク670に動作的に接続される、クラウド605を含む。クラウド605は、クラウドゲーミングプラットフォーム610を含む。クラウドゲーミングプラットフォーム610は、ビデオエンコーダモジュール645と通信する、ビデオキャプチャラモジュール635と通信する、ゲームプログラムモジュール615を含む。クラウドゲーミングプラットフォーム610は、ゲームプログラムモジュール615と通信する、コマンドインタープリタモジュール660を含む。ゲームプログラムモジュール615は、ゲーム論理モジュール625と通信する、場面リーダモジュール620を含む。
【0070】
例示的動作モードでは、ゲームプログラムモジュール615の場面リーダモジュール620は、レンダリングされた場面をビデオキャプチャラモジュール635に伝送する(630)ように構成され、これは、ビデオをビデオエンコーダモジュール645に伝送する(640)ように構成され、これは、ビデオフレームをネットワーク670を横断してクライアント675に伝送する(650)ように構成され、これは、クライアント675のコマンド受信機モジュール690と通信する、ビデオデコーダモジュール680を用いてビデオフレーム650を受信するように構成される。ビデオデコーダモジュール680は、デコード統計値をコマンド受信機モジュール690に伝送する(685)ように構成され、これは、ユーザ入力をネットワーク670を横断してクラウドゲーミングプラットフォーム610のコマンドインタープリタモジュール660に伝送する(655)ように構成される。コマンドインタープリタモジュール660は、コマンドをゲームプログラムモジュール615のゲーム論理モジュール625に伝送する(665)ように構成され、これは、ゲームプログラムモジュール615の場面リーダモジュール620と通信するように構成される。
【0071】
短待ち時間の場合では、デコードは、部分的フレーム、すなわち、開始するべき少なくとも1つのスライス、少なくとも1つのタイル、いくつかのマクロブロック、またはマクロブロック行の受信から開始され得る。予測不可能かつ増減するネットワーク条件の決定に応答して、クライアントにおけるデコーダは、時間内に受信されたマクロブロックを自動的にデコードし、残りの部分をスキップするように構成される(マクロブロックの残りの部分がスキップされたモードにおいてエンコードされると仮定する)。デコーダは、次いで、更新されるべきであるマクロブロックの位置をシグナリングし、下流プロセスが、図6に示されるように、それに応じて応答する。
【0072】
そのような双方向シグナリングを用いることで、ゲームプレーは、連続的かつ円滑にされる。ピクチャは、経時的に更新され、ピクチャ品質は、マクロブロックの欠落に起因する明白なアーチファクトを伴わずに改良される。すなわち、双方向シグナリングは、マクロブロックの欠落に起因するアーチファクトが、従来のインター予測および補償プロセスによって伝搬および持続することを可能にする、従来のアプローチで生じる問題を回避する。
【0073】
図7は、クラウドゲーミングシステム705のフレームワーク700を図示する。クラウドゲーミングシステム705は、クラウドゲーミングプラットフォーム730に動作的に接続される、シンクライアント710を含む。シンクライアント710は、ユーザデバイス715からユーザ相互作用(例えば、命令および要求)を収集し、ユーザデバイス715に入力されるユーザコマンドに応答してレンダリングするために、ユーザコマンド(例えば、命令および要求)をクラウドゲーミングプラットフォーム730に送信する(725)。具体的には、クラウドゲーミングプラットフォーム730は、シンクライアント相互作用モジュール735、ゲーム論理モジュール745、グラフィック処理ユニット(GPU)レンダリングモジュール755、ビデオエンコーダモジュール765、またはビデオストリーミングモジュール775のうちの少なくとも1つを含む。クラウドゲーミングプラットフォーム730のシンクライアント相互作用モジュール735は、シンクライアント710からユーザコマンドを受信する(725)。シンクライアント相互作用モジュール735は、ゲームアクションをゲーム論理モジュール745に送信し(740)、これは、ゲーム世界変更をグラフィック処理ユニット(GPU)レンダリングモジュール755に送信し(750)、これは、レンダリングされた場面をビデオエンコーダモジュール765に送信し(760)、これは、エンコードされたビデオをビデオストリーミングモジュール775に送信し(770)、これは、ビデオストリームをシンクライアント710のビデオデコーダ720に送信する(780)。
【0074】
システム600および700は、例示的であり、限定であることを意図していない。モジュールの任意の好適な組み合わせが、限定することなく、本明細書に開示される機能のうちの1つまたはそれを上回るものを実施するために提供されてもよい。
【0075】
本明細書に開示される機能のうちの1つまたはそれを上回るものは、事前に訓練される、またはリアルタイムで訓練される、ローカルまたは遠隔予測モデルに動作的に結合されてもよい。
【0076】
予測モデル
【0077】
本開示全体を通して、決定、予測、尤度、および同等物が、1つまたはそれを上回る予測モデルを用いて決定される。例えば、図8は、予測モデルを描写する。予測プロセス800は、いくつかの実施形態において、予測モデル850を含む。予測モデル850は、本開示に説明される1つ、それを上回る、または全てのユーザ、メディアコンテンツアイテム、デバイス、およびデータについての種々の形態のデータを入力として受信する。予測モデル850は、ハードルール、学習ルール、ハードモデル、学習モデル、使用データ、負荷データ、それの分析、メタデータ、またはプロファイル情報、および同等物のうちの少なくとも1つに基づいて、分析を実施する。予測モデル850は、本開示に説明されるデバイスのうちのいずれかの将来の状態の1つまたはそれを上回る予測を出力する。負荷増加イベントが、負荷平衡技法、例えば、最小接続、最小帯域幅、ラウンドロビン、サーバ応答時間、それの加重バージョン、リソースベースの技法、およびアドレスハッシングによって決定される。予測モデル850は、ハードルール805、ユーザ定義ルール810、コンテンツプロバイダによって定義されるルール815、ハードモデル820、または学習モデル825のうちの少なくとも1つを含む、入力に基づく。
【0078】
予測モデル850は、使用データ830を入力として受信する。予測モデル850は、いくつかの実施形態では、ユーザまたはメディアデバイスの使用パターン、要求側メディアデバイスの使用パターン、メディアコンテンツアイテムの使用パターン、通信システムまたはネットワークの使用パターン、プロファイルの使用パターン、または現在ストリーミングしているメディアデバイスの使用パターンのうちの少なくとも1つに基づく。
【0079】
予測モデル850は、負荷平衡データ835を入力として受信する。予測モデル850は、ディスプレイデバイスの負荷データ、要求側メディアデバイスの負荷データ、メディアコンテンツアイテムの負荷データ、通信システムまたはネットワークの負荷データ、プロファイルの負荷データ、または現在ストリーミングしているメディアデバイスの負荷データのうちの少なくとも1つに基づく。
【0080】
予測モデル850は、メタデータ840を入力として受信する。予測モデル850は、ストリーミングサービスのメタデータ、要求側メディアデバイスのメタデータ、メディアコンテンツアイテムのメタデータ、通信システムまたはネットワークのメタデータ、プロファイルのメタデータ、または現在ストリーミングしているメディアデバイスのメタデータのうちの少なくとも1つに基づく。メタデータは、メディアデバイスデバイスマニフェストにおいて表されるタイプの情報を含む。
【0081】
予測モデル850は、データを用いて訓練される。訓練データは、いくつかの実施形態では、限定ではないが、データ選択、データソーシング、およびデータ合成を含む、1つまたはそれを上回るデータ技法を使用して開発される。予測モデル850は、いくつかの実施形態では、限定ではないが、分類および回帰木(CART)、離散選択モデル、線形回帰モデル、ロジスティック回帰、ロジット対プロビット、多項ロジスティック回帰、多変量適応的回帰スプライン、プロビット回帰、回帰技法、生存または持続時間分析、および時系列モデルを含む、1つまたはそれを上回る分析技法を用いて訓練される。予測モデル850は、いくつかの実施形態では、限定ではないが、教師あり学習、教師なし学習、半教師あり学習、強化学習、および次元削減を含む、1つまたはそれを上回る機械学習アプローチを用いて訓練される。いくつかの実施形態における予測モデル850は、分散分析(ANOVA)、線形回帰、ロジスティック回帰、リッジ回帰、および/または時系列を含む、回帰分析を含む。いくつかの実施形態における予測モデル850は、決定木および/またはニューラルネットワークを含む、分類分析を含む。図8では、多層ニューラルネットワークの描写が、非限定的例示的予測モデル850として提供され、例示的ニューラルネットワークは、32個のニューロンおよび192個のエッジを伴う、入力層(左側)と、3つの隠れ層(中央)と、出力層(右側)とを含み、これは、限定ではなく、例証的であることを意図している。予測モデル850は、データ工学および/またはモデル化技法に基づく。データ工学技法は、探索、クリーニング、正規化、特徴工学、およびスケーリングを含む。モデル化技法は、モデル選択、訓練、評価、および調整を含む。予測モデル850は、登録、展開、監視、および/または再訓練技法を使用して運用可能にされる。
【0082】
予測モデル850は、現在の状態881、および/または将来の状態883、および/または決定、予測、または尤度885、および同等物を出力するように構成される。
【0083】
現在の状態881、および/または将来の状態883、および/または決定、予測、または尤度885、および同等物は、事前決定または決定された標準と比較されてもよい(890)。いくつかの実施形態では、標準は、満たされる(890=該当)、または拒絶される(890=該当せず)。標準が、満たされる、または拒絶される場合、予測プロセス800は、現在の状態、将来の状態、決定、予測、または尤度のうちの少なくとも1つを本明細書に開示される任意のデバイスまたはモジュールに出力する。
【0084】
通信システム
【0085】
図9は、いくつかの実施形態による、システム900のブロック図を描写する。本システムは、コンピューティングデバイス902と、サーバ904と、通信ネットワーク906とを含むように示される。コンポーネントの単一の事例が、図9に対して示され、説明され得るが、コンポーネントの付加的事例が、採用され得ることを理解されたい。例えば、サーバ904は、1つを上回るサーバを含んでもよい、またはその中に組み込まれてもよい。同様に、通信ネットワーク906は、1つを上回る通信ネットワークを含んでもよい、またはその中に組み込まれてもよい。サーバ904は、通信ネットワーク906を通してコンピューティングデバイス902に通信可能に結合されて示される。図9に示されないが、サーバ904は、例えば、通信ネットワーク906が存在しない、またはそれを迂回するシステムにおいて、コンピューティングデバイス902に直接通信可能に結合されてもよい。
【0086】
通信ネットワーク906は、限定ではないが、インターネット、LAN、Wi-Fi、無線、またはオーディオ処理用途のために好適な他のネットワークシステム等の1つまたはそれを上回るネットワークシステムを含んでもよい。図9のシステム900は、サーバ904を除外し、そうでなければサーバ904によって実装されるであろう機能性は、代わりに、通信ネットワーク906の1つまたはそれを上回るコンポーネント等の図9によって描写されるシステムの他のコンポーネントによって実装される。なおも他の実施形態では、サーバ904は、通信ネットワーク906の1つまたはそれを上回るコンポーネントと協働し、分散または協調様式において本明細書に説明されるある機能性を実装する。同様に、図9によって描写されるシステムは、コンピューティングデバイス902を除外し、そうでなければコンピューティングデバイス902によって実装されるであろう機能性は、代わりに、通信ネットワーク906またはサーバ904の1つまたはそれを上回るコンポーネントまたはそれらの組み合わせ等の図9によって描写されるシステムの他のコンポーネントによって実装される。他の実施形態では、コンピューティングデバイス902は、通信ネットワーク906またはサーバ904の1つまたはそれを上回るコンポーネントと協働し、分散または協調様式において本明細書に説明されるある機能性を実装する。
【0087】
コンピューティングデバイス902は、制御回路網908と、ディスプレイ910と、入/出力(I/O)回路網912とを含む。制御回路網908は、任意の適切な処理回路網に基づいてもよく、単一の集積回路上に配置され得る、または離散的コンポーネントであり得る、制御回路と、メモリ回路とを含む。本明細書に言及されるように、処理回路網は、少なくとも1つのマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)等に基づく回路網を意味するように理解されるべきであり、マルチコアプロセッサ(例えば、デュアルコア、クアッドコア、ヘキサコア、または任意の好適な数のコア)を含んでもよい。いくつかの実施形態では、処理回路網は、複数の別個のプロセッサまたは処理ユニット、例えば、複数の同一のタイプの処理ユニット(例えば、2つのIntel Core i7プロセッサ)または複数の異なるプロセッサ(例えば、Intel Core i5プロセッサおよびIntel Core i7プロセッサ)を横断して分散されてもよい。いくつかの制御回路は、ハードウェア、ファームウェア、またはソフトウェアにおいて実装されてもよい。制御回路網908は、ひいては、通信回路網926と、記憶装置922と、処理回路網918とを含む。制御回路網908および934のいずれかは、(例えば、それぞれ、処理回路網918および936によって可能にされるように)図1A-8のうちの1つまたはそれを上回るものの任意または全ての方法、プロセス、および出力、またはそれらのステップの任意の組み合わせを実行または実施するために利用されてもよい。
【0088】
制御回路網908および934に加えて、コンピューティングデバイス902およびサーバ904は、それぞれ、記憶装置(それぞれ、記憶装置922および記憶装置938)を含んでもよい。記憶装置922および938はそれぞれ、電子記憶デバイスであってもよい。本明細書に言及されるように、語句「電子記憶デバイス」または「記憶デバイス」は、ランダムアクセスメモリ、読取専用メモリ、ハードドライブ、光学ドライブ、デジタルビデオディスク(DVD)レコーダ、コンパクトディスク(CD)レコーダ、BLU-RAY(登録商標)ディスク(BD)レコーダ、BLU-RAY(登録商標) 8Dディスクレコーダ、デジタルビデオレコーダ(DVR、時として、パーソナルビデオレコーダ、すなわち、PVRと呼ばれる)、ソリッドステートデバイス、量子記憶デバイス、ゲーミングコンソール、ゲーミングメディア、または任意の他の好適な固定またはリムーバブル記憶デバイス、および/またはそれらの任意の組み合わせ等、電子データ、コンピュータソフトウェア、またはファームウェアを記憶するための任意のデバイスを意味するように理解されるべきである。記憶装置922および938はそれぞれ、種々のタイプのコンテンツ、メタデータ、および/または他のタイプのデータを記憶するために使用されてもよい。不揮発性メモリもまた、(例えば、ブートアップルーチンおよび他の命令を呼び出すために)使用されてもよい。クラウドベースの記憶装置が、記憶装置922および938を補完するために、または記憶装置922および938の代わりに使用されてもよい。いくつかの実施形態では、通信の連鎖に対応するユーザプロファイルおよびメッセージが、記憶装置922および938のうちの1つまたはそれを上回るものの中に記憶されてもよい。記憶装置922および938はそれぞれ、例えば、それぞれ、処理回路網918および936がそれぞれ、それぞれ、制御回路網908および934を通してプロンプトされるとき、処理回路網918または936のいずれかが、図1A-8のうちの1つまたはそれを上回るものの方法、プロセス、および出力のうちのいずれか、またはそれらのステップの任意の組み合わせを実行し得るように、コマンドを記憶するために利用されてもよい。
【0089】
いくつかの実施形態では、制御回路網908および/または934は、メモリ(例えば、記憶装置922および/または記憶装置938)内に記憶されたアプリケーションのための命令を実行する。具体的には、制御回路網908および/または934は、アプリケーションによって、本明細書に議論される機能を実施するように命令されてもよい。いくつかの実施形態では、制御回路網908および/または934によって実施される任意のアクションは、アプリケーションから受信される命令に基づいてもよい。例えば、アプリケーションは、記憶装置922および/または938内に記憶され、制御回路網908および/または934によって実行され得る、ソフトウェアまたは実行可能命令のセットおよび/または1つまたはそれを上回る実行可能命令として実装されてもよい。アプリケーションは、クライアントアプリケーションのみがコンピューティングデバイス902上に常駐し、サーバアプリケーションがサーバ904上に常駐する、クライアント/サーバアプリケーションであってもよい。
【0090】
アプリケーションは、任意の好適なアーキテクチャを使用して実装されてもよい。例えば、これは、全体的にコンピューティングデバイス902上で実装される、スタンドアロンアプリケーションであってもよい。そのようなアプローチでは、アプリケーションのための命令は、ローカルで(例えば、記憶装置922内に)記憶され、アプリケーションによる使用のためのデータは、周期的に(例えば、帯域外フィードから、インターネットリソースから、または別の好適なアプローチを使用して)ダウンロードされる。制御回路網908は、記憶装置922からアプリケーションのための命令を読み出し、本明細書に説明される機能性を実施するために命令を処理してもよい。処理された命令に基づいて、制御回路網908は、I/O回路網912から、または通信ネットワーク906から受信された入力に応答して、実施するべきアクションのタイプを決定してもよい。
【0091】
クライアント/サーバベースの実施形態では、制御回路網908は、アプリケーションサーバ(例えば、サーバ904)または他のネットワークまたはサーバと通信するために好適な通信回路網を含んでもよい。本明細書に説明される機能性を実行するための命令は、アプリケーションサーバ上に記憶されてもよい。通信回路網は、ケーブルモデム、イーサネット(登録商標)カード、または他の機器との通信のための無線モデム、または任意の他の好適な通信回路網を含んでもよい。そのような通信は、インターネットまたは任意の他の好適な通信ネットワークまたは経路(例えば、通信ネットワーク906)を伴ってもよい。クライアント/サーバベースのアプリケーションの別の実施例では、制御回路網908は、遠隔サーバ(例えば、サーバ904)によって提供されるウェブページを解釈するウェブブラウザを起動する。例えば、遠隔サーバは、記憶デバイス内にアプリケーションのための命令を記憶してもよい。
【0092】
遠隔サーバは、回路網(例えば、制御回路網934)を使用して記憶された命令を処理し、および/または表示を発生させてもよい。コンピューティングデバイス902は、遠隔サーバによって発生された表示を受信してもよく、ディスプレイ910を介して表示のコンテンツをローカルで表示してもよい。例えば、ディスプレイ910は、文字の列を提示するために利用されてもよい。このように、命令の処理は、遠隔で(例えば、サーバ904によって)実施される一方、本明細書の別の場所に説明される表示ウィンドウ等の結果として生じる表示は、コンピューティングデバイス904上でローカルで提供される。コンピューティングデバイス902は、入/出力回路網912を介してユーザから入力を受信し、対応する表示を処理および発生させるために、それらの入力を遠隔サーバに伝送してもよい。
【0093】
代替として、コンピューティングデバイス902は、入/出力回路網912を介してユーザから入力を受信し、それぞれ、制御回路網908およびディスプレイ910によって、受信された入力をローカルで処理および表示してもよい。例えば、入/出力回路網912は、ユーザ入力(例えば、コンピューティングデバイス上の検索バーまたは図9のディスプレイにおいて表示されるような入力)を受信するために使用される、キーボードおよび/またはスピーカ/マイクロホンのセットおよび/または1つまたはそれを上回るスピーカ/マイクロホンに対応してもよい。入/出力回路網912はまた、ディスプレイ910が、入/出力回路網912を介して受信された入力に応答して更新する(例えば、非一過性コンピュータ可読媒体を介してメモリ内に記憶された命令に基づいて対応する出力を発生させることによって受信された入力に基づいて、ディスプレイ910において示されるものを同時に更新する)ように、ディスプレイ910と制御回路網908との間の通信リンクに対応してもよい。
【0094】
サーバ904およびコンピューティングデバイス902は、通信ネットワーク906を介してメディアコンテンツ等のコンテンツおよびデータを伝送および受信してもよい。例えば、サーバ904は、メディアコンテンツプロバイダであってもよく、コンピューティングデバイス902は、サーバ904からライブニュースブロードキャスト等のメディアコンテンツをダウンロードまたはストリーミングするように構成される、スマートテレビであってもよい。制御回路網934、908は、それぞれ、通信回路網932、926を使用して、通信ネットワーク906を通してコマンド、要求、および他の好適なデータを送信および受信してもよい。代替として、制御回路網934、908は、それぞれ、通信回路網932、926を使用して、相互と直接通信し、通信ネットワーク906を回避してもよい。
【0095】
コンピューティングデバイス902が、本明細書に示され、説明される実施形態および方法に限定されないことを理解されたい。非限定的実施例では、コンピューティングデバイス902は、テレビ、スマートテレビ、セットトップボックス、衛星テレビを取り扱うための統合された受信機デコーダ(IRD)、デジタル記憶デバイス、デジタルメディア受信機(DMR)、デジタルメディアアダプタ(DMA)、ストリーミングメディアデバイス、DVDプレーヤ、DVDレコーダ、コネクテッドDVD、ローカルメディアサーバ、BLU-RAYプレーヤ、BLU-RAYレコーダ、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、WebTVボックス、パーソナルコンピュータテレビ(PC/TV)、PCメディアサーバ、PCメディアセンター、ハンドヘルドコンピュータ、据置型電話、携帯情報端末(PDA)、モバイル電話、ポータブルビデオプレーヤ、ポータブル音楽プレーヤ、ポータブルゲーム機、スマートフォン、またはメディアコンテンツを好適に表示および操作することが可能な任意の他のデバイス、コンピューティング機器、または無線デバイス、および/またはそれらの組み合わせであってもよい。
【0096】
コンピューティングデバイス902は、入/出力回路網912においてユーザ入力914を受信する。例えば、コンピューティングデバイス902は、ユーザスワイプまたはユーザタッチ等のユーザ入力を受信してもよい。コンピューティングデバイス902が、本明細書に示され、説明される実施形態および方法に限定されないことを理解されたい。
【0097】
ユーザ入力914は、遠隔制御デバイス、トラックパッド、または任意の他の好適なユーザ移動感知、オーディオ感知、または捕捉デバイス等のデバイス902とは別個である、またはディスプレイ910のタッチスクリーン等のデバイス902の一部としてのユーザ選択捕捉インターフェースから受信されてもよい。コンピューティングデバイス902へのユーザ入力914の伝送は、ローカルデバイスにおける対応する入力ポートに取り付けられたオーディオケーブル、USBケーブル、イーサネット(登録商標)ケーブル、および同等物等の有線接続を使用して遂行されてもよい、またはBluetooth(登録商標)、Wi-Fi、WiMAX、GSM(登録商標)、UTMS、CDMA、TDMA、8G、4G、4G LTE、5G、または任意の他の好適な無線伝送プロトコル等の無線接続を使用して遂行されてもよい。入/出力回路網912は、12.5mm(0.4921インチ)オーディオジャック、RCAオーディオジャック、USBポート、イーサネット(登録商標)ポート、または有線接続を経由してオーディオを受信するための任意の他の好適な接続等の物理的入力ポートを含んでもよい、またはBluetooth(登録商標)、Wi-Fi、WiMAX、GSM(登録商標)、UTMS、CDMA、TDMA、3G、4G、4G LTE、5G、または他の無線伝送プロトコルを介してデータを受信するように構成される、無線受信機を含んでもよい。
【0098】
処理回路網918は、通信経路916を使用して、入/出力回路網912からユーザ入力914を受信してもよい。処理回路網918は、オーディオデータ、視覚データ、ジェスチャ、または移動の形態であり得る受信されたユーザ入力914をデジタル信号に変換または転換してもよい。いくつかの実施形態では、入/出力回路網912は、デジタル信号への転換を実施する。いくつかの実施形態では、処理回路網918(または場合によって処理回路網936)は、開示されるプロセスおよび方法を実行する。
【0099】
処理回路網918は、通信経路920によって、要求を記憶装置922に提供してもよい。記憶装置922は、通信経路946によって、要求される情報を処理回路網918に提供してもよい。記憶装置922は、情報に関する要求を通信回路網926に転送してもよく、これは、通信経路928によって情報に関する要求を転送する前に、情報に関する要求を通信ネットワーク906によって受信可能なフォーマットに転換またはエンコードしてもよい。通信ネットワーク906は、通信経路930によって、転換またはエンコードされた情報に関する要求を通信回路網932に転送してもよい。
【0100】
通信回路網932において、通信経路930を通して受信された、転換またはエンコードされた情報に関する要求は、処理回路網936のために転換またはデコードされ、これは、制御回路網934または記憶装置938またはそれらの組み合わせを通して利用可能な情報に基づいて、情報に関する要求に対する応答を提供するであろう。情報に関する要求に対する応答は、次いで、通信ネットワーク906が、通信経路942によって、通信回路網926に戻るようにエンコードまたは転換された応答を転送するように、エンコードまたは転換されたフォーマットにおいて、通信経路940によって、通信ネットワーク906に戻るように提供される。
【0101】
通信回路網926において、情報に関する要求に対するエンコードまたは転換された応答は、通信経路954によって、処理回路網918に直接戻るように提供されてもよく、または通信経路944を通して記憶装置922に提供されてもよく、これは、次いで、通信経路946によって、情報を処理回路網918に提供する。処理回路網918はまた、情報に関する要求を通信経路952を通して通信回路網926に直接提供してもよく、そこで、記憶装置922は、記憶装置922が処理回路網918からの要求に関連する情報を含有しないという通信経路924または946による情報要求(通信経路920または944を通して提供される)に応答する。
【0102】
処理回路網918は、通信経路946または954を通して受信された要求に対する応答を処理してもよく、通信経路948を通してユーザに提供されるべき通知に関する命令をディスプレイ910に提供してもよい。ディスプレイ910は、通知を提供するためのタイマを組み込んでもよく、またはユーザからの入/出力回路網912を通した入力に依拠してもよく、これは、通信経路948を通して処理回路網918を通して転送され、通知を提供する時間の長さまたはそのフォーマットを決定する。ディスプレイ910が、表示が完了されたことを決定すると、通知が、通信経路950を通して処理回路網918に提供されてもよい。
【0103】
コンピューティングデバイス902と、サーバ904と、通信ネットワーク906と、描写される全てのサブコンポーネントとの間の図9に提供される通信経路は、例示的であり、当業者によって、本明細書に開示されるプロセスにおけるステップ毎に、処理時間を低減させる、または処理能力を強化するために修正されてもよい。
【0104】
専門用語
【0105】
本明細書に使用される専門用語は、特定の実施形態を説明する目的のみのためのものであり、本開示の限定であることを意図していない。本明細書に使用されるように、単数形「a」、「an」、および「the」は、文脈が明確に別様に示さない限り、複数形も同様に含むことを意図している。本明細書に使用されるとき、用語「~を備える(comprises)」および/または「~を備える(comprising)」が、記載される特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を規定するが、1つまたはそれを上回る他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を除外しないことをさらに理解されたい。本明細書に使用されるように、用語「および/または」は、関連付けられる列挙されるアイテムのうちの1つまたはそれを上回るもののありとあらゆる組み合わせを含む。
【0106】
少なくとも1つの例示的実施形態が、例示的プロセスを実施するために複数のユニットまたはモジュールを使用するものとして説明されるが、例示的プロセスがまた、1つまたは複数のユニットまたはモジュールによって実施され得ることを理解されたい。加えて、コントローラ/制御ユニットという用語が、メモリと、プロセッサとを含む、ハードウェアデバイスを指し得ることを理解されたい。メモリは、ユニットまたはモジュールを記憶するように構成されてもよく、プロセッサは、該ユニットまたはモジュールを実行し、本明細書に説明される1つまたはそれを上回るプロセスを実施するように具体的に構成されてもよい。
【0107】
具体的に記載されない、または文脈から明白ではない限り、本明細書に使用されるように、用語「約」は、当技術分野における通常の許容の範囲内、例えば、平均の2標準偏差以内として理解される。「約」は、記載される値の10%、9%、8%、7%、6%、5%、4%、3%、2%、1%、0.5%、0.1%、0.05%、または0.01%以内として理解されることができる。別様に文脈から明確ではない限り、本明細書に提供される全ての数値は、用語「約」によって修飾される。
【0108】
本明細書の用語「第1」、「第2」、「第3」等の使用は、構造または動作の順序を説明することなく、構造または動作を識別するために提供され、構造または動作が例示的実施形態において使用される範囲について、具体的順序が文脈において明確に規定されない限り、記載される順序と異なる順序において、構造は、提供されてもよい、または動作は、実行されてもよい。
【0109】
本明細書に議論される実施形態のうちのいずれかを実施するための方法および/または任意の命令は、コンピュータ可読媒体上にエンコードされてもよい。コンピュータ可読媒体は、データを記憶することが可能な任意の媒体を含む。コンピュータ可読媒体は、限定ではないが、伝搬する電気または電磁信号を含む、一過性であってもよい、または、限定ではないが、ハードディスク、フロッピー(登録商標)ディスク、USBドライブ、DVD、CD、メディアカード、レジスタメモリ、プロセッサキャッシュ、ランダムアクセスメモリ(RAM)等の揮発性および不揮発性コンピュータメモリまたは記憶デバイスを含む、非一過性(例えば、記憶装置から制御または処理回路網を介してアプリケーションによってアクセス可能な非一過性コンピュータ可読媒体)であってもよい。
【0110】
説明されるインターフェース、プロセス、および分析は、いくつかの実施形態では、アプリケーションによって実施されてもよい。アプリケーションは、説明されるシステムのうちのいずれかの各デバイス上に直接ロードされてもよい、または本システムにおける各デバイスにアクセス可能な遠隔サーバまたは任意のメモリおよび処理回路網内に記憶されてもよい。インターフェースの発生およびその背後の分析は、受信デバイス、送信デバイス、またはその間のあるデバイスまたはプロセッサにおいて実施されてもよい。
【0111】
上記に議論されるシステムおよびプロセスは、限定ではなく、例証的であることを意図している。当業者は、本明細書に議論されるプロセスのアクションが、省略され、修正され、組み合わせられ、および/または再配列され得、任意の付加的アクションが、本発明の範囲から逸脱することなく、実施され得ることを理解するであろう。より一般的には、上記の開示は、限定ではなく、例示的であることを意味する。続く請求項のみが、本開示が含む内容に関する境界を設定することを意味する。さらに、任意の一実施形態に説明される特徴および限定が、本明細書の任意の他の実施形態に適用され得、一実施形態に関連するフローチャートまたは実施例が、好適な様式において任意の他の実施形態と組み合わせられる、異なる順序において行われる、または並行して行われ得ることに留意されたい。加えて、本明細書に説明されるシステムおよび方法は、リアルタイムで実施されてもよい。また、上記に説明されるシステムおよび/または方法が、他のシステムおよび/または方法に適用される、またはそれに従って使用され得ることに留意されたい。
【0112】
本明細書は、限定ではないが、以下の項目を含む、実施形態を開示する。
【0113】
項目1.ビデオ圧縮のための方法であって、方法は、
エンコーダと動作的に接続されるレートコントローラを用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
ピクチャのエンコードされたピクチャサイズを決定することと、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定することと、
可変ビットレート入力の上限の可変ビットレートを決定することと、
要求されるビットレートを上限の可変ビットレートと比較することと、
比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うことと
を含む、方法。
【0114】
項目2.
【0115】
ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定することを含む、項目1に記載の方法。
【0116】
項目3.間隔は、整数であり、整数は、1である、項目2に記載の方法。
【0117】
項目4.最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定することを含む、項目2または3に記載の方法。
【0118】
項目5.開始量子化パラメータを終了量子化パラメータと比較することを含む、項目4に記載の方法。
【0119】
項目6.開始量子化パラメータが終了量子化パラメータを上回ることを決定することに応答して、開始量子化パラメータ対終了量子化パラメータの比に等しい新しい量子化パラメータを設定することを含む、項目5に記載の方法。
【0120】
項目7.比は、1:2である、項目6に記載の方法。
【0121】
項目8.新しい量子化パラメータを伴うイントラピクチャ発生要求をエンコーダに送信し、エンコーダを用いて、新しい量子化パラメータを伴うイントラピクチャを発生させることを含む、項目6または7に記載の方法。
【0122】
項目9.開始量子化パラメータが終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、ピクチャの分解能を変更すること、ピクチャのフレームレートを変更すること、またはピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、ピクチャを修正し、修正されたピクチャをエンコーダに伝送することを含む、項目5-8のいずれか1項に記載の方法。
【0123】
項目10.
レートコントローラから、マルチプレクサを用いてエンコードされたピクチャを受信することと、
マルチプレクサを用いて、エンコードされたピクチャと可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
エンコードされたビデオストリームをクライアントに伝送することと、
を含む、項目1-9のいずれか1項に記載の方法。
【0124】
項目11.クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備える、シンクライアントであり、シンクライアントは、ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、項目10に記載の方法。
【0125】
項目12.
クラウドゲーミングプラットフォームを用いて、ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いてユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いてゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
エンコーダを用いてレンダリングされた場面を受信することと、
を含む、項目11に記載の方法。
【0126】
項目13.エンコーダを用いたレンダリングされた場面の受信後、次のピクチャに関して、
エンコーダに動作的に接続されるレートコントローラを用いて、可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
次のピクチャのエンコードされたピクチャサイズを決定することと、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定することと、
可変ビットレート入力の上限の可変ビットレートを決定することと、
要求されるビットレートを上限の可変ビットレートと比較することと、
比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返すことを含む、項目12に記載の方法。
【0127】
項目14.ビデオ圧縮のためのシステムであって、システムは、
エンコーダと動作的に接続される、レートコントローラであって、レートコントローラは、
可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
ピクチャのエンコードされたピクチャサイズを決定することと、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定することと、
可変ビットレート入力の上限の可変ビットレートを決定することと、
要求されるビットレートを上限の可変ビットレートと比較することと、
比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うことと
ように構成されるレートコントローラ
を備える、システム。
【0128】
項目15.レートコントローラは、
ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定するように構成される、項目14に記載のシステム。
【0129】
項目16.間隔は、整数であり、整数は、1である、項目15に記載のシステム。
【0130】
項目17.レートコントローラは、
最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定するように構成される、項目15または16に記載のシステム。
【0131】
項目18.レートコントローラは、
開始量子化パラメータを終了量子化パラメータと比較するように構成される、項目17に記載のシステム。
【0132】
項目19.レートコントローラは、
開始量子化パラメータが終了量子化パラメータを上回ることを決定することに応答して、開始量子化パラメータ対終了量子化パラメータの比に等しい新しい量子化パラメータを設定するように構成される、項目18に記載のシステム。
【0133】
項目20.比は、1:2である、項目19に記載のシステム。
【0134】
項目21.レートコントローラは、
新しい量子化パラメータを伴うイントラピクチャ発生要求をエンコーダに送信し、エンコーダを用いて、新しい量子化パラメータを伴うイントラピクチャを発生させるように構成される、項目19または20に記載のシステム。
【0135】
項目22.レートコントローラは、
開始量子化パラメータが終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、ピクチャの分解能を変更すること、ピクチャのフレームレートを変更すること、またはピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、ピクチャを修正し、修正されたピクチャをエンコーダに伝送するように構成される、項目18-21のいずれか1項に記載のシステム。
【0136】
項目23.
マルチプレクサであって、
レートコントローラから、エンコードされたピクチャを受信することと、
エンコードされたピクチャと可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
エンコードされたビデオストリームをクライアントに伝送することと
を行うように構成されるマルチプレクサを備える、項目14-22のいずれか1項に記載のシステム。
【0137】
項目24.クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備える、シンクライアントであり、シンクライアントは、ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、項目23に記載のシステム。
【0138】
項目25.クラウドゲーミングプラットフォームは、
ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いてユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いてゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
エンコーダを用いてレンダリングされた場面を受信することと
を行うように構成される、項目24に記載のシステム。
【0139】
項目26.エンコーダを用いたレンダリングされた場面の受信後、次のピクチャに関して、
エンコーダに動作的に接続されるレートコントローラを用いて、可変ビットレート入力の次のピクチャの量子化パラメータを推定すること、
次のピクチャのエンコードされたピクチャサイズを決定すること、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定すること、
可変ビットレート入力の上限の可変ビットレートを決定すること、
要求されるビットレートを上限の可変ビットレートと比較すること、または、
比較に基づいて、次のピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うこと、
を繰り返すことを含む、項目25に記載のシステム。
【0140】
項目27.非一過性コンピュータ可読媒体であって、非一過性コンピュータ可読媒体は、エンコーダと動作的に接続されるレートコントローラを用いたビデオ圧縮のために、非一過性コンピュータ可読媒体上にエンコードされる非一過性コンピュータ可読命令を有し、非一過性コンピュータ可読命令は、実行されると、
エンコーダと動作的に接続されるレートコントローラを用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定することと、
ピクチャのエンコードされたピクチャサイズを決定することと、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定することと、
可変ビットレート入力の上限の可変ビットレートを決定することと、
要求されるビットレートを上限の可変ビットレートと比較することと、
比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うことと
を行う、非一過性コンピュータ可読媒体。
【0141】
項目28.実行されると、
ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定する、命令を備える、項目27に記載の非一過性コンピュータ可読媒体。
【0142】
項目29.間隔は、整数であり、整数は、1である、項目28に記載の非一過性コンピュータ可読媒体。
【0143】
項目30.実行されると、最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定する、命令を備える、項目28または29に記載の非一過性コンピュータ可読媒体。
【0144】
項目31.実行されると、開始量子化パラメータを終了量子化パラメータと比較する、命令を備える、項目30に記載の非一過性コンピュータ可読媒体。
【0145】
項目32.実行されると、開始量子化パラメータが終了量子化パラメータを上回ることを決定することに応答して、開始量子化パラメータ対終了量子化パラメータの比に等しい新しい量子化パラメータを設定する、命令を備える、項目31に記載の非一過性コンピュータ可読媒体。
【0146】
項目33.比は、1:2である、項目32に記載の非一過性コンピュータ可読媒体。
【0147】
項目34.実行されると、新しい量子化パラメータを伴うイントラピクチャ発生要求をエンコーダに送信し、エンコーダを用いて、新しい量子化パラメータを伴うイントラピクチャを発生させる、命令を備える、項目32または33に記載の非一過性コンピュータ可読媒体。
【0148】
項目35.実行されると、開始量子化パラメータが終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、ピクチャの分解能を変更すること、ピクチャのフレームレートを変更すること、またはピクチャのエンコードされたピクチャサイズを低減させることのうちの少なくとも1つによって、ピクチャを修正し、修正されたピクチャをエンコーダに伝送する、命令を備える、項目31-34のいずれか1項に記載の非一過性コンピュータ可読媒体。
【0149】
項目36.実行されると、
レートコントローラから、マルチプレクサを用いてエンコードされたピクチャを受信することと、
マルチプレクサを用いて、エンコードされたピクチャと可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせることと、
エンコードされたビデオストリームをクライアントに伝送することと
を行う命令を備える、項目27-35のいずれか1項に記載の非一過性コンピュータ可読媒体。
【0150】
項目37.クライアントは、ビデオデコーダと、ユーザ相互作用モジュールとを備える、シンクライアントであり、シンクライアントは、ユーザ相互作用モジュールからクラウドゲーミングプラットフォームにユーザコマンドを伝送するように構成される、項目36に記載の非一過性コンピュータ可読媒体。
【0151】
項目38.実行されると、
クラウドゲーミングプラットフォームを用いて、ユーザコマンドを受信することと、
シンクライアント相互作用モジュールを用いてユーザコマンドを処理し、ゲームアクションを発生させることと、
ゲーム論理モジュールを用いて、ゲームアクションを受信し、ゲーム世界変更を発生させることと、
グラフィック処理ユニットレンダリングモジュールを用いてゲーム世界変更を処理し、レンダリングされた場面を発生させることと、
エンコーダを用いてレンダリングされた場面を受信することと
を行う命令を備える、項目36または37に記載の非一過性コンピュータ可読媒体。
【0152】
項目39.実行されると、エンコーダを用いたレンダリングされた場面の受信後、次のピクチャに関して、
エンコーダに動作的に接続されるレートコントローラを用いて、可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
次のピクチャのエンコードされたピクチャサイズを決定することと、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定することと、
可変ビットレート入力の上限の可変ビットレートを決定することと、
要求されるビットレートを上限の可変ビットレートと比較することと、
比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返す命令を備える、項目38に記載の非一過性コンピュータ可読媒体。
【0153】
項目40.ビデオ圧縮のためのデバイスであって、
エンコードのための手段と動作的に接続されるレート制御のための手段を用いて、可変ビットレート入力のピクチャの少なくとも一部の量子化パラメータを推定するための手段と、
ピクチャのエンコードされたピクチャサイズを決定するための手段と、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定するための手段と、
可変ビットレート入力の上限の可変ビットレートを決定するための手段と、
要求されるビットレートを上限の可変ビットレートと比較するための手段と、
比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うための手段と
を備える、デバイス。
【0154】
項目41.
【0155】
ピクチャの少なくとも一部の量子化パラメータに間隔を加えたものに等しい開始量子化パラメータを設定するための手段を備える、項目40に記載のデバイス。
【0156】
項目42.間隔は、整数であり、整数は、1である、項目41に記載のデバイス。
【0157】
項目43.最大のサポートされるエンコーダ量子化パラメータ値に等しい終了量子化パラメータを設定するための手段を備える、項目41または42に記載のデバイス。
【0158】
項目44.開始量子化パラメータを終了量子化パラメータと比較するための手段を備える、項目43に記載のデバイス。
【0159】
項目45.開始量子化パラメータが終了量子化パラメータを上回ることを決定することに応答して、開始量子化パラメータ対終了量子化パラメータの比に等しい新しい量子化パラメータを設定するための手段を備える、項目44に記載のデバイス。
【0160】
項目46.比は、1:2である、項目45に記載のデバイス。
【0161】
項目47.新しい量子化パラメータを伴うイントラピクチャ発生要求をエンコーダに送信し、エンコーダを用いて、新しい量子化パラメータを伴うイントラピクチャを発生させるための手段を備える、項目45または46に記載のデバイス。
【0162】
項目48.開始量子化パラメータが終了量子化パラメータを下回らない、またはそれに等しいことを決定することに応答して、ピクチャの分解能を変更するための手段、ピクチャのフレームレートを変更するための手段、またはピクチャのエンコードされたピクチャサイズを低減させるための手段のうちの少なくとも1つによって、ピクチャを修正し、修正されたピクチャをエンコーダに伝送するための手段を備える、項目44-47のいずれか1項に記載のデバイス。
【0163】
項目49.
レートコントローラから、マルチプレクサを用いてエンコードされたピクチャを受信するための手段と、
マルチプレクサを用いて、エンコードされたピクチャと可変ビットレート入力からのマルチメディアストリームデータとをエンコードされたビデオストリームに組み合わせるための手段と、
エンコードされたビデオストリームをクライアントに伝送するための手段と、
を備える、項目40-48のいずれか1項に記載のデバイス。
【0164】
項目50.クライアントは、ビデオデコードのための手段と、ユーザ相互作用のための手段とを備える、シンクライアントであり、シンクライアントは、ユーザ相互作用モジュールから本デバイスにユーザコマンドを伝送するように構成される、項目40-49のいずれか1項に記載のデバイス。
【0165】
項目51.本デバイスは、
クラウドゲーミングプラットフォームを用いて、ユーザコマンドを受信するための手段と、
シンクライアント相互作用モジュールを用いてユーザコマンドを処理し、ゲームアクションを発生させるための手段と、
ゲーム論理モジュールを用いて、ゲームアクションを受信し、ゲーム世界変更を発生させるための手段と、
グラフィック処理ユニットレンダリングモジュールを用いてゲーム世界変更を処理し、レンダリングされた場面を発生させるための手段と、
エンコードのための手段を用いてレンダリングされた場面を受信することと
を備える、項目50に記載のデバイス。
【0166】
項目52.エンコードのための手段を用いたレンダリングされた場面の受信後、本デバイスを用いて、次のピクチャに関して、
エンコードのための手段のレート制御のための手段を用いて、可変ビットレート入力の次のピクチャの量子化パラメータを推定することと、
次のピクチャのエンコードされたピクチャサイズを決定することと、
エンコードされたピクチャサイズおよびエンコーダのフレームレートに基づいて、要求されるレートを決定することと、
可変ビットレート入力の上限の可変ビットレートを決定することと、
要求されるビットレートを上限の可変ビットレートと比較することと、
比較に基づいて、ピクチャを伝送するか、または、フレームをパーティション化すること、フレームを再構成すること、または量子化パラメータを調節することのうちの少なくとも1つを行うことと
を繰り返すことを含む、項目51に記載のデバイス。
【0167】
本開示のいくつかの部分は、「従来」または「従来の」実施例に言及し得るが、いかなるそのような言及も、単に、本開示に文脈を提供するものであり、技術状態を成すものに関するいかなる容認も形成しない。
【0168】
故に、本説明は、実施例としてのみ解釈されるものであり、別様に本明細書の例示的実施形態の範囲を限定するものではない。したがって、添付される請求項の目的は、本明細書の例示的実施形態の真の精神および範囲内に入るような全てのそのような変形例および修正を網羅することである。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
【外国語明細書】