IP Library Granted Patent US 9,779,484
Granted Patent B2
US 9,779,484 · App. 14/451,229 · Granted Oct 3, 2017

Dynamic motion path blur techniques

Inventors: Gregg D. Wilensky (Pacific Palisades, CA); Nathan A. Carr (San Jose, CA)
Assignee: Adobe Systems Incorporated
G06T5/002G06T2200/24G06T2207/20096G06T2207/20208
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 9,779,484
App. No.
14/451,229
Granted
Oct 3, 2017
Kind
B2
Abstract

Dynamic motion path blur techniques are described. In one or more implementations, paths may be specified to constrain a motion blur effect to be applied to a single image. A variety of different techniques may be employed as part of the motion blur effects, including use of curved blur kernel shapes, use of a mesh representation of blur kernel parameter fields to support real time output of the motion blur effect to an image, use of flash effects, blur kernel positioning to support centered or directional blurring, tapered exposure modeling, and null paths.

Claims (43)

1. A method comprising:

receiving inputs, detected by a computing device via a user interface, that describe a path to constrain a motion blur to be applied as a motion blur effect to an image, the motion blur effect giving an appearance of movement to at least one object within the image or an appearance of movement of a device used to capture the image;

constructing a mesh describing a motion field, the mesh including:

a plurality of edge vertices that describe each edge of the path described by the inputs; and

a plurality of non-edge vertices that describe one or more points of the mesh away from the path;

producing a vector representation of the motion field from the mesh; and

applying the vector representation of the motion field to the image to calculate motion blur kernels for the image, the motion blur kernels defining shapes that describe how each pixel in the image is to be blurred to apply the motion blur effect to the image.

2. A method as described in claim 1 , wherein the mesh is a triangular mesh.

3. A method as described in claim 1 , wherein the producing of the vector representation of the motion field includes:

applying constraints to the plurality of edge vertices, the constraints representing blur kernel parameters along the path; and

applying a distance-weighted average of the constraints to each of the plurality of non-edge vertices calculated from values of the applied constraints of respective said edge vertices.

4. A method as described in claim 3 , wherein the distance-weighted average uses a weight that is inversely proportional to a square of a distance in the mesh from the respective said edge vertices.

5. A method as described in claim 3 , wherein the calculating of values of points interior to the plurality of non-edge vertices of the vector representation of the mesh is performed using one or more interpolation techniques.

6. A method as described in claim 1 , wherein the producing of the vector representation of the motion field includes tree-structure sampling of points along the path to numerically approximate an integral effect of each constraint path upon blur kernel parameter field values that are calculated at each point in the image.

7. A method as described in claim 1 , wherein the constructing and the producing are performed independently of computations pertinent to a size of the image.

8. A method as described in claim 1 , wherein:

the plurality of edge vertices are usable to describe each pixel in the path; and

collectively the plurality of edge and non-edge vertices are sparser than a number of pixels in the image.

9. A method as described in claim 1 , further comprising outputting the image having the applied motion blur effect in real time as the inputs are received.

10. A system comprising:

a processing system, a graphics processing unit, and memory configured to maintain:

an image; and

instructions that are executable by the processing system to cause the processing system to perform operations comprising:

constructing a motion field, independently of the image, from a path used to constrain a motion blur effect, the motion field including a vector representation of blur kernel fields; and

transferring the vector representation of the motion field to the graphics processing unit to cause the graphics processing unit to apply the vector representation of the motion field to the image to calculate motion blur kernels for the image, the motion blur kernels defining shapes that describe how each pixel in the image is to be blurred to apply the motion blur effect to the image.

11. A system as described in claim 10 , further comprising constructing a mesh describing the motion field, the mesh including:

a plurality of edge vertices that describe each edge of the path; and

a plurality of non-edge vertices that describe one or more points of the mesh away from the path.

12. A system as described in claim 11 , wherein the mesh is a triangular mesh.

13. A system as described in claim 11 , further comprising producing the vector representation of the motion field by performing operations comprising:

applying constraints to the plurality of edge vertices, the constraints representing blur kernel parameters along the path; and

applying a distance-weighted average of the constraints to each of the plurality of non-edge vertices calculated from values of the applied constraints of respective said edge vertices.

14. A system as described in claim 13 , wherein the distance-weighted average uses a weight that is inversely proportional to a square of a distance in the mesh from the respective said edge vertices.

15. A system as described in claim 13 , wherein the calculating of values of points interior to the plurality of non-edge vertices of the vector representation of the mesh is performed using one or more interpolation techniques.

16. A system as described in claim 13 , wherein the producing of the vector representation of the motion field includes tree-structure sampling of points along the path to numerically approximate an integral effect of each constraint path upon blur kernel parameter field values that are calculated at each point in the image.

17. A system as described in claim 10 , wherein the constructing is performed independently of computations pertinent to a size of the image and further comprising outputting the image having the applied motion blur effect in real time as the inputs are received.

18. A method comprising:

displaying a user interface by a computing device, the user interface configured to receive inputs specifying:

a path that describes a motion blur trajectory to constrain application of a motion blur effect to an image; and

one or more specified points in time in the motion blur trajectory to which a flash effect is to be applied; and

responsive to receipt of the inputs, mixing the flash effect at the one or more points in time in the motion blur trajectory of the image to specify increased illumination of image contribution with an ambient illumination contribution of the image at other points in time in the motion blur trajectory.

19. A method as described in claim 18 , wherein the flash effect is applied using tapered exposure modeling to taper exposure of contributions of the flash effect with ambient illumination contribution.

20. A method as described in claim 18 , further comprising outputting the applied flash effect as part of the motion blur effect to the image in real time as the inputs are received.

Assignments (2)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2014
From: WILENSKY, GREGG D.; CARR, NATHAN A.
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 033458/0936 →
Continuity (1)
Related Publication 20160035068A1 · Feb 4, 2016