IP Library Granted Patent US 10,453,491
Granted Patent B2
US 10,453,491 · App. 16/273,981 · Granted Oct 22, 2019

Video processing architectures which provide looping video

Inventors: Geoffrey Oxholm (Albany, CA); Elya Shechtman (Seattle, WA); Oliver Wang (Seattle, WA)
Assignee: Adobe Inc.
G11B27/007G06K9/00718G06K9/00744G06K9/00765G06K9/4609H04N7/0117H04N7/0142G06K2009/00738
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,453,491
App. No.
16/273,981
Granted
Oct 22, 2019
Kind
B2
Abstract

Provided are video processing architectures and techniques configured to generate looping video. The video processing architectures and techniques automatically produce a looping video from a fixed-length video clip. Embodiments of the video processing architectures and techniques determine a lower-resolution version of the fixed-length video clip, and detect a presence of edges within image frames in the lower-resolution version. A pair of image frames having similar edges is identified as a pair of candidates for a transition point (i.e., a start frame and an end frame) at which the looping video can repeat. Using start and end frames having similar edges mitigates teleporting of objects displayed in the looping video. In some cases, teleporting during repeating is eliminated.

Claims (49)

1. A computer-implemented method for providing looping video, the method comprising:

converting a first high-resolution video clip having a first plurality of high-resolution frames to a first lower-resolution video clip having a first plurality of lower-resolution frames;

converting a second high-resolution video clip having a second plurality of high-resolution frames to a second lower-resolution video clip having a second plurality of lower-resolution frames;

creating a first plurality of edgemaps of the first plurality of lower-resolution frames by performing edge detection on the first plurality of lower-resolution frames;

creating a second plurality of edgemaps of the second plurality of lower-resolution frames by performing edge detection on the second plurality of lower-resolution frames;

determining a candidate transition point from the first plurality of edgemaps and the second plurality of edgemaps; and

rendering a looping video from the first high-resolution video clip and the second high-resolution video clip, wherein the looping video has a start frame and an end frame corresponding to the candidate transition point.

2. The computer-implemented method of claim 1 , further comprising splicing the first high-resolution video clip and the second high-resolution video clip at the candidate transition point.

3. The computer-implemented method of claim 1 wherein:

creating the first plurality of edgemaps comprises creating the first plurality of edgemaps of the first plurality of lower-resolution frames by performing edge detection on the first plurality of lower-resolution frames; and

creating the second plurality of edgemaps comprises creating the second plurality of edgemaps of the second plurality of lower-resolution frames by performing edge detection on the second plurality of lower-resolution frames.

4. The computer-implemented method of claim 1 wherein determining the candidate transition point comprises:

forming a confusion matrix that identifies pixels that are parts of edges using the first plurality of lower-resolution frames, the first plurality of edgemaps, the second plurality of lower-resolution frames and the second plurality of edgemaps;

generating a filtered confusion matrix by convolving the confusion matrix with a filter; and

determining the candidate transition point by identifying a minimum value in the filtered confusion matrix.

5. The computer-implemented method of claim 1 , further comprising performing an optical-flow alignment on the looping video to align the start frame with the end frame.

6. The computer-implemented method of claim 1 , further comprising constraining the determining the candidate transition point such that the looping video has at least one of a minimum duration or a maximum duration.

7. The computer-implemented method of claim 1 , further comprising constraining the determining the candidate transition point to compare fewer than all of the frames in the first lower-resolution video clip and the second lower-resolution video clip.

8. The computer-implemented method of claim 1 , further comprising displaying the looping video on a display.

9. A system for providing looping video, comprising:

a means for converting a first high-resolution video clip having a first plurality of high-resolution frames to a first lower-resolution video clip having a first plurality of lower-resolution frames;

a means for converting a second high-resolution video clip having a second plurality of high-resolution frames to a second lower-resolution video clip having a second plurality of lower-resolution frames;

a means for creating a first plurality of edgemaps of the first plurality of lower-resolution frames;

a means for creating a second plurality of edgemaps of the second plurality of lower-resolution frames;

a means for determining a candidate transition point from the first plurality of edgemaps and the second plurality of edgemaps; and

a means for rendering a looping video from the first high-resolution video clip and the second high-resolution video clip, wherein the looping video has a start frame and an end frame corresponding to the candidate transition point.

10. The system of claim 9 , further comprising a means for splicing the first high-resolution video clip and the second high-resolution video clip at the candidate transition point.

11. The system of claim 9 wherein the means for determining the candidate transition point comprises:

a means for forming a confusion matrix that identifies pixels that are parts of edges using the first plurality of lower-resolution frames, the first plurality of edgemaps, the second plurality of lower-resolution frames and the second plurality of edgemaps;

a means for generating a filtered confusion matrix by convolving the confusion matrix with a filter; and

a means for determining the candidate transition point by identifying a minimum value in the filtered confusion matrix.

12. The system of claim 9 , further comprising a means for performing an optical-flow alignment on the looping video to align the start frame with the end frame.

13. The system of claim 9 , further comprising a means for displaying the looping video on a display.

14. A computer-implemented method for providing looping video, the method comprising:

converting a high-resolution video clip having a plurality of high-resolution frames to a lower-resolution video clip having a plurality of lower-resolution frames;

creating a plurality of edgemaps of the plurality of lower-resolution frames;

determining a candidate transition point from the plurality of edgemaps; and

rendering a looping video from the high-resolution video clip, wherein the looping video has a start frame and an end frame corresponding to the candidate transition point.

15. The computer-implemented method of claim 14 , wherein creating the plurality of edgemaps comprises creating the plurality of edgemaps of the plurality of lower-resolution frames by performing edge detecting on the plurality of lower-resolution frames.

16. The computer-implemented method of claim 14 wherein determining the candidate transition point comprises:

forming a confusion matrix that identifies pixels that are parts of edges using the plurality of lower-resolution frames and the plurality of edgemaps;

generating a filtered confusion matrix by convolving the confusion matrix with a filter; and

determining the candidate transition point by identifying a minimum value in the filtered confusion matrix.

17. The computer-implemented method of claim 14 , further comprising performing an optical-flow alignment on the looping video to align the start frame with the end frame.

18. The computer-implemented method of claim 14 , further comprising constraining the determining the candidate transition point to compare fewer than all of the frames in the lower-resolution video clip.

19. The computer-implemented method of claim 14 , further comprising displaying the looping video on a display.

20. The computer-implemented method of claim 14 , further comprising at least one of:

storing the looping video in a memory device; or

transmitting the looping video using an in/out interface device.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED ON REEL 048567 FRAME 0855. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Aug 7, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 049996/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2019
From: OXHOLM, GEOFFREY; SHECHTMAN, ELYA; WANG, OLIVER
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 048566/0616 →
CHANGE OF NAME Recorded Mar 12, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC
Reel/Frame 048567/0855 →
Continuity (2)
Continuation 15661546 · Jul 27, 2017
Related Publication 20190189158A1 · Jun 20, 2019