IP Library Granted Patent US 11,110,349
Granted Patent B2
US 11,110,349 · App. 16/696,125 · Granted Sep 7, 2021

Dynamic client buffering and usage of received video frames for cloud gaming

Inventors: Mark E. Cerny (Los Angeles, CA); Kelvin M. Yong (Irvine, CA)
Assignee: Sony Interactive Entertainment Inc.
A63F13/355A63F13/335A63F13/358A63F13/44G07F17/3225H04L65/607H04L65/80H04L67/10H04L67/1095H04L67/38H04N21/2343H04N21/242H04N21/4302H04N21/4402H04N21/4424H04N21/4781H04N21/8547A63F2300/534A63F2300/538A63F2300/638
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,110,349
App. No.
16/696,125
Granted
Sep 7, 2021
Kind
B2
Abstract

A method is disclosed including setting, at a server, a server VSYNC signal to a server VSYNC frequency defining a plurality of frame periods. The server VSYNC signal corresponding to generation of a plurality of video frames at the server during the plurality of frame periods. The method including setting, at a client, a client VSYNC signal to a client VSYNC frequency. The method including sending a plurality of compressed video frames based on the plurality of video frames from the server to the client over a network using the server VSYNC signal. The method including decoding and displaying, at the client, the plurality of compressed video frames. The method including analyzing the timing of one or more client operations to set the amount of frame buffering used by the client, as the client receives the plurality of compressed video frames.

Claims (51)

1. A method, comprising:

setting, at a server, a server VSYNC signal to a server VSYNC frequency defining a plurality of frame periods, the server VSYNC signal corresponding to generation of a plurality of video frames at the server during the plurality of frame periods;

setting, at a client, a client VSYNC signal to a client VSYNC frequency;

sending a plurality of compressed video frames based on the plurality of video frames from the server to the client over a network using the server VSYNC signal;

decoding and displaying, at the client, the plurality of compressed video frames; and

as the client receives the plurality of compressed video frames, analyzing timing of one or more client operations to set an amount of frame buffering used by the client.

2. The method of claim 1 , wherein the amount of frame buffering is dynamically set by the client over time.

3. The method of claim 1 , wherein the amount of frame buffering defines a number of frames to buffer at the client.

4. The method of claim 1 , further comprising:

adjusting relative timing between the server VSYNC signal and the client VSYNC signal based on the timing of the one or more client operations.

5. The method of claim 1 , further comprising:

sending timestamp information associated with the plurality of video frames;

building a histogram giving timing for each video frame that is generated and delivered to the client of a corresponding decode time at the client relative to corresponding timestamp information;

measuring a width of the histogram at a moment in time; and

dynamically setting a number of display buffers at the client based on the width of the histogram and a frame period of the plurality of frame periods.

6. The method of claim 5 , wherein the corresponding timestamp information for a corresponding video frame that is generated occurs at a corresponding flip-time at the server or at a corresponding occurrence of the server VSYNC signal used for scanning the corresponding video frame to an encoder.

7. The method of claim 1 , wherein the amount of frame buffering used by the client is an input for latency tuning, wherein the latency tuning includes determining to skip display of a frame at the client if the frame arrives later than a predefined time.

8. The method of claim 1 , wherein the plurality of compressed video frames that are decoded are displayed using the client VSYNC signal.

9. A non-transitory computer-readable medium storing a computer program for performing a method, the computer-readable medium comprising:

program instructions for setting, at a server, a server VSYNC signal to a server VSYNC frequency defining a plurality of frame periods, the server VSYNC signal corresponding to generation of a plurality of video frames at the server during the plurality of frame periods;

program instructions for setting, at a client, a client VSYNC signal to a client VSYNC frequency;

program instructions for sending a plurality of compressed video frames based on the plurality of video frames from the server to the client over a network using the server VSYNC signal;

program instructions for decoding and displaying, at the client, the plurality of compressed video frames; and

program instructions for analyzing timing of one or more client operations to set an amount of frame buffering used by the client, as the client receives the plurality of compressed video frames.

10. The non-transitory computer-readable medium of claim 9 , wherein in the method the amount of frame buffering is dynamically set by the client over time.

11. The non-transitory computer-readable medium of claim 9 , wherein in the method the amount of frame buffering defines a number of frames to buffer at the client.

12. The non-transitory computer-readable medium of claim 9 , further comprising:

program instructions for adjusting relative timing between the server VSYNC signal and the client VSYNC signal based on the timing of the one or more client operations.

13. The non-transitory computer-readable medium of claim 9 , further comprising:

program instructions for sending timestamp information associated with the plurality of video frames;

program instructions for building a histogram giving timing for each video frame that is generated and delivered to the client of a corresponding decode time at the client relative to corresponding timestamp information;

program instructions for measuring a width of the histogram at a moment in time; and

program instructions for dynamically setting a number of display buffers at the client based on the width of the histogram and a frame period of the plurality of frame periods.

14. The non-transitory computer-readable medium of claim 13 , wherein in the method the corresponding timestamp information for a corresponding video frame that is generated occurs at a corresponding flip-time at the server or at a corresponding occurrence of the server VSYNC signal used for scanning the corresponding video frame to an encoder.

15. The non-transitory computer-readable medium of claim 9 , wherein in the method the amount of frame buffering used by the client is an input for latency tuning, wherein the latency tuning includes determining to skip display of a frame at the client if the frame arrives later than a predefined time.

16. The non-transitory computer-readable medium of claim 9 , wherein in the method the plurality of compressed video frames that are decoded are displayed using the client VSYNC signal.

17. A computer system comprising:

a processor;

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, comprising:

setting, at a server, a server VSYNC signal to a server VSYNC frequency defining a plurality of frame periods, the server VSYNC signal corresponding to generation of a plurality of video frames at the server during the plurality of frame periods;

setting, at a client, a client VSYNC signal to a client VSYNC frequency;

sending a plurality of compressed video frames based on the plurality of video frames from the server to the client over a network using the server VSYNC signal;

decoding and displaying, at the client, the plurality of compressed video frames; and

as the client receives the plurality of compressed video frames, analyzing the timing of one or more client operations to set an amount of frame buffering used by the client.

18. The computer system of claim 17 , wherein in the method the amount of frame buffering is dynamically set by the client over time.

19. The computer system of claim 17 , wherein in the method the amount of frame buffering defines a number of frames to buffer at the client.

20. The computer system of claim 17 , the method further comprising:

sending timestamp information associated with the plurality of video frames;

building a histogram giving timing for each video frame that is generated and delivered to the client of a corresponding decode time at the client relative to corresponding timestamp information;

measuring a width of the histogram at a moment in time; and

dynamically setting a number of display buffers at the client based on the width of the histogram and a frame period of the plurality of frame periods.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2019
From: CERNY, MARK E.; YONG, KELVIN M.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 051122/0174 →
Continuity (5)
Provisional Application 62909118 · Oct 1, 2019
Provisional Application 62909132 · Oct 1, 2019
Provisional Application 62909142 · Oct 1, 2019
Provisional Application 62909152 · Oct 1, 2019
Related Publication 20210093966A1 · Apr 1, 2021