Method and system for delivering data over a network
Abstract
This invention describes a new 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 the 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 one 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 being realized based on this invention 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, this invention may also be able to maintain the number of data streams, and therefore the bandwidth, required.
Claims
exact text as granted — not AI-modified1 . 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 at least one of anti-latency data stream containing at least a leading portion of said data for receipt by the client; and generating at least one interactive data stream 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: the leading portion of said data
can be generated at regular anti-latency stream intervals; and
is generated at the next earliest anti-latency stream interval after at least one client raises a request for said data.
2 . The method of claim 1 , wherein:
said data requiring a time R to be transmitted over the network is fragmented into K segments each requiring a time T to transmit over the network; the anti-latency data streams includes M anti-latency data streams, wherein each of the M anti-latency data stream
contains substantially identical data
can be generated at regular anti-latency time intervals; and
are generated at the next earliest anti-latency stream interval after the client raises a request for said data;
the interactive data streams includes N interactive data streams, wherein each of the N interactive data stream is repeated continuously within said interactive data stream, and each successive interactive data stream is staggered by an interactive time interval.
3 . The method of claim 2 , further including the steps of:
connecting the client to the M anti-latency data stream generated for the client when the client raises the request for said data; connecting the client to any one of the N interactive data streams; and terminating the M anti-latency data stream generated for the client after the client is connected to one of the N interactive data streams.
4 . The method of claim 1 , wherein:
said data requiring a time R to be transmitted over the network is fragmented into K segments each requiring a time T to transmit over the network; the anti-latency data streams includes M anti-latency data streams including: I. a leading data stream that
contains at Least one leading segment of the leading portion of said data
can be generated at regular anti-latency time intervals; and
are generated at the next earliest anti-latency stream interval after the client raises a request for said data;
II. a plurality of finishing data streams, wherein each of the finishing data streams that:
contains the rest of the leading portion of said data;
corresponds to one of the leading segments; and
are generated when the corresponding leading segment is generated.
5 . The method of claim 4 wherein the interactive data streams includes N interactive data streams, 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.
6 . The method of claim 4 , further including the steps of:
connecting the client to the leading data segment generated for the client when the client raises the request for said data; subsequently connecting the client to the corresponding finishing data stream; connecting the client to any one of the N interactive data streams; and terminating the leading data segment and the corresponding finishing data stream generated for the client after the client is connected to one of the N interactive data streams.
7 . The method of claim 1 , wherein:
said data requiring a time R to be transmitted over the network is fragmented into K segments each requiring a time T to transmit over the network; the interactive data streams includes N interactive data streams, wherein each of the N interactive data stream is repeated continuously within said interactive data stream, and wherein each successive interactive data stream is staggered by an interactive time interval KT N ; the anti-latency data streams includes M anti-latency data streams, such that
an m th ˜anti-latency data stream has F m segments, wherein F m is an m th Fibonacci number;
the F m segments can be generated at regular anti-latency stream intervals;
the first F m segment is generated at the next earliest anti-latency stream interval when the client raises a request for said data; and
subsequent F (m+J) segments are generated before all data in the preceding F m segment is received by the client.
8 . The method of claim 7 , farther including the steps of:
connecting the client to at least the m th and (m+l) th anti-latency data streams when the client raises a. request for said data; buffering the data in at least the m th and (m+l) th anti-latency data streams in the client; subsequently connecting the client to successive anti-latency data streams; and repeating the previous steps until all data in the leading portion is received by the client.
9 . The method of claim 8 , further including the step of:
connecting the client to any one of the N interactive data streams after all data in the leading portion is received by the client; and terminating the M anti-latency data streams after the client is connected to one of the N interactive data streams.
10 . A method for transmitting data over a network to at least one client including the steps of generating a plurality of anti-latency data streams, the anti-latency data streams include:
a leading data stream that
contains at least one leading segment of the leading portion of said data
can be generated at regular anti-latency time intervals; and
are generated at the next earliest anti-latency stream interval after the client raises a request for said data;
a plurality of finishing data streams, each of the finishing data streams:
contains the rest of the leading portion of said data;
corresponds to one of the leading segments; and
are generated when the corresponding leading segment is generated.
11 . A system 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:
at least one anti-latency signal generator for generating at least one of anti-latency data stream containing at least a leading portion of said data for receipt by the client; and at least one interactive signal generator for generating at least one interactive data stream 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: the leading portion of said data
can be generated at regular anti-latency stream intervals; and
is generated at the next earliest anti-latency stream interval after at least one client raises a request for said data.
12 . The system of claim 11 , wherein:
said data requiring a time R to be transmitted over the network is fragmented into K segments each requiring a time T to transmit over the network; the anti-latency data stream includes M anti-latency data streams, wherein each of the M anti-latency data streams
contains substantially identical data
can be generated at regular anti-latency time intervals; and
is generated at the next earliest anti-latency stream interval after the client raises a request for said data;
the interactive data stream includes N interactive data streams, 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.
13 . The system of claim 12 , wherein:
the client is connected to the M anti-latency data streams generated for the client when the client raises the request for said data; the client is connected to any one of the N interactive data streams; and the M anti-latency data streams generated for the client are terminated after the client is connected to one of the N interactive data streams.
14 . The system of claim 11 , wherein:
said data requiring a time R to be transmitted over the network is fragmented into K segments each requiring a time T to transmit over the network; the anti-latency data stream includes M anti-latency data streams including: I. a leading data stream that
contains at least one leading segment of the leading portion of said data
can be generated at regular anti-latency time intervals; and
is generated at the next earliest anti-latency stream interval after the client raises a request for said data;
II. a plurality of finishing data streams, wherein each of the finishing data streams:
contains the rest of the leading portion of said data;
corresponds to one of the leading segments; and
is generated when the corresponding leading segment is generated;
the interactive data stream includes N interactive data streams, 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.
15 . The system of claim 11 , wherein:
said data requiring a time R to be transmitted over the network is fragmented into K segments each requiring a time T to transmit over the network; the interactive data stream includes N interactive data streams, wherein each of the N interactive data streams is repeated continuously within said interactive data stream, and wherein each successive interactive data stream is staggered by an interactive time interval KT N ; the anti-latency data stream includes M anti-latency data streams, such that an m th anti-latency data stream has F m segments, wherein F m is an m th Fibonacci number; the F m segments can be generated at regular anti-latency stream intervals; the first F m segment is generated at the next earliest anti-latency stream interval when the client raises a request for said data; and subsequent F (m+1) segments are generated before all data in the preceding F m segment is received by the client.
16 . The system of claim 15 , wherein:
the client is connected to at least the m th and (m+ 1 ) th anti-latency data streams when the client raises a request for said data; the data in at least the m th and (m+ 1 ) th anti-latency data streams is buffered in the client; and the client is subsequently connected to successive anti-latency data streams until all data in the leading portion is received by the client.
17 . The system of claim 16 , wherein
the client is connected to any one of the N interactive data streams after all data in the leading portion is received by the client; and the M anti-latency data streams are terminated after the client is connected to one of the N interactive data streams.
18 . The system of claim 15 , wherein each of the N interactive data streams contains the whole set of said data having K segments.
19 . The system of claim 15 , wherein each of the N interactive data streams contains the remaining portion of said data only.
20 . The system of claim 15 , wherein
F
M
≥
2
K
N
.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.