Encoder-side decisions for screen content encoding
US-2016269732-A1 · Sep 15, 2016 · US
US10681372B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10681372-B2 |
| Application number | US-201415321536-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 23, 2014 |
| Priority date | Jun 23, 2014 |
| Publication date | Jun 9, 2020 |
| Grant date | Jun 9, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
the region being a block, e.g. a macroblock · CPC title
characterised by techniques for memory access · CPC title
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.