MODULE SCHEDULING WITH A TIME INTERVAL AND ENDING TIME

Abstract: A system and method implemented in an interactive television system for scheduling delivery of modules of interactive television applications from a broadcast station to a receiving station. In one embodiment, the system calculates a start time from a predetermined end time and transmission interval for a module. In other embodiments, a transmission interval may be calculated instead of being predetermined, or all of the scheduling information may be explicitly provided to the broadcast station. The module is packetized and transmission of the packets for the module is begun at the corresponding start time. All of the packets except the last packet are transmitted within the transmission interval (i.e., between the start time and the delivery time.) The greater the transmission interval, the greater the flexibility the broadcast station has to schedule delivery of the packets and modules. The last packet is held until the scheduled delivery time and is then transmitted. Because a module is considered to have been delivered to the receiving station when the last packet is received, the delivery time of the module is controllable to within the limits of the last packet's delivery.

Description: TITLE: MODULE SCHEDULING WITH A TIME INTERVAL AND ENDING TIME BACKGROUND OF THE INVENTION 1 Field of the Invention The invention relates to interactive television systems and more particularly to scheduling the delivery of application modules which are to be transmitted to an interactive television receiver 2. Description of the Related Art Interactive television systems are capable of displaying text and graphic images in addition to typical video program streams and are useful to provide a number of services and interactive applications to viewers. Interactive television systems are also capable of registeπng viewer actions m response to the audio and video information presented by the system. Features of interactive television include a variety of marketing, entertainment and educational capabilities such as allowing a user to interact with televised programs by ordenng advertised products or services, competing against contestants in a game show, or requesting specialized information regarding particular programs Typically, a broadcast service provider generates an interactive television signal for transmission to a viewer's television. The interactive television signal includes an interactive portion consisting of application code or control information, as well as an audio-video portion consisting of a television program. The broadcast service provider combines the audio-video and interactive portions mto a single signal for transmission to a receiver connected to the user's television The signal is generally compressed prior to transmission and transmitted through typical broadcast channels, such as cable television (CATV) lines or direct satellite transmission systems The interactive functionality of the television is controlled by a set-top box connected to the television. The set-top box receives the signal transmitted by the broadcast service provider, separates the interactive portion from the audio-video portion and decompresses the respective portions of the signal The set-top box uses the interactive information to, for example, execute an application while the audio- video information is transmitted to the television The set-top box may combine the audio-video mformation with interactive graphics or audio generated by the interactive application prior to transmitting the mformation to the television. The interactive graphics and audio may present additional information to the viewer or may prompt the viewer for input. The set-top box may provide viewer input or other mformation to the broadcast service provider via a modem connection. Interactive television applications may consist of a set of program modules. The entire set of modules is transmitted via the broadcast channel to the set-top box and the application is executed. The modules are packetized before they are transmitted to the receiving station. That is, the modules are broken down into smaller pieces of mformation which are then formatted for transmission over the broadcast channel or other transmission medium. The packets containing the pieces of a particular module may be transmitted consecutively, or they may be interspersed with packets containing portions of other modules. The packets arrive at a receiving station, where they are accumulated When the last packet containing part of a particular module is received, that module is considered to have been received. Consequently, if it is necessary to deliver a module to a receiving station at a particular time, transmission of the module must begm at a time which is sufficiently early to allow transmission of all the packets contammg portions of the module before the required delivery time The simple way of schedulmg transmission of a module is to calculate (approximately) the time required to deliver the entire module and subtractmg this from the scheduled delivery time The duration of the transmission can be determined by dividing the size of the module by the bit rate at which its packets will be transmitted This method schedulmg the modules requires that the broadcast channel be reserved for this particular module and that all of the module's packets be transmitted consecutively This constraint considerably mcreases the difficulty of schedulmg the potentially large number of modules which may be required for an application If packets of more than one module must be sent at the same time, the method fails It may also be difficult, or even impossible, to schedule modules for delivery at or near the same time Further, the accuracy with which the delivery tune of a single module can be scheduled using this method is limited because, although the start time of the transmission is known, the actual duration of the transmission can only be estimated An improved mechanism for schedulmg delivery of the modules would therefore be desirable SUMMARY OF THE INVENTION The invention comprises a system and method for schedulmg the delivery of packetized modules from a transmitting station to a receiving station The mvention provides a mechanism which allows flexibility m schedulmg delivery of modules while maintaining accurate determination of delivery times The transmitt g station begins transmission of a given module's packets at a time which is sufficiently early that all of the packets can be delivered before the module's scheduled delivery time Transmission of the last packet is held until the scheduled delivery time and then transmitted Because the module is considered to have been received at the receiving station when the last packet is received, the module's actual delivery time can be scheduled with the accuracy achievable with a smgle packet mstead of the accuracy achievable when transmittmg an entire module One embodiment of the mvention compπses an interactive television system havmg a transmitting station (referred to herein as a broadcast station) which is coupled to one or more receiving stations by a broadcast channel The broadcast station and receiving stations may also be coupled by point-to-point channels The broadcast station is configured to format application modules or other data mto packets (I e , "packetize" them) and transmit the packets to the receivmg station via the broadcast or point-to-point channels The receiving station mcludes a set-top box configured to receive and store the packets until the entire module has been received The broadcast station contains a scheduler The scheduler is provided with predetermined tunes at which modules should be delivered from the broadcast station to the receivmg station In one embodiment, a transmission interval is also provided to the scheduler The mterval is at least as long and preferably greater than the time which would be required to transmit the module's packets consecutively The greater the transmission interval, the more flexibility the scheduler has to deliver the module's packets An additional amount of flexibility m schedulmg can be achieved by allowing the delivery of the module to fall within a range around the delivery time (This flexibility is particularly helpful in instances m which transmission of two or more modules is overlapped ) The scheduler calculates a transmission start time based on the scheduled delivery time and the transmission mterval The scheduler begms transmission of the module at the calculated start time and completes transmission of all but the last packet before the scheduled delivery time At the scheduled delivery time, the last packet is transmitted When this packet is received by the receiving station, the complete module has been received and the actual delivery tune is established In an alternate embodiment, the transmission mterval may also be calculated If only a smgle module is to be transmitted, the transmission mterval may be calculated by dividing the size of the module by the transmission bit rate If there are several modules to be transmitted simultaneously, the transmission mterval may be calculated by dividing the aggregate size of the modules by the transmission bit rate If the transmission of several modules is to be overlapped, the transmission mtervals requued to deliver the modules mdividually may be mcreased by a multiplier to account for the sharing of the delivery channel by the modules Any other suitable method may also be used to calculate the transmission mterval In any case, all of the packets, except the last packet, of each scheduled module are transmitted beginning at the respectively calculated start tunes Smce the delivery tune of a module is the delivery tune of the corresponding last packet, the delivery times of the modules can be scheduled with a much greater accuracy than m the pπor art The modules may also be transmitted so that their delivery times are nearly the same, even when the modules are very large In another embodiment, the schedulmg and even the packetization of the modules may be done in advance The producer of a module may deliver a pre-scheduled and pre-packetized version of the module to the broadcast station, which would then multiplex the module's packets with other packets and transmit them accordmg to the predetermmed schedule The other packets could contam audio, video, applications, or other types of mformation The pre-scheduled, pre-packetized version of the module may itself mclude packets of audio, video, applications or other mformation That is, these other packets may be included in the pre- scheduled, pre-packetized version of the module pπor to delivery to the broadcast station BRIEF DESCRIPTION OF THE DRAWINGS Other objects and advantages of the invention will become apparent upon readmg the following detailed description and upon reference to the accompanying drawings m which Fig 1 is a block diagram illustrating the distribution of a broadcast signal from a broadcast station to a group of receivmg stations m one embodiment of the mvention Fig 2 is a block diagram illustrating the distribution of interactive television applications or television programs from a source to a viewer m one embodiment of the mvention Fig 3 is a block diagram illustrating components of a broadcast station signal processmg system m one embodiment of the mvention Fig 4 is a flow diagram illustrating the operation of the scheduler m one embodiment of the mvention Fig 5 is a block diagram illustrating the manner in which the data compnsmg a module is packetized in one embodiment of the mvention Fig 6 is a block diagram of a set-top box m one embodiment of the invention Fig 7 is a diagrammatic representation of the signal transmitted from a broadcast station to a receivmg station m one embodiment of the invention While the mvention is susceptible to vaπous modifications and alternative forms, specific embodiments thereof are shown by way of example m the drawings and will herein be descnbed m detail. It should be understood, however, that the drawings and detailed description thereto are not mtended to limit the mvention to the particular form disclosed, but on the contrary, the mtention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present mvention as defined by the appended claims DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT One embodiment of the invention is descnbed below In this embodiment, an interactive television receiving station accepts an audio-video-interactive signal via a broadcast channel such as duect satellite transmission. ("Duect" satellite transmission as used herem contemplates transmissions received by the mteractive television receiver, more particularly by its antenna, duectly from the satellite.) The audio-video- mteractive signal contams television programs or similar audio- video content, as well as mteractive content such as control signals or mteractive applications. ("Broadcast" is used herem to refer to transmission of a smgle signal to all subscπbmg receivers.) The receivmg station may also be configured to receive signals via a modem channel The signals transmitted via the broadcast and modem channels may embody various modules which compnse components of an mteractive application. The modules can contam any type of data, such as application code, raw data or graphical mformation. The broadcast station mcludes a scheduler which controls the transmission of the modules to the receivmg station. For each scheduled module, the scheduler is provided with a delivery tune and sufficient mformation to calculate a transmission start time In most cases, the scheduler is provided with a predetermmed transmission mterval for each module, so that determination of a start tune is simply a matter of subtractmg the mterval from the delivery tune. In other cases, the scheduler must calculate the transmission mterval from other mformation, such as the demand for bandwidth on the transmission channels. This mformation may mclude module size, transmission bit rate, and number of modules which are to be transmitted at the same time. In still other cases, the start time, transmission mterval and delivery tune may all be predetermmed and provided to the broadcast station. The scheduler causes all of the packets of a module, except the last packet, to be transmitted between the start tune and the delivery time. The last packet is held until the delivery tune and is then transmitted. The receivmg station may mclude a module manager which tracks the incoming packets and determmes when the last packet is received. When the last packet is received (i.e., at the scheduled delivery tune,) the module is assigned a delivery time and is processed by the receivmg station. Referring to Fig. 1, a block diagram illustrating the distπbution of a broadcast signal from a broadcast station 10 to a group of receivmg stations 20 is shown. For the purposes of discussion, items referenced by the same number but different letters (e.g , 20a, 20b, 20c) will be collectively referred to by the number only (e.g., 20). ("Broadcast" is used herem to refer to transmission of a smgle signal to all subscπbmg receivers.) Broadcast channel 15 is depicted as a solid lme extendmg from broadcast station 10 which branches out to each of the receivmg stations 20. Broadcast channel 15 may compnse a duect satellite transmission channel or any known means for broadcastmg a signal, mcludmg non-satellite, cable, telco, MMDS (microwave) and terrestnal transmissions (A "duect" satellite transmission as used herem means a transmission received by the mteractive television receiver duectly from the satellite.) As depicted by the dashed lmes m the figure, each of receivmg stations 20 is also coupled to broadcast station 10 by a point- to-point channel 16. The pomt-to-pomt channels are mdependent and may carry different signals to each of the receivmg stations. The pomt-to-pomt channels may compnse modem connections, portions of the broadcast channel bandwidth, or other suitable media. Pomt-to-pomt channels 16 may be used to allow feedback to be transmitted from receivmg stations 20 to broadcast station 10, or they may be used as an alternate channel by which modules may be selectively transmitted from broadcast station 10 to particular ones of receivmg stations 20. Referring to Fig. 2, a block diagram illustrating the distπbution of mteractive television applications or television programs from a source to a viewer is shown. Broadcast station 10 has a program source 11. This source may mclude remote broadcast network feeds, videotape recorders, computers, data storage devices, and the like. There may be multiple sources, but only one is depicted in the figure for purposes of simplicity Source 11 may provide mteractive applications, control mformation or audio/video mformation which is to be mcluded m the mteractive television signal. The mformation provided by source 11 is routed to processmg system 12 of broadcast station 10 (Processmg system 12 as used here refers to the vanous functional units of broadcast station 10 which will be described m more detail below.) Processmg system 12 produces an output mteractive television signal which is conveyed to broadcast station antenna 13. Broadcast station antenna 13 transmits the signal via communications satellite 14 to receivmg station antenna 17. Receivmg station antenna 17 passes the mteractive television signal to set- top box 18, which performs the processmg functions of receivmg station 20 Set-top box 18 then reformats the received signal into a television signal (e g., NTSC or HDTV) which is suitable for display on television 19 and/or executes the mteractive television application embodied m the received signal In addition to the broadcast channel between the broadcast station and receivmg station, there may be other channels, such as a modem channel (which may also be referred to as an http, or hypertext transfer protocol, channel ) These types of channels may serve two functions m the system: they may allow the set-top box to provide feedback to the broadcast station; and they may provide an alternate path for the broadcast station to deliver the mteractive television signal to the receiving station. Fig 3 illustrates some of the components which typically compnse processmg system 12 of broadcast station 10 Often, information (such as audio and video signals) which is supplied to the processmg system can be compressed so that it requues less bandwidth on the broadcast channel. This mformation is therefore typically routed through compression units 31 pnor to transmission by the broadcast station. Other types of information may also be suitable for compression. Any of a number of compression algonthms, such as one of the Motion Picture Expert Group (MPEG) compression standards, may be used if appropnate for a particular program or application. Time stamps may also be added, for example, to synchronize associated audio and video signals. Some information, on the other hand, may not be easily or effectively compressed, and may be routed duectly from the source to packetization unit 32 without compressmg the mformation. Packetization units 32 accept the compressed (or uncompressed) mformation and format it mto packets for transmission over the broadcast channel. The packetization of the mformation will be descnbed m more detail below The packets are fed mto multiplexing unit 33, which mtersperses the packets pπor to transmission. The mterspersed packets are then transmitted, under the control of scheduler 34, to the broadcast station antenna for broadcast to the receivmg stations It should be noted that the combmation of multiplexing unit 33 and scheduler 34 does not only mtersperse the packets, but may control transmission of the packets as necessary to achieve scheduled delivery of the modules Referring to Fig 4, a flow diagram illustrating the operation of the scheduler is shown When a module is to be transmitted by broadcast station, the module may need to be delivered at a particular tune, although this may not be true of all modules If a module does have a defined delivery tune, this mformation is conveyed to the scheduler 41 The delivery tune may be provided by a user, or it may be calculated by the scheduler itself The scheduler may, for example, calculate a delivery time for a module which needs to be transmitted cyclically or which needs to be delivered at a certain tune after another module (The system mformation needed for calculation of the delivery tune may be retamed m a memory m the broadcast station ) In addition to the delivery tune, the scheduler needs to have some other mformation to allow it to determine when to start transmission of the module's packets In a simple case, the scheduler is explicitly provided with a transmission mterval 41 In other words, a user may simply mput the mterval to the scheduler The scheduler can then subtract the transmission mterval from the delivery time to determine a transmission start tune 42 The scheduler will control multiplexer so as to begm transmission of the packets to begm at the correspondmg start tune 43 ("Begm transmission" is used herem to mdicate that the packets are transmitted at or after the start time ) The scheduler will contmue to allow multiplexer to transmit the packets of the module until only one packet remams The scheduler will prevent transmission of this packet until the delivery time At the delivery time, the scheduler will allow the last packet to be transmitted to the receivmg station 44 In one embodiment, the scheduler is implemented m software The software executes on a microprocessor or microcontroller m the broadcast station In other embodiments, the scheduler may be implemented m software, firmware, hardware or a combmation thereof The software implementation is readily adaptable to alternate embodiments m which the delivery time and transmission mterval are not explicitly provided to the scheduler In these embodiments, the mterval and start tune may be calculated from mformation such as module size, transmission bit rate and number of modules bemg simultaneously transmitted For example, the mterval may be calculated by dividing the size of the module by the transmission bit rate and then multiplying it by the number of modules being transmitted at the same tune It is contemplated that many such algonthms for determining the mterval, start time and/or delivery tune will be obvious to persons of skill m the art of the mvention The scheduler may consist of a delivery tune calculator, a start tune calculator and a controller (It should be noted that such functional components are illustrative and that the implementation of the scheduler may vary from one embodiment to another ) The delivery time calculator may calculate the delivery tune from mformation stored m or generated by the system, or it may simply accept the delivery tune as user mput The start time generator may calculate the start tune from a user-provided transmission mterval or from a calculated mterval, or it may accept the start tune as user mput The delivery tune and start tune calculators provide the delivery/start tune mformation to the controller In alternate embodiments, the delivery, start tune, transmission mterval or other mformation may be provided to the broadcast station with a pre-scheduled (and possibly pre- packetized) version of the module to be delivered The controller uses this information to manage transmission of the modules' packets. As shown m Fig 3, the scheduler is coupled to the multiplexer m order to control the flow of packets through the multiplexer to the broadcast and pomt-to-pomt channels The audio-video-interactive transmission from the broadcast station to the mteractive television receiver compnses a senes of packets As descnbed above, the packets which form a given module are typically tune multiplexed with other mformation. That is, they are mterspersed or mterleaved with other packets The packets of the respective modules need not be multiplexed m any particular ratio (e.g , 1:1.) This mformation may consist of packets of another module or compressed audio or video. The packets which are received by the mteractive television receiver are reconstructed mto their respective application modules. Referring to Fig. 5, each module 51 has a data segment 52 and a CRC segment 53 The data segment 52 of the module can contam any type of data, such as application code, module duectory mformation or raw data. The CRC segment 53 of each of the module is used for error control and is computed for the entire module 51. Each module 51 normally has a unique identifier. Module 51 is normally broken down mto smaller pieces to facilitate transmission of the module In one embodiment, module 51 is broken down mto transmission units and then packetized (formatted mto packets) for transmission on the broadcast channel. The descnption below is directed to one embodiment of this mechanism which is mtended to be illustrative rather than limiting Before a module 51 is transmitted, it is formatted mto transmission units 54 Each of the transmission units 54 contains header mformation 55, which uniquely identifies that transmission unit 54 within the stream of transmission units, and data 56 which compnses a portion of the module bemg transmitted. The header 55 contains mformation such as the module ID, module offset and size, which allow the transmission units 54 to be reconstructed mto a complete module. The transmission units 54 compnsmg a particular module 51 may be mterleaved with other transmission units 54 m the transmission stream. The last transmission unit 54 for a module 51 carnes the CRC 53. The format of the transmission units 54 is dependent upon the transmission medium, but typically employs a senes of packets of fixed length (the last packet may be padded to obtam the proper length.) In one embodiment, the first packet 58 m the series cames the header mformation as well as data for the transmission unit 54 Similar packets carry the remamder of the transmission umt data. In an alternate embodiment, the header packet 58 may be an auxiliary packet which can generate an interrupt m the CPU The auxiliary packet contams mformation to enable the CPU to determine whether the module 51 should be decoded and where it should be loaded mto memory. It should be noted that, while the foregomg descnption uses the term "packet" m a conventional sense, it is contemplated that the mvention is equally applicable m the transmission of other module segments. The use of this term is therefore mtended to refer to all such subdivisions of the modules. As descnbed above, the broadcast signal is collected by receivmg station antenna 17 and fed to set-top box 18 Set-top box 18 processes the packetized signal to reconstruct the television programs and mteractive applications embodied m the signal The reconstructed applications are executed m the set-top box, while the reconstructed television programs are passed to the television, where they are displayed. The mteractive applications may generate graphics or audio which are combmed with the television program pπor to bemg displayed Referring to Fig. 6, a block diagram of a set-top box is shown. The broadcast signal is received and fed mto tuner 61. Tuner 61 selects the channel on which the broadcast audio- video-interactive signal is transmitted and passes the signal to processmg unit 62. (Tuner 61 may be replaced by other means, all collectively refeπed to herem as mput ports, for receivmg signals from vanous signal sources.) Processmg unit 62 demultiplexes the packets from the broadcast signal if necessary and reconstructs the television programs and/or mteractive applications embodied m the signal The programs and applications are then decompressed by decompression unit 63. The audio and video mformation associated with the television programs embodied m the signal is then conveyed to display unit 64, which may perform further processmg and conversion of the mformation mto a suitable television format, such as NTSC or HDTV audio/video. Applications reconstructed from the broadcast signal are routed to random access memory (RAM) 67 and are executed by control system 65. A module manager unit 60 is contamed within control system 65 In one embodiment, module manager unit 60 is implemented m software, but it may also be implemented m hardware or a combmation of hardware and software. Control system 65 may mclude a microprocessor, micro-controller, digital signal processor (DSP), or some other type of software instruction processmg device. RAM 67 may mclude memory units which are static (e.g., SRAM), dynamic (e.g., DRAM), volatile or non-volatile (e.g., FLASH), as requued to support the functions of the set-top box. When power is applied to the set-top box, control system 65 executes operating system code which is stored m ROM 66. The operating system code executes continuously while the set-top box is powered m the same manner the operating system code of a typical personal computer (PC) and enables the set-top box to act on control mformation and execute mteractive and other applications. The set-top box may also mclude modem 68. Modem 68 provides both a return path by which viewer data can be transmitted to the broadcast station and an alternate path by which the broadcast station can transmit data to the set-top box. Although the term "set-top box" is used herem, it is understood that this term refers to any receiver or processmg unit for receiving and processmg a transmitted signal and conveymg the processed signal to a television or other monitor. The set-top box may be m a housmg which physically sits on top of a television, it may be m some other location external to the television (e.g., on the side or back of the television or remotely located from the television), or it may be incorporated mto the television itself. Set-top box 18 serves to demodulate the signal received from broadcast station 10 and to separate the components of the signal, such as different television programs and mteractive applications. Similarly, television 19 may be a television or a video monitor employmg any suitable television format (e.g., NTSC or HDTV), or it may be replaced by other devices, such as a video recorder. The receivmg station is operatively connected to the broadcast station by a broadcast channel. This broadcast channel could utilize vanous transmission media and is contemplated to mclude media such as coaxial cable and free space (e.g., as used for duect satellite transmissions.) The broadcast channel forms a transmission path between the broadcast station and the receivmg station. The broadcast station and receivmg station are also connected by a return path. The return path typically consists of a pau of modems, one m the receivmg station and one m the broadcast station, each connected to a standard telephone lme Other means for establishing a return path, e g., usmg a portion of the bandwidth of the transmission path, are also contemplated Referring to Figs. 7a and 7b, a diagrammatic representation of the signal transmitted from broadcast station 10 to receivmg station 20 is shown. The figures depict the packets of two modules transmitted m a consecutive mode of operation (Fig. 7a) and a simultaneous mode of operation (Fig. 7b). In Fig. 7a, all of the packets of a smgle module (Mod. 1) are to transmitted consecutively The scheduler can schedule transmission of the packets by determining the transmission mterval (I,) and subtractmg this mterval from the scheduled delivery tune (D,) to get start tune (S,). I, can be explicitly provided to the scheduler, or it can be calculated, for example, by dividing the module size by the transmission bit rate as explamed above. Transmission of the packets can therefore begm at S, and should be complete m time to deliver the last packet at Dl. This assumes that no errors occur and no retransmissions are requued. I, can alternatively be calculated to mclude sufficient tune to allow for errors and retransmissions. A second module (Mod. 2) can be scheduled m the same manner for transmission after the first module. While this mode of operation may appear to be similar to schedulmg m the pπor art, it is distinct because the last packet of each module is held until the delivery time. Thus, if the transmission mterval is greater than the minimum tune required to transmit all of the packets, the same delivery tune (Dl, D2) is maintained, while m pπor art systems the delivery tune would vary with the unused tune m the mterval In another mode of operation, illustrated m Fig 7b, two modules can be transmitted simultaneously ("Simultaneously," as used here, refers to the overlappmg of at least a portion of the modules and does not require that the transmission of the respective modules' packets begm and end at the same tune.) In this figure, both modules are scheduled for delivery at approximately the same time (D„ D 2 ). For each module, a transmission mterval is determmed. Agam, the mterval can be explicitly provided, or it can be calculated by the scheduler based on bandwidth demand. In this mstance, each module has an equal mterval, resulting m start tunes (S,, S 2 ) which are approximately the same. As noted above, m vanous embodiments, any or all of the schedulmg mformation may be explicitly provided to the broadcast station. Further, the packets depicted as a smgle module m Figs. 7a and 7b may alternately consist of pre-multrplexed packets containing modules, audio, video or other mformation. The pre-multrplexed packets may then be re-multiplexed by the broadcast station or simply transmitted consecutively The signal which embodies the packets is received by set- top box 18. Set- top box 18 demultiplexes the packets and reconstructs the respective television programs and modules. As noted above, the modules are stored m RAM 67, where they are available for use by applications executmg m the control system 65. The set- top box may employ a secunty mechanism to ensure that the carousels and/or particular modules which are bemg downloaded are authentic. A certificate system may be used to ensure that the modules are produced by authorized producers and that the modules have not been altered before bemg received by the set-top box. In one embodiment, the module manager unit controls delivery, access and other functions of the set- top box which relate to the modules. The module manager unit may be implemented m software, hardware or a combmation of both as a matter of design choice The module manager unit monitors the channels through which it is coupled to the broadcast station. As descnbed above, these channels may carry broadcast signals, http signals, modem communications or other types of mput signals. In one embodiment, all the packets of a particular module must be transmitted over the same channel. In other embodiments, the module manager unit may be configured to accept packets of a particular module from multiple channels (e.g., both a broadcast channel and a pomt-to-pomt channel.) As the packets of one or more modules are transmitted to the set-top box, the module manager unit stores the packets so they can be reconstructed mto the respective modules. The module manager unit also momtors the packets to determine whether the last packet of a module has been received. When the last packet of a module is received, the delivery tune of the module is recorded. The module can then be reconstructed from its packets and processed by the set-top box. If the module is part of an application, it may be loaded mto memory for execution. If the module consists of graphical rnformanon, it may simply be displayed on the television coupled to the set-top box. While the present mvention has been descnbed with reference to particular embodiments, it will be understood that the embodiments are illustrative and that the mvention scope is not limited to these embodiments. Many vanations, modifications, additions and improvements to the embodiments descnbed are possible. These vanations, modifications, additions and improvements may fall within the scope of the mvention as detailed within the following claims.

Claims: WHAT IS CLAIMED IS: 1 A method, implemented m an mteractive television system havmg a broadcast station coupled to a receivmg station by a transmission medium, for delivering modules to the receivmg station accordmg to scheduled delivery tunes, the method compnsmg providmg a module to said broadcast station, said module havmg a conespondmg delivery tune; formatting said module m one or more packets; holdmg a last one of said one or more packets in said broadcast station, transmitting all of said one or more packets except said last one of said packets from said broadcast station to said receivmg station pnor to said delivery tune; transmittmg said last one of said one or more packets from said broadcast station to said receivmg station at said delivery tune 2 The method of claim 1 further compnsmg providmg said delivery tune to said broadcast station as user mput. 3. The method of claim 1 further compnsmg calculating said delivery tune based on system mformation mamtamed by said broadcast station. 4 The method of claim 1 further compnsmg providmg a transmission interval to said broadcast station as user mput; calculating a start time by subtractmg said transmission mterval from said delivery tune; and beginning transmission of said one or more packets except said last one of said packets at said start tune. 5. The method of claim 1 further compnsmg calculating a transmission mterval for said module based on bandwidth demand; calculating a start tune by subtractmg said transmission mterval from said delivery tune; and beginning transmission of said one or more packets except said last one of said packets at said start tune. 6. The method of claim 1 wherem transmittmg said packets of said module compnses tune multiplexmg said packets of said module with one or more packets of at least one additional module and transmittmg said tune multiplexed packets from said broadcast station to said receivmg station. 7 The method of claim 1 wherem formatting said module m one or more packets compnses formatting said module m said one or more packets pπor to said providmg said module to said broadcast station. 8 The method of claim 7 wherem said providmg said module to said broadcast station compnses providmg a pre-packetized and prescheduled version of said module to said broadcast station, said pre-packetized and prescheduled version of said module mcludmg an explicit start tune and an explicit delivery tune. 9. the method of claim 8 wherein said pre-packetized and prescheduled version of said module mcludes one or more packets contammg non-module mformation. 10. An mteractive television system compnsmg: a receivmg station; a broadcast station; and a transmission medium; wherem said broadcast station is configured to transmit one or more modules, each module havmg a correspondmg delivery time at which each said module is scheduled to be delivered to said receivmg station, each of said modules bemg transmitted m one or more packets; and wherem for each module, said broadcast station is configured to transmit all but a last one of said one or more packets pnor to said correspondmg delivery tune and wherem said last one of said one or more packets is transmitted at said conespondmg delivery time. 11. The mteractive television system of claim 10 wherem said transmission medium compnses a broadcast channel. 12. The mteractive television system of claim 11 wherem said transmission medium further compnses a pomt- to-pomt channel. 13. The mteractive television system of claim 1 1 wherem said packets are transmitted over both said broadcast channel and said pomt-to-pomt channel 14 The mteractive television system of claim 10 wherem said broadcast station is configured to accept user mput which defines said delivery tune. 15. The mteractive television system of claim 10 wherem said broadcast station is configured to accept user mput which defines a transmission mterval sufficient to transmit all but said last one of said one or more packets, wherem said broadcast station is further configured to calculate a start tune by subtractmg said transmission mterval from said delivery time, and wherem said broadcast station is configured to transmit said packets beginning at said start tune. 16 The mteractive television system of claim 7 wherem said broadcast station is configured to calculate a transmission mterval sufficient to transmit all but said last one of said one or more packets based on a level of bandwidth demand for said transmission medium, wherem said broadcast station is further configured to calculate a start tune by subtractmg said transmission mterval from said delivery time, and wherem said broadcast station is configured to transmit said packets beginning at said start tune 17 A scheduler coupled to a transmittmg station for controlling delivery of modules from the transmittmg station to a receivmg station wherem the modules are broken down mto packets pπor to transmission and wherem an actual delivery time of each module is determmed by the tune of arnval of a last packet at the receivmg station, the scheduler compnsmg a delivery time calculator, a start time calculator, and a controller coupled to said delivery tune calculator and said start time calculator, said controller bemg configured to receive a scheduled delivery tune from said delivery tune calculator and a scheduled start tune from said start tune calculator, said start time and said delivery time conespondmg to a module, said controller bemg coupled to said transmittmg station and configured to cause said transmittmg station to begm transmission of one or more packets of said module at said scheduled start time, said controller bemg further configured to delay transmission of a last one of said packets and to transmit said last one of said packets at said scheduled delivery tune 18 The scheduler of claim 17 wherem said delivery tune calculator is configured to accept a first explicit tune provided by a user and to provide said first explicit tune to said controller as said scheduled delivery tune 19 The scheduler of claim 18 wherem said start tune calculator is configured to accept a second explicit tune provided by a user and to provide said second explicit tune to said controller as said scheduled start tune 20 The scheduler of claim 18 wherem said start time calculator is configured to accept a transmission mterval provided by a user and to calculate said scheduled start time based on said transmission mterval 21 The scheduler of claim 17 wherem said start tune calculatoi is configured to calculate a transmission interval based on a level of bandwidth demand for the transmittmg station and to calculate said scheduled start time based on said transmission mterval An mteractive television system compnsmg a receivmg station, a broadcast statton coupled to said receivmg statton and configured to transmit one or more modules to said receivmg statton, each of said one or more modules havmg a correspondmg delivery time, a packettzer configured to format each said module mto one or more packets, a scheduler coupled to said broadcast statton, wherem said scheduler is configured to determme a start tune for each module, wherem said scheduler is configured to begm transmittmg said one or more packets of said each module at said start tone wherem said scheduler is configured to complete transmission of all but a last one of said one or more packets pnor to said delivery time and wherem said scheduler is configured to hold said last one of said one or more packets until said conespondmg delivery tune and to transmit said last one of said one or more packets at said delivery time

Inventors: WILLARD PIERRE, WILLARD, PIERRE
Applicants: OPENTV INC, OPENTV, INC.
Application year: 2000
Main classification: H04N7
IPC codes: H04H1, H04J3, H04N7