Affine motion estimation circuit and method
By designing an affine motion estimation circuit, including error calculation, motion compensation, prediction block replication, gradient calculation and equation solving circuit, the problem of slow iteration of affine motion estimation in the prior art is solved, and affine motion estimation effect with fast convergence and efficient processing is achieved.
Patent Information
- Application Number
- CN202210037562.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-13
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2042-01-13
AI Technical Summary
The existing affine motion estimation method has a small displacement, a large number of iterations, and a slow convergence process, which needs to be improved urgently.
An affine motion estimation circuit is designed, including an error calculation circuit, a motion compensation circuit, a prediction block copy circuit, a gradient calculation circuit and an equation solving circuit. Through these circuits, the motion vector equation system of the prediction block is solved to obtain the affine motion estimation result.
The displacement obtained in each iteration process is large, the convergence speed is fast, the number of iterations is reduced, the processing efficiency is improved, and the storage cost in the affine motion compensation process is reduced. The obtained affine motion estimation results are highly accurate.
Smart Images

Figure CN114466198B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of video processing technology, and in particular to an affine motion estimation method. Background Art
[0002] In inter-frame prediction tools prior to AVS3 and H.266, the most important concept was the motion vector, which represents the difference between the position of the current coding unit (CU) and the best matching block on the reference frame. From this concept, it is easy to see that its motion model can only represent translational motion. For more complex motions, such as scaling and rotation, they can only be represented by dividing the coding units into multiple smaller ones, each of which is represented by a translational motion vector. However, in newer coding standards such as AVS3 and H.266 / VVC, the affine motion model was introduced to represent the motion of a coding unit as affine motion. Current affine motion estimation methods have small displacements obtained in each iteration, require a large number of iterations, and have a slow convergence process, which urgently needs to be improved. Summary of the Invention
[0003] The present application provides an affine motion estimation circuit and method. To provide a basic understanding of some aspects of the disclosed embodiments, a brief summary is provided below. This summary is not intended to be a comprehensive review, identify key or important components, or delineate the scope of these embodiments. Its sole purpose is to present some concepts in a simplified form, serving as a prelude to the detailed description that follows.
[0004] According to one aspect of an embodiment of the present application, an affine motion estimation circuit is provided, comprising an error calculation circuit and a motion compensation circuit, a prediction block copy circuit, a gradient calculation circuit, and an equation solving circuit connected in sequence;
[0005] The error calculation circuit is connected to the prediction block copy circuit and the equation solving circuit respectively;
[0006] The motion compensation circuit is used to perform motion compensation on the input image to obtain a prediction block;
[0007] The prediction block duplication circuit is used to duplicate the prediction block to obtain two prediction blocks;
[0008] The gradient calculation circuit is used to calculate the gradient of one of the two prediction blocks;
[0009] The error calculation circuit is used to calculate the pixel level error of the other one of the two prediction blocks;
[0010] The equation solving circuit is used to solve the motion vector equation group of the prediction block according to the gradient and the pixel level error to obtain an affine motion estimation result.
[0011] In some embodiments of the present application, the affine motion estimation circuit further includes two prediction block storage circuits, each of which is used to store one prediction block; one of the two prediction block storage circuits is connected to the gradient calculation circuit, and the other is connected to the error calculation circuit.
[0012] In some embodiments of the present application, the motion compensation circuit includes a motion field calculation circuit, a sub-block reassembly control circuit, four random access memories, and four sub-block interpolation circuits; the four random access memories are connected to the four sub-block interpolation circuits in a one-to-one correspondence; and the four sub-block interpolation circuits are respectively connected to the motion field calculation circuit and the sub-block reassembly control circuit;
[0013] The random access memory is used to store the reference window of the input image;
[0014] The motion field calculation circuit is used to calculate the motion vectors of the four sub-blocks of the input image and input the motion vector of one sub-block to each sub-block interpolation circuit;
[0015] The sub-block interpolation circuit is used to perform an interpolation operation on the received motion vector of the sub-block to obtain an interpolated sub-block;
[0016] The sub-block reorganization control circuit is used to reorganize the interpolated sub-blocks from the four sub-block interpolation circuits to obtain the prediction block.
[0017] In some embodiments of the present application, the motion compensation circuit further includes a prediction block storage circuit, and the prediction block storage circuit is used to store the prediction block.
[0018] In some embodiments of the present application, the gradient calculation circuit includes a gradient field recombination control circuit, a plurality of random access memories, and a plurality of Sobel operator filter circuits respectively connected to the gradient field recombination control circuit; the plurality of random access memories are connected to the plurality of Sobel operator filter circuits in a one-to-one correspondence;
[0019] The plurality of random access memories are used to divide the prediction block into a plurality of parts; each of the random access memories is used to store one of the plurality of parts;
[0020] The Sobel operator filter circuit is used to calculate the gradient of each pixel point of the part, and input the obtained gradient into the gradient field recombination control circuit;
[0021] The gradient field recombination control circuit is used to recombine the received gradients to obtain recombined gradients.
[0022] In some embodiments of the present application, the gradient calculation circuit further includes a gradient field storage circuit, and the gradient field storage circuit is used to store the reorganized gradient.
[0023] In some embodiments of the present application, the affine motion estimation circuit further includes an error block storage circuit and a gradient field storage circuit, wherein the gradient field storage circuit is respectively connected to the gradient calculation circuit and the equation solving circuit, and the gradient field storage circuit is used to store the gradient, and the error block storage circuit is respectively connected to the error calculation circuit and the equation solving circuit, and the error block storage circuit is used to store the pixel-level error.
[0024] According to another aspect of an embodiment of the present application, there is provided an affine motion estimation method, which is implemented by any of the above affine motion estimation circuits; the method comprises:
[0025] The motion compensation circuit performs motion compensation on the input image to obtain a prediction block;
[0026] The prediction block duplication circuit duplicates the prediction block to obtain two prediction blocks;
[0027] The gradient calculation circuit calculates the gradient of one of the two prediction blocks;
[0028] The error calculation circuit calculates a pixel-level error of the other of the two prediction blocks;
[0029] The equation solving circuit solves the motion vector equation group of the prediction block according to the gradient and the pixel-level error to obtain an affine motion estimation result.
[0030] In some embodiments of the present application, the input image is an image in a pre-constructed image pyramid; the method for constructing the image pyramid includes:
[0031] Downsampling the original image to obtain a first downsampled image;
[0032] downsampling the first downsampled image to obtain a second downsampled image;
[0033] The original image, the first down-sampled image, and the second down-sampled image are arranged in sequence from bottom to top to form an image pyramid.
[0034] In some embodiments of the present application, the first downsampled image is obtained by downsampling the original image at a ratio of 1:4; and the second downsampled image is obtained by downsampling the first downsampled image at a ratio of 1:4.
[0035] One aspect of the technical solution provided by the embodiments of the present application may have the following beneficial effects:
[0036] The affine motion estimation circuit provided in the embodiment of the present application has a motion compensation circuit that performs motion compensation on an input image to obtain a prediction block, a prediction block copying circuit that copies two prediction blocks, a gradient calculation circuit and an error calculation circuit that respectively calculate the gradients and pixel-level errors of the two prediction blocks, and an equation solving circuit that solves the motion vector equation group of the prediction block according to the gradients and pixel-level errors to obtain an affine motion estimation result. The displacement obtained in each iterative process is large, the convergence speed is fast, the number of iterations is reduced, the processing efficiency is improved, and the memory access cost in the affine motion compensation process is greatly reduced. The obtained affine motion estimation result is highly accurate and can well meet the needs of practical applications.
[0037] Other features and advantages of the present application will be described in the subsequent description, and some of them will become obvious from the description, or some of them can be inferred or determined without doubt from the description, or understood by implementing the embodiments of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments recorded in this application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0039] Figure 1 A schematic diagram showing an affine motion field and control points in one embodiment is shown;
[0040] Figure 2 A structural block diagram of an affine motion estimation circuit according to an embodiment is shown;
[0041] Figure 3 shows a structural block diagram of a motion compensation circuit in one embodiment;
[0042] Figure 4 shows a structural block diagram of a gradient calculation circuit in one embodiment;
[0043] Figure 5 A schematic structural diagram of an image pyramid in one embodiment is shown.
[0044] The realization of the objectives, functional features and advantages of this application will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0045] In order to make the purpose, technical solutions and advantages of this application more clearly understood, this application is further described below with reference to the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0046] It will be understood by those skilled in the art that, unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those skilled in the art in the art to which this application belongs. It should also be understood that terms such as those defined in common dictionaries should be understood to have meanings consistent with their meanings in the context of the prior art, and will not be interpreted in an idealized or overly formal sense unless specifically defined as herein.
[0047] In the affine motion model, the motion vector of a pixel at any position is determined by its position and the parameters of the affine motion model, which is expressed as follows:
[0048] mv x =ax+by+c
[0049] mv y =dx+ey+f
[0050] Among them mv x and mv y is the component of the current pixel motion vector in the x and y directions, x and y represent the position of the current pixel, and a to f are the parameters of the affine motion. Since each pixel has a different motion vector, the encoding complexity will be high. Ultimately, the sub-block level affine motion is used in the encoding, that is, a coding unit will be divided into equal-sized 4x4 sub-blocks, and all pixels in each sub-block share a motion vector, which is the affine motion vector of the pixel at the center of the current sub-block. The mapping relationship from the position of these sub-blocks with motion vectors to the motion vector is called the affine motion field (Affine Motion Field, AMF). According to the characteristics of the affine motion product, three motion vectors that are not on the same line in the affine motion field are given, and the motion vector of any position can be linearly expressed by three known motion vectors. The encoder uses the motion vectors of the lower left corner, upper left corner and upper right corner of a coding unit, that is, the control points (ControlPoint), to represent the parameters of the affine motion field, thereby expressing the affine motion field of the entire coding unit. Its representation is as follows Figure 1 shown.
[0051] Under the affine motion model, affine motion estimation (AME) can be classified as a parameter estimation problem that minimizes the distortion between the current block and the predicted block obtained according to the affine motion model. The distortion metric is a simplified rate distortion cost:
[0052] J=SATD+λR(MVD)
[0053] Where SATD is the Sum of Absolute Transformed Difference, and R(MVD) is the representation cost of the motion vector difference of several control points.
[0054] Affine motion estimation can include the following steps:
[0055] 1. Get the initial control point motion vector and
[0056] 2. Repeat steps 3-7 with i=0 to 7
[0057] 3. According to and Calculate the motion vector of each sub-block, perform motion compensation on the entire block, and obtain the predicted block
[0058] 4. Calculate the difference between the predicted block and the original fast pixel level to form an error plane
[0059] 5. Calculate the gradient of each pixel of the prediction block through the Sobel operator
[0060] 6. Calculate the three motion vector updates using the following formula:
[0061] and
[0062]
[0063] Where k = 0, 1, 2, B is the set of positions of each point in the coding unit, p is the position of one of the points, and m k (p) and m l (p) is the position coefficient of point p, which is a known function, Pic′ ref (q) is the gradient of the MV calculated at point p at the position q on the reference frame, and e(p) is the error at point p. The above is a set of three linear equations, where and Solvable.
[0064] 7. Get the next iterative control point motion vector
[0065]
[0066] 8. Output the final mv0, mv1 and mv2.
[0067] The inventors discovered that, because the theoretical basis of the equation in the above method is the validity of the Taylor expansion, the displacement obtained in each iteration is relatively small. Furthermore, assuming a WxH block for motion estimation, the affine motion compensation process requires access to 7·W·H pixels, resulting in a high memory access cost. In other embodiments of the present application, further improvements are made to the affine motion estimation method to address these shortcomings, thereby overcoming them.
[0068] like Figure 2 As shown, another embodiment of the present application provides an affine motion estimation circuit, comprising an error calculation circuit and a motion compensation circuit, a prediction block copy circuit, a gradient calculation circuit, and an equation solving circuit connected in sequence;
[0069] The error calculation circuit is connected to the prediction block copy circuit and the equation solving circuit respectively;
[0070] The motion compensation circuit is used to perform motion compensation on the input image to obtain a prediction block;
[0071] The prediction block duplication circuit is used for duplicating the prediction block to obtain two prediction blocks;
[0072] The gradient calculation circuit is used to calculate the gradient of one of the two prediction blocks to obtain the gradient;
[0073] The error calculation circuit is used to calculate the pixel-level error of the other one of the two prediction blocks;
[0074] The equation solving circuit is used to solve the motion vector equation group of the prediction block according to the gradient and pixel level error to obtain the affine motion estimation result.
[0075] In some embodiments, the affine motion estimation circuit further includes two prediction block storage circuits, each prediction block storage circuit is used to store a prediction block; one of the two prediction block storage circuits is connected to the gradient calculation circuit, and the other is connected to the error calculation circuit.
[0076] In some embodiments, the affine motion estimation circuit further includes an error block storage circuit and a gradient field storage circuit. The gradient field storage circuit is respectively connected to the gradient calculation circuit and the equation solving circuit. The gradient field storage circuit is used to store the gradient output by the gradient calculation circuit for reference by the equation solving circuit. The error block storage circuit is respectively connected to the error calculation circuit and the equation solving circuit. The error block storage circuit is used to store the pixel-level error output by the error calculation circuit for reference by the equation solving circuit.
[0077] like Figure 3 As shown, in some embodiments, the motion compensation circuit includes a motion field calculation circuit, a sub-block reassembly control circuit, four random access memories, and four sub-block interpolation circuits; the four random access memories and the four sub-block interpolation circuits are connected in a one-to-one correspondence; the four sub-block interpolation circuits are respectively connected to the motion field calculation circuit and the sub-block reassembly control circuit;
[0078] The random access memory is used to store a reference window of the input image;
[0079] The motion field calculation circuit is used to calculate the motion vectors of the four sub-blocks of the input image and input the motion vector of one sub-block to each sub-block interpolation circuit;
[0080] The sub-block interpolation circuit is used to perform an interpolation operation on the received motion vector of the sub-block to obtain an interpolated sub-block;
[0081] The sub-block reorganization control circuit is used to reorganize the interpolated sub-blocks from the four sub-block interpolation circuits to obtain a prediction block.
[0082] In some embodiments, the motion compensation circuit further includes a prediction block storage circuit, which is configured to store the prediction block.
[0083] In some embodiments, the input of the motion compensation circuit is the approximate range of reference pixels required for each iteration. A reference window with a maximum range can be calculated by taking the maximum value of the MV of the input control point and the MV of the lower right corner of the coding unit, and the reference window will be read into the circuit.
[0084] The circuit's internal structure is divided into four parallel branches. The reference window is copied into four copies and stored in four RAMs. Each branch handles motion compensation for a 4x4 sub-block. The motion vector required for motion compensation is calculated by the motion field calculation circuit using three control points (MVs).
[0085] The motion field calculation circuit calculates and outputs motion vectors for four sub-blocks at a time. Since the accuracy of affine motion vectors is 1 / 16, the position pointed by the motion vector may be the position of a sub-pixel point. Therefore, each pixel value of the predicted block needs to be obtained through interpolation.
[0086] The interpolation process involves reading and weighted averaging the actual whole pixels surrounding a sub-pixel (i.e., a non-existent pixel with fractional coordinates) to calculate the pixel value for the current sub-pixel. The sub-block interpolation circuit performs the interpolation of the 16 points within a 4x4 sub-block. The final prediction block is then written to the corresponding location in the entire prediction block storage area by the sub-block reassembly control circuit.
[0087] like Figure 4 As shown, in some embodiments, the gradient calculation circuit includes a gradient field recombination control circuit, a plurality of random access memories, and a plurality of Sobel operator filter circuits respectively connected to the gradient field recombination control circuit; the plurality of random access memories are connected to the plurality of Sobel operator filter circuits in a one-to-one correspondence;
[0088] A plurality of random access memories are used to divide the prediction block into a plurality of parts; each random access memory is used to store one of the plurality of parts;
[0089] The Sobel operator filter circuit is used to calculate the gradient of each pixel point of the part, and input the obtained gradient into the gradient field reorganization control circuit;
[0090] The gradient field recombination control circuit is used to recombine the received gradients to obtain recombined gradients.
[0091] In some embodiments, the gradient calculation circuit further includes a gradient field storage circuit, and the gradient field storage circuit is used to store the reorganized gradient.
[0092] In some implementations, the number of the multiple random access memories and the number of the multiple Sobel operator filter circuits are both 16.
[0093] In certain embodiments, the gradient calculation circuit horizontally divides each prediction block into four parts, which are stored in 16 RAMs for parallel processing. A Sobel filter circuit processes each part, while the RAM stores the predicted pixels for the previous and next rows. During each parallel processing cycle, the gradient of a pixel is calculated and output to the gradient reorganization control circuit, which writes the gradient to the corresponding location in the gradient field reorganization storage.
[0094] The affine motion estimation circuit of the embodiment of the present application has a motion compensation circuit that performs motion compensation on an input image to obtain a prediction block, a prediction block copying circuit that copies two prediction blocks, a gradient calculation circuit and an error calculation circuit that respectively calculate the gradients and pixel-level errors of the two prediction blocks, and an equation solving circuit that solves the motion vector equation group of the prediction block according to the gradients and pixel-level errors to obtain an affine motion estimation result. The displacement obtained in each iterative process is large, the convergence speed is fast, the number of iterations is reduced, the processing efficiency is improved, and the memory access cost in the affine motion compensation process is greatly reduced. The obtained affine motion estimation result is highly accurate and can well meet the needs of practical applications.
[0095] Another embodiment of the present application provides an affine motion estimation method, which is implemented by the affine motion estimation circuit of any of the above embodiments; the method includes:
[0096] The motion compensation circuit performs motion compensation on the input image to obtain a prediction block;
[0097] The prediction block duplication circuit duplicates the prediction block to obtain two prediction blocks;
[0098] The gradient calculation circuit calculates the gradient of one of the two prediction blocks to obtain a gradient;
[0099] The error calculation circuit calculates a pixel-level error of the other of the two prediction blocks;
[0100] The equation solving circuit solves the motion vector equations of the prediction block according to the gradient and pixel level error to obtain the affine motion estimation result.
[0101] The prediction block copy circuit copies the prediction block into two copies and stores them in two prediction block storage circuits respectively, so as to facilitate the parallel operation of the subsequent gradient and error calculation.
[0102] In some embodiments, the input image is an image in a pre-constructed image pyramid; the method for constructing the image pyramid includes:
[0103] Downsampling the original image to obtain a first downsampled image;
[0104] downsampling the first downsampled image to obtain a second downsampled image;
[0105] The original image, the first downsampled image, and the second downsampled image are arranged in sequence from bottom to top to form an image pyramid.
[0106] In some embodiments, the first downsampled image is obtained by downsampling the original image by 1:4; and the second downsampled image is obtained by downsampling the first downsampled image by 1:4.
[0107] For example, when the reference frame list is constructed, the image is downsampled twice. Figure 5 As shown, the second layer is the original image; the first layer is the 1:4 downsampled image; and the 0th layer is the 1:16 downsampled image. The second layer image is obtained by downsampling the first layer image at a ratio of 1:4, and the third layer image is obtained by downsampling the second layer image at a ratio of 1:4. The downsampling is performed using a Gaussian filter. The same downsampling operation is also performed on the current original frame. In the following description, and Represent the pixel values of the i-th layer reference image and the original image at position q respectively.
[0108] The steps to complete the equation solving circuit include:
[0109] Transform the coefficient matrix of the equations into an upper triangular matrix through elementary row transformations. Then, solve for each unknown step by step through the last row.
[0110] The method of this embodiment performs affine motion estimation based on the image downsampling pyramid. First, only three iterations are performed. The first iteration is performed on the reference and original image at level 0. The resulting motion vector is magnified to twice the scale of level 1. Motion estimation is then performed on level 1. The same method is then applied to level 2 for final refined motion estimation, thereby generating the final motion vectors of the three control points. Only three iterations are required in the process, and the amount of data access during motion compensation is pixels, which is only 18.75% of the original memory access amount. The above downsampling process is as follows Figure 2 shown.
[0111] Performing affine motion estimation on a three-layer image downsampling pyramid greatly reduces the complexity of the encoder, making hardware encoder design more convenient and reducing the encoding time of both software and hardware encoders. Performing affine motion estimation on a three-layer image downsampling pyramid, motion estimation is performed from coarse to fine through the image downsampling pyramid. The Taylor expansion of the coarse process is also performed on the downsampled image, so one unit of displacement represents the distance of multiple pixels on the fine image. This results in faster convergence and fewer iterations. Furthermore, the amount of memory data required to access the downsampled image is reduced according to the downsampling ratio, thereby reducing the memory access cost. This significantly reduces the complexity of the encoder, making hardware encoder design more convenient and reducing the encoding time of both software and hardware encoders.
[0112] It should be noted that:
[0113] The above-described embodiments merely represent implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present application. It should be noted that a person of ordinary skill in the art may make various modifications and improvements without departing from the spirit of the present application, and these modifications and improvements fall within the scope of protection of the present application. Therefore, the scope of protection of the present application shall be determined by the appended claims.
Claims
1. An affine motion estimation circuit, characterized in that: It includes an error calculation circuit and a motion compensation circuit, a prediction block copy circuit, a gradient calculation circuit and an equation solving circuit connected in sequence; The error calculation circuit is connected to the prediction block copy circuit and the equation solving circuit respectively; The motion compensation circuit is used to perform motion compensation on the input image to obtain a prediction block; The prediction block duplication circuit is used to duplicate the prediction block to obtain two prediction blocks; The gradient calculation circuit is used to calculate the gradient of one of the two prediction blocks; The error calculation circuit is used to calculate the pixel level error of the other one of the two prediction blocks; The equation solving circuit is used to solve the motion vector equation group of the prediction block according to the gradient and the pixel level error to obtain an affine motion estimation result; The motion compensation circuit includes a motion field calculation circuit, a sub-block reorganization control circuit, four random access memories and four sub-block interpolation circuits; the four random access memories and the four sub-block interpolation circuits are connected in a one-to-one correspondence; the four sub-block interpolation circuits are respectively connected to the motion field calculation circuit and the sub-block reorganization control circuit; The random access memory is used to store the reference window of the input image; The motion field calculation circuit is used to calculate the motion vectors of the four sub-blocks of the input image, and input a motion vector of the sub-block to each of the sub-block interpolation circuits; The sub-block interpolation circuit is used to perform an interpolation operation on the received motion vector of the sub-block to obtain an interpolated sub-block; The sub-block reorganization control circuit is used to reorganize the interpolated sub-blocks from the four sub-block interpolation circuits to obtain the prediction block.
2. The affine motion estimation circuit according to claim 1, characterized in that: The affine motion estimation circuit also includes two prediction block storage circuits, each of which is used to store one prediction block; one of the two prediction block storage circuits is connected to the gradient calculation circuit, and the other is connected to the error calculation circuit.
3. The affine motion estimation circuit according to claim 1, characterized in that: The motion compensation circuit further comprises a prediction block storage circuit, and the prediction block storage circuit is used to store the prediction block.
4. The affine motion estimation circuit according to claim 1, characterized in that: The gradient calculation circuit includes a gradient field reorganization control circuit, a plurality of random access memories, and a plurality of Sobel operator filter circuits respectively connected to the gradient field reorganization control circuit; the plurality of random access memories are connected to the plurality of Sobel operator filter circuits in a one-to-one correspondence; The plurality of random access memories are used to equally divide the prediction block into a plurality of parts; each of the random access memories is used to store one of the plurality of parts; The Sobel operator filter circuit is used to calculate the gradient of each pixel point of the part, and input the obtained gradient into the gradient field reorganization control circuit; The gradient field reorganization control circuit is used to reorganize the received gradients to obtain reorganized gradients.
5. The affine motion estimation circuit according to claim 4, characterized in that: The gradient calculation circuit also includes a gradient field storage circuit, and the gradient field storage circuit is used to store the reorganized gradient.
6. The affine motion estimation circuit according to claim 1, characterized in that: The affine motion estimation circuit also includes an error block storage circuit and a gradient field storage circuit, the gradient field storage circuit is respectively connected to the gradient calculation circuit and the equation solving circuit, the gradient field storage circuit is used to store the gradient, the error block storage circuit is respectively connected to the error calculation circuit and the equation solving circuit, the error block storage circuit is used to store the pixel level error.
7. An affine motion estimation method, characterized in that: The method is implemented by the affine motion estimation circuit described in any one of claims 1 to 6; the method comprises: The motion compensation circuit performs motion compensation on the input image to obtain a prediction block; The prediction block duplication circuit duplicates the prediction block to obtain two prediction blocks; The gradient calculation circuit calculates the gradient of one of the two prediction blocks; The error calculation circuit calculates a pixel-level error of the other of the two prediction blocks; The equation solving circuit solves the motion vector equation group of the prediction block according to the gradient and the pixel level error to obtain an affine motion estimation result.
8. The affine motion estimation method according to claim 7, characterized in that: The input image is an image in a pre-constructed image pyramid; the method for constructing the image pyramid comprises: Downsampling the original image to obtain a first downsampled image; Downsampling the first downsampled image to obtain a second downsampled image; The original image, the first down-sampled image, and the second down-sampled image are arranged in sequence from bottom to top to form an image pyramid.
9. The affine motion estimation method according to claim 8, characterized in that: The first downsampled image is obtained by downsampling the original image by 1:4; and the second downsampled image is obtained by downsampling the first downsampled image by 1:4.
Citation Information
Patent Citations
Self-adaptively selecting global motion estimation method for panoramic video coding
CN101771878A
Affine motion estimation method, device and equipment and storage medium
CN113630601A