IP Library Granted Patent US 9,900,608
Granted Patent B2
US 9,900,608 · App. 15/083,078 · Granted Feb 20, 2018

Keyframe alignment for encoding video at multiple bitrates

Inventor: Baptiste Coudurier (Los Angeles, CA)
Assignee: HULU, LLC
H04N19/46H04N19/107H04N19/142H04N19/146H04N19/172H04N19/179H04N19/192H04N21/23418H04N21/23439
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 9,900,608
App. No.
15/083,078
Granted
Feb 20, 2018
Kind
B2
Abstract

In one embodiment, a method includes: retrieving information for frame type decisions made by a first encoding process when encoding a video at a first bitrate to generate a first encoded video; while performing a second encoding process to encode the video at a second bitrate to generate a second encoded video, performing: determining a frame type decision from the information for frame type decisions, wherein the frame type decision comprises a frame type of a frame for the video that was encoded at the first bitrate; inserting a keyframe in the second encoded video based on the frame type decision, wherein the inserted keyframe in the second encoded video is aligned with a corresponding keyframe in the first encoded video; and continuing to retrieve frame type decisions and inserting keyframes in the second encoded video until the video is encoded at the second bitrate.

Claims (56)

1. A method for using frame type decisions made by a first encoding process when encoding a video at a first bitrate to generate a first encoded video, the method comprising:

while performing a second encoding process to encode the video at a second bitrate to generate a second encoded video, performing:

determining, by a computing device, a frame type decision previously made by the first encoding process, wherein the frame type decision comprises a frame type of a frame for the video that was previously encoded at the first bitrate by the first encoding process when encoding the video at the first bitrate to generate the first encoded video;

inserting, by the computing device, a keyframe in the second encoded video based on the frame type decision, wherein the inserted keyframe in the second encoded video is aligned with a corresponding keyframe in the first encoded video; and

continuing, by the computing device, to retrieve frame type decisions made by the first encoding process and inserting keyframes in the second encoded video until the video is encoded at the second bitrate,

wherein keyframes in the first encoded video at the first bitrate are aligned with keyframes in the second encoded video at the second bitrate.

2. The method of claim 1 , further comprising:

performing the first encoding process of the video at the first bitrate; and

storing the frame type decisions in a frame type storage medium based on performing the first encoding process of the video at the first bitrate.

3. The method of claim 2 , wherein every frame type decision for every frame made in the first encoding process is stored in the frame type storage medium.

4. The method of claim 3 , wherein the second encoding process makes a same frame type decision as stored in the frame type storage medium for every frame encoded in the second encoding process.

5. The method of claim 1 , wherein retrieving the frame type decisions comprises retrieving information for keyframe type decisions for every keyframe in the first encoding process.

6. The method of claim 1 , further comprising:

retrieving position information for keyframe type decisions for keyframes in the first encoding process, wherein the second encoding process inserts keyframes at a same position as the keyframes in the first encoded video based on the position information.

7. The method of claim 1 , further comprising while performing a third encoding process to encode the video at a third bitrate to generate a third encoded video at the third bitrate, performing:

determining the frame type decision from the frame type decisions, wherein the frame type decision comprises the frame type of a frame for the video that was encoded at the first bitrate;

inserting a keyframe in the third encoded video based on the frame type decision, wherein the inserted keyframe in the third encoded video is aligned with a corresponding keyframe in the first encoded video; and

continuing to retrieve frame type decisions and inserting keyframes in the third encoded video until the video is encoded at the third bitrate,

wherein keyframes in the first encoded video at the first bitrate are aligned with keyframes in the third encoded video at the third bitrate.

8. A non-transitory computer-readable storage medium containing instructions for using frame type decisions made by a first encoding process when encoding a video at a first bitrate to generate a first encoded video, the instructions, when executed, control a computer system to be configured for:

while performing a second encoding process to encode the video at a second bitrate to generate a second encoded video, performing:

determining a frame type decision previously made by the first encoding process, wherein the frame type decision comprises a frame type of a frame for the video that was previously encoded at the first bitrate by the first encoding process when encoding the video at the first bitrate to generate the first encoded video;

inserting a keyframe in the second encoded video based on the frame type decision, wherein the inserted keyframe in the second encoded video is aligned with a corresponding keyframe in the first encoded video; and

continuing to retrieve frame type decisions made by the first encoding process and inserting keyframes in the second encoded video until the video is encoded at the second bitrate,

wherein keyframes in the first encoded video at the first bitrate are aligned with keyframes in the second encoded video at the second bitrate.

9. The non-transitory computer-readable storage medium of claim 8 , further configured for:

performing the first encoding process of the video at the first bitrate; and

storing the frame type decisions in a frame type storage medium based on performing the first encoding process of the video at the first bitrate.

10. The non-transitory computer-readable storage medium of claim 9 , wherein every frame type decision for every frame made in the first encoding process is stored in the frame type storage medium.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the second encoding process makes a same frame type decision as stored in the frame type storage medium for every frame encoded in the second encoding process.

12. The non-transitory computer-readable storage medium of claim 8 , wherein retrieving the frame type decisions comprises retrieving information for keyframe type decisions for every keyframe in the first encoding process.

13. The non-transitory computer-readable storage medium of claim 12 , further configured for:

retrieving position information for keyframe type decisions for keyframes in the first encoding process, wherein the second encoding process inserts keyframes at a same position as keyframes in the first encoded video based on the position information.

14. The non-transitory computer-readable storage medium of claim 8 , further configured for while performing a third encoding process to encode the video at a third bitrate to generate a third encoded video at the third bitrate, performing:

determining the frame type decision from the frame type decisions, wherein the frame type decision comprises the frame type of a frame for the video that was encoded at the first bitrate;

inserting a keyframe in the third encoded video based on the frame type decision, wherein the inserted keyframe in the third encoded video is aligned with a corresponding keyframe in the first encoded video; and

continuing to retrieve frame type decisions and inserting keyframes in the third encoded video until the video is encoded at the third bitrate,

wherein keyframes in the first encoded video at the first bitrate are aligned with keyframes in the third encoded video at the third bitrate.

15. A method for using frame type decisions made by a first encoding process when encoding a video based on a first bitrate, the method comprising:

determining, by a computing device, a frame number for a frame being processed while encoding a video based on a second bitrate using a second encoding process;

retrieving, by the computing device, information for a frame type decision previously made for a corresponding frame number for a corresponding frame in the video when encoding the video based on the first bitrate;

encoding, by the computing device, the frame based on the second bitrate using the information for the frame type decision, wherein the frame in the video being encoded based on the second bitrate is aligned with the corresponding frame in the video that was encoded based on the first bitrate; and

continuing, by the computing device, to encode frames for the video based on the second bitrate until the video is encoded based on the second bitrate,

wherein keyframes in the video encoded based on the first bitrate are aligned with keyframes in the video encoded based on the second bitrate.

16. The method of claim 15 , further comprising:

encoding the video based on the first bitrate; and

storing information for the frame type decisions in a frame type storage medium from encoding the video based on the first bitrate.

17. The method of claim 15 , wherein the information for the frame type decision comprises position information for a keyframe in the video encoded based on the first bitrate.

18. The method of claim 15 , wherein the information for the frame type decision comprises frame type information indicating a frame type for a keyframe in the video encoded based on the first bitrate.

19. The method of claim 15 , wherein:

the information for the frame type decision comprises position information for a keyframe in the video encoded based on the first bitrate and frame type information indicating a frame type for a keyframe in the video encoded based on the first bitrate, and

the position information and the frame type information is used to encode the frame based on the second bitrate.

20. The method of claim 15 , further comprising:

encoding a frame based on a third bitrate using the information for the frame type decision, wherein the frame in the video encoded based on the third bitrate is aligned with the corresponding frame in the video encoded based on the first bitrate; and

continuing to encode frames for the video based on the third bitrate until the video is encoded based on the third bitrate,

wherein keyframes in the video encoded based on the first bitrate are aligned with keyframes in the video encoded based on the third bitrate.

Continuity (3)
Continuation 13901353 · May 23, 2013
Provisional Application 61740253 · Dec 20, 2012
Related Publication 20160212440A1 · Jul 21, 2016