Moving Image Processing Method, Video Processing Apparatus, and Bitstream Generation Method

By sequentially scanning a reduced number of neighboring blocks to determine a target block's motion vector, the complexity of the ATMVP technology is reduced while maintaining performance, addressing the inefficiencies in current ATMVP methods.

JP7683848B2Active Publication Date: 2025-05-27SZ DJI TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024085959
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-09-25
Filing Date
2024-05-28
Publication Date
2025-05-27
Estimated Expiration
2038-10-30

AI Technical Summary

Technical Problem

The current Advanced/Alternative Temporal Motion Vector Prediction (ATMVP) technology is complex and inefficient in determining temporal vectors by scanning all motion vector candidates, leading to redundant operations.

Method used

The proposed solution involves sequentially scanning only N neighboring blocks out of M preset blocks to determine a target neighboring block, and then using its motion vector to find a related block in the reference image, which reduces the complexity of the ATMVP process.

Benefits of technology

This approach simplifies the process of obtaining the reference motion vector, reduces the number of scans required, and maintains the performance gains of conventional ATMVP technology.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007683848000001
    Figure 0007683848000001
  • Figure 0007683848000002
    Figure 0007683848000002
  • Figure 0007683848000003
    Figure 0007683848000003
Patent Text Reader

Abstract

To provide a moving image processing method and apparatus for reducing complexity while maintaining the performance gain of the existing temporal motion vector prediction (ATMVP) technique.SOLUTION: A moving image processing method comprises the steps of: dividing a current image block into a plurality of sub-blocks; and according to a target neighboring block of the current image block satisfying a preset condition, determining related blocks of the plurality of sub-blocks in a same frame of the current image block according to a motion vector of the target neighboring block; encrypting or decrypting the current image block according to the motion vector of the related block of the sub-block; and in an affine transformation mode using one or more neighboring blocks of the current image block, determining a control point motion vector group; and adding the control point motion vector group to a motion vector candidate list of the current image block.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Copyright Notice The content disclosed in this patent document contains materials subject to copyright protection. The copyright is owned by the copyright owner. The copyright owner will raise no objections to any reproduction by anyone of these patent documents or patent disclosures, provided that it is as shown in the official records or files of the Patent Office.

[0002] This application relates to the field of video encoding and decoding, and more specifically, to a video processing method and apparatus.

Background Art

[0003] Currently, in the main standard specifications for video encoding, block-based motion compensation techniques are adopted in the inter-frame prediction part. The main principle is to search for the most similar block in the already encoded images for the current image block, and this process is called motion compensation. For example, for an image of one frame, first, it is divided into coding regions (Coding Tree Units, CTUs) of the same size, for example, with a size of 64×64 or 128×128. Each CTU can be further divided into square or rectangular coding units (Coding Units, CUs). Each CU searches for the most similar block in the reference frame (usually the reconstructed frame near the temporal region of the current frame) as the predicted block of the current CU. The relative displacement between the current block (i.e., the current CU) and the similar block (i.e., the predicted block of the current CU) is called the motion vector (Motion Vector, MV). The process of searching for the most similar block as the predicted block of the current block in the reference frame is motion compensation.

[0004] In the current technology, usually, a motion vector candidate list for the current CU is constructed based on the motion vectors of the currently encoded neighboring blocks of the CU, which is also called the merge candidate list. From the merge candidate list, an optimal motion vector candidate is selected as the motion vector of the current CU, and the predicted block of the current CU is determined based on the motion vector of the current CU.

[0005] Advanced / Alternative temporal motion vector prediction (ATMVP) is a motion vector prediction mechanism. The basic idea of the ATMVP technology is to perform motion compensation by obtaining the motion information of multiple sub-blocks within the current CU. In constructing a candidate list (such as a merge candidate list or an Advanced Motion Vector Prediction (AMVP) candidate list), the ATMVP technology introduces the motion information of multiple sub-blocks within the current CU as candidates. The realization of the ATMVP technology can be roughly divided into two steps. Step 1 is to determine one temporal vector by scanning the motion vector candidate list of the current CU or the motion vectors of the adjacent image blocks of the current CU. Step 2 is to divide the current CU into N×N (N is 4 by default) sub-blocks (sub-CUs), determine the corresponding blocks within the reference frame of each sub-block based on the temporal vector obtained in Step 1, and determine the motion vector of each sub-block based on the motion vectors of the corresponding blocks within the reference frame of each sub-block.

[0006] In Step 1 of the current ATMVP technology, there is room for improvement in the process of determining the temporal vector by scanning the motion vector candidate list of the current CU or the motion vectors of the adjacent image blocks of the current CU. SUMMARY OF THE INVENTION

[0007] This application provides a video processing method and apparatus that can reduce the complexity of the ATMVP technology while maintaining the performance gains of the conventional ATMVP technology.

[0008] The first aspect provides a video processing method, and the method includes: sequentially scanning N neighboring blocks smaller than M among M preset neighboring blocks of the current image block, and determining a target neighboring block based on the scanning result; determining a related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block; dividing the current image block and the related block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block corresponds one-to-one to each sub-image block in the related block; predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block.

[0009] In the solution provided by this application, in the process of obtaining the reference motion vector of the current image block, only N (N is smaller than M) of the M motion vector candidates that have already been obtained are sequentially scanned, compared with the prior art, the number of scans for the motion vector candidates in the process of obtaining the reference motion vector of the current image block can be reduced. It should be understood that by applying the solution provided by this application to step 1 of the conventional ATMVP technology, the redundant operations therein can be simplified.

[0010] The second aspect provides a video processing method, and the method includes: determining M neighboring blocks of the current image block based on M candidates in the second candidate list of the motion vector of the current image block; sequentially scanning N neighboring blocks smaller than M among the M neighboring blocks, and determining a target neighboring block based on the scanning result; Based on the motion vector of the block near the target, the current image block, and the reference image of the current image block, determining the related block of the current image block; Based on the related block of the current image block, determining a specific candidate in the first candidate list of the motion vector of the current image block; When it is determined to use the specific candidate, dividing the current image block and the related block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block corresponds one-to-one to each sub-image block in the related block; Including predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block.

[0011] The third aspect provides a moving image processing apparatus, which apparatus: Sequentially scanning N blocks near the target, which are less than M among the preset M blocks near the current image block, determining the block near the target based on the scanning result, determining the related block of the current image block based on the motion vector of the block near the target, the current image block, and the reference image of the current image block, and dividing the current image block and the related block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block corresponds one-to-one to each sub-image block in the related block, and a construction module used for this; Including a prediction module used for predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block.

[0012] The fourth aspect provides a moving image processing apparatus, which apparatus: Based on M candidates in the motion vector second candidate list of the current image block, determining M neighboring blocks of the current image block; sequentially scanning N neighboring blocks smaller than M among the M neighboring blocks, and determining a target neighboring block based on the scanning result; determining a related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block; determining a specific candidate in the motion vector first candidate list of the current image block based on the related block of the current image block; and when it is determined to use the specific candidate, dividing the current image block and the related block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block is made to correspond one-to-one to each sub-image block in the related block, and a construction module used for this purpose, including a prediction module used to predict each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block.

[0013] A fifth aspect provides a moving image processing apparatus, which includes a memory and a processor. The memory is used to store instructions, and the processor is used to execute the instructions stored in the memory. By executing the instructions stored in the memory, the processor is used to execute the method in the first aspect or any possible implementation of the first aspect.

[0014] A sixth aspect provides a moving image processing apparatus, which includes a memory and a processor. The memory is used to store instructions, and the processor is used to execute the instructions stored in the memory. By executing the instructions stored in the memory, the processor is used to execute the method in the second aspect or any possible implementation of the second aspect.

[0015] The seventh aspect provides a computer storage medium having a computer program stored therein, and when the computer program is executed by a computer, the computer is caused to execute the method according to the first aspect or any possible embodiment of the first aspect.

[0016] The eighth aspect provides a computer storage medium having a computer program stored therein, and when the computer program is executed by a computer, the computer is caused to execute the method according to the second aspect or any possible embodiment of the second aspect.

[0017] The ninth aspect provides a computer program product including instructions, and when the instructions are executed by a computer, the computer is caused to execute the method according to the first aspect or any possible embodiment of the first aspect.

[0018] The tenth aspect provides a computer program product including instructions, and when the instructions are executed by a computer, the computer is caused to execute the method according to the second aspect or any possible embodiment of the second aspect.

Brief Description of the Drawings

[0019]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Embodiments for Carrying Out the Invention

[0020] In the coding and decoding of video images, a prediction step is used to reduce redundant information in an image. A prediction block means a basic unit for prediction in an image of one frame, and in some standards, this prediction block is also called a prediction unit (PU). Before coding / compressing an image of one frame, the image is divided into a number of image blocks, and each image block in the plurality of image blocks can be further divided into a number of image blocks, and an analogy can be made based on this. In different coding methods, the number of divided layers may be different, and the operation methods in charge are also different. In different coding standards, the names of image blocks on the same layer may be different. For example, in some video standards, each image block in the plurality of image blocks into which an image of one frame is divided for the first time is called a coding tree unit (CTU), and each coding tree unit may include one coding unit (CU), or may be divided into a number of coding units again. One coding unit can be divided into one, two, four, or other number of prediction units according to the prediction method. In some video standards, the coding tree unit is also called the Largest Coding Unit (LCU).

[0021] Prediction refers to searching for image data similar to the predicted block, which is also called the reference block of the predicted block. The difference between the predicted block and the reference block of the predicted block is encoded / compressed to reduce redundant information in encoding / compression. Here, the difference between the predicted block and the reference block may be a residual obtained by subtracting the corresponding pixel value of the reference block from the predicted block. Prediction includes intraframe prediction and interframe prediction. Intraframe prediction refers to searching for the reference block of the predicted block in the frame in which the predicted block is located, and interframe prediction refers to searching for the reference block of the predicted block in a frame other than the frame in which the predicted block is located.

[0022] In some conventional video standard specifications, the prediction unit is the smallest unit in an image, and the prediction unit is not subsequently divided into a plurality of image blocks. The "image block" or "current image block" described later means one prediction unit (or one coding unit), and one image block can be subsequently divided into a plurality of sub-image blocks, and each sub-image block can be further predicted.

[0023] In this solution, before predicting the current image block, a motion vector candidate list is constructed, and the current image block is predicted based on the motion vector candidate selected from the motion vector candidate list. There are multiple modes in the motion vector candidate list. Hereinafter, examples will be given to explain the multiple modes of the motion vector candidate list.

[0024] In the first mode, as a first example, on the encoding side, after constructing the motion vector candidate list, the encoding of the current image block can be completed in the following steps.

[0025] 1) Select the optimal motion vector (denoted as MV1) from the motion vector candidate list, use the selected MV1 as the motion vector of the current image block, and obtain the index of the motion vector candidate list of the MV1.

[0026] 2) Based on the motion vector MV1 of the current image block, determine the predicted image block of the current image block from the reference image (i.e., the reference frame). That is, determine the position of the predicted image block of the current image block in the reference frame.

[0027] 3) Obtain the residual between the current image block and the predicted image block.

[0028] 4) Transmit the index of the motion vector MV1 of the current image block in the motion vector candidate list and the residual obtained in step 3) to the decoding side.

[0029] For example, on the decoding side, the current image block can be decoded in the following steps.

[0030] 1) Receive from the encoding side the index in the motion vector candidate list of the residual and the motion vector of the current image block.

[0031] 2) Obtain the motion vector candidate list by the method according to the embodiment of the present application. The motion vector candidate list obtained on the decoding side is the same as the motion vector candidate list obtained on the encoding side.

[0032] 3) Based on the index, obtain the motion vector MV1 of the current image block from the motion vector candidate list.

[0033] 4) Based on the motion vector MV1, obtain the predicted image block of the current image block, and combine it with the residual to obtain the current image block by decoding.

[0034] That is, in the first mode, the motion vector of the current image block is equal to the predicted MV (Motion vector prediction, MVP). In some standard specifications, the first mode is also called the Merge mode.

[0035] In the second mode, different from the first mode, after the encoding side selects the optimal motion vector MV1 from the motion vector candidate list, it further performs motion search with MV1 as the search starting point, and finally records the displacement between the searched position and the search starting point as the motion vector difference value (Motion vector difference, MVD). Subsequently, based on the motion vector MV1 + MVD of the current image block, the predicted image block of the current image block is determined from the reference image. The encoding side further transmits the MVD to the decoding side. In some standard specifications, the second mode is also called the AMVP mode (i.e., the normal inter-frame prediction mode).

[0036] The method of constructing the motion vector candidate list in different modes may be the same or different. The motion vector candidate list constructed in the same method may be applied to only one of the modes, or may be applied to different construction modes, and is not limited here.

[0037] In this solution, two construction methods of the motion vector candidate list are provided. For the convenience of explanation, hereinafter, the motion vector candidate lists of these two construction methods are referred to as the first motion vector candidate list and the second motion vector candidate list. One difference between these two lists is that at least one candidate in the first motion vector candidate list includes the motion vector of the sub-image block, and each candidate in the second motion vector candidate list includes the motion vector of the image block. As described above, the image block here and the current image block are concepts of the same type, both referring to one prediction unit (or one coding unit), and the sub-image block refers to a plurality of sub-image blocks divided based on the image block. When predicting using the candidate in the first motion vector candidate list, the reference block of the current image block is determined based on the candidate, and then the residual between the image block and the reference block is calculated. When predicting using the candidate in the second motion vector candidate list, if the candidate used is the motion vector of the sub-image block, the reference block of each sub-image block in the current image block is determined based on the candidate, and then the residual between each sub-image block in the current image block and its reference block is calculated, and the residuals of each sub-image block are concatenated to the residual of the current image block.

[0038] Here, when determining candidates in the motion vector first candidate list and / or the motion vector second candidate list, one of the candidates can be determined based on the ATMVP technology. In one example, when constructing the motion vector first candidate list, the motion vector determined based on the ATMVP technology can be put into the list as the first candidate. In one example, when constructing the motion vector second candidate list, after putting candidates into the motion vector second candidate list based on the motion vectors of a preset number of spatial region neighboring blocks at a preset position of the current image block, the motion vector determined based on the ATMVP technology is put into the list as a candidate. Of course, the order of adding candidates to these two candidate lists may be other orders, which are not limited here.

[0039] Next, an example will be given to explain how to determine one of the candidates based on the ATMVP technology according to the usage method of the construction method of the motion vector second candidate list.

[0040] In the description of the construction method of the motion vector second candidate list, for the sake of easy understanding, the motion vector is described here. The motion vector of one image block can include two pieces of information: 1) the image pointed to by the motion vector, and 2) the displacement. The motion vector of one image block means an image block having the same displacement as the image block in the image pointed to by the motion vector. For an encoded / decoded image block, the concept of its motion vector includes the reference image of the encoded / decoded image block and the displacement of the reference block of the encoded / decoded image block relative to the encoded / decoded image block. Note that the reference block of one image block described here means the image block used to calculate the residual of the image block.

[0041] FIG. 1 is a schematic flowchart of a moving image processing method provided by an embodiment of the present application. The method includes the following steps.

[0042] S110. Determine M motion vector candidates for inclusion in the second candidate list of motion vectors of the current image block.

[0043] The current image block is an image block to be encoded (or decoded). The image frame in which the current image block is located is called the current frame. For example, the current image block is one coding unit (CU).

[0044] For example, the second candidate list of motion vectors of the current image block may be a Merge candidate list or an AMVP candidate list. For example, the second candidate list of motion vectors may be a normal motion vector candidate list (Normal Merge List) in the Merge candidate list. It should be understood that the second candidate list of motion vectors may have another name.

[0045] The M motion vector candidates may be determined based on the motion vectors of M neighboring blocks within the current frame of the current image block. The neighboring blocks may be image blocks adjacent to the position of the current image block in the current frame or having a certain position pitch. Note that these M neighboring blocks are encoded (or decoded) image blocks within the current frame.

[0046] As an example, as shown in FIG. 2, the M neighboring blocks of the current image block are the four positions A 1 (left) → B 1 (up) → B 0 (upper right) → A 0 (lower left) located image blocks. Based on the motion vectors of the image blocks at these four positions, M (i.e., M is equal to 4) motion vector candidates of the current image block are determined.

[0047] Also, when a neighboring block that cannot be acquired appears among the M neighboring blocks, or when a neighboring block using an intra-frame coding mode appears among the M neighboring blocks, the motion vector of the non-acquirable neighboring block or the neighboring block using the intra-frame coding mode cannot be acquired. Therefore, the motion vector of the non-acquirable neighboring block is not used as a motion vector candidate, and it is abandoned to put the non-acquirable motion vector into the second candidate list of the motion vector of the current image block.

[0048] As one possible embodiment, after step S110 is completed, the M motion vector candidates have already been put into the second candidate list of the motion vector. In step S120, the second candidate list of the motion vector can be directly scanned.

[0049] S120. Sequentially scan N motion vector candidates out of the M motion vector candidates, determine a reference motion vector based on the scanning result, where N is smaller than M. Here, both M and N are natural numbers.

[0050] Regardless of whether all of the M motion vector candidates are put into the second candidate list of the motion vector, or only some of the motion vector candidates among the M motion vector candidates are put into the second candidate list of the motion vector because some of the motion vectors among the M motion vector candidates become non-acquirable, sequentially scan N motion vector candidates out of the M motion vector candidates in a fixed order. Sequentially scanning N motion vector candidates out of the M motion vector candidates in a fixed order may refer to fixedly scanning the motion vector candidates that have already been put into the motion vector candidate list among the N motion vector candidates, or may also refer to fixedly scanning N motion vector candidates that have already been put into the motion vector candidate list among the M motion vector candidates.

[0051] The process of determining a reference motion vector based on the scanning results of N motion vector candidates may be a process of sequentially determining the N motion vector candidates based on preset conditions and determining the reference motion vector based on the determination results.

[0052] As an example, the preset conditions include that the image block is acquirable, or the intra-frame prediction coding mode is not adopted, and the reference frame pointed to by the motion vector candidate is the same as the reference image of the current image block.

[0053] Here, the reference image of the current image block is the reference image with the closest temporal distance to the image where the current image block is located, or the reference image of the current image block is a reference image preset on the encoding and decoding sides, or the reference image of the current image block is the reference image specified in the video parameter set, sequence header, sequence parameter set, picture header, picture parameter set, slice header.

[0054] For example, the reference image of the current image block is the co-located frame of the current image block, and the co-located frame is a frame for obtaining and predicting the motion information set in the information header at the slice level. In some application scenarios, the co-located frame is also called a collocated picture.

[0055] It should be understood that in response to the evolution of future technologies, this preset condition may give other different definitions, and the corresponding solutions also fall within the protection scope of this application.

[0056] Hereinafter, the process of determining a reference motion vector based on the scanning results of N motion vector candidates will be described in detail.

[0057] In step S120, only N of the M motion vector candidates obtained in step S110 are scanned, and in this way, the number of scans can be reduced.

[0058] Optionally, in step S120, the first N motion vector candidates among the M motion vector candidates may be sequentially scanned.

[0059] Optionally, in step S120, the last N motion vector candidates among the M motion vector candidates may be sequentially scanned, or the middle N motion vector candidates among the M motion vector candidates may be sequentially scanned. The present application is not limited thereto.

[0060] As an example, in step S120, some of the M motion vector candidates are sequentially scanned.

[0061] As another example, in step S120, some of the motion vector candidates that have already been included in the second motion vector candidate list are sequentially scanned.

[0062] S130. Based on the reference motion vector, the current image block, and the reference image of the current image block, determine the motion vector candidates that will continue to be included in the second motion vector candidate list.

[0063] The second motion vector candidate list of the current image block includes the M motion vector candidates determined in step S110 and the motion vector candidates determined in step S130. In one example, after determining the (M + 1)-th motion vector candidate that will continue to be included in the second motion vector candidate list in S130, other motion vector candidates that will continue to be included in the second motion vector candidate list are determined by other methods, which are not limited herein.

[0064] After completing the construction of the second motion vector candidate list, as shown in FIG. 1, the method further includes step S140 of determining the motion vector of the current image block based on the second motion vector candidate list obtained in step S130.

[0065] It should be understood that the solution provided in this application can be applied to the ATMVP technology. In step 1 of the conventional ATMVP technology, the temporal vector of the current image block is obtained by scanning all the spatial motion vector candidates that have already been included in the motion vector second candidate list. For example, generally, 4 spatial motion vector candidates are captured in the motion vector second candidate list, so it may be necessary to scan 4 motion vector candidates to obtain the temporal vector of the image block.

[0066] On the other hand, in the embodiment of this application, in the process of obtaining the reference motion vector of the current image block, only N (N is smaller than M) of the M motion vector candidates that have already been obtained are sequentially scanned, and compared with the prior art, the number of scans for the motion vector candidates in the process of obtaining the reference motion vector of the current image block can be reduced. It should be understood that by applying the solution provided in this application to step 1 of the conventional ATMVP technology, the redundant operations therein can be simplified.

[0067] The applicant selected the official common test sequence as the test sequence on the latest reference software VTM-2.0 of the next-generation video coding (Versatile Video Coding), and conducted tests on the solution provided in this application in the test configurations of the RA configuration and the LDB configuration. According to the test results, after reducing the number of scans, the performance gain of the ATMVP technology can be maintained.

[0068] Therefore, the solution provided in this application can reduce the complexity of the ATMVP technology while maintaining the performance gain of the conventional ATMVP technology.

[0069] The motion vector second candidate list formed by the solution regarding the construction provided in this application can be applied to the encoding side and the decoding side. In other words, the execution subject of the method provided in this application may be the encoding side or the decoding side.

[0070] As an example, the second candidate list of motion vectors formed by the solution regarding the construction provided in the present application can be applied to the above first mode (e.g., Merge mode).

[0071] Optionally, in this embodiment, in step S110, based on the motion vectors of four neighboring blocks within the current frame of the current image block, four motion vector candidates for inclusion in the second candidate list of the motion vector of the current image block are determined, that is, M is equal to 4. In step S120, N out of the four motion vector candidates are scanned, and N is smaller than 4.

[0072] For example, N is equal to 1. For example, in step S120, only the first motion vector candidate in the second candidate list of motion vectors is scanned. Also, for example, N is equal to 2 or 3.

[0073] Hereinafter, a method for determining the reference motion vector of the current image block based on the scanning results of N motion vector candidates in step S120 will be described.

[0074] In step S120, it is determined one by one whether N out of M motion vector candidates satisfy a preset condition, and the reference motion vector is determined based on the determination result. Here, the definition of the preset condition will be described by taking the example that the reference frame pointed to by the motion vector candidate is the same as the reference image of the current image block.

[0075] Optionally, in step S120, when the N motion vector candidates are sequentially scanned and the scanning reaches the motion vector candidate that conforms to the first preset condition, that is, when the scanning reaches the motion vector candidate whose first reference frame is the same as the co - frame of the current frame, the scanning is stopped, and the reference motion vector is determined based on the first motion vector candidate that conforms to the preset condition that has been scanned.

[0076] When scanning up to the motion vector candidate that meets the first preset condition, the number of scans may be equal to N or less than N. For example, when the first motion vector candidate to be scanned meets the preset condition, the scanning stops, and this motion vector candidate is used as the reference motion vector of the current image block.

[0077] Optionally, in step S120, when a motion vector candidate that meets the preset condition among the N motion vector candidates has not been scanned, that is, when all the reference frames pointed to by the N motion vector candidates are different from the co-located frame of the current image block, a default value is used as the value of the reference motion vector.

[0078] For example, the default value is (0, 0), that is, the reference motion vector is (0, 0). Depending on the actual situation, the default value may have other definitions.

[0079] Optionally, in step S120, when a motion vector candidate that meets the preset condition among the N motion vector candidates has not been scanned, that is, when all the reference frames pointed to by the N motion vector candidates are different from the co-located frame of the current image block, scaling processing is performed on a specific motion vector candidate in the second motion vector candidate list, and the reference motion vector is determined based on the specific motion vector candidate after the scaling processing.

[0080] The specific motion vector candidate may be the first motion vector or the last motion vector obtained in the scanning order among the N motion vector candidates.

[0081] The specific motion vector candidate may further be a motion vector obtained in other scanning orders among the N motion vector candidates.

[0082] The definition of the pre-set conditions is that when the reference frame pointed to by the motion vector candidate is the same as the reference frame of the current image block, scaling processing is performed on a specific motion vector candidate in the second motion vector candidate list, and the reference motion vector is determined based on the specific motion vector candidate after the scaling processing, which includes performing scaling processing on the specific motion vector candidate in the second motion vector candidate list so that the reference frame pointed to by the scaled specific motion vector candidate is the same as the reference image of the current image block, and using the specific motion vector candidate after the scaling processing as the reference motion vector.

[0083] As shown in FIG. 3, curr_pic represents the image where the current image block is located, col_pic represents the collocated picture of the current image block, and neigh_ref_pic represents the reference frame pointed to by the specific motion vector candidate. In one embodiment, based on the time distance between the reference image neigh_ref_pic pointed to by the specific motion vector candidate and the image curr_pic where the image block corresponding to the specific motion vector is located, and the time distance between the reference image col_pic of the current image block and the image curr_pic where the current image block is located, the scale of the specific motion vector is determined.

[0084] When the difference in the degree of motion between image frames is poor and there is intense motion between the current frame and its collocated frame, if the motion vector (0, 0) is used as the basis for positioning the corresponding block of the current block, it is assumed that the absolute coordinates in the collocated frame of the current block remain unchanged without considering the motion between frames. However, in reality, since the probability that the coordinates in the collocated frame of the current block are different from its coordinates in the current frame is very high, it should be understood that large variations will occur.

[0085] In an embodiment of the present application, when a motion vector candidate among N motion vector candidates, for which the co-located frame of the reference frame and the current frame is the same, has not been scanned, scaling processing is performed on one of the N motion vector candidates so that the co-located frame of its reference frame and the current frame becomes the same, and subsequently, this scaled motion vector candidate is used as the motion vector of the current image block. In this way, the accuracy of the motion vector of the current image block can be improved.

[0086] Optionally, when N is an integer smaller than M and greater than 1, the specific motion vector candidate in this embodiment may be the motion vector candidate among the N motion vector candidates for which the distance in the time domain between the reference frame and the co-located frame of the current image block is the closest.

[0087] Select the motion vector candidate among the N motion vector candidates for which the distance between the reference frame and the co-located frame of the current frame is the closest, and perform scaling processing on it, reducing the time taken for the scaling processing, thereby improving the efficiency of obtaining the motion vector of the current image block.

[0088] Optionally, when N is an integer smaller than M and greater than 1, the specific motion vector candidate in this embodiment may be any one of the N motion vector candidates.

[0089] Note that when N is equal to 1, the specific motion vector candidate in this embodiment is this motion vector candidate to be scanned.

[0090] Optionally, as an example, when N is equal to 1, in step S120, the reference motion vector of the current image block is obtained by scanning one motion vector candidate in the second motion vector candidate list. If the reference frame pointed to by the scanned motion vector candidate is different from the co-located frame of the current frame where the current image block is located, scaling processing is performed on this motion vector candidate so that the reference frame of the scaled motion vector candidate is the same as the co-located frame of the current frame, and the motion vector candidate after the scaling processing is used as the reference motion vector of the current image block. If the reference frame of the scanned motion vector candidate is the same as the co-located frame of the current frame, this motion vector candidate is used as the motion vector of the current image block.

[0091] In this embodiment, by scanning one motion vector candidate in the motion vector candidate list, the motion vector of the current image block is obtained, and the number of times of scanning the motion vector candidate in the process of obtaining the motion vector of the current image block is effectively reduced. If the reference frame of the scanned motion vector candidate is different from the co-located frame of the current frame, scaling processing is performed on this motion vector candidate so that its reference frame is the same as the co-located frame of the current frame, and then the motion vector candidate after this scaling processing is used as the motion vector of the current image block. In this way, the accuracy of the motion vector of the current image block can be improved. Therefore, compared with the prior art, the solution provided by the embodiment of the present application can not only simplify the process of determining the motion vector of the current image block, but also improve the accuracy of the motion vector of the current image block.

[0092] It should be understood that when the definition of the preset conditions changes, the process of performing scaling processing on a specific motion vector candidate in the second motion vector candidate list also changes correspondingly, that is, it is necessary to ensure that the specific motion vector candidate after the scaling processing meets the preset conditions.

[0093] Next, in step S130, a process of determining motion vector candidates to be continuously included in the second motion vector candidate list based on the reference motion vector, the current image block, and the reference image of the current image block will be described.

[0094] Optionally, as an embodiment, determining motion vector candidates to be continuously included in the second motion vector candidate list based on the reference motion vector, the current image block, and the reference image of the current image block includes dividing the current image block into a plurality of sub-image blocks, determining associated blocks of the sub-image blocks in the reference image of the current image block based on the reference motion vector, and determining motion vector candidates to be continuously included in the second motion vector candidate list based on the motion vectors of the associated blocks.

[0095] In one example, the motion vectors of the associated blocks of each sub-image block in the current image block are used as candidates and included in the second motion vector candidate list. When predicting using these candidates, each sub-image block in the current image block is predicted based on the motion vectors of the associated blocks of the sub-image block.

[0096] In one example, the representative motion vector of the related block of the current image block is put into the second candidate list of motion vectors as a candidate and marked as being determined based on the ATMVP technique. When predicting using the candidate, the related block of the current image block is determined based on the mark and the candidate, the current image block and the related block are divided into a plurality of sub-image blocks in the same manner, each sub-image block in the current image block is made to correspond one-to-one with each sub-image block in the related block, and each corresponding sub-image block in the current image block is predicted based on the motion vector of each sub-image block in the related block. Optionally, when a sub-image block for which a motion vector cannot be obtained appears in the related block, the unobtainable motion vector is replaced with the representative motion vector of the related block, and the corresponding sub-image block in the current image block is predicted. Optionally, when a sub-image block for which a motion vector cannot be obtained appears in the related block and all the representative motion vectors of the related block are unobtainable, putting the candidate determined based on the ATMVP technique into the second candidate list of motion vectors is abandoned. In one example, when a sub-image block in the related block is unobtainable or when the sub-image block in the related block uses an intra-frame encoding mode, it is determined that a sub-image block for which a motion vector cannot be obtained has appeared in the related block.

[0097] Optionally, the representative motion vector of the related block of the current image block may refer to the motion vector at the central position of the related block or may refer to the motion vector representing another related block, and is not limited here.

[0098] In some standard specifications regarding video encoding and decoding, the related block may be called a collocated block or a corresponding block.

[0099] For example, the current image block is one CU, and the sub-image blocks obtained after dividing it may be called sub-CUs. Optionally, the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to be 64 pixels or more. Optionally, both the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels.

[0100] In the current ATMVP technology, an adaptive setting at the frame level is performed for the size of the sub-image block. The size of the sub-image block is 4×4 by default, and when a certain condition is met, the size of the sub-image block is set to 8×8. For example, on the encoding side, when encoding the current image block, when encoding the ATMVP mode of the previous encoded image block in the same temporal layer, the average block size of each sub-image block in the CU is calculated. If the average block size is larger than the threshold, the dimension of the sub-image block of the current image block is set to 8×8; otherwise, the default value 4×4 is used. Currently, in the next-generation video coding standard (Versatile Video Coding, VVC), motion vectors are stored in the size of 8×8. It should be understood that when the size of the sub-image block is set to 4×4, the size of the motion vector of the sub-image block (also 4×4) does not conform to the storage granularity of the motion vector in the current standard. Also, in the current ATMVP technology, when encoding the current image block, it is further necessary to store the information on the size of the sub-image block of the previous encoded image block in the same temporal layer.

[0101] In the embodiments of the present application, the size of the sub-image block of the current image block can be set to 8×8 to adapt to the storage granularity of the motion vector defined in the video standard VVC, while there is no need to store the information on the size of the sub-image block of the previous encoded image block, so that the storage space can be saved.

[0102] On the premise of ensuring that the size of the sub-image block and / or the size of the related block of the sub-image block are fixed at 64 pixels, the size of the sub-image block and / or the size of the related block of the sub-image block may be other dimensions. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is A×B, where A≤64, B≤64, and both A and B are integers divisible by 4. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is 4×16 pixels, or 16×4 pixels.

[0103] Optionally, as another embodiment, determining a motion vector candidate to be subsequently included in the second motion vector candidate list based on the reference motion vector, the current image block, and the reference image of the current image block includes determining a related block of the current image block in the reference image of the current image block based on the reference motion vector, and determining a motion vector candidate to be subsequently included in the second motion vector candidate list based on the motion vector of the related block.

[0104] In encoding / decoding techniques, generally, an encoded / decoded image is used as a reference image for the current encoding / decoding target. In some embodiments, furthermore, one reference image can be constructed to improve the similarity between the reference image and the image to be currently encoded / decoded.

[0105] For example, in moving image content, there are specific encoding / decoding scenes where the background hardly changes and only the foreground of the moving image changes or moves. For example, video monitoring belongs to such a scene. In the video monitoring scene, usually, the monitoring camera is fixed or only moves slowly, and it is considered that the background hardly changes. On the contrary, objects such as people and cars captured by the video monitoring camera are always moving or changing, and the foreground is always changing. In such a scene, a specific reference image containing only high-quality background information can be created. The specific reference image may include a plurality of image blocks, and any image block may also be taken from a certain decoded image, and different image blocks in the specific reference image may be obtained from different decoded images. When performing inter-frame prediction, the background part of the currently encoded / decoded target image refers to the specific reference image, thereby reducing the residual information of the inter-frame prediction and improving the encoding / decoding efficiency.

[0106] The above is a specific example of the specific reference image. In some embodiments, the specific reference image has at least one property of a composite reference, a long-term reference image, and a non-output image. Here, the non-output image refers to an image that is output but not displayed, and generally, the non-output image exists as a reference image for other images. For example, the specific reference image may be a constructed long-term reference image, a non-output composite frame, or a non-output long-term reference image. In some embodiments, the composite frame is also called a synthetic reference frame.

[0107] In some embodiments, the non-specific reference image may be a reference image that does not have at least one of the following properties of the structural frame, long-term reference image, and non-output image. For example, the specific reference image may include a reference image other than the structural frame, or a reference image other than the long-term reference image, or a reference image other than the non-output image, or a reference image other than the constructed long-term reference image, or a reference image other than the non-output structural frame, or a reference image other than the non-output long-term reference image, etc.

[0108] In some embodiments, when an image in a moving image can be used as a reference image, the long-term reference image and the short-term reference image can be distinguished. Here, the short-term reference image is a concept corresponding to the long-term reference image. The short-term reference image exists in the reference image buffer for a certain period of time. After some in-and-out operations of the decoded reference image behind the short-term reference image in the reference image buffer, the short-term reference image is moved out of the buffer. The reference image buffer may also be called a reference image list cache, a reference image list, a reference frame list cache, or a reference frame list, etc., and is collectively referred to as the reference image buffer here.

[0109] The long-term reference image (or a part of the data in the long-term reference image) can always exist in the reference image buffer, and the long-term reference image (or a part of the data in the long-term reference image) is not affected by the in-and-out operations in the reference image buffer of the decoded reference image. Only when an update command is sent on the decoding side, the long-term reference image (or a part of the data in the long-term reference image) is moved out of the reference image buffer.

[0110] The names of short-term reference images and long-term reference images may be different under different standard specifications. For example, in standards such as H.264 / Advanced Video Coding (AVC) or H.265 / HEVC, short-term reference images are called short-term references, and long-term reference images are called long-term references. Also, in standards such as Audio Video Coding Standard (AVS) 1-P2, AVS2-P2, and Institute of Electrical and Electronics Engineers (IEEE) 1857.9-P4, long-term reference images are called background pictures. Also, in standards such as VP8 and VP9, long-term reference images are called golden frames.

[0111] Note that although specific terms are used in the embodiments of this application, it does not mean that they must be applied to specific scenes. For example, calling a long-term reference image a long-term reference frame does not mean that it must be applied to technologies corresponding to standards such as H.264 / AVC or H.265 / HEVC.

[0112] The above long-term reference images may be obtained from the image block structure extracted from a plurality of decoded images, or may be obtained by updating an existing reference frame (for example, a pre-stored reference frame) using a plurality of decoded images. Naturally, such a structured specific reference image may also be a short-term reference image. Or, the long-term reference image may not be a structured reference image.

[0113] In the above embodiments, the specific reference image may include a long-term reference image, and the non-specific reference image may include a short-term reference image.

[0114] Optionally, the type of the reference frame can be identified within the code stream structure by a special field.

[0115] Optionally, when the reference image is determined to be a long-term reference image, the reference image is determined to be a specific reference image, or when the reference image is determined to be a non-output frame, the reference image is determined to be a specific reference image, or when the reference image is determined to be a structure frame, the reference image is determined to be a specific reference image, or when the reference image is determined to be a non-output frame and further the reference image is determined to be a structure frame, the reference image is determined to be a specific reference image.

[0116] Optionally, various reference images may each have their own identifiers. In this case, for the decoding side, based on the identifier of the reference image, it can be determined whether the reference image is a specific reference image.

[0117] In some embodiments, when it is determined that the reference image has an identifier of a long-term reference image, it is determined that the reference image is a specific reference image.

[0118] In some embodiments, when it is determined that the reference image has a non-output identifier, it is determined that the reference image is a specific reference image.

[0119] In some embodiments, when it is determined that the reference image has an identifier of a structure frame, it is determined that the reference image is a specific reference image.

[0120] In some embodiments, when it is determined that the reference image has at least two of the three identifiers: an identifier of a long-term reference image, a non-output identifier, an identifier of a structure frame or an identifier of a composite reference frame, it is determined that the reference image is a specific reference image. For example, when it is determined that the reference image has a non-output identifier and it is determined that the reference image has an identifier of a structure frame, it is determined that the reference image is a specific reference image.

[0121] Specifically, the image may have an identifier indicating whether it is an output frame. If an image is indicated not to be output, it indicates that the frame is a reference image. Further, it is determined whether the frame has an identifier of a structure frame. If so, it is determined that the reference image is a specific reference image. When an image is indicated to be output, the determination as to whether it is a structure frame is not made, and it can be directly determined that the frame is not a specific reference image. Alternatively, even if an image is indicated not to be output, if it has an identifier indicating that it is not a structure frame, it can be determined that the frame is not a specific reference image.

[0122] Optionally, when it is determined that the reference image satisfies one of the following conditions by analyzing parameters from a picture header, a picture parameter set (PPS), or a slice header, it is determined that the reference image is a specific reference image. That is, the reference image is a long-term reference image, the reference image is a structure reference image, the reference image is a non-output image, and if the reference image is a non-output image, it is further determined that the reference image is a structure reference image.

[0123] In some embodiments of the examples of this application, in the process of determining the motion vector of the current image block, it is related to determining the motion vector of the image block by using the motion vector of an image block on another image. For the convenience of explanation, the image block is called the first image block, and an image block on another image to be used is called the temporal reference block or related block of the first image block. It can be understood that the first image block and the temporal reference block (or related block) of the first image block are located on different images. Therefore, in the process of determining the motion vector of the first image block by using the motion vector of the temporal reference block (or related block), it may be necessary to scale the motion vector of the temporal reference block (or related block). For the convenience of explanation, in this specification, the term "related block" is uniformly used.

[0124] For example, when applying the ATMVP technology to the construction of the AMVP candidate list, when determining the motion vector of the related block of the current image block based on the ATMVP technology, it is necessary to scale the motion vector of the related block, and then determine the motion vector of the current image block based on the scaled motion vector. Generally, the scale of the motion vector of the related block is determined based on the temporal distance between the reference image pointed to by the motion vector of the related block and the image where the related block is located, and the temporal distance between the reference image of the current image block and the image where the current image block is located.

[0125] In one example, the motion vector of the related block is called MV2, and the reference frame index value of the reference image pointed to by the motion vector MV2 is called x. Here, the reference frame index value x is the difference between the sequence number (e.g., POC) of the reference image pointed to by MV2 and the sequence number of the image where the related block is located. The reference frame index value of the reference image of the first image block is called y. Here, the reference frame index value y is the difference between the sequence number of the reference image of the first image block and the sequence number of the image where the first image block is located. Therefore, the scale for the motion vector MV2 is y / x. Optionally, the product of the motion vector MV2 and y / x can be used as the motion vector of the first image block.

[0126] However, when the motion vector MV2 of the related block points to a specific reference image, or when the reference image of the first image block is the specific reference image, the definition of the temporal distance between the specific reference image and the image where the first image block is located is ambiguous, so scaling the motion vector MV2 of the related block has no meaning.

[0127] Optionally, in this embodiment, when determining the motion vector of the current image block based on the motion vector of the related block, specifically, when the motion vector of the related block points to a specific reference image, or when the reference image of the current image block is the specific reference image, determine the motion vector of the current image block based on the motion vector of the related block after processing. Here, the motion vector of the related block after processing is the same as the motion vector of the related block before processing.

[0128] For example, the motion vector of the related block after processing includes the motion vector obtained by scaling the motion vector of the related block with a scale of 1 in terms of value, or the motion vector of the related block with the scaling step skipped.

[0129] Optionally, in this embodiment, when determining the motion vector of the current image block based on the motion vectors of the related blocks, specifically, when the motion vector of the related block points to a specific reference image or the reference image of the current image block is the specific reference image, the determination of the motion vector of the current image block based on the motion vector of the related block is abandoned.

[0130] In some embodiments, step S120 includes performing a scaling process on a specific motion vector candidate in the second motion vector candidate list when a motion vector candidate that meets a preset condition among the N motion vector candidates has not been scanned, and determining a reference motion vector based on the specific motion vector candidate after the scaling process. In this case, optionally, the method further includes, when the specific motion vector candidate points to a specific reference image or the reference image of the current image block is the specific reference image, determining a motion vector candidate that continues to be inserted into the second motion vector candidate list based on the specific motion vector candidate after processing, where the motion vector of the specific motion vector candidate after processing is the same as the motion vector of the specific motion vector candidate before processing.

[0131] Here, the motion vector of the related block after processing includes the motion vector obtained after scaling the motion vector of the related block by a scale factor of 1, or the motion vector of the related block that skips the scaling step.

[0132] In some embodiments, step S120 includes performing a scaling process on a specific motion vector candidate in the second motion vector candidate list when a motion vector candidate that meets a preset condition among the N motion vector candidates has not been scanned, and determining a reference motion vector based on the specific motion vector candidate after the scaling process. In this case, optionally, the method further includes abandoning the determination of a motion vector candidate that continues to be inserted into the second motion vector candidate list based on the specific motion vector candidate when the specific motion vector candidate points to a specific reference image or the reference image of the current image block is the specific reference image.

[0133] As can be seen from the above, in the embodiment of the present application, in the process of obtaining the reference motion vector of the current image block, only N (N is smaller than M) of the M motion vector candidates that have already been obtained are sequentially scanned among the M motion vector candidates. Compared with the prior art, the number of scans for the motion vector candidates in the process of obtaining the reference motion vector of the current image block can be reduced. It should be understood that by applying the solution provided by the present application to the conventional ATMVP technology, the redundant operations therein can be simplified.

[0134] If the motion vector candidate among the N motion vector candidates with the same corresponding frame between the reference frame and the current frame has not been scanned, scaling processing is performed on one of the N motion vector candidates so that its reference frame becomes the same as the corresponding frame of the current frame. Subsequently, by using this scaled motion vector candidate as the motion vector of the current image block, the accuracy of the motion vector of the current image block can be improved.

[0135] The current image block can be divided into sub-image blocks of size 8×8 to adapt to the storage granularity of the motion vectors defined in the video standard VVC. On the other hand, it is not necessary to store the information about the size of the sub-blocks of the previous encoded image block, so the storage space can be saved.

[0136] As shown in FIG. 4, the embodiment of the present application further provides a video processing method, and the method includes the following steps.

[0137] S410: Obtain M motion vector candidates to be put into the second motion vector candidate list of the current image block.

[0138] Step S410 corresponds to step S110 described above. For a specific description, refer to the above description and it will not be repeated here.

[0139] S420: Sequentially scan at least some of the M motion vector candidates, and determine the reference motion vector of the current image block based on the scanning result.

[0140] As an optional embodiment, scan some of the M motion vector candidates sequentially, and determine the reference motion vector of the current image block based on the scanning result. In such an embodiment, step S420 can correspond to step S120 described above, and for a specific description, refer to the above description.

[0141] As another optional embodiment, scan all of the M motion vector candidates sequentially, and determine the reference motion vector of the current image block based on the scanning result.

[0142] Note that in step S420, for the specific method of determining the reference motion vector of the current image block based on the scanning result, refer to the related description in the above embodiments, and it will not be described again here.

[0143] S430: Divide the current image block into a plurality of sub-image blocks. Here, the size of the sub-image block is fixed to 64 or more pixels.

[0144] For example, the current image block is one CU, and the sub-image blocks obtained after dividing it may be called sub-CUs.

[0145] S440: Determine the related block of the sub-image block in the reference image of the current image block based on the reference motion vector.

[0146] The reference image of the current image block may be the same frame as the current image block.

[0147] S450: Determine the motion vector candidates to be continuously inserted into the second motion vector candidate list based on the motion vectors of the related blocks.

[0148] In the current ATMVP technology, an adaptive setting at the frame level is performed for the size of the sub-image block. The size of the sub-image block is 4×4 by default, and when a certain condition is met, the size of the sub-image block is set to 8×8. For example, on the encoding side, when encoding the current image block, the average block size of each sub-image block in the CU is calculated during the encoding of the ATMVP mode of the previous encoded image block in the same temporal layer. If the average block size is larger than the threshold, the dimension of the sub-image block of the current image block is set to 8×8; otherwise, the default value of 4×4 is used. That is, in the prior art, when encoding the current image block, it is necessary to further store the information on the size of the sub-image block of the previously encoded image block in the same temporal layer.

[0149] In the embodiment of the present application, the size of the sub-image block of the current image block is fixed to 64 or more pixels, and there is no need to store the information on the size of the sub-image block of the previous encoded image block. Therefore, the storage space can be saved.

[0150] Optionally, in this embodiment, both the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels.

[0151] In the current ATMVP technology, an adaptive setting at the frame level is performed for the size of the sub-image block. The size of the sub-image block is 4×4 by default, and when a certain condition is met, the size of the sub-image block is set to 8×8. For example, on the encoding side, when encoding the current image block, the average block size of each sub-image block in the CU is calculated during the encoding of the ATMVP mode of the previous encoded image block in the same temporal layer. When the average block size is larger than the threshold, the size of the sub-image block of the current image block is set to 8×8; otherwise, the default value of 4×4 is used. Currently, in the next-generation video coding standard (Versatile Video Coding, VVC), motion vectors are stored in a size of 8×8. It should be understood that when the size of the sub-image block is set to 4×4, the size of the motion vector of the sub-image block (also 4×4) does not conform to the storage granularity of the motion vector in the current standard. Also, in the current ATMVP technology, when encoding the current image block, it is further necessary to store the information on the size of the sub-image block of the previously encoded image block in the same temporal layer.

[0152] In the embodiments of the present application, the size of the sub-image block of the current image block can be set to 8×8 to adapt to the storage granularity of the motion vector defined in the video standard VVC, while there is no need to store the information on the size of the sub-image block of the previous encoded image block, so that the storage space can be saved.

[0153] Note that on the premise of ensuring that the size of the sub-image block and / or the size of the related block of the sub-image block is fixed at 64 pixels, the size of the sub-image block and / or the size of the related block of the sub-image block can further be other dimensions. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is A×B, where A≤64, B≤64, and both A and B are integers of 4. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is 4×16 pixels, or 16×4 pixels.

[0154] Optionally, in step S420, when at least some of the motion vector candidates are sequentially scanned and the scanning stops when a motion vector candidate that meets the first preset condition is scanned, and a reference motion vector is determined based on the first scanned motion vector candidate that meets the preset condition.

[0155] Determining a reference motion vector based on the first scanned motion vector candidate that meets the preset condition includes using the motion vector candidate that meets the first preset condition as a target neighborhood block.

[0156] Optionally, the preset condition includes that the reference image of the motion vector candidate is the same as the reference image of the current image block.

[0157] Optionally, step S450 includes determining a motion vector candidate to be continuously included in the second motion vector candidate list based on the motion vector of the processed related block when the motion vector of the related block points to a specific reference image or the reference image of the current image block is the specific reference image, where the motion vector of the processed related block is the same as the motion vector of the related block before processing.

[0158] For example, the motion vector of the processed related block includes the motion vector obtained after scaling the motion vector of the related block by a scale factor of 1, or the motion vector of the related block with the scaling step skipped.

[0159] Optionally, step S450 includes abandoning the determination of a motion vector candidate to be continuously included in the second vector candidate list based on the motion vector of the related block when the motion vector of the related block points to a specific reference image or the reference image of the current image block is the specific reference image.

[0160] Therefore, in the embodiment shown in FIG. 4, the current image block can be divided into sub-image blocks of size 8×8 and adapted to the storage granularity of the motion vectors defined in the video standard VVC. On the other hand, it is not necessary to store the information on the size of the sub-blocks of the previous encoded image block, and thus, the storage space can be saved.

[0161] The above has described how to determine the candidates to be included in the second motion vector candidate list based on the ATMVP technique. In some embodiments, other candidates can also be included in the second motion vector candidate list, but it is not limited here.

[0162] The above has described the embodiments of the method of the present application in relation to FIGS. 1 and 4. Hereinafter, embodiments of the apparatus corresponding to the embodiments of the above method will be described. Since the description of the embodiments of the apparatus and the description of the embodiments of the method correspond to each other, for the content not described in detail, reference may be made to the embodiments of the above method. For the sake of simplification, it will not be described again here.

[0163] FIG. 5 is a schematic block diagram of a video processing apparatus 500 provided according to an embodiment of the present application. The apparatus 500 is used to execute the embodiment of the method shown in FIG. 1. The apparatus 500 includes the following units.

[0164] An acquisition unit 510, which is used to acquire M motion vector candidates to be included in the second motion vector candidate list of the current image block.

[0165] A determination unit 520, which sequentially scans N motion vector candidates among the M motion vector candidates and determines a reference motion vector based on the scanning result, where N is smaller than M.

[0166] The determination unit 520 is further used to determine motion vector candidates to be subsequently included in the second motion vector candidate list based on the reference motion vector, the current image block, and the reference image of the current image block.

[0167] The determination unit 520 is further used to determine the motion vector of the current image block based on the second motion vector candidate list.

[0168] In step 1 of the conventional ATMVP technique, the temporal vector of the current image block is obtained by scanning all the motion vector candidates that have already been inserted in the second motion vector candidate list. For example, generally 4 motion vector candidates are incorporated into the second motion vector candidate list, so it may be necessary to scan 4 motion vector candidates to obtain the temporal vector of the image block.

[0169] On the other hand, in the embodiment of the present application, in the process of obtaining the reference motion vector of the current image block, only N (N is smaller than M) of the M motion vector candidates that have already been obtained are sequentially scanned, compared with the prior art, the number of scans for the motion vector candidates in the process of obtaining the reference motion vector of the current image block can be reduced. It should be understood that by applying the solution provided by the present application to step 1 of the conventional ATMVP technique, the redundant operations therein can be simplified.

[0170] The applicant selects the official common test sequence as the test sequence on the latest reference software VTM-2.0 of the next-generation video coding (Versatile Video Coding), and tests the solution provided by the present application in the test configurations of the RA configuration and the LDB configuration. According to the test results, after reducing the number of scans, the performance gain of the ATMVP technique can be maintained.

[0171] Therefore, the solution provided by the present application can reduce the complexity of the ATMVP technique while maintaining the performance gain of the conventional ATMVP technique.

[0172] Optionally, as one example, the acquisition unit 510 is used to obtain M motion vector candidates to be included in the second candidate list of the motion vector of the current image block based on the motion vectors of M neighboring blocks within the current frame of the current image block.

[0173] Optionally, as one example, the neighboring blocks are image blocks that are adjacent to the position of the current image block on the current frame or have a certain position pitch.

[0174] Optionally, as one example, the determination unit 520 is used to sequentially scan the first N motion vector candidates among the M motion vector candidates.

[0175] Optionally, as one example, M is equal to 4 and N is less than 4.

[0176] Optionally, as one example, N is equal to 1 or 2.

[0177] Optionally, as one example, the determination unit 520 is used to sequentially scan N motion vector candidates among the M motion vector candidates based on preset conditions, and determine a reference motion vector based on the scanning result.

[0178] Optionally, as one example, the preset conditions include motion vector candidates whose reference frames pointed to are the same as the reference image of the current image block.

[0179] Optionally, as one example, when the determination unit 520 sequentially scans the N motion vector candidates and stops scanning when it reaches the motion vector candidate that meets the first preset condition, and determines the reference motion vector based on the motion vector candidate that meets the first preset condition that has been scanned.

[0180] Optionally, as one example, when no motion vector candidate among the N motion vector candidates that meets the preset conditions has been scanned, the determination unit 520 performs scaling processing on a specific motion vector candidate in the second motion vector candidate list, and is used to determine a reference motion vector based on the specific motion vector candidate after the scaling processing.

[0181] Optionally, as one example, the specific motion vector candidate is the first motion vector or the last motion vector obtained in the scanning order among the N motion vector candidates.

[0182] Optionally, as one example, the determination unit 520 performs scaling processing on a specific motion vector candidate in the second motion vector candidate list, and makes the reference frame pointed to by the scaled specific motion vector candidate the same as the reference image of the current image block, and is used to use the specific motion vector candidate after the scaling processing as the reference motion vector.

[0183] Optionally, as one example, when no motion vector candidate among the N motion vector candidates that meets the preset conditions has been scanned, the determination unit 520 is used to use a default value as the reference motion vector.

[0184] Optionally, as one example, the default value is the motion vector (0, 0).

[0185] Optionally, as one example, the determination unit 520 divides the current image block into a plurality of sub-image blocks, determines the related block of the sub-image block among the reference images of the current image block based on the reference motion vector, and is used to determine the motion vector candidate to be continuously inserted into the second motion vector candidate list based on the motion vector of the related block.

[0186] Optionally, as one example, the size of the sub-image block and / or the size of the related block of the sub-image block is fixed to 64 or more pixels.

[0187] Optionally, as one example, the current image block is one coding unit CU.

[0188] Optionally, as one example, the determination unit 520 is used to determine the related block of the current image block in the reference image of the current image block based on the reference motion vector, and to determine the motion vector candidates to be continuously included in the second candidate list of motion vectors based on the motion vector of the related block.

[0189] Optionally, as one example, the determination unit 520 is used to determine the motion vector candidates to be continuously included in the second candidate list of motion vectors based on the motion vector of the processed related block when the motion vector of the related block points to a specific reference image or the reference image of the current image block is the specific reference image, where the motion vector of the processed related block is the same as the motion vector of the related block before processing.

[0190] Optionally, as one example, the motion vector of the processed related block includes the motion vector obtained after scaling the motion vector of the related block by a scale factor of 1, or the motion vector of the related block with the scaling step skipped.

[0191] Optionally, as one example, the determination unit 520 is used to abandon determining the motion vector candidates to be continuously included in the second candidate list of vectors based on the motion vector of the motion vector of the related block when the motion vector of the related block points to a specific reference image or the reference image of the current image block is the specific reference image.

[0192] Optionally, as one example, when the specific motion vector candidate points to a specific reference image or the reference image of the current image block is the specific reference image, the determination unit 520 is used to determine a motion vector candidate that continues to be included in the second candidate list of motion vectors based on the processed specific motion vector candidate, where the motion vector of the processed specific motion vector candidate is the same as the motion vector of the unprocessed specific motion vector candidate.

[0193] Optionally, as one example, the motion vector of the processed related block includes the motion vector obtained after scaling the motion vector of the related block by a scale factor of 1, or the motion vector of the related block with the scaling step skipped.

[0194] Optionally, as one example, the determination unit 520 is used to abandon determining a motion vector candidate that continues to be included in the second candidate list of vectors based on the specific motion vector candidate when the specific motion vector candidate points to a specific reference image or the reference image of the current image block is the specific reference image.

[0195] Optionally, as one example, the second candidate list of motion vectors is a Merge candidate list.

[0196] Optionally, as one example, the reference image of the current image block is the co-located frame of the current image block.

[0197] Optionally, as one example, both the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels.

[0198] It should be noted that both the acquisition unit 510 and the determination unit 520 in this embodiment can be implemented by a processor.

[0199] As shown in FIG. 6, an embodiment of the present application further provides a moving image processing apparatus 600. The apparatus 600 is used to execute the embodiment of the method shown in FIG. 4. The apparatus 600 includes the following units.

[0200] A determination unit 610, which is used to obtain M motion vector candidates to be included in the second candidate list of motion vectors of the current image block.

[0201] A determination unit 620, which is used to sequentially scan at least some of the M motion vector candidates and determine the reference motion vector of the current image block based on the scanning result.

[0202] A splitting unit 630, which is used to split the current image block into a plurality of sub-image blocks, where the size of the sub-image block is fixed to 64 or more pixels.

[0203] The determination unit 620 is further used to determine the associated block of the sub-image block in the reference image of the current image block based on the reference motion vector.

[0204] The determination unit 620 is further used to determine the motion vector candidates to be continuously included in the second candidate list of motion vectors based on the motion vectors of the associated blocks.

[0205] In the current ATMVP technology, an adaptive setting at the frame level is performed for the size of the sub-image block. The size of the sub-image block is 4×4 by default, and when a certain condition is met, the size of the sub-image block is set to 8×8. For example, on the encoding side, when encoding the current image block, the average block size of each sub-image block in the CU is calculated during the encoding of the ATMVP mode of the previous encoded image block in the same temporal layer. If the average block size is larger than the threshold, the size of the sub-image block of the current image block is set to 8×8; otherwise, the default value of 4×4 is used. That is, in the prior art, when encoding the current image block, it is necessary to further store the information on the size of the sub-image block of the previously encoded image block in the same temporal layer.

[0206] In the embodiments of the present application, the size of the sub-image block of the current image block is fixed to 64 or more pixels, and there is no need to store the information on the size of the sub-image block of the previous encoded image block. Therefore, the storage space can be saved.

[0207] Optionally, as an example, both the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels.

[0208] Currently, in the next-generation video coding standard (Versatile Video Coding, VVC), motion vectors are stored in a size of 8×8. In the embodiments of the present application, the size of the sub-image block of the current image block is set to 8×8, which can adapt to the storage granularity of the motion vectors defined in the video standard VVC. At the same time, there is no need to store the information on the size of the sub-image block of the previous encoded image block. Therefore, the storage space can be saved.

[0209] Optionally, as an example, the determination unit 620 sequentially scans at least some of the motion vector candidates, stops scanning when it reaches a motion vector candidate that meets the first preset condition, and is used to determine a reference motion vector based on the first scanned motion vector candidate that meets the preset condition.

[0210] Optionally, as an example, the determination unit 620 is used to set a motion vector candidate that meets the first preset condition as a target neighborhood block.

[0211] Optionally, as an example, the preset condition includes that the reference image of the motion vector candidate is the same as the reference image of the current image block.

[0212] It should be noted that the acquisition unit 610, the determination unit 620, and the division unit 630 in this embodiment can all be realized by a processor.

[0213] In the above description, the motion vector of one image block includes two pieces of information: 1) the image pointed to by the motion vector, and 2) the displacement. In some application scenarios, the motion vector of one image block includes only the information of "displacement". The image block also provides index information for indicating the reference image of the image block. For an encoded / decoded image block, the meaning of its motion vector is that the position is the same as that of the encoded / decoded image block on the reference image of the reference block of the encoded / decoded image block and includes the displacement with respect to the image block located on the reference image. When determining the reference block of the encoded / decoded image block, it is necessary to determine the reference block of the encoded / decoded image block according to the index information of the reference image of the encoded / decoded image block and the motion vector of the encoded / decoded image block. Therefore, in the moving image processing method shown in FIG. 1, in step S120, instead of scanning the motion vector candidates in the second motion vector candidate list, the image blocks corresponding to the motion vector candidates are directly scanned. Hereinafter, a moving image processing method is provided for the new definition of the motion vector (that is, including the "displacement" information but not including the "pointed image"). It should be noted that the method for determining the motion vector candidates based on the ATMVP technology provided respectively for the two different meanings of the "motion vector" is substantially the same, and the above description is also applicable to the moving image processing method provided hereinafter. The main difference is that in the construction of the second motion vector candidate list, when determining the candidates to be included in the second motion vector candidate list based on the ATMVP technology, in the above-mentioned moving image processing method, the motion vectors included in the second motion vector candidate list are scanned, while in the moving image processing method described hereinafter, the image blocks corresponding to the motion vectors included in the second motion vector candidate list are scanned.

[0214] As shown in FIG. 7, the embodiment of the present application provides a moving image processing method, and the method includes the following steps.

[0215] S710. Determine M neighboring blocks of the current image block.

[0216] The current image block is an image block to be encoded (or decoded). For example, the current image block is one coding unit (CU).

[0217] The image frame in which the current image block is located is called the current frame.

[0218] The neighboring block is an image block adjacent to the position of the current image block or having a certain position pitch in the current image.

[0219] The M neighboring blocks are encoded (or decoded) image blocks within the current frame.

[0220] As an example, as shown in FIG. 2, four positions A around the current image block shown in FIG. 2 1 (left) → B 1 (above) → B 0 (upper right) → A 0 (lower left), the four neighboring blocks of the current image block are sequentially determined in this order.

[0221] In S720, N of the M neighboring blocks are sequentially scanned, and a target neighboring block is determined based on the scanning result, where N is smaller than M.

[0222] The process of determining the target neighboring block based on the scanning results of the N neighboring blocks may be a process of sequentially determining the N neighboring blocks based on preset conditions and determining the target neighboring block based on the determination results.

[0223] As an example, the definition of the preset conditions includes that the reference image of the neighboring block is the same as the reference image of the current image block.

[0224] Here, the reference image of the current image block is the reference image with the closest temporal distance to the image where the current image block is located, or the reference image of the current image block is a reference image preset on the encoding and decoding sides, or the reference image of the current image block is the reference image specified in the video parameter set, sequence header, sequence parameter set, picture header, picture parameter set, slice header.

[0225] For example, the reference image of the current image block is the co-located frame of the current image block, and the co-located frame is a frame for obtaining and predicting motion information set in the slice-level information header.

[0226] It should be understood that with the evolution of future technologies, this preset condition may give other different definitions, and corresponding solutions will also fall within the protection scope of this application.

[0227] Hereinafter, the process of determining the target neighboring block based on the scanning results of N neighboring blocks will be described in detail.

[0228] In step S720, only N neighboring blocks out of the M neighboring blocks obtained in step S710 are scanned, and in this way, the number of scans can be reduced.

[0229] Optionally, in step S720, the first N neighboring blocks among the M neighboring blocks may be sequentially scanned.

[0230] In step S710, when sequentially determining M neighboring blocks of the current image block in a preset order, the previous N neighboring blocks obtained in step S720 refer to the first N neighboring blocks determined in the preset order.

[0231] Optionally, in step S720, the last N neighboring blocks among the M neighboring blocks may be sequentially scanned, or the middle N neighboring blocks among the M neighboring blocks may be sequentially scanned. This application is not limited thereto.

[0232] S730. Based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block, determine the related block of the current image block.

[0233] S740. Encode / Decode the current image block based on the motion vector of the related block.

[0234] Optionally, step S740 includes determining the reference block of the current image block based on the motion vector of the related block and the reference image.

[0235] For example, step S740 constructs a candidate block list of the current image block. The candidate blocks in the candidate block list include the M neighboring blocks and the related block, and encoding and decoding are performed on the current image block based on the reference blocks of the candidate blocks in the candidate block list.

[0236] In one example, the candidate block list is the merge candidate list of the current image block. In one example, the candidate block list is the AMVP candidate list of the current image block.

[0237] On the encoding side, write the index of the candidate block of the current block into the code stream. On the decoding side, after obtaining the index, find the candidate block corresponding to the index from the candidate block list, determine the reference block of the current image block based on the reference block of the candidate block, or determine the motion vector of the current image block based on the motion vector of the candidate block.

[0238] For example, directly determine the reference block of the candidate block as the reference block of the current image block, or directly determine the motion vector of the candidate block as the motion vector of the current image block. Also, for example, the encoding side writes the MVD of the current block into the code stream. After obtaining the MVD, the decoding side adds the MVD to the motion vector of the candidate block to obtain the motion vector of the current block, and then determines the reference block of the current block based on the motion vector and the reference image of the current block.

[0239] In the embodiments of the present application, in the process of obtaining the target neighboring blocks of the current image block, only N (N is smaller than M) of the M already obtained neighboring blocks are sequentially scanned, which can reduce the number of scans of the neighboring blocks in the process of obtaining the target neighboring blocks of the current image block compared with the prior art, thereby reducing the complexity.

[0240] Optionally, in this embodiment, in step S710, four neighboring blocks of the current image block within the current frame are determined, that is, M is equal to 4. In step S720, N of the four neighboring blocks are scanned, where N is smaller than 4.

[0241] For example, N is equal to 1. For example, in step S720, only the first neighboring block of the four neighboring blocks is scanned.

[0242] Also, for example, N is equal to 2 or 3.

[0243] Next, a method for determining the target neighboring block based on the scanning results of the N neighboring blocks in step S720 will be described.

[0244] Optionally, in step S720, when sequentially scanning N neighboring blocks and stopping the scan upon reaching the neighboring block that meets the first preset condition, determine the target neighboring block based on the first scanned neighboring block that meets the preset condition.

[0245] For example, the definition of the preset condition includes that the reference image of the neighboring block is the same as the reference image of the current image block.

[0246] It should be understood that in future evolving technologies, the preset condition may be defined otherwise.

[0247] Here, the definition of the preset condition will be described by taking as an example that the reference image of the neighboring block is the same as the reference image of the current image block.

[0248] For example, use the neighboring block that meets the first preset condition as the target neighboring block.

[0249] Optionally, in step S720, if no neighboring block that meets the preset condition has been scanned among the N neighboring blocks, the method further includes performing scaling processing on the motion vector of a specific neighboring block among the M neighboring blocks, and encoding / decoding the current image block based on the motion vector after the scaling processing.

[0250] For example, determine the reference block of the current image block based on the motion vector after the scaling processing and the reference image of the current image block.

[0251] Optionally, the specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the N neighboring blocks.

[0252] The specific neighboring block may be a neighboring block obtained in another scanning order among the N neighboring blocks.

[0253] Optionally, encoding / decoding the current image block based on the motion vector after the scaling process includes performing a scaling process on the motion vectors of specific neighboring blocks so that the reference frame pointed to by the motion vector after the scaling process is the same as the reference image of the current image block, and setting the image block pointed to by the motion vector after the scaling process in the reference image of the current image block as the reference block of the current image block.

[0254] Optionally, in step S720, if no neighboring block that meets the preset conditions has been scanned among the N neighboring blocks, the default block is set as the candidate reference block of the current image block.

[0255] For example, the default block is the image block pointed to by the motion vector (0, 0).

[0256] Next, in step S730, a process of determining the related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block will be described.

[0257] Optionally, as an embodiment, determining the related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block includes dividing the current image block into a plurality of sub-image blocks, and determining the related blocks of the sub-image blocks in the reference image of the current image block based on the motion vector of the target neighboring block, where the related block of the current image block includes the related blocks of the sub-image blocks.

[0258] The related block may also be referred to as a collocated block or a corresponding block.

[0259] For example, the current image block is one CU, and the sub-image blocks obtained after dividing it may also be referred to as sub-CUs.

[0260] Optionally, the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to be 64 pixels or more.

[0261] Optionally, both the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels.

[0262] In the current ATMVP technology, an adaptive setting at the frame level is performed for the size of the sub-image block. The size of the sub-image block is 4×4 by default, and when a certain condition is met, the size of the sub-image block is set to 8×8. For example, on the encoding side, when encoding the current image block, when encoding the ATMVP mode of the previous encoded image block in the same temporal layer, the average block size of each sub-image block in the CU is calculated. If the average block size is larger than the threshold, the dimension of the sub-image block of the current image block is set to 8×8; otherwise, the default value of 4×4 is used. Currently, in the next-generation video coding standard (Versatile Video Coding, VVC), motion vectors are stored in the size of 8×8. It should be understood that when the size of the sub-image block is set to 4×4, the size of the motion vector of the sub-image block (also 4×4) does not conform to the storage granularity of the motion vector in the current standard. Also, in the current ATMVP technology, when encoding the current image block, it is further necessary to store the information on the size of the sub-image block of the previous encoded image block in the same temporal layer.

[0263] In the embodiments of the present application, the size of the sub-image block of the current image block is set to 8×8, which can adapt to the storage granularity of the motion vector defined in the video standard VVC. On the other hand, it is not necessary to store the information on the size of the sub-image block of the previous encoded image block, so that the storage space can be saved.

[0264] On the premise of ensuring that the size of the sub-image block and / or the size of the related block of the sub-image block are fixed at 64 pixels, the size of the sub-image block and / or the size of the related block of the sub-image block may be other dimensions. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is A×B, where A≤64 and B≤64, and both A and B are integers divisible by 4. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is 4×16 pixels or 16×4 pixels.

[0265] Optionally, as another embodiment, determining the related block of the current image block based on the motion vector of the target neighborhood block, the current image block, and the reference image of the current image block includes determining the related block of the current image block in the reference image of the current image block based on the motion vector of the target neighborhood block.

[0266] Optionally, step S740 includes determining a candidate reference block of the current image block based on the motion vector of the processed related block and the reference image of the current image block when the reference image of the related block is a specific reference image or the reference image of the current image block is a specific reference image. Here, the motion vector of the processed related block is the same as the motion vector of the related block before processing.

[0267] For example, the motion vector of the processed related block includes the motion vector obtained after scaling the motion vector of the related block by a scale factor of 1, or the motion vector of the related block with the scaling step skipped.

[0268] Optionally, step S740 abandons determining the candidate reference block of the current image block based on the motion vector of the related block when the reference image of the related block is a specific reference image or the reference image of the current block is a specific reference image.

[0269] In some embodiments, step S720 includes determining a reference block of the current image block based on the motion vector of the processed related block and the reference image of the current image block when the motion vector of the specific neighboring block points to the specific reference image or the reference image of the current image block is the specific reference image. Here, the motion vector of the processed related block is the same as the motion vector of the related block before processing.

[0270] Here, the motion vector of the processed related block includes the motion vector obtained after scaling the motion vector of the related block by a scale factor of 1, or the motion vector of the related block without skipping the scaling step.

[0271] As can be seen from the above, in the embodiments of the present application, in the process of obtaining the target neighboring block of the current image block, only N (N is smaller than M) of the M neighboring blocks that have already been obtained are sequentially scanned. Compared with the prior art, the number of scans of the neighboring blocks in the process of obtaining the target neighboring block of the current image block can be reduced, thereby reducing the complexity.

[0272] If the neighboring block among the N neighboring blocks whose co-located frame of the reference frame and the current frame is the same has not been scanned, scaling processing is performed on the motion vector of one of the N neighboring blocks so that its reference frame becomes the same as the co-located frame of the current frame. Subsequently, by using this scaled motion vector as the motion vector of the current image block, the accuracy of the motion vector of the current image block can be improved.

[0273] The current image block can be divided into sub-image blocks of size 8×8 to adapt to the storage granularity of the motion vector defined in the video coding standard VVC. On the other hand, it is not necessary to store the information about the size of the sub-blocks of the previous encoded image block, so the storage space can be saved.

[0274] In some embodiments of the examples of the present application, in the process of determining the motion vector of the current image block, it is related to determining the motion vector of the image block by using the motion vector of an image block on another image. For the convenience of description, the image block is called the first image block, and an image block on another image to be used is called the temporal reference block or related block of the first image block. It can be understood that the first image block and the temporal reference block (or related block) of the first image block are located on different images. Therefore, in the process of determining the motion vector of the first image block by using the motion vector of the temporal reference block (or related block), it may be necessary to scale the motion vector of the temporal reference block (or related block). For the convenience of description, in this specification, the term "related block" is uniformly used.

[0275] For example, when applying the ATMVP technology to the construction of the AMVP candidate list, after determining the related block of the current image block based on the ATMVP technology, determining the motion vector of the current image block based on the motion vector of the related block, scaling the motion vector of the related block, and then it is necessary to determine the motion vector of the current image block based on the scaled motion vector. Generally, based on the temporal distance between the reference image pointed to by the motion vector of the related block and the image where the related block is located, and the temporal distance between the reference image of the current image block and the image where the current image block is located, the scale of the motion vector of the related block is determined.

[0276] In one example, the motion vector of the related block is called MV2, and the reference frame index value of the reference image pointed to by the motion vector MV2 is called x. Here, the reference frame index value x is the difference between the sequence number of the reference image pointed to by MV2 (e.g., POC) and the sequence number of the image where the related block is located. The reference frame index value of the reference image of the first image block is called y. Here, the reference frame index value y is the difference between the sequence number of the reference image of the first image block and the sequence number of the image where the first image block is located. Therefore, the scale for the motion vector MV2 is y / x. Optionally, the product of the motion vector MV2 and y / x can be used as the motion vector of the first image block.

[0277] However, when the motion vector MV2 of the related block points to a specific reference image, or when the reference image of the first image block is the specific reference image, since the definition of the temporal distance between the specific reference image and the image where the first image block is located is ambiguous, scaling the motion vector MV2 of the related block has no meaning.

[0278] Optionally, in this embodiment, when determining the motion vector of the current image block based on the motion vector of the related block, specifically, when the motion vector of the related block points to a specific reference image, or when the reference image of the current image block is the specific reference image, determine the motion vector of the current image block based on the motion vector of the related block after processing. Here, the motion vector of the related block after processing is the same as the motion vector of the related block before processing.

[0279] For example, the motion vector of the related block after processing includes the motion vector obtained by scaling the motion vector of the related block with a scale of 1 in terms of value, or the motion vector of the related block with the scaling step skipped.

[0280] Optionally, in this embodiment, when determining the motion vector of the current image block based on the motion vectors of the related blocks, specifically, when the motion vector of the related block points to a specific reference image or the reference image of the current image block is the specific reference image, the determination of the motion vector of the current image block based on the motion vector of the related block is abandoned.

[0281] As shown in FIG. 8, the embodiment of the present application further provides a moving image processing method, and the method includes the following steps.

[0282] S810. Determine M neighboring blocks of the current image block.

[0283] Step S810 can correspond to step S710 in the above embodiment.

[0284] S820. Sequentially scan at least some of the M neighboring blocks, and determine a target neighboring block based on the scanning result.

[0285] Optionally, sequentially scan some of the neighboring blocks among the M neighboring blocks, and determine a target neighboring block based on the scanning result.

[0286] Optionally, sequentially scan all of the neighboring blocks among the M neighboring blocks, and determine a target neighboring block based on the scanning result.

[0287] S830. Divide the current image block into a plurality of sub-image blocks, where the size of the sub-image block is fixed to 64 or more pixels.

[0288] S840. Based on the motion vector of the target neighboring block and the sub-image block, determine a related block of the current image block in the reference image of the current image block.

[0289] Optionally, the reference image of the current image block is the reference image with the closest temporal distance to the image where the current image block is located.

[0290] Optionally, the reference image of the current image block is a reference image preset on the encoding side and the decoding side.

[0291] Optionally, the reference image of the current image block is a reference image specified in the moving picture parameter set, sequence header, sequence parameter set, picture header, picture parameter set, or slice header.

[0292] S850: Encode / Decode the current image block based on the motion vectors of the related blocks.

[0293] In the embodiments of the present application, the size of the sub-image block of the current image block is fixed to 64 or more pixels, and there is no need to store information on the size of the sub-image block of the previous encoded image block. Therefore, storage space can be saved.

[0294] Optionally, in this embodiment, both the size of the sub-image block and / or the size of the temporal region reference block of the sub-image block are fixed to 8×8 pixels.

[0295] Currently, in the next-generation video coding standard (Versatile Video Coding, VVC), motion vectors are stored in a size of 8×8. In the embodiments of the present application, the size of the sub-image block of the current image block can be set to 8×8 to adapt to the storage granularity of the motion vectors defined in the video standard VVC, while there is no need to store information on the size of the sub-image block of the previous encoded image block. Therefore, storage space can be saved.

[0296] On the premise of ensuring that the size of the sub-image block and / or the size of the related block of the sub-image block are fixed at 64 pixels, the size of the sub-image block and / or the size of the related block of the sub-image block may be other dimensions. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is A×B, where A≦64, B≦64, and both A and B are integers divisible by 4. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is 4×16 pixels or 16×4 pixels.

[0297] Optionally, step S820 includes sequentially scanning at least some of the neighboring blocks. When scanning reaches the neighboring block that meets the first preset condition, the scanning stops, and the target neighboring block is determined based on the first scanned neighboring block that meets the preset condition.

[0298] For example, the neighboring block that meets the first preset condition is used as the target neighboring block.

[0299] For example, the definition of the preset condition includes that the reference image of the neighboring block is the same as the reference image of the current image block.

[0300] Optionally, step S840 includes determining the related block of the sub-image block in the reference image of the current image block based on the motion vector of the target neighboring block and the sub-image block. Here, the related block of the current image block includes the related block of the sub-image block.

[0301] Above, in relation to FIGS. 7 and 8, embodiments of the method of the present application have been described. Hereinafter, embodiments of the apparatus corresponding to the embodiments of the method shown in FIGS. 7 and 8 will be described. Note that the description of the embodiments of the apparatus corresponds to the description of the embodiments of the method. Therefore, for those not described in detail, reference may be made to the above embodiments of the method. For the sake of simplicity, they will not be described again here. FIG. 9 is a schematic block diagram of a moving image processing apparatus 900 provided according to an embodiment of the present application. The apparatus 900 is used to execute an embodiment of the method shown in FIG. 7. The apparatus 900 includes the following units.

[0302] An acquisition unit 910, which is used to acquire M neighboring blocks of the current image block.

[0303] An acquisition unit 920, which is used to sequentially scan N neighboring blocks out of the M neighboring blocks and determine a target neighboring block based on the scanning result, where N is smaller than M.

[0304] The determination unit 920 is further used to determine a related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block.

[0305] An encoding / decoding unit 930, which is used to encode / decrypt the current image block based on the motion vector of the related block.

[0306] In an embodiment of the present application, in the process of acquiring the target neighboring block of the current image block, only N (N is smaller than M) neighboring blocks out of the already acquired M neighboring blocks are sequentially scanned, and compared with the prior art, the number of scans of the neighboring blocks in the process of acquiring the target neighboring block of the current image block can be reduced, thereby reducing the complexity.

[0307] Optionally, as one embodiment, M is equal to 4 and N is smaller than 4.

[0308] Optionally, as one embodiment, N is equal to 1 or 2.

[0309] Optionally, as one embodiment, the determination unit 920 is used to sequentially scan the previous N neighboring blocks among the M neighboring blocks.

[0310] Optionally, as an example, the acquisition unit 910 sequentially acquires M neighboring blocks of the current image block in a preset order, and the previous N neighboring blocks refer to the first N neighboring blocks determined in the preset order.

[0311] Optionally, as an example, the determination unit 920 sequentially scans the N neighboring blocks. When the scan stops when it reaches the neighboring block that meets the first preset condition, it is used to determine the target neighboring block based on the first neighboring block that meets the preset condition that has been scanned.

[0312] Optionally, as an example, the determination unit 920 is used to set the neighboring block that meets the first preset condition as the target neighboring block.

[0313] Optionally, as an example, the preset condition is that the reference image of the neighboring block is the same as the reference image of the current image block.

[0314] Optionally, as an example, the encoding / decoding unit 930 is used to determine the reference block of the current image block based on the motion vector and reference image of the related block.

[0315] Optionally, as an example, the encoding / decoding unit 930 constructs a candidate block list for the current image block. The candidate blocks in the candidate block list include M neighboring blocks and related blocks, and are used to encode and decode the current image block based on the reference blocks of the candidate blocks in the candidate block list.

[0316] Optionally, as an example, when the neighboring blocks that meet the preset conditions are not scanned among the N neighboring blocks, the encoding / decoding unit 930 further performs scaling processing on the motion vectors of the specific neighboring blocks among the M neighboring blocks, and is used to encode / decrypt the current image block based on the motion vectors after the scaling processing.

[0317] Optionally, as an example, the encoding / decoding unit 930 is used to determine the reference block of the current image block based on the motion vector after the scaling processing and the reference image of the current image block.

[0318] Optionally, as an example, the specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the N neighboring blocks.

[0319] Optionally, as an example, the encoding / decoding unit 930 performs scaling processing on the motion vector of the specific neighboring block so that the reference frame pointed to by the motion vector after the scaling processing is the same as the reference image of the current image block, and the image block pointed to by the motion vector after the scaling processing in the reference image of the current image block is used as the reference block of the current image block.

[0320] Optionally, as an example, when the neighboring blocks that meet the preset conditions are not scanned among the N neighboring blocks, the determination unit 920 is used to set the default block as the reference block of the current image block.

[0321] Optionally, as an example, the default block is the image block pointed to by the motion vector (0, 0).

[0322] Optionally, as an example, the determination unit 920 divides the current image block into a plurality of sub-image blocks, and It is used to determine the relevant block of the sub-image block in the reference image of the current image block based on the motion vector of the target neighboring block, and the relevant block of the current image block includes the relevant block of the sub-image block.

[0323] Optionally, as one example, the size of the sub-image block and / or the size of the relevant block of the sub-image block is fixed to 64 or more pixels.

[0324] Optionally, as one example, the current image block is one coding unit CU.

[0325] Optionally, as one example, the determination unit 920 is used to determine the relevant block of the current image block in the reference image of the current image block based on the motion vector of the target neighboring block.

[0326] Optionally, as one example, the neighboring block is an image block adjacent to the position of the current image block on the current image or having a certain position pitch.

[0327] Optionally, as one example, the encoding / decoding unit 930 is used to determine the reference block of the current image block based on the motion vector of the processed relevant block and the reference image of the current image block when the reference image of the relevant block is a specific reference image or the reference image of the current image block is a specific reference image. Here, the motion vector of the processed relevant block is the same as the motion vector of the relevant block before processing.

[0328] Optionally, as one example, the motion vector of the processed relevant block includes the motion vector obtained after scaling the motion vector of the relevant block by a scale factor of 1, or the motion vector of the relevant block with the scaling step skipped.

[0329] Optionally, as an example, the encoding / decoding unit 930 is used to abandon determining the reference block of the current image block based on the motion vector of the associated block when the reference image of the associated block is the specific reference image, or when the reference image of the current block is the specific reference image.

[0330] Optionally, as an example, the determination unit 920 is used to determine the reference block of the current image block based on the motion vector of the processed associated block and the reference image of the current image block when the motion vector of the specific neighboring block points to the specific reference image, or when the reference image of the current image block is the specific reference image. Here, the motion vector of the processed associated block is the same as the motion vector of the unprocessed associated block.

[0331] Optionally, as an example, the motion vector of the processed associated block includes the motion vector obtained after scaling the motion vector of the associated block by a scale factor of 1, or the motion vector of the associated block with the scaling step skipped.

[0332] It should be noted that the acquisition unit 910, the determination unit 920, and the encoding / decoding unit 930 in this embodiment can all be realized by a processor.

[0333] As shown in FIG. 10, the embodiment of the present application further provides a moving image processing apparatus 1000. The apparatus 1000 is used to execute the method embodiment shown in FIG. 8. The apparatus 1000 includes the following units.

[0334] An acquisition unit 1010, which is used to acquire M neighboring blocks of the current image block.

[0335] A determination unit 1020, which is used to sequentially scan at least some of the M neighboring blocks and determine the target neighboring block based on the scanning result.

[0336] The splitting unit 1030 is used to split the current image block into a plurality of sub-image blocks. Here, the size of the sub-image block is fixed to 64 or more pixels.

[0337] The determination unit 1020 is further used to determine the related block of the current image block in the reference image of the current image block based on the motion vector of the target neighboring block and the sub-image block.

[0338] The encoding / decoding unit 1040 is used to encode / decrypt the current image block based on the motion vector of the related block.

[0339] In the embodiments of the present application, the size of the sub-image block of the current image block is fixed to 64 or more pixels, and there is no need to store the information on the size of the sub-image block of the previous encoded image block. Therefore, the storage space can be saved.

[0340] Optionally, as an example, both the size of the sub-image block and / or the size of the temporal region reference block of the sub-image block are fixed to 8×8 pixels.

[0341] Currently, in the next-generation video coding standard (Versatile Video Coding, VVC), motion vectors are stored in a size of 8×8. In the embodiments of the present application, the size of the sub-image block of the current image block can be set to 8×8 to adapt to the storage granularity of the motion vector defined in the video standard VVC, while there is no need to store the information on the size of the sub-image block of the previous encoded image block. Therefore, the storage space can be saved.

[0342] On the premise of ensuring that the size of the sub-image block and / or the size of the related block of the sub-image block are fixed at 64 pixels, the size of the sub-image block and / or the size of the related block of the sub-image block may be other dimensions. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is A×B, where A≤64 and B≤64, and both A and B are integers divisible by 4. For example, the size of the sub-image block and / or the size of the related block of the sub-image block is 4×16 pixels or 16×4 pixels.

[0343] Optionally, as an example, in one embodiment, sequentially scanning at least some of the M neighboring blocks and determining the target neighboring block based on the scanning results includes sequentially scanning at least some of the neighboring blocks, stopping the scanning when reaching the first neighboring block that meets the first preset condition, and determining the target neighboring block based on the first neighboring block that meets the first preset condition that has been scanned.

[0344] Optionally, as an example, in one embodiment, the determination unit 1020 is used to set the first neighboring block that meets the first preset condition as the target neighboring block.

[0345] Optionally, as an example, the preset condition is that the reference image of the neighboring block is the same as the reference image of the current image block.

[0346] Optionally, as an example, in one embodiment, the determination unit 1020 is used to determine the related block of the sub-image block in the reference image of the current image block based on the motion vector and sub-image block of the target neighboring block. Here, the related block of the current image block includes the related block of the sub-image block.

[0347] It should be noted that the acquisition unit 1010, determination unit 1020, division unit 1030, and encoding / decoding unit 1040 in this embodiment can all be realized by a processor.

[0348] As shown in FIG. 11, an embodiment of the present application further provides a moving image processing apparatus 1100. The apparatus 1100 may be used to execute the method embodiments described above. The apparatus 1100 includes a processor 1110 and a memory 1120. The memory 1120 is used to store instructions, and the processor 1110 executes the instructions stored in the memory 1120 and is used to cause the processor 1110 to execute the method according to the method embodiments described above by executing the instructions stored in the memory 1120.

[0349] Optionally, as shown in FIG. 11, the apparatus 1100 may include a communication interface 1130 for communicating with an external device. For example, the processor 1110 is used to control the communication interface 1130 to receive and / or transmit signals.

[0350] The apparatuses 500, 600, 900, 1000, and 1100 provided in the present application may be applied to an encoder or a decoder.

[0351] The above description has explained the second candidate list of motion vectors. Hereinafter, the first candidate list of motion vectors will be described.

[0352] In the motion compensation prediction stage, conventionally, only the translational motion model has been applied to the mainstream video coding standards. In the real world, there are various motion forms such as zooming in / out, rotation, panoramic motion, and other irregular motions. In order to improve the efficiency of inter-frame prediction, an affine motion compensation model can be introduced into the encoding and decoding technology. Affine motion compensation describes the affine motion field of an image block by the MVs of a set of control points. In one example, the 4-parameter Affine model is used for the affine motion compensation model. In this case, the set of control points includes two control points (for example, the point at the upper left corner and the point at the upper right corner of the image block). In one example, the 6-parameter Affine model is used for the affine motion compensation model. The set of control points includes three control points (for example, the point at the upper left corner, the point at the upper right corner, and the point at the lower left corner of the image block).

[0353] In one embodiment, when constructing the first candidate list of motion vectors, the candidates included may be the MVs of a set of control points, or may be referred to as control point motion vector prediction (CPMVP). Optionally, the first candidate list of motion vectors may be used in the Merge mode. Specifically, it may be referred to as the Affine Merge mode. Correspondingly, the first candidate list of the motion vectors may be referred to as the affine merge candidate list. In the Affine Merge mode, the prediction in the first candidate list of the motion vectors is directly used as the CPMV (Control point motion vector) of the current image block, that is, there is no need to perform an affine motion estimation process.

[0354] In one embodiment, the candidates determined based on the ATMVP technology can be put into the first candidate list of motion vectors.

[0355] Here, in one example, the motion vector group of the control points of the related blocks of the current image block is used as candidates and put into the first candidate list of motion vectors. When predicting using the candidates in the first list of motion vectors, the current image block is predicted based on the motion vector group of the control points of the related blocks of the current image block.

[0356] Here, in one example, as described above, the representative motion vector of the related block of the current image block is used as a candidate and put into the first candidate list of motion vectors. Further, optionally, the candidate is marked as being determined based on the ATMVP technique. When predicting using the candidate in the first candidate list of motion vectors, the related block of the current image block is determined based on the mark and the candidate, the current image block and the related block are divided into a plurality of sub-image blocks in the same manner, each sub-image block in the current image block corresponds one-to-one with each sub-image block in the related block, and the motion vectors of the corresponding sub-image blocks in the current image block are predicted respectively based on the motion vectors of each sub-image block in the related block.

[0357] Here, optionally, when a sub-image block with an unavailable motion vector appears in the related block, the unavailable motion vector is replaced with the representative motion vector of the related block to predict the corresponding sub-image block in the current image block. Optionally, when all the representative motion vectors of the related block are unavailable, the candidate determined based on the ATMVP technique is abandoned from being put into the second candidate list of motion vectors. In one example, it is determined that a sub-image block in the related block has an unavailable motion vector when the sub-image block in the related block is unavailable or when the sub-image block in the related block uses the intra-frame coding mode.

[0358] Here, optionally, each candidate in the first candidate list of motion vectors includes a motion vector of a set of control points. When inserting the representative motion vector of the related block of the current image block into the first candidate list of motion vectors, to ensure the consistency of the data format, the representative motion vector of the related block may be inserted as the motion vector of each control point in the candidate (that is, the motion vectors of each control point in the candidate are all assigned to the representative motion vector of the related block).

[0359] Here, optionally, the representative motion vector of the related block of the current image block may refer to the motion vector of the central position of the related block, or may refer to the motion vector representing other related blocks, and is not limited here.

[0360] As can be seen from the description of the second candidate list of the above motion vectors, when determining candidates based on the ATMVP technology, it is necessary to determine the related block of the current image block. In this solution, when determining the candidates to be included in the first candidate list of motion vectors based on the ATMVP technology, the methods for determining the related block of the current image block include sequentially scanning N neighboring blocks out of the preset M neighboring blocks of the current image block, determining the target neighboring block based on the scanning result, where N is smaller than M and M is 4 or less, and based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block, a method 1 for determining the related block of the current image block; Based on M candidates in the motion vector second candidate list of the current image block, M neighboring blocks of the current image block are determined. N neighboring blocks among the M neighboring blocks are sequentially scanned, and a target neighboring block is determined based on the scanning result. N is smaller than M, and M is 4 or less. A method 2 of determining an associated block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block is included. Here, the M candidates in the motion vector second candidate list may refer to M neighboring blocks of the current image block.

[0361] Here, for the two steps of "determining a target neighboring block based on the scanning result" and "determining an associated block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block" in method 1 and method 2, the descriptions may refer to the above descriptions and will not be repeated here.

[0362] In one embodiment, the method of determining candidates to be included in the first candidate list of motion vectors is to determine a group of motion vectors of control points of neighboring blocks predicted in the affine transformation mode according to a specific scanning order from the neighboring blocks of the current image block, and include each determined group of motion vectors of control points of neighboring blocks as one candidate in the first candidate list of motion vectors.

[0363] Here, in one example, the neighboring block predicted in the affine transformation mode refers to the one whose motion vector is determined based on candidates in the affine merge candidate list. That is, the candidate is from the affine motion model of the spatial region neighboring block using the affine mode of the current image block, that is, the CPMV of the spatial region neighboring block using the affine mode is set as the CPMVP of the current block.

[0364] Here, in one example, the motion vector group of the control points may include the motion vectors of two control points of the neighboring block (for example, the point at the upper left corner and the point at the upper right corner of the neighboring block), or may include the motion vectors of three control points of the neighboring block (for example, the point at the upper left corner, the point at the upper right corner, and the point at the lower left corner of the image block), which depends on whether a 4-parameter Affine model or a 6-parameter Affine model is used.

[0365] Here, in one example, determining the motion vector group of the control points of the neighboring block predicted in the affine transformation mode according to a specific scanning order is determining the motion vector group of the control points of the first neighboring block according to the first scanning order in the left neighboring block of the current image block, determining the motion vector group of the control points of the second neighboring block in the second scanning order in the upper neighboring block of the current image block, including putting the motion vector group of the control points of the first neighboring block and the motion vector group of the control points of the second neighboring block into the first candidate list of the motion vectors.

[0366] For example, as shown in FIG. 12, FIG. 12 is a schematic diagram for obtaining candidates for the first candidate list of motion vectors by neighboring blocks of the current image block. On the left side of the current image block, sequentially scan according to the scanning order of image block A -> image block D -> image block E, and put the motion vector group of the control points of the first image block that satisfies the first preset condition as one candidate into the first candidate list of the motion vectors. On the upper side of the current image block, sequentially scan according to the scanning order of image block B -> image block C, and put the motion vector group of the control points of the first image block that satisfies the first preset condition as one candidate into the first candidate list of the motion vectors. Optionally, if no image block that satisfies the threshold condition is found in the scanning order, the determination of candidates in the scanning order is abandoned.

[0367] In one embodiment, a method for determining candidates to be included in the first candidate list of motion vectors includes: constructing motion vectors of some control points based on neighboring blocks of some control points of the current image block; and including the motion vectors of some control points of the current image block in the first candidate list of motion vectors.

[0368] That is, in such an embodiment, it is to include candidates in the first candidate list of motion vectors by constructing candidates. In one example, before including candidates in the first candidate list of motion vectors by constructing candidates, first determine whether the number of candidates in the first candidate list of motion vectors has already reached a preset value (for example, 5). If the preset value has not been reached, include candidates in the first candidate list of motion vectors by constructing candidates.

[0369] In one example, the constructed candidates are included in the first candidate list of motion vectors as CPMV after combining the motion information of neighboring blocks of some control points of the current image block.

[0370] As shown in FIG. 13, FIG. 13 is a schematic diagram for constructing candidates in the first candidate list of motion vectors by neighboring blocks of the current image block. The current image block has a total of four control points, namely CP1, CP2, CP3, and CP4. Here, image blocks A0 and A1 are neighboring blocks in the spatial region of CP1, image blocks A2, B2, and B3 are neighboring blocks in the spatial region of CP2, image blocks B0 and B1 are neighboring blocks in the spatial region of CP2, and T is a neighboring block in the temporal region of CP4. The coordinates of control points CP1, CP2, CP3, and CP4 are (0, 0), (W, 0), (H, 0), and (W, H), respectively, where W and H represent the width and height of the current CU. The priority for obtaining the motion information of neighboring blocks of each control point is For CP1, the acquisition priority is B2 -> B3 -> A2. When B2 is available, the MV of B2 is used as the MV of control point CP1. When B2 is unavailable, the MV of B3 is used as the MV of control point CP1. When both B2 and B3 are unavailable, the MV of A1 is used as the MV of control point CP1. When all of B2, B3, and A1 are unavailable, the movement information of control point CP1 cannot be obtained.

[0371] Similarly, for CP2, the acquisition priority is B1 -> B0. For CP3, the acquisition priority is A1 -> A0. For CP4, the MV of control point CP4 is directly set to the MV of T.

[0372] Only after all the MVs of the current CU's control points (6-parameter model: CP0, CP1, and CP2; 4-parameter model: CP0 and CP1) become available, the constructed MV is inserted. Otherwise, directly proceed to the next step. After obtaining the MVs of all control points (if any), different combinations of the control point MVs are performed to obtain multiple affine candidates. The combination method is When using the 4-parameter affine model, combining two of the four control point MVs can obtain one or more candidates. Among them, two combination methods, namely {CP1, CP2} and {CP1, CP3}, are selected. Here, in the combination method {CP1, CP3}, based on the 4-parameter model, it is necessary to convert the MVs of the two selected control points to the MVs of the control points at the upper left and upper right corners of the current CU (CP1 and CP2).

[0373] When using a 6-parameter affine model, by combining 3 out of the MVs of 4 control points, one or more candidates can be obtained, and 4 combination methods, {CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} are selected. Here, for the combination methods {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}, based on the 6-parameter model, it is necessary to convert the MVs of the selected 3 control points into the MVs (CP1, CP2, and CP3) of the control points at the upper left corner, upper right corner, and lower left corner of the current CU. In one example, if the reference frames used for different combinations of MVs (2 or 3) are different, the candidates constructed by such combinations are considered unusable.

[0374] In one embodiment, the method for determining the candidates to be included in the first candidate list of motion vectors includes capturing using a default vector. Optionally, the default vector may be a zero vector or other vector. Optionally, after determining the candidates to be included in the first candidate list of motion vectors by other methods, it is determined whether the number of candidates already included in the first candidate list has reached a preset value. If not, until the number of candidates in the first candidate list reaches the preset value, the default vector is used to capture into the first candidate list.

[0375] When predicting the current image block using candidates in the first candidate list of motion vectors, if the candidates used are at least one candidate other than the candidates determined by the ATMVP technique, the motion vector of the sub-image block in the current image block is derived based on the candidate by the affine motion model. If the candidates used are the candidates determined by the ATMVP technique, based on the above description, the reference block of each sub-image block in the current image block is determined based on the motion vector of each sub-image block in the related block, the reference blocks of each sub-image block are joined together to form the reference block of the current image block, and the residual of the current image block is calculated based on the reference block.

[0376] Hereinafter, an example of the moving image processing method provided in the embodiment of the present application will be described with reference to FIGS. 14 and 15. As shown in FIG. 14, the method includes the following steps.

[0377] S1410: Sequentially scan N neighboring blocks out of M preset neighboring blocks of the current image block, determine the target neighboring block based on the scan result, where N is smaller than M. Optionally, M is 4 or less.

[0378] S1420: Determine the related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block.

[0379] S1430: Divide the current image block and the related block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block corresponds one-to-one with each sub-image block in the related block.

[0380] S1440: Predict each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block.

[0381] The description of the moving image processing method shown in FIG. 14 can be referred to the above description and will not be described here.

[0382] As shown in FIG. 15, the method includes the following steps.

[0383] S1510. Based on M candidates in the second candidate list of the motion vector of the current image block, determine M neighboring blocks of the current image block.

[0384] S1520. Sequentially scan N neighboring blocks among the M neighboring blocks, and determine a target neighboring block based on the scanning result, where N is smaller than M. Optionally, M is 4 or less.

[0385] S1530. Based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block, determine an associated block of the current image block.

[0386] S1540. Based on the associated block of the current image block, determine a specific candidate in the first candidate list of the motion vector of the current image block. Here, the specific candidate may be a candidate determined by the ATMVP technology mentioned in the above description.

[0387] S1550. When it is determined to use the specific candidate, divide the current image block and the associated block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block corresponds one-to-one to each sub-image block in the associated block.

[0388] S1560. Based on the motion vector of each sub-image block in the associated block, predict each corresponding sub-image block in the current image block.

[0389] The description of the moving image processing method shown in FIG. 15 can be referred to the above description and will not be described here.

[0390] FIG. 16 is a schematic block diagram of a moving image processing apparatus 1600 provided according to an embodiment of the present application. The apparatus 1600 is used to execute an embodiment of the method shown in FIG. 14. The apparatus 1600 includes the following units.

[0391] A construction module 1610 that sequentially scans N (N is smaller than M) neighboring blocks out of M preset neighboring blocks of the current image block, determines a target neighboring block based on the scanning result, and determines a related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block. The current image block and the related block are divided into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block is used to correspond one-to-one with each sub-image block in the related block. A prediction module 1620 that is used to predict each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block.

[0392] In one example, N is equal to 1 or 2.

[0393] In one example, the prediction module further puts the representative motion vector of the related block into a first candidate list of motion vectors as a candidate before predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block. When it is determined that the candidate is adopted, the prediction module is used to predict each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block.

[0394] In one example, predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block is including using, as the motion vector of each sub-image block in the associated block, the motion vector of the corresponding sub-image block in the current image block, respectively.

[0395] In one example, the representative motion vector of the associated block is used as the first candidate and put into the first candidate list of motion vectors.

[0396] In one example, the representative motion vector of the associated block includes the motion vector at the central position of the associated block.

[0397] In one example, when there is a sub-image block with an unobtainable motion vector in the associated block, the prediction module further uses the representative motion vector of the associated block as the motion vector of the sub-image block with the unobtainable motion vector, and it is used to predict the corresponding sub-image block in the current image block.

[0398] In one example, when there is a sub-image block with an unobtainable motion vector in the associated block and the representative motion vector of the associated block is also unobtainable, the prediction module further uses it to abandon predicting the corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the associated block.

[0399] In one example, the prediction module further uses it to determine that there is a sub-image block with an unobtainable motion vector in the associated block when the sub-image block in the associated block is unobtainable or when the sub-image block in the associated block uses the intra-frame coding mode.

[0400] In one example, the construction module further uses it to determine other candidates and put the other candidates into the first candidate list of motion vectors, where at least one of the other candidates includes the motion vector of a sub-image block.

[0401] In one example, when the construction module further determines to adopt one of the other candidates, it is used to determine the motion vector of the sub-image block in the current image block based on the adopted candidate.

[0402] In one example, the at least one candidate includes the motion vectors of a set of control points.

[0403] In one example, the prediction module further when determining to adopt a candidate among the at least one candidate, performing an affine transformation on the adopted candidate based on an affine transformation model, and predicting the sub-image block in the current image block based on the candidate after the affine transformation.

[0404] In one example, when the affine transformation model includes a four-parameter affine transformation model, in the at least one candidate, each candidate includes the motion vectors of two control points, when the affine transformation model includes a six-parameter affine transformation model, in the at least one candidate, each candidate includes the motion vectors of three control points.

[0405] In one example, the construction module further determines, from the neighboring blocks of the current image block, a group of control point motion vectors of the neighboring blocks predicted in the affine transformation mode in a specific scanning order, and uses each determined group of control point motion vectors of the neighboring blocks as one candidate and inserts it into the first candidate list of the motion vectors.

[0406] In one example, determining, from the neighboring blocks of the current image block, a group of control point motion vectors of the neighboring blocks predicted in the affine transformation mode according to a specific scanning order is Determining a control point motion vector group of a first neighboring block in a first scanning order in a left neighboring block of the current image block; Determining a control point motion vector group of a second neighboring block in a second scanning order in an upper neighboring block of the current image block; Including putting the motion vector group of the control points of the first neighboring block and the motion vector group of the control points of the second neighboring block into a first candidate list of the motion vectors.

[0407] In one example, the construction module is further used for constructing motion vectors of some control points of the current image block based on neighboring blocks of some control points of the current image block, and putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors.

[0408] In one example, constructing the motion vectors of some control points of the current image block based on neighboring blocks of some control points of the current image block includes sequentially scanning specific neighboring blocks of each control point among the some control points in a third scanning order, and using the motion vector of the specific neighboring block that meets a preset condition as the motion vector of the control point.

[0409] In one example, the construction module is further used for abandoning putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors when the motion vectors of the some control points point to different reference frames respectively.

[0410] In one example, when the number of candidates in the first motion vector candidate list is greater than a preset value, the construction of putting the motion vectors of some control points of the current image block into the first motion vector candidate list is abandoned.

[0411] In one example, the construction module further constructs a second motion vector candidate list, where the candidates to be put into the second motion vector candidate list are the motion vectors of one image block, and is used to determine the motion vector of the current image block based on the motion vector of the candidate when it is determined to adopt the candidate in the second motion vector candidate list.

[0412] In one example, determining the motion vector of the current image block based on the motion vector of the candidate described above includes using the candidate determined to be adopted as the motion vector of the current image block, or using the motion vector of the current image block after scaling the candidate determined to be adopted.

[0413] In one example, constructing the second motion vector candidate list includes determining candidates to be put into the second motion vector candidate list based on the motion vectors of a plurality of neighboring blocks of the current image block on the current image.

[0414] In one example, the plurality of neighboring blocks of the current image block on the current image include the preset M neighboring blocks.

[0415] In one example, the construction module further uses the motion vectors of the preset M neighboring blocks in the preset order as M candidates respectively to be put into the second motion vector candidate list.

[0416] The N neighboring blocks refer to the first N neighboring blocks determined in the preset order.

[0417] In one example, the construction module further is used to abandon determining a candidate to be included in the second candidate list of motion vectors based on the motion vectors of one or more of the M neighboring blocks when the motion vectors of one or more of the M neighboring blocks are unavailable.

[0418] In one example, sequentially scanning N of the M neighboring blocks and determining a target neighboring block based on the scanning result includes sequentially scanning the N neighboring blocks, stopping the scanning when reaching a neighboring block that meets the first preset condition, and determining the target neighboring block based on the first neighboring block that meets the first preset condition among the scanned neighboring blocks.

[0419] In one example, determining the target neighboring block based on the first neighboring block that meets the first preset condition among the scanned neighboring blocks includes using the neighboring block that meets the first preset condition as the target neighboring block.

[0420] In one example, the preset condition includes that the reference image of the neighboring block is the same as the reference image of the current image block.

[0421] In one example, when a neighboring block that meets the preset condition among the N neighboring blocks has not been scanned, the construction module is used to perform scaling processing on the motion vector of a specific neighboring block among the M neighboring blocks, and the prediction module is used to predict the current image block based on the scaled motion vector.

[0422] In one example, predicting the current image block based on the motion vector after the scaling process described above includes determining a reference block of the current image block based on the motion vector after the scaling process and a reference image of the current image block.

[0423] In one example, the specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the N neighboring blocks.

[0424] In one example, performing a scaling process on the motion vector of a specific neighboring block among the M neighboring blocks and predicting the current image block based on the motion vector after the scaling process includes performing a scaling process on the motion vector of the specific neighboring block so that the reference frame pointed to by the motion vector after the scaling process is the same as the reference image of the current image block, and using the image block pointed to by the motion vector after the scaling process in the reference image of the current image block as the reference block of the current image block.

[0425] In one example, when a neighboring block that meets the preset condition has not been scanned among the N neighboring blocks, a default block is used as the reference block of the current image block.

[0426] In one example, the default block is an image block pointed to by a motion vector (0, 0).

[0427] In one example, the size of the sub-image block and / or the size of a related block of the sub-image block are fixed to 64 or more pixels.

[0428] In one example, the size of the sub-image block and / or the size of a related block of the sub-image block are fixed to 8×8 pixels, or 16×4 pixels, or 4×16 pixels.

[0429] In one example, the current image block is one coding unit CU.

[0430] In one example, determining the related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block is including determining the related block of the current image block in the reference image of the motion vector of the target neighboring block and the current image block.

[0431] In one example, the neighboring block is an image block adjacent to the position of the current image block on the current image or having a certain position pitch.

[0432] In one example, predicting the current image block based on the motion vector of the related block is including determining the reference block of the current image block based on the motion vector of the processed related block and the reference image of the current image block when the reference image of the related block is a specific reference image or the reference image of the current image block is a specific reference image.

[0433] Here, the motion vector of the processed related block is the same as the motion vector of the related block before processing.

[0434] In one example, the motion vector of the processed related block is the motion vector obtained after scaling the motion vector of the related block at a scale where the value is 1, or the motion vector of the related block with the scaling step skipped.

[0435] In one example, predicting the current image block based on the motion vector of the related block is including giving up determining a reference block of a current image block based on a motion vector of the associated block when a reference image of the associated block is a specific reference image or a reference image of the current block is a specific reference image.

[0436] In one example, the construction module further is used to determine a reference block of a current image block based on a motion vector of the processed associated block and a reference image of the current image block when the motion vector of the neighboring block points to a specific reference image or the reference image of the current image block is a specific reference image.

[0437] Here, the motion vector of the processed associated block is the same as the motion vector of the associated block before processing.

[0438] In one example, the motion vector of the processed associated block is a motion vector obtained after scaling the motion vector of the associated block at a scale where the numerical value is 1, or the motion vector of the associated block with the scaling step skipped.

[0439] In one example, M is 4 or less.

[0440] FIG. 17 is a schematic block diagram of a moving image processing apparatus 1700 provided by an embodiment of the present application. The apparatus 1700 is used to execute an embodiment of the method shown in FIG. 15. The apparatus 1700 includes the following units.

[0441] Based on M candidates in the second candidate list of motion vectors of the current image block, determine M neighboring blocks of the current image block, sequentially scan N (N is smaller than M) neighboring blocks among the M neighboring blocks, determine a target neighboring block based on the scanning result, and based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block, determine a related block of the current image block. Based on the related block of the current image block, determine a specific candidate in the first candidate list of motion vectors of the current image block. When it is determined to use the specific candidate, divide the current image block and the related block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block is used to correspond one-to-one with each sub-image block of the related block. There is a construction module 1710, A prediction module 1720 is included, which is used to predict the corresponding sub-image blocks in the current image block respectively based on the motion vectors of the sub-image blocks in the related block.

[0442] In an example, at least one candidate in the first candidate list of motion vectors includes the motion vector of a sub-image block, and each candidate in the second candidate list of motion vectors includes the motion vector of an image block.

[0443] In an example, N is equal to 1 or 2.

[0444] In an example, the M candidates include the motion vectors of M neighboring blocks of the current image block on the current image of the current image block.

[0445] In an example, sequentially scanning N neighboring blocks among the M neighboring blocks and determining a target neighboring block based on the scanning result means Sequentially scan the N neighboring blocks. When scanning reaches the neighboring block that meets the first preset condition, stop the scanning, and determine the target neighboring block based on the neighboring block that meets the first preset condition that has been scanned.

[0446] In one example, determining a target neighboring block based on a neighboring block that meets the first preset condition scanned includes: including using the neighboring block that meets the first preset condition as the target neighboring block.

[0447] In one example, the preset condition includes: that a reference image of the neighboring block is the same as a reference image of the current image block.

[0448] In one example, when a neighboring block that meets the preset condition among the N neighboring blocks has not been scanned, the construction module is used to perform scaling processing on the motion vector of a specific neighboring block among the M neighboring blocks, and the prediction module is used to predict the current image block based on the motion vector after the scaling processing.

[0449] In one example, predicting the current image block based on the motion vector after the scaling processing includes: including determining a reference block of the current image block based on the motion vector after the scaling processing and a reference image of the current image block.

[0450] In one example, the specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the N neighboring blocks.

[0451] In one example, performing scaling processing on the motion vector of a specific neighboring block among the M neighboring blocks and predicting the current image block based on the motion vector after the scaling processing includes: performing scaling processing on the motion vector of the specific neighboring block so that a reference frame pointed to by the motion vector after the scaling processing is the same as a reference image of the current image block. including using, as the reference block of the current image block, the image block pointed to in the reference image of the motion vector after the scaling process for the current image block.

[0452] In one example, when no neighboring block among the N neighboring blocks that meets the preset condition has been scanned, a default block is used as the reference block of the current image block.

[0453] In one example, the default block is the image block pointed to by the motion vector (0, 0).

[0454] In one example, the size of the sub-image block and / or the size of the related block of the sub-image block is fixed to 64 or more pixels.

[0455] In one example, the size of the sub-image block and / or the size of the related block of the sub-image block is fixed to 8×8 pixels, or 16×4 pixels or 4×16 pixels.

[0456] In one example, the current image block is one coding unit CU.

[0457] In one example, determining the related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block includes determining the related block of the current image block in the reference image of the motion vector of the target neighboring block and the current image block.

[0458] In one example, the neighboring block is an image block adjacent to the position of the current image block on the current image or having a certain position pitch.

[0459] In one example, predicting the current image block based on the motion vector of the related block includes When the reference image of the related block is a specific reference image, or the reference image of the current image block is a specific reference image, it includes determining the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block.

[0460] Here, the motion vector of the related block after processing is the same as the motion vector of the related block before processing.

[0461] In one example, the motion vector of the related block after processing is the motion vector obtained after scaling the motion vector of the related block at a scale of 1, or the motion vector of the related block with the scaling step skipped.

[0462] In one example, predicting the current image block based on the motion vector of the related block includes when the reference image of the related block is a specific reference image, or the reference image of the current block is a specific reference image, giving up determining the reference block of the current image block based on the motion vector of the related block.

[0463] In one example, the construction module is further used to determine the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block when the motion vector of the neighboring block points to a specific reference image, or the reference image of the current image block is a specific reference image.

[0464] Here, the motion vector of the related block after processing is the same as the motion vector of the related block before processing.

[0465] In one example, the motion vector of the related block after processing is the motion vector obtained after scaling the motion vector of the related block at a scale of 1, or It includes the motion vectors of the related blocks that skipped the scaling step.

[0466] In one example, predicting each corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the related block of the above-mentioned related block means including using the motion vectors of each sub-image block in the related block as the motion vectors of the corresponding sub-image blocks in the current image block respectively.

[0467] In one example, determining a specific candidate in the first candidate list of motion vectors of the current image block based on the related block of the current image block of the above-mentioned means including putting the representative motion vector of the related block of the current image block into the first candidate list of motion vectors as the specific candidate.

[0468] In one example, the representative motion vector of the related block is put into the first candidate list of motion vectors as the first candidate.

[0469] In one example, the representative motion vector of the related block includes the motion vector at the central position of the related block.

[0470] In one example, when there is a sub-image block in the related block for which the motion vector cannot be obtained, the prediction module further uses the representative motion vector of the related block as the motion vector of the sub-image block with the unobtainable motion vector, and is used to predict the corresponding sub-image block in the current image block.

[0471] In one example, when there is a sub-image block in the related block for which the motion vector cannot be obtained and the representative motion vector of the related block is also unobtainable, the prediction module is further used to abandon predicting each corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the related block.

[0472] In one example, the prediction module is further used to determine that a sub-image block in the associated block is unavailable, or when a sub-image block in the associated block uses an intra-frame coding mode, there is a sub-image block in the associated block for which a motion vector is unavailable.

[0473] In one example, when the prediction module further determines to adopt one of the candidates other than the specific candidate in the second motion vector candidate list, an affine transformation is performed on the adopted candidate based on an affine transformation model, and it is used to predict a sub-image block in the current image block based on the candidate after the affine transformation.

[0474] In one example, for at least one candidate other than the specific candidate in the second motion vector candidate list, each candidate includes a motion vector of a set of control points.

[0475] In one example, when the affine transformation model includes a four-parameter affine transformation model, for the at least one candidate, each candidate includes a motion vector of two control points, and when the affine transformation model includes a six-parameter affine transformation model, for the at least one candidate, each candidate includes a motion vector of three control points.

[0476] In one example, the prediction module further determines a group of control point motion vectors of neighboring blocks that perform prediction by adopting an affine transformation mode in a specific scanning order from the neighboring blocks of the current image block, and it is used to put each determined group of control point motion vectors of neighboring blocks into the first motion vector candidate list as one candidate.

[0477] In one example, determining a control point motion vector group of a neighboring block predicted in an affine transformation mode according to a specific scanning order from neighboring blocks of the current image block described above includes: determining a control point motion vector group of a first neighboring block in a first scanning order in a left neighboring block of the current image block; determining a control point motion vector group of a second neighboring block in a second scanning order in an upper neighboring block of the current image block; and adding the control point motion vector group of the first neighboring block and the control point motion vector group of the second neighboring block to a first candidate list of the motion vectors.

[0478] In one example, the construction module is further used for constructing a motion vector of a part of control points of the current image block based on neighboring blocks of the part of control points of the current image block, and adding the motion vector of the part of control points of the current image block to the first candidate list of the motion vectors.

[0479] In one example, constructing a motion vector of a part of control points of the current image block based on neighboring blocks of the part of control points of the current image block includes: sequentially scanning a specific neighboring block of each control point in a third scanning order for each control point among the part of control points, and using a motion vector of a specific neighboring block that satisfies a preset condition as the motion vector of the control point.

[0480] In one example, the construction module is further used for abandoning adding the motion vectors of a part of control points of the current image block to the first candidate list of the motion vectors when the motion vectors of the part of control points point to different reference frames respectively.

[0481] In one example, the construction module is further used to abandon putting the motion vectors of some control points of the current image block into the first candidate list of motion vectors when the number of candidates in the first candidate list of motion vectors is greater than a preset numerical value.

[0482] In one example, the construction module further constructs a second candidate list of motion vectors. Here, the candidates to be put into the second candidate list of motion vectors are the motion vectors of one image block. When it is determined to adopt the candidates in the second candidate list of motion vectors, it is used to determine the motion vector of the current image block based on the motion vectors of the candidates.

[0483] In one example, determining the motion vector of the current image block based on the motion vectors of the candidates described above includes using the candidate determined to be adopted as the motion vector of the current image block, or using the candidate determined to be adopted as the motion vector of the current image block after scaling the candidate determined to be adopted.

[0484] In one example, constructing the second candidate list of motion vectors includes determining the M candidates to be put into the second candidate list of motion vectors based on the motion vectors of M neighboring blocks of the current image block on the current image of the current image block.

[0485] In one example, the construction module is further used to put the motion vectors of the preset M neighboring blocks into the second candidate list of motion vectors one by one in the preset order as M candidates respectively. The N neighboring blocks refer to the first N neighboring blocks determined in the preset order.

[0486] In one example, the construction module is further used to abandon determining a candidate to be included in the second candidate list of motion vectors based on the motion vectors of one or more of the M neighboring blocks when the motion vectors of one or more of the M neighboring blocks are unavailable.

[0487] In one example, M is 4 or less.

[0488] The embodiments of the present application further provide a computer-readable storage medium storing a computer program, and when the computer program is executed by a computer, the computer is caused to execute the method provided in the embodiments of the above method.

[0489] The embodiments of the present application further provide a computer program product including instructions, and when the instructions are executed by a computer, the computer is caused to execute the method provided in the embodiments of the above method.

[0490] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are uploaded to and executed by a computer, all or part of the processes or functions according to the embodiments of the present application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or may be transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a certain website, computer, server, or data center to another site, computer, server, or data center in a wired manner (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wirelessly (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium accessible by a computer, or a data storage device such as a server or data center integrated with one or more available media. The available media may be a magnetic medium (such as a floppy disk, hard disk, tape), an optical medium (such as a digital video disc (DVD)), or a semiconductor medium (such as a solid state disk (SSD)), etc.

[0491] A person skilled in the art can recognize that each unit and algorithm step of each example described in connection with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed by hardware or software depends on the specific application of the technical solution and design constraints. A person skilled in the art can use different methods for each specific application to implement the described functions, but such implementation should not be considered outside the scope of this application.

[0492] In some embodiments provided herein, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the above units is only a logical function division. In actual implementation, there may be other division methods. For example, a plurality of units or assemblies may be combined, or integrated into other systems, or some features may be ignored or not executed. And the indicated or considered mutual coupling, direct coupling, or communication connection may be an indirect coupling or communication connection through some interfaces, devices, or units, and may be in electrical, mechanical, or other forms.

[0493] The units described as the separation members may or may not be physically separated. The members represented as units may or may not be physical units, that is, they may be located in one place, or distributed in a plurality of network units. According to actual needs, some or all of the units can be selected to achieve the purpose of the solution means of this embodiment.

[0494] Also, each functional unit in each embodiment of this specification may be integrated into one processing unit, or each unit may physically exist individually, or two or more units may be integrated into one unit.

[0495] As described above, it is merely a form for implementing the invention of the present application, and the protection scope of the present application is not limited thereto. For those skilled in the art, any changes or replacements that can be easily made within the technical scope disclosed in the present application shall be included within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the scope of the claims. [Item 1] A moving image processing method, comprising: sequentially scanning N neighboring blocks smaller than M out of M preset neighboring blocks of a current image block, and determining a target neighboring block based on the scanning result; determining a related block of the current image block based on the motion vector of the target neighboring block, the current image block, and a reference image of the current image block; dividing the current image block and the related block into a plurality of sub-image blocks in the same way, and making each sub-image block in the current image block correspond one-to-one to each sub-image block in the related block; predicting corresponding sub-image blocks in the current image block respectively based on the motion vectors of the sub-image blocks in the related block. [Item 2] The method according to Item 1, wherein N is equal to 1 or 2. [Item 3] Before predicting the corresponding sub-image blocks in the current image block respectively based on the motion vectors of the sub-image blocks in the related block, putting the representative motion vector of the related block into a first candidate list of motion vectors as a candidate; The method according to Item 1 or 2, further comprising: when it is determined that the candidate is to be adopted, predicting the corresponding sub-image blocks in the current image block respectively based on the motion vectors of the sub-image blocks in the related block. [Item 4] Predicting each corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the related block described above is The method according to item 3, including using the motion vectors of each sub-image block in the related block as the motion vectors of the corresponding sub-image blocks in the current image block respectively. [Item 5] The method according to item 3, including putting the representative motion vector of the related block into the first candidate list of motion vectors as the first candidate. [Item 6] The method according to item 3, wherein the representative motion vector of the related block includes the motion vector of the central position of the related block. [Item 7] The method is When there is a sub-image block in the related block for which the motion vector cannot be obtained, the method according to item 3 further includes using the representative motion vector of the related block as the motion vector of the sub-image block for which the motion vector cannot be obtained, and predicting the corresponding sub-image block in the current image block. [Item 8] The method is When there is a sub-image block in the related block for which the motion vector cannot be obtained and the representative motion vector of the related block cannot be obtained, the method according to item 7 further includes giving up predicting each corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the related block. [Item 9] The method according to item 8, including determining that there is a sub-image block in the related block for which the motion vector cannot be obtained when the sub-image block in the related block cannot be obtained or the sub-image block in the related block uses the intra-frame coding mode. [Item 10] The method is The method according to item 3, further comprising determining other candidates and adding the other candidates to the first candidate list of motion vectors, wherein at least one of the other candidates includes a motion vector of a sub-image block. [Item 11] The method is The method according to item 10, further comprising determining a motion vector of a sub-image block in the current image block based on the adopted candidate when it is determined to adopt one of the other candidates. [Item 12] The method according to item 10 or 11, wherein the at least one candidate includes a motion vector of a set of control points. [Item 13] The method is When it is determined to adopt a candidate among the at least one candidate, performing an affine transformation on the adopted candidate based on an affine transformation model, and predicting a sub-image block in the current image block based on the candidate after the affine transformation, the method according to any one of items 10 to 12. [Item 14] When the affine transformation model includes a four-parameter affine transformation model, in the at least one candidate, each candidate includes a motion vector of two control points, When the affine transformation model includes a six-parameter affine transformation model, in the at least one candidate, each candidate includes a motion vector of three control points, the method according to item 13. [Item 15] The method is determining a group of control point motion vectors of neighboring blocks for prediction by adopting an affine transformation mode in a specific scanning order from neighboring blocks of the current image block, and adding each determined group of control point motion vectors of neighboring blocks as one candidate to the first candidate list of motion vectors, the method according to any one of items 3 to 14. [Item 16] Determining a control point motion vector group of a neighboring block that performs prediction by adopting an affine transformation mode in a specific scanning order from neighboring blocks of the current image block described above is determining a motion vector group of control points of a first neighboring block in a first scanning order in the left neighboring block of the current image block, determining a motion vector group of control points of a second neighboring block in a second scanning order in the upper neighboring block of the current image block, including putting the motion vector group of control points of the first neighboring block and the motion vector group of control points of the second neighboring block into the first candidate list of the motion vectors, the method according to item 15. [Item 17] The method is constructing motion vectors of some control points based on neighboring blocks of some control points of the current image block, and further including putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors, the method according to any one of items 3 to 14. [Item 18] Constructing the motion vectors of some control points based on neighboring blocks of some control points of the current image block described above is sequentially scanning specific neighboring blocks of the control points in a third scanning order for each control point among the some control points, and using the motion vector of the specific neighboring block that satisfies a preset condition as the motion vector of the control point, the method according to item 17. [Item 19] The method is further including abandoning putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors when the motion vectors of the some control points point to different reference frames, the method according to item 17 or 18. [Item 20] The above method further includes, when the number of candidates in the first candidate list of the motion vectors is greater than a preset value, abandoning putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors, the method according to item 17 or 18. [Item 21] The above method constructs a second candidate list of motion vectors, and the candidates to be put into the second candidate list of motion vectors are the motion vectors of one image block, and further includes, when it is determined to adopt the candidates in the second candidate list of the motion vectors, determining the motion vector of the current image block based on the motion vectors of the candidates, the method according to any one of items 3 to 15. [Item 22] Determining the motion vector of the current image block based on the motion vectors of the above candidates includes using the candidate determined to be adopted as the motion vector of the current image block, or using the candidate determined to be adopted as the motion vector of the current image block after scaling, the method according to item 21. [Item 23] Constructing the second candidate list of the motion vectors includes determining the candidates to be put into the second candidate list of the motion vectors based on the motion vectors of a plurality of neighboring blocks of the current image block in the current image, the method according to item 21. [Item 24] The plurality of neighboring blocks of the current image block in the current image include the preset M neighboring blocks, the method according to item 23. [Item 25] Taking the motion vectors of the preset M neighboring blocks in the preset order as M candidates in turn and putting them into the second candidate list of the motion vectors, where the N neighboring blocks refer to the first N neighboring blocks determined in the preset order, the method according to item 24. [Item 26] The above method is When the motion vectors of one or more of the above M neighboring blocks are unavailable, further including abandoning determining candidates to be included in the second candidate list of motion vectors based on the motion vectors of the one or more neighboring blocks, the method according to item 24. [Item 27] Sequentially scanning N of the above M neighboring blocks and determining a target neighboring block based on the scanning result is Sequentially scanning the N neighboring blocks and stopping the scanning when reaching a neighboring block that meets the first preset condition, and determining a target neighboring block based on the neighboring block that meets the first preset condition among the scanned blocks, the method according to item 1 or 26. [Item 28] Determining a target neighboring block based on the neighboring block that meets the first preset condition among the scanned blocks is Including using the neighboring block that meets the first preset condition as the target neighboring block, the method according to item 19. [Item 29] The above preset condition is Including that the reference image of the neighboring block is the same as the reference image of the current image block, the method according to item 19 or 28. [Item 30] The above method is When a neighboring block that meets the above preset condition has not been scanned among the N neighboring blocks, performing scaling processing on the motion vector of a specific neighboring block among the M neighboring blocks, and further including predicting the current image block based on the motion vector after the scaling processing, the method according to any one of items 27 to 29. [Item 31] Predicting the current image block based on the motion vector after the above scaling processing is The method according to item 30, comprising determining a reference block of the current image block based on the motion vector after the scaling process and the reference image of the current image block. [Item 32] The method according to item 30, wherein the specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the N neighboring blocks. [Item 33] Performing a scaling process on the motion vector of the specific neighboring block among the M neighboring blocks, and predicting the current image block based on the motion vector after the scaling process, Performing a scaling process on the motion vector of the specific neighboring block so that the reference frame pointed to by the motion vector after the scaling process is the same as the reference image of the current image block; The method according to item 30, further comprising using the image block pointed to by the motion vector after the scaling process in the reference image of the current image block as the reference block of the current image block. [Item 34] The method further comprises, when no neighboring block that meets the preset condition is scanned among the N neighboring blocks, using a default block as the reference block of the current image block. The method according to any one of items 27 to 30. [Item 35] The method according to item 34, wherein the default block is an image block pointed to by a motion vector (0, 0). [Item 36] The method according to any one of items 1 to 35, wherein the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 64 or more pixels. [Item 37] The method according to item 36, wherein the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels, or 16×4 pixels or 4×16 pixels. [Item 38] The method according to any one of items 1 to 37, wherein the current image block is one coding unit CU. [Item 39] Determining the associated block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block is The method according to any one of items 1 to 38, including determining the associated block of the current image block in the reference image of the motion vector of the target neighboring block and the current image block. [Item 40] The method according to any one of items 1 to 39, wherein the neighboring block is an image block adjacent to the position of the current image block in the current image or having a certain position pitch. [Item 41] Predicting the current image block based on the motion vector of the associated block is When the reference image of the associated block is a specific reference image, or the reference image of the current image block is a specific reference image, it includes determining the reference block of the current image block based on the motion vector of the processed associated block and the reference image of the current image block. The method according to any one of items 1 to 40, wherein the motion vector of the processed associated block is the same as the motion vector of the associated block before processing. [Item 42] The motion vector of the processed associated block is The motion vector obtained after scaling the motion vector of the associated block at a scale of 1, or The method according to item 41, including the motion vector of the associated block with the scaling step skipped. [Item 43] Predicting the current image block based on the motion vector of the associated block is The method according to any one of items 1 to 40, including abandoning the determination of the reference block of the current image block based on the motion vector of the related block when the reference image of the related block is a specific reference image or the reference image of the current block is a specific reference image. [Item 44] The method is as follows: When the motion vector of the neighboring block points to a specific reference image or the reference image of the current image block is a specific reference image, further including determining the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block. The method according to any one of items 1 to 43, wherein the motion vector of the related block after processing is the same as the motion vector of the related block before processing. [Item 45] The motion vector of the related block after processing is The motion vector obtained after scaling the motion vector of the related block at a scale of 1, or The method according to item 44, including the motion vector of the related block after skipping the scaling step. [Item 46] The method according to any one of items 1 to 45, wherein M is 4 or less. [Item 47] A moving image processing method, comprising: Determining M neighboring blocks of the current image block based on M candidates in the second candidate list of the motion vector of the current image block; Sequentially scanning N neighboring blocks smaller than M among the M neighboring blocks, and determining a target neighboring block based on the scanning result; Determining a related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block; Determining a specific candidate in the first candidate list of the motion vector of the current image block based on the related block of the current image block; When it is determined to use the above specific candidates, the current image block and the related block are divided into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block corresponds one-to-one to each sub-image block in the related block, and A moving image processing method including predicting corresponding sub-image blocks in the current image block respectively based on motion vectors of the sub-image blocks in the related block. [Item 48] The method according to item 47, wherein at least one candidate in the first candidate list of motion vectors includes a motion vector of a sub-image block, and each candidate in the second candidate list of motion vectors includes a motion vector of an image block. [Item 49] The method according to item 47 or 48, wherein N is equal to 1 or 2. [Item 50] The method according to any one of items 47 to 49, wherein the M candidates include motion vectors of M neighboring blocks of the current image of the current image block. [Item 51] Sequentially scanning N of the M neighboring blocks among the M neighboring blocks and determining a target neighboring block based on the scanning result means The method according to item 50, including sequentially scanning the N neighboring blocks and stopping the scanning when reaching a neighboring block that meets the first preset condition, and determining a target neighboring block based on the first neighboring block that meets the preset condition among the scanned neighboring blocks. [Item 52] Determining a target neighboring block based on the first neighboring block that meets the preset condition among the scanned neighboring blocks means The method according to item 50, including using the neighboring block that meets the first preset condition as the target neighboring block. [Item 53] The preset condition is The method according to item 51 or 52, including that the reference image of the neighboring block is the same as the reference image of the current image block. [Item 54] The above method further includes: when no neighboring block that meets the above preset conditions is scanned among the above N neighboring blocks, performing scaling processing on the motion vector of a specific neighboring block among the above M neighboring blocks, and predicting the current image block based on the motion vector after the scaling processing, the method according to any one of items 51 to 53. [Item 55] Predicting the current image block based on the motion vector after the above scaling processing includes: determining a reference block of the current image block based on the motion vector after the scaling processing and a reference image of the current image block, the method according to item 54. [Item 56] The specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the above N neighboring blocks, the method according to item 54. [Item 57] Performing scaling processing on the motion vector of a specific neighboring block among the above M neighboring blocks, and predicting the current image block based on the motion vector after the scaling processing includes: performing scaling processing on the motion vector of the specific neighboring block so that the reference frame pointed to by the motion vector after the scaling processing is the same as the reference image of the current image block; and using the image block pointed to by the motion vector after the scaling processing in the reference image of the current image block as the reference block of the current image block, the method according to item 54. [Item 58] The above method further includes: when no neighboring block that meets the above preset conditions is scanned among the above N neighboring blocks, using a default block as the reference block of the current image block, the method according to any one of items 51 to 53. [Item 59] The default block is an image block pointed to by a motion vector (0, 0), the method according to item 58. [Item 60] The method according to any one of Items 47 to 59, wherein the size of the sub-image block and / or the size of the related block of the sub-image block is fixed to 64 or more pixels. [Item 61] The method according to Item 60, wherein the size of the sub-image block and / or the size of the related block of the sub-image block is fixed to 8×8 pixels, 16×4 pixels, or 4×16 pixels. [Item 62] The method according to any one of Items 47 to 61, wherein the current image block is one coding unit CU. [Item 63] Determining the related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block is The method according to any one of Items 47 to 62, including determining the related block of the current image block in the reference image of the motion vector of the target neighboring block and the current image block. [Item 64] The method according to any one of Items 47 to 63, wherein the neighboring block is an image block adjacent to the position of the current image block on the current image or having a certain position pitch. [Item 65] Predicting the current image block based on the motion vector of the related block above is When the reference image of the related block is a specific reference image, or the reference image of the current image block is a specific reference image, it includes determining the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block. The method according to any one of Items 47 to 64, wherein the motion vector of the related block after processing is the same as the motion vector of the related block before processing. [Item 66] The motion vector of the related block after processing is The motion vector obtained after scaling the motion vector of the related block at a scale of 1 for the value, or The method according to item 65, including the motion vector of the related block that has skipped the scaling step. [Item 67] Predicting the current image block based on the motion vector of the related block described above includes When the reference image of the related block is a specific reference image, or the reference image of the current block is a specific reference image, giving up determining the reference block of the current image block based on the motion vector of the related block, the method according to any one of items 47 to 64. [Item 68] The method described above includes When the motion vector of the neighboring block points to a specific reference image, or the reference image of the current image block is a specific reference image, further including determining the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block, The method according to any one of items 47 to 67, wherein the motion vector of the related block after processing is the same as the motion vector of the related block before processing. [Item 69] The motion vector of the related block after processing is The motion vector obtained after scaling the motion vector of the related block at a scale of 1 for the value, or The method according to item 68, including the motion vector of the related block that has skipped the scaling step. [Item 70] Predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block described above includes The method according to any one of items 47 to 69, including setting the motion vector of each sub-image block in the related block as the motion vector of the corresponding sub-image block in the current image block respectively. [Item 71] Determining a specific candidate in the first candidate list of motion vectors of the current image block based on the related blocks of the current image block described above is the method according to any one of items 47 to 69, including putting the representative motion vector of the related block of the current image block into the first candidate list of motion vectors as the specific candidate. [Item 72] the method according to item 71, putting the representative motion vector of the related block into the first candidate list of motion vectors as the first candidate. [Item 73] the method according to item 71, wherein the representative motion vector of the related block includes the motion vector of the central position of the related block. [Item 74] The method is when a sub-image block with an unobtainable motion vector appears in the related block, taking the representative motion vector of the related block as the motion vector of the sub-image block with the unobtainable motion vector, and further including predicting the corresponding sub-image block in the current image block, the method according to item 71. [Item 75] The method is when a sub-image block with an unobtainable motion vector appears in the related block and the representative motion vector of the related block is unobtainable, further including giving up predicting the corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the related block, the method according to item 74. [Item 76] the method according to item 74, determining that a sub-image block with an unobtainable motion vector appears in the related block when the sub-image block in the related block is unobtainable or the sub-image block in the related block uses an intra-frame coding mode. [Item 77] The method is When determining to adopt one of the candidates other than the specific candidate in the second candidate list of motion vectors, perform an affine transformation on the adopted candidate based on the affine transformation model, and further include predicting the sub-image block in the current image block based on the candidate after the affine transformation, the method according to any one of items 47 to 76. [Item 78] In at least one of the candidates other than the specific candidate in the second candidate list of motion vectors, each candidate includes a motion vector of a set of control points, the method according to item 77. [Item 79] When the affine transformation model includes a four-parameter affine transformation model, in at least one of the candidates, each candidate includes a motion vector of two control points, When the affine transformation model includes a six-parameter affine transformation model, in at least one of the candidates, each candidate includes a motion vector of three control points, the method according to item 78. [Item 80] The method is determining a group of control point motion vectors of neighboring blocks that perform prediction by adopting an affine transformation mode in a specific scanning order from neighboring blocks of the current image block, and further including putting the group of control point motion vectors of each determined neighboring block into the first candidate list of motion vectors as one candidate, the method according to any one of items 47 to 79. [Item 81] Determining the group of control point motion vectors of neighboring blocks that perform prediction by adopting an affine transformation mode in a specific scanning order from the neighboring blocks of the current image block as described above is determining a group of motion vectors of control points of the first neighboring block in the first scanning order in the left neighboring block of the current image block, and determining a group of motion vectors of control points of the second neighboring block in the second scanning order in the upper neighboring block of the current image block. Including putting the motion vector group of the control points of the first neighboring block and the motion vector group of the control points of the second neighboring block into the first candidate list of the motion vectors, the method according to item 80. [Item 82] The method Constructing the motion vectors of some control points based on the neighboring blocks of some control points of the current image block, And further including putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors, the method according to any one of items 47 to 81. [Item 83] Constructing the motion vectors of some control points based on the neighboring blocks of some control points of the current image block as described above For each control point among some control points, sequentially scanning the specific neighboring blocks of the control point in the third scanning order, and using the motion vector of the specific neighboring block that satisfies the preset condition as the motion vector of the control point, the method according to item 82. [Item 84] The method When the motion vectors of some control points respectively point to different reference frames, further including giving up putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors, the method according to item 82 or 83. [Item 85] The method When the quantity of candidates in the first candidate list of the motion vectors is greater than a preset value, further including giving up putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors, the method according to item 82 or 83. [Item 86] The method Construct a second candidate list of motion vectors, where the candidates to be included in the second candidate list of motion vectors are the motion vectors of one image block, The method according to items 49 to 61, further including determining the motion vector of the current image block based on the motion vector of the candidate when it is determined to adopt the candidate in the second candidate list of motion vectors. [Item 87] Determining the motion vector of the current image block based on the motion vector of the candidate described above is The method according to item 86, including setting the candidate determined to be adopted as the motion vector of the current image block, or setting the motion vector of the current image block after scaling the candidate determined to be adopted. [Item 88] Constructing the second candidate list of motion vectors as described above is The method according to item 86, including determining the M candidates to be included in the second candidate list of motion vectors based on the motion vectors of M neighboring blocks of the current image block on the current image. [Item 89] In the preset order, the motion vectors of the preset M neighboring blocks are respectively used as M candidates and included in the second candidate list of motion vectors. The N neighboring blocks refer to the first N neighboring blocks determined in the preset order. And / or When the motion vectors of one or more neighboring blocks among the M neighboring blocks are unavailable, the method according to item 88, which abandons determining the candidates to be included in the second candidate list of motion vectors based on the motion vectors of the one or more neighboring blocks. [Item 90] The method according to any one of items 47 to 89, where M is 4 or less. [Item 91] A moving image processing apparatus, Sequentially scanning N neighboring blocks, which is smaller than M, among the preset M neighboring blocks of the current image block, and determining a target neighboring block based on the scanning result; determining a related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block; dividing the current image block and the related block into a plurality of sub-image blocks in the same way, and each sub-image block in the current image block is made to correspond one-to-one with each sub-image block in the related block; and a construction module used for the above purposes. A moving image processing apparatus including a prediction module used for predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block. [Item 92] The moving image processing apparatus according to Item 91, wherein N is equal to 1 or 2. [Item 93] The prediction module further Before predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block, putting the representative motion vector of the related block into the first candidate list of motion vectors as a candidate. When it is determined that the candidate is adopted, the prediction module is used for predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block. The moving image processing apparatus according to Item 91 or 92. [Item 94] Predicting each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block as described above means Including using the motion vector of each sub-image block in the related block as the motion vector of the corresponding sub-image block in the current image block respectively. The moving image processing apparatus according to Item 93. [Item 95] The moving image processing apparatus according to item 93, which inserts the representative motion vector of the related block into the first candidate list of motion vectors as the first candidate. [Item 96] The moving image processing apparatus according to item 93, wherein the representative motion vector of the related block includes the motion vector of the central position of the related block. [Item 97] The prediction module further When a sub-image block with an unobtainable motion vector appears in the related block, the moving image processing apparatus according to item 93, which uses the representative motion vector of the related block as the motion vector of the sub-image block with an unobtainable motion vector and uses it to predict the corresponding sub-image block in the current image block. [Item 98] The prediction module further When a sub-image block with an unobtainable motion vector appears in the related block and the representative motion vector of the related block is unobtainable, the moving image processing apparatus according to item 97, which is used to abandon predicting the corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the related block. [Item 99] The prediction module further The moving image processing apparatus according to item 98, which is used to determine that a sub-image block with an unobtainable motion vector appears in the related block when the sub-image block in the related block is unobtainable or the sub-image block in the related block uses the intra-frame coding mode. [Item 100] The construction module further The moving image processing apparatus according to item 93, which is used to determine other candidates and insert the other candidates into the first candidate list of motion vectors, and at least one of the other candidates further includes the motion vector of the sub-image block. [Item 101] The construction module further When determining to adopt one of the other candidates, the moving image processing apparatus according to item 100, which is used to determine the motion vector of the sub-image block in the current image block based on the adopted candidate. [Item 102] The moving image processing apparatus according to item 100 or 101, wherein the at least one candidate includes the motion vectors of a set of control points. [Item 103] The prediction module further When determining to adopt a candidate among the at least one candidate, performing an affine transformation on the adopted candidate based on an affine transformation model, and The moving image processing apparatus according to any one of items 100 to 102, which is used for predicting the sub-image block in the current image block based on the candidate after the affine transformation. [Item 104] When the affine transformation model includes a four-parameter affine transformation model, in the at least one candidate, each candidate includes the motion vectors of two control points, The moving image processing apparatus according to item 103, wherein when the affine transformation model includes a six-parameter affine transformation model, in the at least one candidate, each candidate includes the motion vectors of three control points. [Item 105] The construction module further Determining a group of control point motion vectors of neighboring blocks that perform prediction by adopting an affine transformation mode in a specific scanning order from the neighboring blocks of the current image block, and The moving image processing apparatus according to any one of items 93 to 104, which is used to put each determined group of control point motion vectors of neighboring blocks into the first candidate list of motion vectors as one candidate. [Item 106] Determining the group of control point motion vectors of neighboring blocks that perform prediction by adopting an affine transformation mode in a specific scanning order from the neighboring blocks of the current image block as described above is determining a group of motion vectors of control points of a first neighboring block in a first scanning order in a block near the left side of the current image block; determining a group of motion vectors of control points of a second neighboring block in a second scanning order in a block near the upper side of the current image block; including putting the group of motion vectors of control points of the first neighboring block and the group of motion vectors of control points of the second neighboring block into a first candidate list of the motion vectors, the moving image processing apparatus according to item 105. [Item 107] The construction module further: constructs motion vectors of some control points based on neighboring blocks of some control points of the current image block; is used for putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors, the moving image processing apparatus according to any one of items 93 to 104. [Item 108] Constructing the motion vectors of some control points based on neighboring blocks of some control points of the current image block as described above includes: sequentially scanning specific neighboring blocks of the control points in a third scanning order for each control point among the some control points, and using the motion vectors of the specific neighboring blocks that satisfy a preset condition as the motion vectors of the control points, the moving image processing apparatus according to item 107. [Item 109] The construction module further: is used for abandoning putting the motion vectors of some control points of the current image block into the first candidate list of the motion vectors when the motion vectors of the some control points respectively point to different reference frames, the moving image processing apparatus according to item 107 or 108. [Item 110] The construction module further: When the number of candidates in the first candidate list of motion vectors is greater than a preset value, it is used to abandon putting the motion vectors of some control points of the current image block into the first candidate list of motion vectors. The moving image processing apparatus according to any one of items 107 or 108. [Item 111] The construction module further Constructs a second candidate list of motion vectors. Here, the candidates to be put into the second candidate list of motion vectors are the motion vectors of one image block. When it is determined to adopt the candidates in the second candidate list of motion vectors, it is used to determine the motion vector of the current image block based on the motion vectors of the candidates. The moving image processing apparatus according to any one of items 93 to 105. [Item 112] Determining the motion vector of the current image block based on the motion vectors of the above candidates Includes setting the candidate determined to be adopted as the motion vector of the current image block, or setting the candidate determined to be adopted as the motion vector of the current image block after scaling. The moving image processing apparatus according to item 111. [Item 113] The construction of the second candidate list of motion vectors Includes determining candidates to be put into the second candidate list of motion vectors based on the motion vectors of a plurality of neighboring blocks of the current image block on the current image of the current image block. The moving image processing apparatus according to item 111. [Item 114] The plurality of neighboring blocks of the current image block on the current image include the preset M neighboring blocks. The moving image processing apparatus according to item 113. [Item 115] The construction module further In the preset order, the motion vectors of the preset M neighboring blocks are used as M candidates respectively to be put into the second candidate list of motion vectors. The moving image processing apparatus according to item 114, wherein the N neighboring blocks refer to the first N neighboring blocks determined in the preset order. [Item 116] The construction module further When the motion vectors of one or more neighboring blocks among the M neighboring blocks are unavailable, it is used to abandon determining candidates to be included in the second candidate list of motion vectors based on the motion vectors of the one or more neighboring blocks. The moving image processing apparatus according to item 114. [Item 117] Sequentially scanning N neighboring blocks among the M neighboring blocks and determining a target neighboring block based on the scanning result Sequentially scanning the N neighboring blocks and stopping the scanning when reaching the neighboring block that meets the first preset condition, and determining the target neighboring block based on the neighboring block that meets the first preset condition among the scanned ones. The moving image processing apparatus according to item 91 or 116, including this. [Item 118] Determining the target neighboring block based on the neighboring block that meets the first preset condition among the scanned ones The moving image processing apparatus according to item 109, including setting the neighboring block that meets the first preset condition as the target neighboring block. [Item 119] The preset condition The moving image processing apparatus according to item 109 or 118, including that the reference image of the neighboring block is the same as the reference image of the current image block. [Item 120] The construction module further When a neighboring block that meets the preset condition has not been scanned among the N neighboring blocks, it is used to perform scaling processing on the motion vector of a specific neighboring block among the M neighboring blocks. The prediction module is further used to predict the current image block based on the motion vector after the scaling process, and is a moving image processing apparatus according to any one of items 117 to 119. [Item 121] Predicting the current image block based on the motion vector after the scaling process described above means Determining a reference block of the current image block based on the motion vector after the scaling process and a reference image of the current image block, which is the moving image processing described in item 120. [Item 122] The specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the N neighboring blocks, and is a moving image processing apparatus according to item 120. [Item 123] Performing a scaling process on the motion vector of the specific neighboring block among the M neighboring blocks, and predicting the current image block based on the motion vector after the scaling process means Performing a scaling process on the motion vector of the specific neighboring block so that the reference frame pointed to by the motion vector after the scaling process is the same as the reference image of the current image block, And using the image block pointed to by the motion vector after the scaling process in the reference image of the current image block as the reference block of the current image block, which is a moving image processing apparatus according to item 120. [Item 124] When no neighboring block that meets the preset conditions is scanned among the N neighboring blocks, using a default block as the reference block of the current image block, which is a moving image processing apparatus according to any one of items 117 to 120. [Item 125] The default block is an image block pointed to by a motion vector (0, 0), which is a moving image processing apparatus according to item 124. [Item 126] The moving image processing apparatus according to any one of items 91 to 125, wherein the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 64 or more pixels. [Item 127] The moving image processing apparatus according to item 126, wherein the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels, 16×4 pixels, or 4×16 pixels. [Item 128] The moving image processing apparatus according to any one of items 91 to 127, wherein the current image block is one coding unit CU. [Item 129] Determining the related block of the current image block based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block is The moving image processing apparatus according to any one of items 91 to 128, including determining the related block of the current image block in the reference image of the motion vector of the target neighboring block and the current image block. [Item 130] The moving image processing apparatus according to any one of items 91 to 129, wherein the neighboring block is an image block adjacent to the position of the current image block on the current image or having a certain position pitch. [Item 131] Predicting the current image block based on the motion vector of the related block is When the reference image of the related block is a specific reference image, or the reference image of the current image block is a specific reference image, it includes determining the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block. The moving image processing apparatus according to any one of items 91 to 130, wherein the motion vector of the related block after processing is the same as the motion vector of the related block before processing. [Item 132] The motion vector of the related block after processing is A motion vector obtained after scaling the motion vector of the related block at a scale of 1, or The moving image processing apparatus according to item 131, including the motion vector of the related block that has skipped the scaling step. [Item 133] Predicting the current image block based on the motion vector of the related block described above means When the reference image of the related block is a specific reference image, or the reference image of the current block is a specific reference image, giving up determining the reference block of the current image block based on the motion vector of the related block, the moving image processing apparatus according to any one of items 91 to 130. [Item 134] The construction module further When the motion vector of the neighboring block points to a specific reference image, or the reference image of the current image block is a specific reference image, it is used to determine the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block, The motion vector of the related block after the above processing and the motion vector of the related block before the processing are the same, the moving image processing apparatus according to any one of items 91 to 133. [Item 135] The motion vector of the related block after the above processing is A motion vector obtained after scaling the motion vector of the related block at a scale of 1, or The moving image processing apparatus according to item 134, including the motion vector of the related block that has skipped the scaling step. [Item 136] M is 4 or less, the moving image processing apparatus according to any one of items 91 to 135. [Item 137] A moving image processing apparatus, Based on M candidates in the motion vector second candidate list of the current image block, determining M neighboring blocks of the current image block; sequentially scanning N neighboring blocks smaller than M among the M neighboring blocks, and determining a target neighboring block based on the scanning result; based on the motion vector of the target neighboring block, the current image block, and the reference image of the current image block, determining a related block of the current image block; based on the related block of the current image block, determining a specific candidate in the motion vector first candidate list of the current image block; when it is determined to use the specific candidate, dividing the current image block and the related block into a plurality of sub-image blocks in the same method, and each sub-image block in the current image block is used to be in one-to-one correspondence with each sub-image block of the related block, and a construction module for this purpose, A moving image processing apparatus including a prediction module used to predict each corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the related block. [Item 138] The moving image processing apparatus according to item 137, wherein at least one candidate in the motion vector first candidate list includes the motion vector of a sub-image block, and each candidate in the motion vector second candidate list includes the motion vector of an image block. [Item 139] The moving image processing apparatus according to item 137 or 138, wherein N is equal to 1 or 2. [Item 140] The moving image processing apparatus according to any one of items 137 to 139, wherein the M candidates include the motion vectors of M neighboring blocks of the current image block on the current image of the current image block. [Item 141] Sequentially scanning N neighboring blocks among the M neighboring blocks, and determining a target neighboring block based on the scanning result is, The moving image processing apparatus according to 140, comprising: sequentially scanning the N neighboring blocks, stopping the scanning when reaching the neighboring block that meets the first preset condition, and determining a target neighboring block based on the neighboring block that meets the first preset condition among the scanned ones. [Item 142] Determining the target neighboring block based on the neighboring block that meets the first preset condition among the scanned ones as described above includes: The moving image processing apparatus according to item 140, including using the neighboring block that meets the first preset condition as the target neighboring block. [Item 143] The preset condition includes: The moving image processing apparatus according to any one of items 141 or 142, including that the reference image of the neighboring block is the same as the reference image of the current image block. [Item 144] When a neighboring block that meets the preset condition has not been scanned among the N neighboring blocks, the construction module is further used to perform scaling processing on the motion vector of a specific neighboring block among the M neighboring blocks. The moving image processing apparatus according to any one of items 141 to 143, wherein the prediction module is further used to predict the current image block based on the motion vector after the scaling processing. [Item 145] Predicting the current image block based on the motion vector after the scaling processing as described above includes: The moving image processing apparatus according to item 144, including determining a reference block of the current image block based on the motion vector after the scaling processing and the reference image of the current image block. [Item 146] The moving image processing apparatus according to item 144, wherein the specific neighboring block is the first neighboring block or the last neighboring block obtained in the scanning order among the N neighboring blocks. [Item 147] Performing scaling processing on the motion vector of a specific neighboring block among the above-mentioned M neighboring blocks and predicting the current image block based on the motion vector after the scaling processing means that Performing scaling processing on the motion vector of the specific neighboring block and making the reference frame pointed to by the motion vector after the scaling processing the same as the reference image of the current image block; The moving image processing apparatus according to item 144, including using the image block pointed to by the motion vector after the scaling processing in the reference image of the current image block as the reference block of the current image block. [Item 148] When a neighboring block that meets the above preset conditions has not been scanned among the above N neighboring blocks, the moving image processing apparatus according to any one of items 141 to 143, using a default block as the reference block of the current image block. [Item 149] The moving image processing apparatus according to item 148, wherein the default block is an image block pointed to by a motion vector (0, 0). [Item 150] The moving image processing apparatus according to any one of items 137 to 149, wherein the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 64 or more pixels. [Item 151] The moving image processing apparatus according to item 150, wherein the size of the sub-image block and / or the size of the related block of the sub-image block are fixed to 8×8 pixels, or 16×4 pixels or 4×16 pixels. [Item 152] The moving image processing apparatus according to any one of items 137 to 151, wherein the current image block is one coding unit CU. [Item 153] Determining the related block of the current image block based on the motion vector of the above target neighboring block, the current image block, and the reference image of the current image block means that The moving image processing apparatus according to any one of items 137 to 152, including determining a related block of the current image block in a reference image of the moving vector of the block near the target. [Item 154] The moving image processing apparatus according to any one of items 137 to 153, wherein the nearby block is an image block adjacent to the position of the current image block on the current image or having a certain position pitch. [Item 155] Predicting the current image block based on the motion vector of the related block as described above includes When the reference image of the related block is a specific reference image, or the reference image of the current image block is a specific reference image, determining a reference block of the current image block based on the motion vector of the processed related block and the reference image of the current image block. The moving image processing apparatus according to any one of items 137 to 154, wherein the motion vector of the processed related block and the motion vector of the related block before processing are the same. [Item 156] The motion vector of the processed related block as described above is A motion vector obtained after scaling the motion vector of the related block at a scale of 1, or The moving image processing apparatus according to item 155, including the motion vector of the related block with the scaling step skipped. [Item 157] Predicting the current image block based on the motion vector of the related block as described above includes When the reference image of the related block is a specific reference image, or the reference image of the current block is a specific reference image, giving up determining a reference block of the current image block based on the motion vector of the related block. The moving image processing apparatus according to any one of items 137 to 154. [Item 158] The construction module further When the motion vector of the above-mentioned neighboring block points to a specific reference image, or the reference image of the current image block is the specific reference image, it is used to determine the reference block of the current image block based on the motion vector of the related block after processing and the reference image of the current image block. The motion vector of the related block after the above processing is the same as the motion vector of the related block before processing. The moving image processing apparatus according to any one of items 137 to 157. [Item 159] The motion vector of the related block after the above processing is The motion vector obtained after scaling the motion vector of the related block at a scale of 1, or The moving image processing apparatus according to item 158, including the motion vector of the related block for which the scaling step is skipped. [Item 160] Predicting the corresponding sub-image block in the current image block based on the motion vector of each sub-image block in the above-mentioned related block respectively is The moving image processing apparatus according to any one of items 137 to 159, including using the motion vector of each sub-image block in the related block as the motion vector of the corresponding sub-image block in the current image block respectively. [Item 161] Determining a specific candidate in the first candidate list of the motion vector of the current image block based on the related block of the current image block above is The moving image processing apparatus according to any one of items 137 to 159, including putting the representative motion vector of the related block of the current image block into the first candidate list of the motion vector as the specific candidate. [Item 162] The moving image processing apparatus according to item 161, putting the representative motion vector of the related block into the first candidate list of the motion vector as the first candidate. [Item 163] The moving image processing apparatus according to item 161, wherein the representative motion vector of the related block includes the motion vector at the central position of the related block. [Item 164] The prediction module further When a sub-image block with an unobtainable motion vector appears in the related block, the representative motion vector of the related block is used as the motion vector of the sub-image block with the unobtainable motion vector, and is used to predict the corresponding sub-image block in the current image block. The moving image processing apparatus according to Item 161. [Item 165] The prediction module further When a sub-image block with an unobtainable motion vector appears in the related block and the representative motion vector of the related block is unobtainable, it is used to abandon predicting the corresponding sub-image block in the current image block based on the motion vectors of each sub-image block in the related block. The moving image processing apparatus according to Item 164. [Item 166] The prediction module further When the sub-image block in the related block is unobtainable, or when the sub-image block in the related block uses the intra-frame coding mode, it is used to determine that a sub-image block with an unobtainable motion vector appears in the related block. The moving image processing apparatus according to Item 164. [Item 167] The prediction module further When it is determined to adopt one of the candidates other than the specific candidate in the second motion vector candidate list, performing an affine transformation on the adopted candidate based on the affine transformation model, and Predicting the sub-image block in the current image block based on the candidate after the affine transformation. The moving image processing apparatus according to any one of Items 137 to 166. [Item 168] In at least one of the candidates other than the specific candidate in the second motion vector candidate list, each candidate includes a motion vector of a set of control points. The moving image processing apparatus according to Item 167. [Item 169] When the affine transformation model includes a four-parameter affine transformation model, in at least one of the candidates, each candidate includes the motion vectors of two control points, When the affine transformation model includes a six-parameter affine transformation model, in at least one of the candidates, each candidate includes the motion vectors of three control points, the moving image processing apparatus according to item 168. [Item 170] The construction module further determining a group of control point motion vectors of neighboring blocks that perform prediction by adopting an affine transformation mode in a specific scanning order from the neighboring blocks of the current image block, and being used for putting the group of control point motion vectors of each determined neighboring block into the first candidate list of the motion vectors as one candidate, the moving image processing apparatus according to any one of items 137 to 169. [Item 171] Determining a group of control point motion vectors of neighboring blocks that perform prediction by adopting an affine transformation mode in a specific scanning order from the neighboring blocks of the current image block described above is determining a group of motion vectors of the control points of the first neighboring block in the first scanning order in the left neighboring block of the current image block, determining a group of motion vectors of the control points of the second neighboring block in the second scanning order in the upper neighboring block of the current image block, and including putting the group of motion vectors of the control points of the first neighboring block and the group of motion vectors of the control points of the second neighboring block into the first candidate list of the motion vectors, the moving image processing apparatus according to item 170. [Item 172] The construction module further constructing the motion vectors of some control points based on the neighboring blocks of some control points of the current image block, The moving image processing apparatus according to any one of items 137 to 171, which is used to put the motion vectors of some control points of the current image block into the first candidate list of motion vectors. [Item 173] Constructing the motion vectors of some control points of the current image block based on the neighboring blocks of some control points of the current image block described above means that For each control point among some control points of the current image block, the specific neighboring blocks of the control points are sequentially scanned in the third scanning order, and the motion vectors of the specific neighboring blocks that satisfy the preset conditions are used as the motion vectors of the control points. The moving image processing apparatus according to item 172 including this. [Item 174] The construction module further When the motion vectors of some control points of the current image block each point to a different reference frame, it is used to abandon putting the motion vectors of some control points of the current image block into the first candidate list of motion vectors. The moving image processing apparatus according to item 172 or 173. [Item 175] The construction module further When the number of candidates in the first candidate list of motion vectors is larger than a preset value, it is used to abandon putting the motion vectors of some control points of the current image block into the first candidate list of motion vectors. The moving image processing apparatus according to item 172 or 173. [Item 176] The construction module further Constructs a second candidate list of motion vectors, where the candidates to be put into the second candidate list of motion vectors are the motion vectors of one image block. When it is determined to adopt the candidates in the second candidate list of motion vectors, it is used to determine the motion vector of the current image block based on the motion vectors of the candidates. The moving image processing apparatus according to any one of items 139 to 151. [Item 177] Determining the motion vector of the current image block based on the motion vectors of the above candidates includes determining the candidate determined to be adopted as the motion vector of the current image block, or using, after scaling the candidate determined to be adopted, the motion vector of the current image block, the moving image processing apparatus according to item 176. [Item 178] Constructing the second motion vector candidate list includes determining M candidates to be included in the second motion vector candidate list based on the motion vectors of M neighboring blocks of the current image block on the current image, the moving image processing apparatus according to item 176. [Item 179] The construction module is further used to include, in the second motion vector candidate list, the motion vectors of the preset M neighboring blocks in the preset order as M candidates respectively, and the N neighboring blocks refer to the first N neighboring blocks determined in the preset order. and / or When the motion vectors of one or more of the M neighboring blocks are unavailable, the construction module is further used to abandon determining candidates to be included in the second motion vector candidate list based on the motion vectors of the one or more neighboring blocks, the moving image processing apparatus according to item 178. [Item 180] In the moving image processing apparatus according to any one of items 137 to 179, M is 4 or less. [Item 181] A moving image processing apparatus including a memory and a processor, where the memory is used to store instructions, the processor executes the instructions stored in the memory, and by executing the instructions stored in the memory, the processor is used to execute the method according to any one of items 1 to 46. [Item 182] A moving image processing apparatus, comprising a memory and a processor, wherein the memory is used for storing instructions, the processor executes the instructions stored in the memory, and by executing the instructions stored in the memory, the processor is used for executing the method described in any one of items 47 to 90. [Item 183] A computer storage medium, in which a computer program is stored, and when the computer program is executed by a computer, the computer is caused to execute the method described in any one of items 1 to 46. [Item 184] A computer storage medium, in which a computer program is stored, and when the computer program is executed by a computer, the computer is caused to execute the method described in any one of items 47 to 90. [Item 185] A computer program product including instructions, and when the instructions are executed by a computer, the computer is caused to execute the method described in any one of items 1 to 46. [Item 186] A computer program product including instructions, and when the instructions are executed by a computer, the computer is caused to execute the method described in any one of items 47 to 90.

Claims

1. Dividing a current image block into a plurality of sub-blocks; According to a target neighboring block of the current image block that satisfies a preset condition, determining a related block of the plurality of sub-blocks in a same frame of the current image block according to a motion vector of the target neighboring block; encoding or decoding the current image block according to a motion vector of the associated block of the plurality of sub-blocks; determining a set of control point motion vectors in an affine transformation mode using one or more neighboring blocks of the current image block; adding the control point motion vectors to a motion vector candidate list; A moving image processing method comprising:

2. The video processing method of claim 1 , further comprising determining a zero vector as a temporary motion vector corresponding to the target neighboring block of the current image block that does not satisfy the preset condition.

3. in response to one of the plurality of sub-blocks having an unavailable motion vector, predicting the one sub-block in the current image block using a representative motion vector of an associated block of the current image block to replace the unavailable motion vector; The moving image processing method according to claim 1 , further comprising:

4. inserting a candidate indicating that a temporary motion vector is used to determine motion information of a sub-block of the current image block into the motion vector candidate list; inserting one or more control point motion vectors of surrounding blocks of the current image block as one or more affine candidates of the current image block into the motion vector candidate list; inserting constructed affine candidates, which are obtained using motion information of surrounding blocks of the current image block, into the motion vector candidate list according to a number of candidates in the motion vector candidate list that is smaller than a preset value; inserting a zero vector into the motion vector candidate list in response to the number of candidates in the motion vector candidate list being less than the preset value after the constructed affine candidates have been inserted; The moving image processing method according to claim 1 , further comprising:

5. The video processing method according to claim 1 , wherein the group of control point motion vectors includes motion vectors of two or three control points of the one or more neighboring blocks.

6. The step of determining a set of control point motion vectors comprises: scanning the left neighboring blocks of the current image block according to a first scan order, and determining one or more control point motion vectors of the first left neighboring block using an affine transformation mode for prediction in response to reaching a first left neighboring block; scanning upper neighboring blocks of the current image block according to a second scanning order, and in response to reaching a first upper neighboring block, determining one or more control point motion vectors of the first upper neighboring block using the affine transformation mode for prediction; Including, The step of adding the control point motion vectors to the motion vector candidate list comprises:

2. The method of claim 1, further comprising adding the one or more control point motion vectors of the first left neighboring block and the one or more control point motion vectors of the first upper neighboring block as candidates to the motion vector candidate list of the current image block.

7. determining a scaling factor of the motion vector of the associated block according to a distance between a reference image designated by the motion vector of the associated block and the peer frame located in the reference image, and a distance between the peer frame and a current frame in which the current image block is located; scaling the motion vector of the associated block based on the scaling factor; The moving image processing method according to claim 1 , comprising:

8. 2. The video processing method according to claim 1, further comprising a step of scaling the motion vector of the associated block according to a scaling factor of 1 or skipping the step of scaling the motion vector of the associated block according to a motion vector of the associated block that specifies a long-term reference image or the peer frame of the current image block that is a long-term reference image.

9. at least one memory for storing instructions; By executing the instructions, Divide the current image block into multiple sub-blocks, According to a target neighboring block of the current image block that satisfies a preset condition, determine a related block of the plurality of sub-blocks in a same frame of the current image block according to a motion vector of the target neighboring block; encoding or decoding the current image block according to a motion vector of the associated block of the plurality of sub-blocks; determining a set of control point motion vectors in an affine transformation mode using one or more neighboring blocks of the current image block; at least one processor configured to add the control point motion vectors to a motion vector candidate list; A moving image processing device comprising:

10. Dividing a current image block into a plurality of sub-blocks; According to a target neighboring block of the current image block that satisfies a preset condition, determining a related block of the plurality of sub-blocks in a same frame of the current image block according to a motion vector of the target neighboring block; encoding the current image block according to a motion vector of the associated block of the plurality of sub-blocks to generate a bitstream; determining a set of control point motion vectors in an affine transformation mode using one or more neighboring blocks of the current image block; adding the control point motion vectors to a motion vector candidate list; A bitstream generating method comprising:

Citation Information

Patent Citations

  • Sub-prediction unit (pu)-based temporal motion vector prediction in hevc and sub-pu design in 3d-hevc

    JP2016537839A

  • Image encoding method and device, and image decoding method and device

    JP2019506089A

  • Video coding device and video decoding device

    JP2020145486A

  • Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3d-hevc

    US20150085929A1

  • Image encoding method and apparatus, and image decoding method and apparatus

    US20180376161A1