Quantization matrix for still and moving picture coding
Abstract
A transmission method for transmitting a truncated quantization matrix, using a complete quantization matrix to encode and decode transformed images, including the transmission method: truncate the complete quantization matrix that has a plurality of quantization elements in a matrix of truncated quantification; convert a two-dimensional network that includes elements of the truncated quantization matrix into a one-dimensional network of the elements in a zigzag scanning order; encode the one-dimensional array of the elements to obtain an encoded truncated quantization matrix having bits aligned in the order of bits corresponding to the one-dimensional array of the elements and an end code indicating a termination of the encoded truncated quantization matrix; and transmit the encoded truncated quantization matrix.
Term
Term ended
Projected expiry passed 5 February 2018, 8.6 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
3 claims: 1 independent, 2 dependent
- 1ES 2 240 263 T3 REIVINDICACIONES 1. Un método de transmisión para transmitir una matriz de cuantificación truncada, utilizándose una matriz de cuantificación completa para codificar y decodificar transformadas de imágenes, incluyendo el método de transmisión:truncar la matriz de cuantificación completa que tiene una pluralidad de elementos de cuantificación en una matriz de cuantificación truncada;convertir una red bidimensional que incluye elementos de la matriz de cuantificación truncada en una red unidimensional de los elementos en un orden de exploración en zigzag;codificar la matriz unidimensional de los elementos para obtener una matriz de cuantificación truncada codificada que tiene bits alineados en el orden de bits correspondiente a la matriz unidimensional de los elementos y un código de fin que indica una terminación de la matriz de cuantificación truncada codificada;y transmitir la matriz de cuantificación truncada codificada.
- 2El método de transmisión según la reivindicación 1, donde el valor de código de fin es “0”.
- 3El método de transmisión según la reivindicación 2, donde cada elemento de la matriz de cuantificación truncada y el código de fin son un código de longitud fija de 8 bits.
Independent claims3
82 paragraphs in 4 sections, as filed
IS 2 240 263 T3
DESCRIPTION
Quantization matrix for encoding still and moving images.
Technical field
This invention is especially useful in encoding still and moving images at very high compression. It is suitable for use in video conferencing applications over standard telephone lines as well as other applications that require high compression.
Background of the invention
US-A-5535138 describes in detail a system for video conferencing in which, prior to transmission, the video signals are encoded using quantization matrices generated based on one or more quantization matrix parameters that are contained in the encoded stream. bits. The encoded video signals are subsequently decoded using one or more quantization matrix parameters contained in the encoded bit stream.
In most compression algorithms some form of loss is expected in the decoded image. A typical method for compression that produces good results is to introduce this loss by quantizing the signal in the transform domain rather than the pixel domain. Examples of such transforms are the Discrete Cosine Transform, DCT, the small wave transform, and subband analysis filters. In a transform-based compression algorithm, the image is converted into the transform domain and a quantization scheme is applied to the coefficients to reduce the amount of information. The transformation has the effect of concentrating energy on a few coefficients and noise can be introduced into these coefficients without affecting the perceived visual quality of the reconstructed image.
It is known that some form of human perception system with different weighting in quantization at different coefficients can improve perceived visual quality. In coding standards such as ISO / IEC JTC1 / SC29 / WG11 IS-13818-2 (MPEG2), the quantization of the DCT coefficients is weighted by the quantization matrix. A default matrix is normally used; however, the encoder may choose to send new values of the quantization matrix to the decoder. This is done by signaling at the head of the bit stream.
The prior art on sending a quantization matrix based on the MPEG-2 video standard is to send 64 fixed values of 8 bits each if the bit signaling to use a special quantization matrix is set to "1".
The matrix values at the highest frequency band position are not actually used, especially for very low bit rate encoding where a large quantization step is employed, or for a very simple or well textured input block. motion compensation.
It has also been found that, in the stated prior art, for any quantization matrix used in different applications, the first value of the quantization matrix is always set to eight, regardless of whether it is low bit rate encoding or low bit rate encoding. high bit rate.
A problem with this method is the amount of information that must be sent as part of the quantization matrix. In a typical case, all 64 coefficients each of 8 bits are required. This represents a total of 512 bits. If three different quantization matrices are required for three bands of color information, the total bits will be three times that amount. This represents too many resources for low bit rate transmissions. It results in too long setup time or latency in transmissions if you change the matrix in the middle of the transmission.
The second problem to solve is the spatial masking of the human visual system. Noise in flat regions is more visible than noise in textured regions. Therefore, applying the same matrix to all regions is not a good solution since the matrix is globally optimized but does not adjust locally to the activity of the local region.
The third problem to solve is the bit saving of the variable quantization matrix value for DC. The first value in the quantization matrix is decreased for a higher bit rate and flat region and increased for a lower bit rate and textured region.
To solve the above problem, claim 1 sets forth a method for transmitting a truncated quantization matrix for encoding and decoding image transforms.
Other problems are solved by the following means.
A default matrix is designed so that a variable number of weights can be updated by the encoder. This method of fitting the matrix to image content in different degrees is hereinafter referred to as a truncated quantization matrix.
IS 2 240 263 T3
This truncated quantization matrix can be decided by checking the encoding bit rate, the complexity of the encoded image, as well as other aspects. It always requires a small number of non-zero values that are typically concentrated in the DC coefficients and the first few ACs, especially in low bit rate encoding. Also, these non-zero values can be differentially encoded, and less than 8 bits will be used for each value to encode the difference values.
The quantization weights are scaled according to the activity of the block.
The quantization weights are scaled according to the quantization step size of the block.
The present invention provides a method for increasing the efficiency of using quantization matrix both by saving bits and adapting to individual blocks.
The quantization matrix is decided based on different encoding bit rates as well as other aspects in this way: only the first few values in the quantization matrix are set to non-zero with some weighting, and others are truncated to zero, they are not encoded and transmitted.
This truncated quantization matrix is zigzag scanned, differentially encoded, and transmitted, along with the number of non-zero values, or is terminated by a specific symbol.
The weighting scale can be adjusted by checking the number of coefficients remaining after quantization, since the number of coefficients remaining can reflect the activity of the block. If only the DC coefficient is left after quantization, the weighting scale for DC should be less than or equal to 8 because it is a flat region, otherwise if a lot of AC coefficients are left, the weighting scale for DC can be larger, for example twice the quantization step. The same adjustment can be made for the weighting scale for AC coefficients.
Brief description of the drawings
Figure 1A shows a diagram of an example of a default quantization matrix.
Figure 1B shows a diagram of an example of a particular quantization matrix.
Figure 2A shows a truncated quantization matrix.
Figure 2B shows a diagram of another example of a particular quantization matrix.
Figure 3 shows a diagram of an example synthesized quantization matrix.
Figure 4 is a block diagram of an encoder.
Figure 5 is a block diagram of a decoder.
Figure 6 is a block diagram representing one of the ways of encoding the truncated quantization matrix.
Figure 7 shows a diagram of an example of a scale truncated quantization matrix, which is used to scale the value for DC only.
Fig. 8 is a flow chart depicting the scaling procedure for DC coefficient in a truncated quantization matrix.
Figure 9 is a block diagram of a decoder for decoding the scaled truncated quantization matrix.
Best Mode of Carrying Out the Invention
The current realization is divided into two parts. The first part of the embodiment describes the truncated quantization matrix. The second part of the embodiment describes the operation of the adaptive quantization step size scale. Although the embodiment describes the operations as a unit, both methods can be applied independently to achieve the desired result.
Figure 1A shows an example of a default quantization matrix for intra-Luminance (Intra-Y) raster coding, and Figure 1B shows an example of a particular quantization matrix that quantizes high-frequency coefficients more coarsely.
Figure 2A is an example of the truncated quantization matrix.
IS 2 240 263 T3
The key to this embodiment is that the number of values in the quantization matrix to be transmitted can be less than 64. This is especially useful especially for very low bit rate encoding, where only the first 2 or 3 values are required.
Figure 4 shows an encoder using the quantization matrix for the still and moving images. The encoder includes a DCT converter 32, a quantizer 34, and a variable length encoding unit 49. A QP generator 36 for generating quantization parameters after providing, for example, each macroblock. The quantization parameter can be calculated using a predetermined equation after each macroblock, or can be selected from a look-up table. The obtained quantization parameters are applied to the quantizer 34 and also to a decoder which will be described in detail later in connection with FIG. 5.
In Figure 4, the encoder further has a particular QM generator 38 for generating particular quantization elements aligned in a matrix format. The particular quantization elements in the matrix are generated after each video object layer (VOL) consisting of a plurality of layers. Examples of particular quantization elements in matrix QM are shown in Figure 1B and Figure 2B. In case video data is sent with less amount of data (such as when the bit rate is low, or when the image is simple), the particular quantization elements shown in Figure 1B are used where large amount of quantization elements, such as 200, in the high frequency region. The particular quantization elements can be obtained by calculation or by using a suitable look-up table. A selector 37 is provided to select parameters used in the calculation, or suitable quantization elements in the matrix of the look-up table. The selector 37 can be operated manually by the user or automatically based on the type of the image (real image or graphic image) or the quality of the image.
The particular quantization elements in QM matrix are applied to a truncator 40. The truncator 40 reads the particular quantization elements in QM matrix in a zigzag format, controlled by a zigzag scan 48, from a DC component to higher frequency components. high, represented by dashed lines in Figure 2A. When the truncator 40 reads a preset number of particular quantization elements in the matrix, another zigzag read from the QM matrix of block 38 is terminated. Then, an end code, such as a zero, is added by a code adder. from end to end of the preset number of particular quantization items. The preset number is determined by a setting unit 39 operated manually by a user or automatically in relation to the type or quality of the image. According to an example shown in Figure 2A, the preset number is thirteen. Thus, there will be thirteen particular quantization elements read before the completion of the zigzag read. These read quantization elements are called quantization elements in the front portion, since they are in the front portion of the zigzag reading of the particular quantization elements in the QM matrix. The quantization elements in the above portion are sent to a synthesized QM generator 44, and the same quantization elements plus the end code are sent to a decoder shown in FIG. 5. A series of these quantization elements in the preceding portion followed by the end code is called a simplified data QMt.
A default QM generator 46 is provided to store matrix-aligned default quantization elements, as depicted in FIG. 1A. These default quantization elements are also read in the zigzag fashion by the zigzag scan control 48. A synthesized QM generator 44 is provided to generate synthesized quantization elements in a matrix form. In the synthesized QM generator 44 the particular quantization elements in the anterior portion obtained from the truncator 40, and the default quantization elements in a posterior portion (a portion other than the anterior portion) of the default QM generator 46 are synthesized. Thus, the synthesized QM generator 44 uses the particular quantization elements in the previous portion and the default quantization elements in this last portion to synthesize the matrix-synthesized quantization elements.
Figure 3 shows an example of matrix synthesized quantization elements in which the front portion F is filled with the particular quantization elements and this last portion L is filled with the default quantization values.
In the quantizer 34, the matrix format DCT COF coefficients are quantized using the matrix synthesized quantization elements of the synthesized QM generator 44, and the QP quantization parameter of the QP generator 36. The quantizer 34 then generates COF quantized DCT coefficients 'in array format. The coefficients COFij and COF'ij (i and j are positive integers between 1 and 8, inclusive) have the following relationship.
COF '<x
COF, QMjj * QP
Here, QMij represents matrix quantization elements produced by the synthesized QM generator 44, QP represents a quantization parameter produced by the QP generator 36. The quantized DCT coefficients COF 'are then also encoded in the variable-length coding unit 49, and the VD compressed video data is sent from unit 49 and applied to the decoder shown in FIG. 5.
Figure 5 shows a decoder, according to the present invention, using the quantization matrix for the
ES 2 240 263 T3 still and moving images. The decoder includes a variable length decoder unit 50, an inverse quantizer 52, an inverse DCT converter 62, an end code detector 56, a synthesized QM generator 54, a default QM generator 58, and a zigzag scan 60.
The default QM generator 58 stores a default quantization matrix, as depicted in FIG. 1A. It is noted that the default quantization matrix stored in the default QM generator 58 is the same as that stored in the default QM generator 46 shown in FIG. 4. Synthesized QM generator 54 and zigzag scan 60 are substantially the same as synthesized QM generator 44 and zigzag scan 48, respectively, depicted in FIG. 4.
The VD video data transmitted from the encoder of Figure 4 is applied to the variable length decoder unit 50. Similarly, the quantized parameter QP is applied to the inverse quantizer 52, and the simplified data QMt is applied to the end code detector. 56.
As described above, the simplified data QMt includes a particular quantization element in the front portion of the matrix. The particular quantization elements are zigzag scanned by zigzag scan 60 and stored in the anterior portion of the synthesized QM generator 54. Then, when the end code is detected by the end code detector 56, it terminates the supply of the particular quantization items from the end code detector 56, and in turn, the default quantization items from the default QM generator. 58 zigzag scanned in this last portion of the synthesized QM generator 54.
Thus, the synthesized quantization matrix generated in the synthesized QM generator 54 in FIG. 5 is the same as the synthesized quantization matrix generated in the synthesized QM generator 44 in FIG. 4. Since the synthesized quantization matrix can be reproduced using With the simplified data QMt, it is possible to reproduce the high quality image with less data to be transmitted from the encoder to the decoder.
Figure 6 shows one of the ways of encoding and transmitting the truncated quantization matrix.
Here, unit 1 is the truncated quantization matrix determined in unit 2 by checking for different encoding bit rates, different encoding image size, etc. x1, x2, x3, ..., in unit 1 are the non-zero quantization matrix values used to quantize a block of 8x8 DCT coefficients in the same position as x1, x2, x3, ... Other parts of the quantization matrix with zero values in unit 1 means that the default value of the quantization matrix will be used. In the encoder, the same part of DCT coefficients of an 8x8 block will be set to zero.
Unit 3 will explore the non-zero values in Unit 1 to a group of data with a larger value concentrated in the first part of the group. Zigzag scanning is shown here as an example.
Unit 4 shows the optional part to encode the scanned data by subtracting contiguous values to obtain the smallest difference values, Ax1, Ax2, ..., as represented in figure 6, can be followed by Huffman encoding or other methods of entropy encoding.
At the same time, the number of non-zero quantization matrix values is also encoded and transmitted to the decoder, along with the non-zero values. There are different ways to encode this information. The simplest method is to encode the number using fixed 8 bits. Another method is to encode the number using a variable length table designed to use fewer bits to handle the most frequent cases.
Alternatively, instead of encoding and transmitting the number of non-zero quantization matrix values, as depicted in Figure 6, after encoding the last non-zero value, xN, or the last difference value, AxN (N = 1 , 2, 3, ...), a specific symbol is inserted into the bit stream to indicate completion of the non-zero quantization matrix encoding. This specific symbol can be a value that is not used in non-zero value encoding such as zero or a negative value.
Figure 7 is the truncated quantization matrix with scale factor S as weighting for DC only. This scale factor is regulated based on the activity of the individual block. Activity information can be obtained by checking the number of AC coefficients remaining after quantization. x1, x2, x3, ..., x9 are the non-zero values in the truncated quantization matrix to use to quantize the block of 8x8 DCT coefficients, and S is the weight to scale up / down the first value to regulate the quantizer for the DC coefficient.
Figure 8 shows the details about the scaling procedure for the first value in the quantization matrix.
Unit 5 quantizes each 8x8 block by first applying the truncated quantization matrix, followed by the quantization step required at that time for that block. Unit 6 checks the number of AC coefficients remaining after the previous quantization, proceeding to unit 7 to decide whether the weight S in Figure 7 is scaled up or down. If more AC coefficients remain after quantization performed in unit 5, the weight S can be scaled up, represented in unit 8; otherwise it escalates to
ES 2 240 263 T3 below, represented in unit 9. Unit 10 scales the weighting S to regulate the first value in the quantization matrix, and unit 11 re-quantifies the DC coefficient using the new value adjusted for block A and sends all DC and AC coefficients to the decoder.
The scale up and down can be some chosen value related to the present quantization step or a fixed value.
The fit of the other quantization matrix values for AC coefficients can be followed in a similar way.
A decoder of the adaptive quantization step size scale and truncated quantization matrix is depicted in Figure 9.
In Figure 9, the decoded bitstream is input to the decoder. Unit 12 will decode the truncated quantization matrix, and unit 13 will decode the quantization step for each block. Unit 14 will decode all DC and AC coefficients for each block. Unit 15 will check the number of AC coefficients that are not zero, and the scale factor can be determined in unit 16 using the information obtained from unit 15 and following the same criteria as in the encoder. All DC and AC coefficients for each block can be inversely quantized in unit 17 by the decoded scale quantization matrix and the decoded quantization matrix. Finally all the inversely quantized coefficients are passed to an inverse DCT transform coding unit to reconstruct the image.
The following formulas are used for quantification and inverse quantification:
Quantification:
For Intra DC: Level = | COF | // (QM / 2)
For Intra AC: Level = | COF | * 8 / (QP * QM)
For Inter: Level = (| COF | - (QP * QM / 32)) * 8 / (QP * QM)
Inverse quantification:
For Intra DC: | COF '| = Level * QM / 2 For others: | COF '| = 0, if Level = 0 | COF' | = (2 * LEVEL + 1) * (QP * QM / 16), if NIVEI.V0, (QP * QM / 16) is odd | COF '| = (2 * LEVEL + 1) * (QP * QM / 16) -1, if LEVEL / 0, (QP * QM / 16) is even where:
COF is the transformation coefficient to be quantified.
LEVEL is the absolute value of the quantized version of the transformation coefficient. COF 'is the reconstructed transformation coefficient.
QP is the quantization step size of the current block.
QM is the value of the quantization matrix corresponding to the coefficient to be quantized.
The default value for QM is 16.
The present invention will change the quantization matrix adaptively according to the encoding bit rate, the encoding size, as well as the human visual system, so that a batch of bits can be saved by truncating and scaling the quantization matrix and differentially encoding the array values. Therefore, it will increase the encoding efficiency, especially for very low bit rate encoding.
Contents4
50 members in 12 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 19970061647 | Japan | – | |
| 6164797 | Japan | A | |
| 19970186437 | Japan | – | |
| 18643797 | Japan | A |
Members50
| Document | Office | Kind | |
|---|---|---|---|
| WO9835503A1 | World Intellectual Property Organization (WIPO) | A1 | |
| ID20721A | Indonesia | A | |
| EP0903042A1 | European Patent Office (EPO) | A1 | |
| JPH1188880A | Japan | A | |
| CN1223057A | China | A | |
| BR9805978A | Brazil | A | |
| BR9805978A | Brazil | A | |
| KR20000064840A | Republic of Korea | A | |
| TW441198B | Taiwan Province of China | B | |
| EP1113672A2 | European Patent Office (EPO) | A2 | |
| EP1113673A2 | European Patent Office (EPO) | A2 | |
| EP1113672A3 | European Patent Office (EPO) | A3 | |
| EP1113673A3 | European Patent Office (EPO) | A3 | |
| US2001021222A1 | United States of America | A1 | |
| KR100303054B1 | Republic of Korea | B1 | |
| JP2001313941A | Japan | A | |
| JP2001313946A | Japan | A | |
| JP3234807B2 | Japan | B2 | |
| JP3234830B2 | Japan | B2 | |
| CN1329439A | China | A | |
| CN1329440A | China | A | |
| EP0903042B1 | European Patent Office (EPO) | B1 | |
| DE69805583D1 | Germany | D1 | |
| US6445739B1 | United States of America | B1 | |
| ES2178142T3 | Spain | T3 | |
| US6501793B2 | United States of America | B2 | |
| DE69805583T2 | Germany | T2 | |
| US2003067980A1 | United States of America | A1 | |
| EP1113673B1 | European Patent Office (EPO) | B1 | |
| DE69813635D1 | Germany | D1 | |
| ES2195965T3 | Spain | T3 | |
| CN1140130C | China | C | |
| EP1397006A1 | European Patent Office (EPO) | A1 | |
| DE69813635T2 | Germany | T2 | |
| CN1145363C | China | C | |
| EP1113672B1 | European Patent Office (EPO) | B1 | |
| CN1198466C | China | C | |
| DE69829783D1 | Germany | D1 | |
| DE69829783T2 | Germany | T2 | |
| ES2240263T3This record | Spain | T3 | |
| US7010035B2 | United States of America | B2 | |
| JP3769467B2 | Japan | B2 | |
| US2006171459A1 | United States of America | A1 | |
| MY127668A | Malaysia | A | |
| EP1397006B1 | European Patent Office (EPO) | B1 | |
| DE69841007D1 | Germany | D1 | |
| ES2328802T3 | Spain | T3 | |
| US7860159B2 | United States of America | B2 | |
| BR9805978B1 | Brazil | B1 | |
| BR9805978B8 | Brazil | B8 |
Numbers
- Publication
- 2240263
- Application
- 1106445
Titles2
- Spanish
- MATRIZ DE CUANTIFICACION PARA EL CODIFICADO DE IMAGENES FIJAS Y EN MOVIMIENTO.
- English
- QUANTIFICATION MATRIX FOR THE CODING OF FIXED AND MOVING IMAGES.
Classification
- CPC, 15
- H04N19/59
- H04N19/60
- H04N19/61
- H04N19/91
- H04N19/46
- H04N19/30
- H04N19/18
- H04N19/176
- H04N19/162
- H04N19/154
- H04N19/14
- H04N19/132
- H04N19/13
- H04N19/126
- H04N19/124
- IPC, 4
- G06T9 00
- H04N7 26
- H04N7 30
- H04N7 50