WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Multimedia time warping system    

Get related patents on CD
United States Patent6233389   
Link to this pagehttp://www.wikipatents.com/6233389.html
Inventor(s)Barton; James M. (Los Gatos, CA), McInnis; Roderick James (Milpitas, CA), Moskowitz; Alan S. (San Francisco, CA), Goodman; Andrew Martin (Menlo Park, CA), Chow; Ching Tong (Fremont, CA), Kao; Jean Swey (Cupertino, CA)
AbstractA multimedia time warping system. The invention allows the user to store selected television broadcast programs while the user is simultaneously watching or reviewing another program. A preferred embodiment of the invention accepts television (TV) input streams in a multitude of forms, for example, National Television Standards Committee (NTSC) or PAL broadcast, and digital forms such as Digital Satellite System (DSS), Digital Broadcast Services (DBS), or Advanced Television Standards Committee (ATSC). The TV streams are converted to an Moving Pictures Experts Group (MPEG) formatted stream for internal transfer and manipulation and are parsed and separated it into video and audio components. The components are stored in temporary buffers. Events are recorded that indicate the type of component that has been found, where it is located, and when it occurred. The program logic is notified that an event has occurred and the data is extracted from the buffers. The parser and event buffer decouple the CPU from having to parse the MPEG stream and from the real time nature of the data streams which allows for slower CPU and bus speeds and translate to lower system costs. The video and audio components are stored on a storage device and when the program is requested for display, the video and audio components are extracted from the storage device and reassembled into an MPEG stream which is sent to a decoder. The decoder converts the MPEG stream into TV output signals and delivers the TV output signals to a TV receiver. User control commands are accepted and sent through the system. These commands affect the flow of said MPEG stream and allow the user to view stored programs with at least the following functions: reverse, fast forward, play, pause, index, fast/slow reverse play, and fast/slow play.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Drawing from US Patent 6233389
Multimedia time warping system - US Patent 6233389 Drawing
Multimedia time warping system
Inventor     Barton; James M. (Los Gatos, CA) , McInnis; Roderick James (Milpitas, CA) , Moskowitz; Alan S. (San Francisco, CA) , Goodman; Andrew Martin (Menlo Park, CA) , Chow; Ching Tong (Fremont, CA) , Kao; Jean Swey (Cupertino, CA)
Owner/Assignee     TiVo, Inc. (Alviso, CA)
Patent assignment
All assignments
Company News
Publication Date     May 15, 2001
Application Number     09/126,071
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 30, 1998
US Classification     386/46 386/68
Int'l Classification    
Examiner     Tran; Thai
Assistant Examiner    
Attorney/Law Firm     Glenn; Michael A. Wong; Kirk
Address
Parent Case    
Priority Data    
USPTO Field of Search     386/1 386/33 386/45 386/46 386/111 386/112 386/111 386/112 386/68 369/60 366/7 366/33 348/7 348/10 348/571 348/714 348/722 348/725
Patent Tags     multimedia time warping
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5937138
Fukuda
386/112
Aug,1999

[0 after 0 votes]
5920842
Cooper
704/503
Jul,1999

[0 after 0 votes]
5787225
Honjo

Jul,1998

[0 after 0 votes]
5706388
Isaka

Jan,1998

[0 after 0 votes]
5696868
Kim

Dec,1997

[0 after 0 votes]
5675388
Cooper
348/461
Oct,1997

[0 after 0 votes]
5572261
Cooper
348/512
Nov,1996

[0 after 0 votes]
5550594
Cooper
348/513
Aug,1996

[0 after 0 votes]
5438423
Lynch
386/109
Aug,1995

[0 after 0 votes]
5371551
Logan
348/571
Dec,1994

[0 after 0 votes]
5202761
Cooper
348/515
Apr,1993

[0 after 0 votes]
Re33535
Cooper

Feb,1991

[0 after 0 votes]
4665431
Cooper
348/480
May,1987

[0 after 0 votes]
4313135
Cooper
348/512
Jan,1982

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A process for the simultaneous storage and play back of multimedia data, comprising the steps of:

accepting television (TV) broadcast signals, wherein said TV signals are based on a multitude of standards, including, but not limited to, National Television Standards Committee (NTSC) broadcast, PAL broadcast, satellite transmission, DSS, DBS, or ATSC;

tuning said TV signals to a specific program;

providing at least one Input Section, wherein said Input Section converts said specific program to an Moving Pictures Experts Group (MPEG) formatted stream for internal transfer and manipulation;

providing a Media Switch, wherein said Media Switch parses said MPEG stream, said MPEG stream is separated into its video and audio components;

storing said video and audio components on a storage device;

providing at least one Output Section, wherein said Output Section extracts said video and audio components from said storage device;

wherein said Output Section assembles said video and audio components into an MPEG stream;

wherein said Output Section sends said MPEG stream to a decoder;

wherein said decoder converts said MPEG stream into TV output signals;

wherein said decoder delivers said TV output signals to a TV receiver; and

accepting control commands from a user, wherein said control commands are sent through the system and affect the flow of said MPEG stream.

2. The process of claim 1, wherein said Input Section directs said MPEG stream to the destination indicated by said control commands.

3. The process of claim 1, wherein said Output Section extracts said video and audio components from the storage device indicated by said control commands.

4. The process of claim 1, further comprising the step of:

creating custom video output sequences, wherein said sequences are specified by a user or program control.

5. The process of claim 1, wherein the storing and extracting of said video and audio components from said storage device are performed simultaneously.

6. The process of claim 1, wherein said Media Switch calculates and logically associates a time stamp to said video and audio components.

7. The process of claim 1, wherein said Media Switch extracts time stamp values from a digital TV stream and logically associates said time stamp values to said video and audio components.

8. The process of claim 1, further comprising the steps of:

placing said video component into a circular video buffer;

posting an event in a circular event buffer, wherein said event contains an indication that a video component was found and the location of said video component in said circular video buffer; and

sending notice of said event posting.

9. The process of claim 1, further comprising the steps of:

placing said audio component into a circular audio buffer;

posting an event in a circular event buffer, wherein said event contains an indication that an audio component was found and the location of said audio component in said circular audio buffer; and

sending notice of said event posting.

10. The process of claims 8 or 9, further comprising the steps of:

receiving said notice;

retrieving said event posting from said event buffer; and

indexing into the appropriate buffer indicated by the type and location information in said event buffer.

11. The process of claim 10, further comprising the steps of:

generating a buffer containing the logical audio or video segments in order, including ancillary information, wherein each of said logical segments points to the appropriate circular buffer location where corresponding audio or video components have been placed.

12. The process of claim 1, further comprising the step of:

increasing the decoder system clock rate for fast playback or fast reverse playback.

13. The process of claim 1, further comprising the step of:

decreasing the decoder system clock rate for slow playback or slow reverse playback.

14. The process of claim 1, further comprising the step of:

combining system audio cues and on-screen displays with said TV output signals.

15. The process of claim 1, further comprising the steps of:

decoding the Vertical Blanking Interval (VBI) data or private data channel information from said TV signal; and

examining said data to determine the starting or ending indicators of a specific program.

16. The process of claim 1, further comprising the step of:

scanning the words contained within the closed caption (CC) fields to determine program starting and ending times, wherein particular words or phrases are used to trigger the recording of a specific program and wherein the CC information is preserved in time synchronization with the audio and video, and can be correctly presented to the viewer when the stream is displayed.

17. The process of claim 16, further comprising the step of:

performing a specific action when a specific word is found in said CC information.

18. The process of claim 1, wherein said Media Switch has a data bus connecting it to a CPU and DRAM.

19. The process of claim 1, wherein said Media Switch shares an address bus with a CPU and DRAM.

20. The process of claim 1, wherein said Media Switch operates asychronously and autonomously with a CPU.

21. The process of claim 1, wherein said storage device is connected to said Media Switch.

22. The process of claim 1, wherein said Media Switch allows the CPU to queue up Direct Memory Access (DMA) transfers.

23. The process of claim 1, wherein said Media Switch is implemented in hardware.

24. The process of claim 1, further comprising the step of:

providing a multimedia recording device, including, but not limited to, a Video Cassette Recorder (VCR) or a Digital Video Disk-Random Access Memory (DVD-RAM) device, wherein said recording device is attached to the output side of said decoder, allowing said user to record said TV output signals.

25. The process of claim 24, wherein said user queues up programs from said storage device to be stored on said recording device.

26. The process of claim 24, wherein said user sets time schedules for said programs to be sent to said recording device.

27. The process of claim 24, wherein title pages may be sent to said recording device before sending a program to be stored on said recording device.

28. The process of claim 24, wherein a program that is longer in duration than a magnetic tape in said recording device allows, is sped up to fit within the desired time limit.

29. The process of claim 24, wherein a program that is longer in duration than a magnetic tape in said recording device allows, has frames dropped from it to fit within the desired time limit.

30. The process of claim 24, wherein the output of said recording device is routed to said Input Section, allowing said recording device to act as a storage back up system, said recording device accepts overflow storage, TV programs, software updates, or other data that are later retrieved and sent to said Input Section.

31. A process for the simultaneous storage and play back of multimedia data, comprising the steps of:

providing a physical data source, wherein said physical data source accepts broadcast data from an input device, parses video and audio data from said broadcast data, and temporarily stores said video and audio data;

providing a source object, wherein said source object extracts video and audio data from said physical data source;

providing a transform object, wherein said transform object stores and retrieves data streams onto a storage device;

wherein said source object obtains a buffer from said transform object, said source object converts video data into data streams and fills said buffer with said streams;

wherein said source object is automatically flow controlled by said transform object;

providing a sink object, wherein said sink object obtains data stream buffers from said transform object and outputs said streams to a video and audio decoder;

wherein said decoder converts said streams into display signals and sends said signals to a display;

wherein said sink object is automatically flow controlled by said transform object;

providing a control object, wherein said control object receives commands from a user, said commands control the flow of the broadcast data through the system; and

wherein said control object sends flow command events to said source, transform, and sink objects.

32. An apparatus for the simultaneous storage and play back of multimedia data, comprising:

a module for accepting television (TV) broadcast signals, wherein said TV signals are based on a multitude of standards, including, but not limited to, National Television Standards Committee (NTSC) broadcast, PAL broadcast, satellite transmission, DSS, DBS, or ATSC;

a module for tuning said TV signals to a specific program;

at least one Input Section, wherein said Input Section converts said specific program to an Moving Pictures Experts Group (MPEG) formatted stream for internal transfer and manipulation;

a Media Switch, wherein said Media Switch parses said MPEG stream, said MPEG stream is separated into its video and audio components;

a module for storing said video and audio components on a storage device;

at least one Output Section, wherein said Output Section extracts said video and audio components from said storage device;

wherein said Output Section assembles said video and audio components into an MPEG stream;

wherein said Output Section sends said MPEG stream to a decoder;

wherein said decoder converts said MPEG stream into TV output signals;

wherein said decoder delivers said TV output signals to a TV receiver; and

accepting control commands from a user, wherein said control commands are sent through the system and affect the flow of said MPEG stream.

33. The apparatus of claim 32, wherein said Input Section directs said MPEG stream to the destination indicated by said control commands.

34. The apparatus of claim 32, wherein said Output Section extracts said video and audio components from the storage device indicated by said control commands.

35. The apparatus of claim 32, further comprising:

a module for creating custom video output sequences, wherein said sequences are specified by a user or program control.

36. The apparatus of claim 32, wherein the storing and extracting of said video and audio components from said storage device are performed simultaneously.

37. The apparatus of claim 32, wherein said Media Switch calculates and logically associates a time stamp to said video and audio components.

38. The apparatus of claim 32, wherein said Media Switch extracts time stamp values from a digital TV stream and logically associates said time stamp values to said video and audio components.

39. The apparatus of claim 32, further comprising:

a module for placing said video component into a circular video buffer;

a module for posting an event in a circular event buffer, wherein said event contains an indication that a video component was found and the location of said video component in said circular video buffer; and

a module for sending notice of said event posting.

40. The apparatus of claim 32, further comprising:

a module for placing said audio component into a circular audio buffer;

a module for posting an event in a circular event buffer, wherein said event contains an indication that an audio component was found and the location of said audio component in said circular audio buffer; and

a module for sending notice of said event posting.

41. The apparatus of claims 39 or 40, further comprising:

a module for receiving said notice;

a module for retrieving said event posting from said event buffer; and

a module for indexing into the appropriate buffer indicated by the type and location information in said event buffer.

42. The apparatus of claim 41, further comprising:

a module for generating a buffer containing the logical audio or video segments in order, including ancillary information, wherein each of said logical segments points to the appropriate circular buffer location where corresponding audio or video components have been placed.

43. The apparatus of claim 32, further comprising:

a module for increasing the decoder system clock rate for fast playback or fast reverse playback.

44. The apparatus of claim 32, further comprising:

a module for decreasing the decoder system clock rate for slow playback or slow reverse playback.

45. The apparatus of claim 32, further comprising:

a module for combining system audio cues and on-screen displays with said TV output signals.

46. The apparatus of claim 32, further comprising:

a module for decoding the Vertical Blanking Interval (VBI) data or private data channel information from said TV signal; and

a module for examining said data to determine the starting or ending indicators of a specific program.

47. The apparatus of claim 32, further comprising:

a module for scanning the words contained within the closed caption (CC) fields to determine program starting and ending times, wherein particular words or phrases are used to trigger the recording of a specific program and wherein the CC information is preserved in time synchronization with the audio and video, and can be correctly presented to the viewer when the stream is displayed.

48. The apparatus of claim 47, further comprising:

a module for performing a specific action when a specific word is found in said CC information.

49. The apparatus of claim 32, wherein said Media Switch has a data bus connecting it to a CPU and DRAM.

50. The apparatus of claim 32, wherein said Media Switch shares an address bus with a CPU and DRAM.

51. The apparatus of claim 32, wherein said Media Switch operates asychronously and autonomously with a CPU.

52. The apparatus of claim 32, wherein said storage device is connected to said Media Switch.

53. The apparatus of claim 32, wherein said Media Switch allows the CPU to queue up Direct Memory Access (DMA) transfers.

54. The apparatus of claim 32, further comprising:

a multimedia recording device, including, but not limited to, a Video Cassette Recorder (VCR) or a Digital Video Disk-Random Access Memory (DVD-RAM) device, wherein said recording device is attached to the output side of said decoder, allowing said user to record said TV output signals.

55. The apparatus of claim 54, wherein said user queues up programs from said storage device to be stored on said recording device.

56. The apparatus of claim 54, wherein said user sets time schedules for said programs to be sent to said recording device.

57. The apparatus of claim 54, wherein title pages may be sent to said recording device before sending a program to be stored on said recording device.

58. The apparatus of claim 54, wherein a program that is longer in duration than a magnetic tape in said recording device allows, is sped up to fit within the desired time limit.

59. The apparatus of claim 54, wherein a program that is longer in duration than a magnetic tape in said recording device allows, has frames dropped from it to fit within the desired time limit.

60. The apparatus of claim 54, wherein the output of said recording device is routed to said Input Section, allowing said recording device to act as a storage back up system, said recording device accepts overflow storage, TV programs, software updates, or other data that are later retrieved and sent to said Input Section.

61. An apparatus for the simultaneous storage and play back of multimedia data, comprising:

a physical data source, wherein said physical data source accepts broadcast data from an input device, parses video and audio data from said broadcast data, and temporarily stores said video and audio data;

a source object, wherein said source object extracts video and audio data from said physical data source;

a transform object, wherein said transform object stores and retrieves data streams onto a storage device;

wherein said source object obtains a buffer from said transform object, said source object converts video data into data streams and fills said buffer with said streams;

wherein said source object is automatically flow controlled by said transform object;

a sink object, wherein said sink object obtains data stream buffers from said transform object and outputs said streams to a video and audio decoder;

wherein said decoder converts said streams into display signals and sends said signals to a display;

wherein said sink object is automatically flow controlled by said transform object;

a control object, wherein said control object receives commands from a user, said commands control the flow of the broadcast data through the system; and

wherein said control object sends flow command events to said source, transform, and sink objects.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates to the time shifting of television broadcast signals. More particularly, the invention relates to the real time capture, storage, and display of television broadcast signals.

2. Description of the Prior Art

The Video Cassette Recorder (VCR) has changed the lives of television (TV) viewers throughout the world. The VCR has offered viewers the flexibility to time-shift TV programs to match their lifestyles.

The viewer stores TV programs onto magnetic tape using the VCR. The VCR gives the viewer the ability to play, rewind, fast forward and pause the stored program material. These functions enable the viewer to pause the program playback whenever he desires, fast forward through unwanted program material or commercials, and to replay favorite scenes. However, a VCR cannot both capture and play back information at the same time.

One approach to solving this problem is to use several VCRs. For example, if two video tape recorders are available, it might be possible to Ping-Pong between the two. In this case, the first recorder is started at the beginning of the program of interest. If the viewer wishes to rewind the broadcast, the second recorder begins recording, while the first recorder is halted, rewound to the appropriate place, and playback initiated. However, at least a third video tape recorder is required if the viewer wishes to fast forward to some point in time after the initial rewind was requested. In this case, the third recorder starts recording the broadcast stream while the second is halted and rewound to the appropriate position. Continuing this exercise, one can quickly see that the equipment becomes unwieldy, unreliable, expensive, and hard to operate, while never supporting all desired functions. In addition, tapes are of finite length, and may potentially end at inconvenient times, drastically lowering the value of the solution.

The use of digital computer systems to solve this problem has been suggested. U.S. Pat. No. 5,371,551 issued to Logan et al., on Dec. 6, 1994, teaches a method for concurrent video recording and playback. It presents a microprocessor controlled broadcast and playback device. Said device compresses and stores video data onto a hard disk. However, this approach is difficult to implement because the processor requirements for keeping up with the high video rates makes the device expensive and problematic. The microprocessor must be extremely fast to keep up with the incoming and outgoing video data.

It would be advantageous to provide a multimedia time warping system that gives the user the ability to simultaneously record and play back TV broadcast programs. It would further be advantageous to provide a multimedia time warping system that utilizes an approach that decouples the microprocessor from the high video data rates, thereby reducing the microprocessor and system requirements which are at a premium.

SUMMARY OF THE INVENTION

The invention provides a multimedia time warping system. The invention utilizes an easily manipulated, low cost multimedia storage and display system that allows the user to view a television broadcast program with the option of instantly reviewing previous scenes within the program. In addition, the invention allows the user to store selected television broadcast programs while the user is simultaneously watching or reviewing another program.

A preferred embodiment of the invention accepts television (TV) input streams in a multitude of forms, for example, analog forms such as National Television Standards Committee (NTSC) or PAL broadcast, and digital forms such as Digital Satellite System (DSS), Digital Broadcast Services (DBS), or Advanced Television Standards Committee (ATSC). Analog TV streams are converted to an Moving Pictures Experts Group (MPEG) formatted stream for internal transfer and manipulation, while pre-formatted MPEG streams are extracted from the digital TV signal and presented in a similar format to encoded analog streams.

The invention parses the resulting MPEG stream and separates it into its video and audio components. It then stores the components into temporary buffers. Events are recorded that indicate the type of component that has been found, where it is located, and when it occurred. The program logic is notified that an event has occurred and the data is extracted from the buffers.

The parser and event buffer decouple the CPU from having to parse the MPEG stream and from the real time nature of the data streams. This decoupling allows for slower CPU and bus speeds which translate to lower system costs. The video and audio components are stored on a storage device. When the program is requested for display, the video and audio components are extracted from the storage device and reassembled into an MPEG stream. The MPEG stream is sent to a decoder. The decoder converts the MPEG stream into TV output signals and delivers the TV output signals to a TV receiver.

User control commands are accepted and sent through the system. These commands affect the flow of said MPEG stream and allow the user to view stored programs with at least the following functions: reverse, fast forward, play, pause, index, fast/slow reverse play, and fast/slow play.

Other aspects and advantages of the invention will become apparent from the following detailed description in combination with the accompanying drawings, illustrating, by way of example, the principles of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block schematic diagram of a high level view of a preferred embodiment of the invention according to the invention;

FIG. 2 is a block schematic diagram of a preferred embodiment of the invention using multiple input and output modules according to the invention;

FIG. 3 is a schematic diagram of an Moving Pictures Experts Group (MPEG) data stream and its video and audio components according to the invention;

FIG. 4 is a block schematic diagram of a parser and four direct memory access (DMA) input engines contained in the Media Switch according to the invention;

FIG. 5 is a schematic diagram of the components of a packetized elementary stream (PES) buffer according to the invention;

FIG. 6 is a schematic diagram of the construction of a PES buffer from the parsed components in the Media Switch output circular buffers;

FIG. 7 is a block schematic diagram of the Media Switch and the various components that it communicates with according to the invention;

FIG. 8 is a block schematic diagram of a high level view of the program logic according to the invention;

FIG. 9 is a block schematic diagram of a class hierarchy of the program logic according to the invention;

FIG. 10 is a block schematic diagram of a preferred embodiment of the clip cache component of the invention according to the invention;

FIG. 11 is a block schematic diagram of a preferred embodiment of the invention that emulates a broadcast studio video mixer according to the invention;

FIG. 12 is a block schematic diagram of a closed caption parser according to the invention; and

FIG. 13 is a block schematic diagram of a high level view of a preferred embodiment of the invention utilizing a VCR as an integral component of the invention according to the invention.

DETAILED DESCRIPTION OF THE INVENTION

The invention is embodied in a multimedia time warping system. A system according to the invention provides a multimedia storage and display system that allows the user to view a television broadcast program with the option of instantly reviewing previous scenes within the program. The invention additionally provides the user with the ability to store selected television broadcast programs while simultaneously watching or reviewing another program and to view stored programs with at least the following functions: reverse, fast forward, play, pause, index, fast/slow reverse play, and fast/slow play.

Referring to FIG. 1, a preferred embodiment of the invention has an Input Section 101, Media Switch 102, and an Output Section 103. The Input Section 101 takes television (TV) input streams in a multitude of forms, for example, National Television Standards Committee (NTSC) or PAL broadcast, and digital forms such as Digital Satellite System (DSS), Digital Broadcast Services (DBS), or Advanced Television Standards Committee (ATSC). DBS, DSS and ATSC are based on standards called Moving Pictures Experts Group 2 (MPEG2) and MPEG2 Transport. MPEG2 Transport is a standard for formatting the digital data stream from the TV source transmitter so that a TV receiver can disassemble the input stream to find programs in the multiplexed signal. The Input Section 101 produces MPEG streams. An MPEG2 transport multiplex supports multiple programs in the same broadcast channel, with multiple video and audio feeds and private data. The Input Section 101 tunes the channel to a particular program, extracts a specific MPEG program out of it, and feeds it to the rest of the system. Analog TV signals are encoded into a similar MPEG format using separate video and audio encoders, such that the remainder of the system is unaware of how the signal was obtained. Information may be modulated into the Vertical Blanking Interval (VBI) of the analog TV signal in a number of standard ways; for example, the North American Broadcast Teletext Standard (NABTS) may be used to modulate information onto lines 10 through 20 of an NTSC signal, while the FCC mandates the use of line 21 for Closed Caption (CC) and Extended Data Services (EDS). Such signals are decoded by the input section and passed to the other sections as if they were delivered via an MPEG2 private data channel.

The Media Switch 102 mediates between a microprocessor CPU 106, hard disk or storage device 105, and memory 104. Input streams are converted to an MPEG stream and sent to the Media Switch 102. The Media Switch 102 buffers the MPEG stream into memory. It then performs two operations if the user is watching real time TV: the stream is sent to the Output Section 103 and it is written simultaneously to the hard disk or storage device 105.

The Output Section 103 takes MPEG streams as input and produces an analog TV signal according to the NTSC, PAL, or other required TV standards. The Output Section 103 contains an MPEG decoder, On-Screen Display (OSD) generator, analog TV encoder and audio logic. The OSD generator allows the program logic to supply images which will be overlayed on top of the resulting analog TV signal. Additionally, the Output Section can modulate information supplied by the program logic onto the VBI of the output signal in a number of standard formats, including NABTS, CC and EDS.

With respect to FIG. 2, the invention easily expands to accommodate multiple Input Sections (tuners) 201, 202, 203, 204, each can be tuned to different types of input. Multiple Output Modules (decoders) 206, 207, 208, 209 are added as well. Special effects such as picture in a picture can be implemented with multiple decoders. The Media Switch 205 records one program while the user is watching another. This means that a stream can be extracted off the disk while another stream is being stored onto the disk.

Referring to FIG. 3, the incoming MPEG stream 301 has interleaved video 302, 305, 306 and audio 303, 304, 307 segments. These elements must be separated and recombined to create separate video 308 and audio 309 streams or buffers. This is necessary because separate decoders are used to convert MPEG elements back into audio or video analog components. Such separate delivery requires that time sequence information be generated so that the decoders may be properly synchronized for accurate playback of the signal.

The Media Switch enables the program logic to associate proper time sequence information with each segment, possibly embedding it directly into the stream. The time sequence information for each segment is called a time stamp. These time stamps are monotonically increasing and start at zero each time the system boots up. This allows the invention to find any particular spot in any particular video segment. For example, if the system needs to read five seconds into an incoming contiguous video stream that is being cached, the system simply has to start reading forward into the stream and look for the appropriate time stamp.

A binary search can be performed on a stored file to index into a stream. Each stream is stored as a sequence of fixed-size segments enabling fast binary searches because of the uniform time stamping. If the user wants to start in the middle of the program, the system performs a binary search of the stored segments until it finds the appropriate spot, obtaining the desired results with a minimal amount of information. If the signal were instead stored as an MPEG stream, it would be necessary to linearly parse the stream from the beginning to find the desired