Intra-frame template matching prediction method, processing node, and storage medium

By using the intra template matching prediction method in intra prediction, the search sub-regions are divided and candidate templates are matched, the problems of high decoding complexity and information redundancy caused by ignoring non-local self-similarity in the prior art are solved, and more efficient video processing is achieved.

WO2025123743A1PCT designated stage expired Publication Date: 2025-06-19ZTE CORP +1
3 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/112975
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-12
Filing Date
2024-08-19
Publication Date
2025-06-19

AI Technical Summary

Technical Problem

Existing video encoding techniques ignore non-local self-similarity in intra prediction, resulting in high decoding complexity and information redundancy.

Method used

A method of intra-template matching prediction is proposed. By determining the search template and search area of ​​the currently predicted block, at least two search sub-regions are divided, matching candidate templates are searched within each search sub-region, and target prediction block and target search area are determined according to the candidate template, reducing the search range of the decoding end.

Benefits of technology

Reduces decoding complexity, reduces information redundancy, and improves video processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024112975_19062025_PF_FP_ABST
    Figure CN2024112975_19062025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides an intra-frame template matching prediction method, a processing node, and a storage medium. The intra-frame template matching prediction method comprises: determining a search template and a search region of a current block to be predicted; determining at least two search sub-regions on the basis of the search region; searching, in each search sub-region, for at least one candidate template matched with the search template; and on the basis of candidate prediction blocks corresponding to the candidate templates, determining a target prediction block and a target search region corresponding to the current block to be predicted, wherein the target search region is a region where a candidate template corresponding to the target prediction block is located, and the target search region is one of the at least two search sub-regions or the search region.
Need to check novelty before this filing date? Find Prior Art

Description

Intra-frame template matching prediction method, processing node and storage medium Technical Field

[0001] The present application relates to the field of data processing technology, for example, to an intra-frame template matching prediction method, a processing node and a storage medium. Background Art

[0002] The prediction methods used by current mainstream video coding technologies often use local neighborhood information as a reference, ignoring spatial non-local self-similarity. In fact, for complex structural textures, similar structures are likely to be captured in the reconstructed non-local region, which is more conducive to prediction of the lower right corner of the current block. Based on this, the encoder can use the reconstructed content as a template in intra-frame prediction and search for non-locally similar blocks based on it. The decoder also needs to perform the same search and matching operation as the encoder, which increases decoding complexity and introduces a certain amount of information redundancy.

[0003] Summary of the Invention

[0004] The present application provides an intra-frame template matching prediction method, a processing node, and a storage medium.

[0005] The present invention provides an intra-frame template matching prediction method, including:

[0006] Determine the search template and search area of ​​the current block to be predicted;

[0007] determining at least two search sub-areas according to the search area;

[0008] Searching for at least one candidate template matching the search template in each search sub-area;

[0009] A target prediction block and a target search area corresponding to the current block to be predicted are determined based on the candidate prediction block corresponding to the candidate template, wherein the target search area is the area where the candidate template corresponding to the target prediction block is located, and the target search area is one of the at least two search sub-areas or the search area.

[0010] The embodiment of the present application also provides an intra-frame template matching prediction method, including:

[0011] Determine the search template and target search area of ​​the current block to be predicted;

[0012] Searching for at least one candidate template matching the search template within the target search area;

[0013] A target prediction block corresponding to the current block to be predicted is determined according to the candidate prediction blocks corresponding to the candidate template.

[0014] An embodiment of the present application further provides a processing node, comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned intra-frame template matching prediction method when executing the program.

[0015] An embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored. When the program is executed by a processor, the above-mentioned intra-frame template matching prediction method is implemented. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] FIG1 is a flowchart of an intra-frame template matching prediction method provided by an embodiment;

[0017] FIG2 is a flowchart of another intra-frame template matching prediction method provided by an embodiment;

[0018] FIG3 is a schematic diagram of a search area provided by an embodiment;

[0019] FIG4 is a schematic diagram of searching for candidate templates and performing weighted fusion on candidate prediction blocks according to an embodiment. ;

[0020] FIG5 is a schematic structural diagram of an intra-frame template matching prediction device provided by an embodiment;

[0021] FIG6 is a schematic structural diagram of another intra-frame template matching prediction device provided by an embodiment;

[0022] FIG7 is a schematic diagram of the hardware structure of a processing node provided by an embodiment. DETAILED DESCRIPTION

[0023] The present application is described below in conjunction with the accompanying drawings and embodiments. It will be understood that the specific embodiments described herein are merely intended to explain the present application and are not intended to limit the present application. It should be noted that, unless there is a conflict, the embodiments and features within the embodiments of the present application may be combined with each other in any manner. It should also be noted that, for ease of description, the accompanying drawings only illustrate portions relevant to the present application, not all structures.

[0024] Intra-frame prediction mainly utilizes the correlation of video signals in the spatial domain and uses the reconstructed pixels of the current image to predict the current pixel in order to remove the spatial redundancy of the video. Intra-frame prediction mainly includes the following steps: 1) obtaining reference pixels 2) establishing a mapping from reference pixels to predicted values ​​according to the selected prediction mode 3) filtering the predicted values ​​4) encoding the optimal intra-frame prediction mode. The prediction methods used by current mainstream video coding technologies mostly use local neighboring information as a reference, ignoring the non-local self-similarity in the spatial domain. In addition, the current intra-frame template matching prediction (Intra Template Matching Prediction, IntraTMP) performs the same intra-frame prediction process at the codec end, using the matching between the template corresponding to the block to be predicted and the candidate template, and selecting the prediction block corresponding to the optimal template as the prediction of the current block. Since the decoding end needs to perform the same search and matching operation as the encoding end, this will lead to an increase in decoding complexity and a certain amount of information redundancy. The embodiment of the present application proposes a prediction mode based on template matching on the basis of intra-frame prediction, using the reconstructed content as the template, and selecting the prediction block corresponding to the optimal template as the target prediction block of the current block to be predicted by matching the template corresponding to the block to be predicted with the candidate template. For the encoding end, a more accurate target search area can be determined for the target prediction block, and for the decoding end, the target prediction block can be matched in the target search area, which reduces information redundancy, reduces decoding complexity, and improves video processing efficiency.

[0025] Figure 1 is a flowchart of an intra-frame template matching prediction method provided by an embodiment. The method can be applied to a first processing node, which mainly refers to an encoding end. As shown in Figure 1, the method provided by this embodiment includes the following steps:

[0026] In step 110, a search template and a search area for the current block to be predicted are determined.

[0027] In step 120, at least two search sub-areas are determined according to the search area.

[0028] In step 130, at least one candidate template matching the search template is searched in each search sub-region.

[0029] In step 140, a target prediction block and a target search area corresponding to the current block to be predicted are determined based on the candidate prediction block corresponding to the candidate template, wherein the target search area is the area where the candidate template corresponding to the target prediction block is located, and the target search area is one of the at least two search sub-areas or the search area.

[0030] In this embodiment, the search template can be understood as the template corresponding to the current block to be predicted, and the search area can be understood as the area outside the current block to be predicted where the search operation needs to be performed. At least two search sub-areas can be determined based on the search area. The candidate template can be understood as the template that matches the search template in each search sub-area. Each candidate template corresponds to a candidate prediction block. Among the multiple candidate prediction blocks, one is finally determined to be the target prediction block corresponding to the current block to be predicted. Among them, the matching of the candidate template and the search template can be understood as the candidate template having a high similarity with the search template, small distortion, or having a certain spatial non-local self-similarity. The higher the degree of matching between the candidate template and the search template, the greater the probability that the corresponding candidate prediction block will be used as the target prediction block. The target prediction block can provide a reference for the prediction and reconstruction of the current block to be predicted, thereby improving the prediction accuracy. In addition, the first processing node can also determine the area where the target prediction block is located as a target search area and indicate it to the second processing node. The second processing node mainly refers to the decoding end. For example, the identification, index or coordinates of the target search area can be indicated to the second processing node. On this basis, the second processing node can search for the optimal target prediction block for the target search area during the decoding process. When the target search area is indicated as a specific search sub-area, the second processing node does not need to search the entire search area, which can improve the search efficiency; when the target search area is indicated as the entire search area, the entire search area can also be searched to improve the accuracy of the matching prediction.

[0031] In one embodiment, a target prediction block corresponding to the current block to be predicted is determined based on candidate prediction blocks corresponding to candidate templates, including various scenarios: for example, a template most similar to the search template is searched in each search subregion as a candidate template, and N (N>2) search subregions correspond to N candidate templates and N candidate prediction blocks. The candidate prediction block that best matches the current block to be predicted among the N candidate prediction blocks is then selected as the target prediction block, and the region containing the candidate prediction block is the target search region. For another example, M (M>1) templates similar to the search template may be searched in a single search subregion as candidate templates, and the M candidate templates correspond to M candidate prediction blocks. The M candidate prediction blocks may be fused to obtain a fused candidate prediction block. Whether the fused candidate prediction block is selected as the target prediction block is determined based on the degree of match between the fused candidate prediction block and the current block to be predicted. If so, the region containing the fused candidate prediction block is selected as the target search region. For example, some search sub-areas have only one candidate template corresponding to one candidate prediction block, while some search sub-areas have multiple candidate templates corresponding to one fused candidate prediction block. The target prediction block can be determined based on the degree of matching between the candidate prediction block or the fused candidate prediction block corresponding to each search sub-area and the current block to be predicted.

[0032] In one embodiment, the search sub-region where a prediction block is located may be determined based on the search sub-region where the pixel point at the upper left corner of the prediction block is located.

[0033] In one embodiment, the method further includes determining first indication information, the first indication information being used to indicate whether to use an intra-frame template matching prediction mode. In this embodiment, the first indication information can be understood as an IntraTMP mode switch signal. The encoder can determine the first indication information and transmit it to the decoder to indicate whether to use IntraTMP. If the IntraTMP mode is used, the encoder performs the intra-frame template matching prediction method of the above embodiment, while the decoder can perform a search and prediction operation similar to that of the encoder, and the decoder only needs to search the target search area.

[0034] In one embodiment, the method further includes: determining second indication information, where the second indication information is used to indicate an identifier of a target search area, where the identifier of the target search area is an identifier of the search area or an identifier of one of the at least two search sub-areas.

[0035] In this embodiment, the second indication information is mainly used to indicate the area where the target prediction block is located, so as to indicate the specific area for the decoding end to search. The specific content of the second indication information can also be divided into multiple situations: for example, when the target search area is the entire search area, or when the candidate templates that are more closely matched with the search template (or the target prediction blocks that are more closely matched with the current block to be predicted) are distributed in different search sub-areas, in these cases, different search sub-areas have valid candidate templates and candidate prediction blocks. In order to ensure the comprehensiveness and accuracy of the search, the entire search area can be used as the target search area and indicated to the decoding end. Therefore, the second indication information may include the identifier of the entire search area. For another example, when the target search area is one of the search sub-areas, the second indication information may include the identifier of the target search area where the target prediction block is located.

[0036] In some embodiments, the second indication information can serve as a region division switch, that is, the second indication information can be used to indicate whether the entire search region is divided into at least two search sub-regions. If the second indication information includes the identifier of the target search region, it indicates that the search region is divided into at least two search sub-regions; if the second indication information includes the identifier of the search region (possibly also the identifier of each search sub-region), it indicates that the search region is not divided into at least two search sub-regions. Based on this, the specific region where the search prediction operation needs to be performed can be indicated to the decoding end.

[0037] In one embodiment, the method further includes determining third indication information, the third indication information being used to indicate whether to determine at least two search sub-regions based on the search region. The third indication information can also be understood as a region division switch, or can also be understood as indicating whether the target search region is a search sub-region or the entire search region. In this embodiment, the third indication information can serve as a region division switch, i.e., the third indication information can indicate whether to divide the search region into at least two search sub-regions. For example, if the degree of match between candidate templates in multiple search sub-regions and the search template is greater than a set threshold, the degree of match between candidate templates in multiple search sub-regions and the search template is similar, the degree of match between candidate prediction blocks in multiple search sub-regions and the current prediction block is greater than a set threshold, or the degree of match between candidate prediction blocks in multiple search sub-regions and the current prediction block is similar, the at least two search sub-regions can be eliminated, and the target search region can be the entire search region. Based on this, the decoding end can perform search and prediction operations on the entire search region, rather than being limited to a specific search sub-region.

[0038] In one embodiment, the method further includes: determining fourth indication information, wherein the fourth indication information is used to indicate the number of candidate templates in each search sub-area, and / or to indicate that the target prediction block is a single candidate prediction block or a weighted fusion of multiple candidate prediction blocks.

[0039] In this embodiment, the fourth indication information can be understood as a weighted fusion switch, which is used to indicate the number of candidate templates in each search sub-region, and / or to indicate whether the target prediction block can be obtained by weighted fusion of at least two candidate prediction blocks. For example, if the number of candidate templates in each search sub-region is 1, or the target prediction block cannot be obtained by weighted fusion of at least two candidate prediction blocks, then there is only one candidate template in each search sub-region, corresponding to one candidate prediction block, and the target prediction block is determined by a single candidate prediction block in one of the search sub-regions. For another example, if the number of candidate templates in each search sub-region is greater than 1, or the target prediction block can be obtained by weighted fusion of at least two candidate prediction blocks, then there can be multiple candidate templates in each search sub-region, corresponding to multiple prediction blocks, and the target prediction block can be obtained by weighted fusion of multiple prediction blocks in one of the search sub-regions. For another example, if the number of candidate templates in each search sub-region is greater than or equal to 1, or if the target prediction block can be obtained by weighted fusion of at least two candidate prediction blocks or determined by a single candidate prediction block, then each search sub-region may have one or more candidate templates corresponding to one or more prediction blocks. The target prediction block may be obtained by weighted fusion of multiple prediction blocks in one of the search sub-regions or determined by a single prediction block in one of the search sub-regions. This may be determined based on the degree of match between the candidate templates and the search templates, and the degree of match between the candidate prediction block and the current block to be predicted. For another example, it may indicate both whether the target prediction block can be obtained by weighted fusion of at least two candidate prediction blocks and the number of candidate templates in each search sub-region.

[0040] In some embodiments, for a single search sub-region, if the matching degree of at least two candidate templates that are more closely matched with the search template is higher than a specified degree, or the matching degree of at least two candidate templates that are more closely matched with the search template is relatively close, then the number of candidate templates in the search sub-region (or each search sub-region) can be allowed to be greater than 1. It can also be understood that the target prediction block can be obtained by weighted fusion of at least two candidate prediction blocks.

[0041] In one embodiment, searching for at least one candidate template matching the search template within each search sub-region includes one of the following: for each search sub-region, determining at least one candidate template based on the similarity between the search template and each template within the search sub-region; determining at least one candidate template matching the search template within each search sub-region through a neural network or deep learning.

[0042] In this embodiment, similarity is used to evaluate the difference or distortion between the template in the search sub-region and the search template. The higher the similarity, the higher the degree of match between the candidate template and the search template. In this embodiment, searching for candidate templates in each search sub-region can be performed by calculating the similarity between each template in each search sub-region and the search template, and using one or more templates with a similarity higher than a threshold or with the highest similarity as candidate templates. Alternatively, a similarity prediction model can be constructed and trained using a neural network or deep learning, thereby searching for templates with similarity that meet the requirements as candidate templates in each search sub-region. In addition, the candidate templates can also be determined using indicators such as the absolute value of pixel differences (SAD) or the sum of squared differences (SSD).

[0043] In one embodiment, determining at least one candidate template based on the similarity between the search template and each template within the search subregion includes determining the template within the search subregion with the highest similarity to the search template as the candidate template. In this embodiment, a single search subregion corresponds to one candidate template and one candidate prediction block.

[0044] In one embodiment, determining at least one candidate template based on the similarity between the search template and each template within the search sub-region includes: sorting the templates based on the similarity between the search template and each template within the search sub-region; and determining at least two templates with the highest ranking as candidate templates. In this embodiment, the templates within a single search sub-region can be sorted from highest to lowest similarity to the search template, with the at least two templates with the highest ranking as candidate templates.

[0045] In one embodiment, determining a target prediction block corresponding to the current block to be predicted based on the candidate prediction blocks corresponding to the candidate templates includes determining the target prediction block corresponding to the current block to be predicted based on the similarity between the candidate prediction blocks corresponding to the candidate templates and the current prediction block. In this embodiment, based on determining the candidate templates from each search sub-region, the similarity between the candidate prediction blocks corresponding to each candidate template and the current prediction block can be calculated to determine the target prediction block accordingly. If a single search sub-region corresponds to multiple prediction blocks, the multiple prediction blocks can be merged into a single candidate prediction block.

[0046] In one embodiment, determining a target prediction block corresponding to the current block to be predicted based on similarity between candidate prediction blocks corresponding to the candidate template and the current prediction block includes determining the target prediction block as the candidate prediction block that has the highest similarity to the current prediction block among the candidate prediction blocks corresponding to the candidate template. In this embodiment, a single search subregion corresponds to a candidate prediction block, and the target prediction block is determined by the candidate prediction block with the highest similarity to the current prediction block.

[0047] In one embodiment, when the candidate templates are at least two templates ranked higher, the candidate prediction block corresponding to the candidate template is obtained by weighting the prediction blocks corresponding to the at least two templates ranked higher. In this embodiment, the templates within a single search sub-region can be ranked from high to low based on their similarity to the search template, with the at least two templates ranked higher serving as candidate templates. Each candidate template corresponds to a prediction block, and the prediction blocks corresponding to the at least two templates can be weighted and fused into a single candidate prediction block. The weight can be calculated based on the template matching cost of each prediction block, or using a weight derivation method based on a Wiener filter.

[0048] In one embodiment, if there are at least two templates whose similarities with the search template meet a set condition, and the at least two candidate prediction blocks belong to different search sub-regions, the search region division condition is not met. In this embodiment, the set condition may refer to a similarity greater than a threshold or a similarity. In this case, if the candidate templates that closely match the search template (or the target prediction blocks that closely match the current block to be predicted) are distributed in different search sub-regions, the search region division condition is not met, and the search sub-region may not be further divided.

[0049] In one embodiment, the search template includes one of the following:

[0050] An L-shaped template consisting of the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0051] A cross-shaped template obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0052] A T-shaped template is obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted.

[0053] In one embodiment, determining at least two search sub-areas based on the search area includes:

[0054] The search area is determined to be divided into at least two search sub-areas according to the size of the current block to be predicted and the search template.

[0055] In this embodiment, the shape, size, and number of the divided search sub-regions can be adjusted according to the size of the current block to be predicted and the shape and size of the search template to meet different actual requirements.

[0056] In one embodiment, after searching for at least one candidate template matching the search template in each search sub-region, the method further includes: determining a candidate template matching a sub-template in the at least one candidate template, wherein the sub-template belongs to a subset of the search template.

[0057] In this embodiment, sub-templates of the search template can be used to perform a secondary match or screening of candidate templates. For example, if the degree of match between multiple candidate templates found within a single search sub-region and the search template exceeds a set threshold, or if the degree of match between multiple candidate templates found within a single search sub-region and the search template is relatively close, the sub-templates can be used to match the multiple candidate templates again, and the candidate template with the highest degree of match between the sub-template and the search template can be determined as the final candidate template. Based on this, the details of the search template can be used to improve the matching effect of the candidate templates, thereby improving the accuracy of matching and prediction.

[0058] Figure 2 is a flowchart of another intra-frame template matching prediction method provided by one embodiment. This method can be applied to a second processing node, which can be a decoding end. In this embodiment of the present application, the search prediction operation performed by the second processing node is similar to that performed by the first processing node, with the main difference being that the second processing node can only perform search prediction for the target search area. For technical details not fully described in this embodiment, please refer to any of the above embodiments.

[0059] As shown in FIG2 , the method provided in this embodiment includes the following steps:

[0060] In step 210, a search template and a target search area for the current block to be predicted are determined.

[0061] In step 220, at least one candidate template matching the search template is searched within the target search area.

[0062] In step 230, a target prediction block corresponding to the current block to be predicted is determined based on the candidate prediction blocks corresponding to the candidate template.

[0063] In this embodiment, the first processing node may indicate the identifier, index or coordinates of the target search area to the second processing node, and the second processing node may only perform search prediction on the target search area during decoding to obtain the optimal target prediction block.

[0064] In one embodiment, before determining the search template and target search area of ​​the current block to be predicted, the method further includes:

[0065] The intra-frame template matching prediction mode is determined to be adopted according to the first indication information. If the intra-frame template matching prediction mode is adopted, the intra-frame template matching prediction method of the above embodiment is executed.

[0066] In one embodiment, the method further includes: determining second indication information, where the second indication information is used to indicate an identifier of a target search area, where the identifier of the target search area is an identifier of the search area or an identifier of one of the at least two search sub-areas.

[0067] In this embodiment, if the second indication information includes the identifier of the entire search area, the decoding end performs a search prediction operation on the entire search area. If the second indication information can include the identifier of the target search area where the target prediction block is located, the decoding end performs a search prediction operation on the target search area. On this basis, the decoding end can clearly define the specific area in which the search prediction is performed. In some embodiments, the second indication information can also serve as an area division switch. If the second indication information includes the identifier of the target search area, it means that the search area is divided into at least two search sub-areas; if the second indication information includes the identifier of the search area (possibly also including the identifier of each search sub-area), in this case the target search area is the entire search area.

[0068] In one embodiment, the method further includes: determining third indication information, where the third indication information is used to indicate whether to determine at least two search sub-areas based on the search area.

[0069] In one embodiment, the method further includes: determining fourth indication information, wherein the fourth indication information is used to indicate the number of candidate templates in each search sub-area, and / or to indicate that the target prediction block is a single candidate prediction block or a weighted fusion of multiple candidate prediction blocks.

[0070] In one embodiment, searching for at least one candidate template matching the search template within the target search area includes one of the following:

[0071] Determine at least one candidate template based on the similarity between the search template and each template in the target search area;

[0072] At least one candidate template matching the search template in the target search area is determined through a neural network or deep learning.

[0073] In one embodiment, determining at least one candidate template according to the similarity between the search template and each template in the target search area includes:

[0074] The template with the highest similarity to the search template in the target search area is determined as a candidate template.

[0075] In one embodiment, determining at least one candidate template according to the similarity between the search template and each template in the target search area includes:

[0076] sorting the templates according to the similarity between the search template and each template in the target search area;

[0077] At least two templates ranked higher than the others are determined as candidate templates.

[0078] In one embodiment, determining a target prediction block corresponding to the current block to be predicted based on the candidate prediction block corresponding to the candidate template includes:

[0079] A target prediction block corresponding to the current block to be predicted is determined according to a similarity between a candidate prediction block corresponding to the candidate template and the current prediction block.

[0080] In one embodiment, determining a target prediction block corresponding to the current block to be predicted according to a similarity between a candidate prediction block corresponding to the candidate template and the current prediction block includes:

[0081] A candidate prediction block having the highest similarity with the current prediction block among the candidate prediction blocks corresponding to the candidate template is determined as the target prediction block.

[0082] In one embodiment, when the candidate templates are at least two templates ranked higher, the candidate prediction blocks corresponding to the candidate templates are obtained by weighting the prediction blocks corresponding to the at least two templates ranked higher.

[0083] In one embodiment, when there are at least two templates whose similarities with the search template meet a set condition, and the at least two candidate prediction blocks belong to different search sub-regions, the search region division condition is not satisfied.

[0084] In one embodiment, the search template includes one of the following:

[0085] An L-shaped template consisting of the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0086] A cross-shaped template obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0087] A T-shaped template is obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted.

[0088] In one embodiment, determining at least two search sub-regions according to the search region includes: determining the search region into at least two search sub-regions according to the size of the current block to be predicted and the search template.

[0089] In one embodiment, after searching the target search area for at least one candidate template matching the search template, the method further includes: determining a candidate template in the at least one candidate template that matches a sub-template, wherein the sub-template belongs to a subset of the search template.

[0090] The intra-frame template matching prediction method of the present application is exemplarily described below through some embodiments.

[0091] Example 1

[0092] For the encoding side, the following processes can be included:

[0093] 1) Determine the search area

[0094] To obtain the target prediction block (which can also be understood as a non-locally similar block to the current block to be predicted), a search area is first determined for the current block to be predicted. Figure 3 is a schematic diagram of a search area provided by one embodiment. As shown in Figure 3, the total width of the search area is 40, and both the length and width of the search area can be adjusted based on the information of the current block to be predicted. Because non-local blocks cannot overlap with the current block to be predicted, there is an unsearchable area, as shown in the diagonally shaded area in Figure 3. It should be noted that the size of the unsearchable area can be determined based on the current block to be predicted and / or the template type, and there may be no unsearchable area.

[0095] 2) Determine at least two search sub-areas based on the search area

[0096] For example, the entire search area is further divided into four search sub-areas, and the template matching algorithm is only applicable when at least two search sub-areas are available. Due to errors in template matching, using only one optimal non-local block within the search area for prediction may miss better candidates. By dividing the search sub-areas, the number of rate-distortion optimization (RDO) at the coding end can be increased, improving prediction quality. In practical applications, the search area division rules can be adjusted according to actual conditions, including the number of search sub-areas, search sub-area width, and / or search sub-area shape. The adjustment method is not limited to modifying the configuration data; adaptive adjustment can also be performed based on the information of the current block to be predicted. In this embodiment, assuming that the total width of the search area is 40, the corresponding widths of the four search sub-areas are set to 8, 10, 10, and 12, respectively. As shown in Figure 4, this incremental design takes into account that in search areas closer to the block to be predicted, there is a greater probability of obtaining candidate prediction blocks with similar structures.

[0097] 3) Determine the target search area

[0098] The matching block search process is performed independently within each search sub-region. Figure 4 is a schematic diagram of searching for candidate templates and weighted fusion of candidate prediction blocks, provided by one embodiment. As shown in Figure 4, the search step size can be freely controlled. The search process uses the neighborhood L-shaped reconstructed area as a template, namely the L-shaped filled area in the figure, and the template width is set to 2. The SSD cost function is used to evaluate the similarity between each candidate template and the template of the block to be predicted, and all template positions are ranked according to the similarity evaluation results.

[0099] Based on the sorting results, the prediction block vector for each search sub-region is obtained. A rate-distortion process is used to calculate the target search region (also known as the optimal search region) for the current block to be predicted. This region is the region containing the candidate prediction block most similar to the current block to be predicted. The index of the target search region is recorded. The index of the target search region may be the index of the entire search region or the index of one of the search sub-regions. During the weighted prediction process, the weighting rules can be adjusted, such as adjusting the number of prediction blocks to be weighted, adjusting the order of the selected prediction blocks, and / or adjusting the division criteria for selecting the prediction block weighting method.

[0100] 4) Encoding transfer syntax elements

[0101] Two coding unit (CU) level syntax elements intra_tmp_flag (i.e., first indication information) and intra_tmp_reg (i.e., second indication information) can be encoded. The syntax elements can be transmitted to the decoding end to indicate whether the IntraTMP mode is adopted and the identifier of the target search area. When intra_tmp_flag is 1, it means that the IntraTMP mode is used, and intra_tmp_reg is used to transmit the index of the target search area obtained in step 3). Both syntax elements use context-based adaptive binary arithmetic coding (CABAC) context coding, and intra_tmp_reg uses truncated unary code for binarization. This mode can be used for both luminance and chrominance blocks, and the chrominance blocks inherit the syntax element values ​​of the luminance blocks at the corresponding positions.

[0102] For the decoding end, the following processes may be included:

[0103] 1) Get syntax elements

[0104] The intra_tmp_flag and intra_tmp_reg syntax elements are obtained through entropy decoding. When intra_tmp_flag is 1, it indicates that the IntraTMP mode is used, and intra_tmp_reg indicates the optimal search area index of the current block. If the IntraTMP mode is used, the following intra-frame template matching prediction operation is performed.

[0105] 2) Determine the target search area of ​​the current block to be predicted

[0106] The search area width, search sub-area width, and template width are all configurable parameters that can be obtained directly on the decoder side without decoding. The preset area parameters are used to determine the overall searchable area for the current block to be predicted and further divide the searchable area by sub-area width. The template information is used to determine the reference template (i.e., search template) for the current block required for subsequent template matching. The final search area (i.e., target search area) is determined by parsing the index of the optimal search area in intra_tmp_reg.

[0107] 3) Determine the target prediction block of the current block to be predicted

[0108] The decoder performs a template matching search only within the target search area. It uses the SSD cost function to evaluate the distortion between the candidate template and the template of the block to be predicted, obtains a similarity ranking of the candidate prediction blocks within the current target search area, and uses this ranking to determine the target prediction block for the current block to be predicted. Compared to a full-area search, sub-area division significantly reduces the decoder's search complexity.

[0109] This embodiment does not limit the values ​​and methods of the search area width, search sub-area width, template width, distortion evaluation function, etc., which can be freely controlled and adjusted according to actual needs.

[0110] The method in this embodiment, in the IntraTMP mode, further divides the search area, calculates the optimal search area (i.e., the target search area) at the encoding end, and transmits the identifier of the optimal search area, thereby effectively reducing the pattern matching search range at the decoding end. This greatly reduces the complexity of the search at the decoding end. At the same time, the sub-area division can increase the number of RDOs, which helps to obtain better prediction results.

[0111] Example 2

[0112] In this embodiment, the search template is not limited to the L-shaped reconstructed regions at the top and left of the current block to be predicted. Considering factors such as different image texture features, different search template shapes can be supported during the template matching process. For technical details not fully described in this embodiment, please refer to any of the above embodiments.

[0113] Coding process:

[0114] 1) Determine the search area

[0115] 2) Determine at least two search sub-areas based on the search area

[0116] 3) Perform a matching search within each search sub-region using any of the following template shapes:

[0117] a. Use the L-shaped template shown in the vertical shaded area in Figure 3.

[0118] b. Use L-shaped templates of different lengths or widths.

[0119] c. Use a cross-shaped template, that is, extend the L-shaped template to the left and upper sides, and the extension length can be freely controlled.

[0120] d. Use a T-shaped template, that is, extend the L-shaped template to the left or upper side, and the extension length can be freely controlled.

[0121] 4) Sort the matching results by similarity, obtain the predicted block vector of each area based on the sorting results, determine the target search area, and record the index of the target search area.

[0122] 5) Encoding transfer syntax elements.

[0123] Example 3

[0124] In this embodiment, the division of search sub-regions can be controlled. Considering that deriving the predicted value of the block to be predicted using only candidate templates within a single search sub-region may not fully utilize the spatial non-local information in the search region, adding a region division switch allows for a balance between search time and prediction quality. For technical details not fully described in this embodiment, please refer to any of the above embodiments.

[0125] Coding process:

[0126] 1) Determine the search area

[0127] 2) Determine at least two search sub-areas based on the search area

[0128] 3) Determine the target search area, which can be the search area (i.e. the entire search area) or any search sub-area

[0129] The reference template matching of the block to be predicted is performed within the entire search area. The matching results can be sorted by block similarity using the SSD function. If the similarity difference of the candidate prediction blocks at the top of the sort is within a certain threshold and these candidate prediction blocks belong to different sub-search areas, the sub-area division switch is turned off (indicating that area division is not required), and the entire search area can be used as the target search area. If area division is required, refer to step 3 of Example 1 to determine the target search area.

[0130] 4) Encoding transfer syntax elements.

[0131] The sub-region division switch can be transmitted through a separate syntax element (third indication information) or through a specific region index (using the second indication information) without adding additional syntax elements.

[0132] Example 4

[0133] In this embodiment, considering that the top-ranked candidate templates in different search sub-regions may all have a high similarity with the search template, secondary matching of sub-templates may be selected to improve the prediction quality.

[0134] Coding process:

[0135] 1) Determine the search area

[0136] 2) Determine at least two search sub-areas based on the search area

[0137] 3) Determine the target search area

[0138] The similarity ranking of all candidate templates for each search subregion is obtained. Predefined subtemplates are then matched against the top-ranked candidate templates for each search subregion. The candidate prediction blocks corresponding to the templates with the highest similarity after matching the subtemplates are selected for weighted processing. This yields the final candidate prediction block for each subregion. Based on this, the target search region is calculated and its index is recorded. A subtemplate is a subset of a given search template, and a search template can be divided into multiple subtemplates.

[0139] 4) Encoding transfer syntax elements.

[0140] Decoding process:

[0141] 1) Get the syntax element.

[0142] The syntax element includes one or more of first indication information, second indication information, third indication information and fourth indication information.

[0143] 2) Determine the target search area of ​​the current block to be predicted.

[0144] The target search area is determined according to the second indication information or the third indication information.

[0145] Specifically, if the third indication information is present and indicates disabling region division, the target search region for the current block to be predicted may be determined as the full search region accordingly. If the third indication information indicates performing region division, the target search region for the current block to be predicted may be determined as the target search region based on the second indication information. If the indication information is absent, whether the target search region for the current block to be predicted is the full search region or the target search region may also be determined based on the flag indicated by the second indication information.

[0146] 3) Determine the target prediction block of the current block to be predicted

[0147] Perform template matching within the target search area determined in step 2), use predefined sub-templates to match the candidate templates ranked at the top of the similarity list, and select the corresponding candidate prediction blocks of the templates with the highest similarity after matching each sub-template as the objects of weighted processing, thereby obtaining the final optimal prediction block (i.e., the target prediction block).

[0148] Example 5

[0149] This embodiment mainly describes syntax elements related to intra-frame template matching prediction technology in video coding streams.

[0150] Introducing IntraTMP technology in AVS's next-generation video codec standard reference software EVM (Exploration Video Model), it is necessary to add an IntraTMP switch to the sequence header and picture header respectively. For each CU, two CU-level syntax elements intra_tmp_flag and intra_tmp_reg need to be identified. intra_tmp_flag indicates whether the current CU uses the intraTMP mode, and intra_tmp_reg indicates the sub-area index that the decoding end needs to search. The specific syntax and semantic description of the sequence header (Sequence Header) are shown in Table 1. The specific syntax and semantic description of the picture header (Picture header) are shown in Table 2. The specific syntax and semantic description of the coding unit (coding_unit) are shown in Table 3 or Table 4.

[0151] Table 1 Sequence Header syntax

[0152] Semantics: Intra_tmp_flag: equal to 1 indicates that the current video sequence uses IntraTMP mode.

[0153] Table 2 Picture header syntax

[0154] Semantics: picture_intra_tmp_flag: equal to 1 indicates that the current frame uses IntraTMP mode.

[0155] Table 3 Syntax of coding_unit

[0156] Semantics: If intra_tmp_flag is 1, it indicates that the current coding block uses the IntraTMP technology. If the current block uses the IntraTMP technology, the best search area or full search area of ​​the current block is identified by intra_tmp_reg. If intra_tmp_flag is 0, the sub-region index transmission is skipped.

[0157] Table 4 Syntax of another coding_unit

[0158] Semantics: Refer to Table 3. If the current block uses the IntraTMP technology, the intra_tmp_reg_div_flag is used to indicate whether to divide the search sub-region. If intra_tmp_reg_div_flag is 0, it means that the search sub-region is not divided. If intra_tmp_reg_div_flag is 1, the target search region of the current block is identified by intra_tmp_reg.

[0159] The intra-frame template matching prediction method of the present embodiment further divides the entire search area, performs template matching within each search sub-area, and after performing RDO (Reverse Delay) on the candidate prediction blocks corresponding to the templates in each search sub-area and the current block to be predicted, sends the identifier of the search sub-area containing the template of the best candidate prediction block to the decoder. The decoder can then perform template matching directly within the corresponding search sub-area based on the search sub-area identifier, effectively reducing the search area and decoding complexity. Prediction blocks corresponding to the templates with the highest distortion ranking in each area are weighted to utilize more comprehensive non-local information. The search process uses a neighborhood L-shaped reconstructed area as a template. By matching the template corresponding to the block to be predicted with the candidate templates, the prediction block corresponding to the best template is selected as the prediction for the current block. The template shape can be adjusted, for example, to a cross or T-shape, requiring only the template coverage to be within the reconstructed area. The decision to divide the search area is made based on the distortion evaluation results of the candidate templates and the template to be predicted within the entire search area, reducing unnecessary computations. After finding several best matching templates, you can choose to use sub-templates to perform secondary matching on these best matching templates, and perform template fusion on each to obtain the optimal template prediction.

[0160] The present application also provides an intra-frame template matching prediction device. FIG5 is a schematic diagram of the structure of an intra-frame template matching prediction device provided by an embodiment. As shown in FIG5, the intra-frame template matching prediction device includes:

[0161] A first determination module 310 is configured to determine a search template and a search area for a current block to be predicted;

[0162] A division module 320 is configured to determine at least two search sub-areas based on the search area;

[0163] A search module 330 configured to search within each search sub-area for at least one candidate template matching the search template;

[0164] The second determination module 340 is configured to determine a target prediction block and a target search area corresponding to the current block to be predicted based on the candidate prediction block corresponding to the candidate template, wherein the target search area is an area where the candidate template corresponding to the target prediction block is located.

[0165] In one embodiment, the apparatus further comprises:

[0166] The first indication module is configured to determine first indication information, where the first indication information is used to indicate whether to adopt the intra-frame template matching prediction mode.

[0167] In one embodiment, the apparatus further comprises:

[0168] The second indication module is configured to determine a second indication information target search area, where the second indication information is used to indicate an identifier of the target search area, where the identifier of the target search area is the identifier of the search area or the identifier of one of the at least two search sub-areas.

[0169] In one embodiment, the apparatus further comprises:

[0170] The third indication module is configured to determine third indication information, where the third indication information is used to indicate whether to determine at least two search sub-areas based on the search area.

[0171] In one embodiment, the apparatus further comprises:

[0172] A fourth indication module is configured to determine fourth indication information, wherein the fourth indication information is used to indicate the number of candidate templates in each search sub-area, and / or to indicate that the target prediction block is a single candidate prediction block or a weighted fusion of multiple candidate prediction blocks.

[0173] In one embodiment, the search module 330 is configured to be one of the following:

[0174] For each search sub-region, determining at least one candidate template according to the similarity between the search template and each template within the search sub-region;

[0175] At least one candidate template matching the search template in each search sub-region is determined by neural network or deep learning.

[0176] In one embodiment, the search module 330 is configured to:

[0177] The template with the highest similarity to the search template in the search sub-region is determined as a candidate template.

[0178] In one embodiment, the search module 330 includes:

[0179] a sorting unit, configured to sort the templates according to the similarity between the search template and each template in the search sub-region;

[0180] The template determination unit is configured to determine at least two templates with the highest ranking as candidate templates.

[0181] In one embodiment, the second determining module 340 is configured to determine a target prediction block corresponding to the current block to be predicted according to a similarity between a candidate prediction block corresponding to the candidate template and the current prediction block.

[0182] In one embodiment, the second determining module 340 is configured to determine, among the candidate prediction blocks corresponding to the candidate template, the candidate prediction block having the highest similarity with the current prediction block as the target prediction block.

[0183] In one embodiment, when the candidate templates include at least two templates ranked higher, the candidate prediction blocks corresponding to the candidate templates are obtained by weighting the prediction blocks corresponding to the at least two templates ranked higher.

[0184] In one embodiment, when there are at least two templates whose similarities with the search template meet a set condition, and the at least two candidate prediction blocks belong to different search sub-regions, the search region division condition is not satisfied.

[0185] In one embodiment, the search template includes one of the following:

[0186] An L-shaped template consisting of the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0187] A cross-shaped template obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0188] A T-shaped template is obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted.

[0189] In one embodiment, the partitioning module 320 is configured to:

[0190] The search area is determined to be divided into at least two search sub-areas according to the size of the current block to be predicted and the search template.

[0191] In one embodiment, after searching for at least one candidate template matching the search template in each search sub-region, the apparatus further includes:

[0192] The matching module is configured to determine a candidate template among the at least one candidate template that matches a sub-template, wherein the sub-template belongs to a subset of the search template.

[0193] The intra-frame template matching prediction device proposed in this embodiment and the intra-frame template matching prediction method proposed in the above embodiment belong to the same inventive concept. The technical details not fully described in this embodiment can be referred to any of the above embodiments, and this embodiment has the same beneficial effects as executing the intra-frame template matching prediction method.

[0194] The present application also provides an intra-frame template matching prediction device. FIG6 is a schematic diagram of the structure of another intra-frame template matching prediction device provided by an embodiment. As shown in FIG6, the intra-frame template matching prediction device includes:

[0195] A determination module 410 is configured to determine a search template and a target search area for a current block to be predicted;

[0196] A search module 420 is configured to search within the target search area for at least one candidate template that matches the search template;

[0197] The prediction module 430 is configured to determine a target prediction block corresponding to the current block to be predicted based on the candidate prediction blocks corresponding to the candidate template.

[0198] In one embodiment, before determining the search template and target search area of ​​the current block to be predicted, the apparatus further includes: a mode determination module configured to determine to adopt the intra-frame template matching prediction mode according to the first indication information.

[0199] In one embodiment, the apparatus further comprises:

[0200] An area indication module is configured to determine second indication information, where the second indication information is used to indicate an identifier of the target search area, where the identifier of the target search area is an identifier of the search area of ​​the current block to be predicted or an identifier of one of the at least two search sub-areas.

[0201] In one embodiment, the apparatus further comprises:

[0202] The division indication module is configured to determine third indication information, where the third indication information is used to indicate whether to determine at least two search sub-areas based on the search area.

[0203] In one embodiment, the apparatus further comprises:

[0204] A fusion indication module is configured to determine fourth indication information, wherein the fourth indication information is used to indicate the number of candidate templates in each search sub-area, and / or to indicate that the target prediction block is a single candidate prediction block or a weighted fusion of multiple candidate prediction blocks.

[0205] In one embodiment, the search module 420 is configured to be one of the following:

[0206] Determine at least one candidate template based on the similarity between the search template and each template in the target search area;

[0207] At least one candidate template matching the search template in the target search area is determined through a neural network or deep learning.

[0208] In one embodiment, the search module 420 is configured to:

[0209] The template with the highest similarity to the search template in the target search area is determined as a candidate template.

[0210] In one embodiment, the search module 420 includes:

[0211] a sorting unit, configured to sort the templates according to the similarity between the search template and each template in the target search area;

[0212] The template determination unit is configured to determine at least two templates with the highest ranking as candidate templates.

[0213] In one embodiment, the prediction module 430 is configured to determine a target prediction block corresponding to the current block to be predicted according to a similarity between a candidate prediction block corresponding to the candidate template and the current prediction block.

[0214] In one embodiment, the prediction module 430 is configured to: determine the candidate prediction block having the highest similarity with the current prediction block among the candidate prediction blocks corresponding to the candidate template as the target prediction block.

[0215] In one embodiment, the prediction module 430 is configured to: when the candidate template includes at least two templates with the highest ranking, the candidate prediction block corresponding to the candidate template is obtained by weighting the prediction blocks corresponding to the at least two templates with the highest ranking.

[0216] In one embodiment, the prediction module 430 is configured to: determine whether the similarity between the candidate prediction block corresponding to the candidate template and the current prediction block meets the set conditions when there are at least two templates whose similarities with the search template meet the set conditions, and the at least two candidate prediction blocks belong to different search sub-areas, and the search area division conditions are not met.

[0217] In one embodiment, the search template includes one of the following:

[0218] An L-shaped template consisting of the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0219] A cross-shaped template obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted;

[0220] A T-shaped template is obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted.

[0221] In one embodiment, the apparatus further comprises:

[0222] The division module is configured to determine the search area into at least two search sub-areas according to the size of the current block to be predicted and the search template.

[0223] In one embodiment, after searching for at least one candidate template matching the search template in the target search area, the device further includes: a matching module configured to determine a candidate template matching a sub-template in the at least one candidate template, wherein the sub-template belongs to a subset of the search template.

[0224] The intra-frame template matching prediction device proposed in this embodiment and the intra-frame template matching prediction method proposed in the above embodiment belong to the same inventive concept. The technical details not fully described in this embodiment can be referred to any of the above embodiments, and this embodiment has the same beneficial effects as executing the intra-frame template matching prediction method.

[0225] An embodiment of the present application also provides a processing node. Figure 7 is a schematic diagram of the hardware structure of a processing node provided by an embodiment. As shown in Figure 7, the processing node provided by the present application includes a processor 510 and a memory 520; the processor 510 in the processing node can be one or more, and Figure 7 takes one processor 510 as an example; the memory 520 is configured to store one or more programs; the one or more programs are executed by the one or more processors 510, so that the one or more processors 510 implement the intra-frame template matching prediction method as described in the embodiment of the present application.

[0226] The processing node further includes: a communication device 530 , an input device 540 and an output device 550 .

[0227] The processor 510 , memory 520 , communication device 530 , input device 540 and output device 550 in the processing node may be connected via a bus or other means. FIG. 7 takes the bus connection as an example.

[0228] The input device 540 may be used to receive input digital or character information and generate key signal input related to user settings and function control of the processing node. The output device 550 may include a display device such as a display screen.

[0229] The communication device 530 may include a receiver and a transmitter. The communication device 530 is configured to perform information transmission and reception communication according to the control of the processor 510.

[0230] The memory 520, as a computer-readable storage medium, can be configured to store software programs, computer executable programs, and modules, such as the program instructions / modules corresponding to the intra-frame template matching prediction method described in the embodiment of the present application (for example, the first determination module 310, the partitioning module 320, the search module 330, and the second determination module 340 in the intra-frame template matching prediction device). The memory 520 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; and the data storage area may store data created according to the use of the processing node. In addition, the memory 520 may include a high-speed random access memory and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some instances, the memory 520 may further include a memory remotely located relative to the processor 510, and these remote memories may be connected to the processing node via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0231] The present application also provides a storage medium storing a computer program, which, when executed by a processor, implements the intra-frame template matching prediction method described in any one of the embodiments of the present application. The intra-frame template matching prediction method includes: determining a search template and a search area for a current block to be predicted; determining at least two search sub-areas based on the search area; searching within each search sub-area for at least one candidate template that matches the search template; and determining a target prediction block and a target search area corresponding to the current block to be predicted based on the candidate prediction block corresponding to the candidate template, wherein the target search area is the area where the candidate template corresponding to the target prediction block is located.

[0232] Alternatively, the intra-frame template matching prediction method includes: determining a search template and a target search area for the current block to be predicted; searching within the target search area for at least one candidate template matching the search template; and determining a target prediction block corresponding to the current block to be predicted based on a candidate prediction block corresponding to the candidate template.

[0233] The computer storage medium of the embodiment of the present application can adopt any combination of one or more computer-readable media.Computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium.Computer-readable storage medium can be, for example, but not limited to: an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or component, or any combination of the above.More specific examples (non-exhaustive list) of computer-readable storage media include: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.Computer-readable storage medium can be any tangible medium containing or storing a program, which can be used by an instruction execution system, device or device or used in combination with it.

[0234] A computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such a propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transport a program for use by or in conjunction with an instruction execution system, apparatus, or device.

[0235] The program code contained on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wire, optical cable, radio frequency (RF), etc., or any suitable combination of the foregoing.

[0236] The computer program code for performing the operations of the present application can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, C++, and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., using an Internet service provider to connect via the Internet).

[0237] The above description is merely an exemplary embodiment of the present application and is not intended to limit the scope of protection of the present application.

[0238] It will be understood by those skilled in the art that the term user terminal covers any suitable type of wireless user equipment, such as a mobile phone, a portable data processor, a portable web browser or a vehicle-mounted mobile station.

[0239] In general, various embodiments of the present application may be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, although the present application is not limited thereto.

[0240] Embodiments of the present application may be implemented by executing computer program instructions by a data processor of a mobile device, for example, in a processor entity, or by hardware, or by a combination of software and hardware. The computer program instructions may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages.

[0241] The block diagram of any logical flow in the drawings of this application may represent program steps, or may represent interconnected logical circuits, modules and functions, or may represent a combination of program steps and logical circuits, modules and functions. A computer program may be stored on a memory. The memory may be of any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as but not limited to read-only memory (ROM), random access memory (RAM), optical storage devices and systems (digital versatile discs (DVD) or compact disks (CD), etc.). Computer-readable media may include non-transitory storage media. The data processor may be of any type suitable for the local technical environment, such as but not limited to a general-purpose computer, a special-purpose computer, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and a processor based on a multi-core processor architecture.

[0242] The above description of exemplary embodiments of the present application has been provided by way of exemplary and non-limiting examples. However, various modifications and adaptations of the above embodiments will be apparent to those skilled in the art, when considered in conjunction with the accompanying drawings and the appended claims, without departing from the scope of the present application. Therefore, the proper scope of the present application will be determined by reference to the appended claims.

Claims

1. An intra-frame template matching prediction method, comprising: Determine the search template and search area of ​​the current block to be predicted; Determine at least two search sub-areas according to the search area; Searching for at least one candidate template matching the search template in each search sub-area; A target prediction block and a target search area corresponding to the current block to be predicted are determined according to the candidate prediction block corresponding to the candidate template, wherein the target search area is the area where the candidate template corresponding to the target prediction block is located, and the target search area is one of the at least two search sub-areas or the search area.

2. The method according to claim 1, further comprising: Determine first indication information, where the first indication information is used to indicate whether to adopt an intra-frame template matching prediction mode.

3. The method according to claim 1, further comprising: Second indication information is determined, where the second indication information is used to indicate an identifier of the target search area, where the identifier of the target search area is an identifier of the search area or an identifier of one of the at least two search sub-areas.

4. The method according to claim 1, further comprising: Determine third indication information, where the third indication information is used to indicate whether to determine at least two search sub-areas based on the search area.

5. The method according to claim 1, further comprising: Determine fourth indication information, where the fourth indication information is used to indicate at least one of the following: the number of candidate templates in each search sub-region, and whether the target prediction block is a single candidate prediction block or a weighted fusion of multiple candidate prediction blocks.

6. The method according to claim 1, wherein: The step of searching for at least one candidate template matching the search template in each search sub-area includes one of the following: For each search sub-region, determining at least one candidate template according to the similarity between the search template and each template within the search sub-region; At least one candidate template matching the search template in each search sub-area is determined by a neural network or deep learning.

7. The method according to claim 6, wherein: Determining at least one candidate template according to the similarity between the search template and each template in the search sub-area includes: The template with the highest similarity with the search template in the search sub-area is determined as a candidate template.

8. The method according to claim 6, wherein: Determining at least one candidate template according to the similarity between the search template and each template in the search sub-area includes: sorting the templates according to the similarity between the search template and each template in the search sub-region; At least two templates ranked top are determined as candidate templates.

9. The method according to claim 1, wherein: The determining the target prediction block corresponding to the current block to be predicted according to the candidate prediction block corresponding to the candidate template includes: A target prediction block corresponding to the current block to be predicted is determined according to the similarity between the candidate prediction block corresponding to the candidate template and the current prediction block.

10. The method according to claim 9, wherein: The determining, according to the similarity between the candidate prediction block corresponding to the candidate template and the current prediction block, the target prediction block corresponding to the current block to be predicted comprises: A candidate prediction block having the highest similarity with the current prediction block among the candidate prediction blocks corresponding to the candidate template is determined as the target prediction block.

11. The method according to claim 9, wherein: In the case that the candidate templates are at least two templates ranked top, the candidate prediction blocks corresponding to the candidate templates are obtained by weighting the prediction blocks corresponding to the at least two templates ranked top.

12. The method according to claim 1, wherein: The search template includes one of the following: An L-shaped template consisting of a reconstructed area on the top and a reconstructed area on the left of the current block to be predicted; A cross-shaped template obtained by extending the reconstructed area at the top and the reconstructed area on the left of the current block to be predicted; A T-shaped template is obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted.

13. The method according to claim 12, wherein: The determining at least two search sub-areas according to the search area comprises: The search area is determined to be divided into at least two search sub-areas according to the size of the current block to be predicted and the search template.

14. An intra-frame template matching prediction method, comprising: Determine the search template and target search area of ​​the current block to be predicted; Searching for at least one candidate template matching the search template in the target search area; Determine a target prediction block corresponding to the current block to be predicted according to the candidate prediction block corresponding to the candidate template.

15. The method according to claim 14, before determining the search template and target search area of ​​the current block to be predicted, further comprising: Determine, according to the first indication information, to adopt the intra-frame template matching prediction mode.

16. The method according to claim 14, wherein: The target search area is determined according to the second indication information; The method further comprises: Determine second indication information, where the second indication information is used to indicate an identifier of the target search area, where the identifier of the target search area is an identifier of the search area of ​​the current block to be predicted or an identifier of one of the at least two search sub-areas.

17. The method according to claim 14, further comprising: Determine third indication information, where the third indication information is used to indicate whether to determine at least two search sub-areas based on the search area.

18. The method according to claim 14, further comprising: Determine fourth indication information, where the fourth indication information is used to indicate at least one of the following: the number of candidate templates in each search sub-region, and whether the target prediction block is a single candidate prediction block or a weighted fusion of multiple candidate prediction blocks.

19. The method according to claim 14, wherein: Searching for at least one candidate template matching the search template in the target search area includes one of the following: Determine at least one candidate template according to the similarity between the search template and each template in the target search area; At least one candidate template matching the search template in the target search area is determined by a neural network or deep learning.

20. The method according to claim 19, wherein: Determining at least one candidate template according to the similarity between the search template and each template in the target search area includes: The template with the highest similarity to the search template in the target search area is determined as a candidate template.

21. The method according to claim 19, wherein: Determining at least one candidate template according to the similarity between the search template and each template in the target search area includes: sorting the templates according to the similarity between the search template and each template in the target search area; At least two templates ranked top are determined as candidate templates.

22. The method according to claim 14, wherein: The determining the target prediction block corresponding to the current block to be predicted according to the candidate prediction block corresponding to the candidate template includes: A target prediction block corresponding to the current block to be predicted is determined according to the similarity between the candidate prediction block corresponding to the candidate template and the current prediction block.

23. The method according to claim 22, wherein: The determining, according to the similarity between the candidate prediction block corresponding to the candidate template and the current prediction block, the target prediction block corresponding to the current block to be predicted comprises: A candidate prediction block having the highest similarity with the current prediction block among the candidate prediction blocks corresponding to the candidate template is determined as the target prediction block.

24. The method according to claim 22, wherein: In the case that the candidate templates are at least two templates ranked top, the candidate prediction blocks corresponding to the candidate templates are obtained by weighting the prediction blocks corresponding to the at least two templates ranked top.

25. The method of claim 14, wherein: The search template includes one of the following: An L-shaped template consisting of a reconstructed area on the top and a reconstructed area on the left of the current block to be predicted; A cross-shaped template obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted; A T-shaped template is obtained by extending the reconstructed area on the top and the reconstructed area on the left of the current block to be predicted.

26. The method according to claim 25, further comprising: The search area is determined to be divided into at least two search sub-areas according to the size of the current block to be predicted and the search template.

27. A processing node comprising: memory, and at least one processor; The memory is configured to store at least one program; When the at least one program is executed by the at least one processor, the at least one processor implements the intra-frame template matching prediction method according to any one of claims 1 to 26.

28. A computer-readable storage medium having a computer program stored thereon, wherein: When the program is executed by a processor, the intra-frame template matching prediction method as described in any one of claims 1 to 26 is implemented.

Citation Information

Patent Citations

  • Predictive coding concept using template matching

    CN110537370A

  • Coding method, decoding method, electronic equipment and computer readable storage medium

    CN116074537A

  • Systems and methods for predicting a coding block

    US20220094910A1