IP Library Granted Patent US 10,243,694
Granted Patent B1
US 10,243,694 · App. 15/925,361 · Granted Mar 26, 2019

Output frame correction for unstable video streams

Inventors: Ivan Marcin (Palo Alto, CA); Yueshi Shen (Cupertino, CA)
Assignee: Twitch Interactive, Inc.
H04L1/0041H04L43/0823H04L47/32H04L65/604H04L67/10H04N21/235
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,243,694
App. No.
15/925,361
Granted
Mar 26, 2019
Kind
B1
Abstract

Techniques for output frame correction for unstable video streams are described herein. A video item may be transmitted via an input video stream from a first entity to a second entity over one or more electronic communications networks. The incoming frames from the input video stream may then be used, by the second entity, to generate an output video stream for presentation to one or more viewers. The transmission of the input video stream may temporarily become unstable and may be interrupted such that one or more frames of the input video stream are delayed and/or lost. When a transmission interruption is detected, the output video stream may be adjusted by inserting one or more correction frames into the output video stream. The inserted correction frames may include one or more repetitions of one or more prior frames in the output video stream and/or one or more interpolated frames.

Claims (41)

1. A computing system for output frame correction comprising:

one or more processors; and

one or more memories having stored therein instructions that, upon execution by the one or more processors, cause the computing system to perform operations comprising:

determining a quantity of frames associated with a transmission interruption resulting in one or more lost or delayed frames in an input video stream;

determining, based at least in part on the quantity of frames associated with the transmission interruption, a quantity of correction frames to insert into a video output, wherein the quantity of correction frames inserted into the video output is equivalent to the quantity of frames associated with the transmission interruption; and

inserting the quantity of correction frames into the video output.

2. The computing system of claim 1 , wherein the correction frames allow playing of the video output without freezing or interrupting the video output.

3. The computing system of claim 1 , wherein the operations further comprise:

generating an interpolated frame based, at least in part, on a first and a second frame in the video output between which the interpolated frame is inserted, wherein the interpolated frame is one of the correction frames.

4. The computing system of claim 3 , wherein the generating the interpolated frame comprises:

determining a first state of an object in the first frame;

determining a second state of the object in the second frame;

determining, based at least in part on the first state and the second state, an interpolated state of the object in the interpolated frame; and

generating the interpolated frame including the object with the interpolated state.

5. The computing system of claim 4 , wherein the interpolated state is at least one of a location, a rotation, an orientation, a color, or a size.

6. The computing system of claim 1 , wherein the input video stream and the video output are transmitted using real time streaming techniques such that frames are displayed to one or more viewers in real time or near real time after being transmitted in the input video stream, and wherein the correction frames are inserted into the video output during transmission of the input video stream.

7. The computing system of claim 1 , wherein the inserting the quantity of correction frames into the video output allows an input frame buffer to be refilled to a designated quantity of frames.

8. The computing system of claim 1 , wherein the video output is an output video stream that is transmitted, over one or more communications networks, to one or more viewers.

9. The computing system of claim 1 , wherein the correction frames comprise frames that are at least one of a repetition of a pervious frame in the video output or an interpolated frame.

10. A computer-implemented method for output frame correction:

determining a quantity of frames associated with a transmission interruption resulting in one or more lost or delayed frames in an input video stream;

determining, based at least in part on the quantity of frames associated with the transmission interruption, a quantity of correction frames to insert into a video output, wherein the quantity of correction frames inserted into the video output is equivalent to the quantity of frames associated with the transmission interruption; and

inserting the quantity of correction frames into the video output.

11. The computer-implemented method of claim 10 , wherein the correction frames allow playing of the video output without freezing or interrupting the video output.

12. The computer-implemented method of claim 10 , further comprising:

generating an interpolated frame based, at least in part, on a first and a second frame in the video output between which the interpolated frame is inserted, wherein the interpolated frame is one of the correction frames.

13. The computer-implemented method of claim 12 , wherein the generating the interpolated frame comprises:

determining a first state of an object in the first frame;

determining a second state of the object in the second frame;

determining, based at least in part on the first state and the second state, an interpolated state of the object in the interpolated frame; and

generating the interpolated frame including the object with the interpolated state.

14. The computer-implemented method of claim 13 , wherein the interpolated state is at least one of a location, a rotation, an orientation, a color, or a size.

15. The computer-implemented method of claim 10 , wherein the input video stream and the video output are transmitted using real time streaming techniques such that frames are displayed to one or more viewers in real time or near real time after being transmitted in the input video stream, and wherein the correction frames are inserted into the video output during transmission of the input video stream.

16. The computer-implemented method of claim 10 , wherein the inserting the quantity of correction frames into the video output allows an input frame buffer to be refilled to a designated quantity of frames.

17. The computer-implemented method of claim 10 , wherein the video output is an output video stream that is transmitted, over one or more communications networks, to one or more viewers.

18. The computer-implemented method of claim 10 , wherein the correction frames comprise frames that are at least one of a repetition of a pervious frame in the video output or an interpolated frame.

19. One or more non-transitory computer-readable storage media having stored thereon instructions that, upon execution by one or more computing devices, cause the one or more computing devices to perform operations comprising:

determining a quantity of frames associated with a transmission interruption resulting in one or more lost or delayed frames in an input video stream;

determining, based at least in part on the quantity of frames associated with the transmission interruption, a quantity of correction frames to insert into a video output, wherein the quantity of correction frames inserted into the video output is equivalent to the quantity of frames associated with the transmission interruption; and

inserting the quantity of correction frames into the video output.

20. The one or more non-transitory computer-readable storage media of claim 19 , wherein the correction frames allow playing of the video output without freezing or interrupting the video output.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: MARCIN, IVAN; SHEN, YUESHI
To: TWITCH INTERACTIVE, INC.
Reel/Frame 045277/0498 →
Continuity (1)
Continuation 15197493 · Jun 29, 2016
Cited By (2)
US 12,389,080 US 12,598,241