IP Library › Granted Patent US 10,368,092
Granted Patent B2
US 10,368,092 · App. 15/029,585 · Granted Jul 30, 2019

Encoder-side decisions for block flipping and skip mode in intra block copy prediction

Inventors: Bin Li (Beijing, CN); Jizheng Xu (Beijing, CN); Feng Wu (Beijing, CN)
Assignee: Microsoft Technology Licensing, LLC
H04N19/593H04N19/105H04N19/124H04N19/126H04N19/132H04N19/176H04N19/61
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,368,092
App. No.
15/029,585
Granted
Jul 30, 2019
Kind
B2
Abstract

Innovations in the area of encoding blocks using hash-based block matching improve coding efficiency in many situations. For example, some of the innovations relate to encoder-side decisions about when to use block flipping during prediction. Other innovations relate to encoder-side decisions about when to use skip mode for a block predicted using intra block copy (“BC”) prediction.

Claims (51)

1. In a computing device with a video encoder or an image encoder, a method comprising:

deciding whether a current block in a current picture is to be encoded using an intra block copy (“BC”) prediction in a skip mode, including:

performing a hash-based block matching for the current block;

determining that the hash-based block matching fails for the current block;

determining a reference region in the current picture, including selecting a predicted block vector (“BV”) value for the current block from among multiple available BV values in a neighborhood around the current block, wherein the predicted BV value indicates a displacement to the reference region in the current picture; and

determining that input sample values of the reference region identically match corresponding input sample values of the current block, a quantization parameter (“QP”) value for the current block being greater than or equal to a QP value for the reference region; and

encoding the current block using the intra BC prediction in the skip mode, the skip mode using the predicted BV value for the current block; and

outputting in a bitstream encoded data, wherein the bitstream lacks a BV differential value for the current block and lacks residual data for the current block.

2. The method of claim 1 wherein the reference region covers at least part of each of multiple blocks in the current picture, at least some of the multiple blocks having different QP values, and wherein the QP value for the reference region is one of:

a smallest QP value among the different QP values for the multiple blocks;

a QP value of whichever block among the multiple blocks covers a largest portion of the reference region;

an average QP value among the different QP values for the multiple blocks; and

a weighted average QP value among the different QP values for the multiple blocks.

3. The method of claim 1 wherein the intra BC prediction includes:

determining an intra BC prediction region for the current block using the reference region, wherein the intra BC prediction region is flipped relative to the reference region.

4. The method of claim 3 wherein the intra BC prediction region is flipped horizontally relative to the reference region and/or flipped vertically relative to the reference region.

5. The method of claim 1 wherein the current block is part of a coding unit.

6. 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:

deciding whether a current block in a current picture is to be encoded using an intra block copy (“BC”) prediction in a skip mode, including:

performing a hash-based block matching for the current block;

determining that the hash-based block matching fails for the current block;

determining a reference region in the current picture, including selecting a predicted block vector (“BV”) value for the current block from among multiple available BV values in a neighborhood around the current block, wherein the predicted BV value indicates a displacement to the reference region in the current picture; and

determining that input sample values of the reference region identically match corresponding input sample values of the current block, a quantization parameter (“QP”) value for the current block being greater than or equal to a QP value for the reference region; and

encoding the current block using the intra BC prediction in the skip mode, the skip mode using the predicted BV value for the current block; and

outputting in a bitstream encoded data, wherein the bitstream lacks a BV differential value for the current block and lacks residual data for the current block.

7. The one or more computer-readable memory or storage devices of claim 6 wherein the reference region covers at least part of each of multiple blocks in the current picture, at least some of the multiple blocks having different QP values, and wherein the QP value for the reference region is one of: a smallest QP value among the different QP values for the multiple blocks; a QP value of whichever block among the multiple blocks covers a largest portion of the reference region;

an average QP value among the different QP values for the multiple blocks; and

a weighted average QP value among the different QP values for the multiple blocks.

8. The one or more computer-readable memory or storage devices of claim 6 wherein the current block is part of a coding unit.

9. A computing device comprising:

one or more buffers configured to store a current picture; and

a video encoder or an image encoder configured to perform operations comprising:

deciding whether a current block in the current picture is to be encoded using an intra block copy (“BC”) prediction in a skip mode, including:

performing a hash-based block matching for the current block;

determining that the hash-based block matching fails for the current block;

determining a reference region in the current picture, including selecting a predicted block vector (“BV”) value for the current block from among multiple available BV values in a neighborhood around the current block, wherein the predicted BV value indicates a displacement to the reference region in the current picture; and

determining that input sample values of the reference region identically match corresponding input sample values of the current block, a quantization parameter (“QP”) value for the current block being greater than or equal to a QP value for the reference region; and

encoding the current block using the intra BC prediction in the skip mode, the skip mode using the predicted BV value for the current block; and

outputting in a bitstream encoded data, wherein the bitstream lacks a BV differential value for the current block and lacks residual data for the current block.

10. The computing device of claim 9 wherein the reference region covers at least part of each of multiple blocks in the current picture, at least some of the multiple blocks having different QP values, and wherein the QP value for the reference region is one of:

a smallest QP value among the different QP values for the multiple blocks;

a QP value of whichever block among the multiple blocks covers a largest portion of the reference region;

an average QP value among the different QP values for the multiple blocks; and

a weighted average QP value among the different QP values for the multiple blocks.

11. The computing device of claim 9 wherein the current block is part of a coding unit.

12. The computing device of claim 9 wherein the intra BC prediction includes:

determining an intra BC prediction region for the current block using the reference region, wherein the intra BC prediction region is flipped relative to the reference region.

13. The computing device of claim 12 wherein the intra BC prediction region is flipped horizontally relative to the reference region and/or flipped vertically relative to the reference region.

14. The one or more computer-readable memory or storage devices of claim 6 wherein the intra BC prediction includes:

determining an intra BC prediction region for the current block using the reference region, wherein the intra BC prediction region is flipped relative to the reference region.

15. The one or more computer-readable memory or storage devices of claim 14 wherein the intra BC prediction region is flipped horizontally relative to the reference region and/or flipped vertically relative to the reference region.

Continuity (1)
Related Publication 20160277761A1 · Sep 22, 2016
Cited By (4)
US 12,335,531 US 12,452,435 US 12,457,327 US 12,641,248