Rate control
Abstract
A method for rate control includes encoding a first input frame using a first plurality of coding parameter values to generate a first plurality of encoded data streams, each of the first plurality of encoded data streams being generated using a corresponding coding parameter value of the first plurality of coding parameter values and each of the first plurality of encoded data streams having a corresponding bitrate of a first plurality of bitrate values, updating a rate control model representing a correspondence between coding parameter and bitrate based on the first plurality of coding parameter values and the first plurality of bitrate values respectively corresponding to the first plurality of encoded data streams, and encoding a second input frame based on the updated rate control model.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for rate control, comprising:
encoding a first input frame using a first plurality of coding parameter values to generate a first plurality of encoded data streams, each of the first plurality of encoded data streams being generated using a corresponding coding parameter value of the first plurality of coding parameter values and each of the first plurality of encoded data streams having a corresponding bitrate of a first plurality of bitrate values; updating a rate control model representing a correspondence between coding parameter and bitrate based on the first plurality of coding parameter values and the first plurality of bitrate values respectively corresponding to the first plurality of encoded data streams; and encoding a second input frame based on the updated rate control model.
2 . The method according to claim 1 , wherein the first plurality of coding parameter values are provided by the rate control model based at least in part on an expected bitrate for the first input frame.
3 . The method according to claim 2 , wherein one of the first plurality of coding parameter values is provided by the rate control model based on the expected bitrate for the first input frame, and others of the first plurality of coding parameter values are gradually deviated from the one of the first plurality of coding parameter values at a constant interval or a variable interval.
4 . The method according to claim 2 , wherein:
the first plurality of coding parameter values include a main coding parameter value calculated from the expected bitrate value for the first input frame according to the rate control model, and updating the rate control model comprises iteratively updating the rate control model using the first input frame until a difference between the expected bitrate value for the first input frame and an actual bitrate value obtained by encoding the first input frame using the main coding parameter value is within a preset range.
5 . The method according to claim 1 , wherein encoding the first input frame comprises implementing a plurality of separate encoding processes on the first input frame to generate the first plurality of encoded data streams, each of the plurality of separate encoding processes including encoding the first input frame using one of the first plurality of coding parameter values to generate a corresponding one of the first plurality of encoded data streams.
6 . The method according to claim 1 , wherein encoding the second input frame comprises determining a coding parameter value for the second input frame based on the updated rate control model and an expected bitrate for the second input frame.
7 . The method according to claim 1 , further comprising:
determining a second plurality of coding parameter values for encoding the second input frame based at least in part on the updated rate control model; and encoding the second input frame using the second plurality of coding parameter values.
8 . The method according to claim 7 , wherein determining the second plurality of coding parameter values for the second input frame comprises:
determining one of the second plurality of coding parameter values for the second input frame based on an expected bitrate for the second input frame according to the updated rate control model, and gradually deviating others of the second plurality of coding parameter values from the one of the second plurality of coding parameter values at a constant interval or a variable interval.
9 . The method of claim 1 , the method further comprising:
selecting an encoded data stream as an output data stream for the first input frame from the first plurality of encoded data streams based on at least one of an expected bitrate value for the first input frame, a channel bandwidth, a transmission latency, or an encoding quality.
10 . The method according to claim 9 , wherein:
the first plurality of coding parameter values include a main coding parameter value calculated from the expected bitrate value for the first input frame according to the rate control model, and selecting the encoded data stream as the output data stream comprises selecting one of the first plurality of encoded data streams obtained by encoding the first input frame using the main coding parameter value as the output data stream.
11 . The method according to claim 10 , wherein selecting the encoded data stream as the output data stream comprises selecting one of the first plurality of encoded data streams having a corresponding bitrate of the first plurality of bitrate values that is closest to the expected bitrate value for the first input frame as the output data stream.
12 . An apparatus for rate control in data coding, comprising:
one or more processors; and one or more memories coupled to the one or more processors and storing instructions that, when executed by the one or more processors, cause the one or more processors to:
encode a first input frame using a first plurality of coding parameter values to generate a first plurality of encoded data streams, each of the first plurality of encoded data streams being generated using a corresponding coding parameter value of the first plurality of coding parameter values and each of the first plurality of encoded data streams having a corresponding bitrate of a first plurality of bitrate values;
update a rate control model representing a correspondence between coding parameter and bitrate based on the first plurality of coding parameter values and the first plurality of bitrate values respectively corresponding to the first plurality of encoded data streams; and
encode a second input frame based on the updated rate control model.
13 . The apparatus according to claim 12 , wherein the instructions further cause the one or more processors to:
provide the first plurality of coding parameter values by the rate control model based at least in part on an expected bitrate for the first input frame.
14 . The apparatus according to claim 13 , wherein the instructions further cause the one or more processors to:
provide one of the first plurality of coding parameter values by the rate control model based on the expected bitrate for the first input frame, and gradually deviate others of the first plurality of coding parameter values from the one of the first plurality of coding parameter values at a constant interval or a variable interval.
15 . The apparatus according to claim 13 , wherein:
the first plurality of coding parameter values include a main coding parameter value calculated from the expected bitrate value for the first input frame according to the rate control model, and the instructions further cause the one or more processors to iteratively update the rate control model using the first input frame until a difference between the expected bitrate value for the first input frame and an actual bitrate value obtained by encoding the first input frame using a main coding parameter value is within a preset range.
16 . The apparatus according to claim 12 , wherein the instructions further cause the one or more processors to:
implement a plurality of separate encoding processes on the first input frame to generate the first plurality of encoded data streams, each of the plurality of separate encoding processes including encoding the first input frame using one of the first plurality of coding parameter values to generate a corresponding one of the first plurality of encoded data streams.
17 . The apparatus according to claim 12 , wherein the instructions further cause the one or more processors to:
determine a coding parameter value for the second input frame based on the updated rate control model and an expected bitrate for the second input frame.
18 . The apparatus according to claim 12 , wherein the instructions further cause the one or more processors to:
determine a second plurality of coding parameter values for encoding the second input frame based at least in part on the updated rate control model; and encode the second input frame using the second plurality of coding parameter values.
19 . The apparatus according to claim 18 , wherein the instructions further cause the one or more processors to:
determine one of the second plurality of coding parameter values for the second input frame based on an expected bitrate for the second input frame according to the updated rate control model, and gradually deviate others of the second plurality of coding parameter values from the one of the second plurality of coding parameter values at a constant interval or a variable interval.
20 . The apparatus according to claim 12 , wherein the instructions further cause the one or more processors to:
select an encoded data stream as an output data stream for the first input frame from the first plurality of encoded data streams based on at least one of an expected bitrate value for the first input frame, a channel bandwidth, a transmission latency, or an encoding quality.Join the waitlist — get patent alerts
Track US2019342551A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.