IP Library Granted Patent US 10,049,646
Granted Patent B2
US 10,049,646 · App. 14/137,722 · Granted Aug 14, 2018

Method and system for keyframe detection when executing an application in a cloud based system providing virtualized graphics processing to remote servers

Inventors: Franck Diard (Mountain View, CA); Matt Lavoie (Raleigh, NC)
Assignee: Nvidia Corporation
G09G5/393A63F13/355A63F13/50A63F13/60G06T1/20G06F3/14G07F17/32G09G2360/12G09G2370/022
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 10,049,646
App. No.
14/137,722
Granted
Aug 14, 2018
Kind
B2
Abstract

A method for switching, including initializing an instantiation of an application and performing graphics rendering to generate a plurality of rendered frames through execution of the application in order to generate a first video stream comprising the plurality of rendered frames. The method includes sequentially loading the plurality of rendered frames into one or more frame buffers, and determining when a first bitmap of a frame that is loaded into a corresponding frame buffer matches an application signature comprising a derivative of a master bitmap associated with a keyframe of the first video stream.

Claims (67)

1. A non-transitory computer readable medium having computer executable instructions for causing a computer system to perform a method of switching, the method comprising:

performing, in a cloud-based graphics processing system comprising one or more virtual graphics processing units (GPUs), graphics rendering through execution of an application to generate a first video stream comprising a first plurality of rendered frames and a second video stream comprising a second plurality of rendered frames;

sequentially loading said first plurality of rendered frames into one or more frame buffers corresponding to said one or more virtual GPUs;

comparing, in a shader executed by said one or more virtual GPUs, said sequentially loaded first plurality of rendered frames to an application signature specific to said application;

determining, based on said comparing, when a first bitmap of a frame that is loaded into a corresponding frame buffer matches an application signature associated with a keyframe of said first video stream; and

switching said sequentially loading from said first plurality of rendered frames to said second plurality of rendered frames when a match with said keyframe is determined.

2. The computer readable medium of claim 1 , wherein said method further comprises:

initializing an instantiation of said application on a virtual machine of said cloud-based graphics processing system prior to said performing graphics rendering.

3. The computer readable medium of claim 1 , wherein said application comprises a gaming application.

4. The computer readable medium of claim 1 , wherein said method further comprises:

sending a second video stream for receipt by a client device of an end user for display thereof;

switching to said first video stream upon detection of said keyframe; and

sending said first video stream beginning with said frame that matches said keyframe to said client device for display thereof.

5. The computer readable medium of claim 4 , wherein said second video stream comprises an advertisement.

6. The computer readable medium of claim 1 , wherein said method further comprises:

sending a second video stream to a client device of an end user for display;

switching to said first video stream upon detection of said keyframe; and

sending said first video stream beginning with a frame after a frame that is associated with said keyframe to said client device for display.

7. The computer readable medium of claim 1 , wherein said method further comprises:

selecting said keyframe that is taken from a master video stream of a master copy of said application for generating said application signature.

8. The computer readable medium of claim 7 , wherein said determining further comprises:

accessing a master bitmap from a corresponding frame associated with said keyframe from said master video stream; and

performing a hashing procedure on said master bitmap to generate a hashed keyframe bitmap comprising said application signature of said application.

9. The computer readable medium of claim 8 , wherein said method further comprises:

accessing a first bitmap of said frame that is loaded into a corresponding frame buffer;

performing said hashing procedure on said first bitmap to generate a hashed first bitmap;

comparing said hashed keyframe and said hashed first bitmap for a match; and

determining when said application as executed reaches said keyframe when said hashed keyframe and said hashed first bitmap match.

10. A computer system comprising:

a processor; and

memory coupled to said processor and having stored therein instructions that, when executed by said computer system, cause said computer system to execute a method of switching, said method comprising:

performing, in a cloud-based graphics processing system comprising one or more virtual GPUs, graphics rendering through execution of an application to generate a first video stream comprising a first plurality of rendered frames and a second video stream comprising a second plurality of rendered frames;

sequentially loading said first plurality of rendered frames into one or more frame buffers comprised in said one or more virtual GPUs;

comparing, in a shader executed by said one or more virtual GPUs, said sequentially loaded first plurality of rendered frames to an application signature specific to said application,

determining, based on said comparing, when a first bitmap of a frame that is loaded into a corresponding frame buffer matches an application signature associated with a keyframe of said first video stream; and

switching said sequentially loading from said first plurality of rendered frames to said second plurality of rendered frames when a match with said keyframe is determined.

11. The computer system of claim 10 , wherein said method further comprises:

initializing an instantiation of said application on a virtual machine of said cloud-based graphics processing system prior to said performing graphics rendering.

12. The computer system of claim 10 , wherein said application comprises a gaming application.

13. The computer system of claim 10 , wherein said method further comprises:

sending a second video stream to a client device of an end user for display;

switching to said first video stream upon detection of said keyframe; and

sending said first video stream beginning with said frame that matches said keyframe to said client device for display.

14. The computer system of claim 13 , wherein said second video stream comprises an advertisement.

15. The computer system of claim 10 , wherein said method further comprises:

sending a second video stream to a client device of an end user for display;

switching to said first video stream upon detection of said keyframe; and

sending said first video stream beginning with a frame after a frame that is associated with said keyframe to said client device for display.

16. The computer system of claim 10 , wherein said method further comprises:

selecting said keyframe that is taken from a master video stream of a master copy of said application for generating said application signature.

17. The computer system of claim 16 , wherein said determining further comprises:

accessing a master bitmap from a corresponding frame associated with said keyframe from said master video stream; and

performing a hashing algorithm on said master bitmap to generate a hashed keyframe bitmap comprising said application signature of said application.

18. The computer system of claim 17 , wherein said method further comprises:

accessing a first bitmap of said frame that is loaded into a corresponding frame buffer;

performing said hashing procedure on said first bitmap to generate a hashed first bitmap;

comparing said hashed keyframe and said hashed first bitmap for a match; and

determining when said application as executed reaches said keyframe when said hashed keyframe and said hashed first bitmap match.

19. A system for switching, the system comprising:

a graphics renderer configured for performing graphics rendering to generate a first video stream and a second video stream through execution of an application, wherein said graphics renderer comprises a virtual graphics renderer in a cloud-based graphics processing system;

a frame buffer comprised in said virtual graphics renderer and configured to receive in sequence a plurality of frames associated with said first video stream; and

a shader executed by said virtual graphics renderer and configured to compare said plurality of frames with an application signature specific to said application to determine when a first bitmap of a frame is loaded into a corresponding frame buffer matches an application signature associated with a keyframe of said first video stream,

wherein a sequential loading of said plurality of frames associated with said first video stream into said frame buffer is switched to a sequential loading said plurality of frames associated with said second video stream in response to said application signature being matched.

20. The system of claim 19 , further comprising:

a virtual machine of said cloud based graphics processing system, wherein said virtual machine is configured for executing said application.

21. The computer readable medium of claim 1 , wherein said determining when a first bitmap of a frame that is loaded into a corresponding frame buffer matches an application signature comprises determining when said first bitmap of said frame matches said application signature within a tolerance range.

22. The computer readable medium of claim 6 , wherein said sending a second video stream to a client device of an end user for display comprises sending a notification to said client device that a match between said first bitmap and said application signature has been determined.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2014
From: DIARD, FRANCK; LAVOIE, MATT
To: NVIDIA CORPORATION
Reel/Frame 033811/0031 →
Continuity (8)
Continuation 14092872 · Nov 27, 2013
Provisional Application 61730939 · Nov 28, 2012
Provisional Application 61730940 · Nov 28, 2012
Provisional Application 61749224 · Jan 4, 2013
Provisional Application 61749231 · Jan 4, 2013
Provisional Application 61874056 · Sep 5, 2013
Provisional Application 61874078 · Sep 5, 2013
Related Publication 20150194136A1 · Jul 9, 2015
Cited By (1)
US 12,432,362