US20020057893A1 - Digital recording and playback - Google Patents

Digital recording and playback Download PDF

Info

Publication number
US20020057893A1
US20020057893A1 US09/262,144 US26214499A US2002057893A1 US 20020057893 A1 US20020057893 A1 US 20020057893A1 US 26214499 A US26214499 A US 26214499A US 2002057893 A1 US2002057893 A1 US 2002057893A1
Authority
US
United States
Prior art keywords
video information
channel
mpeg
digital
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US09/262,144
Inventor
Anthony Wood
Spencer Shanson
Matthew Self
Donald Woodward
Doug Shannon
Mark Nudelman
Karl Townsend
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ReplayTV Inc
Original Assignee
ReplayTV Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ReplayTV Inc filed Critical ReplayTV Inc
Priority to US09/262,144 priority Critical patent/US20020057893A1/en
Assigned to REPLAY NETWORKS, INC. reassignment REPLAY NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NUDELMAN, MARK, SELF, MATTHEW, SHANNON, DOUG, SHANSON, SPENCER, TOWNSEND, KARL, WOOD, ANTHONY, WOODWARD, DONALD, JR.
Assigned to IMPERIAL BANK reassignment IMPERIAL BANK COLLATERAL ASSIGNMENT, PATENT MORTGAGE AND SECURITY AGREEMENT Assignors: REPLAY NETWORKS, INC.
Assigned to REPLAYTV, INC. reassignment REPLAYTV, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: REPLAY NETWORKS, INC.
Assigned to REPLAYTV, INC. reassignment REPLAYTV, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: REPLAY NETWORKS, INC.
Publication of US20020057893A1 publication Critical patent/US20020057893A1/en
Priority to US10/339,012 priority patent/US8873929B1/en
Assigned to DIGITAL NETWORKS NORTH AMERICA, INC. reassignment DIGITAL NETWORKS NORTH AMERICA, INC. ASSET PURCHASE Assignors: REPLAYTV, INC.
Assigned to REPLAYTV, INC. reassignment REPLAYTV, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: COMERICA BANK
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4335Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4333Processing operations in response to a pause request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47214End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91307Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal
    • H04N2005/91314Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal the copy protection signal being a pulse signal inserted in blanking intervals of the video signal, e.g. pseudo-AGC pulses, pseudo-sync pulses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91307Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal
    • H04N2005/91321Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal the copy protection signal being a copy protection control signal, e.g. a record inhibit signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/775Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/7921Processing of colour television signals in connection with recording for more than one processing mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals

Definitions

  • the present invention relates to digital recording and playback of audio and video streams.
  • VCRs video cassette recorders
  • a video source e.g., a cable TV cable
  • a tape e.g., a VHS tape
  • One way to record a video stream using a conventional VCR is to press a Record button, causing the VCR to begin recording the incoming video stream. The VCR continues recording until the user presses a Stop button.
  • a Stop button To schedule recording of a video stream (e.g., an upcoming episode of a television show), the user typically indicates the start time, end time, and television channel of the episode.
  • the VCR begins recording the video stream received on the specified channel at the specified start time and stops recording at the specified end time.
  • the user To play back a video stream recorded with a VCR, the user inserts the tape on which the video stream is recorded into the VCR, positions the tape to the beginning of the recorded video stream using Rewind and Forward buttons, and presses a Play button. Typically, a user must wait until recording has completed before a video stream can be played back.
  • the user also connects a video display such as a television monitor to the receiver.
  • the user can select which video source is to be output to the television monitor using controls provided by the receiver. For example, to view the output of the VCR (e.g., the contents of a VHS tape) on the television monitor, the user presses a “VCR” button on the receiver.
  • each live television source typically has its own set of channels with its own numbering system. Channel numbers used by different live television sources may or may not overlap, and different video sources may or may not associate the same channel number with another channel which contains the same content (e.g., channels which correspond to the same television network).
  • Some live television providers such as DBS and some cable systems, provide additional information within the video streams they provide. For example, some systems provide information about upcoming television shows, such as the times at which they are scheduled to air and the channels on which they appear. Some systems display such information using an on-screen menu that displays the times at which upcoming shows will be aired.
  • the invention features apparatus and corresponding methods for storing video information.
  • the apparatus includes a means for receiving video information, a means for converting the received video information into digital video information, and a means for storing the digital video information.
  • Implementations of the invention can include one or more of the following advantageous features. Converting the received video information into digital video information includes converting it into an MPEG-compatible digital format.
  • the means for converting the received video information into digital video information includes an MPEG-compatible digital encoder.
  • the MPEG-compatible digital encoder includes separate audio and video MPEG encoders.
  • the means for storing the digital video information includes an electromagnetically writable disk drive, and an optimized MPEG file system (OMFS) configured to receive the digital video information and store the digital video information on the disk drive.
  • the disk drive includes one or more electromagnetic disks, each electromagnetic disk divided into one or more sectors having a fixed number of bytes storable on each sector; and the OMFS is configured to divide the received digital video information into one or more packets, each packet having the same number of bytes as a sector on a disk in the disk drive.
  • the OMFS first accumulates one of the packets of digital video information in a cache memory.
  • the OMFS upon filling the cache memory with a completed packet of digital video information, then stores the completed packet on a single one of the sectors of the disk drive.
  • the means for converting the received video information into digital video information includes an MPEG-compatible software encoder streamer which couples to the MPEG-compatible digital encoder to convert the received video information.
  • the apparatus further includes a means for reading the stored the digital video information.
  • the means for reading includes an MPEG-compatible digital decoder.
  • the MPEG-compatible digital decoder includes separate audio and video MPEG decoders.
  • the means for reading includes an MPEG-compatible software decoder streamer which couples to the MPEG-compatible digital decoder to convert the stored digital video information into video information suitable to be displayed on a television monitor.
  • the OMFS is configured to defragment the disk drive periodically.
  • the OMFS is configured to determine periodically poor sectors on the disk drive and prevent writing to the poor sectors.
  • a user can exercise centralized control over multiple video sources. For example, by merging the live television channels provided by multiple live television sources such as television antennas, cable TV cables, and DBS dishes, a user can navigate a single contiguous list of channels. This simplifies the user's television viewing experience by, for example, allowing the user to select television channels using a single remote control and reducing or eliminating any confusion regarding content received from different television stations using the same channel number. More generally, the user is provided with the appearance of a single virtual video source, regardless of the number of video sources (live or recorded) that are connected to a digital VCR. Interacting with multiple video sources through a single consistent interface greatly simplifies the tasks performed by the user, such as recording television shows and selecting channels to view.
  • a user can also exercise VCR-style control over live television shows. For example, if the incoming video stream is recorded into a rewind buffer, the user can effectively “rewind” a live television show simply by pressing a Rewind button. The live television show continues to be recorded while it is being “rewound.” This allows the user to re-watch parts of a live television show before the show is over. Similarly, the user can pause a live television show by pressing a Pause button. Even while paused, the live television show continues to be recorded. This allows the user to pause a live television show to perform other activities, and then resume watching the remainder of the television show even before the show is over.
  • the ability to play back part of a show while the show is being recorded can also allow a user who sits down to watch a television show after it has begun being recorded to simply press the Play button to begin playing back the show from the beginning, even while the remainder of the show is still airing and being recorded.
  • a user can specify a show to record based on the content of the show and information associated with the show, rather than merely on the time at which the show airs and the channel on which it is received. For example, the user can specify that all episodes of a television show with a particular title be recorded. Specifying shows to be recorded by content can simplify the process of recording shows because it does not require the user to know when a show will be aired, or on what channel it will air, or from which video source it will be received. Furthermore, recording by content can reduce the probability that a show of interest to the user will fail to be recorded. If, for example, the show specified by the user is delayed or rescheduled, it can still be recorded. Recording by content also allows both new episodes of a television show broadcast on one channel and re-runs of the show broadcast on a different channel to be recorded easily.
  • show information can be stored along with each recorded show.
  • Such show information may include, for example, the name of the show, the time at which it aired, the channel on which it aired, and a description of the show.
  • show information associated with a show can be displayed on-screen when a user plays back a recorded show.
  • recording show information along with recorded shows can simplify the process of locating recorded shows.
  • the user may, for example, be provided with an informative list of shows that have been recorded from which a show to view may be selected. The user need not keep an external record of which shows have been recorded and where they are located.
  • stored show information may be used in conjunction with channel guide information to allow recording only those episodes of a television show which have not been previously recorded or which the user has not previously viewed.
  • Storage space can be managed efficiently by, for example, configuring the digital VCR to only retain in storage a certain number of recorded episodes of a particular television show. When the maximum number of episodes of a television show have been recorded, recorded episodes may be deleted from storage to make room for subsequent episodes. This both increases the likelihood that sufficient storage space will be available to record new shows, and relieves the user of managing storage space.
  • FIG. 1 is a block diagram of a digital VCR and devices connected to the digital VCR.
  • FIG. 2 is a block diagram of digital VCR circuitry.
  • FIG. 3 is a block diagram of digital VCR system software.
  • FIG. 4 is a block diagram of a digital VCR remote control.
  • FIG. 5 is a block diagram of a channel guide display.
  • FIGS. 6 A-F are block diagrams of transitions between interface states.
  • a digital VCR 10 acts as a central station for recording and playback of analog and digital audio and video.
  • Live video sources such as a cable TV cable 12 , a broadcast television antenna 14 , and a DBS dish 26
  • recorded video sources such as a video cassette recorder (VCR) 15
  • audio sources such as a CD player 16
  • a remote control 22 and on-screen menus displayed by the digital VCR 10 on the television 18 may be used to select audio and video from one or more of the attached audio and video sources to be output to a single display device such as the television 18 .
  • the user may control all connected audio and video devices using a simple, natural, and unified interface provided by the digital VCR 10 .
  • commands such as fast forward and rewind received from the digital VCR's remote control 22 may be forwarded by the digital VCR 10 to the VCR 15 .
  • the remote control 22 can, for example, send commands such as fast forward and rewind directly to the VCR 15 .
  • the user issues all commands using the remote control 22 , which either forwards the commands directly to the appropriate devices, or forwards the commands to the digital VCR 10 , which in turn forwards the commands to the appropriate devices.
  • the digital VCR 10 includes a modem 148 (FIG. 2) (RC336ACFA) which is connected to a telephone line 20 and which may be used to send and receive information about upcoming television shows and other information, as described in more detail below.
  • the digital VCR 10 can be controlled by keys on a front panel, by a remote control 22 , or by an external device such as a personal computer 24 .
  • the digital VCR 10 includes circuitry 100 .
  • Video is input to the digital VCR 10 from one of a number of sources.
  • Cable-ready input is received in analog form from cable TV cable 12 or from antenna 14 at one or more RF-in inputs 102 .
  • the RF-in input 102 is coupled to a tuner 108 (Philips FI1236). If the RF-in input 102 is connected to the output of a standard cable TV set-top box, which outputs a single channel on channel 3, for example, the tuner 108 is tuned to channel 3. Otherwise, the tuner 108 can be adjusted to select a channel from among the channels present in the input received at the RF-in input 102 .
  • Composite video inputs 104 a - b receive composite video input from, e.g., a camcorder.
  • An S-video input 106 receives S-video input from, e.g., the DBS dish 26 .
  • the signals received at the video inputs 102 , 104 a - b , and 106 are input to a Micronas National Television Standards Committee (NTSC) decoder 109 (VPX3225).
  • the decoder 109 selects which one of the signals received at its inputs will be delivered at its output 110 .
  • the decoder 109 digitizes the selected input and outputs the digitized signal at its output 110 in CCIR (Comotti Consultatif International des Radiocommunications) 601 format, with a typical resolution of 720 ⁇ 480 pixels.
  • the decoder 109 may be used to reduce the resolution of the input signal by outputting a digitized signal with a smaller number of pixels.
  • the decoder 109 also includes a First In First Out (FIFO) buffer for buffering video.
  • FIFO First In First Out
  • the digitized video signal output at the output 110 of the decoder 109 is input to a Field Programmable Gate Array (FPGA) Blank and Automatic Gain Control (AGC) Detector 112 and to a Sony Moving Pictures Experts Group 2 (MPEG-2) realtime video encoder 114 (CXD1922Q).
  • the MPEG-2 encoder 114 compresses the digitized video from output 110 , and outputs the compressed digitized video on its outputs 116 , 118 .
  • the MPEG-2 encoder 114 is capable of performing automatic scene detection, i.e., when the video on output 110 changes from one scene to another, the MPEG-2 decoder 114 resets itself and restarts compression at the beginning of the new scene.
  • the MPEG-2 decoder 114 also adjusts the number of bits of video that it compresses per second, based on how much the input signal is changing. In other words, as the amount of change in the input signal increases, the number of bits per second in the compressed output increases. This is referred to as variable bit rate compression.
  • the FPGA 112 is programmed to detect blank frames in the digitized video signal on output 110 .
  • Blank frame detection is used to determine when commercials in a television signal begin and end. For example, the occurrence of multiple consecutive blank frames is a possible indication that a commercial is beginning or ending.
  • the video portion of the digitized video signal 110 contains blank frames, but the corresponding audio portion of the signal 110 is not silent, a commercial is most likely not occurring. Detection of silent blank frames as representing the start (and end) of commercials can be further enhanced by determining if one such set of silent blank frames is followed some number of seconds (e.g., 30 or 60) by another such set of silent blank frames.
  • the FPGA 112 contains a luma (brightness) threshold register whose value is set by a central processing unit (CPU) 140 .
  • the FPGA 112 also contains a counter register. As each video frame is read by the FPGA 112 , the FPGA 112 stores in the counter register a count of the number of pixels in the video frame whose intensity value is below the value of the luma threshold register. The CPU can read that count, and determine if the value of the counter register is below a predetermined minimum value after a predetermined number of frames, such that a commercial is determined to have begun.
  • Some video streams are specially encoded using Macrovision's copy protection scheme in a way that allows the video stream to be displayed correctly on a television, but which causes massive signal degradation if the video stream is recorded onto a video tape.
  • Such encoded video streams can come from a pre-recorded video tape, a laser disc, a DVD (Digital Video (or Versatile) Disk), or from a broadcast such as a premium cable channel or a pay-per-view movie.
  • the FPGA 112 is used to detect the presence of Macrovision copy protection in the signal on output 110 . If Macrovision copy protection is detected, then the signal is tagged to indicate that it is copy protected.
  • NTSC encoder 304 FIG. 3
  • Audio input is received either through the tuner 108 , through line 1 inputs 120 a - b , or through line 2 inputs 122 a - b . All received audio signals are input to a Micronas Audio Codec (compressor/decompressor) 124 (MSP3430G).
  • MSP3430G Micronas Audio Codec
  • the codec 124 selects the output of the tuner 108 , the line 1 inputs 120 a - b , or the line 2 inputs 122 a - b .
  • the codec 124 digitizes the selected audio signal(s). If the output of the tuner 108 is selected, the codec 124 also performs “stereo decoding,” i.e., separates the right and left channel of the audio signal.
  • the resulting digitized audio signal is output on line 126 , where it is input to an Analog Devices Digital Signal Processor (DSP) 128 (ADSP2185).
  • DSP Analog Devices Digital Signal Processor
  • the DSP 128 compresses the received digitized audio signal using MPEG-1, layer 2 compression.
  • An IR (infrared) microcontroller 130 sends and receives infrared signals to and from devices such as a television remote control or a set-top cable box.
  • the IR microcontroller transmits infrared signals using an IR transmitter 132 , and receives infrared signals using an IR detector 134 .
  • the IR microcontroller also detects when the user has pressed an On/Off button 136 .
  • the On/Off button 136 toggles the digital VCR 10 between “on” mode and “sleep” mode. When in “on” mode, the digital VCR 10 is fully functional.
  • the digital VCR 10 can perform just a subset of its functions and can consume less power than when in “on” mode. When in “sleep” mode, however, the digital VCR 10 still performs such functions as recording scheduled shows and downloading channel guide information. Furthermore, when the On/Off button 136 is pressed, the IR microcontroller 130 tests the CPU 140 to determine if the system software running on the CPU 140 has crashed. If the system software has crashed, the IR microcontroller 130 resets the CPU. IR microcontroller 130 can also output IR encoded signals via S-link output 131 .
  • the central processing unit (CPU) 140 (one can use a Philips CPU adapted to function with Philips MPEG-2 decoder SAA7201H, described further below, or another suitable CPU) controls various operations of the digital VCR 10 .
  • CPU 140 runs application programs, controls streaming of audio and video, selects the states input select switches in FPGA 112 and the codec 124 , and performs other functions, as described in more detail below.
  • the digitized audio output by the DSP 128 and the digitized audio output by the MPEG-2 encoder 114 are stored on a hard disk drive 142 .
  • the hard disk drive 142 uses a file system that is described in more detail below.
  • Serial ports 144 a - b receive and send serial data according to the RS-232 standard. Although as shown in FIG. 2 the serial ports 144 a - b connect to external devices using DB-9 connectors 146 a - b , other appropriate connectors can be used.
  • the serial ports 144 a - b can be used, for example, to control a DBS receiver.
  • a device such as personal computer 24 can be connected to the digital VCR 10 through the serial ports 144 a - b to control the digital VCR 10 .
  • the modem 148 connects to the telephone line 20 (FIG. 1) through a Data Access Arrangement (DAA) 149 and a telephone jack.
  • DAA Data Access Arrangement
  • the modem 148 can be used, for example, to download channel guide information. Channel guide information can also be contained within the vertical blanking interval (VBI) of the video input signal, or received through a broadcast pager network. If the digital VCR 10 is connected to a DBS receiver, channel guide
  • a FireWire link layer 150 (PDI1394L11), FireWire physical layer 152 (PDI1394P11), and FireWire ports 154 a - b allow the digital VCR 10 to send and receive digital video according to the IEEE 1394 standard. Additional hard disk drives can be connected to the digital VCR 10 through the ports 154 a - b to provide additional storage capacity. The ports 154 a - b can also be used to connect the digital VCR 10 to another digital VCR. If two digital VCRs are connected to each other via ports 154 a - b , the two digital VCRs can recognize each other's presence.
  • One digital VCR recognizes itself as the “master” and is connected to the television 18 , and the other digital VCR recognizes itself as the “slave.”
  • the “slave” ignores all IR commands intended for the “master.”
  • the two digital VCRs present a single unified interface to the user, effectively allowing the user to use the two digital VCRs as if they were a single digital VCR with two tuners and the combined disk space of the two individual digital VCRs.
  • High-definition television (HDTV) signals can also be sent and received through the ports 154 a - b.
  • Audio and video output are transmitted over a high-speed bus to a Philips MPEG-2 decoder 156 (SAA7201H).
  • the decoder 156 receives a combination of audio and video referred to as a “program stream” from the CPU 140 .
  • the decoder 156 decompresses the program stream, sends the decompressed audio to an audio digital-to-analog converter (DAC) 158 (TDA1311) and to a Philips NTSC (and PAL) encoder 157 (SAA7120) which then sends the decompressed and now re-encoded video on a Y line 160 a and a C line 160 b to a video filter 162 (ML6428), which filters the decompressed re-encoded video to improve its quality.
  • the decoder 156 also sends digitized decompressed audio in Sony Philips Digital Interface (SPDIF) format (represented by block 159 ) to a SPDIF output port 161 .
  • SPDIF Sony Philips Digital Interface
  • Analog audio signals are output by the audio DAC 158 to line 1 out ports 164 a - b and line 2 out ports 166 a - b .
  • Filtered video signals are output to composite video outputs 168 a - b and to S-Video output 170 .
  • a Boot read-only memory (ROM) 172 contains startup object code that begins executing when the digital VCR 10 is turned on. The code in the Boot ROM causes the digital VCR 10 to load system software object code from the hard disk drive 142 into a DRAM 174 and to execute that code, causing the digital VCR 10 to begin normal operation.
  • the DRAM 174 also stores temporary data used by the system software.
  • SDRAMs 176 a and 176 b are used by the MPEG encoder 114 and the MPEG decoder 156 to store data as it is being compressed and decompressed, respectively.
  • Kernel 310 is an operating system or a part of an operating system that can reside in the Boot ROM 172 and which is used to control basic functions of the digital VCR 10 system software 300 .
  • Kernel 310 is based upon the MQX kernel produced by Precise Technology. Kernel 310 supports such features as preemptive multitasking, message passing, interrupt handling, list management, and dynamic link library (DLL) handling.
  • DLL dynamic link library
  • the device drivers i.e., the I 2 C driver 312 , the IR driver 314 , the serial port driver 352 , the modem driver 353 , the FireWire driver 344 , the IDE driver 348 , the MPEG encoder driver 336 , and the MPEG decoder driver 338 ) are responsible for communicating with and directly controlling the hardware components of the digital VCR 10 .
  • the device drivers isolate the components of the system software 300 from the particular hardware devices used to implement the digital VCR 10 so that the system software 300 need not be modified if different hardware components are used.
  • the I 2 C bus 360 is a 2-wire bus (comprising wires 141 a and 141 b ) that connects the IR subsystem 302 , the tuner 108 , the NTSC decoder 109 , and the NTSC encoder 304 together.
  • the I 2 C driver 312 provides arbitration to the bus 360 for communicating with these devices.
  • the IR driver 314 is responsible for reading data from the IR detector 134 , and for sending infrared signals to other components using the IR transmitter 132 .
  • the IR driver 314 convert bitstreams received through the I 2 C driver 312 into information describing which keys (if any) have been pressed on the remote control 22 .
  • the IR data interpreter 320 receives a raw bitstream of IR data from the IR driver 314 and converts the bitstream into meaningful keypress values. It also receives outgoing device control information (i.e., information about commands to control external devices) and converts the device control information into a bitstream that is output to the IR transmitter 132 through the IR driver 314 .
  • outgoing device control information i.e., information about commands to control external devices
  • IR subsystem 302 includes the IR transmitter 132 and IR detector 134 (FIG. 2).
  • the IR subsystem 302 receives information from and transmits information to I 2 C driver 312 which handles I 2 C buses 0 and 1 ( 141 a and 141 b ).
  • IR driver 314 receives bitstreams representing keypresses on the remote control 22 from the I 2 C driver 312 .
  • An IR data interpreter 320 uses bitstreams from the IR driver 314 to determine which keys (if any) on the remote control 22 have been pressed, and converts commands for controlling external hardware into IR bitstreams.
  • An NTSC encoder 304 encodes outgoing video signals in NTSC format.
  • the NTSC encoding function is performed by the combination of the MPEG-2 decoder 156 and the video filter 162 .
  • a VideoSrc DLL 316 uses the I 2 C driver 312 to control the NTSC decoder 109 and the NTSC encoder 304 , and to tune the tuner 108 to desired channels.
  • a VBI driver 318 receives information encoded within the VBI received from video driver 316 , and VBI data interpreter 322 decodes and interprets that data as necessary.
  • a video input select module 328 selects what video source (e.g., broadcast, cable, conventional VCR, etc.) is currently being used by digital VCR application 330 .
  • Video input select 328 coordinates this selection with command I/O interpreter 324 , and video driver 316 .
  • the command I/O interpreter 324 receives keypress information from the remote control 22 , and sends key commands to be output to the IR transmitter 132 .
  • the command input/output interpreter 324 receives user commands such as keypresses from the application 330 .
  • the serial port driver 352 interacts with the serial port subsystem 308 .
  • a serial port subsystem 308 includes RS-232 serial ports 144 a - b and DB-9 connectors 146 a - b .
  • a debug I/F module 354 sends and receives raw bitstreams to and from a serial port driver 352 , which interfaces with the serial port subsystem 308 . If the serial port subsystem 308 includes multiple serial ports, as shown in FIG. 2, the serial port driver 352 interacts with each of the serial ports individually.
  • the serial port subsystem 308 can be used, for example, to control a Digital Satellite System (DSS), or to communicate with the personal computer 24 , external input devices such as a keyboard, or a second digital VCR in a master/host relationship.
  • DSS Digital Satellite System
  • a modem driver 353 is responsible for setting up connections with the modem 148 , sending and receiving data to and from the serial port driver 352 , handling data error detection, correction, or retransmission, and transfer protocols. If the modem 148 is configured to receive incoming calls, then the modem driver 353 decides if the incoming call is directed to the digital VCR 10 .
  • Digital VCR application 330 forwards commands received from the user such as keypresses to a command input/output interpreter 324 .
  • the digital VCR application 330 obtains channel guide information received using the modem 148 .
  • the digital VCR application 330 uses a 2D graphics DLL (Dynamic Link Library) 334 to draw text and graphics on the television screen.
  • the 2D graphics DLL 334 passes rectangular regions of memory containing rendered images to an MPEG decoder driver 338 to display the rendered rectangular regions.
  • a beep DLL 358 configures the beep section of the MPEG decoder driver 338 .
  • the beep DLL 358 is used to make audible “ping” sounds in response to user actions.
  • the digital VCR application 330 sends commands related to recording named content streams to an MPEG encoder streamer 332 , which in turn communicates with an optimized MPEG file system (OMFS) 350 (explained in greater detail below).
  • OMFS MPEG file system
  • the digital VCR application 330 sends VCR-style commands such as play, stop, and rewind to an MPEG decoder streamer 342 .
  • Firewire subsystem 306 includes FireWire Link Layer 150 , FireWire Physical layer 152 , and FireWire ports 154 a - b .
  • a FireWire Driver 344 passes a raw bitstream, received from the FireWire subsystem 306 , to a FireWire stack 346 .
  • the FireWire subsystem 306 can be used to connect multiple digital VCRs together.
  • FireWire Stack 346 can communicate with a DVD file system 356 for retrieving and managing information received from a DVD player, and which can store DVD files on hard drive 142 through IDE driver 348 .
  • the FireWire (IEEE 1394) subsystem 306 includes a high speed serial bus designed to transmit digital audio and video data.
  • the FireWire subsystem 306 can transmit between 100 and 400 million bits-per-second (Mbps), depending on the particular configuration.
  • the FireWire subsystem 306 can be used, for example, to transfer data to and from a PC or a DVD, or to connect the digital VCR 10 to a second digital VCR in a master/slave relationship.
  • Such a combination of two digital VCRs can effectively provide the user with two tuners, a single file system, and two or more hard disk drives or DVDs.
  • the IDE driver 348 controls the hard disk drive 142 .
  • the IDE driver 348 is responsible for generating commands to control the hard disk drive 142 , such as reading or writing disk sectors, formatting the disk, performing diagnostics, or returning status information.
  • the digital VCR application 330 reads and writes from files on the hard disk drive 142 using the OMFS 350 .
  • the digital VCR application 330 optionally performs DVD-related functions (e.g., reading information from a DVD) using the file system 350 .
  • the OMFS 350 instructs the IDE driver 348 to read and write blocks of data to and from the IDE hard disk drive 142 .
  • the OMFS 350 instructs the IDE driver 348 to read blocks of data from a DVD.
  • Other peripheral standards can be employed for disk drive access, such as SCSI instead of IDE.
  • An asynchronous file system (AFS) 351 operates in conjunction with the OMFS 350 to allow asynchronous access to files stored on the hard disk drive 142 .
  • AFS asynchronous file system
  • the asynchronous file system 351 immediately after the streamers 332 , 342 make a request to the asynchronous file system 351 to perform a file function (e.g., read or write), control returns to the streamers, allowing them to continue streaming.
  • the asynchronous file system 351 notifies the requesting streamer. This allows the streamers 332 , 342 to perform other functions while the asynchronous file system 351 is performing file-related operations.
  • An MPEG encoder streamer 332 writes MPEG-encoded data to the OMFS 350 .
  • An MPEG decoder streamer 342 reads MPEG-encoded data from the OMFS 350 , and reads MPEG-encoded DVD data from the file system 350 .
  • the encoder streamer 332 and decoder streamer 342 are described in more detail below.
  • the MPEG decoder driver 338 controls the MPEG decoder 156 , which produces an NTSC or PAL video signal from digital video data.
  • the MPEG decoder driver 338 also controls the audio DAC 158 to produce outgoing audio.
  • the MPEG encoder driver 336 controls the MPEG encoder 114 , which encodes the digital video data from the Micronas NTSC decoder 110 into an MPEG-2 video stream.
  • the encoder 114 can support the MacroVision copy protection scheme, as described above.
  • the digital VCR 10 uses the OMFS 350 to read and write files from the hard disk drive 142 .
  • Such files include MPEG audio and video streams, preference files, and files containing channel guide information.
  • the OMFS 350 minimizes disk fragmentation by efficiently streaming MPEG data to and from the hard disk drive 142 .
  • the hard disk drive 142 includes a number of disks, also referred to as platters, that spin together. Each platter has one read/write head for each surface that is being used. Each surface has a number of concentric tracks that are grouped together in a number of zones, and each zone is divided into a number of sectors per track. Each sector stores a fixed number of bytes of information (e.g., 512 bytes). For example, the 4.3 Gb Quantum Fireball ST drive has 6 surfaces, 15 zones, and 7066 tracks per surface. The inside zone has 143 sectors per track, and the outside zone has 239 sectors per track.
  • the files stored on the hard disk drive 142 include MPEG program streams, database files, preferences files, and program code files.
  • the MPEG program streams can contain recorded broadcast data, stored as MPEG-2 Program System Streams, with video and audio Packetised Elementary Streams (PES) multiplexed together.
  • Preferences files can contain data describing the way in which the user has configured the system, such as the preferred encoding bit rate, favorite channels, and personal channels.
  • Program code files contain binary code for applications, system modules, DLLs, etc.
  • the OMFS 350 supports filenames that are long enough to provide differentiation between files, e.g., 16 characters.
  • the OMFS 350 can use “circular” files to store one or more rewind buffers. Such files are allocated a fixed amount of contiguous disk space upon their creation. Information is written to such a file contiguously starting from the beginning of the allocated block of disk space. When the end of the block is reached, writing resumes at the beginning of the block. Alternatively, the OMFS 350 can store the rewind buffer in a non-circular file that is allocated a fixed amount of contiguous space (e.g., enough space to hold 15 minutes of video), but which allows that contiguous space to vary across the disk.
  • a fixed amount of contiguous space e.g., enough space to hold 15 minutes of video
  • Data is written to the file until the allocated amount of space is used up, at which point data continues to be written to further areas dynamically assigned to the file, while data is deleted from the beginning of the file (and that area is dynamically de-assigned).
  • the rewind buffer would contain a file which contains 15 minutes of contiguous data corresponding to minutes 5 through 20 of the show.
  • the file system 350 pre-allocates space on the hard disk drive 142 for files when the files are created. Contiguous blocks of space are allocated if at all possible. For example, if the digital VCR 10 is about to record a 30-minute television show, the file system 350 creates a new file and allocates sufficient space on the hard disk drive 142 to store 30 minutes of video. This allows data to be streamed to the hard disk drive 142 contiguously and without the need to allocate additional space for the file as the show is being recorded.
  • Each file stored on the hard disk drive 142 has an attribute field associated with it which indicates whether the file can be deleted and whether the file is read-only.
  • the MPEG decoder 342 either hides or recovers from the errors. In order to hide the effects of disk errors, duplicate copies of important files (such as program code files) are stored on the hard disk drive 142 . If the OMFS 350 notices that a file has become corrupt, the system software 300 can use the duplicate copy of the file. Furthermore, the OMFS 350 can recognize bad sectors on the hard disk drive 142 and marks those sectors so that they are not used in the future.
  • the amount of movement of the hard disk drive's read/write head is reduced in order to reduce seek time from the hard disk drive 142 .
  • One way to reduce read/write head movement is to use file caches. Data that is being written by the MPEG encoder 114 is stored in a cache before being written to the hard disk drive. If this data is needed by the MPEG decoder 156 shortly after it has been written to the cache, the data can be read from the cache instead of from the hard disk drive 142 .
  • Each MPEG PES packet contains the same number of bytes as a sector on the hard disk drive 142 (e.g., 512 bytes). This allows the MPEG streamers 332 and 342 to read and write whole sectors at a time. The sectors on a single track of the hard disk drive 142 can only be used to store data from a single file. This can simplify allocation of sectors to files, because it allows the OMFS 350 to allocate multiple sectors at a time to a file. As data is written to the OMFS 350 by the MPEG Encoder subsystem 114 , each PES packet is marked with its position in the MPEG file before the data is sent to the IDE driver 348 . This allows the OMFS 350 to determine whether a packet being requested can be retrieved from a cache rather than from the hard disk drive 142 .
  • the OMFS 350 uses n caches, where each cache has enough space to store an entire disk sector (PES packet).
  • n is calculated such that when the digital VCR 10 is simultaneously recording and playing back the same file, the sector requested by the MPEG decoder subsystem 156 is cached and is ready to be written to the hard disk drive 142 , but is not yet written.
  • the OMFS 350 uses a defragmentation application to defragment the hard disk drive 142 periodically (e.g., each night at a time when the digital VCR 10 is typically not in use, or when a file is deleted).
  • the defragmentation application can be part of the OMFS 350 or be a separate application that communicates with the OMFS 350 .
  • one digital VCR is considered the “master” unit and the other unit is considered the “slave” unit.
  • the slave unit is recording a live show while the master unit is being used to watch (and also record) a live television show on another channel. If the hard disk drive of the master unit is full, but there is space available on the slave's hard disk drive, then the master unit stores the video stream from its current channel onto the slave's hard disk drive.
  • the digital VCR 10 can receive user commands from a number of different sources. Possible sources of user input include the IR detector 134 (for receiving remote control keypresses), the modem 148 (for, e.g., receiving commands to record a television show), a pager (for, e.g., receiving commands to record a television show), a universal serial bus (for receiving input from a keyboard or mouse), or a microphone (for receiving voice commands). All user commands are routed through the command input/output interpreter 324 . In this way, the digital VCR application 330 receives a single command input stream regardless of the input devices from which the inputs originate.
  • the all commands output by the digital VCR 10 to external devices are output through the command input/output interpreter 324 , which forwards the command to the appropriate external devices in a suitable format.
  • the 2D graphics DLL 334 produces graphics overlays to display on-screen user interface elements such as the channel guide display 500 .
  • the MPEG decoder 109 is capable of overlaying a 2D image on top of the underlying MPEG video, using 2, 4, or 8 bits per pixel.
  • the digital VCR 10 includes a realtime clock that keeps the current time of day and the current date.
  • the realtime clock is used to display the current time to the user and to determine when a scheduled show is to be recorded.
  • the realtime clock can be set by the user or be set automatically by reading data from line 21 of the VBI signal (via VBI data interpreter 322 and VBI driver 318 ) or by downloading time information from a server using, e.g., the modem 148 .
  • the “MPEG subsystem” refers to the MPEG encoder streamer 332 , the MPEG decoder streamer 342 , the MPEG decoder driver 338 , and the MPEG audio/video decoder device drivers 336 a - b .
  • Each of these components of the MPEG subsystem runs as a separate thread. This allows the MPEG subsystem to take advantage of features such thread prioritization. For example, the threads allow multiple data streaming activities (such as recording and playback) to be interwoven and to appear to the user to be occurring simultaneously.
  • the MPEG encoder 114 and MPEG decoder 156 encode and compress audio and video data, multiplex the compressed data together, save the multiplexed data stream to the hard drive 142 , and simultaneously load another multiplexed data stream from the hard disk drive 142 , demultiplex it, and decompress and display the audio and video data contained in it.
  • the streamers 332 and 342 provide an abstract interface to the encoder 114 and decoder 156 , respectively. As a result, if the encoder 114 and/or decoder 156 are replaced with other devices, only the drivers 336 and 338 need be modified or replaced while the rest of the system software 300 remains intact.
  • the MPEG encoder subsystem includes the encoder streamer 332 , the video encoder device driver, and the audio encoder device driver, each of which run as separate threads.
  • the MPEG encoder subsystem controls the MPEG encoder 114 to encode the incoming broadcast signal, encapsulate the video and audio data into an MPEG-2 program stream, and save the program stream to the hard disk drive 142 , without losing any data.
  • the two device drivers are responsible for initializing the hardware, enabling direct memory access (DMA) transfers from the hardware into RAM buffers, handling errors, and handling interrupts.
  • DMA direct memory access
  • the encoder streamer 332 is responsible for ensuring that the device drivers have sufficient buffer space into which the hardware can write the encoded data, packetising the elementary streams from the encoders, multiplexing the audio and video PES data together, capturing data from the VBI, and writing data to the OMFS 350 .
  • the components of the MPEG encoder subsystem respond to external commands to stop and start recording, change the recording bit rate, change the encoding resolution, save the current stream position as a bookmark, and respond to other user actions.
  • the MPEG encoder driver 336 (1) performs hardware initialization, such as setting up the encoder 114 to handle the input data resolution and timing, and setting encoding parameters such as bit rate, (2) performs interrupt handling, (3) controls DMA transfers, used to transfer encoded data from the encoder 114 into RAM buffers, and (4) inserts data into the user-data part of the PES header.
  • the MPEG encoder streamer 332 ensures that the two device drivers 336 and 338 have sufficient buffer space so that the encoder stream does not stall.
  • the MPEG encoder streamer 332 also acts as an interface to the digital VCR application 330 to control encoding parameters and actions.
  • the “MPEG decoder subsystem” refers to the decoder streamer 342 and the MPEG decoder driver 338 , each of which runs as a separate thread.
  • the decoder subsystem controls the MPEG decoder 156 to decode encoded MPEG data and to display the resulting video frames synchronized to the decoded audio, without dropping any video frames.
  • the rate of decompression and display is managed by the decoder 156 , which decodes both audio and video MPEG data, and synchronize the video to the audio. Therefore, the decoder 156 synchronizes the video and audio using Presentation Time Stamp (PTS) values present in the video and audio streams.
  • PTS Presentation Time Stamp
  • the decoder driver 338 is responsible for initializing the hardware, enabling DMA transfers to the hardware from RAM buffers, handling errors, and handling interrupts.
  • the decoder streamer 342 is responsible for ensuring that the device driver 338 is provided with data when necessary, which involves reading the data from the hard disk drive 142 , parsing PES packets to determine if the data is audio or video, extracting extra information (such as Closed Captioning) from the video packets, and sending the data to the decoder driver 338 .
  • the components of the MPEG decoder subsystem respond to external commands to control the decoder 156 , such as VCR-style commands to stop, start, pause, forward, reverse, and jump to random positions in the video stream.
  • the decoder streamer 342 instructs the MPEG decoder driver 338 to stop decoding.
  • the MPEG decoder driver 338 instructs the MPEG decoder 156 to stop decoding.
  • the MPEG decoder 156 stops decoding, the data that has been read from the hard disk drive 142 will be queued by the MPEG decoder driver 338 to the MPEG decoder 156 , and the empty buffers that have been queued to the OMFS will be filled.
  • the MPEG decoder streamer 342 instructs the MPEG decoder 156 to decode and display every n frames, where n is greater than 1.
  • MPEG video contains “I” frames, “B” frames, and “P” frames.
  • An I frame contains data descriptive of a complete frame of video.
  • An I frame is followed by a number of B frames and P frames. Information in the B frames and P frames is used to modify the preceding I frame to generate subsequent frames.
  • the MPEG decoder 156 is instructed to stop decoding, all of the data queued to the decoder 156 is flushed, and the decoder 156 is put into I-frame only mode (in which it decodes only I frames, skipping all B and P frames).
  • the decoder streamer 342 and MPEG decoder driver 338 flush all of their buffers.
  • the decoder streamer 342 then starts seeking backwards in the video stream until it identifies the beginning of the previous I frame.
  • the decoder streamer 342 streams forward again, as in play mode, to show at least one complete I frame to the viewer, until it finds the next non-I frame, at which point it starts searching backwards again, past the last found I frame, to the next prior I frame.
  • This procedure synthesizes an I frame by I frame rewind with MPEG data.
  • the “current time” is the time on the digital VCR's internal clock, reflecting the actual time.
  • the “current channel” refers to the channel to which the digital VCR 10 is currently tuned.
  • the current channel can be a live television channel or a recorded channel, as described below. If the current channel is a live television channel, the “current show” is the television show being played on the current channel at the current time.
  • the remote control 22 includes, for example, the following buttons.
  • a Power button 400 toggles the digital VCR 10 between “on” mode and “sleep” mode, as described with respect to the On/Off button 136 described above.
  • a TV Power button 401 turns the television 18 on and off.
  • a Rewind button 402 , Play button 404 , Fast Forward button 406 , Record button 408 , Pause button 410 , and Live TV (Stop) button 412 perform VCR-like functions on live television channels and recorded television shows, as described in more detail below.
  • An Ad Skip button 414 skips to the end of a commercial when a recorded video stream is being played.
  • An Instant Replay button 416 rewinds the currently playing video stream by a predetermined amount and then resumes playing.
  • a Channel Up button 418 and a Channel Down button 420 change digital VCR channels, as described below.
  • the user can also tune to a channel by entering the channel number using numeric keys 422 - 238 and pressing an Enter button 440 .
  • a Volume Up button 442 and a Volume Down button 444 can increase and decrease the volume of the digital VCR's audio output, or can increase and decrease the audio volume of the television 18 directly.
  • a Mute button 446 temporarily suspends audio output from the digital VCR 10 .
  • Cursor keys 460 - 466 are used to navigate through on-screen menus, as described below.
  • a Menu button 452 displays a main menu from which sub-menus can be selected.
  • a Guide button 450 causes a channel guide display to be displayed on screen, and a Display button 448 causes an on-screen display to be displayed on-screen, as described below.
  • a Select button 256 is used to select choices in on-screen menus, as described below.
  • a Replay Guide button 454 causes a replay menu to be displayed on-screen. Alternatively, the replay menu can be displayed by pressing the Play button 404 while a show is playing.
  • a Cancel button 458 is used to remove menus from the screen and to cancel choices made by the user.
  • Channels on a television correspond to channels that are broadcast by television networks.
  • a “digital VCR channel,” in contrast, can correspond to any video stream.
  • a digital VCR channel can correspond to, for example, a traditional television channel (i.e., a broadcast VHF/UHF channel), a pay-per-view broadcast, a video stream from a recorded video source such as a VCR, or a video stream recorded by the digital VCR 10 on the hard disk drive 142 .
  • the digital VCR 10 maintains a single channel list. Each channel in the channel list has a unique channel number and corresponds either to a live television channel or to recorded content.
  • Channel numbers can, for example, be four-digit numbers, the first digit of which indicates the source of the channel.
  • channels 1000 through 1999 can correspond to cable television channels
  • channels 2000 through 2999 can correspond to DBS channels.
  • Channels corresponding to content that has been recorded using the digital VCR 10 on the hard disk drive 142 can correspond to channel numbers 3000 through 3999.
  • This arrangement provides the user with a single list of channels regardless of the number of video sources to which the digital VCR 10 is connected.
  • one channel list can correspond to channels received from live television sources, and a second channel list can correspond to personal channels.
  • a channel guide database 326 stores information about channels and the video streams associated with them.
  • the channel guide database contains information about upcoming television shows that are scheduled to be broadcast on live television channels.
  • Channel guide information for channels from live video sources can be downloaded periodically from the cable TV or DBS provider, or from an online service using the modem 148 .
  • Some television stations broadcast program information in the VBI signal using, for example, extended data service (XDS).
  • XDS extended data service
  • channel guide information need not be separately downloaded, since the channel guide information can be derived from the VBI.
  • the channel guide database can be stored on the hard disk drive 142 , in dynamic RAM (DRAM) 174 , or on other suitable computer-readable media.
  • the channel guide database For each live television channel, the channel guide database includes program listings describing the shows that will be playing on the channel.
  • the channel guide database can contain information about each show, such as the title of the show, the show's start time and end time, descriptions of topics to which the show relates, and other information such as the names of actors who appear in the show.
  • a channel guide display 500 presents the user with a visual representation of information contained in the channel guide database and of content recorded in personal channels.
  • the information about content recorded about personal channels that is displayed by the channel guide display 500 is derived from the show information that is recorded in the personal channels.
  • the user causes the channel guide display 500 to appear on the screen by pressing the Guide button 450 on the remote control 22 .
  • the channel guide display 500 can be transparently or opaquely displayed over the video of the current channel, while the audio of the current channel is still playing.
  • a channel list display 502 displays the channel numbers and names of a subset of the channels in the channel list, including live television channels, channels corresponding to recorded video sources, and personal channels.
  • a show display 504 presents a list of television shows that are scheduled to air on live television channels and shows that have been recorded on recorded channels.
  • the channel guide display 500 indicates that channel number 1003 corresponds to the Turner Broadcasting System (TBS), which is a live television channel.
  • TBS Turner Broadcasting System
  • An episode of “Scooby Doo” is playing on TBS from 8:30 pm until 9:00 pm
  • an episode of “Car Crashes” is playing on TBS from 9:00 pm until 9:30 pm.
  • Channel number 1009 corresponds to content recorded on the VCR 15 .
  • the user selects channel 1009 and presses the Play button 404 on the remote control 22 .
  • the digital VCR 10 selects the VCR 15 as the current video source and forwards the play command to the VCR 15 .
  • the play command can be forwarded to the VCR 15 using, for example, the IR transmit 132 or FireWire ports 154 a - b to send a signal to the VCR 15 .
  • Channel 1010 corresponds to a personal channel named “Finance,” which will be described in more detail below.
  • the channel list display can be centered around the current channel, or the current channel can be at the top of the channel guide display 500 .
  • the user can scroll through the channel guide display 500 using cursor keys on the remote control 22 in order to view channel guide information for other channels or to view show information for other times.
  • the user can use the cursor buttons 460 - 466 on the remote control 22 to highlight shows. Highlighting a show can cause additional information about the show to be displayed in an on-screen display 508 . For example, as shown in FIG. 5, an episode of “Scooby Doo” has been highlighted.
  • the on-screen display 508 displays information about the highlighted episode, such as its title, duration, start and end times, a brief description, and the network on which it is being broadcast. If the digital VCR 10 is displaying part of a television show while the television show is being recorded, the on-screen display 508 also contains information about the relation of the content being displayed to the current time. For example, the on-screen display 508 can indicate that the content being displayed is five minutes behind the current time or in sync with the current time.
  • the channel guide display 500 also contains additional information such as the current time 510 and a filter bar 512 which displays filtering information.
  • Filtering information can include, for example, a television show title, an actor's name, or a keyword. If, for example, the user specifies as filtering information that the user is only interested in watching recorded shows with the word “sports” in their titles, the filter bar 512 displays the word “sports” and the digital VCR 10 replays only recorded content with a title containing the word “sports.” If the user has not specified any filtering information, the filter bar can, for example, be empty or display the word “Channels,” and the digital VCR 10 displays all content on the current channel. Other information, such as the video source from which channels originate, can also be displayed by the channel guide display 500 .
  • the channel guide display 500 initially shows channels in the channel list display 502 in sequential order, and displays shows in the show list display 504 in chronological order
  • channels and shows can be arranged in other ways. For example, shows can be sorted by category, or the user's favorite channels can be grouped together. Shows sharing category information can be displayed using the same color.
  • the channel number that is associated with a channel can be changed using the channel guide display 500 by highlighting the current channel number in the channel list display 502 using the cursor buttons 460 - 466 , pressing an appropriate button on the remote control 22 , and following on-screen prompts for changing the channel number.
  • the user can also create a list of “favorite channels” which can be grouped together in the channel guide display 500 and can be navigated sequentially using the remote control's Channel Up button 418 and Channel Down button 420 .
  • the user can (1) highlight a show in the show display list 504 using the cursor buttons 460 - 466 and press the Select button 256 on the remote control 22 , causing the tuner 108 to tune to the selected show and the selected show to be displayed on the screen; (2) highlight an upcoming show and display its show information in the on-screen display 508 ; (3) select a channel from the channel list display 502 , causing the tuner 108 to tune to the channel and display the channel's channel information; (4) highlight a show in the show list display 504 using the cursor buttons 460 - 466 and press the Record button 408 on the remote control 22 to mark the selected show to be recorded; or (5) press the Cancel button 258 on the remote control 22 to remove the channel guide display 500 from the screen.
  • buttons on the remote control 22 as follows.
  • the Channel Up button 418 and Channel Down button 420 page up and down through the channel list, respectively. If a show in the show list display 504 is highlighted, pressing the Cursor Up button 460 and Cursor Down button 462 moves the hotspot to the show directly above or directly below the hotspot's current position, respectively. If a channel in the channel list display 502 is highlighted, pressing the Cursor Up button 460 and Cursor Down button 462 highlights the channel directly above or below the currently highlighted channel, respectively.
  • pressing the Select button 256 on the remote control 22 performs different functions depending on which element of the channel guide display 500 is current highlighted. If a show that is currently being broadcasted is highlighted, pressing the Select button 256 tunes to the show and removes the channel guide display 500 from the screen. If a show that is not currently being received from a live video source is highlighted, a list of options is displayed (e.g., tune to the highlighted show's channel, record one episode of the highlighted show, record all episodes of the highlighted show). If a channel in the channel list display 502 is highlighted, pressing the Select button 256 brings up the channel options display.
  • the user can record one or more episodes of a show by highlighting an episode of the show using the cursor buttons 460 - 466 and pressing the Record button 408 on the remote control 22 .
  • Pressing the Record button 408 schedules a single episode of the show and causes a single circle to appear next to the name of the show in the show list display 504 .
  • the user has selected to record a single episode of “ER”, which is indicated by a single circle 514 .
  • Pressing the Record button 408 a second time schedules all upcoming episodes of the show to be recorded and causes a double circle to appear next to the name of the show in the show list display 504 .
  • FIG. 5 the user has selected to record a single episode of “ER”, which is indicated by a single circle 514 .
  • the user has selected to record all upcoming episodes of “The Big Help”, which is indicated by a double circle 516 .
  • Pressing the Record button 408 a third time cancels scheduled recording of the show and removes the double circle from the show's name in the show list display.
  • the digital VCR 10 notifies the user of the conflict using an on-screen display. The user can then (1) view the channel guide listing for the conflicting show; (2) record the currently-selected show instead of the conflicting show; or (3) cancel recording of the selected show.
  • a user can create a personal channel on which to record content received from the attached video sources satisfying specified record criteria. For example, a user might create a “Finance” personal channel whose record criteria specify all episodes of the shows “Moneyline” and “Your Money.”
  • the digital VCR 10 records all subsequent episodes of “Moneyline” and “Your Money” received from video sources attached to the digital VCR 10 by comparing the record criteria to information contained in the channel guide database 326 .
  • the digital VCR records the episode by storing the episode's video and audio streams on the hard disk drive 142 along with additional information about the episode, such as the time at which it aired and other information obtained from the channel guide database 326 .
  • the digital VCR 10 can begin recording a show at a selected time (e.g., three minutes) before the show is scheduled to be broadcast and stop recording the show at a selected time after the show is scheduled to finish broadcasting.
  • a selected time e.g., three minutes
  • the digital VCR 10 can begin playing the show back beginning from the point at which the show was scheduled to be recorded, rather than from the actual beginning of the recording.
  • the digital VCR 10 can record beginning at 8:57 pm and stop recording at 9:33 pm.
  • the digital VCR 10 can play back the recorded video stream beginning at the point in the video stream corresponding to 9:00 pm. The user can then rewind or fast forward the video stream to begin playback at the actual beginning of the show, as necessary.
  • the digital VCR 10 can record episodes of a television show even if the show is rescheduled after the personal channel is created. Similarly, the digital VCR can record episodes of a show that are aired on multiple live television channels. Furthermore, the digital VCR 10 can determine (by comparing channel guide information for a show that is scheduled to be recorded onto a personal channel with channel guide information for shows that are already recorded on a personal channel) that a show that is scheduled to be recorded onto a personal channel is already stored on the personal channel and/or has already been viewed by the user. In such a case the digital VCR 10 can cancel recording of the show.
  • the digital VCR 10 can notify the user that the show has been recorded.
  • the digital VCR can notify the user with an on-screen display, by sending the user an e-mail message (using, e.g., the modem 148 ), using an audible signal (e.g., “A new show has been recorded), or by a pager message over a broadcast pager network.
  • each personal channel is a channel number in the channel list.
  • the “Finance” channel is assigned channel number 1010, and is displayed in the channel list display 502 like any other channel.
  • the user tunes to the personal channel's channel number using the remote control 22 , or selects the personal channel's channel number in the channel list display 502 .
  • the user can select the episode in the show list display 504 using the cursor keys 460 - 466 .
  • the first episode recorded on the channel i.e., the episode of “Moneyline” recorded on June 1 at 9 pm
  • the user stops watching the “Finance” personal channel and subsequently returns to the “Finance” personal channel display begins where the user was last viewing.
  • Each personal channel has a name.
  • the name can be specified by the user, or can be automatically generated by the digital VCR 10 .
  • the digital VCR 10 can use the name of the current show (derived from the channel guide database 326 ) as the name of the personal channel, or the digital VCR 10 can generate a name for the personal channel based on the personal channel's record criteria.
  • Record criteria for a personal channel can include criteria such as show title, keyword (e.g., actor, director), show category, description text, and rating. For example, a user can specify that all shows named “National Geographic” be recorded on a personal channel.
  • a show name can be selected by entering the name of the show using real or virtual alphanumeric keys, by selecting a show from the Channel Guide grid, by selecting a show name from an alphabetized list of every known show in the channel database, or by selecting a show name from a hierarchical directory of shows.
  • Record criteria can be combined by, for example, using boolean operators such as “and” and “or.”
  • An actor or director name can be selected using real or virtual alphanumeric keys, by selecting an actor or director name from a list of every actor or director in the channel database, or by selecting an actor or director name from a movie listing in the channel guide display 500 .
  • Topics can be selected from a list of all topics available in the channel database or from a hierarchical directory of topics or show categories.
  • Other record criteria can be specified for a personal channel.
  • the user can specify a record stack size for a personal channel.
  • the personal channel already contains more video content than specified by the record stack size, the oldest show in the personal channel is replaced with the new show to be recorded.
  • the user can specify a record priority for a personal channel.
  • the lower-priority show is deleted to make room for the new show to be recorded.
  • the user can specify that the oldest content recorded on a personal channel be deleted when necessary to make room for new content.
  • the user can specify ratings for a personal channel, such as movie ratings or show quality ratings, in which case only shows with the specified ratings will be recorded on the personal channel.
  • the user can specify that only shows which satisfy specified V-chip ratings are to be recorded on the personal channel.
  • the system can gather v-chip information from the VBI signal to determine whether a show satisfies the selected ratings or not.
  • the user can specify a rerun preference for a personal channel which determines which combination of new broadcasts, reruns, and syndicated re-runs of a show will be recorded on the personal channel. For example, the user can specify that reruns of a show are not to be recorded. Similarly, the user can specify that only shows that the user has not previously viewed and/or recorded should be recorded.
  • the digital VCR 10 can determine which shows the user has previously viewed by storing channel guide information for each show that the user watches.
  • the channel guide information received by the digital VCR 10 can include segment information describing segments of television shows.
  • segment information for a news broadcast might indicate where each news story in the broadcast begins and ends, and might include descriptive information (e.g., keywords) describing the content of the news stories. If the segment information for a segment matches the record criteria for a personal channel, the digital VCR 10 can record the segment onto the personal channel.
  • the user can specify the quality (in, e.g., megabits per second) at which content should be recorded on a personal channel.
  • the user can also specify that a particular number of episodes of a show are to be recorded on a personal channel.
  • the user can be notified of the hard disk space that will be needed to store all shows that are scheduled to be recorded on the personal channel. If the amount of room needed exceeds the available space on the hard disk drive 142 , the user can be given the option of canceling creation of the personal channel or, for example, deleting existing content to make room for the personal channel.
  • Matches between the record criteria specified for a personal channel and the information contained in the channel database can be made either by requiring an exact match or on a “fuzzy match” basis.
  • a “fuzzy match” algorithm might allow, for example, matches between words with similar but not identical spellings.
  • Record criteria can be compared against closed captioning data in addition to or instead of channel guide information. For example, if the user includes the word “apple” as a search criterion, the digital VCR 10 can record content whose closed captioning data includes the word “apple.” In such a situation, the digital VCR 10 can record the entire show in which the word “apple” appears or can, for example, record a portion of the show surrounding the occurrence of the word “apple.”
  • the digital VCR 10 can be manufactured or otherwise pre-configured with one or more personal channels.
  • the digital VCR 10 can contain a pre-configured “Finance” channel for recording all episodes of “Moneyline” and “Your Money.”
  • the digital VCR 10 can also create personal channels automatically based on demographic data provided by the user or based on the user's viewing habits as observed by the digital VCR 10 .
  • the digital VCR 10 can create a personal channel for recording all sporting events occurring in the user's geographic region based on the zip code provided by the user during initial configuration, or from information contained in content broadcast (or otherwise sent) to the digital VCR 10 (e.g., in channel guide information).
  • the digital VCR 10 can also, for example, create a “Seinfeld” personal channel if the user regularly watches and/or records episodes of “Seinfeld.”
  • TV shows can be scheduled to be recorded in other ways.
  • the user can specify a show to be recorded on a personal channel by specifying the show's start time, end time, live television channel, and a recording quality.
  • the digital VCR 10 can keep track of television shows that the user watches regularly. After identifying such shows, the digital VCR 10 can ask the user whether future episodes of such shows should be recorded, or the digital VCR 10 can automatically schedule future episodes of such shows to be recorded on one or more personal channels.
  • the digital VCR can identify shows that can be of interest to the user by, for example, comparing channel guide information for upcoming shows to channel guide information for shows that the user has previously watched and/or recorded.
  • the user can be notified by, for example, an on-screen message, an e-mail message, or a notification through a pager network.
  • the user can view information about shows that are scheduled to be recorded, shows that are currently being recorded, and shows that have been recorded.
  • the on-screen display 508 can appear and a brief on-screen message can appear indicating that the show being viewed was previously recorded. After the user finishes watching a recorded episode, the user can be presented with a visual prompt asking the user if the episode should be deleted from the personal channel.
  • the user can cause the on-screen display 508 to appear on the screen by pressing the Display button 448 on the remote control 22 .
  • Pressing the Replay Guide button 454 while a personal channel is being viewed brings up the channel guide display 500 , in which only personal channels and the content recorded on them are displayed.
  • the user can select an episode and press the Play button 404 on the remote control 22 to begin playing back the episode either at the beginning of the episode or at the point in the episode where the user previously stopped viewing.
  • the user can select a show by highlighting the show using the cursor keys 422 - 438 and pressing the select button 456 , causing a menu to appear including choices including “Delete selected episode,” “Delete all recorded episodes,” and “Delete viewed portions of recorded episodes.”
  • the user can select a menu choice using the cursor keys 422 - 438 and the Select button 456 .
  • On-screen menus can also display a list of episodes that are scheduled to be recorded on the personal channel. The personal channel can be deleted or temporarily disabled using the on-screen menus.
  • the user configures the digital VCR 10 before its first use.
  • the first part of configuration includes physically connecting all desired video and audio sources to the digital VCR's video and audio inputs, and connecting the digital VCR's video and audio outputs to a video and audio output devices such as the television 18 and speakers. It can be necessary to configure the remote control 22 to work properly with devices that are connected to the digital VCR 10 . Users can also enter additional information such as their zip code, time zone, area code, and cable TV or DBS provider. After the user has entered all necessary information, the digital VCR 10 can scan all channels from connected live video sources and generate the channel list, discarding channels that do not contain a usable signal.
  • the channel list can include channels representing recorded video sources, such as the VCR 15 .
  • An initial channel guide database 326 can be generated by downloading channel guide information into the digital VCR 10 using the modem 148 , cable TV cable 12 , or some other means.
  • Channel guide information can be downloaded only for those channels which the user receives. For example, if the user only subscribes to channels 1-20 from a cable television provider, the digital VCR 10 can download channel guide information from the cable service provider only for channels 1-20, rather than for the entire set of channels provided by the cable service provider.
  • the channel guide database 326 can periodically be updated by the digital VCR 10 by downloading updated channel guide information. The user can specify times at which the channel guide database 326 is to be updated.
  • An internal clock within the digital VCR 10 can be set to the current time manually, or the internal clock can be set automatically using, for example, information contained within downloaded channel guide information.
  • the digital VCR 10 can display a tutorial video contained on the hard disk drive 142 containing usage instructions.
  • the tutorial video can be displayed automatically the first time the digital VCR 10 is configured.
  • the tutorial video can be deleted after being watched by the user, either automatically or in response to user instruction.
  • the user can optionally perform additional configuration. For example, after an initial channel list has been generated, the user can modify the association of channel numbers in the channel list with channels received from the connected live video sources. For example, the user can specify that channel 1 in the channel list is to be associated with channel 7 from a connected television antenna and that channel 2 in the channel list is to be associated with channel 23 from a connected cable TV cable. In this way, the user can, for example, place the most frequently-used channels together at the beginning of the channel list. The user can add or delete channels from the channel list.
  • the user can block access to specified channels using a specified password in order to prevent children from watching inappropriate channels, for example.
  • Blocked channels are skipped when accessed sequentially, but cause an on-screen message (e.g., “This channel is blocked: Please enter password.”) to be displayed if the blocked channel is tuned to directly.
  • the digital VCR 10 always spools the current show to a rewind buffer that is stored on the hard disk 142 .
  • the user can configure the length of the rewind buffer, which can be, for example, 15 minutes long by default.
  • the user can specify default recording qualities with which shows are to be recorded into the rewind buffer and into personal channels.
  • the user can watch live television using the digital VCR 10 by tuning to a live television channel using the remote control 22 .
  • the user can tune directly to a live television channel by entering the channel number using numeric keys 422 - 238 on the remote control 22 , by using Channel Up button 418 and Channel Down button 420 on the remote control 22 , or by selecting a channel in the channel guide display 500 .
  • the digital VCR 10 continuously spools the current show's video and audio streams to a rewind buffer stored on the hard disk drive 142 .
  • the current show is spooled to the rewind buffer even if the user is not watching the current show, such as when the user is watching a VHS tape.
  • the digital VCR 10 can have a second tuner in addition to the tuner 108 , in which case one live television channel (referred to as a primary channel) can be spooled to the rewind buffer while the user watches a secondary live television channel. Similarly, if channel guide information is broadcast on the VBI of a single television channel, channel guide information can be received on one television channel while the user is viewing another live television channel.
  • a primary channel referred to as a primary channel
  • channel guide information can be received on one television channel while the user is viewing another live television channel.
  • the channel number and station description or channel name are displayed transparently over the channel's video stream.
  • the station's call letters can be retrieved from the VBI Extended Data Service (XDS or EDS) information or from the channel guide database 326 . Show information, such as the name of the show being viewed and the amount of time left, can also be displayed. The on-screen display can last for a few seconds and then be removed. If the channel is being recorded, the channel's underlying video and audio streams are recorded without the transparent station description and/or channel name. Similarly, other transparent displays described herein (e.g., the channel guide display 500 ) are not recorded even when the video over which they are displayed is recorded. However, the information itself is typically recorded along with the video stream for database storage and subsequent retrieval and display.
  • the digital VCR 10 is in one of several “interface states” that define what options the user has.
  • the current interface state depends on what type of channel is being viewed and on whether the system is recording a personal channel.
  • the name of the current interface state can be displayed transparently over the currently playing video stream for a few seconds whenever the current interface state changes.
  • the interface states include:
  • Live a live television channel is being displayed and being recorded into the rewind buffer.
  • Delayed part of a recorded show is playing back from the rewind buffer while the remainder of the show is being recorded.
  • Non-viewable the selected channel cannot be displayed.
  • Information a non-video channel designed to present information, advertising, or web-style menus.
  • transitions between interface states occur as follows.
  • the interface state becomes Live 600 a .
  • the show being displayed on the current channel is recorded into the rewind buffer.
  • the user can use the Channel Up button 418 and Channel Down button 420 on the remote control 22 to change the current channel, and can tune directly to a channel by entering the channel number using the numeric keys 422 - 238 on the remote control 22 .
  • the user tunes to a personal channel (step 606 )
  • the personal channel is displayed and the interface state becomes Personal 600 c .
  • step 610 If the user tunes to an information channel (step 610 ), the information channel is displayed and the interface state becomes Information 600 e . If the user tunes to a non-viewable channel (step 612 ), a message is displayed on-screen notifying the user that the channel is non-viewable and the interface state becomes Non-Viewable 600 f.
  • Pressing the Record button 408 on the remote control 22 during the Live interface state can cause the digital VCR 10 to display an on-screen menu from which the user can choose to record either the current episode of the current show or all episodes of the current show.
  • pressing the Record button 408 during the Live interface state can cause the digital VCR 10 to begin recording the current show, and pressing the Record button 408 again can cause the digital VCR 10 to schedule recording of all upcoming episodes of the current show.
  • the digital VCR 10 (1) assigns a personal channel to the current channel; (2) saves the data that has been recorded in the rewind buffer, so that the entire show being viewed on the current channel can be recorded, and (3) changes the interface state to Recording 600 d .
  • the digital VCR 10 can ask the user whether to record a single episode of the current show or all future episodes of the current show. If all future episodes of the current show are to be recorded, the digital VCR 10 can schedule recording of future shows by, for example, using the channel guide database 326 to determine which show is currently being broadcast and then scheduling future episodes of the same show to be recorded.
  • Pressing the Rewind button 402 on the remote control 22 during the Live interface state (step 604 ): (1) rewinds the video that has been recorded in the rewind buffer, while the current show continues to be recorded into the rewind buffer, and (2) changes the interface state to Delayed 600 b .
  • Pressing the Rewind button 402 again or the Play button 404 initiates delayed playback of the content stored in the rewind buffer.
  • Pressing the Pause button 402 on the remote control 22 during the Live interface state causes the currently displayed frame to be frozen on-screen while the current show continues to be recorded into the rewind buffer, and changes the interface state to Delayed 600 b.
  • the interface state when the interface state is Delayed, the current show continues to be recorded into the rewind buffer.
  • the user can attempt to change channels using the Channel Up button 418 or the Channel Down button 420 on the remote control 22 . If the user attempts to tune to a live television channel and the digital VCR 10 has only one tuner, the user can be presented with a message saying that a delayed show is being viewed and instructing the user that the Live TV button 412 must be pressed to change to the Live interface state in order to change channels.
  • the digital VCR 10 can display the channel number onscreen and change the interface state to Non-Viewable. If the user tunes to a personal channel (step 618 ), the selected personal channel can become the current channel and the interface state becomes Personal. If the user presses the Rewind or Fast Forward button 406 during the Delayed interface state, the delayed video will be rewound or fast forwarded, respectively. If the user presses the Pause button 410 during the Delayed interface state, the delayed video being displayed is paused.
  • the delayed video will resume playing at the point at which the video was paused. In the latter case, the video can resume playing at normal speed, or at an increased rate in order to let the user “catch up” with the content currently being broadcast.
  • the Live TV (Stop) button 412 during the Delayed interface state step 620
  • the current show will be displayed at the current time, and the interface state becomes Live.
  • Pressing the Record button 408 during the Delayed interface state causes the Rewind buffer to be saved and the interface state to become Recording. The user can record a single episode or all episodes of the current show as described above.
  • the interface state is Personal. This differs from the Recording interface state, which corresponds to watching a show that is still in the process of being recorded.
  • the digital VCR 10 can either be recording a show from any channel or not recording.
  • the interface state is Personal, the user can tune to another channel using the Channel Up button 418 and Channel Down buttons 420 or by directly tuning to a channel using the numeric keys 422 - 438 .
  • the current position of the live television program is stored for future use while the program continues to be recorded onto the personal channel. This allows the user to return to the personal channel and continue watching the television program from the point where the user left off.
  • the user tunes to another personal channel step 624
  • the interface state remains Personal. If the user tunes to a live television channel (step 626 ), the interface state becomes Live. If the user tunes to an Information Channel (step 628 ), the interface state becomes Information.
  • Pressing the Rewind button 402 , Fast Forward button 406 , or Pause button 410 while in the Personal interface state causes the personal channel being viewed to rewind, fast forward, or pause, respectively.
  • the Play button 404 is pressed while the personal channel is paused, the personal channel continues playing from the point at which it was paused. If the Play button 404 is pressed while the personal channel is playing, the replay guide is displayed.
  • the Live TV (Stop) button 412 is pressed while in the Personal interface state 600 c and the digital VCR 10 is not recording a personal channel (step 630 ), the digital VCR 10 tunes to the last viewed live television channel, and the interface state becomes Live.
  • the Live TV (Stop) button 412 is pressed during the Personal interface state and the digital VCR 10 is recording a personal channel (step 632 ), the digital VCR 10 tunes to the channel that is being recorded, and the interface state becomes Recording.
  • the interface state is Recording. If the digital VCR 10 finishes recording the show while in the Recording interface state (step 634 ), the interface state changes to Live. If the user presses the Channel Up button 418 or Channel Down button 420 while in the Recording interface state, the current channel changes to the next or the previous viewable channel. While in the Recording interface state, a live television channel cannot be viewed if the digital VCR 10 has only one tuner. Therefore, while in the Recording interface state, live television channels can not be viewable.
  • Pressing the Channel Up button 418 or Channel Down button 420 can therefore skip unviewable channels and display the next or previous viewable channel, respectively.
  • the digital VCR 10 can display the channel number of the non-viewable channel on-screen and change the interface state to Non-Viewable.
  • the interface state becomes Personal. If the user tunes to an information channel while in the Recording interface state (step 640 ), the interface state becomes Information.
  • the current channel will resume playing. If the user presses the Live TV (Stop) button 412 during the Recording interface state (step 642 ), the current channel will be displayed at the current time and the interface state will become Live, allowing the user to watch live television.
  • top Live TV
  • the digital VCR 10 can reserve one or more channels, referred to as “information channels,” for displaying information to the user.
  • an information channel can display an advertisement, notice, or e-mail to the user.
  • the interface state is Information. If the user tunes to an information channel while in the Information interface state (step 642 ), the interface state remains Information. If the user tunes to a personal channel while in the Information interface state (step 644 ), the digital VCR 10 tunes to the personal channel and the interface state becomes Personal. If the user tunes to a viewable live television channel while in the Information interface state (step 646 ), the digital VCR 10 tunes to the live television channel and the interface state becomes Live. If the user tunes to a non-viewable channel while in the Information interface state (step 648 ), the interface state becomes Non-Viewable.
  • the interface state becomes Non-Viewable.
  • the digital VCR 10 has only one tuner, and the user tunes to a live television channel while another channel is being recorded, the interface state becomes Non-Viewable.
  • the channel guide information for the non-viewable channel can be displayed on the on-screen display 508 against a dark background along with a message telling the user why the current channel cannot be viewed.
  • the digital VCR 10 can provide the user with the option of canceling the recording of the channel that is being recorded.
  • the user presses the Channel Up button 418 or Channel Down button 420 while in the Non-Viewable interface state, the current channel will be changed to the next or previous viewable channel, respectively.
  • the digital VCR 10 tunes to the personal channel and the interface state becomes Personal.
  • the digital VCR 10 displays the information channel and the interface state becomes Information.
  • the interface state remains Non-Viewable.
  • step 656 If the user tunes to a viewable live television channel while in the Non-Viewable interface state (step 656 ), the digital VCR 10 tunes to the live television channel and the interface state becomes Live. If the user presses the Play button 404 while the interface state is Non-Viewable, the replay guide is displayed.
  • a graphical show selector is moved up or down, respectively, allowing the user to select a personal channel to watch.
  • the Cursor Up button 460 and Cursor Down button 462 perform the same functions as the Channel Up button 418 and Channel Down button 420 , respectively.
  • the Select button 256 chooses the selected personal channel as the current channel and begins playing the personal channel.
  • the user can designate a channel to be a “primary channel.” If, for example, the user is watching a channel that has been designated as a primary channel, the content of the channel is spooled to the rewind buffer. If the user tunes to another channel, the contents of the primary channel continue to be spooled to the rewind buffer. The channel to which the user tunes can be spooled to a second rewind buffer. When the user returns to the primary channel, the user can resume watching the primary channel at the point where the user left off or at the current time. In the latter case the user can rewind the primary channel in order to view portions of the primary channel content that were received while the user was watching other channels. Furthermore, if the user is viewing a channel other than the primary channel, the digital VCR 10 can notify the user when the end of a commercial or the end of a series of commercials have been detected on the primary channel.
  • the techniques described above can be implemented in special-purpose circuitry, general-purpose circuitry (such as programmable microprocessors) operating under the control of program instructions, or in any combination of such apparatus.
  • the techniques are not limited to any particular circuitry or program configuration; they can find applicability in any computing or processing environment that can be used for digital recording and playback of video and audio streams.
  • the techniques can be implemented in computer programs executing on programmable circuitry that can include a processor, a storage medium readable by the processor (including volatile or non-volatile memory and/or storage elements), one or more input device, and one or more output devices.
  • Program code can be applied to data entered using the input device to perform the functions described and to generate output information.
  • the output information can be applied to the one or more output devices.
  • Each program described above can be implemented in a high level procedural or object oriented programming language to communicate with a computer system.
  • the programs can be implemented in assembly or machine language, if desired.
  • the language can be a compiled or interpreted language.
  • Each such program can be stored on a storage medium or device (e.g., DVD, CD-ROM, hard disk or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document.
  • a storage medium or device e.g., DVD, CD-ROM, hard disk or magnetic diskette
  • the system can also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
  • the digital VCR 10 can have one or more tuners in addition to the tuner 108 . Such additional tuners can allow the user to, for example, watch one live television channel while another live television channel is being recorded.
  • the digital VCR 10 can receive audio and/or video in digital form. Any digital audio or video received by the digital VCR 10 need not be digitized by the decoder 109 or the codec 124 .
  • Video can be received in NTSC, PAL, HDTV, or any other broadcast standard format.
  • the digital VCR 10 can display video output on a high-definition television (HDTV).
  • HDTV high-definition television
  • the digital VCR 10 displays output on an HDTV or another digital video output device, the digital VCR 10 need not be converted into analog form before being output.
  • Channel guide information can be received by, for example, the modem 148 or from the VBI.
  • Video can be output in component video format.
  • Digital audio can be output in formats other than SPDIF.
  • the digital VCR 10 can include a DBS tuner to allow the digital VCR to perform the functions of a DBS receiver.

Abstract

Apparatus and corresponding methods for storing video information. The apparatus includes a means for receiving video information, a means for converting the received video information into digital video information, and a means for storing the digital video information. Converting the received video information into digital video information can include converting it into an MPEG-compatible digital format. The apparatus can include an MPEG-compatible digital encoder, which can include separate audio and video MPEG encoders. The digital video information can be stored on an electromagnetically writable disk drive with an optimized MPEG file system (OMFS) configured to receive the digital video information and store the digital video information on the disk drive, where the OMFS is configured to divide the received digital video information into one or more packets, each packet having the same number of bytes as a sector on a disk in the disk drive. The OMFS can first accumulate one of the packets of digital video information in a cache memory. The OMFS, upon filling the cache memory with a completed packet of digital video information, then stores the completed packet on a single one of the sectors of the disk drive.

Description

    BACKGROUND OF THE INVENTION
  • The present invention relates to digital recording and playback of audio and video streams. [0001]
  • Conventional video cassette recorders (VCRs) record in analog form a video stream received from a video source (e.g., a cable TV cable) onto a tape (e.g., a VHS tape). One way to record a video stream using a conventional VCR is to press a Record button, causing the VCR to begin recording the incoming video stream. The VCR continues recording until the user presses a Stop button. To schedule recording of a video stream (e.g., an upcoming episode of a television show), the user typically indicates the start time, end time, and television channel of the episode. The VCR begins recording the video stream received on the specified channel at the specified start time and stops recording at the specified end time. To play back a video stream recorded with a VCR, the user inserts the tape on which the video stream is recorded into the VCR, positions the tape to the beginning of the recorded video stream using Rewind and Forward buttons, and presses a Play button. Typically, a user must wait until recording has completed before a video stream can be played back. [0002]
  • A user who has access to live video sources such as a television antenna, a cable TV cable, or a Direct Broadcast Satellite (DBS) dish, and to recorded video sources such as a VCR or a camcorder, may connect the outputs of one or more such video sources to a conventional receiver. The user also connects a video display such as a television monitor to the receiver. The user can select which video source is to be output to the television monitor using controls provided by the receiver. For example, to view the output of the VCR (e.g., the contents of a VHS tape) on the television monitor, the user presses a “VCR” button on the receiver. To control the various video sources that are connected to the receiver (e.g., to tune to a particular channel from among the channels received through the television antenna), the user typically uses controls, such as remote controls, associated with the various video sources. Furthermore, each live television source typically has its own set of channels with its own numbering system. Channel numbers used by different live television sources may or may not overlap, and different video sources may or may not associate the same channel number with another channel which contains the same content (e.g., channels which correspond to the same television network). [0003]
  • Some live television providers, such as DBS and some cable systems, provide additional information within the video streams they provide. For example, some systems provide information about upcoming television shows, such as the times at which they are scheduled to air and the channels on which they appear. Some systems display such information using an on-screen menu that displays the times at which upcoming shows will be aired. [0004]
  • SUMMARY OF THE INVENTION
  • In general, in one aspect, the invention features apparatus and corresponding methods for storing video information. The apparatus includes a means for receiving video information, a means for converting the received video information into digital video information, and a means for storing the digital video information. Implementations of the invention can include one or more of the following advantageous features. Converting the received video information into digital video information includes converting it into an MPEG-compatible digital format. The means for converting the received video information into digital video information includes an MPEG-compatible digital encoder. The MPEG-compatible digital encoder includes separate audio and video MPEG encoders. The means for storing the digital video information includes an electromagnetically writable disk drive, and an optimized MPEG file system (OMFS) configured to receive the digital video information and store the digital video information on the disk drive. The disk drive includes one or more electromagnetic disks, each electromagnetic disk divided into one or more sectors having a fixed number of bytes storable on each sector; and the OMFS is configured to divide the received digital video information into one or more packets, each packet having the same number of bytes as a sector on a disk in the disk drive. The OMFS first accumulates one of the packets of digital video information in a cache memory. The OMFS, upon filling the cache memory with a completed packet of digital video information, then stores the completed packet on a single one of the sectors of the disk drive. The means for converting the received video information into digital video information includes an MPEG-compatible software encoder streamer which couples to the MPEG-compatible digital encoder to convert the received video information. The apparatus further includes a means for reading the stored the digital video information. The means for reading includes an MPEG-compatible digital decoder. The MPEG-compatible digital decoder includes separate audio and video MPEG decoders. The means for reading includes an MPEG-compatible software decoder streamer which couples to the MPEG-compatible digital decoder to convert the stored digital video information into video information suitable to be displayed on a television monitor. The OMFS is configured to defragment the disk drive periodically. The OMFS is configured to determine periodically poor sectors on the disk drive and prevent writing to the poor sectors. [0005]
  • Advantages of the invention may include one or more of the following. A user can exercise centralized control over multiple video sources. For example, by merging the live television channels provided by multiple live television sources such as television antennas, cable TV cables, and DBS dishes, a user can navigate a single contiguous list of channels. This simplifies the user's television viewing experience by, for example, allowing the user to select television channels using a single remote control and reducing or eliminating any confusion regarding content received from different television stations using the same channel number. More generally, the user is provided with the appearance of a single virtual video source, regardless of the number of video sources (live or recorded) that are connected to a digital VCR. Interacting with multiple video sources through a single consistent interface greatly simplifies the tasks performed by the user, such as recording television shows and selecting channels to view. [0006]
  • A user can also exercise VCR-style control over live television shows. For example, if the incoming video stream is recorded into a rewind buffer, the user can effectively “rewind” a live television show simply by pressing a Rewind button. The live television show continues to be recorded while it is being “rewound.” This allows the user to re-watch parts of a live television show before the show is over. Similarly, the user can pause a live television show by pressing a Pause button. Even while paused, the live television show continues to be recorded. This allows the user to pause a live television show to perform other activities, and then resume watching the remainder of the television show even before the show is over. The ability to play back part of a show while the show is being recorded can also allow a user who sits down to watch a television show after it has begun being recorded to simply press the Play button to begin playing back the show from the beginning, even while the remainder of the show is still airing and being recorded. [0007]
  • A user can specify a show to record based on the content of the show and information associated with the show, rather than merely on the time at which the show airs and the channel on which it is received. For example, the user can specify that all episodes of a television show with a particular title be recorded. Specifying shows to be recorded by content can simplify the process of recording shows because it does not require the user to know when a show will be aired, or on what channel it will air, or from which video source it will be received. Furthermore, recording by content can reduce the probability that a show of interest to the user will fail to be recorded. If, for example, the show specified by the user is delayed or rescheduled, it can still be recorded. Recording by content also allows both new episodes of a television show broadcast on one channel and re-runs of the show broadcast on a different channel to be recorded easily. [0008]
  • Also, show information can be stored along with each recorded show. Such show information may include, for example, the name of the show, the time at which it aired, the channel on which it aired, and a description of the show. As a result, show information associated with a show can be displayed on-screen when a user plays back a recorded show. Furthermore, recording show information along with recorded shows can simplify the process of locating recorded shows. The user may, for example, be provided with an informative list of shows that have been recorded from which a show to view may be selected. The user need not keep an external record of which shows have been recorded and where they are located. Furthermore, stored show information may be used in conjunction with channel guide information to allow recording only those episodes of a television show which have not been previously recorded or which the user has not previously viewed. [0009]
  • Storage space can be managed efficiently by, for example, configuring the digital VCR to only retain in storage a certain number of recorded episodes of a particular television show. When the maximum number of episodes of a television show have been recorded, recorded episodes may be deleted from storage to make room for subsequent episodes. This both increases the likelihood that sufficient storage space will be available to record new shows, and relieves the user of managing storage space. [0010]
  • Other features and advantages of the invention will become apparent from the following description and from the claims.[0011]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a digital VCR and devices connected to the digital VCR. [0012]
  • FIG. 2 is a block diagram of digital VCR circuitry. [0013]
  • FIG. 3 is a block diagram of digital VCR system software. [0014]
  • FIG. 4 is a block diagram of a digital VCR remote control. [0015]
  • FIG. 5 is a block diagram of a channel guide display. [0016]
  • FIGS. [0017] 6A-F are block diagrams of transitions between interface states.
  • DETAILED DESCRIPTION
  • Referring to FIG. 1, a digital VCR [0018] 10 acts as a central station for recording and playback of analog and digital audio and video. Live video sources, such as a cable TV cable 12, a broadcast television antenna 14, and a DBS dish 26, recorded video sources such as a video cassette recorder (VCR) 15, and audio sources such as a CD player 16 may be connected to inputs of the digital VCR 10. A remote control 22 and on-screen menus displayed by the digital VCR 10 on the television 18 may be used to select audio and video from one or more of the attached audio and video sources to be output to a single display device such as the television 18. In this way, the user may control all connected audio and video devices using a simple, natural, and unified interface provided by the digital VCR 10. For example, when viewing content that has been pre-recorded externally, such as content recorded on a VHS tape, commands such as fast forward and rewind received from the digital VCR's remote control 22 may be forwarded by the digital VCR 10 to the VCR 15. Alternatively, the remote control 22 can, for example, send commands such as fast forward and rewind directly to the VCR 15. In general, the user issues all commands using the remote control 22, which either forwards the commands directly to the appropriate devices, or forwards the commands to the digital VCR 10, which in turn forwards the commands to the appropriate devices.
  • The digital VCR [0019] 10 includes a modem 148 (FIG. 2) (RC336ACFA) which is connected to a telephone line 20 and which may be used to send and receive information about upcoming television shows and other information, as described in more detail below. The digital VCR 10 can be controlled by keys on a front panel, by a remote control 22, or by an external device such as a personal computer 24.
  • Referring to FIG. 2, the digital VCR [0020] 10 includes circuitry 100. Video is input to the digital VCR 10 from one of a number of sources. Cable-ready input is received in analog form from cable TV cable 12 or from antenna 14 at one or more RF-in inputs 102. The RF-in input 102 is coupled to a tuner 108 (Philips FI1236). If the RF-in input 102 is connected to the output of a standard cable TV set-top box, which outputs a single channel on channel 3, for example, the tuner 108 is tuned to channel 3. Otherwise, the tuner 108 can be adjusted to select a channel from among the channels present in the input received at the RF-in input 102. Composite video inputs 104 a-b receive composite video input from, e.g., a camcorder. An S-video input 106 receives S-video input from, e.g., the DBS dish 26.
  • The signals received at the video inputs [0021] 102, 104 a-b, and 106 are input to a Micronas National Television Standards Committee (NTSC) decoder 109 (VPX3225). The decoder 109 selects which one of the signals received at its inputs will be delivered at its output 110. The decoder 109 digitizes the selected input and outputs the digitized signal at its output 110 in CCIR (Comité Consultatif International des Radiocommunications) 601 format, with a typical resolution of 720×480 pixels. The decoder 109 may be used to reduce the resolution of the input signal by outputting a digitized signal with a smaller number of pixels. The decoder 109 also includes a First In First Out (FIFO) buffer for buffering video.
  • The digitized video signal output at the output [0022] 110 of the decoder 109 is input to a Field Programmable Gate Array (FPGA) Blank and Automatic Gain Control (AGC) Detector 112 and to a Sony Moving Pictures Experts Group 2 (MPEG-2) realtime video encoder 114 (CXD1922Q). The MPEG-2 encoder 114 compresses the digitized video from output 110, and outputs the compressed digitized video on its outputs 116, 118. The MPEG-2 encoder 114 is capable of performing automatic scene detection, i.e., when the video on output 110 changes from one scene to another, the MPEG-2 decoder 114 resets itself and restarts compression at the beginning of the new scene. The MPEG-2 decoder 114 also adjusts the number of bits of video that it compresses per second, based on how much the input signal is changing. In other words, as the amount of change in the input signal increases, the number of bits per second in the compressed output increases. This is referred to as variable bit rate compression.
  • The FPGA [0023] 112 is programmed to detect blank frames in the digitized video signal on output 110. Blank frame detection is used to determine when commercials in a television signal begin and end. For example, the occurrence of multiple consecutive blank frames is a possible indication that a commercial is beginning or ending. Furthermore, if the video portion of the digitized video signal 110 contains blank frames, but the corresponding audio portion of the signal 110 is not silent, a commercial is most likely not occurring. Detection of silent blank frames as representing the start (and end) of commercials can be further enhanced by determining if one such set of silent blank frames is followed some number of seconds (e.g., 30 or 60) by another such set of silent blank frames. The FPGA 112 contains a luma (brightness) threshold register whose value is set by a central processing unit (CPU) 140. The FPGA 112 also contains a counter register. As each video frame is read by the FPGA 112, the FPGA 112 stores in the counter register a count of the number of pixels in the video frame whose intensity value is below the value of the luma threshold register. The CPU can read that count, and determine if the value of the counter register is below a predetermined minimum value after a predetermined number of frames, such that a commercial is determined to have begun.
  • Some video streams are specially encoded using Macrovision's copy protection scheme in a way that allows the video stream to be displayed correctly on a television, but which causes massive signal degradation if the video stream is recorded onto a video tape. Such encoded video streams can come from a pre-recorded video tape, a laser disc, a DVD (Digital Video (or Versatile) Disk), or from a broadcast such as a premium cable channel or a pay-per-view movie. The FPGA [0024] 112 is used to detect the presence of Macrovision copy protection in the signal on output 110. If Macrovision copy protection is detected, then the signal is tagged to indicate that it is copy protected. When a data stream is read from storage (e.g., to play back a recorded television show), copy protection is added to the data stream using the NTSC encoder 304 (FIG. 3) if the data stream is tagged.
  • Audio input is received either through the tuner [0025] 108, through line 1 inputs 120 a-b, or through line 2 inputs 122 a-b. All received audio signals are input to a Micronas Audio Codec (compressor/decompressor) 124 (MSP3430G). The codec 124 selects the output of the tuner 108, the line 1 inputs 120 a-b, or the line 2 inputs 122 a-b. The codec 124 digitizes the selected audio signal(s). If the output of the tuner 108 is selected, the codec 124 also performs “stereo decoding,” i.e., separates the right and left channel of the audio signal.
  • The resulting digitized audio signal is output on line [0026] 126, where it is input to an Analog Devices Digital Signal Processor (DSP) 128 (ADSP2185). The DSP 128 compresses the received digitized audio signal using MPEG-1, layer 2 compression.
  • An IR (infrared) microcontroller [0027] 130 (SX18AC/DP) sends and receives infrared signals to and from devices such as a television remote control or a set-top cable box. The IR microcontroller transmits infrared signals using an IR transmitter 132, and receives infrared signals using an IR detector 134. The IR microcontroller also detects when the user has pressed an On/Off button 136. The On/Off button 136 toggles the digital VCR 10 between “on” mode and “sleep” mode. When in “on” mode, the digital VCR 10 is fully functional. When in “sleep” mode, the digital VCR 10 can perform just a subset of its functions and can consume less power than when in “on” mode. When in “sleep” mode, however, the digital VCR 10 still performs such functions as recording scheduled shows and downloading channel guide information. Furthermore, when the On/Off button 136 is pressed, the IR microcontroller 130 tests the CPU 140 to determine if the system software running on the CPU 140 has crashed. If the system software has crashed, the IR microcontroller 130 resets the CPU. IR microcontroller 130 can also output IR encoded signals via S-link output 131.
  • The central processing unit (CPU) [0028] 140 (one can use a Philips CPU adapted to function with Philips MPEG-2 decoder SAA7201H, described further below, or another suitable CPU) controls various operations of the digital VCR 10. CPU 140 runs application programs, controls streaming of audio and video, selects the states input select switches in FPGA 112 and the codec 124, and performs other functions, as described in more detail below. The digitized audio output by the DSP 128 and the digitized audio output by the MPEG-2 encoder 114 are stored on a hard disk drive 142. The hard disk drive 142 uses a file system that is described in more detail below.
  • Serial ports [0029] 144 a-b receive and send serial data according to the RS-232 standard. Although as shown in FIG. 2 the serial ports 144 a-b connect to external devices using DB-9 connectors 146 a-b, other appropriate connectors can be used. The serial ports 144 a-b can be used, for example, to control a DBS receiver. A device such as personal computer 24 can be connected to the digital VCR 10 through the serial ports 144 a-b to control the digital VCR 10. The modem 148 connects to the telephone line 20 (FIG. 1) through a Data Access Arrangement (DAA) 149 and a telephone jack. The modem 148 can be used, for example, to download channel guide information. Channel guide information can also be contained within the vertical blanking interval (VBI) of the video input signal, or received through a broadcast pager network. If the digital VCR 10 is connected to a DBS receiver, channel guide information can be obtained from the received DBS signal.
  • A FireWire link layer [0030] 150 (PDI1394L11), FireWire physical layer 152 (PDI1394P11), and FireWire ports 154 a-b allow the digital VCR 10 to send and receive digital video according to the IEEE 1394 standard. Additional hard disk drives can be connected to the digital VCR 10 through the ports 154 a-b to provide additional storage capacity. The ports 154 a-b can also be used to connect the digital VCR 10 to another digital VCR. If two digital VCRs are connected to each other via ports 154 a-b, the two digital VCRs can recognize each other's presence. One digital VCR recognizes itself as the “master” and is connected to the television 18, and the other digital VCR recognizes itself as the “slave.” The “slave” ignores all IR commands intended for the “master.” The two digital VCRs present a single unified interface to the user, effectively allowing the user to use the two digital VCRs as if they were a single digital VCR with two tuners and the combined disk space of the two individual digital VCRs. When the two digital VCRs are disconnected from each other, they revert to their regular functioning and operate independently. High-definition television (HDTV) signals can also be sent and received through the ports 154 a-b.
  • Audio and video output are transmitted over a high-speed bus to a Philips MPEG-2 decoder [0031] 156 (SAA7201H). The decoder 156 receives a combination of audio and video referred to as a “program stream” from the CPU 140. The decoder 156 decompresses the program stream, sends the decompressed audio to an audio digital-to-analog converter (DAC) 158 (TDA1311) and to a Philips NTSC (and PAL) encoder 157 (SAA7120) which then sends the decompressed and now re-encoded video on a Y line 160 a and a C line 160 b to a video filter 162 (ML6428), which filters the decompressed re-encoded video to improve its quality. The decoder 156 also sends digitized decompressed audio in Sony Philips Digital Interface (SPDIF) format (represented by block 159) to a SPDIF output port 161.
  • Analog audio signals are output by the audio DAC [0032] 158 to line 1 out ports 164 a-b and line 2 out ports 166 a-b. Filtered video signals are output to composite video outputs 168 a-b and to S-Video output 170. A Boot read-only memory (ROM) 172 contains startup object code that begins executing when the digital VCR 10 is turned on. The code in the Boot ROM causes the digital VCR 10 to load system software object code from the hard disk drive 142 into a DRAM 174 and to execute that code, causing the digital VCR 10 to begin normal operation. The DRAM 174 also stores temporary data used by the system software. SDRAMs 176 a and 176 b are used by the MPEG encoder 114 and the MPEG decoder 156 to store data as it is being compressed and decompressed, respectively.
  • Referring to FIG. 3, the digital VCR [0033] 10 is controlled by system software 300. Kernel 310 is an operating system or a part of an operating system that can reside in the Boot ROM 172 and which is used to control basic functions of the digital VCR 10 system software 300. Kernel 310 is based upon the MQX kernel produced by Precise Technology. Kernel 310 supports such features as preemptive multitasking, message passing, interrupt handling, list management, and dynamic link library (DLL) handling.
  • In general, the device drivers (i.e., the I[0034] 2C driver 312, the IR driver 314, the serial port driver 352, the modem driver 353, the FireWire driver 344, the IDE driver 348, the MPEG encoder driver 336, and the MPEG decoder driver 338) are responsible for communicating with and directly controlling the hardware components of the digital VCR 10. The device drivers isolate the components of the system software 300 from the particular hardware devices used to implement the digital VCR 10 so that the system software 300 need not be modified if different hardware components are used.
  • The I[0035] 2C bus 360 is a 2-wire bus (comprising wires 141 a and 141 b) that connects the IR subsystem 302, the tuner 108, the NTSC decoder 109, and the NTSC encoder 304 together. The I2C driver 312 provides arbitration to the bus 360 for communicating with these devices.
  • The IR driver [0036] 314 is responsible for reading data from the IR detector 134, and for sending infrared signals to other components using the IR transmitter 132. For example, the IR driver 314 convert bitstreams received through the I2C driver 312 into information describing which keys (if any) have been pressed on the remote control 22.
  • The IR data interpreter [0037] 320 receives a raw bitstream of IR data from the IR driver 314 and converts the bitstream into meaningful keypress values. It also receives outgoing device control information (i.e., information about commands to control external devices) and converts the device control information into a bitstream that is output to the IR transmitter 132 through the IR driver 314.
  • IR subsystem [0038] 302 includes the IR transmitter 132 and IR detector 134 (FIG. 2). The IR subsystem 302 receives information from and transmits information to I2C driver 312 which handles I2C buses 0 and 1 (141 a and 141 b). IR driver 314 receives bitstreams representing keypresses on the remote control 22 from the I2C driver 312.
  • An IR data interpreter [0039] 320 uses bitstreams from the IR driver 314 to determine which keys (if any) on the remote control 22 have been pressed, and converts commands for controlling external hardware into IR bitstreams.
  • An NTSC encoder [0040] 304 encodes outgoing video signals in NTSC format. In FIG. 2, the NTSC encoding function is performed by the combination of the MPEG-2 decoder 156 and the video filter 162. A VideoSrc DLL 316 uses the I2C driver 312 to control the NTSC decoder 109 and the NTSC encoder 304, and to tune the tuner 108 to desired channels.
  • A VBI driver [0041] 318 receives information encoded within the VBI received from video driver 316, and VBI data interpreter 322 decodes and interprets that data as necessary.
  • A video input select module [0042] 328 selects what video source (e.g., broadcast, cable, conventional VCR, etc.) is currently being used by digital VCR application 330. Video input select 328 coordinates this selection with command I/O interpreter 324, and video driver 316.
  • The command I/O interpreter [0043] 324 receives keypress information from the remote control 22, and sends key commands to be output to the IR transmitter 132. The command input/output interpreter 324 receives user commands such as keypresses from the application 330.
  • The serial port driver [0044] 352 interacts with the serial port subsystem 308. A serial port subsystem 308 includes RS-232 serial ports 144 a-b and DB-9 connectors 146 a-b. A debug I/F module 354 sends and receives raw bitstreams to and from a serial port driver 352, which interfaces with the serial port subsystem 308. If the serial port subsystem 308 includes multiple serial ports, as shown in FIG. 2, the serial port driver 352 interacts with each of the serial ports individually. The serial port subsystem 308 can be used, for example, to control a Digital Satellite System (DSS), or to communicate with the personal computer 24, external input devices such as a keyboard, or a second digital VCR in a master/host relationship.
  • A modem driver [0045] 353 is responsible for setting up connections with the modem 148, sending and receiving data to and from the serial port driver 352, handling data error detection, correction, or retransmission, and transfer protocols. If the modem 148 is configured to receive incoming calls, then the modem driver 353 decides if the incoming call is directed to the digital VCR 10.
  • Digital VCR application [0046] 330 forwards commands received from the user such as keypresses to a command input/output interpreter 324. The digital VCR application 330 obtains channel guide information received using the modem 148. The digital VCR application 330 uses a 2D graphics DLL (Dynamic Link Library) 334 to draw text and graphics on the television screen. The 2D graphics DLL 334 passes rectangular regions of memory containing rendered images to an MPEG decoder driver 338 to display the rendered rectangular regions.
  • A beep DLL [0047] 358 configures the beep section of the MPEG decoder driver 338. The beep DLL 358 is used to make audible “ping” sounds in response to user actions. The digital VCR application 330 sends commands related to recording named content streams to an MPEG encoder streamer 332, which in turn communicates with an optimized MPEG file system (OMFS) 350 (explained in greater detail below). The digital VCR application 330 sends VCR-style commands such as play, stop, and rewind to an MPEG decoder streamer 342.
  • Firewire subsystem [0048] 306 includes FireWire Link Layer 150, FireWire Physical layer 152, and FireWire ports 154 a-b. A FireWire Driver 344 passes a raw bitstream, received from the FireWire subsystem 306, to a FireWire stack 346. Furthermore, the FireWire subsystem 306 can be used to connect multiple digital VCRs together. FireWire Stack 346 can communicate with a DVD file system 356 for retrieving and managing information received from a DVD player, and which can store DVD files on hard drive 142 through IDE driver 348.
  • The FireWire (IEEE 1394) subsystem [0049] 306 includes a high speed serial bus designed to transmit digital audio and video data. The FireWire subsystem 306 can transmit between 100 and 400 million bits-per-second (Mbps), depending on the particular configuration. The FireWire subsystem 306 can be used, for example, to transfer data to and from a PC or a DVD, or to connect the digital VCR 10 to a second digital VCR in a master/slave relationship. Such a combination of two digital VCRs can effectively provide the user with two tuners, a single file system, and two or more hard disk drives or DVDs.
  • The IDE driver [0050] 348 controls the hard disk drive 142. For example, the IDE driver 348 is responsible for generating commands to control the hard disk drive 142, such as reading or writing disk sectors, formatting the disk, performing diagnostics, or returning status information.
  • The digital VCR application [0051] 330 reads and writes from files on the hard disk drive 142 using the OMFS 350. The digital VCR application 330 optionally performs DVD-related functions (e.g., reading information from a DVD) using the file system 350. The OMFS 350 instructs the IDE driver 348 to read and write blocks of data to and from the IDE hard disk drive 142. The OMFS 350 instructs the IDE driver 348 to read blocks of data from a DVD. Other peripheral standards can be employed for disk drive access, such as SCSI instead of IDE.
  • An asynchronous file system (AFS) [0052] 351 operates in conjunction with the OMFS 350 to allow asynchronous access to files stored on the hard disk drive 142. For example, immediately after the streamers 332, 342 make a request to the asynchronous file system 351 to perform a file function (e.g., read or write), control returns to the streamers, allowing them to continue streaming. When the requested file function is complete, the asynchronous file system 351 notifies the requesting streamer. This allows the streamers 332, 342 to perform other functions while the asynchronous file system 351 is performing file-related operations.
  • An MPEG encoder streamer [0053] 332 writes MPEG-encoded data to the OMFS 350. An MPEG decoder streamer 342 reads MPEG-encoded data from the OMFS 350, and reads MPEG-encoded DVD data from the file system 350. The encoder streamer 332 and decoder streamer 342 are described in more detail below.
  • The MPEG decoder driver [0054] 338 controls the MPEG decoder 156, which produces an NTSC or PAL video signal from digital video data. The MPEG decoder driver 338 also controls the audio DAC 158 to produce outgoing audio.
  • The MPEG encoder driver [0055] 336 controls the MPEG encoder 114, which encodes the digital video data from the Micronas NTSC decoder 110 into an MPEG-2 video stream. The encoder 114 can support the MacroVision copy protection scheme, as described above.
  • The digital VCR [0056] 10 uses the OMFS 350 to read and write files from the hard disk drive 142. Such files include MPEG audio and video streams, preference files, and files containing channel guide information. The OMFS 350 minimizes disk fragmentation by efficiently streaming MPEG data to and from the hard disk drive 142.
  • The hard disk drive [0057] 142 includes a number of disks, also referred to as platters, that spin together. Each platter has one read/write head for each surface that is being used. Each surface has a number of concentric tracks that are grouped together in a number of zones, and each zone is divided into a number of sectors per track. Each sector stores a fixed number of bytes of information (e.g., 512 bytes). For example, the 4.3 Gb Quantum Fireball ST drive has 6 surfaces, 15 zones, and 7066 tracks per surface. The inside zone has 143 sectors per track, and the outside zone has 239 sectors per track.
  • The files stored on the hard disk drive [0058] 142 include MPEG program streams, database files, preferences files, and program code files. The MPEG program streams can contain recorded broadcast data, stored as MPEG-2 Program System Streams, with video and audio Packetised Elementary Streams (PES) multiplexed together. Preferences files can contain data describing the way in which the user has configured the system, such as the preferred encoding bit rate, favorite channels, and personal channels. Program code files contain binary code for applications, system modules, DLLs, etc. The OMFS 350 supports filenames that are long enough to provide differentiation between files, e.g., 16 characters.
  • The OMFS [0059] 350 can use “circular” files to store one or more rewind buffers. Such files are allocated a fixed amount of contiguous disk space upon their creation. Information is written to such a file contiguously starting from the beginning of the allocated block of disk space. When the end of the block is reached, writing resumes at the beginning of the block. Alternatively, the OMFS 350 can store the rewind buffer in a non-circular file that is allocated a fixed amount of contiguous space (e.g., enough space to hold 15 minutes of video), but which allows that contiguous space to vary across the disk. Data is written to the file until the allocated amount of space is used up, at which point data continues to be written to further areas dynamically assigned to the file, while data is deleted from the beginning of the file (and that area is dynamically de-assigned). With either method, as an example, after 20 minutes of recording a show into the rewind buffer, the rewind buffer would contain a file which contains 15 minutes of contiguous data corresponding to minutes 5 through 20 of the show.
  • The file system [0060] 350 pre-allocates space on the hard disk drive 142 for files when the files are created. Contiguous blocks of space are allocated if at all possible. For example, if the digital VCR 10 is about to record a 30-minute television show, the file system 350 creates a new file and allocates sufficient space on the hard disk drive 142 to store 30 minutes of video. This allows data to be streamed to the hard disk drive 142 contiguously and without the need to allocate additional space for the file as the show is being recorded.
  • Some files, such as MPEG audio and video files, can be deleted, while other files, such as preferences files and program code files, cannot be deleted. Each file stored on the hard disk drive [0061] 142 has an attribute field associated with it which indicates whether the file can be deleted and whether the file is read-only.
  • If errors occur in MPEG files on the hard disk drive [0062] 142, the MPEG decoder 342 either hides or recovers from the errors. In order to hide the effects of disk errors, duplicate copies of important files (such as program code files) are stored on the hard disk drive 142. If the OMFS 350 notices that a file has become corrupt, the system software 300 can use the duplicate copy of the file. Furthermore, the OMFS 350 can recognize bad sectors on the hard disk drive 142 and marks those sectors so that they are not used in the future.
  • The amount of movement of the hard disk drive's read/write head is reduced in order to reduce seek time from the hard disk drive [0063] 142. One way to reduce read/write head movement is to use file caches. Data that is being written by the MPEG encoder 114 is stored in a cache before being written to the hard disk drive. If this data is needed by the MPEG decoder 156 shortly after it has been written to the cache, the data can be read from the cache instead of from the hard disk drive 142.
  • Other aspects of the OMFS [0064] 350 are as follows. Each MPEG PES packet contains the same number of bytes as a sector on the hard disk drive 142 (e.g., 512 bytes). This allows the MPEG streamers 332 and 342 to read and write whole sectors at a time. The sectors on a single track of the hard disk drive 142 can only be used to store data from a single file. This can simplify allocation of sectors to files, because it allows the OMFS 350 to allocate multiple sectors at a time to a file. As data is written to the OMFS 350 by the MPEG Encoder subsystem 114, each PES packet is marked with its position in the MPEG file before the data is sent to the IDE driver 348. This allows the OMFS 350 to determine whether a packet being requested can be retrieved from a cache rather than from the hard disk drive 142.
  • The OMFS [0065] 350 uses n caches, where each cache has enough space to store an entire disk sector (PES packet). The value n is calculated such that when the digital VCR 10 is simultaneously recording and playing back the same file, the sector requested by the MPEG decoder subsystem 156 is cached and is ready to be written to the hard disk drive 142, but is not yet written.
  • As the hard disk drive [0066] 142 becomes full, it may not be possible to store files on contiguous disk tracks because the file may not fit in any of the available contiguous blocks. This is referred to as fragmentation. The OMFS 350 uses a defragmentation application to defragment the hard disk drive 142 periodically (e.g., each night at a time when the digital VCR 10 is typically not in use, or when a file is deleted). The defragmentation application can be part of the OMFS 350 or be a separate application that communicates with the OMFS 350.
  • If two or more digital VCRs are connected to each other (using, e.g., the FireWire subsystem [0067] 506), one digital VCR is considered the “master” unit and the other unit is considered the “slave” unit. Consider the situation where the slave unit is recording a live show while the master unit is being used to watch (and also record) a live television show on another channel. If the hard disk drive of the master unit is full, but there is space available on the slave's hard disk drive, then the master unit stores the video stream from its current channel onto the slave's hard disk drive.
  • The digital VCR [0068] 10 can receive user commands from a number of different sources. Possible sources of user input include the IR detector 134 (for receiving remote control keypresses), the modem 148 (for, e.g., receiving commands to record a television show), a pager (for, e.g., receiving commands to record a television show), a universal serial bus (for receiving input from a keyboard or mouse), or a microphone (for receiving voice commands). All user commands are routed through the command input/output interpreter 324. In this way, the digital VCR application 330 receives a single command input stream regardless of the input devices from which the inputs originate. Similarly, the all commands output by the digital VCR 10 to external devices, such as a cable TV set-top box or the personal computer 24, are output through the command input/output interpreter 324, which forwards the command to the appropriate external devices in a suitable format.
  • The 2D graphics DLL [0069] 334 produces graphics overlays to display on-screen user interface elements such as the channel guide display 500. The MPEG decoder 109 is capable of overlaying a 2D image on top of the underlying MPEG video, using 2, 4, or 8 bits per pixel.
  • The digital VCR [0070] 10 includes a realtime clock that keeps the current time of day and the current date. The realtime clock is used to display the current time to the user and to determine when a scheduled show is to be recorded. The realtime clock can be set by the user or be set automatically by reading data from line 21 of the VBI signal (via VBI data interpreter 322 and VBI driver 318) or by downloading time information from a server using, e.g., the modem 148.
  • The “MPEG subsystem” refers to the MPEG encoder streamer [0071] 332, the MPEG decoder streamer 342, the MPEG decoder driver 338, and the MPEG audio/video decoder device drivers 336 a-b. Each of these components of the MPEG subsystem runs as a separate thread. This allows the MPEG subsystem to take advantage of features such thread prioritization. For example, the threads allow multiple data streaming activities (such as recording and playback) to be interwoven and to appear to the user to be occurring simultaneously.
  • The MPEG encoder [0072] 114 and MPEG decoder 156 encode and compress audio and video data, multiplex the compressed data together, save the multiplexed data stream to the hard drive 142, and simultaneously load another multiplexed data stream from the hard disk drive 142, demultiplex it, and decompress and display the audio and video data contained in it.
  • The streamers [0073] 332 and 342 provide an abstract interface to the encoder 114 and decoder 156, respectively. As a result, if the encoder 114 and/or decoder 156 are replaced with other devices, only the drivers 336 and 338 need be modified or replaced while the rest of the system software 300 remains intact.
  • The MPEG encoder subsystem includes the encoder streamer [0074] 332, the video encoder device driver, and the audio encoder device driver, each of which run as separate threads. The MPEG encoder subsystem controls the MPEG encoder 114 to encode the incoming broadcast signal, encapsulate the video and audio data into an MPEG-2 program stream, and save the program stream to the hard disk drive 142, without losing any data. The two device drivers are responsible for initializing the hardware, enabling direct memory access (DMA) transfers from the hardware into RAM buffers, handling errors, and handling interrupts. The encoder streamer 332 is responsible for ensuring that the device drivers have sufficient buffer space into which the hardware can write the encoded data, packetising the elementary streams from the encoders, multiplexing the audio and video PES data together, capturing data from the VBI, and writing data to the OMFS 350. The components of the MPEG encoder subsystem respond to external commands to stop and start recording, change the recording bit rate, change the encoding resolution, save the current stream position as a bookmark, and respond to other user actions.
  • The MPEG encoder driver [0075] 336 (1) performs hardware initialization, such as setting up the encoder 114 to handle the input data resolution and timing, and setting encoding parameters such as bit rate, (2) performs interrupt handling, (3) controls DMA transfers, used to transfer encoded data from the encoder 114 into RAM buffers, and (4) inserts data into the user-data part of the PES header. The MPEG encoder streamer 332 ensures that the two device drivers 336 and 338 have sufficient buffer space so that the encoder stream does not stall. The MPEG encoder streamer 332 also acts as an interface to the digital VCR application 330 to control encoding parameters and actions.
  • The “MPEG decoder subsystem” refers to the decoder streamer [0076] 342 and the MPEG decoder driver 338, each of which runs as a separate thread. The decoder subsystem controls the MPEG decoder 156 to decode encoded MPEG data and to display the resulting video frames synchronized to the decoded audio, without dropping any video frames. The rate of decompression and display is managed by the decoder 156, which decodes both audio and video MPEG data, and synchronize the video to the audio. Therefore, the decoder 156 synchronizes the video and audio using Presentation Time Stamp (PTS) values present in the video and audio streams. As data buffers are emptied by the decoder 156, they are passed back up to the decoder streamer 342 in order to be refilled from the data stored on the hard disk drive 142.
  • The decoder driver [0077] 338 is responsible for initializing the hardware, enabling DMA transfers to the hardware from RAM buffers, handling errors, and handling interrupts. The decoder streamer 342 is responsible for ensuring that the device driver 338 is provided with data when necessary, which involves reading the data from the hard disk drive 142, parsing PES packets to determine if the data is audio or video, extracting extra information (such as Closed Captioning) from the video packets, and sending the data to the decoder driver 338.
  • The components of the MPEG decoder subsystem respond to external commands to control the decoder [0078] 156, such as VCR-style commands to stop, start, pause, forward, reverse, and jump to random positions in the video stream. When paused, the decoder streamer 342 instructs the MPEG decoder driver 338 to stop decoding. As a result, the MPEG decoder driver 338 instructs the MPEG decoder 156 to stop decoding. When the MPEG decoder 156 stops decoding, the data that has been read from the hard disk drive 142 will be queued by the MPEG decoder driver 338 to the MPEG decoder 156, and the empty buffers that have been queued to the OMFS will be filled. When fast forwarding, the MPEG decoder streamer 342 instructs the MPEG decoder 156 to decode and display every n frames, where n is greater than 1.
  • MPEG video contains “I” frames, “B” frames, and “P” frames. An I frame contains data descriptive of a complete frame of video. An I frame is followed by a number of B frames and P frames. Information in the B frames and P frames is used to modify the preceding I frame to generate subsequent frames. To rewind, the MPEG decoder [0079] 156 is instructed to stop decoding, all of the data queued to the decoder 156 is flushed, and the decoder 156 is put into I-frame only mode (in which it decodes only I frames, skipping all B and P frames). The decoder streamer 342 and MPEG decoder driver 338 flush all of their buffers. The decoder streamer 342 then starts seeking backwards in the video stream until it identifies the beginning of the previous I frame. When the previous I frame is found, the decoder streamer 342 streams forward again, as in play mode, to show at least one complete I frame to the viewer, until it finds the next non-I frame, at which point it starts searching backwards again, past the last found I frame, to the next prior I frame. This procedure synthesizes an I frame by I frame rewind with MPEG data.
  • Before describing the user operation of the digital VCR, several terms need to be introduced. The “current time” is the time on the digital VCR's internal clock, reflecting the actual time. The “current channel” refers to the channel to which the digital VCR [0080] 10 is currently tuned. The current channel can be a live television channel or a recorded channel, as described below. If the current channel is a live television channel, the “current show” is the television show being played on the current channel at the current time.
  • Referring to FIG. 4, the remote control [0081] 22 includes, for example, the following buttons. A Power button 400 toggles the digital VCR 10 between “on” mode and “sleep” mode, as described with respect to the On/Off button 136 described above.
  • A TV Power button [0082] 401 turns the television 18 on and off. A Rewind button 402, Play button 404, Fast Forward button 406, Record button 408, Pause button 410, and Live TV (Stop) button 412, perform VCR-like functions on live television channels and recorded television shows, as described in more detail below. An Ad Skip button 414 skips to the end of a commercial when a recorded video stream is being played. An Instant Replay button 416 rewinds the currently playing video stream by a predetermined amount and then resumes playing. A Channel Up button 418 and a Channel Down button 420 change digital VCR channels, as described below. The user can also tune to a channel by entering the channel number using numeric keys 422-238 and pressing an Enter button 440. A Volume Up button 442 and a Volume Down button 444 can increase and decrease the volume of the digital VCR's audio output, or can increase and decrease the audio volume of the television 18 directly. A Mute button 446 temporarily suspends audio output from the digital VCR 10. Cursor keys 460-466 are used to navigate through on-screen menus, as described below. A Menu button 452 displays a main menu from which sub-menus can be selected. A Guide button 450 causes a channel guide display to be displayed on screen, and a Display button 448 causes an on-screen display to be displayed on-screen, as described below. A Select button 256 is used to select choices in on-screen menus, as described below. A Replay Guide button 454 causes a replay menu to be displayed on-screen. Alternatively, the replay menu can be displayed by pressing the Play button 404 while a show is playing. A Cancel button 458 is used to remove menus from the screen and to cancel choices made by the user.
  • Channels on a television correspond to channels that are broadcast by television networks. A “digital VCR channel,” in contrast, can correspond to any video stream. A digital VCR channel can correspond to, for example, a traditional television channel (i.e., a broadcast VHF/UHF channel), a pay-per-view broadcast, a video stream from a recorded video source such as a VCR, or a video stream recorded by the digital VCR [0083] 10 on the hard disk drive 142. The digital VCR 10 maintains a single channel list. Each channel in the channel list has a unique channel number and corresponds either to a live television channel or to recorded content. Channel numbers can, for example, be four-digit numbers, the first digit of which indicates the source of the channel. For example, channels 1000 through 1999 can correspond to cable television channels, channels 2000 through 2999 can correspond to DBS channels. Channels corresponding to content that has been recorded using the digital VCR 10 on the hard disk drive 142, referred to as “Personal Channels,” can correspond to channel numbers 3000 through 3999. This arrangement provides the user with a single list of channels regardless of the number of video sources to which the digital VCR 10 is connected. Alternatively, one channel list can correspond to channels received from live television sources, and a second channel list can correspond to personal channels.
  • A channel guide database [0084] 326 stores information about channels and the video streams associated with them. For example, the channel guide database contains information about upcoming television shows that are scheduled to be broadcast on live television channels.
  • Channel guide information for channels from live video sources, such as cable TV channels and DBS channels, can be downloaded periodically from the cable TV or DBS provider, or from an online service using the modem [0085] 148. Some television stations broadcast program information in the VBI signal using, for example, extended data service (XDS). For such stations, channel guide information need not be separately downloaded, since the channel guide information can be derived from the VBI. The channel guide database can be stored on the hard disk drive 142, in dynamic RAM (DRAM) 174, or on other suitable computer-readable media.
  • For each live television channel, the channel guide database includes program listings describing the shows that will be playing on the channel. The channel guide database can contain information about each show, such as the title of the show, the show's start time and end time, descriptions of topics to which the show relates, and other information such as the names of actors who appear in the show. [0086]
  • Referring to FIG. 5, a channel guide display [0087] 500 presents the user with a visual representation of information contained in the channel guide database and of content recorded in personal channels. The information about content recorded about personal channels that is displayed by the channel guide display 500 is derived from the show information that is recorded in the personal channels. The user causes the channel guide display 500 to appear on the screen by pressing the Guide button 450 on the remote control 22. The channel guide display 500 can be transparently or opaquely displayed over the video of the current channel, while the audio of the current channel is still playing. A channel list display 502 displays the channel numbers and names of a subset of the channels in the channel list, including live television channels, channels corresponding to recorded video sources, and personal channels. A show display 504 presents a list of television shows that are scheduled to air on live television channels and shows that have been recorded on recorded channels. For example, the channel guide display 500 indicates that channel number 1003 corresponds to the Turner Broadcasting System (TBS), which is a live television channel. An episode of “Scooby Doo” is playing on TBS from 8:30 pm until 9:00 pm, and an episode of “Car Crashes” is playing on TBS from 9:00 pm until 9:30 pm. Channel number 1009 corresponds to content recorded on the VCR 15. To play back a tape in the VCR 15, the user selects channel 1009 and presses the Play button 404 on the remote control 22. The digital VCR 10 selects the VCR 15 as the current video source and forwards the play command to the VCR 15. The play command can be forwarded to the VCR 15 using, for example, the IR transmit 132 or FireWire ports 154 a-b to send a signal to the VCR 15. Channel 1010 corresponds to a personal channel named “Finance,” which will be described in more detail below.
  • When the channel guide display [0088] 500 appears on the screen, the channel list display can be centered around the current channel, or the current channel can be at the top of the channel guide display 500. The user can scroll through the channel guide display 500 using cursor keys on the remote control 22 in order to view channel guide information for other channels or to view show information for other times. The user can use the cursor buttons 460-466 on the remote control 22 to highlight shows. Highlighting a show can cause additional information about the show to be displayed in an on-screen display 508. For example, as shown in FIG. 5, an episode of “Scooby Doo” has been highlighted. As a result, the on-screen display 508 displays information about the highlighted episode, such as its title, duration, start and end times, a brief description, and the network on which it is being broadcast. If the digital VCR 10 is displaying part of a television show while the television show is being recorded, the on-screen display 508 also contains information about the relation of the content being displayed to the current time. For example, the on-screen display 508 can indicate that the content being displayed is five minutes behind the current time or in sync with the current time.
  • The channel guide display [0089] 500 also contains additional information such as the current time 510 and a filter bar 512 which displays filtering information. Filtering information can include, for example, a television show title, an actor's name, or a keyword. If, for example, the user specifies as filtering information that the user is only interested in watching recorded shows with the word “sports” in their titles, the filter bar 512 displays the word “sports” and the digital VCR 10 replays only recorded content with a title containing the word “sports.” If the user has not specified any filtering information, the filter bar can, for example, be empty or display the word “Channels,” and the digital VCR 10 displays all content on the current channel. Other information, such as the video source from which channels originate, can also be displayed by the channel guide display 500.
  • Although the channel guide display [0090] 500 initially shows channels in the channel list display 502 in sequential order, and displays shows in the show list display 504 in chronological order, channels and shows can be arranged in other ways. For example, shows can be sorted by category, or the user's favorite channels can be grouped together. Shows sharing category information can be displayed using the same color. The channel number that is associated with a channel can be changed using the channel guide display 500 by highlighting the current channel number in the channel list display 502 using the cursor buttons 460-466, pressing an appropriate button on the remote control 22, and following on-screen prompts for changing the channel number. The user can also create a list of “favorite channels” which can be grouped together in the channel guide display 500 and can be navigated sequentially using the remote control's Channel Up button 418 and Channel Down button 420.
  • While the channel guide display [0091] 500 is on the screen, the user can (1) highlight a show in the show display list 504 using the cursor buttons 460-466 and press the Select button 256 on the remote control 22, causing the tuner 108 to tune to the selected show and the selected show to be displayed on the screen; (2) highlight an upcoming show and display its show information in the on-screen display 508; (3) select a channel from the channel list display 502, causing the tuner 108 to tune to the channel and display the channel's channel information; (4) highlight a show in the show list display 504 using the cursor buttons 460-466 and press the Record button 408 on the remote control 22 to mark the selected show to be recorded; or (5) press the Cancel button 258 on the remote control 22 to remove the channel guide display 500 from the screen.
  • When the channel guide display [0092] 500 is on the screen, the user can use buttons on the remote control 22 as follows. The Channel Up button 418 and Channel Down button 420 page up and down through the channel list, respectively. If a show in the show list display 504 is highlighted, pressing the Cursor Up button 460 and Cursor Down button 462 moves the hotspot to the show directly above or directly below the hotspot's current position, respectively. If a channel in the channel list display 502 is highlighted, pressing the Cursor Up button 460 and Cursor Down button 462 highlights the channel directly above or below the currently highlighted channel, respectively. If a show in the show list display 504 is highlighted, pressing the Cursor Left button 464 and Cursor Right button 466 moves the hotspot 506 to the show directly to the left or to the right of the hotspot's current position, respectively. While the channel guide display 500 is on the screen, the user can highlight a channel in the channel list display 502 directly by pressing the numerical keys 422-238 on the remote control (direct tuning).
  • While the channel guide display [0093] 500 is on the screen, pressing the Select button 256 on the remote control 22 performs different functions depending on which element of the channel guide display 500 is current highlighted. If a show that is currently being broadcasted is highlighted, pressing the Select button 256 tunes to the show and removes the channel guide display 500 from the screen. If a show that is not currently being received from a live video source is highlighted, a list of options is displayed (e.g., tune to the highlighted show's channel, record one episode of the highlighted show, record all episodes of the highlighted show). If a channel in the channel list display 502 is highlighted, pressing the Select button 256 brings up the channel options display.
  • While the channel guide display [0094] 500 is on the screen, the user can record one or more episodes of a show by highlighting an episode of the show using the cursor buttons 460-466 and pressing the Record button 408 on the remote control 22. Pressing the Record button 408 schedules a single episode of the show and causes a single circle to appear next to the name of the show in the show list display 504. As shown in FIG. 5, for example, the user has selected to record a single episode of “ER”, which is indicated by a single circle 514. Pressing the Record button 408 a second time schedules all upcoming episodes of the show to be recorded and causes a double circle to appear next to the name of the show in the show list display 504. For example, referring to FIG. 5, the user has selected to record all upcoming episodes of “The Big Help”, which is indicated by a double circle 516. Pressing the Record button 408 a third time cancels scheduled recording of the show and removes the double circle from the show's name in the show list display. If the show that the user selects to record conflicts in time with another show that is scheduled to be recorded, the digital VCR 10 notifies the user of the conflict using an on-screen display. The user can then (1) view the channel guide listing for the conflicting show; (2) record the currently-selected show instead of the conflicting show; or (3) cancel recording of the selected show.
  • A user can create a personal channel on which to record content received from the attached video sources satisfying specified record criteria. For example, a user might create a “Finance” personal channel whose record criteria specify all episodes of the shows “Moneyline” and “Your Money.” The digital VCR [0095] 10 records all subsequent episodes of “Moneyline” and “Your Money” received from video sources attached to the digital VCR 10 by comparing the record criteria to information contained in the channel guide database 326. Whenever an episode of “Moneyline” or “Your Money” airs (i.e., is received from any of the video sources connected to the digital VCR 10), the digital VCR records the episode by storing the episode's video and audio streams on the hard disk drive 142 along with additional information about the episode, such as the time at which it aired and other information obtained from the channel guide database 326.
  • Optionally, the digital VCR [0096] 10 can begin recording a show at a selected time (e.g., three minutes) before the show is scheduled to be broadcast and stop recording the show at a selected time after the show is scheduled to finish broadcasting. This increases the likelihood that an entire show will be recorded even if the digital VCR's clock is not perfectly synchronized to the broadcasting television station's clock or if the television show is broadcast a little early or a little late. When the user presses the Play button 404 to play back a show recorded in this manner, the digital VCR 10 can begin playing the show back beginning from the point at which the show was scheduled to be recorded, rather than from the actual beginning of the recording. For example, if a user schedules a show to be recorded from 9:00 pm through 9:30 pm, the digital VCR 10 can record beginning at 8:57 pm and stop recording at 9:33 pm. When the user presses the Play button 404 to play back the show, the digital VCR 10 can play back the recorded video stream beginning at the point in the video stream corresponding to 9:00 pm. The user can then rewind or fast forward the video stream to begin playback at the actual beginning of the show, as necessary.
  • By using information contained in the channel guide database [0097] 326 to determine when record criteria for a personal channel are met, and by periodically updating the channel guide database 326, the digital VCR 10 can record episodes of a television show even if the show is rescheduled after the personal channel is created. Similarly, the digital VCR can record episodes of a show that are aired on multiple live television channels. Furthermore, the digital VCR 10 can determine (by comparing channel guide information for a show that is scheduled to be recorded onto a personal channel with channel guide information for shows that are already recorded on a personal channel) that a show that is scheduled to be recorded onto a personal channel is already stored on the personal channel and/or has already been viewed by the user. In such a case the digital VCR 10 can cancel recording of the show.
  • When the digital VCR [0098] 10 records a scheduled show, the digital VCR can notify the user that the show has been recorded. For example, the digital VCR can notify the user with an on-screen display, by sending the user an e-mail message (using, e.g., the modem 148), using an audible signal (e.g., “A new show has been recorded), or by a pager message over a broadcast pager network.
  • Associated with each personal channel is a channel number in the channel list. For example, as shown in FIG. 5, the “Finance” channel is assigned channel number 1010, and is displayed in the channel list display [0099] 502 like any other channel. To watch the content that has been recorded on a personal channel, the user tunes to the personal channel's channel number using the remote control 22, or selects the personal channel's channel number in the channel list display 502. To watch a particular episode recorded on a personal channel, the user can select the episode in the show list display 504 using the cursor keys 460-466. For example, when the user first tunes to the “Finance” personal channel, the first episode recorded on the channel (i.e., the episode of “Moneyline” recorded on June 1 at 9 pm) begins playing back from the beginning. If the user stops watching the “Finance” personal channel and subsequently returns to the “Finance” personal channel, display begins where the user was last viewing.
  • Each personal channel has a name. The name can be specified by the user, or can be automatically generated by the digital VCR [0100] 10. For example, when the user creates a personal channel, the digital VCR 10 can use the name of the current show (derived from the channel guide database 326) as the name of the personal channel, or the digital VCR 10 can generate a name for the personal channel based on the personal channel's record criteria.
  • Record criteria for a personal channel can include criteria such as show title, keyword (e.g., actor, director), show category, description text, and rating. For example, a user can specify that all shows named “National Geographic” be recorded on a personal channel. A show name can be selected by entering the name of the show using real or virtual alphanumeric keys, by selecting a show from the Channel Guide grid, by selecting a show name from an alphabetized list of every known show in the channel database, or by selecting a show name from a hierarchical directory of shows. Record criteria can be combined by, for example, using boolean operators such as “and” and “or.” An actor or director name can be selected using real or virtual alphanumeric keys, by selecting an actor or director name from a list of every actor or director in the channel database, or by selecting an actor or director name from a movie listing in the channel guide display [0101] 500. Topics can be selected from a list of all topics available in the channel database or from a hierarchical directory of topics or show categories.
  • Other record criteria can be specified for a personal channel. For example, the user can specify a record stack size for a personal channel. When a new show is to be recorded on a personal channel, if the personal channel already contains more video content than specified by the record stack size, the oldest show in the personal channel is replaced with the new show to be recorded. The user can specify a record priority for a personal channel. When a new show is to be recorded on a personal channel, if the hard disk drive [0102] 142 is full and a recording with a lower priority than the record priority exists in the personal channel, then the lower-priority show is deleted to make room for the new show to be recorded. Similarly, the user can specify that the oldest content recorded on a personal channel be deleted when necessary to make room for new content.
  • The user can specify ratings for a personal channel, such as movie ratings or show quality ratings, in which case only shows with the specified ratings will be recorded on the personal channel. The user can specify that only shows which satisfy specified V-chip ratings are to be recorded on the personal channel. The system can gather v-chip information from the VBI signal to determine whether a show satisfies the selected ratings or not. The user can specify a rerun preference for a personal channel which determines which combination of new broadcasts, reruns, and syndicated re-runs of a show will be recorded on the personal channel. For example, the user can specify that reruns of a show are not to be recorded. Similarly, the user can specify that only shows that the user has not previously viewed and/or recorded should be recorded. The digital VCR [0103] 10 can determine which shows the user has previously viewed by storing channel guide information for each show that the user watches.
  • The channel guide information received by the digital VCR [0104] 10, or the video streams received by the digital VCR 10, can include segment information describing segments of television shows. For example, segment information for a news broadcast might indicate where each news story in the broadcast begins and ends, and might include descriptive information (e.g., keywords) describing the content of the news stories. If the segment information for a segment matches the record criteria for a personal channel, the digital VCR 10 can record the segment onto the personal channel.
  • The user can specify the quality (in, e.g., megabits per second) at which content should be recorded on a personal channel. The user can also specify that a particular number of episodes of a show are to be recorded on a personal channel. When a personal channel is created, the user can be notified of the hard disk space that will be needed to store all shows that are scheduled to be recorded on the personal channel. If the amount of room needed exceeds the available space on the hard disk drive [0105] 142, the user can be given the option of canceling creation of the personal channel or, for example, deleting existing content to make room for the personal channel.
  • Matches between the record criteria specified for a personal channel and the information contained in the channel database can be made either by requiring an exact match or on a “fuzzy match” basis. A “fuzzy match” algorithm might allow, for example, matches between words with similar but not identical spellings. Record criteria can be compared against closed captioning data in addition to or instead of channel guide information. For example, if the user includes the word “apple” as a search criterion, the digital VCR [0106] 10 can record content whose closed captioning data includes the word “apple.” In such a situation, the digital VCR 10 can record the entire show in which the word “apple” appears or can, for example, record a portion of the show surrounding the occurrence of the word “apple.”
  • The digital VCR [0107] 10 can be manufactured or otherwise pre-configured with one or more personal channels. For example, the digital VCR 10 can contain a pre-configured “Finance” channel for recording all episodes of “Moneyline” and “Your Money.” The digital VCR 10 can also create personal channels automatically based on demographic data provided by the user or based on the user's viewing habits as observed by the digital VCR 10. For example, the digital VCR 10 can create a personal channel for recording all sporting events occurring in the user's geographic region based on the zip code provided by the user during initial configuration, or from information contained in content broadcast (or otherwise sent) to the digital VCR 10 (e.g., in channel guide information). The digital VCR 10 can also, for example, create a “Seinfeld” personal channel if the user regularly watches and/or records episodes of “Seinfeld.”
  • TV shows can be scheduled to be recorded in other ways. For example, the user can specify a show to be recorded on a personal channel by specifying the show's start time, end time, live television channel, and a recording quality. The digital VCR [0108] 10 can keep track of television shows that the user watches regularly. After identifying such shows, the digital VCR 10 can ask the user whether future episodes of such shows should be recorded, or the digital VCR 10 can automatically schedule future episodes of such shows to be recorded on one or more personal channels. Similarly, the digital VCR can identify shows that can be of interest to the user by, for example, comparing channel guide information for upcoming shows to channel guide information for shows that the user has previously watched and/or recorded.
  • After a show has been recorded, the user can be notified by, for example, an on-screen message, an e-mail message, or a notification through a pager network. The user can view information about shows that are scheduled to be recorded, shows that are currently being recorded, and shows that have been recorded. [0109]
  • When the user tunes to a personal channel, the on-screen display [0110] 508 can appear and a brief on-screen message can appear indicating that the show being viewed was previously recorded. After the user finishes watching a recorded episode, the user can be presented with a visual prompt asking the user if the episode should be deleted from the personal channel.
  • When a personal channel is being viewed, the user can cause the on-screen display [0111] 508 to appear on the screen by pressing the Display button 448 on the remote control 22. Pressing the Replay Guide button 454 while a personal channel is being viewed brings up the channel guide display 500, in which only personal channels and the content recorded on them are displayed. The user can select an episode and press the Play button 404 on the remote control 22 to begin playing back the episode either at the beginning of the episode or at the point in the episode where the user previously stopped viewing. The user can select a show by highlighting the show using the cursor keys 422-438 and pressing the select button 456, causing a menu to appear including choices including “Delete selected episode,” “Delete all recorded episodes,” and “Delete viewed portions of recorded episodes.” The user can select a menu choice using the cursor keys 422-438 and the Select button 456. On-screen menus can also display a list of episodes that are scheduled to be recorded on the personal channel. The personal channel can be deleted or temporarily disabled using the on-screen menus.
  • The user configures the digital VCR [0112] 10 before its first use. The first part of configuration includes physically connecting all desired video and audio sources to the digital VCR's video and audio inputs, and connecting the digital VCR's video and audio outputs to a video and audio output devices such as the television 18 and speakers. It can be necessary to configure the remote control 22 to work properly with devices that are connected to the digital VCR 10. Users can also enter additional information such as their zip code, time zone, area code, and cable TV or DBS provider. After the user has entered all necessary information, the digital VCR 10 can scan all channels from connected live video sources and generate the channel list, discarding channels that do not contain a usable signal. The channel list can include channels representing recorded video sources, such as the VCR 15.
  • An initial channel guide database [0113] 326 can be generated by downloading channel guide information into the digital VCR 10 using the modem 148, cable TV cable 12, or some other means. Channel guide information can be downloaded only for those channels which the user receives. For example, if the user only subscribes to channels 1-20 from a cable television provider, the digital VCR 10 can download channel guide information from the cable service provider only for channels 1-20, rather than for the entire set of channels provided by the cable service provider. Subsequently, the channel guide database 326 can periodically be updated by the digital VCR 10 by downloading updated channel guide information. The user can specify times at which the channel guide database 326 is to be updated.
  • An internal clock within the digital VCR [0114] 10 can be set to the current time manually, or the internal clock can be set automatically using, for example, information contained within downloaded channel guide information. As part of initial configuration, the digital VCR 10 can display a tutorial video contained on the hard disk drive 142 containing usage instructions. The tutorial video can be displayed automatically the first time the digital VCR 10 is configured. The tutorial video can be deleted after being watched by the user, either automatically or in response to user instruction.
  • The user can optionally perform additional configuration. For example, after an initial channel list has been generated, the user can modify the association of channel numbers in the channel list with channels received from the connected live video sources. For example, the user can specify that channel 1 in the channel list is to be associated with channel 7 from a connected television antenna and that channel 2 in the channel list is to be associated with channel 23 from a connected cable TV cable. In this way, the user can, for example, place the most frequently-used channels together at the beginning of the channel list. The user can add or delete channels from the channel list. [0115]
  • The user can block access to specified channels using a specified password in order to prevent children from watching inappropriate channels, for example. Blocked channels are skipped when accessed sequentially, but cause an on-screen message (e.g., “This channel is blocked: Please enter password.”) to be displayed if the blocked channel is tuned to directly. [0116]
  • As described in more detail below, the digital VCR [0117] 10 always spools the current show to a rewind buffer that is stored on the hard disk 142. The user can configure the length of the rewind buffer, which can be, for example, 15 minutes long by default. The user can specify default recording qualities with which shows are to be recorded into the rewind buffer and into personal channels.
  • The user can watch live television using the digital VCR [0118] 10 by tuning to a live television channel using the remote control 22. For example, the user can tune directly to a live television channel by entering the channel number using numeric keys 422-238 on the remote control 22, by using Channel Up button 418 and Channel Down button 420 on the remote control 22, or by selecting a channel in the channel guide display 500. The digital VCR 10 continuously spools the current show's video and audio streams to a rewind buffer stored on the hard disk drive 142. The current show is spooled to the rewind buffer even if the user is not watching the current show, such as when the user is watching a VHS tape. The digital VCR 10 can have a second tuner in addition to the tuner 108, in which case one live television channel (referred to as a primary channel) can be spooled to the rewind buffer while the user watches a secondary live television channel. Similarly, if channel guide information is broadcast on the VBI of a single television channel, channel guide information can be received on one television channel while the user is viewing another live television channel.
  • Whenever the user tunes to a channel by, for example, pressing the Channel Up button [0119] 418 or Channel Down button 420 on the remote control 22, the channel number and station description or channel name are displayed transparently over the channel's video stream. The station's call letters can be retrieved from the VBI Extended Data Service (XDS or EDS) information or from the channel guide database 326. Show information, such as the name of the show being viewed and the amount of time left, can also be displayed. The on-screen display can last for a few seconds and then be removed. If the channel is being recorded, the channel's underlying video and audio streams are recorded without the transparent station description and/or channel name. Similarly, other transparent displays described herein (e.g., the channel guide display 500) are not recorded even when the video over which they are displayed is recorded. However, the information itself is typically recorded along with the video stream for database storage and subsequent retrieval and display.
  • Whenever the user is watching any channel, the digital VCR [0120] 10 is in one of several “interface states” that define what options the user has. The current interface state depends on what type of channel is being viewed and on whether the system is recording a personal channel. The name of the current interface state can be displayed transparently over the currently playing video stream for a few seconds whenever the current interface state changes. The interface states include:
  • Live: a live television channel is being displayed and being recorded into the rewind buffer. [0121]
  • Delayed: part of a recorded show is playing back from the rewind buffer while the remainder of the show is being recorded. [0122]
  • Personal: a pre-recorded personal channel is playing back from storage. [0123]
  • Recording: a channel is being viewed while being recorded for subsequent or simultaneous playback. [0124]
  • Non-viewable: the selected channel cannot be displayed. [0125]
  • Information: a non-video channel designed to present information, advertising, or web-style menus. [0126]
  • Referring to FIGS. [0127] 6A-F, transitions between interface states occur as follows. Referring to FIG. 6A, when the user tunes to a live television channel while no channel is being recorded onto a personal channel (step 602), the interface state becomes Live 600 a. When the interface state is Live, the show being displayed on the current channel is recorded into the rewind buffer. During the Live interface state, the user can use the Channel Up button 418 and Channel Down button 420 on the remote control 22 to change the current channel, and can tune directly to a channel by entering the channel number using the numeric keys 422-238 on the remote control 22. If the user tunes to a personal channel (step 606), the personal channel is displayed and the interface state becomes Personal 600 c. If the user tunes to an information channel (step 610), the information channel is displayed and the interface state becomes Information 600 e. If the user tunes to a non-viewable channel (step 612), a message is displayed on-screen notifying the user that the channel is non-viewable and the interface state becomes Non-Viewable 600 f.
  • Pressing the Record button [0128] 408 on the remote control 22 during the Live interface state (step 608) can cause the digital VCR 10 to display an on-screen menu from which the user can choose to record either the current episode of the current show or all episodes of the current show.
  • Alternatively, for example, pressing the Record button [0129] 408 during the Live interface state can cause the digital VCR 10 to begin recording the current show, and pressing the Record button 408 again can cause the digital VCR 10 to schedule recording of all upcoming episodes of the current show. In any case, after pressing the Record button 408, the digital VCR 10 (1) assigns a personal channel to the current channel; (2) saves the data that has been recorded in the rewind buffer, so that the entire show being viewed on the current channel can be recorded, and (3) changes the interface state to Recording 600 d. The digital VCR 10 can ask the user whether to record a single episode of the current show or all future episodes of the current show. If all future episodes of the current show are to be recorded, the digital VCR 10 can schedule recording of future shows by, for example, using the channel guide database 326 to determine which show is currently being broadcast and then scheduling future episodes of the same show to be recorded.
  • Pressing the Rewind button [0130] 402 on the remote control 22 during the Live interface state (step 604): (1) rewinds the video that has been recorded in the rewind buffer, while the current show continues to be recorded into the rewind buffer, and (2) changes the interface state to Delayed 600 b. Pressing the Rewind button 402 again or the Play button 404 initiates delayed playback of the content stored in the rewind buffer. Pressing the Pause button 402 on the remote control 22 during the Live interface state (step 604) causes the currently displayed frame to be frozen on-screen while the current show continues to be recorded into the rewind buffer, and changes the interface state to Delayed 600 b.
  • Referring to FIG. 6B, when the interface state is Delayed, the current show continues to be recorded into the rewind buffer. When the interface state is Delayed, the user can attempt to change channels using the Channel Up button [0131] 418 or the Channel Down button 420 on the remote control 22. If the user attempts to tune to a live television channel and the digital VCR 10 has only one tuner, the user can be presented with a message saying that a delayed show is being viewed and instructing the user that the Live TV button 412 must be pressed to change to the Live interface state in order to change channels. Alternatively, if the user attempts to tune to a live television channel and the digital VCR 10 has only one tuner (step 616), the digital VCR 10 can display the channel number onscreen and change the interface state to Non-Viewable. If the user tunes to a personal channel (step 618), the selected personal channel can become the current channel and the interface state becomes Personal. If the user presses the Rewind or Fast Forward button 406 during the Delayed interface state, the delayed video will be rewound or fast forwarded, respectively. If the user presses the Pause button 410 during the Delayed interface state, the delayed video being displayed is paused. If the user presses the Play button 404 during the Delayed interface state while the delayed video is paused, the delayed video will resume playing at the point at which the video was paused. In the latter case, the video can resume playing at normal speed, or at an increased rate in order to let the user “catch up” with the content currently being broadcast. If the user presses the Live TV (Stop) button 412 during the Delayed interface state (step 620), the current show will be displayed at the current time, and the interface state becomes Live. Pressing the Record button 408 during the Delayed interface state (step 622) causes the Rewind buffer to be saved and the interface state to become Recording. The user can record a single episode or all episodes of the current show as described above.
  • Referring to FIG. 6C, when the user is playing back a show that has been completely recorded on a personal channel, the interface state is Personal. This differs from the Recording interface state, which corresponds to watching a show that is still in the process of being recorded. When the interface state is Personal, the digital VCR [0132] 10 can either be recording a show from any channel or not recording. When the interface state is Personal, the user can tune to another channel using the Channel Up button 418 and Channel Down buttons 420 or by directly tuning to a channel using the numeric keys 422-438. If the current channel is changed from a personal channel while a live television program is being viewed and being recorded onto the personal channel, the current position of the live television program is stored for future use while the program continues to be recorded onto the personal channel. This allows the user to return to the personal channel and continue watching the television program from the point where the user left off. If, while in the Personal interface state, the user tunes to another personal channel (step 624), the interface state remains Personal. If the user tunes to a live television channel (step 626), the interface state becomes Live. If the user tunes to an Information Channel (step 628), the interface state becomes Information.
  • Pressing the Rewind button [0133] 402, Fast Forward button 406, or Pause button 410 while in the Personal interface state causes the personal channel being viewed to rewind, fast forward, or pause, respectively. If the Play button 404 is pressed while the personal channel is paused, the personal channel continues playing from the point at which it was paused. If the Play button 404 is pressed while the personal channel is playing, the replay guide is displayed. If the Live TV (Stop) button 412 is pressed while in the Personal interface state 600 c and the digital VCR 10 is not recording a personal channel (step 630), the digital VCR 10 tunes to the last viewed live television channel, and the interface state becomes Live. If the Live TV (Stop) button 412 is pressed during the Personal interface state and the digital VCR 10 is recording a personal channel (step 632), the digital VCR 10 tunes to the channel that is being recorded, and the interface state becomes Recording.
  • Referring to FIG. 6D, when the digital VCR [0134] 10 is recording a show that the user has specifically requested to be recorded (in contrast to recording a show into the rewind buffer), the interface state is Recording. If the digital VCR 10 finishes recording the show while in the Recording interface state (step 634), the interface state changes to Live. If the user presses the Channel Up button 418 or Channel Down button 420 while in the Recording interface state, the current channel changes to the next or the previous viewable channel. While in the Recording interface state, a live television channel cannot be viewed if the digital VCR 10 has only one tuner. Therefore, while in the Recording interface state, live television channels can not be viewable. Pressing the Channel Up button 418 or Channel Down button 420 can therefore skip unviewable channels and display the next or previous viewable channel, respectively. Alternatively, if the user tunes to a non-viewable channel while in the Recording interface state (step 636), the digital VCR 10 can display the channel number of the non-viewable channel on-screen and change the interface state to Non-Viewable.
  • If the user tunes to a personal channel while in the Recording interface state (step [0135] 638), the interface state becomes Personal. If the user tunes to an information channel while in the Recording interface state (step 640), the interface state becomes Information.
  • Pressing the Rewind, Fast Forward, and Pause keys while in the Recording interface state perform rewind, fast forward, and pause functions, respectively. [0136]
  • If the user presses the Play button [0137] 404 during the Recording interface state and the current channel is paused, the current channel will resume playing. If the user presses the Live TV (Stop) button 412 during the Recording interface state (step 642), the current channel will be displayed at the current time and the interface state will become Live, allowing the user to watch live television.
  • The digital VCR [0138] 10 can reserve one or more channels, referred to as “information channels,” for displaying information to the user. For example, an information channel can display an advertisement, notice, or e-mail to the user. Referring to FIG. 6E, when an information channel is being displayed, the interface state is Information. If the user tunes to an information channel while in the Information interface state (step 642), the interface state remains Information. If the user tunes to a personal channel while in the Information interface state (step 644), the digital VCR 10 tunes to the personal channel and the interface state becomes Personal. If the user tunes to a viewable live television channel while in the Information interface state (step 646), the digital VCR 10 tunes to the live television channel and the interface state becomes Live. If the user tunes to a non-viewable channel while in the Information interface state (step 648), the interface state becomes Non-Viewable.
  • Referring to FIG. 6F, if the user tunes to a channel that cannot be displayed for any of a number of reasons, the interface state becomes Non-Viewable. For example, if the digital VCR [0139] 10 has only one tuner, and the user tunes to a live television channel while another channel is being recorded, the interface state becomes Non-Viewable. When in the Non-Viewable interface state, the channel guide information for the non-viewable channel can be displayed on the on-screen display 508 against a dark background along with a message telling the user why the current channel cannot be viewed. Alternatively, if the user attempts to tune to a channel that is non-viewable because another channel is being recorded, the digital VCR 10 can provide the user with the option of canceling the recording of the channel that is being recorded.
  • If the user presses the Channel Up button [0140] 418 or Channel Down button 420 while in the Non-Viewable interface state, the current channel will be changed to the next or previous viewable channel, respectively. If the user tunes to a personal channel while in the Non-Viewable interface state (step 650), the digital VCR 10 tunes to the personal channel and the interface state becomes Personal. If the user tunes to an information channel while in the Non-Viewable interface state (step 652), the digital VCR 10 displays the information channel and the interface state becomes Information. If the user tunes to a non-viewable channel while in the Non-Viewable interface state (step 654), the interface state remains Non-Viewable. If the user tunes to a viewable live television channel while in the Non-Viewable interface state (step 656), the digital VCR 10 tunes to the live television channel and the interface state becomes Live. If the user presses the Play button 404 while the interface state is Non-Viewable, the replay guide is displayed.
  • If the user presses the Channel Up button [0141] 418 or Channel Down button 420 while in the Play Menu interface state, a graphical show selector is moved up or down, respectively, allowing the user to select a personal channel to watch. The Cursor Up button 460 and Cursor Down button 462 perform the same functions as the Channel Up button 418 and Channel Down button 420, respectively. The Select button 256 chooses the selected personal channel as the current channel and begins playing the personal channel.
  • If the digital VCR [0142] 10 has two tuners, the user can designate a channel to be a “primary channel.” If, for example, the user is watching a channel that has been designated as a primary channel, the content of the channel is spooled to the rewind buffer. If the user tunes to another channel, the contents of the primary channel continue to be spooled to the rewind buffer. The channel to which the user tunes can be spooled to a second rewind buffer. When the user returns to the primary channel, the user can resume watching the primary channel at the point where the user left off or at the current time. In the latter case the user can rewind the primary channel in order to view portions of the primary channel content that were received while the user was watching other channels. Furthermore, if the user is viewing a channel other than the primary channel, the digital VCR 10 can notify the user when the end of a commercial or the end of a series of commercials have been detected on the primary channel.
  • The techniques described above can be implemented in special-purpose circuitry, general-purpose circuitry (such as programmable microprocessors) operating under the control of program instructions, or in any combination of such apparatus. However, the techniques are not limited to any particular circuitry or program configuration; they can find applicability in any computing or processing environment that can be used for digital recording and playback of video and audio streams. The techniques can be implemented in computer programs executing on programmable circuitry that can include a processor, a storage medium readable by the processor (including volatile or non-volatile memory and/or storage elements), one or more input device, and one or more output devices. Program code can be applied to data entered using the input device to perform the functions described and to generate output information. The output information can be applied to the one or more output devices. [0143]
  • Each program described above can be implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language can be a compiled or interpreted language. [0144]
  • Each such program can be stored on a storage medium or device (e.g., DVD, CD-ROM, hard disk or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document. The system can also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner. [0145]
  • The present invention has been described in terms of an embodiment. The invention, however, is not limited to the embodiment depicted and described. Rather, the scope of the invention is defined by the claims. [0146]
  • Other embodiments are within the scope of the claims. For example, the digital VCR [0147] 10 can have one or more tuners in addition to the tuner 108. Such additional tuners can allow the user to, for example, watch one live television channel while another live television channel is being recorded. The digital VCR 10 can receive audio and/or video in digital form. Any digital audio or video received by the digital VCR 10 need not be digitized by the decoder 109 or the codec 124. Video can be received in NTSC, PAL, HDTV, or any other broadcast standard format. The digital VCR 10 can display video output on a high-definition television (HDTV). If the digital VCR 10 displays output on an HDTV or another digital video output device, the digital VCR 10 need not be converted into analog form before being output. Channel guide information can be received by, for example, the modem 148 or from the VBI. Video can be output in component video format. Digital audio can be output in formats other than SPDIF. The digital VCR 10 can include a DBS tuner to allow the digital VCR to perform the functions of a DBS receiver.

Claims (26)

What is claimed is:
1. An apparatus for storing video information comprising:
a means for receiving video information;
a means for converting the received video information into digital video information; and
a means for storing the digital video information.
2. The apparatus of claim 1 wherein the means for converting the received video information into digital video information further comprises an MPEG-compatible digital encoder.
3. The apparatus of claim 2 wherein the MPEG-compatible digital encoder further comprises separate audio and video MPEG encoders.
4. The apparatus of claim 2 wherein the means for storing the digital video information further comprises:
an electromagnetically writable disk drive; and
an optimized MPEG file system (OMFS), the OMFS configured to receive the digital video information and store the digital video information on the disk drive.
5. The apparatus of claim 4 wherein:
the disk drive further comprises one or more electromagnetic disks, each electromagnetic disk divided into one or more sectors having a fixed number of bytes storable on each sector; and
the OMFS is configured to divide the received digital video information into one or more packets, each packet having the same number of bytes as a sector on a disk in the disk drive.
6. The apparatus of claim 5 wherein the OMFS first accumulates one of the packets of digital video information in a cache memory.
7. The apparatus of claim 6 wherein the OMFS, upon filling the cache memory with a completed packet of digital video information, then stores the completed packet on a single one of the sectors of the disk drive.
8. The apparatus of claim 2 wherein the means for converting the received video information into digital video information further comprises an MPEG-compatible software encoder streamer which couples to the MPEG-compatible digital encoder to convert the received video information.
9. The apparatus of claim 1 further comprising a means for reading the stored the digital video information.
10. The apparatus of claim 9 wherein the means for reading further comprises an MPEG-compatible digital decoder.
11. The apparatus of claim 10 wherein the MPEG-compatible digital decoder further comprises separate audio and video MPEG decoders.
12. The apparatus of claim 10 wherein the means for reading further comprises an MPEG-compatible software decoder streamer which couples to the MPEG-compatible digital decoder to convert the stored digital video information into video information suitable for being displayed on a television monitor.
13. The apparatus of claim 4 wherein the OMFS is configured to defragment the disk drive periodically.
14. The apparatus of claim 4 wherein the OMFS is configured to determine periodically poor sectors on the disk drive and prevent writing to the poor sectors.
15. A method for storing video information comprising the steps of:
a step for receiving video information;
a step for converting the received video information into digital video information; and
a step for storing the digital video information.
16. The method of claim 15 wherein the step for converting the received video information into digital video information further comprises encoding the received video information into an MPEG-compatible format.
17. The method of claim 16 wherein the step for converting further comprises the steps of converting the audio information and the video information separately in MPEG-compatible formats.
18. The method of claim 16 wherein the digital video information is stored using an optimized MPEG file system (OMFS), the OMFS receiving the digital video information and storing the digital video information on an electromagnetically writable disk drive.
19. The method of claim 18 wherein the disk drive further comprises one or more electromagnetic disks, each electromagnetic disk divided into one or more sectors having a fixed number of bytes storable on each sector; and
the OMFS divides the received digital video information into one or more packets, each packet having the same number of bytes as a sector on a disk in the disk drive.
20. The method of claim 19 wherein the OMFS first accumulates one of the packets of digital video information in a cache memory.
21. The method of claim 20 wherein the OMFS, upon filling the cache memory with a completed packet of digital video information, then stores the completed packet on a single one of the sectors of the disk drive.
22. The method of claim 16 wherein the step for converting the received video information into digital video information further comprises using an MPEG-compatible software encoder streamer coupled to an MPEG-compatible digital encoder to convert the received video information.
23. The method of claim 15 further comprising the step for reading the stored the digital video information.
24. The method of claim 23 wherein the step for reading further comprises using an MPEG-compatible digital decoder to decode the stored digital video information.
25. The method of claim 24 wherein step for reading further comprises separately decoding audio and video signals using separate MPEG-compatible audio and video decoders.
26. The method of claim 24 wherein the step for reading further comprises using an MPEG-compatible software decoder streamer coupled to an MPEG-compatible digital decoder to convert the stored digital video information into video information suitable for being displayed on a television monitor.
US09/262,144 1998-08-11 1999-03-03 Digital recording and playback Abandoned US20020057893A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US09/262,144 US20020057893A1 (en) 1998-08-11 1999-03-03 Digital recording and playback
US10/339,012 US8873929B1 (en) 1998-08-11 2003-01-08 Digital recording and playback

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13269098A 1998-08-11 1998-08-11
US09/262,144 US20020057893A1 (en) 1998-08-11 1999-03-03 Digital recording and playback

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13269098A Continuation 1998-08-11 1998-08-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/339,012 Continuation US8873929B1 (en) 1998-08-11 2003-01-08 Digital recording and playback

Publications (1)

Publication Number Publication Date
US20020057893A1 true US20020057893A1 (en) 2002-05-16

Family

ID=22455153

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/262,144 Abandoned US20020057893A1 (en) 1998-08-11 1999-03-03 Digital recording and playback
US10/339,012 Active 2028-09-05 US8873929B1 (en) 1998-08-11 2003-01-08 Digital recording and playback

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/339,012 Active 2028-09-05 US8873929B1 (en) 1998-08-11 2003-01-08 Digital recording and playback

Country Status (1)

Country Link
US (2) US20020057893A1 (en)

Cited By (170)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010033736A1 (en) * 2000-03-23 2001-10-25 Andrian Yap DVR with enhanced functionality
US20010037459A1 (en) * 2000-03-15 2001-11-01 Shigeho Ogawa Information playback apparatus and method as well as recording medium
US20020087996A1 (en) * 2000-11-10 2002-07-04 Depeng Bi Interactive remote control of audio or video playback and selections
US20020097986A1 (en) * 2001-01-23 2002-07-25 Nec Corporation Broadcast storage system with reduced user's control actions
US20020124252A1 (en) * 2001-03-02 2002-09-05 Schaefer Scott R. Method and system to provide information alerts via an interactive video casting system
US20020191954A1 (en) * 2000-12-20 2002-12-19 Brian Beach Broadcast program recording overrun and underrun scheduling system
US20020199193A1 (en) * 1998-06-12 2002-12-26 Metabyte Networks, Inc. System and method for generating and managing user preference information for scheduled and stored television programs
US20030004882A1 (en) * 2000-11-06 2003-01-02 Holler Anne Marie Optimized server for streamed applications
US20030041327A1 (en) * 2001-08-24 2003-02-27 Newton Philip Steven System with improved user interface
US20030067554A1 (en) * 2000-09-25 2003-04-10 Klarfeld Kenneth A. System and method for personalized TV
US6564005B1 (en) * 1999-01-28 2003-05-13 International Business Machines Corporation Multi-user video hard disk recorder
US20030097657A1 (en) * 2000-09-14 2003-05-22 Yiming Zhou Method and system for delivery of targeted programming
US20030101451A1 (en) * 2001-01-09 2003-05-29 Isaac Bentolila System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters
US20030118323A1 (en) * 1998-06-12 2003-06-26 Ismail Labeeb K. Television program recording with user preference determination
US20030118321A1 (en) * 2001-12-21 2003-06-26 Sparrell Carlton J. Digital video recording and reproduction system and method suitable for live-pause playback utilizing intelligent buffer memory allocation
US20030131191A1 (en) * 2001-11-26 2003-07-10 Broadlogic Network Technologies, Inc. Multi-stream access scheme for high speed access and recording using a hard disk drive
US6631455B1 (en) * 2000-09-29 2003-10-07 Cypress Semiconductor Corp. Logic for initializing the depth of the queue pointer memory
US20030228126A1 (en) * 2002-06-05 2003-12-11 Buxton Mark J. Multiple programmable video recorder using interleaved writes
US20030236756A1 (en) * 2001-06-21 2003-12-25 Metabyte Networks, Inc. Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US20040013409A1 (en) * 2002-04-26 2004-01-22 Brian Beach Smart broadcast program recording padding and scheduling system
US20040057697A1 (en) * 2002-09-19 2004-03-25 Peter Renzi Streaming digital recording system
US20040086261A1 (en) * 2002-11-01 2004-05-06 Hanes David H. Video segment extraction system and method
US6738559B1 (en) * 1999-06-29 2004-05-18 Lg Electronics Inc. Feature-dependent operating method between two connected equipments and an apparatus for controlling the operating method
WO2004043064A1 (en) * 2002-11-07 2004-05-21 Koninklijke Philips Electronics N.V. Tracking of partially viewed shows so that they can be marked for deletion when a personal video recorder runs out of space
US6762797B1 (en) * 1999-04-14 2004-07-13 Koninklijke Philips Electronics N.V. Method and apparatus for catch-up video viewing
US20040136684A1 (en) * 2001-09-13 2004-07-15 Toshiaki Kojima Information recording/reproducing apparatus and information recording/reproducing method
US20040155985A1 (en) * 2001-06-05 2004-08-12 Frank Dethier Interface unit
US20040252246A1 (en) * 2003-06-12 2004-12-16 Samsung Electronics Co., Ltd. TV signal receiving module and portable computer having the same
US20040264934A1 (en) * 2003-06-11 2004-12-30 Koji Ishikawa Device and method for recording on and playing back a disc
US20040264920A1 (en) * 1998-12-07 2004-12-30 Index Systems, Inc. System and method for generating video taping reminders
US20050008345A1 (en) * 2003-07-01 2005-01-13 Choi Yong-Hun Digital audio/video apparatus and method that can perform additional operations
US20050031307A1 (en) * 2003-08-07 2005-02-10 Canon Kabushiki Kaisha Recording apparatus
US6870570B1 (en) * 2000-10-31 2005-03-22 Matsushita Electric Industrial Co., Ltd. Television receiver with shared data port and control software
US20050076359A1 (en) * 1999-12-21 2005-04-07 Andrew Pierson Modifying commercials for multi-speed playback
US20050086666A1 (en) * 2001-06-08 2005-04-21 Xsides Corporation Method and system for maintaining secure data input and output
US20050108519A1 (en) * 2000-03-02 2005-05-19 Tivo Inc. Secure multimedia transfer system
EP1549063A1 (en) * 2002-09-10 2005-06-29 Sanyo Electric Co., Ltd. Moving image recording device
US20050193139A1 (en) * 1997-06-16 2005-09-01 Jeffrey Vinson Software streaming system and method
US6941383B1 (en) * 2000-01-20 2005-09-06 Interactual Technologies, Inc. System, method and article of manufacture for java/javascript component in a multimedia synchronization framework
US6941059B1 (en) * 1999-05-07 2005-09-06 Sony Corporation Information processing method, information processing system and information processor
US6944621B1 (en) 1999-04-21 2005-09-13 Interactual Technologies, Inc. System, method and article of manufacture for updating content stored on a portable storage medium
US6944877B1 (en) * 1999-08-27 2005-09-13 Koninklijke Philips Electronics N.V. Closed loop addressable advertising system and method of operation
US20050204388A1 (en) * 1998-06-11 2005-09-15 Knudson Edward B. Series reminders and series recording from an interactive television program guide
US20060029078A1 (en) * 2004-08-05 2006-02-09 Alcatel Method for dealing with a request from a user for leaving and for zapping a multicast service channel with a slow leaving mechanism and apparatus thereof
US20060045472A1 (en) * 2004-08-26 2006-03-02 Thomas Poslinski Method and system for displaying one or more recorded media content instances
US20060072623A1 (en) * 2004-10-06 2006-04-06 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US20060100725A1 (en) * 2004-11-09 2006-05-11 Son Tae-Yong Analog/digital audio converter and a method thereof
US20060112414A1 (en) * 1999-06-07 2006-05-25 Nokia Corporation A data transfer adaptor and a method for transferring data
US20060127039A1 (en) * 2004-11-19 2006-06-15 Tivo Inc. Method and apparatus for secure transfer of previously broadcasted content
US20060168294A1 (en) * 2004-11-13 2006-07-27 De Vries Jeff Hybrid local/remote streaming
US7085855B1 (en) * 1999-10-15 2006-08-01 Seiko Epson Corporation Data transfer control device and electronic equipment
US20060174269A1 (en) * 2004-11-23 2006-08-03 Stmicroelectronics, Inc. Method and system for providing an electronic program guide
US20060212895A1 (en) * 2003-09-25 2006-09-21 Johnson Karin A Methods and apparatus to detect an operating state of a display
US20060230175A1 (en) * 2005-03-23 2006-10-12 De Vries Jeffrey System and method for tracking changes to files in streaming applications
US20060232575A1 (en) * 2003-09-25 2006-10-19 Nielsen Christen V Methods and apparatus to detect an operating state of a display based on visible light
US20060277276A1 (en) * 2005-05-19 2006-12-07 Michiaki Yoneda Content reproducing device and content reproducing method
US20060280435A1 (en) * 2005-06-03 2006-12-14 Lg Electronics Inc. Video display apparatus and method for storing and reproducing broadcasting program
US20070074163A1 (en) * 2004-10-18 2007-03-29 Koninkljke Philips Electronics N.V. Recording of scheduled broadcast in upnp
US20070083883A1 (en) * 2004-03-29 2007-04-12 Deng Kevin K Methods and apparatus to detect a blank frame in a digital video broadcast signal
US20070098361A1 (en) * 2005-11-03 2007-05-03 Samsung Electronics Co., Ltd. Broadcasting signal recording/playing system, broadcasting signal recording/playing apparatus and broadcasting signal tuning apparatus
US20070127887A1 (en) * 2000-03-23 2007-06-07 Adrian Yap Digital video recorder enhanced features
US20070154163A1 (en) * 2005-12-29 2007-07-05 United Video Properties, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US7257309B1 (en) * 2002-03-05 2007-08-14 Avica Technology Corporation Distributed storage of audio/video content
US20070192782A1 (en) * 2004-08-09 2007-08-16 Arun Ramaswamy Methods and apparatus to monitor audio/visual content from various sources
EP1843350A1 (en) * 2006-04-05 2007-10-10 Samsung Electronics Co., Ltd. Apparatus and method for playing content based on the last-watched-point of series content
US20080040771A1 (en) * 2004-11-10 2008-02-14 Yan-Mei Tang Talpin Device, System and Method for the Presentation of a Signal Having an Audio-Visual Content
US20080077957A1 (en) * 1996-06-14 2008-03-27 Starsight Telecast, Inc. Television schedule system and method of operation for multiple program occurrences
US20080083000A1 (en) * 2006-07-13 2008-04-03 British Telecommunications Public Limited Company Electronic programme guide for a mobile communications device
US20080109876A1 (en) * 2006-10-23 2008-05-08 Endeavors Technologies, Inc. Rule-based application access management
AU2004313257B2 (en) * 2004-01-16 2008-05-22 Trek 2000 International Ltd. A portable storage device for recording and playing back data
US7380260B1 (en) 2002-03-12 2008-05-27 Digeo, Inc. Focused navigation interface for a PC media center and extension device
US20080127283A1 (en) * 2001-09-03 2008-05-29 Gen Sasaki Program server and a receiver
US20080148307A1 (en) * 2005-08-16 2008-06-19 Nielsen Media Research, Inc. Display Device on/off Detection Methods and Apparatus
US20080178298A1 (en) * 2001-02-14 2008-07-24 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US20080181574A1 (en) * 2001-02-21 2008-07-31 Ellis Michael D Systems and methods for interactive program guides with personal video recording features
US20080189749A1 (en) * 1998-11-30 2008-08-07 Microsoft Corporation Video on demand methods and systems
US20080201744A1 (en) * 2005-07-12 2008-08-21 Koninklijke Philips Electronics, N.V. Method and System For Managing Recorded Content Channels
US20080235731A1 (en) * 2007-03-22 2008-09-25 United Video Properties, Inc. User defined rules for assigning destinations of content
US20080259220A1 (en) * 2007-04-19 2008-10-23 At&T Knowledge Ventures, Lp System and method of navigating previously viewed channels
US20080270449A1 (en) * 2007-04-30 2008-10-30 Google Inc. Program Guide User Interface
US20090055854A1 (en) * 2006-05-18 2009-02-26 David Howell Wright Methods and apparatus for cooperator installed meters
US20090083612A1 (en) * 2007-09-20 2009-03-26 Baker Allen F Method for processing electronic documents
US20090103891A1 (en) * 2006-09-29 2009-04-23 Scott C Harris Digital video recorder with advanced user functions and network capability
US20090119458A1 (en) * 2007-11-07 2009-05-07 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US20090165057A1 (en) * 2007-12-20 2009-06-25 Kerry Philip Miller Concurrent program content processing apparatus, systems, and methods
US20090195696A1 (en) * 2008-01-07 2009-08-06 Toshiba America Consumer Products, Llc Channel system and method
US20090221326A1 (en) * 2006-03-07 2009-09-03 Thomson Licensing Communication Device and Base for an Advanced Display
EP1936624A3 (en) * 2006-12-21 2009-10-14 Tandberg Television Inc. Local digital asset storage management technique
US20090297122A1 (en) * 1999-12-21 2009-12-03 Barton James M Method for enhancing digital video recorder television advertising viewership
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US7711795B2 (en) 2000-01-20 2010-05-04 Sonic Solutions System, method and article of manufacture for remote control and navigation of local content
US20100114527A1 (en) * 2008-10-31 2010-05-06 Morris Lee Probabilistic methods and apparatus to determine the state of a media device
US20100138439A1 (en) * 2008-12-01 2010-06-03 Samsung Electronics Co., Ltd., Display apparatus and display method
US7738496B1 (en) 2002-12-31 2010-06-15 Cypress Semiconductor Corporation Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains
US20100169939A1 (en) * 2000-03-02 2010-07-01 Matt Arnold Method of Sharing Personal Media Using a Digital Recorder
US20100169904A1 (en) * 2008-12-30 2010-07-01 Nielsen Christen V Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US20100169908A1 (en) * 2008-12-30 2010-07-01 Nielsen Christen V Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US7779097B2 (en) 2000-09-07 2010-08-17 Sonic Solutions Methods and systems for use in network management of content
US20100220976A1 (en) * 2000-03-31 2010-09-02 United Video Properties, Inc. Systems and methods for reducing cut-offs in program recording
US20100333208A1 (en) * 2005-12-29 2010-12-30 Rovi Guides, Inc. Systems and methods for resolving conflicts and managing system resources in multimedia delivery systems
WO2011015088A1 (en) * 2009-08-06 2011-02-10 中兴通讯股份有限公司 Updating method and apparatus for electronic program guide of mobile phone tv
US20110074815A1 (en) * 2003-07-18 2011-03-31 Panasonic Corporation Display processing method and display processing apparatus
US20110088062A1 (en) * 1998-11-30 2011-04-14 Microsoft Corporation Proxy for video on demand server control
US7934057B1 (en) 2003-12-24 2011-04-26 Cypress Semiconductor Corporation Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs
US20110167443A1 (en) * 2010-01-07 2011-07-07 Shenzhen Tcl New Technology Ltd. Method and device for updating regional rating table
EP2347580A1 (en) * 2008-10-03 2011-07-27 United Video Properties, Inc. Delete viewed portions of recorded programs
US8087051B2 (en) 2000-06-30 2011-12-27 Thomson Licensing Database management system and method for electronic program guide and television channel lineup organization
US8141117B1 (en) 2002-09-30 2012-03-20 Arris Group, Inc. PC media center and extension device for interfacing with a personal video recorder through a home network
US8145809B1 (en) 2007-03-09 2012-03-27 Cypress Semiconductor Corporation Busy detection logic for asynchronous communication port
US20120079385A1 (en) * 2006-11-10 2012-03-29 Rovi Guides, Inc. Systems and methods for using playlists
US8156517B2 (en) 2008-12-30 2012-04-10 The Nielsen Company (U.S.), Llc Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US8180712B2 (en) 2008-09-30 2012-05-15 The Nielsen Company (Us), Llc Methods and apparatus for determining whether a media presentation device is in an on state or an off state
CN102724584A (en) * 2012-06-18 2012-10-10 Tcl集团股份有限公司 Method and device for playing network videos online and smart television
US8291461B2 (en) 2000-10-11 2012-10-16 United Video Properties, Inc. Systems and methods for managing the distribution of on-demand media
US20120281704A1 (en) * 2011-05-02 2012-11-08 Butterworth Ashley I Methods and apparatus for isochronous data delivery within a network
US20130055311A1 (en) * 2011-08-23 2013-02-28 Echostar Technologies L.L.C. On Screen Display Content with Information on Stored Content Service Features
US8528032B2 (en) 1998-07-14 2013-09-03 United Video Properties, Inc. Client-server based interactive television program guide system with remote server recording
US8601514B1 (en) 2002-09-27 2013-12-03 Arris Enterprises, Inc. PC media center and extension device for a home entertainment system
AU2013202723B2 (en) * 2007-03-22 2014-01-30 Rovi Guides, Inc. User Defined Rules for Assigning Destinations of Content
US20140104995A1 (en) * 2000-04-14 2014-04-17 Jeffrey M. Chasen System and method for play while recording processing
US8806533B1 (en) 2004-10-08 2014-08-12 United Video Properties, Inc. System and method for using television information codes
US8813122B1 (en) * 1998-12-23 2014-08-19 Koninklijke Philips N.V. Apparatus and method for selecting, scheduling, and reproducing programs while accounting for scheduling gaps
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8925024B2 (en) 2009-12-31 2014-12-30 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
US9055273B2 (en) 2000-03-02 2015-06-09 Tivo Inc. System and method for internet access to a personal television service
US9071872B2 (en) 2003-01-30 2015-06-30 Rovi Guides, Inc. Interactive television systems with digital video recording and adjustable reminders
US9075861B2 (en) 2006-03-06 2015-07-07 Veveo, Inc. Methods and systems for segmenting relative user preferences into fine-grain and coarse-grain collections
US9125169B2 (en) 2011-12-23 2015-09-01 Rovi Guides, Inc. Methods and systems for performing actions based on location-based rules
US20150271440A1 (en) * 2012-10-26 2015-09-24 Sony Corporation Information processing apparatus, information processing method, program, and information processing system
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US9191722B2 (en) 1997-07-21 2015-11-17 Rovi Guides, Inc. System and method for modifying advertisement responsive to EPG information
US9264686B2 (en) 1998-07-30 2016-02-16 Tivo Inc. Tag-based menus in video streams
US9288425B2 (en) 2005-08-11 2016-03-15 Echostar Technologies L.L.C. Method and system for toasted video distribution
US9319735B2 (en) 1995-06-07 2016-04-19 Rovi Guides, Inc. Electronic television program guide schedule system and method with data feed access
US9326025B2 (en) 2007-03-09 2016-04-26 Rovi Technologies Corporation Media content search results ranked by popularity
US9374560B2 (en) 2005-12-29 2016-06-21 Rovi Guides, Inc. Systems and methods for managing a status change of a multimedia asset in multimedia delivery systems
US9398248B2 (en) 2011-11-28 2016-07-19 Microsoft Technology Licensing, Llc Identifying series candidates for digital video recorder
US9426509B2 (en) 1998-08-21 2016-08-23 Rovi Guides, Inc. Client-server electronic program guide
US9521356B2 (en) 1998-07-30 2016-12-13 Tivo Inc. Digital security surveillance system
US20170085926A1 (en) * 2004-07-23 2017-03-23 The Nielsen Company (Us), Llc Methods and apparatus for monitoring the insertion of local media into a program stream
US20170180673A1 (en) * 2015-12-22 2017-06-22 Samsung Electronics Co., Ltd. Remote control apparatus, method for controlling thereof, and display system
US9692535B2 (en) 2012-02-20 2017-06-27 The Nielsen Company (Us), Llc Methods and apparatus for automatic TV on/off detection
WO2017116744A1 (en) * 2015-12-30 2017-07-06 Roku, Inc. Controlling display of media content
US9736524B2 (en) 2011-01-06 2017-08-15 Veveo, Inc. Methods of and systems for content search based on environment sampling
US9749693B2 (en) 2006-03-24 2017-08-29 Rovi Guides, Inc. Interactive media guidance application with intelligent navigation and display features
US9788049B2 (en) 1998-07-30 2017-10-10 Tivo Solutions Inc. Multimedia signal processing system
US9807147B1 (en) * 1999-12-02 2017-10-31 Western Digital Technologies, Inc. Program recording webification
US9832496B2 (en) 2011-12-19 2017-11-28 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
CN107465946A (en) * 2016-06-03 2017-12-12 中兴通讯股份有限公司 Video broadcasting method, device, system and terminal device
US9848161B2 (en) 2003-04-21 2017-12-19 Rovi Guides, Inc. Video recorder having user extended and automatically extended time slots
US9848222B2 (en) 2015-07-15 2017-12-19 The Nielsen Company (Us), Llc Methods and apparatus to detect spillover
US9924224B2 (en) 2015-04-03 2018-03-20 The Nielsen Company (Us), Llc Methods and apparatus to determine a state of a media presentation device
US9986295B2 (en) 2009-04-08 2018-05-29 Tivo Solutions Inc. Automatic contact information transmission system
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US10153000B2 (en) 2006-06-22 2018-12-11 Tivo Solutions Inc. In-band data recognition and synchronization system
US10289737B1 (en) 2007-04-30 2019-05-14 Google Llc Media search broadening
US10382723B2 (en) * 2005-11-30 2019-08-13 S.I.Sv.El. Societa Italiana Per Lo Sviluppo Dell'elettronica S.P.A. Method and system for generating a recommendation for at least one further content item
US11245942B2 (en) 2007-03-12 2022-02-08 Broadband Itv, Inc. Method for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11259060B2 (en) 2004-07-30 2022-02-22 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11259089B2 (en) 2004-07-30 2022-02-22 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US11265589B2 (en) 2007-06-26 2022-03-01 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
CN114449349A (en) * 2020-10-30 2022-05-06 深圳Tcl新技术有限公司 Program recording method, device, equipment and computer readable storage medium
US11425459B2 (en) 2020-05-28 2022-08-23 Dish Network L.L.C. Systems and methods to generate guaranteed advertisement impressions
US11523172B2 (en) 2020-06-24 2022-12-06 Dish Network L.L.C. Systems and methods for using metadata to play media assets stored on a digital video recorder
US11570521B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11595724B2 (en) 2020-05-28 2023-02-28 Dish Network L.L.C. Systems and methods for selecting and restricting playing of media assets stored on a digital video recorder
US11606599B2 (en) 2020-06-10 2023-03-14 Dish Network, L.L.C. Systems and methods for playing media assets stored on a digital video recorder
US11632415B2 (en) 2004-03-23 2023-04-18 Ioengine, Llc Apparatus, method and system for a tunneling client access point
US11838596B2 (en) 2020-05-28 2023-12-05 Dish Network L.L.C. Systems and methods for overlaying media assets stored on a digital video recorder on a menu or guide
US11962862B2 (en) 2020-06-10 2024-04-16 Dish Network L.L.C. Systems and methods for playing media assets stored on a digital video recorder while a customer service representative is online

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11107038B2 (en) 2015-02-03 2021-08-31 PEOZZLE Corporation Multimedia resume distribution system
CN106550203B (en) * 2016-12-07 2019-07-23 高新兴科技集团股份有限公司 A kind of video prerecording method and its application for realizing monitor video based on file cache

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04211844A (en) * 1990-01-19 1992-08-03 Texas Instr Inc <Ti> Apparatus and method for deflagment of filing system
US5150407A (en) * 1991-12-16 1992-09-22 Chan Steve S C Secured data storage devices
US6973669B2 (en) * 1993-03-29 2005-12-06 Microsoft Corporation Pausing television programming in response to selection of hypertext link
JPH07226026A (en) * 1994-02-15 1995-08-22 Sony Corp Digital signal recording/reproducing device
JPH0876933A (en) * 1994-09-08 1996-03-22 Asahi Optical Co Ltd Controller for format operation of hard disk
US5742892A (en) * 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
US5802068A (en) * 1995-06-30 1998-09-01 Nippon Steel Corporation Multiplexing apparatus of a plurality of data having different bit rates
KR100200609B1 (en) * 1996-07-30 1999-06-15 윤종용 KBPS reservation recording apparatus and method in two tuner system
US6262776B1 (en) * 1996-12-13 2001-07-17 Microsoft Corporation System and method for maintaining synchronization between audio and video
JPH10199142A (en) * 1997-01-06 1998-07-31 Sony Corp Program recording device
US6772284B2 (en) * 1997-03-18 2004-08-03 Kabushiki Kaisha Toshiba Disk apparatus capable of continuous display of data using a single recording head
JPH10276405A (en) * 1997-03-27 1998-10-13 Sony Corp Device and method for reproducing information
KR100438693B1 (en) * 1997-06-04 2005-08-17 삼성전자주식회사 Voice and video multiple transmission system
US6363204B1 (en) * 1997-09-30 2002-03-26 Compaq Computer Corporation Viewing management for video sources
US7272298B1 (en) * 1998-05-06 2007-09-18 Burst.Com, Inc. System and method for time-shifted program viewing

Cited By (440)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319735B2 (en) 1995-06-07 2016-04-19 Rovi Guides, Inc. Electronic television program guide schedule system and method with data feed access
US8955013B2 (en) 1996-06-14 2015-02-10 Rovi Guides, Inc. Television schedule system and method of operation for multiple program occurrences
US8522282B2 (en) 1996-06-14 2013-08-27 Starsight Telecast, Inc. Television schedule system and method of operation for multiple program occurrences
US20080077957A1 (en) * 1996-06-14 2008-03-27 Starsight Telecast, Inc. Television schedule system and method of operation for multiple program occurrences
US9094480B2 (en) 1997-06-16 2015-07-28 Numecent Holdings, Inc. Software streaming system and method
US20050193139A1 (en) * 1997-06-16 2005-09-01 Jeffrey Vinson Software streaming system and method
US7577751B2 (en) * 1997-06-16 2009-08-18 Stream Theory, Inc./Endeavors Technologies, Inc. Software streaming system and method
US20100023640A1 (en) * 1997-06-16 2010-01-28 Stream Theory, Inc. Software streaming system and method
US8509230B2 (en) 1997-06-16 2013-08-13 Numecent Holdings, Inc. Software streaming system and method
US9191722B2 (en) 1997-07-21 2015-11-17 Rovi Guides, Inc. System and method for modifying advertisement responsive to EPG information
US9426533B2 (en) 1998-06-11 2016-08-23 Rovi Guides, Inc. Series reminders and series recording from an interactive television program guide
US8745669B2 (en) 1998-06-11 2014-06-03 United Video Properties, Inc. Series reminders and series recording from an interactive program guide
US9521461B2 (en) 1998-06-11 2016-12-13 Rovi Guides, Inc. Series reminders and series recording from an interactive television program guide
US20050240968A1 (en) * 1998-06-11 2005-10-27 Knudson Edward B Series recording options using an interactive television program guide
US20050273819A1 (en) * 1998-06-11 2005-12-08 United Video Properties, Inc. Series recording using an interactive television program guide
US20100287590A1 (en) * 1998-06-11 2010-11-11 United Video Properties, Inc. Series reminders and series recording from an interactive program guide
US8464296B2 (en) 1998-06-11 2013-06-11 United Video Properties, Inc. Series reminders and series recording from an interactive program guide
US20080184313A1 (en) * 1998-06-11 2008-07-31 Knudson Edward B Series reminders and series recording from an interactive program guide
US8522287B2 (en) 1998-06-11 2013-08-27 United Video Properties, Inc. Series reminders and series recording from an interactive program guide
US9032445B2 (en) 1998-06-11 2015-05-12 Rovi Guides, Inc. Series reminders and series recording from an interactive television program guide
US9043844B2 (en) 1998-06-11 2015-05-26 Rovi Guides, Inc. Series reminders and series recording from an interactive television program guide
US8555321B2 (en) 1998-06-11 2013-10-08 United Video Properties, Inc. Series reminders and series recording from an interactive program guide
US20050204388A1 (en) * 1998-06-11 2005-09-15 Knudson Edward B. Series reminders and series recording from an interactive television program guide
US20020199193A1 (en) * 1998-06-12 2002-12-26 Metabyte Networks, Inc. System and method for generating and managing user preference information for scheduled and stored television programs
US8351763B2 (en) 1998-06-12 2013-01-08 Thomson Licensing Television program recording with user preference determination
US8352984B2 (en) 1998-06-12 2013-01-08 Thomson Licensing System and method for generating and managing user preference information for scheduled and stored television programs
US20030118323A1 (en) * 1998-06-12 2003-06-26 Ismail Labeeb K. Television program recording with user preference determination
US9021538B2 (en) 1998-07-14 2015-04-28 Rovi Guides, Inc. Client-server based interactive guide with server recording
US9154843B2 (en) 1998-07-14 2015-10-06 Rovi Guides, Inc. Client-server based interactive guide with server recording
US9118948B2 (en) 1998-07-14 2015-08-25 Rovi Guides, Inc. Client-server based interactive guide with server recording
US9226006B2 (en) 1998-07-14 2015-12-29 Rovi Guides, Inc. Client-server based interactive guide with server recording
US9055319B2 (en) 1998-07-14 2015-06-09 Rovi Guides, Inc. Interactive guide with recording
US9232254B2 (en) 1998-07-14 2016-01-05 Rovi Guides, Inc. Client-server based interactive television guide with server recording
US9055318B2 (en) 1998-07-14 2015-06-09 Rovi Guides, Inc. Client-server based interactive guide with server storage
US10075746B2 (en) 1998-07-14 2018-09-11 Rovi Guides, Inc. Client-server based interactive television guide with server recording
US10298973B2 (en) 1998-07-14 2019-05-21 Rovi Guides, Inc. Client-server based interactive television program guide system with remote server recording
US8776126B2 (en) 1998-07-14 2014-07-08 United Video Properties, Inc. Client-server based interactive television guide with server recording
US8528032B2 (en) 1998-07-14 2013-09-03 United Video Properties, Inc. Client-server based interactive television program guide system with remote server recording
US9264686B2 (en) 1998-07-30 2016-02-16 Tivo Inc. Tag-based menus in video streams
US9800823B2 (en) 1998-07-30 2017-10-24 Tivo Solutions Inc. Digital security surveillance system
US9521356B2 (en) 1998-07-30 2016-12-13 Tivo Inc. Digital security surveillance system
US9407891B2 (en) 1998-07-30 2016-08-02 Tivo Inc. One-touch recording of a program being advertised
US10021446B2 (en) 1998-07-30 2018-07-10 Tivo Solutions Inc. Multimedia stream processing system
US9854199B2 (en) 1998-07-30 2017-12-26 Tivo Solutions Inc. Multiple outlet digital video recording system
US9788049B2 (en) 1998-07-30 2017-10-10 Tivo Solutions Inc. Multimedia signal processing system
US9426509B2 (en) 1998-08-21 2016-08-23 Rovi Guides, Inc. Client-server electronic program guide
US20080189749A1 (en) * 1998-11-30 2008-08-07 Microsoft Corporation Video on demand methods and systems
US20110088062A1 (en) * 1998-11-30 2011-04-14 Microsoft Corporation Proxy for video on demand server control
US20080196070A1 (en) * 1998-11-30 2008-08-14 Microsoft Corporation Video on demand methods and systems
US20040264920A1 (en) * 1998-12-07 2004-12-30 Index Systems, Inc. System and method for generating video taping reminders
US8265458B2 (en) * 1998-12-07 2012-09-11 Index Systems, Inc. System and method for generating video taping reminders
US8792776B2 (en) * 1998-12-07 2014-07-29 Index Systems, Inc. System and method for generating video taping reminders
US20160173952A1 (en) * 1998-12-07 2016-06-16 Rovi Guides, Inc. System and method for generating video taping reminders
US9654836B2 (en) * 1998-12-07 2017-05-16 Rovi Guides, Inc. System and method for generating video taping reminders
US8813122B1 (en) * 1998-12-23 2014-08-19 Koninklijke Philips N.V. Apparatus and method for selecting, scheduling, and reproducing programs while accounting for scheduling gaps
US6564005B1 (en) * 1999-01-28 2003-05-13 International Business Machines Corporation Multi-user video hard disk recorder
US6762797B1 (en) * 1999-04-14 2004-07-13 Koninklijke Philips Electronics N.V. Method and apparatus for catch-up video viewing
US6944621B1 (en) 1999-04-21 2005-09-13 Interactual Technologies, Inc. System, method and article of manufacture for updating content stored on a portable storage medium
US7088908B2 (en) 1999-05-07 2006-08-08 Sony Corporation Information processing method, information processing system and information processing apparatus
US6941059B1 (en) * 1999-05-07 2005-09-06 Sony Corporation Information processing method, information processing system and information processor
US20050232584A1 (en) * 1999-05-07 2005-10-20 Mari Horiguchi Information processing method, information processing system and information processing apparatus
US20050235328A1 (en) * 1999-05-07 2005-10-20 Mari Horiguchi Information processing method, information processing system and information processing apparatus
US20050196135A1 (en) * 1999-05-07 2005-09-08 Mari Horiguchi Information processing method, information processing system and information processing apparatus
US7130523B2 (en) 1999-05-07 2006-10-31 Sony Corporation Information processing method, information processing system and information processing apparatus
US7095946B2 (en) 1999-05-07 2006-08-22 Sony Corporation Information processing method, information processing system and information processing apparatus
US20060112414A1 (en) * 1999-06-07 2006-05-25 Nokia Corporation A data transfer adaptor and a method for transferring data
USRE42369E1 (en) 1999-06-29 2011-05-17 Lg Electronics Inc. Feature-dependent operating method between two connected equipments and an apparatus for controlling the operating method
USRE42348E1 (en) 1999-06-29 2011-05-10 Lg Electronics Inc. Feature-dependent operating method between two connected equipments and an apparatus for controlling the operating method
USRE41407E1 (en) 1999-06-29 2010-06-29 Lg Electronics Inc. Feature-dependent operating method between two connected equipments and an apparatus for controlling the operating method
US6738559B1 (en) * 1999-06-29 2004-05-18 Lg Electronics Inc. Feature-dependent operating method between two connected equipments and an apparatus for controlling the operating method
USRE41389E1 (en) 1999-06-29 2010-06-22 Lg Electronics Inc. Feature-dependent operating method between two connected equipments and an apparatus for controlling the operating method
US6944877B1 (en) * 1999-08-27 2005-09-13 Koninklijke Philips Electronics N.V. Closed loop addressable advertising system and method of operation
US7085855B1 (en) * 1999-10-15 2006-08-01 Seiko Epson Corporation Data transfer control device and electronic equipment
US10382526B2 (en) 1999-12-02 2019-08-13 Western Digital Technologies, Inc. Program recording webification
US9807147B1 (en) * 1999-12-02 2017-10-31 Western Digital Technologies, Inc. Program recording webification
US9032456B2 (en) 1999-12-21 2015-05-12 Tivo Inc. Modifying commercials for multi-speed playback
US20050076359A1 (en) * 1999-12-21 2005-04-07 Andrew Pierson Modifying commercials for multi-speed playback
US8965182B2 (en) 1999-12-21 2015-02-24 Tivo Inc. Broadcast program recording overrun and underrun scheduling system
US20090297122A1 (en) * 1999-12-21 2009-12-03 Barton James M Method for enhancing digital video recorder television advertising viewership
US8645989B2 (en) * 1999-12-21 2014-02-04 Tivo Inc. Method for enhancing digital video recorder television advertising viewership
US20110154407A1 (en) * 1999-12-21 2011-06-23 Tivo Inc. Broadcast Program Recording Overrun and Underrun Scheduling System
US6941383B1 (en) * 2000-01-20 2005-09-06 Interactual Technologies, Inc. System, method and article of manufacture for java/javascript component in a multimedia synchronization framework
US7711795B2 (en) 2000-01-20 2010-05-04 Sonic Solutions System, method and article of manufacture for remote control and navigation of local content
US10206010B2 (en) 2000-03-02 2019-02-12 Tivo Solutions Inc. Method of sharing personal media using a digital recorder
US9055273B2 (en) 2000-03-02 2015-06-09 Tivo Inc. System and method for internet access to a personal television service
US20100175093A1 (en) * 2000-03-02 2010-07-08 Tivo Inc. Method of Sharing Personal Media Using a Digital Recorder
US20100169939A1 (en) * 2000-03-02 2010-07-01 Matt Arnold Method of Sharing Personal Media Using a Digital Recorder
US10080063B2 (en) * 2000-03-02 2018-09-18 Tivo Solutions Inc. Method of sharing personal media using a digital recorder
US9854289B2 (en) 2000-03-02 2017-12-26 Tivo Solutions Inc. Secure multimedia transfer system
US20110093892A1 (en) * 2000-03-02 2011-04-21 Tivo Inc. Method of Sharing Personal Media Using a Digital Recorder
US8812850B2 (en) 2000-03-02 2014-08-19 Tivo Inc. Secure multimedia transfer system
US9313548B2 (en) 2000-03-02 2016-04-12 Tivo Inc. System and method for internet access to a personal television service
US20050108519A1 (en) * 2000-03-02 2005-05-19 Tivo Inc. Secure multimedia transfer system
US7284275B2 (en) * 2000-03-15 2007-10-16 Sony Corporation Information playback apparatus method and recording medium
US20010037459A1 (en) * 2000-03-15 2001-11-01 Shigeho Ogawa Information playback apparatus and method as well as recording medium
US8312490B2 (en) * 2000-03-23 2012-11-13 The Directv Group, Inc. DVR with enhanced functionality
US20070127887A1 (en) * 2000-03-23 2007-06-07 Adrian Yap Digital video recorder enhanced features
US20010033736A1 (en) * 2000-03-23 2001-10-25 Andrian Yap DVR with enhanced functionality
US9307278B2 (en) 2000-03-31 2016-04-05 Rovi Guides, Inc. Systems and methods for reducing cut-offs in program recording
US20100220976A1 (en) * 2000-03-31 2010-09-02 United Video Properties, Inc. Systems and methods for reducing cut-offs in program recording
US10141028B2 (en) * 2000-04-14 2018-11-27 Intel Corporation System and method for play while recording processing
US20140104995A1 (en) * 2000-04-14 2014-04-17 Jeffrey M. Chasen System and method for play while recording processing
US20140105569A1 (en) * 2000-04-14 2014-04-17 Jeffrey M. Chasen System and method for play while recording processing
US8087051B2 (en) 2000-06-30 2011-12-27 Thomson Licensing Database management system and method for electronic program guide and television channel lineup organization
US7779097B2 (en) 2000-09-07 2010-08-17 Sonic Solutions Methods and systems for use in network management of content
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US20030097657A1 (en) * 2000-09-14 2003-05-22 Yiming Zhou Method and system for delivery of targeted programming
US20030067554A1 (en) * 2000-09-25 2003-04-10 Klarfeld Kenneth A. System and method for personalized TV
US8302127B2 (en) 2000-09-25 2012-10-30 Thomson Licensing System and method for personalized TV
US6631455B1 (en) * 2000-09-29 2003-10-07 Cypress Semiconductor Corp. Logic for initializing the depth of the queue pointer memory
US9294799B2 (en) 2000-10-11 2016-03-22 Rovi Guides, Inc. Systems and methods for providing storage of data on servers in an on-demand media delivery system
US8291461B2 (en) 2000-10-11 2012-10-16 United Video Properties, Inc. Systems and methods for managing the distribution of on-demand media
US9197916B2 (en) 2000-10-11 2015-11-24 Rovi Guides, Inc. Systems and methods for communicating and enforcing viewing and recording limits for media-on-demand
US6870570B1 (en) * 2000-10-31 2005-03-22 Matsushita Electric Industrial Co., Ltd. Television receiver with shared data port and control software
US20030004882A1 (en) * 2000-11-06 2003-01-02 Holler Anne Marie Optimized server for streamed applications
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US9654548B2 (en) 2000-11-06 2017-05-16 Numecent Holdings, Inc. Intelligent network streaming and execution system for conventionally coded applications
US9130953B2 (en) 2000-11-06 2015-09-08 Numecent Holdings, Inc. Intelligent network streaming and execution system for conventionally coded applications
US20020087996A1 (en) * 2000-11-10 2002-07-04 Depeng Bi Interactive remote control of audio or video playback and selections
USRE45774E1 (en) * 2000-12-20 2015-10-20 Tivo Inc. Smart broadcast program recording padding and scheduling system
US7882520B2 (en) * 2000-12-20 2011-02-01 Tivo Inc. Broadcast program recording overrun and underrun scheduling system
US20020191954A1 (en) * 2000-12-20 2002-12-19 Brian Beach Broadcast program recording overrun and underrun scheduling system
US9277264B2 (en) 2001-01-09 2016-03-01 Thomson Licensing System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters
US8495680B2 (en) 2001-01-09 2013-07-23 Thomson Licensing System and method for behavioral model clustering in television usage, targeted advertising via model clustering, and preference programming based on behavioral model clusters
US8850465B2 (en) 2001-01-09 2014-09-30 Thomson Licensing System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters
US8046797B2 (en) 2001-01-09 2011-10-25 Thomson Licensing System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters
US20030101451A1 (en) * 2001-01-09 2003-05-29 Isaac Bentolila System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters
US20020097986A1 (en) * 2001-01-23 2002-07-25 Nec Corporation Broadcast storage system with reduced user's control actions
US7684672B2 (en) * 2001-01-23 2010-03-23 Nec Corporation Broadcast storage system with reduced user's control actions
US20080178298A1 (en) * 2001-02-14 2008-07-24 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8893249B2 (en) 2001-02-14 2014-11-18 Numecent Holdings, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8438298B2 (en) 2001-02-14 2013-05-07 Endeavors Technologies, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8768147B2 (en) * 2001-02-21 2014-07-01 United Video Properties, Inc. Systems and methods for interactive program guides with personal video recording features
US10951927B2 (en) * 2001-02-21 2021-03-16 Rovi Guides, Inc. Systems and methods for interactive program guides with personal video recording features
US9055322B2 (en) 2001-02-21 2015-06-09 Rovi Guides, Inc. Systems and methods for interactive program guides with personal video recording features
US9648358B2 (en) * 2001-02-21 2017-05-09 Rovi Guides, Inc. Systems and methods for interactive program guides with personal video recording features
US9930374B2 (en) 2001-02-21 2018-03-27 Rovi Guides, Inc. Systems and methods for interactive program guides with personal video recording features
US20180255328A1 (en) * 2001-02-21 2018-09-06 Rovi Guides, Inc. Systems and methods for interactive program guides with personal video recording features
US8457475B2 (en) 2001-02-21 2013-06-04 United Video Properties, Inc. Systems and methods for interactive program guides with personal video recording features
US20080184297A1 (en) * 2001-02-21 2008-07-31 Ellis Michael D Systems and methods for interactive program guides with personal video recording features
US20090310937A1 (en) * 2001-02-21 2009-12-17 United Video Properties, Inc. Systems and methods for interactive program guides with personal video recording features
US20080181574A1 (en) * 2001-02-21 2008-07-31 Ellis Michael D Systems and methods for interactive program guides with personal video recording features
US20020124252A1 (en) * 2001-03-02 2002-09-05 Schaefer Scott R. Method and system to provide information alerts via an interactive video casting system
US20040155985A1 (en) * 2001-06-05 2004-08-12 Frank Dethier Interface unit
US20050204165A1 (en) * 2001-06-08 2005-09-15 Xsides Corporation Method and system for maintaining secure data input and output
US20050149485A1 (en) * 2001-06-08 2005-07-07 Xsides Corporation Method and system for maintaining secure data input and output
US20050102264A1 (en) * 2001-06-08 2005-05-12 Xsides Corporation Method and system for maintaining secure data input and output
US7007025B1 (en) * 2001-06-08 2006-02-28 Xsides Corporation Method and system for maintaining secure data input and output
US8370646B2 (en) 2001-06-08 2013-02-05 Xsides Corporation Method and system for maintaining secure data input and output
US20050086666A1 (en) * 2001-06-08 2005-04-21 Xsides Corporation Method and system for maintaining secure data input and output
US20100077360A1 (en) * 2001-06-08 2010-03-25 Nason D David Method and system for maintaining secure data input and output
US20050102266A1 (en) * 2001-06-08 2005-05-12 Xsides Corporation Method and system for maintaining secure data input and output
US20050149486A1 (en) * 2001-06-08 2005-07-07 Xsides Corporation Method and system for maintaining secure data input and output
US20100077231A1 (en) * 2001-06-08 2010-03-25 Nason D David Method and system for maintaining secure data input and output
US20050108525A1 (en) * 2001-06-08 2005-05-19 Xsides Corporation Method and system for maintaining secure data input and output
US8818871B2 (en) 2001-06-21 2014-08-26 Thomson Licensing Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US20030236756A1 (en) * 2001-06-21 2003-12-25 Metabyte Networks, Inc. Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US20060179006A1 (en) * 2001-06-21 2006-08-10 Metabyte Networks, Inc. Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US8538892B2 (en) 2001-06-21 2013-09-17 Thomson Licenging Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US20030041327A1 (en) * 2001-08-24 2003-02-27 Newton Philip Steven System with improved user interface
US20080127283A1 (en) * 2001-09-03 2008-05-29 Gen Sasaki Program server and a receiver
US7359618B2 (en) * 2001-09-13 2008-04-15 Sony Corporation Information recording/reproducing apparatus and information recording/reproducing method
US20040136684A1 (en) * 2001-09-13 2004-07-15 Toshiaki Kojima Information recording/reproducing apparatus and information recording/reproducing method
US20030131191A1 (en) * 2001-11-26 2003-07-10 Broadlogic Network Technologies, Inc. Multi-stream access scheme for high speed access and recording using a hard disk drive
US7647459B2 (en) * 2001-11-26 2010-01-12 Broadlogic Network Technologies, Inc. Multi-stream access scheme for high speed access and recording using a hard disk drive
US20030118321A1 (en) * 2001-12-21 2003-06-26 Sparrell Carlton J. Digital video recording and reproduction system and method suitable for live-pause playback utilizing intelligent buffer memory allocation
US20070258697A1 (en) * 2002-03-05 2007-11-08 Elswick William E Distributed storage of audio/video content
US7257309B1 (en) * 2002-03-05 2007-08-14 Avica Technology Corporation Distributed storage of audio/video content
US8601507B2 (en) 2002-03-12 2013-12-03 Arris Enterprises, Inc. System and method for focused navigation in a media center/extension device architecture
US7380260B1 (en) 2002-03-12 2008-05-27 Digeo, Inc. Focused navigation interface for a PC media center and extension device
US20080276273A1 (en) * 2002-03-12 2008-11-06 Digeo, Inc. System and method for focused navigation in a media center/extension device architecture
US20040013409A1 (en) * 2002-04-26 2004-01-22 Brian Beach Smart broadcast program recording padding and scheduling system
US7877768B2 (en) * 2002-04-26 2011-01-25 Tivo Inc. Smart broadcast program recording padding and scheduling system
US20030228126A1 (en) * 2002-06-05 2003-12-11 Buxton Mark J. Multiple programmable video recorder using interleaved writes
EP1549063A4 (en) * 2002-09-10 2010-09-01 Sanyo Electric Co Moving image recording device
EP1549063A1 (en) * 2002-09-10 2005-06-29 Sanyo Electric Co., Ltd. Moving image recording device
WO2004028155A2 (en) * 2002-09-19 2004-04-01 Image Stream Medical, Llc Streaming digital recording system
WO2004028155A3 (en) * 2002-09-19 2004-04-22 Image Stream Medical Llc Streaming digital recording system
US20040057697A1 (en) * 2002-09-19 2004-03-25 Peter Renzi Streaming digital recording system
US8601514B1 (en) 2002-09-27 2013-12-03 Arris Enterprises, Inc. PC media center and extension device for a home entertainment system
US8141117B1 (en) 2002-09-30 2012-03-20 Arris Group, Inc. PC media center and extension device for interfacing with a personal video recorder through a home network
US20040086261A1 (en) * 2002-11-01 2004-05-06 Hanes David H. Video segment extraction system and method
WO2004043064A1 (en) * 2002-11-07 2004-05-21 Koninklijke Philips Electronics N.V. Tracking of partially viewed shows so that they can be marked for deletion when a personal video recorder runs out of space
US7260309B2 (en) 2002-11-07 2007-08-21 Koninklijke Philips Electronics N.V. Tracking of partially viewed shows so that they can be marked for deletion when a personal video recorder runs out of space
US7738496B1 (en) 2002-12-31 2010-06-15 Cypress Semiconductor Corporation Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains
US9369741B2 (en) 2003-01-30 2016-06-14 Rovi Guides, Inc. Interactive television systems with digital video recording and adjustable reminders
US9071872B2 (en) 2003-01-30 2015-06-30 Rovi Guides, Inc. Interactive television systems with digital video recording and adjustable reminders
US9848161B2 (en) 2003-04-21 2017-12-19 Rovi Guides, Inc. Video recorder having user extended and automatically extended time slots
US20040264934A1 (en) * 2003-06-11 2004-12-30 Koji Ishikawa Device and method for recording on and playing back a disc
US20040252246A1 (en) * 2003-06-12 2004-12-16 Samsung Electronics Co., Ltd. TV signal receiving module and portable computer having the same
US20050008345A1 (en) * 2003-07-01 2005-01-13 Choi Yong-Hun Digital audio/video apparatus and method that can perform additional operations
US8001289B2 (en) * 2003-07-01 2011-08-16 Samsung Electronics Co., Ltd. Digital audio/video apparatus and method that can perform additional operations
US8144174B2 (en) * 2003-07-18 2012-03-27 Panasonic Corporation Display processing method and display processing apparatus
US20110074815A1 (en) * 2003-07-18 2011-03-31 Panasonic Corporation Display processing method and display processing apparatus
US20050031307A1 (en) * 2003-08-07 2005-02-10 Canon Kabushiki Kaisha Recording apparatus
US7430362B2 (en) * 2003-08-07 2008-09-30 Canon Kabushiki Kaisha Recording apparatus with determining whether or not information signals recorded previously on recording medium in accordance with repetitive recording reservation program have already been reproduced
US20060232575A1 (en) * 2003-09-25 2006-10-19 Nielsen Christen V Methods and apparatus to detect an operating state of a display based on visible light
US20060212895A1 (en) * 2003-09-25 2006-09-21 Johnson Karin A Methods and apparatus to detect an operating state of a display
US9027043B2 (en) 2003-09-25 2015-05-05 The Nielsen Company (Us), Llc Methods and apparatus to detect an operating state of a display
US7786987B2 (en) 2003-09-25 2010-08-31 The Nielsen Company (Us), Llc Methods and apparatus to detect an operating state of a display based on visible light
US7934057B1 (en) 2003-12-24 2011-04-26 Cypress Semiconductor Corporation Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs
US20080212940A1 (en) * 2004-01-16 2008-09-04 Henry Tan Portable Storage Device For Recording and Playing Back Data
US8208786B2 (en) 2004-01-16 2012-06-26 Trek 2000 International Ltd. Portable storage device for recording and playing back data
AU2004313257B2 (en) * 2004-01-16 2008-05-22 Trek 2000 International Ltd. A portable storage device for recording and playing back data
US11632415B2 (en) 2004-03-23 2023-04-18 Ioengine, Llc Apparatus, method and system for a tunneling client access point
US11818195B1 (en) 2004-03-23 2023-11-14 Ioengine, Llc Apparatus, method and system for a tunneling client access point
US11818194B2 (en) 2004-03-23 2023-11-14 Ioengine, Llc Apparatus, method and system for a tunneling client access point
US7984462B2 (en) 2004-03-29 2011-07-19 The Nielsen Company (Us), Llc Methods and apparatus to detect a blank frame in a digital video broadcast signal
US20070083883A1 (en) * 2004-03-29 2007-04-12 Deng Kevin K Methods and apparatus to detect a blank frame in a digital video broadcast signal
US11496231B2 (en) 2004-03-29 2022-11-08 The Nielsen Company (Us), Llc Methods and apparatus to detect a blank frame in a digital video broadcast signal
US10356446B2 (en) * 2004-07-23 2019-07-16 The Nielsen Company (Us), Llc Methods and apparatus for monitoring the insertion of local media into a program stream
US20170085926A1 (en) * 2004-07-23 2017-03-23 The Nielsen Company (Us), Llc Methods and apparatus for monitoring the insertion of local media into a program stream
US11477496B2 (en) 2004-07-23 2022-10-18 The Nielsen Company (Us), Llc Methods and apparatus for monitoring the insertion of local media into a program stream
US11310541B2 (en) 2004-07-23 2022-04-19 The Nielsen Company (Us), Llc Methods and apparatus for monitoring the insertion of local media into a program stream
US11259089B2 (en) 2004-07-30 2022-02-22 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US11259060B2 (en) 2004-07-30 2022-02-22 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11516525B2 (en) 2004-07-30 2022-11-29 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11601697B2 (en) 2004-07-30 2023-03-07 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11272233B2 (en) 2004-07-30 2022-03-08 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20060029078A1 (en) * 2004-08-05 2006-02-09 Alcatel Method for dealing with a request from a user for leaving and for zapping a multicast service channel with a slow leaving mechanism and apparatus thereof
US8683504B2 (en) 2004-08-09 2014-03-25 The Nielsen Company (Us), Llc. Methods and apparatus to monitor audio/visual content from various sources
US9301007B2 (en) 2004-08-09 2016-03-29 The Nielsen Company (Us), Llc Methods and apparatus to monitor audio/visual content from various sources
US20100172407A1 (en) * 2004-08-09 2010-07-08 Arun Ramaswamy Methods and apparatus to monitor audio/visual content from various sources
US8108888B2 (en) 2004-08-09 2012-01-31 The Nielsen Company (Us), Llc Methods and apparatus to monitor audio/visual content from various sources
US9015743B2 (en) 2004-08-09 2015-04-21 The Nielsen Company (Us), Llc Methods and apparatus to monitor audio/visual content from various sources
US7712114B2 (en) 2004-08-09 2010-05-04 The Nielsen Company (Us), Llc Methods and apparatus to monitor audio/visual content from various sources
US20070192782A1 (en) * 2004-08-09 2007-08-16 Arun Ramaswamy Methods and apparatus to monitor audio/visual content from various sources
US20060045472A1 (en) * 2004-08-26 2006-03-02 Thomas Poslinski Method and system for displaying one or more recorded media content instances
US7725827B2 (en) * 2004-08-26 2010-05-25 Sony Corporation Method and system for displaying one or more recorded media content instances
US7886323B2 (en) * 2004-10-06 2011-02-08 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US7707607B2 (en) * 2004-10-06 2010-04-27 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US20060072623A1 (en) * 2004-10-06 2006-04-06 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US20060126633A1 (en) * 2004-10-06 2006-06-15 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US7752644B2 (en) * 2004-10-06 2010-07-06 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US20060126634A1 (en) * 2004-10-06 2006-06-15 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US7636929B2 (en) * 2004-10-06 2009-12-22 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US20060130115A1 (en) * 2004-10-06 2006-06-15 Samsung Electronics Co., Ltd. Method and apparatus of providing and receiving video services in digital audio broadcasting (DAB) system
US8806533B1 (en) 2004-10-08 2014-08-12 United Video Properties, Inc. System and method for using television information codes
US20070074163A1 (en) * 2004-10-18 2007-03-29 Koninkljke Philips Electronics N.V. Recording of scheduled broadcast in upnp
US10809967B2 (en) * 2004-11-09 2020-10-20 Samsung Electronics Co., Ltd. Analog/digital audio converter and a method thereof
US20170109129A1 (en) * 2004-11-09 2017-04-20 Samsung Electronics Co., Ltd. Analog/digital audio converter and a method thereof
US20060100725A1 (en) * 2004-11-09 2006-05-11 Son Tae-Yong Analog/digital audio converter and a method thereof
US9557959B2 (en) 2004-11-09 2017-01-31 Samsung Electronics Co., Ltd. Analog/digital audio converter and a method thereof
US8954171B2 (en) * 2004-11-09 2015-02-10 Samsung Electronics Co., Ltd. Analog/digital audio converter and a method thereof
US20080040771A1 (en) * 2004-11-10 2008-02-14 Yan-Mei Tang Talpin Device, System and Method for the Presentation of a Signal Having an Audio-Visual Content
US8359591B2 (en) 2004-11-13 2013-01-22 Streamtheory, Inc. Streaming from a media device
US20060168294A1 (en) * 2004-11-13 2006-07-27 De Vries Jeff Hybrid local/remote streaming
US8949820B2 (en) 2004-11-13 2015-02-03 Numecent Holdings, Inc. Streaming from a media device
US20060127039A1 (en) * 2004-11-19 2006-06-15 Tivo Inc. Method and apparatus for secure transfer of previously broadcasted content
US9258592B2 (en) 2004-11-19 2016-02-09 Tivo Inc. Method and apparatus for secure transfer of previously broadcasted content
US10735705B2 (en) 2004-11-19 2020-08-04 Tivo Solutions Inc. Method and apparatus for displaying branded video tags
US10440342B2 (en) 2004-11-19 2019-10-08 Tivo Solutions Inc. Secure transfer of previously broadcasted content
US20060174269A1 (en) * 2004-11-23 2006-08-03 Stmicroelectronics, Inc. Method and system for providing an electronic program guide
US7984467B2 (en) * 2004-11-23 2011-07-19 Stmicroelectronics, Inc. Method and system for providing an electronic program guide
US9300752B2 (en) 2005-03-23 2016-03-29 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US9716609B2 (en) 2005-03-23 2017-07-25 Numecent Holdings, Inc. System and method for tracking changes to files in streaming applications
US9781007B2 (en) 2005-03-23 2017-10-03 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US10587473B2 (en) 2005-03-23 2020-03-10 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US11121928B2 (en) 2005-03-23 2021-09-14 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US8527706B2 (en) 2005-03-23 2013-09-03 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US8898391B2 (en) 2005-03-23 2014-11-25 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US20060230175A1 (en) * 2005-03-23 2006-10-12 De Vries Jeffrey System and method for tracking changes to files in streaming applications
US20060277276A1 (en) * 2005-05-19 2006-12-07 Michiaki Yoneda Content reproducing device and content reproducing method
US7653686B2 (en) * 2005-05-19 2010-01-26 Sony Corporation Content reproducing device and content reproducing method
EP1729511A3 (en) * 2005-06-03 2008-07-16 LG Electronics Inc. Video display apparatus and method for storing and reproducing broadcasting program
US20060280435A1 (en) * 2005-06-03 2006-12-14 Lg Electronics Inc. Video display apparatus and method for storing and reproducing broadcasting program
US20070116428A1 (en) * 2005-06-03 2007-05-24 Lg Electronics Inc. Video display apparatus and method for storing and reproducing broadcasting program
US20080201744A1 (en) * 2005-07-12 2008-08-21 Koninklijke Philips Electronics, N.V. Method and System For Managing Recorded Content Channels
US9948882B2 (en) 2005-08-11 2018-04-17 DISH Technologies L.L.C. Method and system for toasted video distribution
US9288425B2 (en) 2005-08-11 2016-03-15 Echostar Technologies L.L.C. Method and system for toasted video distribution
US11546579B2 (en) 2005-08-16 2023-01-03 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US20080148307A1 (en) * 2005-08-16 2008-06-19 Nielsen Media Research, Inc. Display Device on/off Detection Methods and Apparatus
US9420334B2 (en) 2005-08-16 2016-08-16 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US10911749B2 (en) 2005-08-16 2021-02-02 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US8526626B2 (en) 2005-08-16 2013-09-03 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US10506226B2 (en) 2005-08-16 2019-12-10 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US10110889B2 (en) 2005-08-16 2018-10-23 The Nielsen Company (Us), Llc Display device ON/OFF detection methods and apparatus
US11831863B2 (en) 2005-08-16 2023-11-28 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US10306221B2 (en) 2005-08-16 2019-05-28 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US7882514B2 (en) 2005-08-16 2011-02-01 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US9961342B2 (en) 2005-08-16 2018-05-01 The Nielsen Company (Us), Llc Display device on/off detection methods and apparatus
US20070098361A1 (en) * 2005-11-03 2007-05-03 Samsung Electronics Co., Ltd. Broadcasting signal recording/playing system, broadcasting signal recording/playing apparatus and broadcasting signal tuning apparatus
US10382723B2 (en) * 2005-11-30 2019-08-13 S.I.Sv.El. Societa Italiana Per Lo Sviluppo Dell'elettronica S.P.A. Method and system for generating a recommendation for at least one further content item
US20120033950A1 (en) * 2005-12-29 2012-02-09 United Video Properties, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US20150095954A1 (en) * 2005-12-29 2015-04-02 Rovi Guides, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US20070154163A1 (en) * 2005-12-29 2007-07-05 United Video Properties, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US8938764B2 (en) * 2005-12-29 2015-01-20 Rovi Guides, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US20140089987A1 (en) * 2005-12-29 2014-03-27 United Video Properties, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US20100333208A1 (en) * 2005-12-29 2010-12-30 Rovi Guides, Inc. Systems and methods for resolving conflicts and managing system resources in multimedia delivery systems
US20100175090A1 (en) * 2005-12-29 2010-07-08 United Video Properties, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US9374560B2 (en) 2005-12-29 2016-06-21 Rovi Guides, Inc. Systems and methods for managing a status change of a multimedia asset in multimedia delivery systems
US8627378B2 (en) * 2005-12-29 2014-01-07 United Video Properties, Inc. Systems and methods for creating aggregations of episodes of series programming in order
US9128987B2 (en) 2006-03-06 2015-09-08 Veveo, Inc. Methods and systems for selecting and presenting content based on a comparison of preference signatures from multiple users
US9092503B2 (en) 2006-03-06 2015-07-28 Veveo, Inc. Methods and systems for selecting and presenting content based on dynamically identifying microgenres associated with the content
US10984037B2 (en) 2006-03-06 2021-04-20 Veveo, Inc. Methods and systems for selecting and presenting content on a first system based on user preferences learned on a second system
US9075861B2 (en) 2006-03-06 2015-07-07 Veveo, Inc. Methods and systems for segmenting relative user preferences into fine-grain and coarse-grain collections
US20090221326A1 (en) * 2006-03-07 2009-09-03 Thomson Licensing Communication Device and Base for an Advanced Display
US9401980B2 (en) 2006-03-07 2016-07-26 Thomson Licensing Method for communication with a portable communication device implemented at a base
US7925202B2 (en) * 2006-03-07 2011-04-12 Thomson Licensing Portable communication device for an advanced display
US9749693B2 (en) 2006-03-24 2017-08-29 Rovi Guides, Inc. Interactive media guidance application with intelligent navigation and display features
EP1843350A1 (en) * 2006-04-05 2007-10-10 Samsung Electronics Co., Ltd. Apparatus and method for playing content based on the last-watched-point of series content
US20090055854A1 (en) * 2006-05-18 2009-02-26 David Howell Wright Methods and apparatus for cooperator installed meters
US10153000B2 (en) 2006-06-22 2018-12-11 Tivo Solutions Inc. In-band data recognition and synchronization system
US20080083000A1 (en) * 2006-07-13 2008-04-03 British Telecommunications Public Limited Company Electronic programme guide for a mobile communications device
US20090103891A1 (en) * 2006-09-29 2009-04-23 Scott C Harris Digital video recorder with advanced user functions and network capability
US9054963B2 (en) 2006-10-23 2015-06-09 Numecent Holdings, Inc. Rule-based application access management
US9054962B2 (en) 2006-10-23 2015-06-09 Numecent Holdings, Inc. Rule-based application access management
US8752128B2 (en) 2006-10-23 2014-06-10 Numecent Holdings, Inc. Rule-based application access management
US8782778B2 (en) 2006-10-23 2014-07-15 Numecent Holdings, Inc. Rule-based application access management
US10356100B2 (en) 2006-10-23 2019-07-16 Numecent Holdings, Inc. Rule-based application access management
US9825957B2 (en) 2006-10-23 2017-11-21 Numecent Holdings, Inc. Rule-based application access management
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US11451548B2 (en) 2006-10-23 2022-09-20 Numecent Holdings, Inc Rule-based application access management
US9380063B2 (en) 2006-10-23 2016-06-28 Numecent Holdings, Inc. Rule-based application access management
US9571501B2 (en) 2006-10-23 2017-02-14 Numecent Holdings, Inc. Rule-based application access management
US9699194B2 (en) 2006-10-23 2017-07-04 Numecent Holdings, Inc. Rule-based application access management
US10057268B2 (en) 2006-10-23 2018-08-21 Numecent Holdings, Inc. Rule-based application access management
US20080109876A1 (en) * 2006-10-23 2008-05-08 Endeavors Technologies, Inc. Rule-based application access management
US9967509B2 (en) * 2006-11-10 2018-05-08 Rovi Guides, Inc. Systems and methods for using playlists
US20120079385A1 (en) * 2006-11-10 2012-03-29 Rovi Guides, Inc. Systems and methods for using playlists
EP1936624A3 (en) * 2006-12-21 2009-10-14 Tandberg Television Inc. Local digital asset storage management technique
US8370543B1 (en) 2007-03-09 2013-02-05 Cypress Semiconductor Corporation Busy detection logic for asynchronous communication port
US9326025B2 (en) 2007-03-09 2016-04-26 Rovi Technologies Corporation Media content search results ranked by popularity
US10694256B2 (en) 2007-03-09 2020-06-23 Rovi Technologies Corporation Media content search results ranked by popularity
US8145809B1 (en) 2007-03-09 2012-03-27 Cypress Semiconductor Corporation Busy detection logic for asynchronous communication port
US11245942B2 (en) 2007-03-12 2022-02-08 Broadband Itv, Inc. Method for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11589093B2 (en) 2007-03-12 2023-02-21 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
AU2013202723B2 (en) * 2007-03-22 2014-01-30 Rovi Guides, Inc. User Defined Rules for Assigning Destinations of Content
US11375269B2 (en) * 2007-03-22 2022-06-28 Rovi Guides, Inc. User defined rules for assigning destinations of content
US20190141389A1 (en) * 2007-03-22 2019-05-09 Rovi Guides, Inc. User defined rules for assigning destinations of content
KR20150122703A (en) * 2007-03-22 2015-11-02 로비 가이드스, 인크. User defined rules for assigning destinations of content
JP2019071621A (en) * 2007-03-22 2019-05-09 ロヴィ ガイズ, インコーポレイテッド User defined rules for assigning destinations of content
KR20160122282A (en) * 2007-03-22 2016-10-21 로비 가이드스, 인크. User defined rules for assigning destinations of content
US20170318330A1 (en) * 2007-03-22 2017-11-02 Rovi Guides, Inc. User defined rules for assigning destinations of content
KR101501789B1 (en) * 2007-03-22 2015-03-11 유나이티드 비디오 프로퍼티즈, 인크. User defined rules for assigning destinations of content
US10158910B2 (en) * 2007-03-22 2018-12-18 Rovi Guides, Inc. User defined rules for assigning destinations of content
KR101855052B1 (en) * 2007-03-22 2018-05-04 로비 가이드스, 인크. User defined rules for assigning destinations of content
US20080235731A1 (en) * 2007-03-22 2008-09-25 United Video Properties, Inc. User defined rules for assigning destinations of content
JP2019198120A (en) * 2007-03-22 2019-11-14 ロヴィ ガイズ, インコーポレイテッド User defined rules for assigning destinations of content
US11943499B2 (en) 2007-03-22 2024-03-26 Rovi Guides, Inc. User defined rules for assigning destinations of content
US10791362B2 (en) * 2007-03-22 2020-09-29 Rovi Guides, Inc. User defined rules for assigning destinations of content
US9307281B2 (en) 2007-03-22 2016-04-05 Rovi Guides, Inc. User defined rules for assigning destinations of content
KR101707106B1 (en) * 2007-03-22 2017-02-15 로비 가이드스, 인크. User defined rules for assigning destinations of content
KR101668020B1 (en) * 2007-03-22 2016-10-20 로비 가이드스, 인크. User defined rules for assigning destinations of content
AU2008230088B2 (en) * 2007-03-22 2013-02-07 Rovi Guides, Inc. User defined rules for assigning destinations of content
US8418206B2 (en) * 2007-03-22 2013-04-09 United Video Properties, Inc. User defined rules for assigning destinations of content
US10200742B2 (en) * 2007-04-19 2019-02-05 At&T Intellectual Property I, L.P. System and method of displaying content
US8687128B2 (en) * 2007-04-19 2014-04-01 At&T Intellectual Property I, L.P. System and method of navigating previously viewed channels
US10764630B2 (en) 2007-04-19 2020-09-01 At&T Intellectual Property I, L.P. System and method of displaying content
US20150326929A1 (en) * 2007-04-19 2015-11-12 At&T Intellectual Property I, L.P. System and method of displaying content
US9118956B2 (en) 2007-04-19 2015-08-25 At&T Intellectual Property I, L.P. System and method of displaying content
US20080259220A1 (en) * 2007-04-19 2008-10-23 At&T Knowledge Ventures, Lp System and method of navigating previously viewed channels
US8913199B2 (en) * 2007-04-19 2014-12-16 At&T Intellectual Property I, L.P. System and method of displaying content
US8631440B2 (en) * 2007-04-30 2014-01-14 Google Inc. Program guide user interface
US9510058B2 (en) 2007-04-30 2016-11-29 Google Inc. Program guide user interface
US10289737B1 (en) 2007-04-30 2019-05-14 Google Llc Media search broadening
US20080270449A1 (en) * 2007-04-30 2008-10-30 Google Inc. Program Guide User Interface
US11695976B2 (en) 2007-06-26 2023-07-04 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11272235B2 (en) 2007-06-26 2022-03-08 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11265589B2 (en) 2007-06-26 2022-03-01 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11582498B2 (en) 2007-06-26 2023-02-14 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11570500B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11570521B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US20090083612A1 (en) * 2007-09-20 2009-03-26 Baker Allen F Method for processing electronic documents
US11740992B2 (en) 2007-11-07 2023-08-29 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US8661197B2 (en) 2007-11-07 2014-02-25 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US10445210B2 (en) 2007-11-07 2019-10-15 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US20090119458A1 (en) * 2007-11-07 2009-05-07 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US11119884B2 (en) 2007-11-07 2021-09-14 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US9436578B2 (en) 2007-11-07 2016-09-06 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US20090165057A1 (en) * 2007-12-20 2009-06-25 Kerry Philip Miller Concurrent program content processing apparatus, systems, and methods
US20090195696A1 (en) * 2008-01-07 2009-08-06 Toshiba America Consumer Products, Llc Channel system and method
US8180712B2 (en) 2008-09-30 2012-05-15 The Nielsen Company (Us), Llc Methods and apparatus for determining whether a media presentation device is in an on state or an off state
US11055621B2 (en) 2008-09-30 2021-07-06 The Nielsen Company (Us), Llc Methods and apparatus for determining whether a media presentation device is in an on state or an off state
US9312973B2 (en) 2008-09-30 2016-04-12 The Nielsen Company (Us), Llc Methods and apparatus for determining whether a media presentation device is in an on state or an off state using fuzzy scores and signature matches
US10528881B2 (en) 2008-09-30 2020-01-07 The Nielsen Company (Us), Llc Methods and apparatus for determining whether a media presentation device is in an on state or an off state
EP2347580A1 (en) * 2008-10-03 2011-07-27 United Video Properties, Inc. Delete viewed portions of recorded programs
US9294813B2 (en) 2008-10-31 2016-03-22 The Nielsen Company (Us), Llc Probabilistic methods and apparatus to determine the state of a media device
US20100114527A1 (en) * 2008-10-31 2010-05-06 Morris Lee Probabilistic methods and apparatus to determine the state of a media device
US8793717B2 (en) 2008-10-31 2014-07-29 The Nielsen Company (Us), Llc Probabilistic methods and apparatus to determine the state of a media device
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US20100138439A1 (en) * 2008-12-01 2010-06-03 Samsung Electronics Co., Ltd., Display apparatus and display method
US8799937B2 (en) 2008-12-30 2014-08-05 The Nielsen Company (Us), Llc Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US8156517B2 (en) 2008-12-30 2012-04-10 The Nielsen Company (U.S.), Llc Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US20100169908A1 (en) * 2008-12-30 2010-07-01 Nielsen Christen V Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US20100169904A1 (en) * 2008-12-30 2010-07-01 Nielsen Christen V Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US8375404B2 (en) 2008-12-30 2013-02-12 The Nielsen Company (Us), Llc Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US9986295B2 (en) 2009-04-08 2018-05-29 Tivo Solutions Inc. Automatic contact information transmission system
WO2011015088A1 (en) * 2009-08-06 2011-02-10 中兴通讯股份有限公司 Updating method and apparatus for electronic program guide of mobile phone tv
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US11558659B2 (en) 2009-12-31 2023-01-17 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
US9591353B2 (en) 2009-12-31 2017-03-07 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
US11070871B2 (en) 2009-12-31 2021-07-20 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
US10631044B2 (en) 2009-12-31 2020-04-21 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
US8925024B2 (en) 2009-12-31 2014-12-30 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
US10028014B2 (en) 2009-12-31 2018-07-17 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
WO2011084777A1 (en) * 2010-01-07 2011-07-14 Shenzhen Tcl New Technology Ltd. Method and device for updating regional rating table
US8484672B2 (en) 2010-01-07 2013-07-09 Shenzhen Tcl New Technology Ltd. Method and device for updating regional rating table
US20110167443A1 (en) * 2010-01-07 2011-07-07 Shenzhen Tcl New Technology Ltd. Method and device for updating regional rating table
US9736524B2 (en) 2011-01-06 2017-08-15 Veveo, Inc. Methods of and systems for content search based on environment sampling
US20120281704A1 (en) * 2011-05-02 2012-11-08 Butterworth Ashley I Methods and apparatus for isochronous data delivery within a network
US10992404B2 (en) 2011-05-02 2021-04-27 Apple Inc. Methods and apparatus for isochronous data delivery within a network
US20130055311A1 (en) * 2011-08-23 2013-02-28 Echostar Technologies L.L.C. On Screen Display Content with Information on Stored Content Service Features
US9398248B2 (en) 2011-11-28 2016-07-19 Microsoft Technology Licensing, Llc Identifying series candidates for digital video recorder
US10924788B2 (en) 2011-12-19 2021-02-16 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
US11223861B2 (en) 2011-12-19 2022-01-11 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
US10687098B2 (en) 2011-12-19 2020-06-16 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
US11570495B2 (en) 2011-12-19 2023-01-31 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
US11956486B2 (en) 2011-12-19 2024-04-09 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
US9832496B2 (en) 2011-12-19 2017-11-28 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
US9125169B2 (en) 2011-12-23 2015-09-01 Rovi Guides, Inc. Methods and systems for performing actions based on location-based rules
US10205939B2 (en) 2012-02-20 2019-02-12 The Nielsen Company (Us), Llc Methods and apparatus for automatic TV on/off detection
US9692535B2 (en) 2012-02-20 2017-06-27 The Nielsen Company (Us), Llc Methods and apparatus for automatic TV on/off detection
CN102724584A (en) * 2012-06-18 2012-10-10 Tcl集团股份有限公司 Method and device for playing network videos online and smart television
US10469794B2 (en) * 2012-10-26 2019-11-05 Sony Corporation Information processing apparatus, information processing method, and information processing system for content management using play lists
US20150271440A1 (en) * 2012-10-26 2015-09-24 Sony Corporation Information processing apparatus, information processing method, program, and information processing system
US10735809B2 (en) 2015-04-03 2020-08-04 The Nielsen Company (Us), Llc Methods and apparatus to determine a state of a media presentation device
US11678013B2 (en) 2015-04-03 2023-06-13 The Nielsen Company (Us), Llc Methods and apparatus to determine a state of a media presentation device
US9924224B2 (en) 2015-04-03 2018-03-20 The Nielsen Company (Us), Llc Methods and apparatus to determine a state of a media presentation device
US11363335B2 (en) 2015-04-03 2022-06-14 The Nielsen Company (Us), Llc Methods and apparatus to determine a state of a media presentation device
US9848222B2 (en) 2015-07-15 2017-12-19 The Nielsen Company (Us), Llc Methods and apparatus to detect spillover
US10694234B2 (en) 2015-07-15 2020-06-23 The Nielsen Company (Us), Llc Methods and apparatus to detect spillover
US10264301B2 (en) 2015-07-15 2019-04-16 The Nielsen Company (Us), Llc Methods and apparatus to detect spillover
US11184656B2 (en) 2015-07-15 2021-11-23 The Nielsen Company (Us), Llc Methods and apparatus to detect spillover
US11716495B2 (en) 2015-07-15 2023-08-01 The Nielsen Company (Us), Llc Methods and apparatus to detect spillover
US20170180673A1 (en) * 2015-12-22 2017-06-22 Samsung Electronics Co., Ltd. Remote control apparatus, method for controlling thereof, and display system
US10230916B2 (en) * 2015-12-22 2019-03-12 Samsung Electronics Co., Ltd. Remote control apparatus, method for controlling thereof, and display system
WO2017116744A1 (en) * 2015-12-30 2017-07-06 Roku, Inc. Controlling display of media content
US9936263B2 (en) 2015-12-30 2018-04-03 Roku, Inc. Controlling display of media content
CN107465946A (en) * 2016-06-03 2017-12-12 中兴通讯股份有限公司 Video broadcasting method, device, system and terminal device
US11838596B2 (en) 2020-05-28 2023-12-05 Dish Network L.L.C. Systems and methods for overlaying media assets stored on a digital video recorder on a menu or guide
US11595724B2 (en) 2020-05-28 2023-02-28 Dish Network L.L.C. Systems and methods for selecting and restricting playing of media assets stored on a digital video recorder
US11425459B2 (en) 2020-05-28 2022-08-23 Dish Network L.L.C. Systems and methods to generate guaranteed advertisement impressions
US11606599B2 (en) 2020-06-10 2023-03-14 Dish Network, L.L.C. Systems and methods for playing media assets stored on a digital video recorder
US11962862B2 (en) 2020-06-10 2024-04-16 Dish Network L.L.C. Systems and methods for playing media assets stored on a digital video recorder while a customer service representative is online
US11812095B2 (en) 2020-06-24 2023-11-07 Dish Network L.L.C. Systems and methods for using metadata to play media assets stored on a digital video recorder
US11523172B2 (en) 2020-06-24 2022-12-06 Dish Network L.L.C. Systems and methods for using metadata to play media assets stored on a digital video recorder
CN114449349A (en) * 2020-10-30 2022-05-06 深圳Tcl新技术有限公司 Program recording method, device, equipment and computer readable storage medium

Also Published As

Publication number Publication date
US8873929B1 (en) 2014-10-28

Similar Documents

Publication Publication Date Title
US8873929B1 (en) Digital recording and playback
US10587925B2 (en) Television viewer interface system
US10062408B2 (en) Automatic playback overshoot correction system
US10181338B2 (en) Multimedia visual progress indication system
US6868225B1 (en) Multimedia program bookmarking system
US8689265B2 (en) Multimedia mobile personalization system
RU2390965C2 (en) Receiver of television signals
US8699861B2 (en) Recorded content management
JP2012075161A (en) Closed caption tagging system
US20050251750A1 (en) Television viewer interface system
US7783157B2 (en) Recording/reproducing apparatus

Legal Events

Date Code Title Description
AS Assignment

Owner name: REPLAY NETWORKS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WOOD, ANTHONY;SHANSON, SPENCER;SELF, MATTHEW;AND OTHERS;REEL/FRAME:010064/0076

Effective date: 19990604

AS Assignment

Owner name: IMPERIAL BANK, CALIFORNIA

Free format text: COLLATERAL ASSIGNMENT, PATENT MORTGAGE AND SECURITY AGREEMENT;ASSIGNOR:REPLAY NETWORKS, INC.;REEL/FRAME:010081/0494

Effective date: 19990610

AS Assignment

Owner name: REPLAYTV, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:REPLAY NETWORKS, INC.;REEL/FRAME:011362/0539

Effective date: 20000118

AS Assignment

Owner name: REPLAYTV, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:REPLAY NETWORKS, INC.;REEL/FRAME:011506/0085

Effective date: 20000118

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: DIGITAL NETWORKS NORTH AMERICA, INC., CALIFORNIA

Free format text: ASSET PURCHASE;ASSIGNOR:REPLAYTV, INC.;REEL/FRAME:015136/0722

Effective date: 20030424

AS Assignment

Owner name: REPLAYTV, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COMERICA BANK;REEL/FRAME:019690/0951

Effective date: 20070723