Image encoding device, image encoding method, image decoding device, image decoding method
By determining the deblocking filtering strength based on prediction modes and quantization parameters, the method addresses the inadequacy of HEVC deblocking filters for weighted intra-inter prediction in VVC, effectively reducing block boundary distortions and enhancing image quality.
Patent Information
- Application Number
- JP2024000799
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-01-05
- Publication Date
- 2025-05-12
- Estimated Expiration
- 2038-12-17
AI Technical Summary
The existing deblocking filter techniques in HEVC are inadequate for suppressing distortions at block boundaries when using weighted intra-inter prediction in VVC.
An encoding method that determines the strength of deblocking filtering based on the prediction modes of adjacent blocks, using a bS value calculation that considers the quantization parameters and prediction types, to ensure appropriate filtering intensity for weighted intra-inter predictions.
This approach effectively suppresses distortions at block boundaries, improving the subjective image quality while maintaining computational efficiency by not requiring additional complex calculations.
Smart Images

Figure 0007675225000002 
Figure 0007675225000003 
Figure 0007675225000004
Abstract
Description
[Technical field]
[0001] The present invention relates to an image encoding technique and an image decoding technique. [Background technology]
[0002] Known coding methods for compressing and recording moving images include the H.264 / AVC coding method (hereinafter referred to as H.264) and the HEVC (High Efficiency Video Coding) coding method (hereinafter referred to as HEVC). In order to improve coding efficiency, HEVC adopts a basic block larger than the conventional macroblock (16 pixels x 16 pixels). This large basic block is called a CTU (Coding Tree Unit) and its size is a maximum of 64 pixels x 64 pixels. The CTU is further divided into subblocks, which are the units for prediction and transformation.
[0003] In addition, in HEVC, adaptive deblocking filter processing is performed on block boundaries of a reconstructed image obtained by adding a signal after inverse quantization and inverse transform processing and a predicted image, thereby making it possible to suppress visually noticeable block distortion and prevent the propagation of image quality degradation to a predicted image. Patent Document 1 discloses a technology related to such a deblocking filter.
[0004] In recent years, activities have been started to internationally standardize a more efficient coding method as a successor to HEVC. JVET (Joint Video Experts Team) was established between ISO / IEC and ITU-T, and standardization is underway as the Versatile Video Coding (VVC) coding method (hereinafter referred to as VVC). In order to improve coding efficiency, in addition to conventional intra prediction and inter prediction, a new prediction method using both intra-predicted pixels and inter-predicted pixels (hereinafter referred to as weighted intra-inter prediction) is being considered. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Special Publication No. 2014-507863 Summary of the Invention [Problem to be solved by the invention]
[0006] In VVC, the introduction of a deblocking filter is being considered, as in HEVC. In addition to conventional intra prediction and inter prediction, the introduction of weighted intra / inter prediction, which generates new predicted pixels using both intra prediction pixels and inter prediction pixels, is being considered in VVC. In HEVC, the method of determining the strength of the deblocking filter is premised on a prediction method such as intra prediction / inter prediction. On the other hand, the strength of the deblocking filter for the new prediction method, weighted intra / inter prediction, is also determined in the same manner as inter prediction, but this has the problem that it is not possible to sufficiently suppress distortion at block boundaries. In the present invention, a technology is provided for appropriately determining the strength of the deblocking filter process for weighted intra / inter prediction and suppressing distortion occurring at block boundaries. [Means for solving the problem]
[0007] One aspect of the present invention is a coding means for coding an image by performing a prediction process for each block; a determining means for determining a bS value of a deblocking filter process performed on a boundary between a first block and a second block adjacent to the first block, based on at least one of a mode used in a prediction process of the first block and a mode used in a prediction process of the second block; a processing means for performing a deblocking filter process on the boundary based on a tc value derived using a first quantization parameter of the first block, a second quantization parameter of the second block, and the bS value determined by the determining means; Equipped with the bS value corresponds to the strength of the deblocking filter; The encoding means comprises: A first mode in which predicted pixels of a block to be encoded are derived using pixels in an image including the block; a second mode in which predicted pixels of the block to be coded are derived using pixels of an image other than the image in which the block to be coded is included; and a third mode in which a predicted pixel of the current block is generated using values of predicted pixels obtained using intra prediction, values of predicted pixels obtained using inter prediction, and weight values that depend on the position of the current block in the image; Multiple modes including Either It can be used in prediction processing, The determining means is When the third mode is used in at least one of the first block and the second block, regardless of the weight value used in the third mode, A bS value of a deblocking filter process performed on the boundary between the first block and the second block, The same bS value as when the first mode is used in at least one of the first block and the second block, and death, When the third mode is used in at least one of the first block and the second block, the bS value is set to 2. It is characterized by: Effect of the Invention
[0008] According to the configuration of the present invention, it is possible to appropriately determine the strength of the deblocking filter process for weighted intra / inter prediction, and suppress distortion occurring at block boundaries. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a block diagram showing an example of the functional configuration of an image encoding device. [Diagram 2] FIG. 2 is a block diagram showing an example of the functional configuration of an image decoding device. [Diagram 3] 13 is a flowchart of an encoding process. [Figure 4] 13 is a flowchart of a decoding process. [Diagram 5] FIG. 2 is a block diagram showing an example of the hardware configuration of a computer apparatus. [Figure 6] FIG. 1 is a diagram showing an example of the configuration of a bit stream. [Figure 7] FIG. 13 is a diagram showing an example of a deblocking filter process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings. Note that the embodiment described below shows an example of a specific implementation of the present invention, and is one of the specific embodiments of the configuration described in the claims. For example, the following description uses terms such as "basic block" and "sub-block", but each embodiment can be applied to various processing units called "block" or "unit" in image coding technology.
[0011] [First embodiment] First, an example of the functional configuration of the image encoding device according to this embodiment will be described with reference to the block diagram in Fig. 1. A control unit 199 controls the operation of the entire image encoding device. A block division unit 102 divides an input image (an image of each frame constituting a moving image or a still image) into a plurality of basic blocks, and outputs each of the divided basic blocks (divided images).
[0012] The prediction unit 103 divides each basic block into a plurality of sub-blocks (divided images). Then, for each sub-block, the prediction unit 103 performs intra-frame prediction (intra prediction), inter-frame prediction (inter prediction), or weighted intra- and inter-prediction that combines both intra-frame prediction and inter-frame prediction with weighting to generate a predicted image. Then, for each sub-block, the prediction unit 103 obtains the difference between the predicted image and the sub-block as a prediction error. The prediction unit 103 also generates, as prediction information, information indicating how the basic block is divided into sub-blocks, and information required for prediction such as a prediction mode and a motion vector.
[0013] The transform / quantization unit 104 performs orthogonal transform on the prediction error for each sub-block to generate transform coefficients (orthogonal transform coefficients) for each sub-block, and then quantizes the transform coefficients of each sub-block to generate quantized coefficients for that sub-block.
[0014] The inverse quantization / inverse transform unit 105 inverse quantizes the quantization coefficients of each sub-block generated by the transform / quantization unit 104 using the quantization matrix used for quantizing the sub-block to generate transform coefficients, and then performs inverse orthogonal transform on the transform coefficients to generate prediction errors.
[0015] The image reproduction unit 106 generates a predicted image from the coded image data stored in the frame memory 107 based on the prediction information generated by the prediction unit 103, and reproduces an image from the predicted image and the prediction error generated by the inverse quantization and inverse transform unit 105. The image reproduction unit 106 then stores the reproduced image in the frame memory 107. The image stored in the frame memory 107 becomes an image that is referred to when the prediction unit 103 performs prediction (prediction processing) on an image of another frame.
[0016] The in-loop filter unit 108 performs in-loop filter processing such as deblocking filtering and sample adaptive offset on the image stored in the frame memory 107 .
[0017] The filter processing strength calculation unit 112 uses the prediction information output from the prediction unit 103 and the quantization coefficients output from the transformation and quantization unit 104 to calculate the strength (bS value) of the deblocking filter processing to be performed on the boundary between adjacent sub-blocks.
[0018] If one of two adjacent subblocks is called subblock P and the other is called subblock Q, the bS value, which is the strength of the deblocking filter process performed on the boundary between subblock P and subblock Q, is calculated as follows.
[0019] If at least one of subblocks P and Q is a subblock to which intra prediction or weighted intra / inter prediction is applied, the bS value is set to 2. Otherwise, if at least one of subblocks P and Q has a nonzero orthogonal transform coefficient, bS=1. Otherwise, if the absolute value (magnitude) of the difference between the motion vector of subblock P and the motion vector of subblock Q is equal to or greater than a specified value (e.g., 1 pixel or more), then bS=1. Otherwise, if the reference images for motion compensation between subblocks P and Q are different or the number of motion vectors is different, bS=1. Other than the above, bS value = 0 Here, the larger the bS value, the stronger the deblocking filter processing is. In this embodiment, when the bS value is 0, the deblocking filter processing is not performed, and when the bS value is 1, the deblocking filter processing is performed only on the luminance component. When the bS value is 2, the deblocking filter processing is performed on the luminance component and the chrominance component. That is, in this embodiment, the bS value indicates whether or not the deblocking filter processing is performed, and indicates the type of the signal (image component) to be subjected to the deblocking filter processing, such as the luminance component or the chrominance component, but is not limited thereto. The number of types of strength of the deblocking filter processing may be more or less. The content of the processing according to the strength of the deblocking filter processing may also be different. For example, the bS value may take five levels of values from 0 to 4, as in the deblocking filter process of H.264. In this embodiment, the strength of the deblocking filter process for the boundary of a subblock using weighted intra / inter prediction is the same as when the subblock uses intra prediction. This indicates that the bS value is 2, i.e., the maximum strength, but this embodiment is not limited to this. An intermediate bS value may be set between bS value=1 and bS value=2 in this embodiment, and this intermediate bS value may be used when at least one of the subblocks P and Q is weighted intra / inter prediction. In this case, it is also possible to perform the same deblocking filter process as when the normal bS value is 2 on the luminance component, and perform a deblocking filter process with a weaker smoothing effect than when the bS value is 2 on the chrominance component. This allows a deblocking filter process with an intermediate smoothing degree to be performed on the boundary of a subblock using weighted intra / inter prediction. As described above, when simply referring to the "strength of the deblocking filter process," it means changing the strength of the deblocking filter process by changing the signal (luminance component or chrominance component) that is subjected to the deblocking filter process, or by changing the strength of the smoothing effect that corrects the signal using the deblocking filter.
[0020] As described above, the strength of the deblocking filter process to be performed on the boundaries of each adjacent block in the reconstructed image (decoded image) stored in the frame memory 107 is determined based on information obtained during the predictive coding process of each block.
[0021] In this embodiment, a deblocking filter is applied to an 8 pixel by 8 pixel image area including the boundaries of sub-blocks, thereby achieving deblocking filter processing on the image area.
[0022] Here, the deblocking filter process performed by the in-loop filter unit 108 will be described in detail with reference to an example in FIG. 7. In FIG. 7, a subblock P (referred to as block P in FIG. 7) having a size of 8 pixels×8 pixels is adjacent to a subblock Q (referred to as block Q in FIG. 7) having a size of 8 pixels×8 pixels on the right side. Here, it is assumed that deblocking filter process is performed on the boundary portion between the subblocks P and Q (8 pixels (horizontal)×8 pixels (vertical) consisting of 4 pixels (horizontal)×8 pixels (vertical) at the right end of the subblock P and 4 pixels (horizontal)×8 pixels (vertical) at the left end of the subblock Q). At this time, by performing the process described below on each of the upper half and the lower half of the boundary portion, it is possible to realize deblocking filter process on each of the upper half and the lower half. Here, the upper half of the boundary portion refers to an image area of 8 pixels (horizontal)×4 pixels (vertical) consisting of 4 pixels (horizontal)×4 pixels (vertical) at the top right of the subblock P and 4 pixels (horizontal)×4 pixels (vertical) at the top left of the subblock Q. The lower half of the boundary refers to an image area of 8 pixels (horizontal) x 4 pixels (vertical) consisting of 4 pixels (horizontal) x 4 pixels (vertical) in the bottom right of sub-block P and 4 pixels (horizontal) x 4 pixels (vertical) in the bottom left of sub-block Q.
[0023] The deblocking filter process for the lower half of the boundary portion is described below, and the deblocking filter process described below is also applied to the upper half of the boundary portion in the same manner.
[0024] 7 represent pixels in a 4 pixel (horizontal) x 4 pixel (vertical) image region in the lower right of sub-block P, and p00 to p33 represent pixel values. q00 to q33 in Fig. 7 represent pixels in a 4 pixel (horizontal) x 4 pixel (vertical) image region in the lower left of sub-block Q, and q00 to q33 represent pixel values. First, for the luminance signal, if bS value is 1 or more, it is determined whether or not to perform filtering processing using the following formula.
[0025] |p20-2×p10+p00|+|p23-2×p13+p03|+|q20-2×q10+q00|+|q23-2×q13+q03|<β Here, β is a value calculated from the average value of the quantization parameter of subblock P and the quantization parameter of subblock Q. Only when this inequality is satisfied is it determined that deblocking filter processing should be performed. When performing deblocking filter processing, it is next determined whether to use strong filtering or weak filtering, which have different smoothing effects. If all of the following inequalities (1) to (6) are satisfied, it is determined that strong filtering, which has a strong smoothing effect, should be used, and otherwise it is determined that weak filtering, which has a weaker smoothing effect than strong filtering, should be used. (1) 2×(|p20-2×p10+p00|+|q20-2×q10+q00|)<(β>>2) (2) 2×(|p23-2×p13+p03|+|q23-2×q13+q03|)<(β>>2) (3) |p30-p00|+|q00-q30|<(β>>3) (4) |p33-p03|+|q03-q33|<(β>>3) (5) |p00-q00|<((5×tc+1)>>1) (6) |p03-q03|<((5×tc+1)>>1) Here, >>N (N=1 to 3) denotes an N-bit arithmetic right shift operation, and tc is a value calculated from the bS value, the quantization parameter of the subblock P, and the quantization parameter of the subblock Q.
[0026] Strong filtering processing with a strong smoothing effect on luminance signals is expressed by the following equation, where the post-filtering pixels are p'0k, p'1k, p'2k, q'0k, q'1k, and q'2k (k=0 to 3).
[0027] p'0k=Clip3(p0k-2×tc,p0k+2×tc,(p2k+2×p1k+2×p0k+2×q0k+q1k+4)>>3) p'1k=Clip3(p1k-2×tc,p1k+2×tc,(p2k+p1k+p0k+q0k+2)>>2) p'2k=Clip3(p2k-2×tc,p2k+2×tc,(2×p3k+3×p2k+p1k+p0k+q0k+4)>>3) q'0k=Clip3(q0k-2×tc,q0k+2×tc,(q2k+2×q1k+2×q0k+2×p0k+p1k+4)>>3) q'1k=Clip3(q1k-2×tc,q1k+2×tc,(q2k+q1k+q0k+p0k+2)>>2) q'2k=Clip3(q2k-2×tc,q2k+2×tc,(2×q3k+3×q2k+q1k+q0k+p0k+4)>>3) Here, Clip3(a, b, c) is a function that performs clipping so that the range of c is a≦b≦c. On the other hand, weak filtering, which has a weak smoothing effect on the luminance signal, is performed as follows.
[0028] Δ=(9×(q0k-p0k)-3×(q1k-p1k)+8)>>4 |Δ|<10×tc If this inequality is not satisfied, the deblocking filter process is not performed, and if it is satisfied, the following process is performed on pixel values p0k and q0k.
[0029] Δ=Clip3(-tc,tc,Δ) p'0k = Clip1Y (p0k + Δ) q'0k = Clip1Y (q0k - Δ) Here, Clip1Y(a) is a function that performs clipping so that the range of a is 0≦a≦(maximum value that can be expressed by the bit depth of the luminance signal). Furthermore, when the following condition is satisfied, |p20-2×p10+p00|+|p23-2×p13+p03|<(β+(β>>1))>>3) |q20-2×q10+q00|+|q23-2×q13+q03|<(β+(β>>1))>>3) The following filtering is performed on p1k and q1k, respectively.
[0030] Δp=Clip3(-(tc>>1),tc>>1,(((p2k+p0k+1)>>1)-p1k+Δ)>>1) p'1k = Clip1Y (p1k + Δp) Δq=Clip3(-(tc>>1),tc>>1,(((q2k+q0k+1)>>1)-q1k+Δ)>>1) q'1k = Clip1Y (q1k + Δq) Regarding the deblocking filter process of the color difference signal, the following process is performed only when the bS value is 2.
[0031] Δ=Clip3(-tc,tc,(((q0k-p0k)<<2)+p1k-q1k+4)>>3)) p'0k = Clip1C (p0k + Δ) p'0k = Clip1C (p0k - Δ) Here, Clip1C(a) is a function that performs clipping so that the range of a is 0≦a≦(maximum value expressible by the bit depth of the color difference signal). In this embodiment, the bS value indicating the strength of the deblocking filter processing indicates the type of signal to be processed by the deblocking filter, and a strong filter with a high smoothing effect and a weak filter with a weak smoothing effect are used separately according to the conditions of the pixel value. However, this is not limited to this. For example, not only the type of signal but also the strength of the smoothing effect may be determined according to the bS value, or only the strength of the smoothing effect may be determined by the bS value, and the type of signal may be determined by another condition.
[0032] The encoding unit 109 generates encoded data by encoding the quantization coefficients generated by the transform / quantization unit 104 and the prediction information generated by the prediction unit 103. The integrated encoding unit 110 generates and outputs a bitstream including the encoded data generated by the encoding unit 109 and header data including information necessary for decoding the input image.
[0033] Next, an operation of the image encoding device according to this embodiment will be described. The block division unit 102 divides an input image into a plurality of basic blocks, and outputs each of the divided basic blocks.
[0034] The prediction unit 103 divides each basic block into a plurality of sub-blocks (divided images). Then, the prediction unit 103 determines which of the following prediction methods is to be used for coding each sub-block.
[0035] Intra prediction, such as horizontal and vertical prediction Inter prediction with motion compensation from reference frames Weighted intra / inter prediction, a combination of intra and inter prediction The prediction method used in this embodiment will be described again. In intra prediction, predicted pixels of a block to be coded (block to be coded) are generated (derived) using coded pixels located spatially around the block to be coded, and an intra prediction mode indicating an intra prediction method such as horizontal prediction, vertical prediction, or DC prediction is also generated.
[0036] In inter prediction, predicted pixels for a block to be coded are generated using coded pixels of a frame that is temporally different from the block to be coded, and motion information indicating a reference frame, a motion vector, and the like is also generated.
[0037] In weighted intra-inter prediction, the pixel value of the predicted pixel of the block to be coded is generated by taking a weighted average (using both) of the pixel value generated by the above-mentioned intra prediction and the pixel value generated by the above-mentioned inter prediction. The pixel value of the predicted pixel is calculated, for example, using the following formula (1) (formula when the size of the basic block is 8 pixels x 8 pixels):
[0038] p[x][y]=(w×pInter[x][y]+(8-w)×pIntra[x][y])>>3)…(1) Here, ">>" represents a bit shift to the right. In the above formula (1), p[x][y] is the pixel value of the predicted pixel calculated by weighted intra-inter prediction at the coordinates (x, y) in the block to be coded. pInter[x][y] represents the pixel value by inter prediction at the coordinates (x, y) in the block to be coded, and pInter[x][y] represents the pixel value by inter prediction at the coordinates (x, y) in the block to be coded. w represents the weight value for the pixel value of inter prediction and the pixel value of intra prediction, and in this embodiment, when w=4, the weight for the pixel value of inter prediction and the pixel value of intra prediction are the same. In other words, if w>4, the weight for the pixel value of inter prediction increases, and if w<4, the weight for the pixel value of intra prediction increases. The method of determining the weight value w is not particularly limited, but it is determined according to the intra prediction mode, the size of the motion vector of inter prediction, the position of the block to be coded, and the like. In this way, weighted intra / inter prediction generates predicted pixels for the current block to be coded, and also generates the intra prediction mode and motion information used to generate the predicted pixels.
[0039] The prediction unit 103 then generates a predicted image from the determined prediction method and encoded pixels, and generates a prediction error from the sub-block and the predicted image. The prediction unit 103 also generates prediction information, such as information indicating how the basic block is divided into sub-blocks, a prediction mode, a motion vector, and other information required for prediction.
[0040] The transform / quantization unit 104 generates transform coefficients for each sub-block by performing orthogonal transform on the prediction error for each sub-block, and then quantizes the transform coefficients of each sub-block to generate quantized coefficients for that sub-block.
[0041] The inverse quantization / inverse transform unit 105 inverse quantizes the quantization coefficients of each sub-block generated by the transform / quantization unit 104 using the quantization matrix used for quantizing the sub-block to generate transform coefficients, and then performs inverse orthogonal transform on the transform coefficients to generate prediction errors.
[0042] The image reproduction unit 106 generates a predicted image from the coded image data stored in the frame memory 107 based on the prediction information generated by the prediction unit 103, and reproduces an image from the predicted image and the prediction error generated by the inverse quantization / inverse transform unit 105. The image reproduction unit 106 then stores the reproduced image in the frame memory 107.
[0043] The filter processing strength calculation unit 112 performs the above-mentioned processing using the prediction information output from the prediction unit 103 and the quantization coefficients output from the transformation and quantization unit 104, thereby calculating the strength of the deblocking filter processing to be performed on the boundary between adjacent sub-blocks.
[0044] The in-loop filter unit 108 performs in-loop filter processing such as deblocking filtering and sample adaptive offset on the image stored in the frame memory 107. The deblocking filter processing performed by the in-loop filter unit 108 is based on the strength calculated by the filter processing strength calculation unit 112.
[0045] The encoding unit 109 generates encoded data by entropy encoding the quantization coefficients generated by the transform / quantization unit 104 and the prediction information generated by the prediction unit 103. There is no particular specification as to the entropy encoding method, but Golomb encoding, arithmetic encoding, Huffman encoding, etc. can be used.
[0046] The integrated encoding unit 110 multiplexes the encoded data and header data generated by the encoding unit 109 to generate a bit stream, and outputs the generated bit stream.
[0047] The encoding process of an input image by the image encoding device described above will be described with reference to the flowchart in Fig. 3. In step S301, the integral encoding unit 110 encodes a header required for encoding an image to generate header data (encoded data).
[0048] In step S302, the block division unit 102 divides the input image into a plurality of basic blocks. In step S303, the prediction unit 103 selects one of the basic blocks divided in step S302 that has not been selected as a selected basic block. Then, the prediction unit 103 determines a subblock division method (in this embodiment, one of intra prediction, inter prediction, and weighted intra / inter prediction), and divides the selected basic block into a plurality of subblocks according to the determined subblock division method. The prediction unit 103 also determines a prediction method for each subblock. Then, the prediction unit 103 generates a predicted image by performing prediction according to the determined prediction method using an image in the frame memory 107 for each subblock, and obtains the difference between the subblock and the predicted image as a prediction error. The prediction unit 103 also generates information necessary for prediction, such as information indicating the subblock division method, a prediction mode, and a motion vector, as prediction information.
[0049] In step S304, the transform / quantization unit 104 performs orthogonal transform on the prediction error for each sub-block to generate transform coefficients for each sub-block, and then quantizes the transform coefficients of each sub-block to generate quantized coefficients for the sub-block.
[0050] In step S305, the inverse quantization and inverse transform unit 105 inverse quantizes the quantization coefficients of each sub-block generated in step S304 using the quantization matrix used in the quantization of the sub-block to generate transform coefficients, and then performs inverse orthogonal transform on the generated transform coefficients to generate prediction errors.
[0051] In step S306, the image reproducing unit 106 generates a predicted image from the encoded image data stored in the frame memory 107, based on the prediction information generated by the prediction unit 103. Then, the image reproducing unit 106 regenerates an image from the predicted image and the prediction error generated by the inverse quantization / inverse transform unit 105. Then, the image reproducing unit 106 stores the regenerated image in the frame memory 107.
[0052] In step S307, the encoding unit 109 generates encoded data by entropy encoding the quantization coefficients generated by the transform / quantization unit 104 and the prediction information generated by the prediction unit 103. The integrated encoding unit 110 multiplexes the encoded data generated by the encoding unit 109 and header data to generate a bit stream.
[0053] In step S308, the control unit 199 determines whether or not all basic blocks have been coded. If the result of this determination is that all basic blocks have been coded, the process proceeds to step S309, and if there are basic blocks remaining that have not yet been coded, the process proceeds to step S303.
[0054] In step S309, the filter processing strength calculation unit 112 performs the above-mentioned processing using the prediction information obtained by the prediction unit 103 and the quantization coefficients obtained by the transformation and quantization unit 104, thereby calculating the strength of the deblocking filter processing to be performed on the boundary between adjacent sub-blocks.
[0055] In step S310, the in-loop filter unit 108 performs in-loop filter processing such as deblocking filtering and sample adaptive offset on the image stored in the frame memory 107. The deblocking filter processing performed on the boundary between adjacent sub-blocks is based on the strength calculated by the filter processing strength calculation unit 112 for the boundary.
[0056] As described above, according to the present embodiment, particularly in step S309, a deblocking filter with a high distortion correction effect can be set for the boundaries of sub-blocks using weighted intra / inter prediction. This makes it possible to suppress block distortion and improve subjective image quality. In addition, since no new calculation is required to calculate the strength of the deblocking filter process, the complexity of implementation is not increased.
[0057] In addition, in this embodiment, the presence or absence of deblocking filter processing for luminance or chrominance block boundaries is changed depending on the strength (bS value) of the deblocking filter processing, but the strength (bS value) may be changed to change the strength of the smoothing effect of the filter itself. For example, when the strength (bS value) of the deblocking filter processing is large, a filter with a longer tap length and a higher correction effect is used, and when the strength (bS value) of the deblocking filter processing is small, a filter with a shorter tap length and a lower correction effect is used. This makes it possible to adjust the strength of the filter, i.e., the correction effect, by a method other than the presence or absence of the deblocking filter processing.
[0058] [Second embodiment] In each of the following embodiments including this embodiment, the differences from the first embodiment will be described, and unless otherwise specified below, it is assumed that the embodiments are the same as the first embodiment. In this embodiment, the image encoding device performs the following process according to the flowchart in FIG.
[0059] An example of the bitstream configuration according to this embodiment is shown in Fig. 6. The picture header stores filter_weight_threshold, which is a weighting threshold (intensity weighting threshold) for the strength of the deblocking filtering process. This is a threshold that determines whether the subblock in question is treated as a subblock to which intra prediction is applied or a subblock to which inter prediction is applied in the calculation of the bS value of the deblocking filter, depending on the weight value w in weighted intra / inter prediction.
[0060] In step S309, the filtering strength calculation unit 112 calculates the bS value. Specifically, if the following inequality holds, the bS value of the weighted intra / inter prediction sub-block is calculated as the intra prediction sub-block.
[0061] w <filter_weight_threshold For example, when the value of filter_weight_threshold is 4, all weighted intra / inter prediction subblocks with w less than 4 are treated as intra prediction subblocks. All weighted intra / inter prediction subblocks with w equal to or greater than 4 are treated as inter prediction subblocks. The following table shows examples of bS values when subblocks P and Q in Figure 7 are coded using intra prediction, inter prediction, weighted intra / inter prediction (w=3), and weighted intra / inter prediction (w=5).
[0062] [Table 1]
[0063] In this table, filter_weight_threshold=4. For example, when at least one of adjacent subblocks P and Q is coded by intra prediction or weighted intra / inter prediction (w=3), the one is treated as an intra prediction block, and the bS value is set to 2. When both subblocks P and Q are coded by inter prediction or weighted intra / inter prediction (w=5), both subblocks P and Q are treated as inter prediction blocks, and the bS value is set to 0 or 1. The determination of whether to set 0 or 1 is the same as that of the filter processing strength calculation unit 112 in the first embodiment, and is determined by the presence or absence of non-zero orthogonal transform coefficients of subblocks P and Q, the difference in the number and size of motion vectors, the difference in reference images, and the like.
[0064] The filter processing strength calculation unit 112 determines the bS value by referring to the data in such a table. In this embodiment, filter_weight_threshold is stored in the picture header, but the storage destination is not limited to a specific storage destination, and may be stored in, for example, a sequence header. In this embodiment, the intensity weighting threshold is stored in the header as information for determining whether a subblock of weighted intra / inter prediction is treated as a subblock of intra prediction or a subblock of inter prediction when calculating the bS value. However, this is not limited to this. Flag information indicating that the subblock is always treated as a subblock of intra prediction may be stored, or information indicating that the subblock is always treated as a subblock of inter prediction may be stored. Alternatively, the intensity weighting threshold filter_weight_threshold_minus4 may be obtained by subtracting 4 from the value of filter_weight_threshold in advance. This increases the possibility that the value of filter_weight_threshold_minus4 is set to 0 or a value in the vicinity thereof, so that the amount of code of the information itself can be reduced by Golomb coding or the like.
[0065] In this way, according to the present embodiment, it is possible to determine the strength of the deblocking filter process for a sub-block of weighted intra / inter prediction without requiring complex processing, and the user can freely adjust the strength of the deblocking filter process for a block of weighted intra / inter prediction.
[0066] In addition, in this embodiment, information for determining the strength of the filter is output to the header, but this is not limited to this. It is also possible to uniquely determine in advance whether a subblock of weighted intra / inter prediction is treated as intra or inter depending on the value of w. Also, regardless of the bS value, a deblocking filter that smooths more strongly may be applied as the intra weight becomes stronger. This saves the amount of code equivalent to the strength weighting threshold, and reduces the implementation complexity by fixing the deblocking filter process depending on the prediction mode.
[0067] [Third embodiment] In this embodiment, an image decoding device that decodes an input image encoded by the image encoding device according to the first embodiment will be described. An example of the functional configuration of the image decoding device according to this embodiment will be described with reference to the block diagram of FIG.
[0068] The control unit 299 controls the operation of the entire image decoding device. The separate decoding unit 202 obtains a bit stream generated by the image coding device, separates information related to the decoding process and coded data related to coefficients from the bit stream, and decodes the coded data present in the header of the bit stream. In this embodiment, the separate decoding unit 202 performs the reverse operation of the integrated coding unit 110 described above.
[0069] The decoding unit 203 obtains quantized coefficients and prediction information by decoding the coded data separated from the bit stream by the separate decoding unit 202. The inverse quantization and inverse transform unit 204 performs the same operation as the inverse quantization and inverse transform unit 105 included in the above-mentioned image coding device. The inverse quantization and inverse transform unit 204 obtains transform coefficients by performing inverse quantization on the quantized coefficients, and obtains prediction errors by performing inverse orthogonal transform on the transform coefficients.
[0070] The image reproduction unit 205 generates a predicted image by referring to an image stored in the frame memory 206 based on the prediction information decoded by the decoding unit 203. The image reproduction unit 205 then generates a reproduced image using the generated predicted image and the prediction error obtained by the inverse quantization and inverse transform unit 204, and stores the generated reproduced image in the frame memory 206.
[0071] The filtering strength calculation unit 209 determines the bS value, which is the strength of the deblocking filter process for the boundary between adjacent sub-blocks, in the same manner as the filtering strength calculation unit 112, using the prediction information and quantization coefficients decoded by the decoding unit 203.
[0072] The in-loop filter unit 207 performs in-loop filter processing such as deblocking filtering on the reconstructed image stored in the frame memory 206, similar to the in-loop filter unit 108. The deblocking filter processing by the in-loop filter unit 207 is a deblocking filter processing corresponding to the bS value calculated by the filter processing strength calculation unit 209.
[0073] The reproduced image stored in the frame memory 206 is appropriately output by the control unit 299. The output destination of the reproduced image is not limited to a specific output destination, and for example, the reproduced image may be displayed on a display screen of a display device such as a display, or the reproduced image may be output to a projection device such as a projector.
[0074] Next, the operation of the image decoding device having the above configuration (bitstream decoding process) will be described. In this embodiment, the bitstream input to the demultiplexing decoding unit 202 is a bitstream for each frame of a moving image, but it may be a bitstream for a still image.
[0075] The demultiplexing and decoding unit 202 obtains a bit stream for one frame generated by the image coding device, separates coded data related to information on the decoding process and coefficients from the bit stream, and decodes the coded data present in the header of the bit stream. The demultiplexing and decoding unit 202 also outputs coded data of basic blocks of picture data to the decoding unit 203.
[0076] The decoding unit 203 obtains quantization coefficients and prediction information by decoding the coded data separated from the bit stream by the separation decoding unit 202. This prediction information includes information indicating which of the following prediction methods was used to code each sub-block.
[0077] Intra prediction, such as horizontal and vertical prediction Inter prediction with motion compensation from reference frames - Weighted intra / inter prediction, combining intra and inter prediction The inverse quantization and inverse transform unit 204 obtains transform coefficients by performing inverse quantization on the quantized coefficients of each sub-block, and obtains prediction errors by performing inverse orthogonal transform on the transform coefficients.
[0078] The image reproduction unit 205 generates a predicted image by referring to an image stored in the frame memory 206 based on the prediction information decoded by the decoding unit 203. The image reproduction unit 205 then generates a reproduced image using the generated predicted image and the prediction error obtained by the inverse quantization and inverse transform unit 204, and stores the generated reproduced image in the frame memory 206.
[0079] The filtering strength calculation unit 209 determines the bS value, which is the strength of the deblocking filter process for the boundary between adjacent sub-blocks, in the same manner as the filtering strength calculation unit 112, using the prediction information and quantization coefficients decoded by the decoding unit 203.
[0080] The in-loop filter unit 207 performs in-loop filter processing such as deblocking filtering on the reconstructed image stored in the frame memory 206, similar to the in-loop filter unit 108. The deblocking filter processing by the in-loop filter unit 207 is a deblocking filter processing corresponding to the bS value calculated by the filter processing strength calculation unit 209.
[0081] In this embodiment, as in the first embodiment, the bS value indicates the type of signal (image component) to be processed by the deblocking filter, and a strong filter with a high smoothing effect and a weak filter with a weak smoothing effect are used separately according to the pixel value conditions. However, this is not limited to this. For example, not only the type of signal but also the strength of the smoothing effect may be determined according to the bS value, or only the strength of the smoothing effect may be determined by the bS value, and the type of signal may be determined by another condition.
[0082] The decoding process of one frame of a bit stream by the image decoding device described above will be described with reference to the flowchart in Fig. 4. In step S401, the separate decoding unit 202 obtains one frame of a bit stream generated by the image coding device. The separate decoding unit 202 then separates information related to the decoding process and coded data related to coefficients from the bit stream, and decodes the coded data present in the header of the bit stream.
[0083] The processes of steps S402 to S405 are performed for each basic block in the input image (within the image). In step S402, the decoding unit 203 decodes the coded data separated from the bit stream by the separation decoding unit 202 to obtain the quantization coefficients and prediction information.
[0084] In step S403, the inverse quantization / inverse transform unit 204 obtains transform coefficients by performing inverse quantization on the quantized coefficients of the sub-block to be decoded, and obtains prediction errors by performing inverse orthogonal transform on the transform coefficients.
[0085] In step S404, the image reproducing unit 205 generates a predicted image by referring to the image stored in the frame memory 206 based on the prediction information decoded by the decoding unit 203. Then, the image reproducing unit 205 generates a reproduced image using the generated predicted image and the prediction error obtained by the inverse quantization and inverse transform unit 204, and stores the generated reproduced image in the frame memory 206.
[0086] In step S405, the control unit 299 judges whether or not the decoding of all basic blocks included in the bit stream is completed. If the result of this judgment is that the decoding of all basic blocks included in the bit stream is completed, the process proceeds to step S406. On the other hand, if there are basic blocks that have not yet been decoded among all basic blocks included in the bit stream, the process from step S402 onwards is repeated for the basic blocks that have not yet been decoded.
[0087] In step S406, the filter processing strength calculation unit 209 uses the prediction information and quantization coefficients decoded by the decoding unit 203 to determine the bS value, which is the strength of the deblocking filter processing for the boundary between adjacent sub-blocks, in the same manner as the filter processing strength calculation unit 112.
[0088] In step S407, the in-loop filter unit 207 performs in-loop filter processing such as deblocking filtering on the reconstructed image stored in the frame memory 206 in step S404, in the same manner as the in-loop filter unit 108. The deblocking filter processing by the in-loop filter unit 207 is a deblocking filter processing corresponding to the bS value calculated by the filter processing strength calculation unit 209 in step S406.
[0089] In this way, according to this embodiment, it is possible to decode a bitstream in which an appropriate deblocking filter has been applied to sub-blocks encoded using weighted intra / inter prediction, which are generated by the image encoding device according to the first embodiment.
[0090] In addition, in this embodiment, the presence or absence of a filter at the block boundary of luminance or chrominance is changed depending on the strength (bS value) of the deblocking filter process, but the strength of the smoothing effect of the filter itself may be changed depending on the strength (bS value) of the deblocking filter process. For example, when the strength (bS value) of the deblocking filter process is large, a filter with a longer tap length and a higher correction effect may be used, and when the strength (bS value) of the deblocking filter process is small, a filter with a shorter tap length and a lower correction effect may be used. This makes it possible to decode a bitstream in which the strength of the filter, i.e., the correction effect, has been adjusted by a method other than the presence or absence of a filter.
[0091] [Fourth embodiment] In this embodiment, an image decoding device that decodes an input image encoded by the image encoding device according to the second embodiment will be described. In this embodiment, the process according to the flowchart in Fig. 4 is different from that of the third embodiment in the following points.
[0092] In step S401, the demultiplexing / decoding unit 202 demultiplexes the coded data related to the information on the decoding process and the coefficients from the bit stream shown in Fig. 6, and decodes the coded data present in the header of the bit stream. In this decoding, filter_weight_threshold, which is the intensity weighting threshold in the picture header, is decoded.
[0093] In step S406, the filtering strength calculation unit 209 calculates the bS value. Note that in this embodiment, the determination of whether the bS value is to be 0 or 1 is similar to that of the filtering strength calculation unit 209 in the third embodiment.
[0094] In this embodiment, filter_weight_threshold exists in the picture header, but is not limited thereto, and may exist in the sequence header, for example. In this embodiment, the intensity weighting threshold is decoded as information for determining whether the weighted intra-inter prediction block is treated as a sub-block of intra prediction or a sub-block of inter prediction when calculating the bS value. However, this is not limited thereto. Flag information indicating that the block is always treated as a sub-block of intra prediction may be decoded, or information indicating that the block is always treated as a sub-block of inter prediction may be decoded. Alternatively, the value of filter_weight_threshold may be decoded by subtracting 4 in advance as the intensity weighting threshold filter_weight_threshold_minus4. This increases the possibility that the value of filter_weight_threshold_minus4 is set to 0 or a value in the vicinity thereof, so that a bitstream with a small amount of information itself can be decoded.
[0095] In this way, according to the present embodiment, it is possible to determine the strength of the deblocking filter process for the sub-blocks of weighted intra / inter prediction without requiring complex processing, and it is also possible for the user to decode a bitstream in which the strength of the deblocking filter process for the sub-blocks of weighted intra / inter prediction has been freely adjusted.
[0096] In addition, in this embodiment, the information for determining the strength of the filter is decoded from the header, but this is not limited to this. It is also possible to uniquely determine whether the subblock of the weighted intra / inter prediction is treated as intra or inter depending on the value of w in advance. Also, regardless of the bS value, a deblocking filter that smooths more strongly may be applied as the intra weight increases. This allows the bitstream to be decoded with the code amount saved by the strength weighting threshold value, and the deblocking filter process to be fixed depending on the prediction mode, thereby reducing the implementation complexity.
[0097] [Fifth embodiment] All of the functional units shown in Figures 1 and 2 may be implemented in hardware, or some of them may be implemented in software (computer programs). In that case, a computer device having frame memory 107 or frame memory 206 as a memory device and capable of executing the computer program can be applied to the above image encoding device or image decoding device. An example of the hardware configuration of a computer device applicable to the above image encoding device or image decoding device will be described with reference to the block diagram of Figure 5.
[0098] The CPU 501 executes various processes using computer programs and data stored in the RAM 502 and the ROM 503. As a result, the CPU 501 controls the operation of the entire computer device, and executes or controls each of the processes described above as being performed by the image encoding device and image decoding device.
[0099] The RAM 502 has areas for storing computer programs and data loaded from the ROM 503 or the external storage device 506, and data received from the outside via an I / F (interface) 507 (for example, the above-mentioned moving image and still image data). The RAM 502 further has a work area used when the CPU 501 executes various processes. In this way, the RAM 502 can provide various areas as appropriate. The ROM 503 stores setting data, startup programs, and the like for the computer device.
[0100] The operation unit 504 is a user interface such as a keyboard, a mouse, or a touch panel, and the user can input various instructions to the CPU 501 by operating it.
[0101] The display unit 505 is configured with a liquid crystal screen, a touch panel screen, or the like, and can display the processing results by the CPU 501 as images, characters, and the like. For example, a reproduced image decoded by the above-mentioned image decoding device may be displayed on this display unit 505. Note that the display unit 505 may be a projection device such as a projector that projects images and characters.
[0102] The external storage device 506 is a large-capacity information storage device such as a hard disk drive device. The external storage device 506 stores an OS (operating system), computer programs and data for making the CPU 501 execute or control the various processes described above as being performed by the image encoding device and image decoding device. The computer programs stored in the external storage device 506 include computer programs for making the CPU 501 realize the functions of each functional unit other than the frame memory 107 and the frame memory 206. The data stored in the external storage device 506 also includes various types of information required for encoding and decoding, such as the information described above as known information (such as the intensity weighting threshold value and the data in the table of Table 1).
[0103] Computer programs and data stored in the external storage device 506 are loaded into the RAM 502 as appropriate under the control of the CPU 501, and are processed by the CPU 501. The frame memory 107 and the frame memory 206 can be implemented by memory devices such as the RAM 502 and the external storage device 506.
[0104] The I / F 507 functions as an interface for performing data communication with external devices. For example, moving images and still images can be acquired from an external server device or imaging device to the RAM 502 or the external storage device 506 via the I / F 507.
[0105] The CPU 501, RAM 502, ROM 503, operation unit 504, display unit 505, external storage device 506, and I / F 507 are all connected to a bus 508. Note that the configuration shown in Fig. 5 is merely an example of a hardware configuration of a computer device applicable to the above-mentioned image encoding device and image decoding device, and various changes / modifications are possible.
[0106] [Sixth embodiment] In each of the above embodiments, the coding unit is a sub-block. However, the coding unit is not limited to a sub-block, and for example, a basic block may be used as the coding unit. In addition, the numerical values used in the above description are used for concrete explanation, and it is not intended that each of the above embodiments is limited to the numerical values used. For example, the value of w, the value of the intensity weighting threshold, the size of the block, etc. used in the above description are examples, and are not limited to the numerical values.
[0107] In addition, in each of the above embodiments, the image decoding device is described as being a device separate from the image encoding device, but the image decoding device and the image encoding device may be integrated into one device, which can encode an input image and decode the encoded input image as necessary.
[0108] In addition, the object to which the deblocking filter is applied is not limited to the boundary of the subblock, but may be, for example, the boundary of the transform unit. In addition, in the above embodiment, the size of the deblocking filter is 8 pixels x 8 pixels, but is not limited to this size. In addition, the size of the transform unit may be the same as the size of the subblock, or may be a size different from the size of the subblock.
[0109] In addition, a part or all of the embodiments described above may be used in appropriate combination. In addition, a part or all of the embodiments described above may be used selectively.
[0110] (Other embodiments) The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions. [Explanation of symbols]
[0111] 102: Block division unit 103: Prediction unit 104: Transformation and quantization unit 105: Inverse quantization and inverse transformation unit 106: Image reproduction unit 107: Frame memory 108: In-loop filter unit 109: Encoding unit 110: Integrated encoding unit 112: Filter processing strength calculation unit 202: Separate decoding unit 203: Decoding unit 204: Inverse quantization and inverse transformation unit 205: Image reproduction unit 206: Frame memory 207: In-loop filter unit 209: Filter processing strength calculation unit 299: Control unit
Claims
1. An encoding means for encoding an image by performing a prediction process for each block; a determination means for determining a bS value of a deblocking filter process performed on a boundary between a first block and a second block adjacent to the first block, based on at least one of a mode used in a prediction process of the first block and a mode used in a prediction process of the second block; a processing means for performing a deblocking filter process on the boundary based on a tc value derived using a first quantization parameter of the first block, a second quantization parameter of the second block, and the bS value determined by the determining means; Equipped with the bS value corresponds to the strength of the deblocking filter; The encoding means comprises: A first mode derives predicted pixels of a block to be encoded using pixels in an image including the block; a second mode in which predicted pixels of a block to be coded are derived using pixels of an image other than the image in which the block is included; and and a third mode in which a predicted pixel of the target block is generated using values of predicted pixels obtained using intra prediction, values of predicted pixels obtained using inter prediction, and weight values that depend on the position of the target block in the image. It can be used in prediction processing, The determining means is When the third mode is used in at least one of the first block and the second block, regardless of the weight value used in the third mode, A bS value of a deblocking filter process performed on the boundary between the first block and the second block, The bS value is set to be the same as that when the first mode is used in at least one of the first block and the second block, When the third mode is used in at least one of the first block and the second block, the bS value is set to 2.
1. An image encoding device comprising:
2. The determining means is When the third mode is used in at least one of the first block and the second block, A bS value of a deblocking filter process performed on the boundary between the first block and the second block, a stronger bS value than when the second mode is used in both the first block and the second block; 2. The image encoding device according to claim 1 .
3. The processing means performs the deblocking filter process based on the tc value by selecting a component to be subjected to the deblocking filter process from among the luminance component and the chrominance component in the block in accordance with the bS value.
3. The image encoding device according to claim 1, wherein the first and second inputs are input to the image encoding unit.
4. The processing means performs the deblocking filter processing based on the tc value by selecting whether or not to perform the deblocking filter processing in accordance with the bS value.
4. The image encoding device according to claim 1, wherein the first and second inputs are input to the image encoding unit.
5. The determining means determines a filter to be applied to the luminance component at the boundary from among filters having different smoothing effects based on pixel values of pixels at the boundary.
5. The image encoding device according to claim 1, wherein the first and second inputs are input to the image encoding unit.
6. 6. The image encoding device according to claim 1, wherein in the third mode, a predicted pixel of the target block is generated by bit-shifting a value obtained from a value of a predicted pixel obtained using intra prediction, a value of a predicted pixel obtained using inter prediction, and the weight value by a predetermined number of bits to the right.
7. The processing means determines whether to execute the deblocking filter process based on a β value derived using both the first quantization parameter and the second quantization parameter; 7. The image encoding device according to claim 1, wherein the processing means performs the deblocking filter process on the boundary when it is determined that the deblocking filter process is to be performed.
8. 8. The image encoding device according to claim 7, wherein the β value is derived using an average value of the first quantization parameter and the second quantization parameter.
9. A decoding means for decoding an image by performing a prediction process for each block; a determination means for determining a bS value of a deblocking filter process to be performed on a boundary between a first block and a second block adjacent to the first block, based on at least one of a mode used in a prediction process of the first block and a mode used in a prediction process of the second block; a processing means for performing a deblocking filter process on the boundary based on a tc value derived using a first quantization parameter of the first block, a second quantization parameter of the second block, and the bS value determined by the determining means; Equipped with the bS value corresponds to the strength of the deblocking filter; The decoding means includes: A first mode derives predicted pixels of a block to be decoded using pixels in an image including the block; a second mode in which predicted pixels of a block to be decoded are derived using pixels of an image other than the image in which the block to be decoded is included; and a third mode in which a predicted pixel of the target block is generated using values of predicted pixels obtained using intra prediction, values of predicted pixels obtained using inter prediction, and weight values that depend on the position of the target block in the image; It can be used in prediction processing, The determining means is When the third mode is used in at least one of the first block and the second block, regardless of the weight value used in the third mode, A bS value of a deblocking filter process performed on the boundary between the first block and the second block, The bS value is set to be the same as that when the first mode is used in at least one of the first block and the second block, When the third mode is used in at least one of the first block and the second block, the bS value is set to 2.
2. An image decoding device comprising:
10. The determining means is When the third mode is used in at least one of the first block and the second block, A bS value of a deblocking filter process performed on the boundary between the first block and the second block is a stronger bS value than when the second mode is used in both the first block and the second block; 10. The image decoding device according to claim 9.
11. The processing means performs the deblocking filter process based on the tc value by selecting a component to be subjected to the deblocking filter process from among the luminance component and the chrominance component in the block in accordance with the bS value.
11. The image decoding device according to claim 9,
12. The processing means performs the deblocking filter processing based on the tc value by selecting whether or not to perform the deblocking filter processing in accordance with the bS value.
12. The image decoding device according to claim 9, wherein the image decoding device further comprises:
13. The determining means determines a filter to be applied to the luminance component at the boundary from among filters having different smoothing effects based on pixel values of pixels at the boundary.
13. The image decoding device according to claim 9, wherein the image decoding device further comprises:
14. 14. The image decoding device according to claim 9, wherein in the third mode, a predicted pixel of the target block is generated by bit-shifting a value obtained from a value of a predicted pixel obtained using intra prediction, a value of a predicted pixel obtained using inter prediction, and the weight value by a predetermined number of bits to the right.
15. The processing means determines whether to execute the deblocking filter process based on a β value derived using both the first quantization parameter and the second quantization parameter; 15. The image decoding device according to claim 9, wherein the processing means, when it is determined that the deblocking filter process is to be executed, executes the deblocking filter process on the boundary.
16. 16. The image decoding device according to claim 15, wherein the β value is derived using an average value of the first quantization parameter and the second quantization parameter.
17. An encoding process for encoding an image by performing a prediction process for each block; determining a bS value of a deblocking filter process performed on a boundary between a first block and a second block adjacent to the first block, based on at least one of a mode used in a prediction process of the first block and a mode used in a prediction process of the second block; a processing step of performing a deblocking filter process on the boundary based on a tc value derived using a first quantization parameter of the first block, a second quantization parameter of the second block, and the bS value determined in the determining step; having the bS value corresponds to the strength of the deblocking filter; In the encoding step, A first mode derives predicted pixels of a block to be encoded using pixels in an image including the block; a second mode in which predicted pixels of a block to be coded are derived using pixels of an image other than the image in which the block is included; and and a third mode in which a predicted pixel of the target block is generated using values of predicted pixels obtained using intra prediction, values of predicted pixels obtained using inter prediction, and weight values that depend on the position of the target block in the image. It can be used in prediction processing, In the determining step, When the third mode is used in at least one of the first block and the second block, regardless of the weight value used in the third mode, A bS value of a deblocking filter process performed on the boundary between the first block and the second block, The bS value is set to be the same as that when the first mode is used in at least one of the first block and the second block, When the third mode is used in at least one of the first block and the second block, the bS value is set to 2.
13. An image coding method comprising:
18. A decoding process for decoding an image by performing a prediction process for each block; determining a bS value of a deblocking filter process performed on a boundary between a first block and a second block adjacent to the first block, based on at least one of a mode used in a prediction process of the first block and a mode used in a prediction process of the second block; a processing step of performing a deblocking filter process on the boundary based on a tc value derived using a first quantization parameter of the first block, a second quantization parameter of the second block, and the bS value determined in the determining step; having the bS value corresponds to the strength of the deblocking filter; In the decoding step, A first mode derives predicted pixels of a block to be decoded using pixels in an image including the block; a second mode in which predicted pixels of a block to be decoded are derived using pixels of an image other than the image in which the block to be decoded is included; and and a third mode in which a predicted pixel of the target block is generated using values of predicted pixels obtained using intra prediction, values of predicted pixels obtained using inter prediction, and weight values that depend on the position of the target block in the image. It can be used in prediction processing, In the determining step, When the third mode is used in at least one of the first block and the second block, regardless of the weight value used in the third mode, A bS value of a deblocking filter process performed on the boundary between the first block and the second block, The bS value is set to be the same as that when the first mode is used in at least one of the first block and the second block, When the third mode is used in at least one of the first block and the second block, the bS value is set to 2.
2. An image decoding method comprising:
19. A computer program for causing a computer to function as each of the means of the image coding apparatus according to any one of claims 1 to 8.
20. A computer program for causing a computer to function as each of the means of the image decoding device according to any one of claims 9 to 16.
Citation Information
Patent Citations
Image decoder, image decoding method, image decoding program, receiver, reception method, and reception program
JP2013229866A
Deblocking Filtering
JP2014507863A
An encoder, a decoder and corresponding methods of boundary strength derivation of deblocking filter
WO2020114513A1
Method and apparatus for deblocking an image
WO2020123442A1