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 PDF

Info

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
Application number
CN201810525322.6A
Other languages
Chinese (zh)
Other versions
CN110545428B (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

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

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
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.
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 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)

* Cited by examiner, † Cited by third party
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)

* 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
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

Patent Citations (14)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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