p 1 METHOD AND APPARATUS FOR PLAYING SERIAL~Y STORED
SEGMENTS IN RN ARBITRARY SEQUENCE
Appendix A is being submitted with the application for entry and availability in the application filet but for convenience, has no~ been submitted for publication. The appendix is available on microfiche. There is one microfiche and a total of twenty-one frames. The header portion and title page of the microfiche indicate Kenneth C. Kiesel a~ the inventor and MOM-015 as the attorney's docket number.
Back round of the Invention g TAe invention relates generally to editing serially stored audio-visual information and in particular to a method and apparatus for playing back the serially stored material according to a selected sequence.
U.S. Patent No. 4,538,188 to ~,~rker et al entitled ~Video Composition Method and Apparatus", issued August 27, 1985, discloses apparatus and methods for creating an edit decision l~st (EDL). The EDL identifies a continuous edited sequenco of video and audio segments, drawn from un~dited, raw source material, which togPther can de~ine a complete program.
The preparation of the edit decision list requires many hours of work wherein the entire program or portions of the program are viewed repeatedly or technical and esthetic content. According to the above-identified applications, however, the editing process advantageously does not physically 3~
I ! ~r' ~ ,5 ¦ form new sequences of videG segments each time an edit decision is made; but instead, the edit decisions are recorded in a digital memory, and the resulting selected scenes, defined by the EDL, are thereafter played back in the desired sequence.
To accurately assess the effect of the sequence of segments~
the sequences must be displayed, preferably in a contiguous fashion, from beginning to end, and should be capable of ~eing repeatedly replayed.
~ One method of playing the sequence of segments according to the ~DL is to create a master tape with the segments written thereon in the proper order. However, , continuous rewriting of the master tape each time a new edi~
j decision is made or each time a sequence is to be viewed, is to I be avoided, and desirably another method should be provided or 15 j playing back the segments according to the EDL. When ~here are ~' only a small number of segments to be played, for example three or four, each segment can be read from a different one (or two) of the many tape recorders which are available (according to the above-identified patent applications), and the segments can be played in sequence as the video tape recorders rewind to the beg1nning of a segment each time the segment has completed playing. If a video tape recorder does not have sufficient time to rewind and still play the segment when it is needed, two recorders can operate in serial sequence so that for small 25 I sequences of segments the problem is not severe and can be ! relatively easily handled.
¦ On the other hand, when viewing an EDL having a long seguence of segments, for example when there are more segments tna ~ ere are video tape reco~dor ~ it c~n result that absent proper org~nization, gaps develop in l:he playback of the ¦ ~egments which not only break concentration with respect to the portion of the sequence being viewed, but have the potential effect of disrupting the entire playback sequence. As noted I _.
above, it is not practical to record ~he segmentsO in ' accordance with the EDL, in a desired sequential order onto an 1 output video tape recorder from the various source video tape ¦ recorders because that procedure is both time consuming and inflexible. If an editor changes the program after he has made 10 I the output tape rec~rding, he must rerecord the entire program from the point of the change to the end of the pro~ram material. This is different, for exa~ple, than film~editing~
wherein shots or segments can be changed by simply pulling ouk i an old shot and splicing a new one in its place.
15 ! It is therefore an object of the invention to provide reliable and flexible playback of audio-visual source material ¦ which enables a sequence o segments on an edit decision list , to be played back in a generally contiguous, arbitrary order.
I Other objects of the invention are creating a contiguous display of selected segments of audio-visual source material and displaying a sequence of segments after modification of the 1, sequence without rewriting the modified segments vn a new tape ! and without physically cutting and rejoining them.
Summary of the Invention The invention relates to a method for playing a plurality of segments selected from a plurality of reference ¦ segments in a selected playback sequence. The reference segments are recorded in the same order on each of a plurality of serial recording media and the selected segments are to be I
played in the playback sequence in an order which is different than the order of the reference segment recorded se~uence.
Each selected segment has associated therewith data ', representing a segment length and a starting position on the 5 ~! recording medium.
i The method features the steps of playing a first selected segment of the playback sequence from a first medium reading device; playing each next succeeding segment of the 1 playback sequence from a medium reading device which can reach lO ! that next succeeding segment in the contiguous playback sequence and play that segment in a called-for proximate time sequence to a preceding segment of the playback sequence;
provided, however, that that reading device is the one which j most recently completed a play of an earlier segment of the 15 j sequence. If there is no reading device able to reach and play the next succeeding segment of the playback sequence, then a previously unused reading device is employed for playing that 1 next succeeding segment.
¦ The method further features replaying the entire playback sequence by playing each next succeeding segment of I the playback sequence from the reading device which can both i reach that next succeeding segment in the second play of the i playback sequence and play the next segment in a called~for ¦ proximate time sequence to a preceding segment of the playback sequence and which is the reading device which most re~ently completed a play of an earlier segment. In one embodiment of the invention, if no previously used reading device i~i available to play the next succeeding segment o~ the playback sequence, a previously unused reading device can be employed.
1! 4 -., , ~_V~5~3~;
In one aspect, the invention provides a method of playing a plurality of segments, selected from a plurality of reference segments, in a user-definecd playback sequence, said reference segments being recorded on each of a plurality of serial access recording media in a known recorded reference sequence, said selected segments being played in said playback sequence in an orcler clifferent than the order of said recorded sequence, each selected segment having associated therewith data representing a segment length and a starting position on each said recording medium, saicl method comprising the steps of:
playing a first selected segment of said playback sequence from a first medium reading device, playing each next succeeding segment of said playback sequence from a medium reading device (a) which can reach said next succeeding segment in said contiguous playback sequence and play said succeeding segment in a desired time sequence relative to a preceding segment of said playback sequence, and (b) which is a reading device able to reach the succeeding segrnent, which most recently completed play of an earlier segment, and if no most recently used reading device is available to play said next succeeding segment of the playback sequence, said reading clevice is a previously unused reading device, replaying said entire playback sequence by playing each next succeeding segment of said playback sequence from a reacling device - 4a -~ ~5~
(a) which can reach said next succeeding segment in said second play of said playback sequence and play said next succeeding segment in a desired time sequence relative to a preceding segment of said playback sequence, and (b) which is a reading device able to reach the segment, which ~ost recently completed play of an earlier segment, preprocessing a reading device play sequence for each of said playback sequence segments, assigning to each selected segment a command time, a program time, and a specified reading device for playing said selected segment at said program time, directing to a said specified reading device at each said command time, instructions required to play a said selected segment in timed sequence with other of said selected segments, minimizing a time duration prior to which a first playback of segments in said playback sequence can take place by selecting said unused physical reading devices in accordance with a play delay minimization process, generating a list of commands ("KEYSHOT array"), each entry of which corresponds to the first use of a reading device to play a said segment of said playback sequence, sorting the entries in said KEYSHOT array according to increasing time code, sorting the available reading devices in accordance with increasing head position on the recording medium, - 4b -;, ~ ~75'~35 assiyning for each successive KEYSHOT array entry, starting with the keyshot entry having the lowest time code, the physical reading device whose position is closest to the time code associated with the keyshot entry, selecting, if that reading device is already assigned, a second reading device so that if at least one reading device from the closest reading device to the end of the reading device list has not been previously assigned, the first unassigned reading device toward the end of the list is assigned to play the keyshot, and if the closest reading device is already assigned and if all reading devices to the end of the list of sorted reading devices have also been previously assigned to play a keyshot, the unassigned reading device which is closest to the end of the list is identified and all reading devices from it to the next to last reading device in the list are reassigned to play the keyshot previously assigned to the reading device sequentially ahead of it, and the last reading device of the list is assigned to play the current keyshot, and optimizing the reading device assignment by reviewing the reading device assignments.
- 4c -3 r;
The method further features the steps of preprocessing a reading device play sequence for each of the playback ¦ sequence segments, assigning to each selected segment a command ¦ time, a prograrn ~ime, and a specified reading device for 5 I playing the selected segment at the program time, and directing Ii to the specified reading device, at each command time, the ¦, instructions required to play the corresponding selected I segment in timed sequence with the other of the selected ¦ segments.
10¦i In another aspect, instead of using previously unused j reading devices during the replaying step, the method features ¦ inserting a pause delay between successive playbacks of the I segment playback sequence for enabling the second and j succeeding playbacks to be played without gaps between the played segments. The duration of the pa~se delay is sufficient to enable those reading devices employed during the first play ' to reach and play the playback segments in the contiguous ! playback sequence.
~ In yet another aspect of the invention, the method 20 I features minimizing the time duration prior to which a first playkack of the selected segments in the playback sequence can take place. The time minimization process is implemented by selecting the reading devices in accordance with a play minimization procedure.
Brief Description of the Drawings ¦ Other objects, advantages, and features of the inve~tion will appear from the following description of a preferred embodiment taken together with the drawings in which:
! Figure 1 is an electrical block diagram of a preferred 30 ~ em-odi~ent of the inventio~;
~5~ 95 Figure 2 is a flow chart illustrating one preferred 1: operation o the control element in accordance with a preferred ! embodiment of the invention;
li Figure 3 is a table of inputs for generating the , command list of Figure 4;
Figure 4 is a table showing a command list for the embodiment of Figure l; and I Figure 5 is a table of logical and physical VTR
I correspondence for the embodiment of Figure 1.
1, Descri~tion of a Preferred Embodiment ¦~ Referring to Figure 1, a playback apparatus 10 comprises a plurality of video tape recorders 12, 14,..., 16 . which connect through respective interface elements 18, 20,....
j 22, and routing elements 24, 26,..., 28 to an audio-visual bus 15 !: 30- Also connected to the bus 30 îs a display element 32 connected through a routing element 34 and a controller 36 with a memory 38. The controller 36 can communicate over the bus 30 to any of the video tape recorders and any of the video tape recorders can make their audio and video signals available to 20 . the display element 32 through the bus 30.
In general operation, under the control of controller , 36, the different VTR's are queued to play respective segments of a commonly stored se~uence of segments in a prescribed ; playback sequence; and the output signals of the respective 25 I VTR~s are switchably connected for display over display unit 32. Thus, as soon as one V~R finishes playing a segment, the display element 32 receives a next segment for display from a second VTR- The first VTR is then sent to another segment ¦ further along in the playback sequence and plays that segment 1~ 1 75~
in its prescribed slot in the playback sequence. In accordance with this apparatus and method, the playback sequence can be easily changed at the controller 36 by modifying its edit i decision list and the instructions to the various video tape 1 recorders are modified accordingly. Rerecording of the source material is not needed.
In typical operation, all of the video tape recorders are identical and have recorded thereon the same program i material in the same recorded order. Thus each video tape 101 recorder can play any o f the material in the program. The i tapes can be removed to allow another editor to use the equipment and can then be reinserted later into any of the ¦ VTR's. It is not necessary to remember from which VTR a tape 1 was removed.
151 Furthermore, this structure has the advantage that, if I a video tape recorder breaks down, it can be removed from the ~ system "logically" (as opposed to physically) and the program I can still be displayed so long as there are a sufficient number ! of video tape recorders left to reach all of the segments in 20l time. The operator needs only to be alerted to the fact that maintenance is required, but need not react quickly.
j The VTR's 12, 14,..., 16 can be any type of video tape player. If a broadcast quality VTR is used, the program can be aired directly without ever generating an output tape.
25 , Otherwise, for example, the edit decision list from which the video tape recorder instructions are being derived can control an editing machine to automatically create an output tape using broadcast quality source material.
_ 7 _ ;
~ ,.............................. .. .
~ ~7~ 35 ¦ In accor~ance with th~ invention, each vide~ frame of source material is identified by a standard SMPTE time code.
Time seq~ential video frames are recorded using sequential time ¦ codel but gaps in the time code oan exist if, for example, the camera starts and stops. ~herefore, in accordance with the inventiont when materia~ is stored on each of ~he VTR's, each frame has recorded with it, in addition to the original source time code, an internal time code which is numbered sequentially from the beginning of tape until its end. As will be described in more detail below~ the internal time code is essential for playing the edited material because it provides the data which I determines the distance of any video tape recorder from the desired material. That is, by taking the difference between , the internal time code of the desired material and that of the 15 ! frame currently under a tape head, the distance and hence the time to (a) reach the desired material and (b) properly set up to play it, can be determined.
¦ The playback data source for the apparatus in this ¦ illustrated embodiment of the invention is the edit decision list. The edit decision list is created as the input source , material is edited and represents a list of the edit points, that is, a list of the segments which are to be displayed and I the order in which the segments are to be displayed~ In the ¦l illustrated embodiment, the parameters representing each 2~ ; segment to be displayed include the internal time code for the video frame which is the first frame of the segment (FOOTAGE), the program time ~PR~GTIME) whiçh is the time from the beginning of the program to the beginning of the segment, a description of the material which is going to be played ~audio or video) and a description of the transition from one segment to a next. An additional item of data, the length of time tl~t , a video tape player must play to provide the program material ¦ of the segment (~LAYTIME), is calculated from the parameters of ¦ the edit decision list. Therefore, for cut transitions, the ! program PLAYTIME is simply the difference between -the béginnings (the proyram times) of two successive segments. For dissolves and wipes, the PLAYTIME for the earlier segment is j extended by the length of the transition.
For ease of description, the special case of audio ~ollow video is generally described hereinafter, that is, the audio must always come fro~ the same VTR that is displa~ing a picture. Clearly, in other embodiments of the invention, other I cases wherein the audio and video come from separate video tape 15 ! recorders can be employed.
Controller 36 receives, for each segment to be 1 displayed, the program time, the internal time code data ¦ (FOOTAGE) identifying the beginning of the segment, and the 1 length of the segment (PLAYTIME). Controller 36, in response 20 j thereto, generates a logical list of the video tape recorders ! I which will be employed to play the segments in the correct ¦ order. This logical list of VTR's is created without reference , to the physical VTR's except that the response time and number ¦ of the physical VTX's are available to the controller. The logical video tape recorders are identified with an identifying symbol, for example starting with the number "1" and continuing sequentially thereafter.
¦ With that data available, controller 36 then operates~
, as will be described in more detail below, to generate an i ordered list of logical video tape recorder commands, each _ 9 _ ~
( ~ 5 entry of the list (called the COMMAND array 38a and stored in memory 38) having inter alia a command time, a time code lFOOTAGE), a program time, and the logical VTR ID number. The ¦ command time is the time from the first command time to the time at which the current command is to be sent. This time is calculated to be immediately after a video tape re-corder has finished playing a previous program segment. The first command to each of the tape recorders used to play the program is sent at command time zero. As described in more detail below, 10 j controller 36 generates, once the various lists of logical video tape recorders has been prepared for playing the program, an association between the logical video tape recorders and the I physical tape recorders which will actually play the program 1 material. The use of an artificial grouping of tape recorders, 15 '~ the logical units, provides great flexibility to the method described herein.
The time code or FOOTAGE of a segment, as noted above, is the internally applied time code of the first video frame I which the video tape recorder receiving a command must play to 20 ¦ show the program segment which it is being directed to play.
! That first frame must be shown at the identified PROGTIME and i hence the video tape recorder must have a controlling interface I which is capable of locking the tape recorder to a system 1 synchronization clock signal and ~ueuing the tape recorder ahead of the program time so that it will be playing at a particular location at the specified program time~ The logical video tape recorder identification number is a number from one to the number of video tape recorders available to the systemr and identifies the logical video tape recorder to which a 30 ' command will be sent.
Il - 10 - ' ' .
The controller 36 also requires, for each physical ; video tape recorder, the position of the tape, for that tape 1 recorder, i.e., the internal time code for the frame under the ¦; tape head. With this data, controller 36 also generates as Ij described in more detail below, a look-up table or VTR map ¦ (Fig. 5) to associate each physical video tape recorder with a 1 logical video tape recorder identified in the command list.
¦ The look-up table has available the identifying symbol of the ¦ physical video tape recorder corresponding to each logical 10 j video tape recorder identification~ In addition, the look-up ~; table of Figure 5 also provides a mapping from one logical video tape recorder identification (VTR ID) to a next logical I, VTR TD for use during a next play of the same playback sequence. In this manner, a playback sequence can repeat indefinitely by issuing commands from the command list in a cyclic pattern and substituting, after a command has been issued, the next logical VTR number from the look-up table for the logical VTR number then in the command list.
The controller 36 can also supply three additional items of information. The controller 36 can provide a loop time (I,OOPTIME) which is the time from the start of a program the first time it is displayed, until the start of the program the second time it is displayed. This time is then added to the command time and program times for each command after it is issued to prepare the command for a next use when repeatedly cycling through the command list to replay the program sequence. In addition, the controller 36 provides a delay time ; (D~LAY) which is the time from the issuance of the first I commands corresponding to command time of zero until- the start ~ 7~
1 of the program~ The physical video tape recorders are chosen, as described below in ~reater detai:L, by controller 36 to play the first segments in an optimum pattern based upon their initial posi~ions relative to the program material. This minimizes the DELAY~ Finally, controller 36 also provides a time pause tPAUSE) which is the time from the end of a program until the beginning of the next display of the program when the program is replayed. The controller typically assigns a predetermined value to the time pause, but extends it if lo necessary when the video tape recorde~s used to play the program the first time require a time longer than the predetermined value to initiate play of the program a next time. As will be described further below, once the time pause is set, the prog~ams can be displayed repeatedly without further time pauce adjustment.
Referrir,g now to the flow chart of Figure 2, which corresponds to the program listing of Appendix A bein~
submitted herewith, controller 36 operates as follows. The controller recei~es, at 100, the initial data describing the p~ayback sequence. The input data is in the form of a PAI~
structure which includes inter alia the starting location of the video and auaio material, the level or intensity of the audio material, and the duration of the material.
The PAIR structure is a doubly linked list, internally generated, which includes data indicating the previous segment to be played and the succeeding s~nt to be 54'3~, played. The contents of application Serial No. 556,539 are included in and have been published by WIPO as a Patent Cooperation Treaty Application under Publication No.
~084/02606, on July 5, 1984.
The controller 36 operates upon the input data at 102 to prepare a "COM~AND array" 3~a. The COMMAND array entries include, for each segment to be played, ~a) the program time (PROGTIME) at which the segment is to begin play in its proper position in the playback sequence; ~b) the play time (PLAYTIME) or length of the segment; (c) the command time ~CMDTI~), which is the time at which the command to play a segment (the command including the PROGTIME, etc.) is sent to a playback device, that is, a sel2cted v;deo tape recorder through its associated routing and interface circuitry; (d) the end time (ENDTIME) which is the time at which the segment is completed; (e) the footage (FOOTAGE~ which is the start time code for the segment on the video tape (this is the internally added time code);
~f) a PAIR pointer ~PAIRP) which is a pointer to the PAIR
associated with the segment to enable the controller 36 to obtain further data and information if necessary; (g) the reading device logical identification (VTRID) which is the identification of the logical VTR to be used to play the segment; (h) the VTR use flag ~VTRNEW) which is a flag set when a previously unused reading device is first used and hence is set for all entries of the array when all VTR's have been used;
and (i) the transition duration (TRANDUR) which is the length or duration of the transition occurring at the end of this segment. Not all of the items i~ the COMMAND ~rray will be available when the list is first set up. Those ite~s which are ,. I
not available will be added to and filled in the COMMAND array list as the data becomes available. Thus, for example, when the CO~hND array is first set up, the VTRID is unknown, as are li for example the command times and the end times.
The controller 36 next generate~, at 104, a STACK
~i~ array 38b in memory 38. The STACK array provides data representing the starting position for each of the physical reading devices, that is, the physical video tape recorders.
The STACK array for each physical video tape recorder includes 10 I the entries "STATUS" which equals zero if the VTR has not been I assigned to play a segment, a POSITION data indicating the ¦ initial position of the VTR on the tape, an IDENT variable I which identifies the logical position of the VTR in the stack, ! and DONETIME, the time at which the video tape recorder is 15 ' ready for a next command. In addition, a corresponding array ! called a SYMSTAC~ array 38c (stored in memory 38) is generated ¦ which includes, for each logical VTR, an identifier ci~rresponding to the identifier IDENT in the stack array, the ¦ DONETIME, a POSITION parameter which is the head position on 20 i the tape, and a STATUS parameter indicating whether the ~ogical ! VTR has been previously assigned.
The controller 36 then builds, at 106, a list of logical" reading devices or VTR's which can play the sequence l of segments for the first time (see also Fig. 4). As the list 25 i of logical VTR's is being generated, the apparatus also builds a KEYSHOT array 38d in memory 38. The list of "logical" video tape recorders to play a program has the same length as the input list of segments to be played. The identification of which logical VTR plays which segment uses VTR identification - 14 - i .
S 1 1l numbers which increase sequentially and start with "one", and produces a symbolic list which is thereafter associated with physical VTR's.
I The inputs employed for generating the symbolic list ! f logical VTR~s is shown for example in Figure 3. The inputs !~ provide the proyram time (PROGTI~E)~ the Segment l~n~th or duration gPLAYTIME), and the location or time code ~FOOTAGE) at which the material appears on the tape. The material can be ~ video or audio and in this illustrated example it is assumed 10 j that both cha~nels of audio which are available from the tape ! recorders are employed together. In accordance with the invention therefore, a first "logical" VTR, labeled VTR 1, is employed to play the first shot which starts at program time i zero. Referring to the resulting symbolic list of Figure 4, it 15 j is noted that the list has four elements for each list entry, the command time ~CMDTIME), the program time (PROGTIME), the ; time code ~FOOTAGE), and the logical VTR identification VTRID.
Further, as noted, the command to play the first segment is 1 sent to the VTR at time zero and has a time code (FOOTAGE), 20 ~ that is, the location of the segment on tape, which corresponds ; to the first entry of the program sequence. The program time, however has changed from "zero" because it takes a certain ~set-up" time (DELAY) before which all of the physical VTR's can reach their assigned initial segment~ As will be described 25 ' in more detail below, that DELAY in the present example is ' twenty-three seronds and eight frames. While the determination , of that time is described helow; it is noted here that the program time for each entry in the VTR sequence is incremented I by nine seconds and twelve frames from that which appears in 30 ~ the program sequence Fig. 3.
I As the VTR sequence (the ~ommand list) of Fig. 4 i5 ¦ being created, the data, previously unavailable, is also be;ng entered into the COMMAND array. For example, the VTRID and I CMDTIME for each of the logical tape recorders is being entered for a sequence. Similarly, entries are made in the SYMSTACK
array. For example, the DONETIME, the time when a logical VTR
is finished playing a previous segment is entered in the SYMSTACK array, and indicates when that logical ~TR will be I available for assignment t~ a next segment. Initially, the 10 I DONETIME entry is se~ to a large negative number so that initially any logical tape recorder has ample time to reach any of the source material.
The second segment entry on the program sequence listing of Fig~ 3 cannot be played by the first tape recorderD
15 ¦ Thus, a second tape recorder, identified as VTR 2, is assiyned to play the secorld entry. For each succeeding entry of the program sequence, a search path is followed through the list of video tape recorders to find the one that can play the next ¦ segment. If a previously used VTR can play the next segment, 20 ¦ the most recently used and available VTR is chosen for the ¦ task. Otherwise a new VTR, assigned the next higher identification number is assigned to play the next segment.
As noted above, the program sequence list is "searched" in the order specified by the sequence, and a , logical video tape recorder is found which can reach the segment in time to play it. To determine whether a video tape recorder can reach the material in time, a model of the video tape recorder response time is generated and stored in the controller 36. The model, in this illustrated embodiment, is - 16 - ' ~ ' ..,.. 1,,.,..,.. ...'.... ........
~' arrived at by experiment and will be different for different models of video tape recorders. For a Sony tape recorder Model SL-2700, the time consists of a fixed overhead time D" and a , fixed ratio, "S", of the fast wind speed to the play speed.
i Thus, the time T needed by a video tape recorder at position P
to play material at a location "M" becomes T = D ~ (¦P - M¦/S~.
If T is less than (PROGTIME - DONETIME) for a VTR, that VTR can i be employed for that item on the program sequence~ If the VTR
10 ' can be employed, an entry is made in the COMMAND array with the program time, the play time, and the time code copied from the ¦ input data and the logical identification number of the VTR.
If no previously used video tape recorder in the list can play the material, a new, previously unused VTR is employed and is 15 ~ assigned the nex~ higher VTR I~ number. Similar entries are , made in the SYMSTACK array, as is appropriate.
In accordance with the method employed by controller 36, VTR's which have been used once are first tested, and in an order so that the most recently used VTR is checked first.
This method provides the other used VTR's a lonyer time to reach material that may be farther from their DONETIME
positions. When a VTR is found, its "DONETIME" in the SYMSTACK
array is changed to "PROGTIME + PLAYTIME", that is, the time when the VTR becomes available again for reassignment will be ' the time after which it finishes playing the newest segment to ¦ which it has been assigned. In this manner the VTR sequence of Fig. 4 and the associated arrays are built by the controller , 36. In the example of Figure 4, fourteen VTR's are available, however, only twelve VTR's are actually used. If no VTR can be - 17 - ' ~5~5 found to play a next se~ment in continuous time sequence, the con~roller substitutes black vide~ and silence for the ' segment.
¦ As noted above, in connection with the logical block i labeled 10~, the SYMSTACK array is generated to desc~ibe the logical VTRls which have been employed in generati-ng this VTR
1 seguence. Thus, when the controller 36 scans the logical VTRts li to determine whether one is available, it, in effect, scans the entries of the SYMSTAC~ array which includes both the DONETIME
and POSITION of the logical VTR. In addition, of course, the SYMSTACK entry includes the status of the l~gical VTR which ¦ indicates whether or not it has been previously assigned.
When a VTR is assigned to play for the first time, the I controller 36 also copies the command in a second list of commands called the KEYSHOT array. Since newly used VTR~ s are identified with increasing numbers, the N'th item in the KEYSHOT array will be the f~rst use of the logical VTR
identified by the number "Nn~ Further, the number of items in . the keyshot list will equal the number of VTR's used to play the program sequence. For the illustrated embodiment, the ! keyshot entries correspond to those entries labelled 200 in the Fig. 4 command list.
. ~ Once VTR's have been associated with all segments in the program sequence, and the corresponding data have been entered in the COMMAND array, a time pause is set, at 108, ~o a I desired value, (for example three seconds~ and the LOOPTIME
¦ (the time from the beginning of the first play of the sequence to the time of the beginning of the second play of the , .
I - 18 - `
r ~ ~7~ 5 ¦ sequence) is set equal to the sum of the time pause (PAUSE), and the PROGTIME and the PLAYTIME for the last segment in the , program sequence.
¦ The controller 36 then generates a second list, also ! at 108, to ensure that the segments can be played a second time by the VTR's used to play them during the first play. That is ! not to say that the same "logical" VTR must play the same segment during the second play as it played during the first j play, but that the same number of VTR's can be employed to play 10 ¦ the segments a second time. A significant difference between the first and second play of the edit decision list segments is that the tape xecorder heads, at the beginning of the second play are not in the same tape position as they were at the I beginning of the first play; and therefore, the new positions 15 I may require not only that different tape recorders play different segments but that the time pause may have to be increased to allow all of the "old" or "used" tape recorders to ¦ replay the segments of the edit decision list in a contiguous playback sequence.
20 ¦ ~he controller ~6 therefore searches, at 108, the list I of logical video tape recorders for one that can play the first ¦ segment of the program during the second play. The criteria determining whether a video tape recorder can reach the segment corresponds to the criteria used in connection with the original or first play of the program, except that the allowable time by which to reach a segment now must be less than the sum of the program time for the segment (during the last play of sequence) plus the LOOPTIME minus the DONETIME ~of ; the ~TR). The search extends only as far as the logical video .
I - 19 - ' ' 5~
tape recorders which were used during th~ first play of the ! program. I~ no VTR can reach the material in time to play the ! segment in a continuous sequence, illustrated controller 36 ~ selects, from among the VTR's which have not yet been used in I this second play of the sequence, but which were used in ; connection with the first program play, and whi~h ~omes closest in time to reaching the segment. Controller 36 then increases the loop time by increasing time pause by a time duration which 1 allows the video tape recorder to reach the segment and play 10 i the material in contiguous sequence to the preceding segment (if any~. The time duration added to the pause delay (PAUSE~
¦ is subtracted from the DONETIME associated with each other video tape recorder not yet used during this second play to I reflect the extra time they will now have due to the longer 15 ~ time pause.
, When a video tape recorder is ~sed for the first time during the second play of the program sequence, the new logical number of that video tape recorder is inserted into a look-up 1 table, the VTR map, (Fig. 5) as the ~next VTR" to play the 20 1 segment. This look-up table is explained in more detail below. Also, the VTR identification number in the ¦ corresponding keyshot is changed to the new logical VTR which j was actually assigned during this next play.
1 The entries in the SYMSTACK array are then updated and the DONETIME of this VTR is set to a time equal to the PROGTIMB
i of the segment during the previous play of the program, plu5 the PLAYTIME, plus the LOOPTIME, and the VTR is moved to the first position of the search path, i.e., the order in which the logical VTR's are searched to find one which can reach a next segment to be played.
I - 20 - ' .. .. . . . . . . . . . . ..
1- ~ `'i I
Next, at 110, the LOOPTIME is added to the program time in all keyshots and the keyshot entries are appended to the comman~ list (Fig. 4). The co~mand list now contains all of the commands to play the program sequence the first time and 1, the first command to each VTR f or the second play of the program sequence.
Controller 36 now determines wnich physical video tape recorder to assign to each of the VTR logical identification i numbers, and calculates the initial "DELAYn, that is the time 10 " ~rom the ~æero" command time to the beginning of the first play of the program sequence. In the illustrated embodiment, the physical VTR assignment is effeoted as follows. First, sort at 112, the KEYSHOT array in order of increasing time code or ! FOOTAGE, and then sortj at 114, the video tape recorder list 15 I represented in the STACK array in order of increasing head position on the tape. Then, for each item in the KEYSHOT
array, starting with the keyshot having the lowest time code, find, at 116, the physical video tape recorder whose head I position is the closest to the required position. If it is not 1 already assigned, assign it to play that keyshot and go on to the next keyshot entry in the array. If that closest video j tape recorder is already assigned, and if all the VTR's to the I end of the video tape recorder list have also previously been ! assigned to play a keyshot, find an unassigned video tape ~ recorder which is closest to the end of the list and assign all video tape recorders from it to the next-to-last VTR in the 1 list to play the keyshot previously assigned to the VTR
¦ sequentially ahead of it (toward the end of the list). Then j, assign the last ~ideo tape recorder on the list to play the current keyshot.
, ~j - 21 -!l I
~ f at least one VTR from the closest VTR to the end of ~he VTR list has not ~een previously assiyned, assign the first unassigned video tape recorder toward the end of the list to 1, play the keyshot. Thereafter, tG optimize the VTR assignment, 5 1I controller 36 reviews the VTR assignments, and if there is an i unused video tape recorder between the one just assigned and 1, the beginning of the list, controller 36 computes (~) the ¦~ longest delay, of any VTR in the consecutive group of assigned ¦¦ video tape recorders~ in reaching its designated keyshot, (the 10 1 consecutive group starting with the VTR just subse~uent to the ¦ un~sed ~TR and continuing to (but not including) the ne~t unused VTR or the end of the list whichever occurs first) and (b) the longest delay of any video tape recorder, in the VTR
group starting with the unused video tape recorder and 15 ¦ continuing to the VTR prior to the last VTR of the consecutive group identified in ~a), in reaching the keyshot assigned to the VTR one ahead of it. If the second computed delay is less than the first computed delay, controller 36 reassigns the keyshots to the video tape recorders used in computing the second delay. This procedure îs followed until all of the keyshots have been assigned to a physical VTR~
Next, controller 36 computes, at 118, the D~l,AY time, which is the longest of the times for any assigned video tape recorder to reach the designated keyshot position reduced by ' the program time (PROGTIME) of that keyshot. This DELAY is then a time duration required to allow each of the video tape recorders to reach their first segMent to be played (the associated keyshot) at a time before they are called up~n to play that segment. It ls this ~ ~y ti e which ~he apparatus I
.. . ..
¦ will require prior to playing the first program sequence.
Thereafter controller 36 assigns the VTR identification number ! of the logical video tape recorder previously assigned to play ~ a keyshot to the corresponding physical VTR determined above 1 for the keyshot. This correspondence is tabulated in the VTR
map of Fig. 5 where the logical YTR identification is listed I under "VTRl" and the physical VTR under "physical V~R".
I Further, for each command in the COMMAND array, the DELAY is ¦, added to the program time. As noted above, the adjustment to 10~ the PROG~IME's provides the video tape recorders sufficient ¦ time to reach th~ir first segments before they are called upon to display them.
Next, the command time is entered, at.l20, for each element in the COMMAND array. That is, for each element in the 15 . command array, starting with $he last entry and working i backwards toward the first entry, controller 36 searches .
backwards through that command array for the pre~ious entry j~ using the same video tape recorder. This previous entry then 1, defines the last use the video tape recorder prior to the 20 ~ current command. If a prior use is found, the command time of .
the current element is the program time (PROGTIME) plus the play time (PLAYTI~E) of the previous item. If no prior use of the VTR is found, this entry corresponds is the first use the I video tape recorder and therefore its command time is zero, 25 , that isr the command is sent immediately. This data is also stored in a second command array, designated the VCMD array 38e (in memory 38) and is used to create, at 122, a third command array, a switcher command array, (designated an SCMD array 38f in memory 38), which provides command data to the routing .. . . . . . . . . . . . .
5~ a 1 switching system f~r properly connec-t~ng the CTR outp~t ~t the correct -time to rende~ a pr~cise display.
Thereafter, the video tape recorder command arrays VCMD and SCMD are sorted at 124 and 126 respectively, by increasing command time. The commands in each array are thus arranged in the order in which they will be issued. Duplicate commands are removed, for example, when audio a~d vide~ are derived from the same VTR.
There are as many commands, in the VCMD array, with a command time equal to zero, as there are video tape recorders being used. These commands correspond to the keyshot list compiled for the first play of the program sequence. ~he k~yshot list for the second play of the program sequence is also recorded a~ the end of the command time list for the for first play ~see Fig. 4). The keyshot list thus has command times equal to zero only once!, that is, at the start of the command se~uence. After all commands in the command list ~Fig.
4) have been issued and the segments played, all VTR'~ will have received their first commands for playing the program sequence the second time. This corresponds to the first commands for playing the keyshots a second time. As recited earlier, a sufficient delay or pause (PAUSE) is provided between plays of the program sequence to ensure that all tape recorders can reach the keyshot to which they are a~signed during a second play in time to play th~ entire program.
Thereafter, the next segment to be played is segment 202 which appears after the last keyshot of the first play. This ~hen i5 the re-entry point for the command list after segment 204, the last segment of the list.
~ ~ 75~
1 I~ is important to bear in mind that commands, as noted above, are issued to both the video tape recorders and their associa~ed interfaces, as well as to routing switching syste~ circuitry. Thus, it is n~t enough to have the proper video tape recorder providing the required data at the right time, but in addition, th~ routing circuitry must be properly controlled to switch the output(s) of a video tape recorder onto the bus 30 at the correct time. In that manner, the video, for example available from a video tape recorder as it is getting up to speed, is not shown on the dispiay ~ut rather, at the routing circuit switchin~ time, the old video from, for example VTR 12, is switchably removed off of bus 30 by the routing circuitry, and the video from, for example VTR 16, is switchably directed onto the bus by the routing circuitry. To accomplish this in synchronismr the apparatus employs as is described in the above-identified application, a master clock which synchronizes all of the VTR's, their interface elements, and associated routing elemen~s.
The table of Fig. 5, under the column "VTR2" provides the identification of the second logical assignment o~ a VTR.
Thus, in the illustrated example, logical VTR 9 during a first play is also logical VTR 9 during the first replay. ~owever, for example, logical VTR 1 during a first replay is logical VTR
3 during a second replay. In this manner a sequence of "logical VTR's" can be implemented for each succeeding rep~ay of the program sequence. Thus, logical VTR 2 becomes iogical VTR 8 during a next replay, to logical VTR 5 during a second replay to logical VTR 6 during a third replay, to a logical VTR
~!_f~ 35 1 7 during a fourth replay to a logical VTR 12 during a fifth i replay, to a logical VTR 2 again during a sixth replay~
hereafter the sequenc~ repeats.
I -- In using the table of Fig. 5, the physical VTR's are 5 ii always assigned to correspond to the same logical VTR number.
¦, Thus, as the logical VTR changes during subsequent plays of the ¦ same program material, so the video or audio segments provided ¦ by a particular physical VTR will change correspondingly.
I Accordingly, controller 36, to show the program sequence indefinitely, preferably modifies the command list after each command is issued, so that it will be valid for the next play of that segment of the program material, i.e. the next time the same segment is called for during a subsequent play of the ¦ material~ The required modifications are (a) that the command 15 ' time is updated by adding loop time to the old command time, ! (b) that prosram time is updated by adding loop time to the old i program time, and (c) the logical and hence physical video tape ¦ recorder identifications are updated by using the VTR2 entry ¦ from the look-up table for the new logical VTR ID. The physical video tape recorder entry corresponding to the new I, logical VTR entry (using column VTR 1) identifies the physical ! VTR which will play the segment during the next play~ The ! material will therefore be able to loop indefinitely, at 128, until interrupted by an externally generated command.
25 I Additions, subtractions, deletions, and other modifications of the disclosed preferred embodiment of the invention will be apparent to those practiced in the art and are within the scope of the following claims.
¦ What is claimed is: