IP Library › Granted Patent US 8,886,015
Granted Patent B2
US 8,886,015 · App. 13/111,892 · Granted Nov 11, 2014

Efficient media import

Inventors: Nils Angquist (San Francisco, CA); Giovanni Agnoli (San Mateo, CA); Eric J. Graves (Radnor, PA)
Assignee: Apple Inc.
H04N5/14G06F9/00G11B27/00
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,886,015
App. No.
13/111,892
Granted
Nov 11, 2014
Kind
B2
Abstract

Some embodiments provide a media-editing application. The application receives a command to import a media file into the media-editing application. The media file includes a sequence of video images. The application copies the media file to a storage location associated with the media-editing application. The method performs several analysis and transcode operations on the media file in parallel. In some embodiments, the application identifies a video image on which to the operations. The application schedules a single set of image preparation operations for the video image to generate one or more sets of image data for the operations. The method sends the image data to the different operations. A same set of image data is sent to at least two of the operations.

Claims (39)

1. A non-transitory machine readable medium storing a media-editing application for execution by at least one processing unit, the media-editing application for creating a composite presentation comprising a plurality of media clips, the media-editing application comprising sets of instructions for:

identifying a video image for sending to a plurality of destinations to perform, in parallel, a plurality of operations on the image, each destination requiring the video image as a set of image data in a particular format in order to perform a different operation on the image;

scheduling a plurality of image preparation operations to be performed on the video image before sending the video image to the plurality of different destinations, the scheduling comprising:

scheduling a first set of image preparation operations from the plurality of image preparation operations to be performed on the image, each image preparation operation of the first set performed to generate a set of image data in a format that is required by every destination in the plurality of destinations; and

scheduling a second set of image preparation operations from the plurality of image preparation operations to be performed on the image, after the first set of operations, to generate a set of image data in a particular format that is required by each destination, wherein each image preparation operation of the second set is specific to less than all of the destinations; and

sending the sets of image data to the different destinations, wherein a same set of image data is sent to at least two of the destinations.

2. The non-transitory machine readable medium of claim 1 , wherein the plurality of image reparation operations is performed on the video image as the media-editing application imports a media file that comprises the video image.

3. The non-transitory machine readable medium of claim 1 , wherein the plurality of image preparation operations is performed on the video image by the media-editing application separately from an import of a media file that comprises the video image.

4. The non-transitory machine readable medium of claim 1 , wherein the different operations comprise an analysis operation that analyzes pixel values in the set of image data.

5. The non-transitory machine readable medium of claim 1 , wherein the different operations comprise different encoding operations that encode the set of image data at different resolutions.

6. The non-transitory machine readable medium of claim 1 , wherein the different operations comprise a playback operation that outputs the image data to a display device.

7. The non-transitory machine readable medium of claim 1 , wherein the first set of image preparation operations comprises a disk read operation that retrieves an encoded copy of the video image from a storage device.

8. The non-transitory machine readable medium of claim 7 , wherein the first set of image preparation operations further comprises a decode operation that decodes the encoded video image to generate a plurality of pixel values for the image.

9. The non-transitory machine readable medium of claim 8 , wherein the second set of image preparation operations comprises a colorspace conversion that converts the pixel values from a first colorspace to a second colorspace.

10. The non-transitory machine readable medium of claim 8 , wherein the pixel values define a particular number of pixels, wherein the second set of image preparation operations comprises a resolution conversion operation that modifies the number of pixels.

11. A non-transitory machine readable medium storing a media-editing application which when executed by at least one processing unit renders an output image in at least two different output formats, the media-editing application comprising sets of instructions for:

identifying a set of images used to generate the output image;

scheduling a single disk read operation and a single decode operation for each image in the set of images in order to create a decoded image; and

scheduling a minimum number of image processing operations that modify the decoded images to generate the output image in the at least two different output formats, wherein the scheduled image processing operations comprise for each of the decoded images, a first conversion to a first format before two separate conversions of a first copy of the image in the first format to a second format and a second co of the image in the first format to a third format, wherein a first one of the output formats requires the image in a combination of the first and second formats and a second one of the output formats requires the image in a combination of the first and third formats.

12. The non-transitory machine readable medium of claim 11 , wherein the second format is a first resolution and the third format is a second different resolution.

13. The non-transitory machine readable medium of claim 11 , wherein the second format is a first colorspace and the third format is a second different colorspace.

14. The non-transitory machine readable medium of claim 11 , wherein the set of instructions for the scheduling of a single disk read operation and a single decode operation for each image comprises a set of instructions for the scheduling as the media-editing application imports a media file that comprises the image.

15. The machine readable medium of claim 11 , wherein

the first format is a particular resolution while the second and third formats are a first and a second colorspace respectively, wherein the first output format requires a combination of the particular resolution and the first colorspace and the second output format requires a combination of the particular resolution and the second, different colorspace.

16. The machine readable medium of claim 11 , wherein the image processing operations are determined according to a render graph generated based on a composite presentation.

17. The non-transitory machine readable medium of claim 11 , wherein the first format is a particular colorspace while the second and third formats are a first and a second resolution respectively, wherein the first output format requires a combination of the particular colorspace and the first resolution and the second output format requires a combination of the particular colorspace and the second, different resolution.

18. For a media-editing application, a computer-implemented method for editing a composite presentation, the method comprising:

identifying a video image for sending to a plurality of destinations to perform, in parallel, a plurality of operations on the image, each destination requiring the video image as a set of image data in a particular format in order to perform a different operation on the image;

scheduling a plurality of image preparation operations to be performed on the video image before sending the video image to the plurality of different destinations, the scheduling comprising:

scheduling a first set of image preparation operations from the plurality of image preparation operations to be performed on the image, each image preparation operation of the first set performed to generate a set of image data in a format that is required by every destination in the plurality of destinations; and

scheduling a second set of image preparation operations from the plurality of image preparation operations to be performed on the image, after the first set of operations, to generate a set of image data in a particular format that is required by each destination, wherein each image preparation operation of the second set is specific to less than all of the destinations; and

sending the sets of image data to the different destinations, wherein a same set of image data is sent to at least two of the destinations.

19. The method of claim 18 , wherein the plurality of image preparation operations are performed on the video image as the media-editing application imports a media file that comprises the video image.

20. The method of claim 18 , wherein the different operations comprise an analysis operation that analyzes pixel values in the set of image data.

21. The method of claim 18 , wherein the different operations comprise different encoding operations that encode the set of image data at different resolutions.

22. The method of claim 18 , wherein the different operations comprise a playback operation that outputs the image data to a display device.

23. The method of claim 18 , wherein the first set of image preparation operations comprises a disk read operation that retrieves an encoded copy of the video image from a storage device.

24. The method of claim 23 , wherein the first set of image preparation operations further comprises a decode operation that decodes the encoded video image to generate a plurality of pixel values for the image.

25. The method of claim 24 , wherein the second set of image preparation operations comprises a colorspace conversion that converts the pixel values from a first colorspace to a second colorspace.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2011
From: ANGQUIST, NILS; AGNOLI, GIOVANNI; GRAVES, ERIC J.
To: APPLE INC.
Reel/Frame 026312/0900 →
Continuity (5)
Provisional Application 61443707 · Feb 16, 2011
Provisional Application 61443704 · Feb 16, 2011
Provisional Application 61443702 · Feb 16, 2011
Provisional Application 61437517 · Jan 28, 2011
Related Publication 20120207449A1 · Aug 16, 2012