Abstract:
A method comprising, receiving a live video stream; recording the live video stream as a stored video stream; shifting the stored video stream as a time-delayed video stream; reading the time-delayed video stream; and playing back the time-delayed video stream whenever the time delay is greater than a predetermined threshold or playing back the live video stream whenever the time delay is less than the predetermined threshold.

Description:
SPECIFICATION 
     This is a Continuation Application of Ser. No. 12/072,245, filed on Feb. 25, 2008, which is presently pending, which is, in turn, a Continuation application Ser. No. 11/174,906, filed on Jul. 5, 2005, which has been abandoned, which is, in turn, a Continuation application Ser. No. 08/996,535, filed on Dec. 23, 1997, which has been issued as U.S. Pat. No. 6,480,667 B1 on Nov. 12, 2002. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The described invention relates to the field of imaging. In particular, the invention relates to the recording and playing back of a video stream. A video stream includes any combination of audio and/or video data streams. However, the concepts disclosed may be applied to other types of data streams. 
     2. Description of Related Art 
     Video streams have typically been recorded on analog media such as a video cassette. A video cassette recorder (VCR) is used to record the video stream on the video cassette. The video stream may come via a broadcast signal, via cable, via satellite signal, or from another video playback device. Once the video stream has been recorded, the VCR is used to rewind the recording medium and play what was recorded. However, due to the nature of the analog medium, once the VCR has started recording, it is not possible to play back the portion of the video stream that has already been recorded until the recording session is terminated. 
     For example, imagine that a person sets up a VCR for recording a one hour show because he knows that he will miss the first 15 minutes of the show. When he arrives home 15 minutes into the show, he will have to wait for the entire show to be recorded before he can start watching the program from the beginning. A way of being able to view the show from the beginning without having to wait for the recording session to terminate is desirable. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows a block diagram of a video record and playback system in accordance with one embodiment of the invention. 
         FIG. 2  shows a flowchart of the method of providing a time-shifted video stream. 
         FIG. 3  shows one embodiment of performing block  206  of  FIG. 2 . 
         FIG. 4  shows one embodiment of an apparatus for storing the video stream on a hard disk. 
         FIG. 5  shows an exemplary method of using the storage unit as a temporary buffer. 
         FIG. 6  shows a flowchart of the playback of a video stream catching up to the incoming video stream. 
         FIG. 7  shows another embodiment, in which the user is able to suspend the display of the incoming video stream. 
         FIG. 8  shows an example of a display screen with several image frames taken at different times. 
     
    
    
     DETAILED DESCRIPTION 
     The Apparatus 
       FIG. 1  shows a block diagram of a video record and playback system  100  in accordance with one embodiment of the invention. A video stream is received at the VIDEO IN  102 . The video stream may be provided by a camera, a television signal, broadcast, cable, or satellite signals, or another video playback device. In one embodiment, the VIDEO IN  102  performs an A to D function that takes analog NTSC signals coming in and decodes the video stream into a digital video bit stream. In a different embodiment, the video is already in digital form. In one embodiment, video record and playback system  100  is a personal computer system, and the VIDEO IN  102  is a video capture card plugged into the personal computer system. 
     The video stream output of the VIDEO IN  102  is optionally compressed at compression unit  104 . In one embodiment, the video is already compressed, such as would be the case with an MPEG2 video signal, and no further compression is needed. The video stream is then stored into storage unit  108 . Buffer unit  106  may be used as a temporary storage unit for providing larger sequential blocks of video data to the storage unit  108 . 
     In one embodiment, storage unit  108  is a random access memory unit that allows relatively quick access to any portion of the stored video stream. A hard disk is an example of a random access memory unit. A hard disk can typically access stored data with access times that are on the order of 10 ms. In contrast, video cassette tapes are mechanically wound to get to a particular point in the video stream. 
     The video stream is played back by reading the video stream from the storage unit  108 . If the video stream was compressed in compression unit  104 , then a decompression unit  110  decompresses the retrieved video stream. The video stream is provided to a VIDEO OUT port  120 , to which a monitor or other display device is connected to provide sound and/or video to a user. 
     A removable storage unit  122  may also be included in video record and playback system  100 . Examples of removable storage units are a writeable CD ROM, writeable DVD, a flash memory, or another hard disk. The removable storage unit  122  allows a user to transfer a recording of a video stream stored in storage unit  108  to the removable storage unit  122 . 
     In one embodiment, a processor  130  controls the operations of the video record and playback system  100 . The compression unit  104  and decompression unit  110  may be implemented in hardware, or the compression and decompression functions of units  104  and  110  may be performed by the processor  130 . Processor  130  receives instructions from firmware/memory  140 , using technology that is well-known. 
     Record and Playback Cycle 
       FIG. 2  shows a flowchart of the method of providing a time-shifted video stream. The flowchart begins at block  200 , and continues at block  202  at which the video stream is received at an input. The video stream begins being recorded at block  204 . At block  206 , playback of the video stream that has been recorded is performed by retrieving a portion of the video stream from the random access storage unit while the recording of the incoming video stream continues. The retrieved portion of the video stream is time-shifted from the incoming video stream by a time delay. 
     At block  208 , the portion of the video stream retrieved from the random access storage unit is provided at an output of the video record and playback system  100 . The retrieved portion of the video stream can then be displayed by a television or other display device. 
     By using the method of  FIG. 2 , the record and playback functions are decoupled from one another. The user may now begin watching a recorded TV show from the beginning, i.e, prior to the show being completely recorded. 
       FIG. 3  shows one method for performing block  206  of  FIG. 2  of retrieving a portion of the video stream from the random access storage unit while continuing to record the incoming video stream. In the disclosed embodiment, the simultaneous recording and playback of the video stream is performed by alternately performing, or multiplexing, one or more stores of the video stream to the random access storage unit with one or more reads of the video stream from the random access storage unit. The multiplexed stores and reads occur quickly enough that the user does not notice an appreciable delay in the playback of the video stream, and none of the incoming video stream is lost, i.e., all of the video stream is recorded. Thus, the record and playback are simultaneous from the user&#39;s point of view. 
     In one embodiment, the random access storage unit is a hard disk. The retrieval of the time-shifted video signal from the hard disk is performed at a first physical location (or sector) of the hard disk, and the storing to the hard disk of the incoming video stream is performed at a different physical location (or sector) on the hard disk. Because it takes more time to jump back and forth between different sectors of the hard disk than the time it takes to read and write to sequential locations in the same sector, data may be buffered to minimize the number of accesses to and from the hard disk using buffer  106 . This increases the amount of data transferred per access. 
     Additionally, because of time constraints for reading and writing to the hard disk, data may be compressed and decompressed to speed transfers to and from the hard disk. 
     In block  302 , the video stream is stored to a random access storage unit. The video stream is optionally compressed and/or buffered prior to storage. In block  304 , the video stream retrieved from the random access storage unit. Buffering and/or decompression may be performed before providing the retrieved video stream to the VIDEO OUT port  120 . 
     From block  304 , the flowchart proceeds at block  306  which stores the next portion of the video stream in a manner similar to that described in block  302 . At block  308 , the next portion of the video stream is retrieved in a manner similar to that described in block  304 . This process is repeated until either the recording or playback cycle is terminated. 
       FIG. 4  shows one embodiment of an apparatus for storing the video stream in the storage unit  108 . In this embodiment, the video stream is stored as separate files  001  to  009  on a hard disk, for example. The processor  130  keeps track of the file and offset into the file of the data being played back, as well as the file and offset into the file of the data being recorded. If the random access storage unit is fast enough, the more than one video stream can be recorded and played back at the same time. 
     Temporary Buffering (Circular Buffering) 
     Due to the nature of the random access storage unit being capable of easily recording over itself, the random access storage unit may act as a temporary buffer for recording the latest portion, or X number of minutes, of an incoming video stream, where X is set up based upon the size of the storage unit. In one embodiment, X could be set up to be the entire storage unit. As newer portions of the video stream are received, they will overwrite the older portions of the video stream saved in the random access storage unit. In this manner, the temporary buffering of the video stream acts as a circular buffer. In one embodiment, the processor  130  maintains pointers to the beginning and ending points of the temporary buffer. The processor  130  reassigns the pointers as newer portions of the video stream are received and/or older portions of the video stream are overwritten. 
       FIG. 5  shows a flowchart of one method for using the storage unit as a temporary buffer. The flowchart starts at block  500  from which it continues at block  502 , at which the video stream is received at an input. Recording of the video stream to the storage unit begins at block  504 . At block  506 , older portions of the video stream are deleted as newer portions of the video stream are stored to the storage unit. 
     A user may initiate a playback cycle following block  506 . For example, this may occur when the user wishes to re-view a video clip that he just saw. In one embodiment, the user stops recording to the temporary buffer and plays back the last portion of the temporary buffer. 
     However, it may be more desirable to the user to be able to continue recording as shown at block  508 . A record and playback cycle (as described with respect to  FIG. 2 ) is started, in which the incoming video stream is recorded while the user re-views the last portion of the temporary buffer. In this manner, after re-viewing the desired video clip, the user can resume sequentially watching the video stream from the point of the video clip. 
     At block  510 , after the record and playback cycle is completed, all or part of the temporary buffer may be saved. Since the temporary buffer store the latest X minutes of the video stream prior to the record and playback cycle, all or part of the temporary buffer may be allocated to the portion of the video stream saved during the record and playback cycle. Other portions of the video stream may then be deleted from the storage unit, or they may be marked as over-writeable and used as a new temporary buffer. 
     Playback Catching Up to Incoming Video Stream 
       FIG. 6  shows a flowchart of a method for playing back of a video stream in a manner that allows it to catch up to the incoming video stream. Usually, during simultaneous playback and recording of the same video stream, the playback of the video stream is time-shifted from the incoming video stream by a time delay. However, if the playback is performed at an overall rate faster than the rate at which the incoming video stream is received, then the playback will catch up to the incoming video stream. 
     For example, playback of the video stream will have an overall rate faster than the rate of the incoming video stream if the playback is fast forwarded, or if segments of the playback are skipped altogether. When the time delay of the time-shifted video stream being played back falls below a certain threshold, the video and playback system  100  will cease providing the time-shifted video stream from the storage unit. Instead, the incoming video stream will be provided to the VIDEO OUT port  120  directly. In one embodiment, a bypass  142 , as shown in  FIG. 1 , allows the incoming video stream to be provided to the VIDEO OUT port  120  directly. 
     When this happens, the user has caught up to the “live” broadcast, i.e., the incoming video stream. The user may terminate the recording cycle, if he wishes. Alternatively, the user can put the video record and playback system  100  back into the temporary buffering mode in which only the latest portion of the video stream is stored. 
     “Suspending” Incoming Video Stream 
       FIG. 7  shows another embodiment, in which the user is able to suspend the display of the incoming video stream. This can be used for example, when the user is interrupted, and wishes to continue viewing the video stream after the interruption. When interrupted, the user signals to the video record and playback system  100  to suspend the display of incoming video stream. This can be done via a remote control, for example. At block  702 , the video out is suspended. In one embodiment, the VIDEO OUT continues to provide a still image of the image present at the VIDEO OUT when the suspend was encountered. 
     At block  704  of the flowchart, the incoming video stream is recorded but is not displayed to the monitor. Instead the playback is paused at the point at which the user indicated that the incoming video stream be suspended. When the user is ready to view the video stream again, he can signal the video record and playback system  100  to un-suspend the video stream so that it plays back from the point at which the video stream was suspended, as shown in block  706 . 
     The user may then view the video stream time shifted by the amount of time that he suspended the incoming video stream, or he may fast forward (or rewind) through the time-shifted video stream. When playback of the time-shifted video stream catches up to the point at which the incoming video stream is being recorded, the record and playback system  100  may display the incoming video stream directly from incoming video stream without retrieving the video stream from the storage unit, as described with respect to  FIG. 6 . The recording of the video stream may then be terminated by the user, if desired. 
     Story Boarding: Fast Forward and Rewind 
     Employing a random access storage unit for storage of the video stream facilitates jumping to various points within the video stream. One way of jumping is by retrieving different time slices of the video stream. For example, an image frame from the video stream can be retrieved from the storage unit at 1 minute intervals from a current position of the video stream. In one embodiment, an image frame at the current playback position+1 minute, current playback position+2 minutes, and so forth are retrieved and displayed on the TV screen. 
       FIG. 8  shows an example of a display screen  800  which displays several image frames taken from the video stream at different times. In  FIG. 8 , the current playback position is designated as X. In one embodiment, the time interval, T, is user programmable. The intervals may be multiples of the time interval, as shown. A small interval may be used if the user wishes to skip a commercial, which usually lasts only a few minutes. Longer intervals such as a half hour may be useful for determining which movies are recorded on a storage unit. 
     After the image frames are displayed, the user is able to select one of the frames as a new starting point to which to begin an operation, such as a playback or record operation. By using such a story boarding method, it is easy for a user to quickly jump to a desired location within the video stream. 
     In one embodiment, the record and playback system  100  is able to detect a black screen or fade out, such as those which accompany the beginning or end of a commercial. This is useful in editing a video stream. 
     Editing 
     Having the video stream stored on a random access storage unit such as a hard disk allows for easy editing of the video stream. Individual frames of the video stream may be deleted or replaced. For example, a commercial may be replaced by a fade-to-black sequence. 
     Once the video stream on the storage unit has been edited, it can be stored to a more permanent medium such as a writeable CD-ROM, flash memory, or another hard disk via the removable storage unit  122 . 
     Conclusion 
     Thus, a method of simultaneously recording and playing back a time-shifted video stream is disclosed. The specific arrangements and methods described herein are merely illustrative of the principles of this invention. For example, the same method may be used to store and retrieve other types of data streams besides video streams. Numerous modifications in form and detail may be made without departing from the scope of the described invention. Although this invention has been shown in relation to a particular embodiment, it should not be considered so limited. Rather, the described invention is limited only by the scope of the appended claims.