WO2021106612A1 - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
WO2021106612A1
WO2021106612A1 PCT/JP2020/042376 JP2020042376W WO2021106612A1 WO 2021106612 A1 WO2021106612 A1 WO 2021106612A1 JP 2020042376 W JP2020042376 W JP 2020042376W WO 2021106612 A1 WO2021106612 A1 WO 2021106612A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
unit
coding
color
decoding
Prior art date
Application number
PCT/JP2020/042376
Other languages
English (en)
French (fr)
Inventor
秀友 平尾
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Publication of WO2021106612A1 publication Critical patent/WO2021106612A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Definitions

  • the present disclosure relates to an image processing device and a method, and more particularly to an image processing device and a method capable of suppressing a reduction in subjective image quality.
  • This disclosure is made in view of such a situation, and makes it possible to suppress the reduction of subjective image quality.
  • the image processing device of one aspect of the present technology has a low saturation determination unit that determines whether or not the image to be encoded has low saturation, and the low saturation determination unit that determines that the image has low saturation.
  • the control information generation unit that generates control information indicating whether to apply the mode of omitting the coding of the residuals of the color components of the image, and the control information generated by the control information generation unit. It is an image processing apparatus including a bit stream generator for generating a bit stream including.
  • the image processing method of one aspect of the present technology determines whether or not the image to be encoded has low saturation, and when the image is determined to have low saturation, the residual color component of the image is left.
  • This is an image processing method that generates control information indicating whether to apply a mode in which difference coding is omitted, and generates a bit stream including the generated control information.
  • the image processing apparatus of another aspect of the present technology determines whether to apply a mode in which decoding of the coded data of the residual of the color component of the image to be encoded is omitted based on the control information contained in the bit stream. It is an image processing apparatus including a mode determination unit for performing the mode determination and a decoding control unit for controlling the decoding of the coded data of the color component of the image when the mode determination unit determines that the mode is applied. ..
  • the image processing method of another aspect of the present technology determines whether to apply a mode in which decoding of the coded data of the residual of the color component of the image to be encoded is omitted based on the control information contained in the bit stream. Then, when it is determined that the mode is applied, it is an image processing method that controls so as to omit decoding of the coded data of the color component of the image.
  • control information indicating whether to apply the mode of omitting the coding of the component residuals is generated, and a bit stream containing the generated control information is generated.
  • a mode of omitting decoding of the coded data of the residual of the color component of the image to be encoded is applied based on the control information contained in the bit stream.
  • the decoding of the coded data of the color component of the image is controlled to be omitted.
  • Patent Document 1 (described above) Patent Document 2: (above)
  • Non-Patent Document 1 Benjamin Bross, Jianle Chen, Shan Liu, “Versatile Video Coding (Draft 6)", JVET-O2001-vE, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 15th Meeting: Gothenburg, SE, 3-12 July 2019
  • Non-Patent Document 2 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
  • Non-Patent Document 3 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
  • a "block” (not a block indicating a processing unit) used in the description as a partial area of an image (picture) or a processing unit indicates an arbitrary partial area in the picture unless otherwise specified. Its size, shape, characteristics, etc. are not limited.
  • the “block” includes TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), and SCU (Smallest Coding) described in Non-Patent Documents 1 to 3 described above.
  • Any subarea (Unit), CU (CodingUnit), LCU (LargestCodingUnit), CTB (CodingTreeBlock), CTU (CodingTreeUnit), conversion block, subblock, macroblock, tile, slice, etc. Processing unit) shall be included.
  • the block size may be specified using the identification information that identifies the size.
  • the block size may be specified by the ratio or difference with the size of the reference block (for example, LCU, SCU, etc.).
  • the designation of the block size also includes the designation of the range of the block size (for example, the designation of the range of the allowable block size, etc.).
  • coding includes not only the entire process of converting an image into a bitstream but also a part of the process. For example, it not only includes processing that includes prediction processing, orthogonal transformation, quantization, arithmetic coding, etc., but also includes processing that collectively refers to quantization and arithmetic coding, prediction processing, quantization, and arithmetic coding. Including processing, etc.
  • decoding includes not only the entire process of converting a bitstream into an image, but also some processes.
  • processing not only includes processing that includes inverse arithmetic decoding, inverse quantization, inverse orthogonal transformation, prediction processing, etc., but also processing that includes inverse arithmetic decoding and inverse quantization, inverse arithmetic decoding, inverse quantization, and prediction processing. Including processing that includes and.
  • the image input to the coding device is generally a color image having a luminance component and a color component.
  • a flag that specifies the color format of the image handled by the decoding device that is, the composition ratio of the luminance component and the color difference component of the image is set. It is a rule that the indicated flag is specified only once in the sequence.
  • the coding device must also generate a code that conforms to this specification.
  • the composition ratio of the luminance component and the color component is represented by, for example, the component ratio of the luminance (Y) and the color difference 2 component (Cb, Cr) (for example, 4: 4: 4, 4: 2: 2, 4). : 2: 0, 4: 0: 0 etc.).
  • 4: 0: 0 indicates that the image is a monochrome image that is monochromatic and has only a luminance component.
  • Other 4: 4: 4, 4: 2: 2 and 4: 2: 0 indicate that the image is a color image having a luminance component and a color component (for example, a color difference component).
  • the two components (Cb, Cr) that make up the color difference are unique to the color image and are processed independently of the luminance component (Y) in the coding and decoding of the input image.
  • the outline of the processing is common to the luminance component and the color component.
  • coded data is obtained by sequentially performing orthogonal transformation, quantization, and entropy coding for the difference image between the input image and the predicted image.
  • a decoded image is obtained by sequentially performing each process of entropy decoding, inverse quantization, and inverse orthogonal transformation on the coded data and adding it to the predicted image.
  • the predicted image is an image generated from a past image or a coded / decoded image of the current image by a method defined by a standard.
  • information loss occurs in the forward / reverse orthogonal transformation and the forward / reverse quantization, and the decoded image has an error from the input image (irreversible).
  • the code amount is typically controlled by a parameter called a quantization parameter or the like, and the above error may be called a quantization error.
  • the smaller the code amount the larger the quantization error.
  • Achromatic color is a gray scale in which the magnitude of the luminance component (Y) represents the shade of gray, and it becomes closer to white as the luminance value increases and closer to black as the luminance value decreases.
  • the coloring is easily recognized as color noise. Specifically, when the color difference component takes a value smaller than the median value, green coloring tends to appear, and when the color difference component takes a value larger than the median value, red coloring tends to appear. For example, when the pixel depth is 8 bits, in general, coloring can be identified when there is an error of 3 to 4 in the color difference component pixel value.
  • the generated quantization error exceeds the error value at which the above-mentioned coloring to achromatic color can be identified.
  • the quantization error it is not uncommon for the quantization error to exceed 10% of the pixel amplitude.
  • the high frequency component of the input image is reduced. Therefore, the detailed information in the coded block is lost, and a considerable part of the decoded image is often seen as a flat monochromatic block.
  • the portion of the decoded image after the image coding process is achromatic.
  • the image may have a sense of incongruity, with green-colored and red-colored blocks mixed in. Since such a low-saturation portion appears in a wide range and frequently in a natural image, it is often visually recognized as an adverse effect on the subjective image quality of the decoded image by image coding / decoding.
  • the input image is treated as a general color image in coding / decoding. I needed it. Therefore, the load of coding / decoding may increase unnecessarily.
  • the coding / decoding of the color component is performed by a method independent of the coding / decoding of the luminance component. That is, the coding / decoding mode of the color component can be set independently of the coding / decoding mode of the luminance component.
  • image coding it is determined whether or not the image to be encoded has low saturation, and when it is determined that the image has low saturation, the code of the residual of the color component of the image is determined. Generates control information indicating whether to apply the mode of omitting the conversion, and generates a bit stream containing the generated control information.
  • a low-saturation determination unit that determines whether or not the image to be encoded has low saturation, and the low-saturation determination unit make the image low-saturation.
  • a control information generation unit that generates control information indicating whether to apply a mode that omits coding of the residuals of the color components of the image, and a control information generation unit that is generated by the control information generation unit. It includes a bit stream generator that generates a bit stream including control information.
  • image decoding it is determined whether to apply a mode in which decoding of the coded data of the residuals of the color components of the image to be encoded is omitted based on the control information included in the bit stream.
  • the decoding of the coded data of the color component of the image is controlled to be omitted.
  • a mode is applied in which decoding of the coded data of the residual of the color component of the image to be coded is omitted based on the control information included in the bit stream. It is provided with a mode determination unit for determining whether or not to perform the mode, and a decoding control unit for controlling so as to omit decoding of the coded data of the color component of the image when the mode determination unit determines that the mode is applied.
  • First Embodiment> ⁇ Apply skip mode> For example, in the coding of an image, if the image is determined to be desaturated, the color components of the image are subjected to coefficient conversion, quantization, and reversible coding of the residuals of the color components of the image. The skip mode may be applied, control information indicating whether the skip mode is applied may be generated, and a bit stream including the control information may be generated.
  • an achromatic image may be generated as a locally decoded image of the color component of the image. That is, in encoding the image, the achromatic image may be used as the locally decoded image.
  • the filtering process for the locally decoded image of the color component of the image may be omitted. By doing so, it is possible to suppress the generation of color noise due to the filtering process, and it is possible to suppress the reduction of the subjective image quality of the decoded image. Moreover, since the filtering process is omitted, an increase in load can be suppressed.
  • ⁇ Low saturation judgment> it may be determined whether or not the image has low saturation for each block of the image.
  • the threshold value for the pixel value is used to determine whether or not each pixel value of the block to be processed has low saturation, the pixels judged to be low saturation are counted, and the threshold value for the count value is used. It may be determined whether or not the processing target block has low saturation.
  • the threshold value for the pixel value may be one according to the coding condition.
  • the threshold value for the count value may depend on the coding conditions. Note that this coding condition may include a bit rate. Further, this coding condition may include a quantization parameter. Of course, the coding conditions may include both the bit rate and the quantization parameters.
  • Image coding device The present technology described above can be applied to any device, device, system and the like.
  • the above-mentioned technique can be applied to an image coding device that encodes image data.
  • FIG. 1 is a block diagram showing an example of the configuration of an image coding device, which is an aspect of an image processing device to which the present technology is applied.
  • the image coding device 100 shown in FIG. 1 is a device that encodes image data of a moving image.
  • the image coding apparatus 100 implements the techniques described in Non-Patent Documents 1 to 3 and obtains moving image image data by a method conforming to the standard described in any of those documents. Encode.
  • FIG. 1 shows the main things such as the processing unit and the data flow, and not all of them are shown in FIG. That is, in the image coding apparatus 100, there may be a processing unit that is not shown as a block in FIG. 1, or there may be a processing or data flow that is not shown as an arrow or the like in FIG. This also applies to other figures for explaining the processing unit and the like in the image coding apparatus 100.
  • the image coding device 100 includes a control unit 101, a sorting buffer 111, a calculation unit 112, an orthogonal transform unit 113, a quantization unit 114, a coding unit 115, and a storage buffer 116. Further, the image coding device 100 includes an inverse quantization unit 117, an inverse orthogonal transform unit 118, a calculation unit 119, an in-loop filter unit 120, a frame memory 121, a prediction unit 122, and a rate control unit 123. Further, the image coding device 100 has a low saturation processing unit 131.
  • the control unit 101 divides the moving image data held by the sorting buffer 111 into blocks (CU, PU, conversion block, etc.) of the processing unit based on the block size of the external or predetermined processing unit. .. Further, the control unit 301 determines the coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) to be supplied to each block based on, for example, RDO (Rate-Distortion Optimization). To do.
  • RDO Rate-Distortion Optimization
  • control unit 101 determines the coding parameters as described above, the control unit 101 supplies them to each block. Specifically, it is as follows.
  • Header information Hinfo is supplied to each block.
  • the prediction mode information Pinfo is supplied to the coding unit 115 and the prediction unit 122.
  • the conversion information Tinfo is supplied to the coding unit 115, the orthogonal transform unit 113, the quantization unit 114, the inverse quantization unit 117, and the inverse orthogonal transform unit 118.
  • the filter information Finfo is supplied to the in-loop filter unit 120.
  • ⁇ Sort buffer> Each field (input image) of moving image data is input to the image coding device 100 in the reproduction order (display order).
  • the sorting buffer 111 acquires and holds (stores) each input image in its reproduction order (display order).
  • the sorting buffer 111 sorts the input images in the coding order (decoding order) or divides the input images into blocks of processing units based on the control of the control unit 101.
  • the sorting buffer 111 supplies each input image after processing to the low-saturation processing unit 131.
  • the calculation unit 112 subtracts the prediction image supplied from the prediction unit 122 from the image corresponding to the block of the processing unit supplied from the low saturation processing unit 131 to derive the prediction residual, and orthogonally converts it. It is supplied to the unit 113.
  • the orthogonal transform unit 113 inputs the predicted residual supplied from the calculation unit 112 and the conversion information Tinfo supplied from the control unit 101, and performs orthogonal transformation with respect to the predicted residual based on the conversion information Tinfo. And derive the conversion factor.
  • the orthogonal transform unit 113 supplies the obtained conversion coefficient to the quantization unit 114.
  • the quantization unit 114 takes the conversion coefficient supplied from the orthogonal transformation unit 113 and the conversion information Tinfo supplied from the control unit 101 as inputs, and scales (quantizes) the conversion coefficient based on the conversion information Tinfo. ..
  • the rate of this quantization is controlled by the rate control unit 123.
  • the quantization unit 114 supplies the conversion coefficient after quantization (also referred to as the quantization conversion coefficient level) obtained by such quantization to the coding unit 115 and the inverse quantization unit 117.
  • the coding unit 115 includes the quantization conversion coefficient level supplied from the quantization unit 114 and various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) supplied from the control unit 101. ), Information about the filter such as the filter coefficient supplied from the in-loop filter unit 120, and information about the optimum prediction mode supplied from the prediction unit 122 are input.
  • the coding unit 115 acquires control information (for example, flag information, etc.) indicating the coding mode of the color component supplied from the low saturation processing unit 131.
  • the coding unit 115 performs entropy coding (lossless coding) such as CABAC (Context-based Adaptive Binary Arithmetic Code) or CAVLC (Context-based Adaptive Variable Length Code) on the quantization conversion coefficient level. Generate a bit string (encoded data).
  • entropy coding lossless coding
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • CAVLC Context-based Adaptive Variable Length Code
  • the coding unit 115 derives the residual information Rinfo from the quantization conversion coefficient level, encodes the residual information Rinfo, and generates a bit string.
  • the coding unit 115 includes the information about the filter supplied from the in-loop filter unit 120 in the filter information Finfo, and includes the information about the optimum prediction mode supplied from the prediction unit 122 in the prediction mode information Pinfo. Then, the coding unit 115 encodes the various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) described above to generate a bit string.
  • the coding unit 115 encodes the control information supplied from the low saturation processing unit 131 to generate a bit string. The contents of this control information will be described later.
  • the coding unit 115 multiplexes the bit strings of the various information generated as described above to generate the coded data.
  • the coding unit 115 supplies the coded data to the storage buffer 116.
  • the storage buffer 116 temporarily holds the coded data obtained by the coding unit 115.
  • the storage buffer 116 outputs the held coded data as, for example, a bit stream or the like to the outside of the image coding device 100 at a predetermined timing.
  • this coded data is transmitted to the decoding side via an arbitrary recording medium, an arbitrary transmission medium, an arbitrary information processing device, or the like. That is, the storage buffer 116 is also a transmission unit that transmits encoded data (bit stream).
  • the dequantization unit 117 performs processing related to dequantization. For example, the inverse quantization unit 117 inputs the quantization conversion coefficient level supplied from the quantization unit 114 and the conversion information Tinfo supplied from the control unit 101, and the quantization conversion is based on the conversion information Tinfo. Scale (inverse quantize) the value of the coefficient level. This inverse quantization is an inverse process of quantization performed in the quantization unit 114. The inverse quantization unit 117 supplies the conversion coefficient obtained by such inverse quantization to the inverse orthogonal transform unit 118.
  • the inverse orthogonal transform unit 118 performs processing related to the inverse orthogonal transform. For example, the inverse orthogonal transform unit 118 takes the conversion coefficient supplied from the inverse quantization unit 117 and the conversion information Tinfo supplied from the control unit 101 as inputs, and based on the conversion information Tinfo, with respect to the conversion coefficient. Inverse orthogonal transformation is performed to derive the predicted residuals. This inverse orthogonal transform is an inverse process of the orthogonal transform performed by the orthogonal transform unit 113. The inverse orthogonal transform unit 118 supplies the predicted residual obtained by such an inverse orthogonal transform to the arithmetic unit 119. Since the inverse orthogonal transform unit 118 is the same as the inverse orthogonal transform unit 118 on the decoding side (described later), the description given on the decoding side (described later) can be applied to the inverse orthogonal transform unit 118.
  • the calculation unit 119 inputs the prediction residual supplied from the inverse orthogonal transform unit 118 and the prediction image supplied from the prediction unit 122.
  • the calculation unit 119 adds the predicted residual and the predicted image corresponding to the predicted residual to derive a locally decoded image.
  • the calculation unit 119 supplies the derived locally decoded image to the in-loop filter unit 120 and the frame memory 121.
  • the in-loop filter unit 120 performs processing related to the in-loop filter processing. For example, the in-loop filter unit 120 inputs the locally decoded image supplied from the calculation unit 119, the filter information Finfo supplied from the control unit 101, and the input image (original image) supplied from the sorting buffer 111. And.
  • the information input to the in-loop filter unit 120 is arbitrary, and information other than this information may be input. For example, even if the prediction mode, motion information, code amount target value, quantization parameter QP, picture type, block (CU, CTU, etc.) information and the like are input to the in-loop filter unit 120 as necessary. Good.
  • the in-loop filter unit 120 appropriately filters the locally decoded image based on the filter information Finfo.
  • the in-loop filter unit 120 also uses an input image (original image) and other input information for the filter processing, if necessary.
  • the in-loop filter unit 120 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF Adaptive Loop Filter
  • the filter processing performed by the in-loop filter unit 120 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 120 may apply a Wiener filter or the like.
  • the in-loop filter unit 120 supplies the filtered locally decoded image to the frame memory 121.
  • the in-loop filter unit 120 supplies information about the filter to the coding unit 115.
  • the frame memory 121 performs processing related to storage of data related to images. For example, the frame memory 121 receives the locally decoded image supplied from the calculation unit 119 and the filtered locally decoded image supplied from the in-loop filter unit 120 as inputs, and holds (stores) them. Further, the frame memory 121 reconstructs and holds the decoded image for each picture unit using the locally decoded image (stored in the buffer in the frame memory 121). The frame memory 121 supplies the decoded image (or a part thereof) to the prediction unit 122 in response to the request of the prediction unit 122.
  • the prediction unit 122 performs processing related to the generation of the prediction image.
  • the prediction unit 122 receives the prediction mode information Pinfo supplied from the control unit 101, the input image (original image) supplied from the sorting buffer 111, and the decoded image (or a part thereof) read from the frame memory 121. Input.
  • the prediction unit 122 uses the prediction mode information Pinfo and the input image (original image) to perform prediction processing such as inter-prediction and intra-prediction, makes a prediction by referring to the decoded image as a reference image, and based on the prediction result. Motion compensation processing is performed to generate a predicted image.
  • the prediction unit 122 supplies the generated prediction image to the calculation unit 112 and the calculation unit 119. Further, the prediction unit 122 supplies information regarding the prediction mode selected by the above processing, that is, the optimum prediction mode, to the coding unit 115 as needed.
  • the rate control unit 123 performs processing related to rate control. For example, the rate control unit 123 controls the rate of the quantization operation of the quantization unit 114 based on the code amount of the coded data stored in the storage buffer 116 so that overflow or underflow does not occur.
  • the low-saturation processing unit 131 performs processing related to a low-saturation image. For example, the low saturation processing unit 131 acquires an input image supplied from the sorting buffer 111. The low-saturation processing unit 131 determines whether or not the input image has low saturation, and generates control information indicating the coding mode of the color component according to the determination result. The low saturation processing unit 131 supplies the control information to the coding unit 115.
  • the low saturation processing unit 131 controls each processing unit such as the calculation unit 112 and the rate control unit 123 according to the determination result, and controls the coding of the color component. That is, the low-saturation processing unit 131 causes each processing unit to perform processing according to the coding mode shown in the control information described above.
  • the low saturation processing unit 131 generates an achromatic image composed of pixels having an achromatic color value as a locally decoded image according to the determination result.
  • the low saturation processing unit 131 supplies the generated achromatic image to the in-loop filter unit 120.
  • the low saturation processing unit 131 controls the in-loop filter unit 120 according to the determination result, and controls the execution of the filter processing for the locally decoded image of the color component.
  • FIG. 2 is a block diagram showing a main configuration example of the low saturation processing unit 131.
  • the low saturation processing unit 131 includes a low saturation determination unit 151, a flag generation unit 152, a coding control unit 153, an achromatic color generation unit 154, and a filter control unit 155.
  • the low saturation determination unit 151 performs processing related to determining whether or not the input image has low saturation (achromatic color value or a value near the achromatic color value). For example, the low saturation determination unit 151 can acquire the input image supplied from the sorting buffer 111. Further, the low saturation determination unit 151 can determine whether or not the input image has low saturation.
  • the low saturation determination unit 151 can supply the determination result to the flag generation unit 152. Further, the low saturation determination unit 151 can acquire the flag information chroma_skip_flag of the value corresponding to the determination result from the flag generation unit 152.
  • the low saturation determination unit 151 can supply the flag information chroma_skip_flag to the flag generation unit 152 to the filter control unit 155 as a determination result of whether or not the input image has low saturation. Further, the low saturation determination unit 151 can supply the input image to the coding control unit 153.
  • the "low-saturation image” means an image in which the pixel values of all pixels are achromatic colors or values close to the achromatic color values, or the pixel values of all pixels are achromatic colors or achromatic colors. It is assumed that the image is considered to be a value near the value (that is, an image in which the pixel values of all pixels are treated as an achromatic color value or an image having a value near the achromatic color value).
  • the image coding apparatus 100 is suitable for the low-saturation color component without changing the processing of the luminance component. Processing can be performed. As a result, it is possible to suppress a reduction in the subjective image quality of the decoded image as compared with the case where the luminance component and the color component are controlled in the same manner (when the luminance component and the color component are controlled together). In addition, it is possible to suppress an increase in the load of coding / decoding. Further, the reduction of the coding efficiency can be suppressed.
  • the flag generation unit 152 can generate control information indicating the coding mode of the color component based on the determination result supplied from the low saturation determination unit 151. For example, the flag generation unit 152 can generate chroma_skip_flag, which is flag information indicating whether or not to apply the skip mode in which the coding of the color component is skipped (omitted), as the control information.
  • the skip mode is applied to the coding of color components.
  • the coding of the color components of the image is omitted. That is, in this case, the luminance component of the input image is encoded, and the color component is not encoded. Therefore, the bitstream contains the information on the luminance component and not the information on the color component.
  • the normal mode is applied to the coding of color components. That is, in this case, the luminance component and the color component of the input image are encoded. Therefore, the bitstream contains both luminance component information and color component information.
  • the flag generation unit 152 can set the value of this flag information chroma_skip_flag by any method. For example, the flag generation unit 152 can set the value of chroma_skip_flag to "1" when the low saturation determination unit 151 determines that the image to be processed has low saturation. Further, for example, the flag generation unit 152 can set the value of chroma_skip_flag to "0" when the low saturation determination unit 151 determines that the image to be processed is not low saturation.
  • the flag generation unit 152 can supply this control information (chroma_skip_flag) to the coding unit 115. That is, this control information can be encoded, included in the bitstream, and transmitted to the decoding side.
  • the bitstream generated as described above can be correctly decoded on the decoding side. That is, since it is possible to suppress the generation of color noise due to coding / decoding in the low-saturation portion of the image, it is possible to suppress the reduction in the subjective image quality of the decoded image. Further, since the coding of the color component can be omitted in the low-saturation portion, it is possible to suppress an increase in the load of coding / decoding. Further, since the low-saturation portion can prevent the coded data of the color component from being generated, it is possible to suppress the reduction of the coding efficiency.
  • the flag generation unit 152 can also supply this chroma_skip_flag to the low saturation determination unit 151.
  • the coding control unit 153 controls the calculation unit 112 to the coding unit 115 by supplying control information, generates a residual of the color component of the input image, and orthogonally converts the residual.
  • Quantization, and entropy coding can be omitted.
  • the coding control unit 153 controls the inverse quantization unit 117 to the arithmetic unit 119 by supplying control information, and performs inverse quantization, inverse orthogonal transformation, and inverse orthogonal transformation at the quantization conversion coefficient level of the color component of the input image. The addition of the predicted image can be omitted.
  • the coding control unit 153 performs each processing of the image coding device 100. It is possible to control the unit and perform processing related to coding of the color component of the input image.
  • the coding control unit 153 can supply the color component of the input image to the calculation unit 112. That is, as in the case of the brightness component, the calculation unit 112 generates a residual between the color component of the input image and the color component of the predicted image, and the orthogonal transform unit 113 orthogonally transforms the residual to the quantization unit 114. Quantizes the conversion coefficient, and the coding unit 115 encodes the quantization conversion coefficient level. Further, the inverse quantization unit 117 inversely quantizes the quantization conversion coefficient level, the inverse orthogonal conversion unit 118 performs inverse orthogonal conversion of the conversion coefficient, and the arithmetic unit 119 adds the predicted image to the predicted residual to localize. Derivation of the decoded image.
  • the low-saturation part is the coding of the color component (residual generation, orthogonal transformation, quantization, entropy coding, inverse quantization, inverse orthogonal transformation, Each process such as generation of predicted residual) may be omitted. Also, the generation of the predicted image may be omitted. Therefore, it is possible to suppress an increase in the coding load.
  • the "achromatic color value” means an intermediate value of pixel amplitude in a color component (for example, two color difference components (Cb, Cr)) unless otherwise specified.
  • a color component for example, two color difference components (Cb, Cr)
  • the value 128 in the two color difference components (Cb, Cr) is the achromatic color value.
  • the user, the application, or the like may be able to set this "achromatic color value" to a value other than the intermediate value of the pixel amplitude.
  • achromatic image is an image in which the pixel values of all pixels are achromatic values, or an image in which the pixel values of all pixels are regarded as an achromatic value image (that is, pixels of all pixels). It is assumed that the value is an image treated as an image with an achromatic value).
  • the locally decoded image of the color component is derived by the calculation unit 119 and supplied to the in-loop filter unit 120.
  • an achromatic image By inserting the achromatic image in this way, it is possible to suppress the generation of color noise (the occurrence of quantization error) in the low-saturation portion of the locally decoded image, so that the propagation of color noise in the generation of the predicted image can be suppressed. It is possible to suppress the reduction of the subjective image quality of the decoded image.
  • an achromatic image can be generated and inserted as a locally decoded image more easily than processing such as inverse quantization, inverse orthogonal transformation, and generation of predicted residuals. Therefore, it is possible to suppress an increase in the coding load.
  • the filter control unit 155 transmits the control information to the in-loop filter unit 120. It can be supplied and filtered for locally decoded images of color components.
  • the low saturation determination unit 151 can perform the above determination for each block of the input image (for example, for each CTU or each CU). That is, the flag generation unit 152 to the filter control unit 155 can perform each process for each block of the input image (for example, for each CTU or each CU).
  • the image coding apparatus 100 can perform processing suitable for the case of low saturation as described above only for the low saturation portion of the input image. Therefore, by doing so, it is possible to further suppress the reduction in the subjective image quality of the decoded image as compared with the case where it is determined and controlled whether or not the entire image has low saturation. In addition, it is possible to further suppress an increase in the load of coding / decoding. Furthermore, the reduction in coding efficiency can be further suppressed.
  • step S101 the sorting buffer 111 is controlled by the control unit 101 to sort the frame order of the input moving image data from the display order to the coding order.
  • step S102 the control unit 101 sets a processing unit (block division is performed) for the input image held by the sorting buffer 111.
  • step S103 the control unit 101 determines (sets) the coding parameters for the input image held by the sorting buffer 111.
  • step S104 the prediction unit 122 performs prediction processing and generates a prediction image or the like of the optimum prediction mode.
  • the prediction unit 122 performs intra-prediction to generate a prediction image or the like of the optimum intra-prediction mode, and performs inter-prediction to generate a prediction image or the like of the optimum inter-prediction mode.
  • the optimum prediction mode is selected from among them based on the cost function value and the like.
  • the prediction unit 122 can perform prediction processing on the luminance component and the color component.
  • each processing unit of the image coding apparatus 100 performs each processing as appropriate to encode the luminance component of the input image and generate the encoded data of the luminance component.
  • each processing unit of the image coding apparatus 100 performs each processing as appropriate to encode the color component of the input image and generate the coded data of the color component.
  • step S107 the control unit 101 determines whether or not all the blocks have been processed. If it is determined that an unprocessed block exists, the process is returned to step S104, and the subsequent processes are repeated. That is, each process of step S104 to step S107 is executed for each block.
  • step S107 If it is determined in step S107 that all the blocks have been processed, the process proceeds to step S108.
  • step S108 the storage buffer 116 generates a bit stream containing encoded data of various information.
  • This bitstream contains chroma_skip_flag, which is control information indicating whether to apply a mode that omits coding of color component residuals.
  • step S109 the storage buffer 116 outputs the bit stream to the outside of the image encoding device 100.
  • This bit stream is transmitted to the decoding side via, for example, a transmission line or a recording medium.
  • the rate control unit 323 performs rate control as needed.
  • step S109 When the process of step S109 is completed, the coding process is completed.
  • the low saturation determination unit 151 and the flag generation unit 152 execute the low saturation determination process in step S131, and whether the block to be processed is a low saturation image. Judge whether or not.
  • step S132 the coding control unit 153 to the filter control unit 155 determine whether or not the value of the flag information chroma_skip_flag set in the low saturation determination process is "0". If the value of this chroma_skip_flag is "0", that is, in the low saturation determination process of step S131, it is determined that the block to be processed is not a low saturation image, the process proceeds to step S133.
  • step S133 the calculation unit 112 calculates the difference between the input image and the prediction image of the optimum mode selected by the prediction process in step S104 of FIG. That is, the calculation unit 112 generates a prediction residual between the input image and the prediction image.
  • the amount of the predicted residual obtained in this way is reduced as compared with the original image data. Therefore, the amount of data can be compressed as compared with the case where the image is encoded as it is.
  • step S134 the orthogonal transform unit 113 performs orthogonal transform processing on the predicted residual generated by the process of step S133, and derives a conversion coefficient.
  • step S135 the quantization unit 114 quantizes the conversion coefficient obtained by the process of step S134 by using the quantization parameter calculated by the control unit 101, and derives the quantization conversion coefficient level.
  • step S136 the inverse quantization unit 117 dequantizes the quantization conversion coefficient level generated by the process of step S135 with the characteristics corresponding to the quantization characteristics, and derives the conversion coefficient.
  • step S137 the inverse orthogonal transform unit 118 performs inverse orthogonal transform of the conversion coefficient obtained by the process of step S136 by a method corresponding to the orthogonal transform process of step S134, and derives a predicted residual. Since this inverse orthogonal transformation process is the same as the inverse orthogonal transform process (described later) performed on the decoding side, the description (described later) performed on the decoding side is applied to the inverse orthogonal transform process in step S137. can do.
  • step S138 the calculation unit 119 locally decodes the decoded image by adding the predicted image obtained by the prediction process of step S104 of FIG. 3 to the predicted residual derived by the process of step S137. To generate.
  • step S139 the in-loop filter unit 120 performs an in-loop filter process on the locally decoded decoded image derived by the process of step S138.
  • the process of step S139 proceeds to step S141.
  • step S132 when the value of chroma_skip_flag is "1", that is, when it is determined that the block to be processed is a low-saturation image, the process proceeds to step S140.
  • the skip mode is applied to the color components.
  • this skip mode no coded data for the color components of the input image is generated (not included in the bitstream).
  • step S140 the achromatic color generation unit 154 generates an achromatic image (block) in which the pixel values of all the pixels are achromatic values, and inserts the achromatic image as a locally decoded image. That is, in this skip mode, the generation of the locally decoded image using the color component of the input image is also omitted, and the achromatic image is used as the locally decoded image instead.
  • step S140 When the process of step S140 is completed, the process proceeds to step S141. That is, in the skip mode, the processing of steps S133 to S139 is omitted by the control of the coding control unit 153 to the filter control unit 155.
  • step S141 the frame memory 121 stores the locally decoded image filtered by the process of step S139 or the achromatic locally decoded image inserted by the process of step S140.
  • step S142 the coding unit 115 encodes the quantization conversion coefficient level obtained by the process of step S135 and generates coded data.
  • the coding unit 115 encodes various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo). Further, the coding unit 115 derives the residual information RInfo from the quantization conversion coefficient level and encodes the residual information RInfo. Further, the coding unit 115 encodes the control information (chroma_skip_flag) generated by the low saturation determination process in step S131.
  • step S143 the storage buffer 116 stores each coded data thus obtained.
  • the color component coding process is completed, and the process returns to FIG.
  • the low saturation determination unit 151 determines whether or not the processing target pixel is a low saturation pixel (that is, whether or not the pixel value of the processing target pixel is low saturation). ..
  • the low-saturation determination unit 151 derives the absolute difference value from the achromatic color value separately determined for each component for the two components of the color difference components Cb and Cr of each pixel of the block to be processed, and both components. It is determined whether or not the absolute difference value of is equal to or less than the threshold value for the pixel value separately determined for each component.
  • the pixel value of the Cb component of the pixel to be processed is cb
  • the achromatic color value of the Cb component is Cbgrey
  • the threshold value for the pixel value of the Cb component is ThCbgrey
  • the pixel value of the Cr component of the pixel to be processed is cr.
  • the achromatic color value of the Cr component is Crgrey
  • the threshold value for the pixel value of the Cr component is ThCrgrey.
  • the low saturation determination unit 151 determines whether or not the following equation (1) is true.
  • the achromatic color value Cbgrey of the Cb component and the achromatic color value Crgrey of the Cr component are typically intermediate values of the pixel amplitude, but the present invention is not limited to this, and for example, in an image processing system including an image encoding device 100. Any value can be set, such as a value defined as achromatic.
  • the Cbgrey and Crgrey may be set to arbitrary values by, for example, a user or an application. In such a case, the Cbgrey and Crgrey may be defined in the header of, for example, a slice, a picture, a sequence, or the like.
  • Cbgrey and Crgrey may be set to predetermined predetermined values so that they are known on both the encoding side and the decoding side. In that case, the definition of the value in the header can be omitted.
  • these Cbgrey and Crgrey may be a common value (for example, Cgrey).
  • ThCbgrey and ThCrgrey may be set to arbitrary values by, for example, a user or an application.
  • ThCbgrey and ThCrgrey may be defined in the header of, for example, a slice, a picture, a sequence, or the like.
  • ThCbgrey and ThCrgrey may be set to predetermined predetermined values so that they are known on both the encoding side and the decoding side. In that case, the definition of the value in the header can be omitted.
  • the pixel value cb of the Cb component becomes close to the achromatic color value Cbgrey of the Cb component. That is, the absolute difference between the pixel value cb of the Cb component and the achromatic color value Cbgrey of the Cb component becomes small.
  • the pixel value cr of the Cr component also becomes close to the achromatic color value Crgrey of the Cr component. That is, the absolute difference between the pixel value cr of the Cr component and the achromatic color value Crgrey of the Cr component also becomes small.
  • the low saturation determination unit 151 determines that the above equation (1) is true, that is, the absolute difference between the pixel value cb of the Cb component and the achromatic color value Cbgrey of the Cb component is the pixel value.
  • the absolute value of the difference between the pixel value cr of the Cr component and the achromatic color value Crgrey of the Cr component is equal to or less than the threshold ThCbgrey for the pixel value, the pixel to be processed is a low-saturation pixel. Is determined to be. In this case, the process proceeds to step S173.
  • the determination as to whether or not the pixel is a low-saturation pixel may be performed using a condition other than the condition represented by the equation (1). For example, depending on whether the sum of the squared differences between the pixel value cb of the Cb component and the achromatic color value Cbgrey of the Cb component is within the square value of the threshold ThCbgrey for the pixel value, and the pixel value cr of the Cr component Whether or not the pixel is a low-saturation pixel may be determined depending on whether or not the sum of the squares of the difference between the Cr component and the achromatic color value Crgrey is within the square value of the pixel value threshold ThCrgrey. That is, it may be determined by the distance.
  • the low-saturation determination unit 151 determines the block as low-saturation.
  • step S172 when a low-saturation pixel is detected in step S172, the low-saturation determination unit 151 counts the low-saturation pixel. That is, the low saturation determination unit 151 increments the count value cnt (for example, increases it by +1) in step S173.
  • step S173 the process proceeds to step S174.
  • step S172 If it is determined in step S172 that the above equation (1) is false, that is, if the low saturation pixel is not detected, the low saturation determination unit 151 does not perform (skip) this count. That is, when it is determined in step S172 that the pixel to be processed is not a low-saturation pixel, the process of step S173 is omitted, and the process proceeds to step S174.
  • step S174 the low saturation determination unit 151 determines whether or not all the pixels have been processed for the color components of the block to be processed. If it is determined that there are unprocessed pixels, the process returns to step S172, the unprocessed pixels are set as new processing targets, and the subsequent processing is repeated. That is, when each process of steps S172 to S174 is executed for each pixel and it is determined in step S174 that all the pixels have been processed, the process proceeds to step S175.
  • step S175 the low-saturation determination unit 151 determines whether or not the ratio of the count value of the low-saturation pixels counted as described above to the total number of pixels in the block exceeds the threshold value for a predetermined count value separately determined. judge.
  • the count value of low-saturation pixels is cnt
  • the threshold value for the count value is Thcnt
  • the total number of pixels in the block is Nb.
  • the low saturation determination unit 151 determines whether or not the following equation (2) is true.
  • the threshold value Thcnt for the count value can be set to any value.
  • This Thcnt may allow a user, an application, or the like to set an arbitrary value, for example.
  • this Thcnt may be defined in the header of, for example, a slice, a picture, a sequence, or the like. Further, this Thcnt may be set to a predetermined predetermined value so that it is known on both the encoding side and the decoding side. In that case, the definition of the value in the header can be omitted.
  • the condition for determining whether or not the block has low saturation may be the result of comparison between the count value cnt and the threshold value Thcnt for the count value.
  • the threshold value Thcnt may be set to a value according to the number of pixels of the block for processing.
  • the average value of the pixel values in the block of the color difference component may be compared with a predetermined threshold value, and the comparison result may be used as a determination condition.
  • the determination may be made by using both the count value and the average value together.
  • the process proceeds to step S176. ..
  • the low saturation determination unit 151 determines that the processing target block has low saturation.
  • step S176 the flag generation unit 152 sets the value of the flag information chroma_skip_flag to "1". That is, a skip mode is applied to the low-saturation block, in which the coding of the color component of the input image is skipped.
  • step S175 of FIG. 5 if it is determined that the count value cnt is equal to or less than the threshold value for the predetermined count value, the process proceeds to step S177. That is, when it is determined that the equation (2) is false, the process proceeds to step S177. In this case, the low saturation determination unit 151 determines that the processing target block is not low saturation.
  • step S177 the flag generation unit 152 sets the value of the flag information chroma_skip_flag to "0". That is, the normal mode in which the color components of the input image are encoded is applied to the low-saturation block.
  • the above-mentioned threshold value Thcnt for the count value may be variable depending on the coding conditions.
  • the threshold value Thcnt may be set according to the bit rate in the image coding apparatus 100, the quantization parameter in the coding block, and the like.
  • the low saturation determination unit 151 sets a threshold value as shown in the following equation (3). You may try to derive Thcnt.
  • Thcnt Clip3 (0, 1, Acnt * Tr / (Q * Rr) + Bcnt) ⁇ ⁇ ⁇ (3)
  • Acnt is a proportional coefficient
  • Bcnt is a constant
  • the threshold Thcnt By increasing the threshold Thcnt (increasing the value), it is possible to make it difficult for the coded block to be determined as low saturation (typically, it is not determined).
  • the threshold Thcnt By deriving the threshold Thcnt using the above equation (3), the target bit rate is sufficiently high, the quantization parameter of the coding block is sufficiently small, or the input image is easily coded and the actual generated bit rate is increased.
  • the threshold Thcnt can be increased (increased). For example, when it is judged that the color noise due to the quantization error is difficult to be visually recognized even if the color difference component of the low saturation portion is encoded, the unnecessary deviation between the input image and the decoded image is eliminated by controlling the threshold value Thcnt. It can be suppressed.
  • the threshold Thcnt may be lowered (the value may be reduced).
  • the above-mentioned threshold values ThCbgrey and ThCrgrey for pixel values can be controlled in the same manner.
  • the low saturation determination unit 151 (or the control unit 101) may derive the threshold values ThCbgrey and ThCrgrey as in the following equations (4) and (5).
  • ThCbgrey Clip3 (0, MaxC, ACb * (Q * Rr) / Tr + BCb) ⁇ ⁇ ⁇ (4)
  • ThCrgrey Clip3 (0, MaxC, ACr * (Q * Rr) / Tr + BCr) ⁇ ⁇ ⁇ (5)
  • ACb and ACr are proportional coefficients
  • BCb and BCr are constants
  • Clip3 () is a clip function
  • MaxC is the maximum value in the domain of the pixel color difference component.
  • the target bit rate is sufficiently high, the quantization parameter of the coding block is sufficiently small, or the input image is encoded.
  • the thresholds ThCbgrey and ThCrgrey can be lowered (decreased) when the actual bit rate is low. For example, by controlling the thresholds ThCbgrey and ThCrgrey in this way when the quantization error is considered to be small, it is difficult (typically not to) determine the coded block as desaturated. This makes it possible to suppress unnecessary deviation between the input image and the decoded image.
  • the threshold values ThCbgrey and ThCrgrey can be increased (increased in value).
  • the threshold values ThCbgrey and ThCrgrey can be increased (increased in value).
  • control of the threshold value Thcnt for the count value and the control of the threshold values ThCbgrey and ThCrgrey for the pixel value may be used in combination. For example, either one may be selected and applied, or both may be applied.
  • ⁇ Apply skip mode> decoding will be described. For example, when it is determined to apply a skip mode that omits lossless decoding, dequantization, and inverse coefficient conversion of the coded data of the residuals of the color components of the image in decoding the coded data of the image, the lossless mode is applied. Decoding, its inverse quantization, and its inverse coefficient conversion may be controlled to be omitted.
  • an achromatic image may be generated as the decoded image of the color component of the image.
  • the filtering process for the decoded image of the color component of the image may be omitted. By doing so, it is possible to suppress the generation of color noise due to the filtering process, and it is possible to suppress the reduction of the subjective image quality of the decoded image. Moreover, since the filtering process is omitted, an increase in load can be suppressed.
  • FIG. 6 is a block diagram showing an example of the configuration of an image decoding device, which is an aspect of an image processing device to which the present technology is applied.
  • the image decoding device 200 shown in FIG. 6 is a device such as AVC or HEVC that decodes coded data in which the predicted residuals of the image and the predicted image are encoded.
  • the image decoding device 200 implements the techniques described in Non-Patent Documents 1 to 3, and the image data of the moving image is encoded by a method conforming to the standard described in any of those documents. Decode the encoded data.
  • the image decoding device 200 can decode the coded data (bit stream) generated by the image coding device 100 described above.
  • FIG. 6 shows the main things such as the processing unit and the data flow, and not all of them are shown in FIG. That is, in the image decoding apparatus 200, there may be a processing unit that is not shown as a block in FIG. 6, or there may be a processing or data flow that is not shown as an arrow or the like in FIG. This also applies to other figures illustrating the processing unit and the like in the image decoding apparatus 200.
  • the image decoding device 200 includes a storage buffer 211, a decoding unit 212, an inverse quantization unit 213, an inverse orthogonal transform unit 214, an arithmetic unit 215, an in-loop filter unit 216, a sorting buffer 217, a frame memory 218, and The prediction unit 219 is provided.
  • the prediction unit 219 includes an intra prediction unit (not shown) and an inter prediction unit.
  • the image decoding device 200 further has a low saturation processing unit 231.
  • the storage buffer 211 acquires and holds (stores) the bit stream input to the image decoding device 200.
  • the storage buffer 211 supplies the stored bit stream to the decoding unit 212 at a predetermined timing or when a predetermined condition is satisfied.
  • the decoding unit 212 performs processing related to image decoding. For example, the decoding unit 212 takes the bit stream supplied from the storage buffer 211 as an input, and entropy decodes (reversibly decodes) the syntax value of each syntax element from the bit string according to the definition of the syntax table. Derivation of parameters.
  • the syntax element and the parameters derived from the syntax value of the syntax element include, for example, information such as header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, residual information Rinfo, and filter information Finfo. That is, the decoding unit 212 parses (analyzes and acquires) this information from the bit stream. This information will be described below.
  • Header information Hinfo includes header information such as VPS (Video Parameter Set) / SPS (Sequence Parameter Set) / PPS (Picture Parameter Set) / SH (slice header).
  • the header information Hinfo includes, for example, image size (width PicWidth, height PicHeight), bit depth (brightness bitDepthY, color difference bitDepthC), color difference array type ChromaArrayType, maximum CU size MaxCUSize / minimum MinCUSize, quadtree division ( Maximum depth of Quad-tree division MaxQTDepth / Minimum depth MinQTDepth / Maximum depth of binary-tree division (Binary-tree division) MaxBTDepth / Minimum depth MinBTDepth, Maximum value of conversion skip block MaxTSSize (also called maximum conversion skip block size) ), Information that defines the on / off flag (also called the valid flag) of each coding tool is included.
  • the on / off flags of the coding tool included in the header information Hinfo there are the on / off flags related to the conversion and quantization processing shown below.
  • the on / off flag of the coding tool can also be interpreted as a flag indicating whether or not the syntax related to the coding tool exists in the coded data. Further, when the value of the on / off flag is 1 (true), it indicates that the coding tool can be used, and when the value of the on / off flag is 0 (false), it indicates that the coding tool cannot be used. Shown. The interpretation of the flag value may be reversed.
  • Inter-component prediction enabled flag (ccp_enabled_flag): Flag information indicating whether or not inter-component prediction (CCP (Cross-Component Prediction), also called CC prediction) can be used. For example, if this flag information is "1" (true), it indicates that it can be used, and if it is "0" (false), it indicates that it cannot be used.
  • CCP Cross-Component Prediction
  • This CCP is also called inter-component linear prediction (CCLM or CCLMP).
  • the prediction mode information Pinfo includes, for example, information such as size information PBSize (prediction block size) of the processing target PB (prediction block), intra prediction mode information IPinfo, and motion prediction information MVinfo.
  • Intra prediction mode information IPinfo includes, for example, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode in JCTVC-W1005, 7.3.8.5 Coding Unit syntax, and the brightness intra prediction mode IntraPredModeY derived from the syntax.
  • Intra-prediction mode information IPinfo includes, for example, inter-component prediction flag (ccp_flag (cclmp_flag)), multi-class linear prediction mode flag (mclm_flag), color difference sample position type identifier (chroma_sample_loc_type_idx), color difference MPM identifier (chroma_mpm_idx), , IntraPredModeC, etc., which are derived from these syntaxes.
  • the multi-class linear prediction mode flag is information regarding the mode of linear prediction (linear prediction mode information). More specifically, the multi-class linear prediction mode flag (mclm_flag) is flag information indicating whether or not to set the multi-class linear prediction mode. For example, "0" indicates that the mode is one class mode (single class mode) (for example, CCLMP), and "1" indicates that the mode is two class mode (multi-class mode) (for example, MCLMP). ..
  • the color difference sample position type identifier (chroma_sample_loc_type_idx) is an identifier that identifies the type of pixel position of the color difference component (also referred to as the color difference sample position type).
  • this color difference sample position type identifier (chroma_sample_loc_type_idx) is transmitted (stored in) as information (chroma_sample_loc_info ()) regarding the pixel position of the color difference component.
  • the color difference MPM identifier (chroma_mpm_idx) is an identifier indicating which prediction mode candidate in the color difference intra prediction mode candidate list (intraPredModeCandListC) is designated as the color difference intra prediction mode.
  • the information included in the prediction mode information Pinfo is arbitrary, and information other than this information may be included.
  • the conversion information Tinfo includes, for example, the following information.
  • the information included in the conversion information Tinfo is arbitrary, and information other than this information may be included.
  • Conversion skip flag (ts_flag): A flag indicating whether to skip the (reverse) primary conversion and the (reverse) secondary conversion.
  • Scan identifier (scanIdx) Quantization parameters (qp) Quantization matrix (scaling_matrix (eg JCTVC-W1005, 7.3.4 Scaling list data syntax))
  • the residual information Rinfo includes, for example, the following syntax.
  • cbf (coded_block_flag): Residual data presence / absence flag last_sig_coeff_x_pos: Last non-zero coefficient X coordinate last_sig_coeff_y_pos: Last non-zero coefficient Y coordinate coded_sub_block_flag: Subblock non-zero coefficient presence / absence flag sig_coeff_flag: Non-zero coefficient presence / absence flag gr1_flag: Non-zero coefficient level Flag indicating whether it is greater than 1 (also called GR1 flag)
  • gr2_flag Flag indicating whether the level of non-zero coefficient is greater than 2 (also called GR2 flag) sign_flag: A sign indicating the positive or negative of the non-zero coefficient (also called a sign code) coeff_abs_level_remaining: Non-zero coefficient residual level (also called non-zero coefficient residual level) Such.
  • the information included in the residual information Rinfo is arbitrary, and information other than this information may be included.
  • the filter information Finfo includes, for example, control information related to each of the following filter processes.
  • Control information for deblocking filters DPF
  • Control information for pixel adaptive offset SAO
  • Control information for adaptive loop filters ALF
  • the picture to which each filter is applied the information for specifying the area in the picture, the filter On / Off control information for each CU, the filter On / Off control information for the slice and tile boundaries, and the like. included.
  • the information included in the filter information Finfo is arbitrary, and information other than this information may be included.
  • the decoding unit 212 derives the quantization conversion coefficient level of each coefficient position in each conversion block with reference to the residual information Rinfo.
  • the decoding unit 212 supplies the quantization conversion coefficient level to the inverse quantization unit 213.
  • the decoding unit 212 supplies the parsed header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, and filter information Finfo to each block. Specifically, it is as follows.
  • the header information Hinfo is supplied to the inverse quantization unit 213, the inverse orthogonal transform unit 214, the prediction unit 219, and the in-loop filter unit 216.
  • the prediction mode information Pinfo is supplied to the inverse quantization unit 213 and the prediction unit 219.
  • the conversion information Tinfo is supplied to the inverse quantization unit 213 and the inverse orthogonal transform unit 214.
  • the filter information Finfo is supplied to the in-loop filter unit 216.
  • each coding parameter may be supplied to an arbitrary processing unit.
  • other information may be supplied to an arbitrary processing unit.
  • the dequantization unit 213 performs processing related to dequantization. For example, the inverse quantization unit 213 takes the conversion information Tinfo and the quantization conversion coefficient level supplied from the decoding unit 212 as inputs, and scales the value of the quantization conversion coefficient level based on the conversion information Tinfo (inverse quantization). ), And derive the conversion coefficient after dequantization.
  • this inverse quantization is performed as an inverse process of quantization by the quantization unit 114. Further, this dequantization is the same process as the dequantization by the dequantization unit 117. That is, the inverse quantization unit 117 performs the same processing (inverse quantization) as the inverse quantization unit 213.
  • the inverse quantization unit 213 supplies the derived conversion coefficient to the inverse orthogonal transform unit 214.
  • the inverse orthogonal transform unit 214 performs processing related to the inverse orthogonal transform. For example, the inverse orthogonal transform unit 214 receives the conversion coefficient supplied from the inverse quantization unit 213 and the conversion information Tinfo supplied from the decoding unit 212 as inputs, and based on the conversion information Tinfo, with respect to the conversion coefficient. Inverse orthogonal transformation processing is performed to derive the predicted residuals.
  • this inverse orthogonal transform is performed as an inverse process of the orthogonal transform by the orthogonal transform unit 113. Further, this inverse orthogonal transform is the same process as the inverse orthogonal transform by the inverse orthogonal transform unit 118. That is, the inverse orthogonal transform unit 118 performs the same processing (inverse orthogonal transform) as the inverse orthogonal transform unit 214.
  • the inverse orthogonal transform unit 214 supplies the derived predicted residual to the calculation unit 215.
  • the calculation unit 215 performs processing related to addition of information related to images. For example, the calculation unit 215 inputs the prediction residual supplied from the inverse orthogonal transform unit 214 and the prediction image supplied from the prediction unit 219. The calculation unit 215 adds the predicted residual and the predicted image (predicted signal) corresponding to the predicted residual to derive a locally decoded image.
  • the calculation unit 215 supplies the derived locally decoded image to the in-loop filter unit 216 and the frame memory 218.
  • the in-loop filter unit 216 performs processing related to the in-loop filter processing. For example, the in-loop filter unit 216 inputs the locally decoded image supplied from the calculation unit 215 and the filter information Finfo supplied from the decoding unit 212. The information input to the in-loop filter unit 216 is arbitrary, and information other than this information may be input.
  • the in-loop filter unit 216 appropriately filters the locally decoded image based on the filter information Finfo.
  • the in-loop filter unit 216 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF Adaptive Loop Filter
  • the in-loop filter unit 216 performs filter processing corresponding to the filter processing performed by the coding side (for example, the in-loop filter unit 120 of the image coding apparatus 100).
  • the filter processing performed by the in-loop filter unit 216 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 216 may apply a Wiener filter or the like.
  • the in-loop filter unit 216 supplies the filtered locally decoded image to the sorting buffer 217 and the frame memory 218.
  • the sorting buffer 217 receives the locally decoded image supplied from the in-loop filter unit 216 as an input, and holds (stores) it.
  • the sorting buffer 217 reconstructs and holds (stores in the buffer) the decoded image for each picture unit using the locally decoded image.
  • the sorting buffer 217 sorts the obtained decoded images from the decoding order to the reproduction order.
  • the rearrangement buffer 217 outputs the rearranged decoded image group as moving image data to the outside of the image decoding apparatus 200.
  • the frame memory 218 performs processing related to storage of data related to images. For example, the frame memory 218 receives the locally decoded image supplied from the calculation unit 215 as an input, reconstructs the decoded image for each picture unit, and stores it in the buffer in the frame memory 218.
  • the frame memory 218 receives an in-loop filtered locally decoded image supplied from the in-loop filter unit 216 as an input, reconstructs the decoded image for each picture, and stores it in the buffer in the frame memory 218. To do.
  • the frame memory 218 appropriately supplies the stored decoded image (or a part thereof) to the prediction unit 219 as a reference image.
  • frame memory 218 may store header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc. related to the generation of the decoded image.
  • the prediction unit 219 performs processing related to the generation of the prediction image. For example, the prediction unit 219 takes the prediction mode information Pinfo supplied from the decoding unit 212 as input, makes a prediction by the prediction method specified by the prediction mode information Pinfo, and derives a prediction image. At the time of derivation, the prediction unit 219 uses the decoded image (or a part thereof) before or after the filter stored in the frame memory 218 specified by the prediction mode information Pinfo as a reference image. The prediction unit 219 supplies the derived prediction image to the calculation unit 215.
  • the low-saturation processing unit 231 performs processing related to a low-saturation image.
  • the decoding unit 212 parses the header, extracts control information indicating the decoding mode of the coded data of the residual of the color component from the bit stream, and supplies it to the low saturation processing unit 231. Based on the control information, the low-saturation processing unit 131 determines whether to apply a mode in which decoding of the coded data of the residuals of the color components of the image to be coded is omitted.
  • the low saturation processing unit 231 controls each processing unit such as the decoding unit 212 to the prediction unit 219 according to the determination result, and controls the decoding of the coded data of the color component. That is, the low-saturation processing unit 231 causes each processing unit to perform processing according to the decoding mode shown in the control information described above. Further, the low saturation processing unit 231 generates an achromatic image composed of pixels having an achromatic color value as a decoded image according to the determination result. The low saturation processing unit 231 supplies the generated achromatic image to the in-loop filter unit 216.
  • the low saturation processing unit 231 controls the in-loop filter unit 216 according to the determination result, and controls the execution of the filter processing on the decoded image of the color component.
  • FIG. 7 is a block diagram showing a main configuration example of the low saturation processing unit 231.
  • the low saturation processing unit 231 includes a flag determination unit 251, an achromatic color generation unit 252, a filter control unit 253, and a decoding control unit 254.
  • the flag determination unit 251 performs processing related to determination of chroma_skip_flag which is control information (flag information). For example, the flag determination unit 251 can acquire chroma_skip_flag, which is control information indicating the decoding mode of the coded data of the residual of the color component supplied from the decoding unit 212. Further, the flag determination unit 251 determines whether or not to apply the mode of omitting the decoding of the coded data of the residual of the color component of the image to be encoded by determining the value of the chroma_skip_flag. it can.
  • the skip mode is applied to decode the color component.
  • decoding of the coded data of the color component of the image is omitted. That is, in this case, the bit stream contains the information on the luminance component and not the information on the color component. Therefore, the luminance component is decoded, and the color component is not decoded.
  • the normal mode is applied to decode the color component.
  • the bitstream contains both the luminance component information and the color component information. Therefore, in this case, the luminance component and the color component are decoded.
  • the flag determination unit 251 can supply the determination result to the achromatic color generation unit 252 to the decoding control unit 254.
  • the image decoding device 200 keeps the processing of the luminance component low. Suitable treatments can be performed on the color components of saturation. As a result, it is possible to suppress a reduction in the subjective image quality of the decoded image as compared with the case where the luminance component and the color component are controlled in the same manner (when the luminance component and the color component are controlled together). In addition, it is possible to suppress an increase in the decoding load. Further, the reduction of the coding efficiency can be suppressed.
  • This achromatic image is supplied to the sorting buffer 217 from the in-loop filter unit 216 as a decoded image and accumulated. Further, this achromatic image is supplied from the in-loop filter unit 216 to the frame memory 218 and stored, and is used for generating a predicted image to be used for subsequent decoding.
  • an achromatic image By inserting the achromatic image in this way, it is possible to suppress the generation of color noise (the occurrence of quantization error) in the low-saturation portion of the decoded image, and it is possible to suppress the reduction of the subjective image quality of the decoded image. Can be done.
  • an achromatic image can be generated and inserted as a locally decoded image more easily than processing such as inverse quantization, inverse orthogonal transformation, and generation of predicted residuals. Therefore, it is possible to suppress an increase in the decoding load.
  • achromatic color value Cbgrey of Cb component achromatic color value Crgrey of Cr component
  • This achromatic color value is defined in the header of a slice, a picture, a sequence, etc. at the time of encoding, and is restored when the header is entropy-decoded. It may be possible to use a common value on the side. Further, instead of defining this achromatic color value in the header, a fixed value achromatic color value common to the coding side and the decoding side may be used.
  • the control information can be supplied to the in-loop filter unit 216 to execute the filter processing on the decoded image of the color component.
  • the decoding control unit 254 controls the decoding unit 212 to the arithmetic unit 215 by supplying control information, and entropy decoding, inverse quantization, inverse orthogonal transformation, and decoding of the coded data of the color component. Processing such as image generation can be omitted. Further, the decoding control unit 254 can control the prediction unit 219 by supplying control information, and can omit the generation of the prediction image.
  • each processing unit of the image decoding apparatus 200 can be controlled to perform processing related to decoding of the coded data of the color component.
  • the decoding control unit 254 can control the decoding unit 212 to entropy decode the coded data of the color component. That is, as in the case of the brightness component, the decoding unit 212 entropically decodes the coded data, the inverse quantization unit 213 inversely quantizes the quantization conversion coefficient level, and the inverse orthogonal transformation unit 214 has the conversion coefficient. Is inversely orthogonally converted, and the calculation unit 215 adds the predicted image to the predicted residual to generate a decoded image.
  • the image decoding device 200 can omit the processing of the low-saturation portion. Also, the generation of the predicted image can be omitted. Therefore, it is possible to suppress an increase in the decoding load.
  • the flag determination unit 251 can perform the above-mentioned determination for each block (for example, for each CTU or each CU). That is, the achromatic color generation unit 252 to the decoding control unit 254 can perform each process for each block (for example, for each CTU or each CU).
  • the image decoding device 200 can perform processing suitable for the case of low saturation as described above only for the low saturation portion of the image. Therefore, by doing so, it is possible to further suppress the reduction in the subjective image quality of the decoded image as compared with the case where it is determined and controlled whether or not the entire image has low saturation. Moreover, the increase in the decoding load can be further suppressed. Furthermore, the reduction in coding efficiency can be further suppressed.
  • the storage buffer 211 acquires (stores) the coded data (bit stream) supplied from the outside of the image decoding device 200 in step S201.
  • step S202 the decoding unit 212 parses the header of the coded data (bitstream) and acquires control information such as various coding parameters and chroma_skip_flag.
  • the decoding unit 212 supplies the acquired chroma_skip_flag to the low saturation processing unit 231.
  • steps S203 to S206 are performed block by block based on various coding parameters parsed in step S202.
  • step S203 the prediction unit 219 executes the prediction process by the prediction method specified by the coding side based on the information parsed in step S202, and refers to the reference image stored in the frame memory 218. Then, a predicted image is generated.
  • each processing unit of the image decoding apparatus 200 performs each process as appropriate to decode the encoded data of the luminance component and generate a decoded image of the luminance component.
  • step S205 each processing unit of the image decoding device 200 performs each processing as appropriate to perform processing related to decoding of color components.
  • step S206 the decoding unit 212 determines whether or not all the blocks have been processed. If it is determined that an unprocessed block exists, the process is returned to step S203, and the subsequent processes are repeated. That is, each process of step S203 to step S206 is executed for each block.
  • step S206 If it is determined in step S206 that all the blocks have been processed, the process proceeds to step S207.
  • step S207 the sorting buffer 217 sorts the order of the decoded images of the luminance component and the color component obtained by the processes of steps S204 and S205 from the decoding order to the reproduction order.
  • step S208 the sorting buffer 217 outputs the decoded image group sorted in the reproduction order to the outside of the image decoding device 200 as a moving image.
  • step S208 When the process of step S208 is completed, the decoding process is completed.
  • the decoding unit 212 decodes the coded data of the color component in step S231 to obtain the quantization conversion coefficient level.
  • step S232 the flag determination unit 251 determines whether or not the value of the flag information chroma_skip_flag corresponding to the block to be processed extracted from the bit stream by the decoding of step S231 is "0". If it is determined that the value of this flag information chroma_skip_flag is "0", the process proceeds to step S233. In this case, a normal mode is applied as the decoding mode for the color component. In the case of this normal mode, the coded data of the color component is included in the bit stream. Therefore, the decoding control unit 254 appropriately controls each processing unit of the image decoding device 200 to decode the coded data of the color component.
  • step S233 the inverse quantization unit 213 performs inverse quantization, which is the inverse process of quantization performed on the coding side, with respect to the quantization conversion coefficient level obtained by the process of step S231, and the conversion coefficient. To get.
  • step S234 the inverse orthogonal transform unit 214 performs the inverse orthogonal transform process, which is the inverse process of the orthogonal transform process performed on the coding side, with respect to the conversion coefficient obtained by the process of step S233, and predicts the residual. To get.
  • step S235 the calculation unit 215 adds the predicted residual obtained by the process of step S234 and the predicted image obtained by the process of step S203 (FIG. 8) to derive a decoded image.
  • step S236 the in-loop filter unit 216 performs an in-loop filter process on the decoded image obtained by the process of step S235.
  • step S236 the process proceeds to step S238.
  • step S232 If it is determined in step S232 that the value of chroma_skip_flag is "1”, the process proceeds to step S237.
  • the skip mode is applied as the decoding mode for the color component.
  • the coded data of the color component is not included in the bit stream. Therefore, the decoding control unit 254 appropriately controls each processing unit of the image decoding device 200 to skip the processing related to decoding of the color component.
  • step S237 the achromatic color generation unit 154 generates an achromatic image (block) in which the pixel values of all the pixels are achromatic values, and inserts the achromatic image as a decoded image. That is, in this skip mode, the generation of the decoded image using the coded data of the color component is omitted, and the achromatic image is used as the decoded image instead.
  • step S237 When the process of step S237 is completed, the process proceeds to step S238. That is, in the skip mode, each process of step S233 to step S236 is omitted by the control of the decoding control unit 254 and the filter control unit 253.
  • step S2308 the sorting buffer 217 and the frame memory 218 store the decoded image filtered by the process of step S236 or the achromatic decoded image inserted by the process of step S237.
  • step S238 When the process of step S238 is completed, the color component decoding process is completed, and the process returns to FIG.
  • chroma_skip_flag has been described as an example of control information, but the control information regarding the coding / decoding of the color component transmitted from the coding side to the decoding side is arbitrary and is not limited to this example.
  • pps_chroma_fixval_present_flag may be included in the bitstream for transmission as flag information indicating whether a fixed value other than 0x80 is applied as the achromatic color value.
  • pps_cb_fixval and pps_cr_fixval may be included in the bit stream for transmission as control information for specifying a fixed value other than 0x80 as the achromatic color value.
  • This pps_cb_fixval is control information that specifies a fixed value (other than 0x80) as the achromatic color value of the Cb component.
  • pps_cr_fixval is control information that specifies a fixed value (other than 0x80) as an achromatic color value of the Cr component.
  • a palette coding method is known as a coding method suitable when the pixel value of the input image is limited to a certain type.
  • the types of pixel values used locally are often limited, there is no random noise, and there is no AC component in the flat portion.
  • the edge of the object boundary is sharp and contains a lot of high-frequency AC components, which is different from the natural image. Therefore, the information loss due to the orthogonal transformation / quantization processing used in the conventional typical coding method is large.
  • Palette coding is a method used for the purpose of improving the coding efficiency of such screen contents. Specifically, using a color correspondence table called a palette, pixels are represented by indexes on the color correspondence table, and encoding is performed by lossless compression of indexes using run length without using orthogonal transformation and quantization. It is a method.
  • the color component of each pixel is indexed as shown in B of FIG. Convert to color number). Then, this index group is encoded using run length or the like and transmitted instead of the predicted residual.
  • This palette coding is introduced as Screen content coding extensions profile in the video compression standard ITU-T H.265 / HEVC.
  • VVC Very Video Coding
  • VVC Very Video Coding
  • the pixel value of the color component is a fixed value (achromatic color value), so by applying such palette coding, it is possible to suppress a decrease in coding efficiency. ..
  • the color component becomes a single color, but the luminance component takes various pixel values as the natural image.
  • the palette mode in the conventional video compression standard including VVC both the luminance component and the color component are specified at the same time, and only the color component cannot be independently specified as the palette mode.
  • the palette mode when applying the palette mode to the color component, the palette mode is also applied to the luminance component, and the escape mode that directly quantizes and encodes the pixel values not defined on the palette is frequently used. Will be applied to. Therefore, there is a risk that the coding efficiency will be reduced as compared with the case where normal coding is performed without using the palette mode.
  • the color of the four pixels in the upper right corner does not exist in the palette.
  • An escape mode is applied to such pixels, and color components (pixel values) are encoded and transmitted. Therefore, the amount of code increases for the pixels to which the escape mode is applied. Therefore, the more frequently such escape modes occur, the lower the coding efficiency may be.
  • ⁇ Application of palette mode for color components> Therefore, when it is determined that the image has low saturation in the coding of the image, the residual coefficient conversion, quantization, and reversible coding of the color component of the image are performed with respect to the color component of the image.
  • the control information indicating whether to apply the palette mode for encoding the index may be generated by omitting the above, and a bit stream including the control information may be generated.
  • an image of palette color corresponding to the index may be generated as a locally decoded image of the color component of the image. That is, in image coding, the palette color image corresponding to the index may be used as the locally decoded image.
  • the filtering process for the locally decoded image of the color component of the image may be omitted. By doing so, it is possible to suppress the generation of color noise due to the filtering process, and it is possible to suppress the reduction of the subjective image quality of the decoded image. Moreover, since the filtering process is omitted, an increase in load can be suppressed.
  • ⁇ Low saturation judgment> it may be determined whether or not the image has low saturation for each block of the image.
  • the threshold value for the pixel value is used to determine whether or not each pixel value of the block to be processed has low saturation, the pixels judged to be low saturation are counted, and the threshold value for the count value is used. It may be determined whether or not the processing target block has low saturation.
  • the threshold value for the pixel value may be one according to the coding condition.
  • the threshold value for the count value may depend on the coding conditions. Note that this coding condition may include a bit rate. Further, this coding condition may include a quantization parameter. Of course, the coding conditions may include both the bit rate and the quantization parameters.
  • Image coding device The present technology described above can be applied to any device, device, system and the like.
  • the above-described technique can be applied to an image coding device that encodes image data in the present embodiment.
  • the configuration of the image coding device in that case is the same as that of the first embodiment (for example, FIG. 1).
  • FIG. 12 is a block diagram showing a main configuration example of the low saturation processing unit 131 in this case.
  • the low saturation processing unit 131 includes a low saturation determination unit 351, a flag generation unit 352, a coding control unit 353, a palette coding unit 354, and a filter control unit 355.
  • the low saturation determination unit 351 performs processing related to determining whether or not the input image has low saturation (achromatic color value or a value near the achromatic color value). For example, the low saturation determination unit 351 can acquire the input image supplied from the sorting buffer 111. Further, the low saturation determination unit 351 can acquire the palette_flag supplied from the control unit 101.
  • Palette_flag is flag information (control information) indicating whether or not to apply the palette mode.
  • the palette mode is applied to the luminance component and color component of the block to be processed.
  • the palette mode is not applied to the luminance and color components of the block to be processed, and the normal mode is applied (predicted residuals are encoded).
  • the low saturation determination unit 351 acquires this flag information set by the control unit 101.
  • the low saturation determination unit 351 can determine whether or not the input image has low saturation. Further, the low saturation determination unit 351 can supply the determination result to the flag generation unit 352. Further, the low saturation determination unit 351 can acquire the flag information chroma_palette_flag of the value corresponding to the determination result from the flag generation unit 352.
  • the low saturation determination unit 351 can supply the flag information palette_flag and chroma_palette_flag to the coding control unit 353 to the filter control unit 355 as a determination result of whether or not the input image has low saturation. Further, the low saturation determination unit 351 can supply the input image to the coding control unit 353 and the palette coding unit 354.
  • the image coding apparatus 100 is suitable for the low-saturation color component without changing the processing of the luminance component. Processing can be performed. As a result, it is possible to suppress a reduction in the subjective image quality of the decoded image as compared with the case where the luminance component and the color component are controlled in the same manner (when the luminance component and the color component are controlled together). In addition, it is possible to suppress an increase in the load of coding / decoding. Further, the reduction of the coding efficiency can be suppressed.
  • the flag generation unit 352 can perform processing related to the generation of flag information. For example, the flag generation unit 352 can acquire the determination result supplied from the low saturation determination unit 351. Further, the flag generation unit 352 can generate control information indicating the coding mode of the color component based on the determination result. For example, the flag generation unit 352 can generate chroma_palette_flag, which is flag information indicating whether or not to apply the palette mode for the color component, as the control information.
  • the palette mode is applied to the coding of color components.
  • the coding of the predicted residuals of the color components of the image is omitted, and the index returned from the pixel values is coded using the color correspondence table. That is, in this case, the luminance component of the input image is encoded in normal mode (predicted residuals are encoded) and the color component is encoded in palette mode (index is encoded).
  • the normal mode is applied to the coding of color components. That is, in this case, the predicted residuals are encoded for both the luminance component and the color component of the input image.
  • the flag generation unit 352 can set the value of this flag information chroma_palette_flag by any method. For example, the flag generation unit 352 can set the value of chroma_palette_flag to "1" when the low saturation determination unit 351 determines that the image to be processed has low saturation. Further, for example, the flag generation unit 352 can set the value of chroma_palette_flag to "0" when the low saturation determination unit 351 determines that the image to be processed is not low saturation.
  • the flag generation unit 352 can supply this control information (chroma_palette_flag) to the coding unit 315. That is, this control information can be encoded, included in the bitstream, and transmitted to the decoding side.
  • the bitstream generated as described above can be correctly decoded on the decoding side. That is, since it is possible to suppress the generation of color noise due to coding / decoding in the low-saturation portion of the image, it is possible to suppress the reduction in the subjective image quality of the decoded image. Further, since the color component of the low-saturation portion is indexed and encoded, processing such as orthogonal transformation and quantization (inverse quantization and inverse orthogonal transformation) having a large load can be omitted. Therefore, it is possible to suppress an increase in the coding / decoding load. Further, since the color component of the low-saturation portion is indexed and coded, it is possible to suppress a decrease in coding efficiency.
  • the flag generation unit 352 can also supply this chroma_palette_flag to the low saturation determination unit 351.
  • the coding control unit 353 can perform processing related to control of coding of color components. For example, the coding control unit 353 can acquire the determination results (palette_flag and chroma_palette_flag) supplied from the low saturation determination unit 351. Further, the coding control unit 353 can control each processing unit of the image coding device 100 for coding of the color component of the image based on the determination result (palette_flag and chroma_palette_flag). For example, in the coding control unit 353, the brightness component of the image to be processed is encoded in the normal mode by the low saturation determination unit 351, and the image to be processed has low saturation (color component is in palette mode).
  • each processing unit of the image coding apparatus 100 can be controlled, and the processing related to the coding of the color component of the input image can be omitted.
  • the coding control unit 353 controls the calculation unit 112 to the coding unit 115 by supplying control information, generates a residual of the color component of the input image, and orthogonally converts the residual.
  • Quantization, and entropy coding can be omitted.
  • the coding control unit 353 controls the inverse quantization unit 117 to the arithmetic unit 119 by supplying control information, and performs inverse quantization, inverse orthogonal transformation, and inverse orthogonal transformation at the quantization conversion coefficient level of the color component of the input image. The addition of the predicted image can be omitted.
  • the image to be processed is encoded in the normal mode by the low saturation determination unit 351 and the image to be processed is not low saturation (color components are encoded in the normal mode).
  • the coding control unit 353 can supply the color component of the input image to the calculation unit 112. That is, as in the case of the brightness component, the calculation unit 112 generates a residual between the color component of the input image and the color component of the predicted image, and the orthogonal transform unit 113 orthogonally transforms the residual to the quantization unit 114. Quantizes the conversion coefficient, and the coding unit 115 encodes the quantization conversion coefficient level. Further, the inverse quantization unit 117 inversely quantizes the quantization conversion coefficient level, the inverse orthogonal conversion unit 118 performs inverse orthogonal conversion of the conversion coefficient, and the arithmetic unit 119 adds the predicted image to the predicted residual to localize. Derivation of the decoded image.
  • the low-saturation part is the coding of the color component (residual generation, orthogonal transformation, quantization, entropy coding, inverse quantization, inverse orthogonal transformation, Each process such as generation of predicted residual) may be omitted. Also, the generation of the predicted image may be omitted. Therefore, it is possible to suppress an increase in the coding load.
  • the palette coding unit 354 can perform processing related to the palette mode. For example, the palette coding unit 354 can acquire the determination result (palette_flag and chroma_palette_flag) supplied from the low saturation determination unit 351 and the input image. Further, the palette coding unit 354 can encode the input image in the palette mode or generate a locally decoded image based on the determination result (palette_flag and chroma_palette_flag). For example, in the palette coding unit 354, the brightness component of the image to be processed is encoded in the normal mode by the low saturation determination unit 351, and the image to be processed has low saturation (the color component is in the palette mode).
  • the palette coding unit 354 can index the color components of the input image using a predetermined color correspondence table (palette).
  • This palette may be set in the image coding device 100 (for example, the control unit 101 or the palette coding unit 354).
  • the same pallet can be used at the time of decoding by including the information of the applied pallet in the bit stream and transmitting it to the decoding side.
  • the palette can be set for each arbitrary data unit. For example, by setting the palette in a higher data unit such as for each sequence or picture, it is possible to suppress an increase in the amount of code.
  • the pallet to be used may be predetermined in the system so that the encoding side and the decoding side can use a common pallet without transmitting information.
  • the palette coding unit 354 can apply the escape mode to the pixel.
  • the palette coding unit 354 can encode the index group (including the pixel value when the escape mode is applied) generated in this way by using run-length coding or the like to generate run-length data. it can.
  • the run length encodes the index efficiently.
  • the palette coding unit 354 can supply the run-length data to the coding unit 115.
  • This run-length data is entropi-encoded in the coding unit 115, and the coded data is included in the bit stream and transmitted.
  • the palette coding unit 354 can generate a color component (also referred to as a palette color) corresponding to the index group by using the palette. Further, the palette coding unit 354 can apply the palette color image as a locally decoded image and supply it to the in-loop filter unit 120.
  • a color component also referred to as a palette color
  • the low-saturation portion can be encoded in the palette mode. Therefore, processing such as orthogonal transformation, quantization, entropy coding, inverse quantization, and inverse orthogonal transformation of high-load color components is not performed, and generation of a predicted image is not required. The increase can be suppressed. Further, since the superposition of the quantization error of the color component is suppressed, the reduction of the subjective image quality of the decoded image can be suppressed.
  • palette color image by inserting the palette color image as described above, it is possible to suppress the occurrence of color noise (the occurrence of quantization error) in the low saturation portion of the locally decoded image, so that the color in the generation of the predicted image can be suppressed. It is possible to suppress the propagation of noise and suppress the reduction of the subjective image quality of the decoded image.
  • a palette-colored image can be easily generated and inserted as a locally decoded image as compared with processing such as inverse quantization, inverse orthogonal transformation, and generation of predicted residuals. Therefore, it is possible to suppress an increase in the coding load.
  • the filter control unit 355 can perform processing related to filter control. For example, the filter control unit 355 can acquire the determination result (palette_flag and chroma_palette_flag) supplied from the low saturation determination unit 351 and the input image. Further, the filter control unit 355 can control the filter processing for the locally decoded image based on the determination result (palette_flag and chroma_palette_flag) supplied from the low saturation determination unit 351. For example, in the filter control unit 355, the low saturation determination unit 351 encodes the image to be processed in the normal mode, and the image to be processed is not low saturation (the color component is encoded in the normal mode).
  • control information can be supplied to the in-loop filter unit 120, and the filter processing for the locally decoded image of the color component can be omitted.
  • control information can be supplied to the in-loop filter unit 120 to execute filter processing on the locally decoded image of the color component.
  • the low saturation determination unit 351 can perform the above determination for each block of the input image (for example, for each CTU or each CU). That is, the flag generation unit 352 to the filter control unit 355 can perform each process for each block of the input image (for example, for each CTU or each CU).
  • the image coding apparatus 100 can perform processing suitable for the case of low saturation as described above only for the low saturation portion of the input image. Therefore, by doing so, it is possible to further suppress the reduction in the subjective image quality of the decoded image as compared with the case where it is determined and controlled whether or not the entire image has low saturation. In addition, it is possible to further suppress an increase in the load of coding / decoding. Furthermore, the reduction in coding efficiency can be further suppressed.
  • the low saturation determination unit 351 and the flag generation unit 352 execute the low saturation determination process in step S301, and whether the block to be processed is a low saturation image. Judge whether or not.
  • step S302 the coding control unit 353 to the filter control unit 355 have a value of palette_flag of "0" and a value of flag information chroma_palette_flag set in the low saturation determination process of step S301 of "0". Determine if it exists.
  • the value of palette_flag is "0" and the value of chroma_palette_flag is "0", that is, the block to be processed must have a luminance component encoded in normal mode and an image with low saturation. If determined, the process proceeds to step S303.
  • the normal mode is applied to the color components.
  • the predicted residuals of the color components of the input image are encoded. That is, the coded data of the predicted residual is included in the bit stream.
  • step S303 to S309 Each process of steps S303 to S309 is executed in the same manner as each process of steps S133 to S139 of FIG. When the process of step S309 is completed, the process proceeds to step S314.
  • step S302 the value of palette_flag is "0" and the value of chroma_palette_flag is "1", or the value of palette_flag is "1", that is, the block to be processed has a luminance component. If is determined to be a low-saturation image encoded in the normal mode, or if it is determined that the luminance component is encoded in the palette mode, the process proceeds to step S310.
  • the palette mode is applied to the color components.
  • the color components of the input image are indexed and encoded. That is, the bitstream contains the coded data of the index instead of the coded data of the predicted residuals.
  • the palette coding unit 354 In step S310, the palette coding unit 354 generates a palette (color correspondence table) used for indexing. For example, the palette coding unit 354 sets a predetermined palette as a palette used for indexing.
  • step S311 the palette coding unit 354 uses the palette to assign an index to each pixel value (that is, the color of each pixel) of the color component of the block to be processed. Escape mode is applied to pixels of colors that are not on the palette.
  • the palette coding unit 354 uses the palette to obtain a color (palette color) corresponding to the index of each pixel of the block to be processed, generate a palette color image (block), and generate the palette color image (block).
  • the image of is inserted as a locally decoded image. That is, in this palette mode, the generation of the locally decoded image using the predicted residual of the color component of the input image is also omitted, and the palette color image is used as the locally decoded image instead.
  • step S313 the palette coding unit 354 encodes the index group assigned to each pixel of the block to be processed by using run length or the like to generate run length data.
  • step S313 When the process of step S313 is completed, the process proceeds to step S314. That is, in the pallet mode, the processing of steps S303 to S309 is omitted by the control of the coding control unit 353 to the filter control unit 355.
  • step S314 the frame memory 121 stores the locally decoded image filtered by the process of step S309 or the locally decoded image of the palette color inserted by the process of step S312.
  • step S315 the coding unit 115 entropy-codes the quantization conversion coefficient level obtained by the process of step S305 or the run-length data obtained by the process of step S313 to generate coded data.
  • the coding unit 115 encodes various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo). Further, the coding unit 115 derives the residual information RInfo from the quantization conversion coefficient level and encodes the residual information RInfo.
  • the coding unit 115 encodes the control information (palette_flag and chroma_palette_flag).
  • step S316 the storage buffer 116 stores each coded data thus obtained.
  • the color component coding process is completed, and the process returns to FIG.
  • the method for determining whether or not the block has low saturation is arbitrary, but here, it is determined whether or not each pixel value of the block to be processed has low saturation, and the number of pixels with low saturation is determined. It is counted, and it is determined whether or not the block to be processed is a low-saturation image based on the magnitude of the count value.
  • each process of steps S341 to S345 is executed in the same manner as each process of steps S171 to S175 of FIG.
  • step S345 If it is determined by the process of step S345 that the equation (2) is true, that is, the count value cnt is larger than the threshold value for the predetermined count value, the process proceeds to step S346. In this case, the low saturation determination unit 351 determines that the processing target block has low saturation.
  • step S346 the flag generation unit 352 sets the value of the flag information chroma_palette_flag to "1". That is, a palette mode is applied to the low-saturation block, which indexes and encodes the color components of the input image.
  • step S345 of FIG. 14 when the equation (2) is false, that is, when it is determined that the count value cnt is equal to or less than the threshold value for the predetermined count value, the process proceeds to step S347.
  • the low saturation determination unit 351 determines that the processing target block is not low saturation.
  • step S347 the flag generation unit 352 sets the value of the flag information chroma_palette_flag to "0". That is, a normal mode in which the predicted residuals of the color components of the input image are encoded is applied to the low-saturation block.
  • the threshold value Thcnt for the count value described above may be variable depending on the coding conditions.
  • the threshold value Thcnt may be set according to the bit rate in the image coding apparatus 100, the quantization parameter in the coding block, and the like.
  • the low saturation determination unit 351 sets a threshold value as in the above equation (3). You may try to derive Thcnt.
  • the threshold Thcnt is when the target bit rate is sufficiently high, the quantization parameter of the coding block is sufficiently small, or the input image is easily coded and the actual bit rate is low. Can be increased (value increased). For example, when it is judged that the color noise due to the quantization error is difficult to be visually recognized even if the color difference component of the low saturation portion is encoded, the unnecessary deviation between the input image and the decoded image is eliminated by controlling the threshold value Thcnt. It can be suppressed.
  • the threshold Thcnt may be lowered (the value may be reduced).
  • the threshold values ThCbgrey and ThCrgrey for the pixel values described above can be controlled by the same concept.
  • the low saturation determination unit 351 (or control unit 101) may derive the threshold values ThCbgrey and ThCrgrey as in the above equations (4) and (5).
  • the thresholds ThCbgrey and ThCrgrey By deriving the thresholds ThCbgrey and ThCrgrey in this way, when the target bit rate is sufficiently high, the quantization parameter of the coding block is sufficiently small, or the input image is easily coded and the actual bit rate is low, The thresholds ThCbgrey and ThCrgrey can be lowered (decreased). For example, by controlling the thresholds ThCbgrey and ThCrgrey in this way when the quantization error is considered to be small, it is difficult (typically not to) determine the coded block as desaturated. This makes it possible to suppress unnecessary deviation between the input image and the decoded image.
  • the thresholds ThCbgrey and ThCrgrey can be increased (increased) when the target bit rate is low, the quantization parameter is large, or the actually generated bit rate is high and the amount of code that can be used is limited. it can.
  • the threshold values ThCbgrey and ThCrgrey when it is desired to prioritize the coding efficiency, by controlling the threshold values ThCbgrey and ThCrgrey in this way, it is possible to make it easier for the coded block to be determined to have low saturation. Therefore, the code amount of the color difference component is reduced, and the code can be assigned by concentrating on the luminance information to be prioritized.
  • control of the threshold value Thcnt for the count value and the control of the threshold values ThCbgrey and ThCrgrey for the pixel value may be used in combination. For example, either one may be selected and applied, or both may be applied.
  • CU division in the CTU is independent of the luminance component and the color difference component as in the coding method described in Non-Patent Document 1, and the CTU is determined to have low saturation close to achromatic color
  • the luminance component is CU-divided suitable for coding
  • a method of increasing the coding efficiency without CU-dividing the color difference component can also be adopted.
  • an image of the palette color corresponding to the index may be generated as the decoded image of the color component of the image.
  • the filtering process for the decoded image of the color component of the image may be omitted. By doing so, it is possible to suppress the generation of color noise due to the filtering process, and it is possible to suppress the reduction of the subjective image quality of the decoded image. Moreover, since the filtering process is omitted, an increase in load can be suppressed.
  • Image coding device The present technology described above can be applied to any device, device, system and the like.
  • the above-described technique can be applied to an image decoding device that decodes encoded data of image data in the present embodiment.
  • the configuration of the image decoding device in that case is the same as that of the first embodiment (for example, FIG. 6).
  • FIG. 15 is a block diagram showing a main configuration example of the low saturation processing unit 231 in this case.
  • the low saturation processing unit 231 includes a flag determination unit 451, a palette decoding unit 452, a filter control unit 453, and a decoding control unit 454.
  • the flag determination unit 451 performs processing related to determination of palette_flag and chroma_palette_flag which are control information (flag information). For example, the flag determination unit 451 can acquire the palette_flag and chroma_palette_flag supplied from the decoding unit 212. In addition, the flag determination unit 451 can acquire the run-length data supplied from the decoding unit 212. Further, the flag determination unit 451 can determine palette_flag and chroma_palette_flag. Further, the flag determination unit 451 can supply the determination result to the pallet decoding unit 452 to the decoding control unit 454. Further, the flag determination unit 451 can supply the run-length data to the palette decoding unit 452.
  • control information flag information
  • the palette decoding unit 452 can generate an image of the palette color corresponding to the restored index by using the same palette as the palette used at the time of encoding. Further, the palette decoding unit 452 can supply the generated palette color image as a decoded image to the in-loop filter unit 216.
  • This palette color image is supplied to the sorting buffer 217 from the in-loop filter unit 216 as a decoded image and accumulated. Further, the palette color image is supplied from the in-loop filter unit 216 to the frame memory 218 and stored, and is used for generating a predicted image to be used for subsequent decoding.
  • the pallet decoding unit 452 may have the same pallet as the pallet used by the coding side in advance.
  • the palette is defined in advance in the system.
  • the information of the palette set on the coding side may be included in the bit stream so as to be transmitted to the decoding side.
  • Palette information can be stored anywhere in the bitstream, such as sequence parameter sets, picture parameter sets, slice headers, and so on.
  • the pallet decoding unit 452 may acquire the pallet information obtained by decoding by the decoding unit 212.
  • control information can be supplied to the in-loop filter unit 216 to execute the filter processing on the decoded image of the color component.
  • the decoding control unit 454 controls the decoding unit 212 to the arithmetic unit 215 by supplying control information, and entropy decoding, inverse quantization, inverse orthogonal transformation, and decoding of the coded data of the color component. Processing such as image generation can be omitted. Further, the decoding control unit 454 can control the prediction unit 219 by supplying the control information, and can omit the generation of the prediction image.
  • the decoding control unit 454 can control the decoding unit 212 to entropy decode the coded data of the color component. That is, as in the case of the brightness component, the decoding unit 212 entropically decodes the coded data, the inverse quantization unit 213 inversely quantizes the quantization conversion coefficient level, and the inverse orthogonal transformation unit 214 has the conversion coefficient. Is inversely orthogonally converted, and the calculation unit 215 adds the predicted image to the predicted residual to generate a decoded image.
  • the image decoding device 200 can omit the processing of the low-saturation portion. Also, the generation of the predicted image can be omitted. Therefore, it is possible to suppress an increase in the decoding load.
  • the flag determination unit 451 can perform the above determination for each block (for example, for each CTU or each CU). That is, the palette decoding unit 452 to the decoding control unit 454 can perform each process for each block (for example, for each CTU or each CU).
  • the image decoding device 200 can perform processing suitable for the case of low saturation as described above only for the low saturation portion of the image. Therefore, by doing so, it is possible to further suppress the reduction in the subjective image quality of the decoded image as compared with the case where it is determined and controlled whether or not the entire image has low saturation. Moreover, the increase in the decoding load can be further suppressed. Furthermore, the reduction in coding efficiency can be further suppressed.
  • the decoding unit 212 decodes the coded data of the color component in step S401 to obtain the quantization conversion coefficient level.
  • step S402 the flag determination unit 451 has the value of the flag information palette_flag corresponding to the block to be processed extracted from the bit stream by the decoding of step S401 "0", and the value of the flag information chroma_palette_flag is "0". It is determined whether or not it is "0". The value of palette_flag is "0" and the value of chroma_palette_flag is "0", that is, the block to be processed must have a luminance component encoded in normal mode and an image with low saturation. If determined, the process proceeds to step S403.
  • the normal mode is applied to the color components.
  • the coded data of the predicted residuals of the color components is decoded. That is, the coded data of the predicted residual is included in the bit stream.
  • step S403 to S406 are executed in the same manner as each process of steps S233 to S236 of FIG.
  • the process of step S406 proceeds to step S410.
  • step S402 the value of palette_flag is "0" and the value of chroma_palette_flag is "1", or the value of palette_flag is "1", that is, the block to be processed has a luminance component. If is determined to be a low-saturation image encoded in the normal mode, or if it is determined that the luminance component is encoded in the palette mode, the process proceeds to step S407.
  • the palette mode is applied to the color components.
  • the color components of the input image are indexed and encoded. That is, the bitstream contains the coded data of the index instead of the coded data of the predicted residuals.
  • the palette decoding unit 452 restores the same palette (color correspondence table) used for indexing the color components, which is included in the bit stream and transmitted.
  • the pallet decoding unit 452 may set a predetermined pallet as the same pallet as the pallet used for indexing.
  • step S408 the palette decoding unit 452 performs run-length decoding of the run-length data and restores the index.
  • step S409 the palette decoding unit 452 uses the palette restored in step S407 to obtain a color (palette color) corresponding to the index restored in step S408, and generates an image (block) of the palette color. Insert the palette color image as the decoded image.
  • step S409 the process proceeds to step S410. That is, in the pallet mode, the processes of steps S407 to S409 are executed instead of the processes of steps S403 to S406 under the control of the filter control unit 453 and the decoding control unit 454.
  • step S410 the sorting buffer 217 and the frame memory 218 store the decoded image filtered by the process of step S406 or the decoded image of the palette color inserted by the process of step S409.
  • the above-mentioned low-saturation clip processing may be performed on the input image of the image coding apparatus 100 described in the first embodiment.
  • the configuration of the image coding device in that case is the same as that of the first embodiment (for example, FIG. 1).
  • FIG. 17 shows a main configuration example of the low saturation processing unit 131 in this case.
  • the low-saturation processing unit 131 in this case has a low-saturation clip processing unit 511 in addition to the configuration of FIG.
  • the low-saturation clip processing unit 511 performs processing related to the low-saturation clip processing. For example, the low-saturation clip processing unit 511 can acquire the input image supplied from the sorting buffer 111. Further, the low-saturation clip processing unit 511 can perform low-saturation clip processing on the input image.
  • the low-saturation clip processing unit 511 acquires the absolute difference between the achromatic color values Cbgrey and Crgrey, which are separately determined for each component, for the two components of the color difference components Cb and Cr in the input image, and the difference between the two components.
  • the Cb and Cr values of the pixels whose absolute values are equal to or less than the pixel value thresholds ThCbgrey and ThCrgrey, which are separately determined for each component, are replaced with the achromatic color values Cbgrey and Crgrey, respectively.
  • the low-saturation clip processing unit 511 supplies the color component obtained by clipping the low-saturation pixels in this way to the low-saturation determination unit 151.
  • the low saturation determination unit 151 to the filter control unit 155 perform each process on this image as described in the first embodiment.
  • the block that is not determined to be low-saturation in the low-saturation determination for each block and is encoded in the normal mode also has a value near the achromatic color value. Variation can be suppressed. Therefore, it is possible to increase the ease of coding and suppress the frequency and degree of occurrence of color noise.
  • the low-saturation determination unit 151 and the low-saturation clip processing unit 511 can share the determination result of whether or not the saturation is low.
  • the determination result (achromatic color determination map) of whether or not the saturation is low which is obtained by either one of the low saturation clip processing unit 511 and the low saturation determination unit 151, may be used in the other. By doing so, the redundancy of processing can be reduced, and the increase in load can be suppressed.
  • the low-saturation clip processing unit 511 executes the low-saturation clip process in step S501.
  • step S502 in FIG. 18 The flow of the low saturation processing (step S502 in FIG. 18) in this case is the same as in the case of the first embodiment, and each processing is executed in the same manner as the flowchart shown in FIG.
  • the low-saturation clip processing unit 511 determines in step S541 whether or not the pixel to be processed is a low-saturation pixel for the color component (Cb, Cr). ..
  • the method for determining whether or not the saturation is low is arbitrary. For example, the low saturation determination process described with reference to the flowchart of FIG. 5 may be performed to determine whether or not the saturation is low.
  • step S542 the low-saturation clip processing unit 511 replaces the pixel values (color components (Cb, Cr)) of the pixel to be processed with the achromatic color values Cbgrey and Crgrey.
  • step S543 the process proceeds to step S543.
  • step S541 If it is determined in step S541 that the pixel is not a low-saturation pixel, the process of step S542 is omitted, and the process proceeds to step S543.
  • step S543 the low-saturation clip processing unit 511 determines whether or not all the pixels of the block to be processed have been processed. If it is determined that there are unprocessed pixels, the process returns to step S541 and the subsequent processes are repeated. That is, each process of steps S541 to S543 is executed for each pixel of the block to be processed.
  • step S543 when it is determined in step S543 that all the pixels have been processed, the low-saturation clip processing is completed, and the processing returns to FIG.
  • the above-mentioned low-saturation clip processing may be performed on the input image of the image coding apparatus 100 described in the second embodiment.
  • the configuration of the image coding device 100 in that case is the same as that of the first embodiment (for example, FIG. 1).
  • FIG. 20 shows a main configuration example of the low saturation processing unit 131 in this case.
  • the low-saturation processing unit 131 in this case has a low-saturation clip processing unit 521 in addition to the configuration of FIG.
  • the low-saturation clip processing unit 521 performs processing related to the low-saturation clip processing in the same manner as the low-saturation clip processing unit 511 described above.
  • the low-saturation clip processing unit 521 can acquire the input image supplied from the sorting buffer 111. Further, the low-saturation clip processing unit 521 can perform low-saturation clip processing on the input image.
  • the low-saturation clip processing unit 521 acquires the absolute value of the difference between the two color difference components Cb and Cr in the input image and the achromatic color values Cbgrey and Crgrey separately determined for each component, and the difference between the two components.
  • the Cb and Cr values of the pixels whose absolute values are equal to or less than the pixel value thresholds ThCbgrey and ThCrgrey, which are separately determined for each component, are replaced with the achromatic color values Cbgrey and Crgrey, respectively.
  • the low-saturation clip processing unit 521 supplies the color component obtained by clipping the low-saturation pixels in this way to the low-saturation determination unit 351.
  • the low saturation determination unit 351 to the filter control unit 355 perform each process on this image as described in the second embodiment.
  • the block that is not determined to be low-saturation in the low-saturation determination for each block and is encoded in the normal mode also has a value near the achromatic color value. Variation can be suppressed. Therefore, it is possible to increase the ease of coding and suppress the frequency and degree of occurrence of color noise.
  • the low-saturation clip processing unit 511 executes the low-saturation clip process in step S571. This low-saturation clip process is executed in the same flow as the flowchart of FIG.
  • the above-mentioned threshold value Thcnt for the count value may be variable depending on the coding conditions. Further, the method for deriving the threshold value Thcnt for the count value is arbitrary, and may be the same as the method described in the first embodiment or the second embodiment, for example.
  • the threshold values ThCbgrey and ThCrgrey for the pixel value may be variable according to the coding conditions as in the case of the first embodiment and the second embodiment. Further, the method for deriving the threshold values ThCbgrey and ThCrgrey for the pixel value is arbitrary, and may be the same as the method described in the first embodiment or the second embodiment, for example.
  • control of the threshold value Thcnt for the count value and the control of the threshold values ThCbgrey and ThCrgrey for the pixel value may be used in combination. For example, either one may be selected and applied, or both may be applied.
  • the low-saturation clip process can be applied to images other than the input image of the image coding apparatus 100 as described above.
  • FIG. 22 is a block diagram showing a main configuration example of an image transmission system 600 that encodes, transmits, decodes, and outputs an input image.
  • the image transmission system 600 includes an image transmission device 601 that encodes and transmits an image, and an image reception device 602 that receives and decodes the coded data of the image.
  • the image transmission device 601 has an input image processing unit 611, a post-processing unit 612, an encoding unit 613, and a transmission unit 614.
  • the input image processing unit 611 performs arbitrary signal processing such as color adjustment, filter processing, demosaic processing, etc. on the input image.
  • the input image processing unit 611 supplies the signal-processed image to the post-processing unit 612.
  • the post-processing unit 612 performs arbitrary image processing on the image, such as super-resolution and cutting out a partial image.
  • the post-processing unit 612 supplies the image-processed image to the coding unit 613.
  • the coding unit 613 encodes the image and supplies it as a bit stream to the transmission unit 614. At that time, the coding unit 613 encodes the image by the method to which the present technology described above is applied.
  • the transmission unit 614 transmits the bit stream supplied from the encoding unit 613 to the image receiving device 602 via a predetermined communication medium.
  • the image receiving device 602 has a receiving unit 621, a decoding unit 622, an output image processing unit 623, and an output unit 624.
  • the receiving unit 621 receives the bit stream transmitted from the image transmitting device 601 and supplies it to the decoding unit 622.
  • the decoding unit 622 decodes the bit stream and generates a decoded image. At that time, the decoding unit 622 decodes the bit stream by the method to which the present technology described above is applied (that is, the decoding method corresponding to the coding method used by the coding unit 613). The decoding unit 622 supplies the decoded image to the output image processing unit 623.
  • the output image processing unit 623 performs arbitrary image processing on the decoded image, and supplies the image-processed decoded image to the output unit 624.
  • the output unit 624 outputs the decoded image to the outside of the image receiving device 602 (image transmission system 600).
  • the input image of the coding unit 613 may be subjected to the low saturation clip processing.
  • the low-saturation clip processing may be performed in the post-processing unit 612 before being input to the coding unit 613.
  • the determination result of whether or not the saturation is low in the low saturation clip processing is supplied to the coding unit 613 as a map for each block (achromatic color determination map), and is low by the low saturation processing unit 131. It may be used for saturation determination. As a result, it is possible to reduce the redundancy of counting the low-saturation pixels at a plurality of locations in the image transmission system 600.
  • threshold value Thcnt for the count value and the threshold values ThCbgrey and ThCrgrey for the pixel value are controlled according to the coding conditions and the like, these threshold values are set in the coding unit 613, and the set threshold values are set. It may be supplied to the post-processing unit 612 (the low-saturation clip processing performed in the post-processing unit 612) so that the threshold value is used in the low-saturation clip processing.
  • the low-saturation clipping process may be performed on the locally decoded image generated by the coding unit 613. By doing so, it is possible to suppress the propagation of low-saturation color noise through the predicted image. Further, in this case, the decoding unit 622 can also perform the same low-saturation clip processing on the decoded image. By doing so, the locally decoded image in the coding apparatus and the decoded image in the decoding apparatus can be made equal, and the occurrence of mismatch of the predicted image can be suppressed.
  • the coding unit 613 sets these threshold values and encodes the set threshold values. It may be supplied to the decoding unit 622, and the decoding unit 622 may perform decoding using the threshold value.
  • the output image processing unit 623 after the decoding unit 622 outputs may perform low-saturation clip processing on the decoded image. By doing so, superimposition of color noise such as quantization error is suppressed.
  • the coding unit 613 sets these threshold values and encodes the set threshold values.
  • the threshold value is restored by the decoding unit 622 and supplied to the output image processing unit 623 (low-saturation clip processing performed in the), and the threshold value is used in the low-saturation clip processing. It may be done.
  • FIG. 25 is a block diagram showing a configuration example of computer hardware that executes the above-mentioned series of processes programmatically.
  • the CPU Central Processing Unit
  • ROM ReadOnly Memory
  • RAM RandomAccessMemory
  • the input / output interface 910 is also connected to the bus 904.
  • An input unit 911, an output unit 912, a storage unit 913, a communication unit 914, and a drive 915 are connected to the input / output interface 910.
  • the input unit 911 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, and the like.
  • the output unit 912 includes, for example, a display, a speaker, an output terminal, and the like.
  • the storage unit 913 is composed of, for example, a hard disk, a RAM disk, a non-volatile memory, or the like.
  • the communication unit 914 includes, for example, a network interface.
  • the drive 915 drives a removable medium 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 901 loads the program stored in the storage unit 913 into the RAM 903 via the input / output interface 910 and the bus 904 and executes the above-described series. Is processed.
  • the RAM 903 also appropriately stores data and the like necessary for the CPU 901 to execute various processes.
  • the program executed by the computer can be recorded and applied to the removable media 921 as a package media or the like, for example.
  • the program can be installed in the storage unit 913 via the input / output interface 910 by mounting the removable media 921 in the drive 915.
  • This program can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting. In that case, the program can be received by the communication unit 914 and installed in the storage unit 913.
  • this program can be installed in advance in ROM 902 or storage unit 913.
  • the data unit in which the various information described above is set and the data unit targeted by the various processes are arbitrary and are not limited to the above-mentioned examples.
  • these information and processes are TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and subblock, respectively.
  • Blocks, tiles, slices, pictures, sequences, or components, or data in those data units may be targeted.
  • this data unit can be set for each information or process, and it is not necessary that the data unit of all the information or process is unified.
  • the storage location of these information is arbitrary, and may be stored in the header, parameter set, or the like of the above-mentioned data unit. Further, it may be stored in a plurality of places.
  • control information related to the present technology described in each of the above embodiments may be transmitted from the coding side to the decoding side.
  • control information for example, enabled_flag
  • control information for example, present_flag
  • control information indicating an object to which the present technology is applied (or an object to which the present technology is not applied
  • control information may be transmitted that specifies the block size (upper and lower limits, or both) to which the present technology is applied (or allowed or prohibited), frames, components, layers, and the like.
  • This technique can be applied to any image coding / decoding method. That is, as long as it does not contradict the above-mentioned technology, the specifications of various processes related to image coding / decoding such as conversion (inverse transformation), quantization (inverse quantization), coding (decoding), and prediction are arbitrary. It is not limited to the example. In addition, some of these processes may be omitted as long as they do not contradict the present technology described above.
  • this technology can be applied to a multi-viewpoint image coding / decoding system that encodes / decodes a multi-viewpoint image including images of a plurality of viewpoints (views).
  • the present technology may be applied to the coding / decoding of each viewpoint (view).
  • this technology is applied to a hierarchical image coding (scalable coding) / decoding system that encodes / decodes a hierarchical image that is layered (layered) so as to have a scalability function for a predetermined parameter. can do.
  • the present technology may be applied to the coding / decoding of each layer.
  • the image coding device 100 and the image decoding device 200 have been described as application examples of the present technology, but the present technology can be applied to any configuration.
  • this technology is a transmitter or receiver (for example, a television receiver or mobile phone) for satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, or It can be applied to various electronic devices such as devices (for example, hard disk recorders and cameras) that record images on media such as optical disks, magnetic disks, and flash memories, and reproduce images from these storage media.
  • devices for example, hard disk recorders and cameras
  • a processor as a system LSI (Large Scale Integration) or the like (for example, a video processor), a module using a plurality of processors (for example, a video module), a unit using a plurality of modules (for example, a video unit)
  • a processor as a system LSI (Large Scale Integration) or the like
  • a module using a plurality of processors for example, a video module
  • a unit using a plurality of modules for example, a video unit
  • it can be implemented as a configuration of a part of the device, such as a set (for example, a video set) in which other functions are added to the unit.
  • this technology can be applied to a network system composed of a plurality of devices.
  • the present technology may be implemented as cloud computing that is shared and jointly processed by a plurality of devices via a network.
  • this technology is implemented in a cloud service that provides services related to images (moving images) to arbitrary terminals such as computers, AV (AudioVisual) devices, portable information processing terminals, and IoT (Internet of Things) devices. You may try to do it.
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
  • Systems, devices, processing units, etc. to which this technology is applied can be used in any field such as transportation, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, home appliances, weather, nature monitoring, etc. .. Moreover, the use is arbitrary.
  • this technology can be applied to systems and devices used for providing ornamental contents and the like.
  • the present technology can be applied to systems and devices used for traffic such as traffic condition supervision and automatic driving control.
  • the present technology can be applied to systems and devices used for security purposes.
  • the present technology can be applied to a system or device used for automatic control of a machine or the like.
  • the present technology can be applied to systems and devices used for agriculture and livestock industry.
  • the present technology can also be applied to systems and devices for monitoring natural conditions such as volcanoes, forests and oceans, and wildlife. Further, for example, the present technology can be applied to systems and devices used for sports.
  • the "flag” is information for identifying a plurality of states, and is not only information used for identifying two states of true (1) or false (0), but also three or more states. It also contains information that can identify the state. Therefore, the value that this "flag” can take may be, for example, 2 values of 1/0 or 3 or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be 1 bit or a plurality of bits.
  • the identification information (including the flag) is assumed to include not only the identification information in the bitstream but also the difference information of the identification information with respect to a certain reference information in the bitstream. In, the "flag” and “identification information” include not only the information but also the difference information with respect to the reference information.
  • various information (metadata, etc.) related to the coded data may be transmitted or recorded in any form as long as it is associated with the coded data.
  • the term "associate" means, for example, to make the other data available (linkable) when processing one data. That is, the data associated with each other may be combined as one data or may be individual data.
  • the information associated with the coded data (image) may be transmitted on a transmission path different from the coded data (image).
  • the information associated with the coded data (image) may be recorded on a recording medium (or another recording area of the same recording medium) different from the coded data (image). Good.
  • this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part within the frame.
  • the embodiment of the present technology is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present technology.
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configurations described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
  • a configuration other than the above may be added to the configuration of each device (or each processing unit).
  • a part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit). ..
  • the above-mentioned program may be executed in any device.
  • the device may have necessary functions (functional blocks, etc.) so that necessary information can be obtained.
  • each step of one flowchart may be executed by one device, or may be shared and executed by a plurality of devices.
  • the plurality of processes may be executed by one device, or may be shared and executed by a plurality of devices.
  • a plurality of processes included in one step can be executed as processes of a plurality of steps.
  • the processes described as a plurality of steps can be collectively executed as one step.
  • the processing of the steps for writing the program may be executed in chronological order in the order described in the present specification, and the calls may be made in parallel or in parallel. It may be executed individually at the required timing such as when it is broken. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the above-mentioned order. Further, the processing of the step for writing this program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
  • a plurality of technologies related to this technology can be independently implemented independently as long as there is no contradiction.
  • any plurality of the present technologies can be used in combination.
  • some or all of the techniques described in any of the embodiments may be combined with some or all of the techniques described in other embodiments. It is also possible to carry out a part or all of any of the above-mentioned techniques in combination with other techniques not described above.
  • the present technology can also have the following configurations.
  • a low-saturation determination unit that determines whether or not the image to be encoded has low saturation, and When the low-saturation determination unit determines that the image is low-saturation, control information generation that generates control information indicating whether to apply a mode in which the coding of the residuals of the color components of the image is omitted is applied.
  • Department and An image processing apparatus including a bitstream generation unit that generates a bitstream including the control information generated by the control information generation unit.
  • the low-saturation determination unit determines that the image is low-saturation, it is controlled so as to omit the coefficient conversion, quantization, and reversible coding of the residual of the color component of the image.
  • the control information generation unit generates the control information indicating whether to apply the skip mode that omits the coefficient conversion, quantization, and lossless coding of the residual to the color component of the image (1).
  • the image processing apparatus according to. (3) When the low-saturation determination unit determines that the image is low-saturation, an achromatic color generation unit that generates an achromatic image is further provided as a locally decoded image of the color component of the image (3).
  • the image processing apparatus according to 2).
  • a filter control unit that controls not to omit the filter processing for the locally decoded image of the color component of the image is further provided.
  • the image processing apparatus determines that the image is low-saturation, it is controlled so as to omit the coefficient conversion, quantization, and reversible coding of the residual of the color component of the image.
  • Coding control unit and A palette coding unit that converts the color components of the image into indexes using a predetermined color correspondence table and encodes the indexes is further provided.
  • the control information generation unit indicates whether to apply a palette mode for encoding the index to the color component of the image by omitting the coefficient conversion, quantization, and lossless coding of the residual.
  • the image processing apparatus according to (1), which generates information.
  • the palette coding unit uses the palette color corresponding to the index as a locally decoded image of the color component of the image.
  • the image processing apparatus according to (5) which generates an image.
  • a filter control unit that controls not to omit the filter processing for the locally decoded image of the color component of the image is further provided (7).
  • the low-saturation determination unit determines whether or not each pixel value of the block is low-saturation using a threshold value for the pixel value, and counts the pixels determined to be low-saturation.
  • the image processing apparatus according to (8) wherein it is determined whether or not the block is desaturated by using a threshold value for a count value.
  • the low-saturation determination unit determines whether or not each pixel value of the block has low saturation by using the threshold value for the pixel value according to the coding condition, and responds to the coding condition.
  • the image processing apparatus according to (10), wherein the coding condition includes at least one of a bit rate and a quantization parameter.
  • the image processing apparatus according to any one of (1) to (11), further comprising a clip processing unit that clips a low-saturation pixel value of a color component of the image to an achromatic color value.
  • An image processing method that generates a bit stream including the generated control information.
  • a mode determination unit that determines whether to apply a mode that omits decoding of the coded data of the residuals of the color components of the image to be encoded based on the control information included in the bit stream.
  • An image processing device including a decoding control unit that controls so as to omit decoding of coded data of color components of the image when the mode determination unit determines that the mode is applied.
  • the mode determination unit determines that the skip mode for omitting the reversible decoding, inverse quantization, and inverse coefficient conversion of the residual coded data is applied to the color component of the image.
  • an achromatic color generation unit for generating an achromatic image is further provided.
  • Processing equipment (16) When the mode determination unit determines that the skip mode is applied to the color component of the image, the mode determination unit further includes a filter control unit that controls so as to omit the filter processing for the decoded image (15). ).
  • the image processing apparatus omits reversible decoding, inverse quantization, and inverse coefficient conversion of the residual coded data for the color components of the image, and uses a predetermined color correspondence table.
  • the coded data of the index is decoded and the index corresponds to the index as the decoded image of the color component of the image. It also has a palette decoding unit that generates palette color images.
  • the mode determination unit determines that the palette mode is applied to the color component of the image
  • the decoding control unit omits the reversible decoding, the inverse quantization, and the inverse coefficient conversion.
  • the mode determination unit determines that the palette mode is applied to the color component of the image
  • the mode determination unit further includes a filter control unit that controls so as to omit the filter processing for the decoded image (17). ).
  • the image processing apparatus applies the first control information indicating whether the palette mode is applied to the brightness component and the color component of the image, and the palette mode to the color component of the image.
  • the image processing apparatus according to (17) or (18), which determines whether to apply the palette mode to the color components of the image based on both the second control information indicating the above.

Landscapes

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

Abstract

本開示は、主観画質の低減を抑制することができるようにする画像処理装置および方法に関する。 符号化対象の画像が低彩度であるか否かを判定し、その画像が低彩度であると判定された場合、その画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成し、その生成された制御情報を含むビットストリームを生成する。また、ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定し、そのモードを適用すると判定された場合、その画像の色成分の符号化データの復号を省略するように制御する。本開示は、例えば、画像処理装置、画像符号化装置、または画像復号装置等に適用することができる。

Description

画像処理装置および方法
 本開示は、画像処理装置および方法に関し、特に、主観画質の低減を抑制することができるようにした画像処理装置および方法に関する。
 彩度の低いカラー画像に対して従来の画像符号化や復号化処理を適用した場合、復号画像において量子化誤差が色ノイズとして視認され、主観画質が低減するおそれがあった。ところで、低彩度部の色ノイズによる主観画質の低減を抑制するために、無彩色に近い画素を無彩色化する方法が考えられた(例えば、特許文献1および特許文献2参照)。
特開昭60-171888号公報 特開昭62-220087号公報
 しかしながら、このような手法を適用して無彩色化された入力画像を符号化・復号するとしても、色差成分の符号化・復号化処理により量子化誤差が発生し、その量子化誤差によって復号画像に再度色ノイズが重畳し、主観画質が低減するおそれがあった。
 本開示は、このような状況に鑑みてなされたものであり、主観画質の低減を抑制することができるようにするものである。
 本技術の一側面の画像処理装置は、符号化対象の画像が低彩度であるか否かを判定する低彩度判定部と、前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成する制御情報生成部と、前記制御情報生成部により生成された前記制御情報を含むビットストリームを生成するビットストリーム生成部とを備える画像処理装置である。
 本技術の一側面の画像処理方法は、符号化対象の画像が低彩度であるか否かを判定し、前記画像が低彩度であると判定された場合、前記画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成し、生成された前記制御情報を含むビットストリームを生成する画像処理方法である。
 本技術の他の側面の画像処理装置は、ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定するモード判定部と、前記モード判定部により前記モードを適用すると判定された場合、前記画像の色成分の符号化データの復号を省略するように制御する復号制御部とを備える画像処理装置である。
 本技術の他の側面の画像処理方法は、ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定し、前記モードを適用すると判定された場合、前記画像の色成分の符号化データの復号を省略するように制御する画像処理方法である。
 本技術の一側面の画像処理装置および方法においては、符号化対象の画像が低彩度であるか否かが判定され、その画像が低彩度であると判定された場合、その画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報が生成され、その生成された制御情報を含むビットストリームが生成される。
 本技術の他の側面の画像処理装置および方法においては、ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかが判定され、そのモードを適用すると判定された場合、その画像の色成分の符号化データの復号を省略するように制御される。
画像符号化装置の主な構成例を示すブロック図である。 低彩度処理部の主な構成例を示すブロック図である。 符号化処理の流れの例を示すフローチャートである。 色成分符号化処理の流れの例を説明するフローチャートである。 低彩度判定処理の流れの例を説明するフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 低彩度処理部の主な構成例を示すブロック図である。 復号処理の流れの例を示すフローチャートである。 色成分復号処理の流れの例を示すフローチャートである。 パレットモードについて説明する図である。 パレットモードについて説明する図である。 低彩度処理部の主な構成例を示すブロック図である。 色成分符号化処理の流れの例を説明するフローチャートである。 低彩度判定処理の流れの例を説明するフローチャートである。 低彩度処理部の主な構成例を示すブロック図である。 色成分復号処理の流れの例を示すフローチャートである。 低彩度処理部の主な構成例を示すブロック図である。 色成分符号化処理の流れの例を説明するフローチャートである。 低彩度クリップ処理の流れの例を説明するフローチャートである。 低彩度処理部の主な構成例を示すブロック図である。 色成分符号化処理の流れの例を示すフローチャートである。 画像伝送システムの主な構成例を示すブロック図である。 画像伝送システムの主な構成例を示すブロック図である。 画像伝送システムの主な構成例を示すブロック図である。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.技術内容・技術用語をサポートする文献等
2.低彩度画像の符号化・復号
3.第1の実施の形態(スキップモード)
4.第2の実施の形態(パレットモード)
5.第3の実施の形態(色クリップ処理)
6.付記
 <1.技術内容・技術用語をサポートする文献等>
 本技術で開示される範囲は、実施例に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
 特許文献1:(上述)
 特許文献2:(上述)
 非特許文献1:Benjamin Bross, Jianle Chen, Shan Liu, "Versatile Video Coding (Draft 6)", JVET-O2001-vE, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Gothenburg, SE, 3-12 July 2019
 非特許文献2:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
 非特許文献3:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
 つまり、上述の特許文献および非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献3に記載されているQuad-Tree Block Structure、非特許文献1に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
 また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献1乃至非特許文献3に記載のTB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
 また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
 また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
 <2.低彩度画像の符号化・復号>
  <カラー画像の符号化>
 従来、静止画像および動画像の符号化において、符号化装置に入力される画像は輝度成分と色成分を持つカラー画像であることが一般的である。例えば、上述の非特許文献2や非特許文献3に記載の符号化・復号においては、復号化装置が扱う画像のカラーフォーマットを指定するフラグ、即ち、画像の輝度成分と色差成分の構成比を示すフラグが、シーケンスで1回だけ指定される規定となっている。符号化装置もこの規定に適合する符号を生成する必要がある。
 ここで輝度成分と色成分の構成比は、例えば、輝度(Y)と色差2成分(Cb, Cr)の成分比で表される(例えば、4:4:4, 4:2:2, 4:2:0, 4:0:0等)。例えば、4:0:0は、画像は単色で輝度成分のみを持つモノクローム画像であることを表す。それ以外の4:4:4や4:2:2や4:2:0は、画像が輝度成分と色成分(例えば色差成分)を持つカラー画像であることを表す。
 色差を構成する2成分(Cb, Cr)は、カラー画像に固有であり、入力画像の符号化および復号において輝度成分(Y)と独立に処理を受ける。処理の概要は輝度成分と色成分で共通している。典型的な符号化フローにおいては、入力画像と予測画像の差分画像に対して直交変換、量子化、エントロピ符号化の各処理を逐次行うことで符号化データが得られる。同様に、典型的な復号フローにおいては、符号化データに対してエントロピ復号、逆量子化、逆直交変換の各処理を逐次行い、予測画像に加算することで復号画像が得られる。
 ここで予測画像は、過去画像或いは現画像の符号化・復号済みの画像から標準規格によって定められた方法で生成する画像である。符号化・復号処理においては、順逆の直交変換、および順逆の量子化において情報の欠損が発生し、復号画像は入力画像からの誤差を持つこととなる(非可逆である)。また、符号量は典型的には量子化パラメータ等と呼ばれるパラメータで制御され、上記誤差は量子化誤差と呼ばれることがある。一般的に符号量が小さくなるほど量子化誤差は増大する関係となる。
  <低彩度画像の符号化>
 ところで、カラー画像に対する画像符号化および復号を、彩度の低い入力画像に対して適用した場合、量子化誤差が色ノイズとして視認され、人間の目による主観画質を低減させるおそれがあった。ここで彩度は顕色系における属性の1つで色の鮮やかさを表す指標である。彩度が低いことは即ち、白-グレー-黒の無彩色(グレースケール)に近い色であることを表す。彩度は上述のカラー画像においては色成分(例えば色差成分)と関連しており、典型的な色空間においては、色差成分が画素振幅の中間値を取る場合が無彩色を表す。例えば画素深度が8ビット、即ち0乃至255の値域を持つ場合、色差2成分(Cb, Cr)がそれぞれ128の値を取る画素が無彩色である。
 無彩色は輝度成分(Y)の大小がグレーの濃淡を表すグレースケールであり、輝度値が増加するに従い白に近く、減少するに従い黒に近くなる。この無彩色に比して色差成分が僅かな誤差を持った場合、着色が色ノイズとして視認されやすい。具体的には、色差成分が中間値より小さい値を取ると緑色の着色が、中間値より大きい値を取ると赤色の着色が現れやすい。例えば画素深度が8ビットの場合、一般的に、色差成分画素値で3から4の誤差があると着色が識別され得る。
 画像符号化処理の過程においては、発生する量子化誤差が上述の無彩色への着色が識別され得る誤差値を超えることは容易に起こり得る。例えば、動画符号化処理の典型的な用途であるストリーミング等の低ビットレートアプリケーションにおいては、量子化誤差が画素振幅の10%を超えることも珍しくない。
 また、例えば、上述の各日特許文献に記載の画像符号化処理の場合、入力画像の高周波成分が削減される。そのため、符号化ブロック内の詳細情報が失われ、復号画像の少なくない部分が平坦な単色のブロックとして見えることが多い。その結果、入力画像が例えば壁や床、天井、道路、塀や影のような無彩色に近い低彩度の部分を含む場合、画像符号化処理後の復号画像の当該部分が、無彩色の中に緑着色、赤着色のブロックが入り乱れた、違和感を伴う画像となることがある。このような低彩度部分は、自然画像の広範囲にかつ高頻度に現れるため、画像符号化・復号により、復号画像の主観画質への悪影響として視認される機会が多い。
   <低彩度クリップ処理>
 このような低彩度部分での色ノイズが高彩度部分での場合に比べて視認されやすい現象は、画像符号化処理に固有のものではなく、自然画像を扱うカメラシステムでの処理全般において存在しているものである。その対策として、例えば、特許文献1や特許文献2に記載のように、無彩色に近い画素を無彩色化する方法が考えられた。具体的には、色差成分が無彩色近傍の低彩度と判定された画素については、色差成分が無彩色にクリップされる。このような処理は、低彩度信号抑圧、低彩度クリップ等の名称で呼ばれており、適切に実施することで低彩度部の色ノイズが軽減され、画質向上に寄与する。
 しかしながら、このような手法を適用して無彩色化された入力画像を符号化・復号するとしても、色差成分の符号化・復号化処理により量子化誤差が発生し、その量子化誤差によって復号画像に再度色ノイズが重畳し、主観画質が低減するおそれがあった。
 また、無彩色化され固定値ブロックとなっている色差成分を符号化するために、自然画像を符号化するのと同等の予測モード情報と画像残差を表現するための符号が発生する冗長性が存在し、不要に符号化・復号の負荷が増大するおそれがあった。非特許文献1乃至非特許文献3のいずれかに記載の符号化・復号の場合、カラーフォーマット指定はシーケンス単位若しくは画面単位となり、画面内の一部分の符号化ブロックのみをモノクローム指定することができなかった。そのため、入力画像の一部に低彩度部分が含まれ、その部分のみが無彩色化されている場合であっても、符号化・復号においては、その入力画像を一般的なカラー画像として取り扱う必要があった。そのため、符号化・復号の負荷が不要に増大するおそれがあった。
   <色成分用の符号化・復号モードの導入>
 そこで、低彩度の画像の場合、色成分の符号化・復号を、輝度成分の符号化・復号とは独立した方法で行うようにする。つまり、色成分の符号化・復号のモードを、輝度成分の符号化・復号のモードとは独立に設定することができるようにする。
 例えば、画像の符号化において、符号化対象の画像が低彩度であるか否かを判定し、その画像が低彩度であると判定された場合、その画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成し、その生成された制御情報を含むビットストリームを生成する。
 例えば、画像の符号化を行う画像処理装置において、符号化対象の画像が低彩度であるか否かを判定する低彩度判定部と、その低彩度判定部によりその画像が低彩度であると判定された場合、その画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成する制御情報生成部と、その制御情報生成部により生成されたその制御情報を含むビットストリームを生成するビットストリーム生成部とを備える。
 また、例えば、画像の復号において、ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定し、そのモードを適用すると判定された場合、その画像の色成分の符号化データの復号を省略するように制御する。
 例えば、画像の符号化データの復号を行う画像処理装置において、ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定するモード判定部と、そのモード判定部によりそのモードを適用すると判定された場合、その画像の色成分の符号化データの復号を省略するように制御する復号制御部とを備えるようにする。
 このようにすることにより、復号画像の主観画質の低減を抑制することができる。また、符号化・復号の負荷の増大を抑制することができる。
 <3.第1の実施の形態>
  <スキップモードの適用>
 例えば、画像の符号化において、その画像が低彩度であると判定された場合、その画像の色成分に対して、その画像の色成分の残差の係数変換、量子化、および可逆符号化を省略するスキップモードを適用し、さらにそのスキップモードを適用するかを示す制御情報を生成し、その制御情報を含むビットストリームを生成するようにしてもよい。
 このようにすることにより、復号画像の主観画質の低減を抑制することができる。また、負荷の増大を抑制することができる。
  <局所復号画像に無彩色値挿入>
 また、画像の符号化において、その画像が低彩度であると判定された場合、その画像の色成分の局所復号画像として、無彩色の画像を生成するようにしてもよい。つまり、画像の符号化において、無彩色の画像を局所復号画像として利用するようにしてもよい。
 このようにすることにより、予測による量子化誤差の伝搬を抑制することができ、復号画像の主観画質の低減を抑制することができる。
  <フィルタ処理の制御>
 また、画像の符号化において、その画像が低彩度であると判定された場合、その画像の色成分の局所復号画像に対するフィルタ処理を省略してもよい。このようにすることにより、フィルタ処理による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、フィルタ処理を省略するので、負荷の増大を抑制することができる。
  <低彩度判定>
 また、画像が低彩度であるか否かの判定は、画像のブロック毎に行うようにしてもよい。その際、画素値用の閾値を用いて処理対象ブロックの各画素値が低彩度であるか否かを判定し、低彩度と判定された画素をカウントし、カウント値用の閾値を用いてその処理対象ブロックが低彩度であるか否かを判定するようにしてもよい。その画素値用の閾値は、符号化条件に応じたものであってもよい。同様に、カウント値用の閾値は、符号化条件に応じたものであってもよい。なお、この符号化条件は、ビットレートを含むようにしてもよい。また、この符号化条件は、量子化パラメータを含むようにしてもよい。もちろん、符号化条件が、ビットレートと量子化パラメータの両方を含んでいてもよい。
 このようにすることにより、符号化効率の低減を抑制することができる。
  <画像符号化装置>
 以上に説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データを符号化する画像符号化装置に、上述した本技術を適用することができる。
 図1は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図1に示される画像符号化装置100は、動画像の画像データを符号化する装置である。例えば、画像符号化装置100は、非特許文献1乃至非特許文献3に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
 なお、図1においては、処理部やデータの流れ等の主なものを示しており、図1に示されるものが全てとは限らない。つまり、画像符号化装置100において、図1においてブロックとして示されていない処理部が存在したり、図1において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置100内の処理部等を説明する他の図においても同様である。
 図1に示されるように画像符号化装置100は、制御部101、並べ替えバッファ111、演算部112、直交変換部113、量子化部114、符号化部115、および蓄積バッファ116を有する。また、画像符号化装置100は、逆量子化部117、逆直交変換部118、演算部119、インループフィルタ部120、フレームメモリ121、予測部122、およびレート制御部123を有する。さらに、画像符号化装置100は、低彩度処理部131を有する。
   <制御部>
 制御部101は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ111により保持されている動画像データを処理単位のブロック(CU,PU, 変換ブロックなど)へ分割する。また、制御部301は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
 これらの符号化パラメータの詳細については後述する。制御部101は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
 ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部115と予測部122とに供給される。変換情報Tinfoは、符号化部115、直交変換部113、量子化部114、逆量子化部117、および逆直交変換部118に供給される。フィルタ情報Finfoは、インループフィルタ部120に供給される。
   <並べ替えバッファ>
 画像符号化装置100には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ111は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ111は、制御部101の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ111は、処理後の各入力画像を低彩度処理部131に供給する。
   <演算部>
 演算部112は、低彩度処理部131から供給される処理単位のブロックに対応する画像から、予測部122より供給される予測画像を減算して、予測残差を導出し、それを直交変換部113に供給する。
   <直交変換部>
 直交変換部113は、演算部112から供給される予測残差と、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差に対して直交変換を行い、変換係数を導出する。直交変換部113は、その得られた変換係数を量子化部114に供給する。
   <量子化部>
 量子化部114は、直交変換部113から供給される変換係数と、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数をスケーリング(量子化)する。なお、この量子化のレートは、レート制御部123により制御される。量子化部114は、このような量子化により得られた量子化後の変換係数(量子化変換係数レベルとも称する)を、符号化部115および逆量子化部117に供給する。
   <符号化部>
 符号化部115は、量子化部114から供給された量子化変換係数レベルと、制御部101から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部120から供給されるフィルタ係数等のフィルタに関する情報と、予測部122から供給される最適な予測モードに関する情報とを入力とする。
 また、符号化部115は、低彩度処理部131から供給される、色成分の符号化のモードを示す制御情報(例えば、フラグ情報等)を取得する。
 符号化部115は、量子化変換係数レベルに対して、例えばCABAC(Context-based Adaptive Binary Arithmetic Code)やCAVLC(Context-based Adaptive Variable Length Code)等のエントロピ符号化(可逆符号化)を行い、ビット列(符号化データ)を生成する。
 また、符号化部115は、その量子化変換係数レベルから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
 さらに、符号化部115は、インループフィルタ部120から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部122から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部115は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
 また、符号化部115は、低彩度処理部131から供給される制御情報を符号化し、ビット列を生成する。この制御情報の内容については後述する。
 また、符号化部115は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部115は、その符号化データを蓄積バッファ116に供給する。
   <蓄積バッファ>
 蓄積バッファ116は、符号化部115において得られた符号化データを、一時的に保持する。蓄積バッファ116は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置100の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ116は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
   <逆量子化部>
 逆量子化部117は、逆量子化に関する処理を行う。例えば、逆量子化部117は、量子化部114から供給される量子化変換係数レベルと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部114において行われる量子化の逆処理である。逆量子化部117は、このような逆量子化により得られた変換係数を、逆直交変換部118に供給する。
   <逆直交変換部>
 逆直交変換部118は、逆直交変換に関する処理を行う。例えば、逆直交変換部118は、逆量子化部117から供給される変換係数と、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数に対して逆直交変換を行い、予測残差を導出する。なお、この逆直交変換は、直交変換部113において行われる直交変換の逆処理である。逆直交変換部118は、このような逆直交変換により得られた予測残差を演算部119に供給する。なお、逆直交変換部118は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部118については、復号側について行う説明(後述する)を適用することができる。
   <演算部>
 演算部119は、逆直交変換部118から供給される予測残差と、予測部122から供給される予測画像とを入力とする。演算部119は、その予測残差と、その予測残差に対応する予測画像とを加算し、局所復号画像を導出する。演算部119は、導出した局所復号画像をインループフィルタ部120およびフレームメモリ121に供給する。
   <インループフィルタ部>
 インループフィルタ部120は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部120は、演算部119から供給される局所復号画像と、制御部101から供給されるフィルタ情報Finfoと、並べ替えバッファ111から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部120に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部120に入力されるようにしてもよい。
 インループフィルタ部120は、そのフィルタ情報Finfoに基づいて、局所復号画像に対して適宜フィルタ処理を行う。インループフィルタ部120は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
 例えば、インループフィルタ部120は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用することができる。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 もちろん、インループフィルタ部120が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部120がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部120は、フィルタ処理された局所復号画像をフレームメモリ121に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部120は、そのフィルタに関する情報を符号化部115に供給する。
   <フレームメモリ>
 フレームメモリ121は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ121は、演算部119から供給される局所復号画像や、インループフィルタ部120から供給されるフィルタ処理された局所復号画像を入力とし、それを保持(記憶)する。また、フレームメモリ121は、その局所復号画像を用いてピクチャ単位毎の復号画像を再構築し、保持する(フレームメモリ121内のバッファへ格納する)。フレームメモリ121は、予測部122の要求に応じて、その復号画像(またはその一部)を予測部122に供給する。
   <予測部>
 予測部122は、予測画像の生成に関する処理を行う。例えば、予測部122は、制御部101から供給される予測モード情報Pinfoと、並べ替えバッファ111から供給される入力画像(元画像)と、フレームメモリ121から読み出す復号画像(またはその一部)を入力とする。予測部122は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像を参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像を生成する。予測部122は、生成した予測画像を演算部112および演算部119に供給する。また、予測部122は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部115に供給する。
   <レート制御部>
 レート制御部123は、レート制御に関する処理を行う。例えば、レート制御部123は、蓄積バッファ116に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部114の量子化動作のレートを制御する。
   <低彩度処理部>
 低彩度処理部131は、低彩度の画像に関する処理を行う。例えば、低彩度処理部131は、並べ替えバッファ111から供給される入力画像を取得する。低彩度処理部131は、その入力画像が低彩度であるか否かを判定し、その判定結果に応じて色成分の符号化のモードを示す制御情報を生成する。低彩度処理部131は、その制御情報を符号化部115に供給する。
 また、低彩度処理部131は、その判定結果に応じて、演算部112乃至レート制御部123等の各処理部を制御し、色成分の符号化を制御する。つまり、低彩度処理部131は、各処理部に、上述した制御情報に示される符号化のモードに応じた処理を行わせる。
 さらに、低彩度処理部131は、その判定結果に応じて、局所復号画像として、無彩色値の画素からなる無彩色の画像を生成する。低彩度処理部131は、生成した無彩色の画像をインループフィルタ部120に供給する。
 また、低彩度処理部131は、その判定結果に応じて、インループフィルタ部120を制御し、色成分の局所復号画像に対するフィルタ処理の実行を制御する。
  <低彩度処理部>
 図2は、低彩度処理部131の主な構成例を示すブロック図である。図2に示されるように、低彩度処理部131は、低彩度判定部151、フラグ生成部152、符号化制御部153、無彩色生成部154、およびフィルタ制御部155を有する。
 低彩度判定部151は、入力画像が低彩度(無彩色値または無彩色値近傍の値)であるか否かの判定に関する処理を行う。例えば、低彩度判定部151は、並べ替えバッファ111から供給される入力画像を取得することができる。また、低彩度判定部151は、その入力画像が低彩度であるか否かを判定することができる。
 さらに、低彩度判定部151は、その判定結果をフラグ生成部152に供給することができる。また、低彩度判定部151は、フラグ生成部152からその判定結果に対応する値のフラグ情報chroma_skip_flagを取得することができる。
 低彩度判定部151は、そのフラグ情報chroma_skip_flagを入力画像が低彩度であるか否かの判定結果としてフラグ生成部152乃至フィルタ制御部155に供給することができる。また、低彩度判定部151は、入力画像を符号化制御部153に供給することができる。
 なお、本明細書において「低彩度の画像」とは、全画素の画素値が無彩色値若しくは無彩色値近傍の値である画像、または、全画素の画素値が無彩色値若しくは無彩色値近傍の値であるとみなされる画像(つまり、全画素の画素値が無彩色値若しくは無彩色値近傍の値の画像として取り扱われる画像)であるものとする。
 このように入力画像の色成分が低彩度であるか否かを判定することにより、画像符号化装置100は、輝度成分の処理を変えずに、低彩度の色成分に対して好適な処理を行うことができる。これにより、輝度成分と色成分とを同様に制御する場合(輝度成分および色成分をまとめて制御する場合)に比べて、復号画像の主観画質の低減を抑制することができる。また、符号化・復号の負荷の増大を抑制することができる。さらに、符号化効率の低減を抑制することができる。
 フラグ生成部152は、低彩度判定部151から供給される判定結果に基づいて、色成分の符号化のモードを示す制御情報を生成することができる。例えば、フラグ生成部152は、その制御情報として、色成分の符号化をスキップする(省略する)スキップモードを適用するか否かを示すフラグ情報であるchroma_skip_flagを生成することができる。
 chroma_skip_flag = 1の場合、色成分の符号化にスキップモードが適用される。このスキップモードの場合、画像の色成分の符号化が省略される。つまり、この場合、入力画像の輝度成分が符号化され、色成分は符号化されない。したがって、ビットストリームには、輝度成分の情報が含まれ、色成分の情報は含まれない。
 chroma_skip_flag = 0の場合、色成分の符号化に通常モードが適用される。つまりこの場合、入力画像の輝度成分および色成分が符号化される。したがって、ビットストリームには、輝度成分の情報と色成分の情報との両方が含まれる。
 フラグ生成部152は、任意の方法によりこのフラグ情報chroma_skip_flagの値をセットすることができる。例えば、フラグ生成部152は、低彩度判定部151により処理対象の画像が低彩度であると判定された場合、chroma_skip_flagの値を「1」にセットすることができる。また、例えば、フラグ生成部152は、低彩度判定部151により処理対象の画像が低彩度でないと判定された場合、chroma_skip_flagの値を「0」にセットすることができる。
 フラグ生成部152は、この制御情報(chroma_skip_flag)を、符号化部115に供給することができる。つまり、この制御情報は、符号化され、ビットストリームに含められて復号側に伝送され得る。
 このような制御情報を伝送することにより、以上のように生成したビットストリームを復号側に正しく復号させることができる。つまり、画像の低彩度部分における符号化・復号による色ノイズの発生を抑制することができるので、復号画像の主観画質の低減を抑制することができる。また、低彩度の部分は、色成分の符号化が省略され得るので、符号化・復号の負荷の増大を抑制することができる。さらに、低彩度の部分は、色成分の符号化データが生成されないようにし得るので、符号化効率の低減を抑制することができる。
 なお、フラグ生成部152は、このchroma_skip_flagを低彩度判定部151にも供給することができる。
 符号化制御部153は、低彩度判定部151から供給される判定結果(chroma_skip_flag)に基づいて、画像の色成分の符号化について画像符号化装置100の各処理部を制御することができる。例えば、符号化制御部153は、低彩度判定部151により処理対象の画像が低彩度であると判定された場合(つまりchroma_skip_flag == 1の場合)、画像符号化装置100の各処理部を制御し、入力画像の色成分の符号化に関する処理を省略することができる。
 その場合、例えば、符号化制御部153は、制御情報を供給することにより演算部112乃至符号化部115を制御し、入力画像の色成分の残差の生成、並びに、その残差の直交変換、量子化、およびエントロピ符号化を省略することができる。また、符号化制御部153は、制御情報を供給することにより逆量子化部117乃至演算部119を制御し、入力画像の色成分の量子化変換係数レベルの逆量子化、逆直交変換、および予測画像の加算を省略することができる。
 また、例えば、符号化制御部153は、低彩度判定部151により処理対象の画像が低彩度でないと判定された場合(つまりchroma_skip_flag == 0の場合)、画像符号化装置100の各処理部を制御し、入力画像の色成分の符号化に関する処理を行わせることができる。
 その場合、例えば、符号化制御部153は、入力画像の色成分を演算部112に供給することができる。つまり、輝度成分の場合と同様、演算部112はその入力画像の色成分と予測画像の色成分との残差を生成し、直交変換部113はその残差を直交変換し、量子化部114は、その変換係数を量子化し、符号化部115はその量子化変換係数レベルを符号化する。また、逆量子化部117はその量子化変換係数レベルを逆量子化し、逆直交変換部118はその変換係数を逆直交変換し、演算部119はその予測残差に予測画像を加算し、局所復号画像を導出する。
 このように色成分の符号化を制御することにより、低彩度の部分は、色成分の符号化(残差の生成、直交変換、量子化、エントロピ符号化、逆量子化、逆直交変換、予測残差の生成等の各処理)が省略され得る。また、予測画像の生成も省略され得る。したがって、符号化の負荷の増大を抑制することができる。
 無彩色生成部154は、低彩度判定部151から供給される判定結果(chroma_skip_flag)に基づいて、画像の色成分の局所復号画像として、無彩色値の画素からなる無彩色の画像を生成することができる。例えば、無彩色生成部154は、低彩度判定部151により処理対象の画像が低彩度であると判定された場合(つまりchroma_skip_flag == 1の場合)、無彩色の画像を生成し、それを局所復号画像として、インループフィルタ部120に供給することができる。
 なお、本明細書において「無彩色値」とは、特に言及しない限り、色成分(例えば色差2成分(Cb,Cr))において、画素振幅の中間値のことを示すものとする。例えば、画素震度が8ビット(値域が0-255)の場合、色差2成分(Cb,Cr)における値128が無彩色値である。ただし、ユーザやアプリケーション等が、この「無彩色値」を画素振幅の中間値以外の値に設定することができるようにしてもよい。また、本明細書において「無彩色の画像」は、全画素の画素値が無彩色値の画像、または、全画素の画素値が無彩色値の画像とみなされる画像(つまり、全画素の画素値が無彩色値の画像として取り扱われる画像)であるものとする。
 また、例えば、無彩色生成部154は、低彩度判定部151により処理対象の画像が低彩度でないと判定された場合(つまりchroma_skip_flag == 0の場合)、無彩色の画像を生成しない。この場合、色成分の局所復号画像は、演算部119により導出され、インループフィルタ部120に供給される。
 このように無彩色の画像を挿入することにより、局所復号画像の低彩度部分における色ノイズの発生(量子化誤差の発生)を抑制することができるので、予測画像の生成における色ノイズの伝搬を抑制し、復号画像の主観画質の低減を抑制することができる。また、逆量子化、逆直交変換、予測残差の生成等の処理と比べて容易に、無彩色の画像を生成し、局所復号画像として挿入することができる。したがって、符号化の負荷の増大を抑制することができる。
 フィルタ制御部155は、低彩度判定部151から供給される判定結果(chroma_skip_flag)に基づいて、局所復号画像に対するフィルタ処理を制御することができる。例えば、フィルタ制御部155は、低彩度判定部151により処理対象の画像が低彩度であると判定された場合(つまりchroma_skip_flag == 1の場合)、制御情報をインループフィルタ部120に供給し、色成分の局所復号画像に対するフィルタ処理を省略させることができる。
 また、例えば、フィルタ制御部155は、低彩度判定部151により処理対象の画像が低彩度でないと判定された場合(つまりchroma_skip_flag == 0の場合)、制御情報をインループフィルタ部120に供給し、色成分の局所復号画像に対するフィルタ処理を実行させることができる。
 このようにフィルタ処理を制御することにより、局所復号画像の低彩度部分における色ノイズの発生を抑制することができるので、予測画像の生成における色ノイズの伝搬を抑制し、復号画像の主観画質の低減を抑制することができる。また、局所復号画像の低彩度部分に対するフィルタ処理を省略することができるので、符号化の負荷の増大を抑制することができる。
 低彩度判定部151は、入力画像のブロック毎(例えば、CTU毎またはCU毎)に上述の判定を行うことができる。つまり、フラグ生成部152乃至フィルタ制御部155は、それぞれの処理を、入力画像のブロック毎(例えば、CTU毎またはCU毎)に行うことができる。
 したがって、画像符号化装置100は、入力画像の低彩度の部分に対してのみ、上述したような低彩度の場合に適した処理を行うことができる。したがって、このようにすることにより、画像全体で低彩度であるか否かを判定し、制御する場合に比べて、復号画像の主観画質の低減をより抑制することができる。また、符号化・復号の負荷の増大をより抑制することができる。さらに、符号化効率の低減をより抑制することができる。
  <符号化処理の流れ>
 次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図3のフローチャートを参照して、符号化処理の流れの例を説明する。
 符号化処理が開始されると、ステップS101において、並べ替えバッファ111は、制御部101に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
 ステップS102において、制御部101は、並べ替えバッファ111が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
 ステップS103において、制御部101は、並べ替えバッファ111が保持する入力画像についての符号化パラメータを決定(設定)する。
 ステップS104乃至ステップS107の各処理は、ステップS102において設定されたブロック毎に行われる。
 ステップS104において、予測部122は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部122は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。このステップにおいて、予測部122は、輝度成分および色成分について予測処理を行うことができる。
 ステップS105において、画像符号化装置100の各処理部は、それぞれの処理を適宜行って入力画像の輝度成分を符号化し、輝度成分の符号化データを生成する。
 ステップS106において、画像符号化装置100の各処理部は、それぞれの処理を適宜行って入力画像の色成分を符号化し、色成分の符号化データを生成する。
 ステップS107において、制御部101は、全てのブロックを処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理をステップS104に戻し、それ以降の処理を繰り返す。つまり、ステップS104乃至ステップS107の各処理がブロック毎に実行される。
 ステップS107において、全てのブロックを処理したと判定された場合、処理はステップS108に進む。
 ステップS108において、蓄積バッファ116は、各種情報の符号化データを含むビットストリームを生成する。このビットストリームには、色成分の残差の符号化を省略するモードを適用するかを示す制御情報であるchroma_skip_flagが含まれる。
 ステップS109において、蓄積バッファ116は、そのビットストリームを画像符号化装置100の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部323は、必要に応じてレート制御を行う。
 ステップS109の処理が終了すると、符号化処理が終了する。
  <色成分符号化処理の流れ>
 次に図3のステップS106において実行される色成分符号化処理の流れの例を、図4のフローチャートを参照して説明する。
 色成分符号化処理が開始されると、低彩度判定部151およびフラグ生成部152は、ステップS131において、低彩度判定処理を実行し、処理対象のブロックが低彩度の画像であるか否かを判定する。
 ステップS132において、符号化制御部153乃至フィルタ制御部155は、その低彩度判定処理において設定されたフラグ情報chroma_skip_flagの値が「0」であるか否かを判定する。このchroma_skip_flagの値が「0」である、すなわち、ステップS131の低彩度判定処理において、処理対象のブロックは低彩度の画像でないと判定された場合、処理はステップS133に進む。
 ステップS133において、演算部112は、入力画像と、図3のステップS104の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部112は、入力画像と予測画像との予測残差を生成する。このようにして求められた予測残差は、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
 ステップS134において、直交変換部113は、ステップS133の処理により生成された予測残差に対して直交変換処理を行い、変換係数を導出する。
 ステップS135において、量子化部114は、制御部101により算出された量子化パラメータを用いる等して、ステップS134の処理により得られた変換係数を量子化し、量子化変換係数レベルを導出する。
 ステップS136において、逆量子化部117は、ステップS135の処理により生成された量子化変換係数レベルを、その量子化の特性に対応する特性で逆量子化し、変換係数を導出する。
 ステップS137において、逆直交変換部118は、ステップS136の処理により得られた変換係数を、ステップS134の直交変換処理に対応する方法で逆直交変換し、予測残差を導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS137の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
 ステップS138において、演算部119は、ステップS137の処理により導出された予測残差に、図3のステップS104の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
 ステップS139において、インループフィルタ部120は、ステップS138の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。ステップS139の処理が終了すると処理はステップS141に進む。
 また、ステップS132において、chroma_skip_flagの値が「1」である、すなわち、処理対象のブロックは低彩度の画像であると判定された場合、処理はステップS140に進む。
 この場合、色成分に対してスキップモードが適用される。このスキップモードの場合、入力画像の色成分の符号化データは生成されない(ビットストリームに含まれない)。
 ステップS140において、無彩色生成部154は、全画素の画素値が無彩色値である無彩色の画像(ブロック)を生成し、その無彩色の画像を局所復号画像として挿入する。つまり、このスキップモードの場合、入力画像の色成分を用いた局所復号画像の生成も省略され、代わりに無彩色の画像が局所復号画像とされる。
 ステップS140の処理が終了すると処理は、ステップS141に進む。つまり、スキップモードの場合、符号化制御部153乃至フィルタ制御部155の制御により、ステップS133乃至ステップS139の処理が省略される。
 ステップS141において、フレームメモリ121は、ステップS139の処理によりフィルタ処理された局所復号画像、または、ステップS140の処理により挿入された無彩色の局所復号画像を記憶する。
 ステップS142において、符号化部115は、ステップS135の処理により得られた量子化変換係数レベルを符号化し、符号化データを生成する。また、このとき、符号化部115は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部115は、量子化変換係数レベルから残差情報RInfoを導出し、その残差情報RInfoを符号化する。また、符号化部115は、ステップS131の低彩度判定処理により生成された制御情報(chroma_skip_flag)を符号化する。
 ステップS143において、蓄積バッファ116は、このようにして得られた各符号化データを蓄積する。ステップS143の処理が終了すると色成分符号化処理が終了し、処理は図3に戻る。
  <低彩度判定処理の流れ>
 次に、図4のステップS131において実行される低彩度判定処理の流れの例を、図5のフローチャートを参照して説明する。なお、低彩度であるか否かの判定方法は任意であるが、ここでは、処理対象のブロックの各画素値が低彩度であるか否かを判定し、低彩度の画素数をカウントし、そのカウント値の大小に基づいて、処理対象のブロックが低彩度の画像であるか否かを判定するものとする。
 低彩度判定処理が開始されると、低彩度判定部151は、ステップS171において、カウント値(cnt)を初期化する。例えば、cnt = 0とする。
 次に、ステップS172において、低彩度判定部151は、処理対象画素が低彩度画素であるか否か(つまり、処理対象画素の画素値が低彩度であるか否か)を判定する。例えば、低彩度判定部151は、処理対象のブロックの各画素の色差成分Cb, Crの2成分について、成分毎に別途定められた無彩色値との差分絶対値を導出し、その両成分の差分絶対値が、それぞれ成分毎に別途定める画素値用の閾値以下であるか否かを判定する。
 例えば、処理対象画素のCb成分の画素値をcbとし、Cb成分の無彩色値をCbgreyとし、Cb成分の画素値用の閾値をThCbgreyとし、処理対象画素のCr成分の画素値をcrとし、Cr成分の無彩色値をCrgreyとし、Cr成分の画素値用の閾値をThCrgreyとする。この場合、低彩度判定部151は、以下の式(1)が真であるか否かを判定する。
 |cb - Cbgrey| <= ThCbgrey && |cr - Crgrey| <= ThCrgrey ・・・(1)
 ここで、Cb成分の無彩色値CbgreyおよびCr成分の無彩色値Crgreyは、典型的には画素振幅の中間値であるが、これに限らず、例えば画像符号化装置100を含む画像処理システムにおける無彩色と定義される値等、任意の値を設定し得る。このCbgreyおよびCrgreyは、例えば、ユーザやアプリケーション等が任意の値を設定することができるようにしてもよい。そのような場合、このCbgreyおよびCrgreyは、例えばスライス、ピクチャ、シーケンス等のヘッダ中に定義されるようにしてもよい。また、このCbgreyおよびCrgreyを予め定められた所定の値とし、符号化側と復号側の両方において既知であるようにしてもよい。その場合、ヘッダ中における値の定義を省略することができる。なお、このCbgreyおよびCrgreyを共通の値(例えばCgrey)としてもよい。
 Cb成分の画素値用の閾値ThCbgreyおよびCr成分の画素値用の閾値ThCrgreyも同様に、任意の値を設定し得る。このThCbgreyおよびThCrgeyは、例えば、ユーザやアプリケーション等が任意の値を設定することができるようにしてもよい。そのような場合、このThCbgreyおよびThCrgreyは、例えばスライス、ピクチャ、シーケンス等のヘッダ中に定義されるようにしてもよい。また、このThCbgreyおよびThCrgreyを予め定められた所定の値とし、符号化側と復号側の両方において既知であるようにしてもよい。その場合、ヘッダ中における値の定義を省略することができる。なお、このThCbgreyおよびThCrgreyを共通の値(例えばThCgrey)としてもよい。
 低彩度画素の場合、そのCb成分の画素値cbがCb成分の無彩色値Cbgreyに近くなる。つまり、Cb成分の画素値cbとCb成分の無彩色値Cbgreyとの差分絶対値が小さくなる。同様に、Cr成分の画素値crもCr成分の無彩色値Crgreyに近くなる。つまり、Cr成分の画素値crとCr成分の無彩色値Crgreyとの差分絶対値も小さくなる。
 そこで、低彩度判定部151は、上述の式(1)が真であると判定された場合、つまり、Cb成分の画素値cbとCb成分の無彩色値Cbgreyとの差分絶対値が画素値用の閾値ThCbgrey以下であり、かつ、Cr成分の画素値crとCr成分の無彩色値Crgreyとの差分絶対値が画素値用の閾値ThCrgrey以下である場合、この処理対象画素が低彩度画素であると判定する。この場合、処理はステップS173に進む。
 なお、低彩度画素か否かの判定は、式(1)で表される条件以外の条件を用いて行われるようにしてもよい。例えば、Cb成分の画素値cbとCb成分の無彩色値Cbgreyとの差分2乗和が画素値用の閾値ThCbgreyの2乗値以内となるか否かによって、かつ、Cr成分の画素値crとCr成分の無彩色値Crgreyとの差分2乗和が画素値用の閾値ThCrgreyの2乗値以内となるか否かによって、低彩度画素か否かの判定が行われるようにしてもよい。つまり、距離で判定するようにしても良い。
 低彩度判定部151は、処理対象のブロック内におけるこのような低彩度画素の割合が十分に多い場合、そのブロックを低彩度と判定する。
 そこで、ステップS172において低彩度画素が検出された場合、低彩度判定部151は、その低彩度画素をカウントする。つまり、低彩度判定部151は、ステップS173において、カウント値cntをインクリメントする(例えば+1増加させる)。ステップS173の処理が終了すると処理はステップS174に進む。
 ステップS172において上述の式(1)が偽であると判定された場合、すなわち、低彩度画素が検出されなかった場合、低彩度判定部151は、このカウントを行わない(スキップする)。つまり、ステップS172において処理対象画素が低彩度画素でないと判定された場合、ステップS173の処理が省略され、処理はステップS174に進む。
 以上のようにして低彩度画素がカウントされる。ステップS174において、低彩度判定部151は、処理対象ブロックの色成分について、全ての画素を処理したか否かを判定する。未処理の画素が存在すると判定した場合、処理はステップS172に戻り、未処理の画素を新たな処理対象として、それ以降の処理を繰り返す。つまり、ステップS172乃至ステップS174の各処理が各画素について実行され、ステップS174において全画素を処理したと判定された場合、処理はステップS175に進む。
 ステップS175において、低彩度判定部151は、以上のようにカウントした低彩度画素のカウント値がブロック内総画素数に占める割合が別途定める所定のカウント値用の閾値を超えたか否かを判定する。
 例えば、低彩度画素のカウント値をcntとし、カウント値用の閾値をThcntとし、ブロック内総画素数をNbとする。この場合、低彩度判定部151は、以下の式(2)が真であるか否かを判定する。
 cnt > Thcnt * Nb ・・・(2)
 ここで、カウント値用の閾値Thcntは、任意の値を設定し得る。このThcntは、例えば、ユーザやアプリケーション等が任意の値を設定することができるようにしてもよい。そのような場合、このThcntは、例えばスライス、ピクチャ、シーケンス等のヘッダ中に定義されるようにしてもよい。また、このThcntを予め定められた所定の値とし、符号化側と復号側の両方において既知であるようにしてもよい。その場合、ヘッダ中における値の定義を省略することができる。
 なお、ブロックが低彩度であるか否かの判定条件は、カウント値cntとカウント値用の閾値Thcntとの比較結果であっても良い。また、この閾値Thcntは、処理対処のブロックの画素数に応じた値が設定されるようにしてもよい。また、色差成分のブロック内の画素値の平均値を、所定の閾値と比較し、その比較結果を判定条件としてもよい。もちろん、カウント値と平均値の両方を併用して判定が行われるようにしても良い。
 処理対象のブロックに占める低彩度画素の割合が所定のカウント値用の閾値を超えたと判定された場合、つまり、式(2)が真であると判定された場合、処理はステップS176に進む。この場合、低彩度判定部151は、処理対象ブロックが低彩度であると判定する。
 ステップS176において、フラグ生成部152は、フラグ情報chroma_skip_flagの値を「1」にセットする。つまり、低彩度のブロックには、入力画像の色成分の符号化がスキップされるスキップモードが適用される。ステップS176の処理が終了すると低彩度判定処理が終了し、処理は図4に戻る。
 また、図5のステップS175において、カウント値cntが所定のカウント値用の閾値以下であると判定された場合、処理はステップS177に進む。つまり、式(2)が偽であると判定された場合、処理はステップS177に進む。この場合、低彩度判定部151は、処理対象ブロックが低彩度ではないと判定する。
 ステップS177において、フラグ生成部152は、フラグ情報chroma_skip_flagの値を「0」にセットする。つまり、低彩度のブロックには、入力画像の色成分の符号化が行われる通常のモードが適用される。ステップS177の処理が終了すると低彩度判定処理が終了し、処理は図4に戻る。
 以上のように各処理を実行することにより、復号画像の主観画質の低減を抑制することができる。また、符号化・復号の負荷の増大を抑制することができる。
  <カウント値用の閾値Thcntの制御>
 上述したカウント値用の閾値Thcntは符号化の条件に応じて可変としてもよい。例えば、画像符号化装置100におけるビットレートや、符号化ブロックにおける量子化パラメータ等に応じて閾値Thcntが設定されるようにしてもよい。例えば、目標ビットレートTrに対して、量子化パラメータQにおける実発生符号ビットレートをRrとする場合、低彩度判定部151(または制御部101)が、以下の式(3)のように閾値Thcntを導出するようにしてもよい。
 Thcnt = Clip3(0, 1, Acnt * Tr / (Q * Rr) + Bcnt) ・・・(3)
 ここで、Acntは比例係数、Bcntは定数、Clip3(L,H,X)は、クリップ関数である。X<Lの場合Clip3=Lとなり、X>Hの場合Clip3=Hとなり、それ以外の場合Clip3=Xとなる。
 閾値Thcntを上昇させる(値を大きくする)ことにより、符号化ブロックが低彩度と判定されにくくする(典型的には判定されないようにする)ことができる。上述の式(3)を用いて閾値Thcntを導出することにより、目標ビットレートが十分に高い、符号化ブロックの量子化パラメータが十分小さい、または入力画像の符号化が容易で実発生ビットレートが低い場合に、閾値Thcntを上昇させる(値を大きくする)ことができる。例えば、低彩度部分の色差成分を符号化しても量子化誤差による色ノイズが視認されにくいと判断される場合、このような閾値Thcntの制御により、入力画像と復号画像の不必要な乖離を抑制することができる。
 また、符号化効率を優先させたい場合、符号化ブロックが低彩度と判定されやすくすればよいので、閾値Thcntを低下させればよい(値を小さくすればよい)。上述の式(3)を用いて閾値Thcntを導出することにより、目標ビットレートが低い、量子化パラメータが大きい、または実発生ビットレートが高く、使用可能な符号量が限定されている場合に、閾値Thcntを低下させる(値を小さくする)ことができる。したがって、色差成分の符号量が削減され、優先したい輝度情報に集中して符号を割り当てることができる。
  <画素値用の閾値ThCbgrey, ThCrgreyの制御>
 上述した画素値用の閾値ThCbgreyおよびThCrgreyについても同様の考え方で制御することができる。例えば、低彩度判定部151(または制御部101)が、以下の式(4)および式(5)のように閾値ThCbgreyおよびThCrgreyを導出するようにしてもよい。
 ThCbgrey = Clip3(0, MaxC, ACb * (Q * Rr) / Tr + BCb) ・・・(4)
 ThCrgrey = Clip3(0, MaxC, ACr * (Q * Rr) / Tr + BCr) ・・・(5)
 ここでACbおよびACrは比例係数、BCbおよびBCrは定数、Clip3()はクリップ関数であり、MaxCは画素色差成分の定義域最大値である。
 このような式(4)および式(5)を用いて閾値ThCbgreyおよびThCrgreyを導出することにより、目標ビットレートが十分に高い、符号化ブロックの量子化パラメータが十分小さい、または入力画像の符号化が容易で実発生ビットレートが低い場合に、閾値ThCbgreyおよびThCrgreyを低下させる(値を小さくする)ことができる。例えば、量子化誤差が小さいと目される場合にこのように閾値ThCbgreyおよびThCrgreyを制御することにより、符号化ブロックが低彩度と判定されにくくする(典型的には判定されないようにする)ことができ、入力画像と復号画像の不必要な乖離を抑制することができる。
 また、このような式(4)および式(5)を用いて閾値ThCbgreyおよびThCrgreyを導出することにより、目標ビットレートが低い、量子化パラメータが大きい、または実発生ビットレートが高く、使用可能な符号量が限定されている場合に、閾値ThCbgreyおよびThCrgreyを上昇させる(値を大きくする)ことができる。例えば、符号化効率を優先させたい場合にこのように閾値ThCbgreyおよびThCrgreyを制御することにより、符号化ブロックが低彩度と判定されやすくすることができる。したがって、色差成分の符号量が削減され、優先したい輝度情報に集中して符号を割り当てることができる。
 なお、上述のカウント値用の閾値Thcntの制御と、画素値用の閾値ThCbgreyおよびThCrgreyの制御とを併用してもよい。例えば、いずれか一方を選択して適用してもよいし、両方を適用してもよい。
  <静止画>
 以上においては、動画像の符号化処理に本技術を適用する場合を例に説明したが、本技術は、動画像の符号化処理に限らず、例えば、画面間参照を行わない静止画符号化処理にも適用することができる。
  <スキップモードの適用>
 次に、復号について説明する。例えば、画像の符号化データの復号において、その画像の色成分の残差の符号化データの可逆復号、逆量子化、および逆係数変換を省略するスキップモードを適用すると判定された場合、その可逆復号、その逆量子化、およびその逆係数変換を省略するように制御してもよい。
 このようにすることにより、符号化の際にスキップモードが適用された符号化データを正しく復号することができる。したがって、復号画像の主観画質の低減を抑制することができる。また、色成分の復号を省略することができるので、負荷の増大を抑制することができる。さらに、色成分の符号化データの伝送を省略することができるので、符号化効率の低減を抑制することができる。
  <復号画像に無彩色値挿入>
 また、画像の符号化データの復号において、上述のスキップモードを適用すると判定された場合、その画像の色成分の復号画像として、無彩色の画像を生成してもよい。
 このようにすることにより、符号化の際にスキップモードが適用された符号化データを正しく復号することができる。したがって、復号画像の主観画質の低減を抑制することができる。また、色成分の復号を省略することができるので、負荷の増大を抑制することができる。さらに、色成分の符号化データの伝送を省略することができるので、符号化効率の低減を抑制することができる。
  <フィルタ処理の制御>
 また、画像の符号化データの復号において、上述のスキップモードを適用すると判定された場合、その画像の色成分の復号画像に対するフィルタ処理を省略してもよい。このようにすることにより、フィルタ処理による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、フィルタ処理を省略するので、負荷の増大を抑制することができる。
  <画像復号装置>
 図6は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図6に示される画像復号装置200は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置200は、非特許文献1乃至非特許文献3に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置200は、上述の画像符号化装置100により生成された符号化データ(ビットストリーム)を復号することができる。
 なお、図6においては、処理部やデータの流れ等の主なものを示しており、図6に示されるものが全てとは限らない。つまり、画像復号装置200において、図6においてブロックとして示されていない処理部が存在したり、図6において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置200内の処理部等を説明する他の図においても同様である。
 図6において、画像復号装置200は、蓄積バッファ211、復号部212、逆量子化部213、逆直交変換部214、演算部215、インループフィルタ部216、並べ替えバッファ217、フレームメモリ218、および予測部219を備えている。なお、予測部219は、不図示のイントラ予測部、およびインター予測部を備えている。
 画像復号装置200は、さらに、低彩度処理部231を有する。
   <蓄積バッファ>
 蓄積バッファ211は、画像復号装置200に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ211は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部212に供給する。
   <復号部>
 復号部212は、画像の復号に関する処理を行う。例えば、復号部212は、蓄積バッファ211から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値をエントロピ復号(可逆復号)し、パラメータを導出する。
 シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部212は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
    <ヘッダ情報Hinfo>
 ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence ParameterSet)/PPS(Picture Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
 例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
 コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
 なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
    <予測モード情報Pinfo>
 予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
 イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
 また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
 コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
 多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
 色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。
 なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
 色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
 動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照)。
 もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
    <変換情報Tinfo>
 変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。変換スキップフラグ(ts_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
  スキャン識別子(scanIdx)
  量子化パラメータ(qp)
  量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
    <残差情報Rinfo>
 残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
  cbf(coded_block_flag):残差データ有無フラグ
  last_sig_coeff_x_pos:ラスト非ゼロ係数X座標
  last_sig_coeff_y_pos:ラスト非ゼロ係数Y座標
  coded_sub_block_flag:サブブロック非ゼロ係数有無フラグ
  sig_coeff_flag:非ゼロ係数有無フラグ
  gr1_flag:非ゼロ係数のレベルが1より大きいかを示すフラグ(GR1フラグとも呼ぶ)
  gr2_flag:非ゼロ係数のレベルが2より大きいかを示すフラグ(GR2フラグとも呼ぶ)
  sign_flag:非ゼロ係数の正負を示す符号(サイン符号とも呼ぶ)
  coeff_abs_level_remaining:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)
など。
 もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
    <フィルタ情報Finfo>
 フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
  デブロッキングフィルタ(DBF)に関する制御情報
  画素適応オフセット(SAO)に関する制御情報
  適応ループフィルタ(ALF)に関する制御情報
  その他の線形・非線形フィルタに関する制御情報
 より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 復号部212の説明に戻り、復号部212は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルを導出する。復号部212は、その量子化変換係数レベルを、逆量子化部213に供給する。
 また、復号部212は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
 ヘッダ情報Hinfoは、逆量子化部213、逆直交変換部214、予測部219、インループフィルタ部216に供給される。予測モード情報Pinfoは、逆量子化部213および予測部219に供給される。変換情報Tinfoは、逆量子化部213および逆直交変換部214に供給される。フィルタ情報Finfoは、インループフィルタ部216に供給される。
 もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
   <逆量子化部>
 逆量子化部213は、逆量子化に関する処理を行う。例えば、逆量子化部213は、復号部212から供給される変換情報Tinfoおよび量子化変換係数レベルを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルの値をスケーリング(逆量子化)し、逆量子化後の変換係数を導出する。
 なお、この逆量子化は、量子化部114による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部117による逆量子化と同様の処理である。つまり、逆量子化部117は、逆量子化部213と同様の処理(逆量子化)を行う。
 逆量子化部213は、導出した変換係数を逆直交変換部214に供給する。
   <逆直交変換部>
 逆直交変換部214は、逆直交変換に関する処理を行う。例えば、逆直交変換部214は、逆量子化部213から供給される変換係数、および、復号部212から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数に対して逆直交変換処理を行い、予測残差を導出する。
 なお、この逆直交変換は、直交変換部113による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部118による逆直交変換と同様の処理である。つまり、逆直交変換部118は、逆直交変換部214と同様の処理(逆直交変換)を行う。
 逆直交変換部214は、導出した予測残差を演算部215に供給する。
   <演算部>
 演算部215は、画像に関する情報の加算に関する処理を行う。例えば、演算部215は、逆直交変換部214から供給される予測残差と、予測部219から供給される予測画像とを入力とする。演算部215は、予測残差とその予測残差に対応する予測画像(予測信号)とを加算し、局所復号画像を導出する。
 演算部215は、導出した局所復号画像を、インループフィルタ部216およびフレームメモリ218に供給する。
   <インループフィルタ部>
 インループフィルタ部216は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部216は、演算部215から供給される局所復号画像と、復号部212から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部216に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
 インループフィルタ部216は、そのフィルタ情報Finfoに基づいて、局所復号画像に対して適宜フィルタ処理を行う。
 例えば、インループフィルタ部216は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 インループフィルタ部216は、符号化側(例えば画像符号化装置100のインループフィルタ部120)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部216が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部216がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部216は、フィルタ処理された局所復号画像を並べ替えバッファ217およびフレームメモリ218に供給する。
   <並べ替えバッファ>
 並べ替えバッファ217は、インループフィルタ部216から供給された局所復号画像を入力とし、それを保持(記憶)する。並べ替えバッファ217は、その局所復号画像を用いてピクチャ単位毎の復号画像を再構築し、保持する(バッファ内に格納する)。並べ替えバッファ217は、得られた復号画像を、復号順から再生順に並べ替える。並べ替えバッファ217は、並べ替えた復号画像群を動画像データとして画像復号装置200の外部に出力する。
   <フレームメモリ>
 フレームメモリ218は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ218は、演算部215より供給される局所復号画像を入力とし、ピクチャ単位毎の復号画像を再構築して、フレームメモリ218内のバッファへ格納する。
 また、フレームメモリ218は、インループフィルタ部216から供給される、インループフィルタ処理された局所復号画像を入力とし、ピクチャ単位毎の復号画像を再構築して、フレームメモリ218内のバッファへ格納する。フレームメモリ218は、適宜、その記憶している復号画像(またはその一部)を参照画像として予測部219に供給する。
 なお、フレームメモリ218が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
   <予測部>
 予測部219は、予測画像の生成に関する処理を行う。例えば、予測部219は、復号部212から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像を導出する。その導出の際、予測部219は、その予測モード情報Pinfoによって指定される、フレームメモリ218に格納されたフィルタ前またはフィルタ後の復号画像(またはその一部)を、参照画像として利用する。予測部219は、導出した予測画像を、演算部215に供給する。
   <低彩度処理部>
 低彩度処理部231は、低彩度の画像に関する処理を行う。例えば、復号部212は、ヘッダをパースし、ビットストリームから色成分の残差の符号化データの復号のモードを示す制御情報を抽出し、それを低彩度処理部231に供給する。低彩度処理部131は、その制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定する。
 また、低彩度処理部231は、その判定結果に応じて、復号部212乃至予測部219等の各処理部を制御し、色成分の符号化データの復号を制御する。つまり、低彩度処理部231は、各処理部に、上述した制御情報に示される復号のモードに応じた処理を行わせる。
 さらに、低彩度処理部231は、その判定結果に応じて、復号画像として、無彩色値の画素からなる無彩色の画像を生成する。低彩度処理部231は、生成した無彩色の画像をインループフィルタ部216に供給する。
 また、低彩度処理部231は、その判定結果に応じて、インループフィルタ部216を制御し、色成分の復号画像に対するフィルタ処理の実行を制御する。
  <低彩度処理部>
 図7は、低彩度処理部231の主な構成例を示すブロック図である。図7に示されるように、低彩度処理部231は、フラグ判定部251、無彩色生成部252、フィルタ制御部253、および復号制御部254を有する。
 フラグ判定部251は、制御情報(フラグ情報)であるchroma_skip_flagの判定に関する処理を行う。例えば、フラグ判定部251は、復号部212から供給される色成分の残差の符号化データの復号のモードを示す制御情報であるchroma_skip_flagを取得することができる。また、フラグ判定部251は、そのchroma_skip_flagの値を判定することにより、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するか否かを判定することができる。
 chroma_skip_flag = 1の場合、色成分の復号にスキップモードが適用される。このスキップモードの場合、画像の色成分の符号化データの復号が省略される。つまり、この場合、ビットストリームには、輝度成分の情報が含まれ、色成分の情報は含まれていない。したがって、輝度成分についての復号が行われ、色成分についての復号派行われない。
 chroma_skip_flag = 0の場合、色成分の復号に通常モードが適用される。この場合、ビットストリームには、輝度成分の情報と色成分の情報との両方が含まれる。したがって、この場合、輝度成分および色成分について復号が行われる。
 フラグ判定部251は、その判定結果を無彩色生成部252乃至復号制御部254に供給することができる。
 このように符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定することにより、画像復号装置200は、輝度成分の処理を変えずに、低彩度の色成分に対して好適な処理を行うことができる。これにより、輝度成分と色成分とを同様に制御する場合(輝度成分および色成分をまとめて制御する場合)に比べて、復号画像の主観画質の低減を抑制することができる。また、復号の負荷の増大を抑制することができる。さらに、符号化効率の低減を抑制することができる。
 無彩色生成部252は、フラグ判定部251から供給される判定結果に基づいて、画像の色成分の復号画像として、無彩色値の画素からなる無彩色の画像を生成することができる。例えば、無彩色生成部252は、フラグ判定部251により画像の色成分に対して、その残差の符号化データの可逆復号、逆量子化、および逆係数変換を省略するスキップモードを適用すると判定された場合(つまりchroma_skip_flag == 1の場合)、無彩色の画像を生成し、それを復号画像として、インループフィルタ部216に供給することができる。この無彩色の画像は、復号画像として、インループフィルタ部216から並べ替えバッファ217に供給され、蓄積される。また、この無彩色の画像は、インループフィルタ部216からフレームメモリ218に供給されて記憶され、その後の復号に用いられる予測画像の生成に利用される。
 また、例えば、無彩色生成部252は、フラグ判定部251により、画像の色成分に対して、上述のスキップモードを適用しない(通常のモードを適用する)と判定された場合(つまりchroma_skip_flag == 0の場合)、無彩色の画像を生成しない。この場合、色成分の復号画像は、演算部215により導出され、インループフィルタ部216に供給される。
 このように無彩色の画像を挿入することにより、復号画像の低彩度部分における色ノイズの発生(量子化誤差の発生)を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、逆量子化、逆直交変換、予測残差の生成等の処理と比べて容易に、無彩色の画像を生成し、局所復号画像として挿入することができる。したがって、復号の負荷の増大を抑制することができる。
 以上の無彩色値(Cb成分の無彩色値Cbgrey、Cr成分の無彩色値Crgrey)は、画像符号化装置100においてビットストリームを生成した際に使用したものと同一である。この無彩色値(CbgreyおよびCrgrey)は、例えば符号化の際にスライス、ピクチャ、シーケンス等のヘッダ中に定義しておき、そのヘッダをエントロピ復号する際に復元することで、符号化側と復号側で共通の値を使用することができるようにしてもよい。また、ヘッダ中にこの無彩色値を定義せずに、符号化側および復号側の間で共通の固定値の無彩色値を用いるようにしてもよい。
 フィルタ制御部253は、フラグ判定部251から供給される判定結果に基づいて、復号画像に対するフィルタ処理を制御することができる。例えば、フィルタ制御部253は、フラグ判定部251により、画像の色成分に対して、上述のスキップモードを適用すると判定された場合(つまりchroma_skip_flag == 1の場合)、制御情報をインループフィルタ部216に供給し、色成分の復号画像に対するフィルタ処理を省略させることができる。
 また、例えば、フィルタ制御部253は、フラグ判定部251により、画像の色成分に対して、上述のスキップモードを適用しない(通常のモードを適用する)と判定された場合(つまりchroma_skip_flag == 0の場合)、制御情報をインループフィルタ部216に供給し、色成分の復号画像に対するフィルタ処理を実行させることができる。
 このようにフィルタ処理を制御することにより、復号画像の低彩度部分における色ノイズの発生を抑制することができるので、復号画像の主観画質の低減を抑制することができる。また、復号画像の低彩度部分に対するフィルタ処理を省略することができるので、復号の負荷の増大を抑制することができる。
 復号制御部254は、フラグ判定部251から供給される判定結果に基づいて、色成分の符号化データの復号について画像復号装置200の各処理部を制御することができる。例えば、復号制御部254は、フラグ判定部251により、画像の色成分に対して、上述のスキップモードを適用すると判定された場合(つまりchroma_skip_flag == 1の場合)、画像復号装置200の各処理部を制御し、色成分の符号化データの復号に関する処理を省略することができる。
 その場合、例えば、復号制御部254は、制御情報を供給することにより復号部212乃至演算部215を制御し、色成分の符号化データのエントロピ復号、逆量子化、逆直交変換、並びに、復号画像の生成等の処理を省略することができる。また、復号制御部254は、制御情報を供給することにより予測部219を制御し、予測画像の生成を省略することができる。
 また、例えば、復号制御部254は、フラグ判定部251により、画像の色成分に対して、上述のスキップモードを適用しない(通常のモードを適用する)と判定された場合(つまりchroma_skip_flag == 0の場合)、画像復号装置200の各処理部を制御し、色成分の符号化データの復号に関する処理を行わせることができる。
 その場合、例えば、復号制御部254は、復号部212を制御し、色成分の符号化データをエントロピ復号させることができる。つまり、輝度成分の場合と同様、復号部212は、符号化データをエントロピ復号し、逆量子化部213は、その量子化変換係数レベルを逆量子化し、逆直交変換部214は、その変換係数を逆直交変換し、演算部215は、その予測残差に予測画像を加算し、復号画像を生成する。
 このように色成分の復号を制御することにより、画像復号装置200は、低彩度の部分の処理を省略し得る。また、予測画像の生成も省略し得る。したがって、復号の負荷の増大を抑制することができる。
 なお、フラグ判定部251は、ブロック毎(例えば、CTU毎またはCU毎)に上述の判定を行うことができる。つまり、無彩色生成部252乃至復号制御部254は、それぞれの処理を、ブロック毎(例えば、CTU毎またはCU毎)に行うことができる。
 したがって、画像復号装置200は、画像の低彩度の部分に対してのみ、上述したような低彩度の場合に適した処理を行うことができる。したがって、このようにすることにより、画像全体で低彩度であるか否かを判定し、制御する場合に比べて、復号画像の主観画質の低減をより抑制することができる。また、復号の負荷の増大をより抑制することができる。さらに、符号化効率の低減をより抑制することができる。
  <復号処理の流れ>
 次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図8のフローチャートを参照して、復号処理の流れの例を説明する。
 復号処理が開始されると、蓄積バッファ211は、ステップS201において、画像復号装置200の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
 ステップS202において、復号部212は、その符号化データ(ビットストリーム)のヘッダをパースし、各種符号化パラメータやchroma_skip_flag等の制御情報を取得する。復号部212は、取得したchroma_skip_flagを低彩度処理部231に供給する。
 ステップS203乃至ステップS206の各処理は、ステップS202においてパースされた各種符号化パラメータ等に基づいて、ブロック毎に行われる。
 ステップS203において、予測部219は、ステップS202においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ218に記憶されている参照画像を参照する等して、予測画像を生成する。
 ステップS204において、画像復号装置200の各処理部は、それぞれの処理を適宜行って輝度成分の符号化データを復号し、輝度成分の復号画像を生成する。
 ステップS205において、画像復号装置200の各処理部は、それぞれの処理を適宜行って、色成分の復号に関する処理を行う。
 ステップS206において、復号部212は、全てのブロックを処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理をステップS203に戻し、それ以降の処理を繰り返す。つまり、ステップS203乃至ステップS206の各処理がブロック毎に実行される。
 ステップS206において、全てのブロックを処理したと判定された場合、処理はステップS207に進む。
 ステップS207において、並べ替えバッファ217は、ステップS204およびステップS205の処理により得られた輝度成分および色成分の復号画像の順序を復号順から再生順に並べ替える。
 ステップS208において、並べ替えバッファ217は、その再生順に並べ替えた復号画像群を、動画像として画像復号装置200の外部に出力する。
 ステップS208の処理が終了すると復号処理が終了する。
  <色成分復号処理の流れ>
 次に、図8のステップS205において実行される色成分復号処理の流れの例を、図9のフローチャートを参照して説明する。
 色成分復号処理が開始されると、復号部212は、ステップS231において、色成分の符号化データを復号し、量子化変換係数レベルを得る。
 ステップS232において、フラグ判定部251は、ステップS231の復号によりビットストリームから抽出された、処理対象のブロックに対応するフラグ情報chroma_skip_flagの値が「0」であるか否かを判定する。このフラグ情報chroma_skip_flagの値が「0」であると判定された場合、処理はステップS233に進む。この場合、色成分に対する復号のモードとして通常のモードが適用される。なお、この通常のモードの場合、色成分の符号化データがビットストリームに含まれている。したがって、復号制御部254は、画像復号装置200の各処理部を適宜制御し、色成分の符号化データを復号させる。
 ステップS233において、逆量子化部213は、ステップS231の処理により得られた量子化変換係数レベルに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数を得る。
 ステップS234において、逆直交変換部214は、ステップS233の処理により得られた変換係数に対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差を得る。
 ステップS235において、演算部215は、ステップS234の処理により得られた予測残差と、ステップS203(図8)の処理により得られた予測画像とを加算し、復号画像を導出する。
 ステップS236において、インループフィルタ部216は、ステップS235の処理により得られた復号画像に対して、インループフィルタ処理を行う。ステップS236の処理が終了すると、処理はステップS238に進む。
 また、ステップS232において、chroma_skip_flagの値が「1」であると判定された場合、処理はステップS237に進む。この場合、色成分に対する復号のモードとしてスキップモードが適用される。なお、このスキップモードの場合、色成分の符号化データがビットストリームに含まれていない。したがって、復号制御部254は、画像復号装置200の各処理部を適宜制御し、色成分に対する復号に関する処理をスキップさせる。
 ステップS237において、無彩色生成部154は、全画素の画素値が無彩色値である無彩色の画像(ブロック)を生成し、その無彩色の画像を復号画像として挿入する。つまり、このスキップモードの場合、色成分の符号化データを用いた復号画像の生成が省略され、代わりに無彩色の画像が復号画像とされる。
 ステップS237の処理が終了すると処理はステップS238に進む。つまり、スキップモードの場合、復号制御部254とフィルタ制御部253の制御により、ステップS233乃至ステップS236の各処理が省略される。
 ステップS238において、並べ替えバッファ217およびフレームメモリ218は、ステップS236の処理によりフィルタ処理された復号画像、または、ステップS237の処理により挿入された無彩色の復号画像を記憶する。
 ステップS238の処理が終了すると色成分復号処理が終了し、処理は図8に戻る。
 以上のように各処理を実行することにより、復号画像の主観画質の低減を抑制することができる。また、復号の負荷の増大を抑制することができる。
  <静止画>
 以上においては、動画像の復号処理に本技術を適用する場合を例に説明したが、本技術は、動画像の復号処理に限らず、例えば、画面間参照を行わない静止画復号処理にも適用することができる。
  <制御情報>
 以上においては、制御情報の例としてchroma_skip_flagを説明したが、符号化側から復号側に伝送される、色成分の符号化・復号に関する制御情報は任意であり、この例に限定されない。
 例えば、無彩色値として0x80以外の固定値を適用するかを示すフラグ情報として、pps_chroma_fixval_present_flagをビットストリームに含めて伝送するようにしてもよい。このpps_chroma_fixval_present_flagは、例えばピクチャパラメータセットにセットされる。例えば、pps_chroma_fixval_present_flag == 1の場合、無彩色値として0x80以外の固定値を適用することを示し、pps_chroma_fixval_present_flag == 0の場合、無彩色値として0x80を適用することを示す。
 また、例えば、無彩色値として0x80以外の固定値を指定する制御情報として、pps_cb_fixvalおよびpps_cr_fixvalをビットストリームに含めて伝送するようにしてもよい。このpps_cb_fixvalは、Cb成分の無彩色値とする固定値(0x80以外)を指定する制御情報である。また、pps_cr_fixvalは、Cr成分の無彩色値とする固定値(0x80以外)を指定する制御情報である。これらのpps_cb_fixvalおよびpps_cr_fixvalは、例えばピクチャパラメータセットにセットされる。
 <4.第2の実施の形態>
  <従来のパレットモード>
 入力画像の画素値がある程度の種類に限定されている場合に適した符号化の方法として、パレット符号化の手法が知られている。コンピュータグラフィックス等の人工画像は、局所的には使用される画素値の種類が限定されている場合が多く、ランダムノイズが存在せず平坦部分の交流成分は存在しない。しかしながら、オブジェクト境界のエッジは鋭く高周波交流成分を多く含むという、自然画像とは異なった特性を持っている。したがって、従来の典型的な符号化手法で使用される直交変換・量子化処理による情報損失が大きい。
 パレット符号化は、このようなスクリーンコンテンツの符号化効率改善を目的に使用される手法である。具体的には、パレットと呼ばれる色対応表を用いて、画素を色対応表上のインデックスで表現し、直交変換と量子化を用いずにランレングスを用いたインデックスの可逆圧縮によって符号化を行う手法である。
 例えば、図10のような色分布のブロックに対して、図11のAに示されるような色対応表(パレット)を用いて、図11のBのように、各画素の色成分をインデックス(色番号)に変換する。そして、このインデックス群を、ランレングス等を用いて符号化し、予測残差の代わりに伝送する。
 このパレット符号化は、動画圧縮標準規格ITU-T H.265/HEVCにおいて、Screen content coding extensions profileとして導入されている。現在規格策定中のVVC(Versatile Video Coding)においては、符号化ブロック毎にパレット符号化を行うか否かをパレットモードとしてフラグで指定できるような仕様となり、採用された(非特許文献1参照)。
 無彩色化されたブロックの場合、その色成分の画素値は固定値(無彩色値)となるので、このようなパレット符号化を適用することにより、符号化効率の低減を抑制することができる。しかしながら、自然画像の入力画像を無彩色化した場合、色成分は単色となるが、輝度成分は自然画像のまま多種類の画素値を取る。これに対して、VVCを含む従来の動画圧縮標準規格でのパレットモードは、輝度成分と色成分両方同時の指定となり、色成分のみを独立してパレットモードと指定することができなかった。そのため、色成分に対してパレットモードを適用する場合、輝度成分に対してもパレットモードを適用することになり、パレット上に定義されていない画素値を直接量子化して符号化するエスケープモードを頻繁に適用することになる。そのためパレットモードを用いず通常の符号化を行った場合に比べて符号化効率が低減するおそれがあった。
 例えば図10の場合、右上隅の4画素の色はパレットに存在しない。このような画素については、エスケープモードを適用し、色成分(画素値)を符号化して伝送する。そのため、エスケープモードが適用される画素は符号量が増大する。したがって、このようなエスケープモードが頻発する程、符号化効率が低減するおそれがある。
  <色成分用パレットモードの適用>
 そこで、画像の符号化において、その画像が低彩度であると判定された場合、その画像の色成分に対して、その画像の色成分の残差の係数変換、量子化、および可逆符号化を省略してインデックスを符号化するパレットモードを適用するかを示す制御情報を生成し、その制御情報を含むビットストリームを生成するようにしてもよい。
 このようにすることにより、復号画像の主観画質の低減を抑制することができる。また、負荷の増大を抑制することができる。
  <局所復号画像にパレットカラー挿入>
 また、画像の符号化において、その画像が低彩度であると判定された場合、その画像の色成分の局所復号画像として、インデックスに対応するパレットカラーの画像を生成するようにしてもよい。つまり、画像の符号化において、インデックスに対応するパレットカラーの画像を局所復号画像として利用するようにしてもよい。
 このようにすることにより、予測による量子化誤差の伝搬を抑制することができ、復号画像の主観画質の低減を抑制することができる。
  <フィルタ処理の制御>
 また、画像の符号化において、その画像が低彩度であると判定された場合、その画像の色成分の局所復号画像に対するフィルタ処理を省略してもよい。このようにすることにより、フィルタ処理による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、フィルタ処理を省略するので、負荷の増大を抑制することができる。
  <低彩度判定>
 また、画像が低彩度であるか否かの判定は、画像のブロック毎に行うようにしてもよい。その際、画素値用の閾値を用いて処理対象ブロックの各画素値が低彩度であるか否かを判定し、低彩度と判定された画素をカウントし、カウント値用の閾値を用いてその処理対象ブロックが低彩度であるか否かを判定するようにしてもよい。その画素値用の閾値は、符号化条件に応じたものであってもよい。同様に、カウント値用の閾値は、符号化条件に応じたものであってもよい。なお、この符号化条件は、ビットレートを含むようにしてもよい。また、この符号化条件は、量子化パラメータを含むようにしてもよい。もちろん、符号化条件が、ビットレートと量子化パラメータの両方を含んでいてもよい。
 このようにすることにより、符号化効率の低減を抑制することができる。
  <画像符号化装置>
 以上に説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データを符号化する画像符号化装置に、本実施の形態において上述した本技術を適用することができる。その場合の画像符号化装置の構成は、第1の実施の形態の場合(例えば図1)と同様である。
  <低彩度処理部>
 図12は、この場合の低彩度処理部131の主な構成例を示すブロック図である。図12に示されるように、低彩度処理部131は、低彩度判定部351、フラグ生成部352、符号化制御部353、パレット符号化部354、およびフィルタ制御部355を有する。
 低彩度判定部351は、入力画像が低彩度(無彩色値または無彩色値近傍の値)であるか否かの判定に関する処理を行う。例えば、低彩度判定部351は、並べ替えバッファ111から供給される入力画像を取得することができる。また、低彩度判定部351は、制御部101から供給されるpalette_flagを取得することができる。
 palette_flagは、パレットモードを適用するか否かを示すフラグ情報(制御情報)である。palette_flag == 1の場合、処理対象のブロックの輝度成分および色成分に対してパレットモードが適用される。palette_flag == 0の場合、処理対象のブロックの輝度成分および色成分に対してパレットモードが適用されず、通常のモードが適用される(予測残差が符号化される)。低彩度判定部351は、制御部101により設定されたこのフラグ情報を取得する。
 そして低彩度判定部351は、その入力画像が低彩度であるか否かを判定することができる。さらに、低彩度判定部351は、その判定結果をフラグ生成部352に供給することができる。また、低彩度判定部351は、フラグ生成部352からその判定結果に対応する値のフラグ情報chroma_palette_flagを取得することができる。
 低彩度判定部351は、フラグ情報palette_flagおよびchroma_palette_flagを、入力画像が低彩度であるか否かの判定結果として符号化制御部353乃至フィルタ制御部355に供給することができる。また、低彩度判定部351は、入力画像を符号化制御部353およびパレット符号化部354に供給することができる。
 このように入力画像の色成分が低彩度であるか否かを判定することにより、画像符号化装置100は、輝度成分の処理を変えずに、低彩度の色成分に対して好適な処理を行うことができる。これにより、輝度成分と色成分とを同様に制御する場合(輝度成分および色成分をまとめて制御する場合)に比べて、復号画像の主観画質の低減を抑制することができる。また、符号化・復号の負荷の増大を抑制することができる。さらに、符号化効率の低減を抑制することができる。
 フラグ生成部352は、フラグ情報の生成に関する処理を行うことができる。例えば、フラグ生成部352は、低彩度判定部351から供給される判定結果を取得することができる。また、フラグ生成部352は、その判定結果に基づいて、色成分の符号化のモードを示す制御情報を生成することができる。例えば、フラグ生成部352は、その制御情報として、色成分についてパレットモードを適用するか否かを示すフラグ情報であるchroma_palette_flagを生成することができる。
 chroma_palette_flag = 1の場合、色成分の符号化にパレットモードが適用される。このパレットモードの場合、画像の色成分の予測残差の符号化が省略され、色対応表を用いて画素値から返還されたインデックスが符号化される。つまり、この場合、入力画像の輝度成分は通常モードで符号化され(予測残差が符号化され)、色成分はパレットモードで符号化される(インデックスが符号化される)。
 chroma_palette_flag = 0の場合、色成分の符号化に通常モードが適用される。つまりこの場合、入力画像の輝度成分および色成分の両方とも予測残差が符号化される。
 フラグ生成部352は、任意の方法によりこのフラグ情報chroma_palette_flagの値をセットすることができる。例えば、フラグ生成部352は、低彩度判定部351により処理対象の画像が低彩度であると判定された場合、chroma_palette_flagの値を「1」にセットすることができる。また、例えば、フラグ生成部352は、低彩度判定部351により処理対象の画像が低彩度でないと判定された場合、chroma_palette_flagの値を「0」にセットすることができる。
 フラグ生成部352は、この制御情報(chroma_palette_flag)を、符号化部315に供給することができる。つまり、この制御情報は、符号化され、ビットストリームに含められて復号側に伝送され得る。
 このような制御情報を伝送することにより、以上のように生成したビットストリームを復号側に正しく復号させることができる。つまり、画像の低彩度部分における符号化・復号による色ノイズの発生を抑制することができるので、復号画像の主観画質の低減を抑制することができる。また、低彩度の部分は、色成分がインデックス化されて符号化されるので、負荷の大きな直交変換や量子化(逆量子化や逆直交変換)等の処理を省略することができる。したがって、符号化・復号の負荷の増大を抑制することができる。さらに、低彩度の部分は、色成分がインデックス化されて符号化されるので、符号化効率の低減を抑制することができる。
 なお、フラグ生成部352は、このchroma_palette_flagを低彩度判定部351にも供給することができる。
 符号化制御部353は、色成分の符号化の制御に関する処理を行うことができる。例えば、符号化制御部353は、低彩度判定部351から供給される判定結果(palette_flagおよびchroma_palette_flag)を取得することができる。また、符号化制御部353は、その判定結果(palette_flagおよびchroma_palette_flag)に基づいて、画像の色成分の符号化について画像符号化装置100の各処理部を制御することができる。例えば、符号化制御部353は、低彩度判定部351により、処理対象の画像の輝度成分が通常モードで符号化され、かつ、処理対象の画像が低彩度である(色成分をパレットモードで符号化する)と判定された場合(つまりpalette_flag == 0 && chroma_palette_flag == 1の場合)、または、処理対象の画像の輝度成分がパレットモードで符号化された場合(つまりpalette_flag == 1の場合)、画像符号化装置100の各処理部を制御し、入力画像の色成分の符号化に関する処理を省略することができる。
 その場合、例えば、符号化制御部353は、制御情報を供給することにより演算部112乃至符号化部115を制御し、入力画像の色成分の残差の生成、並びに、その残差の直交変換、量子化、およびエントロピ符号化を省略することができる。また、符号化制御部353は、制御情報を供給することにより逆量子化部117乃至演算部119を制御し、入力画像の色成分の量子化変換係数レベルの逆量子化、逆直交変換、および予測画像の加算を省略することができる。
 また、例えば、符号化制御部353は、低彩度判定部351により処理対象の画像が通常モードで符号化され、かつ、処理対象の画像が低彩度でない(色成分を通常モードで符号化する)と判定された場合(つまりpalette_flag == 0 && chroma_palette_flag == 0の場合)、画像符号化装置100の各処理部を制御し、入力画像の色成分の符号化に関する処理を行わせることができる。
 その場合、例えば、符号化制御部353は、入力画像の色成分を演算部112に供給することができる。つまり、輝度成分の場合と同様、演算部112はその入力画像の色成分と予測画像の色成分との残差を生成し、直交変換部113はその残差を直交変換し、量子化部114は、その変換係数を量子化し、符号化部115はその量子化変換係数レベルを符号化する。また、逆量子化部117はその量子化変換係数レベルを逆量子化し、逆直交変換部118はその変換係数を逆直交変換し、演算部119はその予測残差に予測画像を加算し、局所復号画像を導出する。
 このように色成分の符号化を制御することにより、低彩度の部分は、色成分の符号化(残差の生成、直交変換、量子化、エントロピ符号化、逆量子化、逆直交変換、予測残差の生成等の各処理)が省略され得る。また、予測画像の生成も省略され得る。したがって、符号化の負荷の増大を抑制することができる。
 パレット符号化部354は、パレットモードに関する処理を行うことができる。例えば、パレット符号化部354は、低彩度判定部351から供給される判定結果(palette_flagおよびchroma_palette_flag)や入力画像を取得することができる。またパレット符号化部354は、その判定結果(palette_flagおよびchroma_palette_flag)に基づいて、その入力画像をパレットモードで符号化したり、局所復号画像を生成したりすることができる。例えば、パレット符号化部354は、低彩度判定部351により、処理対象の画像の輝度成分が通常モードで符号化され、かつ、処理対象の画像が低彩度である(色成分をパレットモードで符号化する)と判定された場合(つまりpalette_flag == 0 && chroma_palette_flag == 1の場合)、または、処理対象の画像の輝度成分がパレットモードで符号化された場合(つまりpalette_flag == 1の場合)、入力画像をパレットモードで符号化することができる。
 その場合、例えば、パレット符号化部354は、所定の色対応表(パレット)を用いて入力画像の色成分をインデックス化することができる。このパレットは、画像符号化装置100(例えば、制御部101やパレット符号化部354)において設定されるようにしてもよい。その場合、適用されたパレットの情報をビットストリームに含めて復号側に伝送することにより、復号の際にも同一のパレットを利用することができる。なお、パレットは、任意のデータ単位毎に設定することができる。例えばシーケンスやピクチャ毎等、より上位のデータ単位においてパレットを設定することにより、符号量の増大を抑制することができる。もちろん、使用されるパレットがシステムにおいて予め定められており、情報の伝送無しに符号化側と復号側とで共通のパレットを使用することができるようにしてもよい。
 なお、入力画像の色成分に、そのパレットに含まれない色が存在する場合、パレット符号化部354は、その画素に対してエスケープモードを適用することができる。パレット符号化部354は、このように生成されたインデックス群(エスケープモードが適用された場合は画素値を含む)を、ランレングス符号化等を用いて符号化し、ランレングスデータを生成することができる。ランレングスによりインデックスは効率的に符号化される。
 さらに、パレット符号化部354は、そのランレングスデータを符号化部115に供給することができる。このランレングスデータは、符号化部115においてエントロピ符号化され、その符号化データがビットストリームに含められて伝送される。
 また、パレット符号化部354は、そのパレットを用いて、そのインデックス群に対応する色成分(パレットカラーとも称する)を生成することができる。さらに、パレット符号化部354は、そのパレットカラーの画像を局所復号画像として適用し、インループフィルタ部120に供給することができる。
 また、例えば、パレット符号化部354は、低彩度判定部351により処理対象の画像が通常モードで符号化され、かつ、処理対象の画像が低彩度でない(色成分を通常モードで符号化する)と判定された場合(つまりpalette_flag == 0 && chroma_palette_flag == 0の場合)、上述のパレットモードでの符号化を省略する(つまり、画像のインデックス化、インデックス群の符号化、インデックス群の画像化等の処理を行わないようにする)ことができる。
 このように色成分のパレットモードでの符号化を行うことにより、低彩度の部分は、パレットモードで符号化され得る。したがって、高負荷な色成分の直交変換、量子化、エントロピ符号化、逆量子化、逆直交変換等の処理が行われない上に、予測画像の生成も不要となるので、符号化の負荷の増大を抑制することができる。また、色成分の量子化誤差の重畳も抑制されるので復号画像の主観的画質の低減を抑制することができる。
 また、上述のようにパレットカラーの画像を挿入することにより、局所復号画像の低彩度部分における色ノイズの発生(量子化誤差の発生)を抑制することができるので、予測画像の生成における色ノイズの伝搬を抑制し、復号画像の主観画質の低減を抑制することができる。また、逆量子化、逆直交変換、予測残差の生成等の処理と比べて容易に、パレットカラーの画像を生成し、局所復号画像として挿入することができる。したがって、符号化の負荷の増大を抑制することができる。
 フィルタ制御部355は、フィルタの制御に関する処理を行うことができる。例えば、フィルタ制御部355は、低彩度判定部351から供給される判定結果(palette_flagおよびchroma_palette_flag)や入力画像を取得することができる。また、フィルタ制御部355は、低彩度判定部351から供給される判定結果(palette_flagおよびchroma_palette_flag)に基づいて、局所復号画像に対するフィルタ処理を制御することができる。例えば、フィルタ制御部355は、低彩度判定部351により処理対象の画像が通常モードで符号化され、かつ、処理対象の画像が低彩度でない(色成分を通常モードで符号化する)と判定された場合(つまりpalette_flag == 0 && chroma_palette_flag == 0の場合)、制御情報をインループフィルタ部120に供給し、色成分の局所復号画像に対するフィルタ処理を省略させることができる。
 また、例えば、フィルタ制御部355は、低彩度判定部351により処理対象の画像が通常モードで符号化され、かつ、処理対象の画像が低彩度でない(色成分を通常モードで符号化する)と判定された場合(つまりpalette_flag == 0 && chroma_palette_flag == 0の場合)、制御情報をインループフィルタ部120に供給し、色成分の局所復号画像に対するフィルタ処理を実行させることができる。
 このようにフィルタ処理を制御することにより、局所復号画像の低彩度部分における色ノイズの発生を抑制することができるので、予測画像の生成における色ノイズの伝搬を抑制し、復号画像の主観画質の低減を抑制することができる。また、局所復号画像の低彩度部分に対するフィルタ処理を省略することができるので、符号化の負荷の増大を抑制することができる。
 低彩度判定部351は、入力画像のブロック毎(例えば、CTU毎またはCU毎)に上述の判定を行うことができる。つまり、フラグ生成部352乃至フィルタ制御部355は、それぞれの処理を、入力画像のブロック毎(例えば、CTU毎またはCU毎)に行うことができる。
 したがって、画像符号化装置100は、入力画像の低彩度の部分に対してのみ、上述したような低彩度の場合に適した処理を行うことができる。したがって、このようにすることにより、画像全体で低彩度であるか否かを判定し、制御する場合に比べて、復号画像の主観画質の低減をより抑制することができる。また、符号化・復号の負荷の増大をより抑制することができる。さらに、符号化効率の低減をより抑制することができる。
  <符号化処理の流れ>
 この場合の符号化処理の流れは、第1の実施の形態の場合と同様であり、図3に示されるフローチャートと同様に各処理が実行される。
  <色成分符号化処理の流れ>
 次に、この場合の図3のステップS106において実行される色成分符号化処理の流れの例を、図13のフローチャートを参照して説明する。
 色成分符号化処理が開始されると、低彩度判定部351およびフラグ生成部352は、ステップS301において、低彩度判定処理を実行し、処理対象のブロックが低彩度の画像であるか否かを判定する。
 ステップS302において、符号化制御部353乃至フィルタ制御部355は、palette_flagの値が「0」であり、かつ、ステップS301の低彩度判定処理において設定されたフラグ情報chroma_palette_flagの値が「0」であるか否かを判定する。palette_flagの値が「0」であり、かつ、chroma_palette_flagの値が「0」である、すなわち、処理対象のブロックは、輝度成分が通常のモードで符号化され、かつ、低彩度の画像でないと判定された場合、処理はステップS303に進む。
 この場合、色成分に対して通常のモードが適用される。この通常のモードの場合、入力画像の色成分の予測残差が符号化される。つまり、その予測残差の符号化データがビットストリームに含まれる。
 ステップS303乃至ステップS309の各処理は、図4のステップS133乃至ステップS139の各処理と同様に実行される。ステップS309の処理が終了すると、処理はステップS314に進む。
 また、ステップS302において、palette_flagの値が「0」であり、かつ、chroma_palette_flagの値が「1」である、または、palette_flagの値が「1」である、すなわち、処理対象のブロックは、輝度成分が通常のモードで符号化され、かつ、低彩度の画像であると判定された場合、または、輝度成分がパレットモードで符号化されたと判定された場合、処理はステップS310に進む。
 この場合、色成分に対してパレットモードが適用される。このパレットモードの場合、入力画像の色成分はインデックス化されて符号化される。つまり、予測残差の符号化データの代わりにインデックスの符号化データがビットストリームに含まれる。
 ステップS310において、パレット符号化部354は、インデックス化に使用するパレット(色対応表)を生成する。例えば、パレット符号化部354は、予め定められているパレットを、インデックス化に用いるパレットとしてセットする。
 ステップS311において、パレット符号化部354は、そのパレットを用いて、処理対象のブロックの色成分の各画素値(つまり各画素の色)にインデックスを割り当てる。そのパレットに無い色の画素には、エスケープモードが適用される。
 ステップS312において、パレット符号化部354は、そのパレットを用いて、処理対象ブロックの各画素のインデックスに対応する色(パレットカラー)を求めてパレットカラーの画像(ブロック)を生成し、そのパレットカラーの画像を局所復号画像として挿入する。つまり、このパレットモードの場合、入力画像の色成分の予測残差を用いた局所復号画像の生成も省略され、代わりにパレットカラーの画像が局所復号画像とされる。
 ステップS313において、パレット符号化部354は、処理対象ブロックの各画素に割り当てたインデックス群を、ランレングス等を用いて符号化し、ランレングスデータを生成する。
 ステップS313の処理が終了すると処理は、ステップS314に進む。つまり、パレットモードの場合、符号化制御部353乃至フィルタ制御部355の制御により、ステップS303乃至ステップS309の処理が省略される。
 ステップS314において、フレームメモリ121は、ステップS309の処理によりフィルタ処理された局所復号画像、または、ステップS312の処理により挿入されたパレットカラーの局所復号画像を記憶する。
 ステップS315において、符号化部115は、ステップS305の処理により得られた量子化変換係数レベル、または、ステップS313の処理により得られたランレングスデータをエントロピ符号化し、符号化データを生成する。また、このとき、符号化部115は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部115は、量子化変換係数レベルから残差情報RInfoを導出し、その残差情報RInfoを符号化する。また、符号化部115は、制御情報(palette_flagおよびchroma_palette_flag)を符号化する。
 ステップS316において、蓄積バッファ116は、このようにして得られた各符号化データを蓄積する。ステップS316の処理が終了すると色成分符号化処理が終了し、処理は図3に戻る。
  <低彩度判定処理の流れ>
 次に、図13のステップS301において実行される低彩度判定処理の流れの例を、図14のフローチャートを参照して説明する。なお、低彩度であるか否かの判定方法は任意であるが、ここでは、処理対象のブロックの各画素値が低彩度であるか否かを判定し、低彩度の画素数をカウントし、そのカウント値の大小に基づいて、処理対象のブロックが低彩度の画像であるか否かを判定するものとする。
 低彩度判定処理が開始されると、ステップS341乃至ステップS345の各処理は、図5のステップS171乃至ステップS175の各処理と同様に実行される。
 ステップS345の処理により、式(2)が真である、すなわち、カウント値cntが所定のカウント値用の閾値より大きいと判定された場合、処理はステップS346に進む。この場合、低彩度判定部351は、処理対象ブロックが低彩度であると判定する。
 ステップS346において、フラグ生成部352は、フラグ情報chroma_palette_flagの値を「1」にセットする。つまり、低彩度のブロックには、入力画像の色成分をインデックス化して符号化するパレットモードが適用される。ステップS346の処理が終了すると低彩度判定処理が終了し、処理は図13に戻る。
 また、図14のステップS345において、式(2)が偽である、すなわち、カウント値cntが所定のカウント値用の閾値以下であると判定された場合、処理はステップS347に進む。この場合、低彩度判定部351は、処理対象ブロックが低彩度ではないと判定する。
 ステップS347において、フラグ生成部352は、フラグ情報chroma_palette_flagの値を「0」にセットする。つまり、低彩度のブロックには、入力画像の色成分の予測残差の符号化が行われる通常のモードが適用される。ステップS347の処理が終了すると低彩度判定処理が終了し、処理は図13に戻る。
 以上のように各処理を実行することにより、復号画像の主観画質の低減を抑制することができる。また、符号化・復号の負荷の増大を抑制することができる。
  <カウント値用の閾値Thcntの制御>
 第1の実施の形態の場合と同様、上述したカウント値用の閾値Thcntは符号化の条件に応じて可変としてもよい。例えば、画像符号化装置100におけるビットレートや、符号化ブロックにおける量子化パラメータ等に応じて閾値Thcntが設定されるようにしてもよい。例えば、目標ビットレートTrに対して、量子化パラメータQにおける実発生符号ビットレートをRrとする場合、低彩度判定部351(または制御部101)が、上述した式(3)のように閾値Thcntを導出するようにしてもよい。
 このように閾値Thcntを導出することにより、目標ビットレートが十分に高い、符号化ブロックの量子化パラメータが十分小さい、または入力画像の符号化が容易で実発生ビットレートが低い場合に、閾値Thcntを上昇させる(値を大きくする)ことができる。例えば、低彩度部分の色差成分を符号化しても量子化誤差による色ノイズが視認されにくいと判断される場合、このような閾値Thcntの制御により、入力画像と復号画像の不必要な乖離を抑制することができる。
 また、符号化効率を優先させたい場合、符号化ブロックが低彩度と判定されやすくすればよいので、閾値Thcntを低下させればよい(値を小さくすればよい)。上述の式(3)を用いて閾値Thcntを導出することにより、目標ビットレートが低い、量子化パラメータが大きい、または実発生ビットレートが高く、使用可能な符号量が限定されている場合に、閾値Thcntを低下させる(値を小さくする)ことができる。したがって、色差成分の符号量が削減され、優先したい輝度情報に集中して符号を割り当てることができる。
  <画素値用の閾値ThCbgrey, ThCrgreyの制御>
 また第1の実施の形態の場合と同様、上述した画素値用の閾値ThCbgreyおよびThCrgreyについても同様の考え方で制御することができる。例えば、低彩度判定部351(または制御部101)が、上述した式(4)および式(5)のように閾値ThCbgreyおよびThCrgreyを導出するようにしてもよい。
 このように閾値ThCbgreyおよびThCrgreyを導出することにより、目標ビットレートが十分に高い、符号化ブロックの量子化パラメータが十分小さい、または入力画像の符号化が容易で実発生ビットレートが低い場合に、閾値ThCbgreyおよびThCrgreyを低下させる(値を小さくする)ことができる。例えば、量子化誤差が小さいと目される場合にこのように閾値ThCbgreyおよびThCrgreyを制御することにより、符号化ブロックが低彩度と判定されにくくする(典型的には判定されないようにする)ことができ、入力画像と復号画像の不必要な乖離を抑制することができる。
 また、目標ビットレートが低い、量子化パラメータが大きい、または実発生ビットレートが高く、使用可能な符号量が限定されている場合に、閾値ThCbgreyおよびThCrgreyを上昇させる(値を大きくする)ことができる。例えば、符号化効率を優先させたい場合にこのように閾値ThCbgreyおよびThCrgreyを制御することにより、符号化ブロックが低彩度と判定されやすくすることができる。したがって、色差成分の符号量が削減され、優先したい輝度情報に集中して符号を割り当てることができる。
 なお、上述のカウント値用の閾値Thcntの制御と、画素値用の閾値ThCbgreyおよびThCrgreyの制御とを併用してもよい。例えば、いずれか一方を選択して適用してもよいし、両方を適用してもよい。
  <静止画>
 以上においては、動画像の符号化処理に本技術を適用する場合を例に説明したが、上述した本技術は、動画像の符号化処理に限らず、例えば、画面間参照を行わない静止画符号化処理にも適用することができる。
  <CU分割の制御>
 非特許文献1に記載の符号化方式のようにCTU内のCU分割が輝度成分と色差成分で独立の場合で、CTUが無彩色に近い低彩度であると判定されている状況においては、輝度成分は符号化に適したCU分割を行う一方で、色差成分のCU分割は行わずに符号化効率を高めるような手法も採用できる。
  <パレットモードの適用>
 次に、復号について説明する。例えば、画像の色成分の符号化においてパレットモードが適用されたと判定された場合、その画像の色成分の符号化データをパレットモードで復号するように制御してもよい。
 このようにすることにより、符号化の際にパレットモードが適用された符号化データを正しく復号することができる。したがって、復号画像の主観画質の低減を抑制することができる。また、色成分の予測残差の符号化データの復号を省略することができるので、負荷の増大を抑制することができる。さらに、色成分については、予測残差の符号化データの代わりにインデックスの符号化データが伝送されるので、符号化効率の低減を抑制することができる。
  <復号画像にパレットカラー挿入>
 また、画像の符号化データの復号において、上述のパレットモードを適用すると判定された場合、その画像の色成分の復号画像として、インデックスに対応するパレットカラーの画像を生成してもよい。
 このようにすることにより、符号化の際にパレットモードが適用された符号化データを正しく復号することができる。したがって、復号画像の主観画質の低減を抑制することができる。また、逆量子化や逆直交変換等の高負荷の処理を省略することができるので、負荷の増大を抑制することができる。
  <フィルタ処理の制御>
 また、画像の符号化データの復号において、上述のパレットモードを適用すると判定された場合、その画像の色成分の復号画像に対するフィルタ処理を省略してもよい。このようにすることにより、フィルタ処理による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、フィルタ処理を省略するので、負荷の増大を抑制することができる。
  <画像符号化装置>
 以上に説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データの符号化データを復号する画像復号装置に、本実施の形態において上述した本技術を適用することができる。その場合の画像復号装置の構成は、第1の実施の形態の場合(例えば図6)と同様である。
  <低彩度処理部>
 図15は、この場合の低彩度処理部231の主な構成例を示すブロック図である。図15に示されるように、低彩度処理部231は、フラグ判定部451、パレット復号部452、フィルタ制御部453、および復号制御部454を有する。
 フラグ判定部451は、制御情報(フラグ情報)であるpalette_flagおよびchroma_palette_flagの判定に関する処理を行う。例えば、フラグ判定部451は、復号部212から供給されるpalette_flagおよびchroma_palette_flagを取得することができる。また、フラグ判定部451は、復号部212から供給されるランレングスデータを取得することができる。さらに、フラグ判定部451は、palette_flagおよびchroma_palette_flagを判定することができる。また、フラグ判定部451は、その判定結果を、パレット復号部452乃至復号制御部454に供給することができる。さらに、フラグ判定部451は、ランレングスデータをパレット復号部452に供給することができる。
 パレット復号部452は、パレットモードに関する処理を行う。例えば、パレット復号部452は、フラグ判定部451から供給される判定結果(palette_flagおよびchroma_palette_flag)やランレングスデータを取得することができる。またパレット復号部452は、フラグ判定部451から供給される判定結果に基づいて、画像の色成分について、パレットモードの復号を行うことができる。例えば、フラグ判定部451により、画像の色成分に対して、上述のパレットモードを適用すると判定された場合(つまり、palette_flag == 0およびchroma_palette_flag == 1、または、palette_flag == 1の場合)、パレット復号部452は、ランレングスデータをランレングス復号し、インデックス群(各画素のインデックス)を復元することができる。さらにパレット復号部452は、符号化の際に用いられたパレットと同一のパレットを用いて、復元したインデックスに対応するパレットカラーの画像を生成することができる。またパレット復号部452は、生成したパレットカラーの画像を復号画像としてインループフィルタ部216に供給することができる。
 このパレットカラーの画像は、復号画像として、インループフィルタ部216から並べ替えバッファ217に供給され、蓄積される。また、このパレットカラーの画像は、インループフィルタ部216からフレームメモリ218に供給されて記憶され、その後の復号に利用される予測画像の生成に利用される。
 なお、パレット復号部452が、符号化側が使用するパレットと同一のパレットを予め有するようにしてもよい。この場合、システムにおいて予めパレットが定義されている。また、符号化側において設定されたパレットの情報が、ビットストリームに含める等して、復号側に伝送されるようにしてもよい。パレットの情報は、例えばシーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダ等、ビットストリームの任意の場所に格納することができる。その場合、パレット復号部452は、復号部212が復号して得られたパレットの情報を取得すればよい。
 フィルタ制御部453は、フラグ判定部451から供給される判定結果に基づいて、復号画像に対するフィルタ処理を制御することができる。例えば、フラグ判定部451により、画像の色成分に対して、上述のパレットモードを適用すると判定された場合(つまり、palette_flag == 0およびchroma_palette_flag == 1、または、palette_flag == 1の場合)、フィルタ制御部453は、制御情報をインループフィルタ部216に供給し、色成分の復号画像に対するフィルタ処理を省略させることができる。
 また、例えば、フィルタ制御部453は、フラグ判定部451により、画像の色成分に対して、上述のパレットモードを適用しない(通常のモードを適用する)と判定された場合(つまりpalette_flag == 0およびchroma_palette_flag == 0の場合)、制御情報をインループフィルタ部216に供給し、色成分の復号画像に対するフィルタ処理を実行させることができる。
 このようにフィルタ処理を制御することにより、復号画像の低彩度部分における色ノイズの発生を抑制することができるので、復号画像の主観画質の低減を抑制することができる。また、復号画像の低彩度部分に対するフィルタ処理を省略することができるので、復号の負荷の増大を抑制することができる。
 復号制御部454は、フラグ判定部451から供給される判定結果に基づいて、色成分の符号化データの復号について画像復号装置200の各処理部を制御することができる。例えば、復号制御部454は、フラグ判定部451により、画像の色成分に対して、上述のパレットモードを適用すると判定された場合(つまり、palette_flag == 0およびchroma_palette_flag == 1、または、palette_flag == 1の場合)、画像復号装置200の各処理部を制御し、色成分の符号化データの復号に関する処理を省略することができる。
 その場合、例えば、復号制御部454は、制御情報を供給することにより復号部212乃至演算部215を制御し、色成分の符号化データのエントロピ復号、逆量子化、逆直交変換、並びに、復号画像の生成等の処理を省略することができる。また、復号制御部454は、制御情報を供給することにより予測部219を制御し、予測画像の生成を省略することができる。
 また、例えば、復号制御部454は、フラグ判定部251により、画像の色成分に対して、上述のパレットモードを適用しない(通常のモードを適用する)と判定された場合(つまりpalette_flag == 0およびchroma_palette_flag == 0の場合)、画像復号装置200の各処理部を制御し、色成分の符号化データの復号に関する処理を行わせることができる。
 その場合、例えば、復号制御部454は、復号部212を制御し、色成分の符号化データをエントロピ復号させることができる。つまり、輝度成分の場合と同様、復号部212は、符号化データをエントロピ復号し、逆量子化部213は、その量子化変換係数レベルを逆量子化し、逆直交変換部214は、その変換係数を逆直交変換し、演算部215は、その予測残差に予測画像を加算し、復号画像を生成する。
 このように色成分の復号を制御することにより、画像復号装置200は、低彩度の部分の処理を省略し得る。また、予測画像の生成も省略し得る。したがって、復号の負荷の増大を抑制することができる。
 なお、フラグ判定部451は、ブロック毎(例えば、CTU毎またはCU毎)に上述の判定を行うことができる。つまり、パレット復号部452乃至復号制御部454は、それぞれの処理を、ブロック毎(例えば、CTU毎またはCU毎)に行うことができる。
 したがって、画像復号装置200は、画像の低彩度の部分に対してのみ、上述したような低彩度の場合に適した処理を行うことができる。したがって、このようにすることにより、画像全体で低彩度であるか否かを判定し、制御する場合に比べて、復号画像の主観画質の低減をより抑制することができる。また、復号の負荷の増大をより抑制することができる。さらに、符号化効率の低減をより抑制することができる。
  <復号処理の流れ>
 この場合の復号処理の流れは、第1の実施の形態の場合と同様であり、図8に示されるフローチャートと同様に各処理が実行される。
  <色成分復号処理の流れ>
 次に、この場合の図8のステップS205において実行される色成分復号処理の流れの例を、図16のフローチャートを参照して説明する。
 色成分復号処理が開始されると、復号部212は、ステップS401において、色成分の符号化データを復号し、量子化変換係数レベルを得る。
 ステップS402において、フラグ判定部451は、ステップS401の復号によりビットストリームから抽出された、処理対象のブロックに対応するフラグ情報palette_flagの値が「0」であり、かつ、フラグ情報chroma_palette_flagの値が「0」であるか否かを判定する。palette_flagの値が「0」であり、かつ、chroma_palette_flagの値が「0」である、すなわち、処理対象のブロックは、輝度成分が通常のモードで符号化され、かつ、低彩度の画像でないと判定された場合、処理はステップS403に進む。
 この場合、色成分に対して通常のモードが適用される。この通常のモードの場合、色成分の予測残差の符号化データが復号される。つまり、その予測残差の符号化データがビットストリームに含まれている。
 ステップS403乃至ステップS406の各処理は、図9のステップS233乃至ステップS236の各処理と同様に実行される。ステップS406の処理が終了すると、処理はステップS410に進む。
 また、ステップS402において、palette_flagの値が「0」であり、かつ、chroma_palette_flagの値が「1」である、または、palette_flagの値が「1」である、すなわち、処理対象のブロックは、輝度成分が通常のモードで符号化され、かつ、低彩度の画像であると判定された場合、または、輝度成分がパレットモードで符号化されたと判定された場合、処理はステップS407に進む。
 この場合、色成分に対してパレットモードが適用される。このパレットモードの場合、入力画像の色成分はインデックス化されて符号化される。つまり、予測残差の符号化データの代わりにインデックスの符号化データがビットストリームに含まれる。
 ステップS407において、パレット復号部452は、ビットストリームに含められて伝送された、色成分のインデックス化の際に使用されたのと同一のパレット(色対応表)を復元する。なお、例えば、パレット復号部452が、予め定められているパレットを、インデックス化に用いられたパレットと同一のパレットとしてセットしてもよい。
 ステップS408において、パレット復号部452は、ランレングスデータをランレングス復号し、インデックスを復元する。
 ステップS409において、パレット復号部452は、ステップS407において復元されたパレットを用いて、ステップS408において復元したインデックスに対応する色(パレットカラー)を求めてパレットカラーの画像(ブロック)を生成し、そのパレットカラーの画像を復号画像として挿入する。ステップS409の処理が終了すると、処理はステップS410に進む。つまり、パレットモードの場合、フィルタ制御部453および復号制御部454の制御により、ステップS403乃至ステップS406の各処理の代わりに、ステップS407乃至ステップS409の各処理が実行される。
 ステップS410において、並べ替えバッファ217およびフレームメモリ218は、ステップS406の処理によりフィルタ処理された復号画像、または、ステップS409の処理により挿入されたパレットカラーの復号画像を記憶する。
 以上のように各処理を実行することにより、復号画像の主観画質の低減を抑制することができる。また、復号の負荷の増大を抑制することができる。
  <静止画>
 以上においては、動画像の復号処理に本技術を適用する場合を例に説明したが、本技術は、動画像の復号処理に限らず、例えば、画面間参照を行わない静止画復号処理にも適用することができる。
 <5.第3の実施の形態>
  <低彩度クリップ処理の適用>
 なお、符号化・復号される画像に対して、無彩色近傍の低彩度な入力画像を無彩色にクリップするような処理(低彩度クリップ処理とも称する)を実施しても良い。
  <第1の実施の形態への適用>
 例えば、第1の実施の形態において説明した画像符号化装置100の入力画像に対して、上述の低彩度クリップ処理を行うようにしてもよい。その場合の画像符号化装置の構成は、第1の実施の形態の場合(例えば図1)と同様である。この場合の低彩度処理部131の主な構成例を図17に示す。
 図17に示されるように、この場合の低彩度処理部131は、図2の構成に加え、低彩度クリップ処理部511を有する。
 低彩度クリップ処理部511は、低彩度クリップ処理に関する処理を行う。例えば、低彩度クリップ処理部511は、並べ替えバッファ111から供給される入力画像を取得することができる。また、低彩度クリップ処理部511は、その入力画像に対して低彩度クリップ処理を行うことができる。
 例えば、低彩度クリップ処理部511は、入力画像における色差成分Cb, Crの2成分について、成分毎に別途定められた無彩色値Cbgrey, Crgreyとの差分絶対値を取得し、両成分の差分絶対値が、それぞれ成分毎に別途定める画素値用の閾値ThCbgrey, ThCrgrey以下であるような画素のCb, Crの値をそれぞれ無彩色値Cbgrey, Crgreyに置換する。低彩度クリップ処理部511は、このように低彩度の画素に対してクリップ処理を行った色成分を低彩度判定部151に供給する。低彩度判定部151乃至フィルタ制御部155は、この画像に対して、第1の実施の形態において説明したように各処理を行う。
 このようにすることにより、画像の低彩度部分における符号化・復号による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、このような低彩度クリップ処理を行うことにより、ブロック毎の低彩度判定において低彩度と判定されず、通常のモードで符号化されるブロックについても、無彩色値付近の値のバラつきを抑制することができる。したがって、符号化容易性を増大させ、色ノイズの発生頻度や程度を抑制することができる。
 なお、低彩度判定部151および低彩度クリップ処理部511は、低彩度であるか否かの判定結果を共有することができる。低彩度クリップ処理部511および低彩度判定部151のいずれか一方において求めた、低彩度であるか否かの判定結果(無彩色判定マップ)を、他方において利用してもよい。このようにすることにより、処理の冗長性を低減させることができ、負荷の増大を抑制することができる。
  <符号化処理の流れ>
 この場合の符号化処理の流れは、第1の実施の形態の場合と同様であり、図3に示されるフローチャートと同様に各処理が実行される。
  <色成分符号化処理の流れ>
 次に、この場合の図3のステップS106において実行される色成分符号化処理の流れの例を、図18のフローチャートを参照して説明する。
 色成分符号化処理が開始されると、低彩度クリップ処理部511は、ステップS501において、低彩度クリップ処理を実行する。
 ステップS502乃至ステップS514の各処理は、図4のステップS131乃至ステップS143の各処理と同様に実行される。ステップS514の処理が終了すると色成分符号化処理が終了し、処理は図3に戻る。
  <低彩度判定処理の流れ>
 この場合の低彩度処理(図18のステップS502)の流れは、第1の実施の形態の場合と同様であり、図5に示されるフローチャートと同様に各処理が実行される。
  <低彩度クリップ処理の流れ>
 次に、図18のステップS501において実行される低彩度クリップ処理の流れの例を、図19のフローチャートを参照して説明する。
 低彩度クリップ処理が開始されると、低彩度クリップ処理部511は、ステップS541において、色成分(Cb, Cr)について、処理対象の画素が低彩度画素であるか否かを判定する。なお、低彩度であるか否かの判定方法は任意である。例えば、図5のフローチャートを参照して説明した低彩度判定処理行うことにより、低彩度であるか否かの判定を行うようにしてもよい。
 低彩度画素であると判定された場合、処理はステップS542に進む。ステップS542において、低彩度クリップ処理部511は、その処理対象の画素の画素値(色成分(Cb, Cr))を無彩色値Cbgrey, Crgreyに置換する。ステップS542の処理が終了すると、処理はステップS543に進む。
 また、ステップS541において、低彩度画素でないと判定された場合、ステップS542の処理が省略され、処理はステップS543に進む。
 ステップS543において、低彩度クリップ処理部511は、処理対象のブロックの全画素を処理したか否かを判定する。未処理の画素が存在すると判定された場合、処理はステップS541に戻り、それ以降の処理を繰り返す。つまり、処理対象のブロックの各画素に対して、ステップS541乃至ステップS543の各処理が実行される。
 そして、ステップS543において全画素が処理されたと判定された場合、低彩度クリップ処理が終了し、処理は図18に戻る。
 以上のように各処理を実行することにより、画像の低彩度部分における符号化・復号による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、無彩色値付近の値のバラつきを抑制することができ、色ノイズの発生頻度や程度を抑制することができる。
  <第2の実施の形態への適用>
 例えば、第2の実施の形態において説明した画像符号化装置100の入力画像に対して、上述の低彩度クリップ処理を行うようにしてもよい。その場合の画像符号化装置100の構成は、第1の実施の形態の場合(例えば図1)と同様である。この場合の低彩度処理部131の主な構成例を図20に示す。
 図20に示されるように、この場合の低彩度処理部131は、図12の構成に加え、低彩度クリップ処理部521を有する。
 低彩度クリップ処理部521は、上述の低彩度クリップ処理部511と同様に、低彩度クリップ処理に関する処理を行う。例えば、低彩度クリップ処理部521は、並べ替えバッファ111から供給される入力画像を取得することができる。また、低彩度クリップ処理部521は、その入力画像に対して低彩度クリップ処理を行うことができる。
 例えば、低彩度クリップ処理部521は、入力画像における色差成分Cb, Crの2成分について、成分毎に別途定められた無彩色値Cbgrey, Crgreyとの差分絶対値を取得し、両成分の差分絶対値が、それぞれ成分毎に別途定める画素値用の閾値ThCbgrey, ThCrgrey以下であるような画素のCb, Crの値をそれぞれ無彩色値Cbgrey, Crgreyに置換する。低彩度クリップ処理部521は、このように低彩度の画素に対してクリップ処理を行った色成分を低彩度判定部351に供給する。低彩度判定部351乃至フィルタ制御部355は、この画像に対して、第2の実施の形態において説明したように各処理を行う。
 このようにすることにより、画像の低彩度部分における符号化・復号による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、このような低彩度クリップ処理を行うことにより、ブロック毎の低彩度判定において低彩度と判定されず、通常のモードで符号化されるブロックについても、無彩色値付近の値のバラつきを抑制することができる。したがって、符号化容易性を増大させ、色ノイズの発生頻度や程度を抑制することができる。
  <符号化処理の流れ>
 この場合の符号化処理の流れは、第1の実施の形態の場合と同様であり、図3に示されるフローチャートと同様に各処理が実行される。
  <色成分符号化処理の流れ>
 次に、この場合の図3のステップS106において実行される色成分符号化処理の流れの例を、図21のフローチャートを参照して説明する。
 色成分符号化処理が開始されると、低彩度クリップ処理部511は、ステップS571において、低彩度クリップ処理を実行する。この低彩度クリップ処理は、図19のフローチャートと同様の流れで実行される。
 ステップS572乃至ステップS587の各処理は、図13のステップS301乃至ステップS316の各処理と同様に実行される。ステップS587の処理が終了すると色成分符号化処理が終了し、処理は図3に戻る。
  <低彩度判定処理の流れ>
 この場合の低彩度処理(図21のステップS572)の流れは、第1の実施の形態の場合と同様であり、図5に示されるフローチャートと同様に各処理が実行される。
 以上のように各処理を実行することにより、画像の低彩度部分における符号化・復号による色ノイズの発生を抑制することができ、復号画像の主観画質の低減を抑制することができる。また、無彩色値付近の値のバラつきを抑制することができ、色ノイズの発生頻度や程度を抑制することができる。
  <閾値の制御>
 第1の実施の形態や第2の実施の形態の場合と同様、上述したカウント値用の閾値Thcntは符号化の条件に応じて可変としてもよい。また、そのカウント値用の閾値Thcntの導出方法は、任意であり、例えば、第1の実施の形態や第2の実施の形態において説明した方法と同様であってもよい。
 また、画素値用の閾値ThCbgreyおよびThCrgreyについても第1の実施の形態や第2の実施の形態の場合と同様に、符号化の条件に応じて可変としてもよい。また、その画素値用の閾値ThCbgreyおよびThCrgreyの導出方法は、任意であり、例えば、第1の実施の形態や第2の実施の形態において説明した方法と同様であってもよい。
 なお、上述のカウント値用の閾値Thcntの制御と、画素値用の閾値ThCbgreyおよびThCrgreyの制御とを併用してもよい。例えば、いずれか一方を選択して適用してもよいし、両方を適用してもよい。
  <低彩度クリップ処理の他の適用例>
 なお、低彩度クリップ処理は、上述のように画像符号化装置100の入力画像以外に対しても適用することができる。
 図22は、入力画像を符号化して伝送し、復号して出力する画像伝送システム600の主な構成例を示すブロック図である。この画像伝送システム600は、画像を符号化して送信する画像送信装置601と、画像の符号化データを受信し、復号する画像受信装置602を有する。
 画像送信装置601は、入力画像処理部611、後処理部612、符号化部613、および送信部614を有する。
 入力画像処理部611は、入力される画像に対して、例えば、色調整、フィルタ処理、デモザイク処理等、任意の信号処理を行う。入力画像処理部611は、信号処理を施した画像を後処理部612に供給する。
 後処理部612は、その画像に対して、例えば、超解像や部分画像の切り出し等、任意の画像処理を行う。後処理部612は、画像処理を施した画像を符号化部613に供給する。
 符号化部613は、その画像を符号化し、ビットストリームとして送信部614に供給する。その際、符号化部613は、以上に説明した本技術を適用した方法で画像を符号化する。
 送信部614は、符号化部613から供給されるビットストリームを、所定の通信媒体を介して、画像受信装置602宛てに送信する。
 画像受信装置602は、受信部621、復号部622、出力画像処理部623、および出力部624を有する。
 受信部621は、画像送信装置601から送信されたビットストリームを受信し、復号部622に供給する。
 復号部622は、そのビットストリームを復号し、復号画像を生成する。その際、復号部622は、以上に説明した本技術を適用した方法(すなわち、符号化部613が用いる符号化方法に対応する復号方法)でビットストリームを復号する。復号部622は、その復号画像を出力画像処理部623に供給する。
 出力画像処理部623は、その復号画像に対して任意の画像処理を行い、画像処理を施した復号画像を出力部624に供給する。
 出力部624は、その復号画像を画像受信装置602(画像伝送システム600)の外部に出力する。
 このような構成の画像伝送システム600において、例えば図17乃至図21を参照して上述したように、符号化部613の入力画像に対して低彩度クリップ処理を行うようにしてもよい。
 それ以外にも、例えば、図22に示されるように、符号化部613に入力される前の後処理部612において低彩度クリップ処理が行われるようにしてもよい。この場合、低彩度クリップ処理における低彩度であるか否かの判定結果は、ブロック毎のマップ(無彩色判定マップ)として、符号化部613に供給され、低彩度処理部131による低彩度判定に利用されるようにしてもよい。これにより、画像伝送システム600内の複数箇所で低彩度画素のカウント処理を行う冗長性を削減できる。
 なお、カウント値用の閾値Thcntや、画素値用の閾値ThCbgreyおよびThCrgreyを符号化条件等に応じて制御する場合、これらの閾値の設定が符号化部613において行われ、その設定された閾値が後処理部612(において行われる低彩度クリップ処理)に供給され、低彩度クリップ処理においてその閾値が利用されるようにしてもよい。
 また、例えば、図23に示されるように、符号化部613において生成される局所復号画像に対して、低彩度クリップ処理が行われるようにしてもよい。このようにすることにより予測画像を通じた低彩度色ノイズの伝播を抑制することができる。また、この場合、復号部622においても、復号画像に対して同様の低彩度クリップ処理を行うことができる。このようにすることにより、符号化装置における局所復号画像と復号化装置における復号画像を等しくすることができ、予測画像のミスマッチの発生を抑制することができる。
 なお、カウント値用の閾値Thcntや、画素値用の閾値ThCbgreyおよびThCrgreyを符号化条件等に応じて制御する場合、符号化部613が、これらの閾値の設定を行い、設定した閾値を符号化に用いるとともに、復号部622に供給し、復号部622がその閾値を用いて復号を行うようにすればよい。
 また、例えば、図24に示されるように、復号部622が出力した後の出力画像処理部623において、復号画像に対して低彩度クリップ処理が行われるようにしてもよい。このようにすることにより、量子化誤差等の色ノイズの重畳が抑制される。
 なお、カウント値用の閾値Thcntや、画素値用の閾値ThCbgreyおよびThCrgreyを符号化条件等に応じて制御する場合、符号化部613が、これらの閾値の設定を行い、設定した閾値を符号化に用いるとともに、復号部622に供給し、復号部622がその閾値を復元して出力画像処理部623(において行われる低彩度クリップ処理)に供給し、低彩度クリップ処理においてその閾値が利用されるようにしてもよい。
 <6.付記>
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図25は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図25に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
 その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
  <情報・処理の単位>
 以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
  <制御情報>
 以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報(例えばpresent_flag)を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
  <本技術の適用対象>
 本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
 また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
 さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
 また、以上においては、本技術の適用例として画像符号化装置100および画像復号装置200について説明したが、本技術は、任意の構成に適用することができる。
 例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
 また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
 また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
 なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
  <本技術を適用可能な分野・用途>
 本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
 例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
  <その他>
 なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
 また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 なお、本技術は以下のような構成も取ることができる。
 (1) 符号化対象の画像が低彩度であるか否かを判定する低彩度判定部と、
 前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成する制御情報生成部と、
 前記制御情報生成部により生成された前記制御情報を含むビットストリームを生成するビットストリーム生成部と
 を備える画像処理装置。
 (2) 前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の残差の係数変換、量子化、および可逆符号化を省略するように制御する符号化制御部をさらに備え、
 前記制御情報生成部は、前記画像の色成分に対して、前記残差の係数変換、量子化、および可逆符号化を省略するスキップモードを適用するかを示す前記制御情報を生成する
 (1)に記載の画像処理装置。
 (3) 前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像として、無彩色の画像を生成する無彩色生成部をさらに備える
 (2)に記載の画像処理装置。
 (4) 前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
 (3)に記載の画像処理装置。
 (5) 前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の残差の係数変換、量子化、および可逆符号化を省略するように制御する符号化制御部と、
 所定の色対応表を用いて前記画像の色成分をインデックスに変換し、前記インデックスを符号化するパレット符号化部と
 をさらに備え、
 前記制御情報生成部は、前記画像の色成分に対して、前記残差の係数変換、量子化、および可逆符号化を省略して前記インデックスを符号化するパレットモードを適用するかを示す前記制御情報を生成する
 (1)に記載の画像処理装置。
 (6) 前記パレット符号化部は、前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像として、前記インデックスに対応するパレットカラーの画像を生成する
 (5)に記載の画像処理装置。
 (7) 前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
 (6)に記載の画像処理装置。
 (8) 前記低彩度判定部は、前記画像のブロック毎に、低彩度であるか否かを判定する
 (1)乃至(7)のいずれかに記載の画像処理装置。
 (9) 前記低彩度判定部は、画素値用の閾値を用いて前記ブロックの各画素値が低彩度であるか否かを判定し、低彩度と判定された画素をカウントし、カウント値用の閾値を用いて前記ブロックが低彩度であるか否かを判定する
 (8)に記載の画像処理装置。
 (10) 前記低彩度判定部は、符号化条件に応じた前記画素値用の閾値を用いて前記ブロックの各画素値が低彩度であるか否かを判定し、符号化条件に応じた前記カウント値用の閾値を用いて前記ブロックが低彩度であるか否かを判定する
 (9)に記載の画像処理装置。
 (11) 前記符号化条件は、ビットレートおよび量子化パラメータの内の少なくとも1つを含む
 (10)に記載の画像処理装置。
 (12) 前記画像の色成分の低彩度な画素値を無彩色値にクリップするクリップ処理部をさらに備える
 (1)乃至(11)のいずれかに記載の画像処理装置。
 (13) 符号化対象の画像が低彩度であるか否かを判定し、
 前記画像が低彩度であると判定された場合、前記画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成し、
 生成された前記制御情報を含むビットストリームを生成する
 画像処理方法。
 (14) ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定するモード判定部と、
 前記モード判定部により前記モードを適用すると判定された場合、前記画像の色成分の符号化データの復号を省略するように制御する復号制御部と
 を備える画像処理装置。
 (15) 前記モード判定部により、前記画像の色成分に対して、前記残差の符号化データの可逆復号、逆量子化、および逆係数変換を省略するスキップモードを適用すると判定された場合、前記画像の色成分の復号画像として、無彩色の画像を生成する無彩色生成部をさらに備え、
 前記復号制御部は、前記モード判定部により前記スキップモードを適用すると判定された場合、前記可逆復号、前記逆量子化、および前記逆係数変換を省略するように制御する
 (14)に記載の画像処理装置。
 (16) 前記モード判定部により、前記画像の色成分に対して、前記スキップモードを適用すると判定された場合、前記復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
 (15)に記載の画像処理装置。
 (17) 前記モード判定部により、前記画像の色成分に対して、前記残差の符号化データの可逆復号、逆量子化、および逆係数変換を省略し、所定の色対応表を用いて前記画像の色成分を変換したインデックスの符号化データを復号するパレットモードを適用すると判定された場合、前記インデックスの符号化データを復号し、前記画像の色成分の復号画像として、前記インデックスに対応するパレットカラーの画像を生成するパレット復号部をさらに備え、
 前記復号制御部は、前記モード判定部により、前記画像の色成分に対して、前記パレットモードを適用すると判定された場合、前記可逆復号、前記逆量子化、および前記逆係数変換を省略するように制御する
 (14)に記載の画像処理装置。
 (18) 前記モード判定部により、前記画像の色成分に対して、前記パレットモードを適用すると判定された場合、前記復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
 (17)に記載の画像処理装置。
 (19) 前記モード判定部は、前記画像の輝度成分および色成分に対して前記パレットモードを適用するかを示す第1の制御情報と、前記画像の色成分に対して前記パレットモードを適用するかを示す第2の制御情報との両方に基づいて、前記画像の色成分に対して前記パレットモードを適用するかを判定する
 (17)または(18)に記載の画像処理装置。
 (20) ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定し、
 前記モードを適用すると判定された場合、前記画像の色成分の符号化データの復号を省略するように制御する
 画像処理方法。
 100 画像符号化装置, 115 符号化部, 131 低彩度処理部, 151 低彩度判定部, 152 フラグ生成部, 153 符号化制御部, 154 無彩色生成部, 155 フィルタ制御部, 200 画像復号装置, 212 復号部, 231 低彩度処理部, 251 フラグ判定部, 252 無彩色生成部, 253 フィルタ制御部, 254 復号制御部, 351 低彩度判定部, 352 フラグ生成部, 353 符号化制御部, 354 パレット符号化部, 355 フィルタ制御部, 451 フラグ判定部, 452 パレット復号部, 453 フィルタ制御部, 454 復号制御部, 511 低彩度クリップ処理部, 521 低彩度クリップ処理部, 600 画像伝送システム, 601 画像送信装置, 602 画像受信装置, 611 入力画像処理部, 612 後処理部, 613 符号化部, 614 送信部, 621 受信部, 622 復号部, 623 出力画像処理部, 624 出力部

Claims (20)

  1.  符号化対象の画像が低彩度であるか否かを判定する低彩度判定部と、
     前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成する制御情報生成部と、
     前記制御情報生成部により生成された前記制御情報を含むビットストリームを生成するビットストリーム生成部と
     を備える画像処理装置。
  2.  前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の残差の係数変換、量子化、および可逆符号化を省略するように制御する符号化制御部をさらに備え、
     前記制御情報生成部は、前記画像の色成分に対して、前記残差の係数変換、量子化、および可逆符号化を省略するスキップモードを適用するかを示す前記制御情報を生成する
     請求項1に記載の画像処理装置。
  3.  前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像として、無彩色の画像を生成する無彩色生成部をさらに備える
     請求項2に記載の画像処理装置。
  4.  前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
     請求項3に記載の画像処理装置。
  5.  前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の残差の係数変換、量子化、および可逆符号化を省略するように制御する符号化制御部と、
     所定の色対応表を用いて前記画像の色成分をインデックスに変換し、前記インデックスを符号化するパレット符号化部と
     をさらに備え、
     前記制御情報生成部は、前記画像の色成分に対して、前記残差の係数変換、量子化、および可逆符号化を省略して前記インデックスを符号化するパレットモードを適用するかを示す前記制御情報を生成する
     請求項1に記載の画像処理装置。
  6.  前記パレット符号化部は、前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像として、前記インデックスに対応するパレットカラーの画像を生成する
     請求項5に記載の画像処理装置。
  7.  前記低彩度判定部により前記画像が低彩度であると判定された場合、前記画像の色成分の局所復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
     請求項6に記載の画像処理装置。
  8.  前記低彩度判定部は、前記画像のブロック毎に、低彩度であるか否かを判定する
     請求項1に記載の画像処理装置。
  9.  前記低彩度判定部は、画素値用の閾値を用いて前記ブロックの各画素値が低彩度であるか否かを判定し、低彩度と判定された画素をカウントし、カウント値用の閾値を用いて前記ブロックが低彩度であるか否かを判定する
     請求項8に記載の画像処理装置。
  10.  前記低彩度判定部は、符号化条件に応じた前記画素値用の閾値を用いて前記ブロックの各画素値が低彩度であるか否かを判定し、符号化条件に応じた前記カウント値用の閾値を用いて前記ブロックが低彩度であるか否かを判定する
     請求項9に記載の画像処理装置。
  11.  前記符号化条件は、ビットレートおよび量子化パラメータの内の少なくとも1つを含む
     請求項10に記載の画像処理装置。
  12.  前記画像の色成分の低彩度な画素値を無彩色値にクリップするクリップ処理部をさらに備える
     請求項1に記載の画像処理装置。
  13.  符号化対象の画像が低彩度であるか否かを判定し、
     前記画像が低彩度であると判定された場合、前記画像の色成分の残差の符号化を省略するモードを適用するかを示す制御情報を生成し、
     生成された前記制御情報を含むビットストリームを生成する
     画像処理方法。
  14.  ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定するモード判定部と、
     前記モード判定部により前記モードを適用すると判定された場合、前記画像の色成分の符号化データの復号を省略するように制御する復号制御部と
     を備える画像処理装置。
  15.  前記モード判定部により、前記画像の色成分に対して、前記残差の符号化データの可逆復号、逆量子化、および逆係数変換を省略するスキップモードを適用すると判定された場合、前記画像の色成分の復号画像として、無彩色の画像を生成する無彩色生成部をさらに備え、
     前記復号制御部は、前記モード判定部により前記スキップモードを適用すると判定された場合、前記可逆復号、前記逆量子化、および前記逆係数変換を省略するように制御する
     請求項14に記載の画像処理装置。
  16.  前記モード判定部により、前記画像の色成分に対して、前記スキップモードを適用すると判定された場合、前記復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
     請求項15に記載の画像処理装置。
  17.  前記モード判定部により、前記画像の色成分に対して、前記残差の符号化データの可逆復号、逆量子化、および逆係数変換を省略し、所定の色対応表を用いて前記画像の色成分を変換したインデックスの符号化データを復号するパレットモードを適用すると判定された場合、前記インデックスの符号化データを復号し、前記画像の色成分の復号画像として、前記インデックスに対応するパレットカラーの画像を生成するパレット復号部をさらに備え、
     前記復号制御部は、前記モード判定部により、前記画像の色成分に対して、前記パレットモードを適用すると判定された場合、前記可逆復号、前記逆量子化、および前記逆係数変換を省略するように制御する
     請求項14に記載の画像処理装置。
  18.  前記モード判定部により、前記画像の色成分に対して、前記パレットモードを適用すると判定された場合、前記復号画像に対するフィルタ処理を省略するように制御するフィルタ制御部をさらに備える
     請求項17に記載の画像処理装置。
  19.  前記モード判定部は、前記画像の輝度成分および色成分に対して前記パレットモードを適用するかを示す第1の制御情報と、前記画像の色成分に対して前記パレットモードを適用するかを示す第2の制御情報との両方に基づいて、前記画像の色成分に対して前記パレットモードを適用するかを判定する
     請求項17に記載の画像処理装置。
  20.  ビットストリームに含まれる制御情報に基づいて、符号化対象の画像の色成分の残差の符号化データの復号を省略するモードを適用するかを判定し、
     前記モードを適用すると判定された場合、前記画像の色成分の符号化データの復号を省略するように制御する
     画像処理方法。
PCT/JP2020/042376 2019-11-28 2020-11-13 画像処理装置および方法 WO2021106612A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019215561 2019-11-28
JP2019-215561 2019-11-28

Publications (1)

Publication Number Publication Date
WO2021106612A1 true WO2021106612A1 (ja) 2021-06-03

Family

ID=76130197

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/042376 WO2021106612A1 (ja) 2019-11-28 2020-11-13 画像処理装置および方法

Country Status (1)

Country Link
WO (1) WO2021106612A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05130427A (ja) * 1991-11-06 1993-05-25 Fuji Xerox Co Ltd 画像符号化装置及び画像復号装置
JPH0750758A (ja) * 1993-08-06 1995-02-21 Minolta Co Ltd 符号化装置
JPH07284126A (ja) * 1994-04-05 1995-10-27 Matsushita Electric Ind Co Ltd 高能率符号化装置
JP2017521919A (ja) * 2014-06-11 2017-08-03 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオコーディングにおけるパレットコード化ブロックへのデブロッキングフィルタ処理の適用の決定
JP2018505590A (ja) * 2014-12-19 2018-02-22 クゥアルコム・インコーポレイテッドQualcomm Incorporated サブサンプリングフォーマットのためのパレットモード

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05130427A (ja) * 1991-11-06 1993-05-25 Fuji Xerox Co Ltd 画像符号化装置及び画像復号装置
JPH0750758A (ja) * 1993-08-06 1995-02-21 Minolta Co Ltd 符号化装置
JPH07284126A (ja) * 1994-04-05 1995-10-27 Matsushita Electric Ind Co Ltd 高能率符号化装置
JP2017521919A (ja) * 2014-06-11 2017-08-03 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオコーディングにおけるパレットコード化ブロックへのデブロッキングフィルタ処理の適用の決定
JP2018505590A (ja) * 2014-12-19 2018-02-22 クゥアルコム・インコーポレイテッドQualcomm Incorporated サブサンプリングフォーマットのためのパレットモード

Similar Documents

Publication Publication Date Title
US11539956B2 (en) Robust encoding/decoding of escape-coded pixels in palette mode
EP3158739B1 (en) Block adaptive color-space conversion coding
WO2021125309A1 (ja) 画像処理装置および方法
US11109046B2 (en) Image processing apparatus and image processing method
WO2021039650A1 (ja) 画像処理装置および方法
US20210006836A1 (en) Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
CN113454998A (zh) 视频编码中的跨分量量化
WO2021100588A1 (ja) 画像処理装置および方法
US11800123B2 (en) Image processing apparatus and method
US11356701B2 (en) Image processing apparatus and image processing method
WO2021117500A1 (ja) 画像処理装置、ビットストリーム生成方法、係数データ生成方法、および量子化係数生成方法
WO2022044845A1 (ja) 画像処理装置および方法
WO2021106612A1 (ja) 画像処理装置および方法
US20230045106A1 (en) Image processing apparatus and method
WO2023195330A1 (ja) 画像処理装置および方法
WO2021117866A1 (ja) 画像処理装置および方法
US20220021899A1 (en) Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
JP2024113189A (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: 20893169

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 20893169

Country of ref document: EP

Kind code of ref document: A1