Motion estimation/compensation for screen capture video
First Claim
1. A screen capture encoder comprising:
- a frame buffer for storing a reference screen capture frame; and
a motion estimation module adapted to screen capture video, the motion estimation module for estimating motion from the reference screen capture frame for one or more regions of pixels in a current screen capture frame.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to motion estimation and compensation. For example, a screen capture encoder performs motion estimation that is adapted to screen capture video in various respects. For example, the motion estimation uses a distortion measure based upon the count of equal/unequal pixels in two regions, sub-samples the distortion measure to speed up motion estimation, and/or uses a search pattern that prioritizes types of motion common in screen capture video. Or, a screen capture decoder performs motion compensation that is adapted to screen capture video in various respects. For example, the decoder performs the motion compensation for pixels with different values at corresponding locations in a current frame and a reference frame, but not for all pixels of the current frame. Alternatively, an encoder/decoder performs the motion estimation/compensation to compress/decompress other kinds of content.
-
Citations
35 Claims
-
1. A screen capture encoder comprising:
-
a frame buffer for storing a reference screen capture frame; and
a motion estimation module adapted to screen capture video, the motion estimation module for estimating motion from the reference screen capture frame for one or more regions of pixels in a current screen capture frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A screen capture decoder comprising:
-
a buffer for storing a reference screen capture frame; and
a motion compensation module adapted to screen capture video, the motion compensation module for compensating for motion from the reference screen capture frame for one or more regions of pixels in a current screen capture frame. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
-
selecting a candidate motion vector for a current frame region of one or more pixels, wherein the candidate motion vector indicates a location for a reference frame region of one or more pixels;
computing a distortion measure based at least in part upon identical pixel value matching criteria for the candidate motion vector;
selecting a final motion vector for the current frame region; and
encoding the current frame region with the final motion vector. - View Dependent Claims (21, 22, 23)
-
-
24. In a computer system, a method of motion estimation comprising:
for each of one or more motion vectors for a current frame region, computing a pixel count, each of the one or more motion vectors specifying a different reference frame region, wherein the computing includes, comparing pixel values at each of one or more corresponding locations in the current frame region and the different reference frame region specified by the motion vector;
for each of the one or more corresponding locations, incrementing the pixel count based upon whether the compared pixel values are equal or not equal;
selecting a final motion vector for the current frame region; and
encoding the current frame region with the final motion vector. - View Dependent Claims (25, 26, 27)
-
28. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of motion estimation from a reference frame to a current frame, the method comprising:
-
for each of one or more candidate motion vectors for a current frame region, selecting the candidate motion vector according to a search pattern that prioritizes horizontal motion vectors and vertical motion vectors above other motion vectors;
computing a distortion measure for the candidate motion vector;
selecting a final motion vector for the current frame region; and
encoding the current frame region with the final motion vector. - View Dependent Claims (29)
-
-
30. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
-
evaluating a candidate motion vector for a current frame region in a current screen capture frame, wherein the candidate motion vector indicates a location for a reference frame region in a reference screen capture frame, and wherein the evaluating includes computing a sub-sampled distortion measure for the candidate motion vector;
selecting a final motion vector for the current frame region; and
encoding the current frame region with the final motion vector. - View Dependent Claims (31)
-
-
32. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
-
using segmentation data to identify one or more unchanged pixels between a current screen capture frame and a reference screen capture frame;
performing motion compensation for one or more regions of the current screen capture frame; and
assembling the current screen capture frame based at least in part upon the one or more identified unchanged pixels and the one or more motion compensated regions. - View Dependent Claims (33)
-
-
34. A method comprising:
-
comparing pixel values at corresponding locations in a current frame and a previous frame of a series to identify pixels in the current frame with changed values;
creating a bounding box around a group of the pixels with changed values;
performing motion estimation for the bounding box, thereby determining motion data for the bounding box relative to the previous frame;
comparing the bounding box with a predicted bounding box to identify intra pixels within the bounding box not predicted by the motion estimation; and
encoding the intra pixels. - View Dependent Claims (35)
-
Specification