IP Library › Granted Patent US 11,941,782
Granted Patent B2
US 11,941,782 · App. 16/903,120 · Granted Mar 26, 2024

GPU-based lens blur rendering using depth maps

Inventor: Zhengyun Zhang (San Jose, CA)
Assignee: Adobe Inc.
G06T5/002G06T15/005G06T2207/10028
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,941,782
App. No.
16/903,120
Granted
Mar 26, 2024
Kind
B2
Abstract

Embodiments are disclosed for adding lens blur effects to input images. In particular, in one or more embodiments, the disclosed systems and methods comprise receiving a request to apply a lens blur effect to an image an accumulation region of the input image corresponding to a first pixel of an output image, determining a weight for each of the one or more source pixels based at least in part on an iris map for the one or more source pixels and a depth distance value between each of the one or more source pixels and the focal plane, and generating an output pixel value for the first pixel by calculating a weighted sum of the one or more source pixels from the accumulation region.

Claims (54)

1. A computer-implemented method comprising:

receiving, by a user interface manager of a lens blur rendering system, a request to apply a lens blur effect to an image, the request identifying an input image, depth map, and focal plane in the input image;

identifying, by a blur manager of the lens blur rendering system, an accumulation region of the input image corresponding to a first pixel of an output image, wherein the accumulation region is a region of source pixels of the input image centered on coordinates of the first pixel whose values contribute to an output pixel value of the first pixel;

generating, by an iris map manager of the lens blur rendering system, an iris map including a plurality of iris blocks, wherein the iris map includes, for each source pixel, a threshold value for that source pixel to contribute to the output pixel value of the first pixel, and wherein the iris map manager identifies a minimum threshold value for each iris block of the plurality of iris blocks and stores the minimum threshold value for each iris block;

determining, by the blur manager of the lens blur rendering system, a weight for each source pixel from the input image in the iris blocks of the accumulation region when a maximum effective blur radius is larger than the minimum threshold value of the iris block based on a comparison of the minimum threshold value of the iris block and a maximum effective blur radius for each iris block of the accumulation region; and

generating, by the blur manager of the lens blur rendering system, an output pixel value for the first pixel by calculating a weighted sum of the source pixels from the accumulation region.

2. The computer-implemented method of claim 1 , further comprising:

iteratively generating, by the blur manager of the lens blur rendering system, an output pixel value of each pixel of the output image based on a corresponding accumulation region of the input image.

3. The computer-implemented method of claim 2 , wherein iteratively generating, by the blur manager of the lens blur rendering system, an output pixel value of each pixel of the output image based on a corresponding accumulation region of the input image, further comprises:

dividing the output image into a plurality of pixel blocks; and

allocating a plurality of threadgroups of at least one processor to process the plurality of pixel blocks.

4. The computer-implemented method of claim 1 , further comprising:

generating, by the iris map manager of the lens blur rendering system, at least a portion of the iris map based on an iris shape parameter, wherein each iris block corresponds to a different portion of the accumulation region.

5. The computer-implemented method of claim 4 , wherein generating, by the blur manager of the lens blur rendering system, an output pixel value for the first pixel by calculating a weighted sum of the source pixels from the accumulation region, further comprises:

storing intermediate sums of source pixel weights; and

storing intermediate output pixel values for each iris block as intermediate weighted averages comprising the intermediate output pixel value divided by an intermediate sum of source pixel weights for the iris block.

6. A system, comprising:

a computing device implementing a lens blur rendering system, the computing device including at least one processor and a non-transitory computer readable storage medium including instructions stored thereon which, when executed by the at least one processor, cause the lens blur rendering system to:

receive, by a user interface manager of the lens blur rendering system, a request to apply a lens blur effect to an image, the request identifying an input image, depth map, and focal plane in the input image;

identify, by a blur manager of the lens blur rendering system, an accumulation region of the input image corresponding to a first pixel of an output image, wherein the accumulation region is a region of source pixels of the input image centered on coordinates of the first pixel whose values contribute to an output pixel value of the first pixel;

generate, by an iris map manager of the lens blur rendering system, an iris map including a plurality of iris blocks, wherein the iris map includes, for each source pixel, a threshold value for that source pixel to contribute to the output pixel value of the first pixel, and wherein the iris map manager identifies a minimum threshold value for each iris block of the plurality of iris blocks and stores the minimum threshold value for each iris block;

determine, by the blur manager of the lens blur rendering system, a weight for each source pixel from the input image in the iris blocks of the accumulation region when a maximum effective blur radius is larger than the minimum threshold value of the iris block based on a comparison of the minimum threshold value of the iris block and a maximum effective blur radius for each iris block of the accumulation region; and

generate, by the blur manager of the lens blur rendering system, an output pixel value for the first pixel by calculating a weighted sum of the source pixels from the accumulation region.

7. The system of claim 6 , wherein the instructions, when executed, further cause the lens blur rendering system to:

iteratively generate, by a blur manager of a lens blur rendering system, an output pixel value of each pixel of the output image based on a corresponding accumulation region of the input image.

8. The system of claim 7 , wherein the instructions to iteratively generate, by the blur manager of a lens blur rendering system, an output pixel value of each pixel of the output image based on a corresponding accumulation region of the input image, when executed, further cause the lens blur rendering system to:

divide the output image into a plurality of pixel blocks; and

allocate a plurality of threadgroups of at least one processor to process the plurality of pixel blocks.

9. The system of claim 6 , wherein the instructions, when executed, further cause the lens blur rendering system to:

generate, by the iris map manager of the lens blur rendering system, at least a portion of the iris map based on an iris shape parameter, wherein each iris block corresponds to a different portion of the accumulation region.

10. The system of claim 9 , wherein the instructions to generate, by the iris map manager of the lens blur rendering system, an output pixel value for the first pixel by calculating a weighted sum of the source pixels from the accumulation region, when executed, further cause the at least one processor to:

store intermediate sums of source pixel weights; and

store intermediate output pixel values for each iris block as intermediate weighted averages comprising the intermediate output pixel value divided by an intermediate sum of source pixel weights for the iris block.

11. A system comprising:

means for receiving a request to apply a lens blur effect to an image, the request identifying an input image, depth map, and focal plane in the input image;

means for identifying an accumulation region of the input image corresponding to a first pixel of an output image, wherein the accumulation region is a region of source pixels of the input image centered on coordinates of the first pixel whose values contribute to an output pixel value of the first pixel;

means for generating an iris map including a plurality of iris blocks, wherein the iris map includes, for each source pixel, a threshold value for that source pixel to contribute to the output pixel value of the first pixel, and wherein the iris map manager identifies a minimum threshold value for each iris block of the plurality of iris blocks and stores the minimum threshold value for each iris block;

means for determining a weight for each source pixel from the input image in the iris blocks of the accumulation region when a maximum effective blur radius is larger than the minimum threshold value of the iris block based on a comparison of the minimum threshold value of the iris block and a maximum effective blur radius for each iris block of the accumulation region; and

means for generating an output pixel value for the first pixel by calculating a weighted sum of the source pixels from the accumulation region.

12. The system of claim 11 , further comprising:

means for iteratively generating an output pixel value of each pixel of the output image based on a corresponding accumulation region of the input image.

13. The system of claim 12 , wherein the means for iteratively generating an output pixel value of each pixel of the output image based on a corresponding accumulation region of the input image, further comprises:

means for dividing the output image into a plurality of pixel blocks; and

means for allocating a plurality of threadgroups of at least one processor to process the plurality of pixel blocks.

14. The system of claim 11 , further comprising:

means for generating at least a portion of the iris map based on an iris shape parameter, wherein each iris block corresponds to a different portion of the accumulation region.

15. The system of claim 14 , wherein the means for generating an output pixel value for the first pixel by calculating a weighted sum of the source pixels from the accumulation region, further comprises:

means for storing intermediate sums of source pixel weights; and

means for storing intermediate output pixel values for each iris block as intermediate weighted averages comprising the intermediate output pixel value divided by an intermediate sum of source pixel weights for the iris block.

16. The system of claim 14 , further comprising:

means for storing the minimum threshold value for each iris block; and

wherein the means for determining a weight for the source pixels based at least in part on an iris map for the source pixels and a depth distance value between each of the source pixels and the focal plane, wherein the iris map includes, for each source pixel, a threshold value for that source pixel to contribute to the output pixel value of the first pixel, further comprises:

means for comparing the minimum threshold value of the iris block to a maximum effective blur radius for each iris block of the accumulation region; and

means for determining the weight for each source pixel from the input image in iris blocks of the accumulation region when the maximum effective blur radius is larger than the minimum threshold value of the iris block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: ZHANG, ZHENGYUN
To: ADOBE INC.
Reel/Frame 053005/0361 →
Continuity (1)
Related Publication 20210390665A1 · Dec 16, 2021