CN114449294A - Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product - Google Patents

Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product Download PDF

Info

Publication number
CN114449294A
CN114449294A CN202210137016.1A CN202210137016A CN114449294A CN 114449294 A CN114449294 A CN 114449294A CN 202210137016 A CN202210137016 A CN 202210137016A CN 114449294 A CN114449294 A CN 114449294A
Authority
CN
China
Prior art keywords
search point
point
search
searching
distortion value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210137016.1A
Other languages
Chinese (zh)
Inventor
黄海鸥
胡小江
梁丕树
李江城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Aixiesheng Technology Co Ltd
Original Assignee
Shenzhen Aixiesheng Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Aixiesheng Technology Co Ltd filed Critical Shenzhen Aixiesheng Technology Co Ltd
Priority to CN202210137016.1A priority Critical patent/CN114449294A/en
Publication of CN114449294A publication Critical patent/CN114449294A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria

Abstract

The present application relates to a motion estimation method, apparatus, computer device, storage medium and computer program product. The method comprises the following steps: acquiring a coding subblock and an initial search point in a current coding block; taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point; determining a preset number of second search points according to the distortion value of the first search point from small to large; taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step size is smaller than the first step size; and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block. According to the motion estimation method and device, the number of search points from more to less is searched, the number of search position points for motion estimation of the coding subblocks is reduced to a great extent, therefore, the motion estimation calculation complexity of the coding subblocks is reduced, and the search speed is improved.

Description

Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product
Technical Field
The present application relates to the field of video compression technologies, and in particular, to a motion estimation method, apparatus, computer device, storage medium, and computer program product.
Background
With the rapid development of applications such as mobile internet, cloud media, virtual/augmented reality (VR/AR), and the like, and the continuous improvement of video display resolution/dynamic range, various display terminals have made higher demands on data transmission bandwidth of a display link. To alleviate the contradiction between the physical bandwidth increase and the actual demand of the Display link, the Video Electronics Standards Association (VESA) issued in 2014 a new Display Stream Compression (DSC) standard, which is a lightweight, low-cost, and visually lossless image coding standard suitable for the Display link. In 2019, VESA introduced the latest VESDISPLAY Compression-M, VDC-M for mobile devices. VDC-M may be considered an upgraded version of DSC, capable of boosting compression ratios from 2:1 or 3:1 to 4:1 or 5: 1.
In order to implement low-cost, visually lossless and efficient video compression in a display link, a plurality of advanced compression coding tools such as Block Prediction (BP) are adopted in VDC-M, and an exhaustive search strategy is usually adopted in the conventional technology, that is, an optimal search position is searched from all search points, which can effectively improve the efficiency of compression coding, but results in higher computational complexity.
Disclosure of Invention
In view of the above, it is necessary to provide a motion estimation method, apparatus, computer device, computer readable storage medium and computer program product capable of reducing the computational complexity.
In a first aspect, the present application provides a motion estimation method. The method comprises the following steps:
acquiring a coding subblock and an initial search point in a current coding block;
taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point;
determining a preset number of second search points according to the distortion value of the first search point from small to large;
taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step size is smaller than the first step size;
and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block.
In one embodiment, the determining the target search point according to the distortion value of the third search point includes:
taking the third search point with the minimum distortion value as a candidate search point;
searching a left position point and a right position point of the candidate search point by taking the candidate search point as a center and adopting a third step length as an interval; the third step length is smaller than the second step length;
and selecting the position point with the minimum distortion value in the left position point and the right position point of the candidate search point as a target search point.
In one embodiment, the preset number is at least 2.
In one embodiment, the preset number is 1, and the performing a search by using a second step length with each second search point as a center to obtain a third search point includes:
searching a left position point and a right position point of the second search point by taking the second search point as a center and adopting a second step length as an interval to obtain two third search points;
the determining a target search point according to the distortion value of the third search point includes:
and selecting a third search point with a small distortion value from the two third search points as a target search point.
In one embodiment, the second step size is one-half of the first step size.
In one embodiment, the calculation of the distortion value of the search point includes:
calculating the difference value of each pixel in the coding sub-block and the same color component corresponding to the search point;
summing the absolute values of the difference values of the same color component to obtain a middle numerical value of the color component;
and summing the intermediate numerical values corresponding to the color components to obtain the distortion value corresponding to the search point.
In a second aspect, the present application further provides a motion estimation apparatus. The device comprises:
the acquisition module is used for acquiring the coding subblocks and the initial search points in the current coding block;
the first searching module is used for searching by taking the initial searching point as a center and adopting a first step length to obtain a first searching point;
the first determining module is used for determining a preset number of second search points from small to large according to the distortion value of the first search point;
the second searching module is used for searching by adopting a second step length by taking each second searching point as a center to obtain a third searching point; the second step size is smaller than the first step size;
and a second determining module, configured to determine a target search point according to the distortion value of the third search point, where the target search point is used to calculate a vector with the encoding sub-block.
In a third aspect, the present application also provides a computer device. The computer device comprises a memory storing a computer program and a processor implementing the following steps when executing the computer program:
acquiring a coding subblock and an initial search point in a current coding block;
taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point;
determining a preset number of second search points according to the distortion value of the first search point from small to large;
taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step size is smaller than the first step size;
and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block.
In a fourth aspect, the present application further provides a computer-readable storage medium. The computer storage medium having stored thereon a computer program which, when executed by a processor, performs the steps of:
acquiring a coding subblock and an initial search point in a current coding block;
taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point;
determining a preset number of second search points according to the distortion value of the first search point from small to large;
taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step size is smaller than the first step size;
and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block.
In a fifth aspect, the present application further provides a computer program product. The computer program product comprising a computer program which when executed by a processor performs the steps of:
acquiring a coding subblock and an initial search point in a current coding block;
taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point;
determining a preset number of second search points according to the distortion value of the first search point from small to large;
taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step size is smaller than the first step size;
and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block.
According to the motion estimation method, the motion estimation device, the computer equipment, the storage medium and the computer program product, the coding subblock and the initial search point in the current coding block are obtained; taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point; determining a preset number of second search points according to the distortion value of the first search point from small to large; taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step size is smaller than the first step size; and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block. According to the motion estimation method and device, the number of search points from more to less is searched, the number of search position points for motion estimation of the coding subblocks is reduced to a great extent, therefore, the motion estimation calculation complexity of the coding subblocks is reduced, and the search speed is improved.
Drawings
FIG. 1 is a diagram of an embodiment of a motion estimation method;
FIG. 2 is a flow diagram of a motion estimation method in one embodiment;
FIG. 3 is a diagram illustrating a search point full search in VDC-M motion estimation;
FIG. 4 is a flowchart of step 210 in one embodiment;
FIG. 5 is a flowchart illustrating a method for computing a distortion value for a search point according to an embodiment;
FIG. 6 is a flow chart illustrating a motion estimation method in another embodiment;
FIG. 7 is a block diagram showing the structure of a motion estimation device according to an embodiment;
FIG. 8 is a diagram illustrating an internal structure of a computer device according to an embodiment.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the present application is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the present application and are not intended to limit the present application.
The motion estimation method provided by the embodiment of the application can be applied to the application environment shown in fig. 1. Wherein the terminal 102 communicates with the server 104 via a network. The data storage system may store data that the server 104 needs to process. The data storage system may be integrated on the server 104, or may be located on the cloud or other network server. The terminal 102 receives the video or the picture, sends the video or the picture to the server, and the server selects a preset coding block from each frame of picture or picture in the video and acquires a coding sub-block and an initial search point in a current coding block; determining a preset number of second search points according to the distortion value of the first search point from small to large; taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step length is smaller than the first step length; and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block.
The terminal 102 may be, but not limited to, various personal computers, notebook computers, smart phones, tablet computers, internet of things devices and portable wearable devices, and the internet of things devices may be smart speakers, smart televisions, smart air conditioners, smart car-mounted devices, and the like. The portable wearable device can be a smart watch, a smart bracelet, a head-mounted device, and the like. The server 104 may be implemented as a stand-alone server or as a server cluster comprised of multiple servers.
It can be understood that the motion estimation method provided in the embodiment of the present application may also be applied to an application scenario of a separate terminal or a separate server.
Motion estimation is a widely used technique in video coding, and since there is a lot of information redundancy between original images of video, it is necessary to adopt motion estimation and motion compensation techniques to eliminate the redundancy of video signals to improve coding efficiency. Motion estimation refers to calculating motion vectors between a current frame and a reference frame in a compression coding process. The motion compensation is to recover the next frame according to the motion vector and the current frame in the decoding process. In the inter-frame prediction coding, there is a certain correlation between scenes in adjacent frames of moving pictures. Therefore, the moving image can be divided into a plurality of blocks or macro blocks, and the position of each block or macro block in the adjacent frame image is searched out, and the relative offset of the spatial position between the two is obtained, the obtained relative offset is commonly referred to as a motion vector, and the process of obtaining the motion vector is called motion estimation.
VESA developed a new display interface Compression standard for mobile/smart phone displays called VESA mobile device display codec (VDC-M). As a new display compression standard, VDC-M aims at higher compression ratios than Display Stream Compression (DSC) while still maintaining visually lossless quality, but at the cost of increased complexity. VDC-M is a fixed rate display stream codec, has a fixed bit rate, and can support a compression ratio as low as 6 bits/pixel for RGB 4:4:4 sources. VDC-M is a block-based codec with a block size of 8x2 pixels.
In order to achieve low-cost, visually lossless and efficient video compression in a display link, many advanced compression coding tools such as Block Prediction (BP) are used in VDC-M, which divides a coding Block into 2x2 and 2x1 coding sub-blocks, for example, an 8x2 coding Block can be divided into 4 2x2 or 8 2x1 coding sub-blocks, each 2x2 or 2x1 coding sub-Block needs 64-position motion estimation at adjacent coded pixel positions of the current coding Block, and an optimal position is selected as an optimal Prediction position of the coding sub-Block, thereby removing spatial information redundancy. In the process of motion estimation of each 2x2 or 2x1 encoded subblock, in order to obtain the optimal prediction of the encoded subblock, it is required to calculate distortion values of 64 position points, and then select a position point with the minimum distortion value as an optimal search position point. The exhaustive search strategy can effectively improve the efficiency of compression coding, but also brings considerable computational complexity. It both severely hampers the real-time transmission of display stream compression and increases the power consumption of its hardware circuitry.
In one embodiment, as shown in fig. 2, a motion estimation method is provided, which is described by taking the method as an example applied to the server or the terminal in fig. 1, and includes the following steps:
step 202, obtaining the coding sub-block and the initial search point in the current coding block.
For any frame of picture in a video, the frame of picture may be divided into a plurality of coding blocks, each coding block being divided into a plurality of coding sub-blocks. Each coding block can be equally divided into a plurality of coding sub-blocks with the same size, and can also be divided into a plurality of coding sub-blocks with different sizes. For example, for a VDC-M encoder with a coding block size of 8x2 pixels, a coding block may be divided into 4 coding sub-blocks of 2x2 or 8 coding sub-blocks of 2x 1. When the motion estimation is carried out, the coding blocks are used as the unit for searching, namely when one coding block is searched to obtain a corresponding optimal searching position, the next coding block is searched. And acquiring the coding block which is currently performing motion estimation as a current coding block.
In this embodiment, the starting search point is determined according to the position of the coding block, and may also be determined according to the position of the coding sub-block in the coding block. When motion estimation is performed, an initial search point can be determined for one coding block, that is, the initial search points corresponding to all coding sub-blocks in the coding block are the same; different starting search points may also be determined for different coded sub-blocks in a coded block. In a possible implementation manner, a preset number of position points closest to the encoding block may be selected as search points to be selected, a distortion value between the search points to be selected and the encoding subblocks is calculated, and the search point to be selected corresponding to the minimum distortion value is selected as an initial search point corresponding to the encoding subblock, that is, each encoding subblock corresponds to one initial search point. In the embodiment, a corresponding initial search point is selected for each coding subblock, so that the accuracy of selecting the initial search point can be improved, and the accuracy of motion estimation can be further improved. In another possible implementation manner, a preset number of position points closest to the encoding block may be selected as search points to be selected, a distortion value between each search point to be selected and the encoding block is calculated, and the search point to be selected corresponding to the minimum distortion value is selected as an initial search point, that is, all encoding subblocks in the encoding block correspond to the same initial search point. In the embodiment, each coding sub-block in the same coding block corresponds to the same initial search point, so that the calculation complexity can be reduced.
And step 204, taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point.
In this embodiment, the server may search using the first step length with the initial search point as the center to obtain the first search points, where the number of the first search points is at least 1. Wherein the search direction includes at least one of a horizontal search, a vertical search, a diagonal search, and the like. For example, in a fast motion estimation full search of VDC-M, as shown in fig. 3, the starting search point (0 pixel position in the figure) searches horizontally for 32 points from above the coding block and the left searches horizontally for 32 points. The first step size can be set according to the requirement, wherein the first step size is greater than 0 and less than the maximum searchable points minus 1, for example, if 64 points can be searched at most in VDC-M motion estimation, the first step size N is greater than 0 and less than 63. The search is performed with a first step size, which can be understood as a search point separated from the initial search point by a length of the first step size.
Step 206, determining a preset number of second search points according to the distortion value of the first search point from small to large.
And calculating a distortion value between the first search point and the current coding sub-block, and determining a preset number of second search points according to the distortion value from small to large. The preset number can be set according to the maximum searchable points, and generally, the larger the maximum searchable points are, the larger the preset number can be set. For example, the preset number may be 3 for VDC-M motion estimation with a maximum searchable points of 64. The distortion value is used for representing the similarity between the first search point and the coding sub-block, and the smaller the distortion value is, the greater the similarity between the corresponding first search point and the coding sub-block is, that is, the first search point is more likely to be the best search point as the starting search point of the next search or the calculation reference of the motion vector.
Step 208, taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; wherein the second step size is smaller than the first step size.
In this embodiment, each second search point is used as a center, and a second step length is used for searching, the search direction is not limited, and a third search point is obtained, where the second step length is smaller than the first step length. Specifically, the second step size may be 1/2, 1/3, 1/4, 1/5, 1/6, etc. lengths of the first step size.
And step 210, determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block.
And calculating a distortion value between the third search point and the corresponding coding sub-block, and determining a target search point according to the distortion value. In an optional embodiment, the third search point with the smallest distortion value is used as a target search point, the target search point is used for calculating a vector between the encoded sub-blocks, the target search point is the optimal search point, and the vector between the target search point and the encoded sub-blocks is used as a motion vector. When decoding is carried out, the corresponding original coded block data can be obtained according to the motion vector and the known coded block.
The motion estimation method comprises the steps of obtaining a coding subblock and an initial search point in a current coding block; taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point; determining a preset number of second search points according to the distortion value of the first search point from small to large; taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step length is smaller than the first step length; and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating and encoding the vector between the target search point and the sub-block. According to the embodiment of the application, the number of the searching positions for motion estimation of the coding subblocks is reduced to a great extent by searching from a plurality of searching points, so that the motion estimation calculation complexity of the coding subblocks is reduced, and the searching speed is improved.
In one embodiment, as shown in fig. 4, the determining the target search point according to the distortion value of the third search point in step 210 includes:
and step 402, taking the third search point with the minimum distortion value as a candidate search point.
Step 404, taking the candidate search point as a center, and adopting a third step length as an interval to search a left position point and a right position point of the candidate search point; wherein the third step length is smaller than the second step length.
Step 406, selecting a position point with the minimum distortion value from the left and right position points of the candidate search point as a target search point.
In this embodiment, a third search point with the minimum distortion value is used as a candidate search point, the candidate search point is used as a center, a third step length is used as an interval to search two left and right position points of the candidate search point, and a position point with the minimum distortion value in the two left and right position points of the candidate search point is selected as a target search point. Wherein the third step length is smaller than the second step length. For example, if the third step size is 1 pixel, the left and right two position points are transversely searched at an interval of 1 pixel with the candidate search point as the center, and the position point with the minimum distortion value in the two position points is selected as the target search point.
In one embodiment, a starting search point is used as a center, a first step length is adopted for searching to obtain a first search point, and a preset number of second search points is determined according to a distortion value of the first search point from small to large, wherein the preset number is at least 2. And taking each second search point as a center, searching by adopting a second step length to obtain a third search point, taking the third search point with the minimum distortion value as a candidate search point, taking the candidate search point as the center, searching the left position and the right position of the candidate search point by adopting the third step length as an interval, and selecting the position point with the minimum distortion value in the left position and the right position of the candidate search point as a target search point.
In one embodiment, the preset number is 1, and the step 208 searches by using the second step length with each second search point as a center to obtain a third search point, including:
searching a left position point and a right position point of the second search point by taking the second search point as a center and adopting a second step length as an interval to obtain two third search points;
determining a target search point according to the distortion value of the third search point, including:
and selecting a third search point with a small distortion value from the two third search points as a target search point.
In this embodiment, when the preset number is 1, that is, the first search point with the minimum distortion value is used as the second search point, the second search point is used as the center, the second step length is used as the interval to search the left and right position points of the second search point, so as to obtain two third search points, and the third search point with the minimum distortion value in the two third search points is selected as the target search point. The motion estimation method of the embodiment can realize rapid determination of the target search point, and maximally reduce the computational complexity.
In one embodiment, the second step size is one-half of the first step size. In this embodiment, after the initial search point is determined, a first step length is used to perform search to obtain a first search point, a preset number of second search points are determined from small to large according to a distortion value of the first search point, each second search point is used as a center, a second step length is used to perform search to obtain a third search point, and the second step length is half of the first step length.
In one embodiment, as shown in fig. 5, the calculation of the distortion value of the search point includes:
step 502, calculating the difference value between each pixel in the coding sub-block and the same color component of the corresponding search point.
Typically, an encoded sub-block comprises a plurality of pixels, each pixel comprising a plurality of color components. In this embodiment, the search point corresponding to the coding sub-block is the pixel at the position of the search point. For example, if RGB color components are used to represent pixels, for each pixel in the encoded sub-block, the difference between the R component of each pixel in the encoded sub-block and the corresponding search point pixel is first calculated, then the difference between the G component of each pixel in the encoded sub-block and the corresponding search point pixel is calculated, and then the difference between the B component of each pixel in the encoded sub-block and the corresponding search point pixel is calculated.
Step 504, summing the absolute values of the differences of the same color component to obtain a median value of the color component.
And aiming at the same color component, summing the difference values of all pixels in the same coding sub-block and the color component of the corresponding search point pixel to obtain the intermediate numerical value of the color component.
Step 506, summing the intermediate numerical values corresponding to the color components to obtain a distortion value corresponding to the search point.
Each pixel comprises a plurality of color components, which can be characterized by R, G, B components, H, S, V components, Y, U, V components or other color components. And summing the intermediate numerical values corresponding to the color components to obtain the distortion value between the search point and the coding sub-block.
In one possible implementation, the distortion value D between an encoded subblock and a search point is calculated as follows:
Figure BDA0003504772100000101
Figure BDA0003504772100000102
wherein k ∈ {0,1,2} represents three color components corresponding to pixels in the encoded subblock;
Figure BDA0003504772100000103
representing pixel values of the encoded sub-block;
Figure BDA0003504772100000104
representing pixel values of search points corresponding to the encoded subblocks; w and h are the width and height of the encoded subblock, respectively, e.g. if it is a 2x1 encoded subblock, the width of the encoded subblock is 2 and the height is 1; i and j are respectively the abscissa and ordinate of the pixel point in the coding sub-block.
In one embodiment, as shown in fig. 6, the motion estimation method may include the steps of:
step 602, obtaining the coding sub-block and the initial search point in the current coding block.
The motion estimation searches by taking the coding block as a unit, the coding block is divided into a plurality of coding sub-blocks, the coding sub-blocks are used as a smaller unit for searching, the searching results of all the coding sub-blocks are combined to obtain the searching result of the coding block, and the searching efficiency can be improved. Specifically, the initial search point may be determined according to the current coding block, or the corresponding initial search points may be determined according to the coding sub-blocks, where one coding sub-block corresponds to one initial search point.
Step 604, taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point; wherein the first step size is N.
After the initial search point is determined, the initial search point is used as a center, and a first step size N is used for searching to obtain a plurality of first search points, wherein the step size N is greater than 0 and smaller than the maximum searchable point number minus 1, for example, in the coding process of VDC-M, the maximum searchable point number is 64, that is, the step size N is greater than 0 and smaller than 63.
Step 606, determining three second search points according to the distortion value of the first search point from small to large.
And calculating distortion values between the first search points and the corresponding coding sub-blocks, and taking the three first search points corresponding to the three minimum distortion values as second search points.
Step 608, taking each second search point as a center, searching two position points on the left and right of the second search point by a second step length to obtain a third search point; wherein the second step size is N/2.
And taking each second search point as a center, searching two position points on the left and the right of the second search point by adopting the step length N/2, and obtaining 6 third search points by the three second search points.
Step 610, selecting the third search point with the minimum distortion value as the candidate search point.
Step 612, taking the candidate search point as a center, searching the left and right position points of the candidate search point at intervals of a third step length, and selecting the position point with the minimum distortion value in the left and right position points of the candidate search point as a target search point, wherein the target search point is used for calculating a vector between the target search point and the coding subblock; wherein the third step is 1 pixel.
It should be understood that, although the steps in the flowcharts related to the embodiments as described above are sequentially displayed as indicated by arrows, the steps are not necessarily performed sequentially as indicated by the arrows. The steps are not performed in the exact order shown and described, and may be performed in other orders, unless explicitly stated otherwise. Moreover, at least a part of the steps in the flowcharts related to the embodiments described above may include multiple steps or multiple stages, which are not necessarily performed at the same time, but may be performed at different times, and the execution order of the steps or stages is not necessarily sequential, but may be rotated or alternated with other steps or at least a part of the steps or stages in other steps.
Based on the same inventive concept, the embodiment of the present application further provides a motion estimation apparatus for implementing the motion estimation method mentioned above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme described in the above method, so the specific limitations in one or more embodiments of the motion estimation device provided below can be referred to the limitations of the motion estimation method in the above, and are not described herein again.
In one embodiment, as shown in fig. 7, there is provided a motion estimation apparatus including: an obtaining module 702, a first searching module 704, a first determining module 706, a second searching module 708, and a second determining module 710, wherein:
an obtaining module 702, configured to obtain a coding subblock and an initial search point in a current coding block;
a first search module 704, configured to search with a first step length by taking the initial search point as a center, so as to obtain a first search point;
a first determining module 706, configured to determine a preset number of second search points according to the distortion value of the first search point from small to large;
a second searching module 708, configured to search with a second step length by taking each second search point as a center, to obtain a third search point; the second step size is smaller than the first step size;
a second determining module 710, configured to determine a target search point according to the distortion value of the third search point, where the target search point is used to calculate a vector with the encoded sub-block.
In one embodiment, the second determining module 710 is further configured to:
taking the third search point with the minimum distortion value as a candidate search point;
searching a left position point and a right position point of the candidate search point by taking the candidate search point as a center and adopting a third step length as an interval; the third step length is smaller than the second step length;
and selecting the position point with the minimum distortion value in the left position point and the right position point of the candidate search point as a target search point.
In an embodiment, the second searching module 708 is further configured to search, using the second step as a center, two left and right position points of the second search point by using a second step as an interval, so as to obtain two third search points;
the second determining module 710 is further configured to select a third search point with a small distortion value from the two third search points as the target search point.
In one embodiment, the motion estimation apparatus further comprises a calculation module for:
calculating the difference value of each pixel in the coding sub-block and the same color component corresponding to the search point;
summing the absolute values of the difference values of the same color component to obtain a middle numerical value of the color component;
and summing the intermediate numerical values corresponding to the color components to obtain a distortion value corresponding to the search point.
The various modules in the motion estimation apparatus described above may be implemented in whole or in part by software, hardware, and combinations thereof. The modules can be embedded in a hardware form or independent from a processor in the computer device, and can also be stored in a memory in the computer device in a software form, so that the processor can call and execute operations corresponding to the modules.
In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as shown in fig. 8. The computer device includes a processor, a memory, and a network interface connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of an operating system and computer programs in the non-volatile storage medium. The database of the computer device is used for storing distortion value data of the search point. The network interface of the computer device is used for communicating with an external terminal through a network connection. The computer program is executed by a processor to implement a motion estimation method.
Those skilled in the art will appreciate that the architecture shown in fig. 8 is merely a block diagram of some of the structures associated with the disclosed aspects and is not intended to limit the computing devices to which the disclosed aspects apply, as particular computing devices may include more or less components than those shown, or may combine certain components, or have a different arrangement of components.
In an embodiment, a computer device is provided, comprising a memory and a processor, the memory having stored therein a computer program, the processor implementing the steps in the above-described motion estimation method embodiments when executing the computer program.
In an embodiment, a computer-readable storage medium is provided, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the above-mentioned motion estimation method embodiment.
In an embodiment, a computer program product is provided, comprising a computer program which, when being executed by a processor, carries out the steps of the above-mentioned embodiment of the motion estimation method.
It will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above can be implemented by hardware instructions of a computer program, which can be stored in a non-volatile computer-readable storage medium, and when executed, can include the processes of the embodiments of the methods described above. Any reference to memory, database, or other medium used in the embodiments provided herein may include at least one of non-volatile and volatile memory. The nonvolatile Memory may include Read-Only Memory (ROM), magnetic tape, floppy disk, flash Memory, optical Memory, high-density embedded nonvolatile Memory, resistive Random Access Memory (ReRAM), Magnetic Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), Phase Change Memory (PCM), graphene Memory, and the like. Volatile Memory can include Random Access Memory (RAM), external cache Memory, and the like. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM), among others. The databases referred to in various embodiments provided herein may include at least one of relational and non-relational databases. The non-relational database may include, but is not limited to, a block chain based distributed database, and the like. The processors referred to in the embodiments provided herein may be general purpose processors, central processing units, graphics processors, digital signal processors, programmable logic devices, quantum computing based data processing logic devices, etc., without limitation.
The technical features of the above embodiments can be arbitrarily combined, and for the sake of brevity, all possible combinations of the technical features in the above embodiments are not described, but should be considered as the scope of the present specification as long as there is no contradiction between the combinations of the technical features.
The above-mentioned embodiments only express several embodiments of the present application, and the description thereof is more specific and detailed, but not construed as limiting the scope of the present application. It should be noted that, for a person skilled in the art, several variations and modifications can be made without departing from the concept of the present application, which falls within the scope of protection of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.

Claims (10)

1. A method of motion estimation, the method comprising:
acquiring a coding subblock and an initial search point in a current coding block;
taking the initial search point as a center, and searching by adopting a first step length to obtain a first search point;
determining a preset number of second search points according to the distortion value of the first search point from small to large;
taking each second search point as a center, and searching by adopting a second step length to obtain a third search point; the second step size is smaller than the first step size;
and determining a target search point according to the distortion value of the third search point, wherein the target search point is used for calculating a vector between the target search point and the coding sub-block.
2. The method of claim 1, wherein the determining a target search point according to the distortion value of the third search point comprises:
taking the third search point with the minimum distortion value as a candidate search point;
searching a left position point and a right position point of the candidate search point by taking the candidate search point as a center and adopting a third step length as an interval; the third step length is smaller than the second step length;
and selecting the position point with the minimum distortion value in the left position point and the right position point of the candidate search point as a target search point.
3. The method of claim 2, wherein the preset number is at least 2.
4. The method of claim 1, wherein the predetermined number is 1, and the searching with the second step length centered on each of the second search points to obtain a third search point comprises:
searching a left position point and a right position point of the second search point by taking the second search point as a center and adopting a second step length as an interval to obtain two third search points;
the determining a target search point according to the distortion value of the third search point includes:
and selecting a third search point with a small distortion value from the two third search points as a target search point.
5. The method of claim 1, wherein the second step size is one-half of the first step size.
6. The method of claim 1, wherein the distortion value for the search point is calculated by:
calculating the difference value of each pixel in the coding sub-block and the same color component corresponding to the search point;
summing the absolute values of the difference values of the same color component to obtain a middle numerical value of the color component;
and summing the intermediate numerical values corresponding to the color components to obtain the distortion value corresponding to the search point.
7. A motion estimation apparatus, characterized in that the apparatus comprises:
the acquisition module is used for acquiring the coding subblocks and the initial search points in the current coding block;
the first searching module is used for searching by taking the initial searching point as a center and adopting a first step length to obtain a first searching point;
the first determining module is used for determining a preset number of second search points from small to large according to the distortion value of the first search point;
the second searching module is used for searching by adopting a second step length by taking each second searching point as a center to obtain a third searching point; the second step size is smaller than the first step size;
and a second determining module, configured to determine a target search point according to the distortion value of the third search point, where the target search point is used to calculate a vector with the encoding sub-block.
8. A computer device comprising a memory and a processor, the memory storing a computer program, characterized in that the processor, when executing the computer program, implements the steps of the method of any of claims 1 to 6.
9. A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the steps of the method according to any one of claims 1 to 6.
10. A computer program product comprising a computer program, characterized in that the computer program realizes the steps of the method of any one of claims 1 to 6 when executed by a processor.
CN202210137016.1A 2022-02-15 2022-02-15 Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product Pending CN114449294A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210137016.1A CN114449294A (en) 2022-02-15 2022-02-15 Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210137016.1A CN114449294A (en) 2022-02-15 2022-02-15 Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product

Publications (1)

Publication Number Publication Date
CN114449294A true CN114449294A (en) 2022-05-06

Family

ID=81374024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210137016.1A Pending CN114449294A (en) 2022-02-15 2022-02-15 Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product

Country Status (1)

Country Link
CN (1) CN114449294A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116208775A (en) * 2023-03-03 2023-06-02 格兰菲智能科技有限公司 Motion estimation method, motion estimation device, computer equipment and hardware encoder

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116208775A (en) * 2023-03-03 2023-06-02 格兰菲智能科技有限公司 Motion estimation method, motion estimation device, computer equipment and hardware encoder

Similar Documents

Publication Publication Date Title
US11800136B2 (en) Constrained motion field estimation for hardware efficiency
US8098733B2 (en) Multi-directional motion estimation using parallel processors and pre-computed search-strategy offset tables
US8218635B2 (en) Systolic-array based systems and methods for performing block matching in motion compensation
KR101520027B1 (en) Method and apparatus for motion estimation
WO2017031671A1 (en) Motion vector field coding method and decoding method, and coding and decoding apparatuses
US20200260112A1 (en) Diversified motion using multiple global motion models
CN114449294A (en) Motion estimation method, motion estimation apparatus, motion estimation device, storage medium, and computer program product
CN116760965B (en) Panoramic video encoding method, device, computer equipment and storage medium
CN111327901B (en) Video encoding method, device, storage medium and encoding equipment
JPH0262180A (en) Compensating/predicting/encoding system for moving image
JP2007527126A (en) Image part compression method and apparatus
US20050089099A1 (en) Fast motion estimating apparatus
TWI472231B (en) Video pre-processing method and apparatus for motion estimation
CN107431821B (en) Efficient low complexity video compression
CN116506628B (en) Pixel block-based coding predictor method, coding system and coding device
US11854235B1 (en) Lossless integer compression scheme
CN116320443A (en) Video image processing method, device, computer equipment and storage medium
CN103856780A (en) Video encoding method, decoding method, encoding device and decoding device
CN108347603B (en) Moving image encoding device and moving image encoding method
CN115412727A (en) Encoding method, decoding method and device thereof
JPH04180383A (en) Motion vector searching circuit for predictive encoding between motion compensating frames
CN116582672A (en) Live video frame coding preprocessing method and device, equipment and medium thereof
JP2024516550A (en) Learning-Based Point Cloud Compression with Tearing Transform
CN117395412A (en) Lightweight lossy image coding method
CN115499666A (en) Video compression method, video decompression method, video compression device, video decompression device, and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 518101 District D and E, 7th Floor, Building 3, Tingwei Industrial Park, 6 Liufang Road, Xin'an Street, Baoan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Aixiesheng Technology Co.,Ltd.

Address before: 518101 District D and E, 7th Floor, Building 3, Tingwei Industrial Park, 6 Liufang Road, Xin'an Street, Baoan District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN AIXIESHENG TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information