IP Library Granted Patent US 11,222,092
Granted Patent B2
US 11,222,092 · App. 16/513,389 · Granted Jan 11, 2022

Optimization for deconvolution

Inventor: Ganesh Venkatesh (San Jose, CA)
Assignee: FACEBOOK TECHNOLOGIES, LLC
G06F17/16G06N3/04G06N3/08G06T3/4023G06T3/4053
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 11,222,092
App. No.
16/513,389
Granted
Jan 11, 2022
Kind
B2
Abstract

Disclosed herein includes a system, a method, and a device for improving computational efficiency of deconvolution by reducing a number of dot products. In one aspect, an input image having a set of pixels is received. A first dot product may be performed on a subset of the set of pixels of the input image and a portion of a kernel, to generate a first pixel of an output image. A number of multiplications performed for the first dot product performed may be less than a number of elements of the kernel. A second dot product on a remaining portion of the kernel to generate the first pixel of the output image may be bypassed.

Claims (43)

1. A method comprising:

receiving, by one or more processors, an input image having a set of pixels;

determining, by the one or more processor according to predetermined mapping information, a respective subset of the set of pixels of the input image to be bypassed for generating each pixel of an output image;

performing, by the one or more processors, a first dot product on a first subset of the set of pixels of the input image and a portion of a kernel, to generate a first pixel of the output image, wherein a number of multiplications performed for the first dot product is less than a number of elements of the kernel; and

bypassing, by the one or more processors according to the determining, a second dot product on a second subset of the set of pixels of the input image and a remaining portion of the kernel to generate the first pixel of the output image.

2. The method of claim 1 , further comprising:

identifying, by the one or more processors according to the predetermined mapping information indicating a corresponding dot product to bypass for each pixel of the output image, the second dot product to bypass for the first pixel of the output image; and

bypassing, by the one or more processors according to the predetermined mapping information, the second dot product on the remaining portion of the kernel to generate the first pixel of the output image.

3. The method of claim 1 , further comprising:

identifying, by the one or more processors according to the predetermined mapping information indicating a corresponding dot product to perform for each pixel of the output image, the first dot product to perform for the first pixel for the output image; and

performing, by the one or more processors according to the predetermined mapping information, the first dot product on the first subset of the set of pixels of the input image and the portion of the kernel, to generate the first pixel of the output image.

4. The method of claim 1 , wherein the output image has more number of pixels than the input image.

5. The method of claim 1 , further comprising:

performing, by the one or more processors, a third dot product on i) the first subset of the set of pixels of the input image and ii) another portion of the kernel to generate a second pixel of the output image.

6. The method of claim 5 , wherein the number of multiplications performed for the first dot product to generate the first pixel of the output image is same as a number of multiplications performed for the third dot product to generate the second pixel of the output image.

7. The method of claim 1 , further comprising:

performing, by the one or more processors, a third dot product on i) another subset of the set of pixels of the input image and ii) the portion of the kernel, to generate a second pixel of the output image.

8. The method of claim 7 , wherein the number of multiplications performed for the first dot product to generate the first pixel of the output image is same as a number of multiplications performed for the third dot product to generate the second pixel of the output image.

9. The method of claim 1 , further comprising:

performing, by the one or more processors, a third dot product on i) another subset of the set of pixels of the input image and ii) another portion of the kernel, to generate a second pixel of the output image.

10. The method of claim 9 , wherein the number of multiplications performed for of the first dot product to generate the first pixel of the output image is different from a number of multiplications performed for the third dot product to generate the second pixel of the output image.

11. A system comprising:

one or more processors configured to:

receive an input image having a set of pixels;

determine, according to predetermined mapping information, a respective subset of the set of pixels of the input image to be bypassed for generating each pixel of an output image;

perform a first dot product on a first subset of the set of pixels of the input image and a portion of a kernel, to generate a first pixel of the output image, wherein a number of multiplications performed for the first dot product is less than a number of elements of the kernel; and

bypass, according to the determination, a second dot product on a second subset of the set of pixels of the input image and a remaining portion of the kernel to generate the first pixel of the output image.

12. The system of claim 11 , wherein the one or more processors are configured to:

identify, according to the predetermined mapping information indicating a corresponding dot product to bypass for each pixel of the output image, the second dot product to bypass for the first pixel of the output image; and

bypass, according to the predetermined mapping information, the second dot product on the remaining portion of the kernel to generate the first pixel of the output image.

13. The system of claim 11 , wherein the one or more processors are configured to:

identify, according to the predetermined mapping information indicating a corresponding dot product to perform for each pixel of the output image, the first dot product to perform for the first pixel of the output image; and

perform, according to the predetermined mapping information, the first dot product on the first subset of the set of pixels of the input image and the portion of the kernel, to generate the first pixel of the output image.

14. The system of claim 11 , wherein the output image has more number of pixels than the input image.

15. The system of claim 11 , wherein the one or more processors are configured to:

perform a third dot product on i) the first subset of the set of pixels of the input image and ii) another portion of the kernel to generate a second pixel of the output image.

16. The system of claim 15 , wherein the number of multiplications performed for the first dot product to generate the first pixel of the output image is same as a number of multiplications performed for the third dot product to generate the second pixel of the output image.

17. The system of claim 11 , wherein the one or more processors are configured to:

perform a third dot product on i) another subset of the set of pixels of the input image and ii) the portion of the kernel, to generate a second pixel of the output image.

18. The system of claim 17 , wherein the number of multiplications performed for the first dot product to generate the first pixel of the output image is same as a number of multiplications performed for the third dot product to generate the second pixel of the output image.

19. The system of claim 11 , wherein the one or more processors are configured to:

perform a third dot product on i) another subset of the set of pixels of the input image and ii) another portion of the kernel, to generate a second pixel of the output image.

20. The system of claim 19 , wherein the number of multiplications performed for the first dot product to generate the first pixel of the output image is different from a number of multiplications performed for the third dot product to generate the second pixel of the output image.

Assignments (2)
CHANGE OF NAME Recorded Jul 22, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060816/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2019
From: VENKATESH, GANESH
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 050689/0131 →
Continuity (1)
Related Publication 20210019363A1 · Jan 21, 2021