WO2013008459A1 - Appareil de codage d'image, procédé de codage d'image, appareil de décodage d'image, procédé de décodage d'image et programme - Google Patents
Appareil de codage d'image, procédé de codage d'image, appareil de décodage d'image, procédé de décodage d'image et programme Download PDFInfo
- Publication number
- WO2013008459A1 WO2013008459A1 PCT/JP2012/004471 JP2012004471W WO2013008459A1 WO 2013008459 A1 WO2013008459 A1 WO 2013008459A1 JP 2012004471 W JP2012004471 W JP 2012004471W WO 2013008459 A1 WO2013008459 A1 WO 2013008459A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- quantization matrix
- unit
- quantization
- coefficient
- orthogonal transform
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to an image encoding apparatus, an image encoding method, an image decoding apparatus, an image decoding method, and a program and, in particular, to a quantization method and methods for encoding and decoding a quantization matrix.
- H.264/MPEG-4 AVC (hereinafter referred to as "H.264") has been used for encoding a moving image (refer to NPL 1).
- each element of a quantization matrix can be changed to a desired value by encoding scaling_list information.
- each of the elements of a quantization matrix can have a desired value.
- JCT-VC Joint Collaborative Team on Video Coding
- the display size is divided into blocks each having a block size that is larger than the existing macroblock size (16 * 16 pixels).
- Such a basic block having the large size is referred to as a "Largest Coding Unit (LCU)".
- the largest size of the LCU is 64 * 64 pixels (refer to, for example, NPL 2).
- An LCU is further divided into sub-blocks, each to be subjected to a prediction process and a transform process.
- an intra prediction/orthogonal transform coding scheme based on a rectangular sub-block (e.g., a short distance intra prediction scheme) has been developed in addition to the existing intra prediction/orthogonal transform coding scheme based on a square sub-block (refer to NPL 3).
- Fig. 2 illustrates an example of sub-block division used in the short distance intra prediction scheme. As illustrated in Fig. 2, for simplicity, a basic block 200 is a 16 * 16 pixel block, and each quadrangle indicated by a bold line represents a sub-block. In Fig. 2, the basic block 200 illustrates an existing square sub-block dividing scheme.
- the 16 * 16 pixel basic block is divided into 8 * 8 pixel or 4 * 4 square sub-blocks.
- basic blocks 201 and 202 illustrate an example of a rectangle sub-block dividing scheme using a short distance intra prediction scheme.
- the 16 * 16 basic block is divided into 4 * 16 or 16 * 4 rectangular sub-blocks. In this way, a coding process is performed using a rectangular sub-block in addition to a square sub-block.
- HEVC like H.264, a scheme for setting each element of a quantization matrix to a desired value has been developed.
- HEVC in addition to the square sub-block division scheme, a rectangular sub-block division scheme has been developed. At that time, distribution of coefficients resulted from orthogonal transform varies in accordance with the shape for the orthogonal transform. Accordingly, if the shape for orthogonal transform does not match a quantization matrix, quantization is not appropriately performed. As a result, the image quality is significantly degraded.
- the present invention provides an image encoding apparatus, an image encoding method, an image decoding apparatus, an image decoding method, and a program that adaptively use a quantization matrix in accordance with a shape for orthogonal transform.
- the present invention provides an image encoding apparatus, an image encoding method, an image decoding apparatus, an image decoding method, and a program that reduce the amount of code when a quantization matrix is set for each of the shapes for orthogonal transform.
- an image encoding apparatus includes a block dividing unit configured to divide an input image into a plurality of blocks, a prediction unit configured to perform prediction on each of the blocks divided by the block dividing unit using already encoded blocks and generate a prediction error, a transform unit configured to determine a shape of a processing block to be used from a plurality of square or rectangular shapes of processing blocks for orthogonal transform, apply orthogonal transform of the determined shape to the prediction error generated by the prediction unit, and generate a transformed coefficient, a quantization matrix selection unit configured to select a quantization matrix on the basis of the shape of a processing block for orthogonal transform determined by the transform unit, a quantization unit configured to quantize the transformed coefficient using the quantization matrix selected by the quantization matrix selection unit and generate a quantized coefficient, and a coefficient encoding unit configured to encode the quantized coefficient generated by the quantization unit.
- a quantization matrix can be set for each of the square or rectangular shapes of the processing block for orthogonal transform and, thus, a quantization process best suited for each of the shapes of a processing block can be performed.
- Fig. 1 is a block diagram of the configuration of an image encoding apparatus according to a first exemplary embodiment of the present invention.
- Fig. 2 illustrates an example of sub-block division.
- Fig. 3 is a block diagram of the configuration of an image decoding apparatus according to a second exemplary embodiment of the present invention.
- Fig. 4 illustrates an example of a quantization matrix.
- Fig. 5 is a flowchart of an image encoding process performed by the image encoding apparatus according to the first exemplary embodiment.
- Fig. 6 is a flowchart of an image decoding process performed by the image decoding apparatus according to the second exemplary embodiment.
- Fig. 7A illustrates an example of the structure of a bit stream.
- Fig. 7B illustrates an example of the structure of a bit stream.
- Fig. 7C illustrates an example of the structure of a bit stream.
- Fig. 8 is a block diagram of the configuration of an image encoding apparatus according to a third exemplary embodiment of the present invention.
- Fig. 9 is a block diagram of the configuration of an image decoding apparatus according to a fourth exemplary embodiment of the present invention.
- Fig. 10 is a flowchart of an image encoding process performed by the image encoding apparatus according to the third exemplary embodiment.
- Fig. 11 is a flowchart of an image decoding process performed by the image decoding apparatus according to the fourth exemplary embodiment.
- Fig. 12 is a block diagram of exemplary computer hardware applicable to the image encoding apparatus and the image decoding apparatus according to the exemplary embodiments.
- FIG. 13 is a block diagram of an image encoding apparatus according to a fifth exemplary embodiment of the present invention.
- Fig. 14 is a block diagram of an image decoding apparatus according to a sixth exemplary embodiment of the present invention.
- Fig. 15 is a flowchart of an exemplary image encoding process performed by the image encoding apparatus according to the fifth exemplary embodiment.
- Fig. 16 is a flowchart of an exemplary image decoding process performed by the image decoding apparatus according to the sixth exemplary embodiment.
- Fig. 17A illustrates an example of computation for obtaining a rectangular quantization matrix from a square quantization matrix.
- Fig. 17B illustrates an example of computation for obtaining a rectangular quantization matrix from a square quantization matrix.
- Fig. 17C illustrates an example of computation for obtaining a rectangular quantization matrix from a square quantization matrix.
- FIG. 1 is a block diagram of the configuration of an image encoding apparatus according to a first exemplary embodiment of the present invention.
- a block dividing unit 101 divides an input image into a plurality of basic blocks. According to the present exemplary embodiment, for simplicity, the block dividing unit 101 divides an input image into 16 * 16 pixel basic blocks. However, the size of the basic block is not limited thereto.
- a prediction unit 102 divides each of the basic blocks obtained through a dividing operation performed by the block dividing unit 101 into sub-blocks each having a size smaller than or equal to the size of the basic block. Thereafter, the prediction unit 102 performs prediction using encoded blocks on a sub-block basis. In addition, the prediction unit 102 selects a prediction method. Thereafter, the prediction unit 102 performs prediction and computes a difference value in accordance with the selected prediction method and, thus, computes a prediction error. In the case of an intra frame of a still image or a moving image, intra prediction is performed. In addition, in the case of a moving image, motion compensation prediction is performed.
- a method for referencing reference pixels used for computing a prediction value using data of the reference pixels surrounding the target pixel is selected.
- the prediction unit 102 performs prediction by dividing the basic block into 16 * 16 pixel, 8 * 8 pixel, and 4 * 4 pixel square sub-blocks.
- the prediction unit 102 performs prediction by dividing the basic block into 16 * 4 pixel and 4 * 16 pixel rectangular sub-blocks.
- the size of the sub-block is not limited thereto.
- a quantization matrix holding unit 108 generates quantization matrices and temporarily holds the generated quantization matrices. Any method for generating quantization matrices to be held can be used. For example, a user may input the quantization matrices. Alternatively, the quantization matrices may be computed using the characteristics of an input image, or quantization matrices predetermined as an initial value may be used.
- a transform unit 103 applies orthogonal transform to the prediction error of each of the sub-blocks.
- the transform unit 103 applies orthogonal transform on the basis of the size of the sub-block determined by the prediction unit 102 and computes an orthogonal transformed coefficient.
- the orthogonal transform is applied on 16 * 16 pixel, 8 * 8 pixel, and 4 * 4 pixel processing blocks.
- the orthogonal transform is applied on 16 * 4 pixel and 4 * 16 pixel processing blocks.
- discrete sine transform, Karhunen-Loeve transform, or Hadamard transform can be employed in addition to discrete cosine transform.
- a quantization matrix selection unit 107 selects a quantization matrix to be applied from among the quantization matrices stored in the quantization matrix holding unit 108 by inputting the sub-block size selected by the prediction unit 102.
- a quantization unit 104 quantizes the orthogonal transformed coefficient using the quantization matrix selected by the quantization matrix selection unit 107. Through such quantization, a quantized coefficient can be obtained.
- a coefficient encoding unit 105 encodes the quantized coefficient obtained in this manner and generates quantized coefficient code data. At that time, any technique for encoding the quantized coefficient can be employed. For example, Huffman coding or arithmetic coding can be employed.
- a quantization matrix encoding unit 109 encodes the quantization matrices stored in the quantization matrix holding unit 108 and generated quantization matrix code data.
- a technique for encoding the quantization matrices is described in more detail below. Any encoding technique can be employed. For example, Huffman coding or arithmetic coding can be directly applied to the value of each of the elements of the quantization matrix. Alternatively, Huffman coding or arithmetic coding may be applied to a difference between the value of the element and the value of the immediately previous element or a difference between the value of the element and the value of an element of a different quantization matrix.
- a code integrating unit 106 generates code related to header information, prediction, and transform.
- the code integrating unit 106 integrates the quantized coefficient code data generated by the coefficient encoding unit 105 with the quantization matrix code data generated by the quantization matrix encoding unit 109.
- Examples of code related to prediction and transform include code of the sub-block size and a prediction method selected by the prediction unit 102.
- moving image data is input on a frame basis.
- a configuration that receives still image data for one frame may be employed.
- an intra prediction encoding process is described.
- the following operation can be applied to an inter prediction coding process.
- Image data for one frame is input to the block dividing unit 101.
- the image data is divided into 16 * 16 pixel basic blocks. Thereafter, each of the basic blocks is input to the prediction unit 102.
- the prediction unit 102 determines the size of a sub-block used for prediction.
- the prediction unit 102 further determines a prediction method. Thereafter, the prediction unit 102 performs prediction on a sub-block basis and generates a prediction error.
- the transform unit 103 applies orthogonal transform on the prediction error generated by the prediction unit 102 for each of the sub-blocks and generates the orthogonal transformed coefficient.
- the sub-block size and the shape are the same as the orthogonal transform size and shape. However, they are not necessarily the same.
- the generated orthogonal transformed coefficient is input to the quantization unit 104.
- the quantization matrix holding unit 108 stores the quantization matrices used for quantization of the frame, that is, the quantization matrices corresponding to the shapes of the sub-blocks. According to the present exemplary embodiment, five sub-block sizes, that is, the sizes of 4 * 4 pixels, 8 * 8 pixels, 16 * 16 pixels, 16 * 4 pixels, and 4 * 16 pixels are employed. Accordingly, the quantization matrix holding unit 108 stores a first quantization matrix for 4 * 4 pixel orthogonal transform, a second quantization matrix for 8 * 8 pixel orthogonal transform, and a third quantization matrix for 16 * 16 pixel orthogonal transform.
- the quantization matrix holding unit 108 stores a fourth quantization matrix for 16 * 4 pixel orthogonal transform, and a fifth quantization matrix for 4 * 16 pixel orthogonal transform.
- the quantization matrix holding unit 108 stores the above-described five quantization matrices.
- the number of the stored quantization matrices varies with the number of the shapes of the sub-blocks.
- the quantization matrix encoding unit 109 sequentially reads the quantization matrices from the quantization matrix holding unit 108 in the order of the sub-block size and encodes each of the quantization matrices to generate the quantization matrix code data.
- each of the elements of the quantization matrix is directly encoded, or a difference between an element and an element immediately before the element is encoded.
- the quantization matrix is encoded using DPCM, or the difference between the quantization matrix and a different quantization matrix is encoded.
- the encoding technique is not limited thereto. At the same time, by inserting code that stops encoding when the same value continuously appears, the amount of code of the quantization matrix can be reduced.
- a quantization matrix 400 corresponds to 16 pixels of a 4 * 4 pixel sub-block. Each square indicated by a bold line represents an element.
- the method for encoding five quantization matrices i.e., the quantization matrix 400 and quantization matrices 401 to 404 in Fig. 4 is described.
- the elements of the quantization matrix 400 start with a value of 1, and are incremented by one from element to element in the element sequence.
- values from 1 to 16 are encoded one by one.
- the difference between the value of an element and the value of the immediately previous element i.e., "1” in this example
- a prediction difference of "0" may be encoded.
- the elements of the quantization matrix 401 start with a value of 3 and are incremented by one from element to element in the element sequence.
- values from 3 to 18 are encoded one by one.
- the difference between the value of an element and the value of the immediately previous element i.e., "1” in this example
- the difference between the element of the quantization matrix 400 and the element of the quantization matrix 401 i.e., "2" in this example
- the elements of the quantization matrix 402 start with a value of "3" and are incremented by one from element to element in the element sequence until the value reaches "10". Thereafter, the value "10" appears three times and, subsequently, the value is incremented by one from element to element until the value reaches "16".
- the quantization matrix 402 like the quantization matrices 400 and 401, the value of each of the elements is encoded one by one.
- the difference between the value of the element and the value of the immediately previous element or the difference between the value of the element and the value of the element of a different quantization matrix may be encoded.
- the difference value "2" is encoded for the first "3" to the first "10"
- the difference "1” is encoded for the second "10”.
- the difference value is "0". Therefore, the difference value "0" is encoded seven times.
- the amount of code of the difference values may be reduced.
- the elements of the quantization matrix 403 start with a value of "3" and are incremented by one from element to element in the element sequence until the value reaches "10". Thereafter, the value "10" repeatedly appears to the end.
- the value of each of the elements is encoded one by one.
- the difference between the value of the element and the value of the immediately previous element or the difference between the value of the element and the value of the element of a different quantization matrix may be encoded. If the difference between the value of each of the elements of the quantization matrix 403 and the value of the immediately previous element is encoded, the difference value "1" is encoded for the first "3" to the first "10". For the subsequent elements, the difference value is "0". Therefore, the difference value "0" is encoded seven times. In addition, at the same time, by encoding code that stops the encoding operation, the amount of code of the difference values may be reduced.
- the elements of the quantization matrix 404 start with a value of "6" and are gradually increased.
- the value of each of the elements is encoded one by one.
- the difference between the value of the element and the value of the immediately previous element or the difference between the value of the element and the value of the element of a different quantization matrix may be encoded. If the difference between the value of each of the elements of the quantization matrix 404 and the value of the immediately previous element is encoded, the value "6" of the first element is encoded first. Thereafter, the difference value between the element and the immediately previous element is encoded.
- the quantization matrix selection unit 107 selects one of the quantization matrices used for quantization of the target sub-block using the sub-block size determined by the prediction unit 102. More specifically, the quantization matrix selection unit 107 selects, among the quantization matrices stored in the quantization matrix holding unit 108, the quantization matrix used for quantization of the target sub-block. For example, according to the present exemplary embodiment, if the sub-block size is 16 * 4 pixels, the quantization matrix selection unit 107 retrieves the fourth quantization matrix from the quantization matrix holding unit 108 and outputs the fourth quantization matrix to the quantization unit 104.
- the quantization unit 104 quantizes the orthogonal transformed coefficient output from the transform unit 103 using the quantization matrix selected by the quantization matrix selection unit 107 and generates a quantized coefficient.
- the generated quantized coefficient is input to the coefficient encoding unit 105.
- the coefficient encoding unit 105 encodes the quantized coefficient generated by the quantization unit 104 and generates quantized coefficient code data. Thereafter, the coefficient encoding unit 105 outputs the generated quantized coefficient code data to the code integrating unit 106.
- the quantization matrix encoding unit 109 encodes each of the quantization matrices stored in the quantization matrix holding unit 108 and generates quantization matrix code data. Thereafter, the quantization matrix encoding unit 109 outputs the generated quantization matrix code data to the code integrating unit 106.
- the code integrating unit 106 generates code, such as code for a sequence header, a frame header, a picture header, and a slice header of the image. In addition, the code integrating unit 106 inserts the quantization matrix code data generated by the quantization matrix encoding unit 109 into any one of the headers. The code integrating unit 106 integrates the code of such a header portion with the quantized coefficient code data generated by the coefficient encoding unit 105. In addition, the code integrating unit 106 encodes the sub-block size and prediction information generated by the prediction unit 102. Thereafter, the code integrating unit 106 generates a bit stream and outputs the generated bit stream.
- code such as code for a sequence header, a frame header, a picture header, and a slice header of the image.
- the code integrating unit 106 inserts the quantization matrix code data generated by the quantization matrix encoding unit 109 into any one of the headers.
- the code integrating unit 106 integrates the code of such a header portion with the quant
- Fig. 7A illustrates an example of a bit stream output in the first exemplary embodiment.
- the quantization matrix is encoded into the sequence header portion of the bit stream.
- the quantization matrix may be encoded into any position.
- the quantization matrix may be encoded into a picture header portion or another header portion.
- the quantization matrix can be modified by newly encoding the quantization matrix.
- all of the quantization matrices may be rewritten or some of the quantization matrices may be modified by specifying the sub-block size of the quantization matrix to be rewritten.
- the quantization matrix can be partially modified by specifying the sub-block size and the position of an element to be modified of the quantization matrix to be rewritten.
- Fig. 5 is a flowchart of an image encoding process performed by the image encoding apparatus according to the first exemplary embodiment.
- the quantization matrix holding unit 108 generates at least one quantization matrix.
- five sub-block sizes are employed. Accordingly, as described above, five quantization matrices, that is, first to fifth quantization matrices are generated.
- step S502 the quantization matrix encoding unit 109 encodes each of the quantization matrices generated by the quantization matrix holding unit 108.
- step S503 the code integrating unit 106 encodes the header portion of a bit stream and outputs the encoded header portion. At that time, the quantization matrix code data encoded in step S502 is output together with the header portion.
- step S504 the block dividing unit 101 divides a frame-based input image into basic blocks (16 * 16 pixels).
- step S505 the prediction unit 102 determines the size of the sub-block.
- step S506 the prediction unit 102 performs prediction on a sub-block size basis generated in step S505.
- step S507 the image encoding apparatus selects a process to be performed next on the basis of the sub-block size determined in step S506. If the sub-block size is 4 * 4 pixels, the processing proceeds to step S508. However, if the sub-block size is 8 * 8 pixels, the processing proceeds to step S528. If the sub-block size is 16 * 16 pixels, the processing proceeds to step S548. If the sub-block size is 16 * 4 pixels, the processing proceeds to step S568. If the sub-block size is 4 * 16 pixels, the processing proceeds to step S588.
- step S508 the transform unit 103 applies orthogonal transform to the prediction error generated in step S505 on a 4 * 4 pixel sub-block basis and generates an orthogonal transformed coefficient.
- step S509 the quantization matrix selection unit 107 selects the first quantization matrix from among the quantization matrices generated in step S501.
- step S528, the transform unit 103 applies orthogonal transform to the prediction error generated in step S505 on an 8 * 8 pixel sub-block basis and generates an orthogonal transformed coefficient.
- step S529 the quantization matrix selection unit 107 selects the second quantization matrix from among the quantization matrices generated in step S501.
- step S5408 the transform unit 103 applies orthogonal transform to the prediction error generated in step S505 on a 16 * 16 pixel sub-block basis and generates an orthogonal transformed coefficient.
- step S549 the quantization matrix selection unit 107 selects the third quantization matrix from among the quantization matrices generated in step S501.
- step S568 the transform unit 103 applies orthogonal transform to the prediction error generated in step S505 on a 16 * 4 pixel sub-block basis and generates an orthogonal transformed coefficient.
- step S569 the quantization matrix selection unit 107 selects the fourth quantization matrix from among the quantization matrices generated in step S501.
- step S588 the transform unit 103 applies orthogonal transform to the prediction error generated in step S505 on a 4 * 16 pixel sub-block basis and generates an orthogonal transformed coefficient.
- step S589 the quantization matrix selection unit 107 selects the fifth quantization matrix from among the quantization matrices generated in step S501.
- step S510 the quantization unit 104 receives the orthogonal transformed coefficient generated in step S508, S528, S548, S568, or S588. Thereafter, the quantization unit 104 quantizes the orthogonal transformed coefficients using the quantization matrices selected in steps S509, S529, S549, S569, or S589 and generates the quantized coefficient.
- step S511 the coefficient encoding unit 105 encodes the quantized coefficient generated in step S510 and generates the quantized coefficient code data.
- step S512 the image encoding apparatus determines whether all of the sub-blocks in the basic block have been encoded. If all of the sub-blocks in the basic block have been encoded, the processing proceeds to step S513. However, if all of the sub-blocks in the basic block have not been encoded, the processing returns to step S505 in order to process the next sub-block.
- step S513 the image encoding apparatus determines whether all of the basic blocks have been encoded. If all of the basic blocks have been encoded, all operations are stopped and the processing is completed. However, if all of the basic blocks have not been encoded, the processing returns to step S504, where processing of the next basic block is started.
- a bit stream that is quantized using the quantization matrix best suited for the shape of a sub-block for orthogonal transform can be generated.
- a plurality of the quantization matrices may be prepared for one of the sub-block sizes and, thereafter, one of the quantization matrices may be selected and used in accordance with a prediction method or a transform method.
- one of the quantization matrices may be shared for the sub-block sizes having the same number of pixels.
- three 64-pixel sub-block sizes that is, an 8 * 8 pixel size, a 16 * 4 pixel size, and a 4 * 16 pixel size are employed.
- the quantization matrix for an 8 * 8 pixel sub-block may be used for a 16 * 4 pixel sub-block and a 4 * 16 pixel sub-block.
- the quantization matrix for a 16 * 4 pixel sub-block may be used for a 4 * 16 pixel sub-block.
- a difference between the quantization matrix and the quantization matrix corresponding to a different sub-block may be encoded. For example, when the quantization matrix for 16 * 4 pixels is encoded, a difference between each of the elements of the quantization matrix and the corresponding one of the elements of the quantization matrix for 8 * 8 pixels may be encoded.
- one of the quantization matrices may be encoded through quantization for the other sub-block size.
- an 8 * 8 pixel quantization matrix may be encoded on an element basis.
- a prediction value may be computed by averaging 2 * 2 elements in the 8 * 8 pixel quantization matrix or thinning out the elements, and the difference therebetween may be encoded.
- each of the elements of the 16 * 16 pixel quantization matrix is encoded.
- the 16 * 16 pixel quantization matrix is thinned out on a 1 * 4 element basis or a 4 * 1 element basis, or an average value is computed on a 1 * 4 element basis or a 4 * 1 element basis.
- the values may be directly used as the element of the quantization matrix.
- the values may be used as prediction values, and the differences may be encoded.
- each of the elements of the 4 * 4 pixel quantization matrix may be encoded.
- each of the elements of the 4 * 4 pixel quantization matrix may be subjected to interpolation, and the interpolated elements may be directly used as the elements of the 16 * 4 pixel quantization matrix and the 4 * 16 pixel quantization matrix.
- the values may be used as prediction values, and the differences may be encoded. Note that while description has been made with reference to a technique in which each of the elements is encoded in order to encode the quantization matrix, a technique is not limited thereto.
- the present exemplary embodiment has been described with reference to a technique for switching a quantization matrix input to the quantization unit 104 in accordance with the sub-block size, the technique is not limited thereto.
- a quantization unit corresponding each of the quantization matrices may be provided, and one of the quantization units may be selected on the basis of the output of the quantization matrix selection unit 107.
- orthogonal transform may be applied after the quantization matrix is selected, or selection of a quantization matrix and orthogonal transform may be performed at the same time.
- Fig. 3 is a block diagram of the configuration of an image decoding apparatus according to a second exemplary embodiment of the present invention. According to the present exemplary embodiment, decoding of the bit stream generated in the first exemplary embodiment illustrated in Fig. 1 is described.
- a decoding/separating unit 301 decodes the header information of an input bit stream and separates necessary code from the bit stream. Thereafter, the decoding/separating unit 301 outputs the code to units disposed downstream thereof.
- the decoding/separating unit 301 performs an operation that is the reverse of the operation performed by the code integrating unit 106 illustrated in Fig. 1.
- a quantization matrix decoding unit 308 extracts the quantization matrix code data from the header information of the bit stream and decode the extracted quantization matrix code data.
- a quantization matrix holding unit 309 temporarily stores a quantization matrices decoded by the quantization matrix decoding unit 308.
- a prediction/transform method extracting unit 306 decodes prediction/transform information from the code separated by the decoding/separating unit 301 on a basic block basis and determines the sub-block size on the basis of the prediction/transform information.
- a prediction method and prediction/transform are applied on the basis of the sub-block size.
- the sub-block size and the shape are the same as the orthogonal transform size and shape. However, they are not necessarily the same.
- a quantization matrix selection unit 307 selects one of the quantization matrices stored in the quantization matrix holding unit 309 on the basis of the sub-block size determined by the prediction/transform method extracting unit 306.
- a coefficient decoding unit 302 decodes quantized coefficient code from the code separated by the decoding/separating unit 301 and reconstructs the quantized coefficient.
- An inverse quantization unit 303 inverse-quantizes the quantized coefficient using the quantization matrix selected by the quantization matrix selection unit 307 and reconstructs the orthogonal transformed coefficient.
- An inverse transform unit 304 applies inverse orthogonal transform that is the reverse of the operation performed by the transform unit 103 illustrated in Fig. 1 and reconstructs the prediction error.
- a prediction reconstruction unit 305 reconstructs the image data of the basic block from the prediction information, such as the sub-block size by which prediction is performed, the prediction error, and already decoded image data.
- the bit stream of a moving image generated in the first exemplary embodiment is input on a frame basis.
- a configuration for receiving the bit stream of a still image for one frame may be employed.
- only an intra prediction decoding process is described below.
- the following image decoding operation can be applied to an inter prediction decoding process.
- stream data for one frame is input to the decoding/separating unit 301.
- the decoding/separating unit 301 decodes the header information required for reconstructing the image.
- the decoding/separating unit 301 separates code used in the subsequent process and outputs the code.
- the quantization matrix code data included in the header information is input to the quantization matrix decoding unit 308.
- the quantization matrix corresponding to the sub-block size is reconstructed.
- the quantization matrix is used in the subsequent inverse quantization process.
- the first quantization matrix for a 4 * 4 pixel sub-block, the second quantization matrix for an 8 * 8 pixel sub-block, and the third quantization matrix for a 16 * 16 pixel sub-block are reconstructed.
- the fourth quantization matrix for a 16 * 4 pixel sub-block, and the fifth quantization matrix for a 4 * 16 pixel sub-block are reconstructed.
- five sub-block sizes that is, 4 * 4 pixels, 8 * 8 pixels, 16 * 16 pixels, 16 * 4 pixels, and 4 * 16 pixels are employed.
- five types of quantization matrix are reconstructed.
- the number of types of quantization matrix varies with the number of the orthogonal transform shapes.
- the reconstructed quantization matrix is input to the quantization matrix holding unit 309 and is temporarily stored in the quantization matrix holding unit 309.
- codes related to prediction and transform are input to the prediction/transform method extracting unit 306 and are decoded.
- information indicating the prediction method and the sub-block size is generated.
- Information indicating the sub-block size is output to the quantization matrix selection unit 307 and the coefficient decoding unit 302.
- decoded information indicating the prediction method is output to the prediction reconstruction unit 305.
- the quantization matrix selection unit 307 selects one of the quantization matrices stored in the quantization matrix holding unit 309 using the input sub-block size information and outputs the selected quantization matrix to the inverse quantization unit 303. For example, according to the present exemplary embodiment, if the sub-block size is 4 * 16 pixels, the quantization matrix selection unit 307 selects the fifth quantization matrix in the quantization matrix holding unit 309 and outputs the fifth quantization matrix to the inverse quantization unit 303.
- the quantized coefficient code data is input to the coefficient decoding unit 302.
- the coefficient decoding unit 302 decodes the quantized coefficient code data on a sub-block size basis input from the prediction/transform method extracting unit 306.
- the quantized coefficient is reconstructed.
- the reconstructed quantized coefficient is output to the inverse quantization unit 303.
- the inverse quantization unit 303 receives the quantization matrix selected by the quantization matrix selection unit 307 and the quantized coefficient reconstructed by the coefficient decoding unit 302. Thereafter, the inverse quantization unit 303 applies inverse quantization using the quantization matrix to reconstruct the orthogonal transformed coefficient and outputs the reconstructed orthogonal transformed coefficient to the inverse transform unit 304.
- the inverse transform unit 304 receives the reconstructed orthogonal transformed coefficient and applies inverse orthogonal transform, which is the reverse of the operation performed by the transform unit 103 illustrated in Fig. 1, to the orthogonal transformed coefficient. Thus, the inverse transform unit 304 reconstructs the prediction error and outputs the reconstructed prediction error to the prediction reconstruction unit 305.
- the prediction reconstruction unit 305 performs prediction on the input prediction error using decoded surrounding pixel data on a sub-block basis in accordance with the prediction method decoded by the prediction/transform method extracting unit 306. Thus, the prediction reconstruction unit 305 reconstructs image data on a basic block basis and outputs the image data.
- Fig. 6 is a flowchart of an image decoding process performed by the image decoding apparatus according to the second exemplary embodiment.
- step S601 the decoding/separating unit 301 decodes the header information first.
- the quantization matrix decoding unit 308 decodes the quantization matrix code data included in the header information and reconstructs the quantization matrix used in the subsequent inverse quantization process.
- the decoded quantization matrix is stored in the quantization matrix holding unit 309.
- the first quantization matrix for a 4 * 4 pixel sub-block size, the second quantization matrix for an 8 * 8 pixel sub-block size, and the third quantization matrix for a 16 * 16 pixel sub-block size are decoded and reconstructed.
- the fourth quantization matrix for a 16 * 4 pixel sub-block size and the fifth quantization matrix for a 4 * 16 pixel sub-block size are decoded and reconstructed. Note that the decoding order is not limited thereto.
- step S603 the prediction/transform method extracting unit 306 decodes information related to prediction and transform on a basic block basis and generates the sub-block size using the decoded information.
- the prediction method and prediction/orthogonal transform are applied on the basis of a sub-block size.
- step S604 a process to be performed next is selected on the basis of the sub-block size generated in step S603. If the sub-block size is 4 * 4 pixels, the processing proceeds to step S605. However, if the sub-block size is 8 * 8 pixels, the processing proceeds to step S625. If the sub-block size is 16 * 16 pixels, the processing proceeds to step S645. If the sub-block size is 16 * 4 pixels, the processing proceeds to step S665. If the sub-block size is 4 * 16 pixels, the processing proceeds to step S685.
- step S605 the quantization matrix selection unit 307 selects one of the quantization matrices applied to the sub-block on the basis of the sub-block size extracted in step S603. More specifically, since the extracted sub-block size is 4 * 4 pixels, the quantization matrix selection unit 307 selects the first quantization matrix.
- the quantization matrix selection unit 307 selects the quantization matrix to be applied to the sub-block on the basis of the sub-block size. More specifically, since the extracted sub-block size is 8 * 8 pixels, the quantization matrix selection unit 307 selects the second quantization matrix. In step S645, the quantization matrix selection unit 307 selects the quantization matrix applied to the sub-block on the basis of the sub-block size. More specifically, since the extracted sub-block size is 16 * 16 pixels, the quantization matrix selection unit 307 selects the third quantization matrix. In step S665, the quantization matrix selection unit 307 selects the quantization matrix applied to the sub-block on the basis of the sub-block size.
- the quantization matrix selection unit 307 selects the fourth quantization matrix.
- the quantization matrix selection unit 307 selects the quantization matrix applied to the sub-block on the basis of the sub-block size. More specifically, since the extracted sub-block size is 4 * 16 pixels, the quantization matrix selection unit 307 selects the fifth quantization matrix.
- step S606 the coefficient decoding unit 302 decodes the quantized coefficient code data on a sub-block basis and reconstructs the quantized coefficient.
- step S607 the inverse quantization unit 303 applies inverse quantization to the quantized coefficient reconstructed in step S606 using the quantization matrix selected in steps S605, S625, S645, S665, or S685.
- the inverse quantization unit 303 reconstructs the orthogonal transformed coefficient.
- step S608 a process to be performed next is selected again on the basis of the sub-block size generated in step S603. If the sub-block size is 4 * 4 pixels, the processing proceeds to step S609. However, if the sub-block size is 8 * 8 pixels, the processing proceeds to step S629. If the sub-block size is 16 * 16 pixels, the processing proceeds to step S649. If the sub-block size is 16 * 4 pixels, the processing proceeds to step S669. If the sub-block size is 4 * 16 pixels, the processing proceeds to step S689.
- step S609 the inverse transform unit 304 applies inverse orthogonal transform to the orthogonal transformed coefficient reconstructed in step S607 on a 4 * 4 sub-block basis and reconstructs the prediction error.
- step S629 the inverse transform unit 304 applies inverse orthogonal transform to the orthogonal transformed coefficient reconstructed in step S607 on an 8 * 8 sub-block basis and reconstructs the prediction error.
- step S649 the inverse transform unit 304 applies inverse orthogonal transform to the orthogonal transformed coefficient reconstructed in step S607 on a 16 * 16 sub-block basis and reconstructs the prediction error.
- step S669 the inverse transform unit 304 applies inverse orthogonal transform to the orthogonal transformed coefficient reconstructed in step S607 on a 16 * 4 sub-block basis and reconstructs the prediction error.
- step S689 the inverse transform unit 304 applies inverse orthogonal transform to the orthogonal transformed coefficient reconstructed in step S607 on a 4 * 16 sub-block basis and reconstructs the prediction error.
- step S610 the prediction reconstruction unit 305 performs prediction using the decoded surrounding pixel data in accordance with the prediction method reconstructed in step S603.
- the prediction value is added to the prediction errors reconstructed in step S609, S629, S649, S669, or S689.
- the decoded image of the sub-block is reconstructed.
- step S611 the image decoding apparatus determines whether all of the sub-blocks in the basic block have been decoded. If all of the sub-blocks in the basic block have been decoded, the processing proceeds to step S612. However, if all of the sub-blocks in the basic block have not been decoded, the processing returns to step S604, where the processing for the next sub-block is started.
- step S612 the image decoding apparatus determines whether all of the basic blocks have been decoded. If all of the basic blocks have been decoded, all operations are stopped and the processing is completed. However, if all of the basic blocks have not been decoded, the processing returns to step S603, where the processing for the next basic block is started.
- the bit stream generated through the quantization process performed using a quantization matrix best suited for the orthogonal transform shape (the shape indicated by the sub-block size) in the first exemplary embodiment can be decoded, and a reconstructed image can be obtained.
- the size and shape of the basic block are not limited to those described above.
- the size and shape of the sub- block are not limited to those described above.
- the quantization matrix may be updated.
- the decoding/separating unit 301 detects the quantization matrix code data, and the quantization matrix decoding unit 308 decodes the quantization matrix code data.
- the decoded quantization matrix data is replaced with the corresponding quantization matrix stored in the quantization matrix holding unit 309. At that time, all of the quantization matrices may be replaced.
- by detecting the sub-block size of the quantization matrix to be replaced only part of the quantization matrix can be updated.
- by detecting the sub-block size of the quantization matrix to be replaced and the position of an element to be updated only some of the elements of the matrix can be updated.
- a plurality of inverse quantization units each corresponding to one of the quantization matrices may be prepared and, thereafter, one of the inverse quantization units may be selected in accordance with the output of the quantization matrix selection unit 307.
- a plurality of steps S606 and a plurality of steps S607 may be prepared. Thereafter, determination is made in step S604, and selection of the quantization matrix, decoding of the coefficient, inverse quantization, and inverse transform may be performed for each of the sub-block sizes at the same time.
- the sequence is not limited thereto.
- selection of the quantization matrix may be made after the quantized coefficient is decoded.
- selection of the quantization matrix and decoding of the quantized coefficient may be performed at the same time.
- Fig. 8 is a block diagram of an image encoding apparatus according to the present exemplary embodiment. The same numbering is used for components which were previously illustrated in Fig. 1 (the first exemplary embodiment), and description of the component is not repeated.
- An encoding method generation unit 851 generates encoding information indicating how to encode each of the quantization matrices.
- a quantization matrix encoding unit 809 encodes the quantization matrix stored in the quantization matrix holding unit 108 on the basis of the encoding information generated by the encoding method generation unit 851 and generates quantization matrix code data.
- a code integrating unit 806 Like the code integrating unit 106 illustrated in Fig. 1, a code integrating unit 806 generates code related to the header information, prediction, and transform.
- the code integrating unit 806 differs from the code integrating unit 106 in that the encoding information is received from the encoding method generation unit 851 and is encoded.
- the encoding method generation unit 851 generates the encoding information indicating how to encode each of the quantization matrices first. According to the present exemplary embodiment, if the encoding information is "0", each of the elements of a quantization matrix is directly encoded. However, if the encoding information is "1", the difference between an element and the immediately previous element is encoded. If the encoding information is "2", the difference between an element and an element of the immediately previously encoded quantization matrix having the same number of elements is encoded. If the encoding information is "3", the elements of the immediately previously encoded quantization matrix having a larger number of elements are thinned out to generate a prediction quantization matrix.
- the difference between an element and an element of the prediction quantization matrix is encoded. Furthermore, if the encoding information is "4", the elements of the immediately previously encoded quantization matrix having a smaller number of elements are increased by interpolation to generate a prediction quantization matrix. Thereafter, the difference between an element and an element of the prediction quantization matrix is encoded.
- the method for encoding each of the elements of the quantization matrix is not limited thereto. For example, like DPCM, after the difference between a first element and a second element is encoded, the prediction difference may be encoded. Alternatively, by referring to the immediately previous decoded quantization matrix or a decoded quantization matrix indicated by other code, encoding may be performed.
- the elements are thinned out.
- the average value or the median value may be used.
- an identifier indicating that the difference is shared by another quantization matrix may be encoded.
- a combination of the quantization matrix encoding method information and the quantization matrix encoding method is not limited thereto. Any method for generating the quantization matrix encoding method information can be employed. For example, the user may input the quantization matrix encoding method information. Alternatively, a predetermined fixed value may be used.
- a value computed using the characteristics of the quantization matrices stored in the quantization matrix holding unit 108 may be used.
- the generated quantization matrix encoding method information is input to the quantization matrix encoding unit 809 and the code integrating unit 806.
- the quantization matrix encoding unit 809 encodes each of the quantization matrices stored in the quantization matrix holding unit 108 on the basis of the input encoding information and generates quantization matrix code data. Thereafter, the quantization matrix encoding unit 809 outputs the generated quantization matrix code data to the code integrating unit 806.
- the code integrating unit 806 encodes the encoding information generated by the encoding method generation unit 851 and generates encoding information code. Thereafter, the code integrating unit 806 embeds the generated encoding information code into, for example, the header information and outputs the encoding information code. In addition, the code integrating unit 806 encodes the sub-block size information generated by the prediction unit 102 and outputs the encoded sub-block size information. At that time, any encoding method can be used. For example, Huffman coding or arithmetic coding can be employed.
- Fig. 7B illustrates an example of a bit stream including the encoding information code.
- the encoding information code may be included in any one of the headers, such as a sequence header or a picture header. However, the encoding information code is located prior to each of the quantization matrix code data items.
- Fig. 10 is a flowchart of an exemplary image encoding process performed by the image encoding apparatus according to the third exemplary embodiment. The same numbering is used for elements which were previously illustrated in Fig. 5 (the first exemplary embodiment), and description of the elements is not repeated.
- step S1051 the encoding method generation unit 851 determines the encoding information to be used in the subsequent step S1002.
- step S1002 the quantization matrix encoding unit 809 encodes the quantization matrix generated in step S501 on the basis of the encoding information determined in step S1051.
- step S1003 the code integrating unit 806 encodes the encoding information and generates the encoding information code. As for other code, the code integrating unit 806 embeds the encoding information code into the header portion and outputs the encoding information code.
- each of the quantization matrices is encoded using an encoding method best suited for the quantization matrix.
- a bit stream subjected to a quantization process using an optimum quantization matrix corresponding to orthogonal transform indicated by the sub-block size can be generated. In this way, the amount of code generated by encoding the quantization matrix can be reduced.
- an encoding method may be switched on a quantization matrix basis or a sub-block size basis.
- Fig. 9 is a block diagram of an image decoding apparatus according to the present exemplary embodiment. The same numbering is used for components which were previously illustrated in Fig. 3 (the second exemplary embodiment), and description of the components is not repeated.
- a decoding/separating unit 901 decodes the header information of an input bit stream and separates necessary code from the bit stream. Thereafter, the decoding/separating unit 901 outputs the separated code to a unit downstream of the decoding/separating unit 901.
- the decoding/separating unit 901 differs from the decoding/separating unit 301 illustrated in Fig. 3 in that the encoding information code is separated from the header information of the bit stream and is output to a unit downstream of the decoding/separating unit 901.
- a decoding method decoding unit 951 decodes the encoding information code separated by the decoding/separating unit 901 and reconstructs the quantization matrix encoding method information.
- a quantization matrix decoding unit 908 decodes the quantization matrix code data separated from the header information of the bit stream by the decoding/separating unit 901 on the basis of the encoding method information.
- input stream data for one frame is input to the decoding/separating unit 901.
- the header information necessary for reconstructing the image is decoded.
- code to be used in the subsequent process is separated and output.
- the encoding information code included in the header information is input to the decoding method decoding unit 951, and the quantization matrix encoding method information is reconstructed. Thereafter, the reconstructed quantization matrix encoding method information is input to the quantization matrix decoding unit 908.
- the quantization matrix code data included in the header information is input to the quantization matrix decoding unit 908.
- the quantization matrix decoding unit 908 selects one of the quantization matrix decoding methods on the basis of the input quantization matrix encoding method information and decodes the quantization matrix code data.
- the quantization matrices to be used in the subsequent inverse quantization process are reconstructed.
- the reconstructed quantization matrices are temporarily stored in the quantization matrix holding unit 309.
- Fig. 11 is a flowchart of an exemplary image decoding process performed by the image decoding apparatus according to the fourth exemplary embodiment. The same numbering is used for elements which were previously illustrated in Fig. 6 (the second exemplary embodiment), and description of the elements is not repeated.
- step S1101 the decoding/separating unit 901 decodes the header information.
- step S1151 the decoding method decoding unit 951 decodes the quantization matrix encoding information code included in the header information and reconstructs the quantization matrix encoding method information.
- step S1102 the quantization matrix decoding unit 908 selects one of the quantization matrix decoding methods on the basis of the quantization matrix encoding method information reconstructed in step S1151. Thereafter, the quantization matrix decoding unit 908 decodes the quantization matrix code data included in the header information and reconstructs the quantization matrices.
- bit stream generated through the quantization process performed using quantization matrices encoded using an encoding method best suited for the sub-block size in the third exemplary embodiment can be decoded, and a reconstructed image can be obtained.
- a bit stream having a reduced amount of code through an encoding process adaptive to quantization matrices can be obtained.
- a decoding method may be selected on a quantization matrix basis.
- a decoding method may be selected for each of the sub-block sizes.
- Fig. 13 is a block diagram of an image encoding apparatus according to the present exemplary embodiment. The same numbering is used for components which were previously illustrated in Fig. 1 (the first exemplary embodiment), and description of the components is not repeated.
- a quantization matrix holding unit 1308 generates a quantization matrix and temporarily holds the generated quantization matrix. Any method for generating a quantization matrix to be held can be employed. For example, the user may input the quantization matrix. Alternatively, the quantization matrix may be computed using the characteristics of an input image, or a quantization matrix predetermined as an initial value may be used. According to the present exemplary embodiment, quantization matrices corresponding to square orthogonal transform, such as 4 * 4 pixel, 8 * 8 pixel, and 16 * 16 pixel orthogonal transform, are generated and stored.
- quantization matrices that correspond to rectangular orthogonal transform, such as 16 * 4 pixel and 4 * 16 pixel orthogonal transform, and that are generated by a quantization matrix reduction unit 1351 (described in more detail below) are input and stored.
- generated and stored quantization matrices are not limited thereto.
- a 32 * 32 pixel square quantization matrix may be further generated and, thereafter, the reduced 32 * 8 pixel and 8 * 32 pixel rectangular quantization matrices may be further stored.
- a quantization matrix reduction unit 1351 reduces one side of a square quantization matrix and generates a rectangular quantization matrix.
- the quantization matrix reduction unit 1351 receives a 16 * 16 pixel square quantization matrix generated by the quantization matrix holding unit 1308 and performs a reduction process to generate a 4 * 16 pixel quantization matrix and a 16 * 4 pixel quantization matrix. The reduction process is described below with reference to Figs. 17A to 17C.
- Fig. 17A illustrates a 16 * 16 pixel quantization matrix modeled using symbols.
- the symbols “double circle”, “circle”, “triangle”, and “cross” represent elements of a quantization matrix.
- the quantization matrix reduction unit 1351 extracts the elements at the positions indicated by a double circle and a circle from the 16 * 16 pixel quantization matrix illustrated in Fig. 17A in the vertical direction and, thus, generates a 16 * 4 pixel quantization matrix illustrated in Fig. 17B.
- the quantization matrix reduction unit 1351 extracts the elements at the positions indicated by a double circle and a triangle from the 16 * 16 pixel quantization matrix illustrated in Fig. 17A in the horizontal direction and, thus, generates a 4 * 16 pixel quantization matrix illustrated in Fig. 17C.
- a quantization matrix encoding unit 1309 encodes a square quantization matrix among the quantization matrices stored in the quantization matrix holding unit 1308 and generates quantization matrix code data.
- any method for encoding the quantization matrix can be employed.
- Huffman coding or arithmetic coding can be directly applied to the value of each of the elements of the quantization matrix.
- Huffman coding or arithmetic coding may be applied to a difference between the value of the element and the value of the immediately previous element or a difference between the value of the element and the value of an element of a different quantization matrix.
- a code integrating unit 1306 generates code related to header information, prediction, and transform. In addition, the code integrating unit 1306 integrates the quantized coefficient code data generated by the coefficient encoding unit 105 with the quantization matrix code data generated by the quantization matrix encoding unit 1309.
- the quantization matrix holding unit 1308 stores the quantization matrices for square sub-block shapes among the quantization matrices used for quantizing the frame. According to the present exemplary embodiment, five sub-block sizes, that is, the 4 * 4 pixel size, the 8 * 8 pixel size, the 16 * 16 pixel size, the 16 * 4 pixel size, and the 4 * 16 pixel size, are employed. Thus, the quantization matrix holding unit 1308 holds the first quantization matrix corresponding to 4 * 4 pixel orthogonal transform, the second quantization matrix corresponding to 8 * 8 pixel orthogonal transform, and the third quantization matrix corresponding to 16 * 16 pixel orthogonal transform. According to the present exemplary embodiment, the quantization matrix holding unit 1308 holds these three quantization matrices.
- the quantization matrix holding unit 1308 outputs the 16 * 16 pixel quantization matrix to the quantization matrix reduction unit 1351.
- the quantization matrix reduction unit 1351 reduces the input 16 * 16 pixel quantization matrix using the above-described method and generates a 16 * 4 pixel quantization matrix and a 4 * 16 pixel quantization matrix. Thereafter, the quantization matrix reduction unit 1351 outputs the 16 * 4 pixel quantization matrix and the 4 * 16 pixel quantization matrix to the quantization matrix holding unit 1308.
- the quantization matrix holding unit 1308 further stores the 16 * 4 pixel quantization matrix and the 4 * 16 pixel quantization matrix input from the quantization matrix reduction unit 1351. That is, the quantization matrix holding unit 1308 further holds the fourth quantization matrix corresponding to 16 * 4 pixel orthogonal transform and the fifth quantization matrix corresponding to 4 * 16 pixel orthogonal transform.
- the quantization matrix encoding unit 1309 sequentially reads the quantization matrices corresponding to square orthogonal transform from the quantization matrix holding unit 1308 in the order of increasing sub-block size and encodes the quantization matrix.
- the quantization matrix encoding unit 1309 generates the quantization matrix code data.
- three quantization matrices that is, the first quantization matrix corresponding to 4 * 4 pixel orthogonal transform, the second quantization matrix corresponding to 8 * 8 pixel orthogonal transform, and the third quantization matrix corresponding to 16 * 16 pixel orthogonal transform are encoded.
- the encoding method is not limited to the above-described encoding method.
- the code integrating unit 1306 Like the code integrating unit 106 illustrated in Fig. 1, the code integrating unit 1306 generates code related to the sequence header, the frame header, the picture header, and a slice header. In addition, the code integrating unit 1306 embeds the quantization matrix code data generated by the quantization matrix encoding unit 1309 into any one of the headers.
- Fig. 7C illustrates an example of a bit stream output in the present exemplary embodiment. According to the present exemplary embodiment, the quantization matrices are encoded into the sequence header of the bit stream. However, the encoding location is not limited thereto.
- Fig. 15 is a flowchart of an exemplary image encoding process performed by the image encoding apparatus according to the fifth exemplary embodiment. The same numbering is used for elements which were previously illustrated in Fig. 5 (the first exemplary embodiment), and description of the elements is not repeated.
- step S1501 the quantization matrix holding unit 1308 generates at least one quantization matrix.
- five sub-block sizes are employed.
- three sub-block sizes have a square shape. Accordingly, as described above, the first to third quantization matrices are generated.
- step S1502 the quantization matrix encoding unit 1309 encodes each of the square quantization matrices generated by the quantization matrix holding unit 1308.
- step S1551 the quantization matrix reduction unit 1351 reduces the third quantization matrix in the above-described manner.
- the quantization matrix reduction unit 1351 generates the fourth quantization matrix corresponding to 16 * 4 orthogonal transform and the fifth quantization matrix corresponding to 4 * 16 orthogonal transform.
- step S1503 the code integrating unit 1306 encodes the header portion of the bit stream and outputs the encoded header portion. At that time, the code integrating unit 1306 outputs the quantization matrix code data encoded in step S1502 together with the header portion.
- step S1551 is performed between steps S1502 and S1503.
- the order of performance of step S1551 is not limited thereto.
- Step S1551 can be performed after step S1501 is performed and before step S504 is performed.
- quantization in order to generate a bit stream, quantization can be performed using the quantization matrix best suited for the orthogonal transform indicated by each of the sub-block sizes, and only square quantization matrices can be encoded. In this way, the amount of code generated by encoding the quantization matrices can be reduced.
- the quantization matrix holding unit 1308 may hold only square quantization matrices. Each time a rectangular quantization matrix is used, a square quantization matrix may be reduced to generate the rectangular quantization matrix. In this way, the quantization matrix holding unit 1308 can reduce an amount of memory required for holding the quantization matrices.
- the reduction process is performed.
- the reduction process is not limited thereto.
- (4n + 1)th elements, (4n + 2)th elements, or (4n + 3)th elements may be extracted, and the other elements may be removed.
- the reduction process may be performed.
- the reduction process may be performed.
- the reduction process may be performed.
- the scaling factor is not limited thereto. Even when a 1/8 time reduction process in which 16 * 16 pixels are reduced to 16 * 2 pixels or 2 * 16 pixels is employed or a 1/2 time reduction process in which 16 * 16 pixels are reduced to 16 * 8 pixels or 8 * 16 pixels is employed, the advantage of the present invention can be still provided. Still alternatively, even when 16 * 16 pixels are reduced to 16 * 4 pixels and, subsequently, the generated 16 * 4 pixels are converted into 16 * 2 pixels, the advantage of the present invention can be still provided.
- the reduction process is not limited thereto.
- a quantization matrix having an 8 * 8 pixel size, a 32 * 32 pixel size, or a larger pixel size may be reduced to generate a rectangular quantization matrix.
- Fig. 14 is a block diagram of an image decoding apparatus according to a sixth exemplary embodiment of the present invention. According to the present exemplary embodiment, the bit stream generated in the fifth exemplary embodiment illustrated in Fig. 13 is described. The same numbering is used for components which were previously illustrated in Fig. 3 (the second exemplary embodiment), and description of the components is not repeated.
- a decoding/separating unit 14001 decodes the header information of an input bit stream and separates necessary code from the bit stream. Thereafter, the decoding/separating unit 14001 outputs the separated code to units downstream of the decoding/separating unit 14001.
- the decoding/separating unit 14001 performs a process that is the reverse of the process performed by the code integrating unit 1306 illustrated in Fig. 13.
- a quantization matrix decoding unit 14008 extracts the quantization matrix code data from the header information of the bit stream and decodes the quantization matrix code data.
- quantization matrices corresponding to 4 * 4 pixel, 8 * 8 pixel, and 16 * 16 pixel square orthogonal transform are encoded. Therefore, according to the present exemplary embodiment, these three types of quantization matrices are reconstructed.
- a quantization matrix reduction unit 14051 reduces one side of a square quantization matrix and generates a rectangular quantization matrix.
- the quantization matrix reduction unit 14051 performs a process that is the same as the process performed by the quantization matrix reduction unit 1351 of the sixth exemplary embodiment illustrated in Fig. 13.
- the quantization matrix reduction unit 14051 receives a 16 * 16 pixel square quantization matrix generated by the quantization matrix decoding unit 14008 and performs a reduction process to generate a 4 * 16 pixel quantization matrix and a 16 * 4 pixel quantization matrix.
- the reduction process is the same as the reduction process performed by the quantization matrix reduction unit 1351 illustrated in Fig. 13.
- a quantization matrix holding unit 14009 temporarily holds the square quantization matrices reconstructed by the quantization matrix decoding unit 14008 and the rectangular quantization matrices generated by the quantization matrix reduction unit 14051.
- the moving image bit stream generated in the fifth exemplary embodiment is input on a frame basis.
- a still image bit stream for one frame may be input.
- bit streams separated on a slice basis or on a packet basis may be sequentially input.
- the input stream data for one frame is input to the decoding/separating unit 14001.
- the decoding/separating unit 14001 decodes the header information required for reconstructing the image.
- the decoding/separating unit 14001 separates code to be used in the subsequent process and outputs the code.
- the quantization matrix code data included in the header information is input to the quantization matrix decoding unit 14008.
- the quantization matrix decoding unit 14008 reconstructs the quantization matrix that corresponds to the sub-block size and that is to be used in the subsequent inverse quantization process.
- three types of square quantization matrix that is, the first quantization matrix corresponding to a 4 * 4 pixel sub-block, the second quantization matrix corresponding to an 8 * 8 pixel sub-block, the third quantization matrix corresponding to a 16 * 16 pixel sub-block, are reconstructed.
- five sub-block sizes that is, the 4 * 4 pixel size, the 8 * 8 pixel size, the 16 * 16 pixel size, the 16 * 4 pixel size, and the 4 * 16 pixel size are employed.
- the number of square sub-block sizes is three. Accordingly, the three types of quantization matrix are reconstructed. However, if the number of the orthogonal transform shapes increases or decreases, the number of types of quantization matrix to be reconstructed increases or decreases.
- the reconstructed square quantization matrix is input to the quantization matrix reduction unit 14051.
- the quantization matrix reduction unit 14051 generates a quantization matrix corresponding to rectangular orthogonal transform from the input square quantization matrix.
- two type of orthogonal transform size that is, 16 * 4 pixels and 4 * 16 pixels, are employed.
- a 16 * 4 pixel quantization matrix and a 4 * 16 pixel quantization matrix are generated by reducing the 16 * 16 pixel quantization matrix.
- the generated rectangular quantization matrices are input to the quantization matrix holding unit 14009 together with the square quantization matrix reconstructed by the quantization matrix decoding unit 14008 and are temporarily stored in the quantization matrix holding unit 14009.
- the codes related to prediction and transform are input to the prediction/transform method extracting unit 306 and are decoded.
- the information indicating a prediction method and the sub-block size is generated.
- the quantized coefficient code data is input to the coefficient decoding unit 302.
- Fig. 16 is a flowchart of an exemplary image decoding process performed by the image decoding apparatus according to the sixth exemplary embodiment. The same numbering is used for elements which were previously illustrated in Fig. 6 (the second exemplary embodiment), and description of the elements is not repeated.
- step S1601 the decoding/separating unit 14001 decodes the header information first.
- the quantization matrix decoding unit 14008 decodes the quantization matrix code data included in the header information and generates the quantization matrix to be used in the subsequent inverse quantization process.
- quantization matrices corresponding to square sub-block sizes that is, the first quantization matrix corresponding to 4 * 4 pixels, the second quantization matrix corresponding to 8 * 8 pixels, and the third quantization matrix corresponding to 16 * 16 pixels, are decoded and reconstructed. Note that at that time, any decoding order can be employed.
- step S1651 the quantization matrix reduction unit 14051 reduces the third quantization matrix in the above-described manner and generates the fourth quantization matrix corresponding to 16 * 4 pixel orthogonal transform and the fifth quantization matrix corresponding to 4 * 16 pixel orthogonal transform.
- the process performed in step S1651 is the same as the process performed in step S1551 illustrated in Fig. 15.
- the bit stream generated through the quantization process performed using a quantization matrix best suited for the orthogonal transform shape (the shape indicated by the sub-block size) and an encoding process in which only square quantization matrices are encoded in the fifth exemplary embodiment can be decoded, and a reconstructed image can be obtained.
- a bit stream having a reduced amount of code generated when the quantization matrices are encoded can be decoded.
- the quantization matrix holding unit 14009 may store only square quantization matrices. Each time a rectangular quantization matrix is used, a square quantization matrix may be reduced to generate the rectangular quantization matrix. In this way, the quantization matrix holding unit 14009 can reduce an amount of memory required for holding the quantization matrices.
- the reduction process is performed.
- the reduction process is not limited thereto.
- (4n + 1)th elements, (4n + 2)th elements, or (4n + 3)th elements may be extracted, and the other elements may be removed.
- the reduction process may be performed.
- the reduction process may be performed.
- the reduction process may be performed.
- the scaling factor is not limited thereto. Even when a 1/8 time reduction process in which 16 * 16 pixels are reduced to 16 * 2 pixels or 2 * 16 pixels is employed or a 1/2 time reduction process in which 16 * 16 pixels are reduced to 16 * 8 pixels or 8 * 16 pixels is employed, the advantage of the present invention can be still provided.
- Fig. 12 is a block diagram of exemplary computer hardware applicable to the image encoding apparatus and the image decoding apparatus according to the above-described exemplary embodiments.
- a central processing unit (CPU) 1401 performs overall control of the computer using computer programs and data stored in a random access memory (RAM) 1402 and a read only memory (ROM) 1403.
- the CPU 1401 performs the above-described processing performed by the image encoding apparatus and the image decoding apparatus according to the above-described exemplary embodiments. That is, the CPU 1401 functions as the processing units illustrated in Figs. 1, 3, 8, 9, 13, and 14.
- the RAM 1402 has a memory area that temporarily holds a computer program and data loaded from an external storage unit 1406 and data externally acquired via an interface (I/F) 1409.
- the RAM 1402 has a work area used when the CPU 1401 performs a variety of processes. That is, the RAM 1402 is used as, for example, a frame memory or a variety of memory areas.
- the ROM 1403 stores the setting data and a boot program of the computer.
- An operation unit 1404 includes, for example, a keyboard and a mouse. By manipulating the operation unit 1404, a user of the computer can input a variety of instructions to the CPU 1401.
- a display unit 1405 displays the result of processing performed by the CPU 1401.
- the display unit 1405 is formed from, for example, a display device, such as a liquid crystal display.
- the external storage unit 1406 is a high-capacity information storage unit, such as a hard disk drive.
- the external storage unit 1406 stores an operating system (OS) and the computer programs used by the CPU 1401 that realizes the functions of the units illustrated in Figs. 1, 3, 8, 9, 13, and 14. Furthermore, the external storage unit 1406 may store image data items to be processed.
- OS operating system
- the external storage unit 1406 may store image data items to be processed.
- the computer program and data stored in the external storage unit 1406 are loaded into the RAM 1402 as needed under the control of the CPU 1401 and are processed by the CPU 1401.
- the I/F 1407 can have a local area network (LAN), a network such as the Internet, a projector, and a display unit connected thereto.
- the computer can receive and transmit a variety of information items via the I/F 1407.
- a bus 1408 connects the above-described units with one another.
- the CPU 1401 mainly controls the operations illustrated in the above-described flowcharts.
- the functions of the above-described exemplary embodiments can be also realized by mounting a storage medium having a computer program that realizes the functions in a system that reads the code of the computer program and executes the functions.
- the code of the computer program read out of the storage medium realizes the functions of the above-described exemplary embodiments, and the storage medium storing the code of the computer program provides the present invention.
- the case in which, for example, the operating system (OS) that runs in a computer in accordance with the instructions of the program code executes some of or all of the above-described functions to realize the functions is encompassed within the invention.
- OS operating system
- the present invention may be realized through the following embodiment. That is, the computer program code read out of the storage medium is written to a memory of an add-on expansion board mounted in a computer or a memory of an add-on expansion unit connected to a computer. After the program code is written, a CPU in the add-on expansion board or in the add-on expansion unit executes some of or all of the functions of the above-described embodiments under the control of the computer program code.
- the storage medium stores program code of the computer programs corresponding to the above-described flowcharts.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un appareil de codage d'image qui comprend une unité de division en blocs qui divise une image d'entrée en une pluralité de blocs, une unité de prédiction qui effectue une prédiction sur chacun des blocs divisés à l'aide de blocs codés et génère une erreur de prédiction, une unité de transformation qui détermine une forme d'un bloc de traitement parmi une pluralité de formes carrées ou rectangulaires de blocs de traitement pour une transformation orthogonale, applique une transformation orthogonale de la forme déterminée à l'erreur de prédiction générée par l'unité de prédiction, et génère un coefficient transformé, une unité de sélection de matrice de quantification qui sélectionne une matrice de quantification sur la base de la forme d'un bloc de traitement pour transformation orthogonale déterminée par l'unité de transformation, une unité de quantification qui quantifie le coefficient transformé à l'aide de la matrice de quantification sélectionnée par l'unité de sélection de matrice de quantification et génère un coefficient quantifié, et une unité de codage de coefficient qui code le coefficient quantifié généré par l'unité de quantification.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011155012 | 2011-07-13 | ||
JP2011-155012 | 2011-07-13 | ||
JP2011-243937 | 2011-11-07 | ||
JP2011243937A JP2013038758A (ja) | 2011-07-13 | 2011-11-07 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013008459A1 true WO2013008459A1 (fr) | 2013-01-17 |
Family
ID=47505762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/004471 WO2013008459A1 (fr) | 2011-07-13 | 2012-07-11 | Appareil de codage d'image, procédé de codage d'image, appareil de décodage d'image, procédé de décodage d'image et programme |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2013038758A (fr) |
WO (1) | WO2013008459A1 (fr) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683801A (zh) * | 2013-11-29 | 2015-06-03 | 华为技术有限公司 | 图像压缩方法和装置 |
US9560347B2 (en) | 2011-08-23 | 2017-01-31 | Hfi Innovation Inc. | Method and system of transform block processing according to quantization matrix in video coding |
US9800874B2 (en) | 2013-06-28 | 2017-10-24 | Renesas Electronics Corporation | Image decoding apparatus executing successive tile decoding and filtering around tile boundary |
WO2020140889A1 (fr) * | 2019-01-03 | 2020-07-09 | 华为技术有限公司 | Procédé de quantification et de déquantification et dispositif |
CN111886865A (zh) * | 2018-03-30 | 2020-11-03 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法和解码方法 |
CN113557726A (zh) * | 2019-03-11 | 2021-10-26 | 佳能株式会社 | 图像解码设备、图像解码方法和程序 |
US11166025B2 (en) | 2018-03-30 | 2021-11-02 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
RU2765428C1 (ru) * | 2018-12-17 | 2022-01-31 | Кэнон Кабусики Кайся | Устройство кодирования изображений, устройство декодирования изображений, способы управления ими и программа |
TWI770441B (zh) * | 2018-12-17 | 2022-07-11 | 日商佳能股份有限公司 | 圖像編碼裝置、圖像解碼裝置、其等之控制方法及程式 |
US11856198B2 (en) | 2019-06-07 | 2023-12-26 | Canon Kabushiki Kaisha | Image decoding device, method, and non-transitory computer-readable storage medium |
US11962806B2 (en) | 2019-03-11 | 2024-04-16 | Canon Kabushiki Kaisha | Image decoding apparatus, image decoding method, and storage medium |
US12160577B2 (en) | 2019-08-14 | 2024-12-03 | Interdigital Ce Patent Holdings, Sas | Quantization matrix prediction for video encoding and decoding |
TWI881668B (zh) | 2018-12-17 | 2025-04-21 | 日商佳能股份有限公司 | 圖像編碼裝置、圖像解碼裝置、其等之控制方法及程式 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6528765B2 (ja) * | 2014-03-28 | 2019-06-12 | ソニー株式会社 | 画像復号装置および方法 |
KR20180007680A (ko) * | 2016-07-13 | 2018-01-23 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
WO2020003740A1 (fr) * | 2018-06-29 | 2020-01-02 | キヤノン株式会社 | Dispositif de codage d'image, dispositif de décodage d'image, procédés de commande et programme correspondants |
JP2020098983A (ja) | 2018-12-17 | 2020-06-25 | キヤノン株式会社 | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法 |
JP2020150340A (ja) | 2019-03-11 | 2020-09-17 | キヤノン株式会社 | 画像符号化装置、画像符号化方法、及びプログラム |
JP2021048532A (ja) | 2019-09-19 | 2021-03-25 | キヤノン株式会社 | 画像符号化装置、画像復号装置及びそれらの制御方法及びプログラム |
JP2023140150A (ja) | 2022-03-22 | 2023-10-04 | キヤノン株式会社 | 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法 |
JP2023140151A (ja) | 2022-03-22 | 2023-10-04 | キヤノン株式会社 | 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003533141A (ja) * | 2000-05-10 | 2003-11-05 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | 動画像シーケンスの変換符号化方法 |
WO2004029880A1 (fr) * | 2002-09-26 | 2004-04-08 | Docomo Communications Laboratories Usa, Inc. | Transformees de faible complexite et unifiees pour codage video |
-
2011
- 2011-11-07 JP JP2011243937A patent/JP2013038758A/ja active Pending
-
2012
- 2012-07-11 WO PCT/JP2012/004471 patent/WO2013008459A1/fr active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003533141A (ja) * | 2000-05-10 | 2003-11-05 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | 動画像シーケンスの変換符号化方法 |
WO2004029880A1 (fr) * | 2002-09-26 | 2004-04-08 | Docomo Communications Laboratories Usa, Inc. | Transformees de faible complexite et unifiees pour codage video |
Non-Patent Citations (2)
Title |
---|
JUNICHI TANAKA ET AL.: "Quantization Matrix for HEVC", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, 16 March 2011 (2011-03-16), GENEVA, CH * |
XIMIN ZHANG ET AL.: "Method and syntax for quantization matrices representation", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 7TH MEETING, 21 November 2011 (2011-11-21), GENEVA * |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9560347B2 (en) | 2011-08-23 | 2017-01-31 | Hfi Innovation Inc. | Method and system of transform block processing according to quantization matrix in video coding |
US10218977B2 (en) | 2011-08-23 | 2019-02-26 | Hfi Innovation Inc. | Method and system of transform block processing according to quantization matrix in video coding |
US9800874B2 (en) | 2013-06-28 | 2017-10-24 | Renesas Electronics Corporation | Image decoding apparatus executing successive tile decoding and filtering around tile boundary |
CN104683801A (zh) * | 2013-11-29 | 2015-06-03 | 华为技术有限公司 | 图像压缩方法和装置 |
EP3068134A4 (fr) * | 2013-11-29 | 2017-02-22 | Huawei Technologies Co., Ltd. | Procédé et dispositif de compression d'image |
US9888245B2 (en) | 2013-11-29 | 2018-02-06 | Huawei Technologies Co., Ltd. | Image compression method and apparatus for performing amplitude decreasing processing |
CN104683801B (zh) * | 2013-11-29 | 2018-06-05 | 华为技术有限公司 | 图像压缩方法和装置 |
US11595654B2 (en) | 2018-03-30 | 2023-02-28 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
TWI850920B (zh) * | 2018-03-30 | 2024-08-01 | 美商松下電器(美國)知識產權公司 | 編碼裝置、解碼裝置及電腦可讀取之非暫時性媒體 |
US12177441B2 (en) | 2018-03-30 | 2024-12-24 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
US11166025B2 (en) | 2018-03-30 | 2021-11-02 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
CN111886865A (zh) * | 2018-03-30 | 2020-11-03 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法和解码方法 |
US11722670B2 (en) | 2018-03-30 | 2023-08-08 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
US11457215B2 (en) | 2018-03-30 | 2022-09-27 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
US11716473B2 (en) | 2018-03-30 | 2023-08-01 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
TWI789511B (zh) * | 2018-03-30 | 2023-01-11 | 美商松下電器(美國)知識產權公司 | 編碼裝置及解碼裝置 |
US11683492B2 (en) | 2018-03-30 | 2023-06-20 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
CN116233455A (zh) * | 2018-03-30 | 2023-06-06 | 松下电器(美国)知识产权公司 | 编码装置、解码装置以及存储介质 |
US11677949B2 (en) | 2018-03-30 | 2023-06-13 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
US11997276B2 (en) | 2018-12-17 | 2024-05-28 | Canon Kabushiki Kaisha | Image encoding apparatus, image decoding apparatus, control methods and non-transitory computer-readable storage medium |
TWI788268B (zh) * | 2018-12-17 | 2022-12-21 | 日商佳能股份有限公司 | 圖像編碼裝置、圖像解碼裝置、其等之控制方法及程式 |
TWI770441B (zh) * | 2018-12-17 | 2022-07-11 | 日商佳能股份有限公司 | 圖像編碼裝置、圖像解碼裝置、其等之控制方法及程式 |
TWI881668B (zh) | 2018-12-17 | 2025-04-21 | 日商佳能股份有限公司 | 圖像編碼裝置、圖像解碼裝置、其等之控制方法及程式 |
RU2765428C1 (ru) * | 2018-12-17 | 2022-01-31 | Кэнон Кабусики Кайся | Устройство кодирования изображений, устройство декодирования изображений, способы управления ими и программа |
WO2020140889A1 (fr) * | 2019-01-03 | 2020-07-09 | 华为技术有限公司 | Procédé de quantification et de déquantification et dispositif |
CN113557726B (zh) * | 2019-03-11 | 2023-08-29 | 佳能株式会社 | 图像解码设备和方法、图像编码设备和方法以及存储介质 |
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 |
CN113557726A (zh) * | 2019-03-11 | 2021-10-26 | 佳能株式会社 | 图像解码设备、图像解码方法和程序 |
TWI861095B (zh) * | 2019-06-07 | 2024-11-11 | 日商佳能股份有限公司 | 圖像編碼裝置、圖像解碼裝置、方法及程式 |
TWI863883B (zh) * | 2019-06-07 | 2024-11-21 | 日商佳能股份有限公司 | 圖像編碼裝置、圖像解碼裝置、方法及程式 |
US11856198B2 (en) | 2019-06-07 | 2023-12-26 | Canon Kabushiki Kaisha | Image decoding device, method, and non-transitory computer-readable storage medium |
US12160577B2 (en) | 2019-08-14 | 2024-12-03 | Interdigital Ce Patent Holdings, Sas | Quantization matrix prediction for video encoding and decoding |
Also Published As
Publication number | Publication date |
---|---|
JP2013038758A (ja) | 2013-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2013008459A1 (fr) | Appareil de codage d'image, procédé de codage d'image, appareil de décodage d'image, procédé de décodage d'image et programme | |
CN108769678B (zh) | 图像编码设备 | |
US20130129240A1 (en) | Image coding apparatus, method for coding image, and program, and image decoding apparatus, method for decoding image, and program | |
WO2014087641A1 (fr) | Dispositif de codage d'image, procédé et programme de codage d'image, dispositif de décodage d'image et procédé et programme de décodage d'image | |
US20160198175A1 (en) | Image encoding device, image encoding method and program, image decoding device, and image decoding method and program | |
JP2013038768A (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
US20170064298A1 (en) | Video coding with delayed reconstruction | |
JP2008306510A (ja) | 画像符号化方法、画像符号化装置、画像復号化方法及び画像復号化装置 | |
JP2014011482A (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
WO2013001755A1 (fr) | Appareil de codage d'image, procédé et programme de codage d'image, appareil de décodage d'image, procédé de décodage d'image et programme | |
JP6272441B2 (ja) | 画像復号装置、画像復号方法及びプログラム | |
KR20100089546A (ko) | 단계적인 영상 부호화, 복호화 방법 및 장치 | |
JP6541763B2 (ja) | 画像復号装置、画像復号方法及びプログラム | |
JP2019118142A (ja) | 画像復号装置、画像復号方法及びプログラム | |
JP2003018014A (ja) | 符号化方法,復号方法,符号化装置,復号装置,符号化プログラム,復号プログラムおよびそれらのプログラム記録媒体 | |
WO2012093466A1 (fr) | Appareil de codage d'image, procédé et programme de codage d'image, appareil de décodage d'image, et procédé et programme de décodage d'image |
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: 12811604 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: 12811604 Country of ref document: EP Kind code of ref document: A1 |