Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
First Claim
1. A computer system comprising a processing unit, memory and storage containing instructions which, when executed by the processing unit, cause the system to perform a method of encoding a sequence of frames organized as plural segments, each of the plural segments comprising a plurality of the frames, the method comprising:
- selecting a low bit rate at which to encode a given segment of the plural segments for a low bit rate layer, wherein the low bit rate is identical for each of the plural segments;
selecting a high bit rate at which to encode the given segment for a high bit rate layer, wherein the high bit rate is set for the plural segments on a segment-by-segment basis depending on complexity of the given segment and a quality threshold for encoding;
selecting one or more intermediate bit rates between the low bit rate and the high bit rate at which to encode the given segment for one or more intermediate bit rate layers, respectively, wherein a number of intermediate bit rate layers is variable depending on the high bit rate for the given segment;
encoding the given segment at the high bit rate to produce a high bit rate chunk for the given segment;
encoding the given segment at the low bit rate to produce a low bit rate chunk for the given segment;
encoding the given segment at each of the one or more intermediate bit rates to produce one or more intermediate bit rate chunks for the given segment; and
outputting the high bit rate chunk, the low bit rate chunk, and the one or more intermediate bit rate chunks for the given segment.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of encoding an input video stream comprising a video component and an audio component is disclosed. The input video stream is split into a plurality of segments, each comprising a plurality of frames. Each of the segments is encoded as a low bit rate layer, a high bit rate layer, and one or more intermediate bit rate layers. The bit rate of the low bit rate layer is selected such that a network streaming the segment will always be able to stream the segment encoded as the low bit rate layer. The bit rate of the high bit rate layer is selected such that the segment is able to be decoded and played back at or above a quality threshold. The bit rates of the intermediate bit rate layers are produced by applying a bit rate factor to another bit rate.
402 Citations
24 Claims
-
1. A computer system comprising a processing unit, memory and storage containing instructions which, when executed by the processing unit, cause the system to perform a method of encoding a sequence of frames organized as plural segments, each of the plural segments comprising a plurality of the frames, the method comprising:
-
selecting a low bit rate at which to encode a given segment of the plural segments for a low bit rate layer, wherein the low bit rate is identical for each of the plural segments; selecting a high bit rate at which to encode the given segment for a high bit rate layer, wherein the high bit rate is set for the plural segments on a segment-by-segment basis depending on complexity of the given segment and a quality threshold for encoding; selecting one or more intermediate bit rates between the low bit rate and the high bit rate at which to encode the given segment for one or more intermediate bit rate layers, respectively, wherein a number of intermediate bit rate layers is variable depending on the high bit rate for the given segment; encoding the given segment at the high bit rate to produce a high bit rate chunk for the given segment; encoding the given segment at the low bit rate to produce a low bit rate chunk for the given segment; encoding the given segment at each of the one or more intermediate bit rates to produce one or more intermediate bit rate chunks for the given segment; and outputting the high bit rate chunk, the low bit rate chunk, and the one or more intermediate bit rate chunks for the given segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of encoding a plurality of frames comprising:
-
selecting plural segments each comprising a portion of the plurality of frames; selecting a lowest bit rate at which to encode each of the plural segments for a lowest bit rate layer, wherein the lowest bit rate is identical for each of the plural segments; for each given segment of the plural segments; selecting a highest bit rate at which to encode the given segment for a highest bit rate layer, wherein the highest bit rate is set on a segment-by-segment basis depending on complexity of the given segment and a quality threshold for encoding, and wherein the highest bit rate is variable among the plural segments; and selecting one or more intermediate bit rates between the lowest bit rate and the highest bit rate at which to encode the given segment for one or more intermediate bit rate layers, respectively, wherein a number of intermediate bit rate layers is variable depending on the highest bit rate for the given segment; encoding each of the plural segments according to the lowest bit rate and their respective highest bit rate and one or more intermediate bit rates to produce a lowest bit rate chunk, a highest bit rate chunk and one or more intermediate bit rate chunks for the segment; and for each of the plural segments, outputting the lowest bit rate chunk, the highest bit rate chunk and the one or more intermediate bit rate chunks for the segment. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system for encoding a plurality of frames comprising:
-
a buffer for storing digital media data; a segmenter for splitting the plurality of frames into plural segments; and an encoder operable to; encode each of the plural segments at a low bit rate to produce a low bit rate chunk for that segment for a low bit rate layer, wherein the low bit rate is identical for each of the plural segments and set regardless of complexity of the plural segments, respectively; encode each of the plural segments at a high bit rate at which that segment has quality above a threshold for encoding to produce a high bit rate chunk for that segment for a high bit rate layer, wherein the high bit rate is set on a segment-by-segment basis depending on the threshold for encoding and the complexity of the plural segments, respectively; and encode each of the plural segments at one or more intermediate bit rates to produce one or more intermediate bit rate chunks for that segment for one or more intermediate bit rate layers, respectively, wherein a number of intermediate bit rate layers varies depending on the high bit rate for each of the plural segments. - View Dependent Claims (24)
-
Specification