Motion estimation start point determination method, system and device, and storage medium

By comparing the candidate motion vector cost information in conventional motion estimation and affine advanced motion vector prediction mode, the motion estimation start point is adaptively selected, which solves the problem that the motion estimation result cannot be optimal and improves the video encoding quality.

WO2025119019A1PCT designated stage expired Publication Date: 2025-06-12GUANGZHOU NETSTAR INFORMATION TECH CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/134188
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-04
Filing Date
2024-11-25
Publication Date
2025-06-12

AI Technical Summary

Technical Problem

In the motion estimation scenario of video encoding, the prior art is prone to missing better candidate motion vectors, resulting in the motion estimation result not being optimal, affecting the video encoding quality.

Method used

By obtaining the first candidate motion vector of the conventional motion estimation process and the second candidate motion vector of the affine advanced motion vector prediction mode, comparing the cost information of the two, selecting the candidate starting point for affine motion estimation to ensure that the optimal one-way affine motion vector is obtained.

Benefits of technology

By accurately determining the starting point of motion estimation, we ensure that the motion estimation process obtains the optimal motion vector, and improves coding performance and coding quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024134188_12062025_PF_FP_ABST
    Figure CN2024134188_12062025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application disclose a motion estimation start point determination method, system and device, and a storage medium. The technical solution provided by the embodiments of the present application comprises: acquiring a first candidate motion vector in a conventional motion estimation process, and determining first cost information of the first candidate motion vector; determining a second candidate motion vector on the basis of a control point candidate list of an affine advanced motion vector prediction mode, and determining second cost information of the second candidate motion vector; and on the basis of a comparison result between the first cost information and the second cost information, determining the first candidate motion vector and / or the second candidate motion vector as a candidate start point, so as to perform an affine motion estimation on the basis of the candidate start point, and deciding an optimal unidirectional affine motion vector on the basis of an affine motion estimation result. By using the technical means, a candidate start point can be adaptively selected to implement an affine motion estimation process, thereby ensuring the optimal motion vector in the motion estimation process, and thus improving the coding performance and the coding quality.
Need to check novelty before this filing date? Find Prior Art

Description

A method, system, device and storage medium for determining a starting point of motion estimation

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on December 4, 2023, with application number 202311652295.6, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The embodiments of the present application relate to the field of video coding technology, and in particular to a method, system, device, and storage medium for determining a motion estimation starting point. Background Art

[0003] Currently, in the motion estimation scenario of video coding, considering the diversity of motion types (such as translation, zooming in / out, rotation, and perspective, etc.), the inter-frame motion estimation process generally includes CME (Conventional motion estimation) and AME (Affine motion estimation). When determining the starting point of motion estimation, the optimal motion vector determined by the conventional motion estimation process and the candidates in the affine advanced motion vector prediction mode are usually used as candidate motion vectors. Then, based on the satdCost (sum of absolute residual cost) of the candidate motion vectors, the candidate motion vector with the smaller cost is selected as the candidate starting point, and affine motion estimation is performed to obtain the final affine motion vector result.

[0004] However, simply determining the motion estimation starting point based on the candidate motion vectors is likely to miss better candidate motion vectors, which may result in the determined motion estimation result not being optimal, leading to deviation in video encoding quality. Summary of the Invention

[0005] The embodiments of the present application provide a method, system, device and storage medium for determining a motion estimation starting point, which can accurately determine the motion estimation starting point, improve video encoding quality, and solve the problem that the motion estimation result cannot reach the optimal one.

[0006] In a first aspect, an embodiment of the present application provides a method for determining a motion estimation starting point, comprising:

[0007] Obtain a first candidate motion vector in a conventional motion estimation process, and determine first cost information of the first candidate motion vector;

[0008] determining a second candidate motion vector according to the control point candidate list of the affine advanced motion vector prediction mode, and determining second cost information of the second candidate motion vector;

[0009] According to the comparison result of the first cost information and the second cost information, the first candidate motion vector and / or the second candidate motion vector are determined as candidate starting points, and affine motion estimation is performed based on the candidate starting points, and the optimal unidirectional affine motion vector is obtained according to the affine motion estimation result.

[0010] In a second aspect, an embodiment of the present application provides a motion estimation starting point determination system, comprising:

[0011] A first determining module is configured to obtain a first candidate motion vector in a conventional motion estimation process and determine first cost information of the first candidate motion vector;

[0012] a second determining module configured to determine a second candidate motion vector according to the control point candidate list of the affine advanced motion vector prediction mode, and determine second cost information of the second candidate motion vector;

[0013] The decision module is configured to determine the first candidate motion vector and / or the second candidate motion vector as a candidate starting point based on the comparison result of the first cost information and the second cost information, to perform affine motion estimation based on the candidate starting point, and to obtain the optimal unidirectional affine motion vector based on the affine motion estimation result.

[0014] In a third aspect, an embodiment of the present application provides a motion estimation starting point determination device, including:

[0015] memory and one or more processors;

[0016] The memory is configured to store one or more programs;

[0017] When the one or more programs are executed by the one or more processors, the one or more processors implement the method for determining a motion estimation starting point as described in the first aspect.

[0018] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores computer-executable instructions. When the computer-executable instructions are executed by a computer processor, they are configured to execute the motion estimation starting point determination method as described in the first aspect.

[0019] In a fifth aspect, an embodiment of the present application provides a computer program product, which includes instructions. When the instructions are executed on a computer or a processor, the computer or the processor executes the method for determining a motion estimation starting point as described in the first aspect.

[0020] The embodiment of the present application obtains the first candidate motion vector of the conventional motion estimation process and determines the first cost information of the first candidate motion vector; determines the second candidate motion vector according to the control point candidate list of the affine advanced motion vector prediction mode and determines the second cost information of the second candidate motion vector; determines the first candidate motion vector and / or the second candidate motion vector as the candidate starting point according to the comparison result of the first cost information and the second cost information, performs affine motion estimation based on the candidate starting point, and determines the optimal unidirectional affine motion vector according to the affine motion estimation result. By adopting the above technical means, the candidate starting point for affine motion estimation is determined by comparing the different cost information of the candidate motion vectors, so that the candidate starting point can be adaptively selected for the affine motion estimation process, thereby more accurately determining the motion estimation starting point, ensuring that the motion estimation process obtains the optimal motion vector, and thus improving the encoding performance and encoding quality. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] FIG1 is a flow chart of a method for determining a motion estimation starting point provided by an embodiment of the present application;

[0022] FIG2 is a schematic diagram of motion estimation based on an affine advanced motion vector prediction mode in an embodiment of the present application;

[0023] FIG3 is a flow chart of determining an affine motion estimation result in an embodiment of the present application;

[0024] Figure 4 is a schematic diagram of control points with 4 parameters and 6 parameters;

[0025] FIG5 is a schematic diagram of affine motion estimation based on 4 parameter control points;

[0026] FIG6 is a schematic structural diagram of a system for determining a motion estimation starting point provided by an embodiment of the present application;

[0027] FIG7 is a schematic structural diagram of a motion estimation starting point determination device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0028] In order to make the purpose, technical solutions and advantages of the present application clearer, the specific embodiments of the present application are further described in detail below in conjunction with the accompanying drawings. It is understood that the specific embodiments described herein are only used to explain the present application and are not intended to limit the present application. It should also be noted that, for ease of description, only parts related to the present application, not all of the contents, are shown in the accompanying drawings. Before discussing the exemplary embodiments in more detail, it should be mentioned that some exemplary embodiments are described as processes or methods depicted as flow charts. Although the flow charts describe each operation (or step) as a sequential process, many of the operations therein can be implemented in parallel, concurrently or simultaneously. In addition, the order of the operations can be rearranged. The process can be terminated when its operation is completed, but can also have additional steps not included in the accompanying drawings. The process can correspond to a method, function, procedure, subroutine, subprogram, etc.

[0029] The method for determining the motion estimation starting point provided in this application aims to adaptively select candidate motion vectors for the affine motion estimation process, and use the corrected candidate affine motion vectors to decide the motion estimation starting point, so as to more accurately determine the motion estimation starting point.

[0030] The basic idea behind motion estimation is to divide each frame of an image sequence into non-overlapping macroblocks, assuming that all pixels within a macroblock have the same displacement. Then, for each macroblock, the algorithm uses a matching criterion to find the block most similar to the current block within a given search range in the reference frame. This is called the matching block, and the relative displacement between the matching block and the current block is the motion vector. During video compression, only the motion vector and residual data need to be saved to fully recover the current block.

[0031] In related motion estimation scenarios, it is necessary to accurately determine the starting point of motion estimation so that the corresponding matching blocks can be accurately found from the starting point. When determining the starting point of motion estimation, it is generally included in the conventional motion estimation process (CME) and the affine motion estimation process (AME). When determining the starting point of motion estimation, the satdCost calculation is usually performed for each candidate in the candidate list under the affine advanced motion vector prediction mode (AffineAMVP, affine AMVP mode prediction; AMVP, Advanced Motion Vector Prediction, advanced motion vector prediction, one of the inter-frame prediction modes, also known as Inter mode), and the optimal affine CPMV (CPMV: control point motion vectors, control point motion vectors, used to store the motion vector representation of the affine mode) is selected. For the conventional motion estimation process, an optimal affine CPMV is also determined. By comparing the satdCost of two affine CPMVs, the optimal affine CPMV candidate is selected as the starting point of motion estimation. The optimal affine CPMV is then subjected to affine ME (affine motion estimation) to fit a better affine CPMV as the optimal result of affine motion estimation.

[0032] Considering that after obtaining the CPMV candidate list in affineAMVP mode, only the optimal affine CPMV will be selected for affine motion estimation. For other affine CPMVs with relatively large satdCost, their affine motion estimation results may be better. Only selecting the affine CPMV with the smallest satdCost for affine motion estimation will result in missing out on better affine motion estimation results, which will in turn cause the motion estimation results to fail to achieve the optimal result, affecting the video encoding quality. Based on this, a method for determining a motion estimation starting point in an embodiment of the present application is provided to solve the technical problem that the motion estimation result cannot achieve the optimal result.

[0033] Example:

[0034] FIG1 is a flowchart of a method for determining a motion estimation starting point according to an embodiment of the present application. The method for determining a motion estimation starting point according to this embodiment can be performed by a motion estimation starting point determination device. The motion estimation starting point determination device can be implemented in software and / or hardware. The motion estimation starting point determination device can be composed of two or more physical entities, or a single physical entity. Generally speaking, the motion estimation starting point determination device can be a processing device such as a video encoding server or a video encoding device.

[0035] The following description will be made by taking the motion estimation starting point determination device as an example to perform the motion estimation starting point determination method. Referring to FIG1 , the motion estimation starting point determination method specifically includes:

[0036] S110 , obtaining a first candidate motion vector in a conventional motion estimation process, and determining first cost information of the first candidate motion vector.

[0037] When making a motion estimation starting point decision, in order to avoid missing a better affine motion estimation result, the embodiment of the present application combines the conventional motion estimation process and the affine CPMV (defined as a candidate motion vector) determined in the affine advanced motion vector prediction mode to make an affine motion estimation decision. Affine motion estimation is performed by adaptively selecting candidate motion vectors to ensure that the obtained affine motion estimation result is optimal.

[0038] Specifically, with reference to FIG2 , a schematic diagram of motion estimation based on the affine advanced motion vector prediction mode of the present application is provided. In the process of determining the starting point of motion estimation, a CPMV is first determined through the conventional motion estimation process CME, which is defined as the first candidate motion vector. The conventional motion estimation process CME determines motion vectors as candidates through forward Uni prediction L0, backward Uni prediction L1, and bidirectional Bi prediction, and then selects the candidate with the minimum satdCost as the first candidate motion vector based on the satdCost of each candidate, denoted as affMV1. The satdCost of the first candidate motion vector is defined as the first cost information, denoted as candCost1.

[0039] S120 , determining a second candidate motion vector according to the control point candidate list of the affine advanced motion vector prediction mode, and determining second cost information of the second candidate motion vector.

[0040] Furthermore, for the candidate determined in the affine advanced motion vector prediction mode, the corresponding CPMV is also determined to define it as the second candidate motion vector, recorded as affMV2, and its satdCost is the second cost information, recorded as candCost2.

[0041] The control point candidate list includes control point motion vectors of adjacent coding blocks, control point motion vectors constructed by motion vectors of adjacent coding blocks through translation motion, translation motion vectors of adjacent coding blocks, time domain motion vectors and zero motion vectors.

[0042] Among them, several candidates can be provided in the affine AVMP control point candidate list, which are generated in sequence from the following four types of CPMV candidates:

[0043] Inherit the CPMV candidates of its adjacent CU;

[0044] Construct CPMV from the MV of the translation motion of adjacent CUs;

[0045] Directly use the translation MV of the adjacent cu;

[0046] Supplement TMVP and zero MV candidates;

[0047] By sequentially selecting the above-mentioned different motion vectors as candidates, the control point candidate list can be constructed. The number of candidates in the candidate list can be set according to actual needs, but if the motion vector obtained in the previous order meets the candidate requirements, there is no need to determine the next candidate. In this way, by selecting motion vectors in the candidate order, the control point candidate list can be obtained.

[0048] Similarly, according to the satdCost of the candidates in the candidate list, the candidate with the minimum satdCost is selected as the second candidate motion vector.

[0049] S130. Determine the first candidate motion vector and / or the second candidate motion vector as a candidate starting point based on the comparison result of the first cost information and the second cost information, perform affine motion estimation based on the candidate starting point, and obtain the optimal unidirectional affine motion vector based on the affine motion estimation result.

[0050] Furthermore, based on the above-mentioned first candidate motion vector and second candidate motion vector, the embodiment of the present application selects one of the candidate motion vectors or both candidate motion vectors for affine motion estimation by comparing the cost information of the two. This can avoid the situation where simply performing motion estimation based on one candidate motion vector leads to missing a better motion estimation result. The two candidate motion vectors are combined to determine the candidate starting point for affine motion estimation to obtain a better encoding effect.

[0051] Specifically, the second candidate motion vector is determined by the control point candidate list of the 4-parameter affine advanced motion vector prediction mode and the control point candidate list of the 6-parameter affine advanced motion vector prediction mode; correspondingly, the affine motion estimation results include the 4-parameter optimal affine motion vector and the 6-parameter optimal affine motion vector.

[0052] In the affine advanced motion vector prediction mode, a unidirectional (forward and backward) affine motion estimation process is performed. The affine motion estimation results obtained from each motion estimation process are then combined to determine the optimal unidirectional affine motion vector. The optimal unidirectional affine motion vector (forward and backward) is then compared with the bidirectional motion vectors, and the motion vector with the lowest cost is selected as the final motion estimation result.

[0053] Referring to Figure 2 , unidirectional affine motion estimation includes 4-parameter and 6-parameter motion estimation, and affine motion estimation needs to be performed for each of the 4-parameter and 6-parameter modes. Therefore, it is necessary to determine two corresponding second candidate motion vectors based on the control point candidate lists for the 4-parameter affine advanced motion vector prediction mode and the control point candidate lists for the 6-parameter affine advanced motion vector prediction mode, respectively. These two second candidate motion vectors are then compared with the first candidate motion vectors to determine the corresponding candidate starting points for affine motion estimation, thereby obtaining the corresponding 4-parameter optimal affine motion vector and 6-parameter optimal affine motion vector.

[0054] For example, taking 4-parameter motion estimation as an example, in the unidirectional affineAMVP mode, the CPMV candidate list modeList is obtained for the 4-parameter affineAMVP mode of the forward L0 (candidates are constructed in sequence, and at most two candidates are obtained). Then, the satdCost of this candidate list is calculated, and the optimal affine CPMV starting point candidate is selected, that is, the first candidate motion vector affMV1, and the corresponding satdCost is candCost1, that is, the first cost information. The corresponding CPMV obtained by the conventional motion estimation process is constructed as an additional affine CPMV candidate, and its satdCost is calculated, that is, the second candidate motion vector affMV2, and the corresponding satdCost is candCost2, that is, the second cost information.

[0055] Referring to FIG3 , determining the first candidate motion vector and / or the second candidate motion vector as a candidate starting point based on the comparison result of the first cost information and the second cost information includes:

[0056] S1301, determining an optimal vector and a suboptimal vector from a first candidate motion vector and a second candidate motion vector according to a comparison result of the first cost information and the second cost information;

[0057] S1302. Perform an affine motion estimation decision on the sub-optimal vector based on the set judgment condition;

[0058] S1303. In the case of deciding to perform affine motion estimation on the sub-optimal vector, use the optimal vector and the sub-optimal vector as candidate starting points; in the case of deciding to skip the affine motion estimation of the sub-optimal vector, use the optimal vector as the candidate starting point.

[0059] In the embodiment of the present application, by comparing the first cost information and the second cost information, it is determined that the candidate motion vector with the smaller cost among the first candidate motion vector and the second candidate motion vector is the optimal vector, and the other candidate motion vector is the sub-optimal vector. In the embodiment of the present application, it is default to use the optimal vector as the candidate starting point for affine motion estimation. For the sub-optimal motion vector, it is evaluated through the set judgment condition to decide whether to use the sub-optimal vector as the candidate starting point for affine motion estimation, so as to obtain the corresponding affine motion estimation result.

[0060] Wherein, the set judgment condition is that the cost information of the optimal vector and the sub-optimal vector is different, and the cost information of the optimal vector is greater than the cost information of the sub-optimal vector multiplied by a set multiple;

[0061] Performing an affine motion estimation decision on the sub-optimal vector based on the set judgment condition includes:

[0062] In the case where the sub-optimal vector meets the set judgment condition, perform affine motion estimation on the sub-optimal vector;

[0063] In the case where the sub-optimal vector does not meet the set judgment condition, skip the affine motion estimation of the sub-optimal vector.

[0064] Exemplarily, by comparing affMV1 and affMV2, if candCost1 < candCost2, first perform affine motion estimation on affMV1 to obtain the corrected affine motion estimation result, denoted as affMV_ME1; otherwise, perform affine motion estimation on affMV2 first to obtain affMV_ME2; then, based on the candCost situation of the optimal vector and the sub-optimal vector, decide whether to skip the affine motion estimation of the sub-optimal vector. Among them, by determining the maximum value and the minimum value in candCost1 and candCost2, they are respectively maxCandCost and minCandCost. Then set the flag bit skipTestReAffineME for skipping the affine motion estimation of the sub-optimal vector, and its determination condition is:

[0065] skipTestReAffineME=(maxCandCost≠minCandCost)? (maxCandCost>minCandCost*Thresh):true;

[0066] Among them, Thresh is the cost threshold for skipping affine motion estimation, which can be set to 2 in the encoder; when maxCandCost==minCandCost, it means that the costs of the two CPMVs affMV1 and affMV2 are the same, and there is no need to perform secondary affine motion estimation of the suboptimal vector; when maxCandCost≠minCandCost, and maxCandCost>minCandCost*Thresh, it means that the cost difference between the two CPMV candidate starting points is too large, and there is no need to perform secondary affine motion estimation of the suboptimal vector.

[0067] When skipTestReAffineME is false, quadratic affine motion estimation is performed on the suboptimal vector. That is, if the optimal vector is affMV1, affine motion estimation for affMV1 is prioritized. When the decision to perform quadratic affine motion estimation is made, affine motion estimation is performed on the suboptimal vector affMV2, and the combined affine motion estimation results are used as the final affine motion estimation result, and vice versa. Subsequently, if affine motion estimation is performed only on the optimal vector, the affine motion estimation result of the optimal vector is used as the 4-parameter optimal affine motion vector. If affine motion estimation is performed on both the optimal and suboptimal vectors, the respective satdCosts are calculated based on the two affine motion estimation results, and the one with the smallest satdCost is selected as the 4-parameter optimal affine motion vector, denoted as affineMV_4para. Similarly, for 6-parameter affine motion estimation, the optimal and suboptimal vectors are selected according to the above 4-parameter affine motion estimation process. Affine motion estimation is then performed based on the optimal and suboptimal vectors to determine the corresponding 6-parameter optimal affine motion vector, denoted as affineMV_6para.

[0068] Specifically, AME (Affine motion estimation) represents the affine motion estimation process for affine, which contains 4 / 6 parameters, each of which includes unidirectional (forward L0, backward L1) and bidirectional (Bi) motion estimation processes; as shown in Figure 4, the affine motion field of the block is described by two control point (4 parameters) or three control point (6 parameters) motion vectors CPMV (control point motion vectors), which increases the diversity of motion vectors and improves the accuracy of prediction.

[0069] Among them, the affine motion estimation process based on the coding block is as follows:

[0070] First, the coding block is divided into 4x4 luminance sub-blocks. For each luminance sub-block, the motion vector of its center pixel is calculated from the affine vector according to the following formula, and then rounded to 1 / 16 precision. For the 4-parameter affine motion model, the motion vector of the sub-block with the center pixel (x, y) is calculated as follows:

[0071] For the 6-parameter affine motion model, the motion vector of the sub-block with the center pixel (x, y) is calculated as follows:

[0072] Among them (mv 0x ,mv 0y ),(mv 1x ,mv 1y ),(mv 2x ,mv 2y ) are the motion vectors CPMV of the control points at the top left, top right, and bottom left corners, respectively. The motion vector calculated for each sub-block is shown in Figure 5. Motion-compensated interpolation filtering is performed based on the motion vectors to obtain the predicted value for each sub-block. The chrominance component is similarly divided into 4x4 sub-blocks, and its motion vector is equal to the average of the motion vectors of the four associated 4x4 luminance sub-blocks. This yields 4-parameter and 6-parameter affine motion estimation results.

[0073] Afterwards, based on the 4-parameter optimal affine motion vector and the 6-parameter optimal affine motion vector , The optimal unidirectional affine motion vector can be determined. The optimal unidirectional affine motion vector is determined based on the affine motion estimation result, including:

[0074] The motion vector with the minimum cost information is selected from the 4-parameter optimal affine motion vector and the 6-parameter optimal affine motion vector as the optimal unidirectional affine motion vector.

[0075] Referring to the above-mentioned unidirectional affine motion estimation method, the optimal unidirectional affine motion vector is selected based on the four-parameter candidate affine motion vectors and the six-parameter optimal affine motion vector for the forward and backward directions, respectively. Through the above-mentioned method, the corresponding optimal unidirectional affine motion vector, i.e., the forward optimal unidirectional affine motion vector or the backward optimal unidirectional affine motion vector, can be determined for the forward affine motion estimation and the backward affine motion estimation, respectively. For the forward affine motion estimation and the backward affine motion estimation, the optimal unidirectional affine motion vector is determined referring to the above-mentioned method, respectively. Then, combining the bidirectional affine motion estimation results with the above-mentioned optimal unidirectional affine motion vector and the optimal unidirectional affine motion vector, the optimal affine motion vector with the minimum cost information is selected as the final motion vector result for the affine motion estimation. There are many bidirectional affine motion estimation methods, and no fixed restrictions are imposed here. The embodiments of the present application focus on determining the candidate starting point during the unidirectional affine motion estimation process, which is used to subsequently determine the optimal motion estimation result. By adding candidate CPMVs to the affineAMVP mode and performing affine motion estimation separately, a better affine MV result can be obtained. Considering that the traditional affineAMVP will only select the best CPMV for motion estimation after obtaining the CPMV candidate list, it is easy to miss the better affine MV result. This application increases the scope and possibility of obtaining better affine motion estimation results by trying to select suboptimal CPMVs and also performing affine motion estimation separately, so as to obtain better encoding effects.

[0076] In the above, the first cost information of the first candidate motion vector is determined by obtaining the first candidate motion vector of the conventional motion estimation process; the second candidate motion vector is determined according to the control point candidate list of the affine advanced motion vector prediction mode, and the second cost information of the second candidate motion vector is determined; the first candidate motion vector and / or the second candidate motion vector are determined as candidate starting points according to the comparison result of the first cost information and the second cost information, so as to perform affine motion estimation based on the candidate starting points, and the optimal unidirectional affine motion vector is obtained according to the affine motion estimation result. By adopting the above technical means, the candidate starting point for affine motion estimation is determined by comparing the different cost information of the candidate motion vectors, so that the candidate starting point can be adaptively selected for the affine motion estimation process, thereby more accurately determining the motion estimation starting point, ensuring that the motion estimation process obtains the optimal motion vector, and thus improving the encoding performance and encoding quality.

[0077] Based on the above embodiment, FIG6 is a schematic diagram of a motion estimation starting point determination system provided by this application. Referring to FIG6 , the motion estimation starting point determination system provided by this embodiment specifically includes: a first determination module 21 , a second determination module 22 and a decision module 23 .

[0078] The first determining module 21 is configured to obtain a first candidate motion vector in a conventional motion estimation process and determine first cost information of the first candidate motion vector;

[0079] The second determining module 22 is configured to determine a second candidate motion vector according to the control point candidate list of the affine advanced motion vector prediction mode, and determine second cost information of the second candidate motion vector;

[0080] The decision module 23 is configured to determine the first candidate motion vector and / or the second candidate motion vector as a candidate starting point based on the comparison result of the first cost information and the second cost information, to perform affine motion estimation based on the candidate starting point, and to obtain the optimal unidirectional affine motion vector based on the affine motion estimation result.

[0081] Specifically, determining the first candidate motion vector and / or the second candidate motion vector as the candidate starting point according to the comparison result of the first cost information and the second cost information includes:

[0082] determining an optimal vector and a suboptimal vector from the first candidate motion vector and the second candidate motion vector according to a comparison result of the first cost information and the second cost information;

[0083] Perform affine motion estimation decision on the suboptimal vector based on set judgment conditions;

[0084] In the case of deciding to perform affine motion estimation of a suboptimal vector, the optimal vector and the suboptimal vector are used as candidate starting points;

[0085] In case the decision is made to skip the affine motion estimation of the suboptimal vector, the optimal vector is taken as the candidate starting point.

[0086] Specifically, the judgment condition is set as follows: the cost information of the optimal vector and the suboptimal vector are different, and the cost information of the optimal vector is greater than the cost information of the suboptimal vector by a set multiple;

[0087] Affine motion estimation decision is made for the suboptimal vector based on the set judgment conditions, including:

[0088] When the suboptimal vector meets the set judgment condition, performing affine motion estimation of the suboptimal vector;

[0089] If the suboptimal vector does not satisfy the set judgment condition, the affine motion estimation of the suboptimal vector is skipped.

[0090] The second candidate motion vector is determined by using a control point candidate list of a 4-parameter affine advanced motion vector prediction mode and a control point candidate list of a 6-parameter affine advanced motion vector prediction mode respectively;

[0091] Correspondingly, the affine motion estimation results include a 4-parameter optimal affine motion vector and a 6-parameter optimal affine motion vector.

[0092] The optimal unidirectional affine motion vector is obtained based on the affine motion estimation result, including:

[0093] The motion vector with the minimum cost information is selected from the 4-parameter optimal affine motion vector and the 6-parameter optimal affine motion vector as the optimal unidirectional affine motion vector.

[0094] Specifically, the control point candidate list includes control point motion vectors of adjacent coding blocks, control point motion vectors of adjacent coding blocks constructed by motion vectors of translation motion, translation motion vectors of adjacent coding blocks, temporal motion vectors and zero motion vectors.

[0095] In the above, the first cost information of the first candidate motion vector is determined by obtaining the first candidate motion vector of the conventional motion estimation process; the second candidate motion vector is determined according to the control point candidate list of the affine advanced motion vector prediction mode, and the second cost information of the second candidate motion vector is determined; the first candidate motion vector and / or the second candidate motion vector are determined as candidate starting points according to the comparison result of the first cost information and the second cost information, so as to perform affine motion estimation based on the candidate starting points, and the optimal unidirectional affine motion vector is obtained according to the affine motion estimation result. By adopting the above technical means, the candidate starting point for affine motion estimation is determined by comparing the different cost information of the candidate motion vectors, so that the candidate starting point can be adaptively selected for the affine motion estimation process, thereby more accurately determining the motion estimation starting point, ensuring that the motion estimation process obtains the optimal motion vector, and thus improving the encoding performance and encoding quality.

[0096] The motion estimation starting point determination system provided in the embodiment of the present application can be configured to execute the motion estimation starting point determination method provided in the above embodiment, and has corresponding functions and beneficial effects.

[0097] Based on the above practical example, an embodiment of the present application further provides a motion estimation starting point determination device. Referring to FIG7 , the motion estimation starting point determination device includes: a processor 31, a memory 32, a communication module 33, an input device 34, and an output device 35. The memory, as a computer-readable storage medium, can be configured to store software programs, computer-executable programs, and modules, such as program instructions / modules corresponding to the motion estimation starting point determination method described in any embodiment of the present application (e.g., the first determination module, the second determination module, and the decision module in the motion estimation starting point determination system). The communication module is configured to perform data transmission. The processor executes the software programs, instructions, and modules stored in the memory to execute various functional applications and data processing of the device, thereby implementing the above-mentioned motion estimation starting point determination method. The input device can be configured to receive input digital or character information and generate key signal input related to user settings and function control of the device. The output device can include a display device such as a display screen. The above-mentioned motion estimation starting point determination device can be configured to execute the motion estimation starting point determination method provided in the above-mentioned embodiment, and has corresponding functions and beneficial effects.

[0098] Based on the above embodiments, embodiments of the present application further provide a computer-readable storage medium storing computer-executable instructions. When executed by a computer processor, the computer-executable instructions are configured to execute a method for determining a motion estimation starting point. The storage medium may be any of various types of memory devices or storage devices. Of course, the computer-executable instructions of the computer-readable storage medium provided in embodiments of the present application are not limited to the method for determining a motion estimation starting point described above, but may also execute related operations of the method for determining a motion estimation starting point provided in any embodiment of the present application.

[0099] Based on the above embodiments, the embodiments of the present application also provide a computer program product. The essence of the technical solution of the present application or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer program product is stored in a storage medium and includes a number of instructions for enabling a computer device, a mobile terminal or a processor therein to execute all or part of the steps of the method for determining the starting point of motion estimation described in each embodiment of the present application.

Claims

1. A method for determining a motion estimation starting point, wherein: include: Acquire a first candidate motion vector in a conventional motion estimation process, and determine first cost information of the first candidate motion vector; Determine a second candidate motion vector according to the control point candidate list of the affine advanced motion vector prediction mode, and determine second cost information of the second candidate motion vector; According to the comparison result of the first cost information and the second cost information, the first candidate motion vector and / or the second candidate motion vector are determined as candidate starting points, so as to perform affine motion estimation based on the candidate starting points, and the optimal unidirectional affine motion vector is obtained according to the affine motion estimation result.

2. The method for determining a motion estimation starting point according to claim 1, wherein: The determining the first candidate motion vector and / or the second candidate motion vector as a candidate starting point according to a comparison result of the first cost information and the second cost information includes: Determine an optimal vector and a suboptimal vector from the first candidate motion vector and the second candidate motion vector according to a comparison result of the first cost information and the second cost information; Performing affine motion estimation decision on the suboptimal vector based on set judgment conditions; In case of deciding to perform affine motion estimation of the suboptimal vector, taking the optimal vector and the suboptimal vector as the candidate starting points; In case it is decided to skip the affine motion estimation of the suboptimal vector, the optimal vector is taken as the candidate starting point.

3. The method for determining a motion estimation starting point according to claim 2, wherein: The set judgment condition is that the cost information of the optimal vector and the suboptimal vector are different, and the cost information of the optimal vector is greater than the cost information of the suboptimal vector by a set multiple; The performing affine motion estimation decision on the suboptimal vector based on the set judgment condition comprises: When the suboptimal vector satisfies the set judgment condition, performing affine motion estimation of the suboptimal vector; If the suboptimal vector does not satisfy the set judgment condition, affine motion estimation of the suboptimal vector is skipped.

4. The method for determining a motion estimation starting point according to claim 1, wherein: The second candidate motion vector is determined by a control point candidate list of a 4-parameter affine advanced motion vector prediction mode and a control point candidate list of a 6-parameter affine advanced motion vector prediction mode respectively; Correspondingly, the affine motion estimation result includes a 4-parameter optimal affine motion vector and a 6-parameter optimal affine motion vector.

5. The method for determining a motion estimation starting point according to claim 4, wherein: The step of determining the optimal unidirectional affine motion vector according to the affine motion estimation result includes: A motion vector with minimum cost information is selected from the four-parameter optimal affine motion vector and the six-parameter optimal affine motion vector as the optimal unidirectional affine motion vector.

6. The method for determining a motion estimation starting point according to claim 1, wherein: The control point candidate list includes control point motion vectors of adjacent coding blocks, control point motion vectors of adjacent coding blocks constructed by motion vectors of translation motion, translation motion vectors of adjacent coding blocks, temporal motion vectors and zero motion vectors.

7. A system for determining a motion estimation starting point, wherein: include: A first determination module is configured to obtain a first candidate motion vector in a conventional motion estimation process and determine first cost information of the first candidate motion vector; A second determination module is configured to determine a second candidate motion vector according to the control point candidate list of the affine advanced motion vector prediction mode, and determine second cost information of the second candidate motion vector; A decision module is configured to determine the first candidate motion vector and / or the second candidate motion vector as a candidate starting point according to a comparison result of the first cost information and the second cost information, to perform affine motion estimation based on the candidate starting point, and to obtain an optimal unidirectional affine motion vector according to the affine motion estimation result.

8. A motion estimation starting point determination device, wherein: include: memory and one or more processors; The memory is configured to store one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method for determining a motion estimation starting point as described in any one of claims 1-6.

9. A computer-readable storage medium, wherein: The computer-readable storage medium stores computer-executable instructions, and when the computer-executable instructions are executed by a computer processor, the computer-executable instructions are configured to execute the method for determining a motion estimation starting point according to any one of claims 1 to 6.

10. A computer program product, wherein: The computer program product includes instructions, and when the instructions are executed on a computer or a processor, the computer or the processor executes the method for determining a motion estimation starting point according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Affine motion estimation acceleration method and device based on VVC coding, and storage medium

    CN111698502A

  • Coding prediction method and apparatus, and computer storage medium

    CN113287309A

  • Affine motion estimation method, device and equipment and storage medium

    CN113630601A

  • Affine model optimization based on control point motion vector

    CN116684578A

  • Motion estimation starting point determination method, system and device and storage medium

    CN117676164A