EP4583510A2

Local hash-based motion estimation for screen remoting scenarios

Abstract

Innovations in motion estimation adapted for screen remoting scenarios are described. For example, a video encoder calculates a hash value for a current block in a current picture. The video encoder searches, subject to a spatial constraint, for a matching block in a reference picture (e.g., the previous picture in display order) based at least in part on the hash value for the current block. The spatial constraint defines a search area in the reference picture within which hash values for candidate blocks in the reference picture may be compared to the hash value for the current block. By using a spatial constraint to limit the range of the local hash-based motion estimation, the video encoder can speed up the motion estimation process while still considering the candidate blocks in the reference picture that are most likely to match the current block.

EP4583510A2, drawing sheet 1
Sheet 1 of 30

Term

11.2 yearsto projected expiry

Projected expiry 23 November 2037, counted from filing; an application has no term until it is granted.

  1. Priority and filed
  2. Published
  3. Today
  4. Projected expiry

13 claims: 3 independent, 10 dependent

  1. 1
    A computer system for motion estimation, the system comprising:an input buffer (320) configured to receive one or more pictures in a video sequence;a video encoder (340) configured to encode the one or more pictures to produce encoded data by performing operations that include: encoding a current picture of the one or more pictures using a multi-level data structure that includes hash values for candidate blocks in a reference picture, the reference picture being split into multiple grid areas along horizontal and vertical grind lines and the multilevel data structure organizing the hash values for the candidate blocks by grid area and hash index, wherein encoding the current picture includes: calculating a hash value for a current block in the current picture;and searching, subject to a spatial constraint, for a matching block in a reference picture based at least in part on the hash value for the current block, wherein the spatial constraint defines a search area in the reference picture within which hash values for the candidate blocks in the reference picture may be compared to the hash value for the current block, the search area being either a given grid area among the multiple grid areas that includes a block collocated with the current block, or the given grid area and multiple grid areas adjacent to the given grid area in the reference picture;and an output buffer (370) configured to store the encoded data for output as part of a bitstream.
  2. 9
    In a computer system, a method for motion estimation, the method comprising:receiving one or more pictures in a video sequence;encoding the one or more pictures to produce encoded data by performing operations that include, for a current picture of the one or more pictures: determining (722) one or more changed regions of the current picture relative to a reference picture;within the one or more changed regions, performing (724) global hash-based motion estimation, HBME, to identify large areas made of blocks that have uniform motion relative to the reference picture;after the global HBME, within any remaining portions of the one or more changed regions that do not pertain to the large areas identified through the global HBME, performing (726) local HBME for any blocks that have textual content or a pivot point, a block containing a pivot point being a block containing a pattern indicative of an edge, a character or another distinctive configuration of sample values, wherein the local HBME includes: encoding a current picture of the one or more picture using a data structure that includes hash values for candidate blocks in a reference picture, the reference picture being split into multiple grid areas along horizontal and vertical grid lines and the multilevel data structure organizing the hash values for the candidate blocks by grid area and hash index, wherein encoding the current picture includes: calculating a hash value for a current block in the current picture;and searching, subject to a spatial constraint, for a matching block in a reference picture based at least in part on the hash value for the current block, wherein the spatial constraint defines a search area in the reference picture within which hash values for the candidate blocks in the reference picture may be compared to the hash value for the current block, the search area being either a given grid area among the multiple grid areas that includes a block collocated with the current block, or the given grid area and multiple grid areas adjacent to the given grid area in the reference picture;after the local HBME, within any remaining portions of the one or more changed regions for which motion estimation through global and local HBME has failed, performing (728) full block-matching motion estimation;and outputting the encoded data as part of a bitstream.
  3. 13
    One or more computer-readable media storing computer-executable instructions for causing a computer system, when programmed thereby, to perform operations for motion estimation in screen remoting scenarios, the operations comprising:receiving one or more pictures in a video sequence;encoding the one or more pictures to produce encoded data by performing operations that include, for a current block of a current picture of the one or more pictures: determining whether the current block contains textual content and contains a pivot point, a block containing a pivot point being a block containing a pattern indicative of an edge, a character or another distinctive configuration of sample values;if the current block contains textual content and contains a pivot point: encoding the current block using a data structure that includes hash values for candidate blocks in a reference picture, the reference picture being split into multiple grid areas along horizontal and vertical grid lines and the multilevel data structure organizing the hash values for the candidate blocks by grid area and hash index, wherein encoding the current block includes: calculating a hash value for the current block in the current picture;and searching, subject to a spatial constraint, for a matching block in a reference picture based at least in part on the hash value for the current block, wherein the spatial constraint defines a search area in the reference picture within which hash values for the candidate blocks in the reference picture may be compared to the hash value for the current block, the search area being either a given grid area among the multiple grid areas that includes a block collocated with the current block, or the given grid area and multiple grid areas adjacent to the given grid area in the reference picture;otherwise, performing full block-matching motion estimation for the current block;and outputting the encoded data as part of a bitstream.