CN1203671C - Methods for providing video-on-demand services for broadcasting systems - Google Patents

Methods for providing video-on-demand services for broadcasting systems Download PDF

Info

Publication number
CN1203671C
CN1203671C CNB018007570A CN01800757A CN1203671C CN 1203671 C CN1203671 C CN 1203671C CN B018007570 A CNB018007570 A CN B018007570A CN 01800757 A CN01800757 A CN 01800757A CN 1203671 C CN1203671 C CN 1203671C
Authority
CN
China
Prior art keywords
data
data file
data block
time
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB018007570A
Other languages
Chinese (zh)
Other versions
CN1366642A (en
Inventor
黄炎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PrediWave Corp
Original Assignee
PrediWave Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/584,832 external-priority patent/US6557030B1/en
Application filed by PrediWave Corp filed Critical PrediWave Corp
Publication of CN1366642A publication Critical patent/CN1366642A/en
Application granted granted Critical
Publication of CN1203671C publication Critical patent/CN1203671C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26241Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the time of distribution, e.g. the best time of the day for inserting an advertisement or airing a children program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26275Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for distributing content or additional data in a staggered manner, e.g. repeating movies on different channels in a time-staggered manner in a near video on demand system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/418External card to be used in combination with the client device, e.g. for conditional access
    • H04N21/4181External card to be used in combination with the client device, e.g. for conditional access for conditional access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Abstract

A method for sending data to a client to provide data-on-demand services comprises the steps of: receiving a data file, specifying a time interval, parsing the data file into a plurality of data blocks based on the time interval such that each data block is displayable during a time interval, determining a required number of time slots to send the data file, allocating to each time slot at least a first of the plurality of data blocks and optionally one or more additional data blocks, such that starting from any of the time slots, (i) the data file can be displayed by accessing the first of the plurality of data blocks; (ii) at a consecutive time slot, a next data block sequential to a prior displayed data block is available for displaying; and (iii) repeating step (ii) until all of the plurality of data blocks for the data file has been displayed, and sending the plurality of data blocks based on the allocating step.

Description

The method of VOD service is provided for broadcast system
Summary of the present invention
The present invention relates generally to data on demand system.Specifically, the present invention relates to video on-demand system.
Background technology of the present invention
Video request program (VOD) system is data-on-demand (data-on-demand, DOD) system type.In the VOD system, provide video data file to one or more client computer based on demand by the network of server or server.
In the VOD of routine framework, the client communication in the network of server or server and the standard layering client-server model.For example, client computer sends for the request of data file (for example video data file) and gives a server.According to the request of client computer, the data file that this server transmission is asked is to this client computer.In the client-server model of standard, client computer can be satisfied by one or more server for the request of data file.This client computer can have the ability to store any data file that receives at this machine so that use later in nonvolatile memory.The client-server model of standard requires two-way communication infrastructure.Current, two-way communication requires to set up new infrastructure, because existing cable provides unidirectional communication only.The example of two-way communication infrastructure is hybrid fiber optics coaxial cable (HFC) or all fiber basis facilities.It is very high to change existing cable expense, and getable business is not that most of users are affordable.
In addition, when ISP's (for example cable companies) attempted to provide VOD to serve to a large amount of client computer, the client-server model of standard had many restrictions.A restriction of the client-server model of standard is that the ISP must realize monitoring continuously and satisfies mechanism from each request of each client computer in this network; Therefore, the number of clients that can receive service depends on the capacity of such mechanism.A mechanism is used has massively parallel computer big and quick disk array as home server.But, give about 1000 to 2000 client computer even the fastest existing home server transmits video data stream simultaneously only.Therefore, in order to serve more client computer, must increase the quantity of home server.Increase home server and require more advanced servers are arranged to keep control to home server.
Another restriction of the client-server model of standard is the bandwidth that each client computer requires it.Therefore, desired total bandwidth directly is directly proportional with the quantity of subscribing client computer.Cache in home server has been used to improve bandwidth constraints, but is to use cache not address this problem, because cache also is limited.
At present, in order to make video request program more can afford for client computer, existing service provider increases the ratio of the client computer of each home server on the ability of home server.Usually, in fact the home server that service can be provided to 1000 client computer bears the service to 10,000 client computer.If great majority are subscribed not book videos simultaneously of client computer, this technology can be used.But this technology can cause fault because most of client computer simultaneously (being night and weekend) to watch video, therefore, make the home server overload that becomes.
Therefore, be desirable to provide a system, can in fact on any transmission medium, provide demand (telecommunication) service needn't change existing infrastructure to a large amount of client computer.
The present invention's general introduction
In the embodiment of an example, at server end, being used to transmit data gives client computer so that provide the method for data-on-demand business to comprise step: received data file, fixed time at interval, this data file is resolved to a plurality of data blocks according to this time interval, make that each data block is displayable during this time interval, determine to send the number of timeslots that this data file requires, give at least one first of these a plurality of data blocks of each time slot allocation and distribute one or more added block alternatively, the client computer of this data file of visit is available in order and sends these a plurality of data blocks based on this allocation step during making these a plurality of data blocks for when crack in office.In one embodiment, this analyzing step may further comprise the steps: the data block length of determining estimation, determine the length of gathering together (cluster size) of the memory in channel server and resolve this data file based on the data block length of this estimation and the length of gathering together.In another embodiment, this determining step comprises the step of estimating resource allocation and bandwidth.
In one embodiment, this method also comprises the step of selecting one group of prefetch data piece from these a plurality of data blocks, step with send this group prefetch data piece respectively in dedicated channel is used to send prefetch data, program guide, commercial break, firmware update or the like.In the embodiment of an example, select the step of one group of prefetch data piece may further comprise the steps: (1) determines in dedicated channel bandwidth reduction, allocated bandwidth and the time of delay to prefetch data; (2) according to selecting this bandwidth reduction, allocated bandwidth and time of delay the prefetch data piece.
In another embodiment, this method also comprises step: receive preview request, select one group of data block at random and show so that constitute preview and produce preview from a plurality of data blocks.In another embodiment, this method also is included in the demonstration that this dedicated channel sends one group of advertising programme data block and produces this group advertising programme data block at preset time.In the embodiment of an example, this advertising programme data block is sent in dedicated channel continuously.In this embodiment, the step that shows this group advertising programme data block may further comprise the steps: receive the demonstration that the price of the occurrence rate that the user shows according to advertising programme is selected and selected to produce this group advertising programme data block according to this user.
In another embodiment, this method also comprises step: the emergent bit of the packet header of check data file, when detecting emergent bit, be tuned to the demonstration of this dedicated channel to receive emergency information and to produce emergency information.In one embodiment, this method also comprises step: if determine that the zone whether emergency information is used to be correlated with is to be used for relevant zone with this emergency information, show this emergency information.
In the embodiment of an example, at client-side, be used to handle the data that receive from server: (a) during first time slot, receive the selection of a data file so that provide the method for data-on-demand business to comprise step; (b) at least one data block of this data file of reception during second time slot; (c) during next time slot: receive not received as yet any data block, the data block of video data file, and repeating step in order (c) all is received and shows up to all data blocks of this data file.Among the embodiment, by carry out the method that is used to handle from the data of server reception in the set-top box of client-side.
In the embodiment of an example, data file is divided into many data blocks and produces a timetable (scheduling) matrix based on the quantity of data block.At server end, the timetable matrix is provided for sending the order of transmission of data block, makes client computer to visit this data block in order in the time at random.In the embodiment of an example, the method that is used to produce the timetable matrix that is used for data file comprises step: (a) quantity of the data block of received data file [x]; (b) first variable [j] being set is zero; (c) second variable [i] being set is zero; (d) all clauses and subclauses of removing in referential array; (e) at least one data block in the matrix position that is stored in [(i+j) mould x] row in the matrix is write referential array, if this referential array does not also comprise this data block; (f) data block [i] is write the matrix position [(i+j) mould x, j] of this referential array and this matrix, if this referential array does not comprise this data block [i]; (g) second variable [i] increases progressively 1 and repeating step (e), equal the quantity [x] of data block up to second variable [i]; (h) first variable [j] increases progressively 1 and repeating step (c), equal the quantity [x] of data block up to first variable [j].In one embodiment, produce the timetable matrix of each data file that is used for one group of data file, and, use convolution (convolution) method and produce the transmission matrix according to the timetable matrix that is used to send this group data file.
Data on demand system comprises first group of channel server; A central control server is used to control first group of channel server; First group of upconverter is connected to first group of channel server; Be connected to a combiner/amplifier of first group of upconverter; With a combiner/amplifier that is adapted to pass through transmission medium transmission data.In the embodiment of an example, this data on demand system also comprises a channel monitor module, is used to monitor this system; A switch matrix; Second group of channel server and second group of upconverter.This channel monitor module is used for reporting to central control server when the system failure occurring.This central control server is according to the report from the channel monitor module, send instruction to this switch matrix, so as with the channel server in second group of channel server replace first group in the channel server the failed channel server, and replace first group of fault upconverter in the upconverter with the upconverter in second group of upconverter.
Being used to provides the method for data-on-demand business to comprise step: the transmission matrix of calculated data file, send this data file according to this transmission matrix, and make a large amount of client computer can watch this data file as required.In one embodiment, this data file comprises a video file.
The accompanying drawing summary
Figure 1A explanation is the DOD system of an example according to an embodiment of the invention;
The DOD system of Figure 1B explanation example according to another embodiment of the invention;
Fig. 2 illustrates the channel server of example according to an embodiment of the invention;
Fig. 3 illustrates the set-top box of example according to an embodiment of the invention;
Fig. 4 explanation is used to produce the process of the example of a timetable matrix according to one embodiment of present invention.
Detailed description of the present invention
Figure 1A explanation is the DOD system 100 of an example according to an embodiment of the invention.In this embodiment, DOD system 100 provides the data file such as video file as required.But DOD system 100 is not limited to provide as required video file, also can provide other data file, for example game file as required.DOD system 100 comprises a central control server 102, central memory 103, a plurality of channel server 104a-104n, a plurality of upconverter 106a-106n and a combiner/amplifier 108.Central control server 102 control channel servers 104.Central memory 103 is with the number format storing data files.In the embodiment of example, anyly be connected on this network and the computer that is authorized to (such as central control server 102) can be visited the data file that is stored in central memory 103 by standard network interface (for example Ethernet connection).Each channel server 104 is assigned with a channel and is connected to upconverter 106.Channel server 104 provides from central memory 103 data retrieved files according to the instruction of central control server 102.The output of each channel server 104 is intermediate frequency (IF) signals of quadrature amplitude modulation (QAM) modulation, and this signal has the frequency that is suitable for corresponding upconverter 106.The intermediate-freuqncy signal of QAM modulation depends on accepted standard.Current is cable data system interface standard (DOCSIS) standard in U.S.'s accepted standard, and it requires the intermediate frequency of about 43.75MHz.Upconverter 106 will be transformed to radiofrequency signal (RF signal) from the intermediate-freuqncy signal that channel server 104 receives.Comprise the RF signal frequency and bandwidth all depend on the channel and the accepted standard of expectation.For example, be used for the current standard of cable television channels 80 according to the U.S., the RF signal has the frequency of about 559.25MHz and the about bandwidth of 6MHz.The output of upconverter 106 is applied to combiner/amplifier 108.The RF signal that combiner/amplifier 108 amplifies, regulates and combination is received is exported this signal then to transmission medium 110.
In the embodiment of an example, central control server 102 comprises a graphical user interface (not shown), makes the ISP come data dispatching to transmit by drag-and-drop operation.In addition, central control server 102 checkings and control channel server 104 are so that begin or stop according to transmitting matrix.In the embodiment of an example, central control server 102 automatically selects a channel and calculating to be used for sending at selected channel the transmission matrix of data file.Central control server 102 provides that the off line to data fileinfo (for example duration, classification, grade and/or concise and to the point narration) increases, deletion and upgrading.In addition, central control server 102 is controlled this central memory 103 by updated stored data file and database therein.
In the embodiment of an example, existing cable television system 120 can continue feed signal to combiner/amplifier 108 so that provide non-DOD business to client computer.Therefore, do not influence present cable television service according to DOD of the present invention system 100.
Figure 1B explanation is according to the embodiment of another example of DOD of the present invention system 100.The unit in being illustrated in Figure 1A, this DOD system 100 comprises a switch matrix 112, channel monitor module 114, one group of reserve channel server 116a-116b and one group of reserve upconverter 118a-118b.In one embodiment, switch matrix 112 is in fact between upconverter 106 and combiner/amplifier 108.Switch matrix 112 is by central control server 102 controls.Channel monitor module 114 comprises the set-top box of a plurality of configurations, and it simulates potential client computer, is used to monitor the situation of DOD system 100.The result who monitors is sent to central control server 102 by channel monitor module 114.The channel fault occurring (is the channel server fault, upconverter fault or communication link fails) situation under, central control server 102 is by switch matrix 112 open failure parts and connect intact reserve parts 116 and/or 118 so that the service of restarting.
In the embodiment of an example, the data file of broadcasting from DOD system 100 is included in Motion Picture Experts Group (MPEG) file.Each mpeg file dynamically is divided into data block and is mapped to the sub-block of the specific part of data file along time shaft.According to the transmission matrix of the three-dimensional that is provided by central control server 102, these data blocks and sub-block are sent out at predetermined time durations.For DOD system 100, it not is that feedback channel must be arranged that the DOD business is provided.But if feedback channel is available, this feedback channel can be used for other purpose, such as chargeing or Internet service being provided.
Fig. 2 illustrates the channel server 104 of example according to an embodiment of the invention.Channel server 104 comprises a controller server 202,204, QAM modulator of CPU (CPU) 206, a local memory 208 and a network interface 210.Controller server 202 is the whole operation of piece (further being divided into sub-piece and packet) control channel server 104 by order CPU 204 dividing data files, select to be used for data block transmitted according to the transmission matrix that provides by central control server 102, the selected data of encoding, the compression data encoded transmits the data of being compressed then and arrives QAM modulator 206.QAM modulator 206 receives by bus (being PCI, cpu local bus) or Ethernet and connects the data that send.In the embodiment of an example, QAM modulator 206 can comprise a descending QAM modulator, has a uplink orthogonal Modulation and Amplitude Modulation/Quadrature Phase Shift Keying (QAM/QPSK) pulse demodulator of forward error correction decoder, and/or a up tuner.The output of QAM modulator 206 is intermediate-freuqncy signals, can directly be applied to upconverter 106.
Network interface 210 connection channel servers 104 are to other channel server 104 and be connected to central control server 102, so that carry out timetable and control command from central control server 102, report condition returns to central control server 102 and from central memory 103 received data files.Can be stored in the local memory 208 of channel server 104 from any data file of central memory 103 retrieval, then according to this data file of instruction process from controller server 202.In the embodiment of an example, channel server 104 can send one or more DOD data flow according to the compression standard/bit rate of the bandwidth of wire message way (for example 6,6.5 or 8MHz), QAM modulation (for example QAM 64 or QAM 256) and DOD data flow (being MPEG-1 or MPEG-2).
Fig. 3 illustrates the set-top box (STB) 300 of example according to an embodiment of the invention.STB 300 comprises a qam demodulator 302, CPU 304, conditional access module 306 (for example smart card system), local memory 308, buffer storage 309, STB controller 310, a decoder 312 and a graphics overlay module (graphics overlaymodule) 314.STB controller 310 is by the whole operation of Controlled CPU 304 and qam demodulator 302 control STB 300, so that data are selected in the request according to client computer, the selected data of decoding, the data that decompress and decoded, ressemble the data of being decoded, the data that data that storage is decoded in local memory 308 or buffer storage 309 and transmission are stored are to decoder 312.In the embodiment of an example, STB controller 310 is according to the whole operation of the title control STB 300 of the packet that receives from transmission medium 110.In the embodiment of an example, local memory 308 comprises nonvolatile memory (for example hard disk drive), and buffer storage 309 comprises volatile memory.
In one embodiment, qam demodulator 302 comprises reflector and receiver module and following one or more: secret encrypting-decrypting module, forward error correction decoder/encoder, tuner controller, descending and upstream processor, CPU and memory interface circuit.Qam demodulator 302 receives the intermediate-freuqncy signal of modulation, and sampling and this signal of demodulation are so that restore data.When permits access after checking and/or when collecting suitable expense, conditional access module 306 allows decode procedure.Access consideration is determined by the ISP.
In the embodiment of an example, when visit when licensed, decoder at least one data block of 312 decodings is so that be converted to this data block the image that can show on output screen.Decoder 312 supports from the order of subscribing client computer, such as playing, stop, time-out, stepping, playback, advancing or the like.
Graphics overlay module 314 is for example by providing alpha blended or picture-in-picture capability to strengthen the graphical quality that shows.In the embodiment of an example, graphics overlay module 314 can be used for the figure acceleration during the pattern of playing games, for example when the ISP utilizes system according to the present invention that the recreation order program service is provided.
In the embodiment of an example,, have only those DOD users can decode and enjoy the data-on-demand business with compatible STB 300 though data file is broadcast to all cable TV subscribers.In the embodiment of an example, the permission that obtains the data-on-demand file is to obtain by smart card (smart card) system in the conditional access control module 306.Smart card can be to charge in local shop or by the automatic vending machine that the ISP is provided with.In the embodiment of another example, unified Fare Collection System provides unrestricted access to all available data files for the user.
In the embodiment of an example, the mutual feature of data-on-demand allows client computer whenever to select available data file.When client computer is pressed selection key and the time quantum of selected data file between time of beginning to play be called the response time.Because so that DOD to be provided business, this response time just becomes short more to distribute many more resources (for example bandwidth, server-capabilities).In the embodiment of an example, the response time can be determined according to the estimation of resource allocation and the service quality of expectation.
At the embodiment of an example, the response time of selection is determined the duration of a time slot.The duration of time slot (TS) is by the time interval of client computer with a data block of normal speed forward.In the embodiment of an example, be divided into many data blocks such as the data file of video file, make each data block can a time slot the duration support the broadcast of data file.
In one embodiment, the quantity of the data block of each data file (NUM_OF_BLKS) can be calculated as follows:
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 (4), Estimated_BLK_Size is the block length of estimating (is unit with the byte) at equation (1); DataFile_Size is data file length (is unit in 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 gathering together that each data block needs; CLUSTER_SIZE is the size of gathering together (for example 64K byte) that is used for the local memory 208 of each channel server 104; BLK_SIZE_BYTES is to be the block length of unit with the byte.In this embodiment, the quantity of piece (NUM_OF_BLKS) equals data file length (is unit with the byte) and adds with the byte to be that the data block length of unit deducts 1 byte and divided by being the data block length of unit with the byte.Equation (1) to (4) illustrates a certain embodiments.Those skilled in the art will appreciate that other method is the quantity that can be used for data file calculated data piece.For example, the dividing data file is that many data blocks mainly are the estimation block length and the functions of length of gathering together of the local memory 208 of channel server 104.Therefore, the present invention should in no way limit the certain embodiments for proposing above.
Fig. 4 explanation is used to produce the process of the example of the timetable matrix that is used to send data file according to one embodiment of present invention.In the embodiment of an example, this invention uses time division multiplexing (TDM) and frequency division multiplex (FDM) technology to transmit in server end compression and data dispatching.In the embodiment of an example, for each data file produces a timetable matrix.In one embodiment, each data file is divided into many data blocks and produces each timetable matrix according to the quantity of data block.Typically, the timetable matrix provides an order of transmission, is used for giving from server the data block of client computer transfer file data, makes any client computer of wishing this data file of visit can visit this data block in order in the time at random.
In step 402, receive the quantity (x) of the data block of a data file.The first variable j is set to zero (step 404).Remove referential array (step 406).Referential array monitors the data block that is used for the internal control purpose all the time.Then, j and x compare (step 408).If j is less than x, second variable i is set to zero (step 412).Then, i and x compare (step 414).If the data block that i less than x, is stored in timetable matrix [(i+j) mould (the x)] row is written into this referential array (step 418).If referential array has had such data block (s), then do not write the copy of repetition.At first, because the timetable matrix does not also have clauses and subclauses, this step can be skipped.Then, if referential array comprises data block i, check referential array (step 420).At first, because all clauses and subclauses in referential array have been eliminated in step 406, do not had whatever at referential array.If referential array does not comprise data block i, data block i is added in timetable matrix and the referential array (step 422) of matrix position [(i+j) mould (x), j].After data block i was added to this timetable matrix and this referential array, i increased progressively 1, makes to repeat this process up to i=x in step 414 then by i=i+1 (step 424).If this referential array comprises data block i, increase progressively 1, make and repeat this process up to i=x in step 414 then by i=i+1 (step 424).When i=x, j increases progressively 1, makes j=j+1 (step 416) and repeat this process up to j=x in step 406.When j=x, finish whole process (step 410).
In the embodiment of an example, if data file is divided into six data blocks (x=6), timetable matrix and referential array are as follows:
Timetable 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,0]
[0,2] [1,2] [2,2]blk0 [3,2]blk1 [4,2] [5,1]
[0,3] [1,3] [2,3] [3,3]blk0 [4,3] [5,2]blk2
[0,4] [1,4]blk3 [2,4] [3,4] [4,4]blk0 [5,3]blk1
[0,5] [1,5] [2,5] [3,5]blk4 [4,5] [5,3]blk0
Referential array (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, according to top timetable matrix, six data blocks of this data file send with following sequence:
TS0 blk0
TS1 blk0,blk1,blk3
TS2 blk0,blk2
TS3 blk0,blk1,blk3,blk4
TS4 blk0,blk4
TS5 blk0,blk1,blk2,blk5
In the embodiment of another example, can utilize (look-ahead) process calculating in advance to go ahead of the rest the timetable matrix so that before the access time of estimating, send the data block of the predetermined quantity of data file.For example, if predetermined first line time is the duration of a time slot, for any time slot more than or equal to timeslot number 4, the data block 4 (blk4) of data file should be received at TS3 or before TS3 by STB 300 in the reservation client computer, but does not play blk4 before TS4.Produce in advance that the process steps of timetable matrix is substantially similar to the process steps of describing for Fig. 4 in the above, except in this embodiment timetable matrix in advance according to the time scheduling transmission sequence early in advance.The tentation data file is divided into six data blocks, according to timetable matrix in advance, have the transmission sequence of an example of first line time of the duration of two time slots and can be expressed as follows:
TS0 blk0
TS1 blk0,blk1,blk3,blk4
TS2 blk0,blk2
TS3 blk0,blk1,blk3,blk4,blk5
TS4 blk0,blk5
TS5 blk0,blk1,blk2
The transmission matrix that is used to send the three-dimensional of one group of data file is according to for the timetable matrix generation of each data file of this group data file.In the transmission matrix of three-dimensional, produce the third dimension of the ID that comprises each data file that is used for this group data file.Calculate three-dimensional transmission matrix so that the available bandwidth that effectively utilizes in each channel transmits a plurality of data flow.In the embodiment of an example, convolution method well known in the art is used to produce three-dimensional transmission matrix so that dispatch effective transmission of one group of data file.For example, convolution method can comprise following strategy: the data block total number that sends in the duration in (1) when crack (TS) in office should keep minimum possible quantity; (2) if can obtain the solution of a plurality of parts with respect to strategy (1), preferred solution is the data block that sends at any data block that sends with reference to the duration of time slot, in front the duration of time slot (with respect to this with reference to time slot) by addition and the data block that sends at the duration of next time slot (with respect to this with reference to time slot), thereby has the solution of minimal data piece sum.For example, suppose that an example system sends the data file M and the N of two weak points, here each data file is divided into six data blocks, and is as follows based on the transmission sequence of timetable matrix:
TS0 blk0
TS1 blk0,blk1,blk3
TS2 blk0,blk2
TS3 blk0,blk1,blk3,blk4
TS4 blk0.blk4
TS5 blk0,blk1,blk2,blk5
Be applied in the convolution method of above-described example, the possible combination that transmits matrix is as follows:
Option 1: 0TS sends the total data block of video file N in skew
------------------------------------------------------
TS0M0,N0 2
TS1M0,M1,M3,N0,N1,N3 6
TS2M0,M2,N0,N2 4
TS3M0,M1,M3,M4,N0,N1,N3,N4 8
TS4M0,M4,N0,N4 4
TS5M0,M1,M2,M5,N0,N1,N2,N5 8
Option 2: 1TS sends the total data block of video file N in skew
-------------------------------------------------------------
TS0M0,N0,N1,N3 4
TS1M0,M1,M3,N0,N2 5
TS2M0,M2,N0,N1,N3,N4 6
TS3M0,M1,M3,M4,N0,N4 6
TS4M0,M4,N0,N1,N2,N5 6
TS5M0,M1,M2,M5,N0 5
Option 3: 2TS sends the total data block of video file N in skew
-------------------------------------------------------------
TS0M0,N0,N2 3
TS1M0,M1,M3,N0,N1,N3,N4 7
TS2M0,M2,N0,N4 4
TS3M0,M1,M3,M4,N0,N1,N2,N5 8
TS4M0,M4,N0 3
TS5M0,M1,M2,M5,N0,N1,N3 7
Option 4: 3TS sends the total data block of video file N in skew
------------------------------------------------------------------
TS0M0,N0,N1,N3,N4 5
TS1M0,M1,M3,N0,N4 5
TS2M0,M2,N0,N1,N2,N5 6
TS3M0,M1,M3,M4,N0 5
TS4M0,M4,N0,N1,N3 5
TS5M0,M1,M2,M5,N0,N2 6
Option 5: 4TS sends the total data block of video file N in skew
------------------------------------------------------------------
TS0M0,N0,N4 3
TS1M0,M1,M3,N0,N1,N2,N5 7
TS2M0,M2,N0 3
TS3M0,M1,M3,M4,N0,N1,N3 7
TS4M0,M4,N0,N2 4
TS5M0,M1,M2,M5,N0,N1,N3,N4 8
Option 6: 5TS sends the total data block of video file N in skew
------------------------------------------------------------------
TS0M0,N0,N1,N2,N5 5
TS1M0,M1,M3,N0 4
TS2M0,M2,N0,N1,N3 5
TS3M0,M1,M3,M4,N0,N2 6
TS4M0,M4,N0,N1,N3,N4 6
TS5M0,M1,M2,M5,N0,N4 6
Application strategy (1), option 2,4 and 6 have the quantity (i.e. 6 data blocks) of the maximum of the minimal data piece that sends during the when crack in office.Application strategy (2), transmission matrix best in the embodiment of this example is an option 4, because option 4 has near the sum (i.e. 16 data blocks) of minimum of the data block of the time slot of any data block with reference to time slot adding.Therefore, embodiment hereto, preferably, the transmission sequence of data file N should be offset three time slots.In the embodiment of an example, produce the transmission matrix of a three-dimensional for each channel server 104.
When sending the data block of each data file according to the transmission matrix, a large amount of reservation client computer can be visited this data file a time at random, and the suitable data block of this data file is available in time to each reservation client computer.In the example that provides, suppose that the duration of a time slot equals 5 seconds in the above, DOD system 100 sends the data block of data file M and N in following mode according to the transmission matrix (being three time slots of transmission sequence of offset data file N) of the best:
Time 00:00:00  M0 N0 N1 N3 N4
Time 00:00:05  M0 M1 M3 N0 N4
Time 00:00:10  M0 M2 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, a client computer A selects film M, and is as follows in the STB300 of client computer A reception, storage, broadcast and refusal data block:
Time 00:00:00  receives M0  and plays M0, store M 0.
Time 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  does not receive  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 computer B selects film M, and is as follows in the STB of client computer B 300 receptions, storage, broadcast and refusal data block:
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  does not receive  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  does not receive  and plays M4, store M 0, M1, M2, M3, M4, M5.
Time 00:00:35  does not receive  and plays M5, store M 0, M1, M2, M3, M4, M5.
If at time 00:00:15, client computer C selects film N, and is as follows in the STB of this client computer C 300 receptions, storage, broadcast and refusal data block:
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  does not receive  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 computer D also selects film N, and is as follows in the STB of client computer D 300 receptions, storage, broadcast and refusal data block:
Time 00:00:30  receives N0, N1, and N3, N4  plays N0, storage N0, N1, N3, N4.
Time 00:00:35  does not receive  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  does not receive  and plays N3, storage N0, N1, N2, N3, N4, N5.
Time 00:00:50  does not receive  and plays N4, storage N0, N1, N2, N3, N4, N5.
Time 00:00:55  does not receive  and plays N5, storage N0, N1, N2, N3, N4, N5.
Shown in top example, any combination of client computer can be selected independently and begins to play any data file that is provided by the ISP in the time at random.
General operation
The ISP sends many data files (for example video file) to channel server before can being predefined in broadcasting.Central control server 102 calculates and sends the three-dimensional matrix (ID, time slot and data block order of transmission) that transmits and gives channel server 104.During broadcasting, channel server 104 transmits matrix with reference to this three-dimensional and sends suitable data block with suitable order.Each data file is divided into data block, so that a large amount of reservation client computer can begin independently continuously and watch data file in the time at random in order.The data block length of data file depends on the bit rate of the data flow of duration of selected time slot and data file.For example, in constant bit rate mpeg data stream, each data block has fixing length:
Block length (Mbytes)=bit rate (Mb/s) * TS (second)/8 (1)
In the embodiment of an example, regulate data block length to the next one of the local memory 208 of channel server 104 than the memory of the high power length of gathering together.For example, if the data block length that calculates according to top equation (1) is the 720K byte, if then the length of gathering together of local memory 208 is 64K bytes, the data block length that obtains should be the 768K byte.In this embodiment, data block should further be divided into a plurality of sub-pieces, and each sub-piece has the length identical with the length of gathering together.In this example, this data block has the sub-piece of 12 64K bytes.
Sub-piece can further be decomposed into packet.Each packet comprises a packet header and grouped data.Grouped data length depends on the maximum transfer unit (MTU) of the physical layer that the CPU of each channel server transfers data to.In a preferred embodiment, total length of packet header and grouped data should be less than MTU.But for the efficient of maximum, grouped data length should be long as far as possible.
In the embodiment of an example, data in the packet header comprise the STB 300 any received data of decoding that allow user's client computer and determine whether this packet belongs to the information of selected data file (protocol characteristic mark for example, version, ID or packet type information).Packet header also may comprise out of Memory, such as skew (offset) and/or the coded message in piece/sub-piece/packet count, block length, Cyclic Redundancy Check and the sub-piece.
In case channel server 104 has been received packet, it just is sent to QAM modulator 206, and here another title is added to this packet to produce intermediate frequency (IF) output signal of QAM modulation.Available bandwidth is depended in Maximum Bit Rate output for QAM modulator 206.For example, for the QAM modulator 206 with 6MHz bandwidth, maximum bit rate is 5.05 (bits/sym) * 6 (MHz)=30.3 megabit per seconds.
The intermediate-freuqncy signal of QAM modulation is sent to upconverter 106, so that be converted into the RF signal (for example being used for cable television channels 80,559.250MHz and 6MHz bandwidth) that is suitable for specific channel.For example, if cable system has high bandwidth (perhaps bit rate), each channel can be used for providing an above data flow, and each data flow takies a virtual subchannel.For example, use the QAM modulation, three MPEG1 data flow can be fit to the 6MHz channel.The output of upconverter 106 is added to combiner/amplifier 108, and it sends the signal of combination to transmission medium 110.
In the embodiment of an example, the total system bandwidth (BW) that is used for sending " N " data flow is BW=N * bw, and here bw is the bandwidth that each data flow requires.For example, three MPEG-1 data flow can be simultaneously by having the DOCSIS wire message way transmission that system bandwidth is 30.3 megabit per seconds, because each MPEG-1 data flow takies the system bandwidth of 9 megabit per seconds.
Usually, bandwidth is occupied, and no matter in fact visit the quantity of the reservation client computer of this DOD business.Therefore, using the DOD business, still occupied program request (on-demand) ability of bandwidth even without subscribing client computer to guarantee this system.
In the embodiment of an example,, can compress total system bandwidth (BW) by some data blocks of each data file of looking ahead.The prefetch data piece one independently dedicated channel sent continuously.In one embodiment, the prefetch data piece of data file sends in order in groups.Be used to transmit the needed total system bandwidth of remaining data piece (BW) by sending the prefetch data piece, having compressed.Determining after the requirement of the prefetch data piece that channel independently sends, should to regulate the timetable that is used to send this remaining data piece, so that the prefetch data piece no longer sends with other data block.
For example, in the timetable matrix of superincumbent example, data file is divided into six data blocks, if first data block " b0 " and second data block " b1 " the two be the prefetch data piece, then for this remaining data piece (b2-b5), this timetable matrix should be amended as follows:
TS0  [nothing]
TS1blk3
TS2blk2
TS3blk3,blk4
TS4blk4
TS5blk2,blk5
In the above example, if b0 is unique prefetch data piece, the total bandwidth that then is used to send the remaining data piece (b1-b5) of data file has been compressed 37.5%[promptly, deducts 6 data blocks from ading up to 16 data blocks].Secondly, if data block " b1 " also is the prefetch data piece, the bandwidth that then is used to send this remaining data piece (b2-b5) has been compressed 12.5% again.Therefore, the bandwidth reduction of increase of the b1 b0 that do not look ahead that is used to look ahead is big.Because when more the multidata piece is prefetched, the bandwidth reduction of increase reduces, and can determine according to the expected bandwidth compression for the quantity of the prefetch data piece of the best of each data file.In the embodiment of an example, can estimate by equation by data block x to the bandwidth that Y preserved of prefetch data file: N=(x+1) is to (y+1)
In addition, because the quantity of prefetch data piece increases, increased the time of delay of looking ahead.The determining Delay Time of looking ahead is the quantity of the prefetch data number of blocks according to the length of the data block of each data file, each data file, the data file that is sent out and the bandwidth of looking ahead of being distributed in dedicated channel.In the embodiment of an example, in dedicated channel, send in order and continuously all prefetch data pieces of each data file, data block of each time slot.Those skilled in the art will recognize that the increase along with the prefetch data number of blocks, the time of delay of looking ahead is longer.Therefore, when the quantity of the best of the prefetch data piece of determining each data file, should consider acceptable looking ahead time of delay.
For example, if the data block b0 of data file M and N and b1 are prefetched in dedicated channel, these prefetch data pieces can send in the following manner:
M0 M1 N0 N1 M0 M1 N0 N1...
In the embodiment of an example, suppose that the given distribution bandwidth of looking ahead is PRF_BW (Mb/s), can be calculated as follows the time of delay of looking ahead: look ahead time of delay=[data block length (Mbytes) * prefetch data number of blocks * (data file quantity+1 that will be sent out) * 8]/PRF_BW (Mb/s)
In the embodiment of an example, look ahead circulation timei (PRF_TIME) send complete a series of prefetch data piece required time to all data files of being sent out, it can be calculated as follows: look ahead circulation timei=[data block length (Mbytes) * prefetch data number of blocks * (the data file quantity that will be sent out) * 8]/PRF_BW (Mb/s).
In one embodiment, in order to reduce the time of delay of looking ahead, the prefetch data piece of new data file is sent more continually than the prefetch data piece in the old data file (for example data file that predetermined amount of time has been sent continuously).For example, if M is an old data file and N is a new data file, send the prefetch data piece in the following manner:
N0 N1 N0 N1 M0 M1 N0 N1 N0 N1 M0 M1...
In a single day STB 300 is activated, with regard to the program guide in the local memory 308 that receives and update stored in STB 300 continuously.In the embodiment of an example, STB 300 shows the data file information that comprises up-to-date program guide on video screen.Can comprise film ID, movie name, explanatory note (with multilingual), classification (action movie for example such as the data file information of video file information, between classification (for example R level, PG13 level) film for children),, cable companies strategy (for example length of price, free preview), period of subscription, film poster and movie preview.In the embodiment of an example, the transmission of data file information is by a dedicated channel, such as the channel that keeps for firmware update, advertising programme and/or emergency information.In the embodiment of another example, transmission information in the physical channel of sharing by other data flow.In the embodiment of an example, though STB 300 does not play any data file, STB 300 is tuned at dedicated channel and prepares to receive and upgrade not received as yet prefetch data piece.
In the embodiment of an example, preview is included in the data block of selecting at random in the data flow of data file.Therefore, repeatedly select the user of the preview of a data file unlikely to watch identical preview.The advantage of forming preview at random is that DOD system 100 does not need the extra predetermined previewing program of bandwidth broadcasting.On the contrary, after the preview of data file was watched in user request, DOD system 100 selected the data block in the normal flow of this data file at random.In a preferred embodiment, some data blocks can not become the part of any preview.For example, if data file provides film, the data block of the Lower Half of this film should not become the part of the preview of selecting at random.
Subscribe the data available lists of documents that client computer can watch category to arrange on video screen.When this client computer is selected an available data file, STB 300 its hardware of control be tuned to corresponding physical channel and/or virtual subchannel, to begin to receive the packet of this data file.STB 300 checks each header of the data packet, data in this packet of decoding and determine whether keep the packet that is received.If STB 300 determines a data grouping and should not keep, then abandons this packet.Otherwise this grouped data is kept at and is used for later retrieval in the local memory 308 or temporarily is stored in buffer storage 309 till it is sent to decoder 312.
For fear of read/write local memory 308 is to improve operational efficiency continually, in the embodiment of an example, as possible, STB 300 just uses " sliding window " expection technology-locking anticipatory data piece in storage buffer 309.If hit (hit) in the expection window takes place, data block directly is sent to decoder 312 from storage buffer 309.If expection does not occur, before this data block is transferred into decoder 312 from storage buffer 309, from local memory 308 read data pieces to storage buffer 309.
In the embodiment of an example, STB 300 by infrared ray (IR) remote controller button, infrared ray (IR) keyboard or comprise that the front panel button response of button subscribes the order of client computer so that time-outs, slow motion broadcast, playback, amplification and single step execution.In the embodiment of an example, during preset time, do not import any operation (program guide or selection classification or film for example roll) if subscribe client computer, then automatically play predetermined advertising programme.When the reservation client computer provides an operation (for example pressing a button on the remote controller), automatically stop the advertising programme of being scheduled to.In the embodiment of another example, STB 300 can automatically insert advertising programme during displaying video.ISP's (for example cable companies) can set up price strategy, and the regulation advertising programme should interrupt the frequent degree of in progress video.
In the embodiment of an example, use the cable companies of DOD system 100 to preset a price list according to the quantity that advertising programme interrupts.In one embodiment, the data block that is used for advertising programme is broadcasted continuously by a dedicated channel, and this dedicated channel is broadcast program guide, emergent bit and any firmware update also.The user can be chosen in acceptable balance between price and the advertising programme from such price list.In the embodiment of an example, DOD system 100 realizes user's selection by keeping internal clocking, and the price plan that it is selected according to the user, permission are inserted the advertising programme data block at interval automatically with preset time.
If in header of the data packet, find the emergency information bit, the hardware that it was operated and controlled to any Data Receiving of STB 300 time-outs is tuned at the channel that keeps for received data file information, with acquisition and any emergency information of decoding, and on output screen, show this information.In the embodiment of an example, when STB 300 was the free time, it was tuned to the channel that keeps for received data file information and prepares to receive immediately and show any emergency information all the time.
In one embodiment, look that when being idle (for example, when the user does not use this system), alarm may disappear and watch emergency information so that warn the user to connect this output equipment as STB 300.In another embodiment, STB 300 can discern the emergency information to zones of different.For example, the emergency information to uncorrelated zone will not interrupt in progress data file or trigger alarm.On the contrary, in existing systems, cable companies must be broadcasted so that send emergency information in force interrupt.
The embodiment of the example explanation examples more of the present invention of front, those skilled in the art can be expressly understood other embodiment, variation and modification from the embodiment of these examples.Therefore the present invention's certain embodiments of being not limited to discuss in the above, but define by claim.

Claims (7)

1. one kind is used to transmit data and gives client computer so that the method for data-on-demand business is provided, and comprises step:
(a) received data file;
(b) specify a time interval;
(c) according to the described time interval described data file is resolved to a plurality of data blocks;
(d) from described a plurality of data blocks, select one group of prefetch data piece;
(e) send described one group of prefetch data piece in dedicated channel;
(f) send the remaining data piece of described a plurality of data blocks at transmission channel.
2. according to the process of claim 1 wherein, select the described step of one group of prefetch data piece to comprise step:
Determine bandwidth reduction and look ahead time of delay; With
According to described bandwidth reduction with select described prefetch data piece the described time of delay of looking ahead.
3. one kind is used to transmit data and gives client computer so that the method for data-on-demand business is provided, and comprises step:
(a) received data file;
(b) specify a time interval;
(c resolves to a plurality of data blocks according to the described time interval with described data file, makes that each data block is displayable during the described time interval;
(d) send described a plurality of data block at transmission channel;
(e) request of reception preview;
(f) from described a plurality of data blocks, select one group of data block so that form described preview at random; With
(g) demonstration of the described preview of generation.
4, according to the method for claim 3, also comprise step:
Send one group of advertising programme data block in dedicated channel; With
Produce the demonstration of described one group of advertising programme data block at preset time.
5, according to the method for claim 4, wherein, produce the described step that shows and comprise step:
Receive the user and select according to the price of the occurrence rate of advertising programme demonstration, wherein said price selection shows with non-advertising programme and has nothing to do; And the demonstration of selecting to produce described one group of advertising programme data block according to described user.
6, according to the method for claim 3, also comprise step:
Check the emergent bit in the packet header of described data file; With
When checking out described emergent bit, the demonstration that produces emergency information.
7, according to the method for claim 6, also comprise step:
Determine whether described emergency information is used for a relevant zone; With
If described emergency information is to be used for described relevant zone, show described emergency information.
CNB018007570A 2000-05-31 2001-05-31 Methods for providing video-on-demand services for broadcasting systems Expired - Fee Related CN1203671C (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US09/584,832 US6557030B1 (en) 2000-05-31 2000-05-31 Systems and methods for providing video-on-demand services for broadcasting systems
US09/584,832 2000-05-31
US09/709,948 2000-11-10
US09/709,948 US6725267B1 (en) 2000-05-31 2000-11-10 Prefetched data in a digital broadcast system

Publications (2)

Publication Number Publication Date
CN1366642A CN1366642A (en) 2002-08-28
CN1203671C true CN1203671C (en) 2005-05-25

Family

ID=27079218

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018007570A Expired - Fee Related CN1203671C (en) 2000-05-31 2001-05-31 Methods for providing video-on-demand services for broadcasting systems

Country Status (11)

Country Link
EP (1) EP1285348A4 (en)
JP (1) JP5038574B2 (en)
CN (1) CN1203671C (en)
AU (1) AU2001266681A1 (en)
BR (1) BR0111652A (en)
CA (1) CA2406715A1 (en)
HK (1) HK1049389B (en)
IL (1) IL152761A0 (en)
MX (1) MXPA02011840A (en)
TW (1) TW571594B (en)
WO (1) WO2001093062A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101237683B (en) * 2007-01-31 2011-03-09 展讯通信(上海)有限公司 Method for mobile communication terminal to simultaneously receive TV signals and BCH/PICH

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979561B2 (en) 2005-03-10 2011-07-12 Qualcomm Incorporated Method of multiplexing over an error-prone wireless broadcast channel
CN101248666B (en) 2005-08-26 2012-09-26 汤姆森许可贸易公司 Demanding system and method using dynamic broadcast scheduling
TWI556637B (en) * 2012-12-14 2016-11-01 Apacer Technology Inc Selection method and system for switching information of multiple media sources
TWI554092B (en) * 2012-12-17 2016-10-11 財團法人工業技術研究院 Service management method and system
JP2021534616A (en) * 2018-07-31 2021-12-09 ベステル エレクトロニク サナイー ベ ティカレト エー.エス. Methods, equipment, systems and computer programs for data distribution

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07250314A (en) * 1994-03-10 1995-09-26 Matsushita Electric Ind Co Ltd Catv system and video server
KR960036641A (en) * 1995-03-21 1996-10-28 김광호 High speed decoding device for decoding low speed video bit stream
US5781228A (en) * 1995-09-07 1998-07-14 Microsoft Corporation Method and system for displaying an interactive program with intervening informational segments
US5751336A (en) * 1995-10-12 1998-05-12 International Business Machines Corporation Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems
EP0808064B1 (en) * 1995-12-01 2004-03-03 Matsushita Electric Industrial Co., Ltd. Apparatus, system and method for information processing for data transfer network
ATE206859T1 (en) * 1995-12-07 2001-10-15 Koninkl Philips Electronics Nv METHOD AND APPARATUS FOR ENCODING, TRANSMITTING AND DECODING A NON-PCM BIT STREAM BETWEEN A DIGITAL VERSATILE DISK DEVICE AND A MULTI-CHANNEL PLAYBACK DEVICE
US5831662A (en) * 1996-04-04 1998-11-03 Hughes Electronics Corporation Near on-demand digital information delivery system and method using signal fragmentation and sequencing to reduce average bandwidth and peak bandwidth variability
ATE257996T1 (en) * 1997-02-21 2004-01-15 Pinpoint Inc BROADCAST DATA DISTRIBUTION SYSTEM WITH ASYMMETRIC UP AND DOWNWARD CONNECTION BANDWIDDS
US6169767B1 (en) * 1997-03-10 2001-01-02 Sarnoff Corporation Universal network interface module
TW395142B (en) * 1997-05-15 2000-06-21 Matsushita Electric Ind Co Ltd Compressed code decoding device and audio decoding device
US6055571A (en) * 1997-11-20 2000-04-25 Nec Usa, Inc. Computer network with microeconomic flow control
US6072808A (en) * 1997-12-23 2000-06-06 Intel Corporation Method of providing and retrieving a data segment
US6263019B1 (en) * 1998-10-09 2001-07-17 Matsushita Electric Industrial Co., Ltd. Variable rate MPEG-2 video syntax processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101237683B (en) * 2007-01-31 2011-03-09 展讯通信(上海)有限公司 Method for mobile communication terminal to simultaneously receive TV signals and BCH/PICH

Also Published As

Publication number Publication date
AU2001266681A1 (en) 2001-12-11
HK1049389B (en) 2006-01-13
EP1285348A1 (en) 2003-02-26
JP5038574B2 (en) 2012-10-03
CN1366642A (en) 2002-08-28
JP2004501558A (en) 2004-01-15
EP1285348A4 (en) 2004-06-30
CA2406715A1 (en) 2001-12-06
MXPA02011840A (en) 2003-12-11
BR0111652A (en) 2003-10-07
WO2001093062A1 (en) 2001-12-06
IL152761A0 (en) 2003-06-24
TW571594B (en) 2004-01-11
HK1049389A1 (en) 2003-05-09

Similar Documents

Publication Publication Date Title
CN1254971C (en) Method of network transmission data
EP1389874B1 (en) Fast digital channel changing
CN1198454C (en) Verification equipment, method and system, and memory medium
US7523482B2 (en) Seamless digital channel changing
CN1372666A (en) Universal STB architectures and control method
CN1118767C (en) System for displaying several images and device added to the above system
CN1173570C (en) Interactive TV. systemand method for simultineous transmission and rendering of multiple encoded video streams
CN1992890A (en) Apparatus and method for providing media program
CN1488195A (en) Distributed on -demand media transcoding system and method
CN1386362A (en) Method and system for delivering media services and application over networks
CN101065963A (en) Video multiplexer system providing low-latency vcr-like effects and program changes
CN1178497C (en) Data regeneration transmission device and data regeneration transmission method
CN1439224A (en) Receiving storage device, transmisison device, broadcasting system, Reiceiving storage method, transmission method, broadcasting method, program, and medium
CN1203671C (en) Methods for providing video-on-demand services for broadcasting systems
CN1845595A (en) Method for transmitting, extracting and searching program information and search engine, set-top box
CN1214640C (en) Broadcasting equipment, broadcasting method, recording medium and submitting interactive operated program
CN1205783C (en) Equipment and method for transmitting audio frequency/video frequency data in network
CN1393108A (en) Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices
CN1535536A (en) System for network data transmission
CN1411279A (en) Method and system for transmission of universal data video-on-demand service of delay access user
CN1254107C (en) Karaoke on-bemand system based on single-way digital transmission network and method for realizing same
JP2000224255A (en) Data transmitter and data transmission method
CN1309255C (en) Controlling data-on-demand client access
CN1339883A (en) Information communication system
CN1720734A (en) Method and apparatus for generating an application data signal

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050525

Termination date: 20120531