WO2020000444A1 - Procédé et dispositif de détermination de vecteur de mouvement et support d'informations lisible par machine - Google Patents
Procédé et dispositif de détermination de vecteur de mouvement et support d'informations lisible par machine Download PDFInfo
- Publication number
- WO2020000444A1 WO2020000444A1 PCT/CN2018/093850 CN2018093850W WO2020000444A1 WO 2020000444 A1 WO2020000444 A1 WO 2020000444A1 CN 2018093850 W CN2018093850 W CN 2018093850W WO 2020000444 A1 WO2020000444 A1 WO 2020000444A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- block
- coded
- sub
- image
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Definitions
- the present invention relates to the technical field of image processing, and in particular, to a method, a device, and a machine-readable storage medium for determining a motion vector.
- a complete video encoding method includes prediction, transformation, quantization, entropy encoding, and filtering.
- predictive coding includes intra-frame coding and inter-frame coding.
- Inter-frame coding uses the correlation of the video time domain to predict the pixels of the current image by using the pixels adjacent to the coded image to effectively remove the video time domain redundancy.
- a motion vector (Motion Vector, MV) can be used to represent the relative displacement between a block to be coded in a current frame image and a predictive coded block in a reference frame image. For example, there is a strong time-domain correlation between the current frame image A and the reference frame image B.
- MV Motion Vector
- a motion search can be performed in image B to find image block B1 that matches image block A1.
- a relative displacement between the image block A1 and the image block B1 is determined, and the relative displacement is the motion vector of the image block A1.
- the encoding end may send the motion vector to the decoding end, instead of sending the image block A1 to the decoding end, the decoding end reconstructs the image block A1 according to the motion vector and the image block B1. Obviously, since the number of bits occupied by the motion vector is less than the number of bits occupied by the image block A1, a large number of bits can be saved.
- an external input global motion vector can be received, with the global motion vector pointing position as the starting point of the search, and a smaller nearby The region is searched, thereby searching for the image block B1 that most closely matches the image block A1.
- the global motion vector is inaccurate, it may cause the search area to be far from the actual best search area, severely affect the search efficiency, and even bring about a significant reduction in encoding efficiency.
- the invention provides a method, a device, and a machine-readable storage medium for determining a motion vector, which can reduce a search interval and the number of searches, and can improve search efficiency and coding efficiency.
- a method for determining a motion vector includes:
- the global motion vector is determined as the target motion vector of the block to be encoded.
- a method for determining a motion vector includes:
- a target motion vector of the block to be coded is determined by using an average motion vector of each coded block.
- a motion vector determining device including: a memory and a processor; the memory is used to store program code; the processor is used to call the program code, and when the program code is When executed, the processor is configured to perform the following operations:
- the global motion vector is determined as the target motion vector of the block to be encoded.
- a motion vector determining device including: a memory and a processor; the memory is used to store program code; the processor is used to call the program code, and when the program code is When executed, the processor is configured to perform the following operations:
- a target motion vector of the block to be coded is determined by using an average motion vector of each coded block.
- a machine-readable storage medium is provided.
- Computer instructions are stored on the machine-readable storage medium.
- the motion vector determination method is implemented.
- a candidate motion vector can be determined according to the motion vector of the encoded block, and evaluation parameters of the candidate motion vector and global motion vector evaluation parameters are obtained. If the evaluation parameters of the candidate motion vector are better than the global motion The evaluation parameter of the vector determines the candidate motion vector as the target motion vector of the block to be encoded; if the evaluation parameter of the global motion vector is better than the evaluation parameter of the candidate motion vector, the global motion vector is determined as the target motion vector of the block to be encoded. In the above manner, the candidate motion vector can be used to evaluate whether the global motion vector is reliable.
- the global motion vector is determined as the target motion vector of the block to be encoded, that is, the search is performed with the global motion vector pointing position as the search starting point
- the candidate motion vector is determined as the target motion vector of the block to be encoded, that is, the search is performed with the candidate motion vector pointing position as the search starting point.
- FIG. 1 is a schematic diagram of an embodiment of a method for determining a motion vector
- FIG. 2 is a schematic diagram of another embodiment of a method for determining a motion vector
- FIG. 3 is a schematic diagram of dividing a coded block
- FIG. 4 is a schematic diagram of another embodiment of a method for determining a motion vector
- FIG. 5 is a schematic diagram of another embodiment of a method for determining a motion vector
- FIG. 6 is a schematic diagram of another embodiment of a method for determining a motion vector
- FIG. 7 is a schematic diagram of another embodiment of a method for determining a motion vector
- FIG. 8 is a schematic diagram of an embodiment of a motion vector determining device.
- first, second, third, etc. may be used in the present invention to describe various information, these information should not be limited to these terms. These terms are used to distinguish the same type of information from each other.
- first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information.
- word “if” can be interpreted as “at”, or “at ", or "in response to a determination”.
- An embodiment of the present invention provides a method for determining a motion vector, which is used to determine a target motion vector of a block to be encoded.
- FIG. 1 it is a schematic flowchart of a method for determining a motion vector. The method includes:
- Step 101 Determine a candidate motion vector according to the motion vector of the encoded block.
- determining the candidate motion vector according to the motion vector of the coded block may include, but is not limited to:
- Method 1 Select a coded block adjacent to the block to be coded from the current frame image to which the block to be coded belongs, and determine the motion vector of the selected coded block as a candidate motion vector of the block to be coded.
- Manner 2 Select at least one coded block associated with the block to be coded. For each selected coded block, the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block are used to determine the average motion vector of the coded block. After obtaining the average motion vector of each encoded block, the average motion vector of each encoded block can be used to determine the candidate motion vector of the block to be encoded.
- selecting at least one coded block associated with the block to be coded may include, but is not limited to, selecting at least one coded block from a current frame image to which the block to be coded belongs; and / or, from the At least one coded block is selected from a reference frame image corresponding to the block to be coded.
- the sub-image block of the encoded block may include: a sub-image block obtained by dividing the encoded block by using a specific division manner, and the specific division manner includes at least one division manner.
- the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block are used to determine the average motion vector of the coded block, which may include but is not limited to: for each sub-image block of the coded block Using the motion vector of the sub-image block and the number of pixels of the sub-image block to determine a first cumulative value of the sub-image block. In addition, the number of pixels of each sub-image block is used to determine the second cumulative value. After obtaining the first accumulated value and the second accumulated value of each sub-image block, an average motion vector may be determined according to the first accumulated value and the second accumulated value of each sub-image block.
- determining the candidate motion vector of the to-be-coded block by using the average motion vector of each coded block may include, but is not limited to: obtaining the average value of the motion vector by using the average motion vector of each coded block, and The motion vector average is determined as a candidate motion vector of the block to be encoded.
- Step 102 Obtain the evaluation parameters of the candidate motion vector and the evaluation parameters of the external motion global motion vector.
- step 103 may be performed; or, if the evaluation parameter of the global motion vector is better than that of the candidate motion vector
- step 104 may be performed.
- obtaining the evaluation parameters of the candidate motion vector and the evaluation parameters of the externally input global motion vector may include, but is not limited to, selecting at least one coded block from the current frame image to which the block to be coded belongs; For each of the encoded blocks, the motion vector of the sub-image block of the encoded block and the number of pixels of the sub-image block can be used to determine the average motion vector of the encoded block. After obtaining the average motion vector of each coded block, the average motion vector of each coded block can be used to determine the evaluation parameters of the candidate motion vector and the evaluation parameters of the global motion vector.
- the sub-image block of the encoded block may include: a sub-image block obtained by dividing the encoded block by using a specific division manner, and the specific division manner may include at least one division manner.
- the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block are used to determine the average motion vector of the coded block, which may include but is not limited to: for each sub-image block of the coded block
- the first cumulative value of the sub-image block may be determined by using the motion vector of the sub-image block and the number of pixels of the sub-image block.
- the number of pixels of each sub-image block is used to determine the second cumulative value. After obtaining the first accumulated value and the second accumulated value of each sub-image block, an average motion vector may be determined according to the first accumulated value and the second accumulated value of each sub-image block.
- the average motion vector of each coded block is used to determine the evaluation parameters of the candidate motion vector and the global motion vector, including but not limited to: for the average motion vector of each coded block, determining the average motion vector A first distance from the candidate motion vector, a second distance between the average motion vector and the global motion vector; if the first distance is less than the second distance, the evaluation parameter of the candidate motion vector is increased (eg, the evaluation parameter of the candidate motion vector is increased by 1); If the first distance is greater than the second distance, the evaluation parameter of the global motion vector is increased (eg, the evaluation parameter of the global motion vector is increased by 1).
- determining the first distance between the average motion vector and the candidate motion vector, and the second distance between the average motion vector and the global motion vector may include, but are not limited to, the average motion vector and the candidate motion vector.
- the absolute value of the difference is determined as the first distance, and the absolute value of the difference between the average motion vector and the global motion vector may be determined as the second distance.
- the evaluation parameter of the candidate motion vector is greater than the evaluation parameter of the global motion vector, determining that the evaluation parameter of the candidate motion vector is better than the evaluation parameter of the global motion vector; if the candidate The evaluation parameter of the motion vector is smaller than the evaluation parameter of the global motion vector, and it is determined that the evaluation parameter of the global motion vector is superior to the evaluation parameter of the candidate motion vector.
- Step 103 Determine the candidate motion vector as a target motion vector of the block to be encoded. That is, motion search can be performed with the candidate motion vector pointing position as a search starting point, which is not limited.
- Step 104 Determine the global motion vector as a target motion vector of a block to be encoded.
- motion search can be performed with the global motion vector pointing position as the search starting point, which is not limited.
- the candidate motion vector can be used to evaluate whether the global motion vector is reliable. If the global motion vector is reliable, the global motion vector is determined as the target motion vector of the block to be encoded, and the search is performed with the global motion vector pointing position as the search starting point. The global motion vector is unreliable. The candidate motion vector is determined as the target motion vector of the block to be encoded, and the search is performed with the candidate motion vector pointing position as the search starting point.
- the above method reduces the search interval and the number of searches, improves the accuracy of motion search, improves search efficiency, reduces search resource consumption, improves coding efficiency, and improves coding quality.
- Embodiment 1 Based on Embodiment 1, the above method of determining the motion vector will be described in detail in combination with specific application scenarios. This method can be applied to encoders, cameras, drones, car driving assistance equipment, and video recording equipment with a gimbal. And other scenes. See Figure 2 for a flowchart of the method.
- Step 201 Obtain an externally input global motion vector.
- the PTZ device or other control device can obtain the global motion vector (characterizing the average displacement of the reference frame image of the current frame image) according to the attitude information or motion information of the camera, and output the global motion vector to the encoder (using the encoder For example), in this way, the encoder can obtain the externally input global motion vector, use the global motion vector pointing position as the search starting point, and perform motion search in the reference frame image, so as to find in the reference frame image the most similar block to be encoded. Matching predictive coding block.
- the global motion vector after obtaining the global motion vector, instead of directly using the global motion vector pointing position as the search starting point, perform a motion search in the reference frame image, but use subsequent steps to determine the target motion vector and use the target
- the motion vector pointing position is the search starting point, and the motion search is performed in the reference frame image.
- Step 202 Select at least one encoded block associated with the block to be encoded from the reference frame image corresponding to the block to be encoded. For example, all the encoded blocks in the reference frame image may be selected.
- Step 203 For each selected coded block, use the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block to determine the average motion vector of the coded block.
- Step 204 Use the average motion vector of each coded block to determine the candidate motion vector of the block to be coded, that is, use the average motion vector of all the coded blocks to determine the candidate motion vector of the block to be coded.
- the reference frame image can be determined to be the M-1 frame, of course, it can also be other frames. Make restrictions. Then, all the encoded blocks of the M-1 frame may be determined as the encoded blocks associated with the block to be encoded, for example, the encoded blocks A1-A100 of the M-1 frame are all determined as the encoded blocks.
- all sub-image blocks of the coding block A1 are first determined, that is, all sub-image blocks obtained by dividing the coding block A1 by using a specific division method.
- the specific division methods may include undivided (as shown in FIG. 3 (a)), vertical division (as shown in FIG. 3 (b)), Horizontal division (as shown in (c) of Fig. 3), quadruple division (as shown in (d) of Fig. 3), asymmetric division on the left (as shown in Fig. 3 (e)), asymmetric on the right Division (as shown in (f) of FIG.
- the coding block A1 is divided by a vertical division method to obtain a sub-image block A11 and a sub-image block A12, and the coding block A1 is divided by a horizontal division method to obtain a sub-image block A13 and a sub-image block. A14.
- the encoding block A1 is divided by using a quad-partitioning method to obtain a sub-image block A15, a sub-image block A16, a sub-image block A17, and a sub-image block A18. In this way, the sub-image block A11-sub-image block A18 can be determined as all the sub-image blocks of the encoding block A1.
- the motion vector of the sub-image block A11 and the number of pixels of the sub-image block A11 can be used to determine a first cumulative value 1 of the sub-image block A11, for example, the first cumulative value 1 is equal to the motion vector of the sub-image block A11 multiplied by the sub-image The number of pixels of block A11; using the motion vector of sub-image block A12 and the number of pixels of sub-image block A12 to determine the first cumulative value 2 of sub-image block A12, for example, the first cumulative value 2 is equal to the motion vector of sub-image block A12 Multiply the number of pixels of sub-image block A12; and so on, use the motion vector of sub-image block A18 and the number of pixels of sub-image block A18 to determine the first cumulative value 8 of sub-image block A18, such as the first cumulative value 8
- the motion vector equal to the sub-image block A18 is multiplied by the number of pixels of the sub-image block A18.
- the first cumulative value of the sub-image block A11, the first cumulative value of the sub-image block A12, the first cumulative value of the sub-image block A13, and the first cumulative value of the sub-image block A14 can be obtained.
- the first integrated value and the second integrated value of each sub-image block may be used to determine the average motion vector of the coding block A1, that is, the average motion vector of the first integrated value may be used.
- the average motion vector of the coding block A1 may be equal to (first cumulative value 1 + first cumulative value 2 + first cumulative value 3 + first cumulative value 4 + first cumulative value 5 + first cumulative value 6 + first Cumulative value 7 + first cumulative value 8) divided by the second cumulative value.
- the first cumulative value 1 may include the motion vector component X of the sub-image block A11 multiplied by the pixels of the sub-image block A11
- the number, the motion vector component Y of the sub-image block A11 is multiplied by the number of pixels of the sub-image block A11, and the other first cumulative values are similar, and will not be repeated here.
- the first cumulative value of each sub-image block may include the cumulative value of the X component (that is, the cumulative value of the motion vector component X times the number of pixels) and the cumulative value of the Y component (that is, the cumulative value of the motion vector component Y times the number of pixels) Value), and then the sum of the cumulative X component values of all sub-image blocks is divided by the second cumulative value to obtain the X component of the average motion vector of the coding block A1, and the sum of the cumulative Y component values of all sub-image blocks , Divided by the second cumulative value, the Y component of the average motion vector of the coded block A1 is obtained.
- three accumulators may be used, which may be referred to as accumulator 1, accumulator 2 and accumulator 3 respectively.
- the accumulator 1 is used to accumulate the sub-image block A11.
- the product of the motion vector component X and the number of pixels of the sub-image block A11, the accumulator 2 is used to accumulate the product of the motion vector component Y and the number of pixels of the sub-image block A11, and the accumulator 3 is used to accumulate the sub-image block The number of pixels of A11.
- the product of the motion vector component X of the sub-image block A12 and the number of pixels of the sub-image block A12 is accumulated using the accumulator 1
- the motion of the sub-image block A12 is accumulated using the accumulator 2.
- the product of the vector component Y and the number of pixels of the sub-image block A12 uses the accumulator 3 to accumulate the number of pixels of the sub-image block A12.
- the product of the motion vector component X of the sub-image block A18 and the number of pixels of the sub-image block A18 is accumulated using the accumulator 1, and the sub-image block A18 is accumulated using the accumulator 2.
- the product of the motion vector component Y and the number of pixels of the sub-image block A18 is used to accumulate the number of pixels of the sub-image block A18 using an accumulator 3.
- the value of accumulator 1 divided by the value of accumulator 3 is the X component of the average motion vector of the encoding block A1
- the value of accumulator 2 divided by the value of accumulator 3 is the Y component of the average motion vector of the encoding block A1 .
- the average motion vector of the encoding block A1 can be obtained.
- the average motion vector of the encoding block A2-the encoding block A100 can also be obtained, so as to obtain the average motion vectors of all the encoded blocks.
- the average motion vectors of all the encoded blocks can be used to determine the candidate motion vectors of the block to be encoded.
- the average motion vectors of all the encoded blocks can be used to obtain the average value of the motion vectors, and the average of the motion vectors is determined as the block to be encoded.
- the candidate motion vector of the block to be encoded is equal to (average motion vector of the encoding block A1 + average motion vector of the encoding block A2 + ... + average motion vector of the encoding block A100) divided by the number of encoded blocks 100.
- Step 205 Obtain evaluation parameters of candidate motion vectors and evaluation parameters of global motion vectors.
- the current encoding frame is the Mth frame and the current block to be encoded is the Nth encoding block of the Mth frame
- -Coding block N-1 for example, it can be assumed that the selected coding block is coding block B1-coding block B15.
- all sub-image blocks of the coding block B1 are determined, that is, all sub-image blocks obtained by dividing the coding block B1 by using a specific division method. Then, for each sub-image block, the motion vector of the sub-image block and the number of pixels of the sub-image block are used to determine a first cumulative value of the sub-image block. For example, the first cumulative value is equal to the motion vector of the sub-image block. The number of pixels in the sub-image block. In addition, the number of pixels of all sub-image blocks may be used to determine the second cumulative value of the coding block B1, for example, the second cumulative value is equal to the sum of the number of pixels of all sub-image blocks.
- first accumulated value and the second accumulated value of each sub-image block may be used to determine an average motion vector of the coding block B1, for example, the average motion vector is equal to the sum of all the first accumulated values, and divided by the second accumulated value.
- the average motion vector of the coded block B2-the coded block B15 can also be obtained, so as to obtain the average motion vector of all the coded blocks.
- the average motion vectors of all coded blocks can be used to determine the evaluation parameters of candidate motion vectors and the evaluation of global motion vectors.
- parameter Specifically, assuming that the initial value of the evaluation parameter of the candidate motion vector is 0 and the initial value of the evaluation parameter of the global motion vector is 0, for the average motion vector of each coded block, the average motion vector and the candidate motion vector can be determined. A first distance of, a second distance between the average motion vector and the global motion vector.
- the evaluation parameter of the candidate motion vector may be increased by 1; if the first distance is greater than the second distance, the evaluation parameter of the global motion vector may be increased by 1, if If the first distance is equal to the second distance, the evaluation parameter of the candidate motion vector is increased by 1, and the evaluation parameter of the global motion vector is increased by 1.
- the evaluation parameter of the candidate motion vector may be increased by one; If the first distance between the average motion vector of the coding block B2 and the candidate motion vector is greater than the second distance between the average motion vector of the coding block B2 and the global motion vector, the evaluation parameter of the global motion vector may be increased by 1; and so on,
- the processing process for other coding blocks is similar, and will not be repeated here. Assume that based on the average motion vector of the coding block B1-the coding block B15, the evaluation parameter of the global motion vector is finally determined to be 8 and the evaluation parameter of the candidate motion vector is 7.
- Accumulator 1 can be set for the candidate motion vector, and accumulator 2 can be set for the global motion vector. If the first distance between the average motion vector and the candidate motion vector is smaller than the second distance between the average motion vector and the global motion vector, the total 1 is added to adder 1; if the first distance between the average motion vector and the candidate motion vector is greater than the second distance between the average motion vector and the global motion vector, 1 is added to the accumulator 2; If a distance is equal to the second distance between the average motion vector and the global motion vector, add 1 to accumulator 1 and add 1 to accumulator 2.
- the value of the accumulator 1 is an evaluation parameter of the candidate motion vector
- the value of the accumulator 2 is an evaluation parameter of the global motion vector.
- the absolute value of the difference between the average motion vector and the candidate motion vector may be determined as the first distance, and the absolute value of the difference between the average motion vector and the global motion vector may be determined as the second distance.
- the absolute value of the difference between the average motion vector of the coding block B1 and the candidate motion vector is determined as the first distance, and the absolute value of the difference between the average motion vector of the coding block B1 and the global motion vector is determined as the second distance.
- a motion vector may include two motion vector components (X, Y)
- determine the absolute value 1 of the X component of the average motion vector and the X component of the candidate motion vector and determine the Y component of the average motion vector and The absolute value 2 of the Y component of the candidate motion vector is determined as the sum of the absolute value 1 and the absolute value 2 as the first distance.
- determine the absolute value 3 of the X component of the average motion vector and the X component of the global motion vector and determine the absolute value 4 of the Y component of the average motion vector and the Y component of the global motion vector, and set the absolute value 3 to the absolute value
- the sum of 4 is determined as the second distance.
- Step 206 Determine whether the evaluation parameter of the candidate motion vector is better than the evaluation parameter of the global motion vector. If yes, go to step 207; if no, go to step 208.
- the evaluation parameter of the candidate motion vector is greater than the evaluation parameter of the global motion vector, it is determined that the evaluation parameter of the candidate motion vector is better than the evaluation parameter of the global motion vector; if the evaluation parameter of the candidate motion vector is smaller than the evaluation of the global motion vector Parameter, it is determined that the evaluation parameter of the global motion vector is superior to the evaluation parameter of the candidate motion vector.
- the value of the accumulator 1 finally obtained is greater than the value of the accumulator 2
- Step 207 Determine the candidate motion vector as a target motion vector of the block to be encoded. That is, motion search can be performed with the candidate motion vector pointing position as a search starting point, which is not limited.
- Step 208 Determine the global motion vector as a target motion vector of the block to be encoded.
- motion search can be performed with the global motion vector pointing position as the search starting point, which is not limited.
- the candidate motion vector may be determined as the target motion vector of the block to be encoded, or the global motion vector may also be determined as There is no limitation on the target motion vector of the block to be encoded.
- the candidate motion vector may be determined as the target motion vector of the block to be encoded.
- the method may include:
- step 401 an externally input global motion vector is obtained.
- Step 402 Select at least one encoded block associated with the block to be encoded from the current frame image to which the block to be encoded belongs, such as determining all image blocks that have been encoded in the current frame image as encoded blocks.
- Step 403 For each selected coded block, use the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block to determine the average motion vector of the coded block.
- Step 404 Determine the candidate motion vector of the block to be coded by using the average motion vector of each coded block, that is, use the average motion vector of all the coded blocks to determine the candidate motion vector of the block to be coded.
- steps 402 to 404 refer to steps 202 to 204.
- the coded block in this embodiment is a coded block in the current frame image
- the coded block in embodiment 2 is Reference is made to the coded block in the frame image, and other processing procedures are similar, which will not be repeated here.
- Step 405 Acquire evaluation parameters of candidate motion vectors and evaluation parameters of global motion vectors.
- Step 406 Determine whether the evaluation parameter of the candidate motion vector is better than the evaluation parameter of the global motion vector. If yes, go to step 407; if no, go to step 408.
- Step 407 Determine the candidate motion vector as a target motion vector of the block to be encoded.
- Step 408 Determine the global motion vector as a target motion vector of the block to be encoded.
- the method may include:
- step 501 an externally input global motion vector is obtained.
- Step 502 Select at least one encoded block associated with the block to be encoded from the current frame image to which the block to be encoded belongs, such as determining all image blocks that have been encoded in the current frame image as encoded blocks.
- at least one coded block in the current frame image is referred to as a coded block set A.
- Step 503 Select at least one encoded block associated with the block to be encoded from the reference frame image corresponding to the block to be encoded. For example, all the encoded blocks in the reference frame image may be selected. In the subsequent embodiments, at least one coded block in the reference frame image is referred to as a coded block set B.
- Step 504 For each coded block in the coded block set A, use the motion vector and the number of pixels of the sub-image block of the coded block to determine the average motion vector of the coded block, and use each The average motion vector of the encoded blocks determines the candidate motion vector 1 of the block to be encoded.
- Step 505 For each coded block in the coded block set B, use the motion vector of the sub-picture block of the coded block and the number of pixels of the sub-picture block to determine the average motion vector of the coded block, and use each The average motion vector of the two encoded blocks determines the candidate motion vector 2 of the block to be encoded.
- the coded blocks in the coded block set A are the coded blocks in the current frame image.
- the encoded blocks in the encoded block set B are encoded blocks in the reference frame image, and the candidate motion vector 1 is determined using the encoded blocks in the encoded block set A, and the encoded blocks in the encoded block set B are used.
- the candidate motion vector 2 is determined, that is, there are two candidate motion vectors in total.
- step 506 the evaluation parameters of the candidate motion vector 1, the evaluation parameters of the candidate motion vector 2, and the evaluation parameters of the global motion vector are obtained.
- the specific acquisition method is similar to step 205, and details are not described herein again.
- Step 507 Compare the evaluation parameters of candidate motion vector 1, the evaluation parameters of candidate motion vector 2 and the evaluation parameters of global motion vector. Wherein, if the evaluation parameter of the candidate motion vector 1 is optimal, step 508 may be performed; if the evaluation parameter of the candidate motion vector 2 is optimal, step 509 may be performed; if the evaluation parameter of the global motion vector is optimal If yes, step 510 may be performed.
- Step 508 Determine the candidate motion vector 1 as a target motion vector of the block to be encoded.
- Step 509 Determine the candidate motion vector 2 as a target motion vector of the block to be encoded.
- Step 510 Determine the global motion vector as a target motion vector of a block to be encoded.
- FIG. 6 is a schematic flowchart of a method for determining a motion vector, the method may include:
- Step 601 Obtain a global motion vector input externally.
- Step 602 Select a coded block adjacent to the block to be coded from the current frame image to which the block to be coded belongs, and determine a motion vector of the selected coded block as a candidate motion vector of the block to be coded.
- an encoded block above the block to be encoded may be selected from the current frame image to which the block to be encoded belongs. Since the encoded block above the block to be encoded is already encoded, the motion vector of the encoded block is known , The motion vector of the encoded block may be determined as a candidate motion vector of the block to be encoded.
- the coded block on the left side of the block to be coded can be selected from the current frame image to which the block to be coded belongs. Since the coded block on the left side of the block to be coded has been encoded, the motion vector of the coded block It is known that the motion vector of the encoded block can be determined as a candidate motion vector of the block to be encoded.
- Step 603 Acquire evaluation parameters of candidate motion vectors and evaluation parameters of global motion vectors.
- Step 604 Determine whether the evaluation parameter of the candidate motion vector is better than the evaluation parameter of the global motion vector. If so, step 605 may be performed; if not, step 606 may be performed.
- Step 605 Determine the candidate motion vector as a target motion vector of the block to be encoded.
- Step 606 Determine the global motion vector as a target motion vector of the block to be encoded.
- the method may include:
- Step 701 Select at least one coded block associated with the block to be coded.
- Selecting at least one coded block associated with the block to be coded may include: selecting at least one coded block from a current frame image to which the block to be coded belongs, such as selecting and At least one coded block associated with the coded block, such as determining all image blocks that have been coded in the current frame image as coded blocks. And / or, selecting at least one coded block from a reference frame image corresponding to the block to be coded, such as selecting at least one coded block associated with the block to be coded from the reference frame image corresponding to the block to be coded, as described in selecting Reference all coded blocks in the frame image.
- the sub-image block of the encoded block may include: a sub-image block obtained by dividing the encoded block by using a specific division manner, and the specific division manner includes at least one division manner.
- Step 702 For each selected coded block, use the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block to determine an average motion vector of the coded block.
- the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block are used to determine the average motion vector of the coded block.
- the number of pixels of each sub-image block is used to determine the second cumulative value.
- an average motion vector may be determined according to the first accumulated value and the second accumulated value of each sub-image block.
- Step 703 Use the average motion vector of each coded block to determine the target motion vector of the block to be coded, and perform the motion search with the target motion vector pointing position as the search starting point, which is not limited.
- determining the target motion vector of the block to be coded by using the average motion vector of each coded block may include, but is not limited to: using the average motion vector of each coded block to obtain the average value of the motion vector, and The average value of the motion vector is determined as the target motion vector of the block to be encoded.
- steps 701 to 703 refer to steps 202 to 204.
- the target motion vector of the block to be encoded is determined, while in Embodiment 2, the block to be encoded is determined.
- the candidate motion vectors are similar to other processing processes, and are not repeated here.
- At least one coded block associated with the block to be coded may be selected, and for each selected coded block, the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block are used to determine the The average motion vector of the coded block, and the average motion vector of each coded block is used to determine the target motion vector of the block to be coded, and the target motion vector is used as the search starting point for motion search.
- the above method reduces the search interval and the number of searches. , Improve the accuracy of motion search, improve search efficiency, reduce search resource consumption, improve coding efficiency, and improve coding quality.
- an embodiment of the present invention further proposes a motion vector determination device.
- the motion vector determination device includes: a memory and a processor; and the memory is used to store a program. Code; the processor, configured to call the program code.
- the processor is configured to call the program code, and when the program code is executed, the processor is configured to perform the following operations:
- the global motion vector is determined as the target motion vector of the block to be encoded.
- the processor is specifically configured to determine a candidate motion vector according to a motion vector of an encoded block:
- a coded block adjacent to the block to be coded is selected from a current frame image to which the block to be coded belongs, and a motion vector of the selected coded block is determined as a candidate motion vector of the block to be coded.
- the processor is specifically configured to determine a candidate motion vector according to a motion vector of an encoded block:
- a candidate motion vector of the block to be coded is determined by using an average motion vector of each coded block.
- the processor selects at least one coded block associated with the block to be coded
- the processor is specifically configured to:
- the sub-image block of the encoded block includes: a sub-image block obtained by dividing the encoded block by using a specific division manner, and the specific division manner includes at least one division manner.
- the processor uses the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block to determine an average motion vector of the coded block, the processor is specifically configured to:
- An average motion vector is determined according to the first cumulative value and the second cumulative value of each sub-image block.
- the processor uses the average motion vector of each coded block to determine the candidate motion vector of the block to be coded
- the processor is specifically configured to: use the average motion vector of each coded block to obtain an average value of the motion vector; The average value is determined as a candidate motion vector of the block to be encoded.
- the processor When the processor obtains the evaluation parameter of the candidate motion vector and the evaluation parameter of the externally input global motion vector, the processor is specifically configured to: select at least one coded block from a current frame image to which the block to be coded belongs; An encoded block, using a motion vector of the sub-image block of the encoded block and the number of pixels of the sub-image block to determine an average motion vector of the encoded block;
- An evaluation parameter of the candidate motion vector and an evaluation parameter of the global motion vector are determined using an average motion vector of each coded block.
- the sub-image block of the encoded block includes: a sub-image block obtained by dividing the encoded block by using a specific division manner, and the specific division manner includes at least one division manner.
- the processor uses the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block to determine an average motion vector of the coded block, the processor is specifically configured to:
- An average motion vector is determined according to the first cumulative value and the second cumulative value of each sub-image block.
- the processor determines an evaluation parameter of the candidate motion vector and an evaluation parameter of the global motion vector by using an average motion vector of each coded block, the processor is specifically configured to:
- the processor determines a first distance between the average motion vector and the candidate motion vector, and a second distance between the average motion vector and the global motion vector, the processor is specifically configured to:
- An absolute value of a difference between the average motion vector and the candidate motion vector is determined as a first distance, and an absolute value of a difference between the average motion vector and the global motion vector is determined as a second distance.
- the processor is further configured to: if the evaluation parameter of the candidate motion vector is greater than the evaluation parameter of the global motion vector, determine that the evaluation parameter of the candidate motion vector is better than the evaluation parameter of the global motion vector; if the candidate The evaluation parameter of the motion vector is smaller than the evaluation parameter of the global motion vector, and it is determined that the evaluation parameter of the global motion vector is superior to the evaluation parameter of the candidate motion vector.
- the processor is configured to call the program code, and when the program code is executed, the processor is configured to perform the following operations:
- a target motion vector of the block to be coded is determined by using an average motion vector of each coded block.
- the processor selects at least one coded block associated with the block to be coded
- the processor is specifically configured to:
- the sub-image block of the encoded block includes: a sub-image block obtained by dividing the encoded block by using a specific division manner, and the specific division manner includes at least one division manner.
- the processor uses the motion vector of the sub-image block of the coded block and the number of pixels of the sub-image block to determine an average motion vector of the coded block, the processor is specifically configured to:
- An average motion vector is determined according to the first cumulative value and the second cumulative value of each sub-image block.
- the processor uses the average motion vector of each coded block to determine the target motion vector of the block to be coded
- the processor is specifically configured to: use the average motion vector of each coded block to obtain an average value of the motion vector; The average value is determined as a target motion vector of the block to be encoded.
- an embodiment of the present invention further provides a machine-readable storage medium.
- the machine-readable storage medium stores computer instructions.
- the foregoing embodiments are implemented. Motion vector determination method.
- the system, device, module or unit explained in the above embodiments may be implemented by a computer chip or entity, or by a product having a certain function.
- a typical implementation device is a computer, and the specific form of the computer may be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email sending and receiving device, and a game control Desk, tablet computer, wearable device, or a combination of any of these devices.
- the embodiments of the present invention may be provided as a method, a system, or a computer program product. Therefore, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- these computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured article including an instruction device,
- the instruction device implements the functions specified in a flowchart or a plurality of processes and / or a block or a plurality of blocks in the block diagram.
- These computer program instructions can also be loaded into a computer or other programmable data processing device, so that a series of operating steps are performed on the computer or other programmable device to produce a computer-implemented process, and the instructions executed on the computer or other programmable device Provides steps for implementing the functions specified in one or more flowcharts and / or one or more blocks of the block diagrams.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé et un dispositif de détermination d'un vecteur de mouvement et un support d'informations lisible par machine. Le procédé consiste à : déterminer un vecteur de mouvement candidat conformément à un vecteur de mouvement d'un bloc codé (101) ; acquérir un paramètre d'évaluation du vecteur de mouvement candidat et un paramètre d'évaluation d'un vecteur de mouvement global qui est entré de manière externe (102) ; si le paramètre d'évaluation du vecteur de mouvement candidat est meilleur que le paramètre d'évaluation du vecteur de mouvement global, déterminer le vecteur de mouvement candidat en tant que vecteur de mouvement cible d'un bloc à coder (103) ; et si le paramètre d'évaluation du vecteur de mouvement global est meilleur que le paramètre d'évaluation du vecteur de mouvement candidat, déterminer le vecteur de mouvement global en tant que vecteur de mouvement cible du bloc à coder (104). L'invention permet de réduire des intervalles de recherche et le nombre de recherches exécutées, d'augmenter la précision de recherche de mouvement, d'augmenter l'efficacité de recherche, de diminuer la consommation de ressources de recherche, d'augmenter l'efficacité de codage et d'améliorer la qualité de codage.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201880038850.7A CN110859057A (zh) | 2018-06-29 | 2018-06-29 | 运动矢量确定方法、设备及机器可读存储介质 |
PCT/CN2018/093850 WO2020000444A1 (fr) | 2018-06-29 | 2018-06-29 | Procédé et dispositif de détermination de vecteur de mouvement et support d'informations lisible par machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/093850 WO2020000444A1 (fr) | 2018-06-29 | 2018-06-29 | Procédé et dispositif de détermination de vecteur de mouvement et support d'informations lisible par machine |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020000444A1 true WO2020000444A1 (fr) | 2020-01-02 |
Family
ID=68985732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/093850 WO2020000444A1 (fr) | 2018-06-29 | 2018-06-29 | Procédé et dispositif de détermination de vecteur de mouvement et support d'informations lisible par machine |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110859057A (fr) |
WO (1) | WO2020000444A1 (fr) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698517B (zh) * | 2020-06-29 | 2022-07-12 | Oppo广东移动通信有限公司 | 运动矢量的确定方法、装置、电子设备和可读存储介质 |
CN111711823B (zh) * | 2020-06-30 | 2022-11-15 | Oppo广东移动通信有限公司 | 运动矢量处理方法和装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1440203A (zh) * | 2002-02-23 | 2003-09-03 | 三星电子株式会社 | 自适应运动估计装置和方法 |
CN101005620A (zh) * | 2004-09-03 | 2007-07-25 | 微软公司 | 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新 |
CN106688232A (zh) * | 2014-09-11 | 2017-05-17 | 欧几里得发现有限责任公司 | 基于模型的视频编码的感知优化 |
CN107483953A (zh) * | 2017-10-10 | 2017-12-15 | 司马大大(北京)智能系统有限公司 | 帧间运动估计方法、装置及电子设备 |
CN107852495A (zh) * | 2015-09-21 | 2018-03-27 | 谷歌有限责任公司 | 低时延两次视频代码化 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101356735B1 (ko) * | 2007-01-03 | 2014-02-03 | 삼성전자주식회사 | 전역 움직임 벡터를 사용해서 움직임 벡터를 추정하기 위한방법, 장치, 인코더, 디코더 및 복호화 방법 |
JP4506875B2 (ja) * | 2008-05-19 | 2010-07-21 | ソニー株式会社 | 画像処理装置および画像処理方法 |
CN102611881B (zh) * | 2011-01-19 | 2014-06-25 | 华为技术有限公司 | 参考运动矢量获取方法、模块及编、解码装置 |
CN106060555A (zh) * | 2016-06-29 | 2016-10-26 | 东华大学 | 一种基于多核处理器的编码器 |
CN108134939B (zh) * | 2016-12-01 | 2020-08-07 | 北京金山云网络技术有限公司 | 一种运动估计方法及装置 |
-
2018
- 2018-06-29 WO PCT/CN2018/093850 patent/WO2020000444A1/fr active Application Filing
- 2018-06-29 CN CN201880038850.7A patent/CN110859057A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1440203A (zh) * | 2002-02-23 | 2003-09-03 | 三星电子株式会社 | 自适应运动估计装置和方法 |
CN101005620A (zh) * | 2004-09-03 | 2007-07-25 | 微软公司 | 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新 |
CN106688232A (zh) * | 2014-09-11 | 2017-05-17 | 欧几里得发现有限责任公司 | 基于模型的视频编码的感知优化 |
CN107852495A (zh) * | 2015-09-21 | 2018-03-27 | 谷歌有限责任公司 | 低时延两次视频代码化 |
CN107483953A (zh) * | 2017-10-10 | 2017-12-15 | 司马大大(北京)智能系统有限公司 | 帧间运动估计方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110859057A (zh) | 2020-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11202077B2 (en) | Motion vector prediction method and device | |
US20230131933A1 (en) | Method and apparatus for candidate list pruning | |
US10097826B2 (en) | Method and device for generating a predicted value of an image using interpolation and motion vectors | |
EP3068137B1 (fr) | Procédé et dispositif de traitement d'images | |
US10341679B2 (en) | Encoding system using motion estimation and encoding method using motion estimation | |
US20170085906A1 (en) | Method of Motion Information Coding | |
WO2019072049A1 (fr) | Procédé de prédiction inter-trame, dispositif et support de stockage | |
WO2020000444A1 (fr) | Procédé et dispositif de détermination de vecteur de mouvement et support d'informations lisible par machine | |
WO2020253730A1 (fr) | Procédé et appareil de codage et de décodage, et dispositif associé | |
JP4488805B2 (ja) | 動きベクトル検出装置および方法 | |
CN112449180B (zh) | 一种编解码方法、装置及其设备 | |
CN110427816B (zh) | 物体检测方法、装置、计算机设备和存储介质 | |
WO2021056205A1 (fr) | Procédé et dispositif de traitement vidéo, et support de stockage | |
Jubran et al. | Sequence-level reference frames in video coding | |
US20100239017A1 (en) | Motion estimator and a motion estimation method | |
CN116760986B (zh) | 候选运动矢量生成方法、装置、计算机设备和存储介质 | |
JP6028665B2 (ja) | 画像対応付け装置および画像対応付け方法 | |
CN110365987B (zh) | 一种运动矢量确定方法、装置及其设备 | |
JP2019530299A (ja) | 画像コーディング/デコーディング方法、装置及び画像処理機器 | |
KR101263136B1 (ko) | 다중코어기반 움직임 벡터 공유를 이용한 움직임 추정 방법 및 장치 | |
CN115529459A (zh) | 中心点搜索方法、装置、计算机设备、存储介质 | |
JP2007336259A (ja) | 画像符号化装置および方法 | |
CN112073734A (zh) | 一种编解码方法、装置及其设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18924120 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18924120 Country of ref document: EP Kind code of ref document: A1 |