Intra template matching prediction system and method with improved search space

The IntraTMP method addresses inefficiencies in video compression by expanding the search area for intra-prediction within the current CTU, leading to improved video coding efficiency and accuracy through enhanced template matching.

JP2026502642APending Publication Date: 2026-01-23GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025542296
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-02-13
Filing Date
2024-01-26
Publication Date
2026-01-23

AI Technical Summary

Technical Problem

Existing video compression methods, such as HEVC and VVC, face challenges in effectively determining which reconstructed samples to use for intra-prediction, leading to inefficiencies in block partitioning and quantization during encoding.

Method used

An improved IntraTMP method that utilizes an enhanced search area for intra-prediction by considering 'L-shaped' templates and neighboring regions within the current CTU, allowing for a more comprehensive search for candidate predictors, including the 'top right' and 'bottom left' neighborhoods, and determining the best candidate template using metrics like Sum of Absolute Difference (SAD) or Sum of Absolute Transformed Difference (SATD).

Benefits of technology

Enhances video coding efficiency by improving the accuracy of intra-prediction, resulting in better coding results and reduced computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026502642000001_ABST
    Figure 2026502642000001_ABST
Patent Text Reader

Abstract

A method and system for video processing are provided. In some embodiments, the method includes: (i) receiving a bitstream; and (ii) analyzing the bitstream to generate a video sequence based on an intra-template matching prediction (IntraTMP) module. The method may further include: (1) determining a search area for a current coding unit (CU); (2) performing a template matching process on a plurality of predictor candidates within the search area; (3) identifying a predictor block from the plurality of predictor candidates; and (4) using data from the predictor block as reference data for the current CU.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to image and video coding techniques, and more particularly, the present disclosure relates to video coding schemes including intra template matching prediction (intraTMP) methods. [Background technology]

[0002] Existing video compression methods (e.g., High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC)) perform block partitioning and quantization during encoding. The HEVC and VVC standards specify a block-based hybrid spatial and temporal predictive coding scheme. In the encoding process, each picture is first partitioned into square blocks called coding tree units (CTUs). Each CTU in a picture may be partitioned into one or more coding units (CUs), and the CUs may be used for prediction and transformation. Various prediction tools may be used, including inter-prediction tools and intra-prediction tools. Inter-prediction tools can use any information from pictures already coded into a bitstream. Intra-prediction tools can only use reconstructed samples from the same picture. Therefore, effectively determining which reconstructed samples to use is very important, and therefore, improved systems and methods for addressing the aforementioned needs would be advantageous. Summary of the Invention

[0003] This disclosure provides a system and method for improving the image quality of video by using an improved IntraTMP method. IntraTMP predicts a current CU by a sample block of a current picture. In some embodiments, IntraTMP is selected as the prediction mode for CUs with a size of 64x64 or less.

[0004] During the decoding process, the decoder compares a predetermined "L-shaped" or other shaped template of reconstructed samples adjacent to the current CU with templates of the same shape of candidate predictors within a predetermined search area to determine the IntraTMP predictor block. If the template is "L-shaped," the neighboring samples to the left and above the current CU are both used as the template for the current CU. Similarly, the neighboring samples to the left and above the candidate predictors are used as candidate templates for each candidate predictor. In some embodiments, different template shapes can be used, in which case a different template shape is used as the candidate template for each candidate predictor. The IntraTMP predictor block is determined by finding the best candidate template that matches the current CU template. An example of an "L-shaped" template is described in detail with reference to FIG. 2A.

[0005] The present system provides an improved method for determining a predetermined search region. This system is beneficial because some conventional methods cannot effectively search available reconstructed samples. The present system can search any region within the current CTU that is available for intra prediction by the IntraTMP process. Searching regions within the current CTU is particularly beneficial because candidate predictors that are spatially close to the current CU may be good predictors. More specifically, the present system enables searching in the "upper right" and / or "lower left" neighborhoods of the current CU.

[0006] The "top right" neighborhood and the "bottom left" neighborhood are within the current CTU. The "top right" neighborhood is adjacent to the current CU and extends from the "top right" corner of the current CU along the "top right" direction. The "bottom left" neighborhood is adjacent to the current CU and extends from the "bottom left" corner of the current CU along the "bottom left" direction. The improved search regions including the "top right" neighborhood and the "bottom left" neighborhood are described in detail with reference to Figures 2B to 5C.

[0007] The present system and method allows the current CTU of the IntraTMP search area to include any CU before the current CU. The IntraTMP search area can be scanned according to a scan order. An example of a scan order is described with reference to FIG. 4A. Compared to conventional methods, the present system and method enhances the template search by adding neighboring regions to the current CU (e.g., a "bottom-left" region and an "upper-right" region within the current CTU). By utilizing the enhanced search area provided by the present system, IntraTMP processing can be more effective and provide better coding results.

[0008] In some embodiments, the best candidate template can be determined by finding the template that minimizes the Sum of Absolute Difference (SAD) or the Sum of Absolute Transformed Difference (SATD), or by comparing hash values ​​between templates. The IntraTMP search area is scanned according to a search algorithm. In some embodiments, the search algorithm for a given search area is exhaustive (e.g., scanning templates in the search area by shifting the sample resolution) or fast (e.g., performing a coarse search first, then performing a local fine search by the best match of the coarse search). The search algorithm can be executed by the encoder and decoder in the same manner, so that both the encoder and decoder can implicitly know the IntraTMP predictor without signaling in the bitstream.

[0009] Although the following systems and methods are described in the context of video processing, in some embodiments the systems and methods can be used with other image processing systems and methods. The present disclosure provides a framework / network that can be trained by deep learning and / or artificial intelligence methods.

[0010] In some embodiments, the methods described herein with respect to a "picture" or "frame" may be applied to a portion or region of a "picture" or "frame." For example, the methods disclosed herein may be applied to a sub-picture, a region of a picture (e.g., showing an object of interest), etc.

[0011] In some embodiments, the method may be implemented by a tangible, non-transitory computer-readable medium having stored thereon processor instructions that, when executed by one or more processors, cause the one or more processors to perform one or more aspects / features of the method described herein. In other embodiments, the method may be implemented by a system including a computer processor and a non-transitory computer-readable storage medium having stored thereon instructions that, when executed by the computer processor, cause the computer processor to perform one or more operations of the method described herein. [Brief explanation of the drawings]

[0012] [Figure 1A] FIG. 1 is a schematic diagram of an encoding system having an IntraTMP module in accordance with one or more embodiments of the present disclosure. [Figure 1B] 1 is a schematic diagram of a decoding system having an IntraTMP module in accordance with one or more embodiments of the present disclosure. [Figure 2A] FIG. 1 is a schematic diagram of an IntraTMP process according to one or more embodiments of the present disclosure. [Figure 2B] FIG. 1 is a schematic diagram of an IntraTMP process according to one or more embodiments of the present disclosure. [Figure 3]FIG. 2 is a schematic diagram of an intra-prediction process according to one or more embodiments of the present disclosure. [Figure 4A] FIG. 1 is a schematic diagram illustrating a search order for IntraTMP processing within a search space in accordance with one or more embodiments of the present disclosure. [Figure 4B] FIG. 1 is a schematic diagram illustrating an example of dividing a CTU into CUs according to one or more embodiments of the present disclosure. [Figure 4C] FIG. 1 is a schematic diagram illustrating slice partitions in accordance with one or more embodiments of the present disclosure. [Figure 4D] FIG. 1 is a schematic diagram illustrating tile partitions in accordance with one or more embodiments of the present disclosure. [Figure 4E] FIG. 1 is a schematic diagram illustrating division of a picture into wavefronts in accordance with one or more embodiments of the present disclosure. [Figure 5A] FIG. 1 is a schematic diagram illustrating a search area for IntraTMP processing in accordance with one or more embodiments of the present disclosure. [Figure 5B] FIG. 1 is a schematic diagram illustrating a search area for IntraTMP processing in accordance with one or more embodiments of the present disclosure. [Figure 5C] FIG. 1 is a schematic diagram illustrating a search area for IntraTMP processing in accordance with one or more embodiments of the present disclosure. [Figure 6] 1 is a schematic diagram of a wireless communication system in accordance with one or more embodiments of the present disclosure. [Figure 7] 1 is a schematic block diagram of a terminal device according to one or more embodiments of the present disclosure. [Figure 8] FIG. 1 is a schematic block diagram of an electronic device in accordance with one or more embodiments of the present disclosure. [Figure 9] 1 is a flowchart of a method according to one or more embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0013] In order to more clearly describe the technical solutions in the embodiments of the present disclosure, the drawings are briefly described above. The drawings only illustrate some aspects or embodiments of the present disclosure, and those skilled in the art can obtain other related drawings based on these drawings without any creative efforts.

[0014] In order to more clearly describe the technical solutions in the embodiments of the present disclosure, the drawings are briefly described above. The drawings only illustrate some aspects or embodiments of the present disclosure, and those skilled in the art can obtain other related drawings based on these drawings without any creative efforts.

[0015] 1A is a schematic diagram of a system 100A having an IntraTMP module 101 (in an intra-prediction module 102) in accordance with one or more embodiments of the present disclosure. The IntraTMP module 101 is configured to perform a template search process in an improved search space (e.g., FIG. 2B). In some implementations, in addition to the IntraTMP module 101, the intra-prediction module 102 may also include other intra-prediction modules / tools, such as, for example, Intra Block Copy (IBC), Spatial Geometric Partitioning Mode (SGPM), Matrix-based Intra Prediction (MIP), or a conventional angular intra-prediction tool.

[0016] System 100A includes video sequence 10 as an input to intra prediction module 102 and / or inter prediction module 103. The output of intra prediction module 102 and / or inter prediction module 103 may be subtracted from a current CU of video sequence 10 to generate a residual R. The residual R is then input to transform module 104. The output of transform module 104 may be quantized by quantization module 105. The output of quantization module 105 is then input to inverse quantization module 106 and inverse transform module 107.

[0017] As shown in FIG. 1A , the output of the intra-prediction module 102 and / or the inter-prediction module 103 may be summed with the output of the inverse transform module 107 at summer 108. The summed result may then be input to an in-loop filter 109. The output of the in-loop filter 109 may then be input to a decoded picture buffer 110 for further processing by the inter-prediction module 103. The system 100A uses loop filters to suppress compression artifacts and reduce distortion. These loop filters include a deblocking filter (DBF), a sample adaptive offset (SAO) filter, and an adaptive loop filter (ALF). In some embodiments, the in-loop filter 109 need not include all of the above filters. In some embodiments, the DBF and SAO filters are two filters designed to reduce artifacts caused by the encoding process. The DBF focuses on visual artifacts at block boundaries. The SAO filter complementarily reduces artifacts that may result from quantization of transform coefficients within a block. The ALF may be an adaptive filter that enhances the reconstructed signal and reduces the mean square error (MSE) between the original samples and the reconstructed samples by using a Wiener-based adaptive filter. The system 100A further includes an entropy coding module 111, which is configured to perform data compression before generating the bitstream 11.

[0018] FIG. 1B is a schematic diagram of a decoding system 100B having an IntraTMP module (e.g., the IntraTMP module 101 described in FIG. 1A) in accordance with one or more embodiments of the present disclosure. The system 100B includes an entropy decoding module 121, an inverse quantization module 122, and an inverse transform module 123 configured to process a bitstream 12. The decoding system 100B further includes an inter-prediction module 124 and an intra-prediction module 125 (e.g., corresponding to the intra-prediction module 102 on the encoding side). The inter-prediction module 124 and the intra-prediction module 125 are configured to generate the bitstream 12 and generate a decoded video 13. As shown in FIG. 1B, the decoding system 100B further includes a picture buffer 126 and a loop filter 127 to facilitate the aforementioned decoding tasks.

[0019] 1B, the output of intra prediction module 125 and / or inter prediction module 124 may be summed with the output of inverse transform module 123 at summer 128. The summed result may then be output to loop filter 127 to generate decoded video 13.

[0020] FIG. 2A is a schematic diagram illustrating the shape of a template 201 of a CU for IntraTMP processing in accordance with one or more embodiments of the present disclosure. As shown in FIG. 2A, the template 201 includes a first region 203 located above the CU and a second region 205 located to the left of the CU. The first region 203 and the second region 205 form an "L-shape." In some implementations, the template 201 may have other shapes (e.g., including either the first region 203 or the second region 205). The template 201 searches for a best candidate template from multiple candidate predictors (e.g., candidate predictor A, candidate predictor B, and candidate predictor C shown in FIG. 2A) within a search region (e.g., the current CTU, the reconstruction region, etc.). In the example of FIG. 2A, candidate template 206 is determined to be the best candidate template, and therefore the corresponding candidate predictor B is selected as the IntraTMP predictor. Next, the IntraTMP processing uses the data (e.g., pixels) of candidate predictor B as reference data for the CU.

[0021] In some embodiments, the best candidate template can be determined by finding the template that minimizes the SAD or SATD, or by comparing hash values ​​between templates. In some embodiments, several search algorithms can be used. In some embodiments, the search algorithm for a given search area can be exhaustive (e.g., scanning templates in the search area by shifting the sample resolution) or fast (e.g., first performing a coarse search and then performing a local fine search with the best match of the coarse search). Because the encoder and decoder can perform the search algorithm in the same manner, both the encoder and decoder can implicitly know the IntraTMP predictor without signaling in the bitstream.

[0022] FIG. 2B is a schematic diagram of a current IntraTMP search area 207 of an IntraTMP process according to one or more embodiments of the present disclosure. As shown in FIG. 2B, the search area 207 is used to perform a candidate search for a CU (e.g., as described with reference to FIG. 2A above). The search area 207 includes multiple regions, including CTU regions 21-24, sub-CTU regions 25-26, a "top-right" neighboring region 28, and a "bottom-left" neighboring region 29. The "top-right" neighboring region 28 is located in the top-right corner of the current CU within the same CTU 30 and may have already been reconstructed. The "bottom-left" neighboring region 28 is located in the bottom-left corner of the current CU within the same CTU 30 and may have already been reconstructed. This arrangement enables the present system to enable the IntraTMP process to search for candidates within an improved search area (i.e., the current IntraTMP search area 207) that is larger than conventional methods.

[0023] FIG. 3 is a schematic diagram of an intra-prediction process according to one or more embodiments of the present disclosure. In the example, an exemplary search region for an IBC tool is shown. As shown, in the example of FIG. 3, the IBC process can search a current CTU row 307 and an upper CTU row 305 that have already been decoded. In the illustrated example, for example, a predictor block 309 is shown in the upper CTU row 305. The predictor block 309 is indicated by a block vector 311, which points from the upper left corner of the current CU 301 to the upper left corner of the predictor block 309. If some block vectors point to unavailable areas, such as areas that have not been decoded, these block vectors are not "legal." For example, the incorrect block vector 313 shown in FIG. 3 points to an area that follows the current CU 301 in decoding order.

[0024] In some embodiments, signaling indicates block vectors 311 to indicate which block in the same picture is to be copied as a predictor of the current block. Signaling of block vectors 311 can be performed by signaling block vector difference (BVD) in the bitstream, so that block vector 311 can be determined by adding the BVD to the block vector predictor. In some embodiments, block vectors can be signaled by a merge flag if the block vector of the previous CU perfectly matches the current block vector.

[0025] As shown, the block vector 311 points to a location within the same picture and indicates a sample block of the same size as the current CU 301, which is used as the predictor block 309 of the current CU 301. In some embodiments, some restrictions may apply to the block vector 311. For example, the block vector 311 must point to a sample block available for intra prediction in the current picture. As another example, the block vector may be limited to a search area defined by a search tool (e.g., an IBC tool), which may be smaller than the current picture. For example, in VVC, the IBC search area is the current CTU and the previous CTU. In some embodiments, if the size of the CTU is 256x256, the IBC search area may be the current CTU row and the CTU row above, or if the size of the CTU is 128x128 or smaller, the IBC search area is the current CTU row and the two CTU rows above. In some embodiments, the system performs IntraTMP processing and satisfies buffering requirements by limiting the IntraTMP search area to that of an existing tool (e.g., an IBC tool). Various embodiments of search areas for IntraTMP processing are described in Figures 4A-5D.

[0026] FIG. 4A is a schematic diagram illustrating a search order for IntraTMP processing within a search region 400 according to one or more embodiments of the present disclosure. The search region 400 is determined by assigning a maximum length to an IntraTMP block vector, which, as shown in FIG. 4A, is a vector pointing from the top-left corner of the current CU to the top-left corner of the IntraTMP predictor. The maximum length of an IntraTMP block vector is (searchRangeWidth, searchRangeHeight), i.e., the maximum searchRangeWidth (search range width) in the horizontal direction and the maximum searchRangeHeight (search range height) in the vertical direction. The values ​​of searchRangeWidth and searchRangeHeight are determined as functions of the width BlkW and height BlkH of the current CU. For example, in one embodiment, they can be determined according to the following equations (A) and (B):

[0027] searchRangeWidth=max(a*BlkW,minSearchRange) (A) searchRangeHeight=max(a*BlkH,minSearchRange) (B) In the formulas (A) and (B), "max(x,y)" returns the maximum value of "x" and "y".

[0028] In some embodiments, in equations (A) and (B), "a" may be set to "5" and "minSearchRange" may be set to "128." Other embodiments may use different values ​​for "a" and "minSearchRange."

[0029] The upper left corner of the current CU is defined as the coordinate position (currCuX, currCuY) in the coordinate system, where (0,0) refers to the upper left corner of the picture, and increasing horizontal and vertical coordinate positions represent rightward and downward directions, respectively. The parameter "currCuX" refers to the horizontal position, and currCuY refers to the vertical position. In this coordinate system, the upper left corner of the search area 400 is located at (currCuX-searchRangeWidth, currCuY-searchRangeHeight). The upper right corner of the search area 400 is located at (currCuX+BlkW-1+searchRangeWidth, currCuY-searchRangeHeight). The lower left corner of the search area 400 may theoretically be located at (currCuX-searchRangeWidth, currCuY+BlkH-1+searchRangeHeight).

[0030] In the example of FIG. 4A, the lower-left corner is bounded by the bottom boundary of the left CTU. The lower-right corner of the search area 400 could theoretically be located at (currCuX+BlkW-1+searchRangeWidth, currCuY+BlkH-1+searchRangeHeight). There cannot be any IntraTMP block vectors pointing right and down because they point to picture areas that are located after the current CU in coding order. Therefore, the lower-right boundary of the search area 400 is complex because it depends on the availability of samples. The shape of the search area under different conditions is described in more detail below with reference to FIGS. 4A and 5A-5C.

[0031] Prior to limitations due to sample availability, the above search area 400 is theoretically rectangular. In this disclosure, the search area 400 is defined such that the sample block corresponding to any IntraTMP predictor must be completely contained within the search area 400. It can be appreciated that equivalent search areas are defined depending on the characteristics of the object(s) that must be contained within the search area. For example, if the coordinates pointed to by the IntraTMP block vectors must be completely contained within the search region, define relatively small, equivalent search regions whose upper-left, upper-right, lower-left, and lower-right corners are located at (currCuX-searchRangeWidth, currCuY-searchRangeHeight), (currCuX+searchRangeWidth, currCuY-searchRangeHeight), (currCuX-searchRangeWidth, currCuY+searchRangeHeight), and (currCuX+searchRangeWidth, currCuY+searchRangeHeight), respectively.

[0032] In another example, if the sample blocks corresponding to any IntraTMP predictor and its template must be completely contained within the search area, define a larger, equivalent search area whose upper-left, upper-right, lower-left, and lower-right corners are located at (currCuX-searchRangeWidth-templateWidth, currCuY-searchRangeHeight-templateHeight), (currCuX+BlkW-1+searchRangeWidth, currCuY-searchRangeHeight-templateHeight), (currCuX-searchRangeWidth-templateWidth, currCuY+BlkH-1+searchRangeHeight), and (currCuX+BlkW-1+searchRangeWidth, currCuY+BlkH-1+searchRangeHeight), respectively, where templateWidth and templateHeight refer to the size of the template shape. As can be appreciated, changes in the definition of the search region do not affect the operation of the IntraTMP search algorithm described in this disclosure.

[0033] The search space 400 is further restricted based on the theoretical rectangle above by sample availability, which depends on two factors: first, whether the sample has already been reconstructed, and second, whether the sample belongs to a logical unit currently available to the CU.

[0034] To determine whether a sample has already been reconstructed, the VVC partitioning structure is considered. Each picture is divided into square CTUs (CTUs), which are processed in raster scan order. When performing intra prediction on a current CU in a current CTU, samples belonging to other CTUs that are located before the current CTU in raster scan order can be reconstructed and used for prediction. Samples belonging to CTUs that are located after the current CTU in raster scan order cannot be reconstructed and are therefore unavailable.

[0035] Each CTU is itself divided into CUs by a hierarchical structure consisting of quadtree, binary tree, and ternary tree partitioning, examples of such partitioning are shown in Figure 4B. Figure 4B is a schematic diagram illustrating an example of dividing a CTU into CUs according to one or more embodiments of the present disclosure. The scanning order of CUs within a CTU is determined by the partition structure. In the case of single-level partitioning, the partitions are scanned in the following order:

[0036] [1] For horizontal binary or ternary tree decomposition, it is from left to right.

[0037] [2] In the case of a vertical binary tree or vertical ternary tree partition, it is from top to bottom.

[0038] [3] For quadtree division, the order is top left, top right, bottom left, and bottom right.

[0039] If a partition includes further hierarchical divisions, all CUs in that partition are scanned before proceeding to CUs in the next partition. Figure 4B shows an example of dividing a CTU into 15 CUs, numbered 1 through 15 to indicate their scan order. When performing an intra prediction method on a current CU in a current CTU, samples in other CUs in the current CTU that are located before the current CU in the partitioning scan order of the current CTU are reconstructed and available for prediction. Samples in the current CU or samples in CUs that are located after the current CU in the partitioning scan order of the current CTU are not reconstructed and therefore unavailable.

[0040] According to the above definition, samples in a CTU that precedes the current CTU in raster scan order are considered reconstructed. However, these samples are not necessarily available for intra prediction. To be considered available for prediction, these samples must also belong to a logical unit that the current CU is allowed to use. A picture may be divided into sub-picture partitions, each containing an integer number of CTUs. Figure 4C shows an example in which a picture is divided into multiple slices. Samples belonging to slices other than the slice containing the current CU are unavailable for intra prediction. This restriction allows slices to be decoded independently.

[0041] 4D is a schematic diagram illustrating tile partitioning according to one or more embodiments of the present disclosure. Figure 4D illustrates an example of dividing a picture into multiple tiles. Samples belonging to tiles other than the tile containing the current CU are unavailable for intra prediction. This restriction allows tiles to be decoded independently.

[0042] Figure 4E shows an example of dividing a picture into multiple wave-planes. Each wave-plane corresponds to one row of CTUs, and the wave-planes can be decoded alternately and in parallel, reducing the dependency between CTU rows. In the example of Figure 7, the wave-planes are processed with a delay of one CTU. The CTUs are referenced by their position in the grid, i.e., CTU i,j represents the CTU located at the i-th row and j-th column. Next, when wavefront parallelism is enabled by setting the SPS syntax element "sps_entropy_coding_sync_enabled_flag", a,b The column position of the current CTU i,j If b is greater than the column position of (i.e., b>j), CTU a,b is unavailable.

[0043] Intra prediction methods vary in how they handle the case where reference samples needed for prediction are unavailable: sometimes the method is simply disabled if such samples are unavailable, and other times it performs extrapolation of the unavailable samples, such as by boundary extension.

[0044] 4A , in the illustrated embodiment, the search area 400 is indicated by diagonal lines and includes region R1 (e.g., the upper CTU row region), region R2 (e.g., the first left CTU region), region R3 (e.g., the second left CTU region), region R4 (e.g., the upper-left current CTU region), region R5 (e.g., the upper-right current CTU region, including the upper-right neighboring region 405 indicated by double hashed lines), and region R6 (e.g., the lower-left current CTU region, including the lower-left neighboring region 407 indicated by double hashed lines). The upper-right region 405 and the lower-left region 407 are described in more detail below with reference to FIG. 4A . However, the specific regions within the upper-right region 405 and the lower-left region 407 included in the search area 400 depend on the CTU partition of the current CTU 403.

[0045] In the example of FIG. 4A , the top-right region 405 extends from the top-right corner of the current CU 401 to the top-right boundary of the current CTU 403. According to the coordinate system introduced above with reference to “searchRangeWidth” and “searchRangeHeight,” the top-left corner of the current CTU 403 is represented by the coordinate position (currCtuX, currCtuY), and the CTU width and height are CtuW and CtuH, respectively. In this coordinate system, the top-left corner of the top-right region 405 is located at (currCuX+BlkW, currCtuY). The top-right corner of the top-right region 405 is located at (currCtuX+CtuW-1, currCtuY). The bottom-left corner of the top-right region 405 is located at (currCuX+BlkW, currCuY-1). The bottom-right corner of the top-right region 405 is located at (currCuX+BlkW, currCuY-1).

[0046] Similarly, in the example of Figure 4A, the upper left corner of the lower left region 407 is located at (currCtuX, currCuY+BlkH). The upper right corner of the lower left region 407 is located at (currCuX-1, currCuY+BlkH). The lower left corner of the lower left region 407 is located at (currCtuX, currCtuY+CtuH-1). The lower right corner of the lower left region 407 is located at (currCuX-1, currCtuY+CtuH-1).

[0047] In some implementations, the top right region 405 is included within the IntraTMP search area. Thus, the IntraTMP process searches for a best candidate template among multiple candidate templates such that, for one of the candidate templates, a portion of the sample block of the associated candidate predictor is included within the top right region 405. In other words, at least one sample of the associated candidate predictor has a coordinate location (X, Y), where (X, Y) is currently within the CTU, X is greater than or equal to currCuX+BlkW, and Y is less than or equal to currCuY-1.

[0048] In some implementations, the bottom left region 407 is included within the IntraTMP search area. Thus, the IntraTMP process searches for a best candidate template among multiple candidate templates such that, for one of the candidate templates, a portion of the sample block of the associated candidate predictor is included within the bottom left region 407. In other words, at least one sample of the associated candidate predictor has a coordinate location (X, Y), where (X, Y) is currently within the CTU, X is less than or equal to currCuX-1, and Y is greater than or equal to currCuY+BlkH.

[0049] In the example of Figure 4A, the CTU boundaries are stricter than the constraints imposed by "searchRangeWidth" and "searchRangeHeight", so the top-right region 405 and bottom-left region 407 now extend to the boundaries of CTU 403. Figures 5A and 5B show several examples where the constraints imposed by "searchRangeWidth" and "searchRangeHeight" on the search region 400 exceed the constraints of the CTU boundaries.

[0050] In some examples, the search order may be to first search region R4, then region R5, region R6, region R1, region R2, and region R3. In some embodiments, the search order may be R4, R6, R5, R1, R2, and R3. In some embodiments, the search order may be any suitable combination of regions R1 through R6.

[0051] In some examples, the boundaries of regions R1 through R6 may be adjusted. For example, in some cases, regions R4 and R5 may be combined into one region. In some embodiments, regions R4 and R6 may be combined into one region. In some examples, region R4 may be expanded to include the left portion of region R5, and then region R5 may include only the upper-right neighboring region 405 (double-hatched). In some examples, region R4 may be expanded to include the top of region R6, and then region R6 may include only the lower-left neighboring region 407 (double-hatched).

[0052] 5A-5C are schematic diagrams illustrating search regions for IntraTMP processing in accordance with one or more embodiments of the present disclosure. In FIG. 5A, an exemplary search region 500A (for the current CU 501) is configured to not exceed a maximum search range defined by "searchRangeWidth" and "searchRangeHeight" as shown. In some examples, the maximum search range causes the upper boundary of search region 500A to be below the top boundary of the current CTU 503. Similarly, in the coordinate system introduced in this disclosure, if (CurrCuY-searchRangeHeight) is greater than currCtuY, then the upper boundary of search region 500A is located at (CurrCuY-searchRangeHeight). Similarly, the upper boundary of search region 500A is equal to max(currCtuY, (CurrCuY-searchRangeHeight)).

[0053] 5A, the maximum search range results in search region 500A, whose left boundary is located to the right of the left boundary of current CTU 503. Similarly, if (CurrCuX-searchRangeWidth) is greater than currCtuX, then the left boundary of search region 500A is located at (CurrCuX-searchRangeWidth). Similarly, the left boundary of search region 500A is equal to max(currCtuX, (CurrCuX-searchRangeWidth)).

[0054] In FIG. 5B , the example search region 500B is configured to not exceed the maximum search range defined by “searchRangeWidth” and “searchRangeHeight” as shown. In some embodiments, the maximum search range causes the lower boundary of search region 500B to be located above the bottom boundary 505 of current CTU 503 and left CTU 504. Similarly, if (currCuY+BlkH-1+searchRangeHeight) is less than (currCtuY+CtuH-1), then the lower boundary of search region 500B is located at (currCuY+BlkH-1+searchRangeHeight). Similarly, the lower boundary of search region 500B is equal to min((currCtuY+CtuH-1),(currCuY+BlkH-1+searchRangeHeight)). In the above description, “min(x,y)” returns the minimum value between “x” and “y.”

[0055] 5B , with a maximum search range, the right boundary of search region 500B is located to the left of the right boundary of current CTU 503. Similarly, if (currCuX+BlkW-1+searchRangeWidth) is less than (currCtuX+CtuW-1), then the right boundary of search region 500B is located at (currCuX+BlkW-1+searchRangeWidth). Similarly, the right boundary of search region 500B is equal to min((currCtuX+CtuW-1),(currCuX+BlkW-1+searchRangeWidth)).

[0056] 4A, 5A, and 5B are combined. Thus, the top-right region 405 is restricted to a sample block whose top-left corner is located at (currCuX+BlkW,max(currCtuY,currCuY-searchRangeHeight)), whose top-right corner is located at (min((currCtuX+CtuW-1),(currCuX+BlkW-1+searchRangeWidth)),max(currCtuY,currCuY-searchRangeHeight)), whose bottom-left corner is located at (currCuX+BlkW,currCuY-1), and whose bottom-right corner is located at (min((currCtuX+CtuW-1),(currCuX+BlkW-1+searchRangeWidth)),currCuY-1). The bottom left region 407 is restricted to a sample block whose top left corner is located at (max(currCtuX,(currCuX-searchRangeWidth)),currCuY+BlkH), whose top right corner is located at (currCuX-1,currCuY+BlkH), whose bottom left corner is located at (max(currCtuX,(currCuX-searchRangeWidth)),min((currCtuY+CtuH-1),(currCuY+BlkH-1+searchRangeHeight))), and whose bottom right corner is located at (currCuX-1,min((currCtuY+CtuH-1),(currCuY+BlkH-1+searchRangeHeight))).

[0057] In FIG. 5C , the exemplary search region 500C is further constrained to align with the available search region of the IBC prediction tool. In some embodiments, if the top boundary of the IBC search region is lower than the maximum search range defined by “searchRangeHeight,” the top boundary of search region 500C is set to the top boundary of the IBC search region plus “templateHeight.” In some embodiments, the current CTU has a size of 256×256, and the IBC search region is constrained to the top boundary of the upper CTU row vertically. In some embodiments, the current CTU has a size of 128×128, and the IBC search region is constrained to the top boundary of the upper two CTU rows vertically.

[0058] FIG. 6 is a schematic diagram of a wireless communication system 600 in accordance with one or more embodiments of the present disclosure. The wireless communication system 600 can implement the framework described herein. As shown in FIG. 6, the wireless communication system 600 can include a network device (or base station) 601. Examples of the network device 601 include a base transceiver station (BTS), a base station (NB), an evolved base station (eNB or eNodeB), a next generation base station (gNB or gNodeB), a wireless fidelity (WIFI) access point (AP), etc. In some examples, the network device includes a relay station, an access point, an in-vehicle device, a wearable device, etc. The network equipment 601 may include a wireless connection device for a communication network, such as a Global System for Mobile communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Wideband CDMA (WCDMA) network, a Long Term Evolution (LTE) network, a Cloud Radio Access Network (CRAN), an Institute of Electrical and Electronics Engineers (IEEE) 802.11-based network (such as a Wi-Fi network), an Internet of Things (IoT) network, a device-to-device (D2D) network, a next-generation network (such as a 5G network), a Public Land Mobile Network (PLMN), etc. A 5G system or network may also be referred to as a New Radio (NR) system or network.

[0059] 6, the wireless communication system 600 also includes terminal equipment 603. The terminal equipment 603 may be end-user equipment for facilitating wireless communication. The terminal equipment 603 may be configured to wirelessly connect to the network equipment 601 (e.g., via wireless communication path 605) according to one or more corresponding communication protocols / standards. The terminal equipment 603 may be mobile or fixed. The terminal equipment 603 may be user equipment (UE), an access terminal, a user unit, a user station, a mobile site, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent, or a user device, etc. Examples of terminal equipment 603 include modems, mobile phones, smartphones, cordless phones, SIP (Session Initiation Protocol) phones, WLL (Wireless Local Loop) stations, PDAs (Personal Digital Assistants), handheld devices with wireless communication capabilities, computing devices or other processing devices connected to wireless modems, in-vehicle devices, wearable devices, IoT (Internet-of-Things) devices, devices used in 5G networks, devices used in public land mobile networks, etc.

[0060] 6 illustrates only one network device 601 and one terminal device 603 in the wireless communication system 600. However, in some cases, the wireless communication system 600 may include additional network devices 601 and / or terminal devices 603.

[0061] FIG. 7 is a schematic block diagram of a terminal device 703 (e.g., capable of implementing the methods described herein) according to one or more embodiments of the present disclosure. As shown, the terminal device 703 includes a processing unit 710 and a memory 720. The processing unit 710 may be configured to execute instructions corresponding to the methods described herein and / or other aspects of the above implementations. It should be understood that the processor 710 in the implementation of the present technology may be an integrated circuit chip and have signal processing capabilities. In the implementation process, the steps of the above-described methods may be implemented using instructions in the form of integrated logic circuits of hardware or software within the processor 710. The processor 710 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, and a discrete hardware component. The methods, steps, and logical block diagrams disclosed in the embodiments of the present technology may be implemented or performed. The general-purpose processor 710 may be a microprocessor, or alternatively, the processor 710 may be any conventional processor, etc. The steps of the methods disclosed in connection with the embodiments of the present technology may be performed or completed directly by a decoding processor implemented as hardware, or may be performed or completed using a combination of hardware and software modules in the decoding processor. The software modules may be located in conventional storage media such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in memory 720, and the processor 710 reads information in the memory 720 and completes the steps of the aforementioned methods in combination with the hardware.

[0062] It will be appreciated that memory 720 in an implementation of the present technology may be volatile, non-volatile, or both. Non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may be random access memory (RAM) used as an external cache. For illustrative purposes, and not by way of limitation, many forms of RAM may be used, including, for example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchlink dynamic random access memory (SLDRAM), and direct memory bus random access memory (DR RAM). Note that memory in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory. In some examples, memory may be a non-transitory computer-readable storage medium that stores instructions executable by a processor.

[0063] 8 is a schematic block diagram of an electronic device 800 in accordance with one or more embodiments of the present disclosure. The electronic device 800 may include one or more of a processing component 802, a memory 804, a power component 806, a multimedia component 808, an audio component 810, an input / output (I / O) interface 812, a sensor component 814, and a communication component 816.

[0064] The processing component 802 typically controls the overall operation of the electronic device, such as operations related to display, phone calls, data communications, camera operation, and recording operations. The processing component 802 may include one or more processors 820 for executing instructions to perform all or some of the steps of the methods described above. Additionally, the processing component 802 may include one or more modules for facilitating interaction between the processing component 802 and other components. For example, the processing component 802 may include a multimedia module for facilitating interaction between the multimedia component 808 and the processing component 802.

[0065] The memory 804 is configured to store various types of data to support the operation of the electronic device. Examples of this data include instructions for any applications or methods running on the electronic device, contact data, phone book data, messages, images, videos, etc. The memory 804 can be implemented by any type of volatile or non-volatile storage device, such as SRAM, EEPROM, EPROM, PROM, ROM, magnetic memory, flash memory, magnetic or optical disks, or a combination thereof.

[0066] The power component 806 provides power to each component of the electronic device and may include a power management system, one or more power sources, and other components associated with power generation, management, and distribution for the electronic device.

[0067] The multimedia component 808 may include a screen that provides an output interface between the electronic device and a user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a TP, the screen may be implemented as a touch screen for receiving input signals from a user. The TP may include one or more touch sensors for sensing touches, swipes, and gestures on the TP. The touch sensors can detect not only the boundaries of a touch or swipe motion but also the duration and pressure associated with the touch or swipe motion. In some embodiments, the multimedia component 808 may include a front camera and / or a rear camera. The front camera and / or the rear camera can receive external multimedia data when the electronic device is in an operating mode, such as a photo mode or a video mode. Each of the front camera and the rear camera may be a fixed optical lens system and may have focusing and optical zoom capabilities.

[0068] The audio component 810 is configured to output and / or input audio signals. For example, the audio component 810 may include a microphone (MIC) configured to receive external audio signals when the electronic device is in an operational mode such as a call mode, a recording mode, a voice recognition mode, etc. The received audio signals may be further stored in the memory 804 or transmitted via the communication component 816. In some embodiments, the audio component 810 may further include a speaker configured to output audio signals.

[0069] The I / O interface 812 provides an interface between the processing component 802 and a peripheral interface module, which may be a keyboard, a click wheel, buttons, etc. The buttons include, but are not limited to, a home button, volume buttons, a start button, a lock button, etc.

[0070] The sensor component 814 may include one or more sensors for providing status assessments of various aspects of the electronic device. For example, the sensor component 814 can detect the on / off state of the electronic device and the relative positioning of components such as the display or miniature keyboard of the electronic device. The sensor component 814 can also detect changes in the position of the electronic device or components of the electronic device, the presence or absence of contact between a user and the electronic device, the orientation or acceleration / deceleration of the electronic device, and changes in the temperature of the electronic device. The sensor component 814 may include a proximity sensor configured to detect the presence of a nearby object without physical contact. The sensor component 814 may also include an optical sensor, such as a complementary metal oxide semiconductor (CMOS) or charge coupled device (CCD) image sensor configured for use in imaging applications. In some embodiments, the sensor component 814 may include an acceleration sensor, a gyroscope sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.

[0071] The communication component 816 is configured to facilitate wired or wireless communication between the electronic device and other devices. The electronic device may access a communication standard-based wireless network, such as a Wi-Fi network, a second-generation (2G) or 3G network, or a combination thereof. In an exemplary embodiment, the communication component 816 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 816 may further include a near-field communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.

[0072] In an exemplary embodiment, the electronics 810 may be implemented by one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs, controllers, microcontrollers, microprocessors, or other electronic components and is configured to perform the methods described above.

[0073] The exemplary embodiment further provides a non-transitory computer-readable storage medium containing instructions, such as a memory 804 containing instructions, which may be executed by the processing component 802 of the electronic device 800 to implement the methods described herein. For example, the non-transitory computer-readable storage medium may be a ROM, a RAM, a Compact Disc Read Only Memory (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, etc.

[0074] 9 is a flowchart of a method according to one or more embodiments of the present disclosure. Method 900 may be implemented by a system or device (such as a system or device having an IntraTMP module described herein). Method 900 is for decoding by a decoding system. For example, method 900 may include (i) receiving a bitstream and (ii) parsing the bitstream to generate a video sequence based on the IntraTMP module. An example of an IntraTMP module is described in detail with reference to FIGS. 1-5C.

[0075] At block 901, the method 900 includes determining a search area for the current CU. At block 903, the method 900 then performs a template matching process on multiple predictor candidates within the search area. At block 905, the method 900 then selects a predictor block from the multiple predictor candidates. At block 907, the method 900 then uses data from the predictor block as reference data for the current CU.

[0076] In some embodiments, the search area includes a top-right region adjacent to the current CU and extending from the top-right corner of the current CU along an upper-right direction, and the template matching process is performed such that at least one predictor candidate among the plurality of predictor candidates includes a sample located within the current CTU of the current CU, and the coordinate location of the sample is located to the right of and above the current CU.

[0077] In some embodiments, the search area includes a lower-left region adjacent to the current CU and extending from the lower-left corner of the current CU along a lower-left direction, and the template matching process is performed such that at least one predictor candidate among the plurality of predictor candidates includes a sample located within the current CTU of the current CU, and the coordinate location of the sample is located to the left of and below the current CU.

[0078] In some embodiments, the search area is determined based on a search range width and a search range height, where the search range width is determined based on the width of the current CU and the search range height is determined based on the height of the current CU.

[0079] In some embodiments, the upper boundary of the search region is constrained to the vertical position of the top left corner of the current CU minus an offset corresponding to the search range height.

[0080] In some embodiments, the left boundary of the search area is constrained to the horizontal position of the top-left corner of the current CU minus an offset corresponding to the search range width.

[0081] In some embodiments, the lower boundary of the search region is constrained to the vertical position of the bottom right corner of the current CU plus an offset corresponding to the search range height.

[0082] In some embodiments, the right boundary of the search area is constrained to the horizontal position of the bottom right corner of the current CU plus an offset corresponding to the search range width.

[0083] In some embodiments, the upper boundary of the search area is limited to the top boundary of the IBC search area plus an offset corresponding to the height of the template. In some embodiments, the top boundary of the IBC search area is the top boundary of the upper CTU row. In some embodiments, the top boundary of the IBC search area is the top boundaries of the upper two CTU rows.

[0084] In some embodiments, the template search process can be performed according to a search order. In some embodiments, the search order starts with the top-left current CTU region and ends with the second left CTU region. In some embodiments, the search order starts with the top-left current CTU region, continues with the top-right current CTU region, the bottom-left current CTU region, the upper CTU row region, the first left CTU region, and ends with the second left CTU region. Further, examples of search orders have been described with reference to FIG. 4A.

[0085] In some embodiments, some steps of method 900, e.g., steps 901 through 907, may be implemented by an encoder. In such embodiments, additional steps may include (i) receiving a video sequence and (ii) encoding the video sequence with an IntraTMP module. An embodiment of the encoding process is described with reference to FIG. 1. [Other Considerations]

[0086] The descriptions of specific embodiments of examples of the disclosed technology above are not intended to be exhaustive or to limit the disclosed technology to the precise form described above. While specific examples of the disclosed technology are described above for illustrative purposes, those skilled in the art will recognize that various equivalent modifications are possible within the scope of the described technology. For example, while processes or blocks are presented in a given order, in alternative implementations, routines having steps may be performed in a different order or systems having blocks may be applied, and some processes or blocks may be deleted, moved, added, subdivided, combined, and / or modified to provide alternative implementations or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks may be shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Furthermore, specific numerical values ​​set forth herein are for illustrative purposes only, and alternative embodiments may employ different values ​​or ranges.

[0087] In specific embodiments, numerous specific details are described to provide a thorough understanding of the presently described technology. In other embodiments, the technology presented herein may be practiced without these specific details. In other instances, well-known features, such as specific functions or routines, have not been described in detail to avoid unnecessarily obscuring the present disclosure. References herein to an "embodiment / example," "one embodiment / example," and the like mean that the particular feature, structure, or characteristic described is included in at least one embodiment of the described technology. Thus, such phrases herein do not necessarily refer to the same embodiment / example. Neither are these descriptions necessarily mutually exclusive. Furthermore, particular features, structures, materials, or characteristics may be combined in any suitable manner in one or more embodiments / examples. It should be understood that the various embodiments shown in the figures are merely illustrative representations and are not necessarily drawn to scale.

[0088] For clarity, many details of well-known configurations or processes associated with communication systems and subsystems are not described herein, as they may unnecessarily obscure some important aspects of the disclosed technology. Moreover, while the following disclosure describes several embodiments of different aspects of the present disclosure, some other embodiments may have a different configuration or different components than those described in this section. Thus, the disclosed technology may have other embodiments that include additional elements or that do not include some of the elements described below.

[0089] Many implementations or aspects of the technology described herein may take the form of computer- or processor-executable instructions, including routines executed by a programmable computer or processor. As those skilled in the relevant art will appreciate, the described technology can be implemented in computer or processor systems other than those shown and described below. The technology described herein can be implemented in a special-purpose computer or data processor that is specially programmed, configured, or constructed to execute one or more of the computer-executable instructions described below. Accordingly, the terms "computer" and "processor," as used generally herein, refer to any data processor. Information processed by these computers and processors can be displayed on any suitable display medium. Instructions for performing computer- or processor-executable tasks can be stored or located on any suitable computer-readable medium, including hardware, firmware, or a combination of hardware and firmware. The instructions can be contained in any suitable memory device, including a flash drive and / or other suitable medium.

[0090] The term "and / or" in this specification describes only the associated relationship of related objects and indicates that three relationships may exist, for example, "A and / or B" can indicate three cases: A exists independently, both A and B exist, and B exists independently.

[0091] These and other modifications can be made to the disclosed technology based on the above specific embodiments. While the specific embodiments describe specific examples and intended best modes of the disclosed technology, no matter how detailed the above description may appear in text, the disclosed technology can be implemented in many ways. Details of the system may vary considerably in its specific implementation, yet still fall within the scope of the technology disclosed herein. As noted above, specific terms used in describing particular features or aspects of the disclosed technology should not be construed as suggesting that the terms have been redefined herein to be limited to the particular characteristics, features, or aspects of the disclosed technology with which they are associated. Therefore, the present invention is not limited except by the appended claims. Generally, terms used in the appended claims should not be construed as limiting the disclosed technology to the specific examples disclosed in the specification, unless these terms are explicitly defined in the above specific embodiment section.

[0092] As those skilled in the art can recognize, with reference to the examples described in the embodiments disclosed herein, the units and algorithm steps are realized by electronic hardware or a combination of computer software and electronic hardware. Whether a function is performed by hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods for each specific application to realize the described functions, but such realization should not be considered beyond the scope of the present application.

[0093] While certain aspects of the invention are presented in certain claim forms below, applicants claim protection for various aspects of the invention in any number of claim forms, and accordingly, applicants reserve the right to add additional claims after the filing of this application, either through this application or through a divisional application.

Claims

1. 1. A decoding method comprising: receiving a bitstream; analyzing the bitstream to generate a video sequence based on an intra-template matching prediction (IntraTMP) module; Decoding the bitstream comprises: determining a search region for a current coding unit (CU); performing a template matching process on a plurality of candidate predictors within the search space; identifying a predictor block from the plurality of predictor candidates; using data from the predictor block as reference data for the current CU.

2. The search area includes an upper right region, the upper right region being adjacent to the current CU and extending from an upper right corner of the current CU along an upper right direction. The decoding method of claim 1 .

3. At least one predictor candidate among the plurality of predictor candidates includes a sample located in a current coding tree unit (CTU) of the current CU, and a coordinate position of the sample is located to the right of the current CU and above the current CU. The decoding method according to claim 2.

4. The search area includes a lower left region, the lower left region being adjacent to the current CU and extending from a lower left corner of the current CU along a lower left direction. The decoding method of claim 1 .

5. At least one predictor candidate among the plurality of predictor candidates includes a sample located in a current coding tree unit (CTU) of the current CU, and a coordinate position of the sample is located to the left of the current CU and below the current CU.

5. The decoding method according to claim 4.

6. The search area is determined based on a search range width and a search range height. The decoding method of claim 1 .

7. The search range width is determined based on a width of the current CU, and the search range height is determined based on a height of the current CU.

7. The decoding method according to claim 6.

8. the upper boundary of the search area is limited to the vertical position of the top left corner of the current CU minus an offset corresponding to the search range height; 7. The decoding method according to claim 6.

9. The left boundary of the search area is limited to the horizontal position of the top left corner of the current CU minus an offset corresponding to the search range width.

7. The decoding method according to claim 6.

10. The lower boundary of the search area is limited to the vertical position of the bottom right corner of the current CU plus an offset corresponding to the search range height.

7. The decoding method according to claim 6.

11. The right boundary of the search area is limited to a position obtained by adding an offset corresponding to the search range width to the horizontal position of the bottom right corner of the current CU.

7. The decoding method according to claim 6.

12. the upper boundary of the search area is constrained to the top boundary of the intra block copy (IBC) search area plus an offset corresponding to the height of the template; The decoding method of claim 1 .

13. the top boundary of the IBC search area is the top boundary of an upper coding tree unit (CTU) row; The decoding method according to claim 12.

14. the top boundary of the IBC search area is the top boundary of the top two coding tree unit (CTU) rows; The decoding method according to claim 12.

15. The template matching process is performed according to a search order. The decoding method of claim 1 .

16. The search order starts from the top left current coding tree unit (CTU) region and ends with the second left CTU region.

16. The decoding method of claim 15.

17. The search order starts from the top left current coding tree unit (CTU) area, continues to the top right current CTU area, the bottom left current CTU area, the top CTU row area, the first left CTU area, and ends with the second left CTU area.

16. The decoding method of claim 15.

18. A decoding device, comprising: Memory and a processor, the processor comprising: Receive the bitstream, configured to analyze the bitstream to generate a video sequence based on an intra-template matching prediction (IntraTMP) module; generating the video sequence determining a search region for a current coding unit (CU); performing a template matching process on a plurality of candidate predictors within the search space; identifying a predictor block from the plurality of predictor candidates; using data from the predictor block as reference data for the current CU.

19. The search area includes an upper right region, the upper right region being adjacent to the current CU and extending from an upper right corner of the current CU along an upper right direction.

19. A decoding device according to claim 18.

20. At least one predictor candidate among the plurality of predictor candidates includes a sample located in a current coding tree unit (CTU) of the current CU, and a coordinate position of the sample is located to the right of the current CU and above the current CU.

20. The decoding device of claim 19.

21. The search area includes a lower left region, the lower left region being adjacent to the current CU and extending from a lower left corner of the current CU along a lower left direction.

19. A decoding device according to claim 18.

22. At least one predictor candidate among the plurality of predictor candidates includes a sample located in a current coding tree unit (CTU) of the current CU, and a coordinate position of the sample is located to the left of the current CU and below the current CU.

22. A decoding device according to claim 21.

23. The search area is determined based on a search range width and a search range height.

19. A decoding device according to claim 18.

24. The search range width is determined based on a width of the current CU, and the search range height is determined based on a height of the current CU.

24. A decoding device according to claim 23.

25. the upper boundary of the search area is limited to the vertical position of the top left corner of the current CU minus an offset corresponding to the search range height; 24. A decoding device according to claim 23.

26. The left boundary of the search area is limited to the horizontal position of the top left corner of the current CU minus an offset corresponding to the search range width.

24. A decoding device according to claim 23.

27. The lower boundary of the search area is limited to the vertical position of the bottom right corner of the current CU plus an offset corresponding to the search range height.

24. A decoding device according to claim 23.

28. The right boundary of the search area is limited to a position obtained by adding an offset corresponding to the search range width to the horizontal position of the bottom right corner of the current CU.

24. A decoding device according to claim 23.

29. the upper boundary of the search area is constrained to the top boundary of the intra block copy (IBC) search area plus an offset corresponding to the height of the template; 19. A decoding device according to claim 18.

30. the top boundary of the IBC search area is the top boundary of an upper coding tree unit (CTU) row; 30. A decoding device according to claim 29.

31. the top boundary of the IBC search area is the top boundary of the top two coding tree unit (CTU) rows; 30. A decoding device according to claim 29.

32. The template matching process is performed according to a search order.

19. A decoding device according to claim 18.

33. The search order starts from the top left current coding tree unit (CTU) region and ends with the second left CTU region.

33. A decoding device according to claim 32.

34. The search order starts from the top left current coding tree unit (CTU) area, continues to the top right current CTU area, the bottom left current CTU area, the top CTU row area, the first left CTU area, and ends with the second left CTU area.

33. A decoding device according to claim 32.

35. 1. A coding system comprising: a processor; and a memory configured to store instructions that, when executed by the processor, receiving a video sequence; configured to encode a current coding unit (CU) of the video sequence by an intra-template matching prediction (IntraTMP) module; The instructions further include: determining a search area for the current control unit; performing a template matching process on a plurality of candidate predictors within the search space; identifying a predictor block from the plurality of candidate predictors; An encoding system configured to use data from the predictor block as reference data for the current CU.