WO2025069744A1 - 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、コンピュータプログラム - Google Patents
画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、コンピュータプログラム Download PDFInfo
- Publication number
- WO2025069744A1 WO2025069744A1 PCT/JP2024/028745 JP2024028745W WO2025069744A1 WO 2025069744 A1 WO2025069744 A1 WO 2025069744A1 JP 2024028745 W JP2024028745 W JP 2024028745W WO 2025069744 A1 WO2025069744 A1 WO 2025069744A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- quantization
- orthogonal transform
- prediction
- inverse quantization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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/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
-
- 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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
Definitions
- the present invention relates to an image encoding device, an image encoding method, an image decoding device, an image decoding method, and a computer program.
- VVC Versatile Video Coding
- basic blocks with a maximum size of 128 pixels x 128 pixels are divided into rectangular sub-blocks in addition to the conventional square ones to improve coding efficiency.
- VVC also uses a process in which the coefficients after orthogonal transformation (hereinafter referred to as orthogonal transform coefficients) are weighted according to the frequency components using a quantization matrix.
- orthogonal transform coefficients By further reducing the data of high frequency components, degradation of which is less noticeable to the human eye, it is possible to improve compression efficiency while maintaining image quality.
- Patent Document 1 discloses a technology for encoding such a quantization matrix.
- JVET Joint Video Experts Team
- inverse quantization correction adds correction values to the orthogonal transform coefficients generated by the inverse quantization process
- This inverse quantization correction is a process of adding a correction value to the reproduced orthogonal transform coefficients, but it is a process of adding a predetermined correction value regardless of whether a quantization matrix is used. For this reason, it is not possible to perform the process of adding an appropriate correction value to the reproduced orthogonal transform coefficients generated by the inverse quantization process using a quantization matrix, which poses the problem that compression efficiency cannot be improved.
- the present invention provides a technology that enables control so that appropriate correction values can be added to reproduced orthogonal transform coefficients generated by inverse quantization processing using a quantization matrix, thereby improving compression efficiency.
- One aspect of the present invention is an image coding device that codes an image on a block-by-block basis, comprising: a prediction means that generates a predicted image from coded pixels for a block of interest of a predetermined size in the image to be coded, and derives a prediction error that is the difference between the block of interest and the predicted image; a transformation means that performs frequency transformation on the prediction error derived by the prediction means; a quantization means that quantizes an orthogonal transform coefficient obtained by frequency transformation by the transformation means; an encoding means that entropy-encodes the orthogonal transform coefficient quantized by the quantization means; and an inverse quantization means that inversely quantizes the orthogonal transform coefficient quantized by the quantization means to generate a reproduced orthogonal transform coefficient, and the inverse quantization means corrects the reproduced orthogonal transform coefficient.
- the present invention provides a technology that enables control so that appropriate correction values can be added to the reproduced orthogonal transform coefficients generated by inverse quantization processing using a quantization matrix, thereby improving compression efficiency.
- FIG. 1 is a block diagram showing an example of the functional configuration of an image encoding device.
- FIG. 2 is a block diagram showing an example of the functional configuration of an image decoding device.
- 4 is a flowchart of a process performed by the image encoding device to encode one frame of an input image.
- 11 is a flowchart of a process performed by an image decoding device to decode a bitstream for one frame.
- FIG. 1 is a block diagram showing an example of the hardware configuration of a computer device applicable to an image encoding device or an image decoding device.
- FIG. 2 is a diagram showing an example of a data structure of a bit stream.
- FIG. 2 is a diagram showing an example of a data structure of a bit stream.
- FIG. 13 is a diagram showing an example of a division pattern of sub-blocks.
- FIG. 13 is a diagram showing an example of a division pattern of sub-blocks.
- FIG. 13 is a diagram showing an example of a division pattern of sub-blocks.
- FIG. 13 is a diagram showing an example of a division pattern of sub-blocks.
- FIG. 13 is a diagram showing an example of a division pattern of sub-blocks.
- FIG. 8 shows an example of the configuration of a quantization matrix 800.
- FIG. 8 shows an example of the configuration of a quantization matrix 800.
- FIG. 8 shows an example of the configuration of a quantization matrix 800.
- FIG. 8 shows an example of the configuration of a quantization matrix 800.
- FIG. 13 is a diagram showing an example of the configuration of a one-dimensional difference matrix.
- FIG. 13 is a diagram showing an example of the configuration of a one-dimensional difference matrix.
- FIG. 13 is a diagram showing an example of the configuration of a one-dimensional difference matrix.
- FIG. 4 is a diagram showing an example of the configuration of an encoding table.
- FIG. 4 is a diagram showing an example of the configuration of an encoding table.
- FIG. 13 is a diagram showing an example of region division used in mixed intra/inter prediction.
- FIG. 13 is a diagram showing an example of region division used in mixed intra/inter prediction.
- the image encoding device can be applied to a PC (personal computer), a smartphone, a tablet terminal device, an imaging device, a dedicated image processing circuit, and the like.
- the image coding device acquires an image to be coded as an input image via the input unit 101.
- the method by which the image coding device acquires the input image is not limited to a specific method.
- the image coding device may acquire an image output from an imaging device (an image of each frame in a moving image, a still image captured periodically or irregularly, etc.) as an input image.
- the image coding device acquires an image captured by its own imaging device as an input image.
- the image coding device may acquire an image stored in an external device such as a server device as an input image via a network such as a LAN or the Internet.
- the image coding device may acquire an image stored in its own storage device as an input image.
- the block division unit 102 divides the input image into a number of basic blocks (hereinafter, simply referred to as blocks, as appropriate).
- the quantization matrix storage unit 103 acquires and stores a number of quantization matrices used in the quantization process.
- the method by which the quantization matrix storage unit 103 acquires the quantization matrices is not limited to a specific method.
- the quantization matrix storage unit 103 may acquire a quantization matrix input by the user by operating an operation unit (not shown), may calculate a quantization matrix from the characteristics of the input image, or may acquire a quantization matrix that is specified in advance as an initial value.
- the quantization matrix storage unit 103 acquires and stores three types of "two-dimensional quantization matrices 800 corresponding to 8 pixel x 8 pixel orthogonal transforms (frequency transforms)" as exemplified in Figures 8A to 8C.
- the inverse quantization correction control unit 114 acquires inverse quantization correction control information, which is information for controlling the inverse quantization correction process executed in the downstream inverse quantization and inverse transform unit 106.
- the method by which the inverse quantization correction control unit 114 acquires the inverse quantization correction control information is not limited to a specific method.
- the inverse quantization correction control unit 114 may acquire inverse quantization correction control information input by the user by operating an operation unit (not shown), or may calculate the inverse quantization correction control information based on the characteristics of the input image.
- the inverse quantization correction control unit 114 may acquire inverse quantization correction control information that is set in advance as an initial value from a memory within the image encoding device or a memory outside the image encoding device.
- the prediction unit 104 divides each basic block divided by the block division unit 102 into one or more sub-blocks, performs prediction processing such as intra-prediction, which is a prediction within a frame, or inter-prediction, which is a prediction between frames, on the sub-block to generate a predicted image corresponding to the sub-block, and derives the difference (error) between the sub-block and the predicted image as a prediction error.
- the prediction unit 104 also outputs information required for prediction (such as information on sub-block division, prediction mode, motion vector, etc.) as prediction information.
- the transform/quantization unit 105 generates orthogonal transform coefficients corresponding to a subblock by performing an orthogonal transform (frequency transform) on the prediction error corresponding to the subblock, and generates quantization coefficients by quantizing the orthogonal transform coefficients using the quantization matrix stored in the quantization matrix storage unit 103.
- a configuration for performing orthogonal transform and a configuration for performing quantization are represented by a single block.
- the configuration for performing orthogonal transform and the configuration for performing quantization may be separate.
- the inverse quantization and inverse transform unit 106 generates reproduced orthogonal transform coefficients by inverse quantizing the quantization coefficients generated by the transform and quantization unit 105 using the quantization matrix stored in the quantization matrix storage unit 103.
- the inverse quantization and inverse transform unit 106 then corrects the generated reproduced orthogonal transform coefficients based on the inverse quantization correction control information acquired by the inverse quantization correction control unit 114, and generates (reproduces) prediction errors by inverse orthogonal transforming the corrected reproduced orthogonal transform coefficients.
- a configuration for performing inverse quantization and a configuration for performing inverse orthogonal transform are represented by a single block. However, the configuration for performing inverse quantization and the configuration for performing inverse transform may be separate.
- the image reproduction unit 107 generates a predicted image by appropriately referring to the frame memory 108 based on the prediction information output from the prediction unit 104, generates a reproduced image from the predicted image and the prediction error generated (reproduced) by the inverse quantization and inverse transform unit 106, and stores the reproduced image in the frame memory 108.
- the in-loop filter unit 109 performs in-loop filter processing such as deblocking filtering and sample adaptive offset on the reconstructed image stored in the frame memory 108.
- the encoding unit 110 generates code data by encoding the quantization coefficients generated by the transformation/quantization unit 105 and the prediction information output from the prediction unit 104.
- the quantization matrix encoding unit 113 generates code data by encoding the quantization matrix stored in the quantization matrix storage unit 103.
- the integrated coding unit 111 generates header code data using header information required for coding image data, such as the inverse quantization correction control information acquired by the inverse quantization correction control unit 114, and the code data generated by the quantization matrix coding unit 113. Furthermore, the integrated coding unit 111 generates a bit stream by combining the generated header code data with the code data generated by the coding unit 110, and outputs the generated bit stream to the outside via the output unit 112. Note that the output destination of the bit stream is not limited to a specific output destination.
- the integrated coding unit 111 may output (transmit) the bit stream to an external device (e.g., a memory device or a server device) via the output unit 112, or may store the bit stream in a memory within the image coding device.
- the control unit 150 controls the operation of the entire image coding device, including each of the above-mentioned functional units.
- the inverse quantization correction control unit 114 acquires inverse quantization correction control information.
- the relationship between the value of the inverse quantization correction control information and the inverse quantization correction process will be described later.
- the quantization matrix storage unit 103 acquires and stores multiple quantization matrices, which are generated according to the size of the subblock and the type of prediction method.
- the quantization matrix storage unit 103 generates a quantization matrix 800 of 8 pixels x 8 pixels in size, which corresponds to the subblock of 8 pixels x 8 pixels in size shown in Figures 8A to 8C, as described above.
- Quantization matrix 800 in FIG. 8A shows an example of a quantization matrix corresponding to intra prediction.
- Quantization matrix 800 in FIG. 8B shows an example of a quantization matrix corresponding to inter prediction.
- Quantization matrix 800 in FIG. 8C shows an example of a quantization matrix corresponding to mixed intra-inter prediction.
- the quantization matrix is composed of 8 x 8 elements (quantization step values).
- the three types of quantization matrices shown in FIGS. 8A to 8C are stored in the quantization matrix storage unit 103 as a two-dimensional array, but the elements in the quantization matrix are not limited to this.
- the quantization matrix realizes quantization processing according to the visual characteristics of humans, so that the elements for the DC components corresponding to the upper left corner of the quantization matrix are small and the elements for the AC components corresponding to the lower right corner are large, as shown in FIGS. 8A to 8C.
- the generated quantization matrix is not limited to this, and a quantization matrix corresponding to the shape of the subblock, such as 4 pixels x 8 pixels, 8 pixels x 4 pixels, or 4 pixels x 4 pixels, may be generated.
- a quantization matrix corresponding to the shape of the subblock such as 4 pixels x 8 pixels, 8 pixels x 4 pixels, or 4 pixels x 4 pixels.
- the quantization matrix encoding unit 113 sequentially reads out the quantization matrices stored in the quantization matrix storage unit 103 as a two-dimensional array, scans each element in the quantization matrix, calculates the difference, and arranges them in a one-dimensional matrix (difference matrix).
- a scanning method is used in which elements in each quantization matrix 800 shown in Figures 8A to 8C are scanned in the order indicated by the arrows in Figure 9, and the difference between each element and the previous element is calculated in the scanning order.
- the 8 pixel x 8 pixel quantization matrix 800 shown in Figure 8C is scanned by the scanning method shown in Figure 9, and after the first element "8" located in the upper left corner, the element "11" located immediately below it is scanned and the difference "+3" is calculated.
- the first element of the quantization matrix in the example of Figure 8C, "8” is encoded by calculating the difference between it and a predetermined initial value (e.g. "8"), but of course this is not limited to this, and the difference between any value or the value of the first element itself may be used.
- the quantization matrices 800 in each of Figures 8A to 8C are generated using the scanning method in Figure 9, and the one-dimensional difference matrix 1000 shown in Figures 10A to 10C is generated.
- the quantization matrix encoding unit 113 further encodes the difference matrix to generate code data for the quantization matrix.
- the encoding is performed using the encoding table shown in Figure 11A, but the encoding table is not limited to this and, for example, the encoding table shown in Figure 11B may be used.
- the integrated coding unit 111 generates header code data by integrating the code data of the quantization matrix with the header information necessary for image coding, including the inverse quantization correction control information. Next, image coding will be described.
- the block division unit 102 divides the input image input via the input unit 101 into a number of basic blocks.
- the size of a basic block is 8 pixels x 8 pixels.
- the prediction unit 104 performs prediction processing on each basic block. More specifically, the prediction unit 104 first determines a subblock division method, which is a method for dividing a basic block into smaller subblocks, and then determines a prediction mode, such as intra prediction, inter prediction, or mixed intra-inter prediction, on a subblock basis.
- Figures 7A to 7F show examples of subblock division patterns.
- the outer thick frame 700 represents a basic block, which in this embodiment has a size of 8 pixels x 8 pixels.
- the rectangles within the thick frame 700 represent subblocks.
- Figure 7B shows an example of a conventional square subblock division, in which a basic block of 8 pixels x 8 pixels is divided into four subblocks of 4 pixels x 4 pixels.
- Figures 7C to 7F show an example of a rectangular subblock division.
- the basic block is divided into two vertical subblocks of 4 pixels x 8 pixels
- Figure 7D the basic block is divided into two horizontal rectangular subblocks of 8 pixels x 4 pixels.
- Figures 7E and 7F the basic block is divided into rectangular subblocks at a ratio of 1:2:1. In this way, not only square but also rectangular subblocks are used for the encoding process.
- this embodiment employs a subblock division method in which a basic block of 8 pixels x 8 pixels is not divided into subblocks (Figure 7A).
- quadtree division as in Figure 7B quadtree division as in Figure 7B, ternary tree division as in Figures 7E and 7F, or binary tree division as in Figures 7C and 7D may also be used.
- the quantization matrix storage unit 103 When a subblock division other than that in Figure 7A is used, the quantization matrix storage unit 103 generates a quantization matrix corresponding to the subblock to be used. Furthermore, the generated quantization matrix is coded by the quantization matrix coding unit 113.
- intra prediction predicted pixels for the block to be coded are generated using coded pixels located spatially around the block to be coded, and an intra prediction mode indicating an intra prediction method such as horizontal prediction, vertical prediction, or DC prediction is also generated.
- inter prediction predicted pixels for the block to be coded are generated using coded pixels of a frame that is temporally different from the block to be coded, and motion information indicating the reference frame, motion vector, etc. is also generated.
- the block to be coded is first divided by a diagonal line segment to generate two regions. Then, pixel values generated by the above-mentioned intra prediction are used in one region, and pixel values generated by the above-mentioned inter prediction are used in the other region to generate predicted pixels for the block to be coded.
- Figures 12A and 12B show an example of region division used in mixed intra-inter prediction.
- Figure 12A shows an example of a case where two regions are generated in the block to be coded 1200 by a diagonal line from the upper left vertex to the lower right vertex. For example, pixel values generated by intra prediction can be used in the upper right region, and pixel values generated by inter prediction can be used in the lower left region.
- Figure 12B shows an example of a case where two regions are generated in the block to be coded 1200 by a diagonal line segment from the upper right vertex to the midpoint between the upper left vertex and the lower left vertex.
- pixel values generated by intra prediction can be placed in the upper left region
- pixel values generated by inter prediction can be placed in the lower right region.
- mixed intra/inter prediction generates predicted pixels for the block to be coded, and also generates information about the intra prediction mode, motion information, and region division used to generate the predicted pixels.
- the prediction unit 104 generates a predicted image of the sub-block to be coded from the determined prediction mode and the coded pixels. The prediction unit 104 then calculates the difference (error) between the sub-block to be coded and the predicted image of that sub-block to generate a prediction error. The prediction unit 104 also outputs prediction information such as the sub-block division method, prediction mode (information indicating whether it is intra prediction, inter prediction, or mixed intra-inter prediction), and vector data.
- the transform/quantization unit 105 generates quantization coefficients by performing orthogonal transform and quantization on the prediction error. Specifically, the transform/quantization unit 105 performs orthogonal transform processing corresponding to the size of the prediction error to generate orthogonal transform coefficients. Next, the transform/quantization unit 105 selects a quantization matrix corresponding to the prediction mode from the quantization matrices stored in the quantization matrix storage unit 103, and generates quantization coefficients by quantizing the orthogonal transform coefficients using the selected quantization matrix. In this embodiment, the quantization matrix of FIG. 8A is selected for quantization of the orthogonal transform coefficients of the subblocks predicted by intra prediction, and the quantization matrix of FIG.
- the quantization matrix of FIG. 8C is selected for quantization of the orthogonal transform coefficients of the subblocks predicted by mixed intra/inter prediction.
- the quantization matrix used is not limited to this.
- the inverse quantization and inverse transform unit 106 generates reproduced orthogonal transform coefficients by inverse quantizing the quantization coefficients of the subblock using the quantization matrix used to quantize the orthogonal transform coefficients of the subblock, among the quantization matrices stored in the quantization matrix storage unit 103.
- the inverse quantization and inverse transform unit 106 then performs inverse quantization correction processing on the reproduced orthogonal transform coefficients based on the inverse quantization correction control information.
- the inverse quantization correction process in this embodiment will now be described.
- the inverse quantization process and the inverse quantization correction process in this embodiment are performed using, for example, the following formula (1).
- dz[x][y] L[x][y] ⁇ Q[x][y]+Shift...
- dz[x][y] is a corrected reproduction orthogonal transform coefficient corresponding to the position (x, y)
- L[x][y] is a quantization coefficient corresponding to the position (x, y)
- Q[x][y] is a "quantization scale calculated by taking into account the element of the quantization matrix" corresponding to the position (x, y).
- Shift is a correction value used in the inverse quantization correction process of this embodiment, and is determined based on the quantization coefficient L and the inverse quantization correction control information.
- the inverse quantization and inverse transform unit 106 sets the value of Shift in formula (1) to 0. In this case, in the inverse quantization correction process, the correction of the reproduction orthogonal transform coefficient is not substantially performed.
- the value of the inverse quantization correction control information is 1, the inverse quantization and inverse transform unit 106 derives the value of Shift in formula (1) using the following formula (2).
- T is a real number that takes a value between 0 and 1.
- T is a fixed value, but is not limited to this, and may take a variable value depending on the position (x, y), or T itself may be calculated using the quantization coefficient L[x][y].
- the value of T may be calculated according to the absolute value (
- the inverse quantization and inverse transform unit 106 generates (reproduces) prediction errors by performing an inverse orthogonal transform on the reproduced orthogonal transform coefficients generated using the above equation (1).
- a quantization matrix corresponding to the prediction mode of the block to be coded is used, as in the transform and quantization unit 105. Specifically, the same quantization matrix as that used by the transform and quantization unit 105 is used.
- the image reproduction unit 107 generates (reproduces) a predicted image by appropriately referring to the frame memory 108 based on the prediction information input from the prediction unit 104.
- the image reproduction unit 107 then generates (reproduces) a reconstructed image of the corresponding subblock by adding the reconstructed predicted image and the prediction error generated (reconstructed) by the inverse quantization and inverse transform unit 106, and stores the generated reconstructed image in the frame memory 108.
- the in-loop filter unit 109 reads the reconstructed image from the frame memory 108, and performs in-loop filter processing on the reconstructed image using a filter such as a deblocking filter. The in-loop filter unit 109 then stores the reconstructed image to which the in-loop filter processing has been applied back into the frame memory 108.
- the coding unit 110 generates coded data for each subblock by entropy coding the quantization coefficients of the subblock generated by the transform/quantization unit 105 and the prediction information of the subblock input from the prediction unit 104.
- the entropy coding method is not limited to a specific method, but Golomb coding, arithmetic coding, Huffman coding, etc. can be used.
- the integrated encoding unit 111 multiplexes each piece of encoded data to generate a bit stream, and outputs the generated bit stream.
- FIG. 6A shows an example of the data structure of the bit stream output in this embodiment.
- the sequence header contains encoded data of the inverse quantization correction control information and the quantization matrix, and is composed of encoded data of each element.
- the position at which it is encoded is not limited to this, and it may be configured to be encoded in the picture header or other headers.
- the image coding device performs the processes of steps S305 to S312 on the input image for each frame.
- step S301 the inverse quantization correction control unit 114 acquires inverse quantization correction control information.
- step S302 the quantization matrix holding unit 103 acquires and holds multiple quantization matrices to be used in the quantization process.
- step S303 the quantization matrix encoding unit 113 scans the quantization matrix generated in step S302, calculates the difference between each element, and generates a one-dimensional difference matrix.
- step S304 the integrated encoding unit 111 generates header code data using header information required for encoding image data, such as the inverse quantization correction control information acquired in step S301, and the code data of the quantization matrix generated in step S303.
- step S305 the block division unit 102 divides the input image input via the input unit 101 into a plurality of basic blocks.
- the prediction unit 104 selects one of the basic blocks divided in step S305 that has not been selected as a selected basic block. The prediction unit 104 then divides the selected basic block into sub-blocks (including the case where the selected basic block is the sub-block), derives the prediction error of the sub-block, and outputs the prediction information.
- a specific example of processing by the prediction unit 104 is as follows.
- the prediction unit 104 performs intra prediction processing on a subblock of interest (block of interest) to be coded by referring to an already coded area in the same input image as the input image to which the subblock of interest belongs, and generates an intra prediction image.
- the prediction unit 104 also performs inter prediction processing by referring to an already coded input image (e.g., the input image of the immediately preceding frame) different from the input image to which the subblock of interest to be coded belongs, and generates an inter prediction image.
- the prediction unit 104 then divides the subblock of interest into two regions as in the example of FIG.
- the prediction unit 104 then derives the squared sum (or the absolute sum) of the difference in pixel values between pixels that correspond positionally in each of these three prediction images and the subblock of interest, and determines the prediction mode of the prediction image with the smallest squared sum as the prediction mode of the subblock of interest.
- the prediction unit 104 then performs prediction processing on the sub-block according to the prediction mode to generate a predicted image, and derives the difference between the sub-block and the predicted image as a prediction error.
- step S307 the transform/quantization unit 105 performs orthogonal transform on the prediction error derived in step S306 for each subblock to generate orthogonal transform coefficients. Then, for each subblock, the transform/quantization unit 105 selects one of the quantization matrices stored in the quantization matrix storage unit 103 based on the prediction information, and quantizes the orthogonal transform coefficients using the selected quantization matrix to generate quantization coefficients.
- step S308 for each subblock, the inverse quantization and inverse transform unit 106 performs inverse quantization on the quantization coefficients generated in step S307 using the quantization matrix selected in step S307 to generate reproduced orthogonal transform coefficients, and performs inverse quantization correction processing on the reproduced orthogonal transform coefficients based on the inverse quantization correction control information, and then performs inverse orthogonal transform to generate (reproduce) prediction errors.
- the inverse quantization and inverse transform unit 106 performs inverse quantization processing and inverse quantization correction processing on the reproduced orthogonal transform coefficients in accordance with the above formula (1).
- step S309 the image reproducing unit 107 generates a predicted image for each subblock based on the prediction information output in step S306 by referencing the frame memory 108, and generates a reproduced image using the predicted image and the prediction error generated in step S308.
- step S310 the encoding unit 110 generates code data for each subblock of the basic block by encoding the prediction information output in step S306 and the quantization coefficients generated in step S307 for each subblock.
- the integrated encoding unit 111 then multiplexes the header code data generated in step S304, the code data generated by the encoding unit 110, etc. to generate a bitstream.
- step S311 the control unit 150 determines whether or not all basic blocks in the input image have been selected as selected basic blocks (i.e., whether or not the encoding of all basic blocks (the processing of steps S306 to S310) has been completed).
- step S312 If the result of this determination is that all basic blocks in the input image have been selected as selected basic blocks, processing proceeds to step S312; if there are any basic blocks remaining in the input image that have not yet been selected as selected basic blocks, processing proceeds to step S306.
- step S312 the in-loop filter unit 109 reads the reconstructed image from the frame memory 108, performs in-loop filter processing on the reconstructed image, and stores the reconstructed image to which the in-loop filter processing has been applied back in the frame memory 108.
- step S308 by correcting the reproduced orthogonal transform coefficients based on the inverse quantization correction control information, appropriate correction can be performed on the reproduced orthogonal transform coefficients generated by the inverse quantization process using the quantization matrix, thereby improving compression efficiency.
- the quantization matrix is used for the inverse quantization process of all subblocks in a frame to generate reproduced orthogonal transform coefficients, and correction is performed based on the inverse quantization correction control information, but this is not limited to the above.
- some subblocks in a frame e.g., subblocks of 8 pixels x 8 pixels in size
- other subblocks e.g., subblocks of 4 pixels x 4 pixels in size
- may be inverse quantized without using a quantization matrix i.e., the same quantization scale is used for all frequency components.
- the subblocks inverse quantized using the quantization matrix may be corrected using formula (1) according to the inverse quantization correction control information, and the subblocks inverse quantized without using the quantization matrix may be corrected using formula (1) regardless of the inverse quantization correction control information.
- the subblocks inverse quantized using a quantization matrix and subblocks inverse quantized without using a quantization matrix are mixed, appropriate correction can be performed on each subblock, improving compression efficiency.
- the quantization correction control information is coded and included in the bit stream, but this is not limiting.
- the quantization correction control information is coded and included in the bit stream, but this is not limiting.
- the quantization correction control information is coded and included in the bit stream, but this is not limiting.
- the quantization correction control information is coded and included in the bit stream, but this is not limiting.
- the quantization correction control information is always set to 0, it is possible to omit the code of the quantization correction control information to be included in the bit stream as shown in FIG. 6B.
- the inverse quantization correction process is always applied to sub-blocks that perform inverse quantization without using a quantization matrix, and the inverse quantization correction process is never applied to sub-blocks that perform inverse quantization using a quantization matrix. This simplifies the relationship between whether or not a quantization matrix is applied and whether or not the inverse quantization correction process is applied, making control easier, and furthermore, the amount of code for the code portion of the inverse quantization
- the inverse quantization correction control information is configured to indicate only whether or not the inverse quantization correction process is applied, but it is also possible to set the value of the inverse quantization correction control information to the value of a parameter used in the inverse quantization correction process. For example, it is also possible to set the value of the inverse quantization correction control information to the value of Shift in the above-mentioned equation (1) or the value of T in equation (2). This makes it possible to control the strength of the inverse quantization correction according to the characteristics of the image, and as a result, the compression efficiency can be improved.
- intra prediction intra prediction
- inter prediction inter prediction
- mixed intra-inter prediction three types of prediction methods are used: intra prediction, inter prediction, and mixed intra-inter prediction. Since the characteristics of each prediction and its error are different, it is also possible to configure a configuration in which different inverse quantization correction processes are performed depending on the prediction method. For example, by individually setting inverse quantization correction control information corresponding to a subblock using intra prediction, inverse quantization correction control information corresponding to a subblock using inter prediction, and inverse quantization correction control information corresponding to a subblock using mixed intra-inter prediction, it is also possible to apply inverse quantization correction control suitable for each prediction method.
- each inverse quantization correction control information is coded and included in the bitstream, or it is possible to configure a configuration in which each inverse quantization correction control information is set to a fixed value and coding of each is omitted.
- the encoding process is performed on an image frame by frame basis to generate and output a bit stream, but the target of the encoding process is not limited to images.
- features used in machine learning such as object recognition may be treated as two-dimensional array data, and this data may be encoded. This makes it possible to efficiently encode the features used in machine learning.
- the image decoding device decodes a bit stream for each frame generated by the image encoding device according to the first embodiment.
- An example of the functional configuration of the image decoding device according to this embodiment will be described with reference to the block diagram of FIG.
- the separation decoding unit 202 acquires a bit stream via the input unit 201.
- the method by which the separation decoding unit 202 acquires the bit stream is not limited to a specific method.
- the separation decoding unit 202 may acquire a bit stream stored in an external device such as a server device via a network, or may acquire a bit stream generated by an imaging device from the imaging device.
- the separation decoding unit 202 then separates header code data and code data in sub-block units of a basic block from the bit stream.
- the separation decoding unit 202 performs the reverse operation of the integrated coding unit 111 in FIG. 1.
- the separation decoding unit 202 also extracts inverse quantization correction control information from the header code data.
- the quantization matrix decoding unit 209 decodes the header code data separated by the separation decoding unit 202 to reproduce the quantization matrix.
- the decoding unit 203 decodes the code data in sub-block units of the basic block separated by the separation decoding unit 202 to reproduce the quantization coefficients and prediction information.
- the inverse quantization and inverse transform unit 204 uses the quantization matrix reproduced by the quantization matrix decoding unit 209 to inverse quantize the quantization coefficients reproduced by the decoding unit 203 in the same manner as the inverse quantization and inverse transform unit 106, thereby generating reproduced orthogonal transform coefficients. Then, like the inverse quantization and inverse transform unit 106, the inverse quantization and inverse transform unit 204 performs inverse quantization correction processing on the reproduced orthogonal transform coefficients based on the inverse quantization correction control information extracted by the separation decoding unit 202, and then performs an inverse orthogonal transform to generate (reproduce, derive) prediction errors.
- the image reproduction unit 205 like the image reproduction unit 107, generates a predicted image by appropriately referring to the frame memory 206 based on the prediction information reproduced by the decoding unit 203. Then, like the image reproduction unit 107, the image reproduction unit 205 generates a reproduced image by adding the prediction error reproduced by the inverse quantization and inverse transform unit 204 to the predicted image, and stores the reproduced image in the frame memory 206.
- the in-loop filter unit 207 reads the reconstructed image from the frame memory 206, performs in-loop filter processing on the reconstructed image, and stores the reconstructed image to which the in-loop filter processing has been applied back in the frame memory 206.
- the reconstructed image to which the in-loop filter processing has been applied by the in-loop filter unit 207 is output to an external device via the output unit 208 under the control of the control unit 250.
- the output destination of the reproduced image is not limited to a specific output destination.
- the control unit 250 may transmit the reproduced image to an external device via a network, or may output the reproduced image to a display device connected to the image decoding device and display the reproduced image on the display device.
- the control unit 250 controls the operation of the entire image decoding device, including each of the functional units described above.
- a bit stream for one frame input via the input unit 201 is input to the separate decoding unit 202.
- the separate decoding unit 202 extracts inverse quantization correction control information from the sequence header of the bit stream shown in FIG. 6A, and also extracts the code data of the quantization matrices of FIGS. 8A to 8C from the sequence header.
- the separate decoding unit 202 also regenerates the code data in sub-block units of the basic blocks of the picture data.
- the quantization matrix decoding unit 209 decodes the coded data of the quantization matrix and reproduces the one-dimensional difference matrix shown in Figures 10A to 10C.
- the decoding is performed using the coding table shown in Figure 11A (or Figure 11B), but the coding table is not limited to this, and other coding tables may be used as long as they are the same as those in the first embodiment.
- the quantization matrix decoding unit 209 then reverse-scans the reproduced one-dimensional difference matrix to reproduce the quantization matrix as a two-dimensional array. In other words, the quantization matrix decoding unit 209 performs the reverse operation of the quantization matrix encoding unit 113. In other words, the quantization matrix decoding unit 209 reproduces the three types of quantization matrices shown in Figures 8A to 8C from the difference matrix shown in Figures 10A to 10C using the scanning method shown in Figure 9.
- the decoding unit 203 decodes the coded data of each subblock of the basic block, and reproduces the quantization coefficients and prediction information.
- the inverse quantization and inverse transform unit 204 selects one of the quantization matrices reproduced by the quantization matrix decoding unit 209, and generates reproduced orthogonal transform coefficients by inverse quantizing the quantization coefficients reproduced by the decoding unit 203 using the selected quantization matrix.
- the inverse quantization and inverse transform unit 204 performs inverse quantization correction processing on the generated reproduced orthogonal transform coefficients based on the inverse quantization correction control information extracted by the separation decoding unit 202, and then performs an inverse orthogonal transform to generate (reproduce) prediction errors.
- the inverse quantization and inverse transform unit 204 of this embodiment determines the quantization matrix to be used in the inverse quantization process according to the prediction mode of the subblock to be decoded, which is determined according to the prediction information reproduced by the decoding unit 203. That is, the quantization matrix of FIG. 8A is selected for a subblock using intra prediction, the quantization matrix of FIG. 8B for a subblock using inter prediction, and the quantization matrix of FIG. 8C for a subblock using mixed intra/inter prediction.
- the quantization matrix to be used is not limited to this, and it may be the same as the quantization matrix used by the transform and quantization unit 105 and the inverse quantization and inverse transform unit 106 of the first embodiment.
- the image reproduction unit 205 like the image reproduction unit 107, generates a predicted image by appropriately referring to the frame memory 206 based on the prediction information reproduced by the decoding unit 203.
- three types of prediction methods are used: intra prediction, inter prediction, and mixed intra-inter prediction.
- the image reproduction unit 205 generates a reproduced image by adding the prediction error reproduced by the inverse quantization and inverse transform unit 204 to the predicted image, and stores the reproduced image in the frame memory 206.
- the stored reproduced image becomes a prediction reference candidate when decoding other sub-blocks.
- the in-loop filter unit 207 like the in-loop filter unit 109, performs in-loop filter processing on the reconstructed image stored in the frame memory 206. As described above, the reconstructed image to which the in-loop filter processing has been applied by the in-loop filter unit 207 is output to an external device via the output unit 208.
- the image decoding device performs the process according to the flowchart in FIG. 4 on the bit streams of each frame.
- step S401 the separation decoding unit 202 extracts (decodes) the inverse quantization correction control information from the bit stream, and reproduces (separates) from the bit stream the code data of the quantization matrix and the code data of the subblock units of the basic block.
- step S402 the quantization matrix decoding unit 209 reproduces a one-dimensional difference matrix by decoding the code data of the quantization matrix reproduced in step S401, and then inversely scans the reproduced one-dimensional difference matrix to reproduce the quantization matrix as a two-dimensional array.
- step S403 the decoding unit 203 decodes the coded data of the basic block reproduced in step S401 on a sub-block basis, and reproduces the quantization coefficients and prediction information.
- step S404 the inverse quantization and inverse transform unit 204 selects one of the quantization matrices reproduced in step S402, and generates reproduced orthogonal transform coefficients by inverse quantizing the quantization coefficients reproduced in step S403 using the selected quantization matrix.
- the inverse quantization and inverse transform unit 204 then performs inverse quantization correction processing on the reproduced orthogonal transform coefficients based on the inverse quantization correction control information extracted in step S401, and then performs inverse orthogonal transform to generate (reproduce) prediction errors.
- step S405 the image reproduction unit 205 generates a predicted image by appropriately referring to the frame memory 206 based on the prediction information reproduced in step S403.
- the image reproduction unit 205 then generates a reproduced image by adding the prediction error reproduced in step S404 to the predicted image, and stores the reproduced image in the frame memory 206.
- step S406 the control unit 250 determines whether or not the processing of steps S403 to S405 has been performed for all basic blocks. If the result of this determination is that the processing of steps S403 to S405 has been performed for all basic blocks, the process proceeds to step S407. On the other hand, if there are any basic blocks remaining for which the processing of steps S403 to S405 has not been performed, the process proceeds to step S403 to perform the processing of steps S403 to S405 for those basic blocks.
- step S407 the in-loop filter unit 207 performs in-loop filter processing on the reconstructed image stored in the frame memory 206.
- a quantization matrix is used for the inverse quantization process of all subblocks in a frame to generate reproduced orthogonal transform coefficients, and correction is performed based on the inverse quantization correction control information, but this is not limited to the above.
- this embodiment can also be configured to perform correction using equation (1) according to the inverse quantization correction control information for subblocks that have been inverse quantized using a quantization matrix, and to always perform correction using equation (1) regardless of the inverse quantization correction control information for subblocks that have been inverse quantized without using a quantization matrix.
- a bitstream in which the quantization correction control information is coded is decoded, but this is not limiting.
- a bitstream in which the code of the quantization correction control information is omitted as shown in FIG. 6B can be decoded.
- the inverse quantization correction process is always applied to subblocks in which inverse quantization is performed without using a quantization matrix, and the inverse quantization correction process is never applied to subblocks in which inverse quantization is performed using a quantization matrix.
- the parameters used in the inverse quantization correction process can also be the inverse quantization correction control information. This makes it possible to control the strength of the inverse quantization correction according to the characteristics of the image, and as a result, it is possible to decode a bitstream with improved compression efficiency.
- the configuration in this embodiment, similar to the first embodiment, it is possible to configure the configuration to perform different inverse quantization correction processing depending on the prediction method. In this case, similar to the first embodiment, it is possible to configure the configuration to decode a bit stream in which each inverse quantization correction control information is encoded, or to set each inverse quantization correction control information to a fixed value and omit decoding each.
- a bitstream is decoded on a frame-by-frame basis, but the target of the decoding process is not limited to a bitstream that encodes an image.
- features used in machine learning such as object recognition may be treated as a two-dimensional array of data, and the data may be encoded to generate a bitstream that is then decoded. This makes it possible to efficiently decode a bitstream that encodes features used in machine learning.
- each of the functional units shown in Fig. 1 has been described as being implemented in hardware.
- each of the functional units except for the frame memory 108 may be implemented in software (computer program).
- a computer device capable of executing this software is applicable to an image coding device.
- each of the functional units shown in FIG. 2 has been described as being implemented in hardware.
- each of the functional units except for the frame memory 206 may be implemented in software (computer program).
- a computer device capable of executing this software is applicable to an image decoding device.
- FIG. 5 An example of the hardware configuration of a computer device applicable to an image encoding device or image decoding device will be described using the block diagram in FIG. 5. Note that the configuration shown in FIG. 5 is an example of the hardware configuration of a computer device applicable to an image encoding device or image decoding device, and can be modified/altered as appropriate. Also, computer devices with different configurations may be applied to the image encoding device and the image decoding device. Also, the image encoding device and the image decoding device may be the same device.
- the CPU 501 executes various processes using computer programs and data stored in the RAM 502 and the ROM 503. As a result, the CPU 501 controls the operation of the entire computer device, and executes or controls the various processes described as processes performed by the image encoding device and the image decoding device.
- RAM 502 has an area for storing computer programs and data loaded from ROM 503 or storage device 506, and an area for storing computer programs and data received from the outside via I/F 507.
- RAM 502 also has a work area used by CPU 501 when executing various processes. In this way, RAM 502 can provide various areas as needed.
- ROM 503 stores setting data for the computer device, computer programs and data related to the startup of the computer device, computer programs and data related to the basic operation of the computer device, etc.
- the operation unit 504 is a user interface such as a keyboard, mouse, and touch panel screen, and the user can operate it to input various instructions and information to the computer device.
- the display unit 505 has an LCD screen or a touch panel screen, and can display the results of processing by the CPU 501 as images, text, etc.
- the display unit 505 may also be a projection device such as a projector that projects images and text.
- the storage device 506 is a non-volatile memory device such as a hard disk drive.
- the storage device 506 stores an operating system (OS), computer programs and data for causing the CPU 501 to execute or control the various processes described as processes performed by the image encoding device and image decoding device, and the like.
- OS operating system
- computer programs and data for causing the CPU 501 to execute or control the various processes described as processes performed by the image encoding device and image decoding device, and the like.
- the computer programs stored in the storage device 506 include computer programs for causing the CPU 501 to execute or control the various processes described as processes performed by each functional unit (excluding frame memory 108) shown in FIG. 1.
- the computer programs stored in the storage device 506 also include computer programs for causing the CPU 501 to execute or control the various processes described as processes performed by each functional unit (excluding frame memory 206) shown in FIG. 2.
- the frame memory 108 and frame memory 206 can be implemented using the RAM 502 and storage device 506.
- I/F 507 is a communication interface for performing data communication with an external device.
- a computer device can obtain an input image or a bit stream from an imaging device or a server device, or transmit a bit stream to the server device, by performing data communication with the imaging device or a server device via I/F 507.
- the CPU 501, RAM 502, ROM 503, operation unit 504, display unit 505, storage device 506, and I/F 507 are all connected to a system bus 508.
- the CPU 501 executes a boot program stored in the ROM 503, loads the OS stored in the storage device 506 into the RAM 502, and starts the OS.
- the computer device becomes capable of communication via the I/F 507.
- the CPU 501 loads an application (corresponding to FIG. 3) related to image encoding from the storage device 506 into the RAM 502 and executes it, so that the computer device functions as an image encoding device.
- the CPU 501 loads an application (corresponding to FIG. 4) related to image decoding from the storage device 506 into the RAM 502 and executes it, the computer device functions as an image decoding device.
- the present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program.
- the present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
画像における符号化対象の所定のサイズの着目ブロックに対し、符号化済みの画素から予測画像を生成し、着目ブロックと予測画像との差分である予測誤差を導出し、予測誤差を周波数変換し、周波数変換によって得られた直交変換係数を量子化する。そして、量子化された直交変換係数をエントロピー符号化し、量子化された直交変換係数を逆量子化して再生直交変換係数を生成する。再生直交変換係数は補正される。
Description
本発明は、画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、コンピュータプログラムに関する。
動画像の圧縮記録のための符号化方式として、VVC(Versatile Video Coding)符号化方式(以下、VVCと記す)が知られている。VVCでは符号化効率向上のため、最大128画素x128画素のサイズの基本ブロックを、従来の正方形だけでなく長方形の形状のサブブロックに分割する。
また、VVCにおいては、直交変換を施した後の係数(以下、直交変換係数と記す)を、量子化マトリクスを用いて、周波数成分に応じて重み付けをする処理が用いられている。人間の視覚には劣化が目立ちにくい高周波成分のデータをより削減することで、画質を維持しながら圧縮効率を高めることが可能となっている。特許文献1には、このような量子化マトリクスを符号化する技術が開示されている。
近年、VVCを標準化したJVET(Joint Video Experts Team)では、VVCを上回る圧縮効率を実現するための技術検討が進められている。符号化効率向上のため、逆量子化処理により生成された直交変換係数(以下、再生直交変換係数と記す)に対し、補正値を加算する新たな逆量子化方法(以下、逆量子化補正と呼称する)が検討されている。
この逆量子化補正は、再生直交変換係数に補正値を加算する処理であるが、量子化マトリクスの使用の有無に関わらず所定の補正値を加算する処理となっている。このため、量子化マトリクスを使用した逆量子化処理により生成された再生直交変換係数に対しては、適切な補正値の加算処理を行うことができず、圧縮効率を向上させることができないという問題がある。
本発明は、量子化マトリクスを用いた逆量子化処理により生成された再生直交変換係数に対しても適切な補正値が加算できるような制御を可能とし、圧縮効率を向上させるための技術を提供する。
本発明の一様態は、画像をブロック単位で符号化する画像符号化装置であって、画像における符号化対象の所定のサイズの着目ブロックに対し、符号化済みの画素から予測画像を生成し、前記着目ブロックと前記予測画像との差分である予測誤差を導出する予測手段と、前記予測手段で導出した前記予測誤差を周波数変換する変換手段と、前記変換手段による周波数変換によって得られた直交変換係数を量子化する量子化手段と、前記量子化手段により量子化された直交変換係数をエントロピー符号化する符号化手段と、前記量子化手段により量子化された直交変換係数を逆量子化して再生直交変換係数を生成する逆量子化手段とを有し、前記逆量子化手段は前記再生直交変換係数を補正することを特徴とする。
本発明によれば、量子化マトリクスを用いた逆量子化処理により生成された再生直交変換係数に対しても適切な補正値が加算できるような制御を可能とし、圧縮効率を向上させるための技術を提供することができる。
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
画像符号化装置の機能構成例を示すブロック図。
画像復号装置の機能構成例を示すブロック図。
画像符号化装置が1フレーム分の入力画像を符号化するために行う処理のフローチャート。
画像復号装置が1フレーム分のビットストリームを復号するために行う処理のフローチャート。
画像符号化装置や画像復号装置に適用可能なコンピュータ装置のハードウェア構成例を示すブロック図。
ビットストリームのデータ構造の一例を示す図。
ビットストリームのデータ構造の一例を示す図。
サブブロックの分割パターンの例を示す図。
サブブロックの分割パターンの例を示す図。
サブブロックの分割パターンの例を示す図。
サブブロックの分割パターンの例を示す図。
サブブロックの分割パターンの例を示す図。
サブブロックの分割パターンの例を示す図。
量子化マトリクス800の構成例を示す図。
量子化マトリクス800の構成例を示す図。
量子化マトリクス800の構成例を示す図。
走査方法を示す図。
1次元の差分行列の構成例を示す図。
1次元の差分行列の構成例を示す図。
1次元の差分行列の構成例を示す図。
符号化テーブルの構成例を示す図。
符号化テーブルの構成例を示す図。
イントラ・インター混在予測で用いられる領域分割の一例を示す図。
イントラ・インター混在予測で用いられる領域分割の一例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
先ず、本実施形態に係る画像符号化装置の機能構成例について、図1のブロック図を用いて説明する。画像符号化装置には、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末装置、撮像装置、画像処理専用回路などを適用することができる。
先ず、本実施形態に係る画像符号化装置の機能構成例について、図1のブロック図を用いて説明する。画像符号化装置には、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末装置、撮像装置、画像処理専用回路などを適用することができる。
画像符号化装置は入力部101を介して、符号化対象となる画像を入力画像として取得する。画像符号化装置が入力画像を取得するための方法については特定の方法に限らない。たとえば、画像符号化装置は、撮像装置から出力された画像(動画像における各フレームの画像、定期的もしくは不定期的に撮像された静止画像など)を入力画像として取得してもよい。なお、画像符号化装置と撮像装置とが一体化されている場合には、画像符号化装置は、自身が有する撮像装置により撮像された画像を入力画像として取得することになる。またたとえば、画像符号化装置はLANやインターネットなどのネットワークを介して、サーバ装置などの外部装置に保持されている画像を入力画像として取得するようにしてもよい。またたとえば、画像符号化装置は、自身が有する記憶装置に保持されている画像を入力画像として取得するようにしてもよい。
ブロック分割部102は、入力画像を複数の基本ブロック(以下、適宜、単にブロックとも称する)に分割する。量子化マトリクス保持部103は、量子化処理に用いる複数の量子化マトリクスを取得して保持する。量子化マトリクス保持部103が量子化マトリクスを取得するための方法は特定の方法に限らない。たとえば、量子化マトリクス保持部103は、ユーザが不図示の操作部を操作して入力した量子化マトリクスを取得してもよいし、入力画像の特性から量子化マトリクスを算出してもよいし、初期値として予め指定された量子化マトリクスを取得するようにしてもよい。本実施形態では、量子化マトリクス保持部103は、図8A~8Cに例示する3種類の「8画素x8画素の直交変換(周波数変換)に対応した2次元の量子化マトリクス800」を取得して保持する。
逆量子化補正制御部114は、後段の逆量子化・逆変換部106において実行される逆量子化補正処理を制御するための情報である逆量子化補正制御情報を取得する。逆量子化補正制御部114が逆量子化補正制御情報を取得するための方法は特定の方法に限らない。たとえば、逆量子化補正制御部114は、ユーザが不図示の操作部を操作して入力した逆量子化補正制御情報を取得してもよいし、入力画像の特性に基づいて逆量子化補正制御情報を算出してもよい。またたとえば、逆量子化補正制御部114は、予め初期値として設定された逆量子化補正制御情報を画像符号化装置内のメモリもしくは画像符号化装置外のメモリから取得してもよい。
予測部104は、ブロック分割部102によって分割されたそれぞれの基本ブロックについて、該基本ブロックを1以上のサブブロックに分割し、該サブブロックに対してフレーム内予測であるイントラ予測やフレーム間予測であるインター予測などの予測処理を行うことで該サブブロックに対応する予測画像を生成し、該サブブロックと該予測画像との差分(誤差)を予測誤差として導出する。また、予測部104は、予測に必要な情報(例えばサブブロック分割、予測モードや動きベクトル等の情報)を予測情報として出力する。
変換・量子化部105は、サブブロックに対応する予測誤差を直交変換(周波数変換)することで該サブブロックに対応する直交変換係数を生成し、該直交変換係数を、量子化マトリクス保持部103が保持する量子化マトリクスを用いて量子化することで量子化係数を生成する。なお、一例として、直交変換を行う構成と、量子化を行う構成とを1つのブロックで表現している。しかし、直交変換を行う構成と、量子化を行う構成とは別にしてもよい。
逆量子化・逆変換部106は、変換・量子化部105によって生成された量子化係数を、量子化マトリクス保持部103が保持する量子化マトリクスを用いて逆量子化することで再生直交変換係数を生成する。そして逆量子化・逆変換部106は、該生成した再生直交変換係数を、逆量子化補正制御部114が取得した逆量子化補正制御情報に基づいて補正し、該補正した再生直交変換係数を逆直交変換することで予測誤差を生成(再生)する。なお、一例として、逆量子化を行う構成と逆直交変換を行う構成とを1つのブロックで表現している。しかし、逆量子化を行う構成と、逆変換を行う構成とは別にしてもよい。
画像再生部107は、予測部104から出力された予測情報に基づいてフレームメモリ108を適宜参照して予測画像を生成し、該予測画像と、逆量子化・逆変換部106によって生成(再生)された予測誤差と、から再生画像を生成し、該再生画像をフレームメモリ108に格納する。
インループフィルタ部109は、フレームメモリ108に格納された再生画像に対して、デブロッキングフィルタやサンプルアダプティブオフセットなどのインループフィルタ処理を行う。
符号化部110は、変換・量子化部105によって生成された量子化係数、予測部104から出力された予測情報、を符号化することで符号データを生成する。量子化マトリクス符号化部113は、量子化マトリクス保持部103が保持している量子化マトリクスを符号化することで符号データを生成する。
統合符号化部111は、逆量子化補正制御部114が取得した逆量子化補正制御情報などの、画像データの符号化に必要なヘッダ情報と、量子化マトリクス符号化部113によって生成された符号データと、を用いてヘッダ符号データを生成する。さらに統合符号化部111は、該生成したヘッダ符号化データに、符号化部110によって生成された符号データを結合することでビットストリームを生成し、該生成したビットストリームを出力部112を介して外部に出力する。なお、ビットストリームの出力先は特定の出力先に限らない。たとえば、統合符号化部111はビットストリームを出力部112を介して外部の装置(たとえば、メモリ装置やサーバ装置)に対して出力(送信)してもよいし、該ビットストリームを画像符号化装置内のメモリに格納してもよい。制御部150は、上記の各機能部を含む、画像符号化装置全体の動作制御を行う。
次に、図1に示した機能構成における画像符号化装置の動作について説明する。逆量子化補正制御部114は、逆量子化補正制御情報を取得する。逆量子化補正制御情報の値と、逆量子化補正処理と、の関係については後述する。
量子化マトリクス保持部103は、複数の量子化マトリクスを取得して保持するのであるが、量子化マトリクスは、サブブロックのサイズや予測方法の種類に応じて生成される。本実施形態では量子化マトリクス保持部103は上記の如く、図8A~8Cに示された8画素x8画素のサイズのサブブロックに対応する、8画素x8画素のサイズの量子化マトリクス800を生成するものとする。
図8Aの量子化マトリクス800は、イントラ予測に対応する量子化マトリクスの一例を示している。図8Bの量子化マトリクス800は、インター予測に対応する量子化マトリクスの一例を示している。図8Cの量子化マトリクス800は、イントラ・インター混在予測に対応する量子化マトリクスの一例を示している。図8に示す如く、量子化マトリクスは8個x8個の要素(量子化ステップ値)で構成される。本実施形態では、図8A~8Cに示された3種類の量子化マトリクスが二次元配列として量子化マトリクス保持部103に保持されているケースについて説明するが、量子化マトリクス内の各要素はこれに限定されない。また、サブブロックのサイズによって、あるいは符号化対象が輝度ブロックか色差ブロックかによって、同じ予測方法に対して複数の量子化マトリクスを保持することも可能である。一般的に、量子化マトリクスは人間の視覚特性に応じた量子化処理を実現するため、図8A~8Cに示すように量子化マトリクスの左上隅部分に相当する直流成分用の要素は小さく、右下部分に相当する交流成分の要素は大きくなっている。
ただし、生成される量子化マトリクスはこれに限定されず、たとえば、4画素x8画素、8画素x4画素、4画素x4画素など、サブブロックの形状に対応した量子化マトリクスが生成されてもよい。量子化マトリクスにおける各要素の決定方法は特に限定しない。例えば、量子化マトリクスにおける各要素には所定の初期値を用いてもよいし、量子化マトリクスにおける各要素は個別に設定してもよいし、画像の特性に応じて生成されても構わない。
量子化マトリクス符号化部113は、二次元配列として量子化マトリクス保持部103に保持されている量子化マトリクスを順に読み出し、該量子化マトリクスにおける各要素を走査して差分を計算し、一次元の行列(差分行列)に配置する。本実施形態では、図8A~8Cに示された各量子化マトリクス800における要素を図9に示す如く矢印で示す順序で走査する走査方法を用い、要素ごとに走査順に直前の要素との差分を計算する。例えば図8Cで示された8画素x8画素の量子化マトリクス800は図9で示された走査方法によって走査されるが、左上隅に位置する最初の要素「8」の次は、そのすぐ下に位置する要素「11」が走査され、差分である「+3」が計算される。また、量子化マトリクスの最初の要素(図8Cの例では「8」の符号化には所定の初期値(例えば「8」)との差分を計算するものとするが、もちろんこれに限定されず、任意の値との差分や、最初の要素の値そのものを用いてもよい。
このようにして、本実施形態では、図8A~8Cのそれぞれの量子化マトリクス800は、図9の走査方法を用い、図10A~10Cに示される1次元の差分行列1000が生成される。量子化マトリクス符号化部113はさらに差分行列を符号化して量子化マトリクスの符号データを生成する。本実施形態では図11Aに示される符号化テーブルを用いて符号化するものとするが、符号化テーブルはこれに限定されず、例えば図11Bに示される符号化テーブルを用いてもよい。
図1に戻り、統合符号化部111は、逆量子化補正制御情報を含む、画像の符号化に必要なヘッダ情報に、量子化マトリクスの符号データを統合することで、ヘッダ符号データを生成する。続いて、画像の符号化について説明する。
ブロック分割部102は、入力部101を介して入力された入力画像を複数の基本ブロックに分割する。本実施形態では、基本ブロックのサイズは8画素x8画素である。予測部104では、それぞれの基本ブロックに対して予測処理を行う。より詳しくは、予測部104は先ず、基本ブロックをさらに細かいサブブロックに分割するための方法であるサブブロック分割法を決定し、さらにサブブロック単位でイントラ予測やインター予測、イントラ・インター混在予測などの予測モードを決定する。
図7A~7Fは、サブブロックの分割パターンの例を示している。図7において外側の太枠700は基本ブロックを表しており、本実施形態では8画素x8画素のサイズを有する。そして、太枠700内の矩形がサブブロックを表している。図7Aは基本ブロック=サブブロックの例を示している。図7Bは従来の正方形サブブロック分割の一例を表しており、8画素x8画素の基本ブロックは4つの4画素x4画素のサブブロックに分割されている。図7C~7Fは長方形サブブロック分割の一例を表している。図7Cでは基本ブロックは2つの4画素x8画素の縦長のサブブロックに分割されており、図7Dでは基本ブロックは2つの8画素x4画素の横長の長方形のサブブロックに分割されている。また、図7E、7Fでは、基本ブロックは1:2:1の比で長方形サブブロックに分割されている。このように正方形だけではなく、長方形のサブブロックも用いて符号化処理を行っている。
本実施形態では説明を簡単にするために、8画素x8画素の基本ブロックをサブブロックには分割しない(図7A)サブブロック分割法を採用する。しかし、図7Bのような四分木分割や、図7E、7Fのような三分木分割や、図7Cや図7Dのような二分木分割を用いても構わない。図7A以外のサブブロック分割も用いられる場合には、量子化マトリクス保持部103にて、使用されるサブブロックに対応する量子化マトリクスが生成される。また、生成された量子化マトリクスは量子化マトリクス符号化部113にて符号化されることとなる。
また、本実施形態で用いられる予測モード(予測方法)について、改めて説明する。本実施形態ではイントラ予測、インター予測、イントラ・インター混在予測の3種類の予測方法が用いられる。イントラ予測では、符号化対象ブロックの空間的に周辺に位置する符号化済画素を用いて符号化対象ブロックの予測画素を生成し、水平予測や垂直予測、DC予測などのイントラ予測方法を示すイントラ予測モードも生成する。インター予測では、符号化対象ブロックとは時間的に異なるフレームの符号化済画素を用いて符号化対象ブロックの予測画素を生成し、参照するフレームや動きベクトルなどを示す動き情報も生成する。
イントラ・インター混在予測では、まず符号化対象ブロックを斜め方向の線分で分割し2つの領域を生成する。そして、一方の領域に前述のイントラ予測により生成された画素値を用い、もう一方の領域に前述のインター予測により生成された画素値を用い、符号化対象ブロックの予測画素を生成する。図12A,12Bはこのイントラ・インター混在予測で用いられる領域分割の一例を示している。図12Aは、符号化対象ブロック1200を左上の頂点から右下の頂点への対角線によって、2つの領域を生成する場合の例を示している。例えば右上の領域にはイントラ予測によって生成された画素値を用い、左下の領域にはインター予測によって生成された画素値を用いることができる。また、図12Bは、符号化対象ブロック1200を右上の頂点から左上の頂点と左下の頂点の中点への斜め方向の線分によって、2つの領域を生成する場合の例を示している。例えば左上の領域にはイントラ予測によって生成された画素値を配置し、右下の領域にはインター予測によって生成された画素値を配置することができる。こうしてイントラ・インター混在予測では、符号化対象ブロックの予測画素を生成し、予測画素の生成に用いられたイントラ予測モードや動き情報および領域分割に関する情報も生成する。
予測部104は、決定した予測モードおよび符号化済の画素から、符号化対象のサブブロックの予測画像を生成する。そして、予測部104は、符号化対象のサブブロックと、該サブブロックの予測画像と、の差分(誤差)を演算して予測誤差を生成する。また、予測部104は、サブブロック分割法や予測モード(イントラ予測、インター予測、イントラ・インター混在予測のいずれであるかを示す情報)やベクトルデータなどの予測情報を出力する。
変換・量子化部105は、予測誤差に対して直交変換および量子化を行うことで量子化係数を生成する。具体的には、変換・量子化部105は、予測誤差のサイズに対応した直交変換処理を施して直交変換係数を生成する。次に変換・量子化部105は、量子化マトリクス保持部103が保持している量子化マトリクスのうち予測モードに応じた量子化マトリクスを選択し、該選択した量子化マトリクスを用いて直交変換係数を量子化することで量子化係数を生成する。本実施形態では、イントラ予測で予測処理が行われたサブブロックの直交変換係数の量子化には図8Aの量子化マトリクスが選択され、インター予測が行われたサブブロックの直交変換係数の量子化には図8Bの量子化マトリクスが選択される。また、本実施形態では、イントラ・インター混在予測が行われたサブブロックの直交変換係数の量子化には図8Cの量子化マトリクスが選択される。ただし、使用される量子化マトリクスはこれに限定されない。
逆量子化・逆変換部106は、サブブロックの量子化係数を、量子化マトリクス保持部103に格納されている量子化マトリクスのうち、該サブブロックの直交変換係数の量子化に用いた量子化マトリクスを用いて逆量子化することで再生直交変換係数を生成する。そして逆量子化・逆変換部106は、逆量子化補正制御情報に基づき、該再生直交変換係数に対して逆量子化補正処理を行う。
ここで、本実施形態における逆量子化補正処理について説明する。本実施形態における逆量子化処理および逆量子化補正処理は、例えば、以下の式(1)を用いて実施される。
dz[x][y]=L[x][y]×Q[x][y]+Shift … (1)
式(1)において、dz[x][y]は、位置(x、y)に対応する補正後の再生直交変換係数であり、L[x][y]は、位置(x、y)に対応する量子化係数である。また、Q[x][y]は、位置(x、y)に対応する「量子化マトリクスの要素を加味して算出された量子化スケール」である。また、Shiftは本実施形態の逆量子化補正処理に用いられる補正値であり、量子化係数Lおよび逆量子化補正制御情報に基づいて決定される。具体的には、逆量子化・逆変換部106は、逆量子化補正制御情報の値が0である場合には、式(1)のShiftの値を0とする。この場合、逆量子化補正処理では、実質的には再生直交変換係数の補正は行われない。一方、逆量子化・逆変換部106は、逆量子化補正制御情報の値が1である場合には、式(1)のShiftの値を、以下の式(2)を用いて導出する。
式(1)において、dz[x][y]は、位置(x、y)に対応する補正後の再生直交変換係数であり、L[x][y]は、位置(x、y)に対応する量子化係数である。また、Q[x][y]は、位置(x、y)に対応する「量子化マトリクスの要素を加味して算出された量子化スケール」である。また、Shiftは本実施形態の逆量子化補正処理に用いられる補正値であり、量子化係数Lおよび逆量子化補正制御情報に基づいて決定される。具体的には、逆量子化・逆変換部106は、逆量子化補正制御情報の値が0である場合には、式(1)のShiftの値を0とする。この場合、逆量子化補正処理では、実質的には再生直交変換係数の補正は行われない。一方、逆量子化・逆変換部106は、逆量子化補正制御情報の値が1である場合には、式(1)のShiftの値を、以下の式(2)を用いて導出する。
Shift=T×L[x][y] … (2)
式(2)において、Tは0以上1未満の値を取る実数である。本実施形態ではTは固定値であるものとするが、これに限定されず、位置(x,y)によって可変の値をとっても構わないし、T自体を量子化係数L[x][y]を用いて算出してもよい。例えば、Tの値を下記の表が示すように量子化係数L[x][y]の絶対値(|L[x][y]|)に応じて算出してもよい。
式(2)において、Tは0以上1未満の値を取る実数である。本実施形態ではTは固定値であるものとするが、これに限定されず、位置(x,y)によって可変の値をとっても構わないし、T自体を量子化係数L[x][y]を用いて算出してもよい。例えば、Tの値を下記の表が示すように量子化係数L[x][y]の絶対値(|L[x][y]|)に応じて算出してもよい。
この場合、量子化係数L[x][y]が0の場合には、Tの値も0となり、実質的に補正を行わない。また、非ゼロの量子化係数L[x][y]の絶対値(|L[x][y]|)が大きくなるにつれ、Tの値は小さくなり、|L[x][y]|が所定の値よりも大きくなった場合にもTの値も0となり、その場合も実質的に補正を行わない。
そして逆量子化・逆変換部106は、上記の式(1)を用いて生成された再生直交変換係数を逆直交変換することで予測誤差を生成(再生)する。逆量子化処理には、変換・量子化部105と同様、符号化対象ブロックの予測モードに対応した量子化マトリクスが用いられる。具体的には、変換・量子化部105で用いられた量子化マトリクスと同一のものが用いられる。
画像再生部107は、予測部104から入力される予測情報に基づいて、フレームメモリ108を適宜参照して、予測画像を生成(再生)する。そして画像再生部107は、再生された予測画像と、逆量子化・逆変換部106によって生成(再生)された予測誤差と、を加算することで、対応するサブブロックの再生画像を生成(再生)し、該生成した再生画像をフレームメモリ108に格納する。
インループフィルタ部109は、フレームメモリ108から再生画像を読み出し、該読み出した再生画像に対してデブロッキングフィルタなどのフィルタを用いたインループフィルタ処理を行う。そして、インループフィルタ部109は、インループフィルタ処理を適用した再生画像を再びフレームメモリ108に格納する。
符号化部110は、サブブロックごとに、変換・量子化部105で生成された該サブブロックの量子化係数、予測部104から入力された該サブブロックの予測情報、をエントロピー符号化することで符号データを生成する。エントロピー符号化の方法は特定の方法に限らないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。
統合符号化部111は、それぞれの符号データを多重化してビットストリームを生成し、該生成したビットストリームを出力する。図6Aは本実施形態で出力されるビットストリームのデータ構造の一例を示している。シーケンスヘッダには逆量子化補正制御情報や量子化マトリクスの符号データが含まれ、各要素の符号データで構成されている。ただし、符号化される位置はこれに限定されず、ピクチャヘッダやその他のヘッダに符号化される構成をとっても構わない。また、1つのシーケンスの中で逆量子化補正制御情報や量子化マトリクスの変更を行う場合、逆量子化補正制御情報や量子化マトリクスを新たに符号化することで更新することも可能である。
次に、画像符号化装置が1フレーム分の入力画像を符号化するために行う処理について、図3のフローチャートに従って説明する。画像符号化装置が複数のフレームの入力画像を符号化する場合には、画像符号化装置は、ステップS305~S312の処理を各フレームの入力画像に対して行う。
まず、画像の符号化に先立ち、ステップS301では、逆量子化補正制御部114は、逆量子化補正制御情報を取得する。ステップS302では、量子化マトリクス保持部103は、量子化処理に用いる複数の量子化マトリクスを取得して保持する。
ステップS303では、量子化マトリクス符号化部113は、ステップS302で生成された量子化マトリクスを走査して各要素の差分を算出して1次元の差分行列を生成する。ステップS304では、統合符号化部111は、ステップS301で取得した逆量子化補正制御情報などの、画像データの符号化に必要なヘッダ情報と、ステップS303で生成された量子化マトリクスの符号データと、を用いてヘッダ符号データを生成する。
ステップS305では、ブロック分割部102は、入力部101を介して入力された入力画像を複数の基本ブロックに分割する。ステップS306では、予測部104は、ステップS305で分割された基本ブロックのうち未選択の1つを選択基本ブロックとして選択する。そして予測部104は、該選択基本ブロックをサブブロックに分割し(選択基本ブロック=サブブロックのケースも含む)、該サブブロックの予測誤差を導出すると共に、予測情報を出力する。
なお、予測部104による具体例な処理例を示すと次の通りである。予測部104は、符号化しようとする着目サブブロック(着目ブロック)に対して、該着目サブブロックが属する入力画像と同じ入力画像における符号化済み領域を参照してイントラ予測処理を行い、イントラ予測画像を生成する。また、予測部104は、符号化しようとする着目サブブロックが属する入力画像とは異なる符号化済みの入力画像(例えば直前のフレームの入力画像)を参照してインター予測処理を行い、インター予測画像を生成する。そして予測部104は、先に示した図12の例のように着目サブブロックを2つの領域に分割し、一方の領域にイントラ予測画像を、もう一方の領域にインター予測画像を配置することでイントラ・インター混在予測画像を生成する。そして予測部104は、これらの3つの予測画像それぞれと着目サブブロックとで位置的に対応する画素同士の画素値の差分の2乗和(絶対値和でもよい)を導出し、2乗和が最小となった予測画像の予測モードを着目サブブロックの予測モードとして決定する。そして予測部104は、予測モードに応じてサブブロックに対する予測処理を行うことで予測画像を生成し、該サブブロックと該予測画像との差分を予測誤差として導出する。
ステップS307では、変換・量子化部105はサブブロックごとに、ステップS306で導出した予測誤差を直交変換して直交変換係数を生成する。そして変換・量子化部105はサブブロックごとに、予測情報に基づき、量子化マトリクス保持部103に保持されている量子化マトリクスから1つを選択し、該選択した量子化マトリクスを用いて直交変換係数を量子化して量子化係数を生成する。
ステップS308では、逆量子化・逆変換部106はサブブロックごとに、ステップS307で生成された量子化係数に対して、ステップS307で選択した量子化マトリクスを用いて逆量子化を行うことで再生直交変換係数を生成し、該再生直交変換係数に対して逆量子化補正制御情報に基づく逆量子化補正処理を行ってから逆直交変換することで予測誤差を生成(再生)する。つまり、逆量子化・逆変換部106は、上記の式(1)に従って、再生直交変換係数に対して逆量子化処理および逆量子化補正処理を行う。
ステップS309で画像再生部107はサブブロックごとに、ステップS306で出力された予測情報に基づいてフレームメモリ108を参照して予測画像を生成し、該予測画像と、ステップS308で生成された予測誤差と、を用いて再生画像を生成する。
ステップS310では、符号化部110はサブブロックごとに、ステップS306で出力された予測情報、ステップS307で生成された量子化係数、を符号化することで、基本ブロックのサブブロック単位の符号データを生成する。そして統合符号化部111は、ステップS304で生成されたヘッダ符号データ、符号化部110によって生成された符号データ、などを多重化してビットストリームを生成する。
ステップS311では、制御部150は、入力画像における全ての基本ブロックを選択基本ブロックとして選択したか否か(つまり全ての基本ブロックの符号化(ステップS306~S310の処理)が完了したか否か)を判断する。
この判断の結果、入力画像における全ての基本ブロックを選択基本ブロックとして選択した場合、処理はステップS312に進み、入力画像において未だ選択基本ブロックとして選択していない基本ブロックが残っている場合、処理はステップS306に進む。
ステップS312では、インループフィルタ部109は、フレームメモリ108から再生画像を読み出し、該再生画像に対してインループフィルタ処理を行い、インループフィルタ処理を適用した再生画像を再びフレームメモリ108に格納する。
以上の構成と動作により、特にステップS308において、逆量子化補正制御情報に基づく再生直交変換係数の補正を行うことで、量子化マトリクスを用いた逆量子化処理によって生成された再生直交変換係数に対しても適切な補正を行うことができ、圧縮効率を向上させることができる。
なお、本実施形態では、フレーム内の全てのサブブロックの逆量子化処理に量子化マトリクスを用いて再生直交変換係数を生成し、逆量子化補正制御情報に基づいた補正を行う構成としたが、これに限定されない。たとえば、フレーム内の一部のサブブロック(例えば8画素x8画素のサイズのサブブロック)については量子化マトリクスを用いた逆量子化を行い、その他のサブブロック(例えば4画素x4画素のサイズのサブブロック)については量子化マトリクスを用いない(すなわち全ての周波数成分で同一の量子化スケールを用いる)逆量子化を行う構成としてもよい。その場合、量子化マトリクスを用いて逆量子化を行ったサブブロックに対しては、逆量子化補正制御情報に応じて式(1)による補正を行い、量子化マトリクスを用いないで逆量子化を行ったサブブロックに対しては、逆量子化補正制御情報によらず常に式(1)による補正を行う構成とすることもできる。これにより、量子化マトリクスを用いて逆量子化を行ったサブブロックと量子化マトリクスを用いないで逆量子化を行ったサブブロックとが混在している場合においても、各サブブロックに適切な補正を行い、圧縮効率を向上させることができる。
また本実施形態では、量子化補正制御情報を符号化してビットストリームに含ませる構成としたが、これに限定されない。例えば量子化補正制御情報を常に0と設定することで、図6Bに示されるようにビットストリームに含ませる量子化補正制御情報の符号を省略することもできる。この場合、量子化マトリクスを用いないで逆量子化を行うサブブロックには常に逆量子化補正処理が施され、量子化マトリクスを用いて逆量子化を行うサブブロックには常に逆量子化補正処理が施されない構成となる。これにより、量子化マトリクスの適用の有無と逆量子化補正処理の適用の有無との関係性を単純化して制御を容易にし、さらには逆量子化補正制御情報の符号分の符号量を削減することができる。
また、本実施形態では、逆量子化補正制御情報は、逆量子化補正処理の適用の有無のみを示す構成としているが、逆量子化補正処理に用いられるパラメータの値に逆量子化補正制御情報の値を設定することもできる。例えば、前述の式(1)におけるShiftや式(2)におけるTの値に逆量子化補正制御情報の値を設定することも可能である。これにより画像の特性に応じて逆量子化補正の強度を制御することが可能となり、結果として圧縮効率を向上させることができる。
また本実施形態では、イントラ予測、インター予測、イントラ・インター混在予測の3種類の予測方法が用いられているが、それぞれの予測およびその誤差の特性が異なるため、予測方法に応じて異なる逆量子化補正処理を行う構成とすることもできる。例えば、イントラ予測を用いたサブブロックに対応する逆量子化補正制御情報、インター予測を用いたサブブロックに対応する逆量子化補正制御情報、イントラ・インター混在予測を用いたサブブロックに対応する逆量子化補正制御情報、を個別に設定することで、それぞれの予測方法に適した逆量子化補正制御を適用することもできる。この場合、それぞれの逆量子化補正制御情報を符号化してビットストリームに含める構成としてもよいし、それぞれの逆量子化補正制御情報を固定値に設定して、それぞれの符号化を省略する構成としても構わない。
なお、本実施形態では、フレーム単位の画像の符号化処理を行ってビットストリームを生成して出力する構成としたが、符号化処理の対象は画像に限定されない。例えば、物体認識などの機械学習に用いられる特徴量を2次元配列のデータとし、該データを符号化対象としてもよい。これにより、機械学習に用いられる特徴量を効率よく符号化することが可能となる。
[第2の実施形態]
本実施形態に係る画像復号装置は、第1の実施形態に係る画像符号化装置によって生成されたフレーム単位のビットストリームを復号する。本実施形態に係る画像復号装置の機能構成例について、図2のブロック図を用いて説明する。
本実施形態に係る画像復号装置は、第1の実施形態に係る画像符号化装置によって生成されたフレーム単位のビットストリームを復号する。本実施形態に係る画像復号装置の機能構成例について、図2のブロック図を用いて説明する。
分離復号部202は、入力部201を介してビットストリームを取得する。分離復号部202がビットストリームを取得するための方法は特定の方法に限らない。たとえば、分離復号部202は、サーバ装置などの外部の装置に保持されているビットストリームをネットワークを介して取得してもよいし、撮像装置にて生成されたビットストリームを該撮像装置から取得するようにしてもよい。そして分離復号部202は、該ビットストリームから、ヘッダ符号データや、基本ブロックのサブブロック単位の符号データ、を分離する。要するに分離復号部202は、図1の統合符号化部111と逆の動作を行う。また、分離復号部202は、ヘッダ符号データから逆量子化補正制御情報を抽出する。
量子化マトリクス復号部209は、分離復号部202によって分離されたヘッダ符号データを復号して量子化マトリクスを再生する。復号部203は、分離復号部202によって分離された基本ブロックのサブブロック単位の符号データを復号し、量子化係数および予測情報を再生する。
逆量子化・逆変換部204は、量子化マトリクス復号部209によって再生された量子化マトリクスを用いて、復号部203によって再生された量子化係数を、逆量子化・逆変換部106と同様にして逆量子化することで再生直交変換係数を生成する。そして逆量子化・逆変換部204は逆量子化・逆変換部106と同様に、該再生直交変換係数に対して、分離復号部202により抽出された逆量子化補正制御情報に基づく逆量子化補正処理を行ってから逆直交変換することで予測誤差を生成(再生、導出)する。
画像再生部205は、画像再生部107と同様に、復号部203によって再生された予測情報に基づいてフレームメモリ206を適宜参照して予測画像を生成する。そして、画像再生部205は、画像再生部107と同様に、該予測画像に、逆量子化・逆変換部204によって再生された予測誤差を加算することで再生画像を生成し、該再生画像をフレームメモリ206に格納する。
インループフィルタ部207は、インループフィルタ部109と同様、フレームメモリ206から再生画像を読み出し、該再生画像に対してインループフィルタ処理を行い、インループフィルタ処理を適用した再生画像を再びフレームメモリ206に格納する。インループフィルタ部207によりインループフィルタ処理が適用された再生画像は制御部250による制御の元、出力部208を介して外部の装置に対して出力される。
再生画像の出力先は特定の出力先に限らない。たとえば、制御部250は、再生画像をネットワークを介して外部の装置に対して送信してもよいし、画像復号装置に接続された表示装置に再生画像を出力して該再生画像を該表示装置に表示させてもよい。制御部250は、上記の各機能部を含む、画像復号装置全体の動作制御を行う。
次に、図2に示した機能構成における画像復号装置の動作について説明する。入力部201を介して入力された1フレーム分のビットストリームは分離復号部202に入力される。本実施形態に係る分離復号部202は、図6Aに示されるビットストリームのシーケンスヘッダから逆量子化補正制御情報を抽出すると共に、該シーケンスヘッダから図8A~8Cの量子化マトリクスの符号データを抽出する。また、分離復号部202は、ピクチャデータの基本ブロックのサブブロック単位の符号データを再生する。
量子化マトリクス復号部209は、量子化マトリクスの符号データを復号し、図10A~10Cに示される一次元の差分行列を再生する。本実施形態では、第1の実施形態と同様、図11A(又は図11B)に示される符号化テーブルを用いて復号するものとするが、符号化テーブルはこれに限定されず、第1の実施形態と同じものを用いる限りは他の符号化テーブルを用いてもよい。そして量子化マトリクス復号部209は、再生された一次元の差分行列を逆走査して二次元配列としての量子化マトリクスを再生する。つまり量子化マトリクス復号部209は量子化マトリクス符号化部113の動作と逆の動作を行う。すなわち、量子化マトリクス復号部209は、図10A~10Cに示される差分行列を、図9に示される走査方法を用いて、それぞれ図8A~8Cに示される3種の量子化マトリクスを再生する。
復号部203は、基本ブロックのサブブロック単位の符号データを復号し、量子化係数および予測情報を再生する。逆量子化・逆変換部204は、量子化マトリクス復号部209で再生された量子化マトリクスのうち1つを選択し、復号部203によって再生された量子化係数を、該選択した量子化マトリクスを用いて逆量子化することで再生直交変換係数を生成する。そして逆量子化・逆変換部204は逆量子化・逆変換部106と同様に、該生成された再生直交変換係数に対して、分離復号部202によって抽出された逆量子化補正制御情報に基づく逆量子化補正処理を行ってから逆直交変換することで予測誤差を生成(再生)する。
本実施形態の逆量子化・逆変換部204は、復号部203で再生された予測情報に従って定まる復号対象のサブブロックの予測モードに応じて、逆量子化処理で用いる量子化マトリクスを決定する。すなわち、イントラ予測が用いられているサブブロックには図8Aの量子化マトリクス、インター予測が用いられているサブブロックには図8Bの量子化マトリクス、イントラ・インター混在予測が用いられているサブブロックには図8Cの量子化マトリクス、が選択される。ただし、使用される量子化マトリクスはこれに限定されず、第1の実施形態の変換・量子化部105および逆量子化・逆変換部106で用いられた量子化マトリクスと同一のものであればよい。
画像再生部205は、画像再生部107と同様に、復号部203によって再生された予測情報に基づいてフレームメモリ206を適宜参照して予測画像を生成する。本実施形態では、予測部104と同様、イントラ予測、インター予測、イントラ・インター混在予測の3種類の予測方法が用いられる。そして、画像再生部205は、画像再生部107と同様に、該予測画像に、逆量子化・逆変換部204によって再生された予測誤差を加算することで再生画像を生成し、該再生画像をフレームメモリ206に格納する。格納された再生画像は他のサブブロックを復号する際の予測参照候補となる。
インループフィルタ部207は、インループフィルタ部109と同様、フレームメモリ206に格納されている再生画像に対してインループフィルタ処理を行う。上記の如く、インループフィルタ部207によりインループフィルタ処理が適用された再生画像は出力部208を介して外部の装置に対して出力される。
次に、画像復号装置が1フレーム分のビットストリームを復号するために行う処理について、図4のフローチャートに従って説明する。画像復号装置が複数のフレームのビットストリームを復号する場合には、画像復号装置は、図4のフローチャートに従った処理を各フレームのビットストリームに対して行う。
ステップS401では、分離復号部202は、ビットストリームから逆量子化補正制御情報を抽出(復号)すると共に、該ビットストリームから量子化マトリクスの符号データ、基本ブロックのサブブロック単位の符号データ、を再生(分離)する。
ステップS402では、量子化マトリクス復号部209は、ステップS401で再生した量子化マトリクスの符号データを復号することで一次元の差分行列を再生し、該再生された一次元の差分行列を逆走査して二次元配列としての量子化マトリクスを再生する。
ステップS403では、復号部203は、ステップS401で再生された基本ブロックのサブブロック単位の符号データを復号し、量子化係数および予測情報を再生する。ステップS404では、逆量子化・逆変換部204は、ステップS402で再生された量子化マトリクスのうち1つを選択し、ステップS403で再生された量子化係数を、該選択した量子化マトリクスを用いて逆量子化することで再生直交変換係数を生成する。そして逆量子化・逆変換部204は、該再生直交変換係数に対して、ステップS401で抽出された逆量子化補正制御情報に基づく逆量子化補正処理を行ってから逆直交変換することで予測誤差を生成(再生)する。
ステップS405では、画像再生部205は、ステップS403で再生された予測情報に基づいてフレームメモリ206を適宜参照して予測画像を生成する。そして、画像再生部205は、該予測画像に、ステップS404で再生された予測誤差を加算することで再生画像を生成し、該再生画像をフレームメモリ206に格納する。
ステップS406では、制御部250は、全ての基本ブロックについてステップS403~S405の処理を行ったか否かを判断する。この判断の結果、全ての基本ブロックについてステップS403~S405の処理を行った場合には、処理はステップS407に進む。一方、ステップS403~S405の処理を行っていない基本ブロックが残っている場合には、該基本ブロックについてステップS403~S405の処理を行うべく、処理はステップS403に進む。ステップS407では、インループフィルタ部207は、フレームメモリ206に格納されている再生画像に対してインループフィルタ処理を行う。
以上の構成と動作により、逆量子化補正制御情報に基づいて再生直交変換係数を補正することで、量子化マトリクスを用いた逆量子化処理によって生成された再生直交変換係数に対しても適切な補正を行い、圧縮効率を向上したビットストリームを復号することができる。
なお、本実施形態でも、第1の実施形態と同様、フレーム内の全てのサブブロックの逆量子化処理に量子化マトリクスを用いて再生直交変換係数を生成し、逆量子化補正制御情報に基づいた補正を行う構成としたが、これに限定されない。たとえば、本実施形態においても第1の実施形態と同様、量子化マトリクスを用いて逆量子化を行ったサブブロックに対しては、逆量子化補正制御情報に応じて式(1)による補正を行い、量子化マトリクスを用いないで逆量子化を行ったサブブロックに対しては、逆量子化補正制御情報によらず常に式(1)による補正を行う構成とすることもできる。これにより、量子化マトリクスを用いて逆量子化を行ったサブブロックと量子化マトリクスを用いないで逆量子化を行ったサブブロックとが混在している場合においても、各サブブロックに適切な補正を行い、圧縮効率を向上させたビットストリームを復号することができる。
また本実施形態では、量子化補正制御情報が符号化されたビットストリームを復号する構成としたが、これに限定されない。例えば量子化補正制御情報の値を常に0と設定することで、図6Bに示されるように量子化補正制御情報の符号が省略されたビットストリームを復号する構成をとることもできる。この場合、第1の実施形態と同様、量子化マトリクスを用いないで逆量子化を行うサブブロックには常に逆量子化補正処理が施され、量子化マトリクスを用いて逆量子化を行うサブブロックには常に逆量子化補正処理が施されない構成となる。これにより、量子化マトリクスの適用の有無と逆量子化補正処理の適用の有無との関係性を単純化して制御を容易にし、さらには逆量子化補正制御情報の符号分の符号量を削減したビットストリームを復号することができる。
なお、本実施形態でも、第1の実施形態と同様、逆量子化補正処理に用いられるパラメータを逆量子化補正制御情報とすることもできる。これにより画像の特性に応じて逆量子化補正の強度を制御することが可能となり、結果として圧縮効率を向上させたビットストリームを復号することができる。
また本実施形態でも、第1の実施形態と同様、予測方法に応じて異なる逆量子化補正処理を行う構成とすることもできる。この場合、第1の実施形態と同様、それぞれの逆量子化補正制御情報が符号化されたビットストリームを復号する構成としてもよいし、それぞれの逆量子化補正制御情報を固定値に設定して、それぞれの復号を省略する構成としても構わない。
なお、本実施形態では、フレーム単位のビットストリームを復号する構成としたが、復号処理の対象は画像を符号化したビットストリームに限定されない。例えば、物体認識などの機械学習に用いられる特徴量を2次元配列のデータとし、該データを符号化して生成されたビットストリームを復号する構成としてもよい。これにより、機械学習に用いられる特徴量を効率よく符号化したビットストリームを復号することが可能となる。
[第3の実施形態]
第1の実施形態では図1に示した各機能部はいずれもハードウェアで実装されているものとして説明した。しかし、フレームメモリ108を除く各機能部はソフトウェア(コンピュータプログラム)で実装されてもよい。この場合、このソフトウェアを実行可能なコンピュータ装置は、画像符号化装置に適用可能である。
第1の実施形態では図1に示した各機能部はいずれもハードウェアで実装されているものとして説明した。しかし、フレームメモリ108を除く各機能部はソフトウェア(コンピュータプログラム)で実装されてもよい。この場合、このソフトウェアを実行可能なコンピュータ装置は、画像符号化装置に適用可能である。
また、第2の実施形態では図2に示した各機能部はいずれもハードウェアで実装されているものとして説明した。しかし、フレームメモリ206を除く各機能部はソフトウェア(コンピュータプログラム)で実装されてもよい。この場合、このソフトウェアを実行可能なコンピュータ装置は、画像復号装置に適用可能である。
画像符号化装置や画像復号装置に適用可能なコンピュータ装置のハードウェア構成例について、図5のブロック図を用いて説明する。なお、図5に示した構成は画像符号化装置や画像復号装置に適用可能なコンピュータ装置のハードウェア構成の一例であり、適宜変更/変形が可能である。また、画像符号化装置と画像復号装置とで異なる構成のコンピュータ装置を適用してもよい。また、画像符号化装置と画像復号装置とは同一装置であってもよい。
CPU501は、RAM502やROM503に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU501は、コンピュータ装置全体の動作制御を行うと共に、画像符号化装置や画像復号装置が行う処理として説明した各種の処理を実行もしくは制御する。
RAM502は、ROM503や記憶装置506からロードされたコンピュータプログラムやデータを格納するためのエリア、I/F507を介して外部から受信したコンピュータプログラムやデータを格納するためのエリア、を有する。さらにRAM502は、CPU501が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM502は各種のエリアを適宜提供することができる。
ROM503には、コンピュータ装置の設定データ、コンピュータ装置の起動に係るコンピュータプログラムやデータ、コンピュータ装置の基本動作に係るコンピュータプログラムやデータ、などが格納されている。
操作部504は、キーボード、マウス、タッチパネル画面、などのユーザインターフェースであり、ユーザが操作することで各種の指示や情報をコンピュータ装置に対して入力することができる。
表示部505は、液晶画面やタッチパネル画面を有し、CPU501による処理結果を画像や文字などでもって表示することができる。また、表示部505は、画像や文字を投影するプロジェクタなどの投影装置であってもよい。
記憶装置506は、ハードディスクドライブなどの不揮発性のメモリ装置である。記憶装置506には、OS(オペレーティングシステム)、画像符号化装置や画像復号装置が行う処理として説明した各種の処理をCPU501に実行もしくは制御させるためのコンピュータプログラムやデータ、などが保存されている。
記憶装置506に保存されているコンピュータプログラムには、図1に示した各機能部(フレームメモリ108は除く)が行う処理として説明した各種の処理をCPU501に実行もしくは制御させるためのコンピュータプログラムが含まれている。また、記憶装置506に保存されているコンピュータプログラムには、図2に示した各機能部(フレームメモリ206は除く)が行う処理として説明した各種の処理をCPU501に実行もしくは制御させるためのコンピュータプログラムが含まれている。なお、フレームメモリ108やフレームメモリ206は、RAM502や記憶装置506を用いて実装可能である。
I/F507は、外部の装置との間のデータ通信を行うための通信インターフェースである。たとえば、コンピュータ装置は、撮像装置やサーバ装置との間のデータ通信をI/F507を介して行うことで、撮像装置やサーバ装置から入力画像やビットストリームを取得したり、サーバ装置に対してビットストリームを送信したりすることができる。
CPU501、RAM502、ROM503、操作部504、表示部505、記憶装置506、I/F507はいずれもシステムバス508に接続されている。このような構成において、コンピュータ装置の電源がONになると、CPU501はROM503に格納されているブートプログラムを実行して、記憶装置506に格納されたOSをRAM502にロードして該OSを起動する。この結果、コンピュータ装置が、I/F507を介した通信が可能となる。そして、OSの制御下で、CPU501は画像の符号化に係るアプリケーション(図3に相当する)を記憶装置506からRAM502にロードして実行することで、コンピュータ装置が画像符号化装置として機能することになる。一方、CPU501は画像の復号に係るアプリケーション(図4に相当する)を記憶装置506からRAM502にロードして実行した場合、コンピュータ装置は画像復号装置として機能することになる。
上記の各実施形態で使用した数値、処理タイミング、処理順、処理の主体、データ(情報)の構成/取得方法/送信先/送信元/格納場所などは、具体的な説明を行うために一例として挙げたもので、このような一例に限定することを意図したものではない。
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
本願は、2023年9月28日提出の日本国特許出願特願2023-168873を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。
Claims (12)
- 画像をブロック単位で符号化する画像符号化装置であって、
画像における符号化対象の所定のサイズの着目ブロックに対し、符号化済みの画素から予測画像を生成し、前記着目ブロックと前記予測画像との差分である予測誤差を導出する予測手段と、
前記予測手段で導出した前記予測誤差を周波数変換する変換手段と、
前記変換手段による周波数変換によって得られた直交変換係数を量子化する量子化手段と、
前記量子化手段により量子化された直交変換係数をエントロピー符号化する符号化手段と、
前記量子化手段により量子化された直交変換係数を逆量子化して再生直交変換係数を生成する逆量子化手段と
を有し、
前記逆量子化手段は前記再生直交変換係数を補正することを特徴とする画像符号化装置。 - 前記逆量子化手段は、量子化マトリクスを用いないで逆量子化した場合、前記再生直交変換係数を補正し、量子化マトリクスを用いて逆量子化した場合、前記再生直交変換係数を補正しないよう制御する
ことを特徴とする請求項1に記載の画像符号化装置。 - 前記符号化手段は、前記逆量子化手段における補正処理を制御する逆量子化補正制御情報をさらに符号化することを特徴とする請求項1または2に記載の画像符号化装置。
- 前記逆量子化手段は、前記予測手段における予測画像の生成方法に応じて、前記再生直交変換係数に対して異なる補正を行うことを特徴とする請求項1ないし3のいずれか1項に記載の画像符号化装置。
- 画像をブロック単位で復号する画像復号装置であって、
量子化された直交変換係数を復号する復号手段と、
前記量子化された直交変換係数を逆量子化して再生直交変換係数を生成する逆量子化手段と、
前記再生直交変換係数を逆変換して予測誤差を導出する逆変換手段と、
予測画像を生成し、前記予測画像と前記予測誤差とを用いて着目ブロックを復号する予測手段と、を有し、
前記逆量子化手段は前記再生直交変換係数を補正する
ことを特徴とする画像復号装置。 - 前記逆量子化手段は、量子化マトリクスを用いないで逆量子化した場合、前記再生直交変換係数を補正し、量子化マトリクスを用いて逆量子化した場合、前記再生直交変換係数を補正しないよう制御する
ことを特徴とする請求項5に記載の画像復号装置。 - 前記復号手段は、前記逆量子化手段における補正処理を制御する逆量子化補正制御情報をさらに復号することを特徴とする請求項5または6に記載の画像復号装置。
- 前記逆量子化手段は、前記予測手段における予測画像の生成方法に応じて、前記再生直交変換係数に対して異なる補正を行うことを特徴とする請求項5ないし7のいずれか1項に記載の画像復号装置。
- 画像をブロック単位で符号化する画像符号化装置が行う画像符号化方法であって、
前記画像符号化装置の予測手段が、画像における符号化対象の所定のサイズの着目ブロックに対し、符号化済みの画素から予測画像を生成し、前記着目ブロックと前記予測画像との差分である予測誤差を導出する予測工程と、
前記画像符号化装置の変換手段が、前記予測工程で導出した前記予測誤差を周波数変換する変換工程と、
前記画像符号化装置の量子化手段が、前記変換工程による周波数変換によって得られた直交変換係数を量子化する量子化工程と、
前記画像符号化装置の符号化手段が、前記量子化工程により量子化された直交変換係数をエントロピー符号化する符号化工程と、
前記画像符号化装置の逆量子化手段が、前記量子化工程により量子化された直交変換係数を逆量子化して再生直交変換係数を生成する逆量子化工程と
を有し、
前記逆量子化工程では前記再生直交変換係数を補正することを特徴とする画像符号化方法。 - 画像をブロック単位で復号する画像復号装置が行う画像復号方法であって、
前記画像復号装置の復号手段が、量子化された直交変換係数を復号する復号工程と、
前記画像復号装置の逆量子化手段が、前記量子化された直交変換係数を逆量子化して再生直交変換係数を生成する逆量子化工程と、
前記画像復号装置の逆変換手段が、前記再生直交変換係数を逆変換して予測誤差を導出する逆変換工程と、
前記画像復号装置の予測手段が、予測画像を生成し、前記予測画像と前記予測誤差とを用いて着目ブロックを復号する予測工程と、を有し、
前記逆量子化工程では前記再生直交変換係数を補正する
ことを特徴とする画像復号方法。 - 画像をブロック単位で符号化する画像符号化装置のコンピュータを、請求項1ないし4のいずれか1項に記載の画像符号化装置の各手段として機能させるためのコンピュータプログラム。
- 画像をブロック単位で復号する画像復号装置のコンピュータを、請求項5ないし8のいずれか1項に記載の画像復号装置の各手段として機能させるためのコンピュータプログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023-168873 | 2023-09-28 | ||
| JP2023168873A JP2025058743A (ja) | 2023-09-28 | 2023-09-28 | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、コンピュータプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025069744A1 true WO2025069744A1 (ja) | 2025-04-03 |
Family
ID=95202965
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/028745 Pending WO2025069744A1 (ja) | 2023-09-28 | 2024-08-09 | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、コンピュータプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2025058743A (ja) |
| WO (1) | WO2025069744A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007251672A (ja) * | 2006-03-16 | 2007-09-27 | Ricoh Co Ltd | 画像復号装置、画像符号化装置、画像復号方法、及び、画像符号化方法 |
| JP2012124837A (ja) * | 2010-12-10 | 2012-06-28 | Sony Corp | 画像復号化装置および方法、画像符号化装置および方法、並びにプログラム |
-
2023
- 2023-09-28 JP JP2023168873A patent/JP2025058743A/ja active Pending
-
2024
- 2024-08-09 WO PCT/JP2024/028745 patent/WO2025069744A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007251672A (ja) * | 2006-03-16 | 2007-09-27 | Ricoh Co Ltd | 画像復号装置、画像符号化装置、画像復号方法、及び、画像符号化方法 |
| JP2012124837A (ja) * | 2010-12-10 | 2012-06-28 | Sony Corp | 画像復号化装置および方法、画像符号化装置および方法、並びにプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025058743A (ja) | 2025-04-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12425651B2 (en) | Image coding apparatus, image coding method, and storage media | |
| JP7610690B2 (ja) | 画像復号装置及び方法及びプログラム | |
| EP4124039B1 (en) | Image encoding device, image encoding method and program, image decoding device, and image decoding method and program | |
| JP2023113858A (ja) | 画像復号装置、画像復号方法、及びプログラム | |
| JP7685102B2 (ja) | 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム | |
| WO2025069744A1 (ja) | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、コンピュータプログラム | |
| JP2020010320A (ja) | 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム | |
| WO2023181546A1 (ja) | 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法 | |
| WO2020183859A1 (ja) | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、及びプログラム | |
| JP2021150723A (ja) | 画像符号化装置、画像符号化方法、及びプログラム、画像復号装置、画像復号方法、及びプログラム |
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: 24871546 Country of ref document: EP Kind code of ref document: A1 |