Variable bit rate encoding
First Claim
Patent Images
1. A system for processing video comprising:
- a video segmentor configured to receive a source video and to split the source video into a plurality of segments;
a bit rate allocator comprising a complexity estimator and an allocation logic, the bit rate allocator being configured to (i) receive the plurality of segments, (ii) generate complexity information for each of the plurality of segments, and (iii) generate a plurality of target bit rates corresponding to the plurality of segments by using the complexity information, wherein the plurality of segments has a plurality of first quality levels based on the complexity information;
wherein the allocation logic is configured to adjust the plurality of first quality levels to a plurality of second quality levels based, at least in part, on a model of a streaming video system predicting that the streaming video system can stream a sequence of a plurality of encoded segments using the plurality of second quality levels;
wherein adjusting the plurality of first quality levels to the plurality of second quality levels includes identifying a critical point in the sequence of the plurality of encoded segments to adjust the plurality of first quality levels up to the critical point, the critical point being where the model of the stream video system predicts that a constraint is most exceeded while streaming the sequence of the plurality of encoded segments using the plurality of first quality levels;
wherein the plurality of target bit rates are based, at least in part, on the plurality of second quality levels;
a first encoder configured to (i) receive the plurality of segments and the plurality of target bit rates, and (ii) encode each of the plurality of segments using one of the plurality of target bit rates to generate the plurality of encoded segments; and
an output generator configured to receive the plurality of encoded segments and generate an encoded video.
4 Assignments
0 Petitions
Accused Products
Abstract
A system, machine-readable medium and method for processing video comprising a video segmentor configured to receive a source video and to split the source video into segments; a bit rate allocator configured to receive the segments and generate target bit rates corresponding to the segments; a first encoder coupled to receive the plurality of segments and the target bit rates and configured to encode each of the segments using one of the target bit rates to generate encoded segments; and an output generator configured to receive the encoded segments and generate an encoded video.
24 Citations
25 Claims
-
1. A system for processing video comprising:
-
a video segmentor configured to receive a source video and to split the source video into a plurality of segments; a bit rate allocator comprising a complexity estimator and an allocation logic, the bit rate allocator being configured to (i) receive the plurality of segments, (ii) generate complexity information for each of the plurality of segments, and (iii) generate a plurality of target bit rates corresponding to the plurality of segments by using the complexity information, wherein the plurality of segments has a plurality of first quality levels based on the complexity information; wherein the allocation logic is configured to adjust the plurality of first quality levels to a plurality of second quality levels based, at least in part, on a model of a streaming video system predicting that the streaming video system can stream a sequence of a plurality of encoded segments using the plurality of second quality levels; wherein adjusting the plurality of first quality levels to the plurality of second quality levels includes identifying a critical point in the sequence of the plurality of encoded segments to adjust the plurality of first quality levels up to the critical point, the critical point being where the model of the stream video system predicts that a constraint is most exceeded while streaming the sequence of the plurality of encoded segments using the plurality of first quality levels; wherein the plurality of target bit rates are based, at least in part, on the plurality of second quality levels; a first encoder configured to (i) receive the plurality of segments and the plurality of target bit rates, and (ii) encode each of the plurality of segments using one of the plurality of target bit rates to generate the plurality of encoded segments; and an output generator configured to receive the plurality of encoded segments and generate an encoded video. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for processing video, the method being performed by a processor and comprising:
-
receiving a source video; splitting the source video into a plurality of segments; generating complexity information for each of the plurality of segments, and generating a plurality of target bit rates corresponding to the plurality of segments by using the complexity information, wherein the plurality of segments has a plurality of first quality levels based on the complexity information; adjusting the plurality of first quality levels to a plurality of second quality levels based, at least in part, on a model of a streaming video system predicting that the streaming video system can stream a sequence of the plurality of encoded segments using the plurality of second quality levels; wherein adjusting the plurality of first quality levels to the plurality of second quality levels includes identifying a critical point in the sequence of the plurality of encoded segments to adjust the plurality of first quality levels up to the critical point, the critical point being where the model of the stream video system predicts that a constraint is most exceeded while streaming the sequence of the plurality of encoded segments using the plurality of first quality levels; wherein the plurality of target bit rates are based, at least in part, on the plurality of second quality levels; performing a first encoding process on each of the plurality of segments of the source video using one of the plurality of target bit rates to generate the plurality of encoded segments; and generating an encoded video comprising the plurality of encoded segments. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A non-transitory computer readable storage medium that provides instructions for a processor, the instructions when executed by the processor cause the processor to perform a method for processing video comprising:
-
receiving a source video; splitting the source video into a plurality of segments; generating complexity information for each of the plurality of segments, and generating a plurality of target bit rates corresponding to the plurality of segments by using the complexity information, wherein the plurality of segments has a plurality of first quality levels based on the complexity information; adjusting the plurality of first quality levels to a plurality of second quality levels based, at least in part, on a model of a streaming video system predicting that the streaming video system can stream a sequence of the plurality of encoded segments using the plurality of second quality levels; wherein adjusting the plurality of first quality levels to the plurality of second quality levels includes identifying a critical point in the sequence of the plurality of encoded segments to adjust the plurality of first quality levels up to the critical point, the critical point being where the model of the stream video system predicts that a constraint is most exceeded while streaming the sequence of the plurality of encoded segments using the plurality of first quality levels; wherein the plurality of target bit rates are based, at least in part, on the plurality of second quality levels; performing a first encoding process on each of the plurality of segments of the source video using one of the plurality of target bit rates to generate the plurality of encoded segments; and generating an encoded video comprising the plurality of encoded segments. - View Dependent Claims (22, 23, 24, 25)
-
Specification