IP Library › Granted Patent US 11,458,391
Granted Patent B2
US 11,458,391 · App. 17/008,502 · Granted Oct 4, 2022

System and method for improving smoothness in cloud gaming applications

Inventors: Roelof Roderick Colenbrander (Costa Mesa, CA); Mark E. Cerny (Los Angeles, CA)
Assignee: Sony Interactive Entertainment Inc.
A63F13/355A63F13/358A63F13/52A63F13/537A63F2300/534A63F2300/538H04L65/61H04L67/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,458,391
App. No.
17/008,502
Granted
Oct 4, 2022
Kind
B2
Abstract

A method for cloud gaming. The method including generating a video frame when executing a video game at a server. The method including performing a scan-out process to deliver the video frame to an encoder configured to compress the video frame, wherein the scan-out process begins at a flip-time of the video frame. The method including transmitting the video frame that is compressed to a client. The method including determining at the client a target display time for the video frame. The method including scheduling at the client a display time for the video frame based on the target display time.

Claims (61)

1. A method of cloud gaming, comprising:

generating a video frame when executing a video game at a server;

performing a scan-out process to deliver the video frame to an encoder configured to compress the video frame, wherein the scan-out process begins at a flip-time of the video frame;

transmitting the video frame that is compressed to a client;

determining at the client a target display time for the video frame; and

scheduling at the client a display time for the video frame based on the target display time.

2. The method of claim 1 , wherein the determining at the client the target display time includes:

receiving at least one of a simulation time and the flip-time and a server VSYNC time for the video frame.

3. The method of claim 1 , wherein the determining at the client the target display time includes:

inferring the target display time based on a statistical analysis of a plurality of arrival times at the client for a plurality of video frames.

4. The method of claim 3 , wherein the inferring the target display time includes:

receiving at the client a scan-out timestamp for the video frame;

receiving scan-out timestamp information for the plurality of video frames, wherein the scan-out timestamp information for the plurality of video frames is processed at the client to generate a histogram of arrival times of the plurality of video frames that is compressed,

wherein the target display time is determined based on the scan-out timestamp for the video frame and the histogram.

5. The method of claim 1 , wherein the determining at the client the target display time includes:

explicitly determining the target display time by receiving at the client from the server via a GPU API the target display time,

wherein the target display time is an integral time that lines up with occurrences of a client VSYNC signal.

6. The method of claim 5 ,

wherein the target display time is used for the display time and is a fractional time based on a simulation time for rendering the video frame, wherein the fractional time lines up between two occurrences of a client VSYNC signal.

7. The method of claim 6 , wherein the fractional time specifies the simulation time for rendering the rendered video frame.

8. The method of claim 6 , wherein the fractional time specifies the display time that is scheduled.

9. The method of claim 1 , wherein the performing the scan-out process includes:

scanning the video frame scanline-by-scanline and one or more user interface features scanline-by-scanline to one or more input frame buffers, and compositing and blending the video frame and the one or more user interface features into a modified video frame,

wherein the modified video frame that is compressed is transmitted to the client,

wherein the target display time is determined at the client for the modified video frame, and

wherein the display time for the modified video frame is based on the target display time.

10. The method of claim 1 , wherein the video game is executed for a fixed frame rate or a variable frame rate.

11. A non-transitory computer-readable medium storing a computer program for cloud gaming, the computer-readable medium comprising:

program instructions for generating a video frame when executing a video game at a server;

program instructions for performing a scan-out process to deliver the video frame to an encoder configured to compress the video frame, wherein the scan-out process begins at a flip-time of the video frame;

program instructions for transmitting the video frame that is compressed to a client;

program instructions for determining at the client a target display time for the video frame; and

program instructions for scheduling at the client a display time for the video frame based on the target display time.

12. The non-transitory computer-readable medium of claim 11 , wherein the program instructions for determining at the client the target display time includes:

program instructions for receiving at least one of a simulation time and the flip-time and a server VSYNC time for the video frame.

13. The non-transitory computer-readable medium of claim 12 , wherein the program instructions for determining at the client the target display time includes:

program instructions for inferring the target display time based on a statistical analysis of a plurality of arrival times at the client for a plurality of video frames.

14. A computer system comprising:

a processor; and

memory coupled to the processor and having stored therein instructions that, if executed by the computer system, cause the computer system to execute a method for cloud gaming comprising:

generating a video frame when executing a video game at a server;

performing a scan-out process to deliver the video frame to an encoder configured to compress the video frame, wherein the scan-out process begins at a flip-time of the video frame;

transmitting the video frame that is compressed to a client;

determining at the client a target display time for the video frame; and

scheduling at the client a display time for the video frame based on the target display time.

15. The computer system of claim 14 , wherein in the method the determining at the client the target display time includes:

receiving at least one of a simulation time and the flip-time and a server VSYNC time for the video frame.

16. The computer system of claim 14 , wherein in the method the determining at the client the target display time includes:

inferring the target display time based on a statistical analysis of a plurality of arrival times at the client for a plurality of video frames.

17. The computer system of claim 14 , wherein in the method the determining at the client the target display time includes:

explicitly determining the target display time by receiving at the client from the server via a GPU API the target display time,

wherein the target display time is an integral time that lines up with occurrences of a client VSYNC signal.

18. The computer system of claim 17 ,

wherein the target display time is used for the display time and is a fractional time based on a simulation time for rendering the video frame, wherein the fractional time lines up between two occurrences of a client VSYNC signal.

19. The computer system of claim 14 , wherein in the method the performing the scan-out process includes:

scanning the video frame scanline-by-scanline and one or more user interface features scanline-by-scanline to one or more input frame buffers, and compositing and blending the video frame and the one or more user interface features into a modified video frame,

wherein the modified video frame that is compressed is transmitted to the client,

wherein the target display time is determined at the client for the modified video frame, and

wherein the display time for the modified video frame is based on the target display time.

20. The computer system of claim 14 ,

wherein the video game is executed for a fixed frame rate or a variable frame rate.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2021
From: COLENBRANDER, ROELOF RODERICK; CERNY, MARK E.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 057537/0203 →
Continuity (4)
Provisional Application 62909166 · Oct 1, 2019
Provisional Application 62909172 · Oct 1, 2019
Provisional Application 62909175 · Oct 1, 2019
Related Publication 20210093963A1 · Apr 1, 2021