The present disclosure relates to an image encoding/decoding method and apparatus and a recording medium storing a bitstream and, more particularly, to an image encoding/decoding method and apparatus using a block-based differential pulse coded modulation (BDPCM) and a recording medium storing a bitstream.
Recently, demand for high-resolution and high-quality images such as high definition (HD) images and ultra high definition (UHD) images is increasing in various fields. As resolution and quality of image data are improved, the amount of data relatively increases as compared to existing image data. Accordingly, when image data is transmitted using a medium such as an existing wired/wireless broadband line or image data is stored using an existing storage medium, transmission and storage costs increase. In order to solve these problems that occur as resolution and quality of the image data are improved, high-efficiency image encoding/decoding technology for images having high resolution and high quality is required.
As image compression technology, there are various technologies such as inter prediction technology of predicting a pixel value included in a current picture from a picture before or after the current picture, intra prediction technology of predicting a pixel value included in a current picture using pixel information in the current picture, transform and quantization technology of compressing the energy of a residual signal, and entropy coding technology of allocating short code to a value with high frequency of occurrence and allocating long code to a value with low frequency of occurrence. Image data may be effectively compressed and transmitted or stored using such image compression technology.
An object of the present disclosure is to provide an image encoding/decoding method and apparatus with improved encoding/decoding efficiency.
In addition, another object of the present disclosure is to provide an image encoding/decoding method and apparatus for efficiently signaling BDPCM-related information.
In addition, another object of the present disclosure is to provide a method of transmitting a bitstream generated by an image encoding method or an image encoding apparatus according to the present disclosure.
In addition, another object of the present disclosure is to provide a recording medium storing a bitstream generated by an image encoding method or an image encoding apparatus according to the present disclosure.
In addition, another object of the present disclosure is to provide a recording medium storing a bitstream received, decoded and used to reconstruct an image by an image decoding apparatus according to the present disclosure.
The technical problems solved by the present disclosure are not limited to the above technical problems and other technical problems which are not described herein will become apparent to those skilled in the art from the following description.
An image decoding method performed by an image decoding apparatus according to an aspect of the present disclosure may comprise obtaining first information indicating whether block-based differential pulse coded modulation (BDPCM) is applicable to a current image, obtaining second information indicating whether to apply the BDPCM to a current block in the current image based on the first information, obtaining third information indicating a prediction direction of the BDPCM based on the second information, and applying the BDPCM to the current block based on the prediction direction of the BDPCM. The first information may indicate whether BDPCM is enabled for both a luma component and a chroma component of the current block.
In the image decoding method according to the present disclosure, the first information may be transmitted at a sequence level.
In the image decoding method according to the present disclosure, the second information may be transmitted at a CU level.
In the image decoding method according to the present disclosure, the second information may be obtained when the first information indicates that the BDPCM is applicable to the current image.
In the image decoding method according to the present disclosure, the third information may be obtained when the second information indicates that the BDPCM is applied to the current block.
In the image decoding method according to the present disclosure, the second information may be obtained when a size of the current block is less than or equal to a predetermined size.
In the image decoding method according to the present disclosure, when the current block is a luma component block, the predetermined size may be a maximum block size for which transform skip is possible.
In the image decoding method according to the present disclosure, when the current block is a chroma component block, the predetermined size may be a maximum block size for which transform skip is possible, and the size of the current block may be determined based on a size of a luma component block corresponding to the current block and a chroma scaling factor.
In the image decoding method according to the present disclosure, the chroma scaling factor may be 2.
In the image decoding method according to the present disclosure, the chroma scaling factor may be determined based on a color format of the current image.
An image decoding apparatus according to another aspect of the present disclosure may comprise a memory and at least one processor. The at least one processor may obtain first information indicating whether block-based differential pulse coded modulation (BDPCM) is applicable to a current image, obtain second information indicating whether to apply the BDPCM to a current block in the current image based on the first information, obtain third information indicating a prediction direction of the BDPCM based on the second information, and apply the BDPCM to the current block based on the prediction direction of the BDPCM. The first information may indicate whether BDPCM is enabled for both a luma component and a chroma component of the current block.
An image encoding method performed by an image encoding apparatus according to another aspect of the present disclosure may comprise determining first information indicating whether block-based differential pulse coded modulation (BDPCM) is applicable to a current image, determining second information indicating whether to apply the BDPCM to a current block in the current image based on the first information, determining third information indicating a prediction direction of the BDPCM based on the second information, and applying the BDPCM to the current block based on the prediction direction of the BDPCM. The first information may indicate whether BDPCM is enabled for both a luma component and a chroma component of the current block.
In the image encoding method according to the present disclosure, the first information may be encoded at a sequence level.
In the image encoding method according to the present disclosure, the second information may be encoded at a CU level.
In the image encoding method according to the present disclosure, the second information may be encoded when the first information indicates that the BDPCM is applicable to the current image.
In the image encoding method according to the present disclosure, the third information may be encoded when the second information indicates that the BDPCM is applied to the current block.
In the image encoding method according to the present disclosure, the second information may be encoded when a size of the current block is less than or equal to a predetermined size.
In the image decoding method according to the present disclosure, when the current block is a luma component block, the predetermined size may be a maximum block size for which transform skip is possible.
In the image encoding method according to the present disclosure, when the current block is a chroma component block, the predetermined size may be a maximum block size for which transform skip is possible, and the size of the current block may be determined based on a size of a luma component block corresponding to the current block and a chroma scaling factor.
In the image encoding method according to the present disclosure, the chroma scaling factor may be 2.
In the image encoding method according to the present disclosure, the chroma scaling factor may be determined based on a color format of the current image.
An image encoding apparatus according to another aspect of the present disclosure may comprise a memory and at least one processor. The at least one processor may determine first information indicating whether block-based differential pulse coded modulation (BDPCM) is applicable to a current image, determine second information indicating whether to apply the BDPCM to a current block in the current image based on the first information, determine third information indicating a prediction direction of the BDPCM based on the second information, and apply the BDPCM to the current block based on the prediction direction of the BDPCM. The first information indicates whether BDPCM is enabled for both a luma component and a chroma component of the current block.
A transmission method according to another aspect of the present disclosure may transmit the bitstream generated by the image encoding apparatus or the image encoding method of the present disclosure.
A computer-readable recording medium according to another aspect of the present disclosure may store the bitstream generated by the image encoding apparatus or the image encoding method of the present disclosure.
A computer-readable recording medium according to another aspect of the present disclosure may store a bitstream received, decoded and used to reconstruct an image by the image decoding method or the image decoding apparatus according to the present disclosure.
The features briefly summarized above with respect to the present disclosure are merely exemplary aspects of the detailed description below of the present disclosure, and do not limit the scope of the present disclosure.
According to the present disclosure, it is possible to provide an image encoding/decoding method and apparatus with improved encoding/decoding efficiency.
In addition, according to the present disclosure, it is possible to provide an image encoding/decoding method and apparatus for efficiently signaling BDPCM-related information.
In addition, according to the present disclosure, it is possible to provide a method of transmitting a bitstream generated by an image encoding method or an image encoding apparatus according to the present disclosure.
In addition, according to the present disclosure, it is possible to provide a recording medium storing a bitstream generated by an image encoding method or an image encoding apparatus according to the present disclosure.
In addition, according to the present disclosure, it is possible to provide a recording medium storing a bitstream received, decoded and used to reconstruct an image by an image decoding apparatus according to the present disclosure.
It will be appreciated by persons skilled in the art that that the effects that can be achieved through the present disclosure are not limited to what has been particularly described hereinabove and other advantages of the present disclosure will be more clearly understood from the detailed description.
Hereinafter, embodiment of the present disclosure is described in detail with reference to drawings. In describing the embodiment of the present disclosure, if it is determined that a detailed description of a related known configuration or function may obscure the subject matter of the present disclosure, the detailed description thereof will be omitted.
When it is said that a component is “coupled” or “connected” to another component, it may be directly coupled or connected to the other component, but it is understood that other components may exist in between. In addition, the description of “including” a specific component in the present disclosure does not exclude components other than the corresponding component, and it means that additional components may be included in the practice of the present disclosure or the scope of the technical spirit of the present disclosure.
In the present disclosure, terms such as first, second, etc. are used to describe various elements, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present disclosure, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.
In addition, the components shown in the embodiment of the present disclosure are independently illustrated to represent different characteristic functions, and it does not mean that each component is composed of separate hardware or one software constituent unit. That is, each component is listed as each component for convenience of description, and at least two components are combined to form one component, or one component can be divided into a plurality of components to perform a function, and embodiments in which these components are combined or separated are also included in the scope of the present disclosure without departing from the essence of the present disclosure.
In addition, some components are not essential components to perform an essential function in the present disclosure, but may be optional components for merely improving performance. The present disclosure may be implemented by including only essential components to implement the essence of the present disclosure, except for components used for performance improvement, and a structure including only essential components excluding optional components used for performance improvement is also included in the scope of the present disclosure.
A scalable video encoding/decoding method or apparatus may be implemented by extension of a general image encoding/decoding method or apparatus that does not provide scalability, and the block diagram of
Referring to
The prediction unit of the image encoding apparatus 100 may include an intra prediction unit 120 performing intra prediction, an inter prediction unit performing inter prediction, and an IBC prediction unit performing intra block copy (IBC) prediction. The inter prediction unit may include a motion prediction unit 111 and a motion compensator 112. A switch 115 may be switched between the inter prediction unit and the intra prediction unit or the IBC prediction unit (not shown) according to the prediction mode of a current block. A prediction block of the current block may be generated by performing inter prediction, intra prediction or IBC prediction on the current block. The image encoding apparatus 100 may generate a prediction block for the current block in an input image and then encode a difference between the input block and the prediction block.
When the prediction mode of the current block is an intra mode, the intra prediction unit 120 may generate the prediction block of the current block by performing spatial prediction using a pixel value of an already encoded/decoded block around the current block.
When the prediction mode of the current block is an inter mode, the motion prediction unit 111 may obtain a motion vector of the current block by searching for a region that best matches the input block in a reference picture stored in a reference picture buffer 190 in a motion prediction process. The motion compensator 112 may generate the prediction block of the current block by performing motion compensation using a motion vector and the reference picture stored in the reference picture buffer 190.
When the prediction mode of the current block is an IBC mode, the IBC prediction unit may perform motion prediction, that is, search, within the current picture to determine a region similar to the current block, and then use it as the prediction block for the current block. Also, it is possible to obtain a block vector indicating the position of the prediction block.
The subtractor 125 may generate a residual block by a difference between the input block (the current block) and the generated prediction block. The transform unit 130 may perform transform on the residual block to output a transform coefficient. In addition, the quantizer 140 may quantize the input transform coefficient according to the quantization parameter to output a quantized coefficient. At least one of transform and quantization may be omitted according to the encoding mode of the current block.
The entropy encoder 150 may entropy-encode a symbol according to a probability distribution based on the value calculated by the quantizer 140 or the encoding parameter value calculated during the encoding process, and outputs a bitstream. The output bitstream may be stored in a computer-readable recording medium or transmitted to the outside (e.g., an image decoding apparatus) through a wired or wireless transmission channel.
An entropy encoding method is a method of receiving symbols having various values, removing statistical redundancy, and expressing them as a decodable binary sequence. Here, the symbol may mean a syntax element to be encoded/decoded, a coding parameter, and a value of a residual signal. The encoding parameter is a parameter necessary for encoding and decoding, and may include not only information encoded in the encoding apparatus and transmitted to the decoding apparatus, such as syntax elements, but also information that may be inferred during the encoding or decoding process. Alternatively, the encoding parameter may mean information necessary to encode or decode an image. The encoding parameters include, for example, values or statistics of an intra/inter prediction mode, a motion/motion vector, a reference picture index, a coding block pattern, presence/absence of a residual signal, a transform coefficient, a quantized transform coefficient, a quantization parameter, a block size, block partition information, etc. Also, the residual signal may mean a difference between an original signal and a predicted signal. Alternatively, the residual signal may refer to a signal in which the difference between the original signal and the predicted signal is transformed. Alternatively, the residual signal may refer to a signal in which the difference between the original signal and the predicted signal is transformed and quantized. The residual signal may be referred to as a residual block in block units.
When entropy encoding is applied, a small number of bits are allocated to a symbol having a high occurrence probability and a large number of bits are allocated to a symbol having a low occurrence probability to express the symbol, so that the size of the bit stream for the symbols to be coded may be reduced. Accordingly, compression performance of image encoding may be improved through entropy encoding.
For entropy encoding, an encoding method such as exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), or Context-Adaptive Binary Arithmetic Coding (CABAC) may be used. For example, the entropy encoder 150 may store a table for performing entropy encoding, such as a variable length coding/code (VLC) table. The entropy encoder 150 may perform entropy encoding using a stored variable length encoding (VLC) table. In addition, the entropy encoder 150 may derive a binarization method of a target symbol and a probability model of a target symbol/bin, and then performs entropy encoding using the derived binarization method or probability model.
The quantized coefficient may be dequantized by the dequantizer 160 and inversely transformed by the inverse transform unit 170. At least one of inverse quantization and inverse transform may be omitted according to the encoding mode of the current block. A reconstructed block may be generated by adding the dequantized/inversely-transformed coefficient to the prediction block through the adder 175.
The reconstruction block may be input to the filter unit 180. The filter unit 180 may apply at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to a reconstructed block or a reconstructed picture. The reconstructed block that has passed through the filter unit 180 may be stored in the reference picture buffer 190.
As described above in
Referring to
The image decoding apparatus 200 may receive a bitstream generated by the image encoding apparatus 100, perform decoding in an intra mode, an inter mode, or an IBC mode, and output a reconstructed image, that is, a restored image. The image decoding apparatus 200 may receive a bitstream generated by the image encoding apparatus 100 by reading the bitstream stored in a computer-readable recording medium. Alternatively, the image decoding apparatus 200 may receive the bitstream generated by the image encoding apparatus 100 through a wired or wireless transmission channel.
The image decoding apparatus 200 may generate a reconstructed block, that is, a restored block, by obtaining a reconstructed residual block from the input bitstream, generating a prediction block, and then adding the reconstructed residual block and the prediction block.
The entropy decoder 210 may entropy-decode the input bitstream according to a probability distribution to generate symbols including symbols in the form of quantized coefficients. The entropy decoding method is a method of generating each symbol by receiving a binary sequence. The entropy decoding method is similar to the entropy encoding method described above.
The quantized coefficient is dequantized by the dequantizer 220 and inversely transformed by the inverse transform unit 230, and a reconstructed residual block may be generated as a result of dequantizing/inversely transforming the quantized coefficient. At least one of dequantization and inverse transform may be omitted according to the encoding mode of the current block.
The prediction unit includes an intra prediction unit 240 performing intra prediction, a motion compensator 250 performing inter prediction, and an IBC prediction unit (not shown) performing intra block copy (IBC) prediction as detailed components.
When the prediction mode of the current block is an intra mode, the intra prediction unit 240 may generate the prediction block of the current block by performing spatial prediction using a pixel value of an already decoded block around the current block.
When the prediction mode of the current block is an inter mode, the motion compensator 250 may generate the prediction block of the current block by performing motion compensation using a motion vector and a reference picture stored in the reference picture buffer 270.
When the prediction mode of the current block is an IBC mode, the IBC prediction unit may generate a prediction block for the current block within the current picture using a block vector obtained from the bitstream.
The reconstructed residual block and the prediction block may be added through the adder 255, and the added block may be input to the filter unit 260. The filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to a reconstructed block or a reconstructed picture. The filter unit 260 may output the filtered image as a reconstructed image. The reconstructed image may be stored in the reference picture buffer 270 and used for inter prediction.
Among the entropy decoder 210, the dequantizer 220, the inverse transform unit 230, the prediction unit, the filter unit 260, and the reference picture buffer 270 included in the image decoding apparatus 200, components directly related to image decoding, for example, the entropy decoder 210, the dequantizer 220, the inverse transform unit 230, the intra prediction unit 240, the motion compensator 250, the filter unit 260, etc. may be expressed as a decoder or a decoding unit to distinguish it from other components.
In addition, the image decoding apparatus 200 may further include a parser (not shown) for parsing information related to an encoded image included in a bitstream. The parser may include the entropy decoder 210 or may be included in the entropy decoder 210 . This parser may also be implemented as one component of the decoder.
The present disclosure relates to a method of encoding/decoding an image by applying predictive encoding, various transforms, and block-based Differential Pulse Coded Modulation (BDPCM) technology to a high-resolution image such as 4K or 8K. More specifically, according to the present disclosure, encoding determination information (BDPCM-related information) determined for BDPCM technology may be encoded to be shared between channels or used independently between channels according to application and transmission channels, desired encoding performance, etc. Also, according to the present disclosure, in order to decode a compressed bitstream or compressed data encoded in this way, encoding determination information on BDPCM (BDPCM-related information) may be shared between channels or used independently for each channel. According to the present disclosure, it is possible to improve a compression rate and image quality compared to the related art.
When encoding/decoding an image, transform is generally performed, but, in some cases, it may be advantageous not to perform transform. In particular, most pixels in a block have similar values but, if discontinuity is severe in some pixels, values of all transform coefficients are rather large when transform is performed. That is, energy compaction does not appear clearly. In this case, it may be more advantageous to omit the transform for compression. In particular, when the related art is applied to an image in which the degree of change in pixel values is spatially concentrated, problems of compression rate and image quality deterioration are severe. In this case, in particular, when the BDPCM technology of the present disclosure is used, it is possible to increase image compression efficiency or improve image quality.
According to an embodiment of the present disclosure in which BDPCM-related information is encoded to be shared between channels or used independently between channels, BDPCM flag (e.g., bdpcm_flag) information indicating whether to perform BDPCM is transmitted together with a transform skip flag (transform_skip_flag), thereby additionally obtaining good image quality while increasing the compression rate.
In the present disclosure, in describing encoding information required for decoding to be shared between channels, for convenience of overall description and understanding of the present disclosure, such as operation descriptions, drawings, and equations, etc., bdpcm_flag as encoding information required for decoding to be shared between channels will be described as an example. However, bdpcm_flag is only one specific example, and encoding information required for decoding to be shared between channels, to which the present disclosure is applied, does not mean only bdpcm_flag. In addition, although bdpcm_flag is exemplified as encoding information to be shared, in order to perform BDPCM or to decode compressed data by applying BDPCM, in addition to bdpcm_flag, information on the prediction direction of BDPCM is also required. Therefore, even when only bdpcm_flag is described for convenience of description, it is necessary to understand that, if necessary, prediction direction information for BDPCM is also included in the above-described encoding information.
In addition, in describing a channel for sharing encoding information required for decoding according to the present disclosure, a YCbCr color space will be described as an example. However, YCbCr is a specific example of the color space, and the color space targeted by the present disclosure may include various color spaces such as YUV, XYZ, RGB, and the like. In addition, a channel index cIdx indicating each channel constituting the color space may be used. cIdx may have a value of 0/1/2 (or 0/2/1) in the order of the indicated channels for YCbCr and YUV, for example. Also, for RGB and XYZ, cIdx may have a value of 1/0/2 (or 2/0/1) in the order of the indicated channels. For example, in the color space of YCbCr, cIdx of the Y channel may be 0, cIdx of the Cb channel and cIdx of the Cr channel may be 1 and 2 (or 2 and 1), respectively. For example, in the color space of RGB, cIdx of R channel may be 1 (or 2), cIdx of G channel and cIdx of B channel may be 0 and 2 (or 0 and 1), respectively.
Recently, demand for high-resolution and high-quality images such as ultra high definition (UHD) images is increasing in various fields. As resolution and quality of image data are improved, the amount of data relatively increases compared to the existing image data. Accordingly, when image data is transmitted using communication media such as wired/wireless broadband lines or various broadcast media such as satellite/terrestrial/IP network/wireless/cable/mobile communication networks or image data is stored using various storage media such as CD/DVD/USB/HD-DVD, transmission cost and storage cost increase. High-efficiency image encoding/decoding technology for images with higher resolution and image quality is required to solve these problems that inevitably deepen as the resolution and quality of the image data are gradually improved.
As image compression technology developed or being developed for this purpose, there are many technologies such as inter prediction technology of predicting pixel values included in a current picture from pictures before or after the current picture, intra prediction technology of predicting pixel values in a current picture using pixel information in the current picture, transform and quantization technology of compressing energy of a residual signal remaining as prediction error, and entropy encoding to allocate short code to a value with a high frequency of occurrence and to allocate long code to a value with a low frequency of occurrence, arithmetic encoding technology, etc., and image data can be effectively compressed and transmitted or stored using the image compression technology.
Compression technologies that may be used for image encoding are very diverse. Also, a specific technology may be advantageous over other technologies depending on the nature of the encoding target image. Accordingly, an encoder may perform the most advantageous compression on the encoding target block by adaptively determining whether to use a plurality of various compression technologies for the encoding target block. In order to select the most advantageous compression technology for the encoding target block among several selectable compression technologies, the encoder usually performs rate-distortion optimization (RDO). It is not possible to know which of various encoding technologies that may be selected for encoding an image is most optimal in terms of rate-distortion in advance. Accordingly, the encoder performs encoding (or simplified encoding) on the encoding target block using each of all possible combinations of encoding technologies, calculates rate-distortion values therefor, and determines encoding technology having the smallest rate-distortion value as final encoding technology for the encoding target block. The encoder may record the encoding technology determined according to RDO or other methods in a bitstream, and the decoder may perform an accurate inverse process (decoding) corresponding to the encoding by parsing information signaled through a bitstream to identify the encoding technology applied to the decoding target block. In this case, the information signaled through the bitstream may be referred to as “encoding information required for decoding”, or more simply, “encoding information” or “encoding determination information”. In particular, bdpcm flag, which is encoding information indicating whether to use the BDPCM technology, is shared between channels or used independently for each channel, so that efficient encoding may be performed according to applications.
Each channel constituting a color space such as YUV, YCbCr, RGB, XYZ, etc. of an image generally does not always have the same or similar properties between channels (or colors in the same sense). Accordingly, in terms of improvement of the compression rate, better performance may be generally obtained by making independent encoding determinations for each channel. As an example of the above-described encoding determination, there is a determination on whether to perform BDPCM on an encoding target block. Also, the determination may be coded and signaled as a syntax element such as bdpcm_flag. That is, the encoder may determine whether or not to perform BDPCM for each encoding target block, and record (encode) bdpcm_flag indicating this in a bitstream as encoding information. Also, in order to perform BDPCM (or to decode compressed data by applying BDPCM), in addition to bdpcm_flag indicating whether to perform BDPCM technology, prediction direction information for BDPCM may also be signaled.
When a conventional image compression technology is applied, transform has always been performed in image compression encoding. However, when the degree of change of spatial pixel values in an image block to be compressed is very large or, in particular, the change is very limited locally, the degree of image energy concentration at a low frequency may not be large even if transform is applied. In this case, a very large number of transform coefficients in a high-frequency region having a relatively large value may be generated. Accordingly, when a transform quantization technique that mainly maintains a low frequency signal component and removes a high frequency signal component through a quantization process after transform or reduces the amount of data by strongly applying quantization is applied, serious image quality deterioration may occur. In particular, when the change in the spatial pixel value is very large or the change in the pixel value is concentrated in a very limited local area, this problem is even greater. In order to solve this problem, it is possible to directly encode pixel values in the spatial region without transform, instead of uniformly transforming an image block. According to this technology, the encoder may determine whether to perform or omit transform for each transform block, and perform encoding by performing or omitting transform according to the determination. Information indicating whether transform is performed or omitted may be included in a bitstream and encoded.
In an artificial image such as screen content, transform skip may be advantageous. In the case of an artificial image, it is often more advantageous to perform BDPCM in which DPCM is performed for each block in addition to transform skip.
A prediction error obtained through prediction, i.e., a residual signal, may still have high spatial correlation. The BDPCM technology is technology of predicting a current pixel by using a pixel in a block closest to the current pixel in the block as a prediction pixel in consideration of such high spatial correlation. BDPCM technology often shows advantageous effects, especially in an artificial image such as screen content. Meanwhile, flag information indicating whether to perform the BDPCM technology for each block is required. An example of such flag information is bdpcm_flag. That is, when bdpcm_flag is a first value (e.g., 1), it may indicate that the BDPCM technology is used for the block. Also, when bdpcm_flag is a second value (e.g., 0), it may indicate that the BDPCM technology is not used for the block.
As shown in
When BDPCM is used (if bdpcm_flag=1), a BDPCM prediction residual signal may be calculated by performing, on a quantized residual signal dz, horizontal or vertical BDPCM prediction for each block. It is assumed that the size of an encoding target block is M (height)×N (width), and a quantized residual signal at a (i, j) spatial pixel position (0≤i≤M-1, 0≤j≤N-1) in this block is Q(ri,j). The BDPCM technology applies block DPCM to the quantized residual signal dz to obtain a BDPCM prediction residual signal. In this case, when the BDPCM prediction residual signal at the position (i, j) is r′i,j , r′i,j may be calculated as in Equation 1 below. Here, ri,j means a residual signal (intra prediction error signal) corresponding to a difference between the prediction block generated by intra prediction and a current block (original block), and Q(.) means that a value in parentheses is a quantized value. Accordingly, Q(ri,j) denotes a quantized intra prediction error signal.
When bdpcm_flag of the encoding target block is 1, BDPCM prediction may be performed according to Equation 1 above. This may correspond to the path {circle around (2)} of
As shown in
BDPCM decoding may correspond to the inverse process of the BDPCM encoding process described with reference to
When BDPCM is used (if bdpcm_flag=1), the inverse process of horizontal or vertical BDPCM prediction, that is, BDPCM decoding, is performed for each block on coefficient data r′i,j decoded by the entropy decoder. In this case, Equation 2 below may be used. For example, the decoder may generate a quantized residual signal Q(ri,j ) by performing BDPCM prediction on r′i,j using Equation 2. Q(ri,j ) of the quantized residual signal may be input to the dequantizer.
In case of vertical BDPCM prediction: Q(ri,j)=Σk=0ir′k,j
In case of horizontal BDPCM prediction: Q(ri,j)=Σk=0jr′k,j [Equation 2 ]
If bdpcm_flag of the decoding target block is 1, the inverse process of BDPCM prediction may be performed using Equation 2 above. This may correspond to the path {circle around (2)} of
In performing BDPCM encoding and BDPCM decoding described with reference to
Alternatively, when BDPCM is applied to a current block, the prediction direction of the intra prediction of the current block may be determined according to the prediction direction of BDPCM. For example, when the prediction direction of the BDPCM for the current block is a vertical direction, the prediction direction of intra prediction of the current block may be determined to be the vertical direction. In this case, since it is not necessary to signal information on the prediction direction of intra prediction of the current block, the amount of transmitted bits may be reduced.
Alternatively, the prediction direction of the BDPCM for the current block may be determined according to the prediction direction of intra prediction of the current block. For example, when the prediction direction of intra prediction of the current block is a horizontal direction (or a pseudo-horizontal direction), the prediction direction of the BDPCM for the current block may be determined to be the horizontal direction. In this case, since it is not necessary to signal the prediction direction of the BDPCM for the current block, the amount of transmitted bits can be reduced. In the above, the pseudo-horizontal direction means a direction adjacent to the horizontal direction, and for example, may include directions spaced apart from the horizontal direction by predetermined angles.
Information necessary for BDPCM decoding and a signaling method will be described later.
Whether the BDPCM technology is enabled may mean whether the BDPCM technology may be used to encode/decode a current image. In the present disclosure, “enablement” of the BDPCM technology may be described interchangeably with terms such as “availability”, “applicability”, “activation/deactivation”, and “permissibility”.
Information indicating whether the BDPCM technology is enabled may be signaled at a higher level, for example, a sequence level. For example, the information indicating whether the BDPCM technology is enabled may be bdpcm_enable_flag of a sequence parameter set (SPS). When the BDPCM technology may be used, that is, when bdpcm_enabled_flag is a first value (e.g., 1), information (e.g., bdpcm_flag) indicating whether BDPCM is used for each CU may be signaled at a CU level. Whether BDPCM is used may mean whether BDPCM is used to encode/decode a current CU. In the present disclosure, “whether to use” BDPCM may be described interchangeably with terms such as “applying” and “performing”.
Information indicating whether BDPCM is used (e.g., bdpcm_flag) may be signaled only when the size of the current CU is not greater than MaxTsSize based on the luma component and the prediction mode for the current CU is an intra prediction mode. The MaxTsSize may mean a maximum block size for which a transform skip mode is allowed. bdpcm_flag indicates whether the CU is encoded with BDPCM, and, when BDPCM is used, information (e.g., bdpcm_dir_flag) indicating the prediction direction (i.e., vertical direction or horizontal direction) of BDPCM may be additionally signaled.
According to the related art, BDPCM for a chroma channel is available only when the BDPCM for a luma channel is available. In order to signal whether BDPCM is available or not, information indicating whether BDPCM is available for each of the luma channel and the chroma channel is transmitted, for example, at a sequence level (SPS). According to the related art, only when BDPCM for the luma channel is available and a color format is 4:4:4, BDPCM for the chroma channel is available. The present disclosure provide various methods for solving the problems according to the related art and systematically and more efficiently signaling BDPCM-related information.
There are several technologies available for image compression. Among them, whether to use the BDPCM technology may be determined according to the image or by the determination of the encoder. For example, the encoder may allow (enable) the BDPCM technology so that the BDPCM technology is available for image compression, or may disable the BDPCM technology so that the BDPCM technology is not available. The encoder may determine whether the BDPCM is available or not, and may signal the determination to the decoder by encoding the information.
In the related art shown in
In the example shown in
As shown in
In the example shown in
On the other hand, sps_bdpcm_chroma_enabled_flag indicates whether the use of BDPCM technology is enabled for the chroma channel. As shown in
When the use of the BDPCM technology is enabled, it is necessary to signal, to the decoder, whether or not BDPCM is actually applied for each coding unit (CU). To this end, as shown in
In
Similarly, intra_bdpcm_chroma_flag_indicates whether BDPCM technology is applied to a chroma channel of an encoding (or decoding) target block (current CU). When intra_bdpcm_chroma_flag is a first value (e.g., 1), it indicates that BDPCM technology is applied to the chroma channel (e.g., Cb, Cr) of the current CU. In addition, when intra_bdpcm_chroma_flag is a second value (e.g., 0), it indicates that BDPCM technology is not applied to the chroma channel (e.g., Cb, Cr) of the current CU.
In order to use BDPCM technology, information indicating the prediction direction (i.e., vertical direction or horizontal direction) of BDPCM is also required. The prediction direction information is intra_bdpcm_luma_dir_flag in case of the luma channel and intra_bdpcm_chroma_dir_flag in case of the chroma channel. For example, when the value of intra_bdpcm_luma_dir_flag (or intra_bdpcm_chroma_dir_flag) is 0, it means that the prediction direction of BDPCM is vertical. When the value of intra_bdpcm_luma_dir_flag (or intra_bdpcm_chroma_dir_flag) is 1, it means that the prediction direction of BDPCM is horizontal.
The decoder parses intra_bdpcm_luma_flag (or intra_bdpcm_chroma_flag) from the bitstream received from the encoder. When the value of intra_bdpcm_luma_flag (or intra_bdpcm_chroma_flag) is 0, the decoder recognizes that BDPCM is not applied to the channel. When the value of intra_bdpcm_luma_flag (or intra_bdpcm_chroma_flag) is 1, the decoder recognizes that BDPCM is applied to the channel. The decoder decodes the bitstream according to the recognition based on the value of the flag.
In addition, when the value of intra_bdpcm_luma_flag (or intra_bdpcm_chroma_flag) is 1, the decoder parses intra_bdpcm_luma_dir_flag (or intra_bdpcm_chroma_dir_flag) from the bitstream. When the value of intra_bdpcm_luma_dir_flag (or intra_bdpcm_chroma_dir_flag) is 0, the decoder recognizes that the prediction direction of the BDPCM is a vertical direction. When the value of intra_bdpcm_luma_dir_flag (or intra_bdpcm_chroma_dir_flag) is 1, the decoder recognizes that the BDPCM prediction direction is a horizontal direction. The decoder performs BDPCM according to the recognized BDPCM prediction direction.
According to the related art described above, whether to use BDPCM is set for each of the luma channel and the chroma channel. Accordingly, BDPCM cannot be independently applied to the Cb channel and Cr channel constituting the chroma signal, respectively. For example, it is not possible to set BDPCM to be applied to the Cb channel and not to be applied to the Cr channel. That is, according to the related art, whether or not to use the BDPCM technology for the chroma channel is set to be the same for the Cb channel and the Cr channel.
In the example shown in
According to the related art described with reference to
First, the conventional bdpcm technology may be applied only to a 4:4:4 image, that is, only when chroma_format_idc is 3. Therefore, according to the related art, when the encoding/decoding target image is a 4:2:0 image (e.g., chroma_format_idc=1) or a 4:2:2 image (e.g., chroma format idc=2), even if it is expected that compression rate or image quality is improved by applying BDPCM, BDPCM cannot be applied to the image.
Second, according to the related art, it is impossible to independently enable bdpcm between the luma (i.e., the Y signal) channel and the chroma channel (i.e., the Cb signal and the Cr signal). The compression efficiency or image quality improvement effect of Bdpcm may appear mainly in the luma channel depending on the image. Alternatively, on the contrary, the effect of Bdpcm may appear only with respect to the chroma channel signal. On the other hand, in some images, it may be advantageous to use bdpcm in both the luma and chroma channels. According to the related art described with reference to
Third, according to the related art, whether bdpcm is available for the chroma channel is signaled by sps_bdpcm_chroma_enabled_flag transmitted from the SPS terminal, and whether bdpcm is available for the Cb channel and the Cr channel is set to be the same. Therefore, according to the related art, since there is a difference in image properties between the Cb channel and the Cr channel, even when the bdpcm technology is useful only in the Cb channel and not in the Cr channel (or vice versa), there is a problem of inefficiency that the bdpcm technology is enabled or disabled for both channels. The same problem occurs not only for sps_bdpcm_chroma_enabled_flag of
Fourth, according to the related art, bdpcm technology is applicable only to an intra-predicted block. That is, there is a problem that bdpcm cannot be used fundamentally for a block which is not intra-predicted, for example, a block that is inter-predicted by performing motion compensation.
Since BDPCM is available when transform skip is performed, it is available especially when encoding an image with lossless compression. Therefore, in the case of lossless coding or computer-generated images such as graphics images (which may be simply referred to as screen content), BDPCM is often advantageous for all YCbCr channels. Accordingly, the present disclosure includes various embodiments capable of improving image compression rate or image quality by solving at least the above problems.
In general, three-channel data of an image may be divided into a Luma (Y, or luminance) channel and a Chroma (Cb and/or Cr) channel in the YCbCr color space. BDPCM is applied in the same direction as the prediction direction indicated by the intra prediction (i.e., intra prediction) mode of the block, and quantization is performed while the transform is skipped. Accordingly, BDPCM flag information and BDPCM direction information may be transmitted (or parsed) for the Luma channel and the Chroma channel without the need to transmit BDPCM-related information through the three Y, Cb, and Cr channels. In the following description, the BDPCM flag will be described as signaling information. However, the signaling information to which the present disclosure is applied is not limited to the BDPCM flag, and may include all signaling information to which the technical spirit of the present disclosure is equally applicable. For example, the signaling information to which the present disclosure is applied may include each of the information listed above or at least one of them. Such information may be referred to as “encoding information” for convenience.
Hereinafter, an embodiment according to the present disclosure for solving the first problem of the related art described above will be described.
chroma_format_idc may indicate how a color channel is configured. If chroma_format_idc is 1, it may indicate that the YCbCr color channel is configured in a 4:2:0 color format. Also, if chroma_format_idc is 2, it may indicate that it is configured in a 4:2:2 color format, and if chromat_format idc is 3, it may indicate that it is configured in a 4:4:4 color format. According to the related art, BDPCM for the chroma block may be performed only when the value of chroma_format idc is 3, that is, when the current image is a 4:4:4 color format image. However, according to the present embodiment, not only when the current image is a 4:4:4 color format image, but also when the current image is a 4:2:2 color format image or a 4:2:0 color format image, BDPCM for the chroma block may be performed.
According to the example shown in
According to the example shown in
Alternatively, as a condition in which sps_bdpcm_chroma_enabled_flag is signaled, it may include whether separate_colour_plane_flag is 1 or not. separate_colour_plane_flag being 1 may mean that each of three color components of a 4:4:4 color format image is separately encoded/decoded. For example, the color space is not YCbCr, but is the color space of XYZ or RGB channels. That is, separate colour_plane_flag being 1 may mean that three channels of the current image need to be encoded/decoded independently of each other. In an embodiment according to the present disclosure, BDPCM may be enabled for the chroma component, except for the above cases.
When the color format of the current image is not 4:4:4, the BDPCM flag and the BDPCM prediction direction information transmission method (CU syntax level) according to the related art illustrated in
As shown in
The values of SubWidthC and SubHeightC according to chroma_format_idc may be represented as shown in Table 1 below.
As shown in
Similarly, when sps_bdpcm_chroma_enabled_flag is 1 and both the width (cbWidth/SubWidthC) and the height (cbHeight/SubHeightC) of the current chroma block are less than or equal to MaxTsSize, intra_bdpcm_chroma_flag may be parsed. Also, when intra_bdpcm_chroma_flag is 1, intra_bdpcm_chroma_dir_flag may be parsed.
In Embodiment 7 to be described later, whether BDPCM is available for the luma channel and whether BDPCM is available for the chroma channel may be signaled by the same information (BDPCM enabling flag). In the case of merging the configuration of Embodiment 7 into Embodiment 1, a BDPCM enabling flag common to the luma channel and the chroma channel may be signaled. In this case, in Embodiment 1, sps_bdpcm_luma_enabled_flag and sps_bdpcm_chroma_enabled_flag may be replaced with the same common flag (e.g., sps_bdpcm_enabled_flag).
Hereinafter, an embodiment according to the present disclosure for solving the second problem of the related art will be described.
According to the present embodiment, the BDPCM enabling flags for the luma channel and the chroma channel may be transmitted (or parsed) independently of each other. According to the present embodiment, sps_bdpcm_luma_enabled_flag and sps_bdpcm_chroma_enabled_flag may be transmitted independently. sps_bdpcm_luma_enabled_flag may indicate whether BDPCM technology is enabled for the luma channel. sps_bdpcm_chroma_enabled_flag may indicate whether BDPCM technology is enabled for the chroma channel.
According to the present embodiment, bdpcm_enabled_flag for the luma channel and the chroma channel may be signaled independently.
Specifically,
According to
The example shown in
As shown in
As shown in
A method of transmitting BDPCM flag and BDPCM prediction direction information according to Embodiment 2 shown in
That is, whether to apply bdpcm technology for each of Y, Cb, and Cr channels of the current CU block is determined by referring to intra_bdpcm_luma_flag and intra_bdpcm_chroma_flag values obtained by parsing the CU-level syntax structure of
Referring to
Hereinafter, an embodiment according to the present disclosure for solving the third problem of the related art will be described.
According to the present embodiment, BDPCM may be independently enabled for the Cb channel and the Cr channel. According to the present embodiment, the second and third problems of the related art can be solved at the same time. According to the present embodiment, it may be implemented to transmit sps_bdpcm_luma_enabled_flag and sps_bdpcm_chroma_common_enabled_flag. As described above, sps_bdpcm_luma_enabled_flag may indicate whether BDPCM technology is enabled for the luma channel. sps_bdpcm_chroma_common_enabled_flag may indicate whether BDPCM technology is enabled for the chroma channel. More specifically, sps_bdpcm_chroma_common_enabled_flag may indicate whether enabling of the BDPCM technology is commonly indicated for the chroma channel without distinction between the Cb channel and the Cr channel or whether it is independently indicated for each of the Cb channel and the Cr channel. For example, when the sps_bdpcm_chroma_common_enabled_flag value is 1, it may mean that BDPCM enabling is commonly indicated for the Cb channel and the Cr channel. Accordingly, in this case, two flags of intra_bdpcm_flag (i.e., intra_bdpcm_chroma_flag) and/or intra_bdpcm_dir_flag (i.e., intra_bdpcm_chroma_dir_flag) are transmitted for the chroma channel, and the Cb channel and the Cr channel may share the values. For example, when the sps_bdpcm_chroma_common_enabled_flag value is 0, intra_bdpcm_flag and/or intra_bdpcm_dir_flag may be independently transmitted (or parsed) for each of the Cb channel and the Cr channel in the CU-level syntax. That is, intra bdpcm_chroma_cb_flag and/or intra_bdpcm_chroma_cb dir_flag may be signaled for the Cb channel, and intra_bdpcm_chroma_cr_flag and/or intra_bdpcm_chroma_cr_dir_flag may be signaled for the Cr channel.
According to the example shown in
The example shown in
According to the example shown in
According to the example shown in
Descriptions of common parts in the example described with reference to
In the example shown in
Hereinafter, signaling of the CU-level syntax according to the present embodiment will be described with reference to
First, when sps_bdpcm_chroma_common_enabled_flag is 1, intra_bdpcm_chroma_common_flag may be parsed (obtained) from a bitstream.
intra_bdpcm_chroma_common_flag may be a common flag indicating whether BDPCM is applied to all chroma channels. When intra_bdpcm_chroma_common_flag is 1, it may indicate that BDPCM is applied to all chroma channels. When intra_bdpcm_chroma_common_flag is 0, it may indicate that BDPCM is not applied to all chroma channels. Accordingly, when sps_bdpcm_chroma_common_enabled_flag is 1, the values of flags (BdpcmFlag[x0][y0][1]and BdpcmFlag[x0][y0][2]) indicating whether BDPCM is applied to the Cb channel and Cr channel may be commonly set to a value of intra_bdpcm_chroma_common_flag [x0][y0]. In this case, the value of the flag (BdpcmFlag[x0][y0][0]) indicating whether BDPCM is applied to the luma channel may be set to the value of intra_bdpcm_luma_flag [x0][y0].
If sps_bdpcm_chroma_common_enabled_flag is 0, the flag for the Cb channel (intra_bdpcm_chroma_cb_flag) and the flag for the Cr channel (intra_bdpcm_chroma_cr_flag) may be parsed (obtained) from the bitstream. intra_bdpcm_chroma_cb_flag may be a flag indicating whether BDPCM is applied to the Cb channel. When intra_bdpcm_chroma_cb_flag is 1, it may indicate that BDPCM is applied to the Cb channel. When intra_bdpcm_chroma_cb_flag is 0, it may indicate that BDPCM is not applied to the Cb channel. Similarly, intra_bdpcm_chroma_cr_flag may be a flag indicating whether BDPCM is applied to the Cr channel. When intra_bdpcm_chroma_cr_flag is 1, it may indicate that BDPCM is applied to the Cr channel. When intra_bdpcm_chroma_cr_flag is 0, it may indicate that BDPCM is not applied to the Cr channel. Therefore, when sps_bdpcm_chroma_common_enabled_flag is 0, the values of flags (BdpcmFlag[x0][y0][1]and BdpcmFlag[x0][y0][2]) indicating whether BDPCM is applied to the Cb channel and Cr channel may be set to values of intra_bdpcm_chroma_cb_flag [x0][y0]and intra_bdpcm_chroma_cr_flag[x0][y0]respectively. In this case, the value of the flag (BdpcmFlag[x0][y0][0]) indicating whether BDPCM is applied to the luma channel may be set to a value of intra_bdpcm_luma_flag [x0][y0].
Parsing and decoding at the TU level may be performed based on BdpcmFlag[x0][y0][0]BdpcmFlag[x0][y0][1]and BdpcmFlag [x0][y0][2]set as above as described with reference to
Hereinafter, an embodiment according to the present disclosure for solving the fourth problem of the related art will be described.
According to the related art, BDPCM may be applied only to blocks predicted in the intra mode (intra blocks). In addition, the prediction direction for BDPCM is used by matching it with the intra prediction direction applied to the intra block. However, when BDPCM technology, which is mainly effective for screen content, is applied to blocks predicted in inter mode (inter blocks), compression efficiency and image quality can be improved. The present embodiment can apply the BDPCM technology to the inter-block by improving the above-mentioned related art.
The encoder may determine whether to enable or disable the use of BDPCM technology for the inter block, and signal the determined content to the decoder.
As shown in
As shown in
As another application example, as shown in
In the example of
In the example of
As another application example, sps_inter_bdpcm_enabled_flag and sps_inter_bdpcm_chroma_enabled_flag may be set to values of sps_intra_bdpcm_enabled_flag and sps_intra_bdpcm_chroma_enabled_flag, respectively. That is, it is possible to share the BDPCM enabling information for the intra block without change, without separately signaling the BDPCM enabling information for the inter block.
As another application example, the flag for the inter block and the flag for the intra block may be signaled as one flag. For example, sps_bdpcm_luma_enabled_flag may commonly indicate whether BDPCM is applicable to the luma channel of the inter block and the luma channel of the intra block. In addition, sps_bdpcm_chroma_enabled_flag may commonly indicate whether BDPCM is applicable to the luma channel of the inter block and the chroma channel of the intra block.
When the use of BDPCM technology is enabled for the inter block, whether BDPCM is applied for each coding unit (CU) may be signaled.
In the example shown in
inter_bdpcm_luma_flag may indicate whether BDPCM is applied to the luma channel of the inter block. inter_bdpcm_luma_dir_flag may indicate the prediction direction of BDPCM for the luma channel of the inter block.
inter_bdpcm_chroma_flag may indicate whether BDPCM is applied to the chroma channel of the inter block. inter_bdpcm_chroma_dir_flag may indicate the prediction direction of BDPCM for the chroma channel of the inter block. In the case of the chroma channel, BDPCM-related information at the CU level may be signaled for each of the Cb channel and the Cr channel by a combination with another embodiment of the present disclosure described above. For example, inter_bdpcm_chroma_cb_flag and inter_bdpcm_chroma_cr_flag may be signaled instead of inter_bdpcm_chroma_flag. In addition, inter_bdpcm_chroma_cb_dir_flag and inter_bdpcm_chroma_cr_dir_flag may be signaled instead of inter_bdpcm_chroma_dir_flag.
Alternatively, in embodiments of the present disclosure, the prediction direction of BDPCM may be fixed to a predetermined direction. For example, a DC prediction mode or Planar prediction mode may be used.
A redundant description of the same part in the TU-level syntax structure shown in
As a modification of the present embodiment, in the case of an inter block, it may be limited to apply BDPCM only to the luma block and not to apply the BDPCM to the chroma block. Alternatively, when BDPCM is applied to the luma block, the prediction direction of the BDPCM for the luma block may be equally used for the chroma block. In this case, there is an effect that it is not necessary to transmit (or parse) information on the prediction direction of the BDPCM for the chroma block.
Various embodiments of the BDPCM technology according to the present disclosure described so far may be implemented to be used together when performing transform skip. In this case, in particular, a better image quality improvement effect can be obtained by using the BDPCM technology when encoding an image with lossless compression.
According to the present embodiment, only when BDPCM is enabled for the luma channel, information indicating whether BDPCM is enabled for the chroma channel, for example, sps bdpcm chroma common enabled flag may be signaled. According to the present embodiment, the parsing of the relevant syntax element may be performed as follows.
parse sps_bdpcm_luma_enabled_flag
if (sps_bdpcm_luma_enabled_flag)
As shown in
According to the present embodiment, independently of the luma channel, information indicating whether BDPCM technology is enabled for each of the Cb channel and the Cr channel may be signaled. In this case, for example, sps_bdpcm_chroma_cb_enabled_flag and sps_bdpcm_chroma_cr_enabled_flag may be used.
According to the present embodiment, parsing of the relevant syntax element may be performed as follows.
parse sps_bdpcm_luma_enabled_flag
parse sps_bdpcm_chroma_cb_enabled_flag
parse sps_bdpcm_chroma_cr_enabled_flag
As shown in
According to the present embodiment, when BDPCM is applied, selective information sharing between channels may be performed. That is, for an image or block for which inter-channel prediction is effective, bdpcm_enabled_flag information does not need to be signaled for each of a plurality of channels. This is because, when the similarity between channels is high, there is a high probability that values of bdpcm_enabled_flag for each channel are the same. Despite presence of these characteristics of the image, transmitting_bdpcm_enabled_flag for each of the channels constituting the image is not efficient in terms of compression rate. Therefore, the bdpcm_enabled_flag for the chroma channel may not be separately parsed under a specific condition in which the correlation (similarity) between channels is considered high. In this case, for the chroma channel, the value of bdpcm_enabled_flag for the luma channel may be shared.
As shown in
As shown in
As shown in
According to Embodiment 7 of the present disclosure, whether to apply BDPCM is determined based on a syntax element (intra_bdpcm_luma_flag) common to all three channels. Therefore, as shown in
Embodiments 1 to 7 described above may be implemented alone or in combination of two more embodiments. When two or more embodiments are combined, whole or part of one embodiment may be combined with whole or part of another embodiment. For example, a new embodiment can be implemented by combining Embodiment 1 and Embodiment 7. More specifically, the flag (bdpcm_enabled_flag) indicating whether BDPCM is enabled may be commonly signaled for the luma channel and the chroma channel as in Embodiment 7. That is, sps_bdpcm_enabled_flag of 1 may indicate that BDPCM is applicable to both the luma channel and the chroma channel. In addition, sps_bdpcm_enabled_flag of 0 may indicate that BDPCM is not applicable to both the luma channel and the chroma channel. Also, when sps_bdpcm_enabled_flag is 1, signaling of BDPCM-related information (bdpcm_flag and/or bdpcm_dir_flag) at the CU level may be performed in consideration of the color format of the image as in Embodiment 1. More specifically, as described with reference to
Hereinafter, an image encoding method and an image decoding method according to an embodiment of the present disclosure will be described.
As shown in
When BDPCM is not enabled for the current image (S2420—No), the image encoding apparatus may not perform BDPCM on the current image.
When BDPCM is enabled for the current image (S2420—Yes), the image encoding apparatus may perform BDPCM on blocks in the current image. Upon determining that BDPCM is enabled for the current image, information indicating this may be encoded in a bitstream and transmitted to an image decoding apparatus. For example, bdpcm_enabled_flag may be encoded as BDPCM enabling information. According to the present disclosure, bdpcm_enabled_flag may be signaled at a higher level (e.g., sequence level). Also, bdpcm_enabled_flag may indicate whether BDPCM is enabled for the luma channel and the chroma channel in common. In addition, according to another embodiment of the present disclosure, BDPCM enabling information (e.g., bdpcm_luma_enabled_flag) for the luma channel and BDPCM enabling information (e.g., bdpcm_chroma_enabled_flag) for the chroma channel may be signaled separately or independently. Also, according to another embodiment of the present disclosure, information (e.g., bdpcm_chroma_common_flag) indicating whether BDPCM-related information for the Cb channel and the Cr channel is common may be transmitted. In addition, according to another embodiment of the present disclosure, BDPCM enabling information (e.g., inter_bdpcm_enabled_flag) for the inter-predicted block may be transmitted separately.
When BDPCM is enabled for the current image, BDPCM may be performed only on blocks satisfying a predetermined condition. For example, when the size of the current block is less than or equal to a predetermined size, BDPCM may be performed. As described in the present disclosure, for example, when the width and height of the current block are equal to or less than MaxTsSize, BDPCM may be performed on the block. According to another embodiment of the present disclosure, when the current block is a chroma block, the width and height of the current block may be determined by dividing the size of the luma block by a predetermined chroma scaling factor. For example, when the width of the luma block is cbWidth and the height is cbHeight, and the chroma scaling factors are SubWidthC and SubHeightC, the width and height of the current chroma block may be calculated as cbWidth/SubWidthC and cbHeignt/SubHeightC. As described above, the chroma scaling factor may be derived according to the color format of the current image.
Alternatively, when the current block is a chroma block, the BDPCM flag for the current chroma block may be signaled when the width and height of the luma block are equal to or less than a value obtained by multiplying MaxTsSize and a chroma scaling factor, respectively.
When the size of the current block does not satisfy the predetermined condition (S2430—No), the image encoding apparatus may determine that BDPCM is not applied to the current block.
When the size of the current block satisfies the predetermined condition (S2430—Yes), the image encoding apparatus may determine whether to apply BDPCM to the current block (S2440). As described above, the image encoding apparatus may determine whether to apply BDPCM to encoding of the current block through various methods such as RDO.
Upon determining that BDPCM is not applied to the current block (S2450—No), the image encoding apparatus may encode the current block without applying BDPCM. In this case, the image encoding apparatus may encode the BDPCM flag (e.g., bdpcm_flag) for the current block into a second value (e.g., 0). Also, in this case, information on the prediction direction of the BDPCM may not be encoded.
Upon determining that BDPCM is applied to the current block (S2450—Yes), the image encoding apparatus may encode the BDPCM flag (e.g., bdpcm_flag) for the current block into a first value (e.g., 1). Also, the image encoding apparatus may determine a prediction direction of BDPCM (S2460), and may perform BDPCM on the current block according to the determined prediction direction. As described above, the determined prediction direction may be signaled by a BDPCM direction flag (e.g., bdpcm_dir_flag).
According to an embodiment of the present disclosure, a common BDPCM flag (bdpcm_flag) may be signaled for the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM flags (bdpcm_luma_flag, bdpcm_chroma_flag) may be signaled for each of the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM flags (bdpcm_luma_flag, bdpcm_cb_flag, bdpcm_cr_flag) may be signaled for each of the luma channel, the Cb channel, and the Cr channel. According to another embodiment of the present disclosure, the BDPCM flag (inter_bdpcm_flag) for the inter-predicted block may be signaled separately.
In addition, according to an embodiment of the present disclosure, a common BDPCM direction flag (bdpcm_dir_flag) may be signaled for the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM direction flags (bdpcm_luma_dir_flag, bdpcm_chroma_dir_flag) may be signaled for each of the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM direction flags (bdpcm_luma_dir_flag, bdpcm_cb_dir_flag, bdpcm_cr_dir_flag) may be signaled for each of the luma channel, the Cb channel, and the Cr channel. According to another embodiment of the present disclosure, the BDPCM flag (inter_bdpcm_dir_flag) for the inter-predicted block may be signaled separately.
In the embodiment shown in
As shown in
The image decoding apparatus may determine whether BDPCM is enabled for the current image based on the obtained BDPCM enabling information (S2520). When BDPCM is not enabled for the current image (S2520—No), the image decoding apparatus may not perform BDPCM for the current image.
When BDPCM is enabled for the current image (S2520—Yes), the image decoding apparatus may perform BDPCM on blocks in the current image.
When BDPCM is enabled for the current image, BDPCM may be performed only on blocks satisfying a predetermined condition. For example, when the size of the current block is less than or equal to a predetermined size, BDPCM may be performed. As described in the present disclosure, for example, when the width and height of the current block are equal to or less than MaxTsSize, BDPCM may be performed on the block. According to another embodiment of the present disclosure, when the current block is a chroma block, the width and height of the current block may be determined by dividing the size of the luma block by a predetermined chroma scaling factor. For example, when the width of the luma block is cbWidth and the height is cbHeight, and the chroma scaling factors are SubWidthC and SubHeightC, the width and height of the current chroma block may be calculated as cbWidth/SubWidthC and cbHeignt/SubHeightC. As described above, the chroma scaling factor may be derived according to the color format of the current image.
Accordingly, when BDPCM is enabled for the current image, the image decoding apparatus may check whether the size of the current block satisfies the predetermined condition (S2530).
When the size of the current block does not satisfy the predetermined condition (S2530—No), the image decoding apparatus may determine that BDPCM is not applied to the current block.
When the size of the current block satisfies the predetermined condition (S2530—Yes), the image decoding apparatus may obtain information indicating whether to apply BDPCM to the current block (information on whether to apply BDPCM) (S2540). For example, bdpcm_flag may be obtained as information on whether BDPCM is applied.
The image decoding apparatus may determine whether to apply BDPCM to the current block based on the obtained information on whether to apply BDPCM (S2550).
Upon determining that BDPCM is not applied to the current block (S2550—No), the image decoding apparatus may decode the current block without applying BDPCM.
Upon determining that BDPCM is applied to the current block (S2550—Yes), the image decoding apparatus may obtain BDPCM direction information indicating the prediction direction of the BDPCM (S2560). For example, bdpcm_dir_flag may be obtained as BDPCM direction information.
Thereafter, the image decoding apparatus may perform BDPCM on the current block according to the prediction direction of the BDPCM determined based on the BDPCM direction information (S2570).
According to an embodiment of the present disclosure, a common BDPCM flag (bdpcm_flag) may be signaled for the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM flags (bdpcm_luma_flag, bdpcm_chroma_flag) may be signaled for each of the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM flags (bdpcm_luma_flag, bdpcm_cb_flag, bdpcm_cr_flag) may be signaled for each of the luma channel, the Cb channel, and the Cr channel. According to another embodiment of the present disclosure, the BDPCM flag (inter_bdpcm_flag) for the inter-predicted block may be signaled separately.
Also, according to an embodiment of the present disclosure, a common BDPCM direction flag (bdpcm_dir_flag) may be signaled for the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM direction flags (bdpcm_luma_dir_flag, bdpcm_chroma_dir_flag) may be signaled for each of the luma channel and the chroma channel. According to another embodiment of the present disclosure, separate BDPCM direction flags (bdpcm_luma_dir_flag, bdpcm_cb_dir_flag, bdpcm_cr_dir_flag) may be signaled for each of the luma channel, the Cb channel, and the Cr channel. According to another embodiment of the present disclosure, the BDPCM flag (inter_bdpcm_dir_flag) for the inter-predicted block may be signaled separately.
In the embodiment shown in
The meaning of the syntax element described in the present disclosure may be interpreted as follows based on the name of the syntax element. “sps_” included in the name of the syntax element may indicate that the syntax element is signaled at a sequence level (e.g., a sequence parameter set). “_bdpcm_” included in the name of the syntax element may indicate that the syntax element is information related to bdpcm. “_intra_” included in the name of the syntax element may indicate that the syntax element is information related to intra prediction. “_inter_” included in the name of the syntax element may indicate that the syntax element is information related to inter prediction. “_luma_” included in the name of the syntax element may indicate that the syntax element is information related to the luma channel (component). “_chroma_” included in the name of the syntax element may indicate that the syntax element is information related to a chroma channel (component). “_cb_” included in the name of the syntax element may indicate that the syntax element is information related to a Cb channel (component). “_cr_” included in the name of the syntax element may indicate that the syntax element is information related to the Cr channel (component). “_bdpcm_ . . . _enabled_flag” included in the name of the syntax element may indicate that the syntax element is information indicating whether BDPCM is enabled. “_bdpcm_ . . . _dir_flag” included in the name of the syntax element may indicate that the syntax element is information indicating the prediction direction of BDPCM. “_chroma_common_” included in the name of the syntax element may indicate that the syntax element is information commonly applied to the chroma channel.
In the above-described embodiments, the methods are described on the basis of a flowchart as a series of steps or units, but the present disclosure is not limited to the order of steps, and some steps may occur in a different order or simultaneously with other steps as described above. In addition, a person of ordinary skill in the art will recognize that the steps shown in the flowchart are not exclusive, other steps may be included, or that one or more steps of the flowchart may be deleted without affecting the scope of the present disclosure.
The above-described embodiments include examples of various aspects. It is not possible to describe all possible combinations to represent the various aspects, but one of ordinary skill in the art will recognize that other combinations are possible. Accordingly, the present disclosure is intended to cover all other substitutions, modifications and variations falling within the scope of the following claims.
The embodiments according to the present disclosure described above may be implemented in the form of program instructions that may be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present disclosure, or may be known and used by those skilled in the computer software field. Examples of the computer-readable recording medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as a CD-ROM and DVD, and a magneto-optical medium such as a floptical disk, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language code such as those generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present disclosure, and vice versa.
In the above, the present disclosure has been described with specific items such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present disclosure, and the present disclosure is not limited to the above embodiments, and those of ordinary skill in the art to which the present disclosure pertains may devise various modifications and variations from these descriptions.
Therefore, the spirit of the present disclosure should not be limited to the above-described embodiments, and not only the claims described below but also all modifications equally or equivalently to the claims described below belong to the scope of the spirit of the present disclosure.
The embodiments of the present disclosure may be used to encode or decode an image.
Number | Date | Country | Kind |
---|---|---|---|
10-2020-0003617 | Jan 2020 | KR | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/KR2021/000309 | 1/11/2021 | WO |