Apparatus and method for optimizing the rate control in a coding system
First Claim
Patent Images
1. Apparatus for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said apparatus comprising:
- a block motion compensator for computing a motion vector for the block and for generating a predicted image using said motion vector;
a transform module, coupled to said block motion compensator, for applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients;
a quantizer, coupled to said transform module, for quantizing said plurality of coefficients with a quantizer scale;
a controller, coupled to said quantizer, for selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded frame and wherein said coding information from said immediate previous encoded portion is used to determine TP(AVG), a projected average number of bits needed to code a remaining frame, where said TP(AVG) is expressed as;
space="preserve" listing-type="equation">T.sub.P(AVG) =Max(bitrate/frame rate, R/N) where R is a remaining number of bits, N is a remaining number of frames in the image sequence, bitrate is a channel bitrate and frame rate is a frame rate of the image sequences; and
a coder, coupled to said quantizer, for coding said plurality of quantized coefficients.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for selecting a quantizer scale for each macroblock to maintain the overall quality of the video image while optimizing the coding rate. A quantizer scale is selected for each macroblock such that target bit rate for the picture is achieved while an optimal quantization scale ratio is maintained for successive macroblocks to produce a uniform visual quality over the entire picture. One embodiment applies the method to the frame level while another embodiment applies the method in conjunction with a wavelet transform.
-
Citations
23 Claims
-
1. Apparatus for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said apparatus comprising:
-
a block motion compensator for computing a motion vector for the block and for generating a predicted image using said motion vector; a transform module, coupled to said block motion compensator, for applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; a quantizer, coupled to said transform module, for quantizing said plurality of coefficients with a quantizer scale; a controller, coupled to said quantizer, for selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded frame and wherein said coding information from said immediate previous encoded portion is used to determine TP(AVG), a projected average number of bits needed to code a remaining frame, where said TP(AVG) is expressed as;
space="preserve" listing-type="equation">T.sub.P(AVG) =Max(bitrate/frame rate, R/N)where R is a remaining number of bits, N is a remaining number of frames in the image sequence, bitrate is a channel bitrate and frame rate is a frame rate of the image sequences; and a coder, coupled to said quantizer, for coding said plurality of quantized coefficients. - View Dependent Claims (2)
-
-
3. Apparatus for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said apparatus comprising:
-
a block motion compensator for computing a motion vector for the block and for generating a predicted image using said motion vector; a transform module, coupled to said block motion compensator, for applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients, where said transform module applies a wavelet transform to produce a plurality of wavelet trees; a quantizer, coupled to said transform module, for quantizing said plurality of coefficients with a quantizer scale; a controller, coupled to said quantizer, for selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion; and a coder, coupled to said quantizer, for coding said plurality of quantized coefficients. - View Dependent Claims (4, 5, 6, 7)
-
-
8. apparatus for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said apparatus comprising:
-
a block motion compensator for computing a motion vector for the block and for generating a predicted image using said motion vector; a transform module, coupled to said block motion compensator, for applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; a quantizer, coupled to said transform module, for quantizing said plurality of coefficients with a quantizer scale; a controller, coupled to said quantizer, for selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded macroblock and wherein said coding information from said immediate previous encoded portion is used to adjust a complexity model; and a coder, coupled to said quantizer, for coding said plurality of quantized coefficients. - View Dependent Claims (9, 10, 11)
-
-
12. Method for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said method comprising the steps of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded frame and wherein said coding information from said immediate previous encoded portion is used to determine TP(AVG), a projected average number of bits needed to code a remaining frame, where said TP(AVG) is expressed as;
space="preserve" listing-type="equation">T.sub.P(AVG) =Max(bitrate/frame rate, R/N)where R is a remaining number of bits, N is a remaining number of frames in the image sequence, bitrate is a channel bitrate and frame rate is a frame rate of the image sequence; and coding said plurality of quantized coefficients.
-
-
13. Method for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said method comprising the steps of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients, where said transformation applying step applies a wavelet transform to produce a plurality of wavelet trees; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion; and coding said plurality of quantized coefficients. - View Dependent Claims (14, 15)
-
-
16. Method for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said method comprising the steps of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded macroblock and wherein said coding information from said immediate previous encoded portion is used to adjust a complexity model; and coding said plurality of quantized coefficients.
-
-
17. Method for encoding an input image sequence having at least one input frame, where said frame is partitioned into at least one block, said method comprising the steps of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded macroblock and wherein said coding information from said immediate previous encoded portion is used to determine a distortion measure for a current macroblock; and coding said plurality of quantized coefficients.
-
-
18. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to perform the steps comprising of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded frame and wherein said coding information from said immediate previous encoded portion is used to determine TP(AVG), a projected average number of bits needed to code a remaining frame, where said TP(AVG) is expressed as;
space="preserve" listing-type="equation">T.sub.P(AVG) =Max(bitrate/frame rate, R/N)where R is a remaining number of bits, N is a remaining number of frames in the image sequence, bitrate is a channel bitrate and frame rate is a frame rate of the image sequence; and coding said plurality of quantized coefficients.
-
-
19. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to perform the steps comprising of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients, where said transformation applying step applies a wavelet transform to produce a plurality of wavelet trees; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion; and coding said plurality of quantized coefficients. - View Dependent Claims (20, 21)
-
-
22. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to perform the steps comprising of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded macroblock and wherein said coding information from said immediate previous encoded portion is used to adjust a complexity model; and coding said plurality of quantized coefficients.
-
-
23. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to perform the steps comprising of:
-
computing a motion vector for the block; generating a predicted image using said motion vector; applying a transformation to a difference signal between the input frame and said predicted image, where said transformation produces a plurality of coefficients; quantizing said plurality of coefficients with a quantizer scale; selectively adjusting said quantizer scale for a current frame in response to coding information from an immediate previous encoded portion, wherein said immediate previous encoded portion is an encoded macroblock and wherein said coding information from said immediate previous encoded portion is used to determine a distortion measure for a current macroblock; and coding said plurality of quantized coefficients.
-
Specification