IP Library Granted Patent US 8,731,329
Granted Patent B2
US 8,731,329 · App. 13/550,031 · Granted May 20, 2014

Systems and methods for rolling shutter artifact repair

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 8,731,329
App. No.
13/550,031
Granted
May 20, 2014
Kind
B2
Abstract

Systems and methods for rolling shutter artifact repair are disclosed. For example, one disclosed method includes the steps of receiving two frames (F 0 , F 2 ) of a video, identifying a first plurality of features in frame F 0 and a second plurality of features in frame F 2 , determining movements of corresponding features in the first and second pluralities of features, generating a mesh based on the first and second pluralities of features and the movements, and generating a warped frame (F 0 ′) based on the mesh

Claims (49)

1. A computer-implemented method comprising

receiving, by one or more processors, two frames (F 0 , F 2 ) of a video;

identifying, by one or more of the processors, a first plurality of features in frame F 0 and a second plurality of features in frame F 2 ;

determining, by one or more of the processors, movements of corresponding features in the first and second pluralities of features;

generating, by one or more of the processors, a mesh based on the first and second pluralities of features and the movements; and

generating, by one or more of the processors, a warped frame (F 0 ′) of video based on the mesh.

2. The computer-implemented method of claim 1 , further comprising pinning, by one or more of the processors, edges and a centerline of the mesh.

3. The computer-implemented method of claim 1 , wherein each of frames F 0 and F 2 comprises a plurality of scan lines, and further comprising selecting, by one or more of the processors, a scan line of frame F 0 to be a centerline of the mesh.

4. The computer-implemented method of claim 3 , wherein generating the mesh further comprises attenuating distances of each of the plurality of features based on the respective feature's distance from the centerline.

5. The computer-implemented method of claim 3 , wherein the centerline comprises a scan line of frame F 0 that is equidistant between a first scan line and a last scan line of frame F 0 .

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

receiving, by one or more of the processors, a third frame (F 1 ) of the video;

identifying, by one or more of the processors, a third plurality of features in frame F 1 ; and

wherein determining the movements comprises determining movements of corresponding features in the first, second, and third pluralities of features, and generating the mesh is further based on the third plurality of features.

7. The computer-implemented method of claim 6 , wherein frames F 0 , F 1 , and F 2 are consecutive frames of video, and frame F 1 is positioned between frames F 0 and F 2 .

8. The computer-implemented method of claim 1 , wherein frames F 0 and F 2 are consecutive frames of video.

9. The computer-implemented method of claim 1 , wherein generating the mesh comprises thin plate spline interpolation.

10. A computer-readable medium comprising program code for causing a processor to execute a method, the program code comprising:

program code for receiving two frames (F 0 , F 2 ) of a video;

program code for identifying a first plurality of features in frame F 0 and a second plurality of features in frame F 2 ;

program code for determining movements of corresponding features in the first and second pluralities of features;

program code for generating a mesh based on the first and second pluralities of features and the movements; and

program code for generating a warped frame (F 0 ′) based on the mesh.

11. The computer-readable medium of claim 10 , further comprising program code for pinning edges and a centerline of the mesh.

12. The computer-readable medium of claim 10 , wherein each of frames F 0 and F 2 comprises a plurality of scan lines, and further comprising selecting a scan line of frame F 1 to be a centerline of the mesh.

13. The computer-readable medium of claim 12 , wherein generating the mesh further comprises attenuating distances of each of the plurality of features based on the respective feature's distance from the centerline.

14. The computer-readable medium of claim 12 , wherein the centerline comprises a scan line of frame F 0 that is equidistant between a first scan line and a last scan line of frame F 1 .

15. The computer-readable medium of claim 10 , further comprising:

program code for receiving a third frame (F 1 ) of the video;

program code for identifying a third plurality of features in frame F 1 ; and

wherein the program code for determining the movements comprises program code for determining movements of corresponding features in the first, second, and third pluralities of features, and generating the mesh is further based on the third plurality of features.

16. The computer-readable medium of claim 15 , wherein frames F 0 , F 1 , and F 2 are consecutive frames of video, and frame F 1 is positioned between frames F 0 and F 2 .

17. The computer-readable medium of claim 10 , wherein frames F 0 and F 2 are consecutive frames of video.

18. The computer-readable medium of claim 10 , wherein the program code for generating the mesh comprises program code for thin plate spline interpolation.

19. A system comprising:

a computer-readable medium; and

a processor in communication with the computer-readable medium, the processor configured to:

receive two frames (F 0 , F 2 ) of a video;

identify a first plurality of features in frame F 0 and a second plurality of features in frame F 2 ;

determine movements of corresponding features in the first and second pluralities of features;

generate a mesh based on the first and second pluralities of features and the movements; and

generate a warped frame (F 0 ′) based on the mesh.

20. The system of claim 19 , wherein the processor is further configured to pin edges and a centerline of the mesh.

21. The system of claim 19 , wherein the processor is in communication with a remote computer over a network, and wherein the processor is further configured to receive frames F 0 and F 2 from the remote computer.

22. The system of claim 21 , wherein the processor is further configured to transmit warped frame F 0 ′ to the remote computer.

23. The system of claim 19 , wherein the processor is further configured to:

receive a third frame (F 1 ) of the video;

identify a third plurality of features in frame F 1 ; and

wherein the processor is configured to determine the movements of corresponding features in the first, second, and third pluralities of features, and wherein the processor is further configured to generate the mesh based on the third plurality of features.

Assignments (3)
CHANGE OF NAME Recorded Mar 6, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048525/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2012
From: SIMONS, DAVID P.; WILK, DAN; BAI, XUE
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 028934/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2012
From: SIMONS, DAVID P.; WILK, DAN; BAI, XUE
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 028562/0315 →