JP7436644B2 - レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 - Google Patents
レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 Download PDFInfo
- Publication number
- JP7436644B2 JP7436644B2 JP2022520322A JP2022520322A JP7436644B2 JP 7436644 B2 JP7436644 B2 JP 7436644B2 JP 2022520322 A JP2022520322 A JP 2022520322A JP 2022520322 A JP2022520322 A JP 2022520322A JP 7436644 B2 JP7436644 B2 JP 7436644B2
- Authority
- JP
- Japan
- Prior art keywords
- video frames
- parameter
- client
- encoding
- video
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 89
- 230000005540 biological transmission Effects 0.000 claims description 62
- 230000008859 change Effects 0.000 claims description 53
- 238000012544 monitoring process Methods 0.000 claims description 33
- 230000002829 reductive effect Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 62
- 239000000872 buffer Substances 0.000 description 29
- 238000009877 rendering Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 238000013139 quantization Methods 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000003139 buffering effect Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000699666 Mus <mouse, genus> Species 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000000779 smoke Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000009125 cardiac resynchronization therapy Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/142—Detection of scene cut or scene change
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2405—Monitoring of the internal components or processes of the server, e.g. server load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/534—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5593—Details of game data or player data management involving scheduling aspects
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Information Transfer Between Computers (AREA)
Description
残念ながら、その需要はまた、ネットワーク接続の能力と、クライアントに配信されると高品質画像をレンダリングするのに十分な応答性を備えたサーバ及びクライアントにおいて実行される処理の制限と、に対しても押し上がっている。例えば、サーバで実行されるすべてのゲームアクティビティの結果は、最高のユーザエクスペリエンスのために、圧縮されて低いミリ秒のレイテンシでクライアントに戻すように伝送される必要がある。ラウンドトリップレイテンシは、ユーザのコントローラ入力とクライアントにおけるビデオフレームの表示との間の全体的な時間として定義されることができ、これは、コントローラからクライアントへの制御情報の処理と伝送と、クライアントからサーバへの制御情報の処理と伝送と、入力に応答するビデオフレームを生成するためのサーバでのその入力の使用と、ビデオフレームの処理とエンコーディングユニットへの転送(例えば、スキャンアウト)と、ビデオフレームのエンコードと、クライアントへ戻すエンコードされたビデオフレームの伝送と、ビデオフレームの受信とデコードと、表示前のビデオフレームの処理またはステージングのいずれかと、を含み得る。
一方向レイテンシは、ビデオフレームのサーバにあるエンコーディングユニットへの転送(例えば、スキャンアウト)の開始からクライアントにおけるビデオフレームの表示の開始までの時間で構成されるラウンドトリップレイテンシの一部として定義され得る。ラウンドトリップレイテンシ及び一方向レイテンシの一部分は、データストリームが、通信ネットワークを介してクライアントからサーバに送信され、サーバからクライアントに送信されるのにかかる時間に関連付けられている。別の部分は、クライアントとサーバでの処理に関連付けられており、フレームのデコードと表示に関する高度な方策などの、これらの動作での改善は、サーバとクライアント間のラウンドトリップレイテンシ及び一方向レイテンシの実質的な低減になり得、クラウドゲーミングサービスのユーザに高品質のエクスペリエンスを提供する。
本方法は、シーン変化ヒントをエンコーダに送信することを含んでいる。本方法は、第1のビデオフレームをエンコーダに送達することを含んでおり、第1のビデオフレームは、シーン変化ヒントに基づいてIフレームとしてエンコードされている。本方法は、クライアントの最大受信帯域幅を測定することを含んでいる。本方法は、クライアントの最大受信帯域幅とクライアントディスプレイの目標解像度に基づいて、エンコーダで受信された第2のビデオフレームをエンコードするかエンコードしないかを判定することを含んでいる。
本開示の実施形態では、サーバとクライアントとの間の一方向レイテンシは、高性能のエンコード及びデコードを提供することによって、クラウドゲーミングアプリケーションにおいて低減され得る。ストリーミングメディア(例えば、ストリーミングビデオ、映画、クリップ、コンテンツ)を解凍するとき、解凍されたビデオのかなりの量をバッファリングすることが可能であり、従って、ストリーミングされたコンテンツを表示するときに、平均のデコード能力及びメトリクスに依存(例えば、60Hzで4Kメディアをサポートするには、デコードリソースの平均量に依存)することが可能である。
しかしながら、クラウドゲーミングでは、(単一フレームであっても)エンコード及び/またはデコード操作を実行する時間が長くなると、それに応じて一方向レイテンシがより高くなる。従って、クラウドゲーミングの場合、ストリーミングビデオアプリケーションの必要性と比較すると不要と見える強力なデコードリソース及びエンコードリソースを供給することが有益であり、リソースは、より長いか、または最も長い処理を必要とするフレームを処理する時間のために最適化される必要がある。本開示の他の実施形態では、クラウドゲーミングアプリケーションにおいてレイテンシとビデオ品質との間のトレードオフを改善するためにエンコーダ調節が実行され得る。
エンコーダ調節は、ネットワークの伝送速度と信頼性の認識、及び全体的なレイテンシ目標のなかで実行される。実施形態では、エンコードが長く実行されるか、または生成されたデータが大きい(例えば、圧縮されたIフレームで両方の条件が発生し得る)場合、後続のフレームのエンコード及び伝送を遅延させるか、またはそれらをスキップするかどうかを判定するための方法が実行される。
実施形態では、量子化パラメータ(QP)値、目標フレームサイズ、及び最大フレームサイズの調節は、クライアントへの利用可能なネットワーク速度に基づいて実行されている。例えば、ネットワーク速度がより速い場合、QPは低減され得る。
他の実施形態では、Iフレーム発生率の監視が実行され、QPの設定に使用される。例えば、Iフレームの頻度が低い場合、QPは低減されることができ(例えば、より高いエンコード精度、またはエンコードのより高い品質をもたらす)、ビデオ再生品質を犠牲にする一方で、一方向レイテンシを低く抑えるためにビデオフレームのエンコードがスキップされ得るようになっている。このように、高性能のエンコードとデコード、及びクラウドゲーミングアプリケーションのレイテンシとビデオ品質の間のトレードオフを改善するために実行されるエンコーダ調節は、クラウドゲーミングサーバとクライアントとの間の一方向レイテンシの低減、よりスムーズなフレームレート、及びより信頼性の高い及び/または一貫した一方向レイテンシへと繋がる。
特に、本開示の一実施形態によれば、システム200Aは、クラウドゲームネットワーク290を介してゲームを提供し、ゲームは、ゲームをプレイしている対応するユーザのクライアントデバイス210(例えば、シンクライアント)から遠隔で実行されている。システム200Aは、シングルプレイヤーモードまたはマルチプレイヤーモードのいずれかで、ネットワーク250を介してクラウドゲームネットワーク290を通じて1つ以上のゲームをプレイする1人以上のユーザにゲーム制御を提供することができる。いくつかの実施形態では、クラウドゲーミングネットワーク290は、ホストマシンのハイパーバイザー上で実行される複数の仮想マシン(VM)を含み得、1つ以上の仮想マシンは、ホストマシンのハイパーバイザーに利用可能なハードウェアリソースを利用してゲームプロセッサモジュールを実行するように構成される。ネットワーク250は、1つ以上の通信技術を含み得る。いくつかの実施形態では、ネットワーク250は、高度な無線通信システムを有する第5世代(5G)ネットワーク技術を含み得る。
そのようにして、バックエンドサーバサポートは、複数のゲームアプリケーションのゲームプレイのメディア(例えば、ビデオ、オーディオなど)のストリーミングを複数の対応するユーザに提供する。つまり、ゲームサーバ260は、ネットワーク250を介してデータ(例えば、対応するゲームプレイのレンダリングされた画像及び/またはフレーム)を対応するクライアントデバイス210にストリーミングして戻すように構成されている。そのようにして、計算が複雑なゲームアプリケーションは、クライアントデバイス210によって受信及び転送されたコントローラ入力に応答して、バックエンドサーバで実行され得る。各サーバは、画像やフレームをレンダリングすることができ、これらは次いでエンコード(例えば、圧縮)され、対応するクライアントデバイスに表示のためにストリーミングされ得る。
別の実施形態では、クライアントデバイス210は、ビデオゲームの少なくともいくつかのローカル処理のためのゲームタイトル処理エンジン及びゲームロジックで構成され得、バックエンドで実行されるビデオゲームによって生成されるストリーミングコンテンツを受信するために、または、バックエンドサーバサポートによって提供されるその他のコンテンツのためにさらに利用され得る。ローカル処理に対して、ゲームタイトル処理エンジンは、ビデオゲームを実行するための基本的なプロセッサベースの機能と、ビデオゲームに関連するサービスと、を含む。ゲームロジックは、ローカルクライアントデバイス210に格納され、ビデオゲームを実行するために使用される。
例えば、ユーザは、クライアントデバイス210を介して、ゲームサーバ260のゲームプロセッサ上で実行されているビデオゲームのインスタンスと対話し得る。より具体的には、ビデオゲームのインスタンスは、ゲームタイトル処理エンジン211によって実行されている。ビデオゲームを実装する対応するゲームロジック(例えば、実行可能コード)215は、データストア(図示せず)に格納され、データストアを介してアクセス可能であり、ビデオゲームを実行するために使用されている。ゲームタイトル処理エンジン211は、複数のゲームロジックを使用して複数のビデオゲームをサポートすることができ、それらの各々がユーザによって選択可能である。
クライアントデバイス210は、ネットワーク250を介してゲームサーバ260に接続することができる少なくともメモリ及びプロセッサモジュールを有する任意タイプのコンピューティングデバイスであり得る。バックエンドゲームタイトル処理エンジン211は、レンダリングされた画像を生成するように構成され、レンダリングされた画像は、クライアントデバイス210に関連付けられた対応するディスプレイに表示するためにネットワーク250を介して配信される。
例えば、クラウドベースのサービスを通じて、ゲーム用にレンダリングされた画像は、ゲームサーバ260のゲーム実行エンジン211上で実行される対応するゲームのインスタンスによって配信され得る。つまり、クライアントデバイス210は、エンコードされた画像(例えば、ビデオゲームの実行を通じて生成されたゲームレンダリング画像からエンコードされた)を受信し、表示11のためにレンダリングされた画像を表示するように構成される。一実施形態では、ディスプレイ11は、HMDを含む(例えば、VRコンテンツを表示する)。いくつかの実施形態では、レンダリングされた画像は、クラウドベースのサービスから直接的に、またはクライアントデバイス210(例えば、プレイステーション(登録商標)リモートプレイ)を介して、無線または有線でスマートフォンまたはタブレットにストリーミングされ得る。
処理エンティティは、クラウドゲーミングネットワーク290の1つ以上のサーバ(コンピューティングノード)上のサーバ及びその基礎となるハードウェアを利用及び/または依存することができ、サーバは、1つ以上のラックに配置され得る。様々な処理エンティティへのこれらの機能の実行の調整、割り当て、及び管理は、分散同期層によって実行されている。そのようにして、それらの機能の実行が分散同期層によって制御されて、プレイヤーによるコントローラ入力に応答して、ゲームアプリケーション用のメディア(例えば、ビデオフレーム、オーディオなど)を生成することが可能になる。分散同期層は、分散処理エンティティにわたって、(例えば、負荷均衡を通じて)これらの機能を効率的に実行でき、重要なゲームエンジン構成要素/機能が分散され、より効率的な処理のために再構築されるようになっている。
例えば、レンダリングされた画像は、クライアントデバイス210上でローカルに実行されるゲームのインスタンスに関連付けられ得、ゲームプレイを駆動するために使用される入力コマンドなどを介して、対応するユーザのゲームプレイを実装する。クライアントデバイス210のいくつかの例には、パーソナルコンピュータ(PC)、ゲームコンソール、ホームシアターデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話、またはゲームのインスタンスを実行することができる任意の他のタイプのコンピューティングデバイスが含まれる。
一実施形態では、クライアントは、ウェブブラウザ内でオーディオ及びビデオ通信を提供するように構成されたウェブRTCクライアントを含み得る。別のネットワーク構成は、クライアント(例えば、ソース)からサーバ(ターゲット)への構成を含む。さらに別のネットワーク構成は、サーバ(例えば、ソース)からサーバ(例えば、ターゲット)への構成を含む。別のネットワークデバイス構成は、クライアント(例えば、ソース)からクライアント(ターゲット)への構成を含み、クライアントは各々が、例えば、直接対決ゲームを提供するためのゲームコンソールであり得る。
適切なアライメントを達成するために、一実施形態では、サーバ260とクライアント210のペアとの間の適切なアライメントを実施するために、サーバVSYNC信号が調節され得る。
別の実施形態では、クライアントVSYNC信号は、サーバ260とクライアント210のペアとの間の適切なアライメントを実施するために調節され得る。クライアントとサーバのVSYNC信号がアライメントされると、サーバVSYNC信号とクライアントVSYNC信号は、実質的に同一周波数で発生し、随時調整できるタイミングオフセットによって互いにオフセットされる。
別の実施形態では、VSYNC信号のアライメントは、2つのクライアントのVSYNCの周波数を同期させることを含み得、ドリフトを除去する目的で、それらのVSYNC信号の間のタイミングオフセットを調整すること、及び/またはコントローラ及びその他の情報の受信の適切なタイミングを達成することも含み得、いずれのVSYNC信号も、このアライメントを達成するように調節され得る。
さらに別の実施形態では、アラインメントは、複数のサーバのVSYNCの周波数を同期させることを含み得、また、サーバVSYNC信号及びクライアントVSYNC信号の周波数を同期し、クライアントVSYNC信号とサーバVSYNC信号との間のタイミングオフセットを、例えば、直接対決クラウドゲーミングのために調整することを含み得る。サーバからクライアントへの構成、及びクライアントからクライアントへの構成では、アラインメントは、サーバVSYNC信号とクライアントVSYNC信号の間の周波数の同期、及びサーバVSYNC信号とクライアントVSYNC信号との間の適切なタイミングオフセットの提供の両方が含まれ得る。サーバからサーバへの構成では、アライメントは、タイミングオフセットを設定することを伴わないサーバVSYNC信号とクライアントVSYNC信号との間の周波数の同期を含み得る。
ビデオフレームは、操作350で入力デバイスから配信される制御情報(例えば、ユーザの入力コマンド)、または制御情報によって駆動されないゲームロジックのいずれかに応答して、ゲームによって生成される。伝送ジッター351は、制御情報をサーバ260に送信するときに存在し得、ジッター351は、クライアントからサーバへのネットワークレイテンシの変動(例えば、入力コマンドを送信するとき)を測定する。
図示されるように、太い矢印は、制御情報をサーバ260に送信するときの現在の遅延を示しているが、ジッターのために、サーバ260において制御情報のための到着時間の範囲(例えば、点線矢印で囲まれた範囲)があり得る。フリップ時間309で、GPUは、対応するビデオフレームが完全に生成され、サーバ260のフレームバッファに配置されたことを示すフリップコマンドに到達する。その後、サーバ260は、サーバVSYNC信号311(VBIは明確化のために省略されている)によって規定される後続のフレーム期間にわたって、そのビデオフレームに対してスキャンアウト/スキャンイン(操作302、そこでスキャンアウトはVSYNC信号311とアライメントされ得る)を実行する。続いて、ビデオフレームがエンコード(操作303)され(例えば、VSYNC信号311の発生後にエンコードが開始され、エンコードの終了はVSYNC信号とアライメントされなくてもよい)、クライアント210へ伝送(操作304、ここでは伝送はVSYNC信号311とアライメントされなくてもよい)される。
クライアント210において、エンコードされたビデオフレームは、受信され(操作305、ここでは受信はクライアントVSYNC信号312とアライメントされなくてもよい)、デコードされ(操作306、ここではデコードはクライアントVSYNC信号312とアライメントされなくてもよい)、バッファリングされ、表示される(操作307、ここでは表示の開始は、クライアントのVSYNC信号312とアライメントされなくてもよい)。特に、クライアント210は、クライアントVSYNC信号312の対応する発生で開始する表示のためにレンダリングされた各ビデオフレームを表示する。
図示されているように、直線の太い矢印は、対応するビデオフレームをクライアント210に送信するときの現在のレイテンシを示しているが、ジッター352のために、クライアント210におけるビデオフレームの到着時間の範囲(例えば、点線矢印で区分けされた範囲)があり得る。良好な再生体験を実現するには、一方向レイテンシが比較的安定している(例えば、かなり一貫性が保たれている)必要があるため、従来、バッファリング320は、低いレイテンシ(例えば、スキャンアウト302の開始からデコード306の完了まで)を伴う個々のフレームの表示が、いくつかのフレーム期間にわたり遅延される結果を伴って実行される。つまり、ネットワークの不安定性、または予測できないエンコード/デコード時間がある場合、一方向レイテンシが一定に保たれるように追加のバッファリングが必要になる。
しかしながら、エンコーダにおけるシーン変化の検出は、ビデオフレームが初めに、より低い複雑性を伴って(第1のフレーム期間で)エンコードされるが、次いで、シーン変化があると判断されると、より高い複雑性を伴って(第2のフレーム期間で)再エンコードされるように、最大1フレーム期間(例えば、ジッターの追加)がかかり得る。同様に、シーン変化の検出は、シーン変化がないとしても、現在エンコードされているビデオフレームと以前にエンコードされたビデオフレームとの差異が閾値差異値を超え得ることから、(画像内の小さな爆発を介してなど)不必要にトリガーされ得る。このように、シーン変化がエンコーダにおいて検出されると、ジッターによる追加的なレイテンシがエンコーダにおいて導入され、シーン変化の検出の実行と、より高い複雑性を有するビデオフレームの再エンコードと、に適応する。
特に、図4は、サーバVSYNC信号とクライアントVSYNC信号との間の望ましいアライメントを示している。一実施形態では、サーバVSYNC信号311の調節は、サーバ及びクライアントのネットワーク構成などにおいて、サーバVSYNC信号とクライアントVSYNC信号との間の適切なアライメントを得るために実行されている。
別の実施形態では、クライアントVSYNC信号312の調節は、マルチテナントサーバから複数クライアントへのネットワーク構成におけるような、サーバVSYNC信号とクライアントVSYNC信号との間の適切なアラインメントを得るために実行されている。サーバ及びクライアントのVSYNC信号の周波数を同期させること、及び/または対応するクライアント及びサーバのVSYNC信号間のタイミングオフセットを調整することを目的として、例示を目的として、サーバVSYNC信号311の調節が図4で説明されているが、クライアントVSYNC信号312もまた、調節に使用され得ることが理解される。
この特許出願の文脈では、「同期」とは、周波数が一致するが、位相は異なり得るように信号を調節することを意味すると解釈されるべきであり、「オフセット」とは、例えば、一方の信号が最大値に達したときと、もう一方の信号が最大値に達したときとの間の時間のように、信号間の時間遅延を意味すると解釈されるべきである。
グラフィックスパイプラインは、シーン内のオブジェクトの頂点に1つ以上のシェーダプログラムを含み、表示用のビデオフレームにレンダリングされたテクスチャ値を生成でき、この操作は、効率を上げるためにGPUを介して並行して実行されている。フリップ時間409において、GPUは、コマンドバッファ内のフリップコマンドに到達し、これは、対応するビデオフレームが、完全に生成され、及び/またはレンダリングされ、サーバ260でフレームバッファ内に配置されたことを示している。
さらに、エンコード403の開始及び/または終了は、サーバVSYNC信号311とアライメントされてもされなくてもよい。エンコードされたスライスの境界は、単一のスキャンラインに制限されず、単一のスキャンライン、または複数のスキャンラインで構成され得る。さらに、エンコードされたスライスの終了及び/または次のエンコーダスライスの開始は、必ずしも表示画面の端で発生し得ず(例えば、画面の中央またはスキャンラインの中央で発生し得る)、エンコードされたスライスは、表示画面の端から端まで完全に横断する必要はない。図示されるように、1つ以上のエンコードされたスライスは、ハッシュマークを有する圧縮された「エンコードされたスライスA」を含めて、圧縮及び/またはエンコードされ得る。
より低いジッター値は、より安定した接続を示す。図示されているように、太い直線矢印は、対応するビデオフレームをクライアント210に送信するときの現在のレイテンシを示しているが、ジッターにより、クライアント210におけるビデオフレームに対する到着時間の範囲(例えば、点線矢印で囲まれた範囲)があり得る。レイテンシの変動はまた、エンコード403や伝送404などのサーバでの1つ以上の操作によるものであり得、同様に、ビデオフレームをクライアント210に伝送するときにレイテンシをもたらすネットワークの問題によるものであり得る。
一実施形態では、表示プロセス407(すなわち、ディスプレイデバイスへのストリーミングアウト)は、デコードプロセス406が、対応するビデオフレームに対して完全に完了した後、すなわち、デコードされたビデオフレームが、ディスプレイバッファに完全に常駐した後に開始する。
別の実施形態では、表示プロセス407は、デコードプロセス406が対応するビデオフレームに対して完全に完了する前に開始する。つまり、ディスプレイデバイスへのストリームアウトは、デコードされたフレームバッファの一部分のみがディスプレイバッファに常駐する時点で、ディスプレイバッファのアドレスで開始する。ディスプレイバッファは、次いで、表示に間に合うように、対応するビデオフレームの残りの部分で更新または充填され、ディスプレイバッファの更新は、それらの部分がディスプレイにストリームアウトする前に実行されるようになっている。さらに、表示407の開始及び/または終了は、クライアントVSYNC信号312とアライメントされる。
例えば、本開示の実施形態は、サーバVSYNC信号311とクライアントVSYNC信号312との間のオフセット430に対する最適な調整を計算することができ、それにより、エンコード403及び伝送404などのサーバ処理に必要なほぼ最悪の場合の時間が発生した場合であっても、サーバ260とクライアント210との間のほぼ最悪の場合のネットワークレイテンシが発生した場合であっても、及び受信405及びデコード406などのほぼ最悪の場合のクライアント処理が発生した場合であっても、デコードされレンダリングされたビデオフレームは、表示プロセス407に間に合うように利用可能である。つまり、サーバVSYNCとクライアントVSYNCとの間の絶対オフセットを決定する必要はなく、デコードされレンダリングされたビデオフレームが表示プロセスに間に合うようにオフセットを調整するだけで十分である。
一実施形態では、サーバVBIが調整される。別の実施形態では、クライアントVBIが調整される。さらに別の実施形態では、2つのデバイス(サーバ及びクライアント)の代わりに、複数の接続されたデバイスがあり、それらのそれぞれは、調整された対応するVBIを有し得る。一実施形態では、複数の接続されたデバイスの各々は、(例えば、サーバデバイスを伴わない)独立したピアデバイスであり得る。別の実施形態では、複数のデバイスは、1つ以上のサーバ/クライアントアーキテクチャ、マルチテナントサーバ/クライアント(複数可)アーキテクチャ、またはそれらのいくつかの組み合わせに配置された、1つ以上のサーバデバイス及び/または1つ以上のクライアントデバイスを含み得る。
具体的には、サーバのサウスブリッジのピクセルクロックがオーバークロックまたはアンダークロックされ、サーバのVSYNC信号311の全体的な周波数を調整することができる。そのようにして、サーバVSYNC信号311の周波数は、クライアントとサーバのVSYNC信号311と312との間の周波数が実質的に同じ周波数になるように調整される。サーバとクライアントのVSYNC間のオフセットは、ピクセルクロックを元の値に戻す前に、クライアントサーバのピクセルクロックを短時間で増減することで調整されることができる。一実施形態では、サーバピクセルクロックが調整される。
別の実施形態では、クライアントピクセルクロックが調整される。さらに別の実施形態では、2つのデバイス(サーバ及びクライアント)の代わりに、複数の接続されたデバイスがあり、それらの各々は、調整されている対応するピクセルクロックを有し得る。一実施形態では、複数の接続されたデバイスの各々は、(例えば、サーバデバイスを伴わない)独立したピアデバイスであり得る。別の実施形態では、複数の接続されたデバイスは、1つ以上のサーバ/クライアントアーキテクチャ、マルチテナントサーバ/クライアント(複数可)アーキテクチャ、またはそれらのいくつかの組み合わせに配置された1つ以上のサーバデバイス及び1つ以上のクライアントデバイスを含み得る。
特に、CPUは、ビデオフレームに対して1つ以上のドローコールを生成するように構成され得、各ドローコールは、GPUパイプラインのGPUによって実行される対応するコマンドバッファに格納されたコマンドを含んでいる。一般に、グラフィックスパイプラインは、シーン内のオブジェクトの頂点に対してシェーダ操作を実行して、表示のピクセルのテクスチャ値を生成することができる。特に、グラフィックスパイプラインは、入力ジオメトリ(例えば、ゲーミング環境のオブジェクトの頂点)を受信し、頂点シェーダは、オブジェクトを構成するプリミティブまたはポリゴンを構築する。頂点シェーダプログラムは、プリミティブに対してライティング、シェーディング、シャドウイング、及びその他の操作を実行することができる。
深度バッファリングまたはZバッファリングは、対応する視点からレンダリングされたときに、どのオブジェクトが見えるかを判定するために実行される。ラスタライズは、3Dゲーム環境内のオブジェクトを視点によって定義された2D平面に投影するために実行される。ピクセルサイズのフラグメントがオブジェクトに対して生成され、1つ以上のフラグメントが、画像のピクセルの色に寄与することができる。フラグメントは、対応するビデオの各ピクセルの組み合わせられた色を決定するためにマージ及び/またはブレンドされることができ、フレームバッファ内に格納されることができる。後続のビデオフレームは、同様に構成されたコマンドバッファを使用して表示用に生成され、及び/またはレンダリングされ、複数のビデオフレームが、GPUパイプラインから出力されている。
簡潔さと明確さのために、図5に開示されているエンコーダパラメータを調節する方法は、複数のビデオフレームをエンコードすることに関して説明されているが、改変されたビデオフレームをエンコードすることをサポートすると理解されている。エンコーダは、記述されたフォーマットに基づいて複数のビデオフレームを圧縮するように構成されている。例えば、クラウドゲーミングサーバからクライアントにメディアコンテンツをストリーミングするときに、モーションピクチャエキスパートグループ(MPEG)またはH.264標準が実装され得る。特に、エンコーダは、ビデオフレームによって、またはビデオフレームのエンコーダスライスによって圧縮を実行することができ、前述のように、各ビデオフレームは、1つ以上のエンコードされたスライスとして圧縮されることができる。一般に、メディアをストリーミングするとき、ビデオフレームは、Iフレーム(イントラフレーム)またはPフレーム(予測フレーム)として圧縮され、それらの各々が、エンコードされたスライスに分割されることができる。
図示されるように、圧縮されたビデオフレーム、エンコードされたスライス、及び/またはパケットは、エンコーダ610からバッファ630(例えば、先入れ先出し-FIFO)へ配信される。エンコーダは、エンコーダ充填速度615で圧縮されたビデオフレームを配信する。例えば、バッファは、エンコーダが、圧縮されたビデオフレーム、エンコードされたスライス650、及び/またはエンコードされたスライスのパケット655を生成することができるのと同じ速さで充填され得る。さらに、圧縮されたビデオフレームは、ネットワーク250を介してクライアント210に配信するために、バッファ排出速度635でバッファから排出される。
一実施形態では、バッファ排出速度635は、クライアントの測定された最大受信帯域幅に動的に調節される。例えば、バッファ排出速度635は、クライアントの測定された最大受信帯域幅にほぼ等しくなるように調整され得る。一実施形態では、パケットのエンコードは、それらが伝送されるのと同じ速度で実行され、両方の操作は、クライアントが利用できる最大の利用可能な帯域幅に動的に調節されるようになっている。
一実施形態では、クライアントは、フィードバック690として、ビデオフレームのある範囲などの、増分シーケンス識別子(ID)の範囲にわたって受信したパケットの数をストリーマ620に返す。例えば、クライアントは、シーケンスID100~250(例えば、150ビデオフレーム)で受信した150ビデオフレームのうち145のようなものを報告することができる。このように、サーバ260におけるストリーマ620は、パケット損失を計算することができ、ストリーマ620は、そのパケットのシーケンスの間に送信された(例えば、テストされた)帯域幅の量を知っているので、ストリーマ620は、クライアントの最大帯域幅が特定の時点で何であるか動的に判定することができる。
クライアントの測定された最大帯域幅は、制御情報627としてストリーマ620からバッファ630に配信され得、バッファ630は、クライアントの最大帯域幅にほぼ等しい速度でパケットを動的に伝送することができるようになっている。このように、圧縮されたビデオフレーム、エンコードされたスライス、及び/またはパケットの伝送速度は、現在測定されているクライアントの最大帯域幅に応じて動的に調整されることができる。
例えば、一実施形態では、複数のビデオフレーム内のIフレームの発生率が、追跡及び/または監視されることができる。さらに、一実施形態では、複数のビデオフレーム内のシーン変化の発生率が、追跡及び/または監視されることができる。また、一実施形態では、目標フレームサイズを超えるビデオフレームの数が追跡及び/または監視されることができる。また、一実施形態では、1つ以上のビデオフレームをエンコードするために使用されるエンコーダビットレートが、追跡及び/または監視されることができる。
スムーズさを優先する場合、最大受信帯域幅よりも低いエンコーダビットレート(例えば、15メガビット/秒の最大受信帯域幅に対して10メガビット/秒のエンコーダビットレート)を使用することが望ましい。そのようにして、エンコードされたフレームが最大フレームサイズを超えてスパイクした場合でも、エンコードされたフレームは、依然として60Hz(ヘルツ)以内で送信されることができる。特に、エンコーダビットレートは、フレームサイズに変換され得る。ビデオゲームの所定のビットレート及び目標速度(例えば、毎秒60フレーム)は、エンコードされたビデオフレームの平均サイズに変換される。例えば、15メガビット/秒のエンコーダビットレート、及び60フレーム/秒の所定の目標速度では、60個のエンコードされたフレームが、15メガビットを共有し、各エンコードされたフレームが、約250k個のエンコードされたビットを有するようになっている。
このように、エンコーダビットレートを制御することはまた、エンコードされたビデオフレームのフレームサイズも制御し、その結果、エンコーダビットレートを増加すると、エンコード用のビットが多くなり(精度が高くなる)、また、エンコーダビットレートを低減すると、エンコード用のビットが少なくなる(精度が低くなる)。同様に、ビデオフレームのグループをエンコードするために使用されるエンコーダビットレートが、測定されている最大受信帯域幅内にあるとき、エンコーダビットレートは増加されることができ、フレームサイズもまた、増加されることができるようになっている。
前述したように、スムーズさを優先する場合、最大受信帯域幅よりも低いエンコーダビットレートを使用することが望ましくなり得る。上の例では、上で紹介した10メガビット/秒の最大受信帯域幅に対して10メガビット/秒以下に設定したエンコーダビットレートを有することが許容可能となり得る。そのようにして、エンコードされたフレームが最大フレームサイズの上にスパイクする場合、エンコードされたフレームは、依然として60Hz以内で送信されることができる。それに応じて、QP値は、エンコーダビットレートの低減をしても、低減しなくても調節されることができ、QPは、ビデオフレームを圧縮するときに使用される精度を制御する。
つまり、QPは、実行される量子化の量を制御する(例えば、ビデオフレーム内の値の可変範囲を単一量子値に圧縮する)。H.264では、QPの範囲は「0」から「51」である。例えば、「0」のQP値は、量子化がより少なく、圧縮がより少なく、精度がより高く、品質がより高いことを意味する。例えば、「51」のQP値は、量子化がより多く、圧縮がより多く、精度がより低く、品質がより低いことを意味する。具体的には、QP値が増加されることができ、ビデオフレームのエンコードが、より低い精度で実行されるようになっている。
ライン712の目標フレームサイズ及びライン711の最大フレームサイズは、グラフ700Aにあるものと同じ位置のままである。QP調節及び/または調整の後、グラフ700Aと比較すると、ライン712の目標フレームサイズを超える圧縮されたビデオフレームを含むピーク数が減少する。つまり、QPは、現在の状態(例えば、測定されたクライアント帯域幅、必要とされるレイテンシ、等)に対してビデオフレームのエンコードを最適化する(すなわち、目標フレームサイズ内に収まる)ために調節されている。
グラフ720Aに示されるように、ライン712の目標フレームサイズを超える圧縮されたビデオフレームを含む複数のピークが存在する。目標フレームサイズを超えるビデオフレームは、クラウドゲーミングサーバからのエンコード及び/または送信に対して複数のフレーム期間を要し得ることから、再生ジッターをもたらすリスク(例えば、一方向レイテンシの増加)がある。例えば、ライン711で最大フレームサイズに達するピークは、クライアントに送信されるまでに16ミリ秒以上かかるIフレームであり得、このことが、クラウドゲーミングサーバとクライアントとの間の一方向レイテンシを増加させることによる再生ジッターを生じさせる。
目標フレームサイズ及び/または最大フレームサイズを調節した後、目標フレームサイズ712’を超えて圧縮されたビデオフレームのピークの最大サイズは、より良い送信のために縮小されている。さらに、グラフ700Aと比較した場合、目標フレームサイズ712’を超える圧縮されたビデオフレームを含むピークの数もまた減少した。例えば、グラフ720Bに示されているピークは1つだけである。つまり、目標フレームサイズ及び/または最大フレームサイズは、現在の状態(例えば、測定されたクライアント帯域幅、必要とされるレイテンシ、等)に対してビデオフレームのエンコーディングを最適化する(すなわち、目標フレームサイズ内に収まる)ために調節されている。
特に、ビデオフレームをスキップする決定は、ネットワーク伝送速度と信頼性、及び全体的なレイテンシ目標を考慮して行われる。このプロセスは、よりスムーズなフレームレートと、より信頼性の高いレイテンシをもたらし、クラウドゲーミングサーバとクライアントとの間の一方向レイテンシが低減され、より一貫性があるようにされ、それによって、ビデオのクライアント表示のスムーズさを改善する。
例えば、ビデオゲームのゲームロジックは、ゲームエンジンまたはゲームタイトル処理エンジンに基づいて構築されている。ゲームエンジンと組み合わせたゲームロジックは、CPU及びGPUによって実行され、共有メモリとともにCPU及びGPUは、ゲーム用にレンダリングされたビデオフレームを生成するためのレンダリングパイプラインとして構成され得、レンダリングパイプラインが、ゲーム用にレンダリングされた画像を目標の、及び/または仮想化された表示のピクセルの各々に対応する色情報を含む、表示に適したビデオまたは画像フレームとして出力するようになっている。
特に、シーン変化予測のために構成されたゲームロジックまたはアドオンロジックは、ビデオゲームの実行中に収集されたゲーム状態データを分析して、次のXフレーム数(例えば、範囲)内で、または識別されたビデオフレームに対して、など、いつシーン変化があるかを判定し、及び/または事前察知し、及び/または予測する。例えば、シーン変化は、仮想化ゲーム環境で、いつキャラクタが、あるシーンから別のシーンに移動するか、またはビデオゲームにおいて、いつキャラクタがレベルを終了し、別のレベルに移行するか、2つのビデオフレーム(例えば、映画的シーケンスでのシーンカット、または一連のメニューの後のインタラクティブなゲームプレイの開始)間でいつ移行するか、が予測されることができ、シーン変化は、仮想化ゲーム世界または環境の大きくて複雑なシーンを含む、ビデオフレームによって表され得る。
一実施形態では、APIはGPU APIであり得る。例えば、APIは、エンコーダと通信するためにシーン変化を検出するように構成されたゲームロジック及び/またはアドオンロジック上で実行されているか、またはそれらによって呼び出され得る。
一実施形態では、シーン変化ヒントは、データ制御パケットを受信するすべての構成要素が、どのタイプの情報がデータ制御パケットに含まれているかを理解することができ、対応するレンダリングされたビデオフレームへの適切な基準を理解することができるようにフォーマットされたデータ制御パケットとして提供され得る。
一実施態様では、APIに対して使用される通信プロトコル、データ制御パケットに対するフォーマットは、ビデオゲームのための対応するソフトウェア開発キット(SDK)で定義され得る。
ストリーミングするとき、シーン変化があるまで、または現在エンコードされているフレームが、キーフレーム(例えば、以前のIフレーム)を参照できなくなるまで、ビデオフレームはPフレームとしてエンコードされ、次のビデオフレームが、次いで別のIフレームとしてエンコードされるようになっている。この場合、第1のビデオフレームは、シーン変化ヒントに基づいてIフレームとしてエンコードされ、Iフレームは、他のいずれのビデオフレーム(例えば、キー画像としてのスタンドアロン)を参照することなくエンコードされ得る。
一般に、クライアントが経験する現在の帯域幅が十分である場合、クライアントの目標ディスプレイ用に生成及びエンコードされたビデオフレームが、レイテンシヒットを受けた(例えば、シーン変化用に大きなIフレームを生成)後、早急に低い一方向レイテンシに戻ることができ、第2のビデオフレーム(及び/または後続のビデオフレーム)は、依然として遅延を伴ってエンコードされ得る。
一方、クライアントが経験する現在の帯域幅が十分でない場合、第2のビデオフレーム(及び/または後続のビデオフレーム)は、エンコードプロセス中にスキップされ、クライアントに配信されない場合がある。このように、クライアントへの帯域幅が、クライアントでのディスプレイの目標解像度をサポートするために必要な帯域幅を超える場合、より少ないスキップされるフレーム(及びより低いレイテンシ)を有することが可能である。
図示されるように、Iフレームの後に1つ以上のビデオフレームをスキップすると、低い一方向レイテンシにすぐに戻ることを可能にする(例えば、1つまたは2つのフレーム期間内)。そうでない場合、ビデオフレームのエンコードをスキップしないことにより、低い一方向レイテンシに戻るまでに数フレーム期間を要することになる。
その後、エンコーダは、次のシーン変化まで、またはビデオフレームが以前のキーフレーム(Iフレームなど)を参照できなくなるまで、ビデオフレームをPフレームとして圧縮する。一般的に、Iフレームブロックのためのエンコード時間は、Pフレームブロックよりも長くかかることがある。例えば、Iフレームブロック905のエンコード時間は、1フレーム期間を超え得る。場合によっては、PフレームとIフレームとの間のエンコード時間は、特に高出力のエンコーダを使用する場合、一般的に、ほぼ同じになり得る。
例えば、ビデオフレーム920は、エンコーダによってドロップされる。その場合、エンコードされたビデオフレームの送信は、5つの後続のビデオフレームが、Pフレームとしてエンコードされて、クライアントに送信された後のように、ハイライトされた領域910の周りの低い一方向レイテンシの1つに戻る。つまり、Iフレームブロック905がエンコードされた後にエンコードされた第4または第5のPフレームもまた、同じフレーム期間内でクライアントに送信され、それによって、クラウドゲーミングサーバとクライアントとの間の低い一方向レイテンシに戻る。
また、VSYNC信号の同期とオフセットは、クラウドゲーミングサーバでの重複操作(スキャンアウト、エンコード、及び送信)、クライアントでの重複操作(受信、デコード、レンダリング、表示)、及び/またはクラウドゲーミングサーバとクライアントでの重複操作を提供し、これらのすべてが、サーバまたはネットワークまたはクライアントのジッターによってもたらされるレイテンシの変動性に対する補償、一方向レイテンシの低減、一方向レイテンシの変動性の低減、ビデオコンテンツのリアルタイム生成と表示、及びクライアントでの一貫したビデオ再生を促進する。
特に、シーケンス900Bでは、ビデオフレームはIフレームとしてエンコードされ、後続のビデオフレームもまた正常にエンコードされ、クライアント帯域幅がクライアントディスプレイの目標解像度に対して中適度であるとき、Iフレームのエンコードの遅延後にエンコードされる。中程度の帯域幅の可用性があるため、中適度の量の超過帯域幅が、クラウドゲーミングサーバとクライアント間のレイテンシの変動性(例えば、ジッター)を補正するために利用可能であり、その結果、フレームスキップが回避されることができ、低い一方向レイテンシへの回帰が比較的迅速に(例えば、2つ~4つのフレーム期間内で)達成され得るようになっている。ビデオフレームのエンコードブロック及び伝送ブロックが、VSYNC信号950に関連して示されている。
また、対応するエンコードされたビデオフレームに関連して様々な送信時間が表示されている。例えば、Iフレームブロック905の前のビデオフレームのエンコード及び送信は、低い一方向レイテンシを有して示され、その結果、対応するエンコード及び伝送ブロックが、1フレーム期間内に実行され得るようになっている。しかしながら、エンコードされたIフレームブロック905の伝送ブロック915Bは、より高い一方向レイテンシで示されており、その結果、エンコードブロック905及び伝送ブロック915Bは、2つ以上のフレーム期間にわたって発生し、それにより、クラウドゲーミングサーバとクライアントとの間の一方向レイテンシにジッターをもたらす。
前述したように、1つ以上のエンコーダパラメータ(例えば、QP、目標フレームサイズ、最大フレームサイズ、エンコーダビットレートなど)を調節することにより、エンコード時間はさらに短縮され得る。つまり、Iフレームの後の第2の、または後続のビデオフレームは、クライアントへの伝送速度がクライアントディスプレイの目標解像度に対して中程度のとき、より低い精度でエンコードされており、また、伝送速度が目標解像度に対して高いときより低い精度でエンコードされている。
高い帯域幅の可用性があるため、大量の超過帯域幅が、クラウドゲーミングサーバとクライアント間の一方向レイテンシの変動性(例えば、ジッター)を補正するために利用可能であり、その結果、フレームスキップが回避されることができ、低い一方向レイテンシへの回帰が、迅速に(例えば、1つ~2つのフレーム期間内で)達成され得るようになっている。ビデオフレームのエンコードブロック及び伝送ブロックが、VSYNC信号950に関連して示されている。
また、対応するエンコードされたビデオフレームに関連して様々な伝送時間が表示されている。例えば、Iフレームブロック905の前のビデオフレームのエンコード及び伝送は、低いレイテンシを有して示され、その結果、対応するエンコード及び伝送ブロックが、1フレーム期間内に実行され得るようになっている。しかしながら、エンコードされたIフレームブロック905の伝送ブロック915Cは、より高いレイテンシで示されており、その結果、エンコードブロック905及び伝送ブロック915Cは、2つ以上のフレーム期間にわたって発生し、それにより、クラウドゲーミングサーバとクライアントとの間の一方向レイテンシにジッターをもたらす。前述したように、1つ以上のエンコーダパラメータ(例えば、QP、目標フレームサイズ、最大フレームサイズ、エンコーダビットレートなど)を調節することにより、エンコード時間はさらに短縮され得る。
クライアント帯域幅はクライアントディスプレイの目標解像度に対して高いため、エンコードされたビデオフレームの伝送は、1つまたは2つの後続のビデオフレームがPフレームとしてエンコードされ、クライアントに伝送された後など、強調表示された領域970周辺の低い一方向レイテンシの1つに戻る。領域970内で、Iフレームブロック905がエンコードされた後にエンコードされたPフレームもまた、(これらはVSYNC信号の発生の両側にまたがるが)1フレーム期間内にクライアントに伝送され、それにより、クラウドゲーミングサーバとクライアントとの間で低い一方向レイテンシに戻る。
このブロック図は、デバイス1000を示し、デバイス1000は、パーソナルコンピュータ、サーバコンピュータ、ゲームコンソール、モバイルデバイス、または他のデジタルデバイスを組み込むことができるか、またはそれらであり得、これらの各々は、本発明の実施形態を実施するのに適している。デバイス1000は、ソフトウェアアプリケーション及び任意選択でオペレーティングシステムを実行するための中央処理装置(CPU)1002を含む。CPU1002は、1つ以上の同種または異種の処理コアで構成され得る。
ネットワークインターフェース1009は、デバイス1000が、電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワーク及びインターネットなどのワイドエリアネットワークを介した有線または無線通信を含み得る。オーディオプロセッサ1012は、CPU1002、メモリ1004、及び/またはストレージ1006によって提供される命令及び/またはデータからアナログまたはデジタルオーディオ出力を生成するように適合されている。CPU1002、GPU1016を含むグラフィックスサブシステム、メモリ1004、データストレージ1006、ユーザ入力デバイス1008、ネットワークインターフェース1009、及びオーディオプロセッサ1012を含むデバイス1000の構成要素は、1つ以上のデータバス1022を介して接続されている。
ピクセルデータは、CPU1002から直接的にグラフィックスメモリ1018に提供されることができる。代替的に、CPU1002は、GPU1016に所望の出力画像を定義するデータ及び/または命令を提供し、そこから、GPU1016は、1つ以上の出力画像のピクセルデータを生成する。所望の出力画像を定義するデータ及び/または命令は、メモリ1004及び/またはグラフィックスメモリ1018に格納されることができる。一実施形態では、GPU1016は、シーンに対するジオメトリ、照明、シェーディング、テクスチャリング、モーション、及び/またはカメラパラメータを定義する命令及びデータから、出力画像のピクセルデータを生成するための3Dレンダリング機能を含む。GPU1016は、シェーダプログラムを実行することができる1つ以上のプログラム可能な実行ユニットをさらに含むことができる。
別の実施態様では、複数のGPUデバイスに、レンダリングパイプライン及び/またはグラフィックスパイプラインにおいて、異なるシェーダ操作が割り当てられることができる。マスターGPUが、メインのレンダリングと合成を実行している。例えば、3つのGPUを含むグループでは、マスターGPU1が、メインレンダリング(例えば、第1のシェーダ操作)、及びスレーブGPU2とスレーブGPU3からの出力の合成を実行することができ、スレーブGPU2は、第2のシェーダ操作(例えば、河川などの流体効果)を実行することができ、スレーブGPU3は、第3のシェーダ(粒子の煙など)操作を実行することができ、マスターGPU1は、GPU1、GPU2、GPU3の各々からの結果を合成する。このようにして、様々なGPUが割り当てられ、様々なシェーダ操作(旗を振る、風、煙の生成、火など)を実行してビデオフレームをレンダリングすることができる。
さらに別の実施形態では、3つのGPUの各々が、ビデオフレームに対応するシーンの異なるオブジェクト及び/または部分に割り当てられることができる。上述の実施形態及び実装態様では、これらの操作は、同じフレーム期間で(並行して同時に)、または異なるフレーム期間で(並行して連続的に)実行されることができる。
Claims (36)
- クラウドゲーミング方法であって、
クラウドゲーミングサーバにおいてビデオゲームを実行するときに、複数のビデオフレームを生成し、
エンコーダによって、エンコーダビットレートで前記複数のビデオフレームをエンコードし、圧縮された前記複数のビデオフレームは、前記クラウドゲーミングサーバのストリーマからクライアントに伝送され、
前記クライアントの最大受信帯域幅を測定し、
前記ストリーマにおいて、前記複数のビデオフレームの前記エンコードを監視し、
前記エンコードの前記監視に基づいて、前記エンコーダのパラメータの動的な調節を行う、方法。 - 前記パラメータの前記動的な調節では、
前記複数のビデオフレームからのビデオフレームのグループをエンコードするために使用される前記エンコーダビットレートが、前記最大受信帯域幅を超えることを判定し、
前記エンコードがより低い精度で実行されるように、QPパラメータの値を増加させ、前記パラメータは前記QPパラメータである、請求項1に記載の方法。 - 前記パラメータの前記動的な調節では、
前記複数のビデオフレームからのビデオフレームのグループをエンコードするために使用される前記エンコーダビットレートが、前記最大受信帯域幅内であることを判定し、
前記ビデオフレームのグループを送信するときに、超過帯域幅があることを判定し、
前記エンコードがより高い精度で実行されるように、前記超過帯域幅に基づいてQPパラメータの値を低減させ、前記パラメータが前記QPパラメータである、請求項1に記載の方法。 - 前記パラメータの前記動的な調節では、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、Iフレームとして圧縮されたビデオフレームの数が前記Iフレームの閾値数を満たすこと、または超えることを判定し、
前記エンコードがより低い精度で実行されるように、QPパラメータの値を増加させ、前記パラメータが前記QPパラメータである、請求項1に記載の方法。 - 前記パラメータの前記動的な調節では、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、Iフレームとして圧縮されたビデオフレームの数が前記Iフレームの閾値数より低いことを判定し、
前記エンコードがより高い精度で実行されるようにQPパラメータの値を低減させ、前記パラメータは前記QPパラメータである、請求項1に記載の方法。 - 前記パラメータの前記動的な調節では、
エンコードされ、伝送速度で伝送された前記複数のビデオフレームからのビデオフレームのグループが、ビデオフレームの数を含み、前記ビデオフレームの数が閾値を満たすこと、または超えることを判定し、前記ビデオフレームの数の各々は、目標フレームサイズを超えるものであり、
前記目標フレームサイズ及び最大フレームサイズのうちの少なくとも1つについての前記パラメータを低減する、請求項1に記載の方法。 - 前記目標フレームサイズと前記最大フレームサイズが等しい、請求項6に記載の方法。
- 前記パラメータの前記動的な調節では、
エンコードされ、伝送速度で伝送された前記複数のビデオフレームからのビデオフレームのグループが、ビデオフレームの数を含み、前記ビデオフレームの数が閾値より低いことを判定し、前記ビデオフレームの数の各々は、目標フレームサイズ内にあり、
前記目標フレームサイズ及び最大フレームサイズのうちの少なくとも1つを前記パラメータとして増加させる、請求項1に記載の方法。 - 前記パラメータの前記動的な調節では、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、シーン変化を有しているとして識別されたビデオフレームの数がシーン変化の閾値数を満たすこと、または超えることを判定し、
前記エンコードがより低い精度で実行されるようにQPパラメータの値を増加させ、前記パラメータは前記QPパラメータである、請求項1に記載の方法。 - 前記パラメータの前記動的な調節では、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、シーン変化を有しているとして識別されたビデオフレームの数がシーン変化の閾値数より低いことを判定し、
前記エンコードがより高い精度で実行されるようにQPパラメータの値を低減させ、前記パラメータは前記QPパラメータである、請求項1に記載の方法。 - さらに、ビデオフレームのエンコードのスキップを無効化することで、前記クライアントにおける再生のスムーズさを優先する、請求項1に記載の方法。
- さらに、エンコーダにおいて、前記クライアントの前記最大受信帯域幅に基づいて、エンコーダビットレート速度を動的に調整する、請求項1に記載の方法。
- クラウドゲーミングのコンピュータプログラムを格納するコンピュータ可読媒体であって、
クラウドゲーミングサーバにおいてビデオゲームを実行するときに、複数のビデオフレームを生成するためのプログラム命令を有し、
クライアントの最大受信帯域幅を測定するためのプログラム命令を有し、
エンコーダによって、エンコーダビットレートで前記複数のビデオフレームをエンコードするためのプログラム命令を有し、圧縮される前記複数のビデオフレームは、前記クラウドゲーミングサーバのストリーマから前記クライアントに伝送され、
前記ストリーマにおいて前記複数のビデオフレームの前記エンコードを監視するためのプログラム命令を有し、
前記エンコードの前記監視に基づいて前記エンコーダのパラメータを動的に調節するためのプログラム命令を有する、コンピュータ可読媒体。 - 前記パラメータを動的に調節するための前記プログラム命令は、
前記複数のビデオフレームからのビデオフレームのグループをエンコードするために使用される前記エンコーダビットレートが、前記最大受信帯域幅を超えることを判定するためのプログラム命令を有し、
前記エンコードがより低い精度で実行されるように、QPパラメータの値を増加させるためのプログラム命令を有し、前記パラメータは前記QPパラメータである、請求項13に記載のコンピュータ可読媒体。 - 前記パラメータを動的に調節するための前記プログラム命令は、
前記複数のビデオフレームからのビデオフレームのグループをエンコードするために使用される前記エンコーダビットレートが、前記最大受信帯域幅内であることを判定するためのプログラム命令を有し、
前記ビデオフレームのグループを送信するときに、超過帯域幅があることを判定するためのプログラム命令を有し、
前記エンコードがより高い精度で実行されるように、前記超過帯域幅に基づいてQPパラメータの値を低減させるためのプログラム命令を有し、前記パラメータは前記QPパラメータである、請求項13に記載のコンピュータ可読媒体。 - 前記パラメータを動的に調節するための前記プログラム命令は、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、シーン変化を有しているとして識別されたビデオフレームの数がシーン変化の閾値数を満たすこと、または超えることを判定するためのプログラム命令を有し、
前記エンコードがより低い精度で実行されるようにQPパラメータの値を増加させるためのプログラム命令を有し、前記パラメータが前記QPパラメータである、請求項13に記載のコンピュータ可読媒体。 - 前記パラメータを動的に調節するための前記プログラム命令は、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、Iフレームとして圧縮されたビデオフレームの数が前記Iフレームの閾値数より低いことを判定するためのプログラム命令を有し、
プログラミング命令を前記エンコードがより高い精度で実行されるようにQPパラメータの値を低減させるためのプログラム命令を有し、前記パラメータは前記QPパラメータである
、請求項13に記載のコンピュータ可読媒体。 - 前記パラメータを動的に調節するための前記プログラム命令は、
エンコードされ、伝送速度で伝送された前記複数のビデオフレームからのビデオフレームのグループが、ビデオフレームの数を含み、前記ビデオフレームの数が閾値を満たすこと、または超えることを判定するためのプログラム命令を有し、前記ビデオフレームの数の各々は目標フレームサイズを超えるものであり、
前記目標フレームサイズ及び最大フレームサイズのうちの少なくとも1つについての前記パラメータを低減するためのプログラム命令を有する、請求項13に記載のコンピュータ可読媒体。 - クラウドゲーミング用の前記コンピュータプログラム内で、前記目標フレームサイズと前記最大フレームサイズが等しい、請求項18に記載のコンピュータ可読媒体。
- 前記パラメータを動的に調節するための前記プログラム命令は、
エンコードされ、伝送速度で伝送された前記複数のビデオフレームからのビデオフレームのグループが、ビデオフレームの数を含み、前記ビデオフレームの数が閾値より低いことを判定するためのプログラム命令であって、前記ビデオフレームの数の各々は目標フレームサイズ内にあり、
前記目標フレームサイズ及び最大フレームサイズのうちの少なくとも1つを前記パラメータとして増加させるためのプログラム命令を有する、請求項13に記載のコンピュータ可読媒体。 - 前記パラメータを動的に調節するための前記プログラム命令は、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、シーン変化を有していると識別されたビデオフレームの数がシーン変化の閾値数を満たすこと、または超えることを判定するためのプログラム命令を有し、
前記エンコードがより低い精度で実行されるようにQPパラメータの値を増加させるためのプログラム命令を有し、前記パラメータは前記QPパラメータである、請求項13に記載のコンピュータ可読媒体。 - 前記パラメータを動的に調節するための前記プログラム命令は、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、シーン変化を有していると識別されたビデオフレームの数がシーン変化の閾値数より低いことを判定するためのプログラム命令を有し、
前記エンコードがより高い精度で実行されるようにQPパラメータの値を低減させるためのプログラム命令を有し、前記パラメータは前記QPパラメータである、請求項13に記載のコンピュータ可読媒体。 - ビデオフレームのエンコードのスキップを無効化することで、前記クライアントにおける再生のスムーズさを優先させるためのプログラム命令をさらに含む、請求項13に記載のコンピュータ可読媒体。
- 前記クライアントの前記最大受信帯域幅に基づいて、エンコーダでのエンコーダビットレート速度を動的に調整するためのプログラム命令をさらに含む、請求項13に記載のコンピュータ可読媒体。
- コンピュータシステムであって、
プロセッサと、
前記プロセッサに結合され、その中に格納された命令を有しているメモリと、を含み、前記命令は、前記コンピュータシステムによって実行された場合に、前記コンピュータシステムにクラウドゲーミング方法を実行させ、前記クラウドゲーミング方法は、
クラウドゲーミングサーバにおいてビデオゲームを実行するときに、複数のビデオフレームを生成し、
エンコーダによって、エンコーダビットレートで前記複数のビデオフレームをエンコードし、圧縮された前記複数のビデオフレームは、前記クラウドゲーミングサーバのストリーマからクライアントに伝送され、
クライアントの最大受信帯域幅を測定し、
前記ストリーマにおいて、前記複数のビデオフレームの前記エンコードを監視し、
前記エンコードすることを前記監視することに基づいて、前記エンコーダのパラメータの動的な調節を行う、コンピュータシステム。 - 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
前記複数のビデオフレームからのビデオフレームのグループをエンコードするために使用される前記エンコーダビットレートが、前記最大受信帯域幅を超えることを判定し、
エンコードがより低い精度で実行されるように、QPパラメータの値を増加させ、前記パラメータは前記QPパラメータである、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
前記複数のビデオフレームからのビデオフレームのグループをエンコードするために使用される前記エンコーダビットレートが、前記最大受信帯域幅内であることを判定し、
前記ビデオフレームのグループを送信するときに、超過帯域幅があることを判定し、
前記エンコードがより高い精度で実行されるように前記超過帯域幅に基づいてQPパラメータの値を低減させ、前記パラメータが前記QPパラメータである、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、Iフレームとして圧縮されたビデオフレームの数が前記Iフレームの閾値数を満たすこと、または超えることを判定し、
前記エンコードがより低い精度で実行されるように、QPパラメータの値を増加させ、前記パラメータが前記QPパラメータである、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、Iフレームとして圧縮されたビデオフレームの数が前記Iフレームの閾値数より低いことを判定し、
前記エンコードがより高い精度で実行されるようにQPパラメータの値を低減させ、前記パラメータは前記QPパラメータである、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
エンコードされ、伝送速度で伝送された前記複数のビデオフレームからのビデオフレームのグループが、ビデオフレームの数を含み、前記ビデオフレームの数が閾値を満たすこと、または超えることを判定し、前記ビデオフレームの数の各々は目標フレームサイズを超えるものであり、
前記目標フレームサイズ及び最大フレームサイズのうちの少なくとも1つについての前記パラメータを低減する、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、前記目標フレームサイズ及び前記最大フレームサイズが等しい、請求項30に記載のコンピュータシステム。
- 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
エンコードされ、伝送速度で伝送された前記複数のビデオフレームからのビデオフレームのグループが、ビデオフレームの数を含み、前記ビデオフレームの数が閾値より低いことを判定し、前記ビデオフレームの数の各々は目標フレームサイズ内にあり、
前記目標フレームサイズ及び最大フレームサイズのうちの少なくとも1つを前記パラメータとして増加させる、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、シーン変化を有しているとして識別されたビデオフレームの数がシーン変化の閾値数を満たすこと、または超えることを判定し、
前記エンコードがより低い精度で実行されるように、QPパラメータの値を増加させ、前記パラメータは前記QPパラメータである、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、前記パラメータの動的な調節で、
圧縮された前記複数のビデオフレームからのビデオフレームのグループ内で、シーン変化を有しているとして識別されたビデオフレームの数がシーン変化の閾値数より低いことを判定し、
前記エンコードがより高い精度で実行されるようにQPパラメータの値を低減させ、前記パラメータは前記QPパラメータである、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、さらに、
ビデオフレームのエンコードのスキップを無効化することで、前記クライアントにおける再生のスムーズさを優先する、請求項25に記載のコンピュータシステム。 - 前記クラウドゲーミング方法では、さらに、
エンコーダにおいて、前記クライアントの前記最大受信帯域幅に基づいて、エンコーダビットレート速度を動的に調整する、請求項25に記載のコンピュータシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2024017687A JP7505134B2 (ja) | 2019-10-01 | 2024-02-08 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
JP2024094909A JP2024111022A (ja) | 2019-10-01 | 2024-06-12 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962909182P | 2019-10-01 | 2019-10-01 | |
US201962909185P | 2019-10-01 | 2019-10-01 | |
US62/909,182 | 2019-10-01 | ||
US62/909,185 | 2019-10-01 | ||
US17/007,880 US11524230B2 (en) | 2019-10-01 | 2020-08-31 | Encoder tuning to improve tradeoffs between latency and video quality in cloud gaming applications |
US17/007,880 | 2020-08-31 | ||
US17/008,030 US11344799B2 (en) | 2019-10-01 | 2020-08-31 | Scene change hint and client bandwidth used at encoder for handling video frames after a scene change in cloud gaming applications |
US17/008,030 | 2020-08-31 | ||
PCT/US2020/053657 WO2021067516A1 (en) | 2019-10-01 | 2020-09-30 | Encoder tuning to improve tradeoffs between latency and video quality in cloud gaming applications |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024017687A Division JP7505134B2 (ja) | 2019-10-01 | 2024-02-08 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022550443A JP2022550443A (ja) | 2022-12-01 |
JPWO2021067516A5 JPWO2021067516A5 (ja) | 2023-10-11 |
JP7436644B2 true JP7436644B2 (ja) | 2024-02-21 |
Family
ID=75161626
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022520322A Active JP7436644B2 (ja) | 2019-10-01 | 2020-09-30 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
JP2024017687A Active JP7505134B2 (ja) | 2019-10-01 | 2024-02-08 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
JP2024094909A Pending JP2024111022A (ja) | 2019-10-01 | 2024-06-12 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024017687A Active JP7505134B2 (ja) | 2019-10-01 | 2024-02-08 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
JP2024094909A Pending JP2024111022A (ja) | 2019-10-01 | 2024-06-12 | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11344799B2 (ja) |
EP (1) | EP4037790A1 (ja) |
JP (3) | JP7436644B2 (ja) |
CN (1) | CN114746157A (ja) |
WO (1) | WO2021067516A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10967259B1 (en) * | 2018-05-16 | 2021-04-06 | Amazon Technologies, Inc. | Asynchronous event management for hosted sessions |
US11344799B2 (en) * | 2019-10-01 | 2022-05-31 | Sony Interactive Entertainment Inc. | Scene change hint and client bandwidth used at encoder for handling video frames after a scene change in cloud gaming applications |
US11865434B2 (en) * | 2019-10-01 | 2024-01-09 | Sony Interactive Entertainment Inc. | Reducing latency in cloud gaming applications by overlapping receive and decode of video frames and their display at the client |
CN115151969A (zh) * | 2020-02-21 | 2022-10-04 | 高通股份有限公司 | 用以补偿被延迟的图形处理单元渲染时间的被减少的显示处理单元传送时间 |
CN112104879B (zh) * | 2020-11-13 | 2021-03-23 | 腾讯科技(深圳)有限公司 | 一种视频编码方法、装置、电子设备及存储介质 |
US20220208145A1 (en) * | 2020-12-28 | 2022-06-30 | Ati Technologies Ulc | Display wall synchronization using variable refresh rate modules |
CN113542849B (zh) * | 2021-07-06 | 2023-06-30 | 腾讯科技(深圳)有限公司 | 视频数据处理方法及装置、电子设备、存储介质 |
CN113923527B (zh) * | 2021-09-30 | 2023-09-05 | 北京爱奇艺科技有限公司 | 云游戏的视频数据解码方法、装置、电子设备及存储介质 |
CN114401427B (zh) * | 2021-12-28 | 2024-10-01 | 深圳志趣互娱科技有限公司 | 一种用于云游戏的流媒体数据传输系统及方法 |
US20230208761A1 (en) * | 2021-12-28 | 2023-06-29 | International Business Machines Corporation | Ai-based compensation of resource constrained communication |
CN114404960A (zh) * | 2022-02-07 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 云游戏资源数据处理方法、装置、计算机设备和存储介质 |
US20230318980A1 (en) * | 2022-04-04 | 2023-10-05 | Google Llc | Congestion control for low-latency interactive video streaming |
CN115150641A (zh) * | 2022-06-28 | 2022-10-04 | 炫彩互动网络科技有限公司 | 一种云游戏视频编码参数动态调整方法及装置 |
WO2024010588A1 (en) * | 2022-07-08 | 2024-01-11 | Google Llc | Cloud-based gaming system for supporting legacy gaming applications with high frame rate streams |
US20240121416A1 (en) * | 2022-10-10 | 2024-04-11 | Microsoft Technology Licensing, Llc | Systems and methods for encoding an interactive software video stream |
US20240181339A1 (en) * | 2022-12-01 | 2024-06-06 | At&T Intellectual Property I, L.P. | Intelligent adaptive signaling automation for metaverse streaming |
CN117615141B (zh) * | 2023-11-23 | 2024-08-02 | 镕铭微电子(济南)有限公司 | 视频的编码方法、系统、设备及介质 |
CN118449863A (zh) * | 2024-07-08 | 2024-08-06 | 海马云(天津)信息技术有限公司 | 动态的带宽资源管理方法与装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100166064A1 (en) | 2002-12-10 | 2010-07-01 | Perlman Steve G | System and Method for Utilizing Forward Error Correction with Video Compression |
US20100316066A1 (en) | 2009-06-16 | 2010-12-16 | Qualcomm Incorporated | Managing video adaptation algorithms |
JP2017200631A (ja) | 2012-12-21 | 2017-11-09 | ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | 記録されたゲームプレーに基づくクラウドゲーミングのための、提案されたミニゲームの自動作成 |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0974566A (ja) | 1995-09-04 | 1997-03-18 | Sony Corp | 圧縮符号化装置及び圧縮符号化データの記録装置 |
AUPR212600A0 (en) | 2000-12-18 | 2001-01-25 | Canon Kabushiki Kaisha | Efficient video coding |
US7047435B2 (en) | 2000-12-19 | 2006-05-16 | Siemens Corporate Research, Inc. | System and method for clock-synchronization in distributed systems |
US9138644B2 (en) * | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US9352222B2 (en) * | 2002-12-10 | 2016-05-31 | Sony Interactive Entertainment America Llc | System and method for capturing text for an online application |
US8661496B2 (en) * | 2002-12-10 | 2014-02-25 | Ol2, Inc. | System for combining a plurality of views of real-time streaming interactive video |
US10075750B2 (en) | 2002-12-10 | 2018-09-11 | Sony Interactive Entertainment America Llc | Porting locally processed media data with low latency to a remote client device via various wireless links |
US9108107B2 (en) | 2002-12-10 | 2015-08-18 | Sony Computer Entertainment America Llc | Hosting and broadcasting virtual events using streaming interactive video |
US8845434B2 (en) | 2002-12-10 | 2014-09-30 | Ol2, Inc. | System and method for improving the graphics performance of hosted applications |
US9314691B2 (en) * | 2002-12-10 | 2016-04-19 | Sony Computer Entertainment America Llc | System and method for compressing video frames or portions thereof based on feedback information from a client device |
US7668243B2 (en) | 2004-05-18 | 2010-02-23 | Texas Instruments Incorporated | Audio and video clock synchronization in a wireless network |
US8223845B1 (en) | 2005-03-16 | 2012-07-17 | Apple Inc. | Multithread processing of video frames |
US7478256B2 (en) | 2006-01-24 | 2009-01-13 | National Instruments Corporation | Coordinating data synchronous triggers on multiple devices |
US8613673B2 (en) | 2008-12-15 | 2013-12-24 | Sony Computer Entertainment America Llc | Intelligent game loading |
US9375635B2 (en) | 2009-03-23 | 2016-06-28 | Sony Interactive Entertainment America Llc | System and method for improving the graphics performance of hosted applications |
US9781477B2 (en) | 2010-05-05 | 2017-10-03 | Cavium, Inc. | System and method for low-latency multimedia streaming |
US9094564B2 (en) | 2010-05-07 | 2015-07-28 | Microsoft Technology Licensing, Llc | Clock synchronization for shared media playback |
US20130039408A1 (en) | 2011-02-07 | 2013-02-14 | Screenovate Technologies Ltd | Method for enhancing compression and transmission process of a screen image |
US9578354B2 (en) | 2011-04-18 | 2017-02-21 | Verizon Patent And Licensing Inc. | Decoupled slicing and encoding of media content |
US8597118B2 (en) | 2011-08-29 | 2013-12-03 | Bally Gaming, Inc. | Method, apparatus and system for video tuning of a video switching device for a gaming machine |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US8793393B2 (en) | 2011-11-23 | 2014-07-29 | Bluespace Corporation | Video processing device, video server, client device, and video client-server system with low latency thereof |
US8923372B2 (en) | 2012-04-10 | 2014-12-30 | Insight Scientific International (Shanghai) Ltd. | Method and apparatus for improved parallel RF testing of multiple devices |
US20140086310A1 (en) | 2012-09-21 | 2014-03-27 | Jason D. Tanner | Power efficient encoder architecture during static frame or sub-frame detection |
WO2014054325A1 (ja) | 2012-10-05 | 2014-04-10 | ソニー株式会社 | 符号化制御装置および符号化制御方法 |
US20140187331A1 (en) * | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Latency reduction by sub-frame encoding and transmission |
EP2986005B1 (en) | 2013-01-04 | 2019-05-08 | Samsung Electronics Co., Ltd | Apparatus for entropy-decoding slice segments |
WO2014145921A1 (en) | 2013-03-15 | 2014-09-18 | Activevideo Networks, Inc. | A multiple-mode system and method for providing user selectable video content |
US9036084B2 (en) | 2013-04-11 | 2015-05-19 | Qualcomm Incorporated | Apparatus and method for synchronous display of video data |
EP3000232A4 (en) | 2013-05-23 | 2017-01-25 | Kabushiki Kaisha Square Enix Holdings (also trading as Square Enix Holdings Co., Ltd) | Dynamic allocation of rendering resources in a cloud gaming system |
JP5481606B1 (ja) * | 2013-07-22 | 2014-04-23 | 株式会社fuzz | 画像生成システムおよび画像生成用プログラム |
US9497358B2 (en) | 2013-12-19 | 2016-11-15 | Sony Interactive Entertainment America Llc | Video latency reduction |
US9691181B2 (en) | 2014-02-24 | 2017-06-27 | Sony Interactive Entertainment Inc. | Methods and systems for social sharing head mounted display (HMD) content with a second screen |
US9332216B2 (en) | 2014-03-12 | 2016-05-03 | Sony Computer Entertainment America, LLC | Video frame rate compensation through adjustment of vertical blanking |
JP6055433B2 (ja) | 2014-04-01 | 2016-12-27 | 株式会社ソニー・インタラクティブエンタテインメント | ゲーム提供サーバ |
US20150296215A1 (en) | 2014-04-11 | 2015-10-15 | Microsoft Corporation | Frame encoding using hints |
US9998634B2 (en) * | 2014-11-03 | 2018-06-12 | Google Llc | Video frame playback scheduling |
US9795879B2 (en) * | 2014-12-31 | 2017-10-24 | Sony Interactive Entertainment America Llc | Game state save, transfer and resume for cloud gaming |
US10136034B2 (en) | 2015-01-23 | 2018-11-20 | Telefonaktiebolaget Lm Ericsson (Publ) | VLC-based video frame synchronization |
JP2017005611A (ja) | 2015-06-15 | 2017-01-05 | 富士通株式会社 | 動画像復号装置及び動画像復号方法 |
EP3341098B1 (en) | 2015-09-30 | 2024-03-13 | Sony Interactive Entertainment America LLC | Multi-user demo streaming service for cloud gaming |
US10629222B2 (en) | 2015-10-09 | 2020-04-21 | Hitachi, Ltd. | Sound signal procession method and device |
JP6959925B2 (ja) | 2015-12-30 | 2021-11-05 | ソニー・インタラクティブエンタテインメント エルエルシー | クラウドゲーミングにおけるユーザ保存データ管理方法 |
US10238965B2 (en) | 2016-04-28 | 2019-03-26 | Sony Interactive Entertainment America Llc | Cloud gaming device handover |
US10868848B2 (en) | 2016-07-25 | 2020-12-15 | Peraso Technologies Inc. | Wireless multimedia communications system and method |
US10306180B2 (en) | 2016-10-21 | 2019-05-28 | Liquidsky Software, Inc. | Predictive virtual reality content streaming techniques |
US10679314B2 (en) | 2017-03-15 | 2020-06-09 | Microsoft Technology Licensing, Llc | Techniques for reducing perceptible delay in rendering graphics |
US10675544B2 (en) | 2017-03-31 | 2020-06-09 | Sony Interactive Entertainment LLC | Personalized user interface based on in-application behavior |
US10574995B2 (en) | 2017-04-10 | 2020-02-25 | Intel Corporation | Technology to accelerate scene change detection and achieve adaptive content display |
US10402932B2 (en) * | 2017-04-17 | 2019-09-03 | Intel Corporation | Power-based and target-based graphics quality adjustment |
GB2593598B (en) | 2017-04-21 | 2021-12-29 | Zenimax Media Inc | Systems and methods for rendering & pre-encoded load estimation based encoder hinting |
US20190089760A1 (en) * | 2017-09-20 | 2019-03-21 | Junshan Zhang | Systems and methods for real-time content creation and sharing in a decentralized network |
EP4276814A3 (en) | 2018-03-22 | 2023-12-20 | Google LLC | Methods and systems for rendering and encoding content for online interactive gaming sessions |
US10974142B1 (en) * | 2019-10-01 | 2021-04-13 | Sony Interactive Entertainment Inc. | Synchronization and offset of VSYNC between cloud gaming server and client |
US11344799B2 (en) * | 2019-10-01 | 2022-05-31 | Sony Interactive Entertainment Inc. | Scene change hint and client bandwidth used at encoder for handling video frames after a scene change in cloud gaming applications |
US11539960B2 (en) * | 2019-10-01 | 2022-12-27 | Sony Interactive Entertainment Inc. | Game application providing scene change hint for encoding at a cloud gaming server |
-
2020
- 2020-08-31 US US17/008,030 patent/US11344799B2/en active Active
- 2020-08-31 US US17/007,880 patent/US11524230B2/en active Active
- 2020-09-30 JP JP2022520322A patent/JP7436644B2/ja active Active
- 2020-09-30 CN CN202080081914.9A patent/CN114746157A/zh active Pending
- 2020-09-30 WO PCT/US2020/053657 patent/WO2021067516A1/en unknown
- 2020-09-30 EP EP20797596.2A patent/EP4037790A1/en active Pending
-
2022
- 2022-12-13 US US18/080,605 patent/US12115447B2/en active Active
-
2024
- 2024-02-08 JP JP2024017687A patent/JP7505134B2/ja active Active
- 2024-06-12 JP JP2024094909A patent/JP2024111022A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100166064A1 (en) | 2002-12-10 | 2010-07-01 | Perlman Steve G | System and Method for Utilizing Forward Error Correction with Video Compression |
US20100316066A1 (en) | 2009-06-16 | 2010-12-16 | Qualcomm Incorporated | Managing video adaptation algorithms |
JP2017200631A (ja) | 2012-12-21 | 2017-11-09 | ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | 記録されたゲームプレーに基づくクラウドゲーミングのための、提案されたミニゲームの自動作成 |
JP2019018076A (ja) | 2012-12-21 | 2019-02-07 | ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | 記録されたゲームプレーに基づくクラウドゲーミングのための、提案されたミニゲームの自動作成 |
Non-Patent Citations (2)
Title |
---|
Hua-Jun Hong; Chih-Fan Hsu, Tsung-Han Tsai, Chun-Ying Huang, Kuan-Ta Chen, Cheng-Hsin Hsu,Enabling Adaptive Cloud Gaming in an Open-Source Cloud Gaming Platform,IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,Volume: 25, Issue: 12,米国,IEEE,2015年12月,pp.2078-2091,https://ieeexplore.ieee.org/ie17/76/4358651/07137667.pdf |
坂手 寛治 ,基礎からの画像符号化(9,10)符号化装置の制御技術,映像情報メディア学会誌,日本,映像情報メディア学会,2013年05月,Vol.67, No.5,pp.397-400,https://www.jstage.jst.go.jp/article/itej/67/5/67_397/_pdf/-char/ja |
Also Published As
Publication number | Publication date |
---|---|
US12115447B2 (en) | 2024-10-15 |
JP7505134B2 (ja) | 2024-06-24 |
JP2024111022A (ja) | 2024-08-16 |
US11344799B2 (en) | 2022-05-31 |
CN114746157A (zh) | 2022-07-12 |
US11524230B2 (en) | 2022-12-13 |
JP2024050857A (ja) | 2024-04-10 |
US20210093960A1 (en) | 2021-04-01 |
WO2021067516A1 (en) | 2021-04-08 |
US20210093959A1 (en) | 2021-04-01 |
EP4037790A1 (en) | 2022-08-10 |
JP2022550443A (ja) | 2022-12-01 |
US20230115947A1 (en) | 2023-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7436644B2 (ja) | レイテンシとビデオ品質の間のトレードオフをクラウドゲーミングアプリケーションにおいて改善するためのエンコーダ調整 | |
US11539960B2 (en) | Game application providing scene change hint for encoding at a cloud gaming server | |
EP4037787B1 (en) | Synchronization and offset of vsync between cloud gaming server and client | |
US11998840B2 (en) | Determining targeted display time of a video frame for a client based on server side timing information | |
JPWO2021067317A5 (ja) | ||
JP7583035B2 (ja) | クラウドゲーミングサーバで符号化するためのシーン変化のヒントを提供するゲームアプリケーション |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231002 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231002 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20231002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231220 |
|
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: 20240109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7436644 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |