JP2021525034A - 3dゲームストリーミングシナリオでの推測航法及び遅延の改善 - Google Patents

3dゲームストリーミングシナリオでの推測航法及び遅延の改善 Download PDF

Info

Publication number
JP2021525034A
JP2021525034A JP2020564883A JP2020564883A JP2021525034A JP 2021525034 A JP2021525034 A JP 2021525034A JP 2020564883 A JP2020564883 A JP 2020564883A JP 2020564883 A JP2020564883 A JP 2020564883A JP 2021525034 A JP2021525034 A JP 2021525034A
Authority
JP
Japan
Prior art keywords
video
image
frame
streaming server
computer device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020564883A
Other languages
English (en)
Other versions
JP7490575B2 (ja
Inventor
ローレンス ブロンダー,マシュー
ローレンス ブロンダー,マシュー
ネブラエフ,イヴァン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2021525034A publication Critical patent/JP2021525034A/ja
Application granted granted Critical
Publication of JP7490575B2 publication Critical patent/JP7490575B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/10Selection of transformation methods according to the characteristics of the input images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本明細書で説明する例は、概して、クライアント装置でビデオゲームをストリーミングするためのシステム及び方法に関する。クライアント装置は、ビデオゲーム制御をストリーミングサーバに送信することができる。クライアント装置は、ストリーミングサーバからのビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームを受信することができる。クライアント装置は、フレームに表示するビデオストリームのビデオ画像が、フレームを表示する前の指定時間に完全に受信されていないと判定する場合がある。クライアント装置は、ビデオ画像の履歴及びビデオストリームの動きベクトルに基づいて画像変換を決定することができる。クライアント装置は、画像変換を、以前のフレームに対応する1つ又は複数の画像の一部に適用することができる。クライアント装置は、変換された画像の一部を含む代替ビデオ画像をフレームに表示することができる。

Description

本開示は、ストリーミングビデオゲーム、より具体的には、ストリーミングビデオゲームにおける遅延の軽減に関する。
ストリーミングビデオゲームは、クライアント装置がネットワークを介してゲームを実行しているサーバに制御コマンドを提供し、サーバが制御コマンドに反応してビデオストリームを生成し、このビデオストリームがネットワークを介してクライアント装置に送信され、クライアント装置の画面に表示されるビデオゲームとして規定され得る。ストリーミングビデオゲームは、サーバが何らかの処理を実行している場合でも、クライアント装置がユーザに提示されるビデオ画像をレンダリングする従来の多くのビデオゲームとは異なり得る。例えば、マルチプレーヤーゲームでは、サーバはプレーヤー同士の間の相互作用を計算できるが、サーバは、典型的に、ビデオ画像をレンダリングするために、シーン情報をクライアント装置に送信する。ストリーミングビデオゲームは、ゲーム処理を一元化し、クライアント装置でゲームを実行する場合と比較して、より薄く、より複雑でないクライアント装置とより複雑でないクライアントソフトウェアとを可能にするという利点を提供し得る。例えば、ストリーミングビデオゲームは、専用のグラフィック処理カードがないモバイル装置に適している場合がある。
ストリーミングビデオゲームは、ビデオをストリーミングするために使用される通信ネットワークの遅延及び遅延変動(ジッター)に関して困難に直面する可能性がある。つまり、クライアント装置は、ネットワーク遅延のために、意図した時間にビデオパケットを受信できない可能性がある。ビデオパケットを受信する実際の時間は、ジッターのために予測が難しい場合がある。特に、ワイヤレスネットワークは、ビデオをストリーミングするのに十分な帯域幅を提供しているが、同様の帯域幅を有する有線ネットワークと比較して、遅延及びジッターの影響を大きく受ける可能性がある。
従来のストリーミングビデオ(例えば、映画)とは異なり、ビデオはユーザ入力に基づいているため、ストリーミングビデオゲームにはバッファリングが向いていない可能性があり、そのため、将来のフレームで提示するビデオ画像は事前に利用できない。さらに、クライアント装置が並列ゲームエンジンを実行する従来のマルチプレーヤーゲームとは異なり、ストリーミングゲームのためのクライアント装置には、現在のゲーム状態に関する情報がない場合がある。従って、表示するための新しいビデオ画像が受信されていない場合に、クライアント装置はフリーズする可能性がある。
こうして、当技術分野では、コンピュータ装置上でのビデオゲームストリーミングのためのグラフィック処理を改善する必要がある。
以下は、そのような実施態様の基本的な理解を与えるために、本開示の1つ又は複数の実施態様の簡略化された概要を提示する。この概要は、想定される全ての実施多様の広範な概要ではなく、全ての実施態様の基本的な要素又は重要な要素を特定したり、一部又は全ての実施態様の範囲を説明したりすることを目的とするものではない。その唯一の目的は、後で提示するより詳細な説明の前置きとして、本開示の1つ又は複数の実施態様のいくつかの概念を簡略化された形で提示することである。
1つ例示的な実施態様は、ストリーミングビデオゲームをプレイするためのコンピュータ装置に関する。コンピュータ装置は、データ及び命令を格納するメモリ、メモリと通信する中央処理装置、通信ネットワークと通信可能に結合されたネットワークインターフェイス、クライアントアプリケーション、及びディスプレイ制御コンポーネントを含み得る。コンピュータ装置は、ネットワークインターフェイスを介してビデオゲーム制御をストリーミングサーバに送信するように動作可能であり得る。コンピュータ装置は、ネットワークインターフェイスを介したストリーミングサーバからのビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームを受信するように動作可能であり得る。コンピュータ装置は、フレームに表示するビデオストリームのビデオ画像が、フレームに表示する前の指定時間に完全に受信されていないと判定するように動作可能であり得る。コンピュータ装置は、少なくともビデオ画像の履歴及びビデオストリームの動きベクトルに基づいて画像変換を決定するように動作可能であり得る。コンピュータ装置は、画像変換を、1つ又は複数の以前のフレームに対応する1つ又は複数の画像の少なくとも一部に適用して、代替ビデオ画像を生成するように動作可能であり得る。コンピュータ装置は、フレームに表示するビデオ画像が指定時間に完全に受信されなかったとの判定に応じて、変換された画像の少なくとも一部を含む代替ビデオ画像をフレームに表示するように動作可能であり得る。
別の例示的な実施態様は、コンピュータ装置上でストリーミングビデオゲームをプレイするための方法に関する。この方法は、ビデオゲーム制御コマンドをストリーミングサーバに送信するステップを含み得る。この方法は、ビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームをストリーミングサーバから受信するステップを含み得る。この方法は、フレームに表示するビデオストリームのビデオ画像が、フレームに表示する前の指定時間に完全に受信されていないと判定するステップを含み得る。この方法は、少なくともビデオ画像の履歴及びビデオストリームの動きベクトルに基づいて画像変換を決定するステップを含み得る。この方法は、画像変換を、1つ又は複数の以前のフレームに対応する1つ又は複数の画像の少なくとも一部に適用して、代替ビデオ画像を生成するステップを含み得る。この方法は、フレームに表示するビデオ画像が指定時間に完全に受信されなかったとの判定に応じて、変換された以前に表示された画像の少なくとも一部を含む代替ビデオ画像をフレームに表示するステップを含み得る。
別の例示的な実施態様は、コンピューティング装置上でストリーミングビデオゲームをプレイするための、1つ又は複数のプロセッサによって実行可能なコードを含むコンピュータ可読媒体に関する。コンピュータ可読媒体は、ビデオゲーム制御をストリーミングサーバに送信するためのコードを含み得る。コンピュータ可読媒体は、ビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームをストリーミングサーバから受信するためのコードを含み得る。コンピュータ可読媒体は、フレームに表示するビデオストリームのビデオ画像が、フレームに表示する前の指定時間に完全に受信されていないと判定するためのコードを含み得る。コンピュータ可読媒体は、少なくとも以前のフレームに対応するビデオストリームの画像、及び以前のフレームのカメラ変換行列に基づいて選択する動きベクトルに基づいて画像再投影を決定するためのコードを含み得る。コンピュータ可読媒体は、画像再投影を、1つ又は複数の以前のフレームに対応するビデオストリームの1つ又は複数の画像の少なくとも一部に適用して、代替ビデオ画像を生成するためのコードを含み得る。コンピュータ可読媒体は、フレームに表示するビデオ画像が指定時間に完全に受信されなかったとの判定に応じて、再投影された画像の少なくとも一部を含む代替ビデオ画像をフレームに表示するためのコードを含み得る。
本開示の実施態様に関連する追加の利点及び新規な特徴は、部分的には以下の説明に記載され、部分的には、以下の説明を検討するか、又は実践によって学習することにより当業者に明らかになるであろう。
本開示の実施態様による、ストリーミングビデオゲームをプレイするための例示的なシステムの概略ブロック図である。 本開示の実施態様による、ストリーミングビデオゲームをプレイするためのプロセス及び通信を示す図である。 本開示の実施態様による、代替ビデオフレームを含むストリーミングビデオゲームのビデオストリームの例である。 本開示の実施態様による、ストリーミングビデオゲームをプレイするための方法のフローチャートである。 本開示の実施態様による例示的なコンピュータ装置の概略ブロック図である。
本開示は、ビデオゲームをストリーミングするためのシステム及び方法を提供する。本明細書で使用される場合に、ストリーミングビデオゲームという用語は、ストリーミングサーバが、ビデオゲームを実行し、画像を生成し、画像を符号化(encoding)するビデオストリームをストリーミングクライアント装置に送信する構成を指す。ストリーミングサーバは、ストリーミングクライアント装置のレンダリングプロセスを実行することによって画像を生成することができる。ただし、ストリーミングサーバは、生成された画像を実際には画面又はモニタに表示しない場合がある。代わりに、ストリーミングサーバは画像をビデオストリームとして符号化する場合がある。ビデオストリームは、ビデオフレームに対応する画像を符号化することができる。フレームは、画像を表示するための連続した期間であり得る。符号化は、各フレームに対応する画像を示す画像及び/又は変更情報(例えば、動きベクトル)を含み得る。ネットワーク通信の場合に、符号化されたビデオストリームは複数のビデオパケットに分割され、各ビデオパケットにはビデオストリームの一部が含まれる。ビデオパケットは、転送中に失われたり、順序が狂って到着したり、又はビデオパケットが到着したときに対応するフレームを表示する時間が徒過するように遅延したりする可能性がある。
実施態様では、例えば、本開示は、ストリーミングクライアント装置でのユーザの体験に対するネットワーク遅延の影響を低減するためのシステム及び方法を提供する。特に、本開示は、ストリーミングクライアント装置が、フレームに対応する画像をストリーミングクライアント装置のディスプレイに提示するのに間に合うようにビデオパケットを受信していないという問題に対処する。本開示は、1つ又は複数のビデオパケットが時間内に受信されない場合に、生成された画像の履歴及びビデオストリームの動きベクトルに基づいて代替画像が生成される推測航法(dead reckoning)アプローチを提供する。
ストリーミングクライアント装置は、ビデオフレームを表示するためのビデオデータの少なくとも一部(例えば、1つ又は複数のビデオパケット)が、ビデオフレームを表示する前の時点で受信されていないと判定することができる。ストリーミングクライアント装置は、ビデオフレームの履歴及びビデオストリームの動きベクトルに基づいて画像変換を決定することができる。ストリーミングクライアントは、画像変換を、1つ又は複数の以前のフレームの少なくとも一部に適用して、代替ビデオフレームを生成することができる。ビデオデータが表示時間に到着していない場合に、ストリーミングクライアントは、受信していないビデオフレームの代わりに代替ビデオフレームを表示することができる。従って、新しいビデオフレームが利用できないときにディスプレイ上の画像をフリーズする代わりに、ストリーミングクライアントは、欠落しているビデオフレームが代替画像としてどのように見えるかを予測することができる。予測した代替画像が欠落している画像の正確な複製である可能性は低いが、代替画像はビデオフレームを埋めて動きを滑らかにすることにより、ユーザ体験を向上させることができる。ストリーミングクライアントが現在のビデオパケットを受信すると、ストリーミングクライアントは、現在のビデオパケットに基づいて、サーバからのビデオストリームを正しいフレームで表示することができる。
画像変換の決定は、ビデオゲームクライアントアプリケーションの支援の有無にかかわらず、ストリーミング装置のオペレーティングシステムによって実行され得る。ビデオゲームクライアントアプリケーションの支援なしに、オペレーティングシステムは、ビデオストリームを解析して画像変換を決定することができる。例えば、ビデオストリームは、画像、及び/又は、画像同士の間の特定のピクセルの変換を示す動きベクトルを含むように符号化され得る。オペレーティングシステムは、画像を解析してオブジェクトを識別し、オブジェクトの深度を推定することができる。次に、オペレーティングシステムは、以前のフレームの画像からの動きベクトルを、未受信の画像に対応する現在のフレームに外挿して、画像変換を決定することができる。
ビデオゲームクライアントアプリケーション及び/又はストリーミングサーバの支援により、オペレーティングシステムは、画像に関する既知の情報を使用して画像変換を改善することができる。例えば、ビデオゲームは、仮想カメラの姿勢(pose)及びこの姿勢の変化を示すカメラマトリックスを提供し得る。カメラ姿勢がビデオフレーム同士の間の主要な動きの原因となる可能性があるため、カメラマトリックスを使用して画像変換をより正確に予測することができる。別の例として、ビデオゲームは、ビデオゲーム画像の幾何学的形状に関するいくつかの情報を提供し得る。例えば、ビデオゲームはオブジェクトの位置を特定することができる。オペレーティングシステムは、オブジェクトテクスチャをキャッシュし、画像変換後にキャッシュされたテクスチャをオブジェクトに適用することができる。
ここで図1を参照すると、例示的なコンピュータシステム100は、ディスプレイ116上に提示するためのビデオ画像を対応するビデオフレームに提供するコンピュータ装置110と、ビデオゲームをコンピュータ装置110にストリーミングするストリーミングサーバ160とを含み得る。ストリーミングサーバ160は、1人又は複数のユーザからの様々な入力(例えば、制御コマンド158)を処理し、ゲーム状態を更新するゲームエンジン162を含み得る。ゲーム状態は、環境、キャラクター、オブジェクト、又はそれらのプロパティ等、ビデオゲームの任意の特徴の状態を指し得る。ストリーミングサーバ160は、コンピュータ装置110のためにビデオストリーム166を生成及び符号化するビデオエンコーダ164も含み得る。ビデオストリーム166は、例えば、ユーザのキャラクター視点に基づく、又はユーザのゲーム状態の該当する要素を伝える情報を含む、特定のユーザのために生成された画像を符号化し得る。ストリーミングサーバ160は、例えば、1つ又は複数のハードウェアコンピュータサーバとして、又はクラウドサービスによって提供される1つ又は複数の仮想サーバとして実装することができる。
コンピュータ装置110は、ビデオゲームをストリーミングするためにネットワークに接続可能であり得る任意のモバイル装置又は固定コンピュータ装置を含み得る。コンピュータ装置110は、例えば、デスクトップ又はラップトップ又はタブレットコンピュータ、携帯電話、ゲームコンソール/装置、混合現実又は仮想現実装置、音楽装置、テレビ、ナビゲーションシステム、カメラ、携帯情報端末(PDA)、又はハンドヘルド装置等のコンピュータ装置であり得、或いは1つ又は複数の他の装置との有線及び/又は無線接続機能を有する他のコンピュータ装置であり得る。
コンピュータ装置110は、メモリ112と、コンピュータ装置110の動作を制御するように構成されたCPU114とを含み得る。メモリ112は、オペレーティングシステム140及び/又はクライアントアプリケーション150を規定及び/又は関連付けるデータ及び/又はコンピュータ実行可能命令を格納するように構成され得る。CPU114は、オペレーティングシステム140及び/又はクライアントアプリケーション150を実行することができ、これは、ストリーミングゲームクライアントアプリケーションであり得る。メモリ112の例は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、テープ、磁気ディスク、光ディスク、揮発性メモリ、不揮発性メモリ、及びそれらの任意の組合せ等の、コンピュータによって使用可能なメモリのタイプを含むことができるが、これらに限定されない。メモリ112は、CPU114によって実行されているアプリケーションのローカルバージョンを格納することができる。
CPU114は、命令を実行するための1つ又は複数のプロセッサを含み得る。CPU114の例は、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、システムオンチップ(SOC)を含む、本明細書に記載されるように特別にプログラムされた任意のプロセッサ、又は他のプログラマブルロジック、又はステートマシンを含むことができるが、これらに限定されない。CPU114は、算術論理演算装置(ALU)、レジスタ、及び制御ユニット等の他の処理コンポーネントを含み得る。
ディスプレイ116は、コンピュータ装置110のCPU114及びグラフィック処理装置ト(GPU)120と通信するビデオポート122に接続され得る。画像処理は、CPU114とGPU120との間で、画像変換の決定及び適用を提供する方法で分割され得る。例えば、CPU114は、画像変換をいつ適用するかを決定することができ、GPU120は、画像変換を、1つ又は複数の以前の画像の各ピクセルに適用することができる。
コンピュータ装置110は、ユーザからの入力を受け取るための入力装置118も含み得る。入力装置118は、例えば、マウス、キーボード、タッチスクリーン、タッチパッド、ボタン、ゲームコントローラ、デジタルペン、ヘッドマウントディスプレイ、ウェアラブル装置、又は入力を提供する他の装置を含み得る。
コンピュータ装置110は、CPU114及び/又はGPU120と統合されたビデオポート122も含み得る。ビデオポート122は、例えば、VGA、DVI、HDMI(登録商標)、又はディスプレイポート出力であり得る。ビデオポート122は、ディスプレイ116によって利用され得るビデオ信号を提供することができ、このディスプレイ116は、モニタ又は仮想現実ヘッドマウントディスプレイ(HMD)を含み得る。例えば、ビデオポート122は、GPUメモリ126内のビデオバッファを定期的にスキャンアウト(scan out)することができる。CPU114、GPU120、及びビデオポート122は、コンピュータ装置110のための汎用グラフィック処理操作を実行することができる。
コンピュータ装置110は、任意の有線又は無線ネットワークインターフェイス(例えば、イーサネット又はWi−Fi(登録商標))を含み得るネットワークインターフェイス124も含み得る。別の例として、コンピュータ装置110は、オプションで、ユニバーサルシリアルバス(USB)インターフェイスを含み得る。コンピュータ装置110のネットワークインターフェイス124は、ネットワーク170を介してストリーミングサーバ160の対応するネットワークインターフェイスに接続され得る。ネットワーク170は、パケットを送信する通信ネットワークであり得る。例えば、ネットワーク170は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、又はインターネットであり得る。ネットワーク170は、インターネットプロトコル(IP)を含む様々なプロトコルを利用することができる。従って、コンピュータ装置110は、ネットワーク170を介してストリーミングサーバ160との間でデータ(例えば、データパケット)を送受信することができる。
ネットワーク170は、通信の遅延に寄与する可能性がある。ストリーミングビデオゲームの文脈における遅延は、ユーザが入力を行ってからユーザが画面(例えば、ディスプレイ116)上で更新された画像を見るまでの期間を指し得る。遅延が長いと、ゲームがプレイできなくなる可能性がある。ストリーミング状況での遅延には、ネットワーク遅延、レンダリング時間、画像符号化時間等を含む多くの要素が含まれ、100ミリ秒以上になる場合がある。ネットワーク通信の別の特性は、ジッターである。ジッターは、遅延の変動性を測定する。ストリーミングビデオゲームのプレーヤーの観点からは、ジッターは、入力に対する不均一な反応として現れ、不快なゲーム体験をもたらす可能性がある。一般に、Wi−Fi(登録商標)及びモバイルネットワーク等の無線ネットワークは、有線ネットワークと比較してジッターが高くなる。帯域幅は、クライアント(例えば、コンピュータ装置110)とサーバ(例えば、ストリーミングサーバ160)との間で平均して1秒あたりにどれ位のデータの量を送信できるかを指し得る。帯域幅は非対称であり得、通常、クライアントからサーバへの帯域幅は反対方向よりもはるかに低くなる。ネットワークストリーミングには、通常、ユーザデータグラムプロトコル(UDP)等の不可逆(lossy)ネットワークプロトコルが使用される。これは、トランスポート制御プロトコル(TCP)等のエラーチェック及び修正を伴うプロトコルでは、遅延の保証が劣るためである。UDPのようなプロトコルを使用すると、送信中にいくつかのパケットが失われる可能性がある。
オペレーティングシステム140は、メモリ112に格納され、且つCPU114によって実行される命令(クライアントアプリケーション150等)を含み得る。オペレーティングシステム140は、GPU120を制御するためのディスプレイコントローラ142を含み得る。例えば、ディスプレイコントローラ142は、ソース画像のレンダリング又は調整の実行等の1つ又は複数の特定のグラフィック処理操作を実行するために、制御コマンドをGPU120に提供することができる。ディスプレイコントローラ142は、ビデオストリーム166を受信及び復号化(decoding)するためのストリーミングエンジン144、ビデオストリーム166の遅延を検出するための遅延モジュール146、及び現在のビデオフレームを受信していない場合に、1つ又は複数の以前のビデオフレームの1つ又は複数の画像に適用される画像調整を生成するための再投影モジュール148を含み得る。
コンピュータ装置110は、メモリ112に格納され、且つCPU114によって実行される命令を含むクライアントアプリケーション150も含み得る。アプリケーション150は、例えば、ストリーミングサーバ160と通信するストリーミングビデオゲームクライアントアプリケーションであり得る。例えば、アプリケーション150は、ユーザからのユーザ入力を受け取り、且つ制御コマンド158をストリーミングサーバ160に送信する制御コンポーネント152を含み得る。実施態様では、アプリケーション150は、ビデオゲームに関するいくつかの状態情報も維持し得る。例えば、アプリケーション150は、カメラの姿勢を示すカメラマトリックス154を維持することができる。アプリケーション150は、ストリーミングサーバ160から受信したサーバカメラマトリックスに基づいてカメラマトリックス154を更新することができる。さらに、実施態様では、アプリケーション150は、ビデオフレームでレンダリングされ得る1つ又は複数のオブジェクトの幾何学的形状を示すジオメトリ(geometry)156を含み得る。いくつかの実施態様では、アプリケーション150は、画像変換を決定するために、カメラマトリックス154及び/又はジオメトリ156を再投影モジュール148に提供することができる。
ここで図2を参照すると、図200は、コンピュータ装置110及びストリーミングサーバ160での処理及び通信のタイミングの例を示している。202において、コンピュータ装置110(例えば、GPU120及びディスプレイ116)は、以前の画像を表示することができる。以前の画像は、ビデオストリームの以前のフレームに対応し得る。以前の画像は、例えば、ストリーミングサーバから受信したビデオ情報に基づき得る。以下でさらに詳細に説明するように、以前の画像は、別のビデオフレームに適用された画像変換に基づくこともできる。いずれの場合も、以前の画像は、例えば、以前のフレームでディスプレイ116に表示された画像を指し得る。さらに、フレームに表示される画像のビデオパケットが遅れて到着する場合がある。画像の到着が遅過ぎて正しいフレームに表示できない場合でも、画像は画像変換に使用され、以前のフレームに対応する画像と呼ばれることがある。
204において、コンピュータ装置110(例えば、制御コンポーネント152)は、ユーザからビデオゲームを制御するためのユーザ入力を受け取ることができる。例えば、入力は、入力装置118(例えば、マウス、キーボード、タッチスクリーン、コントローラ、又はユーザの相互作用を可能にする他の装置)を介して提供され得る。206において、制御コンポーネント152は、ユーザ入力を制御コマンド158としてストリーミングサーバ160に渡すことができる。制御コマンド158は、生の入力(例えば、マウスの動き及びボタンの押下)であり得、又は制御コンポーネント152は、入力のいくつかの処理を実行し得る。例えば、制御コンポーネント152は、マウスの動き又はボタンの押下をゲームコマンドに変換することができる。すなわち、生の入力データを送信する代わりに、制御コンポーネント152は、キャラクターを前進させるか、又は能力をアクティブにするコマンド等のゲームコマンドを送信することができる。従って、制御コマンド158は、生の入力コマンド及びゲームコマンドの一方又は両方を含み得る。
208において、ストリーミングサーバ160は、ゲーム状態の更新を実行することができる。ゲーム状態の更新は、ゲームエンジン162によって実行される任意のコマンドを含み得る。例えば、ゲーム状態の更新は、1人又は複数のユーザ、環境、及びオブジェクトの間の相互作用を含み得る。ゲーム状態の更新は、制御コマンド158に基づき得る。
210において、ストリーミングサーバ160は、各ユーザのためにビデオレンダリングを実行することができる。ストリーミングサーバ160は、ユーザのカメラビューに基づいて画像を生成することができる。例えば、カメラビューには、環境と、ユーザのキャラクターが表示できるオブジェクトが含まれる場合がある。ストリーミングサーバ160は、必ずしもストリーミングサーバ160で生成された画像を表示することができるとは限らない。ストリーミングサーバ160は、メモリ内に画像を生成することができる。
212において、ストリーミングサーバ160は、レンダリングされたビデオ画像のビデオ符号化を実行することができる。送信するビデオのサイズを縮小するための様々なビデオ符号化技術が当技術分野で知られている。このようなビデオ符号化は、ゲームで使用されるネットワーク帯域幅を削減するようにビデオゲームをストリーミングするために重要である。ビデオ符号化技術は、符号化された画像を再生成するために復号化され得る様々な記述的データを生成し得る。例えば、ビデオ符号化は、ピクセル又はオブジェクトのグループに関する動きベクトルを含み得る。
214において、コンピュータ装置110は、1つ又は複数の以前の画像に適用される画像調整を決定することができる。コンピュータ装置110は、ストリーミングサーバ160での処理と同時に画像調整を決定することができる。従って、コンピュータ装置110は、次のビデオフレームのパケットが216において到着することを意図しているそのときに利用可能な画像調整を有することができる。
218において、コンピュータ装置110は、次のビデオフレームのビデオパケットが受信されたかどうかを判定することができる。動作218は、次のビデオフレームを表示する前の指定時間に発生し得る。例えば、指定時間は、ビデオパケットの復号化及び/又は画像調整の実行を可能にする時間であり得る。全てのビデオパケットが指定時間に受信された場合に、コンピュータ装置110は、222において、受信したビデオパケットに基づいて画像を復号化することができる。ビデオパケットが指定時間までにタイムリーに受信されなかった場合に、220において、コンピュータ装置110は、決定された画像調整を、1つ又は複数の以前のフレームに関連付けられた1つ又は複数の画像に適用して、代替画像を生成することができる。実施態様では、動作218での決定は、動作220で画像を調整するか、又は動作222で画像を復号化する前に行うことができる。両方の動作220及び222が同じリソース(例えば、GPU120及びメモリ126)を利用できるため、どの動作を実行するかを決定することにより、リソースを節約できる。代替実施態様では、動作220及び222の両方を実行して、2つの画像を生成することを試みることができる。復号化プロセスが不成功になった場合に(例えば、ビデオパケットがタイムリーに受信されなかったため)、代替画像が選択され得る。
224において、コンピュータ装置110は、ビデオパケットが指定時間までにタイムリーに受信されなかった場合には代替画像を表示し、又はビデオパケットがタイムリーに受信された場合には受信画像を表示することができる。従って、コンピュータ装置110は、ビデオパケットがタイムリーに受信されたかどうかに応じて、ストリーミングサーバによって生成された画像又は代替画像のいずれかを表示することができる。例えば、遅延が長い状況では、コンピュータ装置110は、代替画像を表示し得る。
ここで図3を参照すると、例示的なビデオストリーム300は、ビデオフレーム310、330、及び350を含む。ビデオフレーム310及び330は、ストリーミングサーバ160によって生成されたストリーミングフレームであり得る。ビデオフレーム350は、対応するビデオフレームがストリーミングサーバ160から表示に間に合うように到着しない場合に、コンピュータ装置110によって生成された代替フレームであり得る。
一例として、ビデオフレーム310は、垂直な廊下と交差し、壁314−aで終わる廊下312−aの画像を含み得る。例えば、ビデオゲームは、ユーザが、廊下312−aに沿って歩くキャラクターを制御することを可能にし得る。廊下312−aは、左壁及び右壁によって規定され得る。右壁は窓316−aを含み得、左壁は出入り口318−aを含み得る。
ビデオフレーム330は、ビデオフレーム310に続く次のビデオフレームであり得る。例えば、ビデオフレーム330は、制御コマンド158によってキャラクターを前方に移動させる場合に生成され得る。ビデオフレーム330では、各オブジェクトの(例えば、ビデオフレーム310内の)以前の位置が破線で示されている。動きベクトル332、334、336は、動きの方向及び大きさを示す矢印として示されている。例えば、壁314−bは、動きベクトル332によって示されるようにビデオフレーム330内で下向きに移動し得、一方、窓316−bは、動きベクトル334によって示されるように下向き且つ右に移動し得、出入り口318−bは、動きベクトル336によって示されるように下向き且つ左に移動し得る。ビデオフレーム330内の壁314b、窓316b、及び出入り口318bのサイズもまた、カメラが各オブジェクトに近づくにつれて増大し得る。サイズ情報は、ビデオ符号化に含まれ得る。
ビデオフレーム330のビデオ符号化は、壁314−b、窓316−b、及び出入り口318−bのそれぞれをピクセルのグループとして識別し、対応する動きベクトル332を示すことができる。ビデオフレーム310及びビデオフレーム330において殆どのピクセルが同じであるので、ピクセルの移動グループ及び動きベクトルを提供することは、ビデオ符号化に有意な圧縮を提供し得る。
ビデオ符号化の動きベクトル332はまた、代替画像を生成するための画像変換を決定するために使用され得、ビデオパケットがストリーミングサーバ160からタイムリーに受信されない場合に、代替画像は、ビデオフレーム350として表示され得る。ビデオフレーム350は、動きベクトル332、334、336に基づく例示的な代替画像を示す。例えば、1つの実施態様では、画像変換は、動きベクトル332、334、336を、以前のフレーム内の同じオブジェクト又はピクセルのグループに適用することを含み得る。図示のように、ビデオフレーム350において、壁314−cはさらに下に移動され得、窓316−cはさらに下及び右に移動され得、出入り口318−cはさらに下及び左に移動され得る。画像変換後に画面スペースを超えて広がるピクセルは描画されない場合がある。例えば、下端を越えて延びる出入り口318の一部は表示されない場合がある。以前のビデオフレーム330からの動きベクトルを適用すると、領域352内の全てのピクセルが移動され、且つ新しい情報が受信されていないため、色情報のない領域352が生じる可能性もある。コンピュータ装置110は、隣接するピクセルのグループ(例えば、壁314−c及び廊下312−cの左右の壁)に基づいて、領域352にどの色を使用するかを推測するために最善の努力を使用することができる。
図3は、ビデオフレームの履歴に基づく画像変換の一例を示しているが、他の技術を使用して、画像変換を決定することができる。例えば、カメラ変換及びピクセル毎の深度値が与えられると、ワールド空間のポイントを計算できる。各ポイントには、現在のカラーフレームから色を割り当てることができる。別のカメラ変換を指定すると、これらの色付きのポイントを画面スペースに投影できる。このタイプの画像変換は、再投影と呼ばれることがある。再投影は、例えば、位置情報又はカメラの姿勢の変化に従って画像を歪める(skewing)か、又は他に調整することを含み得る。例えば、コンピュータ装置110は、ピクセル毎の深度及び色、並びに以前のフレームからのカメラ変換行列を有し得、ビデオストリーム166内のパケットは失われる場合がある。失われたパケットは、コンピュータ装置110が現在データを有さない画面上のある領域に対応し得る。現在のフレームを変換させると、コンピュータ装置110は、再投影を使用して、欠落している領域を1つ又は複数の以前のフレームからの色で埋めることができる。カメラ変換を管理し、再投影を採用する利点の1つは、再投影により、カメラの動きに起因するフレーム内の全ての画像モーションを除外(factored out)し、姿勢モーションの単一の変化として表現できるため、符号化のみに依存しない場合に、シーン内の独立したモーションソースのみを管理、送信、処理等できることである。例えば、再投影では、動きベクトル332、334、336が、シーンの残りの部分が静的であるプレーヤー/カメラの動きに由来するので、エンコーダに関する図3に関して上記の動きベクトルは省略され得る。従って、他のシーン要素がプレーヤーとは無関係に廊下312内を移動していない限り、再投影はカメラ変換のみを使用することができる。再投影モジュール148は、カメラ変換及びピクセル毎の深度値をいくつかの方法で決定することができる。
深度再構成は、平坦な2D画像(例えば、ビデオフレーム330)から深度情報を再構成するプロセスである。単一の画像、画像とカメラの変換、ステレオ画像、一連の画像等から深度情報を再構築できるいくつかのアルゴリズムが、当技術分野で知られている。これは、画像処理及びロボット工学の研究で活発な分野であり、及び深度再構成に対する新しい人工知能ベースのアプローチが使用され得る。シーンの深度情報をキャッシュして、後続のフレームで再利用できる。深度情報はまた、再投影モジュール148が3Dシーンにおける深度の表現を維持するように、相互作用的に改良及び更新することができる。深度情報は、ボクセルとして表すことも、又はパラメトリック記述を使用することもできる。実施態様では、完全なフレームのカメラ変換行列は、複数のカラー画像フレームに亘る特徴観察の対応関係から推定及び改良され得る。さらに、フレーム全体に亘るカメラ変換行列の動きベクトルが決定され、後続のフレームのために外挿され得る。
いくつかの実施態様では、ストリーミングサーバ160は、クライアントアプリケーション150を介して画像変換を決定するための追加情報を提供することができる。例えば、ストリーミングサーバ160のゲームエンジン162は、カメラマトリックス154をアプリケーション150に報告し、それによってストリーミングサーバ160及びコンピュータ装置110は、カメラ変換についての最新の理解を有する。実施態様では、カメラマトリックス154は、4×4の浮動小数点行列であり得るが、帯域幅消費を大幅に増加させない場合がある。実施態様では、カメラマトリックス154を送信するための帯域幅が小さいので、ストリーミングサーバ160は、カメラマトリックス154の冗長送信をフレームの複数のパケットで行うことができる。従って、マトリックスを含むパケットのうちの1つが時間内に到着しない場合に、カメラマトリックス154は、フレーム内の別のパケットから回復され得る。実施態様では、アプリケーション150は、ゲームエンジン162と並行してカメラマトリックス154を更新することができる。例えば、いくつかのゲームでは、制御コマンド158は、カメラマトリックス154を直接制御することができる(例えば、制御コマンド158によって、仮想カメラを動かす。)。アプリケーション150は、ストリーミングサーバ160によって実行されるより複雑なゲーム状態の更新及びレンダリング操作を実行することなく、カメラマトリックス154を更新することができる。
カメラマトリックス154は、利用可能である場合に、ストリーミングエンジン144が良好な動きベクトルを選択するのを支援し得、また、ストリーミングサーバ160とコンピュータ装置110との両方においてより高い粒度で動きベクトルを生成するのに役立ち得る。カメラ変換を知っていると、また、背景シーンを移動するオブジェクトから分離するのに役立ち得る。すなわち、カメラマトリックス154を知ることにより、コンピュータ装置110上での深度バッファ再構成をよりロバストにすることができる。
ストリーミングサーバ160によって提供され得る追加情報の別の例は、深度情報である。再投影モジュール149は、深度再構成に依存する代わりに、ストリーミングサーバ160からの深度情報を使用することができ、又は深度情報を使用して、深度再構成を増強することができる。コンピュータ装置110でグラウンドトゥルース(ground truth:正解)深度情報を有することは、深度再構成の複雑さを軽減し得る。ただし、深度バッファ情報は、ピクセル毎の深度が送信される場合に、帯域幅の消費を大幅に増加させる可能性がある。深度バッファ情報の帯域幅を削減するための1つの手法は、カメラ位置の変更を考慮した後に、深度情報の変更のみを送信することである。上記のように、再投影はカメラの動きを除外するために使用できる。
ストリーミングサーバ160によって提供され得る追加情報の別の例は、ジオメトリ156である。オブジェクトのジオメトリは急速に変化する可能性が低いので、ジオメトリ156の送信はまれにしか実行されず、情報は圧縮又はパックされ得る。例えば、ジオメトリ156は、変化が殆どないビデオフレームとともに送信され得、その結果、パケットがより少なく及び/又はより小さくなる。クライアントアプリケーション150は、コンピュータ装置110に格納されたジオメトリ156も含み得る。例えば、クライアントアプリケーション150は、頻繁に使用されるオブジェクトに関するジオメトリ156を含み得る。
ストリーミングサーバ160によって提供され得る追加情報の別の例は、ビデオ符号化に含まれる動きベクトルを超える追加の動きベクトルを含む。例えば、動きベクトルは、粗い領域からピクセル毎又はサブサンプルの粒度までの様々なレベルの粒度で、フレームの空間画面スペース領域に提供され得る。ジオメトリ156が使用される別の実施態様では、シーンジオメトリの動きベクトルは、ストリーミングサーバ160によって提供され得る。
機械学習は、画像セグメント化のために再投影モジュール148によって使用されて、粗い動きベクトル情報の範囲を改善された範囲帰属を用いてさらに改良し、及び/又は深度再構成を改善し得る。例えば、深層畳み込みニューラルネットワーク等の機械学習モデルが画像分類を実行する場合がある。例えば、ニューラルネットワークは、ビデオストリームの画像に対してクラスタリングを実行して、同じ動きベクトルを経験するピクセルのグループを識別することができる。ピクセルのグループは、ピクセルの間の固定された深深度関係を有するオブジェクトを表すことができる。別の例では、機械学習分類器は、ゲームエンジン162によって生成されるセグメントの例を使用して訓練され得、そこでオブジェクトが識別される。再投影モジュール148は、粗い粒度(coarse-grained)の動きベクトル(例えば、ビデオエンコーダ164又はゲームエンジン162によって生成され、送信のためのネットワーク帯域幅バジェット(budget)によって制約され得る)を、クライアントコンピュータ装置110上で実行される細粒度(fine-grained)の画像セグメントと組み合わせることができる。
ここで図4を参照すると、例示的な方法400は、ストリーミングビデオゲームを実行するためのコンピュータ装置110を提供し、そこで、ストリーミングサーバ160がビデオ画像を生成し、ビデオ画像をコンピュータ装置110にストリーミングする。例えば、方法400は、ストリーミングされるビデオ画像を含むパケットがコンピュータ装置110での表示に間に合うように到着しない場合に、ストリーミングビデオゲームに対する遅延の影響を低減するために使用され得る。方法400に示される動作は、時間的に重複する可能性がある。例えば、ある瞬間に、2つの動作が異なるコンポーネントによって実行される場合がある。動作の実行は、コンポーネントでインターリーブすることもできる。さらに、方法400に示される動作は、図4に示される以外の順序で実行され得る。
410において、方法400は、ビデオゲーム制御コマンドをストリーミングサーバに送信することを含み得る。例えば、コンピュータ装置110上で実行されているクライアントアプリケーション150は、制御コンポーネント152を実行して、ネットワークインターフェイス124を介して制御コマンド158をストリーミングサーバ160に送信することができる。
420において、方法400は、ビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームを受信することを含み得る。例えば、ディスプレイコントローラ142は、ストリーミングエンジン144を実行して、制御コマンド158に応答して生成されたビデオ画像を符号化するビデオストリーム166を受信することができる。ストリーミングエンジン144は、ネットワークインターフェイス124を介してストリーミングサーバ160からビデオストリーム166を受信することができる。
430において、方法400は、フレームに表示するビデオストリームのビデオ画像が、フレームに表示する前の指定時間に完全に受信されていないと判定することを含み得る。例えば、ディスプレイコントローラ142は、遅延モジュール146を実行して、フレームに表示するビデオストリーム166のビデオ画像が、フレームに表示する前の指定時間に完全に受信されていないと判定することができる。例えば、指定時間に、遅延モジュール146は、フレームの全てのパケットが受信されたかどうかを判定し、パケットが欠落しているときにビデオ画像が完全に受信されなかったと判定することができる。
440において、方法400は、少なくともビデオ画像の履歴及びビデオストリームの動きベクトルに基づいて画像変換を決定することを含み得る。例えば、再投影モジュール148は、少なくとも以前のフレームの履歴及びビデオストリームの動きベクトルに基づいて画像変換を決定することができる。実施態様では、画像変換は再投影であり得る。442において、動作440は、ビデオストリームのビデオ符号化から動きベクトルを抽出することを含み得る。例えば、再投影モジュール148は、ビデオストリーム166のビデオ符号化から動きベクトルを抽出することができる。444において、動作440は、1つ又は複数の以前のビデオフレームに対応する画像のポイントの深度値を決定することを含み得る。例えば、再投影モジュール148は、以前に表示した画像又は以前のフレームにおいて表示するには遅過ぎた、受信した画像のポイントの深度値を決定することができる。実施態様では、再投影モジュール148は、深度再構成アルゴリズムを実行することができる。別の実施態様では、448において、再投影モジュール148は、アプリケーション150を介してストリーミングサーバ160から深度情報を受信することができる。別の実施態様では、再投影モジュール148は、ビデオゲームのために訓練された機械学習モデルを画像に適用して、深度値を決定することができる。449において、動作440は、ビデオ画像に関して仮想カメラの位置を示すカメラマトリックスを維持することを含み得る。例えば、クライアントアプリケーション150は、ビデオ画像に対する仮想カメラの位置を示すカメラマトリックス154を維持することができる。
450において、方法400は、画像変換を、1つ又は複数の以前のフレームに対応する画像の少なくとも一部に適用して、代替画像を生成することを含み得る。例えば、再投影モジュール148は、GPU120を制御して、画像変換を、1つ又は複数の以前のフレームに対応する1つ又は複数の画像の少なくとも一部に適用することができる。再投影モジュール148は、画像変換と、画像変換が適用される1つ又は複数の以前に表示された画像の一部を含むコマンドをGPU120に送信することができる。GPU120は、画像変換を、1つ又は複数の以前に表示された画像に対して実行することによって代替画像を生成することができる。452において、動作450は、以前のビデオフレームの深度値及びカメラ変換に基づいて、以前のビデオフレームの少なくとも一部を再投影することを含み得る。例えば、GPU120は、以前のビデオフレームの深度値及びカメラマトリックス154に基づいて、以前のビデオフレーム330に対応する画像の少なくとも一部を再投影することができる。
460において、方法400は、代替ビデオ画像をフレームに表示することを含み得、代替ビデオ画像は、変換された画像の少なくとも一部を含む。例えば、ディスプレイ116は、ビデオフレーム330の変換された画像の少なくとも一部を含むビデオフレーム350を表示することができる。ディスプレイ116は、ビデオポート122を介してGPU120からビデオ画像をスキャンアウトすることができる。
ここで図5を参照すると、図1と比較して追加の構成要素の詳細を含む、実施態様による例示的なコンピュータ装置110が示されている。一例では、コンピュータ装置110は、本明細書に記載の1つ又は複数の構成要素及び機能に関連する処理機能を実行するためのプロセッサ48を含み得る。プロセッサ48は、単一又は複数のプロセッサのセット又はマルチコアプロセッサを含むことができる。さらに、プロセッサ48は、統合型処理システム及び/又は分散型処理システムとして実装することができる。実施態様では、例えば、プロセッサ48は、CPU114、及びGPU120を含み得る。一例では、コンピュータ装置110は、本明細書に記載の機能を実行するために、プロセッサ48によって実行可能な命令を格納するメモリ50を含み得る。実施態様では、例えば、メモリ50は、メモリ112及び/又はメモリ126を含み得る。
さらに、コンピュータ装置110は、本明細書に記載されるように、ハードウェア、ソフトウェア、及びサービスを利用する1つ又は複数の当事者との通信を確立及び維持することを提供する通信コンポーネント52を含み得る。通信コンポーネント52は、コンピュータ装置110上のコンポーネント同士の間、並びにコンピュータ装置110と、通信ネットワークに亘って配置された装置及び/又はコンピュータ装置110にシリアル又はローカルに接続された装置等の外部装置との間の通信を搬送することができる。例えば、通信コンポーネント52は、1つ又は複数のバスを含み得、さらに、外部装置とインターフェイスするように動作可能な、送信機及び受信機にそれぞれ関連する送信チェーンコンポーネント及び受信チェーンコンポーネントを含み得る。実施態様では、例えば、通信コンポーネント52は、ネットワークインターフェイス124を含み得る。
さらに、コンピュータ装置110は、本明細書に記載の実施態様に関連して使用される情報、データベース、及びプログラムの大容量記憶を提供する、ハードウェア及び/又はソフトウェアの任意の適切な組合せであり得るデータストア54を含み得る。例えば、データストア54は、オペレーティングシステム140(図1)及び/又はアプリケーション150(図1)のためのデータリポジトリであり得る。
コンピュータ装置110は、コンピュータ装置110のユーザからの入力を受け取るように動作可能であり、さらにユーザに提示するための出力を生成するように動作可能なユーザインターフェイスコンポーネント56も含み得る。ユーザインターフェイスコンポーネント56は、キーボード、テンキー、マウス、タッチ感知ディスプレイ、ナビゲーションキー、ファンクションキー、マイク、音声認識コンポーネント、ユーザからの入力を受け取ることができる他の機構、又はそれらの任意の組合せを含むが、これらに限定されない1つ又は複数の入力装置を含み得る。さらに、ユーザインターフェイスコンポーネント56は、ディスプレイ、スピーカ、触覚フィードバック機構、プリンタ、ユーザに出力を提示することができる任意の他の機構、又はそれらの任意の組合せを含むが、これらに限定されない1つ又は複数の出力装置を含み得る。
実施態様では、ユーザインターフェイスコンポーネント56は、オペレーティングシステム140及び/又はアプリケーション150の動作に対応するメッセージを送信及び/又は受信することができる。さらに、プロセッサ48は、オペレーティングシステム140及び/又はアプリケーション150を実行し、メモリ50又はデータストア54はそれらオペレーティングシステム140及び/又はアプリケーション150を格納することができる。
本願で使用される場合に、「コンポーネント」、「システム」等の用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、又は実行中のソフトウェア等のコンピュータ関連エンティティを含むことを意図しているが、これらに限定されない。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、及び/又はコンピュータであり得るが、これらに限定されない。例として、コンピュータ装置上で実行されているアプリケーションとコンピュータ装置との両方をコンポーネントにすることができる。1つ又は複数のコンポーネントは、プロセス及び/又は実行スレッド内に存在することができ、コンポーネントは、1つのコンピュータにローカライズされ、及び/又は2つ以上のコンピュータに分散され得る。さらに、これらのコンポーネントは、様々なデータ構造が格納されている様々なコンピュータ可読媒体から実行できる。コンポーネントは、ローカルシステム、分散システム内の別のコンポーネントと相互作用する、及び/又は信号を介して他のシステムとインターネット等のネットワークを介して相互作用する1つのコンポーネントからのデータ等の、1つ又は複数のデータパケットを有する信号に従って等、ローカル及び/又はリモートプロセスを介して通信することができる。
さらに、「又は」という用語は、排他的な「又は」ではなく、包括的な「又は」を意味することを意図している。つまり、特に明記されていない限り、又は文脈から明らかでない限り、「XはA又はBを使用する」という句は、自然な包括的順列のいずれかを意味することを意図している。つまり、「XはA又はBを使用する」という句は、XはAを使用する、XはBを使用する、又はXはAとBとの両方を使用する、のいずれの場合も満たす。さらに、本願及び添付の特許請求の範囲で使用される冠詞「1つの(a, an)」は、特に明記しない限り、又は文脈から単数形を対象としたことが明らかでない限り、一般に「1つ又は複数」を意味すると解釈すべきである。
いくつかの装置、コンポーネント、モジュール等を含み得るシステムに関して、様々な実施態様又は特徴を提示してきた。様々なシステムは、追加の装置、コンポーネント、モジュール等を含み得、及び/又は図に関して説明した装置、コンポーネント、モジュール等の全てを含まない場合があることを理解及び認識されたい。これらのアプローチの組合せも使用できる。
本明細書に開示される実施形態に関連して説明する方法の様々な例示的な論理、論理ブロック、及び動作は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)又は他のプログラマブル論理装置、ディスクリートゲート又はトランジスタロジック、ディスクリートハードウェアコンポーネント、又は本書に記載される機能を実行するように設計されたそれらの任意の組合せのうちの特別にプログラムされたもので実装又は実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサはまた、コンピュータ装置の組合せ、例えば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと組み合わせた1つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成として実装され得る。さらに、少なくとも1つのプロセッサは、上記のステップ及び/又は動作のうちの1つ又は複数を実行するように動作可能な1つ又は複数のコンポーネントを含み得る。
さらに、本明細書に開示される実施態様に関連して説明される方法又はアルゴリズムのステップ及び/又は動作は、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、又はこれら2つの組合せで直接具体化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は当技術分野で知られている他の形式の記憶媒体に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合することができる。あるいは、記憶媒体はプロセッサに一体化され得る。さらに、いくつかの実施態様では、プロセッサ及び記憶媒体は、ASICに存在し得る。さらに、ASICはユーザ端末に存在する場合がある。あるいは、プロセッサ及び記憶媒体は、ユーザ端末内の個別のコンポーネントとして存在し得る。さらに、いくつかの実施態様では、方法又はアルゴリズムのステップ及び/又は動作は、コード及び/又は命令の1つ又は任意の組合せ又はセットとして、機械可読媒体及び/又はコンピュータ可読媒体上に存在し得、これらは、コンピュータプログラム製品に組み込まれ得る。
1つ又は複数の実施態様では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合に、機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に格納又は送信され得る。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムのある場所から別の場所への転送を容易にする任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータがアクセスできる任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、又は所望のプログラムコードを命令又はデータ構造の形式で搬送又は格納するように使用でき、コンピュータによってアクセスできる他の任意の媒体を含むことができる。本明細書で使用されるディスク(disk)及びディスク(disc)には、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク及びBlu−ray(登録商標)ディスクが含まれ、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は通常、レーザーを使用してデータを光学的に再生する。上記の組み合わせも、コンピュータ可読媒体の範囲に含める必要がある。
本開示の実施態様は、その例に関連して説明してきたが、本明細書の範囲から逸脱することなく、上記の実施態様の変形及び修正を行うことができることが当業者によって理解されよう。他の実施態様は、本明細書に開示された例による仕様の検討又は実践から当業者には明らかになろう。

Claims (15)

  1. コンピュータ装置であって、当該コンピュータ装置は、
    データ及び命令を格納するメモリと、
    該メモリと通信する中央処理装置と、
    通信ネットワークと通信可能に結合されたネットワークインターフェイスと、
    前記メモリ、前記中央処理装置、及び前記ネットワークインターフェイスと通信するクライアントアプリケーション及びディスプレイ制御コンポーネントと、を含み、
    該クライアントアプリケーション及びディスプレイ制御コンポーネントは、
    前記ネットワークインターフェイスを介してビデオゲーム制御をストリーミングサーバに送信し、
    前記ネットワークインターフェイスを介した前記ストリーミングサーバからの前記ビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームを受信し、
    前記ビデオ画像に対する仮想カメラの位置を示すカメラマトリックスを維持し、
    フレームに表示する前記ビデオストリームのビデオ画像が、前記フレームを表示する前の指定時間に完全に受信されていないと判定し、
    少なくとも前記ビデオ画像の履歴、前記ビデオストリームの動きベクトル、及び前記カメラマトリックスに基づいて画像変換を決定し、
    前記画像変換を、1つ又は複数の以前のフレームに対応する1つ又は複数の画像の少なくとも一部に適用して、代替ビデオ画像を生成し、及び
    前記フレームに表示する前記ビデオ画像が前記指定時間に完全に受信されなかったとの判定に応じて、前記変換された画像の少なくとも一部を含む前記代替ビデオ画像を前記フレームに表示するように動作可能である、
    コンピュータ装置。
  2. 前記ディスプレイ制御コンポーネントは、前記ビデオストリームの前記符号化から前記動きベクトルを抽出するように構成される、請求項1に記載のコンピュータ装置。
  3. 前記画像変換は、前記1つ又は複数の以前のフレームに対応する前記1つ又は複数の画像の前記一部の再投影であり、前記ディスプレイ制御コンポーネントは、前記1つ又は複数の以前のフレームに対応する前記1つ又は複数の画像のポイントの深度値を決定するように構成され、前記再投影は前記深度値に基づく、請求項1に記載のコンピュータ装置。
  4. 前記ディスプレイ制御コンポーネントは、ビデオゲームのために訓練された機械学習モデルを、前記1つ又は複数の以前のフレームに対応する前記1つ又は複数の画像に適用して、前記深度値を決定するように構成される、請求項3に記載のコンピュータ装置。
  5. 前記ディスプレイ制御コンポーネントは、機械学習モデルを適用して、前記1つ又は複数の以前のフレームに対応する前記1つ又は複数の画像に対してセグメント化を実行し、且つ前記動きベクトルを識別された画像セグメントに適用するように構成される、請求項1に記載のコンピュータ装置。
  6. 前記クライアントアプリケーションは、前記ストリーミングサーバから深度情報を受信するように構成される、請求項1に記載のコンピュータ装置。
  7. 前記クライアントアプリケーションは、前記ストリーミングサーバから更新されたカメラマトリックスを定期的に受信するように構成される、請求項1に記載のコンピュータ装置。
  8. 前記クライアントアプリケーションは、前記ストリーミングサーバから前記ビデオ画像に対応する幾何学的表現を受信するように構成される、請求項1に記載のコンピュータ装置。
  9. コンピュータ装置上でストリーミングビデオゲームをプレイするための方法であって、当該方法は、
    ビデオゲーム制御コマンドをストリーミングサーバに送信するステップと、
    ビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームを前記ストリーミングサーバから受信するステップと、
    フレームに表示する前記ビデオストリームのビデオ画像が、前記フレームを表示する前の指定時間に完全に受信されていないと判定するステップと、
    少なくとも前記ビデオ画像の履歴及び前記ビデオストリームの動きベクトルに基づいて画像変換を決定するステップであって、該画像変換を決定するステップは、前記ビデオ画像に対する仮想カメラの位置を示すカメラマトリックスを維持するステップを含み、前記画像変換はカメラマトリックスに基づく、決定するステップと、
    前記画像変換を、1つ又は複数の以前のフレームに対応する1つ又は複数の画像の少なくとも一部に適用して、代替ビデオ画像を生成するステップと、
    前記フレームに表示する前記ビデオ画像が前記指定時間に完全に受信されなかったとの判定に応じて、前記変換された以前に表示された画像の少なくとも一部を含む前記代替ビデオ画像を前記フレームに表示するステップと、を含む、
    方法。
  10. 前記画像変換を決定するステップは、前記ビデオストリームの前記符号化から前記動きベクトルを抽出するステップを含む、請求項9に記載の方法。
  11. 前記画像変換を決定するステップは、前記1つ又は複数の以前のフレームに対応する前記1つ又は複数の画像のポイントの深度値を決定するステップを含み、前記画像変換は、前記深度値に基づいて、前記1つ又は複数の以前のフレームに対応する前記1つ又は複数の画像の一部の再投影である、請求項9に記載の方法。
  12. 前記深度値を決定するステップは、ビデオゲームのために訓練された機械学習モデルを、前記1つ又は複数の以前のフレームに対応する前記1つ又は複数の画像に適用して、前記深度値を決定するステップを含む、請求項11に記載の方法。
  13. 前記カメラマトリックスを維持するステップは、前記ストリーミングサーバから更新されたカメラマトリックスを定期的に受信するステップを含む、請求項11に記載の方法。
  14. 前記画像変換を決定するステップは、
    前記ストリーミングサーバから前記ビデオ画像に対応する幾何学的表現を受信するステップと、
    深度値を決定するために前記幾何学的表現をレンダリングするステップと、を含む、請求項11に記載の方法。
  15. コンピューティング装置上でストリーミングビデオゲームをプレイするための、1つ又は複数のプロセッサによって実行可能なコードを含むコンピュータ可読媒体であって、前記コードには、
    ビデオゲーム制御をストリーミングサーバに送信すること、
    前記ビデオゲーム制御に応答して生成されたビデオ画像を符号化するビデオストリームを前記ストリーミングサーバから受信すること、
    フレームに表示する前記ビデオストリームのビデオ画像が、前記フレームを表示する前の指定時間に完全に受信されていないと判定すること、
    1つ又は複数の以前のフレームに対応する前記ビデオストリームの1つ又は複数の画像、及び前記1つ又は複数の以前のフレームのカメラ変換行列に基づいて選択された動きベクトルに基づいて画像再投影を決定すること、
    該画像再投影を、1つ又は複数の以前のフレームに対応する前記ビデオストリームの前記1つ又は複数の画像の少なくとも一部に適用して、代替ビデオ画像を生成すること、及び
    前記フレームに表示する前記ビデオ画像が前記指定時間に完全に受信されなかったとの判定に応じて、前記再投影された画像の少なくとも一部を含む前記代替ビデオ画像を前記フレームに表示すること、を行うためのコードが含まれる、
    コンピュータ可読媒体。

JP2020564883A 2018-05-24 2019-05-13 3dゲームストリーミングシナリオでの推測航法及び遅延の改善 Active JP7490575B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/989,011 US11957975B2 (en) 2018-05-24 2018-05-24 Dead reckoning and latency improvement in 3D game streaming scenario
US15/989,011 2018-05-24
PCT/US2019/031920 WO2019226374A1 (en) 2018-05-24 2019-05-13 Dead reckoning and latency improvement in 3d game streaming scenario

Publications (2)

Publication Number Publication Date
JP2021525034A true JP2021525034A (ja) 2021-09-16
JP7490575B2 JP7490575B2 (ja) 2024-05-27

Family

ID=66641520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020564883A Active JP7490575B2 (ja) 2018-05-24 2019-05-13 3dゲームストリーミングシナリオでの推測航法及び遅延の改善

Country Status (6)

Country Link
US (1) US11957975B2 (ja)
EP (1) EP3801790B1 (ja)
JP (1) JP7490575B2 (ja)
KR (1) KR20210011952A (ja)
CN (1) CN112188921A (ja)
WO (1) WO2019226374A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7448707B1 (ja) 2023-03-29 2024-03-12 株式会社Cygames プログラム、クライアント端末、ゲームシステム、及び処理方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020194958A1 (ja) * 2019-03-25 2020-10-01 株式会社ソニー・インタラクティブエンタテインメント 画像表示制御装置、送信装置、画像表示制御方法及びプログラム
GB2585198B (en) * 2019-07-01 2022-03-02 Sony Interactive Entertainment Inc Method and device for generating video frames
US11635802B2 (en) * 2020-01-13 2023-04-25 Sony Interactive Entertainment Inc. Combined light intensity based CMOS and event detection sensor for high speed predictive tracking and latency compensation in virtual and augmented reality HMD systems
US11363247B2 (en) * 2020-02-14 2022-06-14 Valve Corporation Motion smoothing in a distributed system
US20230319321A1 (en) * 2020-08-26 2023-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Generating and processing video data
CN112839241A (zh) * 2020-12-31 2021-05-25 贵阳动视云科技有限公司 一种云游戏图像丢帧补偿方法及装置
US20230102034A1 (en) * 2021-09-29 2023-03-30 Lawrence Livermore National Security, Llc Scenario development for an incident exercise
US11977779B2 (en) * 2022-05-11 2024-05-07 Bank Of America Corporation Smart queue for distributing user requests to automated response generating systems
CN115426525B (zh) * 2022-09-05 2023-05-26 北京拙河科技有限公司 一种基于高速动帧联动图像拆分方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008139515A1 (ja) * 2007-04-27 2008-11-20 Fujitsu Limited 信号出力装置、情報機器、信号出力方法および信号出力プログラム
WO2016191136A1 (en) * 2015-05-28 2016-12-01 Qualcomm Incorporated Low latency screen mirroring

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030130040A1 (en) * 2001-07-17 2003-07-10 Jeffrey Thomas Dripps Distributed video game system and method
US20100166056A1 (en) * 2002-12-10 2010-07-01 Steve Perlman System and method for encoding video using a selected tile and tile rotation pattern
US7411611B2 (en) * 2003-08-25 2008-08-12 Barco N. V. Device and method for performing multiple view imaging by means of a plurality of video processing devices
US20060230428A1 (en) * 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
JP2007025862A (ja) * 2005-07-13 2007-02-01 Sony Computer Entertainment Inc 画像処理装置
JP5296337B2 (ja) * 2007-07-09 2013-09-25 任天堂株式会社 画像処理プログラム、画像処理装置、画像処理システムおよび画像処理方法
US8613673B2 (en) * 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US8463020B1 (en) * 2008-07-08 2013-06-11 Imove, Inc. Centralized immersive image rendering for thin client
US20130300730A1 (en) * 2012-05-14 2013-11-14 Shenzhen China Star Optoelectronics Technology Co., Ltd. Lcd system and method for displaying image therein
US9912562B2 (en) * 2014-03-31 2018-03-06 Microsoft Technology Licensing, Llc Measuring latency in an interactive application
GB2521883B (en) * 2014-05-02 2016-03-30 Imagination Tech Ltd Media controller
US10580108B2 (en) * 2015-12-22 2020-03-03 Intel Corporation Method and apparatus for best effort quality of service (QoS) scheduling in a graphics processing architecture
US9569812B1 (en) 2016-01-07 2017-02-14 Microsoft Technology Licensing, Llc View rendering from multiple server-side renderings
CN106095366B (zh) * 2016-06-07 2019-01-15 北京小鸟看看科技有限公司 一种缩短图像延迟的方法、装置和虚拟现实设备
CN107958458B (zh) * 2016-10-17 2021-01-22 京东方科技集团股份有限公司 图像分割方法、图像分割系统及包括其的设备
US10460415B2 (en) * 2017-04-10 2019-10-29 Intel Corporation Contextual configuration adjuster for graphics
US10972511B2 (en) * 2017-11-07 2021-04-06 Adobe Inc. Streaming relay for digital signage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008139515A1 (ja) * 2007-04-27 2008-11-20 Fujitsu Limited 信号出力装置、情報機器、信号出力方法および信号出力プログラム
WO2016191136A1 (en) * 2015-05-28 2016-12-01 Qualcomm Incorporated Low latency screen mirroring

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DANIEL EVANGELAKOS ET AL.: "Extended TimeWarp Latency Compensation for Virtual Reality", INTERACTIVE 3D GRAPHICS AND GAMES ACM, JPN7023001856, 27 February 2016 (2016-02-27), US, pages 193 - 194, XP058080047, ISSN: 0005058810, DOI: 10.1145/2856400.2876015 *
SHU SHI ET AL.: "Real-Time Remote Rendering of 3D Video for Mobile Devices", PROCEEDINGS OF THE 17TH ACM INTERNATIONAL CONFERENCE ON MULTIMEDIA, vol. MM '09, JPN7023001855, 19 October 2009 (2009-10-19), US, pages 391 - 400, XP058271443, ISSN: 0005058809, DOI: 10.1145/1631272.1631326 *
SUDHEENDRA VIJAYANARASIMHAN ET AL.: "SfM-Net:Leaning of Structure and Motion from Video", ARXIV.ORG,CORNELLL UNIVERSITY LIBRARY, JPN6023019423, 25 April 2017 (2017-04-25), US, pages 1 - 9, ISSN: 0005058808 *
WILLIAM R.MARK ET AL.: "Post Rendering Image Warping for Latency Compensation", UNC-CH COMPUTER SCIENCE TECHNICAL REPORT, vol. #96-020, JPN6023019422, 25 November 1996 (1996-11-25), US, pages 1 - 6, ISSN: 0005058807 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7448707B1 (ja) 2023-03-29 2024-03-12 株式会社Cygames プログラム、クライアント端末、ゲームシステム、及び処理方法

Also Published As

Publication number Publication date
JP7490575B2 (ja) 2024-05-27
WO2019226374A1 (en) 2019-11-28
US11957975B2 (en) 2024-04-16
KR20210011952A (ko) 2021-02-02
CN112188921A (zh) 2021-01-05
EP3801790B1 (en) 2024-06-26
EP3801790A1 (en) 2021-04-14
US20190358541A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
JP7490575B2 (ja) 3dゲームストリーミングシナリオでの推測航法及び遅延の改善
US11470301B2 (en) Systems and method for virtual reality video conversion and streaming
CN112104879B (zh) 一种视频编码方法、装置、电子设备及存储介质
US11565178B2 (en) User interface rendering and post processing during video game streaming
US11831566B2 (en) Method and apparatus for transmitting scene image of virtual scene, computer device, and computer-readable storage medium
US10537799B1 (en) User interface rendering and post processing during video game streaming
US20210001216A1 (en) Method and device for generating video frames
US9264749B2 (en) Server GPU assistance for mobile GPU applications
US8913664B2 (en) Three-dimensional motion mapping for cloud gaming
US9026615B1 (en) Method and apparatus for caching image data transmitted over a lossy network
US9001135B2 (en) Method and mechanism for delivering applications over a wan
CN104096362B (zh) 基于游戏者关注区域改进视频流的码率控制比特分配
TW201926992A (zh) 用於數位實境之影像壓縮
US11317123B2 (en) Systems and methods for using pre-calculated block hashes for image block matching
EP3410302B1 (en) Graphic instruction data processing method, apparatus
US10116943B2 (en) Adaptive video compression for latency control
US20150022548A1 (en) Graphics server for remotely rendering a composite image and method of use thereof
WO2023024832A1 (zh) 数据处理方法、装置、计算机设备和存储介质
JP7190026B2 (ja) 画像送受信システム、画像送信装置、画像受信装置、画像送受信方法及びプログラム
JP7116244B2 (ja) 画像送受信システム、画像送信装置、画像受信装置、画像送受信方法及びプログラム
US20230336799A1 (en) Video streaming scaling using virtual resolution adjustment
JP2024058838A (ja) 映像送信システム及び映像送信方法
US20210092424A1 (en) Adaptive framerate for an encoder
WO2024003577A1 (en) Applications of layered encoding in split computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230814

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240314

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20240325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240515

R150 Certificate of patent or registration of utility model

Ref document number: 7490575

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150