Patent US6160846A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6160846A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for optimizing the rate control in a coding system

Assignee: Sharp Corp
•
Filing: 1996-10-23
•
Granted: 2000-12-12
•
Expires: 2016-10-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Tihao Chiang
  • 👤 Huifang Sun
  • 👤 Wilson Kwok
  • 👤 Max Chien
  • 👤 Ya-Qin Zhang

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-10 01:12
CPC Classifications
H; H04; H04N; H04N19/00; H04N19/50; H04N19/503; H04N19/51; H04N19/513; H04N19/517; H04N19/52; H04N19/10; H04N19/102; H04N19/124; H04N19/126; H04N19/134; H04N19/136; H04N19/137; H04N19/139; H04N19/14; H04N19/146; H04N19/147; H04N19/157; H04N19/159; H04N19/169; H04N19/17; H04N19/172; H04N19/176; H04N19/186; H04N19/189; H04N19/192; H04N19/60; H04N19/61; H04N19/63; H04N19/64; H04N19/647; H04N19/115; H04N19/152

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 226 words
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 T P (AVG), a projected average number of bits needed to code a remaining frame, where said T P (AVG) is expressed as: 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.
Claim 2
Dependent Claim 226 words
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 T P (AVG), a projected average number of bits needed to code a remaining frame, where said T P (AVG) is expressed as: 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.
Claim 3
Dependent Claim 62 words
The apparatus of claim 1, wherein said T P (AVG) is used to determine a projected number of bits T P (n) for a frame "n" in the image sequence, where said T P (n) is expressed as: T.sub.P (n)=T.sub.P(AVG) *(1-w)+B(n-1)*w where B(n-1) is a number of bits used to code said immediate previous encoded frame and w is a weighing factor.
Claim 4
Dependent Claim 154 words
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.
Claim 5
Dependent Claim 154 words
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.
Claim 6
Dependent Claim 110 words
The apparatus of claim 3, 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 T i , a target bit rate for a I-frame, where said T i is expressed as: ##EQU19## where, N p is a number of P frames in the image sequence, R is a number of remaining bits available for assignment, X p is a complexity measure for a given P-frame, X i is a complexity measure for a given I-frame, K i is a weighting coefficient for an I-frame, and K p is a weighting coefficient for a P-frame.
Claim 7
Dependent Claim 48 words
The apparatus of claim 4, wherein said R and N p are used to determine T p n , a target bit rate for an n-th P-frame, where said T p n is expressed as: T.sub.p.sup.n =R/N.sub.p, where said R is modified in accordance with R=R-T i .
Claim 8
Dependent Claim 108 words
The apparatus of claim 3, wherein said coding information from said immediate previous encoded frame is used to determine R j n , a buffer fullness measure before encoding a j-th tree, where said R j n is expressed as: ##EQU20## where R 0 n is an initial buffer fullness measure, B j n is a number of bits generated by encoding all of said wavelet trees in a n-th frame up to and including said j-th tree, T n is a target bit budget in a previous I or P frame and NT is a total number of said plurality of wavelet trees in a current frame.
Claim 9
Dependent Claim 17 words
The apparatus of claim 6, wherein said R j n is used to determine said quantizer scale.
Claim 10
Dependent Claim 167 words
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.
Claim 11
Dependent Claim 167 words
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.
Claim 12
Dependent Claim 13 words
The apparatus of claim 8, wherein said complexity model has a polynomial form.
Claim 13
Dependent Claim 47 words
The apparatus of claim 9, where said polynomial form is expressed as: ##EQU21## where R i is a number of bits allocated to a macroblock i, Q i is a quantizer scale of said macroblock i and X 0 , X 1 and X 2 are constants.
Claim 14
Dependent Claim 59 words
The apparatus of claim 8, wherein said coding information from said immediate previous encoded portion is further used to determine a quantizer scale modifier, γ, where said quantizer scale modifier is expressed as: ##EQU22## where T p is a projected number of bits and T is a target number of bits for a current frame of the image sequence.
Claim 15
Dependent Claim 190 words
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 T P (AVG), a projected average number of bits needed to code a remaining frame, where said T P (AVG) is expressed as: 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.
Claim 16
Dependent Claim 190 words
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 T P (AVG), a projected average number of bits needed to code a remaining frame, where said T P (AVG) is expressed as: 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.
Claim 17
Dependent Claim 119 words
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.
Claim 18
Dependent Claim 119 words
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.
Claim 19
Dependent Claim 28 words
The method of claim 13, wherein said coding information from said immediate previous encoded frame is used to determine a buffer fullness measure before encoding a j-th tree.
Claim 20
Dependent Claim 17 words
The method of claim 14, wherein said buffer fullness measure is used to determine said quantizer scale.
Claim 21
Dependent Claim 131 words
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.
Claim 22
Dependent Claim 131 words
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.
Claim 23
Dependent Claim 135 words
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.
Claim 24
Dependent Claim 135 words
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.
Claim 25
Dependent Claim 192 words
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 T P (AVG), a projected average number of bits needed to code a remaining frame, where said T P (AVG) is expressed as: 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.
Claim 26
Dependent Claim 192 words
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 T P (AVG), a projected average number of bits needed to code a remaining frame, where said T P (AVG) is expressed as: 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.
Claim 27
Dependent Claim 121 words
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.
Claim 28
Dependent Claim 121 words
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.
Claim 29
Dependent Claim 29 words
The computer-readable medium of claim 19, wherein said coding information from said immediate previous encoded frame is used to determine a buffer fullness measure before encoding a j-th tree.
Claim 30
Dependent Claim 18 words
The computer-readable medium of claim 20, wherein said buffer fullness measure is used to determine said quantizer scale.
Claim 31
Dependent Claim 133 words
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.
Claim 32
Dependent Claim 133 words
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.
Claim 33
Dependent Claim 137 words
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.
Claim 34
Dependent Claim 137 words
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.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-12-12 2004-06-12 2004-12-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-12-12 2008-06-12 2008-12-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-12-12 2012-06-12 2012-12-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag