Nothing Special   »   [go: up one dir, main page]

WO2014002446A1 - Coding method and decoding mehtod of a quantization matrix - Google Patents

Coding method and decoding mehtod of a quantization matrix Download PDF

Info

Publication number
WO2014002446A1
WO2014002446A1 PCT/JP2013/003864 JP2013003864W WO2014002446A1 WO 2014002446 A1 WO2014002446 A1 WO 2014002446A1 JP 2013003864 W JP2013003864 W JP 2013003864W WO 2014002446 A1 WO2014002446 A1 WO 2014002446A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantization matrix
quantization
transform
coefficients
unit
Prior art date
Application number
PCT/JP2013/003864
Other languages
French (fr)
Inventor
Masato Shima
Original Assignee
Canon Kabushiki Kaisha
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Publication of WO2014002446A1 publication Critical patent/WO2014002446A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264

Definitions

  • the present invention relates to an image coding device, an image coding method, a recording medium, an image decoding device, an image decoding method, and a recording medium, in particular to a coding method and a decoding method of a quantization matrix.
  • H.264/MPEG-4 AVC As a moving picture coding method, H.264/MPEG-4 AVC (hereinafter referred to as "H.264") is known (ITU-T H.264 (03/2010) Advanced video coding for generic audiovisual services: NPL 1).
  • H.264 each coefficient in a quantization matrix can be changed to any value by coding scaling_list information.
  • NPL 1 each coefficient in a quantization matrix can be any value by adding a difference value delta_scale to a previous coefficient.
  • HEVC High Efficiency Video Coding
  • a frequency-component-weighted quantization is performed by using a quantization matrix as shown in Fig. 5A.
  • this quantization matrix 500 coefficients corresponding to low frequency components are set to smaller values and coefficients corresponding to high frequency components are set to greater values.
  • the transform skip technique described above when used in particular, the orthogonal transform is not performed, so that all the quantization target coefficients have the same frequency components. Therefore, when the transform skip technique is used, it is not preferable to perform the weighted quantization described above and it is necessary to perform quantization processing by using a flat quantization matrix 501 in which all the coefficients have the same value as shown in Fig. 5B. Therefore, it is desirable that information of the flat quantization matrix 501 can be coded by a smaller amount of code. However, in particular in the HEVC described above, there is no mechanism to efficiently code the information of the flat quantization matrix 501. As a result, the amount of code increases in an undesirable manner.
  • the present invention is made to solve the above problem and the present invention realizes highly efficient quantization matrix coding and decoding by introducing a method of efficiently coding a flat quantization matrix by a smaller amount of code.
  • an image coding device of the present invention has the following configuration.
  • the image coding device includes a prediction unit that divides an inputted image into a plurality of blocks and generates prediction errors from pixels to be referred to, a transform unit that performs an orthogonal transform on the prediction errors and generates transform coefficients, a quantization unit that generates quantization coefficients by quantizing the generated transform coefficients by using quantization matrix, a coefficient coding unit that codes the quantization coefficients, a quantization matrix coding unit that codes the quantization matrix, and a quantization matrix coding unit that codes the quantization matrix when the quantization matrix is not the same as a predetermined quantization matrix and codes correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix.
  • an image decoding device of the present invention has the following configuration.
  • the image decoding device includes a decoding/separation unit that decodes header information of an inputted bit stream and separates necessary codes, a coefficient decoding unit that decodes quantization coefficients, a quantization matrix decoding unit that decodes a quantization matrix used to inverse-quantize the quantization coefficients when the quantization matrix is not the same as a predetermined quantization matrix and decodes correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix, a inverse quantization unit that generates transform coefficients by inverse-quantizing the decoded quantization coefficient by using the decoded quantization matrix or the correspondence information, and a reconstruction unit that restores an image from prediction errors obtained by inverse-transforming the transform coefficients.
  • Fig. 1 is a block diagram showing a configuration of an image coding device according to a first embodiment.
  • Fig. 2 is a block diagram showing a configuration of an image decoding device according to a second embodiment.
  • Fig. 3 is a block diagram showing a configuration of an image coding device according to a third embodiment.
  • Fig. 4 is a block diagram showing a configuration of an image decoding device according to a fourth embodiment.
  • Fig. 5A is a diagram showing an example of a quantization matrix.
  • Fig. 5B is a diagram showing an example of a quantization matrix.
  • Fig. 6 is a flowchart showing image coding processing of the image coding device according to the first embodiment.
  • Fig. 1 is a block diagram showing a configuration of an image coding device according to a first embodiment.
  • Fig. 2 is a block diagram showing a configuration of an image decoding device according to a second embodiment.
  • Fig. 3 is a block diagram showing a configuration of an
  • FIG. 7 is a flowchart showing image decoding processing of the image decoding device according to the second embodiment.
  • Fig. 8 is a flowchart showing image coding processing of the image coding device according to the third embodiment.
  • Fig. 9 is a flowchart showing image decoding processing of the image decoding device according to the fourth embodiment.
  • Fig. 10A is a diagram showing an example of a bit stream.
  • Fig. 10B is a diagram showing an example of a bit stream.
  • Fig. 10C is a diagram showing an example of a bit stream.
  • Fig. 11 is a diagram showing an example of a relationship between a quantization matrix to be coded and quantization matrix reference information.
  • Fig. 12 is a block diagram showing a configuration example of a computer which can be applied to the image coding device and the image decoding device of the present invention.
  • Fig. 1 is a block diagram showing an image coding device of the present embodiment.
  • reference numeral 101 denotes a terminal into which image data (hereinafter referred to as "image") is inputted.
  • Reference numeral 102 denotes a block division unit that divides the inputted image into a plurality of blocks.
  • Reference numeral 103 denotes a prediction unit that performs prediction for each block of the blocks divided by the block division unit 102, determines a prediction method, calculates difference values according to the determined prediction method, and calculates prediction errors.
  • the prediction unit 103 performs intra prediction or motion compensating prediction. Generally, the intra prediction is realized by selecting an optimal reference method from a plurality of reference methods to calculate prediction values from peripheral pixel data.
  • Reference numeral 104 denotes a transform unit that performs orthogonal transform on the prediction errors of each block.
  • the transform unit 104 performs the orthogonal transform on the basis of the size of an inputted block or on the basis of the size of a divided block and calculates orthogonal transform coefficients.
  • the block on which the orthogonal transform is performed is referred to as a "transform block".
  • the orthogonal transform is not limited in particular, the discrete cosine transform, the Hadamard transform, and the like may be used.
  • the prediction error of a block unit of 8*8 pixels is divided in half vertically and horizontally and the orthogonal transform is performed on each transform block unit of 4*4 pixels.
  • the orthogonal transform may be performed by using a transform block having the same size as the block or the orthogonal transform may be performed by using a transform block obtained by dividing the block into block units smaller than the block units obtained by dividing the block in half vertically and horizontally.
  • Reference numeral 107 denotes a quantization matrix holding unit that generates and stores quantization matrixes.
  • the generation method of the quantization matrixes to be stored is not limited.
  • a user may input the quantization matrixes.
  • the quantization matrixes may be calculated from the characteristics of the input image. Quantization matrixes made from initial values in advance may be used.
  • two-dimensional quantization matrixes corresponding to a transform block of 4*4 pixels as shown in Figs. 5A and 5B is generated and stored.
  • Reference numeral 105 denotes a quantization unit that quantizes the orthogonal transform coefficients by the quantization matrix stored in the quantization matrix holding unit 107. Quantization coefficients will be obtained by this quantization.
  • Reference numeral 106 denotes a coefficient coding unit that codes the quantization coefficients obtained as described above and generates quantization coefficient code data. Although the coding method is not limited in particular, Huffman code, arithmetic code, and the like may be used.
  • Reference numeral 108 denotes a quantization matrix determination unit that determines whether or not the quantization matrix stored in the quantization matrix holding unit 107 corresponds to a predetermined quantization matrix.
  • the quantization matrix determination unit 107 determines whether or not the quantization matrix to be coded is a quantization matrix that has already been coded, a predetermined quantization matrix, or a flat quantization matrix in which all the coefficients have the same value. It is assumed that the predetermined quantization matrix is stored in the quantization matrix holding unit 107. However, it is not limited to this. For example, the predetermined quantization matrix may be stored in the quantization matrix determination unit 108.
  • Reference numeral 109 denotes a quantization matrix header coding unit that generates a quantization matrix header code by coding information that indicates the determination of the quantization matrix determination unit 108 and other information related to the quantization matrix as a header.
  • Reference numeral 110 denotes a quantization matrix coefficient coding unit that generates a quantization matrix coefficient code by coding each coefficient in the quantization matrix to be coded.
  • Reference numeral 111 denotes an integrated coding unit that generates a code related to header information, prediction, and transform, forms a bit stream by integrating code data generated by each coding unit described above, and outputs the bit stream.
  • the integrated coding unit 111 integrates the quantization coefficient code data generated by the coefficient coding unit 106, the quantization matrix header code generated by the quantization matrix header coding unit 109, and the quantization matrix coefficient code generated by the quantization matrix coefficient coding unit 110.
  • the code related to prediction and transform is, for example, a code of the selected prediction method, a code of a division mode of the transform block, and the like.
  • Reference numeral 112 denotes a terminal from which the bit stream generated by the integrated coding unit 111 is outputted.
  • An image coding operation in the image coding device will be described below.
  • a configuration in which moving image data is inputted for each picture is employed.
  • a configuration in which still image data of one picture is inputted may be employed.
  • intra prediction coding process will be described in the present embodiment for ease of explanation, it is not limited to this and the present embodiment can be applied to an inter prediction coding process.
  • an image is divided into blocks of 8*8 pixels by the block division unit 102 for explanation, it is not limited to this.
  • the quantization matrix holding unit 107 generates quantization matrixes.
  • the quantization matrix is determined according to a transform block size which is a size of the orthogonal transform used for the coding process.
  • the method for determining the quantization matrix coefficients is not limited in particular. For example, predetermined initial values may be used as the quantization matrix coefficients or the quantization matrix coefficients may be set individually. Or, the quantization matrix coefficients may be set according to the characteristics of the image.
  • Figs. 5A and 5B are examples of the quantization matrix corresponding to the transform block of 4*4 pixels.
  • the quantization matrix has a configuration of 16 pixels corresponding to the transform block of 4*4 pixels and each square in a thick-bordered box represents a coefficient.
  • the quantization matrixes shown in Figs. 5A and 5B are held in a two-dimensional shape.
  • the coefficients in the quantization matrix are not limited to this. For example, when a transform block size of 8*8 pixels is used in addition to the present embodiment, another quantization matrix corresponding to the transform block of 8*8 pixels is held.
  • the quantization matrix determination unit 108 sequentially reads quantization matrixes to be coded from the quantization matrix holding unit 107. Then, the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to the predetermined quantization matrix and generates correspondence information indicating that the quantization matrix to be coded corresponds to the predetermined quantization matrix. In the present embodiment, the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to any one of a quantization matrix that has already been coded, a default quantization matrix shown in Fig. 5A, and a flat quantization matrix shown in Fig. 5B.
  • the quantization matrix determination unit 108 When it is determined that the quantization matrix to be coded corresponds to any one of the quantization matrixes, the quantization matrix determination unit 108 generates reference information indicating the quantization matrix to which the quantization matrix to be coded corresponds. The reference information is outputted to the quantization matrix header coding unit 109 along with the correspondence information. In this case, the quantization matrix coefficient coding unit 110 outputs nothing and does not operate.
  • the quantization matrix determination unit 108 outputs only the correspondence information to the quantization matrix header coding unit 109 and outputs the quantization matrix to be coded to the quantization matrix coefficient coding unit 110.
  • the correspondence information is set to 1, and if this is not the case, the correspondence information is set to 0.
  • the combination between the value and the condition is not limited to this.
  • Fig. 11 is a diagram showing an example of a relationship between the quantization matrix to be coded and the reference information according to the present embodiment.
  • quantization matrixes there are three types of quantization matrixes, that is, a first quantization matrix corresponding to quantization of Y component of an image inputted in a YCbCr color space, a second quantization matrix corresponding to quantization of Cb component, and a third quantization matrix corresponding to quantization of Cr component.
  • the quantization matrixes are not limited to these. More quantization matrixes may be defined according to the transform block size, the prediction method, and the combination of color spaces.
  • the quantization matrix shown in Fig. 5A is assumed to be the default 4*4 quantization matrix and the quantization matrix shown in Fig. 5B is assumed to be the flat 4*4 quantization matrix.
  • the quantization matrixes to be used are not limited to these.
  • the quantization matrix to be coded is the first quantization matrix (4*4 Y) and corresponds to the default quantization matrix 4*4, the reference information is set to 0.
  • the quantization matrix to be coded corresponds to the flat quantization matrix 4*4, the reference information is set to 1.
  • the correspondence between the quantization matrix to be coded and the flat quantization matrix 4*4 is flat information indicating that all the coefficients in the quantization matrix to be coded have the same value.
  • the quantization matrix to be coded is the second quantization matrix (4*4 Cb)
  • the reference information is set to 0, and if the quantization matrix to be coded corresponds to the first quantization matrix (4*4 Y) that has been already coded, the reference information is set to 1. If the quantization matrix to be coded corresponds to the flat quantization matrix 4*4, the reference information is set to 2. The same goes for the case where the quantization matrix to be coded is the third quantization matrix (4*4 Cr).
  • the quantization matrix header coding unit 109 codes the correspondence information inputted from the quantization matrix determination unit 108 and, if necessary, the reference information to generate the quantization matrix header code.
  • the quantization matrix to be coded corresponds to either one of the quantization matrixes or the quantization matrix that has already been coded, which are stored in the coding device in advance, both the correspondence information and the reference information are coded.
  • the quantization matrix to be coded corresponds to none of the above quantization matrixes, only the correspondence information is coded.
  • the coding method is not limited in particular, Huffman code, arithmetic code, and the like may be used.
  • the generated quantization matrix header code is outputted to the integrated coding unit 111.
  • the quantization matrix coefficient coding unit 110 codes the quantization matrix to be coded inputted from the quantization matrix determination unit 108 to generate the quantization matrix coefficient code.
  • the quantization matrix coefficient coding unit 110 operates.
  • the coding method in the present embodiment, methods such as coding each coefficient without change, coding a difference from the previous coefficient, DPCM, and coding a difference from another quantization matrix are used. However, the methods are not limited to these.
  • a method of coding only a representative value may be used.
  • the integrated coding unit 111 codes the header information necessary to code the image and integrates the inputted quantization matrix header code and quantization matrix coefficient code.
  • the quantization matrix determination unit 108, the quantization matrix header coding unit 109, and the quantization matrix coefficient coding unit 110 may function as a quantization matrix coding unit, which is one processing unit.
  • An image of one picture inputted from the terminal 101 is inputted into the block division unit 102 and divided into block units of 8*8 pixels.
  • the divided images are inputted into the prediction unit 103.
  • a prediction for each block unit is performed and prediction errors are generated.
  • the transform unit 104 divides the prediction errors generated in the prediction unit 103 into the transform block sizes, performs orthogonal transform, and generates orthogonal transform coefficients. Then, the transform unit 104 inputs the orthogonal transform coefficients into the quantization unit 105.
  • the prediction errors of the block unit of 8*8 pixels is divided into transform block units of 4*4 pixels and the orthogonal transform is performed.
  • the quantization unit 105 quantizes the orthogonal transform coefficients outputted from the transform unit 104 by using the quantization matrix stored in the quantization matrix holding unit 107 and generates quantization coefficients.
  • the generated quantization coefficient is inputted into the coefficient coding unit 106.
  • the coefficient coding unit 106 codes the quantization coefficient generated by the quantization unit 105 to generate quantization coefficient code data and outputs the quantization coefficient code data to the integrated coding unit 111.
  • the integrated coding unit 111 generates codes related to prediction and transform for each block unit, integrates the header code data, codes for each block unit, and the quantization coefficient code data generated by the coefficient coding unit 106 to generate a bit stream, and outputs the bit stream from the terminal 112.
  • Figs. 10A, 10B, and 10C show examples of the bit stream outputted in the first embodiment.
  • the sequence header includes code data of the quantization matrix, which includes header codes and coding results of each coefficient.
  • Fig. 10A is an example of the bit stream in the case in which the first to the third quantization matrixes are different from each other and the first to the third quantization matrixes are different from both the flat quantization matrix and the default quantization matrix.
  • the correspondence information "0" is coded in each of the first to the third quantization matrix header codes and coefficients of each quantization matrix are coded in each quantization matrix coefficient code.
  • the positions of coding are not limited to this. Of course, the coding may be performed in a picture header portion or other header portions.
  • Fig. 10B is an example of the bit stream in the case in which all of the first to the third quantization matrixes are the flat quantization matrix.
  • the correspondence information "1" and the reference information "1" that indicates the flat quantization matrix are coded in the first quantization matrix header code.
  • the correspondence information "1" and the reference information "2" that indicates the flat quantization matrix are coded in the second quantization matrix header code.
  • the correspondence information "1" and the reference information "2" that indicates the flat quantization matrix are coded.
  • the reference information is "1” or "2”
  • the decoding result of the bit stream is the same because the first and the second quantization matrixes to be referred to are also the flat quantization matrix.
  • Fig. 10C is an example of the bit stream in the case in which the first quantization matrix is different from both the flat quantization matrix and the default quantization matrix but the second and the third quantization matrixes are the same as the first quantization matrix.
  • the correspondence information "0" is coded in the first quantization matrix header code and coefficients of the first quantization matrix are coded in first quantization matrix coefficient code.
  • the correspondence information "1" and the reference information "1" that indicates reference to the first quantization matrix.
  • the correspondence information "1" and the reference information "1” that indicates reference to the second quantization matrix.
  • Fig. 6 is a flowchart showing image coding processing of the image coding device according to the first embodiment.
  • the quantization matrix holding unit 107 generates a quantization matrix.
  • the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to a predetermined quantization matrix and generates the correspondence information.
  • the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to any one of the quantization matrix that has already been coded, the default quantization matrix shown in Fig. 5A which is stored in the coding device in advance, and the flat quantization matrix shown in Fig. 5B which is stored in the coding device in advance.
  • the quantization matrix determination unit 108 When it is determined that the quantization matrix to be coded corresponds to any one of the quantization matrixes, the quantization matrix determination unit 108 generates the reference information indicating the quantization matrix to which the quantization matrix to be coded corresponds.
  • step S603 the quantization matrix header coding unit 109 codes the correspondence information and the reference information which are generated in step S602 to generate the quantization matrix header code.
  • step S604 the image coding device determines whether or not to code the coefficients of the quantization matrix to be coded on the basis of the correspondence information. When coding the coefficients of the quantization matrix to be coded, the process proceeds to step S605, and if this is not the case, the process proceeds to step S606.
  • step S605 the quantization matrix coefficient coding unit 110 codes the quantization matrix generated in step S601 to generate the quantization matrix coefficient code.
  • step S606 the image coding device determines whether or not all the quantization matrixes have been coded. If all the quantization matrixes have been coded, the process proceeds to step S607, and if not all the quantization matrixes have been coded, the process returns to step S601 to code the next quantization matrix.
  • step S607 the integrated coding unit 111 codes the header portion of the bit stream and outputs the header portion. In the present embodiment, the sequence header and the picture headers shown in the examples of Figs. 10A, 10B, and 10C are coded and outputted.
  • step S608 the block division unit 102 divides an input image of a picture unit into block units.
  • step S609 the prediction unit 103 performs prediction for each block unit and generates prediction errors.
  • step S610 the transform unit 610 divides the prediction errors generated in step S609 into the transform block sizes, performs orthogonal transform, and generates orthogonal transform coefficients.
  • step S611 the quantization unit 105 quantizes the orthogonal transform coefficient generated in step S610 by using the quantization matrix which is generated in step S601 and stored in the quantization matrix holding unit 107 and generates quantization coefficients.
  • step S612 the coefficient coding unit 106 codes the quantization coefficients generated in step S611 and generates quantization coefficient code data.
  • step S613 the image coding device determines whether or not coding of all the transform blocks in the block has been completed. If the coding has been completed, the process proceeds to step S614, and if the coding has not been completed, the process returns to step S610 to code the next transform block. In step S614, the image coding device determines whether or not coding of all the blocks has been completed. If the coding has been completed, the image coding device stops all operations and ends the process, and if the coding has not been completed, the process returns to step S608 to code the next block.
  • the block is set to 8*8 pixels and the transform block is set to 4*4 pixels, it is not limited to this.
  • the block size may be changed to 16*16 pixels, 32*32 pixels, and the like.
  • the shape of the block is not limited to a square shape, and the shape may be a rectangular shape such as 16*8 pixels.
  • the transform block size is a half the block size in both the vertical and horizontal directions, the transform block size may be the same as the block size or may be smaller than a half of the block size in both the vertical and horizontal directions.
  • Fig. 2 is s a block diagram showing a configuration of an image decoding device according to a second embodiment of the present invention. In the present embodiment, decoding of the bit stream generated in the first embodiment will be described.
  • reference numeral 201 denotes a terminal into which the coded bit stream is inputted.
  • Reference numeral 202 denotes a decoding/separation unit that decodes the header information of the inputted bit stream, separates a necessary code from the bit stream, and outputs the code to the next stage.
  • the decoding/separation unit 202 performs the reverse operation of the integrated coding unit 111 in Fig. 1.
  • Reference numeral 203 denotes a quantization matrix header decoding unit that decodes the quantization matrix header code separated from the header information of the bit stream and restores the correspondence information and the reference information.
  • Reference numeral 204 denotes a quantization matrix coefficient decoding unit that decodes the quantization matrix coefficient code separated from the bit stream and restores each coefficient in the quantization matrixes.
  • Reference numeral 205 denotes a quantization matrix reconstruction unit that reconstructs the quantization matrixes to be decoded from the obtained correspondence information, reference information, and coefficients of the quantization matrix.
  • Reference numeral 206 denotes a quantization matrix holding unit that stores the quantization matrixes obtained by the quantization matrix reconstruction unit 205.
  • the predetermined quantization matrix stored by the quantization matrix determination unit 108 in the first embodiment is held by the quantization matrix holding unit 206. However, it is not limited to this.
  • the predetermined quantization matrix may be stored in the quantization matrix reconstruction unit 205.
  • the quantization matrix header decoding unit 203, the quantization matrix coefficient decoding unit 204, and the quantization matrix reconstruction unit 205 may function as a quantization matrix decoding unit, which is one processing unit.
  • reference numeral 207 denotes a coefficient decoding unit 207 that decodes the quantization coefficient code from the quantization coefficient code data separated by the decoding/separation unit 202 and restores the quantization coefficients.
  • Reference numeral 208 denotes an inverse quantization unit that inverse-quantizes the quantization coefficients by using the quantization matrix stored in the quantization matrix holding unit 206 and obtains the orthogonal transform coefficients.
  • Reference numeral 209 denotes an inverse transform unit that performs inverse orthogonal transform, which is the inverse of the transform unit 104 in Fig. 1, and obtains the prediction errors.
  • Reference numeral 210 denotes a prediction reconstruction unit that restores the image of the block from the prediction errors and images that have been decoded.
  • the image decoding operation of the image decoding device will be described below.
  • a configuration is employed in which a moving image bit stream generated in the first embodiment is inputted for each picture.
  • a configuration in which a still image bit stream of one picture is inputted may be employed.
  • an intra prediction decoding process will be described in the present embodiment for ease of explanation, it is not limited to this and the present embodiment can be applied to an inter prediction decoding process.
  • a bit stream of one picture inputted from the terminal 201 is inputted into the decoding/separation unit 202 and the header information necessary to reproduce the image is decoded. Further, codes used in the subsequent stages are separated and outputted.
  • the quantization matrix header code included in the header information is outputted to the quantization matrix header decoding unit 203.
  • the sequence header and the picture headers shown in the examples of the bit streams shown in Figs. 10A, 10B, and 10C are inputted and decoded and a code is outputted.
  • the quantization matrix header decoding unit 203 first decodes the inputted quantization matrix header code and restores the correspondence information.
  • the correspondence information is "1" indicating that there is a matrix corresponding to the quantization matrix to be decoded
  • the reference information is further reproduced from the quantization matrix header code.
  • the restored reference information is outputted to the quantization matrix reconstruction unit 205.
  • the correspondence information is "0" indicating that there is no matrix corresponding to the quantization matrix to be decoded
  • information indicating that it is necessary to decode coefficients of the quantization matrix to be decoded is outputted to the decoding/separation unit 202.
  • the correspondence information is the information as described above. However, the correspondence information may have any form if the correspondence information has the same meaning as described above.
  • the decoding/separation unit 202 When the information indicating that it is necessary to decode coefficients of the quantization matrix to be decoded is inputted into the decoding/separation unit 202 from the quantization matrix header decoding unit 203, the decoding/separation unit 202 outputs quantization matrix coefficient code data to the quantization matrix coefficient decoding unit 204.
  • the quantization matrix coefficient decoding unit 204 decodes the inputted quantization matrix coefficient code data and restores each coefficient of the quantization matrix to be decoded.
  • the reproduced coefficients of the quantization matrix are outputted to the quantization matrix reconstruction unit 205.
  • the quantization matrix reconstruction unit 205 reconstructs the quantization matrix to be decoded from the reference information inputted from the quantization matrix header decoding unit 203 or the coefficients of the quantization matrix inputted from the quantization matrix coefficient decoding unit 204.
  • the quantization matrix reconstruction unit 205 reconstructs the quantization matrix by using the inputted coefficients and outputs the quantization matrix to the quantization matrix holding unit 206.
  • the quantization matrix reconstruction unit 205 reconstructs the quantization matrix to be decoded by reading the quantization matrix of the reference destination from the quantization matrix holding unit 206 on the basis of the reference information.
  • the quantization matrix holding unit 206 stores the inputted quantization matrix and outputs the quantization matrix to the quantization matrix reconstruction unit 205 and the inverse quantization unit 208 if necessary.
  • the quantization coefficient code data of the codes separated by the decoding/separation unit 202 is inputted into the coefficient decoding unit 207.
  • the coefficient decoding unit 207 decodes the quantization coefficient code data for each transform block, decodes the quantization coefficients, and outputs the quantization coefficients to the inverse quantization unit 208.
  • the quantization coefficients restored by the coefficient decoding unit 207 and the quantization matrix stored in the quantization matrix holding unit 206 are inputted into the inverse quantization unit 208.
  • the inverse quantization unit 208 performs inverse quantization by using the quantization matrix, restores the orthogonal transform coefficients, and outputs the orthogonal transform coefficients to the inverse transform unit 209.
  • the orthogonal transform coefficients are inputted into the inverse transform unit 209 and the inverse transform unit 209 performs inverse orthogonal transform, which is the inverse of the transform unit 104 in Fig. 1, restores the prediction errors, and outputs the prediction errors to the prediction reconstruction unit 210.
  • the prediction reconstruction unit 210 restores images of each block unit by performing prediction from peripheral pixel data that have been decoded into the inputted prediction errors and outputs the images of each block unit from the terminal 211.
  • Fig. 7 is a flowchart showing the image decoding processing of the image decoding device according to the second embodiment.
  • step S701 the decoding/separation unit 202 decodes the header information and separates the header information to output codes to the subsequent stages.
  • the sequence headers and the picture headers shown in the examples of the bit streams shown in Figs. 10A, 10B, and 10C are inputted and decoded and the subsequent codes are outputted to corresponding blocks.
  • the quantization matrix header decoding unit 203 first decodes the separated quantization matrix header code and restores the correspondence information.
  • the correspondence information is "1" indicating that there is a matrix corresponding to the quantization matrix to be decoded
  • the reference information is further reproduced from the quantization matrix header code.
  • the correspondence information is "0" indicating that there is no matrix corresponding to the quantization matrix to be decoded, no more operation is performed in this step.
  • step S703 the image decoding device determines whether or not to decode the coefficients of the quantization matrix to be decoded on the basis of the correspondence information generated in step S702.
  • the process proceeds to step S704, and if this is not the case, the process proceeds to step S705.
  • the quantization matrix coefficient decoding unit 204 decodes the quantization matrix coefficient code data and reproduces each coefficient of the quantization matrix to be decoded.
  • the quantization matrix reconstruction unit 205 reconstructs the quantization matrix to be decoded from the reference information restored in step S702 or the coefficients of the quantization matrix restored in step S704.
  • step S706 the image decoding device determines whether or not all the quantization matrixes have been decoded. If all the quantization matrixes have been decoded, the process proceeds to step S707, and if not all the quantization matrixes have been coded, the process returns to step S702 to decode the next quantization matrix.
  • step S707 the coefficient decoding unit 207 decodes the quantization coefficient code data separated from the bit stream for each transform block and restores the quantization coefficient.
  • step S708 the inverse quantization unit 208 inverse-quantizes the quantization coefficient reproduced in step S707 by using the quantization matrix reproduced in step S705 and restores the orthogonal transform coefficient.
  • step S709 the inverse transform unit 209 performs inverse orthogonal transform on the orthogonal transform coefficient restored in step S708 and restores the prediction error.
  • step S710 the image decoding device determines whether or not decoding of all the transform blocks in the block has been completed. If the decoding has been completed, the process proceeds to step S711, and if the decoding has not been completed, the process returns to step S707 to decode the next transform block.
  • the prediction reconstruction unit 210 performs prediction from peripheral pixel data that has been decoded and generates a decoded image of the block by adding the prediction result to the prediction error restored in step S709.
  • step S712 the image decoding device determines whether or not decoding of all the blocks has been completed. If the decoding has been completed, the image decoding device stops all operations and ends the process, and if the decoding has not been completed, the process returns to step S707 to decode the next block.
  • the size of the block, the size of the transform block, and the shape of the block are not limited to those described in the second embodiment. It is also possible to update the quantization matrix by including a plurality of quantization matrix code data in one sequence of bit stream.
  • the decoding/separation unit 202 detects the quantization matrix header code and the quantization matrix header decoding unit 203 reproduces the correspondence information and, if necessary, the reference information. Further, the quantization matrix coefficient decoding unit 204 restores the coefficients of the quantization matrix to be decoded according to the correspondence information. Next, the quantization matrix reconstruction unit 205 restores the quantization matrix to be decoded from the reference information or the coefficients of the quantization matrix.
  • a corresponding quantization matrix in the quantization matrix holding unit 206 is replaced by data of the restored quantization matrix.
  • all the quantization matrixes may be rewritten or a part of the quantization matrixes may be changed by determining the quantization matrixes to be rewritten.
  • the method in which the process is performed after code data of one picture is accumulated is described as an example, it is not limited to this.
  • an input method such as inputting block by block or inputting slice by slice may be used.
  • the slice includes a plurality of blocks.
  • data which is divided into packets with a fixed length may be used.
  • Fig. 3 is a block diagram showing an image coding device of the present embodiment.
  • components having the same functions as those in Fig. 1 of the first embodiment are denoted by the same reference numerals and the description thereof will be omitted.
  • reference numeral 303 denotes a prediction unit that performs prediction for each block of the blocks divided by the block division unit 102, determines a prediction method, calculates difference values according to the determined prediction method, and calculates prediction errors.
  • Reference numeral 321 denotes a transform control unit that determines whether or not to perform an orthogonal transform on the prediction errors generated by the prediction unit 303, outputs the prediction errors to the next stage, and outputs the determination result to the next stage as transform skip determination information.
  • reference numeral 304 denotes a transform unit that performs the orthogonal transform on the prediction errors of each block. The transform unit 304 performs the orthogonal transform on the basis of the size of an inputted block or on the basis of a small block obtained by dividing the inputted block and calculates orthogonal transform coefficients.
  • Reference numeral 322 denotes a bit depth adjustment unit that adjusts the bit depth of the prediction error in order to ensure consistency with quantization processing of the quantization unit 305 in the next stage.
  • the degree of the bit depth adjustment here is determined by the bit depth of the input image, the bit depth adjustment according to the orthogonal transform of the transform unit 304, the bit depth adjustment according to the quantization processing of the quantization unit 305, the coefficient values of the quantization matrix, and the like.
  • the bit depth adjustment is performed by left-bit-shifting the prediction error by a difference between a predetermined value "13" and the bit depth of the input image. For example, when the bit depth of the input image is 8 bits, the prediction error is left-bit-shifted by 5 bits.
  • the values used in the bit depth adjustment are not limited to those described above.
  • Reference numeral 305 denotes a quantization unit that quantizes the orthogonal transform coefficients generated by the transform unit 304 or the prediction errors where the bit depth is adjusted by the bit depth adjustment unit 322 by the quantization matrix stored in the quantization matrix holding unit 107.
  • Reference numeral 311 denotes an integrated coding unit that generates a code related to header information, prediction, and transform, forms a bit stream by integrating code data generated by each coding unit described above, and outputs the bit stream.
  • the integrated coding unit 311 is different from the integrated coding unit 111 in Fig. 1 in a point that the integrated coding unit 311 further codes the transform skip determination information to generate code data, forms a bit stream, and outputs the bit stream.
  • the prediction unit 303 first, a prediction for each block unit is performed and prediction errors are generated. The generated prediction errors are outputted to the transform control unit 321.
  • the transform control unit 321 determines whether or not to perform the orthogonal transform on the inputted prediction errors. When performing the orthogonal transform, the transform control unit 321 outputs the prediction errors to the transform unit 304, and when not performing the orthogonal transform, the transform control unit 321 outputs the prediction errors to the bit depth adjustment unit 322.
  • the method for determining whether or not to perform the orthogonal transform is not limited in particular, whether or not to perform the orthogonal transform may be determined from the characteristics of the image, the magnitude of the transform coefficients after the orthogonal transform, and the like.
  • the transform control unit 321 outputs the determined determination result to the integrated coding unit 311 as the transform skip determination information.
  • the transform unit 304 performs the orthogonal transform on the prediction errors inputted from the transform control unit 321 for each transform block and generates orthogonal transform coefficients.
  • the bit depth adjustment unit 322 adjusts the bit depth of the prediction errors inputted from the transform control unit 321 for each transform block and generates the prediction errors where the bit depth is adjusted.
  • the quantization unit 305 quantizes the orthogonal transform coefficients outputted from the transform unit 304 or the prediction errors which are outputted from the bit depth adjustment unit 322 and where the bit depth is adjusted by using the quantization matrix stored in the quantization matrix holding unit 107 and generates quantization coefficients.
  • the generated quantization coefficients are inputted into the coefficient coding unit 106.
  • the integrated coding unit 311 codes the header information necessary to code the image and integrates the inputted quantization matrix header code and quantization matrix coefficient code.
  • the integrated coding unit 311 codes the transform skip determination information inputted from the transform control unit 321 in addition to the header information coded by the integrated coding unit 111 in Fig. 1.
  • Fig. 8 is a flowchart showing the image coding processing of the image coding device according to the third embodiment.
  • sections having the same functions as those in Fig. 6 of the first embodiment are denoted by the same reference numerals and the description thereof will be omitted.
  • step S820 the transform control unit 321 determines whether or not to perform the orthogonal transform on the prediction errors generated in step S609 and generates the transform skip determination information.
  • step S821 if it is determined to perform the orthogonal transform on the basis of the transform skip determination information, the process proceeds to step S610, and if it is determined not to perform the orthogonal transform, the process proceeds to step S822.
  • step S822 the bit depth adjustment unit 322 adjusts the bit depth of the prediction errors generated in step S609 for each transform block and generates the prediction errors where the bit depth is adjusted.
  • step S811 the quantization unit 305 quantizes the orthogonal transform coefficients generated in step S610 or the prediction errors which are generated in step S822 and where the bit depth is adjusted by using the quantization matrix generated in step S601 and generates quantization coefficients.
  • step S823 the integrated coding unit 311 codes the transform skip determination information generated in step S821.
  • the transform skip determination information is coded for each transform block
  • the transform skip determination information is not limited to be coded for each transform block.
  • the transform skip determination information may be coded for each block or the amount of code may be reduced by using the transform skip determination information common to each color component.
  • the coding method is not limited in particular, Huffman code, arithmetic code, and the like may be used.
  • Fig. 4 is a block diagram showing an image decoding device of the present embodiment.
  • components having the same functions as those in Fig. 2 of the second embodiment are denoted by the same reference numerals and the description thereof will be omitted.
  • decoding of the bit stream generated in the third embodiment will be described.
  • Reference numeral 402 denotes a decoding/separation unit that decodes the header information of the inputted bit stream, separates a necessary code from the bit stream, and outputs the code to the next stage.
  • the decoding/separation unit 402 performs the inverse operation of the integrated coding unit 311 in Fig. 3.
  • the decoding/separation unit 402 is different from the decoding/separation unit 202 in Fig. 2 in a point that the decoding/separation unit 402 further decodes/reproduces the transform skip determination information and outputs the transform skip determination information to the next stage.
  • Reference numeral 408 denotes an inverse quantization unit that inverse-quantizes the quantization coefficients by using the quantization matrix stored in the quantization matrix holding unit 206 and reproduces an inverse quantization coefficients.
  • the inverse quantization coefficients in the present embodiment correspond to the orthogonal transform coefficients or the prediction errors where the bit depth is adjusted in the third embodiment.
  • Reference numeral 421 denotes an inverse transform control unit that determines whether or not to perform an orthogonal transform on the basis of the transform skip determination information inputted from the decoding/separation unit 402 and outputs the inverse quantization coefficients to the next stage.
  • Reference numeral 409 denotes a inverse transform unit that performs inverse orthogonal transform, which is the inverse of the transform unit 304 in Fig. 3, and reproduces the prediction errors.
  • Reference numeral 422 denotes a bit depth inverse adjustment unit that performs bit depth adjustment, which is the inverse of the bit depth adjustment unit 322 in Fig. 3, and reproduces the prediction errors.
  • the degree of the bit depth inverse adjustment here is determined by the bit depth of the output image, the bit depth adjustment according to the inverse orthogonal transform of the inverse transform unit 409, the bit depth adjustment according to the quantization processing of the inverse quantization unit 408, the coefficient values of the quantization matrix, and the like.
  • the bit depth inverse adjustment is performed by right-bit-shifting the coefficients by a difference between "13" and the bit depth of the output image.
  • the coefficients are right-bit-shifted by 5 bits.
  • Reference numeral 410 denotes a prediction reconstruction unit that reproduces the image of the block from the prediction error and images that have been decoded.
  • a bit stream of one picture inputted from the terminal 201 is inputted into the decoding/separation unit 402 and the header information necessary to reproduce the image is decoded. Further, codes used in the subsequent stages are separated and appropriately outputted.
  • the quantization matrix header code included in the header information is outputted to the quantization matrix header decoding unit 203.
  • the decoding/separation unit 402 outputs quantization matrix coefficient code data to the quantization matrix coefficient decoding unit 204.
  • the decoding/separation unit 402 decodes/reproduces the transform skip determination information that indicates whether or not to perform the inverse orthogonal transform for each transform block from the bit stream and outputs the transform skip determination information to the inverse transform control unit 421.
  • the quantization coefficients reproduced by the coefficient decoding unit 207 and the quantization matrix stored in the quantization matrix holding unit 206 are inputted into the inverse quantization unit 408. Then, the inverse quantization unit 408 performs inverse quantization by using the quantization matrix, reproduces the inverse quantization coefficients, and outputs the inverse quantization coefficient to the inverse transform control unit 421.
  • the inverse transform control unit 421 determines whether or not to perform the inverse orthogonal transform on the inputted inverse quantization coefficients on the basis of the transform skip determination information inputted from the decoding/separation unit 402.
  • the inverse transform control unit 421 When performing the inverse orthogonal transform, the inverse transform control unit 421 outputs the inverse quantization coefficients to the inverse transform unit 409, and when not performing the inverse orthogonal transform, the inverse transform control unit 421 outputs the inverse quantization coefficients to the bit depth inverse adjustment unit 422.
  • the inverse transform unit 209 performs the inverse orthogonal transform, which is the inverse of the transform unit 304 in Fig. 3, on the orthogonal transform coefficients which are the inputted inverse quantization coefficients, reproduces the prediction errors, and outputs the prediction errors to the prediction reconstruction unit 410.
  • the bit depth inverse adjustment unit 422 inversely adjusts the bit depth of the prediction error where the bit depth is adjusted, which is the inverse quantization coefficients inputted from the inverse transform control unit 421, for each transform block, reproduces the prediction errors, and outputs the prediction errors to the prediction reconstruction unit 410.
  • the prediction reconstruction unit 410 reproduces images of each block unit by performing prediction from peripheral pixel data that have been decoded into the inputted prediction errors and outputs the images of each block unit from the terminal 211.
  • Fig. 9 is a flowchart showing the image decoding processing of the image decoding device according to the fourth embodiment. Sections having the same functions as those in Fig. 7 of the second embodiment are denoted by the same reference numerals and the description thereof will be omitted.
  • step S921 the decoding/separation unit 402 decodes/reproduces the transform skip determination information that indicates whether or not to perform the inverse orthogonal transform for each transform block from the bit stream.
  • step S922 determination based on the transform skip determination information generated in step S921 is performed.
  • the process proceeds to step S709, and if this is not the case, the process proceeds to step S923.
  • step S923 the bit depth inverse adjustment unit 422 inversely adjusts the bit depth of the inverse quantization coefficients generated in step S708 for each transform block and reproduces the prediction errors.
  • the header portion may include a flag and whether or not the decoding device performs the transform skip processing may be switched by the flag.
  • a configuration may be employed in which, only when the transform skip processing is performed, the flat quantization matrix is stored and referred to, and if this is not the case, the flat quantization matrix is not referred to.
  • the processing units shown in Figs. 1, 2, 3, and 4 are configured by hardware in the description of the embodiments. However, the processing performed by the processing units shown in Figs. 1, 2, 3, and 4 may be performed by a computer program.
  • Fig. 12 is a block diagram showing a configuration example of a computer which can be applied to the image coding device and the image decoding device according the embodiments.
  • a CPU 1201 controls the entire computer by using a computer program and data stored in a RAM 1202 and a ROM 1203 and performs each processing described above as the image processing device according to the embodiments performs the processing.
  • the CPU 1201 functions as the processing units shown in Figs. 1, 2, 3, and 4.
  • the RAM 1202 has an area for temporarily storing a computer program and data loaded from an external storage device 1206 and data acquired from outside through an I/F (interface) 1207. Further, the RAM 1202 has a work area used when the CPU 1201 performs various processes. Specifically, the RAM 1202 may be assigned as a picture memory and the RAM 1202 can provide other various areas properly.
  • the ROM 1203 stores setting data and a boot program of the computer.
  • An operation unit 1204 is formed by a keyboard, a mouse, and the like. When a user of the computer operates the operation unit 1204, various instructions can be inputted into the CPU 1201.
  • An output unit 1205 outputs a processing result of the CPU 1201.
  • the output unit 1205 can be configured by a display device such as a liquid crystal display to display a processing result.
  • the external storage device 1206 is a large capacity information storage device, a typical example of which is a hard disk drive device.
  • the external storage device 1206 stores an OS (operating system) and a computer program for causing the CPU 1201 to implement the functions of each unit shown in Figs. 1, 2, 3, and 4. Further, the external storage device 1206 may store images to be processed.
  • the computer program and the data stored in the external storage device 1206 are arbitrarily loaded to the RAM 1202 according to control of the CPU 1201 and processed by the CPU 1201.
  • a network such as a LAN and the Internet and other devices such as a projector and a display device can be connected to the I/F 1207.
  • the computer can receive and transmit various information through the I/F 1207.
  • Reference numeral 1208 denotes a bus that connects each unit described above.
  • the CPU 1201 mainly controls the operations described in the above flowcharts.
  • aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment(s), and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment(s).
  • the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium).

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An inputted image is divided into a plurality of blocks, prediction errors are generated from pixels to be referred to, an orthogonal transform is performed on the prediction errors, transform coefficients are generated, quantization coefficients are generated by quantizing the generated transform coefficients by using a quantization matrix, the quantization coefficient is coded, the quantization matrix is coded, the quantization matrix is coded when the quantization matrix is not the same as a predetermined quantization matrix, and correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix is coded when the quantization matrix is the same as the predetermined quantization matrix.

Description

[Title established by the ISA under Rule 37.2] CODING METHOD AND DECODING MEHTOD OF A QUANTIZATION MATRIX
The present invention relates to an image coding device, an image coding method, a recording medium, an image decoding device, an image decoding method, and a recording medium, in particular to a coding method and a decoding method of a quantization matrix.
As a moving picture coding method, H.264/MPEG-4 AVC (hereinafter referred to as "H.264") is known (ITU-T H.264 (03/2010) Advanced video coding for generic audiovisual services: NPL 1). In H.264, each coefficient in a quantization matrix can be changed to any value by coding scaling_list information. According to NPL 1, each coefficient in a quantization matrix can be any value by adding a difference value delta_scale to a previous coefficient.
In recent years, an activity for international standardization of a highly efficient coding method used as a successor of H.264 is started. JCT-VC (Joint Collaborative Team on Video Coding) is established between ISO/IEC and ITU-T. In the JCT-VC, the new coding method is being standardized as HEVC (High Efficiency Video Coding) (hereinafter referred to as "HEVC").
In this method, to improve coding efficiency, other orthogonal transform methods such as discrete sine transform are studied in addition to conventional orthogonal transform methods based on discrete cosine transform. Further, to improve coding efficiency of not only a natural image captured by a camera or the like, but also an artificial image such as a PC screen and a game, a method such as a transform skip technique that does not perform any orthogonal transform is also studied. (JCT-VC Contribution JCTVC-I1003.doc the Internet < http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/ >: NPL 2)
ITU-T H.264 (03/2010) Advanced video coding for generic audiovisual services JCT-VC Contribution JCTVC-I1003.doc, the Internet < http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/ >
Generally, in a compression of an image, to improve subjective image quality, regarding transform coefficients after performing an orthogonal transform, coefficients corresponding to low frequency components are often quantized with a smaller value and coefficients corresponding to high frequency components are often quantized with a greater value. In this case, in general, a frequency-component-weighted quantization is performed by using a quantization matrix as shown in Fig. 5A. In this quantization matrix 500, coefficients corresponding to low frequency components are set to smaller values and coefficients corresponding to high frequency components are set to greater values.
On the other hand, in the HEVC, when the transform skip technique described above is used in particular, the orthogonal transform is not performed, so that all the quantization target coefficients have the same frequency components. Therefore, when the transform skip technique is used, it is not preferable to perform the weighted quantization described above and it is necessary to perform quantization processing by using a flat quantization matrix 501 in which all the coefficients have the same value as shown in Fig. 5B. Therefore, it is desirable that information of the flat quantization matrix 501 can be coded by a smaller amount of code. However, in particular in the HEVC described above, there is no mechanism to efficiently code the information of the flat quantization matrix 501. As a result, the amount of code increases in an undesirable manner.
Therefore, the present invention is made to solve the above problem and the present invention realizes highly efficient quantization matrix coding and decoding by introducing a method of efficiently coding a flat quantization matrix by a smaller amount of code.
To solve the above problem, an image coding device of the present invention has the following configuration. Specifically, the image coding device includes a prediction unit that divides an inputted image into a plurality of blocks and generates prediction errors from pixels to be referred to, a transform unit that performs an orthogonal transform on the prediction errors and generates transform coefficients, a quantization unit that generates quantization coefficients by quantizing the generated transform coefficients by using quantization matrix, a coefficient coding unit that codes the quantization coefficients, a quantization matrix coding unit that codes the quantization matrix, and a quantization matrix coding unit that codes the quantization matrix when the quantization matrix is not the same as a predetermined quantization matrix and codes correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix.
Further, an image decoding device of the present invention has the following configuration. Specifically, the image decoding device includes a decoding/separation unit that decodes header information of an inputted bit stream and separates necessary codes, a coefficient decoding unit that decodes quantization coefficients, a quantization matrix decoding unit that decodes a quantization matrix used to inverse-quantize the quantization coefficients when the quantization matrix is not the same as a predetermined quantization matrix and decodes correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix, a inverse quantization unit that generates transform coefficients by inverse-quantizing the decoded quantization coefficient by using the decoded quantization matrix or the correspondence information, and a reconstruction unit that restores an image from prediction errors obtained by inverse-transforming the transform coefficients.
By the present invention, it is possible to reduce the amount of code required to code a quantization matrix and implement highly efficient coding and decoding.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Fig. 1 is a block diagram showing a configuration of an image coding device according to a first embodiment. Fig. 2 is a block diagram showing a configuration of an image decoding device according to a second embodiment. Fig. 3 is a block diagram showing a configuration of an image coding device according to a third embodiment. Fig. 4 is a block diagram showing a configuration of an image decoding device according to a fourth embodiment. Fig. 5A is a diagram showing an example of a quantization matrix. Fig. 5B is a diagram showing an example of a quantization matrix. Fig. 6 is a flowchart showing image coding processing of the image coding device according to the first embodiment. Fig. 7 is a flowchart showing image decoding processing of the image decoding device according to the second embodiment. Fig. 8 is a flowchart showing image coding processing of the image coding device according to the third embodiment. Fig. 9 is a flowchart showing image decoding processing of the image decoding device according to the fourth embodiment. Fig. 10A is a diagram showing an example of a bit stream. Fig. 10B is a diagram showing an example of a bit stream. Fig. 10C is a diagram showing an example of a bit stream. Fig. 11 is a diagram showing an example of a relationship between a quantization matrix to be coded and quantization matrix reference information. Fig. 12 is a block diagram showing a configuration example of a computer which can be applied to the image coding device and the image decoding device of the present invention.
Hereinafter, the present invention will be described in detail on the basis of embodiments and with reference to the accompanying drawings. The configurations described in the embodiments below are only examples and the present invention is not limited to the configurations shown in the drawings.
First Embodiment
Hereinafter, an embodiment of the present invention will be described with reference to the drawings. Fig. 1 is a block diagram showing an image coding device of the present embodiment.
In Fig. 1, reference numeral 101 denotes a terminal into which image data (hereinafter referred to as "image") is inputted. Reference numeral 102 denotes a block division unit that divides the inputted image into a plurality of blocks. Reference numeral 103 denotes a prediction unit that performs prediction for each block of the blocks divided by the block division unit 102, determines a prediction method, calculates difference values according to the determined prediction method, and calculates prediction errors. The prediction unit 103 performs intra prediction or motion compensating prediction. Generally, the intra prediction is realized by selecting an optimal reference method from a plurality of reference methods to calculate prediction values from peripheral pixel data.
Reference numeral 104 denotes a transform unit that performs orthogonal transform on the prediction errors of each block. The transform unit 104 performs the orthogonal transform on the basis of the size of an inputted block or on the basis of the size of a divided block and calculates orthogonal transform coefficients. In the description below, the block on which the orthogonal transform is performed is referred to as a "transform block". Although the orthogonal transform is not limited in particular, the discrete cosine transform, the Hadamard transform, and the like may be used. In the present embodiment, for purposes of illustration, the prediction error of a block unit of 8*8 pixels is divided in half vertically and horizontally and the orthogonal transform is performed on each transform block unit of 4*4 pixels. However, the size and the shape of the transform block are not limited to those described above. The orthogonal transform may be performed by using a transform block having the same size as the block or the orthogonal transform may be performed by using a transform block obtained by dividing the block into block units smaller than the block units obtained by dividing the block in half vertically and horizontally.
Reference numeral 107 denotes a quantization matrix holding unit that generates and stores quantization matrixes. The generation method of the quantization matrixes to be stored is not limited. A user may input the quantization matrixes. The quantization matrixes may be calculated from the characteristics of the input image. Quantization matrixes made from initial values in advance may be used. In the present embodiment, two-dimensional quantization matrixes corresponding to a transform block of 4*4 pixels as shown in Figs. 5A and 5B is generated and stored.
Reference numeral 105 denotes a quantization unit that quantizes the orthogonal transform coefficients by the quantization matrix stored in the quantization matrix holding unit 107. Quantization coefficients will be obtained by this quantization. Reference numeral 106 denotes a coefficient coding unit that codes the quantization coefficients obtained as described above and generates quantization coefficient code data. Although the coding method is not limited in particular, Huffman code, arithmetic code, and the like may be used. Reference numeral 108 denotes a quantization matrix determination unit that determines whether or not the quantization matrix stored in the quantization matrix holding unit 107 corresponds to a predetermined quantization matrix. More specifically, the quantization matrix determination unit 107 determines whether or not the quantization matrix to be coded is a quantization matrix that has already been coded, a predetermined quantization matrix, or a flat quantization matrix in which all the coefficients have the same value. It is assumed that the predetermined quantization matrix is stored in the quantization matrix holding unit 107. However, it is not limited to this. For example, the predetermined quantization matrix may be stored in the quantization matrix determination unit 108.
Reference numeral 109 denotes a quantization matrix header coding unit that generates a quantization matrix header code by coding information that indicates the determination of the quantization matrix determination unit 108 and other information related to the quantization matrix as a header. Reference numeral 110 denotes a quantization matrix coefficient coding unit that generates a quantization matrix coefficient code by coding each coefficient in the quantization matrix to be coded.
Reference numeral 111 denotes an integrated coding unit that generates a code related to header information, prediction, and transform, forms a bit stream by integrating code data generated by each coding unit described above, and outputs the bit stream. Specifically, the integrated coding unit 111 integrates the quantization coefficient code data generated by the coefficient coding unit 106, the quantization matrix header code generated by the quantization matrix header coding unit 109, and the quantization matrix coefficient code generated by the quantization matrix coefficient coding unit 110. Here, the code related to prediction and transform is, for example, a code of the selected prediction method, a code of a division mode of the transform block, and the like. Reference numeral 112 denotes a terminal from which the bit stream generated by the integrated coding unit 111 is outputted.
An image coding operation in the image coding device will be described below. In the present embodiment, a configuration in which moving image data is inputted for each picture is employed. However, a configuration in which still image data of one picture is inputted may be employed. Although only an intra prediction coding process will be described in the present embodiment for ease of explanation, it is not limited to this and the present embodiment can be applied to an inter prediction coding process. Although, in the description of the present embodiment, an image is divided into blocks of 8*8 pixels by the block division unit 102 for explanation, it is not limited to this.
Coding of Quantization Matrix Coefficient
First, the quantization matrix holding unit 107 generates quantization matrixes. The quantization matrix is determined according to a transform block size which is a size of the orthogonal transform used for the coding process. The method for determining the quantization matrix coefficients is not limited in particular. For example, predetermined initial values may be used as the quantization matrix coefficients or the quantization matrix coefficients may be set individually. Or, the quantization matrix coefficients may be set according to the characteristics of the image.
The quantization matrix generated in this way is held by the quantization matrix holding unit 107. Figs. 5A and 5B are examples of the quantization matrix corresponding to the transform block of 4*4 pixels. For ease of explanation, the quantization matrix has a configuration of 16 pixels corresponding to the transform block of 4*4 pixels and each square in a thick-bordered box represents a coefficient. In the present embodiment, the quantization matrixes shown in Figs. 5A and 5B are held in a two-dimensional shape. However, the coefficients in the quantization matrix are not limited to this. For example, when a transform block size of 8*8 pixels is used in addition to the present embodiment, another quantization matrix corresponding to the transform block of 8*8 pixels is held.
The quantization matrix determination unit 108 sequentially reads quantization matrixes to be coded from the quantization matrix holding unit 107. Then, the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to the predetermined quantization matrix and generates correspondence information indicating that the quantization matrix to be coded corresponds to the predetermined quantization matrix. In the present embodiment, the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to any one of a quantization matrix that has already been coded, a default quantization matrix shown in Fig. 5A, and a flat quantization matrix shown in Fig. 5B. It is assumed that the quantization matrix that has already been coded is stored in the quantization matrix holding unit 107 and the quantization matrixes shown in Figs. 5A and 5B are stored in the quantization matrix holding unit 107 in advance. When it is determined that the quantization matrix to be coded corresponds to any one of the quantization matrixes, the quantization matrix determination unit 108 generates reference information indicating the quantization matrix to which the quantization matrix to be coded corresponds. The reference information is outputted to the quantization matrix header coding unit 109 along with the correspondence information. In this case, the quantization matrix coefficient coding unit 110 outputs nothing and does not operate. On the other hand, when the quantization matrix to be coded corresponds to none of the quantization matrixes, the quantization matrix determination unit 108 outputs only the correspondence information to the quantization matrix header coding unit 109 and outputs the quantization matrix to be coded to the quantization matrix coefficient coding unit 110. In the present embodiment, when there is a quantization matrix that corresponds to the quantization matrix to be coded in the predetermined quantization matrixes, the correspondence information is set to 1, and if this is not the case, the correspondence information is set to 0. However, the combination between the value and the condition is not limited to this.
Fig. 11 is a diagram showing an example of a relationship between the quantization matrix to be coded and the reference information according to the present embodiment. In the present embodiment, there are three types of quantization matrixes, that is, a first quantization matrix corresponding to quantization of Y component of an image inputted in a YCbCr color space, a second quantization matrix corresponding to quantization of Cb component, and a third quantization matrix corresponding to quantization of Cr component. However, the quantization matrixes are not limited to these. More quantization matrixes may be defined according to the transform block size, the prediction method, and the combination of color spaces. In the present embodiment, the quantization matrix shown in Fig. 5A is assumed to be the default 4*4 quantization matrix and the quantization matrix shown in Fig. 5B is assumed to be the flat 4*4 quantization matrix. However, the quantization matrixes to be used are not limited to these.
For example, if the quantization matrix to be coded is the first quantization matrix (4*4 Y) and corresponds to the default quantization matrix 4*4, the reference information is set to 0. On the other hand, if the quantization matrix to be coded corresponds to the flat quantization matrix 4*4, the reference information is set to 1. The correspondence between the quantization matrix to be coded and the flat quantization matrix 4*4 is flat information indicating that all the coefficients in the quantization matrix to be coded have the same value. Similarly, when the quantization matrix to be coded is the second quantization matrix (4*4 Cb), if the quantization matrix to be coded corresponds to the default quantization matrix 4*4, the reference information is set to 0, and if the quantization matrix to be coded corresponds to the first quantization matrix (4*4 Y) that has been already coded, the reference information is set to 1. If the quantization matrix to be coded corresponds to the flat quantization matrix 4*4, the reference information is set to 2. The same goes for the case where the quantization matrix to be coded is the third quantization matrix (4*4 Cr).
The quantization matrix header coding unit 109 codes the correspondence information inputted from the quantization matrix determination unit 108 and, if necessary, the reference information to generate the quantization matrix header code. In the present embodiment, when the quantization matrix to be coded corresponds to either one of the quantization matrixes or the quantization matrix that has already been coded, which are stored in the coding device in advance, both the correspondence information and the reference information are coded. On the other hand, when the quantization matrix to be coded corresponds to none of the above quantization matrixes, only the correspondence information is coded. Although the coding method is not limited in particular, Huffman code, arithmetic code, and the like may be used. The generated quantization matrix header code is outputted to the integrated coding unit 111.
The quantization matrix coefficient coding unit 110 codes the quantization matrix to be coded inputted from the quantization matrix determination unit 108 to generate the quantization matrix coefficient code. In the present embodiment, only when the quantization matrix to be coded does not correspond to the quantization matrix which is stored in the coding device in advance or the quantization matrix that has already been coded, the quantization matrix coefficient coding unit 110 operates. As the coding method, in the present embodiment, methods such as coding each coefficient without change, coding a difference from the previous coefficient, DPCM, and coding a difference from another quantization matrix are used. However, the methods are not limited to these. When coding a flat quantization matrix that is not stored in the coding device in advance, a method of coding only a representative value may be used. In addition, when the same value continues, it is possible to reduce the amount of code of the quantization matrix by inserting a code that discontinues the coding.
The integrated coding unit 111 codes the header information necessary to code the image and integrates the inputted quantization matrix header code and quantization matrix coefficient code.
The quantization matrix determination unit 108, the quantization matrix header coding unit 109, and the quantization matrix coefficient coding unit 110 may function as a quantization matrix coding unit, which is one processing unit.
Coding of Image
An image of one picture inputted from the terminal 101 is inputted into the block division unit 102 and divided into block units of 8*8 pixels. The divided images are inputted into the prediction unit 103. In the prediction unit 103, a prediction for each block unit is performed and prediction errors are generated. The transform unit 104 divides the prediction errors generated in the prediction unit 103 into the transform block sizes, performs orthogonal transform, and generates orthogonal transform coefficients. Then, the transform unit 104 inputs the orthogonal transform coefficients into the quantization unit 105. In the present embodiment, the prediction errors of the block unit of 8*8 pixels is divided into transform block units of 4*4 pixels and the orthogonal transform is performed. The quantization unit 105 quantizes the orthogonal transform coefficients outputted from the transform unit 104 by using the quantization matrix stored in the quantization matrix holding unit 107 and generates quantization coefficients. The generated quantization coefficient is inputted into the coefficient coding unit 106. The coefficient coding unit 106 codes the quantization coefficient generated by the quantization unit 105 to generate quantization coefficient code data and outputs the quantization coefficient code data to the integrated coding unit 111. The integrated coding unit 111 generates codes related to prediction and transform for each block unit, integrates the header code data, codes for each block unit, and the quantization coefficient code data generated by the coefficient coding unit 106 to generate a bit stream, and outputs the bit stream from the terminal 112.
Figs. 10A, 10B, and 10C show examples of the bit stream outputted in the first embodiment. The sequence header includes code data of the quantization matrix, which includes header codes and coding results of each coefficient. Fig. 10A is an example of the bit stream in the case in which the first to the third quantization matrixes are different from each other and the first to the third quantization matrixes are different from both the flat quantization matrix and the default quantization matrix. Specifically, the correspondence information "0" is coded in each of the first to the third quantization matrix header codes and coefficients of each quantization matrix are coded in each quantization matrix coefficient code. However, the positions of coding are not limited to this. Of course, the coding may be performed in a picture header portion or other header portions.
Fig. 10B is an example of the bit stream in the case in which all of the first to the third quantization matrixes are the flat quantization matrix. In this case, in the first quantization matrix header code, the correspondence information "1" and the reference information "1" that indicates the flat quantization matrix are coded. In the second quantization matrix header code, the correspondence information "1" and the reference information "2" that indicates the flat quantization matrix are coded. In this case, even if the reference information is "1", the decoding result of the bit stream is the same because the first quantization matrix to be referred to is also the flat quantization matrix. In the same manner, in the third quantization matrix header code, the correspondence information "1" and the reference information "2" that indicates the flat quantization matrix are coded. In this case, even if the reference information is "1" or "2", the decoding result of the bit stream is the same because the first and the second quantization matrixes to be referred to are also the flat quantization matrix.
Fig. 10C is an example of the bit stream in the case in which the first quantization matrix is different from both the flat quantization matrix and the default quantization matrix but the second and the third quantization matrixes are the same as the first quantization matrix. In this case, the correspondence information "0" is coded in the first quantization matrix header code and coefficients of the first quantization matrix are coded in first quantization matrix coefficient code. In the second quantization matrix header code, the correspondence information "1" and the reference information "1" that indicates reference to the first quantization matrix. Similarly, in the third quantization matrix header code, the correspondence information "1" and the reference information "1" that indicates reference to the second quantization matrix.
Fig. 6 is a flowchart showing image coding processing of the image coding device according to the first embodiment. First, in step S601, the quantization matrix holding unit 107 generates a quantization matrix. In step S602, the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to a predetermined quantization matrix and generates the correspondence information. In the present embodiment, the quantization matrix determination unit 108 determines whether or not the quantization matrix to be coded corresponds to any one of the quantization matrix that has already been coded, the default quantization matrix shown in Fig. 5A which is stored in the coding device in advance, and the flat quantization matrix shown in Fig. 5B which is stored in the coding device in advance. When it is determined that the quantization matrix to be coded corresponds to any one of the quantization matrixes, the quantization matrix determination unit 108 generates the reference information indicating the quantization matrix to which the quantization matrix to be coded corresponds.
In step S603, the quantization matrix header coding unit 109 codes the correspondence information and the reference information which are generated in step S602 to generate the quantization matrix header code. In step S604, the image coding device determines whether or not to code the coefficients of the quantization matrix to be coded on the basis of the correspondence information. When coding the coefficients of the quantization matrix to be coded, the process proceeds to step S605, and if this is not the case, the process proceeds to step S606.
In step S605, the quantization matrix coefficient coding unit 110 codes the quantization matrix generated in step S601 to generate the quantization matrix coefficient code. In step S606, the image coding device determines whether or not all the quantization matrixes have been coded. If all the quantization matrixes have been coded, the process proceeds to step S607, and if not all the quantization matrixes have been coded, the process returns to step S601 to code the next quantization matrix. In step S607, the integrated coding unit 111 codes the header portion of the bit stream and outputs the header portion. In the present embodiment, the sequence header and the picture headers shown in the examples of Figs. 10A, 10B, and 10C are coded and outputted.
In step S608, the block division unit 102 divides an input image of a picture unit into block units. In step S609, the prediction unit 103 performs prediction for each block unit and generates prediction errors. In step S610, the transform unit 610 divides the prediction errors generated in step S609 into the transform block sizes, performs orthogonal transform, and generates orthogonal transform coefficients. In step S611, the quantization unit 105 quantizes the orthogonal transform coefficient generated in step S610 by using the quantization matrix which is generated in step S601 and stored in the quantization matrix holding unit 107 and generates quantization coefficients. In step S612, the coefficient coding unit 106 codes the quantization coefficients generated in step S611 and generates quantization coefficient code data. In step S613, the image coding device determines whether or not coding of all the transform blocks in the block has been completed. If the coding has been completed, the process proceeds to step S614, and if the coding has not been completed, the process returns to step S610 to code the next transform block. In step S614, the image coding device determines whether or not coding of all the blocks has been completed. If the coding has been completed, the image coding device stops all operations and ends the process, and if the coding has not been completed, the process returns to step S608 to code the next block.
By the above configuration and operation, in particular, by steps from S602 to S604, when a flat quantization matrix is coded, it is not necessary to transmit a redundant code if the flat matrix corresponds to another quantization matrix, so that it is possible to form a bit stream whose amount of code is reduced. Thereby, it is possible to generate a bit stream by the amount of code smaller than that when the coefficients of a flat quantization matrix are coded one by one.
Although, in the present embodiment, a picture for which only the intra prediction is used is described as an example, it is obvious that the present embodiment can be used for a picture for which the inter prediction is used. Further, in the present embodiment, the block is set to 8*8 pixels and the transform block is set to 4*4 pixels, it is not limited to this. For example, the block size may be changed to 16*16 pixels, 32*32 pixels, and the like. Further, the shape of the block is not limited to a square shape, and the shape may be a rectangular shape such as 16*8 pixels. Furthermore, although the transform block size is a half the block size in both the vertical and horizontal directions, the transform block size may be the same as the block size or may be smaller than a half of the block size in both the vertical and horizontal directions.
Second Embodiment
Fig. 2 is s a block diagram showing a configuration of an image decoding device according to a second embodiment of the present invention. In the present embodiment, decoding of the bit stream generated in the first embodiment will be described.
In Fig. 2, reference numeral 201 denotes a terminal into which the coded bit stream is inputted. Reference numeral 202 denotes a decoding/separation unit that decodes the header information of the inputted bit stream, separates a necessary code from the bit stream, and outputs the code to the next stage. The decoding/separation unit 202 performs the reverse operation of the integrated coding unit 111 in Fig. 1.
Reference numeral 203 denotes a quantization matrix header decoding unit that decodes the quantization matrix header code separated from the header information of the bit stream and restores the correspondence information and the reference information. Reference numeral 204 denotes a quantization matrix coefficient decoding unit that decodes the quantization matrix coefficient code separated from the bit stream and restores each coefficient in the quantization matrixes. Reference numeral 205 denotes a quantization matrix reconstruction unit that reconstructs the quantization matrixes to be decoded from the obtained correspondence information, reference information, and coefficients of the quantization matrix. Reference numeral 206 denotes a quantization matrix holding unit that stores the quantization matrixes obtained by the quantization matrix reconstruction unit 205. The predetermined quantization matrix stored by the quantization matrix determination unit 108 in the first embodiment is held by the quantization matrix holding unit 206. However, it is not limited to this. The predetermined quantization matrix may be stored in the quantization matrix reconstruction unit 205. The quantization matrix header decoding unit 203, the quantization matrix coefficient decoding unit 204, and the quantization matrix reconstruction unit 205 may function as a quantization matrix decoding unit, which is one processing unit.
On the other hand, reference numeral 207 denotes a coefficient decoding unit 207 that decodes the quantization coefficient code from the quantization coefficient code data separated by the decoding/separation unit 202 and restores the quantization coefficients. Reference numeral 208 denotes an inverse quantization unit that inverse-quantizes the quantization coefficients by using the quantization matrix stored in the quantization matrix holding unit 206 and obtains the orthogonal transform coefficients. Reference numeral 209 denotes an inverse transform unit that performs inverse orthogonal transform, which is the inverse of the transform unit 104 in Fig. 1, and obtains the prediction errors. Reference numeral 210 denotes a prediction reconstruction unit that restores the image of the block from the prediction errors and images that have been decoded.
The image decoding operation of the image decoding device will be described below. In the present embodiment, a configuration is employed in which a moving image bit stream generated in the first embodiment is inputted for each picture. However, a configuration in which a still image bit stream of one picture is inputted may be employed. Although only an intra prediction decoding process will be described in the present embodiment for ease of explanation, it is not limited to this and the present embodiment can be applied to an inter prediction decoding process.
In Fig. 2, a bit stream of one picture inputted from the terminal 201 is inputted into the decoding/separation unit 202 and the header information necessary to reproduce the image is decoded. Further, codes used in the subsequent stages are separated and outputted. The quantization matrix header code included in the header information is outputted to the quantization matrix header decoding unit 203. In the present embodiment, the sequence header and the picture headers shown in the examples of the bit streams shown in Figs. 10A, 10B, and 10C are inputted and decoded and a code is outputted.
The quantization matrix header decoding unit 203 first decodes the inputted quantization matrix header code and restores the correspondence information. When the correspondence information is "1" indicating that there is a matrix corresponding to the quantization matrix to be decoded, the reference information is further reproduced from the quantization matrix header code. The restored reference information is outputted to the quantization matrix reconstruction unit 205. On the other hand, when the correspondence information is "0" indicating that there is no matrix corresponding to the quantization matrix to be decoded, information indicating that it is necessary to decode coefficients of the quantization matrix to be decoded is outputted to the decoding/separation unit 202. In the present embodiment, the correspondence information is the information as described above. However, the correspondence information may have any form if the correspondence information has the same meaning as described above.
When the information indicating that it is necessary to decode coefficients of the quantization matrix to be decoded is inputted into the decoding/separation unit 202 from the quantization matrix header decoding unit 203, the decoding/separation unit 202 outputs quantization matrix coefficient code data to the quantization matrix coefficient decoding unit 204. The quantization matrix coefficient decoding unit 204 decodes the inputted quantization matrix coefficient code data and restores each coefficient of the quantization matrix to be decoded. The reproduced coefficients of the quantization matrix are outputted to the quantization matrix reconstruction unit 205.
The quantization matrix reconstruction unit 205 reconstructs the quantization matrix to be decoded from the reference information inputted from the quantization matrix header decoding unit 203 or the coefficients of the quantization matrix inputted from the quantization matrix coefficient decoding unit 204. When the coefficients of the quantization matrix are inputted from the quantization matrix coefficient decoding unit 204, the quantization matrix reconstruction unit 205 reconstructs the quantization matrix by using the inputted coefficients and outputs the quantization matrix to the quantization matrix holding unit 206. On the other hand, when the reference information is inputted from the quantization matrix header decoding unit 203, the quantization matrix reconstruction unit 205 reconstructs the quantization matrix to be decoded by reading the quantization matrix of the reference destination from the quantization matrix holding unit 206 on the basis of the reference information. Then, the reconstructed quantization matrix is outputted to the quantization matrix holding unit 206. The quantization matrix holding unit 206 stores the inputted quantization matrix and outputs the quantization matrix to the quantization matrix reconstruction unit 205 and the inverse quantization unit 208 if necessary.
The quantization coefficient code data of the codes separated by the decoding/separation unit 202 is inputted into the coefficient decoding unit 207. The coefficient decoding unit 207 decodes the quantization coefficient code data for each transform block, decodes the quantization coefficients, and outputs the quantization coefficients to the inverse quantization unit 208. The quantization coefficients restored by the coefficient decoding unit 207 and the quantization matrix stored in the quantization matrix holding unit 206 are inputted into the inverse quantization unit 208. The inverse quantization unit 208 performs inverse quantization by using the quantization matrix, restores the orthogonal transform coefficients, and outputs the orthogonal transform coefficients to the inverse transform unit 209. The orthogonal transform coefficients are inputted into the inverse transform unit 209 and the inverse transform unit 209 performs inverse orthogonal transform, which is the inverse of the transform unit 104 in Fig. 1, restores the prediction errors, and outputs the prediction errors to the prediction reconstruction unit 210. The prediction reconstruction unit 210 restores images of each block unit by performing prediction from peripheral pixel data that have been decoded into the inputted prediction errors and outputs the images of each block unit from the terminal 211.
Fig. 7 is a flowchart showing the image decoding processing of the image decoding device according to the second embodiment.
First, in step S701, the decoding/separation unit 202 decodes the header information and separates the header information to output codes to the subsequent stages. In the present embodiment, the sequence headers and the picture headers shown in the examples of the bit streams shown in Figs. 10A, 10B, and 10C are inputted and decoded and the subsequent codes are outputted to corresponding blocks. In step S702, the quantization matrix header decoding unit 203 first decodes the separated quantization matrix header code and restores the correspondence information. When the correspondence information is "1" indicating that there is a matrix corresponding to the quantization matrix to be decoded, the reference information is further reproduced from the quantization matrix header code. On the other hand, when the correspondence information is "0" indicating that there is no matrix corresponding to the quantization matrix to be decoded, no more operation is performed in this step.
In step S703, the image decoding device determines whether or not to decode the coefficients of the quantization matrix to be decoded on the basis of the correspondence information generated in step S702. When decoding the coefficients of the quantization matrix to be decoded, the process proceeds to step S704, and if this is not the case, the process proceeds to step S705. In step S704, the quantization matrix coefficient decoding unit 204 decodes the quantization matrix coefficient code data and reproduces each coefficient of the quantization matrix to be decoded. In step S705, the quantization matrix reconstruction unit 205 reconstructs the quantization matrix to be decoded from the reference information restored in step S702 or the coefficients of the quantization matrix restored in step S704.
In step S706, the image decoding device determines whether or not all the quantization matrixes have been decoded. If all the quantization matrixes have been decoded, the process proceeds to step S707, and if not all the quantization matrixes have been coded, the process returns to step S702 to decode the next quantization matrix. In step S707, the coefficient decoding unit 207 decodes the quantization coefficient code data separated from the bit stream for each transform block and restores the quantization coefficient. In step S708, the inverse quantization unit 208 inverse-quantizes the quantization coefficient reproduced in step S707 by using the quantization matrix reproduced in step S705 and restores the orthogonal transform coefficient. In step S709, the inverse transform unit 209 performs inverse orthogonal transform on the orthogonal transform coefficient restored in step S708 and restores the prediction error.
In step S710, the image decoding device determines whether or not decoding of all the transform blocks in the block has been completed. If the decoding has been completed, the process proceeds to step S711, and if the decoding has not been completed, the process returns to step S707 to decode the next transform block. In step S711, the prediction reconstruction unit 210 performs prediction from peripheral pixel data that has been decoded and generates a decoded image of the block by adding the prediction result to the prediction error restored in step S709. In step S712, the image decoding device determines whether or not decoding of all the blocks has been completed. If the decoding has been completed, the image decoding device stops all operations and ends the process, and if the decoding has not been completed, the process returns to step S707 to decode the next block.
By the above configuration and operation, it is possible to decode the bit stream including a code represented by a small amount of code such as the correspondence information generated in the first embodiment and obtain a reproduced image.
In the same manner as in the first embodiment, the size of the block, the size of the transform block, and the shape of the block are not limited to those described in the second embodiment. It is also possible to update the quantization matrix by including a plurality of quantization matrix code data in one sequence of bit stream. The decoding/separation unit 202 detects the quantization matrix header code and the quantization matrix header decoding unit 203 reproduces the correspondence information and, if necessary, the reference information. Further, the quantization matrix coefficient decoding unit 204 restores the coefficients of the quantization matrix to be decoded according to the correspondence information. Next, the quantization matrix reconstruction unit 205 restores the quantization matrix to be decoded from the reference information or the coefficients of the quantization matrix. Then, a corresponding quantization matrix in the quantization matrix holding unit 206 is replaced by data of the restored quantization matrix. In this case, all the quantization matrixes may be rewritten or a part of the quantization matrixes may be changed by determining the quantization matrixes to be rewritten.
Although, in the present embodiment, the method in which the process is performed after code data of one picture is accumulated is described as an example, it is not limited to this. For example, an input method such as inputting block by block or inputting slice by slice may be used. Here, the slice includes a plurality of blocks. Further, instead of the block or the like, data which is divided into packets with a fixed length may be used.
Third Embodiment
Fig. 3 is a block diagram showing an image coding device of the present embodiment. In Fig. 3, components having the same functions as those in Fig. 1 of the first embodiment are denoted by the same reference numerals and the description thereof will be omitted.
In the same manner as the prediction unit 103 in Fig. 1, reference numeral 303 denotes a prediction unit that performs prediction for each block of the blocks divided by the block division unit 102, determines a prediction method, calculates difference values according to the determined prediction method, and calculates prediction errors. Reference numeral 321 denotes a transform control unit that determines whether or not to perform an orthogonal transform on the prediction errors generated by the prediction unit 303, outputs the prediction errors to the next stage, and outputs the determination result to the next stage as transform skip determination information. In the same manner as the transform unit 104 in Fig. 1, reference numeral 304 denotes a transform unit that performs the orthogonal transform on the prediction errors of each block. The transform unit 304 performs the orthogonal transform on the basis of the size of an inputted block or on the basis of a small block obtained by dividing the inputted block and calculates orthogonal transform coefficients.
Reference numeral 322 denotes a bit depth adjustment unit that adjusts the bit depth of the prediction error in order to ensure consistency with quantization processing of the quantization unit 305 in the next stage. The degree of the bit depth adjustment here is determined by the bit depth of the input image, the bit depth adjustment according to the orthogonal transform of the transform unit 304, the bit depth adjustment according to the quantization processing of the quantization unit 305, the coefficient values of the quantization matrix, and the like. For example, in the present embodiment, the bit depth adjustment is performed by left-bit-shifting the prediction error by a difference between a predetermined value "13" and the bit depth of the input image. For example, when the bit depth of the input image is 8 bits, the prediction error is left-bit-shifted by 5 bits. However, the values used in the bit depth adjustment are not limited to those described above.
Reference numeral 305 denotes a quantization unit that quantizes the orthogonal transform coefficients generated by the transform unit 304 or the prediction errors where the bit depth is adjusted by the bit depth adjustment unit 322 by the quantization matrix stored in the quantization matrix holding unit 107. Reference numeral 311 denotes an integrated coding unit that generates a code related to header information, prediction, and transform, forms a bit stream by integrating code data generated by each coding unit described above, and outputs the bit stream. The integrated coding unit 311 is different from the integrated coding unit 111 in Fig. 1 in a point that the integrated coding unit 311 further codes the transform skip determination information to generate code data, forms a bit stream, and outputs the bit stream.
An image coding operation in the image coding device will be described below.
In the prediction unit 303, first, a prediction for each block unit is performed and prediction errors are generated. The generated prediction errors are outputted to the transform control unit 321. The transform control unit 321 determines whether or not to perform the orthogonal transform on the inputted prediction errors. When performing the orthogonal transform, the transform control unit 321 outputs the prediction errors to the transform unit 304, and when not performing the orthogonal transform, the transform control unit 321 outputs the prediction errors to the bit depth adjustment unit 322. Although the method for determining whether or not to perform the orthogonal transform is not limited in particular, whether or not to perform the orthogonal transform may be determined from the characteristics of the image, the magnitude of the transform coefficients after the orthogonal transform, and the like. The transform control unit 321 outputs the determined determination result to the integrated coding unit 311 as the transform skip determination information. The transform unit 304 performs the orthogonal transform on the prediction errors inputted from the transform control unit 321 for each transform block and generates orthogonal transform coefficients.
On the other hand, the bit depth adjustment unit 322 adjusts the bit depth of the prediction errors inputted from the transform control unit 321 for each transform block and generates the prediction errors where the bit depth is adjusted. The quantization unit 305 quantizes the orthogonal transform coefficients outputted from the transform unit 304 or the prediction errors which are outputted from the bit depth adjustment unit 322 and where the bit depth is adjusted by using the quantization matrix stored in the quantization matrix holding unit 107 and generates quantization coefficients. The generated quantization coefficients are inputted into the coefficient coding unit 106.
The integrated coding unit 311 codes the header information necessary to code the image and integrates the inputted quantization matrix header code and quantization matrix coefficient code. The integrated coding unit 311 codes the transform skip determination information inputted from the transform control unit 321 in addition to the header information coded by the integrated coding unit 111 in Fig. 1.
Fig. 8 is a flowchart showing the image coding processing of the image coding device according to the third embodiment. In Fig. 8, sections having the same functions as those in Fig. 6 of the first embodiment are denoted by the same reference numerals and the description thereof will be omitted.
In step S820, the transform control unit 321 determines whether or not to perform the orthogonal transform on the prediction errors generated in step S609 and generates the transform skip determination information. In step S821, if it is determined to perform the orthogonal transform on the basis of the transform skip determination information, the process proceeds to step S610, and if it is determined not to perform the orthogonal transform, the process proceeds to step S822. In step S822, the bit depth adjustment unit 322 adjusts the bit depth of the prediction errors generated in step S609 for each transform block and generates the prediction errors where the bit depth is adjusted. In step S811, the quantization unit 305 quantizes the orthogonal transform coefficients generated in step S610 or the prediction errors which are generated in step S822 and where the bit depth is adjusted by using the quantization matrix generated in step S601 and generates quantization coefficients. In step S823, the integrated coding unit 311 codes the transform skip determination information generated in step S821.
By the above configuration and operation, in particular, by steps from S820 to S823, when a flat quantization matrix corresponding to the transform skip is coded, it is not necessary to transmit a redundant code, so that it is possible to form a bit stream whose amount of code is reduced.
Although, in the present embodiment, the transform skip determination information is coded for each transform block, the transform skip determination information is not limited to be coded for each transform block. The transform skip determination information may be coded for each block or the amount of code may be reduced by using the transform skip determination information common to each color component. Although the coding method is not limited in particular, Huffman code, arithmetic code, and the like may be used.
Fourth Embodiment
Fig. 4 is a block diagram showing an image decoding device of the present embodiment. In Fig. 4, components having the same functions as those in Fig. 2 of the second embodiment are denoted by the same reference numerals and the description thereof will be omitted. In the present embodiment, decoding of the bit stream generated in the third embodiment will be described.
Reference numeral 402 denotes a decoding/separation unit that decodes the header information of the inputted bit stream, separates a necessary code from the bit stream, and outputs the code to the next stage. The decoding/separation unit 402 performs the inverse operation of the integrated coding unit 311 in Fig. 3. The decoding/separation unit 402 is different from the decoding/separation unit 202 in Fig. 2 in a point that the decoding/separation unit 402 further decodes/reproduces the transform skip determination information and outputs the transform skip determination information to the next stage. Reference numeral 408 denotes an inverse quantization unit that inverse-quantizes the quantization coefficients by using the quantization matrix stored in the quantization matrix holding unit 206 and reproduces an inverse quantization coefficients. The inverse quantization coefficients in the present embodiment correspond to the orthogonal transform coefficients or the prediction errors where the bit depth is adjusted in the third embodiment.
Reference numeral 421 denotes an inverse transform control unit that determines whether or not to perform an orthogonal transform on the basis of the transform skip determination information inputted from the decoding/separation unit 402 and outputs the inverse quantization coefficients to the next stage. Reference numeral 409 denotes a inverse transform unit that performs inverse orthogonal transform, which is the inverse of the transform unit 304 in Fig. 3, and reproduces the prediction errors. Reference numeral 422 denotes a bit depth inverse adjustment unit that performs bit depth adjustment, which is the inverse of the bit depth adjustment unit 322 in Fig. 3, and reproduces the prediction errors. The degree of the bit depth inverse adjustment here is determined by the bit depth of the output image, the bit depth adjustment according to the inverse orthogonal transform of the inverse transform unit 409, the bit depth adjustment according to the quantization processing of the inverse quantization unit 408, the coefficient values of the quantization matrix, and the like. For example, in the present embodiment, the bit depth inverse adjustment is performed by right-bit-shifting the coefficients by a difference between "13" and the bit depth of the output image. For example, when the bit depth of the output image is 8 bits, the coefficients are right-bit-shifted by 5 bits. However, the values used in the bit depth inverse adjustment are not limited to those described above. Reference numeral 410 denotes a prediction reconstruction unit that reproduces the image of the block from the prediction error and images that have been decoded.
The image decoding operation of the image decoding device will be described below.
In Fig. 4, a bit stream of one picture inputted from the terminal 201 is inputted into the decoding/separation unit 402 and the header information necessary to reproduce the image is decoded. Further, codes used in the subsequent stages are separated and appropriately outputted. The quantization matrix header code included in the header information is outputted to the quantization matrix header decoding unit 203. When the information indicating that it is necessary to decode coefficients of the quantization matrix to be decoded is inputted into the decoding/separation unit 402 from the quantization matrix header decoding unit 203, the decoding/separation unit 402 outputs quantization matrix coefficient code data to the quantization matrix coefficient decoding unit 204. Further, the decoding/separation unit 402 decodes/reproduces the transform skip determination information that indicates whether or not to perform the inverse orthogonal transform for each transform block from the bit stream and outputs the transform skip determination information to the inverse transform control unit 421.
The quantization coefficients reproduced by the coefficient decoding unit 207 and the quantization matrix stored in the quantization matrix holding unit 206 are inputted into the inverse quantization unit 408. Then, the inverse quantization unit 408 performs inverse quantization by using the quantization matrix, reproduces the inverse quantization coefficients, and outputs the inverse quantization coefficient to the inverse transform control unit 421. The inverse transform control unit 421 determines whether or not to perform the inverse orthogonal transform on the inputted inverse quantization coefficients on the basis of the transform skip determination information inputted from the decoding/separation unit 402. When performing the inverse orthogonal transform, the inverse transform control unit 421 outputs the inverse quantization coefficients to the inverse transform unit 409, and when not performing the inverse orthogonal transform, the inverse transform control unit 421 outputs the inverse quantization coefficients to the bit depth inverse adjustment unit 422. The inverse transform unit 209 performs the inverse orthogonal transform, which is the inverse of the transform unit 304 in Fig. 3, on the orthogonal transform coefficients which are the inputted inverse quantization coefficients, reproduces the prediction errors, and outputs the prediction errors to the prediction reconstruction unit 410.
On the other hand, the bit depth inverse adjustment unit 422 inversely adjusts the bit depth of the prediction error where the bit depth is adjusted, which is the inverse quantization coefficients inputted from the inverse transform control unit 421, for each transform block, reproduces the prediction errors, and outputs the prediction errors to the prediction reconstruction unit 410. The prediction reconstruction unit 410 reproduces images of each block unit by performing prediction from peripheral pixel data that have been decoded into the inputted prediction errors and outputs the images of each block unit from the terminal 211.
Fig. 9 is a flowchart showing the image decoding processing of the image decoding device according to the fourth embodiment. Sections having the same functions as those in Fig. 7 of the second embodiment are denoted by the same reference numerals and the description thereof will be omitted.
In step S921, the decoding/separation unit 402 decodes/reproduces the transform skip determination information that indicates whether or not to perform the inverse orthogonal transform for each transform block from the bit stream. In step S922, determination based on the transform skip determination information generated in step S921 is performed. When performing the inverse orthogonal transform, the process proceeds to step S709, and if this is not the case, the process proceeds to step S923. In step S923, the bit depth inverse adjustment unit 422 inversely adjusts the bit depth of the inverse quantization coefficients generated in step S708 for each transform block and reproduces the prediction errors.
By the above configuration and operation, even in an image decoding device that performs transform skip processing, it is possible to decode a flat quantization matrix represented by a small amount of code such as quantization matrix correspondence information generated in the third embodiment and obtain a reproduced image.
Although, in the present embodiment, there is the transform skip determination information for each transform block, the header portion may include a flag and whether or not the decoding device performs the transform skip processing may be switched by the flag. In this case, a configuration may be employed in which, only when the transform skip processing is performed, the flat quantization matrix is stored and referred to, and if this is not the case, the flat quantization matrix is not referred to.
Fifth Embodiment
The processing units shown in Figs. 1, 2, 3, and 4 are configured by hardware in the description of the embodiments. However, the processing performed by the processing units shown in Figs. 1, 2, 3, and 4 may be performed by a computer program.
Fig. 12 is a block diagram showing a configuration example of a computer which can be applied to the image coding device and the image decoding device according the embodiments.
A CPU 1201 controls the entire computer by using a computer program and data stored in a RAM 1202 and a ROM 1203 and performs each processing described above as the image processing device according to the embodiments performs the processing. In other words, the CPU 1201 functions as the processing units shown in Figs. 1, 2, 3, and 4.
The RAM 1202 has an area for temporarily storing a computer program and data loaded from an external storage device 1206 and data acquired from outside through an I/F (interface) 1207. Further, the RAM 1202 has a work area used when the CPU 1201 performs various processes. Specifically, the RAM 1202 may be assigned as a picture memory and the RAM 1202 can provide other various areas properly.
The ROM 1203 stores setting data and a boot program of the computer. An operation unit 1204 is formed by a keyboard, a mouse, and the like. When a user of the computer operates the operation unit 1204, various instructions can be inputted into the CPU 1201. An output unit 1205 outputs a processing result of the CPU 1201. The output unit 1205 can be configured by a display device such as a liquid crystal display to display a processing result.
The external storage device 1206 is a large capacity information storage device, a typical example of which is a hard disk drive device. The external storage device 1206 stores an OS (operating system) and a computer program for causing the CPU 1201 to implement the functions of each unit shown in Figs. 1, 2, 3, and 4. Further, the external storage device 1206 may store images to be processed.
The computer program and the data stored in the external storage device 1206 are arbitrarily loaded to the RAM 1202 according to control of the CPU 1201 and processed by the CPU 1201. A network such as a LAN and the Internet and other devices such as a projector and a display device can be connected to the I/F 1207. The computer can receive and transmit various information through the I/F 1207. Reference numeral 1208 denotes a bus that connects each unit described above.
Regarding the operations performed in the configurations describe above, the CPU 1201 mainly controls the operations described in the above flowcharts.
Other Embodiments
Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment(s), and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment(s). For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium).
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2012-144322, filed June 27, 2012, which is hereby incorporated by reference herein in its entirety.

Claims (13)

  1. An image coding device comprising:
    a prediction unit configured to divide an inputted image into a plurality of blocks and generate prediction errors from pixels to be referred to;
    a transform unit configured to perform an orthogonal transform on the prediction errors and generate transform coefficients;
    a quantization unit configured to generate quantization coefficients by quantizing the generated transform coefficients by using a quantization matrix;
    a coefficient coding unit configured to code the quantization coefficients; and
    a quantization matrix coding unit configured to code the quantization matrix when the quantization matrix is not the same as a predetermined quantization matrix and code correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix.
  2. The image coding device according to Claim 1, wherein, when there is a plurality of the predetermined quantization matrixes, the quantization matrix coding unit codes reference information that indicates a quantization matrix to which the quantization matrix corresponds in addition to the correspondence information.
  3. The image coding device according to Claim 1, wherein the predetermined quantization matrix is at least a quantization matrix stored in the coding device in advance, a quantization matrix that has been coded, or a quantization matrix in which all coefficients have the same value.
  4. The image coding device according to Claim 1, further comprising:
    a transform control unit configured to determine whether or not to perform the orthogonal transform on the prediction errors; and
    a bit depth adjustment unit configured to adjust a bit depth of the prediction errors when the orthogonal transform is not performed.
  5. The image coding device according to Claim 4, wherein a determination result of whether or not to perform the orthogonal transform on the prediction errors is further coded.
  6. The image coding device according to Claim 4, wherein the transform coefficients which are outputs of the transform unit and the prediction errors where the bit depth is adjusted and which are outputs of the bit depth adjustment unit are quantized by using the same quantization matrix.
  7. An image decoding device comprising:
    a decoding/separation unit configured to decode header information of an inputted bit stream and separate necessary codes;
    a coefficient decoding unit configured to decode quantization coefficients;
    a quantization matrix decoding unit configured to decode a quantization matrix used to inverse-quantize the quantization coefficients when the quantization matrix is not the same as a predetermined quantization matrix and decode correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix;
    a inverse quantization unit configured to generate transform coefficients by inverse-quantizing the decoded quantization coefficients by using the decoded quantization matrix or the correspondence information; and
    a reconstruction unit configured to restore an image from prediction errors obtained by inverse-transforming the transform coefficients.
  8. The image decoding device according to Claim 7, further comprising:
    a inverse transform control unit configured to determine whether or not to perform an inverse orthogonal transform on inverse quantization coefficients which are outputs of the inverse quantization unit; and
    a bit depth inverse adjustment unit configured to inverse-adjust a bit depth of the inverse quantization coefficients when the inverse orthogonal transform is not performed.
  9. The image decoding device according to Claim 8, wherein a determination result of whether or not to perform the inverse orthogonal transform on the inverse quantization coefficients is further coded and the inverse transform control unit determines on the basis of the determination result.
  10. An image coding method of an image coding device, the image coding method comprising:
    a prediction step of dividing an inputted image into a plurality of blocks and generating prediction errors from pixels to be referred to;
    a transform step of performing an orthogonal transform on the prediction errors and generating transform coefficients;
    a quantization step of generating quantization coefficients by quantizing the generated transform coefficients by using a quantization matrix;
    a coefficient coding step of coding the quantization coefficients;
    a quantization matrix coding step of coding the quantization matrix; and
    a quantization matrix coding step of coding the quantization matrix when the quantization matrix is not the same as a predetermined quantization matrix and coding correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix.
  11. An image decoding method of an image coding device, the image decoding method comprising:
    a decoding/separation step of decoding header information of an inputted bit stream and separating necessary codes;
    a coefficient decoding step of decoding a quantization coefficients;
    a quantization matrix decoding step of decoding a quantization matrix used to inverse-quantize the quantization coefficients when the quantization matrix is not the same as a predetermined quantization matrix and decoding correspondence information indicating that the quantization matrix is the same as the predetermined quantization matrix when the quantization matrix is the same as the predetermined quantization matrix;
    a inverse quantization step of generating transform coefficients by inverse-quantizing the decoded quantization coefficients by using the decoded quantization matrix or the correspondence information; and
    a reconstruction step of restoring an image from prediction errors obtained by inverse-transforming the transform coefficients.
  12. A recording medium storing a program that causes a computer to function as the image coding device according to Claim 1 when the computer reads and executes the program.
  13. A recording medium storing a program that causes a computer to function as the image decoding device according to Claim 7 when the computer reads and executes the program.
PCT/JP2013/003864 2012-06-27 2013-06-20 Coding method and decoding mehtod of a quantization matrix WO2014002446A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-144322 2012-06-27
JP2012144322A JP6041554B2 (en) 2012-06-27 2012-06-27 Image encoding device, image encoding method and program, image decoding device, image decoding method and program

Publications (1)

Publication Number Publication Date
WO2014002446A1 true WO2014002446A1 (en) 2014-01-03

Family

ID=48874457

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/003864 WO2014002446A1 (en) 2012-06-27 2013-06-20 Coding method and decoding mehtod of a quantization matrix

Country Status (2)

Country Link
JP (1) JP6041554B2 (en)
WO (1) WO2014002446A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632612A (en) * 2018-05-23 2018-10-09 西安万像电子科技有限公司 The method and apparatus for encoding compression
US11962806B2 (en) 2019-03-11 2024-04-16 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium
US12075049B2 (en) 2019-03-11 2024-08-27 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium
US12137224B2 (en) 2019-09-19 2024-11-05 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus, methods for the same, and non-transitory computer-readable storage medium for suppressing the code amount of quantization matrices

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11012693B2 (en) * 2014-12-26 2021-05-18 Panasonic Intellectual Property Management Co., Ltd. Encoding method, decoding method, encoding apparatus, and decoding apparatus
JP7522137B2 (en) * 2019-06-14 2024-07-24 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. Encoder, decoder, method, and computer program using improved transform-based scaling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100054330A1 (en) * 2004-01-30 2010-03-04 Tao Chen Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus, and program thereof
WO2011052215A1 (en) * 2009-10-30 2011-05-05 パナソニック株式会社 Decoding method, decoder apparatus, encoding method, and encoder apparatus
JP2012144322A (en) 2011-01-11 2012-08-02 Konica Minolta Business Technologies Inc Sheet processing device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06284412A (en) * 1993-03-26 1994-10-07 Sony Corp Picture signal coding method and picture signal coder, picture signal decoding method and picture signal decoder and picture signal recording medium
JP3234807B2 (en) * 1997-02-08 2001-12-04 松下電器産業株式会社 Decoding method
JP4099682B2 (en) * 1998-09-18 2008-06-11 ソニー株式会社 Image processing apparatus and method, and recording medium
CN101695132B (en) * 2004-01-20 2012-06-27 松下电器产业株式会社 Picture coding method, picture decoding method, picture coding apparatus, and picture decoding apparatus thereof
CN1910922B (en) * 2004-01-30 2013-04-17 松下电器产业株式会社 Moving picture coding method and moving picture decoding method
JP4146444B2 (en) * 2005-03-16 2008-09-10 株式会社東芝 Video encoding method and apparatus
JP5741076B2 (en) * 2010-12-09 2015-07-01 ソニー株式会社 Image processing apparatus and image processing method
KR101989613B1 (en) * 2011-02-10 2019-06-14 벨로스 미디어 인터내셔널 리미티드 Image processing device and image processing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100054330A1 (en) * 2004-01-30 2010-03-04 Tao Chen Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus, and program thereof
WO2011052215A1 (en) * 2009-10-30 2011-05-05 パナソニック株式会社 Decoding method, decoder apparatus, encoding method, and encoder apparatus
US20120251015A1 (en) * 2009-10-30 2012-10-04 Chong Soon Lim Decoding method, decoding apparatus, coding method, and coding apparatus
JP2012144322A (en) 2011-01-11 2012-08-02 Konica Minolta Business Technologies Inc Sheet processing device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LAN (XIDIAN UNIV) C ET AL: "Intra transform skipping", 9. JCT-VC MEETING; 100. MPEG MEETING; 27-4-2012 - 7-5-2012; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-I0408, 17 April 2012 (2012-04-17), XP030112171 *
NACCARI M ET AL: "CE5.a: Quantization for transform skipping", 8. JCT-VC MEETING; 99. MPEG MEETING; 1-2-2012 - 10-2-2012; SAN JOSE; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-H0208, 21 January 2012 (2012-01-21), XP030111235 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632612A (en) * 2018-05-23 2018-10-09 西安万像电子科技有限公司 The method and apparatus for encoding compression
CN108632612B (en) * 2018-05-23 2021-10-08 上海京像微电子有限公司 Method and apparatus for code compression
US11962806B2 (en) 2019-03-11 2024-04-16 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium
US12075049B2 (en) 2019-03-11 2024-08-27 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium
US12137224B2 (en) 2019-09-19 2024-11-05 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus, methods for the same, and non-transitory computer-readable storage medium for suppressing the code amount of quantization matrices

Also Published As

Publication number Publication date
JP2014011482A (en) 2014-01-20
JP6041554B2 (en) 2016-12-07

Similar Documents

Publication Publication Date Title
US10652554B2 (en) Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
US11122283B2 (en) Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method and program
US9942550B2 (en) Image encoding device, image encoding method and program, image decoding device, and image decoding method and program
RU2679285C2 (en) Providing information accuracy in image encoding device, method and program for image encoding, image decoding device and method and program for image decoding
WO2014002446A1 (en) Coding method and decoding mehtod of a quantization matrix
US20130129240A1 (en) Image coding apparatus, method for coding image, and program, and image decoding apparatus, method for decoding image, and program
US20140133553A1 (en) Apparatus, method, and program for coding image and apparatus, method, and program for decoding image
US20220201288A1 (en) Image encoding device, image encoding method, image decoding device, image decoding method, and non-transitory computer-readable storage medium
JP6272441B2 (en) Image decoding apparatus, image decoding method and program
JP6743225B2 (en) Image decoding apparatus, image decoding method and program
JP6541763B2 (en) Image decoding apparatus, image decoding method and program
US20130266235A1 (en) Image encoding apparatus, image encoding method, image encoding program, image decoding apparatus, image decoding method, and image decoding program
JP7279109B2 (en) Image decoding method and program
JP6891325B2 (en) Image coding method
US12101466B2 (en) Image encoding device, image encoding method, and program, image decoding device, image decoding method, and non-transitory computer-readable storage medium
US20230007311A1 (en) Image encoding device, image encoding method and storage medium, image decoding device, and image decoding method and storage medium
US11849114B2 (en) Image encoding apparatus, image decoding apparatus, control methods thereof, and non-transitory computer-readable storage medium
US20130272388A1 (en) Apparatus, method, and program for coding image and apparatus, method, and program for decoding image
WO2013153761A1 (en) Image decoding apparatus, image decoding method, and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13740378

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13740378

Country of ref document: EP

Kind code of ref document: A1