Intra template matching prediction system and method with improved search area
By using the improved IntraTMP method in video encoding, the search area of the intra prediction tool is enhanced, and the problem of low sample selection efficiency of intra prediction tools in the prior art is solved, thereby achieving improvement in video quality.
Patent Information
- Application Number
- CN202480008673.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-02-13
- Filing Date
- 2024-01-26
- Publication Date
- 2025-08-29
AI Technical Summary
When encoding the existing video compression method, the reconstructed sample selection efficiency of intra prediction tools is low, resulting in limited video quality improvement.
Using the improved IntraTMP method, the best candidate template is determined by searching for the adjacent areas of the current CU, using L-shaped or other shape templates to match the current CU, enhancing the search area for intra prediction, including the ‘top right’ and ‘bottom left’ adjacent areas, and using SAD or SATD minimization or hash comparison.
Improve the efficiency and quality of video encoding, and improve the encoding results through more effective intra prediction tool search, which is suitable for image and video encoding technology.
Smart Images

Figure CN120569972A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to image and video coding techniques, and more particularly, to a video coding scheme including an intra Template Matching Prediction (intraTMP) method. Background Art
[0002] Existing video compression methods, such as High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC), perform a block segmentation and quantization process during encoding. The HEVC and VVC standards specify a block-based hybrid spatial and temporal prediction coding scheme. During the encoding process, each picture is first divided into blocks called Coding Tree Units (CTUs). Each CTU in a picture can be divided into one or more Coding Units (CUs), which can be used for prediction and transformation. Various prediction tools can be used, including inter-frame prediction tools and intra-frame prediction tools. Inter-frame prediction tools can use any information from pictures that have been previously encoded into a bitstream. On the other hand, intra-frame prediction tools may only use reconstructed samples from the same picture. Therefore, it is crucial to efficiently determine which reconstructed samples to use. Therefore, it is advantageous to have improved systems and methods to address the aforementioned needs. Summary of the Invention
[0003] The present disclosure relates to systems and methods for improving the image quality of a video by using an improved IntraTMP method. IntraTMP predicts the current CU using a sample block of the current picture. In some embodiments, IntraTMP is selected as the prediction mode for CUs of size 64×64 or smaller.
[0004] During the decoding process, the decoder compares a predefined "L-shaped" (L-Shaped) or other shaped template of the reconstructed samples adjacent to the current CU with a template of the same shape of the candidate predictor within a predetermined search area, and determines the IntraTMP predictor block. In the case where the template is "L-shaped", the neighboring samples to the left and above the current CU are used as templates for the current CU. Similarly, the neighboring samples to the left and above the candidate predictor are used as candidate templates for each candidate predictor. In some embodiments, different template shapes can be used, in which case different template shapes are used as candidate templates for each candidate predictor. The IntraTMP predictor block is determined by finding the best candidate template that matches the current CU template. Reference Figure 2AAn embodiment of an "L-shaped" template is discussed in detail.
[0005] The present system provides an improved method for determining predetermined search areas. This is beneficial because some conventional methods cannot effectively search available reconstructed samples. The present system enables the IntraTMP process to search any area in the current CTU that can be used for intra prediction. Searching areas in the current CTU is particularly beneficial because candidate predictors that are spatially close to the current CU are most likely to be good predictors. More specifically, the present system enables searching in the "upper right" and / or "lower left" neighboring areas of the current CU.
[0006] The "upper right" neighboring area and the "lower left" neighboring area are within the current CTU. The "upper right" neighboring area is adjacent to the current CU and extends from the "upper right" corner of the current CU in the "upper right" direction. The "lower left" neighboring area is adjacent to the current CU and extends from the "lower left" corner of the current CU in the "lower left" direction. Figures 2B to 5C An embodiment of an improved search region including "upper right" and "lower left" neighboring regions is discussed in detail.
[0007] The present system and method enables including any CU preceding the current CU in the current CTU in the IntraTMP search area. The IntraTMP search area may be scanned in a scanning order. Figure 4A The embodiments of the scanning order are discussed in detail. Compared with conventional methods, the present system and method enhances the template search by adding neighboring regions to the current CU (e.g., the "lower left" and "upper right" regions within the current CTU). With the enhanced search regions provided by the present system, the IntraTMP process can be more efficient and provide better encoding results.
[0008] In some embodiments, the best candidate template can be determined by finding the template that minimizes the sum of absolute differences (SAD) or the sum of absolute transformed differences (SATD), or by comparing hash values between templates. The IntraTMP search area is traversed according to the search algorithm. In some embodiments, the search algorithm over the predetermined search area can be exhaustive (e.g., by scanning the templates in the search area with sample resolution shifts) or fast (e.g., by first performing a coarse search and then performing a local refinement search around the best match from the coarse search). The search algorithm can be executed in the same way by the encoder and decoder so that both the encoder and decoder are implicitly aware of the IntraTMP predictor without the need for signaling in the bitstream.
[0009] Although the following systems and methods are described with respect to video processing, in some embodiments, the systems and methods can be used for other image processing systems and methods. The present disclosure also provides a framework / network that can be trained by deep learning and / or artificial intelligence schemes.
[0010] In some embodiments, the methods discussed herein for a "picture" or "frame" can be applied to a portion or region of a "picture" or "frame." For example, the methods disclosed herein can be applied to a sub-picture, a region of a picture (e.g., a displayed object of interest), etc.
[0011] In some embodiments, the present method may be implemented by a tangible, non-transitory computer-readable medium having processor instructions stored thereon, which, when executed by one or more processors, causes the one or more processors to perform one or more aspects / features of the method described herein. In other embodiments, the present method may be implemented by a system comprising a computer processor and a non-transitory computer-readable storage medium storing instructions, which, when executed by the computer processor, causes the computer processor to perform one or more actions of the method described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] To more clearly describe the technical solutions in the embodiments of the present disclosure, the following briefly describes the accompanying drawings. The accompanying drawings only illustrate some aspects or embodiments of the present disclosure, and those skilled in the art can still deduce other drawings from these drawings without creative work.
[0013] Figure 1 A is a schematic diagram illustrating an encoding system with an IntraTMP module according to one or more embodiments of the present disclosure.
[0014] Figure 1B is a schematic diagram illustrating a decoding system with an IntraTMP module according to one or more embodiments of the present disclosure.
[0015] Figure 2A and 2B is a schematic diagram illustrating an IntraTMP process according to one or more embodiments of the present disclosure.
[0016] Figure 3 FIG. 2 is a schematic diagram illustrating an intra prediction process according to one or more embodiments of the present disclosure.
[0017] Figure 4A is a diagram illustrating a search order of an IntraTMP process in a search area according to one or more embodiments of the present disclosure.
[0018] Figure 4BFIG2 is a diagram illustrating an example of dividing a CTU into CUs according to one or more embodiments of the present disclosure.
[0019] Figure 4C is a schematic diagram illustrating slice partitioning according to one or more embodiments of the present disclosure.
[0020] Figure 4D is a schematic diagram illustrating tile partitioning according to one or more embodiments of the present disclosure.
[0021] Figure 4E FIG. 4 is a schematic diagram illustrating dividing a picture into wavefronts according to one or more embodiments of the present disclosure.
[0022] Figures 5A to 5C is a schematic diagram illustrating a search area for IntraTMP processing according to one or more embodiments of the present disclosure.
[0023] Figure 6 is a schematic diagram of a wireless communication system according to one or more embodiments of the present disclosure.
[0024] Figure 7 is a schematic block diagram of a terminal device according to one or more embodiments of the present disclosure.
[0025] Figure 8 is a schematic block diagram of an electronic device according to one or more embodiments of the present disclosure.
[0026] Figure 9 is a flow chart of a method according to one or more embodiments of the present disclosure. DETAILED DESCRIPTION
[0027] To more clearly describe the technical solutions in the embodiments of the present disclosure, the following briefly describes the accompanying drawings. The accompanying drawings only illustrate some aspects or embodiments of the present disclosure, and those skilled in the art can still deduce other drawings from these drawings without inventive effort.
[0028] Figure 1 A is a schematic diagram illustrating a system 100A having an IntraTMP module 101 (in an intra prediction module 102) according to one or more embodiments of the present disclosure. The IntraTMP module 101 is used to select an intra prediction region (e.g., Figure 2B) performs the template search process. In some embodiments, in addition to the IntraTMP module 101, the intra prediction module 102 may further include other intra prediction modules / tools, such as Intra Block Copy (IBC), Spatial Geometric Partitioning Mode (SGPM), Matrix-based Intra Prediction (MIP), and conventional angular intra prediction tools.
[0029] System 100A includes a video sequence 10 as input to an intra prediction module 102 and / or an inter prediction module 103. The output of the intra prediction module 102 and / or the inter prediction module 103 may be subtracted from a current CU of the video sequence 10 to generate a residual R. The residual R may then be directed to a transform module 104. The output of the transform module 104 may be quantized by a quantization module 105. The output of the quantization module 105 may then be directed to an inverse quantization module 106 and an inverse transform module 107.
[0030] like Figure 1As shown in FIG. 1A , the output of the intra prediction module 102 and / or the inter prediction module 103 may be added to the output of the inverse transform module 107 at adder 108 . The result of the addition may then be directed to an in-loop filter 109 . The output of the in-loop filter 109 may then be directed to a decoded picture buffer 110 for further processing by the inter prediction module 103 . System 100A utilizes 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 is not required to 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 supplementally reduces artifacts that may result from quantization of transform coefficients within a block. The ALF can enhance the adaptive filter of the reconstructed signal by using a Wiener-based adaptive filter to reduce the mean square error (MSE) between the original and reconstructed samples. The system 100A also includes an entropy coding module 111, which is used to perform data compression before generating the bitstream 11.
[0031] Figure 1B is a diagram showing a system having an IntraTMP module (eg, Figure 1 A schematic diagram of a decoding system 100B including the IntraTMP module 101 discussed in FIG. 1A. The system 100B includes an entropy decoding module 121, an inverse quantization module 122, and an inverse transform module 123 for processing the bitstream 12. The decoding system 100B also includes an inter-frame prediction module 124 and an intra-frame prediction module 125 (e.g., corresponding to the intra-frame prediction module 102 on the encoding side). The inter-frame prediction module 124 and the intra-frame prediction module 125 are used to process the bitstream 12 and generate the decoded video 13. Figure 1B As shown, decoding system 100B also includes an image buffer 126 and a loop filter 127 to facilitate the aforementioned decoding tasks.
[0032] like Figure 1BAs shown, at adder 128, the output of intra prediction module 125 and / or inter prediction module 124 may be added to the output of inverse transform module 123. The result of the addition may then be directed to loop filter 127, thereby generating decoded video 13.
[0033] Figure 2A FIG. 2 is a schematic diagram showing the shape of a template 201 of a CU for IntraTMP processing according to one or more embodiments of the present disclosure. Figure 2A As shown, the template 201 includes a first region 203 located above the CU and a second region 205 located on the left side of the CU. The first region 203 and the second region 205 form an "L-shape". In some embodiments, the template 201 can be other shapes (for example, including any one of the first region 203 and the second region 205). The template 201 is used to select a plurality of candidate predictors (for example, as shown in FIG. 1 ) from a search area (for example, a current CTU, a reconstruction area, etc.). Figure 2A The best candidate template is searched among the candidate predictors A, B and C shown in FIG. Figure 2A In the example of , candidate template 206 is determined to be the best candidate template, and thus the corresponding candidate predictor B is selected as the IntraTMP predictor. Then, the IntraTMP process uses the data (eg, pixels) of candidate predictor B as reference data for the CU.
[0034] In some embodiments, the best candidate template can be determined by finding a template that minimizes the SAD or SATD, or by comparing hash values between templates. In some embodiments, a number of search algorithms can be used. In some embodiments, the search algorithm over a predetermined search area can be exhaustive (e.g., by scanning the template in the search area with sample resolution shifting) or fast (e.g., by first performing a coarse search and then performing a local refinement search around the best match from the coarse search). The search algorithm can be executed in the same way by the encoder and decoder so that both the encoder and decoder are implicitly aware of the IntraTMP predictor without the need for signaling in the bitstream.
[0035] Figure 2B FIG. 2 is a diagram illustrating a current IntraTMP search area 207 of an IntraTMP process according to one or more embodiments of the present disclosure. Figure 2B As shown, the search area 207 is used to perform candidate search for CU (for example, refer to the above Figure 2A30). The search area 207 includes a plurality of areas, including CTU areas 21-24, sub-CTU areas 25-26, an "upper right" neighboring area 28, and a "lower left" neighboring area 29. The "upper right" neighboring area 28 is located at the upper right corner of the current CU within the same CTU 30 and may have already been reconstructed. The "lower left" neighboring area 28 is located at the lower left corner of the current CU within the same CTU 30 and may have already been reconstructed. With these arrangements, the present system enables the IntraTMP process to search for candidates within an improved search area (i.e., the current IntraTMP search area 207) that is larger than in conventional methods.
[0036] Figure 3 FIG is a schematic diagram illustrating an intra-frame prediction process according to one or more embodiments of the present disclosure. In an embodiment, an exemplary search area for an IBC tool is shown. As shown in FIG. Figure 3 In the example of , the IBC process may search for the current CTU row 307 and the upper CTU row 305 that have already been decoded. In the illustrated embodiment, for example, the predictor block 309 is indicated in the upper CTU row 305. The predictor block 309 may be indicated by a block vector 311 that 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 yet been decoded, then these block vectors are not "legal". For example, Figure 3 The illegal block vector 313 shown in points to a region that follows the current CU 301 in decoding order.
[0037] In some embodiments, a block vector 311 may be signaled to indicate which block within the same picture will be copied to be used as a predictor for the current block. Signaling of the block vector 311 may be performed by signaling a block vector difference (BVD) in the bitstream, such that the block vector 311 may be determined by adding the BVD to the block vector predictor. In some embodiments, if the block vector of the previous CU exactly matches the current block vector, the block vector may be signaled using a merge flag.
[0038] As shown, the block vector 311 points to a location within the same picture to indicate a sample block of the same size as the current CU 301, which is used as the predictor block 309 for the current CU 301. In some embodiments, some restrictions may be applied to the block vector 311. For example, the block vector 311 must point to a sample block in the current picture that can be used for intra prediction. As another example, the block vector may be restricted 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, when the CTU size is 256×256, the IBC search area may be the current CTU row and the CTU row above, or when the CTU size is 128×128 or smaller, the IBC search area may be the current CTU row and the two CTU rows above. In some embodiments, the system may perform IntraTMP processing while restricting the IntraTMP search area to the search area of existing tools (e.g., the IBC tool) for alignment cache requirements. Figure 4A Various embodiments of search regions for IntraTMP processing are discussed in FIG. 5D .
[0039] Figure 4A 4 is a diagram illustrating a search order for IntraTMP processing in a search area 400 according to one or more embodiments of the present disclosure. The search area 400 is determined by applying a maximum length to the IntraTMP block vector, such as Figure 4A As shown, the maximum length is the vector from the upper left corner of the current CU to the upper left corner of the IntraTMP predictor. The maximum length of the IntraTMP block vector is (searchRangeWidth, searchRangeHeight), that is, the maximum length in the horizontal direction is searchRangeWidth (search range width), and the maximum length in the vertical direction is searchRangeHeight (search range height). The values of searchRangeWidth and searchRangeHeight are determined by the width BlkW and height BlkH of the current CU. For example, in one embodiment, it can be determined by the following equations (A) and (B).
[0040] searchRangeWidth=max(a*BlkW,minSearchRange)(A)
[0041] searchRangeHeight=max(a*BlkH, minSearchRange)(B)
[0042] In equations (A) and (B), "max(x, y)" returns the maximum value between "x" and "y".
[0043] In some embodiments, "a" may be set to "5" and "minSearchRange" may be set to "128" in Equations A and B. In other embodiments, different values of "a" and "minSearchRange" may be used.
[0044] Let the upper left corner of the current CU be represented by the coordinate position (currCuX, currCuY) in a coordinate system where (0, 0) refers to the upper left corner of the picture and increasing horizontal and vertical coordinate positions indicate directions to the right and downward, respectively. The parameter "currCuX" refers to the horizontal position and currCuY refers to the vertical position. Then, 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 can theoretically be located at (currCuX-searchRangeWidth, currCuY+BlkH-1+searchRangeHeight).
[0045] exist Figure 4A In the example of , the lower left corner is limited by the bottom boundary of the left CTU. The lower right corner of the search area 400 can theoretically be located at (currCuX+BlkW-1+searchRangeWidth, currCuY+BlkH-1+searchRangeHeight). Since the IntraTMP block vector pointing to both the right and the bottom will point to the picture area that follows the current CU in the coding order, it is not possible to have an IntraTMP block vector pointing to both the right and the bottom. Therefore, the lower right boundary of the search area 400 is complicated because the lower right boundary depends on the availability of samples. Figure 4A and Figures 5A to 5C Describe the shapes of the search areas under different conditions in more detail.
[0046] The search area 400 is theoretically rectangular before being restricted due to sample availability. In the present 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 will be appreciated that equivalent search areas can be defined based 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 vector must be completely contained within the search area, then a smaller but equivalent search area is defined with the top left corner, top right corner, bottom left corner, and bottom right corner located at (currCuX - searchRangeWidth, currCuY - searchRangeHeight), (currCuX + searchRangeWidth, currCuY - searchRangeHeight), (currCuX - searchRangeWidth, currCuY + searchRangeHeight), and (currCuX + searchRangeWidth, currCuY + searchRangeHeight), respectively.
[0047] In another example, if the sample block corresponding to any IntraTMP predictor and its template must be completely contained within the search area, a larger but equivalent search area is defined with its upper left corner, upper right corner, lower left corner, and lower right corner 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 dimensions of the template shape, respectively. It will be understood that changes in the definition of the search area do not affect the operation of the IntraTMP search algorithm described in the present disclosure.
[0048] The search area 400 is further limited based on the theoretical rectangle due to the availability of samples. The availability of samples depends on two factors: first, whether the sample has been reconstructed, and second, whether the sample belongs to a logical unit that the current CU is allowed to use.
[0049] To determine whether a sample has been reconstructed, we consider the partitioning structure of VVC. Each picture is divided into tiles of square CTUs, which are processed in raster scan order. When an intra prediction method is performed on the current CU in the current CTU, samples belonging to other CTUs that are located before the current CTU in the raster scan order can be reconstructed and used for prediction. Samples belonging to CTUs that are located after the current CTU in the raster scan order are not reconstructed and are therefore not available.
[0050] Each CTU itself is divided into CUs through a hierarchy consisting of quadtree, binary, and ternary tree partitions. Examples of this partitioning are shown in Figure 4B Shown in. Figure 4B 1 is a 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. For a single level of partitioning, the partitions are scanned in the following order:
[0051] [1] From left to right, it shows the case of horizontal binary tree partitioning or horizontal ternary tree partitioning.
[0052] [2] From top to bottom, this is the case of vertical binary tree partitioning or vertical ternary tree partitioning.
[0053] [3] The upper left, upper right, lower left, and lower right are quadtree segmentation cases.
[0054] If a partition contains further hierarchical splits, all CUs within the partition are scanned before proceeding to the CUs in the next partition. Figure 4B An example of dividing a CTU into 15 CUs is shown, numbered from 1 to 15 to identify their scanning order. When an intra prediction method is performed on the current CU in the current CTU, samples in other CUs in the current CTU that precede the current CU in the partition scanning order of the current CTU are reconstructed and can be used for prediction. Samples in the current CU or samples in CUs that follow the current CU in the partition scanning order of the current CTU are not reconstructed and are therefore unusable.
[0055] According to the above definition, samples in the CTU that precedes the current CTU in raster scan order are considered reconstructed. However, these samples are not necessarily available for intra prediction. In order to be considered available for prediction, these samples must also belong to the logical unit that the current CU is allowed to use. A picture can be divided into sub-picture partitions, each of which contains an integer number of CTUs. Figure 4C An example of a picture being divided into multiple slices is shown. Samples in slices other than the slice containing the current CU cannot be used for intra prediction. This restriction allows the slices to be decoded independently.
[0056] Figure 4D is a schematic diagram illustrating tile partitioning according to one or more embodiments of the present disclosure. Figure 4D This example shows how to divide a picture into multiple tiles. Samples in tiles other than the tile containing the current CU cannot be used for intra prediction. This restriction allows tiles to be decoded independently.
[0057] Figure 4E An example of dividing a picture into wavefronts is shown. Each wavefront corresponds to a row of CTUs, and the dependencies between CTU rows are reduced so that each wavefront can be decoded in parallel in an interleaved manner. Figure 7 In the example, the wavefront is processed with a delay of 1 CTU. CTU is referred to by its position in the grid, that is, CTU i,j represents the CTU at row i and column j. Then, when wavefront parallel processing is enabled by setting the SPS syntax element “sps_entropy_coding_sync_enabled_flag”, if the CTU a,b The column position is greater than the current CTU i,j Column position (i.e., if b>j), then CTU a,b Not available.
[0058] How intra prediction methods handle the situation where the reference samples needed for prediction are unavailable varies from method to method. When such samples are unavailable, the method can simply be disabled. Alternatively, some extrapolation of the unavailable samples can be performed, such as through boundary extension.
[0059] Refer again Figure 4AIn the illustrated embodiment, the search area 400 is shaded and includes region R1 (e.g., upper CTU row region), region R2 (e.g., first left CTU region), region R3 (e.g., second left CTU region), region R4 (e.g., upper left current CTU region), region R5 (e.g., upper right current CTU region, including upper right adjacent region 405 indicated by double hashing), and region R6 (e.g., lower left current CTU region, including lower left adjacent region 407 indicated by double hashing). Figure 4A The upper right region 405 and the lower left region 407 are further described. However, specific regions within the upper right region 405 and the lower left region 407 included in the search region 400 depend on the CTU partition of the current CTU 403.
[0060] exist Figure 4A In the example of , the upper right region 405 extends from the upper right corner of the current CU 401 to the upper right boundary of the current CTU 403. According to the coordinate system introduced above with reference to "searchRangeWidth" and "searchRangeHeight", the upper left corner of the current CTU 403 is represented by the coordinate position (currCtuX, currCtuY), and the CTU width and height are marked as CtuW and CtuH, respectively. Then, in this coordinate system, the upper left corner of the upper right region 405 is located at (currCuX+BlkW, currCtuY). The upper right corner of the upper right region 405 is located at (currCtuX+CtuW-1, currCtuY). The lower left corner of the upper right region 405 is located at (currCuX+BlkW, currCuY-1). The lower right corner of the upper right region 405 is located at (currCuX+CtuW-1, currCuY-1).
[0061] Similarly, in Figure 4A In the example shown in FIG, 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).
[0062] In some embodiments, the upper right region 405 is included in the IntraTMP search region. Thus, the IntraTMP process searches for the best candidate template among the plurality of candidate templates such that, for one of the candidate templates, some portion of the sample block of the associated candidate predictor is included in the upper right region 405. In other words, at least one sample from the associated candidate predictor has a coordinate position (X, Y), where (X, Y) is within the current CTU, X is greater than or equal to currCuX+BlkW, and Y is less than or equal to currCuY-1.
[0063] In some embodiments, the lower left region 407 is included in the IntraTMP search area. Thus, the IntraTMP process searches for the best candidate template among the plurality of candidate templates such that, for one of the candidate templates, some portion of the sample block of the associated candidate predictor is included in the lower left region 407. In other words, at least one sample from the associated candidate predictor has a coordinate position (X, Y), where (X, Y) is within the current CTU, X is less than or equal to currCuX-1, and Y is greater than or equal to currCuY+BlkH.
[0064] exist Figure 4A In the example shown in FIG, the upper right region 405 and the lower left region 407 extend to the boundaries of the current CTU 403 because the CTU boundaries are more stringent than the restrictions imposed by “searchRangeWidth” and “searchRangeHeight”. Figure 5A and 5B Examples are shown in which the limits imposed by "searchRangeWidth" and "searchRangeHeight" constrain the search region 400 beyond CTU boundaries.
[0065] In some embodiments, the search order may be to search region R4 first, 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 then R3. In some embodiments, the search order may be any suitable combination of regions R1 to R6.
[0066] In some embodiments, the boundaries of regions R1 to R6 can be adjusted. For example, in some cases, regions R4 and R5 can be combined into one region. In some embodiments, regions R4 and R6 can be combined into one region. In some embodiments, region R4 can be expanded to include the left portion of region R5, and then region R5 can only include the upper right adjacent region 405 (double oblique lines). In some embodiments, region R4 can be expanded to include the upper portion of region R6, and then region R6 can only include the lower left adjacent region 407 (double oblique lines).
[0067] Figures 5A to 5C FIG is a schematic diagram illustrating a search area for IntraTMP processing according to one or more embodiments of the present disclosure. Figure 5A , the example search region 500A (for the current CU 501) is configured to not exceed the maximum search range defined by "searchRangeWidth" and "searchRangeHeight" as indicated. In some embodiments, the maximum search range is such that the upper boundary of the search region 500A is lower than the top boundary of the current CTU 503. Likewise, in the coordinate system introduced in this disclosure, if (CurrCuY - searchRangeHeight) is greater than currCtuY, then the upper boundary of the search region 500A is located at (CurrCuY - searchRangeHeight). Likewise, the upper boundary of the search region 500A is equal to max(currCtuY, (CurrCuY - searchRangeHeight)).
[0068] In some embodiments, reference Figure 5A , the left edge of the search region 500A is to the right of the left edge of the current CTU 503. Similarly, if (CurrCuX - searchRangeWidth) is greater than currCtuX, the left edge of the search region 500A is located at (CurrCuX - searchRangeWidth). Similarly, the left edge of the search region 500A is equal to max(currCtuX, (CurrCuX - searchRangeWidth)).
[0069] exist Figure 5B, the example search area 500B is configured to not exceed the maximum search range defined by "searchRangeWidth" and "searchRangeHeight" as indicated. In some embodiments, the maximum search range causes the lower boundary of the search area 500B to be located above the bottom boundary 505 of the current CTU 503 and the left CTU 504. Similarly, if (currCuY+BlkH-1+searchRangeHeight) is less than (currCtuY+CtuH-1), then the lower boundary of the search area 500B is located at (currCuY+BlkH-1+searchRangeHeight). Similarly, the lower boundary of the search area 500B is equal to min((currCtuY+CtuH-1), (currCuY+BlkH-1+searchRangeHeight)). In the foregoing description, "min(x, y)" returns the minimum value between "x" and "y".
[0070] In some embodiments, reference Figure 5B , the maximum search range causes the right boundary of the search region 500B to be to the left of the right boundary of the current CTU 503. Similarly, if (currCuX+BlkW-1+searchRangeWidth) is less than (currCtuX+CtuW-1), the right boundary of the search region 500B is located at (currCuX+BlkW-1+searchRangeWidth). Similarly, the right boundary of the search region 500B is equal to min((currCtuX+CtuW-1), (currCuX+BlkW-1+searchRangeWidth)).
[0071] In some embodiments, reference Figure 4A 、 Figure 5A and Figure 5BThus, the upper right region 405 is restricted to a block of samples with its upper left corner at (currCuX+BlkW, max(currCtuY, currCuY-searchRangeHeight)), its upper right corner at (min((currCtuX+CtuW-1), (currCuX+BlkW-1+searchRangeWidth)), max(currCtuY, currCuY-searchRangeHeight)), its lower left corner at (currCuX+BlkW, currCuY-1), and its lower right corner at (min((currCtuX+CtuW-1), (currCuX+BlkW-1+searchRangeWidth)), currCuY-1). The lower left region 407 is restricted to a block of samples with its upper left corner at (max(currCtuX, (currCuX - searchRangeWidth)), currCuY + BlkH), its upper right corner at (currCuX - 1, currCuY + BlkH), its lower left corner at (max(currCtuX, (currCuX - searchRangeWidth)), min((currCtuY + CtuH - 1), (currCuY + BlkH - 1 + searchRangeHeight))), and its lower right corner at (currCuX - 1, min((currCtuY + CtuH - 1), (currCuY + BlkH - 1 + searchRangeHeight))).
[0072] exist Figure 5C In the example search area 500C, the search area is further restricted to align with the search area available to the IBC prediction tool. In some embodiments, if the top boundary of the IBC search area is lower than the maximum search range defined by "searchRangeHeight", the top boundary of the search area 500C is set to the top boundary of the IBC search area plus "templateHeight". In some embodiments, the current CTU has a size of 256x256 and the IBC search area is vertically restricted to the top boundary of the CTU row above. In some embodiments, the current CTU has a size of 128x128 and the IBC search area is vertically restricted to the top boundaries of the two CTU rows above.
[0073] Figure 6 is a schematic diagram of a wireless communication system 600 according to one or more embodiments of the present disclosure. The wireless communication system 600 may implement the framework discussed herein. Figure 6As shown, wireless communication system 600 may include a network device (or base station) 601. Examples of network device 601 include a base transceiver station (BTS), a base station (NodeB, 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 embodiments, network device 601 may include a relay station, an access point, an in-vehicle device, a wearable device, etc. The network device 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), a network based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 (e.g., a Wi-Fi network), an Internet of Things (IoT) network, a device-to-device (D2D) network, a next-generation network (e.g., a 5G network), a future evolved Public Land Mobile Network (PLMN), etc. A 5G system or network may be referred to as a New Radio (NR) system or network.
[0074] exist Figure 6In the embodiment, the wireless communication system 600 also includes a terminal device 603. The terminal device 603 can be an end-user device for facilitating wireless communication. The terminal device 603 can be used to wirelessly connect to the network device 601 (for example, via a wireless channel 605) according to one or more corresponding communication protocols / standards. The terminal device 603 can be mobile or fixed. The terminal device 603 can be a user equipment (UE), an access terminal, a subscriber unit, a subscriber station, a mobile station, 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. Examples of the terminal device 603 include a modem, a cellular phone, a smart phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device with wireless communication capabilities, a computing device or other processing device connected to a wireless modem, an in-vehicle device, a wearable device, an IoT device, a device used in a 5G network, a device used in a PLMN, etc.
[0075] For illustrative purposes, Figure 6 Only one network device 601 and one terminal device 603 are shown 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.
[0076] Figure 77 is a schematic block diagram of a terminal device 703 (e.g., a terminal device that can implement the methods discussed 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 can be configured to implement instructions corresponding to the methods discussed herein and / or other aspects of the above-mentioned implementations. It should be understood that the processor 710 in the implementation of this technology can be an integrated circuit chip and have signal processing capabilities. During implementation, the steps in the aforementioned method can be implemented by using hardware integrated logic circuits in the processor 710 or instructions in software form. The processor 710 can 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 devices, discrete gate or transistor logic devices, and discrete hardware components. The methods, steps, and logic block diagrams disclosed in the embodiments of the present technology can be implemented or executed. The general-purpose processor 710 can be a microprocessor, or the processor 710 can alternatively be any conventional processor, etc. The steps in the method disclosed in conjunction with the embodiments of the present technology can be directly executed or completed by a decoding processor implemented as hardware, or by using a combination of hardware and software modules in the decoding processor. The software module can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the memory 720, and the processor 710 reads the information in the memory 720 and completes the steps in the aforementioned method in conjunction with its hardware.
[0077] It is understood that the memory 720 in the implementation of the present technology can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. The non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM) and is used as an external cache. By way of example and not limitation, many forms of RAM can be used, such as 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), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DR RAM). It should be noted that the memory of 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 embodiments, the memory can be a non-transitory computer-readable storage medium that stores instructions that can be executed by a processor.
[0078] Figure 8 8 is a schematic block diagram of an electronic device 800 according to one or more embodiments of the present disclosure. The electronic device 800 may include one or more of the following components: 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.
[0079] The processing component 802 generally controls the overall operation of the electronic device, such as operations associated with display, phone calls, data communications, camera operation, and recording operations. The processing component 802 may include one or more processors 820 that execute instructions to perform all or part of the steps in the above-described method. In addition, the processing component 802 may include one or more modules that facilitate interaction between the processing component 802 and other components. For example, the processing component 802 may include a multimedia module to facilitate interaction between the multimedia component 808 and the processing component 802.
[0080] The memory 804 is used to store various types of data to support the operation of the electronic device. Examples of such data include instructions for any application or method operating on the electronic device, contact data, phone book data, messages, pictures, videos, etc. The memory 804 can be implemented by any type of volatile or non-volatile memory device, or a combination thereof, such as SRAM, EEPROM, EPROM, PROM, ROM, magnetic storage, flash memory, and magnetic or optical disks.
[0081] The power supply component 806 provides power to various components of the electronic device. The power supply component 806 may include a power management system, one or more power supplies, and other components associated with power generation, management, and distribution for the electronic device.
[0082] The multimedia component 808 may include a screen that provides an output interface between the electronic device and the user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen can include a TP, the screen can be implemented as a touch screen to receive input signals from the user. The TP may include one or more touch sensors to sense touches, swipes, and gestures on the TP. The touch sensor can not only sense the boundaries of a touch or swipe action, but can also detect the duration and pressure associated with the touch or swipe action. In some embodiments, the multimedia component 808 may include a front camera and / or a rear camera. When the electronic device is in an operating mode such as a photography mode or a video mode, the front camera and / or the rear camera can receive external multimedia data. Each front camera and rear camera can be a fixed optical lens system, or have focusing and optical zoom capabilities.
[0083] The audio component 810 is used to output and / or input audio signals. For example, the audio component 810 may include a microphone (MIC), and the MIC is used to receive external audio signals when the electronic device is in an operating mode such as a call mode, a recording mode, and a voice recognition mode. The received audio signal may also be stored in the memory 804 or sent via the communication component 816. In some embodiments, the audio component 810 may also include a speaker for outputting audio signals.
[0084] The I / O interface 812 provides an interface between the processing component 802 and peripheral interface modules, such as a keyboard, a click wheel, buttons, etc. The buttons may include, but are not limited to, a home button, a volume button, a start button, and a lock button.
[0085] The sensor assembly 814 may include one or more sensors for providing status assessment for the electronic device in various aspects. For example, the sensor assembly 814 can detect the on / off state of the electronic device and the relative positioning of components (such as the display and keypad of the electronic device), and the sensor assembly 814 can further detect changes in the position of the electronic device or components of the electronic device, the presence or absence of contact between the user and the electronic device, the orientation or acceleration / deceleration of the electronic device, and the temperature of the electronic device. The sensor assembly 814 may include a proximity sensor for detecting the presence of nearby objects without any physical contact. The sensor assembly 814 may also include a light sensor configured for imaging applications, such as a complementary metal oxide semiconductor (CMOS) or a charge coupled device (CCD) image sensor. In some embodiments, the sensor assembly 814 may also include an accelerometer, a gyroscope sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.
[0086] The communication component 816 is used to promote wired or wireless communication between the electronic device and other devices. The electronic device can access a wireless network based on a communication standard, such as a WIFI network, a second generation (2G) or third generation (3G) network, or a combination thereof. In an exemplary embodiment, the communication component 816 receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 816 may also include a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
[0087] In an exemplary embodiment, the electronic device 810 can 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 used to perform the above methods.
[0088] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 804 including instructions, wherein the instructions can be executed by the processing component 802 of the electronic device 800 to implement the methods discussed herein. For example, the non-transitory computer-readable storage medium can be a ROM, RAM, a compact disc read-only memory (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, etc.
[0089] Figure 9 900 is a flow chart of a method according to one or more embodiments of the present disclosure. The method 900 may be implemented by a system or device (such as the system or device with the IntraTMP module discussed herein). The method 900 is used for decoding by a decoding system. For example, the method 900 may include: (i) receiving a bitstream and (ii) parsing the bitstream based on the IntraTMP module to generate a video sequence. Figures 1 to 5C An embodiment of the IntraTMP module is discussed in detail.
[0090] At block 901, method 900 includes determining a search area for the current CU. At block 903, method 900 proceeds to perform a template matching process on a plurality of predictor candidates in the search area. At block 905, method 900 then selects a predictor block from the plurality of predictor candidates. At block 907, method 900 proceeds to use data from the predictor block as reference data for the current CU.
[0091] In some embodiments, the search area includes an upper right area adjacent to the current CU and extending from an upper right corner of the current CU in an upper right direction. The template matching process is performed such that at least one predictor candidate among the plurality of predictor candidates includes a sample located within a current CTU of the current CU, the coordinate position of the sample being located to the right of the current CU and above the current CU.
[0092] In some embodiments, the search area includes a lower left area adjacent to the current CU and extending from a lower left corner of the current CU in a lower left direction. The template matching process is performed so that at least one predictor candidate among the plurality of predictor candidates includes a sample located within a current CTU of the current CU, and the coordinate position of the sample is located to the left of the current CU and below the current CU.
[0093] In some embodiments, the search area is determined based on a search range width and a search range height, wherein 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.
[0094] In some embodiments, the upper boundary of the search area is constrained to be the vertical position of the upper left corner of the current CU minus an offset corresponding to the height of the search range.
[0095] In some embodiments, the left boundary of the search area is constrained to be the horizontal position of the upper left corner of the current CU minus an offset corresponding to the search range width.
[0096] In some embodiments, the lower boundary of the search area is constrained to the vertical position of the lower right corner of the current CU plus an offset corresponding to the height of the search range.
[0097] In some embodiments, the right boundary of the search area is constrained to be the horizontal position of the lower right corner of the current CU plus an offset corresponding to the width of the search range.
[0098] In some embodiments, the upper boundary of the search area is constrained to be the top boundary of the IBC search area plus an offset corresponding to the template height. 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 boundary of two upper CTU rows.
[0099] In some embodiments, the template search process may be performed in a search order. In some embodiments, the search order may start at the upper left current CTU region and end at the second left CTU region. In some embodiments, the search order starts at the upper left current CTU region, continues to the upper right current CTU region, the lower left current CTU region, the upper CTU row region, the first left CTU region, and ends at the second left CTU region. Also refer to Figure 4A Embodiments of search orders are discussed.
[0100] In some embodiments, some steps of method 900 may be implemented by an encoder, such as steps 901 to 907. In such embodiments, additional steps may include (i) receiving a video sequence and (ii) encoding the video sequence via an IntraTMP module. Figure 1 An embodiment of the encoding process is discussed. Other considerations
[0101] The above-mentioned specific embodiments of the examples of the disclosed technology are not intended to be exhaustive, nor are they intended to limit the disclosed technology to the precise form described above. Although specific examples of the disclosed technology are described above for illustrative purposes, those skilled in the art will recognize that various equivalent modifications can be made within the scope of the technology. For example, although the processes or blocks are presented in a given order, alternative implementations can perform routines with steps in a different order, or apply systems with blocks, and certain processes or blocks can be deleted, moved, added, subdivided, combined and / or modified to provide alternative implementations or sub-combinations. Each of these processes or blocks can be implemented in a variety of different ways. In addition, although processes or blocks are sometimes shown as being executed serially, these processes or blocks can be executed or implemented in parallel, or can be executed at different times. In addition, any specific numbers mentioned herein are examples only; alternative implementations can adopt different values or ranges.
[0102] In the detailed description, many specific details are described to provide a thorough understanding of the technology currently described. In other embodiments, the technology described herein can be practiced without these specific details. In other cases, in order to avoid unnecessarily obscuring the present disclosure, well-known features, such as specific functions or routines, are not described in detail. References in this specification to "an embodiment / example," "one embodiment / example," etc. mean that the specific features, structures, materials, or characteristics described are included in at least one embodiment of the technology described. Therefore, the appearance of such phrases in this specification does not necessarily refer to the same embodiment / example. On the other hand, these references are not necessarily mutually exclusive. In addition, specific features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments / examples. It should be understood that the various embodiments shown in the drawings are merely illustrative representations and are not necessarily drawn to scale.
[0103] For the sake of clarity, this document does not describe many details describing well-known structures or processes associated with communication systems and subsystems, as such details may unnecessarily obscure important aspects of the disclosed technology. Furthermore, although the following disclosure describes several embodiments of various aspects of the present disclosure, other embodiments may have different configurations or components than those described in this section. Accordingly, the disclosed technology may have other embodiments that include additional elements or that do not include some of the elements described below.
[0104] Many implementations or aspects of the technology described herein can take the form of computer or processor executable instructions, including routines performed by a programmable computer or processor. Those skilled in the relevant art will understand that the described technology can be practiced on a computer or processor system 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 perform one or more of the computer-executable instructions described below. Therefore, the terms "computer" and "processor" generally used herein refer to any data processor. The information processed by these computers and processors can be presented 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. Instructions can be contained in any suitable memory device, including, for example, a flash drive and / or other suitable media.
[0105] The term "and / or" in this specification is only used to describe the association relationship between related objects, and indicates that there may be three relationships. For example, "A and / or B" can represent the following three situations: A exists alone, both A and B exist, and B exists alone.
[0106] These and other changes can be made to the disclosed technology in light of the above detailed description. Although the detailed description describes certain examples of the disclosed technology and the expected best mode, no matter how detailed the above description appears in text, the disclosed technology can be practiced in a variety of ways. Although the details of the system may vary significantly in its specific implementation, they still fall within the scope of the technology disclosed herein. As described above, the use of specific terms when describing certain features or aspects of the disclosed technology should not be taken to imply that the term is redefined herein to be limited to any specific characteristic, feature or aspect of the disclosed technology associated with the term. Therefore, the present invention is not limited except by the appended claims. In general, the terms used in the appended claims should not be interpreted as limiting the disclosed technology to the specific examples disclosed in the specification unless the detailed description section above explicitly defines such terms.
[0107] Those skilled in the art will appreciate that, in conjunction with the examples described in the embodiments disclosed in this specification, the units and algorithm steps can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on the design constraints of the specific application and technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but this should not be considered beyond the scope of this application.
[0108] Although certain aspects of the present invention are presented below in certain claim forms, the applicants intend to protect the various aspects of the invention in any number of claim forms. Therefore, the applicants reserve the right to add additional claims after filing this application, either in this application or in a divisional application.
Claims
1. A decoding method, comprising: Receive code stream; Based on the intra-frame template matching prediction IntraTMP module, the code stream is parsed to generate a video sequence, Wherein, decoding the code stream includes: Determine the search area of the current coding unit CU; performing a template matching process on a plurality of predictor candidates in the search area; identifying a predictor block from the plurality of predictor candidates; and Data from the predictor block is used as reference data for the current CU.
2. The method according to claim 1, wherein The search area includes an upper right area, which is adjacent to the current CU and extends from an upper right corner of the current CU in an upper right direction.
3. The method according to claim 2, wherein: At least one predictor candidate among the plurality of predictor candidates includes a sample located within 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.
4. The method according to claim 1, wherein The search area includes a lower left area that is adjacent to the current CU and extends from a lower left corner of the current CU in a lower left direction.
5. The method according to claim 4, wherein At least one predictor candidate among the plurality of predictor candidates includes a sample located within 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.
6. The method according to claim 1, wherein The search area is determined based on a search range width and a search range height.
7. The method according to claim 6, wherein: 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.
8. The method according to claim 6, wherein: The upper boundary of the search area is limited to: the vertical position of the upper left corner of the current CU minus an offset corresponding to the height of the search range.
9. The method according to claim 6, wherein: The left boundary of the search area is limited to: the horizontal position of the upper left corner of the current CU minus an offset corresponding to the search range width.
10. The method according to claim 6, wherein: The lower boundary of the search area is limited to: the vertical position of the lower right corner of the current CU plus an offset corresponding to the height of the search range.
11. The method according to claim 6, wherein: The right boundary of the search area is limited to: the horizontal position of the lower right corner of the current CU plus an offset corresponding to the search range width.
12. The method according to claim 1, wherein The upper boundary of the search area is limited to: the top boundary of the intra block copy IBC search area plus an offset corresponding to the template height.
13. The method according to claim 12, wherein: The top boundary of the IBC search area is the top boundary of the upper coding tree unit CTU row.
14. The method according to claim 12, wherein: The top boundary of the IBC search area is the top boundary of two upper coding tree unit CTU rows.
15. The method according to claim 1, wherein The template matching process is performed in a search order.
16. The method according to claim 15, wherein The search order starts from the upper left current coding tree unit CTU region and ends at the second left CTU region.
17. The method according to claim 15, wherein: The search order starts from the upper left current coding tree unit CTU region, continues to the upper right current CTU region, the lower left current CTU region, the upper CTU row region, the first left CTU region, and ends at the second left CTU region.
18. A decoding device comprising: Memory; as well as A processor configured to: Receive code stream; Based on the intra-frame template matching prediction IntraTMP module, the code stream is parsed to generate a video sequence, The step of generating the video sequence includes: Determine the search area of the current coding unit CU; performing a template matching process on a plurality of predictor candidates in the search area; identifying a predictor block from the plurality of predictor candidates; and Data from the predictor block is used as reference data for the current CU.
19. The device according to claim 18, wherein The search area includes an upper right area, which is adjacent to the current CU and extends from an upper right corner of the current CU in an upper right direction.
20. The device according to claim 19, wherein At least one predictor candidate among the plurality of predictor candidates includes a sample located within 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.
21. The apparatus according to claim 18, wherein The search area includes a lower left area that is adjacent to the current CU and extends from a lower left corner of the current CU in a lower left direction.
22. The device of claim 21, wherein at least one predictor candidate among the plurality of predictor candidates comprises a sample located within 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.
23. The apparatus according to claim 18, wherein The search area is determined based on a search range width and a search range height.
24. The device according to claim 23, wherein 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. 25 . The apparatus according to claim 23 , wherein an upper boundary of the search area is limited to: a vertical position of an upper left corner of the current CU minus an offset corresponding to a height of the search range.
26. The apparatus according to claim 23, wherein The left boundary of the search area is limited to: the horizontal position of the upper left corner of the current CU minus an offset corresponding to the search range width.
27. The apparatus according to claim 23, wherein The lower boundary of the search area is limited to: the vertical position of the lower right corner of the current CU plus an offset corresponding to the height of the search range.
28. The apparatus according to claim 23, wherein The right boundary of the search area is limited to: the horizontal position of the lower right corner of the current CU plus an offset corresponding to the search range width.
29. The apparatus according to claim 18, wherein The upper boundary of the search area is limited to: the top boundary of the intra block copy IBC search area plus an offset corresponding to the template height.
30. The apparatus according to claim 29, wherein The top boundary of the IBC search area is the top boundary of the upper coding tree unit CTU row.
31. The apparatus according to claim 29, wherein The top boundary of the IBC search area is the top boundary of two upper coding tree unit CTU rows.
32. The apparatus of claim 18, wherein The template matching process is performed in a search order.
33. The apparatus according to claim 32, wherein The search order starts from the upper left current coding tree unit CTU region and ends at the second left CTU region.
34. The apparatus of claim 32, wherein: The search order starts from the upper left current coding tree unit CTU region, continues to the upper right current CTU region, the lower left current CTU region, the upper CTU row region, the first left CTU region, and ends at the second left CTU region.
35. A coding system comprising: processor; and a memory for storing instructions that, when executed by the processor, are for: receiving a video sequence; The current coding unit CU of the video sequence is encoded by the intra-frame template matching prediction IntraTMP module, The instructions are further used to: Determine a search area for the current CU; performing a template matching process on a plurality of predictor candidates in the search area; identifying a predictor block from the plurality of predictor candidates; as well as Data from the predictor block is used as reference data for the current CU.