IP Library Granted Patent US 12695927
Granted Patent B2
US 12695927 · App. 18/610,144 · Granted Jul 28, 2026

Content adaptive video ladder optimization

Inventors: Zhuqi Li (Culver City, CA); He Liu (Culver City, CA); Shenglan Huang (Culver City, CA); Himanshu Shrivastav (Culver City, CA); Yiting Liao (Culver City, CA); Qian Chen (Culver City, CA); Mingkui Liu (Culver City, CA)
H04N21/234309H04N21/231
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 12695927
App. No.
18/610,144
Granted
Jul 28, 2026
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for video streaming. One of the methods includes obtaining a collection of one or more video files at a content delivery system; for each video file: determining a set of video ladders for the video file, each video ladder corresponding to a transcoding version of the video file having particular parameters, the set of video ladders determined based on a set of individual ladder values that substantially maximize a measure of utility for one or more users viewing a content the video, wherein the utility of the video is based at least in part on a complexity of the video content and historical network characteristics; for each ladder in the set of video ladders, transcoding the video file into a corresponding version; and storing each transcoded version of the video for delivery to user devices.

Claims (44)

1 . A method comprising:

obtaining a collection of one or more video files at a content delivery system; and

for each video file in the collection of video files:

determining a set of video ladders for the video file, each video ladder corresponding to a transcoding version of the video file having particular parameters, the set of video ladders determined based on a set of individual ladder values that substantially maximize a measure of utility for one or more users viewing video content of the video file, wherein the utility of the video content is based at least in part on a complexity of the video content and historical network characteristics, and comprising:

applying dynamic programming configured to determine which video ladders maximize a measure of utility of the video content, wherein the dynamic programming transforms an overall utility function for the video content using one or more variable substitution formulas, the transformation including transforming video ladder parameters to a function of an inverse network speed distribution;

for each ladder in the set of video ladders, transcoding the video file into a corresponding version; and

storing each transcoded version of the video file for delivery to user devices.

2 . The method of claim 1 , wherein the dynamic programming breaks the transformed function into a plurality of overlapping subproblems to solve in a recursive manner until a solution is obtained, wherein the transformed function is solved to determine a set of bitrate values that maximize an aspect of the transformed function, the set of bitrate values can then be transformed to corresponding ladder values based on the one or more variable substitution formulas.

3 . The method of claim 1 , wherein each video file in the collection is a short-form video and wherein each short-form video has a content length of between 15 and 90 seconds.

4 . The method of claim 1 , wherein the utility of the video content at a given bitrate is a function of i) video quality metrics, ii) rebuffering, and iii) first frame delay, wherein the video quality metrics is a predicted measure of perceived quality of the video content obtained through application of a machine learning model, and wherein the rebuffering and first frame delay are generated from historical playback data for a group of users.

5 . The method of claim 1 , wherein each video file is transcoded into one or more sets of video ladders, each set of video ladders corresponding to a different user group, and wherein the utility of the video content for each user group is determined for a given bitrate based at least in part on characteristics of the user group.

6 . The method of claim 1 , further comprising:

determining to provide first video content from the collection of video files to a particular user device;

obtaining the set of video ladders for a first video file;

selecting a particular video ladder from the set of video ladders based at least on current network conditions between the particular user device and the content delivery system; and

providing the transcoded version of the first video file corresponding to the particular video ladder to the particular user device.

7 . A system comprising:

one or more computers and one or more storage devices on which are stored instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

obtaining a collection of one or more video files at a content delivery system; and

for each video file in the collection of video files:

determining a set of video ladders for the video file, each video ladder corresponding to a transcoding version of the video file having particular parameters, the set of video ladders determined based on a set of individual ladder values that substantially maximize a measure of utility for one or more users viewing video content of the video file, wherein the utility of the video content is based at least in part on a complexity of the video content and historical network characteristics, and comprising:

applying dynamic programming configured to determine which video ladders maximize a measure of utility of the video content, wherein the dynamic programming transforms an overall utility function for the video content using one or more variable substitution formulas, the transformation including transforming video ladder parameters to a function of an inverse network speed distribution;

for each ladder in the set of video ladders, transcoding the video file into a corresponding version; and

storing each transcoded version of the video file for delivery to user devices.

8 . The system of claim 7 , wherein the dynamic programming breaks the transformed function into a plurality of overlapping subproblems to solve in a recursive manner until a solution is obtained, wherein the transformed function is solved to determine a set of bitrate values that maximize an aspect of the transformed function, the set of bitrate values can then be transformed to corresponding ladder values based on the one or more variable substitution formulas.

9 . The system of claim 7 , wherein each video file in the collection is a short-form video and wherein each short-form video has a content length of between 15 and 90 seconds.

10 . The system of claim 7 , wherein the utility of the video content at a given bitrate is a function of i) video quality metrics, ii) rebuffering, and iii) first frame delay, wherein the video quality metrics is a predicted measure of perceived quality of the video content obtained through application of a machine learning model, and wherein the rebuffering and first frame delay are generated from historical playback data for a group of users.

11 . The system of claim 7 , wherein each video file is transcoded into one or more sets of video ladders, each set of video ladders corresponding to a different user group, and wherein the utility of the video content for each user group is determined for a given bitrate based at least in part on characteristics of the user group.

12 . The system of claim 7 , wherein the instructions are further operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

determining to provide first video content from the collection of video files to a particular user device;

obtaining the set of video ladders for a first video file;

selecting a particular video ladder from the set of video ladders based at least on current network conditions between the particular user device and the content delivery system; and

providing the transcoded version of the first video file corresponding to the particular video ladder to the particular user device.

13 . One or more non-transitory, computer-readable storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

obtaining a collection of one or more video files at a content delivery system; and

for each video file in the collection of video files:

determining a set of video ladders for the video file, each video ladder corresponding to a transcoding version of the video file having particular parameters, the set of video ladders determined based on a set of individual ladder values that substantially maximize a measure of utility for one or more users viewing video content of the video file, wherein the utility of the video content is based at least in part on a complexity of the video content and historical network characteristics, and comprising:

applying dynamic programming configured to determine which video ladders maximize a measure of utility of the video content, wherein the dynamic programming transforms an overall utility function for the video content using one or more variable substitution formulas, the transformation including transforming video ladder parameters to a function of an inverse network speed distribution;

for each ladder in the set of video ladders, transcoding the video file into a corresponding version; and

storing each transcoded version of the video file for delivery to user devices.

14 . The computer-readable storage media of claim 13 , wherein the dynamic programming breaks the transformed function into a plurality of overlapping subproblems to solve in a recursive manner until a solution is obtained, wherein the transformed function is solved to determine a set of bitrate values that maximize an aspect of the transformed function, the set of bitrate values can then be transformed to corresponding ladder values based on the one or more variable substitution formulas.

15 . The computer-readable storage media of claim 13 , wherein each video file in the collection is a short-form video and wherein each short-form video has a content length of between 15 and 90 seconds.

16 . The computer-readable storage media of claim 13 , wherein the utility of the video content at a given bitrate is a function of i) video quality metrics, ii) rebuffering, and iii) first frame delay, wherein the video quality metrics is a predicted measure of perceived quality of the video content obtained through application of a machine learning model, and wherein the rebuffering and first frame delay are generated from historical playback data for a group of users.

17 . The computer-readable storage media of claim 13 , wherein each video file is transcoded into one or more sets of video ladders, each set of video ladders corresponding to a different user group, and wherein the utility of the video content for each user group is determined for a given bitrate based at least in part on characteristics of the user group.