Method and apparatus of temporal and GPM-derived affine candidates in video coding systems
Regression-based affine candidates derived from temporal and spatial motion information enhance coding efficiency in video coding systems by addressing inefficiencies in handling complex motion patterns, reducing computational complexity and memory access bandwidth.
Patent Information
- Application Number
- PCT/CN2025/108567
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-15
- Filing Date
- 2025-07-15
- Publication Date
- 2026-01-22
AI Technical Summary
Existing video coding systems face inefficiencies in coding complex motion patterns such as zoom, rotation, and perspective motions, leading to increased computational complexity and memory access bandwidth, particularly in advanced standards like VVC.
Implement regression-based affine candidates derived from temporal and spatial motion information to enhance coding efficiency by generating affine merge and AMVP lists using inherited and constructed candidates, including regression-based processes and affine motion fields from collocated frames.
Improves coding efficiency by reducing computational complexity and memory access bandwidth while maintaining prediction accuracy, especially for affine motion models in video coding systems.
Smart Images

Figure CN2025108567_22012026_PF_FP_ABST
Abstract
Description
METHOD AND APPARATUS OF TEMPORAL AND GPM-DERIVED AFFINE CANDIDATES IN VIDEO CODING SYSTEMSCROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 671,319 filed on July 15, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION
[0002] The present invention relates to video coding system. In particular, the present invention relates to regression-based affine candidates and temporal constructed affine candidates to improve coding efficiency.BACKGROUND
[0003] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.
[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction 110, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, is provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.
[0006] The decoder, as shown in Fig. 1B, can use some of the functional blocks as the encoder. For example, the decoder can reuse Inverse Quantization 124 and Inverse Transform 126; however, Transform 118 and Quantization 120 are not needed at the decoder. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.
[0007] In VVC, the Sequence Parameter Set (SPS) and the Picture Parameter Set (PPS) contain high-level syntax elements that apply to entire coded video sequences and pictures, respectively. The Picture Header (PH) and Slice Header (SH) contain high-level syntax elements that apply to a current coded picture and a current coded slice, respectively.
[0008] In VVC, a coded picture is partitioned into non-overlapped square block regions represented by the associated coding tree units (CTUs) . A coded picture can be represented by a collection of slices, each comprising an integer number of CTUs. The individual CTUs in a slice are processed in raster-scan order. A bi-predictive (B) slice may be decoded using intra prediction or inter prediction with at most two motion vectors and reference indices to predict the sample values of each block. A predictive (P) slice is decoded using intra prediction or inter prediction with at most one motion vector and reference index to predict the sample values of each block. An intra (I) slice is decoded using intra prediction only.
[0009] Affine Motion Compensated Prediction
[0010] In HEVC, only translational motion model is applied for motion compensation prediction (MCP) . While in the real world, there are many kinds of motion, e.g. zoom in / out, rotation, perspective motions and the other irregular motions. In VVC, a block-based affine transform motion compensation prediction is applied. As shown Figs. 2A-B, the affine motion field of the blocks 210 and 220 is described by motion information of two control point (4-parameter) in Fig. 2A or three control point motion vectors (6-parameter) in Fig. 2B.
[0011] For 4-parameter affine motion model, motion vector at sample location (x, y) in a block is derived as:
[0012] For 6-parameter affine motion model, motion vector at sample location (x, y) in a block is derived as:
[0013] Where (mv0x, mv0y) is motion vector of the top-left corner control point, (mv1x, mv1y) is motion vector of the top-right corner control point, and (mv2x, mv2y) is motion vector of the bottom-left corner control point.
[0014] In order to simplify the motion compensation prediction, block based affine transform prediction is applied. To derive motion vector of each 4×4 luma subblock, the motion vector of the centre sample of each subblock, as shown in Fig. 3, is calculated according to above equations, and rounded to 1 / 16 fraction accuracy. Then, the motion compensation interpolation filters are applied to generate the prediction of each subblock with the derived motion vector. The subblock size of chroma-components is also set to be 4×4. The MV of a 4×4 chroma subblock is calculated as the average of the MVs of the top-left and bottom-right luma subblocks in the collocated 8x8 luma region.
[0015] As is for translational-motion inter prediction, there are also two affine motion inter prediction modes: affine merge mode and affine AMVP mode.
[0016] Affine Merge Prediction
[0017] AF_MERGE mode can be applied for CUs with both width and height larger than or equal to 8. In this mode, the CPMVs (Control Point MVs) of the current CU is generated based on the motion information of the spatial neighbouring CUs. There can be up to five CPMVP (CPMV Prediction) candidates and an index is signalled to indicate the one to be used for the current CU. The following three types of CPVM candidate are used to form the affine merge candidate list: – Inherited affine merge candidates that are extrapolated from the CPMVs of the neighbour CUs – Constructed affine merge candidates CPMVPs that are derived using the translational MVs of the neighbour CUs – Zero MVs
[0018] In VVC, there are two inherited affine candidates at most, which are derived from the affine motion model of the neighbouring blocks, one from left neighbouring CUs and one from above neighbouring CUs. The candidate blocks are the same as those shown in Fig. 4. For the left predictor, the scan order is A0→A1, and for the above predictor, the scan order is B0→B1→B2. Only the first inherited candidate from each side is selected. No pruning check is performed between two inherited candidates. When a neighbouring affine CU is identified, its control point motion vectors are used to derived the CPMVP candidate in the affine merge list of the current CU. As shown in Fig. 5, if the neighbouring left bottom block A of the current block 510 is coded in affine mode, the motion vectors v2 , v3 and v4 of the top left corner, above right corner and left bottom corner of the CU 520 containing block A are attained. When block A is coded with 4-parameter affine model, the two CPMVs of the current CU (i.e., v0 and v1) are calculated according to v2, and v3. In case that block A is coded with 6-parameter affine model, the three CPMVs of the current CU are calculated according to v2 , v3 and v4.
[0019] Constructed affine candidate means the candidate is constructed by combining the neighbouring translational motion information of each control point. The motion information for the control points is derived from the specified spatial neighbours and temporal neighbour for a current block 610 as shown in Fig. 6. CPMVk (k=1, 2, 3, 4) represents the k-th control point. For CPMV1, the B2→B3→A2 blocks are checked and the MV of the first available block is used. For CPMV2, the B1→B0 blocks are checked and for CPMV3, the A1→A0 blocks are checked. For TMVP is used as CPMV4 if it’s available.
[0020] After MVs of four control points are attained, affine merge candidates are constructed based on the motion information. The following combinations of control point MVs are used to construct in order: {CPMV1, CPMV2, CPMV3} , {CPMV1, CPMV2, CPMV4} , {CPMV1, CPMV3, CPMV4} , {CPMV2, CPMV3, CPMV4} , {CPMV1, CPMV2} , {CPMV1, CPMV3}
[0021] The combination of 3 CPMVs constructs a 6-parameter affine merge candidate and the combination of 2 CPMVs constructs a 4-parameter affine merge candidate. To avoid motion scaling process, if the reference indices of control points are different, the related combination of control point MVs is discarded.
[0022] After inherited affine merge candidates and constructed affine merge candidate are checked, if the list is still not full, zero MVs are inserted to the end of the list.
[0023] Affine AMVP Prediction
[0024] Affine AMVP mode can be applied for CUs with both width and height larger than or equal to 16. An affine flag in the CU level is signalled in the bitstream to indicate whether affine AMVP mode is used and then another flag is signalled to indicate whether 4-parameter affine or 6-parameter affine is used. In this mode, the difference of the CPMVs of the current CU and their predictors CPMVPs is signalled in the bitstream. The affine AVMP candidate list size is 2 and it is generated by using the following four types of CPVM candidate in order: – Inherited affine AMVP candidates that extrapolated from the CPMVs of the neighbour CUs – Constructed affine AMVP candidates CPMVPs that are derived using the translational MVs of the neighbour CUs – Translational MVs from neighbouring CUs – Zero MVs
[0025] The checking order of inherited affine AMVP candidates is the same as the checking order of inherited affine merge candidates. The only difference is that, for AVMP candidate, only the affine CU that has the same reference picture as current block is considered. No pruning process is applied when inserting an inherited affine motion predictor into the candidate list.
[0026] Constructed AMVP candidate is derived from the specified spatial neighbours of the current block 610 as shown in Fig. 6. The same checking order is used as that in the affine merge candidate construction. In addition, the reference picture index of the neighbouring block is also checked. In the checking order, the first block that is inter coded and has the same reference picture as in current CUs is used. When the current CU is coded with the 4-parameter affine mode, and mv0and mv1 are both availlalbe, they are added as one candidate in the affine AMVP list. When the current CU is coded with 6-parameter affine mode, and all three CPMVs are available, they are added as one candidate in the affine AMVP list. Otherwise, the constructed AMVP candidate is set as unavailable.
[0027] If the number of affine AMVP list candidates is still less than 2 after valid inherited affine AMVP candidates and constructed AMVP candidate are inserted, mv0, mv1 and mv2 will be added as the translational MVs in order to predict all control point MVs of the current CU, when available. Finally, zero MVs are used to fill the affine AMVP list if it is still not full.
[0028] Affine Motion Information Storage
[0029] In VVC, the CPMVs of affine CUs are stored in a separate buffer. The stored CPMVs are only used to generate the inherited CPMVPs in the affine merge mode and affine AMVP mode for the lately coded CUs. The subblock MVs derived from CPMVs are used for motion compensation, MV derivation of merge / AMVP list of translational MVs and de-blocking.
[0030] To avoid the picture line buffer for the additional CPMVs, affine motion data inheritance from the CUs of the above CTU is treated differently for the inheritance from the normal neighbouring CUs. If the candidate CU for affine motion data inheritance is in the above CTU line, the bottom-left and bottom-right subblock MVs in the line buffer instead of the CPMVs are used for the affine MVP derivation. In this way, the CPMVs are only stored in a local buffer. If the candidate CU is 6-parameter affine coded, the affine model is degraded to 4-parameter model. As shown in Fig. 7, along the top CTU boundary, the bottom-left and bottom right subblock motion vectors of a CU are used for affine inheritance of the CUs in bottom CTUs. In Fig. 7, line 710 and line 712 indicate the x and y coordinates of the picture with the origin (0, 0) at the upper left corner. Legend 720 shows the meaning of various motion vectors, where arrow 722 represents the CPMVs for affine inheritance in the local buff, arrow 724 represents sub-block vectors for MC / merge / skip / AMVP / deblocking / TMVPs in the local buffer and for affine inheritance in the line buffer, and arrow 726 represents sub-block vectors for MC / merge / skip / AMVP / deblocking / TMVPs.
[0031] Prediction Refinement with Optical Flow for Affine Mode
[0032] Subblock based affine motion compensation can save memory access bandwidth and reduce computation complexity compared to pixel based motion compensation, albeit at the cost of some loss in prediction accuracy. To achieve a finer granularity of motion compensation, prediction refinement with optical flow (PROF) is used to refine the subblock based affine motion compensated prediction without increasing the memory access bandwidth for motion compensation. In VVC, after the subblock based affine motion compensation is performed, luma prediction sample is refined by adding a difference derived by the optical flow equation. The PROF is described as following four steps:
[0033] Step 1) The subblock-based affine motion compensation is performed to generate subblock prediction I (i, j) .
[0034] Step2) The spatial gradients gx (i, j) and gy (i, j) of the subblock prediction are calculated at each sample location using a 3-tap filter [-1, 0, 1] . The gradient calculation is exactly the same as gradient calculation in BDOF. gx (i, j) = (I (i+1, j) >> shift1) - (I (i-1, j) >> shift1) (3) gy (i, j) = (I (i, j+1) >> shift1) - (I (i, j-1) >> shift1) (4) shift1 is used to control the gradient’s precision. The subblock (i.e. 4x4) prediction is extended by one sample on each side for the gradient calculation. To avoid additional memory bandwidth and additional interpolation computation, those extended samples on the extended borders are copied from the nearest integer pixel position in the reference picture.
[0035] Step 3) The luma prediction refinement is calculated by the following optical flow equation. ΔI (i, j) = gx (i, j) *Δvx (i, j) +gy (i, j) *Δvy (i, j) (5) where the Δv (i, j) is the difference between sample MV computed for sample location (i, j) , denoted by v (i, j) , and the subblock MV of the subblock to which sample (i, j) belongs, as shown in Fig. 8. The Δv (i, j) is quantized in the unit of 1 / 32 luam sample precision.
[0036] In Fig. 8, sub-block 822 corresponds to a reference sub-block for sub-block 820 as pointed by the motion vector vSB (812) . The reference sub-block 822 represents a reference sub-block resulted from translational motion of block 820. Reference sub-block 824 corresponds to a reference sub-block with PROF. The motion vector for each pixel is refined by Δv (i, j) . For example, the refined motion vector v (i, j) 814 for the top-left pixel of the sub-block 820 is derived based on the sub-block MV vSB (812) modified by Δv (i, j) 816.
[0037] Since the affine model parameters and the sample location relative to the subblock centre are not changed from subblock to subblock, Δv (i, j) can be calculated for the first subblock, and reused for other subblocks in the same CU. Let dx (i, j) and dy (i, j) be the horizontal and vertical offset from the sample location (i, j) to the center of the subblock (xSB, ySB) , Δv (x, y) can be derived by the following equation,
[0038] In order to keep accuracy, the enter of the subblock (xSB, ySB) is calculated as ( (WSB -1 ) / 2, (HSB -1 ) / 2 ) , where WSB and HSB are the subblock width and height, respectively.
[0039] For 4-parameter affine model,
[0040] For 6-parameter affine model, where (v0x, v0y) , (v1x, v1y) , (v2x, v2y) are the top-left, top-right and bottom-left control point motion vectors, w and h are the width and height of the CU.
[0041] Step 4) Finally, the luma prediction refinement ΔI (i, j) is added to the subblock prediction I (i, j) . The final prediction I’ is generated as the following equation. I′ (i, j) = I (i, j) +ΔI (i, j) .
[0042] PROF is not applied in two cases for an affine coded CU: 1) all control point MVs are the same, which indicates the CU only has translational motion; 2) the affine motion parameters are greater than a specified limit because the subblock based affine MC is degraded to CU based MC to avoid large memory access bandwidth requirement.
[0043] A fast encoding method is applied to reduce the encoding complexity of affine motion estimation with PROF. PROF is not applied at affine motion estimation stage in following two situations: a) if this CU is not the root block and its parent block does not select the affine mode as its best mode, PROF is not applied since the possibility for current CU to select the affine mode as best mode is low; b) if the magnitude of four affine parameters (C, D, E, F) are all smaller than a predefined threshold and the current picture is not a low delay picture, PROF is not applied because the improvement introduced by PROF is small for this case. In this way, the affine motion estimation with PROF can be accelerated.
[0044] Affine Subblock BDOF Refinement
[0045] In JVET-AE0148, a technique is proposed to apply BDOF subblock MV refinement and sample adjustment to an affine coded block when the block meets the BDOF condition and the block is determined to use subblock MC, such as OBMC. It also proposes to apply BDOF to SbTMVP (Subblock-based Temporal Motion Vector Prediction) coded block, when the entire or a subarea of the block meets the BDOF condition.
[0046] An affine coded block derives MVs for each 4×4 subblock from the affine model. The BDOF process starts with the 4×4 subblocks grouping with identical MVs. When the grouped subblock size is less than 256, BDOF MV refinement is processed in 4×4 subblock grid, and otherwise in 8×8 subblock grid.
[0047] The BDOF enabling condition is same as ECM-9.0, such as two reference pictures having equal POC distance to the current picture, and equal weight prediction.
[0048] History-Parameter-Based Affine Model Inheritance and Non-Adjacent Affine Mode
[0049] History-parameter-based affine model inheritance (HAMI) allows the affine model to be inherited from a previously affine-coded block which may not be neighbouring to the current block. Similar to the enhanced regular merge mode, non-adjacent affine mode (NA-AFF) is introduced.
[0050] A first history-parameter table (HPT) is established. An entry of the first HPT stores a set of affine parameters: a, b, c and d, and each of which is represented by a 16-bit signed integer. Entries in HPT are categorized by reference list and reference index. Five reference indices are supported for each reference list in HPT. The category of HPT (denoted as HPTCat) can be calculated as: HPTCat (RefList, RefIdx) = 5×RefList + min (RefIdx, 4) , where RefList and RefIdx represent a reference picture list (0 or 1) and a reference index, respectively. For each category, at most seven entries can be stored, resulting in a total of 70 entries in HPT. At the beginning of each CTU row, the number of entries for each category is initialized as zero. After decoding an affine-coded CU with reference list RefListcur and RefIdxcur, the affine parameters are utilized to update entries in the category HPTCat (RefListcur, RefIdxcur) in a way similar to HMVP table updating.
[0051] A history-affine-parameter-based candidate (HAPC) is derived from one of the seven neighbouring 4×4 blocks denoted as A0, A1, A2, B0, B1, B2 or B3 in Fig. 6 and a set of affine parameters stored in a corresponding entry in the first HPT. The MV of a neighbouring 4×4 block serves as the base MV. The MV of the current block at position (x, y) can be calculated as: where (mvhbase, mvvbase) represents the MV of the neighbouring 4×4 block, (xbase, ybase) represents the centre position of the neighbouring 4×4 block. (x, y) can be the top-left, top-right and bottom-left corner of the current block to obtain the corner-position MVs (CPMVs) for the current block, or it can be the centre of the current block to obtain a regular MV for the current block.
[0052] A second history-parameter table (HPT) with base MV information is also appended. There are nine entries in the second HPT, wherein an entry comprises a base MV, a reference index and four affine parameters for each reference list, and a base position. An additional merge HAPC can be generated from the second HPT with the base MV information and the corresponding affine models stored in an entry. The difference between the first HPT and the second HPT is illustrated in Figs. 9A-B.
[0053] Moreover, pair-wised affine merge candidates are generated by two affine merge candidates, which are history-derived or not history-derived. A pair-wised affine merge candidate is generated by averaging the CPMVs of existing affine merge candidates in the list.
[0054] As a response to new HAPCs being introduced, the size of sub-block-based merge candidate list is increased from five to fifteen, which are all involved in the ARMC process.
[0055] In NA-AFF, the pattern of obtaining non-adjacent spatial neighbours is shown in Fig. 10.Same as the existing non-adjacent regular merge candidates, the distances between non-adjacent spatial neighbours and current coding block in the NA-AFF are also defined based on the width and height of the current CU.
[0056] The motion information of the non-adjacent spatial neighbours in Fig. 10 is utilized to generate additional inherited and constructed affine merge / AMVP candidates. Specifically, for inherited candidates, the derivation process of the inherited affine merge / AMVP candidates in the VVC is kept unchanged except that the CPMVs are inherited from non-adjacent spatial neighbours. The non-adjacent spatial neighbours are checked based on their distances to the current block (i.e., from near to far) . At a specific distance, only the first available neighbour (that is coded with the affine mode) from each side (e.g. the left and above) of the current block (block 1110 in Fig. 11A and block 1120 in Fig. 11B) is included for inherited candidate derivation. As indicated by the dashed arrows in Fig. 11A, the checking orders of the neighbours on the left and above sides are bottom-to-up and right-to-left, respectively.
[0057] For the first type of constructed candidates, as shown in the Fig. 11B, the positions of left and above non-adjacent spatial neighbours are firstly determined independently; after that, the location of the top-left neighbour can be determined accordingly, which can enclose a rectangular virtual block together with the left and above non-adjacent neighbours. Then, as shown in the Fig. 12, the motion information of the three non-adjacent neighbours is used to form the CPMVs at the top-left (A) , top-right (B) and bottom-left (C) of the virtual block, which is finally projected to the current CU to generate the corresponding constructed candidates.
[0058] The NA-AFF candidates are inserted into the existing affine merge candidate list and affine AMVP candidate list according to the following orders: Affine merge mode: 1. SbTMVP candidate, if available 2. Inherited from adjacent neighbours 3. Inherited from non-adjacent neighbours 4. Constructed from adjacent neighbours 5. The first type of constructed affine candidates from non-adjacent neighbours 6. Zero MVs Affine AMVP mode: 1. Inherited from adjacent neighbours 2. Constructed from adjacent neighbours 3. Translational MVs from adjacent neighbours 4. Translational MVs from temporal neighbours 5. Inherited from non-adjacent neighbours 6. The first type of constructed affine candidates from non-adjacent neighbours 7. Zero MVs
[0059] Due to the inclusion of the additional candidates generated by NA-AFF, the size of the affine merge candidate list is increased from 5 to 15. The subgroup size of ARMC for the affine merge mode is increased from 3 to 15.
[0060] In NA-AFF: 1. The area from where the non-adjacent neighbours come is restricted to be within the current CTU (i.e., no additional storage requirements for line buffer) . 2. The storage granularity for affine motion information, including CPMVs and reference indexes, is reduced from 8x8 to 16x16 (i.e., only the affine motion from the top-left 8x8 block is saved) . Additionally, the saved CPMVs are projected to each 16x16 block before being stored, such that the position and size information are not needed. 3. Only the top-left and top-right CPMVs are stored (i.e., always using 4-parameter affine model for NA-AFF) .
[0061] Regression Based Affine Candidate Derivation
[0062] The Regression based Motion Vector Field (RMVF) derivation method provides a new variety of subblock-based merge candidate. The motion vectors and centre positions from the neighbouring subblocks of the current CU, as illustrated in Fig. 13, are used as the input to the linear regression process to derive a set of linear model parameters.
[0063] The subblock motion field from a previous coded affine CU and the motion vectors from the adjacent subblocks of the current CU are used as the input for the regression process. The predicted CPMVs for current block are derived as output.
[0064] The regression based affine merge candidates are derived and added to the affine merge list. Subblock motion field from a previously coded affine CU and motion information from adjacent subblocks of the current CU are used as the input to the regression process to derive proposed affine candidates.
[0065] The previously coded affine CU can be identified from scanning through non-adjacent positions and the affine HMVP table.
[0066] Adjacent subblock information of the current CU is fetched from 4x4 sub-blocks represented by the grey zone as depicted in Fig. 13. For each sub-block, given a reference list, the corresponding motion vector and centre coordinate of the sub-block may be used.
[0067] For each affine CU, up to 2 affine candidates can be derived. One with adjacent subblock information and one without. All the linear-regression-generated candidates are pruned and collected into one candidate sub-group, and TM cost based ARMC process is applied when ARMC is enabled. Afterwards, up to N linear-regression-generated candidates are added to the affine merge list when N affine CUs are found. The number of affine candidates for ARMC is 30, the output list size is 15.
[0068] DMVR for Affine Merge Coded Blocks
[0069] DMVR is applied to affine merge coded blocks and affine MMVD coded blocks when DMVR condition is satisfied. It is also extended to adaptive BM merge mode.
[0070] An affine motion field is modelled as follows (6-parameters affine case) : wherein (mvx, mvy) is the motion vector at location (x, y) and (mv0x, mv0y) is the base MV representing the translational motion of the affine model. Parameters and represent the non-translational parameters (rotation, scaling) .
[0071] Motion vectors (mv0x, mv0y) , (mv1x, mv1y( and )mv2x, mv2y) are called the control point motion vectors (CPMVs) of the considered affine coding unit. In the DMVR process applied to affine, the bilateral matching cost is calculated per subblock. Then, the subblock bilateral matching costs and refined subblock MVs are used to determine the overall best refined CPMVs for the affine block. More specific, the CPMVs are refined according to the following steps: 1) Perform integer-pel bilateral matching for subblocks. Accumulate the subblock bilateral matching cost to determine the best integer-pel MV offset. 2) Perform half-pel bilateral matching search using the best integer MV offset as initial offset and output the best MV offset that minimizes the bilateral matching cost for the same set of the subblocks of step 1. 3) Perform linear regression using the refined subblock MVs from step 1 as input and output a set of control-point motion vectors. 4) Compare the bilateral matching cost of the output of the steps 2 and 3 to select the one with the smallest cost.
[0072] In addition, the non-translational parameters of affine model are refined after the base MV are determined. Each of CPMVs is fixed as base MV in turn, and an offset is added to the non-translational parameter of affine model by minimizing the bilateral matching cost, and then the other two CPMVs are calculated according to based MV and refined non-translational parameters.
[0073] For affine merge and affine MMVD modes, both CPMVs and non-translational parameter refinements are applied. When applying to the affine MMVD mode, the MMVD offset is added to the affine DMVR refined affine merge base candidate if the base candidate meets the affine DMVR refinement condition. For adaptive BM merge mode, an affine merge list that only contains affine merge candidates, which meet the affine DMVR conditions are constructed; and then CPMVs refinement and non-translational parameters refinement are applied.
[0074] Pixel Based Affine Motion Compensation
[0075] The minimum affine subblock size is changed from 4x4 to 1x1 for both luma and chroma components, 1x1 subblock size allows pixel based affine MC. When affine subblock width or height is smaller than 4, PROF is disabled.
[0076] Affine Candidates Derived from Temporal Collocated Picture
[0077] The affine candidates derived from temporal collocated picture are added into current affine merge candidate list. As shown in Fig. 14, the blocks in temporal collocated picture are scanned to identify the first block that is coded with affine mode. In Fig. 14, the numbers ( ( “1” and “2” , “3” and “4” , “5” and “6” , etc. ) ) represents the scanning order of the candidate blocks. Then, one new affine candidate is derived by scaling the CPMVs of the determined block in the collocated picture to the current CU based on its position and block-size. The derived affine candidate is inserted into current affine candidate list right after the affine candidates inherited from adjacent neighbours.
[0078] Geometric Partitioning Mode with Affine Prediction
[0079] GPM is further extended to enable affine motion compensation (AMC) . Therefore, a GPM partition can be predicted by AMC inter-prediction, non-AMC inter-prediction or intra-prediction. In addition, a GPM partition predicted by AMC can be combined with the other GPM partition predicted by AMC, non-AMC, or intra-prediction.
[0080] When AMC is applied, a uni-prediction affine merge candidate list is constructed from the subblock-based merge candidate list after discarding sub-TMVP candidates, similar to the uni-prediction merge candidate list construction for GPM in VVC. AMC is performed for a GPM partition using the control point motion vectors (CPMVs) of a merge candidate in the uni-prediction affine merge candidate list.
[0081] A gpm_affine_flag is signalled for each GPM partition to indicate whether AMC is applied for the GPM partition. A merge candidate index for the GPM partition is signalled using different arithmetic context models depending on whether AMC or non-AMC is applied.
[0082] In the present invention, techniques to improve coding efficiency of regress-based affine prediction and constructed affine candidate are disclosed. BRIEF SUMMARY OF THE INVENTION
[0083] A method and apparatus for video coding using affine prediction are disclosed. According to one method, input data associated with a current block is received, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. One or more inherited subblock MVs (Motion Vectors) from one or more GPM partitions of a previous coded block of the current block are determined, wherein said one or more GPM partitions of the previous coded block of the current block is coded using affine prediction. One or more regression-based affine candidates are derived using a regression-based process with model input comprising said one or more inherited subblock MVs. An affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates is generated. The current block is encoded or decoded using a motion candidate selected from the affine merge list or the affine AMVP list.
[0084] In one embodiment, the model input to the regression-based process further comprises one or more neighbouring subblock motion vectors from one or more adjacent subblocks of the current block.
[0085] In one embodiment, only said one or more inherited subblock MVs inside said one or more GPM partitions of the previous coded block of the current block are used to derive said one or more regression-based affine candidates.
[0086] In one embodiment, wherein if two or more GPM partition are coded by the affine prediction, different GPM partitions are viewed as different affine motion fields for said deriving said one or more regression-based affine candidates.
[0087] According to another method, input data associated with a current block in a current frame is received, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. One or more subblock MVs (Motion Vectors) from an affined coded block and / or a GPM partition coded in affine prediction are determined, wherein the affined coded block and / or the GPM partition coded in the affine prediction is from a collocated frame. One or more regression-based affine candidates are derived using a regression-based process with model input comprising said one or more subblock MVs. An affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates is generated. The current block is encoded or decoded using a motion candidate selected from the affine merge list or the affine AMVP list.
[0088] In one embodiment, said one or more subblock MVs are scaled to the current frame according to POC (Picture Order Count) distance to generate one or more scaled subblock motion vectors.
[0089] In one embodiment, said one or more subblock MVs and one or more neighbouring subblock motion vectors from one or more adjacent subblocks of the current block are used as the model input to the regression-based process.
[0090] In one embodiment, multiple regression-based affine candidates are generated by searching multiple affine-coded blocks or multiple affine-coded blocks GPMs in one or more collocated frames.
[0091] According to yet another method, input data associated with a current block in a current frame is received, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. One or more constructed affine candidates are derived by using translational motion information in one or more collocated frames. An affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more constructed affine candidates is generated. The current block is encoded or decoded using a motion candidate selected from the affine merge list or the affine AMVP list.
[0092] In one embodiment, said translational motion information in said one or more collocated frames comprises two or three subblock motion vectors searched in a specific pattern in said one or more collocated frames.
[0093] In one embodiment, said two or three subblock motion vectors are scaled to the current frame according to the POC (Picture Order Count) distance to generate two or three scaled subblock motion vectors.
[0094] In one embodiment, positions of said two or three subblock motion vectors form a virtual rectangular region, and said two or three scaled subblock motion vectors along with position and size of the virtual rectangular region to derive an affine model of the current frame as new temporal constructed affine candidate.BRIEF DESCRIPTION OF THE DRAWINGS
[0095] Fig. 1A illustrates an exemplary adaptive Inter / Intra video coding system incorporating loop processing.
[0096] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0097] Fig. 2A illustrates an example of the affine motion field of a block described by motion information of two control point (4-parameter) .
[0098] Fig. 2B illustrates an example of the affine motion field of a block described by motion information of three control point motion vectors (6-parameter) .
[0099] Fig. 3 illustrates an example of block based affine transform prediction, where the motion vector of each 4×4 luma subblock is derived from the control-point MVs.
[0100] Fig. 4 illustrates the neighbouring blocks used for deriving spatial merge candidates for VVC.
[0101] Fig. 5 illustrates an example of derivation for inherited affine candidates based on control-point MVs of a neighbouring block.
[0102] Fig. 6 illustrates an example of affine candidate construction by combining the translational motion information of each control point from spatial neighbours and temporal.
[0103] Fig. 7 illustrates an example of affine motion information storage for motion information inheritance.
[0104] Fig. 8 illustrates an example of sub-block based affine motion compensation, where the motion vectors for individual pixels of a sub-block are derived according to motion vector refinement.
[0105] Fig. 9A illustrates an example of first history-parameter table (HPT) , where each entry of the first HPT stores a set of affine parameters.
[0106] Fig. 9B illustrates an example of second history-parameter table (HPT) with base MV information also appended.
[0107] Fig. 10 illustrates an example of non-adjacent spatial neighbour candidates.
[0108] Figs. 11A-B illustrate examples of non-adjacent spatial neighbors for deriving affine merge mode (NSAM) , where the pattern of obtaining non-adjacent spatial neighbors is shown in Fig. 11A for deriving inherited affine merge candidates and in Fig. 11B for deriving constructed affine merge candidates.
[0109] Fig. 12 illustrates an example of constructed affine candidates according to non-adjacent neighbors, where the motion information of the three non-adjacent neighbors at locations A, B and C is used to form the CPMVs.
[0110] Fig. 13 illustrates an example of neighboring 4 x 4 subblocks used for RMVF parameter derivation, where W and H are the width and height of the current CU.
[0111] Fig. 14 illustrates an example of temporal blocks scanning positions for deriving the temporal affine candidate.
[0112] Fig. 15 illustrates an example of various positions of a CU used as the two or three subblock motion vectors, that are used to derive affine candidates.
[0113] Fig. 16 illustrates a flowchart of an exemplary video coding system that derives one or more regression-based affine candidates using a regression-based process with model input comprising one or more inherited subblock MVs from one or more GPM partitions of a previous coded block according to an embodiment of the present invention.
[0114] Fig. 17 illustrates a flowchart of an exemplary video coding system that derives one or more regression-based affine candidates using a regression-based process with model input comprising one or more inherited subblock MVs from an affined coded block and / or a GPM partition coded in affine prediction according to an embodiment of the present invention, where the affined coded block and / or the GPM partition coded in affine prediction is from a collocated frame.
[0115] Fig. 18 illustrates a flowchart of an exemplary video coding system that derives one or more constructed affine candidates by using translational motion information in one or more collocated frames according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0116] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.
[0117] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.
[0118] PROPOSED METHODS
[0119] Regression-Based Affine Candidate from CU Coded by GPM with Affine Prediction
[0120] In one invention, the regression-based affine candidate can be derived from CUs coded by GPM with affine prediction. That is, the subblock motion field from a previous GPM with affine prediction coded CU and the subblock motion vectors from the adjacent subblocks of the current CU are used as the input for the regression process to generate a regression-based affine candidate.
[0121] In one embodiment, only the subblock motion vectors inside the GPM partition coded by affine mode are taken as the input of the regression process and the different GPM partitions are viewed as different affine motion fields if more than one partitions are coded by affine mode. In one example, when only one of the GPM partitions is coded by affine mode, the subblock motion vectors in the partition coded by affine and the subblock motion vectors from the adjacent subblocks of the current CU are used as the input for the regression process to generate a regression-based affine candidate. In another example, when N (where N >= 2) partitions are coded by affine mode, N motion fields of N partitions coded by affine mode and the subblock motion vectors from the adjacent subblocks of the current CU are used as the input for the regression process to generate N regression-based affine candidates.
[0122] Temporal Affine Candidates from Subblock Motion Vectors
[0123] In one invention, two or three subblock motion vectors in each affine CU or CU coded by GPM with affine prediction on the collocated frames are scaled to the current frame according to the POC distance to generate two or three scaled subblock motion vectors. These two or three scaled subblock motion vectors are used to derived new affine candidate along with the position and size of the searched CU.
[0124] The two or three subblock motion vectors can be any combination of the subblock motion vectors at top-left position (i.e., (0, 0) position) , top-right position, bottom-left position, bottom-right position, (CU width / 2, 0) position, (0, CU height / 2) position, (CU width / 2, CU height / 2) position, etc. as shown in Fig. 15. Besides, more subblock motion vectors at the positions (CU width / N, CU height / M, M, N = any power of 2 numbers) can also be used to derived affine candidates.
[0125] Temporal Regression-Based Affine Candidate
[0126] In one invention, the regression-based affine candidates can be generated from the motion information of the collocated frames.
[0127] In one embodiment, the subblock motion vectors in an affine CU or a GPM partition coded by affine mode in a collocated frame are scaled to the current frame according to the POC distance to generate the scaled subblock motion vectors. The scaled subblock motion vectors and the subblock motion vectors from the adjacent subblocks of the current CU are used as the input for the regression process to generate a regression-based affine candidate. Several regression-based affine candidates can be generated by searching multiple affine CUs or GPM partitions coded by affine mode in the collocated frames. The search pattern can be aligned with temporal affine candidate described in the section entitled “Affine Candidates Derived from Temporal Collocated Picture” or searching in positive and negative horizontal, vertical and / or diagonal directions with the current CU centre as the centre or any other search pattern. The number of collocated frames can be aligned with SbTMVP mode, TMVP or any other number.
[0128] In one embodiment, the affine_flag and / or gpm_affine_flag (i.e., the flag to indicate the usage of GPM with affine prediction) are stored in each MxN grid (M and N can be any number larger than or equal to 4) in the coded frames. The affine_flag and / or gpm_affine_flag are set to true when the entire or parts of MxN grid are coded by affine mode and / or GPM with affine mode. During the searching process, the regression-based affine candidates and / or inherited affine candidates and / or any other affine candidates can be derived from each MxN grid with affine_flag and / or gpm_affine_flag equal to true. Specifically, the subblock motion vectors in each MxN are scaled to the current frame according to the POC distance to generate the scaled subblock motion vectors. The scaled subblock motion vectors of each MxN grid and the subblock motion vectors from the adjacent subblocks of the current CU are used as the input for the regression process to generate regression-based affine candidates. On the other hand, the subblock motion vectors at top-left and / or top-right and / or bottom-left positions of each MxN grid are scaled to the current frame according to the POC distance to generate three scaled subblock motion vectors. A new affine model is derived from these three scaled subblock motion vectors along with the position and size of each MxN grid as a new inherited affine candidate.
[0129] In another embodiment, the subblock motion vectors in the collocated block of collocated frames are scaled to the current frame according to the POC distance to generate the scaled subblock motion vectors. The scaled subblock motion vectors and the subblock motion vectors from the adjacent subblocks of the current CU are used as the input for the regression process to generate a regression-based affine candidate. Multiple regression-based affine candidates can be generated by scaling subblock motion vectors from different collocated frames. The number of collocated frames can be aligned with SbTMVP mode or TMVP or any other number.
[0130] Temporal Constructed Affine Candidate
[0131] In one invention, the constructed affine candidates can be generated from the motion information on the collocated frames.
[0132] In one embodiment, two or three subblock motion vectors are searched in a specific pattern or the pattern aligned with affine candidates derived from temporal collocated picture described in the section entitled “Affine Candidates Derived from Temporal Collocated Picture” or the pattern searching in positive and negative horizontal, vertical, and / or diagonal directions with the current CU centre as centre or any other pattern on collocated frames. The positions of these two or three subblock motion vectors form a virtual rectangular region in the collocated frame and the subblock motion vectors are scaled to the current frame according to the POC distance to generate two or three scaled subblock motion vectors. These two or three scaled subblock motion vectors along with the position and size of the virtual rectangular region can be used to derive an affine model for the current frame. With the affine model, the CPMVs of the current CU can be derived and a new temporal constructed affine candidate is generated. The number of collocated frames can be aligned with SbTMVP mode or TMVP or any other number.
[0133] In one embodiment, for the constructed affine candidate derivation, a subblock motion vector is searched within a specific region located at the top-left, top-right, bottom-left, bottom-right position, or a combination thereof of the collocated block in the collocated frame. When more than one subblock motion vector is obtained, the two or three or four subblock motion vectors are scaled to the current frame according to the POC distance to generate two or three or four scaled subblock motion vectors. The constructed affine candidate can be derived from two or three of the scaled subblock motion vectors. For each collocated frame, multiple constructed affine candidates can be derived. The number of collocated frames can be aligned with SbTMVP mode or TMVP or any other number.
[0134] In one embodiment, for the two proposed methods above, the newly derived affine candidates can be of 4-, 6-, and / or 8-parameter affine types. These candidates can be inserted into the affine merge and / or AMVP list in any order and may be further refined using techniques such as affine-TM, affine-MMVD, affine-DMVR, affine-BDOF, PROF, LIC, non-local LIC, and / or OBMC. The corresponding predictors can be generated using either sample-based or block-based affine motion compensation. The proposed methods can be enabled depending on the coding mode, CU size, CU area, QP, slice type, POC or any other coding information.
[0135] In one embodiment, for the two above proposed methods, the searching region for affine CUs or CUs coded by GPM with affine prediction or subblock motion vectors for temporal constructed affine candidates can be constrained in a CTU, multiple CTUs, a CTU row, multiple CTU rows or an entire collocated frame.
[0136] In one embodiment, for the two above proposed methods, the affine model of a proposed affine merge candidate is used to determine the usage the candidate. Specifically, if one, two, three or four of the affine parameters (i.e., a, b, d, and e) of an affine candidate are larger and / or smaller than a threshold, the affine candidate cannot be inserted into the subblock merge candidate list.
[0137] Any of the foregoing proposed methods can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in inter coding of an encoder, and / or a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter coding of the encoder and / or the decoder, so as to provide the information needed by the inter coding.
[0138] With reference to the exemplary encoder and decoder in Fig. 1A and Fig 1B, the proposed methods can be implemented in the intra / inter prediction modules. For example, in the encoder side, the required processing can be implemented as part of the Inter-Pred. unit 112 or Intra Pred. unit 110 as shown in Fig. 1A. However, the encoder may also use additional processing unit to implement the required processing. For the decoder side, the required processing can be implemented as part of the MC unit 152 or Intra Pred. 150 as shown in Fig. 1B. However, the decoder may also use additional processing unit to implement the required processing. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / prediction module of the encoder and / or the inter / intra / prediction module of the decoder, so as to provide the information needed by the inter / intra / prediction module. While the Inter-Pred. 112 and Intra Pred. 110 in the encoder side and MC 152 and Intra Pred. 150 in the decoder side are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .
[0139] Fig. 16 illustrates a flowchart of an exemplary video coding system that derives one or more regression-based affine candidates using a regression-based process with model input comprising one or more inherited subblock MVs from one or more GPM partitions of a previous coded block according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block is received in step 1610, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. One or more inherited subblock MVs (Motion Vectors) from one or more GPM partitions of a previous coded block of the current block are determined in step 1620, wherein said one or more GPM partitions of the previous coded block of the current block is coded using affine prediction. One or more regression-based affine candidates are derived using a regression-based process with model input comprising said one or more inherited subblock MVs in step 1630. An affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates is generated in step 1640. The current block is encoded or decoded using a motion candidate selected from the affine merge list or the affine AMVP list in step 1650.
[0140] Fig. 17 illustrates a flowchart of an exemplary video coding system that derives one or more regression-based affine candidates using a regression-based process with model input comprising one or more inherited subblock MVs from an affined coded block and / or a GPM partition coded in affine prediction according to an embodiment of the present invention, where the affined coded block and / or the GPM partition coded in affine prediction is from a collocated frame. According to this method, input data associated with a current block in a current frame is received in step 1710, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. One or more subblock MVs (Motion Vectors) from an affined coded block and / or a GPM partition coded in affine prediction are determined in step 1720, wherein the affined coded block and / or the GPM partition coded in the affine prediction is from a collocated frame. One or more regression-based affine candidates are derived using a regression-based process with model input comprising said one or more subblock MVs in step 1730. An affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates is generated in step 1740. The current block is encoded or decoded using a motion candidate selected from the affine merge list or the affine AMVP list in step 1750.
[0141] Fig. 18 illustrates a flowchart of an exemplary video coding system that derives one or more constructed affine candidates by using translational motion information in one or more collocated frames according to an embodiment of the present invention. According to this method, input data associated with a current block in a current frame is received in step 1710, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. One or more constructed affine candidates are derived by using translational motion information in one or more collocated frames in step 1820. An affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more constructed affine candidates is generated in step 1830. The current block is encoded or decoded using a motion candidate selected from the affine merge list or the affine AMVP list in step 1840.
[0142] The flowcharts shown are intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
[0143] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
[0144] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
[0145] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1.A method of video coding, the method comprising:receiving input data associated with a current block, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;determining one or more inherited subblock MVs (Motion Vectors) from one or more GPM partitions of a previous coded block of the current block, wherein said one or more GPM partitions of the previous coded block of the current block is coded using affine prediction;deriving one or more regression-based affine candidates using a regression-based process with model input comprising said one or more inherited subblock MVs;generating an affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates; andencoding or decoding the current block using a motion candidate selected from the affine merge list or the affine AMVP list.2.The method of Claim 1, wherein the model input to the regression-based process further comprises one or more neighbouring subblock motion vectors from one or more adjacent subblocks of the current block.3.The method of Claim 1, only said one or more inherited subblock MVs inside said one or more GPM partitions of the previous coded block of the current block are used to derive said one or more regression-based affine candidates.4.The method of Claim 1, wherein if two or more GPM partition are coded by the affine prediction, different GPM partitions are viewed as different affine motion fields for said deriving said one or more regression-based affine candidates.5.An apparatus for video coding, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;determine one or more inherited subblock MVs (Motion Vectors) from one or more GPM partitions of a previous coded block of the current block, wherein said one or more GPM partitions of the previous coded block of the current block is coded using affine prediction;derive one or more regression-based affine candidates using a regression-based process with model input comprising said one or more inherited subblock MVs;generate an affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates; andencode or decode the current block using a motion candidate selected from the affine merge list or the affine AMVP list.6.A method of video coding, the method comprising:receiving input data associated with a current block in a current frame, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;determining one or more subblock MVs (Motion Vectors) from an affined coded block and / or a GPM partition coded in affine prediction, wherein the affined coded block and / or the GPM partition coded in the affine prediction is from a collocated frame;deriving one or more regression-based affine candidates using a regression-based process with model input comprising said one or more subblock MVs;generating an affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates; andencoding or decoding the current block using a motion candidate selected from the affine merge list or the affine AMVP list.7.The method of Claim 6, wherein said one or more subblock MVs are scaled to the current frame according to POC (Picture Order Count) distance to generate one or more scaled subblock motion vectors.8.The method of Claim 6, wherein said one or more subblock MVs and one or more neighbouring subblock motion vectors from one or more adjacent subblocks of the current block are used as the model input to the regression-based process.9.The method of Claim 6, wherein multiple regression-based affine candidates are generated by searching multiple affine-coded blocks or multiple affine-coded blocks GPMs in one or more collocated frames.10.An apparatus for video coding, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block in a current frame, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;determine one or more subblock MVs (Motion Vectors) from an affined coded block and / or a GPM partition coded in affine prediction, wherein the affined coded block and / or the GPM partition coded in the affine prediction is from a collocated frame;derive one or more regression-based affine candidates using a regression-based process with model input comprising said one or more subblock MVs;generate an affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more regression-based affine candidates; andencode or decode the current block using a motion candidate selected from the affine merge list or the affine AMVP list.11.A method of video coding, the method comprising:receiving input data associated with a current block in a current frame, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;deriving one or more constructed affine candidates by using translational motion information in one or more collocated frames;generating an affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more constructed affine candidates; andencoding or decoding the current block using a motion candidate selected from the affine merge list or the affine AMVP list.12.The method of Claim 11, wherein said translational motion information in said one or more collocated frames comprises two or three subblock motion vectors searched in a specific pattern in said one or more collocated frames.13.The method of Claim 12, wherein said two or three subblock motion vectors are scaled to the current frame according to the POC (Picture Order Count) distance to generate two or three scaled subblock motion vectors.14.The method of Claim 13, wherein positions of said two or three subblock motion vectors form a virtual rectangular region, and said two or three scaled subblock motion vectors along with position and size of the virtual rectangular region to derive an affine model of the current frame as new temporal constructed affine candidate.15.An apparatus for video coding, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block in a current frame, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;derive one or more constructed affine candidates by using translational motion information in one or more collocated frames;generate an affine merge list or an affine AMVP (Advanced Motion Vector Prediction) list comprising said one or more constructed affine candidates; andencode or decode the current block using a motion candidate selected from the affine merge list or the affine AMVP list.
Citation Information
Patent Citations
Derivation of affine merge candidates with linear regression for video coding
US20230328276A1
Method and apparatus for affine motion refinement
US20240137539A1
Method, apparatus, and medium for video processing
WO2024037638A1