Method and apparatus for candidate list pruning

By operating on the encoding component candidates of the video signal, the uniqueness of candidates in the candidate list is ensured, and the inefficiency and high complexity problems caused by repeated candidates in the candidate list in the prior art are solved, thereby achieving more efficient video encoding.

CN119562076APending Publication Date: 2025-03-04INTERDIGITAL VC HOLDINGS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411647526.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2017-05-31
Filing Date
2018-05-30
Publication Date
2025-03-04

AI Technical Summary

Technical Problem

In the existing video encoding technology, duplicate candidates exist in the candidate list, resulting in low encoding efficiency and high complexity.

Method used

By operating on the coded component candidates of the video signal, modifying candidates are generated and compared in the candidate list to ensure uniqueness of the candidates, and non-existent candidates are added to improve the diversity of the list.

Benefits of technology

By ensuring the uniqueness of candidates in the candidate list, encoding efficiency is improved and the complexity of video codecs is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119562076A_ABST
    Figure CN119562076A_ABST
Patent Text Reader

Abstract

Video signal encoding and decoding functions may generate a list of potential candidates for use in encoding and decoding, for example, a predictor. The video signal coding component candidates undergo operations before being potentially included in the candidate list. After modifying the candidates by the operation, the candidates are checked to view whether other equal candidates have been present in the candidate list. If there is no equal candidate in the list, the modified candidate is added to the candidate list. If there are equal candidates in the list, the modified candidates are not added to the list. Operations that may be performed include rounding and clipping.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present invention is a divisional application of the following patent application: Application number: 201880042767.7, Application date: May 30, 2018, Invention name: Method and device for candidate list pruning. Technical Field

[0002] The present principles relate to the field of video compression. Background Art

[0003] Video coding organizations work hard to develop more efficient coding standards and tools. Some of these standards are High Efficiency Video Coding ISO / IEC ITU-T H.265 (HEVC), MPEG-4 Part 10, Advanced Video Coding (MPEG-4 AVC) and Joint Exploration Test Model (JEM) or H.266. Many coding tools build lists of possible candidates for things like motion vector prediction and intra prediction. The goal is to find the best candidate in the sense of RDO (Rate Distortion Optimization).

[0004] By ensuring uniqueness of candidates in these lists, it is possible to improve the performance of the tool in the case of finite-size lists by adding diversity to these lists and / or reduce the complexity of the tool in the case of unrestricted lists by, for example, removing identical candidates within these lists.

[0005] According to aspects described herein, several embodiments of candidate list pruning are described. Summary of the invention

[0006] These and other shortcomings and disadvantages of the prior art are addressed by the present invention, which is directed to methods and apparatus for candidate list pruning to increase coding efficiency and / or reduce the complexity of a video codec by ensuring uniqueness of different candidates used.

[0007] Most of the tools in these video codecs build lists of candidates before selecting the best candidate. In order to improve their performance and / or reduce their complexity, the candidates of these lists will be unique to ensure sufficient diversity with a minimum number of candidates.

[0008] The candidate pruning can be generic so that it is systematically applied to all tools, or it can be specific to each group of tools.

[0009] According to another aspect of the described embodiment, a method for encoding or decoding a video signal using a candidate list pruning is provided. The method includes performing at least one operation on a coding component candidate of the video signal to generate at least one modified candidate. The method also includes determining whether the at least one modified candidate is already present in the candidate list, and if the at least one modified candidate was not previously present in the candidate list, adding the at least one modified candidate.

[0010] According to another aspect of the described embodiment, there is provided an apparatus for encoding or decoding a video signal using a candidate list pruning. The apparatus includes: a memory, and a processor configured to encode or decode a video signal using the candidate list: performing at least one operation on a coding component candidate of the video signal to generate at least one modified candidate, determining whether the at least one modified candidate already exists in the candidate list, and if the at least one modified candidate did not previously exist in the candidate list, adding the at least one modified candidate.

[0011] According to another aspect of the described embodiments, a non-transitory computer-readable medium is provided, containing data content generated according to any encoding method embodiment or by any encoder device embodiment, for playback using a processor.

[0012] According to another aspect of the described embodiments, a signal is provided, comprising video data generated according to any encoding method embodiment or by any encoder apparatus embodiment, for playback using a processor.

[0013] According to another aspect of the described embodiments, there is provided a computer program product comprising instructions which, when executed by a computer, cause the computer to implement the method of any one of the decoding method or decoding apparatus embodiments.

[0014] These and other aspects, features and advantages of the present principles will become apparent from the following detailed description of exemplary embodiments, which is to be read in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 The AMVP derivation process for two motion vector predictors is shown.

[0016] Figure 2 The combined derivation process of seven prediction quantities and their associated reference frames in the reference frame list and IC flags is shown.

[0017] Figure 3 The affine AMVP derivation process for two affine pairs of motion vector predictors for a particular reference frame of a particular reference frame list is shown.

[0018] Figure 4The AMVP derivation process of two unique motion vector predictors for a particular reference frame of a particular reference frame list is shown.

[0019] Figure 5 The first two steps of the AMVP derivation process of two unique motion vector predictors for a particular reference frame of a particular reference frame list are shown.

[0020] Figure 6 The first two steps of the AMVP derivation process of two unique motion vector predictors for a particular reference frame of a particular reference frame list are shown.

[0021] Figure 7 The combined derivation process of seven unique predictors and their associated reference frames in the reference frame list and IC flags is shown.

[0022] Figure 8 The affine AMVP derivation process for two unique affine pairs of motion vector predictors for a particular reference frame of a particular reference frame list is shown.

[0023] Fig. 9 A typical encoder is shown to which the described embodiments may be applied.

[0024] Fig.10 A typical decoder is shown to which the described embodiments may be applied.

[0025] Fig.11 One embodiment of a method for encoding or decoding a video signal using candidate list pruning is shown.

[0026] Fig.12 One embodiment of an apparatus for encoding or decoding a video signal using candidate list pruning is shown. DETAILED DESCRIPTION

[0027] Methods for candidate list pruning for video encoding and decoding are described herein.

[0028] Most tools of video codecs build lists of candidates before selecting the best candidate to be used in the encoding or decoding process. These candidates are candidates for video coding components used in the encoding or decoding of video signals. Video components can be, for example, elements such as motion vectors, predictions, quantization parameters. In order to improve their performance and / or reduce their complexity, the candidates of these lists should be unique to ensure sufficient diversity with a minimum number of candidates. Candidate pruning can be generic, in that it can be systematically applied to all tools, or it can be specific to each group of tools. Some such tools that use lists are presented below, but the general aspects described herein are not limited to these tools.

[0029] 1. AMVP prediction

[0030] AMVP (Advanced Motion Vector Prediction) prediction consists of building a list of two predictors per reference frame per reference frame list (L0 and L1). The two AMVP predictors consist of motion vectors.

[0031] For a particular reference frame of a particular reference frame list, the predictor is derived from spatial and / or temporal neighboring blocks (coding units / prediction units). Further operations can then be performed on these predictors, such as FRUC (frame rate up conversion) derivation (i.e., motion vector refinement), cropping and / or rounding operations, etc. The process of such predictor derivation is as follows Figure 1 shown.

[0032] 2. Combined Forecast

[0033] Merge prediction involves constructing a set of seven motion vector predictors and their associated reference frames and reference frame lists and corresponding IC flags (ie, local illumination compensation flags).

[0034] The seven combined forecast quantities include:

[0035] -Motion vector

[0036] - Reference frame index

[0037] - Reference frame list

[0038] -IC logo

[0039] The predictors are derived from the spatial and / or temporal neighbors from which the motion vectors and associated reference frames and IC flags are selected. Further operations may then be performed on these predictors, such as, for example, clipping and / or rounding operations.

[0040] The process of deriving such a prediction quantity is as follows Figure 2 As shown, once seven candidates are obtained, stop.

[0041] 3. FRUC prediction

[0042] The FRUC (frame rate up conversion) process uses the merged predictors described in the previous section, but does not use the IC flag information of these predictors.

[0043] The FRUC merge predictions from the merged candidates include:

[0044] -Motion vector

[0045] - Reference frame index

[0046] - Reference frame list

[0047] The predictors are derived from the spatial and / or temporal neighbors from which the motion vector and the associated reference frame are selected. Further operations may then be performed on these predictors, such as, for example, clipping and / or rounding operations.

[0048] The process of deriving such a prediction quantity is as follows Figure 2 shown.

[0049] 4. Affine AMVP prediction

[0050] Affine AMVP prediction is very similar to that of classic AMVP, but affine motion estimation and compensation is performed using two motion vectors (subsequently called affine pairs of motion vectors). It then consists of finding two affine pairs of motion vector predictors for each reference frame of each reference frame list (L0 and L1).

[0051] Affine AMVP prediction quantities include:

[0052] - A pair of motion vectors

[0053] For a particular reference frame of a particular reference frame list, the prediction quantity is from spatial and / or temporal neighboring blocks. Further operations such as cropping and / or rounding operations can then be performed on these prediction quantities.

[0054] The process of deriving such a prediction quantity is as follows Figure 3 shown.

[0055] 5. Intra-frame prediction

[0056] Intra prediction consists of testing several directional predictions (9 in AVC, up to 35 in HEVC and 67 in JEM) in order to find the best prediction. In recent codecs, several new tools have been added around intra prediction, such as MPM (Most Probable Mode), RSAF (Reference Sample Adaptive Filter), PDPC (Position Dependent Intra Prediction Combining).

[0057] In any case, several or all predictions are tested, thereby reducing the number of predictions may reduce complexity.

[0058] The main aspects of the described embodiments are:

[0059] During the construction of any candidate list, each time a new candidate is added to that list:

[0060] - Perform all operations that can modify this candidate

[0061] - Compare this new candidate with all selected candidates in the list

[0062] - If it does not exist yet, add it to the list

[0063] This is done to diversify the list by ensuring uniqueness of each candidate, or to reduce the size of the list and thereby reduce the complexity of processing the list.

[0064] The following examples explain how this is applied to each encoding mode −

[0065] 1: AMVP, 2: Merge, 3: FRUC, 4: Affine, 5: Intra.

[0066] In a first embodiment, the diversity of the generated AMVP list of the predictive measure may be improved in several ways.

[0067] In a first sub-embodiment of the first embodiment, the AMVP scheme, operations that can modify candidates should be applied before adding the candidates to the list of predicted quantities.

[0068] exist Figure 1 In the scheme of , these operations represent rounding operations (1 / 4 pixel and integer motion vector), but can also be extended to future operations (clipping, another rounding, etc.). These operations should be performed together after the candidates have been collected and before they are added to the list if they are not already there, as in Figure 4 shown.

[0069] The "compare / add" function is to compare the obtained candidate with the already selected candidate. Since the AMVP prediction quantity only consists of motion vectors, this function compares the motion vectors.

[0070] In the second sub-embodiment of the first embodiment ( Figure 1 and Figure 4 In the AMVP scheme), the second spatial candidate does not use information about the selected first candidate (if any).

[0071] The selected first motion vector predictor can then be used to inform the second spatial motion vector search. The first few steps of the scheme are then as follows Figure 5 shown.

[0072] Because the operation of obtaining spatial candidates can find a candidate in several ways and stops once one is found, the "different" function represents a comparison of potential candidates with the selected candidate to ensure the selection of a different predictor.

[0073] If the first two sub-embodiments are coupled, an operation of modifying the motion vector predictor once the candidate is reached (rounding) may also be performed to maximize the number of different candidates, e.g. Figure 6 As shown and in Figure 4 middle.

[0074] In a second embodiment, the diversity of the generated merged list of predictors may be improved by comparing each new candidate to previously selected candidates before adding it to the list (if it does not already exist).

[0075] and Figure 2 compared to, Figure 7 This embodiment is described. On this figure, the "compare / add" function consists in (i) comparing the just-obtained forecast with the already selected forecast and (ii) adding it if it does not already exist.

[0076] Since the merged predictor consists of the motion vector, the reference frame index in the reference frame list and the IC flag, the comparison involves testing these four components.

[0077] In a third embodiment, the diversity of FRUC candidates from merged candidates can be improved by: (i) using the same improvement as for merging (i.e., Figure 7 present), and (ii) from Figure 7 The IC mark is removed during the merging process.

[0078] FRUC should use the procedure in the second embodiment (such as Figure 7 ), to inherit candidate diversity from the merge improvement.

[0079] To remove the IC flag, the comparisons performed in the "compare / add" function and the "difference" function of the spatial candidates should focus only on the three characteristics of the FRUC predictor (motion vector, reference frame index in the reference frame list), rather than the four in the merged predictor. To do this, these functions must be informed of the used mode (merge or FRUC).

[0080] In a fourth embodiment, the diversity of the affine AMVP predictors may also be improved by ensuring a list of unique predictors.

[0081] To this end, all operations capable of modifying the predictions are performed before selecting the affine pairs to ensure sufficient diversity. Figure 8 The process is shown where all triplets of motion vector predictors are rounded and clipped before the two best predictions are selected. For example, the two best triplets may be the first two distinct triplets of lower cost, although other criteria may be used for selecting which should be added as candidates.

[0082] If not enough affine predictions are found, the added AMVP candidates should also be processed using the "compare / add" function, which manages the comparison of the candidate affine pairs with the previously selected affine pairs before adding them (if they do not already exist). Since some affine pair candidates may be removed because, for example, they are equal to the selected affine pairs, the affine AMVP list may be incomplete, i.e. not populated with two unique affine pairs of motion vectors. It may be useful to fill this list with a pair of zero motion vectors.

[0083] In the fifth embodiment, the number of intra prediction quantities can be reduced by removing redundant prediction quantities.

[0084] Some reference samples used for directional prediction may be equal because they are the same in the predicted frame, or they are not available and are filled by the first available neighbor.

[0085] In that case, several directions may produce the same prediction which can be easily inferred. Only one of these directions in the test set may then be retained as a candidate.

[0086] For example, on the left border of the frame, all left reference samples are filled with the first top sample. The horizontal prediction gives the same prediction as all the bottom left predictions, which can be removed from the set of candidates for testing. An example is mode 8 of AVC, modes 2 to 9 of HEVC and modes 2 to 18 of JEM (Joint Exploration Test Model).

[0087] In the sixth embodiment, several previous embodiments can be coupled together. For AVC and HEVC, only the first two sub-embodiments of the first embodiment, the second embodiment and the fifth embodiment, can be applied. And, for JEM, all embodiments can be used. In both cases, any combination of the available embodiments can be followed.

[0088] In another embodiment, several embodiments are coupled in JEM as:

[0089] -For AMVP: Figure 4 and Figure 5 The first two sub-embodiments of the first embodiment are described.

[0090] -For merging: The second embodiment, such as Figure 7 describe.

[0091] -For FRUC merge candidates: Figure 7 The third embodiment described is associated with the "compare / add" function which removes the notification of the IC mark test.

[0092] -For affine AMVP: the fourth embodiment, such as Figure 8 describe.

[0093] The described embodiments can be applied to both encoders and decoders. When encoding, all candidates are collected and compared in some RDO loops to isolate the best candidate. When decoding, candidates will be collected in the same way until all possibilities are exhausted or until the best coded candidate searched is found.

[0094] For example,

[0095] - In AMVP, candidates are collected for each reference frame at encoding time. Then at decoding time, the reference frame is known (already transmitted) and candidates are collected for that specific reference frame in exactly the same way as at encoding time.

[0096] - In "Merge", seven candidates are collected at encoding time and the index of the best candidate is sent. Then at decoding time, candidates are collected in the same way until the index of the searched candidate is reached.

[0097] Therefore, the process of collecting such candidates is exactly the same on the encoding and decoding side. To speed up the decoder, the decoder can stop these processes once the required candidates are reached.

[0098] Fig.11 One embodiment of a method 1100 for pruning a block of encoded or decoded video data using a candidate list is shown. The method starts at start block 1101 and proceeds to block 1110 for performing at least one operation on a coding component candidate to generate (multiple) modified coding component candidates. Control then proceeds from block 1110 to block 1120 to determine whether (multiple) modified coding component candidates already exist in the candidate list. Control then proceeds from block 1120 to block 1130 to add at least one modified candidate if it did not previously exist in the candidate list.

[0099] Fig.12 One embodiment of an apparatus 1200 for encoding or decoding a block of video data is shown. The apparatus includes a processor 1210 having input and output ports and in signal connectivity with a memory 1220 also having input and output ports. The apparatus may perform any of the foregoing method embodiments, or a variation thereof that uses candidate list pruning to encode or decode video signal data.

[0100] The functions of the various elements shown in the drawings may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or multiple separate processors (some of which may be shared). In addition, the explicit use of the term "processor" or "controller" should not be interpreted as referring exclusively to hardware capable of executing software, and may implicitly include, but are not limited to, digital signal processor ("DSP") hardware, read-only memory ("ROM") for storing software, random access memory ("RAM"), and non-volatile storage.

[0101] Other conventional and / or custom hardware may also be included. Similarly, any switches shown in the figures are conceptual only. Their functions may be implemented through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, as more specifically understood from the context, and the particular technique may be selected by the implementer.

[0102] This description exemplifies the present principles. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the present principles and are included within its spirit and scope.

[0103] All examples and conditional language recited herein are intended for teaching purposes to aid the reader in understanding the present principles and concepts contributed by the inventor(s) to further the art, and should be construed as not being limited to such specifically recited examples and conditions.

[0104] In addition, all statements describing the principles, aspects and embodiments of the present principles and specific examples thereof herein are intended to cover both structural and functional equivalents thereof. In addition, such equivalents are intended to include both currently known equivalents and equivalents developed in the future (i.e., any element that performs the same function, regardless of structure).

[0105] Thus, for example, those skilled in the art will recognize that the block diagrams presented herein represent conceptual illustrations of illustrative circuits embodying the present principles. Similarly, it will be recognized that any flow charts, flow diagrams, state transition diagrams, pseudo-code, etc. represent various processes that can be substantially represented in a computer-readable medium and thus executed by a computer or processor, whether or not such computer or processor is explicitly shown.

[0106] In the claims herein, any element expressed as a means for performing a specified function is intended to encompass any manner of performing that function, including, for example, a) a combination of circuit elements that perform that function or b) any form of software, thus including firmware, microcode, etc., combined with appropriate circuitry for executing that software to perform the function. The present principle defined by such claims lies in the fact that the functions provided by the various recited components are combined and provided together in the manner required by the claims. It is therefore considered that any components that can provide those functions are equivalent to those shown herein.

[0107] References in the specification to "one embodiment" or "an embodiment" of the present principles, as well as other variations thereof, mean that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" and any other variations thereof in various places throughout the specification are not necessarily all referring to the same embodiment.

[0108] In summary, at least the described embodiments provide candidate list pruning for video encoding and decoding. The goal is to find the best candidate in the sense of RDO among various candidates during video encoding and decoding.

[0109] By ensuring uniqueness of candidates in these lists, it is possible to improve the performance of the tool in the case of finite-size lists by adding diversity to these lists and / or reduce the complexity of the tool in the case of infinite lists by, for example, removing identical candidates within these lists.

Claims

1. A method comprising: Encode a video signal using a candidate list: performing all motion vector rounding operations on the advanced motion vector predictor motion vector to generate at least one modified candidate; determining whether the at least one modified candidate exists in a candidate list; If the at least one modified candidate does not exist in the candidate list, the at least one modified candidate is added to the candidate list, or if the at least one modified candidate exists in the candidate list, the at least one modified candidate is not added to the candidate list.

2. A method comprising: Decode video signals, including: performing all motion vector rounding operations on the advanced motion vector predictor motion vector to generate at least one modified candidate; determining whether the at least one modified candidate exists in a candidate list; If the at least one modified candidate does not exist in the candidate list, the at least one modified candidate is added to the candidate list, or if the at least one modified candidate exists in the candidate list, the at least one modified candidate is not added to the candidate list.

3. A device comprising: Memory, and A processor configured to encode a video signal using the candidate list: performing all motion vector rounding operations on the advanced motion vector predictor motion vector to generate at least one modified candidate; determining whether the at least one modified candidate exists in a candidate list; If the at least one modified candidate does not exist in the candidate list, the at least one modified candidate is added to the candidate list, or if the at least one modified candidate exists in the candidate list, the at least one modified candidate is not added to the candidate list.

4. A device comprising: Memory, and A processor configured to decode a video signal using the candidate list: performing all motion vector rounding operations on the advanced motion vector predictor motion vector to generate at least one modified candidate; determining whether the at least one modified candidate exists in a candidate list; If the at least one modified candidate does not exist in the candidate list, the at least one modified candidate is added to the candidate list, or if the at least one modified candidate exists in the candidate list, the at least one modified candidate is not added to the candidate list.

5. The method according to claim 1, wherein: The at least one operation includes clipping, rounding, and selecting a different candidate. 6 . The method of claim 1 , wherein the video signal coding component candidate comprises at least one of a motion vector, a reference block, a reference frame, a reference frame index, and a reference frame list.

7. The method of claim 1, wherein the at least one operation comprises rounding of motion vectors to quarter-pixel resolution and integer motion vector rounding of two predictors in an advanced motion vector prediction process.

8. The method according to claim 7, wherein: A second motion vector is obtained in the region not considered as a candidate for the first motion vector.

9. The method according to claim 1, wherein: The merged predictor including the motion vector, reference frame index, reference frame list and IC flag is a candidate to be added to the candidate list if not previously present in the candidate list.

10. The method according to claim 1, wherein: Find candidates in the frame rate up-conversion process, which include motion vectors, reference frame indices, and reference frame lists.

11. A non-transitory computer-readable medium comprising data content generated by the method according to claim 1 for playback.

12. A computer program product comprising instructions which, when said program is executed by a computer, cause said computer to execute the method according to claim 2.

13. The device according to claim 3, wherein: The at least one operation includes clipping, rounding, and selecting a different candidate.

14. The device according to claim 4, wherein: The at least one operation includes clipping, rounding, and selecting a different candidate.

15. A method comprising: Encode a video signal using a candidate list: performing at least one of a plurality of rounding operations on an affine prediction candidate of a video signal to generate at least one modified affine prediction candidate; determining that the at least one modified affine prediction candidate is not currently in a candidate list; as well as Based on determining that the at least one modified affine prediction candidate is not in the candidate list, at least one modified affine prediction candidate is added, and when the candidate list is not full, the added AMVP candidate is compared with the affine candidate, and if it does not exist yet, it is added to the candidate list, and if the candidate list is not filled, the unfilled portion of the candidate list is filled with a pair of zero motion vectors.

16. An apparatus comprising: Memory, and A processor configured to encode a video signal using the candidate list: performing at least one of a plurality of rounding operations on an affine prediction candidate of a video signal to generate at least one modified affine prediction candidate; determining that the at least one modified affine prediction candidate is not currently in a candidate list; as well as Based on determining that the at least one modified affine prediction candidate is not in the candidate list, at least one modified affine prediction candidate is added, and when the candidate list is not full, the added AMVP candidate is compared with the affine candidate, and if it does not exist yet, it is added to the candidate list, and if the candidate list is not filled, the unfilled portion of the candidate list is filled with a pair of zero motion vectors.

17. A method comprising: Decodes a video signal using a candidate list, including: performing at least one of a plurality of rounding operations on an affine prediction candidate of a video signal to generate at least one modified affine prediction candidate; determining that the at least one modified affine prediction candidate is not currently in a candidate list; and Based on determining that the at least one modified affine prediction candidate is not in the candidate list, at least one modified affine prediction candidate is added, and when the candidate list is not full, the added AMVP candidate is compared with the affine candidate, and if it does not exist yet, it is added to the candidate list, and if the candidate list is not filled, the unfilled portion of the candidate list is filled with a pair of zero motion vectors.

18. An apparatus comprising: Memory, and A processor configured to decode a video signal using the candidate list: performing at least one of a plurality of rounding operations on an affine prediction candidate of a video signal to generate at least one modified affine prediction candidate; determining that the at least one modified affine prediction candidate is not currently in a candidate list; as well as Based on determining that the at least one modified affine prediction candidate is not in the candidate list, at least one modified affine prediction candidate is added, and when the candidate list is not full, the added AMVP candidate is compared with the affine candidate, and if it does not exist yet, it is added to the candidate list, and if the candidate list is not filled, the unfilled portion of the candidate list is filled with a pair of zero motion vectors.

19. The method of claim 15, wherein the intra prediction candidate comprises at least one of a motion vector or a reference sample.

20. The method of claim 15, wherein the at least one rounding operation comprises rounding of motion vectors to quarter-pixel resolution and integer motion vector rounding of two predictors in an advanced motion vector prediction process.

21. The method according to claim 20, wherein: A second motion vector is obtained in the region not considered as a candidate for the first motion vector.

22. The method according to claim 15, wherein: If not previously present in the candidate list, the intra prediction candidate including the motion vector, the reference frame index, the reference frame list and the IC flag is a candidate to be added to the candidate list.

23. The method according to claim 15, wherein: Find candidates in the frame rate up-conversion process, which include motion vectors, reference frame indices, and reference frame lists.

24. A non-transitory computer readable medium storing instructions which, when executed by a computer, cause the computer to perform the method for playback according to claim 17.

25. A computer program product comprising instructions which, when said program is executed by a computer, cause said computer to perform the method according to claim 15.

26. The apparatus of claim 16, wherein the at least one operation comprises clipping, rounding, and selecting a different candidate.

27. The apparatus of claim 18, wherein the at least one operation comprises clipping, rounding, and selecting a different candidate.

28. The method of claim 15, wherein: The first operation is rounding, the second is clipping.

29. The method of claim 17, wherein: The first operation is rounding, the second is clipping.

30. The method of claim 17, wherein: If not previously present in the candidate list, the intra prediction candidate including the motion vector, the reference frame index, the reference frame list and the IC flag is a candidate to be added to the candidate list.

31. The method of claim 17, wherein: Find candidates in the frame rate up-conversion process, which include motion vectors, reference frame indices, and reference frame lists.

32. The apparatus of claim 18, wherein: If not previously present in the candidate list, the intra prediction candidate including the motion vector, the reference frame index, the reference frame list and the IC flag is a candidate to be added to the candidate list.

33. The apparatus of claim 18, wherein: Find candidates in the frame rate up-conversion process, which include motion vectors, reference frame indices, and reference frame lists.