IP Library Granted Patent US 11,503,302
Granted Patent B2
US 11,503,302 · App. 16/883,405 · Granted Nov 15, 2022

Content adaptive encoding

Inventors: Purvin Bibhas Pandit (Franklin Park, NJ); Timothy J. Obremski (Ridgewood, NY)
Assignee: HOME BOX OFFICE, INC.
H04N19/14H04N19/105H04N19/132H04N19/142H04N19/146
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,503,302
App. No.
16/883,405
Granted
Nov 15, 2022
Kind
B2
Abstract

The described technology is generally directed towards developing an adaptive bitrate stack (ladder) on a per-title basis. Variable bitrate encodings are used to obtain complexity information for a title and per-frames scores for the encodings; another encoding provides scene data. The complexity information is analyzed and processed based on the scene data to determine scene-based (e.g., objective and/or subjective quality) scores, which are used to determine scores for the encodings. The results are used to derive a candidate stack, comprising various resolutions and bitrates that provide desirable results. The candidate stack is evaluated by encoding the title using the candidate stack. These encodings are evaluated to select one resolution from any duplicate resolutions for a bitrate (e.g., based on relative quality), resulting in a pruned, final ladder that is associated with the title as the adaptive bitrate stack to be used for streaming that title's content.

Claims (67)

1. A method comprising:

generating, by a system comprising a processor, a customized adaptive bitrate ladder for a video title associated with a video, comprising:

generating, by the system, bitrate encodings of the video at different bitrates at one or more resolutions;

processing, by the system, complexity data for the video into respective final scene-based quality scores for the bitrate encodings, comprising:

determining scenes in the video, and for each bitrate encoding of the bitrate encodings, for each scene of the scenes, determining respective frame quality scores for frames of the scene, and determining a scene quality score for the scene based on a first function of the respective frame quality scores of the frames of the scene, and

determining a final scene-based quality score for the bitrate encoding based on a second function of the scene quality scores of the scenes of the bitrate encoding, wherein the second function is based on a defined percentage of lowest scene quality scores of the scene quality scores of the scenes of the bitrate encoding;

deriving, by the system, a candidate adaptive bitrate ladder based on the respective final scene-based quality scores for the bitrate encodings; and

processing, by the system, the candidate adaptive bitrate ladder into the customized adaptive bitrate ladder.

2. The method of claim 1 , wherein the deriving the candidate adaptive bitrate ladder based on the respective final scene-based quality scores comprises:

determining, by the system, a target bitrate based on the respective final scene-based quality scores, and

determining, by the system, candidate bitrates for the candidate adaptive bitrate ladder based on the target bitrate.

3. The method of claim 2 , wherein the determining the target bitrate comprises:

using, by the system, the respective final scene-based quality scores and respective bitrates of the bitrate encodings as bitrate, final scene-based quality score pairs of data points, and

determining, by the system, the target bitrate based on a target final scene-based quality score and a function associated with the data points.

4. The method of claim 2 , wherein the determining the candidate bitrates for the candidate adaptive bitrate ladder based on the target bitrate comprises:

starting with the target bitrate as a highest candidate bitrate, successively determining, by the system, lower target candidate bitrates by multiplying each directly higher candidate bitrate by a fixed ratio until a lower bitrate stopping point is reached.

5. The method of claim 2 , wherein the deriving the candidate adaptive bitrate ladder further comprises:

accessing, by the system, a resolution range data structure to determine one or more candidate resolutions corresponding to each candidate bitrate in the candidate adaptive bitrate ladder.

6. The method of claim 1 , wherein the processing the candidate adaptive bitrate ladder into the customized adaptive bitrate ladder comprises:

for any bitrate encoding having a corresponding candidate bitrate and multiple candidate resolutions, including, by the system, only the corresponding candidate bitrate and one of the multiple candidate resolutions in the customized adaptive bitrate ladder based on a highest final scene-based quality score.

7. The method of claim 1 , further comprising:

associating, by the system, the customized adaptive bitrate ladder with the video title;

streaming, by the system, first content of the video title to a device based on a first resolution and bitrate pairing included in the customized adaptive bitrate ladder;

receiving, by the system, a request from the device corresponding to a different resolution and bitrate pairing included in the customized adaptive bitrate ladder; and

in response to the request, streaming, by the system, second content of the video title to the device based on the different resolution and bitrate pairing.

8. A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor of a device, facilitate performance of operations, the operations comprising:

generating a customized adaptive bitrate ladder for a video title associated with a video, comprising:

generating bitrate encodings of the video at different bitrates at one or more resolutions;

processing complexity data for the video into respective final scene-based quality scores for the bitrate encodings, comprising:

determining scenes in the video, and for each bitrate encoding of the bitrate encodings, for each scene of the scenes, determining respective frame quality scores for frames of the scene, and determining a scene quality score for the scene based on a first function of the respective frame quality scores of the frames of the scene, and

determining a final scene-based quality score for the bitrate encoding based on a second function of the scene quality scores of the scenes of the bitrate encoding;

deriving a candidate adaptive bitrate ladder based on the respective scene-based quality scores for the bitrate encodings; and

processing the candidate adaptive bitrate ladder into the customized adaptive bitrate ladder.

9. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise:

selecting a candidate resolution for a candidate bitrate having multiple candidate resolutions based on the respective final scene-based quality scores of the bitrate encodings for inclusion in the customized adaptive bitrate ladder.

10. The non-transitory machine-readable medium of claim 8 , wherein the second function is based a defined percentage of lowest scene quality scores of the scene quality scores of the scenes of the bitrate encoding.

11. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise:

determining a target bitrate based on the respective final scene-based quality scores, and

determining candidate bitrates for the candidate adaptive bitrate ladder based on the target bitrate.

12. The non-transitory machine-readable medium of claim 11 , wherein the determining the target bitrate comprises:

using the respective final scene-based quality scores and respective bitrates of the bitrate encodings as bitrate, final scene-based quality score pairs of data points, and

determining the target bitrate based on a target final scene-based quality score and a function associated with the data points.

13. The non-transitory machine-readable medium of claim 11 , wherein the determining the candidate bitrates for the candidate adaptive bitrate ladder based on the target bitrate comprises starting with the target bitrate as a highest candidate bitrate, successively determining lower target candidate bitrates by multiplying each directly higher candidate bitrate by a fixed ratio until a lower bitrate stopping point is reached.

14. The non-transitory machine-readable medium of claim 8 , wherein the deriving the candidate adaptive bitrate ladder further comprises accessing a resolution range data structure to determine one or more candidate resolutions corresponding to each candidate bitrate in the candidate adaptive bitrate ladder.

15. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise:

associating the customized adaptive bitrate ladder with the video title,

streaming first content of the video title to a streaming device based on a first resolution and bitrate pairing included in the customized adaptive bitrate ladder, receiving a request from the streaming device corresponding to a different resolution and bitrate pairing included in the customized adaptive bitrate ladder, and

in response to the request, streaming second content of the video title to the streaming device based on the different resolution and bitrate pairing.

16. A system, comprising:

a processor; and

a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising:

generating a customized adaptive bitrate ladder for a video title associated with a video, comprising:

generating bitrate encodings of the video at different bitrates at one or more resolutions;

processing complexity data for the video into respective final scene-based quality scores for the bitrate encodings, comprising:

determining scenes in the video, and for each bitrate encoding of the bitrate encodings, for each scene of the scenes, determining respective frame quality scores for frames of the scene, and determining a scene quality score for the scene based on a first function of the respective frame quality scores of the frames of the scene, and

determining a final scene-based quality score for the bitrate encoding based on a second function of the scene quality scores of the scenes of the bitrate encoding;

deriving a candidate adaptive bitrate ladder based on the respective final scene-based quality scores for the bitrate encodings;

processing the candidate adaptive bitrate ladder into the customized adaptive bitrate ladder; and

consolidating a first scene of the scenes with a second scene of the scenes, where the second scene directly precedes or follows the first scene in a scene order of the video.

17. The system of claim 16 , wherein the deriving the candidate adaptive bitrate ladder based on the respective final scene-based quality scores comprises:

determining a target bitrate based on the respective final scene-based quality scores, and

determining candidate bitrates for the candidate adaptive bitrate ladder based on the target bitrate.

18. The system of claim 17 , wherein the determining the target bitrate comprises using the respective final scene-based quality scores and respective bitrates of the bitrate encodings as bitrate, final scene-based quality score pairs of data points, and determining the target bitrate based on a target final scene-based quality score and a function associated with the data points.

19. The system of claim 16 , wherein the executable instructions, when executed by the processor, facilitate performance of operations further comprising:

pruning a resolution of the one or more resolutions, where a value of the resolution is present more than a defined number of times consecutively at the customized adaptive bitrate ladder.

20. The system of claim 16 , wherein the executable instructions, when executed by the processor, facilitate performance of operations further comprising:

generating a constant rate factor encoding of the video configured to capture only changes between scenes of the scene.

Assignments (2)
SECURITY INTEREST Recorded Oct 1, 2025
From: WARNER BROS. DISCOVERY, INC.; WARNER MEDIA, LLC; TURNER BROADCASTING SYSTEM, INC.; HOME BOX OFFICE, INC.; DISCOVERY COMMUNICATIONS, LLC; WARNERMEDIA DIRECT LLC; DISCOVERY.COM LLC; WARNER BROS. ENTERTAINMENT INC.; CNN INTERACTIVE GROUP, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 072995/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2020
From: PANDIT, PURVIN BIBHAS; OBREMSKI, TIMOTHY J.
To: HOME BOX OFFICE, INC.
Reel/Frame 052751/0810 →
Continuity (2)
Provisional Application 63027310 · May 19, 2020
Related Publication 20210368182A1 · Nov 25, 2021