Image processing device and image processing method
Patent Information
- Application Number
- JP2024210860
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-11-02
- Filing Date
- 2024-12-04
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2039-10-18
Smart Images

Figure 2025026507000001_ABST
Abstract
Description
[Technical field]
[0001] The present technology relates to an image processing device and an image processing method, and in particular to an image processing device and an image processing method that are capable of providing, for example, various DFs (deblocking filters). [Background technology]
[0002] In H.265 / HEVC, one of the standard image coding standards, a deblocking filter is applied to the block boundaries of the decoded image to suppress deterioration of image quality 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, a weak filter and a strong filter, but there is only one type of deblocking filter that can be applied to the chrominance component, a weak filter.
[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 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 be applied to the chrominance component as well. [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 DF, there is a request to provide a variety of DF.
[0007] The present technology has been developed in light of these circumstances, and makes it possible to provide a variety of DFs. [Means for solving the problem]
[0008] A first image processing device of the present technology is an image processing device including a decoding unit that decodes a bit stream to generate a decoded image, and a filter unit that applies a reduced second luminance filter in which the filter characteristics of a second luminance filter having a stronger filter strength than a first luminance filter or a reduced first luminance filter in which the filter characteristics of the first luminance filter have been reduced to pixels of a chrominance component located in the vicinity of a block boundary of the decoded image decoded by the decoding unit, to a block boundary of a CTU as a second chrominance filter having a stronger filter strength than a first chrominance filter.
[0009] A first image processing method of the present technology is an image processing method that includes decoding a bitstream to generate a decoded image, and applying a reduced second luminance filter in which the filter characteristics of a second luminance filter having a stronger filter strength than a first luminance filter or a reduced first luminance filter in which the filter characteristics of the first luminance filter have been reduced to pixels of a chrominance component located in the vicinity of a block boundary of the decoded image decoded by the decoding unit, to the block boundary of a CTU as a second chrominance filter having a stronger filter strength than a first chrominance filter.
[0010] In a first image processing device and an image processing method of the present technology, a bitstream is decoded to generate a decoded image. Then, for pixels of a chrominance component located near a block boundary of the decoded image, a reduced second luminance filter having a filter strength stronger than that of a first luminance filter, or a reduced first luminance filter having a filter strength stronger than that of the first luminance filter, is applied to the block boundary of a CTU as a second chrominance filter having a filter strength stronger than that of the first chrominance filter.
[0011] 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 description of the drawings]
[0012] [Figure 1] 1 is a table for explaining calculation of bS in HEVC. [Diagram 2] 1 is a table for explaining the calculation of bS in Non-Patent Document 1. [Diagram 3] FIG. 11 is an explanatory diagram showing an example of pixels of color difference components (U components, V components) in two adjacent blocks Bp and Bq that are separated by a vertical block boundary BB. [Figure 4] 1 is a table for explaining calculation of bS in one embodiment of the present disclosure. [Diagram 5]FIG. 2 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 the embodiment. [Figure 6] 11 is a block diagram showing an example of a configuration of an image decoding device 60 which is one aspect of the image processing device according to the embodiment. FIG. [Figure 7] 2 is a block diagram showing an example of a detailed configuration of a deblocking filter 26 according to the embodiment. FIG. [Figure 8] 13 is a table showing an example of bS calculated by the boundary strength calculation section 261. [Figure 9] 13 is a flowchart showing an example of a process flow by the deblocking filter 26 according to the embodiment. [Figure 10] 13 is a flowchart illustrating the flow of a boundary strength calculation process executed by a boundary strength calculation unit 261. [Figure 11] FIG. 2 is a block diagram showing a configuration example of a DF 300 as a new DF. [Figure 12] FIG. 13 is a diagram showing an example of the structure of a decoded image processed by the DF 300. [Figure 13] 11 is a flowchart illustrating the processing of DF300. [Figure 14] FIG. 1 is a diagram explaining the DF of HEVC. [Figure 15] FIG. 13 is a diagram for explaining a new DF. [Figure 16] 11A and 11B are diagrams illustrating examples of pixels of color difference components on a block boundary. [Figure 17] FIG. 13 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter Y1 is adopted as the filter NC1. [Figure 18] FIG. 13 is a diagram showing a filter NC1 and necessary pixels when a filter based on a filter OF is used as the filter NC1. [Figure 19] FIG. 13 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter Y2 is adopted as the filter NC1. [Figure 20]FIG. 13 is a diagram showing an example of how to apply the filter NC1 to a decoded image. [Figure 21] FIG. 13 is a diagram showing an example of how to apply the filter NC1 to a decoded image. [Figure 22] FIG. 1 is a block diagram showing an example of the configuration of a computer according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] 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 are omitted.
[0014] In addition, the scope of disclosure in this specification is not limited to the contents of the examples, and the contents of the following reference documents REF1 to REF3, which are publicly known at the time of filing, are also incorporated by reference into this specification. In other words, the contents described in the following reference documents REF1 to REF3 are also the basis for determining the support requirements. For example, even if the Quad-Tree Block Structure described in reference document REF2 and the QTBT (Quad Tree Plus Binary Tree) Block Structure described in reference document REF3 are not directly defined in the detailed description of the invention, they are within the scope of this disclosure and meet the support requirements of the claims. Similarly, for example, technical terms such as parsing, syntax, and semantics are also within the scope of this disclosure and meet 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
[0015] In the following, unless otherwise specified, a signal in YUV420 format will be used as an example, and the luminance component may be expressed as the Y component, and the chrominance components as the U component and V component. However, the technology described below can be similarly applied to signals in other formats, such as the YUV444 format and the YUV422 format. The expression of the luminance component and the chrominance component differs depending on the target signal, and the technology described below can be similarly applied to a signal in which the luminance component and the chrominance component are expressed in YCbCr, for example.
[0016] Additionally, the following terms used herein are defined as follows: The chrominance-related parameters refer to parameters related to chrominance in general. For example, the chrominance-related parameters may include information on the transformation coefficients of the chrominance components, such as transformation coefficients of the chrominance components included in each TU (Transform Unit) and flags indicating the presence or absence of significant coefficients (non-zero transformation coefficients) of the chrominance components in each TU. However, the chrominance-related parameters are not limited to such 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. In addition, 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 may be information indicating either that a deblocking filter should be applied or that it does not need to be applied. Large block determination means determining whether a block to be determined is a large block or not. In this specification, the block to be determined may be a block that sandwiches a block boundary, as described later. Furthermore, large block determination may be performed by comparing the size of the block (block size) with a predetermined threshold value. Cases in which large block determination is performed and details of large block determination will be described later.
[0017] <1. Overview> [1-1. Existing methods]
[0018] The process of a deblocking filter in an existing image encoding method such as HEVC includes a process of determining whether or not application is necessary, a process of determining a filter strength, and a filtering process (a process of applying a filter). In the following, the process of an existing deblocking filter will be described using an HEVC deblocking filter as an example. Note that in the following, the deblocking filter for the chrominance component of a decoded image (including an image locally decoded during encoding) will be mainly described, and a description of the deblocking filter for the luminance component of a decoded image will be omitted as appropriate.
[0019] As a process for the deblocking filter, first, a process for determining whether or not to apply the deblocking filter is performed. The process for determining whether or not to apply the deblocking filter to a block boundary of a decoded image is performed. In HEVC, a block boundary is identified based on the block structure of the Quad-Tree Block Structure described in Reference REF2. Specifically, among edges of an 8×8 pixel block (sample grid), which is the smallest block unit, an edge that satisfies the condition that it is at least either a TU (Transform Unit) boundary or a PU (Prediction Unit) boundary is identified as a block boundary in HEVC.
[0020] The process of determining whether or not to apply the feature 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-mentioned lines correspond to rows perpendicular to the vertical boundary. Also, if the block boundary is a horizontal boundary, the above-mentioned lines correspond to columns perpendicular to the horizontal boundary.
[0021] 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 (fulfilled or not) of condition A, which is a condition related to intra prediction, condition B1, which is a condition related to a significant coefficient of a Y component, and condition B2, which is a condition related to a motion vector (MV) and a reference picture. Referring to FIG. 1, when condition A is true, bS is set to 2. When condition A is false and at least one of condition B1 and condition B2 is true, bS is set to 1. When condition A, condition B1, and condition B2 are all false, bS is set to 0. Note that condition A, condition B1, and condition B2 shown in FIG. 1 are the following conditions.
[0022] Condition A: The coding mode of at least one of the coding units (CUs) that includes pixels of the topmost line among the lines for which bS is calculated and that sandwiches a block boundary is an intra prediction mode. Condition B1: The block boundary is a TU boundary, and at least one of the two TUs that contain the pixel of the top line of the lines for which bS is calculated and sandwich the block boundary has a significant coefficient of the Y component. Condition B2: Between two CUs including the pixel of the topmost line among the lines to be calculated for bS and sandwiching 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.
[0023] Furthermore, in HEVC, a deblocking filter may be applied to the luminance component (Y component) of the decoded image for block boundaries where 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 the decoded image may differ depending on whether or not Condition B1 and Condition B2 are satisfied.
[0024] In addition, in HEVC, a strong filter with a high filter strength and a weak filter with a low filter strength are prepared as deblocking filters for the luminance component of the decoded image. When bS is 1 or more, the process related to the deblocking filter for the luminance component of the decoded image is performed by a further application necessity determination process based on a further condition, followed by a filter strength determination process and a filtering process. Details of these processes are described in the above reference REF2, and the description here is omitted.
[0025] On the other hand, a deblocking filter for 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.
[0026] In addition, in HEVC, the only deblocking filter that can be applied to the chrominance component of the decoded image is a weak filter. Therefore, the filter strength determination process is not required for the chrominance component of the decoded image, and when bS is 2, a weak filter is applied to the chrominance component of the decoded image.
[0027] Incidentally, as described in the above reference REF3, in block division by the QTBT block structure in VVC, a block of a larger size may be selected than in block division by the quad-tree block structure in HEVC. When the size of a block in a flat area (an area in which pixel values change little) is large, block distortion is likely to occur. Therefore, in VVC, in which a block of a larger size may be selected, if a deblocking filter that can be applied to the chrominance component of a decoded image is only a weak filter as in HEVC, there is a risk that significant block distortion will remain in the chrominance component. In view of this situation, it is desired to improve the deblocking filter for the chrominance component of a decoded image.
[0028] 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 be applied to the chrominance component as well. 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.
[0029] 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 the determination of whether or not it is necessary 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.
[0030] In the following, the application necessity determination process, filter strength determination process, and filtering process of the deblocking filter that can be applied to the chrominance component of the decoded image in Non-Patent Document 1 will be described with reference to Fig. 3. Fig. 3 is an explanatory diagram showing an example of pixels of chrominance components (U component, V component) in two blocks Bp and Bq adjacent to each other across a vertical block boundary BB. Note that a vertical boundary is used as an example for the description, but the matters described here can be similarly applied to horizontal boundaries as well. Also, Fig. 3 shows an example in which blocks Bp and Bq are 4x4 in the chrominance component, but the matters described here can be similarly applied to blocks of other sizes.
[0031] In the example of FIG. 3, the pixels of the chrominance components in the block Bp are p i,j i is the column index, and j is the row index. The column indexes i are numbered 0, 1, 2, 3 (from left to right in the figure) starting from the column closest to the block boundary BB. The row indexes j are numbered 0, 1, 2, 3 (from top to bottom). On the other hand, the color difference 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.
[0032] 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, such processes are performed for every two lines in the color difference components, and in the example shown in Fig. 3, for example, a determination is made for lines L11 and L12 and a determination is made for lines L21 and L22 separately. Note that the determination for each line is performed using the pixels of the line to be determined. Below, the application necessity determination process, the filter strength determination process, and the filtering process will be described using lines L11 and L12 as an example.
[0033] First, in the application necessity determination process, it is determined in order whether or not the following condition C91 and condition C92 are true.
[0034] -Condition C91 :(bS==2||bS==1&&(block_width>16&&block_height>16)) -Condition C92:d <beta
[0035] In the above condition C91, block_width and block_height are the horizontal and vertical sizes, respectively, of a block (eg, a CU) that overlaps a block boundary that is the subject of the determination, as shown in FIG.
[0036] 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 as a parameter in the slice header. The variable d in the above condition C92 is calculated by the following formulas (1) to (7).
[0037] 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)
[0038] The above condition C92 is similar to the condition used in the process of determining whether or not to apply a deblocking filter applied to the luminance component in HEVC (hereinafter referred to as the condition for the luminance component), except that the lines referenced are different. In the condition for the luminance component, the pixels of the first line and the pixels of 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 luminance component, so in the above condition C92, the pixels of the first line, line L11, and the pixels of the second line, line L12, are referenced, and a determination is made every two lines.
[0039] 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.
[0040] 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.
[0041] -Condition C93:(block_width>16&&block_height>16)
[0042] Note that 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 subject of the determination, similar to block_width and block_height in condition C91.
[0043] 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.
[0044] The strong filter applied to the chrominance component in Non-Patent Document 1 is similar to the strong filter applied to the luminance component in HEVC, and is expressed by the following equations (8) to (13).
[0045] 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)
[0046] In the above formulas (8) to (13), p i, and q k is the pixel value of the chrominance component before the deblocking filter is applied. 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 indexes in the above-mentioned blocks Bp and Bq, respectively, and the row indexes are omitted in equations (8) to (13). 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.
[0047] 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.
[0048] Thus far, a description has been given of 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.
[0049] However, as described with reference to Fig. 2, the condition B1 used in calculating 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 need to apply a deblocking filter to the chrominance component is determined according to a condition based on information on the luminance component, there is a risk that the deblocking filter will not be applied appropriately even though blocking distortion has occurred, and the blocking distortion will remain.
[0050] 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 size and the vertical size of the block on 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 a square but also a non-square rectangle. Block distortion tends to occur more easily depending on the size in the direction perpendicular to the block boundary than the size in the same direction as the block boundary. Therefore, depending on the shape of the block, there is a risk that the application necessity determination process in Non-Patent Document 1 will not apply the deblocking filter appropriately, and block distortion will remain.
[0051] In addition, the strong filter in Non-Patent Document 1 is the same as the strong filter applied in HEVC. On the other hand, as described above, in VVC, a block of a larger size than that of 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 the block distortion may not be sufficiently reduced.
[0052] [1-2. Overview of an embodiment of the present disclosure] Therefore, the present disclosure has been created by focusing on the above-mentioned circumstances. An image processing device according to an embodiment of the present disclosure performs an application necessity determination process for determining whether or not a deblocking filter needs to be applied to the chrominance component 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.
[0053] Fig. 4 is a table for explaining the calculation of bS 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.
[0054] Referring to FIG. 4, when condition A is true, bS is set to 16. When condition A is false and condition B2 is true, bS is set to 1. When 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. When 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 of calculating bS according to this embodiment will be described in more detail later.
[0055] 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 judgment, instead of the presence or absence of a significant coefficient of the Y component in condition B1-Y, and are expressed as follows: Note that the truth or falsity of the following conditions B1-U and B1-V can be judged 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.
[0056] Condition B1-U: The block boundary is a TU boundary, and at least one of the two TUs that contain the pixel of 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 of the top line of the bS calculation target line and sandwich the block boundary has a significant coefficient of the V component.
[0057] In this embodiment, the necessity of applying a deblocking filter to the chrominance component of the decoded image is determined based on bS calculated using the above-mentioned chrominance-related conditions B1-U and B1-V. With this configuration, it is possible to more appropriately apply a deblocking filter to the chrominance component.
[0058] In addition, in this embodiment, as described later, the necessity of applying a deblocking filter to the chrominance components of the decoded image is determined based on the size in the direction perpendicular to the block boundary. With this configuration, it is possible to more appropriately apply the deblocking filter even when the shape of the block is a rectangle that is not a square.
[0059] Furthermore, in this embodiment, as 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. In order to more appropriately apply such a strong filter, the filter strength is determined in this embodiment using a method different from the filter strength determination process in Non-Patent Document 1. This configuration can further reduce block distortion.
[0060] The outline of one embodiment of the present disclosure has been described above. In the following, the configuration and operation of the present embodiment for achieving the above-mentioned effects will be sequentially described in detail.
[0061] 2. Overview of the device First, a schematic configuration of an example of an apparatus 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 apparatus and an image decoding apparatus.
[0062] [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.
[0063] Referring to FIG. 5, the image encoding device 10 includes a rearrangement 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.
[0064] The sorting buffer 11 sorts a series of images (original images) to be coded according to a GOP (Group of Pictures) structure for coding processing. The sorting buffer 11 outputs the sorted images to the control unit 12, the subtraction unit 13, the intra prediction unit 40, and the inter prediction unit 50.
[0065] The control unit 12 divides an image into blocks as processing units based on a block size of the processing unit that is externally or pre-specified. The block division by the control unit 12 may form CUs of a Quad-Tree Block Structure or a Quad Tree Plus Binary Tree (QTBT) 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.
[0066] 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.
[0067] The orthogonal transform unit 14 performs an orthogonal transform process 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 transforms the prediction error input from the subtraction unit 13 from an image signal in the spatial domain into a transform coefficient in the frequency domain for each transform block. Then, the orthogonal transform unit 14 outputs the transform coefficient to the quantization unit 15.
[0068] 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, and 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.
[0069] 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 bit rate of the quantized data input to the lossless encoding unit 16 by switching the quantization scale based on the rate control signal from the rate control unit 18.
[0070] 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 the 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.
[0071] 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 the presence or absence of a significant coefficient of the U component in each TU input from the orthogonal transform unit 14 as described above, and a flag indicating the presence or absence of 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.
[0072] 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.
[0073] The rate control unit 18 monitors the free space of the accumulation buffer 17. Then, the rate control unit 18 generates a rate control signal according to the free space of the accumulation buffer 17, and outputs the generated rate control signal to the quantization unit 15. For example, when the free space of 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 of 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.
[0074] The inverse quantization unit 21, the inverse orthogonal transformation unit 22, and the addition unit 23 constitute a local decoder. The local decoder serves to locally decode a decoded image from the encoded data.
[0075] The inverse quantization unit 21 inverse quantizes the quantized data with the same quantization parameters as those used by the quantization unit 15 to restore the transform coefficients. Then, the inverse quantization unit 21 outputs the restored transform coefficients to the inverse orthogonal transform unit 22.
[0076] 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 unit .
[0077] The adder 23 generates a decoded image (reconstructed image) by adding the restored prediction error input from the inverse orthogonal transform unit 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.
[0078] The in-loop filter 24 applies a series of in-loop filters for the purpose of improving the image quality of the decoded image. For example, as described in "2.5. In-loop filtering" of the reference document REF3, four in-loop filters may be applied in the order of 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 above four in-loop filters may be applied in order. However, the in-loop filter 24 is not limited to such a configuration, and which filter is applied among the four in-loop filters and in what order they are applied may be appropriately selected. The deblocking filter 26a will be described in detail later.
[0079] The in-loop filter 24 outputs the decoded image to which the in-loop filter has been applied to the frame memory 30.
[0080] 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 .
[0081] The switch 31 reads out a decoded image before filtering 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 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.
[0082] 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 the 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. For a block for which the 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.
[0083] 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 a generated code amount for each prediction mode candidate included in the search range. Next, the intra prediction unit 40 selects a prediction mode with a minimum cost as an optimal prediction mode. In addition, the intra prediction unit 40 generates a predicted image according to the selected optimal prediction mode. Then, the intra prediction unit 40 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.
[0084] The inter prediction unit 50 executes 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 an amount of generated code for each prediction mode candidate included in a certain search range. Next, the inter prediction unit 50 selects a prediction mode with the smallest cost, that is, a prediction mode with the highest compression rate, as an optimal prediction mode. In addition, the inter prediction unit 50 generates a predicted image according to the selected optimal prediction mode. Then, the inter prediction unit 50 outputs information on the inter prediction, the corresponding cost, and the predicted image to the mode setting unit 32.
[0085] [2-2. Image Decoding Device] Next, the 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 transformation unit 64, an addition unit 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.
[0086] The accumulation buffer 61 temporarily accumulates, using a storage medium, the 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).
[0087] The lossless decoding unit 62 decodes the encoded stream input from the accumulation buffer 61 according to the encoding method used at the time of encoding, and generates quantized data. The lossless decoding unit 62 outputs the generated quantized data to the inverse quantization unit 63.
[0088] Furthermore, the lossless decoding unit 62 parses various parameters from the encoded stream. The parameters parsed by the lossless decoding unit 62 may include, for example, information regarding intra prediction and information regarding inter prediction. The lossless decoding unit 62 outputs the information regarding intra prediction to the intra prediction unit 90. Furthermore, the lossless decoding unit 62 outputs the information regarding inter prediction to the inter prediction unit 100.
[0089] 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 the presence or absence of a significant coefficient of the U component in each TU described above, and a flag indicating the presence or absence of a significant coefficient of the V component in each TU.
[0090] 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 to restore the transform coefficients. The inverse quantization unit 63 outputs the restored transform coefficients to the inverse orthogonal transform unit 64.
[0091] 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 unit 65.
[0092] 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.
[0093] The in-loop filter 66 applies a series of in-loop filters for the purpose of improving the image quality of the decoded image. For example, as described in "2.5. In-loop filtering" of the reference document REF3, four in-loop filters may be applied in the order of 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 above four in-loop filters may be applied in order. However, the in-loop filter 66 is not limited to such a configuration, and which filter is applied among the four in-loop filters and in what order they are applied may be appropriately selected. The deblocking filter 26b will be described in detail later.
[0094] The in-loop filter 66 outputs the decoded image to which the in-loop filter has been applied to a sorting buffer 72 and a frame memory 80.
[0095] 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.
[0096] The D / A conversion unit 73 converts the digital format images input from the rearrangement buffer 72 into analog format image signals. Then, the D / A conversion unit 73 outputs the analog image signals to a display (not shown) connected to the image decoding device 60, for example, to display the images.
[0097] 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 .
[0098] 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 the prediction mode information acquired by the lossless decoding unit 62. For example, when an intra prediction mode is specified, the selector 81a outputs a decoded image before filtering supplied from the frame memory 80 as a reference image to the intra prediction unit 90. When an inter prediction mode is specified, the selector 81a outputs a decoded image after filtering to the inter prediction unit 100 as a reference image.
[0099] The selector 81b switches the output source of the predicted image to be supplied to the addition unit 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 addition unit 65. Also, when an inter prediction mode is specified, the selector 81b supplies the predicted image output from the inter prediction unit 100 to the addition unit 65.
[0100] 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.
[0101] The inter prediction unit 100 performs inter prediction processing based on information related to inter prediction input from the lossless decoding unit 62 and a 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.
[0102] <3. Deblocking filter> [3-1. Example of deblocking filter configuration] In this section, 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 will be described. Note that the deblocking filter 26a and the deblocking filter 26b may have a common 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.
[0103] As described above, the deblocking filter 26 according to the present embodiment determines whether or not a deblocking filter needs to be applied to the chrominance component of the decoded image based on bS calculated using a chrominance-related parameter related to chrominance. Also, as described above, the deblocking filter 26 according to the present embodiment determines whether or not a deblocking filter needs to be applied to the chrominance component of the decoded image based on the size in the direction perpendicular to the block boundary. Also, as described above, the deblocking filter 26 according to the present embodiment may apply a strong filter having a higher strength (stronger low-pass characteristics) than the strong filter in Non-Patent Document 1 to the chrominance component of the decoded image. Also, 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. Note that, hereinafter, the function of the deblocking filter 26 related to the deblocking filter applied mainly to the chrominance component of the decoded image will be described, and the function of the deblocking filter 26 related to the deblocking filter applied to the luminance component will be omitted as appropriate.
[0104] 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.
[0105] (1) Boundary strength calculation section The boundary strength calculation unit 261 calculates bS (boundary strength) using a chrominance-related parameter related to chrominance for a block boundary of a decoded image. When a YUV420 format signal is processed, the boundary strength calculation unit 261 calculates bS for every four lines in the luminance component of the decoded image, that is, for every two lines in the chrominance component of the decoded image.
[0106] In this embodiment, the chrominance-related parameters used by the boundary strength calculation unit 261 to calculate bS include a flag indicating the presence or absence of a significant coefficient of the U component in each TU, and a flag indicating the presence or absence of a significant coefficient of the V component in each TU. As shown in Fig. 7, the boundary strength calculation unit 261 receives an input of a flag indicating the presence or absence of a significant coefficient of each component (Y component, U component, V component) in each TU from the orthogonal transformation unit 14 or the lossless decoding unit 62.
[0107] The boundary strength calculation unit 261 calculates bS based on the condition A, the condition B1-Y, the condition B1-U, the condition B1-V, and the condition B2 described with reference to FIG. 4. That is, the boundary strength calculation unit 261 calculates bS based on whether or not a significant coefficient of a chrominance component exists in a TU sandwiching a block boundary for which bS is calculated. Furthermore, the boundary strength calculation unit 261 according to the present embodiment can calculate bS by independently determining whether or not a significant coefficient of each of the Y component, the U component, and the V component exists in a TU sandwiching a block boundary for which bS is calculated. With this configuration, bS suitable for the U component and the V component can be calculated, and a deblocking filter can be applied more appropriately than when bS is calculated based on whether or not a significant coefficient of the Y component exists as described with reference to FIG. 2.
[0108] 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 expressed by a plurality of bits. In the example shown in FIG. 8, bS is expressed 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 performed by referring to the bit of bS corresponding to each component to be determined.
[0109] Also, 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, when each condition is true, the bit corresponding to the condition is 1, and when each condition is false, bS is calculated such that the bit corresponding to the condition is 0. Also, in the example shown in FIG. 8, bS is expressed by 5 bits, and the 5th bit of bS corresponds to the condition A related to intra prediction, the 4th bit of bS corresponds to the condition B1-Y related to the significant coefficient of the Y component, the 3rd bit of bS corresponds to the condition B1-U related to the significant coefficient of the U component, the 2nd bit of bS corresponds to the condition B1-V related to the significant coefficient of the V component, and the 1st bit of bS corresponds to the condition B2 related to the MV and reference picture. 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, the 3rd bit, and the 2nd bit of bS corresponding to each component of the Y component, U component, and V component, respectively, may be interchanged.
[0110] (2) Judgment section 7, the determination unit 263 includes an application necessity determination unit 265 that determines whether or not 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, functions of the application necessity determination unit 265 and the filter strength determination unit 267 will be described in order.
[0111] In the following description, the determination of whether or not to apply a deblocking filter to the chrominance components of a decoded image and the filter strength will be mainly described, and the determination of the luminance component will be omitted as appropriate. Also, 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.
[0112] 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.
[0113] 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 such a determination based on the block size may be referred to as a large block determination hereinafter. The application necessity determination unit 265 does not need to always perform a large block determination for all block boundaries, and may determine whether or not to perform a large block determination depending on bS. Note that cases in which a large block determination is performed and details of the large block determination will be described later.
[0114] The application necessity determining unit 265 according to the present embodiment determines whether or not a deblocking filter needs to be applied based on the following determination of condition C1 and determination of condition C2.
[0115] -Condition C1:(bS==16||(Condition C11&&Condition C12)) -Condition C2:d <beta
[0116] The condition C11 in the above condition C1 is a condition for determining whether or not to perform a large block determination, and the condition C12 is a condition related to the large block determination. When bS is 16, that is, when the condition A related to intra prediction is satisfied, the condition C1 may be determined to be true without the need to perform a large block determination. Therefore, the condition C11 for determining whether or not to perform a large block determination may be true when bS has a value related to inter prediction. Note that, in this way, by skipping the large block determination and determining the condition C1 to be true when bS is 16, the amount of processing required for the large block determination can be reduced.
[0117] Also, when 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.
[0118] Condition C11 may be true when the condition on 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 judged. For example, condition C11 when the judgment target is the U component may be a condition such as the following condition C11-U, and condition C11 when the judgment target is the V component may be a condition such as the following condition C11-V.
[0119] -Condition C11-U:(bS&0x04||bS&0x01) -Condition C11-V:(bS&0x02||bS&0x01)
[0120] In addition, 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 is 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.
[0121] In addition, the application necessity determination unit 265 may perform a large block determination based on whether or not the size of the blocks sandwiching the 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 16 or less, block noise is not noticeable, so this configuration makes it possible to avoid the application of unnecessary deblocking filters. For example, the condition C12 for the large block determination may be the following condition.
[0122] -Condition C12:(EDGE_VER&&block_width>16)||(EDGE_HOR&&block_height>16)
[0123] 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.
[0124] Moreover, the above condition C2 is the same as the above-mentioned condition C92, and therefore description thereof will be omitted here. Note that the above-mentioned condition C2 is determined when the condition C1 is true, and when the condition C1 is false, the determination of the condition C2 is not performed, and it is determined that the deblocking filter is not 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 the amount of processing is larger than that of the determination of the condition C1. Therefore, by performing the determination of the condition C2 after the condition C1, it is possible to reduce the amount of processing.
[0125] Furthermore, 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 after determining whether or not to apply the deblocking filter based on the conditions C1 and C2 as described above. 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, as described later. Then, the filtering unit 269 described later applies either the weak filter or the strong filter according to the filter strength determined by the filter strength determination unit 267.
[0126] 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 suppress the process of determining the filter strength.
[0127] In addition, the filter strength determination unit 267 determines the filter strength based on the waveform of the color difference component of a pixel located near the 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 following waveform-based condition C3.
[0128] -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)
[0129] 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. i , q k , p i ′, q k ′, beta, and t C Since the above has already been described, the description thereof will be omitted here.
[0130] Conditions C31, C32, and C33 are conditions for making a judgment 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 the judgment of the continuity of the chrominance components of pixels included in each line within a block. Condition C33 is a condition related to the gap (difference) between blocks of the chrominance components of pixels included in each line, and more specifically, is a condition for judging the gap between blocks using pixel values adjacent to the block boundary.
[0131] When condition C31 is true, the chrominance component waveform has high flatness within each block. When condition C32 is true, the chrominance component waveform has high continuity within each block. When condition C32 is true, the chrominance component waveform has large gaps at block boundaries.
[0132] As described above, the condition C3 is determined to be true when all of the above conditions C31, C32, and C33 are true. The filter strength determination unit 267 also determines the above condition C3 for each line. However, as described above, the filter strength is determined in units of two lines. That is, the filter strength is determined such that when the above condition C3 is true for both of two consecutive lines, a strong filter is applied to the two lines, and when the condition C3 is false, a weak filter is applied to the two lines.
[0133] (3) Filtering section The filtering unit 269 applies a deblocking filter to a chrominance component of a pixel located near a block boundary, based on a result of the determination on the necessity of applying a deblocking filter by the application necessity determination unit 265. Also, 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.
[0134] 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 the 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.
[0135] 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 to three pixels on both sides of the block boundary, and apply the strong filter to the chrominance components of the pixels included in the application range, using three pixels on both sides 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 formula (14).
[0136] p0′=Clip3(p 0- w*t C ,p0+w*t C ,((p3+p2+p1+2*p0+q0+q1+q2+4)>>3)) …(14)
[0137] In the above formula (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 a clipping process that clips the value c within the range of a≦c≦b, as described above.
[0138] 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.
[0139] Incidentally, when the center position of the application range of the strong filter 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 to determine 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.
[0140] 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)
[0141] 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)
[0142] Similarly, strong filters with q0 to q3 as the central 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)
[0143] [3-2. Processing flow] An example of the configuration of the deblocking filter 26 according to this embodiment has been described above. Next, a process flow by the deblocking filter 26 according to this embodiment will be described. Fig. 9 is a flowchart showing an example of the process flow by the deblocking filter 26 according to this embodiment. Note that, hereinafter, of the processes by the deblocking filter 26, processes related to the features of this embodiment will be described, and descriptions of other processes will be omitted as appropriate.
[0144] First, the boundary strength calculation unit 261 calculates bS (boundary strength) (S10). Here, the calculation method of 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.
[0145] 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).
[0146] 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 related to the motion vector (MV) and the reference picture, is true (S108). If condition B2 is true (YES in S108), bS is set to 1 (S110).
[0147] 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 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.
[0148] In step S116, 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 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.
[0149] 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 of 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 as is.
[0150] 9, the description of the process flow by the deblocking filter 26 will be continued. 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 process ends.
[0151] 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 process ends.
[0152] 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).
[0153] The above describes the flow of processing by the deblocking filter 26 according to the present embodiment. Note that, in the case of, for example, the YUV420 format, the above-mentioned processing described with reference to Fig. 9 and Fig. 10 may 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.
[0154] <New DF>
[0155] The new DF (deblocking filter) will be explained below.
[0156] As documents related to the present technology, the following documents are included as prior art and are incorporated into this specification by reference.
[0157] [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.
[0158] [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.
[0159] [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.
[0160] [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.
[0161] [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.
[0162] In addition, the scope of the 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 are also 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.
[0163] In VVC, the coding block size is larger (8 times larger than in AVC and twice as large as in HEVC), which results in noticeable degradation of block boundaries.
[0164] For large blocks with a large block size, the HEVC deblocking filter may not be able to completely remove strong block noise.
[0165] In addition, in VVC, in the case of intra, different block divisions can be selected for the luminance component and the chrominance component, and therefore the block size can be optimized for each of the luminance component and the chrominance component. It is known that the coding efficiency can be improved by adopting large blocks for the chrominance component and small blocks with a small block size for the luminance component, and the importance of DF for large blocks of the chrominance component is increasing.
[0166] For large blocks, block noise (block distortion) tends to be large. In order to properly remove large block noise, a strong filter strength, i.e., a DF that blurs the image more, is required.
[0167] 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.
[0168] When a long-tap filter is used as the DF, a line buffer must be prepared for the number of pixels required for filtering at the block boundary, i.e., at 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) of the DF, and four of the eight pixels are pixels of the block above the horizontal boundary, a line buffer that stores four lines (rows) of pixels (pixel values) is required.
[0169] Providing a line buffer with a large capacity in the DF increases costs. If the capacity of the line buffer is reduced with an emphasis on cost, a filter with long taps cannot be adopted as the DF, and the performance of the DF decreases, making it difficult to sufficiently remove block noise.
[0170] Therefore, it is desirable to determine the specifications of the DF by balancing cost and performance. Note that in AVC and HEVC, the filter design for the DF does not take into account the capacity of the line buffer.
[0171] Therefore, in this technology, a new DF (hereinafter, also referred to as new DF) is proposed.
[0172] In the following description, unless otherwise specified, the description focuses on color difference components, and a description of the luminance component is omitted.
[0173] FIG. 11 is a block diagram showing an example of the configuration of the DF 300 as the new DF.
[0174] DF300 can be used as DF26.
[0175] 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.
[0176] 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.
[0177] 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.
[0178] Although not shown in Fig. 7, DF26 in Fig. 7 has a line buffer, similar to DF300. However, the capacity of the line buffer 330 in DF300 and the line buffer in DF26 may differ.
[0179] The determination unit 310 includes an application necessity determination unit 311 and a filter strength determination unit 312 .
[0180] The adaptation necessity determination unit 311 is supplied with bS from the boundary strength calculation unit 261. In addition, the adaptation 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.
[0181] The adaptation necessity determination unit 311 performs the adaptation necessity determination process using bS from the boundary strength calculation unit 261 and further a decoded image from outside the DF 300 or the line buffer 330, similar to the adaptation necessity determination unit 265 in FIG.
[0182] The application necessity determination unit 311 performs a step determination to determine whether or not there is a high possibility that there is a step at the block boundary, depending on bS. For example, when bS is greater than 0 (1 or more), the application necessity determination unit 311 determines that there is a high possibility that there is a step at the block boundary. Then, when the application necessity determination unit 311 determines in the step determination that there is a high possibility that there is 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 composed of the above step determination and filter application determination.
[0183] 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.
[0184] The filter strength determination unit 312 is supplied with the result of the filter application determination from the application necessity determination unit 311, and also receives a decoded image from outside the DF 300 or from the line buffer 330.
[0185] 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 component of the decoded image, that is, filter type determination to determine the filter type of the DF to be applied to the chrominance component 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.
[0186] In the new DF, the filter types of the DF applied to the chrominance components of the decoded image include, for example, 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).
[0187] The filtering unit 320 is supplied with the result of filter type determination from the filter strength determination unit 312, and also with a decoded image from outside the DF 300 or from the line buffer 330.
[0188] 7, the filtering unit 320 performs a filtering process by applying a strong filter or a weak filter indicated by the result of the filter type determination from the filter strength determination unit 312 to the decoded image. That is, the filtering unit 320 performs a calculation as a filtering process of a target pixel, which is a pixel of a chrominance component to be subjected to the filtering process, in the decoded image from outside the DF 300 or the line buffer 330, by using pixels of the chrominance component in the vicinity of the target pixel. Here, the pixels used in the filtering process are also referred to as filter constituent pixels.
[0189] The filtering unit 320 outputs pixels (of color difference components) obtained by filtering the target pixel as filtered pixels (pixels constituting a filtered image after filtering).
[0190] A decoded image is supplied to the line buffer 330 from outside the DF 300. The line buffer 330 appropriately stores pixels of 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 chrominance components for a predetermined number of lines (rows), and when the number of pixels equivalent to the storage capacity has been stored, the new pixels are stored in a manner that overwrites the oldest pixels.
[0191] The control unit 340 controls each block that constitutes the DF 300 .
[0192] In this embodiment, the DF300 processes the decoded image in, for example, a raster scan order. When the decoded image is processed not in the raster scan order, but in the top-to-bottom order, but in the left-to-right order, the horizontal (horizontal) (left-to-right) and vertical (vertical) (up-to-down) described below are reversed (switched).
[0193] FIG. 12 is a diagram showing an example of the structure of a decoded image processed by the DF 300. As shown in FIG.
[0194] The blocks that make up the decoded image include a CTU, and the CTU includes blocks such as PU and TU.
[0195] The intensity calculation unit 261, judgment unit 310, and filtering unit 320 of the DF300 in FIG. 11 can perform processing, for example, in units of CTUs, and in this case have a buffer (not shown) (hereinafter also referred to as an internal buffer) that can store CTUs.
[0196] 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. Also, the CTU that is the subject of processing by DF300 is referred to as a CTU of interest.
[0197] The intensity calculation unit 261, the determination unit 310, and the filtering unit 320 store pixels of lines (rows) included in the CTU of interest in an internal buffer, and process the CTU of interest.
[0198] In the CTU of interest, for a horizontal internal boundary, the pixels of the blocks above and below the internal boundary do not need to be stored in the line buffer 330 because they are stored in the internal buffer.
[0199] 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 there is also no need to store them 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 in a CTU in 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.
[0200] This is why the line buffer 330 is necessary.
[0201] FIG. 13 is a flowchart for explaining the processing of the DF 300 in FIG.
[0202] In the DF300, a line buffer 330 appropriately stores pixels of the color difference components of a decoded image supplied from outside the DF300.
[0203] Then, in step S211, the boundary strength calculation unit 261 calculates bS as described above, supplies it to the application necessity determination unit 311, and the process proceeds to step S212.
[0204] In step S212, the application necessity determining unit 311 performs a step determination to determine whether bS is greater than zero.
[0205] If it is determined in the step determination in 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.
[0206] 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 there is a step at the block boundary, the process proceeds to step S213.
[0207] 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.
[0208] If it is determined in the filter application determination in step S213 that the DF is not to be applied (deemed not to be applied), the process ends.
[0209] 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.
[0210] In step S214, the filter strength determining unit 312 performs a filter type determination, and the process proceeds to step S215.
[0211] In step S215, the filtering unit 320 performs a filtering process by applying the strong filter or the weak filter indicated by the result of the filter type determination in step S214 to the decoded image, and then the process ends.
[0212] FIG. 14 is a diagram illustrating the DF of HEVC.
[0213] The HEVC DF has filters Y1, Y2, and C1.
[0214] The filter Y1 is a strong filter for the luminance component that performs filtering on the luminance component as the target of DF.
[0215] The filter Y2 is a weak filter for the luminance component that performs filtering on the luminance component as the target of DF.
[0216] The filter C1 is a filter for the color difference components that performs filtering on the color difference components as the target of DF.
[0217] In HEVC, the filter that performs filtering on chrominance components as a target of DF is only the filter C1, and there is no distinction between strong filters and weak filters.
[0218] FIG. 15 is a diagram for explaining the new DF.
[0219] The new DF has filters NY1, NY2, NC1, and NC2.
[0220] The filter NY1 is a strong filter for the luminance component that performs filtering on the luminance component as a target of DF. As the filter NY1, for example, the filter Y1 can be used.
[0221] The filter NY2 is a weak filter for the luminance component that performs filtering processing on the luminance component as a target of DF. As the filter NY2, for example, the filter Y2 can be used.
[0222] Filter NC1 is a strong filter (a filter with a stronger filter strength than filter NC2) for chrominance components that performs filtering on chrominance components as the target of DF. Filter NC1 may be, for example, a filter based on filters Y1, Y2, or an original filter OF described below (filters Y1, Y2, or OF itself, or a filter with reduced filter characteristics of filters Y1, Y2, or OF).
[0223] 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.
[0224] FIG. 16 is a diagram showing an example of pixels of color difference components on a block boundary.
[0225] In Fig. 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 depicted as straight vertical lines are horizontal boundaries (horizontal boundaries) of the decoded image.
[0226] The new DF will be described using an example in which the DF is applied to the pixels of adjacent blocks Bp and Bq above and below the horizontal boundary as described above. In this case, the DF applied to the pixels of blocks Bp and Bq is a vertical filter applied in the vertical direction.
[0227] 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 the case where the DF is applied to the pixels of the blocks adjacent to the left and right of the vertical boundary is omitted.
[0228] 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 FIG. 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.
[0229] 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.
[0230] Below, a description will be given of variations of the filter NC1 as a strong filter applied to the color difference component in the new DF.
[0231] <When using a filter based on filter Y1 as filter NC1>
[0232] FIG. 17 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter Y1 is used as the filter NC1.
[0233] 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.
[0234] 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.
[0235] 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 the DF is applied, and if not, it is determined that the DF is not applied.
[0236] 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)
[0237] In addition, in the formula (20), Abs(A) represents the absolute value of A.
[0238] In the luminance component application judgment, it is judged whether or not the formula (20) is satisfied by using the luminance component pixels pi,j and qk,j of the first line of the blocks Bp and Bq and the luminance component pixels pi,j and qk,j of the fourth line of the blocks Bp and Bq. If the formula (20) is satisfied, it is judged that the DF is applied to the pixels of the four lines of the blocks Bp and Bq.
[0239] 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 judgment when the Y1 normal filter is adopted, it is judged whether or not equation (20) is satisfied by using one line of chrominance component pixels out of the two lines of chrominance component pixels. That is, for example, it is judged whether or not equation (20) is satisfied by setting dp3 and dq3 in equation (20) to 0.
[0240] 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, namely, pixels p0 to p2 and q0 to q2.
[0241] 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.
[0242] When the Y1 normal filter is adopted 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.
[0243] |p3 - p0|+|q3 - q0| < (beta>>3) |p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(21)
[0244] 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.
[0245] 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 components, 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 components.
[0246] The pixels of the color difference components 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.
[0247] Therefore, when the horizontal boundary is the CTU boundary, for the 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.
[0248] 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).
[0249] 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)
[0250] Note that Clip3(A, B, C) is a function that represents A when C < A, B when C > B, and C in other cases, respectively.
[0251] 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 through p3 and q0 through q3. The target pixels (pixels for which filter pixels are obtained) of the chrominance components that are the subject of the filtering process are six pixels p0 through p2 and q0 through q2.
[0252] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y1 normal filter, the line buffer 330 needs to have a storage capacity of four pixel lines, from pixels p0 to p3, of the block Bp above the horizontal boundary.
[0253] From the above, when the Y1 normal filter is adopted as the filter NC1, the storage capacity of the line buffer 330 is restricted by the application determination pixels, type determination pixels, and the type determination pixel having the largest number of pixels on the p side among the filter constituent pixels, and the storage capacity of the line buffer 330 requires a capacity for four pixel lines of pixels p0 to p3 of the block Bp above the horizontal boundary.
[0254] When a Y1 minus 1 asymmetric filter is adopted as the filter NC1, the filter application decision is performed in the same manner as in the case of, for example, a Y1 normal filter.
[0255] 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 the Y1 normal filter.
[0256] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0257] 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 (the 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 (only one pixel) on the horizontal boundary side.
[0258] |p2 - p0|+|q3 - q0| < (beta>>3) |p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(twenty three)
[0259] In the filter type determination, if equation (23) is satisfied, it is determined that filter NC1 as a strong filter is applied to the chrominance component, and if equation (23) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the chrominance component.
[0260] The type determination pixels for the chrominance components used in the filter type determination of equation (23) are the seven pixels p0 to p2 and q0 to q3.
[0261] Therefore, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs to have a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0262] As the Y1 minus 1 asymmetric filter, the Y1 normal filter of formula (22), that is, a filter in which pixel p3 of the strong filter of the luminance component of HEVC is replaced with pixel p2 on the horizontal boundary side, can be adopted. In this case, the Y1 minus 1 asymmetric filter is expressed by formula (24).
[0263] 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 ) ···(twenty four)
[0264] 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 to be subjected to the filtering process are six pixels p0 to p2 and q0 to q2.
[0265] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y1 minus 1 asymmetric filter, the line buffer 330 needs to have a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0266] The Y1 minus 1 asymmetric filter of equation (24) is a filter in which pixel p3 in the first equation for determining 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 determining pixel p2' is changed from 3 in equation (22) to 5 (=2+3).
[0267] From the above, when a Y1 minus 1 asymmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity for three pixel lines from pixels p0 to p2 of block Bp above the horizontal boundary.
[0268] 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).
[0269] When a Y1 minus 1 symmetric filter is adopted as the filter NC1, the filter application decision is performed in the same manner as in the case of, for example, a Y1 normal filter.
[0270] 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 the Y1 normal filter.
[0271] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0272] When a Y1 minus 1 symmetric filter is adopted as the filter NC1, the filter type determination determines whether or not the filter satisfies equation (25) in which pixel p3 in equation (21) for determining whether or not to apply DF to the luminance component of HEVC is replaced with pixel p2 on the horizontal boundary side and pixel q3 is replaced with pixel q2 on the horizontal boundary side.
[0273] |p2 - p0|+|q2 - q0| < (beta>>3) |p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2) |p0 - q0| < ((tc*5+1)>>1) ···(twenty five)
[0274] In the filter type determination, if equation (25) is satisfied, it is determined that filter NC1 as a strong filter is applied to the chrominance component, and if equation (25) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the chrominance component.
[0275] The type determination pixels for the chrominance components used in the filter type determination of equation (25) are six pixels p0 to p2 and q0 to q2.
[0276] Therefore, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs to have a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0277] As the Y1 minus 1 symmetric filter, the Y1 normal filter of formula (22), that is, a filter in which pixel p3 of the strong filter of the luminance component of HEVC is replaced with pixel p2 on the horizontal boundary side and pixel q3 is replaced with pixel q2 on the horizontal boundary side, can be adopted. In this case, the Y1 minus 1 symmetric filter is expressed by formula (26).
[0278] 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)
[0279] 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.
[0280] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y1 minus 1 symmetric filter, the line buffer 330 needs to have a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0281] The Y1 minus 1 symmetric filter of equation (26) is a filter in which pixel p3 in the first equation for determining 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 determining 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 determining 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 determining pixel q2' is changed from 3 in equation (22) to 5 (=3+2).
[0282] From the above, when a Y1 minus 1 symmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity for three pixel lines from pixels p0 to p2 of block Bp above the horizontal boundary.
[0283] Here, the pixels used when a Y1 minus 1 symmetric filter is adopted as the filter NC1 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.
[0284] When a Y1 minus 2 asymmetric filter is adopted 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.
[0285] 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)
[0286] In the filter application decision, if the formula (27) is satisfied, it is decided that the DF is applied, and if it is not satisfied, it is decided that the DF is not applied.
[0287] Therefore, the application determination pixels for the color difference components used in the filter application determination are the five pixels p0 to p1 and q0 to q2.
[0288] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0289] 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.
[0290] |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)
[0291] In the filter type determination, if equation (28) is satisfied, it is determined that filter NC1 as a strong filter is applied to the chrominance component, and if equation (28) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the chrominance component.
[0292] The type determination pixels for the chrominance components used in the filter type determination of equation (28) are the six pixels p0 to p1 and q0 to q3.
[0293] Therefore, when the horizontal boundary is a CTU boundary, for filter type determination, 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.
[0294] As the Y1 minus 2 asymmetric filter, the Y1 normal filter of formula (22), that is, a filter in which the pixel p3 and pixel p2 of the strong filter of the luminance component of HEVC are replaced with the pixel p1 on the horizontal boundary side, can be adopted. In this case, the Y1 minus 2 asymmetric filter is expressed by formula (29).
[0295] 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)
[0296] 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 to be subjected to the filtering process are five pixels p0 to p1 and q0 to q2.
[0297] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y1 minus 2 asymmetric filter, 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.
[0298] 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).
[0299] From the above, when a Y1 minus 2 asymmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines from pixels p0 to p1 of block Bp above the horizontal boundary.
[0300] Here, the pixels used when a Y1 minus 2 asymmetric filter is adopted as the filter NC1 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.
[0301] When a Y1 minus 2 symmetric filter is adopted as filter NC1, the filter application determination determines 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.
[0302] 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)
[0303] In the filter application decision, if the formula (30) is satisfied, it is decided that the DF is applied, and if it is not satisfied, it is decided that the DF is not applied.
[0304] 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.
[0305] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0306] When a Y1 minus 2 symmetric filter is adopted as the filter NC1, the filter type determination determines whether or not the filter satisfies equation (31) in which the pixels p3 and p2 in equation (21) for determining whether or not to apply DF to the luminance component of HEVC are replaced with pixel p1 on the horizontal boundary side, and the pixels q3 and q2 are replaced with pixel q1 on the horizontal boundary side.
[0307] |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)
[0308] In the filter type determination, if equation (31) is satisfied, it is determined that filter NC1 as a strong filter is applied to the chrominance component, and if equation (31) is not satisfied, it is determined that filter NC2 as a weak filter is applied to the chrominance component.
[0309] The type determination pixels for the chrominance components used in the filter type determination of equation (31) are the four pixels p0 to p1 and q0 to q1.
[0310] Therefore, when the horizontal boundary is a CTU boundary, for filter type determination, 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.
[0311] As the Y1 minus 2 symmetric filter, the Y1 normal filter of formula (22), that is, a filter in which the pixels p3 and p2 of the strong filter of 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, can be adopted. In this case, the Y1 minus 2 symmetric filter is expressed by formula (32).
[0312] 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)
[0313] The filter constituent pixels of the chrominance components used in the filtering process of the Y1 minus 2 symmetric filter of equation (32) are the four pixels p0 to p1 and q0 to q1. The target pixels of the chrominance components to be subjected to the filtering process are the four pixels p0 to p1 and q0 to q1.
[0314] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y1 minus 2 symmetric filter, 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.
[0315] 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) and 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 in equation (22) to 3 (=2+1), and the tap coefficient of pixel q1 in the equation for calculating pixel q1' in equation (31) is changed from 1 in equation (22) to 2 (=1+1).
[0316] From the above, when a Y1 minus 2 symmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines from pixels p0 to p1 of block Bp above the horizontal boundary.
[0317] Here, the pixels used when a Y1 minus 2 symmetric filter is adopted as the filter NC1 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.
[0318] <When using a filter based on filter OF as filter NC1>
[0319] FIG. 18 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter OF is used as the filter NC1.
[0320] The filter NC1 based on the filter OF includes 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.
[0321] 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 the equation (20).
[0322] 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 the Y1 normal filter.
[0323] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0324] When an OF normal filter is used as the filter NC1, in the filter type determination, it is determined whether or not the formula (21) is satisfied, similarly to the Y1 normal filter.
[0325] Therefore, the type determination pixels for the color difference components used in filter type determination are the same eight pixels p0 to p3 and q0 to q3 as in the Y1 normal filter.
[0326] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs to have a storage capacity of four pixel lines, from pixels p0 to p3 of the block Bp above the horizontal boundary.
[0327] 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 in equation (22) or the clip parameters A and B in the clip function Clip3(A, B, C), can be adopted. As the OF normal filter, for example, a filter in equation (33) can be adopted.
[0328] 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)
[0329] The OF normal filter in equation (33) is a strong filter for the luminance component of HEVC, that is, a filter in which the tap coefficient of the Y1 normal filter in equation (22) and the clip parameters A and B of the clip function Clip3(A, B, C) are changed. For example, in the OF normal filter in equation (33), 2tC constituting the clip parameter in equation (22) is changed to tC.
[0330] 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 to be subjected to the filtering process are six pixels p0 to p2 and q0 to q2.
[0331] Therefore, when the horizontal boundary is a CTU boundary, in filtering by the OF normal filter, the line buffer 330 needs to have a storage capacity of four pixel lines, from pixels p0 to p3, of the block Bp above the horizontal boundary.
[0332] From the above, when an OF normal filter is used as the filter NC1, the line buffer 330 needs to have a storage capacity equivalent to four pixel lines of pixels p0 to p3 of the block Bp above the horizontal boundary.
[0333] When an OF minus 1 asymmetric filter is adopted as the filter NC1, the filter application decision is performed in the same manner as in the case of, for example, an OF normal filter.
[0334] 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.
[0335] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0336] When an OF minus 1 asymmetric filter is adopted as the filter NC1, in the filter type determination, it is determined whether or not the formula (23) is satisfied, similarly to the Y1 minus 1 asymmetric filter.
[0337] Therefore, the type determination pixels for the chrominance components used for determining the type of the OF minus 1 asymmetric filter are the seven pixels p0 to p2 and q0 to q3, similarly to the Y1 minus 1 asymmetric filter.
[0338] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs to have a storage capacity of three pixel lines from pixels p0 to p2 of the block Bp above the horizontal boundary.
[0339] As the OF minus 1 asymmetric filter, a filter in which pixel p3 of the OF normal filter in equation (33) is replaced with pixel p2 on the horizontal boundary side can be used. In this case, the OF minus 1 asymmetric filter is expressed by equation (34).
[0340] 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)
[0341] 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 to be subjected to the filtering process are six pixels p0 to p2 and q0 to q2.
[0342] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the OF minus 1 asymmetric filter, the line buffer 330 needs to have a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0343] The OF minus 1 asymmetric filter of equation (34) is a filter in which pixel p3 in the equation for obtaining 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 obtaining pixel p2' is changed from 2 to 5 (=3+2) in equation (33). Furthermore, the tap coefficient of pixel p2 in the equation for obtaining pixel p1' is changed from 1 to 3 (=2+1) in equation (33), and the tap coefficient of pixel p2 in the equation for obtaining pixel p2' is changed from 1 to 2 (=1+1) in equation (33).
[0344] From the above, when an OF-1 asymmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity equivalent to three pixel lines of pixels p0 to p2 of block Bp above the horizontal boundary.
[0345] Here, the pixels used when the OF-1 asymmetric filter is adopted as the filter NC1 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.
[0346] When an OF minus 1 symmetric filter is adopted as the filter NC1, the filter application decision is performed in the same manner as in the case of, for example, an OF normal filter.
[0347] 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.
[0348] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0349] When an OF minus 1 symmetric filter is adopted as the filter NC1, in the filter type determination, it is determined whether or not the formula (25) is satisfied, similarly to the 1 minus 1 symmetric filter.
[0350] Therefore, the type determination pixels for the color difference components used for filter type determination of the OF minus 1 symmetric filter are the six pixels p0 to p2 and q0 to q2, similarly to the Y1 minus 1 symmetric filter.
[0351] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs to have a storage capacity of three pixel lines from pixels p0 to p2 of the block Bp above the horizontal boundary.
[0352] As the OF minus 1 symmetric filter, a filter can be used 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).
[0353] 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)
[0354] 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 through p2 and q0 through q2. The target pixels of the chrominance components to be subjected to the filtering process are six pixels p0 through p2 and q0 through q2.
[0355] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the OF minus 1 symmetric filter, the line buffer 330 needs to have a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0356] The OF minus 1 symmetric filter of equation (35) is a filter in which pixel p3 in the equation for obtaining 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 obtaining pixel p2' is changed from 2 in equation (33) to 5 (=3+2). Furthermore, the tap coefficient of pixel p2 in the equation for obtaining pixel p1' is changed from 1 in equation (33) to 3 (=2+1), and the tap coefficient of pixel p2 in the equation for obtaining pixel p0' is changed from 1 in equation (33) to 2 (=1+1).
[0357] Moreover, the OF minus 1 symmetric filter of equation (35) is a filter in which pixel q3 in the equation for obtaining 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 obtaining pixel q0' is changed from 1 to 2 (=1+1) in equation (33). Furthermore, the tap coefficient of pixel q2 in the equation for obtaining pixel q1' is changed from 1 to 3 (=1+2) in equation (33), and the tap coefficient of pixel q2 in the equation for obtaining pixel q2' is changed from 2 to 5 (=2+3) in equation (33).
[0358] From the above, when an OF-1 symmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity for three pixel lines of pixels p0 to p2 of block Bp above the horizontal boundary.
[0359] Here, the pixels used when an OF-1 symmetric filter is adopted as the filter NC1 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.
[0360] When an OF minus 2 asymmetric filter is adopted as the filter NC1, in the filter application decision, it is decided whether or not the formula (27) is satisfied, similarly to the Y1 minus 2 asymmetric filter.
[0361] Therefore, the application determination pixels for the color difference components used in the filter application determination of 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.
[0362] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0363] When an OF minus 2 asymmetric filter is adopted as the filter NC1, in the filter type determination, it is determined whether or not the formula (28) is satisfied, similarly to the Y1 minus 2 asymmetric filter.
[0364] Therefore, the type determination pixels for the color difference components used for filter type determination of the OF minus 2 asymmetric filter are the six pixels p0 to p1 and q0 to q3, similarly to the Y1 minus 2 asymmetric filter.
[0365] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0366] As the OF minus 2 asymmetric filter, a filter in which the pixels p3 and p2 of the OF normal filter in equation (33) are replaced with the pixel p1 on the horizontal boundary side can be used. In this case, the OF minus 2 asymmetric filter is expressed by equation (36).
[0367] 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)
[0368] 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 to be subjected to the filtering process are five pixels p0 to p1 and q0 to q2.
[0369] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the OF minus 2 asymmetric filter, 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.
[0370] 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).
[0371] 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). In addition, 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).
[0372] From the above, when an OF minus 2 asymmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines from pixels p0 to p1 of block Bp above the horizontal boundary.
[0373] Here, when the OF minus 2 asymmetric filter is adopted as the 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).
[0374] When an OF minus 2 symmetric filter is adopted as the filter NC1, in the filter application decision, it is decided whether or not the formula (30) is satisfied, similarly to the Y1 minus 2 symmetric filter.
[0375] Therefore, the application determination pixels for the color difference components used in the filter application determination of 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.
[0376] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0377] When an OF minus 2 symmetric filter is adopted as the filter NC1, in the filter type determination, it is determined whether or not the formula (31) is satisfied, similarly to the Y1 minus 2 symmetric filter.
[0378] Therefore, the type determination pixels for the color difference components used for filter type determination of 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.
[0379] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0380] As the OF minus 2 symmetric filter, a filter can be used in which the pixels p3 and p2 of the OF normal filter in equation (33) are replaced with the pixel p1 on the horizontal boundary side, and the pixels q2 and q3 are replaced with the pixel q1 on the horizontal boundary side. In this case, the OF minus 2 symmetric filter is expressed by equation (37).
[0381] 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)
[0382] The filter constituent pixels of the chrominance components used in the filtering process of the OF minus 2 symmetric filter of equation (37) are the four pixels p0 to p1 and q0 to q1. The target pixels of the chrominance components to be subjected to the filtering process are the four pixels p0 to p1 and q0 to q1.
[0383] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the OF minus 2 symmetric filter, 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.
[0384] 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).
[0385] Furthermore, the OF minus 2 symmetric filter of equation (37) is a filter in which pixels p2 and p3 in the equation for obtaining 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 obtaining pixel p1' in equation (37) is changed from 2 to 5 (=2+1+2) in equation (33). In addition, the tap coefficient of pixel p1 in the equation for obtaining 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 obtaining pixel q0' in equation (37) is changed from 1 to 2 (=1+1) in equation (33).
[0386] In addition, the OF minus 2 symmetric filter of equation (37) is a filter in which pixels q2 and q3 in the equation for obtaining 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 obtaining pixel q0' in equation (37) is changed from 1 to 3 (=1+1+1) in equation (33). In addition, the tap coefficient of pixel q1 in the equation for obtaining 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 obtaining pixel q0' in equation (37) is changed from 2 to 5 (=2+1+2) in equation (33).
[0387] From the above, when an OF minus 2 symmetric filter is adopted as the filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0388] 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).
[0389] <When using a filter based on filter Y2 as filter NC1>
[0390] FIG. 19 is a diagram showing the filter NC1 and necessary pixels when a filter based on the filter Y2 is used as the filter NC1.
[0391] 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.
[0392] 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 the equation (20).
[0393] 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 the Y1 normal filter.
[0394] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0395] When the Y2 normal filter is adopted as the filter NC1, the filter type determination is made in accordance with the standard weak determination for determining whether or not to apply a weak filter for the luminance component of HEVC.
[0396] Here, in the standard week determination, it is determined whether or not equation (38) and, if necessary, equations (39) and (40) are satisfied.
[0397] | (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)
[0398] 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, in the weak on / off determination, if a line that satisfies formula (38) exists, 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.
[0399] In the standard weak judgment, when the p1 judgment of the formula (39) is satisfied, the pixel p of the block Bp of the line that satisfies the weak on / off judgment of the formula (38) i is set as a pixel that can be a target pixel. Similarly, when the q1 determination in equation (40) is satisfied, pixel q of block Bq of a line that satisfies the weak on / off determination in equation (38) is set as a pixel that can be a target pixel. i is set to a pixel that can be the target pixel.
[0400] 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.
[0401] That is, in determining the filter type of the Y2 normal filter, it is determined whether or not equation (41), and further, if necessary, equations (39) and (40) are satisfied.
[0402] | (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)
[0403] 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 the formula (41) is satisfied. Then, in the weak on / off determination, if a line that satisfies the formula (41) is present, a p1 determination is performed on one of the two lines (for example, the first line) of pixels of the chrominance components of the blocks Bp and Bq to determine whether or not the formula (42) is satisfied, and a q1 determination is performed on one of the two lines (for example, the first line) of pixels of the chrominance components of the blocks Bp and Bq to determine whether or not the formula (43) is satisfied.
[0404] 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 a 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 to a pixel that can be the target pixel.
[0405] 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.
[0406] From equations (41) to (43), the type determination pixels for the chrominance components used in determining the filter type of the Y2 normal filter are the six pixels p0 to p2 and q0 to q2.
[0407] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs to have a storage capacity of three pixel lines from pixels p0 to p2 of the block Bp above the horizontal boundary.
[0408] The Y2 normal filter may be a weak filter for the luminance component of HEVC. In this case, the Y2 normal filter is expressed by equation (44).
[0409] 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)
[0410] Here, if the number of bits of the color difference component of Clip1C(A) is represented as BC, then Clip1C(A)=Clip(0, (1 << BC)−1, A).
[0411] 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. Moreover, 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.
[0412] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y2 normal filter, the line buffer 330 needs to have a storage capacity of three pixel lines, from pixels p0 to p2, of the block Bp above the horizontal boundary.
[0413] 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 from pixels p0 to p2 of the block Bp above the horizontal boundary.
[0414] When the Y2 minus 1 asymmetric filter is adopted as the filter NC1, in the filter application decision, it is decided whether or not the formula (27) is satisfied, similarly to the Y1 minus 2 asymmetric filter.
[0415] Therefore, the application determination pixels for the color difference components used in the filter application determination of 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.
[0416] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0417] When a Y2 minus 1 asymmetric filter is used as filter NC1, the filter type determination determines whether or not equations (45) to (47) are satisfied in which pixel p2 in equations (41) to (43) for determining the filter type of a Y2 normal filter is replaced with pixel p1 on the horizontal boundary side.
[0418] | (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)
[0419] Equation (45) represents the weak on / off judgment, and equations (46) and (47) represent the p1 judgment and q1 judgment.
[0420] The filter type determination for the Y2 minus 1 asymmetric filter is similar to 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.
[0421] From equations (45) to (47), the type determination pixels for the chrominance components used in determining the filter type of the Y2 minus 1 asymmetric filter are the five pixels p0 to p1 and q0 to q2.
[0422] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0423] 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.
[0424] 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)
[0425] 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 to be subjected to the filtering process are four pixels p0 to p1 and q0 to q1.
[0426] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y2 minus 1 asymmetric filter, 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.
[0427] From the above, when a Y2 minus 1 asymmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines from pixels p0 to p1 of block Bp above the horizontal boundary.
[0428] Here, the pixels used when a Y2 minus 1 asymmetric filter is adopted as the filter NC1 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.
[0429] When a Y2 minus 1 symmetric filter is adopted as the filter NC1, in the filter application decision, it is decided whether or not the formula (30) is satisfied, similarly to the Y1 minus 2 symmetric filter.
[0430] Therefore, the application determination pixels for the color difference components used in the filter application determination of the Y2 minus 1 symmetric filter are the four pixels p0 to p1 and q0 to q1, similarly to the Y1 minus 2 symmetric filter.
[0431] As a result, when the horizontal boundary is a CTU boundary, for filter application determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0432] When a Y2 minus 1 symmetric filter is used as filter NC1, the filter type determination involves determining whether or not equations (49) to (51) are satisfied in which pixel p2 in equations (41) to (43) for determining the filter type of a 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.
[0433] | (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)
[0434] Equation (49) represents the weak on / off judgment, and equations (50) and (51) represent the p1 judgment and q1 judgment.
[0435] The filter type determination for the Y2 minus 1 symmetric filter is similar to 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.
[0436] From equations (49) to (51), the type determination pixels for the chrominance components used in determining the filter type of the Y2 minus 1 symmetric filter are the four pixels p0 to p1 and q0 to q1.
[0437] As a result, when the horizontal boundary is a CTU boundary, for filter type determination, the line buffer 330 needs a storage capacity of two pixel lines from pixels p0 to p1 of the block Bp above the horizontal boundary.
[0438] 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.
[0439] 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)
[0440] The filter constituent pixels of the chrominance components used in the filtering process of the Y2 minus 1 symmetric filter of equation (52) are the four pixels p0 to p1 and q0 to q1. The target pixels of the chrominance components to be subjected to the filtering process are the four pixels p0 to p1 and q0 to q1.
[0441] Therefore, when the horizontal boundary is a CTU boundary, for filtering by the Y2 minus 1 symmetric filter, 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.
[0442] From the above, when a Y2 minus 1 symmetric filter is adopted as filter NC1, the line buffer 330 needs a storage capacity equivalent to two pixel lines from pixels p0 to p1 of block Bp above the horizontal boundary.
[0443] Here, the pixels used when a Y2 minus 1 symmetric filter is adopted as the filter NC1 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.
[0444] As described above, according to the present technology, it is possible to provide various filters as DFs.
[0445] <How to apply filter NC1>
[0446] FIG. 20 is a diagram showing an example of how the filter NC1 is applied to the decoded image.
[0447] Here, the filter characteristics is a term that comprehensively defines filter characteristics such as filter strength, filter constituent pixels, filter coefficient values, filter tap length, and filter shape (symmetric / asymmetric), and indicates filter characteristics resulting from filter parameters used when filtering, or encoding parameters (such as quantization parameters) related to the filter characteristics. Changing the filter characteristics means changing the filter characteristics themselves, and includes changing the filter strength, filter constituent pixels, filter coefficient values, filter tap length, and filter shape (symmetric / asymmetric). Changing the filter characteristics also includes changing the filter parameters or encoding parameters (such as quantization parameters) related to the filter characteristics. Reducing the filter characteristics (Reduction) includes functionally reducing the 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. In addition, reducing the filter characteristics (Reduction) also includes changing (functionally, taking into consideration implementation costs such as line buffer capacity) the filter parameters or the encoding parameters (such as quantization parameters) related to the filter characteristics. Furthermore, a filter whose filter characteristics have been reduced is called a reduction filter (Reduction Filter, or Reduced Filter).
[0448] Figure 20 shows filter NC1 applied to the CTU boundary, filter NC1 applied to the internal boundary, the image quality difference between the CTU boundary part and the internal boundary part when filter NC1 is applied, and the memory capacity required for line buffer 330 (line buffer size).
[0449] Here, 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 shown in Fig. 17 have fewer filter constituent pixels compared to 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.
[0450] 18, the OF minus 1 asymmetric filter, OF minus 1 symmetric filter, OF minus 2 asymmetric filter, and OF minus 2 symmetric filter have fewer filter constituent pixels compared to 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.
[0451] Furthermore, the Y2 minus 1 asymmetric filter and the Y2 minus 1 symmetric filter shown in Fig. 19 have fewer filter constituent pixels compared to 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.
[0452] Here, the Y1 normal filter, the OF normal filter, and the Y2 normal filter are referred to as normal filters. The reduction filter has a 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.
[0453] Incidentally, to block boundaries of blocks with a large block size, that is, CTU boundaries and internal boundaries, it is required to apply the filter NC1 with a strong filter strength (filter characteristics) in order to sufficiently remove block noise.
[0454] However, if a normal filter with high filter strength is used for the filter NC1, the normal filter has many filter constituent pixels (on the p side), and therefore the line buffer 330 requires a large storage capacity at the CTU boundary.
[0455] Therefore, a reduction filter with fewer filter constituent pixels (on the p side) can be used for the filter NC1 at 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.
[0456] On the other hand, application of 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 large number of filter constituent pixels but a strong filter strength can be applied as the filter NC1 to the internal boundary. In this case, block noise can be sufficiently removed.
[0457] 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.
[0458] Therefore, the same reduction filter as that for the CTU boundary can be applied to the internal boundary, which can suppress the occurrence of image quality differences between the CTU boundary and the internal boundary.
[0459] The control unit 340 (FIG. 11) controls which of the filters explained with reference to FIG. 17 to FIG. 19 is applied (selected) as the filter NC1 to the block boundary.
[0460] 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.
[0461] 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, apply a reduction filter to the CTU boundary and the internal boundary.
[0462] FIG. 21 is a diagram showing another example of the method of applying the filter NC1 to the decoded image.
[0463] For example, in the first row of Fig. 21, 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 the q side of the inner boundary as the filter NC1.
[0464] As described above, in this technology, for pixels of chrominance 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 are reduced, can be applied as a filter NC1 (second chrominance filter) with a stronger filter strength than filter NC2 (first chrominance filter).
[0465] In addition, in the present technology, the reduction second luminance filter can be a reduction second luminance vertical filter that performs the reduction second luminance filtering in the vertical direction, and the second chrominance filter can be a second chrominance vertical filter that performs the second chrominance filtering in the vertical direction.
[0466] Furthermore, in the present technology, the reduction second luminance vertical filter may be a filter in which the filter coefficient or clip parameter is changed with respect to the second luminance filter.
[0467] Furthermore, in the present 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 upper part with respect to the block boundary are reduced.
[0468] Furthermore, in the present technology, the second luma filter can be a strong filter for luma components that complies with the H265 / HEVC standard.
[0469] Furthermore, in the present technology, the reduction first luminance filter can be a reduction first luminance vertical filter that performs the reduction first luminance filtering in the vertical direction.
[0470] In addition, in the present technology, the control unit 340 can control the DF 300 (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.
[0471] 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.
[0472] In addition, 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 a block boundary of a block divided from a coding tree block.
[0473] <Description of the computer to which this technology is applied>
[0474] Next, the above-mentioned series of processes can be performed by hardware or software. When the series of processes is performed by software, the programs constituting the software are installed in a general-purpose computer or the like.
[0475] 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 series of processes described above is installed.
[0476] The program can be recorded in advance on the hard disk 905 or ROM 903 as a recording medium built into the computer.
[0477] Alternatively, the program can be stored (recorded) in 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.
[0478] The program can be installed in 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 in 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.
[0479] The computer includes a CPU (Central Processing Unit) 902 , to which an input / output interface 910 is connected via a bus 901 .
[0480] When a user inputs a command by operating an input unit 907 via an input / output interface 910, 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 in a hard disk 905 into a random access memory (RAM) 904 and executes the program.
[0481] As a result, the CPU 902 performs processing according to the above-mentioned flowchart or processing performed by the configuration of the above-mentioned block diagram. Then, the CPU 902 outputs the processing result from the output unit 906 via the input / output interface 910, or transmits it from the communication unit 908, or further records it on the hard disk 905, as necessary.
[0482] The input unit 907 is composed of a keyboard, a mouse, a microphone, etc. The output unit 906 is composed of an LCD (Liquid Crystal Display), a speaker, etc.
[0483] Here, 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 executed in parallel or individually (for example, parallel processing or processing by objects).
[0484] The program may be processed by one computer (processor), or may be distributed among multiple computers. Furthermore, the program may be transferred to a remote computer for execution.
[0485] Furthermore, in this specification, a system refers to a collection of multiple components (devices, modules (parts), etc.), regardless of whether all the components are in the same housing. Therefore, multiple devices housed in separate housings and connected via a network, and a single device in which multiple modules are housed in a single housing, 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 component of a decoded image.
[0486] Although the preferred embodiment of the present disclosure has been described in detail above with reference to the attached drawings, the technical scope of the present disclosure is not limited to such examples. It is clear that a person having ordinary knowledge in the technical field of the present disclosure can conceive of various modified or amended examples within the scope of the technical ideas described in the claims, and it is understood that these also naturally belong to the technical scope of the present disclosure.
[0487] (Color difference related parameters) For example, in the above embodiment, an example has been described in which a flag indicating the presence or absence of a significant coefficient of the chrominance component in each TU is used as the chrominance-related parameter, but the present technology is not limited to such an example. For example, the transform coefficient of the chrominance component itself may be included in the chrominance-related parameter. In such a case, the boundary strength calculation unit 261 may calculate bS by determining the presence or absence of a significant coefficient of the chrominance component in each TU from the transform coefficient of the chrominance component. Also, in relation to the above embodiment, an example in which the value of bS differs depending not only on whether the condition B1-Y, B1-U, or B1-V is satisfied, but also on whether the condition B2 is satisfied is shown in FIG. 4. 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 the condition B2 is satisfied for both the chrominance components U and V may be omitted.
[0488] (Large block threshold) In the above embodiment, an example has been described in which the threshold value used in the 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. In addition, 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 the large block determination.
[0489] (Strong filter) In the above embodiment, an example has been described in which the strong filter expressed by equations (15) to (19) is applied to the chrominance component, but the strong filter applied in the present technology is not limited to such an example. The strong filter applied to the chrominance component may be any filter having a stronger filter strength than the weak filter. For example, the strong filter applied to the chrominance component in Non-Patent Document 1 (the strong filter applied to the luminance component in HEVC) may be applied to the chrominance component in the present technology.
[0490] (Applicable subjects of this technology) This technology can be applied to any image encoding / decoding method. In other words, as long as it does not conflict with 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. In addition, as long as it does not conflict with the above-mentioned technology, some of these processes may be omitted.
[0491] (block) In addition, in this specification, a "block" (not a block indicating a processing unit) used in the description as a partial region or processing unit of an image (picture) indicates any partial region in a picture, and its size, shape, characteristics, etc. are not limited, unless otherwise specified. For example, a "block" includes 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.
[0492] (Processing unit) The data units in which the various information described above is 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, this data unit may be set for each piece of information or process, and the data units of all pieces of information and processes do not need to be unified. The storage location of these pieces of information is arbitrary, and may be stored in the header or parameter set of the above-mentioned data unit. Also, they may be stored in multiple locations.
[0493] In the above embodiment, the deblocking filter process is performed on the chrominance components in units of two lines, but the present technology is not limited to such an example. For example, in the case of the YUV444 format, the deblocking filter process 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 on the above-mentioned condition C3 by referring to the first and third lines.
[0494] (Control information) The 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. In addition, for example, control information indicating a target to which the present technology described above is applied (or a target to which it is not applied) may be transmitted. For example, control information that specifies a block size (upper or lower limit, or both), frame, component, or layer to which the present technology is applied (or permitted or prohibited to be applied) may be transmitted.
[0495] (Block size information) When specifying the size of the block to which the present technology is applied, the block size may be specified indirectly in addition to directly. For example, the block size may be specified using identification information for identifying the size. Also, for example, the block size may be specified by a ratio or difference with respect to the size of a reference block (for example, 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. In this way, the amount of information can be reduced, and the encoding efficiency may be improved. Also, the specification of the block size includes specification of a range of block sizes (for example, specification of a range of allowable block sizes, etc.).
[0496] (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. Thus, the value that this "flag" can take may be, for example, a binary value of 1 / 0, or may be 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, it is assumed that identification information (including flags) is not only included in the bit stream, but also includes difference information of the identification information with respect 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 with respect to the reference information.
[0497] Also, various information (metadata, etc.) related to the coded data (bit stream) may be transmitted or recorded in any form as long as it is associated with the coded data. Here, the term "associate" means, for example, that one piece of data can be used (linked) when processing the other piece of data. That is, data associated with each other may be combined into one piece of data, or each piece of data may be made into separate data. For example, information associated with coded data (image) may be transmitted on a transmission path different from that of the coded data (image). Also, for example, information associated with coded data (image) may be recorded on a recording medium different from that of the coded data (image) (or on a different recording area of the same recording medium). Note that this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in any unit, such as multiple frames, one frame, or a part of a frame.
[0498] In this specification, the terms "combine," "multiplex," "append," "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.
[0499] The present technology can also be implemented as any configuration that constitutes an apparatus or 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, and the like (i.e., a configuration of a part of an apparatus).
[0500] The embodiments of the present technology are not limited to the above-described embodiments, and various modifications are possible without departing from the gist of the present technology.
[0501] For example, the present technology can be configured as cloud computing, in which a single function is shared and processed collaboratively by multiple devices via a network.
[0502] Furthermore, each step described in the above flow chart can be executed by one device, or can be shared and executed by a plurality of devices.
[0503] Furthermore, when a single step includes multiple processes, the multiple processes included in the single step can be executed by a single device, or can be shared and executed by multiple devices.
[0504] Furthermore, the effects described in this specification are merely examples and are not limiting, and other effects may also be obtained. [Explanation of symbols]
[0505] 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 bit stream to generate a decoded image; a filter unit that applies a reduced second luminance filter having a filter strength stronger than that of a first luminance filter, or a reduced first luminance filter having a filter strength stronger than that of a first luminance filter, to a block boundary of a coding tree unit (CTU), for pixels of a chrominance component located in the vicinity of a block boundary of a decoded image decoded by the decoding unit, as a second chrominance filter having a filter strength stronger than that of a first chrominance filter; An image processing device comprising:
2. the reduction second luminance filter is a reduction second luminance vertical filter that performs the reduction second luminance filtering in a vertical direction, The second chrominance filter is a second chrominance vertical filter that performs the second chrominance filtering in a vertical direction. The image processing device according to claim 1 .
3. The reduction second luminance vertical filter is a filter in which a filter coefficient or a clip parameter is changed with respect to the second luminance filter. The image processing device according to claim 2 .
4. The reduced second luminance vertical filter is an asymmetric filter in which the filter characteristics of a filter applied to pixels located at the upper side of a block boundary are reduced. The image processing device according to claim 2 .
5. The reduction first luminance filter is a reduction first luminance vertical filter that performs the reduction first luminance filter in the vertical direction. The image processing device according to claim 2 .
6. The method further includes a control unit that controls the filter unit so as to apply the reduced second luminance vertical filter as the second chrominance vertical filter to a block boundary of a coding tree block that is a block of a fixed size in sequence units. The image processing device according to claim 2 .
7. The control unit controls the filter unit to apply the reduced second luminance vertical filter as the second chrominance vertical filter to a block boundary of a block divided from the coding tree block. The image processing device according to claim 6.
8. The control unit controls the filter unit to apply a second luminance vertical filter, which performs the second luminance filtering in a vertical direction, as the second chrominance vertical filter with respect to a block boundary of a block divided from the coding tree block. The image processing device according to claim 6.
9. The blocks are divided according to a Quad-Tree Block Structure, or a Quad Tree Plus Binary Tree Block Structure, or a Multi-type Tree Coding Block Structure. The image processing device according to claim 7.
10. The second luminance filter is a strong filter for luminance components conforming to the H,265 / HEVC standard. The image processing device according to claim 1 .
11. The second luminance filter is a filter in which the filter characteristics of a strong filter for luminance components conforming to the H,265 / HEVC standard have been changed. The image processing device according to claim 1 .
12. decoding the bitstream to generate a decoded image; applying a reduced second luminance filter having a reduced filter characteristic of a second luminance filter having a stronger filter strength than a first luminance filter or a reduced first luminance filter having a reduced filter characteristic of the first luminance filter to a block boundary of a coding tree unit (CTU) as a second chrominance filter having a stronger filter strength than the first chrominance filter, to a pixel of a chrominance component located in the vicinity of a block boundary of the decoded image; An image processing method comprising:
Citation Information
Patent Citations
In loop chroma deblocking filter
US20150350687A1
Adaptive filtering in video coding
WO2015006662A2