Non-linear quantizer for video coding
Abstract
A quantizer and dequantizer for use in a video coding system that applies non linear, piece-wise linear scaling functions to video information signals based on a value of a variable quantization parameter. The quantizer and dequantizer apply different non linear, piece-wise linear scaling functions to a DC luminance signal, a DC chrominance signal and an AC chrominance signal. A code for reporting updates of the value of the quantization parameter is interpreted to require larger changes when the quantization parameter initially is large and smaller changes when the quantization parameter initially is small.

Term
Term ended
Expired 23 January 2018, 8.7 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
65 claims: 15 independent, 50 dependent
- 1CLAIMS:transformation of a received quantization parameter Qp, and a divider for dividing the video information signal by the scaler.
- 12A dequantizer for scaling a signal containing a quantized video information signal comprising:a scaling factor generator that generates a scaler based on an at least three-segment piece-wise linear transformation of a received quantization parameter Qp, and a multiplier for multiplying the quantized video information signal by the scaler.
- 23A method of quantizing a video information signal, comprising the steps of:generating a scaler based on an at least threesegment piece-wise linear transformation of a quantization parameter Qp received with respect to the video information, dividing the video information signal CA 02280038 2003-05-05 by the scaler, and outputting information signal. the divided video
- 24A method of dequantizing a quantized video information signal, said video information signal characterized by a plurality of macro blocks, each macro block quantized according to a respective quantization parameter, the method comprising the steps of:receiving the quantized video information signal identifying the macro blocks, identifying a quantization parameter update from the quantized video information signal, generating a quantization parameter change based on the quantization parameter and the quantization parameter update, generating a scaler for the macro block based on an at least three-segment piece-wise linear transformation of the quantization parameter and the quantization parameter change, and multiplying quantized video information of the macro block by the scaler to obtain dequantized video information.
- 25An encoder for encoding video signals, comprising:a processing circuit that generates blocks of video data from the video information signal, a transform circuit to generate video coefficients representative of the blocks of video data, a quantizer circuit to receive a quantization parameter and quantize the video coefficients according to an at least three-segment piece-wise linear transformation of the quantization parameter, and a variable length coder to generate a variable length code based on the quantized video coefficients. CA 02280038 2003-05-05
- 26A decoder for decoding encoded video signals, comprising :a variable length decoder to generate quantized video coefficients from variable length coded data contained within the encoded video signals, a dequantizer circuit to identify a quantization parameter associated with the video information and to dequantize the video coefficients according to an at least three-segment piece-wise linear transformation of the quantization parameter, an inverse transform circuit to transform the dequantized video coefficients into blocks of video data, and a processing circuit to generate a video signal from the blocks of video data.
- 29A method of generating a dequantized DC luminance coefficient from a quantized DC luminance value, comprising :retrieving a DC luminance scaler from an at least three-segment piece-wise linear luminance quantizing function based on a quantization parameter Qp;and generating the DC luminance coefficient by multiplying the quantized DC luminance value by the DC luminance scaler.
- 33A method of generating a dequantized DC chrominance coefficient from a quantized DC chrominance value, comprising :10 retrieving a DC chrominance scaler from an at least three-segment piece-wise linear luminance quantizing function based on a quantization parameter Qp;and generating the DC chrominance coefficient by multiplying the quantized DC chrominance value by the DC 15 chrominance scaler.
- 37An encoder for encoding video signals, comprising:a processing circuit to generate blocks of video data from a video information signal;a transform circuit to generate video coefficients representative of the blocks of video data;a quantizer circuit to receive a quantization parameter Qp and to quantize the video coefficients according to an at least three-segment piece-wise linear transformation of the quantization parameter Qp;and a variable length coder to generate a variable length code based on the quantized video coefficients.
- 46The encoder of claim coefficients are generated linear AC chrominance quantization parameter Qp, table :44, wherein the chrominance according to a piece-wise scaling function of the as given by the following CA 02280038 2002-09-20
- 47A decoder for decoding encoded video signals, comprising :a variable length decoder to generate quantized video coefficients from variable length code contained within the encoded video signals, a dequantizer circuit to identify a quantization parameter Qp associated with the encoded video signals and to dequantize the video coefficients according to an at least three-segment piece-wise linear transformation of the quantization parameter Qp, an inverse transform circuit to transform the dequantized video coefficients into blocks of video data, and a processing circuit to generate a video signal from the blocks of video data.
- 51A method of encoding a video signal, comprising the steps of:organizing video data into blocks of luminance data CA 02280038 2003-05-05 chrominance coefficients;quantizing the DC luminance coefficients according to a first transformation of a quantization parameter Qp;quantizing the DC chrominance coefficients according to a second transformation of the quantization parameter Qp ;quantizing the AC chrominance coefficients according to a third transformation of the quantization parameter QP;and variable length coding on the quantized coefficients;wherein the first transformation comprises an at least three-segment piece-wise linear DC luminance scaling function of a received quantization parameter Qp as given by the following Table: the second transformation comprises an at least three-segment piece-wise linear DC chrominance scaling function of a received quantization parameter Qp as given by the following Table: CA 02280038 2003-05-05 and the third transformation comprises an at least three-segment piece-wise linear AC chrominance scaling 5 function of a received quantization parameter Qp as given by the following Table:
- 55A method of decoding an encoded video signal, comprising the steps of:5 extracting quantized DC luminance coefficients, quantized DC chrominance coefficients, and quantized AC chrominance coefficients from a variable length code;dequantizing the quantized DC luminance coefficients according to a first inverse transformation of a 10 quantization parameter Qp;deguantizing the quantized DC chrominance coefficients according to a second inverse transformation of the quantization parameter Qp;dequantizing the quantized AC chrominance 15 coefficients according to a third inverse transformation of the quantization parameter Qp;transforming the dequantized DC luminance coefficients into blocks of luminance data;transforming the dequantized DC and AC chrominance 20 coefficients into blocks of chrominance data;and combining the luminance and chrominance blocks into a video signal;wherein the first inverse transformation comprises an at least three-segment piece-wise linear DC luminance CA 02280038 2003-05-05 scaling function of a received quantization parameter Qp as given by the following Table: the second inverse transformation comprises an at least three-segment piece-wise linear DC chrominance 5 scaling function of a received quantization parameter Qp as given by the following Table: the third inverse transformation comprises an at least three-segment piece-wise linear AC chrominance 10 scaling function of a received quantization parameter Qp as given by the following Table: CA 02280038 2003-05-05
- 59A video coding system, including:a video encoder comprising: 15 means for generating blocks of video data from a received video signal, transforms the blocks of video data into representative video coefficients, means for quantizing the video coefficients according to an at least three-segment piece-wise linear 20 transformation of a received quantization parameter Qp, means for generating an encoded video signal based on the quantized video coefficients, and means for outputting the encoded video signal CA 02280038 2003-05-05 to a channel, and a video decoder comprising: parameter Qp associated with the encoded video signal, means for dequantizing the quantized video coefficients according to an at least three-segment piece-wise inverse linear transformation of the identified quantization parameter Qp, means for transforming the dequantized video coefficients into blocks of video data, and means for generating a representation of a video signal from the blocks of video data.
- 6468. In a video coding system in which encoders and 10 decoders operate upon common quantization parameters, a method of reporting an update to a quantization parameter, comprising:determining a desired change in the quantization parameter at the encoder;and 15 coding the desired change in a fixed length code, the code representing an index into an update table of permissible quantization parameter changes for a range of current quantization parameters.
Independent claims15
178 paragraphs in 39 sections, as filed
(57) Abrégé/Abstract:
A quantizer and dequantizer for use in a video coding system that applies non linear, piece-wise linear scaling functions to video information signals based on a value of a variable quantization parameter. The quantizer and dequantizer apply different non linear, piece-wise linear scaling functions to a DC luminance signal, a DC chrominance signal and an AC chrominance signal. A code for reporting updates of the value of the quantization parameter is interpreted to require larger changes when the quantization parameter initially is large and smaller changes when the quantization parameter initially is small.
Canada http://opic.gc.ca · Ottawa-Hull K1A 0C9 · http://cipo.gc.ca OPIC-CIPO 191
<img file="CA2280038C_D0001.tif" />
CA 02280038 1999-08-06
<img file="CA2280038C_D0002.tif" />
WORLD INTELLECTUAL PROPERTY ORGANIZATION
International Bureau
INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
PCT (51) International Patent Classification 6
H04N 7/30
A1 (11) International Publication Number: WO 98Z36573 (43) International Publication Date: 20 August 1998 (20.08.98) (21) International Application Number: PCT/US98/01319 (22) International Filing Date: 23 January 1998 (23.01.98) (81) Designated States: CA, JP, MX, European patent (AT, BE, CH, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE).
(30) Priority Data:
60/038,016 14 February 1997 (14.02.97) US
08/899,096 24 July 1997 (24.07.97) US
Published
With international search report.
Before the expiration of the time limit for amending the claims and to be republished in the event of the receipt of amendments.
(71) Applicant: AT & T CORPORATION [US/US] ; 32 Avenue of the Americas, New York, NY 10013-2412 (US).
(72) Inventors: HASKELL, Barin, Geoffry; 82 Glenwood Drive,
Tinton Falls, NJ 07724 (US). PURI, Atul; 3660 Waldo Avenue #1A, Riverdale, NY 10463 (US). SCHMIDT, Robert, Lewis; 333 Oak Glen Road, Howell, NJ 07731 (US).
(74) Agents: RESTA1NO, Thomas, A. et al.; AT & T Corporation, P.O. Box 4110, Middletown, NJ 07748 (US).
(54) Title: NON-LINEAR QUANTIZER FOR VIDEO CODING
Qp
300
<td colspan="8"></td>
<td></td><td colspan="2"> DC LUM SCALER</td><td colspan="2"> DC CHROM SCALER</td><td colspan="2"> AC CHROM SCALER</td><td></td>
<td colspan="2"></td><td colspan="2"></td><td colspan="2"></td><td colspan="2"></td>
I4Q
310-
<img file="CA2280038C_D0003.tif" />
(57) Abstract
A quantizer and dequantizer for use in a video coding system that applies non linear, piece-wise linear scaling functions to video information signals based on a value of a variable quantization parameter. The quantizer and dequantizer apply different non linear, piece-wise linear scaling functions to a DC luminance signal, a DC chrominance signal and an AC chrominance signal. A code for reporting updates of the value of the quantization parameter is interpreted to require larger changes when the quantization parameter initially is large and smaller changes when the quantization parameter initially is small.
CA 02280038 2002-09-20
NON-LINEAR QUANTIZER FOR VIDEO CODING
BACKGROUND OF THE INVENTION
The present invention related to a quantizer for use in image coding.
It is known to scale discrete cosine transformation coefficients in video coding applications to conserve bandwidth. Known systems either scale by a small constant, such as divide by 8, or scale by a linear scaling factor that is twice a quantization parameter (2 x Q<sub>p</sub>). Scaling by the small constant does not achieve significant bandwidth savings. Scaling by the 2*Q<sub>P</sub> linear scaling function achieves significant bit savings, but results in poor image quality at lower and mid-level Q<sub>p </sub>values particularly in the chrominance video signals.
Accordingly, there is a need in the art for a quantizer characterized by a scaling function that achieves good signal quality, and achieves bit rate savings for all values of Q<sub>p</sub> particularly for chrominance.
CA 02280038 2003-05-05
An encoder and decoder must use the same quantization parameter to encode and decode video information intelligibly. Known systems report changes to the quantization parameter with codes that cause changes in Q<sub>p</sub> with a uniform step size, regardless of the value of Q<sub>P</sub>.
Experience teaches that, at low values of Q<sub>p</sub>, changes in Q<sub>p</sub> are relatively small. However, for large values of Q<sub>p</sub> changes in Q<sub>p</sub> values are relatively large. Systems that allocate additional bits to report the larger Q<sub>p </sub>changes waste bandwidth at the lower Q<sub>p</sub> values where the large changes do not occur. However, systems that limit the number of bits available to coding Q<sub>p</sub> changes may become saturated if larger changes must be coded. Accordingly, there is a need in the art for a quantizer that reports both large and small changes in Q<sub>p</sub> with a minimum number of bits.
SUMMARY OF THE INVENTION
The disadvantages of the art are alleviated to a great extent by a quantizer that applies a non-linear scaling function based on the quantization parameter. A different scaling function applies for luminance data than for chrominance data. Both scaling functions at low Q<sub>p</sub> values approximate constant scaling functions. At large Q<sub>p</sub> values, the luminance scaling function approximates a 2*Q<sub>P</sub> scaling function and the chrominance scaling function approximates a 1*Q<sub>P</sub> scaling function. The quantizer may include a non-linear scaling function for AC coefficients.
The present invention may include a way to update values of Q<sub>p</sub>. Changes in Q<sub>p</sub> are reported in a fixed length code, but each code means different things based
CA 02280038 2003-05-05
2a on the previous values of Q<sub>p</sub>. If the previous Q<sub>p</sub> value is large, the code represents a larger change than if the previous value of Q<sub>p</sub> were small.
In accordance with one aspect of the present invention there is provided a quantizer for scaling a video information signal comprising: a scaling factor generator that generates a scaler based on an at least three-segment piece-wise linear transformation of a received quantization parameter Q<sub>p</sub>, and a divider for dividing the video information signal by the scaler.
In accordance with another aspect of the present invention there is provided a method of quantizing a video information signal, comprising the steps of: generating a scaler based on an at least three-segment piece-wise linear transformation of a quantization parameter Q<sub>p</sub> received with respect to the video information, dividing the video information signal by the scaler, and outputting the divided video information signal.
In accordance with yet another aspect of the present invention there is provided an encoder for encoding video signals, comprising: a processing circuit to generate blocks of video data from a video information signal; a transform circuit to generate video coefficients representative of the blocks of video data; a quantizer circuit to receive a quantization parameter Q<sub>p</sub> and to quantize the video coefficients according to an at least three-segment piece-wise linear transformation of the quantization parameter Q<sub>p</sub>; and a variable length coder to generate a variable length code based on the quantized video coefficients.
CA 02280038 2003-05-05
2b
In accordance with still yet another aspect of the present invention there is provided a method of encoding a video signal, comprising the steps of: organizing video data into blocks of luminance data and blocks of chrominance data; coding the luminance blocks as DC luminance coefficients; coding the chrominance blocks as DC and AC chrominance coefficients; quantizing the DC luminance coefficients according to a first transformation of a quantization parameter Q<sub>p</sub>; quantizing the DC chrominance coefficients according to a second transformation of the quantization parameter Q<sub>p</sub>; quantizing the AC chrominance coefficients according to a third transformation of the quantization parameter Q<sub>p</sub>; and variable length coding on the quantized coefficients;
wherein the first transformation comprises an at least three segment piece-wise linear DC luminance scaling function of a received quantization parameter Q<sub>p</sub> as given by the following Table:
<td rowspan="2"> Component</td><td colspan="4"> DC Scaler for Quantizer (Q<sub>p</sub>) Range</td>
<td> 1 through 4</td><td> 5 through 8</td><td> 9 through 24</td><td> 25 through 31</td>
<td> Luminance</td><td> 8</td><td> 2*Q<sub>P</sub></td><td> Qp+8</td><td> 2*Q<sub>P</sub>-16</td>
<td> Chrominance</td><td> 8</td><td> (Qp+13)/2</td><td> (Q<sub>p</sub>+13)/2</td><td> Q<sub>P</sub>-6</td>
the second transformation comprises an at least 20 three-segment piece-wise linear DC chrominance scaling function of a received quantization parameter Q<sub>p</sub> as given by the following Table:
CA 02280038 2003-05-05
2c
<td> Component</td><td colspan="4"> DC Scaler for Quantizer (Q<sub>p</sub>) Range</td>
<td></td><td> 1 through 4</td><td> 5 through 8</td><td> 9 through 24</td><td> 25 through 31</td>
<td> Luminance</td><td> 8</td><td> 2*Q<sub>P</sub></td><td> Qp+8</td><td> 2*Q<sub>P</sub>-16</td>
<td> Chrominance</td><td> 8</td><td> (Q<sub>p</sub>+13)/2</td><td> (Q<sub>p</sub>+13)/2</td><td> Qp-6</td>
and the third transformation comprises an at least three—segment piece-wise linear AC chrominance scaling function of a received quantization parameter Q<sub>p</sub> as given by the following Table:
<td></td><td colspan="4"> Quantizer for Chrominance when Q<sub>p</sub> in Range</td>
<td> Component</td><td> 1 through 4</td><td> 5 through 8</td><td> 9 through 24</td><td> 25 through 31</td>
<td> Chrominance</td><td> 4</td><td> (Q<sub>P</sub>+13)/4</td><td> (Qp+13)/4</td><td> (Qp-6)/2</td>
CA 02280038 1999-08-06
WO 98/36573 PCT/US98/01319
BRIEF DESCRIPTION OF THE FIGURES
Fig. 1 (a) is a block diagram of a first embodiment of an encoder 100 of the present invention; Fig. 1(b) is a block diagram of a first embodiment of a decoder 200 of the present invention.
Fig. 2 is a block diagram of a portion of ,the quantizer of Fig. 1.
Fig. 3 is a block diagram of a portion of the scaling circuit of Fig. 1.
DETAILED DESCRIPTION
Fig. 1 shows an encoder 100 constructed in accordance with a first embodiment of the present invention. An analog image signal is presented to the encoder 100. The image signal is sampled and converted to a digital signal by an analog to digital (A/D) converter 110 using techniques known in the art. The A/D converter 110 generates a digital image signal for a plurality of pixels of the image. Alternatively, the image signal may be presented to the encoder 100 as a digital image signal; in this case, the A/D converter 110 is omitted.
The digital image signal is input to a processing circuit 120. The processing circuit 120 may perform a host of functions. Typically, the processing circuit 120 filters the image data and breaks the image data into a luminance signal component and two chrominance signal components. Additionally, the processing circuit 120 groups image data into blocks of data. Where the digital input signal represents information for a plurality of pixels in a scanning direction, the digital output of the processing circuit 120 represents a block of pixels, for example an 8 pixel by 8 pixel array of image data. The processing circuit 120 outputs image data on a macro block basis. A macro block typically consists of up to four
CA 02280038 1999-08-06
98/36573
PCT/US98/01319 blocks of luminance data and up to two blocks of chrominance data. The processing circuit 120 may also perform additional functions, such as filtering, to suit individual design criteria.
The output of the processing circuit 120 is input to a transform circuit 130. The transform circuit 130 performs a transformation of the image data, such as discrete cosine transform (DCT) coding, from the pixel domain to a domain of coefficients. A block of 64 pixels is transformed to a block of 64 coefficients. Coefficients output by DCT coding include a single DC coefficient and 63 AC coefficients, few of which are nonzero. The transform circuit 130 outputs blocks of coefficients organized into macro blocks.
A quantizer 140 scales the DC and AC coefficients generated by the prediction circuit 150 according to a non-linear scaling function governed by a variable quantization parameter (Q<sub>p</sub>) . The quantization parameter is a value determined by the bit rate of the channel, the resolution of the image being coded, the type of image coding (intra or inter) and other factors that affect a number of bits that may be allocated to coding of the macro block. Q<sub>p</sub> is updated on a macro block by macro block basis; changes in Q<sub>p</sub> are reported in an output bitstream. In MPEG coding, Q<sub>p</sub> takes on values between 1 and 31. The quantizer 140 reduces bandwidth of the image signal by reducing a number of quantization levels available to encoding the signals. Many small coefficients input to the quantizer 140 are divided down and truncated to zero. The scaled signals are output from the quantizer 140.
The output of the quantizer 140 is input to a prediction circuit 150. The prediction circuit 150 performs gradient prediction analysis to predict the DC coefficient of the block. The prediction circuit 150 may
CA 02280038 1999-08-06
WO 98/36573
PCT/US98/01319 pass the AC coefficients generated by the transform circuit 130 or, alternatively, may predict AC coefficients of the block. In a preferred mode of operation, the prediction circuit 150 selects between modes of predicting or passing AC coefficients/ in this case, the prediction circuit 150 generates an AC prediction flag to identify a mode of operation. The prediction circuit 150 outputs DC coefficient signals and AC coefficient signals (representing either AC coefficients or AC residuals) on a macro block basis and, on a macro block basis optionally, an AC prediction flag.
A variable length coder 160 encodes the output of the quantizer 140. The variable length coder 160 typically is a Huffman encoder that performs run length coding on the scaled signals. A bitstream output from the variable length coder 160 may be transmitted, stored, or put to other uses as are known in the art.
A decoder 200 performs operations that undo the encoding operation described above. A variable length decoder 260 analyzes the bitstream using a complementary process to recover a scaled signal. If a Huffman encoder were used by the encoder 160, a Huffman decoder 2 60 is used.
A reconstruction circuit 250 performs the identical gradient analysis performed in the prediction circuit 150. The DC residual signal is identified and added to a predicted coefficient to obtain a DC coefficient. Optionally, the reconstruction circuit 250 may identify the AC prediction flag and, based on the status of that flag, interprets the AC information as either AC coefficient information or AC residual information. In the event that AC residual information is present, the reconstruction circuit 250 adds the residual signals to corresponding predicted signals to obtain AC coefficients.
CA 02280038 1999-08-06
WO 98/36573 PCT/US98/01319
The reconstruction circuit 250 outputs coefficient signals .
A dequantization circuit 240 multiplies the recovered signals by the same scaler values used at the quantizer
140. Of course, those coefficients divided down to zero are not recovered.
?
An inverse transformation circuit 230 performs the inverse transformation applied by the transform circuit 130 of encoder 100. if DOT transformation were performed, an inverse DOT transformation is applied. So, too, with sub-band coding. The inverse transformation circuit 230 transforms the coefficient information back to the pixel domain.
A processing circuit 220 combines luminance and chrominance signals and may perform such optional 'features as are desired in particular application. The processing circuit 220 outputs digital signals of pixels ready to be displayed. At this point the signals are fit for display on a digital monitor. If necessary to fit a particular application, the signals may be converted by a digital to analog converter 210 for display on an analog display.
The present invention achieves bit rate savings by applying a non-linear scaler function at the quantizer 140 to obtain bit rate savings at high Q<sub>p</sub> levels but ensure high video quality at low Q<sub>p</sub> levels. The quantizer 140 applies different scaler functions depending upon the type of data being quantized (luminance or chrominance), the type of coefficient being quantized (DC or AC) and the type of coding (inter or intra) being performed.
NON-LINEAR QUANTIZATION OF DC COEFFICIENTS FOR LUMINANCE AND CHROMINANCE
For DC coefficient information, the scaler functions vary with Q<sub>p</sub>. Different piece-wise linear scaler functions
CA 02280038 1999-08-06
98/36573 PCT/US98/01319 are applied to DC luminance and DC chrominance signals.
To minimize objectionable artifacts within the chrominance signal, the DC chrominance scaler is smaller than the DC luminance scaler for all Q<sub>p</sub> values.
The DC luminance scaler function for low Q<sub>p</sub> values is a constant. For large Q<sub>p</sub> levels, the DC luminance scaler function approximates a 2*Q<sub>p</sub> function. The inventors obtained through experimentation the DC scaler function shown in Table 1 below, used in an embodiment of the invention.
The DC chrominance scaler function is also at a constant at low values Q<sub>p</sub>. At high Q<sub>p</sub> values, the DC chrominance scaler function approximates a linear scaler function in Q<sub>p</sub>. The inventors obtained through experimentation the DC scaler function for chrominance signals shown in Table 1 below, used in a preferred embodiment.
<td rowspan="2"> Component</td><td colspan="4"> DC Scaler for Quantizer (Qj Range</td>
<td> 1 through 4</td><td> 5 through 8</td><td> 9 through 24</td><td> 25 through 31</td>
<td> Luminance</td><td> 8</td><td> 2*Q<sub>P</sub></td><td> Q<sub>p</sub>+8</td><td> 2*Qp-16</td>
<td> Chrominance</td><td> 8</td><td> (Q„<sup>+</sup>13)/2</td><td> (Qp+13)/2</td><td> Qp-6</td>
Table 1
Rather than compute the DC scaler for each value of Q<sub>p</sub>, further efficiencies may be obtained by storing the DC scaler functions for luminance and chrominance for all values of Q<sub>p</sub> in a memory table at the quantizer 140. In this event, the quantizer 140 includes a small memory of DC scales for luminance and chrominance that may be indexed by Q<sub>p</sub> as shown in Table 2 below.
CA 02280038 1999-08-06
PCT/US98/01319
<td> Qp</td><td> DC Scaler for Luminance</td><td> DC Scaler for Chrominance</td>
<td> 1</td><td> 8</td><td> 8</td>
<td> 2</td><td> 8</td><td> 8</td>
<td> 3</td><td> 8</td><td> 8</td>
<td> 4</td><td> 8</td><td> 8</td>
<td> 5</td><td> 10</td><td> 9</td>
<td> 6</td><td> 12</td><td> 9</td>
<td> 7</td><td> 14</td><td> 10</td>
<td> 8</td><td> 16</td><td> 10</td>
<td> 9</td><td> 17</td><td> 11</td>
<td> 10</td><td> 18</td><td> 11</td>
<td> 11</td><td> 19</td><td> 12</td>
<td> 12</td><td> 20</td><td> 12</td>
<td> 13</td><td> 21</td><td> 13</td>
<td> 14</td><td> 22</td><td> 13</td>
<td> 15</td><td> 23</td><td> 14</td>
<td> 16</td><td> 24</td><td> 14</td>
<td> 17</td><td> 25</td><td> 15</td>
<td> 18</td><td> 26</td><td> 15</td>
<td> 19</td><td> 27</td><td> 16</td>
<td> 20</td><td> 28</td><td> 16</td>
<td> 21</td><td> 29</td><td> 17</td>
<td> 22</td><td> 30</td><td> 17</td>
<td> 23</td><td> 31</td><td> 18</td>
<td> 24</td><td> 32</td><td> 18</td>
<td> 25</td><td> 34</td><td> 19</td>
<td> 26</td><td> 36</td><td> 20</td>
<td> 27</td><td> 38</td><td> 21</td>
<td> 28</td><td> 40</td><td> 22</td>
<td> 29</td><td> 42</td><td> 23</td>
<td> 30</td><td> 44</td><td> 24</td>
<td> 31</td><td> 46</td><td> 25</td>
Table 2
In operation, the transform circuit 130 outputs macro s of data to the quantizer 140. Each macro block
CA 02280038 1999-08-06
WO 98/36573 PCT/US98/01319 contains as many as four blocks of luminance data and two blocks of chrominance data. A single Q<sub>p</sub> value is used for the macro block. Q<sub>p</sub> is updated on a macro block by macro block basis.
Based on the value of Q<sub>p</sub>, the quantizer 140 recalls a
DC scaling factor for luminance and a DC scaling factor *
for chrominance determined by the scaling functions at the value of Q<sub>p</sub>. For each luminance block, the quantizer 140 generates a DC lum level signal according to:
DC lum level = DC lum coefficient/DC Scaler for
Luminance.
For each chrominance block, the quantizer 140 generates a DC chrom level signal according to:
Chrom DC level = Chrom DC coefficient/DC Scaler for Chrominance.
The quantizer 140 outputs each DC lum level signal and each DC chrom level signal.
The non-linear DC scaling functions of the quantizer
140 may be implemented in hardware as shown in Fig. 2. The Q<sub>p</sub> signal is input to a memory 300 that stores the scaler factors defined by the DC luminance and DC chrominance scaler functions. The scaler table 300 may be substituted by a processor (not shown) that computes the scaler factors according to the Q<sub>p</sub> value. DC luminance and DC chrominance signals from the transform circuit 130 are isolated by a demultiplexer 310 and routed to respective luminance and chrominance division circuits 320 and 330.
The DC lum level and DC chrom level signals are generated by these division circuits.
At the decoder 200, the dequantization circuit 240 performs an inverse quantization operation with the same piece-wise linear scaling functions. Based on the Q<sub>p</sub> value of the immediately preceding macro block and any Q<sub>p</sub> update reported in the incoming bitstream, the dequantization
CA 02280038 1999-08-06
WO 98/36573
PCT/US98/01319 circuit 240 recalls appropriate scaling factors for DC luminance and DC chrominance signals. For each luminance block, the dequantization circuit 240 generates a luminance DC coefficient according to:
Lum DC coefficient = DC Lum Level * DC Scaler for
Luminance.
For each chrominance block, the scaling circuit 240 generates a DC coefficient according to:
Chrom DC coefficient = Chrom DC Level * DC Scaler for Chrominance.
The dequantization circuit 240 outputs the reconstructed luminance and chrominance coefficients.
The non-linear DC scaling functions of the dequantization circuit 240 may be implemented in hardware as shown in Fig. 3. The Q<sub>p</sub> signal is input to a memory 4 00 that stores the scaler factors defined by the DC luminance and DC chrominance scaler functions. The scaler table 400 may be substituted by a processor (not shown) that computes the scaler factors according to the Q<sub>p</sub> signal. DC lum level and DC chrom level signals from the variable length encoder 260 are isolated by a demultiplexer 410 and routed to respective luminance and chrominance multiplication circuits 420 and 430. DC luminance coefficients and DC chrominance coefficients are generated by these multiplication circuits.
The non-linear DC scaling factors described above are appropriate to both intra and inter coding operations.
However, experience teaches that DC coefficients obtained from inter coding often are near zero. When quantized even by a constant scaling factor, the DC coefficients obtained from inter coding often are truncated to zero. Accordingly, to reduce complexity in a preferred embodiment, the non-linear scaling function may be disabled during inter coding operations. The DC
CA 02280038 1999-08-06
98/36573 PCT/US98/01319 coefficients obtained from inter coding may be quantized in a manner similar to the quantization of AC coefficients, discussed below.
The non-linear DC scaling functions maintain high coding quality at low Q<sub>p</sub> values and achieve significant bit rate savings at high Q<sub>p</sub> values. The quantizer 140 and dequantization circuit 240 of the present invention may find use in applications where image quality is a more significant consideration than bit rate savings. Accordingly, in a preferred embodiment, the quantizer 140 and scaler circuit 240 may have two modes of operation:
A first mode applying non-linear scaling functions based on values of Q<sub>p</sub> as described above, and a second mode applying a constant scaling factor (such as divide by 8) or even one of a plurality of constant scaling’ factors (such as divide by 8, 4, 2 or 1) . In this embodiment, the quantizer 140 generates a scaler flag signal identifying which mode of operation is being used. The dequantization circuit 240, upon receipt of the scaler flag signal, invokes an appropriate mode of operation to generate coefficients. The scaler flag signal may be a one bit signal when discriminating among the two modes, but may be larger when discriminating among the two modes and additionally identifying which of constant scaling factors is invoked.
NON-LINEAR QUANTIZATION OF CHROMINANCE COEFFICIENTS FOR INTER CODED BLOCKS
In inter coding, both DC and AC coefficients of chrominance blocks may be close to zero. Coding of such coefficients with non-linear scaling functions may improve coding quality of the chrominance signal. Additionally, the non-linear scaling functions of this section may be
CA 02280038 1999-08-06
WO 98/36573
PCT/US98/01319 applied to AC coefficients of chrominance blocks in intra coding to achieve coding efficiencies.
The non-linear scaling function for AC chrominance coefficients is piece-wise linear and based on Q<sub>p</sub> values.
At low values for Q<sub>p</sub>, the non-linear scaling function for
AC is a constant value, almost half of the level of the ?
scaling function for DC chrominance signals. At high levels for Q<sub>p</sub>, the AC scaling function approximates a Q<sub>p</sub>/2 line. At intermediate levels, the AC scaling function approximates a Q<sub>p</sub>/4 line. In one preferred embodiment, the AC scaling function for chrominance was derived experimentally as shown in Table 3 below:
<td rowspan="2"> Component</td><td colspan="4"> Quantizer for Chrominance when Q<sub>p</sub> in Range</td>
<td> 1 through 4</td><td> 5 through 8</td><td> 9 through 24</td><td> 25 through 31</td>
<td> Chrominance</td><td> 4</td><td> (Q<sub>p</sub>+13)/4</td><td> (Qp+13)/4</td><td> (Qp-6)/2</td>
Table 3
The AC scaling factors for chrominance also may be stored in the quantizer 140 in a memory table indexed by Q<sub>p</sub>.
During coding, the quantizer 140 recalls or computes 20 a scaling factor for AC coefficients based on the value of Q<sub>p</sub>. For each chrominance AC coefficient, the quantizer 140 generates a corresponding chrominance AC level signal according to:
Chrom AC level = Chrom AC coefficient / Quantizer for 25 Chrominance.
The quantizer 140 outputs the Chrom AC level signals for the AC coefficients.
The non-linear scaling functions for AC chrominance 30 coefficients may be implemented in hardware, also shown in Fig. 2. The scaler table 300 stores the AC chrominance scaler values indexed by Q<sub>p</sub>. If scaler table 300 is substituted by a processor, the processor computes the AC chrominance scaler values according to the Q<sub>p</sub> value. AC
CA 02280038 1999-08-06
WO 98/36573 PCT/US98/01319 chrominance signals from the transform circuit 140 are isolated by a demultiplexer 310 and routed to an AC division circuit 340. The AC chrom level signals are generated by the division circuit 340.
During decoding, the dequantization circuit 240 recalls the AC scaling factor for chrominance based on the value of Q<sub>p</sub> used for the immediately previous macro block and any Q<sub>p</sub> update provided in the incoming bitstream. For each AC chrominance level signal, the scaling circuit 240 reconstructs a corresponding AC chrominance coefficient according to:
Chrom AC coefficient = Chrom AC Level * Quantizer for Chrominance.
The scaling circuit 240 outputs the reconstructed chrominance AC coefficients.
The scaling circuit's non-linear AC scaling functions may be implemented in hardware, also shown in Fig. 3. The scaler table 400 stores the AC chrominance scaler values indexed by Q<sub>p</sub>. If scaler table 400 is substituted by a processor, the processor computes the AC scaler value according to the Q<sub>p</sub> signal. AC chrom level signals from the variable length encoder 160 are isolated by a demultiplexer 410 and routed to an AC multiplication circuit 440. The AC coefficients are generated by the multiplication circuit 440.
QUANTISER UPDATE
The encoder 100 and decoder 200 each must use the same Q<sub>p</sub> value for video signals to be encoded and decoded intelligibly. The encoder 100 may change a value of Q<sub>p</sub> as frequently as every macro block. When the encoder 100 changes Q<sub>p</sub>, it reports the change in a Q<sub>p</sub> update signal in the output bitstream.
CA 02280038 1999-08-06
WO 98/36573
PCT/US98/01319
The present invention provides for an improved method of reporting updated Q<sub>p</sub> values to the decoder 200. For each Q<sub>p</sub> update, the magnitude of the Q<sub>p</sub> adjustment depends not only on the update signal but also the previous value of
Q<sub>p</sub>. A given Q<sub>p</sub> update signal at a large value of Q<sub>p</sub> results in a relatively large change in Q<sub>p</sub>. The same Q<sub>p</sub> update signal at a small value of Q<sub>p</sub> results in a smaller change in Q<sub>p</sub>. The following Table 4 demonstrates Q<sub>p</sub> adjustments made based on the Q<sub>p</sub> update signal and the value of Q<sub>p</sub> in one preferred embodiment of the invention.
<td rowspan="2"> DQuant Code</td><td colspan="4"> Qp Change Based on Qp Value</td>
<td> 1 through 6</td><td> 7 through 13</td><td> 14 through 21</td><td> 22 through 31</td>
<td> 00</td><td> -1</td><td> -1</td><td> -2</td><td> -3</td>
<td> 01</td><td> -2</td><td> -3</td><td> -4</td><td> -5</td>
<td> 10</td><td> 1</td><td> 1</td><td> 2</td><td> 3</td>
<td> 11</td><td> 2</td><td> 3</td><td> 4</td><td> 5</td>
Table 4
Providing variable step sizes for Q<sub>p</sub> updates based on the value of Q<sub>p</sub> provides resistance to saturation for large changes of Q<sub>p</sub> at the encoder 100. The variable step sizes provide increased flexibility without requiring additional overhead because the previous value of Q<sub>p</sub> is known at the decoder 200 and need not be reported in the bitstream.
CA 02280038 2002-09-20
Contents39
3 sheets
Sheet 1 Sheet 2 Sheet 3
11 priority claims, no other members on record
Priority claims11
| Document | Office | Kind | Date |
|---|---|---|---|
| 3801697 | United States of America | P | |
| 60038016 | United States of America | – | |
| 08899096 | United States of America | – | |
| 89909697 | United States of America | A | |
| 9801319 | United States of America | W | |
| 08899096 | – | – | – |
| 60038016 | – | – | – |
| PCTUS9801319 | – | – | – |
| US19970038016P | – | – | – |
| US19970899096 | – | – | – |
| WO1998US01319 | – | – | – |
2 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| ExpiryMKEX | MKEX | |
| Examination requestEEER | EEER |
Numbers
- Publication
- 2280038
- Publication, DOCDB
- 2280038
- Publication, EPODOC
- CA2280038
- Application
- 2280038
- Application, DOCDB
- 2280038
- Application, EPODOC
- CA19982280038
Titles2
- English
- NON-LINEAR QUANTIZER FOR VIDEO CODING
- French
- QUANTIFICATEUR NON LINEAIRE POUR CODAGE VIDEO
Classification
- CPC, 8
- H04N19/186
- H04N19/124
- H04N19/126
- H04N19/13
- H04N19/176
- H04N19/60
- H04N19/61
- H04N19/91