Image processing apparatus, image processing method, program, and storage medium

The image processing device and method address the challenge of block distortion in chrominance components by applying a stronger, differently designed deblocking filter based on chrominance parameters and block size, effectively reducing artifacts in larger blocks and non-square shapes.

JP2025181963AActive Publication Date: 2025-12-11SONY GROUP CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025157449
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-11-02
Filing Date
2025-09-22
Publication Date
2025-12-11
Estimated Expiration
2039-10-18

AI Technical Summary

Technical Problem

Existing video coding standards like HEVC and VVC face challenges in effectively reducing block distortion in chrominance components due to the limited application of deblocking filters, leading to potential artifacts, especially with larger block sizes and non-square shapes.

Method used

An image processing device and method that applies a third chrominance filter with stronger filter strength and a different design than existing filters, determining filter application based on chrominance-related parameters and block size, to improve deblocking for chrominance components.

Benefits of technology

Enhances deblocking filter performance for chrominance components, reducing block distortion and artifacts, particularly in larger blocks and non-square shapes, by using a stronger filter tailored to chrominance characteristics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025181963000001_ABST
    Figure 2025181963000001_ABST
Patent Text Reader

Abstract

To provide various DFs.SOLUTION: A reduced second luminance filter obtained by reducing filter properties of a second luminance filter having higher filter strength than a first luminance filter, or a reduced first luminance filter obtained by reducing filter properties of the first luminance filter is used as a second color difference filter having higher filter strength than a first color difference filter with respect to a pixel of a color difference component located in the vicinity of a block boundary of a decoded image. This technology is applicable to, for example, coding and decoding of an image.SELECTED DRAWING: Figure 16
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present technology relates to an image processing device, an image processing method, a program, and a recording medium, and in particular to an image processing device, an image processing method, a program, and a recording medium that are capable of providing various DFs (deblocking filters), for example. [Background technology]

[0002] In H.265 / HEVC, a standard specification for image coding, a deblocking filter is applied to the block boundaries of decoded images to suppress image quality degradation caused by block distortion that occurs during coding. In H.265 / HEVC, there are two types of deblocking filters that can be applied to the luminance component: weak and strong filters, while there is only one type of deblocking filter that can be applied to the chrominance component: weak filters.

[0003] Furthermore, with the aim of further improving coding efficiency over H.265 / HEVC, the Joint Video Experts Team (JVET), a joint standardization organization of ITU-T and ISO / IEC, is currently working on standardizing VVC (Versatile Video Coding), a next-generation image coding method (see, for example, Non-Patent Document 1).

[0004] In the VVC standardization work, Non-Patent Document 1 below proposes a method in which the deblocking filters that can be applied to the chrominance components are changed to two types, similar to the deblocking filters that can be applied to the luminance components, so that a strong filter can also be applied to the chrominance components. [Prior art documents] [Non-patent literature]

[0005] [Non-Patent Document 1] Jianle Chen, Yan Ye, Seung Hwan Kim: Algorithm description for Versatile Video Coding and Test Model 2 (VTM 2), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 11th Meeting, Ljubljana, SI, 10-18 July 2018. Summary of the Invention [Problem to be solved by the invention]

[0006] Regarding defense, there is a demand to provide a variety of defenses.

[0007] The present technology has been developed in light of such circumstances, and makes it possible to provide a variety of DFs. [Means for solving the problem]

[0008] The image processing device of the present technology is an image processing device that includes a decoding unit that decodes an encoded stream to generate a decoded image, and a filter unit that applies a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of a chrominance component located near a block boundary of the decoded image generated by the decoding unit and has a filter design different from that of a second chrominance filter that is the filter applied to pixels of a chrominance component located near a block boundary inside a CTU (Coding Tree Unit), to pixels of a chrominance component located near a block boundary of the CTU.

[0009] An image processing method of the present technology is an image processing method that includes decoding an encoded stream to generate a decoded image, and applying a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of a chrominance component located near a block boundary of the decoded image and has a filter design different from that of a second chrominance filter, which is the filter applied to pixels of a chrominance component located near a block boundary inside a CTU (Coding Tree Unit), to pixels of a chrominance component located near a block boundary of the CTU.

[0010] The program of the present technology is a program for executing a process including decoding an encoded stream to generate a decoded image, and applying a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of a chrominance component located near a block boundary of the decoded image and has a filter design different from that of a second chrominance filter, which is the filter applied to pixels of a chrominance component located near a block boundary inside a CTU (Coding Tree Unit), to pixels of a chrominance component located near a block boundary of the CTU.

[0011] The recording medium of the present technology is a recording medium having recorded thereon a program for executing processing including decoding an encoded stream to generate a decoded image, and applying a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of the chrominance component located near block boundaries of the decoded image and has a filter design different from that of a second chrominance filter, which is the filter applied to pixels of the chrominance component located near block boundaries within a CTU (Coding Tree Unit), to pixels of the chrominance component located near block boundaries of the CTU.

[0012] In the image processing device, image processing method, program, and recording medium of the present technology, a coded stream is decoded to generate a decoded image. Then, a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of chrominance components located near block boundaries of the decoded image and has a filter design different from that of a second chrominance filter, which is the filter applied to pixels of chrominance components located near block boundaries within a CTU (Coding Tree Unit), is applied to pixels of chrominance components located near block boundaries of the CTU.

[0013] The image processing device can be realized by causing a computer to execute a program. The program can be provided by being recorded on a recording medium or transmitted via a transmission medium. [Brief explanation of the drawings]

[0014] [Figure 1] 10 is a table for explaining calculation of bS in HEVC. [Figure 2] 1 is a table for explaining the calculation of bS in Non-Patent Document 1. [Figure 3] FIG. 10 is an explanatory diagram showing an example of pixels of color difference components (U component, V component) in two adjacent blocks Bp and Bq across a vertical block boundary BB. [Figure 4] 10 is a table for explaining calculation of bS according to an embodiment of the present disclosure. [Figure 5] FIG. 2 is a block diagram showing an example of the configuration of an image encoding device 10, which is one aspect of the image processing device according to the embodiment. [Figure 6] FIG. 10 is a block diagram showing an example of the configuration of an image decoding device 60, which is one aspect of the image processing device according to the embodiment. [Figure 7] FIG. 2 is a block diagram showing an example of a detailed configuration of a deblocking filter 26 according to the embodiment. [Figure 8] 10 is a table showing an example of bS calculated by the boundary strength calculation unit 261. [Figure 9] 10 is a flowchart showing an example of the flow of processing by the deblocking filter 26 according to the embodiment. [Figure 10] 10 is a flowchart illustrating the flow of a boundary strength calculation process executed by a boundary strength calculation unit 261. [Figure 11] FIG. 10 is a block diagram showing an example of the configuration of a DF 300 as a new DF. [Figure 12] FIG. 10 is a diagram showing an example of the structure of a decoded image processed by the DF 300. [Figure 13] 10 is a flowchart illustrating the processing of the DF 300. [Figure 14] FIG. 1 is a diagram illustrating a DF of HEVC. [Figure 15] FIG. 10 is a diagram illustrating a new DF. [Figure 16] FIG. 10 is a diagram illustrating an example of pixels of color difference components at a block boundary. [Figure 17] FIG. 10 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter Y1 is used as the filter NC1. [Figure 18] FIG. 10 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter OF is used as the filter NC1. [Figure 19] FIG. 10 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter Y2 is used as the filter NC1. [Figure 20] FIG. 10 is a diagram illustrating an example of a method for applying a filter NC1 to a decoded image. [Figure 21] FIG. 10 is a diagram illustrating an example of a method for applying a filter NC1 to a decoded image. [Figure 22] FIG. 1 is a block diagram illustrating an example of the configuration of an embodiment of a computer. DETAILED DESCRIPTION OF THE INVENTION

[0015] Preferred embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. In this specification and drawings, components having substantially the same functional configurations are denoted by the same reference numerals, and redundant explanations will be omitted.

[0016] Furthermore, the scope of the disclosure in this specification is not limited to the contents of the examples. The contents of the following reference documents REF1 to REF3, which were publicly known at the time of filing, are also incorporated by reference. In other words, the contents of the following reference documents REF1 to REF3 also serve as the basis for determining the support requirements. For example, even if the Quad-Tree Block Structure described in Reference REF2 and the QTBT (Quad Tree Plus Binary Tree) Block Structure described in Reference REF3 are not directly defined in the detailed description of the invention, they are still within the scope of the present disclosure and satisfy the support requirements of the claims. Similarly, for example, technical terms such as parsing, syntax, and semantics are also still within the scope of the present disclosure and satisfy the support requirements of the claims, even if they are not directly defined in the detailed description of the invention. REF1:Recommendation ITU-T H.264 (04 / 2017) “Advanced video coding for generic audiovisual services”, April 2017 REF2:Recommendation ITU-T H.265,(12 / 2016) “High efficiency video coding”, December 2016 REF3: J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, J. Boyce, “Algorithm Description of Joint Exploration Test Model (JEM7)”, JVET-G1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 7th Meeting: Torino, IT, 13-21 July 2017

[0017] Unless otherwise specified, the following description will be given taking a signal in YUV420 format as an example, and the luminance component will be represented as the Y component, and the chrominance components as the U component and V component, respectively. However, the technology described below can be similarly applied to signals in other formats, such as the YUV444 format and the YUV422 format. The representation of the luminance component and chrominance component differs depending on the target signal, and the technology described below can be similarly applied to signals in which the luminance component and chrominance component are represented in YCbCr, for example.

[0018] Additionally, the following terms used in this specification are defined as follows: The chrominance-related parameters refer to general parameters related to chrominance. For example, the chrominance-related parameters may include information about the transform coefficients of the chrominance components included in each TU (Transform Unit), a flag indicating whether or not each TU has a significant coefficient (a non-zero transform coefficient) of the chrominance component, and other information about the transform coefficients of the chrominance components. However, the chrominance-related parameters are not limited to these examples, and may be various parameters related to chrominance. The necessity of applying a deblocking filter means whether or not a deblocking filter should be applied. For example, determining whether or not a deblocking filter should be applied means determining whether or not a deblocking filter should be applied. Furthermore, the determination result of whether or not a deblocking filter should be applied is the result of determining whether or not a deblocking filter should be applied, and for example, the determination result can be information indicating either that a deblocking filter should be applied or that it does not need to be applied. Large block determination refers to determining whether a block to be determined is a large block. In this specification, the block to be determined may be a block that sandwiches a block boundary, as will be described later. Large block determination may also be performed by comparing the size of the block (block size) with a predetermined threshold. Cases in which large block determination is performed and details of large block determination will be described later.

[0019] <1. Overview> [1-1. Existing methods]

[0020] The processing of a deblocking filter in an existing image encoding method such as HEVC includes a process for determining whether application is necessary, a process for determining filter strength, and a filtering process (filter application process). The processing of an existing deblocking filter will be described below using an HEVC deblocking filter as an example. Note that the following mainly describes a deblocking filter for the chrominance component of a decoded image (including an image locally decoded during encoding), and a description of a deblocking filter for the luminance component of a decoded image will be omitted as appropriate.

[0021] The deblocking filter process first performs an application necessity determination process. The application necessity determination process is a process for determining whether or not a deblocking filter should be applied to a block boundary of a decoded image. In HEVC, block boundaries are identified based on the block structure of the Quad-Tree Block Structure described in Reference Document REF2. Specifically, among edges of an 8x8 pixel block (sample grid), which is the smallest block unit, an edge that satisfies the condition of being at least either a TU (Transform Unit) boundary or a PU (Prediction Unit) boundary is identified as a block boundary in HEVC.

[0022] The process of determining whether or not to apply the threshold is performed based on the boundary strength (hereinafter, sometimes referred to as bS) of the block boundary. In HEVC, bS is calculated for every four lines of the identified block boundary. If the block boundary is a vertical boundary, the above lines correspond to rows that are perpendicular to the vertical boundary. If the block boundary is a horizontal boundary, the above lines correspond to columns that are perpendicular to the horizontal boundary.

[0023] FIG. 1 is a table for explaining the calculation of bS in HEVC. As shown in FIG. 1, in HEVC, bS is calculated based on the truth or falsity (satisfaction or non-satisfaction) of condition A, which is a condition related to intra prediction, condition B1, which is a condition related to significant coefficients of the Y component, and condition B2, which is a condition related to motion vectors (MVs) and reference pictures. Referring to FIG. 1, if condition A is true, bS is set to 2. Also, if condition A is false and at least one of conditions B1 and B2 is true, bS is set to 1. And if condition A, condition B1, and condition B2 are all false, bS is set to 0. Note that conditions A, B1, and B2 shown in FIG. 1 are the following conditions.

[0024] Condition A: The coding mode of at least one of the CUs (Coding Units) that include pixels on the top line of the lines for which bS is calculated and that sandwich a block boundary is an intra prediction mode. Condition B1: The block boundary is a TU boundary, and a significant coefficient of the Y component exists in at least one of two TUs that contain a pixel on the top line of the lines for which bS is calculated and sandwich the block boundary. Condition B2: Between two CUs that include pixels on the top line of the lines for which bS is calculated and sandwich a block boundary, the absolute value of the difference in MV is 1 pixel or more, or the reference pictures for motion compensation are different, or the number of MVs is different.

[0025] Furthermore, in HEVC, a deblocking filter may be applied to the luminance component (Y component) of a decoded image for block boundaries where the bS set as described above is equal to or greater than 1. Therefore, in HEVC, the result of determining whether or not to apply a deblocking filter to the luminance component of a decoded image may differ depending on whether or not Condition B1 and Condition B2 are satisfied.

[0026] In HEVC, a strong filter with high filter strength and a weak filter with low filter strength are provided as deblocking filters for the luminance component of a decoded image. When bS is 1 or greater, the deblocking filter processing for the luminance component of a decoded image includes a process for determining whether or not further application is necessary based on further conditions, followed by a process for determining filter strength and a filtering process. Details of these processes are described in the above-mentioned reference document REF2, and will not be described here.

[0027] On the other hand, a deblocking filter for the chrominance components (U component, V component) of a decoded image in HEVC is applied only to block boundaries where bS is 2. Therefore, as shown in Fig. 1, whether or not conditions B1 and B2 are satisfied does not affect the determination of whether or not to apply a deblocking filter to the chrominance components of a decoded image in HEVC.

[0028] In addition, in HEVC, the only deblocking filter that can be applied to the chrominance component of a decoded image is a weak filter. Therefore, there is no need to determine the filter strength for the chrominance component of a decoded image. When bS is 2, a weak filter is applied to the chrominance component of a decoded image.

[0029] As described in the above-mentioned reference REF3, block division using the QTBT block structure in VVC may select blocks of a larger size than block division using the quad-tree block structure in HEVC. When the block size in a flat region (a region with small changes in pixel values ​​within the region) is large, blocking artifacts are likely to occur. Therefore, in VVC, where blocks of a larger size may be selected, if a weak filter is the only deblocking filter that can be applied to the chrominance component of a decoded image, as in HEVC, significant blocking artifacts may remain in the chrominance component. In view of this situation, it is desirable to improve the deblocking filter for the chrominance component of a decoded image.

[0030] For example, Non-Patent Document 1 proposes a method in which the deblocking filter that can be applied to the chrominance component is changed to two types, similar to the deblocking filter that can be applied to the luminance component, and a strong filter can also be applied to the chrominance component. Non-Patent Document 1 also describes that a deblocking filter can be applied to the chrominance component of a decoded image not only when bS is 2, but also when bS is 1.

[0031] Fig. 2 is a table for explaining the calculation of bS in Non-Patent Document 1. As shown in Fig. 2, in Non-Patent Document 1, bS is calculated based on the above-mentioned conditions A, B1, and B2, similarly to the example of HEVC shown in Fig. 2. However, as described above, in Non-Patent Document 1, a deblocking filter may be applied to the chrominance components of the decoded image not only when bS is 2, but also when bS is 1. Therefore, as shown in Fig. 2, in Non-Patent Document 1, the result of determining whether or not to apply a deblocking filter to the chrominance components (U component, V component) of the decoded image may differ depending on whether or not conditions B1 and B2 are satisfied.

[0032] The following describes the application necessity determination process, filter strength determination process, and filtering process for a deblocking filter that can be applied to the chrominance components of a decoded image in Non-Patent Document 1, with reference to Fig. 3. Fig. 3 is an explanatory diagram showing an example of pixels of chrominance components (U components, V components) in two adjacent blocks Bp and Bq on either side of a vertical block boundary BB. Note that while a vertical boundary is used as an example, the matters described here can naturally be applied to horizontal boundaries as well. Also, while Fig. 3 shows an example in which blocks Bp and Bq are 4x4 in the chrominance components, the matters described here can be applied to blocks of other sizes as well.

[0033] In the example of FIG. 3, the pixels of the chrominance component in the block Bp are p i,j where i is the column index and j is the row index. The column index i is numbered 0, 1, 2, 3 (from left to right in the figure) in order from the column closest to the block boundary BB. The row index j is numbered 0, 1, 2, 3 from top to bottom. On the other hand, the color difference component pixels in block Bq are numbered q k,j where k is the column index and j is the row index. The column index k is numbered 0, 1, 2, 3 (from right to left in the figure) starting from the column closest to the block boundary BB.

[0034] After bS is calculated as described with reference to FIG. 2, the application necessity determination process and the filter strength determination process are performed using the following three conditions. In the case of the YUV420 format, this process is performed for every two lines of the color difference components. For example, in the example shown in FIG. 3, a determination is made separately for lines L11 and L12 and for lines L21 and L22. Note that the determination for each line is performed using the pixels of the line to be determined. Below, the application necessity determination process, filter strength determination process, and filtering process will be described using lines L11 and L12 as an example.

[0035] First, in the application necessity determination process, it is determined in order whether the following condition C91 and condition C92 are true.

[0036] -Condition C91 :(bS==2||bS==1&&(block_width>16&&block_height>16)) -Condition C92:d <beta

[0037] In the above condition C91, block_width and block_height are the horizontal and vertical sizes, respectively, of a block (for example, a CU) that overlaps the block boundary that is the target of the determination, as shown in FIG.

[0038] The variable beta in the above condition C92 is an edge determination threshold, and the initial value of the variable beta is given according to the quantization parameter. The value of the variable beta can be specified by the user using a parameter in the slice header. The variable d in the above condition C92 is calculated using the following equations (1) to (7).

[0039] dp0=Abs(p 2,0 -2*p 1,0 +p 0,0 ) …(1) dp1=Abs(p 2,1 -2*p 1,1 +p 0,1 ) …(2) dq0=Abs(q 2,0 -2*q 1,0 +q 0,0 ) …(3) dq1=Abs(q 2,1 -2*q 1,1 +q 0,1 ) …(4) dpq0=dp0+dq0 …(5) dpq1=dp1+dq1 …(6) d=dpq0+dpq1 …(7)

[0040] Note that the above condition C92 is similar to the condition used in the process of determining whether to apply a deblocking filter applied to the luma component in HEVC (hereinafter referred to as the luma component condition), except that the lines referenced are different. In the luma component condition, the pixels on the first line and the pixels on the fourth line are referenced, and a determination is made every four lines. On the other hand, in the YUV420 format, the pixel density of the color difference components (U component, V component) is half that of the luma component, so in the above condition C92, the pixels on the first line, L11, and the pixels on the second line, L12, are referenced, and a determination is made every two lines.

[0041] If at least one of the above conditions C91 and C92 is false, the deblocking filter is not applied to the chrominance components of the decoded image. On the other hand, if both the above conditions C91 and C92 are true, the process proceeds to the filter strength determination process.

[0042] In the filter strength determination process, in order to determine whether to apply a strong filter or a weak filter, it is determined whether the following condition C93 is true.

[0043] -Condition C93:(block_width>16&&block_height>16)

[0044] Note that, like the block_width and block_height in the condition C91, the block_width and block_height in the above condition C93 are the horizontal and vertical sizes, respectively, of the block that overlaps the block boundary that is the target of the determination.

[0045] If the above condition C93 is true, a strong filter is applied to the chrominance components of the decoded image at the target block boundary, and if the above condition C93 is false, a weak filter is applied to the chrominance components of the decoded image at the target block boundary.

[0046] The strong filter applied to the chrominance component in Non-Patent Document 1 is the same as the strong filter applied to the luminance component in HEVC, and is expressed by the following equations (8) to (13).

[0047] p0′=Clip3(p0-2*tc,p0+2*t C ,(p2+2*p1+2*p0+2*q0+q1+4)>>3) …(8) p1′=Clip3(p1-2*tc,p1+2*t C ,(p2+p1+p0+q0+2)>>2) …(9) p2′=Clip3(p2-2*tc,p2+2*t C ,(2*p3+3*p2+p1+p0+q0+4)>>3) …(10) q0′=Clip3(q0-2*tc,q0+2*t C ,(p1+2p0+2q0+2q1+q2+4)>>3) …(11) q1′=Clip3(q1-2*tc,q1+2*t C ,(p0+q0+q1+q2+2)>>2) …(12) q2′=Clip3(q2-2*t c ,q2+2*t C ,(p0+q0+q1+3*q2+2*q3+4)>>3) …(13)

[0048] In the above equations (8) to (13), p i , and q k is the pixel value of the chrominance component before applying the deblocking filter. i ′, and q k ' is the pixel value of the chrominance component after the deblocking filter is applied. Here, i and k are the column indices in the above-mentioned blocks Bp and Bq, respectively, and the row indices are omitted in equations (8) to (13). Also, t C is a parameter given according to the quantization parameter. Clip3(a,b,c) represents a clipping process that clips the value c within the range of a≦c≦b.

[0049] The weak filter applied to the chrominance component in Non-Patent Document 1 is the same as the weak filter applied to the chrominance component in HEVC, and therefore a description thereof will be omitted here.

[0050] Thus far, we have described the process relating to the deblocking filter that can be applied to the chrominance component of a decoded image in Non-Patent Document 1. According to the above-mentioned technique, it is possible to apply a strong filter not only to the luminance component but also to the chrominance component depending on the conditions.

[0051] However, as explained with reference to FIG. 2, the condition B1 used to calculate bS in Non-Patent Document 1 depends on the presence or absence of a significant coefficient of the luminance component (Y component), as in the case of HEVC, and does not use information on the chrominance components (U component, V component) even if other conditions are included. However, the spatial pattern of the luminance component and the spatial pattern of each of the chrominance components do not necessarily match. Therefore, if the determination of whether to apply a deblocking filter to the chrominance component is made according to a condition based on information about the luminance component, there is a risk that the deblocking filter will not be applied appropriately even though blocking artifacts have occurred, and the blocking artifacts will remain.

[0052] Furthermore, when bS is 1, in order for condition C91 used in the application necessity determination process in Non-Patent Document 1 to be true, both the horizontal and vertical sizes of the block across the block boundary to be determined must be greater than 16. However, as described in Reference Document REF3, the shape of a block (e.g., CU) in VVC can be not only square but also non-square rectangular. Blocking artifacts tend to occur more easily depending on the size in the direction perpendicular to the block boundary than on the size in the same direction as the block boundary. Therefore, depending on the shape of the block, the application necessity determination process in Non-Patent Document 1 may not properly apply the deblocking filter, resulting in remaining blocking artifacts.

[0053] Furthermore, the strong filter in Non-Patent Document 1 is the same as the strong filter applied in HEVC. However, as described above, in VVC, blocks of a size larger than those in the block division in HEVC may be selected, so even if the strong filter in Non-Patent Document 1 is applied, there is a risk that block distortion may not be sufficiently reduced.

[0054] [1-2. Overview of an embodiment of the present disclosure] Therefore, focusing on the above circumstances, an embodiment of the present disclosure has been created. An image processing device according to an embodiment of the present disclosure performs application necessity determination processing for determining whether or not a deblocking filter needs to be applied to the chrominance components of a decoded image, based on a boundary strength (bS) calculated using a chrominance-related parameter related to the chrominance of the decoded image. An outline of an embodiment of the present disclosure will be described below.

[0055] Fig. 4 is a table for explaining how bS is calculated in this embodiment. As shown in Fig. 4, bS is calculated based on condition A, which is a condition related to intra prediction, condition B1-Y, which is a condition related to significant coefficients of the Y component, condition B1-U, which is a condition related to significant coefficients of the U component, condition B1-V, which is a condition related to significant coefficients of the V component, and condition B2, which is a condition related to MV and reference pictures.

[0056] Referring to FIG. 4, if condition A is true, bS is set to 16. If condition A is false and condition B2 is true, bS is set to 1. If condition A and condition B2 are false and any one of conditions B1-Y, B1-U, and B1-V is true, bS is set to a value between 2 and 14. If condition A, condition B1-Y, condition B1-U, condition B1-V, and condition B2 are all false, bS is set to 0. Note that condition A, condition B1-Y, and condition B2 shown in FIG. 4 are the same as condition A, condition B1, and condition B2 described with reference to FIG. 1, respectively. The method for calculating bS according to this embodiment will be described in more detail later.

[0057] 4 correspond to conditions in which the presence or absence of a significant coefficient of the U component and the presence or absence of a significant coefficient of the V component are used for determination instead of the presence or absence of a significant coefficient of the Y component in condition B1-Y, and are expressed as follows: The truth or falsity of the following conditions B1-U and B1-V can be determined based on a flag (an example of a color difference-related parameter) indicating the presence or absence of a significant coefficient of the color difference component in each TU.

[0058] Condition B1-U: The block boundary is a TU boundary, and at least one of the two TUs that contain the pixel on the top line of the bS calculation target line and sandwich the block boundary has a significant coefficient of the U component. Condition B1-V: The block boundary is a TU boundary, and at least one of the two TUs that contain the pixel on the top line of the bS calculation target line and sandwich the block boundary has a significant coefficient of the V component.

[0059] In this embodiment, whether or not a deblocking filter needs to be applied to the chrominance components of the decoded image is determined based on bS calculated using the above-described chrominance-related conditions B1-U and B1-V. This configuration makes it possible to more appropriately apply a deblocking filter to the chrominance components.

[0060] Furthermore, in this embodiment, as will be described later, the determination of whether to apply a deblocking filter to the chrominance components of the decoded image is also based on the size of the block in a direction perpendicular to the block boundary. With this configuration, it is possible to more appropriately apply a deblocking filter even when the block shape is a rectangle that is not a square.

[0061] Furthermore, in this embodiment, as will be described later, a strong filter having a strength (stronger low-pass characteristics) than the strong filter in Non-Patent Document 1 may be applied to the chrominance components of the decoded image. Furthermore, in order to more appropriately apply such a strong filter, in this embodiment, the filter strength is determined by a method different from the filter strength determination process in Non-Patent Document 1. With this configuration, it is possible to further reduce block distortion.

[0062] The above is an overview of one embodiment of the present disclosure. The configuration and operation of this embodiment for achieving the above-mentioned effects will be described in detail below.

[0063] 2. Outline of the device First, a schematic configuration of an example device to which the technology disclosed in this specification can be applied will be described with reference to Figures 5 and 6. The technology disclosed in this specification can be applied to, for example, an image encoding device and an image decoding device.

[0064] [2-1. Image encoding device] FIG. 5 is a block diagram showing an example of a configuration of an image encoding device 10, which is one aspect of an image processing device according to an embodiment of the present disclosure.

[0065] Referring to Figure 5, the image encoding device 10 includes a sorting buffer 11, a control unit 12, a subtraction unit 13, an orthogonal transformation unit 14, a quantization unit 15, a lossless encoding unit 16, an accumulation buffer 17, an inverse quantization unit 21, an inverse orthogonal transformation unit 22, an addition unit 23, an in-loop filter 24, a frame memory 30, a switch 31, a mode setting unit 32, an intra prediction unit 40, and an inter prediction unit 50.

[0066] The reordering buffer 11 reorders a series of images to be coded (original images) according to a GOP (Group of Pictures) structure for coding processing. The reordering buffer 11 outputs the reordered images to the control unit 12, the subtraction unit 13, the intra prediction unit 40, and the inter prediction unit 50.

[0067] The control unit 12 divides an image into blocks, which are processing units, based on an externally or pre-specified block size of the processing unit. The block division by the control unit 12 may form CUs of a quad-tree block structure or a QTBT (quad tree plus binary tree) block structure as processing units. The control unit 12 also determines parameters for the encoding process based on, for example, rate-distortion optimization (RDO). The determined parameters are supplied to each unit.

[0068] The subtraction unit 13 calculates a prediction error, which is the difference between the image input from the sorting buffer 11 and the predicted image, and outputs the calculated prediction error to the orthogonal transformation unit 14.

[0069] The orthogonal transform unit 14 performs orthogonal transform processing on each of one or more transform blocks (TUs) set in each region. The orthogonal transform here may be, for example, a discrete cosine transform or a discrete sine transform. More specifically, the orthogonal transform unit 14 converts the prediction errors input from the subtraction unit 13 from image signals in the spatial domain into transform coefficients in the frequency domain for each transform block. The orthogonal transform unit 14 then outputs the transform coefficients to the quantization unit 15.

[0070] Furthermore, the orthogonal transform unit 14 may generate a flag indicating the presence or absence of a significant coefficient in each TU for each component (Y component, U component, V component) based on the transform coefficients obtained by the orthogonal transform, and output the flag to the lossless encoding unit 16 and the in-loop filter 24. Note that the flag indicating the presence or absence of a significant coefficient of the U component in each TU and the flag indicating the presence or absence of a significant coefficient of the V component in each TU, which are generated by the orthogonal transform unit 14, are included in the color difference related parameters.

[0071] The quantization unit 15 is supplied with the transform coefficients input from the orthogonal transform unit 14 and a rate control signal from a rate control unit 18, which will be described later. The quantization unit 15 quantizes the transform coefficients and outputs the quantized transform coefficients (hereinafter also referred to as quantized data) to the lossless encoding unit 16 and the inverse quantization unit 21. The quantization unit 15 also changes the quantization scale based on the rate control signal from the rate control unit 18, thereby changing the bit rate of the quantized data input to the lossless encoding unit 16.

[0072] The lossless encoding unit 16 generates an encoded stream by encoding the quantized data input from the quantization unit 15. The lossless encoding unit 16 also encodes various parameters referenced by a decoder and inserts the encoding parameters into the encoded stream. The parameters encoded by the lossless encoding unit 16 may include parameters determined by the control unit 12 described above.

[0073] Furthermore, the parameters encoded by the lossless encoding unit 16 may include chrominance-related parameters. The chrominance-related parameters encoded by the lossless encoding unit 16 include, for example, a flag indicating whether or not there is a significant coefficient of the U component in each TU input from the orthogonal transform unit 14 as described above, and a flag indicating whether or not there is a significant coefficient of the V component in each TU. The lossless encoding unit 16 outputs the generated encoded stream to the accumulation buffer 17.

[0074] The accumulation buffer 17 temporarily accumulates the encoded stream input from the lossless encoding unit 16 using a storage medium such as a semiconductor memory. Then, the accumulation buffer 17 outputs the accumulated encoded stream to a transmission unit (not shown) (for example, a communication interface or a connection interface with a peripheral device) at a rate according to the bandwidth of the transmission path.

[0075] The rate control unit 18 monitors the free space in the accumulation buffer 17. Then, the rate control unit 18 generates a rate control signal according to the free space in the accumulation buffer 17 and outputs the generated rate control signal to the quantization unit 15. For example, when the free space in the accumulation buffer 17 is small, the rate control unit 18 generates a rate control signal for lowering the bit rate of the quantized data. Also, for example, when the free space in the accumulation buffer 17 is sufficiently large, the rate control unit 18 generates a rate control signal for increasing the bit rate of the quantized data.

[0076] The inverse quantization unit 21, the inverse orthogonal transformation unit 22, and the addition unit 23 constitute a local decoder. The local decoder is responsible for locally decoding the decoded image from the coded data.

[0077] The inverse quantization unit 21 inverse quantizes the quantized data using the same quantization parameters as those used by the quantization unit 15 to restore the transform coefficients. The inverse quantization unit 21 then outputs the restored transform coefficients to the inverse orthogonal transform unit 22.

[0078] The inverse orthogonal transform unit 22 restores the prediction error by performing an inverse orthogonal transform process on the transform coefficients input from the inverse quantization unit 21. Then, the inverse orthogonal transform unit 22 outputs the restored prediction error to the adder 23.

[0079] The adder 23 generates a decoded image (reconstructed image) by adding the reconstructed prediction error input from the inverse orthogonal transformer 22 and the predicted image input from the intra prediction unit 40 or the inter prediction unit 50. Then, the adder 23 outputs the generated decoded image to the in-loop filter 24 and the frame memory 30.

[0080] The in-loop filter 24 applies a series of in-loop filters to improve the image quality of the decoded image. For example, as described in "2.5. In-loop filtering" in Reference Document REF3, four in-loop filters may be applied in the following order: a bilateral filter, a deblocking filter, an adaptive offset filter, and an adaptive loop filter. The in-loop filter 24 shown in FIG. 5 includes, for example, a bilateral filter 25, a deblocking filter 26a, an adaptive offset filter 27, and an adaptive loop filter 28, and the four in-loop filters may be applied in this order. However, the in-loop filter 24 is not limited to this configuration, and it may be possible to appropriately select which of the four in-loop filters to apply and in what order. The deblocking filter 26a will be described in detail later.

[0081] The in-loop filter 24 outputs the decoded image to which the in-loop filter has been applied to the frame memory 30 .

[0082] The frame memory 30 uses a storage medium to store the decoded image before filtering input from the adder 23 and the decoded image to which the in-loop filter has been applied input from the in-loop filter 24 .

[0083] The switch 31 reads out a decoded image before filtering to be used for intra prediction from the frame memory 30, and supplies the read decoded image as a reference image to the intra prediction unit 40. The switch 31 also reads out a decoded image after filtering to be used for inter prediction from the frame memory 30, and supplies the read decoded image as a reference image to the inter prediction unit 50.

[0084] The mode setting unit 32 sets a predictive coding mode for each block based on a comparison of costs input from the intra prediction unit 40 and the inter prediction unit 50. For a block for which intra prediction mode is set, the mode setting unit 32 outputs a predicted image generated by the intra prediction unit 40 to the subtraction unit 13 and the addition unit 23, and outputs information related to the intra prediction to the lossless coding unit 16. Furthermore, for a block for which inter prediction mode is set, the mode setting unit 32 outputs a predicted image generated by the inter prediction unit 50 to the subtraction unit 13 and the addition unit 23, and outputs information related to the inter prediction to the lossless coding unit 16.

[0085] The intra prediction unit 40 performs intra prediction processing based on the original image and the decoded image. For example, the intra prediction unit 40 evaluates a cost based on a prediction error and the amount of code generated for each prediction mode candidate included in a search range. Next, the intra prediction unit 40 selects the prediction mode with the smallest cost as the optimal prediction mode. The intra prediction unit 40 also generates a predicted image according to the selected optimal prediction mode. The intra prediction unit 40 then outputs information related to intra prediction, including prediction mode information indicating the optimal prediction mode, the corresponding cost, and the predicted image, to the mode setting unit 32.

[0086] The inter prediction unit 50 performs inter prediction processing (motion compensation) based on the original image and the decoded image. For example, the inter prediction unit 50 evaluates a cost based on a prediction error and the amount of code generated for each prediction mode candidate included in a certain search range. Next, the inter prediction unit 50 selects the prediction mode with the smallest cost, i.e., the prediction mode with the highest compression rate, as the optimal prediction mode. The inter prediction unit 50 also generates a predicted image according to the selected optimal prediction mode. The inter prediction unit 50 then outputs information related to inter prediction, the corresponding cost, and the predicted image to the mode setting unit 32.

[0087] [2-2. Image Decoding Device] Next, decoding of the data encoded as above will be described. Fig. 6 is a block diagram showing an example of the configuration of an image decoding device 60, which is one aspect of the image processing device according to this embodiment. Referring to Fig. 6, the image decoding device 60 includes an accumulation buffer 61, a lossless decoding unit 62, an inverse quantization unit 63, an inverse orthogonal transform unit 64, an adder 65, an in-loop filter 66, a sorting buffer 72, a D / A (Digital to Analogue) conversion unit 73, a frame memory 80, selectors 81a and 81b, an intra prediction unit 90, and an inter prediction unit 100.

[0088] The accumulation buffer 61 temporarily accumulates, using a storage medium, an encoded stream received from the image encoding device 10 via a transmission unit (not shown) (for example, a communication interface or a connection interface with a peripheral device).

[0089] The lossless decoding unit 62 decodes the coded stream input from the accumulation buffer 61 in accordance with the coding method used for coding, and generates quantized data. The lossless decoding unit 62 outputs the generated quantized data to the inverse quantization unit 63.

[0090] The lossless decoding unit 62 also parses various parameters from the encoded stream. The parameters parsed by the lossless decoding unit 62 may include, for example, information about intra prediction and information about inter prediction. The lossless decoding unit 62 outputs the information about intra prediction to the intra prediction unit 90. The lossless decoding unit 62 also outputs the information about inter prediction to the inter prediction unit 100.

[0091] Furthermore, the parameters parsed by the lossless decoding unit 62 may include chrominance-related parameters. The lossless decoding unit 62 outputs the chrominance-related parameters to the in-loop filter 66. Note that the chrominance-related parameters parsed by the lossless decoding unit 62 include, for example, a flag indicating whether or not there is a significant coefficient of the U component in each TU described above, and a flag indicating whether or not there is a significant coefficient of the V component in each TU.

[0092] The inverse quantization unit 63 inverse-quantizes the quantized data input from the lossless decoding unit 62 using the same quantization step as that used in encoding, thereby restoring the transform coefficients. The inverse quantization unit 63 outputs the restored transform coefficients to the inverse orthogonal transform unit 64.

[0093] The inverse orthogonal transform unit 64 generates prediction errors by performing inverse orthogonal transform on the transform coefficients input from the inverse quantization unit 63 in accordance with the orthogonal transform method used during encoding. The inverse orthogonal transform unit 64 outputs the generated prediction errors to the adder 65.

[0094] The adder 65 generates a decoded image by adding the prediction error input from the inverse orthogonal transformer 64 and the predicted image input from the selector 71b. Then, the adder 65 outputs the generated decoded image to the in-loop filter 66 and the frame memory 80.

[0095] The in-loop filter 66 applies a series of in-loop filters to improve the image quality of the decoded image. For example, as described in "2.5. In-loop filtering" in Reference Document REF3, four in-loop filters may be applied in the following order: a bilateral filter, a deblocking filter, an adaptive offset filter, and an adaptive loop filter. The in-loop filter 66 shown in FIG. 6 includes, for example, a bilateral filter 67, a deblocking filter 26b, an adaptive offset filter 69, and an adaptive loop filter 70, and the four in-loop filters may be applied in this order. However, the in-loop filter 66 is not limited to this configuration, and it may be possible to appropriately select which of the four in-loop filters to apply and in what order. The deblocking filter 26b will be described in detail later.

[0096] The in-loop filter 66 outputs the decoded image to which the in-loop filter has been applied to the sorting buffer 72 and the frame memory 80 .

[0097] The sorting buffer 72 generates a series of images in time series by sorting the images input from the in-loop filter 66. Then, the sorting buffer 72 outputs the generated images to the D / A conversion unit 73.

[0098] The D / A conversion unit 73 converts the digital image input from the rearrangement buffer 72 into an analog image signal. Then, the D / A conversion unit 73 displays the image by outputting the analog image signal to, for example, a display (not shown) connected to the image decoding device 60.

[0099] The frame memory 80 uses a storage medium to store the decoded image before filtering input from the adder 65 and the decoded image to which the in-loop filter has been applied input from the in-loop filter 66 .

[0100] The selector 81a switches the output destination of an image from the frame memory 80 between the intra prediction unit 90 and the inter prediction unit 100 for each block in the image, according to prediction mode information acquired by the lossless decoding unit 62. For example, when an intra prediction mode is specified, the selector 81a outputs the decoded image before filtering supplied from the frame memory 80 as a reference image to the intra prediction unit 90. Furthermore, when an inter prediction mode is specified, the selector 81a outputs the decoded image after filtering to the inter prediction unit 100 as a reference image.

[0101] The selector 81b switches the output source of the predicted image to be supplied to the adder 65 between the intra prediction unit 90 and the inter prediction unit 100, according to the prediction mode information acquired by the lossless decoding unit 62. For example, when an intra prediction mode is specified, the selector 81b supplies the predicted image output from the intra prediction unit 90 to the adder 65. Furthermore, when an inter prediction mode is specified, the selector 81b supplies the predicted image output from the inter prediction unit 100 to the adder 65.

[0102] The intra prediction unit 90 performs intra prediction processing based on the information related to intra prediction input from the lossless decoding unit 62 and the reference image from the frame memory 80, and generates a predicted image. Then, the intra prediction unit 90 outputs the generated predicted image to the selector 81b.

[0103] The inter prediction unit 100 performs inter prediction processing based on information related to inter prediction input from the lossless decoding unit 62 and the reference image from the frame memory 80, and generates a predicted image. Then, the inter prediction unit 100 outputs the generated predicted image to the selector 81b.

[0104] <3. Deblocking filter> [3-1. Example of deblocking filter configuration] This section describes an example of the configuration of the deblocking filter 26a of the image encoding device 10 shown in Fig. 5 and the deblocking filter 26b of the image decoding device 60 shown in Fig. 6. Note that the deblocking filter 26a and the deblocking filter 26b may have the same configuration. Therefore, in the following description, when there is no particular need to distinguish between the two, the deblocking filter 26a and the deblocking filter 26b will be collectively referred to as the deblocking filter 26.

[0105] As described above, the deblocking filter 26 according to this embodiment determines whether or not to apply a deblocking filter to the chrominance components of the decoded image based on bS calculated using chrominance-related parameters related to chrominance. Furthermore, as described above, the deblocking filter 26 according to this embodiment determines whether or not to apply a deblocking filter to the chrominance components of the decoded image based additionally on the size in the direction perpendicular to the block boundary. Furthermore, as described above, the deblocking filter 26 according to this embodiment may apply a strong filter with greater strength (stronger low-pass characteristics) than the strong filter in Non-Patent Document 1 to the chrominance components of the decoded image. Furthermore, in order to more appropriately apply such a strong filter, this embodiment determines the filter strength using a method different from the filter strength determination process in Non-Patent Document 1. Note that, hereinafter, the functions of the deblocking filter 26 related to the deblocking filter applied to the chrominance components of the decoded image will be mainly described, and the functions of the deblocking filter 26 related to the deblocking filter applied to the luminance component will be omitted as appropriate.

[0106] 7 is a block diagram showing an example of a detailed configuration of the deblocking filter 26 according to the present embodiment. Referring to FIG. 7, the deblocking filter 26 includes a boundary strength calculation unit 261, a determination unit 263, and a filtering unit 269.

[0107] (1) Boundary strength calculation section The boundary strength calculation unit 261 calculates bS (boundary strength) using chrominance-related parameters related to chrominance for block boundaries of the decoded image. When a YUV420 format signal is being processed, the boundary strength calculation unit 261 calculates bS for every four lines in the luminance component of the decoded image, i.e., every two lines in the chrominance component of the decoded image.

[0108] In this embodiment, the chrominance-related parameters used by the boundary strength calculation unit 261 to calculate bS include a flag indicating whether or not there is a significant coefficient of the U component in each TU, and a flag indicating whether or not there is a significant coefficient of the V component in each TU. As shown in Fig. 7 , the boundary strength calculation unit 261 receives, as input, from the orthogonal transform unit 14 or the lossless decoding unit 62, a flag indicating whether or not there is a significant coefficient of each component (Y component, U component, V component) in each TU.

[0109] The boundary strength calculation unit 261 calculates bS based on condition A, condition B1-Y, condition B1-U, condition B1-V, and condition B2 described with reference to FIG. 4. That is, the boundary strength calculation unit 261 calculates bS based on whether significant coefficients of the chrominance components are present in the TUs sandwiching the block boundary for which bS is calculated. Furthermore, the boundary strength calculation unit 261 according to this embodiment can calculate bS by independently determining whether significant coefficients of the Y component, U component, and V component are present in the TUs sandwiching the block boundary for which bS is calculated. With this configuration, bS suitable for the U component and V component can be calculated, and a deblocking filter can be applied more appropriately, compared to calculating bS based on whether a significant coefficient of the Y component is present as described with reference to FIG. 2.

[0110] Calculation of bS by the boundary strength calculation unit 261 will be described in more detail with reference to FIG. 8. FIG. 8 is a table showing an example of bS calculated by the boundary strength calculation unit 261. The bS calculated by the boundary strength calculation unit 261 can be represented by a plurality of bits. In the example shown in FIG. 8, bS is represented by five bits. Furthermore, bS may be calculated such that the plurality of bits includes at least one bit corresponding to each of the Y component, U component, and V component. With this configuration, when the determination unit 263 (described later) determines whether or not to apply a deblocking filter based on bS, the determination can be easily made by referring to the bit of bS corresponding to each component to be determined.

[0111] Furthermore, the boundary strength calculation unit 261 may calculate bS such that each bit included in bS corresponds to the truth or falsity of each condition. In the example shown in FIG. 8, bS is calculated such that if each condition is true, the bit corresponding to the condition is 1, and if each condition is false, the bit corresponding to the condition is 0. In the example shown in FIG. 8, bS is expressed by 5 bits, and the 5th bit of bS corresponds to condition A regarding intra prediction, the 4th bit of bS corresponds to condition B1-Y regarding significant coefficients of the Y component, the 3rd bit of bS corresponds to condition B1-U regarding significant coefficients of the U component, the 2nd bit of bS corresponds to condition B1-V regarding significant coefficients of the V component, and the 1st bit of bS corresponds to condition B2 regarding MV and reference pictures. However, the correspondence between each bit of bS and each condition is not limited to the example shown in FIG. 8. For example, the order of the 4th bit, 3rd bit, and 2nd bit of bS, which correspond to the Y component, U component, and V component, respectively, may be interchanged.

[0112] (2) Judgment section 7, the determination unit 263 includes an application necessity determination unit 265 that determines whether a deblocking filter needs to be applied to the chrominance component of the decoded image, and a filter strength determination unit 267 that determines the filter strength of the deblocking filter to be applied to the chrominance component of the decoded image. Below, the functions of the application necessity determination unit 265 and the filter strength determination unit 267 will be described in order.

[0113] In the following description, the determination of whether or not to apply a deblocking filter to the chrominance components of the decoded image and the filter strength will be mainly described, and the description of the determination for the luminance component will be omitted as appropriate. Furthermore, the application necessity determination unit 265 and the filter strength determination unit 267 according to this embodiment determine whether or not to apply a deblocking filter and the filter strength for each of the U component and the V component independently.

[0114] The application necessity determination unit 265 targets block boundaries of the decoded image and determines whether or not a deblocking filter needs to be applied to the chrominance components of the decoded image based on the bS (boundary strength) calculated by the boundary strength calculation unit 261 as described above.

[0115] The application necessity determination unit 265 may further determine whether or not a deblocking filter needs to be applied to the chrominance components of the decoded image based on the block sizes of the blocks sandwiching the block boundary. Note that, hereinafter, such a determination based on block size may be referred to as a large block determination. Also, the application necessity determination unit 265 does not always need to perform large block determination for all block boundaries, and may determine whether or not to perform large block determination based on bS. Note that cases in which large block determination is performed and details of large block determination will be described later.

[0116] The application necessity determining unit 265 according to this embodiment determines whether or not a deblocking filter needs to be applied based on the determination of the following condition C1 and the determination of the following condition C2.

[0117] -Condition C1:(bS==16||(Condition C11&&Condition C12)) -Condition C2:d <beta

[0118] Condition C11 in the above condition C1 is a condition for determining whether or not to perform large block determination, and condition C12 is a condition related to the large block determination. When bS is 16, that is, when condition A related to intra prediction is satisfied, condition C1 may be determined to be true without the need to perform large block determination. Therefore, condition C11 for determining whether or not to perform large block determination may be true when bS has a value related to inter prediction. Note that by skipping large block determination and determining condition C1 to be true when bS is 16 in this way, the amount of processing required for large block determination can be reduced.

[0119] Also, if the condition C11 of the condition C1 is false, the determination of the condition C12 (large block determination) is not performed, and the condition C1 is determined to be false. With this configuration, the amount of processing required for the large block determination can be reduced.

[0120] Condition C11 may be true when a condition regarding the significant coefficient of each component or the above-mentioned condition B2 is true. That is, condition C11 may differ depending on the component to be determined. For example, when the component to be determined is the U component, condition C11 may be a condition such as condition C11-U below, and when the component to be determined is the V component, condition C11 may be a condition such as condition C11-V below.

[0121] -Condition C11-U:(bS&0x04||bS&0x01) -Condition C11-V:(bS&0x02||bS&0x01)

[0122] Furthermore, the application necessity determination unit 265 performs large block determination based on the size of the blocks on either side of the block boundary in a direction perpendicular to the block boundary. With this configuration, when the shape of the block is a non-square rectangle, it becomes possible to determine whether or not to apply a deblocking filter based on the size in the direction perpendicular to the block boundary, which is likely to affect the occurrence of block distortion.

[0123] The application necessity determination unit 265 may also perform large block determination based on whether the size of blocks on either side of a block boundary in a direction perpendicular to the block boundary is greater than a predetermined threshold. The threshold used in this large block determination is not limited, but may be, for example, 16. When the size in the direction perpendicular to the block boundary is small, particularly when it is 16 or less, block noise is less noticeable, so this configuration makes it possible to avoid applying unnecessary deblocking filters. For example, condition C12 for large block determination may be the following condition:

[0124] -Condition C12:(EDGE_VER&&block_width>16)||(EDGE_HOR&&block_height>16)

[0125] In the above condition C12, EDGE_VER means that the block boundary to be determined is a vertical boundary, and EDGE_HOR means that the block boundary to be determined is a horizontal boundary.

[0126] Furthermore, the above condition C2 is the same as the above-mentioned condition C92, and therefore description thereof will be omitted here. Note that the determination of the above condition C2 is made when the condition C1 is true, and when the condition C1 is false, the determination of the condition C2 is not made, and it is determined that a deblocking filter is not to be applied. The determination of the condition C2 requires a process of calculating the variable d as in the above-mentioned formulas (1) to (7), and therefore requires a larger amount of processing than the determination of the condition C1. Therefore, by making the determination of the condition C2 after the condition C1, it is possible to reduce the amount of processing.

[0127] Furthermore, after determining whether or not to apply a deblocking filter based on conditions C1 and C2 as described above, the filter strength determination unit 267 further determines the filter strength of the deblocking filter to be applied to the chrominance component of the decoded image. As will be described later, the deblocking filters that can be applied in this embodiment may be of two types: a weak filter having weaker strength and a strong filter having stronger strength. The filtering unit 269, which will be described later, applies either the weak filter or the strong filter depending on the filter strength determined by the filter strength determination unit 267.

[0128] When it is determined that a deblocking filter is to be applied, the filter strength determination unit 267 determines the filter strength. By determining the filter strength after determining whether or not a deblocking filter needs to be applied, it is possible to reduce the processing involved in determining the filter strength.

[0129] Furthermore, the filter strength determination unit 267 determines the filter strength based on the waveform of the color difference component of a pixel located near a block boundary. The determination based on the waveform will be described below. The filter strength determination unit 267 determines the filter strength according to the condition C3 based on the following waveform.

[0130] -Condition C3: (Condition C31&&Condition C32&&Condition C33) -Condition C31:|p3-p0|+|q3-q0|<(beta>>3) -Condition C32:|p2-2*p1+p0|+|q2-2*q1+q0|<(beta>>2) -Condition C33:|p0-q0|<((t c *5+1)>>1)

[0131] The filter strength determination unit 267 performs the determination of the above condition C3 for pixels included in two lines among pixels located near the block boundary. The conditions C31, C32, and C33 used in the above C3 are determined for each line. Note that the p i , q k , p i ′, q k ′, beta, and t C Since this has already been explained above, the explanation will be omitted here.

[0132] Conditions C31, C32, and C33 are conditions used for determining the gap between blocks using pixels included in each line. More specifically, condition C31 is a condition related to the flatness of the chrominance components of pixels included in each line within a block. Condition C32 is a condition related to determining the continuity of the chrominance components of pixels included in each line within a block. Condition C33 is a condition related to the gap between blocks (difference) between chrominance components of pixels included in each line, and more specifically, is a condition for determining the gap between blocks using pixel values ​​adjacent to the block boundary.

[0133] If condition C31 is true, the waveform of the chrominance component is highly flat within each block. If condition C32 is true, the waveform of the chrominance component is highly continuous within each block. If condition C32 is true, the waveform of the chrominance component has large gaps at block boundaries.

[0134] As described above, condition C3 is determined to be true when all of the above conditions C31, C32, and C33 are true. Furthermore, the filter strength determination unit 267 determines the above condition C3 for each line. However, as described above, the filter strength is determined in units of two lines. That is, if the above condition C3 is true for both of two consecutive lines, a strong filter is applied to those two lines, and if it is false, a weak filter is applied to those two lines.

[0135] (3) Filtering section The filtering unit 269 applies a deblocking filter to the chrominance components of pixels located near block boundaries, based on the result of the determination on whether or not a deblocking filter needs to be applied by the application necessity determination unit 265. Furthermore, as described above, the filtering unit 269 applies a weak filter or a strong filter as a deblocking filter, depending on the filter strength determined by the filter strength determination unit 267.

[0136] The weak filter applied to the chrominance component by the filtering unit 269 according to this embodiment may be the same as the weak filter applied to the chrominance component of a decoded image in, for example, the above-mentioned Non-Patent Document 1 or HEVC. On the other hand, the strong filter applied to the chrominance component in this embodiment may be different from the strong filter applied to the chrominance component in Non-Patent Document 1 (the strong filter applied to the luminance component in HEVC). An example of the strong filter applied to the chrominance component in this embodiment will be described below.

[0137] In this embodiment, the coefficient of the strong filter applied to the chrominance components may be 2 at the center position of the application range of the strong filter, and 1 at other positions. Furthermore, the filtering unit 269 may set the application range of the strong filter from the block boundary to three pixels on either side, and apply the strong filter to the chrominance components of the pixels included in the application range, using three pixels on either side of the center position of the application range as reference pixels. For example, a strong filter with p0 as the center position of the application range is expressed as in the following equation (14).

[0138] p0′=Clip3(p 0- w*t C ,p0+w*t C ,((p3+p2+p1+2*p0+q0+q1+q2+4)>>3)) …(14)

[0139] In the above equation (14), w is a weight that can be set appropriately, and may be set to, for example, 1 or 2. Also, Clip3(a, b, c) represents the clipping process that clips the value c within the range a≦c≦b, as described above.

[0140] By applying such a strong filter, it becomes possible to apply a deblocking filter that is stronger than the strong filter applied to the chrominance component in Non-Patent Document 1 mentioned above.

[0141] Incidentally, when the center position of the range to which the strong filter is applied is the second or third pixel from the block boundary, the reference pixels include pixels that are five pixels or more away from the block boundary. However, pixels that are five pixels or more away from the block boundary are not used in determining the filter strength, and may not be suitable for use as reference pixels. Therefore, the filtering unit 269 may use the pixel value of the fourth pixel from the block boundary as the pixel value of the reference pixel by padding it, instead of the pixel that is five pixels or more away from the block boundary.

[0142] For example, a strong filter with p1 as the center position of the application range is expressed as in the following equation (15). p1′=Clip3(p 1- w*t C ,p1+w*t C ,((p4+p3+p2+2*p1+p0+q0+q1+4)>>3)) =Clip3(p 1- w*t C ,p1+w*t C ,((p3+p3+p2+2*p1+p0+q0+q1+4)>>3)) =Clip3(p 1- w*t C ,p1+w*t C ,((2*p3+p2+2*p1+p0+q0+q1+4)>>3)) …(15)

[0143] Similarly, a strong filter with p2 as the center position of the application range is expressed as in the following equation (16). p2′=Clip3(p 2- w*t C ,p2+w*t C ,((p5+p4+p3+2*p2+p1+p0+q0+4)>>3)) =Clip3(p 2- w*t C ,p2+w*t C ,((p3+p3+p3+2*p2+p1+p0+q0+4)>>3)) =Clip3(p 2- w*t C ,p2+w*t C ,((3*p3+2*p2+p1+p0+q0+4)>>3)) …(16)

[0144] Similarly, strong filters with q0 to q3 as the center positions of the application range are expressed by the following equations (17) to (19), respectively. q0′=Clip3(q0-w*t C ,q0+w*t C ,((p2+p1+p0+2*q0+q1+q2+q3+4)>>3)) …(17) q1′=Clip3(q1-w*tC ,q1+w*t C ,((p1+p0+q0+2*q1+q2+2*q3+4)>>3)) …(18) q2′=Clip3(q2-w*t C ,q2+w*t C ,((p0+q0+q1+2*q2+3*q3+4)>>3)) …(19)

[0145] [3-2. Processing flow] An example of the configuration of the deblocking filter 26 according to this embodiment has been described above. Next, a processing flow by the deblocking filter 26 according to this embodiment will be described. Fig. 9 is a flowchart showing an example of the processing flow by the deblocking filter 26 according to this embodiment. Note that, of the processing by the deblocking filter 26, the following description will focus on processing related to the characteristics of this embodiment, and descriptions of other processing will be omitted as appropriate.

[0146] First, the boundary strength calculation unit 261 calculates bS (boundary strength) (S10). Here, the method of calculating bS will be described in more detail with reference to Fig. 10. Fig. 10 is a flowchart for explaining the flow of the boundary strength calculation process (S10) executed by the boundary strength calculation unit 261.

[0147] First, the boundary strength calculation unit 261 initializes bS to 0 (S102). Next, the boundary strength calculation unit 261 determines whether condition A, which is a condition related to intra prediction, is true or false (S104). If condition A is true (YES in S104), bS is set to 16 (S106).

[0148] On the other hand, if condition A is false (NO in S104), boundary strength calculation unit 261 determines whether condition B2, which is a condition regarding motion vectors (MVs) and reference pictures, is true (S108). If condition B2 is true (YES in S108), bS is set to 1 (S110).

[0149] On the other hand, if the condition B2 is false (NO in S108), the boundary strength calculation unit 261 determines whether the condition B1-Y, which is a condition regarding the presence or absence of a significant coefficient of the Y component, is true or false (S112). If the condition B1-Y is true (YES in S112), 8 is added to bS (S114), and then the process proceeds to step S116. On the other hand, if the condition B1-Y is false (NO in S112), the process proceeds directly to step S116.

[0150] In step S116, the boundary strength calculation unit 261 determines whether condition B1-U, which is a condition regarding the presence or absence of a significant coefficient in the U component, is true or false. If condition B1-U is true (YES in S116), 4 is added to bS (S118), and then the process proceeds to step S120. On the other hand, if condition B1-U is false (NO in S116), the process proceeds directly to step S120.

[0151] In step S120, the boundary strength calculation unit 261 determines whether a condition B1-V, which is a condition regarding the presence or absence of a significant coefficient in the V component, is true or false. If the condition B1-V is true (YES in S120), 2 is added to bS (S122), and then the boundary strength calculation process (S10) ends. If the condition B1-V is false (NO in S120), the boundary strength calculation process (S10) ends.

[0152] 9, the description of the processing flow by the deblocking filter 26 will continue. In step S20, the application necessity determination unit 265 of the determination unit 263 determines whether the above-mentioned condition C1 is true or false. If the condition C1 is false (NO in S20), the processing ends.

[0153] On the other hand, if the condition C1 is true (YES in S20), the application necessity determining unit 265 determines whether the above-mentioned condition C2 is true (S30). If the condition C2 is false (NO in S30), the processing ends.

[0154] On the other hand, if condition C2 is true (YES in S30), the filter strength determination unit 267 of the determination unit 263 determines the filter strength by determining whether the above-mentioned condition C3 is true (S40). If condition C3 is true (YES in S40), the filtering unit 269 applies a strong filter to the chrominance components of pixels located near the block boundary (S50). On the other hand, if condition C3 is false (NO in S40), the filtering unit 269 applies a weak filter to the chrominance components of pixels located near the block boundary (S60).

[0155] The above has described the flow of processing by the deblocking filter 26 according to this embodiment. Note that, in the case of the YUV420 format, for example, the above-described processing described with reference to Fig. 9 and Fig. 10 can be performed in units of four lines in the luminance component of the decoded image, that is, in units of two lines in the chrominance component of the decoded image.

[0156] <New DF>

[0157] The new DF (deblocking filter) will be explained below.

[0158] As documents related to the present technology, the following documents are considered to be prior art and are incorporated herein by reference.

[0159] [JVET-L0072 (version 1 - date 2018-09-25 00:23:50)] K. Andersson, Z. Zhang, R. Sjoberg: CE11: Long deblocking filters for luma (CE11.1.1) and for both luma and chroma (CE11.1.9), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.

[0160] [JVET-L0224 (version 1 - date 2018-09-25 01:59:53)] Anand Meher Kotra, Biao Wang, Semih Esenlik, Han Gao, Zhijie Zhao, Jianle Chen: CE11.1.8: Longer tap Luma deblocking filter, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.

[0161] [JVET-L0403r1 (version 3 - date 2018-10-04 05:13:00)] Dmytro Rusanovskyy, Marta Karczewicz: CE11: Test on long deblocking filtering from JVET-J0021 / JVET-K0334 (CE11.1.4). Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.

[0162] [JVET-L0405r1 (version 2 - date 2018-10-03 07:14:31)] Weijia Zhu, Kiran Misra, Phil Cowan, Andrew Segall: CE11: Deblocking modifications for Large CUs both luma and chroma (Test 11.1.7a and CE11.1.7b). Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.

[0163] [JVET-L0327-v1 (version 1 - date 2018-09-25 02:33:13)] Masaru Ikeda, Teruhiko Suzuki: CE11: Long-tap deblocking filter for luma and chroma (CE11.1.6). Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.

[0164] Furthermore, the scope of disclosure in this specification is not limited to the contents of the Examples, and the contents of the following reference document REF4, which were publicly known at the time of filing, are also incorporated by reference into this specification. In other words, the contents of the following reference document REF4 also serve as the basis for determining the support requirements. REF4: [JVET-K1002-v2 (version 3 - date 2018-10-02 16:37:03)] Jianle Chen, Yan Ye, Seung Hwan Kim: Algorithm description for Versatile Video Coding and Test Model 2 (VTM 2), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 11th Meeting, Ljubljana, SI, 10-18 July 2018.

[0165] In VVC, the coding block size is larger (8 times larger than in AVC and twice as large as in HEVC), resulting in noticeable degradation of block boundaries.

[0166] For large blocks with a large block size, the HEVC deblocking filter (DF) may not be able to completely remove block noise if there is strong block noise.

[0167] In addition, in VVC, in the case of intra-frame coding, different block divisions can be selected for the luminance component and the chrominance component, and therefore the block sizes can be optimized for each of the luminance and chrominance components. It is known that coding efficiency can be improved by adopting large blocks for the chrominance component and small blocks with a block size for the luminance component, and the importance of DF for large blocks of the chrominance component is increasing.

[0168] Large blocks tend to have large block noise (block distortion). In order to properly remove large block noise, a strong filter strength, i.e., a DF that blurs the image more, is required.

[0169] A filter that blurs an image more is a filter with a long tap (a large number of taps), so in order to properly remove large block noise, it is necessary to adopt a filter with a long tap as the DF applied to the luminance component and the chrominance component.

[0170] When a long-tap filter is used as the DF, a line buffer for the number of pixels required for filtering must be prepared at the block boundary, i.e., the horizontal boundary, when the DF is applied in raster scan order, for example. For example, when eight pixels arranged in a vertical direction perpendicular to the horizontal boundary are used for filtering (filtering process) by the DF, and four of the eight pixels are pixels of the block above the horizontal boundary, a line buffer for storing four lines (rows) of pixels (pixel values) is required.

[0171] Providing a line buffer with a large capacity in the DF increases costs. If the capacity of the line buffer is reduced in order to minimize costs, a filter with long taps cannot be used as the DF, which reduces the performance of the DF and makes it difficult to sufficiently remove block noise.

[0172] Therefore, it is desirable to determine the specifications of the DF by balancing cost and performance. In AVC and HEVC, the filter design for DF does not take into account the capacity of the line buffer.

[0173] Therefore, in this technology, a new DF (hereinafter also referred to as new DF) is proposed.

[0174] Unless otherwise specified, the following description focuses on color difference components, and a description of the luminance component will be omitted.

[0175] FIG. 11 is a block diagram showing an example of the configuration of the DF 300 as the new DF.

[0176] DF300 can be used as DF26.

[0177] In FIG. 11, parts corresponding to DF26 in FIG. 7 are given the same reference numerals, and the description thereof will be omitted below as appropriate.

[0178] 11, the DF 300 includes a boundary strength calculation unit 261, a determination unit 310, a filtering unit 320, a line buffer 330, and a control unit 340.

[0179] 7 in that it includes a boundary strength calculation unit 261. However, DF300 differs from DF26 in that it includes a determination unit 310 and a filtering unit 320 instead of the determination unit 263 and the filtering unit 269. DF300 also differs from DF26 in that it newly includes a control unit 340.

[0180] Although not shown in Fig. 7, DF26 in Fig. 7 has a line buffer, just like DF300. However, the line buffer 330 in DF300 and the line buffer in DF26 may have different capacities.

[0181] The determination unit 310 includes an application necessity determination unit 311 and a filter strength determination unit 312 .

[0182] The application necessity determination unit 311 is supplied with bS from the boundary strength calculation unit 261. In addition, the application necessity determination unit 311 is supplied with a decoded image from outside the DF 300 (the addition unit 23 in FIG. 5 or the addition unit 65 in FIG. 6) or from the line buffer 330.

[0183] 7, the application necessity determination unit 311 performs the application necessity determination process using bS from the boundary strength calculation unit 261 and further a decoded image from outside the DF 300 or from the line buffer 330.

[0184] The application necessity determination unit 311 performs a step determination to determine whether or not there is a high possibility of a step at the block boundary, depending on bS. For example, if bS is greater than 0 (greater than or equal to 1), the application necessity determination unit 311 determines that there is a high possibility of a step at the block boundary. Then, if the application necessity determination unit 311 determines in the step determination that there is a high possibility of a step at the block boundary, it performs a filter application determination to determine whether or not to apply DF to pixels of color difference components near the block boundary. The application necessity determination process performed by the application necessity determination unit 311 is made up of the above step determination and filter application determination.

[0185] The application necessity determining unit 311 supplies the filter application determination result to the filter strength determining unit 312 as the determination result of the application necessity determining process.

[0186] The filter strength determination unit 312 is supplied with the filter application determination result from the application necessity determination unit 311, and also with a decoded image from outside the DF 300 or from the line buffer 330.

[0187] 7 , the filter strength determination unit 312 performs filter strength determination to determine the filter strength of the DF to be applied to the chrominance components of the decoded image, that is, filter type determination to determine the filter type of the DF to be applied to the chrominance components of the decoded image, using a decoded image from outside the DF 300 or the line buffer 330. Then, the filter strength determination unit 321 supplies the result of the filter type determination to the filtering unit 320.

[0188] In the new DF, there are two filter types of the DF applied to the chrominance component of the decoded image: a weak filter having a weaker filter strength (compared to the strong filter) and a strong filter having a stronger filter strength (compared to the weak filter).

[0189] The filtering unit 320 is supplied with the filter type determination result from the filter strength determination unit 312, and also with a decoded image from outside the DF 300 or from the line buffer 330.

[0190] 7, the filtering unit 320 performs filtering processing by applying a strong filter or a weak filter indicated by the filter type determination result from the filter strength determination unit 312 to the decoded image. That is, the filtering unit 320 performs calculations as filtering processing on a target pixel, which is a pixel of a chrominance component to be filtered, in the decoded image from outside the DF 300 or the line buffer 330, using pixels of the chrominance component neighboring the target pixel. Here, the pixels used in filtering processing are also referred to as filter constituent pixels.

[0191] The filtering unit 320 outputs pixels (of color difference components) obtained by filtering the target pixel as filtered pixels (pixels that constitute a filtered image after filtering).

[0192] A decoded image is supplied to the line buffer 330 from outside the DF 300. The line buffer 330 appropriately stores pixels of the chrominance components of the decoded image (chrominance components of pixels of the decoded image) from outside the DF 300. The line buffer 330 has a storage capacity for storing pixels of the chrominance components for a predetermined number of lines (rows), and when it has stored pixels for that storage capacity, it stores new pixels by overwriting the oldest pixels.

[0193] The control unit 340 controls each block that constitutes the DF 300.

[0194] In this embodiment, the DF 300 processes the decoded image in, for example, a raster scan order. When the decoded image is processed not in the raster scan order but, for example, from top to bottom, and then repeatedly processed from left to right, the horizontal (horizontal) (left and right) and vertical (vertical) (up and down) described below are reversed (switched).

[0195] FIG. 12 is a diagram showing an example of the structure of a decoded image processed by the DF 300. As shown in FIG.

[0196] The blocks that make up a decoded image include CTUs, and the CTUs include blocks such as PUs and TUs.

[0197] The intensity calculation unit 261, judgment unit 310, and filtering unit 320 of the DF300 in Figure 11 can perform processing, for example, in units of CTU, and in this case have a buffer (not shown) (hereinafter also referred to as an internal buffer) that can store CTUs.

[0198] Among block boundaries, the boundary of a CTU is referred to as a CTU boundary, and block boundaries other than a CTU boundary are referred to as internal boundaries. Furthermore, the CTU being processed by DF300 is referred to as a CTU of interest.

[0199] The intensity calculation unit 261, the determination unit 310, and the filtering unit 320 store the pixels of the lines (rows) included in the CTU of interest in an internal buffer, and process the CTU of interest.

[0200] In the CTU of interest, for the horizontal internal boundary, the pixels of the blocks above and below the internal boundary are stored in the internal buffer, and therefore do not need to be stored in the line buffer 330.

[0201] Furthermore, for the CTU boundary on the upper side in the horizontal direction of the CTU of interest, the pixels of the block below that CTU boundary are stored in the internal buffer, and so do not need to be stored in the line buffer 330. However, the pixels of the block above the CTU boundary on the upper side in the horizontal direction are pixels within a CTU on the row above the CTU of interest, and so are not stored in the internal buffer. Therefore, the pixels of the block above the CTU boundary on the upper side in the horizontal direction of the CTU of interest need to be stored in the line buffer 330.

[0202] This is why the line buffer 330 is necessary.

[0203] FIG. 13 is a flowchart illustrating the processing of the DF 300 in FIG.

[0204] In the DF300, the line buffer 330 stores pixels of the color difference components of the decoded image supplied from outside the DF300 as appropriate.

[0205] Then, in step S211, the boundary strength calculation unit 261 calculates bS as described above, and supplies it to the application necessity determination unit 311, and the process proceeds to step S212.

[0206] In step S212, the application necessity determining unit 311 performs a step determination to determine whether bS is greater than zero.

[0207] If it is determined in the step determination of step S212 that bS is not greater than 0, that is, if there is no possibility of a step at the block boundary, the process ends. Therefore, in this case, the filtering process of DF300 is not applied to the decoded image.

[0208] On the other hand, if it is determined in the step determination in step S212 that bS is greater than 0, that is, if there is a possibility that a step exists at the block boundary, the process proceeds to step S213.

[0209] In step S213, the application necessity determining unit 311 performs a filter application determination to determine whether or not to apply the DF to pixels of the color difference components near the block boundary.

[0210] If it is determined in the filter application determination in step S213 that the DF is not to be applied (determined not to be applied), the process ends.

[0211] On the other hand, if it is determined in the filter application determination in step S213 that the DF is to be applied, the process proceeds to step S214.

[0212] In step S214, the filter strength determination unit 312 determines the filter type, and the process proceeds to step S215.

[0213] In step S215, the filtering unit 320 performs a filtering process by applying the strong filter or weak filter indicated by the filter type determination result in step S214 to the decoded image, and then the process ends.

[0214] FIG. 14 is a diagram illustrating the DF of HEVC.

[0215] The HEVC DF has filters Y1, Y2, and C1.

[0216] The filter Y1 is a strong filter for the luminance component that performs filtering on the luminance component as the target of DF.

[0217] The filter Y2 is a weak filter for the luminance component that performs filtering on the luminance component as the target of DF.

[0218] The filter C1 is a filter for the color difference components that performs filtering on the color difference components as the target of DF.

[0219] In HEVC, there is only one filter, filter C1, that performs filtering on chrominance components as a target of DF, and there is no distinction between strong filters and weak filters.

[0220] FIG. 15 is a diagram for explaining the new DF.

[0221] The new DF has filters NY1, NY2, NC1, and NC2.

[0222] The filter NY1 is a strong filter for the luminance component that performs filtering on the luminance component as the target of DF. As the filter NY1, for example, the filter Y1 can be used.

[0223] The filter NY2 is a weak filter for the luminance component that performs filtering on the luminance component as the target of DF. As the filter NY2, for example, the filter Y2 can be used.

[0224] The filter NC1 is a strong filter (a filter with stronger filter strength than the filter NC2) for the chrominance components that performs filtering on the chrominance components as the target of DF. As the filter NC1, for example, a filter based on the filters Y1 and Y2 or the original filter OF described later (the filters Y1 and Y2 or OF themselves, or a filter with reduced filter characteristics of the filters Y1 and Y2 or OF) can be used.

[0225] The filter NC2 is a weak filter (a filter with a weaker filter strength than the filter NC1) for the color difference components that performs filtering on the color difference components as the target of DF. As the filter NC2, for example, the filter C1 can be used.

[0226] FIG. 16 is a diagram showing an example of pixels of color difference components on a block boundary.

[0227] 16, the left-right direction represents the up-down direction of the decoded image, and the up-down direction represents the (magnitude of) chrominance components. Therefore, in FIG. 16, block boundaries indicated by vertical lines are horizontal boundaries (horizontal boundaries) of the decoded image.

[0228] The new DF will be explained using the example of applying the DF to the pixels of the blocks Bp and Bq adjacent above and below the horizontal boundary as described above. In this case, the DF applied to the pixels of the blocks Bp and Bq is a vertical filter applied in the vertical direction.

[0229] The DF to be applied to the pixels of the blocks adjacent to the left and right of the vertical boundary can be the new DF or another filter. In the following, the description of applying the DF to the pixels of the blocks adjacent to the left and right of the vertical boundary will be omitted.

[0230] In FIG. 16, the pixels of the block Bp above the horizontal boundary and the pixels of the block Bq below the horizontal boundary are denoted by p i,j and q k,j However, in Figure 16, p i,j and q k,j The index j of pixel p is omitted. i (p i,j ) are also called p-side pixels, and pixel q k (q k,j ) are also called q-side pixels.

[0231] For adjacent blocks Bp and Bq above and below the horizontal boundary, |p3 - p0| + |q3 - q0| represents the flatness between blocks Bp and Bq, |p2 - 2*p1 + p0| + |q2 - 2*q1 + q0| represents the continuity between blocks Bp and Bq, and |p0 - q0| represents the gap between blocks Bp and Bq.

[0232] Below, variations of the filter NC1 as a strong filter applied to the color difference components in the new DF will be described.

[0233] <When using a filter based on filter Y1 as filter NC1>

[0234] FIG. 17 is a diagram showing the filter NC1 and the pixels required when a filter based on the filter Y1 is used as the filter NC1.

[0235] The filter NC1 based on the filter Y1 includes a Y1 normal filter, a Y1 minus 1 asymmetric filter, a Y1 minus 1 symmetric filter, a Y1 minus 2 asymmetric filter, and a Y1 minus 2 symmetric filter.

[0236] When the Y1 normal filter is adopted as the filter NC1, the filter application determination is performed in the same manner as the luminance component application determination that determines whether or not to apply DF to the luminance component of HEVC.

[0237] In the luminance component application determination, it is determined whether or not Expression (20) is satisfied. If Expression (20) is satisfied, it is determined that DF is applied, and if not, it is determined that DF is not applied.

[0238] dp0 = Abs( p2,0 - 2 * p1,0 + p0,0 ) dp3 = Abs( p2,3 - 2 * p1,3 + p0,3 ) dq0 = Abs( q2,0 - 2 * q1,0 + q0,0 ) dq3 = Abs( q2,3 - 2 * q1,3 + q0,3 ) d = dp0 + dp3 + dq0 + dq3 < beta ···(20)

[0239] In the equation (20), Abs(A) represents the absolute value of A.

[0240] In the luminance component application determination, it is determined whether or not equation (20) is satisfied using the luminance component pixels pi,j and qk,j of the first line of blocks Bp and Bq and the luminance component pixels pi,j and qk,j of the fourth line. If equation (20) is satisfied, it is determined that DF is to be applied to the pixels of the four lines of blocks Bp and Bq.

[0241] Here, assuming that a decoded image in YUV420 format is the target of DF, blocks Bp and Bq have two lines of chrominance component pixels. In filter application determination when the Y1 normal filter is adopted, it is determined whether or not Equation (20) is satisfied using one line of chrominance component pixels out of the two lines of chrominance component pixels. That is, for example, it is determined whether or not Equation (20) is satisfied by setting dp3 and dq3 in Equation (20) to 0.

[0242] In this case, the pixels of the color difference components used for filter application determination (hereinafter also referred to as application determination pixels) are six pixels p0 to p2 and q0 to q2.

[0243] Therefore, when the horizontal boundary is the CTU boundary, for the filter application determination, as the storage capacity of the line buffer 330, a capacity for storing the color difference components of three lines of pixels p0 to p2 of the block Bp above the horizontal boundary (hereinafter also referred to as the capacity for three lines of pixels) is required.

[0244] When adopting the Y1 normal filter as the filter NC1, in the filter type determination, the same determination as the luminance component application determination for determining whether to apply DF to the luminance component of HEVC is performed. That is, in the filter type determination, it is determined whether the formula (21) is satisfied.

[0245] |p3 - p0|+|q3 - q0| < (beta>>3) |p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(21)

[0246] Note that A>>B represents shifting A to the right by B bits, and A<<B represents shifting A to the left by B bits.

[0247] In the filter type determination, when the formula (21) is satisfied, it is determined that the filter NC1 as a strong filter is applied to the color difference component, and when the formula (21) is not satisfied, it is determined that the filter NC2 as a weak filter is applied to the color difference component.

[0248] The pixels of the color difference component used for the filter type determination of the formula (21) (hereinafter also referred to as type determination pixels) are eight pixels of pixels p0 to p3 and q0 to q3.

[0249] Therefore, when the horizontal boundary is a CTU boundary, for filter type determination, as the storage capacity of the line buffer 330, the capacity for four pixel lines of pixels p0 to p3 of the block Bp above the horizontal boundary is required.

[0250] As the Y1 normal filter, the strong filter of the luminance component of HEVC can be adopted. In this case, the Y1 normal filter is represented by Equation (22).

[0251] p2′ = Clip3( p2 - 2*tC, p2 + 2*tC, ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3 ) p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( p2 + p1 + p0 + q0 + 2 ) >> 2 ) p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 ) q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2 * p0 + 2 * q0 + 2 * q1 + q2 + 4 ) >> 3 ) q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 ) q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 3 *q2 + 2*q3 + 4 ) >> 3 ) ···(22)

[0252] Note that Clip3(A, B, C) is a function that represents A when C < A, B when C > B, and C otherwise.

[0253] The filter constituent pixels of the chrominance components used in the filtering process of the Y1 normal filter in equation (22) are eight pixels p0 to p3 and q0 to q3. The target pixels of the chrominance components that are the subject of filtering process (pixels for which filter pixels are obtained) are six pixels p0 to p2 and q0 to q2.

[0254] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs to have a storage capacity of four pixel lines, pixels p0 to p3, of the block Bp above the horizontal boundary for filtering by the Y1 normal filter.

[0255] From the above, when the Y1 normal filter is used as the filter NC1, the storage capacity of the line buffer 330 is limited to the application determination pixels, type determination pixels, and the type determination pixel with the most pixels on the p side among the filter constituent pixels, and the storage capacity of the line buffer 330 needs to be equivalent to the capacity of four pixel lines of pixels p0 to p3 of the block Bp above the horizontal boundary.

[0256] When a Y1 minus 1 asymmetric filter is used as the filter NC1, the filter application determination is performed in the same manner as in the case of, for example, a Y1 normal filter.

[0257] Therefore, the application determination pixels for the color difference components used for filter application determination are the six pixels p0 to p2 and q0 to q2, which are the same as those for the Y1 normal filter.

[0258] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter application determination.

[0259] When a Y1 minus 1 asymmetric filter is adopted as the filter NC1, the filter type determination determines whether or not the filter satisfies equation (23), which is obtained by replacing pixel p3 (one pixel on the p side farthest from the horizontal boundary) in equation (21) for determining whether or not to apply DF to the luminance component of HEVC with pixel p2 (one pixel) on the horizontal boundary side.

[0260] |p2 - p0|+|q3 - q0| < (beta>>3) |p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(twenty three)

[0261] In the filter type determination, if equation (23) is satisfied, it is determined that filter NC1 as a strong filter is applied to the color difference component, and if equation (23) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the color difference component.

[0262] The type determination pixels for the chrominance components used in determining the filter type in equation (23) are seven pixels p0 to p2 and q0 to q3.

[0263] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs to have a storage capacity of three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter type determination.

[0264] The Y1 minus 1 asymmetric filter can be the Y1 normal filter of equation (22), that is, a filter in which pixel p3 of the HEVC luminance component strong filter is replaced with pixel p2 on the horizontal boundary side. In this case, the Y1 minus 1 asymmetric filter is expressed by equation (24).

[0265] p2′ = Clip3( p2 - 2*tC, p2 + 2*tC, ( 5*p2 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3 ) p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( p2 + p1 + p0 + q0 + 2 ) >> 2 ) p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 ) q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2 * p0 + 2 * q0 + 2 * q1 + q2 + 4 ) >> 3 ) q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 ) q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 3 *q2 + 2*q3 + 4 ) >> 3 ) ···(24)

[0266] The filter constituent pixels of the chrominance components used in the filtering process of the Y1 minus 1 asymmetric filter of equation (24) are seven pixels p0 to p2 and q0 to q3. The target pixels of the chrominance components that are the subject of the filtering process are six pixels p0 to p2 and q0 to q2.

[0267] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filtering by the Y1 minus 1 asymmetric filter.

[0268] The Y1 minus 1 asymmetric filter of equation (24) is a filter in which pixel p3 in the first equation for calculating pixel p2' in equation (22) is replaced with pixel p2 on the horizontal boundary side. Therefore, the tap coefficient (filter coefficient) of pixel p2 in the first equation for calculating pixel p2' is changed from 3 in equation (22) to 5 (=2+3).

[0269] From the above, when a Y1 minus 1 asymmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity for three pixel lines of pixels p0 to p2 of the block Bp above the horizontal boundary.

[0270] Here, when a Y1 minus 1 asymmetric filter is adopted as filter NC1, the pixels used are pixels p0 to p2 of block Bp and pixels q0 to q3 of block Bq, which are asymmetric with respect to the horizontal boundary (asymmetric between the p side and the q side).

[0271] When a Y1 minus 1 symmetric filter is used as the filter NC1, the filter application determination is performed in the same manner as in the case of the Y1 normal filter, for example.

[0272] Therefore, the application determination pixels for the color difference components used for filter application determination are the six pixels p0 to p2 and q0 to q2, which are the same as those for the Y1 normal filter.

[0273] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter application determination.

[0274] When a Y1 minus 1 symmetric filter is adopted as the filter NC1, the filter type determination determines whether or not to apply DF to the luminance component of HEVC by replacing pixel p3 in equation (21) for luminance component application determination with pixel p2 on the horizontal boundary side and by pixel q3 with pixel q2 on the horizontal boundary side, thereby determining whether or not equation (25) is satisfied.

[0275] |p2 - p0|+|q2 - q0| < (beta>>3) |p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(twenty five)

[0276] In the filter type determination, if equation (25) is satisfied, it is determined that filter NC1 as a strong filter is applied to the color difference component, and if equation (25) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the color difference component.

[0277] The type determination pixels for the chrominance components used in determining the filter type in equation (25) are six pixels p0 to p2 and q0 to q2.

[0278] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs to have a storage capacity of three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter type determination.

[0279] The Y1 minus 1 symmetric filter can be the Y1 normal filter of equation (22), that is, a filter in which pixel p3 of the HEVC luminance component strong filter is replaced with pixel p2 on the horizontal boundary side and pixel q3 is replaced with pixel q2 on the horizontal boundary side. In this case, the Y1 minus 1 symmetric filter is expressed by equation (26).

[0280] p2′ = Clip3( p2 - 2*tC, p2 + 2*tC, ( 5*p2 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3 ) p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( p2 + p1 + p0 + q0 + 2 ) >> 2 ) p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 ) q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2 * p0 + 2 * q0 + 2 * q1 + q2 + 4 ) >> 3 ) q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 ) q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 5 *q2 + 4 ) >> 3 ) ···(26)

[0281] The filter constituent pixels of the chrominance components used in the filtering process of the Y1 minus 1 symmetric filter of equation (26) are six pixels p0 to p2 and q0 to q2. The target pixels of the chrominance components that are the subject of the filtering process are six pixels p0 to p2 and q0 to q2.

[0282] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filtering by the Y1 minus 1 symmetric filter.

[0283] The Y1 minus 1 symmetric filter of equation (26) is a filter in which pixel p3 in the first equation for calculating pixel p2' in equation (22) is replaced with pixel p2 on the horizontal boundary side, and therefore the tap coefficient of pixel p2 in the first equation for calculating pixel p2' is changed from 3 in equation (22) to 5 (= 2 + 3). Furthermore, the Y1 minus 1 symmetric filter of equation (26) is a filter in which pixel q3 in the sixth equation for calculating pixel q2' in equation (22) is replaced with pixel q2 on the horizontal boundary side, and therefore the tap coefficient of pixel q2 in the sixth equation for calculating pixel q2' is changed from 3 in equation (22) to 5 (= 3 + 2).

[0284] From the above, when a Y1 minus 1 symmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity for three pixel lines of pixels p0 to p2 of the block Bp above the horizontal boundary.

[0285] Here, when a Y1 minus 1 symmetric filter is adopted as the filter NC1, the pixels used are pixels p0 to p2 of the block Bp and pixels q0 to q2 of the block Bq, which are symmetric with respect to the horizontal boundary.

[0286] When a Y1 minus 2 asymmetric filter is used as filter NC1, the filter application determination is performed by, for example, setting dp3 and dq3 in equation (20) to 0 and determining whether equation (27) is satisfied, in which pixel p2,0 is replaced with pixel p1,0 on the horizontal boundary side.

[0287] dp0 = Abs( p1,0 - 2 * p1,0 + p0,0 ) = Abs( p0,0 - p1,0 ) dq0 = Abs( q2,0 - 2 * q1,0 + q0,0 ) d = dp0 + dq0 < (beta>>1) ···(27)

[0288] In the filter application decision, if the formula (27) is satisfied, it is decided that the DF is to be applied, and if it is not satisfied, it is decided that the DF is not to be applied.

[0289] Therefore, the application determination pixels for the color difference components used in the filter application determination are five pixels, namely, pixels p0 to p1 and q0 to q2.

[0290] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter application determination.

[0291] When a Y1 minus 2 asymmetric filter is adopted as the filter NC1, the filter type determination determines whether or not the filter satisfies equation (28), which is obtained by replacing pixels p3 and p2 (the two pixels on the p side farthest from the horizontal boundary) in equation (21) for determining whether or not to apply DF to the luminance component of HEVC with pixel p1 on the horizontal boundary side.

[0292] |p1 - p0|+|q3 - q0| < (beta>>3) |p1 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2) = |p0 - p1|+ |q2 - 2*q1 + q0| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(28)

[0293] In the filter type determination, if equation (28) is satisfied, it is determined that filter NC1 as a strong filter is applied to the color difference component, and if equation (28) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the color difference component.

[0294] The type determination pixels for the chrominance components used in determining the filter type in equation (28) are six pixels p0 to p1 and q0 to q3.

[0295] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs to have a storage capacity of two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter type determination.

[0296] The Y1 minus 2 asymmetric filter can be the Y1 normal filter of equation (22), that is, a filter in which pixels p3 and p2 of the strong filter for the luminance component of HEVC are replaced with pixel p1 on the horizontal boundary side. In this case, the Y1 minus 2 asymmetric filter is expressed by equation (29).

[0297] p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( 2*p1 + p0 + q0 + 2 ) >> 2 ) p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( 3*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 ) q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3 ) q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 ) q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3 ) ···(29)

[0298] The filter constituent pixels of the chrominance components used in the filtering process of the Y1 minus 2 asymmetric filter of equation (29) are six pixels p0 to p1 and q0 to q3. The target pixels of the chrominance components that are the subject of the filtering process are five pixels p0 to p1 and q0 to q2.

[0299] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filtering by the Y1 minus 2 asymmetric filter.

[0300] The Y1 minus 2 asymmetric filter of equation (29) is an equation that does not have the first equation for calculating pixel p2' in equation (22). Furthermore, the Y1 minus 2 asymmetric filter of equation (29) is a filter in which pixel p2 in the equation for calculating pixels p1' and p0' in equation (22) is replaced with pixel p1 on the horizontal boundary side. Therefore, the tap coefficient of pixel p1 in the equation for calculating pixel p1' in equation (29) is changed from 1 to 2 (=1+1) in equation (22), and the tap coefficient of pixel p1 in the equation for calculating pixel p0' in equation (29) is changed from 2 to 3 (=1+2) in equation (22).

[0301] From the above, when a Y1 minus 2 asymmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines of pixels p0 to p1 of the block Bp above the horizontal boundary.

[0302] Here, when a Y1 minus 2 asymmetric filter is adopted as the filter NC1, the pixels used are pixels p0 to p1 of the block Bp and pixels q0 to q3 of the block Bq, which are asymmetric with respect to the horizontal boundary.

[0303] When a Y1 minus 2 symmetric filter is used as filter NC1, the filter application determination is performed by determining whether or not equation (30) is satisfied, in which, for example, dp3 and dq3 in equation (20) are set to 0 and pixels p2,0 and q2,0 are replaced with pixels p1,0 and q1,0 on the horizontal boundary side, respectively.

[0304] dp0 = Abs( p1,0 - 2 * p1,0 + p0,0 ) = Abs( p0,0 - p1,0 ) dq0 = Abs( q1,0 - 2 * q1,0 + q0,0 ) = Abs( q0,0 - q1,0 ) d = dp0 + dq0 < (beta>>1) ···(30)

[0305] In the filter application decision, if the formula (30) is satisfied, it is decided that the DF is to be applied, and if it is not satisfied, it is decided that the DF is not to be applied.

[0306] Therefore, the application determination pixels for the color difference components used in the filter application determination are the four pixels p0 to p1 and q0 to q1.

[0307] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter application determination.

[0308] When a Y1 minus 2 symmetric filter is adopted as the filter NC1, the filter type determination determines whether or not the equation (31) is satisfied, in which the pixels p3 and p2 in the equation (21) for determining whether or not to apply DF to the luminance component of HEVC are replaced with the pixel p1 on the horizontal boundary side, and the pixels q3 and q2 are replaced with the pixel q1 on the horizontal boundary side.

[0309] |p1 - p0|+|q1 - q0| < (beta>>3) |p1 - 2*p1 + p0|+ |q1 - 2*q1 + q0| < (beta>>2) = |p0 - p1|+ |q0 - q1| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(31)

[0310] In the filter type determination, if equation (31) is satisfied, it is determined that filter NC1 as a strong filter is applied to the color difference component, and if equation (31) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the color difference component.

[0311] The type determination pixels for the chrominance components used in determining the filter type in equation (31) are four pixels p0 to p1 and q0 to q1.

[0312] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs to have a storage capacity of two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter type determination.

[0313] The Y1 minus 2 symmetric filter can be the Y1 normal filter of equation (22), i.e., a filter in which pixels p3 and p2 of the HEVC luminance component strong filter are replaced with pixel p1 on the horizontal boundary side, and pixels q3 and q2 are replaced with pixel q1 on the horizontal boundary side. In this case, the Y1 minus 2 symmetric filter is expressed by equation (32).

[0314] p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( 2*p1 + p0 + q0 + 2 ) >> 2 ) p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( 3*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 ) q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2*p0 + 2*q0 + 3*q1 + 4 ) >> 3 ) q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + 2*q1 + 2 ) >> 2 ) ···(32)

[0315] The filter constituent pixels of the chrominance components used in the filtering process of the Y1 minus 2 symmetric filter of equation (32) are four pixels p0 to p1 and q0 to q1. The target pixels of the chrominance components that are the subject of the filtering process are four pixels p0 to p1 and q0 to q1.

[0316] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filtering by the Y1 minus 2 symmetric filter.

[0317] The Y1 minus 2 symmetric filter of equation (32) is an equation that does not have the first equation for calculating pixel p2' in equation (22) or the sixth equation for calculating pixel q2'. Furthermore, the Y1 minus 2 symmetric filter of equation (32) is a filter in which pixel p2 in the equation for calculating pixels p1' and p0' in equation (22) is replaced with pixel p1, and pixel q2 in the equation for calculating pixels q1' and q0' in equation (22) is replaced with pixel q1 on the horizontal boundary side. Therefore, the tap coefficient of pixel p1 in the equation for calculating pixel p1' in equation (31) is changed from 1 to 2 (=1+1) in equation (22), and the tap coefficient of pixel p1 in the equation for calculating pixel p0' in equation (31) is changed from 2 to 3 (=1+2) in equation (22). Furthermore, the tap coefficient of pixel q1 in the equation for calculating pixel q0' in equation (31) is changed from 2 to 3 (=2+1) in equation (22), and the tap coefficient of pixel q1 in the equation for calculating pixel q1' in equation (31) is changed from 1 to 2 (=1+1) in equation (22).

[0318] From the above, when a Y1 minus 2 symmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines of pixels p0 to p1 of the block Bp above the horizontal boundary.

[0319] Here, when a Y1 minus 2 symmetric filter is adopted as the filter NC1, the pixels used are pixels p0 to p1 of the block Bp and pixels q0 to q1 of the block Bq, which are symmetric with respect to the horizontal boundary.

[0320] <When using a filter based on filter OF as filter NC1>

[0321] FIG. 18 is a diagram showing the filter NC1 and the pixels required when a filter based on the filter OF is used as the filter NC1.

[0322] The filters NC1 based on the filter OF include an OF normal filter, an OF minus 1 asymmetric filter, an OF minus 1 symmetric filter, an OF minus 2 asymmetric filter, and an OF minus 2 symmetric filter.

[0323] When the OF normal filter is used as the filter NC1, the filter application decision is performed in the same manner as the Y1 normal filter, that is, in the same manner as the luminance component application decision of equation (20).

[0324] Therefore, the application determination pixels for the color difference components used for filter application determination are the six pixels p0 to p2 and q0 to q2, which are the same as those for the Y1 normal filter.

[0325] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter application determination.

[0326] When an OF normal filter is used as the filter NC1, the filter type is determined by determining whether or not the formula (21) is satisfied, similarly to the Y1 normal filter.

[0327] Therefore, the type determination pixels for the color difference components used for filter type determination are the same eight pixels p0 to p3 and q0 to q3 as in the Y1 normal filter.

[0328] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for four pixel lines of pixels p0 to p3 of the block Bp above the horizontal boundary for filter type determination.

[0329] As the OF normal filter, a strong filter for the luminance component of HEVC, that is, a filter obtained by changing the tap coefficient of the Y1 normal filter of equation (22) or the clip parameters A and B of the clip function Clip3(A, B, C), can be used. As the OF normal filter, for example, a filter of equation (33) can be used.

[0330] p2′ = Clip3( p2 - tC, p2 + tC, ( 3*p3 + 2*p2 + p1 + p0 + q0 + 4 ) >> 3 ) p1′ = Clip3( p1 - tC, p1 + tC, ( 2*p3 + p2 + 2*p1 + p0 + q0 + q1 + 4 ) >> 3 ) p0′ = Clip3( p0 - tC, p0 + tC, ( p3 + p2 + p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 ) q0′ = Clip3( q0 - tC, q0 + tC, ( p2 + p1 + p0 + 2 * q0 + q1 + q2 + q3 + 4 ) >> 3 ) q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + q2 + 2*q3 + 4 ) >> 3 ) q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 2*q2 + 3*q3 + 4 ) >> 3 ) ···(33)

[0331] The OF normal filter of equation (33) is a strong filter for the luminance component of HEVC, that is, a filter obtained by changing the tap coefficient of the Y1 normal filter of equation (22) and the clip parameters A and B of the clip function Clip3(A, B, C). For example, in the OF normal filter of equation (33), 2tC constituting the clip parameter of equation (22) is changed to tC.

[0332] The filter constituent pixels of the chrominance components used in the filtering process of the OF normal filter of equation (33) are eight pixels p0 to p3 and q0 to q3. The target pixels of the chrominance components that are the subject of the filtering process are six pixels p0 to p2 and q0 to q2.

[0333] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs to have a storage capacity for four pixel lines of pixels p0 to p3 of the block Bp above the horizontal boundary for filtering by the OF normal filter.

[0334] From the above, when an OF normal filter is used as the filter NC1, the line buffer 330 needs to have a storage capacity for four pixel lines of pixels p0 to p3 in the block Bp above the horizontal boundary.

[0335] When an OF minus 1 asymmetric filter is used as the filter NC1, the filter application determination is performed in the same manner as in the case of, for example, an OF normal filter.

[0336] Therefore, the application determination pixels for the color difference components used for filter application determination are the six pixels p0 to p2 and q0 to q2, which are the same as those for the OF normal filter.

[0337] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter application determination.

[0338] When an OF minus 1 asymmetric filter is used as the filter NC1, the filter type is determined by determining whether or not the formula (23) is satisfied, similarly to the Y1 minus 1 asymmetric filter.

[0339] Therefore, the type determination pixels for the color difference components used to determine the type of the OF minus 1 asymmetric filter are the seven pixels p0 to p2 and q0 to q3, similar to the Y1 minus 1 asymmetric filter.

[0340] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter type determination.

[0341] The OF minus 1 asymmetric filter can be a filter in which pixel p3 of the OF normal filter in equation (33) is replaced with pixel p2 on the horizontal boundary side. In this case, the OF minus 1 asymmetric filter is expressed by equation (34).

[0342] p2′ = Clip3( p2 - tC, p2 + tC, ( 5*p2 + p1 + p0 + q0 + 4 ) >> 3 ) p1′ = Clip3( p1 - tC, p1 + tC, ( 3*p2 + 2*p1 + p0 + q0 + q1 + 4 ) >> 3 ) p0′ = Clip3( p0 - tC, p0 + tC, ( 2*p2 + p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 ) q0′ = Clip3( q0 - tC, q0 + tC, ( p2 + p1 + p0 + 2 * q0 + q1 + q2 + q3 + 4 ) >> 3 ) q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + q2 + 2*q3 + 4 ) >> 3 ) q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 2*q2 + 3*q3 + 4 ) >> 3 ) ···(34)

[0343] The filter constituent pixels of the chrominance components used in the filtering process of the OF minus 1 asymmetric filter of equation (34) are seven pixels p0 to p2 and q0 to q3. The target pixels of the chrominance components that are the subject of the filtering process are six pixels p0 to p2 and q0 to q2.

[0344] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filtering by the OF minus 1 asymmetric filter.

[0345] The OF minus 1 asymmetric filter of equation (34) is a filter in which pixel p3 in the equation for calculating pixels p2' to p0' in equation (33) is replaced with pixel p2 on the horizontal boundary side. Therefore, the tap coefficient of pixel p2 in the equation for calculating pixel p2' is changed from 2 to 5 (=3+2) in equation (33). Furthermore, the tap coefficient of pixel p2 in the equation for calculating pixel p1' is changed from 1 to 3 (=2+1) in equation (33), and the tap coefficient of pixel p2 in the equation for calculating pixel p2' is changed from 1 to 2 (=1+1) in equation (33).

[0346] From the above, when an OF minus 1 asymmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity equivalent to three pixel lines of pixels p0 to p2 of the block Bp above the horizontal boundary.

[0347] Here, when an OF minus 1 asymmetric filter is adopted as the filter NC1, the pixels used are pixels p0 to p2 of the block Bp and pixels q0 to q3 of the block Bq, which are asymmetric with respect to the horizontal boundary.

[0348] When an OF minus 1 symmetric filter is used as the filter NC1, the filter application determination is performed in the same manner as in the case of, for example, an OF normal filter.

[0349] Therefore, the application determination pixels for the color difference components used for filter application determination are the six pixels p0 to p2 and q0 to q2, which are the same as those for the OF normal filter.

[0350] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter application determination.

[0351] When an OF minus 1 symmetric filter is used as the filter NC1, the filter type is determined by determining whether or not the formula (25) is satisfied, similarly to the 1 minus 1 symmetric filter.

[0352] Therefore, the type determination pixels for the color difference components used to determine the filter type of the OF minus 1 symmetric filter are the six pixels p0 to p2 and q0 to q2, similar to the Y1 minus 1 symmetric filter.

[0353] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter type determination.

[0354] The OF minus 1 symmetric filter can be a filter in which pixel p3 of the OF normal filter in equation (33) is replaced with pixel p2 on the horizontal boundary side, and pixel q3 is replaced with pixel q2 on the horizontal boundary side. In this case, the OF minus 1 symmetric filter is expressed by equation (35).

[0355] p2′ = Clip3( p2 - tC, p2 + tC, ( 5*p2 + p1 + p0 + q0 + 4 ) >> 3 ) p1′ = Clip3( p1 - tC, p1 + tC, ( 3*p2 + 2*p1 + p0 + q0 + q1 + 4 ) >> 3 ) p0′ = Clip3( p0 - tC, p0 + tC, ( 2*p2 + p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 ) q0′ = Clip3( q0 - tC, q0 + tC, ( p2 + p1 + p0 + 2 * q0 + q1 + 2*q2 + 4 ) >> 3 ) q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + 3*q2 + 4 ) >> 3 ) q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 5*q2 + 4 ) >> 3 ) ···(35)

[0356] The filter constituent pixels of the chrominance components used in the filtering process of the OF minus 1 symmetric filter of equation (35) are six pixels p0 to p2 and q0 to q2. The target pixels of the chrominance components that are the subject of the filtering process are six pixels p0 to p2 and q0 to q2.

[0357] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filtering by the OF minus 1 symmetric filter.

[0358] The OF minus 1 symmetric filter of equation (35) is a filter in which pixel p3 in the equation for calculating pixels p2' to p0' in equation (33) is replaced with pixel p2 on the horizontal boundary side, and therefore the tap coefficient of pixel p2 in the equation for calculating pixel p2' is changed from 2 in equation (33) to 5 (=3+2). Furthermore, the tap coefficient of pixel p2 in the equation for calculating pixel p1' is changed from 1 in equation (33) to 3 (=2+1), and the tap coefficient of pixel p2 in the equation for calculating pixel p0' is changed from 1 in equation (33) to 2 (=1+1).

[0359] Furthermore, the OF minus 1 symmetric filter of equation (35) is a filter in which pixel q3 in the equation for calculating pixels q0' to q2' in equation (33) is replaced with pixel q2 on the horizontal boundary side, and therefore the tap coefficient of pixel q2 in the equation for calculating pixel q0' is changed from 1 to 2 (=1+1) in equation (33). Furthermore, the tap coefficient of pixel q2 in the equation for calculating pixel q1' is changed from 1 to 3 (=1+2) in equation (33), and the tap coefficient of pixel q2 in the equation for calculating pixel q2' is changed from 2 to 5 (=2+3) in equation (33).

[0360] From the above, when an OF minus 1 symmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity for three pixel lines of pixels p0 to p2 of the block Bp above the horizontal boundary.

[0361] Here, when an OF minus 1 symmetric filter is adopted as the filter NC1, the pixels used are pixels p0 to p2 of the block Bp and pixels q0 to q2 of the block Bq, which are symmetric with respect to the horizontal boundary.

[0362] When the OF minus 2 asymmetric filter is used as the filter NC1, the filter application determination is made by determining whether or not the formula (27) is satisfied, similarly to the Y1 minus 2 asymmetric filter.

[0363] Therefore, the application determination pixels for the color difference components used in the filter application determination for the OF minus 2 asymmetric filter are five pixels, ie, pixels p0 to p1 and q0 to q2, similarly to the Y1 minus 2 asymmetric filter.

[0364] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter application determination.

[0365] When an OF minus 2 asymmetric filter is used as the filter NC1, the filter type is determined by determining whether or not the formula (28) is satisfied, similarly to the Y1 minus 2 asymmetric filter.

[0366] Therefore, the type determination pixels for the color difference components used to determine the filter type of the OF minus 2 asymmetric filter are the six pixels p0 to p1 and q0 to q3, similar to the Y1 minus 2 asymmetric filter.

[0367] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter type determination.

[0368] The OF minus 2 asymmetric filter can be a filter in which pixels p3 and p2 of the OF normal filter in equation (33) are replaced with pixel p1 on the horizontal boundary side. In this case, the OF minus 2 asymmetric filter is expressed by equation (36).

[0369] p1′ = Clip3( p1 - tC, p1 + tC, ( 5*p1 + p0 + q0 + q1 + 4 ) >> 3 ) p0′ = Clip3( p0 - tC, p0 + tC, ( 3*p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 ) q0′ = Clip3( q0 - tC, q0 + tC, ( 2*p1 + p0 + 2 * q0 + q1 + q2 + q3 + 4 ) >> 3 ) q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + q2 + 2*q3 + 4 ) >> 3 ) q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 2*q2 + 3*q3 + 4 ) >> 3 ) ···(36)

[0370] The filter constituent pixels of the chrominance components used in the filtering process of the OF minus 2 asymmetric filter of equation (33) are six pixels p0 to p1 and q0 to q3. The target pixels of the chrominance components that are the subject of the filtering process are five pixels p0 to p1 and q0 to q2.

[0371] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, pixels p0 to p1, of the block Bp above the horizontal boundary for filtering by the OF minus 2 asymmetric filter.

[0372] The OF minus 2 asymmetric filter of equation (36) is an equation that does not have an equation for calculating pixel p2' of equation (33).

[0373] Furthermore, the OF minus 2 asymmetric filter of equation (36) is a filter in which pixels p2 and p3 in the equation for calculating pixels p1' and p0' and q0' in equation (33) are replaced with pixel p1 on the horizontal boundary side. Therefore, the tap coefficient of pixel p1 in the equation for calculating pixel p1' in equation (36) is changed from 2 to 5 (=2+1+2) in equation (33). Also, the tap coefficient of pixel p1 in the equation for calculating pixel p0' in equation (36) is changed from 1 to 3 (=1+1+1) in equation (33), and the tap coefficient of pixel p1 in the equation for calculating pixel q0' in equation (36) is changed from 1 to 2 (=1+1) in equation (33).

[0374] From the above, when an OF minus 2 asymmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines of pixels p0 to p1 of the block Bp above the horizontal boundary.

[0375] Here, when an OF minus 2 asymmetric filter is adopted as filter NC1, the pixels used are pixels p0 to p1 of block Bp and pixels q0 to q3 of block Bq, which are asymmetric with respect to the horizontal boundary (the OF minus 2 asymmetric filter is an asymmetric filter).

[0376] When an OF minus 2 symmetric filter is used as the filter NC1, the filter application decision is made by determining whether or not the formula (30) is satisfied, similarly to the Y1 minus 2 symmetric filter.

[0377] Therefore, the application determination pixels for the color difference components used in the filter application determination for the OF minus 2 symmetric filter are the four pixels p0 to p1 and q0 to q1, similarly to the Y1 minus 2 symmetric filter.

[0378] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter application determination.

[0379] When an OF minus 2 symmetric filter is used as the filter NC1, the filter type is determined by determining whether or not the formula (31) is satisfied, similarly to the Y1 minus 2 symmetric filter.

[0380] Therefore, the type determination pixels for the color difference components used to determine the filter type of the OF minus 2 symmetric filter are the four pixels p0 to p1 and q0 to q1, similar to the Y1 minus 2 symmetric filter.

[0381] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter type determination.

[0382] The OF minus 2 symmetric filter can be a filter in which pixels p3 and p2 of the OF normal filter in equation (33) are replaced with pixel p1 on the horizontal boundary side, and pixels q2 and q3 are replaced with pixel q1 on the horizontal boundary side. In this case, the OF minus 2 symmetric filter is expressed by equation (37).

[0383] p1′ = Clip3( p1 - tC, p1 + tC, ( 5*p1 + p0 + q0 + q1 + 4 ) >> 3 ) p0′ = Clip3( p0 - tC, p0 + tC, ( 3*p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 ) q0′ = Clip3( q0 - tC, q0 + tC, ( 2*p1 + p0 + 2 * q0 + 3*q1 + 4 ) >> 3 ) q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 5*q1 + 4 ) >> 3 ) ···(37)

[0384] The filter constituent pixels of the chrominance components used in the filtering process of the OF minus 2 symmetric filter of equation (37) are four pixels p0 to p1 and q0 to q1. The target pixels of the chrominance components that are the subject of the filtering process are four pixels p0 to p1 and q0 to q1.

[0385] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, pixels p0 to p1, of the block Bp above the horizontal boundary for filtering by the OF minus 2 symmetric filter.

[0386] The OF minus 2 symmetric filter of equation (37) is an equation that does not have the first equation for calculating pixel p2' and the sixth equation for calculating pixel q2' in equation (33).

[0387] Furthermore, the OF minus 2 symmetric filter of equation (37) is a filter in which pixels p2 and p3 in the equation for calculating pixels p1' and p0' and q0' in equation (33) are replaced with pixel p1 on the horizontal boundary side. Therefore, the tap coefficient of pixel p1 in the equation for calculating pixel p1' in equation (37) is changed from 2 to 5 (=2+1+2) in equation (33). Also, the tap coefficient of pixel p1 in the equation for calculating pixel p0' in equation (37) is changed from 1 to 3 (=1+1+1) in equation (33), and the tap coefficient of pixel p1 in the equation for calculating pixel q0' in equation (37) is changed from 1 to 2 (=1+1) in equation (33).

[0388] Furthermore, the OF minus 2 symmetric filter of equation (37) is a filter in which pixels q2 and q3 in the equation for calculating pixels q0' and q1' in equation (33) are replaced with pixel q1 on the horizontal boundary side. Therefore, the tap coefficient of pixel q1 in the equation for calculating pixel q0' in equation (37) is changed from 1 to 3 (=1+1+1) in equation (33). Furthermore, the tap coefficient of pixel q1 in the equation for calculating pixel q1' in equation (37) is changed from 1 to 3 (=1+1+1) in equation (33), and the tap coefficient of pixel p1 in the equation for calculating pixel q0' in equation (37) is changed from 2 to 5 (=2+1+2) in equation (33).

[0389] From the above, when an OF minus 2 symmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines of pixels p0 to p1 of the block Bp above the horizontal boundary.

[0390] Here, when an OF minus 2 symmetric filter is adopted as filter NC1, the pixels used are pixels p0 to p1 of block Bp and pixels q0 to q1 of block Bq, which are symmetric with respect to the horizontal boundary (the OF minus 2 symmetric filter is a symmetric filter).

[0391] <When using a filter based on filter Y2 as filter NC1>

[0392] FIG. 19 is a diagram showing the filter NC1 and the pixels required when a filter based on the filter Y2 is used as the filter NC1.

[0393] The filter NC1 based on the filter Y2 includes a Y2 normal filter, a Y2 minus 1 asymmetric filter, and a Y2 minus 1 symmetric filter.

[0394] When the Y2 normal filter is used as the filter NC1, the filter application decision is performed in the same manner as the Y1 normal filter, that is, in the same manner as the luminance component application decision of equation (20).

[0395] Therefore, the application determination pixels for the color difference components used for filter application determination are the six pixels p0 to p2 and q0 to q2, which are the same as those for the Y1 normal filter.

[0396] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter application determination.

[0397] When a Y2 normal filter is adopted as the filter NC1, the filter type determination is made in accordance with the standard weak determination that determines whether or not to apply a weak filter for the luminance component of HEVC.

[0398] Here, in the standard week determination, it is determined whether or not the formula (38), and further, if necessary, the formulas (39) and (40) are satisfied.

[0399] | (9*(q0,i - p0,i)-3*(q1,i - p1,i)+8) >> 4 | < tc*10 ···(38) |p2,0 - 2*p1,0 + p0,0|+ |p2,3 - 2*p1,3 + p0,3| < (beta+(beta>>1)) >> 3 ···(39) |q2,0 - 2*q1,0 + q0,0|+ |q2,3 - 2*q1,3 + q0,3| < (beta+(beta>>1)) >> 3 ···(40)

[0400] In the standard weak determination, first, a weak on / off determination is performed for each line (column) of blocks Bp and Bq to determine whether or not formula (38) is satisfied. Then, if there is a line in the weak on / off determination that satisfies formula (38), a p1 determination to determine whether or not formula (39) is satisfied and a q1 determination to determine whether or not formula (40) is satisfied are performed using the first and fourth lines.

[0401] In the standard weak determination, when the p1 determination of the formula (39) is satisfied, the pixel p of the block Bp of the line that satisfies the weak on / off determination of the formula (38) is i Similarly, when the q1 determination in equation (40) is satisfied, pixel q of block Bq of the line that satisfies the weak on / off determination in equation (38) is set as a pixel that can be the target pixel. i is set as a pixel that can be the target pixel.

[0402] The filter type determination for the Y2 normal filter is performed in accordance with the standard weak filter determination for determining whether to apply a weak filter for the HEVC luminance component.

[0403] That is, in determining the filter type of the Y2 normal filter, it is determined whether or not the equation (41), and further, if necessary, the equations (39) and (40) are satisfied.

[0404] | (9*(q0 - p0)-3*(q1 - p1)+8) >> 4 | < tc*10 ···(41) |p2 - 2*p1 + p0| < (beta+(beta>>1)) >> 4 ···(42) |q2 - 2*q1 + q0| < (beta+(beta>>1)) >> 4 ···(43)

[0405] In the filter type determination of the Y2 normal filter, first, a weak on / off determination is performed on each of two lines (columns) of pixels of the chrominance components of the blocks Bp and Bq to determine whether or not Equation (41) is satisfied. Then, if there is a line that satisfies Equation (41) in the weak on / off determination, a p1 determination is performed on one of the two lines of pixels of the chrominance components of the blocks Bp and Bq (for example, the first line) to determine whether or not Equation (42) is satisfied, and a q1 determination is performed to determine whether or not Equation (43) is satisfied.

[0406] In the filter type determination of the Y2 normal filter, when the p1 determination of equation (42) is satisfied, pixel p of block Bp of the line (column) that satisfies the weak on / off determination of equation (41) is i Similarly, when the q1 determination in equation (43) is satisfied, pixel q of block Bq of the line that satisfies the weak on / off determination in equation (41) is set as a pixel that can be the target pixel. i is set as a pixel that can be the target pixel.

[0407] In the filter NC2 based on the filter Y2, only pixels that have been set as pixels that can become target pixels become target pixels, and filter pixels are obtained.

[0408] From equations (41) to (43), the type determination pixels for the color difference components used to determine the filter type of the Y2 normal filter are six pixels, pixels p0 to p2 and q0 to q2.

[0409] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filter type determination.

[0410] The Y2 normal filter can be a weak filter for the luminance component of HEVC. In this case, the Y2 normal filter is expressed by equation (44).

[0411] D = Clip3( -tC, tC, D ), D = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4 p0′ = Clip1C( p0 + D ) q0′ = Clip1C( q0 - D ) Dp = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( p2 + p0 + 1 ) >> 1 ) - p1 + D ) >> 1 ) p1′ = Clip1C( p1 + Dp ) Dq = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( q2 + q0 + 1 ) >> 1 ) - q1 - D ) >> 1 ) q1′ = Clip1C( q1 + Dq ) ···(44)

[0412] Here, if the number of bits of the color difference component is represented as BC, Clip1C(A) is given by Clip1C(A)=Clip(0, (1 << BC)−1, A).

[0413] The filter constituent pixels of the chrominance component used in the filtering process of the Y2 normal filter of equation (44) are six pixels p0 to p2 and q0 to q2. The target pixels of the chrominance component that are the subject of the filtering process are four pixels p0 to p1 and q0 to q1.

[0414] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs to have a storage capacity for three pixel lines, pixels p0 to p2, of the block Bp above the horizontal boundary for filtering by the Y2 normal filter.

[0415] From the above, when a Y2 normal filter is used as the filter NC1, the line buffer 330 needs to have a storage capacity equivalent to three pixel lines of pixels p0 to p2 in the block Bp above the horizontal boundary.

[0416] When the Y2 minus 1 asymmetric filter is used as the filter NC1, the filter application determination is made by determining whether or not the formula (27) is satisfied, similarly to the Y1 minus 2 asymmetric filter.

[0417] Therefore, the application determination pixels for the color difference components used in the filter application determination for the Y2 minus 1 asymmetric filter are the five pixels p0 to p1 and q0 to q2, similarly to the Y1 minus 2 asymmetric filter.

[0418] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter application determination.

[0419] When a Y2 minus 1 asymmetric filter is used as the filter NC1, the filter type determination determines whether or not the following equations (45) to (47) are satisfied, in which pixel p2 in equations (41) to (43) for determining the filter type of the Y2 normal filter is replaced with pixel p1 on the horizontal boundary side.

[0420] | (9*(q0 - p0)-3*(q1 - p1)+8) >> 4 | < tc*10 ···(45) |p1 - 2*p1 + p0| < (beta+(beta>>1)) >> 4 = |p0 - p1| < (beta+(beta>>1)) >> 4 ···(46) |q2 - 2*q1 + q0| < (beta+(beta>>1)) >> 4 ···(47)

[0421] Equation (45) represents the weak on / off determination, and equations (46) and (47) represent the p1 determination and q1 determination.

[0422] The filter type determination for the Y2 minus 1 asymmetric filter is the same as that for the Y2 normal filter, except that equations (45) to (47) are used instead of equations (41) to (43), and therefore a description thereof will be omitted.

[0423] From equations (45) to (47), the type determination pixels for the chrominance components used to determine the filter type of the Y2 minus 1 asymmetric filter are five pixels, ie, pixels p0 to p1 and q0 to q2.

[0424] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter type determination.

[0425] As the Y2 minus 1 asymmetric filter, a filter expressed by equation (48) in which pixel p2 in equation (44) of the Y2 normal filter is replaced with pixel p1 on the horizontal boundary side can be used.

[0426] D = Clip3( -tC, tC, D ), D = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4 p0′ = Clip1C( p0 + D ) q0′ = Clip1C( q0 - D ) Dp = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( p1 + p0 + 1 ) >> 1 ) - p1 + D ) >> 1 ) p1′ = Clip1C( p1 + Dp ) Dq = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( q2 + q0 + 1 ) >> 1 ) - q1 - D ) >> 1 ) q1′ = Clip1C( q1 + Dq ) ···(48)

[0427] The filter constituent pixels of the chrominance components used in the filtering process of the Y2 minus 1 asymmetric filter of equation (48) are five pixels p0 to p1 and q0 to q2. The target pixels of the chrominance components that are the subject of the filtering process are four pixels p0 to p1 and q0 to q1.

[0428] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, pixels p0 to p1, of the block Bp above the horizontal boundary for filtering by the Y2 minus 1 asymmetric filter.

[0429] From the above, when a Y2 minus 1 asymmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines of pixels p0 to p1 of the block Bp above the horizontal boundary.

[0430] Here, when a Y2 minus 1 asymmetric filter is adopted as the filter NC1, the pixels used are pixels p0 to p1 of the block Bp and pixels q0 to q2 of the block Bq, which are asymmetric with respect to the horizontal boundary.

[0431] When a Y2 minus 1 symmetric filter is adopted as the filter NC1, the filter application decision is made by determining whether or not the formula (30) is satisfied, similarly to the Y1 minus 2 symmetric filter.

[0432] Therefore, the application determination pixels for the color difference components used in the filter application determination for the Y2 minus 1 symmetric filter are the four pixels p0 to p1 and q0 to q1, similar to the Y1 minus 2 symmetric filter.

[0433] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter application determination.

[0434] When a Y2 minus 1 symmetric filter is used as the filter NC1, the filter type determination involves determining whether or not the following equations (49) to (51) are satisfied, in which pixel p2 in equations (41) to (43) for determining the filter type of the Y2 normal filter is replaced with pixel p1 on the horizontal boundary side and pixel q2 is replaced with pixel q1 on the horizontal boundary side.

[0435] | (9*(q0 - p0)-3*(q1 - p1)+8) >> 4 | < tc*10 ···(49) |p1 - 2*p1 + p0| < (beta+(beta>>1)) >> 4 = |p0 - p1| < (beta+(beta>>1)) >> 4 ···(50) |q1 - 2*q1 + q0| < (beta+(beta>>1)) >> 4 = |q0 - q1| < (beta+(beta>>1)) >> 4 ···(51)

[0436] Equation (49) represents the weak on / off determination, and equations (50) and (51) represent the p1 determination and q1 determination.

[0437] The filter type determination for the Y2 minus 1 symmetric filter is the same as that for the Y2 normal filter, except that equations (49) to (51) are used instead of equations (41) to (43), and therefore a description thereof will be omitted.

[0438] From equations (49) to (51), the type determination pixels for the chrominance components used to determine the filter type of the Y2 minus 1 symmetric filter are the four pixels p0 to p1 and q0 to q1.

[0439] As a result, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filter type determination.

[0440] As the Y2 minus 1 symmetric filter, a filter expressed by equation (52) can be used, in which pixel p2 in equation (44) of the Y2 normal filter is replaced with pixel p1 on the horizontal boundary side, and pixel q2 is replaced with pixel q1 on the horizontal boundary side.

[0441] D = Clip3( -tC, tC, D ), D = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4 p0′ = Clip1C( p0 + D ) q0′ = Clip1C( q0 - D ) Dp = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( p1 + p0 + 1 ) >> 1 ) - p1 + D ) >> 1 ) p1′ = Clip1C( p1 + Dp ) Dq = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( q1 + q0 + 1 ) >> 1 ) - q1 - D ) >> 1 ) q1′ = Clip1C( q1 + Dq ) ···(52)

[0442] The filter constituent pixels of the chrominance components used in the filtering process of the Y2 minus 1 symmetric filter of equation (52) are four pixels p0 to p1 and q0 to q1. The target pixels of the chrominance components that are the subject of the filtering process are four pixels p0 to p1 and q0 to q1.

[0443] Therefore, when the horizontal boundary is a CTU boundary, the line buffer 330 needs a storage capacity for two pixel lines, from pixels p0 to p1, of the block Bp above the horizontal boundary for filtering by the Y2 minus 1 symmetric filter.

[0444] From the above, when a Y2 minus 1 symmetric filter is used as the filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines of pixels p0 to p1 of the block Bp above the horizontal boundary.

[0445] Here, when a Y2 minus 1 symmetric filter is adopted as the filter NC1, the pixels used are pixels p0 to p1 of the block Bp and pixels q0 to q1 of the block Bq, which are symmetric with respect to the horizontal boundary.

[0446] As described above, according to the present technology, it is possible to provide various filters as DFs.

[0447] <How to apply filter NC1>

[0448] FIG. 20 is a diagram showing an example of a method for applying the filter NC1 to a decoded image.

[0449] Here, the term "filter characteristics" comprehensively defines filter characteristics such as filter strength, filter constituent pixels, filter coefficient values, filter tap length, and filter shape (symmetric / asymmetric), and refers to filter characteristics resulting from filter parameters used in filtering or encoding parameters related to the filter characteristics (such as quantization parameters). Changing filter characteristics refers to changing the filter characteristics themselves, and includes changing filter strength, filter constituent pixels, filter coefficient values, filter tap length, and filter shape (symmetric / asymmetric). Changing filter characteristics also includes changing filter parameters or encoding parameters related to the filter characteristics (such as quantization parameters). Reducing filter characteristics (Reduction) includes functionally reducing filter characteristics such as filter strength, filter constituent pixels, filter coefficient values, filter tap length, and filter shape (symmetric / asymmetric) (taking into account implementation costs such as line buffer capacity). Furthermore, reducing filter characteristics (Reduction) also includes functionally changing filter parameters or encoding parameters (such as quantization parameters) related to the filter characteristics (taking into account implementation costs such as line buffer capacity). Furthermore, a filter whose filter characteristics have been reduced will be called a reduction filter (or reduced filter).

[0450] Figure 20 shows the filter NC1 applied to the CTU boundary, the filter NC1 applied to the internal boundary, the difference in image quality between the CTU boundary part and the internal boundary part when filter NC1 is applied, and the memory capacity (line buffer size) required for the line buffer 330.

[0451] 17, the Y1 minus 1 asymmetric filter, the Y1 minus 1 symmetric filter, the Y1 minus 2 asymmetric filter, and the Y1 minus 2 symmetric filter have fewer filter constituent pixels than the Y1 normal filter, and are therefore filters with reduced (reduced) filter characteristics (filter strength). Therefore, the Y1 minus 1 asymmetric filter, the Y1 minus 1 symmetric filter, the Y1 minus 2 asymmetric filter, and the Y1 minus 2 symmetric filter can be said to be reduction filters with reduced filter characteristics compared to the Y1 normal filter.

[0452] 18 have fewer filter constituent pixels than the OF normal filter, and therefore are filters with reduced (reduced) filter characteristics (filter strength). Therefore, the OF minus 1 asymmetric filter, OF minus 1 symmetric filter, OF minus 2 asymmetric filter, and OF minus 2 symmetric filter can be said to be reduction filters with reduced filter characteristics compared to the OF normal filter.

[0453] 19 have fewer filter constituent pixels than the Y2 normal filter, and therefore are filters with reduced (reduced) filter characteristics (filter strength). Therefore, the Y2 minus 1 asymmetric filter and the Y2 minus 1 symmetric filter can be said to be reduction filters with reduced filter characteristics compared to the Y2 normal filter.

[0454] Here, the Y1 normal filter, the OF normal filter, and the Y2 normal filter are referred to as normal filters. The reduction filter has weaker filter strength than the normal filter, but has fewer filter constituent pixels (on the p side), so the storage capacity required for the line buffer 330 is smaller than that of the normal filter.

[0455] Incidentally, it is required to apply the filter NC1 with a strong filter strength (filter characteristics) to block boundaries of large block sizes, that is, CTU boundaries and internal boundaries, in order to sufficiently remove block noise.

[0456] However, if a normal filter with a high filter strength is used as the filter NC1, the normal filter has many filter constituent pixels (on the p side), and therefore the storage capacity required for the line buffer 330 becomes large at the CTU boundary.

[0457] Therefore, a reduction filter with fewer filter constituent pixels (on the p side) can be used as the filter NC1 for the CTU boundaries. In this case, it is possible to reduce the storage capacity required for the line buffer 330. From the third row onwards in FIG. 20, a reduction filter is applied to the CTU boundaries in order to reduce the storage capacity required for the line buffer 330.

[0458] On the other hand, applying the filter NC1 to the internal boundary does not affect the storage capacity required for the line buffer 330, so a normal filter with a high filter strength can be applied to the internal boundary, even though it has many filter constituent pixels. In this case, block noise can be sufficiently removed.

[0459] Note that when a reduction filter is applied to a CTU boundary and a normal filter is applied to an internal boundary, a difference in image quality may occur between the CTU boundary and the internal boundary due to the difference in filter strength between the reduction filter and the normal filter.

[0460] Therefore, the same reduction filter as that for the CTU boundary can be applied to the internal boundary, which can prevent a difference in image quality between the CTU boundary and the internal boundary.

[0461] Which of the filters described with reference to FIGS. 17 to 19 is applied (selected) to the block boundary as the filter NC1 is controlled by the control unit 340 (FIG. 11).

[0462] For example, if you want to apply a strong DF on average within a single screen, you can apply DFs with different filter designs to the CTU boundary and the internal boundary, i.e., apply a reduction filter to the CTU boundary and a normal filter to the internal boundary.

[0463] Furthermore, if you want to apply the DF evenly within one screen, you can apply a DF with the same filter design to the CTU boundary and the internal boundary, that is, you can apply a reduction filter to the CTU boundary and the internal boundary.

[0464] FIG. 21 is a diagram showing another example of the method of applying the filter NC1 to the decoded image.

[0465] 21, for example, in the first row, the filter C1 (FIG. 14) of the HEVC chrominance component is applied to the p side of the CTU boundary as the filter NC1, and the Y1 normal filter is applied to the q side. Furthermore, the Y1 normal filter is applied to the p side and q side of the inner boundary as the filter NC1.

[0466] As described above, in this technology, for pixels of color difference components located near block boundaries of a decoded image, a Y1 minus 1 asymmetric filter or the like (reduced second luminance filter) in which the filter characteristics of a strong filter or the like (second luminance filter) for the luminance component, which has a stronger filter strength than a weak filter or the like (first luminance filter) for the luminance component, or a Y2 minus 1 asymmetric filter or the like (reduced first luminance filter) in which the filter characteristics of the first luminance filter have been reduced can be applied as a filter NC1 (second chrominance filter) with a stronger filter strength than filter NC2 (first chrominance filter).

[0467] In addition, in the present technology, the reduction second luminance filter can be a reduction second luminance vertical filter that performs reduction second luminance filtering in the vertical direction, and the second chrominance filter can be a second chrominance vertical filter that performs second chrominance filtering in the vertical direction.

[0468] Furthermore, in the present technology, the reduction second luminance vertical filter may be a filter whose filter coefficient or clip parameter is changed with respect to the second luminance filter.

[0469] Furthermore, in this technology, the reduced second luminance vertical filter can be an asymmetric filter in which the filter characteristics of the filter applied to the pixels located at the top with respect to the block boundary are reduced.

[0470] Furthermore, in the present technology, the second luminance filter can be a strong filter for luminance components that conforms to the H265 / HEVC standard.

[0471] Furthermore, in the present technology, the reduction first luminance filter can be a reduction first luminance vertical filter that performs reduction first luminance filtering in the vertical direction.

[0472] In addition, in the present technology, the control unit 340 can control the DF300 (filter unit) to apply the reduced second luminance vertical filter as the second chrominance vertical filter to the block boundaries of the coding tree blocks, which are blocks of a fixed size in sequence units.

[0473] Furthermore, in the present technology, the control unit 340 can control the filter unit to apply the reduced second luminance vertical filter as the second chrominance vertical filter to the block boundary of the block divided from the coding tree block.

[0474] Furthermore, in the present technology, the control unit 340 can control the filter unit to apply a second luminance vertical filter, which performs a second luminance filter in the vertical direction, as a second chrominance vertical filter for block boundaries of blocks divided from a coding tree block.

[0475] <Description of the computer to which this technology is applied>

[0476] Next, the above-described series of processes can be performed by hardware or software. When the series of processes is performed by software, the programs that make up the software are installed on a general-purpose computer or the like.

[0477] FIG. 22 is a block diagram showing an example of the configuration of an embodiment of a computer in which a program for executing the above-described series of processes is installed.

[0478] The program can be recorded in advance on the hard disk 905 or ROM 903 as a recording medium built into the computer.

[0479] Alternatively, the program can be stored (recorded) on a removable recording medium 911 driven by the drive 909. Such a removable recording medium 911 can be provided as a so-called package software. Here, examples of the removable recording medium 911 include a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, and a semiconductor memory.

[0480] The program can be installed into the computer from the removable recording medium 911 as described above, or can be downloaded to the computer via a communication network or a broadcasting network and installed on the built-in hard disk 905. That is, the program can be transferred to the computer wirelessly from a download site via an artificial satellite for digital satellite broadcasting, or transferred to the computer by wire via a network such as a LAN (Local Area Network) or the Internet.

[0481] The computer includes a CPU (Central Processing Unit) 902 , to which an input / output interface 910 is connected via a bus 901 .

[0482] When a user inputs a command via an input / output interface 910 by operating an input unit 907, the CPU 902 executes a program stored in a read-only memory (ROM) 903 in accordance with the command. Alternatively, the CPU 902 loads a program stored on a hard disk 905 into a random access memory (RAM) 904 and executes the program.

[0483] As a result, the CPU 902 performs processing according to the flowchart described above or processing performed by the configuration of the block diagram described above. Then, the CPU 902 outputs the processing results from the output unit 906 via the input / output interface 910, or transmits them from the communication unit 908, or further records them on the hard disk 905, as necessary.

[0484] The input unit 907 is made up of a keyboard, a mouse, a microphone, etc. The output unit 906 is made up of an LCD (Liquid Crystal Display), a speaker, etc.

[0485] In this specification, the processing performed by a computer according to a program does not necessarily have to be performed in chronological order according to the order described in the flowchart. In other words, the processing performed by a computer according to a program also includes processing that is executed in parallel or individually (for example, parallel processing or processing by objects).

[0486] The program may be processed by a single computer (processor), or may be distributed among multiple computers. Furthermore, the program may be transferred to and executed on a remote computer.

[0487] Furthermore, in this specification, a system refers to a collection of multiple components (devices, modules (components), etc.), regardless of whether all the components are contained in the same housing. Therefore, multiple devices housed in separate housings and connected via a network, and a single device housed in a single housing with multiple modules, are both systems. <5. Conclusion> As described above, according to the embodiments of the present disclosure, it is possible to more appropriately apply a deblocking filter to the chrominance components of a decoded image.

[0488] Although the preferred embodiments of the present disclosure have been described in detail above with reference to the accompanying drawings, the technical scope of the present disclosure is not limited to such examples. It is clear that a person skilled in the art of the present disclosure can conceive of various modified or altered examples within the scope of the technical idea described in the claims, and it is understood that these also naturally fall within the technical scope of the present disclosure.

[0489] (Color difference related parameters) For example, in the above embodiment, an example was described in which a flag indicating whether or not a significant coefficient of a chrominance component in each TU is used as the chrominance-related parameter. However, the present technology is not limited to such an example. For example, the transform coefficients of the chrominance components themselves may be included in the chrominance-related parameters. In such a case, the boundary strength calculation unit 261 may calculate bS by determining whether or not a significant coefficient of a chrominance component in each TU is present from the transform coefficients of the chrominance components. Also, in relation to the above embodiment, FIG. 4 shows an example in which the value of bS varies depending not only on whether or not condition B1-Y, B1-U, or B1-V is satisfied, but also on whether or not condition B2 is satisfied. However, as in an alternative example shown in FIG. 14, for example, in order to suppress an increase in processing cost, the determination of whether or not condition B2 is satisfied for both the chrominance components U and V may be omitted.

[0490] (Large block threshold) In the above embodiment, an example has been described in which the threshold value used in large block determination is 16, but the present technology is not limited to this example, and the threshold value may be set to 8 or 32. Furthermore, in the case of the YUV444 format, a threshold value equal to or greater than the threshold value used in the YUV420 format may be used in large block determination.

[0491] (Strong filter) In the above embodiment, an example has been described in which the strong filters expressed by equations (15) to (19) are applied to the chrominance components, but the strong filters applied in the present technology are not limited to such an example. The strong filter applied to the chrominance components may be any filter having a stronger filter strength than the weak filter. For example, the strong filter applied to the chrominance components in Non-Patent Document 1 (a strong filter applied to the luminance component in HEVC) may be applied to the chrominance components in the present technology.

[0492] (Target of application of this technology) This technology can be applied to any image encoding / decoding method. In other words, as long as it does not contradict the above-mentioned technology, the specifications of various processes related to image encoding / decoding, such as transform (inverse transform), quantization (inverse quantization), encoding (decoding), and prediction, are arbitrary and are not limited to the above-mentioned examples. Furthermore, some of these processes may be omitted as long as they do not contradict the present technology described above.

[0493] (block) Furthermore, in this specification, a "block" (not a block indicating a processing unit) used in the description as a partial region of an image (picture) or a processing unit refers to any partial region within a picture, and its size, shape, characteristics, etc. are not limited unless otherwise specified. For example, a "block" is intended to include any partial region (processing unit) such as a TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), SCU (Smallest Coding Unit), CU (Coding Unit), LCU (Largest Coding Unit), CTB (Coding Tree Block), CTU (Coding Tree Unit), transform block, sub-block, macroblock, tile, or slice described in the above-mentioned reference documents REF1 to REF3.

[0494] (processing unit) The data units in which the various pieces of information described above are set and the data units targeted by the various processes are each arbitrary and are not limited to the above examples. For example, these pieces of information and processes may be set for each TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), sub-block, block, tile, slice, picture, sequence, or component, or may target data of these data units. Of course, these data units may be set for each piece of information or process, and the data units for all pieces of information and processes do not need to be unified. Note that the storage location of these pieces of information is arbitrary and may be stored in the headers or parameter sets of the above-mentioned data units, or may be stored in multiple locations.

[0495] In the above embodiment, deblocking filter processing is performed on the chrominance components in units of two lines, but the present technology is not limited to this example. For example, in the case of the YUV444 format, deblocking filter processing may be performed on the chrominance components in units of four lines. In such a case, the application necessity determination unit 265 may make a determination regarding the above-described condition C3 by referring to the first and third lines.

[0496] (control information) Control information related to the present technology described above may be transmitted from the encoding side to the decoding side. For example, control information (e.g., enabled_flag) that controls whether or not to permit (or prohibit) application of the present technology described above may be transmitted. Also, for example, control information indicating targets to which the present technology described above is to be applied (or targets to which it is not to be applied) may be transmitted. For example, control information specifying a block size (upper or lower limit, or both), frame, component, or layer to which the present technology is to be applied (or permitted or prohibited to be applied) may be transmitted.

[0497] (Block size information) When specifying the size of a block to which the present technology is applied, the block size may be specified not only directly but also indirectly. For example, the block size may be specified using identification information that identifies the size. Furthermore, for example, the block size may be specified by a ratio or difference from the size of a reference block (e.g., LCU, SCU, etc.). For example, when transmitting information specifying the block size as a syntax element, the information indirectly specifying the size as described above may be used as the information. By doing so, the amount of information can be reduced, and coding efficiency may be improved. Furthermore, the specification of the block size also includes specification of a range of block sizes (e.g., specification of a range of allowable block sizes, etc.).

[0498] (others) In this specification, a "flag" refers to information for identifying multiple states, and includes not only information used to identify two states, true (1) or false (0), but also information capable of identifying three or more states. Therefore, the value that this "flag" can take may be, for example, two values, 1 / 0, or three or more values. In other words, the number of bits constituting this "flag" is arbitrary, and may be one bit or multiple bits. Furthermore, identification information (including flags) can be assumed not only to include the identification information in the bit stream, but also to include difference information of the identification information relative to certain reference information in the bit stream. Therefore, in this specification, "flag" and "identification information" include not only the information itself, but also difference information relative to the reference information.

[0499] Furthermore, various types of information (metadata, etc.) related to the coded data (bitstream) may be transmitted or recorded in any form as long as they are associated with the coded data. Here, the term "associate" means, for example, making one piece of data available (linked) when processing the other piece of data. In other words, mutually associated data may be combined into one piece of data or may be individual pieces of data. For example, information associated with coded data (image) may be transmitted over a transmission path separate from that of the coded data (image). Also, for example, information associated with coded data (image) may be recorded on a recording medium separate from that of the coded data (image) (or on a different recording area of ​​the same recording medium). Note that this "association" may refer to only a portion of the data, rather than the entire data. For example, an image and information corresponding to that image may be associated with each other in any unit, such as multiple frames, one frame, or a portion of a frame.

[0500] In this specification, terms such as "composite," "multiplex," "add," "integrate," "include," "store," "embed," "insert," and the like refer to combining multiple items into one, such as combining encoded data and metadata into one piece of data, and refer to one method of "associating" as described above.

[0501] The present technology can also be implemented as any configuration that constitutes an apparatus or a system, for example, a processor as a system LSI (Large Scale Integration), a module using multiple processors, a unit using multiple modules, a set in which other functions are added to a unit, or the like (i.e., a configuration of a part of an apparatus).

[0502] It should be noted that the embodiments of the present technology are not limited to the above-described embodiments, and various modifications are possible within the scope of the present technology.

[0503] For example, this technology can be configured as cloud computing, in which a single function is shared and processed collaboratively by multiple devices via a network.

[0504] Furthermore, each step described in the above flowchart can be executed by one device, or can be shared and executed by multiple devices.

[0505] Furthermore, when one step includes multiple processes, the multiple processes included in that one step can be executed by one device or can be shared and executed by multiple devices.

[0506] Furthermore, the effects described in this specification are merely examples and are not limiting, and other effects may also be present. [Explanation of symbols]

[0507] 10 image encoding device, 16 lossless encoding unit, 26 deblocking filter (DF), 60 image decoding device, 62 lossless decoding unit, 261 boundary strength calculation unit, 263 judgment unit, 265 application necessity judgment unit, 267 filter strength judgment unit, 269 filtering unit, 300 DF, 310 judgment unit, 311 application necessity judgment unit, 312 filter strength judgment unit, 320 filtering unit, 330 line buffer, 340 control unit, 901 bus, 902 CPU, 903 ROM, 904 RAM, 905 hard disk, 906 output unit, 907 input unit, 908 communication unit, 909 drive, 910 input / output interface, 911 removable recording medium

Claims

1. a decoding unit that decodes the bitstream to generate a decoded image; a filter unit that applies a third chrominance filter, which has a stronger filter strength than a first chrominance filter that is applied to pixels of the chrominance components located near block boundaries of the decoded image decoded by the decoding unit and has a filter design different from that of a second chrominance filter that is the filter that is applied to pixels of the chrominance components located near block boundaries inside a CTU (Coding Tree Unit), to pixels of the chrominance components located near block boundaries of the CTU; An image processing device comprising:

2. The filter unit performs the filter operation of the third chrominance filter on pixels of the chrominance components located near the block boundary of the CTU by replacing pixels of the chrominance components located near the block boundary of the CTU with padding in the filter operation of the second chrominance filter. The image processing device according to claim 1 .

3. The filter unit performs the filter operation of the third chrominance filter on pixels of the chrominance components located near the block boundary of the CTU by replacing the pixels of the chrominance components farthest from the block boundary of the CTU by padding in the filter operation of the second chrominance filter. The image processing device according to claim 2 .

4. The third chrominance filter has a filter design that is different from that of the second chrominance filter in filter operation or filter tap length. The image processing device according to claim 1 .

5. The third chrominance filter has a filter design in which filter operation or filter taps are asymmetric with respect to the second chrominance filter. The image processing device according to claim 4 .

6. decoding the bitstream to generate a decoded image; applying a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of the chrominance components located near block boundaries of the decoded image and has a filter design different from that of a second chrominance filter, which is the filter applied to pixels of the chrominance components located near block boundaries inside a CTU (Coding Tree Unit), to pixels of the chrominance components located near block boundaries of the CTU; An image processing method comprising:

7. In the filter operation of the second chrominance filter, pixels of the chrominance components located near the block boundary of the CTU are replaced by padding, thereby performing the filter operation of the third chrominance filter on pixels of the chrominance components located near the block boundary of the CTU. The image processing method according to claim 6.

8. In the filter operation of the second chrominance filter, the pixel of the chrominance component farthest from the block boundary of the CTU is replaced by padding, and thereby the filter operation of the third chrominance filter is performed on the pixel of the chrominance component located near the block boundary of the CTU. The image processing method according to claim 7.

9. The third chrominance filter has a filter design that is different from that of the second chrominance filter in filter operation or filter tap length. The image processing method according to claim 6.

10. The third chrominance filter has a filter design in which filter operation or filter taps are asymmetric with respect to the second chrominance filter. The image processing method according to claim 9.

11. decoding the bitstream to generate a decoded image; applying a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of the chrominance components located near block boundaries of the decoded image and has a filter design different from that of a second chrominance filter, which is the filter applied to pixels of the chrominance components located near block boundaries inside a CTU (Coding Tree Unit), to pixels of the chrominance components located near block boundaries of the CTU; A program for executing a process including:

12. decoding the bitstream to generate a decoded image; applying a third chrominance filter, which has a stronger filter strength than a first chrominance filter applied to pixels of the chrominance components located near block boundaries of the decoded image and has a filter design different from that of a second chrominance filter, which is the filter applied to pixels of the chrominance components located near block boundaries inside a CTU (Coding Tree Unit), to pixels of the chrominance components located near block boundaries of the CTU; A recording medium on which a program for executing a process including the above is recorded.

Citation Information

Patent Citations

  • In loop chroma deblocking filter

    US20150350687A1

  • Adaptive filtering in video coding

    WO2015006662A2