Method for delivering large amounts of data with interactivity in an on-demand system
First Claim
1. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
- generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein each of the M anti-latency data streams contains substantially identical data having J segments that are repeated continuously within said anti-latency data stream, and each successive anti-latency data stream is staggered by an anti-latency time interval ≧
T; and
generating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream, wherein each of the N interactive data streams repeats continuously within said interactive data stream, and each successive interactive data stream is staggered by an interactive time interval;
wherein;
J, K, M and N are integers,T is a length of time, andM=N=J=√
R/T,where R is the length of time required to transmit said data over the network.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for delivering data over a network to a large number of clients, which may be suitable for building large-scale Video-on-Demand (VOD) systems. In current VOD systems, the client may suffer from a long latency before starting to receive requested data that is capable of providing sufficient interactive functions, or the reverse, without significantly increasing the network load. The method utilizes two groups of data streams, one responsible for minimizing latency while the other provides the required interactive functions. In the anti-latency data group, uniform, or non-uniform or hierarchical staggered stream intervals may be used. The system may have a relatively small startup latency while users may enjoy most of the interactive functions that are typical of video recorders including fast-forward, forward-jump, and so on. Furthermore, the system can maintain the number of data streams, and therefore the bandwidth, required.
-
Citations
39 Claims
-
1. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein each of the M anti-latency data streams contains substantially identical data having J segments that are repeated continuously within said anti-latency data stream, and each successive anti-latency data stream is staggered by an anti-latency time interval ≧
T; andgenerating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream, wherein each of the N interactive data streams repeats continuously within said interactive data stream, and each successive interactive data stream is staggered by an interactive time interval; wherein; J, K, M and N are integers, T is a length of time, and M=N=J=√
R/T,where R is the length of time required to transmit said data over the network.
-
-
2. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, wherein each anti-latency data stream includes; a leading data stream containing at least one leading segment of the leading portion of said data being repeated continuously within the leading data stream; and a plurality of finishing data streams each having J segments, each of the finishing data streams containing the rest of the leading portion of said data; and being repeated continuously within said finishing data stream, and wherein each successive finishing data stream is staggered by an anti-latency time interval ≧
T; andgenerating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream, wherein each of the N interactive data streams is repeated continuously within said interactive data stream, and each successive interactive data stream is staggered by an interactive time interval; wherein; J, K, M and N are integers, T is a length of time, M=(J/2)+1, and J=√
2K.
-
-
3. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein the anti-latency data streams are generated such that an mth anti-latency data stream has Fm segments, wherein Fm is an mth Fibonacci number; and
the Fm segments are repeated continuously within the mth anti-latency data stream; andgenerating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream, wherein each of the N interactive data streams repeats continuously within said interactive data stream, and each successive interactive data stream is staggered by an interactive time interval=KT/N; wherein m starts from 4 and the repeating 1st, 2nd, and 3rd anti-latency data streams have the following configuration; and wherein; K, M and N are integers, and T is a length of time.
-
-
4. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein in the M anti-latency data streams the leading portion of said data contains 1 to J leading labeled data segments, and the leading data segments are distributed in the M anti-latency data streams such that a jth leading segment is repeated by an anti-latency time interval ≦
jT within the anti-latency data streams; andgenerating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream, wherein each of the N interactive data streams repeats continuously within said interactive data stream, and each successive interactive data stream is staggered by an interactive time interval=KT/N; wherein; J, K, M and N are integers, T is a length of time, J=K/N, and
-
-
5. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein in the M anti-latency data streams the leading portion of said data contains 1 to J leading labeled data segments, and the leading data segments are distributed in the M anti-latency data streams such that a jth leading segment is repeated by an anti-latency time interval ≦
JT within the anti-latency data streams; andgenerating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream, wherein each of the N interactive data streams repeats continuously within said interactive data stream, and each successive interactive data stream is staggered by an interactive time interval=KT/N; wherein; J, K, M and N are integers, T is a length of time, J=K/N, and wherein six of the M anti-latency data streams containing the leading data segments are arranged as follows; wherein blank segments contain any data.
-
-
6. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein the M anti-latency data streams contain the leading portion of said data, and further include two batches of data streams comprising a first set of anti-latency data streams and a second set of anti-latency data streams, such that the first anti-latency data streams have A first anti-latency data streams from I to A, wherein an ath anti-latency data stream has Fa segments, where Fa is an ath Fibonacci number, and the Fa segments are repeated continuously within the ath first anti-latency data stream the second anti-latency data streams have B second anti-latency data streams wherein each of the B second anti-latency data streams contains substantially identical data repeated continuously within said second anti-latency data stream, and wherein each successive second anti-latency data stream is staggered by a coarse-jump frame period, such that the client can perform a coarse-jump function when the client is connected to a second anti-latency data steam; and generating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream; wherein; A, B, K, M and N are integers, and T is a length of time. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein the M anti-latency data streams contain the leading portion of said data, and further include two batches of data streams comprising a first set of anti-latency data streams and a second set of anti-latency data streams, such that the first anti-latency data streams have A first anti-latency data streams from 1 to A, wherein an ath anti-latency data stream has Fa segments, and Fa is an ath Fibonacci number; and
the Fa segments are repeated continuously within the ath first anti-latency data stream, andthe second anti-latency data streams have B second anti-latency data streams including a leading data stream containing at least one leading segment of the leading portion of said data being repeated continuously within the leading data stream; and
a plurality of finishing data streams, each of the finishing data streams containing the rest of the leading portion of said data; and
being repeated continuously within said finishing data stream, wherein each successive finishing data steam is staggered by a coarse-jump frame period such that the client can perform a coarse-jump interactive function when the client is connected to a second anti-latency data stream; andgenerating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream; wherein; A, B, K, M and N are integers, and T is a length of time. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein the M anti-latency data streams contain the leading portion of said data, and further include two batches of data streams comprising a first set of anti-latency data streams and a second set of anti-latency data streams, such that the first anti-latency data streams have A first anti-latency data streams, wherein, I. the A first anti-latency data streams contains 1 to C first data segments; and
II. the first data segments are distributed in the A first anti-latency data streams such that an cth leading segment is repeated by an anti-latency time interval ≦
cT within the A first anti-latency data streams, andthe second anti-latency data streams have B second anti-latency data streams, wherein each of the B second anti-latency data streams contains substantially identical data repeated continuously within said second anti-latency data stream, and wherein each successive second anti-latency data stream is staggered by a coarse-jump frame period;
such that the client can perform a coarse-jump interactive function when the client is connected to a second anti-latency data stream; andgenerating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream; wherein; A, B, C, K, M and N are integers, and T is a length of time. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network, and wherein the M anti-latency data streams contain the leading portion of said data, and further include two batches of data streams comprising a first set of anti-latency data streams and a second set of anti-latency data streams, such that the first anti-latency data streams have A first anti-latency data steams, wherein the A first anti-latency data streams contain 1 to C first data segments, and the first data segments are distributed in the A first anti-latency data streams such that an cth leading segment is repeated by an anti-latency time interval ≦
cT within the A first anti-latency data streams, andthe second anti-latency data streams have B second anti-latency data stream including a leading data stream containing at least one leading segment of the leading portion of said data being repeated continuously within the leading data stream, and a plurality of finishing data streams, each of the finishing data streams connecting the rest of the leading portion of said data, and being repeated continuously with said finishing data stream, and wherein each successive finishing data stream is staggered by a coarse-jump frame period such that the client can perform a coarse-jump interactive function when the client is connected to a second anti-latency data stream; and generating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream; wherein; A, B, C, K, M and N are integers, and T is a length of time. - View Dependent Claims (30, 31, 32, 33, 34, 35)
-
-
36. A method for transmitting data over a network to at least one client including the step of generating M anti-latency data streams from 1 to M, wherein an mth anti-latency data stream has Fm segments, and Fm is an mth Fibonacci number;
- and said Fm segments are repeated continuously within the mth anti-latency data stream, and wherein m starts from 4 and the repeating first, second, and third anti-latency data streams have the following configuration;
- and said Fm segments are repeated continuously within the mth anti-latency data stream, and wherein m starts from 4 and the repeating first, second, and third anti-latency data streams have the following configuration;
-
37. A method for transmitting data over a network to at least one client, said data being fragmented into K segments each requiring a time T to transmit over the network, including the steps of:
- generating M anti-latency data streams containing 1 to K anti-latency data segments, wherein the anti-latency data segments are distributed in the M anti-latency data streams such that an kth leading segment is repeated by an anti-latency time interval ≦
kT within the anti-latency data streams, and wherein six of the M anti-latency data streams containing the leading data segments are arranged as follows;wherein blank segments contain any data.
- generating M anti-latency data streams containing 1 to K anti-latency data segments, wherein the anti-latency data segments are distributed in the M anti-latency data streams such that an kth leading segment is repeated by an anti-latency time interval ≦
-
38. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network; generating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream; raising a request for said data; connecting the client to the M anti-latency data streams and receiving data in the M anti-latency data streams; pre-fetching at least a portion of data in the M anti-latency data streams in the client as pre-fetched data; and refreshing the pre-fetched data during a refresh time period, wherein the refresh time period is 01;
00–
06;
00,and wherein; K, M and N are integers, and T is a length of time.
-
-
39. A method for transmitting data over a network to at least one client having a latency time to initiate transmission of said data to the client, including the steps of:
-
generating M anti-latency data streams containing at least a leading portion of data for receipt by the client, wherein said data is fragmented into K segments each requiring a time T to transmit over the network; generating N interactive data streams containing at least a remaining portion of said data for the client to merge into after receiving at least a portion of an anti-latency data stream; raising a request for said data; connecting the client to the M anti-latency data streams and receiving data in the M anti-latency data streams; pre-fetching at least a portion of data in the M anti-latency data streams in the client as pre-fetched data; and refreshing the pre-fetched data during a refresh time period, wherein the refresh time period is 10;
00–
15;
00,and wherein; K, M and N are integers, and T is a length of time.
-
Specification