CN110545428B - Motion estimation method and device, server and computer readable storage medium - Google Patents

Motion estimation method and device, server and computer readable storage medium Download PDF

Info

Publication number
CN110545428B
CN110545428B CN201810525322.6A CN201810525322A CN110545428B CN 110545428 B CN110545428 B CN 110545428B CN 201810525322 A CN201810525322 A CN 201810525322A CN 110545428 B CN110545428 B CN 110545428B
Authority
CN
China
Prior art keywords
sub
image
macro block
reference frame
index information
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.)
Active
Application number
CN201810525322.6A
Other languages
Chinese (zh)
Other versions
CN110545428A (en
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201810525322.6A priority Critical patent/CN110545428B/en
Publication of CN110545428A publication Critical patent/CN110545428A/en
Application granted granted Critical
Publication of CN110545428B publication Critical patent/CN110545428B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The embodiment of the invention discloses a motion estimation method and device, a server and a computer readable storage medium, which are used for providing a method for quickly searching matching blocks of macro blocks of a desktop image, and are beneficial to realizing searching of the best matching blocks in all areas in a reference frame in a short time, so that the compression effect of the desktop image is improved. The method of the embodiment of the invention comprises the following steps: acquiring a desktop image to be transmitted; cutting the desktop image according to the target size to obtain a plurality of macro blocks; searching a sub-image corresponding to a macro block of the desktop image from the cached reference frame, wherein the macro block of the desktop image and the sub-image corresponding to the macro block have the same size and hash value; and calculating the motion vector of the macro block of the desktop image according to the positions of the macro block of the desktop image and the sub-image corresponding to the macro block.

Description

Motion estimation method and device, server and computer readable storage medium
Technical Field
The present invention relates to the field of computer technologies, and in particular, to a motion estimation method and apparatus, a server, and a computer readable storage medium.
Background
Virtual desktop is based on desktop virtualization technology, and desktop virtualization relies on server virtualization, which is performed on a server of a data center to generate a large number of independent desktop operating systems, and the virtual desktop is sent to terminal equipment according to a proprietary virtual desktop protocol. The user terminal logs in the virtual host through the Ethernet, and can access the own desktop system through the network at any time and any place only by remembering the user name, the password and the gateway information. The virtual desktop infrastructure needs to transmit a large amount of virtual desktop images in real time, and under the limited bandwidth, how to cut down the transmission traffic between the server and the client becomes a key problem of the virtual desktop technology.
Because more redundant data exists in the desktop images of different frames, the desktop images can be compressed by adopting a video compression algorithm for removing redundancy, so that the transmission flow of the desktop images is reduced on the premise of ensuring the image quality. The motion estimation algorithm is one of core algorithms of video compression coding, and the high-quality motion estimation algorithm is a premise and a foundation of efficient video coding. The existing motion estimation algorithm needs to calculate and compare the motion cost of a plurality of blocks in a reference frame, and selects a block with the minimum motion cost as a matching block of the current macro block. Because higher calculation force is required to calculate and compare the motion cost, the time consumption is longer, and the reference frame selected by motion estimation often has multi-frame images, if the matching block of the current macro block is searched in the whole range of the reference frame, the calculation force consumed in the image compression process is overlarge, and the time consumption is overlong. Because of the continuity of the motion of natural objects, there is also some correlation of motion vectors in the time domain, the prior art proposes to predict the motion vector of the current frame with the motion vector of the neighboring reference frame and find a matching block in the neighborhood of the predicted motion vector.
However, unlike the motion scene of a natural object, the continuity of the object motion in the desktop image is generally poor, the correlation of the motion vector in the time domain is poor, it is difficult to find the best matching block by searching the matching block in the neighborhood of the predicted motion vector, and the existing motion estimation method can only find the matching block in a certain designated area in the reference frame, which affects the compression effect of the desktop image.
Disclosure of Invention
The embodiment of the invention provides a motion estimation method and device, a server and a computer readable storage medium, which are used for solving the problem that the existing motion estimation method can only find a matching block in a certain appointed area in a reference frame.
An aspect of an embodiment of the present invention provides a motion estimation method, including:
acquiring a desktop image to be transmitted;
cutting the desktop image according to a target size to obtain a plurality of macro blocks;
searching a sub-image corresponding to the macro block of the desktop image from the cached reference frame, wherein the macro block of the desktop image and the sub-image corresponding to the macro block of the desktop image have the same size and hash value;
and calculating the motion vector of the macro block of the desktop image according to the macro block of the desktop image and the position of the sub-image corresponding to the macro block.
Optionally, the searching the sub-graph corresponding to the macro block of the desktop image from the cached reference frame includes:
respectively calculating hash values of all macro blocks of the desktop image;
storing index information of all macro blocks of the desktop image to obtain a first index information base, wherein the index information of any target macro block of the desktop image comprises the position and hash value of the target macro block;
Sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
acquiring a first sub-graph corresponding to the sliding window currently;
calculating a hash value of the first sub-graph;
and searching the position of the first macro block which is the same as the hash value of the first sub-graph in the first index information base.
Optionally, the searching the sub-graph corresponding to the macro block of the desktop image from the cached reference frame includes:
sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
respectively calculating hash values of all sub-graphs of the reference frame;
storing index information of all sub-images of the reference frame to obtain a second index information base, wherein the index information of any target sub-image of the reference frame comprises the position and hash value of the target sub-image;
acquiring a second macro block to be processed currently in the desktop image;
calculating a hash value of the second macro block;
and searching the position of a second sub-graph which is the same as the hash value of the second macro block in the second index information base.
Optionally, calculating the hash value of the macro block of the desktop image includes:
calculating the hash value of the macro block of the desktop image by adopting a two-dimensional incremental hash algorithm;
and/or the number of the groups of groups,
calculating the hash value of the sub-graph of the reference frame includes:
and calculating the hash value of the subgraph of the reference frame by adopting a two-dimensional incremental hash algorithm.
Optionally, the calculating the motion vector of the macro block of the desktop image according to the macro block of the desktop image and the position of the sub-image corresponding to the macro block of the desktop image includes:
when any target macro block of the desktop image corresponds to a third sub-image and a fourth sub-image, respectively calculating a third motion vector of the target macro block corresponding to the third sub-image and a fourth motion vector corresponding to the fourth sub-image;
predicting the lengths of the coded code streams corresponding to the third motion vector and the fourth motion vector respectively;
and selecting a motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
A second aspect of an embodiment of the present invention provides a motion estimation apparatus, including:
the acquisition module is used for acquiring desktop images to be transmitted;
the cutting module is used for cutting the desktop image according to the target size to obtain a plurality of macro blocks;
The searching module is used for searching a sub-image corresponding to the macro block of the desktop image from the cached reference frame, wherein the macro block of the desktop image and the sub-image corresponding to the macro block of the desktop image have the same size and hash value;
and the calculating module is used for calculating the motion vector of the macro block of the desktop image according to the positions of the macro block of the desktop image and the sub-image corresponding to the macro block.
Optionally, the search module is specifically configured to:
respectively calculating hash values of all macro blocks of the desktop image;
storing index information of all macro blocks of the desktop image to obtain a first index information base, wherein the index information of any target macro block of the desktop image comprises the position and hash value of the target macro block;
sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
acquiring a first sub-graph corresponding to the sliding window currently;
calculating a hash value of the first sub-graph;
and searching the position of the first macro block which is the same as the hash value of the first sub-graph in the first index information base.
Optionally, the search module is specifically configured to:
Sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
respectively calculating hash values of all sub-graphs of the reference frame;
storing index information of all sub-images of the reference frame to obtain a second index information base, wherein the index information of any target sub-image of the reference frame comprises the position and hash value of the target sub-image;
acquiring a second macro block to be processed currently in the desktop image;
calculating a hash value of the second macro block;
and searching the position of a second sub-graph which is the same as the hash value of the second macro block in the second index information base.
Optionally, the search module is further configured to:
calculating the hash value of the macro block of the desktop image by adopting a two-dimensional incremental hash algorithm;
and/or the number of the groups of groups,
and calculating the hash value of the subgraph of the reference frame by adopting a two-dimensional incremental hash algorithm.
Optionally, when any one of the target macro blocks of the desktop image corresponds to the third sub-picture and the fourth sub-picture, the calculating module is configured to:
respectively calculating a third motion vector of the target macro block corresponding to the third sub-picture and a fourth motion vector corresponding to the fourth sub-picture;
Predicting the lengths of the coded code streams corresponding to the third motion vector and the fourth motion vector respectively;
and selecting a motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
A third aspect of embodiments of the present invention provides a server comprising a processor for implementing the steps of the method according to the first aspect or any one of the possible implementations of the first aspect when executing a computer program stored in a memory.
A fourth aspect of embodiments of the present invention provides a computer readable storage medium having stored thereon a computer program which when executed by a processor implements the steps of the method according to the first aspect or any one of the possible implementations of the first aspect.
From the above technical solutions, the embodiment of the present invention has the following advantages:
the motion estimation algorithm provided by the invention can cut the desktop image to be transmitted according to a certain fixed target size to obtain a plurality of macro blocks, so that the post-encoding is convenient, then a sub-image corresponding to the macro blocks of the desktop image can be searched from the cached reference frame, the macro blocks of the desktop image and the sub-image corresponding to the macro blocks have the same size and hash value, and the motion vector of the macro blocks of the desktop image is calculated according to the positions of the macro blocks of the desktop image and the sub-image corresponding to the macro blocks of the desktop image, so that the motion estimation is completed. The invention can quickly find the matching block by only calculating and comparing the hash value of the macro block of the desktop image and the subgraph of the reference frame, and compared with the prior art, the invention greatly reduces the calculation power and time consumed by searching the matching block, thereby realizing searching the best matching block in all areas of the reference frame and improving the compression effect of the desktop image.
Drawings
FIG. 1 is a schematic diagram of one embodiment of a motion estimation method of the present invention;
FIG. 2 is a schematic illustration of a refinement step of step 300 of FIG. 1;
FIG. 3 is a schematic diagram of another refinement step of step 300 of FIG. 1;
FIG. 4 is a schematic diagram of a refinement step of step 400 of FIG. 1;
FIG. 5 is a schematic diagram of an embodiment of a motion estimation apparatus of the present invention;
figure 6 is a schematic diagram of one embodiment of a server of the present invention.
Detailed Description
The embodiment of the invention provides a motion estimation method and device, a server and a computer readable storage medium, which are used for providing a method for quickly searching matching blocks of each macro block of a desktop image, and are beneficial to realizing searching of the best matching blocks in all areas in a reference frame in a short time, so that the compression effect of the desktop image is improved.
In order that those skilled in the art will better understand the present invention, a technical solution in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in which it is apparent that the described embodiments are only some embodiments of the present invention, not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the present invention without making any inventive effort, shall fall within the scope of the present invention.
The terms "first," "second," "third," "fourth" and the like in the description and in the claims and in the above drawings, if any, are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used may be interchanged where appropriate such that the embodiments described herein may be implemented in other sequences than those illustrated or otherwise described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
The motion estimation algorithm is one of core algorithms of video compression coding, and the high-quality motion estimation algorithm is a premise and a foundation of efficient video coding. The basic idea of motion estimation is to divide each frame of an image sequence into a plurality of macro blocks which are not overlapped with each other, consider that the displacement amount of all pixels in the macro blocks is the same, then find out the block which is most similar to the current macro block, namely the matching block, according to a certain matching criterion in a given specific searching range from each macro block to a reference frame, the relative displacement between the matching block and the current macro block is the motion vector, and the process of obtaining the motion vector is called motion estimation. When the video is compressed, the current macro block can be completely restored by only storing the motion vector and residual data. Referring to fig. 1, an embodiment of a motion estimation method according to an embodiment of the present invention includes:
100. Acquiring a desktop image to be transmitted;
the method is mainly applied to scenes for transmitting the desktop video, and common application scenes for transmitting the desktop video can comprise computer remote assistance scenes, virtual desktop scenes and the like. In a computer remote assistance scene or a virtual desktop scene, a server needs to acquire a desktop image to be transmitted in a desktop video, compress the desktop image, and then send the compressed desktop image to an access user so as to reduce transmission flow. The key of compressing the desktop image to be transmitted is to perform motion estimation on the macro block in the desktop image. In the process of motion estimation, first, a server needs to acquire a desktop image to be transmitted.
200. Cutting the desktop image according to the target size to obtain a plurality of macro blocks;
after the server acquires the desktop image to be transmitted, the desktop image a may be divided into a plurality of macro blocks a that do not overlap with each other according to a target size, so that the size of each macro block a is a target size, and the target size may be used to define the length and width of the macro block, for example, the target size may be 32×32 pixels.
300. Searching a sub-image corresponding to the macro block of the desktop image from the cached reference frame;
in the transmission scene of the desktop video, the transmitted desktop image has a certain redundancy, so that the server can buffer the transmitted desktop image as a reference frame for motion estimation. The cached reference frame may include other desktop images that have been transmitted in the desktop video in which the desktop image currently to be transmitted is located, or may include desktop images in the desktop video in which transmission has been completed, or may include other desktop images that have been transmitted in the desktop video in which the desktop image currently to be transmitted is located and desktop images in the desktop video in which transmission has been completed. After the server cuts the desktop image to be transmitted to obtain a plurality of macro blocks, the server can search sub-images corresponding to each macro block from the cached reference frame, and for any macro block in the desktop image to be transmitted, the sub-images corresponding to the macro block and the macro block have the same size and hash value.
400. And calculating the motion vector of the macro block of the desktop image according to the positions of the macro block of the desktop image and the sub-image corresponding to the macro block.
After searching the sub-image corresponding to the macro-block of the desktop image to be transmitted from the cached reference frame, the motion vector of the macro-block of the desktop image can be calculated according to the position of the macro-block of the desktop image and the position of the sub-image corresponding to the macro-block of the desktop image.
The motion estimation algorithm provided by the invention can search the sub-image corresponding to the macro block of the desktop image from the cached reference frame according to the size and the hash value, and calculate the motion vector of the macro block of the desktop image according to the macro block of the desktop image and the position of the sub-image corresponding to the macro block of the desktop image, so as to complete motion estimation. The invention can quickly find the matching block by only calculating and comparing the hash value of the macro block of the desktop image and the subgraph of the reference frame, and compared with the prior art, the invention greatly reduces the calculation power and time consumed by searching the matching block, thereby realizing searching the best matching block in all areas of the reference frame and improving the compression effect of the desktop image.
In some embodiments of the invention, please refer to fig. 2, fig. 2 is a schematic diagram illustrating one possible refinement of step 300 in the embodiment corresponding to fig. 1. Based on the above-described embodiment corresponding to fig. 1, step 300 may specifically include:
301a, respectively calculating hash values of all macro blocks of the desktop image;
After the desktop image to be transmitted is cut into a plurality of macro blocks, hash values of the macro blocks can be calculated respectively, and the hash values calculated by the hash algorithm can uniquely represent a certain image area.
Preferably, a two-dimensional delta hashing algorithm may be used to calculate the hash value of all macroblocks of the desktop image to be transmitted. The two-dimensional incremental hash algorithm is a special image hash algorithm, and after the original image is preprocessed to a certain extent, the hash value of each rectangular sub-graph of the original image can be calculated with lower time complexity. It should be noted that, in practical use, other algorithms may be used to calculate the hash values of all the macro blocks of the desktop image to be transmitted.
302a, storing index information of all macro blocks of the desktop image to obtain a first index information base;
after hash values of all macro blocks of the desktop image are calculated respectively, index information of each macro block can be obtained, and the index information of each macro block is stored to obtain a first index information base. For convenience of description, taking a macroblock in a desktop image as an example, the macroblock is any one macroblock in the desktop image to be transmitted, and the macroblock is referred to as a target macroblock, and index information of the target macroblock includes a location and a hash value of the target macroblock.
303a, sliding in the reference frame by using a sliding window of the target size;
after the first index information base is obtained, a sliding window with a target size may be used to slide in the cached reference frame, where the size of the sliding window is the same as the size of the macro block of the desktop image to be transmitted, for example, the size of the sliding window may be 32×32 pixels. Each sliding of the sliding window may result in a sub-picture in the reference frame. The different sub-images may include overlapping regions, e.g., a sliding window may be slid in the reference frame one pixel at a time. The cached reference frame may include other desktop images that have been transmitted in the desktop video in which the desktop image currently to be transmitted is located, or may include desktop images in the desktop video in which transmission has been completed, or may include other desktop images that have been transmitted in the desktop video in which the desktop image currently to be transmitted is located and desktop images in the desktop video in which transmission has been completed.
304a, acquiring a first sub-graph corresponding to the sliding window currently;
in the process that the sliding window slides in the reference frame, the server can acquire the sub-image corresponding to the sliding window currently, and for convenience of description, the sub-image corresponding to the sliding window currently is called as a first sub-image.
305a, calculating a hash value of the first sub-graph;
preferably, a two-dimensional delta hashing algorithm may be used to calculate the hash value of the first sub-graph. It should be noted that, in practical use, other algorithms may be used to calculate the hash values of all the macro blocks of the desktop image to be transmitted.
306a, searching the first index information base for the position of the first macro block which is the same as the hash value of the first sub-graph.
After calculating the hash value of the first sub-graph, the server may search the first index information base for a hash value identical to the hash value of the first sub-graph, and for convenience of description, refer to a macroblock to which the hash value belongs as a first macroblock, and refer to the first sub-graph as corresponding to the first macroblock. The location of the first macroblock may then be determined in a first index information base.
The server can search macro blocks corresponding to each sub-picture in the reference frame in the first index information base by utilizing the sliding window to traverse the cached reference frame, and determine the positions of the searched macro blocks.
In some embodiments of the present invention, please refer to fig. 3, fig. 3 is a schematic diagram illustrating another possible refinement of step 300 in the embodiment corresponding to fig. 1. Based on the above-described embodiment corresponding to fig. 1, step 300 may specifically include:
301b, sliding in the reference frame by adopting a sliding window with a target size;
the server may slide in the buffered reference frame using a sliding window of a target size, which may be the same size as the macro block of the desktop image to be transmitted, e.g., 32 x 32 pixels. Each sliding of the sliding window may result in a sub-picture in the reference frame. The different sub-images may include overlapping regions, for example, the sliding window may be slid in a serpentine fashion in the reference frame, one pixel at a time. The cached reference frame may include other desktop images that have been transmitted in the desktop video in which the desktop image currently to be transmitted is located, or may include desktop images in the desktop video in which transmission has been completed, or may include other desktop images that have been transmitted in the desktop video in which the desktop image currently to be transmitted is located and desktop images in the desktop video in which transmission has been completed.
302b, respectively calculating hash values of all sub-graphs of the reference frame;
after traversing the reference frame by adopting a sliding window with a target size, a plurality of sub-images can be obtained, and then hash values of all the sub-images in the reference frame can be calculated respectively. Preferably, a two-dimensional delta hashing algorithm may be used to calculate the hash values of all sub-graphs in the reference frame. It should be noted that, in practical use, other algorithms may be used to calculate the hash values of all the macro blocks of the desktop image to be transmitted.
303b, storing index information of all sub-graphs of the reference frame to obtain a second index information base;
after hash values of all sub-images in the reference frame are calculated respectively, index information of each sub-image can be obtained, and the index information of each sub-image is stored to obtain a second index information base. For convenience of description, taking one sub-picture in the reference frame as an example, the sub-picture is any one sub-picture in the reference frame, and the sub-picture is referred to as a target sub-picture, and index information of the target sub-picture includes a position of the target sub-picture and a hash value of the target sub-picture.
304b, acquiring a second macro block to be processed currently in the desktop image;
after the second index information base is obtained, each macro block of the desktop image to be transmitted can be traversed, and each macro block is processed respectively to determine the sub-image corresponding to the macro block. For convenience of description, the current macroblock to be processed will be referred to as a second macroblock, and the server may acquire the current second macroblock to be processed in the desktop image.
305b, calculating a hash value of the second macro block;
preferably, a two-dimensional delta hashing algorithm may be used to calculate the hash value of the second macroblock. It should be noted that, in practical use, other algorithms may be used to calculate the hash values of all the macro blocks of the desktop image to be transmitted.
306b, searching the second index information base for the position of the second sub-graph which is the same as the hash value of the second macro block.
After calculating the hash value of the second macro block, the server may search the second index information base for the hash value identical to the hash value of the second macro block, for convenience of description, refer to the sub-graph to which the hash value belongs as a second sub-graph, and refer to the second sub-graph as corresponding to the second macro block. The location of the second sub-graph may then be determined in the second index information base.
By traversing each macro block of the desktop image to be transmitted, the server may search for sub-images corresponding to each macro block in the desktop image in the second index information base, respectively, and determine the position of each sub-image searched for.
Compared with the embodiment method corresponding to fig. 2, the embodiment method corresponding to fig. 3 needs to store index information of all sub-graphs of the cached reference frames, which consumes more memory, but since the number of times of searching in the second index information base in the embodiment corresponding to fig. 3 is mainly related to the number of macro blocks in the desktop image to be transmitted, when the number of reference frames increases, the number of times of searching in the second index information base does not increase, the performance does not decrease, and therefore, the method is more suitable for the situation that the number of reference frames is larger.
According to the method of the embodiment corresponding to fig. 2 or the method of the embodiment corresponding to fig. 3, the correspondence between the sub-picture in the reference frame and the macro block of the desktop image to be transmitted may be determined, and there may be a case that one macro block corresponds to two or more sub-pictures, where in the embodiment corresponding to fig. 1, step 400 needs to select one sub-picture from the two or more sub-pictures, and calculate the motion vector of the macro block according to the selected sub-picture. Referring to fig. 4, fig. 4 is a schematic diagram illustrating a refinement step of step 400 in the embodiment corresponding to fig. 1. For convenience of description, taking a macroblock in a desktop image as an example, the macroblock is any one macroblock in the desktop image to be transmitted, and the macroblock is referred to as a target macroblock. If the target macroblock corresponds to two or more sub-pictures, taking the example that the target macroblock corresponds to the third sub-picture and the fourth sub-picture, based on the above embodiment corresponding to fig. 1, step 400 may specifically include:
401. respectively calculating a third motion vector of the target macro block corresponding to the third sub-picture and a fourth motion vector of the target macro block corresponding to the fourth sub-picture;
when it is determined that the target macroblock corresponds to the third sub-picture and the fourth sub-picture through step 300, the server may calculate a third motion vector of the target macroblock corresponding to the third sub-picture and a fourth motion vector of the target macroblock corresponding to the fourth sub-picture, respectively.
402. Predicting the lengths of the coded code streams corresponding to the third motion vector and the fourth motion vector respectively;
after the third motion vector and the fourth motion vector are calculated, the server may predict the length of the encoded code stream corresponding to the third motion vector and the length of the encoded code stream corresponding to the fourth motion vector, respectively. The length of the encoded code stream to which the motion vector corresponds may be predicted according to a specific encoding method to be employed, for example, in entropy encoding, different motion vectors correspond to different code stream lengths, and thus the length of the encoded code stream to which it corresponds may be predicted according to the motion vector.
403. And selecting a motion vector corresponding to the coded code stream with the shortest length as the motion vector of the target macro block.
After the coded code stream corresponding to the third motion vector and the coded code stream corresponding to the fourth motion vector are obtained, the coded code streams can be compared, and the sub-image corresponding to the coded code stream with the shortest length is selected to calculate the motion vector of the target macro block.
The method of the embodiment corresponding to fig. 4 can solve the problem that the sub-picture with the shortest length of the coded code stream is selected from the sub-pictures corresponding to one macro block to calculate the corresponding motion vector, so as to perform compression coding on the macro block, thereby being beneficial to reducing the compressed coded code stream of the desktop image.
The motion estimation method in the embodiment of the present invention is described above, and the motion estimation apparatus in the embodiment of the present invention is described below.
Referring to fig. 5, a motion estimation apparatus according to an embodiment of the invention is shown. An embodiment of a motion estimation apparatus according to an embodiment of the present invention includes:
an acquiring module 501, configured to acquire a desktop image to be transmitted;
the cutting module 502 is configured to cut the desktop image according to a target size to obtain a plurality of macro blocks;
a searching module 503, configured to search a sub-image corresponding to a macro block of the desktop image from the cached reference frame, where the macro block of the desktop image and the sub-image corresponding to the macro block have the same size and hash value;
a calculating module 504, configured to calculate a motion vector of the macroblock of the desktop image according to the macroblock of the desktop image and the position of the sub-image corresponding to the macroblock.
In some embodiments of the present invention, the lookup module 503 may be specifically configured to:
respectively calculating hash values of all macro blocks of the desktop image;
storing index information of all macro blocks of a desktop image to obtain a first index information base, wherein the index information of any target macro block of the desktop image comprises the position and hash value of the target macro block;
Sliding in the reference frame by adopting a sliding window with a target size, and obtaining a sub-graph of the reference frame by sliding the sliding window each time;
acquiring a first sub-graph corresponding to the sliding window currently;
calculating a hash value of the first sub-graph;
and searching the position of the first macro block which is the same as the hash value of the first sub-graph in the first index information base.
In some embodiments of the present invention, the searching module 503 is specifically configured to:
sliding in the reference frame by adopting a sliding window with a target size, and obtaining a sub-graph of the reference frame by sliding the sliding window each time;
respectively calculating hash values of all sub-graphs of the reference frame;
storing index information of all sub-images of the reference frame to obtain a second index information base, wherein the index information of any target sub-image of the reference frame comprises the position and hash value of the target sub-image;
acquiring a second macro block to be processed currently in a desktop image;
calculating a hash value of the second macro block;
and searching the position of a second sub-graph which is the same as the hash value of the second macro block in a second index information base.
In some embodiments of the present invention, the lookup module 503 may be specifically configured to:
calculating the hash value of the macro block of the desktop image by adopting a two-dimensional incremental hash algorithm;
And/or the number of the groups of groups,
a two-dimensional delta hashing algorithm is used to calculate the hash value of the subgraph of the reference frame.
In some embodiments of the present invention, when any one of the target macro blocks of the desktop image corresponds to the third sub-picture and the fourth sub-picture, the calculation module 504 may be configured to:
respectively calculating a third motion vector of the target macro block corresponding to the third sub-picture and a fourth motion vector of the target macro block corresponding to the fourth sub-picture;
predicting the lengths of the coded code streams corresponding to the third motion vector and the fourth motion vector respectively;
and selecting a motion vector corresponding to the shortest coding code stream as a motion vector of the target macro block.
The motion estimation apparatus in the embodiment of the present invention is described above from the viewpoint of a modularized functional entity, and the server in the embodiment of the present invention is described below from the viewpoint of hardware processing:
referring to fig. 6, in one embodiment of the present invention, the server 6 includes:
a processor 601 and a memory 602;
the memory 602 is used for storing a computer program, and the processor 601 is used for executing the computer program stored in the memory 602, and the following steps can be implemented:
acquiring a desktop image to be transmitted;
cutting the desktop image according to the target size to obtain a plurality of macro blocks;
Searching a sub-image corresponding to a macro block of the desktop image from the cached reference frame, wherein the macro block of the desktop image and the sub-image corresponding to the macro block have the same size and hash value;
and calculating the motion vector of the macro block of the desktop image according to the positions of the macro block of the desktop image and the sub-image corresponding to the macro block.
In some embodiments of the present invention, when the processor 601 executes the computer program stored in the memory 602 to implement the step of searching for a sub-picture corresponding to a macroblock of a desktop image from a cached reference frame, the following steps may be implemented in detail:
respectively calculating hash values of all macro blocks of the desktop image;
storing index information of all macro blocks of a desktop image to obtain a first index information base, wherein the index information of any target macro block of the desktop image comprises the position and hash value of the target macro block;
sliding in the reference frame by adopting a sliding window with a target size, and obtaining a sub-graph of the reference frame by sliding the sliding window each time;
acquiring a first sub-graph corresponding to the sliding window currently;
calculating a hash value of the first sub-graph;
and searching the position of the first macro block which is the same as the hash value of the first sub-graph in the first index information base.
In some embodiments of the present invention, when the processor 601 executes the computer program stored in the memory 602 to implement the step of searching for a sub-picture corresponding to a macroblock of a desktop image from a cached reference frame, the following steps may be implemented in detail:
sliding in the reference frame by adopting a sliding window with a target size, and obtaining a sub-graph of the reference frame by sliding the sliding window each time;
respectively calculating hash values of all sub-graphs of the reference frame;
storing index information of all sub-images of the reference frame to obtain a second index information base, wherein the index information of any target sub-image of the reference frame comprises the position and hash value of the target sub-image;
acquiring a second macro block to be processed currently in a desktop image;
calculating a hash value of the second macro block;
and searching the position of a second sub-graph which is the same as the hash value of the second macro block in a second index information base.
In some embodiments of the present invention, when the processor 601 executes the computer program stored in the memory 602 to implement the step of searching for a sub-picture corresponding to a macroblock of a desktop image from a cached reference frame, the following steps may be implemented in detail:
calculating the hash value of the macro block of the desktop image by adopting a two-dimensional incremental hash algorithm;
And/or the number of the groups of groups,
a two-dimensional delta hashing algorithm is used to calculate the hash value of the subgraph of the reference frame.
In some embodiments of the present invention, when the processor 601 executes the computer program stored in the memory 602 to implement the step of calculating the motion vector of the macro block of the desktop image according to the positions of the macro block of the desktop image and the sub-image corresponding thereto, the following steps may be specifically implemented:
when any target macro block of the desktop image corresponds to the third sub-image and the fourth sub-image, respectively calculating a third motion vector of the target macro block corresponding to the third sub-image and a fourth motion vector corresponding to the fourth sub-image;
predicting the lengths of the coded code streams corresponding to the third motion vector and the fourth motion vector respectively;
and selecting a motion vector corresponding to the shortest coding code stream as a motion vector of the target macro block.
It will be appreciated that when the processor in the above-described computer apparatus executes the computer program, the functions of each unit in the corresponding embodiments of the apparatus may also be implemented, which is not described herein. The computer program may be divided into one or more modules/units, which are stored in the memory and executed by the processor to accomplish the present invention, for example. The one or more modules/units may be a series of computer program instruction segments capable of performing specific functions for describing the execution of the computer program in the charging current control device. For example, the computer program may be divided into units in the above-described charging current control device, and each unit may implement a specific function as described in the above-described corresponding charging current control device.
The server may include, but is not limited to, a processor, memory. It will be appreciated by those skilled in the art that the processor, memory, etc. are merely examples of computer apparatus and are not limiting of computer apparatus, and may include more or fewer components, or may combine certain components, or different components, e.g., the computer apparatus may also include input and output devices, network access devices, buses, etc.
The processor may be a central processing unit (Central Processing Unit, CPU), but may also be other general purpose processors, digital signal processors (Digital Signal Processor, DSP), application specific integrated circuits (Application Specific Integrated Circuit, ASIC), off-the-shelf Programmable gate arrays (FPGA) or other Programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or the like. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like that is a control center of the computer device, connecting various parts of the overall computer device using various interfaces and lines.
The memory may be used to store the computer program and/or modules, and the processor may implement various functions of the computer device by running or executing the computer program and/or modules stored in the memory, and invoking data stored in the memory. The memory may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required for at least one function, and the like; the storage data area may store data created according to the use of the terminal, etc. In addition, the memory may include high-speed random access memory, and may also include non-volatile memory, such as a hard disk, memory, plug-in hard disk, smart Media Card (SMC), secure Digital (SD) Card, flash Card (Flash Card), at least one disk storage device, flash memory device, or other volatile solid-state storage device.
The present invention also provides a computer readable storage medium having a computer program stored thereon, which when executed by a processor, performs the steps of:
acquiring a desktop image to be transmitted;
cutting the desktop image according to the target size to obtain a plurality of macro blocks;
searching a sub-image corresponding to a macro block of the desktop image from the cached reference frame, wherein the macro block of the desktop image and the sub-image corresponding to the macro block have the same size and hash value;
and calculating the motion vector of the macro block of the desktop image according to the positions of the macro block of the desktop image and the sub-image corresponding to the macro block.
In some embodiments of the present invention, when the computer program stored on the computer readable storage medium is executed by a processor to implement the step of searching for a sub-picture corresponding to a macro block of a desktop image from a cached reference frame, the following steps may be specifically implemented:
respectively calculating hash values of all macro blocks of the desktop image;
storing index information of all macro blocks of a desktop image to obtain a first index information base, wherein the index information of any target macro block of the desktop image comprises the position and hash value of the target macro block;
Sliding in the reference frame by adopting a sliding window with a target size, and obtaining a sub-graph of the reference frame by sliding the sliding window each time;
acquiring a first sub-graph corresponding to the sliding window currently;
calculating a hash value of the first sub-graph;
and searching the position of the first macro block which is the same as the hash value of the first sub-graph in the first index information base.
In some embodiments of the present invention, when the computer program stored on the computer readable storage medium is executed by a processor to implement the step of searching for a sub-picture corresponding to a macro block of a desktop image from a cached reference frame, the following steps may be specifically implemented:
sliding in the reference frame by adopting a sliding window with a target size, and obtaining a sub-graph of the reference frame by sliding the sliding window each time;
respectively calculating hash values of all sub-graphs of the reference frame;
storing index information of all sub-images of the reference frame to obtain a second index information base, wherein the index information of any target sub-image of the reference frame comprises the position and hash value of the target sub-image;
acquiring a second macro block to be processed currently in a desktop image;
calculating a hash value of the second macro block;
and searching the position of a second sub-graph which is the same as the hash value of the second macro block in a second index information base.
In some embodiments of the present invention, when the computer program stored on the computer readable storage medium is executed by a processor to implement the step of searching for a sub-picture corresponding to a macro block of a desktop image from a cached reference frame, the following steps may be specifically implemented:
calculating the hash value of the macro block of the desktop image by adopting a two-dimensional incremental hash algorithm;
and/or the number of the groups of groups,
a two-dimensional delta hashing algorithm is used to calculate the hash value of the subgraph of the reference frame.
In some embodiments of the present invention, when the computer program stored on the computer readable storage medium is executed by the processor, and the step of calculating the motion vector of the macro block of the desktop image according to the macro block of the desktop image and the position of the sub-image corresponding thereto is implemented, the following steps may be specifically implemented:
when any target macro block of the desktop image corresponds to the third sub-image and the fourth sub-image, respectively calculating a third motion vector of the target macro block corresponding to the third sub-image and a fourth motion vector corresponding to the fourth sub-image;
predicting the lengths of the coded code streams corresponding to the third motion vector and the fourth motion vector respectively;
and selecting a motion vector corresponding to the shortest coding code stream as a motion vector of the target macro block.
It will be appreciated that the integrated units, if implemented in the form of software functional units and sold or used as stand-alone products, may be stored in a corresponding one of the computer readable storage media. Based on such understanding, the present invention may implement all or part of the above-described respective embodiment methods, or may be implemented by a computer program for instructing relevant hardware, where the computer program may be stored in a computer readable storage medium, and the computer program may implement the steps of each of the above-described method embodiments when being executed by a processor. Wherein the computer program comprises computer program code which may be in source code form, object code form, executable file or some intermediate form etc. The computer readable medium may include: any entity or device capable of carrying the computer program code, a recording medium, a U disk, a removable hard disk, a magnetic disk, an optical disk, a computer memory, a Read-only memory (ROM), a random access memory (RAM, random Access Memory), an electrical carrier signal, a telecommunications signal, a software distribution medium, and so forth. It should be noted that the computer readable medium contains content that can be appropriately scaled according to the requirements of jurisdictions in which such content is subject to legislation and patent practice, such as in certain jurisdictions in which such content is subject to legislation and patent practice, the computer readable medium does not include electrical carrier signals and telecommunication signals.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, which are not repeated herein.
In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods may be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present invention may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit.
The above embodiments are only for illustrating the technical solution of the present invention, and not for limiting the same; although the invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims (9)

1. A method of motion estimation, comprising:
acquiring a desktop image to be transmitted;
cutting the desktop image according to a target size to obtain a plurality of macro blocks;
searching sub-images corresponding to macro blocks of the desktop image from all sub-images of the cached reference frame by utilizing an index information base, wherein the macro blocks of the desktop image and the sub-images corresponding to the macro blocks have the same size and hash value, the index information base is used for storing index information of all macro blocks of the desktop image or index information of all sub-images of the reference frame, the index information of the macro blocks comprises macro block positions and macro block hash values, and the index information of the sub-images comprises sub-image positions and sub-image hash values; the subgraphs of the reference frame are obtained by sliding in the reference frame by using the sliding window with the target size, and overlapping areas exist between different subgraphs;
Calculating the motion vector of the macro block of the desktop image according to the macro block of the desktop image and the position of the sub-image corresponding to the macro block, comprising: when any target macro block of the desktop image corresponds to two or more sub-images, selecting the sub-image of the shortest coding code stream to calculate the motion vector of the target macro block.
2. The method of claim 1, wherein searching for a sub-picture corresponding to a macroblock of the desktop image from among all sub-pictures of the cached reference frame comprises:
respectively calculating hash values of all macro blocks of the desktop image;
storing index information of all macro blocks of the desktop image to obtain a first index information base, wherein the index information of any target macro block of the desktop image comprises the position and hash value of the target macro block;
sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
acquiring a first sub-graph corresponding to the sliding window currently;
calculating a hash value of the first sub-graph;
and searching the position of the first macro block which is the same as the hash value of the first sub-graph in the first index information base.
3. The method of claim 1, wherein searching for a sub-picture corresponding to a macroblock of the desktop image from among all sub-pictures of the cached reference frame comprises:
sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
respectively calculating hash values of all sub-graphs of the reference frame;
storing index information of all sub-images of the reference frame to obtain a second index information base, wherein the index information of any target sub-image of the reference frame comprises the position and hash value of the target sub-image;
acquiring a second macro block to be processed currently in the desktop image;
calculating a hash value of the second macro block;
and searching the position of a second sub-graph which is the same as the hash value of the second macro block in the second index information base.
4. The method of claim 1, wherein when any one target macroblock of the desktop image corresponds to two or more sub-pictures, selecting the sub-picture of the shortest coded bitstream to calculate the motion vector of the target macroblock comprises:
when any target macro block of the desktop image corresponds to a third sub-image and a fourth sub-image, respectively calculating a third motion vector of the target macro block corresponding to the third sub-image and a fourth motion vector corresponding to the fourth sub-image;
Predicting the lengths of the coded code streams corresponding to the third motion vector and the fourth motion vector respectively;
and selecting a motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
5. A motion estimation apparatus, comprising:
the acquisition module is used for acquiring desktop images to be transmitted;
the cutting module is used for cutting the desktop image according to the target size to obtain a plurality of macro blocks;
the searching module is used for searching sub-images corresponding to macro blocks of the desktop image from all sub-images of the cached reference frame by utilizing an index information base, wherein the macro blocks of the desktop image and the sub-images corresponding to the macro blocks have the same size and hash value, the index information base is used for storing index information of all macro blocks of the desktop image or index information of all sub-images of the reference frame, the index information of the macro blocks comprises macro block positions and macro block hash values, and the index information of the sub-images comprises sub-image positions and sub-image hash values; the subgraphs of the reference frame are obtained by sliding in the reference frame by using the sliding window with the target size, and overlapping areas exist between different subgraphs;
And the calculation module is used for calculating the motion vector of the macro block of the desktop image according to the macro block of the desktop image and the positions of the sub-images corresponding to the macro block, and particularly used for selecting the sub-image of the shortest coding code stream to calculate the motion vector of any target macro block of the desktop image when the target macro block corresponds to two or more sub-images.
6. The apparatus of claim 5, wherein the lookup module is specifically configured to:
respectively calculating hash values of all macro blocks of the desktop image;
storing index information of all macro blocks of the desktop image to obtain a first index information base, wherein the index information of any target macro block of the desktop image comprises the position and hash value of the target macro block;
sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
acquiring a first sub-graph corresponding to the sliding window currently;
calculating a hash value of the first sub-graph;
and searching the position of the first macro block which is the same as the hash value of the first sub-graph in the first index information base.
7. The apparatus of claim 5, wherein the lookup module is specifically configured to:
Sliding in the reference frame by adopting the sliding window with the target size, wherein each sliding of the sliding window obtains a sub-image of the reference frame;
respectively calculating hash values of all sub-graphs of the reference frame;
storing index information of all sub-images of the reference frame to obtain a second index information base, wherein the index information of any target sub-image of the reference frame comprises the position and hash value of the target sub-image;
acquiring a second macro block to be processed currently in the desktop image;
calculating a hash value of the second macro block;
and searching the position of a second sub-graph which is the same as the hash value of the second macro block in the second index information base.
8. A server, characterized by: the server comprising a processor for implementing the steps of the motion estimation method according to any one of claims 1 to 4 when executing a computer program stored in a memory.
9. A computer-readable storage medium having stored thereon a computer program, characterized by: the computer program, when executed by a processor, implements the steps of the motion estimation method according to any one of claims 1 to 4.
CN201810525322.6A 2018-05-28 2018-05-28 Motion estimation method and device, server and computer readable storage medium Active CN110545428B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810525322.6A CN110545428B (en) 2018-05-28 2018-05-28 Motion estimation method and device, server and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810525322.6A CN110545428B (en) 2018-05-28 2018-05-28 Motion estimation method and device, server and computer readable storage medium

Publications (2)

Publication Number Publication Date
CN110545428A CN110545428A (en) 2019-12-06
CN110545428B true CN110545428B (en) 2024-02-23

Family

ID=68701371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810525322.6A Active CN110545428B (en) 2018-05-28 2018-05-28 Motion estimation method and device, server and computer readable storage medium

Country Status (1)

Country Link
CN (1) CN110545428B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055540B (en) * 2019-12-26 2023-07-14 深信服科技股份有限公司 Image transmission method, server, system and computer readable storage medium
CN113242409B (en) * 2021-04-26 2023-09-12 国网安徽省电力有限公司天长市供电公司 Night vision early warning method and device based on unmanned aerial vehicle, unmanned aerial vehicle and storage medium

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821278A (en) * 2012-07-27 2012-12-12 深信服网络科技(深圳)有限公司 Remote desktop image transmission method and remote desktop image transmission system
CN103139562A (en) * 2011-11-30 2013-06-05 富士通株式会社 Motion estimation method and motion estimation device
CN103402089A (en) * 2013-07-24 2013-11-20 江苏晓山信息产业股份有限公司 Virtual desktop image compressing method based on macro block technology
US8787460B1 (en) * 2005-07-28 2014-07-22 Teradici Corporation Method and apparatus for motion vector estimation for an image sequence
CN105224390A (en) * 2015-09-22 2016-01-06 宁夏大学 A kind of method of virtual desktop compression
CN106251365A (en) * 2016-07-22 2016-12-21 北京邮电大学 Many exposure video fusion method and device
CN106375771A (en) * 2016-08-31 2017-02-01 苏睿 Image characteristic matching method and device
CN107197278A (en) * 2017-05-24 2017-09-22 西安万像电子科技有限公司 The treating method and apparatus of the global motion vector of screen picture
CN107360443A (en) * 2016-05-09 2017-11-17 中兴通讯股份有限公司 A kind of cloud desktop picture processing method, cloud desktop server and client
CN107396112A (en) * 2017-08-01 2017-11-24 深信服科技股份有限公司 A kind of coding method and device, computer installation, readable storage medium storing program for executing
CN107527321A (en) * 2017-08-22 2017-12-29 维沃移动通信有限公司 A kind of image rebuilding method, terminal and computer-readable recording medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9532069B2 (en) * 2004-07-30 2016-12-27 Euclid Discoveries, Llc Video compression repository and model reuse
US20140369413A1 (en) * 2013-06-18 2014-12-18 Vmware, Inc. Systems and methods for compressing video data using image block matching
US10264290B2 (en) * 2013-10-25 2019-04-16 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8787460B1 (en) * 2005-07-28 2014-07-22 Teradici Corporation Method and apparatus for motion vector estimation for an image sequence
CN103139562A (en) * 2011-11-30 2013-06-05 富士通株式会社 Motion estimation method and motion estimation device
CN102821278A (en) * 2012-07-27 2012-12-12 深信服网络科技(深圳)有限公司 Remote desktop image transmission method and remote desktop image transmission system
CN103402089A (en) * 2013-07-24 2013-11-20 江苏晓山信息产业股份有限公司 Virtual desktop image compressing method based on macro block technology
CN105224390A (en) * 2015-09-22 2016-01-06 宁夏大学 A kind of method of virtual desktop compression
CN107360443A (en) * 2016-05-09 2017-11-17 中兴通讯股份有限公司 A kind of cloud desktop picture processing method, cloud desktop server and client
CN106251365A (en) * 2016-07-22 2016-12-21 北京邮电大学 Many exposure video fusion method and device
CN106375771A (en) * 2016-08-31 2017-02-01 苏睿 Image characteristic matching method and device
CN107197278A (en) * 2017-05-24 2017-09-22 西安万像电子科技有限公司 The treating method and apparatus of the global motion vector of screen picture
CN107396112A (en) * 2017-08-01 2017-11-24 深信服科技股份有限公司 A kind of coding method and device, computer installation, readable storage medium storing program for executing
CN107527321A (en) * 2017-08-22 2017-12-29 维沃移动通信有限公司 A kind of image rebuilding method, terminal and computer-readable recording medium

Also Published As

Publication number Publication date
CN110545428A (en) 2019-12-06

Similar Documents

Publication Publication Date Title
WO2019242491A1 (en) Video encoding and decoding method and device, computer device, and storage medium
US20220180477A1 (en) Video super-resolution processing method and apparatus
CN112913250B (en) Encoder, decoder and corresponding methods using IBC search range optimization for arbitrary CTU sizes
EP1619901A2 (en) Context adaptive binary arithmetic coding with reduced complexity
CN114827595B (en) Video decoding method, device, computer equipment and storage medium
CN104581177B (en) Image compression method and device combining block matching and string matching
CN103609123A (en) Unified merge mode and adaptive motion vector prediction mode candidates selection
CN107396112B (en) Encoding method and device, computer device and readable storage medium
KR20160117424A (en) Image encoding and decoding method and device
WO2017131900A1 (en) Motion vector prediction using prior frame residual
CN110545428B (en) Motion estimation method and device, server and computer readable storage medium
CN112218076B (en) Video coding method, device and system and computer readable storage medium
US10536726B2 (en) Pixel patch collection for prediction in video coding system
CN105100799A (en) Method for reducing intraframe coding time delay in HEVC encoder
CN110636293B (en) Video encoding and decoding methods and devices, storage medium and electronic device
CN116962682A (en) Decoder for indicating image segmentation information of a slice and corresponding method
CN105075256A (en) Method for encoding a plurality of input images and storage medium and device for storing program
RU2817030C2 (en) Encoder, decoder and corresponding use methods for ibc combining list
WO2024078403A1 (en) Image processing method and apparatus, and device
CN113923453B (en) Time domain filtering method and device for video, electronic equipment and storage medium
RU2787885C2 (en) Method and equipment for mutual prediction, bit stream and non-volatile storage carrier
JP2012049753A (en) Video compression apparatus, video compression method and program
WO2020181540A1 (en) Video processing method and device, encoding apparatus, and decoding apparatus
CN117596392A (en) Coding information determining method of coding block and related product
CN117119198A (en) Video processing method and related equipment

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
GR01 Patent grant
GR01 Patent grant