U.S. patent application number 11/174906 was filed with the patent office on 2005-11-03 for time shifting by simultaneously recording and playing a data stream.
Invention is credited to Chuang, Mark P., O'Connor, Dennis M..
Application Number | 20050244138 11/174906 |
Document ID | / |
Family ID | 26847807 |
Filed Date | 2005-11-03 |
United States Patent
Application |
20050244138 |
Kind Code |
A1 |
O'Connor, Dennis M. ; et
al. |
November 3, 2005 |
Time shifting by simultaneously recording and playing a data
stream
Abstract
A video stream may include portions that are stored while other
portions are being displayed. In one embodiment, a portion of the
video stream may be stored in digital storage media at one instance
while in the next instance another portion of the stream is being
read out of the storage media.
Inventors: |
O'Connor, Dennis M.;
(Chandler, AZ) ; Chuang, Mark P.; (Cupertino,
CA) |
Correspondence
Address: |
TROP PRUNER & HU, PC
8554 KATY FREEWAY
SUITE 100
HOUSTON
TX
77024
US
|
Family ID: |
26847807 |
Appl. No.: |
11/174906 |
Filed: |
July 5, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11174906 |
Jul 5, 2005 |
|
|
|
09150577 |
Sep 10, 1998 |
|
|
|
09150577 |
Sep 10, 1998 |
|
|
|
08996535 |
Dec 23, 1997 |
|
|
|
6480667 |
|
|
|
|
Current U.S.
Class: |
386/298 ;
386/328; 386/355; 386/E5.001; G9B/27.012; G9B/27.019 |
Current CPC
Class: |
G11B 2220/218 20130101;
G11B 2220/2516 20130101; H04N 5/781 20130101; H04N 5/907 20130101;
G11B 27/034 20130101; G11B 2220/2562 20130101; H04N 21/4147
20130101; G11B 2020/10962 20130101; H04N 5/76 20130101; H04N 5/85
20130101; G11B 2220/2545 20130101; G11B 27/105 20130101; G11B
2220/61 20130101; G11B 2220/455 20130101 |
Class at
Publication: |
386/094 ;
386/125 |
International
Class: |
H04N 005/781 |
Claims
What is claimed is:
1-25. (canceled)
26. A method comprising: selectively displaying a video stream from
storage or without storing said video stream, depending on a time
delay.
27. The method of claim 26 including: when the time delay is
greater than a threshold, displaying a video stream from the
storage; and when the time delay is less than the threshold,
displaying the video stream without storing said stream.
28. The method of claim 26 including allowing portions of the video
stream to be alternately written to and read from the storage
device and storing in a temporary buffer the next portion to be
written to the storage device while another portion is being read
from the storage device.
29. The method of claim 26 further including allowing one or more
portions of the video stream to be read from the storage device to
retrieve the video stream with one or more time delays that are
user-specified.
30. The method of claim 26 wherein storing the video stream further
comprises allowing the video stream to be compressed prior to
writing the video stream to the storage device.
31. The method of claim 28 wherein displaying the video stream from
the storage device when the time delay is greater than the
predetermined threshold comprises decompressing the video stream
after retrieving the video stream from the storage device.
32. An article comprising a medium storing instructions that, if
executed, enable a computer to: selectively display a video stream
from storage or without storing said video stream, depending on a
time delay.
33. The article of claim 32 further storing instructions that, if
executed, enable the computer to: when the time delay is greater
than a threshold, display the video stream from the storage; and
when the time delay is less than the threshold, display the video
stream without storing said stream.
34. The article of claim 33 further storing instructions that, if
executed, enable the computer to allow portions of the video stream
to be alternately written to and read from the storage device and
storing in a temporary buffer the next portion to be written to the
storage device while another portion is being read from the storage
device.
35. The article of claim 33 further storing instructions that, if
executed, enable the computer to allow one or more portions of the
video stream to be read from the storage device to retrieve the
video stream with one or more time delays that are
user-specified.
36. The article of claim 33 further storing instructions that, if
executed, enable the computer to compress the video stream prior to
writing the video stream to the storage device.
37. The article of claim 34 further storing instructions that, if
executed, enable the computer to allow portions of the video stream
to be displayed from the storage device when the time delay is
greater than the predetermined threshold comprises decompressing
the video stream after retrieving the video stream from the storage
device.
38. A system comprising: a storage to store a video stream; a
controller to selectively display a video stream from said storage
or without storing said video stream, depending on a time
delay.
39. The system of claim 38 said controller to display the video
stream from the storage when the time delay is greater than a
threshold, and when the time delay is less than a threshold, said
controller to display the video stream without storing said
stream
40. The system of claim 38 including a display.
41. The system of claim 38, said controller including a temporary
buffer and wherein said storage stores instructions that enable the
controller to allow portions of the video stream to be alternately
written to and read from the storage and store in its temporary
buffer the next portion to be written to the storage while another
portion is being read from the storage.
42. The system of claim 40 including said controller to allow one
or more portions of the video stream to be read from the storage to
retrieve the video stream with one or more time delays that are
user specified.
43. The system of claim 41 wherein said controller to allow the
video stream to be compressed prior to writing the video stream to
the storage.
44. The system of claim 41 wherein said storage decompresses the
video stream after retrieving the video stream from the storage
when the time delay is greater than the predetermined threshold.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This is a continuation-in-part of U.S. patent application
Ser. No. 08/996,535, filed Dec. 23, 1997.
BACKGROUND
[0002] This present 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.
[0003] 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.
[0004] 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.
SUMMARY
[0005] A method of enabling a video stream to be stored and
displayed at the same time including allowing portions of the video
stream to be alternately written to and read from a storage device.
The next portion to be written to the storage device is stored in a
temporary buffer while another portion is being read from said
storage device.
DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 shows a block diagram of a video record and playback
system in accordance with one embodiment of the invention;
[0007] FIG. 2 shows a flow chart of the method of providing a
time-shifted video stream;
[0008] FIG. 3 shows one embodiment of performing block 206 of FIG.
2;
[0009] FIG. 4 shows one embodiment of an apparatus for storing the
video stream on a hard disk;
[0010] FIG. 5 shows an exemplary method of using the storage unit
as a temporary buffer.
[0011] FIG. 6 shows a flowchart of the playback of a video stream
catching up to the incoming video stream;
[0012] FIG. 7 shows another embodiment, in which the user is able
to suspend the display of the incoming video stream;
[0013] FIG. 8 shows an example of a display screen with several
image frames taken at different times;
[0014] FIG. 9 is a flow chart showing one system for recording and
playing back a video stream;
[0015] FIG. 10 is a block diagram of a computer system useful in
implementing one embodiment of the present invention;
[0016] FIG. 11 is an exemplary TV display for implementing an
embodiment of the present invention;
[0017] FIG. 12 is a flow chart showing the operation of another
embodiment of the present invention;
[0018] FIG. 12A is a continuation of the flow chart of FIG. 12.
[0019] FIG. 13 is a top plan view of a remote control useful in one
embodiment of the present invention;
[0020] FIG. 14 is a block diagram showing how data is transferred
to and from a memory device;
[0021] FIG. 15 is a flow chart showing the flow of input video
information into a storage device;
[0022] FIG. 16 is a flow chart showing the flow of data from the
storage device; and
[0023] FIG. 17 shows a display with an electronic program
guide.
DETAILED DESCRIPTION
[0024] 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 input 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 input 102 performs an analog-to-digital
conversion on an analog video stream to form a digital video bit
stream. In a different embodiment, the video is already in digital
form. The video record and playback system 100 may be part of a
computer system such that the video input 102 is a video capture
card in the computer system.
[0025] The digital video stream from the video input 102 is
optionally compressed at compression unit 104. In one embodiment,
the video is already compressed, such as would be the case with an
Moving Picture Experts Group 2 (MPEG 2) specification (available
from the International Standards Organization Standard IS01172)
compliant video signal, and no further compression is needed. The
video stream is then stored in the storage unit 108. A buffer unit
106 may be used as temporary storage for providing larger
sequential blocks of video data to the storage unit 108. In one
embodiment, the storage unit 108 is a random access memory that
allows relatively quick access to any portion of the stored video
stream. A hard disk is an example of a random access memory.
[0026] 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 from a
video output port 120, to a monitor or other display device to
provide sound and/or video to a user.
[0027] A removable storage unit 122 may also be included in video
record and playback system 100, Examples of removable storage units
are a writeable compact disk read only memory (CD-ROM), writeable
digital video disk (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 and then to transfer the unit 122 to another system at a
different location.
[0028] 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.
[0029] FIG. 2 shows a flow chart of the method of providing a
time-shifted video stream. The flow chart begins at block 200, and
continues at block 202 where the video stream is received. The
recording of the video stream begins at block 204. At block 206,
playback of the recorded video stream 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 may be 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
retrieved for display by a television or other display device.
[0030] In this way, 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.
[0031] FIG. 3 shows one method for 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 multiplexing or alternately storing the video stream
to the random access storage unit and reading of the video stream
from the random access storage unit. The multiplexed or alternated
stores and reads may occur quickly enough that the user does not
notice an appreciable delay in the playback of the video stream,
and the incoming video stream is not lost, i.e., all of the video
stream is recorded. Thus, the record and playback are simultaneous
from the user's point of view.
[0032] 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 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.
[0033] 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.
[0034] In block 302, the video stream is stored in a random access
storage unit. The video stream is optionally compressed and/or
buffered prior to storage. In block 304, the video stream is
retrieved from the random access storage unit. Buffering and/or
decompression may be performed before providing the retrieved video
stream to the video output port 120.
[0035] The next portion of the video stream is stored (block 306)
as described in block 302. At block 308, the next portion of the
video stream is retrieved as described in block 304. This process
is repeated until either the recording or playback cycle is
terminated.
[0036] 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 and 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, more than one video stream can
be recorded and played back at the same time.
[0037] 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 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.
[0038] FIG. 5 shows a flow chart 500 of one method for using the
storage unit as a temporary buffer. At block 502, 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.
[0039] 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.
[0040] 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.
[0041] 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 stores 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 overwriteable and used as a new temporary
buffer.
[0042] FIG. 6 illustrates a method for playing back a video stream
to allow the playback 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.
[0043] For example, playback of the video stream may 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 output 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 output port 120
directly.
[0044] 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.
[0045] FIG. 7 shows an 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 stream 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 output is
suspended. In one embodiment, the video output continues to provide
a still image of the image present at the instance when the suspend
was encountered.
[0046] At block 704 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] Referring now to the embodiment shown in FIG. 9, a flow 900
for digitally recording a video stream begins by capturing the
video stream as indicated in block 902. If the stream is an analog
stream, it may be digitized in an analog-to-digital conversion
process as indicated at block 904. Next the digital stream may be
encoded and compressed, for example using the MPEG2 compression
scheme, as indicated in block 906. The stream is alternately read,
as indicated at block 910, and stored, as indicated in block 908,
in a conventional storage device such as a hard disk drive, a
digital video disk or a flash memory. Data that is read from the
storage device is decoded and decompressed using conventional
technology, as indicated in block 912, for display as indicated in
block 914.
[0055] A computer system 1000 in accordance with one embodiment of
the present invention, shown in FIG. 10, includes a processor 1002.
In one embodiment, the processor may be coupled to an accelerated
graphics port (AGP) chipset 1004 for implementing an accelerated
graphics port embodiment. The chipset 1004 communicates with the
AGP port 1005 and the graphics accelerator 1006. The television
1010 may be coupled to the video output of the graphics accelerator
1006. The chipset 1004 accommodates the system memory 1008. The
chipset 1004 is also coupled to a bus 1012 which may be, for
example, a peripheral component interconnect (PCI) bus. The bus
1012 connects to TV tuner/capture card 1014 which is coupled to an
antenna 1015 or other video input, such as a cable input, a
satellite receiver/antenna or the like. The TV tuner and capture
card 1014 selects of a desired television channel and also performs
the video capture function (block 902, FIG. 9). One exemplary video
capture card is the ISVR-III video capture card available from
Intel Corporation.
[0056] The bus 1012 is also coupled to a bridge 1016 which couples
a hard disk drive 1018. The software 1020, 1022, 1024, 1026, 1028,
and 1030 may be stored on the hard disk 1018. The bridge 1016 is
also coupled to another bus 1032. The bus 1032 may be coupled to a
serial input/output (SIO) device 1034. The device 1034 is in turn
coupled to conventional components such as a mouse 1036, a keyboard
1038, and an infrared interface 1040. Also connected to the bus
1032 is a basic input/output system (BIOS) 1042.
[0057] An exemplary display 1100, shown in FIG. 11, for the
television 1010 may display a conventional television picture or
program 1101 and, in addition, may have superimposed over the
screen, in a discrete fashion, a mouse selectable series of icons,
such as the icons 1102 through 1114. When the mouse cursor 1116
selects the appropriate one of the icons, a corresponding feature
may be implemented. Among the features that may be implemented in
this fashion include a pause or stop function 1102, a start record
function 1104, a fast forward function 1106, a rewind function
1108, and a 10 second reply function 1110 which winds back 10
seconds and replays, and a catchup function 1112 that begins
playing back recorded content at a faster than normal rate until
the display catches up with a live broadcast and an electronic
program guide 1114.
[0058] Referring next to FIG. 12, a program 1020 called display is
used to control various features implemented by the computer 1000.
Initially a check is made at diamond 1200 to determine if an
electronic programming guide (EPG) is implemented. An electronic
programming guide is an electronic depiction of the various
programs that are available at different times. The electronic
programming guide can be provided on a disk, over a modem, by an
Internet connection and using an interactive broadcasting
transmission such as Intercast.RTM. 2.0 interactive broadcasting
software available from Intel Corporation.
[0059] If a particular television program is selected (even if the
program is only selected for viewing) on the EPG, an identifier for
that particular program is stored, as indicated at block 1202, and
automatic recording of the program begins (block 1204). In this way
the stored version of the program is available to implement the
various features described herein even if the storage function was
not particularly requested. Because the information is stored in an
overwriting fashion, no harm is done by recording the information
even if the information turns out not to be useful.
[0060] Referring to FIG. 17, an electronic program guide user
interface 1700 may be deployed on the television 1010. When the
user mouse clicks a box image 1702, representing a given television
program, using the cursor 1116, that program is automatically
recorded.
[0061] Continuing in FIG. 12, an inquiry (diamond 1206) checks
whether the user has selected the zoom feature for playback. If the
user presses a zoom button during playback, a zoom feature is
implemented. In one embodiment, five predefined quadrants in the
television display may be defined including four quadrants located
peripherally around a central quadrant. When the user selects the
zoom feature the user indicates the appropriate quadrant for the
zoom (block 1208). The selected quadrant is scaled (block 12.10) to
produce a larger (zoom) picture.
[0062] Referring to block 1208, the pointer focus is identified to
determine which quadrant will be zoomed. That quadrant is then
scaled as indicated at block 1210. Because the television program
is continually being stored, the scaling can be implemented without
any loss of continuity of the television picture. After the user
has completed looking at the zoomed depiction, the user can return
to the program at the point where he or she departed to view the
zoomed depiction. Thereafter the displayed depiction viewed by the
user may be time delayed from the actually broadcast program.
However the user is able to view the program in its entirety even
if slightly time delayed.
[0063] Next a query is made at diamond 1212 to determine whether a
pause function has been selected. If so, the playback is stopped as
indicated at block 1214 but recording continues unabated as shown
in block 1216.
[0064] The next check determines whether the play feature has been
selected (block 1218). If so the recorded content is played thereby
terminating the live display. However, while the recorded content
is displayed, recording continues as indicated in block 1222 so
that the recorded content may be eventually displayed without
disrupting the continuity of the program.
[0065] A query finds out if the fast forward feature has been
implemented as indicated in diamond 1224. If so, a fast playback is
implemented as shown in block 1226. Once the playback equals the
current broadcast or program content (diamond 1228), the flow
returns to display current broadcast or program content. The fast
forward may progress at 300 to 400% of normal playback speed.
[0066] Moving on to FIG. 12A, at diamond 1230 a check is done to
see if the 10 second replay feature has been activated. If so, the
storage device is operated to find the content which was recorded
10 seconds ago (block 1232). The recorded content is then played
(block 1234) from the 10 second period back to present. This would
correspond to the replay feature implemented with broadcast
television sporting events. After the "rewind" and playback of 10
seconds has been completed, the system is automatically transferred
to automatic play and the recorded content that was displayed
during the replay is displayed so the user does not lose any
continuity in the show. Of course, the user can set the amount of
time for the replay to be something other than 10 seconds.
[0067] A catchup feature is checked (diamond 1230) and, if this
feature has been selected, an accelerated playback option is
implemented (as indicated in block 1238). In the accelerated
playback, the playback may be slightly increased in speed, for
example from 105 to 115% of actual speed, so the user can easily
follow the program but can make up for lost time to get back into
the program as broadcast. Once the recorded program catches up to
the real-time program as indicated in diamond 1240, the catchup
feature is completed and the user returns to real-time display.
[0068] Control over the record and playback functions may be
implemented through a normal mouse function, for example by
clicking on icons as indicated in FIG. 11. In addition, the record
and playback features may be controlled remotely even when the user
is not proximate to a keyboard or mouse. This may be done using a
conventional remote control operator which may, for example,
utilize infrared radiation.
[0069] As indicated in the depiction of an exemplary computer
system 1000 (FIG. 10), an infrared adapter 1040 may be provided,
for example in compliance with the standards and specifications
(such as Infrared Data Association Serial Infrared Link Access
Protocol Version 1.0, Jun. 23, 1994) of the Infrared Data
Association (which can be found at {www.irda.org}). The remote
control 1300, as shown in FIG. 3, may be utilized as a separate
stand alone remote control or its features may be incorporated into
a global remote control. The illustrated control 1300 is a stand
alone control for controlling the record and broadcast features. It
includes an infrared transmission port 1302 and a plurality of
buttons to control the various features. For example a zoom
function 1312 may be implemented as a four-way rocker switch. A
zoom is implemented for the top quadrant of a display by pressing
the upper edge of the button. If the button is pressed in the
middle, the center quadrant is chosen for zoom. Likewise any of the
remaining three edges of the zoom button can be operated to select
a desired quadrant for zoom features.
[0070] A button 1306 is provided to implement the replay function,
a button 1308 may implement the pause feature, and an enter button
1310 may be provided to allow entry of various information
including a particular television program station. An on/off button
1314 may also be provided. Fast forward may be implemented by
button 1316, an electronic program guide may be called by pressing
button 1304. The catch up feature may be called by the button 1318,
and a 10 second reply may be implemented by the button 1320. A
conventional numeric keyboard 1322 may be provided to input
additional information including selected television channels.
[0071] Techniques for storing the video stream onto the storage
device 1410 and for reading the information out of the storage
device are summarized in Table 1 below and illustrated in FIGS. 14,
15, and 16. In FIG. 14, a schematic depiction of the storage system
1400 includes a digital storage device such as a hard disk drive
1410. The digitized video 1402 is initially stored in a buffer
which is designated as being currently on the top of the memory
stack. The transfer of information between the buffers and the
storage device 1410 may be done in discrete time
1 TABLE 1 Time Steps Buffers 1 2 3 4 5 6 7 8 9 Input 1404 1408 1406
1404 1408 1406 1404 1408 1406 Storage Read X X X 1412 X 1414 X 1412
X 1414 1416 1416 Write X X 1404 X 1404 X 1406 X 1404 1408 1406 1408
1408 Output X X X X 1414 1412 1416 1414 1412 (X = no action)
[0072] periods referred to herein as time steps. In a first time
step, shown in FIG. 15, the digitized video 1402 (FIG. 14) is
stored in memory buffer 1404 because that buffer is currently at
the top of the memory stack, as indicated in block 1502 in FIG.
15.
[0073] As the buffer 1404 fills up, the buffer 1408 moves to the
top of the stack (as indicated by the dashed arrow) and incoming
video is stored in buffer 1408. As indicated in block 1504 in FIG.
15 in time step 2, the buffer 1408 replaces the buffer 1404 as the
designated top of the stack buffer. The next input video is then
stored in the new buffer (1408) as indicated in block 1506.
[0074] In time step 3 the buffer 1408 has filled up and the
contents of buffers 1404 and 1408 are written to the storage device
1410 in a single write operation. During the same time step, buffer
1406 moves to the top of the stack and becomes the storage buffer
for incoming video. This is illustrated in blocks 1508, 1510 and
1512 in FIG. 15.
[0075] In time step 4, the buffer 1404 moves back to the top of the
stack to store incoming video since its previous content has
already been saved in the storage device 1410. This is indicated in
block 1514 of FIG. 15, and in FIG. 16 in block 1602. The storing of
incoming information, as illustrated in FIG. 15 then cycles back to
the top of the flow in FIG. 15 and continues in the same fashion
thereafter.
[0076] The content from the storage device 1412 is then read into
buffers 1412 and 1414.
[0077] In time step 5, the buffer 1408 moves to the top of the
stack to store incoming video, and buffer 1414 moves to the top of
the output stack and transfers data to the video output 1418. The
contents of the buffers 1404 and 1406 are then written to the
storage device 1410.
[0078] The time steps 1 to 5 illustrate a complete cycle from input
to output. The remaining sequence of steps repeat starting at step
5 for the input of data and time steps 6 through 9 repeat for the
output of data.
[0079] Referring now solely to FIGS. 14 and 16, in time step 6,
information stored in the storage device is read to the sixth and
fourth buffers (i.e., buffers 1414 and 1416) as indicated in block
1606. The contents of the fifth buffer (1412) are sent to the
output 1418.
[0080] In time step 7, the contents of the sixth buffer (which is
buffer 1416) are sent to the output 1418. No other output
operations occur.
[0081] In time step 8, the contents from the storage device 1410
are read into the fifth and sixth buffers (buffers 1412 and 1416)
as indicated in block 1612. Also the contents of the fourth buffer
(buffer 1414) are passed to the output 1418 as indicated in block
1614.
[0082] Finally, during time step 9 the contents of the fourth
buffer (buffer 1412) are passed to the output 1418, completing the
cycle.
[0083] Using these algorithms, the storage device is provided with
enough time, through the operation of the buffers, to write the
incoming video while supplying enough data simultaneously to the
output display. Since the memory is used to make sure no content is
dropped at the input end and the display is never starved at the
output end, continuous, even display can be provided without losing
information. In addition reading and writing larger chunks of data
at one time minimizes the amount of storage device head movement,
thereby allowing the storage device to keep up with the read and
write requests.
[0084] The minimum size of the individual buffers 1404 to 1408 and
1412 to 1416 ("B") is dependent on a number of factors including
the input/output data rate "D", for example in megabytes per
second, the effective bandwidth of the storage device when reading
or writing "S", for example in megabytes per second, and the
average seek time for the storage device per transaction "t", in
microseconds. The time that it takes to fill up one memory buffer
(B divided by D) is advantageously greater than the time it takes
to read or write two memory buffers (2B divided by S) plus the
average seek time (t): 1 ( B D ) ( 2 B S ) + ( t 1000 )
[0085] Solving for the minimum buffer size in the above equation
yields the following equation which gives the minimum buffer
size:
B.gtoreq.((DS)/(S-2D))/(t/1000)
[0086] A viewer can pause a season premier of a television while
the station is still broadcasting in order to get up and answer the
telephone. The user can resume watching the show after interruption
as if the program were on video tape. In addition, while watching a
sports event the user can rewind back to a controversial pass,
replay the play in slow motion, stop at the exact instance when the
catch was made and zoom in on the receiver. Also, the user can
apply an image sharpening filter to see if both of the receiver's
feet touched the ground before the receiver went out of bounds.
[0087] Timeshifting by simultaneously recording and playing back a
data stream enables the following type of benefits/features for an
end-user. While watching the season premiere of a television show,
the viewer can literally "pause" the program in order to get up and
answer the phone or get a snack from the refrigerator. After the
interruption, the viewer can resume watching again without having
missed anything. If the viewer came home 15 minutes late for the
show but had started recording the program from the beginning, the
viewer can begin watching right away instead of waiting for the
show to be over and then rewinding the cassette tape. Also the
viewer can replay scenes during a "live" broadcast (e.g. season
premiere of a show or sporting event) in case the viewer missed a
line or an exciting play. In addition, while watching a sports
event the user can rewind back to a controversial play, replay the
play in slow motion, and stop at the exact instance when the catch
was made. To get a better view, the viewer can zoom in on a portion
of the screen and apply image sharpening filters to magnify one
part of the screen.
[0088] 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.
* * * * *