Optimal multi-codec ABR ladder design
AssigneeBrightcove Inc.
InventorsYuriy Reznik, Xiangbo Li, Justin Greer, Abhijith Jagannath, Karl O. Lillevold
Life of this patent
Estimating the term…
Abstract
Techniques are disclosed for the creation of multi-codec encoding profiles (or encoding ladders), which define quality and bitrate for each of the streams made available to clients for streaming a video. In particular, optimization techniques may take into account a quality rate function of each of the codecs when determining the encoding ladder. Additional considerations may include a network bandwidth distribution and/or a distribution of client types.
Claims20
A method for creating a multi-codec encoding ladder, the method comprising:
- obtaining, by a computer system, source content comprising a video;
- determining a total number of streams of the video for an encoding ladder;
- and
- generating the encoding ladder for the source content, wherein:
- each video stream of a plurality of video streams defined by the encoding ladder includes a respective bitrate and a respective codec of a plurality of codecs for encoding the source content, wherein a video stream is a description of parameters;
- and the encoding ladder includes:
- a first video stream and a second video stream of a first codec, wherein the first video stream and the second video stream have respective bitrates of R11 and R12 and respective quality values of Q11 and Q12;
- and
- a third video stream of a second codec having a bitrate of R21 and a quality value of Q21 such that:
- R11<R21<R12 and
- Q11<Q21<Q12,
- the encoding ladder is generated by outputting descriptions of parameters of all video streams produced for each codec from the plurality of codecs to be used to encode the source content, and
- the encoding ladder defines quality values and bitrates to alternate between the first codec and the second codec for streaming the video.
A computer system for creating a multi-codec encoding ladder, the computer system comprising:
- a memory;
- and
- one or more processing units communicatively coupled with the memory and configured to:
- obtain source content comprising a video;
- determine a total number of streams of the video for an encoding ladder;
- and
- generate the encoding ladder for the source content, such that:
- each video stream of a plurality of video streams defined by the encoding ladder includes a respective bitrate and a respective codec of a plurality of codecs for encoding the source content, wherein a video stream is a description of parameters;
- and
- the encoding ladder includes:
- a first video stream and a second video stream of a first codec, wherein the first video stream and the second video stream have respective bitrates of R11 and R12 and respective quality values of Q11 and Q12;
- and
- a third video stream of a second codec having a bitrate of R21 and a quality value of Q21 such that:
- R11<R21<R12 and
- Q11<Q21<Q12,
- the encoding ladder is generated by outputting descriptions of parameters of all video streams produced for each codec from the plurality of codecs to be used to encode the source content, and
- the encoding ladder defines quality values and bitrates to alternate between the first codec and the second codec for streaming the video.
A non-transitory computer-readable medium having instructions stored therewith for creating a multi-codec encoding ladder, wherein the instructions, when executed by one or more processing units, cause the one or more processing units to:
- obtain source content comprising a video;
- determine a total number of streams of the video for an encoding ladder;
- and
- generate the encoding ladder for the source content, such that:
- each video stream of a plurality of video streams defined by the encoding ladder includes a respective bitrate and a respective codec of a plurality of codecs for encoding the source content, wherein a video stream is a description of parameters;
- and
- the encoding ladder includes:
- a first video stream and a second video stream of a first codec, wherein the first video stream and the second video stream have respective bitrates of R11 and R11 and respective quality values of Q11 and Q12;
- and
- a third video stream of a second codec having a bitrate of R21 and a quality value of Q21 such that:
- R11<R21<R12 and
- Q11<Q21<Q12,
- the encoding ladder is generated by outputting descriptions of parameters of all video streams produced for each codec from the plurality of codecs to be used to encode the source content, and
- the encoding ladder defines quality values and bitrates to alternate between the first codec and the second codec for streaming the video.
Dependencies are inferred from the claim text.