Method for updating a prediction candidate list and apparatus incorporating the same

The method addresses the issue of similar predictors in video coding by updating the prediction candidate list through template matching and similarity estimation, enhancing compression performance and reducing complexity.

WO2026007128A1PCT designated stage Publication Date: 2026-01-08SHENZHEN TCL NEW-TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/104034
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-05
Publication Date
2026-01-08

AI Technical Summary

Technical Problem

Existing video coding techniques suffer from signaling overhead due to similar predictors in the prediction candidate list, leading to decreased compression performance and increased complexity, particularly in cases where similar predictors occupy top positions and require excessive bit allocation.

Method used

A method for updating the prediction candidate list by determining and relocating similar candidates based on template matching cost comparison and predictor similarity estimation, involving grouping and reordering to reduce redundancy and complexity.

Benefits of technology

Improves coding efficiency by reducing the number of similarity checks and bit allocation for similar predictors, ensuring more diverse and efficient signaling of prediction candidates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024104034_08012026_PF_FP_ABST
    Figure CN2024104034_08012026_PF_FP_ABST
Patent Text Reader

Abstract

A method for updating a prediction candidate list is provided. The method includes: acquiring the prediction candidate list; determining similar candidates within the prediction candidate list based on template matching (TM) cost comparison and predictor similarity estimation; and updating the prediction candidate list based on the similar candidates.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD FOR UPDATING A PREDICTION CANDIDATE LIST AND APPARATUS INCORPORATING THE SAMETECHNICAL FIELD

[0001] The present disclosure generally relates to encoding and decoding technology, and in particular to a method for updating a prediction candidate list, an apparatus incorporating the same and a computer readable medium.BACKGROUND

[0002] In video encoding and decoding, prediction techniques are crucial for achieving data compression while maintaining the quality of the video. These techniques exploit temporal and spatial redundancies within the video frames. Intra-prediction and inter-prediction are two main methods used for this purpose.

[0003] In state-of-the-art video coding, techniques are used to indicate a candidate from a list of potential candidates, for executing intra or inter prediction of a block. Here, the term "candidate" refers to a set of parameters sufficient for performing block prediction, either intra-or inter-. When performing intra-prediction, these prediction parameters may include an index of an intra-prediction mode, a reference line index, and a position-dependent prediction combination (PDPC) flag, among others. On the other hand, when inter-prediction is implemented, these prediction parameters can consist of one or multiple motion vectors, one or several reference pictures, an interpolation filter, and more.

[0004] Generalized steps of indicating a candidate within a candidate list on the encoder and decoder sides are shown in FIG. 1. At the encoder side (as shown in diagram (A) of FIG. 1) , a candidate list is prepared; the candidate list is sorted; Rate-Distortion (RD) cost of candidates in the list is calculated; the candidate with the minimum cost is selected; and an index of the selected candidate is signaled. At the decoder side (as shown in diagram (B) of FIG. 2) , an index of the selected candidate is parsed; a candidates list is prepared; the candidates list is sorted; and the candidate is selected from the list using the parsed index.

[0005] It is noticed that, predictors of some candidates within a candidate list may be quite close to each other, i.e., similar. If similar predictors in a candidate list cannot be identified, they may be kept in the list which might cause a signaling overhead and, hence, harm the compression performance of prediction techniques.SUMMARY

[0006] Accordingly, the present disclosure aims to provide a method for updating a prediction candidate list, an apparatus incorporating the same and a computer readable medium

[0007] A technical scheme adopted by the present disclosure is to provide a method for updating a prediction candidate list. The method includes: acquiring the prediction candidate list; determining similar candidates within the prediction candidate list based on template matching (TM) cost comparison  and predictor similarity estimation; and updating the prediction candidate list based on the similar candidates.

[0008] Another technical scheme adopted by the present disclosure is to provide a video coding apparatus. The apparatus includes a processor and a memory. The memory is configured to store executable instructions that, when executed by the processor, cause the processor to perform the foregoing method.

[0009] Another technical scheme adopted by the present disclosure is to provide a computer readable medium for storing executable instructions that, when executed by a processor, cause the processor to perform the foregoing method.BRIEF DESCRIPTION OF THE DRAWINGS

[0010] In order to clearly explain the technical solutions in the embodiments of the present disclosure, the drawings used in the description of the embodiments will be briefly described below. Obviously, the drawings in the following description are merely some embodiments of the present disclosure. For those of ordinary skill in the art, other drawings may also be obtained based on these drawings without any creative work.

[0011] FIG. 1 illustrates a flowchart of generalized steps of indicating a candidate within a candidate list on the encoder and decoder sides according to related art.

[0012] FIG. 2 shows concept of multiple reference lines.

[0013] FIG. 3 shows an exemplary TMRL candidate list.

[0014] FIG. 4 shows signaling of a TMRL candidate index.

[0015] FIG. 5 shows neighboring blocks (L, A, BL, AR, AL) used in the derivation of a general MPM list.

[0016] FIG. 6 shows an exemplary merge candidate list for motion vector prediction (MVP) with the candidates that produce similar predictors.

[0017] FIG. 7 shows candidates in the merge candidate reordering ARMC-TM and additional pairwise candidates after reordering.

[0018] FIG. 8 illustrates an encoder side and a decoder side processing of an intra merge process.

[0019] FIG. 9 shows a case where TMRL candidates having the same intra-prediction modes and different reference lines provide similar predictors.

[0020] FIG. 10 shows a relation between the number of similarity checks and the number of candidates in the input list.

[0021] FIG. 11 shows a case where similar candidates occupy the top positions in a sorted list.

[0022] FIG. 12 illustrates exemplary candidates of a merge list and a current block.

[0023] FIG. 13 shows a list of inter predictor candidates (MVP list) that is sorted using a template matching cost.

[0024] FIG. 14 is a flowchart of a method for updating a prediction candidate list according to an embodiment of the present disclosure.

[0025] FIG. 15 shows sub-operations of the operation S 102 shown in FIG. 14.

[0026] FIG. 16 illustrates comparison between the number of similarity checks for the full pairwise comparison within a candidate list and the number of similarity checks for the group-based comparison.

[0027] FIG. 17 shows an example of a sorted candidate list with determination of groups of candidates.

[0028] FIG. 18 is a flowchart of the method for determining groups of candidates with a similar predictor according to an embodiment of the present disclosure.

[0029] FIG. 19 illustrates a case of selection of a central candidate within a group of candidates.

[0030] FIG. 20 is a flowchart of the method for selecting a central candidate based on the template matching cost according to an embodiment of the present disclosure.

[0031] FIG. 21 illustrates definitions of ΔB and ΔT as described in accordance with FIG. 20.

[0032] FIG. 22 illustrates a case of obtaining similar candidates for a group of candidates and a central candidate.

[0033] FIG. 23 illustrates exemplary steps for relocating similar candidates to the end of the input list.

[0034] FIG. 24 is a flowchart of a process for modification of parameters of the candidates that provide similar predictors according to an embodiment of the present disclosure.

[0035] FIG. 25 is a flowchart of a group-based comparison method for obtaining a list of similar candidates within the sorted list according to an embodiment of the present disclosure.

[0036] FIG. 26 is a flowchart of a method for obtaining a set of similar candidates using both template cost comparison and similarity check according to an embodiment of the present disclosure.

[0037] FIG. 27 illustrates a proposed similarity check solution in an intra merge process at encoder side according to an embodiment of the present disclosure.

[0038] FIG. 28 illustrates a proposed similarity check solution in an intra merge process at decoder side according to an embodiment of the present disclosure.

[0039] FIG. 29 is a schematic diagram of an apparatus for encoding or decoding according to an embodiment of the present disclosure.DETAILED DESCRIPTION

[0040] The disclosure will now be described in detail with reference to the accompanying drawings and examples. Apparently, the described embodiments are only a part of the embodiments of the present disclosure, not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0041] The present disclosure relates to both a method and a device of intra-coding and inter-coding, and embodiments of the present disclosure may be applied in combination with different intra and inter prediction methods as well as implemented as a hardware or a software module. Related art of the present disclosure is introduced below.

[0042] Template-based multiple reference line intra prediction

[0043] Description of Template-based multiple reference line intra prediction (TMRL) mode could be found in the Algorithm description of Enhanced Compression Model 12 (ECM 12) , document JVET-AG2025.

[0044] Template-based multiple reference line intra prediction (TMRL) mode combines reference line and prediction mode together and uses a template matching method to construct a list of candidate combinations. An index to the candidate combination list is coded to indicate which reference line and prediction mode is used in coding the current block. A concept of multiple reference lines is shown in FIG. 2.

[0045] The TMRL mode extends reference line candidate list and the intra-prediction-mode candidate list. The extended reference line candidate list is {1, 3, 5, 7, 12} .

[0046] The TMRL candidate is constructed as follows. There are 5x10=50 combinations of the extended reference line and the allowed intra-predictiun modes for a block. Since the extended reference line starts from reference line 1, the area covered by reference line 0 is used for template matching. The SAD costs over the template area (see FIG. 2) are calculated between the predictions (generated by 50 combinations) and the reconstructions. The 20 combinations with the least SAD cost are selected in an ascending order to form the TMRL candidate list. An exemplary TMRL candidate list is shown in FIG. 3.

[0047] Each element of the TMRL candidate list comprises the template cost, reference line and intra prediction mode. Out of the 50 candidates, only 20 combinations that provide minimum template cost are selected. These 20 candidates are sorted in ascending order by the cost values.

[0048] Referring to FIG. 4, indication of the selected index may be performed by a Rice code, which is composed of: 1) a prefix code, which is a tnmcated unary code, and 2) a fixed-length suffix code.

[0049] In ECM-13, suffix length (number of bins) does not depend on the prefix value and is set equal to 2 bins. Prefix may encode values within a range of [0, 4] .

[0050] Template-based MPM sorting

[0051] In ECM, the Most Probable Mode (s) (MPM) list is constructed by the following three steps:

[0052] 1) The first entry in the general MPM list is always planar mode.

[0053] 2) The next entries are composed of the intra modes of the left (L) , above (A) , below-left (BL) , above-right (AR) , and above-left (AL) neighboring blocks as shown in Fig. 5, and DIMD modes, which are sorted in ascending order of SAD cost. Up to 5 modes with the smallest SAD cost are added. The SAD cost is computed between the prediction and the reconstruction samples of the template.

[0054] 3) The sorted directional modes with added offset are added into the general MPM list, and then the default modes, until the general MPM list with 22 entries is constructed.

[0055] 4) The first 6 entries in this general MPM list are included into the PMPM (Primary MPM) list, and the rest of entries form the SMPM (Secondary MPM) list.

[0056] The inter prediction merge list

[0057] A merge candidate list for motion vector prediction (MVP) is composed of elements that contain motion information used to perform inter prediction. The structure of a merge candidate list is shown in FIG. 6. As shown in Fig. 6, some of the candidates may provide predictors that are similar to each other.

[0058] JVET-X0119: Introduction of additional pairwise candidates into the inter prediction merge list

[0059] In JVET-X0119 “Non-EE2: On pairwise merge candidate” a proposal is described. In this proposal it is suggested to introduce additional pairwise candidates (see FIG. 7)

[0060] Intra merge mode

[0061] In the contribution document JVET-AH0211, a list of intra mode candidates is constructed using the intra modes from the neighbour blocks. It is similar to inter merge mode, but instead of motion vector the neighbour intra modes are added to the list. A flag is signalled to indicate whether to enable the proposed intra merge mode. If the flag is true, at least one intra merge candidate list is constructed. If there are more than one intra merge lists, a list index is signalled to indicate which intra merge list is selected. An index is further signalled to indicate which candidate is used for this CU.

[0062] FIG. 8 shows both an encoder side and a decoder side mechanism for indicating and parsing the intra merge index. The step “Get DIMD parameters from candidate blocks” consists in obtaining primary and secondary intra prediction mode indices along with the weights from the parameters of candidate blocks. Depending on the intra prediction mode that was specified for prediction of the candidate block, the parameters that are copied from this block are as shown in Table 1.

[0063] Table 1. Parameters of a candidate block that are reused from a candidate

[0064] The step “Sort candidates based on TM cost” may be skipped, in case that the order of candidates’s can is predetermined. Currently, this method is studied in JVET in the stage of exploration experiments and hence, several variants are considered (i.e., with and without sorting) .

[0065] Candidates ora TMRL list are constructed from a combination of two elements that are taken from the list of intra prediction modes (MPM-like list) and reference lines list. These combinations  comprise candidates having the same intra prediction mode, but different reference lines (see FIG. 9) . In this situation when reference lines are similar to each other, these candidates will provide similar intra predictors. Presence of such candidates, on one hand, decreases a number of different intra predictors that could be signaled, and on the other hand, increases the number of bins that are required to encode candidates at the end of the list.

[0066] Another situation that leads to the same consequences is when a content is smooth and several candidates have the same reference line and slightly different directional intra prediction modes.

[0067] It could be noticed that similar predictors within a sorted candidate list are located close to each other. The reason for such allocation is that the candidates within the list are sorted based on template cost that is estimated in the template area of these candidates.

[0068] Similarity check is a normative operation, i.e. it affects the decoder side complexity as well as the encoder one. This problem is valid for cases where the list size N leads to a high number of similarity checks that exceeds the threshold determined by complexity requirements (in particular, worst-case complexity for decoder) . To perform a full pairwise comparison of candidates within a list having N elements, the number of similarity checks is equal to:

[0069] FIG. 10 shows this quadratic dependency between the number of similarity checks and the number of candidates in the input list.

[0070] It is worth noting that many of the candidate predictor lists are sorted according to template matching (TM) cost. Within a sorted candidate list, similar predictors are typically located close to each other. Thus, the order of candidate predictors in the list suggests what pairs of candidates’ predictors cannot be similar. However, this information is not used to reduce the number of similarity checks and, therefore, the complexity of predictor diversification either.

[0071] When a sorted candidates list contains intra prediction candidates, a pair of candidates that have different template costs, may not produce similar predictors. However, a pair of candidates that have similar template costs may (but not necessarily will) produce similar predictors. These conclusions could be drawn from the triangular inequality:

[0072] The right part of this inequality, |d (x, z) -d (y, z) |, is the difference of the template costs of predictors x and y, and the left part, d (x, y) , is the difference between the predictors x and y.

[0073] Another issue that is intrinsic to the candidate predictor lists sorted according to template matching cost is the risk of getting a lot of very similar candidates in a row at the top of the list as shown in FIG. 11. This problem is less critical if Golomb-Rice / exp-Golomb codes is exploited to indicate selected candidate predictors because these codes allocate the same number of bins for neighboring candidates but this issue is especially crucial ifunary or tnmcated unary codes are in use. If this situation takes place, similar candidates take the most beneficial positions in the list. If we miss with them, we  have to spend many bins on genuinely appropriate candidates, which are located at the positions close to the bottom because the position near the top of the list are already occupied.

[0074] This issue can become more critical if only a few top candidate predictors are available for signaling in a bitstream. Specifically, when several TMRL candidates produce similar predictors and the actual number of intra predictors that can be signaled is less than the maximum size of the TMRL list, appropriate modes that could be suitable might be pushed out of the first 20 candidates, therefore potentially overlooked or disregarded. Removal of (pushing out) some of the candidates is performed in accordance with the template cost. Template cost criterion is not sufficient when some of the first 20 candidates of the list produce similar predictors.

[0075] A further issue that is observed in merge list of inter coding. Several candidates in the MVP list (see FIG. 12) belonging to different reference pictures may provide similar template costs. In this case a list of inter predictor candidates (MVP list) that is sorted using a template matching cost may have a group of candidates that provide similar inter predictors (see FIG. 13) :

[0076] This problem is addressed in JVET-X0119 as introduced above, where the new combinations are added to the updated lists. However, the order of Adaptive Re-ordering of Merge Candidates (ARMC) is not affected. Hence, in the current design of ECM, there is still a set of merge candidates in the MVP list with similar inter costs. It is worth noting that the maximum number of similarity checks acceptable for implementing inter-prediction in real-time mode might be lower than that for intra-prediction. Inter prediction process is more memory-intensive, and typically decoder implementation requires more frequent access to the Random Access Memory (RAM) , when motion compensation is performed. Naturally, inter prediction process uses samples of the pictures stored in the Decoded Picture Buffer, while intra prediction may use reconstructed samples of just the currently reconstructed picture. Besides, to obtain directional, planar and DC intra modes predictors, only the samples of the line buffer is required. The line buffer could be implemented as a piece of Static Random Access Memory (SRAM) which is a form of a local memory cache that can dramatically reduce the memory bandwidth. For inter prediction, it is not possible to maintain such a kind of local memory cache, because inter prediction could be performed from any part of any reference picture that is permitted to be accessed from the Decoded Picture Buffer for the currently coded (decoded) picture.

[0077] The present disclosure provide a method for updating a prediction candidate list to solve at least some of foregoing issues. According to some embodiments of the present disclosure, when a list of candidates is constructed, a difference between the block predictors may be estimated for pairs of candidates within this list. Position of a candidate within the list may be determined based on template matching (TM) cost, predictor similarity or both.

[0078] FIG. 14 shows a flowchart of a method for updating a prediction candidate list according to an embodiment of the present disclosure. The method may be applied in either an encoding process or a decoder process. As shown in FIG. 14, the method includes operations described in blocks S101 to S103, that is: acquiring the prediction candidate list; determining similar candidates within the prediction candidate list based on template matching (TM) cost comparison and predictor similarity estimation; and  updating the prediction candidate list based on the similar candidates.

[0079] In S 101, a prediction candidate list is acquired.

[0080] The prediction candidate list may correspond to a selected method for prediction. The methods for prediction may include, but are not limited to, TMRL, Template-based MPM, inter-prediction merge, intra merge mode as introduced above. The list may include multiple prediction candidates, and each candidate may correspond to a prediction mode (e.g., a prediction direction) and a reference area (e.g., one or more reference lines) . Indication for the selected method may be included in a bitstream transmitted from an encoder to a decoder such that both sides may acquire the same prediction candidate list.

[0081] In S102, similar candidates within the prediction candidate list are determined based on TM cost comparison and predictor similarity estimation.

[0082] In some cases, candidates within the initial prediction candidate list are not sorted. Accordingly, the prediction candidate list may be firstly sorted based on TM costs of candidates within the list. Then, similarity between candidates may be estimated.

[0083] For a sorted list, a similarity check for candidates may be performed such that one or more similar candidates may be identified. Various methods may be adopted for the similarity check, such as TM cost difference check, predictor distance check, or other methods designed for evaluating differences among corresponding predictors of candidates.

[0084] In S103, the prediction candidate list is updated based on the similar candidates.

[0085] With the acquired similarity check result, the initial prediction candidate list may be updated. Several options may be used to update the prediction candidate list. For example, some similar candidates within the list may be removed. Alternatively or additionally, positions of some similar candidates within the list may be changed. Alternatively or additionally, Prediction parameters such as reference lines of some similar candidates within the list may be changed.

[0086] According to the present disclosure, both the TM cost comparison and predictor similarity estimation are performed to find out similar candidates within the prediction candidate list. The similar candidates may then be utilized to acquire a more efficient and representative prediction candidate list. Moreover, the TM cost comparison involved may reduce the amount of calculation / comparison required for predictor similarity estimation, and therefore improving coding efficiency.

[0087] Referring to FIG. 15, in some embodiments, the operation of determining similar candidates within the prediction candidate list based on TM cost comparison and predictor similarity estimation includes: grouping at least some candidates in the prediction candidate list into one or more groups (S1021) ; and determining similar candidates within each of the one or more groups (S1022) .

[0088] Specifically, determining the difference between all possible pairs of predictors produced by the candidates in the list is a computationally intensive operation. Comparison of all pairs within a list of N candidates requires N / 2· (N-1) comparisons. For a list with a size equal to 50 (i.e., 50 candidates) , the number of comparison operations to compare all the candidates with each other is equal to:

[0089] In this embodiment, some or all candidates in the prediction candidate list are grouped before similarity check of these candidates. This may significantly reduce computational cost for similarity check. Assuming K=4 groups are determined and each group has M=10 candidates. The number of comparison operations for similarity check is equal to:

[0090] This number is significantly smaller than that of comparing all the candidates within the list with each other. An exemplary chart that compares the number of operations for the full pairwise comparison within a slit and the number of operations for the group-based comparison is shown in FIG. 16.

[0091] In some embodiments, the prediction candidate list is sorted based on TM costs of candidates within the prediction candidate list. This sorting operation may be performed prior to the method shown in FIG. 14, or be included in the method as part of the operation S102. For the sorted list, the operation for grouping candidates in the prediction list may include: determining whether a TM cost difference between adjacent candidates in the prediction candidate list is no larger than a pre-defined threshold; and determining that the adjacent candidates are within a same group in response to the TM cost difference between the adjacent candidates being no larger than the pre-defined threshold. Detailed explanation and examples are given below in the section “Selection of groups of candidates within a sorted candidate list” .

[0092] Selection of groups of candidates within a sorted candidate list

[0093] In one embodiment, grouping of candidates within a sorted candidate list may be performed based on TM cost difference. One option is to compare template costs with a threshold. Specifically, from top to bottom of the prediction candidate list: determining whether a TM cost difference between a previous candidate and a next candidate in the prediction candidate list is no larger than a pre-defined threshold; determining that the previous candidate and the next candidate are within a same current group when the TM cost difference between the previous candidate and the next candidate is no larger than the pre-defined threshold; and determining that the current group is finalized when the TM cost difference between the previous candidate and the next candidate is larger than the pre-defined threshold and the current group has at least two candidates. Moreover, if we don’t want to take one single element as a group, the current group may be dropped when TM cost difference between the previous candidate and the next candidate is larger than the pre-defined threshold and the current group has less than two candidates (i.e., has only one candidate) .

[0094] FIG. 17 shows an example of a candidate list that is sorted using template cost. Within this list, several groups are determined. These groups are obtained by iteratively comparing pairs of adjacent candidates with each other, starting from the top of the candidate list. In FIG. 17, a template cost C0 is compared with a template Ca, and the difference between these costs is compared with a threshold TC. When Ci -Ci-1 < TC, candidate i is added to the current group Gj. When Ci -Ci-1 ≥ TC, and the  current group Gj has at least 2 candidates, the current group Gj is finalized. When less than 2 candidates were added into the current group Gj and Ci -Ci-1. ≥ TC, the current group Gj is reset and a candidate candi is added to this group. In this example, C1 -C0 ≥ TC, C4 -Ca ≥ TC and Cs -C4 ≥ TC. Exemplary values of template cost threshold (TC) may be found in the section “Defining a template cost difference threshold.

[0095] In another embodiment, grouping of candidates within a sorted candidate list may be performed based on predictor distance. The procedure involves: determining a reference candidate in the prediction candidate list for a current group, wherein the reference candidate is not within any of other groups of the one or more groups; checking whether a prediction difference between the reference candidate and a subsequent candidate in the prediction candidate list is less than a pre-defined distance; and determining that the reference candidate and the subsequent candidate are within the same current group in response to the prediction difference between the reference candidate and the subsequent candidate being less than a pre-defined distance. The prediction difference, also called predictor difference or distance, between two prediction candidates may be determined in different ways.

[0096] For example, difference evaluation metrics such as Sum of Absolute Differences (SAD) , Sum of Absolute Transformed Differences (SATD) , Mean-Removed Sum of Absolute Differences (MR-SAD) and so on may be utilized. Taking SAD as example, for a predictor K and a predictor L which correspond to two prediction candidates in the list respectively, the prediction difference may be determined by: dK-L = |SADK -SADL|

[0097] where SADK is the SAD value of the predictor K while SADL is the SAD value of the predictor L.

[0098] Alternatively, for a pair of candidates {a, b} a value of distance between these candidates could be determined as a sum of absolute differences of the predictors p for the current block B. It can be noticed that da-b=db-a

[0099] where pa (i, j) and pb (i, j) are pixel values of the predictors of {a, b} respectively.

[0100] FIG. 18 shows a flowchart of determining groups within a prediction candidate list based on predictor distance. The method uses two memory buffers (buf0 and buff) to store the results of intra prediction. Two pointers pBuf0 and pBuff are initialized to these memory buffers (buf0 and buff, respectively) . In addition, the index “firstInGroup” , which indicates the first element (reference candidate) of the current group is initialized to 0. The current candidate position i is also initialized to 0. An intra prediction process is invoked with parameters defined by the candidate at position 0, and the prediction result is stored into memory buffer pointed by pointer pBuf0. The amount of candidates in the list is “numCand” .

[0101] The current candidate at position i should not reach the number of candidates in the list ( “i < numCand” ) , otherwise the process is complete. The current candidate position i is increased by one in step “i=i+ 1” . In the next step ( “Intra prediction for mode i, store prediction to pBuff” ) , an intra prediction  process is invoked with parameters defined by the candidate at position i, and the prediction result is stored into memory buffer pointed by pointer pBufl.

[0102] The next step is to determine the distance between the two buffers (pBuf0 and pBufl) . A function “predDiff” is invoked to calculate the value of the distance. “predDiff” function may be defined to calculate SAD, SSD, HAD, MRSAD, or a combination of these metrics.

[0103] The distance is compared with the threshold in step “d < Td” . If it is less than the threshold, “createGroup” flag is raised, indicating that the process is in the state of defining a group of similar candidates. Besides, in this case, position of the current candidates is checked to be not the last candidate (“i < numCand -1 ? ” ) . Ifit is the last candidate, the process is finalized by invoking the step “Create group with a set of modes [firsfinGroup; i) ” , which adds a group “ [firstInGroup; i) ” of similar candidates to the resulting set of groups. In this branch of positive check of “d < Td” condition the processing is complete and the next candidate position is being checked in the next iteration, starting from the step “i < numCand ? ” .

[0104] The other branch of “d < Ta” (when this condition is false) starts with the check of the “createGroup” flag. If the process is in the state of group creation ( “createGroup” is true) , the step “Create group with a set of modes [firstInGroup; i) ” is invoked, which adds a group “ [firstInGroup; i) ” of similar candidates to the resulting set of groups. “createGroup” flag is dropped, thus altering the process state to the state of the first candidate search for a new group of similar candidates.

[0105] Otherwise, if the “createGroup ? ” check returns false, the value of the index “firstInGroup” is set to the position of the current candidate “i” .

[0106] In both cases (when createGroup is either false or true) , the process swaps buffer pointers pBuf0 and pBufl, thus setting the current candidate prediction result as a reference for the intra prediction result obtained at the next iteration. This swap is followed by return to step “i < numCand ? ” (going to the next iteration) .

[0107] The distance threshold Td may be defined with regard to the predicted block size. Tables 2 to 5 illustrate exemplary relation between the distance threshold and different sizes (including number of samples, width and height) of the predicted block.

[0108] Table 2. Determination of the distance threshold based on the number of samples of the predicted block.

[0109] Table 3. Determination of the distance threshold based on min (W, H)

[0110] Table 4. Determination of the distance threshold based on max (W, H)

[0111] Table 5. Determination of the distance threshold based on W+H

[0112] Selection of a central candidate within a group of candidates

[0113] In some embodiments, the operation of determining similar candidates within each of the one or more groups as described in S1022 of FIG. 15 may include: for each of the groups, determining a central candidate; and determining similarity of other candidates within a same group with regard to the central candidate. The central candidate may be taken a most “representative” candidate of the group. In following steps, prediction parameters of the central candidate may be maintained, and location of the central candidate within the list may be maintained or promoted (if other candidates before the central candidates are moved to a lower or bottom position of the list) . Methods for determining a central candidate of a group are introduced below.

[0114] In one embodiment, for a group constructed by any of the foregoing methods, the candidate with a minimal sum of prediction differences to other candidates within the same group may be selected as the central candidate.

[0115] Specifically, for each candidate belonging to a group of candidates, a sum of distances to other candidates of the group is determined. The candidate for which this sum is minimal is selected as a central candidate. FIG. 19 shows an example of how to select a central candidate. As shown in FIG. 19, for candidates cand5 to cand9 in the group G1, the sum of distances to other candidates of can6 (d6-5+d6-7+d6-8+d6-9) is minimal compared to that of cand5, cand7, cand8 and candg. That is: d5-6 + d5-7 + d5-8 + d5-9 ≥ d5-6 + d6-7 + d6-8 + d6-9

[0116] d7-5 + d7-6 + d7-8 + d7-9 ≥ d5-6 + df6-7 + d6-8 + d6-9

[0117] d8-5 + d8-6 + d7-8 + d8-9 ≥ d5-6 + d6-7 + d6-8 + d6-9

[0118] Thus, candidate cand6 may be selected as the central one for the group G1.

[0119] In another embodiment, for a group constructed by any of the foregoing methods, the candidate with a minimal sum of TM cost differences to a first candidate and to a last candidate within the same group may be selected as the central candidate.

[0120] FIG. 20 shows a flowchart of a method for select a central candidate according to this embodiment. As shown in FIG. 20, all the entries of a group, except for the first and the last ones are  iterated. On each iteration, the absolute value ΔΔ of the difference of the two TM cost differences is calculated.

[0121] In the flowchart, the TM cost difference ΔT is the difference between the current TM cost and the TM cost of the first entry of the group; the TM cost difference ΔB is the difference between the TM cost of the last entry of the group and the current TM cost. An example of these differences is shown in FIG. 21. The entry for which this ΔB -Δr is minimal is returned as the central candidate of the group. The central candidate selected in this way has a minimal sum of TM cost differences to the first candidate and to the last candidate compared with other candidates in the group.

[0122] In yet another embodiment, for a group constructed by any of the foregoing methods, either the first or the last candidate in the group may be selected as the central candidate. Specifically, when a group contains two elements, either the first one or the last one may be selected as the central candidate. It is appreciated that in some cases where a group contains more than two elements, the first one or the last one may also be taken as the central candidate according to actual design requirement.

[0123] In yet another embodiment, for a group constructed by any of the foregoing methods, the median candidate may be selected as the central candidate. Specifically, for a group containing L candidates sorted by their TM costs, an entry with position L>>1, floor (L / 2) or ceil (L / 2) may be returned as the central candidate, where >> is a fight shift symbol, and floor / ceil indicate rounding down or up respectively.

[0124] After the central candidate of the group is determined, other candidates in the group may be compared with the central candidate. Those of the candidates whose prediction difference to the central candidate is less than a similarity threshold may be taken as similar candidates of the central candidates. FIG. 22 illustrates a method for obtaining similar candidates for a group of candidates and a central candidate. As shown in FIG. 22, the determined central candidate is “cand6” . The steps of this method are as follows:

[0125] ● Candidates within the group are reordered based on the predictor differences dx-y determined for the candidate x with the minimum cost, e.g., cand6 in this case.

[0126] ● After the candidates are sorted, the values of predictor differences dx-y are compared with the threshold Td.

[0127] ● The set of similar candidates for the group is obtained by taking candidates starting from the first one (cand5) and up to the last one (cand9) . In the example shown in FIG. 22, three candidates are added to the list of similar candidates S: candidate 5, candidate 8, and candidate 9.

[0128] Relocation of the similar candidates to the end of a sorted candidate list

[0129] As explained in S103 of the method shown in FIG. 4, after the similar candidates are identified, the prediction candidate list may be updated. In one embodiment, the operation of updating the prediction candidate list based on the similar candidates may include: moving the similar candidates to a bottom of the prediction candidate list.

[0130] FIG. 23 illustrates an example of relocating similar candidates in a prediction candidate list. For illustrative purposes, a TMRL list is used. It should be understood, the present embodiment may be  applied to any other kinds of sorted candidate lists.

[0131] For this TMRL list, the candidates belonging to the set S of similar candidates are moved to the end of the TMRL list. Since in TMRL only 20 elements ( (out of maximum 50 elements) could be signaled, the similar candidates belonging to S have higher chance of not being signaled, since they are appended to the part of the list which is not available for signaling. Some of the candidates at positions (prior the relocation) 21 to 49 which are initially not available for signaling prior this relocation become available, because positions of some of the similar candidates that are relocated to the end of the list become vacant.

[0132] According to this embodiment, candidates that provide similar predictors are moved to the end of the candidates list (i.e., the list of 50 candidates) , so that when taking the first 20 candidates from this 50-elements list, the candidates that provide similar predictors may not be signaled since they are not in the first 20 positions within the list. Alternatively, the cost of signaling such similar candidates is increased for the cases when the quantity of the candidates that are moved to the end of the list is greater than 30 and, consequently, some of them fall within the range of the first 20 candidates.

[0133] Modify reference lines of the candidates that provide similar predictors

[0134] As explained in S103 of the method shown in FIG. 4, after the similar candidates are identified, the prediction candidate list may be updated. In one embodiment, the operation of updating the prediction candidate list based on the similar candidates may include: diversifying the similar candidates by modifying references lines of the similar candidates.

[0135] In this embodiment, reference line indices are modified for the candidates belonging to a group of similar candidates. Modification of the reference lines is performed to make the predictors more diverse and thus to reduce redundancy of the codewords.

[0136] FIG. 24 shows a method for modification of parameters of the candidates that provide similar predictors. As shown in FIG. 24, the following operations may be performed:

[0137] ● “Determine the number of available reference lines” . In this step, based on the position of the current block with regard to the CTU and slice boundaries, the number of available reference lines is determined. The purpose of this step is to prevent access to reference lines which are not available

[0138] ● In the next step a check of “whether all groups are processed” is performed. When all the groups are processed, the final candidate list is prepared by taking, for example, 20 first candidates from the updated candidates list.

[0139] ● In the next step, a group that has the least number of elements is selected for further processing. Reference lines of candidates within this group are modified based on an additional reference lines list, e.g. {2, 4, 6, 8, 10, 11} . For example, the initial values of reference lines could be modified to the closest ones belonging to the additional reference lines list (see Table 6) . When the number of elements M of the selected group is equal or more than the length N of the additional reference lines list, only N first elements of the group are processed, except of the first one. The rest M-N-1 candidates are relocated to the end of the list (as described in previous section) . Alternative approach  is to keep them unprocessed or to remove them.

[0140] ● Return to the “all groups are processed” check. In an additional exemplary embodiment, after modification of reference lines, a check whether candidates are distinct enough are performed, using the steps described in foregoing embodiments.

[0141] Table 6. Modification of reference lines

[0142] Defining a template cost difference threshold

[0143] In this embodiment, the value of threshold TCTPL to compare template costs is determined. For example, determination of the TM cost threshold could be based on the block size (see Table 9) . In this Section, the value of N indicates the block size (number of samples) , “>>” is a right shift operator.

[0144] Table 7. Determination of the TM cost threshold based on block size (number of samples)

[0145] Alternatively, the value of threshold TCTPL to compare template costs could be determined based on the sum of the width and height of the block being predicted (see Table 10) .

[0146] Table 8. Determination of the TM cost threshold based on block size (width and height)

[0147] Alternatively, minimum and maximum values of the block dimensions could be used to determine the threshold value (see Table 11 and Table 12, respectively) .

[0148] Table 9. Determination of the TM cost threshold based on block size (min (W, H) )

[0149] Table 10. Determination of the TM cost threshold based on block size (Max (W, H) )

[0150] Performing similarity check for a pair of candidates

[0151] One method for determining predictor distance includes calculating a stun of absolute differences of the predictors pa and pb for a pair of candidates {a, b} for a current block B:

[0152] It can be noticed that da-b=db-a.

[0153] In an alternative embodiment, the area B may be defined by a pattern which is specified for the block. For example, a pattern may specify just those positions i, j ∈ B, that have even (alternatively, odd) sum of coordinates (i +j) .

[0154] For a pair of candidates within the list, prediction similarity is estimated as follows. Two intra predictors are obtained by the process of intra prediction for each candidate of the pair. Intra prediction is performed with the parameters specified by each candidate of the pair. Two candidates of the pair are determined to be similar when the sum of their absolute difference is smaller than a threshold.

[0155] The threshold may be determined: 1) as a fixed value (e.g. equal to 4, 8, 16, or some other integer value) ; or 2) depending on a block size.

[0156] For example, the threshold value may be defined as the number of samples belonging to the block multiplied by 2. It is understood that multiplier may have different values, e.g. 1 (equivalent to having no multiplier) , 3, 4 or some other value. In another example, the multiplier k may be defined as a nonlinear function of a block size: k = log2 W + log2 H -3

[0157] where W, H denote width and height ora block, respectively.

[0158] A set of groups of similar modes could be determined by checking pairs of adjacent candidates of a list (e.g., a TMRL list) after it is sorted. For example, the checking could be performed iteratively, starting from the top of the list, comparing elements {1, 2} , {2, 3} , {3, 4} , etc., until the checked pair is determined to contain non-similar candidates. If more than 1 consequently checked pairs contain similar candidates, then a group of similar candidates is defined as a set of candidates belonging to a series of consequently checked pairs of adjacent candidates that are determined to contain similar candidates.

[0159] FIG. 25 illustrates a flowchart to obtain a list of similar candidates within a sorted list according to an embodiment of the disclosure. In this embodiment, candidates in the sorted list are firstly grouped and then similarity checks are performed within each group. In general, the following steps are performed to prepare a candidate list without the redundant candidates.

[0160] In Step 2101, an input list of candidates for prediction is determined, the elements of this list are sorted by the template costs in ascending order. For instance, the sorted TMRL, sorted MPM, candidate merge lists could be used as input lists.

[0161] In Step 2001, a set of groups {G} is determined for the input sorted list of candidates. Each of the group may comprise, for example, at least 2 candidates. The detail implementation ora method to obtain the set of groups for the input sorted list is described in the section “Selection of Groups” . A group  may not contain just a single candidate: it would mean that there is no candidate in the list which is considered as a similar to this candidate.

[0162] In Steps 2002, 2003, 2004 and 2005 the groups are iterated and the set of similar candidates S is updated. Steps 2002 and 2003 define an iterator over the groups determined in step 2001. The detail implementation of a method to find a central candidate within a group of candidates (step 2004) is disclosed in the section “Selection of a central candidate within a group” .

[0163] After the completion of iteration of groups in Step 2002, the set of similar candidates S is constructed. In step 2006, the list S is used to reorder the list L so that the similar candidates (i.e., the candidates that belong to list S) are moved to the end of list L. The detail implementation of this step is described in the section “Relocation of the similar candidates” .

[0164] In an alternative solution, instead of reordering performed in step 2006, the candidates in the list L that also belong to the list S are modified, so as the predictors generated by these candidates are diversified, the detailed implementation of this step is described in the section “Modify reference lines of the candidates” .

[0165] FIG. 26 illustrates a flowchart to obtain a list of similar candidates within a sorted list according to another embodiment of the present disclosure. In this embodiment, candidates in the sorted list are not grouped. Instead, TM cost comparison and predictor difference are both utilized for similarity checks of candidates in the list. In general, operations for similarity estimation may include, for each reference candidate from top to bottom within the prediction candidate list and not marked as similar candidate: 1) scanning subsequent candidates within the prediction candidate list and not marked as similar candidate; 2) selecting those of the subsequent candidates whose TM cost difference to the reference candidate is less than a pre-defined threshold as candidates to be checked; and 3) determining those of the candidates to be checked whose prediction difference with regard to the reference candidate is less than a similarity threshold as similar candidates of the reference candidate.

[0166] For the method shown in FIG. 26, a list of sorted elements S is empty at the start of processing, and the steps of this embodiment shown in FIG. 26 may include following steps.

[0167] In step 3101, a sorted list of candidates is obtained. This could be a TMRL list, sorted MPM list, sorted merge candidates list (for inter prediction) . The feature of this list is that each element of this list has a template cost associated with this element and the list is sorted in ascending order by the values of the template costs.

[0168] In step 3102 a list is iterated from its top (starting from the lowest cost) . At this step the first element of the pair of candidates to be compared is determined. Its position is stored in a variable “i” .

[0169] In step 3103, the first element of the pair of candidates to be compared ( “i” -th candidate) is verified to not being added to the list of similar candidates S. If it belongs to this list, it is not further checked.

[0170] In step 3104, the second element of the pair of candidates to be compared ( “j” -th candidate) is determined by iterating the input list starting at position next to the first element of the pair of candidates to be compared. This second element is also verified to not being added to the list of similar  candidates S in Step 3105.

[0171] In Step 3106, the absolute value of differences of template costs associated with the elements of the pair of candidates is compared with the threshold. The threshold for the comparison could be determined, e.g. based on the size of the block being predicted in accordance with the embodiment described in the section “defining a template cost difference threshold” . If the absolute value of differences of template costs is lower than the threshold, the following steps (3107, 3108, and 3109) are performed; otherwise, the process continues with step 3104 for the next iterated value of the second element for the candidate pair

[0172] In Step 3108, similarity check is performed for a pair of predictors generated for candidates of the pair of candidates. Detail implementation of the similarity check step is described in the section “Performing similarity check” . If candidates of the pair of candidates are determined to be similar in this step, the second element of the pair ( “j” -th candidate) is added to the set of similar candidates S in step 3109

[0173] When all the iterations for the first element of the pair of candidates to be compared ( “i” -th candidate) are complete in Step 3102, construction of the list of similar candidates S is complete. The list of candidates is diversified using one of the following methods: 1) the candidates belonging to the list of similar candidates S are moved to the end of the list of candidates, as described in the section “Relocating of the similar candidates” ; or 2) the candidates belonging to the list of similar candidates S are diversified as described in the section “Modify reference lines of the candidates” .

[0174] FIG. 27 shows an encoder-side process of performing similarity check for a sorted list of intra merge candidates. The process may include following steps.

[0175] ● Derive DIMD parameters from candidate blocks.

[0176] ● Sort candidates based on TM cost.

[0177] ● Get predictors for the candidate blocks. In this step, predictors for the blocks are generated in accordance with the DIMD parameters obtained from the candidate blocks. The predictors are obtained in the same way as it is done in the ECM codec.

[0178] ● Calculate differences between the predictors. In this step the distance between the predictors corresponding to the DIMD parameters are calculated. This step is performed in accordance with the embodiment of the present disclosure in the section “Performing similarity check for a pair of candidates” .

[0179] ● Get the group of similar candidates. This step is performed in accordance with the embodiment of the present disclosure in the section “Selection of Groups of candidates” .

[0180] ● Move similar candidates to the end of the candidate list. This step is performed in accordance with the embodiment of the present disclosure described in the section “Relocation of the similar candidates” .

[0181] ● Perform RD check for the candidates to select the best one. An encoder may estimate the distortion D of the reconstructed block, which is obtained using a predictor corresponding to a candidate, and the bitrate increase ΔR that is caused by indication of the candidate for the predictor. Lagrange  multiplier λ may be used to estimate RD cost per each candidate: C (i) = Di + λΔRi

[0182] wherein i is the candidate index within the list of candidates

[0183] ● Indicate the position ora selected candidate within a list of candidates. This step could be performed as described in the document JVET-AH0211.

[0184] The steps “Sort candidates based on TM cost” and “Get predictors for the candidate blocks” may be performed in parallel.

[0185] FIG. 27 shows a corresponding decoder-side process of performing similarity check for a sorted list of intra merge candidates. Most of the steps are performed in the same way as described in the description of the encoder-side steps. The step “Parse the position of a selected candidate within a list of sorted candidates” is decoder-specific and could be performed as it is done in the prior art (e.g., using a unary code or a truncated unary code) .

[0186] Technical benefit of the present disclosure may include: eliminating redundancy caused by inappropriate candidates within a candidate list. Thus the implementation of the present disclosure may lead to the improvement of rate-distortion (RD) cost of the compressed bitstream. At least some embodiments of the present disclosure implemented within a video codec may improve the coding efficiency. Simulations for a straightforward implementation demonstrate minor (about -0.03%) BD-rate performance improvement. The simulations results shown in Table 11 were performed in accordance with Joint Video Experts Team (JVET) Common Test Conditions (CTC) for sequences of “C” and “D” classes.

[0187] Table 11. Results of reordering of a TMRL list based on similarity of intra predictors when the size of the pre-sorted list is 20 elements (a) , and when the size of the pre-sorted list is 50 elements (b)

[0188] FIG. 29 conceptually illustrates an apparatus 400 with which some embodiments of the invention are implemented. The apparatus 400 may be an encoding device or a decoding device. The  apparatus 400 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc. ) , phone, PDA, or any other sort of electronic device. Such an apparatus includes various types of computer readable media and interfaces for various other types of computer readable media. The apparatus 400 includes a processor 402 and a memory 404. The memory 404 is configured to store executable instructions that, when executed by the processor, cause the processor to perform any one of the foregoing decoding or encoding methods.

[0189] The processor 402 may be a single processor or a multi-core processor in different embodiments. In some embodiments, the processor may include a GPU, NPU or DSP which may oftload various computations or complement the image processing provided by the processor 402.

[0190] Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media) . Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM) , recordable compact discs (CD-R) , rewritable compact discs (CD-RW) , read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM) , a variety of recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc. ) , flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc. ) , magnetic and / or solid state hard drives, read-only and recordable discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.

[0191] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) . In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In addition, some embodiments execute software stored in programmable logic devices (PLDs) , ROM, or RAM devices.

[0192] As used in this specification and any claims of this application, the terms “computer” , “server” , “processor” , and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. As used in this specification and any claims of this application, the terms “computer readable medium, ” “computer readable media, ” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.

[0193] The present disclosure further provides a computer readable media which is configured to store executable instructions. When the instructions are executed by a processor, the processor may  perform any one of the foregoing methods and processes. Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium) . When these instructions are executed by one or more computational or processing unit (s) (e.g., one or more processors, cores of processors, or other processing units) , they cause the processing unit (s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random access memory (RAM) chips, hard drives, erasable programmable read only memories (EPROMs) , electrically erasable programmable read-only memories (EEPROMs) , etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.

[0194] In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the invention. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.

[0195] While the disclosure has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. In addition, a number of the figures conceptually illustrate processes and methods. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process.

[0196] The foregoing is merely embodiments of the present disclosure, and is not intended to limit the scope of the disclosure. Any transformation of equivalent structure or equivalent process which uses the specification and the accompanying drawings of the present disclosure, or directly or indirectly application in other related technical fields, are likewise included within the scope of the protection of the present disclosure.

Claims

1.A method for updating a prediction candidate list, comprising:acquiring the prediction candidate list;determining similar candidates within the prediction candidate list based on template matching (TM) cost comparison and predictor similarity estimation; andupdating the prediction candidate list based on the similar candidates.2.The method of claim 1, wherein the determining similar candidates within the prediction candidate list based on TM cost comparison and predictor similarity estimation comprises:grouping at least some candidates in the prediction candidate list into one or more groups; anddetermining similar candidates within each of the one or more groups.3.The method of claim 2,wherein the prediction candidate list is sorted based on TM costs of candidates within the prediction candidate list;wherein the grouping at least some candidates in the prediction candidate list into one or more groups comprises:determining whether a TM cost difference between adjacent candidates in the prediction candidate list is no larger than a pre-defined threshold; anddetermining that the adjacent candidates are within a same group in response to the TM cost difference between the adjacent candidates being no larger than the pre-defined threshold.4.The method of claim 3, wherein the grouping at least some candidates in the prediction candidate list into one or more groups comprises:from top to bottom of the prediction candidate list:determining whether a TM cost difference between a previous candidate and a next candidate in the prediction candidate list is no larger than a pre-defined threshold;determining that the previous candidate and the next candidate are within a same current group when the TM cost difference between the previous candidate and the next candidate is no larger than the pre-defined threshold; anddetermining that the current group is finalized when the TM cost difference between the previous candidate and the next candidate is larger than the pre-defined threshold and the current group has at least two candidates.5.The method of claim 4, wherein the grouping at least some candidates in the prediction candidate list into one or more groups further comprises:determining that the current group is dropped when the TM cost difference between the first candidate and the next candidate is larger than the pre-defined threshold and the current group has less than two candidates.6.The method of claim 2, wherein the grouping at least some candidates in the prediction candidate list into one or more groups comprises:determining a reference candidate in the prediction candidate list for a current group, wherein the reference candidate is not within any of other groups of the one or more groups;checking whether a prediction difference between the reference candidate and a subsequent candidate in the prediction candidate list is less than a pre-defined distance; anddetermining that the reference candidate and the subsequent candidate are within the same current group in response to the prediction difference between the reference candidate and the subsequent candidate being less than a pre-defined distance.7.The method of claim 2, wherein the determining similar candidates within each of the one or more groups comprises:for each of the one or more groups:determining a central candidate; anddetermining similarity of other candidates within a same group with regard to the central candidate.8.The method of claim 7, wherein the determining a central candidate comprises:selecting one candidate with a minimal sum of prediction differences to other candidates within the same group as the central candidate.9.The method of claim 7, wherein the determining a central candidate comprises:selecting one candidate with a minimal sum of TM cost differences to a first candidate and to a last candidate within the same group as the central candidate.10.The method of claim 7, wherein the determining a central candidate comprises:selecting either a first candidate or a last candidate within the same group as the central candidate.11.The method of claim 7, wherein the determining a central candidate comprises:selecting one median candidate as the central candidate.12.The method of claim 7, wherein the determining similarity of other candidates within the same group with regard to the central candidate comprises:determining those of the candidates whose prediction difference to the central candidate is less than a similarity threshold as the similar candidates of the central candidate.13.The method of claim 1, wherein the updating the prediction candidate list based on the similar candidates comprises:moving the similar candidates to a bottom of the prediction candidate list.14.The method of claim 1, wherein the updating the prediction candidate list based on the similar candidates comprises:diversifying the similar candidates by modifying references lines of the similar candidates.15.The method of claim 2, wherein the pre-defined threshold is determined based on a size of a block on which candidates within the prediction candidate list are to be performed.16.The method of claim 1, wherein the determining similar candidates within the prediction candidate list based on TM cost comparison and predictor similarity estimation comprises, for each reference candidate from top to bottom within the prediction candidate list and not marked as similar candidate:scanning subsequent candidates within the prediction candidate list and not marked as similar candidate;selecting those of the subsequent candidates whose TM cost difference to the reference candidate is less than a pre-defined threshold as candidates to be checked; anddetermining those of the candidates to be checked whose prediction difference with regard to the reference candidate is less than a similarity threshold as similar candidates of the reference candidate.17.A video coding apparatus, comprising a processor and a memory, wherein the memory is configured to store executable instructions that, when executed by the processor, cause the processor to perform the method of any of claims 1 to 16.18.A computer readable medium storing executable instructions that, when executed by a processor, cause the processor to perform the method of any of claims 1 to 16.

Citation Information

Patent Citations

  • Data coding and decoding

    GB2617569A

  • Latency Reduction For Reordering Prediction Candidates

    US20230047501A1

  • Video coding and decoding

    WO2023052489A1

  • Merge candidate reordering in video coding

    WO2023278920A1