Detailed description of the present invention
The invention provides a kind of DOD broadcast system, can on narrow bandwidth, transmit as one or more data files of sub-optimization data block simultaneously and give a large amount of clients, and not need two-way communication.The invention provides a kind of STB, can in the short time of the data file that the client is ordering, begin playable data files.And a kind of more effective bandwidth method of download data files is provided, by postponing the client access time to allow the each several part of intelligent STB loading data file before the beginning playable data files.
Some potential method of the DOD data of maximization transmission comprises use when minimizing transmission bandwidth: the constant bandwidth transmits matrix, and reduces matrix when not busy.All these and method thereof all obtain openly with reference in inventing the above-mentioned of Khoi Hoang.When these methods according to time-optimized mode when the client provides general DOD professional, as with the access time on the exchange of delay, what also exist the transmission bandwidth that further lowers the requirement provides the possibility of general DOD broadcasting service to the client.
Figure 1A has described theexemplary DOD system 100 according to one embodiment of the present ofinvention.DOD system 100 provides data file such as video file as required in this embodiment.But thisDOD system 100 is not limited to provide provides video file as required, but other the data file such as the game file of program request can also be provided.DOD system 100 comprises the control service of central authorities along 102,external memory 103, a plurality ofchannel server 104a-104n, a plurality ofupconverter 106a-106n and combiner/amplifier 108.Central control server 102control channel servers 104, central storage means 103 is with the number format storing data files.In an exemplary embodiment, the data file that is stored in thecentral storage means 103 is can be visited ascentral control server 102 by the computer of the mandate that is connected to this network interface by standard network interface (connecting as Ethernet).Eachchannel server 104 is assigned to a channel and is connected to a upconverter 106.Channel server 104 provides from central storage means 103 data retrieved files according to the instruction from central control server 102.The output of eachchannel server 104 is intermediate frequency (IF) signals of quadrature amplitude modulation (qam) modulation, and this signal has the frequency that is applicable to corresponding upconverter 106.The IF signal of QAM modulation depends on the standard of being adopted.The standard that current American is adopted is data over cable service interface specifications (docs is) (DOCSIS) standard, and this requires the IF frequency of about 43.75MHz.The IF conversion of signals that upconverter 106 will receive fromchannel server 104 is radiofrequency signal (a RF signal).These comprise that frequency and bandwidth radio-frequency signal depend on the channel and the accepted standard of expectation.For example, under the current standard of U.S.'s cable television channels 80, the frequency of RF signal approximately is the bandwidth of 559.25MHz and about 6MHz, the output ofupconverter 106 is imposed on combiner/amplifier 108, this RF signal that combiner/amplifier 108 amplifies, regulates and combination is received is exported to signal transmission medium 10 then.
In exemplary embodiment,central control server 102 comprises a graphical user interface (not shown) so that the service provider can transmit by the drag-and-drop operation layout data.Andcentral control server 102 is verified and is started or stoped according to transmitting matrix control channel server 104.In the embodiment of an example,central control server 102 is automatically selected a channel and is calculated the transmission matrix that is used for the transfer file data in selected channel.Thiscentral control server 102 provides the renewal of increase, deletion and the data file information (as duration, catalogue, rate and/or concise and to the point description etc.) of off line.And middleface Control Server 102 is controlled central storage means 103 by updated data file and storage database wherein.
In the embodiment of an example, existingwired television system 120 can be presented signal into combiner/amplifier 108 continuously to provide non-DOD business to the client, therefore can not destroy existing cable television service according to DOD of the present invention system.
Figure 1B provides another exemplary embodiment according to DOD of the present invention system.According in the key element described in Figure 1A,DOD system 100 comprises a switch matrix 112,114, one groups of backups of channel monitormodule channel server 116a-116b, and a cover backup upconverter 118a-118b.In one embodiment,switch matrix 112 physically betweenupconverter 106 and combiner/amplifier 108,switch matrix 112 is by 102 controls of client's Control Server, thischannel monitor module 114 comprises the set-top box of a plurality of configurations, the client that its emulation is potential is used to monitor the operation conditions of DOD system 100.Monitor that the result sendscentral control server 102 to by channel monitor module 114.Under the situation that channel lost efficacy (as channel server lost efficacy, upconverter lost efficacy or communication linkage inefficacy etc.),central control server 102 to switchmatrix 112 break away from the parts that break down and in conjunction with a good spare unit 116 and/or 118 to recover professional.
In the embodiment of example, the data file from 100 broadcasting of DOD system is included in Motion Picture Experts Group (MPEG) file, and each mpeg file dynamically is divided into data block and is mapped to the sub-piece of the specific part of data file along time shaft.These data blocks and sub-piece transmit matrix according to the three-dimensional that is provided bycentral control server 102 and send during preset time.For DODsystem 100 provides the DOD business feedback channel not necessarily, if but a feedback channel is available, this feedback channel can be used for other purpose, for example keeps accounts or Internet service etc. is provided.
Fig. 2 represents theexample channel server 104 according to one embodiment of the invention.Thischannel server 104 comprises 206, onelocal storages 208 of 204, one QAM modulators of 202, one CPU of a controller server and network interface 210.Thiscontroller server 202 is divided into data file byindication CPU 204 whole operation of piece (further being divided into sub-piece and packet)control channel server 104, select to be used for data block transmitted according to the transmission matrix that provides bycentral control server 102, the selected data of encoding, the data of compressed encoding, the data with compression are sent toQAM modulator 206 then.ThisQAM modulator 206 connects by bus (or PCI, cpu local bus) or Ethernet and receives the data that will transmit.In an exemplary embodiment, the QAM modulator can comprise a downstream QAM modulator, upstream quadrature amplitude modulation/Quadrature Phase Shift Keying (QAM/QSK) conflict demodulator with forward error correction decoder, and/or a upstream tuner.The output ofQAM modulator 206 is the IF signals that can directly impose onupconverter 106.
Network interface 210 is connected toother channel server 104 withchannel server 104 and is connected tocentral control server 102 to carry out planning and the control command fromcentral control server 102, tocentral control server 102 repayment states, and from central storage means 103 received data files.Before according to instruction treatmenting data file fromcontroller server 202, anylocal storage 208 that can be stored inchannel server 104 from central storage means 103 data retrieved files.In the embodiment of an example,channel server 104 can send one or more DOD data flow, and this depends on the bandwidth (for example 6,6.5 or 8MHz) of cable channel, QAM 64 or QAM 256, and the compression standard or the bit rate of DOD data flow (as MPEG-1 or MPEG-2).
Fig. 3 shows the exemplary set-top box (STB) 300 according to one embodiment of the present of invention.STB 300 comprisesqam demodulator 302, andCPU 304, conditional access module 306 (for example smart card system),local storage 308,buffer storage 309,STB controller 310,decoder 312 and graphics overlay module 314.STB controller 310) whole operation of control STB300, it is selected data, the selected data of decoding, the decoded data that decompresses, re-assemblies decoded data, is sent todecoder 312 atlocal storage 308 orbuffer storage 309 stored decoded datas and with the data of storage with the customer in response request by ControlledCPU 302 and qam demodulator 302.In the embodiment of an example,STB controller 310 is based on the whole operation of the data packet head control STB300 in the packet that receives from transmission medium 110.In the embodiment of an example,local storage 308 comprises that nonvolatile storage (as hard disk) and buffer storage comprise volatile memory.
In one embodiment,qam demodulator 302 comprise transmitter and receiver module and following in one or more: private encrypting-decrypting module, forward error correction decoder/encoder, tuner control, downstream and upstream process device, CPU and memory interfacecircuit.Qam demodulator 302 receives these signals of IF signal, sampling and demodulation of modulation with restore data.
When thisconditional access module 306 allows to be authorized to after visit is through checking or carry out decoding processing when corresponding cost changes, the condition of visit is determined by its service provider.
Verification method comprises that the subscription level is held up rank with newspaper in addition directly to be inserted in the DOD data of being transmitted.In the method, STB 300 reads these access levels and they and the access level that is stored in the STB 300 is compared.If rank of being stored and the subscription level coupling that transmits along with the DOD service, authorize clients receives this service.Hold up other situation of level for newspaper, the newspaper that STB 300 reads in transmission in the DOD business is held up rank and is shown with this newspaper and holds up the corresponding message of rank.These verification methods are described in the patent application that the name of Khoi Hoang is called " control data program request client access " (July 19 calendar year 2001 is that submit, and in conjunction with as a reference application number 09/902,503).
In the embodiment of an example, when visit was authorized to, at least one data block ofdecoder 312 decodings was to be transformed into data block the image that can show on cutout screen.Thisdecoder 312 supports from the order of subscribing to the client, as playing, stop, time-out, stepping, falling to reach and fall forward etc. backward.
Graphics overlay module 314 strengthens shown graphical quality by α mixing or picture-in-picture performance for example are provided.In one embodiment, the figure that thisgraphics overlay module 314 can be used for during the game play pattern quickens, and for example provides point of play sowing time when the service provider utilizes according to system of the present invention.
In one embodiment, although all data files are broadcast to all cable TV subscribers, only be that the DOD subscriber withcompatible STB 300 can decode and enjoy the data-on-demand business.In the embodiment of an example, can obtain permission by a smart card system in theaccess control module 306 with good conditionsi to the program request of data file.Smart card system can local shop or is recharged at retailer's machine place that the service provider is provided with.In the embodiment of another example, ex interest charging system provides unconfined visit to all available data files to the subscriber.
In the embodiment of an example, the data-on-demand interaction feature allows the client to select an available data file at any time, and the client pushes the time of a selector button between beginning to play to selected data and is called the response time.Be assigned with (for example bandwidth, server performance) so that DOD to be provided business, this response time becomes shorter and shorter with being full of more resources.In the embodiment of an example, can be according to this response time is determined in the assessment of resource allocation and the service quality of expectation.
In the embodiment of an example, the selected response time is determined the duration of time slot.The duration of a time slot (TS) is represented the time interval with a data module of normal speed forward.In the embodiment of an example, data file such as video file are divided into a plurality of data blocks so that each data block can be supported the broadcast to the data file in the duration of time slot.
In one embodiment, the quantity (NUM_OF_BLKS) that is used for the data block of each data file can be calculated according to following: Estimated_BLK_Size=(DataFile Size*TS)/DataFile_Length (1) BLK SIZE=(Estimated BLK Size+CLUSTER SIZE-1Byte)/CLUSTER_SIZE (2) BLK_SIZE_BYTES=BLK_SIZE*CLUSTER_SIZE (3) NUM_OF_BLKS=(DataFile_Size+BLK_SIZE_BYTES-1Byte)/BLK_SIZE_BYTES (4)
In equation (1)-(4), Estimated_BLK_Size is the block size of estimating (is unit with the byte), and DataFile_Size is data file size (is unit with the byte); TS represents the duration (is unit with the second) of time slot; DataFile_Length is the duration (is unit with the second) of data file; BLK_Size is the quantity of needed bunch of each data block; CLUSTER_SIZE be used for eachchannel server 104local storage 208 bunch size (for example 64k byte).In this embodiment, the quantity of piece (NUM_OF_BLKS) equals data file size (is unit with the byte) and adds data block size (is unit with the byte) and subtract 1 byte, and then divided by data block size (is unit with the byte).A certain embodiments is described in equation (1)-(4).People in the present technique field will recognize that another method can be used for the quantity of the data block of calculated data file.For example, data file is divided into the function (function) of bunch size that a plurality of data blocks mainly are thelocal storages 208 of the piece size estimated andchannel server 104, therefore, the present invention is not limited to above-mentioned specific embodiment.
Fig. 4 has described and has been used to produce an exemplary processing procedure that sends the planning matrix of data file according to one embodiment of the invention.In the embodiment of an example, the present invention utilizes Time Division Multiplexing and frequency division multiplexing (FDM) technology to come to transmit in server side compression and layout data.In the embodiment of an example, for each data file produces planning matrix.Each data file is divided into a plurality of data blocks and produces this planning matrix according to the quantity of data block in the embodiment of an example.Usually, planning matrix is provided for sending the sending order of the data block of data file from server to the client, so that this data block can be visited according to sequence order by any client at random time visit data file.
Instep 402, a plurality of data blocks (x) of received data file.One first variable j is set to 0 (step 404).Remove a referential array (step 406), for the lasting tracking data piece of this referential array of purpose of internal control.Next step compares j and x (step 408).If j is less than x, second variable i is set to 0 (step 412).Next step compares (step 414) with i and x.If i, is stored in the interior data block of row [(i+j) mod (x)] of planning matrix less than x and is write into referential array (step 418).If referential array has had such data block, then no longer carry out the copy of repetition.Initially, because planning matrix does not enter the mouth (entry), this step can skip over.Next step checks whether referential array comprises data block i (step 420).Initially, because all inlets of referential array are eliminated instep 406, will be at referential array without any thing.If referential array does not comprise data block i, data block i is added to the position [(i+j) mod (x), j] and the referential array (step 422) of planning matrix.After data block i is added to planning matrix and referential array, i is increased by 1, so that i=i+1 (step 424),step 414 repeats this processing procedure up to i=x then.If referential array comprises data block i, i is added 1, so that i=i+1 (step 424) repeats up to i=x instep 414 with last handling process.When i=x, j is added 1 so that j=j+1 (step 416) and processing procedure repeat up to j=x in step 406.Whole process finishes when j=x (step 410).
In the embodiment of an example, if data file is divided into 6 data blocks (x=6), this planning matrix and R-matrix are as follows:
Planning matrix (SM)
| TS0 | ?TS1 | ?TS2 | ?TS3 | ?TS4 | ?TS5 |
| [0,0]blk0 | [1,0]blk1 | [2,0]blk2 | [3,0]blk3 | [4,0]blk4 | [5,0]blk5 |
| [0,1] | [1,1]blk0 | [2,1] | [3,1] | [4,1] | [5,1] |
| [0,2] | [1,2] | [2,2]blk0 | [3,2]blk1 | [4,2] | [5,2] |
| [0,3] | [1,3] | [2,3] | [3,3]blk0 | [4,3] | [5,3]blk2 |
| [0,4] | [1,4]blk3 | [2,4] | [3,4] | [4,4]blk0 | [5,5]blk1 |
| [0,5] | [1,5] | [2,5] | [3,5]blk4 | [4,5] | [5,5]blk0 |
R-matrix (RA)
| space0 | ?space1 | ?space2 | ?space3 | ?space4 | ?space5 |
| ?TS0 | ?blk0 | ?blk1 | ?blk2 | ?blk3 | ?blk4 | ?blk5 |
| ?TS1 | ?blk1 | ?blk0 | ?blk2 | ?blk3 | ?blk4 | ?blk5 |
| ?TS2 | ?blk2 | ?blk0 | ?blk3 | ?blk1 | ?blk4 | ?blk5 |
| ?TS3 | ?blk3 | ?blk1 | ?blk0 | ?blk4 | ?blk5 | ?blk2 |
| ?TS4 | ?blk4 | ?blk0 | ?blk5 | ?blk2 | ?blk1 | ?blk3 |
| ?TS5 | ?blk5 | ?blk2 | ?blk1 | ?blk0 | ?blk3 | ?blk4 |
In the embodiment of this example, based on top planning matrix, 6 data blocks of this data file send according to following order:
TS0blk0
TS1blk0,blk1,blk3
TS2blk0,blk2
TS3blk0,blk1,blk3,blk4,
TS4blk0,blk4
TS5blk0,blk1,blk2,blk5,
In another embodiment, one in advance (look-ahead) processing procedure can be used for before the access time of prediction, calculating the predetermined quantity of planning matrix in advance with the data block that sends a data file.For example, if a predetermined first line time is the duration of a time slot, for any time slot more than or equal to the 4th time slot, the data block 4 (blk4) of data file should subscribed to the customers' place bySTB 300 receptions when TS or before it, but blk4 just plays up to TS4.Be used to produce the treatment step that the treatment step of planning matrix is forward described with reference to Fig. 4 above being substantially similar to, exception is in the present embodiment the planning matrix in advance transmission sequence of morning more of go ahead of the rest time planning substantially.The tentation data file is divided into 6 data blocks, can be expressed as follows according to the exemplary transmission sequence (the first line time with duration of two time slots) of a planning matrix of going ahead of the rest:
TS0blk0
TS1blk0,blk1,blk3?blk4,
TS2blk0,blk2
TS3blk0,blk1,blk3,blk4,blk5,
TS4blk0,blk5
TS5blk0,blk1,blk2
Planning matrix according to each data file in one group of data file can produce the three-dimensional transmission matrix that is used to send one group of data file.Transmit in matrix in this three-dimensional, in this group of data files, can produce the third dimension of the ID that comprises each data file, calculate this three-dimensional and transmit matrix to effectively utilize available bandwidth in each channel to transmit a plurality of data flow.In an exemplary embodiment, a kind of convolution method known in the art is used to produce the three-dimensional matrix that transmits to plan effective transmission of one group of data file.For example, a kind of convolution method can comprise following strategy: the entire quantity of the data block that the duration in (1) when crack (TS) in office sends should remain on the min-free amount; And (2) if having a plurality of segmentation schemes (solution) available with respect to strategy (1), preferable scheme be data block that the duration in any reference will be sent, the duration of time slot (relative reference time slot) data block that will send and the data block addition that will send in the duration of next time slot (relative reference time slot) formerly and have the minimal data piece and that scheme.For example suppose an example system that sends two short data file M and B, be divided into 6 data blocks in this each data file, then the transmission sequence based on planning matrix is as follows:
TS0blk0
TS1blk0,blk1,blk3?blk4,
TS2blk0,blk2
TS3blk0,blk1,blk3,blk4
TS4blk0,blk4
TS5blk0,blk1,blk2,blk5
Adopt aforesaid exemplary method, available transmission combinations of matrices is as follows:
Option one: send video file N whole data block attime shift 0 TS
TS0M0,N0??????????????????????????????2
TS1M0,M1,M3,N0,N1,N3??????????????6
TS2M0,M2,N0,N2??????????????????????4
TS3M0,M1,M3,M4,N0,N1,N3,N4??????8
TS4M0,M4,N0,N4?????????????????????????4
TS5M0,M1,M2,M5,N0,N1,N2,N5?????????8
Option 2: send video file N whole data block attime shift 1 TS
TS0M0,N0,N1,N3?????????????????????????4
TS1M0,M1,M3,N0,N2?????????????????????5
TS2M0,M2,N0,N1,N3,N4?????????????????6
TS3M0,M1,M3,M4,N0,N4?????????????????6
TS4M0,M4,N0,N1,N2,N5?????????????????6
TS5M0,M1,M2,M5,N0?????????????????????5
Option 3: send video file N whole data block at time shift 2 TS
TS0M0,N0,N2?????????????????????????????3
TS1M0,M1,M3,N0,N1,N3,N4?????????????7
TS2M0,M2,N0,N4?????????????????????????4
TS3M0,M1,M3,M4,N0,N1,N2,N5?????????8
TS4M0,M4,N0?????????????????????????????3
TS5M0,M1,M2,M5,N0,N1,N3?????????????7
Option 4: send video file N whole data block at time shift 3 TS
TS0M0,N0,N1,N3,N4?????????????????????5
TS1M0,M1,M3,N0,N4?????????????????????5
TS2M0,M2,N0,N1,N2,N5?????????????????6
TS3M0,M1,M3,M4,N0?????????????????????????????5
TS4M0,M4,N0,N1,N3?????????????????????????????5
TS5M0,M1,M2,M5,N0,N1,N2?????????????????????6
Option 5: send video file N whole data block at time shift 4 TS
TS0M0,N0,N4?????????????????????????????????????3
TS1M0,M1,M3,N0,N1,N2,N5?????????????????????7
TS2M0,M2,N0?????????????????????????????????????3
TS3M0,M1,M3,M4,N0,N1,N3?????????????????????7
TS4M0,M4,N0,N2?????????????????????????????????4
TS5M0,M1,M2,M5,N0,N1,N3,N4?????????????????8
Option 6: send video file N whole data block at time shift 5 TS
TS0M0,N0,N1,N2,N5?????????????????????????????5
TS1M0,M1,M3,N0?????????????????????????????????4
TS2M0,M2,N0,N1,N3?????????????????????????????5
TS3M0,M1,M3,M4,N0,N2?????????????????????????6
TS4M0,M4,N0,N1,N3,N4?????????????????????????6
TS5M0,M1,M2,M5,N0,N4?????????????????????????6
Adopt strategy (1), option 2,4,6 have the minimum number of the data block (as 6 data blocks) that sends during the when crack in office.Adopt strategy (2), the transmission matrix of optimizing in the embodiment of example is an option 4 because option have any data block with reference to time slot add adjacent time-slots (as 16 data blocks) data block minimum and.Therefore, present embodiment optimally, the transmission sequence of data file N should be to be moved three time slots.In the embodiment of an example, for eachchannel server 104 produces a three-dimensional matrix that transmits.
When being each data file transmission block according to the transmission matrix, a large amount of subscription clients can visit this data file randomly, and the respective data blocks of this data file also can in time be visited for each subscribes to client.In the example that provides, suppose that the duration of time slot equals 5 seconds in the above,DOD system 100 sends out according to the transmission matrix of optimizing in the following manner and is data file M and N transmission data block (that is, the transfer sequence with data file N moves three time slots):
Time 00:00:00 M0 N0 N1 N3 N4
Time 00:00:05 M0 M1 M3 N0 N4
Time 00:00:10 M0M2 N0 N1 N2 N5
Time 00:00:15 M0 M1 M3 M4 N0
Time 00:00:20 M0 M4 N0 N1 N3
Time 00:00:25 M0 M1 M2 M5 N0 N2
Time 00:00:30 M0 N0 N1 N3 N4
Time 00:00:35 M0 M1 M3 N0 N4
Time 00:00:40 M0 M2 N0 N1 N2 N5
Time 00:00:45 M0 M1 M3 M4 N0
Time 00:00:50 M0 M4 N0 N1 N3
Time 00:00:55 M0 M1 M2 M5 N0 N2
If at time 00:00:00, client A selects film M, and theSTB 300 at client A place will and refuse data block according to following reception, storage, broadcast: time 00:00:00 receives M0 and plays M0,0 time of store M 00:00:05 receives M1, and M3 plays M1,store M 0, M1, M3 time 00:00:10 receives M2 and plays M2,store M 0, M1, M2, M3 time 00:00:15 receives M4 and plays M3,store M 0, M1, M2, M3, M4 time 00:00:20 receives no and plays M4,store M 0, M1, M2, M3, M4
Time 00:00:25 receives M5 and plays M5,store M 0, M1, M2, M3, M4, M5
If at time 00:00:10, client B selects film M, and theSTB 300 at client B place will and refuse data block according to following reception, storage, broadcast:
Time 00:00:10 receives M0, and M2 plays M0,store M 0, M2
Time 00:00:15 receives M1, M3, and M4 plays M1, store M (0, M1, M2, M3, M4
Time 00:00:20 receives no and plays M2,store M 0, M1, M2, M3, M4
Time 00:00:25 receives M5 and plays M3,store M 0, M1, M2, M3, M4, M5
Time 00:00:30 receives no and plays M4,store M 0, M1, M2, M3, M4, M5
Time 00:00:35 receives no and plays M5,store M 0, M1, M2, M3, M4, M5
If at time 00:00:15, client C selects film N, and theSTB 300 at client C place will and refuse data block according to following reception, storage, broadcast:
Time 00:00:15 receives N0 and plays N0, storage N0
Time 00:00:20 receives N1, and N3 plays N1, storage N0, N1, N3
Time 00:00:25 receives N2 and plays N2, storage N0, N1, N2, N3
Time 00:00:30 receives N4 and plays N3, storage N0, N1, N2, N3, N4
Time 00:00:35 receives no and plays N4, storage N0, N1, N2, N3, N4
Time 00:00:40 receives N5 and plays N5, storage N0, N1, N2, N3, N4, N5
If at time 00:00:30, client D selects film N, and theSTB 300 at client D place will and refuse data block according to following reception, storage, broadcast:
Time 00:00:30 receives N0, N1, and N3, N4 plays N0, storage N0, N1, N3, N4
Time 00:00:35 receives no and plays N1, storage N0, N1, N3, N4
Time 00:00:40 receives N2, and N5 plays N2, storage N0, N1, N2, N3, N4, N5
Time 00:00:45 receives no and plays N3, storage N0, N1, N2, N3, N4, N5
Time 00:00:50 receives no and plays N4, storage N0, N1, N2, N3, N4, N5
Time 00:00:55 receives no and plays N5, storage N0, N1, N2, N3, N4, N5
Shown in top example, client's combination arbitrarily can be selected independently randomly and begin to play the data file arbitrarily that is provided by the service provider.If have enough bandwidth to be used to transmit given data file, just can utilize the son of discussing below to optimize transmission plan postpones the transmission greater number with less time data for the foregoing description.Although top method provides the general DOD of time-optimized mode to serve to the client, following method can also provide general DOD broadcast service to the client, and this service is as can further reducing desired bandwidth with the exchange that postpones the access time.
Fig. 5 has described and has been used for producing the exemplary method that son is optimized planning matrix 500.According to an embodiment, the present invention utilizes Time Division Multiplexing and frequency division multiplexing (FDM) technology to come to transmit in server side compression and layout data.In the embodiment of an example,, each data file optimizes planning matrix for producing son.In one embodiment, each data file is divided into a plurality of data blocks and produces this son according to the quantity of data block and optimizes planning matrix.Son is optimized planning matrix and is provided for sending the sending order of the data block of data file from server to the client, so that these data blocks can be visited according to sequence order by any client of visit data file in a time slot of random time.
In step 502, a plurality of data blocks (x) of received data file.One first variable j is set to 0 (step 504).Remove a referential array (step 506), for the lasting tracking data piece of this referential array of purpose of internal control.Next step compares j and x (step 508).If j is less than x, second variable i is set to 0 (step 512).Next step compares (step 514) with i and x.If i, is stored in the interior data block of row [(i+j) mod (x)] of son optimization planning matrix less than x and is write into referential array (step 518).If referential array has had such data block, then no longer carry out the copy of repetition.Initially, because son is optimized not inlet of planning matrix, this step can skip over.Next step checks whether referential array comprises data block i (step 520).Initially, because all inlets of referential array are eliminated in step 506, will be at referential array without any thing.If referential array does not comprise data block i, inspection is optimized the first prostatitis (i-1) of planning matrix and is seen whether matrix column (i-1) comprises data block i (step 521), this data block i is added to the other and referential array (step 522) in position [(i+j) mod (x), j] that son is optimized planning matrix.After data block i is added to son optimization planning matrix and referential array, i is increased by 1, so that i=i+1 (step 524) repeats this processing procedure up to i=x in step 514 then.If referential array comprises the row (i-1) of data block i or son optimization planning matrix and comprises data block i, i is added 1, so that i=i+1 (step 524) repeats up to i=x in step 514 with last handling process.When i=x, j is added 1 so that j=j+1 (step 516) and processing procedure repeat up to j=x in step 506.Whole process finishes when j=x (step 510).
In the embodiment of an example, if data file is divided into 6 data blocks (x=6), this planning matrix and R-matrix are as follows:
Planning matrix (SM)
| TS0 | ?TS1 | ?TS2 | ?TS3 | ?TS4 | ?TS5 |
| [0,0]blk0 | [1,0]blk1 | [2,0]blk2 | [3,0]blk3 | [4,0]blk4 | [5,0]blk5 |
| [0,1] | [1,1] | [2,1] | [3,1] | [4,1] | [5,1] |
| [0,2] | [1,2] | [2,2]blk0 | [3,2]blk1 | [4,2] | [5,2] |
| [0,3] | [1,3] | [2,3] | [3,3] | [4,3] | [5,3]blk2 |
| [0,4] | [1,4]blk3 | [2,4] | [3,4] | [4,4]blk0 | [5,5]blk1 |
| [0,5] | [1,5] | [2,5] | [3,5]blk4 | [4,5] | [5,5] |
R-matrix (RA)
| space0 | ?space1 | ?space2 | ?space3 | ?space4 | ?space5 |
| TS0 | ?blk0 | ?blk1 | ?blk2 | ?blk3 | ?blk4 | ?blk5 |
| ?TS1 | ?blk1 | ?blk0 | ?blk2 | ?blk3 | ?blk4 | ?blk5 |
| ?TS2 | ?blk2 | ?blk0 | ?blk3 | ?blk1 | ?blk4 | ?blk5 |
| ?TS3 | ?blk3 | ?blk1 | ?blk0 | ?blk4 | ?blk5 | ?blk2 |
| ?TS4 | ?blk4 | ?blk0 | ?blk5 | ?blk2 | ?blk1 | ?blk3 |
| ?TS5 | ?blk5 | ?blk2 | ?blk1 | ?blk0 | ?blk3 | ?blk4 |
In the embodiment of this example, optimize planning matrix based on top son, 6 data blocks of this data file send according to following order: TS0 blk0 TS1 blk1, blk3 TS2 blk0, blk2 TS3 blk1, blk3, blk4 TS4 blk0, blk4 TS5 blk1, blk2, blk5
When " optimization " planning sequence with the example of Fig. 4 compares, " son is optimized " 3 of sequences of planning or data block still less of this example, such transmission that causes can utilize the child optimization planning of example and require 18.75 or bandwidth still less.This son is optimized one of planning requirement and is received the duration that the selected data file of STB delay demonstration is given a time slot of user.
The people understands that the child optimization planning of the foregoing description only is in countless a plurality of available scheme one in the present technique field, the bigger minimizing on the desired bandwidth of transmission data file can by use STB in the access time bigger delay reach.
Fig. 6 has described the exemplary STB method that is used to receive son optimization DOD transfer of data according to one embodiment of the invention.Thisprocessing 600 originates instep 602, receives an electronic guide program (EPG) at this STB300 (Fig. 3) from DOD broadcast system 100 (Figure 1A), and this EPG is listed in all available files in the DODsystem 100.In step 603, the user is by being chosen in a data file of listing on the EPG by a purchase button relevant with the desireddata file.In step 604, the data block that STB 300 (Fig. 3) begins to store the selected data file, this STB wait time enough cycle is not interruptedly play this data file with the enough data block store that allow the selected data file so that STB can have.What can determine to have postpone to guarantee playing selected data file reposefully according to an Embodiment C PU 304 (Fig. 3).This can utilize various algorithms to finish or only finish by only comprise desired deferred message in the position, packet header in the data ofDOD system 100 transmission.In such an embodiment, DOD system change optimization transmission matrix depends on available transmission bandwidth with the quantity of desired delay-slot.
In case having postponed long enough, STB do not have the necessary data block of the selected data file of the broadcast of interruption with storage, STB automatically begins to play selected data file, according to another one embodiment, in case finished delay period, STB prompting user begins to play selected data file.
General operation
A service provider can planning send a plurality of data files (for example video file) tochannel server 104 before broadcasting.Thiscentral control server 102 calculates and sends the three-dimensional matrix (ID, time slot, and data block sending order) that transmits to channel server 104.During broadcasting, the three-dimensional matrix that transmits ofchannel server 104 consultings is to send corresponding data block according to suitable order.Each data file is divided into data block so that a large amount of subscription clients can begin continuously independently and sequence is watched data file randomly.The size of data block depends on the bit rate of data flow in duration of time slot of planning and the data file in the data file.For example, in constant bit rate mpeg data stream, each data block has fixing size: Block Size (block size) (MB)=bit rate (Mb/s) * TS (s)/8 (1).
In the embodiment of an example, adjust block size and be the higher value of the next one of the storage cluster size in thelocal storage 208 of channel server 104.For example, if the data block length that calculates according to top formula (1) is 720Kb, if then bunch size oflocal storage 208 is that the so resulting data block length of 64Kb should be 768Kb.In this embodiment, data block should be further to be divided into a plurality of sub-pieces, and each has and bunch measure-alike size.In this embodiment, data block has 12 sub-pieces of 64Kb.
Sub-piece can further be divided into packet, and each packet includes packet header and bag data, and the bag data length depends on that the CPU of each channel server sends the MTU (MTU) of the physical layer of data to it.In a preferred embodiment, the whole size of packet header and bag data should be less than MTU.But in order to obtain maximal efficiency, the bag data length should be long as much as possible.
In the embodiment of example, the data in the packet header comprise the data ofSTB 300 all receptions of decoding that allow the subscription client and determine whether this packet belongs to the information of selected data file (for example agreement is signed, version, ID or package informatin etc.).Packet header also can comprise other information, and for example desired son is optimized delay period, piece/sub-piece/bag quantity, and packet length, cyclic redundancy detects (CRC), skew in the sub-piece and/coded message.
Incase channel server 104 receives, packet is sent toQAM modulator 206, and at this, another packet header is added to packet to produce the IF output signal of a QAM modulation.Available bandwidth is depended in the Maximum Bit Rate output of QAM modulator 206.For example for theQAM modulator 206 with 6MHz bandwidth, maximum bit rate is 5.05 (bit/symbol) * 6 (MHz)=30.3Mb/s.
The IF signal of QAM modulation is sent to upconverter 106 to be transformed into the RF signal that is applicable to specific channel (for example the CATV channel 80, and 559.250MHz and 6MHz are wide).For example, if cable network is high bandwidth (or high bit rate), each channel can be used to provide more data stream, and each data flow only takies a virtual sub-channel.For example, utilize the QAM modulation three MPEG1 data flow can be sent into the channel of 6MHz.The output ofupconverter 106 is provided for combiner/amplifier 108, and its signal with combination sends totransmission medium 110.
In the embodiment of example, the whole system bandwidth (BW) that is used for sending " N " individual data flow is BW=N * bw, and wherein bw is the desired bandwidth of each data flow.For example, three MPEG-1 data flow can be sent simultaneously by the DOCSIS cable channel with 30.3Mb/s system bandwidth, because each MPEG-1 data flow takies the 9Mb/s of system bandwidth.
No matter the subscription client's of actual access DOD business quantity how, all want bandwidth consumed.Therefore, do not use the DOD business, still want bandwidth consumed to guarantee the program request ability of system even if subscribe to the client.
In case open,STB 300 receives and updates stored in the program guide in thelocal storage 308 ofSTB 300 continuously.In the embodiment of an example, STB shows the data file information that includes program guide up-to-date on the TV screen.Data file information such as video file information comprise film ID, movie name, description (with multilingual), classification (action movie, film for children), rank (R for example, PG13), wired company rule (price for example, freely try to gain preview length), subscription period, film poster and movie preview etc.In the embodiment of an example, for example be that firmware (firmware) upgrades, commercial and or the channel transmission data file information that keeps of collision event information by the physical channel that keeps.In the embodiment of an example, by the physical channel transmission information shared with other data flow.
Subscribe to the client for one and can check the available data file of arranging according to the classification that is presented on the video screen.When the available data file of one of customer selecting,STB 300 its hardware of control are tuning to advance a corresponding physical channel and/or a virtual sub-channel to begin to receive the packet at thisdata file.STB 300 checks each data packet head, data in the decoded data packets and determine whether to keep the packet that is received.IfSTB 300 determines should not keep this packet, then abandon this packet, otherwise inlocal storage 308, preserve this packet so that retrieve later on or temporarily be stored in thebuffer storage 309 up to sending todecoder 312.
In order to improve effectiveness of performance by the frequent read/write of avoidinglocal storage 308, in the embodiment of an example,STB 300 uses " sliding window " application technology to lock the data block of expecting in the memory buffer 309.If an incident (hit) has taken place in application window, data block is then directly exported frommemory buffer 309 and is sent to decoder.If use to omit (miss) and take place for one, then data block is afterlocal storage 308 is read intomemory buffer 309, and data block is sent to decoder 312 frommemory buffer 309.
In an example embodiment,STB 300 is by infrared (IR) remote control unit button, IR keyboard or foreground button (comprising pause button, slowly mobile broadcast, counter-rotating, complete set of equipments and the single step) order in response to the subscription client.In an example embodiment, do not import any action (for example roll program guide or selection are sorted out or film) if subscribe to the client in the cycle at preset time, will automatically play the commercial advertisement of a planning.The commercial advertisement of (as the button by remote control unit) this planning automatically stops when the subscription client provides an action.In an example embodiment,STB 300 can automatically play commercial advertisement, simultaneously, and displaying video.Service provider (as wired company) can be provided with the price strategy should interrupt in progress video with the advertisement of specifying how many times.
If in data packet head, find the emergency information bit, suspend any Data Receiving operation among the STB and control that its hardware is tuning to advance the emergency information of channel to obtain and to decode and will show that is kept for received data file information on cutout screen.In an example embodiment,STB 300 is idle, and it is by the channel that is kept for received data file information tuningly and always be ready to receive without delay and show any emergency information.
Aforesaid example has been described specific example embodiment of the present invention, but other embodiment, variation and modification are clearly the people in the present technique field.Therefore the present invention is not limited to certain embodiments discussed above, but defined by the appended claims.