Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices
First Claim
1. A computer implemented universal broadcast method comprising the act of preparing a delivery matrix defining a data transmission sequence suitable for broadcast, to a plurality of clients, on-demand data in a non client specific manner, whereby transmission of said on-demand data files requires an amount of transmission bandwidth that is independent of the number of said plurality of clients.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for a decreased idle time scheduling matrix for a data file reduced into data blocks. A scheduling matrix is generated and idle time is filled with data blocks that appear later in the matrix, keeping with the original sequence of data blocks. This is then repeated, or equally a new decreased idle time scheduling matrix is created. Specially designed set-top boxes are then described which can received these data blocks.
-
Citations
35 Claims
- 1. A computer implemented universal broadcast method comprising the act of preparing a delivery matrix defining a data transmission sequence suitable for broadcast, to a plurality of clients, on-demand data in a non client specific manner, whereby transmission of said on-demand data files requires an amount of transmission bandwidth that is independent of the number of said plurality of clients.
-
7. A computer implemented method for generating a constant bandwidth, decreased idle time scheduling matrix suitable for the delivery of on-demand data in a non client specific format, said method comprising the acts of:
-
generating a scheduling matrix suitable for transmission of a first data file, said first data file being represented by a first plurality of data blocks, said first scheduling matrix providing a first sequence for transmitting said first plurality data blocks sequentially within time slots in a manner such that any client receiving transmission of said first data file according to said first scheduling matrix may begin accessing said first data file within one time slot;
determining a desired constant transmission bandwidth, wherein said constant bandwidth is then used to stream said data blocks sequentially according to the order of said first scheduling matrix.
-
-
8. A computer implemented method for controlling a universal set-top-box (STB), said method comprising the acts of:
-
receiving digital data in a plurality of channels and an electronic program guide (EPG) indicating the nature of data transmitted in each of said plurality of channels, wherein a first one of said plurality of channels includes a data-on-demand program providing on-demand data in a non client specific format, said EPG indicating that said data-on-demand program includes a first data file being represented by a first plurality of data blocks, said first plurality of data blocks being provided sequentially within time slots in a manner such that a user of said universal STB may at any time begin accessing said first data file within one time slot;
providing said EPG data to said user of said universal STB;
receiving a data processing instructions from said user of said universal STB requiring access of said first data file; and
implementing said instructions from said user of said universal STB. - View Dependent Claims (9, 10, 11, 12, 13, 14, 16, 17, 18, 19)
-
-
15. A computer implemented universal data broadcast method comprising the acts of:
-
at a universal data broadcast system, performing the acts of;
preparing a delivery matrix defining a data transmission sequence suitable for broadcast, to a plurality of clients, on-demand data in a non client specific manner, whereby transmission of said on-demand data files requires an amount of transmission bandwidth that is independent of the number of said plurality of clients providing a first channel server suitable for the transmission of on-demand data via a first channel;
prior to data broadcast, preparing said first channel server for the transmission of data-on-demand information, said preparing said first channel server including the acts retrieving said delivery matrix into a memory of said first channel server and retrieving data blocks scheduled for delivery by said delivery matrix into said memory of said first channel server;
transmitting an electronic program guide (EPG) including information indicating that said first channel contains on-demand data; and
transmitting data from said first channel and said second channel; and
at a universal STB, performing the acts of;
receiving digital data including data in said first channel, and said EPG;
providing said EPG data to a user of said universal STB;
receiving data processing instructions from said user of said universal STB; and
implementing said instructions from said user of said universal STB.
-
-
20. A data delivery matrix comprising a data file divided into a number of data blocks;
said number of data blocks being arranged into an order determined by the steps of;
a) dividing said data file into said number of data blocks;
b) setting a first variable to zero;
c) clearing a reference array;
d) comparing said first variable to the total number of said number of data blocks;
e) if said first variable is less than the total number of said number of data blocks, set a second variable to zero;
f) compare said second variable to the total number of said number of data blocks;
g) if said second variable is less than the total number of said number of data blocks writing one or more stored data blocks stored in a column of a scheduling matrix into said reference array, said column determined by the [(i+j)mod(x)] where i is said second variable, j is said first variable and x is said number of data blocks;
h) if said reference array already has at least one of said stored data blocks, do not write a second copy;
i) check if said reference array contains a block corresponding to said second variable;
j) if said reference array does not contain said data block corresponding to said second variable, said data block is added to said reference array and said scheduling matrix at a position in said matrix equal to [(i+j)mod(x), j] and said second variable is increased by 1;
k) if said reference array does contain said data block corresponding to said second variable, said second variable is increased by 1;
l) repeat steps g) through k) until said second variable is equal to said total number of data blocks;
m) increase said first variable by 1;
n) repeat steps c) through m) until said first variable is equal to said total number of data blocks; and
o) reconfigure said scheduling matrix into a stream;
wherein said order is transmitted in a repeating signal over a medium having a bandwidth assigned to said data file, and wherein said bandwidth is fully used by said repeating signal. - View Dependent Claims (21, 22, 23, 24, 26, 27, 28, 29)
-
25. A computer implemented method for transmission of an on-demand data file comprising:
-
an act of preparing a delivery matrix defining a repeating data transmission sequence suitable for broadcast over a medium to a plurality of clients in a non-specific manner;
wherein said act of preparing said delivery matrix further comprises reducing a data file into data blocks having at least a first block, and ordering said data blocks into a said repeating data transmission sequence;
wherein a user may receive said repeating data transmission sequence and begin using said data file in an uninterrupted manner as soon as said first block is received;
wherein said repeating data transmission sequence requires a pre-determined bandwidth and further wherein there is deminimus idle time in transmission of said repeating data transmission sequence; and
whereby transmission of said data on-demand file requires an amount of transmission bandwidth that is independent of the number of said plurality of clients.
-
-
30. A computer implemented universal data broadcast method comprising the acts of:
-
preparing a delivery matrix defining a data transmission sequence suitable for broadcast, to a plurality of clients, on-demand data in a non client specific manner, whereby transmission of said on-demand data files requires an amount of transmission bandwidth that is independent of the number of said plurality of clients, and wherein the use of said amount of transmission bandwidth is fully optimized;
providing a first channel server suitable for the transmission of on-demand data via a first channel;
prior to data broadcast, preparing said first channel server for the transmission of data-on-demand information, said preparing said first channel server including the acts of retrieving said delivery matrix into a memory of said first channel server and retrieving data blocks scheduled for delivery by said delivery matrix into said memory of said first channel server;
transmitting an electronic program guide (EPG) including information indicating that said first channel contains on-demand data; and
transmitting data from said first channel and said second channel; and
, at a universal set-top box (STB), performing the acts of;
receiving digital data including data in said first channel, and said EPG;
providing said EPG data to a user of said universal STB;
receiving data processing instructions from said user of said universal STB; and
implementing said instructions from said user of said universal STB. - View Dependent Claims (31, 32, 33, 34)
-
-
35. A computer implemented method for generating a constant bandwidth, decreased idle time scheduling matrix suitable for the delivery of on-demand data in a non client specific format, said method comprising the acts of:
-
generating a scheduling matrix suitable for transmission of a first data file, said first data file being represented by a first plurality of data blocks, said first scheduling matrix providing a first sequence for transmitting said first plurality data blocks sequentially within time slots in a manner such that any client receiving transmission of said first data file according to said first scheduling matrix may begin accessing said first data file within one time slot;
determining a desired constant transmission bandwidth, wherein said constant bandwidth is defined by the transmission of a defined constant number of data blocks per time slot; and
for a next time slot, selecting sequentially a number of data blocks for transmission being equal to the defined constant number of data blocks, cycling back to the beginning of said first sequence of data blocks once the entire first sequence of data blocks has been scheduled for transmission, wherein use of said constant bandwidth is fully optimized.
-
Specification