Video on demand system with multiple data sources configured to provide vcr-like services
First Claim
1. In a computer system having a data storage system and a computer, the computer capable of accessing at least a first movie stored in the data storage system and providing the accessed first movie to a user in a play viewing mode which closely approximates the play mode of a video cassette recorder, a method for displaying the movie in a fast reverse mode and a fast forward mode which approximates the fast forward and fast reverse viewing modes of a video cassette recorder, the method comprising the steps of:
- editing a first copy of the stored movie to copy one frame from every predetermined number of frames;
storing the frames copied from the first copy in the same order they were copied from the first copy as a second copy in the data storage system;
storing the frames copied from the first copy in the reverse order they were copied from the first copy as a third copy in the data storage system;
displaying the stored second copy if the user request fast forward viewing of the first movie; and
displaying the stored third copy if the user request fast reverse viewing of the first movie.
3 Assignments
0 Petitions
Accused Products
Abstract
A video server for providing Video-On-Demand is disclosed. A plurality of data sources are coupled individually to a first and second bi-directional data/instruction switch. The first switch is additionally coupled to a data storage system and the second switch is coupled to a network interface. A real time controller is coupled to the data sources and the switches and can couple any part of the data storage system to any selected data source and any given network channel to any selected data source. A control system coupled to the real time controller and the second switch provides support services to the real time controller and acts as a gateway to third party services and products. The data storage system is largely comprised of disk drive arrays. Video data is striped across the individual arrays, each video data program that a user requests being striped across one array. Each array provides video data to many users through the data sources. The video server is tolerant of individual failures in the data storage system and among the data sources, as operating portions of the data storage system and spare data sources can be rapidly switched to substitute for failed units. The server can also be readily expanded and provides a user experience similar to that of a video cassette recorder.
-
Citations
29 Claims
-
1. In a computer system having a data storage system and a computer, the computer capable of accessing at least a first movie stored in the data storage system and providing the accessed first movie to a user in a play viewing mode which closely approximates the play mode of a video cassette recorder, a method for displaying the movie in a fast reverse mode and a fast forward mode which approximates the fast forward and fast reverse viewing modes of a video cassette recorder, the method comprising the steps of:
-
editing a first copy of the stored movie to copy one frame from every predetermined number of frames; storing the frames copied from the first copy in the same order they were copied from the first copy as a second copy in the data storage system; storing the frames copied from the first copy in the reverse order they were copied from the first copy as a third copy in the data storage system; displaying the stored second copy if the user request fast forward viewing of the first movie; and displaying the stored third copy if the user request fast reverse viewing of the first movie. - View Dependent Claims (2)
-
-
3. A method for providing a user coupled to a communications channel with video data, the method comprising the steps of:
-
storing a plurality of video data programs, the step of storing a plurality of video data programs further comprising the steps of; constructing a plurality of arrays of data storage units; storing each of the plurality of video data programs on at least one of the arrays of data storage units; dividing the video data program into a plurality of data blocks, each data block having a predefined size; storing a first data block on a first data storage unit of the array of data storage units; storing successive data blocks on successive data storage units; and repeating the steps of storing a first data block and storing successive data blocks if the number of data blocks exceeds the number of data storage units in the array of data storage units; recalling a video data program when a request for the video data program is received from the user through the communications channel; formatting the recalled video data program for transmission to the user; and transmitting the formatted video data program to the user, and wherein a plurality of users can access each data storage unit, each user being assigned a time slot having a first defined duration during which first defined duration the user receives blocks of video data from one of the data storage units in the array. - View Dependent Claims (11)
-
-
4. A method for providing a user coupled to a communications channel with video data, the method comprising the steps of:
-
storing a plurality of video data programs, the step of storing a plurality of video data programs further comprising the steps of; constructing a plurality of arrays of data storage units; storing each of the plurality of video data programs on at least one of the arrays of data storage units; dividing the video data programs into a plurality of data blocks, each data block having a predefined size; storing a first data block on a first data storage unit of the array of data storage units; storing successive data blocks on successive data storage units; and repeating the steps of storing a first data block and storing successive data blocks if the number of data blocks exceeds the number of data storage units in the array of data storage units; recalling a video data program when a request for the video data program is received from the user through the communications channel; formatting the recalled video data program for transmission to the user; and transmitting the formatted video data program to the user, wherein each video data program is comprised of a play version, a fast forward version, and a fast reverse version, the play, fast forward, and fast reverse versions each being divided into data blocks and stored in parallel to one another on the data storage units of the array, the first data block of the play, fast forward, and fast reverse versions being stored on the first data storage unit and successive data blocks of the play, fast forward, and fast reverse versions being stored on successive data storage units, the process of storing on the first and successive data storage units continuing in parallel until the last data block of each venison has been stored on a data storage unit. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. A system for providing at least video data to a plurality of users, the system comprising:
-
data storage system for storing at least video data, the data storage system further comprising; an archival tape storage system, for storing at least a plurality of video data programs; and a plurality of disk drives coupled to the archival tape storage system, the disk drives receiving and storing the video data programs from the archival tape storage system and providing faster access to the video data programs than the archival tape storage system; and a plurality of disk interfaces coupled to the data sources and the disk drives for providing data sources with access to the video data programs stored on the disk drives; a plurality of data sources coupled to the data storage system for formatting the video data recalled from the data storage system for transmission; a switch coupled to each of the data sources and to a plurality of communications channels, the switch directing the packaged video data from a data source to a communications channel; a first controller coupled to the switch, the data sources, and the data storage system, the first controller controlling the connection of the data storage system to the data sources, the data sources to the switch, and the switch to the communications channel, the first controller making the connections at least partially in response to user requests received from users over the communications channels; and a second controller coupled to the first controller, the second controller controlling system access by users, each data source further comprising; a plurality of FIFO memory buffer pairs, at least a FIFO memory buffer pair being available to each user coupled to the data source, the first FIFO memory buffer in the pair receiving video data from the data storage system and the second FIFO memory buffer in the pair receiving other data from the first and second controllers; a selector switch coupled to the FIFO memory buffer pairs for selecting which FIFO memory buffer pair to transmit data; a rate generator coupled to the selector switch for providing a timing signal to the selector switch to determine the length of time that a FIFO memory buffer pair will transmit data; a third controller coupled to the rate generator and the data storage system for selecting which FIFO pair will be coupled to the data storage system and for determining the rate the rate generator must generate; and a multiplexer coupled to the selector switch and a communications channel for formatting data from the first and second FIFOs for transmission over the communications channel. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A video server for providing at least video data, the video server coupled to a distribution network with a plurality of communication channels, the distribution network coupled to a plurality of users, the video server comprising:
-
a plurality of data sources for receiving at least video data from a plurality of sources and formatting the at least video data for transmission to users; first switch coupled to the distribution network and to the data sources, the first switch capable of coupling any one of the plurality of communication channels to any one of the plurality of data sources; a data storage system comprised of a plurality of data storage units for storing the at least video data; second switch coupled to the data sources and the data storage system, for coupling any one of the plurality of data storage units to any one of the plurality of data sources; first control system coupled to the first switch, the second switch, and to the data sources for controlling the coupling of the data storage system to the data sources and the coupling of the data sources to the communications channel; and second control system coupled to the first control system for indicating which users may access the server, the data sources further comprising; a plurality of FIFO memory buffers, the FIFO memory buffers being coupled to a data storage input port and a network port, the FIFO memory buffers storing video and other data received through the ports in a first-in, first-out order; a selector switch coupled to the FIFO memory buffers; a multiplexer/demultiplexer coupled to the selector switch and the network port; a rate generator coupled to the selector switch for generating a plurality of different timing frequencies to control the flow of data from the FIFO memory buffers through the selector switch to the multiplexer/demultiplexer; and a data source controller coupled to the rate generator and the data storage input port for controlling the flow of data into the FIFO memory buffers from the data storage system and the network port and for controlling the flow of data from the FIFO memory buffers into the selector switch. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. In a video server comprised of a memory system, a plurality of data formatting units coupled to the memory system, and a control system coupled to the data formatting units and the memory system, the memory system further comprising a plurality of arrays of disk drives, a method for providing video data programs to users, the users being coupled to the video server through a plurality of communication channels, the method comprising the steps of:
-
striping each individual video data program across the disk drives that comprise one disk drive array, detecting a user request for a video data program transmitted to the video server over one of the communications channels; coupling the disk drive array that contains the requested video data program to a data formatting unit; coupling the selected data formatting unit to a communication channel coupled to the user; and sequentially reading the requested video data program from the disk drive array upon which it is stored; formatting the sequentially read data in the selected data formatting unit; and transmitting the formatted video data to the user, wherein each video data program comprises a first play video data program, a second fast forward video data program comprised of a selected set of the video data that comprises the play video data program stored in the same sequence as the video data in the play video data program, and a third fast reverse video data program comprised of a selected set of the video data that comprises the play video data program stored in reverse order to the video data in the play video data program, the first second and third programs each being striped across the same array of disk drives. - View Dependent Claims (29)
-
Specification