Image decoding device, image decoding method, and program

The image decoding device optimizes IntraTMP by registering block vectors with a cost threshold, addressing inefficiencies in existing methods and enhancing coding efficiency through comprehensive BV search.

JP7842718B2Active Publication Date: 2026-04-08KDDI CORP
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-08-25
Publication Date
2026-04-08

AI Technical Summary

Technical Problem

Existing image decoding methods using Intra Template Matching Prediction (IntraTMP) face inefficiencies due to the use of sum of absolute differences (SAD) as cost for template matching, which can lead to local minimum issues and loss of valid block vectors during hierarchical block vector (BV) search.

Method used

An image decoding device and method that registers block vectors with a cost smaller than the maximum cost + M in the first-level reference list during the second-level block vector search, ensuring comprehensive BV registration and reducing processing time.

Benefits of technology

Enhances coding efficiency by avoiding the loss of valid block vectors and optimizing the BV search process, thereby improving overall image decoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007842718000001
    Figure 0007842718000001
  • Figure 0007842718000002
    Figure 0007842718000002
  • Figure 0007842718000003
    Figure 0007842718000003
Patent Text Reader

Abstract

To improve a coding efficiency.SOLUTION: An image decoding device 200 according to the present invention includes: a first inter-frame prediction part 204 that generates a first prediction pixel on the basis of a decoded pixel and control information; a second inter-frame prediction part 205 that constructs a reference list on the basis of the decoded pixel and the control information, and generates a second prediction pixel by using the reference list; an accumulation part 208 that accumulates the decoded pixel; an inter-frame prediction part 206 that generates a third prediction pixel on the basis of the decoded pixel accumulated and the control information; and an adder device 207 that adds a prediction residual and the first to third prediction pixels to obtain the decoded pixel. The second inter-frame prediction part 205 registers a block vector with a cost smaller than the maximum cost +M (M>0) in the reference list at a first layer in searching of a block vector at a second layer in the case of performing an intra-template matching prediction.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an image decoding device, an image decoding method, and a program.

Background Art

[0002] In Non-Patent Documents 1 and 2, Intra Template Matching Prediction (IntraTMP) is disclosed.

[0003] IntraTMP refers to pixels that match by template matching from the decoded pixel region of the frame to be decoded, and uses them as predicted pixels for the block to be decoded.

[0004] Specifically, the image encoding device uses decoded neighboring pixels as a template, searches for coordinates with a small cost of template matching from the same frame, and uses the displacement amount to such coordinates as a block vector (BV).

[0005] The image encoding device constructs a BV list (reference list) in ascending order of the cost of template matching, and encodes the index of such BV list.

[0006] The image decoding device also searches in the same way and decodes the BV from the index of such BV list by reconstructing the above BV list.

[0007] As shown in FIG. 2, the image decoding device uses the pixels copied from the reference block indicated by the BV of the block to be decoded as predicted pixels. [[ID=第33]]

Prior Art Documents

Non-Patent Documents

[0008]

Non-Patent Document 1

[0009] Non-patent documents 1 and 2 use the sum of absolute differences (SAD) as the cost of template matching.

[0010] Furthermore, Non-Patent Document 2 describes a two-tiered BV search to speed up the search.

[0011] In the first-level BV search, we broadly search for BV and select coordinates with small SAD. In the second-level BV search, we search for BV in more detail, focusing on the coordinates where SAD was small in the first level.

[0012] At this point, to avoid falling into a local minimum during the search for the first-level BV, we retain the top N BV candidates with small SADs.

[0013] Furthermore, in the second layer, when calculating the surrounding SAD around each BV candidate, the BV candidates are restricted based on the SAD that is the largest among the BV candidates.

[0014] However, if the top N SADs are all the same, the BV to be searched in the second layer is lost, which presents a problem as it prevents the search for a valid BV.

[0015] Therefore, the present invention has been made in view of the above-mentioned problems, and aims to provide an image decoding device, an image decoding method, and a program with high encoding efficiency. [Means for solving the problem]

[0016] The first feature of the present invention is an image decoding device comprising: a decoding unit that decodes control information and quantization values; an inverse quantization unit that inversely quantizes the quantization values ​​to obtain conversion coefficients; an inverse transformation unit that inversely transforms the conversion coefficients to obtain prediction residuals; a first in-frame prediction unit that generates first prediction pixels based on decoded pixels and the control information; a second in-frame prediction unit that constructs a reference list based on the decoded pixels and the control information and generates a second prediction image using the reference list; an accumulation unit that accumulates the decoded pixels; an inter-frame prediction unit that generates third prediction pixels based on the accumulated decoded pixels and the control information; and an adder that adds the prediction residuals and the first to third prediction pixels to obtain the decoded pixels. The gist of the second in-frame prediction unit is that, when performing intra-template matching prediction, it registers a block vector V having a cost smaller than the maximum cost + M (M>0) in the first-level reference list in the search for the second-level block vector.

[0017] A second feature of the present invention is an image decoding method comprising: step A decoding control information and quantization values; step B inverse quantization of the quantization values ​​to obtain conversion coefficients; step C inverse transformation of the conversion coefficients to obtain prediction residuals; step D generating first prediction pixels based on the decoded pixels and the control information; step E constructing a reference list based on the decoded pixels and the control information and generating a second prediction image using the reference list; step F accumulating the decoded pixels; step G generating third prediction pixels based on the accumulated decoded pixels and the control information; and step H obtaining the decoded pixels by adding the prediction residuals and the first to third prediction pixels, wherein in step E, when performing intra-template matching prediction, the gist of the method is to register block vectors with a cost smaller than the maximum cost + M (M>0) in the first-level reference list in the search for second-level block vectors.

[0018] A third feature of the present invention is a program that causes a computer to function as an image decoding device, wherein the image decoding device comprises a decoding unit that decodes control information and quantization values, an inverse quantization unit that inversely quantizes the quantization values ​​to obtain conversion coefficients, an inverse transformation unit that inversely transforms the conversion coefficients to obtain prediction residuals, a first in-frame prediction unit that generates first prediction pixels based on decoded pixels and the control information, a second in-frame prediction unit that constructs a reference list based on the decoded pixels and the control information and generates a second prediction image using the reference list, an accumulation unit that accumulates the decoded pixels, an inter-frame prediction unit that generates third prediction pixels based on the accumulated decoded pixels and the control information, and an adder that adds the prediction residuals and the first to third prediction pixels to obtain the decoded pixels, wherein the second in-frame prediction unit, when performing intra-template matching prediction, registers block vectors with a cost smaller than the maximum cost + M (M>0) in the first-level reference list in the search for second-level block vectors.

[0019] A fourth feature of the present invention is an image decoding apparatus, comprising: a decoding unit that decodes control information and quantization values; an inverse quantization unit that inverse quantizes the quantization values to obtain transform coefficients; an inverse transform unit that inverse transforms the transform coefficients to obtain prediction residuals; a first intra-frame prediction unit that generates a first predicted pixel based on the decoded pixels and the control information; a second intra-frame prediction unit that constructs a reference list based on the decoded pixels and the control information, and generates a second predicted image using the reference list; an accumulation unit that accumulates the decoded pixels; an inter-frame prediction unit that generates a third predicted pixel based on the accumulated decoded pixels and the control information; and an adder that adds the prediction residuals and the first to third predicted pixels to obtain the decoded pixels. When the second intra-frame prediction unit performs intra-template matching prediction, if there is no block vector in the search for the second-layer block vector that has a cost smaller than the maximum cost in the first-layer reference list, the second-layer reference list is required to register any block vector in the first-layer reference list.

Advantages of the Invention

[0020] According to the present invention, it is possible to provide an image decoding apparatus, an image decoding method, and a program with high coding efficiency.

Brief Description of the Drawings

[0021] [Figure 1] FIG. 1 is a diagram showing an example of a functional block of an image decoding apparatus 200 according to an embodiment. [Figure 2] FIG. 2 is a diagram for explaining an example of IntraTMP. [Figure 3] FIG. 3 is a flowchart showing an example of a method for setting a correction method in a sequence unit. [Figure 4] FIG. 4 is a flowchart showing an example of a method for controlling the search for the BV of IntraTMP in a block unit. [Figure 5] FIG. 5 is a diagram for explaining an example of a template. [Figure 6]FIG. 6 is a diagram for explaining an example of the BV list. Embodiments for Carrying Out the Invention

[0022] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that the components in the following embodiments can be appropriately replaced with existing components or the like, and various variations including combinations with other existing components are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.

[0023] <First Embodiment> Hereinafter, the image decoding apparatus 200 according to the present embodiment will be described with reference to FIGS. 1 to 6. FIG. 1 is a diagram showing an example of the functional blocks of the image decoding apparatus 200 according to the present embodiment.

[0024] As shown in FIG. 1, the image decoding apparatus 200 includes a code input unit 210, a decoding unit 201, an inverse quantization unit 202, an inverse transformation unit 203, a first intra-frame prediction unit 204, a second intra-frame prediction unit 205, an inter-frame prediction unit 206, an adder 207, an accumulation unit 208, and an image output unit 220.

[0025] The code input unit 210 is configured to acquire coded information coded by an image coding apparatus.

[0026] The decoding unit 201 is configured to decode control information and quantization values from the coded information input from the code input unit 210. For example, the decoding unit 201 is configured to output control information and quantization values by performing variable length decoding on such coded information.

[0027] Here, the quantized values ​​are sent to the inverse quantization unit 202, and the control information is sent to the first frame prediction unit 204, the second frame prediction unit 205, and the inter-frame prediction unit 206. This control information includes information necessary for controlling the first frame prediction unit 204, the second frame prediction unit 205, and the inter-frame prediction unit 206, and may also include header information such as sequence parameter sets, picture parameter sets, picture headers, and slice headers.

[0028] The inverse quantization unit 202 is configured to inverse quantize the quantized values ​​sent from the decoding unit 201 to obtain conversion coefficients. These conversion coefficients are then sent to the inverse conversion unit 203.

[0029] The inverse transform unit 203 is configured to inversely transform the transformation coefficients sent from the inverse quantization unit 202 to obtain the predicted residual. This predicted residual is then sent to the adder 207.

[0030] The first frame prediction unit 204 is configured to generate a first prediction pixel for addition with the prediction residual in the adder 207, based on the decoded pixels obtained via the adder 207 and the control information decoded by the decoding unit 201. This first prediction pixel is sent to the adder 207 and the second frame prediction unit 205.

[0031] The interframe prediction unit 206 is configured to generate a third prediction pixel for addition with the prediction residual in the adder 207, based on the decoded pixels obtained by referring to the storage unit 208 and the control information decoded by the decoding unit 201. This third prediction pixel is sent to the adder 207.

[0032] The storage unit 208 is configured to cumulatively store the decoded pixels sent from the adder 207. These decoded pixels are referenced by the inter-frame prediction unit 206 via the storage unit 208.

[0033] The adder 207 is configured to obtain a decoded pixel by adding the predicted residual sent from the inverse transform unit 203 to one of the first to third predicted pixels sent from the first frame prediction unit 204, the second frame prediction unit 205, and the inter-frame prediction unit 206. The decoded pixel is then sent to the image output unit 220, the storage unit 208, the first frame prediction unit 204, and the second frame prediction unit 205.

[0034] (Prediction unit 205 within the second frame) The following describes an example of how the second predicted pixel is derived by the second frame prediction unit 205.

[0035] The role of the second frame prediction unit 205 is to derive a block vector (hereinafter referred to as BV) for the decoded block and predict the pixels of the block referenced by the BV, in order to accurately compensate the decoded block in the subsequent adder 207 (second frame prediction).

[0036] An example of prediction within the second frame is the intra-template matching prediction (hereinafter referred to as IntraTMP) disclosed in Non-Patent Document 2.

[0037] When performing IntraTMP, the second frame prediction unit 205 uses a decoded pixel in the same frame as a template, searches for a coordinate in the same frame that matches the template, defines the displacement to that coordinate as BV, and references the block that has been displaced from the decoded block to BV as the predicted pixel of the decoded block.

[0038] The template can utilize neighboring pixels of the block to be decoded and can use any number of lines. Furthermore, as shown in Figure 5, the template can use both the neighboring pixels above and to the left of the block to be decoded, or it can use only the neighboring pixels above or only the neighboring pixels to the left.

[0039] Here, the second frame prediction unit 205, when performing IntraTMP, searches for BV hierarchically in order to shorten the search time.

[0040] The number of layers can be set to any value, but below we will show an example where the prediction unit 205 in the second frame searches for BV at two layers. Furthermore, we will explain the case where SAD (Sum of Absolute Difference) is used as the cost for template matching in BV search, but any cost such as SATD can be used.

[0041] The second frame prediction unit 205 first roughly searches for BVs in the first layer to select BV candidates, and then in the second layer, it searches for BVs in detail to determine the BV.

[0042] Here, the second frame prediction unit 205 may be configured to change the coarseness of the BV search based on control information that sets the coarseness of the BV search when coarsely searching for BV in the first layer.

[0043] For example, in screen content such as documents, perfectly matching coordinates can exist, and even a single pixel shift can significantly change the SAD (Simultaneous Alignment Date). Therefore, it is desirable to configure the system to search for BV (Background Value) densely in screen content.

[0044] On the other hand, in camera-captured content, the distribution of SAD is relatively smooth, so it is desirable to set the system to search for BV sparsely in camera-captured content.

[0045] Furthermore, the second frame prediction unit 205 may be configured to change the density of the BV search according to the BV search direction without using explicit control information.

[0046] Assuming the same texture is repeated, perfect matching coordinates often exist directly to the side or directly above, so it is desirable to search for BV densely in the side or directly above direction. On the other hand, it is desirable to search for BV sparsely in the diagonal direction.

[0047] Alternatively, the second frame prediction unit 205 may be configured to change the density of BV search according to the block size without using explicit control information.

[0048] The smaller the block size, the easier it is to find perfectly matching coordinates; therefore, it is desirable to search for BVs more densely when the block size is small.

[0049] Conversely, the larger the block size, the greater the improvement in coding efficiency when matching coordinates are found; therefore, a denser search for BVs is acceptable when the block size is large.

[0050] In either case, the second frame prediction unit 205 selects the top N BV candidates in the search for the first-level BV and uses them in the search for the second-level BV.

[0051] The second frame prediction unit 205 constructs a BV list at each level when searching for BV hierarchically.

[0052] Note that a BV list can be prepared for each type of template. For example, as shown in Figure 5, different BV lists can be prepared for cases where the template uses both the neighboring pixels above and to the left of the block to be decoded, where the template uses only the neighboring pixels above the block to be decoded, and where the template uses only the neighboring pixels to the left of the block to be decoded. The lengths of each BV list may be the same or different.

[0053] The SAD calculation can be reduced by first calculating the SAD using a template containing only the neighboring pixels above the block to be decoded, and then calculating the SAD using a template containing only the neighboring pixels to the left of the block to be decoded, and then summing the two SADs together.

[0054] Alternatively, after calculating the SAD using a template consisting only of neighboring pixels above the block to be decoded and the SAD using a template consisting only of neighboring pixels to the left of the block to be decoded, the computational complexity can be reduced by subtracting the amounts corresponding to each template from both the SADs using the templates for neighboring pixels above and left of the block to be decoded. The second frame prediction unit 205 prepares a BV list that can register multiple BVs in each layer, and when it calculates the SAD of each coordinate, it registers only the BVs that are smaller than a predetermined SAD in the BV list into the BV list.

[0055] The specified SAD will be the maximum value of the SAD in the previous level's BV list if all entries in that BV list are filled; otherwise, it will be a pre-set value.

[0056] The pre-set values ​​can be changed depending on the number of pixels and bit depth of the block to be decoded.

[0057] If the BV list is full, add BVs with a SAD smaller than the specified SAD and remove the BV with the largest SAD.

[0058] When registering BVs, it is advisable to sort the BV list in ascending order of SAD.

[0059] Furthermore, if you maintain a BV list for each template type, you can set a predetermined SAD for each BV list. Alternatively, you can select the minimum value from the maximum SADs of multiple BV lists and set it as a common predetermined SAD.

[0060] Furthermore, if the second frame prediction unit 205 maintains a BV list for each template type, after the BV search for all levels is complete, it selects as many BV lists as possible in ascending order of SAD from the BV lists, merges the BV lists into one, and then determines the index of the BV list.

[0061] Alternatively, the second frame prediction unit 205 may consolidate the BV lists into one each time it crosses a hierarchy. In this case, if BVs are duplicated, the second frame prediction unit 205 keeps the BVs with smaller SADs and removes the BVs with larger SADs from the list.

[0062] If a BV list is maintained for each template type and the BV list is full, the second frame prediction unit 205 may, as shown in Figure 6, select the smallest SAD from the number of BVs that fit in the BV list and set it as a predetermined SAD in the next level.

[0063] Furthermore, the second frame prediction unit 205 can interrupt the SAD calculation process as soon as the SAD in the BV list exceeds a predetermined SAD, even if it is still in the process of calculating the SAD. This allows for the early termination of unnecessary searches and speeds up the search process.

[0064] Furthermore, if a BV is added while the BV list is full, it is desirable for the second frame prediction unit 205 to update a predetermined SAD to the maximum SAD of the BV list.

[0065] However, if the search for BV spans multiple levels, the second frame prediction unit 205 registers BVs with a SAD smaller than the maximum SAD + M (M>0) in the BV list of the level where the BV was previously searched into the BV list of the level where the BV is currently being searched into.

[0066] The second-frame prediction unit 205 starts the second-level search by conducting a detailed search of the neighborhood around the BV candidates in the first-level BV list, assuming the second-level BV list is empty. For example, if M=1, the second-frame prediction unit 205 registers only BVs with SADs smaller than the maximum SAD+1 in the first-level BV list into the second-level BV list during the second-level BV search.

[0067] In other words, even if the SAD in the second level and the maximum SAD in the BV list in the first level are all the same value, this method can avoid the problem where no BVs are registered in the BV list.

[0068] Furthermore, if the value exceeds the maximum SAD+1 in the first-level BV list, the search for that coordinate is terminated, which has the effect of reducing processing time.

[0069] The BV list can also be used in IntraTMP's weighted average prediction (IntraTMP Fusion), IntraTMP (Fractional IntraTMP) which allows BVs with fractional pixel precision in addition to integer pixel precision, and IntraTMP (Multi-candidate IntraTMP) which selects one BV from multiple BV candidates or any number of BVs up to or less than the maximum in the BV list.

[0070] In another embodiment, the second frame prediction unit 205 may register any BV candidate from the first-level BV list to the second-level BV list so that the second-level list is not empty.

[0071] In such cases, it is desirable to register the BV candidate with the smallest SAD in the first-level BV list to the second-level BV list.

[0072] If there are multiple BVs in the BV list that have the smallest SAD, the second frame prediction unit 205 selects one based on a criterion other than SAD.

[0073] For example, criteria such as the length of the base velocity (BV) or the distance from the x-axis or y-axis can be used, and it is desirable to select a BV that is small in either case.

[0074] Furthermore, if blocks in multiple BV candidates are a perfect match (meaning there is substantial overlap in the BV list even if the BVs are different), the index becomes redundant. Therefore, the second frame prediction unit 205 removes all but one of the two or more BVs from the BV list if the difference between the blocks referenced by two or more BVs registered in the BV list is smaller than a predetermined threshold.

[0075] The control information decoded by the decoding unit 201 when performing prediction within the second frame will be explained below with reference to Figures 3 and 4.

[0076] The code input to the decoding unit 201 may include a sequence parameter set (SPS) that summarizes control information for each sequence.

[0077] Furthermore, such a code may include a picture parameter set (PPS) or picture header (PH) that summarizes control information on a picture-by-picture basis. Such a code may also include a slice header (SH) that summarizes control information on a slice-by-slice basis.

[0078] Referring to Figure 3, we will now describe how to set the correction method on a sequence-by-sequence basis.

[0079] As shown in Figure 3, in step S101, the decoding unit 201 determines whether sps_itmp_enabled_flag is 1 in the sequence parameter set.

[0080] The sps_itmp_enabled_flag is a syntax that controls the presence or absence of IntraTMP. If sps_itmp_enabled_flag is 1, it indicates that IntraTMP is enabled, and if sps_itmp_enabled_flag is 0, it indicates that IntraTMP is disabled.

[0081] If sps_itmp_enabled_flag is 1, this operation proceeds to step S102; if sps_itmp_enabled_flag is 0, this operation terminates.

[0082] In step S102, the decoding unit 201 decodes sps_itmp_mode.

[0083] sps_itmp_mode is syntax that controls the method of IntraTMP.

[0084] By using sps_itmp_mode, the IntraTMP method can be changed on a sequence-by-sequence basis according to the image characteristics, which is expected to maximize encoding efficiency.

[0085] For example, for sequences composed of computer graphics (CG), the pixel distribution is often uniform, so the BV search of IntraTMP can be set to be dense. For sequences composed of natural images, the pixel distribution is diverse, so the BV search of IntraTMP can be set to be sparse, thereby maximizing encoding efficiency.

[0086] When setting the correction method on a picture-by-picture basis, the decoding unit 201 similarly decodes pps_itmp_enabled_flag and pps_itmp_mode in the picture parameter set or picture header.

[0087] By using pps_itmp_mode, the correction method according to the image characteristics can be changed on a picture-by-picture basis, which is expected to maximize encoding efficiency.

[0088] For example, since pictures composed of computer graphics often have a uniform pixel distribution, the BV search of IntraTMP can be set to be dense, while pictures composed of natural images have a diverse pixel distribution, so the BV search of IntraTMP can be set to be sparse, thereby maximizing encoding efficiency.

[0089] When setting the correction method on a slice-by-slice basis, the decoding unit 201 similarly decodes sh_itmp_enabled_flag and sh_itmp_mode in the slice header.

[0090] By using sh_itmp_mode, the correction method can be changed on a slice-by-slice basis according to the image characteristics, which is expected to maximize encoding efficiency.

[0091] For example, since slice regions composed of computer graphics (CG) often have a uniform pixel distribution, the BV search of IntraTMP can be set to be dense. Conversely, since slice regions composed of natural images have a diverse pixel distribution, the BV search of IntraTMP can be set to be sparse, thereby maximizing encoding efficiency.

[0092] By setting the encoding only in the upper layers, the increase in the encoding amount can be suppressed, or by setting it in the lower layers as well and prioritizing the settings in the lower layers, adaptive control can be achieved.

[0093] Alternatively, if the correction method described above is pre-configured, the decoding of such correction method itself can be omitted.

[0094] In the examples above, we described how to configure the IntraTMP method on a sequence, picture, or slice basis. However, you can also directly select the method on a block basis, as described later, without configuring these methods. In this case, you can avoid the increase in header information mentioned above.

[0095] The following describes how to control the search for BVs in IntraTMP on a block-by-block basis, referring to Figure 4.

[0096] As shown in Figure 4, in step S201, the decoding unit 201 determines whether sps_itmp_enabled_flag, pps_itmp_enabled_flag, or sh_itmp_enabled_flag is 1.

[0097] If neither is 1, this operation terminates; if either is 1, this operation proceeds to step S202.

[0098] In step S202, the decoding unit 201 decodes the IntraTMP control signal, cu_itmp_mode.

[0099] In step S203, the decoding unit 201 decodes cu_itmp_index, which is a control signal representing an index.

[0100] According to this embodiment, decoding of the BV in IntraTMP can be performed from a relatively small amount of code by adaptively setting the BV list, thereby improving coding efficiency.

[0101] The image decoding device 200 described above may be implemented as a program that causes a computer to execute each function (each process). [Industrial applicability]

[0102] Furthermore, according to this embodiment, for example, it is possible to achieve an overall improvement in service quality in video communication, thereby contributing to Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), "Build resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of symbols]

[0103] 200…Image Decoding Device 201...Decoding section 202...Inverse quantization section 203...Inverse Transformation Section 204...Prediction unit within the first frame 205...Prediction unit within the second frame 206...Interframe prediction unit 207... Adder 208...Storage section 210... Code input section 220...Image output unit

Claims

1. An image decoding device, A decoding unit that decodes control information and quantization values, An inverse quantization unit that inversely quantizes the quantized value to obtain a conversion coefficient, An inverse transform unit that performs an inverse transform on the aforementioned transformation coefficient to obtain the predicted residual, A first-frame prediction unit that generates a first prediction pixel based on the decoded pixel and the control information, A second in-frame prediction unit constructs a reference list based on the decoded pixels and the control information, and generates a second predicted pixel using the reference list. A storage unit for storing the decoded pixels, An interframe prediction unit that generates a third predicted pixel based on the accumulated decoded pixels and the control information, The system comprises an adder that adds the predicted residual and the first to third predicted pixels to obtain the decoded pixels, The image decoding device is characterized in that, when performing intra-template matching prediction, the second frame prediction unit registers a block vector having a cost smaller than the maximum cost + M (M > 0) in the first-level reference list when searching for a second-level block vector.

2. An image decoding device, A decoding unit that decodes control information and quantization values, An inverse quantization unit that inversely quantizes the quantized value to obtain a conversion coefficient, An inverse transform unit that performs an inverse transform on the aforementioned transformation coefficient to obtain the predicted residual, A first-frame prediction unit that generates a first prediction pixel based on the decoded pixel and the control information, A second in-frame prediction unit constructs a reference list based on the decoded pixels and the control information, and generates a second predicted pixel using the reference list. A storage unit for storing the decoded pixels, An interframe prediction unit that generates a third predicted pixel based on the accumulated decoded pixels and the control information, The system comprises an adder that adds the predicted residual and the first to third predicted pixels to obtain the decoded pixels, The image decoding device is characterized in that, when the second frame prediction unit performs intra-template matching prediction, if there is no block vector with a cost smaller than the maximum cost in the first-level reference list during the search for the second-level block vector, it registers an arbitrary block vector from the first-level reference list in the second-level reference list.

3. The image decoding apparatus according to claim 1 or 2, characterized in that the aforementioned cost is the sum of absolute differences.

4. The image decoding apparatus according to claim 1, characterized in that M is 1.

5. The aforementioned control information is information that sets the density of the block vector search, The image decoding apparatus according to claim 1, characterized in that the second frame prediction unit changes the density of the block vector search based on the control information.

6. The image decoding apparatus according to claim 1, characterized in that the second frame prediction unit changes the density of block vector search according to the block vector search direction.

7. The image decoding apparatus according to claim 6, characterized in that the second frame prediction unit densely searches for block vectors in the lateral or upward direction.

8. The image decoding apparatus according to claim 6, characterized in that the second frame prediction unit searches for block vectors sparsely in the diagonal direction.

9. The image decoding apparatus according to claim 1, characterized in that the second frame prediction unit changes the density of block vector search according to the block size.

10. The image decoding apparatus according to claim 9, characterized in that the second frame prediction unit searches for block vectors more densely as the block size decreases.

11. The image decoding apparatus according to claim 9, characterized in that the second frame prediction unit searches for block vectors more densely as the block size increases.

12. The image decoding apparatus according to claim 1, characterized in that the second frame prediction unit excludes one of the two or more block vectors from the reference list if the difference between the blocks referenced by the two or more block vectors is smaller than a predetermined threshold.

13. An image decoding method, Step A involves decoding the control information and quantization values, Step B involves inverse quantization of the quantized value to obtain a conversion coefficient, Step C involves inversely transforming the aforementioned conversion coefficient to obtain the predicted residual, Step D of generating a first predicted pixel based on the decoded pixel and the control information, Step E involves constructing a reference list based on the decoded pixels and the control information, and generating a second predicted pixel using the reference list. Step F for accumulating the decoded pixels, A step G to generate a third predicted pixel based on the accumulated decoded pixels and the control information, The process includes step H of adding the predicted residual and the first to third predicted pixels to obtain the decoded pixels, In step E, when performing intra-template matching prediction, the image decoding method is characterized in that, in the search for block vectors in the second layer, block vectors having a cost smaller than the maximum cost in the first layer's reference list + M (M > 0) are registered.

14. A program that makes a computer function as an image decoding device, The aforementioned image decoding device is A decoding unit that decodes control information and quantization values, An inverse quantization unit that inversely quantizes the quantized value to obtain a conversion coefficient, An inverse transform unit that performs an inverse transform on the aforementioned transformation coefficient to obtain the predicted residual, A first-frame prediction unit that generates a first prediction pixel based on the decoded pixel and the control information, A second in-frame prediction unit constructs a reference list based on the decoded pixels and the control information, and generates a second predicted pixel using the reference list. A storage unit for storing the decoded pixels, An interframe prediction unit that generates a third predicted pixel based on the accumulated decoded pixels and the control information, The system comprises an adder that adds the predicted residual and the first to third predicted pixels to obtain the decoded pixels, The second frame prediction unit is a program characterized in that, when performing intra-template matching prediction, it registers a block vector with a cost smaller than the maximum cost in the first-level reference list + M (M > 0) when searching for a second-level block vector.

Citation Information

Patent Citations

  • Template matching on IBC merge candidates

    WO2023034782A1