Encoder decisions based on results of hash-based block matching

US10681372B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10681372-B2
Application numberUS-201415321536-A
CountryUS
Kind codeB2
Filing dateJun 23, 2014
Priority dateJun 23, 2014
Publication dateJun 9, 2020
Grant dateJun 9, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Innovations in encoder-side decisions that use the results of hash-based block matching when setting parameters are presented. For example, some of the innovations relate to ways to select motion vector precision depending on the results of hash-based block matching. Other innovations relate to ways to selectively disable sample adaptive offset filtering depending on the results of hash-based block matching. Still other innovations relate to ways to select which reference pictures to retain in a reference picture set depending on the results of hash-based block matching.

First claim

Opening claim text (preview).

We claim: 1. A computing device comprising one or more processing units and memory, wherein the computing device implements an encoder system comprising: a video encoder configured to encode video to produce encoded data, wherein the video encoder is configured to determine a motion vector (“MV”) precision for a unit of the video based at least in part on results of hash-based block matching by performing operations that include: splitting the unit into multiple blocks; determining a first measure of a total number of the multiple blocks of the unit; determining a second measure of a number of the multiple blocks of the unit that have matching blocks identified in the hash-based block matching; determining a third measure of a number of the multiple blocks of the unit that contain camera video content as opposed to artificially-created video content, as indicated by a pattern of uniform sample values; determining that the second measure satisfies a matched block threshold and, as a result and based at least in part on the first measure and the third measure, selecting integer-sample MV precision for the unit; and using the selected integer-sample MV precision when encoding the unit without performing interpolation of sample values at fractional-sample positions; and a buffer configured to store the encoded data for output in a bitstream. 2. The computing device of claim 1 wherein, for the hash-based block matching, the video encoder is configured to: for a given block of the multiple blocks of the unit: determine a hash value for the given block; and determine whether there is a match among multiple candidate blocks of one or more reference pictures based at least in part on the hash value for the given block. 3. The computing device of claim 2 wherein the match signifies matching hash values between the given block and one of the multiple candidate blocks. 4. The computing device of claim 3 wherein the match further signifies sample-by-sample matching between the given block and the one of the multiple candidate blocks. 5. The computing device of claim 1 wherein, for the hash-based block matching, the video encoder is configured to compare hash values computed from input sample values of the unit and from input sample values for one or more reference pictures. 6. The computing device of claim 1 wherein the unit is selected from a group consisting of sequence, series of pictures between scene changes, group of pictures, picture, tile, slice and coding unit, and wherein the MV precision is selected from a group consisting of integer-sample MV precision and quarter-sample MV precision. 7. The computing device of claim 1 wherein the second measure is the number of the multiple blocks of the unit that have matching blocks identified in the hash-based block matching. 8. The computing device of claim 1 wherein the second measure is a rate equal to (a) the number of the multiple blocks of the unit that have matching blocks identified in the hash-based block matching divided by (b) the total number of the multiple blocks of the unit. 9. The computing device of claim 1 wherein the unit is a picture and the multiple blocks are 8×8 blocks of the picture. 10. In a computing device, a method comprising: encoding an image or video to produce encoded data, including: performing hash-based block matching for a current block of a current picture including: determining a hash value for the current block; and attempting to find a match among multiple candidate blocks of one or more reference pictures based at least in part on the hash value for the current block; using results of the hash-based block matching for the current block to determine whether to disable or enable sample adaptive offset (“SAO”) filtering for the current block, wherein the results of the hash-based block matching for the current block include whether the match is found during the hash-based block matching for the current block; and based on results of the determining whether to disable or enable SAO filtering for the current block, selectively disabling or enabling the SAO filtering for the current block, including performing the SAO filtering for the current block if no match is found during the hash-based block matching for the current block; and outputting the encoded data in a bitstream. 11. The method of claim 10 wherein the determining whether to disable or enable SAO filtering for the current block also uses expected quality of the current block relative to quality of a candidate block, among the multiple candidate blocks, for the match. 12. The method of claim 11 wherein the expected quality of the current block is indicated by a quantization parameter (“QP”) value that applies for the current block, and wherein the quality of the candidate block for the match is indicated by a QP value that applies for the candidate block for the match. 13. The method of claim 10 wherein the encoding further comprises: if the SAO filtering is enabled for the current block, determining parameters for the SAO filtering for the current block. 14. The method of claim 10 wherein the current block is a coding tree block of a coding tree unit, and wherein the SAO filtering is also selectively disabled or enabled for one or more other coding tree blocks of the coding tree unit. 15. The method of claim 10 wherein, for the hash-based block matching, hash values are computed from input sample values of the current block of the current picture and from input sample values of the multiple candidate blocks of the one or more reference pictures. 16. One or more computer-readable memory or storage devices storing computer-executable instructions for causing a processing unit, when programmed thereby, to perform operations comprising: encoding video to produce encoded data, including determining which of multiple reference pictures to retain in a reference picture set, available for use in motion-compensated prediction, based at least in part on results of hash-based block matching, wherein the determining which of the multiple reference pictures to retain includes: for each reference picture of the multiple reference pictures, using the hash-based block matching to estimate how well that reference picture predicts a given picture; and dropping, from the reference picture set, a reference picture of the multiple reference pictures that is expected to predict the given picture worse than other ones of the multiple reference pictures, thereby making the dropped reference picture unavailable for use in motion-compensated prediction; and outputting the encoded data in a bitstream. 17. The one or more computer-readable memory or storage devices of claim 16 wherein, for each reference picture of the multiple reference pictures, a count indicates how many of the blocks of the given picture have matching blocks in that reference picture, and wherein the dropped reference picture is the one of the multiple reference pictures having lowest count. 18. The one or more computer-readable memory or storage devices of claim 16 wherein, for the hash-based block matching, hash values are computed from input sample values of the given picture and from input sample values for the multiple reference pictures. 19. The one or more computer-readable memory or storage devices of claim 16 wherein the encoding further comprises checking whether the reference picture set is past full.

Assignees

Inventors

Classifications

  • the region being a block, e.g. a macroblock · CPC title

  • characterised by techniques for memory access · CPC title

  • H04N19/52Primary

    by predictive encoding · CPC title

  • Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635) · CPC title

  • with sub-pixel accuracy · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10681372B2 cover?
Innovations in encoder-side decisions that use the results of hash-based block matching when setting parameters are presented. For example, some of the innovations relate to ways to select motion vector precision depending on the results of hash-based block matching. Other innovations relate to ways to selectively disable sample adaptive offset filtering depending on the results of hash-based b…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc, Li Bin, Xu Jizheng
What technology area does this patent fall under?
Primary CPC classification H04N19/52. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 09 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).