IP Library Granted Patent US 10,390,034
Granted Patent B2
US 10,390,034 · App. 14/222,580 · Granted Aug 20, 2019

Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area

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,390,034
App. No.
14/222,580
Granted
Aug 20, 2019
Kind
B2
Abstract

Innovations in encoder-side options for intra block copy (“BC”) prediction mode facilitate intra 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 estimation of sample values within an overlap area of a current block during block vector estimation. Other innovations relate to prediction of block vector (“BV”) values during encoding or decoding using “ping-pong” approaches.

Claims (72)

1. A computing device comprising:

an encoder configured to perform operations to produce encoded data for a picture, wherein the encoder is a video encoder or image encoder, and wherein the operations include:

estimating reconstructed sample values within an overlap area of a current block of the picture, wherein the current block has multiple smaller blocks, the overlap area covering parts of the current block that are in potential intra-prediction regions for at least one of the multiple smaller blocks, wherein the estimating the reconstructed sample values within the overlap area includes using corresponding original sample values from within the overlap area to determine the estimated reconstructed sample values, respectively, within the overlap area without using reconstructed sample values from outside the overlap area as the estimated reconstructed sample values, respectively, within the overlap area; and

performing block vector (“By”) estimation to determine a BV value for the current block, the BV value indicating a displacement from the current block to a region of the picture that includes sample values used for prediction, and wherein the BV estimation uses at least some of the estimated reconstructed sample values within the overlap area of the current block; and

a buffer configured to store the encoded data for output as part of a bitstream.

2. The computing device of claim 1 wherein the corresponding original sample values from within the overlap area are used as the estimated reconstructed sample values, respectively, within the overlap area.

3. The computing device of claim 1 wherein the using the corresponding original sample values from within the overlap area to determine the estimated reconstructed sample values, respectively, within the overlap area includes:

processing the corresponding original sample values from within the overlap area using a frequency transform, quantization, inverse quantization and an inverse frequency transform; and

using the processed sample values as the estimated reconstructed sample values, respectively, within the overlap area.

4. The computing device of claim 1 wherein:

the using the corresponding original sample values from within the overlap area to determine the estimated reconstructed sample values, respectively, within the overlap area includes:

predicting sample values within the overlap area using at least one BV predictor;

determining residual values based on differences between the predicted sample values and the corresponding original sample values from the overlap area;

processing the residual values using a frequency transform, quantization, inverse quantization and an inverse frequency transform; and

combining results of the processing with the predicted sample values; and

results of the combining are used as the estimated reconstructed sample values, respectively, within the overlap area.

5. The computing device of claim 1 wherein the BV estimation includes, for each of one or more candidate BV values for the current block:

performing block matching operations between the multiple smaller blocks, respectively, and candidate intra-prediction regions according to the candidate BV value.

6. The computing device of claim 1 wherein the BV estimation includes:

for each of the multiple smaller blocks, determining a BV value for the smaller block; and

synthesizing the BV values for the multiple smaller blocks into the BV value for the current block.

7. The computing device of claim 1 wherein the operations further comprise:

performing intra block copy (“BC”) prediction for the current block using the BV value for the current block, including performing BC operations on a block-by-block basis for the multiple smaller blocks.

8. The computing device of claim 1 wherein the current block is a coding block of a coding unit, and wherein each of the multiple blocks is a transform block of a transform unit.

9. In a computing device that implements a video encoder or image encoder, a method comprising:

encoding a picture to produce encoded data, wherein the encoding includes:

estimating reconstructed sample values within an overlap area of a current block of the picture, wherein the current block has multiple smaller blocks, the overlap area covering parts of the current block that are in potential intra-prediction regions for at least one of the multiple smaller blocks, wherein the estimating the reconstructed sample values within the overlap area includes:

determining estimated values for the reconstructed sample values, respectively, within the overlap area using corresponding original sample values from within the overlap area; and

using the estimated values as the reconstructed sample values, respectively, within the overlap area without using reconstructed sample values from outside the overlap area as the reconstructed sample values, respectively, within the overlap area; and

performing block vector (“By”) estimation to determine a BV value for the current block, the BV value indicating a displacement from the current block to a region of the picture that includes sample values used for prediction, and wherein the BV estimation uses at least some of the estimated reconstructed sample values within the overlap area of the current block; and

outputting the encoded data as part of a bitstream.

10. The method of claim 9 wherein:

the estimated values are the corresponding original sample values from within the overlap area; and

the corresponding original sample values from within the overlap area are used as the reconstructed sample values, respectively, within the overlap area.

11. The method of claim 9 wherein:

the determining the estimated values for the reconstructed sample values within the overlap area includes processing the corresponding original sample values from the overlap area using a frequency transform, quantization, inverse quantization and an inverse frequency transform; and

the processed sample values are used as the reconstructed sample values, respectively, within the overlap area.

12. The method of claim 9 wherein:

the determining the estimated values for the reconstructed sample values respectively, within the overlap area includes:

predicting sample values within the overlap area using at least one BV predictor;

determining residual values based on differences between the predicted sample values and the corresponding original sample values from the overlap area;

processing the residual values using a frequency transform, quantization, inverse quantization and an inverse frequency transform;

combining results of the processing with the predicted sample values; and

results of the combining are used as the reconstructed sample values, respectively, within the overlap area.

13. The method of claim 9 wherein the BV estimation includes, for each of one or more candidate BV values for the current block:

performing block matching operations between the multiple smaller blocks, respectively, and candidate intra-prediction regions according to the candidate BV value.

14. The method of claim 9 wherein the BV estimation includes:

for each of the multiple smaller blocks, determining a BV value for the smaller block; and

synthesizing the BV values for the multiple smaller blocks into the BV value for the current block.

15. The method of claim 9 wherein the encoding further comprises:

performing intra block copy (“BC”) prediction for the current block using the BV value for the current block, including performing BC operations on a block-by-block basis for the multiple smaller blocks.

16. The method of claim 9 wherein the current block is a coding block of a coding unit, and wherein each of the multiple blocks is a transform block of a transform unit.

17. One or more computer-readable media storing computer-executable instructions for causing a computing device, when programmed thereby, to perform operations, wherein the one or more computer-readable media are selected from the group consisting of volatile memory, non-volatile memory, magnetic disk, CD-ROM, and DVD, the operations comprising:

encoding a picture to produce encoded data, wherein the encoding includes:

estimating reconstructed sample values within an overlap area of a current block of the picture, wherein the current block has multiple smaller blocks, the overlap area covering parts of the current block that are in potential intra-prediction regions for at least one of the multiple smaller blocks, wherein the estimating the reconstructed sample values within the overlap area includes:

determining estimated values for the reconstructed sample values, respectively, within the overlap area using corresponding original sample values from within the overlap area; and

using the estimated values as the reconstructed sample values, respectively, within the overlap area without using reconstructed sample values from outside the overlap area as the reconstructed sample values, respectively, within the overlap area; and

performing block vector (“By”) estimation to determine a BV value for the current block, the BV value indicating a displacement from the current block to a region of the picture that includes sample values used for prediction, and wherein the BV estimation uses at least some of the estimated reconstructed sample values within the overlap area of the current block; and

outputting the encoded data as part of a bitstream.

18. The one or more computer-readable media of claim 17 wherein:

the estimated values are the corresponding original sample values from within the overlap area; and

the corresponding original sample values from within the overlap area are used as the reconstructed sample values, respectively, within the overlap area.

19. The one or more computer-readable media of claim 17 wherein:

the determining the estimated values for the reconstructed sample values respectively, within the overlap area includes processing the corresponding original sample values from the overlap area using a frequency transform, quantization, inverse quantization and an inverse frequency transform; and

the processed sample values are used as the reconstructed sample values, respectively, within the overlap area.

20. The one or more computer-readable media of claim 17 wherein:

the determining the estimated values for the reconstructed sample values respectively, within the overlap area includes:

predicting sample values within the overlap area using at least one BV predictor;

determining residual values based on differences between the predicted sample values and the corresponding original sample values from the overlap area;

processing the residual values using a frequency transform, quantization, inverse quantization and an inverse frequency transform;

combining results of the processing with the predicted sample values; and

results of the combining are used as the reconstructed sample values, respectively, within the overlap area.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2014
From: ZHU, LIHUA; SULLIVAN, GARY J.; WU, YONGJUN
To: MICROSOFT CORPORATION
Reel/Frame 033948/0046 →
Cited By (8)
US 12,244,823 US 12,294,722 US 12,316,860 US 12,355,962 US 12,375,711 US 12,413,771 US 12,634,458 US 12,695,895