Image processing device and image processing method

The image processing device and method address the issue of inappropriate filter application in video encoding by determining the need for an extended strong filter based on pixel conditions, enhancing image quality and reducing PSNR loss.

JP7729420B2Active Publication Date: 2025-08-26SONY GROUP CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024018057
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-12-28
Filing Date
2024-02-08
Publication Date
2025-08-26
Estimated Expiration
2037-11-30

AI Technical Summary

Technical Problem

Conventional filter selection methods in video encoding, such as those used in H.265/HEVC and proposed in JVET, risk applying overly strong deblocking filters, which can significantly reduce the peak signal-to-noise ratio (PSNR) due to inappropriate filter application.

Method used

An image processing device and method that determines whether to apply an extended strong filter to pixels near block boundaries based on the state of pixels within an extended application range, using a more appropriate filter selection process.

Benefits of technology

This approach allows for more appropriate filter application, reducing the risk of PSNR reduction and improving image quality by applying the correct filter strength based on pixel conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007729420000001
    Figure 0007729420000001
  • Figure 0007729420000002
    Figure 0007729420000002
  • Figure 0007729420000003
    Figure 0007729420000003
Patent Text Reader

Abstract

To provide an image processing apparatus and an image processing method.SOLUTION: An image processing apparatus includes: a decoding section configured to decode an encoded stream to generate a decoded image; a determination section configured to determine whether to apply an extended strong filter, which is applied in an extended application range in which an application range of a deblocking filter is extended, to pixels positioned near a block boundary of the decoded image generated by the decoding section, in accordance with a state of pixels included in the extended application range; and a filtering section configured to apply the extended strong filter to pixels for which the determination section determines to apply the extended strong filter.SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to an image processing device and an image processing method. [Background technology]

[0002] In H.265 / HEVC, one of the standard specifications for video encoding, a deblocking filter is applied to block boundaries, for example, to suppress deterioration in image quality caused by block distortion that occurs during image encoding (see Non-Patent Document 1). Deblocking filters include strong filters and weak filters, and which filter to apply to a block boundary is determined using a determination formula for each filter.

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

[0004] In the standardization work for FVC, the following Non-Patent Document 3 proposes applying a deblocking filter with a wider application range than the strong filter in H.265 / HEVC. The method proposed in Non-Patent Document 3 makes it possible to apply a stronger filter by expanding the application range of the filter to 3 to 7 pixels located near the block boundary. [Prior art documents] [Non-patent literature]

[0005] [Non-Patent Document 1] Recommendation ITU-T H.265,(04 / 2015) “High efficiency video coding”, April 2015 [Non-patent document 2] J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, J. Boyce, “Algorithm Description of Joint Exploration Test Model 4”, JVET-D1001_v3, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 4th Meeting: Chengdu, CN, 15-21 October 2016 [Non-patent document 3] K. Kawamura, S. Naito, “Extended deblocking-filter decision for large block boundary”, JVET-D0047, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 4th Meeting:Chengdu, CN, 15-21 October 2016 Summary of the Invention [Problem to be solved by the invention]

[0006] However, conventional filter selection methods have the risk of applying an inappropriate filter, such as an overly strong filter, which can significantly reduce the peak signal-to-noise ratio (PSNR) when a deblocking filter is applied.

[0007] The present disclosure has been made in view of such circumstances, and makes it possible to apply a more appropriate filter in deblocking filter processing. [Means for solving the problem]

[0008] According to the present disclosure, there is provided an image processing device comprising: a decoding unit that decodes an encoded stream to generate a decoded image; a determination unit that determines whether to apply an extended strong filter, which is applied to an extended application range in which the application range of a deblocking filter is extended, to pixels located near block boundaries of the decoded image generated by the decoding unit, according to the state of pixels included in the extended application range; and a filtering unit that applies the extended strong filter to pixels determined by the determination unit to apply the extended strong filter.

[0009] The present disclosure also provides an image processing method including: decoding an encoded stream to generate a decoded image; determining whether to apply an extended strong filter, which is applied to an extended application range in which the application range of a deblocking filter is extended, to pixels located near block boundaries of the generated decoded image according to the state of pixels included in the extended application range; and applying the extended strong filter to pixels determined to be subject to the application of the extended strong filter.

[0010] Furthermore, according to the present disclosure, there is provided an image processing device including: a determination unit that determines, according to a state of pixels included in the extended application range, whether to apply an extended strong filter that is applied to an extended application range in which the application range of a deblocking filter that is applied to pixels located near block boundaries of a locally decoded decoded image is extended, to pixels located near block boundaries of the decoded image; a filtering unit that applies the extended strong filter to pixels determined by the determination unit to apply the extended strong filter; and an encoding unit that encodes an image using the decoded image to which the extended strong filter has been applied by the filtering unit.

[0011] Furthermore, according to the present disclosure, there is provided an image processing method including: determining, according to a state of pixels included in the extended application range, whether to apply an extended strong filter, which is applied to an extended application range in which the application range of a deblocking filter applied to pixels located near block boundaries of a locally decoded decoded image, to pixels located near block boundaries of the decoded image; applying the extended strong filter to pixels determined to be subject to the application of the extended strong filter; and encoding an image using the decoded image to which the extended strong filter has been applied. [Effects of the Invention]

[0012] As described above, according to the present disclosure, it is possible to apply a more appropriate filter in deblocking filter processing.

[0013] The above effects are not necessarily limiting, and any of the effects described in this specification or other effects that can be understood from this specification may be achieved in addition to or instead of the above effects. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 1 is an explanatory diagram illustrating an overview of recursive block division of a CU in HEVC. [Figure 2] FIG. 10 is an explanatory diagram illustrating setting of a PU in a CU. [Figure 3] FIG. 10 is an explanatory diagram illustrating setting of a TU to a CU. [Figure 4] FIG. 10 is an explanatory diagram for explaining the scanning order of CU / PU. [Figure 5] FIG. 10 is a diagram illustrating the shapes of CU, PU, ​​and TU in QTBT. [Figure 6] FIG. 1 is an explanatory diagram showing an example of pixels in two blocks Bp and Bq, each consisting of 4×4 pixels, adjacent to each other across a vertical boundary. [Figure 7]FIG. 10 is an explanatory diagram illustrating a strong filter determination process in HEVC. [Figure 8] FIG. 10 is an explanatory diagram showing an example of a block boundary to which a previously proposed filter is applied. [Figure 9] FIG. 9 is an enlarged schematic view of a region H10 shown in FIG. 8. [Figure 10] 1 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. [Figure 11] FIG. 10 is a block diagram showing an example of the configuration of an image decoding device 60, which is one aspect of the image processing device according to the embodiment. [Figure 12] FIG. 2 is a block diagram showing an example of a detailed configuration of a deblocking filter 24 according to the first embodiment. [Figure 13] FIG. 10 is an explanatory diagram illustrating a determination process for determining whether or not to apply an extended strong filter. [Figure 14] 10 is an explanatory diagram illustrating an example of an extended strong filter applied by the filtering unit 130. FIG. [Figure 15] 4 is an explanatory diagram for explaining the concept of deriving filter coefficients of an extended strong filter applied by a filtering unit 130 according to the first embodiment. FIG. [Figure 16] 4 is an explanatory diagram for explaining the concept of deriving filter coefficients of an extended strong filter applied by a filtering unit 130 according to the first embodiment. FIG. [Figure 17] 5 is a flowchart showing an example of the flow of processing by the deblocking filter 24 according to the first embodiment. [Figure 18] FIG. 10 is an explanatory diagram according to a modified example. [Figure 19] FIG. 10 is an explanatory diagram according to a modified example. [Figure 20] FIG. 10 is an explanatory diagram illustrating a determination process for determining whether or not to apply an extended strong filter. [Figure 21] FIG. 10 is an explanatory diagram showing an example of an asymmetric deblocking filter applied by the filtering unit 130 in a modified example. [Figure 22]10 is a flowchart showing an example of the flow of processing by a deblocking filter 24 according to the second embodiment. [Figure 23] FIG. 10 is a flowchart illustrating the process of step S230. [Figure 24] FIG. 10 is an explanatory diagram according to a modified example. [Figure 25] FIG. 10 is an explanatory diagram according to a modified example. [Figure 26] FIG. 1 is a block diagram illustrating an example of the main configuration of a computer. [Figure 27] FIG. 1 is a block diagram illustrating an example of a schematic configuration of a television device. [Figure 28] FIG. 1 is a block diagram showing an example of a schematic configuration of a mobile phone. [Figure 29] FIG. 1 is a block diagram showing an example of a schematic configuration of a recording / reproducing device. [Figure 30] FIG. 1 is a block diagram illustrating an example of a schematic configuration of an imaging device. [Figure 31] FIG. 1 is a block diagram showing an example of a schematic configuration of a video set. [Figure 32] FIG. 2 is a block diagram showing an example of a schematic configuration of a video processor. [Figure 33] FIG. 10 is a block diagram showing another example of a schematic configuration of a video processor. [Figure 34] FIG. 1 is a block diagram illustrating an example of a schematic configuration of a network system. DETAILED DESCRIPTION OF THE INVENTION

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

[0016] In addition, in this specification and drawings, multiple components having substantially the same functional configuration may be distinguished by adding different letters to the same reference numeral. However, when there is no particular need to distinguish between multiple components having substantially the same functional configuration, only the same reference numeral is used.

[0017] The explanation will be given in the following order. 1. Background 1-1. Block structure 1-2. Existing deblocking filters 2. Overview of the device 2-1. Image encoding device 2-2. Image decoding device 3. First Example 3-1. Example of deblocking filter configuration 3-2. Processing flow 3-3. Modified Examples 4. Second Example 4-1. Example of deblocking filter configuration 4-2.Processing flow 4-3. Modified Examples 5. Hardware configuration example 6. Application Examples 7. Summary

[0018] <1. Background> [1-1. Block structure] In conventional image coding methods such as MPEG2 or H.264 / AVC, the coding process is performed in processing units called macroblocks. A macroblock is a block having a uniform size of 16x16 pixels. In contrast, in HEVC, the coding process is performed in processing units called coding units (CUs). A CU is a block of variable size formed by recursively dividing a coding tree unit (CTU). The maximum size of a selectable CU is 64x64 pixels. The minimum size of a selectable CU is 8x8 pixels.

[0019] By adopting CUs with variable sizes, HEVC makes it possible to adaptively adjust image quality and coding efficiency according to the content of an image. Prediction processing for predictive coding is performed in processing units called prediction units (PUs). PUs are formed by dividing a CU according to one of several division patterns. Furthermore, orthogonal transform processing is performed in processing units called transform units (TUs). TUs are formed by dividing a CU or PU to a certain depth.

[0020] FIG. 1 is an explanatory diagram illustrating an overview of recursive block partitioning of CUs in HEVC. Block partitioning of a CU is performed by recursively and repeatedly dividing one block into four (=2×2) sub-blocks, resulting in the formation of a quad-tree structure. A quad-tree is called a coding tree block (CTB), and a logical unit corresponding to the CTB is called a coding tree block (CTU). The upper part of FIG. 1 shows, as an example, a CU C01 having a size of 64×64 pixels. The partition depth of CU C01 is equal to zero, which means that CU C01 corresponds to the root of the CTU. The size of the CTU or CTB can be specified by parameters coded in a sequence parameter set (SPS). CU C02 is one of four CUs divided from CU C01 and has a size of 32×32 pixels. The partition depth of CU C02 is equal to 1. CU C03 is one of four CUs divided from CU C02 and has a size of 16x16 pixels. The division depth of CU C03 is equal to 2. CU C04 is one of four CUs divided from CU C03 and has a size of 8x8 pixels. The division depth of CU C04 is equal to 3. In this way, CUs are formed by recursively dividing the image to be coded. The division depth is variable. For example, a CU with a larger size (i.e., a smaller depth) may be set for a flat image region such as a blue sky. On the other hand, a CU with a smaller size (i.e., a larger depth) may be set for a steep image region containing many edges. Each of the set CUs then becomes a processing unit for the coding process.

[0021] A PU is a processing unit for prediction processing, including intra prediction and inter prediction. A PU is formed by dividing a CU using one of several division patterns. FIG. 2 is an explanatory diagram for describing the setting of PUs for the CU shown in FIG. 1. The right side of FIG. 2 shows eight division patterns: 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N, and nR×2N. Of these division patterns, two types, 2N×2N and N×N, can be selected for intra prediction (N×N can only be selected for SCU). On the other hand, all eight division patterns can be selected for inter prediction when asymmetric motion partitioning is enabled.

[0022] A TU is a processing unit of orthogonal transform processing. A TU is formed by dividing a CU (or, for an intra CU, each PU within the CU) to a certain depth. FIG. 3 is an explanatory diagram for describing the setting of TUs in the CU shown in FIG. 1. The right side of FIG. 3 shows one or more TUs that can be set to CU C02. For example, TU T01 has a size of 32×32 pixels, and the TU division depth is equal to zero. TU T02 has a size of 16×16 pixels, and the TU division depth is equal to one. TU T03 has a size of 8×8 pixels, and the TU division depth is equal to two.

[0023] The type of block division to perform in order to set blocks such as the above-mentioned CU, PU, ​​and TU in an image is typically determined based on a comparison of costs that affect encoding efficiency. For example, the encoder compares the costs between one CU of 2M×2M pixels and four CUs of M×M pixels, and if setting four CUs of M×M pixels results in higher encoding efficiency, the encoder determines to divide the CU of 2M×2M pixels into four CUs of M×M pixels.

[0024] When encoding an image, CTBs (or LCUs) set in a grid pattern within the image (or slice, tile) are scanned in raster scan order. Within one CTB, CUs are scanned by tracing the quadtree from left to right and top to bottom. When processing a current block, information from neighboring blocks above and to the left is used as input information. FIG. 4 is an explanatory diagram for explaining the scanning order of CUs / PUs. The upper left of FIG. 4 shows four CUs C10, C11, C12, and C13 that may be included in one CTB. The numbers in the boxes of each CU indicate the processing order. The encoding process is performed in the order of the upper left CU C10, the upper right CU C11, the lower left CU C12, and the lower right CU C13. The right of FIG. 4 shows one or more PUs for inter prediction that may be set to CU C11. The bottom of FIG. 4 shows one or more PUs for intra prediction that may be set to CU C12. As indicated by the numbers in the boxes of these PUs, the PUs are also scanned by tracing from left to right and top to bottom.

[0025] This concludes the explanation of block division in HEVC. Next, we will explain QTBT, which is a block structure described in JVET-C0024, "EE2.1: Quadtree plus binary tree structure integration with JEM tools." Figure 5 is a diagram explaining the shapes of CUs, PUs, and TUs in QTBT.

[0026] Specifically, in the block division of a CU, one block can be divided not only into four (=2x2) sub-blocks but also into two (=1x2, 2x1) sub-blocks. That is, the block division of a CU is performed by recursively repeating the division of one block into four or two sub-blocks, resulting in the formation of a quad-tree or a horizontal or vertical binary-tree tree structure. As described above, a block can be recursively divided according to a combination of a quad-tree and a binary-tree.

[0027] As a result, the shape of the CU can be not only square but also rectangular. For example, a CTU (Coding Tree Unit) When the CU size is 128x128, the CU size (horizontal size w × vertical size h) can be not only square sizes such as 128x128, 64x64, 32x32, 16x16, 8x8, and 4x4, but also rectangular sizes such as 128x64, 128x32, 128x16, 128x8, 128x4, 64x128, 32x128, 16x128, 8x128, 4x128, 64x32, 64x16, 64x8, 64x4, 32x64, 16x64, 8x64, 4x64, 32x16, 32x8, 32x4, 16x32, 8x32, 4x32, 16x8, 16x4, 8x16, 4x16, 8x4, and 4x8, as shown in Figure 5. In Non-Patent Document 2, PU and TU are the same as CU. However, the block structures of CU, PU, ​​and TU may be independent from each other. This technology is not only applicable to a block structure in which CU, PU, ​​and TU are the same, but also to a block structure in which CU, PU, ​​and TU are independent.

[0028] In this specification, the term "block" may be used to refer to a partial region or processing unit of an image (picture) (not a block of a processing unit). In this case, a "block" refers to any partial region within a picture, and its size, shape, characteristics, etc. are not limited. In other words, a "block" in this case includes any partial region (processing unit), such as a TU, PU, ​​CU, CTU, CTB, tile, or slice.

[0029] Furthermore, in this specification, a block boundary may be a boundary of any of the above-mentioned blocks, including, for example, a boundary of blocks divided by block division in HEVC and a boundary of blocks divided by block division in QTBT. Furthermore, this technology is also applicable to the block structure and block boundary described in JVET-D0117, "Multi-Type-Tree."

[0030] [1-2. Existing deblocking filters] Next, an existing deblocking filter will be described. Processing by a deblocking filter in an existing image encoding method such as HEVC includes a filtering necessity determination process, a filter strength determination process, and a filtering process. Below, the filtering necessity determination process, the filter strength determination process, and the filtering process will be described using HEVC as an example.

[0031] (1) HEVC filtering necessity determination process The filtering necessity determination process determines whether or not a deblocking filter should be applied to every four lines of a block boundary of an input image. If the block boundary is a vertical boundary, the above lines correspond to rows that are perpendicular to the vertical boundary. If the block boundary is a horizontal boundary, the above lines correspond to columns that are perpendicular to the horizontal boundary.

[0032] FIG. 6 is an explanatory diagram showing an example of pixels in two blocks Bp and Bq, each consisting of 4×4 pixels, adjacent to each other across a vertical boundary. Here, a vertical boundary will be used as an example, but the matters explained here can be applied equally to a horizontal boundary. In the example of FIG. 6, the pixels in block Bp are arranged as follows: j where i is the column index and j is the row index. The column index i is numbered 0, 1, 2, 3 (from left to right) starting from the column closest to the vertical boundary. The row index j is numbered 0, 1, 2, 3 (from top to bottom). Meanwhile, the pixels in block Bb are numbered qk j where k is the column index and j is the row index. The column indices k are numbered 0, 1, 2, 3 (from right to left) starting with the column closest to the vertical boundary.

[0033] For the vertical boundary between blocks Bp and Bq shown in FIG. 6, whether to apply a deblocking filter can be determined according to the following conditions:

[0034] ·Decision condition···Applied if both condition M and condition N are true -Condition M: (M1) Block Bp or Bq is in intra prediction mode; (M2) Block Bp or Bq has non-zero orthogonal transform coefficients, and the boundary between blocks Bp and Bq is the boundary of a TU. (M3) The absolute value of the difference between the motion vectors of blocks Bp and Bq is 1 pixel or more; or (M4) The reference images for motion compensation of blocks Bp and Bq are different, or the number of motion vectors is different. -Condition N: |p20-2*p10+p00|+|p23-2*q13+p03|+|p20-2*q10+q00|+|q23-2*q13+q03|<β

[0035] In the condition N, β is an edge determination threshold. The initial value of β is given according to the quantization parameter. The value of β can be specified by the user using a parameter in the slice header.

[0036] That is, as shown by dashed-line frames L11 and L14 in Fig. 6, the filtering necessity determination process (particularly the determination of condition N) refers to the pixels in the first and fourth rows of each block (the top row is counted as line 1). Similarly, the filtering necessity determination process for horizontal boundaries refers to the pixels in the first and fourth columns of each block (not shown in Fig. 6). Then, for boundaries that are determined to require the application of a deblocking filter according to the above-mentioned determination conditions, the filtering strength determination process described below is performed.

[0037] (2) HEVC filter strength determination process When it is determined that a deblocking filter should be applied to a certain boundary, a process for determining the filter strength to be applied is performed. In HEVC, a process for determining whether to apply a strong filter (hereinafter sometimes referred to as a strong filter) or a weak filter (hereinafter sometimes referred to as a weak filter) is performed.

[0038] The strong filter determination process is performed in units of four lines, just like the filtering necessity determination process. For example, in the example shown in Figure 6, the strong filter determination process is performed by referring to the pixels on the first and fourth lines of each block indicated by dashed lines L11 and L14.

[0039] In the following, line indices (row indices at vertical boundaries and column indices at horizontal boundaries) will be omitted as appropriate, but when describing determination processing in units of four lines, it is assumed that the pixels in the first and fourth rows of each block will be referenced.

[0040] Fig. 7 is an explanatory diagram for explaining the determination process of a strong filter in HEVC. p0 to p3 and q0 to q3 shown in Fig. 7 are examples of pixel values ​​of blocks Bp and Bq, respectively.

[0041] In the strong filter determination process in HEVC, the following conditions A1, B1, and C1 are used.

[0042] (A1)|p3-p0|+|q3-q0|<(β>>3) (B1)|p2-2*p1+p0|+|q2-2*q1+q0|<(β>>2) (C1)|p0-q0|<((tc*5+1)>>1)

[0043] The pixel ranges referenced by the above conditions A1, B1, and C1 correspond to the ranges A1, B1, and C1 shown in FIG. 7, respectively. As shown in FIG. 7, conditions A1 and B1 are determined using pixel values ​​within a block. More specifically, condition A1 is a condition for determining the flatness within a block. Condition B1 is a condition for determining the continuity within a block. Condition C3 is a condition for determining the amount of change (gap) between blocks using pixel values ​​adjacent to the block boundary.

[0044] If all of the above conditions A1, B1, and C1 are met for both the first and fourth lines, a strong filter is applied to the block boundaries of four lines. If any one of the conditions is not met, a weak filter determination process is performed for each line.

[0045] The strong filter in HEVC is expressed as follows:

[0046] 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+2p0+2q0+2q1+q2+4)>>3) p1′=Clip3(p1-2*tc,p1+2*tc,(p2+p1+p0+q0+2)>>2) q1′=Clip3(q1-2*tc,q1+2*tc,(p0+q0+q1+q2+2)>>2) p2′=Clip3(p2-2*tc,p2+2*tc,(2*p3+3*p2+p1+p0+q0+4)>>3) q2′=Clip3(q2-2*tc,q2+2*tc,(p0+q0+q1+3*q2+2*q3+4)>>3)

[0047] Note that pi′ and qk′ are pixel values ​​after application of the deblocking filter. Clip3(a, b, c) represents a process of clipping the value c within the range of a≦c≦b.

[0048] However, when the block size in a flat region (a region where pixel values ​​change little) is large, block distortion is likely to occur, and even if the above-mentioned strong filter is applied, block distortion may not be sufficiently reduced. Furthermore, as mentioned above, in HEVC, blocks larger in size than macroblocks in conventional image coding methods such as MPEG2 or H.264 / AVC may be selected. Furthermore, in the above-mentioned QTBT, blocks even larger in size than CTU in HEVC may be selected. In view of this situation, a stronger deblocking filter is needed.

[0049] For example, Non-Patent Document 3 proposes applying a filter with a wider application range than the above-mentioned strong filter to further reduce block distortion at block boundaries of large-sized blocks. In the method proposed in Non-Patent Document 3, the application range of the filter in each block is expanded from 3 pixels located near the block boundary to 7 pixels, compared to the strong filter, making it possible to apply a stronger filter.

[0050] The filter proposed in Non-Patent Document 3 (hereinafter, sometimes referred to as the already-proposed filter) is expressed as follows: Note that what is shown below is the pixel value after the filter is applied on the block Bp side.

[0051] p6′=Clip3(p6-2*tc,p6+2*tc,(3*p7+5*p6+2*p5+p4+p3+p2+p1+p0+q0+8)>>4) p5′=Clip3(p5-2*tc,p5+2*tc,(p7+2*p6+5*p5+2*p4+p3+p2+p1+p0+q0+q1+8)>>4) p4′=Clip3(p4-2*tc,p4+2*tc,(p6+3*p5+3*p4+3*p3+p2+p1+p0+q0+q1+q2+8)>>4) p3′=Clip3(p3-2*tc,p3+2*tc,(p6+2*p5+2*p4+2*p3+2*p2+2*p1+p0+q0+q1+q2+q3+8)>>4) p2′=Clip3(p2-2*tc,p2+2*tc,(p5+2*p4+2*p3+2*p2+2*p1+2*p0+2*q0+q1+q2+q3+8)>>4) p1′=Clip3(p1-2*tc,p1+2*tc,(p5+p4+2*p3+2*p2+2*p1+2*p0+2*q0+2*q1+q2+q3+8)>>4) p0′=Clip3(p0-2*tc,p0+2*tc,(p4+2*p3+2*p2+2*p1+2*p0+2*q0+2*q1+2*q2+q3+8)>>4)

[0052] As described above, the proposed filter has a wider filter application range, and the tap range referred to during filtering is also wider than that of the strong filter in HEVC.

[0053] According to Non-Patent Document 3, the proposed filter is applied when all of the following conditions R1 to R3 are true.

[0054] (R1) The size of the two blocks on either side of the block boundary in the direction perpendicular to the block boundary is equal to or greater than a predetermined threshold (16 in Non-Patent Document 3). (R2) The conditions for applying the HEVC strong filter are met. (R3) At least one of the two blocks on either side of the block boundary is in intra prediction mode.

[0055] Of the above conditions R1 to R3, only R2 is a determination condition that refers to pixel values. As described with reference to Fig. 7, the strong filter application condition of condition R2 refers to only four pixels located near the block boundary in each block, and the reference range in condition R2 is narrower than the application range of the filter proposed in Non-Patent Document 3. Therefore, when the above determination conditions R1 to R3 are used, there is a risk that an inappropriate filter will be applied.

[0056] Fig. 8 is an explanatory diagram showing an example of block boundaries to which the proposed filters are applied. Fig. 8 shows, for an image H1, a weak filter application boundary to which a weak filter is applied, a strong filter application boundary to which a strong filter is applied, and a proposed filter application boundary to which a proposed filter is applied.

[0057] Fig. 9 is a schematic diagram showing an enlargement of region H10 shown in Fig. 8. As shown in Fig. 8, it has been determined that the block boundaries of region H10 shown in Fig. 9 should be subjected to the proposed filter. The reference range used for determination under condition R2 is range H11 shown in Fig. 9. As shown in Fig. 9, range H11 of region H10 is a flat region with little change in pixel values, so when determination under condition R2 is made, a strong filter is likely to be applied.

[0058] However, the application range of the proposed filter is range H12 shown in Fig. 9. Here, as shown in Fig. 9, range H13 included in range H12 includes the boundary between the object (subject) and the background, so it is not desirable to apply the deblocking filter to range H13. For example, if the deblocking filter (proposed filter) is applied to range H12 including range H13, the PSNR (Peak signal-to-noise ratio) may be significantly reduced.

[0059] Therefore, the present invention has been devised with the above-mentioned circumstances in mind, and according to the present invention, it is possible to apply a more appropriate filter.

[0060] 2. Overview of the device An overview of an example device to which the technology disclosed in this specification can be applied will be described using Figures 10 and 11. The technology disclosed in this specification can be applied to, for example, an image encoding device and an image decoding device.

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

[0062] Referring to FIG. 10, the image encoding device 10 includes a sorting buffer 11, a control unit 12, a subtraction unit 13, an orthogonal transformation unit 14, a quantization unit 15, a lossless encoding unit 16, an accumulation buffer 17, an inverse quantization unit 21, an inverse orthogonal transformation unit 22, an addition unit 23, a deblocking filter 24a, an SAO filter 25, a frame memory 26, a switch 27, a mode setting unit 28, an intra prediction unit 30, and an inter prediction unit 40.

[0063] The sorting buffer 11 sorts image data of a series of images constituting a video to be encoded according to a GOP (Group of Pictures) structure related to the encoding process. The sorting buffer 11 outputs the sorted image data to the control unit 12, the subtraction unit 13, the intra prediction unit 30, and the inter prediction unit 40.

[0064] The control unit 12 divides the image data into blocks, which are processing units, based on an externally or pre-specified block size. The block division by the control unit 12 may result in, for example, the above-mentioned QTBT block structure. The control unit 12 also determines encoding parameters for the encoding process, for example, based on RDO (Rate-Distortion Optimization). The determined encoding parameters are supplied to each unit.

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

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

[0067] The quantization unit 15 is supplied with the transform coefficient data 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 coefficient data and outputs the quantized transform coefficient data (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.

[0068] 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 encoding parameters referenced by the decoder and inserts the encoded encoding parameters into the encoded stream. The encoding parameters encoded by the lossless encoding unit 16 may include encoding parameters determined by the control unit 12 described above. The lossless encoding unit 16 outputs the generated encoded stream to the accumulation buffer 17.

[0069] 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.

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

[0071] The inverse quantization unit 21, the inverse orthogonal transformation unit 22, and the addition unit 23 constitute a local decoder. The local decoder plays a role in locally decoding coded data to obtain decoded image data.

[0072] The inverse quantization unit 21 inverse quantizes the quantized data using the same quantization parameters as those used by the quantization unit 15 to restore the transform coefficient data. Then, the inverse quantization unit 21 outputs the restored transform coefficient data to the inverse orthogonal transform unit 22.

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

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

[0075] The deblocking filter 24a and the SAO filter 25 are each an in-loop filter intended to improve the image quality of the reconstructed image.

[0076] The deblocking filter 24a reduces block distortion by filtering the decoded image data input from the adder 23, and outputs the filtered decoded image data to the SAO filter 25. The processing by the deblocking filter 24a will be described in detail later.

[0077] The SAO filter 25 removes noise by applying edge offset processing or band offset processing to the decoded image data input from the deblocking filter 24 a, and outputs the processed decoded image data to the frame memory 26 .

[0078] The frame memory 26 uses a storage medium to store the decoded image data before filtering input from the adder 23 and the decoded image data after application of the in-loop filter input from the SAO filter 25.

[0079] The switch 27 reads, from the frame memory 26, decoded image data before filtering to be used for intra prediction, and supplies the read decoded image data as reference image data to the intra prediction unit 30. The switch 27 also reads, from the frame memory 26, decoded image data after filtering to be used for inter prediction, and supplies the read decoded image data as reference image data to the inter prediction unit 40.

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

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

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

[0083] [2-2. Image Decoding Device] Next, decoding of the coded data coded as above will be described. Fig. 11 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. 11, the image decoding device 60 includes an accumulation buffer 61, a lossless decoding unit 62, an inverse quantization unit 63, an inverse orthogonal transform unit 64, an adder 65, a deblocking filter 24b, an SAO filter 67, a sorting buffer 68, a D / A (Digital to Analogue) conversion unit 69, a frame memory 70, selectors 71a and 71b, an intra prediction unit 80, and an inter prediction unit 90.

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

[0085] The lossless decoding unit 62 decodes the quantized data from the coded stream input from the accumulation buffer 61 according to the coding method used at the time of coding. The lossless decoding unit 62 outputs the decoded quantized data to the inverse quantization unit 63.

[0086] The lossless decoding unit 62 also decodes various encoding parameters inserted in the header area of ​​the encoded stream. The parameters decoded 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 80. The lossless decoding unit 62 also outputs the information regarding inter prediction to the inter prediction unit 90.

[0087] 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 during encoding, thereby restoring the transform coefficient data. The inverse quantization unit 63 outputs the restored transform coefficient data to the inverse orthogonal transform unit 64.

[0088] The inverse orthogonal transform unit 64 generates prediction error data by performing inverse orthogonal transform on the transform coefficient data 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 error data to the adder 65.

[0089] The adder 65 generates decoded image data by adding the prediction error data input from the inverse orthogonal transformer 64 and the prediction image data input from the selector 71b. Then, the adder 65 outputs the generated decoded image data to the deblocking filter 24b and the frame memory 70.

[0090] The deblocking filter 24b reduces block distortion by filtering the decoded image data input from the adder 65, and outputs the filtered decoded image data to the SAO filter 67. The processing by the deblocking filter 24b will be described in detail later.

[0091] The SAO filter 67 removes noise by applying edge offset processing or band offset processing to the decoded image data input from the deblocking filter 24b, and outputs the processed decoded image data to a sorting buffer 68 and a frame memory .

[0092] The sorting buffer 68 generates a series of image data in time series by sorting the images input from the SAO filter 67. Then, the sorting buffer 68 outputs the generated image data to the D / A conversion unit 69.

[0093] The D / A conversion unit 69 converts the digital image data input from the rearrangement buffer 68 into an analog image signal. Then, the D / A conversion unit 69 outputs the analog image signal to, for example, a display (not shown) connected to the image decoding device 60, thereby displaying the decoded video.

[0094] The frame memory 70 uses a storage medium to store the decoded image data before filtering input from the adder 65 and the decoded image data after filtering input from the SAO filter 67.

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

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

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

[0098] The inter prediction unit 90 performs inter prediction processing based on information related to inter prediction input from the lossless decoding unit 62 and reference image data from the frame memory 70, and generates predicted image data. Then, the inter prediction unit 90 outputs the generated predicted image data to the selector 71b.

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

[0100] The deblocking filter 24 according to this embodiment applies an extended strong filter (extended strong filter) having an application range extended beyond that of the above-described HEVC strong filter to pixels in the extended application range (extended application range). Furthermore, the deblocking filter 24 according to this embodiment determines whether to apply the extended strong filter according to the extended application range. Hereinafter, an example of an extended strong filter whose application range is extended from 3 pixels to 7 pixels located near a block boundary will be described, but this embodiment is not limited to this example, and other examples of extended strong filters will be described later.

[0101] 12 is a block diagram showing an example of a detailed configuration of the deblocking filter 24 according to the first embodiment. Referring to FIG. 12, the deblocking filter 24 includes an application necessity determination unit 110, a filter strength determination unit 120, and a filtering unit 130.

[0102] (1) Application necessity determination section The application necessity determination unit 110 determines whether or not a deblocking filter should be applied to a block boundary. For example, the application necessity determination unit 110 may determine that a deblocking filter should be applied when both the condition M and the condition N in the above-described existing method are true.

[0103] To make the above-mentioned determination, the application necessity determination unit 110 is supplied with determination information for adjacent blocks adjacent to each block boundary. The determination information supplied here includes, for example, mode information, transformation coefficient information, and motion vector information. The application necessity determination unit 110 then determines whether the following conditions are satisfied for each block boundary in units of four lines:

[0104] ·Decision condition···Applied if both condition M and condition N are true -Condition M: (M1) Block Bp or Bq is in intra prediction mode; (M2) Block Bp or Bq has non-zero orthogonal transform coefficients, and the boundary between blocks Bp and Bq is the boundary of a TU. (M3) The absolute value of the difference between the motion vectors of blocks Bp and Bq is 1 pixel or more; or (M4) The reference images for motion compensation of blocks Bp and Bq are different, or the number of motion vectors is different. -Condition N: |p20-2*p10+p00|+|p23-2*q13+p03|+|p20-2*q10+q00|+|q23-2*q13+q03|<β

[0105] Then, the application necessity determining unit 110 causes the filter strength determining unit 120 to determine whether to apply a filter for each strength for block boundaries that satisfy the above-mentioned determination conditions. On the other hand, the application necessity determining unit 110 causes the filter strength determining unit 120 to skip the determination whether to apply a filter for each strength for block boundaries that do not satisfy the above-mentioned determination conditions.

[0106] The determination by the application necessity determining unit 110 described here is merely an example. That is, a determination condition different from the above-described determination condition may be used. For example, any of the determination conditions M1 to M4 and N may be omitted, or another condition may be added.

[0107] (2) Filter strength determination section The filter strength determination unit 120 determines whether or not to apply a filter of each strength to pixels located near a block boundary of the input image (decoded image) for which the application necessity determination unit 110 has determined that a deblocking filter should be applied. For example, the filter strength determination unit 120 may determine whether to apply a weak filter, a strong filter, or an extended strong filter, which has an application range that is extended beyond that of the strong filter.

[0108] For example, the filter strength determination unit 120 may first determine, in units of four lines, whether to apply an extended strong filter to the block boundary. Alternatively, the filter strength determination unit 120 may determine, in units of four lines, whether to apply a strong filter to a block boundary for which it has been determined that an extended strong filter should not be applied. Then, the filter strength determination unit 120 may determine, in units of one line, whether to apply a weak filter to a block boundary for which it has been determined that a strong filter should not be applied.

[0109] According to this configuration, a stronger filter is more likely to be applied to a block boundary to which a stronger filter can be applied.

[0110] When the filter strength determination unit 120 determines that one of the extended strong filter, strong filter, or weak filter should be applied, it outputs information indicating the filter strength (for example, a flag indicating one of the extended strong filter, strong filter, or weak filter) to the filtering unit 130 for each determined unit.

[0111] Furthermore, the filter strength determination unit 120 causes the filtering unit 130 to skip application of the deblocking filter to a line for which it has been determined that no application of the extended strong filter, the strong filter, or the weak filter is to be applied.

[0112] The filter strength determination unit 120 may determine whether to apply a strong filter using, for example, the determination conditions A1, B1, and C1 for applying a strong filter in HEVC described above. Also, the filter strength determination unit 120 may determine whether to apply a weak filter in the same manner as the determination for applying a weak filter in HEVC.

[0113] The following describes the determination process related to application of the extended strong filter by the filter strength determination unit 120. Fig. 13 is an explanatory diagram for describing the determination process for determining whether or not to apply the extended strong filter. The application range (extended application range) of the extended strong filter according to this embodiment is seven pixels located near the block boundary, which correspond to pixels p0 to p6 and q0 to q6 among the pixels shown in Fig. 13.

[0114] The filter strength determination unit 120 according to this embodiment determines whether to apply an extended strong filter according to the application range of the extended strong filter (extended application range). For example, the filter strength determination unit 120 may perform the determination process by referring to pixels in a range wider than the extended application range.

[0115] According to this configuration, for example, if a boundary between an object and background exists within the range to which the extended strong filter is applied, it is possible to determine that the extended strong filter will be less likely to be applied, making it easier to apply a more appropriate deblocking filter.

[0116] For example, the filter strength determining unit 120 may determine to apply the extended strong filter when the following condition V11 is satisfied.

[0117] -Condition V11: True if all of the following conditions A110, B111 to B113, and C110 are true (A110)|p7-p0|+|q7-q0|<(beta>>3) (B111)|p2-2*p1+p0|+|q2-2*q1+q0|<(beta>>2) (B112)|p4-2*p3+p2|+|q4-2*q3+q2|<(beta>>2) (B113)|p6-2*p5+p4|+|q6-2*q5+q4|<(beta>>2) (C110)|p0-q0|<((tc*5+1)>>1)

[0118] As another example of the determination condition, the filter strength determination unit 120 may determine to apply the extended strong filter when the following condition V12 is satisfied.

[0119] - Judgment condition V12: True if all of the following conditions A110, B110, and C110 are true (A110)|p7-p0|+|q7-q0|<(beta>>3) (B110)|p2-2*p1+p0|+|q2-2*q1+q0|+|p4-2*p3+p2|+|q4-2*q3+q2|+|p6-2*p5+p4|+|q6-2*q5+q4|<(3*beta>>2) (C110)|p0-q0|<((tc*5+1)>>1)

[0120] As another example of the determination condition, the filter strength determination unit 120 may determine to apply the extended strong filter when the following condition V13 is satisfied.

[0121] -Condition V13: True if all of the following conditions A110, B115, and C110 are true (A110)|p7-p0|+|q7-q0|<(beta>>3) (B115)|p6-2*p3+p0|+|q6-2*q3+q0|<(beta>>2) (C110)|p0-q0|<((tc*5+1)>>1)

[0122] In the above conditions V11 to V13, the range of pixels referenced in condition A110 corresponds to range A11 shown in Fig. 13. Furthermore, in the above condition V11, the range of pixels referenced in conditions B111 to B113 correspond to ranges B11 to B13 shown in Fig. 13. Furthermore, in the above conditions V12 and V13, the range of pixels referenced in conditions B110 and B115 correspond to ranges B11 to B13 shown in Fig. 13.

[0123] Among the above conditions V11 to V13, condition A110 is a condition for determining flatness within a block. Conditions B110, B111 to B113, and B115 are conditions for determining continuity within a block. Condition C110 determines the amount of change (gap) between blocks using pixel values ​​adjacent to the block boundary.

[0124] Here, the conditions B110, B111 to B113, and B115 for determining continuity use continuously expanded pixels compared to the above-described existing condition B1 for determining continuity. That is, the filter strength determination unit 120 performs continuity determination processing for determining the continuity of pixel values ​​included in the extended application range according to the conditions in which the pixels used when determining the continuity of pixel values ​​included in the extended application range are continuously expanded.

[0125] In this specification, the flatness of pixel values, the continuity of pixel values, and the state of the amount of change (gap) in pixel values ​​for pixels included in the application range or extended application range of the deblocking filter are collectively referred to as the state of pixels included in the application range or the state of pixels included in the extended application range. The filter strength determination unit 120 according to this embodiment uses any of conditions V11 to V13 to determine whether to apply the extended strong filter according to the state of the pixels included in the extended application range.

[0126] Furthermore, the filter strength determination unit 120 may determine whether to apply the extended strong filter in units of four lines, and may determine to apply the extended strong filter when both the first and fourth lines satisfy any of the above conditions V11 to V13.

[0127] Furthermore, the filter strength determination unit 120 may determine whether to apply an extended strong filter by combining any of the above conditions V11 to V13 with the condition R1 or condition R2 in the existing method described above. Note that in this embodiment, the threshold value of the condition R1 is not limited to 16, and other values ​​may be used as the threshold value.

[0128] (3) Filtering section The filtering unit 130 applies a deblocking filter to pixels located near block boundaries of the input image (decoded image) according to the determination results of the application necessity determination unit 110 and the filter strength determination unit 120. When the filter strength determination unit 120 determines that a strong filter or a weak filter should be applied, for example, a strong filter or a weak filter in HEVC may be applied.

[0129] Furthermore, the filtering unit 130 applies the extended strong filter to pixels determined by the filter strength determination unit 120 to be subjected to the extended strong filter. An example of the extended strong filter applied by the filtering unit 130 will be described below.

[0130] Fig. 14 is an explanatory diagram illustrating an example of the extended strong filter applied by the filtering unit 130. As shown in Fig. 14, assume a case where there is a gap G due to block distortion at the block boundary (between p0 and q0) to which the extended strong filter is applied, and there is no difference (flat) in pixel values ​​within the extended application range (p0 to p6 and q0 to q6) within the block. In such a case, by applying a filter with strong low-pass characteristics so that the shift amount of G = p0 - q0 changes depending on the position from the block boundary, the block distortion can be reduced as shown in Fig. 14.

[0131] For example, the filtering unit 130 may apply an extended strong filter having the following first filter coefficients to a pixel determined by the filter strength determination unit 120 to be subjected to the extended strong filter.

[0132] First filter coefficient p6′=Clip3(p6-2*tc,p6+2*tc,(4*p7+8*p6+4*p5-p0+q0+8)>>4) p5′=Clip3(p5-2*tc,p5+2*tc,(4*p6+8*p5+4*p4-2*p0+2*q0+8)>>4) p4′=Clip3(p4-2*tc,p4+2*tc,(4*p5+8*p4+4*p3-3*p0+3*q0+8)>>4) p3′=Clip3(p3-2*tc,p3+2*tc,(4*p4+8*p3+4*p2-4*p0+4*q0+8)>>4) p2′=Clip3(p2-2*tc,p2+2*tc,(4*p3+8*p2+4*p1-5*p0+5*q0+8)>>4) p1′=Clip3(p1-2*tc,p1+2*tc,(4*p2+8*p1+4*p0-6*q0+6*q0+8)>>4) p0′=Clip3(p0-2*tc,p0+2*tc,(4*p1+5*p0+7*q0+8)>>4) q0′=Clip3(q0-2*tc,q0+2*tc,(7*p0+5*q0+4*q1+8)>>4) q1′=Clip3(q1-2*tc,q1+2*tc,(6*p0-6*q0+4*q0+8*q1+4*q2+8)>>4) q2′=Clip3(q2-2*tc,q2+2*tc,(5*p0-5*q0+4*q1+8*q2+4*q3+8)>>4) q3′=Clip3(q3-2*tc,q3+2*tc,(4*p0-4*q0+4*q2+8*q3+4*q4+8)>>4) q4′=Clip3(q4-2*tc,q4+2*tc,(3*p0-3*q0+4*q3+8*q4+4*q5+8)>>4) q5′=Clip3(q5-2*tc,q5+2*tc,(2*p0-2*q0+4*q4+8*q5+4*q6+8)>>4) q6′=Clip3(q6-2*tc,q6+2*tc,(p0-q0+4*q5+8*q6+4*q7+8)>>4)

[0133] Furthermore, the filtering unit 130 may apply an extended strong filter having the following second filter coefficients to a pixel determined by the filter strength determination unit 120 to be subjected to the extended strong filter.

[0134] Second filter coefficient p6′=Clip3(p6-2*tc,p6+2*tc,(6*p7+4*p6+4*p5+2*p4-p0+q0+8)>>4) p5′=Clip3(p5-2*tc,p5+2*tc,(2*p7+4*p6+4*p5+4*p4+2*p3-2*p0+2*q0+8)>>4) p4′=Clip3(p4-2*tc,p4+2*tc,(2*p6+4*p5+4*p4+4*p3+2*p2-3*p0+3*q0+8)>>4) p3′=Clip3(p3-2*tc,p3+2*tc,(2*p5+4*p4+4*p3+4*p2+2*p1-4*p0+4*q0+8)>>4) p2′=Clip3(p2-2*tc,p2+2*tc,(2*p4+4*p3+4*p2+4*p1+2*p0-5*q0+5*q0+8)>>4) p1′=Clip3(p1 -2*tc,p1+2*tc,(2*p3+4*p2+4*p1+6*q0+8)>>4) p0′=Clip3(p0-2*tc,p0+2*tc,(2*p2+4*p1+3*p0+5*q0+2*q1+8)>>4) q0′=Clip3(q0-2*tc,q0+2*tc,(2*p1+5*p0+3*q0+4*q1+2*q2+8)>>4) q1′=Clip3(q1-2*tc,q1+2*tc,(6*p0+4*q1+4*q2+2*q3+8)>>4) q2′=Clip3(q2-2*tc,q2+2*tc,(5*p0-5*q0+2*q0+4*q1+4*q2+4*q3+2*q4+8)>>4) q3′=Clip3(q3-2*tc,q3+2*tc,(4*p0-4*q0+2*q1+4*q2+4*q3+4*q4+2*q5+8)>>4) q4′=Clip3(q4-2*tc,q4+2*tc,(3*p0-3*q0+2*q2+4*q3+4*q4+4*q5+2*q6+8)>>4) q5′=Clip3(q5-2*tc,q5+2*tc,(2*p0-2*q0+2*q3+4*q4+4*q5+4*q6+2*q7+8)>>4) q6′=Clip3(q6-2*tc,q6+2*tc,(p0-q0+2*q4+4*q5+4*q6+6*q7+8)>>4)

[0135] 15 and 16 are explanatory diagrams for explaining the concept of deriving the filter coefficients of the extended strong filter applied by the filtering unit 130 according to this embodiment.

[0136] The first and second filter coefficients described above have strong low-pass characteristics and can perform strong smoothing. Therefore, when the pixel values ​​of pixels near the block boundary change little within the block as shown in Fig. 14, the extended strong filter using the first and second filter coefficients functions effectively. However, when pixel values ​​change within the block as shown in Fig. 15, for example, applying the extended strong filter using the first and second filter coefficients may result in excessive smoothing, which may result in, for example, a blurred image.

[0137] Here, it is considered that pixel values ​​in the vicinity of the block boundary shown in FIG. 15 are decomposed into DC components (low-frequency components) and AC components (high-frequency components) as shown in FIG.

[0138] The DC component is, for example, a base signal value for each block (pi and qi) on either side of the block boundary. For example, in the example shown in FIG. 15, p0 and q0, which are values ​​closest to the block boundary, are used as the DC component. Note that the DC component is not limited to this example, and may be the average value for each block (mean(p0:pn) and mean(q0:q0)), or the minimum value for each block (min(p0:pn) and min(q0:q0)). Note that n is determined by the reference range (tap range) of the extended strong filter.

[0139] The AC components are residual signal values ​​obtained by subtracting the DC components in each block (pi and qi) on either side of the block boundary. In the example shown in Fig. 15, the AC components are the values ​​obtained by subtracting p0 from the block on the p side, and the values ​​obtained by subtracting q0 from the block on the q side.

[0140] A filter for removing block distortion with strong low-pass characteristics (for example, a filter using the first filter coefficient or the second filter coefficient) is applied to the DC component. On the other hand, a filter different from the above, for example, a filter different from the filter for removing block distortion, may be applied to the AC component. For example, an FIR filter with weak low-pass characteristics or a bilateral filter may be applied to the AC component. Also, no filter may be applied to the AC component.

[0141] For example, a filter with the following third filter coefficient may be applied to the DC component.

[0142] Third filter coefficient p0 position:p0-7 / 16*(p0-q0)=p0-7*(p0-q0)>>4 p1 position:p0-6 / 16*(p0-q0)=p0-6*(p0-q0)>>4 p2 position:p0-5 / 16*(p0-q0)=p0-5*(p0-q0)>>4 p3 position:p0-4 / 16*(p0-q0)=p0-4*(p0-q0)>>4 p4 position:p0-3 / 16*(p0-q0)=p0-3*(p0-q0)>>4 p5 position:p0-2 / 16*(p0-q0)=p0-2*(p0-q0)>>4 p6 position:p0-1 / 16*(p0-q0)=p0-1*(p0-q0)>>4

[0143] Furthermore, a filter with a fourth filter coefficient of 121 may be applied to the AC components, with the pixel of interest at the center, as follows:

[0144] Fourth filter coefficient p0 position:{1*(p1-p0)+2*(p0-p0)+1*(q0-q0)} / 4=1*(p1-p0)>>2 p1 position:{1*(p2-p0)+2*(p1-p0)+1*(p0-p0)} / 4={1*(p2-p0)+2*(p1-p0)}>>2 p2 position:{1*(p3-p0)+2*(p2-p0)+1*(p1-q0)} / 4={1*(p3-p0)+2*(p2-p0)+1*(p1-q0)}>>2 p3 position:{1*(p4-p0)+2*(p3-p0)+1*(p2-q0)} / 4={1*(p4-p0)+2*(p3-p0)+1*(p2-q0)}>>2 p4 position:{1*(p5-p0)+2*(p4-p0)+1*(p3-q0)} / 4={1*(p5-p0)+2*(p4-p0)+1*(p3-q0)}>>2 p5 position:{1*(p6-p0)+2*(p5-p0)+1*(p4-q0)} / 4={1*(p6-p0)+2*(p5-p0)+1*(p4-q0)}>>2 p6 position:{1*(p7-p0)+2*(p6-p0)+1*(p5-q0)} / 4={1*(p7-p0)+2*(p6-p0)+1*(p5-q0)}>>2

[0145] The filtering unit 130 may apply an extended strong filter having a fifth filter coefficient obtained by combining the third and fourth filter coefficients described above to a pixel determined by the filter strength determination unit 120 to be subjected to the extended strong filter, as follows:

[0146] · The 5th filter coefficient p0′ = Clip3(p0 - 2*tc, p0 + 2*tc, 1*(p1 - p0) >> 2 + p0 - 7*(p0 - q0) >> 4 + offset0) = Clip3(p0 - 2*tc, p0 + 2*tc, (4*p1 + 5*p0 + 7*q0 + offset0) >> 4) p1′ = Clip3(p1 - 2*tc, p1 + 2*tc, {1*(p2 - p0) + 2*(p1 - p0)} >> 2 + p0 - 6*(p0 - q0) >> 4 + offset1) = Clip3(p1 - 2*tc, p1 + 2*tc, (4*p2 + 8*p1 + 4*p0 - 6*p0 + 6*q0 + offset1) >> 4)) p2′ = Clip3(p2 - 2*tc, p2 + 2*tc, {1*(p3 - p0) + 2*(p2 - p0) + 1*(p1 - p0)} >> 2 + p0 - 5*(p0 - q0) >> 4 + offset2) = Clip3(p2 - 2*tc, p2 + 2*tc, (4*p3 + 8*p2 + 4*p1 - 5*p0 + 5*q0 + offset2) >> 4) p3′ = Clip3(p3 - 2*tc, p3 + 2*tc, {1*(p4 - p0) + 2*(p3 - p0) + 1*(p2 - p0)} >> 2 + p0 - 4*(p0 - q0) >> 4 + offset3) = Clip3(p3 - 2*tc, p3 + 2*tc, (4*p4 + 8*p3 + 4*p2 - 4*p0 + p4′ = Clip3(p4 - 2*tc, p4 + 2*tc, {1*(p5 - p0) + 2*(p4 - p0) + 1*(p3 - p0)} >> 2 + p0 - 3*(p0 - q0) >> 4 + offset4) = Clip3(p4 - 2*tc, p4 + 2*tc, (4*p5 + 8*p4 + 4*p3 - 3*p0 + 3*q0 + offset4) >> 4) p5′ = Clip3(p5 - 2*tc, p5 + 2*tc, 1*(p6 - p0) + 2*(p5 - p0) + 1*(p4 - p0)} >> 2 + p0 - 2*(p0 - q0) >> 4 + offset5) =Clip3(p5-2*tc,p5+2*tc,(4*p6+8*p5+4*p4-2*p0+2*q0+offset5)>>4) p6′=Clip3(p6-2*tc,p6+2*tc,{1*(p7-p0)+2*(p6-p0)+1*(p5-p0)}>>2 +p0-1*(p0-q0)>>4+offset6) =Clip3(p6-2*tc,p6+2*tc,(4*p7+8*p6+4*p5-p0+q0+offset6)>>4)

[0147] Furthermore, a filter with a sixth filter coefficient of 12221 may be applied to the AC components, with the pixel of interest as shown below as the center.

[0148] 6th filter coefficient p0 position: {1*(p2-p0)+2*(p1-p0)+2*(p0-p0)+2*(q0-q0)+1*(q1-q0)} / 8 ={1*(p2-p0)+2*(p1-p0)+1*(q1-q0)}>>3 p1 position: {1*(p3-p0)+2*(p2-p0)+2*(p1-p0)+2*(p0-p0)+1*(q0-q0)} / 8 ={1*(p3-p0)+2*(p2-p0)+2*(p1-p0)}>>3 p2 position: {1*(p4-p0)+2*(p3-p0)+2*(p2-p0)+2*(p1-p0)+1*(p0-p0)} / 8 ={1*(p4-p0)+2*(p3-p0)+2*(p2-p0)+2*(p1-p0)}>>3 p3 position: {1*(p5-p0)+2*(p4-p0)+2*(p3-p0)+2*(p2-p0)+1*(p1-p0)} / 8 ={1*(p5-p0)+2*(p4-p0)+2*(p3-p0)+2*(p2-p0)+1*(p1-p0)}>>3 p4 position: {1*(p6-p0)+2*(p5-p0)+2*(p4-p0)+2*(p3-p0)+1*(p2-p0)} / 8 ={1*(p6-p0)+2*(p5-p0)+2*(p4-p0)+2*(p3-p0)+1*(p2-p0)}>>3 p5 position: {1*(p7-p0)+2*(p6-p0)+2*(p5-p0)+2*(p4-p0)+1*(p3-p0)} / 8 ={1*(p7-p0)+2*(p6-p0)+2*(p5-p0)+2*(p4-p0)+1*(p3-p0)}>>3 p6 position: {1*(p7-p0)+2*(p7-p0)+2*(p6-p0)+2*(p5-p0)+1*(p4-p0)} / 8 ={3*(p7-p0)+2*(p6-p0)+2*(p5-p0)+1*(p4-p0)}>>3

[0149] In addition, at the p6 position of the sixth filter coefficient described above, the leftmost reference pixel is p8, but since the pixels referenced in the determination by the filter strength determination unit 120 are up to p7, p7 is used as a substitute for p8.

[0150] The filtering unit 130 may apply an extended strong filter with a seventh filter coefficient obtained by combining the third filter coefficient and the sixth filter coefficient described above to a pixel determined by the filter strength determination unit 120 to be subjected to the extended strong filter, as follows:

[0151] 7th filter coefficient p0′=Clip3(p0-2*tc,p0+2*tc,{1*(p2-p0)+2*(p1-p0)+1*(q1-q0)}>>3 +p0-7*(p0-q0)>>4+offset0) =Clip3(p0-2*tc,p0+2*tc,(2*p2+4*p1+3*p0+5*q0+2*q1+offset0)>>4) p1′=Clip3(p1-2*tc,p1+2*tc,{1*(p3-p0)+2*(p2-p0)+2*(p1-p0)}>>3 +p0-6*(p0-q0)>>4+offset1) =Clip3(p1-2*tc,p1+2*tc,(2*p3+4*p2+4*p1+6*q0+offset1)>>4) p2′=Clip3(p2-2*tc,p2+2*tc,{1*(p4-p0)+2*(p3-p0)+2*(p2-p0)+2*(p1-p0)}>>3 +p0-5*(p0-q0)>>4+offset2) =Clip3(p2-2*tc,p2+2*tc,(2*p4+4*p3+4*p2+4*p1-3*p0+5*q0+offset2)>>4) p3′=Clip3(p3-2*tc,p3+2*tc,{1*(p5-p0)+2*(p4-p0)+2*(p3-p0)+2*(p2-p0) +1*(p1-p0)}>>3+p0-4*(p0-q0)>>4+offset3) =Clip3(p3-2*tc,p3+2*tc,(2*p5+4*p4+4*p3+4*p2+2*p1-4*p0+4*q0+offset3)>>4) p4′=Clip3(p4-2*tc,p4+2*tc,{1*(p6-p0)+2*(p5-p0)+2*(p4-p0)+2*(p3-p0) +1*(p2-p0)}>>3+p0-3*(p0-q0)>>4+offset4) =Clip3(p4-2*tc,p4+2*tc,(2*p6+4*p5+4*p4+4*p3+2*p2-3*p0+3*q0+offset4)>>4) p5′=Clip3(p5-2*tc,p5+2*tc,{1*(p7-p0)+2*(p6-p0)+2*(p5-p0)+2*(p4-p0) +1*(p3-p0)}>>3+p0-2*(p0-q0)>>4+offset5) =Clip3(p5-2*tc,p5+2*tc,(2*p7+4*p6+4*p5+4*p4+2*p3-2*p0+2*q0+offset5)>>4) p6′=Clip3(p6-2*tc,p6+2*tc,{3*(p7-p0)+2*(p6-p0)+2*(p5-p0)+1*(p4-p0)}>>3 +p0-1*(p0-q0)>>4+offset6) =Clip3(p6-2*tc,p6+2*tc,(6*p7+4*p6+4*p5+2*p4-p0+q0+offset6)>>4)

[0152] Furthermore, a filter need not be applied to the AC components. In this case, the filtering unit 130 may apply an extended strong filter having an eighth filter coefficient obtained by combining the above-described third filter coefficient and the AC components to pixels for which the filter strength determination unit 120 has determined that the extended strong filter should be applied.

[0153] 8th filter coefficient p0′=Clip3(p0-2*tc,p0+2*tc,0+p0-7*(p0-q0)>>4+offset0) =Clip3(p0-2*tc,p0+2*tc,(9*p0+7*q0+offset0)>>4) p1′=Clip3(p1-2*tc,p1+2*tc,p1-p0+p0-6*(p0-q0)>>4+offset1) =Clip3(p1-2*tc,p1+2*tc,(16*p1-6*p0+6*q0+offset1)>>4) p2′=Clip3(p2-2*tc,p2+2*tc,p2-p0+p0-5*(p0-q0)>>4+offset2) =Clip3(p2-2*tc,p2+2*tc,(16*p2-5*p0+5*q0+offset2)>>4) p3′=Clip3(p3-2*tc,p3+2*tc,p3-p0+p0-4*(p0-q0)>>4+offset3) =Clip3(p3-2*tc,p3+2*tc,(16*p3-4*p0+4*q0+offset3)>>4) p4′=Clip3(p4-2*tc,p4+2*tc,p4-p0+p0-3*(p0-q0)>>4+offset4) =Clip3(p4-2*tc,p4+2*tc,(16*p4-3*p0+3*q0+offset4)>>4) p5′=Clip3(p5-2*tc,p5+2*tc,p5-p0+p0-2*(p0-q0)>>4+offset5) =Clip3(p5-2*tc,p5+2*tc,(16*p5-2*p0+2*q0+offset5)>>4) p6′=Clip3(p6-2*tc,p6+2*tc,p6-p0+p0-1*(p0-q0)>>4+offset6) =Clip3(p6-2*tc,p6+2*tc,(16*p6-p0+q0+offset6)>>4)

[0154] [3-2. Processing flow] Fig. 17 is a flowchart showing an example of the flow of processing by the deblocking filter 24 according to this embodiment. The processing from step S110 to step S180 in Fig. 17 is repeated for each block boundary in units of four lines in the input image.

[0155] First, the application necessity determination unit 110 determines whether a deblocking filter application necessity determination condition is satisfied for one boundary to be processed (hereinafter referred to as a boundary of interest) in units of four lines (S110). If the filter application necessity determination condition is not satisfied, the subsequent processes from step S120 to step S170 are skipped. On the other hand, if the boundary-based determination condition is satisfied, the process proceeds to step S120.

[0156] In step S120, filter strength determination unit 120 determines, in units of four lines, whether the determination conditions for the extended strong filter are met, according to the state of the pixels included in the extended application range. If the determination conditions for the extended strong filter are met (YES in S120), the process proceeds to step S130, where filtering unit 130 applies the extended strong filter.

[0157] On the other hand, if the determination conditions for the extended strong filter are not met (NO in S120), the process proceeds to step S140, where filter strength determination unit 120 determines whether the determination conditions for the strong filter are met for each of four lines.If the determination conditions for the strong filter are met (YES in S140), the process proceeds to step S150, where filtering unit 130 applies the strong filter.

[0158] On the other hand, if the strong filter determination condition is not met (NO in S140), the process proceeds to step S160, where filter strength determination unit 120 determines, line by line, whether the weak filter determination condition is met. If the weak filter determination condition is met (YES in S160), the process proceeds to step S170, where filtering unit 130 applies the weak filter to the line.

[0159] In step S180, if an unprocessed boundary remains in the input image (YES in step S180), a new boundary of interest is set, and the process returns to step S110. If no unprocessed boundary remains, the process for the input image (decoded image) ends.

[0160] [3-3. Modifications] Although the first embodiment has been described above, the extended strong filter applied in this embodiment is not limited to the above example. For example, an extended strong filter whose application range is extended from three pixels located near the block boundary to five pixels may be applied. Below, as a modified example of this embodiment, the application decision of such an extended strong filter and the filter coefficients will be described with reference to FIGS. 18 and 19.

[0161] 18 is an explanatory diagram for explaining the determination process for determining whether or not to apply the extended strong filter according to this modification. The application range (extended application range) of the extended strong filter according to this modification is five pixels located near the block boundary, which correspond to pixels p0 to p4 and q0 to q4 among the pixels shown in FIG.

[0162] The filter strength determination unit 120 according to this modification determines whether to apply an extended strong filter in accordance with the extended application range. For example, the filter strength determination unit 120 may perform the determination process by referring to pixels included in the extended application range, or may perform the determination process by referring to pixels included in a range wider than the extended application range.

[0163] For example, the filter strength determining unit 120 may determine to apply the extended strong filter when the following condition V21 is satisfied.

[0164] -Condition V21: True if all of the following conditions A210, B211, B212, and C210 are true (A210)|p5-p0|+|q5-q0|<(beta>>3) (B211)|p2-2*p1+p0|+|q2-2*q1+q0|<(beta>>2) (B212)|p4-2*p3+p2|+|q4-2*q3+q2|<(beta>>2) (C210)|p0-q0|<((tc*5+1)>>1)

[0165] As another example of the determination condition, the filter strength determination unit 120 may determine to apply the extended strong filter when the following condition V22 is satisfied.

[0166] - Judgment condition V22: True if all of the following conditions A210, B210, and C210 are true (A210)|p5-p0|+|q5-q0|<(beta>>3) (B210)|p2-2*p1+p0|+|q2-2*q1+q0|+|p4-2*p3+p2|+|q4-2*q3+q2|<(2*beta>>2) (C210)|p0-q0|<((tc*5+1)>>1)

[0167] As another example of the determination condition, the filter strength determination unit 120 may determine to apply the extended strong filter when the following condition V13 is satisfied.

[0168] -Condition V23: True if all of the following conditions A210, B215, and C210 are true (A210)|p5-p0|+|q5-q0|<(beta>>3) (B215)|p4-2*p2+p0|+|q4-2*q2+q0|<(beta>>2) (C210)|p0-q0|<((tc*5+1)>>1)

[0169] In the above conditions V21 to V23, the range of pixels referenced in condition A210 corresponds to range A21 shown in Fig. 18. Furthermore, in the above condition V21, the ranges of pixels referenced in conditions B211 and B212 correspond to ranges B21 and B22, respectively, shown in Fig. 18. Furthermore, in the above conditions V22 and V23, the ranges of pixels referenced in conditions B210 and B215 correspond to ranges B21 and B22 shown in Fig. 18.

[0170] Among the above conditions V21 to V23, condition A210 is a condition for determining flatness within a block. Conditions B210, B211, B212, and B215 are conditions for determining continuity within a block. Condition C210 determines the amount of change (gap) between blocks using pixel values ​​adjacent to the block boundary.

[0171] Next, an example of filter coefficients according to this modification will be described. Fig. 19 is an explanatory diagram for describing an example of an extended strong filter applied by the filtering unit 130 in this modification. As shown in Fig. 19, a case is assumed in which there is a gap G due to block distortion at a block boundary (between p0 and q0) to which the extended strong filter is applied, and there is no difference (flat) in pixel values ​​within the extended application range (p0 to p4 and q0 to q4) within the block. In such a case, by applying a filter with strong low-pass characteristics so that the shift amount of G = p0 - q0 changes depending on the position from the block boundary, block distortion can be reduced as shown in Fig. 19.

[0172] For example, the filtering unit 130 may apply an extended strong filter having the following ninth filter coefficient to a pixel determined by the filter strength determination unit 120 to be subjected to the extended strong filter.

[0173] 9th filter coefficient p4′=Clip3(p4-2*tc,p4+2*tc,(4*p5+8*p4+4*p3-2*p0+2*q0+8)>>4) p3′=Clip3(p3-2*tc,p3+2*tc,(4*p4+8*p3+4*p2-4*p0+4*q0+8)>>4) p2′=Clip3(p2-2*tc,p2+2*tc,(4*p3+8*p2+4*p1-5*p0+5*q0+8)>>4) p1′=Clip3(p1-2*tc,p1+2*tc,(4*p2+8*p1+4*p0-6*q0+6*q0+8)>>4) p0′=Clip3(p0-2*tc,p0+2*tc,(4*p1+5*p0+7*q0+8)>>4) q0′=Clip3(q0-2*tc,q0+2*tc,(7*p0+5*q0+4*q1+8)>>4) q1′=Clip3(q1-2*tc,q1+2*tc,(6*p0-6*q0+4*q0+8*q1+4*q2+8)>>4) q2′=Clip3(q2-2*tc,q2+2*tc,(5*p0-5*q0+4*q1+8*q2+4*q3+8)>>4) q3′=Clip3(q3-2*tc,q3+2*tc,(4*p0-4*q0+4*q2+8*q3+4*q4+8)>>4) q4′=Clip3(q4-2*tc,q4+2*tc,(2*p0-2*q0+4*q3+8*q4+4*q5+8)>>4)

[0174] Furthermore, the filtering unit 130 may apply an extended strong filter having a tenth filter coefficient as follows to a pixel determined by the filter strength determination unit 120 to be subjected to the extended strong filter.

[0175] 10th filter coefficient p4′=Clip3(p4-2*tc,p4+2*tc,(2*p6+4*p5+4*p4+4*p3+2*p2-2*p0+2*q0+8)>>4) p3′=Clip3(p3-2*tc,p3+2*tc,(2*p5+4*p4+4*p3+4*p2+2*p1-4*p0+4*q0+8)>>4) p2′=Clip3(p2-2*tc,p2+2*tc,(2*p4+4*p3+4*p2+4*p1+2*p0-5*q0+5*q0+8)>>4) p1′=Clip3(p1-2*tc,p1+2*tc,(2*p3+4*p2+4*p1+6*q0+8)>>4) p0′=Clip3(p0-2*tc,p0+2*tc,(2*p2+4*p1+3*p0+5*q0+2*q1+8)>>4) q0′=Clip3(q0-2*tc,q0+2*tc,(2*p1+5*p0+3*q0+4*q1+2*q2+8)>>4) q1′=Clip3(q1-2*tc,q1+2*tc,(6*p0+4*q1+4*q2+2*q3+8)>>4) q2′=Clip3(q2-2*tc,q2+2*tc,(5*p0-5*q0+2*q0+4*q1+4*q2+4*q3+2*q4+8)>>4) q3′=Clip3(q3-2*tc,q3+2*tc,(4*p0-4*q0+2*q1+4*q2+4*q3+4*q4+2*q5+8)>>4) q4′=Clip3(q4-2*tc,q4+2*tc,(2*p0-2*q0+2*q2+4*q3+4*q4+4*q5+2*q6+8)>>4)

[0176] The filter coefficients according to this modification are not limited to the above example, and may be, for example, filter coefficients obtained by integrating the DC component and the AC component as described above.

[0177] As described above, the application range (extended application range) of the extended strong filter in this embodiment is not limited to a specific range, and may be any range, as long as it is wider than three pixels located near the block boundary.

[0178] Furthermore, the extended strong filter according to the above-described modified example may be used in combination with an extended strong filter that applies to seven pixels located near a block boundary. When multiple extended strong filters are combined, for example, it may be determined first whether to apply an extended strong filter with a wider application range, and if that extended strong filter is not applied, it may be determined sequentially whether to apply an extended strong filter with a narrower application range than that of the extended strong filter.

[0179] <4. Second Example> [4-1. Example of deblocking filter configuration] Next, a deblocking filter 24 according to a second embodiment will be described. The deblocking filter 24 according to this embodiment can apply a deblocking filter (asymmetric deblocking filter) with different filter strengths (for example, application ranges) on one side and the other side of a block boundary. Note that a deblocking filter in which an extended strong filter is applied only on one side of the block boundary, resulting in an asymmetric tap shape, may be referred to as an asymmetric extended strong filter.

[0180] The basic configuration of the deblocking filter 24 according to this embodiment may be the same as that of the deblocking filter 24 according to the first embodiment shown in Fig. 12. However, the deblocking filter 24 according to this embodiment differs from the first embodiment in part in the functions of the filter strength determination unit 120 and the filtering unit 130. Below, functions similar to those of the first embodiment will be omitted as appropriate, and functions of the filter strength determination unit 120 and the filtering unit 130 according to this embodiment that differ from those of the first embodiment will be described.

[0181] The filter strength determination unit 120 according to this embodiment, like the filter strength determination unit 120 according to the first embodiment, determines whether to apply a weak filter, a strong filter, or an extended strong filter, which has an extended application range beyond that of the strong filter.

[0182] However, before making a determination regarding the extended strong filter, the filter strength determination unit 120 according to this embodiment may determine whether or not the block boundary satisfies the determination conditions for the strong filter in units of four lines. Then, if it is determined that the block boundary satisfies the determination conditions for the strong filter, it may determine whether or not to apply the extended strong filter in units of four lines on each side of the block boundary.

[0183] With this configuration, even at the boundary between adjacent large and small blocks, it becomes easier to apply the extended strong filter only to the large block. For example, even in a case where adjacent large and small blocks exist, such as in the area H20 shown in Fig. 10, making it difficult to apply a filter with an application range wider than that of a strong filter using existing determination methods, according to this embodiment, the extended strong filter can be applied to pixels on the large block side.

[0184] Furthermore, even if it is not desirable to apply the extended strong filter described in the first embodiment because the boundary between the object and the background exists only on one side of the block boundary, it is possible to determine that the extended strong filter should be applied to the neighboring pixels on the other side, which may further reduce block distortion.

[0185] Furthermore, the filter strength determining unit 120 according to this embodiment may determine to apply a strong filter to a block on the side determined not to apply the extended strong filter (does not satisfy the determination conditions for the extended strong filter).

[0186] Furthermore, similar to the filter strength determination unit 120 according to the first embodiment, the filter strength determination unit 120 according to this embodiment may determine, on a line-by-line basis, whether or not to apply a weak filter to a block boundary that is determined not to satisfy the determination conditions for a strong filter.

[0187] The following describes the determination process related to application of the extended strong filter by the filter strength determination unit 120 according to this embodiment. Fig. 20 is an explanatory diagram for describing the determination process for determining whether or not to apply the extended strong filter.

[0188] The application range of the extended strong filter according to this embodiment is, for example, seven pixels located near one block boundary, which correspond to pixels p0 to p6 among the pixels shown in FIG.

[0189] The filter strength determination unit 120 according to this embodiment determines whether to apply the extended strong filter on each side of the block boundary in accordance with the application range of the extended strong filter. For example, the filter strength determination unit 120 may perform the determination process by referring to pixels in a range wider than the application range of the extended strong filter.

[0190] According to this configuration, for example, if a boundary between an object and background exists within the range to which the extended strong filter is applied, it is possible to determine that the extended strong filter will be less likely to be applied, making it easier to apply a more appropriate deblocking filter.

[0191] For example, the filter strength determining unit 120 may determine to apply the extended strong filter when the following condition V31 is satisfied.

[0192] -Condition V31: True if all of the following conditions A310, B311 to B313, and C310 are true (A310)|p7-p0|<(beta>>4) (B311)|p2-2*p1+p0|<(beta>>3) (B312)|p4-2*p3+p2|<(beta>>3) (B313)|p6-2*p5+p4|<(beta>>3) (C310)|p0-q0|<((tc*5+1)>>1) As another example of the determination condition, the filter strength determination unit 120 may determine to apply the extended strong filter when the following condition V32 is satisfied.

[0193] - Judgment condition V32: True if all of the following conditions A310, B310, and C310 are true (A310)|p7-p0|<(beta>>4) (B310)|p2-2*p1+p0|+|p4-2*p3+p2|+|p6-2*p5+p4|<(3*beta>>3) (C310)|p0-q0|<((tc*5+1)>>1)

[0194] As another example of the determination condition, the filter strength determination unit 120 may determine to apply the extended strong filter when the following condition V33 is satisfied.

[0195] -Condition V33: True if all of the following conditions A310, B315, and C310 are true (A310)|p7-p0|<(beta>>4) (B315)|p6-2*p3+p0|<(beta>>3) (C310)|p0-q0|<((tc*5+1)>>1)

[0196] In the above conditions V31 to V33, the range of pixels referenced in condition A310 corresponds to range A31 shown in Figure 20. Furthermore, in the above condition V31, the ranges of pixels referenced in conditions B311 to B313 correspond to ranges B31 to B33 shown in Figure 20. Furthermore, in the above conditions V32 and V33, the ranges of pixels referenced in conditions B310 and B315 correspond to ranges B31 to B33 shown in Figure 20.

[0197] Among the above conditions V31 to V33, condition A310 is a condition for determining flatness within a block. Conditions B310, B311 to B313, and B315 are conditions for determining continuity of pixel values ​​included in the extended application range within a block. Condition C310 determines the amount of change (gap) between blocks using pixel values ​​adjacent to the block boundary.

[0198] Here, the conditions B310, B311 to B313, and B315 for determining the continuity of pixel values ​​are independent conditions for blocks on one side of the block boundary. That is, the filter strength determination unit 120 according to this embodiment independently performs continuity determination processing for determining the continuity of pixel values ​​included in the extended application range. Note that the filter strength determination unit 120 may independently perform continuity determination processing depending on the state of the block boundary.

[0199] In particular, in block division using QTBT, the length of different block boundaries, the spacing between each block boundary, etc., are likely to change due to, for example, the size and shape (square, rectangle) of adjacent blocks, and the state of changes in block boundaries due to the above factors is referred to in this specification as the state of the block boundary.

[0200] Furthermore, the filter strength determination unit 120 may determine whether to apply the extended strong filter in units of four lines, and may determine to apply the extended strong filter when both the first and fourth lines satisfy any of the above conditions V31 to V33.

[0201] As in the first embodiment, the filtering unit 130 of this embodiment applies a deblocking filter to pixels located near block boundaries of the input image (decoded image) depending on the determination results of the application necessity determination unit 110 and the filter strength determination unit 120.

[0202] For example, the filtering unit 130 according to this embodiment applies the filter determined by the filter strength determination unit 120. However, the filtering unit 130 according to this embodiment can apply an extended strong filter and a strong filter to each side.

[0203] Fig. 21 is an explanatory diagram showing an example of an asymmetric extended strong filter applied by the filtering unit 130 in this modification. Fig. 21 shows an example in which the filtering unit 130 applies an extended strong filter to the p side and a strong filter to the q side. Note that the filter coefficients of the extended strong filter applied to the p side may be, for example, the filter coefficients described in the first embodiment. Also, the filter coefficients of the strong filter applied to the q side may be the filter coefficients of the HEVC strong filter.

[0204] [4-2. Processing flow] Fig. 22 is a flowchart showing an example of the flow of processing by the deblocking filter 24 according to this embodiment. The processing from step S210 to step S260 in Fig. 22 is repeated for each block boundary in units of four lines in the input image.

[0205] First, the application necessity determination unit 110 determines whether a deblocking filter application necessity determination condition is satisfied for one boundary to be processed (hereinafter referred to as a boundary of interest) in units of four lines (S210). If the filter application necessity determination condition is not satisfied, the subsequent processes from step S220 to step S250 are skipped. On the other hand, if the boundary-based determination condition is satisfied, the process proceeds to step S220.

[0206] In step S220, filter strength determination unit 120 determines whether the strong filter determination conditions are met for each of four lines. If the strong filter determination conditions are met (YES in S220), the process proceeds to step S230, where determination and filter application are performed for each side of the block boundary. The process of step S230 will be described later with reference to FIG.

[0207] On the other hand, if the strong filter determination conditions are not met (NO in S220), the process proceeds to step S2460, where filter strength determination unit 120 determines, line by line, whether or not the weak filter determination conditions are met. If the weak filter determination conditions are met (YES in S240), the process proceeds to step S250, where filtering unit 130 applies the weak filter to the line.

[0208] In step S260, if an unprocessed boundary remains in the input image (YES in step S260), a new boundary of interest is set and the process returns to step S260. If no unprocessed boundary remains, the process for the input image (decoded image) ends.

[0209] FIG. 23 is a flowchart illustrating the processing of step S230 in FIG. 22. As shown in FIG. 23, the processing may be performed in parallel on each side (p side, q side) based on the block boundary. In step S231, the filter strength determination unit 120 determines, in units of four lines, whether the determination conditions for the extended strong filter are met, according to the state of the pixels included in the extended application range on the p side. If the determination conditions for the extended strong filter are met (YES in S231), the processing proceeds to step S232, where the filtering unit 130 applies the extended strong filter to the p side. On the other hand, if the determination conditions for the extended strong filter are not met (NO in S231), the processing proceeds to step S233, where the filtering unit 130 applies the strong filter to the p side.

[0210] Similarly, on the q side, in step S235, the filter strength determination unit 120 determines, in units of four lines, whether the determination conditions for the extended strong filter are met, according to the state of the pixels included in the extended application range on the q side. If the determination conditions for the extended strong filter are met (YES in S235), the process proceeds to step S236, where the filtering unit 130 applies the extended strong filter to the q side. On the other hand, if the determination conditions for the extended strong filter are not met (NO in S235), the process proceeds to step S237, where the filtering unit 130 applies the strong filter to the q side.

[0211] [4-3. Modifications] Although the second embodiment has been described above, the extended strong filter applied in this embodiment is not limited to the above example. For example, in this embodiment, an extended strong filter whose application range is extended from three pixels to five pixels located near the block boundary may also be applied. Below, as a modified example of this embodiment, the application decision of such an extended strong filter and the filter coefficients will be described with reference to FIGS. 24 and 25.

[0212] 24 is an explanatory diagram illustrating a determination process for determining whether or not to apply the extended strong filter according to this modification to pixels on one side (p side) of the block boundary. The application range of the extended strong filter according to this modification is five pixels located near the block boundary, which corresponds to, for example, pixels p0 to p4 among the pixels shown in FIG.

[0213] The filter strength determination unit 120 according to this modification determines whether to apply an extended strong filter according to the application range of the extended strong filter. For example, the filter strength determination unit 120 may perform the determination process by referring to pixels in a range wider than the application range of the extended strong filter.

[0214] For example, the filter strength determining unit 120 may determine to apply an extended strong filter to pixels on the p side when the following condition V61 is satisfied.

[0215] -Condition V61: True if all of the following conditions A610, B611, B612, and C610 are true (A610)|p5-p0|<(beta>>4) (B611)|p2-2*p1+p0|<(beta>>3) (B612)|p4-2*p3+p2|<(beta>>3) (C610)|p0-q0|<((tc*5+1)>>1)

[0216] As another example of the determination condition, the filter strength determination unit 120 may determine to apply an extended strong filter to pixels on the p side when the following condition V62 is satisfied.

[0217] - Judgment condition V62: True if all of the following conditions A610, B610, and C610 are true (A610)|p5-p0|<(beta>>4) (B610)|p2-2*p1+p0|+|p4-2*p3+p2|<(2*beta>>3) (C610)|p0-q0|<((tc*5+1)>>1)

[0218] As another example of the determination condition, the filter strength determination unit 120 may determine to apply an extended strong filter to pixels on the p side when the following condition V63 is satisfied.

[0219] -Condition V63: True if all of the following conditions A610, B615, and C610 are true (A610)|p5-p0|<(beta>>4) (B615)|p4-2*p2+p0|<(beta>>3) (C610)|p0-q0|<((tc*5+1)>>1)

[0220] In the above conditions V61 to V63, the pixel range referenced in condition A610 corresponds to range A61 shown in Fig. 18. Furthermore, in the above condition V61, the pixel ranges referenced in conditions B611 and B612 correspond to ranges B61 and B62 shown in Fig. 24. Furthermore, in the above conditions V62 and V63, the pixel ranges referenced in conditions B610 and B615 correspond to ranges B61 and B62 shown in Fig. 24.

[0221] Among the above conditions V61 to V63, condition A610 is a condition for determining flatness within a block. Conditions B610, B611, B612, and B615 are conditions for determining continuity within a block. Condition C610 determines the amount of change (gap) between blocks using pixel values ​​adjacent to the block boundary.

[0222] Next, an example of an asymmetric deblocking filter according to this modification will be described. Fig. 25 is an explanatory diagram for describing an example of an asymmetric deblocking filter applied by the filtering unit 130 in this modification. Fig. 25 shows an example in which the filtering unit 130 applies an extended strong filter according to this modification to the p side and a strong filter to the q side. Note that the filter coefficients of the extended strong filter according to this modification applied to the p side may be, for example, the filter coefficients described in the modification of the first embodiment. Furthermore, the filter coefficients of the strong filter applied to the q side may be the filter coefficients of the strong filter of HEVC.

[0223] <5. Hardware configuration example> The above-described series of processes can be executed by hardware or software. When the series of processes is executed by software, the programs constituting the software are installed on a computer. Here, the term "computer" includes computers built into dedicated hardware, and general-purpose personal computers, etc., that can execute various functions by installing various programs.

[0224] FIG. 26 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processes by a program.

[0225] In a computer 800 shown in FIG. 26, a CPU (Central Processing Unit) 801, a ROM (Read Only Memory) 802, and a RAM (Random Access Memory) 803 are interconnected via a bus 804.

[0226] An input / output interface 810 is also connected to the bus 804. To the input / output interface 810, an input unit 811, an output unit 812, a storage unit 813, a communication unit 814, and a drive 815 are connected.

[0227] The input unit 811 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, etc. The output unit 812 includes, for example, a display, a speaker, an output terminal, etc. The storage unit 813 includes, for example, a hard disk, a RAM disk, a non-volatile memory, etc. The communication unit 814 includes, for example, a network interface. The drive 815 drives removable media 821 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.

[0228] In a computer configured as above, the CPU 801 performs the above-described series of processes by, for example, loading a program stored in the storage unit 813 into the RAM 803 via the input / output interface 810 and the bus 804 and executing the program. The RAM 803 also stores data necessary for the CPU 801 to execute various processes as appropriate.

[0229] The program executed by the computer (CPU 801) can be applied by recording it on removable media 821 such as package media, for example. In this case, the program can be installed in the storage unit 813 via the input / output interface 810 by inserting the removable media 821 into the drive 815.

[0230] This program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, digital satellite broadcasting, etc. In this case, the program can be received by the communication unit 814 and installed in the storage unit 813.

[0231] Alternatively, this program can be installed in advance in the ROM 802 or the storage unit 813 .

[0232] <6. Application Examples> The image encoding device 10 and the image decoding device 60 according to the above-described embodiments can be applied to various electronic devices, such as transmitters or receivers for satellite broadcasting, cable broadcasting such as cable TV, distribution over the Internet, and distribution to terminals via cellular communication, recording devices for recording images on media such as optical disks, magnetic disks, and flash memories, or playback devices for playing back images from these storage media.

[0233] (1) First application example: Television receiver 27 shows an example of a schematic configuration of a television device to which the above-described embodiment is applied. The television device 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface (I / F) 909, a control unit 910, a user interface (I / F) 911, and a bus 912.

[0234] The tuner 902 extracts a signal of a desired channel from a broadcast signal received via the antenna 901 and demodulates the extracted signal. The tuner 902 then outputs the coded bit stream obtained by demodulation to the demultiplexer 903. In other words, the tuner 902 serves as a transmission unit in the television device 900 that receives a coded stream in which an image is coded.

[0235] The demultiplexer 903 separates the video stream and audio stream of the program to be viewed from the coded bitstream, and outputs each separated stream to the decoder 904. The demultiplexer 903 also extracts auxiliary data such as an EPG (Electronic Program Guide) from the coded bitstream, and supplies the extracted data to the control unit 910. Note that the demultiplexer 903 may descramble the coded bitstream if it is scrambled.

[0236] The decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to a video signal processing unit 905. The decoder 904 also outputs the audio data generated by the decoding process to an audio signal processing unit 907.

[0237] The video signal processing unit 905 reproduces the video data input from the decoder 904 and displays the video on the display unit 906. The video signal processing unit 905 may also display an application screen supplied via a network on the display unit 906. The video signal processing unit 905 may also perform additional processing on the video data, such as noise removal, depending on the settings. Furthermore, the video signal processing unit 905 may generate images of a GUI (Graphical User Interface), such as a menu, button, or cursor, and superimpose the generated image on the output image.

[0238] The display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays a video or image on the screen of a display device (e.g., a liquid crystal display, a plasma display, or an OLED (Organic ElectroLuminescence Display)).

[0239] The audio signal processing unit 907 performs playback processing such as D / A conversion and amplification on the audio data input from the decoder 904, and outputs audio from a speaker 908. The audio signal processing unit 907 may also perform additional processing such as noise removal on the audio data.

[0240] The external interface 909 is an interface for connecting the television device 900 to an external device or a network. For example, a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also serves as a transmission unit in the television device 900 that receives an encoded stream in which an image is encoded.

[0241] The control unit 910 has a processor such as a CPU, and memories such as RAM and ROM. The memory stores programs executed by the CPU, program data, EPG data, data acquired via a network, and the like. The programs stored in the memory are read and executed by the CPU, for example, when the television device 900 is started up. By executing the programs, the CPU controls the operation of the television device 900 in response to operation signals input from the user interface unit 911, for example.

[0242] The user interface unit 911 is connected to the control unit 910. The user interface unit 911 has, for example, buttons and switches for the user to operate the television device 900, a receiver for remote control signals, etc. The user interface unit 911 detects operations by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.

[0243] The bus 912 interconnects the tuner 902, demultiplexer 903, decoder 904, video signal processing unit 905, audio signal processing unit 907, external interface 909, and control unit 910.

[0244] In the television device 900 configured in this manner, the decoder 904 may have the functions of the above-described image decoding device 60. That is, the decoder 904 may decode coded data using the methods described in the above embodiments. This allows the television device 900 to apply a more appropriate filter in the deblocking filter process.

[0245] Furthermore, in the television device 900 configured as above, the video signal processing unit 905 may be configured to encode image data supplied from the decoder 904, for example, and output the resulting encoded data to the outside of the television device 900 via the external interface 909. The video signal processing unit 905 may then have the functions of the above-mentioned image encoding device 10. That is, the video signal processing unit 905 may be configured to encode the image data supplied from the decoder 904 using the methods described in the above-mentioned embodiments. In this way, the television device 900 can apply a more appropriate filter in the deblocking filter process.

[0246] (2) Second application example: mobile phone 28 shows an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied. The mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / playback unit 929, a display unit 930, a control unit 931, an operation unit 932, and a bus 933.

[0247] The antenna 921 is connected to the communication unit 922. The speaker 924 and microphone 925 are connected to the audio codec 923. The operation unit 932 is connected to the control unit 931. The bus 933 interconnects the communication unit 922, audio codec 923, camera unit 926, image processing unit 927, demultiplexing unit 928, recording / playback unit 929, display unit 930, and control unit 931.

[0248] The mobile phone 920 performs operations such as sending and receiving voice signals, sending and receiving e-mail or image data, taking images, and recording data in various operating modes including voice call mode, data communication mode, photography mode, and videophone mode.

[0249] In the voice call mode, an analog voice signal generated by the microphone 925 is supplied to the voice codec 923. The voice codec 923 converts the analog voice signal into voice data, A / D converts the converted voice data, and compresses it. The voice codec 923 then outputs the compressed voice data to the communication unit 922. The communication unit 922 encodes and modulates the voice data to generate a transmission signal. The communication unit 922 then transmits the generated transmission signal to a base station (not shown) via the antenna 921. The communication unit 922 also amplifies and frequency-converts a wireless signal received via the antenna 921 to acquire a received signal. The communication unit 922 then demodulates and decodes the received signal to generate voice data, and outputs the generated voice data to the voice codec 923. The voice codec 923 then expands and D / A-converts the voice data to generate an analog voice signal. The voice codec 923 then supplies the generated voice signal to the speaker 924 to output voice.

[0250] In the data communication mode, for example, the control unit 931 generates character data constituting an email in response to a user operation via the operation unit 932. The control unit 931 also displays the characters on the display unit 930. The control unit 931 also generates email data in response to a transmission instruction from the user via the operation unit 932 and outputs the generated email data to the communication unit 922. The communication unit 922 encodes and modulates the email data to generate a transmission signal. The communication unit 922 then transmits the generated transmission signal to a base station (not shown) via the antenna 921. The communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a received signal. The communication unit 922 then demodulates and decodes the received signal to restore the email data and outputs the restored email data to the control unit 931. The control unit 931 also displays the contents of the email on the display unit 930 and supplies the email data to the recording / playback unit 929, where it is written to its storage medium.

[0251] The recording / playback unit 929 has any readable / writable storage medium. For example, the storage medium may be a built-in storage medium such as RAM or flash memory, or may be an external storage medium such as a hard disk, a magnetic disk, a magneto-optical disk, an optical disk, a USB (Universal Serial Bus) memory, or a memory card.

[0252] Also, in the shooting mode, for example, the camera unit 926 captures an image of a subject to generate image data and outputs the generated image data to the image processing unit 927. The image processing unit 927 encodes the image data input from the camera unit 926, supplies the encoded stream to the recording / playback unit 929, and causes it to be written into its storage medium.

[0253] Furthermore, in the image display mode, the recording / playback unit 929 reads out the coded stream recorded on the storage medium and outputs it to the image processing unit 927. The image processing unit 927 decodes the coded stream input from the recording / playback unit 929, supplies the image data to the display unit 930, and displays the image.

[0254] Also, in videophone mode, for example, the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 with the audio stream input from the audio codec 923 and outputs the multiplexed stream to the communication unit 922. The communication unit 922 encodes and modulates the stream to generate a transmission signal. The communication unit 922 then transmits the generated transmission signal to a base station (not shown) via the antenna 921. The communication unit 922 also amplifies and frequency-converts a wireless signal received via the antenna 921 to obtain a received signal. These transmission signals and received signals may include coded bitstreams. The communication unit 922 then demodulates and decodes the received signal to restore the stream and outputs the restored stream to the demultiplexing unit 928. The demultiplexing unit 928 separates the input stream into a video stream and an audio stream and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923. The image processing unit 927 decodes the video stream to generate video data. The video data is supplied to a display unit 930, and a series of images is displayed on the display unit 930. The audio codec 923 expands the audio stream and performs D / A conversion to generate an analog audio signal. The audio codec 923 then supplies the generated audio signal to a speaker 924 to output the audio.

[0255] In the mobile phone 920 configured in this manner, for example, the image processing unit 927 may have the functions of the image encoding device 10 described above. That is, the image processing unit 927 may encode image data using the methods described in the above embodiments. This enables the mobile phone 920 to apply a more appropriate filter in the deblocking filter process.

[0256] Furthermore, in the mobile phone 920 configured in this manner, for example, the image processing unit 927 may have the functions of the above-described image decoding device 60. That is, the image processing unit 927 may decode coded data using the methods described in the above embodiments. This allows the mobile phone 920 to apply a more appropriate filter in the deblocking filter process.

[0257] (3) Third application example: Recording and playback device 29 shows an example of a schematic configuration of a recording / playback device to which the above-described embodiment is applied. The recording / playback device 940, for example, encodes audio data and video data of a received broadcast program and records the encoded data on a recording medium. The recording / playback device 940 may also encode audio data and video data acquired from another device and record the encoded data on a recording medium. The recording / playback device 940 may also play data recorded on a recording medium on a monitor and a speaker in response to a user's instruction, for example. At this time, the recording / playback device 940 decodes the audio data and video data.

[0258] The recording / playback device 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface 950.

[0259] The tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown) and demodulates the extracted signal. The tuner 941 then outputs the coded bit stream obtained by demodulation to the selector 946. That is, the tuner 941 serves as a transmission means in the recording / playback device 940.

[0260] The external interface 942 is an interface for connecting the recording / playback device 940 to an external device or a network. The external interface 942 may be, for example, an IEEE 1394 interface, a network interface, a USB interface, or a flash memory interface. For example, video data and audio data received via the external interface 942 are input to an encoder 943. In other words, the external interface 942 serves as a transmission means in the recording / playback device 940.

[0261] The encoder 943 encodes the video data and audio data when the video data and audio data input from the external interface 942 have not been encoded. The encoder 943 then outputs the encoded bit stream to the selector 946.

[0262] The HDD 944 records coded bitstreams of compressed content data such as video and audio, various programs, and other data on its internal hard disk, and also reads this data from the hard disk when playing video and audio.

[0263] The disc drive 945 records and reads data on a recording medium that is loaded into the disc drive 945. The recording medium loaded into the disc drive 945 may be, for example, a DVD disc (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD+R, DVD+RW, etc.) or a Blu-ray (registered trademark) disc.

[0264] When recording video and audio, the selector 946 selects the coded bit stream input from the tuner 941 or the encoder 943, and outputs the selected coded bit stream to the HDD 944 or the disk drive 945. When playing back video and audio, the selector 946 outputs the coded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947.

[0265] The decoder 947 decodes the coded bitstream to generate video data and audio data, and outputs the generated video data to the OSD 948. The decoder 947 also outputs the generated audio data to an external speaker.

[0266] The OSD 948 reproduces and displays the video data input from the decoder 947. The OSD 948 may also superimpose GUI images such as menus, buttons, or cursors on the video to be displayed.

[0267] The control unit 949 has a processor such as a CPU, and memories such as RAM and ROM. The memory stores programs executed by the CPU, program data, etc. The programs stored in the memory are read and executed by the CPU, for example, when the recording / playback device 940 is started up. By executing the programs, the CPU controls the operation of the recording / playback device 940 in response to operation signals input from the user interface 950, for example.

[0268] The user interface 950 is connected to the control unit 949. The user interface 950 includes, for example, buttons and switches for the user to operate the recording / playback device 940, a receiving unit for remote control signals, etc. The user interface 950 detects operations by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.

[0269] In the recording and playback device 940 configured in this manner, the encoder 943 has the functions of the image encoding device 10 according to the above-described embodiment. Also, the decoder 947 has the functions of the image decoding device 60 according to the above-described embodiment. This allows the recording and playback device 940 to apply a more appropriate filter in the deblocking filter process.

[0270] (4) Fourth application example: imaging device 30 shows an example of a schematic configuration of an imaging device to which the above-described embodiments are applied. The imaging device 960 captures an image of a subject to generate an image, encodes the image data, and records it on a recording medium.

[0271] The imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus 972.

[0272] The optical block 961 is connected to an imaging unit 962. The imaging unit 962 is connected to a signal processing unit 963. The display unit 965 is connected to an image processing unit 964. The user interface 971 is connected to a control unit 970. The bus 972 interconnects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970.

[0273] The optical block 961 has a focus lens, an aperture mechanism, etc. The optical block 961 forms an optical image of a subject on an imaging surface of the imaging unit 962. The imaging unit 962 has an image sensor such as a CCD or CMOS, and converts the optical image formed on the imaging surface into an image signal as an electrical signal by photoelectric conversion. The imaging unit 962 then outputs the image signal to the signal processing unit 963.

[0274] The signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962. The signal processing unit 963 outputs the image data after the camera signal processing to the image processing unit 964.

[0275] The image processing unit 964 encodes image data input from the signal processing unit 963 to generate encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. Furthermore, the image processing unit 964 decodes the encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965. Furthermore, the image processing unit 964 may output the image data input from the signal processing unit 963 to the display unit 965 to display an image. Furthermore, the image processing unit 964 may superimpose display data acquired from the OSD 969 on the image to be output to the display unit 965.

[0276] The OSD 969 generates GUI images such as menus, buttons, or cursors, and outputs the generated images to the image processing unit 964 .

[0277] The external interface 966 is configured as, for example, a USB input / output terminal. The external interface 966 connects the imaging device 960 to a printer, for example, when printing an image. A drive is also connected to the external interface 966 as needed. Removable media such as a magnetic disk or optical disk is loaded into the drive, and a program read from the removable media can be installed in the imaging device 960. Furthermore, the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 serves as a transmission means in the imaging device 960.

[0278] The recording medium attached to the media drive 968 may be any removable readable / writable medium, such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory. Alternatively, a recording medium may be fixedly attached to the media drive 968, forming a non-portable storage unit such as an internal hard disk drive or an SSD (Solid State Drive).

[0279] The control unit 970 has a processor such as a CPU, and memories such as RAM and ROM. The memory stores programs executed by the CPU, program data, and the like. The programs stored in the memory are read and executed by the CPU, for example, when the imaging device 960 is started up. By executing the programs, the CPU controls the operation of the imaging device 960 in response to operation signals input from a user interface 971, for example.

[0280] The user interface 971 is connected to the control unit 970. The user interface 971 has, for example, buttons and switches that allow the user to operate the imaging device 960. The user interface 971 detects operations by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.

[0281] In the imaging device 960 configured in this manner, the image processing unit 964 has the functions of the image encoding device 10 and the image decoding device 60 according to the above-described embodiments. This enables the imaging device 960 to apply a more appropriate filter in the deblocking filter process.

[0282] (5) Fifth Application Example: Video Set In addition, the present technology can be implemented as any configuration to be mounted on an arbitrary device or device constituting a system, for example, a processor as a system LSI (Large Scale Integration) or the like, a module using multiple processors or the like, a unit using multiple modules or the like, a set in which other functions are further added to a unit, etc. (i.e., a configuration of a part of a device). Fig. 31 shows an example of a schematic configuration of a video set to which the present technology is applied.

[0283] In recent years, electronic devices have become increasingly multifunctional, and in their development and manufacture, when some of their components are sold or provided, it is not only the case that they are implemented as a component with one function, but also that multiple components with related functions are combined to be implemented as a set with multiple functions.

[0284] The video set 1300 shown in Figure 31 is such a multi-functional configuration, combining a device having functions related to image encoding and decoding (either one or both) with a device having other functions related to those functions.

[0285] As shown in FIG. 31, the video set 1300 includes a group of modules such as a video module 1311, an external memory 1312, a power management module 1313, and a front-end module 1314, as well as devices with associated functions such as connectivity 1321, a camera 1322, and a sensor 1323.

[0286] A module is a component that combines several interrelated component functions into a cohesive function. While the specific physical configuration is arbitrary, it may, for example, be an integrated circuit consisting of multiple processors, each with its own function, electronic circuit elements such as resistors and capacitors, and other devices, all arranged on a wiring board or similar. It is also conceivable to combine a module with other modules or processors to create a new module.

[0287] In the example of FIG. 31, the video module 1311 is a combination of components having functions related to image processing, and includes an application processor, a video processor, a broadband modem 1333, and an RF module 1334.

[0288] A processor is a device in which a configuration having a predetermined function is integrated on a semiconductor chip using SoC (System On a Chip), and is also known as, for example, System LSI (Large Scale Integration). This configuration having a predetermined function may be a logic circuit (hardware configuration), or may be a CPU, ROM, RAM, etc., and a program executed using these (software configuration), or may be a combination of both. For example, a processor may have a logic circuit, a CPU, ROM, RAM, etc., and realize some of its functions by the logic circuit (hardware configuration), and realize other functions by a program executed by the CPU (software configuration).

[0289] The application processor 1331 in Fig. 31 is a processor that executes applications related to image processing. The applications executed by this application processor 1331 not only perform arithmetic processing to realize predetermined functions, but can also control the configuration inside and outside the video module 1311, such as the video processor 1332, as necessary.

[0290] The video processor 1332 is a processor having functions related to image encoding and / or decoding.

[0291] The broadband modem 1333 digitally modulates or otherwise converts data (digital signals) transmitted via wired or wireless (or both) broadband communication over broadband lines such as the Internet or a public telephone network into analog signals, and demodulates analog signals received via such broadband communication and converts them into data (digital signals). The broadband modem 1333 processes any information, such as image data processed by the video processor 1332, streams in which image data is encoded, application programs, and setting data.

[0292] The RF module 1334 is a module that performs frequency conversion, modulation / demodulation, amplification, filtering, etc. on an RF (Radio Frequency) signal transmitted and received via an antenna. For example, the RF module 1334 performs frequency conversion, etc. on a baseband signal generated by the broadband modem 1333 to generate an RF signal. Also, for example, the RF module 1334 performs frequency conversion, etc. on an RF signal received via the front-end module 1314 to generate a baseband signal.

[0293] As indicated by a dotted line 1341 in FIG. 31, the application processor 1331 and the video processor 1332 may be integrated into one processor.

[0294] The external memory 1312 is a module provided outside the video module 1311 and having a storage device used by the video module 1311. The storage device of this external memory 1312 may be realized by any physical configuration, but since it is generally used to store large amounts of data such as image data in units of frames, it is desirable to realize it by a relatively inexpensive, large-capacity semiconductor memory such as a DRAM (Dynamic Random Access Memory).

[0295] The power management module 1313 manages and controls the power supply to the video module 1311 (each component within the video module 1311).

[0296] The front-end module 1314 is a module that provides a front-end function (circuitry at the transmitting and receiving end on the antenna side) for the RF module 1334. As shown in FIG. 31 , the front-end module 1314 includes, for example, an antenna unit 1351, a filter 1352, and an amplifier unit 1353.

[0297] The antenna unit 1351 has an antenna for transmitting and receiving radio signals and its peripheral components. The antenna unit 1351 transmits signals supplied from the amplifier unit 1353 as radio signals, and supplies the received radio signals to the filter 1352 as electric signals (RF signals). The filter 1352 performs filtering and other processes on the RF signals received via the antenna unit 1351, and supplies the processed RF signals to the RF module 1334. The amplifier unit 1353 amplifies the RF signals supplied from the RF module 1334, and supplies the amplified signals to the antenna unit 1351.

[0298] The connectivity 1321 is a module having a function related to connection with the outside. The physical configuration of the connectivity 1321 is arbitrary. For example, the connectivity 1321 may have a configuration having a communication function other than the communication standard supported by the broadband modem 1333, an external input / output terminal, etc.

[0299] For example, the connectivity 1321 may include a module having a communication function conforming to a wireless communication standard such as Bluetooth (registered trademark), IEEE 802.11 (e.g., Wi-Fi (Wireless Fidelity, registered trademark)), NFC (Near Field Communication), or IrDA (InfraRed Data Association), or an antenna for transmitting and receiving signals conforming to the standard. Furthermore, for example, the connectivity 1321 may include a module having a communication function conforming to a wired communication standard such as USB (Universal Serial Bus) or HDMI (High-Definition Multimedia Interface, registered trademark), or a terminal conforming to the standard. Furthermore, for example, the connectivity 1321 may include other data (signal) transmission functions such as an analog input / output terminal.

[0300] The connectivity 1321 may include a device to which data (signals) are transmitted. For example, the connectivity 1321 may include a drive (including not only removable media drives but also hard disks, solid state drives (SSDs), network attached storage (NASs), etc.) that reads and writes data from and to recording media such as magnetic disks, optical disks, magneto-optical disks, or semiconductor memories. The connectivity 1321 may also include image and audio output devices (monitors, speakers, etc.).

[0301] The camera 1322 is a module having a function of capturing an image of a subject and obtaining image data of the subject. The image data obtained by capturing an image with the camera 1322 is supplied to, for example, a video processor 1332 and encoded.

[0302] The sensor 1323 is a module having any sensor function, such as an audio sensor, ultrasonic sensor, light sensor, illuminance sensor, infrared sensor, image sensor, rotation sensor, angle sensor, angular velocity sensor, speed sensor, acceleration sensor, tilt sensor, magnetic identification sensor, impact sensor, temperature sensor, etc. Data detected by the sensor 1323 is supplied to the application processor 1331, for example, and used by an application or the like.

[0303] The configuration described above as a module may be realized as a processor, and conversely, the configuration described above as a processor may be realized as a module.

[0304] In the video set 1300 configured as above, as will be described later, the present technology can be applied to the video processor 1332. Therefore, the video set 1300 can be implemented as a set to which the present technology is applied.

[0305] (Video processor configuration example) FIG. 32 shows an example of a schematic configuration of the video processor 1332 (FIG. 31) to which the present technology is applied.

[0306] In the example of Figure 32, the video processor 1332 has the function of receiving input video and audio signals and encoding them in a predetermined format, and the function of decoding the encoded video and audio data and playing back and outputting the video and audio signals.

[0307] 32 , the video processor 1332 includes a video input processing unit 1401, a first image scaling unit 1402, a second image scaling unit 1403, a video output processing unit 1404, a frame memory 1405, and a memory control unit 1406. The video processor 1332 also includes an encoding / decoding engine 1407, video ES (Elementary Stream) buffers 1408A and 1408B, and audio ES buffers 1409A and 1409B. The video processor 1332 also includes an audio encoder 1410, an audio decoder 1411, a multiplexer (MUX) 1412, a demultiplexer (DMUX) 1413, and a stream buffer 1414.

[0308] The video input processing unit 1401 acquires a video signal input from, for example, the connectivity 1321 (FIG. 31) and converts it into digital image data. The first image scaling unit 1402 performs format conversion, image scaling, and other processes on the image data. The second image scaling unit 1403 performs image scaling on the image data in accordance with the format of the output destination via the video output processing unit 1404, and performs format conversion and image scaling similar to those performed by the first image scaling unit 1402. The video output processing unit 1404 performs format conversion and conversion to an analog signal on the image data, and outputs it as a reproduced video signal to, for example, the connectivity 1321.

[0309] The frame memory 1405 is a memory for storing image data that is shared by the video input processing unit 1401, the first image scaling unit 1402, the second image scaling unit 1403, the video output processing unit 1404, and the encoding / decoding engine 1407. The frame memory 1405 is realized as a semiconductor memory such as a DRAM.

[0310] The memory control unit 1406 receives a synchronization signal from the encoding / decoding engine 1407 and controls access to the frame memory 1405 for writing and reading in accordance with an access schedule to the frame memory 1405 written in an access management table 1406A. The access management table 1406A is updated by the memory control unit 1406 in accordance with the processing executed by the encoding / decoding engine 1407, the first image scaling unit 1402, the second image scaling unit 1403, etc.

[0311] The encoding / decoding engine 1407 performs encoding processing on image data and decoding processing on a video stream, which is data obtained by encoding image data. For example, the encoding / decoding engine 1407 encodes image data read from the frame memory 1405 and sequentially writes the encoded image data to the video ES buffer 1408A as a video stream. For example, the encoding / decoding engine 1407 sequentially reads and decodes the video stream from the video ES buffer 1408B and sequentially writes the decoded image data to the frame memory 1405 as image data. The encoding / decoding engine 1407 uses the frame memory 1405 as a working area for these encoding and decoding operations. The encoding / decoding engine 1407 also outputs a synchronization signal to the memory control unit 1406, for example, at the timing when processing for each macroblock starts.

[0312] The video ES buffer 1408A buffers the video stream generated by the encoding / decoding engine 1407 and supplies it to the multiplexing unit (MUX) 1412. The video ES buffer 1408B buffers the video stream supplied from the demultiplexing unit (DMUX) 1413 and supplies it to the encoding / decoding engine 1407.

[0313] The audio ES buffer 1409A buffers the audio stream generated by the audio encoder 1410 and supplies it to a multiplexer (MUX) 1412. The audio ES buffer 1409B buffers the audio stream supplied from a demultiplexer (DMUX) 1413 and supplies it to an audio decoder 1411.

[0314] The audio encoder 1410 digitally converts an audio signal input from, for example, the connectivity 1321, and encodes it using a predetermined format such as the MPEG audio format or AC3 (Audio Code number 3) format. The audio encoder 1410 sequentially writes an audio stream, which is data obtained by encoding the audio signal, into the audio ES buffer 1409A. The audio decoder 1411 decodes the audio stream supplied from the audio ES buffer 1409B, converts it into an analog signal, and supplies it to, for example, the connectivity 1321 as a reproduced audio signal.

[0315] The multiplexing unit (MUX) 1412 multiplexes a video stream and an audio stream. This multiplexing method (i.e., the format of the bitstream generated by multiplexing) is arbitrary. Furthermore, during this multiplexing, the multiplexing unit (MUX) 1412 can also add predetermined header information, etc. to the bitstream. In other words, the multiplexing unit (MUX) 1412 can convert the format of the stream by multiplexing. For example, the multiplexing unit (MUX) 1412 multiplexes a video stream and an audio stream to convert them into a transport stream, which is a bitstream in a format for transfer. Furthermore, for example, the multiplexing unit (MUX) 1412 multiplexes a video stream and an audio stream to convert them into data (file data) in a file format for recording.

[0316] The demultiplexer (DMUX) 1413 demultiplexes a bitstream in which a video stream and an audio stream are multiplexed, using a method corresponding to the multiplexing performed by the multiplexer (MUX) 1412. That is, the demultiplexer (DMUX) 1413 extracts the video stream and the audio stream from the bitstream read from the stream buffer 1414 (separates the video stream from the audio stream). That is, the demultiplexer (DMUX) 1413 can convert the format of the stream by demultiplexing (reverse conversion of the conversion performed by the multiplexer (MUX) 1412). For example, the demultiplexer (DMUX) 1413 can obtain a transport stream supplied from, for example, the connectivity 1321 or the broadband modem 1333 via the stream buffer 1414 and demultiplex it to convert it into a video stream and an audio stream. Furthermore, for example, the demultiplexing unit (DMUX) 1413 can obtain file data read from various recording media by the connectivity 1321 via the stream buffer 1414 and demultiplex the data to convert it into a video stream and an audio stream.

[0317] The stream buffer 1414 buffers the bit stream. For example, the stream buffer 1414 buffers the transport stream supplied from the multiplexer (MUX) 1412 and supplies it to, for example, the connectivity 1321 or the broadband modem 1333 at a predetermined timing or based on an external request.

[0318] Also, for example, the stream buffer 1414 buffers the file data supplied from the multiplexing unit (MUX) 1412, and supplies it to, for example, connectivity 1321 at a predetermined timing or based on an external request, etc., and records it on various recording media.

[0319] Furthermore, the stream buffer 1414 buffers transport streams acquired, for example, via the connectivity 1321 or broadband modem 1333, and supplies them to the demultiplexer (DMUX) 1413 at a predetermined timing or based on an external request.

[0320] The stream buffer 1414 also buffers file data read from various recording media, for example, in the connectivity 1321, and supplies the data to a demultiplexer (DMUX) 1413 at a predetermined timing or based on an external request.

[0321] Next, an example of the operation of the video processor 1332 configured as described above will be described. For example, a video signal input to the video processor 1332 from the connectivity 1321 or the like is converted into digital image data in a predetermined format such as the 4:2:2 Y / Cb / Cr format by the video input processing unit 1401, and sequentially written to the frame memory 1405. This digital image data is read out to the first image scaling unit 1402 or the second image scaling unit 1403, where it is subjected to format conversion to a predetermined format such as the 4:2:0 Y / Cb / Cr format and scaling processing, and then written back to the frame memory 1405. This image data is coded by the encoding / decoding engine 1407 and written as a video stream to the video ES buffer 1408A.

[0322] Furthermore, an audio signal input to the video processor 1332 from the connectivity 1321 or the like is encoded by the audio encoder 1410 and written as an audio stream to the audio ES buffer 1409A.

[0323] The video stream in video ES buffer 1408A and the audio stream in audio ES buffer 1409A are read out and multiplexed by multiplexing unit (MUX) 1412 and converted into a transport stream, file data, or the like. The transport stream generated by multiplexing unit (MUX) 1412 is buffered in stream buffer 1414 and then output to an external network via, for example, connectivity 1321 or broadband modem 1333. In addition, the file data generated by multiplexing unit (MUX) 1412 is buffered in stream buffer 1414 and then output to, for example, connectivity 1321, and recorded on various recording media.

[0324] Furthermore, a transport stream input to the video processor 1332 from an external network via, for example, the connectivity 1321 or the broadband modem 1333 is buffered in the stream buffer 1414 and then demultiplexed by the demultiplexer (DMUX) 1413. Furthermore, file data read from various recording media, for example, in the connectivity 1321, and input to the video processor 1332 is buffered in the stream buffer 1414 and then demultiplexed by the demultiplexer (DMUX) 1413. In other words, the transport stream or file data input to the video processor 1332 is separated by the demultiplexer (DMUX) 1413 into a video stream and an audio stream.

[0325] The audio stream is supplied to an audio decoder 1411 via an audio ES buffer 1409B, where it is decoded and the audio signal is reproduced. Meanwhile, the video stream is written to a video ES buffer 1408B, and then sequentially read and decoded by an encoding / decoding engine 1407, and written to a frame memory 1405. The decoded image data is enlarged or reduced by a second image scaling unit 1403, and written to the frame memory 1405. The decoded image data is then read to a video output processing unit 1404, where it is format-converted to a predetermined format such as the 4:2:2 Y / Cb / Cr format, and further converted to an analog signal, and the video signal is reproduced and output.

[0326] When the present technology is applied to the video processor 1332 configured in this manner, the present technology according to the above-described embodiments may be applied to the encoding / decoding engine 1407. That is, for example, the encoding / decoding engine 1407 may have the functions of the above-described image encoding device 10, the functions of the image decoding device 60, or both. In this way, the video processor 1332 can obtain the same effects as those of the embodiments described above with reference to FIGS. 1 to 25.

[0327] In addition, in the encoding / decoding engine 1407, the present technology (i.e., the functions of the image encoding device 10 or the functions of the image decoding device 60, or both) may be realized by hardware such as a logic circuit, or by software such as an embedded program, or by both.

[0328] (Another example of a video processor configuration) Fig. 33 shows another example of a schematic configuration of a video processor 1332 to which the present technology is applied. In the example of Fig. 33, the video processor 1332 has a function of encoding and decoding video data in a predetermined format.

[0329] 33, the video processor 1332 has a control unit 1511, a display interface 1512, a display engine 1513, an image processing engine 1514, and an internal memory 1515. The video processor 1332 also has a codec engine 1516, a memory interface 1517, a multiplexing / demultiplexing unit (MUX / DMUX) 1518, a network interface 1519, and a video interface 1520.

[0330] The control unit 1511 controls the operation of each processing unit in the video processor 1332, such as the display interface 1512, the display engine 1513, the image processing engine 1514, and the codec engine 1516.

[0331] As shown in FIG. 33, the control unit 1511 includes, for example, a main CPU 1531, a sub-CPU 1532, and a system controller 1533. The main CPU 1531 executes programs and the like for controlling the operation of each processing unit in the video processor 1332. The main CPU 1531 generates control signals in accordance with the programs and supplies them to each processing unit (i.e., controls the operation of each processing unit). The sub-CPU 1532 plays an auxiliary role to the main CPU 1531. For example, the sub-CPU 1532 executes child processes and subroutines of programs and the like executed by the main CPU 1531. The system controller 1533 controls the operation of the main CPU 1531 and the sub-CPU 1532, for example, by specifying the programs executed by the main CPU 1531 and the sub-CPU 1532.

[0332] The display interface 1512 outputs image data to, for example, the connectivity 1321 under the control of the control unit 1511. For example, the display interface 1512 converts digital image data into an analog signal and outputs the analog signal to a monitor device of the connectivity 1321 as a reproduced video signal or as the digital image data itself.

[0333] Under the control of the control unit 1511, the display engine 1513 performs various conversion processes such as format conversion, size conversion, and color gamut conversion on the image data so that the image matches the hardware specifications of the monitor device or the like that displays the image.

[0334] Under the control of the control unit 1511, the image processing engine 1514 performs predetermined image processing on the image data, such as filtering to improve image quality.

[0335] The internal memory 1515 is a memory provided inside the video processor 1332 and shared by the display engine 1513, the image processing engine 1514, and the codec engine 1516. The internal memory 1515 is used, for example, for data exchange between the display engine 1513, the image processing engine 1514, and the codec engine 1516. For example, the internal memory 1515 stores data supplied from the display engine 1513, the image processing engine 1514, or the codec engine 1516, and supplies the data to the display engine 1513, the image processing engine 1514, or the codec engine 1516 as needed (for example, in response to a request). The internal memory 1515 may be realized by any storage device, but is generally often used to store small amounts of data such as block-based image data and parameters, and therefore is desirably realized by a semiconductor memory such as an SRAM (Static Random Access Memory) that has a relatively small capacity (compared to, for example, the external memory 1312) but a high response speed.

[0336] The codec engine 1516 performs processing related to encoding and decoding of image data. The codec engine 1516 can support any encoding and decoding method, and the number of methods may be one or more. For example, the codec engine 1516 may be provided with codec functions for multiple encoding and decoding methods, and may encode image data or decode encoded data using a codec selected from among the methods.

[0337] In the example shown in FIG. 33, the codec engine 1516 has, as functional blocks for codec-related processing, for example, MPEG-2 Video 1541, AVC / H.264 1542, HEVC / H.265 1543, HEVC / H.265 (Scalable) 1544, HEVC / H.265 (Multi-view) 1545, and MPEG-DASH 1551.

[0338] MPEG-2 Video 1541 is a functional block that encodes and decodes image data in the MPEG-2 format. AVC / H.264 1542 is a functional block that encodes and decodes image data in the AVC format. HEVC / H.265 1543 is a functional block that encodes and decodes image data in the HEVC format. HEVC / H.265 (Scalable) 1544 is a functional block that scalably encodes and scalably decodes image data in the HEVC format. HEVC / H.265 (Multi-view) 1545 is a functional block that multi-view encodes and multi-view decodes image data in the HEVC format.

[0339] MPEG-DASH1551 is a functional block that transmits and receives image data using the MPEG-DASH (MPEG-Dynamic Adaptive Streaming over HTTP) method. MPEG-DASH is a technology for streaming video using HTTP (HyperText Transfer Protocol), and one of its features is that it selects and transmits the appropriate data segment by segment from multiple pre-prepared encoded data sets with different resolutions, etc. MPEG-DASH1551 generates streams that comply with the standard and controls the transmission of those streams. For encoding and decoding of image data, it uses the above-mentioned MPEG-2 Video1541 to HEVC / H.265 (Multi-view)1545.

[0340] The memory interface 1517 is an interface for the external memory 1312. Data supplied from the image processing engine 1514 or the codec engine 1516 is supplied to the external memory 1312 via the memory interface 1517. Data read from the external memory 1312 is supplied to the video processor 1332 (the image processing engine 1514 or the codec engine 1516) via the memory interface 1517.

[0341] The multiplexing / demultiplexing unit (MUX DMUX) 1518 multiplexes and demultiplexes various types of image-related data, such as coded data bit streams, image data, and video signals. Any method of multiplexing / demultiplexing may be used. For example, during multiplexing, the multiplexing / demultiplexing unit (MUX DMUX) 1518 can not only combine multiple pieces of data into one, but also add predetermined header information, etc. to the data. During demultiplexing, the multiplexing / demultiplexing unit (MUX DMUX) 1518 can not only divide one piece of data into multiple pieces, but also add predetermined header information, etc. to each piece of divided data. In other words, the multiplexing / demultiplexing unit (MUX DMUX) 1518 can convert data formats through multiplexing / demultiplexing. For example, the multiplexing / demultiplexing unit (MUX DMUX) 1518 can multiplex bit streams to convert them into a transport stream, which is a bit stream in a format for transfer, or into data (file data) in a file format for recording. Of course, the reverse conversion is also possible by demultiplexing.

[0342] The network interface 1519 is an interface for, for example, the broadband modem 1333, the connectivity 1321, etc. The video interface 1520 is an interface for, for example, the connectivity 1321, the camera 1322, etc.

[0343] Next, an example of the operation of such a video processor 1332 will be described. For example, when a transport stream is received from an external network via the connectivity 1321, broadband modem 1333, or the like, the transport stream is supplied to a multiplexing / demultiplexing unit (MUX DMUX) 1518 via a network interface 1519, where it is demultiplexed, and decoded by a codec engine 1516. Image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by, for example, an image processing engine 1514, and then subjected to predetermined conversion by a display engine 1513. The image data is then supplied to, for example, the connectivity 1321 via a display interface 1512, and the image is displayed on a monitor. Furthermore, for example, image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by a multiplexing / demultiplexing unit (MUX DMUX) 1518 and converted into file data, which is output via a video interface 1520 to, for example, connectivity 1321, and recorded on various recording media.

[0344] Furthermore, for example, file data of coded data obtained by coding image data read from a recording medium (not shown) by the connectivity 1321 or the like is supplied to the multiplexing and demultiplexing unit (MUX DMUX) 1518 via the video interface 1520, where it is demultiplexed, and decoded by the codec engine 1516. The image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by the image processing engine 1514, subjected to predetermined conversion by the display engine 1513, and supplied to, for example, the connectivity 1321 or the like via the display interface 1512, where the image is displayed on a monitor. Also, for example, image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by the multiplexing and demultiplexing unit (MUX DMUX) 1518 and converted into a transport stream, and supplied to, for example, the connectivity 1321 or the broadband modem 1333 via the network interface 1519, and transmitted to another device (not shown).

[0345] Note that image data and other data are exchanged between the processing units in the video processor 1332, for example, using the internal memory 1515 or the external memory 1312. The power management module 1313 controls the power supply to the control unit 1511, for example.

[0346] When the present technology is applied to the video processor 1332 configured in this manner, the present technology according to the above-described embodiments may be applied to the codec engine 1516. That is, for example, the codec engine 1516 may have the functions of the above-described image encoding device 10, the functions of the image decoding device 60, or both. In this way, the video processor 1332 can obtain the same effects as those of the embodiments described above with reference to FIGS. 1 to 25.

[0347] In the codec engine 1516, the present technology (i.e., the functions of the image encoding device 10) may be realized by hardware such as a logic circuit, by software such as an embedded program, or by both.

[0348] Although two exemplary configurations of the video processor 1332 have been given above, the configuration of the video processor 1332 is arbitrary and may be other than the two examples described above. Furthermore, the video processor 1332 may be configured as a single semiconductor chip, or may be configured as multiple semiconductor chips. For example, it may be a three-dimensional stacked LSI in which multiple semiconductors are stacked. It may also be realized by multiple LSIs.

[0349] (Example of application to equipment) The video set 1300 can be incorporated into various devices that process image data. For example, the video set 1300 can be incorporated into a television device 900 (FIG. 27), a mobile phone 920 (FIG. 28), a recording / playback device 940 (FIG. 29), an imaging device 960 (FIG. 30), etc. By incorporating the video set 1300, the device can obtain the same effects as those of the embodiments described above with reference to FIGS. 1 to 25.

[0350] Note that even a portion of each component of the video set 1300 described above can be implemented as a configuration to which the present technology is applied, as long as it includes the video processor 1332. For example, only the video processor 1332 can be implemented as a video processor to which the present technology is applied. Also, for example, the processor and video module 1311 indicated by the dotted line 1341 as described above can be implemented as a processor, module, etc. to which the present technology is applied. Furthermore, for example, the video module 1311, external memory 1312, power management module 1313, and front-end module 1314 can be combined and implemented as a video unit 1361 to which the present technology is applied. In any configuration, it is possible to obtain the same effects as those of the embodiments described above with reference to FIGS. 1 to 25.

[0351] That is, any configuration including the video processor 1332 can be incorporated into various devices that process image data, similar to the case of the video set 1300. For example, the video processor 1332, the processor indicated by the dotted line 1341, the video module 1311, or the video unit 1361 can be incorporated into a television device 900 (FIG. 27), a mobile phone 920 (FIG. 28), a recording / playback device 940 (FIG. 29), an imaging device 960 (FIG. 30), or the like. By incorporating any of the configurations to which the present technology is applied, the device can obtain the same effects as those of the embodiments described above with reference to FIGS. 1 to 25, similar to the case of the video set 1300.

[0352] (6) Sixth Application Example: Network System This technology can also be applied to a network system made up of multiple devices. Figure 34 shows an example of a schematic configuration of a network system to which this technology is applied.

[0353] Network system 1600 shown in FIG. 34 is a system in which devices exchange information related to images (video images) with each other via a network. Cloud service 1601 of this network system 1600 is a system that provides services related to images (video images) to terminals such as a computer 1611, an AV (Audio Visual) device 1612, a portable information processing terminal 1613, and an IoT (Internet of Things) device 1614 that are communicatively connected to the system. For example, cloud service 1601 provides a service that supplies image (video image) content, such as so-called video distribution (on-demand or live distribution), to terminals. Also, for example, cloud service 1601 provides a backup service that receives and stores image (video image) content from terminals. Also, for example, cloud service 1601 provides a service that mediates the exchange of image (video image) content between terminals.

[0354] The physical configuration of the cloud service 1601 is arbitrary. For example, the cloud service 1601 may include various servers such as a server that stores and manages moving images, a server that distributes moving images to terminals, a server that acquires moving images from terminals, and a server that manages users (terminals) and billing, and an arbitrary network such as the Internet or a LAN.

[0355] The computer 1611 is, for example, an information processing device such as a personal computer, a server, or a workstation. The AV equipment 1612 is, for example, an image processing device such as a television receiver, a hard disk recorder, a game console, or a camera. The portable information processing terminal 1613 is, for example, a portable information processing device such as a notebook personal computer, a tablet terminal, a mobile phone, or a smartphone. The IoT device 1614 is, for example, any object that performs image processing, such as a machine, a home appliance, furniture, other objects, an IC tag, or a card-type device. All of these terminals have a communication function and can connect to the cloud service 1601 (establish a session) and exchange information with the cloud service 1601 (i.e., communicate). Each terminal can also communicate with other terminals. Communication between terminals may be performed via the cloud service 1601 or may be performed without the cloud service 1601.

[0356] The present technology may be applied to the above-described network system 1600, and when image (video) data is exchanged between terminals or between a terminal and a cloud service 1601, the image data may be encoded and decoded as described above in each embodiment. That is, the terminals (computers 1611 to IoT devices 1614) and the cloud service 1601 may have the functions of the above-described image encoding device 10 and image decoding device 60, respectively. In this way, it is possible to apply a more appropriate filter in the deblocking filter process.

[0357] <6. Summary> As described above, according to the embodiments of the present disclosure, it is possible to apply a more appropriate filter in deblocking filter processing.

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

[0359] For example, control information related to the present technology described in the above embodiment may be transmitted from the encoding side to the decoding side. For example, control information for controlling whether or not to permit (or prohibit) application of the above-described present technology may be transmitted. Furthermore, for example, control information for specifying an upper limit or a lower limit, or both, of a block size for permitting (or prohibiting) application of the above-described present technology may be transmitted.

[0360] Furthermore, in the above embodiment, an example has been described in which the filter strength determination unit 120 determines whether to apply an extended strong filter to a block boundary in units of four lines, but the present technology is not limited to such an example. For example, the filter strength determination unit 120 may determine whether to apply an extended strong filter to a block boundary in units of one line. Such a configuration makes it easier to apply a more appropriate filter. In particular, since the extended strong filter has a wider range of application and is a stronger filter than existing filters, making the determination more precise in units of one line makes it possible to avoid inadvertently applying a strong extended strong filter.

[0361] Furthermore, the effects described herein are merely descriptive or exemplary and are not limiting. In other words, the technology according to the present disclosure may achieve other effects that will be apparent to those skilled in the art from the description of this specification, in addition to or in place of the above-described effects.

[0362] The following configurations also fall within the technical scope of the present disclosure. (1) a decoding unit that decodes the coded stream to generate a decoded image; a determination unit that determines whether to apply an extended strong filter, which is applied to an extended application range obtained by extending an application range of a deblocking filter, to pixels located near a block boundary of the decoded image generated by the decoding unit, according to a state of pixels included in the extended application range; a filtering unit that applies the extended strong filter to pixels determined by the determination unit to be subjected to the extended strong filter; An image processing device comprising: (2) The image processing device according to (1), wherein the determination unit determines whether to apply the extended strong filter by referring to pixels included in the extended application range. (3) The image processing device according to (1) or (2), wherein the determination unit determines whether to apply a strong filter having a narrower applicability range than the extended strong filter to a pixel to which it has been determined that the extended strong filter should not be applied. (4) The image processing device according to (1) or (2), wherein the determining unit determines whether to apply the extended strong filter for each side of the block boundary. (5) The image processing device according to (4), wherein the determination unit determines whether to apply the extended strong filter to each side of the block boundary when a determination condition for a strong filter having a narrower application range than the extended strong filter is satisfied. (6) The image processing device according to any one of (1) to (5), wherein the filtering unit applies the extended strong filter having filter coefficients obtained by integrating filter coefficients related to low-frequency components and filter coefficients related to high-frequency components. (7) The image processing device according to (6), wherein the filter coefficients relating to the low-frequency components are filter coefficients with strong low-frequency characteristics. (8) The image processing device according to (1), wherein the filtering unit applies an asymmetric extended strong filter having an asymmetric tap shape. (9) The image processing device described in any one of (1) to (8), wherein the determination unit performs a continuity determination process to determine the continuity of pixel values ​​included in the extended application range according to a condition under which pixels used when determining the continuity of pixel values ​​included in the extended application range are continuously extended. (10) The image processing device according to (8), wherein the determining unit independently performs continuity determination processing for determining continuity of pixel values ​​included in the extended application range depending on the state of the block boundary. (11) The image processing device according to any one of (1) to (10), wherein the block boundaries are boundaries of blocks recursively divided according to a combination of a quadtree structure and a binary tree. (12) decoding the coded stream to generate a decoded image; determining whether to apply an extended strong filter to an extended application range in which the application range of the deblocking filter is extended, to pixels located near a block boundary of the generated decoded image, according to a state of pixels included in the extended application range; applying the extended strong filter to the pixels determined to be subjected to the extended strong filter; An image processing method comprising: (13) a determination unit that determines whether to apply an extended strong filter, which is applied to an extended application range obtained by extending an application range of a deblocking filter that is applied to pixels located near block boundaries of a locally decoded image, to pixels located near block boundaries of the decoded image, according to a state of pixels included in the extended application range; a filtering unit that applies the extended strong filter to pixels determined by the determination unit to be subjected to the extended strong filter; an encoding unit that encodes an image using the decoded image to which the extended strong filter has been applied by the filtering unit; An image processing device comprising: (14) determining whether to apply an extended strong filter to pixels located near block boundaries of a locally decoded image, the extended strong filter being applied to an extended application range obtained by extending an application range of a deblocking filter that is applied to pixels located near block boundaries of the decoded image, according to a state of pixels included in the extended application range; applying the extended strong filter to the pixels determined to be subjected to the extended strong filter; encoding an image using the decoded image to which the extended strong filter has been applied; An image processing method comprising: [Explanation of symbols]

[0363] 10 Image encoding device 11 Sort Buffer 12 Control Unit 13 Subtraction section 14 Orthogonal transformation section 15 Quantization section 16 Reversible encoder 17 Accumulation Buffer 18 Rate control section 21 Inverse quantization section 22 Inverse orthogonal transform unit 23 Addition section 24 Deblocking Filter 25 SAO Filter 26 Frame Memory 27 Switch 28 Mode setting section 30 Intra prediction unit 40 Inter Prediction Unit 60 Image decoding device 61 Accumulation Buffer 62 Lossless Decoding Unit 63 Inverse quantization section 64 Inverse orthogonal transform unit 65 Addition section 67 SAO Filter 68 Sort Buffer 69 D / A conversion section 70 frame memory 71 Selector 80 Intra prediction unit 90 Inter Prediction Unit 110 Application necessity determination section 120 Filter strength determination unit 130 Filtering section

Claims

1. a determination unit that determines, for a block boundary between a large block and a small block adjacent to each other in a decoded image obtained by decoding the coded stream, an extended strong filter to be applied to an extended application range in which the application range of the deblocking filter is extended, based on the state of pixels included in the large block divided by the block boundary, so that the extended strong filter is more likely to be applied to the large block; a filtering unit that applies the extended strong filter to pixels determined by the determination unit to be subjected to the extended strong filter; An image processing device comprising:

2. The image processing device according to claim 1 , wherein the determination unit determines whether to apply the extended strong filter by referring to pixels included in the extended application range.

3. The image processing device according to claim 1 , wherein the determining unit determines whether to apply a strong filter having a narrower applicability range than the extended strong filter to a pixel for which it has been determined that the extended strong filter should not be applied.

4. The image processing device according to claim 1 , wherein the determining unit determines whether to apply the extended strong filter for each side of the block boundary.

5. The image processing device according to claim 4 , wherein the determination unit determines whether to apply the extended strong filter to each side of the block boundary when a determination condition for a strong filter having a narrower application range than the extended strong filter is satisfied.

6. The image processing device according to claim 1 , wherein the filtering unit applies the extended strong filter having filter coefficients obtained by integrating filter coefficients related to low-frequency components and filter coefficients related to high-frequency components.

7. The image processing device according to claim 6 , wherein the filter coefficients relating to the low-frequency components are filter coefficients with strong low-frequency characteristics.

8. The image processing device according to claim 1 , wherein the filtering unit applies an asymmetric extended strong filter having an asymmetric tap shape.

9. The image processing device according to claim 1 , wherein the determination unit performs a continuity determination process for determining the continuity of pixel values ​​included in the extended application range in accordance with a condition under which pixels are continuously extended when determining the continuity of pixel values ​​included in the extended application range.

10. The image processing device according to claim 8 , wherein the determination unit performs a continuity determination process for determining continuity of pixel values ​​included in the extended application range using an independent determination condition for each block divided by the block boundary.

11. The image processing device according to claim 1 , wherein the block boundaries are boundaries of blocks recursively divided according to a combination of a quadtree structure and a binary tree.

12. determining, for a block boundary where a large block and a small block are adjacent to each other in a decoded image obtained by decoding the coded stream, an extended strong filter to be applied to an extended application range in which the application range of the deblocking filter is extended, based on the state of pixels included in the large block divided by the block boundary, so that the extended strong filter is more likely to be applied to the large block; applying the extended strong filter to the pixels determined to be subjected to the extended strong filter; An image processing method comprising:

13. a determination unit that determines, for a block boundary between a large block and a small block adjacent to each other in a decoded image obtained by local decoding when encoding an image, an extended strong filter to be applied to an extended application range in which the application range of the deblocking filter is extended, based on the state of pixels included in the large block divided by the block boundary, so that the extended strong filter is more likely to be applied to the large block; a filtering unit that applies the extended strong filter to pixels determined by the determination unit to be subjected to the extended strong filter; An image processing device comprising:

14. determining, for a block boundary where a large block and a small block are adjacent to each other in a decoded image obtained by locally decoding when encoding an image, an extended strong filter to be applied to an extended application range in which the application range of the deblocking filter is extended based on the state of pixels included in the large block divided by the block boundary, so that the extended strong filter is more likely to be applied to the large block; applying the extended strong filter to the pixels determined to be subjected to the extended strong filter; An image processing method comprising:

Citation Information

Patent Citations

  • Image enhancement method and apparatus for low bitrate video compression

    JP2007536828A

  • Measurement-based and scalable deblock filtering of image data

    JP2010141883A

  • Moving image processing apparatus, processing method, and computer-readable storage medium

    JP2017069810A

  • Image processor and image processing method

    WO2011145601A1