(57)【要約】フィードバック処理モジュール［２００］は、エンコーダ［１２５］から受信したフィードバック［２０５］を格納するように構成されたメモリ［２２０］を含む。フィードバックには、グラフィックエンジン［１０５］によって生成されたエンコードされたグラフィックコンテンツと関連したパラメータが含まれる。フィードバック処理モジュールはまた、フィードバックに基づいてグラフィックエンジンの構成情報を生成するように構成されたプロセッサ［２１５］を含む。グラフィックエンジンは、構成情報に基づいてワークロードを実行するように構成されている。場合によっては、フィードバック処理モジュールはまた、エンコーダによってエンコードされたグラフィックコンテンツをデコードするために用いるデコーダからフィードバックを受信し、デコーダから受信したフィードバックに基づいて構成情報を生成するように構成されている。【選択図】図１
2021525986.tif 000002
【特許請求の範囲】
【請求項１】
エンコーダ［１２５］から受信したフィードバック［２０５］を格納するように構成されているメモリ［２２０］であって、前記フィードバックはグラフィックエンジン［１０５］によって生成されたグラフィックコンテンツのエンコードと関連したパラメータを含む、前記メモリと、
前記フィードバックに基づいて前記グラフィックエンジンの構成情報を生成するように構成されているプロセッサ［２１５］と
を含み、
前記グラフィックエンジンは前記構成情報に基づいてワークロードを実行するように構成されている、
装置。
【請求項２】
前記フィードバックが、前記グラフィックコンテンツの領域に対する動作情報、量子化強度、空間分散、予測モード、ビットレートコスト及び客観的品質メトリックのうち少なくとも１つを含む、請求項１に記載の装置。
【請求項３】
前記フィードバックが、前記グラフィックコンテンツのシーンの変化の検出を示す情報を含む、請求項１に記載の装置。
【請求項４】
前記フィードバックが、エンコードの前の前記グラフィックコンテンツの前処理または前記エンコードされたグラフィックコンテンツをデコードした後の受信機での後処理と関連した情報のうち少なくとも１つを含む、請求項１に記載の装置。
【請求項５】
前処理または後処理と関連した前記情報が、高速フーリエ変換（ＦＦＴ）パラメータ、離散型コサイン変換（ＤＣＴ）パラメータ、ヒストグラム、エッジ検出結果及びテキスト検出結果のうち少なくとも１つを含む、請求項４に記載の装置。
【請求項６】
前記メモリが、前記エンコーダによってエンコードされた前記グラフィックコンテンツをデコードするために使用されるデコーダ［１３０］から受信したフィードバックを格納するように構成されており、前記プロセッサが、前記デコーダから受信した前記フィードバック［２１０］に基づいて前記構成情報を生成するように構成されている、請求項１に記載の装置。
【請求項７】
前記プロセッサが、前記グラフィックコンテンツを生成するアプリケーションによって提供される命令、経験的に生成されたルックアップテーブル、閉ループ制御プロセス、機械学習、ニューラルネットワーク及び回帰モデリングの少なくとも１つに基づいて前記構成情報を生成するように構成されている、請求項１に記載の装置。
【請求項８】
前記グラフィックエンジンが、前記構成情報に基づいて前記グラフィックエンジンのレンダリング設定を変更することによって構成されている、請求項１に記載の装置。
【請求項９】
前記レンダリング設定を変更することが、
前記グラフィックコンテンツの複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記エンコーダで前記複数の領域をエンコードすることのビットレートコストに基づいて無効にすることと、
前記グラフィックコンテンツの前記複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記少なくとも１つのグラフィック効果のエンコーダ量子化をサポートするには不十分な帯域幅が存在していることを示している前記フィードバックに応答して、無効にすることと、
前記エンコーダは前記グラフィックコンテンツを表すエンコードされたビットストリームの帯域幅を減らすために所定のフレーム境界上のそのフレームレートを変化させることが可能なことを示している前記フィードバックに応答して、レンダリングフレームレートを変更することと、
前記フィードバックにおいて受信したエンコーダ統計値に基づいて、前記グラフィックコンテンツをレンダリングするために使用される画像解像度を減らすことと
のうち少なくとも１つを実行するように前記グラフィックエンジンを構成するために前記レンダリング設定を変更することを含む、請求項８に記載の装置。
【請求項１０】
フィードバック処理モジュール［２００］で、エンコーダ［１２５］からフィードバック［２０５］を受信することであって、前記フィードバックはグラフィックエンジン［１０５］によって生成されたグラフィックコンテンツのエンコードと関連したパラメータを含む、前記受信することと、
前記フィードバックを前記フィードバック処理モジュールに格納することと、
前記フィードバック処理モジュールで、前記フィードバックに基づいて前記グラフィックエンジンのための構成情報を生成することと、
前記構成情報を使用して前記グラフィックエンジンを構成することと、
前記グラフィックエンジンで少なくとも１つのワークロードを実行することと
を含む方法。
【請求項１１】
前記フィードバックを受信することが、前記グラフィックコンテンツの領域に対する動作情報、量子化強度、空間分散、予測モード、ビットレートコスト及び客観的品質メトリックのうち少なくとも１つを受信することを含む、請求項１０に記載の方法。
【請求項１２】
前記フィードバックを受信することが前記グラフィックコンテンツのシーンの変化の検出を示す情報を受信すること含む、請求項１０に記載の方法。
【請求項１３】
前記フィードバックを受信することが、エンコードの前の前記グラフィックコンテンツの前処理または前記エンコードされたグラフィックコンテンツをデコードした後の後処理と関連した情報の少なくとも１つを受信することを含む、請求項１２に記載の方法。
【請求項１４】
前処理または後処理と関連した前記情報を受信することが、高速フーリエ変換（ＦＦＴ）パラメータ、離散型コサイン変換（ＤＣＴ）パラメータ、ヒストグラム、エッジ検出結果及びテキスト検出結果のうち少なくとも１つを受信することを含む、請求項１３に記載の方法。
【請求項１５】
前記フィードバック処理モジュールで、前記エンコーダによってエンコードされる前記グラフィックコンテンツをデコードするために使用されるデコーダ［１３０］から受信したフィードバック［２１０］を格納することと、
前記フィードバック処理モジュールで、前記デコーダから受信した前記フィードバックに基づいて前記構成情報を生成することと
をさらに含む、請求項１０に記載の方法。
【請求項１６】
前記構成情報を生成することが、前記構成情報は前記グラフィックコンテンツを生成するアプリケーションによって提供される命令、経験的に生成されたルックアップテーブル、閉ループ制御方法、機械学習、ニューラルネットワーク及び回帰モデリングのうち少なくとも１つに基づいてることを含む、請求項１０に記載の方法。
【請求項１７】
前記構成情報に基づいて前記グラフィックエンジンのレンダリング設定を変更することをさらに含む、請求項１０に記載の方法。
【請求項１８】
前記グラフィックエンジンの前記レンダリング設定を変更することが、
前記グラフィックコンテンツの複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記エンコーダで前記複数の領域をエンコードすることのビットレートコストに基づいて無効にすることと、
前記グラフィックコンテンツの前記複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記少なくとも１つのグラフィック効果のエンコーダ量子化をサポートするには不十分な帯域幅が存在していることを示している前記フィードバックに応答して、無効にすることと、
前記エンコーダは前記グラフィックコンテンツを表すエンコードされたビットストリームの帯域幅を減らすために所定のフレーム境界上のそのフレームレートを変化させることが可能なことを示している前記フィードバックに応答して、レンダリングフレームレートを変更することと、
前記フィードバックにおいて受信したエンコーダ統計値に基づいて、前記グラフィックコンテンツをレンダリングするために使用される画像解像度を減らすことと
のうち少なくとも１つを含む、請求項１７に記載の方法。
【請求項１９】
グラフィックコンテンツを生成するように構成されているグラフィックエンジン［１０５］と、
送信のために前記グラフィックコンテンツをエンコードし、グラフィックコンテンツの前記エンコードと関連したパラメータを含むフィードバック［２０５］を生成するように構成されているエンコーダ［１２５］と、
前記エンコーダから前記フィードバックを受信し、前記フィードバックに基づいて前記グラフィックエンジンのための構成情報を生成するように構成されているフィードバック処理モジュール［２００］であって、前記グラフィックエンジンは前記フィードバック処理モジュールから受信した前記構成情報に基づいて再構成される、前記フィードバック処理モジュール［２００］と
を含む、装置。
【請求項２０】
前記フィードバック処理モジュールが、前記エンコーダによってエンコードされる前記グラフィックコンテンツをデコードするために使用されるデコーダ［１３０］からフィードバック［２１０］を受信するように構成されており、前記フィードバック処理モジュールが前記デコーダから受信した前記フィードバックに基づいて前記構成情報を生成するように構成されている、請求項１９に記載の装置。
【請求項２１】
前記グラフィックエンジンが、
前記グラフィックコンテンツの複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記エンコーダで前記複数の領域をエンコードすることのビットレートコストに基づいて無効にすることと、
前記グラフィックコンテンツの前記複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記少なくとも１つのグラフィック効果のエンコーダ量子化をサポートするには不十分な帯域幅が存在していることを示している前記フィードバックに応答して、無効にすることと、
前記エンコーダは前記グラフィックコンテンツを表すエンコードされたビットストリームの帯域幅を減らすために所定のフレーム境界上のそのフレームレートを変化させることが可能なことを示している前記フィードバックに応答して、レンダリングフレームレートを変更することと、
前記フィードバックにおいて受信したエンコーダ統計値に基づいて、前記グラフィックコンテンツをレンダリングするために使用される画像解像度を減らすことと
のうち少なくとも１つを実行するように構成されている、請求項１９に記載の装置。
【請求項２２】
前記フィードバック処理モジュールが、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、固定機能ハードウェアブロック及び汎用処理ユニットのうち少なくとも１つを使用して実装されている、請求項１９に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
クラウドゲーム及び仮想デスクトップアプリケーションなどのクラウドサービスは、ゲームロジックの実行や、高解像度の３次元（３Ｄ）グラフィックのレンダリングなど、計算量の多いタスクを実行するために使用される。計算量の多いタスクをクラウドサーバにシフトすることで、このようなアプリケーションは、完全なアプリケーションを実行するための計算能力が不足しているスマートフォン、タブレット、及びその他の薄型機器にサービスを提供できる。例えば、クラウドサーバに実装されたクラウドゲームアプリケーションは、クライアントから制御入力を受信する。クラウドゲームアプリケーションは、制御入力を使用してゲームの世界を表す３Ｄシーンを生成または変更する。グラフィックエンジンがシーンをレンダリングし、レンダリングされたシーンは、クラウドサーバからクライアントデバイスへの送信用にエンコードされ、クライアントデバイスは、エンコードされたビデオフレームを受信してデコードし、クライアントデバイスの画面に表示する。したがって、クライアントは、グラフィックエンジンから直接受信したグラフィックコンテンツを消費しない。その代わりに、クライアントは、クラウドサーバでエンコードされ（例えば、圧縮ビットストリームとして）、次にクライアントでデコードされた（例えば、圧縮ビットストリームを解凍することによって）グラフィックコンテンツを消費する。したがって、クラウドサーバで実施されたエンコーダは、クライアントデバイスのスクリーンに表示される画像の品質を少なくとも部分的に決定する。
【０００２】
本開示は、添付の図面を参照することによって、一層よく理解することができ、その多数の特徴及び利点が当業者に明らかになる。異なる図面で同じ参照記号を使用することは、類似または同一の要素ということを意味する。
【図面の簡単な説明】
【０００３】
【図１】いくつかの実施形態によるグラフィック処理システムのブロック図である。
【図２】いくつかの実施形態によるフィードバック処理モジュールのブロック図である。
【図３】いくつかの実施形態による、グラフィックエンジンによって生成され、ネットワークを介した送信のためにエンコードされた画像の実施例である。
【図４】いくつかの実施形態による、グラフィックエンジンによって生成されたグラフィックコンテンツをエンコードするエンコーダから受信したフィードバックに基づいてグラフィックエンジンを構成する方法のフローチャートである。
【発明を実施するための形態】
【０００４】
クラウドサーバにはビデオエンコーダが組み込まれており、クラウドサーバをクライアントデバイスに接続するネットワーク上での送信のためにデータを圧縮する。ビデオ圧縮は通常、限定するものではないがＨ．２６４／ＭＶＣ、Ｈ．２６５（ＨＥＶＣ）、ＶＰ８、ＶＰ９及びＡＶ１などの２次元（２Ｄ）ビデオコーデックまたはマルチビュービデオコーデック（ＭＶＣ）に基づいて実行される。場合によっては、グラフィックエンジンは追加情報を提供して、ビデオエンコーダを支援する。例えば、グラフィックエンジンは深度情報をビデオエンコーダに提供し、ビデオエンコーダはこの情報を使用して画像の関心領域（ＲＯＩ）を位置検出する。次に、エンコーダは、ＲＯＩの画像の部分をエンコードするために追加ビットを割り当てる。別の実施例として、グラフィックエンジンは、ビデオ画像の圧縮を支援するグラフィックコンテクストを提供する。場合によっては、エンコードフレームレートまたは量子化などのエンコードパラメータは、帯域幅、ラウンドトリップ時間、ジッターなどの変化を含むネットワーク状態の変化に応じて変更される。しかしながら、従来のクラウドサーバには、エンコーダからグラフィックエンジンへ戻る情報の通信のためのチャネルが含まれていないので、グラフィックエンジンはエンコーダで実行される適応を認識しないままである。
フィードバックが不足しているため、エンコードされたビットストリームの視覚的品質が低下し、グラフィックエンジンでの不要な計算が発生する。例えば、グラフィックエンジンを使用すると、完全な３Ｄ効果一式でテクスチャの高いコンテンツをレンダリングできるが、場合によっては、エンコーダの制約により、エンコーダがグラフィックエンジンによって生成された品質レベルでグラフィックコンテンツを配信するのを妨げ、そのためユーザ体験が低下する。
【０００５】
図１〜４は、エンコーダからフィードバック処理モジュールにフィードバックを提供してクラウドサーバにおけるグラフィック処理の効率を高め、その一方で帯域幅を節約し、クライアントデバイスでのユーザ体験の品質を維持する、装置、システム、及び方法を開示する。フィードバック処理モジュールは、グラフィックコンテンツをエンコーダに提供するグラフィックエンジンを構成するために用いる情報を生成する。
いくつかの実施形態では、エンコーダによって提供されるフィードバックは、グラフィックコンテンツの異なる領域のビットレートコスト、利用可能な帯域幅、グラフィックコンテンツの分散、グラフィックコンテンツの動作アクティビティ、グラフィックコンテンツのシーンの変化の検出、量子化強度、空間分散、予測モード、客観的品質メトリックなどの情報を含む。フィードバックはまた、エンコード前のグラフィックコンテンツの前処理、またはエンコードされたグラフィックコンテンツをデコードした後の受信機での後処理に関連する情報を含み得る。例えば、前処理または後処理情報は、高速フーリエ変換（ＦＦＴ）パラメータ、離散型コサイン変換（ＤＣＴ）パラメータ、ヒストグラム、エッジ検出結果、テキスト検出結果などを含む。フィードバック処理モジュールのいくつかの実施形態はまた、エンコードされたグラフィックコンテンツをデコードするために用いるデコーダから、フィードバックを受信する。フィードバック処理モジュールは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、固定機能ハードウェアブロックまたはその他の処理ユニットを用いて実装される。フィードバック処理モジュールは、アプリケーションにより提供される命令、経験的に生成されたルックアップテーブル、閉ループ制御方法、機械学習、ニューラルネットワーク、回帰モデリングなどを使用して構成情報を生成する。
【０００６】
フィードバック処理モジュールは構成情報をグラフィックエンジンに提供し、グラフィックエンジンは構成情報に基づいてレンダリング設定または他のオプションを変更する。例えば、フィードバック処理モジュールは、画像の異なる領域に対するビットレートコストを使用して、比較的高いビットレートコストを有する画像の部分の３Ｄ効果をグラフィックエンジンがオフにする必要があることを示す構成情報を生成する。別の実施例では、フィードバック処理モジュールは、高品質の３Ｄレンダリング効果のエンコーダ量子化をサポートするのに十分な帯域幅がないことを示すフィードバック情報の受信に応答して、グラフィックエンジンにいくつかの３Ｄレンダリング効果をオフにするように指示する。さらに別の実施例として、フィードバック処理モジュールは、エンコーダが所定のフレーム境界でそのフレームレートを変更してエンコードされたビットストリームの帯域幅を減らすことができることを示すフィードバック情報に応答して、レンダリングフレームレートを変更するようにグラフィックエンジンに指示する。さらに別の実施例として、フィードバック処理モジュールは、エンコーダからのフィードバックで受信されたエンコーダ統計値に基づいて、グラフィックコンテンツをより低い画像解像度でレンダリングするようにグラフィックエンジンに指示する。
【０００７】
図１は、いくつかの実施形態によるグラフィック処理システム１００のブロック図である。グラフィック処理システム１００は、グラフィックエンジン１０５を含む。グラフィックエンジン１０５のいくつかの実施形態は、命令のスレッドを独立してまたは同時に処理するための複数の処理要素（明確にするために示されていない）を含むグラフィック処理ユニット（ＧＰＵ）を使用して実装される。例えば、グラフィックエンジン１０５は、単一命令多重データ（ＳＩＭＤ）プロトコルに従って動作するＧＰＵを使用して実装される。グラフィックエンジン１０５は、アプリケーションロジック（例えば、ゲームアプリケーションを制御するために使用されるロジック）の実行及び高解像度の３次元（３Ｄ）グラフィックのレンダリングなどのタスクを実行するように構成される。グラフィックエンジン１０５は、ディスプレイ１１０上にシーン、画像またはフレームを提示するために使用されるグラフィックコンテンツを生成する。
【０００８】
グラフィックエンジン１０５はワークロードを実行してグラフィックコンテンツを生成し、これがネットワーク１１５を介してディスプレイ１１０に提供される。図示された実施形態では、グラフィックエンジン１０５は、ネットワーク１１５を介してディスプレイ１１０と通信するクラウドサーバ１２０上に実装される。したがって、グラフィックコンテンツは、クラウドサーバ１２０のいくつかの実施形態で実装されるエンコーダ１２５を使用して、ネットワーク１１５を介して送信するためにエンコードされる。ネットワーク１１５内の帯域幅を少なくとも部分的に節約するために、エンコーダ１２５は、グラフィックエンジン１０５から受信したグラフィックコンテンツを圧縮する。エンコーダ１２５のいくつかの実施形態は、２次元（２Ｄ）ビデオコーデックまたは、限定するものではないがＨ．２６４／ＭＶＣ、Ｈ．２６５（ＨＥＶＣ）、ＶＰ８、ＶＰ９、ＡＶ１などのマルチビュービデオコーデック（ＭＶＣ）を用いて、グラフィックコンテンツを圧縮する。デコーダ１３０は、ネットワーク１１５を介してエンコーダ１２５からエンコードされたグラフィックコンテンツを受信し、エンコードされたグラフィックコンテンツをデコードする。次に、デコードされたグラフィックコンテンツは、ユーザに提示するためにディスプレイ１１０に提供される。図示の実施形態は、ネットワーク１１５を介してディスプレイ１１０にコンテンツを提供するクラウドサーバ１２０を示しているが、本明細書に開示される技術のいくつかの実施形態は、グラフィックエンジン１０５がグラフィックコンテンツのエンコード及びデコードを必要とする有線または無線ネットワークによってディスプレイ１１０から分離されている他のグラフィック処理システムに、等しく適用可能である。
【０００９】
本明細書において論じるように、エンコーダ１２５からグラフィックエンジン１０５へのフィードバックが欠如していると、エンコードされたビットストリームの視覚的品質が低下し、グラフィックエンジン１０５での不要な計算が発生する結果となる。したがって、クラウドサーバ１２０は、エンコーダ１２５からフィードバック１４０を受信して、構成情報をグラフィックエンジン１０５に提供するための、フィードバックプロセッサ１３５を含む。したがって、フィードバックプロセッサ１３５は、エンコーダ１２５からグラフィックエンジン１０５に戻る情報の通信のためのチャネルを提供し、グラフィックエンジン１０５がエンコーダ１２５で実行される適応を認識するようにする。フィードバックプロセッサ１３５のいくつかの実施形態は、グラフィックエンジン１０５によって生成されたエンコードされたグラフィックコンテンツに関連するパラメータを含むフィードバック１４０を受信する。フィードバックプロセッサ１３５は、フィードバック１４０に基づいてグラフィックエンジン１０５の構成情報を生成するように構成される。フィードバックプロセッサ１３５のいくつかの実施形態はまた、デコーダ１３０からフィードバック１４５を受信し、デコーダ１３０から受信したフィードバック１４５に基づいて構成情報を生成するように構成される。グラフィックエンジン１０５は、フィードバックプロセッサ１３５によって生成された構成情報を使用して構成され、一旦そのように構成されると、グラフィックエンジン１０５は、１つまたは複数のワークロードを実行して、グラフィックコンテンツを生成する。
【００１０】
図２は、いくつかの実施形態によるフィードバック処理モジュール２００のブロック図である。フィードバック処理モジュール２００は、図１に示されるフィードバックプロセッサ１３５のいくつかの実施形態を実施するために使用される。フィードバック処理モジュール２００は、図１に示されるフィードバック１４０などのエンコーダフィードバック２０５を受信する。フィードバック２０５のいくつかの実施形態は、グラフィックエンジンから受信した生のグラフィックコンテンツをエンコードするために使用されるエンコーダから受信した統計値情報を含む。例えば、フィードバック２０５は、グラフィックコンテンツ内の異なる関心領域（ＲＯＩ）のビットレートコスト、図１に示されるネットワーク１１５などのネットワークで利用可能な帯域幅、グラフィックコンテンツの分散、グラフィックコンテンツの動作アクティビティ、グラフィックコンテンツのシーンの変化の検出、量子化強度、空間分散、予測モード、客観的品質メトリックなどを含む。フィードバック２０５のいくつかの実施形態はまた、エンコード前のグラフィックコンテンツの前処理、またはエンコードされたグラフィックコンテンツをデコードした後の受信機での後処理に関連する情報を含む。例えば、前処理または後処理情報は、高速フーリエ変換（ＦＦＴ）パラメータ、離散型コサイン変換（ＤＣＴ）パラメータ、ヒストグラム、エッジ検出結果、テキスト検出結果などを含む。
【００１１】
図示された実施形態では、フィードバック処理モジュール２００は、図１に示すデコーダ１３０などのデコーダからデコーダフィードバック２１０を受信する。デコーダフィードバック２１０は、破線によって示されるように、オプションであり、実施形態によってはフィードバック処理モジュール２００に提供されない。デコーダフィードバック２１０は、デコーダによって実行されるデコードプロセスを特徴づけている情報を含む。例えば、デコーダフィードバック２１０は、デコードされたグラフィックコンテンツを提示するディスプレイのディスプレイサイズまたは解像度を示す情報を含み、これは、グラフィックコンテンツがディスプレイに対してどのように生成されるかの評価に影響を与える。別の実施例では、デコーダフィードバック２１０は、デコーダがエンコードされたグラフィックコンテンツをリアルタイムで正常にデコードしているかどうかを示す情報を含み、これは、グラフィックコンテンツのフレームレートの決定に影響を与える。フレームレートは、デコーダがエンコードされたグラフィックをリアルタイムで正常にデコードしている場合は増加し、デコーダが現在のフレームレートでのデコードに追随していない場合は減少する。さらに別の実施例では、デコーダフィードバック２１０は、異なるタイプのレンダリングを実行するかどうかを決定するために使用される、サポートされているか、またはサポートされていないコーデックツールを識別する情報を含む。デコーダがサブピクセル動作補償をサポートしていない場合、サブピクセル動作に対してコンテンツをレンダリングすることはリソースを不必要に消費する。その場合、グラフィックエンジンは、フルピクセル動作に対してコンテンツをレンダリングだけするように構成される。
【００１２】
フィードバック処理モジュール２００はまた、プロセッサ２１５及びメモリ２２０を含む。プロセッサ２１５は、メモリ２２０に格納された命令を実行して、実行された命令の結果などの情報をメモリ２２０に格納するために使用される。メモリ２２０が、エンコーダフィードバック２０５、及び利用可能な場合はデコーダフィードバック２１０を格納するので、プロセッサ２１５は、エンコーダフィードバック２０５、及び利用可能な場合はデコーダフィードバック２１０にアクセスできる。プロセッサ２１５は、エンコーダフィードバック２０５、及び利用可能な場合はデコーダフィードバック２１０に基づいて、グラフィックエンジン（図１に示されるグラフィックエンジン１０５など）の構成情報を生成する。
【００１３】
プロセッサ２１５のいくつかの実施形態は、ディスプレイに提示される画像の品質を改善するために使用される構成情報を生成する。エンコーダは、画像の中の異なる領域に対するビットレートコストを含むフィードバックを提供する。例えば、情報は、画像の背景部分などの比較的静的な画像の上部の領域に対する比較的高いビットレートコストを含む。したがって、この情報は、エンコーダが画像のこれらの領域をエンコードするのに割り当てているビットが多過ぎることを示しており、その結果として画像の他の部分がエンコードされるのに使用されるビット数がより少なくなり、したがって、品質が低下する。したがって、プロセッサ２１５は、（例えば、ビット深度マップを使用して）画像の上部近くの領域が背景にあることを判定するようにグラフィックエンジンを構成するために使用される構成情報を生成する。グラフィックエンジンは、これらの領域で３Ｄ効果などの効果をオフにし、これにより、エンコーダは、これらの領域を表すグラフィックコンテンツをより効率的かつ高品質で圧縮することができる。さらに、背景領域のグラフィックコンテンツの複雑さを減らすことによって節約されるビットは、それから、前景領域または非常に可変的な領域などの画像の他の領域の品質を改善するために利用できる。
【００１４】
プロセッサ２１５のいくつかの実施形態は、グラフィックエンジンまたはエンコーダでの電力を節約するために使用される構成情報を生成する。エンコーダは、利用可能なネットワーク帯域幅が、画像のすべての領域で高品質の３Ｄレンダリング効果をエンコードするために必要な高度な量子化をサポートするのに十分でないことを示すフィードバックを提供する。次に、プロセッサ２１５は、あらゆる不要な３Ｄ効果をオフにするようにグラフィックエンジンを構成するために使用される構成情報を生成し、これにより、グラフィックエンジンは、利用するＧＰＵサイクルをより少なくするか、消費メモリをより少なくし、実行するメモリアクセス要求をより少なくすることによって、電力を節約することができる。
【００１５】
プロセッサ２１５のいくつかの実施形態は、グラフィックエンジンによって生成されるフレームレートまたは画像を変化させるために使用される構成情報を生成する。エンコーダは、利用可能なネットワーク帯域幅が、グラフィックエンジンによってフレームをレンダリングするために現在使用されているフレームレートで現在の画質を維持するのに十分でないことを示すフィードバックを提供する。エンコーダは、グラフィックコンテンツの所定の境界上でそのフレームレートを変化させることが可能である。例えば、エンコーダは、毎秒３０フレーム（ＦＰＳ）、５０ＦＰＳ、６０ＦＰＳなどのフレームレートを使用する。したがって、プロセッサ２１５は、画像をレンダリングするために使用されるフレームレートを変更するようにグラフィックエンジンを構成するために使用される構成情報を生成する。例えば、プロセッサ２１５は、現在のフレームレートでは不十分なネットワーク帯域幅を示すフィードバックに応答してレンダリングフレームレートを低減するようにグラフィックエンジンを構成する、構成情報を生成する。
【００１６】
プロセッサ２１５のいくつかの実施形態は、グラフィックエンジンによってレンダリングされた画像のサイズまたは解像度を変更するために使用される構成情報を生成する。エンコーダは、エンコードプロセスを表す統計値を含むフィードバックを提供する。場合によっては、統計値は、画像によって表される動作がユーザによって滑らかだと知覚されるかどうかを示す。ユーザ体験の品質は、画像内の要素の連続的動作を頻繁に表すゲームによって生成されるグラフィックコンテンツにおいて、特に重要である。したがって、プロセッサ２１５は、レンダリングされた画像の解像度のサイズを変更するようにグラフィックエンジンを構成するために使用される構成情報を生成する。例えば、統計値が途切れ途切れまたは不規則な動作を示している場合、構成情報を使用してグラフィックエンジンを構成し、画像解像度を下げて（例えば、１０８０ｐを７２０ｐに）、画像で表される動作の滑らかさを高める。
【００１７】
プロセッサ２１５はレンダリング設定またはオプション２２５を出力し、それはグラフィックエンジンに提供されて、グラフィックエンジンを構成するために使用される。レンダリング設定またはオプション２２５は、グラフィックエンジンからの要求に応答するなどしてエンコーダがシーン変化を検出するなどのイベントに応答して、所定の時間間隔で提供される。
【００１８】
プロセッサ２１５のいくつかの実施形態は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、固定機能ハードウェアブロック、及び汎用処理装置のうちの１つ以上を使用して実装される。プロセッサ２１５のいくつかの実施形態は、グラフィックコンテンツ、経験的に生成されたルックアップテーブル、閉ループ制御方法、機械学習、ニューラルネットワーク及び回帰モデリングを作成するアプリケーションによって提供される１つ以上の命令に基づいて構成情報を生成するように構成される。
【００１９】
図３は、いくつかの実施形態による、グラフィックエンジンによって生成され、ネットワークを介した送信のためにエンコードされた画像３００の実施例である。画像３００を表すグラフィックコンテンツは、図１に示されるグラフィックエンジン１０５のいくつかの実施形態によって生成される。画像３００は、バスケットボール３１０をバスケットボールのリング３１５にシュートしているプレーヤ３０５を含む。画像３００はまた、画像３００の背景の空３２０及び地面３２５を含む。画像３００を表すグラフィックコンテンツは、図１に示されるエンコーダ１２５などのエンコーダに提供される。エンコーダは、例えば、画像３００を表す受信ビットストリームを圧縮するために圧縮アルゴリズムを使用してグラフィックコンテンツをエンコードし、図１に示されるフィードバックプロセッサ１３５などのフィードバックプロセッサにフィードバックを提供する。
【００２０】
フィードバックは、画像３００内の異なる領域３３０、３３５に関連する情報を含む。例えば、画像３００の背景に空３２０の一部を含む領域３３０に関連するフィードバックは、領域３３０をエンコードするためのビットレートコストを示す情報を含む。領域３３０のビットレートコストが比較的高い場合、これは、エンコーダが領域３３０をエンコードするために不必要に多数のビットを費やしていることを示し、フィードバックプロセッサは、本明細書で論じられるように、領域３３０をレンダリングするために使用される詳細のレベルを低減するように、または領域３３０をレンダリングするために適用される効果を変更するようにグラフィックエンジンを構成するための、構成情報を生成する。別の実施例では、バスケットボール３１０を含む領域３３５に関連するフィードバックは、領域３３５のピクセル値がバスケットボール３１０の動作のために急速に変化していることを示す統計値を含む。したがって、フィードバックプロセッサは、バスケットボール３１０の動作を説明するためにレンダリングオプションまたは設定を変更するようにグラフィックエンジンを構成するための構成情報を生成する。
【００２１】
図４は、いくつかの実施形態による、グラフィックエンジンによって生成されたグラフィックコンテンツをエンコードするエンコーダから受信したフィードバックに基づいてグラフィックエンジンを構成する方法４００のフローチャートである。方法４００は、図１に示されるクラウドサーバ１２０及び図２に示されるフィードバック処理モジュール２００のいくつかの実施形態において実装される。
【００２２】
ブロック４０５で、フィードバック処理モジュールは、エンコーダからフィードバック情報を受信する。本明細書で論じられるように、フィードバック情報は、エンコーダによるグラフィックコンテンツのエンコードに基づいて生成される。ブロック４１０で、フィードバック処理モジュールは、エンコーダによってエンコードされた情報をデコードするように構成されたデコーダから、フィードバック情報を受信する。本明細書で論じられるように、デコーダは、任意選択でフィードバック情報を提供し、フィードバック処理モジュールのいくつかの実施形態は、ブロック４１０の破線によって示されるように、デコーダからフィードバック情報を受信しない。
【００２３】
ブロック４１５で、フィードバック処理モジュールは、エンコーダから受信したフィードバック、及び利用可能な場合、デコーダから受信したフィードバックに基づいて、レンダリング設定またはオプションを生成する。ブロック４２０で、フィードバック処理モジュールは、レンダリング設定またはオプションをグラフィックエンジンに提供する。ブロック４２５で、グラフィックエンジンは、フィードバック処理モジュールによって提供されるレンダリング設定またはオプションに基づいて構成される。
【００２４】
いくつかの実施形態では、上記説明された装置及び技術は、図１〜４を参照して上記説明されたフィードバック処理モジュールなどの、１つ以上の集積回路（ＩＣ）デバイス（集積回路パッケージまたはマイクロチップとも称される）を含むシステムに実装される。電子設計自動化（ＥＤＡ）及びコンピュータ支援設計（ＣＡＤ）ソフトウェアツールが、これらのＩＣデバイスの設計及び製造において用いられる。これらの設計ツールは、通常１つ以上のソフトウェアプログラムとして表される。１つ以上のソフトウェアプログラムは、１つ以上のＩＣデバイスの回路を表すコード上で動作して、回路を製造するための製造システムを設計する、または適合させるプロセスの少なくとも一部を実行するようにコンピュータシステムを操作するために、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、または命令及びデータの組み合わせを含むことができる。設計ツールまたは製作ツールを表すソフトウェア命令は、典型的には、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に格納される。同様に、ＩＣデバイスの設計または製造の１つ以上の段階を表すコードは、同一のコンピュータ可読記憶媒体または異なるコンピュータ可読記憶媒体に記憶され、同一のコンピュータ可読記憶媒体または異なるコンピュータ可読記憶媒体からアクセスされる。
【００２５】
コンピュータ可読記憶媒体は、命令及び／またはデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的記憶媒体、または非一時的記憶媒体の組み合わせを含む。そのような記憶媒体は、光媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイディスク）、磁気媒体（例えば、フロッピーディスク、磁気テープ、または磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）またはキャッシュ）、不揮発性メモリ（例えば、読取専用メモリ（ＲＯＭ）またはフラッシュメモリ）、または微小電気機械システム（ＭＥＭＳ）ベースの記憶媒体を含む場合があるが、これに限定されるものではない。コンピュータ可読記憶媒体は、コンピューティングシステムに内蔵され（例えば、システムＲＡＭまたはＲＯＭ）、コンピューティングシステムに固定して取り付けられ（例えば、磁気ハードドライブ）、コンピューティングシステムに取り外し可能に取り付けられ（例えば、光学ディスクまたはユニバーサルシリアルバス（ＵＳＢ）ベースフラッシュメモリ）、または、有線もしくは無線ネットワークを介してコンピュータシステム（例えば、ネットワークアクセス可能記憶装置（ＮＡＳ））に結合される。
【００２６】
いくつかの実施形態では、上記で説明される技術の特定の態様は、ソフトウェアを実行する処理システムの１つ以上のプロセッサによって実施される。ソフトウェアは、非一時的なコンピュータ可読記憶媒体上に、格納される、またはその他の方法により有形に具現化される、実行可能な命令の１つ以上のセットを含む。ソフトウェアは、１つ以上のプロセッサにより実行されるときに、１つ以上のプロセッサが上述される技法の１つ以上の態様を実行するように操作する、命令及び特定のデータを含むことが可能である。非一時的なコンピュータ可読記憶媒体には、例えば、磁気ディスクまたは光ディスクの記憶デバイス、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）などのソリッドステート記憶デバイス、またはその他の単一または複数の不揮発性メモリデバイスなどが含まれ得る。非一時的コンピュータ可読記憶媒体に格納される実行可能命令は、１つ以上のプロセッサにより、解釈される、またはその他の方法により実行可能である、ソースコード、アセンブリ言語コード、オブジェクトコード、または他の命令フォーマットである。
【００２７】
説明したものに加えて、上記の一般的説明で述べたアクティビティまたは要素の全てが必須ではないこと、特定のアクティビティまたはデバイスの一部は必要であること、及び１つ以上の追加のアクティビティが実行されるか、または要素が含まれることに留意されたい。さらに、アクティビティがリストにされている順序は、必ずしもそれらが実行される順序ではない。また、特定の実施形態を参照して概念が説明されている。しかし、当業者は、添付の特許請求の範囲に記載されている本開示の範囲から逸脱することなく、様々な修正及び変更を行うことができることを理解する。したがって、本明細書及び図面は、限定的な意味ではなく、例示的な意味で見なされるべきであり、全てのそのような修正は、本開示の範囲内に含まれることが意図されている。
【００２８】
特定の実施形態に関して、利益、他の利点、及び問題に対する解決策を上で説明している。ただし、利益、利点、及び問題に対する解決策、ならびに任意の利益、利点、または解決策を生じさせ得るか、もしくはより顕著になり得る任意の特徴（複数可）が、いずれかまたは全ての請求項の重要な、必要な、または不可欠な特徴として解釈されるべきではない。さらに、開示された主題は、本明細書の教示の利益を受け取る当業者には明らかな、異なるが同等な様式で修正及び実施され得るため、上記に開示された特定の実施形態は例示にすぎない。下記の特許請求の範囲に記載されている場合を除き、本明細書に示されている構造または設計の詳細に対する制限は意図されていない。したがって、上に開示された特定の実施形態は変更または修正されてもよく、そのような全ての変形は開示された主題の範囲内であると見なされることは明らかである。したがって、本明細書で求められる保護は、下記の特許請求の範囲に記載されている通りである。
【図１】
2021525986.tif 000003
【図２】
2021525986.tif 000004
【図３】
2021525986.tif 000005
【図４】
2021525986.tif 000006
【手続補正書】
【提出日】令和3年3月22日(2021.3.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
エンコーダ［１２５］から受信したフィードバック［２０５］を格納するように構成されているメモリ［２２０］であって、前記フィードバックはグラフィックエンジン［１０５］によって生成されたグラフィックコンテンツのエンコードと関連したパラメータを含む、前記メモリ［２２０］と、
前記フィードバックに基づいて前記グラフィックエンジンの構成情報を生成するように構成されているプロセッサ［２１５］と
を含み、
前記グラフィックエンジンは前記構成情報に基づいてワークロードを実行するように構成されている、
装置。
【請求項２】
前記フィードバックが、前記グラフィックコンテンツの領域に対する動作情報、量子化強度、空間分散、予測モード、ビットレートコスト及び客観的品質メトリックのうち少なくとも１つを含む、請求項１に記載の装置。
【請求項３】
前記フィードバックが、前記グラフィックコンテンツのシーンの変化の検出を示す情報を含む、請求項１に記載の装置。
【請求項４】
前記フィードバックが、エンコードの前の前記グラフィックコンテンツの前処理または前記エンコードされたグラフィックコンテンツをデコードした後の受信機での後処理と関連した情報のうち少なくとも１つを含む、請求項１に記載の装置。
【請求項５】
前処理または後処理と関連した前記情報が、高速フーリエ変換（ＦＦＴ）パラメータ、離散型コサイン変換（ＤＣＴ）パラメータ、ヒストグラム、エッジ検出結果及びテキスト検出結果のうち少なくとも１つを含む、請求項４に記載の装置。
【請求項６】
前記メモリが、前記エンコーダによってエンコードされた前記グラフィックコンテンツをデコードするために使用されるデコーダ［１３０］から受信したフィードバックを格納するように構成されており、前記プロセッサが、前記デコーダから受信した前記フィードバック［２１０］に基づいて前記構成情報を生成するように構成されている、請求項１〜５のいずれか１項に記載の装置。
【請求項７】
前記プロセッサが、前記グラフィックコンテンツを生成するアプリケーションによって提供される命令、経験的に生成されたルックアップテーブル、閉ループ制御プロセス、機械学習、ニューラルネットワーク及び回帰モデリングの少なくとも１つに基づいて前記構成情報を生成するように構成されている、請求項１〜６のいずれか１項に記載の装置。
【請求項８】
前記グラフィックエンジンが、前記構成情報に基づいて前記グラフィックエンジンのレンダリング設定を変更することによって構成されている、請求項１〜７のいずれか１項に記載の装置。
【請求項９】
前記レンダリング設定を変更することが、
前記グラフィックコンテンツの複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記エンコーダで前記複数の領域をエンコードすることのビットレートコストに基づいて無効にすることと、
前記グラフィックコンテンツの前記複数の領域の少なくとも１つにおける少なくとも１つのグラフィック効果を、前記少なくとも１つのグラフィック効果のエンコーダ量子化をサポートするには不十分な帯域幅が存在していることを示している前記フィードバックに応答して、無効にすることと、
前記エンコーダは前記グラフィックコンテンツを表すエンコードされたビットストリームの帯域幅を減らすために所定のフレーム境界上のそのフレームレートを変化させることが可能なことを示している前記フィードバックに応答して、レンダリングフレームレートを変更することと、
前記フィードバックにおいて受信したエンコーダ統計値に基づいて、前記グラフィックコンテンツをレンダリングするために使用される画像解像度を減らすことと
のうち少なくとも１つを実行するように前記グラフィックエンジンを構成するために前記レンダリング設定を変更することを含む、請求項８に記載の装置。
【請求項１０】
フィードバック処理モジュール［２００］で、エンコーダ［１２５］からフィードバック［２０５］を受信することであって、前記フィードバックはグラフィックエンジン［１０５］によって生成されたグラフィックコンテンツのエンコードと関連したパラメータを含む、前記受信することと、
前記フィードバックを前記フィードバック処理モジュールで格納することと、
前記フィードバック処理モジュールで、前記フィードバックに基づいて前記グラフィックエンジンのための構成情報を生成することと、
前記構成情報を使用して前記グラフィックエンジンを構成することと、
前記グラフィックエンジンで少なくとも１つのワークロードを実行することと
を含む方法。
【請求項１１】
前記フィードバックを受信することが、前記グラフィックコンテンツの領域に対する動作情報、量子化強度、空間分散、予測モード、ビットレートコスト及び客観的品質メトリックのうち少なくとも１つを受信することを含む、請求項１０に記載の方法。
【請求項１２】
前記フィードバックを受信することが前記グラフィックコンテンツのシーンの変化の検出を示す情報を受信することを含む、請求項１０に記載の方法。
【請求項１３】
前記フィードバックを受信することが、エンコードの前の前記グラフィックコンテンツの前処理または前記エンコードされたグラフィックコンテンツをデコードした後の後処理と関連した情報の少なくとも１つを受信することを含む、請求項１２に記載の方法。
【請求項１４】
前処理または後処理と関連した前記情報を受信することが、高速フーリエ変換（ＦＦＴ）パラメータ、離散型コサイン変換（ＤＣＴ）パラメータ、ヒストグラム、エッジ検出結果及びテキスト検出結果のうち少なくとも１つを受信することを含む、請求項１３に記載の方法。
【請求項１５】
前記フィードバック処理モジュールで、前記エンコーダによってエンコードされる前記グラフィックコンテンツをデコードするために使用されるデコーダ［１３０］から受信したフィードバック［２１０］を格納することと、
前記フィードバック処理モジュールで、前記デコーダから受信した前記フィードバックに基づいて前記構成情報を生成することと
をさらに含む、請求項１０〜１４のいずれか１項に記載の方法。
【国際調査報告】
2021525986.tif 000007
2021525986.tif 000008
2021525986.tif 000009
2021525986.tif 000010
2021525986.tif 000011
2021525986.tif 000012
2021525986.tif 000013