Apparatus and method for object based rate control in a coding system
First Claim
Patent Images
1. A method for allocating bits to encode each frame of an image sequence, each of said frame having at least one object, said method comprising the steps of:
- (a) determining a target frame bit rate for the frame; and
(b) allocating said target frame bit rate among the at least one object, wherein said allocating step comprises the step of allocating said target frame bit rate in accordance with a target object bit rate for the at least one object, wherein said target object bit rate for the at least one object is selected in accordance with a mean absolute differences (Mad) of said object in accordance with;
##EQU6## where Madi is the mean absolute difference (Mad) of an object i, n is a number of said objects in the frame, Tframe is said target frame bit rate and Vi is said target object bit rate for object i.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for selecting a quantizer scale for each object within a frame to optimize the coding rate is disclosed. A quantizer scale is selected for each region or "object" within each frame such that the target bit rate for the frame is achieved while maintaining a uniform visual quality over the entire frame.
-
Citations
13 Claims
-
1. A method for allocating bits to encode each frame of an image sequence, each of said frame having at least one object, said method comprising the steps of:
-
(a) determining a target frame bit rate for the frame; and (b) allocating said target frame bit rate among the at least one object, wherein said allocating step comprises the step of allocating said target frame bit rate in accordance with a target object bit rate for the at least one object, wherein said target object bit rate for the at least one object is selected in accordance with a mean absolute differences (Mad) of said object in accordance with;
##EQU6## where Madi is the mean absolute difference (Mad) of an object i, n is a number of said objects in the frame, Tframe is said target frame bit rate and Vi is said target object bit rate for object i.
-
-
2. A method for allocating bits to encode each frame of an image sequence, each of said frame having at least one object, said method comprising the steps of:
-
(a) determining a target frame bit rate for the frame; and (b) allocating said target frame bit rate among the at least one object, wherein said allocating step comprises the step of allocating said target frame bit rate in accordance with a target object bit rate for the at least one object, wherein said target object bit rate is adjusted in accordance with a measure of a buffer fullness in accordance with;
space="preserve" listing-type="equation">if (buffer.sub.-- fullness+V.sub.i >
margin) then
space="preserve" listing-type="equation">V.sub.i =Max(R.sub.s /30/number.sub.-- of.sub.-- objects, margin-buffer.sub.-- fullness)where "margin" is defined as;
space="preserve" listing-type="equation">margin=ceil((1.0-SAFETY.sub.-- MARGIN)×
buffer.sub.-- fullness)where buffer-- fullness is a current buffer fullness of a buffer, where SAFTETY-- MARGIN is a constant, where Rs is a bit rate, where Vi is said target object bit rate for object i and where number-- of-- objects is a number of objects in the input image.
-
-
3. A method for allocating bits to encode each frame of an image sequence, each of said frame having at least one object, said method comprising the steps of:
-
(a) determining a target frame bit rate for the frame; and (b) allocating said target frame bit rate among the at least one object, wherein said allocating step comprises the step of allocating said target frame bit rate in accordance with a target object bit rate for the at least one object, wherein said target object bit rate is adjusted in accordance with a measure of a buffer fullness in accordance with;
space="preserve" listing-type="equation">if (buffer.sub.-- fullness-B.sub.pp +V.sub.i ≦
SAFETY.sub.-- MARGIN×
buffer.sub.-- size) then
space="preserve" listing-type="equation">V.sub.i =B.sub.pp -V.sub.i -buffer.sub.-- fullness+SAFETY.sub.-- MARGIN×
buffer.sub.-- size,where buffer-- fullness is a current buffer fullness of a buffer, where SAFTETY-- MARGIN is a constant, where buffer-- size is a size of said buffer, where Vi is said target object bit rate for object i and Bpp is a channel output rate.
-
-
4. A method for allocating bits to encode each frame of an image sequence, each of said frame having at least one object, said method comprising the steps of:
-
(a) determining a target frame bit rate for the frame, wherein said target frame bit rate, Tframe, is derived in accordance with;
##EQU7## where R is a remaining number of bits for the image sequence, Nf is a number of remaining frames in the image sequence, Tprevious frame is a number of bits used for encoding a previous frame, and past-- percent is a constant; and(b) allocating said target frame bit rate among the at least one object.
-
-
5. Apparatus for encoding each frame of an image sequence, said frame having at least one object, said apparatus comprising:
-
a motion compensator for generating a predicted image of a current frame; a transform module for applying a transformation to a difference signal between the current frame and said predicted image, where said transformation produces a plurality of coefficients; a quantizer for quantizing said plurality of coefficients with at least one quantizer scale; and a controller for selectively adjusting said at least one quantizer scale for a current frame in response to a target object bit rate for the at least one object, wherein said target object bit rate for the at least one object is selected in accordance with a mean absolute differences (Mad) of said object in accordance with;
##EQU8## where Madi is a mean absolute difference (Mad) of an object i, n is a number of said objects in the frame, Tframe is said target frame bit rate and Vi is said target object bit rate for object i. - View Dependent Claims (6, 7, 8)
-
-
9. Apparatus for encoding each frame of an image sequence, said frame having at least one object, said apparatus comprising:
-
a motion compensator for generating a predicted image of a current frame; a transform module for applying a transformation to a difference signal between the current frame and said predicted image, where said transformation produces a plurality of coefficients; a quantizer for quantizing said plurality of coefficients with at least one quantizer scale; and a controller for selectively adjusting said at least one quantizer scale for a current frame in response to a target object bit rate for the at least one object, wherein said target object bit rate is derived from a target frame bit rate, wherein said target frame bit rate, Tframe, is derived in accordance with;
##EQU9## where R is a remaining number of bits for a sequence of frames, Nf is a number of remaining frames in the sequence, Tprevious frame is a number of bits used for encoding a previous frame, and past-- percent is a constant.
-
-
10. 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:
-
(a) determining a target frame bit rate for the frame; and (b) allocating said target frame bit rate among the at least one object, wherein said allocating step comprises the step of allocating said target frame bit rate in accordance with a target object bit rate for the at least one object, wherein said target object bit rate for the at least one object is selected in accordance with a mean absolute differences (Mad) of said object in accordance with;
##EQU10## where Madi is the mean absolute difference (Mad) of an object i, n is a number of said objects in the frame, Tframe is said target frame bit rate and Vi is said target object bit rate for object i.
-
-
11. 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:
-
(a) determining a target frame bit rate for the frame; and (b) allocating said target frame bit rate among the at least one object, wherein said allocating step comprises the step of allocating said target frame bit rate in accordance with a target object bit rate for the at least one object, wherein said target object bit rate is adjusted in accordance with a measure of a buffer fullness in accordance with;
space="preserve" listing-type="equation">if (buffer.sub.-- fullness+V.sub.i >
margin) then
space="preserve" listing-type="equation">V.sub.i =Max(R.sub.s /30/number.sub.-- of.sub.-- objects, margin-buffer.sub.-- fullness)where "margin" is defined as;
space="preserve" listing-type="equation">margin=ceil((1.0-SAFETY.sub.-- MARGIN)×
buffer.sub.-- fullness)where buffer fullness is a current buffer fullness of a buffer, where SAFTETY-- MARGIN is a constant, where Rs is a bit rate, where Vi is said target object bit rate for object i and where number of objects is a number of objects in the input image.
-
-
12. 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:
-
(a) determining a target frame bit rate for the frame; and (b) allocating said target frame bit rate among the at least one object, wherein said allocating step comprises the step of allocating said target frame bit rate in accordance with a target object bit rate for the at least one object, wherein said target object bit rate is adjusted in accordance with a measure of a buffer fullness in accordance with;
space="preserve" listing-type="equation">if (buffer.sub.-- fullness-B.sub.pp +V.sub.i ≦
SAFETY.sub.-- MARGIN×
buffer.sub.-- size) then
space="preserve" listing-type="equation">V.sub.i =B.sub.pp -V.sub.i -buffer.sub.-- fullness+SAFETY.sub.-- MARGIN×
buffer.sub.-- size,where buffer fullness is a current buffer fullness of a buffer, where SAFTETY-- MARGIN is a constant, where buffer size is a size of said buffer, where Vi is said target object bit rate for object i and Bpp is a channel output rate.
-
-
13. 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:
-
(a) determining a target frame bit rate for the frame, wherein said target frame bit rate Tframe, is derived in accordance with;
##EQU11## where R is a remaining number of bits for the image sequence, Nf is a number of remaining frames in the image sequence, Tprevious frame is a number of bits used for encoding a previous frame, and past percent is a constant; and(b) allocating said target frame bit rate among the at least one object.
-
Specification