IP Library Granted Patent US 11,265,599
Granted Patent B2
US 11,265,599 · App. 16/690,669 · Granted Mar 1, 2022

Re-encoding predicted picture frames in live video stream applications

Inventors: Olivier Lapicque (San Jose, CA); Srinivas Anne (Freemont, CA)
Assignee: NVIDIA Corporation
H04N21/4402A63F13/86H04N19/124H04N19/184H04N19/50H04N21/2187H04N21/433H04N21/434H04N21/4781H04N21/854
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,265,599
App. No.
16/690,669
Granted
Mar 1, 2022
Kind
B2
Abstract

In various examples, a media stream may be received by a re-encode system that may leverage a recode engine to convert (e.g., at an interval, based on a request, etc.) an inter-frame associated with the media stream to an intra-frame. The intra-frame may be converted from the inter-frame using parameters or other information associated with and received with the media stream. The converted intra-frame may be merged into an updated segment of the media stream in place of the original inter-frame to enable storage of the updated segment—or a portion thereof—for later use.

Claims (55)

1. A method comprising:

transmitting, by a local computing device and to a remote computing device hosting an instance of a game, input data representative of one or more inputs to one or more input devices of the local computing device during the instance of the game;

receiving, at the local computing device and from the remotely located device, a bitstream representative of an encoded video sequence corresponding to the instance of the game, the encoded video sequence generated at the remote computing device using the input data;

determining, using a recode engine of the local computing device and at a predetermined interval, an inter-frame from a sequence of inter-frames of the bitstream;

receiving, from a decoder of the local computing device, a decoded instance of the inter-frame, the decoded instance of the inter-frame being generated based at least in part on a first instance of the bitstream decoded by the decoder to generate display data for display by the local computing device;

converting, using the recode engine and based at least in part on encoding parameters associated with the bitstream, the decoded instance of the inter-frame to generate an intra-frame;

merging the intra-frame into a second instance of the bitstream in place of the inter-frame to generate an updated instance of the bitstream;

receiving, using at least one input device of the one or more input devices, a request to generate a bitstream segment from a start point during the display of the display data, the bitstream segment corresponding to a highlight of the instance of the game;

based at least in part on the request, determining that the intra-frame is a closest intra-frame in the updated instance of the bitstream to the start point of the bitstream segment; and

generating the bitstream segment from the updated instance of the bitstream, the bitstream segment beginning with the intra-frame.

2. The method of claim 1 , wherein the encoding parameters are determined from at least one of a Sequence Parameter Set (SPS) or a Picture Parameter Set (PPS) associated with the bitstream.

3. The method of claim 1 , wherein the encoding parameters include a Quantization Parameter (QP) used to establish a first quantizer value for the intra-frame, the QP being at least one step lower than a second quantizer value associated with the initial inter-frame.

4. The method of claim 1 , further comprising updating header information of one or more of the inter-frames subsequent the intra-frame such that the one or more inter-frames reference the intra-frame.

5. The method of claim 4 , wherein the bitstream is an inter-frame only bitstream, and the updating the header information includes updating the header information for each of the inter-frames in the second instance of the bitstream subsequent the intra-frame up to a next intra-frame converted based at least in part on the predetermine interval.

6. The method of claim 1 , wherein the bitstream corresponds to a livestream and the bitstream segment corresponds to a portion of the livestream.

7. The method of claim 1 , wherein the second instance of the bitstream corresponds to a video format and the intra-frame is generated in the video format such that the bitstream segment corresponds to the video format.

8. The method of claim 1 , wherein the bitstream segment is generated in a first Motion Picture Experts Group (MPEG) format, and the method further comprises storing the updated bitstream segment in a second MPEG format different from the first MPEG format.

9. A method comprising:

transmitting, by a local computing device and to a remote computing device hosting an instance of a game, input data representative of one or more inputs to one or more input devices of the local computing device during the instance of the game;

receiving, at the local computing device and from the remotely located device, a bitstream representative of an encoded video sequence corresponding to the instance of the game, the encoded video sequence generated at the remote computing device using the input data;

determining, using the local computing device and at a predetermined interval, an inter-frame from a sequence of inter-frames of the bitstream;

receiving, from a decoder of the local computing device and based at least in part on the determining, a decoded instance of the inter-frame from a first instance of the sequence of inter-frames of the bitstream decoded by the decoder to generate display data;

converting, using the local computing device, the decoded instance of the inter-frame to an intra-frame based at least in part on encoding parameters associated with the bitstream;

merging, using the local computing device, data representative of the intra-frame into a second instance of the sequence of inter-frames of the bitstream in place of the inter-frame to generate an updated instance of the bitstream;

receiving, from at least one input device of the one or more input devices of the local computing device, data representative of a request to generate a bitstream segment from a start point during display of the display data on a display;

based at least in part on the request, determining that the intra-frame is a closest intra-frame in the updated instance of the bitstream to the start point of the bitstream segment; and

generating the bitstream segment from the updated instance of the bitstream, the bitstream segment beginning with the intra-frame and corresponding to a highlight of the instance of the game.

10. The method of claim 9 , wherein the predetermined interval corresponds to one of a number of frames or an amount of time.

11. The method of claim 9 , wherein the encoding parameters are determined from at least one of a Sequence Parameter Set (SPS) or a Picture Parameter Set (PPS) associated with the bitstream.

12. The method of claim 9 , wherein the generating the updated instance of the bitstream includes updating a header of each inter-frame after the intra-frame and prior to a next intra-frame to reference the intra-frame.

13. The method of claim 9 , wherein the bitstream is a livestream of an instance of a game received by the local computing device within a cloud gaming environment, the bitstream representing the instance of the game as rendered by the remote computing device.

14. The method of claim 9 , wherein the second instance of the bitstream corresponds to a video format and the converting the decoded instance of the inter-frame to the intra-frame is in the video format such that the bitstream segment corresponds to the video format.

15. A system comprising:

one or more input devices to generate input data corresponding to one or more inputs to an instance of a game;

a cloud computing device including processing circuitry to:

render the instance of a game based at least in part on the one or more inputs;

encode the rendered instance of the game into an encoded bitstream; and

transmit the encoded bitstream; and

a local computing device communicatively coupled to the one or more input devices and the cloud computing device, the local computing device including;

a receiver to receive the encoded bitstream from the cloud computing device;

a decoder to decode the encoded bitstream to generate the bitstream;

a frame selector to determine, at a predetermined interval, an inter-frame from a sequence of inter-frames of the bitstream;

an intra-frame encoder to:

receive, from the decoder, a decoded instance of an inter-frame generated by the decoder based at least in part on a first instance of the bitstream; and

convert, based at least in part on encoding parameters associated with the bitstream, the decoded instance of the inter-frame to an intra-frame;

a frame merger to generate an updated instance of the bitstream based at least in part on merging the intra-frame into a second instance of the bitstream in place of the inter-frame; and

a bitstream recorder to:

determine, based at least in part on the input data, a request to generate a bitstream segment corresponding to a highlight of the instance of the game from a start point;

based at least in part on the request, determine that the intra-frame is a closest intra-frame in the updated instance of the bitstream to the start point of the bitstream segment; and

generate the bitstream segment from the updated instance of the bitstream, the bitstream segment beginning with the intra-frame.

16. The system of claim 15 , wherein the encoding parameters are determined from at least one of a Sequence Parameter Set (SPS) or a Picture Parameter Set (PPS) associated with the bitstream.

17. The system of claim 15 , wherein the encoding parameters include a Quantization Parameter (QP) used to establish first quantizer value for the intra-frame, the QP being at least one step lower than a second quantizer value associated with the initial inter-frame.

18. The system of claim 15 , wherein the bitstream corresponds to an inter-frame only group of pictures (GOP) structure, and the frame merger is further to update headers of one or more of the inter-frames subsequent the intra-frame.

19. The system of claim 15 , wherein the predetermined interval corresponds to at least one of a number of frames or an amount of time.

20. The system of claim 15 , wherein the bitstream is received in a first Motion Picture Experts Group (MPEG) format, and the bitstream segment is stored in a second MPEG format different from the first MPEG format.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: LAPICQUE, OLIVIER; ANNE, SRINIVAS
To: NVIDIA CORPORATION
Reel/Frame 051260/0390 →
Continuity (2)
Provisional Application 62860212 · Jun 11, 2019
Related Publication 20200396501A1 · Dec 17, 2020
Cited By (2)
US 12,337,232 US 12,587,655