Hash-based block matching in video and image coding
First Claim
Patent Images
1. A computing device comprising one or more processing units and memory, wherein the computing device implements an encoder of video or images, the encoder being configured to perform operations comprising:
- encoding data for a current block of a picture using hierarchical hash-based block matching with multiple stages, including;
determining a first hash value for the current block using a first hash function;
determining a second hash value for the current block using a second hash function different than the first hash function;
identifying a matching block among multiple candidate blocks based at least in part on the first hash value for the current block and the second hash value for the current block, including using the first hash value for the current block to select a candidate block list in a data structure that organizes hash values for the multiple candidate blocks, thereby eliminating at least one of the multiple candidate blocks in one of the multiple stages of the hierarchical hash-based block matching, and, based at least in part on the second hash value for the current block, determining the matching block among any candidate blocks in the selected candidate block list, thereby eliminating at least one of the multiple candidate blocks in a next stage of the multiple stages of the hierarchical hash-based block matching; and
identifying a block vector value for the matching block, the block vector value indicating a displacement to a region of sample values used for block copy prediction; and
outputting the encoded data, wherein the encoded data includes the block vector value.
1 Assignment
0 Petitions
Accused Products
Abstract
Innovations in hash-based block matching facilitate block copy (“BC”) prediction that is more effective in terms of rate-distortion performance and/or computational efficiency of encoding. For example, some of the innovations relate to encoding that uses hash-based block matching during block vector (“By”) estimation. Other innovations relate to data structures that organize candidate blocks for hash-based block matching. Still other innovations relate to hierarchical hash-based block matching.
166 Citations
20 Claims
-
1. A computing device comprising one or more processing units and memory, wherein the computing device implements an encoder of video or images, the encoder being configured to perform operations comprising:
-
encoding data for a current block of a picture using hierarchical hash-based block matching with multiple stages, including; determining a first hash value for the current block using a first hash function; determining a second hash value for the current block using a second hash function different than the first hash function; identifying a matching block among multiple candidate blocks based at least in part on the first hash value for the current block and the second hash value for the current block, including using the first hash value for the current block to select a candidate block list in a data structure that organizes hash values for the multiple candidate blocks, thereby eliminating at least one of the multiple candidate blocks in one of the multiple stages of the hierarchical hash-based block matching, and, based at least in part on the second hash value for the current block, determining the matching block among any candidate blocks in the selected candidate block list, thereby eliminating at least one of the multiple candidate blocks in a next stage of the multiple stages of the hierarchical hash-based block matching; and identifying a block vector value for the matching block, the block vector value indicating a displacement to a region of sample values used for block copy prediction; and outputting the encoded data, wherein the encoded data includes the block vector value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 20)
-
-
9. In a computing device with a video encoder or image encoder, a method comprising:
-
creating a data structure that organizes multiple candidate blocks, each of the multiple candidate blocks having a first hash value from a first hash function and a second hash value from a second hash function different than the first hash function; encoding data for a current block of a picture, including using the data structure in hierarchical hash-based block matching for block vector estimation by eliminating, in each of multiple stages, at least one of the multiple candidate blocks, the block vector estimation identifying a block vector value that indicates a displacement to a region of sample values used for block copy prediction, wherein the encoding the data for the current block includes; determining a first hash value for the current block using the first hash function; determining a second hash value for the current block using the second hash function; using the first hash value for the current block to select a candidate block list in the data structure; and based at least in part on the second hash value for the current block, determining a matching block among any candidate blocks in the selected candidate block list; and outputting the encoded data for the picture. - View Dependent Claims (10, 11, 17, 18)
-
-
12. One or more computer-readable memory or storage devices storing computer-executable instructions for causing a computing device, when programmed thereby, to perform operations comprising:
-
encoding data for a current block of a picture, wherein the encoding includes hierarchical hash-based block matching for block vector estimation, the block vector estimation identifying a block vector value that indicates a displacement to a region of sample values used for block copy prediction, wherein the hierarchical hash-based block matching for the current block includes identifying a matching block among multiple candidate blocks by; determining a first hash value for the current block using a first hash function; determining a second hash value for the current block using a second hash function different than the first hash function; using the first hash value for the current block to select a candidate block list in a data structure, thereby eliminating at least one of the multiple candidate blocks from consideration based at least in part on the first hash value for the current block; and based at least in part on the second hash value for the current block, determining a matching block among any candidate blocks in the selected candidate block list; and outputting the encoded data for the picture. - View Dependent Claims (13, 14, 15, 16, 19)
-
Specification