Producing an Output Need Parameter for an Encoder
A target bit rate determination model is provided that allows information from a look ahead encoder or a decoder to be used to produce a need parameter for an encoder. Two ways to control an encoder system are provided. In the first control method, statistics from a look ahead encoder and knowledge of bitrate requirements for different codecs are used to create a need parameter control input for the primary encoder. In the second method, statistics from a decoder and knowledge of decoder and encoder behavior are used to create a need parameter control input for the primary encoder.
1 . A dual pass encoding system comprising:
a primary encoder receiving raw video frames from the system input and providing a compressed video output;
a lookahead encoder receiving the raw video frames provided to the input to the primary encoder;
a need parameter model module that receives a complexity value output from the lookahead encoder, maps the complexity to a need parameter value, and provides the need parameter value to the primary encoder.
2 . The dual pass encoding system of claim 1 , wherein the complexity value output from the lookahead encoder is a complexity estimation based on at least one of: spatial detail measurements, correlation of motion vectors, quantization parameters, number of coded bits, color detail and buffer fullness.
3 . The dual pass encoding system of claim 1 , wherein the need parameter is a target bitrate that is mapped using the need parameter module from the complexity value.
4 . The dual pass encoding system of claim 1 , further comprising:
a complexity calculation module provided in the lookahead buffer that provides a complexity calculation to determine the complexity value provided from the output of the lookahead buffer;
a delay buffer providing the raw video frames to the primary encoder input;
a complexity queue buffer provided in the need parameter model module that receives the complexity value from the complexity calculation module; and
a bit rate module that calculates the bit rate from the complexity values from the complexity queue and provides the need parameter as a target bitrate to the primary encoder.
5 . A dual pass encoding system comprising:
a decoder receiving a compressed video input;
a primary encoder receiving raw video frames from the output of the decoder, the primary encoder providing a compressed video output;
a lookahead encoder receiving the raw video frames provided from the output of the decoder; and
a need parameter model module that receives a complexity value output from the lookahead encoder, maps the complexity to a need parameter value, and provides the need parameter value to the primary encoder.
6 . The dual pass encoding system of claim 5 , wherein the need parameter module comprises:
a complexity queue buffer having an input connected to receive the complexity value output from the look ahead encoder and having an output;
a function module receiving the output of the complexity queue buffer and calculating the target bit rate as a need parameter; and
a bitrate queue buffer having an input connected to receive the function module output and having an output providing the need parameter value to the primary encoder.
7 . The dual pass encoder of claim 6 , wherein the function module calculates the target bit rate by:
selecting numerous videos of different contents that cover different levels of complexities;
first encoding the numerous videos using a pre-determined bitrate;
determining the complexities of the numerous first encoded videos;
second encoding the videos at various bitrates ranging from low to high;
providing the second encoded videos to a group of viewers for a determination from the viewers of video quality;
selecting the lowest bitrate that delivers quality over a predetermined quality threshold as determined from the viewer determinations for each different video so that each complexity has an assigned bitrate mapped; and
determining a curve from points of the mapping of complexity to bitrate to establish the target bitrates for the function module.
8 . A transcoding system comprising:
a decoder receiving a compressed video input;
a encoder receiving raw video frames from the output of the decoder, the encoder providing a compressed video output;
a complexity normalization module receiving a complexity value output from an output of the decoder;
a need parameter model module that a normalized complexity value output from the complexity normalization module, maps the complexity to a need parameter value, and provides the need parameter value as a first bitrate output value; and
a bitrate conversion module receiving the first bitrate from the need parameter module and converting to a second bitrate to provide to the encoder.
9 . The transcoding system of claim 8 , wherein the complexity normalization module determines an output by:
selecting numerous videos of different contents that cover different levels of complexities;
first encoding the numerous videos using a pre-determined bitrate;
determining the complexities of the numerous first encoded videos;
second encoding the videos at various bitrates;
plotting for each different video a complexity to bitrate used in the second encoding to form a mapping of complexity to bitrate; and
determining from a curve of the plotting the normalized complexity output from the video received.
10 . The transcoding system of claim 8 , further comprising:
a complexity queue buffer having an input connected to receive the complexity value output from the look ahead encoder and having an output;
a function module receiving the output of the complexity queue buffer and calculating the target bit rate as a need parameter; and
a bitrate queue buffer having an input connected to receive the target bit rates from the function module and having an output providing the need parameter value to the encoder.
11 . The transcoding system of claim 10 , wherein the function module calculates the target bit rate by:
selecting numerous videos of different contents that cover different levels of complexities;
first encoding the numerous videos using a pre-determined bitrate;
determining the complexities of the numerous first encoded videos;
second encoding the videos at various bitrates ranging from low to high;
providing the second encoded videos to a group of viewers for a determination from the viewers of video quality;
selecting the lowest bitrate that delivers quality over a predetermined quality threshold as determined from the viewer determinations for each different video so that each complexity has an assigned bitrate mapped; and
determining a curve from points of the mapping of complexity to bitrate to establish the target bitrates for the function module.
12 . A transcoding system comprising:
a decoder receiving a compressed video input;
a complexity queue buffer having an input connected to receive the output from the primary encoder and having an output;
a function module receiving the output of the complexity queue buffer and calculating the target bit rate as a need parameter; and
a bitrate queue buffer having an input connected to receive the target bit rates from the function module and having an output; and
an encoder receiving raw video frames from the output of the decoder, the encoder providing a compressed video output, and the receiving the need parameter values from the bitrate queue buffer.
13 . The transcoding system of claim 12 , further comprising:
a complexity normalization module receiving a complexity value output from an output of the decoder and provides a normalized complexity value to the input of the complexity queue buffer, wherein the complexity normalization module determines an output by:
selecting numerous videos of different contents that cover different levels of complexities;
first encoding the numerous videos using a pre-determined bitrate;
determining the complexities of the numerous first encoded videos;
second encoding the videos at various bitrates;
plotting for each different video a complexity to bitrate used in the second encoding to form a mapping of complexity to bitrate; and
determining from a curve of the plotting the normalized complexity output from the video received.
14 . The transcoding system of claim 12 , wherein the function module calculates the target bit rate by:
selecting numerous videos of different contents that cover different levels of complexities;
first encoding the numerous videos using a pre-determined bitrate;
determining the complexities of the numerous first encoded videos;
second encoding the videos at various bitrates ranging from low to high;
providing the second encoded videos to a group of viewers for a determination from the viewers of video quality;
selecting the lowest bitrate that delivers quality over a predetermined quality threshold as determined from the viewer determinations for each different video so that each complexity has an assigned bitrate mapped; and
determining a curve from points of the mapping of complexity to bitrate to establish the target bitrates for the function module.