Decoding device and decoding method

The coding and decoding devices address the issue of insufficient block noise reduction by controlling deblocking filter strength based on quantization parameters and inverse processes, improving image quality and encoding efficiency.

JP7796810B2Active Publication Date: 2026-01-09NIPPON HOSO KYOKAI
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024096244
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-06-13
Publication Date
2026-01-09
Estimated Expiration
2039-09-20

AI Technical Summary

Technical Problem

Conventional video coding methods do not adequately control the filter strength of deblocking filters to account for inverse mapping and scaling processes, leading to insufficient reduction of block noise.

Method used

A coding device and decoding device that perform conversion and scaling processes on pixel values based on conversion tables, and control deblocking filter strength based on quantization parameters and inverse quantization processes to improve image quality and encoding efficiency.

Benefits of technology

Enhances image quality and encoding efficiency by effectively reducing block noise through appropriate deblocking filter control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007796810000005
    Figure 0007796810000005
  • Figure 0007796810000006
    Figure 0007796810000006
  • Figure 0007796810000007
    Figure 0007796810000007
Patent Text Reader

Abstract

To improve image quality and coding efficiency by appropriately controlling a deblocking filter.SOLUTION: In a coding device that divides an image into blocks and codes the image in blocks, a filter control unit that controls a deblocking filter controls the filter strength of the deblocking filter on the basis of a quantization parameter used in a quantization process and an inverse quantization process, and a conversion table used in a conversion process and an inverse conversion process. The conversion table is a table that is set for one or more slices, and is a table consisting of values indicating the number of pixel values after conversion to be assigned to each band obtained by dividing a range from the minimum value to the maximum value that a pixel value to be converted can take into a specified number of bands.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an encoding device, a decoding device, and a program. [Background technology]

[0002] Video coding methods that perform coding processing on a block-by-block basis, such as the series of standards recommended by the MPEG (Moving Picture Experts Group) committee, are characterized by uneven quality between blocks because the coding is performed under different conditions for each block.

[0003] This feature has the advantage of enabling coding control that does not cause visual degradation of image quality by controlling the signal characteristics of partial regions of the video, for example, by coding regions with signal characteristics that are easy for humans to detect into high-quality signals and regions that are difficult to detect into low-quality signals.The disadvantage is that because coding is controlled on a block-by-block basis, quality differences in image quality become apparent at block boundaries, and block-like distortion may be detected.

[0004] To reduce this signal degradation, deblocking filtering is commonly used in recent coding methods. A deblocking filter is a filter that reduces signal gaps, and therefore generally has low-pass filter characteristics.

[0005] If a deblocking filter is applied in a fixed manner, the signal degradation caused by the filter processing may have a greater effect than the quality improvement at the boundaries between high-quality regions, and conversely, the filter may not be sufficiently effective at the boundaries between regions that have been coded at excessively low quality.

[0006] In view of this situation, HEVC, a conventional video coding method, controls the filter strength of a deblocking filter based on a quantization parameter (specifically, the average value of the quantization parameters of blocks on either side of a boundary) (see, for example, Non-Patent Document 1). Here, the quantization parameter is a parameter for which one value is set for one block and which defines the coarseness (step size) of quantization of this block.

[0007] Incidentally, the committee draft of VVC, a new video coding method, employs luma mapping and chroma scaling (LMCS) (see, for example, Non-Patent Document 2).

[0008] In LMCS, the luminance signal value of the original image is changed by a mapping process using a lookup table (conversion table) before performing processes such as prediction and conversion according to the signal characteristics of the input image, and prediction, conversion, and quantization processes are then applied to the mapped luminance signal.In addition, the chrominance signal value of the original image is changed by a scaling process according to the luminance signal value of the original image, and prediction, conversion, and quantization processes are then applied to the scaled chrominance signal.

[0009] LMCS can improve coding efficiency by mapping to the luminance signal and scaling to the color difference signal, taking advantage of the bias in pixel values ​​of the original image. [Prior art documents] [Non-patent literature]

[0010] [Non-Patent Document 1] Recommendation ITU-T H.265,(12 / 2016),“High efficiency video coding”,International Telecommunication Union [Non-patent document 2] JVET-O2002,“Algorithm description for Versatile Video Coding and Test Model 6 (VTM 6)” DISCLOSURE OF THE INVENTION [Problem to be solved by the invention]

[0011] The above-mentioned mapping and scaling processes of the LMCS are performed on the encoding device side before the prediction process, transformation process, and quantization process of the original image. On the decoding device side, the inverse mapping process corresponding to the mapping process and the inverse scaling process corresponding to the scaling process are performed after the inverse quantization process, inverse transformation process, and prediction process. In other words, the quantization error generated by the quantization process and the inverse quantization process may increase or decrease due to the inverse mapping process and the inverse scaling process.

[0012] However, although conventional video coding methods control the filter strength of a deblocking filter in consideration of a quantization parameter, which is a unique parameter set for each block, they do not take into consideration the above-mentioned inverse mapping process and inverse scaling process in controlling the filter strength.

[0013] For this reason, there is no method for controlling the filter strength of the deblocking filter to deal with the generation of block noise caused by the inverse mapping process and the inverse scaling process, and there is a problem in that the effect of reducing block noise by the deblocking filter is insufficient.

[0014] Therefore, an object of the present invention is to provide an encoding device, a decoding device, and a program that improve image quality and encoding efficiency by appropriately controlling a deblocking filter. [Means for solving the problem]

[0015] A coding device according to a first aspect is a coding device that codes coding target blocks obtained by dividing an image into block units, and includes a conversion unit that generates a new coding target block by performing conversion processing consisting of a mapping process for each pixel value of a luminance signal and a scaling process for each pixel value of a color difference signal based on a conversion table in the coding target block; a transform / quantization unit that performs conversion processing and quantization processing on a prediction residual that is the difference between the coding target block newly generated by the conversion unit and a prediction block generated by predicting the coding target block; an inverse quantization / inverse transform unit that restores the prediction residual by performing inverse quantization processing and inverse transform processing on the transform coefficients generated by the transform / quantization unit; and a composite block that generates a composite block by combining the restored prediction residual and the prediction block. the conversion table is a table set for one or more slices, and is a table consisting of values ​​indicating the number of pixel values ​​after conversion to be assigned to each band obtained by dividing a range from the minimum value to the maximum value that the pixel value of the conversion target can take into a specified number of bands.

[0016] Here, the term "slice" may be interpreted as any one of "picture," "tile," "tile group," and "brick."

[0017] A decoding device according to a second aspect is a decoding device that decodes an encoded stream in units of blocks generated by dividing an image, and includes an entropy decoding unit that decodes the encoded stream and outputs transform coefficients corresponding to a block to be decoded, an inverse quantization and inverse transform unit that performs inverse quantization processing and inverse transform processing on the transform coefficients output by the entropy decoding unit to restore a prediction residual, a synthesis unit that synthesizes the restored prediction residual and a prediction block generated by predicting the block to be decoded to generate a synthesized block, and a mapping processing for each pixel value of a luminance signal and a scaling processing for each pixel value of a color difference signal, which are performed on the encoding side based on a conversion table for each pixel value in the generated synthesized block. the deblocking filter that performs filtering on the boundary between the restored block to be decoded and an adjacent block adjacent to the block to be decoded; and a filter control unit that controls the filter strength of the deblocking filter based on the quantization parameter used in the inverse quantization process and a conversion table used in the inverse conversion process, wherein the conversion table is a table set for one or more slices and is a table consisting of values ​​indicating the number of pixel values ​​after conversion to be assigned to each band obtained by dividing a range from the minimum value to the maximum value that the pixel value to be converted can take into a specified number of bands.

[0018] A program according to a third aspect causes a computer to function as the encoding device according to the first aspect.

[0019] A program according to a fourth aspect causes a computer to function as the decryption device according to the second aspect. [Effects of the Invention]

[0020] According to the present invention, it is possible to provide an encoding device, a decoding device, and a program that improve image quality and encoding efficiency by appropriately controlling a deblocking filter. [Brief explanation of the drawings]

[0021] [Figure 1] FIG. 1 is a diagram illustrating a configuration of an encoding device according to an embodiment. [Figure 2] 10 is a graph showing the relationship between input pixel values ​​and output pixel values ​​in conversion processing according to the embodiment. [Figure 3] FIG. 2 is a diagram illustrating a configuration of a conversion unit of the encoding device according to the embodiment. [Figure 4] FIG. 2 is a diagram illustrating an example of a quantization matrix according to the embodiment. [Figure 5] FIG. 2 is a diagram illustrating a configuration of an inverse conversion unit of the encoding device according to the embodiment. [Figure 6] FIG. 10 is a diagram illustrating an example of the operation of a deblocking filter according to the embodiment. [Figure 7] FIG. 2 is a diagram illustrating a configuration of a filter control unit of the encoding device according to the embodiment. [Figure 8] FIG. 1 is a diagram illustrating a configuration of a decoding device according to an embodiment. [Figure 9] FIG. 2 is a diagram illustrating a configuration of an inverse conversion unit of a decoding device according to an embodiment. [Figure 10] FIG. 2 is a diagram illustrating a configuration of a filter control unit of a decoding device according to an embodiment. [Figure 11] FIG. 10 is a diagram illustrating an example of an operation flow of a filter control unit according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0022] An encoding device and a decoding device according to an embodiment will be described with reference to the drawings. The encoding device and the decoding device according to the embodiment encode and decode moving images, respectively, as typified by MPEG. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals.

[0023] <Encoder Configuration> First, the configuration of an encoding device according to this embodiment will be described. Fig. 1 shows the configuration of an encoding device 1 according to this embodiment. The encoding device 1 is a device that performs encoding in units of blocks obtained by dividing an image in units of slices.

[0024] As shown in FIG. 1, the encoding device 1 includes a block division unit 100, a conversion unit 110, a subtraction unit 120, a transformation and quantization unit 130, an entropy encoding unit 140, an inverse quantization and inverse transformation unit 150, a synthesis unit 160, an inverse transformation unit 170, a deblocking filter 180, a filter control unit 181, a memory 185, and a prediction unit 190.

[0025] The block division unit 100 divides an input image, which is an input image in units of frames (or pictures) constituting a moving image, into a plurality of image blocks, and outputs the divided image blocks to the conversion unit 110. The size of an image block is, for example, 32x32 pixels, 16x16 pixels, 8x8 pixels, or 4x4 pixels. The shape of an image block is not limited to a square, but may also be a rectangle (non-square). An image block is a unit (block to be coded) for coding by the coding device 1, and is a unit (block to be coded) for decoding by the decoding device. Such an image block is sometimes called a CU (Coding Unit).

[0026] The block division unit 100 divides the luminance signal and the color difference signal into blocks. In the following, we will mainly explain the case where the shape of the block division is the same for the luminance signal and the color difference signal, but it is also possible to control the division independently for the luminance signal and the color difference signal. When there is no particular distinction between the luminance block and the color difference block, they are simply referred to as the block to be coded.

[0027] The conversion unit 110 generates a new converted block to be coded by performing a conversion process on each pixel value in the block to be coded output from the block division unit 100 based on a conversion table, and outputs the new converted block to be coded to the subtraction unit 120.

[0028] 2 is a graph showing the relationship between input pixel values ​​and output pixel values ​​in the conversion process according to this embodiment, where the horizontal axis represents the value of the input signal and the vertical axis represents the value of the output signal.

[0029] 2, the conversion table is a table set for one or more slices, and is a coefficient table for expressing the relationship between the input signal before conversion processing and the output signal after conversion processing. Specifically, the conversion table stores values ​​indicating the number of pixel values ​​of the converted output signal to be assigned to each band obtained by dividing the input signal before conversion (pixel values ​​to be converted) from the minimum value to the maximum value into a predetermined number (N).

[0030] For example, the conversion table will be explained using an example where the number of bands N is 16 in conversion processing of a 10-bit image signal. The minimum possible value of the input signal before conversion, 0, to the maximum possible value, 1023, is assigned as the input signal corresponding to each equally divided band. For example, the first band corresponds to input pixel values ​​0 to 63. The second band corresponds to input pixel values ​​64 to 127. Input signals are assigned in a similar manner up to the 16th band.

[0031] Each band corresponds to the position of each coefficient in the conversion table. The coefficients stored in the conversion table represent the number of output pixel values ​​assigned to each band. For example, the conversion table lmcs CW lmcs CW ={39, 40, 55, 70, 80, 90, 97, 97, 104, 83, 57, 55, 49, 44, 34, 30}, the output pixel values ​​corresponding to the first band are 0 to 38, and the output pixel values ​​corresponding to the second band are 39 to 78. The same applies to the third to sixteenth bands.

[0032] When the value corresponding to a certain band in the conversion table is large, the number of output pixel values ​​assigned to that band increases, and conversely, when the value is small, the number of output pixel values ​​assigned to that band decreases. Therefore, when quantization processing is performed on a signal domain after conversion processing using a conversion table and then the original signal domain is restored by inverse conversion, the amount of quantization error will differ if the value of the conversion table used in the conversion processing is different, even if the same quantization processing is performed.

[0033] Specifically, when the value in the conversion table is 32, this means that 64 input pixel values ​​of a certain band are converted to be represented by 32 output pixel values. When the encoding device 1 applies a quantization process to the output signal, resulting in a quantization error, the decoding device 2 (see FIG. 8) applies an inverse conversion process corresponding to the conversion process, including the resulting quantization error. In this case, the conversion table value for the band is 32, and in the inverse conversion process, 32 input pixel values ​​for the inverse conversion process are inversely converted to be represented by 64 output pixel values. This means that the quantization error occurring in the signal corresponding to the band is doubled before being output by the decoding device 2.

[0034] That is, even when the same quantization parameter is applied to an image, the quantization error increases in areas where the conversion table value is small, and conversely, the quantization error decreases in areas where the conversion table value is large.

[0035] The conversion table may be set by the encoding device according to the frequency of occurrence of the luminance signal values ​​of one or more slices of the original image, or may be selected by the encoding device from among multiple conversion tables predefined by the system, or a conversion table predefined by the system may be used. Note that the conversion table may store values ​​indicating the number of pixel values ​​of the input signal before conversion to be assigned to each band obtained by dividing the range from the minimum value to the maximum value that the converted output signal can take into a predefined number, or may quantize and store the values ​​in the conversion table. The conversion table is not limited to the above example as long as it indicates the relationship between the input signal and the output signal before and after conversion.

[0036] Furthermore, when the encoder 1 sets a conversion table according to the frequency of occurrence of luminance signal values ​​or selects from among multiple conversion tables, information about the conversion table is transmitted to the decoder 2 by some means. For example, the information about the table values ​​may be entropy coded and streamed. Furthermore, the encoder 1 and decoder 2 may switch between conversion tables prepared in advance based on video format information (e.g., parameters representing the relationship between optical and electrical signals in a video signal).

[0037] 3 is a diagram showing the configuration of the conversion unit 110 according to this embodiment. As shown in FIG. 3, the conversion unit 110 includes a parameter derivation unit 111, a mapping unit 112, and a scaling unit 113.

[0038] The parameter derivation unit 111 calculates a mapping scale table, a mapping offset table, and an inverse mapping scale table, which are components of a lookup table used in mapping processing applied to the luminance signal of the block to be coded output from the block division unit 100, based on the conversion table, and outputs the mapping scale table and mapping offset table to the mapping unit 112, and outputs the mapping offset table and inverse mapping scale table to the inverse conversion unit 170.

[0039] Furthermore, the parameter derivation unit 111 uses the calculated inverse mapping scale table to calculate a scaling coefficient table to be used for scaling processing to be applied to the color difference signal of the block to be coded in the scaling unit 113, and outputs the calculated scaling coefficient table to the scaling unit 113.

[0040] The operation of the parameter derivation unit 111 will be described in detail. CW Then, the parameter derivation unit 111 calculates the mapping offset table LmcsPivot, the mapping scale table ScaleCoeff, and the inverse mapping scale table InvScaleCoeff using the following equation (1).

[0041] LmcsPivot[0] = 0 for (i = 0; i <= N - 1; i++) { LmcsPivot[i + 1] = LmcsPivot[i] + lmcs CW [i] ScaleCoeff[i] = (lmcs CW [i] * (1 << 11) + (1 << (Log2(64) - 1))) >> (Log2(64)) if (lmcs CW [i] == 0) InvScaleCoeff[i] = 0 else InvScaleCoeff[i] = 64 * (1 << 11) / lmcs CW [i] } ···(1)

[0042] However, "x << n" is a left shift operator that shifts x to the left by n bits, "x >> n" is a right shift operator that shifts x to the right by n bits, and "Log2(x)" is an operator that calculates the logarithm of x with base 2.

[0043] Furthermore, the parameter derivation unit 111 calculates the scaling coefficient table ChromaScaleCoeff according to the following formula (2).

[0044] for (i = 0; i <= 15; i++) { if (lmcwCW[i] == 0) ChromaScaleCoeff[i] = (1 << 11) else ChromaScaleCoeff[i] = InvScaleCoeff[i] } ···(2)

[0045] The mapping unit 112 performs a mapping process on the luminance signal of the block to be coded output from the block division unit 100 using the mapping scale table and mapping offset table output from the parameter derivation unit 111, and outputs the generated luminance signal of the block to be coded after the mapping process to the subtraction unit 120.

[0046] Specifically, when the luminance signal in the block to be coded is SamplesY[i][j], the mapping unit 112 uses the mapping scale table ScaleCoeff and the mapping offset table LmcsPivot to calculate the luminance signal MapSamples[i][j] in the block to be coded after the mapping process using the following equation (3).

[0047] idxY=SamplesY[i][j]>>Log2(64) MapSamples[i][j]=LmcsPivot[idxY]+(ScaleCoeff[idxY]*(SamplesY[i][j]-idxY*64)+(1<<10))>>11 ···(3)

[0048] Here, i=0 . . . Wy-1, j=0 . . . Hy-1 are the coordinates of the luminance signal within the block to be coded, and Wy and Hy represent the width and height of the luminance signal of the block to be coded, respectively.

[0049] The scaling unit 113 performs scaling processing on the color difference signal of the block to be coded output from the block division unit 100 using the scaling coefficient table output from the parameter derivation unit 111, and outputs the generated color difference signal of the block to be coded after the scaling processing to the subtraction unit 120.

[0050] Specifically, when the color difference signal in the block to be coded is SamplesC[i][j] and the average value of the decoded luminance signals adjacent to the block to be coded is Yi, the scaling unit 113 uses the scaling coefficient table ChromaScaleCoeff to calculate the color difference signal ScaleSamples[i][j] in the block to be coded after scaling processing using the following equation (4).

[0051] idxYInv = Yi>>Log2(64) ScaleSamples[i][j]=sign(SampleC[i][j])*((abs(SamplesC[i][j])<<11)+(ChromaScaleCoeff[idxYInv]>>1)) / ChromaScaleCoeff[idxYInv] ···(4)

[0052] where i=0...Wc-1, j=0...Hc-1 are the coordinates of the chrominance signal within the block to be coded, and Wc and Hc represent the width and height of the chrominance signal within the block to be coded, respectively. Also, "sign(x)" is a sign function that returns a value of -1, 0, or 1 depending on the sign of variable x, and "abs(x)" is an operator that returns the absolute value of variable x.

[0053] In this way, the conversion unit 110 outputs to the subtraction unit 120 a new converted block to be coded, which is composed of the luminance signal of the block to be coded after mapping calculated by the mapping unit 112 and the chrominance signal of the block to be coded after scaling calculated by the scaling unit 113.

[0054] The subtraction unit 120 calculates a prediction residual representing the difference (error) between the new current block to be coded after conversion output from the conversion unit 110 and a prediction block obtained by predicting this new current block to be coded by the prediction unit 190. The subtraction unit 120 calculates the prediction residual by subtracting each pixel value of the prediction block from each pixel value of the block, and outputs the calculated prediction residual to the transformation and quantization unit 130.

[0055] The transform / quantization unit 130 performs transform processing and quantization processing on a block-by-block basis. The transform / quantization unit 130 includes a transform unit 131 and a quantization unit 132.

[0056] The transform unit 131 performs a transform process on the prediction residual output from the subtraction unit 120 to calculate a transform coefficient for each frequency component, and outputs the calculated transform coefficient to the quantization unit 132. The transform process (conversion) refers to a process of converting a pixel domain signal into a frequency domain signal, such as a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), or a transform obtained by integerizing these. The transform process may also include a transform skip that adjusts the pixel domain signal by scaling or the like without converting it into a frequency domain signal.

[0057] The quantization unit 132 quantizes the transform coefficients output from the transform unit 131 using a quantization parameter and a quantization matrix, and outputs the quantized transform coefficients to the entropy coding unit 140 and the inverse quantization / inverse transform unit 150. The quantization unit 132 also outputs information related to the quantization process (specifically, information on the quantization parameter and quantization matrix used in the quantization process) to the entropy coding unit 140, the inverse quantization unit 151, and the filter control unit 181.

[0058] Here, the quantization parameter is a parameter for which one value is set for one block. Specifically, the quantization parameter is a parameter that is commonly applied to each transform coefficient in a block and determines the coarseness (step size) of quantization.

[0059] A quantization matrix is ​​a matrix consisting of values ​​set for each component in one block. Specifically, a quantization matrix is ​​a matrix consisting of values ​​(weighting coefficients) set for each component of i × j elements according to the block size, and is used to adjust the quantization coarseness for each component ranging from low frequency to high frequency of the transform coefficients.

[0060] FIG. 4 is a diagram showing an example of a quantization matrix. In FIG. 4, an example where i×j=4×4 is shown. In the example shown in FIG. 4, the quantization matrix has larger values ​​as the horizontal and vertical orders increase. In such a quantization matrix, transform coefficients associated with elements arranged further to the bottom right, i.e., transform coefficients in higher frequencies, are quantized with lower precision. Therefore, by utilizing the human visual characteristic that the lower frequencies are more sensitive to spatial changes in shading and hue, it is possible to reduce the amount of information in higher frequencies through quantization without degrading subjective image quality.

[0061] The quantization matrix can be set for each combination of the prediction mode (intra prediction or inter prediction) of the block to be coded, the block size (e.g., 2x2, 4x4, 8x8, 16x16, 32x32, 64x64), and one luminance and two color difference signals (in the case of an RGB signal, the R signal, B signal, and G signal).

[0062] The entropy coding unit 140 performs entropy coding on the transform coefficients output from the quantization unit 132, compresses the data, generates a coded stream (bit stream), and outputs the coded stream to the outside of the coding device 1. For the entropy coding, Huffman coding, CABAC (Context-based Adaptive Binary Arithmetic Coding), etc. can be used.

[0063] In addition, the entropy coding unit 140 obtains information such as the size and shape of each block to be coded from the block division unit 100, obtains information regarding the quantization process from the quantization unit 132, and obtains information regarding prediction (e.g., prediction mode and motion vector information) from the prediction unit 190, and also codes this information.

[0064] The inverse quantization and inverse transform unit 150 performs inverse quantization processing and inverse transform processing on a block-by-block basis. The inverse quantization and inverse transform unit 150 includes an inverse quantization unit 151 and an inverse transform unit 152.

[0065] The inverse quantization unit 151 performs inverse quantization processing corresponding to the quantization processing performed by the quantization unit 132. Specifically, the inverse quantization unit 151 restores the transform coefficients by inverse quantizing the transform coefficients output from the quantization unit 132 using a quantization parameter and a quantization matrix, and outputs the restored transform coefficients to the inverse transform unit 152.

[0066] The inverse transform unit 152 performs inverse transform processing corresponding to the transform processing performed by the transform unit 131. For example, if the transform unit 131 performs DCT, the inverse transform unit 152 performs inverse DCT. The inverse transform unit 152 performs inverse transform processing on the transform coefficients output from the inverse quantization unit 151 to restore prediction residuals, and outputs restored prediction residuals, which are the restored prediction residuals, to the synthesis unit 160.

[0067] The synthesis unit 160 synthesizes, in pixel units, the reconstructed prediction residual output from the inverse transform unit 152 with the predicted block output from the prediction unit 190. The synthesis unit 160 adds each pixel value of the reconstructed prediction residual to each pixel value of the predicted block to calculate a synthesized block, and outputs the calculated synthesized block to the inverse transform unit 170.

[0068] The inverse transformation unit 170 performs an inverse transformation process corresponding to the transformation process of the transformation unit 110. Specifically, the inverse transformation unit 170 restores (decodes) the block to be coded by performing an inverse transformation process corresponding to the transformation process of the transformation unit 110 on each pixel value in the composite block output from the synthesis unit 160 based on a transformation table, and outputs the restored decoded image (restored block) in block units to the deblocking filter 180.

[0069] 5 is a diagram showing the configuration of the inverse transformation unit 170 according to this embodiment. As shown in FIG. 5, the inverse transformation unit 170 includes a demapping unit 171 and a descaling unit 172.

[0070] The inverse mapping unit 171 performs an inverse mapping process on the luminance signal of the synthesized block output from the synthesis unit 160 using the mapping scale table and the mapping offset table output from the parameter derivation unit 111, restores the luminance signal of the block to be coded, and outputs the restored luminance signal of the block to be coded to the deblocking filter 180.

[0071] Specifically, when the luminance signal in the composite block is MapSampleY'[i][j], the inverse mapping unit 171 uses the inverse mapping scale table InvScaleCoeff and the mapping offset table LmcsPivot to calculate the luminance signal RecSmaplesY[i][j] in the block to be coded restored after the inverse mapping process using the following equation (5).

[0072] for (idxYInv = 0; idxYInv<=15;idxYInv++){ if (MapSampleY'[i][j] < LmcsPivot[idxYInv+1]) break } idxYInv = Min(idxYInv, 15) RecSamplesY[i][j]=idxYInv*64+(InvScaleCoeff[idxYInv]*(MapSampleY'[i][j]-LmcsPivot[idxYInv])+(1<<10))>>11 ···(5)

[0073] where i=0...Wy-1, j=0...Hy-1 are the coordinates of the luminance signal within the block to be coded, and Wy and Hy are the width and height of the luminance signal of the block to be coded. Also, "Min(x, y)" is an operator that returns the smaller of x and y.

[0074] The inverse scaling unit 172 performs inverse scaling processing on the chrominance signal of the composite block output from the synthesis unit 160 using the scaling coefficient table output from the parameter derivation unit 111 to restore the chrominance signal of the block to be coded, and outputs the restored chrominance signal of the block to be coded to the deblocking filter 180.

[0075] Specifically, when the color difference signal in the composite block is ScaleSamplesC[i][j] and the average value of the decoded luminance signals adjacent to the composite block is Yi, the inverse scaling unit 172 uses the scaling coefficient table ChromaScaleCoeff to calculate the restored color difference signal RecSampleC[i][j] of the encoding target block after the inverse scaling process using the following equation (6).

[0076] idxYInv = Yi>>Log2(64) RecSamplesC[i][j]=sign(ScaleSamplesC[i][j])*(abs(ScaleSamplesC[i][j])*ChromaScaleCoeff[idxYInv]+(1<<10))>>11 ···(6)

[0077] Here, i=0 . . . Wc-1, j=0 . . . Hc-1 are the coordinates of the color difference signal in the encoding target block, and Wc and Hc represent the width and height of the color difference signal of the encoding target block, respectively.

[0078] In this way, the inverse conversion unit 170 outputs to the deblocking filter 180 the restored block to be coded, which is composed of the luminance signal of the block to be coded restored by the inverse mapping unit 171 and the chrominance signal of the block to be coded restored by the inverse scaling unit 172.

[0079] The deblocking filter 180 performs filtering on the block boundary between two blocks, one of which is a reconstructed block and the other of which is an adjacent block, and outputs the filtered reconstructed block to the memory 185. The filtering is performed to reduce signal degradation caused by processing on a block-by-block basis, and smooths signal gaps at the block boundary between two adjacent blocks. The deblocking filter 180 is generally configured as a low-pass filter that smooths signal fluctuations.

[0080] Fig. 6 is a diagram showing an example of the operation of the deblocking filter 180 according to this embodiment. In the example shown in Fig. 6, the deblocking filter 180 performs filtering on block boundaries for each block of 8x8 pixels. The deblocking filter 180 also performs filtering in units of four rows or four columns. Blocks P and Q shown in Fig. 6 are one unit of filtering by the deblocking filter 180, and show an example in which the block size is 4x4 pixels. Each of blocks P and Q may be called a sub-block. Details of the operation of the deblocking filter 180 will be described later.

[0081] The filter control unit 181 controls the deblocking filter 180. Specifically, the filter control unit 181 controls boundary strength (Bs) indicating whether or not to perform filtering on the block boundaries of the current block pair, and the filter strength of the deblocking filter 180. The boundary strength Bs refers to a parameter for determining whether or not to apply filtering and the type of filtering. Note that the control of whether or not to perform filtering can be considered as the control of whether or not to set the boundary strength Bs to 1 or greater, or to zero.

[0082] The filter control unit 181 controls the deblocking filter 180 based on the fluctuation of pixel values ​​in the region near the boundary of the current block pair, the prediction mode, the quantization parameter, and the value of the motion vector used in motion compensation prediction (inter prediction).

[0083] As will be described in detail later, the filter control unit 181 according to this embodiment controls the filter strength of the deblocking filter 180 based on the quantization parameters used in the quantization process in the quantization unit 132 and the inverse transform process in the inverse quantization unit 151, and the transformation table used in the transformation process in the transformation unit 110 and the inverse transform process in the inverse transform unit 170.

[0084] In this way, by controlling the filter strength of the deblocking filter taking into consideration not only the quantization parameter, which is a unique parameter set on a block-by-block basis, but also the conversion table, it becomes possible to control the filter strength of the deblocking filter 180 in response to the occurrence of block noise caused by the conversion process and the inverse conversion process, thereby improving the effect of reducing block distortion by the deblocking filter 180.

[0085] The memory 185 accumulates the reconstructed blocks output from the deblocking filter 180 as decoded images on a frame-by-frame basis. The memory 185 outputs the stored decoded images to the prediction unit 190 (inter prediction unit 191).

[0086] The prediction unit 190 performs prediction processing on a block-by-block basis to generate a prediction block corresponding to the current block to be coded, and outputs the generated prediction block to the subtraction unit 120 and the synthesis unit 160. The prediction unit 190 includes an inter prediction unit 191, a prediction conversion unit 192, an intra prediction unit 193, and a switching unit 194.

[0087] The inter prediction unit 191 uses a decoded image stored in the memory 185 as a reference image to calculate a motion vector by a technique such as block matching, predicts a block to be coded, and generates an inter prediction block. The inter prediction unit 191 selects an optimal inter prediction method from inter prediction using multiple reference images (typically, bi-prediction) and inter prediction using one reference image (unidirectional prediction), and performs inter prediction using the selected inter prediction method. The inter prediction unit 191 outputs information related to the inter prediction (motion vector, etc.) to the entropy coding unit 140 and the filter control unit 181.

[0088] For the luminance signal, the inter prediction unit 191 outputs the inter prediction block to the prediction conversion unit 192. On the other hand, for the chrominance signal, the inter prediction unit 191 skips the prediction conversion unit 192 and outputs the inter prediction block to the switching unit 194.

[0089] The prediction conversion unit 192 generates a new inter-predicted block by performing conversion processing similar to that of the conversion unit 110 (specifically, the mapping processing of the mapping unit 112). The prediction conversion unit 192 performs mapping processing on the luminance signal in the inter-predicted block based on a conversion table to generate a new inter-predicted block, and outputs the new inter-predicted block to the switching unit 194.

[0090] The intra prediction unit 193 selects an optimal intra prediction mode to be applied to the current block from among multiple intra prediction modes, and predicts the current block using the selected intra prediction mode. Specifically, the intra prediction unit 193 generates an intra prediction block by referring to pixel values ​​of synthesized blocks adjacent to the current block from among synthesized blocks output from the synthesis unit 160, and outputs the generated intra prediction block to the switching unit 194. The intra prediction unit 193 also outputs information related to the selected intra prediction mode to the entropy coding unit 140 and the filter control unit 181.

[0091] The switching unit 194 switches between the inter-predicted block output from the prediction conversion unit 192 (or the inter-prediction unit 191) and the intra-predicted block output from the intra-prediction unit 193, and outputs either the predicted block to the subtraction unit 120 and the synthesis unit 160.

[0092] As described above, the encoding device 1 according to this embodiment includes a conversion unit 110 that performs a conversion process on a current block to be encoded to generate a new current block to be encoded; a transform / quantization unit 130 that performs a conversion process and a quantization process on a prediction residual that represents the difference between the new current block to be encoded and a prediction block generated by predicting the new current block to be encoded; an inverse quantization / inverse transform unit 150 that performs an inverse quantization process and an inverse transform process on the transform coefficients generated by the transform / quantization unit to restore the prediction residual; a synthesis unit 160 that synthesizes the restored prediction residual and the prediction block to generate a synthesis block; an inverse transformation unit that performs an inverse transformation process on the synthesis block to restore the current block to be encoded; a deblocking filter 180 that performs a filtering process on the boundary between the restored current block to be encoded and an adjacent block adjacent to the current block to be encoded; and a filter control unit 181 that controls the filter strength of the deblocking filter 180 based on the quantization parameters used in the quantization process and the inverse quantization process and the transformation tables used in the transformation process and the inverse transformation process.

[0093] Next, the configuration of the filter control unit 181 according to this embodiment will be described. The filter control unit 181 according to this embodiment controls the filter strength of the deblocking filter 180 based on the quantization parameters used in the quantization process and inverse quantization process for the block to be coded, the quantization parameters used in the quantization process and inverse quantization process for the adjacent block, the conversion tables used in the conversion process and inverse conversion process for the block to be coded and the adjacent block, and the pixel values ​​of the block to be coded and the adjacent block. In the following, it is assumed that the block to be coded or its sub-block is block P, and the adjacent block or its sub-block is block Q.

[0094] Fig. 7 is a diagram showing the configuration of the filter control unit 181 according to this embodiment. As shown in Fig. 7, the filter control unit 181 according to this embodiment includes a boundary strength determination unit 181a, a representative value derivation unit 181b, an offset calculation unit 181c, a threshold derivation unit 181d, and a filter strength control unit 181e.

[0095] The boundary strength determination unit 181a determines the boundary strength Bs based on, for example, Table 1 below, and outputs the determined value of boundary strength Bs to the threshold derivation unit 181d and the filter strength control unit 181e. In this embodiment, the value of boundary strength Bs is set to 0, 1, or 2. Note that the boundary strengths for the luminance signal and color difference signal blocks may be calculated separately, or a combination of the boundary strengths for the luminance signal and color difference signal blocks may be determined as a single boundary strength.

[0096] [Table 1]

[0097] As shown in Table 1, when intra prediction is applied to at least one of the blocks P and Q, the boundary strength determination unit 181a sets the value of Bs to 2.

[0098] On the other hand, the boundary strength determination unit 181a sets the Bs value to 1 if inter prediction is applied to both blocks P and Q and at least one of the following conditions (a) to (d) is met, and sets the Bs value to 0 otherwise.

[0099] (a) At least one of blocks P and Q contains significant transform coefficients (i.e., non-zero transform coefficients).

[0100] (b) The number of motion vectors or reference images of blocks P and Q are different.

[0101] (c) The absolute value of the difference between the motion vectors of blocks P and Q is equal to or greater than a threshold value (for example, one pixel).

[0102] If the determined value of the boundary strength Bs is 0, the boundary strength determination unit 181a controls the deblocking filter 180 so as not to perform filtering on the boundary between the blocks P and Q.

[0103] The representative value derivation unit 181b derives a representative value y of the luminance signal based on the luminance signals of the blocks P and Q. pq Derive the representative value y pq to the offset calculation unit 181c.

[0104] The representative value y derived by the representative value derivation unit 181b pq The following shall be either 1) or 2).

[0105] 1) Representative value y pq is the average value of the luminance signal of each of blocks P and Q.

[0106] Specifically, the representative derivation unit 181b calculates the average value of the block P and the block Q as the representative value y pq Let's say.

[0107] y pq =(ΣYp[i][j]+ΣYq[s][t]) / (Wp*Hp+Wq*Hq) ···(7)

[0108] where Yp and Yq represent the luminance signals contained in block P and block Q, respectively; i=0...Hp-1, j=0...Wp-1 are coordinates within block P; s=0...Hq-1, t=0...Wq-1 are coordinates within block Q; Wp and Wq represent the widths of block P and block Q, respectively; and Hp and Hq represent the heights of block P and block Q, respectively.

[0109] 2) Representative value y pq is the average value of the luminance signal of each of blocks P and Q near the block boundary.

[0110] Specifically, the representative derivation unit 181b calculates the average value of the block boundaries of the block P and the block Q as the representative value y pq For example, when blocks P and Q are horizontally adjacent to each other (i.e., when performing deblocking processing on the vertical block boundary between blocks P and Q), the average value of the luminance pixel values ​​of blocks P and Q located at the block boundary is set as the representative value ypq, as shown in the following equation (8).

[0111] y pq =(Yp[0][Wp-1]+Yp[Hp-1][Wp-1]+Yq[0][0]+Yq[Hq-1][0])>>2 ···(8)

[0112] Similarly, when blocks P and Q are vertically adjacent to each other (i.e., when performing deblocking processing on the horizontal block boundary between blocks P and Q), the average value of the luminance pixel values ​​located on the block boundary of blocks P and Q is used as a representative value y pq Let's say.

[0113] y pq =(Yp[Hp-1][0]+Yp[Hp-1][Wp-1]+Yq[0][0]+Yq[0][Wq-1])>>2 ···(9)

[0114] The offset calculation unit 181c calculates the representative value y pq and the conversion tables used in the conversion process and inverse conversion process for block P and block Q, to calculate an offset value.

[0115] Specifically, the offset calculation unit 181c calculates the representative value y pqThe offset calculation unit 181c calculates an offset value QpOffset for controlling a deblocking filter to be applied to the boundary between block P and block Q using the above formula, and outputs the calculated offset value QpOffset to the threshold derivation unit 181d. For example, the offset calculation unit 181c calculates the offset value QpOffset using the following formula (10).

[0116] QpOffset=log2(lmcs CW [y pq >>6] / 64)×6 ···(10)

[0117] In addition, in the offset calculation unit 181c, in the case of hardware implementation, the formulas (4) and (5) may be implemented using a lookup table instead of division or log2 function processing.

[0118] The threshold derivation unit 181d calculates the quantization parameter Qp used in the quantization process and the inverse quantization process for the block P. P and the quantization parameter Qp used in the quantization and inverse quantization processes for the block Q. Q and the offset value QpOffset calculated by the offset calculation unit 181c, the threshold values ​​β and t C Derive the thresholds β and t C to the filter strength control unit 181e.

[0119] First, the threshold derivation unit 181d calculates a variable qP using, for example, the following equation (11).

[0120] qP=((Qp Q +Qp P +1)>>1+QpOffset) ···(11)

[0121] Equation (11) basically defines the quantization parameter Qp of block P. P and the quantization parameter Qp of block Q. QThis is a formula for calculating the average of Qp and QpOffset, and an offset value QpOffset based on a conversion table is introduced in this formula. Note that the formula (11) is merely an example, and other formulas may be used as long as they reflect the offset value QpOffset.

[0122] Second, the threshold derivation unit 181d calculates Q for deriving the threshold β, for example, by the following equation (12).

[0123] Q=Clip3(0,63,qP+(slice_beta_offset_div2<<1)) ···(12)

[0124] where "Clip3(x, y, z)" is a clip operator that returns x if z is smaller than x, returns y if z is larger than y, and returns z otherwise. "slice_beta_offset_div2" is one of the parameters signaled to the decoding device 2.

[0125] Furthermore, the threshold derivation unit 181d calculates the threshold t C Calculate Q to derive

[0126] Q=Clip3(0,65,qP+2*(bS?1)+(slice_tc_offset_div2<<1)) ···(13)

[0127] Here, "bS" is the Bs value output by the boundary strength determination unit 181a. "slice_tc_offset_div2" is one of the parameters signaled to the decoding device 2.

[0128] Third, the threshold derivation unit 181d calculates the thresholds β and t from the calculated Q according to Table 2 below. C is derived.

[0129] [Table 2]

[0130] The filter strength control unit 181e determines the value of the boundary strength Bs output by the boundary strength determination unit 181a and the thresholds β and t C The filter strength of the deblocking filter 180 is controlled based on the above.

[0131] The representative value derivation unit 181b calculates the average value of the luminance pixel values ​​located at the block boundary between the block P and the block Q as the representative value y pq However, the representative value y of block P is calculated by averaging a part or the whole of each block. p and the representative value y of block Q q and then use the representative values ​​to derive offset values ​​for block P and block Q.

[0132] Specifically, the representative value y p and y q The following shall be either 1) or 2).

[0133] 1) The average values ​​of blocks P and Q are expressed as the representative values ​​y p and y q Let's say.

[0134] y p =(ΣYp[i][j]) / (Wp*Hp) y q =(ΣYq[s][t]) / (Wq*Hq) ···(14)

[0135] 2) The average value of the luminance pixel values ​​of each block located on the block boundary between block P and block Q is calculated as the representative value y p and y q Let's say.

[0136] y p =(Yp[0][Wp-1]+Yp[Hp-1][Wp-1]) >>1 y q =(Yq[0][0]+Yq[Hq-1][0]) >>1 ···(15)

[0137] The offset calculation unit 181c calculates the y p and y q The offset values ​​QppOffset and QpqOffset to be applied to the block P and the block Q, respectively, are calculated using the following equations.

[0138] QppOffset=log2(lmcs CW [y p >>6] / 64)×6 QpqOffset=log2(lmcs CW [y q >>6] / 64)×6 ···(16)

[0139] The threshold derivation unit 181d calculates the quantization parameter Qp used in the quantization process and the inverse quantization process for the block P. P and the quantization parameter Qp used in the quantization and inverse quantization processes for the block Q. Q and the threshold values ​​β and t for controlling the filter strength of the deblocking filter 180 based on the offset values ​​QppOffset and QpqOffset calculated by the offset calculation unit 181c. C Derive the thresholds β and t C to the filter strength control unit 181e.

[0140] The threshold derivation unit 181d calculates the variable qP using, for example, the following equation (17).

[0141] qP=(Qp Q +Qp P +QppOffset +QpqOffset +1)>>1 ···(17)

[0142] Using the variable qP calculated as above, Q for deriving the threshold β is calculated using equations (12) and (13), and the threshold β and t are calculated using the calculated Q and Table 2. C is derived.

[0143] When the value of the boundary strength Bs is 1 or 2, the filter strength control unit 181e may control the deblocking filter 180 to perform filtering only when the following equation (18) is satisfied (see FIG. 6).

[0144]

number

[0145] Furthermore, when performing filtering, the filter strength control unit 181e may apply a strong filter when all of the following conditional expressions (19) to (24) are satisfied, and may apply a weak filter in other cases (see FIG. 6).

[0146]

number

[0147] In this way, the filter control unit 181 according to this embodiment takes into consideration not only the quantization parameter, which is a unique parameter set for each block, but also the conversion table to control the filter strength of the deblocking filter 180. This makes it possible to control the filter strength of the deblocking filter 180 in response to the occurrence of block noise caused by the conversion process and the inverse conversion process, thereby improving the effect of reducing block noise by the deblocking filter 180.

[0148] For example, the filter control unit 181 identifies a band corresponding to the block to be coded and an adjacent block from among multiple bands in the conversion table, and controls the deblocking filter 180 so that the filter strength of the deblocking filter 180 increases as the value indicating the number of pixel values ​​after conversion assigned to the identified band decreases.

[0149] This makes it easier to apply a strong filter to block boundaries in areas where the conversion table values ​​are small, by focusing on the property that even when the same quantization parameter is applied to an image, the quantization error will be large in areas where the conversion table values ​​are small, and conversely, the quantization error will be small in areas where the conversion table values ​​are large.

[0150] <Configuration of the Decryption Device> Next, the configuration of the decoding device according to this embodiment will be described, focusing mainly on the differences from the configuration of the encoding device described above.

[0151] 8 is a diagram showing the configuration of a decoding device 2 according to this embodiment. The decoding device 2 is a device that decodes a current block from a coded stream.

[0152] As shown in FIG. 8, the decoding device 2 includes an entropy decoding unit 200, an inverse quantization / inverse transform unit 210, a synthesis unit 220, an inverse transformation unit 230, a deblocking filter 240, a filter control unit 241, a memory 250, and a prediction unit 260.

[0153] The entropy decoding unit 200 decodes the coded stream generated by the coding device 1 and decodes various types of signaling information. Specifically, the entropy decoding unit 200 acquires information about the quantization process applied to the block to be decoded, and outputs the acquired information to the inverse quantization unit 211 and the filter control unit 241. The entropy decoding unit 200 also acquires information about the prediction applied to the block to be decoded (e.g., prediction type information, motion vector information), and outputs the acquired information to the prediction unit 260 and the filter control unit 241. When a conversion table is transmitted from the coding device 1, the entropy decoding unit 200 outputs information about the conversion table to the inverse conversion unit 230 and the filter control unit 241.

[0154] Furthermore, the entropy decoding unit 200 decodes the coded stream, obtains the quantized transform coefficients, and outputs the obtained transform coefficients to the inverse quantization and inverse transform unit 210 (inverse quantization unit 211).

[0155] The inverse quantization and inverse transform unit 210 performs inverse quantization processing and inverse transform processing on a block-by-block basis. The inverse quantization and inverse transform unit 210 includes an inverse quantization unit 211 and an inverse transform unit 212.

[0156] The inverse quantization unit 211 performs inverse quantization processing corresponding to the quantization processing performed by the quantization unit 132 of the encoding device 1. The inverse quantization unit 211 inverse quantizes the quantized transform coefficients output from the entropy decoding unit 200 using a quantization parameter and a quantization matrix to restore the transform coefficients of the block to be decoded, and outputs the restored transform coefficients to the inverse transform unit 212.

[0157] The inverse transform unit 212 performs inverse transform processing corresponding to the transform processing performed by the transform unit 131 of the encoding device 1. The inverse transform unit 212 performs inverse transform processing on the transform coefficients output from the inverse quantization unit 211 to restore prediction residuals, and outputs the restored prediction residuals (restored prediction residuals) to the synthesis unit 220.

[0158] The synthesis unit 220 generates a synthesis block by synthesizing the prediction residual output from the inverse transform unit 212 and the prediction block output from the prediction unit 260 on a pixel-by-pixel basis, and outputs the generated synthesis block to the inverse transform unit 230.

[0159] The inverse transformation unit 230 performs the same operation as the inverse transformation unit 170 of the encoding device 1. Specifically, the inverse transformation unit 230 performs an inverse transformation process on the composite block output from the synthesis unit 220 based on a transformation table, thereby restoring (decoding) the current block to be decoded, and outputs the restored block to the deblocking filter 240.

[0160] 9 is a diagram showing the configuration of the inverse transformation unit 230 according to this embodiment. As shown in FIG. 9, the inverse transformation unit 230 includes a demapping unit 231 and a descaling unit 232.

[0161] The inverse mapping unit 231 performs inverse mapping processing on the luminance signal of the synthesized block output from the synthesis unit 220, using the mapping scale table and the mapping offset table, to restore the luminance signal of the block to be decoded, and outputs the restored luminance signal of the block to be decoded to the deblocking filter 180. For example, the inverse mapping unit 231 calculates the restored luminance signal in the block to be decoded after the inverse mapping processing using the above equation (5).

[0162] The inverse scaling unit 232 performs inverse scaling processing on the chrominance signals of the composite block output from the synthesis unit 220 using a scaling coefficient table, restores the chrominance signals of the block to be decoded, and outputs the restored chrominance signals of the block to be decoded to the deblocking filter 180. For example, the inverse scaling unit 232 calculates the restored chrominance signals of the block to be decoded after the inverse scaling processing using equation (6).

[0163] The deblocking filter 240 performs the same operation as the deblocking filter 180 of the encoding device 1. The deblocking filter 240 performs filtering on the boundary of a block pair (blocks P and Q) consisting of a reconstructed block output from the inverse transformation unit 230 and a block adjacent to the reconstructed block, and outputs the reconstructed block after filtering to the memory 250.

[0164] The filter control unit 241 performs the same operation as the filter control unit 181 of the encoding device 1, based on the information output from the entropy decoding unit 200. The filter control unit 241 selects the boundary strength Bs using, for example, the method shown in Table 1, and controls the filter strength of the deblocking filter 180 using the methods shown in Equations (7) to (28).

[0165] The memory 250 stores the reconstructed blocks output from the deblocking filter 240 as decoded images in units of frames. The memory 250 outputs the decoded images in units of frames to the outside of the decoding device 2.

[0166] The prediction unit 260 performs prediction on a block-by-block basis and includes an inter prediction unit 261, a prediction conversion unit 262, an intra prediction unit 264, and a switching unit 265.

[0167] The inter prediction unit 261 predicts the current block to be decoded by inter prediction, using the decoded image stored in the memory 250 as a reference image. The inter prediction unit 261 generates an inter prediction block by performing inter prediction using the motion vector information output from the entropy decoding unit 200, and outputs the generated inter prediction block to the prediction conversion unit 262.

[0168] The prediction conversion unit 262 performs the same operation as the prediction conversion unit 192 of the encoding device 1. The prediction conversion unit 262 generates a new inter-predicted block by performing a conversion process on the inter-predicted block output from the inter-prediction unit 261 based on a conversion table, and outputs the generated new inter-predicted block to the switching unit 265.

[0169] Based on the information output from the entropy decoding unit 200, the intra prediction unit 264 generates an intra prediction block by referring to the pixel values ​​of the synthesis blocks output from the synthesis unit 220 that are adjacent to the block to be coded, and outputs the generated intra prediction block to the switching unit 265.

[0170] The switching unit 265 switches between the inter-predicted block output from the prediction conversion unit 262 (or the inter-prediction unit 261) and the intra-predicted block output from the intra-prediction unit 264, and outputs either the predicted block to the synthesis unit 220.

[0171] As described above, the decoding device 2 according to this embodiment includes an entropy decoding unit 200 that decodes a coded stream and outputs transform coefficients corresponding to a block to be decoded; an inverse quantization / inverse transform unit 210 that performs inverse quantization and inverse transform on the transform coefficients output by the entropy decoding unit 200 to restore a prediction residual; a synthesis unit 220 that generates a synthesis block by synthesizing the restored prediction residual with a prediction block that predicts the block to be decoded; an inverse transformation unit 230 that restores the block to be decoded by performing inverse transformation on the generated synthesis block based on a transformation table; a deblocking filter 240 that performs filtering on the boundary between the restored block to be decoded and an adjacent block adjacent to the block to be decoded; and a filter control unit 241 that controls the filter strength of the deblocking filter 240 based on the quantization parameter used in the inverse quantization and the transformation table used in the inverse transformation.

[0172] Next, the configuration of the filter control unit 241 according to this embodiment will be described. Fig. 10 is a diagram showing the configuration of the filter control unit 241 according to this embodiment. As shown in Fig. 10, the filter control unit 241 according to this embodiment has a boundary strength determination unit 241a, a representative value derivation unit 241b, an offset calculation unit 241c, a threshold derivation unit 241d, and a filter strength control unit 241e.

[0173] The boundary strength determination unit 241a, the representative value derivation unit 241b, the offset calculation unit 241c, the threshold derivation unit 241d, and the filter strength control unit 241e perform the same operations as the boundary strength determination unit 181a, the representative value derivation unit 181b, the offset calculation unit 181c, the threshold derivation unit 181d, and the filter strength control unit 181e of the encoding device 1, respectively.

[0174] <Example of filter control section operation> Next, an example of the operation of the filter control unit 181 and the filter control unit 241 according to this embodiment will be described. Since the filter control unit 181 and the filter control unit 241 perform the same operation, the filter control unit 241 will be described here as an example. Fig. 11 is a diagram showing an example of the operation flow of the filter control unit 241 according to this embodiment.

[0175] 11, in step S1, the boundary strength determination unit 241a determines the boundary strength Bs using the method shown in Table 1, and outputs the determined value of boundary strength Bs to the threshold derivation unit 241d and the filter strength control unit 241e. If the determined value of boundary strength Bs is 0, the processes from step S2 onwards are not performed, and no filtering is performed on the boundary between blocks P and Q.

[0176] In step S2, the representative value derivation unit 241b calculates the representative value y pq Derive the representative value y pq The representative value y pq As a method for deriving , the above-mentioned method 1) (equation (7)) or the above-mentioned method 2) (equations (8) and (9)) is used.

[0177] In step S3, the offset calculation unit 241c calculates the representative value y pq Based on this, the offset calculation unit 241c calculates an offset value, which is a parameter for controlling deblocking filtering on the boundary between the block P and the block Q. Specifically, the offset calculation unit 241c calculates the representative value y pq and the conversion table used in the inverse conversion process applied to block P and block Q, calculates the offset value QpOffset according to the above equation (10), and outputs the calculated offset value QpOffset to the threshold derivation unit 241d.

[0178] In step S4, the threshold derivation unit 241d calculates the quantization parameter Qp used in the inverse quantization process for the block P. P and the quantization parameter Qp used in the inverse quantization process for block Q. Q and the offset value QpOffset calculated by the offset calculation unit 241c, the variable qP is calculated by the above equation (11).

[0179] In step S5, the threshold derivation unit 241d calculates the variable Q using the above formulas (12) and (13) based on the variable qP, and derives the thresholds β and t from the calculated variable Q using Table 2. C is derived.

[0180] In step S6, the filter strength control unit 241e calculates the value of the boundary strength Bs output by the boundary strength determination unit 241a, the thresholds β and t C The filter strength of the deblocking filter 240 is controlled based on the above.

[0181] In this way, the filter control unit 241 according to this embodiment controls the filter strength of the deblocking filter 240 taking into consideration not only the quantization parameter, which is a unique parameter set for each block, but also the conversion table used in the inverse conversion process. This makes it possible to control the filter strength of the deblocking filter 240 in response to the occurrence of block noise caused by the conversion process and the inverse conversion process, thereby improving the effect of reducing block noise by the deblocking filter 240.

[0182] For example, the filter control unit 241 identifies a band corresponding to the block to be decoded and an adjacent block from among multiple bands in the conversion table, and controls the deblocking filter 240 so that the filter strength of the deblocking filter 180 becomes stronger as the value indicating the number of pixel values ​​after conversion assigned to the identified band becomes smaller.

[0183] This makes it easier to apply a strong filter to block boundaries in areas where the conversion table values ​​are small, by focusing on the property that even when the same quantization parameter is applied to an image, the quantization error will be large in areas where the conversion table values ​​are small, and conversely, the quantization error will be small in areas where the conversion table values ​​are large.

[0184] <Other embodiments> In the above-described embodiment, the representative value derivation units 181b and 241b calculate the representative value y based on the luminance signals of the blocks P and Q. pq However, the representative value derivation units 181b and 241b derive the representative value y pq(P) and the representative value y of the luminance signal of block Q. pq(Q) It may be possible to derive

[0185] In this case, the offset calculation units 181c and 241c calculate the representative value y pq(P) The offset value QpOffset of block P is calculated using P Calculate the representative value y pq(Q) The offset value QpOffset of block Q is calculated using Q Calculate.

[0186] QpOffset P =log2(lmcs CW [y pq(P) >>6] / 64)×6 QpOffset Q =log2(lmcs CW [y pq(Q) >>6] / 64)×6 ···(twenty five)

[0187] Then, the threshold derivation units 181d and 214d calculate the variable qP using, for example, the following equation (26): The subsequent operations are the same as those in the above-described embodiment.

[0188] qP=((Qp Q + QpOffset Q + QpOffset P +Qp P +1)>>1) ···(26)

[0189] A program may be provided that causes a computer to execute each process performed by the encoding device 1. A program may be provided that causes a computer to execute each process performed by the decoding device 2. The program may be recorded on a computer-readable medium. Using a computer-readable medium makes it possible to install the program on a computer. Here, the computer-readable medium on which the program is recorded may be a non-transitory recording medium. The non-transitory recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or a DVD-ROM.

[0190] The circuits that execute the processes performed by the encoding device 1 may be integrated, and the encoding device 1 may be configured as a semiconductor integrated circuit (chip set, SoC). The circuits that execute the processes performed by the decoding device 2 may be integrated, and the decoding device 2 may be configured as a semiconductor integrated circuit (chip set, SoC).

[0191] The above describes the embodiments in detail with reference to the drawings, but the specific configuration is not limited to that described above, and various design changes can be made within the scope that does not deviate from the gist of the invention. [Explanation of symbols]

[0192] 1: Encoding device 2: Decryption device 100: Block division section 110:Conversion section 111: Parameter derivation part 112: Mapping section 113: Scaling section 120: Subtraction section 130: Transformation and quantization unit 131: Conversion section 132: Quantization section 140: Entropy coding unit 150: Inverse quantization and inverse transformation unit 151: Inverse quantization section 152: Inverse conversion unit 160: Synthesis section 162: Prediction conversion section 170: Reverse conversion section 171: Reverse mapping section 172: Inverse scaling part 180: Deblocking filter 181: Filter control section 181a: Boundary strength determination unit 181b: Representative value derivation section 181c: Offset calculation unit 181d: Threshold derivation part 181e: Filter strength control section 185: Memory 190: Prediction Department 191: Inter prediction unit 192: Prediction conversion section 193: Intra prediction unit 194: Switching section 200: Entropy decoding unit 210: Inverse conversion unit 211: Inverse quantization section 212: Inverse conversion unit 220: Synthesis section 230: Reverse conversion section 231: Reverse mapping section 232: Inverse scaling part 240: Deblocking filter 241: Filter control section 241a: Boundary strength determination section 241b: Representative value derivation section 241c: Offset calculation unit 241d: Threshold derivation part 241e: Filter strength control section 250: Memory 260: Prediction Department 261: Inter prediction unit 262: Prediction conversion section 264: Intra prediction unit 265: Switching section

Claims

1. A decoding device that decodes an encoded stream in units of blocks generated by dividing an image, an entropy decoding unit that decodes the coded stream to output transform coefficients corresponding to a block to be decoded; an inverse quantization and inverse transform unit that performs inverse quantization and inverse transform on the transform coefficients output by the entropy decoding unit to restore prediction residuals; a synthesis unit that synthesizes the reconstructed prediction residual and a prediction block generated by predicting the current block to be decoded to generate a synthesis block; a mapping unit that performs a mapping process on each pixel value in the generated composite block based on a conversion table; a deblocking filter that performs a filtering process on a boundary between the restored decoding target block and an adjacent block adjacent to the decoding target block; a filter control unit that controls the filter strength of the deblocking filter based on a quantization parameter used in the inverse quantization process and a value related to the pixel value after the mapping process. and, The conversion table is a table for converting a pixel value to be converted into a different pixel value. Decryption device.

2. A decoding method for decoding an encoded stream in units of blocks generated by dividing an image, comprising: decoding the coded stream to output transform coefficients corresponding to a block to be decoded; performing inverse quantization and inverse transform processing on the output transform coefficients to restore a prediction residual; generating a composite block by combining the reconstructed prediction residual with a prediction block generated by predicting the current block; performing a mapping process on each pixel value in the generated composite block based on a conversion table; a step of performing a filtering process on a boundary between the restored decoding target block and an adjacent block adjacent to the decoding target block; The filter strength of the deblocking filter used in the filtering process is controlled based on a quantization parameter used in the inverse quantization process and a value related to the pixel value after the mapping process. and controlling the The conversion table is a table for converting a pixel value to be converted into a different pixel value. Decryption method.

Citation Information

Patent Citations

  • Method and device for decoding blocks of an intra-predicted picture and corresponding coding method and coding device

    JP2019521555A

  • Deblocking Filters for Video Coding

    JP2022533074A

  • Technique for modifying quantization parameters in transform skip mode.

    JP2022538668A

  • JPP7505869B