Motion estimation for screen remoting scenarios
First Claim
1. A computer system comprising:
- an input buffer configured to receive multiple pictures in a video sequence;
a video encoder configured to perform encoding of the multiple pictures to produce encoded data, wherein the encoding includes performing motion estimation for a current picture of the multiple pictures, the motion estimation for the current picture including;
finding a pivot point in the current picture;
calculating a hash value for the pivot point in the current picture; and
searching for a matching area in a previous picture based at least in part on the hash value for the pivot point in the current picture; and
an output buffer configured to store the encoded data for output as part of a bitstream.
1 Assignment
0 Petitions
Accused Products
Abstract
Innovations in motion estimation adapted for screen remoting scenarios are described herein. For example, as part of motion estimation for a current picture, a video encoder finds a pivot point in the current picture, calculates a hash value for the pivot point, and searches for a matching area in a previous picture. In doing so, the video encoder can calculate a hash index from the hash value and look up the hash index in a data structure to find candidate pivot points in the previous picture. The video encoder can compare the hash value for the pivot point in the current picture to a hash value for a candidate pivot point in the previous picture and, when the hash values match, compare sample values around the respective pivot points. In this way, the video encoder can quickly detect large areas of exact-match blocks having uniform motion.
-
Citations
40 Claims
-
1. A computer system comprising:
-
an input buffer configured to receive multiple pictures in a video sequence; a video encoder configured to perform encoding of the multiple pictures to produce encoded data, wherein the encoding includes performing motion estimation for a current picture of the multiple pictures, the motion estimation for the current picture including; finding a pivot point in the current picture; calculating a hash value for the pivot point in the current picture; and searching for a matching area in a previous picture based at least in part on the hash value for the pivot point in the current picture; and an output buffer configured to store the encoded data for output as part of a bitstream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method comprising:
-
receiving multiple pictures in a video sequence; encoding the multiple pictures to produce encoded data, wherein the encoding includes performing motion estimation for a current picture of the multiple pictures, the motion estimation for the current picture including; finding a pivot point in the current picture; calculating a hash value for the pivot point in the current picture; and searching for a matching area in a previous picture based at least in part on the hash value for the pivot point in the current picture; and outputting the encoded data as part of a bitstream. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. One or more computer-readable media storing computer-executable instructions for causing a computer system, when programmed thereby, to perform operations comprising:
-
receiving multiple pictures in a sequence; encoding the multiple pictures to produce encoded data, wherein the encoding includes performing motion estimation for a current picture of the multiple pictures, the motion estimation for the current picture including; finding a pivot point in the current picture; calculating a hash value for the pivot point in the current picture; and searching for a matching area in a previous picture based at least in part on the hash value for the pivot point in the current picture; and outputting the encoded data as part of a bitstream. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
Specification