Image encoding device, image encoding method, and program, image decoding device, image decoding method, and program

By adaptively correcting the quantization parameters in the image encoding device, the problem of unnecessary code amount increases when the quantization parameters are less than 4 in the HEVC and VVC encoding methods is solved, and a more efficient encoding process and image quality are achieved.

JP7665838B2Active Publication Date: 2025-04-21CANON KK
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024093996
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-06-10
Publication Date
2025-04-21
Estimated Expiration
2039-09-17

AI Technical Summary

Technical Problem

In the HEVC and VVC encoding methods, when the quantization parameter is less than 4, unnecessary code volume may be increased during the encoding process, and the image quality is poor during the encoding process without using orthogonal transformation.

Method used

By introducing a determination mechanism to determine whether the quantization parameters need to be adaptively corrected, and using a reference value as the quantization parameter if necessary, to reduce unnecessary code volume increase.

Benefits of technology

It effectively reduces the possibility of increasing code volume, improves encoding efficiency, and optimizes the encoding process without affecting image quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007665838000001
    Figure 0007665838000001
  • Figure 0007665838000002
    Figure 0007665838000002
  • Figure 0007665838000003
    Figure 0007665838000003
Patent Text Reader

Abstract

To adaptively correct a quantization parameter used for quantization processing to reduce the possibility of an unnecessary increase in the amount of codes.SOLUTION: An image coding device, when determining to perform predictive coding of blocks to be coded and when determining not to perform orthogonal transformation processing on coefficients of color components of the blocks to be coded, codes the blocks to be coded by using a second quantization parameter obtained by correcting a first quantization parameter, and when determining to perform palette coding of the blocks to be coded and when determining to perform escape coding of pixels in blocks in the blocks to be coded, codes the blocks to be coded by using the second quantization parameter. The image coding device performs predetermined determination based on the first quantization parameter and a predetermined value, and corrects the first quantization parameter according to a determination result of the predetermined determination, thereby deriving the second quantization parameter.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to image coding technology. [Background technology]

[0002] 2. Description of the Related Art High Efficiency Video Coding (HEVC) coding method (hereinafter referred to as HEVC) is known as a compression coding method for moving images.

[0003] Recently, activities have been started to internationally standardize a more efficient coding method as a successor to HEVC, and the Joint Video Experts Team (JVET) was established between ISO / IEC and ITU-T. JVET is currently working on the standardization of the Versatile Video Coding (VVC) coding method (hereinafter referred to as VVC), which is the successor to HEVC.

[0004] In these coding methods, a method called palette coding is being considered to improve the coding efficiency for artificially created images that are not natural images. This is a technology in which a representative color that represents an image is determined in advance, and input pixel values ​​are coded using an index that indicates this representative color. JP 2016-103804 (Patent Document 1) discloses a technology for correcting the quantization parameters used in this palette coding. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Patent Publication No. 2016-103804 Summary of the Invention [Problem to be solved by the invention]

[0006] Here, in HEVC and VVC, when the quantization parameter used in the quantization process is 4, the quantization step (scaling factor) is designed to be 1. That is, when the quantization parameter is 4, the value is designed not to change before and after quantization. In other words, when the quantization parameter is greater than 4, the quantization step is greater than 1, and the value after quantization is smaller than the original value. Conversely, when the quantization parameter is less than 4, the quantization step is a decimal value smaller than 1, and the value after quantization is greater than the original value, which has the effect of increasing the gradation. In the case of a coding process using a normal orthogonal transform, when the quantization parameter is less than 4, the gradation is increased, and therefore the image quality after compression is improved more than when the quantization parameter is 4. On the other hand, in the case of a coding process not using the orthogonal transform, there is a problem that the image quality after compression does not improve even if the gradation is increased, and the amount of code increases.

[0007] The present invention has been made to solve the above-mentioned problems, and aims to reduce the possibility of an unnecessary increase in the amount of code by adaptively correcting the quantization parameter. [Means for solving the problem]

[0008] In order to solve the above problems, an image coding apparatus according to the present invention has the following configuration. That is, an image coding device that generates a bit stream by coding an image having a plurality of components including at least a luminance component and a chrominance component has a determination means for determining whether a conversion process is to be applied to the chrominance component of a block to be coded, and a coding means for coding the chrominance component of the block to be coded using a first quantization parameter corresponding to the chrominance component of the block to be coded when the determination means determines that the conversion process is to be applied to the chrominance component of the block to be coded, wherein when the determination means determines that the conversion process is not to be applied to the chrominance component of the block to be coded and the first quantization parameter is smaller than a reference value, the coding means codes the chrominance component of the block to be coded using the reference value as a quantization parameter, the reference value is used in common for the plurality of components, the chrominance component is a cr component, and the coding means codes information for specifying the difference between a predetermined value that coincides with the value of a quantization parameter for setting a quantization step to 1 and the reference value, as information indicating the reference value, into the bit stream, and the value of the quantization parameter for setting the quantization step to 1 is 4.

[0009] Also, an image decoding device of the present invention has the following configuration: That is, the image decoding device decodes a bit stream generated by encoding an image having a plurality of components including a luminance component and a chrominance component, and includes: a derivation means for deriving a first quantization parameter corresponding to a chrominance component of a block to be decoded based on first information decoded from the bit stream, a determination means for determining whether a conversion process is to be applied to the chrominance component of the block to be decoded, and a decoding means for decoding the chrominance component of the block to be decoded using the first quantization parameter when the determination means determines that the conversion process is to be applied to the chrominance component of the block to be decoded, and the decoding means determines a reference value of the quantization parameter based on information indicating a reference value of the quantization parameter. and decodes from the bitstream second information for identifying a difference between a predetermined value that corresponds to a value of a quantization parameter for setting a quantization step to 1 and the reference value, and when the determination means determines that the conversion process will not be applied to the chrominance component of the block to be decoded, if the first quantization parameter is smaller than the reference value based on the second information, the decoding means decodes the chrominance component of the block to be decoded using the reference value as a quantization parameter, wherein the chrominance component is a cr component, the reference value is used in common to the multiple components, and the value of the quantization parameter for setting the quantization step to 1 is 4. Effect of the Invention

[0010] According to the present invention, the quantization parameter is adaptively corrected, thereby making it possible to reduce the possibility of an unnecessary increase in the amount of code. [Brief description of the drawings]

[0011] [Figure 1] FIG. 1 is a block diagram showing a configuration of an image encoding device according to a first embodiment. [Diagram 2] FIG. 11 is a block diagram showing a configuration of an image decoding device according to a second embodiment. [Diagram 3] 4 is a flowchart showing an image encoding process in the image encoding device according to the first embodiment. [Figure 4] 11 is a flowchart showing an image decoding process in the image decoding device according to the second embodiment. [Diagram 5] FIG. 2 is a block diagram showing an example of the hardware configuration of a computer applicable to the image encoding device and the image decoding device in each embodiment. [Figure 6] FIG. 2 is a diagram showing an example of a bitstream structure generated by embodiment 1 and decoded by embodiment 2. [Figure 7] FIG. 2 is a diagram showing an example of sub-block division used in each embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] An embodiment of the present invention will be described with reference to the accompanying drawings. Note that the configurations shown in the following embodiments are merely examples, and the present invention is not limited to the configurations described in the following embodiments. Note that names such as basic block and sub-block are names used for convenience in each embodiment, and other names may be used as appropriate as long as their meanings are not changed. For example, basic blocks and sub-blocks may be called basic units and sub-units, or simply blocks and units.

[0013] <Embodiment 1> Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0014] 1 is a block diagram showing an image encoding device according to the present embodiment, in which reference numeral 101 denotes a terminal to which image data is input.

[0015] A block division unit 102 divides an input image into a plurality of basic blocks and outputs an image in units of basic blocks to a subsequent stage. For example, a basic block may be a block of 128×128 pixels or a block of 32×32 pixels.

[0016] Reference numeral 103 denotes a quantization value correction information generating unit, which generates and outputs quantization value correction information, which is information regarding a correction process of a quantization parameter that specifies a quantization step. There are no particular limitations on the method of generating the quantization value correction information, but the quantization value correction information may be input by a user, may be calculated by the image encoding device from the characteristics of an input image, or may be specified in advance as an initial value. Note that the quantization parameter does not directly indicate the quantization step, but is designed so that, for example, when the quantization parameter is 4, the quantization step (scaling factor) is 1. The larger the value of the quantization parameter, the larger the quantization step.

[0017] 104 is a prediction unit, which determines a division method into sub-blocks for image data in units of basic blocks. Then, the basic blocks are divided into sub-blocks of the determined shape and size. Then, intra-prediction, which is intra-frame prediction, and inter-prediction, which is inter-frame prediction, are performed in units of sub-blocks to generate predicted image data. For example, the prediction unit 104 selects a prediction method to be performed on one sub-block from intra-prediction, inter-prediction, and predictive coding that combines intra-prediction and inter-prediction, performs the selected prediction, and generates predicted image data for the sub-block. The prediction unit 104 also functions as a determination means for determining what type of coding to perform based on a flag or the like.

[0018] Furthermore, the prediction unit 104 calculates and outputs a prediction error from the input image data and the predicted image data. For example, the prediction unit 104 calculates the difference between each pixel value of a subblock and each pixel value of the predicted image data generated by predicting the subblock, and calculates it as a prediction error.

[0019] Moreover, the prediction unit 104 outputs information necessary for prediction together with the prediction error. The information necessary for prediction is, for example, information indicating the division state of the subblock, a prediction mode indicating a prediction method for the subblock, information such as a motion vector, etc. Hereinafter, the information necessary for prediction is referred to as prediction information. Furthermore, when the number of types of colors (pixel values) used in the subblock is small, it can be determined that the use of palette coding using a palette can provide more efficient compression. This determination may be made by the image coding device or the user. When this determination is made, palette coding can also be selected as a method for generating predicted image data. The palette has one or more entries in which information indicating a color and an index for identifying the information indicating the color are associated with each other.

[0020] When palette coding is selected, a flag (hereinafter referred to as palette flag) indicating that palette coding is to be used is output as prediction information. In addition, an index indicating which color in the palette each pixel uses is also output as prediction information. Furthermore, information indicating a color that does not exist in the palette (has no corresponding entry) (hereinafter referred to as escape value) is also output as prediction information. In this way, in palette coding, it is possible to code a color that does not exist in the palette using information that directly indicates a value indicating the color as an escape value without using a palette. For example, the prediction unit 104 can code a specific pixel in a subblock that is coded using palette coding using an escape value. In other words, the prediction unit 104 can determine whether or not to use an escape value for each pixel. Coding using an escape value is also called escape coding.

[0021] Reference numeral 105 denotes a transform / inverse quantization unit that performs orthogonal transform (orthogonal transform processing) on ​​the prediction error in sub-block units to obtain transform coefficients representing each frequency component of the prediction error. The transform / inverse quantization unit 105 further performs quantization on the transform coefficients to obtain residual coefficients (quantized transform coefficients). When transform skip or palette coding is used, the orthogonal transform processing is not performed. Note that the function for performing the orthogonal transform and the function for performing the quantization may be configured separately.

[0022] Reference numeral 106 denotes an inverse quantization / inverse transform unit that inverse quantizes the residual coefficients output from the transform / quantization unit 105 to reproduce the transform coefficients, and further performs inverse orthogonal transform (inverse orthogonal transform processing) to reproduce the prediction error. When transform skip or palette coding is used, the inverse orthogonal transform processing is not performed. Note that such a process of reproducing (deriving) the orthogonal transform coefficients is referred to as inverse quantization. Note that the function of performing inverse quantization and the function of performing inverse orthogonal transform processing may be configured separately. Reference numeral 108 denotes a frame memory that stores the reproduced image data.

[0023] An image reproduction unit 107 generates predicted image data by appropriately referring to a frame memory 108 based on the prediction information output from the prediction unit 104, and generates and outputs reproduced image data from this predicted image data and the input prediction error.

[0024] An in-loop filter unit 109 performs in-loop filter processing such as a deblocking filter or a sample adaptive offset on the reconstructed image, and outputs the filtered image.

[0025] A coding unit 110 codes the residual coefficients output from the transform / quantization unit 105 and the prediction information output from the prediction unit 104 to generate and output coded data.

[0026] Reference numeral 111 denotes an integrated encoding unit. The integrated encoding unit encodes the output from the quantization value correction information generating unit 103 to generate header code data. The integrated encoding unit further combines the encoded data output from the encoding unit 110 to generate and output a bit stream. Note that information indicating the quantization parameter is also encoded into the bit stream. For example, the information indicating the quantization parameter is information indicating a difference value between the quantization parameter to be encoded and another quantization parameter (for example, the quantization parameter of a previous subblock).

[0027] Reference numeral 112 denotes a terminal, which outputs the bit stream generated by the integrated encoding unit 111 to the outside.

[0028] The image encoding operation in the image encoding device will be described below. In this embodiment, moving image data is input in units of frames (pictures), but still image data for one frame may be input.

[0029] Prior to encoding an image, the quantization value correction information generating unit 103 generates quantization value correction information used to correct a quantization parameter in a later stage when transform skip or palette coding is used. The quantization value correction information generating unit 103 may generate quantization value correction information when at least either transform skip or palette coding is used. However, in either case, generating quantization correction information can further reduce the amount of code. In this embodiment, the quantization value correction information includes, for example, information indicating QPmin indicating the minimum quantization value (minimum QP value) when correcting the quantization parameter. For example, when the quantization parameter is smaller than this QPmin, it is corrected to QPmin. A detailed explanation of how this quantization value correction information is used will be given later. There is no particular limitation on the method of generating the quantization value correction information, but the user may input (specify) the quantization value correction information, the image coding device may calculate the quantization value correction information from the characteristics of the input image, or a pre-specified initial value may be used. As the initial value, a value indicating that the quantization step is 1 (for example, 4) may be used. When transform skip or palette coding is used, even if the quantization step is less than 1, the image quality is the same as when the quantization step is 1, so setting QPmin to 4 is suitable for the use of transform skip or palette coding. When QPmin is set to the initial value, the quantization value correction information can be omitted. Also, as described later, when QPmin is set to a value other than the initial value, the difference value from the initial value may be used as the quantization value correction information.

[0030] The quantization value correction information may be determined based on implementation limitations when determining whether or not to perform palette coding in the prediction unit 104. The quantization value correction information may be determined based on implementation limitations when determining whether or not to perform orthogonal transformation in the transform / quantization unit 105.

[0031] The generated quantization value correction information is input to the transform / quantization unit 105 , the inverse quantization / inverse transform unit 106 , and the integrated encoding unit 111 .

[0032] One frame of image data input from a terminal 101 is input to a block division unit 102 .

[0033] The block division unit 102 divides the input image data into a plurality of basic blocks, and outputs an image in units of basic blocks to a prediction unit 104 .

[0034] The prediction unit 104 executes a prediction process on the image data input from the block division unit 102. Specifically, first, sub-block division for dividing a basic block into smaller sub-blocks is determined.

[0035] FIG. 7 shows an example of a subblock division method. A basic block is shown in a bold frame 700, and for ease of explanation, it is assumed to be configured as 32×32 pixels, and each rectangle in the bold frame represents a subblock. FIG. 7(b) shows an example of a conventional square subblock division, in which a basic block of 32×32 pixels is divided into subblocks of 16×16 pixels. Meanwhile, FIG. 7(c) to (f) show an example of a rectangular subblock division, in which the basic block is divided into rectangular subblocks of 16×32 pixels vertically in FIG. 7(c) and 32×16 pixels horizontally in FIG. 7(d). Also, in FIG. 7(e) and (f), 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 coding processing.

[0036] In this embodiment, only the basic block of 32×32 pixels is used without division as shown in FIG. 7(a), but the subblock division method is not limited to this. Quad-tree division as shown in FIG. 7(b), ternary tree division as shown in FIG. 7(e) and (f), or binary tree division as shown in FIG. 7(c) and FIG. 7(d) may also be used.

[0037] Then, the prediction unit 104 determines a prediction mode for each subblock to be processed (block to be coded). Specifically, the prediction unit 104 determines, for each subblock, intra prediction using pixels already coded in the same frame as the frame including the subblock to be processed, or inter prediction using pixels already coded in a different frame, as the prediction mode to be used.

[0038] Then, the prediction unit 104 generates predicted image data from the determined prediction mode and the encoded pixels, and further generates a prediction error from the input image data and the predicted image data, and outputs it to the transformation and quantization unit 105.

[0039] Furthermore, the prediction unit 104 outputs information such as sub-block division and prediction mode as prediction information to the encoding unit 110 and the image reproduction unit 107. However, for each sub-block to be processed, palette coding can be selected instead of a prediction mode such as intra prediction or inter prediction. In this case, a palette flag indicating whether palette coding is to be used is output as prediction information. Then, when palette coding is selected for the sub-block (for example, the palette flag is 1), an index and an escape value indicating color information included in the palette corresponding to each pixel are also output as prediction information.

[0040] On the other hand, if palette coding is not selected for the sub-block, i.e., if a prediction mode such as intra prediction or inter prediction is selected (for example, the value of the palette flag is 0), other prediction information and prediction error are output following the palette flag.

[0041] The transform / quantization unit 105 performs orthogonal transform processing and quantization processing on the prediction error output from the prediction unit 104. Specifically, first, it is determined whether or not to perform orthogonal transform processing on the prediction error of the subblock using a prediction mode other than palette coding, such as intra prediction or inter prediction. Here, consider image coding for natural images such as landscapes and people captured by a camera. Generally, in such image coding, it is possible to reduce the amount of data without making the deterioration of image quality noticeable by performing orthogonal transform on the prediction error, decomposing it into frequency components, and performing quantization processing according to the human visual characteristics. On the other hand, in an artificial image (for example, computer graphics) in which the boundaries of objects in the image are prominent, the high frequency components are large. Therefore, there are cases in which the amount of data increases when the orthogonal transform is used. For this reason, the transform / quantization unit 105 determines whether or not to perform orthogonal transform on each color component (Y, Cb, Cr) of the subblock, and generates the determination result as transform skip information. In other words, the transform skip information can be generated for each color component (Y, Cb, Cr). In other words, it may be determined whether or not to perform a transform skip for each color component. For example, two pieces of transform skip information may be generated: one for the luminance component (Y) and one for the color difference components (Cb and Cr).

[0042] When it is determined that the orthogonal transform process is to be performed on the color component (Y, Cb, or Cr) of the subblock, the orthogonal transform process is performed on the prediction error corresponding to the color component to generate an orthogonal transform coefficient. Then, a quantization process using a quantization parameter is performed to generate a residual coefficient. There is no particular limitation on the method of determining the value of the quantization parameter used here. The quantization parameter may be input by a user or may be calculated by the image encoding device from the characteristics of the input image (such as the complexity of the image). In addition, a value previously specified as an initial value may be used. In this embodiment, the quantization parameter QP is calculated by a quantization parameter calculation unit (not shown) and input to the transform / quantization unit 105. The orthogonal transform coefficient of the luminance component (Y) of the subblock is quantized using this quantization parameter QP to generate a residual coefficient. On the other hand, the orthogonal transform coefficient of the Cb component of the subblock is quantized using a quantization parameter QPcb obtained by adjusting the quantization parameter QP for the Cb component to generate a residual coefficient. Similarly, the orthogonal transform coefficients of the Cr component of the sub-block are quantized using the quantization parameter QPcr adjusted for the Cr component to generate residual coefficients. There is no particular limitation on the method of calculating QPcb and QPcr from this QP, but a table for calculation may be prepared in advance. In addition, the table used for calculating QPcb and QPcr may also be separately coded so that the same QPcb and QPcr can be calculated on the decoding side. When the table used for calculation is separately coded, it is coded in the header part of the bitstream sequence or picture in the subsequent integrated coding unit 111.

[0043] On the other hand, when it is determined that the orthogonal transform process is not performed on the color component of the sub-block, that is, when it is determined that a transform skip is performed, the prediction error is quantized using a corrected quantization parameter obtained by correcting the quantization parameter QP, and a residual coefficient is generated. Specifically, the prediction error of the luminance component (Y) of the sub-block is quantized using QP' obtained by correcting the above-mentioned QP, and a residual coefficient is generated. On the other hand, the prediction error of the Cb component of the sub-block is quantized using QPcb' obtained by correcting the above-mentioned QPcb, and a residual coefficient is generated. Similarly, the prediction error of the Cr component of the sub-block is quantized using QPcr' obtained by correcting the above-mentioned QPcr, and a residual coefficient is generated.

[0044] Here, a specific method for calculating the corrected quantization parameters (QP', QPcb', QPcr') from the quantization parameters (QP, QPcb, QPcr) will be described. The following formulas (1) to (3) showing a predetermined determination are formulas for calculating the corrected quantization parameters (QP', QPcb', QPcr') from the quantization parameters (QP, QPcb, QPcr). QPmin is the minimum QP value (minimum value) used in the correction process input from the quantization value correction information generation unit 103. QP' = Max(QPmin,QP) …(1) QPcb' = Max(QPmin,QPcb) … (2) QPcr' = Max(QPmin, QPcr) … (3) (where Max(A,B) represents the larger of A and B.)

[0045] For example, in the above formulas (1) to (3), if the minimum QP value QPmin is 4, the corrected quantization parameters (QP', QPcb', QPcr') will not fall below 4. That is, the quantization step will not fall below 1, and it is possible to prevent an unnecessary increase in the amount of code when transform skip is used. Also, although a different minimum QP value may be set for each color component Y, Cb, and Cr, in this embodiment, the same minimum QP value QPmin is applied to all color components.

[0046] The residual coefficients and transform skip information generated in this manner are input to the inverse quantization and inverse transform unit 106 and the encoding unit 110.

[0047] Next, the process when the subblock is palette coded will be described below. In palette coding, since no prediction error occurs, no orthogonal transform process is performed. Furthermore, no quantization process is performed on pixels to which an index indicating a color included in the palette is set.

[0048] On the other hand, for pixels to which an escape value is set in order to code a color not present in the palette, quantization processing is performed on the escape value itself in order to limit an increase in the amount of code. In the quantization processing on the escape value, corrected quantization parameters (QP', QPcb', QPcr') are used instead of the above-mentioned quantization parameters (QP, QPcb, QPcr). This makes it possible to prevent an unnecessary increase in the amount of code even when palette coding is used, just like when transform skip is used. The quantized escape value is input to the inverse quantization and inverse transform unit 106 and the coding unit 110, similar to the residual coefficients.

[0049] Next, the inverse quantization and inverse transform unit 106 performs inverse quantization processing and inverse orthogonal transform processing on the input residual coefficients.

[0050] Specifically, first, an inverse quantization process is performed on residual coefficients of sub-blocks using a prediction mode other than palette coding, such as intra prediction or inter prediction, to regenerate orthogonal transform coefficients.

[0051] Whether or not orthogonal transform has been applied to each color component of each subblock is determined based on the transform skip flag input from the transform and quantization unit 105. When the transform skip flag is 0, it indicates that transform skip is not used. The quantization parameters used at this time are the same as those used by the transform and quantization unit 105, and the above-mentioned quantization parameters (QP, QPcb, QPcr) are used for each color component for the residual coefficients generated by applying the orthogonal transform process.

[0052] On the other hand, when the residual coefficients are generated using a transform skip (for example, the transform skip flag is 1), the above-described corrected quantization parameters (QP', QPcb', QPcr') are used for each color component.

[0053] That is, the residual coefficients generated by orthogonal transform processing are inverse quantized using the quantization parameters (QP, QPcb, QPcr), and further inverse orthogonal transform is performed to reconstruct the prediction error. On the other hand, the residual coefficients generated by skipping the transform are inverse quantized using the corrected quantization parameters (QP', QPcb', QPcr') to reconstruct the prediction error. The prediction error reconstructed in this way is output to the image reconstruction unit 107.

[0054] Furthermore, if the sub-block is palette coded, the quantized escape value is inversely quantized using the corrected quantization parameters (QP', QPcb', QPcr') to reconstruct the escape value. The reconstructed escape value is output to the image reconstruction unit 107.

[0055] In the image reproduction unit 107, when the palette flag input from the prediction unit 104 indicates that the sub-block is not palette coded, the image reproduction unit 107 appropriately refers to the frame memory 108 based on other prediction information to reproduce a predicted image. Then, image data is reproduced from the reproduced predicted image and the reproduced prediction error input from the inverse quantization and inverse transform unit 106, and input to and stored in the frame memory 108. On the other hand, when the sub-block is indicated to be palette coded, image data is reproduced using an index or escape value indicating which color in the palette each pixel uses, input as prediction information, and the like, and the image data is input to and stored in the frame memory 108.

[0056] The in-loop filter unit 109 reads the reconstructed image from the frame memory 108 and performs in-loop filter processing such as a deblocking filter. The in-loop filter processing is performed based on the prediction mode of the prediction unit 104, the value of the quantization parameter used in the transform / quantization unit 105, whether or not a non-zero value (hereinafter, referred to as a significant coefficient) exists in the processing sub-block after quantization, and sub-block division information. The filtered image is then input again to the frame memory 108 and re-stored.

[0057] The coding unit 110 entropy codes the residual coefficients generated by the transform / quantization unit 105 and the prediction information input from the prediction unit 104 for each subblock, and generates coded data. Specifically, first, a palette flag indicating whether the subblock is palette coded or not is coded. If the subblock is not palette coded, 0 is entropy coded as the palette flag input as the prediction information, and then other prediction information and residual coefficients are entropy coded to generate coded data. On the other hand, if the subblock is palette coded, 1 is entropy coded as the palette flag, and then an index or escape value indicating which color in the palette each pixel uses is coded to generate coded data. There is no particular specification for the entropy coding method, but Golomb coding, arithmetic coding, Huffman coding, and the like can be used. The generated coded data is output to the integrated coding unit 111.

[0058] The integrated coding unit 111 codes the quantization value correction information input from the quantization value correction information generating unit 103 to generate a quantization value correction information code. The coding method is not particularly specified, but Golomb coding, arithmetic coding, Huffman coding, and the like can be used. In this embodiment, as an example, 4 indicating the quantization step 1 is set as a reference (initial value), and the difference value between the reference 4 and the minimum QP value QPmin, which is the quantization value correction information, is Golomb coded. Since QPmin is set to 4 in this embodiment, the difference value from the reference 4, 0, is Golomb coded to obtain a 1-bit code "0", which is the quantization value correction information code. This makes it possible to minimize the amount of code for the quantization value correction information. Furthermore, when coding a table for calculating QPcb and QPcr from the above-mentioned quantization parameter QP, the table is also coded here. In addition, these codes and the code data input from the coding unit 110 are multiplexed to form a bit stream. Finally, the bit stream is output to the outside from a terminal 112.

[0059] Fig. 6(a) shows an example of a bitstream including coded quantization value correction information. The quantization control size information is included in the header of a sequence, a picture, or the like as a quantization control size information code. In this embodiment, the quantization control size information is included in the header portion of the sequence as shown in Fig. 6(b). However, the position where it is coded is not limited to this, and it may be included in the header portion of a picture as shown in Fig. 6(a).

[0060] FIG. 3 is a flowchart showing the encoding process in the image encoding device according to the first embodiment.

[0061] First, in step S301, the block division unit 102 divides an input image in units of frames into units of basic blocks.

[0062] In step S302, the quantization value correction information generating unit 103 determines the quantization value correction information, which is information regarding the correction process of the quantization parameter. The quantization value correction information is encoded by the integration encoding unit 111.

[0063] In step S303, the prediction unit 104 performs a prediction process on the basic block-based image data generated in step S301, and generates prediction information such as subblock division and prediction mode, and predicted image data. Furthermore, a prediction error is calculated from the input image data and the predicted image data. However, if the number of colors (pixel values) used in the subblock is small and it is determined that palette coding can be used to achieve more efficient compression, palette coding can also be selected. The prediction unit 104 also generates a palette flag indicating whether the subblock is palette coded or not.

[0064] In step S304, if a prediction mode other than palette coding is used for the sub-block, the transform / quantization unit 105 first determines whether or not to perform an orthogonal transform process on each color component (Y, Cb, Cr) of the prediction error calculated in step S303. Then, it generates transform skip information as a result of the determination. If it is determined that an orthogonal transform process is to be performed on the color component, it performs an orthogonal transform on the prediction error corresponding to the color component to generate an orthogonal transform coefficient. Then, it performs quantization using quantization parameters (QP, QPcb, QPcr) to generate a residual coefficient. On the other hand, if it is determined that the orthogonal transform process is to be skipped for the color component, it performs quantization on the prediction error corresponding to the color component using corrected quantization parameters (QP', QPcb', QPcr') to generate a residual coefficient. Also, if the sub-block is palette coded, the transform / quantization unit 105 performs quantization on the escape value using the corrected quantization parameters (QP', QPcb', QPcr') to generate a quantized escape value.

[0065] In step S305, the inverse quantization and inverse transform unit 106 performs inverse quantization and inverse orthogonal transform on the residual coefficients generated in step S304. Specifically, when a prediction mode other than palette coding is used, the inverse quantization and inverse transform unit 106 first determines whether or not orthogonal transform has been performed on each color component of each subblock, based on the transform skip information generated in step S304. Then, based on the determination result, the inverse quantization unit 106 performs inverse quantization on the residual coefficients.

[0066] The quantization parameters used at this time are the same as those in step S304, and the above-mentioned quantization parameters (QP, QPcb, QPcr) are used for each color component for the residual coefficients generated by performing the orthogonal transform process.

[0067] On the other hand, for residual coefficients generated by transform skipping, the above-mentioned corrected quantization parameters (QP', QPcb', QPcr') are used for each color component. That is, for residual coefficients generated by orthogonal transform processing, inverse quantization is performed using the quantization parameters (QP, QPcb, QPcr), and further inverse orthogonal transform is performed to regenerate prediction errors. On the other hand, for residual coefficients generated by transform skipping, inverse quantization is performed using the corrected quantization parameters (QP', QPcb', QPcr') to regenerate prediction errors.

[0068] Furthermore, if the sub-block is palette coded, the escape value quantized in step S304 is inversely quantized using the corrected quantization parameters (QP', QPcb', QPcr') to reproduce the escape value.

[0069] In step S306, if the palette flag generated in step S303 indicates that the sub-block is not palette coded, the image reconstructor 107 reconstructs a predicted image based on the prediction information generated in step S303. Image data is then reconstructed from the reconstructed predicted image and the prediction error generated in step S305. On the other hand, if the palette flag indicates that the sub-block is palette coded, the image reconstructor 107 reconstructs image data using an index, an escape value, or the like that indicates which color in the palette each pixel uses.

[0070] In step S307, the encoding unit 110 encodes the prediction information generated in step S303 and the residual coefficients generated in step S304 to generate coded data. Specifically, first, a palette flag indicating whether the sub-block is palette coded or not is encoded. If the sub-block is not palette coded, 0 is entropy coded as the palette flag input as the prediction information, and then the other prediction information and residual coefficients are entropy coded to generate coded data.

[0071] On the other hand, if the subblock is palette coded, the palette flag is entropy coded to 1, and then the index and escape value indicating which color in the palette each pixel uses are coded to generate coded data. A bitstream is then generated that includes other coded data.

[0072] In step S308, the image encoding device determines whether or not encoding of all basic blocks in the frame has been completed. If encoding has been completed, the image encoding device proceeds to step S309; ​​if not, the image encoding device returns to step S303 for the next basic block.

[0073] In step S309, the in-loop filter unit 109 performs in-loop filter processing on the image data reproduced in step S306 to generate a filtered image, and then the process ends.

[0074] With the above configuration and operation, it is possible to prevent an unnecessary increase in the amount of code by generating quantization value correction information in step S302 and using a quantization parameter corrected based on the quantization value correction information in steps S304 and S305. As a result, it is possible to reduce the amount of data in the entire bit stream generated and improve the coding efficiency.

[0075] In this embodiment, the quantization parameters corresponding to each color component such as Y, Cb, and Cr are corrected, but the present invention is not limited to this. For example, a different quantization parameter QPcbcr is used for chrominance residual coefficient common coding in which residual coefficients of Cb and Cr are collectively coded as considered in VVC, and the present invention may be applied to this. QPcbcr'=Max(QPmin,QPcbcr) …(4)

[0076] That is, as shown in the above formula (4), the prediction error that is transformed and skipped and chrominance residual coefficients are jointly coded may be quantized using the corrected quantization parameter QPcbcr'. This makes it possible to appropriately correct the quantization parameter even for the prediction error that is transformed and skipped and chrominance residual coefficients are jointly coded, and prevents an unnecessary increase in the amount of code. In addition, since the quantization step is not unnecessarily small, the processing load can be reduced.

[0077] In addition, in this embodiment, the quantization value is uniformly corrected based on a single quantization value correction information, but it may be configured to use separate quantization value correction information for each color component or for the transform skip and palette coding. Specifically, instead of QPmin, QPminY for luminance, QPmincb for Cb, and QPmincr for Cr may be defined separately, and individual quantization value correction may be performed for each color component. This is particularly when the bit depth differs depending on the color component, and the optimal quantization parameter correction can be performed according to the bit depth. Similarly, instead of QPmin, QPminTS for transform skip and QPminPLT for palette coding may be defined separately, and different quantization value corrections may be performed according to each case. This is particularly when the bit depth of the input pixel value differs from the bit depth used in palette coding, and the optimal quantization parameter correction can be performed according to each case.

[0078] In addition, the quantization parameter may be corrected when either transform skip or palette coding is used. In this case, the possibility of an unnecessary increase in the amount of code can be reduced. However, in either case, correcting the quantization parameter can further reduce the possibility of an unnecessary increase in the amount of code.

[0079] <Embodiment 2> 2 is a block diagram showing the configuration of an image decoding device according to embodiment 2 of the present invention. In this embodiment, the decoding of encoded data generated in embodiment 1 will be described as an example. The image decoding device basically performs the reverse operation of the image encoding device in embodiment 1.

[0080] Reference numeral 201 denotes a terminal for inputting an encoded bit stream.

[0081] 202 is a separate decoding unit, which separates information related to the decoding process and coded data related to coefficients from the bit stream and decodes them. The separate decoding unit 202 also decodes coded data present in the header part of the bit stream. In this embodiment, the separate decoding unit 202 reproduces (decodes) quantization value correction information and outputs it to the subsequent stage. The separate decoding unit 202 performs the reverse operation of the integrated coding unit 111 in FIG. 1.

[0082] Reference numeral 203 denotes a decoding unit, which decodes the coded data output from the separate decoding unit 202 and reproduces residual coefficients and prediction information.

[0083] 204 is an inverse quantization and inverse transform unit, which, like 106 in FIG. 1, receives residual coefficients in sub-block units, performs inverse quantization to obtain transform coefficients, and then performs inverse orthogonal transform to reconstruct prediction errors. However, when transform skip or palette coding is used, inverse orthogonal transform processing is not performed. Also, the function of performing inverse quantization and the function of performing inverse orthogonal transform may be configured separately. The inverse quantization and inverse transform unit 204 also functions as a determination means for determining what type of coding to perform based on a flag or the like.

[0084] The information indicating the quantization parameter is also decoded from the bit stream by the decoding unit 203. For example, the information indicating the quantization parameter is information indicating a difference value between the target quantization parameter and another quantization parameter (for example, the quantization parameter of the previous subblock). The other quantization parameter may be information indicating a difference value between the target quantization parameter and an average value of a plurality of quantization parameters of a plurality of other subblocks. The inverse quantization and inverse transform unit 204 derives the target quantization parameter, for example, by adding this difference value to the other quantization parameter. For the first quantization parameter, the quantization parameter may be derived by adding the difference value to an initial value that is separately decoded. The quantization parameter derived in this way is corrected to derive the above-mentioned corrected quantization parameter.

[0085] Reference numeral 206 denotes a frame memory, which stores image data of reproduced pictures.

[0086] An image reproduction unit 205 generates predicted image data by appropriately referring to a frame memory 206 based on input prediction information. As a method for generating the predicted image data here, a prediction method such as intra prediction or inter prediction is used, as in the prediction unit 104 of the first embodiment. Also, a prediction method combining intra prediction and inter prediction may be used as described above. Also, as in the first embodiment, prediction processing is performed on a sub-block basis. Then, reproduced image data is generated from this predicted image data and the prediction error reproduced by the inverse quantization and inverse transform unit 204, and output.

[0087] An in-loop filter unit 207 performs in-loop filtering such as a deblocking filter on a reconstructed image, as in the in-loop filter unit 109 in Fig. 1, and outputs a filtered image.

[0088] A terminal 208 outputs the reproduced image data to an external device, such as an external display device.

[0089] The image decoding operation in the image decoding device will be described below. In this embodiment, the bit stream generated in the first embodiment is decoded.

[0090] In FIG. 2, a bit stream input from a terminal 201 is input to a separation decoding unit 202. The decoding unit 202 separates information related to the decoding process and coded data related to coefficients from the bit stream and decodes them. The separation decoding unit 202 also decodes the coded data present in the header of the bit stream. Specifically, the quantization value correction information is reproduced (decoded). In this embodiment, the quantization value correction information code is first extracted from the sequence header of the bit stream shown in FIG. 6(b) and decoded. Specifically, the 1-bit code "0" that is Golomb coded in the first embodiment is Golomb decoded to obtain 0, and the reference 4 is added to 0 to obtain 4, which is set as the quantization value correction information QPmin. The quantization value correction information thus obtained is output to an inverse quantization and inverse transform unit 204. Next, the coded data of the basic block unit of the picture data is reproduced, and this is also output to the decoding unit 203.

[0091] The decoding unit 203 decodes the coded data to regenerate residual coefficients, prediction information, and quantization parameters. The regenerated residual coefficients and quantization parameters are output to an inverse quantization and inverse transform unit 204, and the regenerated prediction information is output to an image reproduction unit 205. The regenerated prediction information also includes information on sub-block division within a basic block, a palette flag, transform skip information, and the like.

[0092] The inverse quantization and inverse transform unit 204 performs inverse quantization and inverse orthogonal transform on the input residual coefficients. Specifically, first, based on the palette flag input from the decoding unit 203, it is determined whether the sub-block to be decoded is palette coded.

[0093] If the subblock is not palette coded, the residual coefficients of the subblock are inverse quantized to reproduce the orthogonal transform coefficients. At this time, the quantization parameters used in the inverse quantization vary depending on whether the residual coefficients corresponding to each color component have been orthogonally transformed, and whether orthogonal transform has been performed is determined based on the transform skip information input from the decoding unit 203. The quantization parameters used in the inverse quantization are the same as those used by the inverse quantization and inverse transform unit 106 in the first embodiment, and the above-mentioned quantization parameters (QP, QPcb, QPcr) are used for each color component for the residual coefficients generated by orthogonal transform.

[0094] On the other hand, for the residual coefficients generated by the transform skip, the above-mentioned corrected quantization parameters (QP', QPcb', QPcr') are used for each color component. That is, for the residual coefficients generated by the orthogonal transform process, the quantization parameters (QP, QPcb, QPcr) are used to inversely quantize them, and then the residual coefficients are subjected to an inverse orthogonal transform to regenerate the prediction error. The prediction information thus regenerated is output to the image regeneration unit 205.

[0095] Furthermore, if the sub-block to be decoded is palette coded, the quantized escape value input from the decoding unit 203 is inversely quantized using the corrected quantization parameters (QP', QPcb', QPcr') to regenerate the escape value. The regenerated escape value is output to the image regeneration unit 205. Note that values ​​in the sub-block regenerated using a value other than the escape value (color values ​​included in the palette indicated by the index) are also output to the image regeneration unit 205 together with the escape value. A predicted image is formed by the values ​​output to the image regeneration unit 205.

[0096] When the palette flag input from the decoding unit 203 indicates that the sub-block is not palette coded, the image reconstructing unit 205 appropriately refers to the frame memory 206 based on other prediction information to reconstruct a predicted image. Image data is reconstructed from this predicted image and the prediction error input from the inverse quantization and inverse transform unit 204, and input to and stored in the frame memory 206. Specifically, the image reconstructing unit 205 reconstructs image data by adding the predicted image and the prediction error.

[0097] On the other hand, if the palette flag indicates that the subblock is palette coded, the image data is reconstructed using the index indicating which color in the palette each pixel uses, which is input as prediction information, and the reconstructed escape value, and the image data is then input and stored in the frame memory 206. The stored image data is used as a reference for prediction.

[0098] 1, the in-loop filter unit 207 reads out the reconstructed image from the frame memory 206 and performs in-loop filtering such as deblocking filtering and sample adaptive offset. The filtered image is then input back to the frame memory 206.

[0099] The reproduced image stored in the frame memory 206 is finally outputted from a terminal 208 to the outside.

[0100] FIG. 4 is a flowchart showing an image decoding process in the image decoding device according to the second embodiment.

[0101] First, in step S401, the demultiplexing / decoding unit 202 demultiplexes the bit stream into information related to the decoding process and coded data related to the coefficients, decodes the coded data of the header portion, and reproduces the quantization value correction information.

[0102] In step S402, the decoding unit 203 decodes the coded data separated in step S401, and reproduces the residual coefficients, prediction information, and quantization parameters. More specifically, first, a palette flag indicating whether or not the subblock to be decoded is palette coded is reproduced. If the reproduced palette flag indicates 0, that is, if the subblock is not palette coded, other prediction information, residual coefficients, and transform skip information are subsequently reproduced. On the other hand, if the reproduced palette flag indicates 1, that is, if the subblock is palette coded, an index indicating which color in the palette each pixel uses, a quantized escape value, and the like are reproduced.

[0103] In step S403, if the sub-block to be decoded is not palette coded, the inverse quantization and inverse transform unit 204 first determines whether or not each color component of the sub-block has been orthogonally transformed, based on the transform skip information reproduced in step S402, and then performs inverse quantization processing on the residual coefficients based on the determination result.

[0104] The quantization parameters used at this time are the same as those in step S305 in the first embodiment, and the above-mentioned quantization parameters (QP, QPcb, QPcr) are used for each color component for the residual coefficients generated by performing the orthogonal transform process.

[0105] On the other hand, for residual coefficients generated by transform skipping, the above-mentioned corrected quantization parameters (QP', QPcb', QPcr') are used for each color component. That is, for residual coefficients generated by orthogonal transform processing, inverse quantization is performed using the quantization parameters (QP, QPcb, QPcr), and further inverse orthogonal transform is performed to regenerate prediction errors. On the other hand, for residual coefficients generated by transform skipping, inverse quantization is performed using the corrected quantization parameters (QP', QPcb', QPcr') to regenerate prediction errors.

[0106] Furthermore, if the sub-block is palette coded, the quantized escape value reproduced in step S402 is inverse quantized using the corrected quantization parameters (QP', QPcb', QPcr') to reproduce the escape value.

[0107] In step S404, if the palette flag reconstructed in step S402 indicates that the sub-block is not palette coded, the image reconstruction unit 205 reconstructs a prediction image based on the prediction information generated in step S402, and further reconstructs image data from the reconstructed prediction image and the prediction error generated in step S403.

[0108] Furthermore, if the palette flag indicates that the subblock is palette coded, the image reconstructor 205 reconstructs the image data using an index or escape value indicating which color in the palette each pixel uses.

[0109] In step S405, the image decoding apparatus determines whether or not the decoding of all basic blocks in the frame has been completed. If the decoding has been completed, the image decoding apparatus proceeds to step S406, and if not, the image decoding apparatus returns to step S402 for the next basic block.

[0110] In step S406, the in-loop filter unit 207 performs in-loop filter processing on the image data reproduced in step S404 to generate a filtered image, and then the process ends.

[0111] With the above configuration and operation, by using the quantization parameter corrected based on the quantization value correction information generated in the first embodiment, it is possible to decode a bitstream in which an unnecessary increase in the amount of code is suppressed.

[0112] In this embodiment, as shown in Fig. 6(b), a bitstream in which the quantization control size information is included in the sequence header is decoded, but the coding position of the information is not limited to this. The information may be coded in the picture header of the image as shown in Fig. 6(a), or may be coded in another position.

[0113] In this embodiment, the quantization parameters corresponding to each color component such as Y, Cb, and Cr are corrected, but the present invention is not limited to this. The residual coefficients that have been transformed and skipped and commonly coded with the chrominance residual coefficients may be dequantized using the corrected quantization parameter QPcbcr' calculated by the above-mentioned formula (4). This makes it possible to perform appropriate correction of the quantization parameter even for the residual coefficients that have been transformed and skipped and commonly coded with the chrominance residual coefficients, and to decode a bitstream that prevents an unnecessary increase in the amount of code. In addition, the quantization step is not unnecessarily reduced, so the processing load can be reduced.

[0114] In addition, in this embodiment, the quantization value is uniformly corrected based on a single quantization value correction information, but it may be configured to use separate quantization value correction information for each color component or for the transform skip and palette coding. Specifically, instead of QPmin, QPminY for luminance, QPmincb for Cb, and QPmincr for Cr may be defined separately, and individual quantization value correction may be performed for each color component. This is particularly when the bit depth differs depending on the color component, and the optimal quantization parameter correction can be performed according to the bit depth. Similarly, instead of QPmin, QPminTS for transform skip and QPminPLT for palette coding may be defined separately, and different quantization value corrections may be performed according to each case. This is particularly when the bit depth of the output pixel value differs from the bit depth used in palette coding, and the optimal quantization parameter correction can be performed according to each case.

[0115] In addition, the quantization parameter may be corrected when either transform skip or palette coding is used. In this case, the possibility of an unnecessary increase in the amount of code can be reduced. However, in either case, correcting the quantization parameter can further reduce the possibility of an unnecessary increase in the amount of code.

[0116] <Embodiment 3> In the above embodiment, each processing unit shown in Fig. 1 and Fig. 2 is described as being configured by hardware. However, the processing performed by each processing unit shown in these figures may be configured by a computer program.

[0117] FIG. 5 is a block diagram showing an example of the hardware configuration of a computer applicable to the image encoding device and image decoding device according to the above embodiments.

[0118] The CPU 501 controls the entire computer using computer programs and data stored in the RAM 502 and ROM 503, and executes the processes described above as being performed by the image processing device according to each of the above embodiments. That is, the CPU 501 functions as each of the processing units shown in Figures 1 and 2. Note that various hardware processors other than the CPU can also be used.

[0119] The RAM 502 has an area for temporarily storing computer programs and data loaded from an external storage device 506, data acquired from the outside via an I / F (interface) 507, etc. Furthermore, the RAM 502 has a work area used when the CPU 501 executes various processes. That is, the RAM 502 can be allocated as a frame memory, for example, or can provide various other areas as appropriate.

[0120] The ROM 503 stores setting data for the computer, a boot program, etc. The operation unit 504 is composed of a keyboard, a mouse, etc., and can be operated by a user of the computer to input various instructions to the CPU 501. The display unit 505 displays the results of processing by the CPU 501. The output unit 505 is composed of, for example, a liquid crystal display.

[0121] The external storage device 506 is a large-capacity information storage device, such as a hard disk drive. The external storage device 506 stores an operating system (OS) and computer programs for causing the CPU 501 to realize the functions of the various units shown in Figures 1 and 2. Furthermore, the external storage device 506 may store various image data to be processed.

[0122] Computer programs and data stored in the external storage device 506 are loaded into the RAM 502 as appropriate under the control of the CPU 501, and become the subject of processing by the CPU 501. A network such as a LAN or the Internet, and other devices such as a projector or display device can be connected to the I / F 507, and the computer can obtain and transmit various information via this I / F 507. Reference numeral 508 denotes a bus that connects the above-mentioned components.

[0123] The operation of the above-mentioned configuration is controlled mainly by CPU 501 as explained in the above-mentioned flow chart.

[0124] (Other Examples) Each embodiment can also be achieved by supplying a storage medium on which a computer program code that realizes the above-mentioned functions is recorded to a system, and the system reads and executes the computer program code. In this case, the computer program code read from the storage medium itself realizes the functions of the above-mentioned embodiments, and the storage medium on which the computer program code is stored constitutes the present invention. Also included is a case in which an operating system (OS) running on a computer performs part or all of the actual processing based on the instructions of the program code, and the above-mentioned functions are realized by that processing.

[0125] Furthermore, the present invention may be realized in the following form: That is, the computer program code read from the storage medium is written into a memory provided in a function expansion card inserted into a computer or a function expansion unit connected to the computer. Then, based on the instructions of the computer program code, a CPU provided in the function expansion card or function expansion unit performs part or all of the actual processing to realize the above-mentioned functions.

[0126] When the present invention is applied to the above-mentioned storage medium, the storage medium stores computer program code corresponding to the flowcharts described above. [Explanation of symbols]

[0127] 101, 112, 201, 208 terminals 102 Block division section 103 Quantization value correction information generation unit 104 Prediction Department 105 Transformation and Quantization Section 106, 204 Inverse quantization and inverse transformation section 107, 205 Image playback unit 108, 206 Frame Memory 109, 207 In-loop filter section 110 Encoding section 111 Integrated coding unit 202 Separate Decoding Unit 203 Decoding section

Claims

1. An image coding apparatus for coding an image having a plurality of components including at least a luminance component and a color difference component to generate a bit stream, comprising: A determination means for determining whether or not a conversion process is to be performed on a chrominance component of a block to be coded; encoding means for encoding the chrominance component of the block to be encoded using a first quantization parameter corresponding to the chrominance component of the block to be encoded when the determining means determines that the conversion process is to be applied to the chrominance component of the block to be encoded; having when it is determined by the determination means that the conversion process is not performed on the chrominance component of the block to be coded, and when the first quantization parameter is smaller than a reference value, the coding means codes the chrominance component of the block to be coded using the reference value as a quantization parameter; the reference value is commonly used for the plurality of components, the color difference component is a cr component, the encoding means encodes, as the information indicating the reference value, information for specifying a difference between a predetermined value that coincides with a value of a quantization parameter for making a quantization step 1 and the reference value into the bit stream; The value of the quantization parameter for making the quantization step 1 is 4.

1. An image encoding device comprising:

2. An image decoding device that decodes a bit stream generated by encoding an image having a plurality of components including a luminance component and a color difference component, comprising: a derivation means for deriving a first quantization parameter corresponding to a chrominance component of a block to be decoded based on first information decoded from the bit stream; a determining means for determining whether a conversion process is to be performed on the chrominance components of the block to be decoded; a decoding means for decoding the chrominance component of the block to be decoded using the first quantization parameter when the determining means determines that the conversion process is to be performed on the chrominance component of the block to be decoded; having The decoding means decodes, from the bit stream, second information for specifying a difference between a predetermined value that coincides with a value of a quantization parameter for making a quantization step 1 and the reference value as information indicating a reference value of the quantization parameter; when it is determined by the determination means that the conversion process is not performed on the chrominance component of the block to be decoded and the first quantization parameter is smaller than the reference value based on the second information, the decoding means decodes the chrominance component of the block to be decoded using the reference value as a quantization parameter; the color difference component is a cr component, the reference value is commonly used for the plurality of components, The value of the quantization parameter for making the quantization step 1 is 4.

2. An image decoding device comprising:

3. 1. An image coding method for generating a bitstream by coding an image having a plurality of components including at least a luminance component and a color difference component, comprising: a determining step of determining whether or not a conversion process is to be performed on a chrominance component of a block to be coded; a first encoding step of encoding the chrominance component of the block to be encoded using a first quantization parameter corresponding to the chrominance component of the block to be encoded when it is determined that the conversion process is to be performed on the chrominance component of the block to be encoded; a second encoding step of encoding the chrominance component of the block to be encoded using the reference value as a quantization parameter when it is determined that the conversion process is not performed on the chrominance component of the block to be encoded and the first quantization parameter is smaller than a reference value; having the reference value is commonly used for the plurality of components, the color difference component is a cr component, a third encoding step of encoding, as information indicating the reference value, information for specifying a difference between a predetermined value that coincides with a value of a quantization parameter for making a quantization step 1 and the reference value into the bit stream; The value of the quantization parameter for making the quantization step 1 is 4.

13. An image coding method comprising:

4. 1. An image decoding method for decoding a bitstream generated by encoding an image having a plurality of components including a luminance component and a color difference component, comprising: a derivation step of deriving a first quantization parameter corresponding to a chrominance component of a block to be decoded based on first information decoded from the bitstream; a determining step of determining whether a conversion process is to be performed on the chrominance components of the block to be decoded; a first decoding step of decoding the chrominance component of the block to be decoded using the first quantization parameter when it is determined that the transformation process is performed on the chrominance component of the block to be decoded; a second decoding step of decoding, from the bit stream, second information for specifying a difference between a predetermined value that coincides with a value of a quantization parameter for making a quantization step 1 and the reference value as information indicating a reference value of the quantization parameter; a third decoding step of decoding the chrominance component of the block to be decoded using the reference value as a quantization parameter when the first quantization parameter is smaller than the reference value based on the second information in a case where it is determined that the conversion process is not performed on the chrominance component of the block to be decoded; having the color difference component is a cr component, the reference value is commonly used for the plurality of components, The value of the quantization parameter for making the quantization step 1 is 4.

2. An image decoding method comprising:

5. A program for causing a computer to function as each of the means of the image coding apparatus according to claim 1.

6. A program for causing a computer to function as each of the means of the image decoding apparatus according to claim 2.

Citation Information

Patent Citations

  • Image encoder, image encoding method and program, and image decoder, image decoding method and program

    JP2016103804A

  • Image processing device, image processing method, and program

    WO2019003676A1