Method and apparatus for video editing

Abstract: A method and apparatus for video editing, in which video clips (and optionally also still image and audio clips) are stored as digital data in a computer memory, selected clips are displayed in elongated tracks on a display screen, and editing operations are performed on the clips in response to manipulation of displayed cursors and icons to assemble and preview an edited video program. Preferably, the inventive apparatus is a computer system programmed to display video, still image, and audio clips, and special effect icons, in tracks along a displayed time line. The system assembles a video program from stored clips in response to arrangement of displayed clips and special effect icons in a desired sequence along the time line. The computer system is preferably programmed to select a new in or out point for a clip by positioning a cursor at an edge of the displayed clip and dragging the edge relative to the time line, to select a special effect transition between displayed clips by positioning a transition icon in a special track in alignment with overlapping portions of the clips, to select special effect parameters by manipulating an icon in a special effects track, to filter selected video clips with a mosaic filter having user-selectable time-varying filter characteristics, and to control superimposition of an overlay clip with a main clip in response to manipulation of a level control icon displayed in alignment with the overlay clip.

Description: Field of the Invention The invention is a computer-implemented video editing method and apparatus in which stored video clips are displayed, and an edited video program is assembled from selected ones of the clips. The apparatus of the invention is a computer system programmed to perform video editing operations in response to manipulation of displayed menus and icons. Background of the Invention Throughout this specification, the term "video clip" will denote one or more consecutive frames of video data, the term "still image clip" will denote data representing one or more identical frames of still image data (or text), and the term "audio clip" will denote audio soundtrack data corresponding to one or more video clips. A video clip (or a still image clip) can be a scene of an edited video program. Throughout this specification, the expression "display of a clip" denotes display (at a single time) of a representation of the data defining the clip, unless qualified to read "sequential display of a clip". Similarly, "displayed clip" denotes a simultaneously displayed representation of the data defining the clip, unless qualified to read "sequentially displayed clip". The expressions "sequential display" of a program, "sequential display" of a clip, and variations on these expressions, denote the non-simultaneous (time-sequential) display of a sequence of representations of data sets, where the data sets collectively define a program or clip. Throughout this specification, including in the claims, the expressions "edited video program," "video program," and "program" are used interchangeably to denote a sequence of video clips or still image clips (or video clips and still image clips), a transition between each pair of consecutive video and/or still image clips, and optionally also a sequence of audio clips. Each of the transitions between video (and/or still image) clips can be a simple "cut," in which the last frame of a first clip is concatenated with the first frame of a second clip. Alternatively, one or more of the transitions can be a more complicated (special effect) transition, such as a wipe, fade, or dissolve. For example, an edited program can consist of a first video clip, followed by a simple cut to a second video clip, followed by a dissolve transition to a third video clip. Typically, an edited video program consists of a sequence of video and still image clips (with special effect transitions between consecutive pairs of these clips), and two or more sequences of audio clips (for example, two sequences of audio clips representing left and right channels of an audio soundtrack). It is conventional to define an edited video program by employing a programmed computer to perform video editing operations in which the computer processes stored digital data representing segments of the video program. A conventional system of this type is disclosed in U.S. Patent 4,538,188, issued August 27, 1990, to Barker, et al. The system of U.S. 4,538,188 employs a computer to control the display and manipulation of pictorial labels (or label pairs), each representing an unedited video segment (or transition between consecutive video segments), in order to assemble an edited video program from unedited video segments. The system also assembles (from the unedited video segments) and displays a sequence of the pictorial labels, which represent scenes (and transitions between scenes) of the edited program. The video segments are stored on video tape, as is the assembled video program. The system has controls which enable a user to specify a variety of transitions between consecutive video segments. Other video editing systems have been proposed which include means for storing unedited video clips (on video tape or laser video disks), and computer means for controlling the display of selected unedited video clips (or frames of video clips) and generating an edit list in response to user-entered commands. For example, U.S. Patent 4,746,994 (issued May 24, 1988, to Ettlinger) discloses a computer-based video editing system in which unedited clips are stored on video tape recorders or video disk players. A computer system enables the user to control the video tape recorders and generate an edit list. The computer system displays a sequence of menus which prompt the user to perform various editing operations (such as displaying desired frames of the unedited clips, shuttling frame-by-frame through a stored unedited clip, adding edits to an edit list, and playing back the sequence of clips defined by the edit list). The user may select various ones of the editing operations by actuating a light pen. For another example, U.S. Patent 4,754,342 (issued June 28, 1988, to Duffy) discloses a computer-based video editing system in which unedited clips are stored on video disk players. After generating an edit list, the user may command the system to splice clips in accordance with the edit list and play back an edited show. By using a control console with a control button and a control dial, the user may command the system to display individual frames of the stored clips, or "roll" one or more clips (or an edited sequence of clips) in forward or reverse motion, at any of a variety of speeds. The present invention utilises alpha channel compositing, a detailed explanation of such can be found in Computer Graphics (2nd Edition) by James D. Foley, et al published by Addison-Wesley in 1990, pages 835 to 843. Summary of the Invention The invention is a method and apparatus for video editing as set forth in the appended claims. The apparatus is a computer system programmed to display representations of video, still image, and audio clips at desired positions along a displayed time ruler, in tracks of a construction window. The system dynamically generates each video clip to be displayed by retrieving from storage all frames of the video clip (or every "Nth" frame of the stored clip in accordance with a user-selected time compression factor), and displaying the retrieved frames. Animated "special effect" icons, each representing a special effect, are displayed in a separate special effects track also oriented parallel to the time ruler. Each special effect icon can represent a special effect transition between two clips (such as a dissolve, fade, and wipe). The user instructs the computer to assemble a video program from the stored video clips (and optionally also stored audio clips and clips representing still image images or text) by arranging displayed clips and displayed special effect icons in a desired sequence along the time ruler. The computer system may be programmed to perform the following operations: 1. select a new "in" point, "out" point, or both, for a displayed clip (in the edited video program) in response to the positioning of a cursor at an edge of the displayed clip and manipulation of an input device to "drag" the edge along the time ruler; 2. select a special effect transition between a pair of video clips displayed in first and second parallel tracks (and having overlapping portions along the time ruler), by displaying a selected transition icon in a third parallel track in alignment with the overlapping portions of the video clips; 3. select special effect transition parameters (such as transition duration) by displaying a transition icon in a special effects track (where the special effects track is displayed below a first video track and above a second video track, and where overlapping video clips are displayed in the first and second video tracks), and positioning a cursor over the transition icon while manipulating an input device; 4. control superimposition of an overlay clip (representing video, still image, or text) with a main (video or still image) clip by displaying the clips in separate tracks, displaying a level control icon in alignment with the overlay clip, and manipulating the level control icon to display a graph representing a time-varying weighting function for combining the main and overlay clips; 5. preview a video program defined by clips displayed in a desired sequence along a time ruler of a construction window by retrieving the clips from memory, processing the retrieved clips (for example, in accordance with special effects transitions defined by transition icons displayed along the time ruler), and sequentially displaying the processed clips as a preview in a separate video window; 6. cache (in random access cache memory) all frames retrieved in response to a command to update a displayed window or to preview a program defined by clips displayed in a desired sequence along a time ruler of a construction window; 7. process one or more selected video clips by filtering the corresponding digital video data with a temporally varying mosaic filter (having user-selected time-varying filter characteristics); and 8. perform special effects processing by filling the alpha channel of a first clip with a first value (i.e., a hexadecimal "00"), filling the alpha channel of a second clip with a second value (i.e., a hexadecimal "1F"), performing a first special effect process in which selected pixels from the first clip are combined with selected pixels of the second clip to generate a processed clip, and processing alpha channel data of the processed clip to identify one or more edges of the processed clip (for example, to facilitate further special effect processing of the processed clip). Brief Description of the Drawings Figure 1 is a preferred embodiment of the inventive apparatus. Figure 2 is a construction window displayed by a preferred embodiment of the inventive apparatus. Figure 3 is a construction window (of the Fig. 2 type) with two video clips, one still image clip, one audio clip, and two special effect transition icons displayed in separate tracks thereof. Figure 4 is a project window displayed by a preferred embodiment of the inventive apparatus. Figure 5 is another project window displayed by a preferred embodiment of the inventive apparatus. Figure 6 is a portion of a construction window having a single video clip displayed in one video track. Figure 7 is a modified version of the Fig. 6 display, which is produced by dragging the right edge of the video clip of Fig. 6. Figure 8 is a portion of a construction window having a single audio clip displayed in one audio track. Figure 9 is a modified version of the Fig. 8 display, which is produced by altering the level control icon of the Fig. 8 display. Figure 10 is a construction window displayed by a preferred embodiment of the inventive apparatus, with a video clip and an overlay clip displayed in separate tracks. Figure 11 is a modified version of the Fig. 10 display, which is produced by altering the level control icon of the Fig. 10 display. Figure 12 is a special effects menu displayed by a preferred embodiment of the inventive apparatus, including a set of animated special effect transition icons. Figure 13 is a set of six transition icon displays, representing the animated display of a special effect transition icon. Figure 14 is a mosaic filter control menu displayed by a preferred embodiment of the invention. Figure 15 is a special effect transition icon of a type displayed by a preferred embodiment of the invention. Detailed Description of the Preferred Embodiment With reference to Figure 1, a preferred embodiment of the invention includes programmed microprocessor 31, main memory 32 (a random access memory), mass storage device 33, and interface 37, all connected along a system bus 34, and mouse 38, audio speaker 39, and computer keyboard 40 connected to interface 37. Expansion bus 35 is connected to system bus 34, and digital video board 30 and computer monitor 36 (having a display screen) are connected along expansion bus 35. Microprocessor 31 runs the operating system and applications software that controls the operation of digital video board 30 (and the other system components). Preferably, this software includes Apple QuickTime system extension software available from Apple Computer, Inc. (or software equivalent thereto) for integrating video and audio data into Macintosh applications. Appropriately programmed microprocessor 31 performs all necessary digital processing operations (including special effects processing and filtering, including mosaic filtering to be described below) on data sets received from memory 32 or 33. Board 30 drives monitor 36, to display (in windows on the monitor's screen) data transferred to bus 35 from system bus 34 after undergoing special effects processing, filtering, or other processing in microprocessor 31. Preferably, board 30 is capable of processing 24-bit color video data for display on monitor 36, and microprocessor 31 has 32-bit addressing capability identical or equivalent to that of the Apple System 7 product available from Apple Computer, Inc. Main memory 32 stores the program and data sets for microprocessor 31, and preferably has at least eight megabyte capacity. Microprocessor 31 and main memory 32 are preferably implemented as a Macintosh™ II (or later model) computer having at least eight megabytes of random-access memory. Mass storage device 33 is typically a hard disk (preferably having at least 80 megabyte capacity), but can alternatively be a magneto-optical disk or other read/write device, or (in some embodiments) a read-only device such as a CD ROM. Microprocessor 31 and mass storage device 33 communicate with each other (and with main memory 32) over system bus 34. Bus 34 also allows data communication to expansion bus 35. In the Apple Macintosh™ II family of personal computers, expansion bus 35 adheres to the NuBus standard. Additional information on NuBus operation is available from Texas Instruments, Dallas, Texas. Additional details regarding preferred embodiments of hardware (and software) for implementing the invention are set forth in the "Adobe Premiere™ User Guide- Macintosh™ Version," dated September 1991, available from Adobe Systems Incorporated. Microprocessor 31 is programmed with editing software and user interface software (to be described below). The user interface software is capable of accessing the editing software (and the other system software) in response to commands entered by the user using mouse 38 or keyboard 40, and is capable of instructing board 30 to generate displays of the type shown in Figs. 2-14 on computer monitor 36. Digital data representing video clips, still image clips, and audio clips are stored in mass storage device 33. Microprocessor 31 can "cache" selected portions of this data, including frames of data selected for display on monitor 36, by copying the data into random access memory 32 (which will sometimes be denoted herein as a "cache" memory). When a user initiates an editing project, the system opens, and displays on monitor 36, a project window (such as that shown in Fig. 4 or Fig. 5) and a construction window (such as that shown in Fig. 2). By manipulating keyboard 40 and/or mouse 38, the user selects stored video clips (and optionally also still image clips and audio clips) from mass storage device 33. In response to selection of each clip, programmed microprocessor 31 generates an image ("thumbnail") for the clip, and displays the thumbnail (and corresponding identifying text) in the project window. Fig. 4 shows four such thumbnails 50, 52, 54, and 56 displayed in a project window. Fig. 4 also shows identifying text 51 for a video clip having thumbnail 50, identifying text 53 for a video clip having thumbnail 52 (and a corresponding audio clip having thumbnail 54), and identifying text 55 for a still image clip having thumbnail 56. The identifying text preferably includes the size in pixels (i.e., 320 pixels x 240 pixels) of each video or still image clip, and the clip duration (in the SMPTE format "hours:minutes:seconds:frames"). The thumbnail for a video clip can be one (possibly reduced) displayed frame thereof, such as thumbnail 50 and 52 in Fig. 4. For a still image clip, the thumbnail can be the corresponding image (or text), such as thumbnail 56 in Fig. 4. For an audio clip, the thumbnail can be a graph of a corresponding audio signal waveform, such as thumbnail 56 in Fig. 4. Preferably, the system is programmed to enable a user to enlarge the project window by manipulating mouse 38 to position cursor 49 on size icon 57, and then dragging size icon 57 toward the right (on the screen of monitor 36). In response to enlargement of the project window, the system will display thumbnails representing additional frames of each previously selected video clip (each of which already has a thumbnail displayed in the project window). For example, Fig. 5 shows an enlarged version of the Fig. 4 project window, with three additional frames (50A, 50B, and 50C) of the video clip having thumbnail 50. In response to enlargement of the project window, the system will display, side-by-side, additional copies of the thumbnail of each still image clip. For example, in the enlarged project window of Fig. 5, four copies of still image clip thumbnail 56 are displayed. Preferably, the user can control the time scale on which clips are displayed in the project window (i.e., the degree of time compression with which a video clip is displayed in the project window). This can be done by positioning cursor 49 on a "time unit" icon 58a in time compression window 58 and dragging icon 58a to a different station within window 58 (by manipulating mouse 38). Preferably, icon 58a can be positioned at any of several stations, each representing a different time scale (and time compression factor). Examples of such stations include: "single frame" (for displaying each frame of a video clip, i.e., one frame for each 1/30 second segment of a video clip representing video data having a frame rate of 30 per second), "two frames" (one displayed frame for each two frames of a video clip), "one second" (one displayed frame for each segment of a video clip having 1 second duration), and "two minutes" (one displayed frame for each segment of a video clip having 2 minute duration). In general, the system responds to any command requiring display of a video clip in a window (which can be a preview window, or a construction window of the type to be described below) by retrieving from storage, caching, and displaying every "Nth" frame of the selected video clip. The factor "N" is determined by the currently selected time compression factor. For example, if the user has selected the above-described "one second" time compression factor, the factor N equals 30, and the system will display every 30th frame of a selected video clip (if the clip has a frame rate of 30 frames per second). For another example, in response to selection of a stored video clip from mass storage device 33 for inclusion in a project (and display in the project window) with time unit icon 58a at a "single frame" station in time compression window 58, the system will display in the project window as many frames of the clip as will fit in the currently configured project window, and will cache all the displayed frames in cache memory 32. If the user then enlarges the project window, the system will retrieve a larger subset of the clip's frames from cache memory 32 (and mass storage memory 33), display this larger subset of frames in the enlarged project window, and cache the displayed frames in cache memory 32. For another example, in response to selection of a stored video clip from mass storage device 33 for inclusion in a project with time unit icon 58a at a "two frames" station in window 58, the system will display in the project window as many frames of the time-compressed clip as will fit in the currently configured project window (i.e., only the first, third, and fifth frames, if only three frames will fit in the project window), and will cache the displayed frames in cache memory 32. If the user then enlarges the project window, the system will retrieve a larger subset of the time-compressed clip's frames from cache memory 32 (and mass storage memory 33), display this larger subset of frames in the enlarged project window, and cache the displayed frames in cache memory 32. To generate an edited video program, the user drags thumbnails of selected clips from the project window to a construction window of the type shown in Fig. 2 (by manipulating mouse 38), and moves the thumbnails into a desired arrangement in the construction window. The construction window displays a time ruler 60 in a timeline window along its top edge, and elongated windows ("tracks") oriented parallel to time ruler 60. Fig. 2 shows seven tracks, labeled "A," "Fx," "B," "Super," "A'," "B'," and "C'," respectively. Because the thumbnails displayed in tracks of the construction window represent entire video clips or time-compressed entire video clips, the following description of the construction window (with reference to Figs. 2-3 and 6-11) will refer to thumbnails displayed in tracks of the construction window as "clips." Time ruler 60 represents the timeline of the edited video program. The user can expand the construction window by dragging size icon 57 (in the same manner described above with reference to identical icon 57 of the project window). Because a complete edited program may have duration longer than can be represented by clips displayed on a single monitor screen, the system permits the user to display any selected portion of program in the construction window. For example, the user can instruct the system to display the clips for a first portion of the program in a construction window (with the construction window displaying a first portion of time ruler 60 extending from the program start time 0:00:00 to intermediate time M:MM:MM), and thereafter instruct the system to display the clips for the remaining portion of the program in the construction window (with the construction window displaying the remaining portion of time ruler 60 extending from time M:MM:MM to a program end time N:NN:NN). When clips have been arranged in the construction window along time rule 60, the user can enter a "preview" command to microprocessor 31 to cause the system to generate a video program defined by the displayed clips. The manner in which the system responds to a "preview command" will be more fully described below, but can be summarized as follows: the system retrieves from mass storage memory 33 (or cache memory 32) all data corresponding to the displayed clips, stores the retrieved frames in cache memory 32, and displays the cached frames sequentially (as full-motion video) in a window on the screen of monitor 36 (and optionally also plays the corresponding audio soundtrack channels on speakers). In Fig.2; the construction window has seven tracks, all oriented parallel to time ruler 60. Only audio clips can be displayed in the bottom three tracks (identified as tracks A', B', and C'), and only video or still image clips can be displayed in the top four tracks (identified as tracks A, FX, B, and "Super"). The large tick marks of time ruler 60 represent the time scale for the video program (with time displayed in SMPTE format), and the small tick marks represent frames or seconds (depending on the currently selected time scale). The user selects a time scale by manipulating icon 58a in window 58 (shown in Fig. 2) in the same manner as described above with reference to identical icon 58a and window 58 of the project window of Fig. 4. As described above with reference to Fig. 4, icon 58a preferably can be positioned at any of several stations, each representing a different time scale (including, for example, "single frame," "two frames," "one second," and "two minutes" stations). For example, if the user drags a video clip into the construction window with time unit icon 58a positioned at a "one second" station in window 58 (as shown in Fig. 3), the system will cache (in cache memory 32) a time-compressed version of the video clip (i.e., it will cache one frame of the clip fcr each one-second segment of the clip). The system will also display all frames of the time-compressed clip in one track of the construction window (with one displayed frame per "one second" interval along time ruler 60), and will display a version of time ruler 60 scaled for the selected "one second" time scale (having small tick marks representing frames between each pair of large tick marks, with the distance between each pair of large tick marks representing one second). A very simple edited video program is defined by video (and/or still image) clips arranged side-by-side in a single track (i.e., track A), with the "Out" point (right edge) of each clip butting against the "In" point (left edge) of the next clip, and with no audio clips displayed in audio tracks A', B', and C'. In response to entry of a "preview" command with this arrangement of clips displayed in the construction window, the system previews the program by sequentially displaying (in a preview window) the clips that are simultaneously displayed in the construction window, in a time order corresponding to the spatial position of the clips along time ruler 60. To generate more complicated video programs (with overlapping clips), the user displays pairs of overlapping clips in different tracks of the construction window (as shown in Fig. 3). With reference to Fig. 3, the user can specify a special effects transition between video clip 62 and still image clip 63 by positioning clip 62 in track A and clip 63 in track B, and positioning a special effect transition icon 65 in a track FX. The user adjusts "In" and "Out" points of icon 65 (the left and right edges of icon 65, respectively) so that icon 65 coincides with the overlapping portions of clips 62 and 63 along time ruler 60. Because icon 65 represents a cross-dissolve transition (to be described below), the Fig. 3 display specifies a video program including a cross dissolve transition from clip 62 to clip 63, beginning at the "In" point of icon 65 and ending at the "Out" point of icon 65. Figure 3 also shows a "push" special effect transition icon 66 in track FX, in alignment with overlapping portions of video clip 64 (in track A) and still image clip 63 (in track B). Because icon 66 represents a push transition (to be described below), the Fig. 3 display specifies a video program including a "push" transition from clip 63 to clip 64, beginning at the "In" point of icon 66 and ending at the "Out" point of icon 66. Figure 3 also shows audio clip 67 in audio track A', which represents a single-channel (monaural) audio soundtrack. Because the "In" point (left edge) of audio clip 67 is aligned with the "In" point of clip 63, the soundtrack for the program will commence simultaneously with the start of the cross-dissolve from clip 62 to clip 63, and the soundtrack will continue during display of clips 63 and 64. Optionally, the user could add second and third audio clips to tracks B' and C' to specify a three-channel audio soundtrack (which might correspond to left and right stereo channels, and a "surround" or "sub-woofer" channel). The system is programmed so that manipulation of audio level control icon 67A (displayed with clip 67 in track A') allows the user to adjust the level of the corresponding audio track, in the same way that sound is mixed in record and television production. With reference to Figs. 8 and 9, the user positions a pointer (cursor) 68 on middle line 69 of icon 67A (by manipulating mouse 38). The user then "clicks" mouse 38 (activates a control on mouse 38) to create a handle 71 (a black dot), and drags 71 handle up or down relative to line 69 to program the system to execute an audio clip fade in or fade out, respectively, and to deform a displayed "rubber-band" level control line 70. The default position of rubber-band line 70 is a position coincident with middle line 69, which represents a mid-range audio level for clip 67. Line 70 has "rubber-band" characteristics in the sense that, in response to a user's dragging of a handle 71 vertically at one position along time ruler 60, the system automatically deforms line 70 along part of its length in accordance with a model in which the portion of line 70 to the left of the handle simulates an elastic band (to provide for smooth temporal variations in audio level assigned to consecutive segments of audio clip 67). Thus, if the user drags a handle 71 downward from the position of pointer 68 in Fig. 9, the system automatically moves downward a portion of line 70 on the left side of pointer 68, as if that portion of line 70 were made of elastic material. The user can create as many handles 71 as desired (three handles 71 are indicated in Fig. 9). Each ascending portion of line 70 represents a fade in, and each descending portion of trace 70 represents a fade out. In response to entry of a preview command, the system retrieves from storage the audio data for audio clip 67 and plays the audio clip through a speaker (such as speaker 39 of Fig. 1), with an instantaneous volume level determined by the position of line 70 relative to line 69 at the corresponding position along time ruler 60. Next, with reference to Figs. 2, 10, and 11, another way will be described in which a user can control superimposition of overlapping video (or still frame image) clips displayed in the construction window. To accomplish this, the system is programmed to superimpose a clip displayed in the "Superimpose" track (identified by label "Super" in Figures 2, 10, and 11) with a clip displayed (along the same segment of time ruler 60) in track A or B, or with overlapping clips displayed in tracks A and B. When the system generates and previews the corresponding program, the images corresponding to the clips in tracks A or B (or both A and B) shows through transparent parts of the superimposed image. To superimpose a video or still image clip (referred to as an "overlay" clip) with a clip (referred to as a "main" clip) displayed in track A, B, or both A and B, the user drags the overlay clip to the "Super" track, and aligns it with the relevant portion of the clip in track A. For example, Figures 10 and 11 show a main clip 70 in track A and an overlay clip 72 in a "Super" track. The construction window of Figs. 10 and 11 has been reconfigured to delete tracks B and FX. In a preferred embodiment, the user can reconfigure the construction window of Figs. 10 and 11 to add tracks B and FX of the type shown in Fig. 2. The user specifies which portions of the overlay clip are transparent, in one of two ways. In one alternative, the user specifies a color (or range of colors) of the overlay clip as being transparent (so that the main clip will show through portions of the overlay clip having the specified color or range of colors). This can be done by displaying a transparency setting menu having icons which can be manipulated using mouse 38 to specify the "transparent" color or range. In another alternative, the overlay clip includes a special "alpha" channel, comprising bits which define a grey scale level fcr each pixel of each frame of the overlay clip. In this case, the system can be programmed to interpret the grey scale levels as degrees of transparency. An example of a clip having such an alpha channel is a clip consisting of 32-bit, still image frames generated by the "Photoshop" software commercially available from Adobe systems Incorporated. It is often desirable to generate an edited program having a title (or other overlay image) which fades in or out, or has a semi-translucent appearance, when superimposed on a main image. The system of the invention is programmed to enable the user to achieve such effects in a convenient, intuitive manner. This is accomplished by manipulating a level control icon, such as fade control bar 74 displayed in the "Super" track of Figures 10 and 11. To adjust how "strongly" the overlay image will be displayed on the main image (or in other words, to adjust the weight with which overlay clip 72 is combined with main clip 73), the user manipulates mouse 38 to position a pointer 76 on top (horizontal) line 74A of fade control bar 74. The user then "clicks" mouse 38 to display a handle 76A (a black dot), and drags handle 76A up or down within fade control bar 74 to deform a displayed "rubber-band" level control line 78. The default position of rubber-band line 78 is a position coincident with top line 74A, which represents maximum weight for overlay clip 72. If the user drags handle 76A downward (upward), the system assigns decreased (increased) weight to the corresponding segment of the overlay clip. With handle 76A at the bottom of icon 74, the corresponding overlay image will be completely non-visible when superimposed' on the corresponding segment of main clip 73. Line 78 has "rubber-band" characteristics in the sense that, in response to a user's dragging of handle 76A vertically at one position along time ruler 60, the system automatically deforms line 78 along part of its length in accordance with a model in which the portion cf line 78 to the left of the handle simulates an elastic band (to provide for smooth temporal variations in the weight assigned to consecutive segments of overlay clip 72). Thus, if the user drags handle 76A downward from the position shown in Fig. 11, the system automatically moves downward a portion of line 78 on the left side of handle 76A, as if that portion of line 78 were made of elastic material. One advantage is that it provides a convenient and intuitive way for a user to select "In" and "Out" points for each clip to be included in an edited video program. In contrast, prior art editing systems accomplish this function in an inconvenient manner, in which the user views sequentially displayed video frames, freezes the sequential display at a desired frame, and marks the frame as an "In" or "Out" point of a video segment. This prior art technique makes it very difficult for a user to perform many routine editing operations, such as extending a video segment to match certain actions in another video segment (or to match a desired portion of an audio soundtrack). The system is programmed to enable a user to select "In" and "Out" points for each clip of a video program, in the manner to be described next with reference to Figures 6 and 7. To align a clip along time ruler 60, the clip is displayed in a track of the construction window, and the left or right edge of the clip is dragged along the track to a desired "In" or "Out" point along the time ruler 60. The precision with which each edge can be positioned along time ruler 60 depends on the currently selected time scale for the construction window (the time scale is selected, in the manner explained above, by manipulating icon 58). To align clips with maximum precision, the time unit should be selected to have its lowest value (i.e., icon 58 configured in the "single frame" setting, in which each frame of the clip is displayed in the construction window). As shown in Fig. 6, left edge 81 of clip 80 is aligned at SMPTE time code 0:00:10:00 of time ruler 60, indicating that clip 80 commences (i.e., has an "In" point) at the tenth second of the video program being edited. Right edge 82 of clip 80 is aligned at SMPTE time code 0:00:11:00 of time ruler 60, indicating that clip 80 ends at the eleventh second of the video program. To maintain this "In" point for clip 80, and insert a longer-duration version of clip 80 into the video program, the user positions a "stretch" cursor 83 at right edge 82 of clip 80 (as shown in Fig. 6). The user then "grabs" edge 82 by manipulating a control on mouse 38 and drags edge 82 toward the right along time ruler 60. When edge reaches the desired new "Out" point along ruler 60 (i.e., the point marked with SMPTE time code 0:00:12:00, as shown in Fig. 7), the user releases the control on mouse 38. In response to this sequence of operations, the system edits the video program to include a longer version of clip 80 (having the original "In" point and the new "Out" point), and retrieves from memory additional frames of clip 80 for display in the construction window (i.e., the two new frames of clip 80 shown in Fig. 7, but not Fig. 6). If the user enters the preview command with video clip 80 displayed as shown in Fig. 6, the system would display (in a preview window) all frames of a one-second video segment. If the user enters the preview command with video clip 80 displayed as shown in Fig. 7, the system would display (in the preview window) all frames of a two-second video segment (with the first one-second portion of such two-second segment identical to the segment referred to in the previous sentence). Similarly, the user can set a new "In" point for a clip by dragging the clip's left edge, along a track in the construction window, with the stretch icon. Also similarly, microprocessor 31 is preferably programmed to enable a user to split a clip into two new clips (which can be independently resized and repositioned along time ruler 60) by positioning a "razor blade" cursor at desired position along the time ruler and manipulating a control on mouse 38 to define this desired position as the "Out" point of the first new clip and the "In" point of the second new clip. Microprocessor 31 is preferably programmed to enable a user to select a special effect transition icon, in the following manner, for display in the above-described "FX" track of the construction window. In response to a command from the user, microprocessor 31 causes a special effects menu (such as the menu shown in Fig. 12) to be displayed in a window on monitor 36. The special effects menu includes a set of transition icons, each which can be selected by positioning a cursor thereon using a mouse. Each transition icon represents a different special effect transition between two clips: an "A" clip (displayed in track A of the construction window, and associated with an "A" image); and a "B" clip (displayed in track B of the construction window, and associated with a "B" image). The following fourteen transition icons are shown in Fig. 12 (more than or less than fourteen transition icons can be displayed): a "Band slide" icon, representing a transition in which the B image appears to slide over the A image in horizontal or vertical bars; a "Band Wipe" icon, representing a transition in which the B image is revealed under the A image by horizontal or vertical bars; a "Barn Doors" icon, representing a transition in which the B image is revealed under the A image from the center outwards; a "Checkerboard" icon, representing a transition in which boxes wipe in a spiral to reveal image B under image A; a "Cross Dissolve" icon (also shown within icon 65 in Fig. 3), representing a transition in which image A fades into image B; a "Dither Dissolve" icon, representing a transition in which image A dissolves into image B; a "Funnel" icon, representing a transition in which the A image is pulled through a funnel, revealing the B image; an "Inset" icon, representing a transition in which a corner wipe reveals image B under image A; an "Iris Round" icon, representing a transition in which a circular wipe opens to reveal image B under image A; an "Iris Square" icon, representing a transition in which a rectangular wipe opens to reveal image B under image A; a "Page Turn" icon, representing a transition in which image A curls to reveal image B underneath; a "PICT Mask" icon, representing a transition in which a user selected 1-bit (black and white) image, of the conventional PICT type, and the system replaces the black in the PICT image with image A and the white in the PICT image with image B; a "Push" icon, representing a transition in which image B appears to push aside image A; and a "Radial Wipe" icon, representing a transition in which a line fixed at one corner of the screen sweeps across image A, revealing image B. In response to a command from the user to activate the special effects menu, the system animates each of the transition icons displayed in the special effects menu. For example, Figure 13 is a set of six transition icon displays, representing the animated display of the "Push" transition icon of Fig. 12. The left-most image of Fig. 12 is displayed at a first time (t = 0), followed (in sequence) by the second image from the left, the third image from the left, the fourth image from the left, the fifth image from the left, and the right-most image. After the right-most image is displayed, the animation process repeats, and all six images are sequentially displayed again. The user includes a special effect transition in the program being edited by selecting a corresponding transition icon from the special effects menu, and dragging the selected transition icon to a desired position along the FX track of the construction window. As described above with reference to Figure 3, the user adjusts "in" and "out" points of the transition icon in the FX track so that the left edge ("in" point) and right edge ("out" point) of the transition icon are aligned with beginning and end points of a selected overlapping portion of a first clip in track A and a second clip in track B (as transition icon 65 is configured in Fig. 3). In one class of embodiments, the user adjusts in and out points of each transition icon by positioning a cursor on the left or right edge of the icon, and dragging the edge relative to time ruler 60, in the same manner (described above with reference to Figs. 6 and 7) that a user adjusts "in" and "out" points of a video or still image clip in track A or track B. In a class of preferred embodiments, each transition icon includes a set of control icons for setting parameters of the corresponding special effect transition (such as the in point, out point, and duration of the transition). Icon 90 of Fig. 15 is an example of a transition icon having such control icons. In Fig. 15, the control icon displayed in area 80 determines the type of the special effect transition. The user determines the type of the transition by dragging a selected icon from a special effects menu (which can be the menu described above with reference to Fig. 12) to area 80. The user can specify a direction of movement for certain transitions (i.e., the direction on the screen in which one clip "pushes" the other in a "push" transition) by "clicking" mouse 38 to select a desired one of edge control icons 82. If there are at least two available directions for a transition, the corresponding icon 90 displays one edge control icon 82 for each available position. For example, for a "push" transition (when a "push" icon of the type described with reference to Fig. 13 is displayed in area 80 of icon 90), eight edge control icons 82 may be displayed (as shown in Fig. 15), each representing a different direction in which one of clips A and B will push the other during the transition. Icon 90 optionally includes track selection control icon 88. The user can specify which clip (as between a clip in track A and an overlapping clip in track B) should play a given role in the transition, by clicking on icon 88 using mouse 38. Icon 90 optionally also includes forward/reverse control icon 84, and anti-aliasing control icon 86. The user can specify a forward cr reverse direction for a transition by clicking on icon 84 using mouse 38. The user can set an anti-aliasing level (i.e., to a "low," "high," or "off" level) by clicking on icon 86 using mouse 38. Microprocessor 31 may be programmed to perform any of a variety of filtering operations on selected clips. The user specifies each filtering operation by displaying a corresponding filter control menu, and setting filtering parameters by manipulating filter control icons displayed on the filter control menu using mouse 38 and/or keyboard 40. An example of such a filter control menu (for a "mosaic" filter) is shown in Fig. 14. A mosaic filter divides the frames of the displayed clip into a grid of squares, and makes each square the average color of all the pixels within the square. The user can set the effect of the mosaic filter to gradually increase or decrease as the clip plays by adjusting "Start" and "End" control icons displayed in the mosaic filter control menu. By lengthening "Start" control icon 92, the user increases the level of the mosaic filter at the start of the clip (i.e., increases the size of the squares into which the first frame of the clip is divided). Similarly, by lengthening "End" control icon 94, the user increases the level of the mosaic filter at the end of the clip (i.e., increases the size of the squares into which the last frame of the clip is divided). The system is preferably programmed to interpolate the level of the temporally varying mosaic filter for intermediate frames of the clip. When the user has defined a temporally varying mosaic filter for a clip, and then enters the preview command, the system filters the digital data corresponding to each frame of the clip (in accordance with the defined mosaic filter) before displaying the filtered clip in the preview window. The preferred feature of the invention contemplates that microprocessor 31 can be programmed to execute any of a variety of special effects on selected clips. One preferred way to accomplish this is to program microprocessor 31 with "plug-in" special effect software modules, each of which performs a phase cf a more complicated special effect. This feature also contemplates that the frames of digital data to be processed include an alpha channel (i.e., an 8-bit, transparency-scale representation of an image for each frame) associated with color channels (which can comprise three 8-bit color values for each pixel of the frame). When performing special effects processing (requiring combination of two clips), the programmed microprocessor 31 of the invention preferably fills the alpha channel of the first clip with a first value (i.e., a hexadecimal "00"), fills the alpha channel of the second clip with a second value (i.e., a hexadecimal "1F"), and then performs a first special effect process (i.e., in a plug-in special effect software module) in which selected pixels from the first clip are combined with selected pixels of the second clip to generate a processed clip. Then, when the processed clip undergoes subsequent processing, the alpha channel data of the processed clip is examined to identify one or more edges of the processed clip. For a given pixel, if the pixel's alpha channel matches the alpha channels in the four adjacent pixels (the pixels left, right, above, and below it) then there is no edge at that pixel. If, however, one or more of the alpha channels differs, an edge is determined to exist at that pixel (and any desired operation can be applied at that location, such as colored edge or a smoothing operation). This technique allows the second plug-in special effect software module (or other software) to identify edges of the processed clip without the need to specifically generate an edge region data structure. The choice of "00" and "1F" values allows for an additional speed increase in the comparison. Instead of comparison of the alpha channels as described above, the alpha channel values of the five neighboring pixels can be added together as byte sized values. A result of zero or a negative value indicates no edge, while any other value indicates an edge. Next, the caching steps (briefly described above) will be more fully described. Data are written into the cache memory (i.e., random access memory 32 cf Fig. 15) in response to each user command for updating the construction window, or for previewing a program defined by a currently displayed construction window. An example of the latter type of command is a command to change the time scale of time ruler 60. In response to each such command, the system calculates the addresses of the data that must be retrieved to update the construction window (or a preview window for previewing the program). The system then searches the cache memory to retrieve therefrom any of the required data currently stored in the cache memory. After retrieving any of the required data currently stored in the cache memory, the system retrieves from its mass storage memory (memory 33 of Fig. 1) the remaining required data. The system then caches all the retrieved data in the cache memory, processes the retrieved data in response to the command, and displays the processed data to update the screen display. As a result of the caching step, the system reduces the memory access time required for responding to future construction window updating or preview commands. For example, in response to a command for previewing a program, microprocessor 31 may retrieve all frames of the program (from cache memory or mass storage memory), processes the retrieved frames in accordance with special effects transitions defined by transition icons currently positioned in the construction window (and in accordance with any user-specified filtering operation), and causes the processed frames to be sequentially displayed in a preview window on the screen of monitor 36. The system also caches the retrieved frames (in their unprocessed form). Microprocessor 31 may "compress" each frame to be cached in memory 32, in the sense that it causes only some of the bits of the frame to be cached. For example, if a clip comprises 32-bit digital video data, including an eight-bit alpha channel for each frame of the clip, retrieved frames of the clip may be "compressed" by eliminating the alpha channel before caching the remaining 24-bit digital video data defining each frame. Such an alpha channel can be employed by microprocessor 31 to perform certain special effects processing (described above), and accordingly, such special effects processing must be performed on the retrieved frames before the frames are "compressed."

Claims: A method for editing a video program including a sequence of clips and transitions between the clips, comprising the steps of: (a) displaying a time line; (b) generating a display representing the video program by simultaneously displaying representations of at least some of the clips, and transition icons representing the transitions between the displayed representations, in tracks along the time line; and (c) editing the video program by modifying the display; wherein step (c) includes the operation of performing special effects processing on a first clip and a second clip, said operation including the steps of: filling an alpha channel of the first clip with a first value; filling an alpha channel of a second clip with a second value; performing a first special effect process in which selected data of the first clip are combined with selected data of the second clip to generate a processed clip having an alpha channel; and processing data in the alpha channel of the processed clip to identify one or more edges of said processed clip. The method of claim 1 wherein the alpha channel values of five neighboring pixels of the processed clip are compared to identify an edge whenever different alpha channel values appear among the five neighboring pixels. The method of claim 2 wherein the alpha channel values of five neighboring pixels are added and the result of such addition is compared with a predetermined value to indicate the presence or absence of an edge. The method of claim 1 wherein the first value is a hexadecimal 00 value, and wherein the second value is a hexadecimal 1F value, and the step of processing the data in the alpha channel of the processed clip involves the addition of the alpha channel values of the five neighboring pixels of said processed clip, a result of zero or a negative value indicating no edge, while any other value indicates an edge. An apparatus for editing a video program including a sequence of clips and transitions between the clips, comprising: a monitor (36); a processing means (31) coupled to the monitor (36) wherein the processing means (31) is programmed with: software for displaying a time line, software for generating a display representing the video program on the monitor (36), said display including simultaneously displayed representations of at last some of the clips, and transition icons representing the transitions, in tracks along the time line, and software for editing the video program by modifying the display, wherein the processing means is programmed with software for performing special effects processing operation on a first clip and a second clip, said operation including the steps of: filling an alpha channel of the first clip with a first value; filling an alpha channel of a second clip with a second value; performing a first special effect process in which selected data of the first clip are combined with selected data of the second clip to generate a processed clip having an alpha channel; and processing data in the alpha channel of the processed clip to identify one or more edges of said processed clip. The apparatus of claim 5, wherein the first value is a hexadecimal 00 value, and wherein the second value is a hexadecimal 1F value. The apparatus of claim 6, including a mass storage memory (33) coupled to the processing means (31).

Inventors: UBILLOS RANDY, UBILLOS, RANDY
Applicants: ADOBE SYSTEMS INC, ADOBE SYSTEMS, INC.
Application year: 1993
Main classification: G11B27
IPC codes: G11B27, H04N5