IP Library Granted Patent US 11,190,826
Granted Patent B1
US 11,190,826 · App. 16/911,641 · Granted Nov 30, 2021

Segment quality-guided adaptive stream creation

Inventors: Scott C. Labrozzi (Cary, NC); Chetan K. Mathur (Apex, NC); Yuanyi Xue (Kensington, CA); Michael J. Bracco (Raleigh, NC)
Assignee: Disney Enterprises, Inc.
H04N21/2662H04L65/601H04L65/607H04L65/80
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,190,826
App. No.
16/911,641
Granted
Nov 30, 2021
Kind
B1
Abstract

Embodiments provide for improved stream generation are provided. A video comprising a plurality of segments and an encoding ladder specifying a plurality of maximum average bitrates (MABs) are received. A plurality of intermediate bitrates interspersed among the plurality of MABs are selected. A target average bitrate (TAB) segment is generated by encoding a first segment using a first MAB, and a first intermediate average bitrate (IAB) segment is generated by encoding the first segment using a first intermediate bitrate. Quality scores are generated for the first TAB segment and the first IAB segment. A first output segment is selected for the first segment at the first MAB based on the quality scores, where the first output segment is either the first TAB segment or the first IAB segment. Upon receiving a request for the first segment at the first MAB, the first output segment is outputted.

Claims (79)

1. A method, comprising:

receiving a video comprising a plurality of segments;

receiving an encoding ladder specifying a plurality of maximum average bitrates (MABs);

selecting a plurality of intermediate bitrates interspersed among the plurality of MABs;

generating a first target average bitrate (TAB) segment by encoding a first segment of the plurality of segments using a first MAB of the plurality of MABs;

generating a first intermediate average bitrate (IAB) segment by encoding the first segment using a first intermediate bitrate of the plurality of intermediate bitrates, wherein the first intermediate bitrate is lower than the first MAB;

generating a first quality score for the first TAB segment and a second quality score for the first IAB segment;

selecting the first IAB segment as a first output segment for the first segment at the first MAB, based at least in part on determining that the second quality score is within a predefined tolerance of the first quality score; and

upon receiving a request for the first segment at the first MAB, outputting the first output segment.

2. The method of claim 1 , the method further comprising:

selecting, for the first segment at a second MAB of the plurality of MABs, the first output segment; and

upon determining that the first output segment is used for both the first segment at the first MAB and the first segment at the second MAB:

storing a shared copy of the first output segment; and

associating the first segment at the first MAB and the first segment at the second MAB with the shared copy of the first output segment.

3. The method of claim 1 , the method further comprising:

selecting, for the first MAB, a first sequence of output segments corresponding to the plurality of segments;

selecting, for a second MAB of the plurality of MABs, a second sequence of output segments corresponding to the plurality of segments; and

upon determining that the first sequence of output segments is within a predefined threshold difference from the second sequence of output segments, eliminating either the first MAB or the second MAB.

4. The method of claim 1 , wherein the generating the respective quality score for the first TAB segment comprises evaluating the first TAB segment using one or more objective quality algorithms configured to evaluate visual quality of the first TAB segment.

5. The method of claim 1 , the method further comprising:

determining, for the first segment at the first MAB, a pool of potential segments comprising the first TAB segment, one or more additional TAB segments encoded at bitrates below the first MAB, and one or more IAB segments encoded at bitrates below the first MAB, wherein selecting the first output segment for the first segment at the first MAB comprises selecting a segment from the pool of potential segments.

6. The method of claim 5 , wherein selecting the first output segment for the first segment at the first MAB comprises:

identifying a lowest bitrate segment in the pool of potential segments, wherein the lowest bitrate segment is associated with a quality score within the predefined tolerance of the first quality score.

7. The method of claim 1 , the method further comprising:

selecting, for the first MAB, a sequence of output segments corresponding to the plurality of segments, wherein each output segment in the sequence of output segments is encoded at a bitrate that is equal to or lower than the first MAB; and

upon receiving a request for the video at the first MAB, outputting the sequence of output segments.

8. The method of claim 1 , wherein the encoding ladder is a content-specific encoding ladder selected based on a type of the video.

9. A system, comprising:

one or more computer processors; and

a memory containing a program which when executed by the one or more computer processors performs an operation, the operation comprising:

receiving a video comprising a plurality of segments;

receiving an encoding ladder specifying a plurality of maximum average bitrates (MABs);

selecting a plurality of intermediate bitrates interspersed among the plurality of MABs;

generating a first target average bitrate (TAB) segment by encoding a first segment of the plurality of segments using a first MAB of the plurality of MABs;

generating a first intermediate average bitrate (IAB) segment by encoding the first segment using a first intermediate bitrate of the plurality of intermediate bitrates, wherein the first intermediate bitrate is lower than the first MAB;

generating a first quality score for the first TAB segment and a second quality score for the first IAB segment;

selecting the first IAB segment as a first output segment for the first segment at the first MAB, based at least in part on determining that the second quality score is within a predefined tolerance of the first quality score; and

upon receiving a request for the first segment at the first MAB, outputting the first output segment.

10. The system of claim 9 , the operation further comprising:

selecting, for the first segment at a second MAB of the plurality of MABs, the first output segment; and

upon determining that the first output segment is used for both the first segment at the first MAB and the first segment at the second MAB:

storing a shared copy of the first output segment; and

associating the first segment at the first MAB and the first segment at the second MAB with the shared copy of the first output segment.

11. The system of claim 9 , the operation further comprising:

selecting, for the first MAB, a first sequence of output segments corresponding to the plurality of segments;

selecting, for a second MAB of the plurality of MABs, a second sequence of output segments corresponding to the plurality of segments; and

upon determining that the first sequence of output segments is within a predefined threshold difference from the second sequence of output segments, eliminating either the first MAB or the second MAB.

12. The system of claim 9 , the operation further comprising:

determining, for the first segment at the first MAB, a pool of potential segments comprising the first TAB segment, one or more additional TAB segments encoded at bitrates below the first MAB, and one or more IAB segments encoded at bitrates below the first MAB, wherein selecting the first output segment for the first segment at the first MAB comprises selecting a segment from the pool of potential segments.

13. The system of claim 12 , wherein selecting the first output segment for the first segment at the first MAB comprises:

identifying a lowest bitrate segment in the pool of potential segments, wherein the lowest bitrate segment is associated with a quality score within the predefined tolerance of the first quality score.

14. The system of claim 9 , the operation further comprising:

selecting, for the first MAB, a sequence of output segments corresponding to the plurality of segments, wherein each output segment in the sequence of output segments is encoded at a bitrate that is equal to or lower than the first MAB; and

upon receiving a request for the video at the first MAB, outputting the sequence of output segments.

15. A method comprising:

receiving a video comprising a plurality of segments;

receiving an encoding ladder specifying a plurality of maximum average bitrates (MABs);

selecting a plurality of intermediate bitrates interspersed among the plurality of MABs;

generating a first target average bitrate (TAB) segment by encoding a first segment of the plurality of segments using a first MAB of the plurality of MABs;

generating a first intermediate average bitrate (IAB) segment by encoding the first segment using a first intermediate bitrate of the plurality of intermediate bitrates;

generating respective quality scores for the first TAB segment and the first IAB segment;

selecting a first output segment for the first segment at the first MAB, based on the respective quality scores, wherein the first output segment is either (i) the first TAB segment or (ii) the first IAB segment;

selecting, for the first segment at a second MAB of the plurality of MABs, the first output segment;

upon determining that the first output segment is used for both the first segment at the first MAB and the first segment at the second MAB:

storing a shared copy of the first output segment; and

associating the first segment at the first MAB and the first segment at the second MAB with the shared copy of the first output segment; and

upon receiving a request for the first segment at the first MAB, outputting the first output segment.

16. The method of claim 15 , further comprising:

selecting, for the first MAB, a first sequence of output segments corresponding to the plurality of segments;

selecting, for the second MAB of the plurality of MABs, a second sequence of output segments corresponding to the plurality of segments; and

upon determining that the first sequence of output segments is within a predefined threshold difference from the second sequence of output segments, eliminating either the first MAB or the second MAB.

17. The method of claim 15 , wherein the generating the respective quality score for the first TAB segment comprises evaluating the first TAB segment using one or more objective quality algorithms configured to evaluate visual quality of the first TAB segment.

18. The method of claim 15 , further comprising:

determining, for the first segment at the first MAB, a pool of potential segments comprising the first TAB segment, one or more additional TAB segments encoded at bitrates below the first MAB, and one or more IAB segments encoded at bitrates below the first MAB, wherein selecting the first output segment for the first segment at the first MAB comprises selecting a segment from the pool of potential segments.

19. The method of claim 18 , wherein selecting the first output segment for the first segment at the first MAB comprises:

identifying a lowest bitrate segment in the pool of potential segments, wherein the lowest bitrate segment is associated with a quality score within a predefined tolerance of a quality score associated with the first TAB segment.

20. The method of claim 15 , further comprising:

selecting, for the first MAB, a sequence of output segments corresponding to the plurality of segments, wherein each output segment in the sequence of output segments is encoded at a bitrate that is equal to or lower than the first MAB; and

upon receiving a request for the video at the first MAB, outputting the sequence of output segments.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: LABROZZI, SCOTT C.; MATHUR, CHETAN K.; XUE, YUANYI; BRACCO, MICHAEL J.
To: DISNEY ENTERPRISES, INC.
Reel/Frame 053037/0197 →
Cited By (4)
US 12,212,798 US 12,225,069 US 12,225,252 US 12,531,997