Method and Apparatus for Providing Demand-Based Application Downloading Via an In-Band Channel to a
Set-top Terminal. FIELD OF THE IN.VENTION The present invention relates to the field of cable television systems. More particularly, the present invention relates to the field of application programming in set-top terminals which connect a subscriber's television to the cable network. BACKGROUND OF THE INVENTION
Cable television systems are extremely popular in modern society. By subscribing to a cable television network, a subscriber can have access in his or her home to dozens of channels of television programming that are not otherwise available.
As cable networks develop and become more sophisticated more and more features are available to subscribers. For example, some cable systems now offer high-fidelity stereo quality sound, parental control of which channels are received, and a programmed listing of the subscriber's favorite channels for more ready access to those channels.
Additionally, most cable systems offer several premium channels which, for an additional fee, can be selected and added to the channels received by the subscriber. Some cable systems also offer internet access or electronic mail features.
These advanced features of a cable system are typically implemented in a set-top terminal. A set-top terminal is a box of electronic circuitry which is connected between the subscriber's television set and the cable network. The set-top terminal usually includes a computer processor and is programmed to provide those advanced features which are offered by the cable network.
However, as more and more such advanced features are offered by the cable network, an ever increasing amount of memory is needed in the set-top terminals to store all the programming necessary to implement the advanced features of the cable system. The amount of memory required is the single most significant factor in the cost of manufacturing set-top terminals.
Consequently, as the memory requirements are increased to accommodate more features, the cost of the terminals and of subscribing to and operating a cable network is also increased. Consequently, there is a need in the art for a method and apparatus of providing all the desired features that can be used with a cable network without requiring large amounts of memory in the set-top terminal to store the programming for these features. SUMMZ.RY OF THE INVENTION
Therefore, it is an object of the present invention to meet the above-described needs and others. Specifically, it is an object of the present invention to provide a method and apparatus by which a set-top terminal can have access to the necessary programming to implement all the desired features of the cable
system without being required to permanently store such programming in its own limited memory..
Additional objects, advantages and novel features of the invention will be set forth in the description which follows or may be learned by those skilled in the art through reading these materials or practicing the invention. The objects and advantages of the invention may be achieved through the means recited in the attached claims. To achieve the stated and other objects, the present invention may be embodied and described as a method of providing application programming to a set- top terminal without storing the programming in a static memory of the terminal. The method includes broadcasting application programming for execution by the set-top terminal over at least one dedicated channel which can be tuned and received by the set-top terminal .
In more detail, the method of the present invention includes the steps of receiving a selection of an application through a user input device; tuning the at least one dedicated channel on which programming for the selected application is being broadcast; and retrieving the programming for the selected application. After the retrieval, the method continues with storing the programming in dynamic memory; and executing the programming. After the execution of the retrieved programming, the method may preferably include freeing the dynamic memory for other use. Retrieving the programming may also include determining a size of the programming; and allocating a
sufficient portion of the dynamic memory in which to store the programming. To aid in the rapid transmission of the programming over the dedicated channel, the programming may be compressed. Where the programming is compressed, the method of the present invention includes the step of decompressing the programming prior to its execution.
Preferably, the broadcasting of the programming over one or more dedicated channels includes periodically re-broadcasting programming for particular applications. The re-broadcast should preferably be continuous to insure that programming needed by the set-top terminal is always available.
Aside from the foregoing method, the present invention also encompasses a cable system and set-top terminal which include: at least one dedicated channel of the cable system on which application programming for the set-top terminal is broadcast; a tuner of the set-top terminal for tuning the at least one dedicated channel; and a processor of the set-top terminal for downloading the application programming. Preferably, the at least one dedicated channel over which application programming is broadcast includes at least one in-band channel . The set-top terminal of the present invention also includes a dynamic memory for storing the application programming downloaded by the processor and a user input device through which a user can select an application to be executed by the set-top terminal. Selection of an application by the user with the user input device causes the processor to download
application programming corresponding to that application from the at least one channel. BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings illustrate the present invention and are a part of the specification.
Together with the following description, the drawings demonstrate and explain the principles of the present invention.
Fig 1 is a block diagram illustrating a set-top terminal according to the present invention.
Fig. 2 is a flow chart illustrating a method of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
In general principle, the present invention may be described as follows. To avoid storing all of the application programming in the set-top terminal which is used to implement the various features of the cable system, the programming is constantly broadcast over one or more of the in-band channels of the cable system. In this way, when a particular program is needed, the set-top terminal can tune to the channel or channels on which that application programming is being continually broadcast, download the application into the dynamic memory, execute the application and then clear the memory for other uses.
Using the drawings, the preferred embodiments of the present invention will now be explained. Fig. 1 illustrates a set-top terminal 100 according to the present invention. The set-top terminal 100 is connected to the cable network through a terminal 102
and to a subscriber's television set (not shown) through a terminal 107.
The cable television signal, which contains all the channel available on the cable network, is received through the terminal 102 and provided to a tuner 101. The tuner 101 selects or tunes a particular channel from all those available and passes the signal for that particular channel to the processor 103 of the set-top terminal 100. The processor 103 controls the tuner 101, causing the tuner 101 to select the particular channel which is desired.
A user input device 106 is also provided in the set-top terminal 100. The user input device 106 can be any of a number of equivalent devices. For example, the user input device 106 may be a keyboard, keypad, joystick or trackball which is on or connected to the set-top terminal 100. The user input device 106 may be an optical (e.g., IR) , acoustic (e.g., ultrasonic) or radio frequency signal receiver which receives signals from a remote control device operated by the user. In short, the user input device 106 may be any device with which a user can input data to the processor 103 or select from among options offered by the processor. Using the user input device 106, the user can inform the processor 103 which channel the user wishes to view. The processor 103 then controls the tuner 101 to select and display the desired channel.
The user may also use the user input device 106 to operate the more advanced features of the cable system. For example, with the user input device 106, a user may instruct the set-top terminal 100 to set up the IR
Blaster subsystem; set up parental control of the channels received, i.e., lock-out channels considered inappropriate for children; set or change passwords on controlled channels; set user preferences in the on- screen display, set up a listing of favorite channels for viewing, etc.
However, each of these functions requires an application program that is executed by the processor 103. In conventional set-top terminals, all such programming is stored in the static or flash memory 104 which requires that the static memory 104 be large and expensive. The static memory 104 is, for example, a flash EEPROM.
Under the principles of the present invention, to avoid having all these application programs stored in the flash memory 104, the processor 103 instructs the tuner 101 to tune a particular in-band channel or channels on which the code for these applications will be continually broadcast. This dedicated channel or channels preferably uses the vertical retrace portion also known as VBI .
The processor 103 then downloads the necessary application programming from the in-band channel broadcast and stores the application programming temporarily in the dynamic memory 105. The processor 103 can then execute the application programming and then clear it from the dynamic memory 105 when it is no longer needed.
The present invention is not limited to those particular examples of applications listed above which can be broadcast over the in-band channel to the set-
top terminal 100. Under the principles of the present invention, application programming for any application which is only needed periodically or occasionally by the set-top terminal can be provided over the dedicated in-band channel or channels for demand-based downloading by the set-top terminal 100. Any application that is not accessible to the user via a single key-stroke on a remote control unit or the set- top terminal's key pad 106, is a candidate from for demand-based retrieval and execution under the principles of the present invention.
Fig. 2 illustrates the method of the present invention. In block 201, the user selects an application to be run. This selection may be from a main menu or a branch of the main menu which is displayed by the processor 103 on the screen of the television set (not shown), i.e. the on-screen display.
In block 202, the processor 103 will determine whether the programming for the selected application is stored in the static memory 104. If yes, at block 203, the application is executed as requested.
If the application programming is not available in the static memory 104, the processor 103 will determine if the programming is available over a dedicated in- band channel or channels which continually broadcast application programming. If the programming is not available from the cable network 102 over a dedicated channel, then, in block 205, the selected application is not available and cannot be executed. The user is so informed using the on-screen display.
If, however, the application programming is available over the cable network, in block 206, the processor 103 controls the tuner 101 to tune to the dedicated in-band channel carrying the necessary programming. In block 207, the processor 103 determines the memory requirements of the programming and allocates a portion of the dynamic memory 105 as needed. In block 208, the processor 103 then retrieves the programming for the selected application from the broadcast on the dedicated in-band channel and stores the programming in the allocated memory. In order to make more programming available and to decrease the time required to download the programming, application programming on the dedicated in-band channel or channels may be compressed. Many methods of data compression will be widely known to those skilled in the art and are not detailed here. Any method of data compression may be used with present invention.
In block 209, the processor 103 determines if the downloaded programming is compressed. If not, the processor 103 executes the application at block 211. If the programming is compressed, the processor 103 decompresses the programming in block 210 before executing the application in block 211. Finally, after the application programming has been executed and is no longer needed, the processor 103 can free the allocated memory for use by other software or software components. In this way, the memory required in the set-top terminal 100 is minimized, as is the cost of the terminal 100.
It should be noted that while an in-band channel or channels is the preferred means of broadcasting application programming, out-of-band channels may also be used within the spirit and scope of the invention. The preceding description has been presented only to illustrate and describe the invention. It is not intended to be exhaustive or to limit the invention to any precise form disclosed. Many modifications and variations are possible in light of the above teaching. The preferred embodiment was chosen and described in order to best explain the principles of the invention and its practical application. The preceding description is intended to enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims.