CN110545428A - 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 PDFInfo
- Publication number
- CN110545428A CN110545428A CN201810525322.6A CN201810525322A CN110545428A CN 110545428 A CN110545428 A CN 110545428A CN 201810525322 A CN201810525322 A CN 201810525322A CN 110545428 A CN110545428 A CN 110545428A
- Authority
- CN
- China
- Prior art keywords
- sub
- macro block
- desktop image
- reference frame
- desktop
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000013598 vector Substances 0.000 claims abstract description 82
- 238000004422 calculation algorithm Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 27
- 238000007906 compression Methods 0.000 abstract description 8
- 230000006835 compression Effects 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- WYTGDNHDOZPMIW-RCBQFDQVSA-N alstonine Natural products C1=CC2=C3C=CC=CC3=NC2=C2N1C[C@H]1[C@H](C)OC=C(C(=O)OC)[C@H]1C2 WYTGDNHDOZPMIW-RCBQFDQVSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
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 a matching block of each macro block of a desktop image, and are beneficial to searching the best matching block in all areas in a reference frame in a short time, so that the compression effect of the desktop image is improved. The method provided by 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 sub-images corresponding to the macro blocks of the desktop image from the cached reference frame, wherein the macro blocks of the desktop image and the sub-images corresponding to the macro blocks 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 corresponding sub-image.
Description
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
the virtual desktop is based on a desktop virtualization technology, and the desktop virtualization depends on server virtualization, so that server virtualization is performed on a server of the data center, a large number of independent desktop operating systems are generated, and meanwhile, the independent desktop operating systems are sent to the terminal equipment according to a proprietary virtual desktop protocol. The user terminal logs in the virtual host through the Ethernet, and can access the desktop system of the user terminal through the network at any time and any place only by remembering a user name, a password and gateway information. The virtual desktop infrastructure needs to transmit a large amount of virtual desktop images in real time, and how to reduce the transmission flow between the server and the client becomes a key problem of the virtual desktop technology under limited bandwidth.
because desktop images of different frames usually have more redundant data, a video compression algorithm with redundancy removal can be adopted to compress the desktop images so as to reduce the transmission flow of the desktop images 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 basis of high-efficiency video coding. The existing motion estimation algorithm needs to calculate and compare the motion costs of a plurality of blocks in a reference frame, and select a block with the minimum motion cost as a matching block of a current macro block. Because calculating and comparing the motion cost needs to consume higher computational power and consumes longer time, 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 full range of the reference frame, the computational power consumed in the image compression process is overlarge, and the consumed time is overlong. Because of the continuity of the motion of the natural object, the motion vector has a certain correlation in the time domain, so the prior art proposes to predict the motion vector of the current frame by using the motion vectors of the neighboring reference frames and to search for 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, and it is difficult to find the best matching block by searching for the matching block in the neighborhood of the predicted motion vector.
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 search a matching block in a certain specified area in a reference frame.
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 the target size to obtain a plurality of macro blocks;
searching sub-pictures corresponding to the macro blocks of the desktop image from the cached reference frame, wherein the macro blocks of the desktop image and the sub-pictures corresponding to the macro blocks 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 position of the macro block of the desktop image and the position of the corresponding sub-image.
Optionally, the searching for the sub-picture 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 the hash value of the target macro block;
Sliding the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
Acquiring a first sub-graph currently corresponding to the sliding window;
calculating a hash value of the first subgraph;
and searching the position of a 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 for the sub-picture corresponding to the macro block of the desktop image from the cached reference frame includes:
sliding the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
respectively calculating hash values of all sub-graphs of the reference frame;
Storing the index information of all sub-graphs of the reference frame to obtain a second index information base, wherein the index information of any target sub-graph of the reference frame comprises the position and the hash value of the target sub-graph;
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 calculating the hash value of the macroblock 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 presence of a gas in the gas,
Calculating a hash value of a subgraph of the reference frame comprises:
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 macroblock of the desktop image according to the macroblock of the desktop image and the position of the sub-picture corresponding to the macroblock 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 of the target macro block corresponding to the fourth sub-image;
respectively predicting the lengths of the coding code streams corresponding to the third motion vector and the fourth motion vector;
And selecting the motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
a second aspect of the embodiments of the present invention provides a motion estimation apparatus, including:
the acquisition module is used for acquiring a desktop image 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-picture corresponding to the macro block of the desktop picture from the cached reference frame, and the macro block of the desktop picture and the sub-picture corresponding to the macro block of the desktop picture have the same size and hash value;
And the computing module is used for computing 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 corresponding sub-image.
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 the hash value of the target macro block;
sliding the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
acquiring a first sub-graph currently corresponding to the sliding window;
calculating a hash value of the first subgraph;
And searching the position of a 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 the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
respectively calculating hash values of all sub-graphs of the reference frame;
storing the index information of all sub-graphs of the reference frame to obtain a second index information base, wherein the index information of any target sub-graph of the reference frame comprises the position and the hash value of the target sub-graph;
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 presence of a gas in the gas,
And calculating the hash value of the subgraph of the reference frame by adopting a two-dimensional incremental hash algorithm.
optionally, when any target macroblock of the desktop image corresponds to the third sub-picture and the fourth sub-picture, the computing 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 of the target macro block corresponding to the fourth sub-picture;
Respectively predicting the lengths of the coding code streams corresponding to the third motion vector and the fourth motion vector;
and selecting the 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, which includes a processor, and the processor is configured to implement the steps of the method according to the first aspect or any one of the possible implementation manners of the first aspect when executing the computer program stored in the memory.
A fourth aspect of embodiments of the present invention provides a computer-readable storage medium, on which a computer program is stored, 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.
according to the technical scheme, the embodiment of the 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 later-stage coding is facilitated, sub-images 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-images corresponding to the macro blocks have the same size and hash value, and the motion vectors of the macro blocks of the desktop image are calculated according to the positions of the macro blocks of the desktop image and the sub-images corresponding to the macro blocks of the desktop image, so that motion estimation is completed. According to the invention, the matching block can be quickly found only by calculating and comparing the hash value of the macro block of the desktop image and the sub-image of the reference frame, compared with the prior art, the calculation power and time consumed for finding the matching block are greatly reduced, so that the best matching block can be found in all the areas of the reference frame, and the compression effect of the desktop image is improved.
drawings
FIG. 1 is a schematic diagram of one embodiment of the motion estimation method of the present invention;
FIG. 2 is a schematic diagram of a refinement of step 300 of FIG. 1;
FIG. 3 is a schematic diagram of another refinement of step 300 of FIG. 1;
FIG. 4 is a schematic diagram of a refinement of step 400 of FIG. 1;
FIG. 5 is a schematic diagram of an embodiment of the motion estimation apparatus of the present invention;
fig. 6 is a schematic diagram of an embodiment of the 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 a matching block of each macro block of a desktop image, and are beneficial to searching the best matching block in all areas in a reference frame in a short time, so that the compression effect of the desktop image is improved.
In order to make the technical solutions of the present invention better understood, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
the terms "first," "second," "third," "fourth," and the like in the description and in the claims, as well as in the drawings, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or 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 basis of high-efficiency video coding. The basic idea of motion estimation is to divide each frame of an image sequence into a plurality of non-overlapping macro blocks, consider the displacement of all pixels in the macro blocks to be the same, then find out the block most similar to the current macro block, i.e. the matching block, from each macro block to a given specific search range of a reference frame according to a certain matching criterion, 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 as motion estimation. When the video is compressed, the current macro block can be completely restored only by storing the motion vector and the residual data. Referring to fig. 1, an embodiment of a motion estimation method according to the 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 to reduce transmission flow. The key to compressing the desktop image to be transmitted is to perform motion estimation on a macro block in the desktop image. In the process of motion estimation, firstly, the 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 acquiring the desktop image to be transmitted, the server may divide the desktop image a into a plurality of mutually non-overlapping macro blocks a according to a target size, so that the size of each obtained macro block a is the 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-picture corresponding to the macro block of the desktop picture from the cached reference frame;
in a transmission scene of the desktop video, the transmitted desktop image has a certain redundancy, so the server can cache the transmitted desktop image as a reference frame for motion estimation. The cached reference frame may include other transmitted desktop images in the desktop video where the desktop image to be currently transmitted is located, or may include desktop images in the desktop video whose transmission is completed, or may include other transmitted desktop images in the desktop video where the desktop image to be currently transmitted is located and desktop images in the desktop video whose transmission is completed. After the server cuts the desktop image to be transmitted to obtain a plurality of macro blocks, the server can respectively search the subgraph corresponding to each macro block from the cached reference frame, and for any macro block in the desktop image to be transmitted, the subgraph 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 macro block of the desktop image and the position of the corresponding sub-image.
After finding out the sub-picture 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-picture corresponding to the macro block of the desktop image.
The motion estimation algorithm provided by the invention can search the subgraph 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 subgraph corresponding to the macro block of the desktop image, thereby completing the motion estimation. According to the invention, the matching block can be quickly found only by calculating and comparing the hash value of the macro block of the desktop image and the sub-image of the reference frame, compared with the prior art, the calculation power and time consumed for finding the matching block are greatly reduced, so that the best matching block can be found in all the areas of the reference frame, and the compression effect of the desktop image is improved.
In some embodiments of the present invention, please refer to fig. 2, fig. 2 is a schematic diagram of a possible refinement of step 300 in the corresponding embodiment of fig. 1. Based on the above 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, the hash value of each macro block can be respectively calculated, and the hash value calculated by the hash algorithm can uniquely represent a certain image area.
preferably, a two-dimensional incremental hash algorithm may be used to calculate the hash value of all the macroblocks of the desktop image to be transmitted. The two-dimensional incremental hashing algorithm is a special image hashing algorithm, and after the original image is subjected to certain preprocessing, the hash value of each rectangular subgraph of the original image can be calculated with low time complexity. It should be noted that, in practical use, other algorithms may also be used to calculate the hash values of all the macroblocks 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 the hash values of all the macro blocks of the desktop image are respectively calculated, the 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 macro block in the desktop image as an example, the macro block is any one of the macro blocks in the desktop image to be transmitted, and is referred to as a target macro block, and the index information of the target macro block includes a position and a hash value of the target macro block.
303a, sliding in the reference frame by adopting a sliding window with a target size;
After obtaining the first index information base, a sliding window with a target size may be adopted 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 one sub-picture in the reference frame. Overlap regions may be included between different subgraphs, for example, a sliding window may be slid in the reference frame, one pixel at a time. The cached reference frame may include other transmitted desktop images in the desktop video where the desktop image to be currently transmitted is located, or may include desktop images in the desktop video whose transmission is completed, or may include other transmitted desktop images in the desktop video where the desktop image to be currently transmitted is located and desktop images in the desktop video whose transmission is completed.
304a, acquiring a first sub-graph currently corresponding to the sliding window;
In the process that the sliding window slides in the reference frame, the server may obtain a sub-graph currently corresponding to the sliding window, and for convenience of description, the sub-graph currently corresponding to the sliding window is referred to as a first sub-graph.
305a, calculating a hash value of the first subgraph;
preferably, the hash value of the first sub-graph may be computed using a two-dimensional incremental hash algorithm. It should be noted that, in practical use, other algorithms may also be used to calculate the hash values of all the macroblocks of the desktop image to be transmitted.
306a, the position of the first macro block which is the same as the hash value of the first sub-graph is searched in the first index information base.
After the hash value of the first sub-graph is obtained through calculation, the server may search the hash value that is the same as the hash value of the first sub-graph in the first index information base, and for convenience of description, a macro block to which the hash value belongs is referred to as a first macro block, and the first sub-graph is referred to as corresponding to the first macro block. The location of the first macroblock may then be determined in the first index information base.
by traversing the cached reference frame through the sliding window, the server can respectively search the macro blocks corresponding to each sub-picture in the reference frame in the first index information base and determine the positions of the searched macro blocks.
in some embodiments of the present invention, please refer to fig. 3, and fig. 3 is a schematic diagram of another possible refinement step of step 300 in the corresponding embodiment of fig. 1. Based on the above 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 cached reference frame using a sliding window of a target size, which is the same size as 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 one sub-picture in the reference frame. Overlap regions may be included between different subgraphs, for example, a sliding window may make a serpentine sliding in the reference frame, one pixel at a time. The cached reference frame may include other transmitted desktop images in the desktop video where the desktop image to be currently transmitted is located, or may include desktop images in the desktop video whose transmission is completed, or may include other transmitted desktop images in the desktop video where the desktop image to be currently transmitted is located and desktop images in the desktop video whose transmission is 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 subgraphs can be obtained, and then the hash values of all the subgraphs in the reference frame can be respectively calculated. Preferably, a two-dimensional incremental hash algorithm may be used to compute the hash value of all subgraphs in the reference frame. It should be noted that, in practical use, other algorithms may also be used to calculate the hash values of all the macroblocks of the desktop image to be transmitted.
303b, storing the index information of all sub-graphs of the reference frame to obtain a second index information base;
After the hash values of all subgraphs in the reference frame are respectively calculated, the index information of each subgraph can be obtained, and the index information of each subgraph is stored to obtain a second index information base. For convenience of description, taking a sub-graph in the reference frame as an example, the sub-graph is any one sub-graph in the reference frame and is called a target sub-graph, and the index information of the target sub-graph includes the position of the target sub-graph and the hash value of the target sub-graph.
304b, obtaining 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 a sub-image corresponding to the macro block. For convenience of description, the current macroblock to be processed is referred to as a second macroblock, and the server may obtain the current second macroblock to be processed in the desktop image.
305b, calculating the hash value of the second macro block;
Preferably, the hash value of the second macroblock may be calculated using a two-dimensional incremental hash algorithm. It should be noted that, in practical use, other algorithms may also be used to calculate the hash values of all the macroblocks of the desktop image to be transmitted.
306b, the position of the second sub-graph which is the same as the hash value of the second macro block is searched in the second index information base.
After the hash value of the second macro block is obtained through calculation, the server may search the hash value that is the same as the hash value of the second macro block in the second index information base, and for convenience of description, a sub-graph to which the hash value belongs is referred to as a second sub-graph, and the second sub-graph is referred to as corresponding to the second macro block. The position of the second sub-graph may then be determined in a second indexed information base.
by traversing each macro block of the desktop image to be transmitted, the server can respectively search sub-images corresponding to each macro block in the desktop image in the second index information base and determine the positions of the searched sub-images.
compared with the embodiment method corresponding to fig. 2, the embodiment method corresponding to fig. 3 needs to store the index information of all the cached sub-graphs of the reference frame, which consumes more memory, but because 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 the reference frames increases, the number of times of searching in the second index information base does not increase, the performance does not decrease, and thus the embodiment method is more suitable for the case of larger number of the reference frames.
According to the embodiment method corresponding to fig. 2 or according to the embodiment method corresponding to fig. 3, it may be determined that a correspondence relationship between a sub-picture in a reference frame and a macroblock of a desktop image to be transmitted may exist, and there may be a case where one macroblock corresponds to two or more sub-pictures, at this time, in the above embodiment corresponding to fig. 1, step 400 needs to select one sub-picture from the two or more sub-pictures, and calculate a motion vector of the macroblock according to the selected sub-picture. Referring to fig. 4, fig. 4 is a schematic diagram illustrating a detailed step of step 400 in the embodiment corresponding to fig. 1. For convenience of description, a macroblock in a desktop image is taken 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 target macroblock corresponds to a third sub-picture and a fourth sub-picture as an example, based on the embodiment corresponding to fig. 1, the step 400 may specifically include:
401. 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;
when it is determined through step 300 that the target macroblock corresponds to the third sub-picture and the fourth sub-picture, 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. Respectively predicting the lengths of the coding code streams corresponding to the third motion vector and the fourth motion vector;
after the third motion vector and the fourth motion vector are obtained through calculation, the server may respectively predict the length of the code stream corresponding to the third motion vector and the length of the code stream corresponding to the fourth motion vector. The length of the code stream corresponding to the motion vector can be predicted according to the specific coding method to be adopted, for example, in entropy coding, different motion vectors correspond to different code stream lengths, and therefore, the length of the code stream corresponding to the motion vectors can be predicted according to the motion vectors.
403. And selecting the motion vector corresponding to the code stream with the shortest length as the motion vector of the target macro block.
after the code stream corresponding to the third motion vector and the code stream corresponding to the fourth motion vector are obtained, the code streams can be compared, and a subgraph corresponding to the code stream with the shortest length is selected to calculate the motion vector of the target macro block.
The embodiment method corresponding to fig. 4 can solve the problem that the sub-image with the shortest length of the code stream is selected from a plurality of sub-images corresponding to a macro block to calculate the corresponding motion vector, and further the macro block is compressed and encoded, which is beneficial to reducing the compressed 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.
Please refer to fig. 5, which is a diagram illustrating a motion estimation apparatus according to an embodiment of the present invention. An embodiment of a motion estimation apparatus according to an embodiment of the present invention includes:
an obtaining module 501, configured to obtain a desktop image to be transmitted;
a cutting module 502, 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, from the cached reference frame, a sub-picture corresponding to a macroblock of the desktop image, where the macroblock of the desktop image and the sub-picture corresponding to the macroblock of the desktop image have the same size and hash value;
and 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-picture corresponding to the macroblock.
In some embodiments of the present invention, the lookup module 503 may specifically be 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 the hash value of the target macro block;
Sliding a sliding window with a target size in the reference frame, wherein each sliding of the sliding window obtains a sub-picture of the reference frame;
acquiring a first sub-graph currently corresponding to a sliding window;
calculating a hash value of the first subgraph;
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 search module 503 is specifically configured to:
Sliding a sliding window with a target size in the reference frame, wherein each sliding of the sliding window obtains a sub-picture of the reference frame;
respectively calculating hash values of all sub-graphs of the reference frame;
Storing the index information of all subgraphs of the reference frame to obtain a second index information base, wherein the index information of any target subgraph of the reference frame comprises the position and the hash value of the target subgraph;
acquiring a second macro block to be processed currently in the desktop image;
Calculating the hash value of the second macro block;
And searching the position of a second subgraph 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 specifically be 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 presence of a gas in the gas,
and calculating the hash value of the subgraph of the reference frame by adopting a two-dimensional incremental hash algorithm.
in some embodiments of the present invention, when any one of the target macroblocks of the desktop image corresponds to the third sub-image and the fourth sub-image, the calculation module 504 may be configured to:
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;
respectively predicting the lengths of the coding code streams corresponding to the third motion vector and the fourth motion vector;
and selecting the motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
The motion estimation apparatus in the embodiment of the present invention is described above from the perspective of the modular functional entity, and the server in the embodiment of the present invention is described below from the perspective of hardware processing:
Referring to fig. 6, an embodiment of the server 6 according to the embodiment of the present invention includes:
a processor 601 and a memory 602;
the memory 602 is used for storing computer programs, and the processor 601 is used for implementing the computer programs stored in the memory 602, and can implement 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 sub-images corresponding to the macro blocks of the desktop image from the cached reference frame, wherein the macro blocks of the desktop image and the sub-images corresponding to the macro blocks 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 corresponding sub-image.
in some embodiments of the present invention, when the processor 601 executes the computer program stored in the memory 602 to perform the step of searching the reference frame from the cached reference frame for the sub-picture corresponding to the macro block of the desktop image, 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 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 the hash value of the target macro block;
sliding a sliding window with a target size in the reference frame, wherein each sliding of the sliding window obtains a sub-picture of the reference frame;
Acquiring a first sub-graph currently corresponding to a sliding window;
calculating a hash value of the first subgraph;
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 perform the step of searching the reference frame from the cached reference frame for the sub-picture corresponding to the macro block of the desktop image, the following steps may be specifically implemented:
Sliding a sliding window with a target size in the reference frame, wherein each sliding of the sliding window obtains a sub-picture of the reference frame;
respectively calculating hash values of all sub-graphs of the reference frame;
storing the index information of all subgraphs of the reference frame to obtain a second index information base, wherein the index information of any target subgraph of the reference frame comprises the position and the hash value of the target subgraph;
acquiring a second macro block to be processed currently in the desktop image;
Calculating the hash value of the second macro block;
and searching the position of a second subgraph 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 perform the step of searching the reference frame from the cached reference frame for the sub-picture corresponding to the macro block of the desktop image, 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 presence of a gas in the gas,
and calculating the hash value of the subgraph of the reference frame by adopting a two-dimensional incremental hash algorithm.
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 macroblock of the desktop image according to the macroblock of the desktop image and the position of the sub-image corresponding to the macroblock, 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 of the target macro block corresponding to the fourth sub-image;
respectively predicting the lengths of the coding code streams corresponding to the third motion vector and the fourth motion vector;
And selecting the motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
it is to be understood that, when the processor in the computer apparatus described above executes the computer program, the functions of each unit in the corresponding apparatus embodiments may also be implemented, and are not described herein again. Illustratively, the computer program may be partitioned into one or more modules/units that are stored in the memory and executed by the processor to implement the invention. The one or more modules/units may be a series of computer program instruction segments capable of performing specific functions, which are used to describe the execution process of the computer program in the charging current control apparatus. For example, the computer program may be divided into units in the above-described charge current control device, and each unit may realize specific functions as described in the above-described corresponding charge current control device.
the server may include, but is not limited to, a processor, a memory. It will be appreciated by those skilled in the art that the processor, memory are merely examples of a computer apparatus and are not meant to be limiting, and that more or fewer components may be included, or certain components may be combined, or different components may be included, for example, the computer apparatus may also include input output devices, network access devices, buses, etc.
the Processor may be a Central Processing Unit (CPU), other general purpose Processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field-Programmable gate array (FPGA) or other Programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc. The general purpose processor may be a microprocessor or the processor may be any conventional processor or the like which is the control center for the computer device and which connects the various parts of the overall computer device using various interfaces and lines.
The memory may be used to store the computer programs and/or modules, and the processor may implement various functions of the computer device by running or executing the computer programs 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, and the like. In addition, the memory may include high speed random access memory, and may also include non-volatile memory, such as a hard disk, a memory, a plug-in hard disk, a Smart Media Card (SMC), a Secure Digital (SD) Card, a Flash memory Card (Flash Card), at least one magnetic disk storage device, a 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 sub-images corresponding to the macro blocks of the desktop image from the cached reference frame, wherein the macro blocks of the desktop image and the sub-images corresponding to the macro blocks 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 corresponding sub-image.
In some embodiments of the present invention, when the computer program stored on the computer-readable storage medium is executed by the processor to implement the step of searching the sub-picture corresponding to the macro block of the desktop image from the 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 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 the hash value of the target macro block;
Sliding a sliding window with a target size in the reference frame, wherein each sliding of the sliding window obtains a sub-picture of the reference frame;
acquiring a first sub-graph currently corresponding to a sliding window;
calculating a hash value of the first subgraph;
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 the processor to implement the step of searching the sub-picture corresponding to the macro block of the desktop image from the cached reference frame, the following steps may be specifically implemented:
sliding a sliding window with a target size in the reference frame, wherein each sliding of the sliding window obtains a sub-picture of the reference frame;
respectively calculating hash values of all sub-graphs of the reference frame;
storing the index information of all subgraphs of the reference frame to obtain a second index information base, wherein the index information of any target subgraph of the reference frame comprises the position and the hash value of the target subgraph;
Acquiring a second macro block to be processed currently in the desktop image;
calculating the hash value of the second macro block;
And searching the position of a second subgraph 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 the processor to implement the step of searching the sub-picture corresponding to the macro block of the desktop image from the 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 presence of a gas in the gas,
and calculating the hash value of the subgraph of the reference frame by adopting a two-dimensional incremental hash algorithm.
In some embodiments of the present invention, when the computer program stored on the computer-readable storage medium is executed by the processor to implement the step of calculating the motion vector of the macroblock of the desktop image according to the macroblock of the desktop image and the position of the sub-picture corresponding to the macroblock, 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 of the target macro block corresponding to the fourth sub-image;
Respectively predicting the lengths of the coding code streams corresponding to the third motion vector and the fourth motion vector;
and selecting the motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
It will be appreciated that the integrated units, if implemented as software functional units and sold or used as a stand-alone product, may be stored in a corresponding one of the computer readable storage media. Based on such understanding, all or part of the flow of the method according to the above embodiments may be implemented by a computer program, which may be stored in a computer-readable storage medium and used by a processor to implement the steps of the above embodiments of the method. Wherein the computer program comprises computer program code, which may be in the form of source code, object code, an executable file or some intermediate form, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, usb disk, removable hard disk, magnetic disk, optical disk, computer Memory, Read-only Memory (ROM), Random Access Memory (RAM), electrical carrier wave signals, telecommunications signals, software distribution medium, etc. It should be noted that the computer readable medium may contain content that is subject to appropriate increase or decrease as required by legislation and patent practice in jurisdictions, for example, in some jurisdictions, computer readable media does not include electrical carrier signals and telecommunications signals as is required by legislation and patent practice.
it is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed 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 can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
the above-mentioned embodiments are only used for illustrating the technical solutions of the present invention, and not for limiting the same; although the present 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 solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.
Claims (10)
1. a method of motion estimation, comprising:
Acquiring a desktop image to be transmitted;
Cutting the desktop image according to the target size to obtain a plurality of macro blocks;
Searching sub-pictures corresponding to the macro blocks of the desktop image from the cached reference frame, wherein the macro blocks of the desktop image and the sub-pictures corresponding to the macro blocks 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 position of the macro block of the desktop image and the position of the corresponding sub-image.
2. The method of claim 1, wherein the finding the sub-picture corresponding to the macroblock of the desktop picture from the buffered 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 the hash value of the target macro block;
sliding the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
acquiring a first sub-graph currently corresponding to the sliding window;
calculating a hash value of the first subgraph;
and searching the position of a 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 the finding the sub-picture corresponding to the macroblock of the desktop picture from the buffered reference frame comprises:
sliding the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
respectively calculating hash values of all sub-graphs of the reference frame;
storing the index information of all sub-graphs of the reference frame to obtain a second index information base, wherein the index information of any target sub-graph of the reference frame comprises the position and the hash value of the target sub-graph;
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 2 or 3, wherein computing the hash value for the macroblock of the desktop image comprises:
calculating the hash value of the macro block of the desktop image by adopting a two-dimensional incremental hash algorithm;
and/or the presence of a gas in the gas,
Calculating a hash value of a subgraph of the reference frame comprises:
And calculating the hash value of the subgraph of the reference frame by adopting a two-dimensional incremental hash algorithm.
5. The method of claim 4, wherein the calculating the motion vector of the macroblock of the desktop image according to the macroblock of the desktop image and the position of the corresponding sub-picture 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 of the target macro block corresponding to the fourth sub-image;
Respectively predicting the lengths of the coding code streams corresponding to the third motion vector and the fourth motion vector;
and selecting the motion vector corresponding to the shortest coding code stream as the motion vector of the target macro block.
6. a motion estimation device, comprising:
The acquisition module is used for acquiring a desktop image 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-picture corresponding to the macro block of the desktop picture from the cached reference frame, and the macro block of the desktop picture and the sub-picture corresponding to the macro block of the desktop picture have the same size and hash value;
and the computing module is used for computing 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 corresponding sub-image.
7. the apparatus of claim 6, 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 the hash value of the target macro block;
sliding the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
acquiring a first sub-graph currently corresponding to the sliding window;
Calculating a hash value of the first subgraph;
And searching the position of a first macro block which is the same as the hash value of the first sub-graph in the first index information base.
8. the apparatus of claim 6, wherein the lookup module is specifically configured to:
sliding the sliding window with the target size in the reference frame, wherein a subgraph of the reference frame is obtained by sliding the sliding window each time;
respectively calculating hash values of all sub-graphs of the reference frame;
Storing the index information of all sub-graphs of the reference frame to obtain a second index information base, wherein the index information of any target sub-graph of the reference frame comprises the position and the hash value of the target sub-graph;
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.
9. A server, characterized by: the server comprises a processor for implementing the steps of the motion estimation method according to any one of claims 1 to 5 when executing a computer program stored in a memory.
10. A computer-readable storage medium having stored thereon a computer program, characterized in that: the computer program when being executed by a processor realizes the steps of the motion estimation method as claimed in any one of the claims 1 to 5.
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 true CN110545428A (en) | 2019-12-06 |
CN110545428B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055540A (en) * | 2019-12-26 | 2021-06-29 | 深信服科技股份有限公司 | Image transmission method, server, system and computer readable storage medium |
CN113242409A (en) * | 2021-04-26 | 2021-08-10 | 深圳市安星数字系统有限公司 | Night vision early warning method and device based on unmanned aerial vehicle, unmanned aerial vehicle and storage medium |
Citations (14)
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 |
US20140369413A1 (en) * | 2013-06-18 | 2014-12-18 | Vmware, Inc. | Systems and methods for compressing video data using image block matching |
US20150124874A1 (en) * | 2004-07-30 | 2015-05-07 | Euclid Discoveries, Llc | Video compression repository and model reuse |
CN105224390A (en) * | 2015-09-22 | 2016-01-06 | 宁夏大学 | A kind of method of virtual desktop compression |
US20160234530A1 (en) * | 2013-10-25 | 2016-08-11 | Microsoft Technology Licensing, Llc | Hash-based block matching in video and image coding |
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 |
-
2018
- 2018-05-28 CN CN201810525322.6A patent/CN110545428B/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150124874A1 (en) * | 2004-07-30 | 2015-05-07 | Euclid Discoveries, Llc | Video compression repository and model reuse |
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 |
US20140369413A1 (en) * | 2013-06-18 | 2014-12-18 | Vmware, Inc. | Systems and methods for compressing video data using image block matching |
CN103402089A (en) * | 2013-07-24 | 2013-11-20 | 江苏晓山信息产业股份有限公司 | Virtual desktop image compressing method based on macro block technology |
US20160234530A1 (en) * | 2013-10-25 | 2016-08-11 | Microsoft Technology Licensing, Llc | Hash-based block matching in video and image coding |
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 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055540A (en) * | 2019-12-26 | 2021-06-29 | 深信服科技股份有限公司 | Image transmission method, server, system and computer readable storage medium |
CN113055540B (en) * | 2019-12-26 | 2023-07-14 | 深信服科技股份有限公司 | Image transmission method, server, system and computer readable storage medium |
CN113242409A (en) * | 2021-04-26 | 2021-08-10 | 深圳市安星数字系统有限公司 | Night vision early warning method and device based on unmanned aerial vehicle, unmanned aerial vehicle and 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 |
Also Published As
Publication number | Publication date |
---|---|
CN110545428B (en) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019242490A1 (en) | Video encoding and decoding method and apparatus, computer device and storage medium | |
US9602819B2 (en) | Display quality in a variable resolution video coder/decoder system | |
CN108848381B (en) | Video encoding method, decoding method, device, computer device and storage medium | |
CN107396112B (en) | Encoding method and device, computer device and readable storage medium | |
US11922599B2 (en) | Video super-resolution processing method and apparatus | |
CA3001731C (en) | Motion vector prediction using prior frame residual | |
US20130339362A1 (en) | Methods and systems for automatically and efficiently categorizing, transmitting, and managing multimedia contents | |
CN107027033B (en) | Video coding and decoding method for copying by using patch | |
US20220007046A1 (en) | Inter Prediction Method and Related Apparatus | |
CN108848377B (en) | Video encoding method, video decoding method, video encoding apparatus, video decoding apparatus, computer device, and storage medium | |
WO2013000437A1 (en) | Intra-frame prediction-based decoding method and decoding device | |
US10484683B2 (en) | Image processing method and apparatus | |
CN117061735A (en) | Chroma sample weight derivation for geometric partitioning modes | |
CN110545428B (en) | Motion estimation method and device, server and computer readable storage medium | |
US10536726B2 (en) | Pixel patch collection for prediction in video coding system | |
CN110677676A (en) | Video encoding method and apparatus, video decoding method and apparatus, and storage medium | |
CN107509074B (en) | Self-adaptive 3D video compression coding and decoding method based on compressed sensing | |
JP3859989B2 (en) | Image matching method and image processing method and apparatus capable of using the method | |
CN115349257B (en) | Use of DCT-based interpolation filters | |
CN114157868A (en) | Video frame coding mode screening method and device and electronic equipment | |
CN112839224B (en) | Prediction mode selection method and device, video coding equipment and storage medium | |
EP3926953A1 (en) | Inter-frame prediction method and related device | |
CN110636293A (en) | Video encoding method, video decoding method, video encoding apparatus, video decoding apparatus, storage medium, and electronic apparatus | |
CN105075256A (en) | Method for encoding a plurality of input images and storage medium and device for storing program | |
Abdollahi et al. | High compression rate, based on the RLS adaptive algorithm in progressive image transmission |
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 |