Image decoding device, image decoding method, and program
Patent Information
- Application Number
- JP2023137447
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-25
- Publication Date
- 2025-03-07
- Estimated Expiration
- 2043-08-25
AI Technical Summary
【0020】 本発明によれば、符号化効率の高い画像復号装置、画像復号方法及びプログラムを提供することができる。
Smart Images

Figure 2025031308000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an image decoding device, an image decoding method, and a program. [Background technology]
[0002] Non-Patent Documents 1 and 2 disclose intra template matching prediction (IntraTMP).
[0003] IntraTMP refers to pixels that match in template matching from the decoded pixel area of the frame to be decoded, and sets 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 in the same frame that have a low template matching cost, and sets the displacement amount to the coordinates as a block vector (BV).
[0005] The image coding apparatus constructs a BV list (reference list) in ascending order of template matching cost, and codes the index of this BV list.
[0006] The image decoding device also searches in the same manner and reconstructs the above-mentioned BV list to decode the BV from the index of the BV list.
[0007] As shown in FIG. 2, the image decoding apparatus copies pixels from a reference block indicated by the BV of the block to be decoded and uses them as prediction pixels. [Prior art documents] [Non-patent literature]
[0008] [Non-Patent Document 1] K. Naser, et al., "EE2: Intra Template Matching," Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29, JVET-V0130, 22nd meeting, Apr. 2021 [Non-Patent Document 2] M. Coban, et al., “Algorithm description of Enhanced Compression Model 9 (ECM 9)”, JVET-AD2025, 2023 Summary of the Invention [Problem to be solved by the invention]
[0009] In Non-Patent Documents 1 and 2, the Sum of Absolute Difference (SAD) is used as the cost of template matching.
[0010] Furthermore, in Non-Patent Document 2, in order to speed up the search, a BV search is performed in two layers.
[0011] Here, in the first layer BV search, the BV is roughly searched and the coordinate with the smallest SAD is selected. In the second layer BV search, the BV is searched in detail, centering on the coordinate with the smallest SAD in the first layer.
[0012] At this time, in order to avoid falling into a local minimum in the first-level BV search, the top N BV candidates with the smallest SAD are retained.
[0013] Furthermore, in the second layer, when calculating the SAD around each BV candidate, the BV candidates are limited based on the maximum SAD among the BV candidates.
[0014] However, if the top N SADs are all the same value, the BV to be searched in the second layer is lost, and a valid BV cannot be found.
[0015] Therefore, the present invention has been made in consideration of the above-mentioned problems, and an object of the present invention is to provide an image decoding device, an image decoding method, and a program with high coding efficiency. [Means for solving the problem]
[0016] 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; a storage 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 residual and the first to third predicted pixels to obtain the decoded pixel, and wherein when performing intra template matching prediction, the second intra-frame prediction unit registers a block vector V having a cost smaller than a maximum cost in a reference list of a first layer plus M (M>0) in a search for a block vector of a second layer.
[0017] A second feature of the present invention is an image decoding method comprising: a step A of decoding control information and a quantized value; a step B of inversely quantizing the quantized value to obtain a transform coefficient; a step C of inversely transforming the transform coefficient to obtain a prediction residual; a step D of generating a first predicted pixel based on decoded pixels and the control information; a step E of constructing a reference list based on the decoded pixels and the control information and generating a second predicted image using the reference list; a step F of accumulating the decoded pixels; a step G of generating a third predicted pixel based on the accumulated decoded pixels and the control information; and a step H of adding the prediction residual and the first to third predicted pixels to obtain the decoded pixel. In the step E, when intra template matching prediction is performed, a block vector having a cost smaller than a maximum cost in a reference list of a first layer plus M (M>0) is registered in a search for a block vector of a second layer.
[0018] A third feature of the present invention is a program for causing a computer to function as an image decoding device, the image decoding device including: a decoding unit that decodes control information and quantization values; an inverse quantization unit that inversely quantizes the quantization values to obtain transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to obtain prediction residuals; a first intra-frame prediction unit that generates a first predicted pixel based on decoded pixels and the control information; a second intra-frame prediction unit that builds a reference list based on the decoded pixels and the control information and generates a second predicted image using the reference list; a storage 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 residual and the first to third predicted pixels to obtain the decoded pixel, and the second intra-frame prediction unit registers a block vector having a cost smaller than a maximum cost in a reference list of a first layer plus M (M>0) in a search for a block vector of a second layer when performing intra template matching prediction.
[0019] 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; a storage 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 residual and the first to third predicted pixels to obtain the decoded pixel, wherein when performing intra template matching prediction, if no block vector having a cost smaller than a maximum cost in the reference list of a first layer is present in a search for a block vector in a second layer, the second intra-frame prediction unit registers an arbitrary block vector in the reference list of the first layer in the reference list of the second layer. Effect of the Invention
[0020] According to the present invention, it is possible to provide an image decoding device, 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 functional blocks of an image decoding device 200 according to an embodiment. [Diagram 2] FIG. 2 is a diagram for explaining an example of the IntraTMP. [Diagram 3] FIG. 3 is a flowchart showing an example of a method for setting a correction method on a sequence basis. [Figure 4] FIG. 4 is a flow chart illustrating an example of a method for controlling searching for a BV of an IntraTMP on a block-by-block basis. [Diagram 5] FIG. 5 is a diagram for explaining an example of the template. [Figure 6]FIG. 6 is a diagram illustrating an example of the BV list. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0022] Hereinafter, the 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, 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 An image decoding device 200 according to this embodiment will be described below with reference to Fig. 1 to Fig. 6. Fig. 1 is a diagram showing an example of functional blocks of the image decoding device 200 according to this embodiment.
[0024] As shown in FIG. 1, the image decoding device 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 obtain code information coded by an image coding device.
[0026] The decoding unit 201 is configured to decode the control information and the quantized value from the code information input from the code input unit 210. For example, the decoding unit 201 is configured to output the control information and the quantized value by performing variable length decoding on the code information.
[0027] Here, the quantized value is sent to the inverse quantization unit 202, and the control information is sent to the first intra-frame prediction unit 204, the second intra-frame prediction unit 205, and the inter-frame prediction unit 206. Note that such control information includes information necessary for controlling the first intra-frame prediction unit 204, the second intra-frame prediction unit 205, the inter-frame prediction unit 206, etc., and may include header information such as a sequence parameter set, a picture parameter set, a picture header, a slice header, etc.
[0028] The inverse quantization unit 202 is configured to inverse quantize the quantized values sent from the decoding unit 201 to generate transform coefficients. The transform coefficients are sent to the inverse transform unit 203.
[0029] The inverse transform unit 203 is configured to inversely transform the transform coefficients sent from the inverse quantization unit 202 to generate prediction residuals. The prediction residuals are sent to an adder 207.
[0030] The first intra-frame prediction unit 204 is configured to generate a first predicted pixel to be added to the prediction residual by the adder 207, based on the decoded pixel obtained via the adder 207 and the control information decoded by the decoding unit 201. The first predicted pixel is sent to the adder 207 and the second intra-frame prediction unit 205.
[0031] The inter-frame prediction unit 206 is configured to generate a third predicted pixel to be added to the prediction residual by the adder 207, based on the decoded pixel obtained by referring to the storage unit 208 and the control information decoded by the decoding unit 201. The third predicted 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. The inter-frame prediction unit 206 refers to the decoded pixels via the storage unit 208.
[0033] The adder 207 is configured to add the prediction residual sent from the inverse transform unit 203 to any one of the first to third predicted pixels sent from the first intra-frame prediction unit 204, the second intra-frame prediction unit 205, and the inter-frame prediction unit 206 to obtain a decoded pixel. The decoded pixel is sent to the image output unit 220, the storage unit 208, the first intra-frame prediction unit 204, and the second intra-frame prediction unit 205.
[0034] (Second frame intra prediction unit 205) An example of a method for deriving the second predicted pixel by the second intra-frame predictor 205 will be described below.
[0035] The role of the second intra-frame prediction unit 205 is to derive a block vector (hereinafter referred to as BV) for the block to be decoded and predict the pixels of the block referenced by the BV (second intra-frame prediction) in order to compensate the block to be decoded with high accuracy in the downstream adder 207.
[0036] An example of the second intra-frame prediction is intra-template matching prediction (hereinafter, referred to as IntraTMP) disclosed in Non-Patent Document 2.
[0037] When performing IntraTMP, the second intra-frame prediction unit 205 uses a decoded pixel in the same frame as a template, searches for coordinates in the same frame that match the template, sets the displacement to the coordinates as BV, and references the block displaced from the block to be decoded to BV as the predicted pixel of the block to be decoded.
[0038] The template can use neighboring pixels of the block to be decoded and can use any number of lines. Also, as shown in Fig. 5, the template can use both neighboring pixels above and to the left of the block to be decoded, or can use only neighboring pixels above or only neighboring pixels to the left.
[0039] Here, when performing IntraTMP, the second intra-frame prediction unit 205 searches for BVs hierarchically in order to reduce the search time.
[0040] The number of layers can be set to any value, but the following shows an example in which the second intra-frame predictor 205 searches for BV in two layers. In addition, a case in which SAD (Sum of Absolute Difference) is used as the cost of template matching for BV search will be described, but any cost such as SATD can be used.
[0041] The second intra-frame predictor 205 roughly searches for a BV in the first layer and selects a BV candidate, and then searches for a BV in detail in the second layer to determine the BV.
[0042] Here, the second intra-frame prediction unit 205 may be configured to change the coarseness and fineness of BV search based on control information that sets the coarseness and fineness of BV search when roughly searching for BV in the first layer.
[0043] For example, in screen content such as a document, since perfectly matching coordinates may exist, even a deviation of one pixel will cause a large change in the SAD, it is desirable to set the screen content to search for the BV closely.
[0044] On the other hand, in camera-shot content, the distribution of SAD is relatively gentle, so in camera-shot content, it is desirable to set the BV to be searched sparsely.
[0045] Furthermore, the second intra-frame prediction unit 205 may be configured to change the coarseness or fineness of BV search depending on the BV search direction without using explicit control information.
[0046] Assuming that the same texture is repeated, the coordinates that perfectly match are often located directly to the side or directly above, so it is desirable to search for BVs densely in the horizontal or vertical directions, while it is desirable to search for BVs sparsely in the diagonal directions.
[0047] Alternatively, the second intra-frame prediction unit 205 may be configured to change the coarseness or fineness of the BV search depending on the block size, without using explicit control information.
[0048] The smaller the block size, the easier it is to find perfectly matching coordinates, so it is desirable to search for the BV more densely as the block size becomes smaller.
[0049] Conversely, the larger the block size, the greater the improvement in coding efficiency when matching coordinates are found, so the larger the block size, the more densely the BV may be searched for.
[0050] In either case, the second intra-frame predictor 205 selects the top N BV candidates in the first-layer BV search, and uses them in the second-layer BV search.
[0051] When searching for BVs hierarchically, the second intra-frame predictor 205 constructs a BV list for each hierarchy.
[0052] In addition, the BV list can be prepared for each type of template. For example, as shown in Fig. 5, different BV lists are prepared for the case where both the upper and left neighboring pixels of the decoding target block are used as templates, the case where only the upper neighboring pixels of the decoding target block are used as templates, and the case where only the left neighboring pixels of the decoding target block are used as templates. The lengths of the respective BV lists may be the same or different.
[0053] The SAD calculation involves calculating an SAD using a template only for the neighboring pixels above the block to be decoded, and an SAD using a template only for the neighboring pixels to the left of the block to be decoded, and then calculating the sum of both SADs, thereby reducing the amount of calculations.
[0054] Alternatively, after calculating the SAD using a template only for the neighboring pixels above the block to be decoded and the SAD using a template only for the neighboring pixels to the left of the block to be decoded, the SAD calculation can be performed by subtracting the amount corresponding to each template from both the SAD using a template only for the neighboring pixels above the block to be decoded and the SAD using a template only for the neighboring pixels to the left of the block to be decoded, thereby reducing the amount of calculation. The second intra-frame prediction unit 205 prepares a BV list in which multiple BVs can be registered in each hierarchy, and when it calculates the SAD of each coordinate, it registers in the BV list only BVs in the BV list that are smaller than a predetermined SAD.
[0055] If the BV list in the previous layer is completely filled, the predetermined SAD is set to the maximum value of the SAD of the BV list, and if not, a preset value is set.
[0056] The preset value can be changed according to the number of pixels and bit depth of the block to be decoded.
[0057] If the BV list is full, add a BV with a SAD smaller than the given SAD and remove the BV with the largest SAD.
[0058] When registering a BV, it is advisable to sort the BV list in ascending order of SAD.
[0059] In addition, if a BV list is stored for each type of template, a predetermined SAD can be set for each BV list, or the minimum value may be selected from the maximum SADs of multiple BV lists and set as a common predetermined SAD.
[0060] In addition, if the second intra-frame prediction unit 205 holds a BV list for each type of template, when the BV search at all hierarchical levels is completed, it selects as many BVs as will fit in the BV list in ascending order of the SAD of the BV list, merges the BV lists into one, and then determines the index of the BV list.
[0061] Alternatively, the second intra-frame predictor 205 may integrate the BV lists into one for each layer. In this case, if the BVs overlap, the second intra-frame predictor 205 keeps the BV with the small SAD and deletes the BV with the large SAD from the list.
[0062] If a BV list is maintained for each type of template and the BV list is filled, the second intra-frame prediction unit 205 may select the smallest SAD among the number of BVs that can fit in the BV list from each BV list, as shown in Figure 6, and set it as a specified SAD in the next hierarchy.
[0063] In addition, the second intra-frame prediction unit 205 can interrupt the SAD calculation process even if the SAD calculation is in the middle of being done, when the SAD becomes equal to or exceeds a certain SAD in the BV list, thereby being able to terminate unnecessary searches early and speed up the search process.
[0064] Furthermore, when a BV is added when the BV list is fully filled, the second intra-frame predictor 205 desirably updates the predetermined SAD to the maximum SAD of the BV list.
[0065] However, when the BV search is performed across hierarchical layers, the second intra-frame prediction unit 205 registers a BV having a SAD smaller than the maximum SAD+M (M>0) in the BV list of the layer in which the BV was previously searched, in the BV list of the layer in which the BV is currently being searched.
[0066] The second intraframe prediction unit 205 starts the second-layer search by searching the vicinity in detail with the BV candidate in the first-layer BV list as the center when the second-layer BV list is empty. For example, when M=1, the second intraframe prediction unit 205 registers only BVs with SADs smaller than the maximum SAD+1 in the first-layer BV list in the second-layer BV search.
[0067] In other words, even if the second-level SAD and the maximum SAD in the first-level BV list are all the same value, the problem of no BV being registered in the BV list can be avoided.
[0068] In addition, when the maximum SAD+1 in the BV list of the first hierarchical level is exceeded, the search at the coordinates beyond that point is discontinued, thereby making it possible to obtain an effect of shortening the processing time.
[0069] The BV list can also be used in IntraTMP's weighted average prediction (IntraTMP Fusion) of multiple different BVs, IntraTMP (Fractional IntraTMP), which allows BVs with fractional pixel accuracy in addition to integer pixel accuracy, and IntraTMP (Multi-candidate IntraTMP), which selects one BV from multiple BV candidates or any number of BVs up to the maximum of the BV list.
[0070] In another embodiment, the second intra-frame predictor 205 may register any BV candidate in the BV list of the first layer in the BV list of the second layer so that the list of the second layer does not become empty.
[0071] In such a case, it is desirable to register the BV candidate with the smallest SAD in the first-level BV list in the second-level BV list.
[0072] When there are multiple BVs with the smallest SAD in the BV list, the second intra-frame predictor 205 selects based on a criterion other than the SAD.
[0073] For example, such a criterion can be the length of the BV or the distance from the x-axis or y-axis, and it is desirable to select a BV that is small in either case.
[0074] In addition, if blocks in multiple BV candidates exactly match (there is substantial overlap in the BV list even though the BVs are different), indexes will be wasted, so if the difference between the blocks referenced by two or more BVs registered in the BV list is smaller than a predetermined threshold, the second intra-frame prediction unit 205 excludes all but one of the two or more BVs from the BV list.
[0075] Hereinafter, with reference to FIG. 3 and FIG. 4, a description will be given of the control information decoded by the decoding unit 201 when performing the second intra-frame prediction.
[0076] The code input to the decoding unit 201 may include a sequence parameter set (SPS) that summarizes control information for each sequence.
[0077] The code may also include a picture parameter set (PPS) or a picture header (PH) that summarizes control information for each picture. The code may also include a slice header (SH) that summarizes control information for each slice.
[0078] A method for setting the correction method on a sequence basis will be described with reference to FIG.
[0079] As shown in FIG. 3, in step S101, the decoding unit 201 determines whether or not sps_itmp_enabled_flag is 1 in the sequence parameter set.
[0080] sps_itmp_enabled_flag is a syntax that controls the presence or absence of IntraTMP. When sps_itmp_enabled_flag is 1, it indicates that IntraTMP is enabled, and when sps_itmp_enabled_flag is 0, it indicates that IntraTMP is disabled.
[0081] If sps_itmp_enabled_flag is 1, the operation proceeds to step S102, and if sps_itmp_enabled_flag is 0, the operation ends.
[0082] In step S102, the decoding unit 201 decodes sps_itmp_mode.
[0083] sps_itmp_mode is a syntax that controls the IntraTMP method.
[0084] By using sps_itmp_mode, the IntraTMP method can be changed according to the image characteristics on a sequence-by-sequence basis, which is expected to maximize coding efficiency.
[0085] For example, for sequences composed of CG, the pixel distribution is often composed of the same values, so the IntraTMP BV search can be set to be dense, whereas for sequences composed of natural images, the pixel distribution is diverse, so the IntraTMP BV search can be set to be sparse, thereby maximizing coding efficiency.
[0086] When the correction method is set 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 the picture header.
[0087] By using pps_itmp_mode, the correction method can be changed on a picture-by-picture basis according to the image characteristics, which is expected to maximize coding efficiency.
[0088] For example, for pictures composed of CG, the pixel distribution is often composed of the same values, so the IntraTMP BV search can be set to be dense, whereas for pictures composed of natural images, the pixel distribution is diverse, so the IntraTMP BV search can be set to be sparse, thereby maximizing coding efficiency.
[0089] When the correction method is set 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 according to the image characteristics on a slice-by-slice basis, which is expected to maximize coding efficiency.
[0091] For example, for slice areas made up of CG, the pixel distribution is often composed of the same values, so the IntraTMP BV search can be set to be dense, whereas for slice areas made up of natural images, the pixel distribution is diverse, so the IntraTMP BV search can be set to be sparse, thereby maximizing coding efficiency.
[0092] By setting only the upper layers, it is possible to suppress an increase in the amount of code, and by setting the lower layers as well and then prioritizing the settings in the lower layers, adaptive control is possible.
[0093] Alternatively, if the above-mentioned correction method is set in advance, the decoding of the correction method itself can be omitted.
[0094] In the above example, the IntraTMP method is set in units of sequences, pictures, or slices, but the method may be directly selected in units of blocks, as described below, without setting these. In this case, the increase in header information described above can be avoided.
[0095] A method for controlling the search for BVs of an IntraTMP on a block-by-block basis will be described below with reference to FIG.
[0096] As shown in FIG. 4, in step S201, the decoding unit 201 determines whether any one of sps_itmp_enabled_flag, pps_itmp_enabled_flag, and sh_itmp_enabled_flag is 1 or not.
[0097] If neither is 1, the operation ends, and if either is 1, the operation proceeds to step S202.
[0098] In step S202, the decoding unit 201 decodes cu_itmp_mode, which is an IntraTMP control signal.
[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, since decoding is performed from a relatively small amount of code by adaptively setting a BV list in decoding of IntraTMP BVs, it is possible to improve the coding efficiency.
[0101] The above-described image decoding device 200 may be realized as a program that causes a computer to execute each function (each process). [Industrial Applicability]
[0102] According to this embodiment, for example, it is possible to improve the overall service quality in video communication, which makes it possible to contribute to Goal 9 of the Sustainable Development Goals (SDGs) led by the United Nations, which is to "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 conversion unit 204...First frame intra prediction unit 205...Second frame intra prediction unit 206...Interframe prediction unit 207…Adder 208…Storage section 210...Code input section 220...Image output unit
Claims
1. An image decoding device, comprising: a decoding unit for decoding the control information and the quantization value; an inverse quantization unit that inversely quantizes the quantized values to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; a first intra-frame prediction unit that generates a first predicted pixel based on a decoded pixel 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; a storage unit that stores the decoded pixels; an inter-frame prediction unit that generates a third predicted pixel based on the accumulated decoded pixels and the control information; an adder that adds the prediction residual and the first to third predicted pixels to obtain the decoded pixel, The image decoding device is characterized in that, when performing intra template matching prediction, the second intra-frame prediction unit registers a block vector having a cost smaller than the maximum cost in the first layer reference list + M (M > 0) in searching for a second layer block vector.
2. An image decoding device, comprising: a decoding unit for decoding the control information and the quantization value; an inverse quantization unit that inversely quantizes the quantized values to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; a first intra-frame prediction unit that generates a first predicted pixel based on a decoded pixel 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; a storage unit that stores the decoded pixels; an inter-frame prediction unit that generates a third predicted pixel based on the accumulated decoded pixels and the control information; an adder that adds the prediction residual and the first to third predicted pixels to obtain the decoded pixel, an image decoding device, characterized in that, when performing intra template matching prediction, if a block vector having a cost smaller than the maximum cost in a first-layer reference list is not found in a search for a second-layer block vector, the second intra-frame prediction unit registers an arbitrary block vector in the first-layer reference list in the second-layer reference list.
3. 3. The image decoding apparatus according to claim 1, wherein the cost is a sum of absolute differences.
4. 2. The image decoding device according to claim 1, wherein the M is 1.
5. The control information is information for setting a coarseness or fineness of a block vector search, The image decoding device according to claim 1 , wherein the second intra-frame prediction section changes the coarseness or fineness of the search for the block vector based on the control information.
6. 2 . The image decoding device according to claim 1 , wherein the second intra-frame prediction section changes the coarseness or fineness of a block vector search depending on a block vector search direction.
7. 7. The image decoding device according to claim 6, wherein the second intra-frame prediction section searches for block vectors densely in the lateral direction or the vertical direction.
8. 7. The image decoding device according to claim 6, wherein the second intra-frame predictor searches for a block vector sparsely in a diagonal direction.
9. 2. The image decoding device according to claim 1, wherein the second intra-frame prediction section changes the coarseness or fineness of a search for a block vector depending on a block size.
10. 10. The image decoding device according to claim 9, wherein the second intra-frame prediction section searches for block vectors more densely as the block size becomes smaller.
11. 10. The image decoding device according to claim 9, wherein the second intra-frame prediction section searches for block vectors more densely as the block size becomes larger.
12. The image decoding device of claim 1, characterized in that the second intra-frame prediction unit excludes all but one of the two or more block vectors from the reference list when a difference between blocks referenced by two or more block vectors is smaller than a predetermined threshold.
13. 1. An image decoding method, comprising: A step A of decoding control information and quantization values; A step B of dequantizing the quantized values to obtain transform coefficients; a step C of inversely transforming the transform coefficients to obtain prediction residuals; a step D of generating a first predicted pixel based on the decoded pixel and the control information; E. constructing a reference list based on the decoded pixels and the control information and generating a second predicted image using the reference list; a step F of storing said decoded pixels; a step G of generating a third predicted pixel based on the stored decoded pixel and the control information; and a step H of adding the prediction residual and the first to third predicted pixels to obtain the decoded pixel, In the step E, when intra template matching prediction is performed, in the search for a block vector in a second layer, a block vector having a cost smaller than the maximum cost in the reference list in the first layer plus M (M>0) is registered.
14. A program for causing a computer to function as an image decoding device, The image decoding device comprises: a decoding unit for decoding the control information and the quantization value; an inverse quantization unit that inversely quantizes the quantized values to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; a first intra-frame prediction unit that generates a first predicted pixel based on a decoded pixel 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; a storage unit that stores the decoded pixels; an inter-frame prediction unit that generates a third predicted pixel based on the accumulated decoded pixels and the control information; an adder that adds the prediction residual and the first to third predicted pixels to obtain the decoded pixel, The second intra-frame prediction unit is configured to, when performing intra template matching prediction, register a block vector having a cost smaller than the maximum cost in the first-layer reference list + M (M > 0) in searching for a second-layer block vector.
Citation Information
Patent Citations
Template matching on IBC merge candidates
WO2023034782A1