(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-15
(45)【発行日】2024-02-26
(54)【発明の名称】符号化アーティファクトのためのフレームオーバーレイ
(51)【国際特許分類】
H04L 67/75 20220101AFI20240216BHJP
H04N 19/85 20140101ALI20240216BHJP
H04N 19/46 20140101ALI20240216BHJP
A63F 13/355 20140101ALI20240216BHJP
A63F 13/35 20140101ALI20240216BHJP
【FI】
H04L67/75
H04N19/85
H04N19/46
A63F13/355
A63F13/35
(21)【出願番号】P 2021556575
(86)(22)【出願日】2020-03-17
(86)【国際出願番号】 US2020023155
(87)【国際公開番号】W WO2020190945
(87)【国際公開日】2020-09-24
【審査請求日】2021-12-09
(32)【優先日】2019-03-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-12-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ネルソン,エリック・エフ
(72)【発明者】
【氏名】ディートリック,ダグラス・シム,ジュニア
【審査官】岩田 玲彦
(56)【参考文献】
【文献】特開2008-287329(JP,A)
【文献】特開2016-225757(JP,A)
【文献】米国特許出願公開第2017/0312626(US,A1)
【文献】特開2018-050256(JP,A)
【文献】米国特許出願公開第2014/0185678(US,A1)
【文献】特表2015-502097(JP,A)
【文献】特表2011-504042(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/75
H04N 19/85
H04N 19/46
A63F 13/355
A63F 13/35
(57)【特許請求の範囲】
【請求項1】
方法であって、
表示用の複数のフレームを含むゲームストリーム[115]のために、前記複数のフレームの各々の生フレーム[120]を符号化して符号化フレーム[122]を生成することを備え、前記複数のフレームの各々は、レンダリングされ、ビデオゲームプログラム[109]のユーザに表示される視覚ゲーム情報を表し、前記方法は、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別することと、
前記符号化フレームにオーバーレイ[125]を適用することとをさらに備え、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含
み、前記第1の視覚インジケータの色、輝度、および強度の少なくとも1つは、前記第1の差の大きさに基づく、方法。
【請求項2】
前記第1の差は、前記符号化フレームと前記生フレームとの間の1つ以上の画素の少なくとも1つの特性の差を含む、請求項1に記載の方法。
【請求項3】
前記第1の差は、前記符号化フレームと前記生フレームとの間の色差を含む、請求項2に記載の方法。
【請求項4】
前記第1の差は、前記符号化フレームと前記生フレームとの間のテクスチャ差を含む、請求項2または3に記載の方法。
【請求項5】
前記第1の差は、前記符号化フレームと前記生フレームとの間のボケ差を含む、請求項2~4のいずれか1項に記載の方法。
【請求項6】
前記第1の差を識別することは、前記符号化フレームの少なくとも一部および前記生フレームの対応する部分についての画素変動の差を識別することを含む、請求項5に記載の方法。
【請求項7】
前記第1の差が閾値を超えていることに応じて、前記オーバーレイと共に前記第1の視覚インジケータを含むことをさらに備える、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記第1の視覚インジケータは前記第1の差の大きさおよび/または種類に基づく、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記第1の符号化アーティファクトについての少なくとも2種類の異なる差の中から前記第1の差の種類を求めることをさらに備える、請求項8に記載の方法。
【請求項10】
前記第1の視覚インジケータは色を含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
前記第1の視覚インジケータはテクスチャを含む、請求項1~10のいずれか1項に記載の方法。
【請求項12】
方法であって、
示用の複数のフレームを含むゲームストリーム[115]のために、生フレーム[120]を符号化して符号化フレーム[122]を生成することと、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別することと、
前記符号化フレームにオーバーレイ[125]を適用することとを備え、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含み、前記方法は、
前記符号化フレームと前記生フレームとの間の第2の差に基づいて、第2の符号化アーティファクトを識別することをさらに備え、
前記オーバーレイは、前記第2の符号化アーティファクトを示す第2の視覚インジケータを含み、前記第2の視覚インジケータは前記第1の視覚インジケータとは異なる、方法。
【請求項13】
前記第1および第2の視覚インジケータは、サイズ、形状、および色のうちの少なくとも1つにおいて異なる、請求項12に記載の方法。
【請求項14】
方法であって、
表示用の複数のフレームを含むゲームストリーム[115]のために、生フレーム[120]を符号化して符号化フレーム[122]を生成することと、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別することと、
前記符号化フレームにオーバーレイ[125]を適用することとを備え、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含み、前記方法は、
前記第1の視覚インジケータを、前記第1の符号化アーティファクトの少なくとも一部もしくは全体に、または少なくとも一部もしくは全体の上に位置決めすることをさらに備える、方法。
【請求項15】
方法であって、
表示用の複数のフレームを含むゲームストリーム[115]のために、生フレーム[120]を符号化して符号化フレーム[122]を生成することと、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別することと、
前記符号化フレームにオーバーレイ[125]を適用することとを備え、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含み、前記方法は、
前記ゲームストリームを提供するサーバ[102]のオーバーレイジェネレータ[123]を使用することをさらに備え、前記オーバーレイジェネレータは、前記第1の視覚インジケータを提供するために前記オーバーレイを生成するように構成される、方法。
【請求項16】
前記第1の視覚インジケータに基づいて前記生フレームを符号化するための少なくとも1つの符号化パラメータを調整することをさらに備える、請求項1~15のいずれか1項に記載の方法。
【請求項17】
方法であって、
表示用の複数のフレームを含むゲームストリーム[115]のために、生フレーム[120]を符号化して符号化フレーム[122]を生成することと、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別することと、
前記符号化フレームにオーバーレイ[125]を適用することとを備え、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含み、前記方法は、
前記第1の視覚インジケータに基づいて前記生フレームを符号化するための少なくとも1つの符号化パラメータを調整することをさらに備え、
少なくとも2つの異なる符号化パラメータが、前記生フレームを符号化するために使用され、前記第1の視覚インジケータに基づいて調整可能である、方法。
【請求項18】
方法であって、
表示用の複数のフレームを含むゲームストリーム[115]のために、生フレーム[120]を符号化して符号化フレーム[122]を生成することと、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別することと、
前記符号化フレームにオーバーレイ[125]を適用することとを備え、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含み、前記方法は、
前記オーバーレイとともにゲームストリームを介して提供するために、前記符号化フレームを表示することをさらに備える、方法。
【請求項19】
方法であって、
符号化フレーム[122]の画素と複数のフレームの各々の生フレーム[120]の対応する画素との間の差に基づいて符号化アーティファクトを識別することを備え、前記符号化フレームは、前記複数のフレームを含むゲームストリーム[115]を介して提供され、前記複数のフレームの各々は、レンダリングされ、ビデオゲームプログラム[109]のユーザに表示される視覚ゲーム情報を表し、前記方法はさらに、
前記符号化フレームにオーバーレイ[125]を適用することを備え、前記オーバーレイは
ヒートマップとして生成されて前記符号化アーティファクトを示し、前記方法はさらに、
前記オーバーレイと共に前記符号化フレームを表示することを備える、方法。
【請求項20】
前記符号化アーティファクトは、色差、テクスチャ差、およびボケ差のうちの少なくとも1つを含む、請求項19に記載の方法。
【請求項21】
実行可能な命令のセットを具体化するコンピュータプログラムであって、前記実行可能な命令のセットは、少なくとも1つのプロセッサを、
表示用の複数のフレームを含むゲームストリーム[115]のために、前記複数のフレームの各々の生フレーム[120]を符号化して符号化フレーム[122]を生成するように操作し、前記複数のフレームの各々は、レンダリングされ、ビデオゲームプログラム[109]のユーザに表示される視覚ゲーム情報を表し、前記実行可能な命令のセットは、前記少なくとも1つのプロセッサを、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別し、
前記符号化フレームにオーバーレイ[125]を適用するようにさらに操作し、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含
み、前記第1の視覚インジケータの色、輝度、および強度の少なくとも1つは、前記第1の差の大きさに基づく、コンピュータプログラム。
【請求項22】
前記第1の差は、前記符号化フレームと前記生フレームとの間の1つ以上の画素の少なくとも1つの特性の差を含む、請求項21に記載のコンピュータプログラム。
【請求項23】
前記第1の差は、前記符号化フレームと前記生フレームとの間の色差を含む、請求項21または22に記載のコンピュータプログラム。
【請求項24】
前記第1の差は、前記符号化フレームと前記生フレームとの間のテクスチャ差を含む、請求項21~23のいずれか1項に記載のコンピュータプログラム。
【請求項25】
前記第1の差は、前記符号化フレームと前記生フレームとの間のボケ差を含む、請求項21~24のいずれか1項に記載のコンピュータプログラム。
【請求項26】
前記第1の差を識別することは、前記符号化フレームの少なくとも一部および前記生フレームの対応する部分についての画素変動の差を識別することを含む、請求項25に記載のコンピュータプログラム。
【請求項27】
前記実行可能な命令は、前記少なくとも1つのプロセッサを、
前記第1の差が閾値を超えていることに応じて、前記オーバーレイと共に前記第1の視覚インジケータを含むように操作する、請求項21~26のいずれか1項に記載のコンピュータプログラム。
【請求項28】
前記第1の視覚インジケータは前記第1の差の大きさに基づく、請求項21~27のいずれか1項に記載のコンピュータプログラム。
【請求項29】
前記第1の視覚インジケータは色を含む、請求項21~28のいずれか1項に記載のコンピュータプログラム。
【請求項30】
前記第1の視覚インジケータはテクスチャを含む、請求項21~29のいずれか1項に記載のコンピュータプログラム。
【請求項31】
実行可能な命令のセットを具体化するコンピュータプログラムであって、前記実行可能な命令のセットは、少なくとも1つのプロセッサを、
表示用の複数のフレームを含むゲームストリーム[115]のために、生フレーム[120]を符号化して符号化フレーム[122]を生成し、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別し、
前記符号化フレームにオーバーレイ[125]を適用するように操作し、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含み、
前記実行可能な命令は、前記少なくとも1つのプロセッサを、
前記符号化フレームと前記生フレームとの間の第2の差に基づいて、第2の符号化アーティファクトを識別するようにさらに操作し、
前記オーバーレイは、前記第2の符号化アーティファクトを示す第2の視覚インジケータを含み、前記第2の視覚インジケータは前記第1の視覚インジケータとは異なる、コンピュータプログラム。
【請求項32】
リアルタイムビデオストリーミングシステム[100]であって、サーバ[102]を備え、前記サーバは、前記サーバで実行されるビデオゲームプログラム[109]のゲーム状態に基づいて少なくとも1つのクライアントデバイス[104]に送信するための符号化フレームを生成し、前記サーバは、
前記ビデオゲームプログラムのゲームストリーム[115]のために、前記ゲームストリームに含まれる表示用の複数のフレームの各々の生フレーム[120]を符号化して符号化フレーム[122]を生成するように構成され、前記複数のフレームの各々は、レンダリングされ、前記ビデオゲームプログラムのユーザに表示される視覚ゲーム情報を表し、前記サーバはさらに、
前記符号化フレームと前記生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別し、
前記符号化フレームにオーバーレイ[125]を適用するように構成され、前記オーバーレイは、前記第1の符号化アーティファクトを示す第1の視覚インジケータ[335]を含
み、前記第1の視覚インジケータの色、輝度、および強度の少なくとも1つは、前記第1の差の大きさに基づく、リアルタイムビデオストリーミングシステム。
【請求項33】
前記サーバは、請求項1~20のいずれか1項に記載の方法を実現するように構成される、請求項32に記載のリアルタイムビデオストリーミングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
背景
ビデオストリーミングシステムは、ネットワークを介してサーバからクライアントデバイスにビデオフレームをストリーミングし、サーバの大きな記憶空間および計算能力を活用してビデオコンテンツを提供する。たとえば、ゲームストリーミングシステムは、ゲーム環境を表すビデオフレームをストリーミングする一方で、ユーザがゲームコントローラまたは他の入力デバイスを介してゲーム環境と対話できるようにする。ビデオフレームの迅速かつ効率的な送信を保証するために、ゲームストリーミングシステムは、送信前にサーバにおいてフレームを符号化することによって、フレームを符号化フォーマットで送信することができる。しかしながら、フレームを符号化すると、色変化および特徴ボケなどの、符号化アーティファクトが生じる場合がある。たとえばフレームの一部をフレームの他の部分よりも少ない圧縮で符号化することによってなど、符号化処理のためのパラメータを調整することによって、これらの問題に対処するゲームストリーミングシステムもある。しかしながら、これらの改善技術の有効性は、符号化の影響を最も受けるストリーミングされるフレームの特定の特徴を識別することによって決まることが多く、従来技術を用いてこれらの特徴を識別することは困難である。
【発明の概要】
【課題を解決するための手段】
【0002】
概要
提案される解決策は、特に方法に関し、方法は、表示用の複数のフレームを含むゲームストリームのために、生フレームを符号化して符号化フレームを生成することと、符号化フレームと生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別することと、符号化フレームにオーバーレイを適用することとを含み、オーバーレイは、第1の符号化アーティファクトを示す第1の視覚インジケータを含む。
【0003】
具体例としての実施形態では、第1の差は、符号化フレームと生フレームとの間の色差、テクスチャ差、および/またはボケ差などの、符号化フレームと生フレームとの間の1つ以上の画素の少なくとも1つの特性の差を含んでもよい。この文脈では、第1の差を識別することは、符号化フレームの少なくとも一部および生フレームの対応する部分についての画素変動の差を識別することを含んでもよい。
【0004】
具体例としての実施形態では、オーバーレイと共に第1の視覚インジケータを含むことは、第1の差が閾値を超えていることに応じたものであってもよい。対応する閾値は、たとえば画素差値に関連してもよく、すなわち、符号化フレームの画素と生フレームの画素との間の画素値差が所定の閾値を超えると、第1の視覚インジケータがオーバーレイと共に含まれる。
【0005】
第1の視覚インジケータは、たとえば、第1の差の大きさおよび/または種類に基づいてもよい。具体例としての一実施形態では、方法は、第1の符号化アーティファクトについての少なくとも2種類の異なる差の中から第1の差の種類を求めることを含んでもよい。それゆえ、求めた種類に応じて、オーバーレイによる符号化アーティファクトの種類の視覚的表示を可能にするために、視覚的インジケータは異なってもよい。たとえば、方法は、符号化フレームと生フレームとの間の第2の差に基づいて、第2の符号化アーティファクトを識別することを含んでもよく、オーバーレイは、第2の符号化アーティファクトを示す第2の視覚インジケータを含み、第2の視覚インジケータは第1の視覚インジケータとは異なる。第1および第2の視覚インジケータは、たとえば、サイズ、形状、および色のうちの少なくとも1つにおいて異なってもよい。次いで、第1および第2の視覚インジケータの差が、第1および第2の符号化アーティファクトの種類、大きさ、またはこれらの組合せの差を示してもよい。
【0006】
具体例としての実施形態では、第1の視覚インジケータは、第1の符号化アーティファクトの少なくとも一部もしくは全体に、または少なくとも一部もしくは全体の上に位置決めされてもよい。したがって、オーバーレイおよび符号化フレームが共に表示されると、第1の視覚インジケータは、対応する符号化アーティファクトを視覚的に強調表示する。
【0007】
一般に、第1の視覚インジケータは、たとえば色および/またはテクスチャを含んでもよい。たとえば、アーティファクトに対応する画素の指定された画素半径内のすべての画素を反転させてもよい。
【0008】
具体例としての実施形態では、ゲームストリームを提供するサーバのオーバーレイジェネレータが使用されてもよく、オーバーレイジェネレータは、第1の視覚インジケータを提供するためにオーバーレイを生成するように構成される。
【0009】
第1の視覚インジケータに基づいて、生フレームを符号化するための少なくとも1つの符号化パラメータが調整されてもよい。これは、少なくとも2つの異なる、調整可能な符号化パラメータが、生フレームを符号化するために使用され、符号化パラメータの1つ以上が、第1の視覚インジケータに基づいて、自動的にまたはユーザによって調整されることを意味し得る。
【0010】
提案される解決策はさらに、方法に関し、方法は、符号化フレームの画素と生フレームの対応する画素との間の差に基づいて符号化アーティファクトを識別することを含み、符号化フレームはゲームストリームを介して提供され、方法はさらに、符号化フレームにオーバーレイを適用することを含み、オーバーレイは符号化アーティファクトを示し、方法はさらに、オーバーレイと共に符号化フレームを表示することを含む。
【0011】
加えて、提案される解決策はさらに、実行可能な命令のセットを具体化する非一時的なコンピュータ読取可能媒体に関する。実行可能な命令のセットは、少なくとも1つのプロセッサを、表示用の複数のフレームを含むゲームストリームのために、生フレームを符号化して符号化フレームを生成し、符号化フレームと生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別し、符号化フレームにオーバーレイを適用するように操作し、オーバーレイは、第1の符号化アーティファクトを示す第1の視覚インジケータを含む。特に、提案される媒体は、提案される方法を実現するように少なくとも1つのプロセッサを操作する実行可能命令のセットを具体化してもよい。
【0012】
提案される解決策の別の態様は、リアルタイムビデオストリーミングシステムに関し、リアルタイムビデオストリーミングシステムはサーバを含み、サーバは、サーバで実行されるビデオゲームプログラムのゲーム状態に基づいて少なくとも1つのクライアントデバイスに送信するための符号化フレームを生成する。サーバは、ビデオゲームプログラムのゲームストリームのために生フレームを符号化して符号化フレームを生成するように構成されてもよく、ゲームストリームは表示用の複数のフレームを含み、サーバはさらに、符号化フレームと生フレームとの間の第1の差に基づいて、第1の符号化アーティファクトを識別し、符号化フレームにオーバーレイを適用するように構成されてもよく、オーバーレイは、第1の符号化アーティファクトを示す第1の視覚インジケータを含む。特に、提案されるリアルタイムビデオストリーミングシステムは、提案される方法を実現するように構成されたサーバを含んでもよい。
【0013】
本開示は特に、ゲームストリーミングシステムなどのリアルタイムビデオストリーミングシステムによってストリーミングされる符号化フレーム内の符号化アーティファクトを識別するオーバーレイを生成するための技術に関する。ゲームストリーミングシステムのサーバは、たとえば、サーバにおいて実行されるビデオゲームプログラムのゲーム状態に基づいて、各フレームを生成する。サーバは、「生の」、すなわち符号化されていないフォーマットでフレームを生成し、ネットワークを介してクライアントデバイスに送信するためにフレームを符号化する。少なくとも1つの符号化フレームについて、サーバは、たとえば、符号化フレームおよび生フレームの1つ以上の画素の色、テクスチャ、ボケ、または他の特性の差などの、符号化フレームと対応する生フレームとの間の差を識別することによって、符号化アーティファクトを識別する。サーバは、識別された符号化アーティファクトを強調表示するために視覚的インジケータと共にオーバーレイを生成し、オーバーレイを符号化フレームとともに表示する。それゆえ、ユーザ(たとえば、クライアントデバイスの開発者またはユーザ)は符号化アーティファクトを素早く容易に識別することができ、したがって、そのようなアーティファクトに対処するゲームストリーミングシステムのアスペクトを素早く容易に調整することにより、ゲームストリーミングシステムの性能を改善することができる。
【0014】
例示すると、いくつかの実施形態では、エンコーダは、量子化パラメータおよび圧縮パラメータなどの、符号化処理を制御する1つ以上のパラメータを用いる。これらのパラメータのうちの1つ以上を調整することにより、符号化アーティファクトを低減することができる。符号化アーティファクトを低減する際のこれらの調整の有効性は、ストリーミングされる符号化フレームのうちの1つ以上の特定の符号化アーティファクトを識別することによって高めることができる。たとえば、エンコーダは、変動に基づく適応型量子化(variance-based adaptive quantization)(VBAQ)を実行することができ、開発者は、ストリーミングされる1つ以上の符号化フレームにおいて識別された特定の符号化アーティファクトに基づいて、VBAQパラメータを調整することができる。しかしながら、ストリーミングされるフレームは多数の特徴を有していることが多く、フレームの符号化アーティファクトは、ストリーミングされるフレームの全体サイズに対して小さい場合があるため、符号化アーティファクトを視覚的に識別することは困難な場合がある。オーバーレイを用いて符号化アーティファクトを視覚的に強調表示することによって、ゲームストリーミングシステムは、システムの開発者または他のユーザが、アーティファクトを素早く識別し、符号化パラメータに対して対応する調整を行うことにより、ゲームストリーミングシステムの開発および性能を改善できるようにする。
【0015】
添付の図面を参照することにより、本開示はより良く理解され、その数多くの特徴および利点が当業者に明らかになるであろう。各種図面において同一の参照符号の使用は同様または同一の項目を示す。
【図面の簡単な説明】
【0016】
【
図1】いくつかの実施形態に係る、ゲームストリームの符号化フレーム内の符号化アーティファクトを識別するフレームオーバーレイを生成するゲームストリーミングシステムのブロック図である。
【
図2】いくつかの実施形態に係る、
図1のゲームストリーミングシステムにおいて生フレームを符号化する際に生成される符号化アーティファクトの例を示す図である。
【
図3】いくつかの実施形態に係る、
図1のオーバーレイの例を示す図である。
【
図4】いくつかの実施形態に係る、フレーム内の符号化アーティファクトを識別する
図1のオーバーレイの例を示す図である。
【
図5】いくつかの実施形態に係る、符号化フレーム内の複数の符号化アーティファクトを識別する
図1のオーバーレイの例を示す図である。
【
図6】いくつかの実施形態に係る、
図1のオーバーレイを生成するオーバーレイジェネレータを示すブロック図である。
【
図7】いくつかの実施形態に係る、ゲームストリームの符号化フレーム内の符号化アーティファクトを識別するオーバーレイを生成する方法を示すフロー図である。
【発明を実施するための形態】
【0017】
詳細な説明
図1は、一般にレンダリングされたゲームコンテンツをサーバ102からクライアントデバイス104にストリーミングするように構成されたゲームストリーミングシステム100を示す。図示される例では、サーバ102およびクライアントデバイス104はネットワーク110を介して通信を行い、ネットワーク110は、一般にビデオデータを含むデータを1つ以上のルータ、サーバ、および通信タワー(たとえばセルラー通信タワー)など、またはこれらの任意の組合わせを介して転送するように構成された、パケット交換方式または他のネットワークである。したがって、さまざまな実施形態において、ネットワーク110は、ワイドエリアネットワーク(たとえばインターネット)およびローカルエリアネットワークなど、またはこれらの任意の組合わせである。
【0018】
サーバ102およびクライアント104は一般に、ストリーミングされるゲームセッションをまとめて実現するように構成され、対話型ゲームコンテンツがサーバ102からクライアントデバイス104にストリーミングされる。したがって、サーバ102は、ラックマウントサーバ、クラスタサーバ(すなわち、サーバデバイスのクラスタにおいて実現されるサーバデバイス)、およびモバイルサーバデバイスなど、またはこれらの組合わせなどの、本明細書でさらに説明する機能性を実現する任意の種類のコンピュータデバイスであってもよい。クライアントデバイス104は、ビデオフレームのユーザに対する表示およびユーザ入力の受信が可能な任意のコンピュータデバイスであってもよく、したがって、デスクトップまたはラップトップコンピュータ、デジタルメディアプレイヤー、ゲームコンソール、スマートフォン、およびタブレットなどであってもよい。
【0019】
ストリーミングされるゲームセッション中のゲームコンテンツのクライアントデバイスへのストリーミングをサポートするために、サーバ102は、中央処理装置(CPU)106およびグラフィック処理装置(GPU)108などの複数の処理装置を含む。CPU106は一般に、コンピュータプログラムの形式で編成された命令の汎用セットを実行して、サーバ102の代わりにタスクを実行するように構成された処理装置である。そのようなコンピュータプログラムの例として、オペレーティングシステム、仮想マシン、データセキュリティプログラム(たとえばデータ暗号化/復号化プログラム)、ウェブページ、およびデータベースプログラムが挙げられる。
【0020】
GPU108は一般に、CPU106から受信したコマンドに基づいてグラフィックおよびベクトル処理と関連付けられた動作を実行するように構成された処理装置である。たとえば、1つ以上の汎用プログラムを実行する間に、CPU106は、表示用のグラフィカルモデルを生成および操作するコマンドを生成し、当該コマンドをGPU108に提供する。これに応じて、GPU108は、1つ以上の対応するグラフィカル動作を実行することによってコマンドを実行することにより、表示用に1つ以上のフレームを生成するようにグラフィカルモデルを操作する。いくつかの実施形態では、GPU108によって生成されるフレームは、表示デバイスにおける表示の準備が整った、レンダリングされたフレームである。
【0021】
ストリーミングされるゲームコンテンツの受信および表示をサポートするために、クライアントデバイス104は、CPUおよびGPU(
図1には図示せず)などの処理装置を含む。これらのモジュールの各々は、サーバ102の対応するモジュールに類似する。それゆえ、たとえば、CPUは一般に、オペレーティングシステムおよびウェブブラウザなどのうちの1つ以上を実行するなど、クライアントデバイス104に代わって汎用命令を実行するように構成される。いくつかの実施形態では、クライアントデバイスのCPUおよびGPUは一般に、サーバ102のCPU106およびGPU108と比較して比較的小さな計算能力を有することが理解されるであろう。それゆえ、ゲームストリーミングシステム100は、サーバ102の計算能力を活用して、クライアントデバイス104のみによって生成可能であるよりも高品質のゲームコンテンツをクライアント104にストリーミングする。
【0022】
動作時、クライアント104は、ウェブブラウザ、専用のゲームストリーミングプログラム、およびビデオストリーミングサービスプログラムなどを介するなど、クライアント104において実行されるコンピュータプログラム(図示せず)を介して、ユーザがゲームセッションをリクエストしたことに応じて、ゲームストリーミングセッションを開始する。ユーザのリクエストに応じて、CPU112は、ネットワーク110を介してサーバ102にゲームセッションリクエストを送信する。これに応じて、サーバ102はゲームプログラム109の実行を開始する。いくつかの実施形態では、サーバ102は、ゲームプログラムのライブラリのうちのいずれか1つを実行するように構成され、クライアント104によって提供されるリクエストは、実行されるゲームプログラムのうちの特定の1つを示す。
【0023】
実行中、ゲームプログラム109は、ゲームの条件または状態を表す、ゲーム状態と呼ばれるデータの集まりを維持する。クライアント104のユーザは、ゲームコントローラまたは他の入力デバイスを用いてCPU112に入力データを提供し、CPU112は、ネットワーク110を介してゲームプログラム109に入力データを通信する。入力データに応じて、ゲームプログラム109は、ゲームプログラム109によって実現される特定のゲームのルールに従ってゲーム状態を変更する。
【0024】
ゲーム状態に基づいて、かつ、実現されるゲームのルールに従って、ゲームプログラム109はCPU106およびGPU108を用いて、仮想環境、ゲームボード、選択スクリーン、およびヘッドアップディスプレイ(HUD)など、またはこれらの任意の組合わせなどの、視覚ゲーム情報を表すレンダリングされたフレームを生成する。サーバ102は、これらのレンダリングされたフレーム、指定されたストリーミングされるフレーム115を、クライアント104に通信するためにネットワーク110に提供する。クライアントデバイス104は、ストリーミングされるフレーム115の少なくともサブセットを受信し、GPU108を用いて、受信したフレームをディスプレイ117において表示する。それゆえ、クライアントデバイス104は、視覚ゲーム情報をユーザに対して表示し、ユーザはこれに応じて、ゲームコントローラまたは他の入力デバイスを用いてさらに他の入力データを提供し、その結果、ゲームプログラム109によって維持されるゲーム状態がさらに変化し、フレームストリーム115のフレームがこれに対応して変化する。このように、クライアントデバイス104のユーザはゲームプログラム109と対話して、サーバ102において実行されるゲームをプレイする。
【0025】
ネットワーク帯域幅を節約し、クライアントデバイス104へのフレームの比較的迅速な送信を保証するために、サーバ102は、ストリーミングされるフレーム115の各々を送信前に符号化することができる。それゆえ、
図1に示される例では、GPU108は、一般に生フレーム120を符号化して、H.262(MPEG-2パート2)、MPEG-4パート2、H.264(MPEG-4パート10)、または他のビデオ符号化フォーマットなどの、指定されたビデオ符号化フォーマットに基づいて符号化フレーム122を生成するように構成されたエンコーダ121を含む。GPU108は、符号化フレーム122をネットワークインタフェース(図示せず)に提供し、ネットワークインタフェースは、ストリーミングされるフレーム115の一部として符号化フレーム122を送信する。クライアントデバイス104は、復号されたフレームをユーザに対して表示する前に、ストリーミングされるフレームの符号化されたフレームを復号するデコーダ(図示せず)を含み得る。
【0026】
場合によっては、エンコーダ処理の結果、符号化フレーム122が生フレーム120との目に見える差(または、符号化フレーム122が復号および表示されたときに目に見える差)を有することになる。これらの差は、一般に符号化アーティファクトと呼ばれ、色変化、画素化、および画像ボケなどのアーティファクトを含み得る。符号化アーティファクトは、視覚的に邪魔であるか、またはそうでなければゲームストリーミングシステム100を用いるユーザ体験に悪影響を及ぼす場合がある。場合によっては、符号化アーティファクトは、変動に基づく適応型量子化(VBAQ)と関連付けられたパラメータなどの、エンコーダ121の符号化パラメータを調整することによって低減または除去することができる。これらのパラメータ調整は、符号化フレーム内に存在する特定の符号化アーティファクトの特性を識別することによって、改善することができる。したがって、ゲームプログラム109の開発中または実行中は、開発者またはユーザがエンコーダ121の符号化パラメータに対して対応する調整を実行できるように、符号化フレーム内の符号化アーティファクトを視覚的に識別することがしばしば有用である。しかしながら、所与の符号化フレーム内の符号化アーティファクトは、符号化フレームの全体サイズに対して小さい場合があり、したがってユーザまたは開発者が視覚的に識別することは困難な場合がある。したがって、ユーザまたは開発者が符号化アーティファクトを識別するのを助けるために、GPU108は、符号化フレーム122についての符号化アーティファクトの視覚インジケータを提供するオーバーレイ125を生成するように構成されたオーバーレイジェネレータ123を含む。
【0027】
たとえば、いくつかの実施形態では、オーバーレイジェネレータ123は、生フレーム120の特徴と符号化フレーム122の特徴との間の差を識別するように構成される。本明細書において使用する画像の特徴は、画像の1つ以上の画素であり、1つの画素、エッジ、コーナー、およびオブジェクトなどの特定の視覚特徴に対応する画素のセットであってもよい。個々の画素または画素のセットなどの所与の特徴は、画素のセットにおける色、色パターン、画素化の程度、および色変動など、またはこれらの任意の組合せにおける差などの、生フレーム120と符号化フレーム122との間の異なる特性を有し得る。オーバーレイジェネレータ123は、特徴ごとに特性の差を識別し、識別された各特徴の視覚インジケータを有するように、かつ、符号化フレーム122内に任意の符号化アーティファクトを示すように、オーバーレイ125を生成する。
【0028】
いくつかの実施形態では、オーバーレイジェネレータ123は、色減算を用いて符号化アーティファクトを識別する。たとえば、オーバーレイジェネレータ123は、符号化フレーム122の各画素の色値を生フレーム120の対応する画素の色値から減算して(またはその逆の減算を行い)、画素ごとに色差を識別し、識別した色差に基づいてオーバーレイ125を生成することができる。他の実施形態では、オーバーレイジェネレータ123は、符号化フレーム122の画素のセットと生フレーム120の対応する画素のセットとの間のボケ量の差を識別することによって、符号化アーティファクトを識別する。いくつかの実施形態では、オーバーレイジェネレータ123は、所与の画素セット内の画素の値の変動に基づいて、当該セットと関連付けられたボケ量を求める。したがって、符号化フレーム122および生フレーム120の対応する画素セット同士の間のボケ量の差は、対応する画素セットの変動の差に基づく。
【0029】
いくつかの実施形態では、オーバーレイ125のサイズは符号化フレーム122のサイズに対応し、GPU108は、ある特徴の視覚インジケータを、当該インジケータが符号化フレーム122のうちの1つにおける対応する符号化アーティファクトの場所にまたはその近くに位置決めされるように位置決めするので、オーバーレイおよび符号化フレーム122が共に表示されると、視覚インジケータは対応する符号化アーティファクトを視覚的に強調表示する。いくつかの実施形態では、GPU108は、ある特徴について識別された符号化アーティファクトのうちの1つ以上に基づいて、当該特徴の視覚インジケータを選択する。たとえば、いくつかの実施形態では、視覚インジケータのサイズ、形状、または色、またはこれらの組合せは、対応する符号化アーティファクトの種類、大きさ、またはこれらの組合せを示す。それゆえ、たとえば、場合によっては、視覚インジケータの特定の色は、画素色の差などの、ある種類の符号化アーティファクトを示すのに対して、視覚インジケータの異なる色は、色または画素変動の差などの、異なる種類の符号化アーティファクトを示す。
【0030】
いくつかの実施形態では、GPU108は、表示デバイス(
図1には図示せず)での表示用に、フレーム122およびオーバーレイ125を1つのフレームに合成する。したがって、合成フレームが表示されると、オーバーレイ125の視覚インジケータは、符号化フレーム122と関連付けられた符号化アーティファクトの不連続性そのものが裸眼で見るのが困難または不可能な場合であっても、これらの符号化アーティファクトを視覚的に示す。ゲームプログラム109の開発者は、エンコーダ121の符号化パラメータを調整して、識別された符号化アーティファクトにさらに良好に対処し、かつ、クライアントデバイス104における全体的なゲーム体験を改善することができる。
【0031】
図2は、いくつかの実施形態に係る、フレーム120および122の特徴230と関連付けられた符号化アーティファクトの例を示す。図示される例では、特徴230は、生フレーム120では塗りつぶされずに示されているが、符号化フレーム122では網掛けで塗りつぶされており、特徴230が符号化フレーム122において符号化アーティファクトを有することを示している。したがって、特徴230は、個々の画素、画素のセット、およびオブジェクトのコーナーまたはオブジェクトのエッジなどの視覚特徴などの、符号化アーティファクトを有し得る任意の視覚特徴であってもよい。
【0032】
図3は、いくつかの実施形態に係る、特徴230の視覚インジケータ335を提供するオーバーレイ125の例を示す。図示される例では、オーバーレイをフレームと区別するために、オーバーレイ125は破線の輪郭で示されており、フレーム122からわずかにずれて描かれている。しかしながら、GPU116は、フレーム122とオーバーレイ125とがディスプレイ117において共に効果的に表示されるように、表示用に、オーバーレイ125をフレーム122と合成することができることが理解されるであろう。特に、インジケータ335は、関連付けられた不連続性の視覚インジケータを提供するために、特徴230の上または近くに表示される。
【0033】
異なる実施形態では、インジケータ335は、特徴230と関連付けられた不連続性の種類、不連続性の大きさ、および不連続性の特定の特性(たとえば、位置の不連続性と関連付けられた空間方向)などのうちの1つ以上、またはこれらの任意の組合わせを示す色、形状、テクスチャ、情報テキスト、アイコン、または他の視覚インジケータ、またはこれらの組合わせである。たとえば、位置の不連続性の場合、インジケータ335は、位置の不連続性のサイズおよび方向を示す線または矢印であってもよい。
【0034】
場合によっては、符号化フレーム122の複数の特徴は、符号化アーティファクトと関連付けられている。たとえば、場合によっては、符号化フレーム122のいくつかの特徴は、生フレーム120に対する色変動を有するのに対して、他の特徴は、生フレーム120に対するボケ量の変化を有する。いくつかの実施形態では、GPU116は、符号化フレーム122の符号化アーティファクトごとに視覚インジケータを含むようにオーバーレイ125を生成する。いくつかの実施形態に係る例が
図4に示されている。図示される例では、生フレーム120は複数の特徴を含み、各特徴は、対応する塗りつぶされてない円によって示されている。符号化フレーム122は、灰色に塗りつぶされた円によって示されている、各特徴と関連付けられた符号化アーティファクトを含む。オーバーレイ125は、黒色に塗りつぶされた円によって示されている、符号化アーティファクトごとの視覚インジケータを含む。
【0035】
各視覚インジケータの種類。したがって、各視覚インジケータは、対応する特徴と関連付けられた符号化アーティファクトの種類を視覚的に示す、異なるサイズ、色、形状、向き、テキスト情報、およびアイコンなど、またはこれらの組合わせなどの、異なる特性を有し得る。たとえば、いくつかの実施形態では、ある視覚インジケータは、特徴が色変動アーティファクトと関連付けられていることを示すために赤色であるのに対して、別の視覚インジケータは、対応する特徴440を示すために青色を有する。
【0036】
いくつかの実施形態では、視覚インジケータの種類、または視覚インジケータのサイズ、色、もしくは形状などのその特性は、関連付けられた符号化アーティファクトの大きさを示す。たとえば、いくつかの実施形態では、ある色の視覚インジケータは、符号化フレーム122と生フレーム120との間のある変動の程度を示し、異なる色の視覚インジケータは、符号化フレーム122と生フレーム120との間の異なる変動の程度を示す。それゆえ、
図4の例では、オーバーレイ125は複数の符号化アーティファクトの視覚インジケータを含み、各視覚インジケータは、関連付けられた符号化アーティファクトの種類、大きさ、および他の特性を示し得る。
【0037】
いくつかの実施形態では、オーバーレイジェネレータ123は、所与の符号化アーティファクトと関連付けられたフレーム差が閾値を超えた場合にのみ、その符号化アーティファクトの視覚インジケータを生成する。たとえば、オーバーレイジェネレータ123は、符号化フレーム122の画素と生フレーム120の画素との間の画素値差に基づいて符号化アーティファクトを識別することができる。画素値差が閾値を超えていることに応じて、オーバーレイジェネレータ123は、オーバーレイ125を介して表示する符号化アーティファクトの視覚インジケータを生成する。画素値差が閾値未満であることに応じて、オーバーレイジェネレータ123は、オーバーレイ125から符号化アーティファクトの視覚的インジケータを省く。オーバーレイジェネレータ123はそれによって、見えにくい符号化アーティファクトの視覚識別子を省き、見やすい視覚符号化アーティファクトに開発者が焦点を合わせることができるようにする。いくつかの実施形態では、オーバーレイジェネレータ123は、フレームがゲームプログラム109のシーン変化と関連付けられているなどの指定されたイベントに応じて、閾値の大きさを変えることができる。
【0038】
いくつかの実施形態では、視覚インジケータの色、輝度、または強度は、対応する符号化アーティファクトと関連付けられた差の大きさに基づく。たとえば、いくつかの実施形態では、オーバーレイジェネレータ123はオーバーレイ125をヒートマップとして生成し、このヒートマップにおいて、視覚インジケータの各画素の強度は、対応する符号化アーティファクトと関連付けられた差の大きさに対応する。
【0039】
いくつかの実施形態では、オーバーレイジェネレータ123は、符号化フレーム122の対応する部分の色または他の特性に基づく色または他の特性を有するように視覚インジケータを生成する。たとえば、オーバーレイジェネレータ123は、符号化アーティファクトに対応する符号化フレームの画素のうちの1つ以上の画素値を反転させることによって、視覚インジケータを生成することができる。いくつかの実施形態では、オーバーレイジェネレータ123は、符号化アーティファクトに対応する画素の指定された画素半径内のすべての画素を反転させる。さらに他の実施形態では、視覚インジケータは、関連付けられた符号化アーティファクトの特性を識別するテキスト情報を含み得る。
【0040】
図6は、いくつかの実施形態に係る、オーバーレイジェネレータ123のブロック図である。オーバーレイジェネレータ123は、異なる実施形態では、サーバ102のCPU106およびGPU108のうちの1つ以上において実行されるソフトウェアモジュールであってもよい。他の実施形態では、オーバーレイジェネレータ123の1つ以上のアスペクトは、サーバ102の専用ハードウェアによって実現される。
【0041】
図示される例では、オーバーレイジェネレータ123は、色減算モジュール652およびボケ検出モジュール654を含む。色減算モジュール652は、生フレーム120および符号化フレーム122に基づいて色減算処理を実行するように構成される。たとえば、いくつかの実施形態では、色減算モジュール652は、生フレーム120の各画素の画素色値を符号化フレームの対応する画素の画素色値から減算する。所与の画素についての色差に基づいて、色減算モジュール652は、オーバーレイ125の対応する画素に色値を割当てる。たとえば、いくつかの実施形態では、画素と関連付けられた差が第1の範囲内にある場合、色減算モジュール652は、オーバーレイ125の対応する画素に第1の色を割当て、画素と関連付けられた差が第2の異なる範囲内にある場合、色減算モジュール652は、オーバーレイ125の対応する画素に第2の異なる色を割当てる。オーバーレイ125の色はそれによって、画素ごとに生フレーム120と符号化フレーム122との間の色差を示す。
【0042】
ボケ検出モジュール654は、画素の指定されたセクションについて、生フレーム120と符号化フレーム122との間のボケの程度の差を求めるように構成される。例示すると、いくつかの実施形態では、ボケ検出モジュール654は、指定されたサイズ(画素数)および形状のウィンドウを生フレーム120および符号化フレーム122に適用し、適用したウィンドウについてボケの程度の差を求め、次いで、ウィンドウを別の画素セットにシフトする。たとえば、いくつかの実施形態では、ボケ検出モジュール654はN×Nウィンドウを使用し、Nは整数の画素である。いくつかの実施形態では、ボケ検出モジュール654は、ウィンドウ内の最も明るい画素と最も暗い画素との間の差などの、ウィンドウについての画素変動を求めることによって、ウィンドウについてのボケの程度を求める。ボケの程度の差を求めるために、ボケ検出モジュール654は、ウィンドウの画素値のパワースペクトルを求めることによって、当該ウィンドウについてのボケの程度を求め、ボケの程度はパワースペクトルの空間周波数によって示される。
【0043】
所与のウィンドウについてのボケ差に基づいて、色減算モジュール652は、オーバーレイ125の対応する画素に色値を割当てる。たとえば、いくつかの実施形態では、ウィンドウと関連付けられたボケ差が第1の範囲内にある場合、色減算モジュール652は、オーバーレイ125の対応する画素に第1の色を割当て、画素と関連付けられたボケ差が第2の異なる範囲内にある場合、色減算モジュール652は、オーバーレイ125の対応する画素に第2の異なる色を割当てる。色減算処理と同様に、オーバーレイ125の色はそれによって、ウィンドウごとに生フレーム120と符号化フレーム122との間のボケ差を示す。
【0044】
図
7は、いくつかの実施形態に係る、ゲームストリームのフレームについての符号化アーティファクトを示す視覚インジケータと共にオーバーレイを生成する方法700のフロー図を示す。本説明において、方法700は、
図1のゲームストリーミングシステム100における実現例に関して説明される。ブロック702において、エンコーダ121は、生フレーム120を符号化して符号化フレーム122を生成する。ブロック704において、オーバーレイジェネレータ123は、色差およびボケ程度の差などの、符号化フレーム122と生フレーム120との間の差を識別する。ブロック706において、オーバーレイジェネレータ123は、ブロック704において識別した差に基づいて、符号化アーティファクトを識別する。ブロック
708において、オーバーレイジェネレータ123は、ブロック704において識別した符号化アーティファクトの視覚インジケータを含むようにオーバーレイ125を生成する。ブロック708において、GPU108は、オーバーレイ125を符号化フレーム122と合成し、合成したフレームを表示用に表示デバイスに送信することにより、ユーザが、符号化フレーム内の符号化アーティファクトを素早く視覚的に識別し、エンコーダ121についての符号化パラメータの調整を行うことができるようにする。
【0045】
いくつかの実施形態では、上記技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実現されてもよい。ソフトウェアは、非一時的なコンピュータ読取可能記憶媒体上に格納されたまたはそうでなければ有形に実現された実行可能な命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると1つ以上のプロセッサを操作して上記技術の1つ以上の態様を実施する命令および特定のデータを含み得る。非一時的なコンピュータ読取可能記憶媒体は、たとえば、磁気もしくは光ディスク記憶装置、フラッシュメモリなどのソリッドステート記憶装置、キャッシュ、ランダムアクセスメモリ(RAM)、またはその他の1つもしくは複数の不揮発性メモリデバイスなどを含み得る。非一時的なコンピュータ読取可能記憶媒体に格納された実行可能な命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または、1つ以上のプロセッサによって解釈されるもしくはそうでなければ実行可能な他の命令フォーマットであってもよい。
【0046】
コンピュータ読取可能記憶媒体は、使用中にコンピュータシステムによってアクセスされて命令および/またはデータをコンピュータシステムに提供することが可能な、任意の記憶媒体、または記憶媒体の組み合わせを含み得る。このような記憶媒体は、光媒体(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、Blu-Ray(登録商標)ディスク)、磁気媒体(たとえば、フロッピー(登録商標)ディスク、磁気テープ、もしくは磁気ハードドライブ)、揮発性メモリ(たとえば、ランダムアクセスメモリ(RAM)もしくはキャッシュ)、不揮発性メモリ(たとえば、読出し専用メモリ(ROM)もしくはフラッシュメモリ)、または微小電子機械システム(MEMS)ベースの記憶媒体を含み得るが、これらに限定されない。コンピュータ読取可能記憶媒体は、コンピューティングシステムに埋め込まれたものであってもよく(たとえば、システムRAMもしくはROM)、コンピューティングシステムに固定的に装着されたものであってもよく(たとえば、磁気ハードドライブ)、コンピューティングシステムに着脱可能に装着されたものであってもよく(たとえば、光ディスクもしくはユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)、または有線もしくは無線ネットワークを介してコンピュータシステムに結合されたものであってもよい(たとえば、ネットワークアクセス可能記憶装置(NAS))。
【0047】
なお、全体の説明における上記アクティビティまたは要素のうちのすべてが必要なわけではなく、ある特定のアクティビティまたはデバイスの一部は不要である場合があり、先に述べたものに加えて1つ以上の他のアクティビティが実行されるまたは要素が含まれる場合がある。またさらに、アクティビティの記載順序は必ずしもアクティビティの実行順序とは限らない。また、特定の実施形態に言及しながら概念を説明した。しかしながら、当業者は、以下の請求項に記載の本開示の範囲から逸脱することなく各種修正および変更を行うことができることを理解する。したがって、明細書および図面は、限定的な意味ではなく例示とみなされるべきものであり、このような修正はすべて本開示の範囲に含まれることが意図されている。
【0048】
利益、その他の利点、および問題解決策を、特定の実施形態に関して上に説明した。しかしながら、これらの利益、利点、問題解決策、および、何らかの利益、利点または解決策を生じさせ得るまたはより際立ったものにし得る何らかの特徴(複数可)は、請求項のうちのいずれかまたはすべての、決定的な、必要な、または不可欠な特徴と解釈されることを意図したものではない。さらに、上に開示された特定の実施形態は例示にすぎない。なぜなら、開示されている主題は、本明細書の教示の利益を享受する当業者にとって明白である、異なっているが均等である態様で修正および実施され得るからである。以下の請求項に記載されているもの以外の、本明細書に示される構成または設計の詳細に対する限定は意図されていない。したがって、上に開示された特定の実施形態は変更または修正が可能であり、このような変形がすべて開示されている主題の範囲に含まれることは、明らかである。したがって、本明細書において求める保護は以下の請求項に記載の通りである。