(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-06
(54)【発明の名称】ラグ検出方法、装置、機器及びコンピュータプログラム
(51)【国際特許分類】
G06T 7/254 20170101AFI20230227BHJP
【FI】
G06T7/254 A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022539027
(86)(22)【出願日】2021-05-10
(85)【翻訳文提出日】2022-06-23
(86)【国際出願番号】 CN2021092621
(87)【国際公開番号】W WO2021244224
(87)【国際公開日】2021-12-09
(31)【優先権主張番号】202010494870.4
(32)【優先日】2020-06-03
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲張▼ ▲勝▼▲龍▼
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA08
5L096DA02
5L096FA14
5L096GA08
5L096GA51
5L096HA02
(57)【要約】
本願は、ラグ検出方法、装置、機器及び読取可能な記憶媒体を開示し、ラグ検出分野に関する。該方法は、プログラムの実行中の第1画像フレームと第2画像フレームを取得するステップと、第1画像フレームと第2画像フレームとの差分画像をグレースケール画像に変換するステップと、グレースケール画像における画素点のグレースケール値に基づいて、第1画像フレームと第2画像フレームとの間の表示時間長内で、アプリケーションの実行時のラグ状況を決定するステップと、を含む。プロセスビデオにおける2フレームの画像フレーム間の差分画像をグレースケール画像に変換し、グレースケール画像によって、2フレームの画像フレーム間のラグ状況を決定する。端末のアプリケーションプログラムの実行中のFPS値を取得する必要がなく、ラグ状況を決定することができ、即ち、アプリケーションなどのようなクラウドアプリケーションプログラムに対してもラグ状況を正確に決定することもでき、ラグ検出の正確率及び検出プロセスの適応性を向上させた。
【特許請求の範囲】
【請求項1】
コンピュータ機器が実行する、ラグ検出方法であって、
ユーザ端末におけるアプリケーションの実行中で表示される第1画像フレームと第2画像フレームを取得するステップであって、前記第1画像フレームと前記第2画像フレームは、前記アプリケーションの実行中における表示画面に対応する画像フレームである、ステップと、
前記第1画像フレームと前記第2画像フレームとの差分画像を取得するステップであって、前記差分画像は、前記第1画像フレームと前記第2画像フレームとの対応する画素点間の相違度を表す、ステップと、
前記差分画像をグレースケール画像に変換するステップであって、前記グレースケール画像は、複数の画素点を含む、ステップと、
前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するステップと、を含むことを特徴とする、ラグ検出方法。
【請求項2】
前記第1画像フレームと前記第2画像フレームとの差分画像を取得するステップは、
前記第1画像フレームに対応する第1画素値行列及び前記第2画像フレームに対応する第2画素値行列を決定するステップと、
前記第1画素値行列と前記第2画素値行列を減算し、前記差分画像を得るステップであって、前記差分画像は、差分行列の形式で表現され、前記差分行列に、前記画素点間の相違度に対応する差分画素値が含まれる、ステップと、を含むことを特徴とする
請求項1に記載の方法。
【請求項3】
前記差分画像をグレースケール画像に変換するステップは、
前記差分画像に対応する前記差分行列における前記差分画素値を取得するステップと、
前記差分画素値をグレースケール値に変換し、前記グレースケール画像を得るステップであって、前記グレースケール画像は、グレースケール値行列の形式で表現される、ステップと、を含むことを特徴とする
請求項2に記載の方法。
【請求項4】
前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するステップは、
前記グレースケール画像から、前記画素点の最大グレースケール値を決定するステップと、
前記最大グレースケール値がグレースケール要件よりも小さいことに応答して、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で前記アプリケーションの実行時にラグが存在すると決定するステップと、を含むことを特徴とする
請求項1から3のうちいずれか一項に記載の方法。
【請求項5】
アプリケーションの実行中の第1画像フレームと第2画像フレームを取得するステップは、
前記アプリケーションの実行中で録画によって得られたプロセスビデオを取得するステップと、
前記プロセスビデオから、前記第1画像フレームと前記第2画像フレームを取得するステップであって、前記第1画像フレームと前記第2画像フレームとの間隔フレーム数は、フレーム数要件よりも小さい、ステップと、を含むことを特徴とする
請求項1から3のうちいずれか一項に記載の方法。
【請求項6】
前記方法は、
前記プロセスビデオに対応する第1配列を作成するステップであって、前記第1配列は、画像フレームに対応するラグ状況を記録するためのものである、ステップと、
前記第1画像フレームと前記第2画像フレームとの間の前記ラグ状況に基づいて、前記第1配列における、前記第1画像フレームに対応する要素位置に値を割り当てるステップと、
前記第1配列における要素の値の割り当て状況に基づいて、前記アプリケーションの実行中のラグ状況を決定するステップと、を更に含むことを特徴とする
請求項5に記載の方法。
【請求項7】
前記第1画像フレームと前記第2画像フレームとの間の前記ラグ状況に基づいて、前記第1配列における、前記第1画像フレームに対応する要素位置に値を割り当てるステップは、
前記第1画像フレームと前記第2画像フレームとの間にラグが存在することに応答して、前記第1配列における、前記第1画像フレームに対応する要素位置に、第1値を割り当てるステップと、
前記第1画像フレームと前記第2画像フレームとの間にラグが存在しないことに応答して、前記第1配列における、前記第1画像フレームに対応する要素位置に、第2値を割り当てるステップと、を含むことを特徴とする
請求項6に記載の方法。
【請求項8】
前記第1配列における要素の値の割り当て状況に基づいて、前記アプリケーションの実行中のラグ状況を決定するステップは、
前記プロセスビデオに対応する第2配列を作成するステップであって、前記第2配列は、前記プロセスビデオにおいてラグが出現する時間帯を記録するためのものである、ステップと、
前記第1配列における要素に対して走査を行うステップと、
前記第1配列における要素が前記第1値であることに応答して、前記プロセスビデオにおける、前記要素位置に対応する時間帯を決定するステップと、
前記時間帯を要素の値として前記第2配列における要素に値を割り当てるステップと、
前記第2配列において値が割り振られた時間帯総長が前記プロセスビデオ総長に対して占める割合に基づいて、前記アプリケーションの実行中のラグ状況を決定するステップと、を含むことを特徴とする
請求項7に記載の方法。
【請求項9】
前記アプリケーションは、クラウドゲームアプリケーションと、リアルタイムビデオアプリケーションと、ナビゲーションアプリケーションと、のうちの1つであることを特徴とする
請求項1に記載の方法。
【請求項10】
ラグ検出装置であって、取得モジュールと、変換モジュールと、決定モジュールを含み、
前記取得モジュールは、ユーザ端末におけるアプリケーションの実行中で表示される第1画像フレームと第2画像フレームを取得するように構成され、前記第1画像フレームと前記第2画像フレームは、前記アプリケーションの実行中における表示画面に対応する画像フレームであり、
前記取得モジュールは更に、前記第1画像フレームと前記第2画像フレームとの差分画像を取得するように構成され、前記差分画像は、前記第1画像フレームと前記第2画像フレームとの対応する画素点間の相違度を表し、
前記変換モジュールは、前記差分画像をグレースケール画像に変換するように構成され、前記グレースケール画像は、複数の画素点を含み、
前記決定モジュールは、前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するように構成されることを特徴とする、ラグ検出装置。
【請求項11】
前記決定モジュールは更に、前記第1画像フレームに対応する第1画素値行列及び前記第2画像フレームに対応する第2画素値行列を決定するように構成され、
前記取得モジュールは更に、前記第1画素値行列と前記第2画素値行列を減算し、前記差分画像を得るように構成され、前記差分画像は、差分行列の形式で表現され、前記差分行列に、前記画素点間の相違度に対応する差分画素値が含まれることを特徴とする
請求項10に記載の装置。
【請求項12】
前記取得モジュールは更に、前記差分画像に対応する前記差分行列における前記差分画素値を取得するように構成され、
前記変換モジュールは更に、前記差分画素値をグレースケール値に変換し、前記グレースケール画像を得るように構成され、前記グレースケール画像は、グレースケール値行列の形式で表現されることを特徴とする
請求項11に記載の装置。
【請求項13】
前記決定モジュールは更に、前記グレースケール画像から、前記画素点の最大グレースケール値を決定するように構成され、
前記決定モジュールは更に、前記最大グレースケール値がグレースケール要件よりも小さいことに応答して、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で前記アプリケーションの実行時にラグが存在すると決定するように構成されることを特徴とする
請求項10から12のうちいずれか一項に記載の装置。
【請求項14】
コンピュータ機器であって、前記コンピュータ機器は、プロセッサと、メモリと、を備え、前記メモリに、少なくとも1つの命令、少なくとも1つのプログラム、コード集合又は命令集合が記憶されており、前記少なくとも1つの命令、前記少なくとも1つのプログラム、前記コード集合又は命令集合は、前記プロセッサによりロードされて実行され、請求項1から8のうちいずれか一項に記載のラグ検出方法を実現することを特徴とする、コンピュータ機器。
【請求項15】
コンピュータ読取可能な記憶媒体であって、前記コンピュータ読取可能な記憶媒体に、少なくとも1つの命令、少なくとも1つのプログラム、コード集合又は命令集合が記憶されており、前記少なくとも1つの命令、前記少なくとも1つのプログラム、前記コード集合又は命令集合は、前記プロセッサによりロードされて実行され、請求項1から8のうちいずれか一項に記載のラグ検出方法を実現することを特徴とする、コンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2020年06月03日に中国特許庁に提出された、出願番号が202010494870.4であり、発明名称が「ラグ検出方法、装置、機器及び読取可能な記憶媒体」である中国特許出願に基づく優先権を主張し、該中国特許出願の全内容が参照として本願に組み込まれる。
【0002】
本願の実施例は、ラグ検出分野に関し、特にラグ検出方法、装置、機器及び読取可能な記憶媒体に関する。
【背景技術】
【0003】
ラグ(LAG)検出は、ビデオ再生又はゲーム中において、伝送遅延、演算遅延などによって発生するラグ問題に対して検出を行うプロセスであり、ラグ問題は、ユーザに視覚的な不連続感を生じさせ、そのため、ビデオ再生又はゲーム中における視覚的体験が悪い。
【0004】
関連技術において、ラグの検出は、画面の1秒あたりの伝送フレーム数(Frames Per Second:FPS)によって決定するか、又は、グラフィックカードのレンダリング間隔に基づいて算出される。FPSが閾値よりも低いか又はグラフィックカードのレンダリングディレーティングが閾値より高い時、ラグが生じたと見なす。
【0005】
しかしながら、いくつかのリアルタイムビデオの表示シーンにおいて、クラウド側の機器自体で生じたラグによって、端末に伝送されて復号、再生されるビデオストリーム自体にラグ現象が存在する。上記方式で、ラグ検出を行う時、ラグ状況を検出できることがなく、これによって、ラグ検出の正確率が比較的に低い。
【発明の概要】
【課題を解決するための手段】
【0006】
本願の実施例は、ラグ検出の正確率を向上させることができるラグ検出方法、装置、機器及び読取可能な記憶媒体を提供する。前記技術的解決手段は、以下のとおりである。
【0007】
一方面によれば、コンピュータ機器が実行するラグ検出方法を提供する。前記方法は、
ユーザ端末におけるアプリケーションの実行中で表示される第1画像フレームと第2画像フレームを取得するステップであって、前記第1画像フレームと前記第2画像フレームは、前記アプリケーションの実行中における表示画面に対応する画像フレームである、ステップと、
前記第1画像フレームと前記第2画像フレームとの差分画像を取得するステップであって、前記差分画像は、前記第1画像フレームと前記第2画像フレームとの対応する画素点間の相違度を表す、ステップと、
前記差分画像をグレースケール画像に変換するステップであって、前記グレースケール画像は、複数の画素点を含む、ステップと、
前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するステップと、を含む。
【0008】
別の方面によれば、ラグ検出装置を提供する。前記装置は、
ユーザ端末におけるアプリケーションの実行中で表示される第1画像フレームと第2画像フレームを取得するように構成される取得モジュールであって、前記第1画像フレームと前記第2画像フレームは、前記アプリケーションの実行中における表示画面に対応する画像フレームであり、
前記取得モジュールは更に、前記第1画像フレームと前記第2画像フレームとの差分画像を取得するように構成され、前記差分画像は、前記第1画像フレームと前記第2画像フレームとの対応する画素点間の相違度を表す、取得モジュールと、
前記差分画像をグレースケール画像に変換するように構成される変換モジュールであって、前記グレースケール画像は、複数の画素点を含む、変換モジュールと、
前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するように構成される決定モジュールと、を備える。
【0009】
別の方面によれば、コンピュータ機器を提供する。前記コンピュータ機器は、プロセッサと、メモリと、を備え、前記メモリに、少なくとも1つの命令、少なくとも1つのプログラム、コード集合又は命令集合が記憶されており、前記少なくとも1つの命令、前記少なくとも1つのプログラム、前記コード集合又は命令集合は、前記プロセッサによりロードされて実行され、上記実施例で提供されるラグ検出方法を実現する。
【0010】
別の方面によれば、コンピュータ読取可能な記憶媒体を提供する。前記コンピュータ読取可能な記憶媒体に、少なくとも1つの命令、少なくとも1つのプログラム、コード集合又は命令集合が記憶されており、前記少なくとも1つの命令、前記少なくとも1つのプログラム、前記コード集合又は命令集合は、前記プロセッサによりロードされて実行され、上記実施例で提供されるラグ検出方法を実現する。
【0011】
別の方面によれば、コンピュータプログラム製品を提供する。前記コンピュータプログラム製品がコンピュータで実行される時、コンピュータに、上記本願の実施例で提供されるラグ検出方法を実行させる。
【0012】
本願の実施例で提供される技術的解決手段による有益な効果は、少なくとも以下を含む。
【0013】
プロセスビデオにおける2フレームの画像フレーム間の差分画像をグレースケール画像に変換し、グレースケール画像によって、2フレームの画像フレーム間のラグ状況を決定する。端末のアプリケーションプログラムの実行中のFPS値を取得する必要がなく、ラグ状況を決定することができ、即ち、クラウドゲームなどのクラウドアプリケーションプログラムに対してもラグ状況を正確に決定することもでき、ラグ検出の正確率及び検出プロセスの適応性を向上させた。
【図面の簡単な説明】
【0014】
【
図1A】本願の技術的解決手段が適用されるネットワーク構造の例を示す概略図である。
【
図1B】本願の一例示的な実施例によるゲーム実行インタフェースにラグ検出コントロールを表示することを示す概略図である。
【
図2】本願の一例示的な実施例によるラグ検出方法を示すフローチャートである。
【
図3】2に示される実施例による2フレームの画像が減算された後に得られた差分画像を示す概略図である。
【
図4】本願の別の例示的な実施例によるラグ検出方法を示すフローチャートである。
【
図5】
図4に示される実施例による差分が肉眼で判別不可能である2フレームの画像フレームに対応するグレースケール画像の画像ヒストグラムである。
【
図6】
図4に示される実施例による差分が肉眼で判別可能である2フレームの画像フレームに対応するグレースケール画像の画像ヒストグラムである。
【
図7】本願の別の例示的な実施例によるラグ検出方法を示すフローチャートである。
【
図8】本願の一例示的な実施例による第1配列に要素を充填する方案を示す全体的フローチャートである。
【
図9】本願の一例示的な実施例による第2配列に要素を充填する方案を示す全体的フローチャートである。
【
図10】本願の一例示的な実施例によるラグ検出装置の構造を示すブロック図である。
【
図11】本願の別の例示的な実施例によるラグ検出装置の構造を示すブロック図である。
【
図12】本願の一例示的な実施例による端末の構造を示すブロック図である。
【発明を実施するための形態】
【0015】
本願の実施例における技術的解決手段をより明確に説明するために、以下、実施例の説明に必要な図面を簡単に説明する。勿論、以下の図面は本願の一部の実施例に過ぎず、当業者は創造的な労力を要することなく、これらの図面に基づいて他の図面を得ることもできる。
【0016】
本願の目的、技術的解決手段及びメリットをより明確にするために、以下、図面を参照しながら、本願の実施形態をさらに詳しく説明する。
【0017】
まず、本願の実施例に係わる用語を説明する。
【0018】
クラウド技術(Cloud technology)は、ワイドエリアネットワーク又はローカルエリアネットワークで、ハードウェア、ソフトウェア、ネットワークなどの一連のリソースを統合し、データのコンピューティング、記憶、処理及び共有を実現させるホスティング技術である。これは、クラウドコンピューティングビジネスモデルに基づいて用いられるネットワーク技術、情報技術、整合技術、管理プラットフォーム技術、応用技術などの総称であり、リソースプールを構成することができ、必要に応じて利用可能であり、柔軟かつ便利である。クラウドコンピューティング技術は、重要な基盤となる。例えば、ビデオウェブサイト、画像タイプウェブサイト及びより多くのポータルサイトのような技術的ネットワークシステムのバックグラウンドサービスは、大量のコンピューティング、記憶リソースを必要とする。インターネット業界の高度な成長及び応用に伴い、将来には、各物品がいずれも自己の識別子を有する可能性があり、これらはいずれもバックグラウンドシステムに伝送されてロジック処理される。異なるレベルのデータは別々に処理される。各タイプの業界データは、いずれも強いシステムのサポートを必要とし、これは、クラウドコンピューティングのみにより実現される。
【0019】
クラウドゲームは、ゲーム自体がクラウド側サーバ機器で実行され、クラウド側機器によりレンダリングされたゲーム画面を符号化した後、ネットワークを介してユーザ端末に伝送し、ユーザ端末によって、符号化したファイルを復号した後に、ディスプレイにレンダリングして表示するゲームである。それにより、ユーザは、ローカルにゲームをインストールする必要がなく、クラウド側の通信ネットワークとの接続を確立すれば、ゲームインタラクションプロセスを遂行することができる。
【0020】
即ち、クラウドゲームのアーキテクチャに、端末と、クラウド側サーバとが含まれる。ここで、端末は、ユーザによるゲームに対する制御操作を受信し、制御操作に対応する制御命令をクラウド側サーバに送信するように構成され、クラウド側サーバは、ゲームに対して制御を行い、ゲーム中のビデオストリームを端末に送信して再生するように構成される。即ち、クラウドゲームのアーキテクチャにおいて、端末は、主に、ゲーム中のゲームビデオを再生し、そして、制御操作を受信することを担い、クラウド側サーバは、主に、ゲーム中における演算及びビデオ生成を担う。ゲームソフトウェアは、クラウド側サーバにインストールされており、端末にインストールされる必要がない。端末は、クラウド側サーバとの通信接続を確立した後、クラウドゲームを、クラウド側サーバにおいて実行するように制御することができる。
【0021】
ラグは、端末がビデオを再生するか又はゲームを実行するプロセスにおいて、視覚的に生じる不連続感であり、一般的には、端末による演算の遅延又はネットワーク遅延などの状況によって、ラグ状況の発生を引き起こす。関連技術において、画面の1秒あたりのフレーム数(Frames Per Second:FPS)によって、ラグ状況の発生を決定する。クラウドゲームシーンでは、クラウド側機器自体に発生したラグによって、クラウド側機器から端末機器に伝送されて復号、再生されたビデオストリームは、自体にラグ現象が既に存在している時、端末自体のFPSに問題がないが、依然としてラグ現象を発生する。そのため、FPSによって、該シーンにおいて発生するラグ状況を検出できない。
【0022】
グレースケール画像は、白色と黒色を対数関係に従って複数のレベルに分け、グレースケールと呼ばれる。本願の実施例において、カラー画像に対してグレースケール処理を行うことで、グレースケール画像を得る。ここで、カラー画像における各画素点の赤緑青(Red Green Blue:GRB)値を式に従ってグレースケールに変換し、それにより、カラー画像に対応するグレースケール画像を得る。視覚的には、グレースケール画像は、白黒画像として表現する。例示的に、カラー画像をグレースケール画像に変換する式は、下記式1を参照する。
【0023】
式1:グレースケール値=R×0.3+G×0.59+B×0.11
【0024】
ここで、Rは、赤色チャンネルの値を表し、Gは、緑色チャンネルの値を表し、Bは、青色チャンネルの値を表す。
【0025】
上記用語の説明を参照しながら、まず、本願の実施例に係る適用シーンを説明する。
図1Aは、本願の技術的解決手段が適用されるネットワークシステムを概略図である。
図1Aに示すように、該システムは、サーバ10、ネットワーク20及び端末30~50を含む。
【0026】
サーバ10は、一般的なサーバであってもよく、クラウド側サーバであってもよい。単一のサーバであってもよく、複数のサーバからなるサーバクラスタであってもよい。
【0027】
ネットワーク20は、ダイレクトリンクから構成されるネットワークであってもよく、複数本のリンクから構成されるメッシュネットワークであってもよい。ネットワーク20におけるリンクは、有線リンク、無線リンク及びその組み合わせを含んでもよい。ネットワーク20は、プライベート通信プロトコルを用いてもよく、任意の既存の通信プロトコルを用いてもよい。
【0028】
端末30~50(ユーザ端末とも呼ばれる)は、ユーザが使用する任意のコンピューティング機器によって実現される端末である。端末30~50は、PC、ノートパソコン、タブレット、スマートフォンなどを含んでもよい。ネットワークには、大量の端末が存在してもよく、例示を目的として、
図1Aには、3つの端末がのみ示される。
【0029】
本願の実施例によるラグ検出方法の適用シーンは、以下のシーンのうちの少なくとも1つを含む。
【0030】
第1、ゲームの実行中において、ゲームの実行に対して画面録画を行い、ゲームプロセスビデオを得る。ゲームプロセスビデオにおける隣接する画像フレーム間の類似度を決定し、隣接する画像フレーム間の類似度に基づいて、ゲームプロセスビデオにラグが生じたかどうかを決定することによって、ゲームプロセス自体にラグが生じたかどうかを判定し、ゲームプロセスにラグが生じた場合、ラグ状況に対してすぐに修復を行う。
【0031】
ここで、上記ゲームは、一般的なゲームとして実現してもよく、クラウドゲームとして実現してもよく、本願の実施例は、これを限定しない。そして、上記ゲームは、例えば一人称シューティングゲーム(First Person Shooting Game:FPS)、マルチプレイヤーオンラインバトルアリーナ(Multiplayer Online Battle Arena Games:MOBA)、マルチプレイヤーシューティングサバイバルゲーム、バトルロイヤル型シューティングゲームなどとして実現してもよい。
【0032】
この場合、サーバ10は、ゲームサーバであってもよく、端末30~50においてゲームアプリケーションを実行してもよく、これは、ネットワーク20を介してサーバ10と通信することによって、ゲームデータを交換する。
【0033】
一実施例において、クラウドゲームの実行中において、クラウド側サーバによって演算を行い、演算によって得られたビデオストリームを端末に伝送して再生し、即ち、端末は、クラウドゲームの実行中において、主にビデオ再生を担い、クラウドゲームの実行中において、端末のコンピューティング能力に対して非常に高い要件を求めることがなく、ゲームビデオの再生プロセスにおいてラグ状況が発生しにくい。しかしながら、ゲーム実行中において、クラウド側サーバの演算量が比較的大きく、ラグ状況が発生しやすく、それによりクラウド側サーバによって生成されるビデオストリーム自体は、ラグ状況が存在するビデオストリームになり、それに対して、端末がビデオストリームを再生するプロセスにおいて、端末によるラグが存在せず、即ち、上記FPSによって、クラウドゲームの実行中のラグ状況を正確に検出できない。本願の実施例において、クラウドゲーム実行中のプロセスビデオに対して画像フレームの収集を行い、画像フレーム間の相違度に基づいて、クラウドゲームの実行中にラグが生じたかどうかを検出することで、ラグ検出の正確率を向上させた。
【0034】
例示的に、
図1を参照すると、ゲーム実行インタフェース100に、ラグ検出コントロール110が表示されており、これは、現在では端末がゲームプロセスに対して録画を行い、録画によって得られたゲームプロセスビデオに基づいてゲームにラグが生じたかどうかを検出することを表すためのものである。
【0035】
第2、ビデオ通信アプリケーション(例えば、インスタント通信プログラム、オンラインビデオアプリケーションなど)において、ビデオ受信側のビデオ通信プロセスに対して録画を行い、通信プロセスビデオを得る。通信プロセスビデオにおける隣接する画像フレーム間の類似度を決定し、隣接する2フレームの画像フレーム間の類似度に基づいて、ビデオ通信プロセスにラグが生じたかどうかを決定することによって、ビデオ通信プロセス自体にラグが生じたかどうかを判定し、ビデオ通信プロセスにラグが存在する時、ユーザに対してラグ状況を提示し、修復アドバイスを提供する。
【0036】
この場合、サーバ10は、ビデオ通信サーバであってもよく、端末30~50においてビデオ通信アプリケーションを実行してもよく、これは、ネットワーク20を介してサーバ10と通信することによって、サーバ10又は他の端末から、ビデオデータを取得する。
【0037】
第3、ナビゲーションプログラムによるナビゲーションプロセスにおいて、ナビゲーションプロセスに対して画面録画を行い、ナビゲーションプロセスビデオを得る。ナビゲーションプロセスビデオにおける隣接する画像フレーム間の類似度を決定し、隣接する2フレームの画像フレーム間の類似度に基づいて、ナビゲーションプロセスビデオにラグが生じたかどうかを決定することによって、ナビゲーションプロセス自体にラグが生じたかどうかを判定し、ナビゲーションプロセスにラグが生じた場合、ラグ状況を修復し、ナビゲーションがルートから外れることを回避する。
【0038】
この場合、サーバ10は、ナビゲーションサーバであってもよく、端末30~50においてナビゲーションアプリケーションを実行してもよく、これは、ネットワーク20を介してサーバ10と通信することによって、サーバ10からナビゲーションデータを取得する。
【0039】
上記応用シーンは、本願の実施例における例示的な例だけであり、本願の実施例によるラグ検出方法は、ビデオ録画によって、画像フレーム間の類似度に基づいてラグ検出を行う任意のシーンに用いることができ、本願の実施例は、これを限定しない。
【0040】
本願の実施例によるラグ検出方法は、端末によって実現してもよく、サーバによって実現してもよく、端末とサーバによって協働して実現してもよい。ここで、端末は、スマートフォン、タブレット、携帯型ラップトップノートパソコン、デスクトップコンピュータ、スマートスピーカー、スマートウェアラブルデバイスなどの端末のうちの少なくとも1つを含み、サーバは、物理的サーバであってもよく、クラウドコンピューティングサービスを提供するクラウド側サーバであってもよく、そして、サーバは、1台のサーバとして実現してもよく、複数のサーバからなるサーバクラスタ又は分散型システムであってもよい。ここで、端末とサーバが協働して本願の実施例による方案を実現する時、端末とサーバは、有線又は無線通信方式で直接的又は間接的接続を行ってもよく、本願の実施例は、これを限定しない。
【0041】
上記用語に関する説明及びシーンに関する説明を参照しながら、本願の実施例によるラグ検出方法を説明する。
図2は、本願の一例示的な実施例によるラグ検出方法を示すフローチャートである。該方法がサーバに応用されることを例として説明すると、
図2に示すように、該方法は、以下を含む。
【0042】
ステップ201において、ユーザ端末におけるアプリケーションの実行中で表示される第1画像フレームと第2画像フレームを取得し、第1画像フレームと第2画像フレームは、アプリケーションの実行中における表示画面に対応する画像フレームである。
【0043】
各実施例において、前記アプリケーションは、クラウドゲームアプリケーション、リアルタイムビデオアプリケーション、ナビゲーションアプリケーション、又はリアルタイムネットワークデータ伝送によって動的画像表示を行う他のアプリケーションのうちの1つである。
【0044】
一実施例において、第1画像フレームと第2画像フレームとの表示間隔時間長は、時間長要件よりも小さく、即ち、第1画像フレームと第2画像フレームとの表示間隔時間長は、所定の時間長よりも小さい。例えば、第1画像フレームと第2画像フレームとの表示間隔時間長は、0.3秒よりも小さい。
【0045】
一実施例において、第1画像フレームと第2画像フレームを取得する時、端末の表示画面に対してスクリーンショットを行うという方式で実現してもよく、端末がアプリケーションを実行するプロセスにおけるプロセスビデオに対して録画を行うことによって、プロセスビデオから、第1画像フレームと第2画像フレームを取得することで実現してもよい。
【0046】
本願の実施例において、アプリケーションの実行に対してビデオ録画を行い、プロセスビデオを得て、プロセスビデオから、第1画像フレームと第2画像フレームを取得することを例として説明する。
【0047】
一実施例において、上記アプリケーションは、種々のアプリケーションプログラム、例えば、端末ゲーム、インスタント通信アプリケーションプログラム、ナビゲーションプログラム、マルチメディア再生プログラム、金融型アプリケーションプログラムなどのプログラムのうちの少なくとも1つであってもよい。
【0048】
本願の実施例において、クラウドゲームを例として説明する。即ち、クラウドゲームの実行中において、録画によりプロセスビデオを得る。ここで、クラウドゲームのゲーム中において、録画によりプロセスビデオを得る。即ち、ゲームアプリケーションプログラムにおけるプロセスビデオの録画は、以下の2つのケースのうちのいずれか1つを含む。
【0049】
第1、ユーザがクラウドゲームにログインした後、又は、クラウドゲームが起動された後、クラウドゲームの実行過程の録画を開始し、ユーザによるゲーム準備段階、ゲーム段階、ゲーム終了段階、又はクラウドゲームにおける他の機能使用プロセスにおけるインタフェース内容は、いずれも、プロセスビデオに録画される。
【0050】
一実施例において、クラウドゲームにおいて、ゲーム準備段階、ゲーム段階及びゲーム終了段階における演算はいずれもクラウド側サーバにより遂行されるため、ゲーム段階に加えて、ゲーム準備段階及びゲーム終了段階においていずれもクラウド側サーバによって大量の演算を行う必要がある。ゲーム準備段階において、ゲーム段階におけるプレイヤーの配置パラメータを取得する必要があり、ゲーム終了段階において、ゲーム段階におけるプレイヤーのゲーム結果を取得する必要がある。従って、ゲーム準備段階の画像フレームを取得し、ゲーム準備段階にラグが生じたかどうかを検出することで、配置パラメータの取得の正確率が低いことを回避する。ゲーム終了段階において、画像フレームを取得し、ゲーム終了段階にラグが生じたかどうかを検出することで、ゲーム結果データの取得エラーを回避する。
【0051】
第2、ユーザがクラウドゲームにログインし、ゲームを起動する操作をトリガーする時、クライドゲームの実行過程の録画を起動する。ここで、ゲーム段階は、ユーザが操作によってゲームプロセスを制御する段階である。
【0052】
一実施例において、ゲーム段階において、クラウド側サーバは、大量の論理演算と画面演算を行う必要があるため、ラグ状況が発生しやすい。ゲーム段階における画像フレームを取得し、画像フレームによってゲーム段階に対するラグ検出を行うことで、ゲーム中においてラグ状況が継続的に発生することによってゲーム体験に影響を及ぼすことを回避する。
【0053】
一実施例において、ゲームアプリケーションプログラムを例として、本願の実施例によるラグ検出方法は、ゲーム内部に適用されてもよく、ゲーム監視プラットフォームに適用されてもよいが、ゲーム監視プラットフォームは、ゲームアプリケーションプログラム自体から独立して存在する1つのプラットフォームであり、該プラットフォームによってゲーム中におけるプロセスビデオを録画し、プロセスビデオを得た後、ラグ検出を行う。一実施例において、ラグ検出方法は、独立したラグ検出プログラムに用いられてもよい。ユーザは、端末機器を用いるプロセスにおいて、必要に応じてラグ検出プログラムを起動し、ラグ検出プログラムが起動された後、アプリケーションプログラムプロセスの実行状況に応じて画面録画を開始し、録画によりプロセスビデオを得てラグ検出を行う。
【0054】
一実施例において、第1画像フレームと第2画像フレームを取得する時、端末の表面画面に対してスクリーンショットを行う方式で実現してもよく、端末がクラウドゲームを実行するプロセスにおけるプロセスビデオに対して録画を行うことによって、プロセスビデオから、第1画像フレームと第2画像フレームを取得することで実現してもよい。
【0055】
本願の実施例において、クラウドゲームの実行に対してビデオ録画を行い、プロセスビデオを得て、プロセスビデオから、第1画像フレームと第2画像フレームを得ることを例として説明する。
【0056】
一実施例において、第1画像フレームと第2画像フレームの選択方式は、以下の方式のうちの少なくとも1つを含む。
【0057】
第1、第1画像フレームと第2画像フレームは、プロセスビデオにおける隣接する2フレームであり、即ち、プロセスビデオの1フレーム目から取得を行い、プロセスビデオの1フレーム目を第1画像フレームとし、2フレーム目を第2画像フレームとし、1フレーム目と2フレームとの間でラグ検出を行い、続いて、2フレーム目を第1画像フレームとして、3フレーム目を第2画像フレームとし、2フレーム目と3フレームとの間でラグ検出を行い、このように類推する。
【0058】
一実施例において、隣接するフレームを用いてラグ検出を行う時、プロセスビデオに対してフレームごとにラグ検出を行う。これにより検出されたラグ状況はより正確である。
【0059】
第2、第1画像フレームと第2画像フレームは、プロセスビデオにおける、nフレームの間隔をあけた2フレームの画像フレームであり、nは、正の整数である。
【0060】
例えば、nが3であれば、1フレーム目を第1画像フレームとし、4フレーム目を第2画像フレームとし、1フレーム目と4フレーム目との間でラグ検出を行う。一実施例において、第1画像フレームと第2画像フレームとの間のラグ検出が完了した後、第1画像フレームの次のフレームを第1画像フレームとしてラグ検出を再び行う。又は、第2画像フレームを第1画像フレームとしてラグ検出を再び行う。又は、mフレームの間隔をあけた画像フレームを第1画像フレームとしてラグ検出を再び行い、mは正の整数である。
【0061】
第3、第1画像フレームと第2画像フレームは、プロセスビデオにおける隣接する2フレームのキーフレームであり、即ち、プロセスビデオにおける1フレーム目のキーフレームから取得し、プロセスビデオの1フレーム目のキーフレームを第1画像フレームとし、2フレーム目のキーフレームを第2画像フレームとし、1フレーム目のキーフレームと2フレーム目のキーフレームとの間でラグ検出を行い、続いて、2フレーム目のキーフレームを第1画像フレームとし、3フレーム目のキーフレームを第2画像フレームとし、2フレーム目のキーフレームと3フレーム目のキーフレームとの間でラグ検出を行い、このように類推する。
【0062】
ここで、画像フレームは、ビデオにおける最小単位の1枚の映像画面であり、時間軸では1コマ又は1コマのマークとして表現され、キーフレーム(Iフレームとも呼ばれる)は、ビデオにおける動作の転換フレームと理解されてもよく、キャラクター又は動体又は変化中の重要動作が位置する1フレームであり、キーフレームとキーフレームとの間の画像フレームは、過渡フレーム又は中間フレーム(Pフレーム又はBフレーム)と呼ばれる。
【0063】
上記第1画像フレームと第2画像フレームの決定方式は、例示的な例だけであり、本願の実施例において、他の方式で第1画像フレームと第2画像フレームの決定を行ってもよく、本願の実施例は、これを限定しない。
【0064】
ステップ202において、第1画像フレームと第2画像フレームとの差分画像を取得する。
【0065】
一実施例において、差分画像は、第1画像フレームと第2画像フレームとの対応する画素点間の相違度を表す。この場合、差分画像は、カラー形式で表現され、例えば、差分画像は、RGB画像であり、各画素点は、RGB値に対応し、差分画像に対してグレースケール処理を行うことで、差分画像に対応するグレースケール画像を得る。
【0066】
一実施例において、まず、第1画像フレームに対応する第1画素値行列及び第2画像フレームに対応する第2画素値行列を決定する。ここで、第1画素値行列を構築する時、まず、第1画像フレームにおける画素点の配列方式を決定し、次に、各画素点の画素値を決定することによって、第1画素値行列を構築する時、画素点の配列方式で行列の行と列を決定する。例えば、第1画像フレームが300×500画素であれば、第1画素値行列は、300列、500行を含み、ここで、第1画素値行列における各要素の値は、第1画像フレームにおける対応する画素点の画素値に対応する。例えば、第1画像フレームにおける120×20番目の要素の画素値が(50,50,50)であれば、第1画素値行列において、120列目20行目の要素の値は、(50,50,50)である。一実施例において、第2画素値行列の決定方式は、第1画素値行列の決定方式を参照し、そして、第1画素値行列のサイズは、第2画素値行列のサイズと一致する。
【0067】
第1画素値行列と第2画素値行列を減算し、差分画像を得る。ここで、差分画像は、差分行列の形式で表現され、差分行列に、画素点間の相違度に対応する差分画素値が含まれ、ここで、第1画素値行列と第2画素値行列がRGB画素値の形式で表現されるため、減算を行う時、対応する画素位置でのRの値、Gの値及びBの値に対してそれぞれ減算を行い、差分行列を得る。
【0068】
ステップ203において、差分画像をグレースケール画像に変換し、グレースケール画像は、複数の画素点を含む。
【0069】
一実施例において、複数の画素点のうち、各画素点は、グレースケール値に対応する。即ち、差分画像に対応する差分行列における差分画素値を取得し、差分画素値をグレースケール値に変換することによって、グレースケール画像を得る。該グレースケール画像は、グレースケール値行列の形式で表現される。ここで、単一の差分画素値に対して、上記式1で提供されるグレースケール値変換アルゴリズムを用いて、差分画素値におけるR、G、Bの値をそれぞれ式1に割り当て、グレースケール値を得る。
【0070】
一実施例において、クロスプラットフォームコンピュータビジョンライブラリ(OpenCV)におけるsubtractインタフェースによって、2フレームの画像フレームに対応する行列に対して減算を行い、OpenCVのcvtColorインタフェースによって、減算により得られた差分行列をグレースケール値行列に変換する。OpenCVにおける比較的に成熟しているインタフェースであるsubtractインタフェースとcvtColorインタフェースを用いて、しかも、簡単な行列演算のみを行っているため、上記方式で2枚の2340*1080の画像を処理するためにかかる時間は、約0.01秒であり、演算速度が比較的に速い。
【0071】
一実施例において、第1画像フレームと第2画像フレームの画素値行列に対して減算を行う時、まず、第1画像フレームと第2画像フレームの画素値行列を決定する。第1画像フレームの画素値行列を例として説明する。画素値行列のサイズは、第1画像フレームの画素数に対応し、画素値行列における各要素は、第1画像フレームにおける対応する画素点のRGB値であり、その場合、第2画像フレームの画素値行列における各要素は、第2画像フレームにおける対応する画素点のRGB値である。第1画像フレームと第2画像フレームの画素値行列を減算する時、2つの画素値行列における対応する位置での画素値を減算する。
【0072】
一実施例において、2フレームの画像に差分がなければ、減算後の行列により描画されたものは、1枚の真っ黒の画像である。差異が肉眼で判別可能である画像同士で減算した後に描画された画像において、差分領域に輝点を示し、そして、差分が大きいほど輝点が明るくなる。しかしながら、黒色の画像における画素値は、必ずしも(0,0,0)ではないが、一般的には(1,1,1)又は(2,2,2)のような、3つのチャンネルの値がいずれも比較的に小さい値である。従って、画素値(0,0,0)を、2フレームの画像の間に肉眼で判別できる差分が存在するかどうかを判定する条件としてはいけない。
【0073】
例示的に、
図3を参照すると、
図3は、本願の一例示的な実施例による同じフレームと異なるフレームの減算後に得られた差分画像を示す概略図である。
図3に示すように、同じフレームが減算された後に得られた差分画像310は、真っ黒の画像であり、異なるフレームが減算された後に得られた差分画像320に輝点が存在する。2フレームの画像の間に、収集時間差によって、表示輝度又は他の方面の差分が存在する可能性があるため、本願の実施例に係る同じフレームは、区別点が肉眼で区別できない2フレームであり、まったく同じである2フレームではない。
【0074】
本願の実施例において、カラー画像に対してグレースケール処理を行うことで、グレースケール画像を得る。ここで、カラー画像における各画素点のRGB値を式に従ってグレースケール値に変換することによって、カラー画像に対応するグレースケール画像を得る。視覚的には、グレースケール画像は、白黒画像として表現する。例示的に、カラー画像をグレースケール画像に変換する式は、上記式1に示すとおりである。
【0075】
ステップ204において、グレースケール画像における画素点のグレースケール値に基づいて、第1画像フレームと第2画像フレームとの間の表示時間長内で、アプリケーションの実行時のラグ状況を決定する。
【0076】
一実施例において、第1画像フレームと第2画像フレームとの差分と、グレースケール画像におけるグレースケール値とは、正の相関関係にあり、即ち、グレースケール画像におけるグレースケール値が大きいほど、第1画像フレームと第2画像フレームとの差分が大きくなることを表し、それにより、第1画像フレームと第2画像フレームとの間にラグ状況が発生していないと決定することができる。同様に、グレースケール画像におけるグレースケール値が小さいほど、第1画像フレームと第2画像フレームとの差分が小さくなることを表し、グレースケール画像における最大グレースケール値が所定の閾値よりも小さい時、第1画像フレームと第2画像フレームとの間にラグ状況が発生したと決定する。
【0077】
一実施例において、グレースケール画像における最大グレースケール値に基づいて、第1画像フレームと第2画像フレームとの間のラグ状況を決定し、又は、グレースケール画像における平均グレースケール値に基づいて、第1画像フレームと第2画像フレームとの間のラグ状況を決定する。
【0078】
ここで、上記2つのケースに対してそれぞれ説明する。1、最大グレースケール値によって、ラグ状況が発生しているかどうかを決定するという方案について、実験によれば、差分が肉眼で判別不可能である2フレームの画像フレームは、最大グレースケール値が、一般的には40を超えないが、差分が肉眼で判別可能である2フレームの画像フレームは、40を超えるグレースケール値が多く存在する。従って、グレースケール画像における最大グレースケール値を決定し、最大グレースケール値が所定の閾値(例えば、40)以下である場合、第1画像フレームと第2画像フレームとの間にラグが生じたと決定することは、2フレームの画像フレーム間の相違度とグレースケール値との関連関係に合致している。2、平均グレースケール値によって、ラグ状況が発生しているかどうかを決定するという方案について、画像フレームの演算プロセスにエラーが発生したことによって、単一又は複数の画素点の画素値が正確ではない場合、上記最大グレースケール値によれば、検出漏れの問題が発生しやすく、即ち、ラグ状況を検出できないことが存在する。平均グレースケール値によれば、平均グレースケール値が所定の閾値よりも小さい場合、2フレームの画像フレームの類似度が全体的には高いことを表し、演算エラーによって、差分がある画素点が存在するとしても、2フレームの画像フレームの差分を肉眼で判別できなければ、2フレームの画像フレーム間のラグ状況を依然として検出することができ、ラグ検出の正確率を向上させた。
【0079】
例示的に、グレースケール画像から、画素点の最大グレースケール値を決定し、最大グレースケール値がグレースケール値要件よりも小さいことに応答して、第1画像フレームと第2画像フレームとの間にラグが存在すると決定する。
【0080】
上記に記載されたように、本実施例によるラグ検出方法は、プロセスビデオにおける2フレームの画像フレーム間の差分画像をグレースケール画像に変換し、グレースケール画像によって、2フレームの画像フレーム間のラグ状況を決定する。端末のアプリケーションプログラムの実行中のFPS値を取得する必要がなく、ラグ状況を決定することができ、即ち、クラウドゲームなどのクラウドアプリケーションプログラムに対してもラグ状況を正確に決定することもでき、ラグ検出の正確率及び検出プロセスの適応性を向上させることができる。
【0081】
本実施例によるラグ検出方法は、クラウドゲームに適用する時、クラウドゲームの実行中において、クラウド側サーバにラグが生じたことによってゲーム画面のビデオストリームにラグが存在しても、2フレームの画像フレーム間の相違度によって決定を行うこともでき、クラウド側サーバで生成されたゲームビデオストリームにラグが生じたにも関わらず、端末によるビデオストリームの再生プロセスがスムーズであることによって、クラウドゲーム中におけるラグ状況を検出できないという問題を回避する。
【0082】
一実施例において、第1配列を作成して、プロセスビデオに発生したラグ状況を記録する。
図4は、本願の別の例示的な実施例によるラグ検出方法を示すフローチャートである。該方法がサーバに用いられることを例として説明すると、
図4に示すように、該方法は、以下を含む。
【0083】
ステップ401において、クラウドゲームの実行中で録画によって得られたプロセスビデオを取得する。
【0084】
本願の実施例において、ゲームアプリケーションプログラムを例として説明する。即ち、ゲームアプリケーションプログラムの実行中において、録画によってプロセスビデオを得る。
【0085】
ステップ402において、プロセスビデオに対応する第1配列を作成する。
【0086】
一実施例において、第1配列は、画像フレームに対応するラグ状況を記録するためのものである。一実施例では、本願の実施例において、プロセスビデオに対してフレームごとにラグ検出を行うことを例として説明し、即ち、第1画像フレームと第2画像フレームは、プロセスビデオにおける隣接するフレームであり、第1画像フレームの再生順番が第2画像フレームの再生順番の前であることを例として説明する。第1配列における要素に値を割り当てる時に、第1画像フレームと第2画像フレームに対してラグ検出を行う時に、第1画像フレームに対応する要素位置でラグ状況に基づいて値を割り当てる。
【0087】
ここで、第1配列における配列要素に値を割り当てるという方式で、第1配列における要素の値の分布状況によって、プロセスビデオにおけるラグの発生状況を直観的に得ることができ、ラグ検出の効率が向上した。
【0088】
ステップ403において、プロセスビデオから、第1画像フレームと第2画像フレームを取得し、第1画像フレームと第2画像フレームとの間隔フレーム数は、フレーム数要件よりも小さい。
【0089】
一実施例において、第1画像フレームと第2画像フレームの選択方式は、
第1画像フレームと第2画像フレームがプロセスビデオにおける隣接する2フレームであるという第1方式と、
第1画像フレームと第2画像フレームがプロセスビデオにおけるnフレームの間隔をあけた2フレームの画像フレームであり、nが正の整数であるという第2方式と、
第1画像フレームと第2画像フレームがプロセスビデオにおける隣接する2フレームのキーフレームであるという第3方式と、のうちの少なくとも1つを含む。
【0090】
ステップ404において、第1画像フレームと第2画像フレームとの差分画像をグレースケール画像に変換する。
【0091】
一実施例において、まず、第1画像フレームと第2画像フレームを減算し、差分画像を得る。この時、差分画像は、カラー形式で表現される。例えば、差分画像は、RGB画像であり、各画素点は、RGB値に対応する。差分画像に対してグレースケール処理を行うことで、差分画像に対応するグレースケール画像を得る。
【0092】
ステップ405において、グレースケール画像から、画素点の最大グレースケール値を決定する。
【0093】
一実施例において、グレースケール画像は、グレースケール値行列に対応する。拡張プログラムライブラリ(NumPy)のargmaxインタフェースによって、グレースケール値行列から、最大グレースケール値を取得する。
【0094】
OpenCVとNumPyにおける比較的に成熟しているインタフェースを用いて、簡単な行列演算を行っているため、上記方式で2枚の2340*1080の画像を処理するためにかかる時間は、約0.01秒であり、演算速度が比較的に速い。
【0095】
ステップ406において、最大グレースケール値がグレースケール値要件よりも小さいことに応答して、第1画像フレームと第2画像フレームとの間の表示時間長内でクラウドゲームの実行時にラグが存在すると決定する。
【0096】
一実施例において、最大グレースケール値が閾値よりも小さいことに応答して、第1画像フレームと第2画像フレームとの間にラグが存在すると決定する。
【0097】
一実施例において、実験によれば、差分が肉眼で判別不可能である2フレームの画像フレームは、最大グレースケール値が、一般的には40を超えることがなく、それに対して差分が判別可能である2フレームの画像フレームは、40を超えるグレースケール値が多く存在することを発見した。
【0098】
例示的に、
図5を参照すると、
図5は、差分が肉眼で判別不可能である2フレームの画像フレームに対応するグレースケール画像の画像ヒストグラム510を示す。
図5に示すように、画像ヒストグラム510において、グレースケール画像における画素点のグレースケール値はいずれも40以下である。
図6を参照すると、
図6は、差分が肉眼で判別可能である2フレームの画像フレームに対応するグレースケール画像の画像ヒストグラム610を示す。
図6に示すように、画像ヒストグラム610において、グレースケール画像における画素点のグレースケール値のうち、40を超えるグレースケール値が多く存在する。
【0099】
例示的に、グレースケール値40をグレースケール値要件とすれば、最大グレースケール値が40よりも小さいことに応答して、第1画像フレームと第2画像フレームとの間にラグが存在すると決定する。
【0100】
上記グレースケール値閾値40は、例示的な例だけであり、実際のグレースケール値の分布状況に応じて、グレースケール値閾値に対して調整を行ってもよく、例えば、35、50などに調整してもよい。
【0101】
一実施例において、最大グレースケール値がグレースケール値要件を達することに応答して、第1画像フレームと第2画像フレームとの間にラグが存在しないと決定する。
【0102】
ステップ407において、第1画像フレームと第2画像フレームとの間のラグ状況に基づいて、第1配列における、第1画像フレームに対応する要素位置に値を割り当てる。
【0103】
一実施例において、第1画像フレームと第2画像フレームとの間にラグが存在することに応答して、第1配列における、第1画像フレームに対応する要素位置に第1値を割り当て、第1画像フレームと第2画像フレームとの間にラグが存在しないことに応答して、第1配列における、第1画像フレームに対応する要素位置に第2値を割り当てる。
【0104】
例示的に、第1画像フレームと第2画像フレームとの間にラグが存在することに応答して、第1配列における、第1画像フレームに対応する要素位置に対して、値として0を割り当て、第1画像フレームと第2画像フレームとの間にラグが存在しないことに応答して、第1配列における、第1画像フレームに対応する要素位置に対して、値として1を割り当てる。
【0105】
例示的に、プロセスビデオにおける画像フレーム1と画像フレーム2に対して、ラグ検出を行い、即ち、画像フレーム1と画像フレーム2との差分画像を決定し、差分画像に対してグレースケール処理を行い、グレースケール画像を得て、グレースケール画像における最大グレースケール値に基づいて、ラグ状況を決定する。グレースケール要件が40であることを例として、グレースケール画像における最大グレースケール値が80である場合、画像フレーム1と画像フレーム2との間にラグ状況が存在しないと決定し、第1配列における、画像フレーム1に対応する要素位置に値として1を割り当て、グレースケール画像における最大グレースケール値が30である場合、画像フレーム1と画像フレーム2との間にラグ状況が存在すると決定し、第1配列における、画像フレーム1に対応する要素位置に値として0を割り当てる。
【0106】
ステップ408において、第1配列における要素の値の割り当て状況に基づいて、クラウドゲームの実行中のラグ状況を決定する。
【0107】
一実施例において、第1値が0であり、第2値が1であることを例として説明する。理想的な場合には、即ち、クラウドゲーム実行中においてラグが存在しない場合には、第1配列における連続したk個の要素の和は、kであるはずであり、kは、正の整数である。例示的に、第1配列における任意の30個の要素の和は、30であるはずである。連続した30個の要素の和が閾値15よりも小さい時、著しいラグ問題が存在することを表す。又は、連続した3つの要素がいずれも第1値である場合、著しいラグ問題が存在することを表すこともできる。
【0108】
要するに、本実施例によるラグ検出方法は、プロセスビデオにおける2フレームの画像フレーム間の差分画像をグレースケール画像に変換し、グレースケール画像によって、2フレームの画像フレーム間のラグ状況を決定する。端末のアプリケーションプログラムの実行中のFPS値を取得する必要がなく、ラグ状況を決定することができ、即ち、クラウドゲームなどのクラウドアプリケーションプログラムに対してもラグ状況を正確に決定することもでき、ラグ検出の正確率及び検出プロセスの適応性を向上させた。
【0109】
本実施例による方法は、第1配列を作成し、第1配列において、第1画像フレームと第2画像フレームとのラグ関係に基づいて、要素に値を割り当てることによって、プロセスビデオにおける画像フレームを走査してから、第1配列における要素の値の状況に基づいて、プロセスビデオ全体のラグ状況を決定し、それによりアプリケーションプログラム実行中のラグ状況を決定し、ラグ検出の正確率と適応性を向上させた。
【0110】
本方案において、被検側に対して如何なる侵入を行う必要もなく、実行期間において画面録画を行えばよく、端末のタイプを問わなく、操作しやすく、ラグ検出効果が正確である。
【0111】
選択的な実施例において、クラウドゲームの実行中のラグ状況を決定する時、第2配列を作成するという方式で決定を行う。
図7は、本願の別の例示的な実施例によるラグ検出方法を示すフローチャートである。該方法がサーバに用いられることを例として説明すると、
図7に示すように、該方法は、以下を含む。
【0112】
ステップ701において、クラウドゲームの実行中で録画によって得られたプロセスビデオを取得する。
【0113】
本願の実施例において、ゲームアプリケーションプログラムを例として説明する。即ち、ゲームアプリケーションプログラムの実行中において、録画によってプロセスビデオを得る。
【0114】
ステップ702において、プロセスビデオに対応する第1配列を作成する。
【0115】
一実施例において、第1配列は、画像フレームに対応するラグ状況を記録するためのものである。
【0116】
ステップ703において、プロセスビデオから、第1画像フレームと第2画像フレームを取得し、第1画像フレームと第2画像フレームとの間隔フレーム数は、フレーム数要件よりも小さい。
【0117】
一実施例において、第1画像フレームと第2画像フレームの選択方式は、
第1画像フレームと第2画像フレームがプロセスビデオにおける隣接する2フレームであるという第1方式と、
第1画像フレームと第2画像フレームがプロセスビデオにおけるnフレームの間隔をあけた2フレームの画像フレームであり、nが正の整数であるという第2方式と、
第1画像フレームと第2画像フレームがプロセスビデオにおける隣接する2フレームのキーフレームであるという第3方式と、のうちの少なくとも1つを含む。
【0118】
ステップ704において、第1画像フレームと第2画像フレームとの差分画像をグレースケール画像に変換する。
【0119】
一実施例において、まず、第1画像フレームと第2画像フレームを減算し、差分画像を得る。この時、差分画像は、カラー形式で表現される。例えば、差分画像は、RGB画像であり、各画素点は、RGB値に対応する。差分画像に対してグレースケール処理を行うことで、差分画像に対応するグレースケール画像を得る。
【0120】
ステップ705において、グレースケール画像から、画素点の最大グレースケール値を決定する。
【0121】
ステップ706において、最大グレースケール値がグレースケール値要件よりも小さいことに応答して、第1画像フレームと第2画像フレームとの間の表示時間長内でクラウドゲームの実行時にラグが存在すると決定する。
【0122】
一実施例において、最大グレースケール値が閾値よりも小さいことに応答して、第1画像フレームと第2画像フレームとの間にラグが存在すると決定する。
【0123】
例示的に、グレースケール値40をグレースケール値要件とすれば、最大グレースケール値が40よりも小さいことに応答して、第1画像フレームと第2画像フレームとの間の表示時間長内でクラウドゲームの実行時にラグが存在すると決定する。
【0124】
一実施例において、最大グレースケール値がグレースケール値要件を達することに応答して、第1画像フレームと第2画像フレームとの間の表示時間長内でクラウドゲームの実行時にラグが存在しないと決定する。
【0125】
ステップ707において、第1画像フレームと第2画像フレームとの間のラグ状況に基づいて、第1配列における、第1画像フレームに対応する要素位置に値を割り当てる。
【0126】
一実施例において、第1画像フレームと第2画像フレームとの間にラグが存在することに応答して、第1配列における、第1画像フレームに対応する要素位置に、第1値を割り当て、第1画像フレームと第2画像フレームとの間にラグが存在しないことに応答して、第1配列における、第1画像フレームに対応する要素位置に、第2値を割り当てる。
【0127】
ステップ708において、プロセスビデオに対応する第2配列を作成する。
【0128】
一実施例において、第2配列は、プロセスビデオにおいてラグが出現する時間帯を記録するためのものであり、即ち、プロセスビデオにラグ状況が出現する時、第2配列において、ラグが出現する時間帯を記録する。それにより、記録が完了した後、第2配列によって、プロセスビデオにおいてラグが出現する時間帯が総時間長に対して占める割合を直観的に決定し、クラウドゲームの実行中のラグの発生頻度を決定することができる。
【0129】
例示的に、時間帯が秒単位として実現することを例として説明すると、第2配列は、プロセスビデオにおいてどの秒でラグが生じたかを記録するためのものである。一実施例において、第2配列は、第1配列においてラグ状況として記録されている要素に基づいて、ラグが出現する時間帯を決定するためのものである。
【0130】
ステップ709において、第1配列における要素に対して走査を行う。
【0131】
一実施例において、第1配列から、要素を順に取り出してラグ状況検出を行う。一実施例において、第1配列における各要素は、対応する画像フレームにラグ状況が出現するかどうかを示すためのものである。例えば、第1配列における1番目の要素の値が1であれば、2番目の画像フレームに対して1番目の画像フレームにラグ状況が出現していないことを表す。第1配列における2番目の要素の値が0であれば、3番目の画像フレームに対して2番目の画像フレームにラグ状況が出現したことを表す。
【0132】
ステップ710において、第1配列における要素が第1値であることに応答して、プロセスビデオにおける、要素位置に対応する時間帯を決定する。
【0133】
一実施例において、第1配列における要素の下付き文字は、フレーム数を表す。例えば、下付き文字が10であれば、要素に対応する画像フレームが10フレーム目であることを表す。例示的に、プロセスビデオが30FPSで録画されることを例として、要素の下付き文字を30で除算して、対応するビデオ秒数を得る。秒数が第2配列に存在する場合、更なる判定を行うことなく、走査を継続する。一実施例において、第2配列に記録する必要があるものはプロセスビデオにおいてラグが出現する時間帯であるため、既に記録した時間帯における他のラグ状況に対して、繰り返し記録を行う必要がなく、要素値に対するラグ記録の繰り返し操作を回避し、第2配列の生成効率を向上させた。
【0134】
要素値が第2値であれば、ラグが存在しないことを表し、走査を継続する。要素値が第1値であれば、ラグが存在することを表し、まず、現在の要素の後の30個の要素の和が閾値よりも大きいかどうかを判定し、閾値よりも小さければ、明らかなラグが存在することを表し、現在の要素に対する秒数を第2配列に追加する。その後の30個の要素の和が閾値を達すれば、現在の要素の前後の隣接する2つの要素が第1値であるかどうかを判定し続け、前後の2つの要素がいずれも第1値であれば、少なくとも連続した2フレームの同じ画像フレームによるラグが出現したことを表し、現在の要素に対応する秒数を第2配列に追加する。
【0135】
ステップ711において、時間帯を要素の値として第2配列における要素に値を割り当てる。
【0136】
一実施例において、時間帯を要素の値として値を割り振った後、第2配列における要素の値は、プロセスビデオにおいてラグ状況が発生した時間帯を直観的に表す。例えば、第2配列における要素の値がそれぞれ2、3、5、9、10、16であれば、プロセスビデオにおいて2秒目、3秒目、5秒目、9秒目、10秒目及び16秒目でいずれもラグ状況が発生したことを表し、要素数に基づいて、ラグ時間長とラグ時点を決定し、クラウドゲームのラグ状況の検出効率が向上した。
【0137】
ステップ712において、第2配列において値が割り振られた時間帯総長がプロセスビデオ総長に対して占める割合に基づいて、クラウドゲームの実行中のラグ状況を決定する。
【0138】
一実施例において、プログラムの実行中のラグ状況は、同一フレームの割合と、ラグの回数と、ラグ時間長と、ラグ時点と、のうちの少なくとも1つを含み、ここで、同一フレームの割合は、下記式2で算出される。
【0139】
式2:同一フレームの割合=(1-b/a)×100%
【0140】
ここで、aは、第1配列の長さを表し、bは、第1配列における要素の和を表す。
【0141】
上記ラグ回数は、第1配列における第1値の要素数によって決定されたものである。ラグ時間長、ラグ時点は、第2配列によって決定されたものである。
【0142】
要するに、本実施例によるラグ検出方法は、プロセスビデオにおける2フレームの画像フレーム間の差分画像をグレースケール画像に変換し、グレースケール画像によって、2フレームの画像フレーム間のラグ状況を決定する。端末のアプリケーションプログラムの実行中のFPS値を取得する必要がなく、ラグ状況を決定することができ、即ち、クラウドゲームなどのクラウドアプリケーションプログラムに対してもラグ状況を正確に決定することもでき、ラグ検出の正確率及び検出プロセスの適応性を向上させた。
【0143】
本実施例による方法は、第1配列に対して走査を行い、第1配列から、画像フレームにラグが生じたことを表す要素を取得し、第2配列において、ラグに対応する秒数を記録することで、ラグの具体的な状況を分析することによって、ラグ分析のデータ量を増加させた。
【0144】
例示的に、
図8を参照すると、
図8は、本願の一例示的な実施例による第1配列に要素を充填する方案を示す全体的フローチャートである。本実施例による方法がクラウドゲームに用いられることを例として説明すると、
図8に示すように、該プロセスは、以下を含む。
【0145】
ステップ801において、30fpsでクラウドゲームビデオを録画する。
【0146】
一実施例において、クラウドゲームの実行中において、ゲームプロセスのビデオを録画し、ラグ検出に用いる。
【0147】
ステップ802において、クラウドゲームビデオの隣接するフレームに対して減算を行い、結果をグレースケール画像に変換する。
【0148】
一実施例において、隣接するフレームの要素値行列に対して減算を行い、差分画像の要素値行列を得て、差分画像の要素値行列における要素値に対してグレースケール処理を行うことで、差分画像をグレースケール画像に変換する。
【0149】
ステップ803において、グレースケール画像における最大グレースケール値が40よりも大きいかどうかを判定する。
【0150】
実験によれば、差分が肉眼で判別不可能である2フレームの画像フレームは、最大グレースケール値が、一般的には40を超えることがなく、それに対して、差分が肉眼で判別可能である2フレームの画像フレームは、40を超えるグレースケール値が多く存在することを発見した。従って、40をグレースケールの閾値とする。
【0151】
ステップ804において、最大グレースケール値が40よりも大きい場合、第1配列に1を充填する。
【0152】
一実施例において、要素の値であれば、画像フレーム間に差分が存在することを表し、画像フレーム間にラグ状況が存在しない。
【0153】
ステップ805において、最大グレースケール値が40以下である場合、第1配列に0を充填する。
【0154】
一実施例において、要素値が0であれば、画像フレーム間の差分が小さいことを表し、即ち、画像フレーム間にラグ状況が存在する。
【0155】
例示的に、
図9を参照すると、
図9は、本願の一例示的な実施例による第2配列に要素を充填する方案を示す全体的フローチャートである。
図9に示すように、該プロセスは、以下を含む。
【0156】
ステップ901において、第1配列から要素を取り出す。
【0157】
一実施例において、第1配列における要素に対して走査を行う。
【0158】
ステップ902において、要素に対応する画像フレームの秒数が第2配列にあるかどうかを判定する。
【0159】
要素に対応する画像フレームの秒数が第2配列に存在すれば、該秒数でラグが存在することが判定されたことを表し、再検出を必要としない。
【0160】
ステップ903において、第2配列に存在しなければ、要素が第2値であるかどうかを判定する。
【0161】
一実施例において、第2値は、現在の要素に対応する画像フレームに対してラグ検出を行う時、別の画像フレームと相違するため、ラグ状況が存在しないことを表す。
【0162】
ステップ904において、要素が第1値である場合、現在の要素の後の30個の要素の和が閾値よりも大きいかどうかを判定する。
【0163】
一実施例において、30個の要素の和が閾値以下であることは、ラグ状況がはっきりしていることを表し、現在の要素に対応する画像フレームの秒数を第2配列に追加する。
【0164】
ステップ905において、要素の和が閾値よりも大きい場合、現在の要素に隣接する2つの要素も第1値であるかどうかを判定する。
【0165】
ステップ906において、いずれも第1値であれば、現在の要素に対応する画像フレームの秒数を第2配列に追加する。
【0166】
要するに、本実施例によるラグ検出方法は、プロセスビデオにおける2フレームの画像フレーム間の差分画像をグレースケール画像に変換し、グレースケール画像によって、2フレームの画像フレーム間のラグ状況を決定する。端末のアプリケーションプログラムの実行中のFPS値を取得する必要がなく、ラグ状況を決定することができ、即ち、クラウドゲームなどのクラウドアプリケーションプログラムに対してもラグ状況を正確に決定することもでき、ラグ検出の正確率及び検出プロセスの適応性を向上させた。
【0167】
図10は、本願の一例示的な実施例によるラグ検出装置の構造を示すブロック図である。
図10に示すように、該装置は、
クラウドゲームの実行中の第1画像フレームと第2画像フレームを取得するように構成される取得モジュール1010であって、前記第1画像フレームと前記第2画像フレームは、前記クラウドゲームの実行中の表示画面に対応する画像フレームであり、
前記取得モジュール1010は更に、前記第1画像フレームと前記第2画像フレームとの差分画像を取得するように構成され、前記差分画像は、前記第1画像フレームと前記第2画像フレームとの対応する画素点間の相違度を表す、取得モジュール1010と、
前記差分画像をグレースケール画像に変換するように構成される変換モジュール1020であって、前記グレースケール画像は、複数の画素点を含む、変換モジュール1020と、
前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記クラウドゲームが実行される時のラグ状況を決定するように構成される決定モジュール1030と、を備える。
【0168】
選択的な実施例において、前記決定モジュール1030は更に、前記第1画像フレームに対応する第1画素値行列及び前記第2画像フレームに対応する第2画素値行列を決定するように構成され、
前記取得モジュール1010は更に、前記第1画素値行列と前記第2画素値行列を減算し、前記差分画像を得るように構成され、ここで、前記差分画像は、差分行列の形式で表現され、前記差分行列に、前記画素点間の相違度に対応する差分画素値が含まれる。
【0169】
選択的な実施例において、前記取得モジュール1010は更に、前記差分画像に対応する前記差分行列における前記差分画素値を取得するように構成され、
前記変換モジュール1020は更に、前記差分画素値をグレースケール値に変換し、前記グレースケール画像を得るように構成され、前記グレースケール画像は、グレースケール値行列の形式で表現される。
【0170】
選択的な実施例において、前記決定モジュール1030は更に、前記グレースケール画像から、前記画素点の最大グレースケール値を決定するように構成され、
前記決定モジュール1030は更に、前記最大グレースケール値がグレースケール要件よりも小さいことに応答して、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内に前記クラウドゲームの実行時にラグが存在すると決定するように構成される。
【0171】
選択的な実施例において、前記取得モジュール1010は更に、クラウドゲームの実行中で録画によって得られたプロセスビデオを取得し、前記プロセスビデオから、前記第1画像フレームと前記第2画像フレームを取得するように構成され、前記第1画像フレームと前記第2画像フレームとの間隔フレーム数は、フレーム数要件よりも小さい。
【0172】
選択的な実施例において、
図11に示すように、前記装置は、
前記プロセスビデオに対応する第1配列を作成するように構成される作成モジュール1040であって、前記第1配列は、画像フレームに対応するラグ状況を記録するためのものである、作成モジュール1040を更に備え、
前記決定モジュール1030は更に、前記第1画像フレームと前記第2画像フレームとの間の前記ラグ状況に基づいて、前記第1配列における、前記第1画像フレームに対応する要素位置に値を割り当てるように構成され、
前記決定モジュール1030は更に、前記第1配列における要素の値の割り当て状況に基づいて、クラウドゲームの実行中のラグ状況を決定するように構成される。
【0173】
選択的な実施例において、前記決定モジュール1030は更に、前記第1画像フレームと前記第2画像フレームとの間にラグが存在することに応答して、前記第1配列における、前記第1画像フレームに対応する要素位置に、第1値を割り当てるように構成され、
前記決定モジュール1030は更に、前記第1画像フレームと前記第2画像フレームとの間にラグが存在しないことに応答して、前記第1配列における、前記第1画像フレームに対応する要素位置に、第2値を割り当てるように構成される。
【0174】
選択的な実施例において、前記作成モジュール1040は更に、前記プロセスビデオに対応する第2配列を作成するように構成され、前記第2配列は、前記プロセスビデオにおいてラグが出現する時間帯を記録するためのものであり、
前記決定モジュール1030は更に、前記第1配列における要素に対して走査を行うように構成され、
前記決定モジュール1030は更に、前記第1配列における要素が前記第1値であることに応答して、前記プロセスビデオにおける、前記要素位置に対応する時間帯を決定するように構成され、
前記決定モジュール1030は更に、前記時間帯を要素の値として前記第2配列における要素に値を割り当て、前記第2配列において値が割り振られた時間帯総長が前記プロセスビデオ総長に対して占める割合に基づいて、前記クラウドゲームの実行中のラグ状況を決定するように構成される。
【0175】
要するに、本実施例によるラグ検出装置は、プロセスビデオにおける2フレームの画像フレーム間の差分画像をグレースケール画像に変換し、グレースケール画像によって、2フレームの画像フレーム間のラグ状況を決定する。端末のアプリケーションプログラムの実行中のFPS値を取得する必要がなく、ラグ状況を決定することができ、即ち、クラウドゲームなどのクラウドアプリケーションプログラムに対してもラグ状況を正確に決定することもでき、ラグ検出の正確率及び検出プロセスの適応性を向上させた。
【0176】
上記実施例で提供されるラグ検出装置について、上記各機能モジュールの分割のみを例として説明することに留意されたい。実際の適用において、必要に応じて、様々な機能モジュールにより上記機能を実現させることができる。つまり、装置の内部構造を様々な機能モジュールに分割して、上記全て又は一部の機能を完了する。なお、上記実施例で提供されるラグ検出装置の構想は、ラグ検出方法の実施例の構想と同じであり、具体的な実現プロセスは、方法の実施例を参照されたい。ここでは説明を省略する。
【0177】
図12は、本願の一例示的な実施例によるサーバの構造を示す概略図である。具体的には、
サーバ1200は、中央演算装置(Central Processing Unit:CPU)1201と、ランダムアクセスメモリ(Random Access Memory:RAM)1202及び読み出し専用メモリ(Read Only Memory:ROM)1203を含むシステムメモリ1204と、システムメモリ1204と中央演算装置1201を接続するためのシステムバス1205と、を備える。サーバ1200は、コンピュータ内の各デバイス間の情報伝送を支援するための基本入力/出力システム(Input Output System:I/Oシステム)1206と、オペレーティングシステム1213、アプリケーションプログラム1214及び他のプログラムモジュール1215を記憶するための大容量記憶装置1207と、を更に備える。
【0178】
基本入力/出力システム1206は、情報を表示するためのディスプレイ1208と、マウス、キーボードのようなユーザによる情報入力のための入力機器1209と、を備える。ここで、ディスプレイ1208及び入力機器1209はいずれもシステムバス1205に接続された入力出力コントローラ1210を介して中央演算装置1201に接続される。基本入力/出力システム1206は、キーボード、マウス又は電子スタイラスなどの複数の他の機器からの入力を受信して処理するための入力出力コントローラ1210を更に備えてもよい。同様に、入力出力コントローラ1210は、ディスプレイ、プリンタ又は他のタイプの出力機器に出力を更に提供する。
【0179】
大容量記憶装置1207は、システムバス1205に接続された大容量記憶コントローラ(図示されず)を介して中央演算装置1201に接続される。大容量記憶装置1207及びそれに関連するコンピュータ読取可能な記憶媒体は、サーバ1200に不揮発性記憶を提供する。つまり、大容量記憶装置1207は、ハードディスク又はコンパクトディスク読み出し専用メモリ(Compact Disc Read Only Memory:CD-ROM)ドライブのようなコンピュータ読取可能な記憶媒体(図示されず)を含んでもよい。
【0180】
一般性を失うことなく、コンピュータ読取可能な記憶媒体は、コンピュータ記憶媒体及び通信媒体を含んでもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するための如何なる方法又は技術により実現される揮発性又は不揮発性、取外し可能および取外し不可能な媒体を含む。コンピュータ記憶媒体は、RAM、ROM、消去可能なプログラマブル読み出し専用メモリ(Erasable Programmable Read Only Memory:EPROM)、電気的消去可能なプログラマブル読み出し専用メモリ(Electrically Erasable Programmable Read Only Memory:EEPROM)、フラッシュメモリ又は他のソリッドステート記憶媒体、CD-ROM、デジタルバーサタイルディスク(Digital Versatile Disc:DVD)又は他の光学記憶媒体、カセット、磁気テープ、磁気ディスク又は他の磁気記憶媒体を含む。勿論、当業者であれば、コンピュータ記憶媒体が上記に限定されないことを理解すべきである。上記システムメモリ1204及び大容量記憶装置1207は、メモリと総称されてもよい。
【0181】
本願の種々の実施例によれば、サーバ1200は更に、インターネットなどのネットワークを経由してネットワークにおけるリモートコンピュータに接続されて実行されてもよい。つまり、サーバ1200は、システムバス1205に接続されたネットワークインタフェースユニット1211を介してネットワーク1212に接続されてもよく、又は、ネットワークインタフェースユニット1211により、他のタイプのネットワーク又はリモートコンピュータシステム(図示されず)に接続されてもよい。
【0182】
上記メモリは、1つ又は1つ以上のプログラムを更に含む。1つ又は1つ以上のプログラムは、メモリに記憶され、CPUによって実行されるように構成される。
【0183】
本願は、コンピュータ読取可能な記憶媒体を提供する。該記憶媒体に、少なくとも1つの命令が記憶されており、前記少なくとも1つの命令は、前記プロセッサによりロードされて実行され、上記各方法の実施例によるラグ検出方法を実現させる。
【0184】
本願は、コンピュータプログラム製品を更に提供する。コンピュータプログラム製品がコンピュータで実行される時、コンピュータに上記各方法の実施例によるラグ検出方法を実行させる。
【0185】
上記本願の実施例の番号は記述するためのものに過ぎず、実施例の優劣を代表しない。
【0186】
上記実施例の全て又は一部のステップはハードウェアにより実行されてもよいし、プログラム命令に係るハードウェアにより実行されてもよく、前記プログラムは、コンピュータ読取可能な記憶媒体に記憶されてもよく、上記言及した記憶媒体は、読み出し専用メモリ、磁気ディスク又は光ディスクなどであってもよいことは当業者であれば理解されるべきである。
【0187】
以上は、本願の選択的な実施例に過ぎず、本願を限定するものではない。本願の精神や原則を逸脱することなく行われるあらゆる修正、同等置換、改良などはすべて本願の保護範囲内に含まれるものとする。
【符号の説明】
【0188】
1010 取得モジュール
1020 変換モジュール
1030 決定モジュール
1040 作成モジュール
1201 中央演算装置
1202 ランダムアクセスメモリ
1203 読み出し専用メモリ
1205 システムバス
1207 大容量記憶装置
1208 ディスプレイ
1209 入力機器
1210 入力/出力コントローラ
1211 ネットワークインタフェースユニット
1212 ネットワーク
1213 オペレーティングシステム
1214 アプリケーションプログラム
1215 他のプログラムモジュール
【手続補正書】
【提出日】2022-06-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ機器が実行する、ラグ検出方法であって、
ユーザ端末におけるアプリケーションの実行中で表示される第1画像フレームと第2画像フレームを取得するステップであって、前記第1画像フレームと前記第2画像フレームは、前記アプリケーションの実行中における表示画面に対応する画像フレームである、ステップと、
前記第1画像フレームと前記第2画像フレームとの差分画像を取得するステップであって、前記差分画像は、前記第1画像フレームと前記第2画像フレームとの対応する画素点間の相違度を表す、ステップと、
前記差分画像をグレースケール画像に変換するステップであって、前記グレースケール画像は、複数の画素点を含む、ステップと、
前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するステップと、を含むことを特徴とする、ラグ検出方法。
【請求項2】
前記第1画像フレームと前記第2画像フレームとの差分画像を取得するステップは、
前記第1画像フレームに対応する第1画素値行列及び前記第2画像フレームに対応する第2画素値行列を決定するステップと、
前記第1画素値行列と前記第2画素値行列を減算し、前記差分画像を得るステップであって、前記差分画像は、差分行列の形式で表現され、前記差分行列に、前記画素点間の相違度に対応する差分画素値が含まれる、ステップと、を含むことを特徴とする
請求項1に記載の方法。
【請求項3】
前記差分画像をグレースケール画像に変換するステップは、
前記差分画像に対応する前記差分行列における前記差分画素値を取得するステップと、
前記差分画素値をグレースケール値に変換し、前記グレースケール画像を得るステップであって、前記グレースケール画像は、グレースケール値行列の形式で表現される、ステップと、を含むことを特徴とする
請求項2に記載の方法。
【請求項4】
前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するステップは、
前記グレースケール画像から、前記画素点の最大グレースケール値を決定するステップと、
前記最大グレースケール値がグレースケール要件よりも小さいことに応答して、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で前記アプリケーションの実行時にラグが存在すると決定するステップと、を含むことを特徴とする
請求項1から3のうちいずれか一項に記載の方法。
【請求項5】
アプリケーションの実行中の第1画像フレームと第2画像フレームを取得するステップは、
前記アプリケーションの実行中で録画によって得られたプロセスビデオを取得するステップと、
前記プロセスビデオから、前記第1画像フレームと前記第2画像フレームを取得するステップであって、前記第1画像フレームと前記第2画像フレームとの間隔フレーム数は、フレーム数要件よりも小さい、ステップと、を含むことを特徴とする
請求項1から3のうちいずれか一項に記載の方法。
【請求項6】
前記方法は、
前記プロセスビデオに対応する第1配列を作成するステップであって、前記第1配列は、画像フレームに対応するラグ状況を記録するためのものである、ステップと、
前記第1画像フレームと前記第2画像フレームとの間の前記ラグ状況に基づいて、前記第1配列における、前記第1画像フレームに対応する要素位置に値を割り当てるステップと、
前記第1配列における要素の値の割り当て状況に基づいて、前記アプリケーションの実行中のラグ状況を決定するステップと、を更に含むことを特徴とする
請求項5に記載の方法。
【請求項7】
前記第1画像フレームと前記第2画像フレームとの間の前記ラグ状況に基づいて、前記第1配列における、前記第1画像フレームに対応する要素位置に値を割り当てるステップは、
前記第1画像フレームと前記第2画像フレームとの間にラグが存在することに応答して、前記第1配列における、前記第1画像フレームに対応する要素位置に、第1値を割り当てるステップと、
前記第1画像フレームと前記第2画像フレームとの間にラグが存在しないことに応答して、前記第1配列における、前記第1画像フレームに対応する要素位置に、第2値を割り当てるステップと、を含むことを特徴とする
請求項6に記載の方法。
【請求項8】
前記第1配列における要素の値の割り当て状況に基づいて、前記アプリケーションの実行中のラグ状況を決定するステップは、
前記プロセスビデオに対応する第2配列を作成するステップであって、前記第2配列は、前記プロセスビデオにおいてラグが出現する時間帯を記録するためのものである、ステップと、
前記第1配列における要素に対して走査を行うステップと、
前記第1配列における要素が前記第1値であることに応答して、前記プロセスビデオにおける、前記要素位置に対応する時間帯を決定するステップと、
前記時間帯を要素の値として前記第2配列における要素に値を割り当てるステップと、
前記第2配列において値が割り振られた時間帯総長
がプロセスビデオ総長に対して占める割合に基づいて、前記アプリケーションの実行中のラグ状況を決定するステップと、を含むことを特徴とする
請求項7に記載の方法。
【請求項9】
前記アプリケーションは、クラウドゲームアプリケーションと、リアルタイムビデオアプリケーションと、ナビゲーションアプリケーションと、のうちの1つであることを特徴とする
請求項1に記載の方法。
【請求項10】
ラグ検出装置であって、取得モジュールと、変換モジュールと、決定モジュールを含み、
前記取得モジュールは、ユーザ端末におけるアプリケーションの実行中で表示される第1画像フレームと第2画像フレームを取得するように構成され、前記第1画像フレームと前記第2画像フレームは、前記アプリケーションの実行中における表示画面に対応する画像フレームであり、
前記取得モジュールは更に、前記第1画像フレームと前記第2画像フレームとの差分画像を取得するように構成され、前記差分画像は、前記第1画像フレームと前記第2画像フレームとの対応する画素点間の相違度を表し、
前記変換モジュールは、前記差分画像をグレースケール画像に変換するように構成され、前記グレースケール画像は、複数の画素点を含み、
前記決定モジュールは、前記グレースケール画像における前記画素点のグレースケール値に基づいて、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で、前記アプリケーションの実行時のラグ状況を決定するように構成されることを特徴とする、ラグ検出装置。
【請求項11】
前記決定モジュールは更に、前記第1画像フレームに対応する第1画素値行列及び前記第2画像フレームに対応する第2画素値行列を決定するように構成され、
前記取得モジュールは更に、前記第1画素値行列と前記第2画素値行列を減算し、前記差分画像を得るように構成され、前記差分画像は、差分行列の形式で表現され、前記差分行列に、前記画素点間の相違度に対応する差分画素値が含まれることを特徴とする
請求項10に記載の装置。
【請求項12】
前記取得モジュールは更に、前記差分画像に対応する前記差分行列における前記差分画素値を取得するように構成され、
前記変換モジュールは更に、前記差分画素値をグレースケール値に変換し、前記グレースケール画像を得るように構成され、前記グレースケール画像は、グレースケール値行列の形式で表現されることを特徴とする
請求項11に記載の装置。
【請求項13】
前記決定モジュールは更に、前記グレースケール画像から、前記画素点の最大グレースケール値を決定するように構成され、
前記決定モジュールは更に、前記最大グレースケール値がグレースケール要件よりも小さいことに応答して、前記第1画像フレームと前記第2画像フレームとの間の表示時間長内で前記アプリケーションの実行時にラグが存在すると決定するように構成されることを特徴とする
請求項10から12のうちいずれか一項に記載の装置。
【請求項14】
コンピュータ機器であって、前記コンピュータ機器は、プロセッサと、メモリと、を備え、前記メモリに、少なくとも1つの命令、少なくとも1つのプログラム、コード集合又は命令集合が記憶されており、前記少なくとも1つの命令、前記少なくとも1つのプログラム、前記コード集合又は命令集合は、前記プロセッサによりロードされて実行され、請求項1から8のうちいずれか一項に記載のラグ検出方法を実現することを特徴とする、コンピュータ機器。
【請求項15】
コンピュータに、請求項1から8のうちいずれか一項に記載のラグ検出方法を
実行させるコンピュータプログラム。
【国際調査報告】