IP Library Granted Patent US 9,633,694
Granted Patent B2
US 9,633,694 · App. 15/093,819 · Granted Apr 25, 2017

Full fidelity remote video editing

Inventors: Eric Forget (Rosemere, CA); Francis A. Capria (Northborough, MA); Daniel Desbois (Boucherville, CA); Thomas G. Fincher (Hudson, NH); Richard Gratton (Hudson Heights, CA); Stephane R. Harnois (Laval, CA); Alan Swartz (Cambridge, MA); Min Wei (LaSalle, CA)
Assignee: Avid Technology, Inc.
G11B27/031H04N21/23106H04N21/4331H04N21/47205H04N21/854
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,633,694
App. No.
15/093,819
Granted
Apr 25, 2017
Kind
B2
Abstract

Video editing methods and systems enable an editor to edit a video project for which source media assets are located at a media storage server located remotely from the editor with substantially the same fidelity and editing feature set that would be available if the source media assets and editor were co-located. A video editing client used by the editor maintains a persistent cache of proxy media with the layers of the video project stored independently, facilitating editing with combinations locally originated assets and remote assets. The client requests frames not already cached from the remote server via a low bandwidth network. Unless a frame is purged from the cache, no frame is requested from the server more than once. A multi-level priority prefetching scheme, including sequence-based prefetching, populates the cache with frames likely to be requested during editing.

Claims (51)

1. A method comprising:

providing a video editing application on a client system in low bandwidth data communication with media storage that stores source media assets of a multi-layer video project, the video editing application being capable of displaying the multi-layer video project on a display of the client system;

maintaining on the client system a cache of a portion of the multi-layer video project; and

in response to the video editing application receiving a command from a user of the video editing application to play back the multi-layer video project on the display starting from a selected multi-layer frame:

for each layer of a plurality of layers of the selected frame:

when the layer of the selected frame is present in the client cache, retrieving the layer of the selected frame from the client cache; and

when the layer of the selected frame is not present in the client cache:

requesting the layer of the selected frame from the media storage; and

receiving the layer of the selected frame; and

compositing the plurality of layers of the selected frame; and

displaying the composited frame on the display of the client system.

2. The method of claim 1 , wherein a layer of the selected frame is not present in the client cache, further comprising, after performing the requesting and receiving steps, storing the received layer of the selected frame in the cache.

3. The method of claim 1 , wherein low bandwidth data communication is interrupted, further comprising:

if the selected frame is not present in the cache, retrieving an alternate frame from the cache, wherein the alternate frame corresponds to a first temporal location in the video project subsequent to a temporal location corresponding to the selected frame for which a frame is present in the cache; and

displaying the alternate frame on the display.

4. The method of claim 1 , wherein the multi-layer video project includes two or more layers of video.

5. The method of claim 1 , wherein the cache is a persistent cache.

6. The method of claim 1 , wherein the cache includes images corresponding to individual frames of video.

7. The method of claim 1 , wherein the cache includes groups of pictures compressed using an interframe video compression scheme.

8. The method of claim 1 , wherein the source media assets include media in an original format of a source from which the asset originated.

9. The method of claim 1 , wherein the source media assets include media in a proxy format.

10. The method of claim 1 , wherein the selected frame is a frame of a media clip included in the project, and further comprising automatically retrieving from the media storage portions of the media clip not present in the cache in addition to the selected frame.

11. The method of claim 10 , wherein in response to a second request from the user to play back the media clip starting from a second selected frame, if the second selected frame is not present in the cache, suspending the automatic retrieval of portions of the media clip not present in the cache, retrieving the second selected frame from the media storage, and storing the second selected frame in the cache.

12. The method of claim 1 , further comprising:

for each of a plurality of temporally successive frames temporally succeeding the selected frame of the video project:

if the frame is not present in the cache, requesting the frame from the media storage; and

if in response to the request, the frame is received from the media storage in time to maintain real-time playback on the display, storing the frame in the cache and displaying the frame on the display; and

if in response to the request, the frame is not received from the media storage in time to maintain real-time playback on the display, requesting a succeeding frame that is not present in the cache from the media server.

13. A method of editing a video project at a client system, the method comprising:

maintaining on the client system a cache of a portion of the video project;

providing on the client a video editing application capable of displaying the video project on a display of the client system; and

in response to the video editing application receiving a command from a user of the video editing application to play back the video project on the display starting from a selected frame of the video project;

when the selected frame of the video project is present in the client cache, retrieving the selected frame of the video project from the client cache; and

when the selected frame of the video project is not present in the client cache:

requesting the selected frame of the video project from media storage that is in low bandwidth data communication with the client system, the media storage storing source media assets of the video project, the source media assets including a plurality of temporally aligned layers of the video project;

receiving each of a plurality of layers of the selected frame of the video project;

compositing the received plurality of layers of the selected frame of the video project; and

displaying the composited frame of the video project on the display of the client system.

14. The method of claim 13 , further comprising storing the received plurality of layers of the selected frame in the cache.

15. A computer program product comprising:

a non-transitory computer-readable medium with computer program instructions encoded thereon, wherein the computer program instructions, when processed by a client system in low bandwidth data communication with media storage that stores source media assets of a multi-layer video project, instruct the client system to perform a method of editing a multi-layer video project, the method comprising:

maintaining on the client system a cache of a portion of the multi-layer video project;

providing on the client a video editing application capable of displaying the multi-layer video project on a display of the client system; and

in response to the video editing application receiving a command from a user of the video editing application to play back the multi-layer video project on the display starting from a selected multi-layer frame:

for each layer of a plurality of layers of the selected frame:

when the layer of the selected frame is present in the client cache, retrieving the layer of the selected frame from the client cache; and

when the layer of the selected frame is not present in the client cache:

 requesting the layer of the selected frame from the media storage; and

 receiving the layer of the selected frame; and

compositing the plurality of layers of the selected frame; and

displaying the composited frame on the display of the client system.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 054900/0716) Recorded Nov 8, 2023
From: JPMORGAN CHASE BANK, N.A.
To: AVID TECHNOLOGY, INC.
Reel/Frame 065523/0146 →
PATENT SECURITY AGREEMENT Recorded Nov 8, 2023
From: AVID TECHNOLOGY, INC.
To: SIXTH STREET LENDING PARTNERS, AS ADMINISTRATIVE AGENT
Reel/Frame 065523/0194 →
SECURITY INTEREST Recorded Jan 5, 2021
From: AVID TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054900/0716 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2016
From: FORGET, ERIC; CAPRIA, FRANCIS A.; DESBOIS, DANIEL; FINCHER, THOMAS G.; GRATTON, RICHARD; HARNOIS, STEPHANE; SWARTZ, ALAN; WEI, MIN
To: AVID TECHNOLOGY, INC.
Reel/Frame 038225/0042 →
Continuity (2)
Continuation 13857330 · Apr 5, 2013
Related Publication 20160225407A1 · Aug 4, 2016