Quantization matrix for still and moving picture coding
Abstract
AN ENCODER AND DECODER IS PRESENTED FOR A FIXED AND MOVING IMAGE. THE ENCODER HAS A MEMORY TO STORE A DEFAULT QUANTIFICATION MATRIX THAT INCLUDES A SERIES OF QUANTIFICATION ELEMENTS THAT HAVE DEFAULT VALUES. A GENERATOR IS ALSO SUPPLIED TO PRODUCE A PARTICULAR QUANTIFICATION MATRIX AFTER A NUMBER OF FRAMES. THE PARTICULAR QUANTIFICATION MATRIX IS READ IN A DEFAULT ZIGZAG FORM, AND THE READING COMPLETES IN A SELECTED POSITION WHICH IS THE HALF OF THE ZIGZAG MODEL. AN END CODE IS ADDED AFTER THE QUANTIFICATION ELEMENTS READ FROM AN INITIAL PART OF THE PARTICULAR QUANTIFICATION MATRIX. THE QUANTIFICATION ELEMENTS IN THE DEFAULT QUANTIFICATION MATRIX ARE READ IN THE SAME WAY OF ZIGZAG FROM AN POSITION IMMEDIATELY AFTER THE SELECTED POSITION, PRODUCING A SUBSEQUENT PART OF THE DEFAULT QUANTIFICATION MATRIX. THE INITIAL PART OF THE PARTICULAR QUANTIFICATION MATRIX AND THE BACK OF THE DEFAULT QUANTIFICATION MATRIX ARE SYNTHESIZED TO FORM A SYNTHESIZED QUANTIFICATION MATRIX.

Term
Term ended
Projected expiry passed 5 February 2018, 8.6 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
3 claims: 2 independent, 1 dependent
- 1ES 2 178 142 T3 REIVINDICACIONES 1. Un método de decodificacion para decodificar imágenes codificadas usando una matriz de cuantificacion truncada, comprendiendo el metodo:recepcion de una corriente de bits que incluye una matriz de cuantificacion truncada codificada que se obtiene al codificar la matriz de cuantificacioon truncada en un orden de escaneo en zigzag;extraccioon de la matriz de cuantificacioon truncada codificada hasta un coodigo final que indica que se ha encontrado el final de la matriz de cuantificacioon truncada codificada en la corriente de bits;decodificacioon de un resultado de la extraccioon de la matriz de cuantificacioon truncada dentro de la matriz de cuantificacioon truncada;generacioon de una matriz de cuantificacioon usando la matriz de cuantificacioon truncada;decodificacion del tamano de la etapa de cuantificacioon en la corriente de bits;decodificacioon de los coeficientes DCT cuantificados en la corriente de bits;cuantificacioon inversa de los coeficientes DCT cuantificados decodificados usando el tamano de la etapa de cuantificacioon decodificada y la matriz de cuantificacioon en forma de coeficientes DCT;y transformacioon DCT inversa de los coeficientes DCT en un bloque de pixeles.
- 2El moetodo de decodificacioon seguon la reivindicacioon 1, en el que el coodigo final se establece a un valor de “0”.
- 3El moetodo de decodificacioon seguon la reivindicacioon 2, en el que cada elemento de la matriz de cuantificacioon truncada codificada y el coodigo final son un coodigo de longitud fija de 8 bits. NOTA INFORMATIVA:Conforme a la reserva del art. 167.2 del Convenio de Patentes Europeas (CPE) y a la Disposición Transitoria del RD 2424/1986, de 10 de octubre, relativo a la aplicación del Convenio de Patente Europea, las patentes europeas que designen a España y solicitadas antes del 7-10-1992, no producirán ningún efecto en Espana en la medida en que confieran proteccion a productos quámicos y farmaceuticos como tales. Esta informacioán no prejuzga que la patente estáeo no incluáda en la mencionada reserva.
Independent claims3
77 paragraphs in 2 sections, as filed
IS 2 178 142 T3
DESCRIPTION
Quantization matrix for encoding still and moving images.
Technical field
The present invention is particularly useful for encoding still and moving images with 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 Technique
In most compression algorithms some form of loss is expected in the decoded image. A topical compression method that produces good results is to introduce such loss by quantizing the signal in the transformed domain rather than in the pixel domain. Examples of such transforms are the discrete cosine transform, DCT, wavelet transforms, and subband analysis filters. In a transform-based compression algorithm, the image is converted into the transformed domain and a quantization scheme is applied to the coefficients to reduce the amount of information. The transformation has the effect of concentrating the energy in a few coefficients and noise could be introduced into these coefficients without affecting the perceived visual quality of the reconstructed image.
It is a well known fact that some form of human visual perception system with different weighting regarding the quantification of the different coefficients could improve the 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 from the quantization matrix to the decoder. This is done through signaling at the head of the bit stream. Document US 5533138 discloses a decoding method using quantization matrices that are generated from parameters of the quantization matrix.
The previous technique of sending a quantization matrix based on the MPEG-2 video standard consists of sending 64 fixed values of 8 bits each if the signal bit to use a special quantization matrix is set to "1".
The matrix values at the highest frequency band position are not really used, especially for very low bit rate encodings where a very large quantization stage is used, or for an input block with a very flat texture. or with good movement compensation.
In the aforementioned prior art it has been found that for any quantization matrix used in different applications, the first value of the quantization matrix is always set to 8, regardless of whether it is a low bit rate encoding or a speed encoding. bits high.
A problem with this method is the amount of information that needs to be sent as part of the quantification matrix. In a caseotopic, all 64 coefficients are required, each 8 bits, which represents a total of 512 bits. If three different quantization matrices are required for three bands of color information, the total bits would be three times that amount. This represents too much overhead for a low bit rate transmission. This results in a too long set-up time or latency in the transmission in the event that the matrix is changed 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 was globally optimized but not locally adjusted to the activity of the local regions.
The third problem to solve is the saving of bits of the value of the variable quantization matrix for DC. The first value in the quantization matrix is decreased for a higher bit rate and a flat region, and increased for a lower bit rate and for a textured region.
Description of the Invention
A coding method according to the present invention is established in claim 1. 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 quantification matrix according to the present invention.
Figure 2B shows a diagram of another example of a particular quantization matrix.
Figure 3 shows a diagram of an example of a quantification matrix synthesized according to the present invention.
Figure 4 is a block diagram of an encoder.
Figure 5 is a block diagram of a decoder.
Figure 6 is a block diagram showing one of the ways to encode the truncated quantization matrix.
Figure 7 shows a diagram of an example scaling of a truncated quantization matrix, which is scaling the value for DC only.
Figure 8 is a block diagram showing the extraction procedure for DC coefficients 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 present embodiment is divided into two parts. The first part of the way
ES 2 178 142 T3 embodiment describes the truncated quantization matrix. The second part of the embodiment describes the operation of adaptive scaling of the size of the quantization stage. Although the embodiment describes the operations as a unit, both methods could be applied independently to achieve the desired result.
Figure 1A shows an example of a default quantization matrix for intra-luminance raster (Intra-Y) encoding, and Figure 1B shows an example of a particular quantization matrix that quantifies the highest frequency coefficients roughly.
Figure 2A is an example of the truncated quantification matrix proposed by the present invention. The key to this embodiment is that the number of values in the quantization matrix to be transmitted could be less than 64. This is particularly useful especially for very low bit rate encoding, where only the first few are required. 2 or 3 values.
Figure 4 shows an encoder using the quantization matrix for still and moving images. The encoder includes a DCT converter 32, a quantizer 34, a variable length encoding unit 49. A QP generator 36 for generating quantization parameters after, for example, each supplied macroblock. The quantification parameter could be calculated using a predetermined equation after each macroblock, or it could be selected from a look-up table. The quantization parameters thus obtained are applied to the quantizer 34 and also to a decoder that will be described in more detail below, in connection with Figure 5.
In Figure 4, the encoder also has a particular QM generator 38 to generate 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 quantification elements in the QM matrix are shown in Figure 1B and Figure 2B. In the case where the 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 when a large number of quantization elements, such as 200, are used in the high-frequency region. The particular quantification elements could be obtained by calculating, or using, an appropriate look-up table. A selector 37 is provided to select the parameters used in the calculation, or appropriate quantization items in matrix form from the look-up table. The selector 37 could be manually operated by the user or be based automatically on the type of image (real image or graphic image) or image quality.
The particular quantization elements in the QM matrix are supplied to a truncator 40. The truncator 40 reads the particular quantization elements in the QM matrix in a zigzag format, controlled by a zigzag scan 48, of a DC component for DC components. higher frequencies, as shown with the dotted line in Figure 2A. When the truncator 40 reads a preset number of particular quantization elements in the matrix, the additional zigzag reading of the QM matrix from block 38 is terminated. A final cocode, such as a zero, is then added by an adder of final codes at the end of the preset number of particular quantification elements. 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. Following the example shown in Figure 2A, the preset number is thirteen. Thus, thirteen particular quantification elements will be read before the completion of the zigzag reading. Such read quantization elements are called front-end quantization elements, since they are at the front of the zigzag reading of the particular quantization elements in the QM matrix. The quantization elements in the previous part are sent to a generator 44 of the synthesized QM and the same quantization elements, in addition to the final code, are sent to a decoder shown in Figure 5. A series of said quantization elements in the previous part followed by the final code are called QMt simplified data.
A default QM generator 46 is provided to store aligned default quantization elements in a matrix, as shown in Figure 1A. These default quantization items are also read in a zigzag pattern by the zigzag scan control 48.
A synthesized QM generator 44 was equipped to generate synthesized quantization elements in a matrix. In the synthesized QM generator 44, the particular quantization elements are synthesized in the front part obtained by the truncator 40 and the default quantization elements in a later part (a different part than the front part) coming from the generator 46 of the default QM. Thus, the synthesized QM generator 44 uses the particular quantization elements at the front and the default quantization elements at the back to synthesize the quantization elements synthesized in the matrix.
Figure 3 shows an example of quantization elements synthesized in a matrix, in which the front part F is filled with the particular quantization elements and the back part L is filled with the default quantization values.
In the quantizer 34, the COF DCT coefficients in matrix format are quantized using the quantization elements synthesized in the matrix from the synthesized QM generator 44, and the QP quantization parameter from the QP generator 36. Subsequently, the quantizer 34 generates some coefficients
ES 2 178 142 T3 tes COF 'DCT in matrix format. The coefficients COFij and COF'ij (i and j are positive integers between 1 and 8, both inclusive) that have the following relationship.
COFy x
COF<sub>Y </sub>QMy * QP
Where QMij represents the quantization elements in the matrix produced from the synthesized QM generator 44, QP represents a quantization parameter produced by the QP generator 36. The quantized COF 'DCT coefficients are subsequently further encoded in unity. Variable-length encoder 49 and compressed video VD data are output from unit 49 and applied to the decoder shown in Figure 5.
Figure 5 shows a decoder using the quantization matrix for still and moving images. The decoder includes a variable length decoding unit 50, an inverse quantizer 52, an inverse DCT converter 62 and a final code detector 56, a synthesized QM generator 54, a default QM generator 58, and an in-line scanner. zigzag 60.
The default QM generator 58 stores a default quantization matrix, such as that shown in Figure 1A. It should be 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 Figure 4. Synthesized QM generator 54 and zigzag scanner 60 are substantially the same as synthesized QM generator 44 and zigzag scanner 48, respectively, shown in Figure 4.
The VD video data transmitted from the encoder of Figure 4 is applied to the variable length decoding unit 50. Similarly, the quantized parameter QP is applied to an inverse quantizer 52, and the simplified data QMt is applied to the final code detector 56.
As described above, the simplified QMt data includes particular quantization elements in the front of the matrix. The particular quantization elements are zigzag scanned by the zigzag scanner 60 and stored in the front of the synthesized QM generator 54. Then, when the final code is detected by the final code detector 56, the supply of the particular quantization elements from the final code detector 56 ends, and in turn, the default quantization elements from the QM generator 58. zigzag scans on the back of the synthesized QM generator 54.
In this way, the synthesized quantization matrix generated in the generator 54 of the QM synthesized in Figure 5 is the same as the synthesized quantization matrix generated in the generator 44 of the QM synthesized in Figure 4. Since the matrix of Since synthesized quantization can be reproduced using the simplified QMt data, it will be possible to reproduce the high quality image with less data transmitted from the encoder to the decoder.
Figure 6 shows one of the ways to encode and transmit the trun quantization matrix.<sub>5</sub> each.
In said figure, unit 1 is the truncated quantization matrix determined in unit 2 by checking the different coding bit rates, the different sizes of the coding image, etc ...; x1, x2, x3, .... in unit 1 are those non-zero values of the quantization matrix used to quantify a block of 8x8 DCT coefficients in the same position as x1, x2, x3, ....
<sub>15</sub> Other parts of the quantization matrix with zero values in unit 1 mean that default values of the quantization matrix will be used. In the encoder, the same part of DCT coefficients of an 8x8 block will be this<sub>20</sub> set to zero.
Unit 3 serves to scan the non-zero values in Unit 1 forming a group of data with the largest values concentrated in the first part of the group. Shown as ahem<sub>25</sub> For example, the zigzag scan.
Unit 4 shows the optional part to encode the scanned data by subtracting the neighboring values to obtain the values with smaller differences, Δχ1, Δχ2, ...., as shown in <sub>30</sub> Figure 6, which could also be followed by Huffman encoding or other entropy encoding methods.
At the same time, the number of nonzero values in the quantization matrix is also <sub>35</sub> it is encoded and transmitted to the decoder, together with said non-zero values. There are several ways to encode this information. The simplest method is to encode the number using a fixed 8-bit octet. Other<sub>40</sub> The method is to encode the number using a variable length table that is designed to use fewer bits and handle the more frequent cases.
Alternatively, instead of encoding and transmitting the number of nonzero values in the <sub>45</sub> quantization matrix, as shown in Figure 6, once the last non-zero value, xN, or the last difference value ΔχΝ (N = 1, 2, 3, ...) is encoded, a specific symbol is inserted into the bit stream to indicate the <sub>50</sub> Completion of the non-zero coding in the quantization matrix. This specific symbol may be a value that is not used in encoding nonzero values, such as zero or a negative value.
<sub>55</sub> Figure 7 is the truncated quantization matrix with a scaling factor S that weights only DC. This scaling factor is adjusted based on the activity of the individual block. Activity information can be obtained from<sub>60</sub> testing the number of AC coefficients that remain after the quantization. x1, x2, x3, ..., x9 are the non-zero values in the truncated quantization matrix that will be used to quantize the 8x8 block of DCT coefficients, and S is the pon<sub>65</sub> deration for up / down scaling for the first value and set the quantizer for the DC coefficient.
Figure 8 shows the details regarding the
ES 2 scaling procedure for the first value in the quantization matrix.
Unit 5 quantizes each of the 8x8 blocks by first applying the truncated quantization matrix, followed by the quantization step required at that time for said block. Unit 6 checks the number of AC coefficients remaining after the previous quantification, passing it to unit 7 to decide if the weight S in Figure 7 is scaled up or down. If there are more AC coefficients left after the quantification carried out in unit 5, then the weighting S could be scaled upwards, as shown in unit 8; the downscaling is displayed in unit 9. Unit 10 scales the S-weight to fit the first value in the quantization matrix, and unit 11 re-quantizes the DC coefficient using the new value adjusted for block A and outputs all DC and AC coefficients to the decoder.
Climbing up and down could choose a value related to the present quantification stage or a fixed value.
The adjustment of the other values of the quantification matrix for the AC coefficients could be carried out in a similar way.
An adaptive quantization stage size decoder for the scaled truncated quantization matrix is shown in Figure 9.
In Figure 9, the decoded bit stream is input to the decoder. Unit 12 decoded the truncated quantization matrix and unit 13 decoded the quantization stage for each block. Unit 14 will decode all DC and AC coefficients for each of the blocks. Unit 15 checked the number of AC coefficients that are different from zero and the scaling factor could 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 could be inversely quantized in unit 17 by the decoded scaling quantization matrix and the decoded quantization matrix. Finally, all inversely quantized coefficients are passed to the coding unit
142 T3 8 of the inverse DCT transform to reconstruct the image.
The following formulas are used for quantification and reverse 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<sup>*</sup>QM)
Inverse quantification:
For Intra DC: | COF '| = Level<sup>*</sup> (QM / 2)
For the rest: | COF '| = 0, if Level = 0 | COF '| = (2<sup>*</sup> LEVEL + 1) <sup>*</sup> (QP <sup>*</sup> QM / 16), if LEVEL = 0, (QP<sup>*</sup> QM / 16) is odd | COF '| = (2<sup>*</sup> LEVEL + 1) <sup>*</sup> (QP <sup>*</sup> QM / 16) - 1, if LEVEL = 0, (QP<sup>*</sup> 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 size of the quantization stage for 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 quantization matrix could be adaptively changed according to the coding speed, the coding size, as well as the human visual system, so that a large number of bits can be saved by truncating and scaling the quantization matrix and encoding the values of the matrix differentially. Therefore, the above will increase the encoding efficiency, especially for very slow bit rate encoding.
Having described the invention in the form given above, it would be obvious that it could be changed in many ways. Said variations should not be construed as departing from the scope of the invention, and it is intended that all such modifications as those mentioned which would be obvious to a person skilled in the art are included within the scope of the appended claims.
Contents2
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
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 | |
| ES2178142T3This record | 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 | |
| ES2240263T3 | 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
- 2178142
- Application
- 98901516
Titles2
- Spanish
- MATRIZ DE CUANTIFICACION PARA LA CODIFICACION DE IMAGENES FIJAS Y EN MOVIMIENTO.
- English
- QUANTIFICATION MATRIX FOR THE CODING OF STILL 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