CA2141607A1 - System and method of selecting among multiple data streams - Google Patents

System and method of selecting among multiple data streams

Info

Publication number
CA2141607A1
CA2141607A1 CA002141607A CA2141607A CA2141607A1 CA 2141607 A1 CA2141607 A1 CA 2141607A1 CA 002141607 A CA002141607 A CA 002141607A CA 2141607 A CA2141607 A CA 2141607A CA 2141607 A1 CA2141607 A1 CA 2141607A1
Authority
CA
Canada
Prior art keywords
data stream
elements
stream
steps
subset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002141607A
Other languages
French (fr)
Inventor
Charlie Kellner
Eugene Ii Kusmiak
Kenneth Soohoo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Pictures Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2141607A1 publication Critical patent/CA2141607A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/005Reproducing at a different information rate from the information rate of recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N5/926Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • H04N5/937Regeneration of the television signal or of selected parts thereof by assembling picture element blocks in an intermediate store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10916Seeking data on the record carrier for preparing an access to a specific address
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2545CDs

Abstract

A system and method of selecting and switching among multiple sequential data streams operate without interuption in output. Elements of the data streams are stored in a buffer to cover seek times when switching among data streams, or to cover interleave gaps in embodiments employing interleave techniques. Alternative embodiments employ alternative tech-niques for loading the buffer.

Description

w o 94/03851 P~r/uss3/o578o D escription ~Y~ nI ~Nl~ M E~r~lO D O F
S E L E C TIr~G ~nIO N G ~llnLT ~ LE D A T A S TF~E~IS

R~rk~ound of the I~ on 1. Field of the Invention This invention relates to the processin~ and outputting of multiple data streams from computer data storage peripherals and, more particu-10 larly, to a system and method of selecting among multiple data streams inperipherals having greater access times for non-sequential data reads than for sequential data reads.
2. Description of the Related Art In the field of computer data storage peripherals, ~access time" is 15 defined as the time it takes for a peripheral to access the storage me~ m and retrieve an element of data. For many peripherals, including compact disc read-only memory (CD-ROM) drives, the access time of a non-se-quential read is greater than that of a sequential read. The difference in access time may occur for a variety of reasons; in a CD-ROM system it is 20 primarily due to the additional time required for the lens to physically move across the surface of the medium in a non-sequential read. This additional time is called "seek time". During the seek time, no data may be read from the storage medium.
For example, a typical CD-ROM drive can read a contiguous stream of 25 data (in other words, a series of sequential reads), at a rate of approxi-mately 150 kilobytes per second. To perform a non-sequential read, how-ever, the drive's lens must stop and seek the location of the new data, which takes a~lo~umately 0.5 to 1.0 seconds.
In many typical CD-ROM applications, a series of sequential reads is 30 performed, followed by a seek performed in response to end-user inter-action. For ~ mple, the CD-ROM may contain data representing motion video (with associated sound ch~nnels), and at a certain point the user may have an opportunity to select from a number of streams" of video. In response to the user-s selection, the application may have to perform a 2141~
WO 94/038SI PCI-/US93/0578a ~ ` .................................................. .
seek to retrieve the selected stream. Conventionally, no data is trans-ferred during this seek, and the video display pauses until the seek is completed.
For many applic~tio~.c. such as video g~me.s, this interruption in out-5 put is undesirable, as it interferes with the effective use or en~oyment ofthe applic~tion.
S~mm~y of the L~ on In accordance with the present invention, there is provided a sys-tem and method of selecting and switchin~ ~mo~g mllltirle data stre~ms 10 inst~nt~neously and without interruption in the output to the end user.
This is accompli~hed either by re~-ling data stream elements from a buffer to cover a seek, or by using interleave te-~hniques to avoid seek operations altogether.
For purposes of illustration, the invention is herein described in 15 terms of video data streams stored on CD-ROMs. Each data stream has a number of contiguous element.~, representing individual frames of video data. How~vel, the invention is not li-miterl to any particular type of data or any particular storage medium. It is most useful when practiced on metli~ having longer access times for non-sequential reads than for se-20 quential reads.
One technique for elimin~ting interruptions according to the pre-sent invention involves loading a buffer with a number of elements from one or more data streams prior to performing a seek. When a seek is performed, the application reads elements from the buffer to cover the 25 seek. Once the seek is complete, normal sequential operation resumes.
Thus, the user does not see any interruption in the video output.
Several variations on this principle are possible. In a preferred em-bodiment, the buffer is loaded while sequential reads are t~kin~ place.
The application reads the data stream faster than it displays it, and uses 30 the extra time to accumulate data in the buffer. In other embodiments, the buffer is pre-loaded before sequential reads begin.
Another technique uses interleaving to avoid seek operations alto-gether. In this technique, the data storage medium is designed so that images from the alternate data streams are interleaved. The system reads 35 the interleaved elements sequentially, buffering them if required, and out-puts only those elements belonging to the selected data stream. These al-ternatives and others are described more fully below.

2 1 ~
wo 94/03851 Pcr/uss3/os780 In all of these embodiments, the user may select data streams at any time. In some embo~liments, the display immediately switches to the se-lected data stream; in others, the data stream being displayed at the time - the selection is made continues until the buffer corlt~inc enough data to cover a seek or an interleave gap. In all embofliments, the output seen by the user cor~tinues lminterrupted.
Brlef Description of the D,~wln~
Figure 1 is a block diagram of apparatus for practicing the present invention.
Figure 2 is a flowchart showing a method of selecting among multi-ple data streams according to the present invention, in which excess data is accumulated over time to cover seeks.
Figures 3a and 3b are timing diagrams illustrating an example of the method shown in Figure 2.
Figure 4 is a flowchart showing a method of selecting among multi-ple data streams according to the present invention, using redlln-l~nt low-resolution versions of the data to cover seeks.
Figures 5a and 5b are ffmin~ diagrams illustrating an ~mrle of the method shown in Figure 4.
Figure 6 is a flowchart showing a method of selecting among multi-ple data streams according to the present invention, in which the buffer is loaded with data from the first data stream in advance of any data output.
to cover seeks.
Figures 7a and 7b are timing diagrams illustrating an example of the method shown in Figure 6.
Figure 8 is a flowchart showing a variation of the method shown in Figure 6, in which the buffer is loaded with data from two data streams, to cover seeks.
Figures 9a and 9b are timing diagrams illustrating an ~ m~le of the method shown in Figure 8.
Figure 10 is a flowchart showing a variation of the method shown in Figure 6, in which the buffer is loaded with data from the second data stream to cover seeks.
Figures 11a and 11b are timing diagrams illustrating an example of the method shown in Figure 10.
Figure 12 is a flowchart showing a method of selecting among multi-ple data streams according to the present invention, in which data is 2~41607 stored in an interieaved fashion, and elements from all data streams are read in each time frame.
Figures 13a and 13b are timing di~grams illustrating an ~ mrle of the metho-l shown in Figure 11. ~
Figure 14 is a flowchart showing a method of selecting ~mon~ multi-ple data streams according to the present invention, in which e~cess data is ~ccllmlll~te~ over time to cover interleave gaps.
Figures 15a and 15b are ffmin~ diagrams illustrating an ~x~mrle of the method shown in Figure 14.
Description of the P~fc~cl Embo~m~nt Referring now to Figure 1, there is shown a functional block diagram of apparatus for practicing the present invention. In the preferred embo-liment, one or more central processing units (CPU) 101 perform the steps of the method, although any type of processor or multiple processors may be used. CPU 101 controls the operation of a data storage device cont~1ning the various data streams which are to be read and processed. An ~mrle of such a data storage device is CD-ROM drive 102 shown in Figure 1. In response to control si,~n~ls from CPU 101, data from CD-ROM drive 102 is sent to random-access memory (RAM) 103 via direct memory access (DMA) transfers. CPU 101 contlols the operation of a buffer which is contained in RAM 103 and which temporarily stores data stream elements in accordance with the method described below. Video display 104 receives data from RAM 103 via DMA transfers and outputs the data to the user. In the preferred embodiment the data corlt~inc~ both video and audio components, and the video display includes audio output c~p~h~lity.
Alternative structures may be used to practice the current invention.
For ~mple, if the data represents audio only, an audio output device may be substituted for video display 104. Similarly, alternative data storage devices may be employed in place of CD-ROM drive 102. Other variations are also possible.
For purposes of illustration, Figures 2 through 15b show implemen-tations involving two data streams, designated A and B. Elements from stream A are output first, and then the user is given an opportunity to ei-ther remain on stream A or select stream B. All of these techniques may be extended to multiple data streams. Figures 2 through llb show im-plementations which use seek operations, and Figures 12 through 15b 21~16~7 W O 94/03851 P(~r/US93/05780 show implementations which use interleave techniques to avoid seek op-erations.
Referring now to Figure 2, there is shown a flowchart of a preferred embo(liment of the present invention. In this embofliment, the data 5 stream is read from the storage device faster than it is output. A buffer is used to temporarily store elements of the data stream beLwe~ll the time they are rea~ and the time they are output. Since the read rate is faster than the output rate, ~ccess data accumulates in the buffer over time.
Once the buffer has accum~ te~l enough data to cover a seek, selection 10 ~mon~ data streams becomes possible. The point in time at which selec-tion is possible is called the selection ~unction. If the user specifies his or her selection before the selection junction is reached, the system contin-ues outputting elements from the first data stream until the.~unction is reached. Once the junction is reached, if a seek is required to access the 15 selected data stream, elements are drawn from the buffer while the seek t~kes place. Thus, the output to the user is lminterrupted.
In step 201, the process begins. Two paths ~xten~l from step 201, one le~lin~ to steps 206 through 209 and one le~ n~ to step 210. In this and other flowcharts, this desi~n~tion indicates that the two paths occur 20 simlllt~neously. In other words, steps 206 t~rough 209 are pelrol,lled at the same time as step 210 is performed. The two paths may be per-formed by a single processor or by two different processors.
In steps 206 through 209, the system reads successive elements from the storage device and places each element in the buffer as it is read.
25 Some element.~ belong to stream A and some elements belong to stlealll B.
Typically, each element has a tag to indicate which stream it belong~ to, and the data is arranged on the storage medium so that a set of stream B
elements is located immediately after a set of stream A elements. Alter-natively, other techniques may be used to identify the stream to which 30 each element belongs. If, while the system is reading elements, the buffer becomes full, this is detected in step 208 and the reading process pauses in step 209, allowing the output to catch up until the buffer is no longer full. After each element is read, the system checks in step 207 to see if the selection junction has been reached. If so, the system immediately 35 proceeds to step 211. If the selection junction has not been reached, the system checks to see if the buffer is full in step 208, pauses in step 209 if necessary, and loops back to step 206.
Simultaneously with steps 206 through 209. step 210 is performed.

wo 94/03851 Pcr/uss3/05780--in which the output device starts to output stream A elements from the buffer. This is done at a rate which is slower than the read rate, so that the system is able to accumulate excess data in the buffer before the se-lection ~llncffon is reached at step 207. Thus, by the time the system re~rhes step 211, the buffer cont~ins enough elemen~c from stream B to cover a seek.
In step 211, the system accepts input from the user specifying the desired stream. The user may supply this input at any time, but in this emborlime~t, the system does not respond to the selection until the selec-tion.~unction is reached. In step 212, the system checks the input to see which stream was selected.
If stream A is selected, the process continues with steps 213 through 217 rllnnin~ .ciml~lt~neously with step 218. In step 213, stream B
elements are discarded from the buffer, since they are not needed. This may be done before, after, or during steps 214 through 217. In steps 214 through 217, the system reads successive stream A elements and places them in the buffer, until it has hniched re~(lin~ stream A. As before, if the buffer becomes full, the re~-lin~ process pauses in step 217 to let the out-put catch up. While steps 213 through 217 are being performed, the sys-tem outputs successive stream A element.s from the buffer in step 218, until stream A is finished. Once stream A is fini.ched~ the process ends in step 226.
If, in step 212, stream B is selected, the process continues with steps 219 through 224 rl1nning simultaneously with step 225. In step 219, stream A elements are discarded from the buffer, since they are not needed. This may be done before, after, or during steps 220 through 224.
In step 220, the system performs a seek to access stream B. Once the seek is complete, in steps 221 through 224, the system reads successive stream B elements and places them in the buffer, until it has fini.ched re~rling stream B. As before, if the buffer becomes full, the re~tling pro-cess pauses in step 224 to let the output catch up. While steps 219 through 224 are being performed. the system outputs successive stream B
elements from the buffer in step 225, until stream B is fini~hed. Once stream B is fini.~hed, the process ends in step 226.
Referring also to Figures 3a and 3b, there are shown timing dia-grams illustrating an example of the method of Figure 2. Figure 3a shows the user electing to remain on stream A, and Figure 3b shows the user selecting stream B. Each timing diagram contains five horizontal rows of 21~16Q7 WO 94/03851 Pcr/uss3/os78o information. In the top row, a time stream of eight frames, time 1 ~o time 8, is shown. In the next row, the diagram shows elements being read from the storage device. Each element of the data streams is labeled with - a letter and a nl1mher, the letter speci~ying which data stream the element belon~e to, and the number specifying the proper time for the element to be output. The third row of each diagram shows elements being output.
The fourth row shows the contents of the buffer at each point in time.
The last row shows element.e being discarded from the buffer.
In time frames 1 to 3, the system reads el~mente- A1 through A5, placing each element in the buffer. This corresponds to steps 206 through 209. At the same time, elements A1 through A3 are output (corresponding to step 210). Then the system reads elements B5 and B6 in frames 3 to 4, since these are positioned on the storage medium im-mediately after elements A1 to A5 (continuing steps 206 through 209).
Meallwhile, frames A3 through A4 are being output (step 210). At the end of frame 4, the selection.~unction has been reached, and the system is prepared to accept selection input (step 211). At this point, the buffer cont~ins elements A5 and B5, and B6 has been read and is ready to be pl~cetl in the buffer. Thus, there is sllmri~nt data in the buffer to cover a seek, should the user select stream B.
If the user elects to remain on stream A, the example continues as in Figure 3a. Elements B5 and B6 are discarded from the buffer (step 213) at the be~inning of frames 5 and 6 respectively (although this can be done at any time). In frames 5 through 6, the system reads elements A6 through A8 (steps 214 to 217). At the same time, in frames 5 through 8, it outputs elements A5 through A8 from the buffer (step 218). Stream A
finiehes with element A8 (step 226) .
If the user selects stream B, the example continues as in Figure 3b.
Element A5 is discarded from the buffer (step 219) at the be~inning of frame 5 (although this can be done at any time). In frames 5 and 6, the system performs a seek to access stream B (step 220). Since the buffer cont~inc elemen~.~ B5 and B6, the system is able to cover the seek by out-putting these elements (step 225). Once the seek is completed, in frame 6, the system begins to read stream B elements. The system reads ele-ments B7 and B8 in frames 6 and 7 and places them in the buffer (steps 221 to 224). At the same time, it outputs elements B6 through B8 from the buffer (continuing step 225). Stream B finishes with element B8 (step 226).

2~4~
. :., \.
WO 94/038~i1 PCr/US93/05780 The techniqùe of Figures 2, 3a, and 3b may be ~tçn-led to multiple data streams, multiple selection ~unctions, or both. The user may make his or her selection at any time, but the system will continue on its cur-rent data stream until the next selection.~unction is reached.
Referring now to Figure 4, ~here is shown a flowchart of another preferred embodiment of the present invenffon. In this method, the sys-tem responds to the user's selection immediately after the selection is made. As in the method of Figure 2, the data stream is read from the storage device faster than it is output, so that e~rcess data accllm~ te~s in the buffer. In this technique, how~)el, two versions of each data stream are stored on the storage device: a high-resolution version and a low-reso-lution version. ~ach high-res element of one stream is paired with a low-res element of the other stream. If the user selects a stream requiring a seek before sllfficfent data has accumulated in the buffer to cover the seek, the system outputs the low-res version of the selected stream, exr~nrled as desired using conventional expansion te-hniques, until the buffer is full enough for a seek. Once the buffer is ready, the system performs the seek and uses the buffer's contents to cover the seek. This technique allows the system to respond to the user's selection before the buffer is ready for a seek, although the quality of the output during the interim period from the time the selection is made until the completion of the seek may be inferior because it is an expanded low-res version of the data stream. This technique also facilitates outputting low-res versions of the non-selected data stream, e.g., in a smaller, secondary video window, while the high-res version of the selected data stream is being output in the primary video window.
In step 401, the process begins. In steps 402 through 407, the sys-tem reads successive high-res stream A elements paired with low-res stream B elements, and places each pair in the buffer as it is read. After each pair is read, the system checks in step 403 to see if the user has se-lected stream B. If so, the system immediately proceeds to steps 412 through 414. If the user has not selected stream B, the system checks in step 404 to see if strearn A is finished; if so the system ends the process in step 40S. If stream A is not finished, the system checks to see if the buffer is full in step 406, pauses in step 407 if necessary, and loops back to step 402.
Simultaneously with steps 402 through 407, steps 408 through 411 are performed, in which the output device outputs successive high-res 2 1 ~ 7 ~ WO 94/03851 PCr/US93/05780 _ g _ versions of stream A elements and, optionally in the secondary display, low-res versions of stream B elements. This is done at a rate which is slower than the read rate, so that the system is able to accumulate excess - data in the buffer over time. After each element is output, the system5 checks in step 409 to see if the user has selected stream B; if so, the sys-tem immediately proceeds to steps 412 through 414. If the user has not selectsd stream B, the system checks in step 410 to see if stream A is finiehed; if so, the system ends the process in step 411. If stream A is not finishefl, the system loops back to step 408 to output the next ~lemen~
1~ If at any time the user selects stream B, the system starts to pelro steps 412 and 413 simlll~neously with step 414. In step 412, the ~yst~
reads successive high-res stream A elements and low-res stream B ele-ments and places them in the buffer. It continues to do this until the buffer is full enough to cover a seek. When the buffer is full enough, the 15 system proceeds to step 413, where it pelrolllls a seek to access high-res stream B elements. While steps 412 and 413 are being performed, the output dev,ce in step 414 outputs successive low-res stream B elem~nt.c which have been expanded from the buffer. Optionally, the device also displays the corresponding high-res stream A elements, reduced if de-20 sired by conventional reduction techniques, in the secondary display.Thus, the system immediately responds to the users selection of stream B.
After the seek is complete, the system proceeds with steps 415 to 418, performed simultaneously with step 419. In steps 415 through 418, 25 the system reads successive high-res stream B elements and low-res stream A elements, placing each pair in the buffer, until it has fini.~hed re~-lin~ stream B. As before, if the buffer becomes full, the re~-ling pro-cess pauses in step 418 to let the output catch up. While steps 415 through 418 are being performed, the system outputs successive high-res 30 stream B elements and, optionally, low-res stream A elements in the sec-ondary display, from the buffer in step 419, until stream B is fini.shed.
Once stream B is fini.ched, the process ends in step 420.
Referring also to Figures 5a and 5b, there are shown timing dia-grams illustrating an example of the method of Figure 4. Figure 5a shows 35 the user electing to remain on stream A, and Figure 5b shows the user selecting stream B. The timing diagrams show information in a simil~r manner as Figures 3a and 3b. In Figures 5a and 5b, howeve~, A and B in-dicate high-res ~ersions of the data streams, and a and b indicate low-res 2141607 . . ~"
WO 94/03851 PCI`/US93/0578G~

versions. B' indicates an expanded low-res version, and a' in~lic~tes a re-duced high-res version. A high-res version from one data stream is always paired with a corresponding low-res version from the other data stream.
I~e secon-l~ry video window may or may not be displayed.
In Figure 5a, the user elects to rem~in on stream A. In time frames 1 to 3, the system reads element pairs Abl through Ab5, r)l~cin~ each pair in the buffer. This corresponds to steps 402 through 406. In frame 3, the buffer becomes full, so the re~tlin~ process pauses to let the output catch up (step 407). At the end of frame 4, the output has c~ ht up, so the sys-tem continues re~ling element pairs Ab6 through Ab7 in frames 5 and 6.
In frame 6, the data stream ends, so the system stops re~lin~ elemen~
(step 405). While all this is tzlkin~ place, in frames 1 through 7, the out-put device reads successive element pairs from the buffer, outputting high-res stream A elements and, optionally, low-res stream B elements (steps 408 through 410). When the output device reaches element pair Ab7, it has fini~he~l the data stream, and stops outputting (step 411).
In Figure 5b, as before, by the end of time frame 1 the system has read element pairs Abl through Ab2 (steps 402 through 406). At the same time, in frame 1, the output device outputs element pair Abl (step 408). Also during frame 1, the user selects stream B. At this point in time, the buffer is not full enough for a seek, so the system continues to read element pairs from the same data stream, namely Ab3 through Ab5, during frames 2 to 3 (step 412). Once the system has read element pair Ab5, in frame 3, the buffer is full enough for a seek, so the system per-forms a seek in frames 3 to 4 (step 413). Meanwhile, during frames 2 through 5, the output device outputs expanded stream B elements paired with reduced stream A elements, indicated as elements a'B'2 through a'B'5 (step 414). Thus, the user starts to see stream B elements immedi-ately after he or she has selected stream B.
Once the seek is completed, in frames 5 and 6, the system reads el-ement pairs aB6 through aB7 (steps 415 through 417). Concurrently, in frames 6 through 7, the output device outputs from the buffer high-res stream B elements and, optionally, low-res stream A elements (step 419).
The data stream finishes with element pair aB7, and the process ends (step 420).
The technique of ~igures 4, 5a, and 5b may be P~cten~led to multiple data streams, multiple selection junctions, or both. The user may make his or her selection at any time, and this selection will be reflected im-2141~7 wO 94/038sl PCr/uss3/os780 me~ tely, using expanded or reduced output if necessary. The user may also switch back and forth between data streams at any time, including during time frames when an expanded element is being output.
- Referring now to Figure 6, there is shown a flowchart of another preferred embodiment of the present invention. In this method, the read rate need not necessarily be faster than the output rate. Rather than ac-cum~ ting the buffer over time, the buffer is pre-loaded before output begins. This may be done at the be~innin~ of the session, or during a nat-ural break in the video display. This technique allows the output device to use the full consecutive-read bandwidth of the storage device.
In step 601, the process begins. In step 602, the system reads a number of elements from stream A and places them in the buffer. Then, steps 603 and 604 are performed simultaneously. In step 603, another stream A element is read and placed in the buffer. Meanwhile, in step 604, the output device outputs a stream A element that was previously placed in the buffer. These two oper~tlo~s may be done at the same rate, so that the system is always "~he~tl" of the display device by a constant number of fr2mes (equal to the number of frames that were pre-loaded in step 602).
After steps 603 and 604 are performed, the system checks in step 605 to see if the user has selected stream B. If the user has not selected stream B, and if there are any more stream A elements (step 606), the process loops back to steps 603 and 604. If there are no more stream A
elements, the process ends (step 611).
If the user selects stream B, the system immediately performs a seek in step 607. The system covers the seek by outputting successive stream A elements from the buffer in step 608 while the seek is in progress. Once the seek is completed, the system proceeds to step 609, where it discards stream A elements from the buffer, as they are no longer needed. Step 609 may be performed before, during, or after step 610. In step 610, the system reads and outputs successive stream B elements until stream B is finished; during this step, the system no longer needs to store elements in the buffer. If desired, however, the system may con-tinue to use the buffer in anticipation of future selection among data streams. Once stream B is finished, the process ends in step 611.
Referring also to Figures 7a and 7b. there are shown timing dia-grams illustrating an example of the method of Figure 6. For illustrative purposes, the read rate is shown to be the same as the output rate. Figure 214~7 / .

7a shows the user electing to remain on stream A, and Figure 7b shows the user selecting stream B. The ffming diagrams show information in a .cimil~r m~nner as Figures 3a and 3b.
In Figure 7a, the user elects to remain on stre~m A. Prior to time 5 frame 1, the system reads elements A1 through A3 and loads them into the buffer (step 602). Then, in each time frame from 1 through 5, the system reads a stream A element and places it in the buffer (step 603), while the output device outputs a previously stored element (step 604). At the end of frame 5, the system has read the last element in the stream, so 10 it stops re~tling elements. The output device continues outputting ele-ments A6 through A8 in frames 6 through 8. When stream A is finished, the process ends (step 611).
In Figure 7b, the user selects stream B. As before, prior to time frame 1, the system reads elements Al through A3 and loads them into 15 the buffer (step 602~. Then, in each time frame from 1 through 4, the system reads a stream A element and places it in the buffer (step 603), while the output device outputs a previously stored element (step 604). At the end of frame 4, the user selects stream B (step 605). The system im-me~ tely, in frame 5, performs a seek to ~ccess stream B (step 607), 20 while the output device outputs successive stream A elements from the buffer in frames 5 and 6 (step 608). In frame 6, the seek is completed, and the system reads and outputs elements B7 and B8 (step 610), discard-ing element A7 since it is not needed (step 609). Stream B ends at ele-ment B8, and the process stops after that element has been displayed in 25 frame 8 (step 611).
As seen in the above description, the user's selection is not immedi-ately reflected in the output, since the system continues to display stream A elements until after the seek is complete.
The technique of Figures 6, 7a, and 7b may be ~xten~led to multiple 30 data streams or multiple selection junctions, or both. One way to imple-ment multiple ~unctions would be to pre-load enough elements in step 602 to cover several seeks.
Referring now to Figure 8, there is shown a flowchart of another preferred embodiment of the present invention. As in the method of Fig-35 ure 6, the buffer is pre-loaded before output begins, and the read rate need not necessarily be faster than the output rate. Thus, again, the out-put device may use the full consecutive-read bandwidth of the storage de-vice. This method differs from that of Figure 6 in that elements from 21~1607 ` ~
wo 94/03851 Pcr/uss3/05780 stream B are placed in the buffer in advance of the selection.~unction.
This allows the user's selection to be reflected ins~nt~neously after it is made, but only if the selection is made at a predetermine-l selection junc-tion.
In step 801 the process begins. In step 802, the system reads a number of el~ments from stream A and places them in the buffer. Then, steps 806 and 807 are performed simultaneously. In step 806, the ~y~
reads the next element and places it in the buffer. This element may be a stream A element or a stream B element. Typically, each element has a tag to indicate which stream it belongs to, and the data is arranged on the storage medium so that a set of stream B elementc is located immediately after a set of stream A element~. Alternatively, other techniques may be used to identify the stream to which each element belongs. Meanwhile, in step 807, the output device outputs a stream A element that was previ-ously placed in the buffer. These two operations may be done at the same rate, so that the system is always "ahead" of the display device by a con-stant number of frames (equal to the number of frames that were pre-loaded in step 802). Steps 806 arld 807 repeat until the system reaches the selection.~unction.
In step 809, the system accepts input from the user specifying the desired stream. The user may supply this input at any time, but in this embodiment, the system does not respond to the selection until the selec-tion.~unction is reached. In step 810, the system checks the input to see which stream was selected.
If stream A is selected, the process continues with steps 811 through 812. In step 811 the system discards the stream B elements that were placed in the buffer, as they are not needed. This may be done be-fore, after, or during step 812. In step 812, the system reads and outputs successive stream A elements until stream A is fini.~hed. The system no longer needs to store elements in the buffer, but it may do so if desired in anticipation of future selection among data streams. Once stream A is fin-ished, the process ends in step 817.
If, in step 810, stream B is selected, the system performs steps 813 and 814, simultaneously with step 815. In step 813 it discards the stream A elements that were placed in the buffer, as they are not needed. This may be done before, after, or during step 814. In step 814, the system performs a seek to access stream B. Meanwhile, in step 815, the system outputs the stream B elements from the buffer to cover the seek. Once 21 ~6~
. ~ . . ` . .
wo 94/03851 ` PCr/uss3/0~78G

the seek is completed, the system proceeds to step 816, where it reads and outputs successive stream B elements until stream B is fini.~hed.
Again, the system no longer needs the buffer, but it may use it if desired in antirir~tion of future selection. Once stream B is fini~she~l~ the process ends in step 817.
Referring also to Figures 9a and 9b, there are shown ffmin~ dia-grams illustrating an tox~mple of the method of Figure 8. For illustrative purposes, the read rate is shown to be the same as the output rate. Figure 9a shows the user electing to remain on stream A, and Figure 9b shows the user selecting stream B. The timin~ diagrams show infollllation in a sirnilar m~nn~r as Figures 3a and 3b.
In both Figures 9a and 9b, prior to time frame 1, the system reads element~ A1 through A3 and loads them into the buffer (step 802). Then, in each of time frames 1 and 2, the system reads a stream A element and places it in the buffer (step 806), while the output device outputs a previ-ously stored element (step 807). In frames 3 and 4, the system reads ele-ments B5 and B6, respectively (step 806), since these are the next two el-ements stored on the storage device, while the output device outputs frames A3 and A4 from the buffer (step 807).
At the end of frame 4, the system re~ches the selection.~unction, and is prepared to accept selection input (step 809). At this point, the buffer cont~in~ elements A5 and B5, and B6 has been read and is ready to be placed in the buffer. Thus, there is sufficient data in the buffer to cover a seek, should the user select stream B.
If the user elects to remain on stream A, the example contirlues as in Figure 9a. The output device outputs element A5 in frame 5 (step 812).
Elements B5 and B6 are discarded from the buffer (step 811) at the be-~innin~ of frame 6 (although this can be done at any time). The system reads and outputs elements A6 through A8 in successive frames (step 812), until stream A is finished.
If the user selects stream B at the selection junction, the example continues as in Figure 9b. The system discards element A5 from the buffer (step 813) in frame 5 (although this can be done at any time). The system immediately performs a seek, in frame 5, to access stream B (step 814). Meanwhile. the output device outputs elements B5 and B6 from the buffer in frames 5 and 6 to cover the seek (step 815). Once the seek is complete, the system reads and outputs elements B7 and B8 in successive frames (step 816~. until stream B is finished.

21Ai~07 W O 94/03851 PC~r/US93/05780 The technique of Figures 8, 9a, and 9b may be P~ten-led to muitiplç
data streams, multiple selection.~unctions, or both. The user may make his or her selection at any time, but the system will continue on its cur-- rent data stream until the next selection junction is reached. Alterna-5 tively, the methods of ~igures 6 and 8 may be comhine-l so that the system loads stream B elt?ment.c in the buffer in anticipation of a selection.~unc-tion as in Figure 8, but if the user selects stream B before the required stream B ~lement have been loaded, the ~y:i~m llses the Figure 6 method.
Referring now to Figure 10, there is shown a flowchart of another 10 preferred embodiment of the present invention. As in the previous two methods, the buffer is pre-loaded before output begins, and the read rate need not necessarily be faster than the output rate. In this method, how-ever, the system pre-loads elements from stream B needed to cover the seek. Once the buffer is pre-loaded, it is not accessed until the selection 15 junction is reached; elements of stream A are read and output without ac-cessin~ the buffer. If the user selects stream B, the system outputs the pre-loaded elements to cover the seek.
In step 1001 the process begins. In step 1002, the system reads enough stream B ~lem~nts to cover a seek (or more than one seek, if de-20 s~red), and places them in the buffer. Then, in steps 1003 and 1004, thesystem reads and outputs successive stream A elements, without using the buffer, until the selection junction is reached.
Once the selection ~unction is reached, the system, in step 1005, accepts input from the user specifying the desired stream. The user may 25 supply this input at any time, but in this embodiment, the system does not respond to the selection until the selection junction is reached. In step 1006, the ~y~em checks the input to see which stream was selected.
If the user elects to remain on stream A, the process continues with steps 1007 through 1008. In step 1007, the system discards the stream 30 B elements that were placed in the buffer, as they are not needed. This may be done before, after, or during step 1008. In step 1008, the system reads and outputs successive stream A elements until stream A is finished.
Again, the buffer is not needed, but it may be used if desired in anticipa-tion of future selection. Once stream A is finished, the process ends in 35 step 1012.
If, in step 1006, stream B is selected. the system performs step 1009 simultaneously with step 1010. In step 1009, the system performs a seek to access stream B. Meanwhile, in step 1010, the output device 2 1 ~ 7 ~
W O 94/03851 PC~r/US93/05780 -outputs the pre-loaded stream B elements from the buffer to cover the seek. Once the seek is completed, the system proceeds to step 1011, where it reads and outputs successive stream B element~ until stream B is fini.ehed. Again, the system no longer needs the buffer, but it may use it if desired in anticipation of future selecffor-. Once stream B is fini.chetl, the process ends in step 1012.
Referring also to Figures 11a and 11b, there are shown timin~ dia-gr~ms illustrating an ~ mrle of the method of Figure 10. For illustrative purposes, the read rate is shown to be the same as the output rate. Figure 11a shows the user electing to remain on stream A, and Figure 11b shows the user selecting stream B. The timin~ diagrams show information in a simil:lr m~nner as Figures 3a and 3b.
In both Figures 1 la and 1 lb, prior to time frame 1, the :~ystem reads elements B5 through B6 and loads them into the buffer (step 1002).
Then, the system reads and outputs elements Al through A4 (step 1003), without accessin~ the buffer. At the end of time frame 4, when the selec-tion ~unction is reached, the system has displayed el~ment A4 and has .~ust read element A5 and is ready to display it. The buffer still cont~n~ ele-m~nt~ B5 and B6, sumcient to cover a seek should the user select stream ~
If ~he user elects to rem~in on stream A, the example co~tin~les as in Figure 1 la. The output device outputs element A5 in frame 5, and con-tinues to read and output successive elements A6 through A8 (step 1008), until stream A is finished. At some point, the system discards elements B5 and B6 from the buffer, as they are not needed (step 1007).
If the user selects stream B at the selection ~unction, the example continues as in Figure 11b. The system immediately performs a seek in frame 5 (step 1009), outputting elements B5 and B6 to cover the seek (step 1010). Once the seek is completed, the system reads and outputs frames B7 and B8 in succession (step 1011), until stream B is fini.~hed.
The technique of Figures 10, 11a, and 11b may be ~rten~led to mul-tiple data streams, multiple selection junctions, or both. The user may make his or her selection at any time, but the system will continue on its current data stream until the next selection ~unction is reached. Alterna-tively, the methods of Figures 6 and 10 may be combined so that the sys-tem pre-loads stream B elements for a specific selection )unction as in Figure 10, but if the user selects stream B before the )unction is reached, the system uses the F`igure 6 method.

Wo 94/0385l 2 i 4 1 5 0 7 Pcr/US93/05780 Referring now to Figure 12, there is shown a flowchart of another preferred embo-liment of the present invention. This method does not use seek operations. Instead, data is arranged on the storage device in an - interle:~ved fz~ehion~ so that elements from all data streams for a given time 5 frame are positioned consecutively. In each time frame, the ~yslelll reads all of the el~m~nt~ from all of the data streams for that frame, and outputs only the element from the selected data stream. Thus, in the case of two interleaved data streams, elements from each data stream are alternately placed on the storage device, and the system reads an element from 10 stream A and one from stream B in each frame, outputting only the se-lected one. This te-~hnitlue allows the user to select either stream at any time, and the system responds immediately. Howt:v~l, this technique limits the bandwidth available for output, as ~xpl~ined below.
In step 1201, the process begins. In step 1202, the system reads 15 the first element of all of the data streams. Then the system proceeds to step 1203, simlllt~neously with steps 1204 and 1205. In step 1203, the system reads the next element of all of the data streams. While it does this. in step 1204 it determines which data stream is currently selected and in step 1205 the output device outputs the element for the selected 20 data stream which was most recently read. As long as there is more data to be read from the storage device, this loop continues. Once the :jy~
is finlche~l with the data, the process ends in step 1207.
Referring also to Figures 13a and 13b, there are shown timing dia-grams illustrating an example of the method of Figure 12. Figure 13a 25 shows the user electing to remain on stream A, and Figure 13b shows the user selecting stream B.
In Figure 13a, the user elects to remain on stream A. Prior to frame 1, the system reads elements Al and B1 (step 1202). Then, in each frame from 1 to 5, the system outputs the A element for that frame (step 1205) 30 and simultaneously reads the A and B elements for the next frame (step 1 203) .
In Figure 13b, the user selects stream B. Prior to frame 1, the sys-tem reads elem~nts Al and Bl (step 1202). In frames 1 and 2, as before, the system outputs the respective A elements (step 1205) and reads both 35 A and B elements (step 1203). During frame 2, the user selects stream B.
In frame 3. the system responds to this selection by outputting element B3 instead of A3 (step 1205). It still reads both A4 and B4. For the re-m~ining frames. system outputs successive B elements while reading A

214~G07 W O 94/03851 . PC~r/US93/05780 -` i ~ 18 -and B to,l~ments for the next frame.
In the technique of Figures 12, 13a, and 13b, a m~xtml~m of N data streams are av~ hle for selection at any given time, where N is the inter-leave factor of the data storage device. Furthermore, the output devlce is 5 only able to use 1/N of the consecutive-read bandwidth of the storage de-vice (e.g., for the scheme shown in Figures 13a and 13b, only half of the consecutive-read bandwidth is av~ hle). The user may select ~mon~ the data streams at any time, and multiple selections are possible. The sy:~Le responds to the user's s~lectiorl immediately after it is made.
Refening now to Figure 14, there is shown a method which permits more than 1/N of the consecutive-read bandwidth of the storage device to be used. In this method, as in the method of Figure 2, the data stream is read from the storage device faster than it is output, and a buffer is used so that excess data can accumulate over time. In this method, h~wevel, the 15 excess is used to cover interleave gaps (i.e., the periods of time when the system is re~lin~ non-selected data stream element~) rather than seek operations. This permits interleaving to be used without limitin~ the out-put bandwidth to 1/N of the consecutive-read bandwidth. Huw~ve~, in this method~ the system does not respond to the user's selection until the 20 buffer cont~ins enough el-oment.c to cover interleave gaps.
In step 1401, the process begins. In steps 1406 through 1409, the system reads successive element.s from the storage device and places each element in the buffer as it is read. Some elements belong to stream A and some elements belong to stream B. I~pically, each element has a tag to 25 indicate which stream it belongs to, and the data is arranged on the stor-age medium so that a set of stream B elements is located imme~ t~?ly af-ter a set of stream A elements. Alternatively, other techniques may be used to identify- the stream to which each element belongs. If, while the system is re~lin~ elements, the buffer becomes full, this is detected in 30 step 1407 and the reading process pauses in step 1408, allowing the out-put to catch up until the buffer is no longer full. After each element is read, the system checks in step 1409 to see if the selection.~unction has been reached. If so, the system immediately proceeds to steps 1411 and 1415. If the selection junction has not been reached, the ~ystem loops 35 back to step 1406.
Simultaneously with steps 1406 through 1409, step 1410 is per-formed, in which the output device starts to output stream A elements from the buffer. This is done at a rate which is slower than the read rate, ~ W O 94/03851 2 1 4 1 ~ ~ t PC~r/US93/05780 so that the system is able to ~ccllmulate ~xcess data in the buffer before the selection.~unction is reached at step 1409. Thus, by the time the sys-tem re~ches steps 1411 and 1415, the buffer contains enough elements from Sllc ~1~ B to cover gaps caused by interleave.
During execution of steps 1411 though 1418, the user may select ei-ther data stream at any time, and may even switch repeatedly between the streams. In steps 1411 through 1414, the system reads successive inter-leaved el~m~nts from the data storage device. The elements alternate be-tween stream A and stre~m B. If the buffer is full, tl~s is detected in step 1413 and the re~ling process pauses in step 1414 to let the output catch up.
Simultaneously with steps 1411 through 1414, the system performs steps 1415 through 1418. In step 1415, the system determines which data stream has been selected. In step 1416, the output device outputs the next ~lement from that data stream from the buffer. This is done at a rate which is slower than the read rate. The non-selected element for the current frame is discarded in step 1417. This loop continues until the data sl~ealll is finishetl Then the process ends in step 1419.
Referring also to Figures 15a and 15b, there are shown timin,~ dia-grams illustrating an example of the method of Figure 14. Figure 15a shows the user electing to remain on stream A, and Figure 15b shows the user selecting stream B, then returning to stream A. The timin~ diagrams show information in a simil~r manner as Figures 3a and 3b.
In time frames 1 to 3, the system reads elements A1 through A5, pl~cin~ each element in the buffer. This corresponds to steps 1406 through 1409. At the same time, elements Al through A3 are output (corresponfling to step 1410). Then the system reads elements B5 and B6 in frames 3 to 4, since these are positioned on the storage medium immediately after elements Al to A5 (continuing steps 1406 through 1409). Meanwhile, frames A3 through A4 are being output (step 1410).
At the end of frame 4, the selection ~unction has been reached. At this point, the buffer contains elements A5 and B5, and B6 has been read and is ready to be placed in the buffer. Thus, there is sufficient data in the buffer to cover gaps caused by interleaving streams A and B.
If the user elects to rem~in on stream A, the example continues as in Figure 15a. During frames 5 and 6, elements A6, B7, and A7, which are stored on the storage device in an interleaved fashion. are read succes-sively (steps 1411 through 1414). Meanwhile, elements A5 and A6 are W O 94/03851 2 1 4 1 6 ~ 7 PC~r/US93/0578 ~

output (step 1416j, and B5 and B6 are discarded since B is the r~on-se-lected data stream (step 1417). At any time during these two frames, se-lection of stream B is possible, but here the user elects to rem~in on stream A. At the end of frame 6, there is no longer sllmciçnt data in the 5 buffer to cover interleave gaps, so selection is no longer pos.cible. F,lement B7 is discarded, and the process begins again. Frame 7 is analogous to frame 1.
Figure 15b shows the user selectin~ stream B during frame 5. As in Figure 15a, rlçmçnt.~ A6, B7, and A7 are read during frames 5 and 6, ele-10 ment A5 is output in frame 5, and çlçment B5 is discarded. Once the userselects frame B, howt:vel, the output device begins outputting stream B el-ement.c instead of stream A elemçnt.~. Thus, in frame 6, element B6 is output (step 1416) and A6 is discarded (step 1417), and in frame 7, ele-ment B7 is output and A7 is discarded. During frame 7, the buffer no 15 longer cont~in.c enough data to cover interleave gaps, so the system is forced to return to stream A in frame 8, to begin the process again. Again, frame 7 is analogous to frame 1.
The technique of Figures 14, 15a, and 15b may be ~xten~led to mul-tiple data streams, multiple selection ~unctions, or both. The user may 20 make his or her selection at any time, but the system will co~tinue on its current data stream until the next selection ~unction is reached. Selec-tions made during the period in which there is sufficient data in the buffer to cover interleave gaps (frames 5 through 6 in the rx~mrle) will be re-flected immediately, and the user may switch repeatedly zlmor~g data paths 25 during this period.
From the above description, it will be apparent that the invention disclosed herein provides a novel and advantageous method of selecting among multiple data streams. The foregoing discussion discloses and de-scribes merely exemplary methods and embo-liments of the present in-30 vçntion. As will be understood by those f:~mili~r with the art, the inventionmay be embodied in other specific forms without departing from the spirit or essential characteristics thereof. For example, different methods of ac-cum~ n~ data in the buffer may be used in place of those described in the above description and corresponding diagrams. Also, any of the meth-35 ods described above can be r~cte~rled to multiple data streams and multi-ple selection junctions. Accordingly, the disclosure of the present inven-tion is intended to be illustrative, but not limiting, of the scope of the in-vention, which is set forth in the following rl~im.s.

Claims (22)

What is claimed is:
1. A method of selecting and switching among a plurality of data streams, each data stream comprising a series of elements, comprising the steps of:
(a) storing a first subset of the elements;
(b) selecting one of the data streams; and (c) in response to seeking being necessary to access the selected data stream, sequentially outputting the stored first subset of elements while seeking access to the selected data stream.
2. The method of claim 1, wherein the first subset is sufficiently large to cover a period of time at least equal to the time needed to seek access to the selected data stream.
3. The method of claim 1, further comprising the steps of:
(d) after performing step (c), reading successive elements of the selected data stream;
(e) sequentially outputting the successive elements of the selected data stream; and (f) discarding stored elements not belonging to the selected data stream.
4. The method of claim 1, wherein step (a) comprises the steps of:
(a.1) sequentially reading a first subset and a second subset of ele-ments from the data streams at a specified read rate, and storing each element of the first subset and the second subset;
and (a.2) concurrently with step (a.1), sequentially outputting the stored elements of the first subset at a specified output rate, the out-put rate being slower than the read rate, to complete step (a.1) before step (a.2), and to retain the stored second subset after step (a.2) is completed.
5. A method of selecting and switching between a first data stream and at least one alternate data stream, each data stream comprising a se-ries of elements, comprising the steps of:
(a) sequentially reading a first subset of elements of the first data stream, at a specified read rate, and storing each element of the first subset;

(b) sequentially reading a second subset of elements, the second subset containing elements from both the first data stream and the alternate data stream, at the specified read rate, and stor-ing each element of the second subset;
(c) concurrently with steps (a) and (b), sequentially outputting the stored elements of the first subset at a specified output rate, the output rate being slower than the read rate, to complete steps (a) and (b) before step (c), and to retain the second sub-set after step (c) is completed;
(d) selecting one of the data streams; and (e) responsive to the first data stream being selected, sequentially reading successive elements of the first data stream while se-quentially outputting stored elements of the second subset be-longing to the first data stream, otherwise, responsive to the alternate data stream being selected, seeking access to the al-ternate data stream while sequentially outputting stored ele-ments of the second subset belonging to the alternate data stream.
6. A method of selecting and switching between a first data stream and at least one alternate data stream, each data stream comprising a se-ries of elements, and each element having a low resolution version and a high resolution version, comprising the steps of:
(a) sequentially reading the high resolution versions of successive el-ements of the first data stream and the low resolution versions of successive elements of the alternate data stream, at a speci-fied read rate, and storing each version of each element;
(b) concurrently with step (a), sequentially outputting the stored high resolution versions of successive elements of the first data stream at a specified output rate, the output rate being slower than the read rate;
(c) selecting one of the data streams; and (d) responsive to the alternate data stream being selected, perform-ing the following steps:
(d.1) responsive to there being an insufficient number of ele-ments in the buffer to cover a period of time equal to the time needed to seek access, performing the following steps:

(d.1.a) sequentially reading the high resolution versions of successive elements of the first data stream and the low resolution versions of successive elements of the alternate data stream, at the specified read rate and storing each version of each element;
(d.1.b) concurrently with step (d.1.a), sequentially ex-panding and outputting the stored low resolution versions of successive elements of the alternate data stream at a specified output rate, the output rate being slower than the read rate; and (d.1.c) repeating steps (d.1.a) and (d.1.b) until the num-ber of stored elements is sufficient to cover the time needed to seek access;
(d.2) seeking access to the high resolution versions of the ele-ments of the alternate data stream, while sequentially expanding and outputting the stored low resolution ver-sions of successive elements of the alternate data stream;
(d.3) after seeking access, sequentially reading the high reso-lution versions of successive elements of the alternate data stream and the low resolution versions of successive elements of the first data stream, at the specified read rate, and storing each version of each element; and (d.4) concurrently with step (d.3), sequentially outputting the stored high resolution versions of successive elements of the alternate data stream at the specified output rate.
7. The method of claim 6, further comprising the steps of:
(b') concurrently with step (b), sequentially outputting the stored low resolution versions of successive elements of the alternate data stream at the specified output rate;
(d.1.b') concurrently with step (d.1.b), sequentially reducing and outputting the stored high resolution versions of successive el-ements of the first data stream at the specified output rate;
(d.2') concurrently with step (d.2), sequentially reducing and out-putting the stored high resolution versions of successive ele-ments of the first data stream; and (d.4') concurrently with step (d.4),sequentially outputting the stored low resolution versions of successive elements of the first data stream at the specified output rate.
8. The method of claim 1, wherein step (a) comprises the steps of:
(a.1) reading a first subset of elements and storing each element of the first subset;
(a.2) after completion of step (a.1), sequentially reading successive elements and storing each element; and (a.3) concurrently with step (a.2), sequentially outputting the stored elements.
9. A method of selecting and switching between a first data stream and at least one alternate data stream, each data stream comprising a se-ries of elements, comprising the steps of:
(a) reading a first subset of elements from the first data stream and storing each element of the first subset;
(b) performing the followlng steps repeatedly:
(b.1) outputting a previously stored element;
(b.2) reading an element from the first data stream; and (b.3) storing the read element;
(c) selecting one of the data streams;
(d) responsive to selecting the alternate data stream, performing the following steps:
(d.1) seeking access to the alternate data stream; and (d.2) concurrently with step (d.1), sequentially outputting the stored elements from the buffer until step (d.1) is com-pleted; and (d.3) after step (d.1) has been completed, sequentially reading and outputting successive elements from the alternate data stream.
10. A method of selecting and switching between a first data stream and at least one alternate data stream, each data stream comprising a se-ries of elements, comprising the steps of:
(a) reading a first subset of elements from the first data stream and storing each element of the first subset:
(b) performing the following steps repeatedly:
(b.1) outputting a previously stored element;
(b.2) reading an element from the first data stream: and (b.3) storing the read element;
(c) performing the following steps repeatedly:
(c.1) outputting a previously stored element belonging to the first data stream;
(c.2) reading an element from the alternate data stream; and (c.3) storing the read element;
(d) selecting one of the data streams;
(e) responsive to selecting the alternate data stream, performing the following steps:
(e.1) seeking access to the alternate data stream; and (e.2) concurrently with step (e.1), sequentially outputting previously stored elements belonging to the alternate data stream until step (e.1) is completed; and (f) sequentially reading and outputting successive elements from the selected data stream.
11. A method of selecting and switching between a first data stream and at least one alternate data stream, each data stream comprising a se-ries of elements, comprising the steps of:
(a) reading a first subset of elements from the alternate data stream and storing each element of the first subset;
(b) sequentially reading and outputting successive elements from the first data stream;
(c) selecting one of the data streams;
(d) responsive to selecting the alternate data stream, performing the following steps:
(d.1) seeking access to the alternate data stream; and (d.2) concurrently with step (d.1), sequentially outputting previously stored elements belonging to the alternate data stream from the buffer until step (d.1) is com-pleted; and (e) sequentially reading and outputting successive elements from the selected data stream.
12. A method of selecting and switching among a plurality of data streams, each data stream comprising a series of elements, comprising the steps of:
(a) reading an element from each data stream;
(b) selecting one of the data streams; and (c) outputting a previously read element corresponding to the se-lected data stream.
13. The method of claim 12, wherein the steps are performed re-peatedly.
14. The method of claim 12, wherein the data streams are stored in an interleaved fashion.
15. The method of claim 12, wherein steps (a) and (b) are per-formed concurrently with step (c).
16. A method of selecting and switching between a first data stream and at least one alternate data stream, each data stream comprising a se-ries of elements, comprising the steps of:
(a) sequentially reading a first subset of elements of the first data stream, at a specified read rate, and storing each element of the first subset;
(b) sequentially reading a second subset of elements, the second subset containing element from both the first data stream and the alternate data stream, at the specified read rate, and stor-ing each element of the second subset;
(c) concurrently with steps (a) and (b), sequentially outputting the stored elements of the first subset at a specified output rate, the output rate being slower than the read rate, to complete steps (a) and (b) before step (c), and to retain the second sub-set after step (c) is completed;
(d) selecting one of the data streams;
(e) reading an element from each data stream; and (f) outputting the element corresponding to the selected data stream.
17. The method of claim 16, wherein steps (d), (e), and (f) are per-formed repeatedly.
18. The method of claim 16, wherein portions of the data streams are stored in an interleaved fashion.
19. The method of claim 16, wherein steps (d) and (e) are per-formed concurrently with step (f).
20. A system for selecting and switching among a plurality of data streams, each data stream comprising a series of elements, comprising:
(a) means for selecting one of the data streams;
(b) a storage device for storing the data streams and for seeking ac-cess to the selected data stream;
(c) a buffer connected to receive and store data stream elements from the storage device; and (d) an output device connected to read and output data stream ele-ments from the buffer while the storage device seeks access to the selected data stream.
21. A system for selecting and switching among a plurality of data streams, each data stream comprising a series of elements, comprising:
(a) a storage device for storing the data streams in interleaved for-mat;
(b) means for selecting one of the data streams; and (c) an output device connected to read and output data stream ele-ments belonging to the selected data stream from the storage device.
22. A system for selecting and switching among a plurality of data streams, each data stream comprising a series of elements, comprising:
(a) a storage device for storing the data streams, wherein a portion of the data streams is stored in interleaved format;
(b) a buffer connected to receive and store data stream elements from the storage device;
(c) means for selecting one of the data streams; and (d) an output device connected to read and output data stream ele-ments belonging to the selected data stream from the storage device.
CA002141607A 1992-08-10 1993-06-16 System and method of selecting among multiple data streams Abandoned CA2141607A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92734992A 1992-08-10 1992-08-10
US07/927,349 1992-08-10

Publications (1)

Publication Number Publication Date
CA2141607A1 true CA2141607A1 (en) 1994-02-17

Family

ID=25454620

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002141607A Abandoned CA2141607A1 (en) 1992-08-10 1993-06-16 System and method of selecting among multiple data streams

Country Status (5)

Country Link
EP (1) EP0654157A1 (en)
JP (1) JPH08504283A (en)
AU (1) AU4638093A (en)
CA (1) CA2141607A1 (en)
WO (1) WO1994003851A1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5861881A (en) * 1991-11-25 1999-01-19 Actv, Inc. Interactive computer system for providing an interactive presentation with personalized video, audio and graphics responses for multiple viewers
US5513011A (en) * 1993-01-25 1996-04-30 Matsushita Electric Industrial Co., Ltd. Method and apparatus for recording or reproducing video data on or from storage media
US5606359A (en) * 1994-06-30 1997-02-25 Hewlett-Packard Company Video on demand system with multiple data sources configured to provide vcr-like services
US5495291A (en) * 1994-07-22 1996-02-27 Hewlett-Packard Company Decompression system for compressed video data for providing uninterrupted decompressed video data output
CN1086498C (en) 1995-02-22 2002-06-19 株式会社东芝 Information recording method, recording media, information reproducing method and information reproducing device
US20020044757A1 (en) * 1995-08-04 2002-04-18 Sony Corporation Information carrier, device for reading and device for providing the information carrier and method of transmitting picture information
AU7688296A (en) * 1995-12-01 1997-06-27 Cinax Designs Inc. Method and apparatus for seamless splicing of digital data streams
JP3140384B2 (en) * 1995-12-01 2001-03-05 エル エス アイ ロジック コーポレーション Video transmission method and data processing system
TW318906B (en) * 1995-12-08 1997-11-01 Sony Co Ltd
DE69627992T2 (en) 1996-01-08 2004-05-19 Kabushiki Kaisha Toshiba, Kawasaki INFORMATION RECORDING MEDIUM, RECORDING METHOD AND PLAYBACK DEVICE
JP2950223B2 (en) * 1996-01-12 1999-09-20 日本電気株式会社 Data reading device
ATE243879T1 (en) * 1996-02-21 2003-07-15 Time Warner Entertainm Co Lp DATA NESTING METHOD FOR CONTINUOUS PLAYBACK OF MULTIPLE PROGRAM VERSIONS WITH THE SAME MATERIAL
JP3729920B2 (en) * 1996-03-18 2005-12-21 パイオニア株式会社 Information recording medium, recording apparatus and reproducing apparatus therefor
JP3763172B2 (en) * 1996-12-16 2006-04-05 ソニー株式会社 Digital signal decoding method and apparatus, and digital signal reproduction apparatus
JP3799301B2 (en) * 2001-06-14 2006-07-19 三星電子株式会社 Information storage medium on which preload information is recorded, reproducing apparatus and reproducing method thereof
JP4582683B2 (en) 2002-10-15 2010-11-17 ソニー株式会社 Data processing apparatus, data processing method, and program
CN1860545A (en) * 2003-09-30 2006-11-08 皇家飞利浦电子股份有限公司 Cache management for improving trick play performance
DE102009040839A1 (en) 2008-09-30 2010-04-15 Carl Zeiss Microimaging Gmbh Peripheral interface, data stream and data transmission method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849828A (en) * 1986-08-22 1989-07-18 Pioneer Electronic Corporation Search system and special reproduction system for information reproduction device
JPS6436374A (en) * 1987-07-31 1989-02-07 Ricoh Kk Image retrieval system
GB8904906D0 (en) * 1989-03-03 1989-04-12 British Broadcasting Corp Videodisc and videodisc player,and vision mixing simulator using the same
DK0465053T3 (en) * 1990-06-29 2002-10-07 Sony Corp Plate recording / reproduction apparatus
EP0492938B1 (en) * 1990-12-21 1995-11-22 Sun Microsystems, Inc. Method and apparatus for increasing the speed of operation of a double buffered display system

Also Published As

Publication number Publication date
JPH08504283A (en) 1996-05-07
AU4638093A (en) 1994-03-03
EP0654157A1 (en) 1995-05-24
WO1994003851A1 (en) 1994-02-17

Similar Documents

Publication Publication Date Title
CA2141607A1 (en) System and method of selecting among multiple data streams
CA2142182A1 (en) Digital video editing system and method
EP0622957A2 (en) Variable speed playback of digital video data stored in a non-tape media
JPH0540560A (en) Method for user interface and data processing system
EP0112832A1 (en) Digital image display system.
JPH05324821A (en) High-resolution video and graphic display device
US4418344A (en) Video display terminal
EP0798720B1 (en) Script editor
JPH051946B2 (en)
US20030222922A1 (en) Automatic layout generation
EP0612168A2 (en) Data communication apparatus
US7092585B2 (en) Method and apparatus for processing both static and moving images
KR970068646A (en) IMAGE DATA DECODING METHOD AND APPARAUTS COMPARING DECODE AND DISPLAY PROGRESS
JP2000188786A (en) Mobile telephone set
JPS63156476A (en) Image file device
US5940085A (en) Register controlled text image stretching
EP0798917A2 (en) Script editor
JP3558648B2 (en) On-screen display system
JPH0686222A (en) Still picture reproducing device
JP2989376B2 (en) Image processing device
JPH02310592A (en) Screen scroll control system
CA1195788A (en) Apparatus for producing a display of data on the screen of a visual display unit
CN100530398C (en) Method and broadcast apparatus for displaying multi caption using auxiliary picture surface processing method
KR20030006534A (en) A method for displaying menu
JPH07248749A (en) Image display device

Legal Events

Date Code Title Description
FZDE Discontinued