Patent ID: 7224731

Claim:
A screen capture encoder comprising: a screen capture module for recording plural images of a computer desktop environment in operation as plural screen capture frames, the plural screen capture frames including a current screen capture frame; 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 pixel values in the current screen capture frame, wherein the estimating comprises for a current region of pixel values among the one or more regions of pixel values in the current screen capture frame: searching for a candidate motion vector for the current region of pixel values in the current screen capture frame according to a motion vector search pattern, wherein the current region of pixel values is at a location (x, y) in the current screen capture frame, and wherein the motion vector search pattern prioritizes motion vectors characteristic of motion in screen capture video such that the motion vectors characteristic of motion in screen capture video are evaluated before other motion vectors; evaluating the candidate motion vector for the current region of pixel values, wherein the candidate motion vector indicates a displacement location (Δx+x, Δy+y) of a reference frame region of pixel values in the reference screen capture frame, wherein the evaluating the candidate motion vector comprises: comparing the current region at the location (x, y) in the current screen capture frame with the reference frame region at the displacement location (Δx+x, Δy+y) in the reference screen capture frame; and computing a distortion measure based at least in part upon the comparing, wherein the distortion measure measures a difference between the current region and the reference frame region using identical pixel value matching criteria; and selecting a final motion vector for the current region of pixel values based at least in part on the evaluating.